{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "hud-avatar",
  "type": "registry:ui",
  "title": "HUD Avatar",
  "description": "Square initials avatar with status dot and rank bars.",
  "dependencies": [
    "@radix-ui/react-avatar",
    "class-variance-authority"
  ],
  "registryDependencies": [
    "utils"
  ],
  "files": [
    {
      "path": "registry/hud/hud-avatar.tsx",
      "content": "\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { cn } from \"@/lib/utils\"\n\nconst hudAvatarVariants = cva(\"relative inline-grid shrink-0 place-items-center bg-[#1A1D20] font-sans font-semibold\", {\n  variants: {\n    size: {\n      default: \"size-10 text-[15px] tracking-[0.05em]\",\n      sm: \"size-7 text-[11px]\",\n    },\n    variant: {\n      default: \"border border-border text-[#8A9094]\",\n      strong: \"border border-[#3A3E42] text-foreground\",\n      accent: \"border border-primary text-primary\",\n    },\n  },\n  defaultVariants: { size: \"default\", variant: \"default\" },\n})\n\nfunction HudAvatar({\n  className,\n  size,\n  variant,\n  ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root> & VariantProps<typeof hudAvatarVariants>) {\n  return (\n    <AvatarPrimitive.Root className={cn(hudAvatarVariants({ size, variant }), className)} {...props} />\n  )\n}\n\nfunction HudAvatarImage({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n  return (\n    <AvatarPrimitive.Image\n      className={cn(\"absolute inset-0 size-full object-cover\", className)}\n      {...props}\n    />\n  )\n}\n\nfunction HudAvatarFallback({ className, ...props }: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n  return <AvatarPrimitive.Fallback className={cn(\"uppercase\", className)} {...props} />\n}\n\n// 8px square status dot pinned to the bottom-right corner.\nfunction HudAvatarStatus({ className, ...props }: React.ComponentProps<\"span\">) {\n  return (\n    <span\n      aria-hidden\n      className={cn(\n        \"absolute -right-0.5 -bottom-0.5 size-2 border border-background bg-primary\",\n        className\n      )}\n      {...props}\n    />\n  )\n}\n\n// Rank tick bars centered under the avatar.\nfunction HudAvatarRank({ className, count = 3, ...props }: React.ComponentProps<\"span\"> & { count?: number }) {\n  return (\n    <span\n      aria-hidden\n      className={cn(\"absolute inset-x-0 -bottom-1.5 flex justify-center gap-0.5\", className)}\n      {...props}\n    >\n      {Array.from({ length: count }, (_, i) => (\n        <span key={i} className=\"h-0.5 w-1.5 bg-primary\" />\n      ))}\n    </span>\n  )\n}\n\nexport { HudAvatar, HudAvatarImage, HudAvatarFallback, HudAvatarStatus, HudAvatarRank }\n",
      "type": "registry:ui"
    }
  ]
}