{
  "$schema": "https://ui.shadcn.com/schema/registry.json",
  "name": "aicanvas",
  "homepage": "https://aicanvas.me",
  "items": [
    {
      "name": "ai-job-cards",
      "type": "registry:ui",
      "title": "AI Job Cards",
      "description": "Three AI job card stacks with swipe-to-cycle. Brand logos, bookmark toggle, springs.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/ai-job-cards.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/ai-job-cards.tsx"
        }
      ]
    },
    {
      "name": "andromeda-button",
      "type": "registry:ui",
      "title": "Andromeda Button",
      "description": "A sci-fi / blueprint-aesthetic button with five variants (default, outline, ghost, destructive, link), three sizes (small, medium, large), optional leading icon, and full hover / focus / active / disabled state coverage. Transparent hairline surfaces sit on a near-black canvas, with an electric-blue accent that brightens and glows on interaction.",
      "dependencies": [
        "class-variance-authority",
        "clsx",
        "tailwind-merge",
        "@carbon/icons-react"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda-button.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/andromeda-button.tsx"
        }
      ]
    },
    {
      "name": "meet-the-crew",
      "type": "registry:ui",
      "title": "Meet the Crew",
      "description": "A swipeable portrait card stack perfect for introducing a team, showcasing crew members, or picking an avatar. Four stacked cards fan out with soft rotations — drag to browse, tap to choose. Drop in your own photos and names for an About Us section, a character selector, or an onboarding profile picker.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/meet-the-crew.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/meet-the-crew.tsx"
        }
      ]
    },
    {
      "name": "blind-pull-toggle",
      "type": "registry:ui",
      "title": "Blind Pull Toggle",
      "description": "A dark/light mode toggle styled as a window-blind pull cord — click to yank the cord and watch the icon swap through a venetian-blind slat animation.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/blind-pull-toggle.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/blind-pull-toggle.tsx"
        }
      ]
    },
    {
      "name": "bubble-field",
      "type": "registry:ui",
      "title": "Bubble Field",
      "description": "A grid of outline circles that burst on hover — each expanding and fading like a soap bubble popping, then reforming, with a soft pastel blue palette.",
      "dependencies": [],
      "files": [
        {
          "path": "components/aicanvas/bubble-field.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/bubble-field.tsx"
        }
      ]
    },
    {
      "name": "charging-widget",
      "type": "registry:ui",
      "title": "Charging Widget",
      "description": "Circular battery indicator with animated liquid waves that rise as the percentage counts up, looping continuously.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/charging-widget.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/charging-widget.tsx"
        }
      ]
    },
    {
      "name": "crypto-swap",
      "type": "registry:ui",
      "title": "Crypto Swap",
      "description": "A crypto token-swap widget with live exchange rates, price impact, and an animated swap button.",
      "dependencies": [
        "framer-motion",
        "@phosphor-icons/react"
      ],
      "files": [
        {
          "path": "components/aicanvas/crypto-swap.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/crypto-swap.tsx"
        }
      ]
    },
    {
      "name": "cube-carousel",
      "type": "registry:ui",
      "title": "Cube Carousel",
      "description": "An interactive 3D photo cube with six placeholder images on its faces. Drag with your cursor to spin it freely on both axes; release and it coasts naturally to a stop. No buttons, no snap, no controls, just the cube and your hand.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/cube-carousel.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/cube-carousel.tsx"
        }
      ]
    },
    {
      "name": "curious-ai",
      "type": "registry:ui",
      "title": "Curious AI",
      "description": "A morphing 3D AI orb in Three.js with cyan and magenta rim lights, iridescent pink speckles on a wrinkled surface, and glowing pink robot-eye pills that follow your cursor and blink between idle looks.",
      "dependencies": [
        "three",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/curious-ai.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/curious-ai.tsx"
        }
      ]
    },
    {
      "name": "danger-stripes",
      "type": "registry:ui",
      "title": "Danger Stripes",
      "description": "Three crossing caution-tape stripes on orange. Hover to shake, click to intensify.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/danger-stripes.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/danger-stripes.tsx"
        }
      ]
    },
    {
      "name": "distortion-grid",
      "type": "registry:ui",
      "title": "Distortion Grid",
      "description": "A canvas grid of thin lines that slowly undulate with large sweeping waves. Hovering repels the grid fabric outward from the cursor, amplifying the distortion across the entire canvas.",
      "dependencies": [],
      "files": [
        {
          "path": "components/aicanvas/distortion-grid.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/distortion-grid.tsx"
        }
      ]
    },
    {
      "name": "dot-grid",
      "type": "registry:ui",
      "title": "Dot Grid",
      "description": "A canvas-based dot grid background where hovering illuminates nearby dots with a smooth radial glow and organic fade.",
      "dependencies": [],
      "files": [
        {
          "path": "components/aicanvas/dot-grid.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/dot-grid.tsx"
        }
      ]
    },
    {
      "name": "emoji-burst",
      "type": "registry:ui",
      "title": "Emoji Burst",
      "description": "A button that explodes emojis outward in all directions. Five emoji sets cycle on each click.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/emoji-burst.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/emoji-burst.tsx"
        }
      ]
    },
    {
      "name": "flip-calendar",
      "type": "registry:ui",
      "title": "Flip Calendar",
      "description": "A desk-calendar widget showing dates 1–31 with a satisfying flip-clock page-turn animation.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/flip-calendar.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/flip-calendar.tsx"
        }
      ]
    },
    {
      "name": "traveldeck",
      "type": "registry:ui",
      "title": "Travel Deck",
      "description": "A swipeable deck of destination cards. Drag the front card down to fling it off-screen and reveal the next. Each card reveals an animated hotels counter as it comes forward.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/traveldeck.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/traveldeck.tsx"
        }
      ]
    },
    {
      "name": "glass-ai-compose",
      "type": "registry:ui",
      "title": "Glass AI Composer",
      "description": "Glassmorphism AI chat input with image upload, web search toggle, and model switcher.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-ai-compose.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-ai-compose.tsx"
        }
      ]
    },
    {
      "name": "glass-card",
      "type": "registry:ui",
      "title": "Glass Card",
      "description": "Glassmorphism content cards with 3D tilt-on-hover, spring physics, and a cursor-following glare highlight.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-card.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-card.tsx"
        }
      ]
    },
    {
      "name": "glass-dock",
      "type": "registry:ui",
      "title": "Glass Dock",
      "description": "Glassmorphism macOS-style dock with cursor-proximity magnification. Icons scale with spring physics as the mouse approaches.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-dock.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-dock.tsx"
        }
      ]
    },
    {
      "name": "glass-modal",
      "type": "registry:ui",
      "title": "Glass Modal",
      "description": "Centered dialog with deep glass blur, scale-spring entrance, and staggered content reveal.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-modal.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-modal.tsx"
        }
      ]
    },
    {
      "name": "glass-music-player",
      "type": "registry:ui",
      "title": "Glass Music Player",
      "description": "Mini music player with glass surface, spinning vinyl art, animated progress bar, and ambient glow.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-music-player.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-music-player.tsx"
        }
      ]
    },
    {
      "name": "glass-navbar",
      "type": "registry:ui",
      "title": "Glass Navbar",
      "description": "Frosted glass navigation bar with animated active tab indicator, ambient color blobs, and spring-physics entrance.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-navbar.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-navbar.tsx"
        }
      ]
    },
    {
      "name": "glass-notification",
      "type": "registry:ui",
      "title": "Glass Notifications",
      "description": "Swipe-to-dismiss notification stack with glass cards and spring-animated layout transitions.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-notification.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-notification.tsx"
        }
      ]
    },
    {
      "name": "glass-progress",
      "type": "registry:ui",
      "title": "Glass Progress",
      "description": "Glassmorphism progress bar panel with glowing gradient fills, spring-animated counters, staggered reveal, and replay button.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-progress.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-progress.tsx"
        }
      ]
    },
    {
      "name": "glass-search-bar",
      "type": "registry:ui",
      "title": "Glass Search Bar",
      "description": "Glassmorphism search bar with animated suggestion dropdown, active state glow, and reduced-motion support.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-search-bar.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-search-bar.tsx"
        }
      ]
    },
    {
      "name": "glass-sidebar",
      "type": "registry:ui",
      "title": "Glass Sidebar",
      "description": "Collapsible glassmorphism sidebar with icon-only and full label states, spring-animated expand and collapse.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-sidebar.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-sidebar.tsx"
        }
      ]
    },
    {
      "name": "glass-slider",
      "type": "registry:ui",
      "title": "Glass Slider",
      "description": "Range sliders with glass tracks, glowing colored fills, and spring-animated thumbs that scale on drag.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-slider.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-slider.tsx"
        }
      ]
    },
    {
      "name": "glass-stepper",
      "type": "registry:ui",
      "title": "Glass Stepper",
      "description": "Glassmorphism numeric stepper with spring number flip, notification-style tinted buttons, and configurable min/max/step.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-stepper.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-stepper.tsx"
        }
      ]
    },
    {
      "name": "glass-tab-bar",
      "type": "registry:ui",
      "title": "Glass Tab Bar",
      "description": "Frosted glass pill tab bar with a sliding active indicator. Edge tabs snap flush to the container wall.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-tab-bar.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-tab-bar.tsx"
        }
      ]
    },
    {
      "name": "glass-tags",
      "type": "registry:ui",
      "title": "Glass Tags",
      "description": "Selectable pill-shaped tags with glass surfaces, unique color accents, and spring-animated check marks.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-tags.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-tags.tsx"
        }
      ]
    },
    {
      "name": "glass-toast",
      "type": "registry:ui",
      "title": "Glass Toast",
      "description": "Frosted glassmorphism toast notification stack with 4 variants, auto-dismiss progress bar, and spring-animated stacking.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-toast.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-toast.tsx"
        }
      ]
    },
    {
      "name": "glass-toggle",
      "type": "registry:ui",
      "title": "Glass Toggle",
      "description": "On/off toggles with glass housing and liquid-feel spring animation. Track color transitions smoothly.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-toggle.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-toggle.tsx"
        }
      ]
    },
    {
      "name": "glass-user-menu",
      "type": "registry:ui",
      "title": "Glass User Menu",
      "description": "Frosted glass user avatar trigger with animated dropdown, grouped menu items, and Log Out.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glass-user-menu.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glass-user-menu.tsx"
        }
      ]
    },
    {
      "name": "glitch-button",
      "type": "registry:ui",
      "title": "Glitch Button",
      "description": "A terminal-inspired button with a text scramble glitch effect on hover.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/glitch-button.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/glitch-button.tsx"
        }
      ]
    },
    {
      "name": "good-vibes",
      "type": "registry:ui",
      "title": "Good Vibes",
      "description": "Interactive typography where letters scale 2x and become bold on hover.",
      "dependencies": [
        "framer-motion",
        "react",
        "next"
      ],
      "files": [
        {
          "path": "components/aicanvas/good-vibes.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/good-vibes.tsx"
        }
      ]
    },
    {
      "name": "grid-lines",
      "type": "registry:ui",
      "title": "Grid Lines",
      "description": "A dot grid connected by thin lines. On hover, a radial wave pulses outward from the cursor, illuminating lines and dots as it spreads.",
      "dependencies": [],
      "files": [
        {
          "path": "components/aicanvas/grid-lines.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/grid-lines.tsx"
        }
      ]
    },
    {
      "name": "halo-type",
      "type": "registry:ui",
      "title": "Halo Type",
      "description": "Rotating 3D ring text animation — the front arc reads upright, the back arc upside-down.",
      "dependencies": [
        "framer-motion",
        "react"
      ],
      "files": [
        {
          "path": "components/aicanvas/halo-type.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/halo-type.tsx"
        }
      ]
    },
    {
      "name": "interactive-card-stack",
      "type": "registry:ui",
      "title": "Interactive Card Stack",
      "description": "A scattered stack of photo cards. Drag, click, or arrow keys to focus any card.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/interactive-card-stack.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/interactive-card-stack.tsx"
        }
      ]
    },
    {
      "name": "jar-of-emotions",
      "type": "registry:ui",
      "title": "Emoji Reaction Jar",
      "description": "Glass jar widget. Click a reaction to spring the lid and watch the emoji bounce down.",
      "dependencies": [
        "matter-js",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/jar-of-emotions.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/jar-of-emotions.tsx"
        }
      ]
    },
    {
      "name": "label-cards",
      "type": "registry:ui",
      "title": "Label Cards",
      "description": "Colour-blocked label cards scattered at random angles. Tap one to spring it to centre.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/label-cards.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/label-cards.tsx"
        }
      ]
    },
    {
      "name": "magnetic-dots",
      "type": "registry:ui",
      "title": "Magnetic Dots",
      "description": "A dense grid of dots that get magnetically pulled toward the cursor, snapping back with a satisfying elastic bounce when you leave.",
      "dependencies": [],
      "files": [
        {
          "path": "components/aicanvas/magnetic-dots.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/magnetic-dots.tsx"
        }
      ]
    },
    {
      "name": "mark-toggle",
      "type": "registry:ui",
      "title": "Mark Toggle",
      "description": "An iOS-style pill toggle in warm earth and sand tones — the thumb carries a small icon that morphs from X to checkmark as it slides across.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/mark-toggle.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/mark-toggle.tsx"
        }
      ]
    },
    {
      "name": "mood-tracker",
      "type": "registry:ui",
      "title": "Mood Tracker",
      "description": "A feelings check-in card with six expressive faces. Drag the segmented slider and the face, label, and liquid color wash shift with your mood.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/mood-tracker.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/mood-tracker.tsx"
        }
      ]
    },
    {
      "name": "neon-clock",
      "type": "registry:ui",
      "title": "Seven-Segment Clock",
      "description": "A retro 7-segment LCD clock with pixel-grid overlay. Shows live HH:MM:SS with blinking colon, AM/PM indicator, day of week row, and full date.",
      "dependencies": [],
      "files": [
        {
          "path": "components/aicanvas/neon-clock.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/neon-clock.tsx"
        }
      ]
    },
    {
      "name": "new-project-modal",
      "type": "registry:ui",
      "title": "New Project Modal",
      "description": "A pill button that morphs into a soft-UI project creation form — title, description, 7-swatch color label picker, Private toggle, and a checkmark-confirm Create button.",
      "dependencies": [
        "framer-motion",
        "@phosphor-icons/react"
      ],
      "files": [
        {
          "path": "components/aicanvas/new-project-modal.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/new-project-modal.tsx"
        }
      ]
    },
    {
      "name": "noise-bg",
      "type": "registry:ui",
      "title": "Grain Background",
      "description": "A canvas-based grain background of randomly scattered dots that illuminate with a soft Gaussian glow and organic connection lines on hover.",
      "dependencies": [],
      "files": [
        {
          "path": "components/aicanvas/noise-bg.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/noise-bg.tsx"
        }
      ]
    },
    {
      "name": "noise-field",
      "type": "registry:ui",
      "title": "Noise Field",
      "description": "A grid of flowing arrows driven by layered sine-wave noise — like wind mapped on a weather chart. Hover to create a swirling vortex at the cursor.",
      "dependencies": [],
      "files": [
        {
          "path": "components/aicanvas/noise-field.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/noise-field.tsx"
        }
      ]
    },
    {
      "name": "orbit",
      "type": "registry:ui",
      "title": "Orbit",
      "description": "Kinetic text animation arranged in a circle. Hover slows the spin; letters push outward.",
      "dependencies": [
        "next"
      ],
      "files": [
        {
          "path": "components/aicanvas/orbit.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/orbit.tsx"
        }
      ]
    },
    {
      "name": "particle-constellation",
      "type": "registry:ui",
      "title": "Spider Web",
      "description": "An organic silk web that breathes with a slow idle bow. Hover to physically push the nodes — each intersection bounces back with tension, fading the strings near your cursor.",
      "dependencies": [],
      "files": [
        {
          "path": "components/aicanvas/particle-constellation.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/particle-constellation.tsx"
        }
      ]
    },
    {
      "name": "particle-sphere",
      "type": "registry:ui",
      "title": "Particle Sphere",
      "description": "9,000 particles arranged on a sphere with warm gold and cool silver tones, slowly spinning in Three.js.",
      "dependencies": [
        "three"
      ],
      "files": [
        {
          "path": "components/aicanvas/particle-sphere.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/particle-sphere.tsx"
        }
      ]
    },
    {
      "name": "peel-corner-reveal",
      "type": "registry:ui",
      "title": "Peel to Scan",
      "description": "A portrait card whose corner peels on tap, revealing a scannable Wi-Fi QR code.",
      "dependencies": [
        "framer-motion",
        "qrcode.react"
      ],
      "files": [
        {
          "path": "components/aicanvas/peel-corner-reveal.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/peel-corner-reveal.tsx"
        }
      ]
    },
    {
      "name": "pill-toggle",
      "type": "registry:ui",
      "title": "Pill Toggle",
      "description": "A minimal iOS-style slider toggle — thumb glides between off (grey) and on (green) with a snappy spring. Fully responsive.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/pill-toggle.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/pill-toggle.tsx"
        }
      ]
    },
    {
      "name": "playful",
      "type": "registry:ui",
      "title": "Playful",
      "description": "Kinetic typography where letters jump, drop, and rotate on cursor proximity.",
      "dependencies": [
        "framer-motion",
        "react",
        "next"
      ],
      "files": [
        {
          "path": "components/aicanvas/playful.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/playful.tsx"
        }
      ]
    },
    {
      "name": "polaroid-stack",
      "type": "registry:ui",
      "title": "Polaroid Stack",
      "description": "Five polaroid photo cards stacked in a casual pile — click to fan them out in a spring-animated arc, hover to lift, click a card to spotlight it.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/polaroid-stack.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/polaroid-stack.tsx"
        }
      ]
    },
    {
      "name": "product-card-deck",
      "type": "registry:ui",
      "title": "Product Card Deck",
      "description": "A draggable card deck you flick through one card at a time. The top card leans toward your drag, then spins away with momentum to reveal the next, and the deck loops endlessly. Every card pairs a picture with a title and a pill action button with hover and press states.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/product-card-deck.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/product-card-deck.tsx"
        }
      ]
    },
    {
      "name": "radial-cards",
      "type": "registry:ui",
      "title": "Radial Cards",
      "description": "Seven health-metric cards bloom into a slowly rotating flower — tap any petal to pull it forward and read your stats up close.",
      "dependencies": [
        "framer-motion",
        "@phosphor-icons/react",
        "react"
      ],
      "files": [
        {
          "path": "components/aicanvas/radial-cards.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/radial-cards.tsx"
        }
      ]
    },
    {
      "name": "radial-toolbar",
      "type": "registry:ui",
      "title": "Radial Toolbar",
      "description": "A radial context menu that fans out formatting tools around a centre button, with active toggle states and an animated label pill.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/radial-toolbar.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/radial-toolbar.tsx"
        }
      ]
    },
    {
      "name": "responsive-letters",
      "type": "registry:ui",
      "title": "Responsive Letters",
      "description": "Interactive text where each letter responds to cursor proximity, animating variable font properties (weight, stretch, italic, letter-spacing, skew) to create a deformation-under-pressure effect.",
      "dependencies": [
        "framer-motion",
        "react",
        "next"
      ],
      "files": [
        {
          "path": "components/aicanvas/responsive-letters.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/responsive-letters.tsx"
        }
      ]
    },
    {
      "name": "ripple-type",
      "type": "registry:ui",
      "title": "Ripple Type",
      "description": "SVG text animation warped by a turbulence filter. Toggle the fan — letters ripple.",
      "dependencies": [
        "framer-motion",
        "react"
      ],
      "files": [
        {
          "path": "components/aicanvas/ripple-type.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/ripple-type.tsx"
        }
      ]
    },
    {
      "name": "runway-loader",
      "type": "registry:ui",
      "title": "Runway Loader",
      "description": "An airplane taxis down a runway progress bar, nose tilting up and taking off at 100%.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/runway-loader.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/runway-loader.tsx"
        }
      ]
    },
    {
      "name": "scramble-text",
      "type": "registry:ui",
      "title": "Scramble Text",
      "description": "Two words scramble continuously in a pixel cipher. Hover the container to decrypt them one by one — mouse out and they snap back to noise.",
      "dependencies": [
        "framer-motion",
        "geist"
      ],
      "files": [
        {
          "path": "components/aicanvas/scramble-text.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/scramble-text.tsx"
        }
      ]
    },
    {
      "name": "signature-pad",
      "type": "registry:ui",
      "title": "Signature Pad",
      "description": "A signature pad widget — pill button morphs into a canvas to draw with mouse or touch.",
      "dependencies": [
        "framer-motion",
        "@phosphor-icons/react"
      ],
      "files": [
        {
          "path": "components/aicanvas/signature-pad.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/signature-pad.tsx"
        }
      ]
    },
    {
      "name": "slice-type",
      "type": "registry:ui",
      "title": "Slice Type",
      "description": "A typographic magic trick. At rest you read one ambiguous word; hover and it splits into two — LIGHT lifting up, NIGHT sinking down, the shared letters resolving into separate glyphs.",
      "dependencies": [
        "framer-motion",
        "react"
      ],
      "files": [
        {
          "path": "components/aicanvas/slice-type.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/slice-type.tsx"
        }
      ]
    },
    {
      "name": "slide-deck",
      "type": "registry:ui",
      "title": "Slide Deck",
      "description": "Swipeable card deck with four editorial slides. Navigate forward and back by drag or tap.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/slide-deck.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/slide-deck.tsx"
        }
      ]
    },
    {
      "name": "sphere-lines",
      "type": "registry:ui",
      "title": "Wireframe Globe",
      "description": "A wire-frame globe that breathes on its own — a narrow wave band drifts quietly across the surface. Hover to ripple the lines right where your cursor lands.",
      "dependencies": [],
      "files": [
        {
          "path": "components/aicanvas/sphere-lines.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/sphere-lines.tsx"
        }
      ]
    },
    {
      "name": "stack-tower",
      "type": "registry:ui",
      "title": "Stack Tower",
      "description": "A column of 12 stacked words that reads as a rotating 3D cylinder — 2D transforms skew, scale and shift each row so the rotation travels down the stack. Hover lights one row in warm orange without breaking the rhythm.",
      "dependencies": [
        "framer-motion",
        "react"
      ],
      "files": [
        {
          "path": "components/aicanvas/stack-tower.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/stack-tower.tsx"
        }
      ]
    },
    {
      "name": "sticker-wall",
      "type": "registry:ui",
      "title": "Sticker Wall",
      "description": "A draggable sticker card wall. Drop notes, toss emoji, pile them up with real 2D physics.",
      "dependencies": [
        "matter-js",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/sticker-wall.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/sticker-wall.tsx"
        }
      ]
    },
    {
      "name": "taga-toggle",
      "type": "registry:ui",
      "title": "Taga Toggle",
      "description": "A playful pill toggle with an expressive face on the thumb — dead (×× eyes, flat mouth) when off, happy (arc eyes, big smile) when on. Track warms from grey to yellow.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/taga-toggle.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/taga-toggle.tsx"
        }
      ]
    },
    {
      "name": "task-cards",
      "type": "registry:ui",
      "title": "Task Cards",
      "description": "A swipeable project task card stack where each card has a unique accent colour, status badge, and due date. Drag left or right to cycle through tasks — springs back the dismissed card to the bottom of the deck.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/task-cards.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/task-cards.tsx"
        }
      ]
    },
    {
      "name": "text-blur-reveal",
      "type": "registry:ui",
      "title": "Text Blur Reveal",
      "description": "Words animate into view one by one with a satisfying blur-to-sharp entrance, auto-replaying in a loop.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/text-blur-reveal.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/text-blur-reveal.tsx"
        }
      ]
    },
    {
      "name": "tilted-coverflow",
      "type": "registry:ui",
      "title": "Tilted Coverflow",
      "description": "3D coverflow card carousel of seven tilted photos. Drag or arrows to focus any card.",
      "dependencies": [
        "framer-motion"
      ],
      "files": [
        {
          "path": "components/aicanvas/tilted-coverflow.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/tilted-coverflow.tsx"
        }
      ]
    },
    {
      "name": "upload-progress",
      "type": "registry:ui",
      "title": "Upload Progress",
      "description": "A collapsible file upload widget with a shimmer progress bar — indigo while uploading, amber on pause. Expand to see per-file rows with live progress, time remaining, and pause, resume, refresh, and stop controls.",
      "dependencies": [
        "framer-motion",
        "@phosphor-icons/react"
      ],
      "files": [
        {
          "path": "components/aicanvas/upload-progress.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/upload-progress.tsx"
        }
      ]
    },
    {
      "name": "voice-chat-pill",
      "type": "registry:ui",
      "title": "Live Session Pill",
      "description": "A compact live-session presence pill with an animated speaking indicator and overlapping avatars — clicks open a soft-UI modal showing all participants with a Join Now button.",
      "dependencies": [
        "framer-motion",
        "@phosphor-icons/react"
      ],
      "files": [
        {
          "path": "components/aicanvas/voice-chat-pill.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/voice-chat-pill.tsx"
        }
      ]
    },
    {
      "name": "wave-lines",
      "type": "registry:ui",
      "title": "Wave Lines",
      "description": "Dense vertical lines that ripple across the canvas — two layered sine waves create organic bunching and breathing. Hover to send the lines into extreme waves across the whole canvas.",
      "dependencies": [],
      "files": [
        {
          "path": "components/aicanvas/wave-lines.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/wave-lines.tsx"
        }
      ]
    },
    {
      "name": "wild-morph",
      "type": "registry:ui",
      "title": "Wild Morph",
      "description": "Italic SVG word that warps under the cursor — a spring-physics text animation.",
      "dependencies": [
        "framer-motion",
        "react"
      ],
      "files": [
        {
          "path": "components/aicanvas/wild-morph.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/wild-morph.tsx"
        }
      ]
    },
    {
      "name": "x-grid",
      "type": "registry:ui",
      "title": "X Grid",
      "description": "A canvas-based interactive background of × marks that illuminate and connect to neighbours with constellation lines on hover.",
      "dependencies": [],
      "files": [
        {
          "path": "components/aicanvas/x-grid.tsx",
          "type": "registry:ui",
          "target": "components/aicanvas/x-grid.tsx"
        }
      ]
    },
    {
      "name": "andromeda-tokens",
      "type": "registry:lib",
      "title": "Andromeda tokens",
      "description": "Foundation files for the Andromeda design system — tokens, shared utilities, and the system mark. Required by every Andromeda component and template.",
      "dependencies": [
        "@fontsource-variable/jetbrains-mono",
        "clsx",
        "tailwind-merge"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/AndromedaIcon.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/AndromedaIcon.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/utils.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/utils.ts"
        },
        {
          "path": "components/aicanvas/andromeda/tokens.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/tokens.ts"
        }
      ]
    },
    {
      "name": "andromeda",
      "type": "registry:style",
      "title": "Andromeda design system",
      "description": "Every Andromeda component (35 files). Installs the foundation tokens automatically.",
      "dependencies": [
        "@phosphor-icons/react",
        "@radix-ui/react-slot",
        "class-variance-authority",
        "framer-motion",
        "recharts",
        "three"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Alert.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Alert.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Avatar.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Avatar.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Badge.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Badge.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Button.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Button.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Card.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Card.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Checkbox.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Checkbox.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/CornerMarkers.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/CornerMarkers.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/DateRangePicker.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/DateRangePicker.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Drawer.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Drawer.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/EmptyState.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/EmptyState.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/HeatGrid.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/HeatGrid.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/IconButton.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/IconButton.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Input.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Input.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/NavItem.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/NavItem.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/PanelHeader.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/PanelHeader.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/PanelMenu.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/PanelMenu.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Planet.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Planet.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/ProgressBar.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/ProgressBar.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/RadarChart.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/RadarChart.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Radio.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Radio.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/SearchField.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/SearchField.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/SegmentedControl.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/SegmentedControl.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Slider.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Slider.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Spinner.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Spinner.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/StatTile.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/StatTile.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Table.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Table.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Tag.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Tag.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Textarea.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Textarea.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Toggle.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Toggle.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/Tooltip.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Tooltip.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/TrendChart.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/TrendChart.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/UserCard.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/UserCard.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/UserMenu.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/UserMenu.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/motion.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/motion.ts"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-alert",
      "type": "registry:ui",
      "title": "Alert (Andromeda)",
      "description": "Andromeda Alert component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Alert.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Alert.tsx"
        }
      ]
    },
    {
      "name": "andromeda-avatar",
      "type": "registry:ui",
      "title": "Avatar (Andromeda)",
      "description": "Andromeda Avatar component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Avatar.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Avatar.tsx"
        }
      ]
    },
    {
      "name": "andromeda-badge",
      "type": "registry:ui",
      "title": "Badge (Andromeda)",
      "description": "Andromeda Badge component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "class-variance-authority",
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Badge.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Badge.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/motion.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/motion.ts"
        }
      ]
    },
    {
      "name": "andromeda-button-system",
      "type": "registry:ui",
      "title": "Button (Andromeda)",
      "description": "Andromeda Button component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "@radix-ui/react-slot",
        "class-variance-authority",
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Button.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Button.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/motion.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/motion.ts"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-card",
      "type": "registry:ui",
      "title": "Card (Andromeda)",
      "description": "Andromeda Card component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-corner-markers.json",
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Card.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Card.tsx"
        }
      ]
    },
    {
      "name": "andromeda-checkbox",
      "type": "registry:ui",
      "title": "Checkbox (Andromeda)",
      "description": "Andromeda Checkbox component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "@phosphor-icons/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Checkbox.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Checkbox.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-corner-markers",
      "type": "registry:ui",
      "title": "CornerMarkers (Andromeda)",
      "description": "Andromeda CornerMarkers component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/CornerMarkers.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/CornerMarkers.tsx"
        }
      ]
    },
    {
      "name": "andromeda-date-range-picker",
      "type": "registry:ui",
      "title": "DateRangePicker (Andromeda)",
      "description": "Andromeda DateRangePicker component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "@phosphor-icons/react"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/DateRangePicker.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/DateRangePicker.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-drawer",
      "type": "registry:ui",
      "title": "Drawer (Andromeda)",
      "description": "Andromeda Drawer component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-corner-markers.json",
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Drawer.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Drawer.tsx"
        }
      ]
    },
    {
      "name": "andromeda-empty-state",
      "type": "registry:ui",
      "title": "EmptyState (Andromeda)",
      "description": "Andromeda EmptyState component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-card.json",
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/EmptyState.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/EmptyState.tsx"
        }
      ]
    },
    {
      "name": "andromeda-heat-grid",
      "type": "registry:ui",
      "title": "HeatGrid (Andromeda)",
      "description": "Andromeda HeatGrid component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/HeatGrid.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/HeatGrid.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/motion.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/motion.ts"
        }
      ]
    },
    {
      "name": "andromeda-icon-button",
      "type": "registry:ui",
      "title": "IconButton (Andromeda)",
      "description": "Andromeda IconButton component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "class-variance-authority",
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/IconButton.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/IconButton.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/motion.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/motion.ts"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-input",
      "type": "registry:ui",
      "title": "Input (Andromeda)",
      "description": "Andromeda Input component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Input.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Input.tsx"
        }
      ]
    },
    {
      "name": "andromeda-nav-item",
      "type": "registry:ui",
      "title": "NavItem (Andromeda)",
      "description": "Andromeda NavItem component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "@radix-ui/react-slot",
        "class-variance-authority",
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/NavItem.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/NavItem.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-panel-header",
      "type": "registry:ui",
      "title": "PanelHeader (Andromeda)",
      "description": "Andromeda PanelHeader component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/PanelHeader.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/PanelHeader.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-panel-menu",
      "type": "registry:ui",
      "title": "PanelMenu (Andromeda)",
      "description": "Andromeda PanelMenu component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "@phosphor-icons/react"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-icon-button.json",
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/PanelMenu.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/PanelMenu.tsx"
        }
      ]
    },
    {
      "name": "andromeda-planet",
      "type": "registry:ui",
      "title": "Planet (Andromeda)",
      "description": "Andromeda Planet component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "framer-motion",
        "three"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Planet.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Planet.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/motion.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/motion.ts"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-progress-bar",
      "type": "registry:ui",
      "title": "ProgressBar (Andromeda)",
      "description": "Andromeda ProgressBar component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/ProgressBar.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/ProgressBar.tsx"
        }
      ]
    },
    {
      "name": "andromeda-radar-chart",
      "type": "registry:ui",
      "title": "RadarChart (Andromeda)",
      "description": "Andromeda RadarChart component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "framer-motion",
        "recharts"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-corner-markers.json",
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/RadarChart.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/RadarChart.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/motion.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/motion.ts"
        }
      ]
    },
    {
      "name": "andromeda-radio",
      "type": "registry:ui",
      "title": "Radio (Andromeda)",
      "description": "Andromeda Radio component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Radio.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Radio.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-search-field",
      "type": "registry:ui",
      "title": "SearchField (Andromeda)",
      "description": "Andromeda SearchField component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "@phosphor-icons/react"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/SearchField.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/SearchField.tsx"
        }
      ]
    },
    {
      "name": "andromeda-segmented-control",
      "type": "registry:ui",
      "title": "SegmentedControl (Andromeda)",
      "description": "Andromeda SegmentedControl component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/SegmentedControl.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/SegmentedControl.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-slider",
      "type": "registry:ui",
      "title": "Slider (Andromeda)",
      "description": "Andromeda Slider component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Slider.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Slider.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-spinner",
      "type": "registry:ui",
      "title": "Spinner (Andromeda)",
      "description": "Andromeda Spinner component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Spinner.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Spinner.tsx"
        }
      ]
    },
    {
      "name": "andromeda-stat-tile",
      "type": "registry:ui",
      "title": "StatTile (Andromeda)",
      "description": "Andromeda StatTile component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-card.json",
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/StatTile.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/StatTile.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/motion.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/motion.ts"
        }
      ]
    },
    {
      "name": "andromeda-table",
      "type": "registry:ui",
      "title": "Table (Andromeda)",
      "description": "Andromeda Table component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "@phosphor-icons/react"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Table.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Table.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-tag",
      "type": "registry:ui",
      "title": "Tag (Andromeda)",
      "description": "Andromeda Tag component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "@phosphor-icons/react",
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Tag.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Tag.tsx"
        }
      ]
    },
    {
      "name": "andromeda-textarea",
      "type": "registry:ui",
      "title": "Textarea (Andromeda)",
      "description": "Andromeda Textarea component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Textarea.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Textarea.tsx"
        }
      ]
    },
    {
      "name": "andromeda-toggle",
      "type": "registry:ui",
      "title": "Toggle (Andromeda)",
      "description": "Andromeda Toggle component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "class-variance-authority"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Toggle.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Toggle.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-tooltip",
      "type": "registry:ui",
      "title": "Tooltip (Andromeda)",
      "description": "Andromeda Tooltip component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/Tooltip.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/Tooltip.tsx"
        }
      ]
    },
    {
      "name": "andromeda-trend-chart",
      "type": "registry:ui",
      "title": "TrendChart (Andromeda)",
      "description": "Andromeda TrendChart component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion",
        "recharts"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-segmented-control.json",
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/TrendChart.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/TrendChart.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/motion.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/motion.ts"
        }
      ]
    },
    {
      "name": "andromeda-user-card",
      "type": "registry:ui",
      "title": "UserCard (Andromeda)",
      "description": "Andromeda UserCard component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-avatar.json",
        "https://aicanvas.me/r/andromeda-tokens.json",
        "https://aicanvas.me/r/andromeda-user-menu.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/UserCard.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/UserCard.tsx"
        }
      ]
    },
    {
      "name": "andromeda-user-menu",
      "type": "registry:ui",
      "title": "UserMenu (Andromeda)",
      "description": "Andromeda UserMenu component. Install just this piece. Tokens and any sibling components are pulled in automatically.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda-avatar.json",
        "https://aicanvas.me/r/andromeda-tokens.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/components/UserMenu.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/UserMenu.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/components/lib/responsive.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/components/lib/responsive.ts"
        }
      ]
    },
    {
      "name": "andromeda-mission-control",
      "type": "registry:block",
      "title": "Mission Control (Andromeda)",
      "description": "Mission Control composition from Andromeda — sci-fi dashboard. Pulls in the full Andromeda system on first install; subsequent template installs reuse it.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/examples/_shared/TemplateMobileChrome.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/_shared/TemplateMobileChrome.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/mission-control/CommsLog.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/mission-control/CommsLog.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/mission-control/Header.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/mission-control/Header.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/mission-control/NextDestination.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/mission-control/NextDestination.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/mission-control/Sidebar.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/mission-control/Sidebar.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/mission-control/SystemStatus.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/mission-control/SystemStatus.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/mission-control/TelemetryRow.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/mission-control/TelemetryRow.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/mission-control/VehiclesTable.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/mission-control/VehiclesTable.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/mission-control/data.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/mission-control/data.ts"
        },
        {
          "path": "components/aicanvas/andromeda/examples/mission-control/index.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/mission-control/index.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/mission-control/sections/OverviewSection.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/mission-control/sections/OverviewSection.tsx"
        }
      ]
    },
    {
      "name": "andromeda-service-order",
      "type": "registry:block",
      "title": "Service Order (Andromeda)",
      "description": "Service Order composition from Andromeda — telecom dashboard. Pulls in the full Andromeda system on first install; subsequent template installs reuse it.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/examples/_shared/TemplateMobileChrome.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/_shared/TemplateMobileChrome.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/service-order/ItemsPanel.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/service-order/ItemsPanel.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/service-order/OrderMetadataPanel.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/service-order/OrderMetadataPanel.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/service-order/SlaPanel.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/service-order/SlaPanel.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/service-order/data.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/service-order/data.ts"
        },
        {
          "path": "components/aicanvas/andromeda/examples/service-order/index.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/service-order/index.tsx"
        }
      ]
    },
    {
      "name": "andromeda-resource-planning",
      "type": "registry:block",
      "title": "Resource Planning (Andromeda)",
      "description": "Resource Planning composition from Andromeda — operations dashboard. Pulls in the full Andromeda system on first install; subsequent template installs reuse it.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion",
        "recharts"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/examples/_shared/TemplateMobileChrome.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/_shared/TemplateMobileChrome.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/resource-planning/AllocationChart.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/resource-planning/AllocationChart.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/resource-planning/CapacityPanel.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/resource-planning/CapacityPanel.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/resource-planning/RequestsPanel.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/resource-planning/RequestsPanel.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/resource-planning/RequestsTable.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/resource-planning/RequestsTable.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/resource-planning/data.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/resource-planning/data.ts"
        },
        {
          "path": "components/aicanvas/andromeda/examples/resource-planning/index.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/resource-planning/index.tsx"
        }
      ]
    },
    {
      "name": "andromeda-signal-room",
      "type": "registry:block",
      "title": "Signal Room (Andromeda)",
      "description": "Signal Room composition from Andromeda — audio dashboard. Pulls in the full Andromeda system on first install; subsequent template installs reuse it.",
      "dependencies": [
        "@phosphor-icons/react",
        "framer-motion"
      ],
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda.json"
      ],
      "files": [
        {
          "path": "components/aicanvas/andromeda/examples/_shared/TemplateMobileChrome.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/_shared/TemplateMobileChrome.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/signal-room/Header.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/signal-room/Header.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/signal-room/LevelsPanel.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/signal-room/LevelsPanel.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/signal-room/MixesRow.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/signal-room/MixesRow.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/signal-room/NowTransmitting.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/signal-room/NowTransmitting.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/signal-room/RecentTransmissions.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/signal-room/RecentTransmissions.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/signal-room/Sidebar.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/signal-room/Sidebar.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/signal-room/TransmitStats.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/signal-room/TransmitStats.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/signal-room/Transport.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/signal-room/Transport.tsx"
        },
        {
          "path": "components/aicanvas/andromeda/examples/signal-room/data.ts",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/signal-room/data.ts"
        },
        {
          "path": "components/aicanvas/andromeda/examples/signal-room/index.tsx",
          "type": "registry:lib",
          "target": "components/aicanvas/andromeda/examples/signal-room/index.tsx"
        }
      ]
    },
    {
      "name": "andromeda-all",
      "type": "registry:style",
      "title": "Andromeda — full system",
      "description": "Every Andromeda component, token, and template in one install.",
      "registryDependencies": [
        "https://aicanvas.me/r/andromeda.json",
        "https://aicanvas.me/r/andromeda-mission-control.json",
        "https://aicanvas.me/r/andromeda-service-order.json",
        "https://aicanvas.me/r/andromeda-resource-planning.json",
        "https://aicanvas.me/r/andromeda-signal-room.json"
      ],
      "files": []
    }
  ]
}
