import type { RemoteFormField } from '$app/server'; import { type Snippet } from 'svelte'; import type { ClassValue, HTMLButtonAttributes, HTMLLiAttributes } 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, { popover: PopoverType; isSelected: boolean; isFocus: boolean; }]>; proposalAppend?: Snippet<[Item, { popover: PopoverType; isSelected: boolean; isFocus: boolean; }]>; field?: RemoteFormField; /** * L'item, pas sa valeur soumise. Un parent qui le repilote après coup — remise à * zéro, changement de jeu d'options — doit le 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; class?: ClassValue; nullable?: boolean; /** La valeur reste soumise, mais la sélection ne peut plus changer. */ disabled?: boolean; hint?: Snippet<[Item | undefined]>; /** 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; /** * Remplace le faux champ qui ouvre la liste: un bouton « Ajouter », typiquement, quand * choisir ajoute une ligne au lieu de remplir le champ. `props` s'étale sur le bouton. */ trigger?: Snippet<[{ props: HTMLButtonAttributes; value: Item | undefined; }]>; header?: Snippet<[PopoverType]>; onSelect?: (item: NoInfer | undefined, popover: PopoverType) => void; hotKey?: string; variant?: "floating" | "block"; propsLi?: HTMLLiAttributes; }; 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 InputSelect: $$IsomorphicComponent; type InputSelect = InstanceType>; export default InputSelect;