Skip to content

components/combobox

ComboboxItemState = object

Intrinsic focus and selection state supplied when rendering a Combobox item.

active: boolean

disabled: boolean

selected: boolean


ComboboxProps<T> > = ComboboxBaseProps<T> > & ComboboxInlineProps | ComboboxPopupProps & ComboboxValueProps<T>>

Props accepted by Combobox.

T


ComboboxBaseProps<T> > = object & Omit<React.HTMLAttributes<HTMLDivElement>>, "defaultValue" | "value">>

Props shared by every Combobox mode: item shape, rendering, and field wiring.

optional container?: BasePopover.Portal.Props["container"]

Native portal destination. Use an unclipped themed container for nested themes.

optional contentClassName?: string

optional emptyMessage?: ReactNode

getKey: (item) => string

Returns the stable identity used to track and compare items.

T

string

getLabel: (item) => string

Returns the text shown for an item in the trigger and the list.

T

string

optional getSearchText?: (item) => string

Returns the text matched against caller input; defaults to the item’s label.

T

string

optional groupBy?: (item) => string

Returns the heading an item is grouped under in the list.

T

string

optional id?: string

Identifies the popup trigger or inline input for native label association.

optional inputProps?: Omit<React.InputHTMLAttributes<HTMLInputElement>>, "defaultValue" | "value">>

optional inputRef?: React.Ref<HTMLInputElement>>

optional rootRef?: React.Ref<HTMLDivElement>>

Receives the selection control’s root div.

optional isDisabled?: (item) => boolean

Returns whether an item is unselectable.

T

boolean

items: readonly T[]

optional placeholder?: string

optional renderItem?: (item, active, state) => ReactNode

Renders one item’s content; defaults to its label.

T

boolean

ComboboxItemState

ReactNode

T


ComboboxInlineProps = object

Combobox mode flags for the inline (always-expanded, no popup trigger) layout.

optional defaultOpen?: never

optional onOpenChange?: never

optional open?: never

optional trigger?: never

optional triggerRef?: never


ComboboxPopupProps = { defaultOpen?: boolean; onOpenChange?: (open) => void; open?: never; trigger: ReactElement<ButtonHTMLAttributes<HTMLButtonElement>>>>; triggerRef?: React.Ref<HTMLButtonElement>>; } | { defaultOpen?: never; onOpenChange?: (open) => void; open: boolean; trigger: ReactElement<ButtonHTMLAttributes<HTMLButtonElement>>>>; triggerRef?: React.Ref<HTMLButtonElement>>; }

Combobox mode flags for the popup layout, either caller-controlled or uncontrolled open state.

{ defaultOpen?: boolean; onOpenChange?: (open) => void; open?: never; trigger: ReactElement<ButtonHTMLAttributes<HTMLButtonElement>>; triggerRef?: React.Ref<HTMLButtonElement>; }

optional defaultOpen?: boolean

optional onOpenChange?: (open) => void

Called after the popup’s open state changes.

boolean

void

optional open?: never

trigger: ReactElement<ButtonHTMLAttributes<HTMLButtonElement>>>>

optional triggerRef?: React.Ref<HTMLButtonElement>>


{ defaultOpen?: never; onOpenChange?: (open) => void; open: boolean; trigger: ReactElement<ButtonHTMLAttributes<HTMLButtonElement>>; triggerRef?: React.Ref<HTMLButtonElement>; }

optional defaultOpen?: never

optional onOpenChange?: (open) => void

Called after the popup’s open state changes.

boolean

void

open: boolean

trigger: ReactElement<ButtonHTMLAttributes<HTMLButtonElement>>>>

optional triggerRef?: React.Ref<HTMLButtonElement>>


ComboboxValueProps<T> > = { defaultValue?: never; value: null | string; } | { defaultValue?: null | string; value?: never; } & object | { multiple: true; value: readonly string[]; defaultValue?: never; onValueChange?: (value, items) => void; }

Combobox selection shape: single or multiple, controlled or uncontrolled.

T

{ defaultValue?: never; value: null | string; } | { defaultValue?: null | string; value?: never; } & object


{ multiple: true; value: readonly string[]; defaultValue?: never; onValueChange?: (value, items) => void; }

multiple: true

value: readonly string[]

optional defaultValue?: never

optional onValueChange?: (value, items) => void

Called with the newly selected keys and items.

string[]

T[]

void

const ComboboxTrigger: ForwardRefExoticComponent<ButtonHTMLAttributes<HTMLButtonElement> > & RefAttributes<HTMLButtonElement>>>>

The same molded field face as Select, for caller-owned selection summaries.

Combobox<T>>(props): Element

A searchable selection primitive with caller-owned values and intrinsic keyboard navigation.

T

ComboboxProps<T>

Element