Multi Select
shadcn/uiMulti select allows the user to select multiple options from a list.
Multi Select
Installation
Props
<Select />
Name | Type | |
|---|---|---|
onValuesChange | string(default: undefined) | |
onOpenChange | string(default: undefined) | |
inputRef | React.Ref<HTMLInputElement> | |
highlightItemOnHover | boolean | |
defaultOpen | boolean | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
modal | boolean | |
items | Array<{label, value}> | Record<string, ReactNode> | |
itemToStringLabel | ((itemValue: Value) => string) | |
itemToStringValue | ((itemValue: Value) => string) | |
isItemEqualToValue | ((itemValue: Value, value: Value) => boolean) | |
onValueChange | (...args) => void | |
nativeButton | boolean | |
render | React.ReactElement | |
container | HTMLElement | RefObject<HTMLElement> | |
alignItemWithTrigger | boolean | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
label | string | |
keepMounted | boolean |
<SelectContent />
Name | Type | |
|---|---|---|
side | string(default: bottom) | |
inputRef | React.Ref<HTMLInputElement> | |
highlightItemOnHover | boolean | |
defaultOpen | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
modal | boolean | |
items | Array<{label, value}> | Record<string, ReactNode> | |
itemToStringLabel | ((itemValue: Value) => string) | |
itemToStringValue | ((itemValue: Value) => string) | |
isItemEqualToValue | ((itemValue: Value, value: Value) => boolean) | |
onValueChange | (...args) => void | |
nativeButton | boolean | |
render | React.ReactElement | |
container | HTMLElement | RefObject<HTMLElement> | |
alignItemWithTrigger | boolean | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
label | string | |
keepMounted | boolean |
<SelectGroup />
Name | Type | |
|---|---|---|
inputRef | React.Ref<HTMLInputElement> | |
highlightItemOnHover | boolean | |
defaultOpen | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
modal | boolean | |
items | Array<{label, value}> | Record<string, ReactNode> | |
itemToStringLabel | ((itemValue: Value) => string) | |
itemToStringValue | ((itemValue: Value) => string) | |
isItemEqualToValue | ((itemValue: Value, value: Value) => boolean) | |
onValueChange | (...args) => void | |
nativeButton | boolean | |
render | React.ReactElement | |
container | HTMLElement | RefObject<HTMLElement> | |
alignItemWithTrigger | boolean | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
label | string | |
keepMounted | boolean |
<SelectItem />
Name | Type | |
|---|---|---|
color | string(default: undefined) | |
inputRef | React.Ref<HTMLInputElement> | |
highlightItemOnHover | boolean | |
defaultOpen | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
modal | boolean | |
items | Array<{label, value}> | Record<string, ReactNode> | |
itemToStringLabel | ((itemValue: Value) => string) | |
itemToStringValue | ((itemValue: Value) => string) | |
isItemEqualToValue | ((itemValue: Value, value: Value) => boolean) | |
onValueChange | (...args) => void | |
nativeButton | boolean | |
render | React.ReactElement | |
container | HTMLElement | RefObject<HTMLElement> | |
alignItemWithTrigger | boolean | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
label | string | |
keepMounted | boolean |
<SelectLabel />
Name | Type | |
|---|---|---|
inputRef | React.Ref<HTMLInputElement> | |
highlightItemOnHover | boolean | |
defaultOpen | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
modal | boolean | |
items | Array<{label, value}> | Record<string, ReactNode> | |
itemToStringLabel | ((itemValue: Value) => string) | |
itemToStringValue | ((itemValue: Value) => string) | |
isItemEqualToValue | ((itemValue: Value, value: Value) => boolean) | |
onValueChange | (...args) => void | |
nativeButton | boolean | |
render | React.ReactElement | |
container | HTMLElement | RefObject<HTMLElement> | |
alignItemWithTrigger | boolean | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
label | string | |
keepMounted | boolean |
<SelectScrollDownButton />
Name | Type | |
|---|---|---|
inputRef | React.Ref<HTMLInputElement> | |
highlightItemOnHover | boolean | |
defaultOpen | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
modal | boolean | |
items | Array<{label, value}> | Record<string, ReactNode> | |
itemToStringLabel | ((itemValue: Value) => string) | |
itemToStringValue | ((itemValue: Value) => string) | |
isItemEqualToValue | ((itemValue: Value, value: Value) => boolean) | |
onValueChange | (...args) => void | |
nativeButton | boolean | |
render | React.ReactElement | |
container | HTMLElement | RefObject<HTMLElement> | |
alignItemWithTrigger | boolean | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
label | string | |
keepMounted | boolean |
<SelectScrollUpButton />
Name | Type | |
|---|---|---|
inputRef | React.Ref<HTMLInputElement> | |
highlightItemOnHover | boolean | |
defaultOpen | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
modal | boolean | |
items | Array<{label, value}> | Record<string, ReactNode> | |
itemToStringLabel | ((itemValue: Value) => string) | |
itemToStringValue | ((itemValue: Value) => string) | |
isItemEqualToValue | ((itemValue: Value, value: Value) => boolean) | |
onValueChange | (...args) => void | |
nativeButton | boolean | |
render | React.ReactElement | |
container | HTMLElement | RefObject<HTMLElement> | |
alignItemWithTrigger | boolean | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
label | string | |
keepMounted | boolean |
<SelectSeparator />
Name | Type | |
|---|---|---|
inputRef | React.Ref<HTMLInputElement> | |
highlightItemOnHover | boolean | |
defaultOpen | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
modal | boolean | |
items | Array<{label, value}> | Record<string, ReactNode> | |
itemToStringLabel | ((itemValue: Value) => string) | |
itemToStringValue | ((itemValue: Value) => string) | |
isItemEqualToValue | ((itemValue: Value, value: Value) => boolean) | |
onValueChange | (...args) => void | |
nativeButton | boolean | |
render | React.ReactElement | |
container | HTMLElement | RefObject<HTMLElement> | |
alignItemWithTrigger | boolean | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
label | string | |
keepMounted | boolean |
<SelectTrigger />
Name | Type | |
|---|---|---|
variant | string(default: undefined) | |
inputRef | React.Ref<HTMLInputElement> | |
highlightItemOnHover | boolean | |
defaultOpen | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
modal | boolean | |
items | Array<{label, value}> | Record<string, ReactNode> | |
itemToStringLabel | ((itemValue: Value) => string) | |
itemToStringValue | ((itemValue: Value) => string) | |
isItemEqualToValue | ((itemValue: Value, value: Value) => boolean) | |
onValueChange | (...args) => void | |
nativeButton | boolean | |
render | React.ReactElement | |
container | HTMLElement | RefObject<HTMLElement> | |
alignItemWithTrigger | boolean | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
label | string | |
keepMounted | boolean |
<SelectValue />
Name | Type | |
|---|---|---|
inputRef | React.Ref<HTMLInputElement> | |
highlightItemOnHover | boolean | |
defaultOpen | boolean | |
onOpenChange | (...args) => void | |
onOpenChangeComplete | ((open: boolean) => void) | |
open | boolean | |
modal | boolean | |
items | Array<{label, value}> | Record<string, ReactNode> | |
itemToStringLabel | ((itemValue: Value) => string) | |
itemToStringValue | ((itemValue: Value) => string) | |
isItemEqualToValue | ((itemValue: Value, value: Value) => boolean) | |
onValueChange | (...args) => void | |
nativeButton | boolean | |
render | React.ReactElement | |
container | HTMLElement | RefObject<HTMLElement> | |
alignItemWithTrigger | boolean | |
anchor | (...args) => Element | |
positionMethod | "absolute" | "fixed" | |
sideOffset | number | |
alignOffset | number | |
sticky | boolean | |
arrowPadding | number | |
disableAnchorTracking | boolean | |
label | string | |
keepMounted | boolean |