{"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,MAAM,KAAK,CAAC,GAAG,KAAK;EAEnF,MAAM,MAAM,mBAAmB;EAC/B,MAAM,YAAY,UAAU,QAAQ,IAAI,WAAW,oBAAC,QAAD,EAAO,SAAe,CAAA;EAEzE,IAAI,IAAI,SACN,OAAO,aAAa,WAAgC,MAAM;EAG5D,OAAO;CACT;CAEA,UAAU,cAAc,qBAAqB,WAAW,MAAM;CAE9D,OAAO;AACT;AAEA,MAAa,iBAAiB,qBAAqB,QAAQ;AAC3D,MAAa,iBAAiB,qBAAqB,QAAQ;AAC3D,MAAa,eAAe,qBAAqB,MAAM"}