{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "covarity",
  "homepage": "https://covarity.ai",
  "description": "Covarity registry.",
  "items": [
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "theme",
      "type": "registry:theme",
      "title": "Covarity Theme",
      "description": "Covarity design tokens. Dark-first, WCAG AA, and brand-contract compliant.",
      "cssVars": {
        "theme": {
          "radius-sm": "6px",
          "radius-md": "8px",
          "radius-lg": "10px",
          "radius-xl": "12px",
          "radius-2xl": "16px",
          "font-display": "var(--font-display-role)"
        },
        "light": {
          "background": "oklch(0.9786 0.0026 106.45)",
          "foreground": "oklch(0.1448 0 0)",
          "card": "oklch(1.0000 0 0)",
          "card-foreground": "oklch(0.1448 0 0)",
          "popover": "oklch(1.0000 0 0)",
          "popover-foreground": "oklch(0.1448 0 0)",
          "primary": "oklch(0.5521 0.2823 307.97)",
          "primary-foreground": "oklch(1.0000 0 0)",
          "secondary": "oklch(0.9523 0.0029 84.56)",
          "secondary-foreground": "oklch(0.1448 0 0)",
          "muted": "oklch(0.9523 0.0029 84.56)",
          "muted-foreground": "oklch(0.5278 0 0)",
          "accent": "oklch(0.9523 0.0029 84.56)",
          "accent-foreground": "oklch(0.1448 0 0)",
          "destructive": "oklch(0.5308 0.1857 20.87)",
          "border": "oklch(0.6264 0.0015 106.44)",
          "input": "oklch(0.6264 0.0015 106.44)",
          "ring": "oklch(0.5521 0.2823 307.97)",
          "chart-1": "oklch(0.5521 0.2823 307.97)",
          "chart-2": "oklch(0.5510 0.1621 251.41)",
          "chart-3": "oklch(0.5404 0.0921 195.74)",
          "chart-4": "oklch(0.5390 0.1663 137.92)",
          "chart-5": "oklch(0.5517 0.1137 81.80)",
          "sidebar": "oklch(1.0000 0 0)",
          "sidebar-foreground": "oklch(0.1448 0 0)",
          "sidebar-primary": "oklch(0.5521 0.2823 307.97)",
          "sidebar-primary-foreground": "oklch(1.0000 0 0)",
          "sidebar-accent": "oklch(0.9523 0.0029 84.56)",
          "sidebar-accent-foreground": "oklch(0.1448 0 0)",
          "sidebar-border": "oklch(0.6264 0.0015 106.44)",
          "sidebar-ring": "oklch(0.5521 0.2823 307.97)",
          "brand-accent-deep": "oklch(0.6302 0.2785 311.73)",
          "brand-emphasis": "oklch(0.5519 0.1759 39.26)",
          "brand-cta": "oklch(0.5519 0.1759 39.26)",
          "brand-cta-foreground": "oklch(1.0000 0 0)",
          "brand-cta-outline-foreground": "oklch(0.5519 0.1759 39.26)"
        },
        "dark": {
          "background": "oklch(0.1448 0.0152 291.11)",
          "foreground": "oklch(1.0000 0 0)",
          "card": "oklch(0.1863 0.0243 291.50)",
          "card-foreground": "oklch(1.0000 0 0)",
          "popover": "oklch(0.1335 0.0139 293.01)",
          "popover-foreground": "oklch(1.0000 0 0)",
          "primary": "oklch(0.6713 0.2436 311.80)",
          "primary-foreground": "oklch(0.0000 0 0)",
          "secondary": "oklch(0.1946 0.0221 292.56)",
          "secondary-foreground": "oklch(1.0000 0 0)",
          "muted": "oklch(0.1946 0.0221 292.56)",
          "muted-foreground": "oklch(0.6862 0 0)",
          "accent": "oklch(0.2171 0.0234 291.97)",
          "accent-foreground": "oklch(1.0000 0 0)",
          "destructive": "oklch(0.6437 0.1882 18.59)",
          "border": "oklch(0.2686 0 0)",
          "input": "oklch(0.2686 0 0)",
          "ring": "oklch(0.6713 0.2436 311.80)",
          "chart-1": "oklch(0.6794 0.2362 311.66)",
          "chart-2": "oklch(0.6802 0.1717 254.86)",
          "chart-3": "oklch(0.6791 0.1155 199.18)",
          "chart-4": "oklch(0.6813 0.2245 141.78)",
          "chart-5": "oklch(0.6786 0.1389 85.74)",
          "sidebar": "oklch(0.1335 0.0139 293.01)",
          "sidebar-foreground": "oklch(1.0000 0 0)",
          "sidebar-primary": "oklch(0.6713 0.2436 311.80)",
          "sidebar-primary-foreground": "oklch(0.0000 0 0)",
          "sidebar-accent": "oklch(0.2171 0.0234 291.97)",
          "sidebar-accent-foreground": "oklch(1.0000 0 0)",
          "sidebar-border": "oklch(0.2686 0 0)",
          "sidebar-ring": "oklch(0.6713 0.2436 311.80)",
          "brand-accent-deep": "oklch(0.6302 0.2785 311.73)",
          "brand-emphasis": "oklch(0.6738 0.2190 38.33)",
          "brand-cta": "oklch(0.5519 0.1759 39.26)",
          "brand-cta-foreground": "oklch(1.0000 0 0)",
          "brand-cta-outline-foreground": "oklch(1.0000 0 0)"
        }
      },
      "css": {
        "@layer base": {
          ":focus-visible": {
            "outline": "2px solid var(--ring)",
            "outline-offset": "2px"
          }
        }
      },
      "docs": "Dark-first. Set defaultTheme=\"dark\" in your theme provider. The bright accent is never text on a light surface; the light block already substitutes the accessible variant. The parent kit's color-roles.json names approved identity combinations and measured interface cues with non-color signals."
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "evidence-row",
      "type": "registry:ui",
      "title": "Covarity Evidence Row",
      "description": "A static data row for covarity surfaces. Place it in a suitable grid or table.",
      "files": [
        {
          "path": "components/covarity/evidence-row.tsx",
          "target": "@components/covarity/evidence-row.tsx",
          "type": "registry:ui",
          "content": "import type { ReactNode } from \"react\";\n\nexport type EvidenceRowProps = {\n  \"source\": ReactNode;\n  \"span\": ReactNode;\n  \"support\": ReactNode;\n  \"verdict\": ReactNode;\n  \"confidence\": ReactNode;\n  \"selected\"?: boolean;\n};\n\nexport function EvidenceRow(props: EvidenceRowProps) {\n  return <div className=\"co-evidence-row\" role=\"row\" aria-selected={props.selected ?? false}><div className=\"co-evidence-row__source\" role=\"cell\">{props[\"source\"]}</div><div className=\"co-evidence-row__span\" role=\"cell\">{props[\"span\"]}</div><div className=\"co-evidence-row__support\" role=\"cell\">{props[\"support\"]}</div><div className=\"co-evidence-row__verdict\" role=\"cell\">{props[\"verdict\"]}</div><div className=\"co-evidence-row__confidence\" role=\"cell\">{props[\"confidence\"]}</div></div>;\n}\n"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "verdict-row",
      "type": "registry:ui",
      "title": "Covarity Verdict Row",
      "description": "A static data row for covarity surfaces. Place it in a suitable grid or table.",
      "files": [
        {
          "path": "components/covarity/verdict-row.tsx",
          "target": "@components/covarity/verdict-row.tsx",
          "type": "registry:ui",
          "content": "import type { ReactNode } from \"react\";\n\nexport type VerdictRowProps = {\n  \"reference\": ReactNode;\n  \"candidate\": ReactNode;\n  \"decision\": ReactNode;\n  \"threshold\": ReactNode;\n  \"reviewer\": ReactNode;\n};\n\nexport function VerdictRow(props: VerdictRowProps) {\n  return <div className=\"co-verdict-row\" role=\"row\"><div className=\"co-verdict-row__reference\" role=\"cell\">{props[\"reference\"]}</div><div className=\"co-verdict-row__candidate\" role=\"cell\">{props[\"candidate\"]}</div><div className=\"co-verdict-row__decision\" role=\"cell\">{props[\"decision\"]}</div><div className=\"co-verdict-row__threshold\" role=\"cell\">{props[\"threshold\"]}</div><div className=\"co-verdict-row__reviewer\" role=\"cell\">{props[\"reviewer\"]}</div></div>;\n}\n"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "context-unit-row",
      "type": "registry:ui",
      "title": "Covarity Context Unit Row",
      "description": "A static data row for covarity surfaces. Place it in a suitable grid or table.",
      "files": [
        {
          "path": "components/covarity/context-unit-row.tsx",
          "target": "@components/covarity/context-unit-row.tsx",
          "type": "registry:ui",
          "content": "import type { ReactNode } from \"react\";\n\nexport type ContextUnitRowProps = {\n  \"scope\": ReactNode;\n  \"unit\": ReactNode;\n  \"origin\": ReactNode;\n  \"precedence\": ReactNode;\n  \"bytes\": ReactNode;\n};\n\nexport function ContextUnitRow(props: ContextUnitRowProps) {\n  return <div className=\"co-context-unit-row\" role=\"row\"><div className=\"co-context-unit-row__scope\" role=\"cell\">{props[\"scope\"]}</div><div className=\"co-context-unit-row__unit\" role=\"cell\">{props[\"unit\"]}</div><div className=\"co-context-unit-row__origin\" role=\"cell\">{props[\"origin\"]}</div><div className=\"co-context-unit-row__precedence\" role=\"cell\">{props[\"precedence\"]}</div><div className=\"co-context-unit-row__bytes\" role=\"cell\">{props[\"bytes\"]}</div></div>;\n}\n"
        }
      ]
    }
  ]
}
