{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "copy-button",
  "type": "registry:ui",
  "dependencies": [
    "lucide-react"
  ],
  "files": [
    {
      "path": "components/ui/copy-button.tsx",
      "content": "\"use client\";\n\nimport * as React from \"react\";\nimport { Check, Copy } from \"lucide-react\";\nimport { cn } from \"@/lib/utils\";\n\nexport function CopyButton({ code, className }: { code: string; className?: string }) {\n  const [hasCopied, setHasCopied] = React.useState(false);\n\n  React.useEffect(() => {\n    if (!hasCopied) return;\n    const timeout = setTimeout(() => {\n      setHasCopied(false);\n    }, 2000);\n    return () => clearTimeout(timeout);\n  }, [hasCopied]);\n\n  return (\n    <button\n      className={cn(\n        \"relative z-10 flex h-7 w-7 items-center justify-center rounded-md border bg-zinc-900 border-zinc-800 text-zinc-400 hover:bg-zinc-800 hover:text-zinc-50 transition-colors\",\n        className\n      )}\n      onClick={() => {\n        navigator.clipboard.writeText(code);\n        setHasCopied(true);\n      }}\n    >\n      <span className=\"sr-only\">Copy</span>\n      {hasCopied ? (\n        <Check className=\"h-3.5 w-3.5 text-emerald-400\" />\n      ) : (\n        <Copy className=\"h-3.5 w-3.5\" />\n      )}\n    </button>\n  );\n}\n",
      "type": "registry:ui",
      "target": "components/ui/copy-button.tsx"
    }
  ]
}