{
  "name": "Context.dev",
  "homepage": "https://context-ds.vercel.app",
  "items": [
    {
      "name": "theme",
      "type": "theme",
      "title": "Context.dev theme",
      "description": "Context.dev design tokens and Tailwind utilities. Use ds-product for product interfaces.",
      "surface": "both",
      "kinds": [],
      "requires": []
    },
    {
      "name": "accordion",
      "type": "ui",
      "title": "Accordion",
      "description": "Expandable question and answer rows with a rotating chevron.",
      "surface": "site",
      "kinds": [
        "faq"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "agent-setup-window",
      "type": "site",
      "title": "Agent setup window",
      "description": "Tabbed agent setup instructions for Prompt, MCP, and CLI, with copy actions and an animated prompt preview.",
      "surface": "site",
      "kinds": [
        "code-window",
        "tabs"
      ],
      "requires": [
        "theme",
        "copy-button",
        "tabs",
        "utils"
      ]
    },
    {
      "name": "alternative-sections",
      "type": "site",
      "title": "Alternative page sections",
      "description": "Comparison cards, tables, pricing comparisons, and quotes for alternatives pages.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "section",
        "utils"
      ]
    },
    {
      "name": "announcement-bar",
      "type": "site",
      "title": "Announcement bar",
      "description": "A linked announcement strip above the site header.",
      "surface": "site",
      "kinds": [
        "announcement"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "announcement-dot-strip",
      "type": "visual",
      "title": "Announcement dot strip",
      "description": "A three-row dot pattern around the announcement label, with hover and timed highlights.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "api-grid-glyph",
      "type": "visual",
      "title": "API grid glyph",
      "description": "A grid of API icons with an animated highlight and API labels.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "glyph-engine",
        "glyph-tile",
        "utils"
      ]
    },
    {
      "name": "app-shell",
      "type": "block",
      "title": "App shell",
      "description": "Dashboard layout with a sidebar, top bar, credits menu, and scrollable page area.",
      "surface": "product",
      "kinds": [
        "app-page"
      ],
      "requires": [
        "theme",
        "app-sidebar",
        "app-top-bar",
        "credits-menu",
        "sidebar-alert-card",
        "user-menu",
        "workspace-switcher",
        "button",
        "command",
        "dialog",
        "field",
        "input",
        "navigation",
        "utils"
      ]
    },
    {
      "name": "app-sidebar",
      "type": "product",
      "title": "App sidebar",
      "description": "Dashboard navigation with workspace controls, search, grouped links, and footer actions. Opens as a drawer on phones.",
      "surface": "product",
      "kinds": [
        "app-sidebar",
        "app-nav-item",
        "app-nav-label"
      ],
      "requires": [
        "theme",
        "tooltip",
        "use-scrolling-scrollbars",
        "utils"
      ]
    },
    {
      "name": "app-top-bar",
      "type": "product",
      "title": "App top bar",
      "description": "Dashboard top bar with a mobile navigation button and space for credits or account controls.",
      "surface": "product",
      "kinds": [
        "app-topbar"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "avatar",
      "type": "ui",
      "title": "Avatar",
      "description": "Profile image with initials as the fallback.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "badge",
      "type": "ui",
      "title": "Badge",
      "description": "Status labels, product tags, and site chips.",
      "surface": "both",
      "kinds": [
        "app-badge",
        "chip"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "banner",
      "type": "ui",
      "title": "Banner",
      "description": "Page-level information or error notice with optional actions.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "bar-chart",
      "type": "product",
      "title": "Bar chart",
      "description": "Stacked bar chart with animated updates, series selection, and a tooltip.",
      "surface": "product",
      "kinds": [
        "app-chart"
      ],
      "requires": [
        "theme",
        "surface",
        "utils"
      ]
    },
    {
      "name": "blog-cards",
      "type": "site",
      "title": "Blog cards",
      "description": "Post cards with a cover, date, title, and summary, plus the Latest updates section.",
      "surface": "site",
      "kinds": [
        "card",
        "chip"
      ],
      "requires": [
        "theme",
        "section",
        "badge",
        "dot-glyph",
        "utils"
      ]
    },
    {
      "name": "blog-post",
      "type": "site",
      "title": "Blog post",
      "description": "Article layout with a title, author, dates, body content, and related posts.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "section",
        "utils"
      ]
    },
    {
      "name": "button",
      "type": "ui",
      "title": "Button",
      "description": "Product buttons and site pill buttons, with variants for primary, secondary, and contextual actions.",
      "surface": "both",
      "kinds": [
        "button-primary",
        "button-secondary",
        "button-on-brand",
        "app-button-brand",
        "app-button-black",
        "app-button-outline",
        "app-button-ghost"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "card",
      "type": "ui",
      "title": "Card",
      "description": "Content container with product and site variants.",
      "surface": "both",
      "kinds": [
        "card",
        "app-card"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "checkbox",
      "type": "ui",
      "title": "Checkbox",
      "description": "Checkbox with checked, unchecked, and disabled states.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "code-card",
      "type": "product",
      "title": "Code card",
      "description": "Code display with language selection, copy, expand and collapse controls, and footer actions.",
      "surface": "product",
      "kinds": [
        "code-window"
      ],
      "requires": [
        "theme",
        "copy-button",
        "select",
        "tooltip",
        "utils"
      ]
    },
    {
      "name": "code-window",
      "type": "site",
      "title": "Code window",
      "description": "Site code and terminal windows, language tabs, copy controls, and install commands.",
      "surface": "site",
      "kinds": [
        "code-window"
      ],
      "requires": [
        "theme",
        "copy-button",
        "utils"
      ]
    },
    {
      "name": "collapse",
      "type": "ui",
      "title": "Collapse",
      "description": "Expandable content with height and opacity transitions.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "command",
      "type": "ui",
      "title": "Command",
      "description": "Searchable command list with grouped results and keyboard navigation. CommandDialog opens it as a palette.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "dialog",
        "utils"
      ]
    },
    {
      "name": "comparison-table",
      "type": "site",
      "title": "Comparison table",
      "description": "Comparison table with a highlighted Context.dev column and text or check-mark cells.",
      "surface": "site",
      "kinds": [
        "table",
        "card-ring"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "competitor-charts",
      "type": "site",
      "title": "Competitor charts",
      "description": "Tabbed benchmark charts for success rate, latency, and cost.",
      "surface": "site",
      "kinds": [
        "tabs",
        "card-ring"
      ],
      "requires": [
        "theme",
        "tabs",
        "utils"
      ]
    },
    {
      "name": "copy-button",
      "type": "ui",
      "title": "Copy button",
      "description": "Copy action with a temporary success indicator.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "tooltip",
        "utils"
      ]
    },
    {
      "name": "credits-dot-number",
      "type": "visual",
      "title": "Credits dot number",
      "description": "A dot-grid number that transitions to Doto text and back.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "credits-menu",
      "type": "product",
      "title": "Credits menu",
      "description": "Credits balance menu with plan details, reset date, rate limit, auto top-up, and billing actions.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "stat-card",
        "button",
        "dot-glyph",
        "popover",
        "skeleton",
        "switch",
        "tooltip",
        "utils"
      ]
    },
    {
      "name": "cta",
      "type": "site",
      "title": "Call to action",
      "description": "Closing action sections for the home page and product pages.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "section",
        "utils"
      ]
    },
    {
      "name": "customer-logo-dots",
      "type": "visual",
      "title": "Customer logo dots",
      "description": "Customer logo rendered as dots, with an arrow transition on hover or focus.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "utils",
        "logo-dot-sampling",
        "dot-engine"
      ]
    },
    {
      "name": "customer-stories",
      "type": "site",
      "title": "Customer stories",
      "description": "Scrollable customer story cards with drag, arrow, and pagination controls.",
      "surface": "site",
      "kinds": [
        "card"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "customer-story-page",
      "type": "site",
      "title": "Customer story page",
      "description": "Customer story layout with a back link, title, date, and article column.",
      "surface": "site",
      "kinds": [
        "section",
        "section-heading"
      ],
      "requires": [
        "theme",
        "section",
        "utils"
      ]
    },
    {
      "name": "data-toolbar",
      "type": "product",
      "title": "Data toolbar",
      "description": "Search and filter controls for data tables and lists.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "dialog",
      "type": "ui",
      "title": "Dialog",
      "description": "Modal dialog with a framed panel, focus management, Escape dismissal, and a scrollable overlay.",
      "surface": "product",
      "kinds": [
        "app-dialog"
      ],
      "requires": [
        "theme",
        "surface",
        "utils"
      ]
    },
    {
      "name": "docs-link",
      "type": "ui",
      "title": "Docs link",
      "description": "Documentation link with a book icon and external-link arrow.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "dot-engine",
      "type": "lib",
      "title": "Dot engine",
      "description": "Shared canvas and SVG rendering utilities for dot animations.",
      "surface": "both",
      "kinds": [],
      "requires": [
        "utils"
      ]
    },
    {
      "name": "dot-glyph",
      "type": "ui",
      "title": "Dot icon",
      "description": "Static SVG icon defined by rows of dots and rings.",
      "surface": "both",
      "kinds": [],
      "requires": [
        "theme"
      ]
    },
    {
      "name": "dot-shader-image",
      "type": "visual",
      "title": "Dot shader image",
      "description": "Image rendered as solid and hollow dots on a white, blue, or black surface.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "utils",
        "image-dot-shader"
      ]
    },
    {
      "name": "dot-shader-playground",
      "type": "visual",
      "title": "Dot shader playground",
      "description": "Interactive dot-shader preview with image upload, sample images, and SVG or PNG export.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "button",
        "copy-button",
        "utils",
        "dot-shader-image",
        "image-dot-shader"
      ]
    },
    {
      "name": "dropdown-menu",
      "type": "ui",
      "title": "Dropdown menu",
      "description": "Action menu with labels, separators, selection states, and hold-to-confirm actions.",
      "surface": "product",
      "kinds": [
        "app-menu"
      ],
      "requires": [
        "theme",
        "use-hold",
        "surface",
        "utils"
      ]
    },
    {
      "name": "empty-state",
      "type": "product",
      "title": "Empty state",
      "description": "Empty-page and empty-table layouts with a message and next actions.",
      "surface": "product",
      "kinds": [
        "app-empty-state"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "faq",
      "type": "site",
      "title": "FAQ section",
      "description": "FAQ section with categories, expandable answers, and a contact action.",
      "surface": "site",
      "kinds": [
        "faq",
        "tabs",
        "card"
      ],
      "requires": [
        "theme",
        "accordion",
        "spinner",
        "tabs",
        "utils"
      ]
    },
    {
      "name": "field",
      "type": "ui",
      "title": "Field",
      "description": "Form field layout with a label, required indicator, help text, and error message.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "label",
        "utils"
      ]
    },
    {
      "name": "footer-watermark",
      "type": "visual",
      "title": "Footer watermark",
      "description": "Dot-rendered Context.dev wordmark with pointer interaction and an animated cursor.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "glide-tabs",
      "type": "product",
      "title": "Glide tabs",
      "description": "Tab or radio options with an animated selection indicator. Supports plain and inset track variants.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "glyph-card",
      "type": "product",
      "title": "Glyph card",
      "description": "Cards with glyph headers or centered figures, plus status labels and links.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "glyph-tile",
        "glyph-engine",
        "utils"
      ]
    },
    {
      "name": "glyph-engine",
      "type": "lib",
      "title": "Glyph engine",
      "description": "Product glyph artwork and animation players built on the dot engine.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "dot-engine"
      ]
    },
    {
      "name": "glyph-loop",
      "type": "visual",
      "title": "Glyph loop",
      "description": "Looping product glyph animation that runs while visible.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "glyph-engine"
      ]
    },
    {
      "name": "glyph-melt",
      "type": "visual",
      "title": "Glyph melt",
      "description": "Product glyph that transitions on hover, focus, or while its parent card is visible.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "glyph-engine",
        "glyph-tile",
        "use-hover-dot-morph",
        "theme-store",
        "utils"
      ]
    },
    {
      "name": "glyph-story",
      "type": "visual",
      "title": "Glyph story",
      "description": "Large product glyph animation in the fine dot pattern. Supports a static state.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "glyph-engine"
      ]
    },
    {
      "name": "glyph-tile",
      "type": "visual",
      "title": "Glyph tile",
      "description": "Product glyph in a bordered tile. Includes static and larger animated variants.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "glyph-engine",
        "glyph-loop",
        "glyph-story",
        "utils"
      ]
    },
    {
      "name": "hero-circle-pattern",
      "type": "visual",
      "title": "Hero circle pattern",
      "description": "Ring-pattern background with content exclusion areas and optional diamond clusters.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "utils",
        "hero-pattern-hole"
      ]
    },
    {
      "name": "hero-data-flow",
      "type": "visual",
      "title": "Hero data flow",
      "description": "Animated data streams for scrape and answer demos.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "hero-dot-field",
      "type": "visual",
      "title": "Hero dot field",
      "description": "Dot-pattern hero background with optional streams, labels, logo mark, and pointer interaction.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "utils",
        "hero-pattern-hole"
      ]
    },
    {
      "name": "hero-globe",
      "type": "visual",
      "title": "Hero globe",
      "description": "Wireframe globe with animated paths and optional connected statistics on wide screens.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "hero-monitor",
      "type": "visual",
      "title": "Hero monitor",
      "description": "Dot-rendered terminal containing an animated demo.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "utils"
      ]
    },
    {
      "name": "hero-pattern-hole",
      "type": "lib",
      "title": "Hero pattern hole",
      "description": "Attributes for excluding content areas from dot-pattern backgrounds.",
      "surface": "site",
      "kinds": [],
      "requires": []
    },
    {
      "name": "hero-stat-morphs",
      "type": "visual",
      "title": "Hero stat morphs",
      "description": "Animated hero figures that transition through a sequence of dot shapes on wide screens.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "utils",
        "hero-pattern-hole",
        "logo-dot-sampling"
      ]
    },
    {
      "name": "hero-water",
      "type": "visual",
      "title": "Hero water",
      "description": "WebGL water background with a static fallback for reduced motion and unsupported devices.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "hero",
      "type": "site",
      "title": "Hero",
      "description": "Site hero with white or blue backgrounds, title, description, actions, and an optional media panel.",
      "surface": "site",
      "kinds": [
        "hero",
        "hero-title",
        "hero-subtitle",
        "eyebrow"
      ],
      "requires": [
        "theme",
        "ring-backdrop",
        "utils"
      ]
    },
    {
      "name": "hold-button",
      "type": "ui",
      "title": "Hold button",
      "description": "Destructive action that requires a sustained pointer or key press, with a progress indicator.",
      "surface": "product",
      "kinds": [
        "app-button-danger"
      ],
      "requires": [
        "theme",
        "use-hold",
        "utils"
      ]
    },
    {
      "name": "image-dot-shader",
      "type": "lib",
      "title": "Image dot shader functions",
      "description": "Image-to-dot conversion utilities and SVG export.",
      "surface": "site",
      "kinds": [],
      "requires": []
    },
    {
      "name": "input",
      "type": "ui",
      "title": "Input",
      "description": "Single-line text input with hover, focus, invalid, and disabled states.",
      "surface": "both",
      "kinds": [
        "input",
        "app-input"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "json-viewer",
      "type": "product",
      "title": "JSON viewer",
      "description": "JSON display with line numbers, folding, search, copy, and download.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "copy-button",
        "tooltip",
        "utils"
      ]
    },
    {
      "name": "kbd",
      "type": "ui",
      "title": "Kbd",
      "description": "Keyboard shortcut label.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "label",
      "type": "ui",
      "title": "Label",
      "description": "Form control label with support for disabled states.",
      "surface": "both",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "line-chart",
      "type": "product",
      "title": "Line chart",
      "description": "Line chart with a filled area, point markers, a pending segment, and a tooltip positioned away from the active point.",
      "surface": "product",
      "kinds": [
        "app-chart"
      ],
      "requires": [
        "theme",
        "utils",
        "bar-chart"
      ]
    },
    {
      "name": "logo-dot-sampling",
      "type": "lib",
      "title": "Logo dot sampling",
      "description": "Utilities for sampling logo images into solid dots and rings.",
      "surface": "site",
      "kinds": [],
      "requires": []
    },
    {
      "name": "logo-strip",
      "type": "site",
      "title": "Logo strip",
      "description": "Scrolling customer logos with hover pause and an optional rotating quote.",
      "surface": "site",
      "kinds": [
        "logo-strip"
      ],
      "requires": [
        "theme",
        "testimonials",
        "utils"
      ]
    },
    {
      "name": "navigation",
      "type": "lib",
      "title": "Navigation",
      "description": "Navigation callback for the page blocks.",
      "surface": "product",
      "kinds": [],
      "requires": []
    },
    {
      "name": "overview-page",
      "type": "block",
      "title": "Overview page",
      "description": "Dashboard overview with an API demo, usage chart, credit statistics, quickstart, and usage summary dialog.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "navigation",
        "app-shell",
        "bar-chart",
        "credits-menu",
        "glyph-card",
        "page",
        "quickstart-card",
        "stat-card",
        "try-api",
        "usage-card",
        "usage-summary",
        "dot-glyph",
        "segmented-control"
      ]
    },
    {
      "name": "page",
      "type": "product",
      "title": "Page",
      "description": "Dashboard page column, centered header, sections, and card entrance animation.",
      "surface": "product",
      "kinds": [
        "app-page-column",
        "app-page-header",
        "app-page-title"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "pages-cover",
      "type": "visual",
      "title": "Pages cover",
      "description": "Dot animation showing several pages combining into one, with input and output labels.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "glyph-engine",
        "use-hover-dot-morph",
        "theme-store",
        "utils"
      ]
    },
    {
      "name": "persona-glyph",
      "type": "visual",
      "title": "Persona glyph",
      "description": "Animated glyph tiles for site personas and static menu icons.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "utils"
      ]
    },
    {
      "name": "playground-parameters",
      "type": "product",
      "title": "Playground parameters",
      "description": "API parameter panel with grouped controls, reset actions, a changed count, and scroll indicators.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "input",
        "popover",
        "select",
        "tooltip",
        "utils"
      ]
    },
    {
      "name": "playground-result-card",
      "type": "product",
      "title": "Playground result card",
      "description": "API response card with Preview, JSON, and History views, status, statistics, and loading states.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "button",
        "segmented-control",
        "tooltip",
        "utils"
      ]
    },
    {
      "name": "popover",
      "type": "ui",
      "title": "Popover",
      "description": "Floating panel anchored to a trigger, for short forms and additional details.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "surface",
        "utils"
      ]
    },
    {
      "name": "pricing",
      "type": "site",
      "title": "Pricing",
      "description": "Pricing cards, billing interval selection, plan comparisons, discounts, and credit cost tables.",
      "surface": "site",
      "kinds": [
        "card",
        "chip",
        "table"
      ],
      "requires": [
        "theme",
        "tooltip",
        "use-tab-glide",
        "utils"
      ]
    },
    {
      "name": "product-grid",
      "type": "site",
      "title": "Product grid",
      "description": "Product cards with a title, description, action, tags, and demo window.",
      "surface": "site",
      "kinds": [
        "card",
        "card-ring",
        "chip",
        "media-frame"
      ],
      "requires": [
        "theme",
        "badge",
        "button",
        "utils"
      ]
    },
    {
      "name": "product-hero",
      "type": "site",
      "title": "Product page (water)",
      "description": "Product page sections with a water background, customer logos, numbered steps, FAQ, and closing action.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "product-landing",
      "type": "site",
      "title": "Product page (landing)",
      "description": "Product landing sections with capability cards, workflow cards, code examples, and an FAQ.",
      "surface": "site",
      "kinds": [
        "demo-panel"
      ],
      "requires": [
        "theme",
        "button",
        "product-grid",
        "section",
        "utils"
      ]
    },
    {
      "name": "product-page",
      "type": "site",
      "title": "Product page (stage)",
      "description": "Product page layout with a hero, demo, metrics, capabilities, code examples, steps, comparisons, and related products.",
      "surface": "site",
      "kinds": [
        "stat"
      ],
      "requires": [
        "theme",
        "copy-button",
        "code-window",
        "utils"
      ]
    },
    {
      "name": "progress",
      "type": "ui",
      "title": "Progress",
      "description": "Progress track with a filled portion.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "quickstart-card",
      "type": "product",
      "title": "Quickstart card",
      "description": "Onboarding card with numbered steps, a masked API key, setup snippets, and copy actions.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "glyph-card",
        "glide-tabs",
        "copy-button",
        "secret-field",
        "scroll-area",
        "tooltip",
        "glyph-engine",
        "utils"
      ]
    },
    {
      "name": "ring-backdrop",
      "type": "visual",
      "title": "Ring backdrop",
      "description": "Ring-pattern background that excludes marked content and avoids clipping rings at rounded edges.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "scroll-area",
      "type": "ui",
      "title": "Scroll area",
      "description": "Scrollable content with edge fades and a button to scroll down.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "secret-field",
      "type": "ui",
      "title": "Secret field",
      "description": "Masked API key field with reveal and copy actions.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "copy-button",
        "tooltip",
        "utils"
      ]
    },
    {
      "name": "section",
      "type": "site",
      "title": "Section",
      "description": "Site section layout with column rules, a heading, and an optional divider.",
      "surface": "site",
      "kinds": [
        "section",
        "section-heading",
        "section-description"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "segmented-control",
      "type": "ui",
      "title": "Segmented control",
      "description": "Single-choice option group with radio semantics and an animated selection indicator.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "use-tab-glide",
        "utils"
      ]
    },
    {
      "name": "select",
      "type": "ui",
      "title": "Select",
      "description": "Single-choice menu with toolbar, field, and chip trigger variants.",
      "surface": "product",
      "kinds": [
        "app-select"
      ],
      "requires": [
        "theme",
        "surface",
        "utils"
      ]
    },
    {
      "name": "separator",
      "type": "ui",
      "title": "Separator",
      "description": "Horizontal or vertical divider.",
      "surface": "both",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "settings-page",
      "type": "block",
      "title": "Settings page",
      "description": "Settings layout with tabs, form sections, billing details, and destructive actions.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "app-shell",
        "page",
        "settings-section",
        "button",
        "dialog",
        "dropdown-menu",
        "hold-button",
        "input",
        "select",
        "switch",
        "tabs",
        "tooltip",
        "glyph-tile",
        "utils"
      ]
    },
    {
      "name": "settings-section",
      "type": "product",
      "title": "Settings section",
      "description": "Settings sections, rows, fields, notices, and destructive-action buttons.",
      "surface": "product",
      "kinds": [
        "app-card"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "sheet",
      "type": "ui",
      "title": "Sheet",
      "description": "Floating side panel for record details, without a background scrim.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "surface",
        "utils"
      ]
    },
    {
      "name": "sidebar-alert-card",
      "type": "product",
      "title": "Sidebar alert card",
      "description": "Sidebar billing notice with a status indicator and corrective action.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "site-footer",
      "type": "site",
      "title": "Site footer",
      "description": "Site footer with brand information, link groups, badges, copyright, and an optional watermark.",
      "surface": "site",
      "kinds": [
        "footer"
      ],
      "requires": [
        "theme",
        "section",
        "utils"
      ]
    },
    {
      "name": "site-header",
      "type": "site",
      "title": "Site header",
      "description": "Site navigation with desktop dropdowns, a mobile menu, and a compact scrolled state.",
      "surface": "site",
      "kinds": [
        "header",
        "header-scrolled",
        "nav-link",
        "header-action"
      ],
      "requires": [
        "theme",
        "announcement-bar",
        "utils"
      ]
    },
    {
      "name": "skeleton",
      "type": "ui",
      "title": "Skeleton",
      "description": "Loading placeholder with a shimmer animation.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "sonner",
      "type": "ui",
      "title": "Toaster",
      "description": "Toast container and notifications for action feedback.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme"
      ]
    },
    {
      "name": "spinner",
      "type": "ui",
      "title": "Spinner",
      "description": "Loading indicator that uses the surrounding text color.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "stat-block",
      "type": "site",
      "title": "Stat block",
      "description": "Site statistic card with a figure and caption.",
      "surface": "site",
      "kinds": [
        "stat",
        "card"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "stat-card",
      "type": "product",
      "title": "Stat card",
      "description": "Dashboard statistic card with a title, tabular figure, footer, and optional meter or action.",
      "surface": "product",
      "kinds": [
        "app-stat"
      ],
      "requires": [
        "theme",
        "skeleton",
        "utils"
      ]
    },
    {
      "name": "story-actions",
      "type": "visual",
      "title": "Actions story",
      "description": "Dot animation of browser actions and the resulting page.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-answer",
      "type": "visual",
      "title": "Answer story",
      "description": "Dot animation of a question, sources, and a structured answer.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-assets",
      "type": "visual",
      "title": "Assets story",
      "description": "Dot animation of a logo, colors, and company profile.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-autofill",
      "type": "visual",
      "title": "Autofill story",
      "description": "Dot animation of a domain populating a signup form.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-batch",
      "type": "visual",
      "title": "Batch story",
      "description": "Dot animation of a URL batch becoming a dataset.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-batches",
      "type": "visual",
      "title": "Batches story",
      "description": "Dot animation of batch processing and progress.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-blog-hero",
      "type": "visual",
      "title": "Blog hero story",
      "description": "Dot animation of a post and announcement, with captions.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "story-parts",
        "dot-engine"
      ]
    },
    {
      "name": "story-brand-kit",
      "type": "visual",
      "title": "Brand kit story",
      "description": "Dot animation of a domain resolving to logo, color, typography, and company data.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "story-parts"
      ]
    },
    {
      "name": "story-collect",
      "type": "visual",
      "title": "Collect story",
      "description": "Dot animation of job progress, collected results, and a completion webhook.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-compare-hero",
      "type": "visual",
      "title": "Compare hero story",
      "description": "Dot animation of feature and benchmark comparisons, with captions.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "story-parts",
        "dot-engine"
      ]
    },
    {
      "name": "story-components",
      "type": "visual",
      "title": "Components story",
      "description": "Dot animation of component shapes and theme changes.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-context",
      "type": "visual",
      "title": "Context story",
      "description": "Dot animation of company information filling a profile.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-crawl",
      "type": "visual",
      "title": "Crawl story",
      "description": "Dot animation of a sitemap expanding into a crawl graph.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-datasets-hero",
      "type": "visual",
      "title": "Datasets hero story",
      "description": "Dot animation of source documents becoming table rows, with captions.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "story-parts",
        "dot-engine"
      ]
    },
    {
      "name": "story-design-system",
      "type": "visual",
      "title": "Design system story",
      "description": "Dot animation of a website's typography, colors, buttons, and spacing being extracted.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "story-output",
        "story-parts"
      ]
    },
    {
      "name": "story-discover",
      "type": "visual",
      "title": "Discover story",
      "description": "Dot animation of domain discovery and URL results.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-enrich",
      "type": "visual",
      "title": "Enrich story",
      "description": "Dot animation of an identifier resolving to company and person profiles.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-extract",
      "type": "visual",
      "title": "Extract story",
      "description": "Dot animation of a page converted to Markdown, HTML, JSON, images, and screenshots.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-free-tools-hero",
      "type": "visual",
      "title": "Free tools hero story",
      "description": "Dot animation of tools processing a URL, with captions.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "story-parts",
        "dot-engine"
      ]
    },
    {
      "name": "story-freshness",
      "type": "visual",
      "title": "Freshness story",
      "description": "Dot animation of freshness settings selecting cached or live content.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-generate",
      "type": "visual",
      "title": "Generate story",
      "description": "Dot animation of company data being used to generate an email, social post, and landing page.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "story-parts"
      ]
    },
    {
      "name": "story-glossary-hero",
      "type": "visual",
      "title": "Glossary hero story",
      "description": "Dot animation of glossary entries and lookup, with captions.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "story-parts",
        "dot-engine"
      ]
    },
    {
      "name": "story-grants-hero",
      "type": "visual",
      "title": "Grants hero story",
      "description": "Dot animation of experiment progress and grant credits, with captions.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "story-parts",
        "dot-engine"
      ]
    },
    {
      "name": "story-identity",
      "type": "visual",
      "title": "Identity story",
      "description": "Dot animation of domains, email addresses, names, and tickers resolving to a brand.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "story-freshness"
      ]
    },
    {
      "name": "story-metadata",
      "type": "visual",
      "title": "Metadata story",
      "description": "Dot animation of titles and descriptions being added to URLs.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-monitor-ways",
      "type": "visual",
      "title": "Monitor ways stories",
      "description": "Dot animations for page changes, sitemap changes, and extracted-record monitoring.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "story-parts"
      ]
    },
    {
      "name": "story-output",
      "type": "visual",
      "title": "Output story",
      "description": "Dot animation of output format selection and returned files.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-parse",
      "type": "visual",
      "title": "Parse story",
      "description": "Dot animation of a PDF converted to Markdown through OCR.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-parts",
      "type": "lib",
      "title": "Story parts",
      "description": "Shared grids, captions, type specimens, swatches, and prompt fields for dot animations.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "dot-engine"
      ]
    },
    {
      "name": "story-persona",
      "type": "visual",
      "title": "Persona story",
      "description": "Dot animation of a team's task and API result, with captions.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "persona-glyph"
      ]
    },
    {
      "name": "story-question",
      "type": "visual",
      "title": "Question story",
      "description": "Dot animation of pages being searched to answer a question.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-rag",
      "type": "visual",
      "title": "RAG story",
      "description": "Dot animation of a query retrieving relevant pages.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-research",
      "type": "visual",
      "title": "Research story",
      "description": "Dot animation of company research producing a brand profile.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-scope",
      "type": "visual",
      "title": "Scope story",
      "description": "Dot animation of subdomain scope and crawl limits.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-scrape",
      "type": "visual",
      "title": "Scrape story",
      "description": "Dot animation of a URL producing Markdown, images, and a screenshot.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-search",
      "type": "visual",
      "title": "Search story",
      "description": "Dot animation of a search query and ranked results.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-setup",
      "type": "visual",
      "title": "Setup story",
      "description": "Dot animation of API key and package setup.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-site-map",
      "type": "visual",
      "title": "Site map story",
      "description": "Dot animation of a domain's page tree and page selection.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-sources",
      "type": "visual",
      "title": "Sources story",
      "description": "Dot animation of an answer with numbered source links.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-spacing",
      "type": "visual",
      "title": "Spacing story",
      "description": "Dot animation demonstrating spacing and shadow values.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-structure",
      "type": "visual",
      "title": "Structure story",
      "description": "Dot animation of prose converted to structured fields.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-tenant-theme",
      "type": "visual",
      "title": "Tenant theme story",
      "description": "Dot animation of a dashboard switching between tenant themes.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-type",
      "type": "visual",
      "title": "Type story",
      "description": "Dot animation demonstrating font weights and color values.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "story-parts"
      ]
    },
    {
      "name": "story-url-list",
      "type": "visual",
      "title": "URL list story",
      "description": "Dot animation of a URL batch and its metadata.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "story-watch",
      "type": "visual",
      "title": "Watch story",
      "description": "Dot animation of scheduled page checks and change notifications.",
      "surface": "site",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine"
      ]
    },
    {
      "name": "surface",
      "type": "lib",
      "title": "Surface",
      "description": "Applies site or product tokens to an area and its portaled overlays.",
      "surface": "both",
      "kinds": [],
      "requires": [
        "utils",
        "tooltip-provider",
        "use-scrolling-scrollbars"
      ]
    },
    {
      "name": "switch",
      "type": "ui",
      "title": "Switch",
      "description": "Toggle for settings that apply immediately, with on, off, and disabled states.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "table-page",
      "type": "block",
      "title": "Table page",
      "description": "API keys page with search, filtering, usage information, row actions, and empty states.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "app-shell",
        "data-toolbar",
        "empty-state",
        "page",
        "button",
        "dialog",
        "dropdown-menu",
        "field",
        "input",
        "secret-field",
        "select",
        "table",
        "glyph-tile",
        "utils"
      ]
    },
    {
      "name": "table",
      "type": "ui",
      "title": "Table",
      "description": "Data table with headers, row separators, and tabular numbers.",
      "surface": "product",
      "kinds": [
        "app-table",
        "app-th",
        "app-td"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "tabs",
      "type": "ui",
      "title": "Tabs",
      "description": "View tabs with product and site variants and an animated selection indicator.",
      "surface": "both",
      "kinds": [
        "tabs",
        "app-tabs"
      ],
      "requires": [
        "theme",
        "use-tab-glide",
        "utils"
      ]
    },
    {
      "name": "tag-filter",
      "type": "ui",
      "title": "Tag filter",
      "description": "Tag filter with removable chips and a searchable selection menu.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "popover",
        "utils"
      ]
    },
    {
      "name": "tags-input",
      "type": "ui",
      "title": "Tags input",
      "description": "Input that converts typed or pasted values into tags and marks invalid entries.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "testimonials",
      "type": "site",
      "title": "Testimonials",
      "description": "Quote cards with highlighted text on the active card.",
      "surface": "site",
      "kinds": [
        "card"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "textarea",
      "type": "ui",
      "title": "Textarea",
      "description": "Multi-line text input with hover, focus, invalid, and disabled states.",
      "surface": "both",
      "kinds": [],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "theme-store",
      "type": "lib",
      "title": "Theme store",
      "description": "Persists light, dark, or system theme selection and applies it before first paint.",
      "surface": "product",
      "kinds": [],
      "requires": []
    },
    {
      "name": "tooltip-provider",
      "type": "lib",
      "title": "Tooltip provider",
      "description": "Shared tooltip timing: a 1000ms hover delay and a 300ms window for immediate subsequent tooltips.",
      "surface": "product",
      "kinds": [],
      "requires": []
    },
    {
      "name": "tooltip",
      "type": "ui",
      "title": "Tooltip",
      "description": "Short label shown on hover or keyboard focus, with a shared delay between adjacent controls.",
      "surface": "product",
      "kinds": [
        "app-tooltip"
      ],
      "requires": [
        "theme",
        "surface",
        "tooltip-provider",
        "utils"
      ]
    },
    {
      "name": "trust-strip",
      "type": "site",
      "title": "Trust strip",
      "description": "Linked security cards with a mark, title, description, and action.",
      "surface": "site",
      "kinds": [
        "card",
        "card-ring",
        "button-secondary"
      ],
      "requires": [
        "theme",
        "button",
        "dot-glyph",
        "utils"
      ]
    },
    {
      "name": "try-api",
      "type": "product",
      "title": "Try API box",
      "description": "API demo with endpoint tabs, example input, and a run action.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "glide-tabs",
        "dot-glyph",
        "utils"
      ]
    },
    {
      "name": "upgrade-glyph",
      "type": "visual",
      "title": "Upgrade glyph",
      "description": "Dot animation that transitions between a gift and a rocket. Uses a static gift with reduced motion.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "dot-engine",
        "glyph-engine"
      ]
    },
    {
      "name": "usage-card",
      "type": "product",
      "title": "Usage card",
      "description": "Dashboard usage chart with breakdown selection, date ranges, stacked bars, and series filtering.",
      "surface": "product",
      "kinds": [
        "app-chart"
      ],
      "requires": [
        "theme",
        "bar-chart",
        "glide-tabs",
        "popover",
        "skeleton",
        "glyph-tile",
        "glyph-engine",
        "utils"
      ]
    },
    {
      "name": "usage-summary",
      "type": "product",
      "title": "Usage summary",
      "description": "Usage dialog with remaining credits, daily and monthly totals, and usage by API.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "stat-card",
        "dialog",
        "utils"
      ]
    },
    {
      "name": "use-case-features",
      "type": "site",
      "title": "Use case features",
      "description": "Use-case feature cards, comparison tables, and before-and-after panels.",
      "surface": "site",
      "kinds": [
        "card",
        "card-ring",
        "table"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "use-case-how-it-works",
      "type": "site",
      "title": "Use case how it works",
      "description": "Numbered implementation steps with install commands and code examples.",
      "surface": "site",
      "kinds": [
        "card",
        "card-ring",
        "code-window",
        "tabs"
      ],
      "requires": [
        "theme",
        "code-window",
        "button",
        "copy-button",
        "utils"
      ]
    },
    {
      "name": "use-case-personas",
      "type": "site",
      "title": "Use case personas",
      "description": "Use-case persona cards with roles, requirements, solutions, and optional animations.",
      "surface": "site",
      "kinds": [
        "card",
        "card-ring"
      ],
      "requires": [
        "theme",
        "use-case-features",
        "utils"
      ]
    },
    {
      "name": "use-case-proof",
      "type": "site",
      "title": "Use case proof",
      "description": "Use-case sections for customer quotes, metrics, examples, and stories.",
      "surface": "site",
      "kinds": [
        "card",
        "card-ring",
        "stat",
        "chip"
      ],
      "requires": [
        "theme",
        "button",
        "utils"
      ]
    },
    {
      "name": "use-cases",
      "type": "site",
      "title": "Use cases explorer",
      "description": "Tabbed use-case selector with code examples and optional automatic progression.",
      "surface": "site",
      "kinds": [
        "tabs",
        "code-window",
        "card-ring"
      ],
      "requires": [
        "theme",
        "code-window",
        "tabs",
        "utils"
      ]
    },
    {
      "name": "use-hold",
      "type": "hook",
      "title": "useHold",
      "description": "Runs an action after a pointer or key is held for the required duration.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme"
      ]
    },
    {
      "name": "use-hover-dot-morph",
      "type": "lib",
      "title": "Hover dot morph",
      "description": "Runs a dot animation while its parent card is hovered or focused.",
      "surface": "both",
      "kinds": [],
      "requires": [
        "dot-engine"
      ]
    },
    {
      "name": "use-scrolling-scrollbars",
      "type": "hook",
      "title": "useScrollingScrollbars",
      "description": "Shows scrollbars during scrolling and for 900ms afterward.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme"
      ]
    },
    {
      "name": "use-tab-glide",
      "type": "hook",
      "title": "useTabGlide",
      "description": "Moves the selection indicator between tabs with a spring animation.",
      "surface": "both",
      "kinds": [],
      "requires": [
        "theme"
      ]
    },
    {
      "name": "user-menu",
      "type": "product",
      "title": "User menu",
      "description": "Sidebar account menu with links, theme selection, and sign-out action.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "dropdown-menu",
        "tooltip",
        "theme-store",
        "utils"
      ]
    },
    {
      "name": "utils",
      "type": "lib",
      "title": "cn",
      "description": "Class-name merging for the design system's Tailwind utilities.",
      "surface": "both",
      "kinds": [],
      "requires": []
    },
    {
      "name": "workflow-grid",
      "type": "site",
      "title": "Workflow grid",
      "description": "Responsive card grid with titles, descriptions, and media panels.",
      "surface": "site",
      "kinds": [
        "card",
        "card-ring",
        "media-frame"
      ],
      "requires": [
        "theme",
        "utils"
      ]
    },
    {
      "name": "workspace-switcher",
      "type": "product",
      "title": "Workspace switcher",
      "description": "Workspace selector with plan labels, default selection, settings, and creation actions.",
      "surface": "product",
      "kinds": [],
      "requires": [
        "theme",
        "dropdown-menu",
        "tooltip",
        "utils"
      ]
    }
  ]
}
