{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "sf-tabs", "title": "SF Tabs", "description": "Industrial tabs with 2px borders, invert active state", "registryDependencies": [ "tabs" ], "files": [ { "path": "components/sf/sf-tabs.tsx", "content": "\"use client\";\n\nimport { Tabs, TabsContent, TabsList, TabsTrigger } from \"@/components/ui/tabs\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Tabbed interface — FRAME layer navigation primitive.\n *\n * Radix Tabs root wrapped with SF contract. Compose with\n * SFTabsList, SFTabsTrigger, and SFTabsContent for a full tab interface.\n * Triggers use underline active indicator (border-b-2) not background fill,\n * with muted → foreground color transition on hover.\n *\n * @example\n * \n * \n * Overview\n * Specs\n * \n * Content here\n * \n */\nfunction SFTabs(props: React.ComponentProps) {\n return ;\n}\n\n/** Sub-component of SFTabs — tab navigation bar with 2px bottom border and no padding. */\nfunction SFTabsList({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFTabs — tab button with underline active indicator and mono uppercase type. */\nfunction SFTabsTrigger({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFTabs — content panel shown when its matching tab trigger is active. */\nfunction SFTabsContent(props: React.ComponentProps) {\n return ;\n}\n\nexport { SFTabs, SFTabsList, SFTabsTrigger, SFTabsContent };\n", "type": "registry:ui" } ], "meta": { "layer": "frame", "pattern": "A" }, "type": "registry:ui" }