"use client"; import { useState, type ReactNode } from "react"; type CopyButtonProps = { value: string; label: string; copiedLabel?: string; className?: string; children: ReactNode; }; export default function CopyButton({ value, label, copiedLabel = "Copied!", className = "rounded-md p-1 text-neutral-600 transition-colors duration-200 hover:text-neutral-200 cursor-pointer", children, }: CopyButtonProps) { const [copied, setCopied] = useState(false); const handleCopy = async (e: React.MouseEvent) => { e.currentTarget.blur(); try { await navigator.clipboard.writeText(value); setCopied(true); window.setTimeout(() => setCopied(false), 1500); } catch { // clipboard unavailable — silently ignore } }; return ( {copied ? copiedLabel : label} ); }