{"version":3,"file":"use-modal.cjs","names":["useLockScroll"],"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}\n\nexport function useModal({\n  id,\n  transitionProps,\n  opened,\n  trapFocus,\n  closeOnEscape,\n  onClose,\n  returnFocus,\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 (event.key === 'Escape' && closeOnEscape && !event.isComposing && opened) {\n        const shouldTrigger =\n          (event.target as HTMLElement)?.getAttribute('data-mantine-stop-propagation') !== 'true';\n        shouldTrigger && onClose();\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":";;;;;;AAeA,SAAgB,SAAS,EACvB,IACA,iBACA,QACA,WACA,eACA,SACA,eACgB;CAChB,MAAM,OAAA,GAAA,eAAA,OAAY,GAAG;CACrB,MAAM,CAAC,cAAc,oBAAA,GAAA,MAAA,UAA4B,MAAM;CACvD,MAAM,CAAC,aAAa,mBAAA,GAAA,MAAA,UAA2B,MAAM;CAKrD,MAAM,mBAAmBA,wBAAAA,cAAc;EAAE;EAAQ,oBAF/C,OAAO,iBAAiB,aAAa,WAAW,iBAAiB,WAAW;EAET,CAAC;AAEtE,EAAA,GAAA,eAAA,gBACE,YACC,UAAU;AACT,MAAI,MAAM,QAAQ,YAAY,iBAAiB,CAAC,MAAM,eAAe,OAEhE,OAAM,QAAwB,aAAa,gCAAgC,KAAK,UAClE,SAAS;IAG9B,EAAE,SAAS,MAAM,CAClB;AAED,EAAA,GAAA,eAAA,gBAAe;EAAE;EAAQ,mBAAmB,aAAa;EAAa,CAAC;AAEvE,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACD"}