Combobox
Debounced Search
A picker with real debounce: a short query never starts the search, a long one waits for a pause in typing, and the spinner lives inside the field rather than as a separate block.
What you can change
- the row source through options
- the minimum query length through minChars and the pause through delay
- the empty-result text through emptyLabel
A link for your AI agent: preview, code and instructions.
Preview
Use it with AI
- 1. Copy the link.
- 2. Write to your agent in your own words and drop the link into the sentence.
- 3. The agent opens the link and installs the component from the registry.
put this on the home page as the hero:
https://vibeui.ru/c/combobox-026?lang=en&theme=dark
Not sure where to paste it? Step-by-step guide
Show the full instructions
What the link says, spelled out. Use it when your agent cannot open links — paste this text instead.
Loading…
For developers
The install command lives in the “Component source” block below — a signed link that stays valid for 24 hours.
Technical notes
The component is self-contained: one file, zero dependencies, its own palette in the local --vibeui-combobox-026-* variables. Client component: three states are derived from two strings — typed (query) and debounced. While the query is shorter than minChars the search does not start at all: the useEffect with the timer does not even subscribe. As soon as the length is enough, the effect sets a setTimeout on delay and clears it on every change of the query — the classic protection against a race; the loading state is derived as debounced !== needle, there is no separate boolean flag. The spinner is a rotating border inside the field wrapper, position:absolute rather than a block under the list. The list is hidden with the hidden attribute rather than removed, so aria-controls always points at an existing node.
Tags
- combobox
- debounce
- async
- empty state
Component source
The same file your agent installs. Here in case you would rather copy it by hand.
Loading…