UNPKG

@lucasmiqueias/blip-tokens

Version:

Design token system inspired by BLiP's design language

67 lines 1.79 kB
/** * BLiP Design System - Theme Management * Enhanced theme manager with React hooks and TypeScript support */ export type Theme = "light" | "dark" | "auto"; export interface ThemeConfig { theme: Theme; systemPreference?: "light" | "dark"; } declare class ThemeManager { private currentTheme; private systemPreference; private listeners; constructor(); private init; private detectSystemPreference; private handleSystemPreferenceChange; private loadSavedTheme; private saveTheme; private applyTheme; private notifyListeners; /** * Set the current theme */ setTheme(theme: Theme): void; /** * Get the current theme setting */ getTheme(): Theme; /** * Get the effective theme (resolves 'auto' to actual theme) */ getEffectiveTheme(): "light" | "dark"; /** * Get the system preference */ getSystemPreference(): "light" | "dark"; /** * Toggle between light and dark themes */ toggleTheme(): void; /** * Subscribe to theme changes */ subscribe(listener: (theme: Theme) => void): () => void; /** * Check if dark mode is currently active */ isDarkMode(): boolean; /** * Check if light mode is currently active */ isLightMode(): boolean; } export declare const themeManager: ThemeManager; export declare function useTheme(): { theme: Theme; effectiveTheme: "light" | "dark"; setTheme: (theme: Theme) => void; toggleTheme: () => void; isDarkMode: () => boolean; isLightMode: () => boolean; systemPreference: "light" | "dark"; }; export declare const getCSSVariable: (variable: string) => string; export default themeManager; //# sourceMappingURL=theme-manager.d.ts.map