{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "klarhimmel",
  "homepage": "https://ui.klarhimmel.com",
  "items": [
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "utils",
      "type": "registry:lib",
      "title": "Utilities",
      "description": "cn(): clsx + tailwind-merge, and the theme-root scope overlays portal into.",
      "dependencies": [
        "clsx@^2.1.1",
        "tailwind-merge@^3.7.0"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/klarhimmel/lib/utils.ts"
        },
        {
          "path": "src/lib/theme-root.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/lib/theme-root.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "editing",
      "type": "registry:lib",
      "title": "Editing slots",
      "description": "Text and Media slots every block renders copy and images through. Outside an editor they render plain elements.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/editing.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/editing.tsx"
        },
        {
          "path": "src/lib/inline.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/lib/inline.tsx"
        },
        {
          "path": "src/lib/prose.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/lib/prose.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "theme",
      "type": "registry:lib",
      "title": "Theme and tokens",
      "description": "Theme (brand, wireframe; system, light, dark), styleToCssVars, palettes, theme.css (tokens + every font) and theme-core.css (tokens only) with one fonts/<family>.css per family. Import theme.css after Tailwind in your main CSS.",
      "dependencies": [
        "@fontsource-variable/dm-sans@^5.2.8",
        "@fontsource-variable/fraunces@^5.2.9",
        "@fontsource-variable/geist-mono@^5.2.7",
        "@fontsource-variable/geist@^5.2.8",
        "@fontsource-variable/inter@^5.2.8",
        "@fontsource-variable/jetbrains-mono@^5.2.8",
        "@fontsource-variable/space-grotesk@^5.2.10",
        "@fontsource/instrument-serif@^5.2.8"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/theme/style.ts",
          "type": "registry:lib",
          "target": "components/klarhimmel/theme/style.ts"
        },
        {
          "path": "src/theme/tokens.ts",
          "type": "registry:lib",
          "target": "components/klarhimmel/theme/tokens.ts"
        },
        {
          "path": "src/theme/palette.ts",
          "type": "registry:lib",
          "target": "components/klarhimmel/theme/palette.ts"
        },
        {
          "path": "src/theme/presets.ts",
          "type": "registry:lib",
          "target": "components/klarhimmel/theme/presets.ts"
        },
        {
          "path": "src/lib/clone.ts",
          "type": "registry:lib",
          "target": "components/klarhimmel/lib/clone.ts"
        },
        {
          "path": "src/theme/theme.css",
          "type": "registry:file",
          "target": "components/klarhimmel/theme/theme.css"
        },
        {
          "path": "src/theme/theme-core.css",
          "type": "registry:file",
          "target": "components/klarhimmel/theme/theme-core.css"
        },
        {
          "path": "src/theme/fonts.css",
          "type": "registry:file",
          "target": "components/klarhimmel/theme/fonts.css"
        },
        {
          "path": "src/theme/fonts/dm-sans.css",
          "type": "registry:file",
          "target": "components/klarhimmel/theme/fonts/dm-sans.css"
        },
        {
          "path": "src/theme/fonts/fraunces.css",
          "type": "registry:file",
          "target": "components/klarhimmel/theme/fonts/fraunces.css"
        },
        {
          "path": "src/theme/fonts/geist-mono.css",
          "type": "registry:file",
          "target": "components/klarhimmel/theme/fonts/geist-mono.css"
        },
        {
          "path": "src/theme/fonts/geist.css",
          "type": "registry:file",
          "target": "components/klarhimmel/theme/fonts/geist.css"
        },
        {
          "path": "src/theme/fonts/instrument-serif.css",
          "type": "registry:file",
          "target": "components/klarhimmel/theme/fonts/instrument-serif.css"
        },
        {
          "path": "src/theme/fonts/inter.css",
          "type": "registry:file",
          "target": "components/klarhimmel/theme/fonts/inter.css"
        },
        {
          "path": "src/theme/fonts/jetbrains-mono.css",
          "type": "registry:file",
          "target": "components/klarhimmel/theme/fonts/jetbrains-mono.css"
        },
        {
          "path": "src/theme/fonts/space-grotesk.css",
          "type": "registry:file",
          "target": "components/klarhimmel/theme/fonts/space-grotesk.css"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "block-kit",
      "type": "registry:lib",
      "title": "Block kit",
      "description": "The block contract (types), schema helpers, the shared layout kit and BlockSurface.",
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/button",
        "@klarhimmel/copy-button",
        "@klarhimmel/editing",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/types.ts",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/types.ts"
        },
        {
          "path": "src/blocks/_shared/schema.ts",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/schema.ts"
        },
        {
          "path": "src/blocks/_shared/kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/kit.tsx"
        },
        {
          "path": "src/blocks/_shared/brand-wordmark.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/brand-wordmark.tsx"
        },
        {
          "path": "src/blocks/surface.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/surface.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kit-a-docs",
      "type": "registry:lib",
      "title": "Kit a-docs",
      "description": "Helpers shared by the docs blocks.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/copy-button",
        "@klarhimmel/demos",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/_shared/a-docs-kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/a-docs-kit.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kit-app",
      "type": "registry:lib",
      "title": "Kit app",
      "description": "Helpers shared by the app blocks.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/_shared/app-kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/app-kit.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kit-auth",
      "type": "registry:lib",
      "title": "Kit auth",
      "description": "Helpers shared by the auth blocks.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-app",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/_shared/auth-kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/auth-kit.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kit-b-directory",
      "type": "registry:lib",
      "title": "Kit b-directory",
      "description": "Helpers shared by the directory blocks.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/copy-button",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/_shared/b-directory-kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/b-directory-kit.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kit-c-proof",
      "type": "registry:lib",
      "title": "Kit c-proof",
      "description": "Helpers shared by the proof blocks.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/_shared/c-proof-kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/c-proof-kit.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kit-d-chrome",
      "type": "registry:lib",
      "title": "Kit d-chrome",
      "description": "Helpers shared by the chrome blocks.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kbd",
        "@klarhimmel/kit-form",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/_shared/d-chrome-kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/d-chrome-kit.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kit-e-faq",
      "type": "registry:lib",
      "title": "Kit e-faq",
      "description": "Helpers shared by the e-faq blocks.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/_shared/e-faq-kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/e-faq-kit.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kit-form",
      "type": "registry:lib",
      "title": "Kit form",
      "description": "Helpers shared by the form blocks.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/_shared/form-kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/form-kit.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kit-invalid",
      "type": "registry:lib",
      "title": "Kit invalid",
      "description": "Helpers shared by the invalid blocks.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit"
      ],
      "files": [
        {
          "path": "src/blocks/_shared/invalid-kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/invalid-kit.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kit-report",
      "type": "registry:lib",
      "title": "Kit report",
      "description": "Helpers shared by the report blocks.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/_shared/report-kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/report-kit.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kit-scheduling",
      "type": "registry:lib",
      "title": "Kit scheduling",
      "description": "Helpers shared by the scheduling blocks.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "src/blocks/_shared/scheduling-kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/scheduling-kit.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kit-snapshot",
      "type": "registry:lib",
      "title": "Kit snapshot",
      "description": "Helpers shared by the snapshot blocks.",
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/_shared/snapshot-kit.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/snapshot-kit.tsx"
        },
        {
          "path": "src/blocks/_shared/snapshot-schema.ts",
          "type": "registry:lib",
          "target": "components/klarhimmel/blocks/_shared/snapshot-schema.ts"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "demos",
      "type": "registry:lib",
      "title": "Demos",
      "description": "The live component demos docs blocks render by id.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/accordion",
        "@klarhimmel/alert-dialog",
        "@klarhimmel/app-assistant-approval",
        "@klarhimmel/app-assistant-composer",
        "@klarhimmel/app-assistant-thread",
        "@klarhimmel/app-assistant-tool-call",
        "@klarhimmel/app-dashboard-stats",
        "@klarhimmel/app-shell-sidebar",
        "@klarhimmel/app-shell-topbar",
        "@klarhimmel/avatar",
        "@klarhimmel/avatar-group",
        "@klarhimmel/badge",
        "@klarhimmel/banner",
        "@klarhimmel/breadcrumb",
        "@klarhimmel/button",
        "@klarhimmel/calendar",
        "@klarhimmel/card",
        "@klarhimmel/checkbox",
        "@klarhimmel/collapsible",
        "@klarhimmel/collection-controls",
        "@klarhimmel/combobox",
        "@klarhimmel/command",
        "@klarhimmel/context-menu",
        "@klarhimmel/copy-button",
        "@klarhimmel/date-picker",
        "@klarhimmel/dialog",
        "@klarhimmel/empty-state",
        "@klarhimmel/file-field",
        "@klarhimmel/hero-split",
        "@klarhimmel/hover-card",
        "@klarhimmel/icon-button",
        "@klarhimmel/input",
        "@klarhimmel/input-group",
        "@klarhimmel/input-otp",
        "@klarhimmel/kbd",
        "@klarhimmel/label",
        "@klarhimmel/menu",
        "@klarhimmel/native-select",
        "@klarhimmel/number-field",
        "@klarhimmel/pagination",
        "@klarhimmel/popover",
        "@klarhimmel/progress",
        "@klarhimmel/radio-group",
        "@klarhimmel/review-bar",
        "@klarhimmel/score-ring",
        "@klarhimmel/scroll-area",
        "@klarhimmel/select",
        "@klarhimmel/separator",
        "@klarhimmel/sheet",
        "@klarhimmel/skeleton",
        "@klarhimmel/slider",
        "@klarhimmel/source-note",
        "@klarhimmel/stepper",
        "@klarhimmel/switch",
        "@klarhimmel/table",
        "@klarhimmel/tabs",
        "@klarhimmel/text-link",
        "@klarhimmel/toast",
        "@klarhimmel/toggle",
        "@klarhimmel/toggle-group",
        "@klarhimmel/tooltip"
      ],
      "files": [
        {
          "path": "src/demos/demo.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/demo.tsx"
        },
        {
          "path": "src/demos/index.ts",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/index.ts"
        },
        {
          "path": "src/demos/ids.ts",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/ids.ts"
        },
        {
          "path": "src/demos/accordion-controlled/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/accordion-controlled/index.tsx"
        },
        {
          "path": "src/demos/accordion-faq/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/accordion-faq/index.tsx"
        },
        {
          "path": "src/demos/accordion-multiple/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/accordion-multiple/index.tsx"
        },
        {
          "path": "src/demos/alert-dialog-confirm/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/alert-dialog-confirm/index.tsx"
        },
        {
          "path": "src/demos/alert-dialog-controlled/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/alert-dialog-controlled/index.tsx"
        },
        {
          "path": "src/demos/alert-dialog-destructive/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/alert-dialog-destructive/index.tsx"
        },
        {
          "path": "src/demos/app-assistant-live/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/app-assistant-live/index.tsx"
        },
        {
          "path": "src/demos/app-assistant-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/app-assistant-states/index.tsx"
        },
        {
          "path": "src/demos/app-shell-frame/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/app-shell-frame/index.tsx"
        },
        {
          "path": "src/demos/auth-magic-link/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/auth-magic-link/index.tsx"
        },
        {
          "path": "src/demos/avatar-fallback/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/avatar-fallback/index.tsx"
        },
        {
          "path": "src/demos/avatar-group-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/avatar-group-basic/index.tsx"
        },
        {
          "path": "src/demos/avatar-group-overflow/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/avatar-group-overflow/index.tsx"
        },
        {
          "path": "src/demos/avatar-group-sizes/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/avatar-group-sizes/index.tsx"
        },
        {
          "path": "src/demos/avatar-image/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/avatar-image/index.tsx"
        },
        {
          "path": "src/demos/avatar-sizes/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/avatar-sizes/index.tsx"
        },
        {
          "path": "src/demos/badge-tones/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/badge-tones/index.tsx"
        },
        {
          "path": "src/demos/banner-actions/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/banner-actions/index.tsx"
        },
        {
          "path": "src/demos/banner-form/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/banner-form/index.tsx"
        },
        {
          "path": "src/demos/banner-tones/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/banner-tones/index.tsx"
        },
        {
          "path": "src/demos/breadcrumb-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/breadcrumb-basic/index.tsx"
        },
        {
          "path": "src/demos/breadcrumb-long/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/breadcrumb-long/index.tsx"
        },
        {
          "path": "src/demos/breadcrumb-two-levels/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/breadcrumb-two-levels/index.tsx"
        },
        {
          "path": "src/demos/button-as-child/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/button-as-child/index.tsx"
        },
        {
          "path": "src/demos/button-primary/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/button-primary/index.tsx"
        },
        {
          "path": "src/demos/button-sizes/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/button-sizes/index.tsx"
        },
        {
          "path": "src/demos/button-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/button-states/index.tsx"
        },
        {
          "path": "src/demos/button-variants/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/button-variants/index.tsx"
        },
        {
          "path": "src/demos/button-with-icon/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/button-with-icon/index.tsx"
        },
        {
          "path": "src/demos/calendar-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/calendar-basic/index.tsx"
        },
        {
          "path": "src/demos/calendar-limits/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/calendar-limits/index.tsx"
        },
        {
          "path": "src/demos/calendar-sunday/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/calendar-sunday/index.tsx"
        },
        {
          "path": "src/demos/card-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/card-basic/index.tsx"
        },
        {
          "path": "src/demos/checkbox-group/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/checkbox-group/index.tsx"
        },
        {
          "path": "src/demos/checkbox-invalid/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/checkbox-invalid/index.tsx"
        },
        {
          "path": "src/demos/checkbox-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/checkbox-states/index.tsx"
        },
        {
          "path": "src/demos/collapsible-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/collapsible-basic/index.tsx"
        },
        {
          "path": "src/demos/collapsible-controlled/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/collapsible-controlled/index.tsx"
        },
        {
          "path": "src/demos/collapsible-disabled/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/collapsible-disabled/index.tsx"
        },
        {
          "path": "src/demos/collection-controls/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/collection-controls/index.tsx"
        },
        {
          "path": "src/demos/combobox-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/combobox-basic/index.tsx"
        },
        {
          "path": "src/demos/combobox-long/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/combobox-long/index.tsx"
        },
        {
          "path": "src/demos/combobox-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/combobox-states/index.tsx"
        },
        {
          "path": "src/demos/command-empty/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/command-empty/index.tsx"
        },
        {
          "path": "src/demos/command-inline/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/command-inline/index.tsx"
        },
        {
          "path": "src/demos/command-palette/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/command-palette/index.tsx"
        },
        {
          "path": "src/demos/context-menu-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/context-menu-basic/index.tsx"
        },
        {
          "path": "src/demos/context-menu-rows/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/context-menu-rows/index.tsx"
        },
        {
          "path": "src/demos/context-menu-tiles/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/context-menu-tiles/index.tsx"
        },
        {
          "path": "src/demos/copy-button-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/copy-button-basic/index.tsx"
        },
        {
          "path": "src/demos/date-picker-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/date-picker-basic/index.tsx"
        },
        {
          "path": "src/demos/date-picker-form/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/date-picker-form/index.tsx"
        },
        {
          "path": "src/demos/date-picker-limits/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/date-picker-limits/index.tsx"
        },
        {
          "path": "src/demos/dialog-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/dialog-basic/index.tsx"
        },
        {
          "path": "src/demos/dialog-destructive/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/dialog-destructive/index.tsx"
        },
        {
          "path": "src/demos/dialog-scroll/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/dialog-scroll/index.tsx"
        },
        {
          "path": "src/demos/empty-state-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/empty-state-basic/index.tsx"
        },
        {
          "path": "src/demos/empty-state-compact/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/empty-state-compact/index.tsx"
        },
        {
          "path": "src/demos/empty-state-search/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/empty-state-search/index.tsx"
        },
        {
          "path": "src/demos/file-field-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/file-field-basic/index.tsx"
        },
        {
          "path": "src/demos/file-field-chosen/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/file-field-chosen/index.tsx"
        },
        {
          "path": "src/demos/file-field-error/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/file-field-error/index.tsx"
        },
        {
          "path": "src/demos/hero-split-sample/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/hero-split-sample/index.tsx"
        },
        {
          "path": "src/demos/hover-card-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/hover-card-basic/index.tsx"
        },
        {
          "path": "src/demos/hover-card-controlled/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/hover-card-controlled/index.tsx"
        },
        {
          "path": "src/demos/hover-card-person/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/hover-card-person/index.tsx"
        },
        {
          "path": "src/demos/icon-button-toggle/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/icon-button-toggle/index.tsx"
        },
        {
          "path": "src/demos/icon-button-toolbar/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/icon-button-toolbar/index.tsx"
        },
        {
          "path": "src/demos/icon-button-variants/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/icon-button-variants/index.tsx"
        },
        {
          "path": "src/demos/input-field/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/input-field/index.tsx"
        },
        {
          "path": "src/demos/input-group-currency/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/input-group-currency/index.tsx"
        },
        {
          "path": "src/demos/input-group-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/input-group-states/index.tsx"
        },
        {
          "path": "src/demos/input-group-url/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/input-group-url/index.tsx"
        },
        {
          "path": "src/demos/input-otp-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/input-otp-basic/index.tsx"
        },
        {
          "path": "src/demos/input-otp-form/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/input-otp-form/index.tsx"
        },
        {
          "path": "src/demos/input-otp-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/input-otp-states/index.tsx"
        },
        {
          "path": "src/demos/kbd-shortcuts/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/kbd-shortcuts/index.tsx"
        },
        {
          "path": "src/demos/label-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/label-basic/index.tsx"
        },
        {
          "path": "src/demos/label-form/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/label-form/index.tsx"
        },
        {
          "path": "src/demos/label-required/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/label-required/index.tsx"
        },
        {
          "path": "src/demos/menu-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/menu-basic/index.tsx"
        },
        {
          "path": "src/demos/menu-options/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/menu-options/index.tsx"
        },
        {
          "path": "src/demos/menu-row-actions/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/menu-row-actions/index.tsx"
        },
        {
          "path": "src/demos/native-select-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/native-select-basic/index.tsx"
        },
        {
          "path": "src/demos/native-select-form/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/native-select-form/index.tsx"
        },
        {
          "path": "src/demos/native-select-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/native-select-states/index.tsx"
        },
        {
          "path": "src/demos/number-field-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/number-field-basic/index.tsx"
        },
        {
          "path": "src/demos/number-field-decimal/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/number-field-decimal/index.tsx"
        },
        {
          "path": "src/demos/number-field-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/number-field-states/index.tsx"
        },
        {
          "path": "src/demos/pagination-buttons/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/pagination-buttons/index.tsx"
        },
        {
          "path": "src/demos/pagination-edges/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/pagination-edges/index.tsx"
        },
        {
          "path": "src/demos/pagination-links/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/pagination-links/index.tsx"
        },
        {
          "path": "src/demos/popover-align/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/popover-align/index.tsx"
        },
        {
          "path": "src/demos/popover-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/popover-basic/index.tsx"
        },
        {
          "path": "src/demos/popover-form/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/popover-form/index.tsx"
        },
        {
          "path": "src/demos/progress-determinate/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/progress-determinate/index.tsx"
        },
        {
          "path": "src/demos/progress-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/progress-states/index.tsx"
        },
        {
          "path": "src/demos/progress-steps/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/progress-steps/index.tsx"
        },
        {
          "path": "src/demos/radio-group-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/radio-group-basic/index.tsx"
        },
        {
          "path": "src/demos/radio-group-form/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/radio-group-form/index.tsx"
        },
        {
          "path": "src/demos/radio-group-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/radio-group-states/index.tsx"
        },
        {
          "path": "src/demos/review-bar/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/review-bar/index.tsx"
        },
        {
          "path": "src/demos/score-ring-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/score-ring-states/index.tsx"
        },
        {
          "path": "src/demos/scroll-area-code/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/scroll-area-code/index.tsx"
        },
        {
          "path": "src/demos/scroll-area-horizontal/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/scroll-area-horizontal/index.tsx"
        },
        {
          "path": "src/demos/scroll-area-list/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/scroll-area-list/index.tsx"
        },
        {
          "path": "src/demos/select-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/select-basic/index.tsx"
        },
        {
          "path": "src/demos/select-form/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/select-form/index.tsx"
        },
        {
          "path": "src/demos/select-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/select-states/index.tsx"
        },
        {
          "path": "src/demos/separator-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/separator-basic/index.tsx"
        },
        {
          "path": "src/demos/separator-menu/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/separator-menu/index.tsx"
        },
        {
          "path": "src/demos/separator-vertical/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/separator-vertical/index.tsx"
        },
        {
          "path": "src/demos/sheet-bottom/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/sheet-bottom/index.tsx"
        },
        {
          "path": "src/demos/sheet-filters/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/sheet-filters/index.tsx"
        },
        {
          "path": "src/demos/sheet-left/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/sheet-left/index.tsx"
        },
        {
          "path": "src/demos/skeleton-card/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/skeleton-card/index.tsx"
        },
        {
          "path": "src/demos/skeleton-list/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/skeleton-list/index.tsx"
        },
        {
          "path": "src/demos/skeleton-text/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/skeleton-text/index.tsx"
        },
        {
          "path": "src/demos/slider-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/slider-basic/index.tsx"
        },
        {
          "path": "src/demos/slider-form/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/slider-form/index.tsx"
        },
        {
          "path": "src/demos/slider-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/slider-states/index.tsx"
        },
        {
          "path": "src/demos/source-note-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/source-note-basic/index.tsx"
        },
        {
          "path": "src/demos/stepper-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/stepper-basic/index.tsx"
        },
        {
          "path": "src/demos/stepper-descriptions/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/stepper-descriptions/index.tsx"
        },
        {
          "path": "src/demos/stepper-narrow/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/stepper-narrow/index.tsx"
        },
        {
          "path": "src/demos/switch-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/switch-basic/index.tsx"
        },
        {
          "path": "src/demos/table-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/table-basic/index.tsx"
        },
        {
          "path": "src/demos/table-selectable/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/table-selectable/index.tsx"
        },
        {
          "path": "src/demos/table-sortable/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/table-sortable/index.tsx"
        },
        {
          "path": "src/demos/tabs-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/tabs-basic/index.tsx"
        },
        {
          "path": "src/demos/text-link-inline/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/text-link-inline/index.tsx"
        },
        {
          "path": "src/demos/textarea-field/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/textarea-field/index.tsx"
        },
        {
          "path": "src/demos/toast-action/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/toast-action/index.tsx"
        },
        {
          "path": "src/demos/toast-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/toast-basic/index.tsx"
        },
        {
          "path": "src/demos/toast-tones/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/toast-tones/index.tsx"
        },
        {
          "path": "src/demos/toggle-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/toggle-basic/index.tsx"
        },
        {
          "path": "src/demos/toggle-group-multiple/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/toggle-group-multiple/index.tsx"
        },
        {
          "path": "src/demos/toggle-group-single/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/toggle-group-single/index.tsx"
        },
        {
          "path": "src/demos/toggle-group-view/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/toggle-group-view/index.tsx"
        },
        {
          "path": "src/demos/toggle-states/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/toggle-states/index.tsx"
        },
        {
          "path": "src/demos/toggle-toolbar/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/toggle-toolbar/index.tsx"
        },
        {
          "path": "src/demos/tooltip-basic/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/tooltip-basic/index.tsx"
        },
        {
          "path": "src/demos/tooltip-open/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/tooltip-open/index.tsx"
        },
        {
          "path": "src/demos/tooltip-shortcut/index.tsx",
          "type": "registry:lib",
          "target": "components/klarhimmel/demos/tooltip-shortcut/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "accordion",
      "type": "registry:ui",
      "title": "Accordion",
      "description": "A stack of headings that each open and close a panel: one open at a time or several, arrow-key navigation between headings.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/accordion.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/accordion.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "alert-dialog",
      "type": "registry:ui",
      "title": "Alert Dialog",
      "description": "A confirmation dialog that cannot be dismissed by accident: focus starts on Cancel, a click outside does nothing, the confirm button names the action. Built on Dialog.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/button",
        "@klarhimmel/dialog",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "src/ui/alert-dialog.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/alert-dialog.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "avatar-group",
      "type": "registry:ui",
      "title": "Avatar Group",
      "description": "The avatar-group primitive.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/avatar",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/avatar-group.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/avatar-group.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "avatar",
      "type": "registry:ui",
      "title": "Avatar",
      "description": "A person or team as a photo, or as initials on a colour picked from the name. Four sizes, round or square, falls back when a photo fails.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/avatar.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/avatar.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "badge",
      "type": "registry:ui",
      "title": "Badge",
      "description": "A short status or category label in neutral, accent or outline tones.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/badge.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/badge.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "banner",
      "type": "registry:ui",
      "title": "Banner",
      "description": "An inline message for a page or form: info, neutral or error, with an optional action and a dismiss button. Errors are announced at once.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/icon-button",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/banner.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/banner.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "breadcrumb",
      "type": "registry:ui",
      "title": "Breadcrumb",
      "description": "The path to the current page as a labelled list of links; the last item is the page itself (aria-current), not a link.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/button",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/breadcrumb.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/breadcrumb.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "button",
      "type": "registry:ui",
      "title": "Button",
      "description": "The button and the link-as-button: primary, secondary, ghost, accent and soft variants, three sizes, a 44 px hit area.",
      "dependencies": [
        "radix-ui@^1.6.7"
      ],
      "registryDependencies": [
        "@klarhimmel/editing",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/button.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/button.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "calendar",
      "type": "registry:ui",
      "title": "Calendar",
      "description": "The calendar primitive.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/calendar.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/calendar.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "card",
      "type": "registry:ui",
      "title": "Card",
      "description": "A bordered surface that groups one thing people scan as a unit.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/card.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/card.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "checkbox",
      "type": "registry:ui",
      "title": "Checkbox",
      "description": "A labelled checkbox with hint and error text, a checked, unchecked or indeterminate state, built on Radix Checkbox.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/checkbox.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/checkbox.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "collapsible",
      "type": "registry:ui",
      "title": "Collapsible",
      "description": "One button that shows or hides a region below it, with aria-expanded and aria-controls.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/collapsible.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/collapsible.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "collection-controls",
      "type": "registry:ui",
      "title": "Collection Controls",
      "description": "Native search, filter and sort controls. Search stays visible; options collapse in narrow containers. Collection state belongs to the consuming app.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/input",
        "@klarhimmel/native-select",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/collection-controls.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/collection-controls.tsx"
        },
        {
          "path": "src/ui/collection-controls.css",
          "type": "registry:file",
          "target": "components/klarhimmel/ui/collection-controls.css"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "combobox",
      "type": "registry:ui",
      "title": "Combobox",
      "description": "A text field that filters a list as you type and picks one option: ARIA list-autocomplete combobox, match count announced, a form value.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/select",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/combobox.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/combobox.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "command",
      "type": "registry:ui",
      "title": "Command",
      "description": "The command primitive.",
      "dependencies": [
        "lucide-react@^1.49.0",
        "radix-ui@^1.6.7"
      ],
      "registryDependencies": [
        "@klarhimmel/kbd",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/command.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/command.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "context-menu",
      "type": "registry:ui",
      "title": "Context Menu",
      "description": "The context-menu primitive.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/menu",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/context-menu.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/context-menu.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "copy-button",
      "type": "registry:ui",
      "title": "Copy Button",
      "description": "An icon button that copies a value to the clipboard and confirms with a check.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/copy-button.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/copy-button.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "date-picker",
      "type": "registry:ui",
      "title": "Date Picker",
      "description": "The date-picker primitive.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/calendar",
        "@klarhimmel/input-group",
        "@klarhimmel/popover",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "src/ui/date-picker.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/date-picker.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "dialog",
      "type": "registry:ui",
      "title": "Dialog",
      "description": "A modal dialog with title, description, scrolling body and pinned footer buttons; alert mode for destructive choices. Built on Radix Dialog.",
      "dependencies": [
        "lucide-react@^1.49.0",
        "radix-ui@^1.6.7"
      ],
      "registryDependencies": [
        "@klarhimmel/icon-button",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/dialog.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/dialog.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "empty-state",
      "type": "registry:ui",
      "title": "Empty State",
      "description": "A centred icon, heading, text and one action for lists, searches and inboxes with nothing in them yet.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/empty-state.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/empty-state.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "file-field",
      "type": "registry:ui",
      "title": "File Field",
      "description": "A styled file input with label, chosen file names announced to screen readers, a hint and an error.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/button",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/file-field.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/file-field.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "hover-card",
      "type": "registry:ui",
      "title": "Hover Card",
      "description": "The hover-card primitive.",
      "dependencies": [
        "radix-ui@^1.6.7"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/hover-card.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/hover-card.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "icon-button",
      "type": "registry:ui",
      "title": "Icon Button",
      "description": "A button with only an icon; the required label is its accessible name and its tooltip, with a 44 px hit area and a toggle state.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/editing",
        "@klarhimmel/theme",
        "@klarhimmel/tooltip",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/icon-button.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/icon-button.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "input-group",
      "type": "registry:ui",
      "title": "Input Group",
      "description": "The input-group primitive.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/input-group.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/input-group.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "input-otp",
      "type": "registry:ui",
      "title": "Input Otp",
      "description": "The input-otp primitive.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/input-otp.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/input-otp.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "input",
      "type": "registry:ui",
      "title": "Input",
      "description": "Input, Textarea and Field: text controls and the wrapper that owns the label, hint and error and wires them with aria.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/input.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/input.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "kbd",
      "type": "registry:ui",
      "title": "Kbd",
      "description": "A keyboard key for shortcuts in text, menus and tooltips.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/kbd.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/kbd.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "label",
      "type": "registry:ui",
      "title": "Label",
      "description": "The visible text that names a form control, with an optional required mark that screen readers announce too.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/label.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/label.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "menu",
      "type": "registry:ui",
      "title": "Menu",
      "description": "A dropdown menu of actions with icons, shortcuts, check and radio items, separators and danger items. Built on Radix Dropdown Menu.",
      "dependencies": [
        "lucide-react@^1.49.0",
        "radix-ui@^1.6.7"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/menu.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/menu.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "native-select",
      "type": "registry:ui",
      "title": "Native Select",
      "description": "The browser select in the system field style, with invalid and disabled states. Best on phones and for short lists.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/native-select.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/native-select.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "number-field",
      "type": "registry:ui",
      "title": "Number Field",
      "description": "The number-field primitive.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/input-group",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/number-field.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/number-field.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "pagination",
      "type": "registry:ui",
      "title": "Pagination",
      "description": "Page navigation as buttons or plain links, with the current page marked and Previous and Next kept as disabled buttons at the ends.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/button",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/pagination.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/pagination.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "popover",
      "type": "registry:ui",
      "title": "Popover",
      "description": "A floating panel anchored to a button for detail or a one-field form. Non-modal, closes on Escape or an outside click. Built on Radix Popover.",
      "dependencies": [
        "radix-ui@^1.6.7"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/popover.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/popover.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "progress",
      "type": "registry:ui",
      "title": "Progress",
      "description": "A bar for a known share done or an indeterminate wait, on the native progress element so the value is announced.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/progress.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/progress.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "radio-group",
      "type": "registry:ui",
      "title": "Radio Group",
      "description": "One choice from a few visible options: native radio inputs in a fieldset with a legend, hint and error, form-ready without script.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/radio-group.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/radio-group.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "review-bar",
      "type": "registry:ui",
      "title": "Review Bar",
      "description": "The review-bar primitive.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/review-bar.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/review-bar.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "score-ring",
      "type": "registry:ui",
      "title": "Score Ring",
      "description": "A bounded score with a readable caption; unassessed stays distinct from zero.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/score-ring.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/score-ring.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "scroll-area",
      "type": "registry:ui",
      "title": "Scroll Area",
      "description": "The scroll-area primitive.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/scroll-area.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/scroll-area.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "select",
      "type": "registry:ui",
      "title": "Select",
      "description": "A custom dropdown following the ARIA select-only combobox pattern: arrows, Home, End, Page keys, type-ahead, a hidden input for forms.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/select.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/select.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "separator",
      "type": "registry:ui",
      "title": "Separator",
      "description": "A hairline between groups, horizontal or vertical, decorative or a real separator role.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/separator.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/separator.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "sheet",
      "type": "registry:ui",
      "title": "Sheet",
      "description": "A modal side panel (right, left or bottom) for filters, details or a cart: titled, focus-trapped, Escape closes. Built on Dialog.",
      "dependencies": [
        "lucide-react@^1.49.0",
        "radix-ui@^1.6.7"
      ],
      "registryDependencies": [
        "@klarhimmel/icon-button",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/sheet.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/sheet.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "skeleton",
      "type": "registry:ui",
      "title": "Skeleton",
      "description": "Loading placeholders: a block you size with classes, and a text group that announces Loading once.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/skeleton.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/skeleton.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "slider",
      "type": "registry:ui",
      "title": "Slider",
      "description": "A single-value slider on the native range input, with the filled track following the value; keys and role come from the browser.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/slider.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/slider.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "source-note",
      "type": "registry:ui",
      "title": "Source Note",
      "description": "Source provenance and limitations beside copied, cached or partial data.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/source-note.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/source-note.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "stepper",
      "type": "registry:ui",
      "title": "Stepper",
      "description": "The stepper primitive.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/stepper.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/stepper.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "switch",
      "type": "registry:ui",
      "title": "Switch",
      "description": "An on/off switch for a setting that applies at once, built on Radix Switch.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/switch.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/switch.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "table",
      "type": "registry:ui",
      "title": "Table",
      "description": "A semantic data table in a keyboard-scrollable region: caption, column and row headers, sortable headers with aria-sort, selectable rows.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/table.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/table.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "tabs",
      "type": "registry:ui",
      "title": "Tabs",
      "description": "Tabs with keyboard arrows, Home and End, built on Radix Tabs.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/tabs.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/tabs.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "text-link",
      "type": "registry:ui",
      "title": "Text Link",
      "description": "An inline link with an always-visible underline and a focus ring.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/button",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/text-link.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/text-link.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "toast",
      "type": "registry:ui",
      "title": "Toast",
      "description": "Toasts from anywhere in the app: neutral, info and danger tones, an optional Undo action, polite and assertive live regions.",
      "dependencies": [
        "lucide-react@^1.49.0"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/toast.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/toast.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "toggle-group",
      "type": "registry:ui",
      "title": "Toggle Group",
      "description": "A row of toggles that belong together: single (a radio group) or multiple, one tab stop with arrow-key movement.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/toggle",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/toggle-group.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/toggle-group.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "toggle",
      "type": "registry:ui",
      "title": "Toggle",
      "description": "A button that stays pressed (bold, favourite, mute), with aria-pressed.",
      "dependencies": [
        "radix-ui@^1.6.7"
      ],
      "registryDependencies": [
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/toggle.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/toggle.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "tooltip",
      "type": "registry:ui",
      "title": "Tooltip",
      "description": "A short label for a control on hover and keyboard focus, with a shortcut hint and a shared delay provider. Built on Radix Tooltip.",
      "dependencies": [
        "radix-ui@^1.6.7"
      ],
      "registryDependencies": [
        "@klarhimmel/kbd",
        "@klarhimmel/theme",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/ui/tooltip.tsx",
          "type": "registry:ui",
          "target": "components/klarhimmel/ui/tooltip.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "about-timeline",
      "type": "registry:block",
      "title": "About, timeline",
      "description": "Company milestones by year: a heading and lead, then a vertical list of years with a title and a few lines.",
      "categories": [
        "content"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/about-timeline/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/about-timeline/spec.ts"
        },
        {
          "path": "src/blocks/about-timeline/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/about-timeline/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "activity-log",
      "type": "registry:block",
      "title": "Activity log",
      "description": "A heading beside a timed log of work: time, actor, one-line event and a status badge per row, with an optional highlighted row that needs the reader and one action. Static, no animation.",
      "categories": [
        "features"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/activity-log/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/activity-log/spec.ts"
        },
        {
          "path": "src/blocks/activity-log/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/activity-log/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-access-detail",
      "type": "registry:block",
      "title": "Operations, access detail",
      "description": "An access record with a copyable code, explicit validity, permissions and recorded history; unknown permissions remain distinct from an empty list.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/copy-button",
        "@klarhimmel/editing",
        "@klarhimmel/source-note"
      ],
      "files": [
        {
          "path": "src/blocks/app-access-detail/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-access-detail/spec.ts"
        },
        {
          "path": "src/blocks/app-access-detail/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-access-detail/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-assistant-approval",
      "type": "registry:block",
      "title": "App, assistant approval",
      "description": "An action the assistant wants to take and needs a person to allow: title, why, scoped detail, a risk level and Approve / Deny buttons named after the action. Pending, approved and denied via the state prop.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-invalid",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-assistant-approval/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-assistant-approval/spec.ts"
        },
        {
          "path": "src/blocks/app-assistant-approval/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-assistant-approval/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-assistant-composer",
      "type": "registry:block",
      "title": "App, assistant composer",
      "description": "The box a person writes to an assistant in: labelled textarea, attachment chips, attach and send buttons. Five states set by the state prop: ready, filled, sending (send becomes stop), disabled, over the length limit. Enter sends and Shift+Enter adds a line when the host wires it.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-assistant-composer/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-assistant-composer/spec.ts"
        },
        {
          "path": "src/blocks/app-assistant-composer/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-assistant-composer/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-assistant-showcase",
      "type": "registry:block",
      "title": "App, assistant showcase",
      "description": "Heading and link beside a mock assistant: thread, tool call, an approval with a recommended option, and a composer. A fixture UI, not interactive.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-assistant-showcase/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-assistant-showcase/spec.ts"
        },
        {
          "path": "src/blocks/app-assistant-showcase/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-assistant-showcase/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-assistant-thread",
      "type": "registry:block",
      "title": "App, assistant thread",
      "description": "A conversation with an assistant: user and assistant turns, optional code and four states. A log region; each turn is named by its speaker. The state, height and fixed scroll options are props.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-assistant-thread/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-assistant-thread/spec.ts"
        },
        {
          "path": "src/blocks/app-assistant-thread/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-assistant-thread/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-assistant-tool-call",
      "type": "registry:block",
      "title": "App, assistant tool call",
      "description": "One tool call in an assistant thread: name, one-line summary and status, with the arguments and result in a disclosure. Four states; duration is text you supply.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-assistant-tool-call/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-assistant-tool-call/spec.ts"
        },
        {
          "path": "src/blocks/app-assistant-tool-call/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-assistant-tool-call/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-auth-code",
      "type": "registry:block",
      "title": "App, one-time code",
      "description": "Enter a six-digit code: six boxes that behave as one field. Typing moves forward, Backspace moves back, arrow keys move, pasting fills every box, and the first box asks for the one-time code autofill. Idle, verifying, error and resent states.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/banner",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app",
        "@klarhimmel/kit-form",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-auth-code/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-auth-code/spec.ts"
        },
        {
          "path": "src/blocks/app-auth-code/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-auth-code/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-auth-reset",
      "type": "registry:block",
      "title": "App, reset password",
      "description": "Ask for a password reset link: one email field, a send button, a confirmation that does not reveal whether the address has an account, a resend button, and idle, sending, sent and error states.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/banner",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-app",
        "@klarhimmel/kit-auth",
        "@klarhimmel/kit-form"
      ],
      "files": [
        {
          "path": "src/blocks/app-auth-reset/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-auth-reset/spec.ts"
        },
        {
          "path": "src/blocks/app-auth-reset/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-auth-reset/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-auth-signin",
      "type": "registry:block",
      "title": "App, sign in",
      "description": "Sign in with email and password: labelled fields with the right autocomplete, a button that shows or hides the password, a forgot link, and idle, sending and error states. Never submits unless the host gives it an action.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/banner",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-app",
        "@klarhimmel/kit-auth",
        "@klarhimmel/kit-form"
      ],
      "files": [
        {
          "path": "src/blocks/app-auth-signin/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-auth-signin/spec.ts"
        },
        {
          "path": "src/blocks/app-auth-signin/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-auth-signin/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-auth-signup",
      "type": "registry:block",
      "title": "App, sign up",
      "description": "Create an account: name, email and a password with its rules, a required consent checkbox that names the terms and privacy links, and idle, sending, error and consent-missing states. The sentence a person agrees to is never replaced by a default.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/banner",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/checkbox",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-app",
        "@klarhimmel/kit-auth",
        "@klarhimmel/kit-form",
        "@klarhimmel/kit-invalid"
      ],
      "files": [
        {
          "path": "src/blocks/app-auth-signup/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-auth-signup/spec.ts"
        },
        {
          "path": "src/blocks/app-auth-signup/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-auth-signup/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-billing-invoices",
      "type": "registry:block",
      "title": "App, invoice list",
      "description": "A list of invoices as a table: number, date, amount, a status badge (paid, due, failed: always a word) and a download link named for its invoice that stays in view while the other columns scroll, and a failed invoice that can be paid again or have its card updated. Filled and empty states.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/empty-state",
        "@klarhimmel/kit-app"
      ],
      "files": [
        {
          "path": "src/blocks/app-billing-invoices/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-billing-invoices/spec.ts"
        },
        {
          "path": "src/blocks/app-billing-invoices/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-billing-invoices/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-billing-plan",
      "type": "registry:block",
      "title": "App, plan and usage",
      "description": "The current plan on one card: name, price, what is included, usage meters (native meter elements; the band is said in words at 70%, 90% and over the limit, and a limit without a number such as Unlimited draws no meter), and manage and upgrade actions. Active, trial and past-due states.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/banner",
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app"
      ],
      "files": [
        {
          "path": "src/blocks/app-billing-plan/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-billing-plan/spec.ts"
        },
        {
          "path": "src/blocks/app-billing-plan/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-billing-plan/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-boards-kanban",
      "type": "registry:block",
      "title": "App, kanban board",
      "description": "A board of columns with cards (title, assignee, due date, status flag). Every card has a Move menu that lists the other columns, so a card moves by keyboard; the move is announced and focus follows the card. Empty columns say so. Filled, empty, loading and error states.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/avatar",
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app",
        "@klarhimmel/menu",
        "@klarhimmel/skeleton",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-boards-kanban/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-boards-kanban/spec.ts"
        },
        {
          "path": "src/blocks/app-boards-kanban/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-boards-kanban/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-comments-thread",
      "type": "registry:block",
      "title": "App, comment thread",
      "description": "A discussion between people: comments with author and time, replies one level deep, a Reply button that opens a form under its comment (focus moves in and back), and a composer. Posting adds to the thread in place, clears the field and announces it. Filled, empty, posting and error states.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/avatar",
        "@klarhimmel/banner",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/empty-state",
        "@klarhimmel/input",
        "@klarhimmel/kit-app"
      ],
      "files": [
        {
          "path": "src/blocks/app-comments-thread/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-comments-thread/spec.ts"
        },
        {
          "path": "src/blocks/app-comments-thread/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-comments-thread/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-dashboard-chart",
      "type": "registry:block",
      "title": "App, chart card",
      "description": "A chart card for a dashboard: a bar or line chart drawn as plain SVG from a short list of readings, a sentence that says what it shows, and a value axis, negative values below a zero line, and a data table behind a disclosure so nobody depends on the picture. Filled, empty, loading and error states.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/banner",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/empty-state",
        "@klarhimmel/kit-app",
        "@klarhimmel/skeleton"
      ],
      "files": [
        {
          "path": "src/blocks/app-dashboard-chart/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-dashboard-chart/spec.ts"
        },
        {
          "path": "src/blocks/app-dashboard-chart/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-dashboard-chart/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-dashboard-stats",
      "type": "registry:block",
      "title": "App, stat panel row",
      "description": "A row of two to four figures for a dashboard: label, large value, the change with a sign and an arrow, and what it is measured against. A definition list for assistive tech, with loading and error states.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/banner",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app",
        "@klarhimmel/skeleton"
      ],
      "files": [
        {
          "path": "src/blocks/app-dashboard-stats/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-dashboard-stats/spec.ts"
        },
        {
          "path": "src/blocks/app-dashboard-stats/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-dashboard-stats/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-data-filters",
      "type": "registry:block",
      "title": "App, filter bar",
      "description": "A search box and select filters above a list, active filters as removable chips with a clear-all, and a result count read from a list (one entry per filter removed) and announced politely. Focus moves on when a chip goes. The block filters nothing itself.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-app",
        "@klarhimmel/native-select"
      ],
      "files": [
        {
          "path": "src/blocks/app-data-filters/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-data-filters/spec.ts"
        },
        {
          "path": "src/blocks/app-data-filters/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-data-filters/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-data-pagination",
      "type": "registry:block",
      "title": "App, pagination",
      "description": "A pagination row: a summary built from the page, rows per page and the total (it changes with the page and is read out politely), previous and next, numbered pages with a gap marker, and aria-current. It moves the marker and the summary; the rows are the host's.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-data-pagination/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-data-pagination/spec.ts"
        },
        {
          "path": "src/blocks/app-data-pagination/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-data-pagination/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-data-table",
      "type": "registry:block",
      "title": "App, data table",
      "description": "A data table: sort buttons that order by what a column holds (text, numbers, dates; aria-sort), a first column that stays in view while the rest scrolls with an edge fade, comfortable or compact rows, optional row selection with select all, an announced count and bulk actions, and four states.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/banner",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/checkbox",
        "@klarhimmel/editing",
        "@klarhimmel/empty-state",
        "@klarhimmel/kit-app",
        "@klarhimmel/skeleton",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-data-table/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-data-table/spec.ts"
        },
        {
          "path": "src/blocks/app-data-table/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-data-table/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-files-dropzone",
      "type": "registry:block",
      "title": "App, upload drop zone",
      "description": "A drop zone that takes a real drop (it highlights while a file is over it, a drop never navigates the page, dropped names are listed and announced) with the file picker inside it, so dragging is never the only way in. Idle, dragging and error states.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/file-field",
        "@klarhimmel/kit-app",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-files-dropzone/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-files-dropzone/spec.ts"
        },
        {
          "path": "src/blocks/app-files-dropzone/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-files-dropzone/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-files-list",
      "type": "registry:block",
      "title": "App, file list with status",
      "description": "Files and where each one is: uploading (a native progress bar with its percentage), done, or failed with a reason and Retry. Retry restarts the row at a stated percentage, Remove deletes it; both name their file, keep focus in the list and are announced. Filled and empty.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/empty-state",
        "@klarhimmel/kit-app"
      ],
      "files": [
        {
          "path": "src/blocks/app-files-list/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-files-list/spec.ts"
        },
        {
          "path": "src/blocks/app-files-list/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-files-list/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-notifications-inbox",
      "type": "registry:block",
      "title": "App, notification inbox",
      "description": "An inbox of notifications grouped by day: unread items marked with a dot and the word, an unread count in a live region, All and Unread filters, and Mark all as read. Opening an item marks it read in place. Filled and empty states.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/empty-state",
        "@klarhimmel/kit-app",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-notifications-inbox/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-notifications-inbox/spec.ts"
        },
        {
          "path": "src/blocks/app-notifications-inbox/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-notifications-inbox/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-onboarding-checklist",
      "type": "registry:block",
      "title": "App, setup checklist",
      "description": "A getting-started checklist with a progress bar and a count that follow the checkboxes. Each step has a title, a line of help and maybe one action. A completion message appears above the list when all are done; the list stays so a step can be unticked.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/checkbox",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-onboarding-checklist/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-onboarding-checklist/spec.ts"
        },
        {
          "path": "src/blocks/app-onboarding-checklist/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-onboarding-checklist/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-onboarding-steps",
      "type": "registry:block",
      "title": "App, step wizard header",
      "description": "A step indicator for a multi-step flow: numbered steps that are done, current or upcoming (aria-current=\"step\", the state also said in words for screen readers), the current step's text, and Back and Continue buttons that move through the steps in place.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-onboarding-steps/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-onboarding-steps/spec.ts"
        },
        {
          "path": "src/blocks/app-onboarding-steps/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-onboarding-steps/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-onboarding-welcome",
      "type": "registry:block",
      "title": "App, welcome screen",
      "description": "The first screen of an empty account: a greeting, one sentence on what happens next, one primary action, an optional secondary link, and two to four short tips. Built so there is exactly one obvious next step.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app"
      ],
      "files": [
        {
          "path": "src/blocks/app-onboarding-welcome/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-onboarding-welcome/spec.ts"
        },
        {
          "path": "src/blocks/app-onboarding-welcome/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-onboarding-welcome/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-operations-summary",
      "type": "registry:block",
      "title": "Operations, daily summary",
      "description": "A daily operational count line with an explicit attention message and source provenance. No counts are inferred.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/source-note"
      ],
      "files": [
        {
          "path": "src/blocks/app-operations-summary/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-operations-summary/spec.ts"
        },
        {
          "path": "src/blocks/app-operations-summary/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-operations-summary/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-scheduling-calendar",
      "type": "registry:block",
      "title": "App, month calendar",
      "description": "A month as a table with its events, today marked in words, previous, next and today buttons, and an agenda list in narrow containers instead of a cramped grid. Filled, empty, loading and error states. Dates are ISO text; the block never reads the clock.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/icon-button",
        "@klarhimmel/kit-app",
        "@klarhimmel/kit-scheduling",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-scheduling-calendar/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-scheduling-calendar/spec.ts"
        },
        {
          "path": "src/blocks/app-scheduling-calendar/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-scheduling-calendar/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-scheduling-slots",
      "type": "registry:block",
      "title": "App, time-slot picker",
      "description": "Pick a time: days across, times down, as a keyboard grid (arrow keys, Home and End, Space picks). A taken slot says so in words, the choice is repeated in a status line, and idle, error, confirmed and empty states. Never submits.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-scheduling-slots/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-scheduling-slots/spec.ts"
        },
        {
          "path": "src/blocks/app-scheduling-slots/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-scheduling-slots/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-search-results",
      "type": "registry:block",
      "title": "App, search results",
      "description": "A results page: a search box, checkbox facets whose counts follow the other filters, active filters as removable chips, a result count that is announced when it changes, and a no-results state with suggestions. Filled, empty, loading and error states.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/checkbox",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-app",
        "@klarhimmel/skeleton"
      ],
      "files": [
        {
          "path": "src/blocks/app-search-results/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-search-results/spec.ts"
        },
        {
          "path": "src/blocks/app-search-results/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-search-results/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-settings-danger",
      "type": "registry:block",
      "title": "App, danger zone",
      "description": "Irreversible actions kept apart from the rest of the settings. Each row explains the consequence; its button opens a confirmation where the person types a phrase before the destructive button is enabled.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-app",
        "@klarhimmel/kit-invalid"
      ],
      "files": [
        {
          "path": "src/blocks/app-settings-danger/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-settings-danger/spec.ts"
        },
        {
          "path": "src/blocks/app-settings-danger/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-settings-danger/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-settings-notifications",
      "type": "registry:block",
      "title": "App, notification preferences",
      "description": "A list of notification preferences, each a title, one line of explanation and a switch (applies at once) or a checkbox (saved with a button). The on/off state of every row is a prop.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/checkbox",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app",
        "@klarhimmel/switch"
      ],
      "files": [
        {
          "path": "src/blocks/app-settings-notifications/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-settings-notifications/spec.ts"
        },
        {
          "path": "src/blocks/app-settings-notifications/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-settings-notifications/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-settings-profile",
      "type": "registry:block",
      "title": "App, profile settings",
      "description": "A profile form: photo, labelled fields with hints and autofill hints, save and cancel, and four states (idle; saving, which disables every field; saved; error, which marks and describes the flagged field). Never submits.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/avatar",
        "@klarhimmel/banner",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-app"
      ],
      "files": [
        {
          "path": "src/blocks/app-settings-profile/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-settings-profile/spec.ts"
        },
        {
          "path": "src/blocks/app-settings-profile/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-settings-profile/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-shell-sidebar",
      "type": "registry:block",
      "title": "App, sidebar navigation",
      "description": "The sidebar of an app: grouped links with icons and an optional count, groups that open and close, the current page marked with aria-current, and a button that folds it into an icon rail whose names appear in tooltips (on hover and keyboard focus).",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app",
        "@klarhimmel/tooltip",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/app-shell-sidebar/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-shell-sidebar/spec.ts"
        },
        {
          "path": "src/blocks/app-shell-sidebar/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-shell-sidebar/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-shell-topbar",
      "type": "registry:block",
      "title": "App, top bar",
      "description": "The top bar of an app: breadcrumbs (the last is the current page, aria-current) and an account menu on an avatar button that opens with Enter, Space or the arrow keys, lists the account actions and returns focus on Escape.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/avatar",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/menu"
      ],
      "files": [
        {
          "path": "src/blocks/app-shell-topbar/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-shell-topbar/spec.ts"
        },
        {
          "path": "src/blocks/app-shell-topbar/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-shell-topbar/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-team-invite",
      "type": "registry:block",
      "title": "App, invite form",
      "description": "Invite someone: an email field with a hint, a role select and a send button, with four states (idle, sending, sent, error with the field marked and described). Never submits.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/banner",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-app",
        "@klarhimmel/native-select"
      ],
      "files": [
        {
          "path": "src/blocks/app-team-invite/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-team-invite/spec.ts"
        },
        {
          "path": "src/blocks/app-team-invite/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-team-invite/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-team-members",
      "type": "registry:block",
      "title": "App, member list",
      "description": "The people on a team: avatar, name, email and a role select per member, a locked owner row, Remove with a confirmation that keeps focus in the list, role changes and removals announced by name, a count that follows, and an empty state.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/avatar",
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/empty-state",
        "@klarhimmel/kit-app",
        "@klarhimmel/native-select"
      ],
      "files": [
        {
          "path": "src/blocks/app-team-members/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-team-members/spec.ts"
        },
        {
          "path": "src/blocks/app-team-members/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-team-members/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "app-team-pending",
      "type": "registry:block",
      "title": "App, pending invites",
      "description": "Invites not yet accepted: address, role and when it was sent, with Resend and Revoke that name their invite. Revoke asks first and keeps focus in the list; both actions are shown and announced with the address; the count follows; empty state.",
      "categories": [
        "app"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/empty-state",
        "@klarhimmel/kit-app"
      ],
      "files": [
        {
          "path": "src/blocks/app-team-pending/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-team-pending/spec.ts"
        },
        {
          "path": "src/blocks/app-team-pending/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/app-team-pending/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "banner-announcement",
      "type": "registry:block",
      "title": "Banner, announcement",
      "description": "A slim bar above the navbar with one sentence, a link and a dismiss button.",
      "categories": [
        "banner"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/banner-announcement/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/banner-announcement/spec.ts"
        },
        {
          "path": "src/blocks/banner-announcement/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/banner-announcement/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "banner-cookie",
      "type": "registry:block",
      "title": "Banner, cookie notice",
      "description": "A cookie notice with accept and reject buttons and a link to the policy.",
      "categories": [
        "banner"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/text-link"
      ],
      "files": [
        {
          "path": "src/blocks/banner-cookie/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/banner-cookie/spec.ts"
        },
        {
          "path": "src/blocks/banner-cookie/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/banner-cookie/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "banner-cta-bar",
      "type": "registry:block",
      "title": "Banner, call-to-action bar",
      "description": "A bar docked at the end of the page with a headline, a sentence and two actions. A last nudge after the content, not a notice. Empty secondary label drops that button.",
      "categories": [
        "banner"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/banner-cta-bar/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/banner-cta-bar/spec.ts"
        },
        {
          "path": "src/blocks/banner-cta-bar/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/banner-cta-bar/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "banner-promo",
      "type": "registry:block",
      "title": "Banner, promo code",
      "description": "A slim bar above the navbar for a campaign: a short badge, one line of text, the discount code in a dashed chip, and a link. Empty badge or code drops that part.",
      "categories": [
        "banner"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/banner-promo/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/banner-promo/spec.ts"
        },
        {
          "path": "src/blocks/banner-promo/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/banner-promo/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "blog-cards",
      "type": "registry:block",
      "title": "Blog, cards",
      "description": "A grid of article cards with image, category, title, excerpt and date, plus a link to all posts.",
      "categories": [
        "blog"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/blog-cards/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/blog-cards/spec.ts"
        },
        {
          "path": "src/blocks/blog-cards/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/blog-cards/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "blog-featured",
      "type": "registry:block",
      "title": "Blog, featured post",
      "description": "The newest article as a large image card with excerpt, beside a compact list of two to four more titles. A front page for a blog, not an archive.",
      "categories": [
        "blog"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/blog-featured/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/blog-featured/spec.ts"
        },
        {
          "path": "src/blocks/blog-featured/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/blog-featured/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "blog-list",
      "type": "registry:block",
      "title": "Blog, list",
      "description": "Post rows with date, title, excerpt and category, plus a link to the full archive.",
      "categories": [
        "blog"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/blog-list/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/blog-list/spec.ts"
        },
        {
          "path": "src/blocks/blog-list/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/blog-list/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "blog-post",
      "type": "registry:block",
      "title": "Blog, post",
      "description": "An article: category, title, date and reading time, author, cover image and a reading column of body text.",
      "categories": [
        "blog"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/blog-post/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/blog-post/spec.ts"
        },
        {
          "path": "src/blocks/blog-post/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/blog-post/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "case-study-before-after",
      "type": "registry:block",
      "title": "Case study, before and after",
      "description": "One dated result: client, a metric name, a before and an after figure, a short story, a link and an image.",
      "categories": [
        "case-study"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof"
      ],
      "files": [
        {
          "path": "src/blocks/case-study-before-after/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/case-study-before-after/spec.ts"
        },
        {
          "path": "src/blocks/case-study-before-after/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/case-study-before-after/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "case-study-card",
      "type": "registry:block",
      "title": "Case studies, cards",
      "description": "A collection of up to twelve project cards in a responsive three-column grid: image, client, a headline figure with its label, a short summary and a link.",
      "categories": [
        "case-study"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/case-study-card/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/case-study-card/spec.ts"
        },
        {
          "path": "src/blocks/case-study-card/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/case-study-card/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "case-study-metrics",
      "type": "registry:block",
      "title": "Case study, metrics",
      "description": "One customer story led by its numbers: headline and summary, a row of two to four big metrics, then a quote beside a photo and a link to the full story.",
      "categories": [
        "case-study"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/case-study-metrics/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/case-study-metrics/spec.ts"
        },
        {
          "path": "src/blocks/case-study-metrics/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/case-study-metrics/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "case-study-proof",
      "type": "registry:block",
      "title": "Case study, proof",
      "description": "One dated case in one block: client, a date line, a short story, a timeline of three to six dated steps, two to four outcome facts, a picture with a visible caption (not only alt text) and an optional source link.",
      "categories": [
        "case-study"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/case-study-proof/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/case-study-proof/spec.ts"
        },
        {
          "path": "src/blocks/case-study-proof/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/case-study-proof/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "case-study-story",
      "type": "registry:block",
      "title": "Case study, story",
      "description": "A narrative case study: headline, one wide photo, then two to four chapters side by side (Challenge, Approach, Result). Words first, no figure wall.",
      "categories": [
        "case-study"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/case-study-story/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/case-study-story/spec.ts"
        },
        {
          "path": "src/blocks/case-study-story/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/case-study-story/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "contact-booking",
      "type": "registry:block",
      "title": "Contact, booking",
      "description": "Contact options beside a card of static time slots to pick from, with a confirm button.",
      "categories": [
        "contact"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-form",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/contact-booking/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-booking/spec.ts"
        },
        {
          "path": "src/blocks/contact-booking/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-booking/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "contact-booking-link",
      "type": "registry:block",
      "title": "Contact, booking link",
      "description": "A card for booking a call in an external calendar: the person (photo, name, role), how long it is, what happens in the call, one primary link to the calendar page, and an email for people who prefer that. No time slots are drawn: the calendar owns them.",
      "categories": [
        "contact"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/text-link"
      ],
      "files": [
        {
          "path": "src/blocks/contact-booking-link/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-booking-link/spec.ts"
        },
        {
          "path": "src/blocks/contact-booking-link/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-booking-link/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "contact-channels",
      "type": "registry:block",
      "title": "Contact, channels",
      "description": "Two to four ways to reach you as cards: an icon, the channel name, who it is for, the address or number as a link, and how fast you answer. For support pages and anywhere \"contact us\" is really a choice.",
      "categories": [
        "contact"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/contact-channels/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-channels/spec.ts"
        },
        {
          "path": "src/blocks/contact-channels/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-channels/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "contact-form",
      "type": "registry:block",
      "title": "Contact, form",
      "description": "Heading and contact details beside a simple message form. Presentation only: the page wires the submit.",
      "categories": [
        "contact"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-form"
      ],
      "files": [
        {
          "path": "src/blocks/contact-form/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-form/spec.ts"
        },
        {
          "path": "src/blocks/contact-form/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-form/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "contact-map",
      "type": "registry:block",
      "title": "Contact, address and map",
      "description": "A visit page in two halves: the address, an opening-hours list, phone and email on one side, a map image with a directions link on the other. For a shop, studio or restaurant that people come to.",
      "categories": [
        "contact"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/contact-map/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-map/spec.ts"
        },
        {
          "path": "src/blocks/contact-map/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-map/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "contact-minimal",
      "type": "registry:block",
      "title": "Contact, minimal",
      "description": "Typographic contact: one oversized email link as the call to action, then up to three quiet details (phone, visit, hours) in columns. No form, no map.",
      "categories": [
        "contact"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/contact-minimal/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-minimal/spec.ts"
        },
        {
          "path": "src/blocks/contact-minimal/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-minimal/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "contact-offices",
      "type": "registry:block",
      "title": "Contact, offices",
      "description": "Where to find us: one card per office with address, opening hours, email and phone. No form. Email and phone become links; leave a field empty to drop the line.",
      "categories": [
        "contact"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/contact-offices/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-offices/spec.ts"
        },
        {
          "path": "src/blocks/contact-offices/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/contact-offices/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "content-columns",
      "type": "registry:block",
      "title": "Content, columns",
      "description": "Long text set in two newspaper columns under a wide headline, with an optional large pull quote between them. For a manifesto or an essay on a wide page.",
      "categories": [
        "content"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof"
      ],
      "files": [
        {
          "path": "src/blocks/content-columns/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/content-columns/spec.ts"
        },
        {
          "path": "src/blocks/content-columns/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/content-columns/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "content-legal",
      "type": "registry:block",
      "title": "Content, policy document",
      "description": "A policy or terms page: title and last-updated line, a sticky contents list that jumps to numbered sections (plain anchors, no script), and the sections themselves.",
      "categories": [
        "content"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/content-legal/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/content-legal/spec.ts"
        },
        {
          "path": "src/blocks/content-legal/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/content-legal/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "content-prose",
      "type": "registry:block",
      "title": "Content, prose",
      "description": "A reading column: title, lead paragraph, then headed sections of body text. For about pages and articles.",
      "categories": [
        "content"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/content-prose/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/content-prose/spec.ts"
        },
        {
          "path": "src/blocks/content-prose/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/content-prose/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "cta-audiences",
      "type": "registry:block",
      "title": "Call to action, by audience",
      "description": "Two or three side-by-side cards, one per kind of visitor (for guests, for owners, for agencies), each with its own short pitch, up to three points and its own action. The first card is filled. For a site with more than one front door.",
      "categories": [
        "cta"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/cta-audiences/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-audiences/spec.ts"
        },
        {
          "path": "src/blocks/cta-audiences/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-audiences/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "cta-band",
      "type": "registry:block",
      "title": "Call to action, band",
      "description": "A contrasting panel with a short headline and one or two actions, to close a page.",
      "categories": [
        "cta"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/cta-band/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-band/spec.ts"
        },
        {
          "path": "src/blocks/cta-band/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-band/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "cta-card",
      "type": "registry:block",
      "title": "Call to action, card",
      "description": "A contained, rounded card with a centred headline, two actions and a row of short reassurances (no card needed, cancel any time). Sits inside the page column instead of spanning it.",
      "categories": [
        "cta"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof"
      ],
      "files": [
        {
          "path": "src/blocks/cta-card/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-card/spec.ts"
        },
        {
          "path": "src/blocks/cta-card/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-card/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "cta-media",
      "type": "registry:block",
      "title": "Call to action, over an image",
      "description": "A wide image with a solid panel laid over its lower left corner holding the headline, a sentence and two actions (stacked under the image on narrow screens). Lets a photograph carry the mood: a place, a product, a crowd, with text that never depends on the image colours.",
      "categories": [
        "cta"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/cta-media/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-media/spec.ts"
        },
        {
          "path": "src/blocks/cta-media/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-media/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "cta-minimal",
      "type": "registry:block",
      "title": "Call to action, minimal",
      "description": "Type only: an oversized headline between two hairlines and one arrow link, nothing else. For a quiet end of page, or between long sections. Empty hint hides the small line.",
      "categories": [
        "cta"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/cta-minimal/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-minimal/spec.ts"
        },
        {
          "path": "src/blocks/cta-minimal/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-minimal/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "cta-offer",
      "type": "registry:block",
      "title": "CTA, offer",
      "description": "The offer of the week as one block: what you get in three to five points, how fast (text), this week's limit (text), and one primary action that is either a link or a one-field form. No countdown, no clock: swapping the offer is editing text.",
      "categories": [
        "cta"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-form"
      ],
      "files": [
        {
          "path": "src/blocks/cta-offer/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-offer/spec.ts"
        },
        {
          "path": "src/blocks/cta-offer/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-offer/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "cta-split",
      "type": "registry:block",
      "title": "Call to action, split",
      "description": "A panel with a headline, one or two actions and an image beside the copy.",
      "categories": [
        "cta"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/cta-split/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-split/spec.ts"
        },
        {
          "path": "src/blocks/cta-split/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/cta-split/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "directory-cards",
      "type": "registry:block",
      "title": "Directory, cards",
      "description": "A heading and a grid of link cards with thumbnail, title, caption, meta and an optional tag or actions. Catalogue cards, groups with \"View all\", category and template grids.",
      "categories": [
        "directory"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-b-directory",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/directory-cards/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/directory-cards/spec.ts"
        },
        {
          "path": "src/blocks/directory-cards/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/directory-cards/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "directory-header",
      "type": "registry:block",
      "title": "Directory, header",
      "description": "Title and description of a catalogue page, with optional breadcrumbs, search field, select labels and filter chips. Presentation only: the site wires search and sort.",
      "categories": [
        "directory"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-b-directory",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/directory-header/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/directory-header/spec.ts"
        },
        {
          "path": "src/blocks/directory-header/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/directory-header/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "directory-preview",
      "type": "registry:block",
      "title": "Directory, preview",
      "description": "Full-width preview of one block or screen: breadcrumbs, title, status badge, viewport toggle, Preview and Code tabs, actions and a framed stage that renders a registered demo by id.",
      "categories": [
        "directory"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/copy-button",
        "@klarhimmel/demos",
        "@klarhimmel/editing",
        "@klarhimmel/kit-b-directory",
        "@klarhimmel/tabs",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/directory-preview/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/directory-preview/spec.ts"
        },
        {
          "path": "src/blocks/directory-preview/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/directory-preview/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "directory-template-info",
      "type": "registry:block",
      "title": "Directory, template info",
      "description": "What a template contains: the pages it includes (name and path), the blocks it uses as chips, and a paragraph on how to customise it.",
      "categories": [
        "directory"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/directory-template-info/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/directory-template-info/spec.ts"
        },
        {
          "path": "src/blocks/directory-template-info/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/directory-template-info/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-anatomy",
      "type": "registry:block",
      "title": "Docs, anatomy",
      "description": "A diagram or live demo beside the part tree and part list of a compound component.",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-a-docs"
      ],
      "files": [
        {
          "path": "src/blocks/docs-anatomy/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-anatomy/spec.ts"
        },
        {
          "path": "src/blocks/docs-anatomy/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-anatomy/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-customise",
      "type": "registry:block",
      "title": "Docs, customise panel",
      "description": "The component-page customise panel: a stage and its code beside a list of controls (select, toggle, text). The layout is static; the site wires the controls to the code.",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-a-docs",
        "@klarhimmel/switch",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/docs-customise/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-customise/spec.ts"
        },
        {
          "path": "src/blocks/docs-customise/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-customise/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-do-dont",
      "type": "registry:block",
      "title": "Docs, do and don't",
      "description": "Side-by-side do and don't pairs, each with a short rule and an example image.",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-a-docs",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/docs-do-dont/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-do-dont/spec.ts"
        },
        {
          "path": "src/blocks/docs-do-dont/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-do-dont/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-examples",
      "type": "registry:block",
      "title": "Docs, examples",
      "description": "Named example groups (Variants, Sizes, States, With icon, Composition), each a stage (live demo or image) with optional code beneath.",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-a-docs"
      ],
      "files": [
        {
          "path": "src/blocks/docs-examples/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-examples/spec.ts"
        },
        {
          "path": "src/blocks/docs-examples/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-examples/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-header",
      "type": "registry:block",
      "title": "Docs, page header",
      "description": "Breadcrumbs, title and description, with an optional status badge, install command and result preview (demo or image). Opens a documentation page.",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-a-docs"
      ],
      "files": [
        {
          "path": "src/blocks/docs-header/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-header/spec.ts"
        },
        {
          "path": "src/blocks/docs-header/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-header/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-install",
      "type": "registry:block",
      "title": "Docs, install panel",
      "description": "An install panel: tabs of copyable code (CLI, Manual, Download), an optional \"Uses\" chip row, short labelled facts and actions. A tab with no code is left out.",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-a-docs",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/tabs"
      ],
      "files": [
        {
          "path": "src/blocks/docs-install/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-install/spec.ts"
        },
        {
          "path": "src/blocks/docs-install/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-install/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-pager",
      "type": "registry:block",
      "title": "Docs, pager",
      "description": "Previous and next cards that close a documentation page, with optional actions (Copy for AI, Edit on GitHub) and a last-updated line. A card with no title is left out.",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/docs-pager/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-pager/spec.ts"
        },
        {
          "path": "src/blocks/docs-pager/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-pager/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-preview-frame",
      "type": "registry:block",
      "title": "Docs, preview frame",
      "description": "A framed live stage and its code, with Preview and Code tabs when both are present. The stage is a live demo (demo id) or an image; either part may be left out (code-only SKILL.md, preview-only expected result).",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-a-docs",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/tabs"
      ],
      "files": [
        {
          "path": "src/blocks/docs-preview-frame/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-preview-frame/spec.ts"
        },
        {
          "path": "src/blocks/docs-preview-frame/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-preview-frame/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-prompt",
      "type": "registry:block",
      "title": "Docs, prompt",
      "description": "A prompt to copy, with {variables} highlighted. The first action copies the prompt; the others are links (Open in Claude, ChatGPT, v0). An optional result image shows what it produced.",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-a-docs"
      ],
      "files": [
        {
          "path": "src/blocks/docs-prompt/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-prompt/spec.ts"
        },
        {
          "path": "src/blocks/docs-prompt/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-prompt/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-props-table",
      "type": "registry:block",
      "title": "Docs, props table",
      "description": "A table of a component API: name, type, default and description. Scrolls sideways in narrow containers.",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/docs-props-table/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-props-table/spec.ts"
        },
        {
          "path": "src/blocks/docs-props-table/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-props-table/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-related",
      "type": "registry:block",
      "title": "Docs, related links",
      "description": "A titled row of link chips: the blocks a page uses, related components.",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/docs-related/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-related/spec.ts"
        },
        {
          "path": "src/blocks/docs-related/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-related/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-swatches",
      "type": "registry:block",
      "title": "Docs, colour swatches",
      "description": "A grid of colour swatches with name, hex value and token. The colour foundation specimen. Only hex values paint a swatch.",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/copy-button",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/docs-swatches/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-swatches/spec.ts"
        },
        {
          "path": "src/blocks/docs-swatches/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-swatches/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "docs-table",
      "type": "registry:block",
      "title": "Docs, table",
      "description": "A titled table with free columns (tokens, keyboard keys, variables, changelog). A column renders as text, code or badge; the first cell of each row is its header.",
      "categories": [
        "docs"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/docs-table/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-table/spec.ts"
        },
        {
          "path": "src/blocks/docs-table/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/docs-table/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "error-links",
      "type": "registry:block",
      "title": "Error, with links",
      "description": "A not-found or error page that does not leave people stranded: code, plain explanation, one primary action, and a short list of described places to go next. Left-aligned, two columns when wide.",
      "categories": [
        "error"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/error-links/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/error-links/spec.ts"
        },
        {
          "path": "src/blocks/error-links/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/error-links/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "error-maintenance",
      "type": "registry:block",
      "title": "Error, maintenance",
      "description": "A planned-downtime page: a status pill, headline, when we are back, and a short log of timed updates. Centred, calm, no error code. Empty updates hide the log.",
      "categories": [
        "error"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/error-maintenance/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/error-maintenance/spec.ts"
        },
        {
          "path": "src/blocks/error-maintenance/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/error-maintenance/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "error-page",
      "type": "registry:block",
      "title": "Error page",
      "description": "A 404, 500 or maintenance page: status code, headline, explanation and two ways out.",
      "categories": [
        "error"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/error-page/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/error-page/spec.ts"
        },
        {
          "path": "src/blocks/error-page/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/error-page/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "error-status",
      "type": "registry:block",
      "title": "Error, server error",
      "description": "A 500-style page for when it is our fault: plain apology, retry and status actions, and a side panel with a copyable reference id for support plus up to three things to try.",
      "categories": [
        "error"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/copy-button",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/error-status/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/error-status/spec.ts"
        },
        {
          "path": "src/blocks/error-status/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/error-status/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "faq-centered",
      "type": "registry:block",
      "title": "FAQ, centred cards",
      "description": "A centred heading over a narrow column of questions, each in its own rounded card that opens on click, and one link at the bottom. Gentler than the ruled list and good for short sets of three to six.",
      "categories": [
        "faq"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/kit-e-faq",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/faq-centered/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/faq-centered/spec.ts"
        },
        {
          "path": "src/blocks/faq-centered/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/faq-centered/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "faq-columns",
      "type": "registry:block",
      "title": "FAQ, columns",
      "description": "Up to eight questions with their answers always open, laid out in two columns.",
      "categories": [
        "faq"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof"
      ],
      "files": [
        {
          "path": "src/blocks/faq-columns/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/faq-columns/spec.ts"
        },
        {
          "path": "src/blocks/faq-columns/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/faq-columns/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "faq-grouped",
      "type": "registry:block",
      "title": "FAQ, grouped",
      "description": "Questions organised under named topics (billing, setup, privacy). Each topic is a labelled row with its own accordion beside it. Use when you have more than eight questions.",
      "categories": [
        "faq"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/faq-grouped/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/faq-grouped/spec.ts"
        },
        {
          "path": "src/blocks/faq-grouped/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/faq-grouped/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "faq-list",
      "type": "registry:block",
      "title": "FAQ, list",
      "description": "Heading beside a list of questions that open to show the answer.",
      "categories": [
        "faq"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/faq-list/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/faq-list/spec.ts"
        },
        {
          "path": "src/blocks/faq-list/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/faq-list/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "faq-rows",
      "type": "registry:block",
      "title": "FAQ, question and answer rows",
      "description": "Every answer open, set as a table of rows: the question is a heading on the left, the answer beside it on the right, hairlines between. Nothing to click, so it prints and scans well; stacks on narrow containers.",
      "categories": [
        "faq"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof"
      ],
      "files": [
        {
          "path": "src/blocks/faq-rows/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/faq-rows/spec.ts"
        },
        {
          "path": "src/blocks/faq-rows/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/faq-rows/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "faq-support",
      "type": "registry:block",
      "title": "FAQ, with a support card",
      "description": "An accordion of questions beside a raised \"still stuck?\" card with up to three ways to reach a person and one action. For products where the real answer is often a conversation.",
      "categories": [
        "faq"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/kit-e-faq",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/faq-support/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/faq-support/spec.ts"
        },
        {
          "path": "src/blocks/faq-support/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/faq-support/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "features-bento",
      "type": "registry:block",
      "title": "Features, bento",
      "description": "A mixed-size tile grid of up to seven features. Medium and large tiles carry an image, small tiles stay text-only. Pair a large tile with a small one.",
      "categories": [
        "features"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/features-bento/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/features-bento/spec.ts"
        },
        {
          "path": "src/blocks/features-bento/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/features-bento/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "features-grid",
      "type": "registry:block",
      "title": "Features, grid",
      "description": "Optional section heading and a grid of up to nine features, each with an optional icon, a title and a short description. Two to four columns.",
      "categories": [
        "features"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof"
      ],
      "files": [
        {
          "path": "src/blocks/features-grid/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/features-grid/spec.ts"
        },
        {
          "path": "src/blocks/features-grid/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/features-grid/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "features-list",
      "type": "registry:block",
      "title": "Features, list",
      "description": "Heading and a link on the left, a vertical list of up to six features with icon, title and description on the right.",
      "categories": [
        "features"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof"
      ],
      "files": [
        {
          "path": "src/blocks/features-list/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/features-list/spec.ts"
        },
        {
          "path": "src/blocks/features-list/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/features-list/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "features-split",
      "type": "registry:block",
      "title": "Features, alternating",
      "description": "Feature rows with copy beside an image, alternating sides. Each row has a title, description and up to four points.",
      "categories": [
        "features"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/features-split/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/features-split/spec.ts"
        },
        {
          "path": "src/blocks/features-split/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/features-split/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "features-tabs",
      "type": "registry:block",
      "title": "Features, tabs",
      "description": "Two to five tabs, each with a title, description, a short list of points and an image. All panels show while editing.",
      "categories": [
        "features"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/tabs"
      ],
      "files": [
        {
          "path": "src/blocks/features-tabs/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/features-tabs/spec.ts"
        },
        {
          "path": "src/blocks/features-tabs/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/features-tabs/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "features-terminal",
      "type": "registry:block",
      "title": "Features, terminal",
      "description": "Section heading and a link beside a terminal command and a prompt box. The section version of hero-terminal (h2).",
      "categories": [
        "features"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-b-directory"
      ],
      "files": [
        {
          "path": "src/blocks/features-terminal/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/features-terminal/spec.ts"
        },
        {
          "path": "src/blocks/features-terminal/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/features-terminal/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "footer-centered",
      "type": "registry:block",
      "title": "Footer, centered",
      "description": "A centred footer: brand and one-line tagline, a row of page links, a row of social links, then the legal line. For sites with five or six pages and no need for link columns.",
      "categories": [
        "footer"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/footer-centered/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/footer-centered/spec.ts"
        },
        {
          "path": "src/blocks/footer-centered/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/footer-centered/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "footer-columns",
      "type": "registry:block",
      "title": "Footer, columns",
      "description": "Up to four link columns, with a brand column or a full-width SVG wordmark below, an optional newsletter form and a legal line with legal links underneath.",
      "categories": [
        "footer"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/footer-columns/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/footer-columns/spec.ts"
        },
        {
          "path": "src/blocks/footer-columns/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/footer-columns/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "footer-cta",
      "type": "registry:block",
      "title": "Footer, with a call to action",
      "description": "A footer that opens with one last ask: a large headline, a sentence and two buttons on a tinted panel, then the brand, two to four link columns and the legal row. Saves a separate call-to-action section on short pages.",
      "categories": [
        "footer"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/footer-cta/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/footer-cta/spec.ts"
        },
        {
          "path": "src/blocks/footer-cta/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/footer-cta/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "footer-simple",
      "type": "registry:block",
      "title": "Footer, simple",
      "description": "One quiet row: brand, a few links and a legal line.",
      "categories": [
        "footer"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/footer-simple/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/footer-simple/spec.ts"
        },
        {
          "path": "src/blocks/footer-simple/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/footer-simple/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "footer-status",
      "type": "registry:block",
      "title": "Footer, with system status",
      "description": "A compact footer for a product: brand and tagline, a status pill (a dot, the words \"All systems operational\" and a link to the status page), one wrapped row of links and the legal line. The dot is shown by shape as well as colour. No columns.",
      "categories": [
        "footer"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/footer-status/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/footer-status/spec.ts"
        },
        {
          "path": "src/blocks/footer-status/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/footer-status/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "footer-wordmark",
      "type": "registry:block",
      "title": "Footer, wordmark",
      "description": "A footer led by an SVG text wordmark that scales to the full container width without wrapping or cropping, with up to three short link columns above and a legal row. Brand names up to 16 characters.",
      "categories": [
        "footer"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/footer-wordmark/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/footer-wordmark/spec.ts"
        },
        {
          "path": "src/blocks/footer-wordmark/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/footer-wordmark/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "gallery-featured",
      "type": "registry:block",
      "title": "Gallery, featured",
      "description": "One large lead image beside a stacked column of two or three smaller ones, each with a caption. A guided look: start here, then these.",
      "categories": [
        "gallery"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof"
      ],
      "files": [
        {
          "path": "src/blocks/gallery-featured/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/gallery-featured/spec.ts"
        },
        {
          "path": "src/blocks/gallery-featured/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/gallery-featured/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "gallery-grid",
      "type": "registry:block",
      "title": "Gallery, grid",
      "description": "A grid of images with captions under a heading.",
      "categories": [
        "gallery"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/gallery-grid/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/gallery-grid/spec.ts"
        },
        {
          "path": "src/blocks/gallery-grid/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/gallery-grid/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "gallery-masonry",
      "type": "registry:block",
      "title": "Gallery, masonry",
      "description": "Images in balanced columns with mixed frame shapes (wide, square, tall) and a caption under each. Use when the pictures are not all the same crop. Empty caption hides the line.",
      "categories": [
        "gallery"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/gallery-masonry/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/gallery-masonry/spec.ts"
        },
        {
          "path": "src/blocks/gallery-masonry/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/gallery-masonry/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "gallery-strip",
      "type": "registry:block",
      "title": "Gallery, scroll strip",
      "description": "A single row of same-height images that scrolls sideways with snap points and keyboard focus. Takes little height, so it fits between sections. The label names the region for screen readers.",
      "categories": [
        "gallery"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/gallery-strip/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/gallery-strip/spec.ts"
        },
        {
          "path": "src/blocks/gallery-strip/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/gallery-strip/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "hero-centered",
      "type": "registry:block",
      "title": "Hero, centered",
      "description": "Centered headline, description and two actions, with a wide framed image below.",
      "categories": [
        "hero"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/hero-centered/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-centered/spec.ts"
        },
        {
          "path": "src/blocks/hero-centered/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-centered/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "hero-code",
      "type": "registry:block",
      "title": "Hero, install command",
      "description": "Centered headline with a copyable install command and two links. For developer tools and libraries.",
      "categories": [
        "hero"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/hero-code/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-code/spec.ts"
        },
        {
          "path": "src/blocks/hero-code/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-code/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "hero-frame",
      "type": "registry:block",
      "title": "Hero, framed screenshot",
      "description": "Centred headline and actions above a product screenshot in a window frame with a title bar.",
      "categories": [
        "hero"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/hero-frame/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-frame/spec.ts"
        },
        {
          "path": "src/blocks/hero-frame/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-frame/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "hero-minimal",
      "type": "registry:block",
      "title": "Hero, minimal",
      "description": "Left-aligned oversized headline, one line of description and a single link. No media.",
      "categories": [
        "hero"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/hero-minimal/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-minimal/spec.ts"
        },
        {
          "path": "src/blocks/hero-minimal/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-minimal/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "hero-prompt",
      "type": "registry:block",
      "title": "Hero, prompt",
      "description": "Centred headline with a prompt input as the call to action and suggestion chips. For AI products.",
      "categories": [
        "hero"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-b-directory",
        "@klarhimmel/kit-form",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/hero-prompt/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-prompt/spec.ts"
        },
        {
          "path": "src/blocks/hero-prompt/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-prompt/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "hero-split",
      "type": "registry:block",
      "title": "Hero, split",
      "description": "Headline, short description and two actions on the left; an image on the right. Stacks in narrow containers.",
      "categories": [
        "hero"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/hero-split/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-split/spec.ts"
        },
        {
          "path": "src/blocks/hero-split/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-split/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "hero-terminal",
      "type": "registry:block",
      "title": "Hero, terminal",
      "description": "Headline and actions beside a terminal panel (command and output) and a prompt box. For developer and agent products.",
      "categories": [
        "hero"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-b-directory"
      ],
      "files": [
        {
          "path": "src/blocks/hero-terminal/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-terminal/spec.ts"
        },
        {
          "path": "src/blocks/hero-terminal/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/hero-terminal/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "logos-featured",
      "type": "registry:block",
      "title": "Logos, with quote",
      "description": "One customer quote on the left, a framed grid of up to six customer logos on the right. Names without artwork are set as wordmarks. Social proof in one screenful.",
      "categories": [
        "logos"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/logos-featured/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/logos-featured/spec.ts"
        },
        {
          "path": "src/blocks/logos-featured/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/logos-featured/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "logos-grid",
      "type": "registry:block",
      "title": "Logos, grid",
      "description": "A hairline grid of up to twelve logo cells. Each cell shows its image, or the name set as a wordmark while there is no image.",
      "categories": [
        "logos"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/logos-grid/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/logos-grid/spec.ts"
        },
        {
          "path": "src/blocks/logos-grid/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/logos-grid/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "logos-grouped",
      "type": "registry:block",
      "title": "Logos, by sector",
      "description": "Customer names set as wordmarks in columns under a sector heading (hotels, restaurants, agencies), two to four groups. Shows the breadth of who uses you, which a single row cannot. No logo files needed.",
      "categories": [
        "logos"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/logos-grouped/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/logos-grouped/spec.ts"
        },
        {
          "path": "src/blocks/logos-grouped/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/logos-grouped/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "logos-press",
      "type": "registry:block",
      "title": "Logos, as seen in",
      "description": "Press coverage as rows: the outlet as a wordmark on the left, the headline as a link to the article, the year at the right. Proof from third parties, with the receipts one click away.",
      "categories": [
        "logos"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/logos-press/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/logos-press/spec.ts"
        },
        {
          "path": "src/blocks/logos-press/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/logos-press/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "logos-results",
      "type": "registry:block",
      "title": "Logos, with results",
      "description": "Each customer as a small card: logo (or wordmark), one headline result and what it measures. Proof with numbers instead of a plain row of names.",
      "categories": [
        "logos"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/logos-results/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/logos-results/spec.ts"
        },
        {
          "path": "src/blocks/logos-results/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/logos-results/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "logos-strip",
      "type": "registry:block",
      "title": "Logos strip",
      "description": "A quiet line of customer or partner names under a short lead-in and an optional description. Names are set as wordmarks.",
      "categories": [
        "logos"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/logos-strip/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/logos-strip/spec.ts"
        },
        {
          "path": "src/blocks/logos-strip/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/logos-strip/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "navbar-centered",
      "type": "registry:block",
      "title": "Navbar, centred",
      "description": "Brand centred with the links split either side, a secondary link and one call to action. Collapses to a menu in narrow containers.",
      "categories": [
        "navbar"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/navbar-centered/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/navbar-centered/spec.ts"
        },
        {
          "path": "src/blocks/navbar-centered/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/navbar-centered/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "navbar-menu",
      "type": "registry:block",
      "title": "Navbar, menu panels",
      "description": "Brand, up to four link groups that open a panel of described links, and one call to action. Panels become sections of the mobile menu.",
      "categories": [
        "navbar"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/navbar-menu/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/navbar-menu/spec.ts"
        },
        {
          "path": "src/blocks/navbar-menu/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/navbar-menu/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "navbar-simple",
      "type": "registry:block",
      "title": "Navbar, simple",
      "description": "Brand on the left, up to eight links, an optional search trigger, secondary link and theme toggle, and one call to action. An optional Products disclosure holds short descriptions and status labels. Collapses to a menu in narrow containers.",
      "categories": [
        "navbar"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/navbar-simple/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/navbar-simple/spec.ts"
        },
        {
          "path": "src/blocks/navbar-simple/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/navbar-simple/index.tsx"
        },
        {
          "path": "src/blocks/navbar-simple/mega-menu.css",
          "type": "registry:file",
          "target": "components/klarhimmel/blocks/navbar-simple/mega-menu.css"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "navbar-utility",
      "type": "registry:block",
      "title": "Navbar, utility bar",
      "description": "Two rows: a slim tinted utility bar (a note on the left, phone, language or sign-in links on the right) above the main row with brand, up to six links and one call to action. The main row collapses to a menu in narrow containers; the utility bar stays.",
      "categories": [
        "navbar"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/navbar-utility/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/navbar-utility/spec.ts"
        },
        {
          "path": "src/blocks/navbar-utility/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/navbar-utility/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "newsletter-card",
      "type": "registry:block",
      "title": "Newsletter, card",
      "description": "A card with an image beside the headline and an email capture form.",
      "categories": [
        "newsletter"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome"
      ],
      "files": [
        {
          "path": "src/blocks/newsletter-card/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/newsletter-card/spec.ts"
        },
        {
          "path": "src/blocks/newsletter-card/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/newsletter-card/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "newsletter-inline",
      "type": "registry:block",
      "title": "Newsletter, inline",
      "description": "One-line email capture: headline and description beside an email field and a subscribe button.",
      "categories": [
        "newsletter"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-d-chrome"
      ],
      "files": [
        {
          "path": "src/blocks/newsletter-inline/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/newsletter-inline/spec.ts"
        },
        {
          "path": "src/blocks/newsletter-inline/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/newsletter-inline/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "newsletter-split",
      "type": "registry:block",
      "title": "Newsletter, split",
      "description": "Copy and a short benefit list on the left, a raised sign-up panel on the right. For a newsletter that needs a reason to subscribe, not just a field.",
      "categories": [
        "newsletter"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/kit-d-chrome"
      ],
      "files": [
        {
          "path": "src/blocks/newsletter-split/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/newsletter-split/spec.ts"
        },
        {
          "path": "src/blocks/newsletter-split/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/newsletter-split/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "newsletter-topics",
      "type": "registry:block",
      "title": "Newsletter, choose topics",
      "description": "A sign-up where readers tick the topics they want (two to six checkbox cards) before giving an email address. Fewer unsubscribes, better targeting.",
      "categories": [
        "newsletter"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-form"
      ],
      "files": [
        {
          "path": "src/blocks/newsletter-topics/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/newsletter-topics/spec.ts"
        },
        {
          "path": "src/blocks/newsletter-topics/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/newsletter-topics/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "pricing-comparison",
      "type": "registry:block",
      "title": "Pricing, comparison table",
      "description": "A feature-by-plan table for two to four plans. Cells show a check (\"yes\"), a dash (\"no\") or short text.",
      "categories": [
        "pricing"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/pricing-comparison/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-comparison/spec.ts"
        },
        {
          "path": "src/blocks/pricing-comparison/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-comparison/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "pricing-packages",
      "type": "registry:block",
      "title": "Pricing, packages",
      "description": "A grid of three to six packages: name, one line on what you get, how long it takes, a price or the word \"Ask\" (never a made-up number), an optional flag, a button each, a visible \"Examples\" tag and an optional monthly line underneath.",
      "categories": [
        "pricing"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/pricing-packages/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-packages/spec.ts"
        },
        {
          "path": "src/blocks/pricing-packages/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-packages/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "pricing-rows",
      "type": "registry:block",
      "title": "Pricing, plan rows",
      "description": "Plans as full-width rows instead of cards: name and description, up to three highlights as chips, the price, and a button on one line. Easy to scan down, and room for four or more plans. One row can be marked featured.",
      "categories": [
        "pricing"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/pricing-rows/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-rows/spec.ts"
        },
        {
          "path": "src/blocks/pricing-rows/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-rows/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "pricing-single",
      "type": "registry:block",
      "title": "Pricing, single plan",
      "description": "One plan with a large price, a button and a checklist of what is included.",
      "categories": [
        "pricing"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/pricing-single/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-single/spec.ts"
        },
        {
          "path": "src/blocks/pricing-single/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-single/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "pricing-tiers",
      "type": "registry:block",
      "title": "Pricing, three tiers",
      "description": "Up to three plans side by side with price, feature list and a button. One can be featured.",
      "categories": [
        "pricing"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/pricing-tiers/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-tiers/spec.ts"
        },
        {
          "path": "src/blocks/pricing-tiers/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-tiers/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "pricing-toggle",
      "type": "registry:block",
      "title": "Pricing, billing toggle",
      "description": "Up to three plans with a monthly and yearly switch that changes every price. Both prices show while editing.",
      "categories": [
        "pricing"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/pricing-toggle/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-toggle/spec.ts"
        },
        {
          "path": "src/blocks/pricing-toggle/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-toggle/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "pricing-usage",
      "type": "registry:block",
      "title": "Pricing, pay as you use",
      "description": "Usage-based pricing: a rate card (what is metered, per unit, how much is free) beside a worked example bill with line items and a total, so nobody has to do the sum. Use when there is no plan to pick.",
      "categories": [
        "pricing"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/pricing-usage/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-usage/spec.ts"
        },
        {
          "path": "src/blocks/pricing-usage/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/pricing-usage/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "related-content",
      "type": "registry:block",
      "title": "Related content",
      "description": "A shared grid of linked cards for other articles, projects, services, products or events. Images are optional.",
      "categories": [
        "blog"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/kit-d-chrome",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/related-content/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/related-content/spec.ts"
        },
        {
          "path": "src/blocks/related-content/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/related-content/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "report-audit-modules",
      "type": "registry:block",
      "title": "Audit, module scores",
      "description": "A grid of audit modules with explicit scored, unavailable and pending states; findings stay next to their score.",
      "categories": [
        "report"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/score-ring"
      ],
      "files": [
        {
          "path": "src/blocks/report-audit-modules/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-audit-modules/spec.ts"
        },
        {
          "path": "src/blocks/report-audit-modules/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-audit-modules/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "report-audit-overview",
      "type": "registry:block",
      "title": "Audit, overview",
      "description": "A scored audit summary with scope, limitations and source provenance. An unassessed result is never rendered as zero.",
      "categories": [
        "report"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/score-ring",
        "@klarhimmel/source-note"
      ],
      "files": [
        {
          "path": "src/blocks/report-audit-overview/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-audit-overview/spec.ts"
        },
        {
          "path": "src/blocks/report-audit-overview/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-audit-overview/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "report-audit-recommendations",
      "type": "registry:block",
      "title": "Audit, recommendations",
      "description": "Prioritized audit findings with impact, effort, scope, affected pages and a concrete next action.",
      "categories": [
        "report"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/report-audit-recommendations/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-audit-recommendations/spec.ts"
        },
        {
          "path": "src/blocks/report-audit-recommendations/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-audit-recommendations/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "report-callout",
      "type": "registry:block",
      "title": "Report, callout",
      "description": "A boxed aside in a report: a note, a tip, a warning or something important. The kind is a word and an icon, never colour alone.",
      "categories": [
        "report"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-report",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/report-callout/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-callout/spec.ts"
        },
        {
          "path": "src/blocks/report-callout/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-callout/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "report-decisions",
      "type": "registry:block",
      "title": "Report, decisions",
      "description": "Numbered decisions for the reader. Each has a question, the recommended default, the other options and why, so the answer can be \"yes to all except 2\". With an id on a card, the reader can answer on the page (see the report kit).",
      "categories": [
        "report"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/input",
        "@klarhimmel/kit-form",
        "@klarhimmel/kit-report",
        "@klarhimmel/radio-group"
      ],
      "files": [
        {
          "path": "src/blocks/report-decisions/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-decisions/spec.ts"
        },
        {
          "path": "src/blocks/report-decisions/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-decisions/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "report-figure",
      "type": "registry:block",
      "title": "Report, figure",
      "description": "A picture in a report, shown whole (never cropped) with an optional title and a caption, for decisions that need a visual pick. kh-report embeds a local image file as a data address so the page stays one file; remote addresses are refused there.",
      "categories": [
        "report"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-report",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/report-figure/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-figure/spec.ts"
        },
        {
          "path": "src/blocks/report-figure/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-figure/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "report-header",
      "type": "registry:block",
      "title": "Report, header",
      "description": "The top of a report: what kind it is (Status, Decision, Research), the title, a summary and a few facts (date, author, refs).",
      "categories": [
        "report"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/report-header/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-header/spec.ts"
        },
        {
          "path": "src/blocks/report-header/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-header/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "report-prose",
      "type": "registry:block",
      "title": "Report, prose",
      "description": "A headed section of text for everything else in a report: paragraphs, a smaller heading, bulleted and numbered lists, a quote, a code block. **bold**, `code` and [links](https://…) work inside the text.",
      "categories": [
        "report"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-report"
      ],
      "files": [
        {
          "path": "src/blocks/report-prose/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-prose/spec.ts"
        },
        {
          "path": "src/blocks/report-prose/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-prose/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "report-sources",
      "type": "registry:block",
      "title": "Report, sources",
      "description": "Numbered sources: a label, the address (shown in full) and a note on what it was used for. Only http(s) and mail addresses become links.",
      "categories": [
        "report"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-report",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/report-sources/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-sources/spec.ts"
        },
        {
          "path": "src/blocks/report-sources/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-sources/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "report-stats",
      "type": "registry:block",
      "title": "Report, key figures",
      "description": "Two to six figures at a glance: a value, what it counts, an optional note and a direction (up, down, flat).",
      "categories": [
        "report"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-report",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/report-stats/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-stats/spec.ts"
        },
        {
          "path": "src/blocks/report-stats/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-stats/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "report-table",
      "type": "registry:block",
      "title": "Report, table",
      "description": "A table for long cells: the text wraps, and on a narrow screen every row becomes a card with its labels, so nothing scrolls sideways.",
      "categories": [
        "report"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-report"
      ],
      "files": [
        {
          "path": "src/blocks/report-table/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-table/spec.ts"
        },
        {
          "path": "src/blocks/report-table/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-table/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "report-timeline",
      "type": "registry:block",
      "title": "Report, timeline",
      "description": "What happened and when: a dated list with a title and a few lines for each entry.",
      "categories": [
        "report"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-report"
      ],
      "files": [
        {
          "path": "src/blocks/report-timeline/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-timeline/spec.ts"
        },
        {
          "path": "src/blocks/report-timeline/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/report-timeline/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "review-page-note",
      "type": "registry:block",
      "title": "Review, page note",
      "description": "One page of a site review: its name and address, the page as it is now beside what we propose and why, up to five notes marked keep, change, add or remove (said in words, with a shape), and an optional screenshot of the page now with a visible caption. Fields left empty are hidden, never filled with sample text; src/review/map.ts fills them from a Canvas review page (docs/review-blocks.md).",
      "categories": [
        "review"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-invalid",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/review-page-note/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/review-page-note/spec.ts"
        },
        {
          "path": "src/blocks/review-page-note/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/review-page-note/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "review-summary",
      "type": "registry:block",
      "title": "Review, summary",
      "description": "The front of a site review: which site, when, how many pages were read, the verdict in a few plain sentences, up to five findings with a severity said in words and the page each is about, what we would build, and two actions (go ahead, ask a question). Fields left empty are hidden, never filled with sample text; src/review/map.ts fills them from a Canvas review record (docs/review-blocks.md).",
      "categories": [
        "review"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-invalid",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/review-summary/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/review-summary/spec.ts"
        },
        {
          "path": "src/blocks/review-summary/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/review-summary/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "snapshot-module",
      "type": "registry:block",
      "title": "Snapshot, module",
      "description": "One research module of a snapshot as a card: reading (skeleton), ready (headline, summary, suggestions with priority and effort chips and an impact line, then findings, numbered source markers that link to the sources list in the card), unsure (the note only) or failed (a plain sentence). Data is untrusted text; links open only if http(s), in a new tab with noopener nofollow.",
      "categories": [
        "snapshot"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-snapshot",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/snapshot-module/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/snapshot-module/spec.ts"
        },
        {
          "path": "src/blocks/snapshot-module/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/snapshot-module/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "snapshot-profile",
      "type": "registry:block",
      "title": "Snapshot, profile",
      "description": "A compact card shown first in a snapshot: the site's name, what it does in a few sentences, and its trade, region and language when known. Text only (the data is read from a crawl); an empty field is left out.",
      "categories": [
        "snapshot"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-snapshot"
      ],
      "files": [
        {
          "path": "src/blocks/snapshot-profile/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/snapshot-profile/spec.ts"
        },
        {
          "path": "src/blocks/snapshot-profile/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/snapshot-profile/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "snapshot-progress",
      "type": "registry:block",
      "title": "Snapshot, progress",
      "description": "The live narration of a snapshot: the site being read and its status, the newest line pulsing (motion-safe) and older lines ticked, at most eight in view with the rest under a native \"Show all\". One polite live region holds only the newest line, so a re-render never re-announces the list. Queued shows the note; done shows a done line.",
      "categories": [
        "snapshot"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-snapshot",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/snapshot-progress/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/snapshot-progress/spec.ts"
        },
        {
          "path": "src/blocks/snapshot-progress/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/snapshot-progress/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "sources-list",
      "type": "registry:block",
      "title": "Sources list",
      "description": "The numbered sources behind a snapshot: host and path of each address (the path cut), what kind of source it is said in words, and the day it was fetched. Addresses are untrusted: shown as text, opened only if http(s), in a new tab with noopener nofollow. An empty list draws nothing.",
      "categories": [
        "snapshot"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-snapshot"
      ],
      "files": [
        {
          "path": "src/blocks/sources-list/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/sources-list/spec.ts"
        },
        {
          "path": "src/blocks/sources-list/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/sources-list/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "stats-band",
      "type": "registry:block",
      "title": "Stats, accent band",
      "description": "An edge-to-edge band in the accent colour: a short statement on the left and three or four big figures divided by hairlines on the right. Loud and brief; use it once, between two quiet sections.",
      "categories": [
        "stats"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/stats-band/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/stats-band/spec.ts"
        },
        {
          "path": "src/blocks/stats-band/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/stats-band/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "stats-bars",
      "type": "registry:block",
      "title": "Stats, bars",
      "description": "Two to six measures as labelled horizontal bars with the value at the end. The bar length is the number in `value` (0 to 100, any step: 4% draws 4%; the old `fill` prop is ignored); use it for shares and rates, not for raw counts. A value with no number draws no bar.",
      "categories": [
        "stats"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app",
        "@klarhimmel/kit-c-proof"
      ],
      "files": [
        {
          "path": "src/blocks/stats-bars/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/stats-bars/spec.ts"
        },
        {
          "path": "src/blocks/stats-bars/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/stats-bars/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "stats-cards",
      "type": "registry:block",
      "title": "Stats, cards",
      "description": "Two to four stat cards, each with a large value, a label, a line of context and an optional change badge.",
      "categories": [
        "stats"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/badge",
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof"
      ],
      "files": [
        {
          "path": "src/blocks/stats-cards/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/stats-cards/spec.ts"
        },
        {
          "path": "src/blocks/stats-cards/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/stats-cards/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "stats-rings",
      "type": "registry:block",
      "title": "Stats, rings",
      "description": "Two to four percentages as rings with the figure in the middle, a label and a note under each. The fill is the number in `value` (0 to 100); a value with no number draws an empty ring. For rates and shares, not raw counts.",
      "categories": [
        "stats"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-app",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/stats-rings/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/stats-rings/spec.ts"
        },
        {
          "path": "src/blocks/stats-rings/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/stats-rings/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "stats-row",
      "type": "registry:block",
      "title": "Stats row",
      "description": "A short heading and two to four large figures with labels.",
      "categories": [
        "stats"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/stats-row/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/stats-row/spec.ts"
        },
        {
          "path": "src/blocks/stats-row/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/stats-row/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "stats-split",
      "type": "registry:block",
      "title": "Stats, split",
      "description": "Heading and one oversized headline figure on the left, two to four supporting numbers in a hairline grid on the right. Use when one number matters more than the rest.",
      "categories": [
        "stats"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/stats-split/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/stats-split/spec.ts"
        },
        {
          "path": "src/blocks/stats-split/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/stats-split/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "steps-horizontal",
      "type": "registry:block",
      "title": "Steps, horizontal",
      "description": "Three to five steps in a single row, on one continuous line with a marker on each. In narrow containers the same line runs down the left as a vertical list. Short steps only; use the timeline for long ones.",
      "categories": [
        "steps"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/steps-horizontal/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/steps-horizontal/spec.ts"
        },
        {
          "path": "src/blocks/steps-horizontal/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/steps-horizontal/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "steps-media",
      "type": "registry:block",
      "title": "Steps, with image",
      "description": "A picture on one side that stays in view while three to six numbered steps run down the other. Use when one screenshot explains the whole flow.",
      "categories": [
        "steps"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof"
      ],
      "files": [
        {
          "path": "src/blocks/steps-media/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/steps-media/spec.ts"
        },
        {
          "path": "src/blocks/steps-media/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/steps-media/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "steps-numbered",
      "type": "registry:block",
      "title": "Steps, numbered",
      "description": "Numbered steps as cards in a row or as a list. A step may carry a copyable code block or a reference chip.",
      "categories": [
        "steps"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/kit-b-directory",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/steps-numbered/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/steps-numbered/spec.ts"
        },
        {
          "path": "src/blocks/steps-numbered/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/steps-numbered/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "steps-timeline",
      "type": "registry:block",
      "title": "Steps, timeline",
      "description": "A vertical timeline of labelled steps with a connecting line. Process, onboarding or roadmap.",
      "categories": [
        "steps"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/steps-timeline/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/steps-timeline/spec.ts"
        },
        {
          "path": "src/blocks/steps-timeline/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/steps-timeline/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "team-departments",
      "type": "registry:block",
      "title": "Team, by department",
      "description": "No photos: names and roles listed in columns under department headings, for companies too big for portraits. Optional link to open roles.",
      "categories": [
        "team"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/team-departments/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/team-departments/spec.ts"
        },
        {
          "path": "src/blocks/team-departments/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/team-departments/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "team-featured",
      "type": "registry:block",
      "title": "Team, featured",
      "description": "One person given the stage (large photo, longer bio, a link), then a row of round-portrait cards for everyone else. For a founder-led company.",
      "categories": [
        "team"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/team-featured/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/team-featured/spec.ts"
        },
        {
          "path": "src/blocks/team-featured/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/team-featured/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "team-grid",
      "type": "registry:block",
      "title": "Team, grid",
      "description": "A heading and a grid of people with photo, name, role and a short bio.",
      "categories": [
        "team"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/team-grid/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/team-grid/spec.ts"
        },
        {
          "path": "src/blocks/team-grid/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/team-grid/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "team-list",
      "type": "registry:block",
      "title": "Team, list",
      "description": "People as rows: portrait, name and role, a longer bio and one link. Reads like a directory, good for eight people or fewer with something to say. Leave the link label empty to drop the link.",
      "categories": [
        "team"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof",
        "@klarhimmel/text-link",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/team-list/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/team-list/spec.ts"
        },
        {
          "path": "src/blocks/team-list/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/team-list/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "testimonial-quote",
      "type": "registry:block",
      "title": "Testimonial, quote",
      "description": "One large pull quote with a portrait, a name, a role and a company.",
      "categories": [
        "testimonials"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/testimonial-quote/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/testimonial-quote/spec.ts"
        },
        {
          "path": "src/blocks/testimonial-quote/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/testimonial-quote/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "testimonials-carousel",
      "type": "registry:block",
      "title": "Testimonials, carousel",
      "description": "One quote at a time with previous and next buttons. Moves only when pressed; every quote shows while editing.",
      "categories": [
        "testimonials"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/button",
        "@klarhimmel/editing",
        "@klarhimmel/kit-c-proof"
      ],
      "files": [
        {
          "path": "src/blocks/testimonials-carousel/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/testimonials-carousel/spec.ts"
        },
        {
          "path": "src/blocks/testimonials-carousel/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/testimonials-carousel/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "testimonials-grid",
      "type": "registry:block",
      "title": "Testimonials, grid",
      "description": "A heading and a grid of quotes, each with a name and role.",
      "categories": [
        "testimonials"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/testimonials-grid/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/testimonials-grid/spec.ts"
        },
        {
          "path": "src/blocks/testimonials-grid/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/testimonials-grid/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "testimonials-rating",
      "type": "registry:block",
      "title": "Testimonials, rating",
      "description": "A review-site look: a big average score with stars and the review count on the left, two to four star-rated reviews with a headline, text, name and date on the right. Stars are decorative; the rating is read out as \"5 out of 5 stars\".",
      "categories": [
        "testimonials"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/testimonials-rating/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/testimonials-rating/spec.ts"
        },
        {
          "path": "src/blocks/testimonials-rating/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/testimonials-rating/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "testimonials-split",
      "type": "registry:block",
      "title": "Testimonials, featured and more",
      "description": "One long quote on a tinted panel with a portrait, beside a stack of two or three short quotes. A lead story with supporting voices; unlike the wall, the hierarchy is fixed.",
      "categories": [
        "testimonials"
      ],
      "dependencies": [
        "lucide-react@^1.49.0",
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing"
      ],
      "files": [
        {
          "path": "src/blocks/testimonials-split/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/testimonials-split/spec.ts"
        },
        {
          "path": "src/blocks/testimonials-split/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/testimonials-split/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "testimonials-wall",
      "type": "registry:block",
      "title": "Testimonials, wall",
      "description": "An editorial wall of short quotes in balanced columns: plain quotes under a hairline rule, one or two featured on a tinted card. No card boxes, unlike the grid. Use when you have many small voices rather than one big story.",
      "categories": [
        "testimonials"
      ],
      "dependencies": [
        "zod@^4.6.5"
      ],
      "registryDependencies": [
        "@klarhimmel/block-kit",
        "@klarhimmel/editing",
        "@klarhimmel/utils"
      ],
      "files": [
        {
          "path": "src/blocks/testimonials-wall/spec.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/testimonials-wall/spec.ts"
        },
        {
          "path": "src/blocks/testimonials-wall/index.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/blocks/testimonials-wall/index.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "skill-design",
      "type": "registry:file",
      "title": "Design system skill",
      "description": "Teaches your coding agent to build with Klarhimmel UI: blocks, components, tokens and rules. Plain Markdown.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "skills/klarhimmel-design/SKILL.md",
          "type": "registry:file",
          "target": "~/.claude/skills/klarhimmel-design/SKILL.md"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-saas",
      "type": "registry:block",
      "title": "SaaS template",
      "description": "A landing page for a software product: what it does, who uses it, how it works, what it costs and the questions people ask before they sign up.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/navbar-simple",
        "@klarhimmel/hero-split",
        "@klarhimmel/logos-strip",
        "@klarhimmel/features-grid",
        "@klarhimmel/stats-row",
        "@klarhimmel/testimonials-grid",
        "@klarhimmel/pricing-tiers",
        "@klarhimmel/faq-list",
        "@klarhimmel/cta-band",
        "@klarhimmel/footer-columns",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/saas.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/saas.tsx"
        },
        {
          "path": "art/saas/hero.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/saas/hero.svg"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-consultancy",
      "type": "registry:block",
      "title": "Consultancy template",
      "description": "A landing page for a consultancy or a one-person studio: what you do, one case study, how a project runs and a way to get in touch.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/navbar-centered",
        "@klarhimmel/hero-minimal",
        "@klarhimmel/features-list",
        "@klarhimmel/case-study-before-after",
        "@klarhimmel/steps-timeline",
        "@klarhimmel/testimonial-quote",
        "@klarhimmel/contact-form",
        "@klarhimmel/footer-simple",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/consultancy.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/consultancy.tsx"
        },
        {
          "path": "art/consultancy/before-after.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/consultancy/before-after.svg"
        },
        {
          "path": "art/consultancy/ingrid-solberg.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/consultancy/ingrid-solberg.svg"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-hotel",
      "type": "registry:block",
      "title": "Hotel template",
      "description": "One page for a small hotel or guesthouse (Exempelhotellet): offer and navigation, rooms, gallery, guest reviews, one rate, questions, the address and a newsletter.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/banner-promo",
        "@klarhimmel/navbar-centered",
        "@klarhimmel/hero-split",
        "@klarhimmel/features-bento",
        "@klarhimmel/gallery-featured",
        "@klarhimmel/testimonials-wall",
        "@klarhimmel/pricing-single",
        "@klarhimmel/faq-grouped",
        "@klarhimmel/contact-offices",
        "@klarhimmel/footer-columns",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/hotel.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/hotel.tsx"
        },
        {
          "path": "art/hotel/hero.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/hotel/hero.svg"
        },
        {
          "path": "art/hotel/room-garden.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/hotel/room-garden.svg"
        },
        {
          "path": "art/hotel/room-corner.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/hotel/room-corner.svg"
        },
        {
          "path": "art/hotel/terrace.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/hotel/terrace.svg"
        },
        {
          "path": "art/hotel/breakfast.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/hotel/breakfast.svg"
        },
        {
          "path": "art/hotel/nook.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/hotel/nook.svg"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-agency",
      "type": "registry:block",
      "title": "Agency template",
      "description": "A portfolio page for a design studio (Halvmåne): a one-line stance, a wall of work, one project told as a story, process, clients, people and a single email as the call to action.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/navbar-menu",
        "@klarhimmel/hero-minimal",
        "@klarhimmel/gallery-masonry",
        "@klarhimmel/case-study-story",
        "@klarhimmel/steps-horizontal",
        "@klarhimmel/logos-featured",
        "@klarhimmel/team-featured",
        "@klarhimmel/contact-minimal",
        "@klarhimmel/footer-centered",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/agency.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/agency.tsx"
        },
        {
          "path": "art/agency/work-poster.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/agency/work-poster.svg"
        },
        {
          "path": "art/agency/work-website.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/agency/work-website.svg"
        },
        {
          "path": "art/agency/work-packaging.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/agency/work-packaging.svg"
        },
        {
          "path": "art/agency/work-book.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/agency/work-book.svg"
        },
        {
          "path": "art/agency/work-sign.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/agency/work-sign.svg"
        },
        {
          "path": "art/agency/work-app.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/agency/work-app.svg"
        },
        {
          "path": "art/agency/bakery.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/agency/bakery.svg"
        },
        {
          "path": "art/agency/maja-lund.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/agency/maja-lund.svg"
        },
        {
          "path": "art/agency/tobias-ryden.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/agency/tobias-ryden.svg"
        },
        {
          "path": "art/agency/ines-carvalho.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/agency/ines-carvalho.svg"
        },
        {
          "path": "art/agency/jonas-vik.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/agency/jonas-vik.svg"
        },
        {
          "path": "art/agency/sofie-berg.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/agency/sofie-berg.svg"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-local-service",
      "type": "registry:block",
      "title": "Local service template",
      "description": "A page for a local trade (Lindgrens Rör, a plumber): phone and response time first, services, how a job runs, neighbours' reviews, price and warranty answers, and a booking panel with time slots. Sturdy navy and orange.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/navbar-utility",
        "@klarhimmel/hero-centered",
        "@klarhimmel/features-grid",
        "@klarhimmel/steps-horizontal",
        "@klarhimmel/testimonials-carousel",
        "@klarhimmel/faq-columns",
        "@klarhimmel/contact-booking",
        "@klarhimmel/footer-simple",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/local-service.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/local-service.tsx"
        },
        {
          "path": "art/local-service/hero.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/local-service/hero.svg"
        },
        {
          "path": "art/local-service/eva-nordin.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/local-service/eva-nordin.svg"
        },
        {
          "path": "art/local-service/per-alm.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/local-service/per-alm.svg"
        },
        {
          "path": "art/local-service/hanna-berg.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/local-service/hanna-berg.svg"
        },
        {
          "path": "art/local-service/olle-sjo.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/local-service/olle-sjo.svg"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-event",
      "type": "registry:block",
      "title": "Event template",
      "description": "A page for a one-day conference (Småstad Summit 2027): date and tickets up front, last year in numbers, speakers, the programme, three ticket types, the venue and the practical questions. Bold violet, rounded.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/banner-announcement",
        "@klarhimmel/navbar-simple",
        "@klarhimmel/hero-frame",
        "@klarhimmel/stats-row",
        "@klarhimmel/team-list",
        "@klarhimmel/steps-timeline",
        "@klarhimmel/pricing-tiers",
        "@klarhimmel/contact-offices",
        "@klarhimmel/faq-list",
        "@klarhimmel/cta-band",
        "@klarhimmel/footer-columns",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/event.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/event.tsx"
        },
        {
          "path": "art/event/stage.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/event/stage.svg"
        },
        {
          "path": "art/event/elin-sandberg.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/event/elin-sandberg.svg"
        },
        {
          "path": "art/event/lena-stromberg.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/event/lena-stromberg.svg"
        },
        {
          "path": "art/event/ines-carvalho.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/event/ines-carvalho.svg"
        },
        {
          "path": "art/event/greta-holm.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/event/greta-holm.svg"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-app-launch",
      "type": "registry:block",
      "title": "App launch template",
      "description": "A pre-launch page for an app (Lumo, a reading tracker): a hero that shows the product, features, a walkthrough with a phone screen, one beta quote and the waitlist. Crisp mint green on white.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/navbar-simple",
        "@klarhimmel/hero-prompt",
        "@klarhimmel/features-bento",
        "@klarhimmel/steps-media",
        "@klarhimmel/testimonial-quote",
        "@klarhimmel/newsletter-card",
        "@klarhimmel/faq-list",
        "@klarhimmel/footer-wordmark",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/app-launch.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/app-launch.tsx"
        },
        {
          "path": "art/app-launch/highlight.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/app-launch/highlight.svg"
        },
        {
          "path": "art/app-launch/ask.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/app-launch/ask.svg"
        },
        {
          "path": "art/app-launch/steps.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/app-launch/steps.svg"
        },
        {
          "path": "art/app-launch/karin-aberg.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/app-launch/karin-aberg.svg"
        },
        {
          "path": "art/app-launch/books.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/app-launch/books.svg"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-restaurant",
      "type": "registry:block",
      "title": "Restaurant template",
      "description": "One page for a restaurant or café (Kolonien Kök): tonight's offer and hours up front, a short menu as a table, the room, a booking panel with times, and the address with opening hours.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/banner-announcement",
        "@klarhimmel/navbar-utility",
        "@klarhimmel/hero-split",
        "@klarhimmel/features-list",
        "@klarhimmel/docs-table",
        "@klarhimmel/gallery-featured",
        "@klarhimmel/testimonial-quote",
        "@klarhimmel/contact-booking",
        "@klarhimmel/contact-offices",
        "@klarhimmel/newsletter-inline",
        "@klarhimmel/footer-simple",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/restaurant.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/restaurant.tsx"
        },
        {
          "path": "art/restaurant/plate.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/restaurant/plate.svg"
        },
        {
          "path": "art/restaurant/interior.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/restaurant/interior.svg"
        },
        {
          "path": "art/restaurant/glasses.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/restaurant/glasses.svg"
        },
        {
          "path": "art/restaurant/counter.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/restaurant/counter.svg"
        },
        {
          "path": "art/restaurant/dish-two.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/restaurant/dish-two.svg"
        },
        {
          "path": "art/restaurant/ines-akerlund.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/restaurant/ines-akerlund.svg"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-saas-pricing",
      "type": "registry:block",
      "title": "SaaS pricing template",
      "description": "A pricing page for a software product (Tidewater, invoicing for freelancers): the plans with a monthly and yearly switch up front, a feature comparison for the careful buyer, who uses it, the questions that decide a purchase, and one closing action. Indigo, rounded, crisp.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/navbar-simple",
        "@klarhimmel/hero-centered",
        "@klarhimmel/logos-strip",
        "@klarhimmel/pricing-toggle",
        "@klarhimmel/pricing-comparison",
        "@klarhimmel/faq-list",
        "@klarhimmel/cta-band",
        "@klarhimmel/footer-columns",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/saas-pricing.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/saas-pricing.tsx"
        },
        {
          "path": "art/saas-pricing/hero.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/saas-pricing/hero.svg"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-developer-docs",
      "type": "registry:block",
      "title": "Developer docs template",
      "description": "A documentation landing page for a developer product (Lodestar, an API for maps): the install command above the fold, a real terminal session, a three-step quickstart with copyable code, the guides, the latest releases and who builds on it. Near-black and green, monospaced, dense.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/navbar-simple",
        "@klarhimmel/hero-code",
        "@klarhimmel/features-terminal",
        "@klarhimmel/steps-numbered",
        "@klarhimmel/features-grid",
        "@klarhimmel/about-timeline",
        "@klarhimmel/logos-strip",
        "@klarhimmel/cta-band",
        "@klarhimmel/footer-columns",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/developer-docs.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/developer-docs.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-nonprofit",
      "type": "registry:block",
      "title": "Nonprofit template",
      "description": "A page for an association or charity (Havsbandet, a coastal clean-up group): the cause and one donate button first, the mission, impact in numbers, one clean-up told as a story, where donations go, upcoming events, the people and a gift card. Deep teal and sand, a serif face.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/banner-announcement",
        "@klarhimmel/navbar-menu",
        "@klarhimmel/hero-split",
        "@klarhimmel/content-columns",
        "@klarhimmel/stats-split",
        "@klarhimmel/case-study-story",
        "@klarhimmel/stats-bars",
        "@klarhimmel/blog-list",
        "@klarhimmel/team-departments",
        "@klarhimmel/newsletter-split",
        "@klarhimmel/cta-card",
        "@klarhimmel/footer-columns",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/nonprofit.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/nonprofit.tsx"
        },
        {
          "path": "art/nonprofit/beach.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/nonprofit/beach.svg"
        },
        {
          "path": "art/nonprofit/cleanup.svg",
          "type": "registry:file",
          "target": "~/public/klarhimmel/art/nonprofit/cleanup.svg"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-app-dashboard",
      "type": "registry:block",
      "title": "App dashboard template",
      "description": "A signed-in app screen for a hotel back office (Exempelhotellet): a sidebar and top bar around the figures that matter today, a revenue chart and a sortable bookings table with filters and paging. Built only from App UI blocks in a two-column shell. Graphite and blue, compact.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/app-shell-sidebar",
        "@klarhimmel/app-shell-topbar",
        "@klarhimmel/app-dashboard-stats",
        "@klarhimmel/app-dashboard-chart",
        "@klarhimmel/app-data-filters",
        "@klarhimmel/app-data-table",
        "@klarhimmel/app-data-pagination",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/app-dashboard.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/app-dashboard.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-b2b-services",
      "type": "registry:block",
      "title": "B2B services firm template",
      "description": "A multi-page site for a 15 to 60 person B2B services firm (advisory, IT, accounting): home, services, one service in detail, cases, about with team, careers, and a contact page with booking and a form. Neutral copy with variables, built only from blocks Canvas can edit.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/navbar-menu",
        "@klarhimmel/hero-split",
        "@klarhimmel/logos-strip",
        "@klarhimmel/features-grid",
        "@klarhimmel/stats-row",
        "@klarhimmel/case-study-card",
        "@klarhimmel/testimonial-quote",
        "@klarhimmel/steps-horizontal",
        "@klarhimmel/cta-band",
        "@klarhimmel/footer-columns",
        "@klarhimmel/hero-minimal",
        "@klarhimmel/features-split",
        "@klarhimmel/faq-list",
        "@klarhimmel/cta-card",
        "@klarhimmel/features-list",
        "@klarhimmel/steps-timeline",
        "@klarhimmel/case-study-metrics",
        "@klarhimmel/logos-results",
        "@klarhimmel/testimonials-grid",
        "@klarhimmel/content-columns",
        "@klarhimmel/team-grid",
        "@klarhimmel/about-timeline",
        "@klarhimmel/blog-list",
        "@klarhimmel/contact-booking",
        "@klarhimmel/contact-form",
        "@klarhimmel/contact-offices",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/b2b-services/home.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/b2b-services/home.tsx"
        },
        {
          "path": "templates/b2b-services/services.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/b2b-services/services.tsx"
        },
        {
          "path": "templates/b2b-services/service.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/b2b-services/service.tsx"
        },
        {
          "path": "templates/b2b-services/cases.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/b2b-services/cases.tsx"
        },
        {
          "path": "templates/b2b-services/about.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/b2b-services/about.tsx"
        },
        {
          "path": "templates/b2b-services/careers.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/b2b-services/careers.tsx"
        },
        {
          "path": "templates/b2b-services/contact.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/b2b-services/contact.tsx"
        },
        {
          "path": "templates/b2b-services/style.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/b2b-services/style.ts"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-manufacturing",
      "type": "registry:block",
      "title": "Product and manufacturing company template",
      "description": "A multi-page site for a 15 to 60 person product or manufacturing company: home, products, one product in detail with specifications, references, about with history and people, careers, and a quote request. Neutral copy with variables, built only from blocks Canvas can edit.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/navbar-utility",
        "@klarhimmel/hero-split",
        "@klarhimmel/logos-strip",
        "@klarhimmel/features-grid",
        "@klarhimmel/features-split",
        "@klarhimmel/stats-row",
        "@klarhimmel/logos-results",
        "@klarhimmel/testimonial-quote",
        "@klarhimmel/cta-split",
        "@klarhimmel/footer-columns",
        "@klarhimmel/hero-minimal",
        "@klarhimmel/pricing-comparison",
        "@klarhimmel/faq-list",
        "@klarhimmel/cta-band",
        "@klarhimmel/features-list",
        "@klarhimmel/docs-table",
        "@klarhimmel/gallery-strip",
        "@klarhimmel/cta-card",
        "@klarhimmel/case-study-metrics",
        "@klarhimmel/case-study-card",
        "@klarhimmel/logos-grouped",
        "@klarhimmel/testimonials-split",
        "@klarhimmel/content-columns",
        "@klarhimmel/stats-split",
        "@klarhimmel/about-timeline",
        "@klarhimmel/team-departments",
        "@klarhimmel/blog-list",
        "@klarhimmel/steps-timeline",
        "@klarhimmel/contact-form",
        "@klarhimmel/contact-channels",
        "@klarhimmel/contact-map",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/manufacturing/home.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/manufacturing/home.tsx"
        },
        {
          "path": "templates/manufacturing/products.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/manufacturing/products.tsx"
        },
        {
          "path": "templates/manufacturing/product.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/manufacturing/product.tsx"
        },
        {
          "path": "templates/manufacturing/references.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/manufacturing/references.tsx"
        },
        {
          "path": "templates/manufacturing/about.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/manufacturing/about.tsx"
        },
        {
          "path": "templates/manufacturing/careers.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/manufacturing/careers.tsx"
        },
        {
          "path": "templates/manufacturing/contact.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/manufacturing/contact.tsx"
        },
        {
          "path": "templates/manufacturing/style.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/manufacturing/style.ts"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-multi-location",
      "type": "registry:block",
      "title": "Multi-location local service template",
      "description": "A multi-page site for a local service business with two to five locations (clinic, salon, workshop, dental or vet practice): home, services with prices, one service in detail, locations, one location in detail, reviews, about, careers, and a booking and contact page. Neutral copy with variables, built only from blocks Canvas can edit.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/navbar-simple",
        "@klarhimmel/hero-centered",
        "@klarhimmel/features-grid",
        "@klarhimmel/contact-offices",
        "@klarhimmel/steps-horizontal",
        "@klarhimmel/testimonials-rating",
        "@klarhimmel/faq-list",
        "@klarhimmel/cta-band",
        "@klarhimmel/footer-columns",
        "@klarhimmel/hero-minimal",
        "@klarhimmel/pricing-rows",
        "@klarhimmel/features-list",
        "@klarhimmel/cta-card",
        "@klarhimmel/hero-split",
        "@klarhimmel/steps-timeline",
        "@klarhimmel/pricing-single",
        "@klarhimmel/contact-map",
        "@klarhimmel/team-grid",
        "@klarhimmel/testimonials-grid",
        "@klarhimmel/contact-booking",
        "@klarhimmel/testimonials-wall",
        "@klarhimmel/content-columns",
        "@klarhimmel/stats-row",
        "@klarhimmel/team-departments",
        "@klarhimmel/blog-list",
        "@klarhimmel/contact-channels",
        "@klarhimmel/contact-form",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/multi-location/home.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/multi-location/home.tsx"
        },
        {
          "path": "templates/multi-location/services.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/multi-location/services.tsx"
        },
        {
          "path": "templates/multi-location/service.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/multi-location/service.tsx"
        },
        {
          "path": "templates/multi-location/locations.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/multi-location/locations.tsx"
        },
        {
          "path": "templates/multi-location/location.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/multi-location/location.tsx"
        },
        {
          "path": "templates/multi-location/reviews.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/multi-location/reviews.tsx"
        },
        {
          "path": "templates/multi-location/about.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/multi-location/about.tsx"
        },
        {
          "path": "templates/multi-location/careers.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/multi-location/careers.tsx"
        },
        {
          "path": "templates/multi-location/contact.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/multi-location/contact.tsx"
        },
        {
          "path": "templates/multi-location/style.ts",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/multi-location/style.ts"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-audit-report",
      "type": "registry:block",
      "title": "Website audit report template",
      "description": "A technical audit report for Cedar Studio: overall readiness, scope and provenance, module scores that preserve unavailable checks, and a short actionable recommendation list.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/report-audit-overview",
        "@klarhimmel/report-audit-modules",
        "@klarhimmel/report-audit-recommendations",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/audit-report.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/audit-report.tsx"
        }
      ]
    },
    {
      "$schema": "https://ui.shadcn.com/schema/registry-item.json",
      "name": "template-access-operations",
      "type": "registry:block",
      "title": "Reception and access template",
      "description": "A reception workspace for fictional Cedar Lodge: daily arrival and access counts, a sortable arrivals table, and selected access details with validity, permissions and local history.",
      "dependencies": [],
      "registryDependencies": [
        "@klarhimmel/app-shell-sidebar",
        "@klarhimmel/app-operations-summary",
        "@klarhimmel/app-data-table",
        "@klarhimmel/app-access-detail",
        "@klarhimmel/theme"
      ],
      "files": [
        {
          "path": "templates/access-operations.tsx",
          "type": "registry:component",
          "target": "components/klarhimmel/templates/access-operations.tsx"
        }
      ]
    }
  ]
}
