{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "led",
  "title": "LED",
  "description": "A status lamp and the line it sits in. Four tones, and the idle one holds still.",
  "registryDependencies": [
    "@afterglow/theme"
  ],
  "files": [
    {
      "path": "registry/terminal/components/led.tsx",
      "content": "import type * as React from \"react\";\n\nimport { cn } from \"@/lib/utils\";\n\nconst TONES = {\n  busy: \"bg-warning shadow-[0_0_8px_var(--warning)]\",\n  error: \"bg-signal shadow-[0_0_8px_var(--signal)]\",\n  idle: \"bg-phosphor-dim shadow-none\",\n  ok: \"bg-phosphor shadow-[0_0_8px_var(--phosphor)]\",\n} as const;\n\nfunction Led({\n  className,\n  tone = \"ok\",\n  pulse,\n  ...props\n}: React.ComponentProps<\"span\"> & {\n  tone?: keyof typeof TONES;\n  pulse?: boolean;\n}) {\n  const animated = pulse ?? tone !== \"idle\";\n\n  return (\n    <span\n      className={cn(\n        \"inline-block size-[0.45rem] shrink-0 rounded-full\",\n        TONES[tone],\n        animated && \"animate-led\",\n        className\n      )}\n      data-slot=\"led\"\n      data-tone={tone}\n      {...props}\n    />\n  );\n}\n\nfunction Status({\n  className,\n  tone = \"ok\",\n  children,\n  ...props\n}: React.ComponentProps<\"p\"> & { tone?: keyof typeof TONES }) {\n  return (\n    <p\n      className={cn(\n        \"flex items-center gap-2 font-mono font-semibold text-2xs uppercase tracking-terminal-sm\",\n        tone === \"error\" ? \"text-signal\" : \"text-muted-foreground\",\n        className\n      )}\n      data-slot=\"status\"\n      {...props}\n    >\n      <Led tone={tone} />\n      {children}\n    </p>\n  );\n}\n\nexport { Led, Status };\n",
      "type": "registry:component"
    }
  ],
  "type": "registry:component"
}