{ "$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" }