ttolbel UI

Component

Select

A native dropdown wrapped in the same shell as the text input, same border, fill, radius, and focus halo, with a chevron indicating it opens a list of options.

The primitive

select.tsx
<NativeSelect
  options={[
    { label: "USD", value: "usd" },
    { label: "EUR", value: "eur" },
    { label: "GBP", value: "gbp" },
  ]}
  value={value}
  onValueChange={setValue}
/>

Example

A currency select sitting beside an amount input on a payment form, the constrained choice next to the free-entry value.

250.00
select-example.tsx
<NativeSelect options={currencyOptions} value={currency} onValueChange={setCurrency} />
<NativeInput value={amount} onValueChange={onAmountChange} />

Capabilities

PropTypeDescription
optionsrequiredNativeSelectOption[]
valuerequiredstring
onValueChangerequired(value: string) => void
placeholderstringUnused for native `<select>` — add a “Select…” row in `options` instead.
sizeNativeSelectSize
disabledboolean
classNamestring
surfaceNativeSelectSurface
namestring
onBlurReact.FocusEventHandler<HTMLSelectElement>
selectPropsOmit<Extra attrs merged onto the native `<select>` (before controlled props).