{
  "name": "glow-panel",
  "type": "registry:ui",
  "title": "GlowPanel",
  "description": "The per-card accent glow: a panel glows with its object's accent while that object is happening, and goes quiet otherwise. Glow is state, never decoration.",
  "dependencies": [
    "@candlelight-ds/tokens",
    "clsx",
    "tailwind-merge"
  ],
  "files": [
    {
      "path": "components/instruments/GlowPanel.tsx",
      "type": "registry:ui",
      "content": "'use client'\n\n/**\n * GlowPanel — the per-card accent glow (grammar G7). Color is the live\n * channel: a panel glows with its object's accent while that object is\n * happening (the identity cell, a live card), and goes quiet otherwise.\n *\n * Use when: a card/cell represents something currently live or armed.\n * Don't use when: decoration — glow always means state. App-level\n * ambient tinting is RoomGlow's job (a StageShell layer), not this.\n */\n\nimport { cn } from '@/lib/utils'\n\ninterface GlowPanelProps {\n  /** The object's accent (hex). */\n  accent?: string\n  /** Glowing (live) vs quiet. */\n  active?: boolean\n  className?: string\n  children?: React.ReactNode\n}\n\nexport function GlowPanel({ accent, active = false, className, children }: GlowPanelProps) {\n  return (\n    <div\n      className={cn(\n        'relative overflow-hidden rounded-sm border border-hairline bg-fill-rest transition-shadow duration-500',\n        className\n      )}\n      style={\n        active && accent\n          ? {\n              // Live-state glow — the one sanctioned gradient outside\n              // content: G7's \"this is live right now\", never decoration.\n              // eslint-disable-next-line no-restricted-syntax\n              backgroundImage: `radial-gradient(ellipse 130% 120% at 30% 20%, ${accent}4d, transparent 65%)`,\n              boxShadow: `0 0 24px -6px ${accent}59`,\n            }\n          : accent\n            ? { backgroundColor: `${accent}14` }\n            : undefined\n      }\n    >\n      {children}\n    </div>\n  )\n}\n",
      "target": "components/instruments/GlowPanel.tsx"
    }
  ],
  "meta": {
    "candlelight": {
      "category": "instrument",
      "gRules": [
        "G7",
        "C4"
      ],
      "useWhen": "A card/cell represents something currently live or armed — the identity cell, a live card.",
      "dontUseWhen": "Decoration, or app-level ambient tinting (that's the room-glow layer: two radial washes at 2.5s, a StageShell glow slot).",
      "states": [
        "quiet (flat accent tint)",
        "active (radial glow + soft shadow)"
      ],
      "keyboard": [],
      "acceptanceTests": [
        "The glow gradient is the one sanctioned gradient outside content — it may appear only while active."
      ]
    }
  },
  "registryDependencies": [
    "utils"
  ]
}