Select
Usage
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@jamie/ui/select'
const items = [
{ label: 'All meetings', value: 'all' },
{ label: 'Upcoming', value: 'upcoming' },
{ label: 'Completed', value: 'completed' },
{ label: 'Processing', value: 'processing' }
]
export function SelectDemo() {
return (
<Select defaultValue="all" items={items}>
<SelectTrigger className="w-[180px]">
<SelectValue placeholder="Filter meetings" />
</SelectTrigger>
<SelectContent>
{items.map((item) => (
<SelectItem key={item.value} value={item.value}>
{item.label}
</SelectItem>
))}
</SelectContent>
</Select>
)
}With Groups
Organize options into labelled groups using SelectGroup and SelectLabel.
import {
Select,
SelectContent,
SelectGroup,
SelectItem,
SelectLabel,
SelectTrigger,
SelectValue
} from '@jamie/ui/select'
const documents = [
{ label: 'Full Transcript', value: 'transcript' },
{ label: 'Meeting Summary', value: 'summary' },
{ label: 'Action Items', value: 'action-items' }
]
const integrations = [
{ label: 'Send to Slack', value: 'slack' },
{ label: 'Export to Notion', value: 'notion' },
{ label: 'Email Recap', value: 'email' }
]
const allItems = [...documents, ...integrations]
export function SelectWithGroupsDemo() {
return (
<Select defaultValue="transcript" items={allItems}>
<SelectTrigger className="w-[220px]">
<SelectValue placeholder="Export format" />
</SelectTrigger>
<SelectContent>
<SelectGroup>
<SelectLabel>Documents</SelectLabel>
{documents.map((item) => (
<SelectItem key={item.value} value={item.value}>
{item.label}
</SelectItem>
))}
</SelectGroup>
<SelectGroup>
<SelectLabel>Integrations</SelectLabel>
{integrations.map((item) => (
<SelectItem key={item.value} value={item.value}>
{item.label}
</SelectItem>
))}
</SelectGroup>
</SelectContent>
</Select>
)
}