Select

A popup-based dropdown select. Accepts a static options array or an async source object with search and get methods. Supports custom rendering via snippets for both the trigger display and dropdown items.


Basic

Pass a SelectOption[] array and bind value. The dropdown shows a search input by default.

value: —


Clearable

Add clearable to show an × button. With clearable enabled, selecting the same item again also clears the value to undefined.

value: banana


Async search

Pass an object with search and get as options. search(query) is called on every query change. get(values) resolves pre-selected values (e.g. on page load) so the trigger can display the correct label.

value: —


Custom rendering

Use the trigger snippet to customize the trigger, and option to customize each dropdown row. For extra option fields, import as and define a script-side typed caster, as shown below. This follows the package's snippet convention without inline TypeScript assertions; it does not validate runtime data.


Sizes

Three sizes available: normal (default, h-10), compact (h-8), and small (h-6).


Disabled & non-searchable

Use disabled to disable the trigger and prevent opening the dropdown. Set searchable={false} to hide the search input and show a plain list.

Disabled

No search input (searchable={false})


Button triggers

Supply a button configuration for a fixed-label action instead of a selected-value field. Select and MultiSelect both support this mode and hideKeyboardHints. Their selection bindings are unchanged; display the selected values separately when needed.

Single: —; multiple: —