{"version":3,"file":"ClipboardWithIconText.cjs","sources":["../../../../src/components/Clipboard/ClipboardWithIconText.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, useState, type ComponentProps, type FC } from \"react\";\nimport { FaCheck, FaClipboardList } from \"react-icons/fa6\";\nimport { twMerge } from \"tailwind-merge\";\nimport { mergeDeep } from \"../../helpers/merge-deep\";\nimport { getTheme } from \"../../theme-store\";\nimport type { DeepPartial } from \"../../types\";\nimport { copyToClipboard } from \"./helpers\";\n\nexport interface FlowbiteClipboardWithIconTextTheme {\n  base: string;\n  label: {\n    base: string;\n    defaultText: string;\n    successText: string;\n  };\n  icon: {\n    defaultIcon: string;\n    successIcon: string;\n  };\n}\n\nexport interface ClipboardWithIconTextProps extends ComponentProps<\"button\"> {\n  valueToCopy: string;\n  label?: string;\n  icon?: FC<ComponentProps<\"svg\">>;\n  theme?: DeepPartial<FlowbiteClipboardWithIconTextTheme>;\n}\n\nexport const ClipboardWithIconText = forwardRef<HTMLButtonElement, ClipboardWithIconTextProps>(\n  ({ valueToCopy, icon: Icon = FaClipboardList, label = \"Copy\", theme: customTheme = {}, className, ...rest }, ref) => {\n    const [isJustCopied, setIsJustCopied] = useState(false);\n\n    const theme = mergeDeep(getTheme().clipboard.withIconText, customTheme);\n\n    return (\n      <button\n        className={twMerge(theme.base, className)}\n        onClick={() => copyToClipboard(valueToCopy, setIsJustCopied)}\n        {...rest}\n        ref={ref}\n      >\n        {isJustCopied ? (\n          <span className={theme.label.base}>\n            <FaCheck aria-hidden className={theme.icon.successIcon} />\n            <span className={theme.label.successText}>Copied</span>\n          </span>\n        ) : (\n          <span className={theme.label.base}>\n            <Icon aria-hidden className={theme.icon.defaultIcon} />\n            <span className={theme.label.defaultText}>{label}</span>\n          </span>\n        )}\n      </button>\n    );\n  },\n);\n"],"names":["forwardRef","FaClipboardList","useState","mergeDeep","getTheme","jsx","twMerge","copyToClipboard","jsxs","FaCheck"],"mappings":";;;;;;;;;;AASY,MAAC,qBAAqB,GAAGA,gBAAU;AAC/C,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAGC,mBAAe,EAAE,KAAK,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,EAAE,EAAE,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,KAAK;AACvH,IAAI,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC,CAAC;AAC5D,IAAI,MAAM,KAAK,GAAGC,mBAAS,CAACC,cAAQ,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;AAC5E,IAAI,uBAAuBC,cAAG;AAC9B,MAAM,QAAQ;AACd,MAAM;AACN,QAAQ,SAAS,EAAEC,qBAAO,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;AACjD,QAAQ,OAAO,EAAE,MAAMC,uBAAe,CAAC,WAAW,EAAE,eAAe,CAAC;AACpE,QAAQ,GAAG,IAAI;AACf,QAAQ,GAAG;AACX,QAAQ,QAAQ,EAAE,YAAY,mBAAmBC,eAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE;AACvG,0BAA0BH,cAAG,CAACI,WAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAClG,0BAA0BJ,cAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACjG,SAAS,EAAE,CAAC,mBAAmBG,eAAI,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE;AACrF,0BAA0BH,cAAG,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AAC/F,0BAA0BA,cAAG,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC9F,SAAS,EAAE,CAAC;AACZ,OAAO;AACP,KAAK,CAAC;AACN,GAAG;AACH;;;;"}