Select
Single-select dropdown field.
Examples
Section titled “Examples”Default
Section titled “Default”Clear Assignee
Ada Lovelace
Grace Hopper
Katherine Johnson
<SelectStory {...args} />Searchable
Section titled “Searchable”Clear Assignee
Ada Lovelace
Grace Hopper
Katherine Johnson
<SelectStory {...args} />Custom Options
Section titled “Custom Options”Ada Lovelaceada@example.com
Grace Hoppergrace@example.com
Katherine Johnsonkatherine@example.com
<CustomOptionsStory {...args} />Disabled
Section titled “Disabled”Ada Lovelace
Grace Hopper
Katherine Johnson
<SelectStory {...args} />Loading
Section titled “Loading”Clear Assignee
Ada Lovelace
Grace Hopper
Katherine Johnson
<SelectStory {...args} />Many Options
Section titled “Many Options”Option 1
Option 2
Option 3
Option 4
Option 5
Option 6
Option 7
Option 8
Option 9
Option 10
Option 11
Option 12
Option 13
Option 14
Option 15
Option 16
Option 17
Option 18
Option 19
Option 20
Option 21
Option 22
Option 23
Option 24
Option 25
Option 26
Option 27
Option 28
Option 29
Option 30
Option 31
Option 32
Option 33
Option 34
Option 35
Option 36
Option 37
Option 38
Option 39
Option 40
<EmptySelectStory {...args} />Sections And Dividers
Section titled “Sections And Dividers”Clear Assignee
Engineering
Ada Lovelace
Grace Hopper
Science
Katherine Johnson
Hedy Lamarr
<SelectStory {...args} />Validation Status
Section titled “Validation Status”Clear Assignee
Ada Lovelace
Grace Hopper
Katherine Johnson
Choose an assignee before continuing.
<SelectStory {...args} />Ada Lovelace
Grace Hopper
Katherine Johnson
Ada Lovelace
Grace Hopper
Katherine Johnson
Ada Lovelace
Grace Hopper
Katherine Johnson
<SizesStory {...args} />With Start Icon
Section titled “With Start Icon”Clear Assignee
Ada Lovelace
Grace Hopper
Katherine Johnson
<SelectStory {...args} />Hidden Label
Section titled “Hidden Label”Clear Assignee
Ada Lovelace
Grace Hopper
Katherine Johnson
<SelectStory {...args} />Custom Placeholder
Section titled “Custom Placeholder”Ada Lovelace
Grace Hopper
Katherine Johnson
<EmptySelectStory {...args} />Disabled Options
Section titled “Disabled Options”Ada Lovelace
Grace Hopper (unavailable)
Katherine Johnson
Hedy Lamarr (unavailable)
<EmptySelectStory {...args} />Select
Section titled “Select”Single-select dropdown field.
When isOptional: false, isRequired: false
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | — | Additional CSS class names applied to the field root. |
data-testid | string | — | Test ID applied to the combobox button. |
description | ReactNode | — | Supporting text displayed below the label. |
hasClear | boolean | false | Whether to show a clear button when a value is selected. |
hasSearch | boolean | false | Whether to show search input in the dropdown. |
isDisabled | boolean | false | Whether the selector is disabled. |
isLabelHidden | boolean | false | Whether to visually hide the label. |
isLoading | boolean | false | Whether the selector is loading. |
label* | string | — | Field label. |
labelIcon | IconComponent | — | Icon shown before the label. |
labelTooltip | ReactNode | — | Tooltip content shown next to the label. |
onChange* | (value: string | null) => void | — | Called when selection changes. |
options* | ReadonlyArray<SelectOptionDefinition> | — | Options to display. |
placeholder | string | 'Select...' | Placeholder shown when no option is selected. |
ref | Ref<HTMLButtonElement> | — | Ref forwarded to the combobox button. |
renderOption | (option: SelectOptionData) => ReactNode | — | Custom render function for selectable options. |
searchPlaceholder | string | 'Search...' | Search input placeholder. |
size | "sm" | "md" | "lg" | 'md' | Select size. |
startIcon | IconComponent | — | Start icon rendered in the trigger. |
status | InputStatus | — | Validation status displayed below the selector. |
style | CSSProperties | — | Inline styles applied to the field root. |
value* | string | null | — | Selected option value. |
isOptional | false | — | |
isRequired | false | — |
When isOptional: true, isRequired: false
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | — | Additional CSS class names applied to the field root. |
data-testid | string | — | Test ID applied to the combobox button. |
description | ReactNode | — | Supporting text displayed below the label. |
hasClear | boolean | false | Whether to show a clear button when a value is selected. |
hasSearch | boolean | false | Whether to show search input in the dropdown. |
isDisabled | boolean | false | Whether the selector is disabled. |
isLabelHidden | boolean | false | Whether to visually hide the label. |
isLoading | boolean | false | Whether the selector is loading. |
label* | string | — | Field label. |
labelIcon | IconComponent | — | Icon shown before the label. |
labelTooltip | ReactNode | — | Tooltip content shown next to the label. |
onChange* | (value: string | null) => void | — | Called when selection changes. |
options* | ReadonlyArray<SelectOptionDefinition> | — | Options to display. |
placeholder | string | 'Select...' | Placeholder shown when no option is selected. |
ref | Ref<HTMLButtonElement> | — | Ref forwarded to the combobox button. |
renderOption | (option: SelectOptionData) => ReactNode | — | Custom render function for selectable options. |
searchPlaceholder | string | 'Search...' | Search input placeholder. |
size | "sm" | "md" | "lg" | 'md' | Select size. |
startIcon | IconComponent | — | Start icon rendered in the trigger. |
status | InputStatus | — | Validation status displayed below the selector. |
style | CSSProperties | — | Inline styles applied to the field root. |
value* | string | null | — | Selected option value. |
isOptional* | true | — | |
isRequired | false | — |
When isOptional: false, isRequired: true
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | — | Additional CSS class names applied to the field root. |
data-testid | string | — | Test ID applied to the combobox button. |
description | ReactNode | — | Supporting text displayed below the label. |
hasClear | boolean | false | Whether to show a clear button when a value is selected. |
hasSearch | boolean | false | Whether to show search input in the dropdown. |
isDisabled | boolean | false | Whether the selector is disabled. |
isLabelHidden | boolean | false | Whether to visually hide the label. |
isLoading | boolean | false | Whether the selector is loading. |
label* | string | — | Field label. |
labelIcon | IconComponent | — | Icon shown before the label. |
labelTooltip | ReactNode | — | Tooltip content shown next to the label. |
onChange* | (value: string | null) => void | — | Called when selection changes. |
options* | ReadonlyArray<SelectOptionDefinition> | — | Options to display. |
placeholder | string | 'Select...' | Placeholder shown when no option is selected. |
ref | Ref<HTMLButtonElement> | — | Ref forwarded to the combobox button. |
renderOption | (option: SelectOptionData) => ReactNode | — | Custom render function for selectable options. |
searchPlaceholder | string | 'Search...' | Search input placeholder. |
size | "sm" | "md" | "lg" | 'md' | Select size. |
startIcon | IconComponent | — | Start icon rendered in the trigger. |
status | InputStatus | — | Validation status displayed below the selector. |
style | CSSProperties | — | Inline styles applied to the field root. |
value* | string | null | — | Selected option value. |
isOptional | false | — | |
isRequired* | true | — |
SelectOption
Section titled “SelectOption”Helper layout for custom Select option rendering.
| Prop | Type | Default | Description |
|---|---|---|---|
className | string | — | Additional CSS class names applied to the option layout. |
data-testid | string | — | Test ID applied to the option layout. |
description | ReactNode | — | Supporting text displayed below the label. |
endContent | ReactNode | — | Trailing content. |
icon | IconComponent | — | Icon displayed before the label. |
label* | ReactNode | — | Primary label. |
ref | Ref<HTMLSpanElement> | — | Ref forwarded to the layout root. |
style | CSSProperties | — | Inline styles applied to the layout root. |