{"version":3,"file":"ConfirmModal.cjs","names":["useModals","Box","Group","Button"],"sources":["../src/ConfirmModal.tsx"],"sourcesContent":["import { Box, Button, ButtonProps, Group, GroupProps } from '@mantine/core';\nimport { ConfirmLabels } from './context';\nimport { useModals } from './use-modals/use-modals';\n\nexport interface ConfirmModalProps {\n  id?: string;\n  children?: React.ReactNode;\n  onCancel?: () => void;\n  onConfirm?: () => void;\n  closeOnConfirm?: boolean;\n  closeOnCancel?: boolean;\n  cancelProps?: ButtonProps & React.ComponentProps<'button'> & Record<`data-${string}`, any>;\n  confirmProps?: ButtonProps & React.ComponentProps<'button'> & Record<`data-${string}`, any>;\n  groupProps?: GroupProps;\n  labels?: ConfirmLabels;\n}\n\nexport function ConfirmModal({\n  id,\n  cancelProps,\n  confirmProps,\n  labels = { cancel: '', confirm: '' },\n  closeOnConfirm = true,\n  closeOnCancel = true,\n  groupProps,\n  onCancel,\n  onConfirm,\n  children,\n}: ConfirmModalProps) {\n  const { cancel: cancelLabel, confirm: confirmLabel } = labels;\n  const ctx = useModals();\n\n  const handleCancel = (event: React.MouseEvent<HTMLButtonElement>) => {\n    typeof cancelProps?.onClick === 'function' && cancelProps?.onClick(event);\n    typeof onCancel === 'function' && onCancel();\n    closeOnCancel && ctx.closeModal(id!);\n  };\n\n  const handleConfirm = (event: React.MouseEvent<HTMLButtonElement>) => {\n    typeof confirmProps?.onClick === 'function' && confirmProps?.onClick(event);\n    typeof onConfirm === 'function' && onConfirm();\n    closeOnConfirm && ctx.closeModal(id!);\n  };\n\n  return (\n    <>\n      {children && <Box mb=\"md\">{children}</Box>}\n\n      <Group mt={children ? 0 : 'md'} justify=\"flex-end\" {...groupProps}>\n        <Button variant=\"default\" {...cancelProps} onClick={handleCancel}>\n          {cancelProps?.children || cancelLabel}\n        </Button>\n\n        <Button {...confirmProps} onClick={handleConfirm}>\n          {confirmProps?.children || confirmLabel}\n        </Button>\n      </Group>\n    </>\n  );\n}\n"],"mappings":";;;;;AAiBA,SAAgB,aAAa,EAC3B,IACA,aACA,cACA,SAAS;CAAE,QAAQ;CAAI,SAAS;CAAI,EACpC,iBAAiB,MACjB,gBAAgB,MAChB,YACA,UACA,WACA,YACoB;CACpB,MAAM,EAAE,QAAQ,aAAa,SAAS,iBAAiB;CACvD,MAAM,MAAMA,mBAAAA,WAAW;CAEvB,MAAM,gBAAgB,UAA+C;AACnE,SAAO,aAAa,YAAY,cAAc,aAAa,QAAQ,MAAM;AACzE,SAAO,aAAa,cAAc,UAAU;AAC5C,mBAAiB,IAAI,WAAW,GAAI;;CAGtC,MAAM,iBAAiB,UAA+C;AACpE,SAAO,cAAc,YAAY,cAAc,cAAc,QAAQ,MAAM;AAC3E,SAAO,cAAc,cAAc,WAAW;AAC9C,oBAAkB,IAAI,WAAW,GAAI;;AAGvC,QACE,iBAAA,GAAA,kBAAA,MAAA,kBAAA,UAAA,EAAA,UAAA,CACG,YAAY,iBAAA,GAAA,kBAAA,KAACC,cAAAA,KAAD;EAAK,IAAG;EAAM;EAAe,CAAA,EAE1C,iBAAA,GAAA,kBAAA,MAACC,cAAAA,OAAD;EAAO,IAAI,WAAW,IAAI;EAAM,SAAQ;EAAW,GAAI;YAAvD,CACE,iBAAA,GAAA,kBAAA,KAACC,cAAAA,QAAD;GAAQ,SAAQ;GAAU,GAAI;GAAa,SAAS;aACjD,aAAa,YAAY;GACnB,CAAA,EAET,iBAAA,GAAA,kBAAA,KAACA,cAAAA,QAAD;GAAQ,GAAI;GAAc,SAAS;aAChC,cAAc,YAAY;GACpB,CAAA,CACH;IACP,EAAA,CAAA"}