{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "log-viewer",
  "title": "Log Viewer",
  "description": "Inspect timestamped runtime output in a scrollable, copy-ready console surface.",
  "dependencies": [
    "lucide-react@^1.33.0"
  ],
  "registryDependencies": [
    "https://components.exe.xyz/r/button.json",
    "https://components.exe.xyz/r/card.json",
    "https://components.exe.xyz/r/scroll-area.json"
  ],
  "files": [
    {
      "path": "src/components/blocks/log-viewer.tsx",
      "content": "import { Copy } from \"lucide-react\"\n\nimport { Button } from \"@/components/ui/button\"\nimport { Card, CardHeader, CardTitle } from \"@/components/ui/card\"\nimport { ScrollArea } from \"@/components/ui/scroll-area\"\n\nconst lines = [\n  [\"20:18:02\", \"INFO\", \"worker-4 accepted job run_8f21\"],\n  [\"20:18:03\", \"INFO\", \"loaded 12 resources in 184ms\"],\n  [\"20:18:05\", \"WARN\", \"retrying upstream request (1/3)\"],\n  [\"20:18:07\", \"INFO\", \"checkpoint saved · 4.2 MB\"],\n  [\"20:18:09\", \"INFO\", \"run completed successfully\"],\n]\n\nexport function LogViewer() {\n  return (\n    <Card className=\"gap-0 overflow-hidden bg-[#111815] text-[#dfe6e1]\">\n      <CardHeader className=\"flex-row items-center justify-between border-b border-white/10 py-3\">\n        <CardTitle className=\"font-mono text-xs text-[#dfe6e1]\">\n          runtime.log\n        </CardTitle>\n        <Button\n          variant=\"ghost\"\n          size=\"icon-sm\"\n          aria-label=\"Copy logs\"\n          className=\"text-[#dfe6e1]\"\n        >\n          <Copy />\n        </Button>\n      </CardHeader>\n      <ScrollArea className=\"h-44\">\n        <pre className=\"p-4 font-mono text-[11px] leading-6\">\n          {lines.map(([time, level, message]) => (\n            <div key={time}>\n              <span className=\"text-[#7f9189]\">{time}</span>{\" \"}\n              <span\n                className={\n                  level === \"WARN\" ? \"text-[#e8a166]\" : \"text-[#8cc7a8]\"\n                }\n              >\n                {level.padEnd(4)}\n              </span>{\" \"}\n              {message}\n            </div>\n          ))}\n        </pre>\n      </ScrollArea>\n    </Card>\n  )\n}\n",
      "type": "registry:block"
    }
  ],
  "type": "registry:block"
}