/** * @monochrome-edge/ui - Shared IconToggle data * * Single source of truth for the IconToggle's states, transitions, the * document attribute each type reflects, and the SVG markup for the two * visual icons. Every framework adapter (React, Vue, jQuery, Web Component) * consumes this so the icons and behaviour can never drift between targets. * * The SVG icons are static, trusted markup (no user input) — adapters render * them as raw HTML (`dangerouslySetInnerHTML` / `innerHTML`). */ export type IconToggleType = "mode" | "theme" | "color" | "language"; interface ToggleSpec { default: string; /** state -> next state */ transition: Record; /** document attribute reflected on toggle, if any */ attr?: string; /** [iconForFirstState, iconForSecondState] */ icons: [string, string]; } export declare const ICON_TOGGLE: Record; export declare function iconToggleDefault(type: string): string; export declare function iconToggleIcons(type: string): [string, string]; export declare function nextIconToggleState(type: string, current: string): string; /** Reflect the toggled state onto the document (mode/theme only). */ export declare function applyIconToggleState(type: string, state: string): void; /** Read the live state from the document, falling back to the default. */ export declare function readIconToggleState(type: string): string; export {};