{"version":3,"file":"CopyButton.cjs","sources":["../../../src/components/CopyButton/CopyButton.tsx"],"sourcesContent":["import { useClipboard } from '@raikou/hooks';\nimport { useProps } from '../../core';\n\nexport interface CopyButtonProps {\n  /** Children callback, provides current status and copy function as an argument */\n  children: (payload: { copied: boolean; copy: () => void }) => React.ReactNode;\n\n  /** Value that will be copied to the clipboard when the button is clicked */\n  value: string;\n\n  /** Copied status timeout in ms, `1000` by default */\n  timeout?: number;\n}\n\nconst defaultProps: Partial<CopyButtonProps> = {\n  timeout: 1000,\n};\n\nexport function CopyButton(props: CopyButtonProps) {\n  const { children, timeout, value, ...others } = useProps('CopyButton', defaultProps, props);\n  const clipboard = useClipboard({ timeout });\n  const copy = () => clipboard.copy(value);\n  return <>{children({ copy, copied: clipboard.copied, ...others })}</>;\n}\n\nCopyButton.displayName = '@raikou/core/CopyButton';\n"],"names":["useProps","useClipboard","jsx","Fragment"],"mappings":";;;;;;;;;;;AAcA,MAAM,YAAyC,GAAA;AAAA,EAC7C,OAAS,EAAA;AACX,CAAA;AAEO,SAAS,WAAW,KAAwB,EAAA;AACjD,EAAM,MAAA,EAAE,QAAU,EAAA,OAAA,EAAS,KAAO,EAAA,GAAG,QAAW,GAAAA,iBAAA,CAAS,YAAc,EAAA,YAAA,EAAc,KAAK,CAAA;AAC1F,EAAA,MAAM,SAAY,GAAAC,kBAAA,CAAa,EAAE,OAAA,EAAS,CAAA;AAC1C,EAAA,MAAM,IAAO,GAAA,MAAM,SAAU,CAAA,IAAA,CAAK,KAAK,CAAA;AACvC,EAAO,uBAAAC,cAAA,CAAAC,mBAAA,EAAA,EAAG,QAAS,EAAA,QAAA,CAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,UAAU,MAAQ,EAAA,GAAG,MAAO,EAAC,CAAE,EAAA,CAAA;AACpE;AAEA,UAAA,CAAW,WAAc,GAAA,yBAAA;;;;"}