{"version":3,"file":"use-modal.mjs","names":["useId"],"sources":["../../../src/components/ModalBase/use-modal.ts"],"sourcesContent":["import { useState } from 'react';\nimport { useFocusReturn, useId, useWindowEvent } from '@mantine/hooks';\nimport { TransitionOverride } from '../Transition';\nimport { useLockScroll } from './use-lock-scroll';\n\ninterface UseModalInput {\n  opened: boolean;\n  onClose: () => void;\n  id: string | undefined;\n  transitionProps: TransitionOverride | undefined;\n  trapFocus: boolean | undefined;\n  closeOnEscape: boolean | undefined;\n  returnFocus: boolean | undefined;\n  handledEscapeEvents?: WeakSet<KeyboardEvent>;\n}\n\nexport function useModal({\n  id,\n  transitionProps,\n  opened,\n  trapFocus,\n  closeOnEscape,\n  onClose,\n  returnFocus,\n  handledEscapeEvents,\n}: UseModalInput) {\n  const _id = useId(id);\n  const [titleMounted, setTitleMounted] = useState(false);\n  const [bodyMounted, setBodyMounted] = useState(false);\n\n  const transitionDuration =\n    typeof transitionProps?.duration === 'number' ? transitionProps?.duration : 200;\n\n  const shouldLockScroll = useLockScroll({ opened, transitionDuration });\n\n  useWindowEvent(\n    'keydown',\n    (event) => {\n      if (\n        event.key === 'Escape' &&\n        closeOnEscape &&\n        !event.isComposing &&\n        opened &&\n        !handledEscapeEvents?.has(event)\n      ) {\n        const shouldTrigger =\n          (event.target as HTMLElement)?.getAttribute('data-mantine-stop-propagation') !== 'true';\n        if (shouldTrigger) {\n          handledEscapeEvents?.add(event);\n          onClose();\n        }\n      }\n    },\n    { capture: true }\n  );\n\n  useFocusReturn({ opened, shouldReturnFocus: trapFocus && returnFocus });\n\n  return {\n    _id,\n    titleMounted,\n    bodyMounted,\n    shouldLockScroll,\n    setTitleMounted,\n    setBodyMounted,\n  };\n}\n"],"mappings":";;;;;AAgBA,SAAgB,SAAS,EACvB,IACA,iBACA,QACA,WACA,eACA,SACA,aACA,uBACgB;CAChB,MAAM,MAAMA,QAAM,EAAE;CACpB,MAAM,CAAC,cAAc,mBAAmB,SAAS,KAAK;CACtD,MAAM,CAAC,aAAa,kBAAkB,SAAS,KAAK;CAEpD,MAAM,qBACJ,OAAO,iBAAiB,aAAa,WAAW,iBAAiB,WAAW;CAE9E,MAAM,mBAAmB,cAAc;EAAE;EAAQ;CAAmB,CAAC;CAErE,eACE,YACC,UAAU;EACT,IACE,MAAM,QAAQ,YACd,iBACA,CAAC,MAAM,eACP,UACA,CAAC,qBAAqB,IAAI,KAAK,GAG5B;OAAA,MAAM,QAAwB,aAAa,+BAA+B,MAAM,QAChE;IACjB,qBAAqB,IAAI,KAAK;IAC9B,QAAQ;GACV;;CAEJ,GACA,EAAE,SAAS,KAAK,CAClB;CAEA,eAAe;EAAE;EAAQ,mBAAmB,aAAa;CAAY,CAAC;CAEtE,OAAO;EACL;EACA;EACA;EACA;EACA;EACA;CACF;AACF"}