{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "shruggietech",
  "homepage": "https://shruggie.tech",
  "description": "ShruggieTech registry.",
  "items": [
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "theme",
      "type": "registry:theme",
      "title": "ShruggieTech Theme",
      "description": "ShruggieTech 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.5114 0.1308 152.98)",
          "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.5114 0.1308 152.98)",
          "chart-1": "oklch(0.5114 0.1308 152.98)",
          "chart-2": "oklch(0.5101 0.0872 205.29)",
          "chart-3": "oklch(0.5103 0.1208 257.07)",
          "chart-4": "oklch(0.5121 0.1198 309.30)",
          "chart-5": "oklch(0.5116 0.1198 1.28)",
          "sidebar": "oklch(1.0000 0 0)",
          "sidebar-foreground": "oklch(0.1448 0 0)",
          "sidebar-primary": "oklch(0.5114 0.1308 152.98)",
          "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.5114 0.1308 152.98)",
          "brand-accent-deep": "oklch(0.6433 0.2094 143.88)",
          "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.0000 0 0)",
          "foreground": "oklch(1.0000 0 0)",
          "card": "oklch(0.1776 0 0)",
          "card-foreground": "oklch(1.0000 0 0)",
          "popover": "oklch(0.1448 0 0)",
          "popover-foreground": "oklch(1.0000 0 0)",
          "primary": "oklch(0.7457 0.1802 152.99)",
          "primary-foreground": "oklch(0.0000 0 0)",
          "secondary": "oklch(0.1676 0.0071 258.37)",
          "secondary-foreground": "oklch(1.0000 0 0)",
          "muted": "oklch(0.1676 0.0071 258.37)",
          "muted-foreground": "oklch(0.6862 0 0)",
          "accent": "oklch(0.2178 0 0)",
          "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.7457 0.1802 152.99)",
          "chart-1": "oklch(0.6805 0.1753 152.98)",
          "chart-2": "oklch(0.6793 0.1160 205.07)",
          "chart-3": "oklch(0.6802 0.1654 256.90)",
          "chart-4": "oklch(0.6803 0.1658 308.88)",
          "chart-5": "oklch(0.6800 0.1652 1.09)",
          "sidebar": "oklch(0.1448 0 0)",
          "sidebar-foreground": "oklch(1.0000 0 0)",
          "sidebar-primary": "oklch(0.7457 0.1802 152.99)",
          "sidebar-primary-foreground": "oklch(0.0000 0 0)",
          "sidebar-accent": "oklch(0.2178 0 0)",
          "sidebar-accent-foreground": "oklch(1.0000 0 0)",
          "sidebar-border": "oklch(0.2686 0 0)",
          "sidebar-ring": "oklch(0.7457 0.1802 152.99)",
          "brand-accent-deep": "oklch(0.6433 0.2094 143.88)",
          "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": "project-row",
      "type": "registry:ui",
      "title": "ShruggieTech Project Row",
      "description": "A static data row for shruggietech surfaces. Place it in a suitable grid or table.",
      "files": [
        {
          "path": "components/shruggietech/project-row.tsx",
          "target": "@components/shruggietech/project-row.tsx",
          "type": "registry:ui",
          "content": "import type { ReactNode } from \"react\";\n\nexport type ProjectRowProps = {\n  \"name\": ReactNode;\n  \"category\": ReactNode;\n  \"status\": ReactNode;\n  \"repository\": ReactNode;\n  \"owner\": ReactNode;\n  \"updated_at\": ReactNode;\n};\n\nexport function ProjectRow(props: ProjectRowProps) {\n  return <div className=\"sh-project-row\" role=\"row\"><div className=\"sh-project-row__name\" role=\"cell\">{props[\"name\"]}</div><div className=\"sh-project-row__category\" role=\"cell\">{props[\"category\"]}</div><div className=\"sh-project-row__status\" role=\"cell\">{props[\"status\"]}</div><div className=\"sh-project-row__repository\" role=\"cell\">{props[\"repository\"]}</div><div className=\"sh-project-row__owner\" role=\"cell\">{props[\"owner\"]}</div><div className=\"sh-project-row__updated_at\" role=\"cell\">{props[\"updated_at\"]}</div></div>;\n}\n"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "service-row",
      "type": "registry:ui",
      "title": "ShruggieTech Service Row",
      "description": "A static data row for shruggietech surfaces. Place it in a suitable grid or table.",
      "files": [
        {
          "path": "components/shruggietech/service-row.tsx",
          "target": "@components/shruggietech/service-row.tsx",
          "type": "registry:ui",
          "content": "import type { ReactNode } from \"react\";\n\nexport type ServiceRowProps = {\n  \"service\": ReactNode;\n  \"outcome\": ReactNode;\n  \"scope\": ReactNode;\n  \"ownership\": ReactNode;\n  \"next_step\": ReactNode;\n};\n\nexport function ServiceRow(props: ServiceRowProps) {\n  return <div className=\"sh-service-row\" role=\"row\"><div className=\"sh-service-row__service\" role=\"cell\">{props[\"service\"]}</div><div className=\"sh-service-row__outcome\" role=\"cell\">{props[\"outcome\"]}</div><div className=\"sh-service-row__scope\" role=\"cell\">{props[\"scope\"]}</div><div className=\"sh-service-row__ownership\" role=\"cell\">{props[\"ownership\"]}</div><div className=\"sh-service-row__next_step\" role=\"cell\">{props[\"next_step\"]}</div></div>;\n}\n"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "shruggie-c-t-a",
      "type": "registry:ui",
      "title": "ShruggieTech Shruggie C T A",
      "description": "A static data row for shruggietech surfaces. Place it in a suitable grid or table.",
      "files": [
        {
          "path": "components/shruggietech/shruggie-c-t-a.tsx",
          "target": "@components/shruggietech/shruggie-c-t-a.tsx",
          "type": "registry:ui",
          "content": "import type { ReactNode } from \"react\";\n\nexport type ShruggieCTAProps = {\n  \"prompt\": ReactNode;\n  \"action\": ReactNode;\n  \"flourish\": ReactNode;\n  \"state\": ReactNode;\n};\n\nexport function ShruggieCTA(props: ShruggieCTAProps) {\n  return <div className=\"sh-shruggie-c-t-a\" role=\"row\"><div className=\"sh-shruggie-c-t-a__prompt\" role=\"cell\">{props[\"prompt\"]}</div><div className=\"sh-shruggie-c-t-a__action\" role=\"cell\">{props[\"action\"]}</div><div className=\"sh-shruggie-c-t-a__flourish\" role=\"cell\">{props[\"flourish\"]}</div><div className=\"sh-shruggie-c-t-a__state\" role=\"cell\">{props[\"state\"]}</div></div>;\n}\n"
        }
      ]
    }
  ]
}
