{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "warren",
  "homepage": "https://warren.eduard3v.com",
  "items": [
    {
      "name": "warren-base",
      "type": "registry:base",
      "title": "Warren Base",
      "description": "Warren Control design tokens (colors, fonts, radius, keyframes). Requires Tailwind CSS v4.",
      "style": "warren",
      "baseColor": "beige",
      "cssVars": {
        "theme": {
          "font-sans": "ui-sans-serif, system-ui, \"Segoe UI\", sans-serif",
          "font-mono": "ui-monospace, \"SF Mono\", \"Cascadia Mono\", \"JetBrains Mono\", Menlo, Consolas, monospace",
          "radius": "0px"
        },
        "light": {
          "background": "#FCF9EA",
          "panel": "#FEFAF4",
          "foreground": "#111111",
          "primary": "#1B5EF2",
          "primary-foreground": "#ffffff",
          "primary-soft": "#A9C6F5",
          "primary-pale": "#C7CFE8",
          "success": "#22A35E",
          "success-foreground": "#ffffff",
          "success-soft": "#7AC69A",
          "danger": "#C23B4C",
          "danger-foreground": "#ffffff",
          "danger-soft": "#DA878F",
          "warning": "#E5941F",
          "warning-text": "#9A6208",
          "warning-soft": "#EFBD74",
          "accent": "#7248F9",
          "accent-foreground": "#ffffff",
          "accent-text": "#5F38E0",
          "accent-soft": "#AA8FF7",
          "teal": "#2DAB98",
          "teal-foreground": "#ffffff",
          "teal-text": "#1B7F72",
          "teal-soft": "#81CBBD",
          "primary-text": "#1750D8",
          "success-text": "#1B7A47",
          "danger-text": "#B33243",
          "muted": "#E8E6DA",
          "muted-foreground": "#6B6B63",
          "track": "#D9D8D0",
          "grid-dot": "rgb(17 17 17 / 0.05)",
          "border": "#111111",
          "ring": "#1B5EF2"
        }
      },
      "css": {
        "@layer base": {
          "body": {
            "background-color": "var(--color-background)",
            "background-image": "radial-gradient(circle, var(--grid-dot) 1px, transparent 1px)",
            "background-size": "24px 24px",
            "color": "var(--color-foreground)"
          }
        },
        "@keyframes warren-pulse": {
          "0%,100%": {
            "opacity": "1"
          },
          "50%": {
            "opacity": "0.35"
          }
        },
        "@keyframes warren-fade-in": {
          "from": {
            "opacity": "0"
          },
          "to": {
            "opacity": "1"
          }
        },
        "[data-theme=\"dark\"]": {
          "--background": "#101216",
          "--panel": "#16191F",
          "--foreground": "#E9EBEF",
          "--primary": "#4C8DFF",
          "--primary-foreground": "#0A1220",
          "--primary-soft": "#3157A8",
          "--primary-pale": "#22344F",
          "--success": "#34D27B",
          "--success-foreground": "#071309",
          "--success-soft": "#1F7A46",
          "--danger": "#F0566A",
          "--danger-foreground": "#160709",
          "--danger-soft": "#99384A",
          "--warning": "#FFB224",
          "--warning-text": "#FFCE7A",
          "--warning-soft": "#A66A14",
          "--accent": "#9D7BFF",
          "--accent-foreground": "#0D0820",
          "--accent-text": "#C4B0FF",
          "--accent-soft": "#574799",
          "--teal": "#35C4AE",
          "--teal-foreground": "#06110E",
          "--teal-text": "#7CDFCC",
          "--teal-soft": "#1D6B5E",
          "--primary-text": "#9DC1FF",
          "--success-text": "#7FE3A8",
          "--danger-text": "#FF9AA6",
          "--muted": "#23262E",
          "--muted-foreground": "#9BA0AC",
          "--track": "#2A2E37",
          "--border": "#D9DBE1",
          "--ring": "#4C8DFF",
          "--grid-dot": "rgb(255 255 255 / 0.07)"
        },
        "[data-theme=\"jade\"]": {
          "--background": "#EFF5EE",
          "--panel": "#F6FAF4",
          "--foreground": "#13211B",
          "--primary": "#0F7B5F",
          "--primary-foreground": "#FFFFFF",
          "--primary-soft": "#83BAA8",
          "--primary-pale": "#C2D8CE",
          "--success": "#3E7A14",
          "--success-foreground": "#FFFFFF",
          "--success-soft": "#88AD6E",
          "--danger": "#C23B4C",
          "--danger-foreground": "#FFFFFF",
          "--danger-soft": "#DA878F",
          "--warning": "#DD8A1F",
          "--warning-text": "#8F5D0B",
          "--warning-soft": "#EBC178",
          "--accent": "#6D4FD8",
          "--accent-foreground": "#FFFFFF",
          "--accent-text": "#5939C8",
          "--accent-soft": "#AB98EF",
          "--teal": "#19827A",
          "--teal-foreground": "#FFFFFF",
          "--teal-text": "#17726A",
          "--teal-soft": "#86C5BC",
          "--primary-text": "#0C624C",
          "--success-text": "#376B12",
          "--danger-text": "#AC3040",
          "--muted": "#DDE5DB",
          "--muted-foreground": "#5C6B60",
          "--track": "#CCD6CA",
          "--border": "#13211B",
          "--ring": "#0F7B5F",
          "--grid-dot": "rgb(19 33 27 / 0.06)"
        },
        "[data-theme=\"green-neon\"]": {
          "--background": "#0A0F0C",
          "--panel": "#0F1712",
          "--foreground": "#D6E8DC",
          "--primary": "#00E676",
          "--primary-foreground": "#03130A",
          "--primary-soft": "#0E6B3C",
          "--primary-pale": "#123F29",
          "--success": "#4ADE80",
          "--success-foreground": "#04130A",
          "--success-soft": "#1D7A45",
          "--danger": "#FF5470",
          "--danger-foreground": "#170308",
          "--danger-soft": "#96374A",
          "--warning": "#FFD166",
          "--warning-text": "#FFE29A",
          "--warning-soft": "#A67F33",
          "--accent": "#C084FC",
          "--accent-foreground": "#12061C",
          "--accent-text": "#DCC2FF",
          "--accent-soft": "#6B3FA0",
          "--teal": "#2DD4BF",
          "--teal-foreground": "#04120F",
          "--teal-text": "#8CF0E3",
          "--teal-soft": "#14655B",
          "--primary-text": "#6DFFAD",
          "--success-text": "#93F5B9",
          "--danger-text": "#FF9FB1",
          "--muted": "#16231C",
          "--muted-foreground": "#8FA89A",
          "--track": "#1D2C24",
          "--border": "#CFEEDD",
          "--ring": "#00E676",
          "--grid-dot": "rgb(109 255 173 / 0.09)"
        },
        "[data-theme=\"dracula\"]": {
          "--background": "#282A36",
          "--panel": "#2E3040",
          "--foreground": "#F8F8F2",
          "--primary": "#BD93F9",
          "--primary-foreground": "#21222C",
          "--primary-soft": "#655397",
          "--primary-pale": "#473E66",
          "--success": "#50FA7B",
          "--success-foreground": "#12291A",
          "--success-soft": "#2E8C4C",
          "--danger": "#FF5555",
          "--danger-foreground": "#2C1414",
          "--danger-soft": "#993A3A",
          "--warning": "#FFB86C",
          "--warning-text": "#FFD4A3",
          "--warning-soft": "#A87241",
          "--accent": "#FF79C6",
          "--accent-foreground": "#2B121F",
          "--accent-text": "#FFA6DA",
          "--accent-soft": "#A64D85",
          "--teal": "#8BE9FD",
          "--teal-foreground": "#0E2529",
          "--teal-text": "#B4F1FF",
          "--teal-soft": "#4E93A3",
          "--primary-text": "#D6BCFF",
          "--success-text": "#96FCB4",
          "--danger-text": "#FF9D9D",
          "--muted": "#363948",
          "--muted-foreground": "#9BA3C0",
          "--track": "#44475A",
          "--border": "#D8DAE3",
          "--ring": "#BD93F9",
          "--grid-dot": "rgb(139 233 253 / 0.1)"
        },
        "@keyframes warren-slide-in-right": {
          "from": {
            "transform": "translateX(100%)"
          },
          "to": {
            "transform": "translateX(0)"
          }
        },
        "@keyframes warren-spin": {
          "to": {
            "transform": "rotate(360deg)"
          }
        },
        "@keyframes warren-map-flash": {
          "0%": {
            "opacity": "0.15"
          },
          "40%": {
            "opacity": "1"
          },
          "100%": {
            "opacity": "0"
          }
        },
        ".animate-warren-pulse": {
          "animation": "warren-pulse 1.6s ease-in-out infinite"
        },
        ".animate-warren-fade-in": {
          "animation": "warren-fade-in 0.4s ease-out"
        },
        ".animate-warren-slide-in-right": {
          "animation": "warren-slide-in-right 150ms ease-out"
        },
        ".animate-warren-spin": {
          "animation": "warren-spin 1.2s steps(4) infinite"
        },
        ".animate-warren-map-flash": {
          "animation": "warren-map-flash 900ms ease-out"
        },
        "@media (prefers-reduced-motion: reduce)": {
          ".animate-warren-pulse, .animate-warren-fade-in, .animate-warren-spin, .animate-warren-slide-in-right, .animate-warren-map-flash": {
            "animation": "none !important"
          },
          "*, *::before, *::after": {
            "transition-duration": "0.01ms !important"
          }
        }
      }
    },
    {
      "name": "cn",
      "type": "registry:lib",
      "title": "cn",
      "description": "className merger (clsx + tailwind-merge).",
      "dependencies": [
        "clsx@^2",
        "tailwind-merge@^3"
      ],
      "files": [
        {
          "path": "registry/warren/lib/cn.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "tone",
      "type": "registry:lib",
      "title": "Tone",
      "description": "Shared semantic tone union (primary/success/danger/warning/accent/teal/muted).",
      "files": [
        {
          "path": "registry/warren/lib/tone.ts",
          "type": "registry:lib"
        }
      ]
    },
    {
      "name": "panel",
      "type": "registry:ui",
      "title": "Panel",
      "description": "Bordered card with header/actions/footer.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/panel/panel.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "badge",
      "type": "registry:ui",
      "title": "Badge",
      "description": "Status chip with optional pulsing live dot.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/badge/badge.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "stat",
      "type": "registry:ui",
      "title": "Stat",
      "description": "Label/value metric readout with optional delta.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/stat/stat.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "stepper",
      "type": "registry:ui",
      "title": "Stepper",
      "description": "Horizontal stage stepper with active spotlight.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/stepper/stepper.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "progress-rail",
      "type": "registry:ui",
      "title": "ProgressRail",
      "description": "Dotted progress track with gate marker and flanking labels.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/progress-rail/progress-rail.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "bar-chart",
      "type": "registry:ui",
      "title": "BarChart",
      "description": "Horizontal/vertical SVG bar chart with signed values.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone"
      ],
      "files": [
        {
          "path": "registry/warren/bar-chart/bar-chart.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "heatmap",
      "type": "registry:ui",
      "title": "Heatmap",
      "description": "Density grid with tone-mixed cell fills.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone"
      ],
      "files": [
        {
          "path": "registry/warren/heatmap/heatmap.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sparkline",
      "type": "registry:ui",
      "title": "Sparkline",
      "description": "Mini SVG line/area chart.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone"
      ],
      "files": [
        {
          "path": "registry/warren/sparkline/sparkline.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "ledger",
      "type": "registry:ui",
      "title": "Ledger",
      "description": "Deviations-style bar ledger with total and actions.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone"
      ],
      "files": [
        {
          "path": "registry/warren/ledger/ledger.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "cell-grid",
      "type": "registry:ui",
      "title": "CellGrid",
      "description": "Run-wall grid of status cells.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/cell-grid/cell-grid.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "log-list",
      "type": "registry:ui",
      "title": "LogList",
      "description": "Timestamped log rows, optionally multi-column.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone"
      ],
      "files": [
        {
          "path": "registry/warren/log-list/log-list.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "graph",
      "type": "registry:ui",
      "title": "GraphView",
      "description": "Rotating 3D shell cluster network (deterministic layout).",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone"
      ],
      "files": [
        {
          "path": "registry/warren/graph/layout.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/warren/graph/graph.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "state-timeline",
      "type": "registry:ui",
      "title": "StateTimeline",
      "description": "Lane-per-entity discrete state bands over a shared time window.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone"
      ],
      "files": [
        {
          "path": "registry/warren/state-timeline/time-scale.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/warren/state-timeline/state-timeline.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "uptime-strip",
      "type": "registry:ui",
      "title": "UptimeStrip",
      "description": "Per-service trailing-day availability strip with state-coded squares and uptime percentages.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/uptime-strip/window.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/warren/uptime-strip/uptime-strip.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "bullet-bar",
      "type": "registry:ui",
      "title": "BulletBar",
      "description": "SLO bullet rows: measure bar against qualitative zones with a target tick.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone"
      ],
      "files": [
        {
          "path": "registry/warren/bullet-bar/zones.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/warren/bullet-bar/bullet-bar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "band-chart",
      "type": "registry:ui",
      "title": "BandChart",
      "description": "Time series inside an expected-range envelope with breach emphasis.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone"
      ],
      "files": [
        {
          "path": "registry/warren/band-chart/scale.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/warren/band-chart/band-chart.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "meter-cluster",
      "type": "registry:ui",
      "title": "MeterCluster",
      "description": "Grid of segmented threshold gauges with zone-tinted cells and ink tick marks.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/meter-cluster/gauge.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/warren/meter-cluster/meter-cluster.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "incident-timeline",
      "type": "registry:ui",
      "title": "IncidentTimeline",
      "description": "Forensic incident ledger with lifecycle milestone pins and expandable event entries.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone"
      ],
      "files": [
        {
          "path": "registry/warren/incident-timeline/incident-timeline.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "filter-bar",
      "type": "registry:ui",
      "title": "FilterBar",
      "description": "Query-chip filter bar with removable chips, typeahead suggestions, and a raw-query escape hatch.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/filter-bar/parse.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/warren/filter-bar/filter-bar.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "empty",
      "type": "registry:ui",
      "title": "Empty",
      "description": "Standardized zero-data panel with signal dot, caps-label reason, and one action.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/button"
      ],
      "files": [
        {
          "path": "registry/warren/empty/empty.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "approval-gate",
      "type": "registry:ui",
      "title": "ApprovalGate",
      "description": "Human-approval checkpoint card with risk tier, exact argument payload, audit fields, and approve/reject/edit actions.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone",
        "@warren/button"
      ],
      "files": [
        {
          "path": "registry/warren/approval-gate/state.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/warren/approval-gate/approval-gate.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "agent-trace",
      "type": "registry:ui",
      "title": "AgentTrace",
      "description": "Hierarchical span tree with collapsible detail records, optional duration timeline, and a span inspector pane.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone"
      ],
      "files": [
        {
          "path": "registry/warren/agent-trace/spans.ts",
          "type": "registry:lib"
        },
        {
          "path": "registry/warren/agent-trace/agent-trace.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "button",
      "type": "registry:ui",
      "title": "Button",
      "description": "Square-bordered action button with signal variants.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/button/button.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "input",
      "type": "registry:ui",
      "title": "Input",
      "description": "Text input with warren styling.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/input/input.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "textarea",
      "type": "registry:ui",
      "title": "Textarea",
      "description": "Multi-line text input with warren styling.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/textarea/textarea.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "label",
      "type": "registry:ui",
      "title": "Label",
      "description": "10px mono uppercase form label.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/label/label.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "field",
      "type": "registry:ui",
      "title": "Field",
      "description": "Label + control + hint/error composition.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/label"
      ],
      "files": [
        {
          "path": "registry/warren/field/field.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tabs",
      "type": "registry:ui",
      "title": "Tabs",
      "description": "Zero-dependency tab list with active underline.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/tabs/tabs.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "switch",
      "type": "registry:ui",
      "title": "Switch",
      "description": "Two-state toggle with square thumb.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/switch/switch.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "checkbox",
      "type": "registry:ui",
      "title": "Checkbox",
      "description": "Native checkbox with warren styling.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/checkbox/checkbox.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "native-select",
      "type": "registry:ui",
      "title": "NativeSelect",
      "description": "Styled native select with square chevron.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/native-select/native-select.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "theme-select",
      "type": "registry:ui",
      "title": "ThemeSelect",
      "description": "Applies a Warren theme via data-theme with optional persistence.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/native-select"
      ],
      "files": [
        {
          "path": "registry/warren/theme-select/theme-select.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "select",
      "type": "registry:ui",
      "title": "Select",
      "description": "Custom dropdown select with keyboard-navigable listbox.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/select/select.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "sheet",
      "type": "registry:ui",
      "title": "Sheet",
      "description": "Right-side slide-over panel with overlay, focus trap and Esc handling.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/sheet/sheet.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "separator",
      "type": "registry:ui",
      "title": "Separator",
      "description": "1px hairline horizontal/vertical divider.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/separator/separator.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "skeleton",
      "type": "registry:ui",
      "title": "Skeleton",
      "description": "Static loading placeholder block.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/skeleton/skeleton.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "spinner",
      "type": "registry:ui",
      "title": "Spinner",
      "description": "Pulsing square loading indicator.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/spinner/spinner.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "progress",
      "type": "registry:ui",
      "title": "Progress",
      "description": "Snapping 0-100 progress bar.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/progress/progress.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "table",
      "type": "registry:ui",
      "title": "Table",
      "description": "Mono table primitives with hairline rows.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/table/table.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "alert",
      "type": "registry:ui",
      "title": "Alert",
      "description": "Signal-colored callout with title and body.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/alert/alert.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "kbd",
      "type": "registry:ui",
      "title": "Kbd",
      "description": "Keyboard key chip.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/kbd/kbd.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "tooltip",
      "type": "registry:ui",
      "title": "Tooltip",
      "description": "CSS-only hover/focus supplementary label.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/tooltip/tooltip.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "popover",
      "type": "registry:ui",
      "title": "Popover",
      "description": "Anchored context panel with outside/Esc dismiss.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/popover/popover.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "toast",
      "type": "registry:ui",
      "title": "Toast",
      "description": "Transient signal alert with timed auto-dismiss.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/toast/toast.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "dialog",
      "type": "registry:ui",
      "title": "Dialog",
      "description": "Controlled modal with focus management and scroll lock.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/dialog/dialog.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "command",
      "type": "registry:ui",
      "title": "Command",
      "description": "Keyboard-driven command palette with filter and selection.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/kbd"
      ],
      "files": [
        {
          "path": "registry/warren/command/command.tsx",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "world-map",
      "type": "registry:ui",
      "title": "World Map",
      "description": "Square-dot world map with country/continent highlights, city pins, and route links.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base",
        "@warren/tone",
        "@warren/sheet",
        "@warren/switch"
      ],
      "files": [
        {
          "path": "registry/warren/world-map/world-map.tsx",
          "type": "registry:ui"
        },
        {
          "path": "registry/warren/world-map/geo.ts",
          "type": "registry:ui"
        },
        {
          "path": "registry/warren/world-map/world-map-data.ts",
          "type": "registry:ui"
        }
      ]
    },
    {
      "name": "floating-panel",
      "type": "registry:ui",
      "title": "Floating Panel",
      "description": "Draggable floating dialog window: opens next to its trigger, viewport-clamped while dragging, closes on Escape or outside mousedown.",
      "registryDependencies": [
        "@warren/cn",
        "@warren/warren-base"
      ],
      "files": [
        {
          "path": "registry/warren/floating-panel/floating-panel.tsx",
          "type": "registry:ui"
        },
        {
          "path": "registry/warren/floating-panel/floating-panel.test.tsx",
          "type": "registry:ui"
        }
      ]
    }
  ]
}
