{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"copy-button","type":"registry:component","description":"Copy button component.","files":[{"path":"registry/components/copy-button.tsx","type":"registry:component","content":"\"use client\";\nimport { cn } from \"@/lib/utils\";\nimport type React from \"react\";\nimport { useCopyToClipboard } from \"@/hooks/use-copy-to-clipboard\";\nimport { Button } from \"@/components/ui/button\";\nimport {\n\tTooltip,\n\tTooltipContent,\n\tTooltipTrigger,\n} from \"@/components/ui/tooltip\";\n\ntype CopyButtonProps = React.ComponentProps<typeof Button> & {\n\ttext: string;\n\tdisableTooltip?: boolean;\n};\n\nexport function CopyButton({\n\tvariant = \"ghost\",\n\tsize = \"icon-sm\",\n\ttext,\n\tonClick,\n\tdisableTooltip = false,\n\t...props\n}: CopyButtonProps) {\n\tconst { copied, copy } = useCopyToClipboard();\n\n\tconst handleCopy = (event: React.MouseEvent<HTMLButtonElement>) => {\n\t\tcopy(text);\n\t\tonClick?.(event); // ✅ pass event to onClick\n\t};\n\n\treturn (\n\t\t<Tooltip>\n\t\t\t<TooltipTrigger asChild>\n\t\t\t\t<Button\n\t\t\t\t\taria-label={copied ? \"Copied\" : \"Copy to clipboard\"}\n\t\t\t\t\tdisabled={copied || props.disabled}\n\t\t\t\t\tonClick={handleCopy}\n\t\t\t\t\tsize={size}\n\t\t\t\t\tvariant={variant}\n\t\t\t\t\t{...props}\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"transition-all\",\n\t\t\t\t\t\t\tcopied ? \"scale-100 opacity-100\" : \"scale-0 opacity-0\"\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconPlaceholder\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tclassName=\"size-3.5 stroke-emerald-500\"\n\t\t\t\t\t\t\thugeicons=\"Tick01Icon\"\n\t\t\t\t\t\t\tlucide=\"CheckIcon\"\n\t\t\t\t\t\t\tphosphor=\"CheckIcon\"\n\t\t\t\t\t\t\tremixicon=\"RiCheckLine\"\n\t\t\t\t\t\t\ttabler=\"IconCheck\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"absolute transition-all\",\n\t\t\t\t\t\t\tcopied ? \"scale-0 opacity-0\" : \"scale-100 opacity-100\"\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<IconPlaceholder\n\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\tclassName=\"size-3.5\"\n\t\t\t\t\t\t\thugeicons=\"Copy01Icon\"\n\t\t\t\t\t\t\tlucide=\"CopyIcon\"\n\t\t\t\t\t\t\tphosphor=\"CopyIcon\"\n\t\t\t\t\t\t\tremixicon=\"RiFileCopyLine\"\n\t\t\t\t\t\t\ttabler=\"IconCopy\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</Button>\n\t\t\t</TooltipTrigger>\n\t\t\t{!disableTooltip && (\n\t\t\t\t<TooltipContent className=\"px-2 py-1 text-xs\">\n\t\t\t\t\tClick to copy\n\t\t\t\t</TooltipContent>\n\t\t\t)}\n\t\t</Tooltip>\n\t);\n}\n"}],"registryDependencies":["button","tooltip","@efferd/use-copy-to-clipboard"]}