Usage
import { Select } from "@smartacteam/ambient-web/select";
const fonts = [
{ label: "Select font", value: null },
{ label: "Sans-serif", value: "sans" },
{ label: "Serif", value: "serif" },
{ label: "Monospace", value: "mono" },
{ label: "Cursive", value: "cursive" },
];<Select.Root>
<Select.Trigger className="w-45">
<Select.Value />
</Select.Trigger>
<Select.Content>
<Select.Item value="light">Light</Select.Item>
<Select.Item value="dark">Dark</Select.Item>
<Select.Item value="system">System</Select.Item>
</Select.Content>
</Select.Root>Examples
Sizes
Scrollable
Multiple
Pass multiple to Select.Root to let the user pick several values. The popup stays open while toggling items, each selected item shows a checkmark, and Select.Value renders the selected labels. Provide items on the root so the trigger can resolve labels from values.
Count badge
Swap Select.Value for Select.CountValue to lead the trigger with a count Badge. The badge is shrink-0, so it stays pinned while long selections ellipsize — the number selected is always visible. Labels resolve from the root's items, same as Select.Value, so no extra wiring is needed.
Forward badgeProps to recolor the badge (e.g. badgeProps={{ color: "success" }}). For a fully custom summary — a "3 selected" string, an overflow +N — pass a render function to Select.Value instead.