{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/msg8q6T7ckRXmQtw0pvc/PETbW1SSkhc6Zc0L6zA4/FocusTrap.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";let previouslyFocused=null;export function useFocusTrap(visible){const ref=useRef(null);const startTrap=useRef(null);const endTrap=useRef(null);useEffect(()=>{if(!visible||!ref.current)return;previouslyFocused=document.activeElement;const container=ref.current;const focusable=Array.from(container.querySelectorAll(\"a[href], area[href], input:not([disabled]), select:not([disabled]), \"+\"textarea:not([disabled]), button:not([disabled]), iframe, object, embed, \"+'[tabindex]:not([tabindex=\"-1\"]), [contenteditable]')).filter(el=>!el.hasAttribute(\"disabled\")&&!el.getAttribute(\"aria-hidden\"));if(focusable.length>0){focusable[0].focus();}const handleTrapFocus=e=>{if(!container.contains(e.target)){// If focus somehow escaped, bring it back\nif(focusable.length>0)focusable[0].focus();}};document.addEventListener(\"focus\",handleTrapFocus,true);return()=>{document.removeEventListener(\"focus\",handleTrapFocus,true);if(previouslyFocused)previouslyFocused.focus();};},[visible]);return{ref,children:/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{ref:startTrap,tabIndex:0,style:{width:0,height:0,overflow:\"hidden\",position:\"absolute\"},onFocus:()=>{const focusable=ref.current?.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');if(focusable&&focusable.length>0){focusable[focusable.length-1].focus();}}}),/*#__PURE__*/_jsx(\"div\",{ref:ref}),/*#__PURE__*/_jsx(\"div\",{ref:endTrap,tabIndex:0,style:{width:0,height:0,overflow:\"hidden\",position:\"absolute\"},onFocus:()=>{const focusable=ref.current?.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])');if(focusable&&focusable.length>0){focusable[0].focus();}}})]})};}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withuseFocusTrap(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...useFocusTrap(props)});};}withuseFocusTrap.displayName=\"useFocusTrap\";\nexport const __FramerMetadata__ = {\"exports\":{\"withuseFocusTrap\":{\"type\":\"reactHoc\",\"name\":\"withuseFocusTrap\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"useFocusTrap\":{\"type\":\"override\",\"name\":\"useFocusTrap\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FocusTrap.map"],
  "mappings": "oFAAmH,IAAIA,EAAkB,KAAY,SAASC,EAAaC,EAAQ,CAAC,IAAMC,EAAIC,EAAO,IAAI,EAAQC,EAAUD,EAAO,IAAI,EAAQE,EAAQF,EAAO,IAAI,EAAE,OAAAG,EAAU,IAAI,CAAC,GAAG,CAACL,GAAS,CAACC,EAAI,QAAQ,OAAOH,EAAkB,SAAS,cAAc,IAAMQ,EAAUL,EAAI,QAAcM,EAAU,MAAM,KAAKD,EAAU,iBAAiB,iMAAuM,CAAC,EAAE,OAAOE,GAAI,CAACA,EAAG,aAAa,UAAU,GAAG,CAACA,EAAG,aAAa,aAAa,CAAC,EAAKD,EAAU,OAAO,GAAGA,EAAU,CAAC,EAAE,MAAM,EAAG,IAAME,EAAgBC,GAAG,CAAKJ,EAAU,SAASI,EAAE,MAAM,GACryBH,EAAU,OAAO,GAAEA,EAAU,CAAC,EAAE,MAAM,CAAG,EAAE,gBAAS,iBAAiB,QAAQE,EAAgB,EAAI,EAAQ,IAAI,CAAC,SAAS,oBAAoB,QAAQA,EAAgB,EAAI,EAAKX,GAAkBA,EAAkB,MAAM,CAAE,CAAE,EAAE,CAACE,CAAO,CAAC,EAAQ,CAAC,IAAAC,EAAI,SAAsBU,EAAMC,EAAU,CAAC,SAAS,CAAcC,EAAK,MAAM,CAAC,IAAIV,EAAU,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,SAAS,SAAS,UAAU,EAAE,QAAQ,IAAI,CAAC,IAAMI,EAAUN,EAAI,SAAS,iBAAiB,0EAA0E,EAAKM,GAAWA,EAAU,OAAO,GAAGA,EAAUA,EAAU,OAAO,CAAC,EAAE,MAAM,CAAG,CAAC,CAAC,EAAeM,EAAK,MAAM,CAAC,IAAIZ,CAAG,CAAC,EAAeY,EAAK,MAAM,CAAC,IAAIT,EAAQ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,SAAS,SAAS,SAAS,UAAU,EAAE,QAAQ,IAAI,CAAC,IAAMG,EAAUN,EAAI,SAAS,iBAAiB,0EAA0E,EAAKM,GAAWA,EAAU,OAAO,GAAGA,EAAU,CAAC,EAAE,MAAM,CAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,CAA2J,SAASO,EAAiBC,EAAE,CAAC,OAAOC,IAAQC,EAA+BC,CAAuC,EAASL,EAAKE,EAAE,CAAC,GAAGC,EAAM,GAAGjB,EAAaiB,CAAK,CAAC,CAAC,EAAI,CAACF,EAAiB,YAAY",
  "names": ["previouslyFocused", "useFocusTrap", "visible", "ref", "pe", "startTrap", "endTrap", "ue", "container", "focusable", "el", "handleTrapFocus", "e", "u", "l", "p", "withuseFocusTrap", "C", "props", "re", "DataObserverContext"]
}
