{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "go-schedule",
  "homepage": "https://github.com/ShruggieTech/go-schedule",
  "description": "go-schedule registry.",
  "items": [
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "theme",
      "type": "registry:theme",
      "title": "go-schedule Theme",
      "description": "go-schedule 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.5063 0.1747 257.86)",
          "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.5063 0.1747 257.86)",
          "chart-1": "oklch(0.5063 0.1747 257.86)",
          "chart-2": "oklch(0.5061 0.1613 327.63)",
          "chart-3": "oklch(0.5070 0.1507 42.82)",
          "chart-4": "oklch(0.5063 0.1129 112.96)",
          "chart-5": "oklch(0.5052 0.0897 183.56)",
          "sidebar": "oklch(1.0000 0 0)",
          "sidebar-foreground": "oklch(0.1448 0 0)",
          "sidebar-primary": "oklch(0.5063 0.1747 257.86)",
          "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.5063 0.1747 257.86)",
          "brand-accent-deep": "oklch(0.5063 0.1747 257.86)",
          "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.1659 0.0163 226.88)",
          "foreground": "oklch(1.0000 0 0)",
          "card": "oklch(0.1974 0.0177 230.44)",
          "card-foreground": "oklch(1.0000 0 0)",
          "popover": "oklch(0.1659 0.0163 226.88)",
          "popover-foreground": "oklch(1.0000 0 0)",
          "primary": "oklch(0.7153 0.1518 253.31)",
          "primary-foreground": "oklch(0.0000 0 0)",
          "secondary": "oklch(0.2453 0.0254 227.50)",
          "secondary-foreground": "oklch(1.0000 0 0)",
          "muted": "oklch(0.2453 0.0254 227.50)",
          "muted-foreground": "oklch(0.6862 0 0)",
          "accent": "oklch(0.2850 0.0298 229.50)",
          "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.7153 0.1518 253.31)",
          "chart-1": "oklch(0.6807 0.1517 253.27)",
          "chart-2": "oklch(0.6802 0.1382 323.34)",
          "chart-3": "oklch(0.6799 0.1403 38.01)",
          "chart-4": "oklch(0.6803 0.1398 108.18)",
          "chart-5": "oklch(0.6805 0.1249 178.41)",
          "sidebar": "oklch(0.1659 0.0163 226.88)",
          "sidebar-foreground": "oklch(1.0000 0 0)",
          "sidebar-primary": "oklch(0.7153 0.1518 253.31)",
          "sidebar-primary-foreground": "oklch(0.0000 0 0)",
          "sidebar-accent": "oklch(0.2850 0.0298 229.50)",
          "sidebar-accent-foreground": "oklch(1.0000 0 0)",
          "sidebar-border": "oklch(0.2686 0 0)",
          "sidebar-ring": "oklch(0.7153 0.1518 253.31)",
          "brand-accent-deep": "oklch(0.5063 0.1747 257.86)",
          "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": "schedule-row",
      "type": "registry:ui",
      "title": "go-schedule Schedule Row",
      "description": "A static data row for go-schedule surfaces. Place it in a suitable grid or table.",
      "files": [
        {
          "path": "components/go-schedule/schedule-row.tsx",
          "target": "@components/go-schedule/schedule-row.tsx",
          "type": "registry:ui",
          "content": "import type { ReactNode } from \"react\";\n\nexport type ScheduleRowProps = {\n  \"expression\": ReactNode;\n  \"timezone\": ReactNode;\n  \"next_run\": ReactNode;\n  \"catch_up\": ReactNode;\n  \"overlap\": ReactNode;\n  \"state\": ReactNode;\n};\n\nexport function ScheduleRow(props: ScheduleRowProps) {\n  return <div className=\"go-schedule-row\" role=\"row\"><div className=\"go-schedule-row__expression\" role=\"cell\">{props[\"expression\"]}</div><div className=\"go-schedule-row__timezone\" role=\"cell\">{props[\"timezone\"]}</div><div className=\"go-schedule-row__next_run\" role=\"cell\">{props[\"next_run\"]}</div><div className=\"go-schedule-row__catch_up\" role=\"cell\">{props[\"catch_up\"]}</div><div className=\"go-schedule-row__overlap\" role=\"cell\">{props[\"overlap\"]}</div><div className=\"go-schedule-row__state\" role=\"cell\">{props[\"state\"]}</div></div>;\n}\n"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "run-row",
      "type": "registry:ui",
      "title": "go-schedule Run Row",
      "description": "A static data row for go-schedule surfaces. Place it in a suitable grid or table.",
      "files": [
        {
          "path": "components/go-schedule/run-row.tsx",
          "target": "@components/go-schedule/run-row.tsx",
          "type": "registry:ui",
          "content": "import type { ReactNode } from \"react\";\n\nexport type RunRowProps = {\n  \"scheduled_at\": ReactNode;\n  \"started_at\": ReactNode;\n  \"duration\": ReactNode;\n  \"exit_state\": ReactNode;\n};\n\nexport function RunRow(props: RunRowProps) {\n  return <div className=\"go-run-row\" role=\"row\"><div className=\"go-run-row__scheduled_at\" role=\"cell\">{props[\"scheduled_at\"]}</div><div className=\"go-run-row__started_at\" role=\"cell\">{props[\"started_at\"]}</div><div className=\"go-run-row__duration\" role=\"cell\">{props[\"duration\"]}</div><div className=\"go-run-row__exit_state\" role=\"cell\">{props[\"exit_state\"]}</div></div>;\n}\n"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "policy-row",
      "type": "registry:ui",
      "title": "go-schedule Policy Row",
      "description": "A static data row for go-schedule surfaces. Place it in a suitable grid or table.",
      "files": [
        {
          "path": "components/go-schedule/policy-row.tsx",
          "target": "@components/go-schedule/policy-row.tsx",
          "type": "registry:ui",
          "content": "import type { ReactNode } from \"react\";\n\nexport type PolicyRowProps = {\n  \"timezone\": ReactNode;\n  \"catch_up\": ReactNode;\n  \"overlap\": ReactNode;\n  \"service\": ReactNode;\n};\n\nexport function PolicyRow(props: PolicyRowProps) {\n  return <div className=\"go-policy-row\" role=\"row\"><div className=\"go-policy-row__timezone\" role=\"cell\">{props[\"timezone\"]}</div><div className=\"go-policy-row__catch_up\" role=\"cell\">{props[\"catch_up\"]}</div><div className=\"go-policy-row__overlap\" role=\"cell\">{props[\"overlap\"]}</div><div className=\"go-policy-row__service\" role=\"cell\">{props[\"service\"]}</div></div>;\n}\n"
        }
      ]
    }
  ]
}
