p-stream/themes/types.ts
2026-02-20 16:31:07 -07:00

18 lines
396 B
TypeScript

import { defaultTheme } from "./default";
export type DeepPartial<T> = {
[P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];
};
export interface Theme {
name: string;
extend: DeepPartial<(typeof defaultTheme)["extend"]>;
}
export function createTheme(theme: Theme) {
return {
name: theme.name,
selectors: [`.theme-${theme.name}`],
extend: theme.extend,
};
}