export type { GridSelectColumn } from './ui-app.types'; /** * SvGridSelect - a "grid in a dropdown" single-select: the panel shows the * options as a compact multi-column table (header row + optional search), so * you pick by more than a label. The open / position / dismiss / roving / * keyboard / ARIA mechanics come from the shared `createPopoverSelect` core; * this component adds the multi-column table. It does NOT embed the full * SvGrid. Emits the chosen row's id. Parity: Smart multicolumn combobox. */ import type { GridSelectColumn } from './ui-app.types'; import { type SvEditorProps } from './editor-contract'; import { type Row } from './grid-select'; type Props = Pick & { columns: ReadonlyArray; options: ReadonlyArray; idField?: string; labelField?: string; value?: string | number | null; onChange?: (id: string | number, row: Row) => void; onCommit?: (id: string | number, row: Row) => void; onCancel?: () => void; placeholder?: string; searchable?: boolean; /** Async/remote rows: called (debounced) with the search query; its result * replaces the list. When set, `options` is only the initial list. */ loadOptions?: (query: string) => Promise; 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 SvGridSelect: import("svelte").Component; type SvGridSelect = ReturnType; export default SvGridSelect;