UNPKG

vlibras-player-webjs

Version:

Biblioteca JavaScript moderna para integração do VLibras Player com React, Vue, Angular e vanilla JS

179 lines 4.15 kB
/** * Sistema de Temas Integrado para VLibras * Permite personalização visual completa da interface */ /** * Interface para definição de tema */ export interface VLibrasTheme { name: string; displayName: string; description?: string; colors: { primary: string; secondary: string; background: string; surface: string; error: string; success: string; warning: string; info: string; text: string; textSecondary: string; border: string; shadow: string; }; spacing: { xs: string; sm: string; md: string; lg: string; xl: string; }; typography: { fontFamily: string; fontSize: { xs: string; sm: string; md: string; lg: string; xl: string; }; fontWeight: { light: number; normal: number; medium: number; bold: number; }; lineHeight: { tight: number; normal: number; relaxed: number; }; }; borderRadius: { none: string; sm: string; md: string; lg: string; full: string; }; shadows: { none: string; sm: string; md: string; lg: string; xl: string; }; animation: { duration: { fast: string; normal: string; slow: string; }; easing: { ease: string; easeIn: string; easeOut: string; easeInOut: string; }; }; vlibras: { playerBackground: string; controlsBackground: string; progressBarColor: string; loadingSpinnerColor: string; errorColor: string; successColor: string; }; } /** * Tema claro padrão */ export declare const lightTheme: VLibrasTheme; /** * Tema escuro */ export declare const darkTheme: VLibrasTheme; /** * Tema de alto contraste */ export declare const highContrastTheme: VLibrasTheme; /** * Tema compacto para espaços reduzidos */ export declare const compactTheme: VLibrasTheme; /** * Gerenciador de temas do VLibras */ export declare class VLibrasThemeManager { private static instance; private themes; private currentTheme; private styleElement; private constructor(); static getInstance(): VLibrasThemeManager; /** * Registra um novo tema */ registerTheme(theme: VLibrasTheme): void; /** * Lista todos os temas disponíveis */ getAvailableThemes(): VLibrasTheme[]; /** * Obtém um tema por nome */ getTheme(name: string): VLibrasTheme | undefined; /** * Obtém o tema atual */ getCurrentTheme(): VLibrasTheme; /** * Aplica um tema */ applyTheme(themeName: string): void; /** * Auto-detecta preferência do sistema */ private detectSystemPreference; /** * Injeta CSS do tema no documento */ private injectCSS; /** * Gera CSS a partir do tema */ private generateCSS; /** * Atualiza configurações de animação */ private updateAnimations; /** * Cria um tema personalizado */ createCustomTheme(baseTheme: string, customizations: Partial<VLibrasTheme>): VLibrasTheme; /** * Remove um tema customizado */ removeTheme(themeName: string): void; } /** * Instância singleton do gerenciador de temas */ export declare const vlibrasThemeManager: VLibrasThemeManager; /** * API simplificada para uso direto */ export declare const VLibrasThemes: { apply: (themeName: string) => void; readonly current: VLibrasTheme; readonly available: VLibrasTheme[]; register: (theme: VLibrasTheme) => void; createCustom: (baseTheme: string, customizations: Partial<VLibrasTheme>) => VLibrasTheme; light: VLibrasTheme; dark: VLibrasTheme; highContrast: VLibrasTheme; compact: VLibrasTheme; }; //# sourceMappingURL=VLibrasThemes.d.ts.map