{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "sf-select",
"title": "SF Select",
"description": "Brutalist select with 2px borders, no radius, inverted focus state",
"registryDependencies": [
"select"
],
"files": [
{
"path": "components/sf/sf-select.tsx",
"content": "\"use client\";\n\nimport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Dropdown select input — FRAME layer form primitive.\n *\n * Radix Select root wrapped with SF contract. Compose with\n * SFSelectTrigger, SFSelectContent, SFSelectItem, SFSelectValue,\n * SFSelectGroup, and SFSelectLabel for a complete select control.\n * Trigger enforces font-mono, uppercase, sf-border-draw-focus.\n *\n * @example\n * \n * \n * \n * Option A\n * \n * \n */\nfunction SFSelect(props: React.ComponentProps) {\n return ;\n}\n\n/** Sub-component of SFSelect — trigger button with sf-border-draw-focus, mono uppercase, and no ring. */\nfunction SFSelectTrigger({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFSelect — dropdown panel with sharp corners, 2px border, and no shadow. */\nfunction SFSelectContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFSelect — option item in mono uppercase; inverts colors on focus. */\nfunction SFSelectItem({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFSelect — renders the currently selected value or placeholder inside SFSelectTrigger. */\nfunction SFSelectValue(props: React.ComponentProps) {\n return ;\n}\n\n/** Sub-component of SFSelect — groups related select items under a common label. */\nfunction SFSelectGroup(props: React.ComponentProps) {\n return ;\n}\n\n/** Sub-component of SFSelect — non-interactive group label in muted mono uppercase at 2xs size. */\nfunction SFSelectLabel({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nexport {\n SFSelect,\n SFSelectTrigger,\n SFSelectContent,\n SFSelectGroup,\n SFSelectItem,\n SFSelectLabel,\n SFSelectValue,\n};\n",
"type": "registry:ui"
}
],
"meta": {
"layer": "frame",
"pattern": "A"
},
"type": "registry:ui"
}