Select Component
A versatile Select component for choosing from a list of options.import { Select } from "@locus-ui/components";import styles from "./styles.css";
<Select.Root variant="outlined"> <Select.Label position="top">Fruit</Select.Label> <Select.Trigger /> <Select.Content> <Select.Item value="apple">Apple</Select.Item> <Select.Item value="banana">Banana</Select.Item> <Select.Item value="mango">Mango</Select.Item> </Select.Content></Select.Root>Anatomy
Import the component and its parts:Anatomy
import { Select } from "@locus-ui/components";
<Select.Root> <Select.Label /> <Select.Trigger /> <Select.Content> <Select.Group> <Select.Item /> </Select.Group> <Select.Separator /> </Select.Content></Select.Root>Examples
Label Positions
The label can be positioned with theposition prop: top, left, or inside.
label-positions.tsx
import { Select } from "@locus-ui/components";
const labelPositions = ["top", "left", "inside"];
return labelPositions.map((position) => ( <Select.Root key={position} variant="outlined"> <Select.Label position={position}> {position.charAt(0).toUpperCase() + position.slice(1)} </Select.Label> <Select.Trigger /> <Select.Content> <Select.Item value="option1">Option 1</Select.Item>Variants
Select components come with three built in variants,outlined, solid, and clear, each shown across all label positions.
variants.tsx
import { Select } from "@locus-ui/components";
const variants = ["outlined", "solid", "clear"];
return variants.map((variant) => ( <Select.Root key={variant} variant={variant}> <Select.Label position="left"> {variant.charAt(0).toUpperCase() + variant.slice(1)} </Select.Label> <Select.Trigger /> <Select.Content> <Select.Item value="option1">Option 1</Select.Item>Groups
Items can be organized into groups usingSelect.Group with a title, separated by Select.Separator.
groups.tsx
import { Select } from "@locus-ui/components";
<Select.Root variant="solid"> <Select.Trigger /> <Select.Content> <Select.Group title="Group 1"> <Select.Item value="option1">Option 1</Select.Item> <Select.Item value="option2">Option 2</Select.Item> </Select.Group> <Select.Separator />