{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "caseroom",
  "homepage": "https://www.themes.dev/caseroom/",
  "items": [
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "theme",
      "type": "registry:theme",
      "title": "Caseroom theme",
      "description": "Black and white, light and dark, with 3:1 field borders and a solid focus ring.",
      "cssVars": {
        "theme": {
          "color-destructive-foreground": "var(--destructive-foreground)",
          "color-success": "var(--success)",
          "color-pressed": "var(--pressed)"
        },
        "light": {
          "radius": "0.5rem",
          "background": "oklch(1 0 0)",
          "foreground": "oklch(0.17 0 0)",
          "card": "oklch(1 0 0)",
          "card-foreground": "oklch(0.17 0 0)",
          "popover": "oklch(1 0 0)",
          "popover-foreground": "oklch(0.17 0 0)",
          "primary": "oklch(0.17 0 0)",
          "primary-foreground": "oklch(0.99 0 0)",
          "secondary": "oklch(0.962 0 0)",
          "secondary-foreground": "oklch(0.17 0 0)",
          "muted": "oklch(0.962 0 0)",
          "muted-foreground": "oklch(0.47 0 0)",
          "accent": "oklch(0.94 0 0)",
          "accent-foreground": "oklch(0.17 0 0)",
          "destructive": "oklch(0.53 0.2 27)",
          "destructive-foreground": "oklch(0.99 0 0)",
          "success": "oklch(0.5 0.12 150)",
          "border": "oklch(0.91 0 0)",
          "input": "oklch(0.62 0 0)",
          "ring": "oklch(0.17 0 0)",
          "pressed": "oklch(0.86 0 0)",
          "chart-1": "oklch(0.17 0 0)",
          "chart-2": "oklch(0.38 0 0)",
          "chart-3": "oklch(0.56 0 0)",
          "chart-4": "oklch(0.72 0 0)",
          "chart-5": "oklch(0.86 0 0)",
          "sidebar": "oklch(0.982 0 0)",
          "sidebar-foreground": "oklch(0.17 0 0)",
          "sidebar-primary": "oklch(0.17 0 0)",
          "sidebar-primary-foreground": "oklch(0.99 0 0)",
          "sidebar-accent": "oklch(0.94 0 0)",
          "sidebar-accent-foreground": "oklch(0.17 0 0)",
          "sidebar-border": "oklch(0.91 0 0)",
          "sidebar-ring": "oklch(0.17 0 0)"
        },
        "dark": {
          "background": "oklch(0.145 0 0)",
          "foreground": "oklch(0.97 0 0)",
          "card": "oklch(0.18 0 0)",
          "card-foreground": "oklch(0.97 0 0)",
          "popover": "oklch(0.19 0 0)",
          "popover-foreground": "oklch(0.97 0 0)",
          "primary": "oklch(0.97 0 0)",
          "primary-foreground": "oklch(0.17 0 0)",
          "secondary": "oklch(0.24 0 0)",
          "secondary-foreground": "oklch(0.97 0 0)",
          "muted": "oklch(0.24 0 0)",
          "muted-foreground": "oklch(0.72 0 0)",
          "accent": "oklch(0.27 0 0)",
          "accent-foreground": "oklch(0.97 0 0)",
          "destructive": "oklch(0.72 0.17 22)",
          "destructive-foreground": "oklch(0.15 0 0)",
          "success": "oklch(0.74 0.14 150)",
          "border": "oklch(1 0 0 / 12%)",
          "input": "oklch(1 0 0 / 42%)",
          "ring": "oklch(0.97 0 0)",
          "pressed": "oklch(0.34 0 0)",
          "chart-1": "oklch(0.97 0 0)",
          "chart-2": "oklch(0.8 0 0)",
          "chart-3": "oklch(0.64 0 0)",
          "chart-4": "oklch(0.5 0 0)",
          "chart-5": "oklch(0.36 0 0)",
          "sidebar": "oklch(0.17 0 0)",
          "sidebar-foreground": "oklch(0.97 0 0)",
          "sidebar-primary": "oklch(0.97 0 0)",
          "sidebar-primary-foreground": "oklch(0.17 0 0)",
          "sidebar-accent": "oklch(0.27 0 0)",
          "sidebar-accent-foreground": "oklch(0.97 0 0)",
          "sidebar-border": "oklch(1 0 0 / 12%)",
          "sidebar-ring": "oklch(0.97 0 0)"
        }
      },
      "css": {
        "@keyframes caseroom-sheen": {
          "from": {
            "background-position": "150% 0"
          },
          "to": {
            "background-position": "-50% 0"
          }
        },
        "@keyframes caseroom-sweep": {
          "from": {
            "left": "-40%"
          },
          "to": {
            "left": "100%"
          }
        },
        "@keyframes caseroom-rise": {
          "from": {
            "scale": "1 0"
          }
        },
        ".inverted": {
          "--background": "oklch(0.145 0 0)",
          "--foreground": "oklch(0.97 0 0)",
          "--card": "oklch(0.18 0 0)",
          "--card-foreground": "oklch(0.97 0 0)",
          "--popover": "oklch(0.19 0 0)",
          "--popover-foreground": "oklch(0.97 0 0)",
          "--primary": "oklch(0.97 0 0)",
          "--primary-foreground": "oklch(0.17 0 0)",
          "--secondary": "oklch(0.24 0 0)",
          "--secondary-foreground": "oklch(0.97 0 0)",
          "--muted": "oklch(0.24 0 0)",
          "--muted-foreground": "oklch(0.72 0 0)",
          "--accent": "oklch(0.27 0 0)",
          "--accent-foreground": "oklch(0.97 0 0)",
          "--destructive": "oklch(0.72 0.17 22)",
          "--destructive-foreground": "oklch(0.15 0 0)",
          "--success": "oklch(0.74 0.14 150)",
          "--border": "oklch(1 0 0 / 12%)",
          "--input": "oklch(1 0 0 / 42%)",
          "--ring": "oklch(0.97 0 0)",
          "--pressed": "oklch(0.34 0 0)",
          "--chart-1": "oklch(0.97 0 0)",
          "--chart-2": "oklch(0.8 0 0)",
          "--chart-3": "oklch(0.64 0 0)",
          "--chart-4": "oklch(0.5 0 0)",
          "--chart-5": "oklch(0.36 0 0)",
          "--sidebar": "oklch(0.17 0 0)",
          "--sidebar-foreground": "oklch(0.97 0 0)",
          "--sidebar-primary": "oklch(0.97 0 0)",
          "--sidebar-primary-foreground": "oklch(0.17 0 0)",
          "--sidebar-accent": "oklch(0.27 0 0)",
          "--sidebar-accent-foreground": "oklch(0.97 0 0)",
          "--sidebar-border": "oklch(1 0 0 / 12%)",
          "--sidebar-ring": "oklch(0.97 0 0)",
          "color-scheme": "dark"
        },
        ".dark .inverted": {
          "--background": "oklch(1 0 0)",
          "--foreground": "oklch(0.17 0 0)",
          "--card": "oklch(1 0 0)",
          "--card-foreground": "oklch(0.17 0 0)",
          "--popover": "oklch(1 0 0)",
          "--popover-foreground": "oklch(0.17 0 0)",
          "--primary": "oklch(0.17 0 0)",
          "--primary-foreground": "oklch(0.99 0 0)",
          "--secondary": "oklch(0.962 0 0)",
          "--secondary-foreground": "oklch(0.17 0 0)",
          "--muted": "oklch(0.962 0 0)",
          "--muted-foreground": "oklch(0.47 0 0)",
          "--accent": "oklch(0.94 0 0)",
          "--accent-foreground": "oklch(0.17 0 0)",
          "--destructive": "oklch(0.53 0.2 27)",
          "--destructive-foreground": "oklch(0.99 0 0)",
          "--success": "oklch(0.5 0.12 150)",
          "--border": "oklch(0.91 0 0)",
          "--input": "oklch(0.62 0 0)",
          "--ring": "oklch(0.17 0 0)",
          "--pressed": "oklch(0.86 0 0)",
          "--chart-1": "oklch(0.17 0 0)",
          "--chart-2": "oklch(0.38 0 0)",
          "--chart-3": "oklch(0.56 0 0)",
          "--chart-4": "oklch(0.72 0 0)",
          "--chart-5": "oklch(0.86 0 0)",
          "--sidebar": "oklch(0.982 0 0)",
          "--sidebar-foreground": "oklch(0.17 0 0)",
          "--sidebar-primary": "oklch(0.17 0 0)",
          "--sidebar-primary-foreground": "oklch(0.99 0 0)",
          "--sidebar-accent": "oklch(0.94 0 0)",
          "--sidebar-accent-foreground": "oklch(0.17 0 0)",
          "--sidebar-border": "oklch(0.91 0 0)",
          "--sidebar-ring": "oklch(0.17 0 0)",
          "color-scheme": "light"
        }
      }
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "theme-ink",
      "type": "registry:theme",
      "title": "Caseroom Ink",
      "description": "Black and white with one accent, ink blue, on primary actions, checked controls and the focus ring.",
      "cssVars": {
        "theme": {
          "color-destructive-foreground": "var(--destructive-foreground)",
          "color-success": "var(--success)",
          "color-pressed": "var(--pressed)"
        },
        "light": {
          "radius": "0.5rem",
          "background": "oklch(1 0 0)",
          "foreground": "oklch(0.17 0 0)",
          "card": "oklch(1 0 0)",
          "card-foreground": "oklch(0.17 0 0)",
          "popover": "oklch(1 0 0)",
          "popover-foreground": "oklch(0.17 0 0)",
          "primary": "oklch(0.47 0.17 262)",
          "primary-foreground": "oklch(0.99 0 0)",
          "secondary": "oklch(0.962 0 0)",
          "secondary-foreground": "oklch(0.17 0 0)",
          "muted": "oklch(0.962 0 0)",
          "muted-foreground": "oklch(0.47 0 0)",
          "accent": "oklch(0.94 0 0)",
          "accent-foreground": "oklch(0.17 0 0)",
          "destructive": "oklch(0.53 0.2 27)",
          "destructive-foreground": "oklch(0.99 0 0)",
          "success": "oklch(0.5 0.12 150)",
          "border": "oklch(0.91 0 0)",
          "input": "oklch(0.62 0 0)",
          "ring": "oklch(0.47 0.17 262)",
          "pressed": "oklch(0.86 0 0)",
          "chart-1": "oklch(0.47 0.17 262)",
          "chart-2": "oklch(0.38 0 0)",
          "chart-3": "oklch(0.56 0 0)",
          "chart-4": "oklch(0.72 0 0)",
          "chart-5": "oklch(0.86 0 0)",
          "sidebar": "oklch(0.982 0 0)",
          "sidebar-foreground": "oklch(0.17 0 0)",
          "sidebar-primary": "oklch(0.47 0.17 262)",
          "sidebar-primary-foreground": "oklch(0.99 0 0)",
          "sidebar-accent": "oklch(0.94 0 0)",
          "sidebar-accent-foreground": "oklch(0.17 0 0)",
          "sidebar-border": "oklch(0.91 0 0)",
          "sidebar-ring": "oklch(0.47 0.17 262)",
          "press-mix": "black",
          "press-amount": "80%"
        },
        "dark": {
          "background": "oklch(0.145 0 0)",
          "foreground": "oklch(0.97 0 0)",
          "card": "oklch(0.18 0 0)",
          "card-foreground": "oklch(0.97 0 0)",
          "popover": "oklch(0.19 0 0)",
          "popover-foreground": "oklch(0.97 0 0)",
          "primary": "oklch(0.76 0.12 256)",
          "primary-foreground": "oklch(0.16 0.02 262)",
          "secondary": "oklch(0.24 0 0)",
          "secondary-foreground": "oklch(0.97 0 0)",
          "muted": "oklch(0.24 0 0)",
          "muted-foreground": "oklch(0.72 0 0)",
          "accent": "oklch(0.27 0 0)",
          "accent-foreground": "oklch(0.97 0 0)",
          "destructive": "oklch(0.72 0.17 22)",
          "destructive-foreground": "oklch(0.15 0 0)",
          "success": "oklch(0.74 0.14 150)",
          "border": "oklch(1 0 0 / 12%)",
          "input": "oklch(1 0 0 / 42%)",
          "ring": "oklch(0.76 0.12 256)",
          "pressed": "oklch(0.34 0 0)",
          "chart-1": "oklch(0.76 0.12 256)",
          "chart-2": "oklch(0.8 0 0)",
          "chart-3": "oklch(0.64 0 0)",
          "chart-4": "oklch(0.5 0 0)",
          "chart-5": "oklch(0.36 0 0)",
          "sidebar": "oklch(0.17 0 0)",
          "sidebar-foreground": "oklch(0.97 0 0)",
          "sidebar-primary": "oklch(0.76 0.12 256)",
          "sidebar-primary-foreground": "oklch(0.16 0.02 262)",
          "sidebar-accent": "oklch(0.27 0 0)",
          "sidebar-accent-foreground": "oklch(0.97 0 0)",
          "sidebar-border": "oklch(1 0 0 / 12%)",
          "sidebar-ring": "oklch(0.76 0.12 256)",
          "press-amount": "86%"
        }
      },
      "css": {
        "@keyframes caseroom-sheen": {
          "from": {
            "background-position": "150% 0"
          },
          "to": {
            "background-position": "-50% 0"
          }
        },
        "@keyframes caseroom-sweep": {
          "from": {
            "left": "-40%"
          },
          "to": {
            "left": "100%"
          }
        },
        "@keyframes caseroom-rise": {
          "from": {
            "scale": "1 0"
          }
        },
        ".inverted": {
          "--background": "oklch(0.145 0 0)",
          "--foreground": "oklch(0.97 0 0)",
          "--card": "oklch(0.18 0 0)",
          "--card-foreground": "oklch(0.97 0 0)",
          "--popover": "oklch(0.19 0 0)",
          "--popover-foreground": "oklch(0.97 0 0)",
          "--primary": "oklch(0.76 0.12 256)",
          "--primary-foreground": "oklch(0.16 0.02 262)",
          "--secondary": "oklch(0.24 0 0)",
          "--secondary-foreground": "oklch(0.97 0 0)",
          "--muted": "oklch(0.24 0 0)",
          "--muted-foreground": "oklch(0.72 0 0)",
          "--accent": "oklch(0.27 0 0)",
          "--accent-foreground": "oklch(0.97 0 0)",
          "--destructive": "oklch(0.72 0.17 22)",
          "--destructive-foreground": "oklch(0.15 0 0)",
          "--success": "oklch(0.74 0.14 150)",
          "--border": "oklch(1 0 0 / 12%)",
          "--input": "oklch(1 0 0 / 42%)",
          "--ring": "oklch(0.76 0.12 256)",
          "--pressed": "oklch(0.34 0 0)",
          "--chart-1": "oklch(0.97 0 0)",
          "--chart-2": "oklch(0.8 0 0)",
          "--chart-3": "oklch(0.64 0 0)",
          "--chart-4": "oklch(0.5 0 0)",
          "--chart-5": "oklch(0.36 0 0)",
          "--sidebar": "oklch(0.17 0 0)",
          "--sidebar-foreground": "oklch(0.97 0 0)",
          "--sidebar-primary": "oklch(0.97 0 0)",
          "--sidebar-primary-foreground": "oklch(0.17 0 0)",
          "--sidebar-accent": "oklch(0.27 0 0)",
          "--sidebar-accent-foreground": "oklch(0.97 0 0)",
          "--sidebar-border": "oklch(1 0 0 / 12%)",
          "--sidebar-ring": "oklch(0.97 0 0)",
          "color-scheme": "dark",
          "--press-mix": "black",
          "--press-amount": "86%"
        },
        ".dark .inverted": {
          "--background": "oklch(1 0 0)",
          "--foreground": "oklch(0.17 0 0)",
          "--card": "oklch(1 0 0)",
          "--card-foreground": "oklch(0.17 0 0)",
          "--popover": "oklch(1 0 0)",
          "--popover-foreground": "oklch(0.17 0 0)",
          "--primary": "oklch(0.47 0.17 262)",
          "--primary-foreground": "oklch(0.99 0 0)",
          "--secondary": "oklch(0.962 0 0)",
          "--secondary-foreground": "oklch(0.17 0 0)",
          "--muted": "oklch(0.962 0 0)",
          "--muted-foreground": "oklch(0.47 0 0)",
          "--accent": "oklch(0.94 0 0)",
          "--accent-foreground": "oklch(0.17 0 0)",
          "--destructive": "oklch(0.53 0.2 27)",
          "--destructive-foreground": "oklch(0.99 0 0)",
          "--success": "oklch(0.5 0.12 150)",
          "--border": "oklch(0.91 0 0)",
          "--input": "oklch(0.62 0 0)",
          "--ring": "oklch(0.47 0.17 262)",
          "--pressed": "oklch(0.86 0 0)",
          "--chart-1": "oklch(0.17 0 0)",
          "--chart-2": "oklch(0.38 0 0)",
          "--chart-3": "oklch(0.56 0 0)",
          "--chart-4": "oklch(0.72 0 0)",
          "--chart-5": "oklch(0.86 0 0)",
          "--sidebar": "oklch(0.982 0 0)",
          "--sidebar-foreground": "oklch(0.17 0 0)",
          "--sidebar-primary": "oklch(0.17 0 0)",
          "--sidebar-primary-foreground": "oklch(0.99 0 0)",
          "--sidebar-accent": "oklch(0.94 0 0)",
          "--sidebar-accent-foreground": "oklch(0.17 0 0)",
          "--sidebar-border": "oklch(0.91 0 0)",
          "--sidebar-ring": "oklch(0.17 0 0)",
          "color-scheme": "light",
          "--press-mix": "black",
          "--press-amount": "80%"
        }
      }
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "utils",
      "type": "registry:lib",
      "title": "cn()",
      "description": "Merges class names; later Tailwind classes win.",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "files": [
        {
          "path": "lib/utils.ts",
          "type": "registry:lib",
          "target": "lib/utils.ts"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "button",
      "type": "registry:ui",
      "title": "Button",
      "description": "An action, or a link that looks like one. Six variants, four sizes.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/button/button.tsx",
          "type": "registry:ui",
          "target": "components/ui/button.tsx"
        },
        {
          "path": "registry/ui/button/button.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/button.variants.ts"
        }
      ],
      "categories": [
        "actions"
      ],
      "docs": "https://www.themes.dev/caseroom/components/button/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "badge",
      "type": "registry:ui",
      "title": "Badge",
      "description": "A short status or count next to text.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/badge/badge.tsx",
          "type": "registry:ui",
          "target": "components/ui/badge.tsx"
        },
        {
          "path": "registry/ui/badge/badge.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/badge.variants.ts"
        }
      ],
      "categories": [
        "display"
      ],
      "docs": "https://www.themes.dev/caseroom/components/badge/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "input",
      "type": "registry:ui",
      "title": "Input",
      "description": "A text field with a 3:1 border and an invalid state.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/input/input.tsx",
          "type": "registry:ui",
          "target": "components/ui/input.tsx"
        },
        {
          "path": "registry/ui/input/input.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/input.variants.ts"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/components/input/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "textarea",
      "type": "registry:ui",
      "title": "Textarea",
      "description": "A multi-line field that grows with its content.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/input.json"
      ],
      "files": [
        {
          "path": "registry/ui/textarea/textarea.tsx",
          "type": "registry:ui",
          "target": "components/ui/textarea.tsx"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/components/textarea/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "label",
      "type": "registry:ui",
      "title": "Label",
      "description": "The visible name of a field.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/label/label.tsx",
          "type": "registry:ui",
          "target": "components/ui/label.tsx"
        },
        {
          "path": "registry/ui/label/label.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/label.variants.ts"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/components/label/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "checkbox",
      "type": "registry:ui",
      "title": "Checkbox",
      "description": "A native checkbox in the Caseroom style. No JavaScript.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/checkbox/checkbox.tsx",
          "type": "registry:ui",
          "target": "components/ui/checkbox.tsx"
        },
        {
          "path": "registry/ui/checkbox/checkbox.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/checkbox.variants.ts"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/components/checkbox/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "switch",
      "type": "registry:ui",
      "title": "Switch",
      "description": "An on/off setting: a native checkbox with role=switch. No JavaScript.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/switch/switch.tsx",
          "type": "registry:ui",
          "target": "components/ui/switch.tsx"
        },
        {
          "path": "registry/ui/switch/switch.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/switch.variants.ts"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/components/switch/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "card",
      "type": "registry:ui",
      "title": "Card",
      "description": "A bordered panel with a title, description and footer.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/card/card.tsx",
          "type": "registry:ui",
          "target": "components/ui/card.tsx"
        },
        {
          "path": "registry/ui/card/card.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/card.variants.ts"
        }
      ],
      "categories": [
        "layout"
      ],
      "docs": "https://www.themes.dev/caseroom/components/card/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "separator",
      "type": "registry:ui",
      "title": "Separator",
      "description": "A hairline between groups, horizontal or vertical.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/separator/separator.tsx",
          "type": "registry:ui",
          "target": "components/ui/separator.tsx"
        },
        {
          "path": "registry/ui/separator/separator.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/separator.variants.ts"
        }
      ],
      "categories": [
        "layout"
      ],
      "docs": "https://www.themes.dev/caseroom/components/separator/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "alert",
      "type": "registry:ui",
      "title": "Alert",
      "description": "A message on the page, neutral or destructive.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/alert/alert.tsx",
          "type": "registry:ui",
          "target": "components/ui/alert.tsx"
        },
        {
          "path": "registry/ui/alert/alert.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/alert.variants.ts"
        }
      ],
      "categories": [
        "feedback"
      ],
      "docs": "https://www.themes.dev/caseroom/components/alert/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kbd",
      "type": "registry:ui",
      "title": "Kbd",
      "description": "A keyboard key or shortcut.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/kbd/kbd.tsx",
          "type": "registry:ui",
          "target": "components/ui/kbd.tsx"
        },
        {
          "path": "registry/ui/kbd/kbd.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/kbd.variants.ts"
        }
      ],
      "categories": [
        "display"
      ],
      "docs": "https://www.themes.dev/caseroom/components/kbd/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "avatar",
      "type": "registry:ui",
      "title": "Avatar",
      "description": "A photo, or initials when there is none.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/avatar/avatar.tsx",
          "type": "registry:ui",
          "target": "components/ui/avatar.tsx"
        },
        {
          "path": "registry/ui/avatar/avatar.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/avatar.variants.ts"
        }
      ],
      "categories": [
        "display"
      ],
      "docs": "https://www.themes.dev/caseroom/components/avatar/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "tabs",
      "type": "registry:ui",
      "title": "Tabs",
      "description": "Panels behind a row of tabs, or page links that look like tabs. Arrow keys, Home and End.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/tabs/tabs.tsx",
          "type": "registry:ui",
          "target": "components/ui/tabs.tsx"
        },
        {
          "path": "registry/ui/tabs/tabs.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/tabs.variants.ts"
        }
      ],
      "categories": [
        "navigation"
      ],
      "docs": "https://www.themes.dev/caseroom/components/tabs/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "dialog",
      "type": "registry:ui",
      "title": "Dialog",
      "description": "A modal on the native dialog element: focus stays inside, Escape and the backdrop close it, focus returns to the trigger.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ui/dialog/dialog.client.ts",
          "type": "registry:ui",
          "target": "components/ui/dialog.client.ts"
        },
        {
          "path": "registry/ui/dialog/dialog.tsx",
          "type": "registry:ui",
          "target": "components/ui/dialog.tsx"
        },
        {
          "path": "registry/ui/dialog/dialog.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/dialog.variants.ts"
        }
      ],
      "categories": [
        "overlays"
      ],
      "docs": "https://www.themes.dev/caseroom/components/dialog/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "dropdown-menu",
      "type": "registry:ui",
      "title": "Dropdown menu",
      "description": "A menu button on the native popover: arrow keys, Home, End and type-ahead, checkbox items, Escape returns focus.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ui/dropdown-menu/dropdown-menu.client.ts",
          "type": "registry:ui",
          "target": "components/ui/dropdown-menu.client.ts"
        },
        {
          "path": "registry/ui/dropdown-menu/dropdown-menu.tsx",
          "type": "registry:ui",
          "target": "components/ui/dropdown-menu.tsx"
        },
        {
          "path": "registry/ui/dropdown-menu/dropdown-menu.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/dropdown-menu.variants.ts"
        }
      ],
      "categories": [
        "overlays"
      ],
      "docs": "https://www.themes.dev/caseroom/components/dropdown-menu/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "select",
      "type": "registry:ui",
      "title": "Select",
      "description": "A native select in the field style, with groups, a placeholder and disabled options. No JavaScript.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/input.json"
      ],
      "files": [
        {
          "path": "registry/ui/select/select.tsx",
          "type": "registry:ui",
          "target": "components/ui/select.tsx"
        },
        {
          "path": "registry/ui/select/select.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/select.variants.ts"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/components/select/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "tooltip",
      "type": "registry:ui",
      "title": "Tooltip",
      "description": "A short label on hover and keyboard focus. Stays while hovered, Escape hides it (WCAG 1.4.13).",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/tooltip/tooltip.client.ts",
          "type": "registry:ui",
          "target": "components/ui/tooltip.client.ts"
        },
        {
          "path": "registry/ui/tooltip/tooltip.tsx",
          "type": "registry:ui",
          "target": "components/ui/tooltip.tsx"
        },
        {
          "path": "registry/ui/tooltip/tooltip.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/tooltip.variants.ts"
        }
      ],
      "categories": [
        "overlays"
      ],
      "docs": "https://www.themes.dev/caseroom/components/tooltip/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "toast",
      "type": "registry:ui",
      "title": "Toast",
      "description": "Short confirmations that announce themselves, pause while hovered and close on their own. Above open dialogs.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/toast/toast.client.ts",
          "type": "registry:ui",
          "target": "components/ui/toast.client.ts"
        },
        {
          "path": "registry/ui/toast/toast.tsx",
          "type": "registry:ui",
          "target": "components/ui/toast.tsx"
        },
        {
          "path": "registry/ui/toast/toast.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/toast.variants.ts"
        }
      ],
      "categories": [
        "feedback"
      ],
      "docs": "https://www.themes.dev/caseroom/components/toast/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "radio-group",
      "type": "registry:ui",
      "title": "Radio group",
      "description": "Native radios in a fieldset, with hints: one Tab stop, arrow keys choose. No JavaScript.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/radio-group/radio-group.tsx",
          "type": "registry:ui",
          "target": "components/ui/radio-group.tsx"
        },
        {
          "path": "registry/ui/radio-group/radio-group.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/radio-group.variants.ts"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/components/radio-group/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "pagination",
      "type": "registry:ui",
      "title": "Pagination",
      "description": "Page links with gaps: first, last, the current page and its neighbours; the ends turn off.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/pagination/pagination.pages.ts",
          "type": "registry:ui",
          "target": "components/ui/pagination.pages.ts"
        },
        {
          "path": "registry/ui/pagination/pagination.tsx",
          "type": "registry:ui",
          "target": "components/ui/pagination.tsx"
        },
        {
          "path": "registry/ui/pagination/pagination.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/pagination.variants.ts"
        }
      ],
      "categories": [
        "navigation"
      ],
      "docs": "https://www.themes.dev/caseroom/components/pagination/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "breadcrumb",
      "type": "registry:ui",
      "title": "Breadcrumb",
      "description": "Where the page sits: a nav with an ordered list and the current page marked.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/breadcrumb/breadcrumb.tsx",
          "type": "registry:ui",
          "target": "components/ui/breadcrumb.tsx"
        },
        {
          "path": "registry/ui/breadcrumb/breadcrumb.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/breadcrumb.variants.ts"
        }
      ],
      "categories": [
        "navigation"
      ],
      "docs": "https://www.themes.dev/caseroom/components/breadcrumb/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "skeleton",
      "type": "registry:ui",
      "title": "Skeleton",
      "description": "A loading placeholder with a slow sheen that stands still under reduced motion.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/skeleton/skeleton.tsx",
          "type": "registry:ui",
          "target": "components/ui/skeleton.tsx"
        },
        {
          "path": "registry/ui/skeleton/skeleton.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/skeleton.variants.ts"
        }
      ],
      "categories": [
        "feedback"
      ],
      "docs": "https://www.themes.dev/caseroom/components/skeleton/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "table",
      "type": "registry:ui",
      "title": "Table",
      "description": "A data table with a caption, right-aligned numbers and sortable columns (aria-sort). Scrolls in its own box.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/table/table.tsx",
          "type": "registry:ui",
          "target": "components/ui/table.tsx"
        },
        {
          "path": "registry/ui/table/table.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/table.variants.ts"
        }
      ],
      "categories": [
        "data"
      ],
      "docs": "https://www.themes.dev/caseroom/components/table/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "accordion",
      "type": "registry:ui",
      "title": "Accordion",
      "description": "Sections on native details, one open at a time if you like. Keyboard and find-in-page, no JavaScript.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/accordion/accordion.tsx",
          "type": "registry:ui",
          "target": "components/ui/accordion.tsx"
        },
        {
          "path": "registry/ui/accordion/accordion.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/accordion.variants.ts"
        }
      ],
      "categories": [
        "layout"
      ],
      "docs": "https://www.themes.dev/caseroom/components/accordion/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "progress",
      "type": "registry:ui",
      "title": "Progress",
      "description": "A labelled progress bar, or a sweep while the amount is unknown that stands still under reduced motion.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/progress/progress.tsx",
          "type": "registry:ui",
          "target": "components/ui/progress.tsx"
        },
        {
          "path": "registry/ui/progress/progress.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/progress.variants.ts"
        }
      ],
      "categories": [
        "feedback"
      ],
      "docs": "https://www.themes.dev/caseroom/components/progress/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "slider",
      "type": "registry:ui",
      "title": "Slider",
      "description": "A native range input with a filled track and a live value. Arrows, Page Up/Down, Home and End.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/slider/slider.tsx",
          "type": "registry:ui",
          "target": "components/ui/slider.tsx"
        },
        {
          "path": "registry/ui/slider/slider.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/slider.variants.ts"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/components/slider/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "popover",
      "type": "registry:ui",
      "title": "Popover",
      "description": "A non-modal panel next to its trigger on the native popover: focus moves in and back, Escape and outside clicks close it.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ui/popover/popover.client.ts",
          "type": "registry:ui",
          "target": "components/ui/popover.client.ts"
        },
        {
          "path": "registry/ui/popover/popover.tsx",
          "type": "registry:ui",
          "target": "components/ui/popover.tsx"
        },
        {
          "path": "registry/ui/popover/popover.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/popover.variants.ts"
        }
      ],
      "categories": [
        "overlays"
      ],
      "docs": "https://www.themes.dev/caseroom/components/popover/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "command-menu",
      "type": "registry:ui",
      "title": "Command menu",
      "description": "A command palette: filter as you type, arrows and Enter, grouped commands, ⌘K or Ctrl+K to open.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/dialog.json"
      ],
      "files": [
        {
          "path": "registry/ui/command-menu/command-menu.client.ts",
          "type": "registry:ui",
          "target": "components/ui/command-menu.client.ts"
        },
        {
          "path": "registry/ui/command-menu/command-menu.tsx",
          "type": "registry:ui",
          "target": "components/ui/command-menu.tsx"
        },
        {
          "path": "registry/ui/command-menu/command-menu.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/command-menu.variants.ts"
        }
      ],
      "categories": [
        "overlays"
      ],
      "docs": "https://www.themes.dev/caseroom/components/command-menu/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "search-field",
      "type": "registry:ui",
      "title": "Search field",
      "description": "A search input in a role=search form, with a / shortcut and a clear button.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/input.json"
      ],
      "files": [
        {
          "path": "registry/ui/search-field/search-field.client.ts",
          "type": "registry:ui",
          "target": "components/ui/search-field.client.ts"
        },
        {
          "path": "registry/ui/search-field/search-field.tsx",
          "type": "registry:ui",
          "target": "components/ui/search-field.tsx"
        },
        {
          "path": "registry/ui/search-field/search-field.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/search-field.variants.ts"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/components/search-field/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "sidebar-nav",
      "type": "registry:ui",
      "title": "Sidebar navigation",
      "description": "A docs sidebar: groups of links, the current page marked, collapsible groups on native details.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/sidebar-nav/sidebar-nav.tsx",
          "type": "registry:ui",
          "target": "components/ui/sidebar-nav.tsx"
        },
        {
          "path": "registry/ui/sidebar-nav/sidebar-nav.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/sidebar-nav.variants.ts"
        }
      ],
      "categories": [
        "navigation"
      ],
      "docs": "https://www.themes.dev/caseroom/components/sidebar-nav/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "drawer",
      "type": "registry:ui",
      "title": "Drawer",
      "description": "A side sheet on the native dialog: slides in from its edge, keeps focus inside, Escape and the backdrop close it.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/dialog.json"
      ],
      "files": [
        {
          "path": "registry/ui/drawer/drawer.tsx",
          "type": "registry:ui",
          "target": "components/ui/drawer.tsx"
        },
        {
          "path": "registry/ui/drawer/drawer.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/drawer.variants.ts"
        }
      ],
      "categories": [
        "overlays"
      ],
      "docs": "https://www.themes.dev/caseroom/components/drawer/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "link-list",
      "type": "registry:ui",
      "title": "Link list",
      "description": "Links as rows with a line under the title and a chevron; the whole row is the target.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/link-list/link-list.tsx",
          "type": "registry:ui",
          "target": "components/ui/link-list.tsx"
        },
        {
          "path": "registry/ui/link-list/link-list.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/link-list.variants.ts"
        }
      ],
      "categories": [
        "navigation"
      ],
      "docs": "https://www.themes.dev/caseroom/components/link-list/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "empty-state",
      "type": "registry:ui",
      "title": "Empty state",
      "description": "Nothing here yet, or no results: a mark, what is going on, what to do, announced when it replaces results.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/empty-state/empty-state.tsx",
          "type": "registry:ui",
          "target": "components/ui/empty-state.tsx"
        },
        {
          "path": "registry/ui/empty-state/empty-state.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/empty-state.variants.ts"
        }
      ],
      "categories": [
        "feedback"
      ],
      "docs": "https://www.themes.dev/caseroom/components/empty-state/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "tag",
      "type": "registry:ui",
      "title": "Tag",
      "description": "A topic or an active filter: static, a link, or removable with focus moving to the next tag.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/tag/tag.tsx",
          "type": "registry:ui",
          "target": "components/ui/tag.tsx"
        },
        {
          "path": "registry/ui/tag/tag.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/tag.variants.ts"
        }
      ],
      "categories": [
        "display"
      ],
      "docs": "https://www.themes.dev/caseroom/components/tag/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "filter-bar",
      "type": "registry:ui",
      "title": "Filter bar",
      "description": "Toggle chips, a sort select and a live result count; Clear turns every filter off.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/select.json"
      ],
      "files": [
        {
          "path": "registry/ui/filter-bar/filter-bar.tsx",
          "type": "registry:ui",
          "target": "components/ui/filter-bar.tsx"
        },
        {
          "path": "registry/ui/filter-bar/filter-bar.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/filter-bar.variants.ts"
        }
      ],
      "categories": [
        "data"
      ],
      "docs": "https://www.themes.dev/caseroom/components/filter-bar/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "filter-sheet",
      "type": "registry:ui",
      "title": "Filter sheet",
      "description": "The Filters button of a phone layout: the active count on the button, checkbox groups in a side sheet, Clear all and Show results.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/button.json",
        "https://www.themes.dev/caseroom/r/checkbox.json",
        "https://www.themes.dev/caseroom/r/drawer.json"
      ],
      "files": [
        {
          "path": "registry/ui/filter-sheet/filter-sheet.client.ts",
          "type": "registry:ui",
          "target": "components/ui/filter-sheet.client.ts"
        },
        {
          "path": "registry/ui/filter-sheet/filter-sheet.tsx",
          "type": "registry:ui",
          "target": "components/ui/filter-sheet.tsx"
        },
        {
          "path": "registry/ui/filter-sheet/filter-sheet.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/filter-sheet.variants.ts"
        }
      ],
      "categories": [
        "data"
      ],
      "docs": "https://www.themes.dev/caseroom/components/filter-sheet/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "steps",
      "type": "registry:ui",
      "title": "Steps",
      "description": "Progress through a flow: done, current (aria-current=step) and to come; horizontal when there is room.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/steps/steps.tsx",
          "type": "registry:ui",
          "target": "components/ui/steps.tsx"
        },
        {
          "path": "registry/ui/steps/steps.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/steps.variants.ts"
        }
      ],
      "categories": [
        "navigation"
      ],
      "docs": "https://www.themes.dev/caseroom/components/steps/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "quantity",
      "type": "registry:ui",
      "title": "Quantity",
      "description": "Minus, a number field and plus as one control; the buttons turn off at the ends.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/input.json"
      ],
      "files": [
        {
          "path": "registry/ui/quantity/quantity.tsx",
          "type": "registry:ui",
          "target": "components/ui/quantity.tsx"
        },
        {
          "path": "registry/ui/quantity/quantity.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/quantity.variants.ts"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/components/quantity/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "code-block",
      "type": "registry:ui",
      "title": "Code block",
      "description": "Code with a filename bar and Copy, in a focusable scroll box that shades its edges.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/code-block/code-block.client.ts",
          "type": "registry:ui",
          "target": "components/ui/code-block.client.ts"
        },
        {
          "path": "registry/ui/code-block/code-block.tsx",
          "type": "registry:ui",
          "target": "components/ui/code-block.tsx"
        },
        {
          "path": "registry/ui/code-block/code-block.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/code-block.variants.ts"
        }
      ],
      "categories": [
        "display"
      ],
      "docs": "https://www.themes.dev/caseroom/components/code-block/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "carousel",
      "type": "registry:ui",
      "title": "Carousel",
      "description": "A swipeable row of cards with Previous and Next that turn off at the ends. No autoplay.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/carousel/carousel.client.ts",
          "type": "registry:ui",
          "target": "components/ui/carousel.client.ts"
        },
        {
          "path": "registry/ui/carousel/carousel.tsx",
          "type": "registry:ui",
          "target": "components/ui/carousel.tsx"
        },
        {
          "path": "registry/ui/carousel/carousel.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/carousel.variants.ts"
        }
      ],
      "categories": [
        "display"
      ],
      "docs": "https://www.themes.dev/caseroom/components/carousel/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "date-field",
      "type": "registry:ui",
      "title": "Date field",
      "description": "The native date input in the field style, or a from–to range that keeps the end after the start.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/input.json"
      ],
      "files": [
        {
          "path": "registry/ui/date-field/date-field.tsx",
          "type": "registry:ui",
          "target": "components/ui/date-field.tsx"
        },
        {
          "path": "registry/ui/date-field/date-field.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/date-field.variants.ts"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/components/date-field/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "toolbar",
      "type": "registry:ui",
      "title": "Toolbar",
      "description": "A row of controls that is one Tab stop; arrows move. Toggle buttons, and a \"Was this helpful?\" variant.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/toolbar/toolbar.client.ts",
          "type": "registry:ui",
          "target": "components/ui/toolbar.client.ts"
        },
        {
          "path": "registry/ui/toolbar/toolbar.tsx",
          "type": "registry:ui",
          "target": "components/ui/toolbar.tsx"
        },
        {
          "path": "registry/ui/toolbar/toolbar.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/toolbar.variants.ts"
        }
      ],
      "categories": [
        "actions"
      ],
      "docs": "https://www.themes.dev/caseroom/components/toolbar/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "copy-button",
      "type": "registry:ui",
      "title": "Copy button",
      "description": "Copies a value, an element's text or a whole page (its markdown), then says Copied for a moment.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ui/copy-button/copy-button.client.ts",
          "type": "registry:ui",
          "target": "components/ui/copy-button.client.ts"
        },
        {
          "path": "registry/ui/copy-button/copy-button.tsx",
          "type": "registry:ui",
          "target": "components/ui/copy-button.tsx"
        },
        {
          "path": "registry/ui/copy-button/copy-button.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/copy-button.variants.ts"
        }
      ],
      "categories": [
        "actions"
      ],
      "docs": "https://www.themes.dev/caseroom/components/copy-button/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "read-aloud",
      "type": "registry:ui",
      "title": "Read aloud",
      "description": "Listen to an article: the browser's own speech reads it, with pause, resume and stop. Nothing leaves the page.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ui/read-aloud/read-aloud.client.ts",
          "type": "registry:ui",
          "target": "components/ui/read-aloud.client.ts"
        },
        {
          "path": "registry/ui/read-aloud/read-aloud.tsx",
          "type": "registry:ui",
          "target": "components/ui/read-aloud.tsx"
        },
        {
          "path": "registry/ui/read-aloud/read-aloud.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/read-aloud.variants.ts"
        }
      ],
      "categories": [
        "actions"
      ],
      "docs": "https://www.themes.dev/caseroom/components/read-aloud/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "language-switcher",
      "type": "registry:ui",
      "title": "Language switcher",
      "description": "The page in other languages as links with lang and hreflang, behind one button; the current one is marked.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ui/language-switcher/language-switcher.client.ts",
          "type": "registry:ui",
          "target": "components/ui/language-switcher.client.ts"
        },
        {
          "path": "registry/ui/language-switcher/language-switcher.tsx",
          "type": "registry:ui",
          "target": "components/ui/language-switcher.tsx"
        },
        {
          "path": "registry/ui/language-switcher/language-switcher.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/language-switcher.variants.ts"
        }
      ],
      "categories": [
        "navigation"
      ],
      "docs": "https://www.themes.dev/caseroom/components/language-switcher/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "toc",
      "type": "registry:ui",
      "title": "On this page",
      "description": "A page's sections as links; the one you are reading is marked while you scroll.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/toc/toc.client.ts",
          "type": "registry:ui",
          "target": "components/ui/toc.client.ts"
        },
        {
          "path": "registry/ui/toc/toc.tsx",
          "type": "registry:ui",
          "target": "components/ui/toc.tsx"
        },
        {
          "path": "registry/ui/toc/toc.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/toc.variants.ts"
        }
      ],
      "categories": [
        "navigation"
      ],
      "docs": "https://www.themes.dev/caseroom/components/toc/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "link",
      "type": "registry:ui",
      "title": "Link",
      "description": "Inline in text, standalone with an arrow, or external with an arrow out and a new-tab note for screen readers.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/link/link.tsx",
          "type": "registry:ui",
          "target": "components/ui/link.tsx"
        },
        {
          "path": "registry/ui/link/link.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/link.variants.ts"
        }
      ],
      "categories": [
        "actions"
      ],
      "docs": "https://www.themes.dev/caseroom/components/link/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "icon",
      "type": "registry:ui",
      "title": "Icons",
      "description": "Twenty-four icons on a 16px grid with a 1.5px stroke, decorative unless labelled.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/icon/icon.tsx",
          "type": "registry:ui",
          "target": "components/ui/icon.tsx"
        },
        {
          "path": "registry/ui/icon/icon.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/icon.variants.ts"
        }
      ],
      "categories": [
        "display"
      ],
      "docs": "https://www.themes.dev/caseroom/components/icon/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "bar-chart",
      "type": "registry:ui",
      "title": "Bar chart",
      "description": "Columns with their values on top and labels under them; the same data in a table for screen readers.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/bar-chart/bar-chart.tsx",
          "type": "registry:ui",
          "target": "components/ui/bar-chart.tsx"
        },
        {
          "path": "registry/ui/bar-chart/bar-chart.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/bar-chart.variants.ts"
        }
      ],
      "categories": [
        "data"
      ],
      "docs": "https://www.themes.dev/caseroom/components/bar-chart/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "video-player",
      "type": "registry:ui",
      "title": "Video player",
      "description": "A poster with one Play button; native controls and captions once it plays. Nothing plays by itself.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/video-player/video-player.client.ts",
          "type": "registry:ui",
          "target": "components/ui/video-player.client.ts"
        },
        {
          "path": "registry/ui/video-player/video-player.tsx",
          "type": "registry:ui",
          "target": "components/ui/video-player.tsx"
        },
        {
          "path": "registry/ui/video-player/video-player.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/video-player.variants.ts"
        }
      ],
      "categories": [
        "media"
      ],
      "docs": "https://www.themes.dev/caseroom/components/video-player/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "map-embed",
      "type": "registry:ui",
      "title": "Map",
      "description": "A location whose map loads from OpenStreetMap only when asked; the address works as a link without it.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/button.json"
      ],
      "files": [
        {
          "path": "registry/ui/map-embed/map-embed.client.ts",
          "type": "registry:ui",
          "target": "components/ui/map-embed.client.ts"
        },
        {
          "path": "registry/ui/map-embed/map-embed.tsx",
          "type": "registry:ui",
          "target": "components/ui/map-embed.tsx"
        },
        {
          "path": "registry/ui/map-embed/map-embed.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/map-embed.variants.ts"
        }
      ],
      "categories": [
        "media"
      ],
      "docs": "https://www.themes.dev/caseroom/components/map-embed/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "story-card",
      "type": "registry:ui",
      "title": "Story card",
      "description": "Picture, kicker, the title as the one link, a line and the meta; standard, compact, wide and feature.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/story-card/story-card.tsx",
          "type": "registry:ui",
          "target": "components/ui/story-card.tsx"
        },
        {
          "path": "registry/ui/story-card/story-card.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/story-card.variants.ts"
        }
      ],
      "categories": [
        "display"
      ],
      "docs": "https://www.themes.dev/caseroom/components/story-card/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "section-header",
      "type": "registry:ui",
      "title": "Section header",
      "description": "The head of a page section: a kicker in words, the heading, a line or two and an optional action.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/section-header/section-header.tsx",
          "type": "registry:ui",
          "target": "components/ui/section-header.tsx"
        },
        {
          "path": "registry/ui/section-header/section-header.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/section-header.variants.ts"
        }
      ],
      "categories": [
        "layout"
      ],
      "docs": "https://www.themes.dev/caseroom/components/section-header/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "segmented",
      "type": "registry:ui",
      "title": "Segmented control",
      "description": "Native radios drawn as one pill track, like a billing-period toggle. One Tab stop, arrows choose.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/segmented/segmented.tsx",
          "type": "registry:ui",
          "target": "components/ui/segmented.tsx"
        },
        {
          "path": "registry/ui/segmented/segmented.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/segmented.variants.ts"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/components/segmented/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "result-list",
      "type": "registry:ui",
      "title": "Search results",
      "description": "An announced count, then ranked results with the address and the match marked in each snippet.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/result-list/result-list.tsx",
          "type": "registry:ui",
          "target": "components/ui/result-list.tsx"
        },
        {
          "path": "registry/ui/result-list/result-list.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/result-list.variants.ts"
        }
      ],
      "categories": [
        "data"
      ],
      "docs": "https://www.themes.dev/caseroom/components/result-list/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "announcement",
      "type": "registry:ui",
      "title": "Announcement bar",
      "description": "One line at the top of the site on an inverted ground, a read-more link and a close button.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/ui/announcement/announcement.client.ts",
          "type": "registry:ui",
          "target": "components/ui/announcement.client.ts"
        },
        {
          "path": "registry/ui/announcement/announcement.tsx",
          "type": "registry:ui",
          "target": "components/ui/announcement.tsx"
        },
        {
          "path": "registry/ui/announcement/announcement.variants.ts",
          "type": "registry:ui",
          "target": "components/ui/announcement.variants.ts"
        }
      ],
      "categories": [
        "feedback"
      ],
      "docs": "https://www.themes.dev/caseroom/components/announcement/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "hero",
      "type": "registry:block",
      "title": "Hero",
      "description": "The opening section: h1, one sentence, two actions and an install command; compact for an inner page.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/button.json",
        "https://www.themes.dev/caseroom/r/badge.json"
      ],
      "files": [
        {
          "path": "registry/blocks/hero/hero.classes.ts",
          "type": "registry:component",
          "target": "components/caseroom/hero.classes.ts"
        },
        {
          "path": "registry/blocks/hero/hero.tsx",
          "type": "registry:component",
          "target": "components/caseroom/hero.tsx"
        }
      ],
      "categories": [
        "marketing"
      ],
      "docs": "https://www.themes.dev/caseroom/blocks/hero/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "pricing",
      "type": "registry:block",
      "title": "Pricing",
      "description": "Plans side by side; the featured plan inverts, an enterprise plan can run as a wide row under them.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/button.json",
        "https://www.themes.dev/caseroom/r/badge.json"
      ],
      "files": [
        {
          "path": "registry/blocks/pricing/pricing.classes.ts",
          "type": "registry:component",
          "target": "components/caseroom/pricing.classes.ts"
        },
        {
          "path": "registry/blocks/pricing/pricing.tsx",
          "type": "registry:component",
          "target": "components/caseroom/pricing.tsx"
        }
      ],
      "categories": [
        "marketing"
      ],
      "docs": "https://www.themes.dev/caseroom/blocks/pricing/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "faq",
      "type": "registry:block",
      "title": "FAQ",
      "description": "Questions as native details: keyboard, find-in-page and no JavaScript.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/blocks/faq/faq.classes.ts",
          "type": "registry:component",
          "target": "components/caseroom/faq.classes.ts"
        },
        {
          "path": "registry/blocks/faq/faq.tsx",
          "type": "registry:component",
          "target": "components/caseroom/faq.tsx"
        }
      ],
      "categories": [
        "marketing"
      ],
      "docs": "https://www.themes.dev/caseroom/blocks/faq/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "site-header",
      "type": "registry:block",
      "title": "Site header",
      "description": "Brand, links and actions, sticky; below 1024px they fold into a Menu panel. Inline or centred.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/button.json"
      ],
      "files": [
        {
          "path": "registry/blocks/site-header/site-header.classes.ts",
          "type": "registry:component",
          "target": "components/caseroom/site-header.classes.ts"
        },
        {
          "path": "registry/blocks/site-header/site-header.client.ts",
          "type": "registry:component",
          "target": "components/caseroom/site-header.client.ts"
        },
        {
          "path": "registry/blocks/site-header/site-header.tsx",
          "type": "registry:component",
          "target": "components/caseroom/site-header.tsx"
        }
      ],
      "categories": [
        "navigation"
      ],
      "docs": "https://www.themes.dev/caseroom/blocks/site-header/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "site-footer",
      "type": "registry:block",
      "title": "Site footer",
      "description": "Brand, link columns and a legal row; on the page or as an inverted band that closes it.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/blocks/site-footer/site-footer.classes.ts",
          "type": "registry:component",
          "target": "components/caseroom/site-footer.classes.ts"
        },
        {
          "path": "registry/blocks/site-footer/site-footer.tsx",
          "type": "registry:component",
          "target": "components/caseroom/site-footer.tsx"
        }
      ],
      "categories": [
        "navigation"
      ],
      "docs": "https://www.themes.dev/caseroom/blocks/site-footer/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "newsletter",
      "type": "registry:block",
      "title": "Newsletter signup",
      "description": "A heading, an email field with its button attached and a note on how often you send.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/input.json",
        "https://www.themes.dev/caseroom/r/button.json"
      ],
      "files": [
        {
          "path": "registry/blocks/newsletter/newsletter.classes.ts",
          "type": "registry:component",
          "target": "components/caseroom/newsletter.classes.ts"
        },
        {
          "path": "registry/blocks/newsletter/newsletter.tsx",
          "type": "registry:component",
          "target": "components/caseroom/newsletter.tsx"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/blocks/newsletter/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "contact-form",
      "type": "registry:block",
      "title": "Contact form",
      "description": "Name, email, topic and message with visible labels and native validation.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/input.json",
        "https://www.themes.dev/caseroom/r/label.json",
        "https://www.themes.dev/caseroom/r/select.json",
        "https://www.themes.dev/caseroom/r/textarea.json",
        "https://www.themes.dev/caseroom/r/button.json"
      ],
      "files": [
        {
          "path": "registry/blocks/contact-form/contact-form.classes.ts",
          "type": "registry:component",
          "target": "components/caseroom/contact-form.classes.ts"
        },
        {
          "path": "registry/blocks/contact-form/contact-form.tsx",
          "type": "registry:component",
          "target": "components/caseroom/contact-form.tsx"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/blocks/contact-form/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "logo-strip",
      "type": "registry:block",
      "title": "Logo strip",
      "description": "One line on who uses it, then the logos at one height and one colour, in rows that wrap evenly.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json"
      ],
      "files": [
        {
          "path": "registry/blocks/logo-strip/logo-strip.classes.ts",
          "type": "registry:component",
          "target": "components/caseroom/logo-strip.classes.ts"
        },
        {
          "path": "registry/blocks/logo-strip/logo-strip.tsx",
          "type": "registry:component",
          "target": "components/caseroom/logo-strip.tsx"
        }
      ],
      "categories": [
        "marketing"
      ],
      "docs": "https://www.themes.dev/caseroom/blocks/logo-strip/"
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "login-form",
      "type": "registry:block",
      "title": "Login form",
      "description": "Email and password with autocomplete hints, a show/hide toggle, keep me signed in, reset and sign-up links. The full auth flow is in Flightdeck.",
      "author": "themes.dev <hello@themes.dev>",
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "registryDependencies": [
        "https://www.themes.dev/caseroom/r/utils.json",
        "https://www.themes.dev/caseroom/r/theme.json",
        "https://www.themes.dev/caseroom/r/input.json",
        "https://www.themes.dev/caseroom/r/label.json",
        "https://www.themes.dev/caseroom/r/checkbox.json",
        "https://www.themes.dev/caseroom/r/button.json"
      ],
      "files": [
        {
          "path": "registry/blocks/login-form/login-form.classes.ts",
          "type": "registry:component",
          "target": "components/caseroom/login-form.classes.ts"
        },
        {
          "path": "registry/blocks/login-form/login-form.tsx",
          "type": "registry:component",
          "target": "components/caseroom/login-form.tsx"
        }
      ],
      "categories": [
        "forms"
      ],
      "docs": "https://www.themes.dev/caseroom/blocks/login-form/"
    }
  ]
}
