@lucasmiqueias/blip-tokens
Version:
Design token system inspired by BLiP's design language
67 lines • 1.79 kB
TypeScript
/**
* 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