/** * Language Switcher * Auto-generates floating language switcher UI from data-lionrapid-switcher attributes. * All styles are fixed-position overlays — the style only changes the visual appearance. * * Styles: * - floating: button showing current language → click opens dropdown menu * - buttons: row of language code buttons (EN, ES, FR) * - flags: row of flag + name buttons */ import type { LionRapidCore } from '../lionRapid.js'; export type SwitcherStyle = 'flags' | 'buttons' | 'floating'; export interface Language { code: string; name: string; flag?: string; } export declare class LanguageSwitcher { private core; private languages; private initialLocale; private onLanguageChange; private stylesInjected; constructor(); /** * Set the core instance */ setCore(core: LionRapidCore): void; /** * Set initial locale (used before core is available) */ setInitialLocale(locale: string): void; /** * Set available languages */ setLanguages(languages: Language[] | string[]): void; /** * Set callback for language changes */ setOnLanguageChange(callback: (locale: string) => void): void; /** * Initialize all switchers on the page */ initAll(): void; /** * Initialize a single switcher element */ initSwitcher(element: HTMLElement): void; /** * Render floating style (button showing current language → click opens dropdown menu) */ private renderFloating; /** * Render button row style (used for both "buttons" and "flags") */ private renderButtonRow; /** * Handle language change — update all switchers on page + fire callback */ private handleLanguageChange; /** * Inject minimal styles */ private injectStyles; /** * Get language info by code */ static getLanguage(code: string): Language | undefined; } //# sourceMappingURL=language-switcher.d.ts.map