@brendonovich/kobalte__solidbase
Version:
Fully featured, fully customisable static site generation for SolidStart
43 lines (42 loc) • 2.1 kB
TypeScript
import type { Options as AutoImportOptions } from "unplugin-auto-import/dist/types.js";
import type { ComponentResolverOption } from "unplugin-icons/resolver";
import type { Options as IconsOptions } from "unplugin-icons/types";
import type { PluginOption } from "vite";
import { type MdxOptions } from "./mdx.js";
import type { IssueAutoLinkConfig } from "./remark-plugins/issue-autolink.js";
export interface SolidBaseConfig<ThemeConfig> {
title?: string;
titleTemplate?: string;
description?: string;
logo?: string;
issueAutolink?: IssueAutoLinkConfig | false;
lang?: string;
locales?: Record<string, LocaleConfig<ThemeConfig>>;
themeConfig?: ThemeConfig;
editPath?: string | ((path: string) => string);
lastUpdated?: Intl.DateTimeFormatOptions | false;
markdown?: MdxOptions;
icons?: Omit<IconsOptions, "compiler"> | false;
autoImport?: (AutoImportOptions & {
iconResolver?: ComponentResolverOption | false;
}) | true;
}
type ResolvedConfigKeys = "title" | "description" | "lang" | "issueAutolink" | "lastUpdated";
export type SolidBaseResolvedConfig<ThemeConfig> = Omit<SolidBaseConfig<ThemeConfig>, ResolvedConfigKeys> & Required<Pick<SolidBaseConfig<ThemeConfig>, ResolvedConfigKeys>>;
export type LocaleConfig<ThemeConfig> = {
label: string;
lang?: string;
link?: string;
themeConfig?: ThemeConfig;
};
export type ThemeDefinition<Config> = {
componentsPath: URL;
extends?: ThemeDefinition<Config>;
config?(config: SolidBaseResolvedConfig<Config>): void;
vite?(config: SolidBaseResolvedConfig<Config>): PluginOption | undefined;
};
export declare const solidBase: (solidBaseConfig?: SolidBaseConfig<import("../default-theme/index.js").DefaultThemeConfig> | undefined) => PluginOption;
export declare function createSolidBase<ThemeConfig>(theme: ThemeDefinition<ThemeConfig>): (solidBaseConfig?: SolidBaseConfig<ThemeConfig>) => PluginOption;
export declare function defineTheme<C>(def: ThemeDefinition<C>): ThemeDefinition<C>;
export type Theme<C> = ReturnType<typeof defineTheme<C>>;
export {};