{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "table",
  "title": "Table",
  "description": "A manifest in mono with hairline rules. `is-numeric` gives a cell amber tabular figures.",
  "registryDependencies": [
    "@afterglow/theme"
  ],
  "files": [
    {
      "path": "registry/terminal/ui/table.tsx",
      "content": "import type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nfunction Table({\n  className,\n  containerClassName,\n  stickyHeader = false,\n  ...props\n}: React.ComponentProps<\"table\"> & {\n  containerClassName?: string;\n  stickyHeader?: boolean;\n}) {\n  return (\n    <div\n      className={cn(\"relative w-full overflow-auto\", containerClassName)}\n      data-slot=\"table-container\"\n    >\n      <table\n        className={cn(\n          \"w-full caption-bottom border-collapse font-mono text-xs\",\n          \"[&_td.is-numeric]:text-right [&_td.is-numeric]:font-normal [&_td.is-numeric]:text-metric [&_td.is-numeric]:tabular-nums\",\n          stickyHeader &&\n            \"[&_thead_th]:sticky [&_thead_th]:top-0 [&_thead_th]:z-10\",\n          className\n        )}\n        data-slot=\"table\"\n        {...props}\n      />\n    </div>\n  );\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n  return (\n    <thead\n      className={cn(\"[&_tr]:border-line [&_tr]:border-b\", className)}\n      data-slot=\"table-header\"\n      {...props}\n    />\n  );\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n  return (\n    <tbody\n      className={cn(\"[&_tr:last-child]:border-0\", className)}\n      data-slot=\"table-body\"\n      {...props}\n    />\n  );\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n  return (\n    <tfoot\n      className={cn(\n        \"border-line border-t bg-muted/50 font-medium [&>tr]:last:border-b-0\",\n        className\n      )}\n      data-slot=\"table-footer\"\n      {...props}\n    />\n  );\n}\n\nfunction TableRow({ className, ...props }: React.ComponentProps<\"tr\">) {\n  return (\n    <tr\n      className={cn(\n        \"border-line/60 border-b transition-colors hover:bg-phosphor/[0.06] data-[state=selected]:bg-phosphor/10 data-[state=selected]:shadow-[inset_2px_0_0_var(--phosphor)]\",\n        className\n      )}\n      data-slot=\"table-row\"\n      {...props}\n    />\n  );\n}\n\nfunction TableHead({ className, ...props }: React.ComponentProps<\"th\">) {\n  return (\n    <th\n      className={cn(\n        \"h-8 whitespace-nowrap bg-panel px-2.5 text-left align-middle font-semibold text-2xs text-phosphor-bright uppercase tracking-terminal\",\n        className\n      )}\n      data-slot=\"table-head\"\n      {...props}\n    />\n  );\n}\n\nfunction TableCell({ className, ...props }: React.ComponentProps<\"td\">) {\n  return (\n    <td\n      className={cn(\n        \"whitespace-nowrap px-2.5 py-1.5 align-middle text-foreground/85\",\n        className\n      )}\n      data-slot=\"table-cell\"\n      {...props}\n    />\n  );\n}\n\nfunction TableCaption({\n  className,\n  ...props\n}: React.ComponentProps<\"caption\">) {\n  return (\n    <caption\n      className={cn(\n        \"mt-3 font-semibold text-2xs text-phosphor-dim uppercase tracking-terminal\",\n        className\n      )}\n      data-slot=\"table-caption\"\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:ui"
    }
  ],
  "type": "registry:ui"
}