{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "haze-ui",
  "homepage": "https://github.com/wmzy/haze-ui",
  "items": [
    {
      "name": "accordion",
      "type": "registry:ui",
      "title": "Accordion / AccordionItem",
      "description": "Collapsible section list with titled `AccordionItem` sections.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Collapsible section list with titled `AccordionItem` sections.\n\nExports: `Accordion`, `AccordionItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/accordion\n```\n\nThe wrapper lands at `components/ui/haze/accordion.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/accordion.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/accordion.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Accordion, AccordionItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/accordion.css';\n\nexport { Accordion, AccordionItem };\nexport type { AccordionProps, AccordionItemProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "activity-rail",
      "type": "registry:ui",
      "title": "ActivityRail / ActivityRailItem",
      "description": "VSCode-style vertical icon rail (`nav`): 44px items with icon/label/badge/active indicator, tooltip labels and `slot=\"end\"` bottom pinning.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "VSCode-style vertical icon rail (`nav`): 44px items with icon/label/badge/active indicator, tooltip labels and `slot=\"end\"` bottom pinning.\n\nExports: `ActivityRail`, `ActivityRailItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/activity-rail\n```\n\nThe wrapper lands at `components/ui/haze/activity-rail.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/activity-rail.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/activity-rail.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ActivityRail, ActivityRailItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/activity-rail.css';\nimport 'haze-ui/css/badge.css';\nimport 'haze-ui/css/tooltip.css';\n\nexport { ActivityRail, ActivityRailItem };\nexport type { ActivityRailProps, ActivityRailItemProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "affix",
      "type": "registry:ui",
      "title": "Affix",
      "description": "Fixes children to a viewport edge once scrolled past an offset.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Fixes children to a viewport edge once scrolled past an offset.\n\nExports: `Affix`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/affix\n```\n\nThe wrapper lands at `components/ui/haze/affix.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/affix.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/affix.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Affix } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/affix.css';\n\nexport { Affix };\nexport type { AffixProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "alert",
      "type": "registry:ui",
      "title": "Alert",
      "description": "Inline status message box.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Inline status message box.\n\nExports: `Alert`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/alert\n```\n\nThe wrapper lands at `components/ui/haze/alert.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/alert.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "feedback"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/alert.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Alert } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/alert.css';\n\nexport { Alert };\nexport type { AlertProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "anchor",
      "type": "registry:ui",
      "title": "Anchor",
      "description": "Sticky scroll-spy navigation: an `items` list highlighting the active section, click scrolls with an offset.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Sticky scroll-spy navigation: an `items` list highlighting the active section, click scrolls with an offset.\n\nExports: `Anchor`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/anchor\n```\n\nThe wrapper lands at `components/ui/haze/anchor.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/anchor.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/anchor.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Anchor } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/anchor.css';\n\nexport { Anchor };\nexport type { AnchorProps, AnchorItem } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "app-shell",
      "type": "registry:ui",
      "title": "AppShell",
      "description": "Application frame with sticky header, collapsible sidebar, content and footer slots; the sidebar becomes an overlay below 768px.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Application frame with sticky header, collapsible sidebar, content and footer slots; the sidebar becomes an overlay below 768px.\n\nExports: `AppShell`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/app-shell\n```\n\nThe wrapper lands at `components/ui/haze/app-shell.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/app-shell.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/app-shell.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { AppShell } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/app-shell.css';\n\nexport { AppShell };\nexport type { AppShellProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "approval-card",
      "type": "registry:ui",
      "title": "ApprovalCard",
      "description": "Approval gate with approve / deny actions for agent-initiated operations.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Approval gate with approve / deny actions for agent-initiated operations.\n\nExports: `ApprovalCard`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/approval-card\n```\n\nThe wrapper lands at `components/ui/haze/approval-card.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/approval-card.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/approval-card.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ApprovalCard } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/approval-card.css';\n\nexport { ApprovalCard };\nexport type { ApprovalCardProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "aspect-ratio",
      "type": "registry:ui",
      "title": "AspectRatio",
      "description": "Boxes children to a fixed width/height ratio.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Boxes children to a fixed width/height ratio.\n\nExports: `AspectRatio`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/aspect-ratio\n```\n\nThe wrapper lands at `components/ui/haze/aspect-ratio.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/aspect-ratio.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/aspect-ratio.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { AspectRatio } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/aspect-ratio.css';\n\nexport { AspectRatio };\nexport type { AspectRatioProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "async-section",
      "type": "registry:ui",
      "title": "AsyncSection",
      "description": "Declarative loading / error / content states for async data.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Declarative loading / error / content states for async data.\n\nExports: `AsyncSection`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/async-section\n```\n\nThe wrapper lands at `components/ui/haze/async-section.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/async-section.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "feedback"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/async-section.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { AsyncSection } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/async-section.css';\n\nexport { AsyncSection };\nexport type { AsyncSectionProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "avatar",
      "type": "registry:ui",
      "title": "Avatar",
      "description": "User avatar with image, size variants and fallback content when the image is missing.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "User avatar with image, size variants and fallback content when the image is missing.\n\nExports: `Avatar`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/avatar\n```\n\nThe wrapper lands at `components/ui/haze/avatar.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/avatar.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "general"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/avatar.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Avatar } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/avatar.css';\n\nexport { Avatar };\nexport type { AvatarProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "avatar-group",
      "type": "registry:ui",
      "title": "AvatarGroup",
      "description": "Stacks avatars in overlapping rows with a `+N` overflow chip (`max`/`total`).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Stacks avatars in overlapping rows with a `+N` overflow chip (`max`/`total`).\n\nExports: `AvatarGroup`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/avatar-group\n```\n\nThe wrapper lands at `components/ui/haze/avatar-group.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/avatar-group.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "general"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/avatar-group.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { AvatarGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/avatar-group.css';\n\nexport { AvatarGroup };\nexport type { AvatarGroupProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "back-to-top",
      "type": "registry:ui",
      "title": "BackToTop",
      "description": "Floating scroll-to-top button appearing past a scroll threshold.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Floating scroll-to-top button appearing past a scroll threshold.\n\nExports: `BackToTop`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/back-to-top\n```\n\nThe wrapper lands at `components/ui/haze/back-to-top.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/back-to-top.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/back-to-top.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { BackToTop } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/back-to-top.css';\n\nexport { BackToTop };\nexport type { BackToTopProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "badge",
      "type": "registry:ui",
      "title": "Badge / badgeVariants / badgeSizes",
      "description": "Small inline status label with variant and color options.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Small inline status label with variant and color options.\n\nExports: `Badge`, `badgeVariants`, `badgeSizes`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/badge\n```\n\nThe wrapper lands at `components/ui/haze/badge.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/badge.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "general"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/badge.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Badge, badgeVariants, badgeSizes } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/badge.css';\n\nexport { Badge, badgeVariants, badgeSizes };\nexport type { BadgeProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "banner",
      "type": "registry:ui",
      "title": "Banner",
      "description": "Dismissible top banner with info/success/warning/danger variants.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Dismissible top banner with info/success/warning/danger variants.\n\nExports: `Banner`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/banner\n```\n\nThe wrapper lands at `components/ui/haze/banner.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/banner.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "feedback"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/banner.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Banner } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/banner.css';\n\nexport { Banner };\nexport type { BannerProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "base",
      "type": "registry:base",
      "title": "Haze UI base (tokens + every component wrapper)",
      "description": "One-command setup of the whole haze-ui design system: theme tokens plus a thin wrapper for every styled component, pulled in through registryDependencies.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "One command installs the entire haze-ui design system: the theme tokens\n(this item ships the token-activation wrapper) plus a thin re-export\nwrapper for every styled component — 132 registry items pulled\nin through `registryDependencies`, resolved recursively by the CLI.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/base\n```\n\nEach component wrapper lands at `components/ui/haze/<component>.tsx` and\nre-exports its component from the `haze-ui` npm package (installed\nautomatically), importing its stylesheet — no other setup is needed.\n\n## Theming\n\nThis wrapper re-exports the 'lightTheme' (or 'darkTheme'), 'spacing' and\n'typography' classes from 'haze-ui' and imports 'haze-ui/css/tokens.css'.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "theme",
        "setup"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "registryDependencies": [
        "wmzy/haze-ui/accordion",
        "wmzy/haze-ui/activity-rail",
        "wmzy/haze-ui/affix",
        "wmzy/haze-ui/alert",
        "wmzy/haze-ui/anchor",
        "wmzy/haze-ui/app-shell",
        "wmzy/haze-ui/approval-card",
        "wmzy/haze-ui/aspect-ratio",
        "wmzy/haze-ui/async-section",
        "wmzy/haze-ui/avatar",
        "wmzy/haze-ui/avatar-group",
        "wmzy/haze-ui/back-to-top",
        "wmzy/haze-ui/badge",
        "wmzy/haze-ui/banner",
        "wmzy/haze-ui/bottom-sheet",
        "wmzy/haze-ui/breadcrumb",
        "wmzy/haze-ui/button",
        "wmzy/haze-ui/calendar",
        "wmzy/haze-ui/card",
        "wmzy/haze-ui/carousel",
        "wmzy/haze-ui/cascader",
        "wmzy/haze-ui/chart",
        "wmzy/haze-ui/chat-container",
        "wmzy/haze-ui/chat-input",
        "wmzy/haze-ui/chat-message",
        "wmzy/haze-ui/checkbox",
        "wmzy/haze-ui/chip",
        "wmzy/haze-ui/code-block",
        "wmzy/haze-ui/collapsible",
        "wmzy/haze-ui/color-picker",
        "wmzy/haze-ui/combobox",
        "wmzy/haze-ui/command",
        "wmzy/haze-ui/confirm-dialog",
        "wmzy/haze-ui/container",
        "wmzy/haze-ui/context-menu",
        "wmzy/haze-ui/conversation-list",
        "wmzy/haze-ui/count-up",
        "wmzy/haze-ui/data-table",
        "wmzy/haze-ui/date-range-picker",
        "wmzy/haze-ui/datepicker",
        "wmzy/haze-ui/descriptions",
        "wmzy/haze-ui/dialog",
        "wmzy/haze-ui/diff-viewer",
        "wmzy/haze-ui/disclosure",
        "wmzy/haze-ui/divider",
        "wmzy/haze-ui/drawer",
        "wmzy/haze-ui/dropdown-menu",
        "wmzy/haze-ui/ellipsis",
        "wmzy/haze-ui/empty",
        "wmzy/haze-ui/fieldset",
        "wmzy/haze-ui/file-input",
        "wmzy/haze-ui/file-preview",
        "wmzy/haze-ui/flex",
        "wmzy/haze-ui/float-button",
        "wmzy/haze-ui/form",
        "wmzy/haze-ui/grid",
        "wmzy/haze-ui/hover-card",
        "wmzy/haze-ui/icon",
        "wmzy/haze-ui/image",
        "wmzy/haze-ui/indicator",
        "wmzy/haze-ui/inline-completion",
        "wmzy/haze-ui/inline-edit",
        "wmzy/haze-ui/input",
        "wmzy/haze-ui/json-view",
        "wmzy/haze-ui/kbd",
        "wmzy/haze-ui/list",
        "wmzy/haze-ui/loading-overlay",
        "wmzy/haze-ui/log-viewer",
        "wmzy/haze-ui/mark",
        "wmzy/haze-ui/markdown-renderer",
        "wmzy/haze-ui/masonry",
        "wmzy/haze-ui/mentions",
        "wmzy/haze-ui/menu",
        "wmzy/haze-ui/model-picker",
        "wmzy/haze-ui/navigation-bar",
        "wmzy/haze-ui/number-input",
        "wmzy/haze-ui/otp-input",
        "wmzy/haze-ui/pagination",
        "wmzy/haze-ui/password-input",
        "wmzy/haze-ui/popover",
        "wmzy/haze-ui/progress",
        "wmzy/haze-ui/prompt-input",
        "wmzy/haze-ui/qr-code",
        "wmzy/haze-ui/radio",
        "wmzy/haze-ui/rating",
        "wmzy/haze-ui/resizable",
        "wmzy/haze-ui/result",
        "wmzy/haze-ui/scroll-area",
        "wmzy/haze-ui/segmented",
        "wmzy/haze-ui/select",
        "wmzy/haze-ui/sidebar",
        "wmzy/haze-ui/signature",
        "wmzy/haze-ui/skeleton",
        "wmzy/haze-ui/slider",
        "wmzy/haze-ui/sources",
        "wmzy/haze-ui/sparkline",
        "wmzy/haze-ui/spinner",
        "wmzy/haze-ui/spoiler",
        "wmzy/haze-ui/stat",
        "wmzy/haze-ui/status-bar",
        "wmzy/haze-ui/step-timeline",
        "wmzy/haze-ui/stepper",
        "wmzy/haze-ui/streaming-text",
        "wmzy/haze-ui/swipe-action",
        "wmzy/haze-ui/switch",
        "wmzy/haze-ui/tab-bar",
        "wmzy/haze-ui/table",
        "wmzy/haze-ui/tabs",
        "wmzy/haze-ui/tag",
        "wmzy/haze-ui/tag-group",
        "wmzy/haze-ui/tag-input",
        "wmzy/haze-ui/textarea",
        "wmzy/haze-ui/thinking-indicator",
        "wmzy/haze-ui/time-picker",
        "wmzy/haze-ui/timeline",
        "wmzy/haze-ui/toast",
        "wmzy/haze-ui/toggle",
        "wmzy/haze-ui/token-counter",
        "wmzy/haze-ui/tokens",
        "wmzy/haze-ui/tool-call-card",
        "wmzy/haze-ui/toolbar",
        "wmzy/haze-ui/tooltip",
        "wmzy/haze-ui/tour",
        "wmzy/haze-ui/transfer",
        "wmzy/haze-ui/tree",
        "wmzy/haze-ui/tree-select",
        "wmzy/haze-ui/typography",
        "wmzy/haze-ui/upload",
        "wmzy/haze-ui/virtual-list",
        "wmzy/haze-ui/visually-hidden",
        "wmzy/haze-ui/watermark",
        "wmzy/haze-ui/workbench"
      ],
      "files": [
        {
          "path": "components/haze/base.tsx",
          "content": "// haze-ui registry base — generated by scripts/generate-registry.mjs.\n//\n// Meta item: 'npx shadcn add wmzy/haze-ui/base' installs the entire\n// design system — this theme-activation wrapper plus, through\n// registryDependencies, a thin wrapper for every styled component under\n// components/ui/haze/. The implementation keeps coming from the haze-ui\n// npm package; edit the wrappers to customize.\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap).\n\nimport { compact, cyanTheme, darkTheme, lightTheme, motion, motionPresets, orangeTheme, roseTheme, spacing, tealTheme, typography, violetTheme } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\n\nexport { compact, cyanTheme, darkTheme, lightTheme, motion, motionPresets, orangeTheme, roseTheme, spacing, tealTheme, typography, violetTheme };\n",
          "type": "registry:base"
        }
      ]
    },
    {
      "name": "bottom-sheet",
      "type": "registry:ui",
      "title": "BottomSheet",
      "description": "Mobile-style sheet sliding from the bottom screen edge.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Mobile-style sheet sliding from the bottom screen edge.\n\nExports: `BottomSheet`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/bottom-sheet\n```\n\nThe wrapper lands at `components/ui/haze/bottom-sheet.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/bottom-sheet.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "overlay"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/bottom-sheet.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { BottomSheet } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/bottom-sheet.css';\n\nexport { BottomSheet };\nexport type { BottomSheetProps, BottomSheetHandle } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "breadcrumb",
      "type": "registry:ui",
      "title": "Breadcrumb / BreadcrumbItem",
      "description": "Breadcrumb trail nav with configurable separator.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Breadcrumb trail nav with configurable separator.\n\nExports: `Breadcrumb`, `BreadcrumbItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/breadcrumb\n```\n\nThe wrapper lands at `components/ui/haze/breadcrumb.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/breadcrumb.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/breadcrumb.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Breadcrumb, BreadcrumbItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/breadcrumb.css';\n\nexport { Breadcrumb, BreadcrumbItem };\nexport type { BreadcrumbProps, BreadcrumbItemProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "button",
      "type": "registry:ui",
      "title": "Button / ButtonLink / buttonVariants / buttonSizes",
      "description": "Action button with `variant`/`size`/`square` options over a native `<button>`; `ButtonLink` renders the same styles as an anchor.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Action button with `variant`/`size`/`square` options over a native `<button>`; `ButtonLink` renders the same styles as an anchor.\n\nExports: `Button`, `ButtonLink`, `buttonVariants`, `buttonSizes`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/button\n```\n\nThe wrapper lands at `components/ui/haze/button.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/button.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "general"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/button.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Button, ButtonLink, buttonVariants, buttonSizes } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/button.css';\nimport 'haze-ui/css/spinner.css';\n\nexport { Button, ButtonLink, buttonVariants, buttonSizes };\nexport type { ButtonProps, ButtonLinkProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "calendar",
      "type": "registry:ui",
      "title": "Calendar",
      "description": "Month-grid date surface with `min`/`max`, locale and `weekStartsOn`.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Month-grid date surface with `min`/`max`, locale and `weekStartsOn`.\n\nExports: `Calendar`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/calendar\n```\n\nThe wrapper lands at `components/ui/haze/calendar.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/calendar.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/calendar.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Calendar } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/calendar.css';\n\nexport { Calendar };\nexport type { CalendarProps, CalendarPickerMode, CalendarCellRender } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "card",
      "type": "registry:ui",
      "title": "Card",
      "description": "Content card with `elevated`/`outlined`/`filled` variants.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Content card with `elevated`/`outlined`/`filled` variants.\n\nExports: `Card`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/card\n```\n\nThe wrapper lands at `components/ui/haze/card.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/card.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/card.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Card } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/card.css';\n\nexport { Card };\nexport type { CardProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "carousel",
      "type": "registry:ui",
      "title": "Carousel / CarouselSlide",
      "description": "Slideshow with controllable active index and autoplay.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Slideshow with controllable active index and autoplay.\n\nExports: `Carousel`, `CarouselSlide`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/carousel\n```\n\nThe wrapper lands at `components/ui/haze/carousel.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/carousel.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/carousel.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Carousel, CarouselSlide } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/carousel.css';\n\nexport { Carousel, CarouselSlide };\nexport type { CarouselProps, CarouselSlideProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "cascader",
      "type": "registry:ui",
      "title": "Cascader",
      "description": "Multi-level drill-down selector committing a path of option values; `onSearch` filters remotely, `loading` shows the pending state.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Multi-level drill-down selector committing a path of option values; `onSearch` filters remotely, `loading` shows the pending state.\n\nExports: `Cascader`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/cascader\n```\n\nThe wrapper lands at `components/ui/haze/cascader.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/cascader.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/cascader.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Cascader } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/cascader.css';\nimport 'haze-ui/css/spinner.css';\nimport 'haze-ui/css/virtual-list.css';\n\nexport { Cascader };\nexport type { CascaderProps, CascaderOption } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "chart",
      "type": "registry:ui",
      "title": "Chart",
      "description": "Line/area/bar/pie charts over recharts with colors and axes on haze tokens; series cycle the semantic palette, `renderTooltip` customizes the tooltip.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Line/area/bar/pie charts over recharts with colors and axes on haze tokens; series cycle the semantic palette, `renderTooltip` customizes the tooltip.\n\nExports: `Chart`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/chart\n```\n\nThe wrapper lands at `components/ui/haze/chart.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/chart.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/chart.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Chart } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chart.css';\n\nexport { Chart };\nexport type { ChartProps, ChartSeries, ChartType, ChartTooltipPayload, ChartTooltipEntry } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "chat-container",
      "type": "registry:ui",
      "title": "ChatContainer",
      "description": "Chat transcript scroll container with stick-to-bottom auto-scroll.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Chat transcript scroll container with stick-to-bottom auto-scroll.\n\nExports: `ChatContainer`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/chat-container\n```\n\nThe wrapper lands at `components/ui/haze/chat-container.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/chat-container.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/chat-container.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ChatContainer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chat-container.css';\n\nexport { ChatContainer };\nexport type { ChatContainerProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "chat-input",
      "type": "registry:ui",
      "title": "ChatInput",
      "description": "Message composer with a controllable value and onSend callback.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Message composer with a controllable value and onSend callback.\n\nExports: `ChatInput`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/chat-input\n```\n\nThe wrapper lands at `components/ui/haze/chat-input.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/chat-input.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/chat-input.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ChatInput } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chat-input.css';\n\nexport { ChatInput };\nexport type { ChatInputProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "chat-message",
      "type": "registry:ui",
      "title": "ChatMessage",
      "description": "Chat bubble with role-based layout (user / assistant / system), avatar, name, timestamp and delivery status.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Chat bubble with role-based layout (user / assistant / system), avatar, name, timestamp and delivery status.\n\nExports: `ChatMessage`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/chat-message\n```\n\nThe wrapper lands at `components/ui/haze/chat-message.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/chat-message.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/chat-message.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ChatMessage } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chat-message.css';\n\nexport { ChatMessage };\nexport type { ChatMessageProps, ChatMessageRole } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "checkbox",
      "type": "registry:ui",
      "title": "Checkbox / CheckboxCore",
      "description": "Checkbox input with controllable `checked` state; `CheckboxCore` is the headless form-bindable core.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Checkbox input with controllable `checked` state; `CheckboxCore` is the headless form-bindable core.\n\nExports: `Checkbox`, `CheckboxCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/checkbox\n```\n\nThe wrapper lands at `components/ui/haze/checkbox.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/checkbox.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/checkbox.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Checkbox, CheckboxCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/checkbox.css';\n\nexport { Checkbox, CheckboxCore };\nexport type { CheckboxProps, CheckboxCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "chip",
      "type": "registry:ui",
      "title": "Chip",
      "description": "Rounded status chip with optional icon and close button.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Rounded status chip with optional icon and close button.\n\nExports: `Chip`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/chip\n```\n\nThe wrapper lands at `components/ui/haze/chip.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/chip.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/chip.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Chip } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/chip.css';\n\nexport { Chip };\nexport type { ChipProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "code-block",
      "type": "registry:ui",
      "title": "CodeBlock",
      "description": "Monospace code container with a language badge; `highlight` plugs in an async syntax highlighter.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Monospace code container with a language badge; `highlight` plugs in an async syntax highlighter.\n\nExports: `CodeBlock`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/code-block\n```\n\nThe wrapper lands at `components/ui/haze/code-block.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/code-block.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/code-block.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { CodeBlock } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/code-block.css';\n\nexport { CodeBlock };\nexport type { CodeBlockProps, Highlighter } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "collapsible",
      "type": "registry:ui",
      "title": "Collapsible / CollapsibleTrigger / CollapsibleContent",
      "description": "Unstyled open/close container with controllable `open` state (`CollapsibleTrigger`, `CollapsibleContent`).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Unstyled open/close container with controllable `open` state (`CollapsibleTrigger`, `CollapsibleContent`).\n\nExports: `Collapsible`, `CollapsibleTrigger`, `CollapsibleContent`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/collapsible\n```\n\nThe wrapper lands at `components/ui/haze/collapsible.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/collapsible.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "utilities"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/collapsible.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Collapsible, CollapsibleTrigger, CollapsibleContent } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/collapsible.css';\n\nexport { Collapsible, CollapsibleTrigger, CollapsibleContent };\nexport type { CollapsibleProps, CollapsibleTriggerProps, CollapsibleContentProps, CollapsibleClassNames } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "color-picker",
      "type": "registry:ui",
      "title": "ColorPicker / ColorPickerCore",
      "description": "Color selector with controllable value and preset swatches.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Color selector with controllable value and preset swatches.\n\nExports: `ColorPicker`, `ColorPickerCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/color-picker\n```\n\nThe wrapper lands at `components/ui/haze/color-picker.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/color-picker.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/color-picker.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ColorPicker, ColorPickerCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/color-picker.css';\n\nexport { ColorPicker, ColorPickerCore };\nexport type { ColorPickerProps, ColorPickerCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "combobox",
      "type": "registry:ui",
      "title": "Combobox / ComboboxOption / ComboboxGroup",
      "description": "Autocomplete text input with filterable option list; `onSearch` defers filtering to the host.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Autocomplete text input with filterable option list; `onSearch` defers filtering to the host.\n\nExports: `Combobox`, `ComboboxOption`, `ComboboxGroup`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/combobox\n```\n\nThe wrapper lands at `components/ui/haze/combobox.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/combobox.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/combobox.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Combobox, ComboboxOption, ComboboxGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/combobox.css';\nimport 'haze-ui/css/chip.css';\nimport 'haze-ui/css/spinner.css';\nimport 'haze-ui/css/virtual-list.css';\n\nexport { Combobox, ComboboxOption, ComboboxGroup };\nexport type { ComboboxProps, ComboboxClassNames, ComboboxOptionProps, ComboboxGroupProps, ComboboxOptionData, ComboboxVirtualizedConfig } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "command",
      "type": "registry:ui",
      "title": "Command / CommandInput / CommandList / CommandItem / CommandGroup / CommandDialog",
      "description": "Command palette surface: `CommandInput` plus filterable `CommandItem`s in a `CommandList`.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Command palette surface: `CommandInput` plus filterable `CommandItem`s in a `CommandList`.\n\nExports: `Command`, `CommandInput`, `CommandList`, `CommandItem`, `CommandGroup`, `CommandDialog`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/command\n```\n\nThe wrapper lands at `components/ui/haze/command.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/command.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/command.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Command, CommandInput, CommandList, CommandItem, CommandGroup, CommandDialog } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/command.css';\nimport 'haze-ui/css/dialog.css';\nimport 'haze-ui/css/kbd.css';\n\nexport { Command, CommandInput, CommandList, CommandItem, CommandGroup, CommandDialog };\nexport type { CommandProps, CommandInputProps, CommandListProps, CommandItemProps, CommandGroupProps, CommandDialogProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "confirm-dialog",
      "type": "registry:ui",
      "title": "ConfirmDialog / confirm",
      "description": "Ready-made confirm dialog with confirm/cancel actions and a danger variant.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Ready-made confirm dialog with confirm/cancel actions and a danger variant.\n\nExports: `ConfirmDialog`, `confirm`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/confirm-dialog\n```\n\nThe wrapper lands at `components/ui/haze/confirm-dialog.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/confirm-dialog.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "overlay"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/confirm-dialog.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ConfirmDialog, confirm } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/confirm-dialog.css';\n\nexport { ConfirmDialog, confirm };\nexport type { ConfirmDialogProps, ConfirmOptions } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "container",
      "type": "registry:ui",
      "title": "Container",
      "description": "Centered max-width page container with horizontal padding.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Centered max-width page container with horizontal padding.\n\nExports: `Container`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/container\n```\n\nThe wrapper lands at `components/ui/haze/container.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/container.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/container.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Container } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/container.css';\n\nexport { Container };\nexport type { ContainerProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "context-menu",
      "type": "registry:ui",
      "title": "ContextMenu / ContextMenuTrigger / ContextMenuContent / ContextMenuItem / ContextMenuSeparator",
      "description": "Floating menu opened on right-click.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Floating menu opened on right-click.\n\nExports: `ContextMenu`, `ContextMenuTrigger`, `ContextMenuContent`, `ContextMenuItem`, `ContextMenuSeparator`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/context-menu\n```\n\nThe wrapper lands at `components/ui/haze/context-menu.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/context-menu.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "overlay"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/context-menu.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuSeparator } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/context-menu.css';\n\nexport { ContextMenu, ContextMenuTrigger, ContextMenuContent, ContextMenuItem, ContextMenuSeparator };\nexport type { ContextMenuProps, ContextMenuTriggerProps, ContextMenuContentProps, ContextMenuItemProps, ContextMenuSeparatorProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "conversation-list",
      "type": "registry:ui",
      "title": "ConversationList / ConversationItem",
      "description": "Selectable list of conversations for a chat-history sidebar.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Selectable list of conversations for a chat-history sidebar.\n\nExports: `ConversationList`, `ConversationItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/conversation-list\n```\n\nThe wrapper lands at `components/ui/haze/conversation-list.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/conversation-list.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/conversation-list.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ConversationList, ConversationItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/conversation-list.css';\n\nexport { ConversationList, ConversationItem };\nexport type { ConversationListProps, ConversationItemProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "count-up",
      "type": "registry:ui",
      "title": "CountUp",
      "description": "Animated number ticker: rAF + ease-out interpolation toward `to`, honoring `prefers-reduced-motion` with an instant snap.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Animated number ticker: rAF + ease-out interpolation toward `to`, honoring `prefers-reduced-motion` with an instant snap.\n\nExports: `CountUp`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/count-up\n```\n\nThe wrapper lands at `components/ui/haze/count-up.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/count-up.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "general"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/count-up.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { CountUp } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/count-up.css';\n\nexport { CountUp };\nexport type { CountUpProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "data-table",
      "type": "registry:ui",
      "title": "DataTable / dataTableSum / dataTableAvg / dataTableCount / dataTableToCsv",
      "description": "Feature table on @tanstack/react-table with sorting, (manual) pagination, row selection and `dataTableToCsv` export.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Feature table on @tanstack/react-table with sorting, (manual) pagination, row selection and `dataTableToCsv` export.\n\nExports: `DataTable`, `dataTableSum`, `dataTableAvg`, `dataTableCount`, `dataTableToCsv`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/data-table\n```\n\nThe wrapper lands at `components/ui/haze/data-table.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/data-table.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/data-table.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { DataTable, dataTableSum, dataTableAvg, dataTableCount, dataTableToCsv } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/data-table.css';\nimport 'haze-ui/css/checkbox.css';\nimport 'haze-ui/css/dropdown-menu.css';\nimport 'haze-ui/css/empty.css';\nimport 'haze-ui/css/input.css';\nimport 'haze-ui/css/pagination.css';\nimport 'haze-ui/css/skeleton.css';\nimport 'haze-ui/css/table.css';\nimport 'haze-ui/css/virtual-list.css';\n\nexport { DataTable, dataTableSum, dataTableAvg, dataTableCount, dataTableToCsv };\nexport type { DataTableProps, DataTableColumnDef, DataTableColumnMeta, DataTableVirtualized, DataTableSummary, DataTableSummaryCell, DataTableCellEditorProps, DataTableCsvOptions } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "date-range-picker",
      "type": "registry:ui",
      "title": "DateRangePicker / DateRangePickerCore",
      "description": "Picks a start/end date range, with built-in or custom `presets` (Today, Last 7 days, …).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Picks a start/end date range, with built-in or custom `presets` (Today, Last 7 days, …).\n\nExports: `DateRangePicker`, `DateRangePickerCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/date-range-picker\n```\n\nThe wrapper lands at `components/ui/haze/date-range-picker.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/date-range-picker.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/date-range-picker.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { DateRangePicker, DateRangePickerCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/date-range-picker.css';\nimport 'haze-ui/css/calendar.css';\n\nexport { DateRangePicker, DateRangePickerCore };\nexport type { DateRangePickerProps, DateRangePickerCoreProps, DateRangePickerPreset, DateRangePickerPresets } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "datepicker",
      "type": "registry:ui",
      "title": "Datepicker / DatepickerCore",
      "description": "Date input with popup calendar (`YYYY-MM-DD` value); `showTime` adds a time-of-day field. `DatepickerCore` is the headless core.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Date input with popup calendar (`YYYY-MM-DD` value); `showTime` adds a time-of-day field. `DatepickerCore` is the headless core.\n\nExports: `Datepicker`, `DatepickerCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/datepicker\n```\n\nThe wrapper lands at `components/ui/haze/datepicker.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/datepicker.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/datepicker.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Datepicker, DatepickerCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/datepicker.css';\nimport 'haze-ui/css/calendar.css';\n\nexport { Datepicker, DatepickerCore };\nexport type { DatepickerProps, DatepickerCoreProps, DatepickerPreset } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "descriptions",
      "type": "registry:ui",
      "title": "Descriptions",
      "description": "Definition-list description groups (`dl`/`dt`/`dd` over CSS Grid): `items` pairs, `columns`, `bordered`, `size`.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Definition-list description groups (`dl`/`dt`/`dd` over CSS Grid): `items` pairs, `columns`, `bordered`, `size`.\n\nExports: `Descriptions`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/descriptions\n```\n\nThe wrapper lands at `components/ui/haze/descriptions.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/descriptions.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/descriptions.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Descriptions } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/descriptions.css';\n\nexport { Descriptions };\nexport type { DescriptionsProps, DescriptionsItem } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "dialog",
      "type": "registry:ui",
      "title": "Dialog",
      "description": "Modal dialog with focus trapping.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Modal dialog with focus trapping.\n\nExports: `Dialog`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/dialog\n```\n\nThe wrapper lands at `components/ui/haze/dialog.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/dialog.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "overlay"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/dialog.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Dialog } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/dialog.css';\n\nexport { Dialog };\nexport type { DialogProps, DialogHandle, DialogClassNames } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "diff-viewer",
      "type": "registry:ui",
      "title": "DiffViewer",
      "description": "Renders the line diff between old and new content for agent-proposed edits.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Renders the line diff between old and new content for agent-proposed edits.\n\nExports: `DiffViewer`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/diff-viewer\n```\n\nThe wrapper lands at `components/ui/haze/diff-viewer.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/diff-viewer.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/diff-viewer.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { DiffViewer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/diff-viewer.css';\n\nexport { DiffViewer };\nexport type { DiffViewerProps, DiffLine } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "disclosure",
      "type": "registry:ui",
      "title": "Disclosure",
      "description": "Summary-header disclosure panel (details/summary semantics).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Summary-header disclosure panel (details/summary semantics).\n\nExports: `Disclosure`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/disclosure\n```\n\nThe wrapper lands at `components/ui/haze/disclosure.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/disclosure.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "utilities"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/disclosure.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Disclosure } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/disclosure.css';\n\nexport { Disclosure };\nexport type { DisclosureProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "divider",
      "type": "registry:ui",
      "title": "Divider",
      "description": "Content separator line, horizontal or vertical.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Content separator line, horizontal or vertical.\n\nExports: `Divider`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/divider\n```\n\nThe wrapper lands at `components/ui/haze/divider.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/divider.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "general"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/divider.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Divider } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/divider.css';\n\nexport { Divider };\nexport type { DividerProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "drawer",
      "type": "registry:ui",
      "title": "Drawer",
      "description": "Edge-anchored sliding panel (`placement` left/right).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Edge-anchored sliding panel (`placement` left/right).\n\nExports: `Drawer`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/drawer\n```\n\nThe wrapper lands at `components/ui/haze/drawer.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/drawer.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "overlay"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/drawer.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Drawer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/drawer.css';\n\nexport { Drawer };\nexport type { DrawerProps, DrawerClassNames, DrawerHandle } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "dropdown-menu",
      "type": "registry:ui",
      "title": "DropdownMenu / DropdownMenuTrigger / DropdownMenuContent / DropdownMenuItem / DropdownMenuCheckboxItem / DropdownMenuRadioGroup / DropdownMenuRadioItem / DropdownMenuGroup / DropdownMenuSeparator / DropdownMenuSub / DropdownMenuSubTrigger / DropdownMenuSubContent",
      "description": "Click-triggered floating menu with `DropdownMenuTrigger`/`Content`/`Item`/`Separator` parts.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Click-triggered floating menu with `DropdownMenuTrigger`/`Content`/`Item`/`Separator` parts.\n\nExports: `DropdownMenu`, `DropdownMenuTrigger`, `DropdownMenuContent`, `DropdownMenuItem`, `DropdownMenuCheckboxItem`, `DropdownMenuRadioGroup`, `DropdownMenuRadioItem`, `DropdownMenuGroup`, `DropdownMenuSeparator`, `DropdownMenuSub`, `DropdownMenuSubTrigger`, `DropdownMenuSubContent`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/dropdown-menu\n```\n\nThe wrapper lands at `components/ui/haze/dropdown-menu.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/dropdown-menu.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "overlay"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/dropdown-menu.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuGroup, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/dropdown-menu.css';\n\nexport { DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuGroup, DropdownMenuSeparator, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent };\nexport type { DropdownMenuProps, DropdownMenuDataItem, DropdownMenuTriggerProps, DropdownMenuContentProps, DropdownMenuItemProps, DropdownMenuCheckboxItemProps, DropdownMenuRadioGroupProps, DropdownMenuRadioItemProps, DropdownMenuGroupProps, DropdownMenuSeparatorProps, DropdownMenuSubProps, DropdownMenuSubTriggerProps, DropdownMenuSubContentProps, DropdownMenuHandle } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "ellipsis",
      "type": "registry:ui",
      "title": "Ellipsis",
      "description": "Interactive text truncation: N-line clamp with truncation detection, optional tooltip and expand/collapse; Typography also ships a pure-CSS `ellipsis` prop.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Interactive text truncation: N-line clamp with truncation detection, optional tooltip and expand/collapse; Typography also ships a pure-CSS `ellipsis` prop.\n\nExports: `Ellipsis`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/ellipsis\n```\n\nThe wrapper lands at `components/ui/haze/ellipsis.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/ellipsis.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "general"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/ellipsis.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Ellipsis } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/ellipsis.css';\nimport 'haze-ui/css/tooltip.css';\n\nexport { Ellipsis };\nexport type { EllipsisProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "empty",
      "type": "registry:ui",
      "title": "Empty",
      "description": "Empty-state placeholder with image and description.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Empty-state placeholder with image and description.\n\nExports: `Empty`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/empty\n```\n\nThe wrapper lands at `components/ui/haze/empty.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/empty.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "feedback"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/empty.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Empty } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/empty.css';\n\nexport { Empty };\nexport type { EmptyProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "fieldset",
      "type": "registry:ui",
      "title": "Fieldset",
      "description": "Semantic form grouping: native `fieldset`+`legend` (group named by the legend), `disabled` disables every control inside.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Semantic form grouping: native `fieldset`+`legend` (group named by the legend), `disabled` disables every control inside.\n\nExports: `Fieldset`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/fieldset\n```\n\nThe wrapper lands at `components/ui/haze/fieldset.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/fieldset.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/fieldset.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Fieldset } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/fieldset.css';\n\nexport { Fieldset };\nexport type { FieldsetProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "file-input",
      "type": "registry:ui",
      "title": "FileInput",
      "description": "Trigger element that opens a hidden native file input.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Trigger element that opens a hidden native file input.\n\nExports: `FileInput`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/file-input\n```\n\nThe wrapper lands at `components/ui/haze/file-input.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/file-input.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/file-input.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { FileInput } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/file-input.css';\n\nexport { FileInput };\nexport type { FileInputProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "file-preview",
      "type": "registry:ui",
      "title": "FilePreview",
      "description": "Attachment card with image thumbnail or extension badge, size formatting, upload progress and remove/retry actions.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Attachment card with image thumbnail or extension badge, size formatting, upload progress and remove/retry actions.\n\nExports: `FilePreview`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/file-preview\n```\n\nThe wrapper lands at `components/ui/haze/file-preview.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/file-preview.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/file-preview.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { FilePreview } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/file-preview.css';\nimport 'haze-ui/css/progress.css';\n\nexport { FilePreview };\nexport type { FilePreviewProps, FilePreviewFile, FilePreviewStatus } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "flex",
      "type": "registry:ui",
      "title": "Flex",
      "description": "Flexbox layout primitive mapping props to flex CSS.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Flexbox layout primitive mapping props to flex CSS.\n\nExports: `Flex`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/flex\n```\n\nThe wrapper lands at `components/ui/haze/flex.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/flex.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/flex.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Flex } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/flex.css';\n\nexport { Flex };\nexport type { FlexProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "float-button",
      "type": "registry:ui",
      "title": "FloatButton / FloatButtonGroup",
      "description": "Floating action button over the page (`FloatButtonGroup` for expandable stacks) with built-in back-to-top and help glyphs.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Floating action button over the page (`FloatButtonGroup` for expandable stacks) with built-in back-to-top and help glyphs.\n\nExports: `FloatButton`, `FloatButtonGroup`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/float-button\n```\n\nThe wrapper lands at `components/ui/haze/float-button.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/float-button.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/float-button.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { FloatButton, FloatButtonGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/float-button.css';\n\nexport { FloatButton, FloatButtonGroup };\nexport type { FloatButtonProps, FloatButtonGroupProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "form",
      "type": "registry:ui",
      "title": "FormItem / FormList / FormProvider / useFormContext / useFieldArray / useFieldArrayItem / useWatch / trigger / setFocus / setServerErrors / setValue / getValue / getValues / reset / hasStandardProps / standardSchemaFormValidator / standardSchemaResolver / zodResolver",
      "description": "react-f0rm field wrapper adding label, error and aria wiring to controlled cores.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "react-f0rm field wrapper adding label, error and aria wiring to controlled cores.\n\nExports: `FormItem`, `FormList`, `FormProvider`, `useFormContext`, `useFieldArray`, `useFieldArrayItem`, `useWatch`, `trigger`, `setFocus`, `setServerErrors`, `setValue`, `getValue`, `getValues`, `reset`, `hasStandardProps`, `standardSchemaFormValidator`, `standardSchemaResolver`, `zodResolver`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/form\n```\n\nThe wrapper lands at `components/ui/haze/form.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/form.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/form.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { FormItem, FormList, FormProvider, useFormContext, useFieldArray, useFieldArrayItem, useWatch, trigger, setFocus, setServerErrors, setValue, getValue, getValues, reset, hasStandardProps, standardSchemaFormValidator, standardSchemaResolver, zodResolver } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/form.css';\n\nexport { FormItem, FormList, FormProvider, useFormContext, useFieldArray, useFieldArrayItem, useWatch, trigger, setFocus, setServerErrors, setValue, getValue, getValues, reset, hasStandardProps, standardSchemaFormValidator, standardSchemaResolver, zodResolver };\nexport type { FieldValidator, FormItemAsProps, FormItemBinding, FormItemOwnProps, FormItemProps, FormItemRawElement, FormItemRawElementBinding, FormInstance, FormListProps, FormListBinding, FormListField, PathValueOf, StandardSchemaV1 } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "grid",
      "type": "registry:ui",
      "title": "Grid / GridItem",
      "description": "CSS grid layout primitive with `GridItem` children.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "CSS grid layout primitive with `GridItem` children.\n\nExports: `Grid`, `GridItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/grid\n```\n\nThe wrapper lands at `components/ui/haze/grid.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/grid.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/grid.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Grid, GridItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/grid.css';\n\nexport { Grid, GridItem };\nexport type { GridProps, GridItemProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "hover-card",
      "type": "registry:ui",
      "title": "HoverCard",
      "description": "Non-modal floating preview (avatar card, link summary) anchored to its trigger.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Non-modal floating preview (avatar card, link summary) anchored to its trigger.\n\nExports: `HoverCard`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/hover-card\n```\n\nThe wrapper lands at `components/ui/haze/hover-card.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/hover-card.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "overlay"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/hover-card.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { HoverCard } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/hover-card.css';\n\nexport { HoverCard };\nexport type { HoverCardProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "icon",
      "type": "registry:ui",
      "title": "Icon",
      "description": "Inline SVG icon wrapper with token-sized `sm`/`md`/`lg` boxes.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Inline SVG icon wrapper with token-sized `sm`/`md`/`lg` boxes.\n\nExports: `Icon`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/icon\n```\n\nThe wrapper lands at `components/ui/haze/icon.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/icon.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "general"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/icon.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Icon } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/icon.css';\n\nexport { Icon };\nexport type { IconProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "image",
      "type": "registry:ui",
      "title": "Image",
      "description": "Image with fallback and `aspectRatio`/`objectFit` control.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Image with fallback and `aspectRatio`/`objectFit` control.\n\nExports: `Image`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/image\n```\n\nThe wrapper lands at `components/ui/haze/image.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/image.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/image.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Image } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/image.css';\n\nexport { Image };\nexport type { ImageProps, ImagePreviewConfig } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "indicator",
      "type": "registry:ui",
      "title": "Indicator",
      "description": "Corner badge attached to a host element (avatar, icon button): dot or count label, tone + corner position, zero-badge hides unless `showZero`.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Corner badge attached to a host element (avatar, icon button): dot or count label, tone + corner position, zero-badge hides unless `showZero`.\n\nExports: `Indicator`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/indicator\n```\n\nThe wrapper lands at `components/ui/haze/indicator.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/indicator.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/indicator.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Indicator } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/indicator.css';\n\nexport { Indicator };\nexport type { IndicatorProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "inline-completion",
      "type": "registry:ui",
      "title": "InlineCompletion",
      "description": "Ghost-text completion overlay for input/textarea: Tab accepts the suggestion, Escape dismisses it.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Ghost-text completion overlay for input/textarea: Tab accepts the suggestion, Escape dismisses it.\n\nExports: `InlineCompletion`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/inline-completion\n```\n\nThe wrapper lands at `components/ui/haze/inline-completion.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/inline-completion.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/inline-completion.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { InlineCompletion } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/inline-completion.css';\n\nexport { InlineCompletion };\nexport type { InlineCompletionProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "inline-edit",
      "type": "registry:ui",
      "title": "InlineEdit",
      "description": "Click-to-edit text value in place.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Click-to-edit text value in place.\n\nExports: `InlineEdit`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/inline-edit\n```\n\nThe wrapper lands at `components/ui/haze/inline-edit.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/inline-edit.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/inline-edit.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { InlineEdit } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/inline-edit.css';\n\nexport { InlineEdit };\nexport type { InlineEditProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "input",
      "type": "registry:ui",
      "title": "Input / InputCore",
      "description": "Text input with adornments; `InputCore` is the headless form-bindable core.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Text input with adornments; `InputCore` is the headless form-bindable core.\n\nExports: `Input`, `InputCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/input\n```\n\nThe wrapper lands at `components/ui/haze/input.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/input.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/input.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Input, InputCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/input.css';\n\nexport { Input, InputCore };\nexport type { InputProps, InputCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "json-view",
      "type": "registry:ui",
      "title": "JsonView",
      "description": "Collapsible JSON tree viewer with per-kind leaf colors, depth-based default expansion, truncation hints and an optional copy button.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Collapsible JSON tree viewer with per-kind leaf colors, depth-based default expansion, truncation hints and an optional copy button.\n\nExports: `JsonView`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/json-view\n```\n\nThe wrapper lands at `components/ui/haze/json-view.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/json-view.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/json-view.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { JsonView } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/json-view.css';\n\nexport { JsonView };\nexport type { JsonViewProps, MoreLabelFn } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "kbd",
      "type": "registry:ui",
      "title": "Kbd",
      "description": "Keyboard key-cap styling for shortcuts.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Keyboard key-cap styling for shortcuts.\n\nExports: `Kbd`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/kbd\n```\n\nThe wrapper lands at `components/ui/haze/kbd.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/kbd.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/kbd.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Kbd } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/kbd.css';\n\nexport { Kbd };\nexport type { KbdProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "list",
      "type": "registry:ui",
      "title": "List / ListItem",
      "description": "Styled `ul`/`ol`/plain list with `ListItem` children.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Styled `ul`/`ol`/plain list with `ListItem` children.\n\nExports: `List`, `ListItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/list\n```\n\nThe wrapper lands at `components/ui/haze/list.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/list.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/list.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { List, ListItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/list.css';\n\nexport { List, ListItem };\nexport type { ListProps, ListItemProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "loading-overlay",
      "type": "registry:ui",
      "title": "LoadingOverlay",
      "description": "Container-level loading state: dims content and centers a spinner (or custom loader) above it, `aria-busy` mirrors the phase.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Container-level loading state: dims content and centers a spinner (or custom loader) above it, `aria-busy` mirrors the phase.\n\nExports: `LoadingOverlay`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/loading-overlay\n```\n\nThe wrapper lands at `components/ui/haze/loading-overlay.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/loading-overlay.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "feedback"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/loading-overlay.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { LoadingOverlay } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/loading-overlay.css';\nimport 'haze-ui/css/spinner.css';\n\nexport { LoadingOverlay };\nexport type { LoadingOverlayProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "log-viewer",
      "type": "registry:ui",
      "title": "LogViewer",
      "description": "Scrollable log stream with severity-level filtering.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Scrollable log stream with severity-level filtering.\n\nExports: `LogViewer`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/log-viewer\n```\n\nThe wrapper lands at `components/ui/haze/log-viewer.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/log-viewer.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/log-viewer.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { LogViewer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/log-viewer.css';\n\nexport { LogViewer };\nexport type { LogViewerProps, LogEntry, LogLevel } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "mark",
      "type": "registry:ui",
      "title": "Mark",
      "description": "Text-level highlight — semantic `<mark>` skinned with the status tokens (`warning`/`primary`/`success`/`danger`).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Text-level highlight — semantic `<mark>` skinned with the status tokens (`warning`/`primary`/`success`/`danger`).\n\nExports: `Mark`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/mark\n```\n\nThe wrapper lands at `components/ui/haze/mark.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/mark.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "general"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/mark.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Mark } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/mark.css';\n\nexport { Mark };\nexport type { MarkProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "markdown-renderer",
      "type": "registry:ui",
      "title": "MarkdownRenderer",
      "description": "Renders markdown content (including code blocks) for assistant responses.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Renders markdown content (including code blocks) for assistant responses.\n\nExports: `MarkdownRenderer`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/markdown-renderer\n```\n\nThe wrapper lands at `components/ui/haze/markdown-renderer.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/markdown-renderer.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/markdown-renderer.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { MarkdownRenderer } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/markdown-renderer.css';\n\nexport { MarkdownRenderer };\nexport type { MarkdownRendererProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "masonry",
      "type": "registry:ui",
      "title": "Masonry",
      "description": "Masonry (pinboard) layout: JS greedy column distribution balances children across `columns`.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Masonry (pinboard) layout: JS greedy column distribution balances children across `columns`.\n\nExports: `Masonry`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/masonry\n```\n\nThe wrapper lands at `components/ui/haze/masonry.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/masonry.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/masonry.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Masonry } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/masonry.css';\n\nexport { Masonry };\nexport type { MasonryProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "mentions",
      "type": "registry:ui",
      "title": "Mentions / MentionsCore",
      "description": "Mentions input with trigger-character suggestions picked from an option list (`MentionsCore` is the headless core).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Mentions input with trigger-character suggestions picked from an option list (`MentionsCore` is the headless core).\n\nExports: `Mentions`, `MentionsCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/mentions\n```\n\nThe wrapper lands at `components/ui/haze/mentions.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/mentions.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/mentions.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Mentions, MentionsCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/mentions.css';\n\nexport { Mentions, MentionsCore };\nexport type { MentionsProps, MentionsCoreProps, MentionsOption } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "menu",
      "type": "registry:ui",
      "title": "Menu / MenuItem / MenuCheckboxItem / MenuRadioGroup / MenuRadioItem / MenuGroup / MenuDivider / MenuSub / MenuSubTrigger / MenuSubContent",
      "description": "Lightweight toggle menu with a trigger and statically positioned panel (`MenuItem`, `MenuDivider`).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Lightweight toggle menu with a trigger and statically positioned panel (`MenuItem`, `MenuDivider`).\n\nExports: `Menu`, `MenuItem`, `MenuCheckboxItem`, `MenuRadioGroup`, `MenuRadioItem`, `MenuGroup`, `MenuDivider`, `MenuSub`, `MenuSubTrigger`, `MenuSubContent`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/menu\n```\n\nThe wrapper lands at `components/ui/haze/menu.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/menu.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "overlay"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/menu.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Menu, MenuItem, MenuCheckboxItem, MenuRadioGroup, MenuRadioItem, MenuGroup, MenuDivider, MenuSub, MenuSubTrigger, MenuSubContent } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/menu.css';\n\nexport { Menu, MenuItem, MenuCheckboxItem, MenuRadioGroup, MenuRadioItem, MenuGroup, MenuDivider, MenuSub, MenuSubTrigger, MenuSubContent };\nexport type { MenuProps, MenuDataItem, MenuItemProps, MenuCheckboxItemProps, MenuRadioGroupProps, MenuRadioItemProps, MenuGroupProps, MenuSubProps, MenuSubTriggerProps, MenuSubContentProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "model-picker",
      "type": "registry:ui",
      "title": "ModelPicker",
      "description": "Controllable dropdown for selecting the active model.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Controllable dropdown for selecting the active model.\n\nExports: `ModelPicker`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/model-picker\n```\n\nThe wrapper lands at `components/ui/haze/model-picker.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/model-picker.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/model-picker.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ModelPicker } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/model-picker.css';\n\nexport { ModelPicker };\nexport type { ModelPickerProps, ModelOption } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "navigation-bar",
      "type": "registry:ui",
      "title": "NavigationBar / NavLink",
      "description": "Top nav bar with `brand` and `end` slots plus `NavLink` items.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Top nav bar with `brand` and `end` slots plus `NavLink` items.\n\nExports: `NavigationBar`, `NavLink`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/navigation-bar\n```\n\nThe wrapper lands at `components/ui/haze/navigation-bar.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/navigation-bar.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/navigation-bar.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { NavigationBar, NavLink } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/navigation-bar.css';\n\nexport { NavigationBar, NavLink };\nexport type { NavigationBarProps, NavLinkProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "number-input",
      "type": "registry:ui",
      "title": "NumberInput / NumberInputCore",
      "description": "Numeric input with `min`/`max`/`step`.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Numeric input with `min`/`max`/`step`.\n\nExports: `NumberInput`, `NumberInputCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/number-input\n```\n\nThe wrapper lands at `components/ui/haze/number-input.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/number-input.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/number-input.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { NumberInput, NumberInputCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/number-input.css';\n\nexport { NumberInput, NumberInputCore };\nexport type { NumberInputProps, NumberInputCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "otp-input",
      "type": "registry:ui",
      "title": "OTPInput / OTPInputCore",
      "description": "One-time-password input of `length` segmented character boxes.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "One-time-password input of `length` segmented character boxes.\n\nExports: `OTPInput`, `OTPInputCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/otp-input\n```\n\nThe wrapper lands at `components/ui/haze/otp-input.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/otp-input.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/otp-input.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { OTPInput, OTPInputCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/otp-input.css';\n\nexport { OTPInput, OTPInputCore };\nexport type { OTPInputProps, OTPInputCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "pagination",
      "type": "registry:ui",
      "title": "Pagination",
      "description": "Page navigation with controllable `page` and ellipsis windows.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Page navigation with controllable `page` and ellipsis windows.\n\nExports: `Pagination`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/pagination\n```\n\nThe wrapper lands at `components/ui/haze/pagination.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/pagination.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/pagination.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Pagination } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/pagination.css';\n\nexport { Pagination };\nexport type { PaginationProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "password-input",
      "type": "registry:ui",
      "title": "PasswordInput / PasswordInputCore",
      "description": "Text input with a visibility reveal toggle.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Text input with a visibility reveal toggle.\n\nExports: `PasswordInput`, `PasswordInputCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/password-input\n```\n\nThe wrapper lands at `components/ui/haze/password-input.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/password-input.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/password-input.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { PasswordInput, PasswordInputCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/password-input.css';\nimport 'haze-ui/css/input.css';\n\nexport { PasswordInput, PasswordInputCore };\nexport type { PasswordInputProps, PasswordInputCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "popover",
      "type": "registry:ui",
      "title": "Popover",
      "description": "Floating popover anchored to a trigger element.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Floating popover anchored to a trigger element.\n\nExports: `Popover`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/popover\n```\n\nThe wrapper lands at `components/ui/haze/popover.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/popover.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "overlay"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/popover.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Popover } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/popover.css';\n\nexport { Popover };\nexport type { PopoverProps, PopoverHandle, PopoverClassNames } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "progress",
      "type": "registry:ui",
      "title": "Progress",
      "description": "Progress bar or circle driven by a percentage `value`.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Progress bar or circle driven by a percentage `value`.\n\nExports: `Progress`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/progress\n```\n\nThe wrapper lands at `components/ui/haze/progress.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/progress.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/progress.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Progress } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/progress.css';\n\nexport { Progress };\nexport type { ProgressProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "prompt-input",
      "type": "registry:ui",
      "title": "PromptInput",
      "description": "AI prompt composer: auto-growing textarea with inline context tags, `@`-trigger suggestions and a configurable submit key.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "AI prompt composer: auto-growing textarea with inline context tags, `@`-trigger suggestions and a configurable submit key.\n\nExports: `PromptInput`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/prompt-input\n```\n\nThe wrapper lands at `components/ui/haze/prompt-input.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/prompt-input.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/prompt-input.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { PromptInput } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/prompt-input.css';\n\nexport { PromptInput };\nexport type { PromptInputProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "qr-code",
      "type": "registry:ui",
      "title": "QRCode",
      "description": "QR code rendered as one crisp SVG path over the `qrcode` engine dependency; theme-token module/background colors with `value`/`size`/`level`/`bordered` options.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "QR code rendered as one crisp SVG path over the `qrcode` engine dependency; theme-token module/background colors with `value`/`size`/`level`/`bordered` options.\n\nExports: `QRCode`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/qr-code\n```\n\nThe wrapper lands at `components/ui/haze/qr-code.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/qr-code.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/qr-code.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { QRCode } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/qr-code.css';\n\nexport { QRCode };\nexport type { QRCodeProps, QRCodeLevel } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "radio",
      "type": "registry:ui",
      "title": "Radio / RadioGroup / RadioGroupCore",
      "description": "Radio option and group with controllable selection (`Radio`, `RadioGroup`, headless `RadioGroupCore`).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Radio option and group with controllable selection (`Radio`, `RadioGroup`, headless `RadioGroupCore`).\n\nExports: `Radio`, `RadioGroup`, `RadioGroupCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/radio\n```\n\nThe wrapper lands at `components/ui/haze/radio.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/radio.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/radio.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Radio, RadioGroup, RadioGroupCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/radio.css';\n\nexport { Radio, RadioGroup, RadioGroupCore };\nexport type { RadioProps, RadioGroupProps, RadioGroupCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "rating",
      "type": "registry:ui",
      "title": "Rating / RatingCore",
      "description": "Star rating with half-step support.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Star rating with half-step support.\n\nExports: `Rating`, `RatingCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/rating\n```\n\nThe wrapper lands at `components/ui/haze/rating.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/rating.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/rating.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Rating, RatingCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/rating.css';\n\nexport { Rating, RatingCore };\nexport type { RatingProps, RatingCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "resizable",
      "type": "registry:ui",
      "title": "ResizableGroup / ResizablePanel / ResizableHandle / SplitterGroup / SplitterPanel / SplitterHandle",
      "description": "Split-pane group with draggable dividers, horizontal or vertical; also exported as `SplitterGroup`/`SplitterPanel`/`SplitterHandle` (AntD-style naming).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Split-pane group with draggable dividers, horizontal or vertical; also exported as `SplitterGroup`/`SplitterPanel`/`SplitterHandle` (AntD-style naming).\n\nExports: `ResizableGroup`, `ResizablePanel`, `ResizableHandle`, `SplitterGroup`, `SplitterPanel`, `SplitterHandle`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/resizable\n```\n\nThe wrapper lands at `components/ui/haze/resizable.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/resizable.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/resizable.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ResizableGroup, ResizablePanel, ResizableHandle, SplitterGroup, SplitterPanel, SplitterHandle } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/resizable.css';\n\nexport { ResizableGroup, ResizablePanel, ResizableHandle, SplitterGroup, SplitterPanel, SplitterHandle };\nexport type { ResizableGroupProps, ResizablePanelProps, ResizableHandleProps, SplitterGroupProps, SplitterPanelProps, SplitterHandleProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "result",
      "type": "registry:ui",
      "title": "Result",
      "description": "Result feedback page: status illustration (`success`/`error`/`info`/`warning`/`403`/`404`/`500`), `title`, `subTitle` and an `extra` action area; `icon` replaces the default illustration.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Result feedback page: status illustration (`success`/`error`/`info`/`warning`/`403`/`404`/`500`), `title`, `subTitle` and an `extra` action area; `icon` replaces the default illustration.\n\nExports: `Result`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/result\n```\n\nThe wrapper lands at `components/ui/haze/result.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/result.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "feedback"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/result.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Result } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/result.css';\n\nexport { Result };\nexport type { ResultProps, ResultStatus } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "scroll-area",
      "type": "registry:ui",
      "title": "ScrollArea",
      "description": "Scrollable region with custom-styled thin scrollbars and `maxHeight`.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Scrollable region with custom-styled thin scrollbars and `maxHeight`.\n\nExports: `ScrollArea`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/scroll-area\n```\n\nThe wrapper lands at `components/ui/haze/scroll-area.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/scroll-area.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/scroll-area.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ScrollArea } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/scroll-area.css';\n\nexport { ScrollArea };\nexport type { ScrollAreaProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "segmented",
      "type": "registry:ui",
      "title": "Segmented / SegmentedCore",
      "description": "Segmented control selecting one option from a compact set.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Segmented control selecting one option from a compact set.\n\nExports: `Segmented`, `SegmentedCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/segmented\n```\n\nThe wrapper lands at `components/ui/haze/segmented.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/segmented.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/segmented.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Segmented, SegmentedCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/segmented.css';\n\nexport { Segmented, SegmentedCore };\nexport type { SegmentedProps, SegmentedCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "select",
      "type": "registry:ui",
      "title": "Select / Option / SelectCore / OptionGroup",
      "description": "Dropdown select over `SelectCore` with `<option>` children; `onSearch` enables server-side filtering.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Dropdown select over `SelectCore` with `<option>` children; `onSearch` enables server-side filtering.\n\nExports: `Select`, `Option`, `SelectCore`, `OptionGroup`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/select\n```\n\nThe wrapper lands at `components/ui/haze/select.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/select.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/select.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Select, Option, SelectCore, OptionGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/select.css';\nimport 'haze-ui/css/chip.css';\nimport 'haze-ui/css/spinner.css';\nimport 'haze-ui/css/virtual-list.css';\n\nexport { Select, Option, SelectCore, OptionGroup };\nexport type { SelectProps, SelectClassNames, OptionProps, SelectCoreProps, OptionGroupProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sidebar",
      "type": "registry:ui",
      "title": "Sidebar / SidebarGroup / SidebarItem / SidebarFooter / SidebarToggle",
      "description": "App sidebar shell with controllable collapsed state: `SidebarGroup`/`SidebarItem`/`SidebarFooter`/`SidebarToggle` parts.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "App sidebar shell with controllable collapsed state: `SidebarGroup`/`SidebarItem`/`SidebarFooter`/`SidebarToggle` parts.\n\nExports: `Sidebar`, `SidebarGroup`, `SidebarItem`, `SidebarFooter`, `SidebarToggle`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/sidebar\n```\n\nThe wrapper lands at `components/ui/haze/sidebar.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/sidebar.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/sidebar.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Sidebar, SidebarGroup, SidebarItem, SidebarFooter, SidebarToggle } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/sidebar.css';\nimport 'haze-ui/css/tooltip.css';\n\nexport { Sidebar, SidebarGroup, SidebarItem, SidebarFooter, SidebarToggle };\nexport type { SidebarProps, SidebarGroupProps, SidebarItemProps, SidebarFooterProps, SidebarToggleProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "signature",
      "type": "registry:ui",
      "title": "Signature",
      "description": "Canvas signature pad committing a PNG data URL on every stroke, with undo, clear and a no-canvas fallback notice.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Canvas signature pad committing a PNG data URL on every stroke, with undo, clear and a no-canvas fallback notice.\n\nExports: `Signature`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/signature\n```\n\nThe wrapper lands at `components/ui/haze/signature.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/signature.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/signature.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Signature } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/signature.css';\n\nexport { Signature };\nexport type { SignatureProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "skeleton",
      "type": "registry:ui",
      "title": "Skeleton",
      "description": "Shimmering loading placeholder (`text`/`circular`/`rectangular`).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Shimmering loading placeholder (`text`/`circular`/`rectangular`).\n\nExports: `Skeleton`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/skeleton\n```\n\nThe wrapper lands at `components/ui/haze/skeleton.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/skeleton.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "feedback"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/skeleton.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Skeleton } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/skeleton.css';\n\nexport { Skeleton };\nexport type { SkeletonProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "slider",
      "type": "registry:ui",
      "title": "Slider / SliderCore",
      "description": "Native range slider with controllable value.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Native range slider with controllable value.\n\nExports: `Slider`, `SliderCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/slider\n```\n\nThe wrapper lands at `components/ui/haze/slider.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/slider.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/slider.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Slider, SliderCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/slider.css';\n\nexport { Slider, SliderCore };\nexport type { SliderProps, SliderCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sources",
      "type": "registry:ui",
      "title": "Sources",
      "description": "Numbered citation list for RAG answers; excerpts reveal on hover/focus with a controllable `expanded` set, `compact` footnote form included.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Numbered citation list for RAG answers; excerpts reveal on hover/focus with a controllable `expanded` set, `compact` footnote form included.\n\nExports: `Sources`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/sources\n```\n\nThe wrapper lands at `components/ui/haze/sources.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/sources.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/sources.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Sources } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/sources.css';\n\nexport { Sources };\nexport type { SourcesProps, SourceItem } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sparkline",
      "type": "registry:ui",
      "title": "Sparkline / sparklineToneStrokes / sparklineToneFills",
      "description": "Inline-SVG mini trend chart (line/area variants, tone colors); stateless, recharts-free and RSC-safe.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Inline-SVG mini trend chart (line/area variants, tone colors); stateless, recharts-free and RSC-safe.\n\nExports: `Sparkline`, `sparklineToneStrokes`, `sparklineToneFills`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/sparkline\n```\n\nThe wrapper lands at `components/ui/haze/sparkline.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/sparkline.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/sparkline.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Sparkline, sparklineToneStrokes, sparklineToneFills } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/sparkline.css';\n\nexport { Sparkline, sparklineToneStrokes, sparklineToneFills };\nexport type { SparklineProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "spinner",
      "type": "registry:ui",
      "title": "Spinner",
      "description": "Loading spinner.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Loading spinner.\n\nExports: `Spinner`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/spinner\n```\n\nThe wrapper lands at `components/ui/haze/spinner.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/spinner.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "feedback"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/spinner.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Spinner } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/spinner.css';\n\nexport { Spinner };\nexport type { SpinnerProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "spoiler",
      "type": "registry:ui",
      "title": "Spoiler",
      "description": "Collapsed long-content gate (\"show more/less\"): height-capped preview with a fade edge and a toggle button; `expanded` is controllable.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Collapsed long-content gate (\"show more/less\"): height-capped preview with a fade edge and a toggle button; `expanded` is controllable.\n\nExports: `Spoiler`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/spoiler\n```\n\nThe wrapper lands at `components/ui/haze/spoiler.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/spoiler.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/spoiler.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Spoiler } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/spoiler.css';\n\nexport { Spoiler };\nexport type { SpoilerProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "stat",
      "type": "registry:ui",
      "title": "Stat / StatGroup",
      "description": "Metric display with title, value and trend indicator (`StatGroup` container).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Metric display with title, value and trend indicator (`StatGroup` container).\n\nExports: `Stat`, `StatGroup`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/stat\n```\n\nThe wrapper lands at `components/ui/haze/stat.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/stat.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/stat.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Stat, StatGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/stat.css';\n\nexport { Stat, StatGroup };\nexport type { StatProps, StatGroupProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "status-bar",
      "type": "registry:ui",
      "title": "StatusBar / StatusItem",
      "description": "VSCode-style status strip (`footer`): `left`/`right` groups, selectable `StatusItem`s, `priority` items survive the mobile breakpoint.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "VSCode-style status strip (`footer`): `left`/`right` groups, selectable `StatusItem`s, `priority` items survive the mobile breakpoint.\n\nExports: `StatusBar`, `StatusItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/status-bar\n```\n\nThe wrapper lands at `components/ui/haze/status-bar.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/status-bar.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/status-bar.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { StatusBar, StatusItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/status-bar.css';\n\nexport { StatusBar, StatusItem };\nexport type { StatusBarProps, StatusItemProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "step-timeline",
      "type": "registry:ui",
      "title": "StepTimeline / StepTimelineItem",
      "description": "Vertical timeline of agent execution steps with per-step status.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Vertical timeline of agent execution steps with per-step status.\n\nExports: `StepTimeline`, `StepTimelineItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/step-timeline\n```\n\nThe wrapper lands at `components/ui/haze/step-timeline.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/step-timeline.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/step-timeline.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { StepTimeline, StepTimelineItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/step-timeline.css';\n\nexport { StepTimeline, StepTimelineItem };\nexport type { StepTimelineProps, StepTimelineItemProps, StepStatus } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "stepper",
      "type": "registry:ui",
      "title": "Stepper / Step",
      "description": "Step indicator driven by `activeStep` (`Step` children).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Step indicator driven by `activeStep` (`Step` children).\n\nExports: `Stepper`, `Step`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/stepper\n```\n\nThe wrapper lands at `components/ui/haze/stepper.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/stepper.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/stepper.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Stepper, Step } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/stepper.css';\n\nexport { Stepper, Step };\nexport type { StepperProps, StepProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "streaming-text",
      "type": "registry:ui",
      "title": "StreamingText",
      "description": "Typewriter effect that reveals streaming text character by character, with an optional cursor.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Typewriter effect that reveals streaming text character by character, with an optional cursor.\n\nExports: `StreamingText`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/streaming-text\n```\n\nThe wrapper lands at `components/ui/haze/streaming-text.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/streaming-text.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/streaming-text.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { StreamingText } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/streaming-text.css';\n\nexport { StreamingText };\nexport type { StreamingTextProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "swipe-action",
      "type": "registry:ui",
      "title": "SwipeAction",
      "description": "Swipe-to-reveal row actions on left/right edges with a commit threshold.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Swipe-to-reveal row actions on left/right edges with a commit threshold.\n\nExports: `SwipeAction`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/swipe-action\n```\n\nThe wrapper lands at `components/ui/haze/swipe-action.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/swipe-action.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "utilities"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/swipe-action.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { SwipeAction } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/swipe-action.css';\n\nexport { SwipeAction };\nexport type { SwipeActionProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "switch",
      "type": "registry:ui",
      "title": "Switch / SwitchCore",
      "description": "Toggle switch (`role=\"switch\"`) with controllable `checked`.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Toggle switch (`role=\"switch\"`) with controllable `checked`.\n\nExports: `Switch`, `SwitchCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/switch\n```\n\nThe wrapper lands at `components/ui/haze/switch.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/switch.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/switch.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Switch, SwitchCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/switch.css';\n\nexport { Switch, SwitchCore };\nexport type { SwitchProps, SwitchCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tab-bar",
      "type": "registry:ui",
      "title": "TabBar / TabBarItem",
      "description": "Mobile bottom navigation (the ActivityRail viewport peer): 56px safe-area strip, icon+label items, badge, `onSelect`/`onReselect` semantics.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Mobile bottom navigation (the ActivityRail viewport peer): 56px safe-area strip, icon+label items, badge, `onSelect`/`onReselect` semantics.\n\nExports: `TabBar`, `TabBarItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tab-bar\n```\n\nThe wrapper lands at `components/ui/haze/tab-bar.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tab-bar.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/tab-bar.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { TabBar, TabBarItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tab-bar.css';\nimport 'haze-ui/css/badge.css';\n\nexport { TabBar, TabBarItem };\nexport type { TabBarProps, TabBarItemProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "table",
      "type": "registry:ui",
      "title": "Table / TableHead / TableBody / TableRow / TableCell",
      "description": "Styled semantic table (`striped`, `bordered`) with head/body/row/cell parts.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Styled semantic table (`striped`, `bordered`) with head/body/row/cell parts.\n\nExports: `Table`, `TableHead`, `TableBody`, `TableRow`, `TableCell`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/table\n```\n\nThe wrapper lands at `components/ui/haze/table.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/table.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/table.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Table, TableHead, TableBody, TableRow, TableCell } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/table.css';\n\nexport { Table, TableHead, TableBody, TableRow, TableCell };\nexport type { TableProps, TableHeadProps, TableBodyProps, TableRowProps, TableCellProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tabs",
      "type": "registry:ui",
      "title": "Tabs / TabList / Tab / TabPanel / SortableTabList",
      "description": "Tab panel switcher with controllable active tab (`TabList`, `Tab`, `TabPanel`).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Tab panel switcher with controllable active tab (`TabList`, `Tab`, `TabPanel`).\n\nExports: `Tabs`, `TabList`, `Tab`, `TabPanel`, `SortableTabList`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tabs\n```\n\nThe wrapper lands at `components/ui/haze/tabs.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tabs.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/tabs.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Tabs, TabList, Tab, TabPanel, SortableTabList } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tabs.css';\nimport 'haze-ui/css/menu.css';\n\nexport { Tabs, TabList, Tab, TabPanel, SortableTabList };\nexport type { TabsProps, TabsClassNames, TabListProps, TabProps, TabPanelProps, TabStatus, SortableTabListProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tag",
      "type": "registry:ui",
      "title": "Tag",
      "description": "Compact status label with variant color and optional close button.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Compact status label with variant color and optional close button.\n\nExports: `Tag`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tag\n```\n\nThe wrapper lands at `components/ui/haze/tag.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tag.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "general"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/tag.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Tag } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tag.css';\n\nexport { Tag };\nexport type { TagProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tag-group",
      "type": "registry:ui",
      "title": "TagGroup / TagGroupItem / SortableTagGroup",
      "description": "Flex-wrap container laying out Tag children with consistent gap; `SortableTagGroup` + `onReorder` for dnd-kit drag reordering.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Flex-wrap container laying out Tag children with consistent gap; `SortableTagGroup` + `onReorder` for dnd-kit drag reordering.\n\nExports: `TagGroup`, `TagGroupItem`, `SortableTagGroup`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tag-group\n```\n\nThe wrapper lands at `components/ui/haze/tag-group.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tag-group.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "general"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/tag-group.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { TagGroup, TagGroupItem, SortableTagGroup } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tag-group.css';\n\nexport { TagGroup, TagGroupItem, SortableTagGroup };\nexport type { TagGroupProps, TagGroupClassNames, TagGroupItemProps, SortableTagGroupProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tag-input",
      "type": "registry:ui",
      "title": "TagInput / TagInputCore / SortableTagInput / SortableTagInputCore",
      "description": "Enter-to-commit token input; `SortableTagInput` enables dnd-kit drag reordering (via `onChange`).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Enter-to-commit token input; `SortableTagInput` enables dnd-kit drag reordering (via `onChange`).\n\nExports: `TagInput`, `TagInputCore`, `SortableTagInput`, `SortableTagInputCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tag-input\n```\n\nThe wrapper lands at `components/ui/haze/tag-input.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tag-input.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/tag-input.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { TagInput, TagInputCore, SortableTagInput, SortableTagInputCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tag-input.css';\n\nexport { TagInput, TagInputCore, SortableTagInput, SortableTagInputCore };\nexport type { TagInputProps, TagInputCoreProps, SortableTagInputProps, SortableTagInputCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "textarea",
      "type": "registry:ui",
      "title": "Textarea / TextareaCore",
      "description": "Multiline text input.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Multiline text input.\n\nExports: `Textarea`, `TextareaCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/textarea\n```\n\nThe wrapper lands at `components/ui/haze/textarea.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/textarea.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/textarea.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Textarea, TextareaCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/textarea.css';\n\nexport { Textarea, TextareaCore };\nexport type { TextareaProps, TextareaCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "thinking-indicator",
      "type": "registry:ui",
      "title": "ThinkingIndicator",
      "description": "Animated bouncing-dots indicator that the agent is processing.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Animated bouncing-dots indicator that the agent is processing.\n\nExports: `ThinkingIndicator`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/thinking-indicator\n```\n\nThe wrapper lands at `components/ui/haze/thinking-indicator.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/thinking-indicator.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/thinking-indicator.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ThinkingIndicator } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/thinking-indicator.css';\n\nexport { ThinkingIndicator };\nexport type { ThinkingIndicatorProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "time-picker",
      "type": "registry:ui",
      "title": "TimePicker / TimePickerCore",
      "description": "Time-of-day input with controllable value.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Time-of-day input with controllable value.\n\nExports: `TimePicker`, `TimePickerCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/time-picker\n```\n\nThe wrapper lands at `components/ui/haze/time-picker.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/time-picker.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/time-picker.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { TimePicker, TimePickerCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/time-picker.css';\n\nexport { TimePicker, TimePickerCore };\nexport type { TimePickerProps, TimePickerCoreProps, TimeParts, TimePickerFormat } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "timeline",
      "type": "registry:ui",
      "title": "Timeline / TimelineItem",
      "description": "Vertical timeline container for `TimelineItem` children.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Vertical timeline container for `TimelineItem` children.\n\nExports: `Timeline`, `TimelineItem`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/timeline\n```\n\nThe wrapper lands at `components/ui/haze/timeline.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/timeline.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/timeline.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Timeline, TimelineItem } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/timeline.css';\n\nexport { Timeline, TimelineItem };\nexport type { TimelineProps, TimelineItemProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "toast",
      "type": "registry:ui",
      "title": "Toast / ToastContainer / useToast / toast",
      "description": "Toast notifications via `useToast` + `ToastContainer`, with the imperative `toast()` helper.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Toast notifications via `useToast` + `ToastContainer`, with the imperative `toast()` helper.\n\nExports: `Toast`, `ToastContainer`, `useToast`, `toast`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/toast\n```\n\nThe wrapper lands at `components/ui/haze/toast.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/toast.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "feedback"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/toast.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Toast, ToastContainer, useToast, toast } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/toast.css';\n\nexport { Toast, ToastContainer, useToast, toast };\nexport type { ToastProps, ToastContainerProps, ToastOptions, ToastVariant, ToastAction, ToastClassNames } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "toggle",
      "type": "registry:ui",
      "title": "Toggle / ToggleCore",
      "description": "Two-state pressed button (`aria-pressed`) with sizes and `square` icon mode.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Two-state pressed button (`aria-pressed`) with sizes and `square` icon mode.\n\nExports: `Toggle`, `ToggleCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/toggle\n```\n\nThe wrapper lands at `components/ui/haze/toggle.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/toggle.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/toggle.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Toggle, ToggleCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/toggle.css';\nimport 'haze-ui/css/button.css';\n\nexport { Toggle, ToggleCore };\nexport type { ToggleProps, ToggleCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "token-counter",
      "type": "registry:ui",
      "title": "TokenCounter",
      "description": "Context-window token usage counter with budget progress.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Context-window token usage counter with budget progress.\n\nExports: `TokenCounter`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/token-counter\n```\n\nThe wrapper lands at `components/ui/haze/token-counter.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/token-counter.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/token-counter.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { TokenCounter } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/token-counter.css';\n\nexport { TokenCounter };\nexport type { TokenCounterProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tokens",
      "type": "registry:lib",
      "title": "Theme tokens (lightTheme / darkTheme / spacing / typography)",
      "description": "Theme classes for haze-ui: `lightTheme`/`darkTheme` plus `spacing` and `typography`, applied to a root element to activate the `--haze-*` design tokens.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Theme classes for haze-ui: `lightTheme`/`darkTheme` plus `spacing` and `typography`, applied to a root element to activate the `--haze-*` design tokens.\n\nExports: `lightTheme`, `darkTheme`, `violetTheme`, `tealTheme`, `cyanTheme`, `orangeTheme`, `roseTheme`, `spacing`, `compact`, `typography`, `motion`, `motionPresets`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tokens\n```\n\nThe wrapper lands at `lib/haze/tokens.tsx` (via the `@lib/` target placeholder from `components.json`); the `haze-ui` npm package is installed automatically as a dependency.\n\n## Theming\n\nThis wrapper re-exports the 'lightTheme' (or 'darkTheme'), 'spacing' and\n'typography' classes from 'haze-ui' and imports 'haze-ui/css/tokens.css'.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "theme"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/tokens.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { lightTheme, darkTheme, violetTheme, tealTheme, cyanTheme, orangeTheme, roseTheme, spacing, compact, typography, motion, motionPresets } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\n\nexport { lightTheme, darkTheme, violetTheme, tealTheme, cyanTheme, orangeTheme, roseTheme, spacing, compact, typography, motion, motionPresets };\nexport type { BrandTheme, MotionPreset } from 'haze-ui';\n",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "tool-call-card",
      "type": "registry:ui",
      "title": "ToolCallCard",
      "description": "Card presenting an agent tool call — name, input, output and running state.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Card presenting an agent tool call — name, input, output and running state.\n\nExports: `ToolCallCard`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tool-call-card\n```\n\nThe wrapper lands at `components/ui/haze/tool-call-card.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tool-call-card.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "agent"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/tool-call-card.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { ToolCallCard } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tool-call-card.css';\n\nexport { ToolCallCard };\nexport type { ToolCallCardProps, ToolCallStatus } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "toolbar",
      "type": "registry:ui",
      "title": "Toolbar / ToolbarButton / ToolbarSeparator / ToolbarToggle",
      "description": "Button group with toolbar a11y (roving tabindex): `ToolbarButton`, `ToolbarSeparator`, `ToolbarToggle`.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Button group with toolbar a11y (roving tabindex): `ToolbarButton`, `ToolbarSeparator`, `ToolbarToggle`.\n\nExports: `Toolbar`, `ToolbarButton`, `ToolbarSeparator`, `ToolbarToggle`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/toolbar\n```\n\nThe wrapper lands at `components/ui/haze/toolbar.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/toolbar.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/toolbar.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Toolbar, ToolbarButton, ToolbarSeparator, ToolbarToggle } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/toolbar.css';\nimport 'haze-ui/css/button.css';\n\nexport { Toolbar, ToolbarButton, ToolbarSeparator, ToolbarToggle };\nexport type { ToolbarProps, ToolbarButtonProps, ToolbarSeparatorProps, ToolbarToggleProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tooltip",
      "type": "registry:ui",
      "title": "Tooltip",
      "description": "Hover/focus hint bubble.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Hover/focus hint bubble.\n\nExports: `Tooltip`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tooltip\n```\n\nThe wrapper lands at `components/ui/haze/tooltip.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tooltip.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "overlay"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/tooltip.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Tooltip } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tooltip.css';\n\nexport { Tooltip };\nexport type { TooltipProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tour",
      "type": "registry:ui",
      "title": "Tour",
      "description": "Guided walkthrough spotlighting `steps` behind a mask, controllable `current`.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Guided walkthrough spotlighting `steps` behind a mask, controllable `current`.\n\nExports: `Tour`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tour\n```\n\nThe wrapper lands at `components/ui/haze/tour.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tour.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/tour.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Tour } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tour.css';\n\nexport { Tour };\nexport type { TourProps, TourStep, TourCloseReason, TourPlacement } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "transfer",
      "type": "registry:ui",
      "title": "Transfer / TransferCore",
      "description": "Two-column shuttle moving options between source and target lists.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Two-column shuttle moving options between source and target lists.\n\nExports: `Transfer`, `TransferCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/transfer\n```\n\nThe wrapper lands at `components/ui/haze/transfer.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/transfer.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/transfer.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Transfer, TransferCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/transfer.css';\n\nexport { Transfer, TransferCore };\nexport type { TransferProps, TransferItem, TransferCoreProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tree",
      "type": "registry:ui",
      "title": "Tree / SortableTree",
      "description": "Hierarchical tree with expand, select, check state, async `loadData` and `searchValue` filtering.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Hierarchical tree with expand, select, check state, async `loadData` and `searchValue` filtering.\n\nExports: `Tree`, `SortableTree`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tree\n```\n\nThe wrapper lands at `components/ui/haze/tree.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tree.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/tree.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Tree, SortableTree } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tree.css';\nimport 'haze-ui/css/virtual-list.css';\n\nexport { Tree, SortableTree };\nexport type { TreeProps, TreeNodeData, SortableTreeProps, SortableTreeMoveInfo } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tree-select",
      "type": "registry:ui",
      "title": "TreeSelect",
      "description": "Tree selection in a floating panel (AntD TreeSelect counterpart): selectable rows commit one key, cascading checkboxes commit `string[]`, with panel search, lazy `loadData` and chip overflow.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Tree selection in a floating panel (AntD TreeSelect counterpart): selectable rows commit one key, cascading checkboxes commit `string[]`, with panel search, lazy `loadData` and chip overflow.\n\nExports: `TreeSelect`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/tree-select\n```\n\nThe wrapper lands at `components/ui/haze/tree-select.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/tree-select.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/tree-select.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { TreeSelect } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/tree-select.css';\nimport 'haze-ui/css/chip.css';\nimport 'haze-ui/css/tree.css';\nimport 'haze-ui/css/virtual-list.css';\n\nexport { TreeSelect };\nexport type { TreeSelectProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "typography",
      "type": "registry:ui",
      "title": "Title / Text / Paragraph",
      "description": "Text primitives: `Title`, `Text`, `Paragraph` on typography tokens.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Text primitives: `Title`, `Text`, `Paragraph` on typography tokens.\n\nExports: `Title`, `Text`, `Paragraph`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/typography\n```\n\nThe wrapper lands at `components/ui/haze/typography.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/typography.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "general"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/typography.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Title, Text, Paragraph } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/typography.css';\n\nexport { Title, Text, Paragraph };\nexport type { TitleProps, TextProps, ParagraphProps, TextEllipsis } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "upload",
      "type": "registry:ui",
      "title": "Upload / UploadCore",
      "description": "File picker with accumulating `File[]` value, `accept`/`multiple`, `directory` picking and `listType` rendering.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "File picker with accumulating `File[]` value, `accept`/`multiple`, `directory` picking and `listType` rendering.\n\nExports: `Upload`, `UploadCore`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/upload\n```\n\nThe wrapper lands at `components/ui/haze/upload.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/upload.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "form"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/upload.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Upload, UploadCore } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/upload.css';\nimport 'haze-ui/css/progress.css';\n\nexport { Upload, UploadCore };\nexport type { UploadProps, UploadCoreProps, UploadHandle, UploadStatus, UploadFile, UploadValueItem, UploadFileStatus, UploadRequest, UploadRequestOptions, UploadListItemActions, UploadListItemRender } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "virtual-list",
      "type": "registry:ui",
      "title": "VirtualList",
      "description": "Windowed list rendering only visible rows; fixed or measured dynamic heights.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Windowed list rendering only visible rows; fixed or measured dynamic heights.\n\nExports: `VirtualList`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/virtual-list\n```\n\nThe wrapper lands at `components/ui/haze/virtual-list.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/virtual-list.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/virtual-list.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { VirtualList } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/virtual-list.css';\n\nexport { VirtualList };\nexport type { VirtualListProps, VirtualListHandle, VirtualListGroup, VirtualListAlign, VirtualListOrientation } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "visually-hidden",
      "type": "registry:ui",
      "title": "VisuallyHidden",
      "description": "Screen-reader-only content primitive: clipped off every visual axis while staying in the a11y tree (the icon-only-button label soup).",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Screen-reader-only content primitive: clipped off every visual axis while staying in the a11y tree (the icon-only-button label soup).\n\nExports: `VisuallyHidden`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/visually-hidden\n```\n\nThe wrapper lands at `components/ui/haze/visually-hidden.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/visually-hidden.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "utilities"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/visually-hidden.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { VisuallyHidden } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/visually-hidden.css';\n\nexport { VisuallyHidden };\nexport type { VisuallyHiddenProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "watermark",
      "type": "registry:ui",
      "title": "Watermark",
      "description": "Tiled canvas watermark layer over children (or `fullscreen`), theme-aware color.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "Tiled canvas watermark layer over children (or `fullscreen`), theme-aware color.\n\nExports: `Watermark`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/watermark\n```\n\nThe wrapper lands at `components/ui/haze/watermark.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/watermark.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "data-display"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/watermark.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Watermark } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/watermark.css';\n\nexport { Watermark };\nexport type { WatermarkProps, WatermarkFont } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "workbench",
      "type": "registry:ui",
      "title": "Workbench",
      "description": "IDE-style application frame (`100dvh`): activityBar/sidebar/auxiliaryBar/panel/statusBar/tabBar slots with px-resizable collapsible regions and a maximizable bottom panel; below 768px sides become overlays and the tabBar takes over.",
      "author": "wmzy <https://github.com/wmzy>",
      "docs": "IDE-style application frame (`100dvh`): activityBar/sidebar/auxiliaryBar/panel/statusBar/tabBar slots with px-resizable collapsible regions and a maximizable bottom panel; below 768px sides become overlays and the tabBar takes over.\n\nExports: `Workbench`.\n\n## Install\n\n```bash\nnpx shadcn@latest add wmzy/haze-ui/workbench\n```\n\nThe wrapper lands at `components/ui/haze/workbench.tsx` (via the `@ui/` target placeholder from `components.json`) and re-exports the component(s) from the `haze-ui` npm package, which is installed automatically.\n\n## Theming\n\nhaze-ui ships JS and CSS separately — the installed wrapper already imports\n`haze-ui/css/tokens.css` and `haze-ui/css/workbench.css`, so no extra stylesheet setup is needed.\n\nActivate the design tokens by applying the classes to a root element:\n\n```jsx\nimport { lightTheme, spacing, typography } from 'haze-ui';\n\n// on <body> or any root container — darkTheme is a drop-in swap\n<div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n```\n\nDetails: https://github.com/wmzy/haze-ui/tree/main/registry",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "haze-ui"
      ],
      "files": [
        {
          "path": "components/haze/workbench.tsx",
          "content": "// haze-ui registry wrapper — generated by scripts/generate-registry.mjs.\n//\n// This is a thin wrapper around the published haze-ui npm package, not\n// vendored component source: it re-exports the component(s) from\n// 'haze-ui' and imports their stylesheet, so the package keeps updating\n// underneath. Edit this file to customize — wrap, restyle, compose; that\n// is what it is for. (haze-ui is compiled CSS-in-JS (linaria) styled\n// against --haze-* design tokens, so vendoring the source would neither\n// build nor style — forking this wrapper is the intended customization\n// path.)\n//\n// Theming (once per app): apply the token classes to a root element, e.g.\n//   import { lightTheme, spacing, typography } from 'haze-ui';\n//   <div className={`${lightTheme} ${spacing} ${typography}`}>…</div>\n// (darkTheme is a drop-in swap). haze-ui dist modules ship their own\n// 'use client' directive, so imports resolve cleanly from RSC; the\n// wrapper inherits client semantics either way.\n\nimport { Workbench } from 'haze-ui';\n\nimport 'haze-ui/css/tokens.css';\nimport 'haze-ui/css/workbench.css';\nimport 'haze-ui/css/resizable.css';\n\nexport { Workbench };\nexport type { WorkbenchProps } from 'haze-ui';\n",
          "type": "registry:ui"
        }
      ]
    }
  ]
}
