{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "table",
  "type": "registry:ui",
  "title": "Table",
  "description": "Plain table primitives with numeric cells.",
  "registryDependencies": [
    "@wibo/utils"
  ],
  "files": [
    {
      "path": "src/components/table.tsx",
      "type": "registry:ui",
      "content": "import type { ComponentProps } from \"react\";\nimport { cn } from \"@/lib/utils\";\n\n/**\n * Plain table primitives. Use `DataTable` when you need sorting, column\n * toggles or pagination. Mastra Studio density: 32 px header row, 40 px body\n * rows, 13 px cells, 12 px muted headers, a 4 % hover fill.\n */\nfunction Table({ className, ...props }: ComponentProps<\"table\">) {\n  return (\n    <div data-slot=\"table-container\" className=\"relative w-full overflow-x-auto\">\n      <table\n        data-slot=\"table\"\n        className={cn(\"w-full caption-bottom text-label\", className)}\n        {...props}\n      />\n    </div>\n  );\n}\n\nfunction TableHeader({ className, ...props }: ComponentProps<\"thead\">) {\n  return <thead data-slot=\"table-header\" className={cn(\"[&_tr]:border-b\", className)} {...props} />;\n}\n\nfunction TableBody({ className, ...props }: ComponentProps<\"tbody\">) {\n  return (\n    <tbody\n      data-slot=\"table-body\"\n      className={cn(\"[&_tr:last-child]:border-0\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction TableFooter({ className, ...props }: ComponentProps<\"tfoot\">) {\n  return (\n    <tfoot\n      data-slot=\"table-footer\"\n      className={cn(\"border-t border-border bg-muted/50 font-medium [&>tr]:last:border-b-0\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction TableRow({ className, ...props }: ComponentProps<\"tr\">) {\n  return (\n    <tr\n      data-slot=\"table-row\"\n      className={cn(\n        \"border-b border-border transition-colors duration-150 hover:bg-foreground/3 data-[state=selected]:bg-foreground/6\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\n/** Header cell. Set `numeric` on columns holding numbers: right-aligned, tabular figures. */\nfunction TableHead({ className, numeric, ...props }: ComponentProps<\"th\"> & { numeric?: boolean }) {\n  return (\n    <th\n      data-slot=\"table-head\"\n      className={cn(\n        \"h-8 px-3 text-left align-middle text-xs font-medium whitespace-nowrap text-muted-foreground [&:has([role=checkbox])]:w-8 [&:has([role=checkbox])]:pr-0\",\n        numeric && \"text-right\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\n/** Body cell. Set `numeric` for numbers: right-aligned, tabular, monospace. */\nfunction TableCell({ className, numeric, ...props }: ComponentProps<\"td\"> & { numeric?: boolean }) {\n  return (\n    <td\n      data-slot=\"table-cell\"\n      className={cn(\n        \"h-10 px-3 py-1.5 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\",\n        numeric && \"text-right font-mono tabular-nums\",\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction TableCaption({ className, ...props }: ComponentProps<\"caption\">) {\n  return (\n    <caption\n      data-slot=\"table-caption\"\n      className={cn(\"mt-4 text-label text-muted-foreground\", className)}\n      {...props}\n    />\n  );\n}\n\nexport { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };\n"
    }
  ]
}
