import type { Locale } from '@urbicon-ui/i18n'; import type { SelectSingleProps } from '../../index.js'; /** * Props interface for LocaleSwitcher component * * @summary Lets the user pick the interface language. * @description Convenience wrapper around Select to switch UI locales. * Single-select only — locale is always exactly one value. Options, value, * form integration, multi-select, and null-option are all owned internally * and intentionally not forwarded to the underlying Select. * * @tag form * @related Select * * @example * ```svelte * * ``` * * @example * ```svelte * * ``` */ export interface LocaleSwitcherProps extends Omit, 'options' | 'groups' | 'value' | 'onValueChange' | 'multiple' | 'multiPlaceholder' | 'nullOption' | 'closeOnSelect' | 'name' | 'label' | 'helper' | 'error'> { /** Show flag emoji alongside locale name. @default false */ showFlag?: boolean; /** * Micro-interaction preset forwarded to the inner Select trigger. * Redeclared from SelectSingleProps so the inheritance is a documented * contract rather than an accident of the Omit list. * @default 'none' */ mint?: SelectSingleProps['mint']; /** Restrict the displayed locales. Defaults to all locales registered in i18n. */ locales?: Locale[]; /** Called after the locale has been changed successfully. */ onLocaleChange?: (locale: Locale) => void; } export { default as LocaleSwitcher } from './LocaleSwitcher.svelte';