[
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "audio-waveform-visualizer",
    "type": "registry:ui",
    "title": "Audio Waveform Visualizer",
    "description": "Kinetic frequency equalizer with spring bouncing bars, soundwave playback toggles, and BPM tracking.",
    "category": "3d",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/3d/audio-waveform-visualizer/audio-waveform-visualizer.tsx",
        "type": "registry:ui",
        "target": "components/ui/audio-waveform-visualizer.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion } from 'framer-motion';\nimport { Play, Pause, SpeakerHigh } from '@phosphor-icons/react';\n\nexport const AudioWaveformVisualizer: React.FC = () => {\n  const [isPlaying, setIsPlaying] = useState(true);\n\n  const bars = Array.from({ length: 22 });\n\n  return (\n    <div className=\"w-full max-w-sm mx-auto p-5 rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950 shadow-xl font-mono\">\n      <div className=\"flex items-center justify-between pb-3 border-b border-zinc-200 dark:border-white/10\">\n        <div className=\"flex items-center gap-2\">\n          <SpeakerHigh size={16} className=\"text-indigo-500\" />\n          <span className=\"text-xs font-bold text-zinc-900 dark:text-white\">SYNTHESIS AUDIO CORE</span>\n        </div>\n        <span className=\"text-[10px] text-emerald-500 font-bold\">128 BPM</span>\n      </div>\n\n      <div className=\"flex items-center justify-between h-20 my-4 px-2\">\n        {bars.map((_, i) => (\n          <motion.div\n            key={i}\n            animate={{\n              height: isPlaying\n                ? [`${Math.sin(i * 0.5) * 35 + 40}%`, `${Math.cos(i * 0.8) * 30 + 35}%`, `${Math.sin(i * 1.2) * 40 + 45}%`]\n                : '15%',\n            }}\n            transition={{\n              duration: 0.6 + (i % 5) * 0.1,\n              repeat: Infinity,\n              repeatType: 'reverse',\n              ease: 'easeInOut',\n            }}\n            className=\"w-1.5 rounded-full bg-gradient-to-t from-indigo-600 via-violet-500 to-cyan-400\"\n          />\n        ))}\n      </div>\n\n      <div className=\"flex items-center justify-between pt-2\">\n        <span className=\"text-[11px] text-zinc-500\">Spatial Kernel Audio #04</span>\n        <button\n          onClick={() => setIsPlaying(!isPlaying)}\n          className=\"flex h-8 w-8 items-center justify-center rounded-full bg-indigo-600 hover:bg-indigo-500 text-white transition-colors cursor-pointer\"\n        >\n          {isPlaying ? <Pause size={14} weight=\"fill\" /> : <Play size={14} weight=\"fill\" />}\n        </button>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "code-hover-card",
    "type": "registry:ui",
    "title": "Code Hover Card",
    "description": "Interactive IDE preview card with syntax highlighted tokens, expandable line tabs, and copy feedback.",
    "category": "3d",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/3d/code-hover-card/code-hover-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/code-hover-card.tsx",
        "content": "import React, { useState } from 'react';\nimport { Copy, Check, Terminal } from '@phosphor-icons/react';\n\nexport const CodeHoverCard: React.FC = () => {\n  const [copied, setCopied] = useState(false);\n\n  const snippet = `import { MagneticDock } from '@/components/ui'\n\nexport function App() {\n  return <MagneticDock maxScale={1.4} />\n}`;\n\n  const copy = () => {\n    navigator.clipboard.writeText(snippet);\n    setCopied(true);\n    setTimeout(() => setCopied(false), 2000);\n  };\n\n  return (\n    <div className=\"group relative w-full max-w-sm mx-auto rounded-3xl border border-zinc-200 dark:border-white/15 bg-zinc-950 p-4 text-xs font-mono text-zinc-300 shadow-xl transition-all hover:border-indigo-500/50 hover:shadow-2xl hover:shadow-indigo-500/10\">\n      <div className=\"flex items-center justify-between pb-3 border-b border-white/10 text-[10px] text-zinc-500\">\n        <div className=\"flex items-center gap-1.5\">\n          <Terminal size={14} className=\"text-indigo-400\" />\n          <span>App.tsx</span>\n        </div>\n        <button\n          onClick={copy}\n          className=\"flex items-center gap-1 px-2 py-0.5 rounded-md bg-white/10 hover:bg-white/20 text-zinc-200 transition-colors cursor-pointer\"\n        >\n          {copied ? <Check size={11} className=\"text-emerald-400\" /> : <Copy size={11} />}\n          <span>{copied ? 'Copied' : 'Copy'}</span>\n        </button>\n      </div>\n\n      <pre className=\"mt-3 overflow-x-auto text-zinc-300 leading-relaxed font-mono\">\n        <code>\n          <div><span className=\"text-violet-400\">import</span> &#123; <span className=\"text-cyan-300\">MagneticDock</span> &#125; <span className=\"text-violet-400\">from</span> <span className=\"text-emerald-300\">'@/components/ui'</span></div>\n          <br />\n          <div><span className=\"text-violet-400\">export function</span> <span className=\"text-amber-300\">App</span>() &#123;</div>\n          <div>{'  '}<span className=\"text-violet-400\">return</span> &lt;<span className=\"text-cyan-300\">MagneticDock</span> <span className=\"text-indigo-300\">maxScale</span>=&#123;<span className=\"text-rose-300\">1.4</span>&#125; /&gt;</div>\n          <div>&#125;</div>\n        </code>\n      </pre>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "cube-perspective-3d",
    "type": "registry:ui",
    "title": "Interactive Isometric 3D Cube",
    "description": "CSS 3D transform isometric cube with dynamic mouse drag rotation and distinct themed face textures.",
    "category": "3d",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/3d/cube-perspective-3d/cube-perspective-3d.tsx",
        "type": "registry:ui",
        "target": "components/ui/cube-perspective-3d.tsx",
        "content": "import React from 'react';\nimport { motion } from 'framer-motion';\n\nexport const CubePerspective3D: React.FC = () => {\n  return (\n    <div className=\"w-full h-56 flex items-center justify-center perspective-[1000px] select-none\">\n      <motion.div\n        animate={{\n          rotateX: [15, 25, 15],\n          rotateY: [0, 360],\n        }}\n        transition={{\n          rotateY: { duration: 12, repeat: Infinity, ease: 'linear' },\n          rotateX: { duration: 4, repeat: Infinity, ease: 'easeInOut' },\n        }}\n        className=\"relative w-24 h-24 transform-style-3d\"\n      >\n        {/* Front */}\n        <div className=\"absolute inset-0 border border-indigo-500/40 bg-indigo-500/20 backdrop-blur-xs flex items-center justify-center font-mono text-[10px] text-indigo-300 transform translate-z-12\">\n          FRONT\n        </div>\n        {/* Back */}\n        <div className=\"absolute inset-0 border border-cyan-500/40 bg-cyan-500/20 backdrop-blur-xs flex items-center justify-center font-mono text-[10px] text-cyan-300 transform -translate-z-12 rotate-y-180\">\n          BACK\n        </div>\n        {/* Right */}\n        <div className=\"absolute inset-0 border border-violet-500/40 bg-violet-500/20 backdrop-blur-xs flex items-center justify-center font-mono text-[10px] text-violet-300 transform translate-x-12 rotate-y-90\">\n          RIGHT\n        </div>\n        {/* Left */}\n        <div className=\"absolute inset-0 border border-emerald-500/40 bg-emerald-500/20 backdrop-blur-xs flex items-center justify-center font-mono text-[10px] text-emerald-300 transform -translate-x-12 -rotate-y-90\">\n          LEFT\n        </div>\n        {/* Top */}\n        <div className=\"absolute inset-0 border border-rose-500/40 bg-rose-500/20 backdrop-blur-xs flex items-center justify-center font-mono text-[10px] text-rose-300 transform -translate-y-12 rotate-x-90\">\n          TOP\n        </div>\n        {/* Bottom */}\n        <div className=\"absolute inset-0 border border-amber-500/40 bg-amber-500/20 backdrop-blur-xs flex items-center justify-center font-mono text-[10px] text-amber-300 transform translate-y-12 -rotate-x-90\">\n          BOTTOM\n        </div>\n      </motion.div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "hanging-id-card",
    "type": "registry:ui",
    "title": "Hanging ID Card",
    "description": "Interactive 3D conference pass lanyard with cursor-tracking tilt physics and specular gloss.",
    "category": "3d",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/3d/hanging-id-card/hanging-id-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/hanging-id-card.tsx",
        "content": "import React, { useRef } from 'react';\nimport { motion, useMotionValue, useSpring, useTransform } from 'framer-motion';\nimport { QrCode, Cpu } from '@phosphor-icons/react';\n\nexport const HangingIdCard: React.FC = () => {\n  const cardRef = useRef<HTMLDivElement>(null);\n\n  const x = useMotionValue(0);\n  const y = useMotionValue(0);\n\n  const mouseXSpring = useSpring(x, { stiffness: 200, damping: 20 });\n  const mouseYSpring = useSpring(y, { stiffness: 200, damping: 20 });\n\n  const rotateX = useTransform(mouseYSpring, [-0.5, 0.5], ['14deg', '-14deg']);\n  const rotateY = useTransform(mouseXSpring, [-0.5, 0.5], ['-14deg', '14deg']);\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    if (!cardRef.current) return;\n    const rect = cardRef.current.getBoundingClientRect();\n    const width = rect.width;\n    const height = rect.height;\n    const mouseX = e.clientX - rect.left;\n    const mouseY = e.clientY - rect.top;\n    x.set(mouseX / width - 0.5);\n    y.set(mouseY / height - 0.5);\n  };\n\n  const handleMouseLeave = () => {\n    x.set(0);\n    y.set(0);\n  };\n\n  return (\n    <div className=\"perspective-1000 flex flex-col items-center justify-center p-4\">\n      <div className=\"h-8 w-2 bg-gradient-to-b from-indigo-700 to-indigo-500 rounded-t-sm shadow-md\" />\n      <div className=\"h-2.5 w-5 rounded-sm bg-zinc-800 border border-white/20 mb-[-3px] z-20 shadow\" />\n\n      <motion.div\n        ref={cardRef}\n        onMouseMove={handleMouseMove}\n        onMouseLeave={handleMouseLeave}\n        style={{ rotateX, rotateY, transformStyle: 'preserve-3d' }}\n        className=\"relative w-52 h-76 rounded-3xl border border-white/20 bg-gradient-to-br from-zinc-900/90 via-zinc-950 to-black p-4 shadow-2xl backdrop-blur-xl flex flex-col justify-between text-white font-mono cursor-pointer select-none\"\n      >\n        <div className=\"pointer-events-none absolute inset-0 rounded-3xl bg-gradient-to-tr from-transparent via-white/10 to-transparent opacity-60\" />\n\n        <div className=\"flex items-center justify-between z-10\">\n          <div className=\"flex items-center gap-1.5\">\n            <Cpu size={16} className=\"text-cyan-400\" />\n            <span className=\"text-[11px] font-bold tracking-wider\">COOKI PASSPORT</span>\n          </div>\n          <span className=\"px-1.5 py-0.5 rounded-full bg-cyan-400/20 text-cyan-300 text-[8px] border border-cyan-400/30\">\n            PRO VIP\n          </span>\n        </div>\n\n        <div className=\"flex flex-col items-center my-auto z-10\">\n          <div className=\"h-14 w-14 rounded-2xl bg-gradient-to-br from-indigo-500 to-violet-600 p-1 shadow-lg shadow-indigo-500/20 mb-2 flex items-center justify-center font-sans font-extrabold text-lg text-white\">\n            CK\n          </div>\n          <h4 className=\"font-bold text-xs text-white\">Alex Vanguard</h4>\n          <p className=\"text-[9px] text-zinc-400 mt-0.5\">Staff Runtime Architect</p>\n        </div>\n\n        <div className=\"flex items-center justify-between border-t border-white/10 pt-2.5 z-10 text-[9px]\">\n          <div>\n            <span className=\"text-zinc-500\">ID TOKEN</span>\n            <div className=\"font-bold text-zinc-300\">#8942-CK</div>\n          </div>\n          <QrCode size={20} className=\"text-white\" />\n        </div>\n      </motion.div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "particle-vortex-tunnel",
    "type": "registry:ui",
    "title": "Hypnotic Particle Vortex Tunnel",
    "description": "HTML5 Canvas warp-speed vortex tunnel accelerating star particles inward toward a deep gravity well.",
    "category": "3d",
    "dependencies": [],
    "files": [
      {
        "path": "registry/3d/particle-vortex-tunnel/particle-vortex-tunnel.tsx",
        "type": "registry:ui",
        "target": "components/ui/particle-vortex-tunnel.tsx",
        "content": "import React, { useRef, useEffect } from 'react';\n\nexport const ParticleVortexTunnel: React.FC = () => {\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n\n  useEffect(() => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    let animId: number;\n    let isVisible = true;\n    const stars: { x: number; y: number; z: number }[] = [];\n    const count = 120;\n\n    for (let i = 0; i < count; i++) {\n      stars.push({\n        x: (Math.random() - 0.5) * 400,\n        y: (Math.random() - 0.5) * 400,\n        z: Math.random() * 400,\n      });\n    }\n\n    const render = () => {\n      if (!isVisible) return;\n      ctx.fillStyle = 'rgba(5, 5, 8, 0.25)';\n      ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n      const cx = canvas.width / 2;\n      const cy = canvas.height / 2;\n\n      for (let s of stars) {\n        s.z -= 2.2;\n        if (s.z <= 0) s.z = 400;\n\n        const k = 200 / s.z;\n        const px = s.x * k + cx;\n        const py = s.y * k + cy;\n\n        if (px >= 0 && px <= canvas.width && py >= 0 && py <= canvas.height) {\n          const size = Math.max(0.8, (1 - s.z / 400) * 3);\n          const alpha = 1 - s.z / 400;\n\n          ctx.fillStyle = `rgba(129, 140, 248, ${alpha})`;\n          ctx.beginPath();\n          ctx.arc(px, py, size, 0, Math.PI * 2);\n          ctx.fill();\n        }\n      }\n\n      animId = requestAnimationFrame(render);\n    };\n\n    animId = requestAnimationFrame(render);\n\n    const handleResize = () => {\n      const rect = canvas.getBoundingClientRect();\n      if (rect.width > 0 && rect.height > 0) {\n        canvas.width = rect.width;\n        canvas.height = rect.height;\n      }\n    };\n    handleResize();\n    const resizeObserver = new ResizeObserver(handleResize);\n    resizeObserver.observe(canvas);\n\n    const observer = new IntersectionObserver(([entry]) => {\n      const wasVisible = isVisible;\n      isVisible = entry.isIntersecting;\n      if (isVisible && !wasVisible) {\n        animId = requestAnimationFrame(render);\n      }\n    }, { threshold: 0.05 });\n    observer.observe(canvas);\n\n    return () => {\n      cancelAnimationFrame(animId);\n      observer.disconnect();\n      resizeObserver.disconnect();\n    };\n  }, []);\n\n  return (\n    <div className=\"relative w-full h-56 rounded-2xl overflow-hidden bg-black border border-white/10 flex items-center justify-center\">\n      <canvas ref={canvasRef} className=\"w-full h-full\" />\n      <span className=\"absolute z-10 bottom-3 px-3 py-1 rounded-full bg-zinc-900/80 text-[10px] font-mono text-zinc-400 border border-white/10\">\n        WARP TUNNEL VELOCITY\n      </span>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "plasma-globe",
    "type": "registry:ui",
    "title": "Plasma Globe",
    "description": "Interactive HTML5 canvas plasma energy orb with electric arcs reacting to cursor proximity.",
    "category": "3d",
    "dependencies": [],
    "files": [
      {
        "path": "registry/3d/plasma-globe/plasma-globe.tsx",
        "type": "registry:ui",
        "target": "components/ui/plasma-globe.tsx",
        "content": "import React, { useRef, useEffect } from 'react';\n\nexport const PlasmaGlobe: React.FC = () => {\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n\n  useEffect(() => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    let animId: number;\n    let t = 0;\n    let isVisible = true;\n\n    const render = () => {\n      if (!isVisible) return;\n      t += 0.03;\n      ctx.clearRect(0, 0, canvas.width, canvas.height);\n      const cx = canvas.width / 2;\n      const cy = canvas.height / 2;\n      const radius = 50;\n\n      const grad = ctx.createRadialGradient(cx, cy, 5, cx, cy, radius + 20);\n      grad.addColorStop(0, '#a855f7');\n      grad.addColorStop(0.4, '#6366f1');\n      grad.addColorStop(0.8, '#06b6d4');\n      grad.addColorStop(1, 'transparent');\n\n      ctx.fillStyle = grad;\n      ctx.beginPath();\n      ctx.arc(cx, cy, radius + 20, 0, Math.PI * 2);\n      ctx.fill();\n\n      for (let i = 0; i < 7; i++) {\n        const angle = (i * Math.PI * 2) / 7 + Math.sin(t + i) * 0.3;\n        const ex = cx + Math.cos(angle) * (radius + Math.sin(t * 2 + i) * 10);\n        const ey = cy + Math.sin(angle) * (radius + Math.cos(t * 2 + i) * 10);\n\n        ctx.strokeStyle = i % 2 === 0 ? '#38bdf8' : '#e879f9';\n        ctx.lineWidth = 1.5;\n        ctx.beginPath();\n        ctx.moveTo(cx, cy);\n        ctx.quadraticCurveTo(\n          cx + Math.cos(angle + 0.5) * 25,\n          cy + Math.sin(angle + 0.5) * 25,\n          ex,\n          ey\n        );\n        ctx.stroke();\n      }\n\n      animId = requestAnimationFrame(render);\n    };\n\n    animId = requestAnimationFrame(render);\n\n    const observer = new IntersectionObserver(([entry]) => {\n      const wasVisible = isVisible;\n      isVisible = entry.isIntersecting;\n      if (isVisible && !wasVisible) {\n        animId = requestAnimationFrame(render);\n      }\n    }, { threshold: 0.05 });\n    observer.observe(canvas);\n\n    return () => {\n      cancelAnimationFrame(animId);\n      observer.disconnect();\n    };\n  }, []);\n\n  return (\n    <div className=\"flex flex-col items-center justify-center p-3\">\n      <div className=\"relative rounded-full p-2 border border-white/20 bg-black/80 shadow-2xl\">\n        <canvas ref={canvasRef} width={160} height={160} className=\"rounded-full\" />\n      </div>\n      <span className=\"mt-2 text-[10px] font-mono text-zinc-500 uppercase tracking-widest\">\n        Parametric Plasma Orb\n      </span>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "ai-code-diff-viewer",
    "type": "registry:ui",
    "title": "AI Code Diff Inspector",
    "description": "Developer diff comparison view displaying green additions and red deletions generated by automated AI coding agents.",
    "category": "ai",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/ai/ai-code-diff-viewer/ai-code-diff-viewer.tsx",
        "type": "registry:ui",
        "target": "components/ui/ai-code-diff-viewer.tsx",
        "content": "import React from 'react';\nimport { GitDiff, CheckCircle } from '@phosphor-icons/react';\n\nconst DIFF_LINES = [\n  { type: 'ctx', oldNum: 14, newNum: 14, text: \"export function configureTheme() {\" },\n  { type: 'del', oldNum: 15, newNum: null, text: \"-  const fallback = 'dark';\" },\n  { type: 'add', oldNum: null, newNum: 15, text: \"+  const fallback = window.matchMedia('(prefers-color-scheme: dark)');\" },\n  { type: 'add', oldNum: null, newNum: 16, text: \"+  document.documentElement.classList.toggle('dark', fallback.matches);\" },\n  { type: 'ctx', oldNum: 16, newNum: 17, text: \"   return { status: 'active' };\" },\n  { type: 'ctx', oldNum: 17, newNum: 18, text: \"}\" },\n];\n\nexport const AiCodeDiffViewer: React.FC = () => {\n  return (\n    <div className=\"w-full max-w-md mx-auto rounded-2xl border border-zinc-200 dark:border-white/10 bg-zinc-950 font-mono text-xs overflow-hidden shadow-xl\">\n      <div className=\"flex items-center justify-between px-3.5 py-2.5 bg-zinc-900 border-b border-white/10 text-zinc-300\">\n        <div className=\"flex items-center gap-2\">\n          <GitDiff size={14} className=\"text-indigo-400\" />\n          <span className=\"text-[11px] font-semibold text-zinc-200\">ThemeContext.tsx</span>\n        </div>\n        <div className=\"flex items-center gap-2 text-[10px]\">\n          <span className=\"text-emerald-400 font-bold\">+2</span>\n          <span className=\"text-rose-400 font-bold\">-1</span>\n        </div>\n      </div>\n\n      <div className=\"p-2 space-y-0.5 overflow-x-auto text-[11px] leading-relaxed\">\n        {DIFF_LINES.map((line, idx) => {\n          const isAdd = line.type === 'add';\n          const isDel = line.type === 'del';\n\n          return (\n            <div\n              key={idx}\n              className={`flex items-center px-2 py-0.5 rounded ${\n                isAdd\n                  ? 'bg-emerald-500/15 text-emerald-300'\n                  : isDel\n                  ? 'bg-rose-500/15 text-rose-300'\n                  : 'text-zinc-400'\n              }`}\n            >\n              <span className=\"w-6 text-[10px] text-zinc-600 select-none\">{line.newNum || line.oldNum}</span>\n              <span className=\"whitespace-pre\">{line.text}</span>\n            </div>\n          );\n        })}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "ai-model-benchmark-card",
    "type": "registry:ui",
    "title": "AI Model Benchmark Card",
    "description": "Comparative matrix showcasing leading LLM inference speeds, MMLU accuracy ratings, latency distribution, and token economics.",
    "category": "ai",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/ai/ai-model-benchmark-card/ai-model-benchmark-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/ai-model-benchmark-card.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { \n  Gauge, \n  TrendUp, \n  CurrencyDollar, \n  Cpu, \n  CheckCircle,\n  Lightning,\n  Brain\n} from '@phosphor-icons/react';\n\nexport interface ModelMetric {\n  id: string;\n  name: string;\n  provider: string;\n  speedTps: number;\n  ttftMs: number;\n  mmluScore: number;\n  inputCost: string;\n  outputCost: string;\n  contextWindow: string;\n  accent: string;\n}\n\nconst DEFAULT_MODELS: ModelMetric[] = [\n  {\n    id: 'claude-3-7',\n    name: 'Claude 3.7 Sonnet',\n    provider: 'Anthropic',\n    speedTps: 118,\n    ttftMs: 140,\n    mmluScore: 92.4,\n    inputCost: '$3.00',\n    outputCost: '$15.00',\n    contextWindow: '200k',\n    accent: '#f97316',\n  },\n  {\n    id: 'gpt-4o',\n    name: 'GPT-4o Omnimodal',\n    provider: 'OpenAI',\n    speedTps: 124,\n    ttftMs: 165,\n    mmluScore: 90.8,\n    inputCost: '$2.50',\n    outputCost: '$10.00',\n    contextWindow: '128k',\n    accent: '#10b981',\n  },\n  {\n    id: 'deepseek-r1',\n    name: 'DeepSeek R1 Reasoner',\n    provider: 'DeepSeek',\n    speedTps: 84,\n    ttftMs: 240,\n    mmluScore: 91.2,\n    inputCost: '$0.55',\n    outputCost: '$2.19',\n    contextWindow: '64k',\n    accent: '#3b82f6',\n  },\n  {\n    id: 'llama-3-3',\n    name: 'Llama 3.3 70B Open',\n    provider: 'Meta AI',\n    speedTps: 165,\n    ttftMs: 95,\n    mmluScore: 88.6,\n    inputCost: '$0.35',\n    outputCost: '$0.90',\n    contextWindow: '128k',\n    accent: '#8b5cf6',\n  },\n];\n\nexport interface AiModelBenchmarkCardProps {\n  initialModelId?: string;\n  className?: string;\n}\n\nexport const AiModelBenchmarkCard: React.FC<AiModelBenchmarkCardProps> = ({\n  initialModelId = 'claude-3-7',\n  className = '',\n}) => {\n  const [selectedId, setSelectedId] = useState(initialModelId);\n  const activeModel = DEFAULT_MODELS.find((m) => m.id === selectedId) || DEFAULT_MODELS[0];\n\n  return (\n    <div className={`w-full max-w-xl mx-auto rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-[#07080d] p-6 shadow-2xl font-mono text-xs select-none ${className}`}>\n      {/* Top Header */}\n      <div className=\"flex items-center justify-between pb-4 border-b border-zinc-200/80 dark:border-white/5\">\n        <div className=\"flex items-center gap-2.5\">\n          <div className=\"flex h-8 w-8 items-center justify-center rounded-xl bg-orange-500/10 border border-orange-500/20 text-orange-400\">\n            <Brain size={16} weight=\"bold\" />\n          </div>\n          <div>\n            <h3 className=\"font-bold text-zinc-900 dark:text-white\">Neural Speed & Reasoning Matrix</h3>\n            <span className=\"text-[11px] text-zinc-500\">Standardized Token Inference Telemetry</span>\n          </div>\n        </div>\n\n        <span className=\"px-2 py-0.5 rounded-full text-[10px] font-bold bg-zinc-100 dark:bg-white/5 text-zinc-600 dark:text-zinc-300 border border-zinc-200 dark:border-white/10\">\n          v2026.Q4\n        </span>\n      </div>\n\n      {/* Model Selector Tabs */}\n      <div className=\"my-5 grid grid-cols-2 sm:grid-cols-4 gap-2\">\n        {DEFAULT_MODELS.map((model) => {\n          const isSelected = model.id === selectedId;\n          return (\n            <button\n              key={model.id}\n              onClick={() => setSelectedId(model.id)}\n              className={`p-2.5 rounded-2xl border text-left transition-all cursor-pointer ${\n                isSelected\n                  ? 'bg-zinc-100 dark:bg-white/10 border-zinc-400 dark:border-white/20 shadow-xs'\n                  : 'bg-zinc-50/50 dark:bg-white/[0.02] border-zinc-200 dark:border-white/5 hover:border-zinc-300'\n              }`}\n            >\n              <div className=\"flex items-center justify-between mb-1\">\n                <span className=\"text-[10px] font-bold uppercase text-zinc-400 truncate\">\n                  {model.provider}\n                </span>\n                <span \n                  style={{ backgroundColor: model.accent }} \n                  className=\"h-1.5 w-1.5 rounded-full\" \n                />\n              </div>\n              <div className=\"font-bold text-zinc-900 dark:text-white text-[11px] truncate\">\n                {model.name.split(' ')[0]} {model.name.split(' ')[1] || ''}\n              </div>\n            </button>\n          );\n        })}\n      </div>\n\n      {/* Main Benchmark Telemetry Display */}\n      <AnimatePresence mode=\"wait\">\n        <motion.div\n          key={activeModel.id}\n          initial={{ opacity: 0, y: 8 }}\n          animate={{ opacity: 1, y: 0 }}\n          exit={{ opacity: 0, y: -8 }}\n          transition={{ duration: 0.2 }}\n          className=\"space-y-4 rounded-2xl bg-zinc-50 dark:bg-black/60 border border-zinc-200/60 dark:border-white/5 p-4\"\n        >\n          {/* 1. Inference Throughput Speed */}\n          <div>\n            <div className=\"flex items-center justify-between mb-1.5\">\n              <span className=\"flex items-center gap-1.5 text-zinc-600 dark:text-zinc-400\">\n                <Lightning size={14} className=\"text-amber-400\" />\n                <span>Streaming Throughput</span>\n              </span>\n              <span className=\"font-bold text-zinc-900 dark:text-white\">\n                {activeModel.speedTps} tokens/sec\n              </span>\n            </div>\n            {/* Speed Bar */}\n            <div className=\"h-2 w-full rounded-full bg-zinc-200 dark:bg-white/10 overflow-hidden\">\n              <motion.div\n                initial={{ width: 0 }}\n                animate={{ width: `${Math.min(100, (activeModel.speedTps / 180) * 100)}%` }}\n                transition={{ duration: 0.6, ease: 'easeOut' }}\n                style={{ backgroundColor: activeModel.accent }}\n                className=\"h-full rounded-full\"\n              />\n            </div>\n          </div>\n\n          {/* 2. Reasoning Benchmark Accuracy (MMLU) */}\n          <div>\n            <div className=\"flex items-center justify-between mb-1.5\">\n              <span className=\"flex items-center gap-1.5 text-zinc-600 dark:text-zinc-400\">\n                <TrendUp size={14} className=\"text-emerald-400\" />\n                <span>MMLU-Pro Accuracy</span>\n              </span>\n              <span className=\"font-bold text-zinc-900 dark:text-white\">\n                {activeModel.mmluScore}%\n              </span>\n            </div>\n            {/* Accuracy Bar */}\n            <div className=\"h-2 w-full rounded-full bg-zinc-200 dark:bg-white/10 overflow-hidden\">\n              <motion.div\n                initial={{ width: 0 }}\n                animate={{ width: `${activeModel.mmluScore}%` }}\n                transition={{ duration: 0.6, ease: 'easeOut' }}\n                className=\"h-full rounded-full bg-emerald-500\"\n              />\n            </div>\n          </div>\n\n          {/* 3. Cost & Specs Matrix Grid */}\n          <div className=\"grid grid-cols-3 gap-2 pt-2 border-t border-zinc-200 dark:border-white/5 text-center\">\n            <div className=\"p-2 rounded-xl bg-white dark:bg-white/5 border border-zinc-200/50 dark:border-white/5\">\n              <span className=\"text-[10px] text-zinc-400 uppercase\">Latency (TTFT)</span>\n              <p className=\"font-bold text-zinc-900 dark:text-white mt-0.5\">{activeModel.ttftMs}ms</p>\n            </div>\n            <div className=\"p-2 rounded-xl bg-white dark:bg-white/5 border border-zinc-200/50 dark:border-white/5\">\n              <span className=\"text-[10px] text-zinc-400 uppercase\">Input / Output</span>\n              <p className=\"font-bold text-zinc-900 dark:text-white mt-0.5\">{activeModel.inputCost} / {activeModel.outputCost}</p>\n            </div>\n            <div className=\"p-2 rounded-xl bg-white dark:bg-white/5 border border-zinc-200/50 dark:border-white/5\">\n              <span className=\"text-[10px] text-zinc-400 uppercase\">Context</span>\n              <p className=\"font-bold text-zinc-900 dark:text-white mt-0.5\">{activeModel.contextWindow}</p>\n            </div>\n          </div>\n        </motion.div>\n      </AnimatePresence>\n\n      {/* Footer Model Summary */}\n      <div className=\"flex items-center justify-between pt-4 mt-4 border-t border-zinc-200/80 dark:border-white/5 text-[11px] text-zinc-400\">\n        <span className=\"flex items-center gap-1.5\">\n          <CheckCircle size={14} className=\"text-emerald-400\" />\n          <span>Speculative Decoding Supported</span>\n        </span>\n        <span className=\"text-zinc-500 font-bold uppercase\">Zero Batch Queue</span>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "ai-prompt-input",
    "type": "registry:ui",
    "title": "AI Prompt Studio Input",
    "description": "Production LLM prompt container with auto-expanding textarea, model selector pill, token counter, attachment badge, and keyboard submit.",
    "category": "ai",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/ai/ai-prompt-input/ai-prompt-input.tsx",
        "type": "registry:ui",
        "target": "components/ui/ai-prompt-input.tsx",
        "content": "import React, { useState } from 'react';\nimport { Paperclip, Cpu, ArrowUp, Globe, CaretDown } from '@phosphor-icons/react';\n\nexport const AiPromptInput: React.FC = () => {\n  const [value, setValue] = useState('');\n  const [model, setModel] = useState('Claude 3.7 Sonnet');\n  const [webSearch, setWebSearch] = useState(false);\n\n  const tokenCount = Math.round(value.length / 3.8);\n\n  return (\n    <div className=\"w-full max-w-lg mx-auto rounded-2xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/90 shadow-xl backdrop-blur-xl p-3.5 transition-all focus-within:border-indigo-500/50 focus-within:ring-2 focus-within:ring-indigo-500/20\">\n      <textarea\n        value={value}\n        onChange={(e) => setValue(e.target.value)}\n        placeholder=\"Ask anything or generate complex UI components...\"\n        rows={2}\n        className=\"w-full bg-transparent resize-none text-xs sm:text-sm text-zinc-900 dark:text-zinc-100 placeholder-zinc-400 dark:placeholder-zinc-500 focus:outline-none font-sans\"\n      />\n\n      <div className=\"mt-3 flex items-center justify-between gap-2 pt-2 border-t border-zinc-100 dark:border-white/5\">\n        <div className=\"flex items-center gap-1.5 flex-wrap\">\n          {/* Model Selector Chip */}\n          <div className=\"flex items-center gap-1 px-2.5 py-1 rounded-lg bg-zinc-100 dark:bg-white/5 text-[11px] font-mono text-zinc-700 dark:text-zinc-300 border border-zinc-200/60 dark:border-white/5\">\n            <Cpu size={12} className=\"text-indigo-500\" />\n            <span>{model}</span>\n          </div>\n\n          {/* Web Search Toggle */}\n          <button\n            onClick={() => setWebSearch(!webSearch)}\n            className={`flex items-center gap-1 px-2.5 py-1 rounded-lg text-[11px] font-mono transition-colors ${\n              webSearch\n                ? 'bg-cyan-500/15 text-cyan-600 dark:text-cyan-400 border border-cyan-500/30'\n                : 'text-zinc-500 hover:bg-zinc-100 dark:hover:bg-white/5'\n            }`}\n          >\n            <Globe size={12} />\n            <span className=\"hidden sm:inline\">Search</span>\n          </button>\n        </div>\n\n        <div className=\"flex items-center gap-2\">\n          {value.length > 0 && (\n            <span className=\"text-[10px] font-mono text-zinc-400\">\n              ~{tokenCount} tokens\n            </span>\n          )}\n\n          <button\n            disabled={!value.trim()}\n            className=\"flex h-7 w-7 items-center justify-center rounded-xl bg-zinc-900 text-white dark:bg-white dark:text-zinc-950 disabled:opacity-30 disabled:cursor-not-allowed hover:bg-indigo-600 dark:hover:bg-indigo-400 transition-colors shadow-xs\"\n          >\n            <ArrowUp size={13} weight=\"bold\" />\n          </button>\n        </div>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "ai-streaming-bubble",
    "type": "registry:ui",
    "title": "AI Streaming Message Bubble",
    "description": "Simulated live streaming assistant bubble with glowing typing cursor, latency metrics, code snippet highlighter, and copy action.",
    "category": "ai",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/ai/ai-streaming-bubble/ai-streaming-bubble.tsx",
        "type": "registry:ui",
        "target": "components/ui/ai-streaming-bubble.tsx",
        "content": "import React, { useState, useEffect } from 'react';\nimport { motion } from 'framer-motion';\nimport { Copy, Check, ArrowClockwise, Cpu } from '@phosphor-icons/react';\n\nconst FULL_TEXT = `import { MagneticDock } from '@/components/ui'\n\n// Instantiating zero-backend component\nexport default function Preview() {\n  return <MagneticDock maxScale={1.4} />\n}`;\n\nexport const AiStreamingBubble: React.FC = () => {\n  const [displayedText, setDisplayedText] = useState('');\n  const [isDone, setIsDone] = useState(false);\n  const [copied, setCopied] = useState(false);\n\n  const startStream = () => {\n    setDisplayedText('');\n    setIsDone(false);\n    let index = 0;\n    const interval = setInterval(() => {\n      index++;\n      setDisplayedText(FULL_TEXT.slice(0, index));\n      if (index >= FULL_TEXT.length) {\n        clearInterval(interval);\n        setIsDone(true);\n      }\n    }, 28);\n  };\n\n  useEffect(() => {\n    startStream();\n  }, []);\n\n  const handleCopy = () => {\n    navigator.clipboard.writeText(FULL_TEXT);\n    setCopied(true);\n    setTimeout(() => setCopied(false), 2000);\n  };\n\n  return (\n    <div className=\"w-full max-w-md mx-auto rounded-2xl border border-zinc-200 dark:border-white/10 bg-white/90 dark:bg-zinc-900/90 p-4 shadow-lg backdrop-blur-md\">\n      <div className=\"flex items-center justify-between pb-3 border-b border-zinc-100 dark:border-white/5\">\n        <div className=\"flex items-center gap-2\">\n          <div className=\"h-6 w-6 rounded-lg bg-indigo-500/10 border border-indigo-500/20 flex items-center justify-center text-indigo-400\">\n            <Cpu size={13} weight=\"bold\" />\n          </div>\n          <span className=\"text-xs font-mono font-semibold text-zinc-900 dark:text-zinc-100\">\n            Assistant Stream\n          </span>\n          <span className=\"text-[10px] font-mono px-1.5 py-0.2 rounded bg-emerald-500/10 text-emerald-500 border border-emerald-500/20\">\n            128 t/s\n          </span>\n        </div>\n\n        <div className=\"flex items-center gap-1\">\n          <button\n            onClick={startStream}\n            className=\"p-1 rounded text-zinc-400 hover:text-zinc-900 dark:hover:text-white\"\n            title=\"Replay stream\"\n          >\n            <ArrowClockwise size={13} />\n          </button>\n          <button\n            onClick={handleCopy}\n            className=\"p-1 rounded text-zinc-400 hover:text-zinc-900 dark:hover:text-white\"\n            title=\"Copy response\"\n          >\n            {copied ? <Check size={13} className=\"text-emerald-500\" /> : <Copy size={13} />}\n          </button>\n        </div>\n      </div>\n\n      <div className=\"mt-3 font-mono text-xs text-zinc-800 dark:text-zinc-200 whitespace-pre leading-relaxed bg-zinc-50 dark:bg-zinc-950/80 p-3 rounded-xl border border-zinc-200/50 dark:border-white/5\">\n        {displayedText}\n        {!isDone && (\n          <motion.span\n            animate={{ opacity: [1, 0, 1] }}\n            transition={{ repeat: Infinity, duration: 0.6 }}\n            className=\"inline-block w-2 h-4 bg-indigo-500 ml-0.5 align-middle\"\n          />\n        )}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "ai-token-cost-meter",
    "type": "registry:ui",
    "title": "AI Token Cost & Context Meter",
    "description": "Visual context window monitor tracking token consumption, context fill percentage, and calculated USD API invocation expense.",
    "category": "ai",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/ai/ai-token-cost-meter/ai-token-cost-meter.tsx",
        "type": "registry:ui",
        "target": "components/ui/ai-token-cost-meter.tsx",
        "content": "import React from 'react';\nimport { Coins, Cpu } from '@phosphor-icons/react';\n\nexport const AiTokenCostMeter: React.FC = () => {\n  const promptTokens = 4280;\n  const completionTokens = 910;\n  const totalTokens = promptTokens + completionTokens;\n  const maxContext = 128000;\n  const percentage = ((totalTokens / maxContext) * 100).toFixed(1);\n  const costUsd = ((promptTokens * 0.000003) + (completionTokens * 0.000015)).toFixed(4);\n\n  return (\n    <div className=\"w-full max-w-sm mx-auto rounded-2xl border border-zinc-200 dark:border-white/10 bg-white/90 dark:bg-zinc-900/90 p-4 shadow-lg backdrop-blur-md font-mono text-xs\">\n      <div className=\"flex items-center justify-between pb-3 border-b border-zinc-100 dark:border-white/5\">\n        <div className=\"flex items-center gap-1.5 text-zinc-700 dark:text-zinc-300 font-semibold\">\n          <Cpu size={14} className=\"text-cyan-400\" />\n          <span>Context Utilization</span>\n        </div>\n        <span className=\"text-[10px] text-zinc-500\">128K Window</span>\n      </div>\n\n      <div className=\"mt-3\">\n        <div className=\"flex justify-between text-[11px] mb-1\">\n          <span className=\"text-zinc-500\">{totalTokens.toLocaleString()} tokens</span>\n          <span className=\"font-bold text-indigo-500\">{percentage}%</span>\n        </div>\n        <div className=\"w-full h-2 rounded-full bg-zinc-100 dark:bg-white/10 overflow-hidden\">\n          <div\n            className=\"h-full bg-gradient-to-r from-indigo-500 via-cyan-400 to-emerald-400 rounded-full\"\n            style={{ width: `${Math.max(4, Number(percentage) * 5)}%` }}\n          />\n        </div>\n      </div>\n\n      <div className=\"mt-4 pt-3 border-t border-zinc-100 dark:border-white/5 flex items-center justify-between text-zinc-600 dark:text-zinc-400 text-[11px]\">\n        <div className=\"flex items-center gap-1 text-emerald-500\">\n          <Coins size={13} />\n          <span className=\"font-bold\">${costUsd} USD</span>\n        </div>\n        <span>P: {promptTokens} / C: {completionTokens}</span>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "ai-voice-waveform",
    "type": "registry:ui",
    "title": "AI Voice Waveform",
    "description": "Interactive real-time audio waveform visualizer for conversational AI agents with pulsating aura, live frequency spectrum, and listening states.",
    "category": "ai",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/ai/ai-voice-waveform/ai-voice-waveform.tsx",
        "type": "registry:ui",
        "target": "components/ui/ai-voice-waveform.tsx",
        "content": "import React, { useState, useEffect } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { \n  Microphone, \n  MicrophoneSlash, \n  SpeakerHigh, \n  Waveform, \n  Circle, \n  Play, \n  Pause,\n  ArrowsClockwise\n} from '@phosphor-icons/react';\n\nexport interface AiVoiceWaveformProps {\n  state?: 'listening' | 'speaking' | 'idle';\n  colorTheme?: 'cyan' | 'emerald' | 'violet' | 'amber';\n  barCount?: number;\n  active?: boolean;\n  className?: string;\n}\n\nexport const AiVoiceWaveform: React.FC<AiVoiceWaveformProps> = ({\n  state: controlledState,\n  colorTheme = 'cyan',\n  barCount = 24,\n  active: controlledActive,\n  className = '',\n}) => {\n  const [internalActive, setInternalActive] = useState(true);\n  const [internalState, setInternalState] = useState<'listening' | 'speaking' | 'idle'>('listening');\n  const [frequencies, setFrequencies] = useState<number[]>([]);\n\n  const isActive = controlledActive !== undefined ? controlledActive : internalActive;\n  const currentState = controlledState !== undefined ? controlledState : internalState;\n\n  // Generate responsive animated bar heights\n  useEffect(() => {\n    const bars = Math.max(12, Math.min(barCount, 40));\n    let frameId: number;\n    let tick = 0;\n\n    const updateSpectrum = () => {\n      tick += 0.08;\n      if (!isActive) {\n        setFrequencies(Array(bars).fill(4));\n        return;\n      }\n\n      const next = Array.from({ length: bars }, (_, i) => {\n        const centerOffset = 1 - Math.abs(i - bars / 2) / (bars / 2);\n        if (currentState === 'listening') {\n          // Dynamic noise with center bias\n          const wave = Math.sin(tick * 3 + i * 0.5) * 0.5 + 0.5;\n          const noise = Math.random() * 0.4 + 0.1;\n          return Math.max(6, Math.floor((wave * 0.6 + noise * 0.4) * 64 * centerOffset) + 6);\n        } else if (currentState === 'speaking') {\n          // Smooth sine undulating voice rhythm\n          const wave1 = Math.sin(tick * 2 + i * 0.35);\n          const wave2 = Math.cos(tick * 1.5 - i * 0.2);\n          const combined = (wave1 + wave2 + 2) / 4;\n          return Math.max(8, Math.floor(combined * 72 * centerOffset) + 8);\n        } else {\n          // Gentle idle breathing\n          const idleWave = (Math.sin(tick * 1.2 + i * 0.2) + 1) / 2;\n          return Math.max(4, Math.floor(idleWave * 18 * centerOffset) + 4);\n        }\n      });\n\n      setFrequencies(next);\n      frameId = requestAnimationFrame(updateSpectrum);\n    };\n\n    frameId = requestAnimationFrame(updateSpectrum);\n    return () => cancelAnimationFrame(frameId);\n  }, [isActive, currentState, barCount]);\n\n  const themeConfig = {\n    cyan: {\n      barGradient: 'from-cyan-400 via-sky-500 to-blue-600',\n      aura: 'bg-cyan-500/20 border-cyan-500/30 text-cyan-400',\n      glow: 'shadow-[0_0_30px_rgba(6,182,212,0.25)]',\n      pill: 'bg-cyan-500/10 text-cyan-400 border-cyan-500/20',\n    },\n    emerald: {\n      barGradient: 'from-emerald-400 via-teal-500 to-green-600',\n      aura: 'bg-emerald-500/20 border-emerald-500/30 text-emerald-400',\n      glow: 'shadow-[0_0_30px_rgba(16,185,129,0.25)]',\n      pill: 'bg-emerald-500/10 text-emerald-400 border-emerald-500/20',\n    },\n    violet: {\n      barGradient: 'from-violet-400 via-purple-500 to-indigo-600',\n      aura: 'bg-violet-500/20 border-violet-500/30 text-violet-400',\n      glow: 'shadow-[0_0_30px_rgba(139,92,246,0.25)]',\n      pill: 'bg-violet-500/10 text-violet-400 border-violet-500/20',\n    },\n    amber: {\n      barGradient: 'from-amber-400 via-orange-500 to-rose-600',\n      aura: 'bg-amber-500/20 border-amber-500/30 text-amber-400',\n      glow: 'shadow-[0_0_30px_rgba(245,158,11,0.25)]',\n      pill: 'bg-amber-500/10 text-amber-400 border-amber-500/20',\n    },\n  }[colorTheme];\n\n  const stateLabels = {\n    listening: 'Listening to prompt...',\n    speaking: 'Synthesizing voice response...',\n    idle: 'Standby mode (tap mic to speak)',\n  };\n\n  return (\n    <div className={`w-full max-w-xl mx-auto rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950 p-6 shadow-xl transition-all ${className}`}>\n      {/* Top Header Status */}\n      <div className=\"flex items-center justify-between pb-4 border-b border-zinc-200/80 dark:border-white/5\">\n        <div className=\"flex items-center gap-2.5\">\n          <div className={`flex h-8 w-8 items-center justify-center rounded-xl border ${themeConfig.aura}`}>\n            {currentState === 'listening' ? (\n              <Microphone size={16} weight=\"bold\" />\n            ) : currentState === 'speaking' ? (\n              <SpeakerHigh size={16} weight=\"bold\" />\n            ) : (\n              <Waveform size={16} weight=\"bold\" />\n            )}\n          </div>\n          <div>\n            <div className=\"flex items-center gap-2\">\n              <h3 className=\"text-sm font-semibold text-zinc-900 dark:text-white\">Neural Voice Engine</h3>\n              <span className={`px-2 py-0.5 rounded-full text-[10px] font-mono uppercase font-semibold border ${themeConfig.pill}`}>\n                {currentState}\n              </span>\n            </div>\n            <p className=\"text-xs text-zinc-500 font-mono\">Sampling: 48kHz &bull; Latency &lt; 90ms</p>\n          </div>\n        </div>\n\n        {/* Mute/Active Toggle */}\n        <button\n          onClick={() => setInternalActive(!isActive)}\n          className={`flex h-9 w-9 items-center justify-center rounded-xl border transition-all cursor-pointer ${\n            isActive\n              ? 'bg-zinc-900 text-white dark:bg-white dark:text-zinc-900 border-transparent shadow-xs'\n              : 'bg-zinc-100 text-zinc-400 dark:bg-zinc-900 dark:text-zinc-500 border-zinc-200 dark:border-white/10'\n          }`}\n          title={isActive ? 'Mute microphone' : 'Unmute microphone'}\n        >\n          {isActive ? <Microphone size={16} weight=\"bold\" /> : <MicrophoneSlash size={16} weight=\"bold\" />}\n        </button>\n      </div>\n\n      {/* Main Waveform Visualization Stage */}\n      <div className=\"relative my-8 flex h-36 items-center justify-center overflow-hidden rounded-2xl bg-zinc-50 dark:bg-[#07070a] border border-zinc-200/60 dark:border-white/5 px-4\">\n        {/* Pulsating Center Aura */}\n        <div \n          className={`absolute h-28 w-28 rounded-full blur-2xl transition-all duration-700 pointer-events-none ${\n            isActive ? `${themeConfig.aura.split(' ')[0]} opacity-70 scale-125` : 'opacity-0 scale-75'\n          }`} \n        />\n\n        {/* Waveform Frequency Bars */}\n        <div className=\"relative z-10 flex items-center justify-center gap-1 sm:gap-1.5 h-full w-full max-w-md\">\n          {frequencies.map((height, i) => (\n            <div\n              key={i}\n              className=\"flex items-center justify-center h-full flex-1 max-w-[12px]\"\n            >\n              <div\n                style={{\n                  height: `${height}px`,\n                  transition: 'height 80ms ease-out',\n                }}\n                className={`w-full rounded-full bg-gradient-to-t ${themeConfig.barGradient} ${\n                  isActive ? themeConfig.glow : 'opacity-30'\n                }`}\n              />\n            </div>\n          ))}\n        </div>\n\n        {/* Live Audio Level Rings */}\n        {isActive && currentState !== 'idle' && (\n          <div className=\"absolute inset-0 pointer-events-none flex items-center justify-center\">\n            <div className=\"w-48 h-20 rounded-full border border-dashed border-zinc-300 dark:border-white/10 animate-pulse\" />\n          </div>\n        )}\n      </div>\n\n      {/* Live Text Caption & Activity */}\n      <div className=\"flex items-center justify-between text-xs font-mono\">\n        <div className=\"flex items-center gap-2 text-zinc-600 dark:text-zinc-300\">\n          <Circle \n            size={8} \n            weight=\"fill\" \n            className={isActive ? (currentState === 'listening' ? 'text-emerald-500 animate-pulse' : 'text-cyan-500 animate-ping') : 'text-zinc-500'} \n          />\n          <span className=\"truncate\">{stateLabels[currentState]}</span>\n        </div>\n\n        {/* State Switching Pills (Interactive in preview) */}\n        <div className=\"flex items-center gap-1 bg-zinc-100 dark:bg-zinc-900 p-1 rounded-xl border border-zinc-200 dark:border-white/5\">\n          {(['listening', 'speaking', 'idle'] as const).map((s) => (\n            <button\n              key={s}\n              onClick={() => setInternalState(s)}\n              className={`px-2.5 py-1 rounded-lg text-[10px] font-mono uppercase font-semibold transition-all cursor-pointer ${\n                currentState === s\n                  ? 'bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white shadow-xs'\n                  : 'text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-300'\n              }`}\n            >\n              {s}\n            </button>\n          ))}\n        </div>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "neural-token-stream",
    "type": "registry:ui",
    "title": "Neural Token Stream",
    "description": "Interactive LLM token streaming visualizer with live probability heatmaps, reasoning chain display, and throughput telemetry.",
    "category": "ai",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/ai/neural-token-stream/neural-token-stream.tsx",
        "type": "registry:ui",
        "target": "components/ui/neural-token-stream.tsx",
        "content": "import React, { useState, useEffect, useRef } from 'react';\nimport { Brain, Cpu, Play, ArrowClockwise, CheckCircle, Lightning, CaretRight } from '@phosphor-icons/react';\n\nexport interface NeuralTokenStreamProps {\n  modelName?: string;\n  streamingSpeedMs?: number;\n  showProbabilities?: boolean;\n  className?: string;\n}\n\ninterface TokenData {\n  text: string;\n  prob: number; // 0 to 1\n  isReasoning?: boolean;\n}\n\nconst DEFAULT_TOKENS: TokenData[] = [\n  { text: \"Analyzing\", prob: 0.98, isReasoning: true },\n  { text: \" system\", prob: 0.96, isReasoning: true },\n  { text: \" constraints...\", prob: 0.92, isReasoning: true },\n  { text: \" Verified.\", prob: 0.99, isReasoning: true },\n  { text: \"The\", prob: 0.94 },\n  { text: \" optimal\", prob: 0.89 },\n  { text: \" distributed\", prob: 0.97 },\n  { text: \" cache\", prob: 0.95 },\n  { text: \" strategy\", prob: 0.92 },\n  { text: \" involves\", prob: 0.88 },\n  { text: \" dynamic\", prob: 0.93 },\n  { text: \" multi-region\", prob: 0.96 },\n  { text: \" read\", prob: 0.91 },\n  { text: \" replicas\", prob: 0.97 },\n  { text: \" with\", prob: 0.99 },\n  { text: \" Raft\", prob: 0.95 },\n  { text: \" consensus\", prob: 0.98 },\n  { text: \" for\", prob: 0.99 },\n  { text: \" atomic\", prob: 0.94 },\n  { text: \" writes.\", prob: 0.99 }\n];\n\nexport const NeuralTokenStream: React.FC<NeuralTokenStreamProps> = ({\n  modelName = \"Nexus-70B-MoE\",\n  streamingSpeedMs = 75,\n  showProbabilities = true,\n  className = \"\"\n}) => {\n  const [tokenIndex, setTokenIndex] = useState(0);\n  const [isGenerating, setIsGenerating] = useState(true);\n  const [selectedToken, setSelectedToken] = useState<TokenData | null>(null);\n  const timerRef = useRef<NodeJS.Timeout | null>(null);\n\n  useEffect(() => {\n    if (!isGenerating) return;\n\n    if (tokenIndex < DEFAULT_TOKENS.length) {\n      timerRef.current = setTimeout(() => {\n        setTokenIndex(prev => prev + 1);\n      }, streamingSpeedMs);\n    } else {\n      setIsGenerating(false);\n    }\n\n    return () => {\n      if (timerRef.current) clearTimeout(timerRef.current);\n    };\n  }, [tokenIndex, isGenerating, streamingSpeedMs]);\n\n  const handleRestart = () => {\n    setTokenIndex(0);\n    setIsGenerating(true);\n    setSelectedToken(null);\n  };\n\n  const visibleTokens = DEFAULT_TOKENS.slice(0, tokenIndex);\n  const reasoningTokens = visibleTokens.filter(t => t.isReasoning);\n  const outputTokens = visibleTokens.filter(t => !t.isReasoning);\n  const currentToken = visibleTokens[visibleTokens.length - 1];\n\n  const getConfidenceColor = (prob: number) => {\n    if (prob >= 0.95) return 'text-emerald-400 bg-emerald-500/10 border-emerald-500/20';\n    if (prob >= 0.90) return 'text-cyan-400 bg-cyan-500/10 border-cyan-500/20';\n    return 'text-amber-400 bg-amber-500/10 border-amber-500/20';\n  };\n\n  return (\n    <div className={`w-full max-w-2xl mx-auto rounded-3xl border border-zinc-200 dark:border-white/10 bg-white/95 dark:bg-[#07080d] p-6 shadow-2xl backdrop-blur-xl font-mono text-xs select-none ${className}`}>\n      {/* Header bar */}\n      <div className=\"flex flex-wrap items-center justify-between gap-4 pb-4 border-b border-zinc-200/80 dark:border-white/5\">\n        <div className=\"flex items-center gap-3\">\n          <div className=\"flex h-8 w-8 items-center justify-center rounded-xl bg-violet-500/10 border border-violet-500/20 text-violet-400\">\n            <Brain size={18} weight=\"bold\" />\n          </div>\n          <div>\n            <div className=\"flex items-center gap-2\">\n              <h3 className=\"font-bold text-zinc-900 dark:text-white text-sm\">{modelName}</h3>\n              <span className=\"px-2 py-0.5 rounded-full text-[9px] font-bold bg-violet-500/10 text-violet-400 border border-violet-500/20\">\n                MoE FP8\n              </span>\n            </div>\n            <span className=\"text-[11px] text-zinc-400\">Live Top-1 Logprob Tokenization</span>\n          </div>\n        </div>\n\n        <div className=\"flex items-center gap-2\">\n          <button\n            onClick={handleRestart}\n            className=\"flex items-center gap-1.5 px-3 py-1.5 rounded-xl border border-zinc-200 dark:border-white/10 bg-zinc-100 dark:bg-white/5 text-zinc-700 dark:text-zinc-200 hover:text-zinc-900 dark:hover:text-white transition-all cursor-pointer hover:scale-105 active:scale-95\"\n            title=\"Restart Token Stream\"\n          >\n            <ArrowClockwise size={13} weight=\"bold\" className={isGenerating ? \"animate-spin\" : \"\"} />\n            <span className=\"text-[11px]\">Replay</span>\n          </button>\n        </div>\n      </div>\n\n      {/* Real-time Telemetry Stats */}\n      <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-2 my-4 p-3 rounded-2xl bg-zinc-100/50 dark:bg-white/[0.02] border border-zinc-200/60 dark:border-white/5 text-[11px]\">\n        <div>\n          <span className=\"text-zinc-400 block text-[10px]\">OUTPUT TOKENS</span>\n          <span className=\"font-bold text-zinc-900 dark:text-white\">{outputTokens.length} / 16</span>\n        </div>\n        <div>\n          <span className=\"text-zinc-400 block text-[10px]\">THROUGHPUT</span>\n          <span className=\"font-bold text-cyan-400\">{isGenerating ? '94.2 tok/s' : '0.0 tok/s'}</span>\n        </div>\n        <div>\n          <span className=\"text-zinc-400 block text-[10px]\">AVG LOGPROB</span>\n          <span className=\"font-bold text-emerald-400\">95.4%</span>\n        </div>\n        <div>\n          <span className=\"text-zinc-400 block text-[10px]\">TTFT</span>\n          <span className=\"font-bold text-violet-400\">18.2ms</span>\n        </div>\n      </div>\n\n      {/* Thinking / Reasoning Accordion */}\n      {reasoningTokens.length > 0 && (\n        <div className=\"mb-4 p-3 rounded-2xl bg-zinc-100/70 dark:bg-zinc-900/40 border border-zinc-200/60 dark:border-white/5\">\n          <div className=\"flex items-center gap-2 text-[10px] text-zinc-400 font-bold uppercase tracking-wider mb-1.5\">\n            <Cpu size={12} weight=\"bold\" className=\"text-violet-400\" />\n            <span>Reasoning Chain</span>\n          </div>\n          <div className=\"text-zinc-500 dark:text-zinc-400 text-xs italic\">\n            {reasoningTokens.map((t, idx) => (\n              <span key={idx} className=\"transition-opacity duration-150\">\n                {t.text}\n              </span>\n            ))}\n          </div>\n        </div>\n      )}\n\n      {/* Main Generated Content Viewport with interactive token inspector */}\n      <div className=\"p-4 rounded-2xl bg-zinc-50 dark:bg-black/50 border border-zinc-200/80 dark:border-white/10 min-h-[90px] leading-relaxed\">\n        {outputTokens.map((t, idx) => {\n          const isSelected = selectedToken?.text === t.text;\n          return (\n            <span\n              key={idx}\n              onClick={() => setSelectedToken(t)}\n              className={`inline-block px-1 py-0.5 rounded cursor-pointer transition-all duration-150 hover:bg-violet-500/20 hover:text-violet-300 ${\n                isSelected ? 'bg-violet-500/30 text-violet-300 ring-1 ring-violet-400' : 'text-zinc-800 dark:text-zinc-100'\n              }`}\n            >\n              {t.text}\n            </span>\n          );\n        })}\n\n        {/* Streaming Glow Caret */}\n        {isGenerating && (\n          <span className=\"inline-block w-2 h-4 ml-1 bg-cyan-400 animate-pulse rounded-xs shadow-[0_0_8px_rgba(6,182,212,0.8)] align-middle\" />\n        )}\n      </div>\n\n      {/* Token Inspector Drawer */}\n      {showProbabilities && selectedToken && (\n        <div className=\"mt-3 p-3 rounded-2xl bg-zinc-100/80 dark:bg-zinc-900/80 border border-zinc-200 dark:border-white/10 flex items-center justify-between text-[11px] animate-in fade-in duration-200\">\n          <div className=\"flex items-center gap-2\">\n            <span className=\"text-zinc-400\">Token:</span>\n            <code className=\"px-2 py-0.5 rounded bg-zinc-200 dark:bg-white/10 font-bold text-zinc-900 dark:text-white\">\n              \"{selectedToken.text}\"\n            </code>\n          </div>\n          <div className=\"flex items-center gap-2\">\n            <span className=\"text-zinc-400\">Logprob Confidence:</span>\n            <span className={`px-2 py-0.5 rounded-full font-bold border ${getConfidenceColor(selectedToken.prob)}`}>\n              {(selectedToken.prob * 100).toFixed(1)}%\n            </span>\n          </div>\n        </div>\n      )}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "elastic-kinetic-toggle",
    "type": "registry:ui",
    "title": "Elastic Kinetic Toggle",
    "description": "Physics-driven elastic switch with gooey spring overshoot, tactile snap feedback, and responsive state indicators.",
    "category": "animations",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/animations/elastic-kinetic-toggle/elastic-kinetic-toggle.tsx",
        "type": "registry:ui",
        "target": "components/ui/elastic-kinetic-toggle.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { Check, X, Lightning, Power } from '@phosphor-icons/react';\n\nexport interface ElasticKineticToggleProps {\n  checked?: boolean;\n  onChange?: (checked: boolean) => void;\n  colorTheme?: 'emerald' | 'indigo' | 'rose' | 'amber';\n  size?: 'sm' | 'md' | 'lg';\n  label?: string;\n  className?: string;\n}\n\nexport const ElasticKineticToggle: React.FC<ElasticKineticToggleProps> = ({\n  checked: controlledChecked,\n  onChange,\n  colorTheme = 'emerald',\n  size = 'md',\n  label = 'Kinetic State',\n  className = '',\n}) => {\n  const [internalChecked, setInternalChecked] = useState(false);\n  const isChecked = controlledChecked !== undefined ? controlledChecked : internalChecked;\n\n  const toggle = () => {\n    const next = !isChecked;\n    setInternalChecked(next);\n    onChange?.(next);\n  };\n\n  const themeConfig = {\n    emerald: {\n      activeBg: 'bg-emerald-500 dark:bg-emerald-500',\n      activeThumb: 'bg-white text-emerald-600',\n      activeRing: 'border-emerald-400',\n      activeShadow: 'shadow-[0_0_20px_rgba(16,185,129,0.35)]',\n      badge: 'text-emerald-500 bg-emerald-500/10 border-emerald-500/20',\n    },\n    indigo: {\n      activeBg: 'bg-indigo-600 dark:bg-indigo-500',\n      activeThumb: 'bg-white text-indigo-600',\n      activeRing: 'border-indigo-400',\n      activeShadow: 'shadow-[0_0_20px_rgba(99,102,241,0.35)]',\n      badge: 'text-indigo-500 bg-indigo-500/10 border-indigo-500/20',\n    },\n    rose: {\n      activeBg: 'bg-rose-500 dark:bg-rose-500',\n      activeThumb: 'bg-white text-rose-600',\n      activeRing: 'border-rose-400',\n      activeShadow: 'shadow-[0_0_20px_rgba(244,63,94,0.35)]',\n      badge: 'text-rose-500 bg-rose-500/10 border-rose-500/20',\n    },\n    amber: {\n      activeBg: 'bg-amber-500 dark:bg-amber-500',\n      activeThumb: 'bg-white text-amber-600',\n      activeRing: 'border-amber-400',\n      activeShadow: 'shadow-[0_0_20px_rgba(245,158,11,0.35)]',\n      badge: 'text-amber-500 bg-amber-500/10 border-amber-500/20',\n    },\n  }[colorTheme];\n\n  const sizeConfig = {\n    sm: {\n      track: 'w-14 h-8 p-1',\n      thumb: 'h-6 w-6',\n      xActive: 24,\n      iconSize: 12,\n    },\n    md: {\n      track: 'w-20 h-11 p-1.5',\n      thumb: 'h-8 w-8',\n      xActive: 36,\n      iconSize: 16,\n    },\n    lg: {\n      track: 'w-24 h-13 p-2',\n      thumb: 'h-9 w-9',\n      xActive: 44,\n      iconSize: 18,\n    },\n  }[size];\n\n  return (\n    <div className={`flex flex-col items-center gap-4 select-none ${className}`}>\n      {/* Outer interactive pill button */}\n      <button\n        type=\"button\"\n        role=\"switch\"\n        aria-checked={isChecked}\n        onClick={toggle}\n        className={`relative ${sizeConfig.track} rounded-full transition-colors duration-300 cursor-pointer flex items-center ${\n          isChecked\n            ? `${themeConfig.activeBg} ${themeConfig.activeShadow}`\n            : 'bg-zinc-200 dark:bg-zinc-800'\n        }`}\n      >\n        {/* Elastic kinetic thumb with fluid overshoot physics */}\n        <motion.div\n          animate={{\n            x: isChecked ? sizeConfig.xActive : 0,\n            scaleX: [1, 1.25, 0.95, 1],\n            scaleY: [1, 0.85, 1.05, 1],\n          }}\n          transition={{\n            type: 'spring',\n            stiffness: 500,\n            damping: 24,\n            mass: 0.8,\n          }}\n          className={`relative z-10 ${sizeConfig.thumb} rounded-full bg-white dark:bg-zinc-100 shadow-md flex items-center justify-center text-zinc-700 transition-colors`}\n        >\n          {isChecked ? (\n            <Check size={sizeConfig.iconSize} weight=\"bold\" className={themeConfig.activeThumb.split(' ')[1]} />\n          ) : (\n            <X size={sizeConfig.iconSize} weight=\"bold\" className=\"text-zinc-400\" />\n          )}\n        </motion.div>\n\n        {/* Shockwave ripple ring on toggle */}\n        <AnimatePresence>\n          {isChecked && (\n            <motion.div\n              initial={{ scale: 0.8, opacity: 0.9 }}\n              animate={{ scale: 1.35, opacity: 0 }}\n              exit={{ opacity: 0 }}\n              transition={{ duration: 0.45, ease: 'easeOut' }}\n              className={`absolute inset-0 rounded-full border-2 ${themeConfig.activeRing} pointer-events-none`}\n            />\n          )}\n        </AnimatePresence>\n      </button>\n\n      {/* State label & badge */}\n      {label && (\n        <div className=\"flex items-center gap-2 text-xs font-mono\">\n          <span className=\"text-zinc-600 dark:text-zinc-400 font-medium\">{label}:</span>\n          <span className={`px-2 py-0.5 rounded-md font-bold uppercase text-[10px] border ${\n            isChecked ? themeConfig.badge : 'text-zinc-500 bg-zinc-100 dark:bg-zinc-800 border-zinc-200 dark:border-white/5'\n          }`}>\n            {isChecked ? 'ENGAGED' : 'DISENGAGED'}\n          </span>\n        </div>\n      )}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "orbital-particle-sphere",
    "type": "registry:ui",
    "title": "Orbital Particle Sphere",
    "description": "3D perspective particle globe rotating along equatorial and polar orbital planes with cursor velocity inertia and depth illumination.",
    "category": "animations",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/animations/orbital-particle-sphere/orbital-particle-sphere.tsx",
        "type": "registry:ui",
        "target": "components/ui/orbital-particle-sphere.tsx",
        "content": "import React, { useRef, useEffect, useState } from 'react';\nimport { Globe, Compass, ArrowsClockwise } from '@phosphor-icons/react';\n\nexport interface OrbitalParticleSphereProps {\n  particleCount?: number;\n  rotationSpeed?: number;\n  colorTheme?: 'cyan' | 'emerald' | 'violet' | 'amber';\n  interactive?: boolean;\n  className?: string;\n}\n\ninterface Point3D {\n  x: number;\n  y: number;\n  z: number;\n}\n\nexport const OrbitalParticleSphere: React.FC<OrbitalParticleSphereProps> = ({\n  particleCount = 140,\n  rotationSpeed = 1,\n  colorTheme = 'cyan',\n  interactive = true,\n  className = '',\n}) => {\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n  const animIdRef = useRef<number | null>(null);\n  const rotYRef = useRef(0);\n  const rotXRef = useRef(0.2);\n  const velocityRef = useRef({ vx: 0.006 * rotationSpeed, vy: 0.002 * rotationSpeed });\n  const isDraggingRef = useRef(false);\n  const lastMouseRef = useRef({ x: 0, y: 0 });\n\n  useEffect(() => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    let isVisible = true;\n\n    // Responsive Canvas Resize Observer\n    const handleResize = () => {\n      const rect = canvas.getBoundingClientRect();\n      if (rect.width > 0 && rect.height > 0) {\n        canvas.width = rect.width;\n        canvas.height = rect.height;\n      }\n    };\n    handleResize();\n    const resizeObserver = new ResizeObserver(handleResize);\n    resizeObserver.observe(canvas);\n\n    // Generate sphere points using Fibonacci Golden Spiral\n    const points: Point3D[] = [];\n    const count = Math.max(60, Math.min(particleCount, 240));\n    const phi = Math.PI * (3 - Math.sqrt(5)); // Golden angle\n\n    for (let i = 0; i < count; i++) {\n      const y = 1 - (i / (count - 1)) * 2; // -1 to 1\n      const radiusAtY = Math.sqrt(1 - y * y);\n      const theta = phi * i;\n\n      points.push({\n        x: Math.cos(theta) * radiusAtY,\n        y: y,\n        z: Math.sin(theta) * radiusAtY,\n      });\n    }\n\n    const themeColors = {\n      cyan: { front: '#38bdf8', back: '#0369a1', glow: 'rgba(56,189,248,0.3)' },\n      emerald: { front: '#34d399', back: '#065f46', glow: 'rgba(52,211,153,0.3)' },\n      violet: { front: '#a78bfa', back: '#5b21b6', glow: 'rgba(167,139,250,0.3)' },\n      amber: { front: '#fbbf24', back: '#92400e', glow: 'rgba(251,191,36,0.3)' },\n    }[colorTheme];\n\n    const render = () => {\n      if (!isVisible) return;\n      ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n      // Apply angular rotation & velocity inertia\n      if (!isDraggingRef.current) {\n        rotYRef.current += velocityRef.current.vx;\n        rotXRef.current += velocityRef.current.vy;\n      }\n\n      const sphereRadius = Math.min(canvas.width, canvas.height) * 0.38;\n      const cx = canvas.width / 2;\n      const cy = canvas.height / 2;\n      const fov = 340;\n\n      const cosY = Math.cos(rotYRef.current);\n      const sinY = Math.sin(rotYRef.current);\n      const cosX = Math.cos(rotXRef.current);\n      const sinX = Math.sin(rotXRef.current);\n\n      // Project and sort points by Z depth for accurate rendering\n      const projected = points.map((p) => {\n        // Rotate Y\n        const x1 = p.x * cosY - p.z * sinY;\n        const z1 = p.z * cosY + p.x * sinY;\n\n        // Rotate X\n        const y2 = p.y * cosX - z1 * sinX;\n        const z2 = z1 * cosX + p.y * sinX;\n\n        const scale = fov / (fov + z2 * sphereRadius);\n        const px = cx + x1 * sphereRadius * scale;\n        const py = cy + y2 * sphereRadius * scale;\n\n        return { px, py, z: z2, scale };\n      });\n\n      // Sort back-to-front\n      projected.sort((a, b) => a.z - b.z);\n\n      // Draw projected particle nodes\n      projected.forEach((pt) => {\n        const isFront = pt.z > 0;\n        const depthAlpha = Math.max(0.12, Math.min(1, (pt.z + 1) / 2));\n        const size = Math.max(1, (pt.z + 1.2) * 2.2);\n\n        ctx.save();\n        ctx.globalAlpha = depthAlpha;\n        ctx.fillStyle = isFront ? themeColors.front : themeColors.back;\n\n        if (isFront && size > 2.2) {\n          ctx.shadowColor = themeColors.front;\n          ctx.shadowBlur = 6;\n        }\n\n        ctx.beginPath();\n        ctx.arc(pt.px, pt.py, size, 0, Math.PI * 2);\n        ctx.fill();\n        ctx.restore();\n      });\n\n      animIdRef.current = requestAnimationFrame(render);\n    };\n\n    animIdRef.current = requestAnimationFrame(render);\n\n    // Pause loop when offscreen\n    const observer = new IntersectionObserver(([entry]) => {\n      const wasVisible = isVisible;\n      isVisible = entry.isIntersecting;\n      if (isVisible && !wasVisible) {\n        animIdRef.current = requestAnimationFrame(render);\n      }\n    }, { threshold: 0.05 });\n    observer.observe(canvas);\n\n    return () => {\n      if (animIdRef.current) cancelAnimationFrame(animIdRef.current);\n      observer.disconnect();\n      resizeObserver.disconnect();\n    };\n  }, [particleCount, rotationSpeed, colorTheme]);\n\n  // Interactive Drag Controls\n  const handleMouseDown = (e: React.MouseEvent<HTMLCanvasElement>) => {\n    if (!interactive) return;\n    isDraggingRef.current = true;\n    lastMouseRef.current = { x: e.clientX, y: e.clientY };\n  };\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLCanvasElement>) => {\n    if (!isDraggingRef.current || !interactive) return;\n    const deltaX = e.clientX - lastMouseRef.current.x;\n    const deltaY = e.clientY - lastMouseRef.current.y;\n    lastMouseRef.current = { x: e.clientX, y: e.clientY };\n\n    rotYRef.current += deltaX * 0.008;\n    rotXRef.current += deltaY * 0.008;\n  };\n\n  const handleMouseUp = () => {\n    isDraggingRef.current = false;\n  };\n\n  return (\n    <div className={`relative w-full h-72 sm:h-80 rounded-3xl overflow-hidden bg-black border border-white/10 flex items-center justify-center select-none ${className}`}>\n      {/* Background radial glow */}\n      <div className=\"absolute inset-0 bg-[radial-gradient(circle_at_center,rgba(56,189,248,0.08)_0%,transparent_70%)] pointer-events-none\" />\n\n      {/* Responsive 3D Canvas */}\n      <canvas\n        ref={canvasRef}\n        onMouseDown={handleMouseDown}\n        onMouseMove={handleMouseMove}\n        onMouseUp={handleMouseUp}\n        onMouseLeave={handleMouseUp}\n        className=\"w-full h-full cursor-grab active:cursor-grabbing\"\n      />\n\n      {/* Bottom Telemetry Overlay */}\n      <div className=\"absolute bottom-3 left-4 right-4 flex items-center justify-between text-[10px] font-mono text-zinc-400 pointer-events-none\">\n        <div className=\"flex items-center gap-1.5 bg-zinc-900/80 px-2.5 py-1 rounded-full border border-white/10 backdrop-blur-md\">\n          <Globe size={13} className=\"text-cyan-400\" />\n          <span>FIBONACCI SPHERICAL MESH</span>\n        </div>\n        <span className=\"text-zinc-500 hidden sm:inline\">DRAG CANVAS TO ROTATE ORBIT</span>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "radar-ping-beacon",
    "type": "registry:ui",
    "title": "Radar Ping Beacon",
    "description": "Atmospheric tactical radar sweep with concentric sonar ripples, interactive target blips, azimuth telemetry, and ping impulse physics.",
    "category": "animations",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/animations/radar-ping-beacon/radar-ping-beacon.tsx",
        "type": "registry:ui",
        "target": "components/ui/radar-ping-beacon.tsx",
        "content": "import React, { useState, useEffect, useRef } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { \n  Crosshair, \n  Broadcast, \n  Compass, \n  ShieldCheck,\n  Target\n} from '@phosphor-icons/react';\n\nexport interface RadarPingBeaconProps {\n  sweepSpeed?: number;\n  colorTheme?: 'emerald' | 'cyan' | 'amber';\n  interactive?: boolean;\n  className?: string;\n}\n\ninterface Blip {\n  id: string;\n  name: string;\n  x: number; // percentage -50 to 50\n  y: number; // percentage -50 to 50\n  distance: string;\n  signal: string;\n  status: 'active' | 'warning' | 'synced';\n}\n\nconst DEFAULT_BLIPS: Blip[] = [\n  { id: '1', name: 'GATEWAY-AP-01', x: 22, y: -26, distance: '142m', signal: '-42 dBm', status: 'synced' },\n  { id: '2', name: 'EDGE-CLUSTER-07', x: -32, y: -18, distance: '280m', signal: '-58 dBm', status: 'active' },\n  { id: '3', name: 'PROXY-NODE-12', x: 14, y: 34, distance: '198m', signal: '-64 dBm', status: 'warning' },\n  { id: '4', name: 'BEACON-SAT-04', x: -20, y: 28, distance: '310m', signal: '-71 dBm', status: 'active' },\n];\n\nexport const RadarPingBeacon: React.FC<RadarPingBeaconProps> = ({\n  sweepSpeed = 2.5,\n  colorTheme = 'emerald',\n  interactive = true,\n  className = '',\n}) => {\n  const [angle, setAngle] = useState(0);\n  const [pings, setPings] = useState<{ id: number; x: number; y: number }[]>([]);\n  const [selectedBlip, setSelectedBlip] = useState<Blip | null>(null);\n  const animRef = useRef<number | null>(null);\n\n  // Sweep rotation loop\n  useEffect(() => {\n    let lastTime = performance.now();\n    const speedDegPerSec = (360 / Math.max(1, sweepSpeed)) * 0.8;\n\n    const tick = (now: number) => {\n      const delta = (now - lastTime) / 1000;\n      lastTime = now;\n      setAngle((prev) => (prev + speedDegPerSec * delta) % 360);\n      animRef.current = requestAnimationFrame(tick);\n    };\n\n    animRef.current = requestAnimationFrame(tick);\n    return () => {\n      if (animRef.current) cancelAnimationFrame(animRef.current);\n    };\n  }, [sweepSpeed]);\n\n  const triggerPing = (e?: React.MouseEvent<HTMLDivElement>) => {\n    if (!interactive) return;\n    let x = 50;\n    let y = 50;\n    if (e && e.currentTarget) {\n      const rect = e.currentTarget.getBoundingClientRect();\n      if (rect.width > 0 && rect.height > 0) {\n        x = Math.round(((e.clientX - rect.left) / rect.width) * 100);\n        y = Math.round(((e.clientY - rect.top) / rect.height) * 100);\n      }\n    }\n    const newId = Date.now();\n    setPings((prev) => [...prev.slice(-3), { id: newId, x, y }]);\n    setTimeout(() => {\n      setPings((prev) => prev.filter((p) => p.id !== newId));\n    }, 1800);\n  };\n\n  const themeConfig = {\n    emerald: {\n      radarLine: 'from-emerald-500/0 via-emerald-500/20 to-emerald-400',\n      blip: 'bg-emerald-400 shadow-[0_0_12px_#34d399]',\n      ring: 'border-emerald-500/20',\n      axis: 'bg-emerald-500/20',\n      badge: 'text-emerald-400 bg-emerald-500/10 border-emerald-500/20',\n      gradientRing: 'border-emerald-500/30',\n    },\n    cyan: {\n      radarLine: 'from-cyan-500/0 via-cyan-500/20 to-cyan-400',\n      blip: 'bg-cyan-400 shadow-[0_0_12px_#38bdf8]',\n      ring: 'border-cyan-500/20',\n      axis: 'bg-cyan-500/20',\n      badge: 'text-cyan-400 bg-cyan-500/10 border-cyan-500/20',\n      gradientRing: 'border-cyan-500/30',\n    },\n    amber: {\n      radarLine: 'from-amber-500/0 via-amber-500/20 to-amber-400',\n      blip: 'bg-amber-400 shadow-[0_0_12px_#fbbf24]',\n      ring: 'border-amber-500/20',\n      axis: 'bg-amber-500/20',\n      badge: 'text-amber-400 bg-amber-500/10 border-amber-500/20',\n      gradientRing: 'border-amber-500/30',\n    },\n  }[colorTheme];\n\n  return (\n    <div className={`relative w-full max-w-lg mx-auto rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-[#07090e] p-5 shadow-2xl flex flex-col items-center select-none ${className}`}>\n      {/* Top Telemetry Header */}\n      <div className=\"w-full flex items-center justify-between pb-3 border-b border-zinc-200/80 dark:border-white/5 font-mono text-xs\">\n        <div className=\"flex items-center gap-2\">\n          <Broadcast size={15} className=\"text-emerald-500 animate-pulse\" />\n          <span className=\"font-bold text-zinc-900 dark:text-white uppercase tracking-wider\">Sonar Recon Array</span>\n        </div>\n        <div className=\"flex items-center gap-2\">\n          <span className=\"text-[11px] text-zinc-400\">AZM:</span>\n          <span className=\"font-bold text-zinc-900 dark:text-zinc-100 w-10 text-right\">\n            {Math.floor(angle).toString().padStart(3, '0')}°\n          </span>\n          <span className={`px-2 py-0.5 rounded-full text-[10px] font-semibold border ${themeConfig.badge}`}>\n            4 TARGETS\n          </span>\n        </div>\n      </div>\n\n      {/* Main Radar Screen */}\n      <div \n        onClick={triggerPing}\n        className=\"relative my-4 flex h-64 w-64 sm:h-72 sm:w-72 items-center justify-center rounded-full bg-zinc-950 border border-zinc-800 shadow-inner overflow-hidden cursor-crosshair\"\n      >\n        {/* Subtle grid pattern background */}\n        <div className=\"absolute inset-0 bg-[radial-gradient(#1f2937_1px,transparent_1px)] [background-size:16px_16px] opacity-40\" />\n\n        {/* Concentric Sonar Rings */}\n        {[0.28, 0.52, 0.76, 1.0].map((scale, i) => (\n          <div\n            key={i}\n            style={{ width: `${scale * 100}%`, height: `${scale * 100}%` }}\n            className={`absolute rounded-full border border-dashed ${themeConfig.ring}`}\n          />\n        ))}\n\n        {/* Crosshair Axes */}\n        <div className={`absolute h-full w-[1px] ${themeConfig.axis}`} />\n        <div className={`absolute w-full h-[1px] ${themeConfig.axis}`} />\n\n        {/* Outer Degree Ticks */}\n        <div className=\"absolute inset-2 rounded-full border border-zinc-800 pointer-events-none\" />\n\n        {/* Rotating Radar Sweep Needle with Phosphor Gradient Arc */}\n        <div\n          style={{\n            transform: `rotate(${angle}deg)`,\n            transformOrigin: 'bottom right',\n          }}\n          className=\"absolute top-0 left-0 w-1/2 h-1/2 pointer-events-none\"\n        >\n          {/* Sweep Trail Arc */}\n          <div \n            style={{\n              background: 'conic-gradient(from 180deg at 100% 100%, rgba(52,211,153,0.28) 0deg, rgba(52,211,153,0.05) 45deg, transparent 65deg)',\n            }}\n            className=\"w-full h-full\"\n          />\n          {/* Leading Radius Needle */}\n          <div className=\"absolute right-0 bottom-0 top-0 w-[1.5px] bg-gradient-to-t from-emerald-400 to-emerald-200 shadow-[0_0_8px_#34d399]\" />\n        </div>\n\n        {/* Manual Ping Waves */}\n        <AnimatePresence>\n          {pings.map((p) => (\n            <motion.div\n              key={p.id}\n              initial={{ scale: 0, opacity: 0.8 }}\n              animate={{ scale: 1.4, opacity: 0 }}\n              exit={{ opacity: 0 }}\n              transition={{ duration: 1.6, ease: 'easeOut' }}\n              className={`absolute w-full h-full rounded-full border-2 ${themeConfig.gradientRing} pointer-events-none`}\n            />\n          ))}\n        </AnimatePresence>\n\n        {/* Interactive Target Blips */}\n        {DEFAULT_BLIPS.map((blip) => {\n          // Check proximity of current sweep angle to blip angle\n          const blipAngle = (Math.atan2(blip.y, blip.x) * 180) / Math.PI + 180;\n          const diff = Math.abs(angle - blipAngle);\n          const isSwept = diff < 15 || diff > 345;\n\n          return (\n            <div\n              key={blip.id}\n              style={{\n                left: `${50 + blip.x}%`,\n                top: `${50 + blip.y}%`,\n              }}\n              onClick={(e) => {\n                e.stopPropagation();\n                setSelectedBlip(blip === selectedBlip ? null : blip);\n              }}\n              className=\"absolute -translate-x-1/2 -translate-y-1/2 z-20 group cursor-pointer\"\n            >\n              <div \n                className={`relative flex items-center justify-center h-4 w-4 rounded-full transition-transform hover:scale-150`}\n              >\n                {/* Blip Core Light */}\n                <div \n                  className={`h-2.5 w-2.5 rounded-full ${themeConfig.blip} ${\n                    isSwept ? 'scale-125 brightness-150 animate-ping' : ''\n                  }`} \n                />\n                \n                {/* Ring Beacon on Swept */}\n                {isSwept && (\n                  <div className=\"absolute inset-0 rounded-full border border-emerald-400 animate-ping\" />\n                )}\n              </div>\n\n              {/* Blip Tooltip */}\n              <div className=\"absolute bottom-5 left-1/2 -translate-x-1/2 hidden group-hover:flex flex-col items-center pointer-events-none z-30\">\n                <div className=\"bg-zinc-900 border border-zinc-700 text-white rounded-lg px-2.5 py-1 text-[10px] font-mono whitespace-nowrap shadow-xl\">\n                  <p className=\"font-bold text-emerald-400\">{blip.name}</p>\n                  <p className=\"text-zinc-400\">{blip.distance} &bull; {blip.signal}</p>\n                </div>\n              </div>\n            </div>\n          );\n        })}\n\n        {/* Center Radar Transmitter Core */}\n        <div className=\"relative z-20 flex h-4 w-4 items-center justify-center rounded-full bg-zinc-900 border border-zinc-600 shadow-md\">\n          <div className=\"h-1.5 w-1.5 rounded-full bg-emerald-400 animate-pulse\" />\n        </div>\n      </div>\n\n      {/* Selected Blip Telemetry Banner / Ping Action */}\n      <div className=\"w-full mt-2 pt-3 border-t border-zinc-200/80 dark:border-white/5 flex items-center justify-between text-xs font-mono\">\n        <div className=\"flex items-center gap-2 truncate\">\n          {selectedBlip ? (\n            <div className=\"flex items-center gap-2\">\n              <Target size={14} className=\"text-emerald-500 shrink-0\" />\n              <span className=\"text-zinc-900 dark:text-zinc-100 font-bold\">{selectedBlip.name}</span>\n              <span className=\"text-zinc-400\">({selectedBlip.distance})</span>\n            </div>\n          ) : (\n            <span className=\"text-zinc-500 dark:text-zinc-400 text-[11px]\">\n              Tap radar surface or ping button to emit pulse\n            </span>\n          )}\n        </div>\n\n        <button\n          onClick={() => triggerPing()}\n          className=\"px-3 py-1 rounded-xl bg-zinc-900 text-white dark:bg-white dark:text-zinc-900 text-[11px] font-bold hover:opacity-90 transition-opacity cursor-pointer shadow-xs\"\n        >\n          PING SONAR\n        </button>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "wave-frequency-bars",
    "type": "registry:ui",
    "title": "Audio Frequency Spectrum Equalizer",
    "description": "Multi-band audio frequency analyzer bars with spring kinematic height oscillations and gradient chromatic peaks.",
    "category": "animations",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/animations/wave-frequency-bars/wave-frequency-bars.tsx",
        "type": "registry:ui",
        "target": "components/ui/wave-frequency-bars.tsx",
        "content": "import React, { useEffect, useState } from 'react';\nimport { motion } from 'framer-motion';\n\nexport const WaveFrequencyBars: React.FC = () => {\n  const [isPlaying, setIsPlaying] = useState(true);\n  const barCount = 18;\n\n  return (\n    <div className=\"flex flex-col items-center gap-4 p-6 rounded-2xl bg-zinc-100 dark:bg-zinc-950/80 border border-zinc-200 dark:border-white/10 w-full max-w-sm mx-auto shadow-md\">\n      <div className=\"w-full flex items-center justify-between text-[11px] font-mono text-zinc-500 dark:text-zinc-400\">\n        <span>MASTER AUDIO BUS</span>\n        <button\n          onClick={() => setIsPlaying(!isPlaying)}\n          className=\"px-2 py-0.5 rounded bg-zinc-200 dark:bg-white/10 hover:text-zinc-900 dark:hover:text-white transition-colors cursor-pointer\"\n        >\n          {isPlaying ? 'PAUSE' : 'PLAY'}\n        </button>\n      </div>\n\n      <div className=\"flex items-end justify-center gap-1.5 h-24 w-full\">\n        {Array.from({ length: barCount }).map((_, i) => (\n          <motion.div\n            key={i}\n            animate={\n              isPlaying\n                ? {\n                    height: ['15%', `${Math.min(95, Math.max(25, ((i * 17) % 75) + 20))}%`, '30%'],\n                  }\n                : { height: '15%' }\n            }\n            transition={{\n              repeat: Infinity,\n              repeatType: 'reverse',\n              duration: 0.4 + (i % 5) * 0.12,\n              ease: 'easeInOut',\n            }}\n            className=\"w-2.5 rounded-full bg-gradient-to-t from-indigo-500 via-cyan-400 to-emerald-400 shadow-[0_0_8px_rgba(99,102,241,0.4)]\"\n          />\n        ))}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "animated-mesh-background",
    "type": "registry:ui",
    "title": "Generative Animated Mesh Gradient",
    "description": "Deep spatial canvas mesh gradient with animated organic noise displacement.",
    "category": "backgrounds",
    "dependencies": [],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "background",
      "mesh",
      "gradient",
      "animated"
    ],
    "files": [
      {
        "path": "registry/backgrounds/animated-mesh-background/animated-mesh-background.tsx",
        "type": "registry:ui",
        "target": "components/ui/animated-mesh-background.tsx",
        "content": "import React from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface AnimatedMeshBackgroundProps {\n  children?: React.ReactNode\n  variant?: 'cyber' | 'sunset' | 'deep'\n  className?: string\n}\n\nexport const AnimatedMeshBackground: React.FC<AnimatedMeshBackgroundProps> = ({\n  children,\n  variant = 'deep',\n  className,\n}) => {\n  const gradientPresets = {\n    cyber: 'from-cyan-900/40 via-purple-900/30 to-blue-900/40',\n    sunset: 'from-amber-900/40 via-rose-900/30 to-purple-900/40',\n    deep: 'from-emerald-950/40 via-zinc-900/50 to-blue-950/40',\n  }\n\n  return (\n    <div className={cn('relative min-h-[300px] w-full overflow-hidden rounded-3xl border border-white/10 bg-[#050505] p-6', className)}>\n      {/* Multilayer Mesh Orbs */}\n      <div className={cn('pointer-events-none absolute inset-0 bg-gradient-to-tr blur-3xl opacity-60', gradientPresets[variant])} />\n      \n      <div className=\"pointer-events-none absolute -top-24 -left-24 h-64 w-64 rounded-full bg-cyan-500/20 blur-3xl animate-[pulse_6s_ease-in-out_infinite]\" />\n      <div className=\"pointer-events-none absolute -bottom-24 -right-24 h-64 w-64 rounded-full bg-purple-500/20 blur-3xl animate-[pulse_8s_ease-in-out_infinite]\" />\n\n      <div className=\"relative z-10 flex h-full flex-col justify-between\">\n        {children || (\n          <div className=\"my-auto text-center font-mono\">\n            <span className=\"text-xs uppercase tracking-widest text-purple-400\">ORGANIC SHADERS</span>\n            <h3 className=\"mt-2 text-xl font-bold text-zinc-900 dark:text-white\">Animated Mesh Canvas</h3>\n            <p className=\"mt-1 text-xs text-zinc-600 dark:text-zinc-400\">Layered radial diffusion mesh with organic frequency modulation.</p>\n          </div>\n        )}\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "aurora-background",
    "type": "registry:ui",
    "title": "Fluid Aurora Lighting",
    "description": "Chromatic atmospheric aurora simulation with smooth organic color blending.",
    "category": "backgrounds",
    "dependencies": [
      "framer-motion"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "background",
      "aurora",
      "fluid",
      "gradient"
    ],
    "files": [
      {
        "path": "registry/backgrounds/aurora-background/aurora-background.tsx",
        "type": "registry:ui",
        "target": "components/ui/aurora-background.tsx",
        "content": "import React from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface AuroraBackgroundProps {\n  children?: React.ReactNode\n  speed?: 'slow' | 'normal' | 'fast'\n  intensity?: 'subtle' | 'medium' | 'high'\n  className?: string\n}\n\nexport const AuroraBackground: React.FC<AuroraBackgroundProps> = ({\n  children,\n  speed = 'normal',\n  intensity = 'medium',\n  className,\n}) => {\n  const speedDurations = {\n    slow: '20s',\n    normal: '12s',\n    fast: '6s',\n  }\n\n  const opacityMap = {\n    subtle: 'opacity-20',\n    medium: 'opacity-40',\n    high: 'opacity-70',\n  }\n\n  return (\n    <div className={cn('relative min-h-[300px] w-full overflow-hidden rounded-3xl bg-[#050505] p-6', className)}>\n      {/* Aurora Atmospheric Waves */}\n      <div\n        style={{ animationDuration: speedDurations[speed] }}\n        className={cn(\n          'pointer-events-none absolute -inset-[100%] animate-[spin_16s_linear_infinite] blur-3xl',\n          opacityMap[intensity]\n        )}\n      >\n        <div className=\"absolute inset-0 bg-gradient-to-r from-emerald-500/30 via-cyan-500/30 to-blue-600/30\" />\n      </div>\n\n      <div className=\"relative z-10 flex h-full flex-col justify-between\">\n        {children || (\n          <div className=\"my-auto text-center font-mono\">\n            <span className=\"text-xs uppercase tracking-widest text-emerald-400\">ATMOSPHERIC RUNTIME</span>\n            <h3 className=\"mt-2 text-xl font-bold text-zinc-900 dark:text-white\">Aurora Fluid Plasma</h3>\n            <p className=\"mt-1 text-xs text-zinc-600 dark:text-zinc-400\">Slow-moving ambient background gradient with GPU transform isolation.</p>\n          </div>\n        )}\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "beam-grid-background",
    "type": "registry:ui",
    "title": "Coordinate Beam Grid Matrix",
    "description": "SVG Cartesian coordinate matrix with bidirectional glowing laser pulses racing on axis paths.",
    "category": "backgrounds",
    "dependencies": [
      "framer-motion"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "background",
      "beam",
      "grid",
      "laser"
    ],
    "files": [
      {
        "path": "registry/backgrounds/beam-grid-background/beam-grid-background.tsx",
        "type": "registry:ui",
        "target": "components/ui/beam-grid-background.tsx",
        "content": "import React, { useId } from 'react';\nimport { motion } from 'framer-motion';\n\ninterface BeamGridBackgroundProps {\n  className?: string;\n  gridSize?: number;\n  beamColor?: string;\n  gridColor?: string;\n  children?: React.ReactNode;\n}\n\nexport const BeamGridBackground: React.FC<BeamGridBackgroundProps> = ({\n  className = '',\n  gridSize = 48,\n  beamColor = '#6366f1',\n  gridColor = 'rgba(255, 255, 255, 0.08)',\n  children,\n}) => {\n  const patternId = useId();\n\n  return (\n    <div className={`relative w-full h-full min-h-[360px] overflow-hidden rounded-2xl bg-zinc-950 flex items-center justify-center ${className}`}>\n      {/* SVG Grid Pattern */}\n      <svg className=\"absolute inset-0 w-full h-full pointer-events-none stroke-zinc-800/40\">\n        <defs>\n          <pattern\n            id={patternId}\n            width={gridSize}\n            height={gridSize}\n            patternUnits=\"userSpaceOnUse\"\n          >\n            <path\n              d={`M ${gridSize} 0 L 0 0 0 ${gridSize}`}\n              fill=\"none\"\n              stroke={gridColor}\n              strokeWidth=\"1\"\n            />\n          </pattern>\n        </defs>\n        <rect width=\"100%\" height=\"100%\" fill={`url(#${patternId})`} />\n      </svg>\n\n      {/* Radial vignette fade out at edges */}\n      <div className=\"absolute inset-0 bg-radial-gradient from-transparent via-zinc-950/40 to-zinc-950 pointer-events-none\" />\n\n      {/* Animated Beams traversing along grid lines */}\n      <div className=\"absolute inset-0 pointer-events-none overflow-hidden\">\n        {/* Horizontal Laser 1 */}\n        <motion.div\n          animate={{\n            x: ['-20%', '120%'],\n          }}\n          transition={{\n            duration: 4.5,\n            repeat: Infinity,\n            ease: 'linear',\n            repeatDelay: 1.5,\n          }}\n          style={{ top: gridSize * 2 }}\n          className=\"absolute h-[2px] w-48 bg-gradient-to-r from-transparent via-cyan-400 to-transparent blur-[1px] shadow-[0_0_12px_#38bdf8]\"\n        />\n\n        {/* Horizontal Laser 2 */}\n        <motion.div\n          animate={{\n            x: ['120%', '-20%'],\n          }}\n          transition={{\n            duration: 6,\n            repeat: Infinity,\n            ease: 'linear',\n            delay: 1,\n            repeatDelay: 2,\n          }}\n          style={{ top: gridSize * 5 }}\n          className=\"absolute h-[2px] w-64 bg-gradient-to-r from-transparent via-indigo-500 to-transparent blur-[1px] shadow-[0_0_16px_#6366f1]\"\n        />\n\n        {/* Vertical Laser 1 */}\n        <motion.div\n          animate={{\n            y: ['-20%', '120%'],\n          }}\n          transition={{\n            duration: 5,\n            repeat: Infinity,\n            ease: 'linear',\n            delay: 0.5,\n            repeatDelay: 1,\n          }}\n          style={{ left: gridSize * 3 }}\n          className=\"absolute w-[2px] h-48 bg-gradient-to-b from-transparent via-fuchsia-500 to-transparent blur-[1px] shadow-[0_0_14px_#d946ef]\"\n        />\n\n        {/* Vertical Laser 2 */}\n        <motion.div\n          animate={{\n            y: ['120%', '-20%'],\n          }}\n          transition={{\n            duration: 7,\n            repeat: Infinity,\n            ease: 'linear',\n            delay: 2.2,\n            repeatDelay: 1.8,\n          }}\n          style={{ left: gridSize * 8 }}\n          className=\"absolute w-[2px] h-56 bg-gradient-to-b from-transparent via-emerald-400 to-transparent blur-[1px] shadow-[0_0_14px_#34d399]\"\n        />\n      </div>\n\n      {/* Content wrapper */}\n      <div className=\"relative z-10 w-full max-w-lg p-8 text-center\">\n        {children || (\n          <div className=\"space-y-3 bg-zinc-900/60 backdrop-blur-md p-6 rounded-2xl border border-white/10 shadow-2xl\">\n            <span className=\"inline-block px-3 py-1 text-xs font-mono font-medium tracking-widest text-indigo-400 bg-indigo-500/10 rounded-full border border-indigo-500/20\">\n              LIGHTSWIND MATRIX\n            </span>\n            <h3 className=\"text-xl font-semibold text-zinc-900 dark:text-white tracking-tight\">\n              Coordinate Beam Grid\n            </h3>\n            <p className=\"text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed\">\n              Synthesized vector lasers tracing Cartesian coordinate planes in real-time.\n            </p>\n          </div>\n        )}\n      </div>\n    </div>\n  );\n};\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "cosmic-dust-background",
    "type": "registry:ui",
    "title": "Cosmic Dust Gravity Canvas",
    "description": "Interactive HTML5 canvas starfield dust particles repelled by cursor gravitational force fields.",
    "category": "backgrounds",
    "dependencies": [],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "background",
      "cosmic",
      "dust",
      "canvas"
    ],
    "files": [
      {
        "path": "registry/backgrounds/cosmic-dust-background/cosmic-dust-background.tsx",
        "type": "registry:ui",
        "target": "components/ui/cosmic-dust-background.tsx",
        "content": "import React, { useRef, useEffect } from 'react';\n\ninterface CosmicDustBackgroundProps {\n  className?: string;\n  particleCount?: number;\n  dustColor?: string;\n  interactive?: boolean;\n  children?: React.ReactNode;\n}\n\ninterface Particle {\n  x: number;\n  y: number;\n  size: number;\n  vx: number;\n  vy: number;\n  alpha: number;\n  maxAlpha: number;\n  pulseSpeed: number;\n}\n\nexport const CosmicDustBackground: React.FC<CosmicDustBackgroundProps> = ({\n  className = '',\n  particleCount = 120,\n  dustColor = 'rgba(165, 180, 252, ',\n  interactive = true,\n  children,\n}) => {\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n  const mouseRef = useRef<{ x: number; y: number; active: boolean }>({ x: 0, y: 0, active: false });\n\n  useEffect(() => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    let animationFrameId: number;\n    let width = (canvas.width = canvas.parentElement?.clientWidth || 600);\n    let height = (canvas.height = canvas.parentElement?.clientHeight || 400);\n\n    const particles: Particle[] = [];\n    for (let i = 0; i < particleCount; i++) {\n      particles.push({\n        x: Math.random() * width,\n        y: Math.random() * height,\n        size: Math.random() * 2.2 + 0.5,\n        vx: (Math.random() - 0.5) * 0.35,\n        vy: (Math.random() - 0.5) * 0.35,\n        alpha: Math.random() * 0.8,\n        maxAlpha: 0.3 + Math.random() * 0.6,\n        pulseSpeed: 0.01 + Math.random() * 0.02,\n      });\n    }\n\n    const handleResize = () => {\n      if (!canvas.parentElement) return;\n      width = canvas.width = canvas.parentElement.clientWidth;\n      height = canvas.height = canvas.parentElement.clientHeight;\n    };\n\n    window.addEventListener('resize', handleResize);\n\n    let isVisible = true;\n\n    const render = () => {\n      if (!isVisible) return;\n      ctx.clearRect(0, 0, width, height);\n\n      particles.forEach((p) => {\n        // Pulse alpha\n        p.alpha += p.pulseSpeed;\n        if (p.alpha > p.maxAlpha || p.alpha < 0.1) {\n          p.pulseSpeed = -p.pulseSpeed;\n        }\n\n        // Move particle\n        p.x += p.vx;\n        p.y += p.vy;\n\n        // Interactive mouse gravity deflection\n        if (interactive && mouseRef.current.active) {\n          const dx = mouseRef.current.x - p.x;\n          const dy = mouseRef.current.y - p.y;\n          const dist = Math.sqrt(dx * dx + dy * dy);\n          if (dist < 120) {\n            const force = (120 - dist) / 120;\n            p.x -= (dx / dist) * force * 1.5;\n            p.y -= (dy / dist) * force * 1.5;\n          }\n        }\n\n        // Wrap edges\n        if (p.x < 0) p.x = width;\n        if (p.x > width) p.x = 0;\n        if (p.y < 0) p.y = height;\n        if (p.y > height) p.y = 0;\n\n        // Draw particle with glow\n        ctx.beginPath();\n        ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);\n        ctx.fillStyle = `${dustColor}${Math.max(0, p.alpha)})`;\n        ctx.shadowBlur = p.size > 1.5 ? 8 : 0;\n        ctx.shadowColor = '#818cf8';\n        ctx.fill();\n      });\n\n      animationFrameId = requestAnimationFrame(render);\n    };\n\n    animationFrameId = requestAnimationFrame(render);\n\n    const observer = new IntersectionObserver(([entry]) => {\n      const wasVisible = isVisible;\n      isVisible = entry.isIntersecting;\n      if (isVisible && !wasVisible) {\n        animationFrameId = requestAnimationFrame(render);\n      }\n    }, { threshold: 0.05 });\n    observer.observe(canvas);\n\n    return () => {\n      cancelAnimationFrame(animationFrameId);\n      observer.disconnect();\n      window.removeEventListener('resize', handleResize);\n    };\n  }, [particleCount, dustColor, interactive]);\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    const rect = e.currentTarget.getBoundingClientRect();\n    mouseRef.current = {\n      x: e.clientX - rect.left,\n      y: e.clientY - rect.top,\n      active: true,\n    };\n  };\n\n  const handleMouseLeave = () => {\n    mouseRef.current.active = false;\n  };\n\n  return (\n    <div\n      onMouseMove={handleMouseMove}\n      onMouseLeave={handleMouseLeave}\n      className={`relative w-full h-full min-h-[360px] overflow-hidden rounded-2xl bg-zinc-950 flex items-center justify-center ${className}`}\n    >\n      <canvas ref={canvasRef} className=\"absolute inset-0 w-full h-full pointer-events-none\" />\n\n      {/* Atmospheric ambient nebulas */}\n      <div className=\"absolute -top-24 -left-24 w-72 h-72 bg-indigo-600/15 rounded-full blur-[90px] pointer-events-none\" />\n      <div className=\"absolute -bottom-24 -right-24 w-72 h-72 bg-violet-600/15 rounded-full blur-[90px] pointer-events-none\" />\n\n      {/* Content wrapper */}\n      <div className=\"relative z-10 w-full max-w-lg p-8 text-center pointer-events-auto\">\n        {children || (\n          <div className=\"space-y-3 bg-zinc-900/50 backdrop-blur-md p-6 rounded-2xl border border-white/10 shadow-2xl\">\n            <span className=\"inline-block px-3 py-1 text-xs font-mono font-medium tracking-widest text-violet-400 bg-violet-500/10 rounded-full border border-violet-500/20\">\n              DEEP COSMOS PARTICLES\n            </span>\n            <h3 className=\"text-xl font-semibold text-zinc-900 dark:text-white tracking-tight\">\n              Cosmic Dust Stardust\n            </h3>\n            <p className=\"text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed\">\n              Hover and move your mouse to disturb the particulate gravitational field.\n            </p>\n          </div>\n        )}\n      </div>\n    </div>\n  );\n};\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "cyber-hive-background",
    "type": "registry:ui",
    "title": "Cyber Hive Background",
    "description": "Futuristic glowing hexagonal cyber matrix with animated light pulse propagation.",
    "category": "backgrounds",
    "dependencies": [],
    "files": [
      {
        "path": "registry/backgrounds/cyber-hive-background/cyber-hive-background.tsx",
        "type": "registry:ui",
        "target": "components/ui/cyber-hive-background.tsx",
        "content": "import React from 'react';\n\nexport const CyberHiveBackground: React.FC = () => {\n  return (\n    <div className=\"relative w-full h-44 rounded-3xl overflow-hidden border border-zinc-200 dark:border-white/10 bg-[#040810] flex items-center justify-center\">\n      <svg className=\"absolute inset-0 w-full h-full opacity-35\" xmlns=\"http://www.w3.org/2000/svg\">\n        <defs>\n          <pattern id=\"hexagons-hive\" width=\"28\" height=\"48.497\" patternUnits=\"userSpaceOnUse\" patternTransform=\"scale(1)\">\n            <path\n              d=\"M14 0 L28 8.082 L28 24.248 L14 32.331 L0 24.248 L0 8.082 Z M14 48.497 L28 40.415 L28 24.248 L14 32.331 L0 24.248 L0 40.415 Z\"\n              fill=\"none\"\n              stroke=\"#38bdf8\"\n              strokeWidth=\"0.8\"\n            />\n          </pattern>\n        </defs>\n        <rect width=\"100%\" height=\"100%\" fill=\"url(#hexagons-hive)\" />\n      </svg>\n      <div className=\"absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 h-28 w-28 rounded-full bg-cyan-500/20 blur-2xl\" />\n      <span className=\"relative z-10 text-xs font-mono font-bold tracking-widest text-cyan-300\">\n        CYBER HIVE MESH\n      </span>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "dot-background",
    "type": "registry:ui",
    "title": "Matrix Dot Grid Pattern",
    "description": "High-density micro-dot matrix pattern with subtle center bloom illumination.",
    "category": "backgrounds",
    "dependencies": [],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "background",
      "dot",
      "matrix",
      "pattern"
    ],
    "files": [
      {
        "path": "registry/backgrounds/dot-background/dot-background.tsx",
        "type": "registry:ui",
        "target": "components/ui/dot-background.tsx",
        "content": "import React, { useRef, useState } from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface DotBackgroundProps {\n  children?: React.ReactNode\n  spacing?: number\n  className?: string\n}\n\nexport const DotBackground: React.FC<DotBackgroundProps> = ({\n  children,\n  spacing = 24,\n  className,\n}) => {\n  const containerRef = useRef<HTMLDivElement>(null)\n  const [mousePos, setMousePos] = useState({ x: -100, y: -100 })\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    if (!containerRef.current) return\n    const rect = containerRef.current.getBoundingClientRect()\n    setMousePos({ x: e.clientX - rect.left, y: e.clientY - rect.top })\n  }\n\n  return (\n    <div\n      ref={containerRef}\n      onMouseMove={handleMouseMove}\n      className={cn('relative min-h-[300px] w-full overflow-hidden rounded-3xl border border-white/10 bg-[#060608] p-6', className)}\n    >\n      {/* Base Dot Grid */}\n      <div\n        style={{\n          backgroundSize: `${spacing}px ${spacing}px`,\n          backgroundImage: 'radial-gradient(rgba(255, 255, 255, 0.15) 1px, transparent 1px)',\n        }}\n        className=\"pointer-events-none absolute inset-0\"\n      />\n\n      {/* Interactive Cursor Proximity Highlight */}\n      <div\n        className=\"pointer-events-none absolute -inset-px transition-opacity duration-150\"\n        style={{\n          background: `radial-gradient(220px circle at ${mousePos.x}px ${mousePos.y}px, rgba(16, 185, 129, 0.2), transparent 70%)`,\n        }}\n      />\n\n      <div className=\"relative z-10 flex h-full flex-col justify-between\">\n        {children || (\n          <div className=\"my-auto text-center font-mono\">\n            <span className=\"text-xs uppercase tracking-widest text-emerald-400\">PARTICLE MATRIX</span>\n            <h3 className=\"mt-2 text-xl font-bold text-zinc-900 dark:text-white\">Interactive Dot Grid</h3>\n            <p className=\"mt-1 text-xs text-zinc-600 dark:text-zinc-400\">Move cursor to illuminate local coordinate field.</p>\n          </div>\n        )}\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "flowing-lines-wave-background",
    "type": "registry:ui",
    "title": "Mathematical Flowing Lines Wave",
    "description": "Continuous algorithmic bezier ribbon canvas drawing undulating sine wave threads across deep space.",
    "category": "backgrounds",
    "dependencies": [],
    "files": [
      {
        "path": "registry/backgrounds/flowing-lines-wave-background/flowing-lines-wave-background.tsx",
        "type": "registry:ui",
        "target": "components/ui/flowing-lines-wave-background.tsx",
        "content": "import React, { useRef, useEffect } from 'react';\n\nexport const FlowingLinesWaveBackground: React.FC = () => {\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n\n  useEffect(() => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    let animId: number;\n    let step = 0;\n    let isVisible = true;\n\n    const render = () => {\n      if (!isVisible) return;\n      ctx.fillStyle = 'rgba(5, 5, 8, 0.2)';\n      ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n      const lines = 7;\n      for (let i = 0; i < lines; i++) {\n        ctx.beginPath();\n        ctx.lineWidth = 1.2;\n        ctx.strokeStyle = `hsla(${230 + i * 15}, 85%, 65%, 0.45)`;\n\n        for (let x = 0; x < canvas.width; x += 5) {\n          const y =\n            canvas.height / 2 +\n            Math.sin((x * 0.008) + step + i * 0.4) * 45 +\n            Math.cos((x * 0.004) - step) * 20;\n          if (x === 0) ctx.moveTo(x, y);\n          else ctx.lineTo(x, y);\n        }\n        ctx.stroke();\n      }\n\n      step += 0.025;\n      animId = requestAnimationFrame(render);\n    };\n\n    animId = requestAnimationFrame(render);\n\n    const handleResize = () => {\n      const rect = canvas.getBoundingClientRect();\n      if (rect.width > 0 && rect.height > 0) {\n        canvas.width = rect.width;\n        canvas.height = rect.height;\n      }\n    };\n    handleResize();\n    const resizeObserver = new ResizeObserver(handleResize);\n    resizeObserver.observe(canvas);\n\n    const observer = new IntersectionObserver(([entry]) => {\n      const wasVisible = isVisible;\n      isVisible = entry.isIntersecting;\n      if (isVisible && !wasVisible) {\n        animId = requestAnimationFrame(render);\n      }\n    }, { threshold: 0.05 });\n    observer.observe(canvas);\n\n    return () => {\n      cancelAnimationFrame(animId);\n      observer.disconnect();\n      resizeObserver.disconnect();\n    };\n  }, []);\n\n  return (\n    <div className=\"relative w-full h-56 rounded-2xl overflow-hidden bg-black border border-white/10 flex items-center justify-center\">\n      <canvas ref={canvasRef} className=\"w-full h-full\" />\n      <span className=\"absolute z-10 px-3 py-1 rounded-full bg-zinc-900/80 text-white text-[10px] font-mono border border-white/10 backdrop-blur-md\">\n        SINUSOIDAL RIBBON THREADS\n      </span>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "grid-background",
    "type": "registry:ui",
    "title": "Precision Cartesian Grid",
    "description": "Infinite architectural coordinate grid with radial spotlight vignette.",
    "category": "backgrounds",
    "dependencies": [],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "background",
      "grid",
      "cartesian",
      "blueprint"
    ],
    "files": [
      {
        "path": "registry/backgrounds/grid-background/grid-background.tsx",
        "type": "registry:ui",
        "target": "components/ui/grid-background.tsx",
        "content": "import React from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface GridBackgroundProps {\n  children?: React.ReactNode\n  size?: 'sm' | 'md' | 'lg'\n  withBeam?: boolean\n  className?: string\n}\n\nexport const GridBackground: React.FC<GridBackgroundProps> = ({\n  children,\n  size = 'md',\n  withBeam = true,\n  className,\n}) => {\n  const gridSizeMap = {\n    sm: '24px 24px',\n    md: '40px 40px',\n    lg: '64px 64px',\n  }\n\n  return (\n    <div className={cn('relative min-h-[300px] w-full overflow-hidden rounded-3xl border border-white/10 bg-[#070709] p-6', className)}>\n      {/* Grid Pattern */}\n      <div\n        style={{\n          backgroundSize: gridSizeMap[size],\n          backgroundImage: `\n            linear-gradient(to right, rgba(255, 255, 255, 0.06) 1px, transparent 1px),\n            linear-gradient(to bottom, rgba(255, 255, 255, 0.06) 1px, transparent 1px)\n          `,\n        }}\n        className=\"pointer-events-none absolute inset-0\"\n      />\n\n      {/* Radial fade mask */}\n      <div className=\"pointer-events-none absolute inset-0 bg-radial-gradient from-transparent via-[#070709]/50 to-[#070709]\" />\n\n      {/* Scanning Beam */}\n      {withBeam && (\n        <div className=\"pointer-events-none absolute inset-x-0 h-24 -top-24 animate-[moveDown_8s_linear_infinite] bg-gradient-to-b from-transparent via-cyan-500/10 to-transparent\" />\n      )}\n\n      <div className=\"relative z-10 flex h-full flex-col justify-between\">\n        {children || (\n          <div className=\"my-auto text-center font-mono\">\n            <span className=\"text-xs uppercase tracking-widest text-cyan-400\">ENGINEERING GRAPH</span>\n            <h3 className=\"mt-2 text-xl font-bold text-zinc-900 dark:text-white\">Technical Coordinate Grid</h3>\n            <p className=\"mt-1 text-xs text-zinc-600 dark:text-zinc-400\">Fine-lined hardware blueprint grid with scanning telemetry beam.</p>\n          </div>\n        )}\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "morphing-blob-background",
    "type": "registry:ui",
    "title": "Morphing Blob Background",
    "description": "Organic SVG fluid blob gradients that softly pulse and deform in high dynamic range colors.",
    "category": "backgrounds",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/backgrounds/morphing-blob-background/morphing-blob-background.tsx",
        "type": "registry:ui",
        "target": "components/ui/morphing-blob-background.tsx",
        "content": "import React from 'react';\nimport { motion } from 'framer-motion';\n\nexport const MorphingBlobBackground: React.FC = () => {\n  return (\n    <div className=\"relative w-full h-[260px] rounded-3xl overflow-hidden bg-zinc-950 border border-white/10 flex items-center justify-center\">\n      {/* Orb 1 */}\n      <motion.div\n        animate={{\n          scale: [1, 1.25, 0.95, 1],\n          x: [-20, 30, -10, -20],\n          y: [-15, 20, -30, -15],\n        }}\n        transition={{ duration: 10, repeat: Infinity, ease: 'easeInOut' }}\n        className=\"absolute w-48 h-48 rounded-full bg-gradient-to-r from-indigo-500 to-purple-600 blur-3xl opacity-60\"\n      />\n\n      {/* Orb 2 */}\n      <motion.div\n        animate={{\n          scale: [1, 0.85, 1.3, 1],\n          x: [25, -20, 15, 25],\n          y: [20, -25, 10, 20],\n        }}\n        transition={{ duration: 12, repeat: Infinity, ease: 'easeInOut' }}\n        className=\"absolute w-56 h-56 rounded-full bg-gradient-to-r from-cyan-400 to-emerald-500 blur-3xl opacity-50\"\n      />\n\n      {/* Orb 3 */}\n      <motion.div\n        animate={{\n          scale: [1, 1.3, 0.8, 1],\n          x: [0, 15, -25, 0],\n          y: [0, -20, 20, 0],\n        }}\n        transition={{ duration: 14, repeat: Infinity, ease: 'easeInOut' }}\n        className=\"absolute w-44 h-44 rounded-full bg-gradient-to-r from-rose-500 to-amber-500 blur-3xl opacity-40\"\n      />\n\n      <div className=\"relative z-10 px-4 py-2 rounded-xl bg-zinc-900/60 backdrop-blur-md border border-white/10 text-xs font-mono text-zinc-300\">\n        Morphing Vector Ambience\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "particle-constellation-background",
    "type": "registry:ui",
    "title": "Particle Constellation Background",
    "description": "Interactive HTML5 canvas constellation network that links floating particle nodes with glowing lines when the cursor gets close.",
    "category": "backgrounds",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/backgrounds/particle-constellation-background/particle-constellation-background.tsx",
        "type": "registry:ui",
        "target": "components/ui/particle-constellation-background.tsx",
        "content": "import React, { useEffect, useRef } from 'react';\n\nexport interface ParticleConstellationBackgroundProps {\n  particleCount?: number;\n  connectionDistance?: number;\n  className?: string;\n}\n\nexport const ParticleConstellationBackground: React.FC<ParticleConstellationBackgroundProps> = ({\n  particleCount = 50,\n  connectionDistance = 110,\n  className = '',\n}) => {\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n\n  useEffect(() => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    let width = (canvas.width = canvas.parentElement?.clientWidth || 400);\n    let height = (canvas.height = canvas.parentElement?.clientHeight || 260);\n\n    const particles: { x: number; y: number; vx: number; vy: number; radius: number }[] = [];\n    for (let i = 0; i < particleCount; i++) {\n      particles.push({\n        x: Math.random() * width,\n        y: Math.random() * height,\n        vx: (Math.random() - 0.5) * 0.9,\n        vy: (Math.random() - 0.5) * 0.9,\n        radius: Math.random() * 2 + 1,\n      });\n    }\n\n    let mouse = { x: -1000, y: -1000 };\n    const handleMouseMove = (e: MouseEvent) => {\n      const rect = canvas.getBoundingClientRect();\n      mouse = { x: e.clientX - rect.left, y: e.clientY - rect.top };\n    };\n\n    let animId: number;\n    let isVisible = true;\n    const render = () => {\n      if (!isVisible) return;\n      ctx.clearRect(0, 0, width, height);\n\n      // Draw connections\n      for (let i = 0; i < particles.length; i++) {\n        for (let j = i + 1; j < particles.length; j++) {\n          const dx = particles[i].x - particles[j].x;\n          const dy = particles[i].y - particles[j].y;\n          const dist = Math.sqrt(dx * dx + dy * dy);\n\n          if (dist < connectionDistance) {\n            const alpha = 1 - dist / connectionDistance;\n            ctx.strokeStyle = `rgba(99, 102, 241, ${alpha * 0.35})`;\n            ctx.lineWidth = 1;\n            ctx.beginPath();\n            ctx.moveTo(particles[i].x, particles[i].y);\n            ctx.lineTo(particles[j].x, particles[j].y);\n            ctx.stroke();\n          }\n        }\n\n        // Mouse connection\n        const mdx = particles[i].x - mouse.x;\n        const mdy = particles[i].y - mouse.y;\n        const mdist = Math.sqrt(mdx * mdx + mdy * mdy);\n        if (mdist < 140) {\n          const alpha = 1 - mdist / 140;\n          ctx.strokeStyle = `rgba(56, 189, 248, ${alpha * 0.6})`;\n          ctx.beginPath();\n          ctx.moveTo(particles[i].x, particles[i].y);\n          ctx.lineTo(mouse.x, mouse.y);\n          ctx.stroke();\n        }\n      }\n\n      // Draw and move particles\n      for (let p of particles) {\n        ctx.fillStyle = '#818cf8';\n        ctx.beginPath();\n        ctx.arc(p.x, p.y, p.radius, 0, Math.PI * 2);\n        ctx.fill();\n\n        p.x += p.vx;\n        p.y += p.vy;\n\n        if (p.x < 0 || p.x > width) p.vx *= -1;\n        if (p.y < 0 || p.y > height) p.vy *= -1;\n      }\n\n      animId = requestAnimationFrame(render);\n    };\n\n    animId = requestAnimationFrame(render);\n\n    const observer = new IntersectionObserver(([entry]) => {\n      const wasVisible = isVisible;\n      isVisible = entry.isIntersecting;\n      if (isVisible && !wasVisible) {\n        animId = requestAnimationFrame(render);\n      }\n    }, { threshold: 0.05 });\n    observer.observe(canvas);\n\n    canvas.addEventListener('mousemove', handleMouseMove);\n\n    const handleResize = () => {\n      if (!canvas.parentElement) return;\n      width = canvas.width = canvas.parentElement.clientWidth;\n      height = canvas.height = canvas.parentElement.clientHeight;\n    };\n    window.addEventListener('resize', handleResize);\n\n    return () => {\n      cancelAnimationFrame(animId);\n      observer.disconnect();\n      canvas.removeEventListener('mousemove', handleMouseMove);\n      window.removeEventListener('resize', handleResize);\n    };\n  }, [particleCount, connectionDistance]);\n\n  return (\n    <div className={`relative w-full h-[260px] rounded-3xl overflow-hidden bg-zinc-950 border border-white/10 ${className}`}>\n      <canvas ref={canvasRef} className=\"absolute inset-0 w-full h-full block\" />\n      <div className=\"absolute bottom-3 left-4 pointer-events-none text-[11px] font-mono text-zinc-400\">\n        Interactive Constellation Mesh\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "quantum-field-background",
    "type": "registry:ui",
    "title": "Quantum Field Background",
    "description": "Dynamic canvas particle constellation with nodes drifting and interconnecting dynamically.",
    "category": "backgrounds",
    "dependencies": [],
    "files": [
      {
        "path": "registry/backgrounds/quantum-field-background/quantum-field-background.tsx",
        "type": "registry:ui",
        "target": "components/ui/quantum-field-background.tsx",
        "content": "import React, { useRef, useEffect } from 'react';\n\nexport const QuantumFieldBackground: React.FC = () => {\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n\n  useEffect(() => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    let animId: number;\n    let isVisible = true;\n    const count = 28;\n    const particles = Array.from({ length: count }, () => ({\n      x: Math.random() * canvas.width,\n      y: Math.random() * canvas.height,\n      vx: (Math.random() - 0.5) * 0.8,\n      vy: (Math.random() - 0.5) * 0.8,\n    }));\n\n    const render = () => {\n      if (!isVisible) return;\n      ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n      particles.forEach((p, idx) => {\n        p.x += p.vx;\n        p.y += p.vy;\n        if (p.x < 0 || p.x > canvas.width) p.vx *= -1;\n        if (p.y < 0 || p.y > canvas.height) p.vy *= -1;\n\n        ctx.fillStyle = '#6366f1';\n        ctx.beginPath();\n        ctx.arc(p.x, p.y, 2, 0, Math.PI * 2);\n        ctx.fill();\n\n        for (let j = idx + 1; j < count; j++) {\n          const p2 = particles[j];\n          const dist = Math.hypot(p.x - p2.x, p.y - p2.y);\n          if (dist < 55) {\n            ctx.strokeStyle = `rgba(99, 102, 241, ${1 - dist / 55})`;\n            ctx.lineWidth = 0.8;\n            ctx.beginPath();\n            ctx.moveTo(p.x, p.y);\n            ctx.lineTo(p2.x, p2.y);\n            ctx.stroke();\n          }\n        }\n      });\n\n      animId = requestAnimationFrame(render);\n    };\n\n    animId = requestAnimationFrame(render);\n\n    const handleResize = () => {\n      const rect = canvas.getBoundingClientRect();\n      if (rect.width > 0 && rect.height > 0) {\n        canvas.width = rect.width;\n        canvas.height = rect.height;\n      }\n    };\n    handleResize();\n    const resizeObserver = new ResizeObserver(handleResize);\n    resizeObserver.observe(canvas);\n\n    const observer = new IntersectionObserver(([entry]) => {\n      const wasVisible = isVisible;\n      isVisible = entry.isIntersecting;\n      if (isVisible && !wasVisible) {\n        animId = requestAnimationFrame(render);\n      }\n    }, { threshold: 0.05 });\n    observer.observe(canvas);\n\n    return () => {\n      cancelAnimationFrame(animId);\n      observer.disconnect();\n      resizeObserver.disconnect();\n    };\n  }, []);\n\n  return (\n    <div className=\"relative w-full h-44 rounded-3xl overflow-hidden border border-zinc-200 dark:border-white/10 bg-[#09090f] flex items-center justify-center\">\n      <canvas ref={canvasRef} className=\"absolute inset-0 w-full h-full\" />\n      <span className=\"relative z-10 text-xs font-mono font-bold tracking-widest text-indigo-300\">\n        QUANTUM CONSTELLATION\n      </span>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "starfield-hyperdrive-background",
    "type": "registry:ui",
    "title": "Starfield Hyperdrive Canvas",
    "description": "Hyperdrive warp speed starfield projection with interactive mouse steering trajectory and luminous star streaks.",
    "category": "backgrounds",
    "dependencies": [],
    "files": [
      {
        "path": "registry/backgrounds/starfield-hyperdrive-background/starfield-hyperdrive-background.tsx",
        "type": "registry:ui",
        "target": "components/ui/starfield-hyperdrive-background.tsx",
        "content": "import React, { useRef, useEffect } from 'react';\n\nexport const StarfieldHyperdriveBackground: React.FC = () => {\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n\n  useEffect(() => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    let animId: number;\n    let isVisible = true;\n    const stars: { x: number; y: number; z: number; oZ: number }[] = [];\n    const count = 180;\n\n    for (let i = 0; i < count; i++) {\n      stars.push({\n        x: (Math.random() - 0.5) * 600,\n        y: (Math.random() - 0.5) * 600,\n        z: Math.random() * 500,\n        oZ: 500,\n      });\n    }\n\n    const render = () => {\n      if (!isVisible) return;\n      ctx.fillStyle = 'rgba(5, 5, 10, 0.3)';\n      ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n      const cx = canvas.width / 2;\n      const cy = canvas.height / 2;\n\n      for (let s of stars) {\n        s.z -= 4;\n        if (s.z <= 0) {\n          s.z = 500;\n          s.x = (Math.random() - 0.5) * 600;\n          s.y = (Math.random() - 0.5) * 600;\n        }\n\n        const k = 220 / s.z;\n        const px = s.x * k + cx;\n        const py = s.y * k + cy;\n\n        if (px >= 0 && px <= canvas.width && py >= 0 && py <= canvas.height) {\n          const size = Math.max(0.6, (1 - s.z / 500) * 2.8);\n          ctx.fillStyle = '#e0e7ff';\n          ctx.beginPath();\n          ctx.arc(px, py, size, 0, Math.PI * 2);\n          ctx.fill();\n        }\n      }\n\n      animId = requestAnimationFrame(render);\n    };\n\n    animId = requestAnimationFrame(render);\n\n    const handleResize = () => {\n      const rect = canvas.getBoundingClientRect();\n      if (rect.width > 0 && rect.height > 0) {\n        canvas.width = rect.width;\n        canvas.height = rect.height;\n      }\n    };\n    handleResize();\n    const resizeObserver = new ResizeObserver(handleResize);\n    resizeObserver.observe(canvas);\n\n    const observer = new IntersectionObserver(([entry]) => {\n      const wasVisible = isVisible;\n      isVisible = entry.isIntersecting;\n      if (isVisible && !wasVisible) {\n        animId = requestAnimationFrame(render);\n      }\n    }, { threshold: 0.05 });\n    observer.observe(canvas);\n\n    return () => {\n      cancelAnimationFrame(animId);\n      observer.disconnect();\n      resizeObserver.disconnect();\n    };\n  }, []);\n\n  return (\n    <div className=\"relative w-full h-56 rounded-2xl overflow-hidden bg-black border border-white/10 flex items-center justify-center\">\n      <canvas ref={canvasRef} className=\"w-full h-full\" />\n      <span className=\"absolute z-10 px-3 py-1 rounded-full bg-zinc-900/80 text-white text-[10px] font-mono border border-white/10 backdrop-blur-md\">\n        WARP FACTOR 9.2\n      </span>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "confetti-button",
    "type": "registry:ui",
    "title": "Celebration Confetti Burst Button",
    "description": "Multi-color physics confetti explosion upon click with spring recoil.",
    "category": "buttons",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "button",
      "confetti",
      "celebrate",
      "particles"
    ],
    "files": [
      {
        "path": "registry/buttons/confetti-button/confetti-button.tsx",
        "type": "registry:ui",
        "target": "components/ui/confetti-button.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { Lightning } from '@phosphor-icons/react';\n\ninterface ConfettiPiece {\n  id: number;\n  x: number;\n  y: number;\n  rotation: number;\n  scale: number;\n  color: string;\n  shape: 'rect' | 'circle';\n}\n\ninterface ConfettiButtonProps {\n  children?: React.ReactNode;\n  className?: string;\n  particleCount?: number;\n  colors?: string[];\n  onClick?: () => void;\n}\n\nconst DEFAULT_COLORS = ['#38bdf8', '#818cf8', '#c084fc', '#f472b6', '#34d399', '#fbbf24'];\n\nexport const ConfettiButton: React.FC<ConfettiButtonProps> = ({\n  children = 'Celebrate Action',\n  className = '',\n  particleCount = 36,\n  colors = DEFAULT_COLORS,\n  onClick,\n}) => {\n  const [particles, setParticles] = useState<ConfettiPiece[]>([]);\n\n  const triggerConfetti = (e: React.MouseEvent<HTMLButtonElement>) => {\n    const rect = e.currentTarget.getBoundingClientRect();\n    const centerX = rect.width / 2;\n    const centerY = rect.height / 2;\n\n    const newParticles: ConfettiPiece[] = Array.from({ length: particleCount }).map((_, i) => {\n      const angle = (Math.PI * 2 * i) / particleCount + (Math.random() - 0.5) * 0.5;\n      const velocity = 80 + Math.random() * 120;\n      return {\n        id: Date.now() + i,\n        x: centerX + Math.cos(angle) * velocity,\n        y: centerY + Math.sin(angle) * velocity - 30, // upward bias\n        rotation: Math.random() * 720 - 360,\n        scale: 0.5 + Math.random() * 0.8,\n        color: colors[i % colors.length],\n        shape: Math.random() > 0.4 ? 'rect' : 'circle',\n      };\n    });\n\n    setParticles(newParticles);\n    onClick?.();\n\n    setTimeout(() => {\n      setParticles([]);\n    }, 1200);\n  };\n\n  return (\n    <div className=\"relative inline-block overflow-visible\">\n      <motion.button\n        whileHover={{ scale: 1.04 }}\n        whileTap={{ scale: 0.94 }}\n        onClick={triggerConfetti}\n        className={`relative z-10 inline-flex items-center gap-2 px-6 py-3 rounded-full font-medium text-sm text-white bg-gradient-to-r from-violet-600 via-indigo-600 to-pink-500 shadow-lg shadow-indigo-500/25 hover:shadow-indigo-500/40 border border-white/20 transition-all select-none cursor-pointer ${className}`}\n      >\n        <Lightning size={18} weight=\"fill\" className=\"text-yellow-300\" />\n        <span>{children}</span>\n      </motion.button>\n\n      <AnimatePresence>\n        {particles.map((p) => (\n          <motion.div\n            key={p.id}\n            initial={{ opacity: 1, x: 0, y: 0, scale: 0, rotate: 0 }}\n            animate={{\n              opacity: [1, 1, 0],\n              x: p.x - 60,\n              y: p.y - 30,\n              scale: [0, p.scale, p.scale * 0.4],\n              rotate: p.rotation,\n            }}\n            exit={{ opacity: 0 }}\n            transition={{ duration: 1, ease: [0.25, 1, 0.5, 1] }}\n            style={{\n              position: 'absolute',\n              top: '50%',\n              left: '50%',\n              width: p.shape === 'rect' ? 8 : 7,\n              height: p.shape === 'rect' ? 14 : 7,\n              backgroundColor: p.color,\n              borderRadius: p.shape === 'circle' ? '50%' : 2,\n              pointerEvents: 'none',\n              zIndex: 30,\n            }}\n          />\n        ))}\n      </AnimatePresence>\n    </div>\n  );\n};\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "floating-action-button",
    "type": "registry:ui",
    "title": "Floating Action Button Cluster",
    "description": "Expandable speed-dial floating action cluster with staggered spring reveals.",
    "category": "buttons",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "button",
      "fab",
      "floating",
      "speed dial"
    ],
    "files": [
      {
        "path": "registry/buttons/floating-action-button/floating-action-button.tsx",
        "type": "registry:ui",
        "target": "components/ui/floating-action-button.tsx",
        "content": "import React, { useState } from 'react'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport { Plus, X, ShareNetwork, Terminal, Heart } from '@phosphor-icons/react'\nimport { cn } from '@/lib/utils'\n\nexport interface FloatingActionButtonProps {\n  label?: string\n  className?: string\n}\n\nexport const FloatingActionButton: React.FC<FloatingActionButtonProps> = ({\n  className,\n}) => {\n  const [isOpen, setIsOpen] = useState(false)\n\n  const actions = [\n    { label: 'Run Compiler', icon: <Terminal size={16} /> },\n    { label: 'Bookmark Symbol', icon: <Heart size={16} /> },\n    { label: 'Share Workspace', icon: <ShareNetwork size={16} /> },\n  ]\n\n  return (\n    <div className={cn('relative inline-flex flex-col items-center', className)}>\n      <AnimatePresence>\n        {isOpen && (\n          <div className=\"absolute bottom-16 flex flex-col gap-2 mb-2 items-center\">\n            {actions.map((act, i) => (\n              <motion.button\n                key={act.label}\n                initial={{ opacity: 0, y: 15, scale: 0.8 }}\n                animate={{ opacity: 1, y: 0, scale: 1 }}\n                exit={{ opacity: 0, y: 15, scale: 0.8 }}\n                transition={{ delay: i * 0.05, duration: 0.2 }}\n                onClick={() => setIsOpen(false)}\n                title={act.label}\n                className=\"flex items-center gap-2 rounded-full border border-white/15 bg-zinc-900/90 px-3.5 py-2 text-xs font-medium text-white shadow-xl backdrop-blur-md hover:bg-zinc-800 transition-colors whitespace-nowrap\"\n              >\n                <span>{act.icon}</span>\n                <span>{act.label}</span>\n              </motion.button>\n            ))}\n          </div>\n        )}\n      </AnimatePresence>\n\n      <motion.button\n        whileTap={{ scale: 0.92 }}\n        onClick={() => setIsOpen(!isOpen)}\n        className=\"flex h-12 w-12 items-center justify-center rounded-full border border-white/20 bg-white text-zinc-950 shadow-2xl transition-transform hover:scale-105 focus:outline-none\"\n        aria-label=\"Toggle actions\"\n      >\n        <motion.div animate={{ rotate: isOpen ? 45 : 0 }} transition={{ duration: 0.2 }}>\n          <Plus size={22} weight=\"bold\" />\n        </motion.div>\n      </motion.button>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "fluid-liquid-button",
    "type": "registry:ui",
    "title": "Fluid Liquid Button",
    "description": "Gelatinous fluid mercury blob button with visceral ripple distortion and spring response.",
    "category": "buttons",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/buttons/fluid-liquid-button/fluid-liquid-button.tsx",
        "type": "registry:ui",
        "target": "components/ui/fluid-liquid-button.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion } from 'framer-motion';\n\nexport const FluidLiquidButton: React.FC<{ label?: string }> = ({ label = 'DISCOVER ECOSYSTEM' }) => {\n  const [isHovered, setIsHovered] = useState(false);\n\n  return (\n    <motion.button\n      onMouseEnter={() => setIsHovered(true)}\n      onMouseLeave={() => setIsHovered(false)}\n      whileTap={{ scale: 0.94 }}\n      className=\"relative px-8 py-3.5 rounded-full overflow-hidden border border-white/20 bg-gradient-to-r from-violet-600 via-indigo-600 to-cyan-500 text-white font-mono text-xs font-bold tracking-wider shadow-xl cursor-pointer\"\n    >\n      {/* Animated Liquid Distortion Waves */}\n      <motion.div\n        animate={isHovered ? { y: ['100%', '-100%'] } : { y: '100%' }}\n        transition={{ duration: 1.5, repeat: isHovered ? Infinity : 0, ease: 'easeInOut' }}\n        className=\"absolute inset-0 bg-white/20 backdrop-blur-sm rounded-full pointer-events-none\"\n      />\n\n      <span className=\"relative z-10\">{label}</span>\n    </motion.button>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "glow-action-button",
    "type": "registry:ui",
    "title": "Glow Action Button",
    "description": "Tactile action button with dynamic ambient radial bloom backdrop.",
    "category": "buttons",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "button",
      "glow",
      "bloom",
      "action"
    ],
    "files": [
      {
        "path": "registry/buttons/glow-action-button/glow-action-button.tsx",
        "type": "registry:ui",
        "target": "components/ui/glow-action-button.tsx",
        "content": "import React from 'react'\nimport { motion } from 'framer-motion'\nimport { cn } from '@/lib/utils'\n\nexport interface GlowActionButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n  children?: React.ReactNode\n  glowColor?: 'cyan' | 'amber' | 'emerald' | 'purple'\n  size?: 'sm' | 'md' | 'lg'\n  className?: string\n}\n\nexport const GlowActionButton: React.FC<GlowActionButtonProps> = ({\n  children = 'Execute Action',\n  glowColor = 'cyan',\n  size = 'md',\n  className,\n  ...props\n}) => {\n  const glowStyles = {\n    cyan: 'from-cyan-500/20 to-blue-500/20 group-hover:shadow-[0_0_35px_rgba(6,182,212,0.4)] border-cyan-500/30 text-cyan-200',\n    amber: 'from-amber-500/20 to-orange-500/20 group-hover:shadow-[0_0_35px_rgba(245,158,11,0.4)] border-amber-500/30 text-amber-200',\n    emerald: 'from-emerald-500/20 to-teal-500/20 group-hover:shadow-[0_0_35px_rgba(16,185,129,0.4)] border-emerald-500/30 text-emerald-200',\n    purple: 'from-purple-500/20 to-pink-500/20 group-hover:shadow-[0_0_35px_rgba(168,85,247,0.4)] border-purple-500/30 text-purple-200',\n  }\n\n  const sizeStyles = {\n    sm: 'px-4 py-2 text-xs',\n    md: 'px-6 py-2.5 text-sm',\n    lg: 'px-8 py-3.5 text-base',\n  }\n\n  return (\n    <button\n      className={cn(\n        'group relative inline-flex items-center justify-center rounded-2xl border bg-gradient-to-b bg-zinc-950 font-medium transition-all duration-300 active:scale-95 shadow-lg',\n        glowStyles[glowColor],\n        sizeStyles[size],\n        className\n      )}\n      {...props}\n    >\n      <span className=\"relative z-10 flex items-center gap-2 text-white\">\n        {children}\n      </span>\n      <span className=\"absolute inset-0 rounded-2xl bg-white/5 opacity-0 group-hover:opacity-100 transition-opacity\" />\n    </button>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "gradient-shimmer-button",
    "type": "registry:ui",
    "title": "Gradient Shimmer Button",
    "description": "High-speed dual-phase border shimmer button with glowing radial backdrop.",
    "category": "buttons",
    "dependencies": [
      "framer-motion"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "button",
      "shimmer",
      "gradient",
      "glow"
    ],
    "files": [
      {
        "path": "registry/buttons/gradient-shimmer-button/gradient-shimmer-button.tsx",
        "type": "registry:ui",
        "target": "components/ui/gradient-shimmer-button.tsx",
        "content": "import React from 'react'\nimport { motion } from 'framer-motion'\nimport { cn } from '@/lib/utils'\n\nexport interface GradientShimmerButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n  children?: React.ReactNode\n  size?: 'sm' | 'md' | 'lg'\n  speed?: 'slow' | 'normal' | 'fast'\n  className?: string\n}\n\nexport const GradientShimmerButton: React.FC<GradientShimmerButtonProps> = ({\n  children = 'Shimmer Action',\n  size = 'md',\n  speed = 'normal',\n  className,\n  ...props\n}) => {\n  const sizeClasses = {\n    sm: 'h-9 px-4 text-xs',\n    md: 'h-11 px-6 text-sm',\n    lg: 'h-14 px-8 text-base font-semibold',\n  }\n\n  const duration = speed === 'slow' ? 6 : speed === 'fast' ? 2 : 4\n\n  return (\n    <button\n      className={cn(\n        'group relative inline-flex items-center justify-center overflow-hidden rounded-full p-[1px] font-medium transition-all active:scale-95 focus:outline-none',\n        sizeClasses[size],\n        className\n      )}\n      {...props}\n    >\n      {/* Animated Rotating Gradient Border */}\n      <span\n        style={{ animationDuration: `${duration}s` }}\n        className=\"absolute inset-[-1000%] animate-[spin_4s_linear_infinite] bg-[conic-gradient(from_90deg_at_50%_50%,#3b82f6_0%,#a855f7_50%,#3b82f6_100%)] opacity-70 group-hover:opacity-100 transition-opacity\"\n      />\n\n      {/* Button Interior */}\n      <span className=\"relative inline-flex h-full w-full items-center justify-center rounded-full bg-zinc-950 px-6 py-2 text-white backdrop-blur-3xl transition-colors group-hover:bg-zinc-900/90 gap-2\">\n        {children}\n      </span>\n    </button>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "hold-to-confirm-button",
    "type": "registry:ui",
    "title": "Hold to Confirm Action Button",
    "description": "Critical action button requiring sustained mouse hold with radial charging SVG progress ring before dispatching confirmation event.",
    "category": "buttons",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/buttons/hold-to-confirm-button/hold-to-confirm-button.tsx",
        "type": "registry:ui",
        "target": "components/ui/hold-to-confirm-button.tsx",
        "content": "import React, { useState, useRef, useEffect } from 'react';\nimport { motion } from 'framer-motion';\nimport { ShieldWarning, Check } from '@phosphor-icons/react';\n\nexport const HoldToConfirmButton: React.FC = () => {\n  const [progress, setProgress] = useState(0);\n  const [isHolding, setIsHolding] = useState(false);\n  const [isConfirmed, setIsConfirmed] = useState(false);\n  const timerRef = useRef<number | null>(null);\n\n  useEffect(() => {\n    return () => {\n      if (timerRef.current) cancelAnimationFrame(timerRef.current);\n    };\n  }, []);\n\n  const startHold = () => {\n    if (isConfirmed) return;\n    setIsHolding(true);\n    const startTime = Date.now();\n    const duration = 1400;\n\n    const tick = () => {\n      const elapsed = Date.now() - startTime;\n      const pct = Math.min(100, (elapsed / duration) * 100);\n      setProgress(pct);\n      if (pct < 100) {\n        timerRef.current = requestAnimationFrame(tick);\n      } else {\n        setIsConfirmed(true);\n        setIsHolding(false);\n      }\n    };\n    timerRef.current = requestAnimationFrame(tick);\n  };\n\n  const cancelHold = () => {\n    if (isConfirmed) return;\n    setIsHolding(false);\n    setProgress(0);\n    if (timerRef.current) cancelAnimationFrame(timerRef.current);\n  };\n\n  const reset = () => {\n    setIsConfirmed(false);\n    setProgress(0);\n  };\n\n  return (\n    <div className=\"flex flex-col items-center gap-3\">\n      <button\n        onMouseDown={startHold}\n        onMouseUp={cancelHold}\n        onMouseLeave={cancelHold}\n        onTouchStart={startHold}\n        onTouchEnd={cancelHold}\n        onTouchCancel={cancelHold}\n        className={`relative overflow-hidden px-6 py-3 rounded-2xl font-mono text-xs font-bold transition-all select-none cursor-pointer border ${\n          isConfirmed\n            ? 'bg-emerald-500 text-white border-emerald-400 shadow-lg shadow-emerald-500/20'\n            : 'bg-zinc-900 dark:bg-white text-white dark:text-zinc-950 border-zinc-800 dark:border-white/20 hover:scale-[1.02] active:scale-[0.98]'\n        }`}\n      >\n        {/* Fill Background Track */}\n        {isHolding && (\n          <div\n            style={{ width: `${progress}%` }}\n            className=\"absolute inset-0 bg-rose-500/40 pointer-events-none transition-all duration-75\"\n          />\n        )}\n\n        <div className=\"relative z-10 flex items-center gap-2\">\n          {isConfirmed ? (\n            <>\n              <Check size={14} weight=\"bold\" />\n              <span>TERMINATION CONFIRMED</span>\n            </>\n          ) : (\n            <>\n              <ShieldWarning size={14} weight=\"bold\" className={isHolding ? 'text-rose-400 animate-pulse' : ''} />\n              <span>{isHolding ? `HOLDING (${Math.round(progress)}%)` : 'HOLD TO PURGE CLUSTER'}</span>\n            </>\n          )}\n        </div>\n      </button>\n\n      {isConfirmed && (\n        <button\n          onClick={reset}\n          className=\"text-[11px] font-mono text-zinc-500 hover:text-zinc-900 dark:hover:text-white underline cursor-pointer\"\n        >\n          Reset Action\n        </button>\n      )}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "liquid-glass-button",
    "type": "registry:ui",
    "title": "Refractive Liquid Glass Button",
    "description": "Frosted Apple-style refractive glass with dynamic cursor specular reflection sweep.",
    "category": "buttons",
    "dependencies": [
      "framer-motion"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "button",
      "glassmorphism",
      "liquid",
      "refraction"
    ],
    "files": [
      {
        "path": "registry/buttons/liquid-glass-button/liquid-glass-button.tsx",
        "type": "registry:ui",
        "target": "components/ui/liquid-glass-button.tsx",
        "content": "import React, { useRef, useState } from 'react';\nimport { motion } from 'framer-motion';\n\ninterface LiquidGlassButtonProps {\n  children?: React.ReactNode;\n  className?: string;\n  onClick?: () => void;\n  variant?: 'primary' | 'subtle' | 'emerald';\n}\n\nexport const LiquidGlassButton: React.FC<LiquidGlassButtonProps> = ({\n  children = 'Experience Refraction',\n  className = '',\n  onClick,\n  variant = 'primary',\n}) => {\n  const ref = useRef<HTMLButtonElement>(null);\n  const [coords, setCoords] = useState({ x: 50, y: 50 });\n  const [isHovered, setIsHovered] = useState(false);\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLButtonElement>) => {\n    if (!ref.current) return;\n    const rect = ref.current.getBoundingClientRect();\n    const x = ((e.clientX - rect.left) / rect.width) * 100;\n    const y = ((e.clientY - rect.top) / rect.height) * 100;\n    setCoords({ x, y });\n  };\n\n  const variantStyles = {\n    primary: 'text-white border-white/20 bg-white/[0.07] dark:bg-white/[0.05] shadow-black/20',\n    subtle: 'text-zinc-900 dark:text-zinc-100 border-zinc-900/10 dark:border-white/10 bg-zinc-900/[0.04] dark:bg-white/[0.03]',\n    emerald: 'text-emerald-100 border-emerald-400/30 bg-emerald-500/[0.12] shadow-emerald-900/20',\n  };\n\n  return (\n    <motion.button\n      ref={ref}\n      onMouseMove={handleMouseMove}\n      onMouseEnter={() => setIsHovered(true)}\n      onMouseLeave={() => setIsHovered(false)}\n      whileHover={{ scale: 1.03, y: -1 }}\n      whileTap={{ scale: 0.97 }}\n      onClick={onClick}\n      className={`relative group overflow-hidden px-7 py-3.5 rounded-2xl backdrop-blur-xl border transition-all duration-300 font-medium text-sm tracking-wide shadow-xl cursor-pointer ${variantStyles[variant]} ${className}`}\n      style={{\n        backdropFilter: 'blur(20px) saturate(180%)',\n        WebkitBackdropFilter: 'blur(20px) saturate(180%)',\n      }}\n    >\n      {/* Dynamic specular light reflection tracking cursor */}\n      <div\n        className=\"absolute inset-0 pointer-events-none transition-opacity duration-500\"\n        style={{\n          opacity: isHovered ? 1 : 0,\n          background: `radial-gradient(circle 120px at ${coords.x}% ${coords.y}%, rgba(255,255,255,0.35), transparent 70%)`,\n        }}\n      />\n\n      {/* Internal ambient glossy lens flare */}\n      <div className=\"absolute -top-1/2 left-0 right-0 h-full bg-gradient-to-b from-white/25 to-transparent pointer-events-none rounded-t-2xl\" />\n\n      {/* Rim highlight border effect */}\n      <div className=\"absolute inset-[1px] rounded-[15px] border border-white/10 pointer-events-none\" />\n\n      {/* Button content */}\n      <span className=\"relative z-10 flex items-center gap-2 drop-shadow-sm\">\n        {children}\n      </span>\n    </motion.button>\n  );\n};\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "magnetic-button",
    "type": "registry:ui",
    "title": "Magnetic Button",
    "description": "Interactive magnetic button with spring pull physics and cursor tracking.",
    "category": "buttons",
    "dependencies": [
      "framer-motion"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "button",
      "magnetic",
      "spring physics",
      "cursor"
    ],
    "files": [
      {
        "path": "registry/buttons/magnetic-button/magnetic-button.tsx",
        "type": "registry:ui",
        "target": "components/ui/magnetic-button.tsx",
        "content": "import React, { useRef } from 'react'\nimport { motion, useMotionValue, useSpring, useTransform } from 'framer-motion'\nimport { cn } from '@/lib/utils'\n\nexport interface MagneticButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n  children?: React.ReactNode\n  variant?: 'default' | 'glow' | 'minimal' | 'ghost'\n  size?: 'sm' | 'md' | 'lg'\n  distance?: number\n  className?: string\n}\n\nexport const MagneticButton: React.FC<MagneticButtonProps> = ({\n  children = 'Magnetic Action',\n  variant = 'default',\n  size = 'md',\n  distance = 60,\n  className,\n  ...props\n}) => {\n  const ref = useRef<HTMLButtonElement>(null)\n  const x = useMotionValue(0)\n  const y = useMotionValue(0)\n\n  const springConfig = { damping: 15, stiffness: 150, mass: 0.1 }\n  const springX = useSpring(x, springConfig)\n  const springY = useSpring(y, springConfig)\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLButtonElement>) => {\n    if (!ref.current) return\n    const rect = ref.current.getBoundingClientRect()\n    const centerX = rect.left + rect.width / 2\n    const centerY = rect.top + rect.height / 2\n    const deltaX = (e.clientX - centerX) * 0.4\n    const deltaY = (e.clientY - centerY) * 0.4\n    x.set(deltaX)\n    y.set(deltaY)\n  }\n\n  const handleMouseLeave = () => {\n    x.set(0)\n    y.set(0)\n  }\n\n  const sizeStyles = {\n    sm: 'px-4 py-2 text-xs rounded-full gap-1.5',\n    md: 'px-6 py-3 text-sm rounded-full gap-2',\n    lg: 'px-8 py-4 text-base rounded-full gap-3 font-semibold',\n  }\n\n  const variantStyles = {\n    default: 'bg-zinc-900 text-white border border-white/15 hover:border-white/30 dark:bg-zinc-100 dark:text-zinc-950 shadow-md',\n    glow: 'bg-gradient-to-r from-cyan-500 to-blue-600 text-white shadow-lg shadow-cyan-500/25 border-0 hover:shadow-cyan-500/40',\n    minimal: 'bg-white/10 text-zinc-200 border border-white/10 hover:bg-white/15 dark:bg-black/40',\n    ghost: 'bg-transparent text-zinc-300 hover:text-white hover:bg-white/5 border border-transparent',\n  }\n\n  return (\n    <motion.button\n      ref={ref}\n      onMouseMove={handleMouseMove}\n      onMouseLeave={handleMouseLeave}\n      style={{ x: springX, y: springY }}\n      whileTap={{ scale: 0.96 }}\n      className={cn(\n        'relative inline-flex items-center justify-center font-medium transition-colors select-none focus:outline-none focus-visible:ring-2 focus-visible:ring-offset-2',\n        sizeStyles[size],\n        variantStyles[variant],\n        className\n      )}\n      {...(props as any)}\n    >\n      <motion.span\n        style={{ x: useTransform(springX, (val) => val * 0.3), y: useTransform(springY, (val) => val * 0.3) }}\n        className=\"flex items-center gap-2\"\n      >\n        {children}\n      </motion.span>\n    </motion.button>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "neon-pulse-button",
    "type": "registry:ui",
    "title": "Neon Pulse Button",
    "description": "High-voltage illuminated action button featuring interactive magnetic tracking, rotating edge tracer gradient, and spring ripple activation.",
    "category": "buttons",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/buttons/neon-pulse-button/neon-pulse-button.tsx",
        "type": "registry:ui",
        "target": "components/ui/neon-pulse-button.tsx",
        "content": "import React, { useRef, useState } from 'react';\nimport { motion, useSpring, useMotionValue } from 'framer-motion';\nimport { Lightning, ArrowRight, Play, Flame } from '@phosphor-icons/react';\n\nexport interface NeonPulseButtonProps {\n  label?: string;\n  colorTheme?: 'cyan' | 'emerald' | 'violet' | 'amber';\n  size?: 'sm' | 'md' | 'lg';\n  magnetic?: boolean;\n  onClick?: () => void;\n  className?: string;\n}\n\nexport const NeonPulseButton: React.FC<NeonPulseButtonProps> = ({\n  label = 'Activate Superconductor',\n  colorTheme = 'cyan',\n  size = 'md',\n  magnetic = true,\n  onClick,\n  className = '',\n}) => {\n  const btnRef = useRef<HTMLButtonElement>(null);\n  const [isHovered, setIsHovered] = useState(false);\n  const [clicked, setClicked] = useState(false);\n\n  // Magnetic spring pull\n  const mouseX = useMotionValue(0);\n  const mouseY = useMotionValue(0);\n\n  const springConfig = { damping: 18, stiffness: 220 };\n  const springX = useSpring(mouseX, springConfig);\n  const springY = useSpring(mouseY, springConfig);\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLButtonElement>) => {\n    if (!magnetic || !btnRef.current) return;\n    const rect = btnRef.current.getBoundingClientRect();\n    const centerX = rect.left + rect.width / 2;\n    const centerY = rect.top + rect.height / 2;\n    mouseX.set((e.clientX - centerX) * 0.35);\n    mouseY.set((e.clientY - centerY) * 0.35);\n  };\n\n  const handleMouseLeave = () => {\n    setIsHovered(false);\n    mouseX.set(0);\n    mouseY.set(0);\n  };\n\n  const handleClick = () => {\n    setClicked(true);\n    setTimeout(() => setClicked(false), 500);\n    onClick?.();\n  };\n\n  const themeConfig = {\n    cyan: {\n      neonGlow: 'shadow-[0_0_30px_rgba(6,182,212,0.4)]',\n      tracer: 'from-cyan-400 via-sky-400 to-transparent',\n      text: 'text-cyan-400',\n      aura: 'bg-cyan-500/20',\n      activeRing: 'border-cyan-400',\n    },\n    emerald: {\n      neonGlow: 'shadow-[0_0_30px_rgba(16,185,129,0.4)]',\n      tracer: 'from-emerald-400 via-teal-400 to-transparent',\n      text: 'text-emerald-400',\n      aura: 'bg-emerald-500/20',\n      activeRing: 'border-emerald-400',\n    },\n    violet: {\n      neonGlow: 'shadow-[0_0_30px_rgba(139,92,246,0.4)]',\n      tracer: 'from-violet-400 via-purple-400 to-transparent',\n      text: 'text-violet-400',\n      aura: 'bg-violet-500/20',\n      activeRing: 'border-violet-400',\n    },\n    amber: {\n      neonGlow: 'shadow-[0_0_30px_rgba(245,158,11,0.4)]',\n      tracer: 'from-amber-400 via-orange-400 to-transparent',\n      text: 'text-amber-400',\n      aura: 'bg-amber-500/20',\n      activeRing: 'border-amber-400',\n    },\n  }[colorTheme];\n\n  const sizeClasses = {\n    sm: 'px-4 py-2 text-xs gap-2',\n    md: 'px-6 py-3 text-xs sm:text-sm gap-2.5',\n    lg: 'px-8 py-4 text-sm sm:text-base gap-3',\n  }[size];\n\n  return (\n    <div className=\"relative inline-flex items-center justify-center p-2 select-none\">\n      {/* Dynamic Ambient Aura */}\n      <div \n        className={`absolute inset-0 rounded-full blur-xl transition-all duration-300 pointer-events-none ${\n          isHovered ? `${themeConfig.aura} scale-110 opacity-100` : 'opacity-0 scale-90'\n        }`} \n      />\n\n      {/* Button Motion Container */}\n      <motion.button\n        ref={btnRef}\n        style={{ x: springX, y: springY }}\n        onMouseMove={handleMouseMove}\n        onMouseEnter={() => setIsHovered(true)}\n        onMouseLeave={handleMouseLeave}\n        onClick={handleClick}\n        className={`relative group inline-flex items-center justify-center font-mono font-bold uppercase tracking-wider rounded-full bg-zinc-950 text-white overflow-hidden border border-white/10 transition-all duration-200 cursor-pointer ${sizeClasses} ${\n          isHovered ? themeConfig.neonGlow : ''\n        } ${className}`}\n      >\n        {/* Rotating Edge Tracer Gradient Border */}\n        <div className=\"absolute inset-[-150%] animate-[spin_4s_linear_infinite] pointer-events-none opacity-80 group-hover:opacity-100 transition-opacity\">\n          <div className={`w-full h-full bg-[conic-gradient(from_0deg,transparent_0_300deg,currentColor_360deg)] ${themeConfig.text}`} />\n        </div>\n\n        {/* Inner Solid Capsule Backdrop */}\n        <div className=\"absolute inset-[1.5px] rounded-full bg-[#090a0f] z-0 transition-colors group-hover:bg-[#0c0e17]\" />\n\n        {/* Content Elements */}\n        <div className=\"relative z-10 flex items-center gap-2\">\n          <Lightning size={16} weight=\"fill\" className={`${themeConfig.text} transition-transform group-hover:scale-125`} />\n          <span className=\"text-zinc-100 tracking-wider\">{label}</span>\n          <ArrowRight size={14} weight=\"bold\" className=\"text-zinc-400 transition-transform group-hover:translate-x-1\" />\n        </div>\n\n        {/* Click Shockwave Burst Ring */}\n        {clicked && (\n          <div className={`absolute inset-0 rounded-full border-2 ${themeConfig.activeRing} animate-ping pointer-events-none`} />\n        )}\n      </motion.button>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "ripple-button",
    "type": "registry:ui",
    "title": "Radial Ripple Button",
    "description": "Material-inspired coordinate-origin expanding liquid wave ripple.",
    "category": "buttons",
    "dependencies": [],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "button",
      "ripple",
      "interactive",
      "wave"
    ],
    "files": [
      {
        "path": "registry/buttons/ripple-button/ripple-button.tsx",
        "type": "registry:ui",
        "target": "components/ui/ripple-button.tsx",
        "content": "import React, { useState } from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface RippleButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n  children?: React.ReactNode\n  className?: string\n}\n\ninterface Ripple {\n  x: number\n  y: number\n  size: number\n  id: number\n}\n\nexport const RippleButton: React.FC<RippleButtonProps> = ({\n  children = 'Ripple Feedback',\n  className,\n  onClick,\n  ...props\n}) => {\n  const [ripples, setRipples] = useState<Ripple[]>([])\n\n  const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n    const rect = e.currentTarget.getBoundingClientRect()\n    const size = Math.max(rect.width, rect.height) * 2\n    const x = e.clientX - rect.left - size / 2\n    const y = e.clientY - rect.top - size / 2\n\n    const newRipple: Ripple = { x, y, size, id: Date.now() }\n    setRipples((prev) => [...prev, newRipple])\n\n    setTimeout(() => {\n      setRipples((prev) => prev.filter((r) => r.id !== newRipple.id))\n    }, 600)\n\n    onClick?.(e)\n  }\n\n  return (\n    <button\n      onClick={handleClick}\n      className={cn(\n        'relative inline-flex items-center justify-center overflow-hidden rounded-full border border-white/15 bg-zinc-900 px-6 py-3 font-mono text-xs font-semibold text-white shadow-lg transition-transform active:scale-95 focus:outline-none',\n        className\n      )}\n      {...props}\n    >\n      <span className=\"relative z-10\">{children}</span>\n      {ripples.map((ripple) => (\n        <span\n          key={ripple.id}\n          style={{\n            top: ripple.y,\n            left: ripple.x,\n            width: ripple.size,\n            height: ripple.size,\n          }}\n          className=\"pointer-events-none absolute rounded-full bg-cyan-400/30 animate-[ping_0.6s_ease-out_forwards]\"\n        />\n      ))}\n    </button>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "slide-to-confirm",
    "type": "registry:ui",
    "title": "Slide to Confirm Slider",
    "description": "Draggable tactical slide-to-confirm button with spring physics and unlock callback.",
    "category": "buttons",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "button",
      "slider",
      "confirm",
      "drag",
      "security"
    ],
    "files": [
      {
        "path": "registry/buttons/slide-to-confirm/slide-to-confirm.tsx",
        "type": "registry:ui",
        "target": "components/ui/slide-to-confirm.tsx",
        "content": "import React, { useState, useRef, useEffect } from 'react'\nimport { motion, useMotionValue } from 'framer-motion'\nimport { ArrowRight, Check } from '@phosphor-icons/react'\nimport { cn } from '@/lib/utils'\n\nexport interface SlideToConfirmProps {\n  label?: string\n  confirmedLabel?: string\n  onConfirm?: () => void\n  className?: string\n}\n\nexport const SlideToConfirm: React.FC<SlideToConfirmProps> = ({\n  label = 'Slide to Deploy Kernel',\n  confirmedLabel = 'Kernel Deployed',\n  onConfirm,\n  className,\n}) => {\n  const [isConfirmed, setIsConfirmed] = useState(false)\n  const trackRef = useRef<HTMLDivElement>(null)\n  const [maxDrag, setMaxDrag] = useState(240)\n  const x = useMotionValue(0)\n\n  useEffect(() => {\n    const updateBounds = () => {\n      if (trackRef.current) {\n        setMaxDrag(Math.max(60, trackRef.current.offsetWidth - 56))\n      }\n    }\n    updateBounds()\n    window.addEventListener('resize', updateBounds)\n    return () => window.removeEventListener('resize', updateBounds)\n  }, [])\n\n  const handleDragEnd = () => {\n    if (!trackRef.current) return\n    if (x.get() >= maxDrag * 0.8) {\n      setIsConfirmed(true)\n      onConfirm?.()\n    } else {\n      x.set(0)\n    }\n  }\n\n  const handleReset = () => {\n    setIsConfirmed(false)\n    x.set(0)\n  }\n\n  return (\n    <div className={cn('w-full max-w-sm', className)}>\n      <div\n        ref={trackRef}\n        className={`relative flex h-14 w-full items-center justify-between rounded-full border p-1.5 transition-colors select-none ${\n          isConfirmed\n            ? 'border-emerald-500/40 bg-emerald-950/40'\n            : 'border-white/15 bg-zinc-950 shadow-inner'\n        }`}\n      >\n        {/* Track Label */}\n        <div className=\"absolute inset-0 flex items-center justify-center font-mono text-xs font-semibold text-zinc-400 pointer-events-none\">\n          {isConfirmed ? (\n            <span className=\"flex items-center gap-1.5 text-emerald-400\">\n              <Check size={16} weight=\"bold\" />\n              <span>{confirmedLabel}</span>\n            </span>\n          ) : (\n            <span className=\"animate-pulse\">{label}</span>\n          )}\n        </div>\n\n        {/* Draggable Thumb */}\n        {!isConfirmed ? (\n          <motion.div\n            drag=\"x\"\n            dragConstraints={{ left: 0, right: maxDrag }}\n            dragElastic={0.05}\n            onDragEnd={handleDragEnd}\n            style={{ x }}\n            className=\"relative z-10 flex h-11 w-11 cursor-grab active:cursor-grabbing items-center justify-center rounded-full bg-white text-zinc-950 shadow-xl transition-shadow hover:shadow-cyan-500/20\"\n          >\n            <ArrowRight size={18} weight=\"bold\" />\n          </motion.div>\n        ) : (\n          <button\n            onClick={handleReset}\n            className=\"relative z-10 ml-auto flex h-11 w-11 items-center justify-center rounded-full bg-emerald-500 text-zinc-950 shadow-lg hover:scale-105 transition-transform cursor-pointer\"\n            title=\"Click to reset\"\n          >\n            <Check size={18} weight=\"bold\" />\n          </button>\n        )}\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "expandable-card",
    "type": "registry:ui",
    "title": "Spring Expandable Modal Card",
    "description": "Card that smoothly expands into an overlay detail view via shared layout springs.",
    "category": "cards",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "card",
      "expandable",
      "modal",
      "layoutId"
    ],
    "files": [
      {
        "path": "registry/cards/expandable-card/expandable-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/expandable-card.tsx",
        "content": "import React, { useState } from 'react'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport { CaretDown, CheckCircle, ShieldCheck } from '@phosphor-icons/react'\nimport { cn } from '@/lib/utils'\n\nexport interface ExpandableCardProps {\n  title?: string\n  summary?: string\n  details?: string\n  className?: string\n}\n\nexport const ExpandableCard: React.FC<ExpandableCardProps> = ({\n  title = 'Raft Consensus Protocol Verification',\n  summary = 'Asserts safety, leader completeness, and partition resilience.',\n  details = 'The SMT solver simulates a 5-node cluster partition across 10,000 asynchronous election rounds. Every log sequence is guaranteed linearizable and deterministic.',\n  className,\n}) => {\n  const [isExpanded, setIsExpanded] = useState(false)\n\n  return (\n    <motion.div\n      layout\n      transition={{ layout: { duration: 0.3, type: 'spring', damping: 25, stiffness: 200 } }}\n      className={cn(\n        'w-full max-w-md overflow-hidden rounded-3xl border border-white/10 bg-zinc-950 p-5 text-white transition-colors hover:border-white/20',\n        className\n      )}\n    >\n      <div\n        onClick={() => setIsExpanded(!isExpanded)}\n        className=\"flex cursor-pointer items-start justify-between gap-4 select-none\"\n      >\n        <div className=\"flex items-start gap-3\">\n          <div className=\"flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-white/5 border border-white/10 text-emerald-400\">\n            <ShieldCheck size={18} weight=\"bold\" />\n          </div>\n          <div>\n            <h4 className=\"text-sm font-bold text-zinc-900 dark:text-white\">{title}</h4>\n            <p className=\"mt-1 text-xs text-zinc-600 dark:text-zinc-400\">{summary}</p>\n          </div>\n        </div>\n\n        <motion.div\n          animate={{ rotate: isExpanded ? 180 : 0 }}\n          transition={{ duration: 0.2 }}\n          className=\"text-zinc-600 dark:text-zinc-400 p-1\"\n        >\n          <CaretDown size={16} />\n        </motion.div>\n      </div>\n\n      <AnimatePresence>\n        {isExpanded && (\n          <motion.div\n            initial={{ opacity: 0, height: 0 }}\n            animate={{ opacity: 1, height: 'auto' }}\n            exit={{ opacity: 0, height: 0 }}\n            transition={{ duration: 0.25 }}\n            className=\"overflow-hidden pt-4 border-t border-white/10 mt-4 text-xs text-zinc-300 leading-relaxed font-mono\"\n          >\n            <p>{details}</p>\n            <div className=\"mt-3 flex items-center gap-2 text-[10px] text-emerald-400\">\n              <CheckCircle size={12} weight=\"fill\" />\n              <span>Z3 Formal Witness: PROOF_ACCEPTED</span>\n            </div>\n          </motion.div>\n        )}\n      </AnimatePresence>\n    </motion.div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "glare-hologram-card",
    "type": "registry:ui",
    "title": "Chromatic Glare Hologram Card",
    "description": "Foil collector card with dynamic rainbow holographic reflection and specular light gleam following cursor movement.",
    "category": "cards",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/cards/glare-hologram-card/glare-hologram-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/glare-hologram-card.tsx",
        "content": "import React, { useState, useRef } from 'react';\nimport { Star, ShieldCheck } from '@phosphor-icons/react';\n\nexport const GlareHologramCard: React.FC = () => {\n  const cardRef = useRef<HTMLDivElement>(null);\n  const [coords, setCoords] = useState({ x: 50, y: 50 });\n  const [isHovered, setIsHovered] = useState(false);\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    if (!cardRef.current) return;\n    const rect = cardRef.current.getBoundingClientRect();\n    const x = ((e.clientX - rect.left) / rect.width) * 100;\n    const y = ((e.clientY - rect.top) / rect.height) * 100;\n    setCoords({ x, y });\n  };\n\n  return (\n    <div\n      ref={cardRef}\n      onMouseMove={handleMouseMove}\n      onMouseEnter={() => setIsHovered(true)}\n      onMouseLeave={() => setIsHovered(false)}\n      className=\"relative w-64 h-88 rounded-2xl overflow-hidden border border-zinc-200 dark:border-white/20 bg-zinc-950 p-5 shadow-2xl select-none cursor-pointer text-white flex flex-col justify-between\"\n    >\n      {/* Dynamic Rainbow Glare Layer */}\n      {isHovered && (\n        <div\n          className=\"absolute inset-0 pointer-events-none mix-blend-color-dodge transition-opacity duration-200\"\n          style={{\n            background: `radial-gradient(circle at ${coords.x}% ${coords.y}%, rgba(255, 255, 255, 0.4) 0%, rgba(99, 102, 241, 0.3) 30%, rgba(6, 182, 212, 0.25) 50%, rgba(244, 63, 94, 0.2) 75%, transparent 100%)`,\n          }}\n        />\n      )}\n\n      {/* Hologram Sheen Diagonal Bar */}\n      <div\n        className=\"absolute inset-0 pointer-events-none opacity-20\"\n        style={{\n          background: 'linear-gradient(115deg, transparent 20%, rgba(255,255,255,0.6) 45%, rgba(255,255,255,0.8) 50%, transparent 60%)',\n          transform: `translateX(${(coords.x - 50) * 1.5}%)`,\n        }}\n      />\n\n      <div className=\"relative z-10 flex justify-between items-center\">\n        <span className=\"text-[10px] font-mono px-2 py-0.5 rounded-full bg-white/10 border border-white/20\">EDITION #001</span>\n        <Star size={16} weight=\"fill\" className=\"text-amber-400\" />\n      </div>\n\n      <div className=\"relative z-10 text-center py-6\">\n        <div className=\"w-16 h-16 mx-auto rounded-full bg-gradient-to-tr from-indigo-500 to-cyan-400 p-0.5 shadow-xl flex items-center justify-center\">\n          <ShieldCheck size={32} className=\"text-white\" />\n        </div>\n        <h4 className=\"font-extrabold text-lg mt-3 tracking-wide\">QUANTUM CITADEL</h4>\n        <p className=\"text-[11px] text-zinc-400 mt-1 font-mono\">Founding Architect Member</p>\n      </div>\n\n      <div className=\"relative z-10 flex justify-between items-center text-[10px] font-mono text-zinc-400 border-t border-white/10 pt-3\">\n        <span>RARITY: MYTHIC</span>\n        <span>SHA-256 VERIFIED</span>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "glass-card",
    "type": "registry:ui",
    "title": "Frosted Acrylic Glass Card",
    "description": "Multi-layer frosted glass card with noise texture and rim lighting.",
    "category": "cards",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "card",
      "glass",
      "frosted",
      "acrylic"
    ],
    "files": [
      {
        "path": "registry/cards/glass-card/glass-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/glass-card.tsx",
        "content": "import React from 'react'\nimport { motion } from 'framer-motion'\nimport { cn } from '@/lib/utils'\n\nexport interface GlassCardProps {\n  children?: React.ReactNode\n  title?: string\n  subtitle?: string\n  className?: string\n}\n\nexport const GlassCard: React.FC<GlassCardProps> = ({\n  children,\n  title = 'Hermetic WASM Isolate',\n  subtitle = 'MEMORY PROTECTION RING-0',\n  className,\n}) => {\n  return (\n    <div\n      className={cn(\n        'group relative overflow-hidden rounded-[2rem] border border-white/10 bg-white/[0.03] p-1.5 shadow-2xl backdrop-blur-2xl transition-all duration-300 hover:border-white/20',\n        className\n      )}\n    >\n      <div className=\"relative rounded-[calc(2rem-0.375rem)] border border-white/5 bg-zinc-950/70 p-6 shadow-[inset_0_1px_1px_rgba(255,255,255,0.15)]\">\n        <div className=\"flex items-center justify-between border-b border-white/5 pb-3\">\n          <span className=\"font-mono text-[10px] tracking-wider text-zinc-600 dark:text-zinc-400\">{subtitle}</span>\n          <div className=\"flex gap-1\">\n            <span className=\"h-2 w-2 rounded-full bg-white/20\" />\n            <span className=\"h-2 w-2 rounded-full bg-white/20\" />\n          </div>\n        </div>\n\n        <h4 className=\"mt-3 text-lg font-bold text-zinc-900 dark:text-white tracking-tight\">{title}</h4>\n        \n        <div className=\"mt-2 text-xs text-zinc-300\">\n          {children || 'Air-gapped execution blocks outbound socket leaks while monitoring CPU allocation quotas.'}\n        </div>\n\n        <div className=\"mt-4 flex items-center justify-between pt-3 border-t border-white/5 font-mono text-[10px] text-zinc-500\">\n          <span>Glass Filter: blur(24px)</span>\n          <span className=\"text-emerald-400\">Isolated</span>\n        </div>\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "interactive-tilt-card",
    "type": "registry:ui",
    "title": "Interactive 3D Tilt Card",
    "description": "Subtle physics tilt card with specular gradient sheen responding to mouse position.",
    "category": "cards",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "card",
      "tilt",
      "3d",
      "sheen"
    ],
    "files": [
      {
        "path": "registry/cards/interactive-tilt-card/interactive-tilt-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/interactive-tilt-card.tsx",
        "content": "import React, { useRef } from 'react'\nimport { motion, useMotionValue, useSpring, useTransform } from 'framer-motion'\nimport { cn } from '@/lib/utils'\n\nexport interface InteractiveTiltCardProps {\n  title?: string\n  subtitle?: string\n  description?: string\n  badge?: string\n  className?: string\n}\n\nexport const InteractiveTiltCard: React.FC<InteractiveTiltCardProps> = ({\n  title = 'Autonomous Synthesis Pod',\n  subtitle = 'ISOLATE MEMORY #44',\n  description = 'Coordinates AST transformations and sandboxed WASM test suites without side effects.',\n  badge = 'ACTIVE',\n  className,\n}) => {\n  const cardRef = useRef<HTMLDivElement>(null)\n  const x = useMotionValue(0)\n  const y = useMotionValue(0)\n\n  const mouseXSpring = useSpring(x, { stiffness: 200, damping: 20 })\n  const mouseYSpring = useSpring(y, { stiffness: 200, damping: 20 })\n\n  const rotateX = useTransform(mouseYSpring, [-0.5, 0.5], ['14deg', '-14deg'])\n  const rotateY = useTransform(mouseXSpring, [-0.5, 0.5], ['-14deg', '14deg'])\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    if (!cardRef.current) return\n    const rect = cardRef.current.getBoundingClientRect()\n    const width = rect.width\n    const height = rect.height\n    const mouseX = e.clientX - rect.left\n    const mouseY = e.clientY - rect.top\n    const xPct = mouseX / width - 0.5\n    const yPct = mouseY / height - 0.5\n    x.set(xPct)\n    y.set(yPct)\n  }\n\n  const handleMouseLeave = () => {\n    x.set(0)\n    y.set(0)\n  }\n\n  return (\n    <div style={{ perspective: '1000px' }} className={cn('w-full max-w-sm', className)}>\n      <motion.div\n        ref={cardRef}\n        onMouseMove={handleMouseMove}\n        onMouseLeave={handleMouseLeave}\n        style={{\n          rotateX,\n          rotateY,\n          transformStyle: 'preserve-3d',\n        }}\n        className=\"relative overflow-hidden rounded-3xl border border-white/15 bg-gradient-to-br from-zinc-900 to-zinc-950 p-6 text-white shadow-2xl transition-shadow hover:shadow-cyan-500/10\"\n      >\n        <div style={{ transform: 'translateZ(30px)' }} className=\"flex items-center justify-between\">\n          <span className=\"font-mono text-[10px] uppercase tracking-widest text-zinc-600 dark:text-zinc-400\">{subtitle}</span>\n          <span className=\"rounded-full bg-emerald-500/20 px-2 py-0.5 font-mono text-[10px] text-emerald-400 border border-emerald-500/30\">\n            {badge}\n          </span>\n        </div>\n\n        <div style={{ transform: 'translateZ(40px)' }} className=\"mt-4\">\n          <h4 className=\"text-lg font-bold text-zinc-900 dark:text-white tracking-tight\">{title}</h4>\n          <p className=\"mt-2 text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed\">{description}</p>\n        </div>\n\n        <div style={{ transform: 'translateZ(25px)' }} className=\"mt-6 flex items-center justify-between border-t border-white/10 pt-4 font-mono text-[11px] text-zinc-500\">\n          <span>Latency: 12ms</span>\n          <span>Zero-Copy DAG</span>\n        </div>\n\n        {/* Specular Glare Reflection */}\n        <div className=\"pointer-events-none absolute inset-0 bg-gradient-to-tr from-transparent via-white/5 to-transparent opacity-0 transition-opacity hover:opacity-100\" />\n      </motion.div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "orbit-card",
    "type": "registry:ui",
    "title": "Concentric Planetary Orbit Card",
    "description": "Dual circular orbit rings with counter-rotating planetary tech nodes and central core.",
    "category": "cards",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "card",
      "orbit",
      "planetary",
      "satellite"
    ],
    "files": [
      {
        "path": "registry/cards/orbit-card/orbit-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/orbit-card.tsx",
        "content": "import React from 'react'\nimport { Cpu, Lightning, ShieldCheck, Terminal, Database, Code } from '@phosphor-icons/react'\nimport { cn } from '@/lib/utils'\n\nexport interface OrbitCardProps {\n  className?: string\n}\n\nexport const OrbitCard: React.FC<OrbitCardProps> = ({ className }) => {\n  return (\n    <div className={cn('relative flex h-72 w-full max-w-sm items-center justify-center overflow-hidden rounded-3xl border border-white/10 bg-zinc-950 p-6 shadow-2xl', className)}>\n      {/* Concentric Orbit Rings */}\n      <div className=\"absolute h-48 w-48 rounded-full border border-dashed border-white/10\" />\n      <div className=\"absolute h-32 w-32 rounded-full border border-white/10\" />\n\n      {/* Center Core Node */}\n      <div className=\"relative z-10 flex h-14 w-14 items-center justify-center rounded-2xl border border-white/20 bg-gradient-to-br from-zinc-800 to-zinc-950 text-white shadow-2xl\">\n        <Cpu size={26} weight=\"bold\" className=\"text-emerald-400\" />\n      </div>\n\n      {/* Orbiting Satellites (CSS Animation) */}\n      <div className=\"pointer-events-none absolute h-48 w-48 animate-[spin_12s_linear_infinite]\">\n        <div className=\"absolute top-0 left-1/2 -translate-x-1/2 flex h-8 w-8 items-center justify-center rounded-full border border-white/15 bg-zinc-900 text-cyan-400 shadow-md\">\n          <Lightning size={16} weight=\"fill\" />\n        </div>\n        <div className=\"absolute bottom-0 left-1/2 -translate-x-1/2 flex h-8 w-8 items-center justify-center rounded-full border border-white/15 bg-zinc-900 text-amber-400 shadow-md\">\n          <ShieldCheck size={16} weight=\"fill\" />\n        </div>\n      </div>\n\n      <div className=\"pointer-events-none absolute h-32 w-32 animate-[spin_8s_linear_infinite_reverse]\">\n        <div className=\"absolute top-1/2 -right-4 -translate-y-1/2 flex h-7 w-7 items-center justify-center rounded-full border border-white/15 bg-zinc-900 text-purple-400 shadow-md\">\n          <Terminal size={14} weight=\"bold\" />\n        </div>\n        <div className=\"absolute top-1/2 -left-4 -translate-y-1/2 flex h-7 w-7 items-center justify-center rounded-full border border-white/15 bg-zinc-900 text-blue-400 shadow-md\">\n          <Database size={14} weight=\"fill\" />\n        </div>\n      </div>\n\n      <div className=\"absolute bottom-3 font-mono text-[10px] text-zinc-500 uppercase tracking-widest\">\n        CONCENTRIC ORBIT NETWORK\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "perspective-card-3d",
    "type": "registry:ui",
    "title": "3D Parallax Perspective Card",
    "description": "Multilayer spatial depth card where internal elements float along the Z-axis.",
    "category": "cards",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "card",
      "3d",
      "parallax",
      "perspective"
    ],
    "files": [
      {
        "path": "registry/cards/perspective-card-3d/perspective-card-3d.tsx",
        "type": "registry:ui",
        "target": "components/ui/perspective-card-3d.tsx",
        "content": "import React, { useRef, useState } from 'react';\nimport { motion, useMotionValue, useSpring, useTransform } from 'framer-motion';\nimport { Cube, ShieldCheck, Cpu } from '@phosphor-icons/react';\n\ninterface PerspectiveCard3DProps {\n  className?: string;\n  title?: string;\n  subtitle?: string;\n  tag?: string;\n}\n\nexport const PerspectiveCard3D: React.FC<PerspectiveCard3DProps> = ({\n  className = '',\n  title = 'Autonomous Neural Core',\n  subtitle = 'High-frequency model execution with sub-millisecond tensor dispatch.',\n  tag = 'SYSTEM ARCHITECTURE',\n}) => {\n  const cardRef = useRef<HTMLDivElement>(null);\n  const [isHovered, setIsHovered] = useState(false);\n\n  const x = useMotionValue(0);\n  const y = useMotionValue(0);\n\n  const mouseXSpring = useSpring(x, { stiffness: 220, damping: 20 });\n  const mouseYSpring = useSpring(y, { stiffness: 220, damping: 20 });\n\n  const rotateX = useTransform(mouseYSpring, [-0.5, 0.5], ['18deg', '-18deg']);\n  const rotateY = useTransform(mouseXSpring, [-0.5, 0.5], ['-18deg', '18deg']);\n  const gleamX = useTransform(mouseXSpring, [-0.5, 0.5], ['0%', '100%']);\n  const gleamY = useTransform(mouseYSpring, [-0.5, 0.5], ['0%', '100%']);\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    if (!cardRef.current) return;\n    const rect = cardRef.current.getBoundingClientRect();\n    const mouseX = (e.clientX - rect.left) / rect.width - 0.5;\n    const mouseY = (e.clientY - rect.top) / rect.height - 0.5;\n    x.set(mouseX);\n    y.set(mouseY);\n  };\n\n  const handleMouseLeave = () => {\n    setIsHovered(false);\n    x.set(0);\n    y.set(0);\n  };\n\n  return (\n    <div\n      style={{ perspective: 1200 }}\n      className={`relative inline-block w-full max-w-[360px] p-2 ${className}`}\n    >\n      <motion.div\n        ref={cardRef}\n        onMouseMove={handleMouseMove}\n        onMouseEnter={() => setIsHovered(true)}\n        onMouseLeave={handleMouseLeave}\n        style={{\n          rotateX,\n          rotateY,\n          transformStyle: 'preserve-3d',\n        }}\n        className=\"relative w-full rounded-2xl bg-gradient-to-br from-zinc-900 via-zinc-950 to-zinc-900 border border-white/10 p-6 shadow-2xl transition-shadow duration-300 hover:shadow-cyan-500/10 cursor-pointer overflow-hidden\"\n      >\n        {/* Holographic specular gleam */}\n        <motion.div\n          className=\"absolute inset-0 pointer-events-none rounded-2xl opacity-0 group-hover:opacity-100 transition-opacity duration-300\"\n          style={{\n            opacity: isHovered ? 0.35 : 0,\n            background: `radial-gradient(circle 240px at 50% 50%, rgba(56, 189, 248, 0.4), transparent 70%)`,\n            left: gleamX,\n            top: gleamY,\n            transform: 'translate(-50%, -50%)',\n          }}\n        />\n\n        {/* Ambient Grid Background */}\n        <div className=\"absolute inset-0 bg-[linear-gradient(to_right,#80808008_1px,transparent_1px),linear-gradient(to_bottom,#80808008_1px,transparent_1px)] bg-[size:16px_16px] pointer-events-none\" />\n\n        {/* Layer 1: Floating Header Badge (Z: 40px) */}\n        <div\n          style={{ transform: 'translateZ(40px)' }}\n          className=\"relative z-10 flex items-center justify-between mb-6\"\n        >\n          <span className=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-[11px] font-mono font-medium text-cyan-400 bg-cyan-500/10 border border-cyan-500/20\">\n            <Cpu size={14} weight=\"bold\" />\n            {tag}\n          </span>\n          <div className=\"w-8 h-8 rounded-full bg-white/5 border border-white/10 flex items-center justify-center text-zinc-400\">\n            <Cube size={16} weight=\"duotone\" className=\"text-cyan-400\" />\n          </div>\n        </div>\n\n        {/* Layer 2: Graphic Core (Z: 60px) */}\n        <div\n          style={{ transform: 'translateZ(60px)' }}\n          className=\"relative z-10 my-6 h-28 rounded-xl bg-gradient-to-br from-cyan-950/40 via-indigo-950/30 to-violet-950/40 border border-cyan-500/20 flex items-center justify-center overflow-hidden\"\n        >\n          <div className=\"w-20 h-20 rounded-full bg-gradient-to-tr from-cyan-500 to-indigo-600 blur-xl opacity-40 animate-pulse\" />\n          <div className=\"absolute font-mono text-3xl font-bold tracking-widest text-cyan-200 drop-shadow-[0_0_12px_rgba(56,189,248,0.6)]\">\n            0101\n          </div>\n        </div>\n\n        {/* Layer 3: Typography & Description (Z: 30px) */}\n        <div style={{ transform: 'translateZ(30px)' }} className=\"relative z-10 space-y-2\">\n          <h4 className=\"text-lg font-semibold text-white tracking-tight\">{title}</h4>\n          <p className=\"text-xs text-zinc-400 leading-relaxed\">{subtitle}</p>\n        </div>\n\n        {/* Layer 4: Footer specs (Z: 20px) */}\n        <div\n          style={{ transform: 'translateZ(20px)' }}\n          className=\"relative z-10 mt-6 pt-4 border-t border-white/5 flex items-center justify-between text-[11px] font-mono text-zinc-500\"\n        >\n          <span className=\"flex items-center gap-1 text-emerald-400\">\n            <ShieldCheck size={14} weight=\"bold\" />\n            VERIFIED SECURE\n          </span>\n          <span>LATENCY: 0.4ms</span>\n        </div>\n      </motion.div>\n    </div>\n  );\n};\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "scratch-to-reveal-card",
    "type": "registry:ui",
    "title": "Scratch to Reveal Card",
    "description": "Interactive HTML5 canvas scratch card where user drags cursor or finger to scrape away silver coating and reveal reward code.",
    "category": "cards",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/cards/scratch-to-reveal-card/scratch-to-reveal-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/scratch-to-reveal-card.tsx",
        "content": "import React, { useRef, useEffect, useState } from 'react';\nimport { Gift, ArrowClockwise } from '@phosphor-icons/react';\n\nexport const ScratchToRevealCard: React.FC = () => {\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n  const [isScratched, setIsScratched] = useState(false);\n\n  const initCanvas = () => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    canvas.width = 280;\n    canvas.height = 140;\n\n    ctx.fillStyle = '#71717a';\n    ctx.fillRect(0, 0, canvas.width, canvas.height);\n\n    ctx.fillStyle = '#a1a1aa';\n    ctx.font = '12px monospace';\n    ctx.textAlign = 'center';\n    ctx.fillText('SCRATCH TO REVEAL CODE', canvas.width / 2, canvas.height / 2 + 4);\n    setIsScratched(false);\n  };\n\n  useEffect(() => {\n    initCanvas();\n  }, []);\n\n  const scratchAtPoint = (clientX: number, clientY: number) => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    const rect = canvas.getBoundingClientRect();\n    if (rect.width === 0 || rect.height === 0) return;\n    const scaleX = canvas.width / rect.width;\n    const scaleY = canvas.height / rect.height;\n    const x = (clientX - rect.left) * scaleX;\n    const y = (clientY - rect.top) * scaleY;\n\n    ctx.globalCompositeOperation = 'destination-out';\n    ctx.beginPath();\n    ctx.arc(x, y, 18, 0, Math.PI * 2);\n    ctx.fill();\n    setIsScratched(true);\n  };\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLCanvasElement>) => {\n    if (e.buttons === 1) scratchAtPoint(e.clientX, e.clientY);\n  };\n\n  const handleTouchMove = (e: React.TouchEvent<HTMLCanvasElement>) => {\n    if (e.touches.length > 0) {\n      scratchAtPoint(e.touches[0].clientX, e.touches[0].clientY);\n    }\n  };\n\n  return (\n    <div className=\"flex flex-col items-center gap-3 p-5 rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950 shadow-xl\">\n      <div className=\"relative w-[280px] h-[140px] rounded-2xl overflow-hidden border border-zinc-200 dark:border-white/10 select-none\">\n        {/* Hidden Content Underneath */}\n        <div className=\"absolute inset-0 flex flex-col items-center justify-center bg-gradient-to-br from-indigo-950 to-zinc-900 text-center p-4\">\n          <Gift size={24} className=\"text-amber-400 mb-1\" weight=\"fill\" />\n          <span className=\"font-mono text-sm font-bold text-white tracking-widest\">\n            COOKI-PRO-VIP99\n          </span>\n          <span className=\"text-[10px] text-zinc-400 font-mono mt-0.5\">\n            100% OFF PRO REGISTRY\n          </span>\n        </div>\n\n        {/* Scratch Surface Canvas */}\n        <canvas\n          ref={canvasRef}\n          onMouseMove={handleMouseMove}\n          onTouchMove={handleTouchMove}\n          onTouchStart={handleTouchMove}\n          onClick={(e) => scratchAtPoint(e.clientX, e.clientY)}\n          className=\"absolute inset-0 w-full h-full cursor-crosshair touch-none\"\n        />\n      </div>\n\n      <button\n        onClick={initCanvas}\n        className=\"flex items-center gap-1.5 px-3 py-1 rounded-lg bg-zinc-100 dark:bg-zinc-800 text-xs font-mono text-zinc-700 dark:text-zinc-300 hover:text-zinc-900 dark:hover:text-white transition-colors cursor-pointer\"\n      >\n        <ArrowClockwise size={12} />\n        <span>Reset Surface</span>\n      </button>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "spotlight-border-card",
    "type": "registry:ui",
    "title": "Spotlight Border Card",
    "description": "Interactive card with dynamic cursor-following illuminated rainbow perimeter border glow using mouse position geometry.",
    "category": "cards",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/cards/spotlight-border-card/spotlight-border-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/spotlight-border-card.tsx",
        "content": "import React, { useRef, useState } from 'react';\nimport { Cpu, ArrowUpRight } from '@phosphor-icons/react';\n\nexport interface SpotlightBorderCardProps {\n  title?: string;\n  description?: string;\n  className?: string;\n}\n\nexport const SpotlightBorderCard: React.FC<SpotlightBorderCardProps> = ({\n  title = 'Autonomous Agent Pipeline',\n  description = 'High-velocity distributed execution graph powered by continuous neural feedback and deterministic verification loops.',\n  className = '',\n}) => {\n  const cardRef = useRef<HTMLDivElement>(null);\n  const [mousePos, setMousePos] = useState({ x: 0, y: 0 });\n  const [isHovered, setIsHovered] = useState(false);\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    if (!cardRef.current) return;\n    const rect = cardRef.current.getBoundingClientRect();\n    setMousePos({\n      x: e.clientX - rect.left,\n      y: e.clientY - rect.top,\n    });\n  };\n\n  return (\n    <div\n      ref={cardRef}\n      onMouseMove={handleMouseMove}\n      onMouseEnter={() => setIsHovered(true)}\n      onMouseLeave={() => setIsHovered(false)}\n      className={`relative w-full max-w-sm rounded-3xl p-[1.5px] overflow-hidden transition-all duration-300 group ${className}`}\n    >\n      {/* Dynamic Cursor Spotlight Border */}\n      <div\n        className=\"pointer-events-none absolute inset-0 transition-opacity duration-300\"\n        style={{\n          opacity: isHovered ? 1 : 0,\n          background: `radial-gradient(280px circle at ${mousePos.x}px ${mousePos.y}px, rgba(99, 102, 241, 0.8), rgba(236, 72, 153, 0.6), transparent 70%)`,\n        }}\n      />\n\n      {/* Card Body */}\n      <div className=\"relative z-10 w-full h-full rounded-[22px] bg-white dark:bg-zinc-950 p-6 flex flex-col justify-between border border-zinc-200/80 dark:border-white/10 shadow-xl\">\n        <div className=\"space-y-3\">\n          <div className=\"flex items-center justify-between\">\n            <span className=\"flex h-9 w-9 items-center justify-center rounded-xl bg-indigo-50 dark:bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 border border-indigo-200 dark:border-indigo-500/20\">\n              <Cpu size={18} weight=\"bold\" />\n            </span>\n            <span className=\"font-mono text-[10px] font-semibold text-emerald-600 dark:text-emerald-400 bg-emerald-500/10 px-2 py-0.5 rounded-full border border-emerald-500/20\">\n              ACTIVE\n            </span>\n          </div>\n\n          <h3 className=\"text-base font-bold text-zinc-900 dark:text-white tracking-tight group-hover:text-indigo-600 dark:group-hover:text-indigo-400 transition-colors\">\n            {title}\n          </h3>\n          <p className=\"text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed\">\n            {description}\n          </p>\n        </div>\n\n        <div className=\"pt-4 mt-4 border-t border-zinc-100 dark:border-white/5 flex items-center justify-between text-xs font-mono\">\n          <span className=\"text-zinc-400\">99.98% Latency SLI</span>\n          <div className=\"flex items-center gap-1 text-indigo-600 dark:text-indigo-400 font-semibold group-hover:translate-x-0.5 transition-transform\">\n            <span>Inspect</span>\n            <ArrowUpRight size={13} weight=\"bold\" />\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "spotlight-card",
    "type": "registry:ui",
    "title": "Radial Cursor Spotlight Card",
    "description": "Card with a dynamic radial cursor spotlight illuminating borders and background on hover.",
    "category": "cards",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "card",
      "spotlight",
      "radial",
      "hover"
    ],
    "files": [
      {
        "path": "registry/cards/spotlight-card/spotlight-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/spotlight-card.tsx",
        "content": "import React, { useRef, useState } from 'react'\nimport { motion } from 'framer-motion'\nimport { cn } from '@/lib/utils'\n\nexport interface SpotlightCardProps {\n  title?: string\n  description?: string\n  icon?: React.ReactNode\n  spotlightColor?: string\n  className?: string\n}\n\nexport const SpotlightCard: React.FC<SpotlightCardProps> = ({\n  title = 'SMT Formal Invariant Engine',\n  description = 'Solves symbolic execution constraints and proves deadlock freedom with mathematical certainty before emission.',\n  icon,\n  spotlightColor = 'rgba(56, 189, 248, 0.15)',\n  className,\n}) => {\n  const divRef = useRef<HTMLDivElement>(null)\n  const [position, setPosition] = useState({ x: 0, y: 0 })\n  const [opacity, setOpacity] = useState(0)\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    if (!divRef.current) return\n    const div = divRef.current\n    const rect = div.getBoundingClientRect()\n    setPosition({ x: e.clientX - rect.left, y: e.clientY - rect.top })\n  }\n\n  return (\n    <div\n      ref={divRef}\n      onMouseMove={handleMouseMove}\n      onMouseEnter={() => setOpacity(1)}\n      onMouseLeave={() => setOpacity(0)}\n      className={cn(\n        'relative overflow-hidden rounded-3xl border border-white/10 bg-zinc-950 p-6 text-white transition-colors hover:border-white/20',\n        className\n      )}\n    >\n      {/* Radial Spotlight Overlay */}\n      <div\n        className=\"pointer-events-none absolute -inset-px transition-opacity duration-300\"\n        style={{\n          opacity,\n          background: `radial-gradient(400px circle at ${position.x}px ${position.y}px, ${spotlightColor}, transparent 80%)`,\n        }}\n      />\n\n      <div className=\"relative z-10\">\n        {icon && <div className=\"mb-4 inline-flex h-10 w-10 items-center justify-center rounded-xl bg-white/5 border border-white/10 text-white\">{icon}</div>}\n        <h4 className=\"text-base font-bold text-zinc-900 dark:text-white tracking-tight\">{title}</h4>\n        <p className=\"mt-2 text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed\">{description}</p>\n        <div className=\"mt-4 flex items-center gap-2 font-mono text-[11px] text-zinc-500\">\n          <span className=\"h-1.5 w-1.5 rounded-full bg-cyan-400\" />\n          <span>Interactive Cursor Glow</span>\n        </div>\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "stack-card-deck",
    "type": "registry:ui",
    "title": "Swipeable Layered Card Deck",
    "description": "3D stacked card deck with rotational tilt offsets; clicking top card glides it into the back with spring physics.",
    "category": "cards",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/cards/stack-card-deck/stack-card-deck.tsx",
        "type": "registry:ui",
        "target": "components/ui/stack-card-deck.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { ArrowsClockwise } from '@phosphor-icons/react';\n\nconst DECK = [\n  { id: 1, title: 'WASM Compiler', desc: 'Hermetic binary build pipeline with zero network overhead.', badge: 'RUST 1.84', color: 'bg-indigo-600' },\n  { id: 2, title: 'Edge Routing', desc: 'Anycast DNS with sub-5ms round-trip to 310 global PoPs.', badge: 'GLOBAL CDN', color: 'bg-cyan-600' },\n  { id: 3, title: 'Zero Backend', desc: 'Pure statically hosted shadcn-compatible component registry.', badge: 'VERCEL EDGE', color: 'bg-emerald-600' },\n];\n\nexport const StackCardDeck: React.FC = () => {\n  const [cards, setCards] = useState(DECK);\n\n  const popCard = () => {\n    setCards((prev) => {\n      const copy = [...prev];\n      const top = copy.shift()!;\n      copy.push(top);\n      return copy;\n    });\n  };\n\n  return (\n    <div className=\"relative w-64 h-52 flex flex-col items-center justify-center select-none cursor-pointer\" onClick={popCard}>\n      {cards.map((c, i) => {\n        const isTop = i === 0;\n        return (\n          <motion.div\n            key={c.id}\n            layout\n            initial={{ scale: 0.9, y: 15 }}\n            animate={{\n              scale: 1 - i * 0.05,\n              y: i * 8,\n              zIndex: 10 - i,\n              rotate: i === 1 ? -3 : i === 2 ? 3 : 0,\n            }}\n            transition={{ type: 'spring', damping: 20, stiffness: 280 }}\n            className={`absolute inset-0 rounded-2xl p-5 text-white shadow-xl flex flex-col justify-between ${c.color} border border-white/20`}\n          >\n            <div className=\"flex justify-between items-center\">\n              <span className=\"text-[10px] font-mono px-2 py-0.5 rounded-full bg-white/20 uppercase tracking-widest\">{c.badge}</span>\n              {isTop && <span className=\"text-[10px] font-mono opacity-70\">Click to flip</span>}\n            </div>\n            <div>\n              <h4 className=\"font-bold text-base\">{c.title}</h4>\n              <p className=\"text-xs text-white/80 mt-1\">{c.desc}</p>\n            </div>\n          </motion.div>\n        );\n      })}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "terminal-card",
    "type": "registry:ui",
    "title": "Interactive Developer Terminal Card",
    "description": "Simulated developer CLI shell executing interactive commands with status logs.",
    "category": "cards",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "card",
      "terminal",
      "cli",
      "bash"
    ],
    "files": [
      {
        "path": "registry/cards/terminal-card/terminal-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/terminal-card.tsx",
        "content": "import React, { useState } from 'react';\nimport { Terminal, Copy, Check, Play } from '@phosphor-icons/react';\n\ninterface TerminalLine {\n  type: 'input' | 'output' | 'success' | 'error';\n  text: string;\n}\n\nexport const TerminalCard: React.FC = () => {\n  const [copied, setCopied] = useState(false);\n  const [inputVal, setInputVal] = useState('');\n  const [history, setHistory] = useState<TerminalLine[]>([\n    { type: 'input', text: 'npx cook-ui add magnetic-dock' },\n    { type: 'output', text: '✔ Resolving components and dependencies...' },\n    { type: 'output', text: '✔ Generated components/ui/magnetic-dock.tsx' },\n    { type: 'success', text: '✨ Ready in 342ms. Happy building!' },\n  ]);\n\n  const handleCopy = () => {\n    navigator.clipboard.writeText('npx cook-ui add magnetic-dock');\n    setCopied(true);\n    setTimeout(() => setCopied(false), 2000);\n  };\n\n  const handleCommand = (e: React.FormEvent) => {\n    e.preventDefault();\n    const cmd = inputVal.trim();\n    if (!cmd) return;\n\n    const newLines: TerminalLine[] = [...history, { type: 'input', text: cmd }];\n\n    if (cmd === 'clear') {\n      setHistory([]);\n      setInputVal('');\n      return;\n    } else if (cmd === 'help') {\n      newLines.push(\n        { type: 'output', text: 'Available commands:' },\n        { type: 'output', text: '  build     - trigger simulated project build' },\n        { type: 'output', text: '  stats     - display component library metrics' },\n        { type: 'output', text: '  clear     - wipe terminal buffer' }\n      );\n    } else if (cmd === 'build') {\n      newLines.push(\n        { type: 'output', text: 'vite v6.2.0 building for production...' },\n        { type: 'output', text: '✓ 42 modules transformed.' },\n        { type: 'success', text: 'dist/index.html   1.42 kB │ gzip: 0.65 kB' }\n      );\n    } else if (cmd === 'stats') {\n      newLines.push(\n        { type: 'output', text: 'Components: 42 active' },\n        { type: 'output', text: 'FPS: 60 locked' },\n        { type: 'success', text: 'Performance score: 100/100' }\n      );\n    } else {\n      newLines.push({ type: 'error', text: `Command not found: ${cmd}. Type 'help' for commands.` });\n    }\n\n    setHistory(newLines);\n    setInputVal('');\n  };\n\n  return (\n    <div className=\"w-full max-w-lg rounded-2xl bg-zinc-950 border border-zinc-800 shadow-2xl overflow-hidden font-mono text-xs\">\n      {/* Terminal Titlebar */}\n      <div className=\"flex items-center justify-between px-4 py-3 bg-zinc-900/90 border-b border-zinc-800\">\n        <div className=\"flex items-center gap-2\">\n          <div className=\"w-3 h-3 rounded-full bg-rose-500/80\" />\n          <div className=\"w-3 h-3 rounded-full bg-amber-500/80\" />\n          <div className=\"w-3 h-3 rounded-full bg-emerald-500/80\" />\n          <span className=\"ml-2 text-zinc-400 text-[11px] font-sans font-medium flex items-center gap-1.5\">\n            <Terminal size={14} className=\"text-zinc-500\" />\n            bash — 80x24\n          </span>\n        </div>\n\n        <button\n          onClick={handleCopy}\n          className=\"flex items-center gap-1 text-[11px] font-sans text-zinc-400 hover:text-white transition-colors cursor-pointer\"\n        >\n          {copied ? (\n            <>\n              <Check size={12} className=\"text-emerald-400\" />\n              <span className=\"text-emerald-400\">Copied</span>\n            </>\n          ) : (\n            <>\n              <Copy size={12} />\n              <span>Copy</span>\n            </>\n          )}\n        </button>\n      </div>\n\n      {/* Terminal Body */}\n      <div className=\"p-4 space-y-2 max-h-[220px] overflow-y-auto\">\n        {history.map((line, idx) => (\n          <div key={idx} className=\"leading-relaxed\">\n            {line.type === 'input' && (\n              <div className=\"flex items-center gap-2 text-zinc-200\">\n                <span className=\"text-cyan-400 font-bold\">~</span>\n                <span className=\"text-indigo-400\">$</span>\n                <span>{line.text}</span>\n              </div>\n            )}\n            {line.type === 'output' && <div className=\"text-zinc-400 pl-4\">{line.text}</div>}\n            {line.type === 'success' && <div className=\"text-emerald-400 pl-4 font-medium\">{line.text}</div>}\n            {line.type === 'error' && <div className=\"text-rose-400 pl-4\">{line.text}</div>}\n          </div>\n        ))}\n\n        {/* Input prompt line */}\n        <form onSubmit={handleCommand} className=\"flex items-center gap-2 text-zinc-200 pt-1\">\n          <span className=\"text-cyan-400 font-bold\">~</span>\n          <span className=\"text-indigo-400\">$</span>\n          <input\n            id=\"terminal-card-input\"\n            name=\"terminalInput\"\n            aria-label=\"Terminal command input\"\n            type=\"text\"\n            value={inputVal}\n            onChange={(e) => setInputVal(e.target.value)}\n            placeholder=\"Type 'help', 'build', 'stats', 'clear'...\"\n            className=\"flex-1 bg-transparent text-zinc-100 placeholder-zinc-600 outline-none text-xs\"\n          />\n          <button type=\"submit\" className=\"text-zinc-500 hover:text-zinc-300\">\n            <Play size={10} weight=\"fill\" />\n          </button>\n        </form>\n      </div>\n    </div>\n  );\n};\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "fluid-particle-cursor",
    "type": "registry:ui",
    "title": "Fluid Particle Stardust Cursor",
    "description": "Interactive stardust cursor trail emitting glowing fading chromatic particle motes that decay with physical drag and opacity dissipation.",
    "category": "cursors",
    "dependencies": [],
    "files": [
      {
        "path": "registry/cursors/fluid-particle-cursor/fluid-particle-cursor.tsx",
        "type": "registry:ui",
        "target": "components/ui/fluid-particle-cursor.tsx",
        "content": "import React, { useRef, useEffect } from 'react';\n\ninterface Particle {\n  x: number;\n  y: number;\n  vx: number;\n  vy: number;\n  size: number;\n  alpha: number;\n  color: string;\n}\n\nexport const FluidParticleCursor: React.FC = () => {\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n  const particlesRef = useRef<Particle[]>([]);\n  const animIdRef = useRef<number | null>(null);\n  const isRunningRef = useRef(false);\n\n  const startLoop = () => {\n    if (isRunningRef.current) return;\n    isRunningRef.current = true;\n\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    const render = () => {\n      if (particlesRef.current.length === 0) {\n        ctx.clearRect(0, 0, canvas.width, canvas.height);\n        isRunningRef.current = false;\n        animIdRef.current = null;\n        return;\n      }\n\n      ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n      for (let i = particlesRef.current.length - 1; i >= 0; i--) {\n        const p = particlesRef.current[i];\n        p.x += p.vx;\n        p.y += p.vy;\n        p.alpha *= 0.94;\n        p.size *= 0.97;\n\n        if (p.alpha < 0.02 || p.size < 0.5) {\n          particlesRef.current.splice(i, 1);\n          continue;\n        }\n\n        ctx.save();\n        ctx.globalAlpha = p.alpha;\n        ctx.fillStyle = p.color;\n        ctx.shadowColor = p.color;\n        ctx.shadowBlur = 8;\n        ctx.beginPath();\n        ctx.arc(p.x, p.y, p.size, 0, Math.PI * 2);\n        ctx.fill();\n        ctx.restore();\n      }\n\n      animIdRef.current = requestAnimationFrame(render);\n    };\n\n    animIdRef.current = requestAnimationFrame(render);\n  };\n\n  useEffect(() => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n\n    const handleResize = () => {\n      const rect = canvas.getBoundingClientRect();\n      if (rect.width > 0 && rect.height > 0) {\n        canvas.width = rect.width;\n        canvas.height = rect.height;\n      }\n    };\n\n    handleResize();\n    const observer = new ResizeObserver(handleResize);\n    observer.observe(canvas);\n\n    return () => {\n      observer.disconnect();\n      if (animIdRef.current) {\n        cancelAnimationFrame(animIdRef.current);\n      }\n    };\n  }, []);\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLCanvasElement>) => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const rect = canvas.getBoundingClientRect();\n    const x = e.clientX - rect.left;\n    const y = e.clientY - rect.top;\n\n    const colors = ['#6366f1', '#38bdf8', '#a855f7', '#34d399', '#f43f5e'];\n\n    for (let i = 0; i < 3; i++) {\n      particlesRef.current.push({\n        x,\n        y,\n        vx: (Math.random() - 0.5) * 2.5,\n        vy: (Math.random() - 0.5) * 2.5,\n        size: Math.random() * 3.5 + 2,\n        alpha: 1,\n        color: colors[Math.floor(Math.random() * colors.length)],\n      });\n    }\n\n    startLoop();\n  };\n\n  return (\n    <div className=\"relative w-full h-64 rounded-2xl overflow-hidden bg-zinc-950 border border-white/10 flex items-center justify-center\">\n      <div className=\"absolute inset-0 flex flex-col items-center justify-center pointer-events-none z-10\">\n        <span className=\"text-xs font-mono uppercase tracking-widest text-zinc-500\">\n          Move cursor to draw luminous stardust\n        </span>\n        <span className=\"text-[11px] font-mono text-zinc-600 mt-1\">Velocity Particle Dispersion</span>\n      </div>\n      <canvas\n        ref={canvasRef}\n        onMouseMove={handleMouseMove}\n        className=\"w-full h-full cursor-crosshair\"\n      />\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "interactive-hud-cursor",
    "type": "registry:ui",
    "title": "Interactive HUD Cursor",
    "description": "Sci-fi tactical targeting reticle cursor with spring-damped tracking, coordinate readouts, lock-on brackets, and interactive pulse click physics.",
    "category": "cursors",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/cursors/interactive-hud-cursor/interactive-hud-cursor.tsx",
        "type": "registry:ui",
        "target": "components/ui/interactive-hud-cursor.tsx",
        "content": "import React, { useState, useRef, useEffect } from 'react';\nimport { motion, useMotionValue, useSpring } from 'framer-motion';\nimport { Target, Crosshair, Compass } from '@phosphor-icons/react';\n\nexport interface InteractiveHudCursorProps {\n  colorTheme?: 'cyan' | 'emerald' | 'amber' | 'rose';\n  showCoordinates?: boolean;\n  reticleSize?: number;\n  className?: string;\n}\n\nexport const InteractiveHudCursor: React.FC<InteractiveHudCursorProps> = ({\n  colorTheme = 'cyan',\n  showCoordinates = true,\n  reticleSize = 56,\n  className = '',\n}) => {\n  const containerRef = useRef<HTMLDivElement>(null);\n  const [coords, setCoords] = useState({ x: 0, y: 0 });\n  const [isInside, setIsInside] = useState(false);\n  const [isLocked, setIsLocked] = useState(false);\n\n  // Smooth spring motion values for lagging reticle\n  const mouseX = useMotionValue(0);\n  const mouseY = useMotionValue(0);\n\n  const springConfig = { damping: 25, stiffness: 350 };\n  const smoothX = useSpring(mouseX, springConfig);\n  const smoothY = useSpring(mouseY, springConfig);\n\n  const themeConfig = {\n    cyan: {\n      accent: 'text-cyan-400',\n      border: 'border-cyan-400/80',\n      glow: 'shadow-[0_0_15px_rgba(34,211,238,0.4)]',\n      bg: 'bg-cyan-500/10',\n      dot: 'bg-cyan-400',\n    },\n    emerald: {\n      accent: 'text-emerald-400',\n      border: 'border-emerald-400/80',\n      glow: 'shadow-[0_0_15px_rgba(52,211,153,0.4)]',\n      bg: 'bg-emerald-500/10',\n      dot: 'bg-emerald-400',\n    },\n    amber: {\n      accent: 'text-amber-400',\n      border: 'border-amber-400/80',\n      glow: 'shadow-[0_0_15px_rgba(251,191,36,0.4)]',\n      bg: 'bg-amber-500/10',\n      dot: 'bg-amber-400',\n    },\n    rose: {\n      accent: 'text-rose-400',\n      border: 'border-rose-400/80',\n      glow: 'shadow-[0_0_15px_rgba(251,113,133,0.4)]',\n      bg: 'bg-rose-500/10',\n      dot: 'bg-rose-400',\n    },\n  }[colorTheme];\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    if (!containerRef.current) return;\n    const rect = containerRef.current.getBoundingClientRect();\n    const x = Math.round(e.clientX - rect.left);\n    const y = Math.round(e.clientY - rect.top);\n    \n    setCoords({ x, y });\n    mouseX.set(x);\n    mouseY.set(y);\n    if (!isInside) setIsInside(true);\n  };\n\n  const handleMouseDown = () => {\n    setIsLocked(true);\n  };\n\n  const handleMouseUp = () => {\n    setTimeout(() => setIsLocked(false), 300);\n  };\n\n  return (\n    <div\n      ref={containerRef}\n      onMouseMove={handleMouseMove}\n      onMouseEnter={() => setIsInside(true)}\n      onMouseLeave={() => setIsInside(false)}\n      onMouseDown={handleMouseDown}\n      onMouseUp={handleMouseUp}\n      className={`relative w-full h-80 rounded-3xl overflow-hidden bg-[#07080c] border border-white/10 select-none cursor-none flex items-center justify-center ${className}`}\n    >\n      {/* Sci-fi HUD Background Grid */}\n      <div className=\"absolute inset-0 bg-[linear-gradient(to_right,#1f293718_1px,transparent_1px),linear-gradient(to_bottom,#1f293718_1px,transparent_1px)] bg-[size:24px_24px] pointer-events-none\" />\n      <div className=\"absolute inset-0 bg-[radial-gradient(circle_at_center,transparent_40%,#07080c_90%)] pointer-events-none\" />\n\n      {/* Target Dummy Nodes inside container for interaction */}\n      <div className=\"absolute inset-0 pointer-events-none flex items-center justify-around px-8\">\n        {[\n          { label: 'ALPHA-01', dist: '124m' },\n          { label: 'BEACON-09', dist: '480m' },\n          { label: 'PROXY-77', dist: '210m' },\n        ].map((node, i) => (\n          <div key={i} className=\"flex flex-col items-center gap-1.5 opacity-60\">\n            <div className=\"h-2 w-2 rounded-full border border-cyan-400/80 bg-cyan-500/20\" />\n            <span className=\"text-[10px] font-mono text-zinc-500\">{node.label}</span>\n            <span className=\"text-[9px] font-mono text-zinc-600\">{node.dist}</span>\n          </div>\n        ))}\n      </div>\n\n      {/* Instructions when idle */}\n      {!isInside && (\n        <div className=\"flex flex-col items-center gap-2 pointer-events-none z-10 text-center px-4\">\n          <div className=\"flex h-10 w-10 items-center justify-center rounded-2xl border border-white/10 bg-white/5 text-zinc-400\">\n            <Crosshair size={20} weight=\"bold\" />\n          </div>\n          <span className=\"text-xs font-mono uppercase tracking-widest text-zinc-400 font-semibold\">\n            Move pointer inside arena to engage HUD\n          </span>\n          <span className=\"text-[11px] font-mono text-zinc-600\">\n            Click anywhere to trigger active lock-on reticle\n          </span>\n        </div>\n      )}\n\n      {/* Trailing Spring-Damped Reticle Cursor */}\n      {isInside && (\n        <motion.div\n          style={{\n            x: smoothX,\n            y: smoothY,\n            translateX: '-50%',\n            translateY: '-50%',\n          }}\n          className=\"absolute top-0 left-0 pointer-events-none z-30\"\n        >\n          {/* Main Reticle Outer Frame */}\n          <div\n            style={{ width: `${reticleSize}px`, height: `${reticleSize}px` }}\n            className={`relative flex items-center justify-center transition-transform duration-150 ${\n              isLocked ? 'scale-75' : 'scale-100'\n            }`}\n          >\n            {/* Top-Left Bracket */}\n            <div className={`absolute top-0 left-0 w-3 h-3 border-t-2 border-l-2 ${themeConfig.border} ${themeConfig.glow}`} />\n            {/* Top-Right Bracket */}\n            <div className={`absolute top-0 right-0 w-3 h-3 border-t-2 border-r-2 ${themeConfig.border} ${themeConfig.glow}`} />\n            {/* Bottom-Left Bracket */}\n            <div className={`absolute bottom-0 left-0 w-3 h-3 border-b-2 border-l-2 ${themeConfig.border} ${themeConfig.glow}`} />\n            {/* Bottom-Right Bracket */}\n            <div className={`absolute bottom-0 right-0 w-3 h-3 border-b-2 border-r-2 ${themeConfig.border} ${themeConfig.glow}`} />\n\n            {/* Rotating Outer Dashed Aim Ring */}\n            <div className={`absolute inset-1 rounded-full border border-dashed ${themeConfig.border} animate-[spin_10s_linear_infinite] opacity-60`} />\n\n            {/* Inner Lock Target */}\n            <div className={`h-2.5 w-2.5 rounded-full ${themeConfig.dot} transition-transform ${isLocked ? 'scale-150 animate-ping' : 'scale-100'}`} />\n\n            {/* Locking State Ring Pulse */}\n            {isLocked && (\n              <div className={`absolute -inset-2 rounded-full border-2 ${themeConfig.border} animate-ping opacity-80`} />\n            )}\n\n            {/* Telemetry Coordinate Label */}\n            {showCoordinates && (\n              <div className=\"absolute left-full top-0 ml-3.5 whitespace-nowrap font-mono text-[10px] flex flex-col gap-0.5 pointer-events-none\">\n                <span className={`font-bold ${themeConfig.accent}`}>\n                  LOC: X {coords.x.toString().padStart(3, '0')} / Y {coords.y.toString().padStart(3, '0')}\n                </span>\n                <span className=\"text-zinc-500 uppercase text-[9px]\">\n                  {isLocked ? 'STATUS: [LOCKED]' : 'STATUS: [TRACKING]'}\n                </span>\n              </div>\n            )}\n          </div>\n        </motion.div>\n      )}\n\n      {/* Immediate Hardware Pinpoint Dot */}\n      {isInside && (\n        <div\n          style={{\n            transform: `translate(${coords.x}px, ${coords.y}px)`,\n          }}\n          className=\"absolute top-0 left-0 -translate-x-1/2 -translate-y-1/2 pointer-events-none z-40\"\n        >\n          <div className=\"h-1.5 w-1.5 rounded-full bg-white shadow-[0_0_8px_#ffffff]\" />\n        </div>\n      )}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "magnetic-cursor-follower",
    "type": "registry:ui",
    "title": "Magnetic Cursor Follower",
    "description": "Kinetic cursor follower with spring-lag physics that magnetically snaps to nearby interactive buttons within proximity threshold.",
    "category": "cursors",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/cursors/magnetic-cursor-follower/magnetic-cursor-follower.tsx",
        "type": "registry:ui",
        "target": "components/ui/magnetic-cursor-follower.tsx",
        "content": "import React, { useState, useEffect, useRef } from 'react';\nimport { motion, useSpring, useMotionValue } from 'framer-motion';\n\nexport const MagneticCursorFollower: React.FC = () => {\n  const containerRef = useRef<HTMLDivElement>(null);\n  const [isHovered, setIsHovered] = useState(false);\n  const [activeTarget, setActiveTarget] = useState<string | null>(null);\n\n  const mouseX = useMotionValue(0);\n  const mouseY = useMotionValue(0);\n\n  const springConfig = { damping: 25, stiffness: 350 };\n  const cursorX = useSpring(mouseX, springConfig);\n  const cursorY = useSpring(mouseY, springConfig);\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    if (!containerRef.current) return;\n    const rect = containerRef.current.getBoundingClientRect();\n    mouseX.set(e.clientX - rect.left);\n    mouseY.set(e.clientY - rect.top);\n  };\n\n  return (\n    <div\n      ref={containerRef}\n      onMouseMove={handleMouseMove}\n      onMouseEnter={() => setIsHovered(true)}\n      onMouseLeave={() => {\n        setIsHovered(false);\n        setActiveTarget(null);\n      }}\n      className=\"relative w-full h-64 rounded-2xl overflow-hidden bg-zinc-950/80 border border-white/10 flex flex-col items-center justify-center gap-4 cursor-none p-6 select-none\"\n    >\n      <span className=\"text-xs font-mono uppercase tracking-widest text-zinc-500\">\n        Move pointer over interactive elements\n      </span>\n\n      <div className=\"flex items-center gap-4 z-10\">\n        {['Deploy', 'Analyze', 'Terminal'].map((label) => (\n          <button\n            key={label}\n            onMouseEnter={() => setActiveTarget(label)}\n            onMouseLeave={() => setActiveTarget(null)}\n            className=\"px-4 py-2 rounded-xl bg-white/5 border border-white/10 text-xs font-mono text-zinc-300 hover:text-white hover:border-indigo-500/50 hover:bg-indigo-500/10 transition-colors\"\n          >\n            {label}\n          </button>\n        ))}\n      </div>\n\n      {/* Spring Follower Cursor */}\n      {isHovered && (\n        <motion.div\n          style={{ x: cursorX, y: cursorY }}\n          className=\"pointer-events-none absolute top-0 left-0 -translate-x-1/2 -translate-y-1/2 z-30\"\n        >\n          <motion.div\n            animate={{\n              scale: activeTarget ? 1.8 : 1,\n              borderColor: activeTarget ? 'rgba(99, 102, 241, 0.9)' : 'rgba(255, 255, 255, 0.5)',\n              backgroundColor: activeTarget ? 'rgba(99, 102, 241, 0.15)' : 'transparent',\n            }}\n            transition={{ type: 'spring', damping: 20, stiffness: 300 }}\n            className=\"w-8 h-8 rounded-full border-2 backdrop-blur-xs flex items-center justify-center\"\n          >\n            <div className=\"w-1.5 h-1.5 rounded-full bg-indigo-400\" />\n          </motion.div>\n        </motion.div>\n      )}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "magnetic-target-cursor",
    "type": "registry:ui",
    "title": "Magnetic Target Cursor",
    "description": "Tactical crosshair HUD cursor with magnetic element snap, real-time coordinate tracking, and target acquisition states.",
    "category": "cursors",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/cursors/magnetic-target-cursor/magnetic-target-cursor.tsx",
        "type": "registry:ui",
        "target": "components/ui/magnetic-target-cursor.tsx",
        "content": "import React, { useState, useRef, useEffect } from 'react';\nimport { Crosshair, Target, Compass, Cursor } from '@phosphor-icons/react';\n\nexport interface MagneticTargetCursorProps {\n  color?: 'cyan' | 'emerald' | 'amber' | 'rose';\n  showCoordinates?: boolean;\n  className?: string;\n}\n\nconst COLOR_STYLES = {\n  cyan: {\n    border: 'border-cyan-400',\n    text: 'text-cyan-400',\n    glow: 'shadow-[0_0_15px_rgba(6,182,212,0.6)]',\n    dot: 'bg-cyan-400',\n    badge: 'bg-cyan-500/10 text-cyan-400 border-cyan-500/20'\n  },\n  emerald: {\n    border: 'border-emerald-400',\n    text: 'text-emerald-400',\n    glow: 'shadow-[0_0_15px_rgba(16,185,129,0.6)]',\n    dot: 'bg-emerald-400',\n    badge: 'bg-emerald-500/10 text-emerald-400 border-emerald-500/20'\n  },\n  amber: {\n    border: 'border-amber-400',\n    text: 'text-amber-400',\n    glow: 'shadow-[0_0_15px_rgba(245,158,11,0.6)]',\n    dot: 'bg-amber-400',\n    badge: 'bg-amber-500/10 text-amber-400 border-amber-500/20'\n  },\n  rose: {\n    border: 'border-rose-400',\n    text: 'text-rose-400',\n    glow: 'shadow-[0_0_15px_rgba(244,63,94,0.6)]',\n    dot: 'bg-rose-400',\n    badge: 'bg-rose-500/10 text-rose-400 border-rose-500/20'\n  }\n};\n\nexport const MagneticTargetCursor: React.FC<MagneticTargetCursorProps> = ({\n  color = 'cyan',\n  showCoordinates = true,\n  className = ''\n}) => {\n  const containerRef = useRef<HTMLDivElement>(null);\n  const [coords, setCoords] = useState({ x: 160, y: 120 });\n  const [isInside, setIsInside] = useState(false);\n  const [isLocked, setIsLocked] = useState(false);\n  const [clickCount, setClickCount] = useState(0);\n\n  const styles = COLOR_STYLES[color] || COLOR_STYLES.cyan;\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    if (!containerRef.current) return;\n    const rect = containerRef.current.getBoundingClientRect();\n    const x = Math.round(e.clientX - rect.left);\n    const y = Math.round(e.clientY - rect.top);\n    setCoords({ x, y });\n    setIsInside(true);\n  };\n\n  const handleMouseEnter = () => setIsInside(true);\n  const handleMouseLeave = () => {\n    setIsInside(false);\n    setIsLocked(false);\n  };\n\n  const handleClick = () => {\n    setClickCount(prev => prev + 1);\n  };\n\n  return (\n    <div className={`w-full max-w-xl mx-auto rounded-3xl border border-zinc-200 dark:border-white/10 bg-white/95 dark:bg-[#07080d] p-6 shadow-2xl backdrop-blur-xl font-mono text-xs select-none ${className}`}>\n      {/* Top telemetry bar */}\n      <div className=\"flex items-center justify-between pb-4 border-b border-zinc-200/80 dark:border-white/5\">\n        <div className=\"flex items-center gap-3\">\n          <div className=\"flex h-8 w-8 items-center justify-center rounded-xl bg-zinc-100 dark:bg-white/5 text-zinc-900 dark:text-white\">\n            <Crosshair size={18} weight=\"bold\" className={styles.text} />\n          </div>\n          <div>\n            <h3 className=\"font-bold text-zinc-900 dark:text-white text-sm\">Precision Tactical Reticle</h3>\n            <span className=\"text-[11px] text-zinc-400\">Low-Latency HUD Cursor Tracker</span>\n          </div>\n        </div>\n\n        <div className=\"flex items-center gap-2\">\n          <span className={`px-2.5 py-1 rounded-full text-[10px] font-bold border uppercase ${isLocked ? 'bg-emerald-500/10 text-emerald-400 border-emerald-500/20' : styles.badge}`}>\n            {isLocked ? 'TARGET ACQUIRED' : isInside ? 'TRACKING' : 'IDLE'}\n          </span>\n        </div>\n      </div>\n\n      {/* Interactive Cursor Tracking Canvas */}\n      <div\n        ref={containerRef}\n        onMouseMove={handleMouseMove}\n        onMouseEnter={handleMouseEnter}\n        onMouseLeave={handleMouseLeave}\n        onClick={handleClick}\n        className=\"relative my-5 h-64 w-full rounded-2xl bg-zinc-100/70 dark:bg-[#040407] border border-zinc-200/70 dark:border-white/10 overflow-hidden cursor-crosshair group\"\n      >\n        {/* Subtle grid background */}\n        <div className=\"absolute inset-0 bg-grid-dots opacity-20 pointer-events-none\" />\n\n        {/* Interactive Magnetic Targets inside canvas */}\n        <div className=\"absolute top-8 left-10 z-10\">\n          <button\n            onMouseEnter={() => setIsLocked(true)}\n            onMouseLeave={() => setIsLocked(false)}\n            className=\"flex items-center gap-2 px-3 py-1.5 rounded-xl border border-zinc-300 dark:border-white/15 bg-white/80 dark:bg-zinc-900/80 backdrop-blur-md text-zinc-800 dark:text-zinc-200 hover:border-cyan-400 transition-colors shadow-xs\"\n          >\n            <Target size={14} className=\"text-cyan-400\" />\n            <span className=\"text-[11px]\">Primary Ingress</span>\n          </button>\n        </div>\n\n        <div className=\"absolute bottom-8 right-12 z-10\">\n          <button\n            onMouseEnter={() => setIsLocked(true)}\n            onMouseLeave={() => setIsLocked(false)}\n            className=\"flex items-center gap-2 px-3 py-1.5 rounded-xl border border-zinc-300 dark:border-white/15 bg-white/80 dark:bg-zinc-900/80 backdrop-blur-md text-zinc-800 dark:text-zinc-200 hover:border-emerald-400 transition-colors shadow-xs\"\n          >\n            <Compass size={14} className=\"text-emerald-400\" />\n            <span className=\"text-[11px]\">Vector Node</span>\n          </button>\n        </div>\n\n        {/* Custom HUD Crosshair Element */}\n        {isInside && (\n          <div\n            style={{\n              left: `${coords.x}px`,\n              top: `${coords.y}px`,\n              transform: 'translate(-50%, -50%)',\n            }}\n            className=\"pointer-events-none absolute z-20 transition-all duration-75\"\n          >\n            {/* Outer Rotating Crosshair Ring */}\n            <div className={`relative flex items-center justify-center h-10 w-10 rounded-full border border-dashed transition-all duration-150 ${\n              isLocked ? 'border-emerald-400 scale-125 animate-spin' : `${styles.border} ${styles.glow}`\n            }`}>\n              {/* Center target dot */}\n              <div className={`h-1.5 w-1.5 rounded-full ${isLocked ? 'bg-emerald-400' : styles.dot}`} />\n\n              {/* Cross tick marks */}\n              <div className=\"absolute -top-1.5 w-0.5 h-1.5 bg-current\" />\n              <div className=\"absolute -bottom-1.5 w-0.5 h-1.5 bg-current\" />\n              <div className=\"absolute -left-1.5 h-0.5 w-1.5 bg-current\" />\n              <div className=\"absolute -right-1.5 h-0.5 w-1.5 bg-current\" />\n            </div>\n\n            {/* Coordinates Floating Tag */}\n            {showCoordinates && (\n              <div className=\"absolute top-6 left-6 whitespace-nowrap px-2 py-0.5 rounded-md bg-black/80 text-white text-[9px] font-mono border border-white/10 shadow-lg\">\n                X:{coords.x} Y:{coords.y}\n              </div>\n            )}\n          </div>\n        )}\n\n        {/* Center prompt if idle */}\n        {!isInside && (\n          <div className=\"absolute inset-0 flex flex-col items-center justify-center text-zinc-400 pointer-events-none\">\n            <Cursor size={22} className=\"mb-2 text-zinc-400 opacity-60 animate-bounce\" />\n            <span className=\"text-[11px]\">Hover over canvas to engage tactical crosshair</span>\n          </div>\n        )}\n      </div>\n\n      {/* Footer Info */}\n      <div className=\"flex items-center justify-between text-[11px] text-zinc-400 pt-2 border-t border-zinc-200/60 dark:border-white/5\">\n        <div className=\"flex items-center gap-4\">\n          <span>X: <strong className=\"text-zinc-900 dark:text-zinc-200 font-mono\">{coords.x}px</strong></span>\n          <span>Y: <strong className=\"text-zinc-900 dark:text-zinc-200 font-mono\">{coords.y}px</strong></span>\n        </div>\n        <div>\n          <span>Clicks: <strong className=\"text-zinc-900 dark:text-zinc-200 font-mono\">{clickCount}</strong></span>\n        </div>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "spotlight-reveal-cursor",
    "type": "registry:ui",
    "title": "Spotlight Mask Reveal Cursor",
    "description": "Circular flashlight cursor mask revealing an illuminated technical circuit layer concealed beneath the dark surface.",
    "category": "cursors",
    "dependencies": [],
    "files": [
      {
        "path": "registry/cursors/spotlight-reveal-cursor/spotlight-reveal-cursor.tsx",
        "type": "registry:ui",
        "target": "components/ui/spotlight-reveal-cursor.tsx",
        "content": "import React, { useState, useRef } from 'react';\n\nexport const SpotlightRevealCursor: React.FC = () => {\n  const containerRef = useRef<HTMLDivElement>(null);\n  const [pos, setPos] = useState({ x: -200, y: -200 });\n  const [isInside, setIsInside] = useState(false);\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    if (!containerRef.current) return;\n    const rect = containerRef.current.getBoundingClientRect();\n    setPos({\n      x: e.clientX - rect.left,\n      y: e.clientY - rect.top,\n    });\n  };\n\n  return (\n    <div\n      ref={containerRef}\n      onMouseMove={handleMouseMove}\n      onMouseEnter={() => setIsInside(true)}\n      onMouseLeave={() => setIsInside(false)}\n      className=\"relative w-full h-64 rounded-2xl overflow-hidden bg-zinc-950 border border-white/10 flex items-center justify-center p-8 select-none\"\n    >\n      {/* Hidden Technical Layer */}\n      <div\n        className=\"absolute inset-0 p-8 flex flex-col justify-center items-center pointer-events-none transition-opacity duration-300\"\n        style={{\n          background: 'radial-gradient(ellipse at center, #1e1b4b 0%, #030712 100%)',\n          maskImage: isInside\n            ? `radial-gradient(circle 120px at ${pos.x}px ${pos.y}px, black 30%, transparent 100%)`\n            : 'none',\n          WebkitMaskImage: isInside\n            ? `radial-gradient(circle 120px at ${pos.x}px ${pos.y}px, black 30%, transparent 100%)`\n            : 'none',\n          opacity: isInside ? 1 : 0,\n        }}\n      >\n        <div className=\"font-mono text-cyan-400 text-sm font-bold tracking-widest uppercase\">\n          [ DECLASSIFIED KERNEL SPECIFICATION ]\n        </div>\n        <p className=\"mt-2 text-xs font-mono text-indigo-300 text-center max-w-sm\">\n          SHA-256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\n          <br />\n          Quantum Zero-Knowledge Cryptographic Channel Ready.\n        </p>\n      </div>\n\n      {/* Surface Masked Layer */}\n      <div className=\"z-10 text-center pointer-events-none\">\n        <span className=\"text-xs font-mono uppercase tracking-widest text-zinc-500\">\n          HOVER FLASHLIGHT TO REVEAL CIPHER\n        </span>\n        <h4 className=\"text-xl font-bold text-zinc-200 mt-1\">Concealed Cryptographic Buffer</h4>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "activity-feed-stream",
    "type": "registry:ui",
    "title": "Activity Feed Stream",
    "description": "Real-time telemetry event stream with status badges, user tokens, and relative timestamp indicators.",
    "category": "data",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/data/activity-feed-stream/activity-feed-stream.tsx",
        "type": "registry:ui",
        "target": "components/ui/activity-feed-stream.tsx",
        "content": "import React, { useState } from 'react';\nimport { GitCommit, Rocket, ShieldCheck } from '@phosphor-icons/react';\n\nconst INITIAL_EVENTS = [\n  { id: '1', type: 'deploy', user: 'alex.ts', text: 'Emitted production bundle to Vercel edge CDN', time: '1m ago' },\n  { id: '2', type: 'commit', user: 'nive.tsx', text: 'Refactored Dark/Light CSS tokens to @custom-variant', time: '4m ago' },\n  { id: '3', type: 'verify', user: 'kernel-bot', text: 'Validated 70 canonical component registry endpoints', time: '8m ago' },\n];\n\nexport const ActivityFeedStream: React.FC = () => {\n  const [events] = useState(INITIAL_EVENTS);\n\n  return (\n    <div className=\"w-full max-w-sm mx-auto p-4 rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/60 shadow-lg font-mono text-xs\">\n      <div className=\"flex items-center justify-between pb-3 border-b border-zinc-200 dark:border-white/10 mb-3\">\n        <span className=\"text-[10px] uppercase font-bold text-zinc-500 tracking-wider\">LIVE AUDIT STREAM</span>\n        <span className=\"flex items-center gap-1.5 text-[10px] text-emerald-500 font-bold\">\n          <span className=\"h-1.5 w-1.5 rounded-full bg-emerald-500 animate-pulse\" /> STREAMING\n        </span>\n      </div>\n\n      <div className=\"space-y-2.5\">\n        {events.map((ev) => (\n          <div key={ev.id} className=\"flex items-start gap-2.5 p-2 rounded-2xl hover:bg-zinc-100 dark:hover:bg-white/5 transition-colors\">\n            <div className=\"p-1.5 rounded-xl bg-indigo-500/10 text-indigo-500 mt-0.5\">\n              {ev.type === 'deploy' && <Rocket size={13} weight=\"bold\" />}\n              {ev.type === 'commit' && <GitCommit size={13} weight=\"bold\" />}\n              {ev.type === 'verify' && <ShieldCheck size={13} weight=\"bold\" />}\n            </div>\n            <div className=\"flex-1 truncate\">\n              <div className=\"flex items-center justify-between text-[10px]\">\n                <span className=\"font-bold text-zinc-900 dark:text-white\">@{ev.user}</span>\n                <span className=\"text-zinc-400\">{ev.time}</span>\n              </div>\n              <p className=\"text-[11px] text-zinc-600 dark:text-zinc-400 truncate mt-0.5\">{ev.text}</p>\n            </div>\n          </div>\n        ))}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "circular-gauge-speedometer",
    "type": "registry:ui",
    "title": "Precision Speedometer Radial Gauge",
    "description": "Semicircular radial telemetry gauge with angular needle deflection, threshold gradient arc, and real-time numeric indicator.",
    "category": "data",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/data/circular-gauge-speedometer/circular-gauge-speedometer.tsx",
        "type": "registry:ui",
        "target": "components/ui/circular-gauge-speedometer.tsx",
        "content": "import React, { useState } from 'react';\nimport { Gauge } from '@phosphor-icons/react';\n\nexport const CircularGaugeSpeedometer: React.FC = () => {\n  const [val, setVal] = useState(78);\n\n  // Map 0-100 to -90 to +90 degrees\n  const angle = (val / 100) * 180 - 90;\n\n  return (\n    <div className=\"w-full max-w-xs mx-auto p-5 rounded-2xl border border-zinc-200 dark:border-white/10 bg-white/90 dark:bg-zinc-950/80 shadow-lg backdrop-blur-md flex flex-col items-center font-mono\">\n      <div className=\"relative w-40 h-24 overflow-hidden flex items-end justify-center\">\n        {/* Arc Background */}\n        <div className=\"w-36 h-36 rounded-full border-[10px] border-zinc-200 dark:border-white/10 border-b-transparent border-l-transparent -rotate-45\" />\n\n        {/* Active Needle */}\n        <div\n          style={{ transform: `rotate(${angle}deg)` }}\n          className=\"absolute bottom-0 w-1.5 h-18 bg-indigo-500 rounded-full origin-bottom transition-transform duration-500 ease-out shadow-[0_0_8px_rgba(99,102,241,0.8)]\"\n        />\n\n        {/* Center Pivot */}\n        <div className=\"absolute bottom-0 w-4 h-4 rounded-full bg-white dark:bg-zinc-200 shadow\" />\n      </div>\n\n      <div className=\"mt-3 text-center\">\n        <span className=\"text-2xl font-bold text-zinc-900 dark:text-white\">{val}%</span>\n        <div className=\"text-[10px] text-zinc-500 uppercase tracking-widest mt-0.5\">Cluster Throughput</div>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "code-diff-slider",
    "type": "registry:ui",
    "title": "Code Diff Slider",
    "description": "Interactive git code diff compare viewer with additions, deletions, unified slider wipes, and patch copying.",
    "category": "data",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/data/code-diff-slider/code-diff-slider.tsx",
        "type": "registry:ui",
        "target": "components/ui/code-diff-slider.tsx",
        "content": "import React, { useState } from 'react';\nimport { GitDiff, GitCommit, GitBranch, Copy, Check, ArrowsLeftRight } from '@phosphor-icons/react';\n\nexport interface CodeDiffSliderProps {\n  filename?: string;\n  beforeLabel?: string;\n  afterLabel?: string;\n  className?: string;\n}\n\ninterface DiffLine {\n  type: 'add' | 'del' | 'context';\n  oldNum?: number;\n  newNum?: number;\n  content: string;\n}\n\nconst SAMPLE_DIFF: DiffLine[] = [\n  { type: 'context', oldNum: 14, newNum: 14, content: \"export async function queryMesh(nodeId: string) {\" },\n  { type: 'context', oldNum: 15, newNum: 15, content: \"  const connection = await pool.acquire();\" },\n  { type: 'del', oldNum: 16, content: \"-  const raw = await connection.fetchTelemetry(nodeId);\" },\n  { type: 'del', oldNum: 17, content: \"-  return JSON.parse(raw.payload);\" },\n  { type: 'add', newNum: 16, content: \"+  // Zero-copy direct protobuf deserialization\" },\n  { type: 'add', newNum: 17, content: \"+  const buffer = await connection.streamBytes(nodeId);\" },\n  { type: 'add', newNum: 18, content: \"+  return TelemetryProto.decode(buffer);\" },\n  { type: 'context', oldNum: 18, newNum: 19, content: \"}\" },\n];\n\nexport const CodeDiffSlider: React.FC<CodeDiffSliderProps> = ({\n  filename = \"src/telemetry/mesh-client.ts\",\n  beforeLabel = \"v1.2.0 (Legacy)\",\n  afterLabel = \"v2.0.0 (Zero-Copy)\",\n  className = \"\"\n}) => {\n  const [sliderPos, setSliderPos] = useState(50);\n  const [copied, setCopied] = useState(false);\n  const [viewMode, setViewMode] = useState<'split' | 'unified'>('split');\n\n  const additions = SAMPLE_DIFF.filter(l => l.type === 'add').length;\n  const deletions = SAMPLE_DIFF.filter(l => l.type === 'del').length;\n\n  const handleCopy = () => {\n    const raw = SAMPLE_DIFF.map(l => l.content).join('\\n');\n    navigator.clipboard.writeText(raw);\n    setCopied(true);\n    setTimeout(() => setCopied(false), 2000);\n  };\n\n  return (\n    <div className={`w-full max-w-2xl mx-auto rounded-3xl border border-zinc-200 dark:border-white/10 bg-white/95 dark:bg-[#08090e] p-6 shadow-2xl backdrop-blur-xl font-mono text-xs select-none ${className}`}>\n      {/* Diff Header */}\n      <div className=\"flex flex-wrap items-center justify-between gap-3 pb-4 border-b border-zinc-200/80 dark:border-white/5\">\n        <div className=\"flex items-center gap-3\">\n          <div className=\"flex h-8 w-8 items-center justify-center rounded-xl bg-emerald-500/10 border border-emerald-500/20 text-emerald-400\">\n            <GitDiff size={18} weight=\"bold\" />\n          </div>\n          <div>\n            <div className=\"flex items-center gap-2\">\n              <span className=\"font-bold text-zinc-900 dark:text-white text-sm\">{filename}</span>\n              <span className=\"flex items-center gap-1 px-2 py-0.5 rounded-full text-[10px] bg-zinc-100 dark:bg-white/5 text-zinc-400 border border-zinc-200 dark:border-white/10\">\n                <GitBranch size={10} />\n                <span>main</span>\n              </span>\n            </div>\n            <div className=\"flex items-center gap-3 text-[11px] text-zinc-400 mt-0.5\">\n              <span className=\"text-emerald-500 font-bold\">+{additions}</span>\n              <span className=\"text-rose-500 font-bold\">-{deletions}</span>\n              <span className=\"flex items-center gap-1 font-mono text-zinc-500\">\n                <GitCommit size={12} />\n                <span>8b3f21a</span>\n              </span>\n            </div>\n          </div>\n        </div>\n\n        <div className=\"flex items-center gap-2\">\n          {/* Toggle view */}\n          <div className=\"flex items-center rounded-xl bg-zinc-100 dark:bg-white/5 p-1 border border-zinc-200 dark:border-white/10 text-[11px]\">\n            <button\n              onClick={() => setViewMode('split')}\n              className={`px-2.5 py-1 rounded-lg transition-colors cursor-pointer font-bold ${\n                viewMode === 'split' ? 'bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white shadow-xs' : 'text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300'\n              }`}\n            >\n              Slider\n            </button>\n            <button\n              onClick={() => setViewMode('unified')}\n              className={`px-2.5 py-1 rounded-lg transition-colors cursor-pointer font-bold ${\n                viewMode === 'unified' ? 'bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white shadow-xs' : 'text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300'\n              }`}\n            >\n              Unified\n            </button>\n          </div>\n\n          <button\n            onClick={handleCopy}\n            className=\"flex h-8 w-8 items-center justify-center rounded-xl border border-zinc-200 dark:border-white/10 bg-zinc-100 dark:bg-white/5 text-zinc-600 dark:text-zinc-300 hover:text-zinc-900 dark:hover:text-white transition-colors cursor-pointer\"\n            title=\"Copy patch diff\"\n          >\n            {copied ? <Check size={14} className=\"text-emerald-500\" /> : <Copy size={14} />}\n          </button>\n        </div>\n      </div>\n\n      {/* Main Diff Code Display */}\n      {viewMode === 'unified' ? (\n        <div className=\"my-5 rounded-2xl bg-zinc-50 dark:bg-black/60 border border-zinc-200 dark:border-white/10 overflow-hidden text-[11px]\">\n          {SAMPLE_DIFF.map((line, idx) => {\n            const isAdd = line.type === 'add';\n            const isDel = line.type === 'del';\n            return (\n              <div\n                key={idx}\n                className={`flex items-center px-3 py-1 font-mono transition-colors ${\n                  isAdd ? 'bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 border-l-2 border-emerald-500' :\n                  isDel ? 'bg-rose-500/10 text-rose-600 dark:text-rose-400 border-l-2 border-rose-500 line-through opacity-75' :\n                  'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100/50 dark:hover:bg-white/[0.02]'\n                }`}\n              >\n                <span className=\"w-8 shrink-0 text-zinc-400 text-[10px] select-none text-right pr-2\">\n                  {line.oldNum || ''}\n                </span>\n                <span className=\"w-8 shrink-0 text-zinc-400 text-[10px] select-none text-right pr-3\">\n                  {line.newNum || ''}\n                </span>\n                <span className=\"whitespace-pre truncate\">{line.content}</span>\n              </div>\n            );\n          })}\n        </div>\n      ) : (\n        <div className=\"relative my-5 rounded-2xl bg-zinc-50 dark:bg-black/60 border border-zinc-200 dark:border-white/10 overflow-hidden text-[11px]\">\n          {/* Subheader showing compare version names */}\n          <div className=\"flex items-center justify-between px-4 py-2 border-b border-zinc-200 dark:border-white/5 bg-zinc-100/50 dark:bg-white/[0.02] text-[10px] font-bold text-zinc-400 uppercase\">\n            <span className=\"text-rose-400\">{beforeLabel}</span>\n            <span className=\"text-emerald-400\">{afterLabel}</span>\n          </div>\n\n          <div className=\"p-3\">\n            {SAMPLE_DIFF.map((line, idx) => {\n              const isAdd = line.type === 'add';\n              const isDel = line.type === 'del';\n              return (\n                <div\n                  key={idx}\n                  className={`flex items-center px-2 py-1 font-mono rounded ${\n                    isAdd ? 'bg-emerald-500/15 text-emerald-600 dark:text-emerald-400' :\n                    isDel ? 'bg-rose-500/15 text-rose-600 dark:text-rose-400' :\n                    'text-zinc-700 dark:text-zinc-300'\n                  }`}\n                >\n                  <span className=\"w-6 shrink-0 text-zinc-400 select-none font-bold\">\n                    {isAdd ? '+' : isDel ? '-' : ' '}\n                  </span>\n                  <span className=\"whitespace-pre truncate\">{line.content.replace(/^[+-]\\s*/, '')}</span>\n                </div>\n              );\n            })}\n          </div>\n\n          {/* Interactive slider controller */}\n          <div className=\"p-3 border-t border-zinc-200 dark:border-white/5 flex items-center gap-3\">\n            <ArrowsLeftRight size={14} className=\"text-zinc-400 shrink-0\" />\n            <input\n              type=\"range\"\n              min=\"0\"\n              max=\"100\"\n              value={sliderPos}\n              onChange={(e) => setSliderPos(Number(e.target.value))}\n              className=\"w-full h-1.5 bg-zinc-200 dark:bg-white/10 rounded-lg appearance-none cursor-pointer accent-emerald-500\"\n              aria-label=\"Diff inspect slider\"\n            />\n            <span className=\"text-[10px] text-zinc-400 font-mono w-8 text-right\">{sliderPos}%</span>\n          </div>\n        </div>\n      )}\n\n      {/* Footer telemetry */}\n      <div className=\"flex items-center justify-between text-[11px] text-zinc-400 pt-2 border-t border-zinc-200/60 dark:border-white/5\">\n        <span>Parsed in 0.8ms</span>\n        <span className=\"font-semibold text-zinc-600 dark:text-zinc-300\">Clean Unified Patch</span>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "comparative-feature-table",
    "type": "registry:ui",
    "title": "Comparative Feature Table",
    "description": "Matrix comparison table with collapsible feature groupings and plan tier checkmarks.",
    "category": "data",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/data/comparative-feature-table/comparative-feature-table.tsx",
        "type": "registry:ui",
        "target": "components/ui/comparative-feature-table.tsx",
        "content": "import React from 'react';\nimport { Check, X } from '@phosphor-icons/react';\n\nexport const ComparativeFeatureTable: React.FC = () => {\n  const rows = [\n    { name: '70+ Verified UI Components', starter: true, pro: true, enterprise: true },\n    { name: 'Framer Motion Spring Physics', starter: true, pro: true, enterprise: true },\n    { name: 'Interactive GLSL Shaders', starter: false, pro: true, enterprise: true },\n    { name: 'Zero-Lockin Source Ownership', starter: true, pro: true, enterprise: true },\n    { name: 'Dedicated SLAs & Audit Log', starter: false, pro: false, enterprise: true },\n  ];\n\n  return (\n    <div className=\"w-full max-w-xl mx-auto rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950 p-4 shadow-lg overflow-x-auto font-mono text-xs\">\n      <table className=\"w-full text-left border-collapse\">\n        <thead>\n          <tr className=\"border-b border-zinc-200 dark:border-white/10 text-[10px] text-zinc-500 uppercase\">\n            <th className=\"py-2.5 px-3\">CAPABILITY</th>\n            <th className=\"py-2.5 px-3 text-center\">STARTER</th>\n            <th className=\"py-2.5 px-3 text-center text-indigo-500 font-bold\">PRO STUDIO</th>\n            <th className=\"py-2.5 px-3 text-center\">ENTERPRISE</th>\n          </tr>\n        </thead>\n        <tbody className=\"divide-y divide-zinc-200/60 dark:divide-white/5\">\n          {rows.map((r, i) => (\n            <tr key={i} className=\"hover:bg-zinc-50 dark:hover:bg-white/[0.02]\">\n              <td className=\"py-2.5 px-3 text-zinc-800 dark:text-zinc-200\">{r.name}</td>\n              <td className=\"py-2.5 px-3 text-center\">\n                {r.starter ? <Check size={14} className=\"text-emerald-500 inline\" weight=\"bold\" /> : <X size={14} className=\"text-zinc-400 inline\" />}\n              </td>\n              <td className=\"py-2.5 px-3 text-center bg-indigo-500/5\">\n                {r.pro ? <Check size={14} className=\"text-emerald-500 inline\" weight=\"bold\" /> : <X size={14} className=\"text-zinc-400 inline\" />}\n              </td>\n              <td className=\"py-2.5 px-3 text-center\">\n                {r.enterprise ? <Check size={14} className=\"text-emerald-500 inline\" weight=\"bold\" /> : <X size={14} className=\"text-zinc-400 inline\" />}\n              </td>\n            </tr>\n          ))}\n        </tbody>\n      </table>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "git-contribution-heatmap",
    "type": "registry:ui",
    "title": "Git Activity Contribution Heatmap",
    "description": "GitHub-inspired commit calendar heatmap grid with 5 luminescent intensity levels, month labels, and live hover tooltips.",
    "category": "data",
    "dependencies": [],
    "files": [
      {
        "path": "registry/data/git-contribution-heatmap/git-contribution-heatmap.tsx",
        "type": "registry:ui",
        "target": "components/ui/git-contribution-heatmap.tsx",
        "content": "import React, { useState } from 'react';\n\nexport const GitContributionHeatmap: React.FC = () => {\n  const [hoveredDay, setHoveredDay] = useState<{ week: number; day: number; count: number } | null>(null);\n\n  // Generate 20 weeks x 7 days\n  const weeks = 18;\n  const days = 7;\n\n  const getIntensity = (w: number, d: number) => {\n    const val = (w * 3 + d * 7) % 11;\n    if (val > 8) return 'bg-emerald-400 dark:bg-emerald-400';\n    if (val > 5) return 'bg-emerald-500/70 dark:bg-emerald-500/70';\n    if (val > 2) return 'bg-emerald-600/40 dark:bg-emerald-600/40';\n    return 'bg-zinc-200 dark:bg-white/10';\n  };\n\n  return (\n    <div className=\"w-full max-w-md mx-auto p-4 rounded-2xl border border-zinc-200 dark:border-white/10 bg-white/90 dark:bg-zinc-950/80 shadow-lg backdrop-blur-md font-mono text-xs\">\n      <div className=\"flex items-center justify-between mb-3 text-[11px] text-zinc-500\">\n        <span>524 INVOCATIONS IN LAST 18 WEEKS</span>\n        {hoveredDay ? (\n          <span className=\"text-emerald-500 font-bold\">{hoveredDay.count} commits</span>\n        ) : (\n          <span>Hover cell</span>\n        )}\n      </div>\n\n      <div className=\"flex gap-1 overflow-x-auto pb-1\">\n        {Array.from({ length: weeks }).map((_, w) => (\n          <div key={w} className=\"flex flex-col gap-1\">\n            {Array.from({ length: days }).map((_, d) => (\n              <div\n                key={d}\n                onMouseEnter={() => setHoveredDay({ week: w, day: d, count: ((w + d * 2) % 9) + 1 })}\n                onMouseLeave={() => setHoveredDay(null)}\n                className={`w-3.5 h-3.5 rounded-xs transition-transform hover:scale-125 cursor-pointer ${getIntensity(w, d)}`}\n              />\n            ))}\n          </div>\n        ))}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "live-telemetry-status-grid",
    "type": "registry:ui",
    "title": "Global Edge Telemetry Node Grid",
    "description": "Real-time edge cluster status dashboard displaying geographical regions, latency round-trip ping, and heartbeat health indicators.",
    "category": "data",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/data/live-telemetry-status-grid/live-telemetry-status-grid.tsx",
        "type": "registry:ui",
        "target": "components/ui/live-telemetry-status-grid.tsx",
        "content": "import React from 'react';\nimport { Globe } from '@phosphor-icons/react';\n\nconst NODES = [\n  { region: 'us-east-1 (N. Virginia)', ping: 12, status: 'operational' },\n  { region: 'eu-west-1 (Frankfurt)', ping: 24, status: 'operational' },\n  { region: 'ap-south-1 (Mumbai)', ping: 48, status: 'operational' },\n  { region: 'ap-northeast-1 (Tokyo)', ping: 31, status: 'operational' },\n];\n\nexport const LiveTelemetryStatusGrid: React.FC = () => {\n  return (\n    <div className=\"w-full max-w-md mx-auto p-4 rounded-2xl border border-zinc-200 dark:border-white/10 bg-white/90 dark:bg-zinc-900/90 shadow-lg backdrop-blur-md font-mono text-xs\">\n      <div className=\"flex items-center justify-between pb-3 border-b border-zinc-100 dark:border-white/5 text-[11px] text-zinc-500\">\n        <div className=\"flex items-center gap-1.5\">\n          <Globe size={13} className=\"text-cyan-400\" />\n          <span className=\"font-semibold text-zinc-800 dark:text-zinc-200\">Edge Network Health</span>\n        </div>\n        <span className=\"text-emerald-500 font-bold\">4/4 Nodes Healthy</span>\n      </div>\n\n      <div className=\"mt-3 space-y-2\">\n        {NODES.map((node) => (\n          <div\n            key={node.region}\n            className=\"flex items-center justify-between p-2 rounded-xl bg-zinc-50 dark:bg-zinc-950/50 border border-zinc-100 dark:border-white/5\"\n          >\n            <div className=\"flex items-center gap-2\">\n              <span className=\"h-2 w-2 rounded-full bg-emerald-400 animate-pulse\" />\n              <span className=\"text-[11px] text-zinc-700 dark:text-zinc-300 font-medium\">{node.region}</span>\n            </div>\n            <span className=\"text-[10px] text-zinc-500\">{node.ping}ms RTT</span>\n          </div>\n        ))}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "radial-progress-gauge",
    "type": "registry:ui",
    "title": "Radial Progress Gauge",
    "description": "Precision industrial speedometer dial with curved SVG gradients, animated needle, and real-time RPM/percentage readout.",
    "category": "data",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/data/radial-progress-gauge/radial-progress-gauge.tsx",
        "type": "registry:ui",
        "target": "components/ui/radial-progress-gauge.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion } from 'framer-motion';\n\nexport interface RadialProgressGaugeProps {\n  value?: number;\n  min?: number;\n  max?: number;\n  label?: string;\n  unit?: string;\n  className?: string;\n}\n\nexport const RadialProgressGauge: React.FC<RadialProgressGaugeProps> = ({\n  value = 76,\n  min = 0,\n  max = 100,\n  label = 'SYSTEM LOAD',\n  unit = '%',\n  className = '',\n}) => {\n  const [val, setVal] = useState(value);\n\n  const radius = 70;\n  const strokeWidth = 10;\n  const circumference = 2 * Math.PI * radius;\n  // Arc covering 240 degrees\n  const arcLength = (240 / 360) * circumference;\n  const progressPct = Math.min(1, Math.max(0, (val - min) / (max - min)));\n  const strokeDashoffset = arcLength - progressPct * arcLength;\n\n  return (\n    <div className={`flex flex-col items-center justify-center p-6 rounded-3xl border border-zinc-200 dark:border-white/10 bg-white/80 dark:bg-zinc-950/80 backdrop-blur-xl shadow-lg ${className}`}>\n      <div className=\"relative flex items-center justify-center w-48 h-40\">\n        <svg className=\"w-48 h-48 -rotate-[210deg]\" viewBox=\"0 0 180 180\">\n          <defs>\n            <linearGradient id=\"gauge-grad\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"100%\">\n              <stop offset=\"0%\" stopColor=\"#38bdf8\" />\n              <stop offset=\"50%\" stopColor=\"#818cf8\" />\n              <stop offset=\"100%\" stopColor=\"#ec4899\" />\n            </linearGradient>\n          </defs>\n\n          {/* Background Arc */}\n          <circle\n            cx=\"90\"\n            cy=\"90\"\n            r={radius}\n            fill=\"none\"\n            stroke=\"currentColor\"\n            className=\"text-zinc-200 dark:text-zinc-800\"\n            strokeWidth={strokeWidth}\n            strokeDasharray={`${arcLength} ${circumference}`}\n            strokeLinecap=\"round\"\n          />\n\n          {/* Animated Value Arc */}\n          <motion.circle\n            cx=\"90\"\n            cy=\"90\"\n            r={radius}\n            fill=\"none\"\n            stroke=\"url(#gauge-grad)\"\n            strokeWidth={strokeWidth}\n            strokeDasharray={`${arcLength} ${circumference}`}\n            strokeLinecap=\"round\"\n            initial={{ strokeDashoffset: arcLength }}\n            animate={{ strokeDashoffset }}\n            transition={{ duration: 1, ease: 'easeOut' }}\n          />\n        </svg>\n\n        {/* Center Readout */}\n        <div className=\"absolute inset-0 flex flex-col items-center justify-center pt-4\">\n          <span className=\"font-mono text-3xl font-black tracking-tight text-zinc-900 dark:text-white\">\n            {Math.round(val)}\n            <span className=\"text-sm font-normal text-zinc-400 ml-0.5\">{unit}</span>\n          </span>\n          <span className=\"font-mono text-[10px] uppercase tracking-wider text-zinc-500 font-semibold mt-0.5\">\n            {label}\n          </span>\n        </div>\n      </div>\n\n      {/* Interactive slider control */}\n      <div className=\"w-full max-w-[180px] mt-2\">\n        <input\n          type=\"range\"\n          min={min}\n          max={max}\n          value={val}\n          onChange={(e) => setVal(Number(e.target.value))}\n          className=\"w-full h-1 bg-zinc-200 dark:bg-zinc-800 rounded-lg appearance-none cursor-pointer accent-indigo-500\"\n        />\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "scroll-timeline",
    "type": "registry:ui",
    "title": "Scroll Timeline",
    "description": "Vertical interactive audit timeline with connecting glowing track and milestone checkpoints.",
    "category": "data",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/data/scroll-timeline/scroll-timeline.tsx",
        "type": "registry:ui",
        "target": "components/ui/scroll-timeline.tsx",
        "content": "import React from 'react';\nimport { CheckCircle, Clock } from '@phosphor-icons/react';\n\nconst EVENTS = [\n  { time: '14:22:01', title: 'Formal Invariant Verified', desc: 'Raft consensus quorum proven deterministic by Z3.', status: 'done' },\n  { time: '14:20:19', title: 'AST Synthesis Emitted', desc: 'Synthesized 2,840 nodes across TypeScript and Rust targets.', status: 'done' },\n  { time: '14:18:40', title: 'Dependency Graph Resolved', desc: 'Tailwind CSS v4 & Motion primitives synced without collision.', status: 'done' },\n];\n\nexport const ScrollTimeline: React.FC = () => {\n  return (\n    <div className=\"w-full max-w-md mx-auto p-4 space-y-4 font-mono\">\n      <div className=\"relative pl-6 space-y-6 before:absolute before:left-2 before:top-2 before:bottom-2 before:w-0.5 before:bg-gradient-to-b before:from-emerald-500 before:via-indigo-500 before:to-zinc-700\">\n        {EVENTS.map((ev, idx) => (\n          <div key={idx} className=\"relative group\">\n            <span className=\"absolute -left-6 top-1 flex h-4 w-4 items-center justify-center rounded-full bg-emerald-500 ring-4 ring-white dark:ring-zinc-950\">\n              <CheckCircle size={10} weight=\"bold\" className=\"text-white\" />\n            </span>\n            <div className=\"p-3.5 rounded-2xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/60 shadow-xs hover:border-indigo-500/50 transition-colors\">\n              <div className=\"flex items-center justify-between text-[10px] text-zinc-400\">\n                <span className=\"flex items-center gap-1\"><Clock size={11} /> {ev.time}</span>\n                <span className=\"text-emerald-500 font-bold\">VERIFIED</span>\n              </div>\n              <h5 className=\"mt-1 text-xs font-bold text-zinc-900 dark:text-white font-mono\">{ev.title}</h5>\n              <p className=\"mt-0.5 text-[11px] text-zinc-600 dark:text-zinc-400 font-sans\">{ev.desc}</p>\n            </div>\n          </div>\n        ))}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "system-architecture-graph",
    "type": "registry:ui",
    "title": "System Architecture Graph",
    "description": "Interactive distributed node topology graph with animated bezier packet pulses, node health telemetry, and live throughput metrics.",
    "category": "data",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/data/system-architecture-graph/system-architecture-graph.tsx",
        "type": "registry:ui",
        "target": "components/ui/system-architecture-graph.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { \n  Globe, \n  Cpu, \n  Database, \n  ShieldCheck, \n  CloudCheck, \n  HardDrives,\n  Circle,\n  Pulse\n} from '@phosphor-icons/react';\n\nexport interface TopologyNode {\n  id: string;\n  name: string;\n  type: 'gateway' | 'compute' | 'database' | 'security';\n  latency: string;\n  throughput: string;\n  status: 'healthy' | 'active' | 'standby';\n  x: number; // percentage in graph canvas\n  y: number; // percentage in graph canvas\n}\n\nconst DEFAULT_NODES: TopologyNode[] = [\n  { id: 'gateway', name: 'Edge Ingress API', type: 'gateway', latency: '2.1ms', throughput: '48.2k req/s', status: 'healthy', x: 12, y: 50 },\n  { id: 'auth', name: 'Zero-Trust Auth', type: 'security', latency: '4.8ms', throughput: '22.1k req/s', status: 'healthy', x: 44, y: 22 },\n  { id: 'ai-engine', name: 'AI Inference Swarm', type: 'compute', latency: '18.4ms', throughput: '12.4k req/s', status: 'active', x: 44, y: 78 },\n  { id: 'cache', name: 'Distributed Redis', type: 'database', latency: '0.8ms', throughput: '94.0k req/s', status: 'healthy', x: 86, y: 30 },\n  { id: 'postgres', name: 'Postgres Vector DB', type: 'database', latency: '6.2ms', throughput: '8.6k req/s', status: 'healthy', x: 86, y: 72 },\n];\n\nexport interface SystemArchitectureGraphProps {\n  interactive?: boolean;\n  activePacketPulse?: boolean;\n  className?: string;\n}\n\nexport const SystemArchitectureGraph: React.FC<SystemArchitectureGraphProps> = ({\n  interactive = true,\n  activePacketPulse = true,\n  className = '',\n}) => {\n  const [selectedNode, setSelectedNode] = useState<TopologyNode>(DEFAULT_NODES[0]);\n\n  const getNodeIcon = (type: TopologyNode['type']) => {\n    switch (type) {\n      case 'gateway': return <Globe size={18} weight=\"bold\" className=\"text-cyan-400\" />;\n      case 'compute': return <Cpu size={18} weight=\"bold\" className=\"text-violet-400\" />;\n      case 'security': return <ShieldCheck size={18} weight=\"bold\" className=\"text-emerald-400\" />;\n      case 'database': return <Database size={18} weight=\"bold\" className=\"text-amber-400\" />;\n    }\n  };\n\n  return (\n    <div className={`w-full max-w-4xl mx-auto rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-[#07080d] p-6 shadow-2xl font-mono text-xs select-none ${className}`}>\n      {/* Top Header */}\n      <div className=\"flex flex-wrap items-center justify-between gap-4 pb-4 border-b border-zinc-200/80 dark:border-white/5\">\n        <div className=\"flex items-center gap-2.5\">\n          <div className=\"flex h-8 w-8 items-center justify-center rounded-xl bg-emerald-500/10 border border-emerald-500/20 text-emerald-400\">\n            <Pulse size={16} weight=\"bold\" />\n          </div>\n          <div>\n            <h3 className=\"font-bold text-zinc-900 dark:text-white\">Distributed Topo-Mesh</h3>\n            <span className=\"text-[11px] text-zinc-500\">Live Traffic & Packet Flow Analysis</span>\n          </div>\n        </div>\n\n        <div className=\"flex items-center gap-3\">\n          <div className=\"flex items-center gap-1.5 text-[11px] text-zinc-400\">\n            <Circle size={8} weight=\"fill\" className=\"text-emerald-400 animate-pulse\" />\n            <span>5 Nodes Active</span>\n          </div>\n          <span className=\"px-2.5 py-1 rounded-full text-[10px] font-semibold bg-zinc-100 dark:bg-white/5 border border-zinc-200 dark:border-white/10 text-zinc-600 dark:text-zinc-300\">\n            99.998% UPTIME\n          </span>\n        </div>\n      </div>\n\n      {/* Main Interactive Canvas Area */}\n      <div className=\"relative my-6 h-72 sm:h-80 w-full rounded-2xl bg-zinc-50 dark:bg-black/60 border border-zinc-200/60 dark:border-white/5 overflow-hidden\">\n        {/* Subtle grid dots */}\n        <div className=\"absolute inset-0 bg-[radial-gradient(#6b728020_1px,transparent_1px)] [background-size:20px_20px]\" />\n\n        {/* SVG Bezier Connection Lines */}\n        <svg viewBox=\"0 0 1000 500\" preserveAspectRatio=\"none\" className=\"absolute inset-0 w-full h-full pointer-events-none\">\n          <defs>\n            <linearGradient id=\"cyanViolet\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n              <stop offset=\"0%\" stopColor=\"#22d3ee\" stopOpacity=\"0.6\" />\n              <stop offset=\"100%\" stopColor=\"#a855f7\" stopOpacity=\"0.6\" />\n            </linearGradient>\n            <linearGradient id=\"violetAmber\" x1=\"0%\" y1=\"0%\" x2=\"100%\" y2=\"0%\">\n              <stop offset=\"0%\" stopColor=\"#a855f7\" stopOpacity=\"0.6\" />\n              <stop offset=\"100%\" stopColor=\"#f59e0b\" stopOpacity=\"0.6\" />\n            </linearGradient>\n          </defs>\n\n          {/* Lines from Gateway (120, 250) to Auth (440, 110) and AI (440, 390) */}\n          <path d=\"M 120 250 C 280 250, 280 110, 440 110\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" className=\"text-zinc-300 dark:text-white/15\" />\n          <path d=\"M 120 250 C 280 250, 280 390, 440 390\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" className=\"text-zinc-300 dark:text-white/15\" />\n\n          {/* Lines from Auth (440, 110) to Cache (860, 150) */}\n          <path d=\"M 440 110 C 650 110, 650 150, 860 150\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" className=\"text-zinc-300 dark:text-white/15\" />\n\n          {/* Lines from AI (440, 390) to Cache (860, 150) and Postgres (860, 360) */}\n          <path d=\"M 440 390 C 650 390, 650 150, 860 150\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" className=\"text-zinc-300 dark:text-white/15\" />\n          <path d=\"M 440 390 C 650 390, 650 360, 860 360\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" className=\"text-zinc-300 dark:text-white/15\" />\n\n          {/* Animated Glowing Packet Pulses */}\n          {activePacketPulse && (\n            <>\n              <path\n                d=\"M 120 250 C 280 250, 280 110, 440 110\"\n                fill=\"none\"\n                stroke=\"url(#cyanViolet)\"\n                strokeWidth=\"3\"\n                strokeDasharray=\"8 48\"\n                className=\"animate-[dash_2s_linear_infinite]\"\n              />\n              <path\n                d=\"M 120 250 C 280 250, 280 390, 440 390\"\n                fill=\"none\"\n                stroke=\"url(#cyanViolet)\"\n                strokeWidth=\"3\"\n                strokeDasharray=\"8 48\"\n                className=\"animate-[dash_2.4s_linear_infinite]\"\n              />\n              <path\n                d=\"M 440 390 C 650 390, 650 360, 860 360\"\n                fill=\"none\"\n                stroke=\"url(#violetAmber)\"\n                strokeWidth=\"3\"\n                strokeDasharray=\"8 48\"\n                className=\"animate-[dash_1.8s_linear_infinite]\"\n              />\n            </>\n          )}\n        </svg>\n\n        {/* Nodes Placed Absolutes */}\n        {DEFAULT_NODES.map((node) => {\n          const isSelected = selectedNode?.id === node.id;\n\n          return (\n            <div\n              key={node.id}\n              style={{ left: `${node.x}%`, top: `${node.y}%` }}\n              onClick={() => interactive && setSelectedNode(node)}\n              className=\"absolute -translate-x-1/2 -translate-y-1/2 cursor-pointer z-10 group\"\n            >\n              <div className={`relative flex items-center gap-2 px-3 py-2 rounded-2xl border transition-all ${\n                isSelected\n                  ? 'bg-white dark:bg-zinc-900 border-emerald-500 shadow-[0_0_20px_rgba(16,185,129,0.3)] scale-105'\n                  : 'bg-white/90 dark:bg-zinc-900/90 border-zinc-200 dark:border-white/10 hover:border-zinc-400 dark:hover:border-white/20 shadow-md'\n              }`}>\n                {/* Node Type Icon */}\n                <div className=\"flex h-7 w-7 items-center justify-center rounded-xl bg-zinc-100 dark:bg-white/5\">\n                  {getNodeIcon(node.type)}\n                </div>\n\n                <div className=\"hidden sm:flex flex-col pr-1\">\n                  <span className=\"font-bold text-zinc-900 dark:text-white text-[11px] leading-tight\">\n                    {node.name}\n                  </span>\n                  <span className=\"text-[10px] text-zinc-400 font-mono\">\n                    {node.latency}\n                  </span>\n                </div>\n              </div>\n            </div>\n          );\n        })}\n      </div>\n\n      {/* Selected Node Inspector Footer Banner */}\n      <div className=\"flex flex-wrap items-center justify-between gap-3 pt-3 border-t border-zinc-200/80 dark:border-white/5\">\n        <div className=\"flex items-center gap-3\">\n          <span className=\"text-zinc-400 font-semibold uppercase text-[11px]\">Selected:</span>\n          <span className=\"font-bold text-zinc-900 dark:text-white\">{selectedNode.name}</span>\n          <span className=\"px-2 py-0.5 rounded-full text-[9px] uppercase font-bold text-emerald-500 bg-emerald-500/10 border border-emerald-500/20\">\n            {selectedNode.status}\n          </span>\n        </div>\n\n        <div className=\"flex items-center gap-4 text-[11px] text-zinc-500 font-mono\">\n          <span>Latency: <strong className=\"text-zinc-900 dark:text-zinc-200\">{selectedNode.latency}</strong></span>\n          <span>Load: <strong className=\"text-zinc-900 dark:text-zinc-200\">{selectedNode.throughput}</strong></span>\n        </div>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "telemetry-metric-card",
    "type": "registry:ui",
    "title": "Telemetry Metric Card",
    "description": "Financial & system performance telemetry card with SVG sparkline trend curve and live delta badge.",
    "category": "data",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/data/telemetry-metric-card/telemetry-metric-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/telemetry-metric-card.tsx",
        "content": "import React, { useState } from 'react';\nimport { TrendUp, Cpu } from '@phosphor-icons/react';\n\nexport const TelemetryMetricCard: React.FC = () => {\n  const [timeframe, setTimeframe] = useState<'1H' | '24H' | '7D'>('24H');\n\n  return (\n    <div className=\"w-full max-w-sm mx-auto p-5 rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/70 shadow-lg font-mono\">\n      <div className=\"flex items-center justify-between text-xs text-zinc-500 pb-3 border-b border-zinc-200/60 dark:border-white/5\">\n        <div className=\"flex items-center gap-2\">\n          <Cpu size={16} className=\"text-indigo-500\" />\n          <span className=\"font-semibold text-zinc-800 dark:text-zinc-300\">THROUGHPUT RPS</span>\n        </div>\n        <div className=\"flex gap-1 text-[10px]\">\n          {(['1H', '24H', '7D'] as const).map((t) => (\n            <button\n              key={t}\n              onClick={() => setTimeframe(t)}\n              className={`px-2 py-0.5 rounded-md cursor-pointer ${\n                timeframe === t ? 'bg-indigo-600 text-white font-bold' : 'text-zinc-400 hover:text-zinc-600 dark:hover:text-white'\n              }`}\n            >\n              {t}\n            </button>\n          ))}\n        </div>\n      </div>\n\n      <div className=\"mt-4 flex items-baseline justify-between\">\n        <div>\n          <span className=\"text-3xl font-extrabold text-zinc-900 dark:text-white\">142,890</span>\n          <span className=\"text-xs text-zinc-400 ml-1\">req/s</span>\n        </div>\n        <span className=\"inline-flex items-center gap-1 rounded-full bg-emerald-500/10 px-2 py-0.5 text-[11px] font-bold text-emerald-500 border border-emerald-500/20\">\n          <TrendUp size={12} weight=\"bold\" /> +18.4%\n        </span>\n      </div>\n\n      <div className=\"mt-4 h-16 w-full\">\n        <svg viewBox=\"0 0 100 30\" className=\"w-full h-full overflow-visible\">\n          <defs>\n            <linearGradient id=\"grad-telemetry\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n              <stop offset=\"0%\" stopColor=\"#6366f1\" stopOpacity=\"0.3\" />\n              <stop offset=\"100%\" stopColor=\"#6366f1\" stopOpacity=\"0\" />\n            </linearGradient>\n          </defs>\n          <path\n            d=\"M0,25 Q15,10 30,18 T60,8 T80,14 T100,2\"\n            fill=\"none\"\n            stroke=\"#6366f1\"\n            strokeWidth=\"2.5\"\n            strokeLinecap=\"round\"\n          />\n          <path\n            d=\"M0,25 Q15,10 30,18 T60,8 T80,14 T100,2 L100,30 L0,30 Z\"\n            fill=\"url(#grad-telemetry)\"\n          />\n        </svg>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "ascii-wave",
    "type": "registry:ui",
    "title": "Generative ASCII Wave",
    "description": "Real-time mathematical ASCII typography fluid wave reactive to pointer coordinates.",
    "category": "effects",
    "dependencies": [],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "effects",
      "ascii",
      "wave",
      "generative"
    ],
    "files": [
      {
        "path": "registry/effects/ascii-wave/ascii-wave.tsx",
        "type": "registry:ui",
        "target": "components/ui/ascii-wave.tsx",
        "content": "import React, { useEffect, useRef, useState } from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface AsciiWaveProps {\n  className?: string\n  rows?: number\n  cols?: number\n}\n\nexport const AsciiWave: React.FC<AsciiWaveProps> = ({\n  className,\n  rows = 14,\n  cols = 38,\n}) => {\n  const containerRef = useRef<HTMLDivElement>(null)\n  const preRef = useRef<HTMLPreElement>(null)\n  const frameRef = useRef(0)\n  const mousePos = useRef({ x: 19, y: 7 })\n\n  const chars = ' .:-=+*#%@'\n\n  useEffect(() => {\n    let animId: number\n    let isVisible = true\n\n    const render = () => {\n      if (!isVisible) return\n      frameRef.current += 0.05\n      const lines: string[] = []\n\n      for (let y = 0; y < rows; y++) {\n        let line = ''\n        for (let x = 0; x < cols; x++) {\n          const dx = x - mousePos.current.x\n          const dy = y - mousePos.current.y\n          const dist = Math.sqrt(dx * dx + dy * dy)\n          \n          // Wave equation\n          const wave1 = Math.sin(x * 0.2 + frameRef.current)\n          const wave2 = Math.cos(y * 0.3 + frameRef.current * 0.8)\n          const ripple = Math.sin(dist * 0.5 - frameRef.current * 2) * 0.4\n          \n          const val = (wave1 + wave2 + ripple + 2) / 4\n          const charIdx = Math.floor(Math.max(0, Math.min(1, val)) * (chars.length - 1))\n          line += chars[charIdx]\n        }\n        lines.push(line)\n      }\n\n      if (preRef.current) {\n        preRef.current.textContent = lines.join('\\n')\n      }\n      animId = requestAnimationFrame(render)\n    }\n\n    animId = requestAnimationFrame(render)\n\n    const observer = new IntersectionObserver(([entry]) => {\n      const wasVisible = isVisible\n      isVisible = entry.isIntersecting\n      if (isVisible && !wasVisible) {\n        animId = requestAnimationFrame(render)\n      }\n    }, { threshold: 0.05 })\n\n    if (containerRef.current) {\n      observer.observe(containerRef.current)\n    }\n\n    return () => {\n      cancelAnimationFrame(animId)\n      observer.disconnect()\n    }\n  }, [rows, cols])\n\n  const handleMouseMove = (e: React.MouseEvent<HTMLDivElement>) => {\n    const rect = e.currentTarget.getBoundingClientRect()\n    const x = Math.floor(((e.clientX - rect.left) / rect.width) * cols)\n    const y = Math.floor(((e.clientY - rect.top) / rect.height) * rows)\n    mousePos.current = { x, y }\n  }\n\n  return (\n    <div\n      ref={containerRef}\n      onMouseMove={handleMouseMove}\n      className={cn(\n        'relative overflow-hidden rounded-3xl border border-white/10 bg-[#060608] p-6 font-mono text-[10px] leading-[11px] text-emerald-400 select-none shadow-2xl flex flex-col items-center justify-center',\n        className\n      )}\n    >\n      <div className=\"absolute top-3 left-4 flex items-center gap-1.5 text-[9px] text-zinc-500 uppercase tracking-widest\">\n        <span className=\"h-1.5 w-1.5 rounded-full bg-emerald-400 animate-ping\" />\n        <span>ASCII WAVE GENERATOR</span>\n      </div>\n\n      <pre ref={preRef} className=\"tracking-widest whitespace-pre overflow-hidden text-emerald-400/90 font-mono\" />\n\n      <div className=\"mt-3 text-[10px] text-zinc-500 font-mono\">\n        Interactive fluid simulation &bull; Hover to disturb\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "border-beam",
    "type": "registry:ui",
    "title": "Luminous Border Beam",
    "description": "Animated glowing laser beam traveling along card perimeter with soft specular light trail.",
    "category": "effects",
    "dependencies": [
      "clsx",
      "tailwind-merge"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "effects",
      "border",
      "beam",
      "glow"
    ],
    "files": [
      {
        "path": "registry/effects/border-beam/border-beam.tsx",
        "type": "registry:ui",
        "target": "components/ui/border-beam.tsx",
        "content": "import React from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface BorderBeamProps {\n  size?: number\n  duration?: number\n  delay?: number\n  borderWidth?: number\n  colorFrom?: string\n  colorTo?: string\n  className?: string\n}\n\nexport const BorderBeam: React.FC<BorderBeamProps> = ({\n  size = 200,\n  duration = 10,\n  delay = 0,\n  borderWidth = 1.5,\n  colorFrom = '#06b6d4',\n  colorTo = '#3b82f6',\n  className,\n}) => {\n  return (\n    <div\n      style={\n        {\n          '--size': `${size}px`,\n          '--duration': `${duration}s`,\n          '--anchor': '90deg',\n          '--border-width': `${borderWidth}px`,\n          '--color-from': colorFrom,\n          '--color-to': colorTo,\n          '--delay': `-${delay}s`,\n        } as React.CSSProperties\n      }\n      className={cn(\n        'pointer-events-none absolute inset-0 rounded-[inherit] [border:calc(var(--border-width)*1px)_solid_transparent]',\n        '![mask-clip:padding-box,border-box] ![mask-composite:intersect] [mask:linear-gradient(transparent,transparent),linear-gradient(white,white)]',\n        'after:absolute after:aspect-square after:w-[calc(var(--size)*1px)] after:animate-[borderBeam_var(--duration)_linear_infinite] after:[animation-delay:var(--delay)]',\n        'after:bg-[radial-gradient(ellipse_at_center,var(--color-from),var(--color-to),transparent)] after:[offset-anchor:calc(var(--anchor))_50%] after:[offset-path:rect(0_auto_auto_0_round_calc(var(--size)*1px))]',\n        className\n      )}\n    />\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "light-pillar-beacon",
    "type": "registry:ui",
    "title": "Volumetric Light Pillar Beacon",
    "description": "Cinematic vertical atmospheric light column with ascending stardust motes and soft radial ground emitter.",
    "category": "effects",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/effects/light-pillar-beacon/light-pillar-beacon.tsx",
        "type": "registry:ui",
        "target": "components/ui/light-pillar-beacon.tsx",
        "content": "import React from 'react';\nimport { motion } from 'framer-motion';\n\nexport const LightPillarBeacon: React.FC = () => {\n  return (\n    <div className=\"relative w-full h-64 rounded-2xl bg-zinc-950 border border-white/10 flex flex-col items-center justify-end overflow-hidden p-4 select-none\">\n      {/* Light Pillar Beam */}\n      <div\n        className=\"absolute bottom-0 w-32 h-full opacity-60 pointer-events-none\"\n        style={{\n          background: 'linear-gradient(to top, rgba(99, 102, 241, 0.8) 0%, rgba(56, 189, 248, 0.4) 40%, transparent 100%)',\n          filter: 'blur(20px)',\n        }}\n      />\n\n      {/* Floating Ascending Motes */}\n      {Array.from({ length: 8 }).map((_, i) => (\n        <motion.div\n          key={i}\n          animate={{\n            y: [-20, -180],\n            opacity: [0, 1, 0],\n            x: [(i % 2 === 0 ? -15 : 15), (i % 2 === 0 ? 15 : -15)],\n          }}\n          transition={{\n            duration: 2.5 + i * 0.3,\n            repeat: Infinity,\n            delay: i * 0.4,\n            ease: 'easeOut',\n          }}\n          className=\"absolute bottom-6 w-1.5 h-1.5 rounded-full bg-cyan-300 shadow-[0_0_8px_#38bdf8]\"\n        />\n      ))}\n\n      {/* Base Pedestal Emitter */}\n      <div className=\"relative z-10 w-28 h-5 rounded-full bg-gradient-to-r from-indigo-500 via-cyan-400 to-indigo-500 shadow-[0_0_24px_rgba(99,102,241,0.9)] flex items-center justify-center\">\n        <div className=\"w-16 h-1 rounded-full bg-white shadow\" />\n      </div>\n\n      <span className=\"relative z-10 text-[10px] font-mono text-zinc-400 mt-3 tracking-widest uppercase\">\n        VOLUMETRIC FLUX BEACON\n      </span>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "matrix-rain-terminal",
    "type": "registry:ui",
    "title": "Matrix Rain Terminal",
    "description": "Digital matrix rain stream with animated falling glyphs and interactive cybernetic text decryption.",
    "category": "effects",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/effects/matrix-rain-terminal/matrix-rain-terminal.tsx",
        "type": "registry:ui",
        "target": "components/ui/matrix-rain-terminal.tsx",
        "content": "import React, { useEffect, useRef, useState } from 'react';\nimport { Terminal, Play, Pause } from '@phosphor-icons/react';\n\nexport interface MatrixRainTerminalProps {\n  fontSize?: number;\n  speed?: number;\n  className?: string;\n}\n\nexport const MatrixRainTerminal: React.FC<MatrixRainTerminalProps> = ({\n  fontSize = 14,\n  speed = 33,\n  className = '',\n}) => {\n  const canvasRef = useRef<HTMLCanvasElement>(null);\n  const [isPlaying, setIsPlaying] = useState(true);\n\n  useEffect(() => {\n    const canvas = canvasRef.current;\n    if (!canvas) return;\n    const ctx = canvas.getContext('2d');\n    if (!ctx) return;\n\n    let width = (canvas.width = canvas.parentElement?.clientWidth || 400);\n    let height = (canvas.height = canvas.parentElement?.clientHeight || 260);\n\n    const chars = '0123456789ABCDEFｦｱｳｴｵｶｷｹｺｻｼｽｾｿﾀﾂﾃﾅﾆﾇﾈﾊﾋﾎﾏﾐﾑﾒﾓﾔﾕﾗﾘﾜ'.split('');\n    const columns = Math.floor(width / fontSize);\n    const drops: number[] = Array(columns).fill(1);\n\n    let animationId: number;\n    let lastTime = 0;\n    let isVisible = true;\n\n    const render = (time: number) => {\n      if (!isVisible || !isPlaying) return;\n      if (time - lastTime > speed) {\n        lastTime = time;\n        ctx.fillStyle = 'rgba(5, 5, 10, 0.15)';\n        ctx.fillRect(0, 0, width, height);\n\n        ctx.fillStyle = '#10b981';\n        ctx.font = `${fontSize}px monospace`;\n\n        for (let i = 0; i < drops.length; i++) {\n          const text = chars[Math.floor(Math.random() * chars.length)];\n          const x = i * fontSize;\n          const y = drops[i] * fontSize;\n\n          // Head character is brighter\n          ctx.fillStyle = '#a7f3d0';\n          ctx.fillText(text, x, y);\n          ctx.fillStyle = '#10b981';\n\n          if (y > height && Math.random() > 0.975) {\n            drops[i] = 0;\n          }\n          drops[i]++;\n        }\n      }\n      animationId = requestAnimationFrame(render);\n    };\n\n    if (isPlaying) {\n      animationId = requestAnimationFrame(render);\n    }\n\n    const observer = new IntersectionObserver(([entry]) => {\n      const wasVisible = isVisible;\n      isVisible = entry.isIntersecting;\n      if (isVisible && !wasVisible && isPlaying) {\n        animationId = requestAnimationFrame(render);\n      }\n    }, { threshold: 0.05 });\n    observer.observe(canvas);\n\n    const handleResize = () => {\n      if (!canvas.parentElement) return;\n      width = canvas.width = canvas.parentElement.clientWidth;\n      height = canvas.height = canvas.parentElement.clientHeight;\n    };\n\n    window.addEventListener('resize', handleResize);\n    return () => {\n      cancelAnimationFrame(animationId);\n      observer.disconnect();\n      window.removeEventListener('resize', handleResize);\n    };\n  }, [isPlaying, fontSize, speed]);\n\n  return (\n    <div className={`relative w-full h-[260px] rounded-2xl overflow-hidden border border-emerald-500/20 bg-zinc-950 font-mono shadow-2xl ${className}`}>\n      <canvas ref={canvasRef} className=\"absolute inset-0 w-full h-full block\" />\n      \n      {/* HUD Header */}\n      <div className=\"absolute top-3 left-3 right-3 flex items-center justify-between z-10 pointer-events-none\">\n        <div className=\"flex items-center gap-2 px-2.5 py-1 rounded-lg bg-zinc-900/80 backdrop-blur-md border border-emerald-500/30 text-emerald-400 text-xs\">\n          <Terminal size={14} weight=\"bold\" />\n          <span>CYBER_DECRYPT.SYS</span>\n        </div>\n        <button\n          onClick={() => setIsPlaying(!isPlaying)}\n          className=\"pointer-events-auto px-2 py-1 rounded-lg bg-zinc-900/80 border border-emerald-500/30 text-emerald-400 hover:text-white transition-colors cursor-pointer\"\n        >\n          {isPlaying ? <Pause size={12} weight=\"bold\" /> : <Play size={12} weight=\"bold\" />}\n        </button>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "metaball-gooey-effect",
    "type": "registry:ui",
    "title": "Metaball Gooey Fluid Drops",
    "description": "Organic liquid gooey metaballs with SVG matrix blur filtration demonstrating fluid droplet merging physics.",
    "category": "effects",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/effects/metaball-gooey-effect/metaball-gooey-effect.tsx",
        "type": "registry:ui",
        "target": "components/ui/metaball-gooey-effect.tsx",
        "content": "import React from 'react';\nimport { motion } from 'framer-motion';\n\nexport const MetaballGooeyEffect: React.FC = () => {\n  return (\n    <div className=\"relative w-full h-56 rounded-2xl bg-zinc-950 border border-white/10 flex items-center justify-center overflow-hidden\">\n      {/* SVG Gooey Matrix Filter */}\n      <svg className=\"hidden\">\n        <defs>\n          <filter id=\"gooey-filter\">\n            <feGaussianBlur in=\"SourceGraphic\" stdDeviation=\"10\" result=\"blur\" />\n            <feColorMatrix\n              in=\"blur\"\n              mode=\"matrix\"\n              values=\"1 0 0 0 0  0 1 0 0 0  0 0 1 0 0  0 0 0 18 -7\"\n              result=\"gooey\"\n            />\n          </filter>\n        </defs>\n      </svg>\n\n      <div style={{ filter: 'url(#gooey-filter)' }} className=\"relative flex items-center justify-center\">\n        <div className=\"w-16 h-16 rounded-full bg-indigo-500 shadow-lg\" />\n        <motion.div\n          animate={{ x: [-45, 45, -45], y: [-15, 15, -15] }}\n          transition={{ duration: 3.5, repeat: Infinity, ease: 'easeInOut' }}\n          className=\"w-14 h-14 rounded-full bg-cyan-400\"\n        />\n        <motion.div\n          animate={{ x: [35, -35, 35], y: [20, -20, 20] }}\n          transition={{ duration: 4.2, repeat: Infinity, ease: 'easeInOut' }}\n          className=\"w-12 h-12 rounded-full bg-violet-500\"\n        />\n      </div>\n\n      <span className=\"absolute bottom-3 text-[10px] font-mono text-zinc-500 uppercase tracking-widest\">\n        ORGANIC LIQUID COHESION\n      </span>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "noise-grain-overlay",
    "type": "registry:ui",
    "title": "Procedural Film Grain Synthesizer",
    "description": "Perlin noise procedural SVG texture overlay with dynamic density and mix-blend controls.",
    "category": "effects",
    "dependencies": [],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "effects",
      "noise",
      "grain",
      "texture"
    ],
    "files": [
      {
        "path": "registry/effects/noise-grain-overlay/noise-grain-overlay.tsx",
        "type": "registry:ui",
        "target": "components/ui/noise-grain-overlay.tsx",
        "content": "import React, { useState } from 'react';\n\ninterface NoiseGrainOverlayProps {\n  className?: string;\n  initialOpacity?: number;\n  children?: React.ReactNode;\n}\n\nexport const NoiseGrainOverlay: React.FC<NoiseGrainOverlayProps> = ({\n  className = '',\n  initialOpacity = 0.07,\n  children,\n}) => {\n  const [opacity, setOpacity] = useState(initialOpacity);\n\n  return (\n    <div className={`relative w-full rounded-2xl overflow-hidden bg-zinc-950 border border-white/10 p-8 ${className}`}>\n      {/* SVG Procedural FeTurbulence Noise */}\n      <div\n        className=\"absolute inset-0 pointer-events-none mix-blend-overlay transition-opacity duration-300\"\n        style={{\n          opacity,\n          backgroundImage: `url(\"data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E\")`,\n        }}\n      />\n\n      {/* Internal Content */}\n      <div className=\"relative z-10 flex flex-col md:flex-row items-center justify-between gap-6\">\n        <div className=\"space-y-2 text-left\">\n          <span className=\"inline-block px-3 py-1 rounded-full text-[11px] font-mono font-medium text-emerald-400 bg-emerald-500/10 border border-emerald-500/20\">\n            TEXTURE SYNTHESIZER\n          </span>\n          <h4 className=\"text-xl font-semibold text-white tracking-tight\">\n            Analog Film Grain & Noise Overlay\n          </h4>\n          <p className=\"text-xs text-zinc-400 max-w-sm\">\n            High-fidelity mathematical Perlin noise layer providing tactile physical texture to digital displays.\n          </p>\n        </div>\n\n        {/* Live Controller */}\n        <div className=\"flex flex-col gap-2 p-4 rounded-xl bg-zinc-900/90 border border-white/10 w-full max-w-[220px]\">\n          <div className=\"flex items-center justify-between text-xs text-zinc-300 font-mono\">\n            <span>Grain Density</span>\n            <span className=\"text-emerald-400 font-bold\">{Math.round(opacity * 100)}%</span>\n          </div>\n          <input\n            type=\"range\"\n            min=\"0\"\n            max=\"0.25\"\n            step=\"0.01\"\n            value={opacity}\n            onChange={(e) => setOpacity(parseFloat(e.target.value))}\n            className=\"w-full accent-emerald-500 cursor-pointer\"\n          />\n        </div>\n      </div>\n\n      {children}\n    </div>\n  );\n};\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "spectrum-loader",
    "type": "registry:ui",
    "title": "Harmonic Spectrum Equalizer",
    "description": "Multi-frequency audio spectrum equalizer wave with harmonic amplitude oscillation.",
    "category": "effects",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "effects",
      "spectrum",
      "equalizer",
      "audio",
      "loader"
    ],
    "files": [
      {
        "path": "registry/effects/spectrum-loader/spectrum-loader.tsx",
        "type": "registry:ui",
        "target": "components/ui/spectrum-loader.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion } from 'framer-motion';\nimport { Play, Pause } from '@phosphor-icons/react';\n\ninterface SpectrumLoaderProps {\n  className?: string;\n  barCount?: number;\n  color?: string;\n  variant?: 'rainbow' | 'emerald' | 'violet';\n}\n\nexport const SpectrumLoader: React.FC<SpectrumLoaderProps> = ({\n  className = '',\n  barCount = 16,\n  variant = 'rainbow',\n}) => {\n  const [isPlaying, setIsPlaying] = useState(true);\n\n  const getBarColor = (index: number) => {\n    if (variant === 'rainbow') {\n      const hue = 180 + (index / barCount) * 120;\n      return `hsl(${hue}, 85%, 60%)`;\n    }\n    if (variant === 'emerald') {\n      return '#10b981';\n    }\n    return '#8b5cf6';\n  };\n\n  return (\n    <div className={`flex flex-col items-center justify-center p-6 gap-6 rounded-2xl bg-zinc-900/60 border border-white/10 backdrop-blur-md ${className}`}>\n      {/* Equalizer Frequency Bars */}\n      <div className=\"flex items-end justify-center gap-1.5 h-20 w-full max-w-[280px] px-4 py-2\">\n        {Array.from({ length: barCount }).map((_, i) => {\n          // generate pseudo harmonic curve\n          const baseHeight = 20 + Math.sin((i / barCount) * Math.PI) * 45;\n          const minHeight = 12 + (i % 3) * 6;\n          const duration = 0.5 + ((i * 7) % 5) * 0.12;\n\n          return (\n            <motion.div\n              key={i}\n              animate={\n                isPlaying\n                  ? {\n                      height: [\n                        `${minHeight}%`,\n                        `${baseHeight}%`,\n                        `${Math.min(100, baseHeight + 25)}%`,\n                        `${minHeight + 10}%`,\n                        `${baseHeight * 0.7}%`,\n                      ],\n                    }\n                  : { height: '14%' }\n              }\n              transition={{\n                duration,\n                repeat: Infinity,\n                repeatType: 'reverse',\n                ease: 'easeInOut',\n                delay: (i * 0.06) % 0.4,\n              }}\n              style={{\n                backgroundColor: getBarColor(i),\n                boxShadow: isPlaying ? `0 0 10px ${getBarColor(i)}` : 'none',\n              }}\n              className=\"w-2 rounded-full transition-all duration-300\"\n            />\n          );\n        })}\n      </div>\n\n      {/* Control pill */}\n      <div className=\"flex items-center gap-3\">\n        <button\n          onClick={() => setIsPlaying(!isPlaying)}\n          className=\"inline-flex items-center gap-2 px-4 py-1.5 rounded-full text-xs font-mono font-medium text-zinc-300 bg-zinc-800 hover:bg-zinc-700 border border-white/10 transition-colors cursor-pointer\"\n        >\n          {isPlaying ? (\n            <>\n              <Pause size={14} weight=\"fill\" className=\"text-amber-400\" />\n              <span>PAUSE WAVE</span>\n            </>\n          ) : (\n            <>\n              <Play size={14} weight=\"fill\" className=\"text-emerald-400\" />\n              <span>RESUME WAVE</span>\n            </>\n          )}\n        </button>\n        <span className=\"text-[11px] font-mono text-zinc-500 uppercase tracking-widest\">\n          {isPlaying ? '48.1 kHz Audio' : 'Muted'}\n        </span>\n      </div>\n    </div>\n  );\n};\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "animated-counter-pill",
    "type": "registry:ui",
    "title": "Animated Counter Pill",
    "description": "Kinetic rolling counter pill with animated digit rolls, delta percentages (+14.2%), and status indicators.",
    "category": "feedback",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/feedback/animated-counter-pill/animated-counter-pill.tsx",
        "type": "registry:ui",
        "target": "components/ui/animated-counter-pill.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion } from 'framer-motion';\nimport { TrendUp, ArrowClockwise } from '@phosphor-icons/react';\n\nexport const AnimatedCounterPill: React.FC = () => {\n  const [count, setCount] = useState(84920);\n\n  const randomize = () => {\n    setCount((prev) => prev + Math.floor(Math.random() * 2500) + 100);\n  };\n\n  return (\n    <div className=\"flex items-center gap-3 p-3 rounded-2xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950 shadow-md\">\n      <div className=\"flex items-center gap-2.5 px-3 py-1.5 rounded-xl bg-zinc-100 dark:bg-zinc-900 border border-zinc-200/60 dark:border-white/5\">\n        <span className=\"h-2 w-2 rounded-full bg-emerald-500 animate-pulse\" />\n        <span className=\"font-mono text-xs font-bold text-zinc-900 dark:text-white\">\n          {count.toLocaleString()}\n        </span>\n      </div>\n\n      <div className=\"flex items-center gap-1 text-emerald-600 dark:text-emerald-400 font-mono text-xs font-semibold\">\n        <TrendUp size={14} weight=\"bold\" />\n        <span>+14.8%</span>\n      </div>\n\n      <button\n        onClick={randomize}\n        title=\"Simulate Event Burst\"\n        className=\"flex h-7 w-7 items-center justify-center rounded-lg bg-indigo-50 dark:bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 hover:bg-indigo-100 dark:hover:bg-indigo-500/20 cursor-pointer transition-colors\"\n      >\n        <ArrowClockwise size={13} weight=\"bold\" />\n      </button>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "progress-step-loader",
    "type": "registry:ui",
    "title": "Progress Step Loader",
    "description": "Multi-stage pipeline compilation loader with real-time status telemetry and spring animations.",
    "category": "feedback",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/feedback/progress-step-loader/progress-step-loader.tsx",
        "type": "registry:ui",
        "target": "components/ui/progress-step-loader.tsx",
        "content": "import React, { useState, useEffect } from 'react';\nimport { motion } from 'framer-motion';\nimport { Check, CircleNotch } from '@phosphor-icons/react';\n\nconst STEPS = [\n  'Resolving AST Dependencies',\n  'Synthesizing Deterministic Code',\n  'Executing SMT Proof Verification',\n  'Publishing Artifact to Registry',\n];\n\nexport const ProgressStepLoader: React.FC = () => {\n  const [currentStep, setCurrentStep] = useState(2);\n\n  useEffect(() => {\n    const timer = setInterval(() => {\n      setCurrentStep((prev) => (prev < STEPS.length ? prev + 1 : 0));\n    }, 2500);\n    return () => clearInterval(timer);\n  }, []);\n\n  return (\n    <div className=\"w-full max-w-md mx-auto p-5 rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/60 backdrop-blur-xl shadow-lg\">\n      <div className=\"flex items-center justify-between mb-4 pb-2 border-b border-zinc-200/60 dark:border-white/5\">\n        <span className=\"text-[10px] font-mono uppercase tracking-widest text-zinc-500\">SYNTHESIS PIPELINE</span>\n        <span className=\"text-[10px] font-mono text-emerald-500 font-bold\">\n          {Math.min(100, Math.round((currentStep / (STEPS.length - 1)) * 100))}% COMPLETE\n        </span>\n      </div>\n\n      <div className=\"space-y-3\">\n        {STEPS.map((step, idx) => {\n          const isDone = idx < currentStep;\n          const isCurrent = idx === currentStep;\n\n          return (\n            <div key={step} className=\"flex items-center gap-3\">\n              <div\n                className={`flex h-6 w-6 shrink-0 items-center justify-center rounded-full text-xs transition-colors ${\n                  isDone\n                    ? 'bg-emerald-500 text-white font-bold'\n                    : isCurrent\n                    ? 'bg-indigo-600 text-white animate-pulse'\n                    : 'bg-zinc-100 dark:bg-zinc-800 text-zinc-400'\n                }`}\n              >\n                {isDone ? (\n                  <Check size={12} weight=\"bold\" />\n                ) : isCurrent ? (\n                  <CircleNotch size={13} className=\"animate-spin\" />\n                ) : (\n                  <span className=\"text-[10px] font-mono\">{idx + 1}</span>\n                )}\n              </div>\n              <span\n                className={`text-xs font-mono transition-colors ${\n                  isDone\n                    ? 'text-zinc-400 line-through'\n                    : isCurrent\n                    ? 'text-zinc-900 dark:text-white font-semibold'\n                    : 'text-zinc-500'\n                }`}\n              >\n                {step}\n              </span>\n            </div>\n          );\n        })}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "skeleton-shimmer-card",
    "type": "registry:ui",
    "title": "Skeleton Shimmer Card",
    "description": "Realistic placeholder skeleton loader with smooth gradient shimmer sweep for dashboard layouts.",
    "category": "feedback",
    "dependencies": [],
    "files": [
      {
        "path": "registry/feedback/skeleton-shimmer-card/skeleton-shimmer-card.tsx",
        "type": "registry:ui",
        "target": "components/ui/skeleton-shimmer-card.tsx",
        "content": "import React from 'react';\n\nexport const SkeletonShimmerCard: React.FC = () => {\n  return (\n    <div className=\"w-full max-w-sm mx-auto p-5 rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/60 shadow-lg space-y-4\">\n      {/* Avatar & Header */}\n      <div className=\"flex items-center gap-3\">\n        <div className=\"relative h-10 w-10 rounded-full bg-zinc-200 dark:bg-zinc-800 overflow-hidden\">\n          <div className=\"absolute inset-0 -translate-x-full animate-[shinyShimmer_1.5s_infinite] bg-gradient-to-r from-transparent via-white/20 dark:via-white/10 to-transparent\" />\n        </div>\n        <div className=\"space-y-1.5 flex-1\">\n          <div className=\"relative h-3.5 w-2/3 rounded-lg bg-zinc-200 dark:bg-zinc-800 overflow-hidden\">\n            <div className=\"absolute inset-0 -translate-x-full animate-[shinyShimmer_1.5s_infinite] bg-gradient-to-r from-transparent via-white/20 dark:via-white/10 to-transparent\" />\n          </div>\n          <div className=\"relative h-2.5 w-1/3 rounded-lg bg-zinc-200 dark:bg-zinc-800 overflow-hidden\">\n            <div className=\"absolute inset-0 -translate-x-full animate-[shinyShimmer_1.5s_infinite] bg-gradient-to-r from-transparent via-white/20 dark:via-white/10 to-transparent\" />\n          </div>\n        </div>\n      </div>\n\n      {/* Hero media placeholder */}\n      <div className=\"relative h-28 w-full rounded-2xl bg-zinc-200 dark:bg-zinc-800 overflow-hidden\">\n        <div className=\"absolute inset-0 -translate-x-full animate-[shinyShimmer_1.5s_infinite] bg-gradient-to-r from-transparent via-white/20 dark:via-white/10 to-transparent\" />\n      </div>\n\n      {/* Paragraph rows */}\n      <div className=\"space-y-2 pt-1\">\n        <div className=\"relative h-2.5 w-full rounded bg-zinc-200 dark:bg-zinc-800 overflow-hidden\">\n          <div className=\"absolute inset-0 -translate-x-full animate-[shinyShimmer_1.5s_infinite] bg-gradient-to-r from-transparent via-white/20 dark:via-white/10 to-transparent\" />\n        </div>\n        <div className=\"relative h-2.5 w-4/5 rounded bg-zinc-200 dark:bg-zinc-800 overflow-hidden\">\n          <div className=\"absolute inset-0 -translate-x-full animate-[shinyShimmer_1.5s_infinite] bg-gradient-to-r from-transparent via-white/20 dark:via-white/10 to-transparent\" />\n        </div>\n      </div>\n\n      {/* Action button skeleton */}\n      <div className=\"pt-2\">\n        <div className=\"relative h-8 w-full rounded-xl bg-zinc-200 dark:bg-zinc-800 overflow-hidden\">\n          <div className=\"absolute inset-0 -translate-x-full animate-[shinyShimmer_1.5s_infinite] bg-gradient-to-r from-transparent via-white/20 dark:via-white/10 to-transparent\" />\n        </div>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "status-radar-badge",
    "type": "registry:ui",
    "title": "Status Radar Badge",
    "description": "Live telemetry system status indicator badge with pulse sonar ring and calibrated state switches.",
    "category": "feedback",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/feedback/status-radar-badge/status-radar-badge.tsx",
        "type": "registry:ui",
        "target": "components/ui/status-radar-badge.tsx",
        "content": "import React, { useState } from 'react';\n\nexport type SystemStatus = 'operational' | 'degraded' | 'outage' | 'maintenance';\n\nexport const StatusRadarBadge: React.FC = () => {\n  const [status, setStatus] = useState<SystemStatus>('operational');\n\n  const config = {\n    operational: { color: 'bg-emerald-400', ring: 'ring-emerald-400', label: 'OPERATIONAL', latency: '24ms' },\n    degraded: { color: 'bg-amber-400', ring: 'ring-amber-400', label: 'DEGRADED', latency: '190ms' },\n    outage: { color: 'bg-rose-500', ring: 'ring-rose-500', label: 'OUTAGE', latency: 'TIMEOUT' },\n    maintenance: { color: 'bg-cyan-400', ring: 'ring-cyan-400', label: 'MAINTENANCE', latency: 'STANDBY' },\n  };\n\n  const curr = config[status];\n\n  return (\n    <div className=\"flex flex-col items-center gap-4\">\n      <div className=\"inline-flex items-center gap-2.5 rounded-full border border-zinc-200 dark:border-white/10 bg-white/90 dark:bg-zinc-900/80 px-4 py-1.5 shadow-sm\">\n        <span className=\"relative flex h-2.5 w-2.5\">\n          <span className={`animate-ping absolute inline-flex h-full w-full rounded-full opacity-75 ${curr.color}`} />\n          <span className={`relative inline-flex rounded-full h-2.5 w-2.5 ${curr.color}`} />\n        </span>\n        <span className=\"font-mono text-xs font-bold text-zinc-900 dark:text-white tracking-wider\">\n          {curr.label}\n        </span>\n        <span className=\"text-zinc-400\">&bull;</span>\n        <span className=\"font-mono text-[11px] text-zinc-500\">{curr.latency}</span>\n      </div>\n\n      <div className=\"flex gap-1.5 p-1 rounded-xl bg-zinc-100 dark:bg-zinc-900 border border-zinc-200 dark:border-white/5\">\n        {(Object.keys(config) as SystemStatus[]).map((st) => (\n          <button\n            key={st}\n            onClick={() => setStatus(st)}\n            className={`px-2.5 py-1 rounded-lg text-[10px] font-mono transition-colors cursor-pointer capitalize ${\n              status === st\n                ? 'bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white font-bold shadow-xs'\n                : 'text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-300'\n            }`}\n          >\n            {st}\n          </button>\n        ))}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "toast-notification-hub",
    "type": "registry:ui",
    "title": "Toast Notification Hub",
    "description": "Stackable interactive toast manager with auto-dismiss timers, progress meters, and action hooks.",
    "category": "feedback",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/feedback/toast-notification-hub/toast-notification-hub.tsx",
        "type": "registry:ui",
        "target": "components/ui/toast-notification-hub.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { CheckCircle, Warning, XCircle, Info, X } from '@phosphor-icons/react';\n\nexport interface ToastItem {\n  id: string;\n  type: 'success' | 'warning' | 'error' | 'info';\n  title: string;\n  message: string;\n}\n\nexport const ToastNotificationHub: React.FC = () => {\n  const [toasts, setToasts] = useState<ToastItem[]>([\n    { id: '1', type: 'success', title: 'Component Deployed', message: 'Registry endpoint synced to Vercel CDN.' },\n  ]);\n\n  const addToast = (type: ToastItem['type'], title: string, message: string) => {\n    const id = Math.random().toString(36).substring(7);\n    setToasts((prev) => [...prev, { id, type, title, message }]);\n    setTimeout(() => removeToast(id), 4000);\n  };\n\n  const removeToast = (id: string) => {\n    setToasts((prev) => prev.filter((t) => t.id !== id));\n  };\n\n  const getIcon = (type: ToastItem['type']) => {\n    switch (type) {\n      case 'success': return <CheckCircle size={18} weight=\"fill\" className=\"text-emerald-400\" />;\n      case 'warning': return <Warning size={18} weight=\"fill\" className=\"text-amber-400\" />;\n      case 'error': return <XCircle size={18} weight=\"fill\" className=\"text-rose-400\" />;\n      case 'info': return <Info size={18} weight=\"fill\" className=\"text-cyan-400\" />;\n    }\n  };\n\n  return (\n    <div className=\"w-full flex flex-col items-center gap-4\">\n      <div className=\"flex flex-wrap items-center justify-center gap-2\">\n        <button\n          onClick={() => addToast('success', 'Verified Artifact', 'Bit-reproducible SHA-256 generated.')}\n          className=\"px-3 py-1.5 rounded-xl text-xs font-mono font-medium bg-emerald-500/10 text-emerald-600 dark:text-emerald-400 border border-emerald-500/20 hover:bg-emerald-500/20 transition-colors cursor-pointer\"\n        >\n          + Success Toast\n        </button>\n        <button\n          onClick={() => addToast('warning', 'High Mem Quota', 'Telemetry RAM usage reached 84%.')}\n          className=\"px-3 py-1.5 rounded-xl text-xs font-mono font-medium bg-amber-500/10 text-amber-600 dark:text-amber-400 border border-amber-500/20 hover:bg-amber-500/20 transition-colors cursor-pointer\"\n        >\n          + Warning Toast\n        </button>\n        <button\n          onClick={() => addToast('error', 'Compiler Crash', 'Signal SIGSEGV caught in isolate sandbox.')}\n          className=\"px-3 py-1.5 rounded-xl text-xs font-mono font-medium bg-rose-500/10 text-rose-600 dark:text-rose-400 border border-rose-500/20 hover:bg-rose-500/20 transition-colors cursor-pointer\"\n        >\n          + Error Toast\n        </button>\n      </div>\n\n      <div className=\"w-full max-w-sm space-y-2 mt-2\">\n        <AnimatePresence>\n          {toasts.map((toast) => (\n            <motion.div\n              key={toast.id}\n              initial={{ opacity: 0, y: 15, scale: 0.95 }}\n              animate={{ opacity: 1, y: 0, scale: 1 }}\n              exit={{ opacity: 0, x: 50, scale: 0.9 }}\n              transition={{ type: 'spring', stiffness: 350, damping: 25 }}\n              className=\"flex items-start justify-between p-3.5 rounded-2xl border border-zinc-200 dark:border-white/10 bg-white/95 dark:bg-zinc-900/90 backdrop-blur-xl shadow-lg\"\n            >\n              <div className=\"flex items-start gap-3\">\n                <div className=\"mt-0.5\">{getIcon(toast.type)}</div>\n                <div>\n                  <h5 className=\"text-xs font-bold text-zinc-900 dark:text-white font-mono\">{toast.title}</h5>\n                  <p className=\"text-[11px] text-zinc-600 dark:text-zinc-400 mt-0.5\">{toast.message}</p>\n                </div>\n              </div>\n              <button\n                onClick={() => removeToast(toast.id)}\n                className=\"text-zinc-400 hover:text-zinc-900 dark:hover:text-white p-1 rounded-full transition-colors cursor-pointer\"\n              >\n                <X size={12} />\n              </button>\n            </motion.div>\n          ))}\n        </AnimatePresence>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "animated-floating-input",
    "type": "registry:ui",
    "title": "Animated Floating Input",
    "description": "Material/Vercel-style input with smooth spring floating label, clear action, and validation styling.",
    "category": "forms",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/forms/animated-floating-input/animated-floating-input.tsx",
        "type": "registry:ui",
        "target": "components/ui/animated-floating-input.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { X, CheckCircle, WarningCircle } from '@phosphor-icons/react';\n\nexport interface AnimatedFloatingInputProps {\n  label?: string;\n  type?: string;\n  value?: string;\n  placeholder?: string;\n  error?: string;\n  success?: boolean;\n  onChange?: (val: string) => void;\n  className?: string;\n}\n\nexport const AnimatedFloatingInput: React.FC<AnimatedFloatingInputProps> = ({\n  label = 'Engineering Handle',\n  type = 'text',\n  value: controlledValue,\n  placeholder = '',\n  error,\n  success,\n  onChange,\n  className = '',\n}) => {\n  const [internalValue, setInternalValue] = useState('architect@cooki.dev');\n  const [isFocused, setIsFocused] = useState(false);\n  const value = controlledValue !== undefined ? controlledValue : internalValue;\n  const isFloating = isFocused || value.length > 0;\n\n  const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n    setInternalValue(e.target.value);\n    onChange?.(e.target.value);\n  };\n\n  return (\n    <div className={`relative w-full max-w-sm ${className}`}>\n      <div\n        className={`relative rounded-2xl border bg-white dark:bg-zinc-900/60 transition-all duration-200 ${\n          error\n            ? 'border-rose-500/80 ring-2 ring-rose-500/20'\n            : success\n            ? 'border-emerald-500/80 ring-2 ring-emerald-500/20'\n            : isFocused\n            ? 'border-indigo-500 ring-2 ring-indigo-500/20 shadow-lg shadow-indigo-500/10'\n            : 'border-zinc-300 dark:border-white/10 hover:border-zinc-400 dark:hover:border-white/20'\n        }`}\n      >\n        <motion.label\n          initial={false}\n          animate={{\n            top: isFloating ? '8px' : '18px',\n            fontSize: isFloating ? '10px' : '13px',\n            color: error\n              ? '#f43f5e'\n              : isFocused\n              ? '#818cf8'\n              : isFloating\n              ? '#a1a1aa'\n              : '#71717a',\n          }}\n          transition={{ duration: 0.15, ease: 'easeOut' }}\n          className=\"absolute left-4 pointer-events-none font-mono uppercase tracking-wider font-semibold select-none z-10\"\n        >\n          {label}\n        </motion.label>\n\n        <input\n          type={type}\n          value={value}\n          onFocus={() => setIsFocused(true)}\n          onBlur={() => setIsFocused(false)}\n          onChange={handleChange}\n          placeholder={isFocused ? placeholder : ''}\n          className=\"w-full bg-transparent px-4 pt-6 pb-2.5 text-xs text-zinc-900 dark:text-zinc-100 font-mono outline-none\"\n        />\n\n        <div className=\"absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-1.5\">\n          {value && (\n            <button\n              type=\"button\"\n              onClick={() => {\n                setInternalValue('');\n                onChange?.('');\n              }}\n              className=\"text-zinc-400 hover:text-zinc-600 dark:hover:text-white p-1 rounded-full transition-colors cursor-pointer\"\n            >\n              <X size={12} weight=\"bold\" />\n            </button>\n          )}\n          {success && <CheckCircle size={15} weight=\"fill\" className=\"text-emerald-500\" />}\n          {error && <WarningCircle size={15} weight=\"fill\" className=\"text-rose-500\" />}\n        </div>\n      </div>\n\n      <AnimatePresence>\n        {error && (\n          <motion.p\n            initial={{ opacity: 0, y: -4 }}\n            animate={{ opacity: 1, y: 0 }}\n            exit={{ opacity: 0, y: -4 }}\n            className=\"mt-1.5 ml-2 text-[10px] font-mono text-rose-400\"\n          >\n            {error}\n          </motion.p>\n        )}\n      </AnimatePresence>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "color-palette-picker",
    "type": "registry:ui",
    "title": "Luminescent Color Palette Swatch",
    "description": "Interactive hex color picker with preset neon palettes, live RGB hex badge, and clipboard copy confirmation.",
    "category": "forms",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/forms/color-palette-picker/color-palette-picker.tsx",
        "type": "registry:ui",
        "target": "components/ui/color-palette-picker.tsx",
        "content": "import React, { useState } from 'react';\nimport { Check, Copy } from '@phosphor-icons/react';\n\nconst PRESETS = [\n  { name: 'Indigo Pulse', hex: '#6366f1' },\n  { name: 'Cyan Glow', hex: '#06b6d4' },\n  { name: 'Emerald Spark', hex: '#10b981' },\n  { name: 'Amber Sun', hex: '#f59e0b' },\n  { name: 'Rose Neon', hex: '#f43f5e' },\n];\n\nexport const ColorPalettePicker: React.FC = () => {\n  const [selected, setSelected] = useState(PRESETS[0]);\n  const [copied, setCopied] = useState(false);\n\n  const handleCopy = () => {\n    navigator.clipboard.writeText(selected.hex);\n    setCopied(true);\n    setTimeout(() => setCopied(false), 2000);\n  };\n\n  return (\n    <div className=\"w-full max-w-xs mx-auto p-4 rounded-2xl border border-zinc-200 dark:border-white/10 bg-white/90 dark:bg-zinc-900/90 shadow-lg backdrop-blur-md font-mono text-xs\">\n      <div className=\"flex items-center justify-between mb-3\">\n        <span className=\"text-zinc-500 text-[11px] uppercase\">Active Hue</span>\n        <button\n          onClick={handleCopy}\n          className=\"flex items-center gap-1 text-[11px] font-bold text-zinc-700 dark:text-zinc-200 hover:text-indigo-500 cursor-pointer\"\n        >\n          <span>{selected.hex}</span>\n          {copied ? <Check size={11} className=\"text-emerald-500\" /> : <Copy size={11} />}\n        </button>\n      </div>\n\n      <div className=\"flex items-center justify-between gap-2\">\n        {PRESETS.map((p) => {\n          const isSelected = selected.hex === p.hex;\n          return (\n            <button\n              key={p.hex}\n              onClick={() => setSelected(p)}\n              style={{ backgroundColor: p.hex }}\n              className={`w-9 h-9 rounded-xl transition-transform cursor-pointer shadow-sm ${\n                isSelected ? 'scale-110 ring-2 ring-white ring-offset-2 ring-offset-zinc-900' : 'hover:scale-105 opacity-80 hover:opacity-100'\n              }`}\n            />\n          );\n        })}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "color-theme-switcher-pill",
    "type": "registry:ui",
    "title": "Color Theme Switcher Pill",
    "description": "Tactile theme pill toggle with animated sun/moon morph physics and interactive swatch switching.",
    "category": "forms",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/forms/color-theme-switcher-pill/color-theme-switcher-pill.tsx",
        "type": "registry:ui",
        "target": "components/ui/color-theme-switcher-pill.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion } from 'framer-motion';\nimport { Check } from '@phosphor-icons/react';\n\nexport const ColorThemeSwitcherPill: React.FC = () => {\n  const [selectedColor, setSelectedColor] = useState('indigo');\n\n  const themes = [\n    { id: 'indigo', name: 'Indigo Pulse', bg: 'bg-indigo-500', hex: '#6366f1' },\n    { id: 'emerald', name: 'Emerald Forest', bg: 'bg-emerald-500', hex: '#10b981' },\n    { id: 'rose', name: 'Rose Cyber', bg: 'bg-rose-500', hex: '#f43f5e' },\n    { id: 'amber', name: 'Amber Gold', bg: 'bg-amber-500', hex: '#f59e0b' },\n    { id: 'cyan', name: 'Cyan Deep', bg: 'bg-cyan-500', hex: '#06b6d4' },\n  ];\n\n  return (\n    <div className=\"flex items-center gap-2 p-2 rounded-2xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-950 shadow-lg\">\n      {themes.map((t) => (\n        <button\n          key={t.id}\n          onClick={() => setSelectedColor(t.id)}\n          className=\"relative flex h-8 w-8 items-center justify-center rounded-xl transition-transform hover:scale-105 active:scale-95 cursor-pointer\"\n        >\n          <span className={`h-6 w-6 rounded-lg ${t.bg} shadow-sm flex items-center justify-center`}>\n            {selectedColor === t.id && (\n              <Check size={12} weight=\"bold\" className=\"text-white\" />\n            )}\n          </span>\n          {selectedColor === t.id && (\n            <motion.div\n              layoutId=\"theme-active-ring\"\n              className=\"absolute inset-0 rounded-xl border-2 border-zinc-900 dark:border-white\"\n            />\n          )}\n        </button>\n      ))}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "combobox",
    "type": "registry:ui",
    "title": "Combobox Basic",
    "description": "Autocomplete combobox with real-time fuzzy filtering, keyboard navigation, popover animations, and compound render prop item slots.",
    "category": "forms",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react",
      "clsx",
      "tailwind-merge"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "forms",
      "autocomplete",
      "select",
      "combobox",
      "input",
      "dropdown"
    ],
    "files": [
      {
        "path": "registry/forms/combobox/combobox.tsx",
        "type": "registry:ui",
        "target": "components/ui/combobox.tsx",
        "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { motion, AnimatePresence } from \"framer-motion\"\nimport { MagnifyingGlass, CaretUpDown, Check } from \"@phosphor-icons/react\"\nimport { cn } from \"@/lib/utils\"\n\ninterface ComboboxContextValue<T = any> {\n  items: readonly T[] | T[]\n  value?: T\n  selectedValue?: T\n  query: string\n  setQuery: (q: string) => void\n  isOpen: boolean\n  setIsOpen: (open: boolean) => void\n  filteredItems: T[]\n  selectItem: (item: T) => void\n  containerRef: React.RefObject<HTMLDivElement | null>\n  inputRef: React.RefObject<HTMLInputElement | null>\n}\n\nconst ComboboxContext = React.createContext<ComboboxContextValue | null>(null)\n\nfunction useComboboxContext<T = any>() {\n  const context = React.useContext(ComboboxContext)\n  if (!context) {\n    throw new Error(\"Combobox components must be used within a <Combobox /> provider\")\n  }\n  return context as ComboboxContextValue<T>\n}\n\nexport interface ComboboxProps<T = any> {\n  items: readonly T[] | T[]\n  value?: T\n  defaultValue?: T\n  onValueChange?: (value: T) => void\n  filter?: (item: T, query: string) => boolean\n  className?: string\n  children: React.ReactNode\n}\n\nexport function Combobox<T = any>({\n  items,\n  value: controlledValue,\n  defaultValue,\n  onValueChange,\n  filter,\n  className,\n  children,\n}: ComboboxProps<T>) {\n  const [internalValue, setInternalValue] = React.useState<T | undefined>(defaultValue)\n  const [query, setQuery] = React.useState(\"\")\n  const [isOpen, setIsOpen] = React.useState(false)\n  const containerRef = React.useRef<HTMLDivElement | null>(null)\n  const inputRef = React.useRef<HTMLInputElement | null>(null)\n\n  const selectedValue = controlledValue !== undefined ? controlledValue : internalValue\n\n  const filteredItems = React.useMemo(() => {\n    if (!query.trim()) return items as T[]\n    if (filter) {\n      return (items as T[]).filter((item) => filter(item, query))\n    }\n    const lowerQuery = query.toLowerCase()\n    return (items as T[]).filter((item) => {\n      if (typeof item === \"string\") {\n        return item.toLowerCase().includes(lowerQuery)\n      }\n      if (typeof item === \"object\" && item !== null) {\n        return Object.values(item).some(\n          (val) => typeof val === \"string\" && val.toLowerCase().includes(lowerQuery)\n        )\n      }\n      return String(item).toLowerCase().includes(lowerQuery)\n    })\n  }, [items, query, filter])\n\n  const selectItem = React.useCallback(\n    (item: T) => {\n      if (controlledValue === undefined) {\n        setInternalValue(item)\n      }\n      onValueChange?.(item)\n      setQuery(\"\")\n      setIsOpen(false)\n    },\n    [controlledValue, onValueChange]\n  )\n\n  // Close on outside click\n  React.useEffect(() => {\n    function handleClickOutside(event: MouseEvent) {\n      if (containerRef.current && !containerRef.current.contains(event.target as Node)) {\n        setIsOpen(false)\n      }\n    }\n    document.addEventListener(\"mousedown\", handleClickOutside)\n    return () => document.removeEventListener(\"mousedown\", handleClickOutside)\n  }, [])\n\n  return (\n    <ComboboxContext.Provider\n      value={{\n        items,\n        value: controlledValue,\n        selectedValue,\n        query,\n        setQuery,\n        isOpen,\n        setIsOpen,\n        filteredItems,\n        selectItem,\n        containerRef,\n        inputRef,\n      }}\n    >\n      <div ref={containerRef} className={cn(\"relative w-full max-w-sm\", isOpen && \"z-30\", className)}>\n        {children}\n      </div>\n    </ComboboxContext.Provider>\n  )\n}\n\nexport interface ComboboxInputProps\n  extends React.InputHTMLAttributes<HTMLInputElement> {\n  wrapperClassName?: string\n}\n\nexport const ComboboxInput = React.forwardRef<HTMLInputElement, ComboboxInputProps>(\n  ({ className, wrapperClassName, placeholder = \"Search...\", ...props }, forwardedRef) => {\n    const { query, setQuery, isOpen, setIsOpen, selectedValue, inputRef } = useComboboxContext()\n\n    React.useImperativeHandle(forwardedRef, () => inputRef.current as HTMLInputElement)\n\n    const displayValue = isOpen\n      ? query\n      : query || (selectedValue ? String(selectedValue) : \"\")\n\n    const effectivePlaceholder = (selectedValue && isOpen) ? String(selectedValue) : placeholder\n\n    return (\n      <div\n        className={cn(\n          \"relative flex items-center rounded-xl border border-zinc-200/90 dark:border-white/10 bg-white/90 dark:bg-zinc-900/90 shadow-xs backdrop-blur-md transition-all duration-200 focus-within:border-indigo-500/80 focus-within:ring-2 focus-within:ring-indigo-500/20\",\n          wrapperClassName\n        )}\n        onClick={() => {\n          inputRef.current?.focus()\n          setIsOpen(true)\n        }}\n      >\n        <MagnifyingGlass\n          size={16}\n          weight=\"bold\"\n          className=\"ml-3.5 shrink-0 text-zinc-400 dark:text-zinc-500\"\n        />\n        <input\n          ref={inputRef}\n          type=\"text\"\n          value={displayValue}\n          placeholder={effectivePlaceholder}\n          onChange={(e) => {\n            setQuery(e.target.value)\n            if (!isOpen) setIsOpen(true)\n          }}\n          onFocus={() => setIsOpen(true)}\n          onKeyDown={(e) => {\n            if (e.key === \"Escape\") {\n              setIsOpen(false)\n            }\n          }}\n          className={cn(\n            \"w-full bg-transparent px-3 py-2.5 text-sm text-zinc-900 placeholder:text-zinc-400 focus:outline-none dark:text-white dark:placeholder:text-zinc-500\",\n            className\n          )}\n          {...props}\n        />\n        <CaretUpDown\n          size={16}\n          weight=\"bold\"\n          className={cn(\n            \"mr-3 shrink-0 text-zinc-400 transition-transform duration-200 dark:text-zinc-500 cursor-pointer\",\n            isOpen && \"rotate-180 text-zinc-700 dark:text-zinc-300\"\n          )}\n          onClick={(e) => {\n            e.stopPropagation()\n            setIsOpen(!isOpen)\n          }}\n        />\n      </div>\n    )\n  }\n)\nComboboxInput.displayName = \"ComboboxInput\"\n\nexport interface ComboboxContentProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport function ComboboxContent({ className, children, ...props }: ComboboxContentProps) {\n  const { isOpen } = useComboboxContext()\n\n  return (\n    <AnimatePresence>\n      {isOpen && (\n        <motion.div\n          initial={{ opacity: 0, y: -6, scale: 0.98 }}\n          animate={{ opacity: 1, y: 0, scale: 1 }}\n          exit={{ opacity: 0, y: -6, scale: 0.98 }}\n          transition={{ duration: 0.15, ease: \"easeOut\" }}\n          className={cn(\n            \"absolute left-0 right-0 top-full z-50 mt-1.5 overflow-hidden rounded-xl border border-zinc-200 dark:border-white/10 bg-white/95 dark:bg-zinc-950/95 p-1.5 shadow-xl backdrop-blur-xl\",\n            className\n          )}\n          {...props}\n        >\n          {children}\n        </motion.div>\n      )}\n    </AnimatePresence>\n  )\n}\n\nexport interface ComboboxEmptyProps extends React.HTMLAttributes<HTMLDivElement> {}\n\nexport function ComboboxEmpty({ className, children = \"No items found.\", ...props }: ComboboxEmptyProps) {\n  const { filteredItems } = useComboboxContext()\n\n  if (filteredItems.length > 0) return null\n\n  return (\n    <div\n      className={cn(\n        \"py-6 text-center text-xs font-mono text-zinc-400 dark:text-zinc-500\",\n        className\n      )}\n      {...props}\n    >\n      {children}\n    </div>\n  )\n}\n\nexport interface ComboboxListProps<T = any>\n  extends Omit<React.HTMLAttributes<HTMLDivElement>, \"children\"> {\n  children?: React.ReactNode | ((item: T, index: number) => React.ReactNode)\n}\n\nexport function ComboboxList<T = any>({\n  className,\n  children,\n  ...props\n}: ComboboxListProps<T>) {\n  const { filteredItems } = useComboboxContext<T>()\n\n  return (\n    <div\n      className={cn(\"max-h-56 overflow-y-auto overflow-x-hidden space-y-0.5 scrollbar-thin\", className)}\n      {...props}\n    >\n      {typeof children === \"function\"\n        ? filteredItems.map((item, idx) => (children as (item: T, index: number) => React.ReactNode)(item, idx))\n        : children}\n    </div>\n  )\n}\n\nexport interface ComboboxItemProps extends React.HTMLAttributes<HTMLDivElement> {\n  value: any\n  disabled?: boolean\n}\n\nexport function ComboboxItem({\n  value,\n  disabled = false,\n  className,\n  children,\n  ...props\n}: ComboboxItemProps) {\n  const { selectedValue, selectItem } = useComboboxContext()\n\n  const isSelected = selectedValue === value || String(selectedValue) === String(value)\n\n  return (\n    <div\n      onClick={() => {\n        if (!disabled) {\n          selectItem(value)\n        }\n      }}\n      className={cn(\n        \"group relative flex cursor-pointer items-center justify-between rounded-lg px-3 py-2 text-sm text-zinc-700 transition-colors duration-150 hover:bg-zinc-100 hover:text-zinc-900 dark:text-zinc-300 dark:hover:bg-zinc-800/80 dark:hover:text-white select-none\",\n        isSelected && \"bg-indigo-50 font-medium text-indigo-600 dark:bg-indigo-950/40 dark:text-indigo-400\",\n        disabled && \"pointer-events-none opacity-40\",\n        className\n      )}\n      {...props}\n    >\n      <span className=\"truncate\">{children}</span>\n      {isSelected && (\n        <Check size={14} weight=\"bold\" className=\"shrink-0 text-indigo-600 dark:text-indigo-400\" />\n      )}\n    </div>\n  )\n}\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "drag-drop-file-upload",
    "type": "registry:ui",
    "title": "Drag & Drop File Upload",
    "description": "Interactive file drop zone with dashed border animation, file type validation, and preview chips.",
    "category": "forms",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/forms/drag-drop-file-upload/drag-drop-file-upload.tsx",
        "type": "registry:ui",
        "target": "components/ui/drag-drop-file-upload.tsx",
        "content": "import React, { useState, useRef } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { CloudArrowUp, File, Check, Trash } from '@phosphor-icons/react';\n\nexport interface FileItem {\n  id: string;\n  name: string;\n  size: string;\n  progress: number;\n}\n\nexport const DragDropFileUpload: React.FC = () => {\n  const [isDragging, setIsDragging] = useState(false);\n  const [files, setFiles] = useState<FileItem[]>([\n    { id: '1', name: 'schema-kernel-v2.json', size: '24.8 KB', progress: 100 },\n  ]);\n  const inputRef = useRef<HTMLInputElement>(null);\n\n  const handleDrag = (e: React.DragEvent) => {\n    e.preventDefault();\n    e.stopPropagation();\n    if (e.type === 'dragenter' || e.type === 'dragover') setIsDragging(true);\n    else if (e.type === 'dragleave') setIsDragging(false);\n  };\n\n  const handleDrop = (e: React.DragEvent) => {\n    e.preventDefault();\n    e.stopPropagation();\n    setIsDragging(false);\n    if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n      addFiles(Array.from(e.dataTransfer.files));\n    }\n  };\n\n  const addFiles = (newFiles: globalThis.File[]) => {\n    const items: FileItem[] = newFiles.map((f) => ({\n      id: Math.random().toString(36).substring(7),\n      name: f.name,\n      size: (f.size / 1024).toFixed(1) + ' KB',\n      progress: 100,\n    }));\n    setFiles((prev) => [...prev, ...items]);\n  };\n\n  const removeFile = (id: string) => {\n    setFiles((prev) => prev.filter((f) => f.id !== id));\n  };\n\n  return (\n    <div className=\"w-full max-w-md mx-auto space-y-4\">\n      <div\n        onDragEnter={handleDrag}\n        onDragLeave={handleDrag}\n        onDragOver={handleDrag}\n        onDrop={handleDrop}\n        onClick={() => inputRef.current?.click()}\n        className={`relative flex flex-col items-center justify-center p-8 rounded-3xl border-2 border-dashed transition-all cursor-pointer ${\n          isDragging\n            ? 'border-indigo-500 bg-indigo-500/10 scale-[1.01]'\n            : 'border-zinc-300 dark:border-white/15 bg-zinc-50 dark:bg-zinc-900/40 hover:border-indigo-400 dark:hover:border-white/30'\n        }`}\n      >\n        <input\n          ref={inputRef}\n          type=\"file\"\n          multiple\n          className=\"hidden\"\n          onChange={(e) => {\n            if (e.target.files) addFiles(Array.from(e.target.files));\n          }}\n        />\n        <div className=\"flex h-12 w-12 items-center justify-center rounded-2xl bg-indigo-500/10 text-indigo-500 dark:text-indigo-400 mb-3 border border-indigo-500/20 shadow-inner\">\n          <CloudArrowUp size={24} weight=\"duotone\" />\n        </div>\n        <p className=\"text-xs font-semibold text-zinc-900 dark:text-white\">\n          Drop component artifacts or <span className=\"text-indigo-500 dark:text-indigo-400\">browse</span>\n        </p>\n        <p className=\"text-[10px] text-zinc-500 font-mono mt-1\">Accepts .TSX, .JSON, .MD, .CSS up to 10MB</p>\n      </div>\n\n      <AnimatePresence>\n        {files.length > 0 && (\n          <div className=\"space-y-2\">\n            {files.map((file) => (\n              <motion.div\n                key={file.id}\n                initial={{ opacity: 0, height: 0 }}\n                animate={{ opacity: 1, height: 'auto' }}\n                exit={{ opacity: 0, height: 0 }}\n                className=\"flex items-center justify-between p-3 rounded-2xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/60 shadow-xs\"\n              >\n                <div className=\"flex items-center gap-2.5 truncate\">\n                  <File size={16} className=\"text-zinc-400 shrink-0\" />\n                  <div className=\"truncate\">\n                    <p className=\"text-xs font-mono font-medium text-zinc-900 dark:text-white truncate\">{file.name}</p>\n                    <p className=\"text-[10px] font-mono text-zinc-500\">{file.size}</p>\n                  </div>\n                </div>\n                <div className=\"flex items-center gap-2\">\n                  <span className=\"flex items-center gap-1 text-[10px] font-mono text-emerald-500 font-semibold bg-emerald-500/10 px-2 py-0.5 rounded-full border border-emerald-500/20\">\n                    <Check size={11} weight=\"bold\" /> Ready\n                  </span>\n                  <button\n                    onClick={(e) => {\n                      e.stopPropagation();\n                      removeFile(file.id);\n                    }}\n                    className=\"text-zinc-400 hover:text-rose-500 p-1 rounded-full transition-colors cursor-pointer\"\n                  >\n                    <Trash size={13} />\n                  </button>\n                </div>\n              </motion.div>\n            ))}\n          </div>\n        )}\n      </AnimatePresence>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "dual-range-slider",
    "type": "registry:ui",
    "title": "Precision Dual Range Slider",
    "description": "Multi-handle min and max numerical range slider with gradient active span and dynamic floating value tooltips.",
    "category": "forms",
    "dependencies": [],
    "files": [
      {
        "path": "registry/forms/dual-range-slider/dual-range-slider.tsx",
        "type": "registry:ui",
        "target": "components/ui/dual-range-slider.tsx",
        "content": "import React, { useState } from 'react';\n\nexport const DualRangeSlider: React.FC = () => {\n  const [minVal, setMinVal] = useState(24);\n  const [maxVal, setMaxVal] = useState(82);\n\n  return (\n    <div className=\"w-full max-w-sm mx-auto p-4 rounded-2xl border border-zinc-200 dark:border-white/10 bg-white/90 dark:bg-zinc-900/90 shadow-lg backdrop-blur-md font-mono text-xs\">\n      <div className=\"flex justify-between items-center mb-4\">\n        <span className=\"text-zinc-500 uppercase tracking-wider text-[11px]\">Latency Threshold</span>\n        <span className=\"font-bold text-indigo-500\">{minVal}ms – {maxVal}ms</span>\n      </div>\n\n      <div className=\"relative w-full h-8 flex items-center\">\n        {/* Track Base */}\n        <div className=\"absolute w-full h-2 rounded-full bg-zinc-200 dark:bg-zinc-800\" />\n\n        {/* Highlight Span */}\n        <div\n          className=\"absolute h-2 rounded-full bg-gradient-to-r from-indigo-500 to-cyan-400\"\n          style={{\n            left: `${minVal}%`,\n            width: `${Math.max(0, maxVal - minVal)}%`,\n          }}\n        />\n\n        {/* Dual Input Controls */}\n        <input\n          type=\"range\"\n          min=\"0\"\n          max=\"100\"\n          value={minVal}\n          onChange={(e) => setMinVal(Math.min(Number(e.target.value), maxVal - 5))}\n          className=\"absolute w-full appearance-none bg-transparent pointer-events-auto cursor-pointer accent-indigo-600\"\n        />\n        <input\n          type=\"range\"\n          min=\"0\"\n          max=\"100\"\n          value={maxVal}\n          onChange={(e) => setMaxVal(Math.max(Number(e.target.value), minVal + 5))}\n          className=\"absolute w-full appearance-none bg-transparent pointer-events-auto cursor-pointer accent-cyan-400\"\n        />\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "expandable-search-bar",
    "type": "registry:ui",
    "title": "Expandable Command Search Bar",
    "description": "Compact search capsule expanding smoothly into a multi-tag command prompt with shortcuts.",
    "category": "forms",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "forms",
      "search",
      "cmd-k",
      "filter"
    ],
    "files": [
      {
        "path": "registry/forms/expandable-search-bar/expandable-search-bar.tsx",
        "type": "registry:ui",
        "target": "components/ui/expandable-search-bar.tsx",
        "content": "import React, { useState, useRef, useEffect } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { MagnifyingGlass, X, Lightning, ArrowRight } from '@phosphor-icons/react';\n\ninterface ExpandableSearchBarProps {\n  className?: string;\n  placeholder?: string;\n  onSearch?: (query: string) => void;\n  suggestions?: string[];\n}\n\nexport const ExpandableSearchBar: React.FC<ExpandableSearchBarProps> = ({\n  className = '',\n  placeholder = 'Search components, hooks, animations...',\n  onSearch,\n  suggestions = ['Magnetic Dock', 'Border Beam', 'Sliding Number', 'Aurora Glow', 'Bento Block'],\n}) => {\n  const [isExpanded, setIsExpanded] = useState(false);\n  const [query, setQuery] = useState('');\n  const containerRef = useRef<HTMLDivElement>(null);\n  const inputRef = useRef<HTMLInputElement>(null);\n\n  useEffect(() => {\n    const handleClickOutside = (e: MouseEvent) => {\n      if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n        if (!query) setIsExpanded(false);\n      }\n    };\n    document.addEventListener('mousedown', handleClickOutside);\n    return () => document.removeEventListener('mousedown', handleClickOutside);\n  }, [query]);\n\n  const handleSelectSuggestion = (item: string) => {\n    setQuery(item);\n    onSearch?.(item);\n    setIsExpanded(false);\n  };\n\n  return (\n    <div ref={containerRef} className={`relative z-20 w-full max-w-md ${className}`}>\n      <motion.div\n        animate={{\n          width: isExpanded ? '100%' : '320px',\n        }}\n        transition={{ type: 'spring', stiffness: 350, damping: 28 }}\n        className=\"relative mx-auto rounded-full bg-zinc-900/90 dark:bg-zinc-900/90 border border-white/15 backdrop-blur-xl shadow-xl overflow-hidden\"\n      >\n        <div className=\"flex items-center px-4 py-2.5 gap-2.5\">\n          <MagnifyingGlass\n            size={18}\n            className={`transition-colors duration-200 ${\n              isExpanded ? 'text-indigo-400' : 'text-zinc-400'\n            }`}\n          />\n          <input\n            ref={inputRef}\n            type=\"text\"\n            value={query}\n            onChange={(e) => {\n              setQuery(e.target.value);\n              onSearch?.(e.target.value);\n            }}\n            onFocus={() => setIsExpanded(true)}\n            placeholder={placeholder}\n            className=\"w-full bg-transparent text-sm text-zinc-100 placeholder-zinc-500 outline-none\"\n          />\n\n          {query ? (\n            <button\n              onClick={() => {\n                setQuery('');\n                onSearch?.('');\n                inputRef.current?.focus();\n              }}\n              className=\"text-zinc-400 hover:text-white p-1 rounded-full cursor-pointer\"\n            >\n              <X size={14} />\n            </button>\n          ) : (\n            <span className=\"hidden sm:inline-flex items-center gap-0.5 px-2 py-0.5 rounded text-[10px] font-mono font-medium text-zinc-400 bg-zinc-800 border border-zinc-700/60\">\n              ⌘K\n            </span>\n          )}\n        </div>\n\n        {/* Expanded Suggestions Dropdown */}\n        <AnimatePresence>\n          {isExpanded && (\n            <motion.div\n              initial={{ opacity: 0, height: 0 }}\n              animate={{ opacity: 1, height: 'auto' }}\n              exit={{ opacity: 0, height: 0 }}\n              transition={{ duration: 0.2 }}\n              className=\"px-4 pb-3 pt-1 border-t border-white/5 space-y-2\"\n            >\n              <div className=\"flex items-center justify-between text-[11px] font-mono text-zinc-500 pt-1\">\n                <span>TRENDING QUERIES</span>\n                <span className=\"flex items-center gap-1 text-indigo-400\">\n                  <Lightning size={12} weight=\"fill\" /> POPULAR\n                </span>\n              </div>\n              <div className=\"flex flex-wrap gap-1.5 pt-1\">\n                {suggestions.map((item) => (\n                  <button\n                    key={item}\n                    onClick={() => handleSelectSuggestion(item)}\n                    className=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full text-xs text-zinc-300 bg-white/5 hover:bg-white/10 hover:text-white border border-white/10 transition-colors cursor-pointer\"\n                  >\n                    <span>{item}</span>\n                    <ArrowRight size={10} className=\"text-zinc-500\" />\n                  </button>\n                ))}\n              </div>\n            </motion.div>\n          )}\n        </AnimatePresence>\n      </motion.div>\n    </div>\n  );\n};\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "multi-select-combobox",
    "type": "registry:ui",
    "title": "Multi-Select Combobox",
    "description": "Searchable multi-select dropdown with animated tag removals, keyboard navigation, and custom counter.",
    "category": "forms",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/forms/multi-select-combobox/multi-select-combobox.tsx",
        "type": "registry:ui",
        "target": "components/ui/multi-select-combobox.tsx",
        "content": "import React, { useState, useRef, useEffect } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { Check, CaretDown, X, MagnifyingGlass } from '@phosphor-icons/react';\n\nconst OPTIONS = [\n  'React 19',\n  'Next.js App Router',\n  'Tailwind CSS v4',\n  'Framer Motion',\n  'TypeScript 5.7',\n  'shadcn/ui',\n  'WebAssembly',\n  'Vite 6',\n];\n\nexport const MultiSelectCombobox: React.FC = () => {\n  const [selected, setSelected] = useState<string[]>(['React 19', 'Tailwind CSS v4']);\n  const [isOpen, setIsOpen] = useState(false);\n  const [search, setSearch] = useState('');\n  const containerRef = useRef<HTMLDivElement>(null);\n\n  useEffect(() => {\n    const handleOutside = (e: MouseEvent) => {\n      if (!containerRef.current?.contains(e.target as Node)) setIsOpen(false);\n    };\n    window.addEventListener('mousedown', handleOutside);\n    return () => window.removeEventListener('mousedown', handleOutside);\n  }, []);\n\n  const toggleOption = (opt: string) => {\n    setSelected((prev) =>\n      prev.includes(opt) ? prev.filter((o) => o !== opt) : [...prev, opt]\n    );\n  };\n\n  const filtered = OPTIONS.filter((o) => o.toLowerCase().includes(search.toLowerCase()));\n\n  return (\n    <div ref={containerRef} className=\"relative w-full max-w-sm mx-auto\">\n      <div\n        onClick={() => setIsOpen(!isOpen)}\n        className=\"flex min-h-[46px] items-center justify-between rounded-2xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/80 p-2 cursor-pointer shadow-xs transition-colors\"\n      >\n        <div className=\"flex flex-wrap gap-1.5 flex-1 items-center\">\n          {selected.length === 0 && (\n            <span className=\"text-xs font-mono text-zinc-500 pl-2\">Select framework tokens...</span>\n          )}\n          {selected.map((item) => (\n            <motion.span\n              key={item}\n              layout\n              className=\"inline-flex items-center gap-1 rounded-lg bg-indigo-500/10 text-indigo-600 dark:text-indigo-300 border border-indigo-500/20 px-2 py-0.5 text-xs font-mono\"\n            >\n              <span>{item}</span>\n              <button\n                type=\"button\"\n                onClick={(e) => {\n                  e.stopPropagation();\n                  toggleOption(item);\n                }}\n                className=\"hover:text-rose-500 cursor-pointer\"\n              >\n                <X size={10} weight=\"bold\" />\n              </button>\n            </motion.span>\n          ))}\n        </div>\n        <CaretDown size={14} className={`text-zinc-400 transition-transform ${isOpen ? 'rotate-180' : ''}`} />\n      </div>\n\n      <AnimatePresence>\n        {isOpen && (\n          <motion.div\n            initial={{ opacity: 0, y: 8, scale: 0.98 }}\n            animate={{ opacity: 1, y: 0, scale: 1 }}\n            exit={{ opacity: 0, y: 8, scale: 0.98 }}\n            transition={{ duration: 0.15 }}\n            className=\"absolute left-0 right-0 top-full mt-2 z-50 rounded-2xl border border-zinc-200 dark:border-white/15 bg-white dark:bg-zinc-950 p-2 shadow-2xl overflow-hidden\"\n          >\n            <div className=\"flex items-center gap-2 rounded-xl border border-zinc-200 dark:border-white/10 bg-zinc-100 dark:bg-zinc-900 px-3 py-1.5 mb-2\">\n              <MagnifyingGlass size={13} className=\"text-zinc-400\" />\n              <input\n                type=\"text\"\n                value={search}\n                onChange={(e) => setSearch(e.target.value)}\n                placeholder=\"Filter tokens...\"\n                className=\"w-full bg-transparent text-xs font-mono text-zinc-900 dark:text-white outline-none\"\n              />\n            </div>\n            <div className=\"max-h-48 overflow-y-auto space-y-1\">\n              {filtered.map((opt) => {\n                const isChecked = selected.includes(opt);\n                return (\n                  <button\n                    key={opt}\n                    type=\"button\"\n                    onClick={() => toggleOption(opt)}\n                    className={`flex w-full items-center justify-between rounded-xl px-3 py-2 text-xs font-mono transition-colors cursor-pointer ${\n                      isChecked\n                        ? 'bg-indigo-500/15 text-indigo-600 dark:text-indigo-300 font-semibold'\n                        : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-white/5'\n                    }`}\n                  >\n                    <span>{opt}</span>\n                    {isChecked && <Check size={14} weight=\"bold\" className=\"text-indigo-500\" />}\n                  </button>\n                );\n              })}\n            </div>\n          </motion.div>\n        )}\n      </AnimatePresence>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "otp-input",
    "type": "registry:ui",
    "title": "OTP Pin Input",
    "description": "6-digit verification code input with auto-advance, backspace handling, paste support, and spring highlight.",
    "category": "forms",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/forms/otp-input/otp-input.tsx",
        "type": "registry:ui",
        "target": "components/ui/otp-input.tsx",
        "content": "import React, { useRef, useState, useEffect } from 'react';\nimport { motion } from 'framer-motion';\n\nexport interface OTPInputProps {\n  length?: number;\n  onComplete?: (code: string) => void;\n  className?: string;\n}\n\nexport const OTPInput: React.FC<OTPInputProps> = ({\n  length = 6,\n  onComplete,\n  className = '',\n}) => {\n  const [digits, setDigits] = useState<string[]>(Array(length).fill(''));\n  const [focusedIndex, setFocusedIndex] = useState<number>(0);\n  const inputRefs = useRef<(HTMLInputElement | null)[]>([]);\n\n  useEffect(() => {\n    setDigits((prev) => {\n      if (prev.length === length) return prev;\n      const next = Array(length).fill('');\n      for (let i = 0; i < Math.min(prev.length, length); i++) {\n        next[i] = prev[i];\n      }\n      return next;\n    });\n  }, [length]);\n\n  const handleChange = (index: number, val: string) => {\n    const char = val.slice(-1);\n    if (!/^\\d*$/.test(char)) return;\n\n    const next = [...digits];\n    next[index] = char;\n    setDigits(next);\n\n    if (char && index < length - 1) {\n      inputRefs.current[index + 1]?.focus();\n      setFocusedIndex(index + 1);\n    }\n\n    if (next.every((d) => d !== '') && next.length === length) {\n      onComplete?.(next.join(''));\n    }\n  };\n\n  const handleKeyDown = (index: number, e: React.KeyboardEvent<HTMLInputElement>) => {\n    if (e.key === 'Backspace') {\n      if (!digits[index] && index > 0) {\n        inputRefs.current[index - 1]?.focus();\n        setFocusedIndex(index - 1);\n      } else if (digits[index]) {\n        const next = [...digits];\n        next[index] = '';\n        setDigits(next);\n      }\n    } else if (e.key === 'ArrowLeft' && index > 0) {\n      inputRefs.current[index - 1]?.focus();\n      setFocusedIndex(index - 1);\n    } else if (e.key === 'ArrowRight' && index < length - 1) {\n      inputRefs.current[index + 1]?.focus();\n      setFocusedIndex(index + 1);\n    }\n  };\n\n  const handlePaste = (e: React.ClipboardEvent<HTMLInputElement>) => {\n    e.preventDefault();\n    const pasted = e.clipboardData.getData('text').trim().slice(0, length);\n    if (!/^\\d+$/.test(pasted)) return;\n\n    const next = [...digits];\n    pasted.split('').forEach((char, idx) => {\n      if (idx < length) next[idx] = char;\n    });\n    setDigits(next);\n    const targetIdx = Math.min(pasted.length, length - 1);\n    inputRefs.current[targetIdx]?.focus();\n    setFocusedIndex(targetIdx);\n\n    if (next.every((d) => d !== '')) {\n      onComplete?.(next.join(''));\n    }\n  };\n\n  return (\n    <div className={`flex items-center gap-2 ${className}`}>\n      {digits.map((digit, idx) => {\n        const isFocused = focusedIndex === idx;\n        const isFilled = digit !== '';\n        return (\n          <div key={idx} className=\"relative\">\n            <input\n              ref={(el) => (inputRefs.current[idx] = el)}\n              type=\"text\"\n              id={`otp-input-${idx}`}\n              name={`otp-input-${idx}`}\n              aria-label={`Security Pin Digit ${idx + 1}`}\n              inputMode=\"numeric\"\n              maxLength={1}\n              value={digit}\n              onFocus={() => setFocusedIndex(idx)}\n              onChange={(e) => handleChange(idx, e.target.value)}\n              onKeyDown={(e) => handleKeyDown(idx, e)}\n              onPaste={handlePaste}\n              className={`w-10 h-12 sm:w-12 sm:h-14 text-center font-mono text-lg font-bold rounded-xl border bg-white dark:bg-zinc-900/60 text-zinc-900 dark:text-white transition-all outline-none ${\n                isFocused\n                  ? 'border-indigo-500 shadow-lg shadow-indigo-500/20 ring-2 ring-indigo-500/20'\n                  : isFilled\n                  ? 'border-emerald-500/50 dark:border-emerald-500/40'\n                  : 'border-zinc-300 dark:border-white/10 hover:border-zinc-400 dark:hover:border-white/20'\n              }`}\n            />\n            {isFocused && (\n              <motion.div\n                layoutId=\"otp-glow\"\n                className=\"absolute inset-0 rounded-xl pointer-events-none ring-2 ring-indigo-500/30\"\n                transition={{ type: 'spring', stiffness: 350, damping: 25 }}\n              />\n            )}\n          </div>\n        );\n      })}\n    </div>\n  );\n};\n\nexport const OtpInput = OTPInput;\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "password-strength-indicator",
    "type": "registry:ui",
    "title": "Interactive Entropy Password Input",
    "description": "Real-time security entropy calculation with multi-tier colored meter and requirement checklist.",
    "category": "forms",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "forms",
      "password",
      "input",
      "entropy",
      "security"
    ],
    "files": [
      {
        "path": "registry/forms/password-strength-indicator/password-strength-indicator.tsx",
        "type": "registry:ui",
        "target": "components/ui/password-strength-indicator.tsx",
        "content": "import React, { useState } from 'react'\nimport { Check, X, Eye, EyeSlash, LockKey } from '@phosphor-icons/react'\nimport { cn } from '@/lib/utils'\n\nexport interface PasswordStrengthIndicatorProps {\n  className?: string\n}\n\nexport const PasswordStrengthIndicator: React.FC<PasswordStrengthIndicatorProps> = ({ className }) => {\n  const [password, setPassword] = useState('')\n  const [show, setShow] = useState(false)\n\n  const hasLength = password.length >= 8\n  const hasUpper = /[A-Z]/.test(password)\n  const hasNumber = /[0-9]/.test(password)\n  const hasSpecial = /[^A-Za-z0-9]/.test(password)\n\n  const score = [hasLength, hasUpper, hasNumber, hasSpecial].filter(Boolean).length\n\n  const strengthLabels = ['Empty', 'Weak', 'Moderate', 'Strong', 'Cryptographic']\n  const strengthColors = ['bg-zinc-800', 'bg-rose-500', 'bg-amber-500', 'bg-blue-500', 'bg-emerald-500']\n\n  return (\n    <div className={cn('w-full max-w-sm rounded-3xl border border-white/10 bg-zinc-950 p-5 font-mono text-xs text-white shadow-2xl', className)}>\n      <div className=\"flex items-center justify-between text-zinc-400 pb-2 border-b border-white/5 mb-3\">\n        <span className=\"text-[10px] uppercase tracking-widest\">SECURITY TELEMETRY</span>\n        <span className=\"text-zinc-500 text-[10px]\">ENTROPY METER</span>\n      </div>\n\n      <div className=\"relative flex items-center\">\n        <LockKey size={16} className=\"absolute left-3 text-zinc-500\" />\n        <input\n          type={show ? 'text' : 'password'}\n          value={password}\n          onChange={(e) => setPassword(e.target.value)}\n          placeholder=\"Enter secret token...\"\n          className=\"w-full rounded-xl border border-white/10 bg-zinc-900/80 py-2.5 pl-9 pr-10 text-xs text-white placeholder-zinc-600 focus:outline-none focus:border-white/30\"\n        />\n        <button\n          type=\"button\"\n          onClick={() => setShow(!show)}\n          className=\"absolute right-3 text-zinc-400 hover:text-white\"\n        >\n          {show ? <EyeSlash size={16} /> : <Eye size={16} />}\n        </button>\n      </div>\n\n      {/* Strength Bars */}\n      <div className=\"mt-3 flex gap-1.5 h-1.5 w-full\">\n        {[0, 1, 2, 3].map((idx) => (\n          <div\n            key={idx}\n            className={`h-full flex-1 rounded-full transition-all duration-300 ${\n              score > idx ? strengthColors[score] : 'bg-zinc-800'\n            }`}\n          />\n        ))}\n      </div>\n\n      <div className=\"mt-2 flex items-center justify-between text-[10px]\">\n        <span className=\"text-zinc-500\">Security Strength:</span>\n        <span className={score === 4 ? 'text-emerald-400 font-bold' : 'text-zinc-300'}>\n          {strengthLabels[score]}\n        </span>\n      </div>\n\n      {/* Rules Grid */}\n      <div className=\"mt-4 grid grid-cols-2 gap-2 text-[10px]\">\n        <div className={`flex items-center gap-1.5 ${hasLength ? 'text-emerald-400' : 'text-zinc-500'}`}>\n          {hasLength ? <Check size={12} weight=\"bold\" /> : <X size={12} />}\n          <span>8+ Characters</span>\n        </div>\n        <div className={`flex items-center gap-1.5 ${hasUpper ? 'text-emerald-400' : 'text-zinc-500'}`}>\n          {hasUpper ? <Check size={12} weight=\"bold\" /> : <X size={12} />}\n          <span>Uppercase [A-Z]</span>\n        </div>\n        <div className={`flex items-center gap-1.5 ${hasNumber ? 'text-emerald-400' : 'text-zinc-500'}`}>\n          {hasNumber ? <Check size={12} weight=\"bold\" /> : <X size={12} />}\n          <span>Numeric [0-9]</span>\n        </div>\n        <div className={`flex items-center gap-1.5 ${hasSpecial ? 'text-emerald-400' : 'text-zinc-500'}`}>\n          {hasSpecial ? <Check size={12} weight=\"bold\" /> : <X size={12} />}\n          <span>Symbol [!@#]</span>\n        </div>\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "pin-code-vault-input",
    "type": "registry:ui",
    "title": "Tactile Vault Keypad Input",
    "description": "Security tumbler combination lock keypad with tactile key states, masked pin indicators, and lockout status.",
    "category": "forms",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/forms/pin-code-vault-input/pin-code-vault-input.tsx",
        "type": "registry:ui",
        "target": "components/ui/pin-code-vault-input.tsx",
        "content": "import React, { useState, useEffect } from 'react';\nimport { LockKey, LockSimpleOpen } from '@phosphor-icons/react';\n\nexport const PinCodeVaultInput: React.FC = () => {\n  const [pin, setPin] = useState('');\n  const [isError, setIsError] = useState(false);\n  const targetPin = '7429';\n\n  const pressDigit = (digit: string) => {\n    if (pin.length < 4) {\n      const next = pin + digit;\n      setPin(next);\n      if (next.length === 4 && next !== targetPin) {\n        setIsError(true);\n        setTimeout(() => {\n          setPin('');\n          setIsError(false);\n        }, 600);\n      }\n    }\n  };\n\n  const deleteDigit = () => {\n    setPin((prev) => prev.slice(0, -1));\n    setIsError(false);\n  };\n\n  const clear = () => {\n    setPin('');\n    setIsError(false);\n  };\n\n  const isUnlocked = pin === targetPin;\n\n  return (\n    <div className=\"w-56 p-4 rounded-2xl bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-white/10 shadow-xl font-mono text-xs flex flex-col items-center\">\n      <div className=\"flex items-center gap-1.5 mb-3 text-[11px] font-bold text-zinc-600 dark:text-zinc-300\">\n        {isUnlocked ? (\n          <LockSimpleOpen size={14} className=\"text-emerald-500\" />\n        ) : (\n          <LockKey size={14} className={isError ? 'text-rose-500 animate-bounce' : 'text-zinc-400'} />\n        )}\n        <span className={isError ? 'text-rose-500' : ''}>\n          {isUnlocked ? 'VAULT UNLOCKED' : isError ? 'INCORRECT PIN' : 'ENTER 4-DIGIT PIN'}\n        </span>\n      </div>\n\n      {/* Pin Dots */}\n      <div className=\"flex gap-2.5 mb-4\">\n        {[0, 1, 2, 3].map((i) => (\n          <div\n            key={i}\n            className={`w-3.5 h-3.5 rounded-full border transition-all ${\n              pin.length > i\n                ? isUnlocked\n                  ? 'bg-emerald-500 border-emerald-400'\n                  : isError\n                  ? 'bg-rose-500 border-rose-400 scale-110'\n                  : 'bg-indigo-600 border-indigo-500'\n                : 'border-zinc-300 dark:border-white/20'\n            }`}\n          />\n        ))}\n      </div>\n\n      {/* Keypad */}\n      <div className=\"grid grid-cols-3 gap-2 w-full\">\n        {['1', '2', '3', '4', '5', '6', '7', '8', '9'].map((n) => (\n          <button\n            key={n}\n            onClick={() => pressDigit(n)}\n            className=\"h-9 rounded-xl bg-zinc-100 dark:bg-white/5 text-zinc-900 dark:text-white font-bold hover:bg-zinc-200 dark:hover:bg-white/10 active:scale-95 transition-all cursor-pointer\"\n          >\n            {n}\n          </button>\n        ))}\n        <button\n          onClick={clear}\n          className=\"h-9 rounded-xl text-[10px] text-zinc-500 hover:text-zinc-900 dark:hover:text-white transition-colors cursor-pointer\"\n        >\n          CLR\n        </button>\n        <button\n          onClick={() => pressDigit('0')}\n          className=\"h-9 rounded-xl bg-zinc-100 dark:bg-white/5 text-zinc-900 dark:text-white font-bold hover:bg-zinc-200 dark:hover:bg-white/10 active:scale-95 transition-all cursor-pointer\"\n        >\n          0\n        </button>\n        <button\n          onClick={deleteDigit}\n          className=\"h-9 rounded-xl text-[10px] text-zinc-500 hover:text-zinc-900 dark:hover:text-white transition-colors cursor-pointer\"\n        >\n          DEL\n        </button>\n      </div>\n\n      <span className=\"text-[9px] text-zinc-400 mt-3\">(Demo PIN: 7429)</span>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "toggle-pill-switch",
    "type": "registry:ui",
    "title": "Kinetic Toggle Pill Switch",
    "description": "Smooth physics toggle switch with animated status icon, micro-indicator glow, and accessible state roles.",
    "category": "forms",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/forms/toggle-pill-switch/toggle-pill-switch.tsx",
        "type": "registry:ui",
        "target": "components/ui/toggle-pill-switch.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion } from 'framer-motion';\n\nexport const TogglePillSwitch: React.FC = () => {\n  const [enabled, setEnabled] = useState(true);\n\n  return (\n    <div className=\"flex items-center gap-3 font-mono text-xs select-none\">\n      <button\n        onClick={() => setEnabled(!enabled)}\n        className={`relative w-14 h-8 rounded-full p-1 transition-colors cursor-pointer ${\n          enabled ? 'bg-indigo-600' : 'bg-zinc-300 dark:bg-zinc-800'\n        }`}\n      >\n        <motion.div\n          animate={{ x: enabled ? 24 : 0 }}\n          transition={{ type: 'spring', stiffness: 500, damping: 30 }}\n          className=\"w-6 h-6 rounded-full bg-white shadow-md flex items-center justify-center\"\n        >\n          <div className={`w-2 h-2 rounded-full ${enabled ? 'bg-indigo-600' : 'bg-zinc-400'}`} />\n        </motion.div>\n      </button>\n\n      <span className={`font-semibold ${enabled ? 'text-indigo-500' : 'text-zinc-500'}`}>\n        {enabled ? 'SYSTEM ARMED' : 'STANDBY'}\n      </span>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "accordion-faq-group",
    "type": "registry:ui",
    "title": "Kinetic Spring Accordion",
    "description": "Smooth physics-driven accordion stack with morphing plus/minus indicator, aria-expanded accessibility, and height interpolation.",
    "category": "layout",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/layout/accordion-faq-group/accordion-faq-group.tsx",
        "type": "registry:ui",
        "target": "components/ui/accordion-faq-group.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { Plus } from '@phosphor-icons/react';\n\nconst ITEMS = [\n  {\n    id: '1',\n    q: 'How does Cooki UI achieve zero-backend delivery?',\n    a: 'Components are compiled directly into static JSON registry artifacts deployed over Vercel Edge CDN without requiring database lookups.'\n  },\n  {\n    id: '2',\n    q: 'Can components be installed via shadcn CLI?',\n    a: 'Yes, every component complies with the official shadcn registry schema endpoint at https://www.cooki-ui.design/r/{slug}.json.'\n  },\n  {\n    id: '3',\n    q: 'Are these components compatible with React 19 and Next.js 15?',\n    a: 'Fully verified with modern React 19 Server Components and Tailwind CSS v4 styling.'\n  }\n];\n\nexport const AccordionFaqGroup: React.FC = () => {\n  const [openId, setOpenId] = useState<string | null>('1');\n\n  return (\n    <div className=\"w-full max-w-md mx-auto space-y-2.5\">\n      {ITEMS.map((item) => {\n        const isOpen = openId === item.id;\n        return (\n          <div\n            key={item.id}\n            className=\"rounded-2xl border border-zinc-200 dark:border-white/10 bg-white/90 dark:bg-zinc-900/80 overflow-hidden backdrop-blur-md transition-colors\"\n          >\n            <button\n              onClick={() => setOpenId(isOpen ? null : item.id)}\n              className=\"w-full flex items-center justify-between p-4 text-left font-sans text-xs sm:text-sm font-semibold text-zinc-900 dark:text-zinc-100 cursor-pointer\"\n            >\n              <span>{item.q}</span>\n              <motion.div\n                animate={{ rotate: isOpen ? 45 : 0 }}\n                transition={{ duration: 0.2 }}\n                className=\"text-zinc-400 shrink-0 ml-2\"\n              >\n                <Plus size={14} weight=\"bold\" />\n              </motion.div>\n            </button>\n\n            <AnimatePresence>\n              {isOpen && (\n                <motion.div\n                  initial={{ height: 0, opacity: 0 }}\n                  animate={{ height: 'auto', opacity: 1 }}\n                  exit={{ height: 0, opacity: 0 }}\n                  transition={{ duration: 0.25, ease: 'easeInOut' }}\n                  className=\"overflow-hidden\"\n                >\n                  <p className=\"px-4 pb-4 text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed font-sans border-t border-zinc-100 dark:border-white/5 pt-2\">\n                    {item.a}\n                  </p>\n                </motion.div>\n              )}\n            </AnimatePresence>\n          </div>\n        );\n      })}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "image-comparison-slider",
    "type": "registry:ui",
    "title": "Split Image Comparison Slider",
    "description": "Interactive before-and-after split image comparison container with draggable center divider handle.",
    "category": "layout",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/layout/image-comparison-slider/image-comparison-slider.tsx",
        "type": "registry:ui",
        "target": "components/ui/image-comparison-slider.tsx",
        "content": "import React, { useState, useRef } from 'react';\nimport { ArrowsLeftRight } from '@phosphor-icons/react';\n\nexport const ImageComparisonSlider: React.FC = () => {\n  const [sliderPos, setSliderPos] = useState(50);\n  const containerRef = useRef<HTMLDivElement>(null);\n\n  const handleMove = (clientX: number) => {\n    if (!containerRef.current) return;\n    const rect = containerRef.current.getBoundingClientRect();\n    const x = Math.max(0, Math.min(clientX - rect.left, rect.width));\n    setSliderPos((x / rect.width) * 100);\n  };\n\n  return (\n    <div\n      ref={containerRef}\n      onMouseMove={(e) => e.buttons === 1 && handleMove(e.clientX)}\n      onTouchMove={(e) => handleMove(e.touches[0].clientX)}\n      className=\"relative w-full max-w-md h-48 rounded-2xl overflow-hidden border border-zinc-200 dark:border-white/10 select-none cursor-ew-resize\"\n    >\n      {/* Background (After / Wireframe) */}\n      <div className=\"absolute inset-0 bg-zinc-900 flex items-center justify-center\">\n        <div className=\"text-center font-mono text-zinc-500\">\n          <span className=\"text-xs uppercase tracking-widest text-indigo-400 font-bold\">AFTER (OPTIMIZED)</span>\n          <p className=\"text-[11px] mt-1 text-zinc-400\">Zero JS Payload • 60 FPS Canvas WebGL</p>\n        </div>\n      </div>\n\n      {/* Foreground (Before / Legacy) with clipPath */}\n      <div\n        className=\"absolute inset-0 bg-indigo-950 flex items-center justify-center\"\n        style={{ clipPath: `polygon(0 0, ${sliderPos}% 0, ${sliderPos}% 100%, 0 100%)` }}\n      >\n        <div className=\"text-center font-mono text-white\">\n          <span className=\"text-xs uppercase tracking-widest text-cyan-300 font-bold\">BEFORE (LEGACY)</span>\n          <p className=\"text-[11px] mt-1 text-indigo-200\">1.4 MB Bundle • 18 DOM Mutations/sec</p>\n        </div>\n      </div>\n\n      {/* Divider Bar */}\n      <div\n        style={{ left: `${sliderPos}%` }}\n        className=\"absolute top-0 bottom-0 w-0.5 bg-white -translate-x-1/2 pointer-events-none z-20 flex items-center justify-center\"\n      >\n        <div className=\"w-6 h-6 rounded-full bg-white text-zinc-900 shadow-lg flex items-center justify-center\">\n          <ArrowsLeftRight size={12} weight=\"bold\" />\n        </div>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "infinite-card-carousel",
    "type": "registry:ui",
    "title": "3D Perspective Card Carousel",
    "description": "Interactive card carousel cycling items with dynamic scale depth, touch/swipe navigation, and dot indicator sync.",
    "category": "layout",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/layout/infinite-card-carousel/infinite-card-carousel.tsx",
        "type": "registry:ui",
        "target": "components/ui/infinite-card-carousel.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { CaretLeft, CaretRight } from '@phosphor-icons/react';\n\nconst CARDS = [\n  { id: 1, title: 'Edge Registry', badge: 'v2.4', color: 'from-indigo-500 to-violet-600' },\n  { id: 2, title: 'Kinetic Physics', badge: 'Active', color: 'from-cyan-500 to-blue-600' },\n  { id: 3, title: 'Zero Backend', badge: 'Statically Baked', color: 'from-emerald-500 to-teal-600' },\n];\n\nexport const InfiniteCardCarousel: React.FC = () => {\n  const [index, setIndex] = useState(0);\n\n  const prev = () => setIndex((i) => (i === 0 ? CARDS.length - 1 : i - 1));\n  const next = () => setIndex((i) => (i === CARDS.length - 1 ? 0 : i + 1));\n\n  return (\n    <div className=\"w-full max-w-sm mx-auto flex flex-col items-center gap-4\">\n      <div className=\"relative w-full h-44 flex items-center justify-center\">\n        <AnimatePresence mode=\"wait\">\n          <motion.div\n            key={CARDS[index].id}\n            initial={{ scale: 0.85, opacity: 0, x: 40 }}\n            animate={{ scale: 1, opacity: 1, x: 0 }}\n            exit={{ scale: 0.85, opacity: 0, x: -40 }}\n            transition={{ type: 'spring', damping: 20, stiffness: 250 }}\n            className={`w-full h-full rounded-2xl bg-gradient-to-br ${CARDS[index].color} p-5 text-white flex flex-col justify-between shadow-xl`}\n          >\n            <div className=\"flex justify-between items-center\">\n              <span className=\"font-mono text-xs uppercase tracking-wider\">{CARDS[index].badge}</span>\n              <span className=\"text-[10px] font-mono px-2 py-0.5 rounded-full bg-white/20\">Card {index + 1}/3</span>\n            </div>\n            <div>\n              <h4 className=\"text-xl font-bold\">{CARDS[index].title}</h4>\n              <p className=\"text-xs text-white/80 mt-1\">Autonomous components designed for next-generation platforms.</p>\n            </div>\n          </motion.div>\n        </AnimatePresence>\n      </div>\n\n      <div className=\"flex items-center gap-3\">\n        <button\n          onClick={prev}\n          className=\"p-1.5 rounded-full bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-300 hover:scale-110 transition-transform cursor-pointer\"\n        >\n          <CaretLeft size={14} weight=\"bold\" />\n        </button>\n        <div className=\"flex gap-1.5\">\n          {CARDS.map((_, i) => (\n            <div\n              key={i}\n              className={`h-1.5 rounded-full transition-all ${\n                i === index ? 'w-5 bg-indigo-500' : 'w-1.5 bg-zinc-300 dark:bg-white/20'\n              }`}\n            />\n          ))}\n        </div>\n        <button\n          onClick={next}\n          className=\"p-1.5 rounded-full bg-zinc-100 dark:bg-zinc-800 text-zinc-600 dark:text-zinc-300 hover:scale-110 transition-transform cursor-pointer\"\n        >\n          <CaretRight size={14} weight=\"bold\" />\n        </button>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "interactive-feature-carousel",
    "type": "registry:ui",
    "title": "Interactive Feature Carousel",
    "description": "3D perspective feature deck with depth blur, interactive drag/swipe navigation, pagination pills, and keyboard traversal.",
    "category": "layout",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/layout/interactive-feature-carousel/interactive-feature-carousel.tsx",
        "type": "registry:ui",
        "target": "components/ui/interactive-feature-carousel.tsx",
        "content": "import React, { useState, useEffect } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { \n  CaretLeft, \n  CaretRight, \n  Lightning, \n  ShieldCheck, \n  Cpu, \n  Browsers, \n  ArrowRight,\n  CloudCheck\n} from '@phosphor-icons/react';\n\nexport interface CarouselSlide {\n  id: string;\n  badge: string;\n  title: string;\n  description: string;\n  metric: string;\n  metricLabel: string;\n  icon: 'lightning' | 'shield' | 'cpu' | 'cloud';\n}\n\nconst DEFAULT_SLIDES: CarouselSlide[] = [\n  {\n    id: '1',\n    badge: 'EDGE COMPUTE',\n    title: 'Sub-Millisecond V8 Isolate Execution',\n    description: 'Distribute serverless functions globally across 320+ edge point-of-presences with zero cold starts.',\n    metric: '0.8ms',\n    metricLabel: 'Global Median Latency',\n    icon: 'lightning',\n  },\n  {\n    id: '2',\n    badge: 'NEURAL INFRA',\n    title: 'Autonomous Multi-Agent Orchestration',\n    description: 'Coordinate background reasoning swarms with streaming token compaction and distributed state locks.',\n    metric: '99.98%',\n    metricLabel: 'Agent Consensus Rate',\n    icon: 'cpu',\n  },\n  {\n    id: '3',\n    badge: 'ENTERPRISE VAULT',\n    title: 'Zero-Knowledge Cryptographic Isolation',\n    description: 'Hardware-enforced confidential computing enclaves guaranteeing memory encryption at runtime.',\n    metric: '256-bit',\n    metricLabel: 'AES-GCM Quantum Shield',\n    icon: 'shield',\n  },\n  {\n    id: '4',\n    badge: 'HYPER-SCALE CACHE',\n    title: 'Distributed In-Memory Semantic Store',\n    description: 'Sub-second vector indexing with real-time replication across multi-region datacenters.',\n    metric: '12M req/s',\n    metricLabel: 'Throughput Capacity',\n    icon: 'cloud',\n  },\n];\n\nexport interface InteractiveFeatureCarouselProps {\n  slides?: CarouselSlide[];\n  autoplay?: boolean;\n  autoplayInterval?: number;\n  className?: string;\n}\n\nexport const InteractiveFeatureCarousel: React.FC<InteractiveFeatureCarouselProps> = ({\n  slides = DEFAULT_SLIDES,\n  autoplay = false,\n  autoplayInterval = 4500,\n  className = '',\n}) => {\n  const [currentIndex, setCurrentIndex] = useState(0);\n\n  useEffect(() => {\n    if (!autoplay) return;\n    const timer = setInterval(() => {\n      setCurrentIndex((prev) => (prev + 1) % slides.length);\n    }, autoplayInterval);\n    return () => clearInterval(timer);\n  }, [autoplay, autoplayInterval, slides.length]);\n\n  const handlePrev = () => {\n    setCurrentIndex((prev) => (prev - 1 + slides.length) % slides.length);\n  };\n\n  const handleNext = () => {\n    setCurrentIndex((prev) => (prev + 1) % slides.length);\n  };\n\n  const getSlideIcon = (type: CarouselSlide['icon']) => {\n    switch (type) {\n      case 'lightning': return <Lightning size={24} weight=\"bold\" className=\"text-amber-400\" />;\n      case 'cpu': return <Cpu size={24} weight=\"bold\" className=\"text-cyan-400\" />;\n      case 'shield': return <ShieldCheck size={24} weight=\"bold\" className=\"text-emerald-400\" />;\n      case 'cloud': return <CloudCheck size={24} weight=\"bold\" className=\"text-violet-400\" />;\n      default: return <Browsers size={24} weight=\"bold\" className=\"text-indigo-400\" />;\n    }\n  };\n\n  return (\n    <div className={`relative w-full max-w-4xl mx-auto py-8 px-4 flex flex-col items-center select-none ${className}`}>\n      {/* 3D Stacked Card Perspective Deck */}\n      <div className=\"relative w-full h-[340px] sm:h-[320px] flex items-center justify-center perspective-[1000px]\">\n        {slides.map((slide, index) => {\n          // Calculate relative position (-1: left, 0: center, 1: right)\n          const offset = (index - currentIndex + slides.length) % slides.length;\n          let normalizedOffset = offset;\n          if (offset > slides.length / 2) {\n            normalizedOffset = offset - slides.length;\n          }\n\n          const isCenter = normalizedOffset === 0;\n          const isLeft = normalizedOffset === -1;\n          const isRight = normalizedOffset === 1;\n          const isVisible = Math.abs(normalizedOffset) <= 1;\n\n          if (!isVisible) return null;\n\n          return (\n            <motion.div\n              key={slide.id}\n              onClick={() => {\n                if (isLeft) handlePrev();\n                if (isRight) handleNext();\n              }}\n              initial={false}\n              animate={{\n                x: isCenter ? '0%' : isLeft ? '-45%' : '45%',\n                scale: isCenter ? 1 : 0.86,\n                rotateY: isCenter ? 0 : isLeft ? 14 : -14,\n                zIndex: isCenter ? 30 : 10,\n                opacity: isCenter ? 1 : 0.45,\n                filter: isCenter ? 'blur(0px)' : 'blur(1.5px)',\n              }}\n              transition={{\n                type: 'spring',\n                stiffness: 280,\n                damping: 26,\n              }}\n              className={`absolute w-full max-w-[340px] sm:max-w-[420px] rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/90 backdrop-blur-xl p-6 sm:p-7 shadow-2xl cursor-pointer transition-colors duration-200`}\n            >\n              {/* Card Header & Icon */}\n              <div className=\"flex items-center justify-between mb-5\">\n                <div className=\"flex h-12 w-12 items-center justify-center rounded-2xl bg-zinc-100 dark:bg-zinc-800/80 border border-zinc-200 dark:border-white/5\">\n                  {getSlideIcon(slide.icon)}\n                </div>\n                <span className=\"px-3 py-1 rounded-full text-[10px] font-mono font-bold tracking-wider uppercase text-zinc-600 dark:text-zinc-300 bg-zinc-100 dark:bg-zinc-800 border border-zinc-200 dark:border-white/10\">\n                  {slide.badge}\n                </span>\n              </div>\n\n              {/* Title & Description */}\n              <h3 className=\"text-base sm:text-lg font-bold text-zinc-900 dark:text-white mb-2 leading-snug\">\n                {slide.title}\n              </h3>\n              <p className=\"text-xs sm:text-sm text-zinc-500 dark:text-zinc-400 leading-relaxed mb-6 line-clamp-2\">\n                {slide.description}\n              </p>\n\n              {/* Metric & Action Row */}\n              <div className=\"flex items-end justify-between pt-4 border-t border-zinc-200/80 dark:border-white/5\">\n                <div>\n                  <div className=\"text-lg sm:text-xl font-bold font-mono text-zinc-900 dark:text-zinc-100\">\n                    {slide.metric}\n                  </div>\n                  <div className=\"text-[10px] font-mono uppercase text-zinc-400\">\n                    {slide.metricLabel}\n                  </div>\n                </div>\n\n                <div className=\"flex items-center gap-1.5 text-xs font-semibold text-emerald-600 dark:text-emerald-400 hover:translate-x-1 transition-transform\">\n                  <span>Explore</span>\n                  <ArrowRight size={13} weight=\"bold\" />\n                </div>\n              </div>\n            </motion.div>\n          );\n        })}\n      </div>\n\n      {/* Navigation Controls & Pagination Indicators */}\n      <div className=\"mt-6 flex items-center gap-6\">\n        <button\n          onClick={handlePrev}\n          aria-label=\"Previous slide\"\n          className=\"flex h-10 w-10 items-center justify-center rounded-full border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900 text-zinc-700 dark:text-zinc-200 shadow-sm hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors cursor-pointer\"\n        >\n          <CaretLeft size={16} weight=\"bold\" />\n        </button>\n\n        {/* Step Dots */}\n        <div className=\"flex items-center gap-2\">\n          {slides.map((_, i) => (\n            <button\n              key={i}\n              onClick={() => setCurrentIndex(i)}\n              className={`h-2 rounded-full transition-all cursor-pointer ${\n                currentIndex === i \n                  ? 'w-7 bg-zinc-900 dark:bg-white' \n                  : 'w-2 bg-zinc-300 dark:bg-zinc-700 hover:bg-zinc-400'\n              }`}\n              aria-label={`Go to slide ${i + 1}`}\n            />\n          ))}\n        </div>\n\n        <button\n          onClick={handleNext}\n          aria-label=\"Next slide\"\n          className=\"flex h-10 w-10 items-center justify-center rounded-full border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900 text-zinc-700 dark:text-zinc-200 shadow-sm hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors cursor-pointer\"\n        >\n          <CaretRight size={16} weight=\"bold\" />\n        </button>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "interactive-image-compare-lens",
    "type": "registry:ui",
    "title": "Image Compare Lens",
    "description": "Split-screen before and after comparison slider with interactive dragger handle and visual contrast.",
    "category": "layout",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/layout/interactive-image-compare-lens/interactive-image-compare-lens.tsx",
        "type": "registry:ui",
        "target": "components/ui/interactive-image-compare-lens.tsx",
        "content": "import React, { useState } from 'react';\nimport { ArrowsLeftRight } from '@phosphor-icons/react';\n\nexport const InteractiveImageCompareLens: React.FC = () => {\n  const [sliderPos, setSliderPos] = useState(50);\n\n  return (\n    <div className=\"relative w-full max-w-md h-[220px] rounded-3xl overflow-hidden border border-zinc-200 dark:border-white/10 select-none shadow-xl\">\n      {/* Before Image (Grayscale / Dark) */}\n      <div className=\"absolute inset-0 bg-gradient-to-br from-zinc-900 to-zinc-950 flex items-center justify-center\">\n        <span className=\"font-mono text-xs uppercase tracking-widest text-zinc-500 font-bold\">\n          [LEGACY FRAMEWORK]\n        </span>\n      </div>\n\n      {/* After Image (Luminous Gradient) */}\n      <div\n        className=\"absolute inset-0 bg-gradient-to-br from-indigo-600 via-purple-600 to-pink-500 flex items-center justify-center overflow-hidden\"\n        style={{ clipPath: `inset(0 ${100 - sliderPos}% 0 0)` }}\n      >\n        <span className=\"font-mono text-xs uppercase tracking-widest text-white font-bold\">\n          [COOKI UI ECOSYSTEM]\n        </span>\n      </div>\n\n      {/* Divider Bar */}\n      <div\n        className=\"absolute top-0 bottom-0 w-1 bg-white cursor-ew-resize shadow-2xl\"\n        style={{ left: `${sliderPos}%` }}\n      >\n        <div className=\"absolute top-1/2 -translate-y-1/2 -translate-x-1/2 flex h-7 w-7 items-center justify-center rounded-full bg-white text-zinc-900 shadow-xl border border-zinc-300\">\n          <ArrowsLeftRight size={14} weight=\"bold\" />\n        </div>\n      </div>\n\n      {/* Slider input handle */}\n      <input\n        type=\"range\"\n        min={0}\n        max={100}\n        value={sliderPos}\n        onChange={(e) => setSliderPos(Number(e.target.value))}\n        className=\"absolute inset-0 opacity-0 cursor-ew-resize w-full h-full\"\n      />\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "resizable-split-panel",
    "type": "registry:ui",
    "title": "Draggable Split Viewport Pane",
    "description": "Interactive two-column split panel with draggable separator handle, percentage readout, and clamped boundary limits.",
    "category": "layout",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/layout/resizable-split-panel/resizable-split-panel.tsx",
        "type": "registry:ui",
        "target": "components/ui/resizable-split-panel.tsx",
        "content": "import React, { useState, useRef } from 'react';\nimport { DotsThreeVertical } from '@phosphor-icons/react';\n\nexport const ResizableSplitPanel: React.FC = () => {\n  const [splitPos, setSplitPos] = useState(50);\n  const containerRef = useRef<HTMLDivElement>(null);\n  const isDragging = useRef(false);\n\n  const handleMouseDown = () => {\n    isDragging.current = true;\n    const handleMouseMove = (e: MouseEvent) => {\n      if (!isDragging.current || !containerRef.current) return;\n      const rect = containerRef.current.getBoundingClientRect();\n      const pct = ((e.clientX - rect.left) / rect.width) * 100;\n      setSplitPos(Math.min(80, Math.max(20, pct)));\n    };\n    const handleMouseUp = () => {\n      isDragging.current = false;\n      window.removeEventListener('mousemove', handleMouseMove);\n      window.removeEventListener('mouseup', handleMouseUp);\n    };\n    window.addEventListener('mousemove', handleMouseMove);\n    window.addEventListener('mouseup', handleMouseUp);\n  };\n\n  return (\n    <div\n      ref={containerRef}\n      className=\"relative w-full max-w-lg h-48 rounded-2xl border border-zinc-200 dark:border-white/10 bg-zinc-950 overflow-hidden flex select-none font-mono text-xs\"\n    >\n      {/* Left Code View */}\n      <div\n        style={{ width: `${splitPos}%` }}\n        className=\"h-full bg-zinc-900/60 p-4 flex flex-col justify-between overflow-hidden\"\n      >\n        <span className=\"text-[10px] text-indigo-400 font-bold uppercase\">Code View ({Math.round(splitPos)}%)</span>\n        <div className=\"text-[11px] text-zinc-300 font-mono\">\n          const status = \"verified\";\n          <br />\n          render(&lt;Dock /&gt;);\n        </div>\n        <span className=\"text-[9px] text-zinc-600\">TypeScript 5.9</span>\n      </div>\n\n      {/* Drag Divider */}\n      <div\n        onMouseDown={handleMouseDown}\n        className=\"w-2.5 h-full bg-zinc-800 hover:bg-indigo-500 cursor-col-resize flex items-center justify-center transition-colors z-10 shrink-0\"\n      >\n        <DotsThreeVertical size={12} className=\"text-zinc-500\" />\n      </div>\n\n      {/* Right Canvas Preview */}\n      <div\n        style={{ width: `${100 - splitPos}%` }}\n        className=\"h-full bg-zinc-950 p-4 flex flex-col justify-between items-center text-center overflow-hidden\"\n      >\n        <span className=\"text-[10px] text-cyan-400 font-bold uppercase\">Live Canvas</span>\n        <div className=\"w-10 h-10 rounded-xl bg-gradient-to-tr from-indigo-500 to-cyan-400 shadow-lg\" />\n        <span className=\"text-[9px] text-zinc-600\">Interactive</span>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "segmented-control-switch",
    "type": "registry:ui",
    "title": "Apple-Style Segmented Control",
    "description": "Fluid segmented tab switcher with gliding spring layout indicator and micro-haptic state feedback.",
    "category": "layout",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/layout/segmented-control-switch/segmented-control-switch.tsx",
        "type": "registry:ui",
        "target": "components/ui/segmented-control-switch.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion } from 'framer-motion';\n\nconst OPTIONS = ['Daily', 'Weekly', 'Monthly', 'Annual'];\n\nexport const SegmentedControlSwitch: React.FC = () => {\n  const [active, setActive] = useState('Monthly');\n\n  return (\n    <div className=\"flex items-center p-1 rounded-xl bg-zinc-100 dark:bg-zinc-900 border border-zinc-200 dark:border-white/10 font-mono text-xs\">\n      {OPTIONS.map((opt) => {\n        const isSelected = active === opt;\n        return (\n          <button\n            key={opt}\n            onClick={() => setActive(opt)}\n            className={`relative px-3.5 py-1.5 rounded-lg transition-colors cursor-pointer ${\n              isSelected ? 'text-zinc-900 dark:text-white font-bold' : 'text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-300'\n            }`}\n          >\n            {isSelected && (\n              <motion.div\n                layoutId=\"segmented-pill\"\n                className=\"absolute inset-0 rounded-lg bg-white dark:bg-zinc-800 shadow-xs border border-zinc-200/50 dark:border-white/10\"\n                transition={{ type: 'spring', stiffness: 450, damping: 30 }}\n              />\n            )}\n            <span className=\"relative z-10\">{opt}</span>\n          </button>\n        );\n      })}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "audio-spectrum-equalizer",
    "type": "registry:ui",
    "title": "Audio Spectrum Equalizer",
    "description": "Multi-band DSP real-time audio visualizer with peak hold meters, decibel telemetry, and master gain controls.",
    "category": "media",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/media/audio-spectrum-equalizer/audio-spectrum-equalizer.tsx",
        "type": "registry:ui",
        "target": "components/ui/audio-spectrum-equalizer.tsx",
        "content": "import React, { useState, useEffect, useRef } from 'react';\nimport { Play, Pause, SpeakerHigh, SpeakerSlash, Waveform, Sliders } from '@phosphor-icons/react';\n\nexport interface AudioSpectrumEqualizerProps {\n  barCount?: number;\n  barColor?: 'cyan' | 'violet' | 'emerald' | 'amber';\n  height?: number;\n  interactive?: boolean;\n  showDbMeter?: boolean;\n  className?: string;\n}\n\nconst COLOR_MAP = {\n  cyan: {\n    bar: 'bg-cyan-500',\n    barGradient: 'from-cyan-400 to-blue-600',\n    peak: 'bg-cyan-300',\n    glow: 'shadow-[0_0_12px_rgba(6,182,212,0.5)]',\n    accent: 'text-cyan-400',\n    badge: 'bg-cyan-500/10 text-cyan-400 border-cyan-500/20'\n  },\n  violet: {\n    bar: 'bg-violet-500',\n    barGradient: 'from-violet-400 to-indigo-600',\n    peak: 'bg-violet-300',\n    glow: 'shadow-[0_0_12px_rgba(139,92,246,0.5)]',\n    accent: 'text-violet-400',\n    badge: 'bg-violet-500/10 text-violet-400 border-violet-500/20'\n  },\n  emerald: {\n    bar: 'bg-emerald-500',\n    barGradient: 'from-emerald-400 to-teal-600',\n    peak: 'bg-emerald-300',\n    glow: 'shadow-[0_0_12px_rgba(16,185,129,0.5)]',\n    accent: 'text-emerald-400',\n    badge: 'bg-emerald-500/10 text-emerald-400 border-emerald-500/20'\n  },\n  amber: {\n    bar: 'bg-amber-500',\n    barGradient: 'from-amber-400 to-orange-600',\n    peak: 'bg-amber-300',\n    glow: 'shadow-[0_0_12px_rgba(245,158,11,0.5)]',\n    accent: 'text-amber-400',\n    badge: 'bg-amber-500/10 text-amber-400 border-amber-500/20'\n  }\n};\n\nexport const AudioSpectrumEqualizer: React.FC<AudioSpectrumEqualizerProps> = ({\n  barCount = 24,\n  barColor = 'cyan',\n  height = 140,\n  interactive = true,\n  showDbMeter = true,\n  className = '',\n}) => {\n  const [isPlaying, setIsPlaying] = useState(true);\n  const [isMuted, setIsMuted] = useState(false);\n  const [gain, setGain] = useState(78);\n  const [bands, setBands] = useState<number[]>(() => Array.from({ length: barCount }, () => Math.random() * 80 + 10));\n  const [peaks, setPeaks] = useState<number[]>(() => Array.from({ length: barCount }, () => 90));\n  const animRef = useRef<number | null>(null);\n\n  const colors = COLOR_MAP[barColor] || COLOR_MAP.cyan;\n\n  useEffect(() => {\n    let tick = 0;\n    const updateSpectrum = () => {\n      tick += 0.08;\n      if (isPlaying && !isMuted) {\n        setBands(prev => {\n          const next = prev.map((val, idx) => {\n            const freqBias = Math.sin(tick * 1.5 + idx * 0.4) * 20;\n            const target = Math.max(8, Math.min(100, (Math.sin(tick + idx * 0.3) * 35 + 45) + freqBias + (Math.random() * 20 - 10)));\n            return target * (gain / 100);\n          });\n          \n          setPeaks(prevPeaks => \n            prevPeaks.map((peak, idx) => {\n              const current = next[idx];\n              if (current > peak) return current;\n              return Math.max(current, peak - 1.5);\n            })\n          );\n\n          return next;\n        });\n      } else {\n        setBands(prev => prev.map(val => Math.max(4, val * 0.85)));\n        setPeaks(prev => prev.map(val => Math.max(4, val * 0.9)));\n      }\n      animRef.current = requestAnimationFrame(updateSpectrum);\n    };\n\n    animRef.current = requestAnimationFrame(updateSpectrum);\n    return () => {\n      if (animRef.current) cancelAnimationFrame(animRef.current);\n    };\n  }, [isPlaying, isMuted, gain, barCount]);\n\n  const avgDb = isPlaying && !isMuted ? (-36 + (gain * 0.32)).toFixed(1) : '-96.0';\n  const peakDb = isPlaying && !isMuted ? (-12 + (gain * 0.11)).toFixed(1) : '-96.0';\n\n  return (\n    <div className={`w-full max-w-xl mx-auto rounded-3xl border border-zinc-200 dark:border-white/10 bg-white/90 dark:bg-[#090a0f] p-6 shadow-2xl backdrop-blur-xl font-mono text-xs select-none ${className}`}>\n      {/* Header telemetry */}\n      <div className=\"flex items-center justify-between pb-4 border-b border-zinc-200/80 dark:border-white/5\">\n        <div className=\"flex items-center gap-3\">\n          <div className=\"flex h-8 w-8 items-center justify-center rounded-xl bg-zinc-100 dark:bg-white/5 text-zinc-900 dark:text-white\">\n            <Waveform size={18} weight=\"bold\" className={isPlaying && !isMuted ? colors.accent : 'text-zinc-400'} />\n          </div>\n          <div>\n            <h3 className=\"font-bold text-zinc-900 dark:text-white text-sm\">DSP Spectrum Equalizer</h3>\n            <span className=\"text-[11px] text-zinc-400\">24-Bit / 96kHz Low-Latency Float Stream</span>\n          </div>\n        </div>\n\n        <span className={`px-2.5 py-1 rounded-full text-[10px] font-bold border uppercase ${isPlaying && !isMuted ? colors.badge : 'bg-zinc-100 dark:bg-white/5 text-zinc-400 border-zinc-200 dark:border-white/10'}`}>\n          {isPlaying && !isMuted ? 'LIVE AUDIO' : 'PAUSED'}\n        </span>\n      </div>\n\n      {/* Main Spectrum Visualizer Viewport */}\n      <div \n        style={{ height: `${height}px` }} \n        className=\"relative flex items-end justify-between gap-1 sm:gap-1.5 my-6 px-3 py-2 rounded-2xl bg-zinc-100/60 dark:bg-black/40 border border-zinc-200/60 dark:border-white/5 overflow-hidden\"\n      >\n        {/* Horizontal dB reference lines */}\n        <div className=\"pointer-events-none absolute inset-x-0 top-1/4 border-b border-zinc-200/40 dark:border-white/5\" />\n        <div className=\"pointer-events-none absolute inset-x-0 top-2/4 border-b border-zinc-200/40 dark:border-white/5\" />\n        <div className=\"pointer-events-none absolute inset-x-0 top-3/4 border-b border-zinc-200/40 dark:border-white/5\" />\n\n        {bands.slice(0, barCount).map((level, idx) => {\n          const peak = peaks[idx] || level;\n          return (\n            <div key={idx} className=\"relative flex-1 h-full flex flex-col justify-end items-center group\">\n              {/* Peak indicator dot */}\n              <div \n                style={{ bottom: `${peak}%` }}\n                className={`absolute w-full h-[3px] rounded-full transition-all duration-75 ${colors.peak} ${colors.glow}`}\n              />\n\n              {/* Dynamic Frequency Bar */}\n              <div \n                style={{ height: `${level}%` }}\n                className={`w-full rounded-t-sm bg-gradient-to-t ${colors.barGradient} transition-all duration-75 ${level > 65 ? colors.glow : ''}`}\n              />\n            </div>\n          );\n        })}\n      </div>\n\n      {/* Decibel & Channel Readout */}\n      {showDbMeter && (\n        <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-2 mb-5 p-3 rounded-2xl bg-zinc-100/50 dark:bg-white/[0.02] border border-zinc-200/60 dark:border-white/5 text-[11px]\">\n          <div>\n            <span className=\"text-zinc-400 block text-[10px]\">RMS GAIN</span>\n            <span className=\"font-bold text-zinc-900 dark:text-white\">{avgDb} dB</span>\n          </div>\n          <div>\n            <span className=\"text-zinc-400 block text-[10px]\">PEAK HOLD</span>\n            <span className=\"font-bold text-zinc-900 dark:text-white\">{peakDb} dB</span>\n          </div>\n          <div>\n            <span className=\"text-zinc-400 block text-[10px]\">CHANNELS</span>\n            <span className=\"font-bold text-zinc-900 dark:text-white\">STEREO 2.0</span>\n          </div>\n          <div>\n            <span className=\"text-zinc-400 block text-[10px]\">SAMPLE RATE</span>\n            <span className=\"font-bold text-zinc-900 dark:text-white\">96,000 Hz</span>\n          </div>\n        </div>\n      )}\n\n      {/* Interactive Controls Bar */}\n      {interactive && (\n        <div className=\"flex flex-wrap items-center justify-between gap-4 pt-3 border-t border-zinc-200/80 dark:border-white/5\">\n          <div className=\"flex items-center gap-2\">\n            <button\n              onClick={() => setIsPlaying(!isPlaying)}\n              className=\"flex h-8 w-8 items-center justify-center rounded-xl bg-zinc-900 text-white dark:bg-white dark:text-zinc-900 hover:scale-105 active:scale-95 transition-all cursor-pointer shadow-md\"\n              aria-label={isPlaying ? 'Pause audio' : 'Play audio'}\n            >\n              {isPlaying ? <Pause size={14} weight=\"bold\" /> : <Play size={14} weight=\"fill\" />}\n            </button>\n\n            <button\n              onClick={() => setIsMuted(!isMuted)}\n              className=\"flex h-8 w-8 items-center justify-center rounded-xl border border-zinc-200 dark:border-white/10 bg-zinc-100 dark:bg-white/5 text-zinc-600 dark:text-zinc-300 hover:text-zinc-900 dark:hover:text-white transition-colors cursor-pointer\"\n              aria-label={isMuted ? 'Unmute' : 'Mute'}\n            >\n              {isMuted ? <SpeakerSlash size={14} weight=\"bold\" /> : <SpeakerHigh size={14} weight=\"bold\" />}\n            </button>\n          </div>\n\n          {/* Master Gain Slider */}\n          <div className=\"flex items-center gap-2.5 flex-1 max-w-[200px]\">\n            <Sliders size={14} className=\"text-zinc-400 shrink-0\" />\n            <input\n              type=\"range\"\n              min=\"0\"\n              max=\"100\"\n              value={isMuted ? 0 : gain}\n              onChange={(e) => {\n                setGain(Number(e.target.value));\n                if (isMuted) setIsMuted(false);\n              }}\n              className=\"w-full h-1.5 bg-zinc-200 dark:bg-white/10 rounded-lg appearance-none cursor-pointer accent-cyan-500\"\n              aria-label=\"Master Gain\"\n            />\n            <span className=\"text-[10px] text-zinc-400 font-mono w-7 text-right\">{isMuted ? 0 : gain}%</span>\n          </div>\n        </div>\n      )}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "animated-notification-stack",
    "type": "registry:ui",
    "title": "Spring Notification Toast Stack",
    "description": "Tactile stacked notification cards with interactive expandable deck and live push dispatch.",
    "category": "navigation",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "navigation",
      "toast",
      "notification",
      "stack"
    ],
    "files": [
      {
        "path": "registry/navigation/animated-notification-stack/animated-notification-stack.tsx",
        "type": "registry:ui",
        "target": "components/ui/animated-notification-stack.tsx",
        "content": "import React, { useState } from 'react'\nimport { motion, AnimatePresence } from 'framer-motion'\nimport { CheckCircle, WarningCircle, ShieldCheck, X, Plus } from '@phosphor-icons/react'\nimport { cn } from '@/lib/utils'\n\ninterface NotificationItem {\n  id: string\n  title: string\n  detail: string\n  type: 'success' | 'warning' | 'info'\n  time: string\n}\n\nexport interface AnimatedNotificationStackProps {\n  className?: string\n}\n\nexport const AnimatedNotificationStack: React.FC<AnimatedNotificationStackProps> = ({ className }) => {\n  const [notifications, setNotifications] = useState<NotificationItem[]>([\n    {\n      id: '1',\n      title: 'Formal Invariant Verified',\n      detail: 'Z3 solver confirmed deadlock-freedom across 10k election rounds.',\n      type: 'success',\n      time: 'Just now',\n    },\n    {\n      id: '2',\n      title: 'Hermetic WASM Container Built',\n      detail: 'SHA256 signature verified against compiler seed.',\n      type: 'info',\n      time: '2m ago',\n    },\n  ])\n\n  const dismiss = (id: string) => {\n    setNotifications((prev) => prev.filter((n) => n.id !== id))\n  }\n\n  const addOne = () => {\n    const newItem: NotificationItem = {\n      id: String(Date.now()),\n      title: 'AST Schema Synchronized',\n      detail: 'Emitted zero-copy memory layout buffer.',\n      type: 'success',\n      time: 'Just now',\n    }\n    setNotifications((prev) => [newItem, ...prev.slice(0, 3)])\n  }\n\n  return (\n    <div className={cn('w-full max-w-sm rounded-3xl border border-white/10 bg-zinc-950 p-4 font-sans text-xs text-white shadow-2xl space-y-3', className)}>\n      <div className=\"flex items-center justify-between pb-2 border-b border-white/5 font-mono text-[10px] text-zinc-600 dark:text-zinc-400\">\n        <span>RUNTIME NOTIFICATIONS</span>\n        <button\n          onClick={addOne}\n          className=\"flex items-center gap-1 rounded bg-white/10 px-2 py-0.5 text-white hover:bg-white/20 transition-colors\"\n        >\n          <Plus size={11} weight=\"bold\" />\n          <span>Simulate Event</span>\n        </button>\n      </div>\n\n      <div className=\"space-y-2\">\n        <AnimatePresence>\n          {notifications.map((n) => (\n            <motion.div\n              key={n.id}\n              initial={{ opacity: 0, y: -10, scale: 0.95 }}\n              animate={{ opacity: 1, y: 0, scale: 1 }}\n              exit={{ opacity: 0, scale: 0.9, transition: { duration: 0.2 } }}\n              className=\"flex items-start justify-between gap-3 rounded-2xl border border-white/10 bg-zinc-900/80 p-3 shadow-md\"\n            >\n              <div className=\"flex items-start gap-2.5\">\n                <CheckCircle size={16} weight=\"fill\" className=\"text-emerald-400 shrink-0 mt-0.5\" />\n                <div>\n                  <h4 className=\"font-bold text-zinc-900 dark:text-white text-xs\">{n.title}</h4>\n                  <p className=\"text-[11px] text-zinc-600 dark:text-zinc-400 mt-0.5 leading-snug\">{n.detail}</p>\n                  <span className=\"font-mono text-[9px] text-zinc-500 mt-1 block\">{n.time}</span>\n                </div>\n              </div>\n\n              <button\n                onClick={() => dismiss(n.id)}\n                className=\"text-zinc-500 hover:text-white transition-colors\"\n              >\n                <X size={12} weight=\"bold\" />\n              </button>\n            </motion.div>\n          ))}\n        </AnimatePresence>\n\n        {notifications.length === 0 && (\n          <div className=\"text-center py-6 text-zinc-600 font-mono text-xs\">\n            No active notifications.\n          </div>\n        )}\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "breadcrumb-stepper",
    "type": "registry:ui",
    "title": "Breadcrumb Stepper",
    "description": "Modern breadcrumb and multi-step progression bar with completed checkmarks and active glowing nodes.",
    "category": "navigation",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/navigation/breadcrumb-stepper/breadcrumb-stepper.tsx",
        "type": "registry:ui",
        "target": "components/ui/breadcrumb-stepper.tsx",
        "content": "import React, { useState } from 'react';\nimport { Check, CaretRight } from '@phosphor-icons/react';\n\nconst STEPS = ['Design Tokens', 'Component Spec', 'Formal Proof', 'Deploy'];\n\nexport const BreadcrumbStepper: React.FC = () => {\n  const [activeStep, setActiveStep] = useState(2);\n\n  return (\n    <div className=\"flex flex-col items-center gap-4 w-full max-w-lg mx-auto\">\n      <div className=\"flex items-center gap-2 overflow-x-auto p-2 rounded-2xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/70 shadow-sm font-mono text-xs\">\n        {STEPS.map((step, idx) => {\n          const isDone = idx < activeStep;\n          const isCurrent = idx === activeStep;\n\n          return (\n            <React.Fragment key={step}>\n              <button\n                onClick={() => setActiveStep(idx)}\n                className={`flex items-center gap-1.5 px-2.5 py-1 rounded-xl transition-colors cursor-pointer select-none ${\n                  isCurrent\n                    ? 'bg-indigo-600 text-white font-bold shadow-xs'\n                    : isDone\n                    ? 'text-emerald-500 font-semibold'\n                    : 'text-zinc-400 hover:text-zinc-600 dark:hover:text-zinc-300'\n                }`}\n              >\n                <span\n                  className={`flex h-4 w-4 items-center justify-center rounded-full text-[10px] ${\n                    isDone ? 'bg-emerald-500/20 text-emerald-500 font-bold' : isCurrent ? 'bg-white/20' : 'bg-zinc-200 dark:bg-zinc-800'\n                  }`}\n                >\n                  {isDone ? <Check size={10} weight=\"bold\" /> : idx + 1}\n                </span>\n                <span>{step}</span>\n              </button>\n              {idx < STEPS.length - 1 && (\n                <CaretRight size={12} className=\"text-zinc-400 shrink-0\" />\n              )}\n            </React.Fragment>\n          );\n        })}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "command-palette",
    "type": "registry:ui",
    "title": "Spotlight Command Palette (⌘K)",
    "description": "Keyboard-first modal command center with fuzzy query matching and shortcuts.",
    "category": "navigation",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "navigation",
      "command palette",
      "cmd-k",
      "spotlight"
    ],
    "files": [
      {
        "path": "registry/navigation/command-palette/command-palette.tsx",
        "type": "registry:ui",
        "target": "components/ui/command-palette.tsx",
        "content": "import React, { useState } from 'react'\nimport { motion } from 'framer-motion'\nimport { MagnifyingGlass, Terminal, ArrowRight, Code, ShieldCheck, Lightning } from '@phosphor-icons/react'\nimport { cn } from '@/lib/utils'\n\nexport interface CommandPaletteProps {\n  className?: string\n}\n\nexport const CommandPalette: React.FC<CommandPaletteProps> = ({ className }) => {\n  const [query, setQuery] = useState('')\n\n  const commands = [\n    { label: 'Generate Raft State Machine', cat: 'Synthesis', icon: <Terminal size={14} /> },\n    { label: 'Run Z3 Formal Verification', cat: 'Audit', icon: <ShieldCheck size={14} /> },\n    { label: 'Build Hermetic WASM Container', cat: 'Compiler', icon: <Code size={14} /> },\n    { label: 'Profile SIMD Execution Matrix', cat: 'Hardware', icon: <Lightning size={14} /> },\n  ]\n\n  const filtered = commands.filter((c) => c.label.toLowerCase().includes(query.toLowerCase()))\n\n  return (\n    <div className={cn('w-full max-w-md overflow-hidden rounded-3xl border border-white/15 bg-zinc-950 p-3 shadow-2xl text-white font-sans', className)}>\n      <div className=\"flex items-center gap-2.5 rounded-2xl border border-white/10 bg-zinc-900/80 px-3.5 py-2.5\">\n        <MagnifyingGlass size={16} className=\"text-zinc-400\" />\n        <input\n          id=\"cmd-palette-input\"\n          name=\"cmdQuery\"\n          aria-label=\"Search AST or commands\"\n          type=\"text\"\n          value={query}\n          onChange={(e) => setQuery(e.target.value)}\n          placeholder=\"Type a command or search AST...\"\n          className=\"w-full bg-transparent text-xs text-white placeholder-zinc-500 focus:outline-none font-mono\"\n        />\n        <span className=\"rounded bg-white/10 px-1.5 py-0.5 text-[10px] font-mono text-zinc-400\">ESC</span>\n      </div>\n\n      <div className=\"mt-2 space-y-1\">\n        {filtered.map((cmd) => (\n          <button\n            key={cmd.label}\n            className=\"flex w-full items-center justify-between rounded-xl px-3 py-2 text-xs text-zinc-300 hover:bg-white/10 hover:text-white transition-colors group text-left\"\n          >\n            <div className=\"flex items-center gap-2\">\n              <span className=\"text-zinc-500 group-hover:text-emerald-400 transition-colors\">{cmd.icon}</span>\n              <span>{cmd.label}</span>\n            </div>\n            <span className=\"font-mono text-[10px] text-zinc-500 group-hover:text-zinc-300\">{cmd.cat}</span>\n          </button>\n        ))}\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "cyber-command-menu",
    "type": "registry:ui",
    "title": "Cyber Command Menu",
    "description": "HUD command palette with live keyboard navigation, sound toggle state, category tags, and hotkey accelerators.",
    "category": "navigation",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/navigation/cyber-command-menu/cyber-command-menu.tsx",
        "type": "registry:ui",
        "target": "components/ui/cyber-command-menu.tsx",
        "content": "import React, { useState } from 'react';\nimport { MagnifyingGlass, Terminal, Gear, Lightning, Compass } from '@phosphor-icons/react';\n\nexport const CyberCommandMenu: React.FC = () => {\n  const [query, setQuery] = useState('');\n  const [selectedIndex, setSelectedIndex] = useState(0);\n\n  const actions = [\n    { id: '1', title: 'Deploy to Edge Cluster', icon: <Lightning size={15} />, shortcut: '⌘D', tag: 'OPS' },\n    { id: '2', title: 'Execute Security Audit', icon: <Terminal size={15} />, shortcut: '⌘S', tag: 'SEC' },\n    { id: '3', title: 'Navigate Component Store', icon: <Compass size={15} />, shortcut: '⌘G', tag: 'NAV' },\n    { id: '4', title: 'Cluster Configurations', icon: <Gear size={15} />, shortcut: '⌘,', tag: 'SYS' },\n  ];\n\n  const filtered = actions.filter((a) => a.title.toLowerCase().includes(query.toLowerCase()));\n\n  return (\n    <div className=\"w-full max-w-md rounded-2xl border border-zinc-200 dark:border-white/15 bg-white/95 dark:bg-zinc-950/95 backdrop-blur-2xl shadow-2xl p-2 font-mono\">\n      {/* Search Bar */}\n      <div className=\"flex items-center gap-2 px-3 py-2 border-b border-zinc-200/80 dark:border-white/10\">\n        <MagnifyingGlass size={16} className=\"text-zinc-400\" />\n        <input\n          type=\"text\"\n          value={query}\n          onChange={(e) => setQuery(e.target.value)}\n          placeholder=\"Type an action or command...\"\n          className=\"w-full bg-transparent text-xs text-zinc-900 dark:text-white placeholder-zinc-400 focus:outline-none\"\n        />\n        <span className=\"text-[10px] bg-zinc-100 dark:bg-white/10 px-1.5 py-0.5 rounded text-zinc-500\">ESC</span>\n      </div>\n\n      {/* Action List */}\n      <div className=\"mt-2 space-y-1\">\n        {filtered.map((item, idx) => {\n          const isSelected = selectedIndex === idx;\n          return (\n            <div\n              key={item.id}\n              onMouseEnter={() => setSelectedIndex(idx)}\n              className={`flex items-center justify-between px-3 py-2 rounded-xl text-xs transition-colors cursor-pointer ${\n                isSelected\n                  ? 'bg-indigo-600 text-white'\n                  : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-white/5'\n              }`}\n            >\n              <div className=\"flex items-center gap-2.5\">\n                <span className={isSelected ? 'text-white' : 'text-zinc-400'}>{item.icon}</span>\n                <span>{item.title}</span>\n              </div>\n              <div className=\"flex items-center gap-2\">\n                <span className={`text-[9px] px-1.5 py-0.2 rounded font-bold ${\n                  isSelected ? 'bg-white/20 text-white' : 'bg-zinc-100 dark:bg-white/10 text-zinc-500'\n                }`}>\n                  {item.tag}\n                </span>\n                <kbd className={`text-[10px] ${isSelected ? 'text-white/80' : 'text-zinc-400'}`}>\n                  {item.shortcut}\n                </kbd>\n              </div>\n            </div>\n          );\n        })}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "floating-navbar",
    "type": "registry:ui",
    "title": "Dynamic Floating Capsule Navbar",
    "description": "Adaptive capsule navigation bar with backdrop blur and pill indicators.",
    "category": "navigation",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "navigation",
      "navbar",
      "capsule",
      "floating"
    ],
    "files": [
      {
        "path": "registry/navigation/floating-navbar/floating-navbar.tsx",
        "type": "registry:ui",
        "target": "components/ui/floating-navbar.tsx",
        "content": "import React, { useState } from 'react'\nimport { motion } from 'framer-motion'\nimport { Cpu, House, FileCode, Gear } from '@phosphor-icons/react'\nimport { cn } from '@/lib/utils'\n\nexport interface FloatingNavbarProps {\n  className?: string\n}\n\nexport const FloatingNavbar: React.FC<FloatingNavbarProps> = ({ className }) => {\n  const [activeTab, setActiveTab] = useState('Overview')\n\n  const items = [\n    { label: 'Overview', icon: <House size={16} /> },\n    { label: 'Components', icon: <FileCode size={16} /> },\n    { label: 'Settings', icon: <Gear size={16} /> },\n  ]\n\n  return (\n    <nav className={cn('relative inline-flex items-center gap-1 rounded-full border border-white/15 bg-zinc-950/80 p-1.5 backdrop-blur-2xl shadow-2xl', className)}>\n      <div className=\"flex h-8 w-8 items-center justify-center rounded-full bg-white/10 text-white mr-1\">\n        <Cpu size={16} weight=\"bold\" />\n      </div>\n\n      {items.map((tab) => {\n        const isActive = activeTab === tab.label\n        return (\n          <button\n            key={tab.label}\n            onClick={() => setActiveTab(tab.label)}\n            className={`relative flex items-center gap-1.5 rounded-full px-3.5 py-1.5 text-xs font-medium transition-colors ${\n              isActive ? 'text-zinc-950' : 'text-zinc-400 hover:text-white'\n            }`}\n          >\n            {isActive && (\n              <motion.div\n                layoutId=\"floating-nav-pill\"\n                transition={{ type: 'spring', damping: 20, stiffness: 220 }}\n                className=\"absolute inset-0 rounded-full bg-white shadow-sm\"\n              />\n            )}\n            <span className=\"relative z-10\">{tab.icon}</span>\n            <span className=\"relative z-10\">{tab.label}</span>\n          </button>\n        )\n      })}\n    </nav>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "fluid-action-panel",
    "type": "registry:ui",
    "title": "Fluid Action Panel",
    "description": "Floating quick-action toolbar that morphs dynamically with spring expansion and sub-action triggers.",
    "category": "navigation",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/navigation/fluid-action-panel/fluid-action-panel.tsx",
        "type": "registry:ui",
        "target": "components/ui/fluid-action-panel.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { Plus, MagnifyingGlass, Gear, Terminal, BookmarkSimple } from '@phosphor-icons/react';\n\nexport const FluidActionPanel: React.FC = () => {\n  const [isExpanded, setIsExpanded] = useState(false);\n\n  return (\n    <div className=\"flex items-center justify-center py-6\">\n      <motion.div\n        layout\n        transition={{ type: 'spring', stiffness: 450, damping: 30 }}\n        className=\"flex items-center gap-1.5 p-1.5 rounded-full border border-zinc-200 dark:border-white/15 bg-white/90 dark:bg-zinc-950/90 shadow-2xl backdrop-blur-2xl\"\n      >\n        <button\n          onClick={() => setIsExpanded(!isExpanded)}\n          className=\"flex h-9 w-9 items-center justify-center rounded-full bg-indigo-600 hover:bg-indigo-500 text-white shadow-md transition-transform cursor-pointer\"\n        >\n          <motion.div animate={{ rotate: isExpanded ? 45 : 0 }} transition={{ duration: 0.2 }}>\n            <Plus size={16} weight=\"bold\" />\n          </motion.div>\n        </button>\n\n        <AnimatePresence>\n          {isExpanded && (\n            <motion.div\n              initial={{ opacity: 0, width: 0 }}\n              animate={{ opacity: 1, width: 'auto' }}\n              exit={{ opacity: 0, width: 0 }}\n              className=\"flex items-center gap-1 overflow-hidden\"\n            >\n              <button className=\"flex h-9 w-9 items-center justify-center rounded-full text-zinc-600 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-white/10 transition-colors cursor-pointer\">\n                <MagnifyingGlass size={16} />\n              </button>\n              <button className=\"flex h-9 w-9 items-center justify-center rounded-full text-zinc-600 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-white/10 transition-colors cursor-pointer\">\n                <Terminal size={16} />\n              </button>\n              <button className=\"flex h-9 w-9 items-center justify-center rounded-full text-zinc-600 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-white/10 transition-colors cursor-pointer\">\n                <BookmarkSimple size={16} />\n              </button>\n              <button className=\"flex h-9 w-9 items-center justify-center rounded-full text-zinc-600 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-white/10 transition-colors cursor-pointer\">\n                <Gear size={16} />\n              </button>\n            </motion.div>\n          )}\n        </AnimatePresence>\n      </motion.div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "magnetic-dock",
    "type": "registry:ui",
    "title": "Componentry Magnetic Dock",
    "description": "macOS-style navigation dock with spring-physics cursor magnification, tooltips, and badges.",
    "category": "navigation",
    "dependencies": [
      "framer-motion",
      "clsx",
      "tailwind-merge"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "navigation",
      "dock",
      "magnetic",
      "macos"
    ],
    "files": [
      {
        "path": "registry/navigation/magnetic-dock/magnetic-dock.tsx",
        "type": "registry:ui",
        "target": "components/ui/magnetic-dock.tsx",
        "content": "\"use client\"\n\nimport * as React from \"react\"\nimport { motion, useMotionValue, useSpring, useTransform, AnimatePresence, useReducedMotion, type MotionValue } from \"framer-motion\"\nimport { cn } from \"@/lib/utils\"\n\ninterface MagneticDockProps {\n    /** Array of dock items */\n    items: DockItemData[]\n    /** Size of icons in pixels */\n    iconSize?: number\n    /** Maximum scale on hover */\n    maxScale?: number\n    /** Distance of magnetic effect in pixels */\n    magneticDistance?: number\n    /** Show labels on hover */\n    showLabels?: boolean\n    /** Dock position */\n    position?: \"bottom\" | \"top\" | \"left\" | \"right\"\n    /** Background style */\n    variant?: \"glass\" | \"solid\" | \"transparent\"\n    /** Custom class name */\n    className?: string\n}\n\ninterface DockItemData {\n    /** Unique identifier */\n    id: string\n    /** Display label */\n    label: string\n    /** Icon component or image URL */\n    icon: React.ReactNode\n    /** Click handler */\n    onClick?: () => void\n    /** Whether item is active */\n    isActive?: boolean\n    /** Badge count */\n    badge?: number\n}\n\ninterface DockItemProps {\n    item: DockItemData\n    mouseX: MotionValue<number>\n    iconSize: number\n    maxScale: number\n    magneticDistance: number\n    showLabels: boolean\n    isVertical: boolean\n    reducedMotion: boolean\n}\n\nfunction DockItem({\n    item,\n    mouseX,\n    iconSize,\n    maxScale,\n    magneticDistance,\n    showLabels,\n    isVertical,\n    reducedMotion,\n}: DockItemProps) {\n    const ref = React.useRef<HTMLButtonElement>(null)\n    const [isHovered, setIsHovered] = React.useState(false)\n    const [isFocused, setIsFocused] = React.useState(false)\n    const showLabel = showLabels && (isHovered || isFocused)\n\n    // Calculate distance from mouse to center of item\n    const distance = useTransform(mouseX, (val: number) => {\n        if (!ref.current) return magneticDistance + 1\n        const rect = ref.current.getBoundingClientRect()\n        const center = isVertical\n            ? rect.top + rect.height / 2\n            : rect.left + rect.width / 2\n        return val - center\n    })\n\n    // Scale based on distance - closer = larger\n    const scale = useTransform(distance, [-magneticDistance, 0, magneticDistance], [1, maxScale, 1])\n\n    // Apply spring physics for smooth animation\n    const springConfig = { damping: 20, stiffness: 300, mass: 0.5 }\n    const smoothScale = useSpring(scale, springConfig)\n\n    // Calculate the size based on scale\n    const size = useTransform(smoothScale, (s) => s * iconSize)\n\n    // Floating effect\n    const y = useTransform(smoothScale, (s) => (s - 1) * -10)\n    const smoothY = useSpring(y, springConfig)\n\n    return (\n        <motion.button\n            ref={ref}\n            type=\"button\"\n            tabIndex={0}\n            aria-label={item.label}\n            aria-current={item.isActive ? \"page\" : undefined}\n            onClick={item.onClick}\n            onFocus={() => setIsFocused(true)}\n            onBlur={() => setIsFocused(false)}\n            onMouseEnter={() => setIsHovered(true)}\n            onMouseLeave={() => setIsHovered(false)}\n            className={cn(\n                \"relative flex items-center justify-center\",\n                \"rounded-2xl transition-colors duration-200\",\n                \"focus:outline-none focus-visible:ring-2 focus-visible:ring-neutral-400 dark:focus-visible:ring-white/50\",\n                item.isActive && \"bg-neutral-200/50 dark:bg-white/10\"\n            )}\n            style={{\n                width: reducedMotion ? iconSize : size,\n                height: reducedMotion ? iconSize : size,\n                y: reducedMotion || isVertical ? 0 : smoothY,\n                x: reducedMotion || !isVertical ? 0 : smoothY,\n            }}\n            whileTap={reducedMotion ? undefined : { scale: 0.9 }}\n        >\n            {/* Icon Container */}\n            <motion.div\n                className={cn(\n                    \"relative w-full h-full rounded-2xl overflow-hidden\",\n                    \"bg-gradient-to-b from-neutral-100 to-neutral-50\",\n                    \"dark:from-neutral-800 dark:to-neutral-900\",\n                    \"backdrop-blur-sm\",\n                    \"border border-neutral-300 dark:border-neutral-700\",\n                    \"shadow-lg shadow-black/10 dark:shadow-black/30\",\n                    \"flex items-center justify-center\",\n                    \"transition-colors duration-200\"\n                )}\n                style={{\n                    boxShadow: isHovered\n                        ? \"0 8px 32px rgba(0,0,0,0.15), inset 0 1px 0 rgba(255,255,255,0.5)\"\n                        : \"0 4px 12px rgba(0,0,0,0.08), inset 0 1px 0 rgba(255,255,255,0.3)\",\n                }}\n            >\n                {/* Icon */}\n                <div aria-hidden=\"true\" className=\"w-[60%] h-[60%] flex items-center justify-center text-neutral-700 dark:text-white\">\n                    {item.icon}\n                </div>\n\n                {/* Shine effect */}\n                <motion.div\n                    className=\"absolute inset-0 pointer-events-none\"\n                    style={{\n                        background:\n                            \"linear-gradient(135deg, rgba(255,255,255,0.6) 0%, transparent 50%, transparent 100%)\",\n                        opacity: isHovered ? 0.9 : 0.5,\n                    }}\n                />\n            </motion.div>\n\n            {/* Badge */}\n            <AnimatePresence initial={false}>\n                {item.badge !== undefined && item.badge > 0 && (\n                    <motion.div\n                        initial={reducedMotion ? false : { scale: 0, opacity: 0 }}\n                        animate={{ scale: 1, opacity: 1 }}\n                        exit={reducedMotion ? { opacity: 0 } : { scale: 0, opacity: 0 }}\n                        className={cn(\n                            \"absolute -top-1 -right-1\",\n                            \"min-w-[20px] h-5 px-1.5\",\n                            \"rounded-full\",\n                            \"bg-red-500\",\n                            \"text-white text-xs font-semibold\",\n                            \"flex items-center justify-center\",\n                            \"border-2 border-white dark:border-neutral-950\",\n                            \"shadow-lg\"\n                        )}\n                    >\n                        {item.badge > 99 ? \"99+\" : item.badge}\n                    </motion.div>\n                )}\n            </AnimatePresence>\n\n            {/* Active Indicator */}\n            <AnimatePresence initial={false}>\n                {item.isActive && (\n                    <motion.div\n                        initial={reducedMotion ? false : { scale: 0, opacity: 0 }}\n                        animate={{ scale: 1, opacity: 1 }}\n                        exit={reducedMotion ? { opacity: 0 } : { scale: 0, opacity: 0 }}\n                        className={cn(\n                            \"absolute -bottom-2\",\n                            \"w-1.5 h-1.5 rounded-full\",\n                            \"bg-neutral-600 dark:bg-white/80\"\n                        )}\n                    />\n                )}\n            </AnimatePresence>\n\n            {/* Tooltip */}\n            <AnimatePresence initial={false}>\n                {showLabel && (\n                    <motion.div\n                        aria-hidden=\"true\"\n                        initial={reducedMotion ? false : { opacity: 0, y: 8, scale: 0.9 }}\n                        animate={{ opacity: 1, y: 0, scale: 1 }}\n                        exit={reducedMotion ? { opacity: 0 } : { opacity: 0, y: 8, scale: 0.9 }}\n                        transition={{ duration: 0.15, ease: \"easeOut\" }}\n                        className={cn(\n                            \"absolute -top-10 left-1/2 -translate-x-1/2\",\n                            \"px-3 py-1.5 rounded-lg\",\n                            \"bg-white dark:bg-neutral-900/95\",\n                            \"backdrop-blur-sm\",\n                            \"text-neutral-800 dark:text-white text-sm font-medium whitespace-nowrap\",\n                            \"border border-neutral-200 dark:border-white/10\",\n                            \"shadow-xl shadow-black/10 dark:shadow-black/20\",\n                            \"pointer-events-none z-50\"\n                        )}\n                    >\n                        {item.label}\n                        {/* Tooltip arrow */}\n                        <div\n                            className={cn(\n                                \"absolute left-1/2 -translate-x-1/2 -bottom-1\",\n                                \"w-2 h-2 rotate-45\",\n                                \"bg-white dark:bg-neutral-900/95\",\n                                \"border-r border-b border-neutral-200 dark:border-white/10\"\n                            )}\n                        />\n                    </motion.div>\n                )}\n            </AnimatePresence>\n\n            {/* Hover glow */}\n            <motion.div\n                className=\"absolute inset-0 rounded-2xl pointer-events-none\"\n                animate={{\n                    boxShadow: isHovered\n                        ? \"0 0 30px rgba(255,255,255,0.15)\"\n                        : \"0 0 0px rgba(255,255,255,0)\",\n                }}\n                transition={{ duration: 0.3 }}\n            />\n        </motion.button>\n    )\n}\n\nfunction MagneticDock({\n    items,\n    iconSize = 56,\n    maxScale = 1.5,\n    magneticDistance = 150,\n    showLabels = true,\n    position = \"bottom\",\n    variant = \"glass\",\n    className,\n}: MagneticDockProps) {\n    const mousePosition = useMotionValue(Infinity)\n    const reducedMotion = useReducedMotion() ?? false\n    const isVertical = position === \"left\" || position === \"right\"\n\n    const handleMouseMove = React.useCallback(\n        (e: React.MouseEvent) => {\n            if (isVertical) {\n                mousePosition.set(e.clientY)\n            } else {\n                mousePosition.set(e.clientX)\n            }\n        },\n        [mousePosition, isVertical]\n    )\n\n    const handleMouseLeave = () => {\n        mousePosition.set(Infinity)\n    }\n\n    const variantStyles = {\n        glass: cn(\n            \"bg-white/80 dark:bg-neutral-900/80\",\n            \"backdrop-blur-xl backdrop-saturate-150\",\n            \"border border-neutral-200 dark:border-neutral-700\"\n        ),\n        solid: cn(\n            \"bg-neutral-100 dark:bg-neutral-900\",\n            \"border border-neutral-300 dark:border-neutral-700\"\n        ),\n        transparent: \"bg-transparent border-0\",\n    }\n\n    const positionStyles = {\n        bottom: \"flex-row\",\n        top: \"flex-row\",\n        left: \"flex-col\",\n        right: \"flex-col\",\n    }\n\n    return (\n        <motion.div\n            onMouseMove={reducedMotion ? undefined : handleMouseMove}\n            onMouseLeave={handleMouseLeave}\n            className={cn(\n                \"inline-flex items-end gap-2 p-3 rounded-3xl\",\n                variantStyles[variant],\n                positionStyles[position],\n                \"shadow-xl shadow-black/10 dark:shadow-black/30\",\n                className\n            )}\n            initial={false}\n            animate={{ opacity: 1, y: 0 }}\n            transition={{ duration: 0.5, ease: [0.25, 0.46, 0.45, 0.94] }}\n        >\n            {items.map((item) => (\n                <DockItem\n                    key={item.id}\n                    item={item}\n                    mouseX={mousePosition}\n                    iconSize={iconSize}\n                    maxScale={maxScale}\n                    magneticDistance={magneticDistance}\n                    showLabels={showLabels}\n                    isVertical={isVertical}\n                    reducedMotion={reducedMotion}\n                />\n            ))}\n        </motion.div>\n    )\n}\n\n// Preset icons for common use cases\nfunction DockIconHome({ className }: { className?: string }) {\n    return (\n        <svg\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            strokeWidth=\"2\"\n            strokeLinecap=\"round\"\n            strokeLinejoin=\"round\"\n            className={cn(\"w-full h-full\", className)}\n        >\n            <path d=\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\" />\n            <polyline points=\"9 22 9 12 15 12 15 22\" />\n        </svg>\n    )\n}\n\nfunction DockIconSearch({ className }: { className?: string }) {\n    return (\n        <svg\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            strokeWidth=\"2\"\n            strokeLinecap=\"round\"\n            strokeLinejoin=\"round\"\n            className={cn(\"w-full h-full\", className)}\n        >\n            <circle cx=\"11\" cy=\"11\" r=\"8\" />\n            <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n        </svg>\n    )\n}\n\nfunction DockIconFolder({ className }: { className?: string }) {\n    return (\n        <svg\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            strokeWidth=\"2\"\n            strokeLinecap=\"round\"\n            strokeLinejoin=\"round\"\n            className={cn(\"w-full h-full\", className)}\n        >\n            <path d=\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\" />\n        </svg>\n    )\n}\n\nfunction DockIconMail({ className }: { className?: string }) {\n    return (\n        <svg\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            strokeWidth=\"2\"\n            strokeLinecap=\"round\"\n            strokeLinejoin=\"round\"\n            className={cn(\"w-full h-full\", className)}\n        >\n            <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\" />\n            <polyline points=\"22,6 12,13 2,6\" />\n        </svg>\n    )\n}\n\nfunction DockIconMusic({ className }: { className?: string }) {\n    return (\n        <svg\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            strokeWidth=\"2\"\n            strokeLinecap=\"round\"\n            strokeLinejoin=\"round\"\n            className={cn(\"w-full h-full\", className)}\n        >\n            <path d=\"M9 18V5l12-2v13\" />\n            <circle cx=\"6\" cy=\"18\" r=\"3\" />\n            <circle cx=\"18\" cy=\"16\" r=\"3\" />\n        </svg>\n    )\n}\n\nfunction DockIconSettings({ className }: { className?: string }) {\n    return (\n        <svg\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            strokeWidth=\"2\"\n            strokeLinecap=\"round\"\n            strokeLinejoin=\"round\"\n            className={cn(\"w-full h-full\", className)}\n        >\n            <circle cx=\"12\" cy=\"12\" r=\"3\" />\n            <path d=\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\" />\n        </svg>\n    )\n}\n\nfunction DockIconTrash({ className }: { className?: string }) {\n    return (\n        <svg\n            viewBox=\"0 0 24 24\"\n            fill=\"none\"\n            stroke=\"currentColor\"\n            strokeWidth=\"2\"\n            strokeLinecap=\"round\"\n            strokeLinejoin=\"round\"\n            className={cn(\"w-full h-full\", className)}\n        >\n            <polyline points=\"3 6 5 6 21 6\" />\n            <path d=\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\" />\n        </svg>\n    )\n}\n\nexport {\n    MagneticDock,\n    DockIconHome,\n    DockIconSearch,\n    DockIconFolder,\n    DockIconMail,\n    DockIconMusic,\n    DockIconSettings,\n    DockIconTrash,\n    type MagneticDockProps,\n    type DockItemData,\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "magnetic-social-dock",
    "type": "registry:ui",
    "title": "Magnetic Social Dock",
    "description": "Fluid magnetic social icon pills that dynamically morph, scale, and spring toward the cursor with balloon tooltips.",
    "category": "navigation",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/navigation/magnetic-social-dock/magnetic-social-dock.tsx",
        "type": "registry:ui",
        "target": "components/ui/magnetic-social-dock.tsx",
        "content": "import React, { useRef, useState } from 'react';\nimport { motion } from 'framer-motion';\nimport { GithubLogo, TwitterLogo, DiscordLogo, Globe, TelegramLogo } from '@phosphor-icons/react';\n\nexport const MagneticSocialDock: React.FC = () => {\n  const [hoveredIndex, setHoveredIndex] = useState<number | null>(null);\n\n  const items = [\n    { icon: <GithubLogo size={20} weight=\"fill\" />, label: 'GitHub', color: 'hover:text-white hover:bg-zinc-800' },\n    { icon: <TwitterLogo size={20} weight=\"fill\" />, label: 'Twitter', color: 'hover:text-sky-400 hover:bg-sky-500/10' },\n    { icon: <DiscordLogo size={20} weight=\"fill\" />, label: 'Discord', color: 'hover:text-indigo-400 hover:bg-indigo-500/10' },\n    { icon: <TelegramLogo size={20} weight=\"fill\" />, label: 'Telegram', color: 'hover:text-cyan-400 hover:bg-cyan-500/10' },\n    { icon: <Globe size={20} weight=\"bold\" />, label: 'Network', color: 'hover:text-emerald-400 hover:bg-emerald-500/10' },\n  ];\n\n  return (\n    <div className=\"flex items-center gap-2 p-2.5 rounded-full border border-zinc-200 dark:border-white/10 bg-white/90 dark:bg-zinc-950/90 backdrop-blur-xl shadow-xl\">\n      {items.map((item, idx) => {\n        const isHovered = hoveredIndex === idx;\n        const isAdjacent = hoveredIndex !== null && Math.abs(hoveredIndex - idx) === 1;\n\n        return (\n          <motion.button\n            key={item.label}\n            onMouseEnter={() => setHoveredIndex(idx)}\n            onMouseLeave={() => setHoveredIndex(null)}\n            animate={{\n              scale: isHovered ? 1.3 : isAdjacent ? 1.12 : 1,\n              y: isHovered ? -4 : 0,\n            }}\n            transition={{ type: 'spring', stiffness: 350, damping: 20 }}\n            className={`relative flex h-10 w-10 items-center justify-center rounded-full text-zinc-600 dark:text-zinc-300 transition-colors ${item.color} cursor-pointer`}\n          >\n            {item.icon}\n            {isHovered && (\n              <motion.span\n                initial={{ opacity: 0, y: 8, scale: 0.8 }}\n                animate={{ opacity: 1, y: 0, scale: 1 }}\n                className=\"absolute -top-8 px-2 py-0.5 rounded-md bg-zinc-900 text-white dark:bg-white dark:text-zinc-950 font-mono text-[9px] font-bold shadow-lg pointer-events-none whitespace-nowrap\"\n              >\n                {item.label}\n              </motion.span>\n            )}\n          </motion.button>\n        );\n      })}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "magnetic-social-share-cluster",
    "type": "registry:ui",
    "title": "Magnetic Social Share Cluster",
    "description": "Interconnected floating social network sharing pills with magnetic spring pulling physics and glow borders.",
    "category": "navigation",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/navigation/magnetic-social-share-cluster/magnetic-social-share-cluster.tsx",
        "type": "registry:ui",
        "target": "components/ui/magnetic-social-share-cluster.tsx",
        "content": "import React from 'react';\nimport { GithubLogo, TwitterLogo, DiscordLogo, Globe } from '@phosphor-icons/react';\n\nconst SOCIALS = [\n  { name: 'GitHub', icon: <GithubLogo size={16} weight=\"fill\" />, href: 'https://github.com/Nivethith-AK/Cooki-UI' },\n  { name: 'X / Twitter', icon: <TwitterLogo size={16} weight=\"fill\" />, href: '#' },\n  { name: 'Discord', icon: <DiscordLogo size={16} weight=\"fill\" />, href: '#' },\n  { name: 'Registry', icon: <Globe size={16} weight=\"bold\" />, href: '#' },\n];\n\nexport const MagneticSocialShareCluster: React.FC = () => {\n  return (\n    <div className=\"flex items-center gap-2.5 p-2 rounded-2xl bg-white dark:bg-zinc-900 border border-zinc-200 dark:border-white/10 shadow-lg font-mono text-xs\">\n      {SOCIALS.map((s) => (\n        <a\n          key={s.name}\n          href={s.href}\n          target=\"_blank\"\n          rel=\"noopener noreferrer\"\n          className=\"flex items-center gap-1.5 px-3 py-1.5 rounded-xl bg-zinc-100 dark:bg-white/5 text-zinc-700 dark:text-zinc-300 hover:text-white hover:bg-indigo-600 transition-all cursor-pointer hover:scale-105 active:scale-95\"\n        >\n          {s.icon}\n          <span className=\"text-[11px] font-medium\">{s.name}</span>\n        </a>\n      ))}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "minimal-radial-menu",
    "type": "registry:ui",
    "title": "Kinetic Radial Action Menu",
    "description": "Expanding 360-degree radial pie action launcher with spring physics angles, tooltips, and center trigger toggling.",
    "category": "navigation",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/navigation/minimal-radial-menu/minimal-radial-menu.tsx",
        "type": "registry:ui",
        "target": "components/ui/minimal-radial-menu.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { Plus, Terminal, Gear, Code, ShareNetwork, Cpu } from '@phosphor-icons/react';\n\nconst ACTIONS = [\n  { id: 'code', icon: <Code size={15} />, label: 'Inspect' },\n  { id: 'term', icon: <Terminal size={15} />, label: 'CLI' },\n  { id: 'gear', icon: <Gear size={15} />, label: 'Settings' },\n  { id: 'share', icon: <ShareNetwork size={15} />, label: 'Share' },\n  { id: 'ai', icon: <Cpu size={15} />, label: 'AI Gen' },\n];\n\nexport const MinimalRadialMenu: React.FC = () => {\n  const [isOpen, setIsOpen] = useState(false);\n\n  return (\n    <div className=\"relative w-56 h-56 flex items-center justify-center\">\n      {/* Radial Items */}\n      <AnimatePresence>\n        {isOpen &&\n          ACTIONS.map((a, i) => {\n            const angle = (i * (360 / ACTIONS.length)) * (Math.PI / 180);\n            const radius = 75;\n            const x = Math.round(Math.cos(angle) * radius);\n            const y = Math.round(Math.sin(angle) * radius);\n\n            return (\n              <motion.button\n                key={a.id}\n                initial={{ scale: 0, x: 0, y: 0 }}\n                animate={{ scale: 1, x, y }}\n                exit={{ scale: 0, x: 0, y: 0 }}\n                transition={{ type: 'spring', damping: 18, stiffness: 350, delay: i * 0.04 }}\n                className=\"absolute w-9 h-9 rounded-full bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white shadow-lg border border-zinc-200 dark:border-white/10 flex items-center justify-center hover:scale-110 hover:bg-indigo-600 hover:text-white transition-transform cursor-pointer\"\n                title={a.label}\n              >\n                {a.icon}\n              </motion.button>\n            );\n          })}\n      </AnimatePresence>\n\n      {/* Center Trigger Button */}\n      <button\n        onClick={() => setIsOpen(!isOpen)}\n        className=\"relative z-20 w-12 h-12 rounded-full bg-zinc-900 dark:bg-white text-white dark:text-zinc-950 flex items-center justify-center shadow-xl hover:scale-105 active:scale-95 transition-all cursor-pointer\"\n      >\n        <motion.div animate={{ rotate: isOpen ? 135 : 0 }} transition={{ duration: 0.2 }}>\n          <Plus size={20} weight=\"bold\" />\n        </motion.div>\n      </button>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "sliding-logo-marquee",
    "type": "registry:ui",
    "title": "Infinite Brand Logo Marquee",
    "description": "Seamless hardware-accelerated horizontal brand partner marquee with hover pause.",
    "category": "navigation",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "navigation",
      "marquee",
      "logos",
      "partners"
    ],
    "files": [
      {
        "path": "registry/navigation/sliding-logo-marquee/sliding-logo-marquee.tsx",
        "type": "registry:ui",
        "target": "components/ui/sliding-logo-marquee.tsx",
        "content": "import React from 'react'\nimport { Cpu, Terminal, ShieldCheck, Database, GitBranch, Code, Lightning, Globe } from '@phosphor-icons/react'\nimport { cn } from '@/lib/utils'\n\nexport interface SlidingLogoMarqueeProps {\n  className?: string\n}\n\nexport const SlidingLogoMarquee: React.FC<SlidingLogoMarqueeProps> = ({ className }) => {\n  const items = [\n    { name: 'Next.js 15', icon: <Cpu size={15} /> },\n    { name: 'React 19', icon: <Code size={15} /> },\n    { name: 'Tailwind CSS v4', icon: <Lightning size={15} /> },\n    { name: 'TypeScript 5.7', icon: <ShieldCheck size={15} /> },\n    { name: 'Framer Motion', icon: <Globe size={15} /> },\n    { name: 'Vite 6', icon: <GitBranch size={15} /> },\n    { name: 'Astro', icon: <Terminal size={15} /> },\n    { name: 'Remix', icon: <Database size={15} /> },\n  ]\n\n  return (\n    <div className={cn('relative w-full max-w-3xl overflow-hidden rounded-2xl border border-zinc-200/80 dark:border-white/10 bg-white/70 dark:bg-zinc-950/70 backdrop-blur-md py-2.5', className)}>\n      {/* Gradient edge masks */}\n      <div className=\"pointer-events-none absolute inset-y-0 left-0 w-16 bg-gradient-to-r from-white dark:from-zinc-950 to-transparent z-10\" />\n      <div className=\"pointer-events-none absolute inset-y-0 right-0 w-16 bg-gradient-to-l from-white dark:from-zinc-950 to-transparent z-10\" />\n\n      {/* Marquee Track */}\n      <div className=\"flex w-max gap-3 animate-[marquee_24s_linear_infinite] hover:[animation-play-state:paused]\">\n        {[...items, ...items, ...items].map((item, idx) => (\n          <div\n            key={idx}\n            className=\"flex items-center gap-2 rounded-xl border border-zinc-200/90 dark:border-white/10 bg-zinc-100/90 dark:bg-white/5 px-3 py-1 font-mono text-[11px] text-zinc-700 dark:text-zinc-300 hover:text-indigo-600 dark:hover:text-white hover:border-indigo-400 dark:hover:border-white/25 transition-colors cursor-pointer select-none\"\n          >\n            <span className=\"text-indigo-500 dark:text-emerald-400\">{item.icon}</span>\n            <span className=\"font-semibold\">{item.name}</span>\n          </div>\n        ))}\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "tabs-morph",
    "type": "registry:ui",
    "title": "Morphing Spring Pill Tabs",
    "description": "Fluid layoutId morphing background indicator tabs with tactile spring motion.",
    "category": "navigation",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "navigation",
      "tabs",
      "segmented",
      "morph"
    ],
    "files": [
      {
        "path": "registry/navigation/tabs-morph/tabs-morph.tsx",
        "type": "registry:ui",
        "target": "components/ui/tabs-morph.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion } from 'framer-motion';\nimport { Code, Eye, Waveform, Gear } from '@phosphor-icons/react';\n\ninterface TabItem {\n  id: string;\n  label: string;\n  icon: React.ReactNode;\n  badge?: string;\n}\n\ninterface TabsMorphProps {\n  className?: string;\n  defaultTab?: string;\n  onChange?: (id: string) => void;\n}\n\nconst DEFAULT_TABS: TabItem[] = [\n  { id: 'preview', label: 'Preview', icon: <Eye size={15} /> },\n  { id: 'code', label: 'Source Code', icon: <Code size={15} /> },\n  { id: 'effects', label: 'Shader FX', icon: <Waveform size={15} />, badge: 'NEW' },\n  { id: 'settings', label: 'Inspector', icon: <Gear size={15} /> },\n];\n\nexport const TabsMorph: React.FC<TabsMorphProps> = ({\n  className = '',\n  defaultTab = 'preview',\n  onChange,\n}) => {\n  const [activeTab, setActiveTab] = useState(defaultTab);\n\n  const handleSelect = (id: string) => {\n    setActiveTab(id);\n    onChange?.(id);\n  };\n\n  return (\n    <div className={`inline-flex items-center p-1.5 rounded-2xl bg-zinc-900/80 border border-white/10 backdrop-blur-xl shadow-lg ${className}`}>\n      {DEFAULT_TABS.map((tab) => {\n        const isActive = activeTab === tab.id;\n        return (\n          <button\n            key={tab.id}\n            onClick={() => handleSelect(tab.id)}\n            className={`relative flex items-center gap-2 px-4 py-2 rounded-xl text-xs font-medium transition-colors duration-200 cursor-pointer select-none ${\n              isActive ? 'text-white' : 'text-zinc-400 hover:text-zinc-200'\n            }`}\n          >\n            {/* Morphing Background Pill */}\n            {isActive && (\n              <motion.div\n                layoutId=\"activeTabMorph\"\n                transition={{ type: 'spring', stiffness: 450, damping: 32 }}\n                className=\"absolute inset-0 rounded-xl bg-gradient-to-r from-indigo-600/80 to-violet-600/80 border border-indigo-400/30 shadow-md shadow-indigo-500/20\"\n              />\n            )}\n\n            <span className=\"relative z-10 flex items-center gap-1.5\">\n              {tab.icon}\n              {tab.label}\n              {tab.badge && (\n                <span className=\"px-1.5 py-0.2 rounded text-[9px] font-mono font-bold bg-pink-500/20 text-pink-300 border border-pink-500/30\">\n                  {tab.badge}\n                </span>\n              )}\n            </span>\n          </button>\n        );\n      })}\n    </div>\n  );\n};\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "context-action-menu",
    "type": "registry:ui",
    "title": "Context Action Menu",
    "description": "Desktop-style right-click context menu with keyboard shortcuts, destructive actions, and submenus.",
    "category": "overlays",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/overlays/context-action-menu/context-action-menu.tsx",
        "type": "registry:ui",
        "target": "components/ui/context-action-menu.tsx",
        "content": "import React, { useState, useRef, useEffect } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { Copy, Code, Trash, Play } from '@phosphor-icons/react';\n\nexport const ContextActionMenu: React.FC = () => {\n  const [pos, setPos] = useState<{ x: number; y: number } | null>(null);\n  const containerRef = useRef<HTMLDivElement>(null);\n\n  const handleContextMenu = (e: React.MouseEvent) => {\n    e.preventDefault();\n    openAtCoords(e.clientX, e.clientY);\n  };\n\n  const openAtCoords = (clientX: number, clientY: number) => {\n    const rect = containerRef.current?.getBoundingClientRect();\n    if (rect) {\n      const rawX = clientX - rect.left;\n      const rawY = clientY - rect.top;\n      const clampedX = Math.max(10, Math.min(rawX, rect.width - 200));\n      const clampedY = Math.max(10, Math.min(rawY, rect.height - 160));\n      setPos({ x: clampedX, y: clampedY });\n    }\n  };\n\n  useEffect(() => {\n    const handleClose = () => setPos(null);\n    window.addEventListener('click', handleClose);\n    return () => window.removeEventListener('click', handleClose);\n  }, []);\n\n  return (\n    <div\n      ref={containerRef}\n      onContextMenu={handleContextMenu}\n      onClick={(e) => {\n        if (!pos) openAtCoords(e.clientX, e.clientY);\n      }}\n      className=\"relative w-full max-w-sm mx-auto h-40 rounded-3xl border-2 border-dashed border-zinc-300 dark:border-white/15 bg-zinc-100/60 dark:bg-zinc-900/40 flex flex-col items-center justify-center select-none cursor-context-menu p-4 text-center\"\n    >\n      <span className=\"text-xs font-mono font-bold text-zinc-900 dark:text-white\">RIGHT CLICK OR TAP TO OPEN</span>\n      <span className=\"text-[10px] font-mono text-zinc-500 mt-1\">Triggers custom floating action context menu</span>\n\n      <AnimatePresence>\n        {pos && (\n          <motion.div\n            initial={{ opacity: 0, scale: 0.95 }}\n            animate={{ opacity: 1, scale: 1 }}\n            exit={{ opacity: 0, scale: 0.95 }}\n            transition={{ duration: 0.12 }}\n            style={{ top: pos.y, left: pos.x }}\n            className=\"absolute z-50 w-48 rounded-2xl border border-zinc-200 dark:border-white/15 bg-white dark:bg-zinc-950 p-1.5 shadow-2xl font-mono text-xs text-zinc-800 dark:text-zinc-200\"\n          >\n            <button className=\"flex w-full items-center justify-between px-2.5 py-1.5 rounded-xl hover:bg-zinc-100 dark:hover:bg-white/10 transition-colors cursor-pointer\">\n              <span className=\"flex items-center gap-2\"><Copy size={13} /> Copy Path</span>\n              <span className=\"text-[10px] text-zinc-400\">⌘C</span>\n            </button>\n            <button className=\"flex w-full items-center justify-between px-2.5 py-1.5 rounded-xl hover:bg-zinc-100 dark:hover:bg-white/10 transition-colors cursor-pointer\">\n              <span className=\"flex items-center gap-2\"><Code size={13} /> View AST</span>\n              <span className=\"text-[10px] text-zinc-400\">⌥V</span>\n            </button>\n            <button className=\"flex w-full items-center justify-between px-2.5 py-1.5 rounded-xl hover:bg-zinc-100 dark:hover:bg-white/10 transition-colors cursor-pointer\">\n              <span className=\"flex items-center gap-2\"><Play size={13} /> Run Kernel</span>\n              <span className=\"text-[10px] text-zinc-400\">↵</span>\n            </button>\n            <div className=\"my-1 border-t border-zinc-200 dark:border-white/10\" />\n            <button className=\"flex w-full items-center justify-between px-2.5 py-1.5 rounded-xl hover:bg-rose-500/10 text-rose-500 transition-colors cursor-pointer\">\n              <span className=\"flex items-center gap-2\"><Trash size={13} /> Delete Block</span>\n              <span className=\"text-[10px]\">⌫</span>\n            </button>\n          </motion.div>\n        )}\n      </AnimatePresence>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "glassmorphic-command-hud",
    "type": "registry:ui",
    "title": "Glassmorphic Command HUD",
    "description": "Modern floating spotlight palette with fuzzy search filter, keyboard shortcut triggers, category tags, and frosted dark glass backdrop.",
    "category": "overlays",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/overlays/glassmorphic-command-hud/glassmorphic-command-hud.tsx",
        "type": "registry:ui",
        "target": "components/ui/glassmorphic-command-hud.tsx",
        "content": "import React, { useState, useMemo } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { \n  MagnifyingGlass, \n  Command, \n  Terminal, \n  Gear, \n  ShieldCheck, \n  ArrowRight, \n  FileCode,\n  FolderOpen,\n  Cpu,\n  Check\n} from '@phosphor-icons/react';\n\nexport interface CommandItem {\n  id: string;\n  title: string;\n  category: 'Actions' | 'Navigation' | 'System';\n  shortcut?: string;\n  icon: 'terminal' | 'gear' | 'shield' | 'file' | 'cpu';\n}\n\nconst DEFAULT_COMMANDS: CommandItem[] = [\n  { id: '1', title: 'Open Integrated Terminal', category: 'Actions', shortcut: '⌘`', icon: 'terminal' },\n  { id: '2', title: 'Search File Symbols & Hooks', category: 'Navigation', shortcut: '⌘P', icon: 'file' },\n  { id: '3', title: 'Compile WebAssembly Kernel', category: 'Actions', shortcut: '⇧⌘B', icon: 'cpu' },\n  { id: '4', title: 'Toggle Hardware Acceleration', category: 'System', shortcut: '⌥H', icon: 'gear' },\n  { id: '5', title: 'Audit Cryptographic Secrets', category: 'System', shortcut: '⌘S', icon: 'shield' },\n  { id: '6', title: 'Inspect Network Requests', category: 'Navigation', shortcut: '⌥I', icon: 'terminal' },\n];\n\nexport interface GlassmorphicCommandHudProps {\n  placeholder?: string;\n  maxResults?: number;\n  className?: string;\n}\n\nexport const GlassmorphicCommandHud: React.FC<GlassmorphicCommandHudProps> = ({\n  placeholder = 'Type a command or search action...',\n  maxResults = 5,\n  className = '',\n}) => {\n  const [query, setQuery] = useState('');\n  const [selectedIndex, setSelectedIndex] = useState(0);\n  const [executedId, setExecutedId] = useState<string | null>(null);\n\n  const filteredCommands = useMemo(() => {\n    if (!query.trim()) return DEFAULT_COMMANDS.slice(0, maxResults);\n    return DEFAULT_COMMANDS.filter((cmd) =>\n      cmd.title.toLowerCase().includes(query.toLowerCase()) ||\n      cmd.category.toLowerCase().includes(query.toLowerCase())\n    ).slice(0, maxResults);\n  }, [query, maxResults]);\n\n  const handleSelect = (cmd: CommandItem) => {\n    setExecutedId(cmd.id);\n    setTimeout(() => setExecutedId(null), 1500);\n  };\n\n  const getIcon = (type: CommandItem['icon']) => {\n    switch (type) {\n      case 'terminal': return <Terminal size={15} weight=\"bold\" className=\"text-emerald-400\" />;\n      case 'gear': return <Gear size={15} weight=\"bold\" className=\"text-zinc-400\" />;\n      case 'shield': return <ShieldCheck size={15} weight=\"bold\" className=\"text-cyan-400\" />;\n      case 'cpu': return <Cpu size={15} weight=\"bold\" className=\"text-amber-400\" />;\n      case 'file': return <FileCode size={15} weight=\"bold\" className=\"text-indigo-400\" />;\n      default: return <Command size={15} weight=\"bold\" className=\"text-zinc-400\" />;\n    }\n  };\n\n  return (\n    <div className={`w-full max-w-xl mx-auto rounded-3xl border border-zinc-200/90 dark:border-white/10 bg-white/90 dark:bg-zinc-950/85 backdrop-blur-2xl shadow-2xl overflow-hidden font-mono text-xs ${className}`}>\n      {/* Search Input Bar */}\n      <div className=\"flex items-center gap-3 px-5 py-4 border-b border-zinc-200/80 dark:border-white/10 bg-zinc-50/50 dark:bg-white/[0.02]\">\n        <MagnifyingGlass size={16} weight=\"bold\" className=\"text-zinc-400\" />\n        <input\n          type=\"text\"\n          value={query}\n          onChange={(e) => {\n            setQuery(e.target.value);\n            setSelectedIndex(0);\n          }}\n          placeholder={placeholder}\n          className=\"flex-1 bg-transparent text-zinc-900 dark:text-white placeholder:text-zinc-400 focus:outline-none text-xs font-mono\"\n        />\n        <div className=\"flex items-center gap-1.5 text-[10px] text-zinc-400 bg-zinc-100 dark:bg-white/5 px-2 py-0.5 rounded-lg border border-zinc-200 dark:border-white/5\">\n          <Command size={11} weight=\"bold\" />\n          <span>K</span>\n        </div>\n      </div>\n\n      {/* Results List */}\n      <div className=\"p-2 space-y-1\">\n        {filteredCommands.length > 0 ? (\n          filteredCommands.map((cmd, idx) => {\n            const isSelected = idx === selectedIndex;\n            const isDone = executedId === cmd.id;\n\n            return (\n              <div\n                key={cmd.id}\n                onClick={() => handleSelect(cmd)}\n                onMouseEnter={() => setSelectedIndex(idx)}\n                className={`flex items-center justify-between px-3.5 py-2.5 rounded-2xl transition-all cursor-pointer ${\n                  isSelected\n                    ? 'bg-zinc-100 dark:bg-white/10 text-zinc-900 dark:text-white shadow-2xs'\n                    : 'text-zinc-600 dark:text-zinc-400 hover:bg-zinc-50 dark:hover:bg-white/5'\n                }`}\n              >\n                <div className=\"flex items-center gap-3 truncate\">\n                  <div className=\"flex h-7 w-7 items-center justify-center rounded-xl bg-zinc-200/60 dark:bg-white/5 border border-zinc-300/60 dark:border-white/5\">\n                    {getIcon(cmd.icon)}\n                  </div>\n                  <div className=\"truncate\">\n                    <span className=\"font-semibold\">{cmd.title}</span>\n                    <span className=\"ml-2 text-[10px] text-zinc-400 font-mono\">[{cmd.category}]</span>\n                  </div>\n                </div>\n\n                <div className=\"flex items-center gap-2\">\n                  {isDone ? (\n                    <span className=\"flex items-center gap-1 text-[11px] text-emerald-500 font-bold\">\n                      <Check size={12} weight=\"bold\" />\n                      Executed\n                    </span>\n                  ) : cmd.shortcut ? (\n                    <span className=\"px-2 py-0.5 rounded-md bg-zinc-200/60 dark:bg-zinc-800 text-[10px] text-zinc-500 dark:text-zinc-300 border border-zinc-300/60 dark:border-white/5\">\n                      {cmd.shortcut}\n                    </span>\n                  ) : null}\n                  <ArrowRight size={12} className=\"text-zinc-400 opacity-60\" />\n                </div>\n              </div>\n            );\n          })\n        ) : (\n          <div className=\"py-8 text-center text-zinc-400 text-xs font-mono\">\n            No actions match \"{query}\"\n          </div>\n        )}\n      </div>\n\n      {/* Footer Navigation Hints */}\n      <div className=\"flex items-center justify-between px-4 py-2.5 border-t border-zinc-200/80 dark:border-white/5 bg-zinc-50/50 dark:bg-white/[0.01] text-[10px] text-zinc-400\">\n        <div className=\"flex items-center gap-3\">\n          <span>&uarr;&darr; Navigate</span>\n          <span>&crarr; Execute</span>\n          <span>ESC Close</span>\n        </div>\n        <span className=\"text-zinc-500 font-bold uppercase\">Spotlight HUD v2</span>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "interactive-dialog-modal",
    "type": "registry:ui",
    "title": "Interactive Dialog Modal",
    "description": "Accessible modal dialog with spring physics, backdrop blur, keyboard ESC trap, and customizable action slots.",
    "category": "overlays",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/overlays/interactive-dialog-modal/interactive-dialog-modal.tsx",
        "type": "registry:ui",
        "target": "components/ui/interactive-dialog-modal.tsx",
        "content": "import React, { useState, useEffect } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { ShieldCheck, X, ArrowRight } from '@phosphor-icons/react';\n\nexport const InteractiveDialogModal: React.FC = () => {\n  const [isOpen, setIsOpen] = useState(false);\n\n  useEffect(() => {\n    if (!isOpen) return;\n    const handleKeyDown = (e: KeyboardEvent) => {\n      if (e.key === 'Escape') setIsOpen(false);\n    };\n    window.addEventListener('keydown', handleKeyDown);\n    return () => window.removeEventListener('keydown', handleKeyDown);\n  }, [isOpen]);\n\n  return (\n    <div className=\"flex flex-col items-center gap-3\">\n      <button\n        onClick={() => setIsOpen(true)}\n        className=\"px-5 py-2.5 rounded-full bg-indigo-600 hover:bg-indigo-500 text-white font-medium text-xs shadow-lg shadow-indigo-600/25 transition-all cursor-pointer\"\n      >\n        Open Verification Dialog\n      </button>\n\n      <AnimatePresence>\n        {isOpen && (\n          <div \n            role=\"dialog\"\n            aria-modal=\"true\"\n            aria-label=\"Formal Gate Verification Modal\"\n            data-lenis-prevent=\"true\"\n            className=\"fixed inset-0 z-[70] flex items-center justify-center p-4\"\n          >\n            <motion.div\n              initial={{ opacity: 0 }}\n              animate={{ opacity: 1 }}\n              exit={{ opacity: 0 }}\n              onClick={() => setIsOpen(false)}\n              className=\"fixed inset-0 bg-black/75 backdrop-blur-md\"\n            />\n\n            <motion.div\n              initial={{ opacity: 0, scale: 0.95, y: 15 }}\n              animate={{ opacity: 1, scale: 1, y: 0 }}\n              exit={{ opacity: 0, scale: 0.95, y: 15 }}\n              transition={{ type: 'spring', damping: 25, stiffness: 300 }}\n              className=\"relative z-10 w-full max-w-md rounded-3xl border border-zinc-200 dark:border-white/15 bg-white dark:bg-zinc-950 p-6 shadow-2xl\"\n            >\n              <div className=\"flex items-center justify-between pb-4 border-b border-zinc-200 dark:border-white/10\">\n                <div className=\"flex items-center gap-2.5\">\n                  <div className=\"flex h-8 w-8 items-center justify-center rounded-xl bg-emerald-500/10 text-emerald-500 border border-emerald-500/20\">\n                    <ShieldCheck size={18} weight=\"bold\" />\n                  </div>\n                  <h4 className=\"text-sm font-bold text-zinc-900 dark:text-white font-mono\">Formal Gate Verification</h4>\n                </div>\n                <button\n                  onClick={() => setIsOpen(false)}\n                  className=\"text-zinc-400 hover:text-zinc-900 dark:hover:text-white p-1 rounded-full cursor-pointer\"\n                >\n                  <X size={16} />\n                </button>\n              </div>\n\n              <div className=\"py-4 text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed space-y-2\">\n                <p>All AST safety invariant proofs have converged with 100% formal safety certificates.</p>\n                <div className=\"p-3 rounded-xl bg-zinc-100 dark:bg-zinc-900 border border-zinc-200 dark:border-white/5 font-mono text-[11px] text-zinc-700 dark:text-zinc-300\">\n                  SHA-256: 4f89b1c72...92da4e\n                </div>\n              </div>\n\n              <div className=\"flex items-center justify-end gap-2 pt-3 border-t border-zinc-200 dark:border-white/10\">\n                <button\n                  onClick={() => setIsOpen(false)}\n                  className=\"px-4 py-2 rounded-xl text-xs font-mono text-zinc-600 dark:text-zinc-400 hover:bg-zinc-100 dark:hover:bg-white/5 cursor-pointer\"\n                >\n                  Dismiss\n                </button>\n                <button\n                  onClick={() => setIsOpen(false)}\n                  className=\"flex items-center gap-1.5 px-4 py-2 rounded-xl text-xs font-mono font-semibold bg-emerald-600 hover:bg-emerald-500 text-white shadow-md cursor-pointer\"\n                >\n                  <span>Authorize Emission</span>\n                  <ArrowRight size={13} weight=\"bold\" />\n                </button>\n              </div>\n            </motion.div>\n          </div>\n        )}\n      </AnimatePresence>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "sliding-drawer-sheet",
    "type": "registry:ui",
    "title": "Sliding Drawer Sheet",
    "description": "Right-side sliding drawer panel with grab handle, spring slide physics, and backdrop blur.",
    "category": "overlays",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/overlays/sliding-drawer-sheet/sliding-drawer-sheet.tsx",
        "type": "registry:ui",
        "target": "components/ui/sliding-drawer-sheet.tsx",
        "content": "import React, { useState, useEffect } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { X, Gear, Sliders, Check } from '@phosphor-icons/react';\n\nexport const SlidingDrawerSheet: React.FC = () => {\n  const [isOpen, setIsOpen] = useState(false);\n\n  useEffect(() => {\n    if (!isOpen) return;\n    const handleKeyDown = (e: KeyboardEvent) => {\n      if (e.key === 'Escape') setIsOpen(false);\n    };\n    window.addEventListener('keydown', handleKeyDown);\n    return () => window.removeEventListener('keydown', handleKeyDown);\n  }, [isOpen]);\n\n  return (\n    <div className=\"flex items-center justify-center\">\n      <button\n        onClick={() => setIsOpen(true)}\n        className=\"flex items-center gap-2 px-4 py-2 rounded-full border border-zinc-300 dark:border-white/15 bg-white dark:bg-zinc-900 text-xs font-mono text-zinc-900 dark:text-white shadow-sm hover:border-indigo-500 cursor-pointer\"\n      >\n        <Sliders size={14} />\n        <span>Open Runtime Drawer</span>\n      </button>\n\n      <AnimatePresence>\n        {isOpen && (\n          <div \n            role=\"dialog\"\n            aria-modal=\"true\"\n            aria-label=\"Runtime Drawer Inspector\"\n            data-lenis-prevent=\"true\"\n            className=\"fixed inset-0 z-[70] overflow-hidden\"\n          >\n            <motion.div\n              initial={{ opacity: 0 }}\n              animate={{ opacity: 1 }}\n              exit={{ opacity: 0 }}\n              onClick={() => setIsOpen(false)}\n              className=\"fixed inset-0 bg-black/60 backdrop-blur-xs\"\n            />\n\n            <motion.div\n              initial={{ x: '100%' }}\n              animate={{ x: 0 }}\n              exit={{ x: '100%' }}\n              transition={{ type: 'spring', damping: 26, stiffness: 260 }}\n              className=\"fixed inset-y-0 right-0 w-80 max-w-full border-l border-zinc-200 dark:border-white/15 bg-white dark:bg-zinc-950 p-6 shadow-2xl flex flex-col justify-between\"\n            >\n              <div>\n                <div className=\"flex items-center justify-between pb-4 border-b border-zinc-200 dark:border-white/10 mb-6\">\n                  <div className=\"flex items-center gap-2\">\n                    <Gear size={16} className=\"text-indigo-500\" />\n                    <h4 className=\"text-sm font-bold text-zinc-900 dark:text-white font-mono\">Drawer Inspector</h4>\n                  </div>\n                  <button\n                    onClick={() => setIsOpen(false)}\n                    className=\"p-1 rounded-full text-zinc-400 hover:text-zinc-900 dark:hover:text-white cursor-pointer\"\n                  >\n                    <X size={16} />\n                  </button>\n                </div>\n\n                <div className=\"space-y-4 text-xs font-mono\">\n                  <div className=\"p-3 rounded-2xl bg-zinc-100 dark:bg-zinc-900/60 border border-zinc-200 dark:border-white/5\">\n                    <span className=\"text-zinc-500 text-[10px] uppercase\">WASM ISOLATE STATUS</span>\n                    <p className=\"mt-1 font-semibold text-emerald-500 flex items-center gap-1\">\n                      <Check size={12} weight=\"bold\" /> Nominal (Sandboxed)\n                    </p>\n                  </div>\n\n                  <div className=\"p-3 rounded-2xl bg-zinc-100 dark:bg-zinc-900/60 border border-zinc-200 dark:border-white/5\">\n                    <span className=\"text-zinc-500 text-[10px] uppercase\">MEMORY ALLOCATION</span>\n                    <p className=\"mt-1 font-semibold text-zinc-900 dark:text-white\">64 MB / 512 MB Pool</p>\n                  </div>\n                </div>\n              </div>\n\n              <button\n                onClick={() => setIsOpen(false)}\n                className=\"w-full py-2.5 rounded-xl bg-zinc-900 dark:bg-white text-white dark:text-zinc-950 text-xs font-mono font-bold shadow-md cursor-pointer\"\n              >\n                Close Drawer\n              </button>\n            </motion.div>\n          </div>\n        )}\n      </AnimatePresence>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "tooltip-popover",
    "type": "registry:ui",
    "title": "Tooltip Popover",
    "description": "Physics-based hover and click tooltip with collision detection and spring scale popping animation.",
    "category": "overlays",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/overlays/tooltip-popover/tooltip-popover.tsx",
        "type": "registry:ui",
        "target": "components/ui/tooltip-popover.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\n\nexport const TooltipPopover: React.FC = () => {\n  const [hovered, setHovered] = useState<string | null>(null);\n\n  const items = [\n    { id: '1', label: 'Fast AST Resolver', tip: 'Sub-millisecond abstract syntax tree parsing.' },\n    { id: '2', label: 'Zero-Copy Ring', tip: 'Lock-free SharedArrayBuffer ring stream.' },\n    { id: '3', label: 'Formal Proofs', tip: 'Z3 SMT solver proving loop invariants.' },\n  ];\n\n  return (\n    <div className=\"flex flex-wrap items-center justify-center gap-4 py-8\">\n      {items.map((item) => (\n        <div\n          key={item.id}\n          className=\"relative inline-block\"\n          onMouseEnter={() => setHovered(item.id)}\n          onMouseLeave={() => setHovered(null)}\n        >\n          <button className=\"px-4 py-2 rounded-xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900 text-xs font-mono text-zinc-900 dark:text-white shadow-xs hover:border-indigo-500 transition-colors cursor-pointer\">\n            {item.label}\n          </button>\n\n          <AnimatePresence>\n            {hovered === item.id && (\n              <motion.div\n                initial={{ opacity: 0, y: 6, scale: 0.95 }}\n                animate={{ opacity: 1, y: 0, scale: 1 }}\n                exit={{ opacity: 0, y: 4, scale: 0.95 }}\n                transition={{ duration: 0.15 }}\n                className=\"absolute bottom-full left-1/2 -translate-x-1/2 mb-2 z-50 w-48 rounded-xl border border-zinc-200 dark:border-white/15 bg-zinc-950 p-2.5 text-center shadow-xl pointer-events-none\"\n              >\n                <p className=\"text-[11px] text-zinc-300 font-sans leading-tight\">{item.tip}</p>\n                <div className=\"absolute top-full left-1/2 -translate-x-1/2 -mt-px border-4 border-transparent border-t-zinc-950\" />\n              </motion.div>\n            )}\n          </AnimatePresence>\n        </div>\n      ))}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "animated-cta-block",
    "type": "registry:ui",
    "title": "High-Conversion Terminal CTA",
    "description": "Conversion-optimized terminal deployment CTA with instant command copy and status pulse.",
    "category": "sections",
    "dependencies": [
      "clsx",
      "tailwind-merge",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "sections",
      "cta",
      "conversion",
      "terminal"
    ],
    "files": [
      {
        "path": "registry/sections/animated-cta-block/animated-cta-block.tsx",
        "type": "registry:ui",
        "target": "components/ui/animated-cta-block.tsx",
        "content": "import React, { useState } from 'react'\nimport { ArrowUpRight, Copy, Check, Terminal } from '@phosphor-icons/react'\nimport { cn } from '@/lib/utils'\n\nexport interface AnimatedCtaBlockProps {\n  className?: string\n}\n\nexport const AnimatedCtaBlock: React.FC<AnimatedCtaBlockProps> = ({ className }) => {\n  const [copied, setCopied] = useState(false)\n  const cmd = 'npx cook init --runtime=enterprise'\n\n  const copy = () => {\n    navigator.clipboard.writeText(cmd)\n    setCopied(true)\n    setTimeout(() => setCopied(false), 2000)\n  }\n\n  return (\n    <div className={cn('w-full max-w-2xl rounded-[2.5rem] border border-white/15 bg-gradient-to-b from-zinc-900 to-zinc-950 p-8 text-center text-white shadow-2xl', className)}>\n      <div className=\"inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-1 font-mono text-[10px] uppercase tracking-widest text-emerald-400\">\n        <span>RUNTIME v2.4 DEPLOYMENT</span>\n      </div>\n\n      <h3 className=\"mt-4 text-2xl font-bold tracking-tight\">Deploy Deterministic Engineering</h3>\n      <p className=\"mt-2 text-xs text-zinc-400 max-w-md mx-auto\">\n        Integrate the COOK compiler into your existing GitHub Actions pipeline and automate verified pull requests.\n      </p>\n\n      <div className=\"mt-6 flex items-center justify-between gap-3 rounded-2xl border border-white/10 bg-black/80 px-4 py-2.5 font-mono text-xs max-w-md mx-auto\">\n        <div className=\"flex items-center gap-2 text-zinc-300 truncate\">\n          <span className=\"text-emerald-400 font-bold\">$</span>\n          <span className=\"truncate\">{cmd}</span>\n        </div>\n        <button\n          onClick={copy}\n          className=\"flex items-center gap-1.5 rounded-lg bg-zinc-800 px-2.5 py-1 text-xs text-zinc-200 hover:bg-zinc-700 transition-colors shrink-0\"\n        >\n          {copied ? <Check size={13} className=\"text-emerald-400\" /> : <Copy size={13} />}\n          <span>{copied ? 'Copied' : 'Copy'}</span>\n        </button>\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "faq-accordion-section",
    "type": "registry:ui",
    "title": "Full-Width Production FAQ Section",
    "description": "Full-page FAQ knowledge base section with category selector tabs, search bar, and animated accordion drawers.",
    "category": "sections",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/sections/faq-accordion-section/faq-accordion-section.tsx",
        "type": "registry:ui",
        "target": "components/ui/faq-accordion-section.tsx",
        "content": "import React, { useState } from 'react';\nimport { CaretDown, Question } from '@phosphor-icons/react';\n\nconst FAQS = [\n  { q: 'Is Cooki UI open source and free for commercial projects?', a: 'Yes, 100% MIT Licensed. You can freely use, modify, and redistribute components in personal or enterprise commercial apps.' },\n  { q: 'Do components require an external server runtime or database?', a: 'No. Cooki UI operates on a zero-backend architecture where components are bundled statically as raw TSX source code.' },\n  { q: 'Can I add these components using standard package managers?', a: 'You can install via shadcn CLI using npx shadcn@latest add https://www.cooki-ui.design/r/{slug}.json, or copy the TSX code directly.' },\n];\n\nexport const FaqAccordionSection: React.FC = () => {\n  const [openIdx, setOpenIdx] = useState<number | null>(0);\n\n  return (\n    <div className=\"w-full max-w-3xl mx-auto p-6 rounded-3xl bg-white dark:bg-zinc-900/80 border border-zinc-200 dark:border-white/10 shadow-xl font-sans\">\n      <div className=\"text-center mb-6\">\n        <div className=\"inline-flex items-center gap-1.5 px-3 py-1 rounded-full bg-indigo-500/10 text-indigo-600 dark:text-indigo-400 font-mono text-[11px] font-bold\">\n          <Question size={13} weight=\"bold\" />\n          <span>FREQUENTLY ASKED QUESTIONS</span>\n        </div>\n        <h3 className=\"text-2xl font-bold text-zinc-900 dark:text-white mt-2\">Everything You Need to Know</h3>\n      </div>\n\n      <div className=\"space-y-3\">\n        {FAQS.map((faq, idx) => {\n          const isOpen = openIdx === idx;\n          return (\n            <div key={idx} className=\"rounded-2xl border border-zinc-200 dark:border-white/10 bg-zinc-50 dark:bg-zinc-950/60 overflow-hidden\">\n              <button\n                onClick={() => setOpenIdx(isOpen ? null : idx)}\n                className=\"w-full p-4 text-left font-semibold text-xs sm:text-sm text-zinc-900 dark:text-zinc-100 flex items-center justify-between cursor-pointer\"\n              >\n                <span>{faq.q}</span>\n                <CaretDown size={14} className={`text-zinc-400 transition-transform ${isOpen ? 'rotate-180' : ''}`} />\n              </button>\n              {isOpen && (\n                <div className=\"px-4 pb-4 text-xs text-zinc-600 dark:text-zinc-400 leading-relaxed border-t border-zinc-200/50 dark:border-white/5 pt-3\">\n                  {faq.a}\n                </div>\n              )}\n            </div>\n          );\n        })}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "feature-bento-block",
    "type": "registry:ui",
    "title": "Technical Feature Bento Block",
    "description": "Asymmetric technical bento grid section with hardware isolation badges and metrics.",
    "category": "sections",
    "dependencies": [
      "clsx",
      "tailwind-merge",
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "sections",
      "bento",
      "features",
      "grid"
    ],
    "files": [
      {
        "path": "registry/sections/feature-bento-block/feature-bento-block.tsx",
        "type": "registry:ui",
        "target": "components/ui/feature-bento-block.tsx",
        "content": "import React from 'react'\nimport { ShieldCheck, Cpu, Database, Check } from '@phosphor-icons/react'\nimport { cn } from '@/lib/utils'\n\nexport interface FeatureBentoBlockProps {\n  className?: string\n}\n\nexport const FeatureBentoBlock: React.FC<FeatureBentoBlockProps> = ({ className }) => {\n  return (\n    <div className={cn('grid grid-cols-1 md:grid-cols-3 gap-4 w-full max-w-4xl text-zinc-900 dark:text-white font-sans', className)}>\n      <div className=\"md:col-span-2 rounded-3xl border border-white/10 bg-zinc-950 p-6 flex flex-col justify-between\">\n        <div className=\"flex items-center gap-3\">\n          <div className=\"flex h-10 w-10 items-center justify-center rounded-xl bg-zinc-100 dark:bg-white/5 border border-zinc-200 dark:border-white/10 text-zinc-900 dark:text-white\">\n            <Cpu size={20} weight=\"bold\" />\n          </div>\n          <div>\n            <h4 className=\"font-bold text-zinc-900 dark:text-white\">Hermetic WASM Isolate Sandbox</h4>\n            <span className=\"font-mono text-[10px] text-zinc-500\">RING-0 MEMORY CONFINEMENT</span>\n          </div>\n        </div>\n        <p className=\"mt-4 text-xs text-zinc-400 leading-relaxed\">\n          Executes every generated function in a fresh, bit-reproducible WebAssembly container. Pre-allocates heap limits and blocks network socket leaks.\n        </p>\n        <div className=\"mt-4 flex items-center justify-between pt-3 border-t border-white/5 font-mono text-[11px] text-zinc-500\">\n          <span>Memory: 64MB Fixed</span>\n          <span className=\"text-emerald-400\">Bytecode Verified</span>\n        </div>\n      </div>\n\n      <div className=\"rounded-3xl border border-white/10 bg-zinc-950 p-6 flex flex-col justify-between\">\n        <div className=\"flex h-10 w-10 items-center justify-center rounded-xl bg-white/5 border border-white/10 text-emerald-400\">\n          <ShieldCheck size={20} weight=\"bold\" />\n        </div>\n        <div>\n          <h4 className=\"mt-3 font-bold text-zinc-900 dark:text-white\">SMT Proofs</h4>\n          <p className=\"mt-1 text-xs text-zinc-400\">Mathematical invariant assertions powered by Z3.</p>\n        </div>\n        <div className=\"mt-4 pt-3 border-t border-white/5 font-mono text-[11px] text-emerald-400 flex items-center gap-1.5\">\n          <Check size={14} weight=\"bold\" />\n          <span>Zero Deadlocks</span>\n        </div>\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "hero-geometry-glow-section",
    "type": "registry:ui",
    "title": "Prism Geometry Hero Marketing Block",
    "description": "Conversion-focused landing page hero block featuring central glowing geometric wireframe, dual CTAs, and verified user avatars.",
    "category": "sections",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/sections/hero-geometry-glow-section/hero-geometry-glow-section.tsx",
        "type": "registry:ui",
        "target": "components/ui/hero-geometry-glow-section.tsx",
        "content": "import React from 'react';\nimport { ArrowRight, Lightning, Terminal } from '@phosphor-icons/react';\n\nexport const HeroGeometryGlowSection: React.FC = () => {\n  return (\n    <div className=\"w-full max-w-4xl mx-auto p-8 sm:p-12 rounded-3xl bg-zinc-950 text-white border border-white/10 shadow-2xl relative overflow-hidden text-center select-none\">\n      {/* Background Radial Glow */}\n      <div className=\"pointer-events-none absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-96 h-96 rounded-full bg-gradient-to-r from-indigo-500/20 to-cyan-500/20 blur-3xl\" />\n\n      <div className=\"relative z-10 flex flex-col items-center\">\n        <div className=\"inline-flex items-center gap-2 px-3 py-1 rounded-full bg-white/10 border border-white/15 text-[11px] font-mono text-cyan-300 mb-4\">\n          <Lightning size={13} weight=\"fill\" />\n          <span>BUILT FOR NEXT-GEN DEVELOPERS</span>\n        </div>\n\n        <h2 className=\"text-3xl sm:text-5xl font-black tracking-tight leading-tight\">\n          Ship Interfaces with <br />\n          <span className=\"bg-gradient-to-r from-indigo-400 via-cyan-300 to-emerald-400 bg-clip-text text-transparent\">\n            Autonomous Precision.\n          </span>\n        </h2>\n\n        <p className=\"mt-4 max-w-xl text-xs sm:text-sm text-zinc-400 leading-relaxed\">\n          105+ verified, source-first components ready for React 19, Next.js 15, and Vite. Install via zero-backend API endpoints in seconds.\n        </p>\n\n        <div className=\"mt-6 flex flex-wrap items-center justify-center gap-3\">\n          <button className=\"flex items-center gap-2 px-5 py-2.5 rounded-xl bg-white text-zinc-950 font-mono text-xs font-bold hover:bg-zinc-200 transition-colors shadow-lg cursor-pointer\">\n            <span>Explore All 105 Artifacts</span>\n            <ArrowRight size={13} weight=\"bold\" />\n          </button>\n          <button className=\"flex items-center gap-2 px-4 py-2.5 rounded-xl bg-white/10 text-white font-mono text-xs font-semibold hover:bg-white/15 border border-white/15 transition-colors cursor-pointer\">\n            <Terminal size={14} />\n            <span>npx cook-ui add</span>\n          </button>\n        </div>\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "holographic-pricing-table",
    "type": "registry:ui",
    "title": "Holographic Pricing Table",
    "description": "3-tier SaaS pricing table featuring animated holographic spotlight, monthly/annual billing toggle, and tier comparison.",
    "category": "sections",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/sections/holographic-pricing-table/holographic-pricing-table.tsx",
        "type": "registry:ui",
        "target": "components/ui/holographic-pricing-table.tsx",
        "content": "import React, { useState } from 'react';\nimport { Check } from '@phosphor-icons/react';\n\nexport const HolographicPricingTable: React.FC = () => {\n  const [annual, setAnnual] = useState(true);\n\n  const plans = [\n    {\n      name: 'Developer',\n      price: annual ? 0 : 0,\n      desc: 'Free for open source and personal components',\n      features: ['All 100+ Canonical Components', 'Zero Runtime Lock-in', 'Community Discord', 'Static Registry Access'],\n      highlight: false,\n    },\n    {\n      name: 'Pro Syndicate',\n      price: annual ? 19 : 24,\n      desc: 'For high-velocity engineers shipping web apps',\n      features: ['AI Agent MCP Server Access', '3D WebGL Shader Packages', 'Private Figma Tokens', 'Priority Source PRs'],\n      highlight: true,\n    },\n    {\n      name: 'Enterprise',\n      price: annual ? 99 : 129,\n      desc: 'Dedicated design systems for enterprise scale',\n      features: ['Custom Registry Subdomains', 'Design Token Audits', 'SLA Support Agreement', 'White-label Documentation'],\n      highlight: false,\n    },\n  ];\n\n  return (\n    <div className=\"w-full max-w-4xl p-6 rounded-3xl border border-zinc-200 dark:border-white/10 bg-white/60 dark:bg-zinc-950/60 backdrop-blur-xl\">\n      {/* Billing Switch */}\n      <div className=\"flex items-center justify-center gap-3 mb-8\">\n        <span className={`text-xs font-mono ${!annual ? 'font-bold text-zinc-900 dark:text-white' : 'text-zinc-500'}`}>Monthly</span>\n        <button\n          onClick={() => setAnnual(!annual)}\n          className=\"relative w-12 h-6 rounded-full bg-zinc-200 dark:bg-zinc-800 p-0.5 cursor-pointer\"\n        >\n          <div className={`w-5 h-5 rounded-full bg-indigo-600 transition-transform ${annual ? 'translate-x-6' : ''}`} />\n        </button>\n        <div className=\"flex items-center gap-1.5\">\n          <span className={`text-xs font-mono ${annual ? 'font-bold text-zinc-900 dark:text-white' : 'text-zinc-500'}`}>Annual</span>\n          <span className=\"text-[10px] font-mono text-emerald-600 dark:text-emerald-400 bg-emerald-500/10 px-2 py-0.5 rounded-full font-bold\">SAVE 20%</span>\n        </div>\n      </div>\n\n      {/* Plans Grid */}\n      <div className=\"grid grid-cols-1 md:grid-cols-3 gap-6\">\n        {plans.map((p) => (\n          <div\n            key={p.name}\n            className={`p-6 rounded-3xl border flex flex-col justify-between transition-all ${\n              p.highlight\n                ? 'border-indigo-500 bg-indigo-500/[0.04] shadow-xl relative'\n                : 'border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900/60'\n            }`}\n          >\n            {p.highlight && (\n              <span className=\"absolute -top-3 left-1/2 -translate-x-1/2 px-3 py-0.5 rounded-full bg-indigo-600 text-white font-mono text-[10px] font-bold\">\n                POPULAR\n              </span>\n            )}\n\n            <div>\n              <h4 className=\"text-sm font-bold text-zinc-900 dark:text-white font-mono\">{p.name}</h4>\n              <div className=\"mt-2 flex items-baseline gap-1\">\n                <span className=\"text-3xl font-black text-zinc-900 dark:text-white\">${p.price}</span>\n                <span className=\"text-xs text-zinc-500 font-mono\">/mo</span>\n              </div>\n              <p className=\"mt-2 text-xs text-zinc-500 leading-relaxed\">{p.desc}</p>\n\n              <div className=\"mt-6 space-y-2.5\">\n                {p.features.map((f) => (\n                  <div key={f} className=\"flex items-center gap-2 text-xs text-zinc-700 dark:text-zinc-300\">\n                    <Check size={13} className=\"text-emerald-500 shrink-0\" weight=\"bold\" />\n                    <span>{f}</span>\n                  </div>\n                ))}\n              </div>\n            </div>\n\n            <button className={`mt-8 w-full py-2.5 rounded-xl font-mono text-xs font-bold transition-all cursor-pointer ${\n              p.highlight\n                ? 'bg-indigo-600 hover:bg-indigo-500 text-white shadow-lg'\n                : 'bg-zinc-100 dark:bg-zinc-800 hover:bg-zinc-200 dark:hover:bg-zinc-700 text-zinc-900 dark:text-white'\n            }`}>\n              Select Plan\n            </button>\n          </div>\n        ))}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "interactive-terminal-block",
    "type": "registry:ui",
    "title": "Installation Terminal Block",
    "description": "Interactive CLI command runner terminal with execution simulation and tab controls.",
    "category": "sections",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "sections",
      "terminal",
      "cli",
      "installation"
    ],
    "files": [
      {
        "path": "registry/sections/interactive-terminal-block/interactive-terminal-block.tsx",
        "type": "registry:ui",
        "target": "components/ui/interactive-terminal-block.tsx",
        "content": "import React, { useState } from 'react'\nimport { Terminal, Copy, Check, Play, CheckCircle } from '@phosphor-icons/react'\nimport { cn } from '@/lib/utils'\n\nexport interface InteractiveTerminalBlockProps {\n  className?: string\n}\n\nexport const InteractiveTerminalBlock: React.FC<InteractiveTerminalBlockProps> = ({ className }) => {\n  const [copied, setCopied] = useState(false)\n  const [isRunning, setIsRunning] = useState(false)\n  const [outputLines, setOutputLines] = useState<string[]>([\n    'Initializing COOK Runtime v2.4...',\n    'Verified memory bounds in isolate #0',\n    'Compilation successful in 42ms.',\n  ])\n\n  const runCode = () => {\n    setIsRunning(true)\n    setTimeout(() => {\n      setOutputLines((prev) => [\n        ...prev,\n        `[${new Date().toLocaleTimeString()}] Emitted 14 verified WASM blocks.`,\n      ])\n      setIsRunning(false)\n    }, 600)\n  }\n\n  const copy = () => {\n    navigator.clipboard.writeText('cook synthesize --spec=cluster.spec')\n    setCopied(true)\n    setTimeout(() => setCopied(false), 2000)\n  }\n\n  return (\n    <div className={cn('w-full max-w-xl rounded-3xl border border-white/15 bg-black/90 p-5 font-mono text-xs text-white shadow-2xl', className)}>\n      <div className=\"flex items-center justify-between border-b border-white/10 pb-3\">\n        <div className=\"flex items-center gap-2\">\n          <span className=\"h-3 w-3 rounded-full bg-zinc-700\" />\n          <span className=\"h-3 w-3 rounded-full bg-zinc-700\" />\n          <span className=\"h-3 w-3 rounded-full bg-zinc-700\" />\n          <span className=\"ml-2 text-zinc-400\">cook-terminal</span>\n        </div>\n        <div className=\"flex items-center gap-3\">\n          <button onClick={copy} className=\"text-zinc-400 hover:text-white transition-colors\">\n            {copied ? <Check size={14} className=\"text-emerald-400\" /> : <Copy size={14} />}\n          </button>\n          <button\n            onClick={runCode}\n            disabled={isRunning}\n            className=\"flex items-center gap-1 rounded bg-emerald-500/20 px-2 py-0.5 text-emerald-400 hover:bg-emerald-500/30 transition-colors\"\n          >\n            <Play size={11} weight=\"fill\" />\n            <span>{isRunning ? 'Running...' : 'Run'}</span>\n          </button>\n        </div>\n      </div>\n\n      <div className=\"mt-4 space-y-1.5 text-zinc-300\">\n        <div className=\"flex gap-2 text-emerald-400\">\n          <span>$</span>\n          <span className=\"text-white\">cook synthesize --spec=cluster.spec</span>\n        </div>\n        {outputLines.map((line, idx) => (\n          <div key={idx} className=\"text-zinc-400 pl-4 border-l border-white/10\">\n            {line}\n          </div>\n        ))}\n      </div>\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "interactive-workflow-pipeline",
    "type": "registry:ui",
    "title": "Workflow Pipeline Diagram",
    "description": "Node-based workflow pipeline steps with glowing pulsing laser data packets connecting steps.",
    "category": "sections",
    "dependencies": [
      "framer-motion",
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/sections/interactive-workflow-pipeline/interactive-workflow-pipeline.tsx",
        "type": "registry:ui",
        "target": "components/ui/interactive-workflow-pipeline.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion } from 'framer-motion';\nimport { Cpu, Terminal, ShieldCheck, Check } from '@phosphor-icons/react';\n\nexport const InteractiveWorkflowPipeline: React.FC = () => {\n  const [activeStep, setActiveStep] = useState(1);\n\n  const steps = [\n    { id: 0, title: 'Extract Code', desc: 'Read TSX from static CDN', icon: <Terminal size={16} /> },\n    { id: 1, title: 'Lint & Audit', desc: 'Typecheck & isolate deps', icon: <Cpu size={16} /> },\n    { id: 2, title: 'Verify Signature', desc: 'Cryptographic hash pass', icon: <ShieldCheck size={16} /> },\n    { id: 3, title: 'Write to Disk', desc: 'Inject in components/ui/', icon: <Check size={16} /> },\n  ];\n\n  return (\n    <div className=\"w-full max-w-3xl p-6 rounded-3xl border border-zinc-200 dark:border-white/10 bg-white/70 dark:bg-zinc-950/70 backdrop-blur-xl\">\n      <div className=\"grid grid-cols-1 sm:grid-cols-4 gap-4 relative\">\n        {steps.map((st, i) => {\n          const isDone = i < activeStep;\n          const isCurrent = i === activeStep;\n\n          return (\n            <div\n              key={st.id}\n              onClick={() => setActiveStep(i)}\n              className={`p-4 rounded-2xl border transition-all cursor-pointer ${\n                isCurrent\n                  ? 'border-indigo-500 bg-indigo-500/10 shadow-lg scale-105'\n                  : isDone\n                  ? 'border-emerald-500/30 bg-emerald-500/5'\n                  : 'border-zinc-200 dark:border-white/10 bg-zinc-50 dark:bg-zinc-900/40'\n              }`}\n            >\n              <div className=\"flex items-center justify-between mb-2\">\n                <span className={`p-1.5 rounded-lg ${\n                  isCurrent ? 'bg-indigo-600 text-white' : isDone ? 'bg-emerald-500 text-white' : 'bg-zinc-200 dark:bg-zinc-800 text-zinc-500'\n                }`}>\n                  {st.icon}\n                </span>\n                <span className=\"font-mono text-[10px] text-zinc-400\">STEP 0{i + 1}</span>\n              </div>\n              <h4 className=\"text-xs font-bold text-zinc-900 dark:text-white font-mono\">{st.title}</h4>\n              <p className=\"mt-1 text-[11px] text-zinc-500 leading-tight\">{st.desc}</p>\n            </div>\n          );\n        })}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "pricing-comparison-block",
    "type": "registry:ui",
    "title": "Tiered SaaS Pricing Matrix",
    "description": "Production 3-tier SaaS pricing section with annual discount toggle, badges, and feature checklists.",
    "category": "sections",
    "dependencies": [
      "@phosphor-icons/react",
      "framer-motion"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "sections",
      "pricing",
      "saas",
      "tiers"
    ],
    "files": [
      {
        "path": "registry/sections/pricing-comparison-block/pricing-comparison-block.tsx",
        "type": "registry:ui",
        "target": "components/ui/pricing-comparison-block.tsx",
        "content": "import React, { useState } from 'react';\nimport { motion } from 'framer-motion';\nimport { Check, Lightning } from '@phosphor-icons/react';\n\nexport const PricingComparisonBlock: React.FC = () => {\n  const [isAnnual, setIsAnnual] = useState(true);\n\n  const plans = [\n    {\n      name: 'Developer',\n      desc: 'Everything you need to ship high-impact personal projects and side apps.',\n      price: isAnnual ? 19 : 24,\n      popular: false,\n      features: [\n        'Full access to all 40+ components',\n        'Direct copy & paste TSX code',\n        'Tailwind CSS v4 & Framer Motion',\n        'Community Discord access',\n        'Free lifetime patches',\n      ],\n      cta: 'Get Started',\n    },\n    {\n      name: 'Pro Studio',\n      desc: 'For ambitious engineers and agencies building client apps and startups.',\n      price: isAnnual ? 49 : 59,\n      popular: true,\n      features: [\n        'Everything in Developer',\n        'Full commercial unlimited license',\n        'Figma UI kit design files',\n        'Exclusive premium shader cards',\n        'Private GitHub repo access',\n        'Priority 1-on-1 support',\n      ],\n      cta: 'Claim Pro Studio',\n    },\n    {\n      name: 'Enterprise',\n      desc: 'Custom design system engineering and dedicated technical SLA support.',\n      price: isAnnual ? 149 : 179,\n      popular: false,\n      features: [\n        'Everything in Pro Studio',\n        'Custom component requests',\n        'Design tokens sync CLI',\n        'Private Slack channel',\n        'Dedicated SLA & custom invoicing',\n      ],\n      cta: 'Contact Sales',\n    },\n  ];\n\n  return (\n    <div className=\"w-full max-w-5xl mx-auto py-8 px-4 text-center\">\n      {/* Billing Switch */}\n      <div className=\"inline-flex items-center gap-3 p-1 rounded-full bg-zinc-900 border border-white/10 mb-10 shadow-lg\">\n        <button\n          onClick={() => setIsAnnual(false)}\n          className={`px-4 py-1.5 rounded-full text-xs font-medium transition-colors cursor-pointer ${\n            !isAnnual ? 'bg-indigo-600 text-white shadow' : 'text-zinc-400 hover:text-white'\n          }`}\n        >\n          Monthly billing\n        </button>\n        <button\n          onClick={() => setIsAnnual(true)}\n          className={`flex items-center gap-1.5 px-4 py-1.5 rounded-full text-xs font-medium transition-colors cursor-pointer ${\n            isAnnual ? 'bg-indigo-600 text-white shadow' : 'text-zinc-400 hover:text-white'\n          }`}\n        >\n          <span>Annual billing</span>\n          <span className=\"px-1.5 py-0.5 rounded text-[10px] font-bold bg-emerald-400/20 text-emerald-300\">\n            SAVE 20%\n          </span>\n        </button>\n      </div>\n\n      {/* Pricing Cards Grid */}\n      <div className=\"grid grid-cols-1 md:grid-cols-3 gap-6 text-left\">\n        {plans.map((p) => (\n          <div\n            key={p.name}\n            className={`relative rounded-3xl p-6 transition-all duration-300 flex flex-col justify-between ${\n              p.popular\n                ? 'bg-gradient-to-b from-indigo-950/60 to-zinc-950 border-2 border-indigo-500 shadow-2xl shadow-indigo-500/10 -translate-y-2'\n                : 'bg-zinc-950/70 border border-white/10 hover:border-white/20'\n            }`}\n          >\n            {p.popular && (\n              <div className=\"absolute -top-3 left-1/2 -translate-x-1/2 flex items-center gap-1 px-3 py-0.5 rounded-full text-[11px] font-mono font-bold uppercase tracking-wider bg-indigo-500 text-white shadow-md\">\n                <Lightning size={12} weight=\"fill\" /> MOST POPULAR\n              </div>\n            )}\n\n            <div>\n              <h4 className=\"text-lg font-semibold text-zinc-900 dark:text-white\">{p.name}</h4>\n              <p className=\"text-xs text-zinc-600 dark:text-zinc-400 mt-1 min-h-[36px]\">{p.desc}</p>\n\n              <div className=\"mt-6 flex items-baseline gap-1\">\n                <span className=\"text-4xl font-extrabold text-zinc-900 dark:text-white font-mono\">${p.price}</span>\n                <span className=\"text-xs text-zinc-600 dark:text-zinc-400\">/month</span>\n              </div>\n\n              <div className=\"mt-6 pt-6 border-t border-white/10 space-y-3\">\n                {p.features.map((feat) => (\n                  <div key={feat} className=\"flex items-start gap-2.5 text-xs text-zinc-300\">\n                    <Check size={16} weight=\"bold\" className=\"text-emerald-400 shrink-0 mt-0.5\" />\n                    <span>{feat}</span>\n                  </div>\n                ))}\n              </div>\n            </div>\n\n            <button\n              className={`mt-8 w-full py-2.5 rounded-xl font-medium text-xs tracking-wide transition-all cursor-pointer flex items-center justify-center gap-2 ${\n                p.popular\n                  ? 'bg-indigo-600 hover:bg-indigo-500 text-white shadow-lg shadow-indigo-600/30'\n                  : 'bg-white/10 hover:bg-white/15 text-white'\n              }`}\n            >\n              {p.popular && <Lightning size={14} weight=\"fill\" />}\n              {p.cta}\n            </button>\n          </div>\n        ))}\n      </div>\n    </div>\n  );\n};\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "stats-counter-strip-block",
    "type": "registry:ui",
    "title": "Enterprise Telemetry Stats Strip",
    "description": "Production 4-column metric showcase strip with animated numeric tickers, positive delta badges, and status labels.",
    "category": "sections",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/sections/stats-counter-strip-block/stats-counter-strip-block.tsx",
        "type": "registry:ui",
        "target": "components/ui/stats-counter-strip-block.tsx",
        "content": "import React from 'react';\nimport { TrendUp, Lightning, ShieldCheck, Globe } from '@phosphor-icons/react';\n\nconst STATS = [\n  { label: 'EDGE INVOCATIONS', val: '2.4B+', change: '+32.4%', icon: <Lightning size={16} className=\"text-amber-400\" /> },\n  { label: 'GLOBAL P99 LATENCY', val: '4.2ms', change: '-18.1%', icon: <TrendUp size={16} className=\"text-emerald-400\" /> },\n  { label: 'PROOF INTEGRITY', val: '100%', change: 'ZERO FAILS', icon: <ShieldCheck size={16} className=\"text-indigo-400\" /> },\n  { label: 'ACTIVE DEPLOYMENTS', val: '84,192', change: '+14.9%', icon: <Globe size={16} className=\"text-cyan-400\" /> },\n];\n\nexport const StatsCounterStripBlock: React.FC = () => {\n  return (\n    <div className=\"w-full max-w-4xl mx-auto grid grid-cols-2 lg:grid-cols-4 gap-4 p-4 rounded-3xl bg-white dark:bg-zinc-900/80 border border-zinc-200 dark:border-white/10 shadow-lg font-mono\">\n      {STATS.map((s) => (\n        <div key={s.label} className=\"p-4 rounded-2xl bg-zinc-50 dark:bg-zinc-950/60 border border-zinc-100 dark:border-white/5 flex flex-col justify-between\">\n          <div className=\"flex items-center justify-between text-zinc-400 mb-2\">\n            <span className=\"text-[10px] font-bold uppercase tracking-wider\">{s.label}</span>\n            {s.icon}\n          </div>\n          <div>\n            <div className=\"text-2xl font-black text-zinc-900 dark:text-white tracking-tight\">{s.val}</div>\n            <span className=\"text-[10px] font-bold text-emerald-500 mt-1 inline-block\">{s.change} vs LAST MO</span>\n          </div>\n        </div>\n      ))}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "terminal-diff-block",
    "type": "registry:ui",
    "title": "Terminal Diff Block",
    "description": "Ultra-crisp Git diff code viewer with split and unified view toggle, line addition/deletion badges, hunk headers, and clipboard copy.",
    "category": "sections",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "files": [
      {
        "path": "registry/sections/terminal-diff-block/terminal-diff-block.tsx",
        "type": "registry:ui",
        "target": "components/ui/terminal-diff-block.tsx",
        "content": "import React, { useState } from 'react';\nimport { \n  GitDiff, \n  GitCommit, \n  GitBranch, \n  Copy, \n  Check, \n  FileCode,\n  Rows,\n  Columns\n} from '@phosphor-icons/react';\n\nexport interface DiffLine {\n  type: 'add' | 'del' | 'same' | 'hunk';\n  oldNum?: number;\n  newNum?: number;\n  content: string;\n}\n\nconst SAMPLE_DIFF: DiffLine[] = [\n  { type: 'hunk', content: '@@ -14,11 +14,15 @@ export function useStreamPipeline(prompt: string) {' },\n  { type: 'same', oldNum: 14, newNum: 14, content: '  const [status, setStatus] = useState<Status>(\"idle\");' },\n  { type: 'del', oldNum: 15, content: '- const res = await fetch(\"/api/generate\", { method: \"POST\", body: prompt });' },\n  { type: 'del', oldNum: 16, content: '- const json = await res.json();' },\n  { type: 'del', oldNum: 17, content: '- return json.result.trim();' },\n  { type: 'add', newNum: 15, content: '+ const stream = await agentRuntime.dispatchStream({' },\n  { type: 'add', newNum: 16, content: '+   model: \"claude-3-7-sonnet\",' },\n  { type: 'add', newNum: 17, content: '+   context: { speculativeTokens: 128 },' },\n  { type: 'add', newNum: 18, content: '+   temperature: 0.2,' },\n  { type: 'add', newNum: 19, content: '+ });' },\n  { type: 'same', oldNum: 18, newNum: 20, content: '  ' },\n  { type: 'same', oldNum: 19, newNum: 21, content: '  for await (const chunk of stream) {' },\n  { type: 'same', oldNum: 20, newNum: 22, content: '    yield parseIncrementalToken(chunk);' },\n  { type: 'same', oldNum: 21, newNum: 23, content: '  }' },\n];\n\nexport interface TerminalDiffBlockProps {\n  filePath?: string;\n  branch?: string;\n  commitHash?: string;\n  initialMode?: 'split' | 'unified';\n  className?: string;\n}\n\nexport const TerminalDiffBlock: React.FC<TerminalDiffBlockProps> = ({\n  filePath = 'src/hooks/use-agent-stream.ts',\n  branch = 'main',\n  commitHash = 'c7e49f2',\n  initialMode = 'unified',\n  className = '',\n}) => {\n  const [mode, setMode] = useState<'split' | 'unified'>(initialMode);\n  const [copied, setCopied] = useState(false);\n\n  const rawDiffText = SAMPLE_DIFF.map((d) => d.content).join('\\n');\n\n  const handleCopy = () => {\n    navigator.clipboard.writeText(rawDiffText);\n    setCopied(true);\n    setTimeout(() => setCopied(false), 2000);\n  };\n\n  const additions = SAMPLE_DIFF.filter((l) => l.type === 'add').length;\n  const deletions = SAMPLE_DIFF.filter((l) => l.type === 'del').length;\n\n  return (\n    <div className={`w-full max-w-4xl mx-auto rounded-3xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-[#07080c] shadow-2xl overflow-hidden font-mono text-xs ${className}`}>\n      {/* Top Header Bar */}\n      <div className=\"flex flex-wrap items-center justify-between gap-3 border-b border-zinc-200/80 dark:border-white/10 px-5 py-3.5 bg-zinc-50 dark:bg-zinc-950/80\">\n        {/* Left: Dots & File metadata */}\n        <div className=\"flex items-center gap-3\">\n          <div className=\"flex items-center gap-1.5 mr-2\">\n            <span className=\"h-2.5 w-2.5 rounded-full bg-rose-500/80\" />\n            <span className=\"h-2.5 w-2.5 rounded-full bg-amber-500/80\" />\n            <span className=\"h-2.5 w-2.5 rounded-full bg-emerald-500/80\" />\n          </div>\n\n          <div className=\"flex items-center gap-2 text-zinc-900 dark:text-zinc-100 font-semibold truncate\">\n            <FileCode size={15} className=\"text-zinc-400 shrink-0\" />\n            <span className=\"truncate\">{filePath}</span>\n          </div>\n\n          <div className=\"hidden sm:flex items-center gap-1.5 text-[11px] text-zinc-500 dark:text-zinc-400\">\n            <span className=\"px-2 py-0.5 rounded-md bg-zinc-200/60 dark:bg-white/5 border border-zinc-300/60 dark:border-white/5 flex items-center gap-1\">\n              <GitBranch size={11} />\n              {branch}\n            </span>\n            <span className=\"px-2 py-0.5 rounded-md bg-zinc-200/60 dark:bg-white/5 border border-zinc-300/60 dark:border-white/5 flex items-center gap-1\">\n              <GitCommit size={11} />\n              {commitHash}\n            </span>\n          </div>\n        </div>\n\n        {/* Right: Stats, Mode switcher & Copy */}\n        <div className=\"flex items-center gap-3 ml-auto\">\n          {/* Changes badge */}\n          <div className=\"flex items-center gap-1.5 text-[11px] font-bold\">\n            <span className=\"text-emerald-500\">+{additions}</span>\n            <span className=\"text-rose-500\">-{deletions}</span>\n          </div>\n\n          {/* Mode Switcher */}\n          <div className=\"flex items-center rounded-xl bg-zinc-200/70 dark:bg-zinc-900 p-0.5 border border-zinc-300/60 dark:border-white/5\">\n            <button\n              onClick={() => setMode('unified')}\n              className={`flex items-center gap-1 px-2.5 py-1 rounded-lg text-[10px] uppercase font-bold transition-all cursor-pointer ${\n                mode === 'unified'\n                  ? 'bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white shadow-xs'\n                  : 'text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-300'\n              }`}\n              title=\"Unified view\"\n            >\n              <Rows size={12} weight=\"bold\" />\n              <span className=\"hidden sm:inline\">Unified</span>\n            </button>\n            <button\n              onClick={() => setMode('split')}\n              className={`flex items-center gap-1 px-2.5 py-1 rounded-lg text-[10px] uppercase font-bold transition-all cursor-pointer ${\n                mode === 'split'\n                  ? 'bg-white dark:bg-zinc-800 text-zinc-900 dark:text-white shadow-xs'\n                  : 'text-zinc-500 hover:text-zinc-900 dark:hover:text-zinc-300'\n              }`}\n              title=\"Split side-by-side view\"\n            >\n              <Columns size={12} weight=\"bold\" />\n              <span className=\"hidden sm:inline\">Split</span>\n            </button>\n          </div>\n\n          {/* Copy Patch */}\n          <button\n            onClick={handleCopy}\n            className=\"flex items-center gap-1 rounded-xl border border-zinc-200 dark:border-white/10 bg-white dark:bg-zinc-900 px-2.5 py-1 text-[11px] font-semibold text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-zinc-800 transition-colors cursor-pointer\"\n            title=\"Copy diff patch\"\n          >\n            {copied ? <Check size={12} className=\"text-emerald-500\" /> : <Copy size={12} />}\n            <span>{copied ? 'Copied' : 'Diff'}</span>\n          </button>\n        </div>\n      </div>\n\n      {/* Code Diff Body */}\n      <div className=\"overflow-x-auto overflow-y-visible text-[11.5px] leading-relaxed p-2 sm:p-3 bg-zinc-50/50 dark:bg-transparent\">\n        {mode === 'unified' ? (\n          <div className=\"space-y-[1px] min-w-[500px]\">\n            {SAMPLE_DIFF.map((line, i) => {\n              if (line.type === 'hunk') {\n                return (\n                  <div key={i} className=\"px-3 py-1 bg-indigo-500/10 text-indigo-500 dark:text-indigo-400 font-semibold rounded-md my-1 text-[11px]\">\n                    {line.content}\n                  </div>\n                );\n              }\n\n              const isAdd = line.type === 'add';\n              const isDel = line.type === 'del';\n\n              return (\n                <div\n                  key={i}\n                  className={`flex items-center px-2 py-0.5 rounded-md font-mono ${\n                    isAdd\n                      ? 'bg-emerald-500/10 text-emerald-700 dark:text-emerald-300'\n                      : isDel\n                      ? 'bg-rose-500/10 text-rose-700 dark:text-rose-300'\n                      : 'text-zinc-700 dark:text-zinc-300 hover:bg-zinc-100 dark:hover:bg-white/5'\n                  }`}\n                >\n                  {/* Old line number */}\n                  <span className=\"w-9 shrink-0 text-right pr-2 text-zinc-400 select-none\">\n                    {line.oldNum ?? ''}\n                  </span>\n                  {/* New line number */}\n                  <span className=\"w-9 shrink-0 text-right pr-3 text-zinc-400 select-none\">\n                    {line.newNum ?? ''}\n                  </span>\n                  {/* Sign */}\n                  <span className=\"w-4 shrink-0 font-bold select-none\">\n                    {isAdd ? '+' : isDel ? '-' : ' '}\n                  </span>\n                  {/* Content */}\n                  <span className=\"whitespace-pre flex-1 truncate\">{line.content.replace(/^[+-]\\s?/, '')}</span>\n                </div>\n              );\n            })}\n          </div>\n        ) : (\n          /* Split View Mode */\n          <div className=\"grid grid-cols-2 gap-2 min-w-[640px]\">\n            {/* Left Panel (Old / Removed) */}\n            <div className=\"rounded-xl border border-zinc-200 dark:border-white/5 bg-white dark:bg-zinc-950 p-2 space-y-1\">\n              <div className=\"text-[10px] font-bold text-rose-500 pb-1 border-b border-zinc-100 dark:border-white/5 uppercase\">\n                Original Revision\n              </div>\n              {SAMPLE_DIFF.filter((l) => l.type !== 'add').map((line, i) => (\n                <div\n                  key={i}\n                  className={`flex items-center px-2 py-0.5 rounded font-mono ${\n                    line.type === 'del'\n                      ? 'bg-rose-500/10 text-rose-700 dark:text-rose-300'\n                      : line.type === 'hunk'\n                      ? 'text-indigo-400 text-[10px]'\n                      : 'text-zinc-600 dark:text-zinc-400'\n                  }`}\n                >\n                  <span className=\"w-7 shrink-0 text-zinc-400 select-none text-[10px]\">\n                    {line.oldNum ?? ''}\n                  </span>\n                  <span className=\"whitespace-pre truncate\">{line.content}</span>\n                </div>\n              ))}\n            </div>\n\n            {/* Right Panel (New / Added) */}\n            <div className=\"rounded-xl border border-zinc-200 dark:border-white/5 bg-white dark:bg-zinc-950 p-2 space-y-1\">\n              <div className=\"text-[10px] font-bold text-emerald-500 pb-1 border-b border-zinc-100 dark:border-white/5 uppercase\">\n                Incoming Patch\n              </div>\n              {SAMPLE_DIFF.filter((l) => l.type !== 'del').map((line, i) => (\n                <div\n                  key={i}\n                  className={`flex items-center px-2 py-0.5 rounded font-mono ${\n                    line.type === 'add'\n                      ? 'bg-emerald-500/10 text-emerald-700 dark:text-emerald-300'\n                      : line.type === 'hunk'\n                      ? 'text-indigo-400 text-[10px]'\n                      : 'text-zinc-600 dark:text-zinc-400'\n                  }`}\n                >\n                  <span className=\"w-7 shrink-0 text-zinc-400 select-none text-[10px]\">\n                    {line.newNum ?? ''}\n                  </span>\n                  <span className=\"whitespace-pre truncate\">{line.content}</span>\n                </div>\n              ))}\n            </div>\n          </div>\n        )}\n      </div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "testimonial-marquee-block",
    "type": "registry:ui",
    "title": "Endless Social Proof Testimonials",
    "description": "Continuous dual-directional testimonial marquee with verified engineer reviews and star ratings.",
    "category": "sections",
    "dependencies": [
      "@phosphor-icons/react"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "sections",
      "testimonials",
      "marquee",
      "reviews"
    ],
    "files": [
      {
        "path": "registry/sections/testimonial-marquee-block/testimonial-marquee-block.tsx",
        "type": "registry:ui",
        "target": "components/ui/testimonial-marquee-block.tsx",
        "content": "import React from 'react';\nimport { Star } from '@phosphor-icons/react';\n\ninterface Review {\n  name: string;\n  role: string;\n  avatar: string;\n  quote: string;\n}\n\nconst REVIEWS: Review[] = [\n  {\n    name: 'Sarah Chen',\n    role: 'Staff Engineer @ Vercel',\n    avatar: 'https://images.unsplash.com/photo-1534528741775-53994a69daeb?w=100&h=100&fit=crop&crop=face',\n    quote: 'The animations feel as fluid as Apple hardware. Saved our engineering team 3 weeks of custom physics tuning.',\n  },\n  {\n    name: 'Alex Rivera',\n    role: 'Design Technologist @ Linear',\n    avatar: 'https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=100&h=100&fit=crop&crop=face',\n    quote: 'Best component library since Tailwind UI. The magnetic dock and shader backgrounds are simply breathtaking.',\n  },\n  {\n    name: 'Elena Rostova',\n    role: 'Founder @ Synapse AI',\n    avatar: 'https://images.unsplash.com/photo-1494790108377-be9c29b29330?w=100&h=100&fit=crop&crop=face',\n    quote: 'Every component is clean, unbloated, and copies directly into Next.js App Router without weird hydration issues.',\n  },\n  {\n    name: 'Marcus Vance',\n    role: 'Principal Architect @ Stripe',\n    avatar: 'https://images.unsplash.com/photo-1500648767791-00dcc994a43e?w=100&h=100&fit=crop&crop=face',\n    quote: 'The craftsmanship on micro-interactions and tactile springs sets the gold standard for modern developer tools.',\n  },\n];\n\nexport const TestimonialMarqueeBlock: React.FC = () => {\n  return (\n    <div className=\"relative w-full max-w-5xl mx-auto py-8 overflow-hidden\">\n      {/* Side Vignette Fades */}\n      <div className=\"absolute left-0 top-0 bottom-0 w-24 bg-gradient-to-r from-zinc-950 to-transparent z-10 pointer-events-none\" />\n      <div className=\"absolute right-0 top-0 bottom-0 w-24 bg-gradient-to-l from-zinc-950 to-transparent z-10 pointer-events-none\" />\n\n      {/* Marquee Row */}\n      <div className=\"flex gap-6 w-max animate-[marquee_30s_linear_infinite] hover:[animation-play-state:paused]\">\n        {[...REVIEWS, ...REVIEWS].map((item, idx) => (\n          <div\n            key={idx}\n            className=\"w-[320px] shrink-0 p-5 rounded-2xl bg-zinc-900/70 border border-white/10 backdrop-blur-md flex flex-col justify-between space-y-4 hover:border-indigo-500/40 transition-colors\"\n          >\n            <div className=\"space-y-2\">\n              <div className=\"flex gap-1 text-amber-400\">\n                {Array.from({ length: 5 }).map((_, i) => (\n                  <Star key={i} size={14} weight=\"fill\" />\n                ))}\n              </div>\n              <p className=\"text-xs text-zinc-700 dark:text-zinc-300 leading-relaxed italic\">\n                \"{item.quote}\"\n              </p>\n            </div>\n\n            <div className=\"flex items-center gap-3 pt-3 border-t border-white/5\">\n              <img\n                src={item.avatar}\n                alt={item.name}\n                className=\"w-9 h-9 rounded-full object-cover border border-white/10\"\n              />\n              <div>\n                <h5 className=\"text-xs font-semibold text-zinc-900 dark:text-white\">{item.name}</h5>\n                <p className=\"text-[10px] text-zinc-400\">{item.role}</p>\n              </div>\n            </div>\n          </div>\n        ))}\n      </div>\n    </div>\n  );\n};\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "blur-reveal",
    "type": "registry:ui",
    "title": "Atmospheric Gaussian Blur Reveal",
    "description": "Smooth transition from heavy Gaussian blur to crisp legibility.",
    "category": "text",
    "dependencies": [
      "framer-motion"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "text",
      "blur",
      "reveal",
      "fade"
    ],
    "files": [
      {
        "path": "registry/text/blur-reveal/blur-reveal.tsx",
        "type": "registry:ui",
        "target": "components/ui/blur-reveal.tsx",
        "content": "import React from 'react'\nimport { motion } from 'framer-motion'\nimport { cn } from '@/lib/utils'\n\nexport interface BlurRevealProps {\n  children?: React.ReactNode\n  delay?: number\n  duration?: number\n  className?: string\n}\n\nexport const BlurReveal: React.FC<BlurRevealProps> = ({\n  children = 'Hermetic Bit-Reproducible Kernel Verification',\n  delay = 0,\n  duration = 0.8,\n  className,\n}) => {\n  return (\n    <motion.div\n      initial={{ opacity: 0, filter: 'blur(12px)', y: 15 }}\n      whileInView={{ opacity: 1, filter: 'blur(0px)', y: 0 }}\n      viewport={{ once: false }}\n      transition={{\n        duration,\n        delay,\n        ease: [0.25, 0.46, 0.45, 0.94],\n      }}\n      className={cn('text-zinc-200', className)}\n    >\n      {children}\n    </motion.div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "glitch-cyber-text",
    "type": "registry:ui",
    "title": "Glitch Cyberpunk Text",
    "description": "Cinematic cyberpunk RGB chromatic aberration text effect with slice displacement and random glitch pulses.",
    "category": "text",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/text/glitch-cyber-text/glitch-cyber-text.tsx",
        "type": "registry:ui",
        "target": "components/ui/glitch-cyber-text.tsx",
        "content": "import React, { useState, useEffect } from 'react';\nimport { motion } from 'framer-motion';\n\nexport const GlitchCyberText: React.FC<{ text?: string }> = ({ text = \"CYBERPUNK_RUNTIME\" }) => {\n  const [glitching, setGlitching] = useState(false);\n\n  useEffect(() => {\n    const interval = setInterval(() => {\n      setGlitching(true);\n      setTimeout(() => setGlitching(false), 240);\n    }, 2800);\n    return () => clearInterval(interval);\n  }, []);\n\n  return (\n    <div className=\"relative inline-block font-mono font-black text-2xl sm:text-4xl tracking-widest uppercase select-none text-zinc-900 dark:text-white\">\n      {/* Base Text */}\n      <span className=\"relative z-10\">{text}</span>\n\n      {/* Cyan Slice */}\n      {glitching && (\n        <motion.span\n          initial={{ x: -2, y: 1 }}\n          animate={{ x: [2, -3, 1], y: [-1, 2, 0] }}\n          transition={{ duration: 0.2 }}\n          className=\"absolute inset-0 text-cyan-400 opacity-80 pointer-events-none mix-blend-screen -z-10\"\n        >\n          {text}\n        </motion.span>\n      )}\n\n      {/* Red Slice */}\n      {glitching && (\n        <motion.span\n          initial={{ x: 2, y: -1 }}\n          animate={{ x: [-2, 3, -1], y: [1, -2, 0] }}\n          transition={{ duration: 0.2 }}\n          className=\"absolute inset-0 text-rose-500 opacity-80 pointer-events-none mix-blend-screen -z-10\"\n        >\n          {text}\n        </motion.span>\n      )}\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "kinetic-text-marquee",
    "type": "registry:ui",
    "title": "Kinetic Text Marquee",
    "description": "Bidirectional variable velocity typography ticker with velocity skew effects and pause on hover.",
    "category": "text",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/text/kinetic-text-marquee/kinetic-text-marquee.tsx",
        "type": "registry:ui",
        "target": "components/ui/kinetic-text-marquee.tsx",
        "content": "import React from 'react';\nimport { motion } from 'framer-motion';\n\nexport const KineticTextMarquee: React.FC = () => {\n  const words = ['ZERO DEPENDENCY', '•', 'SOURCE FIRST', '•', '100% CANONICAL', '•', 'REACT 19 READY', '•', 'TAILWIND V4', '•'];\n\n  return (\n    <div className=\"w-full overflow-hidden py-4 border-y border-zinc-200 dark:border-white/10 bg-zinc-50 dark:bg-zinc-950/60 select-none\">\n      <motion.div\n        animate={{ x: [0, -600] }}\n        transition={{ repeat: Infinity, duration: 16, ease: 'linear' }}\n        className=\"flex whitespace-nowrap gap-4 font-mono text-xs font-black tracking-widest text-zinc-800 dark:text-zinc-200\"\n      >\n        {[...words, ...words, ...words, ...words].map((word, i) => (\n          <span\n            key={i}\n            className={word === '•' ? 'text-indigo-500' : 'hover:text-indigo-400 transition-colors'}\n          >\n            {word}\n          </span>\n        ))}\n      </motion.div>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "rolling-text-3d",
    "type": "registry:ui",
    "title": "Rolling Text 3D",
    "description": "Vertical 3D cylinder rotating headline ticker cycling through phrases with spring physics.",
    "category": "text",
    "dependencies": [
      "framer-motion"
    ],
    "files": [
      {
        "path": "registry/text/rolling-text-3d/rolling-text-3d.tsx",
        "type": "registry:ui",
        "target": "components/ui/rolling-text-3d.tsx",
        "content": "import React, { useState, useEffect } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\n\nconst WORDS = ['SYNTHESIZING', 'VERIFYING', 'OPTIMIZING', 'EMITTING'];\n\nexport const RollingText3D: React.FC = () => {\n  const [index, setIndex] = useState(0);\n\n  useEffect(() => {\n    const timer = setInterval(() => {\n      setIndex((prev) => (prev + 1) % WORDS.length);\n    }, 2200);\n    return () => clearInterval(timer);\n  }, []);\n\n  return (\n    <div className=\"flex flex-col items-center justify-center p-6 font-mono text-center\">\n      <span className=\"text-xs uppercase tracking-widest text-zinc-500 mb-2\">AUTONOMOUS RUNTIME</span>\n      <div className=\"h-12 overflow-hidden flex items-center justify-center\">\n        <AnimatePresence mode=\"wait\">\n          <motion.div\n            key={WORDS[index]}\n            initial={{ y: 35, opacity: 0, rotateX: -60 }}\n            animate={{ y: 0, opacity: 1, rotateX: 0 }}\n            exit={{ y: -35, opacity: 0, rotateX: 60 }}\n            transition={{ duration: 0.5, ease: [0.16, 1, 0.3, 1] }}\n            className=\"text-2xl sm:text-3xl font-extrabold tracking-tight bg-gradient-to-r from-indigo-500 via-violet-400 to-cyan-400 bg-clip-text text-transparent\"\n          >\n            {WORDS[index]}\n          </motion.div>\n        </AnimatePresence>\n      </div>\n    </div>\n  );\n};\n\nexport const RollingText3d = RollingText3D;\n\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "scramble-text",
    "type": "registry:ui",
    "title": "Scramble Text",
    "description": "Cyberpunk matrix character decryption animation on hover or trigger with glyph cyphers.",
    "category": "text",
    "dependencies": [],
    "files": [
      {
        "path": "registry/text/scramble-text/scramble-text.tsx",
        "type": "registry:ui",
        "target": "components/ui/scramble-text.tsx",
        "content": "import React, { useState } from 'react';\n\nconst CHARS = '!<>-_\\\\/[]{}—=+*^?#________';\n\nexport const ScrambleText: React.FC<{ text?: string }> = ({\n  text = 'DETERMINISTIC CODE EMISSION',\n}) => {\n  const [displayText, setDisplayText] = useState(text);\n\n  const scramble = () => {\n    let iteration = 0;\n    const interval = setInterval(() => {\n      setDisplayText(() =>\n        text\n          .split('')\n          .map((_, index) => {\n            if (index < iteration) return text[index];\n            return CHARS[Math.floor(Math.random() * CHARS.length)];\n          })\n          .join('')\n      );\n\n      if (iteration >= text.length) clearInterval(interval);\n      iteration += 1 / 2;\n    }, 30);\n  };\n\n  return (\n    <div\n      onMouseEnter={scramble}\n      className=\"flex flex-col items-center justify-center p-6 font-mono text-center cursor-pointer select-none\"\n    >\n      <span className=\"text-[10px] uppercase tracking-widest text-zinc-500 mb-2\">HOVER TO DECRYPT</span>\n      <h3 className=\"text-sm sm:text-base font-bold text-emerald-400 tracking-wider\">\n        {displayText}\n      </h3>\n    </div>\n  );\n};\n"
      }
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "shiny-text",
    "type": "registry:ui",
    "title": "Specular Shiny Text",
    "description": "Reflective specular light ray sweeping continuously across metallic typographic titles.",
    "category": "text",
    "dependencies": [],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "text",
      "shiny",
      "typography",
      "shimmer"
    ],
    "files": [
      {
        "path": "registry/text/shiny-text/shiny-text.tsx",
        "type": "registry:ui",
        "target": "components/ui/shiny-text.tsx",
        "content": "import React from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface ShinyTextProps {\n  text?: string\n  speed?: number\n  className?: string\n}\n\nexport const ShinyText: React.FC<ShinyTextProps> = ({\n  text = 'AUTONOMOUS REPRODUCIBILITY VERIFIED',\n  speed = 3,\n  className,\n}) => {\n  return (\n    <span\n      style={{\n        backgroundImage: 'linear-gradient(120deg, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 1) 50%, rgba(255, 255, 255, 0.2) 100%)',\n        backgroundSize: '200% 100%',\n        animation: `shinyShimmer ${speed}s linear infinite`,\n        WebkitBackgroundClip: 'text',\n        WebkitTextFillColor: 'transparent',\n      }}\n      className={cn('inline-block font-mono font-bold tracking-wider', className)}\n    >\n      {text}\n    </span>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "sliding-number",
    "type": "registry:ui",
    "title": "Sliding Number Counter",
    "description": "Smooth mechanical counter and odometer number animation powered by spring transforms.",
    "category": "text",
    "dependencies": [
      "motion",
      "react-use-measure"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "text",
      "counter",
      "odometer",
      "numbers"
    ],
    "files": [
      {
        "path": "registry/text/sliding-number/sliding-number.tsx",
        "type": "registry:ui",
        "target": "components/ui/sliding-number.tsx",
        "content": "'use client';\n\nimport * as React from 'react';\nimport {\n  useSpring,\n  useTransform,\n  motion,\n  useMotionValue,\n  type MotionValue,\n  type SpringOptions,\n  type HTMLMotionProps,\n} from 'motion/react';\nimport useMeasure from 'react-use-measure';\n\nimport {\n  useIsInView,\n  type UseIsInViewOptions,\n} from '@/hooks/use-is-in-view';\n\ntype SlidingNumberRollerProps = {\n  prevValue: number;\n  value: number;\n  place: number;\n  transition: SpringOptions;\n  delay?: number;\n};\n\nfunction SlidingNumberRoller({\n  prevValue,\n  value,\n  place,\n  transition,\n  delay = 0,\n}: SlidingNumberRollerProps) {\n  const startNumber = Math.floor(prevValue / place) % 10;\n  const targetNumber = Math.floor(value / place) % 10;\n  const animatedValue = useSpring(startNumber, transition);\n\n  React.useEffect(() => {\n    const timeoutId = setTimeout(() => {\n      animatedValue.set(targetNumber);\n    }, delay);\n    return () => clearTimeout(timeoutId);\n  }, [targetNumber, animatedValue, delay]);\n\n  const [measureRef, { height }] = useMeasure();\n\n  return (\n    <span\n      ref={measureRef}\n      data-slot=\"sliding-number-roller\"\n      style={{\n        position: 'relative',\n        display: 'inline-block',\n        width: '1ch',\n        overflowX: 'visible',\n        overflowY: 'clip',\n        lineHeight: 1,\n        fontVariantNumeric: 'tabular-nums',\n      }}\n    >\n      <span style={{ visibility: 'hidden' }}>0</span>\n      {Array.from({ length: 10 }, (_, i) => (\n        <SlidingNumberDisplay\n          key={i}\n          motionValue={animatedValue}\n          number={i}\n          height={height}\n          transition={transition}\n        />\n      ))}\n    </span>\n  );\n}\n\ntype SlidingNumberDisplayProps = {\n  motionValue: MotionValue<number>;\n  number: number;\n  height: number;\n  transition: SpringOptions;\n};\n\nfunction SlidingNumberDisplay({\n  motionValue,\n  number,\n  height,\n  transition,\n}: SlidingNumberDisplayProps) {\n  const y = useTransform(motionValue, (latest) => {\n    if (!height) return 0;\n    const currentNumber = latest % 10;\n    const offset = (10 + number - currentNumber) % 10;\n    let translateY = offset * height;\n    if (offset > 5) translateY -= 10 * height;\n    return translateY;\n  });\n\n  if (!height) {\n    return (\n      <span style={{ visibility: 'hidden', position: 'absolute' }}>\n        {number}\n      </span>\n    );\n  }\n\n  return (\n    <motion.span\n      data-slot=\"sliding-number-display\"\n      style={{\n        y,\n        position: 'absolute',\n        inset: 0,\n        display: 'flex',\n        alignItems: 'center',\n        justifyContent: 'center',\n      }}\n      transition={{ ...transition, type: 'spring' }}\n    >\n      {number}\n    </motion.span>\n  );\n}\n\ntype SlidingNumberProps = Omit<HTMLMotionProps<'span'>, 'children'> & {\n  number: number;\n  fromNumber?: number;\n  onNumberChange?: (number: number) => void;\n  padStart?: boolean;\n  decimalSeparator?: string;\n  decimalPlaces?: number;\n  thousandSeparator?: string;\n  transition?: SpringOptions;\n  delay?: number;\n  initiallyStable?: boolean;\n} & UseIsInViewOptions;\n\nfunction SlidingNumber({\n  ref,\n  number,\n  fromNumber,\n  onNumberChange,\n  inView = false,\n  inViewMargin = '0px',\n  inViewOnce = true,\n  padStart = false,\n  decimalSeparator = '.',\n  decimalPlaces = 0,\n  thousandSeparator,\n  transition = { stiffness: 200, damping: 20, mass: 0.4 },\n  delay = 0,\n  initiallyStable = false,\n  ...props\n}: SlidingNumberProps) {\n  const { ref: localRef, isInView } = useIsInView(\n    ref as React.Ref<HTMLElement>,\n    {\n      inView,\n      inViewOnce,\n      inViewMargin,\n    },\n  );\n\n  const initialNumeric = Math.abs(Number(number));\n  const prevNumberRef = React.useRef<number>(\n    initiallyStable ? initialNumeric : 0,\n  );\n\n  const hasAnimated = fromNumber !== undefined;\n\n  const motionVal = useMotionValue<number>(\n    initiallyStable ? initialNumeric : (fromNumber ?? 0),\n  );\n  const springVal = useSpring(motionVal, { stiffness: 90, damping: 50 });\n\n  const skippedInitialWhenStable = React.useRef(false);\n\n  React.useEffect(() => {\n    if (!hasAnimated) return;\n    if (initiallyStable && !skippedInitialWhenStable.current) {\n      skippedInitialWhenStable.current = true;\n      return;\n    }\n    const timeoutId = setTimeout(() => {\n      if (isInView) motionVal.set(number);\n    }, delay);\n    return () => clearTimeout(timeoutId);\n  }, [hasAnimated, initiallyStable, isInView, number, motionVal, delay]);\n\n  const [effectiveNumber, setEffectiveNumber] = React.useState<number>(\n    initiallyStable ? initialNumeric : 0,\n  );\n\n  React.useEffect(() => {\n    if (hasAnimated) {\n      const inferredDecimals =\n        typeof decimalPlaces === 'number' && decimalPlaces >= 0\n          ? decimalPlaces\n          : (() => {\n              const s = String(number);\n              const idx = s.indexOf('.');\n              return idx >= 0 ? s.length - idx - 1 : 0;\n            })();\n\n      const factor = Math.pow(10, inferredDecimals);\n\n      const unsubscribe = springVal.on('change', (latest: any) => {\n        const newValue =\n          inferredDecimals > 0\n            ? Math.round(latest * factor) / factor\n            : Math.round(latest);\n\n        if (effectiveNumber !== newValue) {\n          setEffectiveNumber(newValue);\n          onNumberChange?.(newValue);\n        }\n      });\n      return () => unsubscribe();\n    } else {\n      setEffectiveNumber(\n        initiallyStable ? initialNumeric : !isInView ? 0 : initialNumeric,\n      );\n    }\n  }, [\n    hasAnimated,\n    springVal,\n    isInView,\n    number,\n    decimalPlaces,\n    onNumberChange,\n    effectiveNumber,\n    initiallyStable,\n    initialNumeric,\n  ]);\n\n  const formatNumber = React.useCallback(\n    (num: number) =>\n      decimalPlaces != null ? num.toFixed(decimalPlaces) : num.toString(),\n    [decimalPlaces],\n  );\n\n  const numberStr = formatNumber(effectiveNumber);\n  const [newIntStrRaw, newDecStrRaw = ''] = numberStr.split('.');\n\n  const finalIntLength = padStart\n    ? Math.max(\n        Math.floor(Math.abs(number)).toString().length,\n        newIntStrRaw.length,\n      )\n    : newIntStrRaw.length;\n\n  const newIntStr = padStart\n    ? newIntStrRaw.padStart(finalIntLength, '0')\n    : newIntStrRaw;\n\n  const prevFormatted = formatNumber(prevNumberRef.current);\n  const [prevIntStrRaw = '', prevDecStrRaw = ''] = prevFormatted.split('.');\n  const prevIntStr = padStart\n    ? prevIntStrRaw.padStart(finalIntLength, '0')\n    : prevIntStrRaw;\n\n  const adjustedPrevInt = React.useMemo(() => {\n    return prevIntStr.length > finalIntLength\n      ? prevIntStr.slice(-finalIntLength)\n      : prevIntStr.padStart(finalIntLength, '0');\n  }, [prevIntStr, finalIntLength]);\n\n  const adjustedPrevDec = React.useMemo(() => {\n    if (!newDecStrRaw) return '';\n    return prevDecStrRaw.length > newDecStrRaw.length\n      ? prevDecStrRaw.slice(0, newDecStrRaw.length)\n      : prevDecStrRaw.padEnd(newDecStrRaw.length, '0');\n  }, [prevDecStrRaw, newDecStrRaw]);\n\n  React.useEffect(() => {\n    if (isInView || initiallyStable) {\n      prevNumberRef.current = effectiveNumber;\n    }\n  }, [effectiveNumber, isInView, initiallyStable]);\n\n  const intPlaces = React.useMemo(\n    () =>\n      Array.from({ length: finalIntLength }, (_, i) =>\n        Math.pow(10, finalIntLength - i - 1),\n      ),\n    [finalIntLength],\n  );\n  const decPlaces = React.useMemo(\n    () =>\n      newDecStrRaw\n        ? Array.from({ length: newDecStrRaw.length }, (_, i) =>\n            Math.pow(10, newDecStrRaw.length - i - 1),\n          )\n        : [],\n    [newDecStrRaw],\n  );\n\n  const newDecValue = newDecStrRaw ? parseInt(newDecStrRaw, 10) : 0;\n  const prevDecValue = adjustedPrevDec ? parseInt(adjustedPrevDec, 10) : 0;\n\n  return (\n    <motion.span\n      ref={localRef}\n      data-slot=\"sliding-number\"\n      style={{\n        display: 'inline-flex',\n        alignItems: 'center',\n      }}\n      {...props}\n    >\n      {isInView && Number(number) < 0 && (\n        <span style={{ marginRight: '0.25rem' }}>-</span>\n      )}\n\n      {intPlaces.map((place, idx) => {\n        const digitsToRight = intPlaces.length - idx - 1;\n        const isSeparatorPosition =\n          typeof thousandSeparator !== 'undefined' &&\n          digitsToRight > 0 &&\n          digitsToRight % 3 === 0;\n\n        return (\n          <React.Fragment key={`int-${place}`}>\n            <SlidingNumberRoller\n              prevValue={parseInt(adjustedPrevInt, 10)}\n              value={parseInt(newIntStr ?? '0', 10)}\n              place={place}\n              transition={transition}\n            />\n            {isSeparatorPosition && <span>{thousandSeparator}</span>}\n          </React.Fragment>\n        );\n      })}\n\n      {newDecStrRaw && (\n        <>\n          <span>{decimalSeparator}</span>\n          {decPlaces.map((place) => (\n            <SlidingNumberRoller\n              key={`dec-${place}`}\n              prevValue={prevDecValue}\n              value={newDecValue}\n              place={place}\n              transition={transition}\n              delay={delay}\n            />\n          ))}\n        </>\n      )}\n    </motion.span>\n  );\n}\n\nexport { SlidingNumber, type SlidingNumberProps };\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "split-text",
    "type": "registry:ui",
    "title": "Kinetic Split Character Spring",
    "description": "Character-level split typography animation with spring physics.",
    "category": "text",
    "dependencies": [
      "framer-motion"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "text",
      "split",
      "kinetic",
      "characters"
    ],
    "files": [
      {
        "path": "registry/text/split-text/split-text.tsx",
        "type": "registry:ui",
        "target": "components/ui/split-text.tsx",
        "content": "import React from 'react'\nimport { motion } from 'framer-motion'\nimport { cn } from '@/lib/utils'\n\nexport interface SplitTextProps {\n  text?: string\n  className?: string\n}\n\nexport const SplitText: React.FC<SplitTextProps> = ({\n  text = 'KINETIC INTENT COMPILER',\n  className,\n}) => {\n  const characters = text.split('')\n\n  return (\n    <div className={cn('inline-flex flex-wrap overflow-hidden font-mono tracking-widest', className)}>\n      {characters.map((char, index) => (\n        <motion.span\n          key={`${char}-${index}`}\n          className=\"inline-block cursor-default select-none text-zinc-100\"\n          whileHover={{\n            y: -6,\n            color: '#38bdf8',\n            scale: 1.15,\n            transition: { type: 'spring', stiffness: 350, damping: 10 },\n          }}\n          transition={{ duration: 0.15 }}\n        >\n          {char === ' ' ? '\\u00A0' : char}\n        </motion.span>\n      ))}\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "text-reveal",
    "type": "registry:ui",
    "title": "Masked Text Reveal",
    "description": "Cinematic word-by-word mask displacement reveal with customizable stagger delays.",
    "category": "text",
    "dependencies": [
      "framer-motion"
    ],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "text",
      "reveal",
      "mask",
      "typography"
    ],
    "files": [
      {
        "path": "registry/text/text-reveal/text-reveal.tsx",
        "type": "registry:ui",
        "target": "components/ui/text-reveal.tsx",
        "content": "import React from 'react'\nimport { motion } from 'framer-motion'\nimport { cn } from '@/lib/utils'\n\nexport interface TextRevealProps {\n  text?: string\n  delay?: number\n  className?: string\n}\n\nexport const TextReveal: React.FC<TextRevealProps> = ({\n  text = 'Deterministic Software Synthesis Engine',\n  delay = 0,\n  className,\n}) => {\n  const words = text.split(' ')\n\n  const container = {\n    hidden: { opacity: 0 },\n    visible: (i = 1) => ({\n      opacity: 1,\n      transition: { staggerChildren: 0.08, delayChildren: 0.04 * i + delay },\n    }),\n  }\n\n  const child = {\n    visible: {\n      opacity: 1,\n      y: 0,\n      filter: 'blur(0px)',\n      transition: {\n        type: 'spring' as const,\n        damping: 18,\n        stiffness: 120,\n      },\n    },\n    hidden: {\n      opacity: 0,\n      y: 20,\n      filter: 'blur(4px)',\n    },\n  }\n\n  return (\n    <motion.div\n      variants={container}\n      initial=\"hidden\"\n      whileInView=\"visible\"\n      viewport={{ once: false }}\n      className={cn('flex flex-wrap gap-x-2 gap-y-1 font-bold text-zinc-900 dark:text-white', className)}\n    >\n      {words.map((word, index) => (\n        <motion.span\n          key={`${word}-${index}`}\n          variants={child}\n          className=\"inline-block\"\n        >\n          {word}\n        </motion.span>\n      ))}\n    </motion.div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  },
  {
    "$schema": "https://www.cooki-ui.design/schema/registry-item.json",
    "name": "typing-text",
    "type": "registry:ui",
    "title": "Dynamic Typewriter Loop",
    "description": "Autonomous multi-phrase typewriter with natural typing rhythm and blinking cursor.",
    "category": "text",
    "dependencies": [],
    "devDependencies": [],
    "registryDependencies": [],
    "tags": [
      "text",
      "typewriter",
      "typing",
      "terminal"
    ],
    "files": [
      {
        "path": "registry/text/typing-text/typing-text.tsx",
        "type": "registry:ui",
        "target": "components/ui/typing-text.tsx",
        "content": "import React, { useState, useEffect } from 'react'\nimport { cn } from '@/lib/utils'\n\nexport interface TypingTextProps {\n  words?: string[]\n  speed?: number\n  delay?: number\n  className?: string\n}\n\nexport const TypingText: React.FC<TypingTextProps> = ({\n  words = ['Synthesizing Raft Cluster...', 'Proving Invariant Logic...', 'Emitting WASM Bytecode...', 'Zero Hallucinations.'],\n  speed = 80,\n  delay = 1500,\n  className,\n}) => {\n  const [wordIndex, setWordIndex] = useState(0)\n  const [currentText, setCurrentText] = useState('')\n  const [isDeleting, setIsDeleting] = useState(false)\n\n  useEffect(() => {\n    const fullWord = words[wordIndex % words.length]\n\n    const timeout = setTimeout(\n      () => {\n        if (!isDeleting) {\n          setCurrentText(fullWord.substring(0, currentText.length + 1))\n          if (currentText === fullWord) {\n            setTimeout(() => setIsDeleting(true), delay)\n          }\n        } else {\n          setCurrentText(fullWord.substring(0, currentText.length - 1))\n          if (currentText === '') {\n            setIsDeleting(false)\n            setWordIndex((prev) => prev + 1)\n          }\n        }\n      },\n      isDeleting ? speed / 2 : speed\n    )\n\n    return () => clearTimeout(timeout)\n  }, [currentText, isDeleting, wordIndex, words, speed, delay])\n\n  return (\n    <div className={cn('inline-flex items-center font-mono text-zinc-900 dark:text-white', className)}>\n      <span>{currentText}</span>\n      <span className=\"ml-1 inline-block h-4 w-2 bg-emerald-400 animate-[pulse_0.8s_ease-in-out_infinite]\" />\n    </div>\n  )\n}\n"
      }
    ],
    "tailwind": {
      "required": true
    },
    "framework": [
      "react",
      "nextjs",
      "vite"
    ]
  }
]