Combobox
Anatomy
Section titled “Anatomy”<ComboBox> <ComboBoxTrigger /> <ComboBoxContent> <ComboBoxMenu> <ComboBoxMenuItem /> </ComboBoxMenu> <ComboBoxSeparator /> <ComboBoxLabel /> <ComboBoxItem /> </ComboBoxContent></ComboBox>To display a filterable list of menu items, compose <ComboBox>, <ComboBoxTrigger>, <ComboBoxContent>, <ComboBoxMenu>, and one or more of <ComboBoxMenuItem>.
import { Button } from "stylus-ui/Button";import { ComboBox, ComboBoxTrigger, ComboBoxContent, ComboBoxMenu, ComboBoxMenuItem,} from "stylus-ui/ComboBox";import { comboOptions } from "stylus-ui/ComboBox/constants.tsx";import { faAngleDown } from "@fortawesome/pro-regular-svg-icons";
export default () => ( <ComboBox> <ComboBoxTrigger asChild> <Button variant="secondary" dropdown> Select Teammate </Button> </ComboBoxTrigger> <ComboBoxContent> <ComboBoxMenu> {comboOptions.map((option) => ( <ComboBoxMenuItem {...option} key={option.value}> {option.label} </ComboBoxMenuItem> ))} </ComboBoxMenu> </ComboBoxContent> </ComboBox>);Multiple menus
Section titled “Multiple menus”You can include more than one <ComboBoxMenu> in the dropdown. When including multiple menus, it’s helpful to also include <ComboBoxLabel> and <ComboBoxSeparator>. To prevent a menu from displaying a search input, use isSearchable={false}.
import { Button } from "stylus-ui/Button";import { ComboBox, ComboBoxTrigger, ComboBoxContent, ComboBoxLabel, ComboBoxMenu, ComboBoxMenuItem, ComboBoxSeparator,} from "stylus-ui/ComboBox";import { comboOptions, comboTimeframeOptions,} from "stylus-ui/ComboBox/constants.tsx";import { faUserPlus } from "@fortawesome/pro-regular-svg-icons";
export default () => ( <ComboBox> <ComboBoxTrigger asChild> <Button variant="secondary" dropdown> Select Teammate </Button> </ComboBoxTrigger> <ComboBoxContent> <ComboBoxMenu> {comboOptions.map((option) => ( <ComboBoxMenuItem {...option} key={option.value}> {option.label} </ComboBoxMenuItem> ))} </ComboBoxMenu> <ComboBoxSeparator /> <ComboBoxLabel>Timeframe</ComboBoxLabel> <ComboBoxMenu isSearchable={false}> {comboTimeframeOptions.map((option) => ( <ComboBoxMenuItem {...option} key={option.value}> {option.label} </ComboBoxMenuItem> ))} </ComboBoxMenu> </ComboBoxContent> </ComboBox>);Non-filterable actions
Section titled “Non-filterable actions”Add extra items outside the scope of menu filters by using <ComboBoxItem>. Use a <ComboBoxSeparator> to visually distinguish sections.
import { Button } from "stylus-ui/Button";import { ComboBox, ComboBoxTrigger, ComboBoxContent, ComboBoxItem, ComboBoxMenu, ComboBoxMenuItem, ComboBoxSeparator,} from "stylus-ui/ComboBox";import { comboOptions } from "stylus-ui/ComboBox/constants.tsx";import { faUserPlus } from "@fortawesome/pro-regular-svg-icons";
export default () => ( <ComboBox> <ComboBoxTrigger asChild> <Button variant="secondary" dropdown> Select Teammate </Button> </ComboBoxTrigger> <ComboBoxContent> <ComboBoxMenu> {comboOptions.map((option) => ( <ComboBoxMenuItem {...option} key={option.value}> {option.label} </ComboBoxMenuItem> ))} </ComboBoxMenu> <ComboBoxSeparator /> <ComboBoxItem icon={faUserPlus}>Invite Teammates</ComboBoxItem> </ComboBoxContent> </ComboBox>);API Reference
Section titled “API Reference”ComboBox
Section titled “ComboBox”Contains all the parts of the ComboBox.
ComboBoxContent
Section titled “ComboBoxContent”The element that pops out when ComboBox is open.
Inherits properties from Radix Popover.Content and HTMLElement.
ComboBoxItem
Section titled “ComboBoxItem”An interactive item which exists outside the scope of the menu and is not filterable.
Inherits properties from HTMLButtonElement.
ComboBoxLabel
Section titled “ComboBoxLabel”A non-interactive label to provide a heading for a section of the ComboBox.
ComboBoxMenu
Section titled “ComboBoxMenu”The element that contains all of the menu items and displays an input that can be used to filter them.
ComboBoxMenuItem
Section titled “ComboBoxMenuItem”A single item within the filterable menu.
ComboBoxSeparator
Section titled “ComboBoxSeparator”A horizontal line to separate sections within the ComboBox.
ComboBoxTrigger
Section titled “ComboBoxTrigger”The button that, when clicked, toggles the ComboBox.
Inherits properties from HTMLButtonElement.