{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "vllnt",
  "homepage": "https://ui.vllnt.ai",
  "items": [
    {
      "name": "accordion",
      "type": "registry:component",
      "title": "Accordion",
      "description": "Collapsible content sections supporting single or multiple open items.",
      "files": [
        {
          "path": "registry/default/accordion/accordion.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "activity-heatmap",
      "type": "registry:component",
      "title": "Activity Heatmap",
      "description": "Contribution-style grid for visualizing operational activity over time.",
      "files": [
        {
          "path": "registry/default/activity-heatmap/activity-heatmap.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "activity-log",
      "type": "registry:component",
      "title": "Activity Log",
      "description": "Paginated activity feed for audit history and analytics changes.",
      "files": [
        {
          "path": "registry/default/activity-log/activity-log.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "agent-activity",
      "type": "registry:component",
      "title": "Agent Activity",
      "description": "Visual display of an AI agent's execution chain — steps, tools, decisions, progress.",
      "files": [
        {
          "path": "registry/default/agent-activity/agent-activity.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "ai",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "ai-artifact",
      "type": "registry:component",
      "title": "AI Artifact",
      "description": "Rendered output area for AI-generated content with toolbar, copy/edit/download/fullscreen actions, and version chips.",
      "files": [
        {
          "path": "registry/default/ai-artifact/ai-artifact.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "ai",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "ai-chat-input",
      "type": "registry:component",
      "title": "AI Chat Input",
      "description": "Prompt composer for conversational interfaces with helper text, toolbar actions, and submit states.",
      "files": [
        {
          "path": "registry/default/ai-chat-input/ai-chat-input.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "ai-message-bubble",
      "type": "registry:component",
      "title": "AI Message Bubble",
      "description": "Chat bubble for assistant, user, tool, and system messages using the current design system surfaces.",
      "files": [
        {
          "path": "registry/default/ai-message-bubble/ai-message-bubble.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "class-variance-authority"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "ai-sidebar",
      "type": "registry:component",
      "title": "AI Sidebar",
      "description": "Slide-out AI assistant panel with provider, header / content / footer slots, and a standalone trigger.",
      "files": [
        {
          "path": "registry/default/ai-sidebar/ai-sidebar.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "ai",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "ai-source-citation",
      "type": "registry:component",
      "title": "AI Source Citation",
      "description": "Compact source reference card for AI answers with a title, origin label, and optional excerpt.",
      "files": [
        {
          "path": "registry/default/ai-source-citation/ai-source-citation.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "ai-streaming-text",
      "type": "registry:component",
      "title": "AI Streaming Text",
      "description": "Readable text block for partial assistant output with an optional live cursor while tokens stream in.",
      "files": [
        {
          "path": "registry/default/ai-streaming-text/ai-streaming-text.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "ai-tool-call-display",
      "type": "registry:component",
      "title": "AI Tool Call Display",
      "description": "Structured card for tool invocation traces, statuses, serialized input, and returned output.",
      "files": [
        {
          "path": "registry/default/ai-tool-call-display/ai-tool-call-display.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "class-variance-authority",
        "lucide-react"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "alert",
      "type": "registry:component",
      "title": "Alert",
      "description": "Displays an alert message to the user.",
      "files": [
        {
          "path": "registry/default/alert/alert.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "alert-dialog",
      "type": "registry:component",
      "title": "Alert Dialog",
      "description": "Modal dialog for confirming destructive or important actions.",
      "files": [
        {
          "path": "registry/default/alert-dialog/alert-dialog.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "alert-pulse",
      "type": "registry:component",
      "title": "Alert Pulse",
      "description": "Pulsing ring overlay for alerting canvas objects, with severity tones.",
      "files": [
        {
          "path": "registry/default/alert-pulse/alert-pulse.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "anchor-port",
      "type": "registry:component",
      "title": "Anchor Port",
      "description": "Port marker for object inputs, outputs, and bidirectional links on the canvas.",
      "files": [
        {
          "path": "registry/default/anchor-port/anchor-port.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "animated-text",
      "type": "registry:component",
      "title": "Animated Text",
      "description": "Staggered text reveal for headings, pull quotes, and short supporting copy.",
      "files": [
        {
          "path": "registry/default/animated-text/animated-text.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "annotation",
      "type": "registry:component",
      "title": "Annotation",
      "description": "Inline highlight with an attached contextual note.",
      "files": [
        {
          "path": "registry/default/annotation/annotation.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "area-chart",
      "type": "registry:component",
      "title": "Area Chart",
      "description": "Renders an area chart for data visualization.",
      "files": [
        {
          "path": "registry/default/area-chart/area-chart.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "category": "data"
    },
    {
      "name": "aspect-ratio",
      "type": "registry:component",
      "title": "Aspect Ratio",
      "description": "Constrains content to a specified aspect ratio.",
      "files": [
        {
          "path": "registry/default/aspect-ratio/aspect-ratio.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "auto-reload",
      "type": "registry:component",
      "title": "Auto Reload",
      "description": "Toggle + collapsible threshold/amount form for automatic credit reloading with locale-aware currency.",
      "files": [
        {
          "path": "registry/default/auto-reload/auto-reload.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "billing",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "avatar",
      "type": "registry:component",
      "title": "Avatar",
      "description": "Displays a user avatar image with fallback initials.",
      "files": [
        {
          "path": "registry/default/avatar/avatar.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "avatar-group",
      "type": "registry:component",
      "title": "Avatar Group",
      "description": "Overlapping avatar stack for participants, assignees, and collaborative contexts.",
      "files": [
        {
          "path": "registry/default/avatar-group/avatar-group.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "badge",
      "type": "registry:component",
      "title": "Badge",
      "description": "Small status label with variant styles.",
      "files": [
        {
          "path": "registry/default/badge/badge.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "banner",
      "type": "registry:component",
      "title": "Banner",
      "description": "Full-width announcement bar with variants, dismissal, and an optional action slot.",
      "files": [
        {
          "path": "registry/default/banner/banner.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react",
        "class-variance-authority",
        "@radix-ui/react-slot"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "bar-chart",
      "type": "registry:component",
      "title": "Bar Chart",
      "description": "Renders a bar chart for data visualization.",
      "files": [
        {
          "path": "registry/default/bar-chart/bar-chart.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "category": "data"
    },
    {
      "name": "blog-card",
      "type": "registry:component",
      "title": "Blog Card",
      "description": "Card layout for displaying blog post previews.",
      "files": [
        {
          "path": "registry/default/blog-card/blog-card.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "border-beam",
      "type": "registry:component",
      "title": "Border Beam",
      "description": "Animated accent beam that travels around the border of a highlighted surface.",
      "files": [
        {
          "path": "registry/default/border-beam/border-beam.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "bottom-activity-strip",
      "type": "registry:component",
      "title": "Bottom Activity Strip",
      "description": "Slim horizontally-scrolling row of recent canvas events for low-noise live activity.",
      "files": [
        {
          "path": "registry/default/bottom-activity-strip/bottom-activity-strip.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "breadcrumb",
      "type": "registry:component",
      "title": "Breadcrumb",
      "description": "Navigation breadcrumb trail showing the current page hierarchy.",
      "files": [
        {
          "path": "registry/default/breadcrumb/breadcrumb.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "button",
      "type": "registry:component",
      "title": "Button",
      "description": "Interactive button with multiple variants and sizes.",
      "files": [
        {
          "path": "registry/default/button/button.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable",
      "examples": [
        {
          "title": "Default",
          "description": "Default button with primary variant.",
          "code": "import { Button } from \"@vllnt/ui\";\n\nexport function Demo() {\n  return <Button>Click me</Button>;\n}\n",
          "framework": "react"
        },
        {
          "title": "Variants",
          "description": "All variant styles in one row.",
          "code": "import { Button } from \"@vllnt/ui\";\n\nexport function Demo() {\n  return (\n    <div className=\"flex gap-2\">\n      <Button variant=\"default\">Default</Button>\n      <Button variant=\"secondary\">Secondary</Button>\n      <Button variant=\"outline\">Outline</Button>\n      <Button variant=\"ghost\">Ghost</Button>\n      <Button variant=\"destructive\">Delete</Button>\n    </div>\n  );\n}\n",
          "framework": "react"
        },
        {
          "title": "Loading state",
          "description": "Disabled button with a spinner — keeps width stable so layouts don't jump.",
          "code": "import { Button, Spinner } from \"@vllnt/ui\";\n\nexport function Demo() {\n  return (\n    <Button disabled>\n      <Spinner className=\"h-4 w-4\" />\n      Saving…\n    </Button>\n  );\n}\n",
          "framework": "react"
        }
      ],
      "props": [
        {
          "name": "variant",
          "type": "\"default\" | \"secondary\" | \"outline\" | \"ghost\" | \"destructive\" | \"link\"",
          "required": false,
          "defaultValue": "\"default\"",
          "description": "Visual variant. Use \"destructive\" only for irreversible actions; \"link\" only inside text flow."
        },
        {
          "name": "size",
          "type": "\"default\" | \"sm\" | \"lg\" | \"icon\"",
          "required": false,
          "defaultValue": "\"default\"",
          "description": "Size token. Use \"icon\" for icon-only buttons."
        },
        {
          "name": "asChild",
          "type": "boolean",
          "required": false,
          "defaultValue": "false",
          "description": "If true, the underlying element is the first child (Radix Slot pattern). Use to render a Next.js Link or another routing element while keeping Button styles."
        },
        {
          "name": "disabled",
          "type": "boolean",
          "required": false,
          "defaultValue": "false",
          "description": "Visually and functionally disabled. Pair with `aria-disabled` if you need event handlers to keep firing."
        },
        {
          "name": "type",
          "type": "\"button\" | \"submit\" | \"reset\"",
          "required": false,
          "defaultValue": "\"button\"",
          "description": "HTML button type. Set explicitly to \"submit\" inside <form>, otherwise the implicit submit behaviour can surprise users."
        },
        {
          "name": "...rest",
          "type": "ButtonHTMLAttributes<HTMLButtonElement>",
          "required": false,
          "description": "All native <button> attributes are forwarded."
        }
      ]
    },
    {
      "name": "calendar",
      "type": "registry:component",
      "title": "Calendar",
      "description": "Date picker calendar for selecting dates.",
      "files": [
        {
          "path": "registry/default/calendar/calendar.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "callout",
      "type": "registry:component",
      "title": "Callout",
      "description": "Highlighted content block with variant styles for info, warning, danger, and more.",
      "files": [
        {
          "path": "registry/default/callout/callout.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "candlestick-chart",
      "type": "registry:component",
      "title": "Candlestick Chart",
      "description": "OHLC financial chart for session-by-session price action.",
      "files": [
        {
          "path": "registry/default/candlestick-chart/candlestick-chart.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "canvas-shell",
      "type": "registry:component",
      "title": "Canvas Shell",
      "description": "Layout shell for canvas workspaces with top bar, left rail, right dock, and bottom slot regions.",
      "files": [
        {
          "path": "registry/default/canvas-shell/canvas-shell.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "canvas-view",
      "type": "registry:component",
      "title": "Canvas View",
      "description": "Interactive pan-and-zoom viewport for spatial surfaces with keyboard, wheel, and overlay support.",
      "files": [
        {
          "path": "registry/default/canvas-view/canvas-view.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "card",
      "type": "registry:component",
      "title": "Card",
      "description": "Container with header, content, and footer sections.",
      "files": [
        {
          "path": "registry/default/card/card.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "carousel",
      "type": "registry:component",
      "title": "Carousel",
      "description": "Scrollable content carousel with navigation controls.",
      "files": [
        {
          "path": "registry/default/carousel/carousel.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "category-filter",
      "type": "registry:component",
      "title": "Category Filter",
      "description": "Filterable category selection for content lists.",
      "files": [
        {
          "path": "registry/default/category-filter/category-filter.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "checkbox",
      "type": "registry:component",
      "title": "Checkbox",
      "description": "Toggle control for boolean input.",
      "files": [
        {
          "path": "registry/default/checkbox/checkbox.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "checklist",
      "type": "registry:component",
      "title": "Checklist",
      "description": "Interactive checklist with progress tracking and toggleable items.",
      "files": [
        {
          "path": "registry/default/checklist/checklist.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "choropleth-map",
      "type": "registry:component",
      "title": "Choropleth Map",
      "description": "Standalone SVG choropleth — region polygons shaded by data value with tooltip, legend, and accessible data-table fallback.",
      "files": [
        {
          "path": "registry/default/choropleth-map/choropleth-map.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "chronological-timeline",
      "type": "registry:component",
      "title": "Chronological Timeline",
      "description": "Media-rich, scroll-driven chronological timeline with alternating cards, image/video/audio media, and a progress strip.",
      "files": [
        {
          "path": "registry/default/chronological-timeline/chronological-timeline.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "civilization-card",
      "type": "registry:component",
      "title": "Civilization Card",
      "description": "Civilization overview with hero band, BCE/CE era timeline, key stats, achievements, and notable leaders.",
      "files": [
        {
          "path": "registry/default/civilization-card/civilization-card.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "educational",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "code-block",
      "type": "registry:component",
      "title": "Code Block",
      "description": "Syntax-highlighted code display with copy support.",
      "files": [
        {
          "path": "registry/default/code-block/code-block.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "code-playground",
      "type": "registry:component",
      "title": "Code Playground",
      "description": "Interactive code editor with live preview.",
      "files": [
        {
          "path": "registry/default/code-playground/code-playground.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "collapsible",
      "type": "registry:component",
      "title": "Collapsible",
      "description": "Expandable and collapsible content section.",
      "files": [
        {
          "path": "registry/default/collapsible/collapsible.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "combobox",
      "type": "registry:component",
      "title": "Combobox",
      "description": "Searchable select input for choosing from a list of options.",
      "files": [
        {
          "path": "registry/default/combobox/combobox.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable",
      "a11y": {
        "role": "combobox",
        "keyboard": [
          {
            "keys": "Enter / Space",
            "action": "open the listbox"
          },
          {
            "keys": "ArrowDown",
            "action": "open + move active option down"
          },
          {
            "keys": "ArrowUp",
            "action": "move active option up"
          },
          {
            "keys": "Escape",
            "action": "close the listbox"
          },
          {
            "keys": "Type-ahead",
            "action": "filter options"
          }
        ],
        "aria": [
          "aria-controls",
          "aria-expanded",
          "aria-haspopup"
        ],
        "focusManagement": "auto",
        "notes": "Trigger button has role='combobox'. Listbox id is wired via React.useId() so consumers don't need to manage it."
      },
      "examples": [
        {
          "title": "Default",
          "description": "Single-select combobox with type-ahead.",
          "code": "import { Combobox } from \"@vllnt/ui\";\n\nconst options = [\n  { label: \"React\", value: \"react\" },\n  { label: \"Vue\", value: \"vue\" },\n  { label: \"Svelte\", value: \"svelte\" },\n  { label: \"Solid\", value: \"solid\" },\n];\n\nexport function Demo() {\n  return <Combobox options={options} placeholder=\"Pick a framework\" />;\n}\n",
          "framework": "react"
        },
        {
          "title": "Controlled",
          "description": "Pair Combobox with React.useState for full control over the selected value.",
          "code": "\"use client\";\nimport * as React from \"react\";\nimport { Combobox } from \"@vllnt/ui\";\n\nconst options = [\n  { label: \"Pending\", value: \"pending\" },\n  { label: \"Approved\", value: \"approved\" },\n  { label: \"Rejected\", value: \"rejected\" },\n];\n\nexport function Demo() {\n  const [value, setValue] = React.useState(\"pending\");\n  return (\n    <Combobox\n      options={options}\n      value={value}\n      onValueChange={setValue}\n      placeholder=\"Status\"\n    />\n  );\n}\n",
          "framework": "react"
        }
      ],
      "props": [
        {
          "name": "options",
          "type": "ComboboxOption[]",
          "required": true,
          "description": "List of options. Each option must have a unique `value`. Optional `keywords` are added to the searchable haystack."
        },
        {
          "name": "value",
          "type": "string",
          "required": false,
          "description": "Controlled selected value. Pair with `onValueChange`. Omit for uncontrolled."
        },
        {
          "name": "onValueChange",
          "type": "(value: string) => void",
          "required": false,
          "description": "Called when the user picks an option (or clears by re-selecting the active one)."
        },
        {
          "name": "placeholder",
          "type": "string",
          "required": false,
          "defaultValue": "\"Select an option\"",
          "description": "Trigger label when no option is selected."
        },
        {
          "name": "searchPlaceholder",
          "type": "string",
          "required": false,
          "defaultValue": "\"Search options...\"",
          "description": "Placeholder for the type-ahead search input inside the listbox."
        },
        {
          "name": "emptyText",
          "type": "string",
          "required": false,
          "defaultValue": "\"No option found.\"",
          "description": "Shown when the search yields zero matches."
        },
        {
          "name": "className",
          "type": "string",
          "required": false,
          "description": "Class applied to the popover content (the listbox container)."
        },
        {
          "name": "triggerClassName",
          "type": "string",
          "required": false,
          "description": "Class applied to the trigger button."
        },
        {
          "name": "commandClassName",
          "type": "string",
          "required": false,
          "description": "Class applied to the inner Command element."
        }
      ]
    },
    {
      "name": "command",
      "type": "registry:component",
      "title": "Command",
      "description": "Command palette with search, groups, and keyboard navigation.",
      "files": [
        {
          "path": "registry/default/command/command.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "comment-pin",
      "type": "registry:component",
      "title": "Comment Pin",
      "description": "Anchored discussion pin rendered at canvas coordinates with author + unread badge.",
      "files": [
        {
          "path": "registry/default/comment-pin/comment-pin.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "comparison",
      "type": "registry:component",
      "title": "Comparison",
      "description": "Side-by-side comparison layout for content or features.",
      "files": [
        {
          "path": "registry/default/comparison/comparison.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "completion-dialog",
      "type": "registry:component",
      "title": "Completion Dialog",
      "description": "Dialog displayed upon completing a task or workflow.",
      "files": [
        {
          "path": "registry/default/completion-dialog/completion-dialog.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "connector-edge",
      "type": "registry:component",
      "title": "Connector Edge",
      "description": "Curved edge between canvas objects with optional inline label state.",
      "files": [
        {
          "path": "registry/default/connector-edge/connector-edge.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "content-intro",
      "type": "registry:component",
      "title": "Content Intro",
      "description": "Introductory section for content pages with title and description.",
      "files": [
        {
          "path": "registry/default/content-intro/content-intro.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "context-lens",
      "type": "registry:component",
      "title": "Context Lens",
      "description": "Vignette overlay that dims the canvas outside a circular focus region.",
      "files": [
        {
          "path": "registry/default/context-lens/context-lens.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "context-menu",
      "type": "registry:component",
      "title": "Context Menu",
      "description": "Right-click context menu with items and submenus.",
      "files": [
        {
          "path": "registry/default/context-menu/context-menu.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "copy-button",
      "type": "registry:component",
      "title": "Copy Button",
      "description": "Click-to-copy utility with confirmation feedback and a useCopyToClipboard hook.",
      "files": [
        {
          "path": "registry/default/copy-button/copy-button.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "countdown-timer",
      "type": "registry:component",
      "title": "Countdown Timer",
      "description": "Countdown and SLA timer for deadlines, escalations, and response windows.",
      "files": [
        {
          "path": "registry/default/countdown-timer/countdown-timer.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "credit-badge",
      "type": "registry:component",
      "title": "Credit Badge",
      "description": "Balance status pill for credits, wallet states, and billing health.",
      "files": [
        {
          "path": "registry/default/credit-badge/credit-badge.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "data-list",
      "type": "registry:component",
      "title": "Data List",
      "description": "Semantic key-value metadata layout for displaying labels with values.",
      "files": [
        {
          "path": "registry/default/data-list/data-list.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "data-table",
      "type": "registry:component",
      "title": "Data Table",
      "description": "Enhanced data table with sorting, filtering, selection, and pagination controls.",
      "files": [
        {
          "path": "registry/default/data-table/data-table.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "@tanstack/react-table"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "date-picker",
      "type": "registry:component",
      "title": "Date Picker",
      "description": "Single-date picker built with the shared calendar and popover primitives.",
      "files": [
        {
          "path": "registry/default/date-picker/date-picker.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "dialog",
      "type": "registry:component",
      "title": "Dialog",
      "description": "Modal dialog overlay for focused content and actions.",
      "files": [
        {
          "path": "registry/default/dialog/dialog.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable",
      "a11y": {
        "role": "dialog",
        "keyboard": [
          {
            "keys": "Escape",
            "action": "close the dialog"
          },
          {
            "keys": "Tab / Shift+Tab",
            "action": "cycle focus within the dialog (focus trap)"
          }
        ],
        "aria": [
          "aria-modal",
          "aria-labelledby",
          "aria-describedby"
        ],
        "focusManagement": "auto",
        "notes": "Built on Radix Dialog: focus trap + restore on close + scroll lock are automatic."
      }
    },
    {
      "name": "document-sibling-nav",
      "type": "registry:component",
      "title": "Document Sibling Nav",
      "description": "Newer/older navigator: links to the previous and next item in an ordered series.",
      "files": [
        {
          "path": "registry/default/document-sibling-nav/document-sibling-nav.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "class-variance-authority"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "drawer",
      "type": "registry:component",
      "title": "Drawer",
      "description": "Slide-out panel anchored to the screen edge.",
      "files": [
        {
          "path": "registry/default/drawer/drawer.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "dropdown-menu",
      "type": "registry:component",
      "title": "Dropdown Menu",
      "description": "Accessible dropdown menu with items, checkboxes, radio groups, and submenus.",
      "files": [
        {
          "path": "registry/default/dropdown-menu/dropdown-menu.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "edge-label",
      "type": "registry:component",
      "title": "Edge Label",
      "description": "Inline edge label for relationship semantics such as streams, handoffs, or policies.",
      "files": [
        {
          "path": "registry/default/edge-label/edge-label.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "empty-state",
      "type": "registry:component",
      "title": "Empty State",
      "description": "Centered placeholder for empty lists, tables, and search results with sm/md/lg sizes.",
      "files": [
        {
          "path": "registry/default/empty-state/empty-state.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "class-variance-authority"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable",
      "examples": [
        {
          "title": "Default",
          "description": "Empty state for an empty list — explain what's empty + offer a single primary action.",
          "code": "import { Button, EmptyState } from \"@vllnt/ui\";\nimport { Inbox } from \"lucide-react\";\n\nexport function Demo() {\n  return (\n    <EmptyState\n      icon={<Inbox className=\"h-8 w-8\" />}\n      title=\"No tickets yet\"\n      description=\"Create your first support ticket to start tracking conversations.\"\n      action={<Button>Create ticket</Button>}\n    />\n  );\n}\n",
          "framework": "react"
        }
      ]
    },
    {
      "name": "era-comparison",
      "type": "registry:component",
      "title": "Era Comparison",
      "description": "Side-by-side comparison of historical eras with domain rows, color-themed columns, highlights, and figure chips.",
      "files": [
        {
          "path": "registry/default/era-comparison/era-comparison.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "educational",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "exercise",
      "type": "registry:component",
      "title": "Exercise",
      "description": "Interactive exercise block for learning content.",
      "files": [
        {
          "path": "registry/default/exercise/exercise.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "faq",
      "type": "registry:component",
      "title": "FAQ",
      "description": "Frequently asked questions section with expandable answers.",
      "files": [
        {
          "path": "registry/default/faq/faq.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "file-upload",
      "type": "registry:component",
      "title": "File Upload",
      "description": "Dropzone-style file picker with previews for selected files.",
      "files": [
        {
          "path": "registry/default/file-upload/file-upload.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "filter-bar",
      "type": "registry:component",
      "title": "Filter Bar",
      "description": "Horizontal bar with filter controls for content lists.",
      "files": [
        {
          "path": "registry/default/filter-bar/filter-bar.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "flashcard",
      "type": "registry:component",
      "title": "Flashcard",
      "description": "Study card for active recall with prompt and answer states.",
      "files": [
        {
          "path": "registry/default/flashcard/flashcard.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "floating-action-button",
      "type": "registry:component",
      "title": "Floating Action Button",
      "description": "Fixed-position action button for primary actions.",
      "files": [
        {
          "path": "registry/default/floating-action-button/floating-action-button.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "floating-toolbar",
      "type": "registry:component",
      "title": "Floating Toolbar",
      "description": "Compact action bar that floats above a selection — primary / ghost / destructive variants.",
      "files": [
        {
          "path": "registry/default/floating-toolbar/floating-toolbar.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "flow-diagram",
      "type": "registry:component",
      "title": "Flow Diagram",
      "description": "Interactive flow diagram with nodes, edges, and controls.",
      "files": [
        {
          "path": "registry/default/flow-diagram/flow-diagram.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "follow-mode",
      "type": "registry:component",
      "title": "Follow Mode",
      "description": "Follow-mode chrome — outlines a region with a participant's color and surfaces a stop-following chip.",
      "files": [
        {
          "path": "registry/default/follow-mode/follow-mode.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "form",
      "type": "registry:component",
      "title": "Form",
      "description": "Validation wrapper for composing labels, descriptions, controls, and messages.",
      "files": [
        {
          "path": "registry/default/form/form.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "gantt-chart",
      "type": "registry:component",
      "title": "Gantt Chart",
      "description": "Project timeline with task bars, progress overlays, milestones, and a today indicator across day/week/month/quarter scales.",
      "files": [
        {
          "path": "registry/default/gantt-chart/gantt-chart.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "geography-quiz-map",
      "type": "registry:component",
      "title": "Geography Quiz Map",
      "description": "Interactive identify-mode map quiz — click the correct region per prompt with visual feedback, score, and results panel.",
      "files": [
        {
          "path": "registry/default/geography-quiz-map/geography-quiz-map.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "globe-3d",
      "type": "registry:component",
      "title": "Globe 3D",
      "description": "Standalone SVG pseudo-3D globe — orthographic projection with auto-rotation, drag interaction, lat/lng markers, and great-circle arcs.",
      "files": [
        {
          "path": "registry/default/globe-3d/globe-3d.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "group-hull",
      "type": "registry:component",
      "title": "Group Hull",
      "description": "Durable boundary wrapper for related runtime objects sharing context or ownership.",
      "files": [
        {
          "path": "registry/default/group-hull/group-hull.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "handoff-beacon",
      "type": "registry:component",
      "title": "Handoff Beacon",
      "description": "Attention-routing beacon with pulsing ring and optional source / message card for live canvases.",
      "files": [
        {
          "path": "registry/default/handoff-beacon/handoff-beacon.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "heat-map-overlay",
      "type": "registry:component",
      "title": "Heat Map Overlay",
      "description": "Standalone SVG geographic heat map — radial-gradient blobs with configurable radius, blur, gradient, and opacity.",
      "files": [
        {
          "path": "registry/default/heat-map-overlay/heat-map-overlay.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "heat-overlay",
      "type": "registry:component",
      "title": "Heat Overlay",
      "description": "Heatmap-style overlay drawing soft radial blobs for canvas activity samples.",
      "files": [
        {
          "path": "registry/default/heat-overlay/heat-overlay.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "historic-timeline",
      "type": "registry:component",
      "title": "Historic Timeline",
      "description": "Specialized timeline for historical events spanning centuries or millennia, with era bands, period bars, and BCE/CE point markers.",
      "files": [
        {
          "path": "registry/default/historic-timeline/historic-timeline.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "historical-figure-card",
      "type": "registry:component",
      "title": "Historical Figure Card",
      "description": "Profile card with portrait, lifespan timeline, fields, works, quote, connections, and an expandable biography section.",
      "files": [
        {
          "path": "registry/default/historical-figure-card/historical-figure-card.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "educational",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "horizontal-scroll-row",
      "type": "registry:component",
      "title": "Horizontal Scroll Row",
      "description": "Horizontal scroll container with snap scrolling, chevron navigation, and hidden scrollbar.",
      "files": [
        {
          "path": "registry/default/horizontal-scroll-row/horizontal-scroll-row.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "hover-card",
      "type": "registry:component",
      "title": "Hover Card",
      "description": "Card that appears on hover for previewing content.",
      "files": [
        {
          "path": "registry/default/hover-card/hover-card.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "infinite-plane",
      "type": "registry:component",
      "title": "Infinite Plane",
      "description": "Tiled pannable backdrop for the canvas with dot or grid pattern that drifts with the viewport.",
      "files": [
        {
          "path": "registry/default/infinite-plane/infinite-plane.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "inline-input",
      "type": "registry:component",
      "title": "Inline Input",
      "description": "Inline text input with keyboard commit and cancel support.",
      "files": [
        {
          "path": "registry/default/inline-input/inline-input.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "input",
      "type": "registry:component",
      "title": "Input",
      "description": "Text input field for forms.",
      "files": [
        {
          "path": "registry/default/input/input.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "input-otp",
      "type": "registry:component",
      "title": "Input OTP",
      "description": "One-time password input with segmented fields.",
      "files": [
        {
          "path": "registry/default/input-otp/input-otp.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "interactive-timeline",
      "type": "registry:component",
      "title": "Interactive Timeline",
      "description": "Zoomable, pannable, multi-track timeline with category filter, today marker, and click-to-select events.",
      "files": [
        {
          "path": "registry/default/interactive-timeline/interactive-timeline.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "jarvis-dock",
      "type": "registry:component",
      "title": "Jarvis Dock",
      "description": "Floating bottom dock with quick-action buttons + a command-palette trigger.",
      "files": [
        {
          "path": "registry/default/jarvis-dock/jarvis-dock.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "kbd",
      "type": "registry:component",
      "title": "Kbd",
      "description": "Keyboard key indicator with platform-aware modifier expansion via the shortcut prop.",
      "files": [
        {
          "path": "registry/default/kbd/kbd.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "class-variance-authority"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "key-concept",
      "type": "registry:component",
      "title": "Key Concept",
      "description": "Highlighted definition block for key terms and a glossary list.",
      "files": [
        {
          "path": "registry/default/key-concept/key-concept.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "keyboard-shortcuts-help",
      "type": "registry:component",
      "title": "Keyboard Shortcuts Help",
      "description": "Displays available keyboard shortcuts to the user.",
      "files": [
        {
          "path": "registry/default/keyboard-shortcuts-help/keyboard-shortcuts-help.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "knowledge-check",
      "type": "registry:component",
      "title": "Knowledge Check",
      "description": "Inline knowledge check with multiple-choice / true-false / fill-blank questions, per-answer feedback, and a final score summary.",
      "files": [
        {
          "path": "registry/default/knowledge-check/knowledge-check.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "educational",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "lang-provider",
      "type": "registry:component",
      "title": "Lang Provider",
      "description": "Context provider for language and internationalization.",
      "files": [
        {
          "path": "registry/default/lang-provider/lang-provider.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "learning-objectives",
      "type": "registry:component",
      "title": "Learning Objectives",
      "description": "Lists learning goals for educational content.",
      "files": [
        {
          "path": "registry/default/learning-objectives/learning-objectives.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "left-rail",
      "type": "registry:component",
      "title": "Left Rail",
      "description": "Compact vertical rail for canvas modes, tool actions, and secondary navigation controls.",
      "files": [
        {
          "path": "registry/default/left-rail/left-rail.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "line-chart",
      "type": "registry:component",
      "title": "Line Chart",
      "description": "Renders a line chart for data visualization.",
      "files": [
        {
          "path": "registry/default/line-chart/line-chart.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [],
      "category": "data"
    },
    {
      "name": "live-cursor",
      "type": "registry:component",
      "title": "Live Cursor",
      "description": "Remote user's cursor rendered at canvas coordinates with name + status chip.",
      "files": [
        {
          "path": "registry/default/live-cursor/live-cursor.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "live-feed",
      "type": "registry:component",
      "title": "Live Feed",
      "description": "Rolling activity stream for surfacing incidents, deploys, and operational signals in real time.",
      "files": [
        {
          "path": "registry/default/live-feed/live-feed.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "map-2d",
      "type": "registry:component",
      "title": "Map 2D",
      "description": "Lightweight 2D map primitive — SVG canvas with equirectangular projection, markers, popups, GeoJSON polygon layers, zoom controls, and an optional backdrop image.",
      "files": [
        {
          "path": "registry/default/map-2d/map-2d.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "map-timeline",
      "type": "registry:component",
      "title": "Map Timeline",
      "description": "Standalone SVG map + time slider — era polygons and year-pinned events appear as the user scrubs the timeline.",
      "files": [
        {
          "path": "registry/default/map-timeline/map-timeline.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "market-treemap",
      "type": "registry:component",
      "title": "Market Treemap",
      "description": "Sector-style market heatmap using weighted tiles and signed performance colors.",
      "files": [
        {
          "path": "registry/default/market-treemap/market-treemap.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "marquee",
      "type": "registry:component",
      "title": "Marquee",
      "description": "Continuously scrolling content lane for badges, logos, and status chips.",
      "files": [
        {
          "path": "registry/default/marquee/marquee.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "mdx-content",
      "type": "registry:component",
      "title": "MDX Content",
      "description": "Renders MDX content with component mapping.",
      "files": [
        {
          "path": "registry/default/mdx-content/mdx-content.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "menubar",
      "type": "registry:component",
      "title": "Menubar",
      "description": "Horizontal menu bar with dropdown menus.",
      "files": [
        {
          "path": "registry/default/menubar/menubar.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "metric-cluster",
      "type": "registry:component",
      "title": "Metric Cluster",
      "description": "Compact stack of related metrics pinned to a canvas object's corner.",
      "files": [
        {
          "path": "registry/default/metric-cluster/metric-cluster.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "metric-gauge",
      "type": "registry:component",
      "title": "Metric Gauge",
      "description": "Real-time arc and dial display for monitored percentages and utilization.",
      "files": [
        {
          "path": "registry/default/metric-gauge/metric-gauge.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "mini-map-panel",
      "type": "registry:component",
      "title": "Mini Map Panel",
      "description": "Viewport overview panel showing canvas bounds, markers, and the current zoom window.",
      "files": [
        {
          "path": "registry/default/mini-map-panel/mini-map-panel.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "model-comparison",
      "type": "registry:component",
      "title": "Model Comparison",
      "description": "Side-by-side comparison of AI model responses with optional blind mode, metadata stats, and a vote bar.",
      "files": [
        {
          "path": "registry/default/model-comparison/model-comparison.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "ai",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "model-selector",
      "type": "registry:component",
      "title": "Model Selector",
      "description": "Dropdown selector for choosing AI models.",
      "files": [
        {
          "path": "registry/default/model-selector/model-selector.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "multi-select",
      "type": "registry:component",
      "title": "Multi Select",
      "description": "Popover-based multi-selection input with selected-value badges and optional search.",
      "files": [
        {
          "path": "registry/default/multi-select/multi-select.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "multi-select-lasso",
      "type": "registry:component",
      "title": "Multi Select Lasso",
      "description": "Selection rectangle overlay for canvas multi-select gestures.",
      "files": [
        {
          "path": "registry/default/multi-select-lasso/multi-select-lasso.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "navbar-saas",
      "type": "registry:component",
      "title": "Navbar SaaS",
      "description": "SaaS-style navigation bar with branding and links.",
      "files": [
        {
          "path": "registry/default/navbar-saas/navbar-saas.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "navigation-menu",
      "type": "registry:component",
      "title": "Navigation Menu",
      "description": "Accessible navigation menu with links and sub-navigation.",
      "files": [
        {
          "path": "registry/default/navigation-menu/navigation-menu.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "newsletter-signup",
      "type": "registry:component",
      "title": "Newsletter Signup",
      "description": "Email-capture form with idle/sending/sent/error state machine, custom validators, and overridable labels.",
      "files": [
        {
          "path": "registry/default/newsletter-signup/newsletter-signup.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "number-input",
      "type": "registry:component",
      "title": "Number Input",
      "description": "Numeric input with increment and decrement controls.",
      "files": [
        {
          "path": "registry/default/number-input/number-input.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "number-ticker",
      "type": "registry:component",
      "title": "Number Ticker",
      "description": "Animated number transitions for stats, KPIs, and compact numeric callouts.",
      "files": [
        {
          "path": "registry/default/number-ticker/number-ticker.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "object-card",
      "type": "registry:component",
      "title": "Object Card",
      "description": "Durable object view for agents, runs, artifacts, and tasks inside the canvas.",
      "files": [
        {
          "path": "registry/default/object-card/object-card.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "object-handle",
      "type": "registry:component",
      "title": "Object Handle",
      "description": "Drag/reposition affordance for spatial objects that need a calm grab target.",
      "files": [
        {
          "path": "registry/default/object-handle/object-handle.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "object-inspector",
      "type": "registry:component",
      "title": "Object Inspector",
      "description": "Right-dock detail header — kind chip, status dot, title/subtitle, with property-section slots.",
      "files": [
        {
          "path": "registry/default/object-inspector/object-inspector.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "order-book",
      "type": "registry:component",
      "title": "Order Book",
      "description": "Level II bid/ask depth ladder with cumulative size bars and spread readout.",
      "files": [
        {
          "path": "registry/default/order-book/order-book.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "pagination",
      "type": "registry:component",
      "title": "Pagination",
      "description": "Page navigation controls with previous, next, and page links.",
      "files": [
        {
          "path": "registry/default/pagination/pagination.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "parallel-timeline",
      "type": "registry:component",
      "title": "Parallel Timeline",
      "description": "Multi-track timeline with shared time axis, BCE/CE event markers, and optional era bands for comparative history.",
      "files": [
        {
          "path": "registry/default/parallel-timeline/parallel-timeline.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "educational",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "password-input",
      "type": "registry:component",
      "title": "Password Input",
      "description": "Password field with a built-in visibility toggle.",
      "files": [
        {
          "path": "registry/default/password-input/password-input.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "plan-badge",
      "type": "registry:component",
      "title": "Plan Badge",
      "description": "Subscription tier indicator for pricing, billing, and account summaries.",
      "files": [
        {
          "path": "registry/default/plan-badge/plan-badge.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "playback-ghost",
      "type": "registry:component",
      "title": "Playback Ghost",
      "description": "Translucent overlay marking where a canvas object was at a previous timestamp during playback.",
      "files": [
        {
          "path": "registry/default/playback-ghost/playback-ghost.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "policy-delivery-panel",
      "type": "registry:component",
      "title": "Policy Delivery Panel",
      "description": "Right-dock panel listing policies / guardrails active for the route or run.",
      "files": [
        {
          "path": "registry/default/policy-delivery-panel/policy-delivery-panel.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "popover",
      "type": "registry:component",
      "title": "Popover",
      "description": "Floating content panel anchored to a trigger element.",
      "files": [
        {
          "path": "registry/default/popover/popover.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "presence-stack",
      "type": "registry:component",
      "title": "Presence Stack",
      "description": "Overlapping live-presence avatars with status dots and a sane overflow chip.",
      "files": [
        {
          "path": "registry/default/presence-stack/presence-stack.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "presence-sync-indicator",
      "type": "registry:component",
      "title": "Presence Sync Indicator",
      "description": "Compact pill that surfaces live connection + sync health for a collaborative canvas.",
      "files": [
        {
          "path": "registry/default/presence-sync-indicator/presence-sync-indicator.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "pricing-table",
      "type": "registry:component",
      "title": "Pricing Table",
      "description": "Plan comparison with feature checklist, tier highlighting, CTA, and an optional monthly/annual toggle.",
      "files": [
        {
          "path": "registry/default/pricing-table/pricing-table.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "billing",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "primary-source-viewer",
      "type": "registry:component",
      "title": "Primary Source Viewer",
      "description": "Document viewer for historical primary sources with zoom, rotate, region annotations, transcription panel, and metadata footer.",
      "files": [
        {
          "path": "registry/default/primary-source-viewer/primary-source-viewer.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "pro-tip",
      "type": "registry:component",
      "title": "Pro Tip",
      "description": "Highlighted tip block with variants for tips, best practices, gotchas, and more.",
      "files": [
        {
          "path": "registry/default/pro-tip/pro-tip.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "profile-section",
      "type": "registry:component",
      "title": "Profile Section",
      "description": "User profile display section with avatar and details.",
      "files": [
        {
          "path": "registry/default/profile-section/profile-section.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "progress-bar",
      "type": "registry:component",
      "title": "Progress Bar",
      "description": "Visual progress indicator with labels and completion state.",
      "files": [
        {
          "path": "registry/default/progress-bar/progress-bar.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "progress-card",
      "type": "registry:component",
      "title": "Progress Card",
      "description": "Card displaying progress metrics and status.",
      "files": [
        {
          "path": "registry/default/progress-card/progress-card.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "prompt-templates",
      "type": "registry:component",
      "title": "Prompt Templates",
      "description": "Searchable prompt template gallery with category filter, variable fill-in form, and onSelect.",
      "files": [
        {
          "path": "registry/default/prompt-templates/prompt-templates.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "ai",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "property-section",
      "type": "registry:component",
      "title": "Property Section",
      "description": "Compact key/value grid for inspector panels — labels, sublabels, optional collapse.",
      "files": [
        {
          "path": "registry/default/property-section/property-section.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "quiz",
      "type": "registry:component",
      "title": "Quiz",
      "description": "Interactive multiple-choice quiz with hints, explanations, and scoring.",
      "files": [
        {
          "path": "registry/default/quiz/quiz.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "radio-group",
      "type": "registry:component",
      "title": "Radio Group",
      "description": "Group of radio buttons for single-selection input.",
      "files": [
        {
          "path": "registry/default/radio-group/radio-group.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "rating",
      "type": "registry:component",
      "title": "Rating",
      "description": "Inline star rating for lightweight learner feedback.",
      "files": [
        {
          "path": "registry/default/rating/rating.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "relationship-inspector",
      "type": "registry:component",
      "title": "Relationship Inspector",
      "description": "Right-dock panel listing inbound + outbound edges of the focused canvas object.",
      "files": [
        {
          "path": "registry/default/relationship-inspector/relationship-inspector.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "resizable",
      "type": "registry:component",
      "title": "Resizable",
      "description": "Resizable panel layout with draggable handles.",
      "files": [
        {
          "path": "registry/default/resizable/resizable.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "right-dock",
      "type": "registry:component",
      "title": "Right Dock",
      "description": "Context dock for inspectors, summaries, and secondary canvas panels.",
      "files": [
        {
          "path": "registry/default/right-dock/right-dock.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "role-badge",
      "type": "registry:component",
      "title": "Role Badge",
      "description": "Account role indicator for owners, admins, members, and billing contacts.",
      "files": [
        {
          "path": "registry/default/role-badge/role-badge.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "route-map",
      "type": "registry:component",
      "title": "Route Map",
      "description": "Standalone SVG map with animated route paths, waypoints, and progress indicator. For trade routes, voyages, migrations, delivery tracking.",
      "files": [
        {
          "path": "registry/default/route-map/route-map.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "routing-assignment-panel",
      "type": "registry:component",
      "title": "Routing Assignment Panel",
      "description": "Right-dock panel listing the agent slots an active route dispatches to.",
      "files": [
        {
          "path": "registry/default/routing-assignment-panel/routing-assignment-panel.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "run-timeline",
      "type": "registry:component",
      "title": "Run Timeline",
      "description": "Multi-lane execution timeline showing run phases over time, with optional cursor.",
      "files": [
        {
          "path": "registry/default/run-timeline/run-timeline.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "runtime-overview-panel",
      "type": "registry:component",
      "title": "Runtime Overview Panel",
      "description": "Top-of-dock summary tile grid for runtime health when no canvas object is selected.",
      "files": [
        {
          "path": "registry/default/runtime-overview-panel/runtime-overview-panel.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "scope-selector",
      "type": "registry:component",
      "title": "Scope Selector",
      "description": "Multi-level scope picker for nested environments, teams, and targets.",
      "files": [
        {
          "path": "registry/default/scope-selector/scope-selector.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "scroll-area",
      "type": "registry:component",
      "title": "Scroll Area",
      "description": "Custom scrollable area with styled scrollbars.",
      "files": [
        {
          "path": "registry/default/scroll-area/scroll-area.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "search-bar",
      "type": "registry:component",
      "title": "Search Bar",
      "description": "Text search input with icon and clear functionality.",
      "files": [
        {
          "path": "registry/default/search-bar/search-bar.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "search-dialog",
      "type": "registry:component",
      "title": "Search Dialog",
      "description": "Full-screen search dialog with keyboard navigation.",
      "files": [
        {
          "path": "registry/default/search-dialog/search-dialog.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "segmented-control",
      "type": "registry:component",
      "title": "Segmented Control",
      "description": "Single-choice segmented selector for switching modes, views, or filters.",
      "files": [
        {
          "path": "registry/default/segmented-control/segmented-control.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "select",
      "type": "registry:component",
      "title": "Select",
      "description": "Dropdown select input for choosing from a list of options.",
      "files": [
        {
          "path": "registry/default/select/select.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "selection-halo",
      "type": "registry:component",
      "title": "Selection Halo",
      "description": "Local-user selection halo with corner handles + label slot for spatial canvases.",
      "files": [
        {
          "path": "registry/default/selection-halo/selection-halo.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "selection-presence",
      "type": "registry:component",
      "title": "Selection Presence",
      "description": "Dashed-border overlay marking what another user has selected on the canvas.",
      "files": [
        {
          "path": "registry/default/selection-presence/selection-presence.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "separator",
      "type": "registry:component",
      "title": "Separator",
      "description": "Visual divider between content sections.",
      "files": [
        {
          "path": "registry/default/separator/separator.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "severity-badge",
      "type": "registry:component",
      "title": "Severity Badge",
      "description": "Operational severity label with tone variants and optional pulse for critical incidents.",
      "files": [
        {
          "path": "registry/default/severity-badge/severity-badge.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "share-section",
      "type": "registry:component",
      "title": "Share Section",
      "description": "Social sharing buttons and link copy section.",
      "files": [
        {
          "path": "registry/default/share-section/share-section.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "sheet",
      "type": "registry:component",
      "title": "Sheet",
      "description": "Slide-over panel from the edge of the screen.",
      "files": [
        {
          "path": "registry/default/sheet/sheet.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "sidebar",
      "type": "registry:component",
      "title": "Sidebar",
      "description": "Collapsible sidebar navigation layout.",
      "files": [
        {
          "path": "registry/default/sidebar/sidebar.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "sidebar-provider",
      "type": "registry:component",
      "title": "Sidebar Provider",
      "description": "Context provider for managing sidebar open/close state.",
      "files": [
        {
          "path": "registry/default/sidebar-provider/sidebar-provider.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "sidebar-toggle",
      "type": "registry:component",
      "title": "Sidebar Toggle",
      "description": "Responsive toggle button for opening and closing the sidebar.",
      "files": [
        {
          "path": "registry/default/sidebar-toggle/sidebar-toggle.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "skeleton",
      "type": "registry:component",
      "title": "Skeleton",
      "description": "Placeholder loading animation for content.",
      "files": [
        {
          "path": "registry/default/skeleton/skeleton.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "slider",
      "type": "registry:component",
      "title": "Slider",
      "description": "Range slider input for selecting numeric values.",
      "files": [
        {
          "path": "registry/default/slider/slider.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "slideshow",
      "type": "registry:component",
      "title": "Slideshow",
      "description": "Step-through slideshow for presenting content sequentially.",
      "files": [
        {
          "path": "registry/default/slideshow/slideshow.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "snap-guides",
      "type": "registry:component",
      "title": "Snap Guides",
      "description": "Alignment guide overlay — dashed vertical and horizontal lines that surface during a drag.",
      "files": [
        {
          "path": "registry/default/snap-guides/snap-guides.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "sparkline-grid",
      "type": "registry:component",
      "title": "Sparkline Grid",
      "description": "KPI grid of labeled value tiles each paired with a compact sparkline trend.",
      "files": [
        {
          "path": "registry/default/sparkline-grid/sparkline-grid.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "spinner",
      "type": "registry:component",
      "title": "Spinner",
      "description": "Animated loading spinner indicator.",
      "files": [
        {
          "path": "registry/default/spinner/spinner.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "stat-card",
      "type": "registry:component",
      "title": "Stat Card",
      "description": "Headline KPI card for metrics, trends, and supporting context.",
      "files": [
        {
          "path": "registry/default/stat-card/stat-card.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "state-badge-overlay",
      "type": "registry:component",
      "title": "State Badge Overlay",
      "description": "State chip pinned to a canvas object's corner — idle, queued, running, complete, failed, stopped.",
      "files": [
        {
          "path": "registry/default/state-badge-overlay/state-badge-overlay.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "status-board",
      "type": "registry:component",
      "title": "Status Board",
      "description": "Service health grid for surfacing infrastructure state, queue pressure, and incidents.",
      "files": [
        {
          "path": "registry/default/status-board/status-board.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "status-indicator",
      "type": "registry:component",
      "title": "Status Indicator",
      "description": "Compact status label with tone, variant, and activity dot options.",
      "files": [
        {
          "path": "registry/default/status-indicator/status-indicator.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "step-by-step",
      "type": "registry:component",
      "title": "Step By Step",
      "description": "Numbered step guide with optional interactive completion tracking.",
      "files": [
        {
          "path": "registry/default/step-by-step/step-by-step.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "step-navigation",
      "type": "registry:component",
      "title": "Step Navigation",
      "description": "Navigation controls for stepping through multi-page content.",
      "files": [
        {
          "path": "registry/default/step-navigation/step-navigation.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "stepper",
      "type": "registry:component",
      "title": "Stepper",
      "description": "Sequenced steps with complete, current, and upcoming states.",
      "files": [
        {
          "path": "registry/default/stepper/stepper.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "sticky-metric",
      "type": "registry:component",
      "title": "Sticky Metric",
      "description": "Pinned metric pill that sticks to a canvas object's corner.",
      "files": [
        {
          "path": "registry/default/sticky-metric/sticky-metric.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "story-map",
      "type": "registry:component",
      "title": "Story Map",
      "description": "Standalone SVG scroll-driven narrative map — IntersectionObserver tracks the active chapter and the map shifts to its center + zoom.",
      "files": [
        {
          "path": "registry/default/story-map/story-map.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "subscription-card",
      "type": "registry:component",
      "title": "Subscription Card",
      "description": "Subscription status and management card for plan, renewal, and usage details.",
      "files": [
        {
          "path": "registry/default/subscription-card/subscription-card.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "table",
      "type": "registry:component",
      "title": "Table",
      "description": "Styled data table with header, body, and footer sections.",
      "files": [
        {
          "path": "registry/default/table/table.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "table-of-contents",
      "type": "registry:component",
      "title": "Table Of Contents",
      "description": "Auto-generated table of contents from page headings.",
      "files": [
        {
          "path": "registry/default/table-of-contents/table-of-contents.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "table-of-contents-panel",
      "type": "registry:component",
      "title": "Table Of Contents Panel",
      "description": "Side panel rendering a table of contents for page navigation.",
      "files": [
        {
          "path": "registry/default/table-of-contents-panel/table-of-contents-panel.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "tabs",
      "type": "registry:component",
      "title": "Tabs",
      "description": "Tabbed content panels with keyboard-accessible tab triggers.",
      "files": [
        {
          "path": "registry/default/tabs/tabs.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "tags-input",
      "type": "registry:component",
      "title": "Tags Input",
      "description": "Keyboard-friendly tag editor for adding and removing string values.",
      "files": [
        {
          "path": "registry/default/tags-input/tags-input.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "terminal",
      "type": "registry:component",
      "title": "Terminal",
      "description": "Terminal-style display for command output.",
      "files": [
        {
          "path": "registry/default/terminal/terminal.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "textarea",
      "type": "registry:component",
      "title": "Textarea",
      "description": "Multi-line text input field.",
      "files": [
        {
          "path": "registry/default/textarea/textarea.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "theme-provider",
      "type": "registry:component",
      "title": "Theme Provider",
      "description": "Context provider for light/dark theme switching.",
      "files": [
        {
          "path": "registry/default/theme-provider/theme-provider.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "theme-toggle",
      "type": "registry:component",
      "title": "Theme Toggle",
      "description": "Button to toggle between light and dark themes.",
      "files": [
        {
          "path": "registry/default/theme-toggle/theme-toggle.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "thinking-block",
      "type": "registry:component",
      "title": "Thinking Block",
      "description": "Collapsible block showing AI thinking/reasoning with streaming support.",
      "files": [
        {
          "path": "registry/default/thinking-block/thinking-block.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "thread-bubble",
      "type": "registry:component",
      "title": "Thread Bubble",
      "description": "Expanded discussion bubble for an anchored canvas comment thread.",
      "files": [
        {
          "path": "registry/default/thread-bubble/thread-bubble.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "utility",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "threshold-ring",
      "type": "registry:component",
      "title": "Threshold Ring",
      "description": "Compact ring gauge expressing how close a value is to a threshold.",
      "files": [
        {
          "path": "registry/default/threshold-ring/threshold-ring.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "ticker-tape",
      "type": "registry:component",
      "title": "Ticker Tape",
      "description": "Marquee-style scrolling symbol tape with price and change badges.",
      "files": [
        {
          "path": "registry/default/ticker-tape/ticker-tape.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "timeline",
      "type": "registry:component",
      "title": "Timeline",
      "description": "Vertical or horizontal timeline of sequential events with completed/active/upcoming statuses and connector lines.",
      "files": [
        {
          "path": "registry/default/timeline/timeline.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "class-variance-authority"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "timeline-scrubber",
      "type": "registry:component",
      "title": "Timeline Scrubber",
      "description": "Range slider for scrubbing through canvas state playback, with optional milestone ticks.",
      "files": [
        {
          "path": "registry/default/timeline-scrubber/timeline-scrubber.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "form",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "tldr-section",
      "type": "registry:component",
      "title": "TLDR Section",
      "description": "Summary section for quick content overview.",
      "files": [
        {
          "path": "registry/default/tldr-section/tldr-section.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "toast",
      "type": "registry:component",
      "title": "Toast",
      "description": "Temporary notification messages with action support.",
      "files": [
        {
          "path": "registry/default/toast/toast.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "toggle",
      "type": "registry:component",
      "title": "Toggle",
      "description": "Two-state toggle button.",
      "files": [
        {
          "path": "registry/default/toggle/toggle.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "toggle-group",
      "type": "registry:component",
      "title": "Toggle Group",
      "description": "Group of toggle buttons for single or multiple selection.",
      "files": [
        {
          "path": "registry/default/toggle-group/toggle-group.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "core",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "tooltip",
      "type": "registry:component",
      "title": "Tooltip",
      "description": "Informational popup displayed on hover or focus.",
      "files": [
        {
          "path": "registry/default/tooltip/tooltip.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "top-bar",
      "type": "registry:component",
      "title": "Top Bar",
      "description": "Workspace header bar for titles, leading controls, centered navigation, and trailing actions.",
      "files": [
        {
          "path": "registry/default/top-bar/top-bar.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "tour",
      "type": "registry:component",
      "title": "Tour",
      "description": "Guided onboarding flow for introducing content or interface patterns.",
      "files": [
        {
          "path": "registry/default/tour/tour.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "transaction-list",
      "type": "registry:component",
      "title": "Transaction List",
      "description": "Chronological credit/debit history with locale-aware currency formatting and a pinned subscription row.",
      "files": [
        {
          "path": "registry/default/transaction-list/transaction-list.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "billing",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "tree-view",
      "type": "registry:component",
      "title": "Tree View",
      "description": "Hierarchical tree component for nested data with controlled state, single/multi-select, and keyboard navigation.",
      "files": [
        {
          "path": "registry/default/tree-view/tree-view.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data-display",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "tutorial-card",
      "type": "registry:component",
      "title": "Tutorial Card",
      "description": "Card for displaying tutorial previews with metadata.",
      "files": [
        {
          "path": "registry/default/tutorial-card/tutorial-card.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "tutorial-complete",
      "type": "registry:component",
      "title": "Tutorial Complete",
      "description": "Completion screen displayed when a tutorial is finished.",
      "files": [
        {
          "path": "registry/default/tutorial-complete/tutorial-complete.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "tutorial-filters",
      "type": "registry:component",
      "title": "Tutorial Filters",
      "description": "Filter controls for browsing tutorials by category or difficulty.",
      "files": [
        {
          "path": "registry/default/tutorial-filters/tutorial-filters.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "tutorial-intro-content",
      "type": "registry:component",
      "title": "Tutorial Intro Content",
      "description": "Introduction section for tutorial pages with overview and prerequisites.",
      "files": [
        {
          "path": "registry/default/tutorial-intro-content/tutorial-intro-content.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "tutorial-mdx",
      "type": "registry:component",
      "title": "Tutorial MDX",
      "description": "MDX renderer tailored for tutorial content with custom components.",
      "files": [
        {
          "path": "registry/default/tutorial-mdx/tutorial-mdx.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "learning",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "usage-breakdown",
      "type": "registry:component",
      "title": "Usage Breakdown",
      "description": "Ranked resource consumption list with relative share and trend cues.",
      "files": [
        {
          "path": "registry/default/usage-breakdown/usage-breakdown.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "video-embed",
      "type": "registry:component",
      "title": "Video Embed",
      "description": "Responsive video embed for YouTube and other providers.",
      "files": [
        {
          "path": "registry/default/video-embed/video-embed.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "view-switcher",
      "type": "registry:component",
      "title": "View Switcher",
      "description": "URL param-based toggle between named views with pill/tab styling.",
      "files": [
        {
          "path": "registry/default/view-switcher/view-switcher.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "viewport-bookmarks",
      "type": "registry:component",
      "title": "Viewport Bookmarks",
      "description": "Saved-view list for the canvas — pinned spatial locations with optional active state.",
      "files": [
        {
          "path": "registry/default/viewport-bookmarks/viewport-bookmarks.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "wallet-card",
      "type": "registry:component",
      "title": "Wallet Card",
      "description": "Credit balance display card for available, pending, and refresh details.",
      "files": [
        {
          "path": "registry/default/wallet-card/wallet-card.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "content",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "watchlist",
      "type": "registry:component",
      "title": "Watchlist",
      "description": "Tracked-symbol list with price, change, and advancing/declining summary.",
      "files": [
        {
          "path": "registry/default/watchlist/watchlist.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "workspace-switcher",
      "type": "registry:component",
      "title": "Workspace Switcher",
      "description": "Segmented workspace picker for switching between canvas views and operational contexts.",
      "files": [
        {
          "path": "registry/default/workspace-switcher/workspace-switcher.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "world-breadcrumbs",
      "type": "registry:component",
      "title": "World Breadcrumbs",
      "description": "Spatial trail showing the canvas's current location in a hierarchy of worlds, groups, and runs.",
      "files": [
        {
          "path": "registry/default/world-breadcrumbs/world-breadcrumbs.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "navigation",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "world-clock-bar",
      "type": "registry:component",
      "title": "World Clock Bar",
      "description": "Multi-timezone display for follow-the-sun teams and operational handoffs.",
      "files": [
        {
          "path": "registry/default/world-clock-bar/world-clock-bar.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1"
      ],
      "category": "data",
      "version": "0.2.1",
      "stability": "stable"
    },
    {
      "name": "zoom-hud",
      "type": "registry:component",
      "title": "Zoom HUD",
      "description": "Zoom controls with current percentage, increment buttons, and reset action for canvas views.",
      "files": [
        {
          "path": "registry/default/zoom-hud/zoom-hud.tsx",
          "type": "registry:component"
        }
      ],
      "registryDependencies": [],
      "dependencies": [
        "@vllnt/ui@^0.2.1",
        "lucide-react"
      ],
      "category": "overlay",
      "version": "0.2.1",
      "stability": "stable"
    }
  ],
  "version": "0.2.1",
  "generatedAt": "2026-05-20T14:26:55.517Z"
}
