import type { ControlSize } from "../../Theme/tokens/primitives/controlSizes"; /** i18n overrides for this panel's field labels; any key left out keeps the library's English default. */ export type AppearanceSettingsLabels = { /** Label above the brand picker; default "Theme". */ theme?: string; /** Label above the light/dark/system switch; default "Color mode". */ colorMode?: string; /** Label above the font-size picker; default "Font Size". */ fontSize?: string; }; /** Controlled brand/font-size pickers; the color-mode switch is uncontrolled and reads/writes theme context directly. */ export type AppearanceSettingsProps = { /** Currently selected brand name (a key of the theme list, e.g. "zinc"); the picker is controlled. */ brand?: string; /** Currently selected root font size as a percentage id from "80%" to "130%" ("100%" is default); the picker is controlled. */ fontSize?: string; /** Called with the chosen brand name; the caller must apply the theme and pass it back via `brand`. */ onBrandChange?: (brand: string) => void; /** Called with the chosen percentage id; the caller must apply it and pass it back via `fontSize`. */ onFontSizeChange?: (fontSize: string) => void; /** Shows the brand picker; default true. */ showBrand?: boolean; /** Shows the light/dark/system switch, which reads and writes the theme provider directly; default true. */ showColorMode?: boolean; /** Shows the font-size picker; default true. */ showFontSize?: boolean; /** Control size shared by all three controls; default "sm". */ size?: Extract; /** Pass translated strings; the library ships English defaults. */ labels?: AppearanceSettingsLabels; };