{"version":3,"file":"ControlledMessageDialog.cjs","sources":["../../../../src/components/Dialog/ControlledMessageDialog/ControlledMessageDialog.tsx"],"sourcesContent":["'use client'\n\nimport { type ComponentProps, type FC, type ReactNode, useCallback } from 'react'\n\nimport { DialogContentInner } from '../DialogContentInner'\nimport { useDialogPortal } from '../useDialogPortal'\nimport { useObjectHeading } from '../useObjectHeading'\n\nimport {\n  MessageDialogContentInner,\n  type MessageDialogContentInnerProps,\n} from './MessageDialogContentInner'\n\nimport type { DialogProps } from '../types'\n\ntype ObjectHeadingType = Omit<MessageDialogContentInnerProps['heading'], 'id'>\ntype HeadingType = ReactNode | ObjectHeadingType\n\ntype AbstractProps = Omit<MessageDialogContentInnerProps, 'heading'> &\n  DialogProps & {\n    heading: HeadingType\n  }\ntype Props = AbstractProps & Omit<ComponentProps<'div'>, keyof AbstractProps>\n\nconst headingObjectConverter = (text: ReactNode) => ({\n  text,\n})\n\nexport const ControlledMessageDialog: FC<Props> = ({\n  heading: orgHeading,\n  children,\n  onClickClose,\n  onPressEscape = onClickClose,\n  contentBgColor,\n  contentPadding,\n  className,\n  portalParent,\n  decorators,\n  id,\n  isOpen,\n  ...rest\n}) => {\n  const { createPortal } = useDialogPortal(portalParent, id)\n  const handleClickClose = useCallback(() => {\n    if (isOpen) {\n      onClickClose()\n    }\n  }, [isOpen, onClickClose])\n  const heading = useObjectHeading<HeadingType, ObjectHeadingType>(\n    orgHeading,\n    headingObjectConverter,\n  )\n\n  return createPortal(\n    <DialogContentInner\n      {...rest}\n      isOpen={isOpen}\n      ariaLabelledby={heading.id}\n      className={className}\n      onPressEscape={onPressEscape}\n    >\n      <MessageDialogContentInner\n        heading={heading}\n        contentBgColor={contentBgColor}\n        contentPadding={contentPadding}\n        onClickClose={handleClickClose}\n        decorators={decorators}\n      >\n        {children}\n      </MessageDialogContentInner>\n    </DialogContentInner>,\n  )\n}\n"],"names":[],"mappings":";;;;;;;;;;AAwBA;;AAEC;AAEM;;AAeL;;AAEI;;AAEJ;;;AAyBF;;"}