{"version":3,"file":"TokenFactoryAccessibility.BdAUBQL7.mjs","names":["useRef","useId","useState"],"sources":["https:/framerusercontent.com/modules/JgRY0av4m4KUGl2VmMpr/kHQMeR5FQmcTjDyvo1Pi/TokenFactoryAccessibility.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useEffect,useId,useRef,useState}from\"react\";// Adds keyboard and announcement behavior to the existing native FAQ question row.\nexport function withAccessibleQuestion(Component){return /*#__PURE__*/forwardRef(function AccessibleQuestion(props,forwardedRef){const buttonRef=useRef(null);const questionId=`tf-question-${useId().replace(/:/g,\"\")}`;const[expanded,setExpanded]=useState(false);const[focused,setFocused]=useState(false);useEffect(()=>{const button=buttonRef.current;const root=button?.parentElement;if(!button||!root)return;const update=()=>{const answer=root.querySelector('[data-framer-name=\"Answer Block\"]');setExpanded(Boolean(answer));if(answer){answer.id=`${questionId}-answer`;answer.setAttribute(\"role\",\"region\");answer.removeAttribute(\"aria-labelledby\");// Framer may replace question-row IDs during breakpoint hydration.\n// A direct label preserves the answer name across that replacement.\nanswer.setAttribute(\"aria-label\",button.getAttribute(\"aria-label\")||button.textContent?.trim()||\"FAQ answer\");}};update();const observer=new MutationObserver(update);observer.observe(root,{childList:true});return()=>observer.disconnect();},[questionId]);return /*#__PURE__*/_jsx(Component,{...props,ref:node=>{buttonRef.current=node;if(typeof forwardedRef===\"function\")forwardedRef(node);else if(forwardedRef)forwardedRef.current=node;},id:questionId,\"aria-expanded\":expanded,\"aria-controls\":expanded?`${questionId}-answer`:undefined,style:{...props.style,outline:\"none\",boxShadow:focused?\"inset 0 0 0 1px rgba(101, 205, 186, 0.55)\":\"none\",borderRadius:focused?\"4px\":props.style?.borderRadius},onFocus:event=>{setFocused(event.currentTarget.matches(\":focus-visible\"));props.onFocus?.(event);},onBlur:event=>{setFocused(false);props.onBlur?.(event);},onKeyDown:event=>{props.onKeyDown?.(event);if(event.key===\" \"){event.preventDefault();if(!event.repeat)props.onTap?.(event);}}});});}// Preserve native Framer events while supporting Space activation and visible focus.\nexport function withKeyboardTap(Component){return /*#__PURE__*/forwardRef(function KeyboardTap(props,ref){const[focused,setFocused]=useState(false);return /*#__PURE__*/_jsx(Component,{...props,ref:ref,style:{...props.style,outline:\"none\",boxShadow:focused?\"inset 0 0 0 1px rgba(101, 205, 186, 0.55)\":\"none\",borderRadius:focused?\"4px\":props.style?.borderRadius},onFocus:event=>{setFocused(event.currentTarget.matches(\":focus-visible\"));props.onFocus?.(event);},onBlur:event=>{setFocused(false);props.onBlur?.(event);},onKeyDown:event=>{props.onKeyDown?.(event);if(event.key===\" \"){event.preventDefault();if(!event.repeat)props.onTap?.(event);}}});});}// Keep keyboard navigation inside the existing native mobile menu overlay.\nexport function withMenuDialog(Component){return /*#__PURE__*/forwardRef(function MenuDialog(props,forwardedRef){const rootRef=useRef(null);const focusable=()=>Array.from(rootRef.current?.querySelectorAll('a[href], button:not([disabled]), [tabindex=\"0\"]')??[]).filter(node=>node.getClientRects().length>0);useEffect(()=>{const root=rootRef.current;if(!root)return;const returnTo=document.querySelector('button[aria-label=\"Open navigation menu\"]');let restoreKeyboardFocus=false;const trackKeyboardDismiss=event=>{if(event.key===\"Escape\")restoreKeyboardFocus=true;};const trackPointerDismiss=()=>{restoreKeyboardFocus=false;};document.addEventListener(\"keydown\",trackKeyboardDismiss,true);document.addEventListener(\"pointerdown\",trackPointerDismiss,true);// Native menu rows contain real links; skip their extra focusable wrappers.\nroot.querySelectorAll('[tabindex=\"0\"]').forEach(node=>{if(!node.matches(\"a, button\")&&node.querySelector(\"a[href]\"))node.tabIndex=-1;});const style=document.createElement(\"style\");style.textContent=\"#template-overlay a:focus-visible, #template-overlay button:focus-visible { outline: 2px solid #65cdba !important; outline-offset: 4px; }\";document.head.appendChild(style);focusable()[0]?.focus();return()=>{style.remove();document.removeEventListener(\"keydown\",trackKeyboardDismiss,true);document.removeEventListener(\"pointerdown\",trackPointerDismiss,true);if(returnTo?.isConnected){returnTo.focus({preventScroll:true});if(!restoreKeyboardFocus)returnTo.blur();}};},[]);return /*#__PURE__*/_jsx(Component,{...props,role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"Site navigation\",ref:node=>{rootRef.current=node;if(typeof forwardedRef===\"function\")forwardedRef(node);else if(forwardedRef)forwardedRef.current=node;},onKeyDown:event=>{props.onKeyDown?.(event);if(event.key!==\"Tab\")return;const nodes=focusable();const first=nodes[0];const last=nodes[nodes.length-1];if(event.shiftKey&&document.activeElement===first){event.preventDefault();last?.focus();}else if(!event.shiftKey&&document.activeElement===last){event.preventDefault();first?.focus();}}});});}// Connect Escape to the native desktop dropdown's existing close event.\nexport function withDismissibleDropdown(Component){return /*#__PURE__*/forwardRef(function DismissibleDropdown(props,forwardedRef){const rootRef=useRef(null);useEffect(()=>{const trigger=document.activeElement;if(trigger?.tagName===\"BUTTON\"&&trigger.textContent?.trim()===\"Company\"){rootRef.current?.querySelector(\"a[href]\")?.focus();}const dismiss=event=>{if(event.key!==\"Escape\")return;event.preventDefault();event.stopPropagation();props.onMouseLeave?.(event);if(trigger?.isConnected)trigger.focus();};document.addEventListener(\"keydown\",dismiss);return()=>document.removeEventListener(\"keydown\",dismiss);},[]);return /*#__PURE__*/_jsx(Component,{...props,ref:node=>{rootRef.current=node;if(typeof forwardedRef===\"function\")forwardedRef(node);else if(forwardedRef)forwardedRef.current=node;}});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withDismissibleDropdown\":{\"type\":\"reactHoc\",\"name\":\"withDismissibleDropdown\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withMenuDialog\":{\"type\":\"reactHoc\",\"name\":\"withMenuDialog\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withKeyboardTap\":{\"type\":\"reactHoc\",\"name\":\"withKeyboardTap\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAccessibleQuestion\":{\"type\":\"reactHoc\",\"name\":\"withAccessibleQuestion\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TokenFactoryAccessibility.map"],"mappings":"yIACA,SAAgB,EAAuB,EAAU,CAAC,OAAoB,EAAW,SAA4B,EAAM,EAAa,CAAC,IAAM,EAAUA,EAAO,IAAI,EAAQ,EAAW,eAAeC,EAAM,CAAC,CAAC,QAAQ,KAAK,EAAE,IAAS,CAAC,EAAS,GAAaC,EAAS,EAAK,EAAO,CAAC,EAAQ,GAAYA,EAAS,EAAK,EAE/C,OAFiD,MAAc,CAAC,IAAM,EAAO,EAAU,QAAc,EAAK,GAAQ,cAAc,GAAG,CAAC,GAAQ,CAAC,EAAK,OAAO,IAAM,MAAW,CAAC,IAAM,EAAO,EAAK,cAAc,mCAAmC,EAAE,EAAY,EAAQ,CAAO,EAAK,IAAQ,EAAO,GAAG,GAAG,EAAW,SAAS,EAAO,aAAa,OAAO,QAAQ,EAAE,EAAO,gBAAgB,iBAAiB,EAEpoB,EAAO,aAAa,aAAa,EAAO,aAAa,YAAY,GAAG,EAAO,aAAa,KAAK,GAAG,YAAY,EAAG,EAAE,EAAO,EAAE,IAAM,EAAS,IAAI,iBAAiB,CAAM,EAA0C,OAAxC,EAAS,QAAQ,EAAK,CAAC,UAAU,EAAI,CAAC,MAAY,EAAS,WAAW,CAAE,EAAE,CAAC,CAAU,CAAC,EAAsB,EAAK,EAAU,CAAC,GAAG,EAAM,IAAI,GAAM,CAAC,EAAU,QAAQ,EAAQ,OAAO,GAAe,WAAW,EAAa,CAAI,EAAU,IAAa,EAAa,QAAQ,EAAK,EAAE,GAAG,EAAW,gBAAgB,EAAS,gBAAgB,EAAS,GAAG,EAAW,SAAS,IAAA,GAAU,MAAM,CAAC,GAAG,EAAM,MAAM,QAAQ,OAAO,UAAU,EAAQ,4CAA4C,OAAO,aAAa,EAAQ,MAAM,EAAM,OAAO,YAAY,EAAE,QAAQ,GAAO,CAAC,EAAW,EAAM,cAAc,QAAQ,gBAAgB,CAAC,EAAE,EAAM,UAAU,CAAK,CAAE,EAAE,OAAO,GAAO,CAAC,EAAW,EAAK,EAAE,EAAM,SAAS,CAAK,CAAE,EAAE,UAAU,GAAO,CAAC,EAAM,YAAY,CAAK,EAAK,EAAM,MAAM,MAAK,EAAM,eAAe,EAAM,EAAM,QAAO,EAAM,QAAQ,CAAK,EAAG,CAAC,CAAC,CAAE,CAAC,CAAE,CACt9B,SAAgB,EAAgB,EAAU,CAAC,OAAoB,EAAW,SAAqB,EAAM,EAAI,CAAC,GAAK,CAAC,EAAQ,GAAYA,EAAS,EAAK,EAAE,OAAoB,EAAK,EAAU,CAAC,GAAG,EAAU,MAAI,MAAM,CAAC,GAAG,EAAM,MAAM,QAAQ,OAAO,UAAU,EAAQ,4CAA4C,OAAO,aAAa,EAAQ,MAAM,EAAM,OAAO,YAAY,EAAE,QAAQ,GAAO,CAAC,EAAW,EAAM,cAAc,QAAQ,gBAAgB,CAAC,EAAE,EAAM,UAAU,CAAK,CAAE,EAAE,OAAO,GAAO,CAAC,EAAW,EAAK,EAAE,EAAM,SAAS,CAAK,CAAE,EAAE,UAAU,GAAO,CAAC,EAAM,YAAY,CAAK,EAAK,EAAM,MAAM,MAAK,EAAM,eAAe,EAAM,EAAM,QAAO,EAAM,QAAQ,CAAK,EAAG,CAAC,CAAC,CAAE,CAAC,CAAE,CACzoB,SAAgB,EAAe,EAAU,CAAC,OAAoB,EAAW,SAAoB,EAAM,EAAa,CAAC,IAAM,EAAQF,EAAO,IAAI,EAAQ,MAAc,MAAM,KAAK,EAAQ,SAAS,iBAAiB,iDAAiD,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAM,EAAK,eAAe,CAAC,CAAC,OAAO,CAAC,EAC6W,OAD3W,MAAc,CAAC,IAAM,EAAK,EAAQ,QAAQ,GAAG,CAAC,EAAK,OAAO,IAAM,EAAS,SAAS,cAAc,2CAA2C,EAAM,EAAqB,GAAY,EAAqB,GAAO,CAAI,EAAM,MAAM,WAAS,EAAqB,GAAK,EAAQ,MAAwB,CAAC,EAAqB,EAAM,EAAE,SAAS,iBAAiB,UAAU,EAAqB,EAAI,EAAE,SAAS,iBAAiB,cAAc,EAAoB,EAAI,EAChvB,EAAK,iBAAiB,gBAAgB,CAAC,CAAC,QAAQ,GAAM,CAAI,CAAC,EAAK,QAAQ,WAAW,GAAG,EAAK,cAAc,SAAS,IAAE,EAAK,SAAS,GAAG,CAAC,EAAE,IAAM,EAAM,SAAS,cAAc,OAAO,EAAyN,MAAvN,GAAM,YAAY,4IAA4I,SAAS,KAAK,YAAY,CAAK,EAAE,EAAU,CAAC,CAAC,EAAE,EAAE,MAAM,MAAY,CAAC,EAAM,OAAO,EAAE,SAAS,oBAAoB,UAAU,EAAqB,EAAI,EAAE,SAAS,oBAAoB,cAAc,EAAoB,EAAI,EAAK,GAAU,cAAa,EAAS,MAAM,CAAC,cAAc,EAAI,CAAC,EAAM,GAAqB,EAAS,KAAK,EAAG,CAAE,EAAE,CAAC,CAAC,EAAsB,EAAK,EAAU,CAAC,GAAG,EAAM,KAAK,SAAS,aAAa,OAAO,aAAa,kBAAkB,IAAI,GAAM,CAAC,EAAQ,QAAQ,EAAQ,OAAO,GAAe,WAAW,EAAa,CAAI,EAAU,IAAa,EAAa,QAAQ,EAAK,EAAE,UAAU,GAAO,CAA0B,GAAzB,EAAM,YAAY,CAAK,EAAK,EAAM,MAAM,MAAM,OAAO,IAAM,EAAM,EAAU,EAAQ,EAAM,EAAM,GAAS,EAAK,EAAM,EAAM,OAAO,GAAM,EAAM,UAAU,SAAS,gBAAgB,GAAO,EAAM,eAAe,EAAE,GAAM,MAAM,GAAW,CAAC,EAAM,UAAU,SAAS,gBAAgB,IAAM,EAAM,eAAe,EAAE,GAAO,MAAM,EAAG,CAAC,CAAC,CAAE,CAAC,CAAE,CACvuC,SAAgB,EAAwB,EAAU,CAAC,OAAoB,EAAW,SAA6B,EAAM,EAAa,CAAC,IAAM,EAAQA,EAAO,IAAI,EAA0c,OAAxc,MAAc,CAAC,IAAM,EAAQ,SAAS,cAAiB,GAAS,UAAU,UAAU,EAAQ,aAAa,KAAK,IAAI,WAAW,EAAQ,SAAS,cAAc,SAAS,CAAC,EAAE,MAAM,EAAG,IAAM,EAAQ,GAAO,CAAI,EAAM,MAAM,WAAgB,EAAM,eAAe,EAAE,EAAM,gBAAgB,EAAE,EAAM,eAAe,CAAK,EAAK,GAAS,aAAY,EAAQ,MAAM,EAAE,EAA+C,OAA7C,SAAS,iBAAiB,UAAU,CAAO,MAAY,SAAS,oBAAoB,UAAU,CAAO,CAAE,EAAE,CAAC,CAAC,EAAsB,EAAK,EAAU,CAAC,GAAG,EAAM,IAAI,GAAM,CAAC,EAAQ,QAAQ,EAAQ,OAAO,GAAe,WAAW,EAAa,CAAI,EAAU,IAAa,EAAa,QAAQ,EAAK,CAAC,CAAC,CAAE,CAAC,CAAE,iBAPtvB,IAA8D"}