{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "zui",
  "homepage": "https://ui.zeroxsolutions.com",
  "items": [
    {
      "name": "ai-provider-card",
      "type": "registry:component",
      "title": "AI Provider Card",
      "description": "A small card for one AI provider in an overview grid, whose footer note carries a status dot and whose covering trigger selects it.",
      "categories": ["data-display"],
      "registryDependencies": ["@shadcn/card", "@shadcn/utils", "@zui/status-indicator"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/ai-provider-card.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/types/status-tone.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "chat-message",
      "type": "registry:component",
      "title": "Chat Message",
      "description": "One chat message row over upstream Message, with a line beside its leading edge while its text is still streaming.",
      "categories": ["data-display"],
      "registryDependencies": ["@shadcn/message", "@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/chat-message.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "code-block",
      "type": "registry:component",
      "title": "Code Block",
      "description": "Read-only source over a collapsible card, highlighted through the shared Shiki highlighter and falling back to plain mono while the grammar loads.",
      "categories": ["data-display"],
      "dependencies": ["@base-ui/react", "@shikijs/langs", "@zeroxsolutions/icons", "shiki"],
      "registryDependencies": [
        "@shadcn/scroll-area",
        "@shadcn/utils",
        "@zui/collapsible-card",
        "@zui/copy-button",
        "@zui/highlighted-code"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/code-block.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/hooks/use-highlighted-lines.ts",
          "type": "registry:hook"
        },
        {
          "path": "registry/bases/base-ui/lib/code-language.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/bases/base-ui/lib/code-theme.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/bases/base-ui/lib/language-options.tsx",
          "type": "registry:lib"
        },
        {
          "path": "registry/bases/base-ui/lib/mermaid-grammar.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/bases/base-ui/lib/shiki.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/bases/base-ui/types/language-option.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "data-table",
      "type": "registry:component",
      "title": "Data Table",
      "description": "The composable parts of a @tanstack/react-table view - toolbar, view, pagination and view options - reading one shared table instance from context.",
      "categories": ["data-display"],
      "dependencies": ["@tanstack/react-table", "lucide-react"],
      "registryDependencies": [
        "@shadcn/button",
        "@shadcn/dropdown-menu",
        "@shadcn/empty",
        "@shadcn/table",
        "@shadcn/utils",
        "@zui/chevron-left-icon",
        "@zui/chevron-right-icon"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/data-table.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "data-table-column-header",
      "type": "registry:component",
      "title": "Data Table Column Header",
      "description": "A @tanstack/react-table column's sort-and-hide menu, taking the column directly rather than a shared table instance.",
      "categories": ["data-display"],
      "registryDependencies": [
        "@shadcn/button",
        "@shadcn/dropdown-menu",
        "@shadcn/utils",
        "@zui/arrow-down-icon",
        "@zui/arrow-up-icon",
        "@zui/chevrons-up-down-icon",
        "@zui/eye-off-icon"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/data-table-column-header.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/hooks/use-prefers-reduced-motion.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "file-type-icon",
      "type": "registry:component",
      "title": "File Type Icon",
      "description": "A lucide icon chosen for a file's type from its extension, decorative unless paired with the visible file name or given an aria-label.",
      "categories": ["data-display"],
      "dependencies": ["lucide-react"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/file-type-icon.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/lib/file-type.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "font-preview",
      "type": "registry:component",
      "title": "Font Preview",
      "description": "A specimen of a font file at several sizes, one row per size, loaded through an @font-face scoped to the instance.",
      "categories": ["data-display"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/font-preview.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/lib/font-format.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "highlighted-code",
      "type": "registry:component",
      "title": "Highlighted Code",
      "description": "A mono code element that renders tokenized lines from the shared Shiki highlighter, falling back to its raw children until they arrive.",
      "categories": ["data-display"],
      "dependencies": ["@shikijs/langs", "shiki"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/highlighted-code.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/lib/code-theme.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/bases/base-ui/lib/mermaid-grammar.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/bases/base-ui/lib/shiki.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "image-preview",
      "type": "registry:component",
      "title": "Image Preview",
      "description": "A frame that shows an image contained within it, over a checkerboard so transparent pixels read clearly.",
      "categories": ["data-display"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/image-preview.tsx",
          "type": "registry:component"
        }
      ],
      "css": {
        "@utility bg-checkerboard": {
          "background-image": "repeating-conic-gradient(var(--muted) 0 25%, var(--background) 0 50%)",
          "background-size": "calc(var(--spacing) * 4) calc(var(--spacing) * 4)"
        }
      }
    },
    {
      "name": "markdown-view",
      "type": "registry:component",
      "title": "Markdown View",
      "description": "Renders a GitHub-Flavored Markdown string styled to the design tokens, with tables as the upstream Table and fenced code as a CodeBlock.",
      "categories": ["data-display"],
      "dependencies": ["react-markdown", "remark-gfm"],
      "registryDependencies": [
        "@shadcn/checkbox",
        "@shadcn/table",
        "@shadcn/utils",
        "@zui/code-block",
        "@zui/collapsible-card"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/markdown-view.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/lib/code-language.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "model-info-card",
      "type": "registry:component",
      "title": "Model Info Card",
      "description": "The detail panel for one model: an identity header composed from Item parts over titled sections.",
      "categories": ["data-display"],
      "dependencies": ["class-variance-authority"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/model-info-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chat-suggestion-item",
      "type": "registry:component",
      "title": "Chat Suggestion Item",
      "description": "One starter prompt in an empty conversation, an upstream Item rendered as a button that hands its prompt to onSelectPrompt when picked.",
      "categories": ["data-entry"],
      "registryDependencies": ["@shadcn/item", "@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-entry/chat-suggestion-item.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "code-input",
      "type": "registry:component",
      "title": "Code Input",
      "description": "A six-character one-time code over upstream InputOTP, in one group of six or two of three, whose slots fill the container's width.",
      "categories": ["data-entry"],
      "dependencies": ["input-otp"],
      "registryDependencies": ["@shadcn/input-otp", "@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-entry/code-input.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "emoji-appearance-toggle-group",
      "type": "registry:component",
      "title": "Emoji Appearance Toggle Group",
      "description": "A single-select row of swatches for choosing the Fluent Emoji artwork style, each previewing the same sample emoji in its own style.",
      "categories": ["data-entry"],
      "dependencies": ["@zeroxsolutions/fluent-emoji"],
      "registryDependencies": ["@shadcn/toggle-group", "@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-entry/emoji-appearance-toggle-group.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "emoji-picker",
      "type": "registry:component",
      "title": "Emoji Picker",
      "description": "A searchable, categorized emoji grid with an optional frequent row and a category nav, windowed so opening the catalog renders only what is in view.",
      "categories": ["data-entry"],
      "dependencies": ["@zeroxsolutions/fluent-emoji", "lucide-react"],
      "registryDependencies": [
        "@shadcn/button",
        "@shadcn/input-group",
        "@shadcn/scroll-area",
        "@shadcn/toggle-group",
        "@shadcn/utils",
        "@zui/clock-icon",
        "@zui/coffee-icon",
        "@zui/leaf-icon",
        "@zui/search-icon",
        "@zui/smile-icon"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-entry/emoji-picker.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "language-combobox",
      "type": "registry:component",
      "title": "Language Combobox",
      "description": "A searchable language picker over upstream Combobox that maps a BCP-47 code or code-language id to its option and reports the value the consumer picks.",
      "categories": ["data-entry"],
      "dependencies": ["@base-ui/react", "@zeroxsolutions/icons"],
      "registryDependencies": ["@shadcn/combobox"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-entry/language-combobox.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/hooks/use-language-options.ts",
          "type": "registry:hook"
        },
        {
          "path": "registry/bases/base-ui/lib/language-options.tsx",
          "type": "registry:lib"
        },
        {
          "path": "registry/bases/base-ui/types/language-option.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "language-toggle-group",
      "type": "registry:component",
      "title": "Language Toggle Group",
      "description": "Every language shown inline as a single-select toggle group for a small fixed set, which never deselects so a language is always chosen.",
      "categories": ["data-entry"],
      "registryDependencies": ["@shadcn/toggle-group"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-entry/language-toggle-group.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "number-field",
      "type": "registry:component",
      "title": "Number Field",
      "description": "A compact numeric field for a property inspector that parses arithmetic expressions, clamps to min and max, and steps on the arrow keys.",
      "categories": ["data-entry"],
      "registryDependencies": ["@shadcn/input-group", "@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-entry/number-field.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/lib/expr-eval.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "password-input",
      "type": "registry:component",
      "title": "Password Input",
      "description": "A password field over upstream InputGroup whose composed toggle shows or hides the password.",
      "categories": ["data-entry"],
      "registryDependencies": ["@shadcn/input-group", "@shadcn/utils", "@zui/eye-icon", "@zui/eye-off-icon"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-entry/password-input.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "resize-handle",
      "type": "registry:component",
      "title": "Resize Handle",
      "description": "A vertical resize grip for a panel outside any ResizablePanelGroup that only starts dragging once the pointer crosses a small movement threshold.",
      "categories": ["data-entry"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-entry/resize-handle.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/lib/resize-drag.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "tag-input",
      "type": "registry:component",
      "title": "Tag Input",
      "description": "A tag editor with removable chips above an input that commits a new tag on Enter, comma, or blur.",
      "categories": ["data-entry"],
      "registryDependencies": ["@shadcn/badge", "@shadcn/button", "@shadcn/input", "@shadcn/utils", "@zui/x-icon"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-entry/tag-input.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "tree-item",
      "type": "registry:component",
      "title": "Tree Item",
      "description": "One row of a hierarchy tree, drawn as the file tree's rows, with a depth indent, a disclosure trigger, a clickable label and an inline rename input.",
      "categories": ["data-display"],
      "registryDependencies": ["@shadcn/button", "@shadcn/input", "@shadcn/utils", "@zui/chevron-right-icon"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/tree-item.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/hooks/use-prefers-reduced-motion.ts",
          "type": "registry:hook"
        },
        {
          "path": "registry/bases/base-ui/lib/ime.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "copy-button",
      "type": "registry:component",
      "title": "Copy Button",
      "description": "An icon button that copies its value to the clipboard, showing a check and carrying data-copied until its timeout resets it.",
      "categories": ["feedback"],
      "registryDependencies": ["@shadcn/button", "@zui/check-icon", "@zui/copy-icon"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/feedback/copy-button.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "permission-card",
      "type": "registry:component",
      "title": "Permission Card",
      "description": "An inline, non-modal AI-consent request that stays in scrollback after it resolves, switching between its decision and resolved parts as the host settles its status.",
      "categories": ["feedback"],
      "dependencies": ["lucide-react"],
      "registryDependencies": ["@shadcn/badge", "@shadcn/card", "@shadcn/utils", "@zui/circle-check-icon"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/feedback/permission-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "password-strength",
      "type": "registry:component",
      "title": "Password Strength",
      "description": "How strong a password is, as a three-step meter announced on change, and which of its requirements it meets, in a small card.",
      "categories": ["feedback"],
      "registryDependencies": [
        "@shadcn/card",
        "@shadcn/progress",
        "@shadcn/utils",
        "@zui/circle-check-icon",
        "@zui/circle-icon"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/components/feedback/password-strength.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "status-indicator",
      "type": "registry:component",
      "title": "Status Indicator",
      "description": "A small decorative dot colored by a semantic status tone (online, offline, busy or idle), which can pulse for a state still in progress.",
      "categories": ["feedback"],
      "registryDependencies": ["@shadcn/utils"],
      "cssVars": {
        "theme": {
          "color-success": "var(--success)",
          "color-warning": "var(--warning)"
        },
        "light": {
          "success": "oklch(0.627 0.19 149)",
          "warning": "oklch(0.681 0.162 75.834)"
        },
        "dark": {
          "success": "oklch(0.723 0.19 149)",
          "warning": "oklch(0.79 0.155 80)"
        }
      },
      "files": [
        {
          "path": "registry/bases/base-ui/components/feedback/status-indicator.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/types/status-tone.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "unsaved-changes-toolbar",
      "type": "registry:component",
      "title": "Unsaved Changes Toolbar",
      "description": "A toolbar floating at the top or bottom of the viewport while a form has unsaved changes, with a polite message and Reset and Save actions that wait while saving.",
      "categories": ["feedback"],
      "registryDependencies": ["@shadcn/button", "@shadcn/spinner", "@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/feedback/unsaved-changes-toolbar.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "unsaved-indicator",
      "type": "registry:component",
      "title": "Unsaved Indicator",
      "description": "The unsaved-changes dot an editor shows on a tab, announced as an image named Unsaved changes.",
      "categories": ["feedback"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/feedback/unsaved-indicator.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "icon-media",
      "type": "registry:component",
      "title": "Icon Media",
      "description": "A small square that holds one glyph, tinted through the caller's className.",
      "categories": ["general"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/general/icon-media.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "icon-label",
      "type": "registry:component",
      "title": "Icon Label",
      "description": "A label whose icon stands in for a field's text in a dense panel, tied to its control through htmlFor and sizing an unclassed child svg to a compact glyph.",
      "categories": ["general"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/general/icon-label.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "avatar-picker",
      "type": "registry:component",
      "title": "Avatar Picker",
      "description": "A Popover-based avatar editor whose emoji, upload and color panes edit one avatar value.",
      "categories": ["data-entry"],
      "dependencies": ["lucide-react"],
      "registryDependencies": [
        "@shadcn/button",
        "@shadcn/empty",
        "@shadcn/field",
        "@shadcn/input",
        "@shadcn/popover",
        "@shadcn/tabs",
        "@shadcn/utils",
        "@zui/emoji-picker"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-entry/avatar-picker.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "center",
      "type": "registry:component",
      "title": "Center",
      "description": "A box that centers its children on both axes, in block or inline flow, with its element swappable through render.",
      "categories": ["layout"],
      "dependencies": ["@base-ui/react", "class-variance-authority"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/layout/center.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "collapsible-card",
      "type": "registry:component",
      "title": "Collapsible Card",
      "description": "A collapsible card with a header and body, open by default, on a card, muted or plain surface.",
      "categories": ["layout"],
      "dependencies": ["class-variance-authority"],
      "registryDependencies": ["@shadcn/button", "@shadcn/collapsible", "@shadcn/utils", "@zui/chevron-down-icon"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/layout/collapsible-card.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/hooks/use-prefers-reduced-motion.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "file-tree",
      "type": "registry:component",
      "title": "File Tree",
      "description": "An accessible file tree that drives keyboard navigation and owns selection and folder expansion, controlled or uncontrolled.",
      "categories": ["data-display"],
      "registryDependencies": ["@shadcn/utils", "@zui/chevron-right-icon"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-display/file-tree.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/hooks/use-controllable-state.ts",
          "type": "registry:hook"
        },
        {
          "path": "registry/bases/base-ui/hooks/use-prefers-reduced-motion.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "floating-toolbar",
      "type": "registry:component",
      "title": "Floating Toolbar",
      "description": "A floating, blurred card-color toolbar shell, a toolbar landmark around the tools the caller composes.",
      "categories": ["layout"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/layout/floating-toolbar.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "frontmatter-form",
      "type": "registry:component",
      "title": "Frontmatter Form",
      "description": "A frontmatter editor whose root holds the document and field setters for the consumer's composed fields.",
      "categories": ["data-entry"],
      "registryDependencies": ["@shadcn/field", "@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/data-entry/frontmatter-form.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "model-list",
      "type": "registry:component",
      "title": "Model List",
      "description": "The frame for a model list section: a header over a scrolling content area that dims any item marked unavailable.",
      "categories": ["layout"],
      "dependencies": ["lucide-react"],
      "registryDependencies": [
        "@shadcn/button",
        "@shadcn/item",
        "@shadcn/scroll-area",
        "@shadcn/skeleton",
        "@shadcn/utils"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/components/layout/model-list.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "page-container",
      "type": "registry:component",
      "title": "Page Container",
      "description": "The centered, max-width content column of a full-width surface, sized from a named max-width scale.",
      "categories": ["layout"],
      "dependencies": ["class-variance-authority"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/layout/page-container.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "panel-field-group",
      "type": "registry:component",
      "title": "Panel Field Group",
      "description": "The tight grid for paired and triplet inputs in a property panel, with any number of columns.",
      "categories": ["layout"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/layout/panel-field-group.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "panel-header",
      "type": "registry:component",
      "title": "Panel Header",
      "description": "The top strip of a side panel: one or more rows of a title and trailing actions over a bottom border.",
      "categories": ["layout"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/layout/panel-header.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "panel-row",
      "type": "registry:component",
      "title": "Panel Row",
      "description": "One row of a property section, its fields beside a trailing action column that keeps every row's right edge aligned.",
      "categories": ["layout"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/layout/panel-row.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "reasoning-collapsible",
      "type": "registry:component",
      "title": "Reasoning Collapsible",
      "description": "A thinking disclosure that opens itself while a reasoning stream is live and closes shortly after the stream ends.",
      "categories": ["layout"],
      "registryDependencies": [
        "@shadcn/button",
        "@shadcn/collapsible",
        "@shadcn/utils",
        "@zui/brain-icon",
        "@zui/chevron-down-icon"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/components/layout/reasoning-collapsible.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/hooks/use-prefers-reduced-motion.ts",
          "type": "registry:hook"
        },
        {
          "path": "registry/bases/base-ui/hooks/use-reasoning-collapsible.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "tool-call-card",
      "type": "registry:component",
      "title": "Tool Call Card",
      "description": "One tool invocation in a chat transcript: a trigger row over collapsible sections, whose status badge follows the call's lifecycle state.",
      "categories": ["feedback"],
      "dependencies": ["lucide-react"],
      "registryDependencies": [
        "@shadcn/badge",
        "@shadcn/button",
        "@shadcn/card",
        "@shadcn/collapsible",
        "@shadcn/utils",
        "@zui/chevron-down-icon",
        "@zui/circle-check-icon",
        "@zui/clock-icon"
      ],
      "cssVars": {
        "theme": {
          "color-success": "var(--success)"
        },
        "light": {
          "success": "oklch(0.627 0.19 149)"
        },
        "dark": {
          "success": "oklch(0.723 0.19 149)"
        }
      },
      "files": [
        {
          "path": "registry/bases/base-ui/components/feedback/tool-call-card.tsx",
          "type": "registry:component"
        },
        {
          "path": "registry/bases/base-ui/hooks/use-prefers-reduced-motion.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "command-menu",
      "type": "registry:component",
      "title": "Command Menu",
      "description": "A command palette for jumping to a target: a controlled CommandDialog holding a Command that reports the chosen item's value and closes on select.",
      "categories": ["navigation"],
      "registryDependencies": ["@shadcn/command"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/navigation/command-menu.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "editor-tab",
      "type": "registry:component",
      "title": "Editor Tab",
      "description": "One tab in an editor's tab strip, whose close button shows the unsaved dot until the tab's hover, focus or active state reveals its X.",
      "categories": ["navigation"],
      "registryDependencies": [
        "@shadcn/button",
        "@shadcn/item",
        "@shadcn/utils",
        "@zui/unsaved-indicator",
        "@zui/x-icon"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/components/navigation/editor-tab.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "tab-bar",
      "type": "registry:component",
      "title": "Tab Bar",
      "description": "A bar of top-level destinations fixed to one edge of the viewport, translucent or solid, attached or floating, whose labels can show always, only for the active item, or never.",
      "categories": ["navigation"],
      "dependencies": ["@base-ui/react", "class-variance-authority"],
      "registryDependencies": ["@shadcn/badge", "@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/components/navigation/tab-bar.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "ai-provider-picker",
      "type": "registry:block",
      "title": "AI Provider Picker",
      "description": "A responsive grid of AI provider cards, from the host's entries or a sample, that calls back with the provider key a card selects.",
      "categories": ["blocks"],
      "dependencies": ["@zeroxsolutions/icons"],
      "registryDependencies": ["@shadcn/card", "@shadcn/utils", "@zui/ai-provider-card"],
      "files": [
        {
          "path": "registry/bases/base-ui/blocks/ai-provider-picker.tsx",
          "type": "registry:block"
        }
      ]
    },
    {
      "name": "ai-provider-card-demo",
      "type": "registry:example",
      "title": "AI Provider Card Demo",
      "description": "Two AiProviderCard tiles - one online, one idle - each toggled independently and reporting the last selection.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/card", "@shadcn/switch", "@zui/ai-provider-card"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/ai-provider-card-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "chat-message-demo",
      "type": "registry:example",
      "title": "Chat Message Demo",
      "description": "A user bubble and the assistant's reply, still streaming, each a ChatMessage row.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/bubble", "@shadcn/message", "@zui/chat-message"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/chat-message-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "code-block-demo",
      "type": "registry:example",
      "title": "Code Block Demo",
      "description": "A collapsible TypeScript block with its language, a copy action and a collapse toggle.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/code-block", "@zui/collapsible-card"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/code-block-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "data-table-demo",
      "type": "registry:example",
      "title": "Data Table Demo",
      "description": "A small, paginated file table with sortable columns and a view-options menu.",
      "categories": ["examples"],
      "dependencies": ["@tanstack/react-table"],
      "registryDependencies": ["@shadcn/dropdown-menu", "@zui/data-table-column-header", "@zui/data-table"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/data-table-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "data-table-column-header-demo",
      "type": "registry:example",
      "title": "Data Table Column Header Demo",
      "description": "A table header row whose Name column opens a sort-and-hide menu from DataTableColumnHeader.",
      "categories": ["examples"],
      "dependencies": ["@tanstack/react-table"],
      "registryDependencies": ["@shadcn/dropdown-menu", "@shadcn/table", "@zui/data-table-column-header"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/data-table-column-header-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "file-type-icon-demo",
      "type": "registry:example",
      "title": "File Type Icon Demo",
      "description": "A row of file names, each with the icon FileTypeIcon resolves for its extension.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/file-type-icon"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/file-type-icon-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "font-preview-demo",
      "type": "registry:example",
      "title": "Font Preview Demo",
      "description": "A specimen of a variable sans-serif at its four default sizes.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/font-preview"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/font-preview-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "highlighted-code-demo",
      "type": "registry:example",
      "title": "Highlighted Code Demo",
      "description": "Pre-tokenized lines styled with the same tokens the shared Shiki theme paints with.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/highlighted-code"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/highlighted-code-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "image-preview-demo",
      "type": "registry:example",
      "title": "Image Preview Demo",
      "description": "A small sample graphic over the transparency checkerboard, contained within its sized wrapper.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/image-preview"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/image-preview-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "markdown-view-demo",
      "type": "registry:example",
      "title": "Markdown View Demo",
      "description": "A short GFM document: a heading, bold text, a link, a task list and a table.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/markdown-view"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/markdown-view-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "model-info-card-demo",
      "type": "registry:example",
      "title": "Model Info Card Demo",
      "description": "The identity header for one model over two detail sections: context length and pricing.",
      "categories": ["examples"],
      "dependencies": ["@zeroxsolutions/icons"],
      "registryDependencies": ["@shadcn/item", "@zui/model-info-card"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/model-info-card-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "chat-suggestion-item-demo",
      "type": "registry:example",
      "title": "Chat Suggestion Item Demo",
      "description": "An empty conversation with two starter prompts, each a ChatSuggestionItem.",
      "categories": ["examples"],
      "dependencies": ["lucide-react"],
      "registryDependencies": [
        "@shadcn/empty",
        "@shadcn/item",
        "@zui/chat-suggestion-item",
        "@zui/file-text-icon",
        "@zui/sparkles-icon"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/chat-suggestion-item-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "code-input-demo",
      "type": "registry:example",
      "title": "Code Input Demo",
      "description": "A labelled six-digit sign-in code in two groups of three, above a verify button that spans the form.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/button", "@shadcn/field", "@zui/code-input"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/code-input-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "emoji-appearance-toggle-group-demo",
      "type": "registry:example",
      "title": "Emoji Appearance Toggle Group Demo",
      "description": "Every Fluent artwork style previewed and picked from one EmojiAppearanceToggleGroup row.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/emoji-appearance-toggle-group"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/emoji-appearance-toggle-group-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "emoji-picker-demo",
      "type": "registry:example",
      "title": "Emoji Picker Demo",
      "description": "The EmojiPicker composed from its parts over a small frequent row, with an empty state for a search that matches nothing.",
      "categories": ["examples"],
      "dependencies": ["lucide-react"],
      "registryDependencies": ["@shadcn/empty", "@zui/emoji-picker"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/emoji-picker-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "language-combobox-demo",
      "type": "registry:example",
      "title": "Language Combobox Demo",
      "description": "The built-in code-language options, picked from a LanguageCombobox trigger showing the current one.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/button", "@shadcn/combobox", "@zui/language-combobox"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/language-combobox-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "language-toggle-group-demo",
      "type": "registry:example",
      "title": "Language Toggle Group Demo",
      "description": "A fixed three-language LanguageToggleGroup, always one language pressed.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/toggle-group", "@zui/language-toggle-group"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/language-toggle-group-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "number-field-demo",
      "type": "registry:example",
      "title": "Number Field Demo",
      "description": "A NumberField for a width, with unit addons, its arithmetic input clamped and stepped.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/input-group", "@zui/number-field"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/number-field-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "number-field-mixed",
      "type": "registry:example",
      "title": "Number Field Mixed",
      "description": "A NumberField over three selected shapes with differing widths, showing the mixed state until one width is set for all.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/input-group", "@zui/number-field"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/number-field-mixed.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "password-input-demo",
      "type": "registry:example",
      "title": "Password Input Demo",
      "description": "A labelled PasswordInput with its show or hide toggle.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/field", "@shadcn/input-group", "@zui/password-input"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/password-input-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "resize-handle-demo",
      "type": "registry:example",
      "title": "Resize Handle Demo",
      "description": "A panel floating over a canvas, resized by dragging its ResizeHandle or collapsed by a double-click.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/resize-handle"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/resize-handle-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "tag-input-demo",
      "type": "registry:example",
      "title": "Tag Input Demo",
      "description": "A TagInput over two starting tags.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/tag-input"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/tag-input-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "tree-item-demo",
      "type": "registry:example",
      "title": "Tree Item Demo",
      "description": "A folder over two files, opened and closed by its TreeItemTrigger, each a TreeItem row.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/tree-item"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/tree-item-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "copy-button-demo",
      "type": "registry:example",
      "title": "Copy Button Demo",
      "description": "An install command with its own copy button, announcing the copy inline.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/copy-button"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/copy-button-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "permission-card-demo",
      "type": "registry:example",
      "title": "Permission Card Demo",
      "description": "A deploy-approval request the visitor can deny or allow, once or for the session.",
      "categories": ["examples"],
      "registryDependencies": [
        "@shadcn/button",
        "@shadcn/button-group",
        "@shadcn/card",
        "@shadcn/dropdown-menu",
        "@zui/chevron-down-icon",
        "@zui/permission-card"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/permission-card-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "password-strength-demo",
      "type": "registry:example",
      "title": "Password Strength Demo",
      "description": "A new password field whose strength and requirements follow what is typed, checked by length and against the person's name and email.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/field", "@shadcn/input-group", "@zui/password-input", "@zui/password-strength"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/password-strength-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "status-indicator-demo",
      "type": "registry:example",
      "title": "Status Indicator Demo",
      "description": "Every status tone beside its label, with a pulsing connecting state.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/status-indicator"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/status-indicator-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "unsaved-changes-toolbar-demo",
      "type": "registry:example",
      "title": "Unsaved Changes Toolbar Demo",
      "description": "A display name whose toolbar shows while it differs from the saved one, fails its first save, and asks for attention when the person tries to leave.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/button", "@shadcn/field", "@shadcn/input", "@zui/unsaved-changes-toolbar"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/unsaved-changes-toolbar-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "unsaved-indicator-demo",
      "type": "registry:example",
      "title": "Unsaved Indicator Demo",
      "description": "The unsaved dot beside a tab label with pending edits.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/unsaved-indicator"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/unsaved-indicator-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "icon-media-demo",
      "type": "registry:example",
      "title": "Icon Media Demo",
      "description": "A chat-ability glyph named by its own caption, beside two named only through a composed tooltip.",
      "categories": ["examples"],
      "registryDependencies": [
        "@shadcn/tooltip",
        "@zui/eye-icon",
        "@zui/icon-media",
        "@zui/message-square-icon",
        "@zui/wrench-icon"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/icon-media-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "icon-label-demo",
      "type": "registry:example",
      "title": "Icon Label Demo",
      "description": "A universally-read field icon beside two others whose meaning is revealed through a composed tooltip.",
      "categories": ["examples"],
      "dependencies": ["lucide-react"],
      "registryDependencies": [
        "@shadcn/input",
        "@shadcn/tooltip",
        "@zui/icon-label",
        "@zui/rotate-cw-icon",
        "@zui/search-icon"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/icon-label-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "avatar-picker-demo",
      "type": "registry:example",
      "title": "Avatar Picker Demo",
      "description": "A color-tinted avatar that opens an emoji, upload and color editor over AvatarPicker.",
      "categories": ["examples"],
      "dependencies": ["@zeroxsolutions/fluent-emoji", "lucide-react"],
      "registryDependencies": [
        "@shadcn/avatar",
        "@shadcn/empty",
        "@shadcn/spinner",
        "@shadcn/tabs",
        "@zui/avatar-picker",
        "@zui/emoji-picker",
        "@zui/palette-icon",
        "@zui/smile-icon",
        "@zui/upload-icon"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/avatar-picker-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "center-demo",
      "type": "registry:example",
      "title": "Center Demo",
      "description": "A dashed frame with its content centered on both axes.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/center"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/center-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "collapsible-card-demo",
      "type": "registry:example",
      "title": "Collapsible Card Demo",
      "description": "A bordered card whose body collapses behind its own trigger.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/collapsible-card"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/collapsible-card-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "collapsible-card-variants",
      "type": "registry:example",
      "title": "Collapsible Card Variants",
      "description": "The card's four surfaces stacked: default, muted, plain and flush.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/collapsible-card"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/collapsible-card-variants.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "file-tree-demo",
      "type": "registry:example",
      "title": "File Tree Demo",
      "description": "A small file tree with one folder expanded and a leaf selected by default.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/file-tree"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/file-tree-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "floating-toolbar-demo",
      "type": "registry:example",
      "title": "Floating Toolbar Demo",
      "description": "A row of formatting buttons in the toolbar's own shell.",
      "categories": ["examples"],
      "registryDependencies": [
        "@shadcn/button",
        "@zui/bold-icon",
        "@zui/floating-toolbar",
        "@zui/italic-icon",
        "@zui/underline-icon"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/floating-toolbar-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "frontmatter-form-demo",
      "type": "registry:example",
      "title": "Frontmatter Form Demo",
      "description": "A skill's frontmatter, a name and its description, each bound through FrontmatterFormFieldControl.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/field", "@shadcn/input", "@zui/frontmatter-form"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/frontmatter-form-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "frontmatter-form-invalid",
      "type": "registry:example",
      "title": "Frontmatter Form Invalid",
      "description": "A frontmatter form with its name field left blank, showing the invalid state.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/field", "@shadcn/input", "@zui/frontmatter-form"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/frontmatter-form-invalid.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "model-list-demo",
      "type": "registry:example",
      "title": "Model List Demo",
      "description": "A model list of three providers, one dimmed as unavailable, each toggleable and removable.",
      "categories": ["examples"],
      "dependencies": ["@zeroxsolutions/icons"],
      "registryDependencies": ["@shadcn/item", "@shadcn/switch", "@zui/model-list"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/model-list-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "page-container-demo",
      "type": "registry:example",
      "title": "Page Container Demo",
      "description": "A small, centered content column inside a wider surface.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/card", "@zui/page-container"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/page-container-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "panel-field-group-demo",
      "type": "registry:example",
      "title": "Panel Field Group Demo",
      "description": "A three-column PanelFieldGroup for a position's X, Y and Z.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/field", "@shadcn/input", "@zui/panel-field-group"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/panel-field-group-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "panel-header-demo",
      "type": "registry:example",
      "title": "Panel Header Demo",
      "description": "A single-row panel header: a title beside a trailing collapse action.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/button", "@zui/panel-header", "@zui/panel-left-close-icon"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/panel-header-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "panel-row-demo",
      "type": "registry:example",
      "title": "Panel Row Demo",
      "description": "A PanelRow holding a two-column PanelFieldGroup of inputs beside a lock action.",
      "categories": ["examples"],
      "registryDependencies": [
        "@shadcn/button",
        "@shadcn/field",
        "@shadcn/input",
        "@zui/lock-icon",
        "@zui/panel-field-group",
        "@zui/panel-row"
      ],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/panel-row-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "reasoning-collapsible-demo",
      "type": "registry:example",
      "title": "Reasoning Collapsible Demo",
      "description": "A reasoning disclosure the caller starts and stops streaming, its body a rendered Markdown note.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/button", "@zui/markdown-view", "@zui/reasoning-collapsible"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/reasoning-collapsible-demo.tsx",
          "type": "registry:example"
        },
        {
          "path": "registry/bases/base-ui/hooks/use-reasoning-collapsible.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "tool-call-card-demo",
      "type": "registry:example",
      "title": "Tool Call Card Demo",
      "description": "A completed search call, its parameters shown under the trigger.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/code-block", "@zui/search-icon", "@zui/tool-call-card"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/tool-call-card-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "tool-call-card-error",
      "type": "registry:example",
      "title": "Tool Call Card Error",
      "description": "A failed search call, its error shown under the trigger.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/tool-call-card"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/tool-call-card-error.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "command-menu-demo",
      "type": "registry:example",
      "title": "Command Menu Demo",
      "description": "A command palette, opened from its button or by Ctrl/Cmd+K, that reports the chosen file.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/button", "@shadcn/command", "@shadcn/kbd", "@zui/command-menu"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/command-menu-demo.tsx",
          "type": "registry:example"
        },
        {
          "path": "registry/bases/base-ui/hooks/use-command-shortcut.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "editor-tab-demo",
      "type": "registry:example",
      "title": "Editor Tab Demo",
      "description": "A tab strip: the active tab, and one with unsaved changes.",
      "categories": ["examples"],
      "registryDependencies": ["@shadcn/item", "@zui/editor-tab"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/editor-tab-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "tab-bar-demo",
      "type": "registry:example",
      "title": "Tab Bar Demo",
      "description": "A phone-sized screen with five destinations at the bottom, the active label shown and an unread count on Inbox.",
      "categories": ["examples"],
      "dependencies": ["lucide-react"],
      "registryDependencies": ["@zui/tab-bar"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/tab-bar-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "tab-bar-icons-only",
      "type": "registry:example",
      "title": "Tab Bar Icons Only",
      "description": "A tab bar with labels set to none: only the icons show, and each hidden label still names its link.",
      "categories": ["examples"],
      "dependencies": ["lucide-react"],
      "registryDependencies": ["@zui/tab-bar"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/tab-bar-icons-only.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "ai-provider-picker-demo",
      "type": "registry:example",
      "title": "AI Provider Picker Demo",
      "description": "The AiProviderPicker block over its sample providers.",
      "categories": ["examples"],
      "registryDependencies": ["@zui/ai-provider-picker"],
      "files": [
        {
          "path": "registry/bases/base-ui/examples/ai-provider-picker-demo.tsx",
          "type": "registry:example"
        }
      ]
    },
    {
      "name": "arrow-down-icon",
      "type": "registry:ui",
      "title": "Arrow Down Icon",
      "description": "An animated arrow-down icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/arrow-down-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/arrow-down-icon.tsx"
        }
      ]
    },
    {
      "name": "arrow-left-icon",
      "type": "registry:ui",
      "title": "Arrow Left Icon",
      "description": "An animated arrow-left icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/arrow-left-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/arrow-left-icon.tsx"
        }
      ]
    },
    {
      "name": "arrow-right-icon",
      "type": "registry:ui",
      "title": "Arrow Right Icon",
      "description": "An animated arrow-right icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/arrow-right-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/arrow-right-icon.tsx"
        }
      ]
    },
    {
      "name": "arrow-up-icon",
      "type": "registry:ui",
      "title": "Arrow Up Icon",
      "description": "An animated arrow-up icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/arrow-up-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/arrow-up-icon.tsx"
        }
      ]
    },
    {
      "name": "bold-icon",
      "type": "registry:ui",
      "title": "Bold Icon",
      "description": "An animated bold icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/bold-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/bold-icon.tsx"
        }
      ]
    },
    {
      "name": "brain-icon",
      "type": "registry:ui",
      "title": "Brain Icon",
      "description": "An animated brain icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/brain-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/brain-icon.tsx"
        }
      ]
    },
    {
      "name": "check-icon",
      "type": "registry:ui",
      "title": "Check Icon",
      "description": "An animated check icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/check-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/check-icon.tsx"
        }
      ]
    },
    {
      "name": "chevron-down-icon",
      "type": "registry:ui",
      "title": "Chevron Down Icon",
      "description": "An animated chevron-down icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/chevron-down-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/chevron-down-icon.tsx"
        }
      ]
    },
    {
      "name": "chevron-left-icon",
      "type": "registry:ui",
      "title": "Chevron Left Icon",
      "description": "An animated chevron-left icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/chevron-left-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/chevron-left-icon.tsx"
        }
      ]
    },
    {
      "name": "chevron-right-icon",
      "type": "registry:ui",
      "title": "Chevron Right Icon",
      "description": "An animated chevron-right icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/chevron-right-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/chevron-right-icon.tsx"
        }
      ]
    },
    {
      "name": "chevrons-up-down-icon",
      "type": "registry:ui",
      "title": "Chevrons Up Down Icon",
      "description": "An animated chevrons-up-down icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/chevrons-up-down-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/chevrons-up-down-icon.tsx"
        }
      ]
    },
    {
      "name": "circle-check-icon",
      "type": "registry:ui",
      "title": "Circle Check Icon",
      "description": "An animated circle-check icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/circle-check-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/circle-check-icon.tsx"
        }
      ]
    },
    {
      "name": "circle-icon",
      "type": "registry:ui",
      "title": "Circle Icon",
      "description": "An animated circle icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/circle-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/circle-icon.tsx"
        }
      ]
    },
    {
      "name": "clock-icon",
      "type": "registry:ui",
      "title": "Clock Icon",
      "description": "An animated clock icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/clock-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/clock-icon.tsx"
        }
      ]
    },
    {
      "name": "coffee-icon",
      "type": "registry:ui",
      "title": "Coffee Icon",
      "description": "An animated coffee icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/coffee-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/coffee-icon.tsx"
        }
      ]
    },
    {
      "name": "copy-icon",
      "type": "registry:ui",
      "title": "Copy Icon",
      "description": "An animated copy icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/copy-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/copy-icon.tsx"
        }
      ]
    },
    {
      "name": "corner-down-left-icon",
      "type": "registry:ui",
      "title": "Corner Down Left Icon",
      "description": "An animated corner-down-left icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/corner-down-left-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/corner-down-left-icon.tsx"
        }
      ]
    },
    {
      "name": "eye-icon",
      "type": "registry:ui",
      "title": "Eye Icon",
      "description": "An animated eye icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/eye-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/eye-icon.tsx"
        }
      ]
    },
    {
      "name": "eye-off-icon",
      "type": "registry:ui",
      "title": "Eye Off Icon",
      "description": "An animated eye-off icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/eye-off-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/eye-off-icon.tsx"
        }
      ]
    },
    {
      "name": "file-text-icon",
      "type": "registry:ui",
      "title": "File Text Icon",
      "description": "An animated file-text icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/file-text-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/file-text-icon.tsx"
        }
      ]
    },
    {
      "name": "italic-icon",
      "type": "registry:ui",
      "title": "Italic Icon",
      "description": "An animated italic icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/italic-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/italic-icon.tsx"
        }
      ]
    },
    {
      "name": "leaf-icon",
      "type": "registry:ui",
      "title": "Leaf Icon",
      "description": "An animated leaf icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/leaf-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/leaf-icon.tsx"
        }
      ]
    },
    {
      "name": "loader-circle-icon",
      "type": "registry:ui",
      "title": "Loader Circle Icon",
      "description": "An animated loader-circle icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/loader-circle-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/loader-circle-icon.tsx"
        }
      ]
    },
    {
      "name": "lock-icon",
      "type": "registry:ui",
      "title": "Lock Icon",
      "description": "An animated lock icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/lock-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/lock-icon.tsx"
        }
      ]
    },
    {
      "name": "menu-icon",
      "type": "registry:ui",
      "title": "Menu Icon",
      "description": "An animated menu icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/menu-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/menu-icon.tsx"
        }
      ]
    },
    {
      "name": "message-square-icon",
      "type": "registry:ui",
      "title": "Message Square Icon",
      "description": "An animated message-square icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/message-square-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/message-square-icon.tsx"
        }
      ]
    },
    {
      "name": "palette-icon",
      "type": "registry:ui",
      "title": "Palette Icon",
      "description": "An animated palette icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/palette-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/palette-icon.tsx"
        }
      ]
    },
    {
      "name": "panel-left-close-icon",
      "type": "registry:ui",
      "title": "Panel Left Close Icon",
      "description": "An animated panel-left-close icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/panel-left-close-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/panel-left-close-icon.tsx"
        }
      ]
    },
    {
      "name": "rotate-cw-icon",
      "type": "registry:ui",
      "title": "Rotate Cw Icon",
      "description": "An animated rotate-cw icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/rotate-cw-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/rotate-cw-icon.tsx"
        }
      ]
    },
    {
      "name": "search-icon",
      "type": "registry:ui",
      "title": "Search Icon",
      "description": "An animated search icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/search-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/search-icon.tsx"
        }
      ]
    },
    {
      "name": "sliders-horizontal-icon",
      "type": "registry:ui",
      "title": "Sliders Horizontal Icon",
      "description": "An animated sliders-horizontal icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/sliders-horizontal-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/sliders-horizontal-icon.tsx"
        }
      ]
    },
    {
      "name": "smile-icon",
      "type": "registry:ui",
      "title": "Smile Icon",
      "description": "An animated smile icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/smile-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/smile-icon.tsx"
        }
      ]
    },
    {
      "name": "sparkles-icon",
      "type": "registry:ui",
      "title": "Sparkles Icon",
      "description": "An animated sparkles icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/sparkles-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/sparkles-icon.tsx"
        }
      ]
    },
    {
      "name": "sun-moon-icon",
      "type": "registry:ui",
      "title": "Sun Moon Icon",
      "description": "An animated sun-moon icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/sun-moon-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/sun-moon-icon.tsx"
        }
      ]
    },
    {
      "name": "underline-icon",
      "type": "registry:ui",
      "title": "Underline Icon",
      "description": "An animated underline icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/underline-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/underline-icon.tsx"
        }
      ]
    },
    {
      "name": "upload-icon",
      "type": "registry:ui",
      "title": "Upload Icon",
      "description": "An animated upload icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/upload-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/upload-icon.tsx"
        }
      ]
    },
    {
      "name": "wrench-icon",
      "type": "registry:ui",
      "title": "Wrench Icon",
      "description": "An animated wrench icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/wrench-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/wrench-icon.tsx"
        }
      ]
    },
    {
      "name": "x-icon",
      "type": "registry:ui",
      "title": "X Icon",
      "description": "An animated x icon, adapted from lucide-animated, that renders phrasing content and stays still under reduced motion.",
      "dependencies": ["motion"],
      "registryDependencies": ["@shadcn/utils"],
      "files": [
        {
          "path": "registry/bases/base-ui/icons/x-icon.tsx",
          "type": "registry:ui",
          "target": "components/general/x-icon.tsx"
        }
      ]
    }
  ]
}
