{"version":3,"file":"CopyButton.mjs","names":[],"sources":["../../src/CopyButton/CopyButton.tsx"],"sourcesContent":["'use client';\n\nimport { Check, Copy } from 'lucide-react';\nimport { memo } from 'react';\n\nimport ActionIcon from '@/ActionIcon';\nimport { useCopied } from '@/hooks/useCopied';\nimport { copyToClipboard } from '@/utils/copyToClipboard';\n\nimport type { CopyButtonProps } from './type';\n\nconst CopyButton = memo<CopyButtonProps>(\n  ({ active, content, size, icon, glass = true, onClick, ...rest }) => {\n    const { copied, setCopied } = useCopied();\n    const Icon = icon || Copy;\n\n    return (\n      <ActionIcon\n        glass={glass}\n        size={size}\n        title={'Copy'}\n        {...rest}\n        active={active || copied}\n        icon={copied ? Check : Icon}\n        onClick={async (e) => {\n          const resolvedContent = typeof content === 'function' ? content() : content;\n          await copyToClipboard(resolvedContent);\n          setCopied();\n          onClick?.(e);\n        }}\n      />\n    );\n  },\n);\n\nCopyButton.displayName = 'CopyButton';\n\nexport default CopyButton;\n"],"mappings":";;;;;;;;AAWA,MAAM,aAAa,MAChB,EAAE,QAAQ,SAAS,MAAM,MAAM,QAAQ,MAAM,SAAS,GAAG,WAAW;CACnE,MAAM,EAAE,QAAQ,cAAc,WAAW;CACzC,MAAM,OAAO,QAAQ;AAErB,QACE,oBAAC,YAAD;EACS;EACD;EACN,OAAO;EACP,GAAI;EACJ,QAAQ,UAAU;EAClB,MAAM,SAAS,QAAQ;EACvB,SAAS,OAAO,MAAM;AAEpB,SAAM,gBADkB,OAAO,YAAY,aAAa,SAAS,GAAG,QAC9B;AACtC,cAAW;AACX,aAAU,EAAE;;EAEd,CAAA;EAGP;AAED,WAAW,cAAc"}