{"version":3,"file":"useInterceptFocus.mjs","sources":["../../../packages/hooks/useInterceptFocus.ts"],"sourcesContent":["import { useCallback, useRef } from 'react'\n\nexport const useInterceptFocus = (): [\n  (node: HTMLElement) => void,\n  () => void,\n] => {\n  const savedElement = useRef<Element | null>(null)\n\n  const restoreFocus = useCallback(() => {\n    if (!(savedElement.current instanceof HTMLElement)) return\n    savedElement.current.focus()\n  }, [])\n\n  const interceptFocus = useCallback((node: HTMLElement) => {\n    savedElement.current = document.activeElement\n\n    const isFocusInside = node.contains(document.activeElement)\n    if (isFocusInside) return\n\n    node.focus()\n  }, [])\n\n  return [interceptFocus, restoreFocus]\n}\n"],"names":["useInterceptFocus","savedElement","useRef","restoreFocus","useCallback","current","HTMLElement","focus","interceptFocus","node","document","activeElement","isFocusInside","contains"],"mappings":";;AAEaA,MAAAA,iBAAiB,GAAGA,MAG5B;AACH,EAAA,MAAMC,YAAY,GAAGC,MAAM,CAAiB,IAAI,CAAC,CAAA;AAEjD,EAAA,MAAMC,YAAY,GAAGC,WAAW,CAAC,MAAM;AACrC,IAAA,IAAI,EAAEH,YAAY,CAACI,OAAO,YAAYC,WAAW,CAAC,EAAE,OAAA;AACpDL,IAAAA,YAAY,CAACI,OAAO,CAACE,KAAK,EAAE,CAAA;GAC7B,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMC,cAAc,GAAGJ,WAAW,CAAEK,IAAiB,IAAK;AACxDR,IAAAA,YAAY,CAACI,OAAO,GAAGK,QAAQ,CAACC,aAAa,CAAA;IAE7C,MAAMC,aAAa,GAAGH,IAAI,CAACI,QAAQ,CAACH,QAAQ,CAACC,aAAa,CAAC,CAAA;AAC3D,IAAA,IAAIC,aAAa,EAAE,OAAA;IAEnBH,IAAI,CAACF,KAAK,EAAE,CAAA;GACb,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,OAAO,CAACC,cAAc,EAAEL,YAAY,CAAC,CAAA;AACvC;;;;"}