import type { RemoteFormField } from '$app/server'; import { type Snippet } from 'svelte'; import type { ClassValue } from 'svelte/elements'; import { type PopoverType } from '../popover/usePopover.svelte.js'; import { type ItemsSource } from './useItems.svelte.js'; declare function $$render(): { props: { /** Un tableau déjà chargé, une fonction (synchrone ou non), ou une remote query. */ items: ItemsSource; label?: string; getValue?: (item: NoInfer) => string; /** Libellé affiché à défaut de snippet, et base du filtre d'une source tableau. */ getLabel?: (item: NoInfer) => string; /** Ne s'applique qu'à une source tableau: une fonction porte son propre filtre. */ filter?: (item: NoInfer, search: string) => boolean; /** Par défaut: toujours pour une fonction, au-delà de 7 entrées pour un tableau. */ searchable?: boolean; debounceMs?: number; selected?: Snippet<[Item]>; proposal?: Snippet<[Item, { isSelected: boolean; isFocus: boolean; }]>; field?: RemoteFormField; /** * Les items, pas leurs valeurs soumises. Un parent qui les repilote après coup doit * les lier par `bind:`: passé en simple prop, un `$bindable` cesse de suivre le * parent dès que le composant y a écrit. */ value?: NoInfer[]; placeholder?: string; canReset?: boolean; /** * N'affiche que le nombre d'items sélectionnés à la place des puces. Retirer un item * se fait alors depuis le popover. */ countOnly?: boolean; class?: ClassValue; /** Les valeurs restent soumises, mais la sélection ne peut plus changer. */ disabled?: boolean; hint?: Snippet<[Item[]]>; /** Rendu à droite du champ de recherche: une action « créer », typiquement. */ append?: Snippet<[PopoverType]>; /** Rendu à droite du libellé. Sans effet sur la variante `floating`. */ labelAppend?: Snippet; onSelect?: (items: NoInfer[], popover: PopoverType) => void; hotKey?: string; variant?: "floating" | "block"; }; exports: { popover: { show: () => void; hide: () => void; readonly isOpen: boolean; content: { [x: symbol]: (node: HTMLElement) => () => void; popover: "auto" | "hint" | "manual"; }; trigger: { [x: symbol]: (node: HTMLElement) => () => void; }; }; command: { readonly focusIndex: number; selectedIndex: number; trigger: { [x: symbol]: (node: HTMLElement) => () => void; }; focusTrigger: () => void; item: (index: number) => { [x: symbol]: (node: HTMLElement) => () => void; }; }; }; bindings: "value"; slots: {}; events: {}; }; declare class __sveltets_Render { props(): ReturnType>['props']; events(): ReturnType>['events']; slots(): ReturnType>['slots']; bindings(): "value"; exports(): { popover: { show: () => void; hide: () => void; readonly isOpen: boolean; content: { [x: symbol]: (node: HTMLElement) => () => void; popover: "auto" | "hint" | "manual"; }; trigger: { [x: symbol]: (node: HTMLElement) => () => void; }; }; command: { readonly focusIndex: number; selectedIndex: number; trigger: { [x: symbol]: (node: HTMLElement) => () => void; }; focusTrigger: () => void; item: (index: number) => { [x: symbol]: (node: HTMLElement) => () => void; }; }; }; } interface $$IsomorphicComponent { new (options: import('svelte').ComponentConstructorOptions['props']>>): import('svelte').SvelteComponent['props']>, ReturnType<__sveltets_Render['events']>, ReturnType<__sveltets_Render['slots']>> & { $$bindings?: ReturnType<__sveltets_Render['bindings']>; } & ReturnType<__sveltets_Render['exports']>; (internal: unknown, props: ReturnType<__sveltets_Render['props']> & {}): ReturnType<__sveltets_Render['exports']>; z_$$bindings?: ReturnType<__sveltets_Render['bindings']>; } declare const InputMultiSelect: $$IsomorphicComponent; type InputMultiSelect = InstanceType>; export default InputMultiSelect;