{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "loading-table",
  "type": "registry:ui",
  "title": "Loading table",
  "description": "A skeleton placeholder for data tables with configurable rows and columns, a header row and aria-busy so assistive tech knows content is loading.",
  "dependencies": [],
  "registryDependencies": [
    "https://ui.minidev.pro/r/skeleton.json",
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/loading-table.tsx",
      "type": "registry:ui",
      "target": "components/ui/loading-table.tsx",
      "content": "\"use client\"\nimport * as React from \"react\"\nimport { cn } from \"@/lib/utils\"\nimport { Skeleton } from \"@/components/ui/skeleton\"\n\nfunction LoadingTable({ rows=5, cols=4, className }: { rows?: number; cols?: number; className?: string }) {\n  return (\n    <div data-slot=\"loading-table\" className={cn(\"w-full overflow-hidden rounded-xl border border-border\", className)} role=\"status\" aria-busy=\"true\" aria-label=\"Loading table\">\n      <div className=\"grid gap-0\">\n        <div className=\"grid border-b border-border bg-sunken px-3 py-3\" style={{ gridTemplateColumns: `repeat(${cols}, minmax(0,1fr))` }}>\n          {Array.from({ length: cols }).map((_, i) => <Skeleton key={i} className=\"h-3 w-20\" />)}\n        </div>\n        {Array.from({ length: rows }).map((_, r) => (\n          <div key={r} className=\"grid border-b border-border px-3 py-3 last:border-b-0\" style={{ gridTemplateColumns: `repeat(${cols}, minmax(0,1fr))` }}>\n            {Array.from({ length: cols }).map((_, c) => <Skeleton key={c} className=\"h-3 w-28\" />)}\n          </div>\n        ))}\n      </div>\n    </div>\n  )\n}\nexport { LoadingTable }\n"
    }
  ]
}
