{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "glitchpad",
  "homepage": "https://glitchpad.com",
  "description": "Glitchpad registry.",
  "items": [
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "theme",
      "type": "registry:theme",
      "title": "Glitchpad Theme",
      "description": "Glitchpad 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.1536 0.0027 248.00)",
          "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.1536 0.0027 248.00)",
          "chart-1": "oklch(0.3508 0.0032 228.87)",
          "chart-2": "oklch(0.3504 0.0027 197.03)",
          "chart-3": "oklch(0.3502 0.0037 308.34)",
          "chart-4": "oklch(0.3510 0.0022 145.53)",
          "chart-5": "oklch(0.3508 0.0032 345.38)",
          "sidebar": "oklch(1.0000 0 0)",
          "sidebar-foreground": "oklch(0.1448 0 0)",
          "sidebar-primary": "oklch(0.1536 0.0027 248.00)",
          "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.1536 0.0027 248.00)",
          "brand-accent-deep": "oklch(0.5615 0.0333 248.42)",
          "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.1536 0.0027 248.00)",
          "foreground": "oklch(1.0000 0 0)",
          "card": "oklch(0.1899 0.0051 248.10)",
          "card-foreground": "oklch(1.0000 0 0)",
          "popover": "oklch(0.1440 0.0028 247.09)",
          "popover-foreground": "oklch(1.0000 0 0)",
          "primary": "oklch(0.8907 0.1833 96.19)",
          "primary-foreground": "oklch(0.0000 0 0)",
          "secondary": "oklch(0.2033 0.0051 248.08)",
          "secondary-foreground": "oklch(1.0000 0 0)",
          "muted": "oklch(0.2033 0.0051 248.08)",
          "muted-foreground": "oklch(0.6862 0 0)",
          "accent": "oklch(0.2169 0.0066 258.37)",
          "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.8907 0.1833 96.19)",
          "chart-1": "oklch(0.6203 0.1277 96.29)",
          "chart-2": "oklch(0.6193 0.1686 44.11)",
          "chart-3": "oklch(0.6192 0.1683 148.24)",
          "chart-4": "oklch(0.6195 0.1679 352.26)",
          "chart-5": "oklch(0.6206 0.1055 199.71)",
          "sidebar": "oklch(0.1440 0.0028 247.09)",
          "sidebar-foreground": "oklch(1.0000 0 0)",
          "sidebar-primary": "oklch(0.8907 0.1833 96.19)",
          "sidebar-primary-foreground": "oklch(0.0000 0 0)",
          "sidebar-accent": "oklch(0.2169 0.0066 258.37)",
          "sidebar-accent-foreground": "oklch(1.0000 0 0)",
          "sidebar-border": "oklch(0.2686 0 0)",
          "sidebar-ring": "oklch(0.8907 0.1833 96.19)",
          "brand-accent-deep": "oklch(0.5615 0.0333 248.42)",
          "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": "file-row",
      "type": "registry:ui",
      "title": "Glitchpad File Row",
      "description": "A static data row for glitchpad surfaces. Place it in a suitable grid or table.",
      "files": [
        {
          "path": "components/glitchpad/file-row.tsx",
          "target": "@components/glitchpad/file-row.tsx",
          "type": "registry:ui",
          "content": "import type { ReactNode } from \"react\";\n\nexport type FileRowProps = {\n  \"name\": ReactNode;\n  \"kind\": ReactNode;\n  \"size\": ReactNode;\n  \"modified\": ReactNode;\n  \"selected\"?: boolean;\n};\n\nexport function FileRow(props: FileRowProps) {\n  return <div className=\"gl-file-row\" role=\"row\" aria-selected={props.selected ?? false}><div className=\"gl-file-row__name\" role=\"cell\">{props[\"name\"]}</div><div className=\"gl-file-row__kind\" role=\"cell\">{props[\"kind\"]}</div><div className=\"gl-file-row__size\" role=\"cell\">{props[\"size\"]}</div><div className=\"gl-file-row__modified\" role=\"cell\">{props[\"modified\"]}</div></div>;\n}\n"
        }
      ]
    }
  ]
}
