{"version":3,"file":"Modal.mjs","sourceRoot":"","sources":["../../../src/components/Modal/Modal.tsx"],"names":[],"mappings":";;;;;;AAAA,OAAO,QAAO,EAAE,UAAU,EAAE,cAAc;;AAC1C,OAAO,EAAE,YAAY,EAAE,kBAAkB;AAEzC,OAAO,EAAE,OAAO,EAAE,iCAA6B;AAE/C,OAAO,EAAE,YAAY,EAAE,4BAAwB;AAI/C,MAAM,CAAC,MAAM,KAAK,GAAG,UAAU,CAC7B,CACE,EACE,SAAS,EACT,MAAM,EACN,OAAO,EACP,QAAQ,EACR,sBAAsB,GAAG,IAAI,EAC7B,mBAAmB,GAAG,IAAI,EAC1B,SAAS,GAAG,IAAI,EAChB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,GAAG,KAAK,EACT,EACD,GAAG,EACH,EAAE;IACF,IAAI,CAAC,MAAM,EAAE;QACX,OAAO,IAAI,CAAC;KACb;IAED,MAAM,OAAO,GAAqB;QAChC,MAAM;QACN,OAAO;QACP,sBAAsB;QACtB,mBAAmB;QACnB,SAAS;QACT,eAAe;QACf,aAAa;QACb,YAAY;KACb,CAAC;IAEF,OAAO,YAAY,CACjB,oBAAC,YAAY,CAAC,QAAQ,IAAC,KAAK,EAAE,OAAO;QACnC,6BAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,KAAM,KAAK,IACpD,QAAQ,CACL,CACgB,EACxB,QAAQ,CAAC,IAAI,CACd,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC","sourcesContent":["import React, { forwardRef } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { twMerge } from '../../utils/tw-merge';\n\nimport { ModalContext } from './Modal.context';\nimport type { ModalContextType } from './Modal.context';\nimport type { ModalProps } from './Modal.types';\n\nexport const Modal = forwardRef<HTMLDivElement, ModalProps>(\n  (\n    {\n      className,\n      isOpen,\n      onClose,\n      children,\n      isClosedOnOutsideClick = true,\n      isClosedOnEscapeKey = true,\n      autoFocus = true,\n      initialFocusRef,\n      finalFocusRef,\n      restoreFocus,\n      ...props\n    },\n    ref,\n  ) => {\n    if (!isOpen) {\n      return null;\n    }\n\n    const context: ModalContextType = {\n      isOpen,\n      onClose,\n      isClosedOnOutsideClick,\n      isClosedOnEscapeKey,\n      autoFocus,\n      initialFocusRef,\n      finalFocusRef,\n      restoreFocus,\n    };\n\n    return createPortal(\n      <ModalContext.Provider value={context}>\n        <div ref={ref} className={twMerge(className)} {...props}>\n          {children}\n        </div>\n      </ModalContext.Provider>,\n      document.body,\n    );\n  },\n);\n\nModal.displayName = 'Modal';\n"]}