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