{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "notra-table",
  "title": "Table",
  "description": "shadcn table primitives in a grey shell with a 2px rim around a lifted body card.",
  "dependencies": [
    "cn"
  ],
  "registryDependencies": [
    "table"
  ],
  "files": [
    {
      "path": "registry/notra/table/components/table.tsx",
      "content": "\"use client\";\n\nimport { cn } from \"cn\";\nimport type { ComponentProps } from \"react\";\n\nimport {\n  Table as ShadcnTable,\n  TableBody,\n  TableCaption as ShadcnTableCaption,\n  TableCell as ShadcnTableCell,\n  TableFooter as ShadcnTableFooter,\n  TableHead as ShadcnTableHead,\n  TableHeader as ShadcnTableHeader,\n  TableRow as ShadcnTableRow,\n} from \"@/components/ui/table\";\n\nconst TABLE_CARD_CELLS_CLASS = [\n  \"[&>tbody>tr>td]:bg-table-card [&>tbody>tr>td]:border-table-row-border [&>tbody>tr>td]:border-b [&>tbody>tr>td]:transition-colors\",\n  \"[&>tbody>tr:hover>td]:bg-muted\",\n  \"[&>tbody>tr:first-child>td]:border-t-table-card-border [&>tbody>tr:first-child>td]:border-t\",\n  \"[&>tbody>tr:last-child>td]:border-b-table-card-border\",\n  \"[&>tbody>tr>td:first-child]:border-l-table-card-border [&>tbody>tr>td:first-child]:border-l\",\n  \"[&>tbody>tr>td:last-child]:border-r-table-card-border [&>tbody>tr>td:last-child]:border-r\",\n  \"[&>tbody>tr:first-child>td:first-child]:rounded-tl-[14px] [&>tbody>tr:first-child>td:last-child]:rounded-tr-[14px]\",\n  \"[&>tbody>tr:last-child>td:first-child]:rounded-bl-[14px] [&>tbody>tr:last-child>td:last-child]:rounded-br-[14px]\",\n].join(\" \");\n\nfunction Table({ className, ...props }: ComponentProps<typeof ShadcnTable>) {\n  return (\n    <div className=\"border-table-shell-border bg-table-shell relative w-full min-w-0 rounded-2xl border p-0.5 *:data-[slot=table-container]:rounded-[14px]\">\n      <ShadcnTable\n        className={cn(\n          \"border-separate border-spacing-0 tabular-nums\",\n          TABLE_CARD_CELLS_CLASS,\n          className\n        )}\n        {...props}\n      />\n    </div>\n  );\n}\n\nfunction TableHeader({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnTableHeader>) {\n  return (\n    <ShadcnTableHeader\n      className={cn(\"[&_tr]:border-b-0\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction TableFooter({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnTableFooter>) {\n  return (\n    <ShadcnTableFooter\n      className={cn(\n        \"text-muted-foreground border-t-0 bg-transparent\",\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction TableRow({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnTableRow>) {\n  return (\n    <ShadcnTableRow\n      className={cn(\n        \"group/row border-b-0 hover:bg-transparent has-aria-expanded:bg-transparent data-[state=selected]:bg-transparent\",\n        className\n      )}\n      {...props}\n    />\n  );\n}\n\nfunction TableHead({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnTableHead>) {\n  return (\n    <ShadcnTableHead\n      className={cn(\"text-muted-foreground px-4\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction TableCell({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnTableCell>) {\n  return (\n    <ShadcnTableCell\n      className={cn(\"text-foreground h-12 px-4 py-0\", className)}\n      {...props}\n    />\n  );\n}\n\nfunction TableCaption({\n  className,\n  ...props\n}: ComponentProps<typeof ShadcnTableCaption>) {\n  return (\n    <ShadcnTableCaption\n      className={cn(\"mt-0 px-4 py-2.5\", className)}\n      {...props}\n    />\n  );\n}\n\nexport {\n  Table,\n  TableBody,\n  TableCaption,\n  TableCell,\n  TableFooter,\n  TableHead,\n  TableHeader,\n  TableRow,\n};\n",
      "type": "registry:component",
      "target": "components/table/components/table.tsx"
    }
  ],
  "cssVars": {
    "theme": {
      "color-table-shell": "var(--table-shell)",
      "color-table-shell-border": "var(--table-shell-border)",
      "color-table-card": "var(--table-card)",
      "color-table-card-border": "var(--table-card-border)",
      "color-table-row-border": "var(--table-row-border)",
      "shadow-table-card": "var(--table-card-shadow)"
    },
    "light": {
      "table-shell": "#f3f3f2",
      "table-shell-border": "#e7e7e5",
      "table-card": "#ffffff",
      "table-card-border": "#e5e5e5",
      "table-row-border": "#efefee",
      "table-card-shadow": "0 1px 2px hsl(240 10% 10% / 0.06), 0 2px 8px -2px hsl(240 10% 10% / 0.06)"
    },
    "dark": {
      "table-shell": "#161616",
      "table-shell-border": "#232323",
      "table-card": "#1f1f1f",
      "table-card-border": "#2c2c2c",
      "table-row-border": "#292929",
      "table-card-shadow": "inset 0 1px 0 hsl(0 0% 100% / 0.05), inset 0 0 0 1px hsl(0 0% 100% / 0.015), inset 0 12px 18px -16px hsl(0 0% 100% / 0.035)"
    }
  },
  "type": "registry:component"
}