Combobox

A select you can type in to filter long lists of options.
Stable
Web
iOS
Android
@advui/core
Source

Basic

Installation

pnpm
pnpm add @advui/core
npm
npm install @advui/core

Usage

import { Combobox, Field } from '@advui/core'

<Field label="Country">
  <Combobox options={countries} value={country} onValueChange={setCountry} />
</Field>

API reference

Combobox

PropTypeDefaultDescription
options{ value: string; label: string; description?: string; disabled?: boolean }[]—The options.
valuestring | null—The picked option’s value, when you control it.
defaultValuestring | null—The picked option’s value at first, when the field manages it.
onValueChange(value: string | null) => void—Called on a pick, and with null when the text is cleared.
filter(option, query) => boolean—Default: the label contains the text, ignoring case and accents.
emptyTextstring | null'No results'Shown when nothing matches; null hides the list instead.
placeholderstring—Shown while empty.
titlestring—Title of the bottom sheet on phones.
size'sm' | 'md' | 'lg''md'As Input.
invalidbooleanfalseError styling and `aria-invalid`, as Input.
disabledbooleanfalseNot focusable or editable, as Input.

Accessibility

  • On web the text box has role="combobox" with aria-expanded, aria-controls and aria-autocomplete="list"; focus stays in it and aria-activedescendant points at the highlighted option.
  • Options have role="option" and aria-selected; the picked one also shows a check.
  • On phones the field is a button that opens a bottom sheet with a search box and large, labelled rows.
  • On web a click or tap on the field opens the list, as on a select; Tab focus does not, so moving through a form stays quiet. The chevron toggles it.
Keyboard interactions
KeyAction
ArrowDown / ArrowUpOpens the list, then moves between options.
EnterPicks the highlighted option.
EscapeCloses the list and restores the picked label.

Platform notes

Web
The list renders in a portal and flips above the field when there is no room below.
iOS
Opens a bottom sheet that moves up with the keyboard.
Android
Opens a bottom sheet; the back button closes it.
Since v0.5.0Last updated Nov 2, 2026Edit this page on GitHub