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
TypeScript
/**
* 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