{"version":3,"file":"DropzoneStatus.mjs","names":[],"sources":["../src/DropzoneStatus.tsx"],"sourcesContent":["import { cloneElement } from 'react';\nimport { isElement, useProps } from '@mantine/core';\nimport { upperFirst } from '@mantine/hooks';\nimport { DropzoneContextValue, useDropzoneContext } from './Dropzone.context';\n\nexport interface DropzoneStatusProps {\n  children: React.ReactNode;\n}\n\ntype DropzoneStatusComponent = React.FC<DropzoneStatusProps>;\n\nfunction createDropzoneStatus(status: keyof DropzoneContextValue) {\n  const Component: DropzoneStatusComponent = (props) => {\n    const { children, ...others } = useProps(`Dropzone${upperFirst(status)}`, {}, props);\n\n    const ctx = useDropzoneContext();\n    const _children = isElement(children) ? children : <span>{children}</span>;\n\n    if (ctx[status]) {\n      return cloneElement(_children as React.JSX.Element, others);\n    }\n\n    return null;\n  };\n\n  Component.displayName = `@mantine/dropzone/${upperFirst(status)}`;\n\n  return Component;\n}\n\nexport const DropzoneAccept = createDropzoneStatus('accept');\nexport const DropzoneReject = createDropzoneStatus('reject');\nexport const DropzoneIdle = createDropzoneStatus('idle');\n\nexport type DropzoneAcceptProps = DropzoneStatusProps;\nexport type DropzoneRejectProps = DropzoneStatusProps;\nexport type DropzoneIdleProps = DropzoneStatusProps;\n"],"mappings":";;;;;;;AAWA,SAAS,qBAAqB,QAAoC;CAChE,MAAM,aAAsC,UAAU;EACpD,MAAM,EAAE,UAAU,GAAG,WAAW,SAAS,WAAW,WAAW,OAAO,IAAI,EAAE,EAAE,MAAM;EAEpF,MAAM,MAAM,oBAAoB;EAChC,MAAM,YAAY,UAAU,SAAS,GAAG,WAAW,oBAAC,QAAD,EAAO,UAAgB,CAAA;AAE1E,MAAI,IAAI,QACN,QAAO,aAAa,WAAgC,OAAO;AAG7D,SAAO;;AAGT,WAAU,cAAc,qBAAqB,WAAW,OAAO;AAE/D,QAAO;;AAGT,MAAa,iBAAiB,qBAAqB,SAAS;AAC5D,MAAa,iBAAiB,qBAAqB,SAAS;AAC5D,MAAa,eAAe,qBAAqB,OAAO"}