Skip to content
Forms

Multi Select

Pick multiple values shown as removable chips.

Import

tsx
import { MultiSelect } from "@cooud-ui/ui";
bash
npx cooud-ui add multi-select

Examples

API Reference

Generated from the component's exported types.

MultiSelectProps

PropTypeDefaultDescription
options*
MultiSelectOption[]Options shown in the searchable list.
value
string[]Controlled selection. Provide together with `onValueChange`.
defaultValue
string[]Uncontrolled initial selection.
onValueChange
(value: string[]) => voidCalled with the next selection whenever it changes.
placeholder
string"Select…"Text shown in the trigger when nothing is selected.
searchPlaceholder
string"Search…"Placeholder for the search input inside the popover.
emptyText
string"No results found."Text shown when the search yields no results.
maxDisplay
numberMaximum number of chips to render before collapsing the rest into a "+N" badge. When omitted, every selected chip is rendered.
disabled
booleanfalseDisable the whole control.
removeLastOnBackspace
booleantrueWhen true (default), pressing Backspace with an empty search removes the last selected item.
className
stringExtra classes for the trigger button.
contentClassName
stringExtra classes for the popover content.
aria-label
stringAccessible label for the trigger when no visible label is associated.
aria-labelledby
stringid of an element that labels the trigger.
aria-invalid
boolean | "true" | "false"Marks the trigger as invalid (e.g. from a Form layer), applying error styling.
open
booleanControls the popover open state (controlled).
defaultOpen
booleanInitial popover open state (uncontrolled).
onOpenChange
(open: boolean) => voidCalled when the popover open state changes.