{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "status-badge",
  "title": "Status badge",
  "description": "A labelled status with a leading dot: attention uses the action fill, danger/ok/info use readable washes, neutral is outlined, and progress is outlined with a dot that stops pulsing under reduced motion. Exports Tone for exhaustive domain maps.",
  "registryDependencies": [
    "@waimakers/utils",
    "@waimakers/theme",
    "@waimakers/badge"
  ],
  "files": [
    {
      "path": "src/components/ui/status-badge.tsx",
      "content": "import type { ComponentProps } from \"react\";\nimport { cn } from \"../../lib/utils\";\nimport { Badge } from \"./badge\";\n\nconst toneClasses = {\n  attention:\n    \"border-transparent bg-[var(--attention-wash,var(--surface-sunken))] text-[var(--attention-text,var(--text))]\",\n  danger:\n    \"border-transparent bg-[var(--danger-wash,var(--surface-sunken))] text-[var(--danger-text,var(--text))]\",\n  ok: \"border-transparent bg-[var(--ok-wash,var(--surface-sunken))] text-[var(--ok-text,var(--text))]\",\n  info: \"border-transparent bg-[var(--info-wash,var(--surface-sunken))] text-[var(--info-text,var(--text))]\",\n  neutral: \"border-border text-muted-foreground\",\n  progress: \"border-border text-foreground\",\n};\n\ntype Tone = keyof typeof toneClasses;\n\nfunction StatusBadge({\n  tone,\n  label,\n  className,\n  ...props\n}: Omit<ComponentProps<\"span\">, \"children\"> & { tone: Tone; label: string }) {\n  return (\n    <Badge\n      variant=\"outline\"\n      data-slot=\"status-badge\"\n      data-tone={tone}\n      className={cn(\"gap-1.5\", toneClasses[tone], className)}\n      {...props}\n    >\n      <span\n        data-slot=\"status-dot\"\n        aria-hidden=\"true\"\n        className={cn(\n          \"size-1.5 shrink-0 rounded-full bg-current\",\n          tone === \"progress\" && \"animate-pulse motion-reduce:animate-none\",\n        )}\n      />\n      {label}\n    </Badge>\n  );\n}\n\nexport { StatusBadge };\nexport type { Tone };\n",
      "type": "registry:ui",
      "target": "components/ui/status-badge.tsx"
    }
  ],
  "type": "registry:ui"
}