{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "sf-popover",
"title": "SF Popover",
"description": "Brutalist popover with 2px borders, no radius, no shadow",
"registryDependencies": [
"popover"
],
"files": [
{
"path": "components/sf/sf-popover.tsx",
"content": "\"use client\";\n\nimport {\n Popover,\n PopoverContent,\n PopoverDescription,\n PopoverHeader,\n PopoverTitle,\n PopoverTrigger,\n} from \"@/components/ui/popover\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Floating content panel — FRAME layer overlay primitive.\n *\n * Radix Popover root wrapped with SF contract. Compose with\n * SFPopoverTrigger, SFPopoverContent, SFPopoverHeader,\n * SFPopoverTitle, and SFPopoverDescription for full popover structure.\n * Content applies sharp corners, 2px border, no shadow.\n *\n * @example\n * \n * Info\n * \n * Details\n * \n * \n */\nfunction SFPopover(props: React.ComponentProps) {\n return ;\n}\n\n/** Sub-component of SFPopover — trigger element that opens the floating panel on interaction. */\nfunction SFPopoverTrigger(props: React.ComponentProps) {\n return ;\n}\n\n/** Sub-component of SFPopover — floating content panel with sharp corners, 2px border, and no shadow. */\nfunction SFPopoverContent({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFPopover — header region with 2px bottom border separating it from content. */\nfunction SFPopoverHeader({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFPopover — title rendered in font-mono uppercase with letter-spacing. */\nfunction SFPopoverTitle({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFPopover — supporting description text in muted foreground at text-xs. */\nfunction SFPopoverDescription({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\nexport {\n SFPopover,\n SFPopoverTrigger,\n SFPopoverContent,\n SFPopoverHeader,\n SFPopoverTitle,\n SFPopoverDescription,\n};\n",
"type": "registry:ui"
}
],
"meta": {
"layer": "frame",
"pattern": "A"
},
"type": "registry:ui"
}