@kobalte/solidbase
Version:
Fully featured, fully customisable static site generation for SolidStart
63 lines (62 loc) • 1.72 kB
TypeScript
import { type ThemeDefinition } from "../config/index.js";
import type { SidebarConfig, SidebarItem } from "../config/sidebar.js";
export type DefaultThemeSidebarItemOptions = {
status?: "new" | "updated" | "next" | DefaultThemeSidebarItemOptionCustomStatus;
};
export interface DefaultThemeSidebarItemOptionCustomStatus {
text: string;
color: string;
textColor?: string;
}
export type DefaultThemeSidebarItem = SidebarItem<DefaultThemeSidebarItemOptions>;
export type DefaultThemeConfig = {
footer?: boolean;
socialLinks?: {
[K in Exclude<SocialLink["type"], "custom"> | (string & {})]?: string | Omit<SocialLink, "type">;
};
nav?: Array<NavItem>;
sidebar?: SidebarConfig<DefaultThemeSidebarItem>;
search?: SearchConfig;
fonts?: {
[K in keyof typeof allFonts]?: false;
} | false;
};
declare const allFonts: {
inter: {
cssPath: string;
preloadFontPath: string;
fontType: string;
};
lexend: {
cssPath: string;
preloadFontPath: string;
fontType: string;
};
jetbrainsMono: {
cssPath: string;
preloadFontPath: string;
fontType: string;
};
};
declare const defaultTheme: ThemeDefinition<DefaultThemeConfig>;
export default defaultTheme;
export type SearchConfig = {
provider: "algolia";
options: DocSearchOptions;
};
export interface DocSearchOptions {
appId: string;
apiKey: string;
indexName: string;
}
export type NavItem = {
text: string;
link: string;
activeMatch?: string;
};
export interface SocialLink {
type: "discord" | "github" | "opencollective" | "custom";
link: string;
logo?: string;
label?: string;
}