{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "sf-table", "title": "SF Table", "description": "Brutalist data table with inverted header, mono text", "registryDependencies": [ "table" ], "files": [ { "path": "components/sf/sf-table.tsx", "content": "import {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableHeader,\n TableRow,\n} from \"@/components/ui/table\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Data table — FRAME layer data primitive.\n *\n * Semantically correct HTML table with SF styling: font-mono at text-xs\n * and 2px foreground outer border. Compose with SFTableHeader,\n * SFTableBody, SFTableRow, SFTableHead, and SFTableCell for full\n * table structure.\n *\n * @param className - Merged via cn() after base classes\n *\n * @example\n * \n * Name\n * Alice\n * \n */\nfunction SFTable({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFTable — inverted header row (foreground background, background text). */\nfunction SFTableHeader({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFTable — column heading cell in uppercase tracking-wider at text-xs. */\nfunction SFTableHead({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFTable — table row with muted border and subtle hover background. */\nfunction SFTableRow({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFTable — data cell with consistent px-3 py-2 padding. */\nfunction SFTableCell({\n className,\n ...props\n}: React.ComponentProps) {\n return (\n \n );\n}\n\n/** Sub-component of SFTable — table body container wrapping all data rows. */\nfunction SFTableBody({ className, ...props }: React.ComponentProps) {\n return ;\n}\n\nexport {\n SFTable,\n SFTableHeader,\n SFTableHead,\n SFTableRow,\n SFTableCell,\n SFTableBody,\n};\n", "type": "registry:ui" } ], "meta": { "layer": "frame", "pattern": "A" }, "type": "registry:ui" }