{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "boardui",
  "homepage": "https://www.boardui.com",
  "items": [
    {
      "name": "theme",
      "type": "registry:lib",
      "boarduiType": "foundations",
      "title": "Theme tokens",
      "description": "Color primitives, semantic tokens (text/background/border/foreground/chart), radii, shadows, and button gradient utilities.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "styles/theme.css",
          "type": "registry:style"
        }
      ]
    },
    {
      "name": "typography",
      "type": "registry:lib",
      "boarduiType": "foundations",
      "title": "Typography tokens",
      "description": "The full Figma type scale as composite text-{family}-{weight} Tailwind utilities.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "styles/typography.css",
          "type": "registry:style"
        }
      ]
    },
    {
      "name": "globals",
      "type": "registry:lib",
      "boarduiType": "foundations",
      "title": "Global styles",
      "description": "Tailwind entry css: dark-mode variant, base resets, component animations, and table styling. Imports theme.css and typography.css.",
      "dependencies": [],
      "registryDependencies": [
        "theme",
        "typography"
      ],
      "files": [
        {
          "path": "styles/globals.css",
          "type": "registry:style"
        }
      ]
    },
    {
      "name": "cx",
      "type": "registry:lib",
      "boarduiType": "foundations",
      "title": "cx utility",
      "description": "tailwind-merge wrapper aware of BoardUI's composite text styles, plus the sortCx helper.",
      "dependencies": [
        "tailwind-merge@^3.6.0"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "utils/cx.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "rules",
      "type": "registry:lib",
      "boarduiType": "foundations",
      "title": "Agent rules",
      "description": "Always-on design rules for AI agents (semantic tokens, type scale, conventions), installed as a Cursor rule file.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "docs/agent-rules.md",
          "type": "registry:file"
        }
      ]
    },
    {
      "name": "use-dismiss-on-outside-press",
      "type": "registry:lib",
      "boarduiType": "foundations",
      "title": "useDismissOnOutsidePress hook",
      "description": "Closes React Aria popovers on outside press without swallowing the outside click.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "utils/use-dismiss-on-outside-press.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "use-count-up",
      "type": "registry:lib",
      "boarduiType": "foundations",
      "title": "useCountUp hook",
      "description": "Animated rolling number hook used by chart headline figures.",
      "dependencies": [],
      "registryDependencies": [
        "globals"
      ],
      "files": [
        {
          "path": "hooks/use-count-up.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "chevrons",
      "type": "registry:lib",
      "boarduiType": "foundations",
      "title": "Chevron icons",
      "description": "Custom chevron glyphs (select caret, sortable table headers) matching the Figma strokes.",
      "dependencies": [],
      "registryDependencies": [],
      "files": [
        {
          "path": "components/foundations/icons/chevrons.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "logo",
      "type": "registry:lib",
      "boarduiType": "foundations",
      "title": "Logo",
      "description": "BoardUI brand mark placeholder — swap with your own logo component.",
      "dependencies": [],
      "registryDependencies": [
        "cx",
        "globals"
      ],
      "files": [
        {
          "path": "components/foundations/brand/logo.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "button",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Button",
      "description": "Primary, secondary, ghost, and danger buttons in three sizes with icon support.",
      "dependencies": [],
      "registryDependencies": [
        "cx",
        "globals"
      ],
      "files": [
        {
          "path": "components/base/buttons/button.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "icon-button",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Icon Button",
      "description": "Square icon-only button in two sizes.",
      "dependencies": [],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/buttons/icon-button.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "link-button",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Link Button",
      "description": "Inline text action styled like a link — primary/secondary variants, three sizes, icon support, renders <a> or <button>.",
      "dependencies": [],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/buttons/link-button.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "button-group",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Button Group",
      "description": "Row of secondary-style buttons fused into one bordered control with hairline dividers and selectable items.",
      "dependencies": [],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/buttons/button-group.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "close-button",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Close Button",
      "description": "Compact dismiss button for banners, modals, and chips.",
      "dependencies": [],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/buttons/close-button.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "input",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Input",
      "description": "Text input with label, hint text, error states, and leading icon support.",
      "dependencies": [
        "@remixicon/react@^4.9.0",
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/input/hint-text.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/base/input/input.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/base/input/label.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "checkbox",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Checkbox",
      "description": "React Aria checkbox with animated tick and indeterminate state.",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx",
        "globals"
      ],
      "files": [
        {
          "path": "components/base/checkbox/checkbox-glyph.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/base/checkbox/checkbox.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "checkbox-card",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Checkbox Card",
      "description": "Bordered selectable card driven by a checkbox.",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/checkbox/checkbox-card.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/base/checkbox/checkbox-glyph.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "radio",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Radio",
      "description": "React Aria radio group with the gradient selected dot, two sizes, and the bare RadioDot glyph for menu rows.",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/radio/radio.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "radio-card",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Radio Card",
      "description": "Bordered selectable card driven by a radio — the radio flavor of Checkbox Card.",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx",
        "radio"
      ],
      "files": [
        {
          "path": "components/base/radio/radio-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "switch",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Switch",
      "description": "Skeuomorphic toggle switch in two sizes.",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/switch/switch.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "switch-card",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Switch Card",
      "description": "Bordered settings row driven by a switch.",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx",
        "switch"
      ],
      "files": [
        {
          "path": "components/base/switch/switch-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "theme-toggle",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Theme Toggle",
      "description": "Manual light/dark control with a click-origin reveal, local persistence, and no system-theme dependency.",
      "dependencies": [
        "@remixicon/react@^4.9.0",
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx",
        "globals",
        "switch"
      ],
      "files": [
        {
          "path": "components/application/theme/theme-toggle.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "select",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Select",
      "description": "React Aria select with styled trigger, non-modal popover, and free-form item content.",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "chevrons",
        "cx",
        "use-dismiss-on-outside-press"
      ],
      "files": [
        {
          "path": "components/base/dropdown/menu-styles.ts",
          "type": "registry:component"
        },
        {
          "path": "components/base/select/select.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "slider",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Slider",
      "description": "Single-value and min/max range sliders with exact-value bubbles and keyboard controls.",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/slider/slider.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "social-button",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Social Button",
      "description": "Sign-in buttons for 24 providers, with brand logos, three colour treatments and an icon-only form.",
      "dependencies": [],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/social-button/social-button.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/base/social-button/social-color-logos.ts",
          "type": "registry:component"
        },
        {
          "path": "components/base/social-button/social-providers.ts",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "dropdown",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Dropdown",
      "description": "Composable popover menu (trigger, panel, groups, rows, dividers) built on React Aria — the recipe behind the sidebar team/account menus.",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx",
        "use-dismiss-on-outside-press"
      ],
      "files": [
        {
          "path": "components/base/dropdown/dropdown.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/base/dropdown/menu-styles.ts",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "divider",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Divider",
      "description": "Horizontal content divider with single-line, double-line, filled, and aligned variants.",
      "dependencies": [],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/divider/divider.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "file-upload",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "File Upload",
      "description": "Drag-and-drop file upload with validation, animated progress, and a completion callback.",
      "dependencies": [
        "@remixicon/react@^4.9.0"
      ],
      "registryDependencies": [
        "cx",
        "globals"
      ],
      "files": [
        {
          "path": "components/base/file-upload/file-upload.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "tabs",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Tabs",
      "description": "Underline and pill tab variants built on React Aria.",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/tabs/pill-tab.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/base/tabs/tabs.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "table",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Table",
      "description": "Static table primitives matching the dashboard tables.",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx",
        "globals"
      ],
      "files": [
        {
          "path": "components/base/table/table.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "tooltip",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Tooltip",
      "description": "Light-surface tooltip built on React Aria.",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/tooltip/tooltip.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "badge",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Badge",
      "description": "Counter pills and the Kbd shortcut hint.",
      "dependencies": [],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/badges/badge.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chip",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Chip",
      "description": "Status/delta chips in bold and soft variants across the accent palette.",
      "dependencies": [],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/badges/chip.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "status-dot",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Status Dot",
      "description": "Colored status indicator dot used inside selects and tables.",
      "dependencies": [],
      "registryDependencies": [
        "cx",
        "globals"
      ],
      "files": [
        {
          "path": "components/base/badges/status-dot.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "avatar",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Avatar",
      "description": "Image or initials avatar in multiple sizes and tints.",
      "dependencies": [],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/avatar/avatar.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "breadcrumb",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Breadcrumb",
      "description": "Icon-capable breadcrumb trail.",
      "dependencies": [],
      "registryDependencies": [
        "chevrons",
        "cx"
      ],
      "files": [
        {
          "path": "components/base/breadcrumb/breadcrumb.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "pagination",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Pagination",
      "description": "Numbered pagination with prev/next and ellipsis collapsing.",
      "dependencies": [
        "@remixicon/react@^4.9.0"
      ],
      "registryDependencies": [
        "button",
        "cx"
      ],
      "files": [
        {
          "path": "components/base/pagination/pagination.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "carousel",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Carousel",
      "description": "Gallery carousel built on CSS scroll-snap: swipe, arrows and a position indicator.",
      "dependencies": [
        "@remixicon/react@^4.9.0"
      ],
      "registryDependencies": [
        "cx",
        "icon-button"
      ],
      "files": [
        {
          "path": "components/base/carousel/carousel.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "input-otp",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Input OTP",
      "description": "One-time-code field with a monospace box per digit, paste distribution and autofill support.",
      "dependencies": [],
      "registryDependencies": [
        "cx",
        "globals"
      ],
      "files": [
        {
          "path": "components/base/input-otp/input-otp.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "segmented-control",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Segmented Control",
      "description": "Pill-style segmented control (Weekly / Monthly / Yearly switchers).",
      "dependencies": [
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx",
        "globals"
      ],
      "files": [
        {
          "path": "components/base/segmented-control/segmented-control.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "announcement",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Announcement",
      "description": "Dismissible announcement card used in the sidebar footer.",
      "dependencies": [
        "@remixicon/react@^4.9.0",
        "motion@^12.42.2"
      ],
      "registryDependencies": [
        "button",
        "close-button",
        "cx"
      ],
      "files": [
        {
          "path": "components/base/announcement/announcement.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "notification",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Notification",
      "description": "Dismissible notification with status icons, avatars, action buttons, and timed countdown.",
      "dependencies": [
        "@remixicon/react@^4.9.0",
        "motion@^12.42.2"
      ],
      "registryDependencies": [
        "avatar",
        "button",
        "close-button",
        "cx"
      ],
      "files": [
        {
          "path": "components/base/notification/notification.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "kbd",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Kbd",
      "description": "Keyboard shortcut hint pill.",
      "dependencies": [],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/base/kbd/kbd.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "date-picker",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Date Picker",
      "description": "Single-date picker with month navigation, built on React Aria.",
      "dependencies": [
        "@internationalized/date@^3.12.1",
        "@remixicon/react@^4.9.0",
        "motion@^12.42.2",
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "button",
        "cx",
        "use-dismiss-on-outside-press"
      ],
      "files": [
        {
          "path": "components/base/date-picker/date-picker.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/base/date-picker/shared.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "date-range-picker",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Date Range Picker",
      "description": "Two-month range picker sharing the date-picker chrome.",
      "dependencies": [
        "@internationalized/date@^3.12.1",
        "@remixicon/react@^4.9.0",
        "motion@^12.42.2",
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "button",
        "cx",
        "use-dismiss-on-outside-press"
      ],
      "files": [
        {
          "path": "components/base/date-picker/date-range-picker.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/base/date-picker/shared.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "meeting-scheduler",
      "type": "registry:ui",
      "boarduiType": "base",
      "title": "Meeting Scheduler",
      "description": "Date + time-slot scheduler popover.",
      "dependencies": [
        "@internationalized/date@^3.12.1",
        "@remixicon/react@^4.9.0",
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "avatar",
        "button",
        "chevrons",
        "cx",
        "use-dismiss-on-outside-press"
      ],
      "files": [
        {
          "path": "components/base/date-picker/meeting-scheduler.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/base/date-picker/shared.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "agent-runtime",
      "type": "registry:lib",
      "boarduiType": "foundations",
      "title": "Agent runtime",
      "description": "Streaming chat endpoint for agent templates: one AI_API_KEY from OpenAI, Anthropic, Google, OpenRouter, Groq, xAI or Vercel AI Gateway (or any OpenAI-compatible server by URL), a config probe for unconfigured deploys, and the message contract the BoardUI chat UI installs against.",
      "dependencies": [
        "@ai-sdk/anthropic@^4.0.47",
        "@ai-sdk/google@^4.0.61",
        "@ai-sdk/openai@^4.0.53",
        "ai@^7.0.87",
        "zod@^4.5.4"
      ],
      "registryDependencies": [],
      "files": [
        {
          "path": "app/api/chat/route.ts",
          "type": "registry:file"
        }
      ]
    },
    {
      "name": "agent-chat",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Agent Chat",
      "description": "A working chat app: app sidebar, streaming replies, thinking indicator, a composer pill with stop control, a chat-history rail with local thread switching, and a setup notice when no provider key is set.",
      "dependencies": [
        "@ai-sdk/react@^4.0.90",
        "@remixicon/react@^4.9.0",
        "ai@^7.0.87",
        "motion@^12.42.2"
      ],
      "registryDependencies": [
        "agent-runtime",
        "agent-thinking",
        "app-shell",
        "avatar",
        "button",
        "chevrons",
        "close-button",
        "composer-loader",
        "cx",
        "dropdown",
        "globals",
        "icon-button",
        "sidebar",
        "theme-toggle"
      ],
      "files": [
        {
          "path": "components/application/agent-chat/agent-chat-actions.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/agent-chat/agent-chat-history.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/agent-chat/agent-chat-message.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/agent-chat/agent-chat.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/agent-chat/agent-composer.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/agent-chat/demo-answers.ts",
          "type": "registry:component"
        },
        {
          "path": "components/application/agent-chat/demo-transport.ts",
          "type": "registry:component"
        },
        {
          "path": "components/application/app-shell/pro-offer-card.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/landing/hero-rays/hero-rays-config.ts",
          "type": "registry:component"
        },
        {
          "path": "components/application/landing/hero-rays/hero-rays-shader.ts",
          "type": "registry:component"
        },
        {
          "path": "components/application/landing/hero-rays/hero-rays.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/landing/pro-logo-mark.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/landing/tuning/tuning-types.ts",
          "type": "registry:component"
        },
        {
          "path": "components/application/templates/pro-prompt-card.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/templates/pro-prompt-rays.ts",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "app-shell",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "App Shell",
      "description": "Page frame for the chat starter: the sidebar, a phone drawer, and a titled content card, carrying the starter's own navigation so the sidebar only links to pages the app has.",
      "dependencies": [
        "@internationalized/date@^3.12.1",
        "@remixicon/react@^4.9.0",
        "motion@^12.42.2",
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "agent-chat",
        "agent-thinking",
        "announcement",
        "auth-card",
        "avatar",
        "breadcrumb",
        "button",
        "button-group",
        "carousel",
        "checkbox",
        "chevrons",
        "chip",
        "close-button",
        "cx",
        "data-table",
        "divider",
        "file-upload",
        "globals",
        "icon-button",
        "input",
        "input-otp",
        "link-button",
        "notification",
        "notification-center",
        "orders-chart-card",
        "pagination",
        "radio",
        "revenue-chart-card",
        "segmented-control",
        "select",
        "sidebar",
        "slider",
        "social-button",
        "stat-cards",
        "switch",
        "table",
        "tabs",
        "theme-toggle",
        "tooltip",
        "use-dismiss-on-outside-press"
      ],
      "files": [
        {
          "path": "components/application/app-shell/app-shell.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/app-shell/components-catalog.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/app-shell/notification-bell.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/app-shell/pro-offer-card.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/app-shell/starter-notifications.ts",
          "type": "registry:component"
        },
        {
          "path": "components/application/dashboard/dashboard-user-menu.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/docs/component-preview-hrefs.ts",
          "type": "registry:component"
        },
        {
          "path": "components/application/docs/component-previews-free.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/docs/components-index.ts",
          "type": "registry:component"
        },
        {
          "path": "components/application/docs/free-landing-previews.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/docs/preview-images.ts",
          "type": "registry:component"
        },
        {
          "path": "components/application/docs/showcase-card.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/landing/hero-rays/hero-rays-config.ts",
          "type": "registry:component"
        },
        {
          "path": "components/application/landing/hero-rays/hero-rays-shader.ts",
          "type": "registry:component"
        },
        {
          "path": "components/application/landing/hero-rays/hero-rays.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/landing/pro-logo-mark.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/landing/tuning/tuning-types.ts",
          "type": "registry:component"
        },
        {
          "path": "components/application/notification-center/notification-center-demo.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/settings/plan-art-flame.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/settings/settings-general.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/settings/settings-rows.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/templates/pro-prompt-card.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/templates/pro-prompt-rays.ts",
          "type": "registry:component"
        },
        {
          "path": "components/base/date-picker/shared.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "agent-thinking",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Agent Thinking",
      "description": "Agent thinking indicator for chat composers — dot wave, dot spin, stars, and infinity variants with a shimmering label and elapsed timer.",
      "dependencies": [],
      "registryDependencies": [
        "cx",
        "globals"
      ],
      "files": [
        {
          "path": "components/application/agent-thinking/agent-thinking.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "agent-log",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Agent Log",
      "description": "Shared streaming-log machinery: the reveal ticker, the blur-in with its soft clipping edge, and the curved tree guide that draws itself. Behind Task List and Web Search.",
      "dependencies": [
        "motion@^12.42.2"
      ],
      "registryDependencies": [
        "agent-thinking",
        "cx",
        "globals"
      ],
      "files": [
        {
          "path": "components/application/agent-log/agent-log.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "composer-loader",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Composer Loader",
      "description": "Loading state that wraps a chat composer — an iridescent light band orbiting the rim with a soft inward bloom, fading in while the agent works.",
      "dependencies": [],
      "registryDependencies": [
        "cx",
        "globals"
      ],
      "files": [
        {
          "path": "components/application/composer-loader/composer-loader.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "sidebar",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Sidebar",
      "description": "The floating dashboard sidebar with team menu, nav, announcement, and user menu.",
      "dependencies": [
        "@remixicon/react@^4.9.0",
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "avatar",
        "badge",
        "button",
        "chevrons",
        "close-button",
        "cx",
        "globals",
        "kbd",
        "settings-modal",
        "theme-toggle"
      ],
      "files": [
        {
          "path": "components/application/dashboard/dashboard-sidebar.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/dashboard/dashboard-team-menu.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/dashboard/dashboard-user-menu.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "settings-modal",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Settings Modal",
      "description": "Controlled multi-page settings dialog with General, Profile, Tools, and Storage views.",
      "dependencies": [
        "@internationalized/date@^3.12.1",
        "@remixicon/react@^4.9.0",
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "button",
        "checkbox",
        "chevrons",
        "chip",
        "cx",
        "date-picker",
        "dropdown",
        "file-upload",
        "globals",
        "icon-button",
        "input",
        "pagination",
        "select",
        "switch",
        "tabs",
        "tooltip"
      ],
      "files": [
        {
          "path": "components/application/settings/plan-art-flame.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/settings/settings-general.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/settings/settings-modal.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/settings/settings-profile.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/settings/settings-rows.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/settings/settings-storage.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/settings/settings-tools.tsx",
          "type": "registry:component"
        },
        {
          "path": "public/ai-chat/plugin-documents-dark.svg",
          "type": "registry:file"
        },
        {
          "path": "public/ai-chat/plugin-documents.svg",
          "type": "registry:file"
        },
        {
          "path": "public/ai-chat/plugin-spreadsheets.svg",
          "type": "registry:file"
        },
        {
          "path": "public/ai-chat/plugin-videos.svg",
          "type": "registry:file"
        }
      ]
    },
    {
      "name": "auth-card",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Auth Card",
      "description": "Sign-in and sign-up cards with social providers stacked with labels or inline as icons, plus email fields and a CTA.",
      "dependencies": [
        "@remixicon/react@^4.9.0"
      ],
      "registryDependencies": [
        "button",
        "checkbox",
        "cx",
        "divider",
        "input",
        "input-otp",
        "link-button",
        "social-button"
      ],
      "files": [
        {
          "path": "components/application/auth/auth-card.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/auth/auth-media-carousel.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/base/social-button/social-providers.ts",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "notification-center",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Notification Center",
      "description": "Tabbed activity inbox with grouped notifications, unread state, avatars, status icons, and inline actions.",
      "dependencies": [
        "@remixicon/react@^4.9.0"
      ],
      "registryDependencies": [
        "avatar",
        "button",
        "cx",
        "globals",
        "segmented-control"
      ],
      "files": [
        {
          "path": "components/application/notification-center/notification-center.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "data-table",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Data Table",
      "description": "TanStack-powered data table with sorting, selection, and pagination.",
      "dependencies": [
        "@remixicon/react@^4.9.0",
        "@tanstack/react-table@^8.21.3",
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "avatar",
        "checkbox",
        "chevrons",
        "chip",
        "cx",
        "dropdown",
        "icon-button",
        "input",
        "pagination",
        "segmented-control",
        "select",
        "status-dot",
        "table",
        "tooltip"
      ],
      "files": [
        {
          "path": "components/application/docs/examples/data-table-example.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "stat-cards",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Stat Cards",
      "description": "KPI stat card row with delta chips.",
      "dependencies": [
        "@remixicon/react@^4.9.0",
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "chip",
        "cx",
        "tooltip"
      ],
      "files": [
        {
          "path": "components/application/dashboard/stat-cards.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "revenue-chart-card",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Revenue Chart Card",
      "description": "Free chart card: a year of monthly revenue as an area against the year before, with a count-up headline, delta chip and hover readout per month.",
      "dependencies": [
        "recharts@^3.9.2"
      ],
      "registryDependencies": [
        "chip",
        "cx",
        "globals",
        "use-count-up"
      ],
      "files": [
        {
          "path": "components/application/dashboard/revenue-chart-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "orders-chart-card",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Orders Chart Card",
      "description": "Free chart card: a year of monthly orders as bars, this year beside last year for every month, with a count-up headline, delta chip and hover readout.",
      "dependencies": [
        "recharts@^3.9.2"
      ],
      "registryDependencies": [
        "chip",
        "cx",
        "globals",
        "use-count-up"
      ],
      "files": [
        {
          "path": "components/application/dashboard/orders-chart-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "important-alerts-card",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Important Alerts Card",
      "description": "Scrollable alert feed with tinted icon circles and date pills.",
      "dependencies": [
        "@internationalized/date@^3.12.1",
        "@remixicon/react@^4.9.0",
        "react-aria-components@^1.17.0"
      ],
      "registryDependencies": [
        "cx"
      ],
      "files": [
        {
          "path": "components/application/medical/important-alerts-card.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/application/medical/week-range-pill.tsx",
          "type": "registry:component"
        },
        {
          "path": "components/base/date-picker/shared.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "patient-info-card",
      "type": "registry:block",
      "boarduiType": "application",
      "title": "Patient Info Card",
      "description": "Profile card with avatar and label/value detail rows.",
      "dependencies": [
        "@remixicon/react@^4.9.0"
      ],
      "registryDependencies": [
        "avatar",
        "button",
        "cx"
      ],
      "files": [
        {
          "path": "components/application/medical/patient-info-card.tsx",
          "type": "registry:component"
        }
      ]
    }
  ]
}
