export type { MultiSelectOption } from './ui-app.types'; /** * SvMultiSelect - a multi-select dropdown: a trigger showing the picked items * as chips (collapsing to "+N"), and a portalled panel with an optional search * box and a checkbox list. The open/position/dismiss/roving/keyboard/ARIA * mechanics come from the shared `createPopoverSelect` core; this component adds * the multi-select toggle, chips and search UI. Distinct from SvTagsInput * (free-form tags) - this picks from a fixed set. */ import type { MultiSelectOption } from './ui-app.types'; import { type SvEditorProps } from './editor-contract'; type Props = Pick & { options: ReadonlyArray; value?: ReadonlyArray; onChange?: (value: Array) => void; onCommit?: (value: Array) => void; onCancel?: () => void; placeholder?: string; searchable?: boolean; maxTagCount?: number; clearable?: boolean; /** Async/remote options: called (debounced) with the search query; its * result replaces the list. When set, `options` is only the initial list. */ loadOptions?: (query: string) => Promise; /** Debounce for remote search. Default 250ms. */ debounceMs?: number; loadingText?: string; /** Shown when the list is empty / a search matches nothing (localization). */ emptyText?: string; /** Placeholder in the panel's search box (localization). */ searchPlaceholder?: string; /** Accessible name for the panel's search box (localization). */ searchLabel?: string; }; declare const SvMultiSelect: import("svelte").Component; type SvMultiSelect = ReturnType; export default SvMultiSelect;