{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "forge",
  "homepage": "https://forge-design.vercel.app",
  "items": [
    {
      "name": "forge-theme",
      "type": "registry:theme",
      "title": "Forge Theme",
      "description": "Canonical light and dark semantic tokens used by Forge components and blocks.",
      "categories": [
        "theme",
        "tokens"
      ],
      "cssVars": {
        "theme": {
          "color-background": "var(--background)",
          "color-foreground": "var(--foreground)",
          "font-sans": "var(--font-geist-sans)",
          "font-mono": "var(--font-geist-mono)",
          "color-sidebar-ring": "var(--sidebar-ring)",
          "color-sidebar-border": "var(--sidebar-border)",
          "color-sidebar-accent-foreground": "var(--sidebar-accent-foreground)",
          "color-sidebar-accent": "var(--sidebar-accent)",
          "color-sidebar-primary-foreground": "var(--sidebar-primary-foreground)",
          "color-sidebar-primary": "var(--sidebar-primary)",
          "color-sidebar-foreground": "var(--sidebar-foreground)",
          "color-sidebar": "var(--sidebar)",
          "color-chart-5": "var(--chart-5)",
          "color-chart-4": "var(--chart-4)",
          "color-chart-3": "var(--chart-3)",
          "color-chart-2": "var(--chart-2)",
          "color-chart-1": "var(--chart-1)",
          "color-ring": "var(--ring)",
          "color-input": "var(--input)",
          "color-border": "var(--border)",
          "color-destructive": "var(--destructive)",
          "color-accent-foreground": "var(--accent-foreground)",
          "color-accent": "var(--accent)",
          "color-muted-foreground": "var(--muted-foreground)",
          "color-muted": "var(--muted)",
          "color-secondary-foreground": "var(--secondary-foreground)",
          "color-secondary": "var(--secondary)",
          "color-primary-foreground": "var(--primary-foreground)",
          "color-primary": "var(--primary)",
          "color-popover-foreground": "var(--popover-foreground)",
          "color-popover": "var(--popover)",
          "color-card-foreground": "var(--card-foreground)",
          "color-card": "var(--card)",
          "color-success": "var(--success)",
          "color-success-foreground": "var(--success-foreground)",
          "color-destructive-foreground": "var(--destructive-foreground)",
          "color-warning": "var(--warning)",
          "color-warning-foreground": "var(--warning-foreground)",
          "color-info": "var(--info)",
          "color-info-foreground": "var(--info-foreground)",
          "radius-sm": "calc(var(--radius) - 4px)",
          "radius-md": "calc(var(--radius) - 2px)",
          "radius-lg": "var(--radius)",
          "radius-xl": "calc(var(--radius) + 4px)",
          "animate-accordion-down": "accordion-down 0.2s ease-out",
          "animate-accordion-up": "accordion-up 0.2s ease-out"
        },
        "light": {
          "background": "oklch(0.994 0 0)",
          "foreground": "oklch(0.145 0 0)",
          "card": "oklch(1 0 0)",
          "card-foreground": "oklch(0.145 0 0)",
          "popover": "oklch(1 0 0)",
          "popover-foreground": "oklch(0.145 0 0)",
          "primary": "oklch(0.205 0 0)",
          "primary-foreground": "oklch(0.985 0 0)",
          "secondary": "oklch(0.97 0 0)",
          "secondary-foreground": "oklch(0.205 0 0)",
          "muted": "oklch(0.97 0 0)",
          "muted-foreground": "oklch(0.556 0 0)",
          "accent": "oklch(0.965 0.01 250)",
          "accent-foreground": "oklch(0.205 0 0)",
          "destructive": "oklch(0.585 0.22 23)",
          "destructive-foreground": "oklch(0.985 0 0)",
          "success": "oklch(0.6 0.15 158)",
          "success-foreground": "oklch(0.985 0 0)",
          "warning": "oklch(0.7 0.15 84)",
          "warning-foreground": "oklch(0.205 0 0)",
          "info": "oklch(0.58 0.13 250)",
          "info-foreground": "oklch(0.985 0 0)",
          "border": "oklch(0.922 0 0)",
          "input": "oklch(0.922 0 0)",
          "ring": "oklch(0.62 0.1 250)",
          "chart-1": "oklch(0.646 0.222 41.116)",
          "chart-2": "oklch(0.6 0.118 184.704)",
          "chart-3": "oklch(0.398 0.07 227.392)",
          "chart-4": "oklch(0.828 0.189 84.429)",
          "chart-5": "oklch(0.769 0.188 70.08)",
          "radius": "0.625rem",
          "sidebar": "oklch(0.985 0 0)",
          "sidebar-foreground": "oklch(0.145 0 0)",
          "sidebar-primary": "oklch(0.205 0 0)",
          "sidebar-primary-foreground": "oklch(0.985 0 0)",
          "sidebar-accent": "oklch(0.97 0 0)",
          "sidebar-accent-foreground": "oklch(0.205 0 0)",
          "sidebar-border": "oklch(0.922 0 0)",
          "sidebar-ring": "oklch(0.62 0.1 250)",
          "font-weight-bold": "700"
        },
        "dark": {
          "background": "oklch(0 0 0)",
          "foreground": "oklch(0.994 0 0)",
          "card": "oklch(0.165 0 0)",
          "card-foreground": "oklch(0.994 0 0)",
          "popover": "oklch(0.165 0 0)",
          "popover-foreground": "oklch(0.994 0 0)",
          "primary": "oklch(0.994 0 0)",
          "primary-foreground": "oklch(0.145 0 0)",
          "secondary": "oklch(0.225 0 0)",
          "secondary-foreground": "oklch(0.985 0 0)",
          "muted": "oklch(0.225 0 0)",
          "muted-foreground": "oklch(0.708 0 0)",
          "accent": "oklch(0.245 0.015 250)",
          "accent-foreground": "oklch(0.985 0 0)",
          "destructive": "oklch(0.6 0.21 23)",
          "destructive-foreground": "oklch(0.985 0 0)",
          "success": "oklch(0.72 0.18 158)",
          "success-foreground": "oklch(0.145 0 0)",
          "warning": "oklch(0.82 0.16 84)",
          "warning-foreground": "oklch(0.205 0 0)",
          "info": "oklch(0.72 0.13 250)",
          "info-foreground": "oklch(0.145 0 0)",
          "border": "oklch(0.245 0 0)",
          "input": "oklch(0.245 0 0)",
          "ring": "oklch(0.55 0.1 250)",
          "chart-1": "oklch(0.488 0.243 264.376)",
          "chart-2": "oklch(0.696 0.17 162.48)",
          "chart-3": "oklch(0.769 0.188 70.08)",
          "chart-4": "oklch(0.627 0.265 303.9)",
          "chart-5": "oklch(0.645 0.246 16.439)",
          "sidebar": "oklch(0.165 0 0)",
          "sidebar-foreground": "oklch(0.994 0 0)",
          "sidebar-primary": "oklch(0.985 0 0)",
          "sidebar-primary-foreground": "oklch(0.205 0 0)",
          "sidebar-accent": "oklch(0.225 0 0)",
          "sidebar-accent-foreground": "oklch(0.985 0 0)",
          "sidebar-border": "oklch(0.245 0 0)",
          "sidebar-ring": "oklch(0.55 0.1 250)"
        }
      }
    },
    {
      "name": "accordion",
      "type": "registry:ui",
      "title": "Accordion",
      "description": "Vertically stacked, keyboard-accessible disclosure sections for progressively revealing related content.",
      "categories": [
        "disclosure",
        "content"
      ],
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/accordion.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "alert-dialog",
      "type": "registry:ui",
      "title": "Alert Dialog",
      "description": "Modal confirmation dialog for destructive or consequential actions that require an explicit response.",
      "categories": [
        "overlay",
        "feedback"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/button"
      ],
      "files": [
        {
          "path": "components/ui/alert-dialog.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "alert",
      "type": "registry:ui",
      "title": "Alert",
      "description": "Inline status message with title, description, icon support, and default or destructive visual variants.",
      "categories": [
        "feedback",
        "status"
      ],
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/alert.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "aspect-ratio",
      "type": "registry:ui",
      "title": "Aspect Ratio",
      "description": "Responsive wrapper that preserves a fixed width-to-height ratio for images, video, and embedded media.",
      "categories": [
        "layout",
        "media"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "files": [
        {
          "path": "components/ui/aspect-ratio.tsx",
          "type": "registry:ui"
        }
      ],
      "registryDependencies": [
        "@forge/forge-theme"
      ]
    },
    {
      "name": "attachment",
      "type": "registry:ui",
      "title": "Attachment",
      "description": "File attachment row with metadata, visual variants, and an optional button-based action.",
      "categories": [
        "messaging",
        "files"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/button"
      ],
      "files": [
        {
          "path": "components/ui/attachment.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "avatar",
      "type": "registry:ui",
      "title": "Avatar",
      "description": "Accessible user or entity image with a deterministic fallback when the image is unavailable.",
      "categories": [
        "data-display",
        "identity"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/avatar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "badge",
      "type": "registry:ui",
      "title": "Badge",
      "description": "Compact label for statuses, categories, and metadata with semantic visual variants and slot composition.",
      "categories": [
        "data-display",
        "status"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/badge.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "breadcrumb",
      "type": "registry:ui",
      "title": "Breadcrumb",
      "description": "Hierarchical navigation trail with links, current-page state, separators, and collapsed overflow.",
      "categories": [
        "navigation"
      ],
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/breadcrumb.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "bubble",
      "type": "registry:ui",
      "title": "Bubble",
      "description": "Composable speech bubble surface for conversational content with configurable alignment and styling.",
      "categories": [
        "messaging",
        "content"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/bubble.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "button-group",
      "type": "registry:ui",
      "title": "Button Group",
      "description": "Visually connected control group for related buttons, inputs, or segmented actions in either orientation.",
      "categories": [
        "controls",
        "layout"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/separator"
      ],
      "files": [
        {
          "path": "components/ui/button-group.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "button",
      "type": "registry:ui",
      "title": "Button",
      "description": "Primary interactive control with semantic variants, multiple sizes, and polymorphic slot composition.",
      "categories": [
        "controls",
        "actions"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/button.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "calendar",
      "type": "registry:ui",
      "title": "Calendar",
      "description": "Styled date-selection calendar supporting single, multiple, and range workflows with month navigation.",
      "categories": [
        "forms",
        "date-time"
      ],
      "dependencies": [
        "lucide-react",
        "react-day-picker"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/button"
      ],
      "files": [
        {
          "path": "components/ui/calendar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "card",
      "type": "registry:ui",
      "title": "Card",
      "description": "Structured content surface with header, title, description, action, body, and footer slots.",
      "categories": [
        "layout",
        "content"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/card.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "carousel",
      "type": "registry:ui",
      "title": "Carousel",
      "description": "Accessible horizontal or vertical content carousel with Embla controls, navigation buttons, and API access.",
      "categories": [
        "content",
        "media"
      ],
      "dependencies": [
        "embla-carousel-react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/button"
      ],
      "files": [
        {
          "path": "components/ui/carousel.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "chart",
      "type": "registry:ui",
      "title": "Chart",
      "description": "Recharts container and themed tooltip, legend, and style helpers for accessible data visualization.",
      "categories": [
        "data-display",
        "charts"
      ],
      "dependencies": [
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/chart.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "checkbox",
      "type": "registry:ui",
      "title": "Checkbox",
      "description": "Accessible binary or indeterminate selection control with a check indicator and disabled state.",
      "categories": [
        "forms",
        "controls"
      ],
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/checkbox.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "collapsible",
      "type": "registry:ui",
      "title": "Collapsible",
      "description": "Unstyled accessible disclosure primitive for toggling a single region of content.",
      "categories": [
        "disclosure",
        "layout"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "files": [
        {
          "path": "components/ui/collapsible.tsx",
          "type": "registry:ui"
        }
      ],
      "registryDependencies": [
        "@forge/forge-theme"
      ]
    },
    {
      "name": "combobox",
      "type": "registry:ui",
      "title": "Combobox",
      "description": "Searchable selection control with single or multiple values, chips, clear actions, and an anchored popup.",
      "categories": [
        "forms",
        "selection"
      ],
      "dependencies": [
        "@base-ui/react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/button",
        "@forge/input-group"
      ],
      "files": [
        {
          "path": "components/ui/combobox.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "command",
      "type": "registry:ui",
      "title": "Command",
      "description": "Keyboard-first searchable command list with groups, separators, shortcuts, empty state, and dialog shell.",
      "categories": [
        "navigation",
        "search"
      ],
      "dependencies": [
        "cmdk",
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/dialog"
      ],
      "files": [
        {
          "path": "components/ui/command.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "context-menu",
      "type": "registry:ui",
      "title": "Context Menu",
      "description": "Right-click action menu with nested submenus, checkbox and radio items, labels, and keyboard shortcuts.",
      "categories": [
        "overlay",
        "menu"
      ],
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/context-menu.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "dialog",
      "type": "registry:ui",
      "title": "Dialog",
      "description": "Accessible modal overlay with header, body, footer, close control, and responsive content positioning.",
      "categories": [
        "overlay",
        "modal"
      ],
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/button"
      ],
      "files": [
        {
          "path": "components/ui/dialog.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "direction",
      "type": "registry:ui",
      "title": "Direction Provider",
      "description": "Context provider that supplies left-to-right or right-to-left reading direction to Radix components.",
      "categories": [
        "accessibility",
        "internationalization"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "files": [
        {
          "path": "components/ui/direction.tsx",
          "type": "registry:ui"
        }
      ],
      "registryDependencies": [
        "@forge/forge-theme"
      ]
    },
    {
      "name": "drawer",
      "type": "registry:ui",
      "title": "Drawer",
      "description": "Touch-friendly sliding panel with overlay, handle, header, body, and footer composition.",
      "categories": [
        "overlay",
        "mobile"
      ],
      "dependencies": [
        "vaul"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/drawer.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "dropdown-menu",
      "type": "registry:ui",
      "title": "Dropdown Menu",
      "description": "Trigger-based action menu with nested submenus, checkbox and radio items, labels, and shortcuts.",
      "categories": [
        "overlay",
        "menu"
      ],
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/dropdown-menu.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "empty",
      "type": "registry:ui",
      "title": "Empty State",
      "description": "Composable empty-content primitive with media, header, title, description, and action areas.",
      "categories": [
        "feedback",
        "content"
      ],
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/empty.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "field",
      "type": "registry:ui",
      "title": "Field",
      "description": "Form-field layout system with labels, descriptions, errors, grouped controls, legends, and separators.",
      "categories": [
        "forms",
        "layout"
      ],
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/label",
        "@forge/separator"
      ],
      "files": [
        {
          "path": "components/ui/field.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "form",
      "type": "registry:ui",
      "title": "Form",
      "description": "React Hook Form adapters for accessible fields, labels, descriptions, validation messages, and control context.",
      "categories": [
        "forms",
        "validation"
      ],
      "dependencies": [
        "radix-ui",
        "react-hook-form"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/label"
      ],
      "files": [
        {
          "path": "components/ui/form.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "hover-card",
      "type": "registry:ui",
      "title": "Hover Card",
      "description": "Rich preview panel that appears when a pointer hovers or keyboard focus rests on a trigger.",
      "categories": [
        "overlay",
        "preview"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/hover-card.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "input-group",
      "type": "registry:ui",
      "title": "Input Group",
      "description": "Unified text-entry group with inputs or textareas plus aligned icons, text, and button add-ons.",
      "categories": [
        "forms",
        "controls"
      ],
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/button",
        "@forge/input",
        "@forge/textarea"
      ],
      "files": [
        {
          "path": "components/ui/input-group.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "input-otp",
      "type": "registry:ui",
      "title": "One-Time Password Input",
      "description": "Accessible segmented one-time-code input with active slots, caret display, and visual separators.",
      "categories": [
        "forms",
        "authentication"
      ],
      "dependencies": [
        "input-otp",
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/input-otp.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "input",
      "type": "registry:ui",
      "title": "Input",
      "description": "Styled native input supporting common text, file, disabled, invalid, and focus states.",
      "categories": [
        "forms",
        "controls"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/input.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "item",
      "type": "registry:ui",
      "title": "Item",
      "description": "Flexible list or detail row with media, content, title, description, actions, groups, and separators.",
      "categories": [
        "data-display",
        "layout"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/separator"
      ],
      "files": [
        {
          "path": "components/ui/item.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "kbd",
      "type": "registry:ui",
      "title": "Keyboard Key",
      "description": "Inline keyboard-key and key-group styling for shortcuts, commands, and instructional copy.",
      "categories": [
        "typography",
        "documentation"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/kbd.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "label",
      "type": "registry:ui",
      "title": "Label",
      "description": "Accessible form-control label with consistent disabled and grouped-control styling.",
      "categories": [
        "forms",
        "typography"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/label.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "marker",
      "type": "registry:ui",
      "title": "Marker",
      "description": "Compact visual marker for annotating messages, timelines, coordinates, or points of interest.",
      "categories": [
        "messaging",
        "data-display"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/marker.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "menubar",
      "type": "registry:ui",
      "title": "Menubar",
      "description": "Desktop-style persistent menu bar with submenus, checkbox and radio items, and keyboard navigation.",
      "categories": [
        "navigation",
        "menu"
      ],
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/menubar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "message-scroller",
      "type": "registry:ui",
      "title": "Message Scroller",
      "description": "Conversation viewport that follows new messages and exposes a button to jump back to the latest content.",
      "categories": [
        "messaging",
        "navigation"
      ],
      "dependencies": [
        "@shadcn/react",
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/button"
      ],
      "files": [
        {
          "path": "components/ui/message-scroller.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "message",
      "type": "registry:ui",
      "title": "Message",
      "description": "Semantic message wrapper and content area for building chat, assistant, and conversation interfaces.",
      "categories": [
        "messaging",
        "content"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/message.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "native-select",
      "type": "registry:ui",
      "title": "Native Select",
      "description": "Styled native select control with platform behavior, custom chevron, and invalid or disabled states.",
      "categories": [
        "forms",
        "selection"
      ],
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/native-select.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "navigation-menu",
      "type": "registry:ui",
      "title": "Navigation Menu",
      "description": "Accessible site navigation with triggerable content panels, animated viewport, links, and indicators.",
      "categories": [
        "navigation",
        "menu"
      ],
      "dependencies": [
        "class-variance-authority",
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/navigation-menu.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "pagination",
      "type": "registry:ui",
      "title": "Pagination",
      "description": "Page navigation with previous and next links, numbered links, active state, and overflow ellipsis.",
      "categories": [
        "navigation",
        "data-display"
      ],
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/button"
      ],
      "files": [
        {
          "path": "components/ui/pagination.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "popover",
      "type": "registry:ui",
      "title": "Popover",
      "description": "Anchored floating content panel for compact forms, pickers, filters, and contextual information.",
      "categories": [
        "overlay"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/popover.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "progress",
      "type": "registry:ui",
      "title": "Progress",
      "description": "Accessible horizontal progress indicator for completion, loading, quotas, and measured values.",
      "categories": [
        "feedback",
        "status"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/progress.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "radio-group",
      "type": "registry:ui",
      "title": "Radio Group",
      "description": "Accessible single-choice control group with keyboard navigation and selected-state indicators.",
      "categories": [
        "forms",
        "selection"
      ],
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/radio-group.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "resizable",
      "type": "registry:ui",
      "title": "Resizable Panels",
      "description": "Horizontal or vertical panel groups with draggable resize handles and optional grip indicators.",
      "categories": [
        "layout",
        "interaction"
      ],
      "dependencies": [
        "lucide-react",
        "react-resizable-panels"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/resizable.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "scroll-area",
      "type": "registry:ui",
      "title": "Scroll Area",
      "description": "Custom styled scroll viewport with horizontal or vertical scrollbars while retaining native behavior.",
      "categories": [
        "layout",
        "navigation"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/scroll-area.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "select",
      "type": "registry:ui",
      "title": "Select",
      "description": "Accessible custom select with trigger, grouped options, labels, separators, and scroll controls.",
      "categories": [
        "forms",
        "selection"
      ],
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/select.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "separator",
      "type": "registry:ui",
      "title": "Separator",
      "description": "Accessible horizontal or vertical divider for visually and semantically separating content.",
      "categories": [
        "layout"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/separator.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sheet",
      "type": "registry:ui",
      "title": "Sheet",
      "description": "Modal panel that slides from any screen edge with overlay, close control, header, body, and footer.",
      "categories": [
        "overlay",
        "layout"
      ],
      "dependencies": [
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/sheet.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sidebar",
      "type": "registry:ui",
      "title": "Sidebar",
      "description": "Responsive application sidebar system with provider state, mobile sheet, collapsible rails, menus, groups, and content.",
      "categories": [
        "layout",
        "navigation"
      ],
      "dependencies": [
        "class-variance-authority",
        "lucide-react",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/use-mobile",
        "@forge/utils",
        "@forge/button",
        "@forge/input",
        "@forge/separator",
        "@forge/sheet",
        "@forge/skeleton",
        "@forge/tooltip"
      ],
      "files": [
        {
          "path": "components/ui/sidebar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "skeleton",
      "type": "registry:ui",
      "title": "Skeleton",
      "description": "Animated placeholder surface that mirrors content shape while data or media is loading.",
      "categories": [
        "feedback",
        "loading"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/skeleton.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "slider",
      "type": "registry:ui",
      "title": "Slider",
      "description": "Accessible single-value or range control with keyboard support, track, range fill, and draggable thumbs.",
      "categories": [
        "forms",
        "controls"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/slider.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sonner",
      "type": "registry:ui",
      "title": "Toast Notifications",
      "description": "Theme-aware Sonner toast viewport with status icons and application-wide notification rendering.",
      "categories": [
        "feedback",
        "notifications"
      ],
      "dependencies": [
        "lucide-react",
        "next-themes",
        "sonner"
      ],
      "files": [
        {
          "path": "components/ui/sonner.tsx",
          "type": "registry:ui"
        }
      ],
      "registryDependencies": [
        "@forge/forge-theme"
      ]
    },
    {
      "name": "spinner",
      "type": "registry:ui",
      "title": "Spinner",
      "description": "Compact animated loading indicator with accessible status semantics for pending operations.",
      "categories": [
        "feedback",
        "loading"
      ],
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/spinner.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "switch",
      "type": "registry:ui",
      "title": "Switch",
      "description": "Accessible on-or-off control for immediately toggling a setting or feature.",
      "categories": [
        "forms",
        "controls"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/switch.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "table",
      "type": "registry:ui",
      "title": "Table",
      "description": "Responsive semantic table with header, body, footer, row, cell, caption, and selected-state styling.",
      "categories": [
        "data-display"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/table.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tabs",
      "type": "registry:ui",
      "title": "Tabs",
      "description": "Accessible tabbed content switcher with line and default visual variants and keyboard navigation.",
      "categories": [
        "navigation",
        "disclosure"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/tabs.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "textarea",
      "type": "registry:ui",
      "title": "Textarea",
      "description": "Styled multiline text input with focus, disabled, invalid, and placeholder states.",
      "categories": [
        "forms",
        "controls"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/textarea.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "toggle-group",
      "type": "registry:ui",
      "title": "Toggle Group",
      "description": "Accessible single- or multiple-selection group of visually coordinated toggle controls.",
      "categories": [
        "forms",
        "controls"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils",
        "@forge/toggle"
      ],
      "files": [
        {
          "path": "components/ui/toggle-group.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "toggle",
      "type": "registry:ui",
      "title": "Toggle",
      "description": "Two-state pressed control with semantic variants and sizes for formatting tools and compact actions.",
      "categories": [
        "forms",
        "controls"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/toggle.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tooltip",
      "type": "registry:ui",
      "title": "Tooltip",
      "description": "Accessible contextual label or hint displayed on pointer hover and keyboard focus.",
      "categories": [
        "overlay",
        "feedback"
      ],
      "dependencies": [
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/ui/tooltip.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "use-mobile",
      "type": "registry:hook",
      "title": "Mobile Breakpoint Hook",
      "description": "Responsive client hook that reports whether the viewport is below the Forge mobile breakpoint.",
      "categories": [
        "foundation",
        "responsive",
        "hook"
      ],
      "files": [
        {
          "path": "hooks/use-mobile.ts",
          "type": "registry:hook"
        }
      ]
    },
    {
      "name": "utils",
      "type": "registry:lib",
      "title": "Design System Utilities",
      "description": "Portable class-name merging helper used by Forge registry components.",
      "categories": [
        "foundation",
        "utilities"
      ],
      "dependencies": [
        "clsx",
        "tailwind-merge"
      ],
      "files": [
        {
          "path": "registry/shared/utils.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "theme-contract",
      "type": "registry:lib",
      "title": "Theme Contract",
      "description": "Semantic token contract, brand-color derivation, preset toolkit (colors, radius, fonts), and runtime token injection for the Forge data-theme protocol.",
      "categories": [
        "theme",
        "tokens",
        "foundation"
      ],
      "files": [
        {
          "path": "themes/contract.ts",
          "type": "registry:lib",
          "target": "themes/contract.ts"
        },
        {
          "path": "themes/derive.ts",
          "type": "registry:lib",
          "target": "themes/derive.ts"
        },
        {
          "path": "themes/inject.ts",
          "type": "registry:lib",
          "target": "themes/inject.ts"
        },
        {
          "path": "themes/fonts.ts",
          "type": "registry:lib",
          "target": "themes/fonts.ts"
        },
        {
          "path": "themes/preset.ts",
          "type": "registry:lib",
          "target": "themes/preset.ts"
        },
        {
          "path": "themes/preset-codec.ts",
          "type": "registry:lib",
          "target": "themes/preset-codec.ts"
        },
        {
          "path": "themes/preset-item.ts",
          "type": "registry:lib",
          "target": "themes/preset-item.ts"
        },
        {
          "path": "themes/protocol.md",
          "type": "registry:file",
          "target": "themes/protocol.md"
        }
      ]
    },
    {
      "name": "container",
      "type": "registry:component",
      "title": "Container",
      "description": "Responsive centered content container with constrained width, horizontal gutters, size variants, and polymorphic slot rendering.",
      "categories": [
        "layout",
        "responsive"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/layout/container.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "section",
      "type": "registry:component",
      "title": "Section",
      "description": "Semantic page section wrapper with consistent responsive vertical spacing, spacing variants, and polymorphic slot rendering.",
      "categories": [
        "layout",
        "responsive"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/layout/section.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "heading",
      "type": "registry:component",
      "title": "Heading",
      "description": "Polymorphic heading with Forge display, title, section, and subsection typography levels for consistent visual hierarchy.",
      "categories": [
        "typography",
        "content"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/typography/heading.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "lead",
      "type": "registry:component",
      "title": "Lead",
      "description": "Polymorphic supporting text component with readable measure and responsive size variants for page introductions and marketing copy.",
      "categories": [
        "typography",
        "content"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/typography/lead.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "prose",
      "type": "registry:component",
      "title": "Prose",
      "description": "Polymorphic long-form content wrapper with typography styling and readable width variants for articles, documentation, and legal copy.",
      "categories": [
        "typography",
        "content"
      ],
      "dependencies": [
        "class-variance-authority",
        "radix-ui"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/typography/prose.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "mode-toggle",
      "type": "registry:component",
      "title": "Theme Mode Toggle",
      "description": "Client-side dropdown for switching between light, dark, and system themes in an application configured with next-themes.",
      "categories": [
        "theme",
        "navigation",
        "interactive"
      ],
      "dependencies": [
        "@radix-ui/react-icons",
        "next-themes"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/button",
        "@forge/dropdown-menu"
      ],
      "files": [
        {
          "path": "components/mode-toggle.tsx",
          "type": "registry:component"
        }
      ],
      "docs": "Requires a next-themes ThemeProvider mounted above the component."
    },
    {
      "name": "activity-feed",
      "type": "registry:block",
      "title": "Activity Feed",
      "description": "Chronological activity timeline with actor avatars or custom icons, rich event descriptions, timestamps, and connecting rules.",
      "categories": [
        "application",
        "activity",
        "list"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/avatar",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/activity-feed.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "analytics-view",
      "type": "registry:block",
      "title": "Analytics View",
      "description": "Whole analytics page: a date-ranged header, a responsive KPI row of metric trend cards, and one wide card for the headline series.",
      "categories": [
        "application",
        "dashboard",
        "analytics",
        "chart"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/chart-card",
        "@forge/date-range-picker",
        "@forge/page-header",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/analytics-view.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [
        "react-day-picker"
      ]
    },
    {
      "name": "app-shell",
      "type": "registry:block",
      "title": "Dashboard App Shell",
      "description": "Authenticated product shell with sticky brand nav and neutral Forge theme surface — layout parity with marketing-site-shell.",
      "categories": [
        "application",
        "navigation",
        "layout",
        "dashboard"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/button",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/app-shell.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "sidebar-shell",
      "type": "registry:block",
      "title": "Dashboard Sidebar Shell",
      "description": "Authenticated product shell with a collapsible left sidebar, inset top bar, and shared Forge tokens — alternative to the top-nav app-shell.",
      "categories": [
        "application",
        "navigation",
        "layout",
        "dashboard"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/button",
        "@forge/sidebar",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/sidebar-shell.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "article-header",
      "type": "registry:block",
      "title": "Article Header",
      "description": "Title and optional introductory lede for long-form articles, legal pages, documentation, and editorial content.",
      "categories": [
        "application",
        "content",
        "header"
      ],
      "files": [
        {
          "path": "components/patterns/article-header.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [
        "@forge/forge-theme"
      ]
    },
    {
      "name": "chart-card",
      "type": "registry:block",
      "title": "Chart Metric Card",
      "description": "Dashboard card combining a headline metric, signed trend, caption, and responsive area chart with a formatted tooltip.",
      "categories": [
        "application",
        "dashboard",
        "chart",
        "analytics"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/chart-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "command-menu",
      "type": "registry:block",
      "title": "Command Menu",
      "description": "Searchable grouped command dialog with optional icons, keywords, shortcuts, controlled state, and Command-K keyboard activation.",
      "categories": [
        "application",
        "command",
        "navigation",
        "interactive"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/command"
      ],
      "files": [
        {
          "path": "components/patterns/command-menu.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "data-table",
      "type": "registry:block",
      "title": "Data Table",
      "description": "Generic presentational data table driven by typed column definitions, custom cell renderers, alignment, widths, row keys, and an empty state.",
      "categories": [
        "application",
        "table",
        "data"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/table",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/data-table.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "date-range-picker",
      "type": "registry:block",
      "title": "Date Range Picker",
      "description": "Controlled date-range popover with a two-month calendar, formatted trigger label, and configurable quick-select presets.",
      "categories": [
        "application",
        "date",
        "filter",
        "interactive"
      ],
      "dependencies": [
        "date-fns",
        "lucide-react",
        "react-day-picker"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/button",
        "@forge/calendar",
        "@forge/popover",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/date-range-picker.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "description-list",
      "type": "registry:block",
      "title": "Description List",
      "description": "Responsive semantic definition list for record metadata, account details, plan summaries, and other term-value pairs.",
      "categories": [
        "application",
        "details",
        "data"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/description-list.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "detail-header",
      "type": "registry:block",
      "title": "Detail Page Header",
      "description": "Single-record page header with an optional back link, title, inline status, supporting description, and trailing actions.",
      "categories": [
        "application",
        "header",
        "details"
      ],
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/heading",
        "@forge/lead",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/detail-header.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "empty-state",
      "type": "registry:block",
      "title": "Empty State",
      "description": "Consistent zero-state composition for empty lists, searches, and panels with optional icon, title, description, and action slots.",
      "categories": [
        "application",
        "empty-state",
        "feedback"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/empty"
      ],
      "files": [
        {
          "path": "components/patterns/empty-state.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "notification-list",
      "type": "registry:block",
      "title": "Notification List",
      "description": "Vertical notification collection with icons, titles, supporting text, timestamps, unread highlighting, and a configurable empty state.",
      "categories": [
        "application",
        "notifications",
        "list"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/notification-list.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "page-header",
      "type": "registry:block",
      "title": "Application Page Header",
      "description": "Responsive application page heading with title, optional supporting description, and a trailing cluster for primary actions.",
      "categories": [
        "application",
        "header",
        "layout"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/heading",
        "@forge/lead",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/page-header.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "section-card",
      "type": "registry:block",
      "title": "Dashboard Section Card",
      "description": "Reusable dashboard panel with title, description, header action, padded or flush body content, and optional footer.",
      "categories": [
        "application",
        "dashboard",
        "card"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/section-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "settings-audit-view",
      "type": "registry:block",
      "title": "Settings Audit View",
      "description": "Whole audit log page: a header with an export action over a flush table of events, with built-in empty and permission-denied states.",
      "categories": [
        "application",
        "dashboard",
        "settings",
        "table"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/button",
        "@forge/data-table",
        "@forge/empty-state",
        "@forge/page-header",
        "@forge/section-card",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/settings-audit-view.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [
        "lucide-react"
      ]
    },
    {
      "name": "settings-billing-view",
      "type": "registry:block",
      "title": "Settings Billing View",
      "description": "Whole billing page: a term/value plan summary beside a seat usage meter, with an unavailable state for hosts with no subscription to show.",
      "categories": [
        "application",
        "dashboard",
        "settings",
        "billing"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/badge",
        "@forge/description-list",
        "@forge/empty-state",
        "@forge/page-header",
        "@forge/section-card",
        "@forge/usage-meter",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/settings-billing-view.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [
        "lucide-react"
      ]
    },
    {
      "name": "settings-limits-view",
      "type": "registry:block",
      "title": "Settings Limits View",
      "description": "Whole limits page: a header with an upgrade action over two columns of usage meters for plan allowances and per-period rate limits.",
      "categories": [
        "application",
        "dashboard",
        "settings",
        "usage"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/button",
        "@forge/page-header",
        "@forge/section-card",
        "@forge/usage-meter",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/settings-limits-view.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "stat-card",
      "type": "registry:block",
      "title": "Statistic Card",
      "description": "Dashboard metric card with label, headline value, optional icon, signed percentage trend, and comparison caption.",
      "categories": [
        "application",
        "dashboard",
        "analytics",
        "card"
      ],
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/stat-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "stepper",
      "type": "registry:block",
      "title": "Progress Stepper",
      "description": "Horizontal wizard progress indicator with completed, current, and upcoming step states plus optional step descriptions.",
      "categories": [
        "application",
        "progress",
        "navigation"
      ],
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/stepper.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "surface-link",
      "type": "registry:block",
      "title": "Surface Link",
      "description": "Mode-aware link that renders a host router link or anchor when live and inert markup when previewed inside a design surface.",
      "categories": [
        "application",
        "navigation"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/surface-link.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "toolbar",
      "type": "registry:block",
      "title": "List Toolbar",
      "description": "Responsive control row for lists and tables with an optional search field, filter controls, and right-aligned actions.",
      "categories": [
        "application",
        "toolbar",
        "search",
        "filter"
      ],
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/input-group",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/toolbar.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "usage-meter",
      "type": "registry:block",
      "title": "Usage Meter",
      "description": "Labelled resource usage bar with formatted consumed and limit values, optional units, and configurable near-limit warning styling.",
      "categories": [
        "application",
        "progress",
        "billing",
        "usage"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/progress",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/usage-meter.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "cta",
      "type": "registry:block",
      "title": "Call to Action",
      "description": "Centered closing call-to-action band with brand-ink typography, atmospheric glow, and action buttons.",
      "categories": [
        "marketing",
        "call-to-action",
        "conversion"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/marketing/cta.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "faq",
      "type": "registry:block",
      "title": "Frequently Asked Questions",
      "description": "Two-column brand-ink FAQ with introductory copy and action on one side and a styled accordion on the other.",
      "categories": [
        "marketing",
        "faq",
        "accordion"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/marketing-home",
        "@forge/accordion",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/marketing/faq.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "feature-card",
      "type": "registry:block",
      "title": "Feature Card",
      "description": "Marketing feature tile with optional icon, heading, description, and default or wide grid-span variants for asymmetric feature layouts.",
      "categories": [
        "marketing",
        "features",
        "card"
      ],
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/marketing/feature-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "feature-grid",
      "type": "registry:block",
      "title": "Feature Grid",
      "description": "Responsive one-, two-, and three-column grid shell designed for feature cards and asymmetric wide feature cells.",
      "categories": [
        "marketing",
        "features",
        "layout"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/marketing/feature-grid.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "hero",
      "type": "registry:block",
      "title": "Marketing Hero",
      "description": "Centered landing-page hero with brand-ink typography, announcement pill, supporting copy, and CTA slots.",
      "categories": [
        "marketing",
        "hero",
        "conversion"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/marketing/hero.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "testimonial-card",
      "type": "registry:block",
      "title": "Testimonial Card",
      "description": "Customer testimonial panel on a brand panel with optional icon, quote heading and copy, plus author avatar.",
      "categories": [
        "marketing",
        "testimonials",
        "social-proof",
        "card"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/avatar",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/marketing/testimonial-card.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "testimonials",
      "type": "registry:block",
      "title": "Testimonials Carousel",
      "description": "Auto-advancing brand-ink testimonial carousel with reusable cards, heading, and configurable interval.",
      "categories": [
        "marketing",
        "testimonials",
        "social-proof",
        "carousel"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/marketing-home",
        "@forge/testimonial-card",
        "@forge/carousel",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/marketing/testimonials.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "marketing-home",
      "type": "registry:block",
      "title": "Marketing Home",
      "description": "Composable dark editorial homepage sections including hero, social proof, features, stats, testimonials, FAQ, and closing CTA.",
      "categories": [
        "marketing",
        "landing-page"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/accordion",
        "@forge/button"
      ],
      "files": [
        {
          "path": "components/marketing/home.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "marketing-site-shell",
      "type": "registry:block",
      "title": "Marketing Site Shell",
      "description": "Portable dark marketing shell with prop-driven sticky navigation, actions, footer copy, and link columns.",
      "categories": [
        "marketing",
        "navigation",
        "layout"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/button"
      ],
      "files": [
        {
          "path": "components/marketing/site-shell.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "marketing-page-header",
      "type": "registry:block",
      "title": "Marketing Page Header",
      "description": "Centered editorial page header with a red atmospheric glow, eyebrow, supporting copy, and optional action.",
      "categories": [
        "marketing",
        "header"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/marketing-home"
      ],
      "files": [
        {
          "path": "components/marketing/page-header.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "marketing-pricing",
      "type": "registry:block",
      "title": "Marketing Pricing",
      "description": "Prop-driven plan cards and responsive feature comparison table with a highlighted plan.",
      "categories": [
        "marketing",
        "pricing"
      ],
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/marketing-home",
        "@forge/button"
      ],
      "files": [
        {
          "path": "components/marketing/pricing.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "marketing-contact-form",
      "type": "registry:block",
      "title": "Marketing Contact Form",
      "description": "Validated contact form with configurable labels, defaults, and an application-owned submit handler.",
      "categories": [
        "marketing",
        "forms",
        "contact"
      ],
      "dependencies": [
        "@hookform/resolvers",
        "lucide-react",
        "react-hook-form",
        "zod"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/button",
        "@forge/form",
        "@forge/input",
        "@forge/textarea"
      ],
      "files": [
        {
          "path": "components/marketing/contact-form.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "marketing-blog",
      "type": "registry:block",
      "title": "Marketing Blog",
      "description": "Editorial blog card, sticky article metadata rail, scroll-aware table of contents, and share actions in the marketing visual language.",
      "categories": [
        "marketing",
        "blog",
        "editorial"
      ],
      "dependencies": [
        "lucide-react"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/marketing-home"
      ],
      "files": [
        {
          "path": "components/marketing/blog.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "marketing-team-grid",
      "type": "registry:block",
      "title": "Marketing Team Grid",
      "description": "Responsive grid of people with portrait, name, role, short bio, specialty tags, and optional profile link for an about page.",
      "categories": [
        "marketing",
        "about",
        "team"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/marketing-home",
        "@forge/avatar",
        "@forge/badge"
      ],
      "files": [
        {
          "path": "components/marketing/team-grid.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "marketing-legal-doc",
      "type": "registry:block",
      "title": "Marketing Legal Doc",
      "description": "Legal and policy document layout with back link, eyebrow, title, lede, revision date, a generated table of contents, and a flat list of headed multi-paragraph sections.",
      "categories": [
        "marketing",
        "legal",
        "long-form"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/marketing-home"
      ],
      "files": [
        {
          "path": "components/marketing/legal-doc.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "marketing-prose",
      "type": "registry:block",
      "title": "Marketing Prose",
      "description": "Long-form prose container that gives MDX-ish marketing copy — headings, paragraphs, lists, links, quotes, and code — its typographic rhythm.",
      "categories": [
        "marketing",
        "long-form",
        "typography"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/marketing/prose.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "json-render",
      "type": "registry:lib",
      "title": "json-render Runtime",
      "description": "Catalogs, adapters, spec validation, renderer, and catalog browsing for composing Forge UI as json-render specs.",
      "categories": [
        "json-render",
        "foundation"
      ],
      "dependencies": [
        "@json-render/core",
        "@json-render/react",
        "@json-render/codegen",
        "@json-render/shadcn",
        "zod"
      ],
      "registryDependencies": [
        "@forge/theme-contract",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "json-render/actions.ts",
          "type": "registry:lib",
          "target": "json-render/actions.ts"
        },
        {
          "path": "json-render/catalog-meta.ts",
          "type": "registry:lib",
          "target": "json-render/catalog-meta.ts"
        },
        {
          "path": "json-render/catalogs/dashboard.ts",
          "type": "registry:lib",
          "target": "json-render/catalogs/dashboard.ts"
        },
        {
          "path": "json-render/catalogs/lab.ts",
          "type": "registry:lib",
          "target": "json-render/catalogs/lab.ts"
        },
        {
          "path": "json-render/catalogs/marketing.ts",
          "type": "registry:lib",
          "target": "json-render/catalogs/marketing.ts"
        },
        {
          "path": "json-render/catalogs/shared.ts",
          "type": "registry:lib",
          "target": "json-render/catalogs/shared.ts"
        },
        {
          "path": "json-render/codegen/generate-spec-module.ts",
          "type": "registry:lib",
          "target": "json-render/codegen/generate-spec-module.ts"
        },
        {
          "path": "json-render/codegen/spec-utils.ts",
          "type": "registry:lib",
          "target": "json-render/codegen/spec-utils.ts"
        },
        {
          "path": "json-render/forge/components.tsx",
          "type": "registry:lib",
          "target": "json-render/forge/components.tsx"
        },
        {
          "path": "json-render/forge/definitions.ts",
          "type": "registry:lib",
          "target": "json-render/forge/definitions.ts"
        },
        {
          "path": "json-render/generated/provenance.ts",
          "type": "registry:lib",
          "target": "json-render/generated/provenance.ts"
        },
        {
          "path": "json-render/generated/registry-meta.ts",
          "type": "registry:lib",
          "target": "json-render/generated/registry-meta.ts"
        },
        {
          "path": "json-render/registries/dashboard.tsx",
          "type": "registry:lib",
          "target": "json-render/registries/dashboard.tsx"
        },
        {
          "path": "json-render/registries/lab.tsx",
          "type": "registry:lib",
          "target": "json-render/registries/lab.tsx"
        },
        {
          "path": "json-render/registries/marketing.tsx",
          "type": "registry:lib",
          "target": "json-render/registries/marketing.tsx"
        },
        {
          "path": "json-render/registries/shared.tsx",
          "type": "registry:lib",
          "target": "json-render/registries/shared.tsx"
        },
        {
          "path": "json-render/renderer.tsx",
          "type": "registry:lib",
          "target": "json-render/renderer.tsx"
        },
        {
          "path": "json-render/rules.ts",
          "type": "registry:lib",
          "target": "json-render/rules.ts"
        },
        {
          "path": "json-render/runtime.ts",
          "type": "registry:lib",
          "target": "json-render/runtime.ts"
        },
        {
          "path": "json-render/shadcn-definitions.ts",
          "type": "registry:lib",
          "target": "json-render/shadcn-definitions.ts"
        },
        {
          "path": "json-render/shadcn.ts",
          "type": "registry:lib",
          "target": "json-render/shadcn.ts"
        },
        {
          "path": "json-render/validate.ts",
          "type": "registry:lib",
          "target": "json-render/validate.ts"
        }
      ]
    },
    {
      "name": "settings-team-view",
      "type": "registry:block",
      "title": "Settings Team View",
      "description": "Whole team page: a header with an invite action over a searchable, flush table of members, with a built-in empty state and slots for the invite trigger and per-row actions.",
      "categories": [
        "application",
        "dashboard",
        "settings",
        "table"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/avatar",
        "@forge/badge",
        "@forge/button",
        "@forge/data-table",
        "@forge/empty-state",
        "@forge/page-header",
        "@forge/section-card",
        "@forge/toolbar",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/settings-team-view.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [
        "lucide-react"
      ]
    },
    {
      "name": "settings-api-keys-view",
      "type": "registry:block",
      "title": "Settings API Keys View",
      "description": "Whole API keys page: a header with a create action over a flush table of issued keys, each shown redacted, with slots for the create trigger and per-row revoke control.",
      "categories": [
        "application",
        "dashboard",
        "settings",
        "table"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/button",
        "@forge/data-table",
        "@forge/page-header",
        "@forge/section-card",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/patterns/settings-api-keys-view.tsx",
          "type": "registry:component"
        }
      ],
      "dependencies": [
        "lucide-react"
      ]
    },
    {
      "name": "design-studio",
      "type": "registry:lib",
      "title": "Design Studio",
      "description": "Headless state and slot-driven UI for a json-render design studio: selection, spec streaming, validation, live preview, saved sessions, and codegen. Imports no design system; the host injects the shadcn primitives it draws with.",
      "categories": [
        "json-render",
        "foundation"
      ],
      "dependencies": [
        "@json-render/core",
        "@json-render/react",
        "lucide-react"
      ],
      "files": [
        {
          "path": "packages/design-studio/src/index.ts",
          "type": "registry:lib",
          "target": "~/src/index.ts"
        },
        {
          "path": "packages/design-studio/src/lib/selection.ts",
          "type": "registry:lib",
          "target": "~/src/lib/selection.ts"
        },
        {
          "path": "packages/design-studio/src/lib/spec.ts",
          "type": "registry:lib",
          "target": "~/src/lib/spec.ts"
        },
        {
          "path": "packages/design-studio/src/server/index.ts",
          "type": "registry:lib",
          "target": "~/src/server/index.ts"
        },
        {
          "path": "packages/design-studio/src/server/spec-stream-route.ts",
          "type": "registry:lib",
          "target": "~/src/server/spec-stream-route.ts"
        },
        {
          "path": "packages/design-studio/src/state/studio-context.tsx",
          "type": "registry:lib",
          "target": "~/src/state/studio-context.tsx"
        },
        {
          "path": "packages/design-studio/src/state/use-codegen.ts",
          "type": "registry:lib",
          "target": "~/src/state/use-codegen.ts"
        },
        {
          "path": "packages/design-studio/src/state/use-scroll-memory.ts",
          "type": "registry:lib",
          "target": "~/src/state/use-scroll-memory.ts"
        },
        {
          "path": "packages/design-studio/src/state/use-selection.ts",
          "type": "registry:lib",
          "target": "~/src/state/use-selection.ts"
        },
        {
          "path": "packages/design-studio/src/state/use-sessions.ts",
          "type": "registry:lib",
          "target": "~/src/state/use-sessions.ts"
        },
        {
          "path": "packages/design-studio/src/state/use-spec-stream.ts",
          "type": "registry:lib",
          "target": "~/src/state/use-spec-stream.ts"
        },
        {
          "path": "packages/design-studio/src/state/use-studio.ts",
          "type": "registry:lib",
          "target": "~/src/state/use-studio.ts"
        },
        {
          "path": "packages/design-studio/src/types.ts",
          "type": "registry:lib",
          "target": "~/src/types.ts"
        },
        {
          "path": "packages/design-studio/src/ui/cn.ts",
          "type": "registry:lib",
          "target": "~/src/ui/cn.ts"
        },
        {
          "path": "packages/design-studio/src/ui/layouts/studio-split.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/layouts/studio-split.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/primitives.ts",
          "type": "registry:lib",
          "target": "~/src/ui/primitives.ts"
        },
        {
          "path": "packages/design-studio/src/ui/sections/action-bar.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/sections/action-bar.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/sections/canvas-section.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/sections/canvas-section.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/sections/field.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/sections/field.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/sections/generated-files-section.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/sections/generated-files-section.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/sections/library-inspector.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/sections/library-inspector.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/sections/mode-config-section.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/sections/mode-config-section.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/sections/notices-section.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/sections/notices-section.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/sections/prompt-section.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/sections/prompt-section.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/sections/sessions-section.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/sections/sessions-section.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/sections/spec-editor-section.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/sections/spec-editor-section.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/sections/studio-sidebar.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/sections/studio-sidebar.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/spec-canvas.tsx",
          "type": "registry:lib",
          "target": "~/src/ui/spec-canvas.tsx"
        },
        {
          "path": "packages/design-studio/src/ui/use-primitives.ts",
          "type": "registry:lib",
          "target": "~/src/ui/use-primitives.ts"
        },
        {
          "path": "packages/design-studio/README.md",
          "type": "registry:lib",
          "target": "~/README.md"
        }
      ]
    },
    {
      "name": "dashboard-01",
      "type": "registry:block",
      "title": "Analytics Dashboard",
      "description": "Full analytics dashboard page: authenticated app shell with primary nav, KPI stat row, and a headline trend chart. Installs as a routable page with demo data beside it.",
      "categories": [
        "application",
        "dashboard",
        "analytics",
        "page"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/app-shell",
        "@forge/analytics-view",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "blocks/dashboard-01/page.tsx",
          "type": "registry:page",
          "target": "app/dashboard/page.tsx"
        },
        {
          "path": "blocks/dashboard-01/data.json",
          "type": "registry:file",
          "target": "app/dashboard/data.json"
        },
        {
          "path": "blocks/dashboard-01/components/app-header.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "marketing-01",
      "type": "registry:block",
      "title": "Careers Page",
      "description": "Marketing careers page with hero header and open roles. (codegen draft — refine before publish)",
      "categories": [
        "marketing",
        "page"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/marketing-site-shell",
        "@forge/container",
        "@forge/lead",
        "@forge/marketing-page-header",
        "@forge/section",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "blocks/marketing-01/page.tsx",
          "type": "registry:page",
          "target": "app/marketing/page.tsx"
        }
      ]
    },
    {
      "name": "chart-area-default",
      "type": "registry:block",
      "title": "Area Chart",
      "description": "A filled area chart over a monthly series.",
      "categories": [
        "charts",
        "charts-area"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-area-default.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chart-area-stacked",
      "type": "registry:block",
      "title": "Area Chart – Stacked",
      "description": "Two stacked series in one filled area chart.",
      "categories": [
        "charts",
        "charts-area"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-area-stacked.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chart-area-interactive",
      "type": "registry:block",
      "title": "Area Chart – Interactive",
      "description": "A dual-series daily area chart with a time-range selector.",
      "categories": [
        "charts",
        "charts-area"
      ],
      "dependencies": [
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/select",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-area-interactive.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chart-bar-default",
      "type": "registry:block",
      "title": "Bar Chart",
      "description": "A single-series monthly bar chart.",
      "categories": [
        "charts",
        "charts-bar"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-bar-default.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chart-bar-multiple",
      "type": "registry:block",
      "title": "Bar Chart – Multiple",
      "description": "Two grouped series in a monthly bar chart.",
      "categories": [
        "charts",
        "charts-bar"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-bar-multiple.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chart-bar-horizontal",
      "type": "registry:block",
      "title": "Bar Chart – Horizontal",
      "description": "A single-series bar chart laid out horizontally.",
      "categories": [
        "charts",
        "charts-bar"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-bar-horizontal.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chart-bar-stacked",
      "type": "registry:block",
      "title": "Bar Chart – Stacked",
      "description": "Two series stacked in one monthly bar chart, with a legend.",
      "categories": [
        "charts",
        "charts-bar"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-bar-stacked.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chart-line-default",
      "type": "registry:block",
      "title": "Line Chart",
      "description": "A single-series monthly line chart.",
      "categories": [
        "charts",
        "charts-line"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-line-default.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chart-line-multiple",
      "type": "registry:block",
      "title": "Line Chart – Multiple",
      "description": "Two series on one monthly line chart.",
      "categories": [
        "charts",
        "charts-line"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-line-multiple.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chart-pie-donut",
      "type": "registry:block",
      "title": "Pie Chart – Donut",
      "description": "A donut chart of visitors by browser.",
      "categories": [
        "charts",
        "charts-pie"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-pie-donut.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chart-pie-donut-text",
      "type": "registry:block",
      "title": "Pie Chart – Donut with Text",
      "description": "A donut chart with the series total rendered in the center.",
      "categories": [
        "charts",
        "charts-pie"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-pie-donut-text.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chart-radar-default",
      "type": "registry:block",
      "title": "Radar Chart",
      "description": "A single-series radar chart over six months.",
      "categories": [
        "charts",
        "charts-radar"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-radar-default.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "chart-radial-text",
      "type": "registry:block",
      "title": "Radial Chart – Text",
      "description": "A single radial gauge with the value rendered in the center.",
      "categories": [
        "charts",
        "charts-radial"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/card",
        "@forge/chart",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/charts/chart-radial-text.tsx",
          "type": "registry:component"
        }
      ]
    },
    {
      "name": "preview-mosaic",
      "type": "registry:block",
      "title": "Preview Mosaic",
      "description": "A dense mosaic of composed Forge surfaces — typography, forms, stats, charts, empty/loading/404 states, lists, and steppers — for theming previews and marketing showcases.",
      "categories": [
        "marketing",
        "showcase",
        "preview"
      ],
      "dependencies": [
        "lucide-react",
        "recharts"
      ],
      "registryDependencies": [
        "@forge/forge-theme",
        "@forge/chart-pie-donut-text",
        "@forge/chart-card",
        "@forge/empty-state",
        "@forge/notification-list",
        "@forge/stat-card",
        "@forge/stepper",
        "@forge/usage-meter",
        "@forge/badge",
        "@forge/button",
        "@forge/card",
        "@forge/checkbox",
        "@forge/input",
        "@forge/label",
        "@forge/skeleton",
        "@forge/switch",
        "@forge/utils"
      ],
      "files": [
        {
          "path": "components/marketing/preview-mosaic.tsx",
          "type": "registry:component"
        }
      ]
    }
  ]
}
