{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "character-tile",
  "title": "Character tile",
  "description": "The character column header — a Nameplate whose headline defaults to the Guardian's class.",
  "dependencies": [
    "@engram/core"
  ],
  "registryDependencies": [
    "@engram/cn",
    "@engram/nameplate",
    "@engram/tokens"
  ],
  "files": [
    {
      "path": "src/components/character-tile.tsx",
      "content": "import type { EmblemRef, GuardianClass } from \"@engram/core\";\nimport type { HTMLAttributes } from \"react\";\nimport { cn } from \"../lib/cn.js\";\nimport { Nameplate } from \"./nameplate.js\";\n\nexport interface CharacterTileProps\n  extends Omit<HTMLAttributes<HTMLDivElement>, \"color\"> {\n  emblem: EmblemRef;\n  /** Guardian class — the headline defaults to its name. */\n  class?: GuardianClass;\n  /** Headline override (defaults to the class name). */\n  name?: string;\n  /** Equipped Seal title (gold) — shown on the secondary line. */\n  title?: string;\n  /** Secondary descriptor (race). Power is NOT repeated here — it has its own slot. */\n  subtitle?: string;\n  power?: number;\n  /** Pixel height. Default 72. */\n  height?: number;\n}\n\nconst CLASS_LABEL: Record<GuardianClass, string> = {\n  titan: \"Titan\",\n  hunter: \"Hunter\",\n  warlock: \"Warlock\",\n};\n\n/**\n * The character column header — a {@link Nameplate} whose headline defaults to\n * the Guardian's class. Same nameplate model as everywhere else (emblem art,\n * class/name headline, gold Seal title · race on the secondary line, power once\n * top-right), so character headers, the top nameplate, and roster rows stay\n * consistent. Sits atop a character's inventory column.\n */\nexport function CharacterTile({\n  emblem,\n  class: guardianClass,\n  name,\n  title,\n  subtitle,\n  power,\n  height = 72,\n  className,\n  ...props\n}: CharacterTileProps) {\n  const headline =\n    name ?? (guardianClass ? CLASS_LABEL[guardianClass] : \"Guardian\");\n  return (\n    <Nameplate\n      name={headline}\n      emblem={emblem}\n      title={title}\n      subtitle={subtitle}\n      power={power}\n      height={height}\n      className={cn(\"w-full\", className)}\n      {...props}\n    />\n  );\n}\n",
      "type": "registry:component",
      "target": "components/engram/character-tile.tsx"
    }
  ],
  "meta": {
    "level": "component"
  },
  "docs": "Extend without forking: edit the copied source, use `asChild` (Radix Slot) to change the rendered element, pass the typed `annotations` prop for curated data (verdict/tags/per-plug), or use slot / render-prop props for arbitrary content. Requires the @engram/tokens theme (--engram-* CSS variables).",
  "categories": [
    "nameplate"
  ],
  "type": "registry:component"
}