UI — form

Select

Pure-React accessible listbox. No Radix, no Headless UI. Keyboard model follows the WAI-ARIA APG — arrows move, Home/End jump, typeahead searches, and Enter/Space commits.

Sourcesrc/components/ui/select.tsx

Controlled with icons

Each option can carry an icon that also renders in the trigger once selected. Disabled options stay focusable but can't be committed.

Selected: claude-sonnet-4-6

With error message

Pass error to paint the trigger red and surface the message — aria-invalid is set automatically.

Pick a region to continue.

With a disabled option

Disabled options render dimmer, skip arrow-key navigation, and aren't committable via Enter.

EU Central is not available on the Starter plan.

Sizes

sm / md / lg — heights match Input and Button.