@webability/core 1.17.2 → 1.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dom.cjs CHANGED
@@ -453,7 +453,7 @@ Omit "fix" for passes.`;function qM(f){let d=f.items.map(({screenshot:b,...g})=>
453
453
  Conformance level: ${f.level}
454
454
 
455
455
  Findings:
456
- ${JSON.stringify(d,null,1)}`}function BM(f,d={}){let b=f.vision&&f.items.some(D=>D.screenshot),g=b?d.visionModel||CM:d.textModel||Sg,m=[{type:"text",text:qM(f)}];if(b)for(let D of f.items)D.screenshot&&(m.push({type:"text",text:`Crop for ${D.id}:`}),m.push({type:"image_url",image_url:{url:`data:image/png;base64,${D.screenshot}`}}));return {model:g,temperature:0,max_tokens:4096,...g===Sg&&d.disableTextModelReasoning?{reasoning:{enabled:false}}:{},messages:[{role:"system",content:NM},{role:"user",content:m}]}}function HM(f){let d=(f.baseUrl||EM).replace(/\/+$/,""),b=false;try{let g=new URL(d).hostname;b=g==="openrouter.ai"||g.endsWith(".openrouter.ai");}catch{}return async(g,m)=>{let D=await fetch(`${d}/chat/completions`,{method:"POST",signal:m,headers:{"Content-Type":"application/json",Authorization:`Bearer ${f.apiKey}`,"HTTP-Referer":"https://webability.io","X-Title":"WebAbility scanner judge"},body:JSON.stringify(BM(g,{visionModel:f.visionModel,textModel:f.textModel,disableTextModelReasoning:b}))});if(!D.ok)throw new Zn(`judge model HTTP ${D.status}`);let A=(await D.json()).choices?.[0]?.message?.content;if(typeof A=="string")return A;if(Array.isArray(A))return A.map(M=>typeof M?.text=="string"?M.text:"").join("");throw new Error("judge model returned no content")}}function VM(f){let d=f.apiUrl.replace(/\/+$/,"");return async(b,g)=>{let m=await fetch(`${d}/api/judge-incomplete`,{method:"POST",signal:g,redirect:"manual",headers:{"Content-Type":"application/json",...f.token?{Authorization:`Bearer ${f.token}`}:{},...f.internalSecret?{"x-mcp-internal":f.internalSecret}:{}},body:JSON.stringify(b)});if(m.status>=300&&m.status<400)throw new Zn(`judge endpoint redirected (HTTP ${m.status}); not followed`);if(!m.ok)throw new Zn(`judge endpoint HTTP ${m.status}`);return m.json()}}function jM(f){return f.transport?f.transport:f.apiKey?HM({apiKey:f.apiKey,baseUrl:f.baseUrl,visionModel:f.visionModel,textModel:f.textModel}):f.apiUrl?VM({apiUrl:f.apiUrl,token:f.apiToken,internalSecret:f.internalSecret}):null}function $M(f){return f.maxCropChars??(!f.transport&&!f.apiKey&&f.apiUrl?_M:void 0)}async function Lg(f,d,b){let g={promoted:[],judged:[]},m=jM(b);if(d.length===0)return g;let D=b.level??"AA",F=b.timeoutMs??DM,A=Date.now()+F,M=Za([...d],D);if(M.length===0)return g;let N=new Map;for(let h of M){let y=`${h.selector}|${Fu(h)}`,R=N.get(y);R?R.members.push(h):N.set(y,{key:y,members:[h],rep:h,ctx:void 0,kind:"generic"});}let S={elements:{}};if(f)try{await f.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),S=await f.evaluate(TM,{selectors:[...N.keys()].map(h=>N.get(h).rep.selector),maxHtml:kg});}catch{}for(let h of N.values())h.ctx=S.elements[h.rep.selector],h.ctx&&!h.ctx.found&&(h.ctx=void 0),h.kind=RM(h.rep,h.ctx);let x=new Map;for(let[h,y]of [...N]){if(!y.ctx)continue;let R=`${y.ctx.elementKey}|${Fu(y.rep)}`,E=x.get(R);if(!E){x.set(R,y);continue}E.members.push(...y.members),N.delete(h);}let k={promoted:[],judged:[]},C=(h,y)=>{for(let R of h.members){if(y.verdict==="violation"){let E=GM(R,h,y);if(!E)continue;k.promoted.push(E);}k.judged.push({id:R.id.replace("axe-incomplete-","axe-"),type:R.type,verdict:y.verdict,reason:y.reason});}},O=[...N.values()].filter(h=>h.kind==="contrast");if(O.length&&f){for(let y of O)y.pixels=b.measured?.get(y.rep.selector);let h=O.filter(y=>!y.pixels).map(y=>({selector:y.rep.selector,fg:Ag(y.rep)}));if(h.length)try{for(let y of await _g(f,h))for(let R of O)R.rep.selector===y.selector&&(R.pixels=y);}catch{}}let L=[];for(let h of N.values()){let y=m?No.get(Rg(b.url,h.rep,h.ctx?.html??h.rep.html??"")):void 0;if(y){C(h,y);continue}let R=zM(h);if(R!=="drop"){if(R){C(h,R);continue}L.push(h);}}if(L.length===0||!m)return k;let V=b.vision!==false&&!!f&&typeof f.screenshot=="function",B=new Map,j=new Set,z=0,U=$M(b),ee=h=>({id:h.rep.id,type:h.rep.type,wcag:h.rep.wcag,message:h.rep.message,selector:h.rep.selector,html:(h.ctx?.html??h.rep.html??"").slice(0,kg),context:j.has(h.key)?{...Fg(h),cropNote:"no image attached: the crop was too large to send"}:Fg(h),...B.has(h.key)?{screenshot:B.get(h.key)}:{}}),_=V?xM:wM;for(let h=0;h<L.length;h+=_){let y=A-Date.now();if(y<=0)break;let R=L.slice(h,h+_);if(V){for(let ae of R){if(z>=AM||Date.now()>A)break;let ie=await XM(f,ae.ctx,U);ie&&(z++,ie.data?B.set(ae.key,ie.data):j.add(ae.key));}if(Date.now()>A)break}let E=new Map(R.map(ae=>[ae.rep.id,ae])),I=new AbortController,q=setTimeout(()=>I.abort(),y),$=null,X=false,Z=Date.now();try{let ae=await Promise.race([m({url:b.url,level:D,vision:V,items:R.map(ee)},I.signal),new Promise((ie,le)=>I.signal.addEventListener("abort",()=>le(new Error("judge deadline"))))]);$=PM(ae),Iu()&&console.error(`ai judge: batch ${R.length} items, ${R.filter(ie=>B.has(ie.key)).length} crops, ${Date.now()-Z}ms, ${$?$.length+" verdicts":"MALFORMED: "+String(ae).slice(0,200)}`);}catch(ae){Iu()&&console.error(`ai judge: batch ${R.length} items failed after ${Date.now()-Z}ms: ${ae.message}`),$=null,X=ae instanceof Zn;}finally{clearTimeout(q);}if(!$){if(I.signal.aborted||X)break;continue}for(let ae of $){let ie=E.get(ae.id);if(!ie)continue;E.delete(ae.id);let le={verdict:ae.verdict,reason:IM(ae.reason),fix:ae.fix};No.size>=SM&&No.clear(),No.set(Rg(b.url,ie.rep,ie.ctx?.html??ie.rep.html??""),le),C(ie,le);}}return k}function zM(f){let d=f.ctx;if(f.kind==="alt"){if(d?.role==="presentation"||d?.role==="none")return {verdict:"pass",reason:"declared decorative (role=presentation)"};if(d?.ariaHidden)return {verdict:"pass",reason:"hidden from assistive technology (aria-hidden)"};if(d?.img){let{attrW:b,attrH:g,naturalW:m,naturalH:D}=d.img;if(b>0&&b<=1&&g>0&&g<=1||m>0&&m<=1&&D>0&&D<=1)return {verdict:"pass",reason:"1x1 tracking/spacer pixel"}}return d&&Mu(d)?d.control?d.control.name?{verdict:"pass",reason:`${d.control.tag} is named ("${d.control.name.slice(0,40)}"); the background image needs no text`}:null:{verdict:"pass",reason:"CSS background image on a non-interactive element; decorative"}:d?.parentInteractive?.text?{verdict:"pass",reason:`${d.parentInteractive.tag} is named by its visible link text ("${d.parentInteractive.text.slice(0,40)}"); alt may be empty`}:null}if(f.kind==="motion")return d?.reducedMotionHandled?{verdict:"pass",reason:"a prefers-reduced-motion: reduce rule stops this element's animation"}:null;if(f.kind==="contrast"){if(!f.pixels)return "drop";let b=Lu(f.rep,f.pixels.threshold);return f.pixels.worstRatio>=b?{verdict:"pass",reason:`measured ${f.pixels.worstRatio.toFixed(2)}:1 at worst behind the text, meets ${b}:1`}:f.pixels.bestRatio<b*.97?{verdict:"violation",reason:`measured ${f.pixels.bestRatio.toFixed(2)}:1 at best behind the text, below ${b}:1 everywhere`}:null}return null}function Fg(f){let d=f.ctx,b={};return f.rep.reviewReason&&(b.engineNote=f.rep.reviewReason),d&&(b.tag=d.tag,d.nearText&&(b.nearbyText=d.nearText),d.parentInteractive&&(b.parentControl=d.parentInteractive),f.kind==="alt"&&Mu(d)&&d.control&&(b.control={tag:d.control.tag,accessibleName:d.control.name}),f.kind==="alt"&&d.img&&(b.image={src:d.img.src,alt:d.img.alt,width:d.img.naturalW||d.img.attrW||d.rect.w,height:d.img.naturalH||d.img.attrH||d.rect.h}),f.kind==="contrast"&&f.pixels&&(b.fg=Jn(f.pixels.fg),b.threshold=Lu(f.rep,f.pixels.threshold),b.bestRatio=Ig(f.pixels.bestRatio),b.worstRatio=Ig(f.pixels.worstRatio),b.fontSize=d.fontSize,b.fontWeight=d.fontWeight),f.kind==="generic"&&(b.fg=Jn(d.fg),b.bg=Jn(d.bg),b.size={w:Math.round(d.rect.w),h:Math.round(d.rect.h)})),b}function Lu(f,d){return f.wcag==="1.4.6"||f.type==="contrast_enhanced"?d===3?4.5:7:d}var Ig=f=>Math.round(f*100)/100;function GM(f,d,b){let g=OM(f);if(d.kind==="alt"){let D=MM(b.fix?.value);return D?Mu(d.ctx)?{...g,fix:{attribute:"aria-label",currentValue:"",suggestedValue:D,needsManualReview:false}}:{...g,fix:{attribute:"alt",currentValue:d.ctx?.img?.alt??f.fix?.currentValue??"",suggestedValue:D,needsManualReview:false}}:null}if(d.kind==="contrast"){let D=d.pixels;if(!D)return null;let F=Jn(D.fg),A=Lu(f,D.threshold),M=D.worstBg?Jn(D.worstBg):null,N=D.bestBg?Jn(D.bestBg):null,S=O=>!!O&&!!M&&Sn(O,M)>=A&&(!N||Sn(O,N)>=A),x,k=LM(b.fix?.value),C=M?WM(F,M,A):null;return k&&k!==F.toLowerCase()&&S(k)?x=`color:${k} !important;`:S(C)?x=`color:${C} !important;`:N&&Sn(F,N)>=A&&(x=`background-color:${N} !important;`),{...g,impact:"serious",message:`contrast: ${F} text on its rendered background measures ${D.worstRatio.toFixed(2)}:1 at worst (${D.bestRatio.toFixed(2)}:1 at best, from pixels; judge: ${b.reason||"not readable"}), needs ${A}:1`,fix:{attribute:"style",currentValue:F,...x?{suggestedValue:x}:{},needsManualReview:true}}}let m=f.fix;return m?{...g,fix:m}:b.fix?.attribute&&b.fix.value?{...g,fix:{attribute:b.fix.attribute,currentValue:"",suggestedValue:b.fix.value,needsManualReview:true}}:g}function WM(f,d,b){let g=f.match(Mg);if(!g)return null;let m=parseInt(g[1],16),D=[m>>16&255,m>>8&255,m&255],F=N=>"#"+N.map(S=>Math.round(Math.min(255,Math.max(0,S))).toString(16).padStart(2,"0")).join(""),A=(N,S)=>F(D.map(x=>S?x*(1-N):x+(255-x)*N)),M=null;for(let N of [true,false]){if(Sn(A(1,N),d)<b)continue;let S=0,x=1;for(let C=0;C<24;C++){let O=(S+x)/2;Sn(A(O,N),d)>=b?x=O:S=O;}let k=A(x,N);Sn(k,d)>=b&&(!M||x<M.t)&&(M={t:x,hex:k});}return M?.hex??null}var UM=[1,.6,.35];async function XM(f,d,b){let g=f.screenshot;if(typeof g!="function"||!d||d.rect.w<2||d.rect.h<2||d.hidden)return null;try{let D=Math.min(1200,d.rect.w+16),F=Math.min(600,d.rect.h+16),A=d.rect.x+d.rect.w/2,M=d.rect.y+d.rect.h/2,N=globalThis.Buffer;if(!N)return null;let S=0;for(let x of b===void 0?[1]:UM){let k=Math.max(2,Math.round(D*x)),C=Math.max(2,Math.round(F*x)),O=x===1?Math.max(0,d.rect.x-8):Math.max(0,A-k/2),L=x===1?Math.max(0,d.rect.y-8):Math.max(0,M-C/2),V=await g.call(f,{clip:{x:O,y:L,width:k,height:C},fullPage:!0,type:"png",animations:"disabled"}),B=N.from(V).toString("base64");if(S=B.length,b===void 0||B.length<=b)return {data:B}}return Iu()&&console.error(`ai judge: crop for ${d.tag} left out (${S} base64 chars > ${b} at the smallest clip)`),{}}catch{return null}}function Og(f=globalThis){if(f.__waDomKernelInstalled)return;function g(E){try{return document.querySelectorAll(E).length===1}catch{return false}}function m(E){if(!E||/^_?[Rr]_[a-z0-9]+_/.test(E)||/^:[Rr][0-9a-z]+:/.test(E)||/^«[Rr][0-9a-z]+»/.test(E)||/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(E)||/^[\w-]*(react|gatsby|root|__next|hash|uuid)[\w-]*$/i.test(E)||/^(radix|headlessui|mui|mantine|cdk|ng|ember|downshift|react-select|react-aria|floating-ui)[-_:]/i.test(E)||/[0-9a-f]{16,}/i.test(E))return true;for(var I=E.split(/[-_:.]/).filter(Boolean),q=I.some(function(ie){var le=(ie.match(/[a-z]/gi)||[]).length,ue=(ie.match(/[aeiou]/gi)||[]).length;return le>=4&&ue>=1&&!/\d/.test(ie)}),$=0;$<I.length;$++){var X=I[$];if(!q&&/^\d{7,}$/.test(X)||/^[0-9a-f]{13}$/i.test(X)&&/[a-f]/i.test(X)&&/\d/.test(X))return true;if(X.length>=7&&/\d/.test(X)&&/[a-z]/i.test(X)){var Z=(X.match(/[aeiou]/gi)||[]).length,ae=(X.match(/[a-z]/gi)||[]).length;if(ae>=4&&Z/ae<.2||(X.match(/\d[a-z]|[a-z]\d/gi)||[]).length>=4)return true}}return false}function D(E){if(!E.classList||!E.classList.length)return [];for(var I=[],q=0;q<E.classList.length&&I.length<3;q++){var $=E.classList[q];$&&(/^(active|open|focus|hover|disabled|selected|hidden|sr-only|css-[a-z0-9]{4,}|jss[0-9]+|sc-[a-z0-9]+|[a-z]+-[a-f0-9]{6,}|_\d|chakra-|MuiBox-|MuiButton-)$/i.test($)||/^[a-z][a-z0-9_-]{1,40}$/i.test($)&&I.push($));}return I}function F(E){var I=E.tagName.toLowerCase(),q=D(E);return q.length?I+"."+q.map(function($){return CSS.escape($)}).join("."):I}function A(E){var I=E.tagName.toLowerCase();if(!E.parentElement)return I;var q=Array.from(E.parentElement.children).filter(function($){return $.tagName===E.tagName});return q.length===1?I:I+":nth-of-type("+(q.indexOf(E)+1)+")"}function M(E){for(var I=[],q=E;q&&q!==document.body&&q!==document.documentElement;)I.unshift(A(q)),q=q.parentElement;return I.join(" > ")}function N(E){if(!E||E===document.body||E===document.documentElement)return "body";var I=E.getAttribute?E.getAttribute("id"):null;if(I&&!m(I)){var q="#"+CSS.escape(I);if(g(q))return q}for(var $=["data-testid","data-cy","data-qa","data-test","data-component","data-id","data-key"],X=0;X<$.length;X++){var Z=E.getAttribute($[X]);if(Z&&Z.length<60){var ae=E.tagName.toLowerCase()+"["+$[X]+'="'+CSS.escape(Z)+'"]';if(g(ae))return ae}}var ie=F(E);if(ie.indexOf(".")!==-1&&g(ie))return ie;for(var le=[],ue=null,we=E;we&&we!==document.body&&we!==document.documentElement;){var ge=we.getAttribute?we.getAttribute("id"):null;if(ge&&!m(ge)){var Se="#"+CSS.escape(ge);if(g(Se)){ue=Se;break}}var be=F(we);if(be.indexOf(".")!==-1&&g(be)){ue=be;break}if(le.unshift(we),we=we.parentElement,le.length>6)break}var De=le.map(function(Ie){var wt=F(Ie);if(wt.indexOf(".")!==-1&&Ie.parentElement){var tr=Ie.parentElement.querySelectorAll(":scope > "+wt);if(tr.length===1)return "> "+wt}return "> "+A(Ie)}).join(" "),nt="";if(ue&&De?nt=(ue+" "+De).slice(0,200):ue&&(nt=ue),nt&&g(nt))return nt;var ot=M(E);return ot&&g(ot)?ot:nt||ot||F(E)}function S(E){if(!E)return false;let I=getComputedStyle(E);if(I.display==="none"||I.visibility==="hidden")return false;let q=parseFloat(I.opacity);if(!isNaN(q)&&q<.1)return false;if(!isNaN(q)&&q<.5){var $=I.transform||"";if($&&$!=="none"&&$!=="matrix(1, 0, 0, 1, 0, 0)")return false}let X=E.getBoundingClientRect();if(X.width<=1||X.height<=1)return false;var Z=I.clipPath||"";return !(Z!=="none"&&/inset\(\s*(?:50|100)%/.test(Z)||/rect\(\s*0(?:px)?\s*,?\s*0(?:px)?\s*,?\s*0(?:px)?\s*,?\s*0(?:px)?\s*\)/.test(I.clip||""))}function x(E){if(!E||!S(E))return false;var I=E.tagName;if(I==="TEXTAREA"||I==="SELECT"||I==="OPTION"||I==="OPTGROUP")return parseFloat(getComputedStyle(E).fontSize)!==0;for(var q=window.scrollX,$=window.scrollY,X=Math.max(document.documentElement.scrollWidth,window.innerWidth),Z=Math.max(document.documentElement.scrollHeight,window.innerHeight),ae=getComputedStyle(E),ie=ae.overflowX!=="visible"||ae.overflowY!=="visible",le=E.getBoundingClientRect(),ue=function(){for(var ot=E.parentElement;ot&&ot!==document.body&&ot!==document.documentElement;ot=ot.parentElement){var Ie=getComputedStyle(ot);if(Ie.overflowX!=="visible"||Ie.overflowY!=="visible"||Ie.transform&&Ie.transform!=="none")return true}return false},we=E.firstChild;we;we=we.nextSibling)if(!(we.nodeType!==3||!(we.textContent||"").trim())){var ge=document.createRange();if(ge.selectNodeContents(we),typeof ge.getClientRects!="function")return parseFloat(getComputedStyle(E).fontSize)!==0;for(var Se=ge.getClientRects(),be=0;be<Se.length;be++){var De=Se[be];if(!(De.width<=1||De.height<=1)){var nt=Math.min(De.right,le.right)-Math.max(De.left,le.left)>1&&Math.min(De.bottom,le.bottom)-Math.max(De.top,le.top)>1;if(!(ie&&!nt)){if(De.right+q<=0||De.bottom+$<=0||De.left+q>=X||De.top+$>=Z){if(nt&&ue())return true;continue}return true}}}}return false}function k(E){if(!E)return "";for(var I=[],q=String(E).trim().split(/\s+/),$=0;$<q.length;$++){var X=document.getElementById(q[$]);if(X){var Z=(X.textContent||"").trim();Z&&I.push(Z);}}return I.join(" ").replace(/\s+/g," ").trim()}function C(E){var I=k(E.getAttribute("aria-labelledby"));if(I)return I;var q=E.getAttribute("aria-label")||"";if(q.trim())return q.trim();var $=E.tagName?E.tagName.toLowerCase():"";if($==="input"||$==="select"||$==="textarea"){var X=E.getAttribute("id");if(X)try{var Z=document.querySelector('label[for="'+CSS.escape(X)+'"]');if(Z&&(Z.textContent||"").trim())return (Z.textContent||"").trim().replace(/\s+/g," ")}catch{}var ae=E.closest?E.closest("label"):null;if(ae&&(ae.textContent||"").trim())return (ae.textContent||"").trim().replace(/\s+/g," ")}var ie=(E.textContent||"").trim().replace(/\s+/g," ");if(!ie&&E.querySelector){var le=E.querySelector('img[alt]:not([alt=""])');if(le&&(ie=(le.getAttribute("alt")||"").trim()),!ie){var ue=E.querySelector("svg > title");ue&&(ie=(ue.textContent||"").trim());}}if(ie)return ie;var we=E.getAttribute("title")||"";return we.trim()}var O="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye],[class*=EquallyAI],[id*=ae_],[class*=ae-exclude],[id*=goog-gt],[class*=goog-te],[id*=recaptcha],[class*=intercom],[class*=drift-],[class*=crisp-],[class*=tawk-],[class*=hubspot-],[class*=fb-],[class*=wistia],#wpadminbar,[class*=cmplz-btn],[class*=cmplz-link],[id*=cmplz-],[class*=onetrust],[class*=cookiebot],[class*=borlabs],[class*=brlbs-],[id*=wp-ada-compliance],[class*=wp-ada-compliance],[id*=webability-widget],[class*=webability-a11y]";function L(E){return E?E.closest(O)!==null:false}function V(E){if(!E)return false;if(E.getAttribute("aria-hidden")==="true"||E.getAttribute("role")==="presentation"||E.getAttribute("role")==="none")return true;let I=E.parentElement,q=0;for(;I&&I!==document.body&&q<6;){if(I.getAttribute("aria-hidden")==="true")return true;I=I.parentElement,q++;}return false}function B(E){let I=E.naturalWidth||E.width||0,q=E.naturalHeight||E.height||0;if(I<=2&&q<=2)return true;let $=E.getBoundingClientRect();if($.width<=2&&$.height<=2)return true;let X=(E.src||"").toLowerCase();return !!(X.includes("pixel")||X.includes("beacon")||X.includes("tracker")||X.includes("analytics")||X.includes("adsrvr")||X.includes("doubleclick")||X.includes("facebook.com/tr"))}function j(E){var I=E.closest("article,section,li,.card,[class*=card],[class*=post],[class*=item],[class*=product],[class*=entry]");I||(I=E.closest("div,nav,main,aside,header,footer"));var q=I?I.querySelector("h1,h2,h3,h4,h5,h6"):null,$=q?(q.textContent||"").trim().slice(0,80):"",X=E.parentElement,Z=X?X.tagName.toLowerCase():"",ae=X&&X.getAttribute("role")||"",ie="";if(I){var le=I.querySelector("p,.description,.excerpt,[class*=desc],[class*=summary]");le&&(ie=(le.textContent||"").trim().slice(0,120));}var ue="";if(I){var we=I.querySelector('img[alt]:not([alt=""])');we&&(ue=(we.getAttribute("alt")||"").trim().slice(0,60));}return {nearbyHeading:$,parentTag:Z,parentRole:ae,cardText:ie,imgAlt:ue}}var z={times:"Close",x:"Close","x-lg":"Close","x-circle":"Close","x-mark":"Close",close:"Close","close-circle":"Close",clear:"Clear",cancel:"Cancel",dismiss:"Dismiss","chevron-right":"Next","arrow-right":"Next","caret-right":"Next","angle-right":"Next","chevron-left":"Previous","arrow-left":"Previous","caret-left":"Previous","angle-left":"Previous","chevron-up":"Collapse","arrow-up":"Up","caret-up":"Collapse","angle-up":"Collapse","chevron-down":"Expand","arrow-down":"Down","caret-down":"Expand","angle-down":"Expand",menu:"Menu",bars:"Menu",hamburger:"Menu",list:"Menu",grid:"Grid view",th:"Grid view",search:"Search","magnifying-glass":"Search",magnify:"Search",zoom:"Zoom",user:"User profile",person:"User profile",profile:"User profile","account-circle":"User profile",cart:"Shopping cart","shopping-cart":"Shopping cart",basket:"Shopping cart",bag:"Shopping bag",heart:"Favorite",bookmark:"Bookmark",star:"Rate",home:"Home",house:"Home",gear:"Settings",cog:"Settings",settings:"Settings",tool:"Tools",trash:"Delete","trash-can":"Delete",delete:"Delete",edit:"Edit",pencil:"Edit",pen:"Edit",plus:"Add",add:"Add","plus-circle":"Add",minus:"Remove","minus-circle":"Remove",check:"Confirm","check-circle":"Confirm",checkmark:"Confirm",info:"Information","info-circle":"Information",question:"Help","question-circle":"Help",help:"Help",warning:"Warning",exclamation:"Warning","exclamation-triangle":"Warning",alert:"Alert","external-link":"Open in new tab","external-link-alt":"Open in new tab","box-arrow-up-right":"Open in new tab",download:"Download",upload:"Upload",share:"Share","share-alt":"Share",copy:"Copy",clipboard:"Copy to clipboard",print:"Print",save:"Save",envelope:"Email",email:"Email",mail:"Email",at:"Email",phone:"Phone",telephone:"Phone",mobile:"Mobile phone",location:"Location","map-marker":"Location","map-pin":"Location","geo-alt":"Location",calendar:"Calendar","calendar-alt":"Calendar",clock:"Time",stopwatch:"Timer",eye:"Show","eye-slash":"Hide","eye-off":"Hide",lock:"Lock",unlock:"Unlock",padlock:"Lock",filter:"Filter",sliders:"Adjust",sort:"Sort","sort-alpha-down":"Sort ascending","sort-alpha-up":"Sort descending",refresh:"Refresh",reload:"Refresh",sync:"Refresh","arrows-rotate":"Refresh",play:"Play","play-circle":"Play",pause:"Pause",stop:"Stop","volume-up":"Volume up","volume-down":"Volume down","volume-mute":"Mute",mute:"Mute",speaker:"Audio",twitter:"Twitter","x-twitter":"X (Twitter)","square-x-twitter":"X (Twitter)",facebook:"Facebook","facebook-f":"Facebook","facebook-square":"Facebook","square-facebook":"Facebook","facebook-messenger":"Facebook Messenger",instagram:"Instagram","square-instagram":"Instagram",linkedin:"LinkedIn","linkedin-in":"LinkedIn","square-linkedin":"LinkedIn",youtube:"YouTube","youtube-square":"YouTube","square-youtube":"YouTube",github:"GitHub","github-alt":"GitHub",gitlab:"GitLab",bitbucket:"Bitbucket",tiktok:"TikTok",pinterest:"Pinterest","pinterest-p":"Pinterest","square-pinterest":"Pinterest",rss:"RSS feed","rss-square":"RSS feed",snapchat:"Snapchat","snapchat-ghost":"Snapchat",reddit:"Reddit","reddit-alien":"Reddit",discord:"Discord",slack:"Slack",whatsapp:"WhatsApp",telegram:"Telegram","telegram-plane":"Telegram",vimeo:"Vimeo","vimeo-v":"Vimeo",twitch:"Twitch",tumblr:"Tumblr",medium:"Medium",dribbble:"Dribbble",behance:"Behance",flickr:"Flickr",threads:"Threads",mastodon:"Mastodon",bluesky:"Bluesky",meetup:"Meetup",weibo:"Weibo",wechat:"WeChat",line:"Line",viber:"Viber",skype:"Skype",microsoft:"Microsoft",apple:"Apple",google:"Google","google-plus":"Google+",yelp:"Yelp",tripadvisor:"TripAdvisor",spotify:"Spotify",soundcloud:"SoundCloud",amazon:"Amazon",etsy:"Etsy",ebay:"eBay","arrow-up-right-from-square":"Open in new tab","square-arrow-up-right":"Open in new tab","up-right-from-square":"Open in new tab",back:"Back",forward:"Forward",return:"Return",reply:"Reply","reply-all":"Reply all","forward-arrow":"Forward",redo:"Redo",undo:"Undo","undo-alt":"Undo","rotate-left":"Undo","rotate-right":"Redo",expand:"Expand","expand-arrows-alt":"Expand",compress:"Collapse",minimize:"Minimize",maximize:"Maximize",fullscreen:"Enter fullscreen","fullscreen-exit":"Exit fullscreen",move:"Move",arrows:"Move","arrows-alt":"Move",drag:"Drag",grip:"Drag handle","grip-vertical":"Drag handle","grip-lines":"Drag handle",ellipsis:"More actions","ellipsis-v":"More actions","ellipsis-vertical":"More actions","ellipsis-h":"More actions","ellipsis-horizontal":"More actions","more-vert":"More actions","more-horiz":"More actions","more-vertical":"More actions","more-horizontal":"More actions","dots-vertical":"More actions","three-dots":"More actions","three-dots-vertical":"More actions","play-fill":"Play","pause-fill":"Pause","stop-fill":"Stop","play-pause":"Play/pause",backward:"Rewind","forward-step":"Next track","backward-step":"Previous track","fast-forward":"Fast forward",rewind:"Rewind","skip-forward":"Skip forward","skip-backward":"Skip backward","skip-next":"Next track","skip-previous":"Previous track",volume:"Volume","volume-off":"Mute","volume-x":"Mute","speaker-mute":"Mute",headphones:"Audio",microphone:"Microphone",mic:"Microphone","mic-off":"Mute microphone","microphone-slash":"Mute microphone",video:"Video","video-camera":"Video",camera:"Camera","camera-retro":"Camera",picture:"Picture",image:"Image",images:"Images",photo:"Photo",film:"Video",record:"Record",broadcast:"Broadcast","chevron-right-circle":"Next","chevron-left-circle":"Previous","double-arrow-right":"Next","double-arrow-left":"Previous","angles-right":"Next","angles-left":"Previous","angles-up":"Collapse","angles-down":"Expand",send:"Send","paper-plane":"Send",submit:"Submit",paperclip:"Attach file",attach:"Attach","file-attachment":"Attach file",signature:"Signature","pen-to-square":"Edit","pencil-square":"Edit","pencil-alt":"Edit","square-pen":"Edit",file:"File","file-alt":"Text file","file-text":"Text file","file-lines":"Text file","file-pdf":"PDF document","file-word":"Word document","file-excel":"Excel spreadsheet","file-powerpoint":"PowerPoint presentation","file-zip":"ZIP archive","file-archive":"Archive","file-image":"Image file","file-video":"Video file","file-audio":"Audio file","file-code":"Code file","file-csv":"CSV file",folder:"Folder","folder-open":"Open folder",book:"Book","book-open":"Book",newspaper:"News","bookmark-fill":"Bookmark","cart-plus":"Add to cart","cart-check":"Added to cart","cart-arrow-down":"Add to cart",truck:"Shipping",box:"Package",gift:"Gift",tag:"Tag",tags:"Tags",percent:"Discount","credit-card":"Credit card",wallet:"Wallet",money:"Money","money-bill":"Money","dollar-sign":"Price","euro-sign":"Price","pound-sign":"Price",receipt:"Receipt",store:"Store",shop:"Shop","basket-plus":"Add to basket","heart-fill":"Favorited","star-fill":"Rated","thumbs-up":"Like","thumbs-down":"Dislike",like:"Like",dislike:"Dislike",comment:"Comment",comments:"Comments",chat:"Chat","chat-bubble":"Chat",message:"Message","message-circle":"Message","message-square":"Message",bell:"Notifications","bell-fill":"Notifications",notifications:"Notifications",inbox:"Inbox",archive:"Archive",flag:"Flag",pin:"Pin","pin-fill":"Pinned",thumbtack:"Pin","sign-in":"Sign in","sign-in-alt":"Sign in","sign-out":"Sign out","sign-out-alt":"Sign out","log-in":"Log in","log-out":"Log out",logout:"Log out",login:"Log in","user-plus":"Add user","user-minus":"Remove user","user-circle":"User profile","user-avatar":"User avatar",users:"Users",key:"Password",shield:"Security","shield-check":"Security verified","id-card":"ID card","id-badge":"ID badge","universal-access":"Accessibility","accessible-icon":"Accessibility",wheelchair:"Wheelchair access",braille:"Braille","sign-language":"Sign language","closed-captioning":"Captions",cc:"Captions",sun:"Light mode",moon:"Dark mode",contrast:"Contrast",palette:"Theme",brush:"Theme",globe:"Global",earth:"Global",map:"Map",compass:"Compass",directions:"Directions",route:"Route",navigation:"Navigation",crosshairs:"Locate",spinner:"Loading",loader:"Loading",loading:"Loading","circle-notch":"Loading",hourglass:"Waiting","clock-fill":"Time","check-square":"Confirm","square-check":"Confirm","circle-check":"Confirm","circle-x":"Close",ban:"Blocked",block:"Block","times-circle":"Close",xmark:"Close","xmark-circle":"Close",columns:"Columns view",rows:"Rows view",layout:"Layout",sidebar:"Sidebar","sidebar-toggle":"Toggle sidebar","panel-left":"Left panel","panel-right":"Right panel","list-view":"List view","grid-view":"Grid view",wifi:"Wi-Fi","wifi-off":"Wi-Fi off",bluetooth:"Bluetooth",signal:"Signal",battery:"Battery","battery-full":"Battery full",plug:"Plug",power:"Power","power-off":"Power off","chart-bar":"Bar chart","chart-line":"Line chart","chart-pie":"Pie chart","chart-area":"Area chart","bar-chart":"Bar chart","line-chart":"Line chart","pie-chart":"Pie chart",analytics:"Analytics",statistics:"Statistics","trending-up":"Trending up","trending-down":"Trending down"},U=/^(fa|fas|far|fab|fal|fad|fass|bi|bi-icon|material-icons|material-symbols|ion|ionicon|feather|lucide|dashicons|glyphicon|icofont|heroicon)-/;function ee(E,I,q){var $=[];if(E)for(var X=E.split(/\s+/),Z=0;Z<X.length;Z++){var ae=X[Z];if(ae){var ie=ae.toLowerCase().replace(U,"").replace(/^icon-/,"");ie&&ie!==ae.toLowerCase()&&$.push(ie);}}if(I&&$.push(I.toLowerCase().trim()),q){var le=q.trim().toLowerCase();le.length<30&&/^[a-z_-]+$/.test(le)&&$.push(le.replace(/_/g,"-"));}for(var ue=0;ue<$.length;ue++)if(z[$[ue]])return z[$[ue]];for(var we=0;we<$.length;we++)for(var ge=$[we].split("-"),Se=0;Se<ge.length;Se++)if(z[ge[Se]])return z[ge[Se]];return null}var _;function h(E){if(!E)return null;var I=E.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\s*\)/);if(I)return [parseInt(I[1],10),parseInt(I[2],10),parseInt(I[3],10),I[4]?parseFloat(I[4]):1];if(E==="transparent"||E==="none")return [0,0,0,0];try{if(_===void 0){var q=document.createElement("canvas");q.width=1,q.height=1,_=q.getContext("2d",{willReadFrequently:!0});}if(!_)return null;_.clearRect(0,0,1,1),_.fillStyle="#000000",_.fillStyle=E,_.fillRect(0,0,1,1);var $=_.getImageData(0,0,1,1).data;return [$[0],$[1],$[2],$[3]/255]}catch{return null}}function y(E,I,q){var $=function(X){var Z=X/255;return Z<=.03928?Z/12.92:Math.pow((Z+.055)/1.055,2.4)};return .2126*$(E)+.7152*$(I)+.0722*$(q)}function R(E,I){var q=y(E[0],E[1],E[2]),$=y(I[0],I[1],I[2]),X=Math.max(q,$),Z=Math.min(q,$);return (X+.05)/(Z+.05)}Object.assign(f,{__isUnique:g,__isGeneratedId:m,__cleanClasses:D,__tagWithClass:F,__nthSelector:A,__fullPath:M,uniqueSel:N,isVisible:S,hasRenderedText:x,__resolveIdRefs:k,getAccessibleName:C,WIDGET_SKIP:O,isWidget:L,isHiddenFromAT:V,isTrackingPixel:B,getNearbyContext:j,__ICON_LABELS:z,__ICON_PREFIX_STRIP:U,lookupIconLabel:ee,__colorCtx:_,parseCssColor:h,relLuminance:y,contrastRatio:R}),f.__waDomKernelInstalled=true;}var Pg="1.17.2";function YM(f){return {async evaluate(d,...b){if(typeof d!="function")throw new Error("string evaluate not supported in DOM mode");return await d(...b)},async addScriptTag(){},url:()=>f.location.href}}async function mP(f={}){let d=f.window??globalThis;if(typeof d.document>"u")throw new Error("scanDocument requires a DOM (window.document)");Og(d);let b=YM(d),g=[],m=[],D=[],F=[];await bu(b);let A=await gg(b,m,D,{skipFocusMutating:f.interactiveChecks!==true,internalBugs:F,experimental:f.experimental});if(g.push(...A.map(xg)),f.includeAxe!==false)try{let k=await Promise.resolve().then(()=>F3(qg(),1)),O=await(k.default??k).run(d.document,{runOnly:{type:"tag",values:Eu(f.wcagTags??_u,f.level)},rules:yg(Eu(f.wcagTags??_u,f.level)),resultTypes:["violations","incomplete"]});for(let L of O.violations??[])for(let V of L.nodes??[])g.push({id:`axe-${L.id}-${Oo(Qa(V.target))}`,source:"axe-core",type:L.id,wcag:Su(L.tags),level:ku(L.tags),impact:Cu(L.impact),message:L.help,selector:Qa(V.target),html:V.html?.slice(0,300)});for(let L of O.incomplete??[])for(let V of L.nodes??[])g.push({id:`axe-incomplete-${L.id}-${Oo(Qa(V.target))}`,source:"axe-core",type:L.id,wcag:Su(L.tags),level:ku(L.tags),impact:Cu(L.impact),message:L.help,selector:Qa(V.target),html:V.html?.slice(0,300),confidence:"needs_review",reviewReason:"axe-core flagged this as needing human review"});}catch{D.push("axe:failed \u2014 axe-core did not complete; results are detector-only");}let M=Au(Lo(g).verdicts);try{M=await yh(b,M);}catch{}try{M=await wh(b,M);}catch{}try{M=await vg(b,M);}catch{}M=Za(M,f.level??"AA");let N=Lo(M),S=N.verdicts,x;if(f.judge)try{let k=Za([...Lo(g).undecided,...N.undecided],f.level??"AA"),C=await Lg(b,k,{...f.judge,url:d.location.href,level:f.judge.level??f.level??"AA",vision:!1});C.judged.length&&(x=C.judged),C.promoted.length&&(S=Au([...S,...C.promoted]));}catch{}try{S=await xu(b,S,F);}catch{}return wu(F,await yu(b)),{url:d.location.href,timestamp:new Date().toISOString(),engine:Pg,issues:S,internal_bugs:F,incomplete:[],...x?{judged:x}:{},...m.length?{truncated:m}:{},...D.length?{engineWarnings:D}:{},summary:Dg(S)}}/*! Bundled license information:
456
+ ${JSON.stringify(d,null,1)}`}function BM(f,d={}){let b=f.vision&&f.items.some(D=>D.screenshot),g=b?d.visionModel||CM:d.textModel||Sg,m=[{type:"text",text:qM(f)}];if(b)for(let D of f.items)D.screenshot&&(m.push({type:"text",text:`Crop for ${D.id}:`}),m.push({type:"image_url",image_url:{url:`data:image/png;base64,${D.screenshot}`}}));return {model:g,temperature:0,max_tokens:4096,...g===Sg&&d.disableTextModelReasoning?{reasoning:{enabled:false}}:{},messages:[{role:"system",content:NM},{role:"user",content:m}]}}function HM(f){let d=(f.baseUrl||EM).replace(/\/+$/,""),b=false;try{let g=new URL(d).hostname;b=g==="openrouter.ai"||g.endsWith(".openrouter.ai");}catch{}return async(g,m)=>{let D=await fetch(`${d}/chat/completions`,{method:"POST",signal:m,headers:{"Content-Type":"application/json",Authorization:`Bearer ${f.apiKey}`,"HTTP-Referer":"https://webability.io","X-Title":"WebAbility scanner judge"},body:JSON.stringify(BM(g,{visionModel:f.visionModel,textModel:f.textModel,disableTextModelReasoning:b}))});if(!D.ok)throw new Zn(`judge model HTTP ${D.status}`);let A=(await D.json()).choices?.[0]?.message?.content;if(typeof A=="string")return A;if(Array.isArray(A))return A.map(M=>typeof M?.text=="string"?M.text:"").join("");throw new Error("judge model returned no content")}}function VM(f){let d=f.apiUrl.replace(/\/+$/,"");return async(b,g)=>{let m=await fetch(`${d}/api/judge-incomplete`,{method:"POST",signal:g,redirect:"manual",headers:{"Content-Type":"application/json",...f.token?{Authorization:`Bearer ${f.token}`}:{},...f.internalSecret?{"x-mcp-internal":f.internalSecret}:{}},body:JSON.stringify(b)});if(m.status>=300&&m.status<400)throw new Zn(`judge endpoint redirected (HTTP ${m.status}); not followed`);if(!m.ok)throw new Zn(`judge endpoint HTTP ${m.status}`);return m.json()}}function jM(f){return f.transport?f.transport:f.apiKey?HM({apiKey:f.apiKey,baseUrl:f.baseUrl,visionModel:f.visionModel,textModel:f.textModel}):f.apiUrl?VM({apiUrl:f.apiUrl,token:f.apiToken,internalSecret:f.internalSecret}):null}function $M(f){return f.maxCropChars??(!f.transport&&!f.apiKey&&f.apiUrl?_M:void 0)}async function Lg(f,d,b){let g={promoted:[],judged:[]},m=jM(b);if(d.length===0)return g;let D=b.level??"AA",F=b.timeoutMs??DM,A=Date.now()+F,M=Za([...d],D);if(M.length===0)return g;let N=new Map;for(let h of M){let y=`${h.selector}|${Fu(h)}`,R=N.get(y);R?R.members.push(h):N.set(y,{key:y,members:[h],rep:h,ctx:void 0,kind:"generic"});}let S={elements:{}};if(f)try{await f.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),S=await f.evaluate(TM,{selectors:[...N.keys()].map(h=>N.get(h).rep.selector),maxHtml:kg});}catch{}for(let h of N.values())h.ctx=S.elements[h.rep.selector],h.ctx&&!h.ctx.found&&(h.ctx=void 0),h.kind=RM(h.rep,h.ctx);let x=new Map;for(let[h,y]of [...N]){if(!y.ctx)continue;let R=`${y.ctx.elementKey}|${Fu(y.rep)}`,E=x.get(R);if(!E){x.set(R,y);continue}E.members.push(...y.members),N.delete(h);}let k={promoted:[],judged:[]},C=(h,y)=>{for(let R of h.members){if(y.verdict==="violation"){let E=GM(R,h,y);if(!E)continue;k.promoted.push(E);}k.judged.push({id:R.id.replace("axe-incomplete-","axe-"),type:R.type,verdict:y.verdict,reason:y.reason});}},O=[...N.values()].filter(h=>h.kind==="contrast");if(O.length&&f){for(let y of O)y.pixels=b.measured?.get(y.rep.selector);let h=O.filter(y=>!y.pixels).map(y=>({selector:y.rep.selector,fg:Ag(y.rep)}));if(h.length)try{for(let y of await _g(f,h))for(let R of O)R.rep.selector===y.selector&&(R.pixels=y);}catch{}}let L=[];for(let h of N.values()){let y=m?No.get(Rg(b.url,h.rep,h.ctx?.html??h.rep.html??"")):void 0;if(y){C(h,y);continue}let R=zM(h);if(R!=="drop"){if(R){C(h,R);continue}L.push(h);}}if(L.length===0||!m)return k;let V=b.vision!==false&&!!f&&typeof f.screenshot=="function",B=new Map,j=new Set,z=0,U=$M(b),ee=h=>({id:h.rep.id,type:h.rep.type,wcag:h.rep.wcag,message:h.rep.message,selector:h.rep.selector,html:(h.ctx?.html??h.rep.html??"").slice(0,kg),context:j.has(h.key)?{...Fg(h),cropNote:"no image attached: the crop was too large to send"}:Fg(h),...B.has(h.key)?{screenshot:B.get(h.key)}:{}}),_=V?xM:wM;for(let h=0;h<L.length;h+=_){let y=A-Date.now();if(y<=0)break;let R=L.slice(h,h+_);if(V){for(let ae of R){if(z>=AM||Date.now()>A)break;let ie=await XM(f,ae.ctx,U);ie&&(z++,ie.data?B.set(ae.key,ie.data):j.add(ae.key));}if(Date.now()>A)break}let E=new Map(R.map(ae=>[ae.rep.id,ae])),I=new AbortController,q=setTimeout(()=>I.abort(),y),$=null,X=false,Z=Date.now();try{let ae=await Promise.race([m({url:b.url,level:D,vision:V,items:R.map(ee)},I.signal),new Promise((ie,le)=>I.signal.addEventListener("abort",()=>le(new Error("judge deadline"))))]);$=PM(ae),Iu()&&console.error(`ai judge: batch ${R.length} items, ${R.filter(ie=>B.has(ie.key)).length} crops, ${Date.now()-Z}ms, ${$?$.length+" verdicts":"MALFORMED: "+String(ae).slice(0,200)}`);}catch(ae){Iu()&&console.error(`ai judge: batch ${R.length} items failed after ${Date.now()-Z}ms: ${ae.message}`),$=null,X=ae instanceof Zn;}finally{clearTimeout(q);}if(!$){if(I.signal.aborted||X)break;continue}for(let ae of $){let ie=E.get(ae.id);if(!ie)continue;E.delete(ae.id);let le={verdict:ae.verdict,reason:IM(ae.reason),fix:ae.fix};No.size>=SM&&No.clear(),No.set(Rg(b.url,ie.rep,ie.ctx?.html??ie.rep.html??""),le),C(ie,le);}}return k}function zM(f){let d=f.ctx;if(f.kind==="alt"){if(d?.role==="presentation"||d?.role==="none")return {verdict:"pass",reason:"declared decorative (role=presentation)"};if(d?.ariaHidden)return {verdict:"pass",reason:"hidden from assistive technology (aria-hidden)"};if(d?.img){let{attrW:b,attrH:g,naturalW:m,naturalH:D}=d.img;if(b>0&&b<=1&&g>0&&g<=1||m>0&&m<=1&&D>0&&D<=1)return {verdict:"pass",reason:"1x1 tracking/spacer pixel"}}return d&&Mu(d)?d.control?d.control.name?{verdict:"pass",reason:`${d.control.tag} is named ("${d.control.name.slice(0,40)}"); the background image needs no text`}:null:{verdict:"pass",reason:"CSS background image on a non-interactive element; decorative"}:d?.parentInteractive?.text?{verdict:"pass",reason:`${d.parentInteractive.tag} is named by its visible link text ("${d.parentInteractive.text.slice(0,40)}"); alt may be empty`}:null}if(f.kind==="motion")return d?.reducedMotionHandled?{verdict:"pass",reason:"a prefers-reduced-motion: reduce rule stops this element's animation"}:null;if(f.kind==="contrast"){if(!f.pixels)return "drop";let b=Lu(f.rep,f.pixels.threshold);return f.pixels.worstRatio>=b?{verdict:"pass",reason:`measured ${f.pixels.worstRatio.toFixed(2)}:1 at worst behind the text, meets ${b}:1`}:f.pixels.bestRatio<b*.97?{verdict:"violation",reason:`measured ${f.pixels.bestRatio.toFixed(2)}:1 at best behind the text, below ${b}:1 everywhere`}:null}return null}function Fg(f){let d=f.ctx,b={};return f.rep.reviewReason&&(b.engineNote=f.rep.reviewReason),d&&(b.tag=d.tag,d.nearText&&(b.nearbyText=d.nearText),d.parentInteractive&&(b.parentControl=d.parentInteractive),f.kind==="alt"&&Mu(d)&&d.control&&(b.control={tag:d.control.tag,accessibleName:d.control.name}),f.kind==="alt"&&d.img&&(b.image={src:d.img.src,alt:d.img.alt,width:d.img.naturalW||d.img.attrW||d.rect.w,height:d.img.naturalH||d.img.attrH||d.rect.h}),f.kind==="contrast"&&f.pixels&&(b.fg=Jn(f.pixels.fg),b.threshold=Lu(f.rep,f.pixels.threshold),b.bestRatio=Ig(f.pixels.bestRatio),b.worstRatio=Ig(f.pixels.worstRatio),b.fontSize=d.fontSize,b.fontWeight=d.fontWeight),f.kind==="generic"&&(b.fg=Jn(d.fg),b.bg=Jn(d.bg),b.size={w:Math.round(d.rect.w),h:Math.round(d.rect.h)})),b}function Lu(f,d){return f.wcag==="1.4.6"||f.type==="contrast_enhanced"?d===3?4.5:7:d}var Ig=f=>Math.round(f*100)/100;function GM(f,d,b){let g=OM(f);if(d.kind==="alt"){let D=MM(b.fix?.value);return D?Mu(d.ctx)?{...g,fix:{attribute:"aria-label",currentValue:"",suggestedValue:D,needsManualReview:false}}:{...g,fix:{attribute:"alt",currentValue:d.ctx?.img?.alt??f.fix?.currentValue??"",suggestedValue:D,needsManualReview:false}}:null}if(d.kind==="contrast"){let D=d.pixels;if(!D)return null;let F=Jn(D.fg),A=Lu(f,D.threshold),M=D.worstBg?Jn(D.worstBg):null,N=D.bestBg?Jn(D.bestBg):null,S=O=>!!O&&!!M&&Sn(O,M)>=A&&(!N||Sn(O,N)>=A),x,k=LM(b.fix?.value),C=M?WM(F,M,A):null;return k&&k!==F.toLowerCase()&&S(k)?x=`color:${k} !important;`:S(C)?x=`color:${C} !important;`:N&&Sn(F,N)>=A&&(x=`background-color:${N} !important;`),{...g,impact:"serious",message:`contrast: ${F} text on its rendered background measures ${D.worstRatio.toFixed(2)}:1 at worst (${D.bestRatio.toFixed(2)}:1 at best, from pixels; judge: ${b.reason||"not readable"}), needs ${A}:1`,fix:{attribute:"style",currentValue:F,...x?{suggestedValue:x}:{},needsManualReview:true}}}let m=f.fix;return m?{...g,fix:m}:b.fix?.attribute&&b.fix.value?{...g,fix:{attribute:b.fix.attribute,currentValue:"",suggestedValue:b.fix.value,needsManualReview:true}}:g}function WM(f,d,b){let g=f.match(Mg);if(!g)return null;let m=parseInt(g[1],16),D=[m>>16&255,m>>8&255,m&255],F=N=>"#"+N.map(S=>Math.round(Math.min(255,Math.max(0,S))).toString(16).padStart(2,"0")).join(""),A=(N,S)=>F(D.map(x=>S?x*(1-N):x+(255-x)*N)),M=null;for(let N of [true,false]){if(Sn(A(1,N),d)<b)continue;let S=0,x=1;for(let C=0;C<24;C++){let O=(S+x)/2;Sn(A(O,N),d)>=b?x=O:S=O;}let k=A(x,N);Sn(k,d)>=b&&(!M||x<M.t)&&(M={t:x,hex:k});}return M?.hex??null}var UM=[1,.6,.35];async function XM(f,d,b){let g=f.screenshot;if(typeof g!="function"||!d||d.rect.w<2||d.rect.h<2||d.hidden)return null;try{let D=Math.min(1200,d.rect.w+16),F=Math.min(600,d.rect.h+16),A=d.rect.x+d.rect.w/2,M=d.rect.y+d.rect.h/2,N=globalThis.Buffer;if(!N)return null;let S=0;for(let x of b===void 0?[1]:UM){let k=Math.max(2,Math.round(D*x)),C=Math.max(2,Math.round(F*x)),O=x===1?Math.max(0,d.rect.x-8):Math.max(0,A-k/2),L=x===1?Math.max(0,d.rect.y-8):Math.max(0,M-C/2),V=await g.call(f,{clip:{x:O,y:L,width:k,height:C},fullPage:!0,type:"png",animations:"disabled"}),B=N.from(V).toString("base64");if(S=B.length,b===void 0||B.length<=b)return {data:B}}return Iu()&&console.error(`ai judge: crop for ${d.tag} left out (${S} base64 chars > ${b} at the smallest clip)`),{}}catch{return null}}function Og(f=globalThis){if(f.__waDomKernelInstalled)return;function g(E){try{return document.querySelectorAll(E).length===1}catch{return false}}function m(E){if(!E||/^_?[Rr]_[a-z0-9]+_/.test(E)||/^:[Rr][0-9a-z]+:/.test(E)||/^«[Rr][0-9a-z]+»/.test(E)||/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(E)||/^[\w-]*(react|gatsby|root|__next|hash|uuid)[\w-]*$/i.test(E)||/^(radix|headlessui|mui|mantine|cdk|ng|ember|downshift|react-select|react-aria|floating-ui)[-_:]/i.test(E)||/[0-9a-f]{16,}/i.test(E))return true;for(var I=E.split(/[-_:.]/).filter(Boolean),q=I.some(function(ie){var le=(ie.match(/[a-z]/gi)||[]).length,ue=(ie.match(/[aeiou]/gi)||[]).length;return le>=4&&ue>=1&&!/\d/.test(ie)}),$=0;$<I.length;$++){var X=I[$];if(!q&&/^\d{7,}$/.test(X)||/^[0-9a-f]{13}$/i.test(X)&&/[a-f]/i.test(X)&&/\d/.test(X))return true;if(X.length>=7&&/\d/.test(X)&&/[a-z]/i.test(X)){var Z=(X.match(/[aeiou]/gi)||[]).length,ae=(X.match(/[a-z]/gi)||[]).length;if(ae>=4&&Z/ae<.2||(X.match(/\d[a-z]|[a-z]\d/gi)||[]).length>=4)return true}}return false}function D(E){if(!E.classList||!E.classList.length)return [];for(var I=[],q=0;q<E.classList.length&&I.length<3;q++){var $=E.classList[q];$&&(/^(active|open|focus|hover|disabled|selected|hidden|sr-only|css-[a-z0-9]{4,}|jss[0-9]+|sc-[a-z0-9]+|[a-z]+-[a-f0-9]{6,}|_\d|chakra-|MuiBox-|MuiButton-)$/i.test($)||/^[a-z][a-z0-9_-]{1,40}$/i.test($)&&I.push($));}return I}function F(E){var I=E.tagName.toLowerCase(),q=D(E);return q.length?I+"."+q.map(function($){return CSS.escape($)}).join("."):I}function A(E){var I=E.tagName.toLowerCase();if(!E.parentElement)return I;var q=Array.from(E.parentElement.children).filter(function($){return $.tagName===E.tagName});return q.length===1?I:I+":nth-of-type("+(q.indexOf(E)+1)+")"}function M(E){for(var I=[],q=E;q&&q!==document.body&&q!==document.documentElement;)I.unshift(A(q)),q=q.parentElement;return I.join(" > ")}function N(E){if(!E||E===document.body||E===document.documentElement)return "body";var I=E.getAttribute?E.getAttribute("id"):null;if(I&&!m(I)){var q="#"+CSS.escape(I);if(g(q))return q}for(var $=["data-testid","data-cy","data-qa","data-test","data-component","data-id","data-key"],X=0;X<$.length;X++){var Z=E.getAttribute($[X]);if(Z&&Z.length<60){var ae=E.tagName.toLowerCase()+"["+$[X]+'="'+CSS.escape(Z)+'"]';if(g(ae))return ae}}var ie=F(E);if(ie.indexOf(".")!==-1&&g(ie))return ie;for(var le=[],ue=null,we=E;we&&we!==document.body&&we!==document.documentElement;){var ge=we.getAttribute?we.getAttribute("id"):null;if(ge&&!m(ge)){var Se="#"+CSS.escape(ge);if(g(Se)){ue=Se;break}}var be=F(we);if(be.indexOf(".")!==-1&&g(be)){ue=be;break}if(le.unshift(we),we=we.parentElement,le.length>6)break}var De=le.map(function(Ie){var wt=F(Ie);if(wt.indexOf(".")!==-1&&Ie.parentElement){var tr=Ie.parentElement.querySelectorAll(":scope > "+wt);if(tr.length===1)return "> "+wt}return "> "+A(Ie)}).join(" "),nt="";if(ue&&De?nt=(ue+" "+De).slice(0,200):ue&&(nt=ue),nt&&g(nt))return nt;var ot=M(E);return ot&&g(ot)?ot:nt||ot||F(E)}function S(E){if(!E)return false;let I=getComputedStyle(E);if(I.display==="none"||I.visibility==="hidden")return false;let q=parseFloat(I.opacity);if(!isNaN(q)&&q<.1)return false;if(!isNaN(q)&&q<.5){var $=I.transform||"";if($&&$!=="none"&&$!=="matrix(1, 0, 0, 1, 0, 0)")return false}let X=E.getBoundingClientRect();if(X.width<=1||X.height<=1)return false;var Z=I.clipPath||"";return !(Z!=="none"&&/inset\(\s*(?:50|100)%/.test(Z)||/rect\(\s*0(?:px)?\s*,?\s*0(?:px)?\s*,?\s*0(?:px)?\s*,?\s*0(?:px)?\s*\)/.test(I.clip||""))}function x(E){if(!E||!S(E))return false;var I=E.tagName;if(I==="TEXTAREA"||I==="SELECT"||I==="OPTION"||I==="OPTGROUP")return parseFloat(getComputedStyle(E).fontSize)!==0;for(var q=window.scrollX,$=window.scrollY,X=Math.max(document.documentElement.scrollWidth,window.innerWidth),Z=Math.max(document.documentElement.scrollHeight,window.innerHeight),ae=getComputedStyle(E),ie=ae.overflowX!=="visible"||ae.overflowY!=="visible",le=E.getBoundingClientRect(),ue=function(){for(var ot=E.parentElement;ot&&ot!==document.body&&ot!==document.documentElement;ot=ot.parentElement){var Ie=getComputedStyle(ot);if(Ie.overflowX!=="visible"||Ie.overflowY!=="visible"||Ie.transform&&Ie.transform!=="none")return true}return false},we=E.firstChild;we;we=we.nextSibling)if(!(we.nodeType!==3||!(we.textContent||"").trim())){var ge=document.createRange();if(ge.selectNodeContents(we),typeof ge.getClientRects!="function")return parseFloat(getComputedStyle(E).fontSize)!==0;for(var Se=ge.getClientRects(),be=0;be<Se.length;be++){var De=Se[be];if(!(De.width<=1||De.height<=1)){var nt=Math.min(De.right,le.right)-Math.max(De.left,le.left)>1&&Math.min(De.bottom,le.bottom)-Math.max(De.top,le.top)>1;if(!(ie&&!nt)){if(De.right+q<=0||De.bottom+$<=0||De.left+q>=X||De.top+$>=Z){if(nt&&ue())return true;continue}return true}}}}return false}function k(E){if(!E)return "";for(var I=[],q=String(E).trim().split(/\s+/),$=0;$<q.length;$++){var X=document.getElementById(q[$]);if(X){var Z=(X.textContent||"").trim();Z&&I.push(Z);}}return I.join(" ").replace(/\s+/g," ").trim()}function C(E){var I=k(E.getAttribute("aria-labelledby"));if(I)return I;var q=E.getAttribute("aria-label")||"";if(q.trim())return q.trim();var $=E.tagName?E.tagName.toLowerCase():"";if($==="input"||$==="select"||$==="textarea"){var X=E.getAttribute("id");if(X)try{var Z=document.querySelector('label[for="'+CSS.escape(X)+'"]');if(Z&&(Z.textContent||"").trim())return (Z.textContent||"").trim().replace(/\s+/g," ")}catch{}var ae=E.closest?E.closest("label"):null;if(ae&&(ae.textContent||"").trim())return (ae.textContent||"").trim().replace(/\s+/g," ")}var ie=(E.textContent||"").trim().replace(/\s+/g," ");if(!ie&&E.querySelector){var le=E.querySelector('img[alt]:not([alt=""])');if(le&&(ie=(le.getAttribute("alt")||"").trim()),!ie){var ue=E.querySelector("svg > title");ue&&(ie=(ue.textContent||"").trim());}}if(ie)return ie;var we=E.getAttribute("title")||"";return we.trim()}var O="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye],[class*=EquallyAI],[id*=ae_],[class*=ae-exclude],[id*=goog-gt],[class*=goog-te],[id*=recaptcha],[class*=intercom],[class*=drift-],[class*=crisp-],[class*=tawk-],[class*=hubspot-],[class*=fb-],[class*=wistia],#wpadminbar,[class*=cmplz-btn],[class*=cmplz-link],[id*=cmplz-],[class*=onetrust],[class*=cookiebot],[class*=borlabs],[class*=brlbs-],[id*=wp-ada-compliance],[class*=wp-ada-compliance],[id*=webability-widget],[class*=webability-a11y]";function L(E){return E?E.closest(O)!==null:false}function V(E){if(!E)return false;if(E.getAttribute("aria-hidden")==="true"||E.getAttribute("role")==="presentation"||E.getAttribute("role")==="none")return true;let I=E.parentElement,q=0;for(;I&&I!==document.body&&q<6;){if(I.getAttribute("aria-hidden")==="true")return true;I=I.parentElement,q++;}return false}function B(E){let I=E.naturalWidth||E.width||0,q=E.naturalHeight||E.height||0;if(I<=2&&q<=2)return true;let $=E.getBoundingClientRect();if($.width<=2&&$.height<=2)return true;let X=(E.src||"").toLowerCase();return !!(X.includes("pixel")||X.includes("beacon")||X.includes("tracker")||X.includes("analytics")||X.includes("adsrvr")||X.includes("doubleclick")||X.includes("facebook.com/tr"))}function j(E){var I=E.closest("article,section,li,.card,[class*=card],[class*=post],[class*=item],[class*=product],[class*=entry]");I||(I=E.closest("div,nav,main,aside,header,footer"));var q=I?I.querySelector("h1,h2,h3,h4,h5,h6"):null,$=q?(q.textContent||"").trim().slice(0,80):"",X=E.parentElement,Z=X?X.tagName.toLowerCase():"",ae=X&&X.getAttribute("role")||"",ie="";if(I){var le=I.querySelector("p,.description,.excerpt,[class*=desc],[class*=summary]");le&&(ie=(le.textContent||"").trim().slice(0,120));}var ue="";if(I){var we=I.querySelector('img[alt]:not([alt=""])');we&&(ue=(we.getAttribute("alt")||"").trim().slice(0,60));}return {nearbyHeading:$,parentTag:Z,parentRole:ae,cardText:ie,imgAlt:ue}}var z={times:"Close",x:"Close","x-lg":"Close","x-circle":"Close","x-mark":"Close",close:"Close","close-circle":"Close",clear:"Clear",cancel:"Cancel",dismiss:"Dismiss","chevron-right":"Next","arrow-right":"Next","caret-right":"Next","angle-right":"Next","chevron-left":"Previous","arrow-left":"Previous","caret-left":"Previous","angle-left":"Previous","chevron-up":"Collapse","arrow-up":"Up","caret-up":"Collapse","angle-up":"Collapse","chevron-down":"Expand","arrow-down":"Down","caret-down":"Expand","angle-down":"Expand",menu:"Menu",bars:"Menu",hamburger:"Menu",list:"Menu",grid:"Grid view",th:"Grid view",search:"Search","magnifying-glass":"Search",magnify:"Search",zoom:"Zoom",user:"User profile",person:"User profile",profile:"User profile","account-circle":"User profile",cart:"Shopping cart","shopping-cart":"Shopping cart",basket:"Shopping cart",bag:"Shopping bag",heart:"Favorite",bookmark:"Bookmark",star:"Rate",home:"Home",house:"Home",gear:"Settings",cog:"Settings",settings:"Settings",tool:"Tools",trash:"Delete","trash-can":"Delete",delete:"Delete",edit:"Edit",pencil:"Edit",pen:"Edit",plus:"Add",add:"Add","plus-circle":"Add",minus:"Remove","minus-circle":"Remove",check:"Confirm","check-circle":"Confirm",checkmark:"Confirm",info:"Information","info-circle":"Information",question:"Help","question-circle":"Help",help:"Help",warning:"Warning",exclamation:"Warning","exclamation-triangle":"Warning",alert:"Alert","external-link":"Open in new tab","external-link-alt":"Open in new tab","box-arrow-up-right":"Open in new tab",download:"Download",upload:"Upload",share:"Share","share-alt":"Share",copy:"Copy",clipboard:"Copy to clipboard",print:"Print",save:"Save",envelope:"Email",email:"Email",mail:"Email",at:"Email",phone:"Phone",telephone:"Phone",mobile:"Mobile phone",location:"Location","map-marker":"Location","map-pin":"Location","geo-alt":"Location",calendar:"Calendar","calendar-alt":"Calendar",clock:"Time",stopwatch:"Timer",eye:"Show","eye-slash":"Hide","eye-off":"Hide",lock:"Lock",unlock:"Unlock",padlock:"Lock",filter:"Filter",sliders:"Adjust",sort:"Sort","sort-alpha-down":"Sort ascending","sort-alpha-up":"Sort descending",refresh:"Refresh",reload:"Refresh",sync:"Refresh","arrows-rotate":"Refresh",play:"Play","play-circle":"Play",pause:"Pause",stop:"Stop","volume-up":"Volume up","volume-down":"Volume down","volume-mute":"Mute",mute:"Mute",speaker:"Audio",twitter:"Twitter","x-twitter":"X (Twitter)","square-x-twitter":"X (Twitter)",facebook:"Facebook","facebook-f":"Facebook","facebook-square":"Facebook","square-facebook":"Facebook","facebook-messenger":"Facebook Messenger",instagram:"Instagram","square-instagram":"Instagram",linkedin:"LinkedIn","linkedin-in":"LinkedIn","square-linkedin":"LinkedIn",youtube:"YouTube","youtube-square":"YouTube","square-youtube":"YouTube",github:"GitHub","github-alt":"GitHub",gitlab:"GitLab",bitbucket:"Bitbucket",tiktok:"TikTok",pinterest:"Pinterest","pinterest-p":"Pinterest","square-pinterest":"Pinterest",rss:"RSS feed","rss-square":"RSS feed",snapchat:"Snapchat","snapchat-ghost":"Snapchat",reddit:"Reddit","reddit-alien":"Reddit",discord:"Discord",slack:"Slack",whatsapp:"WhatsApp",telegram:"Telegram","telegram-plane":"Telegram",vimeo:"Vimeo","vimeo-v":"Vimeo",twitch:"Twitch",tumblr:"Tumblr",medium:"Medium",dribbble:"Dribbble",behance:"Behance",flickr:"Flickr",threads:"Threads",mastodon:"Mastodon",bluesky:"Bluesky",meetup:"Meetup",weibo:"Weibo",wechat:"WeChat",line:"Line",viber:"Viber",skype:"Skype",microsoft:"Microsoft",apple:"Apple",google:"Google","google-plus":"Google+",yelp:"Yelp",tripadvisor:"TripAdvisor",spotify:"Spotify",soundcloud:"SoundCloud",amazon:"Amazon",etsy:"Etsy",ebay:"eBay","arrow-up-right-from-square":"Open in new tab","square-arrow-up-right":"Open in new tab","up-right-from-square":"Open in new tab",back:"Back",forward:"Forward",return:"Return",reply:"Reply","reply-all":"Reply all","forward-arrow":"Forward",redo:"Redo",undo:"Undo","undo-alt":"Undo","rotate-left":"Undo","rotate-right":"Redo",expand:"Expand","expand-arrows-alt":"Expand",compress:"Collapse",minimize:"Minimize",maximize:"Maximize",fullscreen:"Enter fullscreen","fullscreen-exit":"Exit fullscreen",move:"Move",arrows:"Move","arrows-alt":"Move",drag:"Drag",grip:"Drag handle","grip-vertical":"Drag handle","grip-lines":"Drag handle",ellipsis:"More actions","ellipsis-v":"More actions","ellipsis-vertical":"More actions","ellipsis-h":"More actions","ellipsis-horizontal":"More actions","more-vert":"More actions","more-horiz":"More actions","more-vertical":"More actions","more-horizontal":"More actions","dots-vertical":"More actions","three-dots":"More actions","three-dots-vertical":"More actions","play-fill":"Play","pause-fill":"Pause","stop-fill":"Stop","play-pause":"Play/pause",backward:"Rewind","forward-step":"Next track","backward-step":"Previous track","fast-forward":"Fast forward",rewind:"Rewind","skip-forward":"Skip forward","skip-backward":"Skip backward","skip-next":"Next track","skip-previous":"Previous track",volume:"Volume","volume-off":"Mute","volume-x":"Mute","speaker-mute":"Mute",headphones:"Audio",microphone:"Microphone",mic:"Microphone","mic-off":"Mute microphone","microphone-slash":"Mute microphone",video:"Video","video-camera":"Video",camera:"Camera","camera-retro":"Camera",picture:"Picture",image:"Image",images:"Images",photo:"Photo",film:"Video",record:"Record",broadcast:"Broadcast","chevron-right-circle":"Next","chevron-left-circle":"Previous","double-arrow-right":"Next","double-arrow-left":"Previous","angles-right":"Next","angles-left":"Previous","angles-up":"Collapse","angles-down":"Expand",send:"Send","paper-plane":"Send",submit:"Submit",paperclip:"Attach file",attach:"Attach","file-attachment":"Attach file",signature:"Signature","pen-to-square":"Edit","pencil-square":"Edit","pencil-alt":"Edit","square-pen":"Edit",file:"File","file-alt":"Text file","file-text":"Text file","file-lines":"Text file","file-pdf":"PDF document","file-word":"Word document","file-excel":"Excel spreadsheet","file-powerpoint":"PowerPoint presentation","file-zip":"ZIP archive","file-archive":"Archive","file-image":"Image file","file-video":"Video file","file-audio":"Audio file","file-code":"Code file","file-csv":"CSV file",folder:"Folder","folder-open":"Open folder",book:"Book","book-open":"Book",newspaper:"News","bookmark-fill":"Bookmark","cart-plus":"Add to cart","cart-check":"Added to cart","cart-arrow-down":"Add to cart",truck:"Shipping",box:"Package",gift:"Gift",tag:"Tag",tags:"Tags",percent:"Discount","credit-card":"Credit card",wallet:"Wallet",money:"Money","money-bill":"Money","dollar-sign":"Price","euro-sign":"Price","pound-sign":"Price",receipt:"Receipt",store:"Store",shop:"Shop","basket-plus":"Add to basket","heart-fill":"Favorited","star-fill":"Rated","thumbs-up":"Like","thumbs-down":"Dislike",like:"Like",dislike:"Dislike",comment:"Comment",comments:"Comments",chat:"Chat","chat-bubble":"Chat",message:"Message","message-circle":"Message","message-square":"Message",bell:"Notifications","bell-fill":"Notifications",notifications:"Notifications",inbox:"Inbox",archive:"Archive",flag:"Flag",pin:"Pin","pin-fill":"Pinned",thumbtack:"Pin","sign-in":"Sign in","sign-in-alt":"Sign in","sign-out":"Sign out","sign-out-alt":"Sign out","log-in":"Log in","log-out":"Log out",logout:"Log out",login:"Log in","user-plus":"Add user","user-minus":"Remove user","user-circle":"User profile","user-avatar":"User avatar",users:"Users",key:"Password",shield:"Security","shield-check":"Security verified","id-card":"ID card","id-badge":"ID badge","universal-access":"Accessibility","accessible-icon":"Accessibility",wheelchair:"Wheelchair access",braille:"Braille","sign-language":"Sign language","closed-captioning":"Captions",cc:"Captions",sun:"Light mode",moon:"Dark mode",contrast:"Contrast",palette:"Theme",brush:"Theme",globe:"Global",earth:"Global",map:"Map",compass:"Compass",directions:"Directions",route:"Route",navigation:"Navigation",crosshairs:"Locate",spinner:"Loading",loader:"Loading",loading:"Loading","circle-notch":"Loading",hourglass:"Waiting","clock-fill":"Time","check-square":"Confirm","square-check":"Confirm","circle-check":"Confirm","circle-x":"Close",ban:"Blocked",block:"Block","times-circle":"Close",xmark:"Close","xmark-circle":"Close",columns:"Columns view",rows:"Rows view",layout:"Layout",sidebar:"Sidebar","sidebar-toggle":"Toggle sidebar","panel-left":"Left panel","panel-right":"Right panel","list-view":"List view","grid-view":"Grid view",wifi:"Wi-Fi","wifi-off":"Wi-Fi off",bluetooth:"Bluetooth",signal:"Signal",battery:"Battery","battery-full":"Battery full",plug:"Plug",power:"Power","power-off":"Power off","chart-bar":"Bar chart","chart-line":"Line chart","chart-pie":"Pie chart","chart-area":"Area chart","bar-chart":"Bar chart","line-chart":"Line chart","pie-chart":"Pie chart",analytics:"Analytics",statistics:"Statistics","trending-up":"Trending up","trending-down":"Trending down"},U=/^(fa|fas|far|fab|fal|fad|fass|bi|bi-icon|material-icons|material-symbols|ion|ionicon|feather|lucide|dashicons|glyphicon|icofont|heroicon)-/;function ee(E,I,q){var $=[];if(E)for(var X=E.split(/\s+/),Z=0;Z<X.length;Z++){var ae=X[Z];if(ae){var ie=ae.toLowerCase().replace(U,"").replace(/^icon-/,"");ie&&ie!==ae.toLowerCase()&&$.push(ie);}}if(I&&$.push(I.toLowerCase().trim()),q){var le=q.trim().toLowerCase();le.length<30&&/^[a-z_-]+$/.test(le)&&$.push(le.replace(/_/g,"-"));}for(var ue=0;ue<$.length;ue++)if(z[$[ue]])return z[$[ue]];for(var we=0;we<$.length;we++)for(var ge=$[we].split("-"),Se=0;Se<ge.length;Se++)if(z[ge[Se]])return z[ge[Se]];return null}var _;function h(E){if(!E)return null;var I=E.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\s*\)/);if(I)return [parseInt(I[1],10),parseInt(I[2],10),parseInt(I[3],10),I[4]?parseFloat(I[4]):1];if(E==="transparent"||E==="none")return [0,0,0,0];try{if(_===void 0){var q=document.createElement("canvas");q.width=1,q.height=1,_=q.getContext("2d",{willReadFrequently:!0});}if(!_)return null;_.clearRect(0,0,1,1),_.fillStyle="#000000",_.fillStyle=E,_.fillRect(0,0,1,1);var $=_.getImageData(0,0,1,1).data;return [$[0],$[1],$[2],$[3]/255]}catch{return null}}function y(E,I,q){var $=function(X){var Z=X/255;return Z<=.03928?Z/12.92:Math.pow((Z+.055)/1.055,2.4)};return .2126*$(E)+.7152*$(I)+.0722*$(q)}function R(E,I){var q=y(E[0],E[1],E[2]),$=y(I[0],I[1],I[2]),X=Math.max(q,$),Z=Math.min(q,$);return (X+.05)/(Z+.05)}Object.assign(f,{__isUnique:g,__isGeneratedId:m,__cleanClasses:D,__tagWithClass:F,__nthSelector:A,__fullPath:M,uniqueSel:N,isVisible:S,hasRenderedText:x,__resolveIdRefs:k,getAccessibleName:C,WIDGET_SKIP:O,isWidget:L,isHiddenFromAT:V,isTrackingPixel:B,getNearbyContext:j,__ICON_LABELS:z,__ICON_PREFIX_STRIP:U,lookupIconLabel:ee,__colorCtx:_,parseCssColor:h,relLuminance:y,contrastRatio:R}),f.__waDomKernelInstalled=true;}var Pg="1.18.0";function YM(f){return {async evaluate(d,...b){if(typeof d!="function")throw new Error("string evaluate not supported in DOM mode");return await d(...b)},async addScriptTag(){},url:()=>f.location.href}}async function mP(f={}){let d=f.window??globalThis;if(typeof d.document>"u")throw new Error("scanDocument requires a DOM (window.document)");Og(d);let b=YM(d),g=[],m=[],D=[],F=[];await bu(b);let A=await gg(b,m,D,{skipFocusMutating:f.interactiveChecks!==true,internalBugs:F,experimental:f.experimental});if(g.push(...A.map(xg)),f.includeAxe!==false)try{let k=await Promise.resolve().then(()=>F3(qg(),1)),O=await(k.default??k).run(d.document,{runOnly:{type:"tag",values:Eu(f.wcagTags??_u,f.level)},rules:yg(Eu(f.wcagTags??_u,f.level)),resultTypes:["violations","incomplete"]});for(let L of O.violations??[])for(let V of L.nodes??[])g.push({id:`axe-${L.id}-${Oo(Qa(V.target))}`,source:"axe-core",type:L.id,wcag:Su(L.tags),level:ku(L.tags),impact:Cu(L.impact),message:L.help,selector:Qa(V.target),html:V.html?.slice(0,300)});for(let L of O.incomplete??[])for(let V of L.nodes??[])g.push({id:`axe-incomplete-${L.id}-${Oo(Qa(V.target))}`,source:"axe-core",type:L.id,wcag:Su(L.tags),level:ku(L.tags),impact:Cu(L.impact),message:L.help,selector:Qa(V.target),html:V.html?.slice(0,300),confidence:"needs_review",reviewReason:"axe-core flagged this as needing human review"});}catch{D.push("axe:failed \u2014 axe-core did not complete; results are detector-only");}let M=Au(Lo(g).verdicts);try{M=await yh(b,M);}catch{}try{M=await wh(b,M);}catch{}try{M=await vg(b,M);}catch{}M=Za(M,f.level??"AA");let N=Lo(M),S=N.verdicts,x;if(f.judge)try{let k=Za([...Lo(g).undecided,...N.undecided],f.level??"AA"),C=await Lg(b,k,{...f.judge,url:d.location.href,level:f.judge.level??f.level??"AA",vision:!1});C.judged.length&&(x=C.judged),C.promoted.length&&(S=Au([...S,...C.promoted]));}catch{}try{S=await xu(b,S,F);}catch{}return wu(F,await yu(b)),{url:d.location.href,timestamp:new Date().toISOString(),engine:Pg,issues:S,internal_bugs:F,incomplete:[],...x?{judged:x}:{},...m.length?{truncated:m}:{},...D.length?{engineWarnings:D}:{},summary:Dg(S)}}/*! Bundled license information:
457
457
 
458
458
  axe-core/axe.js:
459
459
  (*! axe v4.11.3
package/dist/dom.js CHANGED
@@ -453,7 +453,7 @@ Omit "fix" for passes.`;function qM(f){let d=f.items.map(({screenshot:b,...g})=>
453
453
  Conformance level: ${f.level}
454
454
 
455
455
  Findings:
456
- ${JSON.stringify(d,null,1)}`}function BM(f,d={}){let b=f.vision&&f.items.some(D=>D.screenshot),g=b?d.visionModel||CM:d.textModel||Sg,m=[{type:"text",text:qM(f)}];if(b)for(let D of f.items)D.screenshot&&(m.push({type:"text",text:`Crop for ${D.id}:`}),m.push({type:"image_url",image_url:{url:`data:image/png;base64,${D.screenshot}`}}));return {model:g,temperature:0,max_tokens:4096,...g===Sg&&d.disableTextModelReasoning?{reasoning:{enabled:false}}:{},messages:[{role:"system",content:NM},{role:"user",content:m}]}}function HM(f){let d=(f.baseUrl||EM).replace(/\/+$/,""),b=false;try{let g=new URL(d).hostname;b=g==="openrouter.ai"||g.endsWith(".openrouter.ai");}catch{}return async(g,m)=>{let D=await fetch(`${d}/chat/completions`,{method:"POST",signal:m,headers:{"Content-Type":"application/json",Authorization:`Bearer ${f.apiKey}`,"HTTP-Referer":"https://webability.io","X-Title":"WebAbility scanner judge"},body:JSON.stringify(BM(g,{visionModel:f.visionModel,textModel:f.textModel,disableTextModelReasoning:b}))});if(!D.ok)throw new Zn(`judge model HTTP ${D.status}`);let A=(await D.json()).choices?.[0]?.message?.content;if(typeof A=="string")return A;if(Array.isArray(A))return A.map(M=>typeof M?.text=="string"?M.text:"").join("");throw new Error("judge model returned no content")}}function VM(f){let d=f.apiUrl.replace(/\/+$/,"");return async(b,g)=>{let m=await fetch(`${d}/api/judge-incomplete`,{method:"POST",signal:g,redirect:"manual",headers:{"Content-Type":"application/json",...f.token?{Authorization:`Bearer ${f.token}`}:{},...f.internalSecret?{"x-mcp-internal":f.internalSecret}:{}},body:JSON.stringify(b)});if(m.status>=300&&m.status<400)throw new Zn(`judge endpoint redirected (HTTP ${m.status}); not followed`);if(!m.ok)throw new Zn(`judge endpoint HTTP ${m.status}`);return m.json()}}function jM(f){return f.transport?f.transport:f.apiKey?HM({apiKey:f.apiKey,baseUrl:f.baseUrl,visionModel:f.visionModel,textModel:f.textModel}):f.apiUrl?VM({apiUrl:f.apiUrl,token:f.apiToken,internalSecret:f.internalSecret}):null}function $M(f){return f.maxCropChars??(!f.transport&&!f.apiKey&&f.apiUrl?_M:void 0)}async function Lg(f,d,b){let g={promoted:[],judged:[]},m=jM(b);if(d.length===0)return g;let D=b.level??"AA",F=b.timeoutMs??DM,A=Date.now()+F,M=Za([...d],D);if(M.length===0)return g;let N=new Map;for(let h of M){let y=`${h.selector}|${Fu(h)}`,R=N.get(y);R?R.members.push(h):N.set(y,{key:y,members:[h],rep:h,ctx:void 0,kind:"generic"});}let S={elements:{}};if(f)try{await f.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),S=await f.evaluate(TM,{selectors:[...N.keys()].map(h=>N.get(h).rep.selector),maxHtml:kg});}catch{}for(let h of N.values())h.ctx=S.elements[h.rep.selector],h.ctx&&!h.ctx.found&&(h.ctx=void 0),h.kind=RM(h.rep,h.ctx);let x=new Map;for(let[h,y]of [...N]){if(!y.ctx)continue;let R=`${y.ctx.elementKey}|${Fu(y.rep)}`,E=x.get(R);if(!E){x.set(R,y);continue}E.members.push(...y.members),N.delete(h);}let k={promoted:[],judged:[]},C=(h,y)=>{for(let R of h.members){if(y.verdict==="violation"){let E=GM(R,h,y);if(!E)continue;k.promoted.push(E);}k.judged.push({id:R.id.replace("axe-incomplete-","axe-"),type:R.type,verdict:y.verdict,reason:y.reason});}},O=[...N.values()].filter(h=>h.kind==="contrast");if(O.length&&f){for(let y of O)y.pixels=b.measured?.get(y.rep.selector);let h=O.filter(y=>!y.pixels).map(y=>({selector:y.rep.selector,fg:Ag(y.rep)}));if(h.length)try{for(let y of await _g(f,h))for(let R of O)R.rep.selector===y.selector&&(R.pixels=y);}catch{}}let L=[];for(let h of N.values()){let y=m?No.get(Rg(b.url,h.rep,h.ctx?.html??h.rep.html??"")):void 0;if(y){C(h,y);continue}let R=zM(h);if(R!=="drop"){if(R){C(h,R);continue}L.push(h);}}if(L.length===0||!m)return k;let V=b.vision!==false&&!!f&&typeof f.screenshot=="function",B=new Map,j=new Set,z=0,U=$M(b),ee=h=>({id:h.rep.id,type:h.rep.type,wcag:h.rep.wcag,message:h.rep.message,selector:h.rep.selector,html:(h.ctx?.html??h.rep.html??"").slice(0,kg),context:j.has(h.key)?{...Fg(h),cropNote:"no image attached: the crop was too large to send"}:Fg(h),...B.has(h.key)?{screenshot:B.get(h.key)}:{}}),_=V?xM:wM;for(let h=0;h<L.length;h+=_){let y=A-Date.now();if(y<=0)break;let R=L.slice(h,h+_);if(V){for(let ae of R){if(z>=AM||Date.now()>A)break;let ie=await XM(f,ae.ctx,U);ie&&(z++,ie.data?B.set(ae.key,ie.data):j.add(ae.key));}if(Date.now()>A)break}let E=new Map(R.map(ae=>[ae.rep.id,ae])),I=new AbortController,q=setTimeout(()=>I.abort(),y),$=null,X=false,Z=Date.now();try{let ae=await Promise.race([m({url:b.url,level:D,vision:V,items:R.map(ee)},I.signal),new Promise((ie,le)=>I.signal.addEventListener("abort",()=>le(new Error("judge deadline"))))]);$=PM(ae),Iu()&&console.error(`ai judge: batch ${R.length} items, ${R.filter(ie=>B.has(ie.key)).length} crops, ${Date.now()-Z}ms, ${$?$.length+" verdicts":"MALFORMED: "+String(ae).slice(0,200)}`);}catch(ae){Iu()&&console.error(`ai judge: batch ${R.length} items failed after ${Date.now()-Z}ms: ${ae.message}`),$=null,X=ae instanceof Zn;}finally{clearTimeout(q);}if(!$){if(I.signal.aborted||X)break;continue}for(let ae of $){let ie=E.get(ae.id);if(!ie)continue;E.delete(ae.id);let le={verdict:ae.verdict,reason:IM(ae.reason),fix:ae.fix};No.size>=SM&&No.clear(),No.set(Rg(b.url,ie.rep,ie.ctx?.html??ie.rep.html??""),le),C(ie,le);}}return k}function zM(f){let d=f.ctx;if(f.kind==="alt"){if(d?.role==="presentation"||d?.role==="none")return {verdict:"pass",reason:"declared decorative (role=presentation)"};if(d?.ariaHidden)return {verdict:"pass",reason:"hidden from assistive technology (aria-hidden)"};if(d?.img){let{attrW:b,attrH:g,naturalW:m,naturalH:D}=d.img;if(b>0&&b<=1&&g>0&&g<=1||m>0&&m<=1&&D>0&&D<=1)return {verdict:"pass",reason:"1x1 tracking/spacer pixel"}}return d&&Mu(d)?d.control?d.control.name?{verdict:"pass",reason:`${d.control.tag} is named ("${d.control.name.slice(0,40)}"); the background image needs no text`}:null:{verdict:"pass",reason:"CSS background image on a non-interactive element; decorative"}:d?.parentInteractive?.text?{verdict:"pass",reason:`${d.parentInteractive.tag} is named by its visible link text ("${d.parentInteractive.text.slice(0,40)}"); alt may be empty`}:null}if(f.kind==="motion")return d?.reducedMotionHandled?{verdict:"pass",reason:"a prefers-reduced-motion: reduce rule stops this element's animation"}:null;if(f.kind==="contrast"){if(!f.pixels)return "drop";let b=Lu(f.rep,f.pixels.threshold);return f.pixels.worstRatio>=b?{verdict:"pass",reason:`measured ${f.pixels.worstRatio.toFixed(2)}:1 at worst behind the text, meets ${b}:1`}:f.pixels.bestRatio<b*.97?{verdict:"violation",reason:`measured ${f.pixels.bestRatio.toFixed(2)}:1 at best behind the text, below ${b}:1 everywhere`}:null}return null}function Fg(f){let d=f.ctx,b={};return f.rep.reviewReason&&(b.engineNote=f.rep.reviewReason),d&&(b.tag=d.tag,d.nearText&&(b.nearbyText=d.nearText),d.parentInteractive&&(b.parentControl=d.parentInteractive),f.kind==="alt"&&Mu(d)&&d.control&&(b.control={tag:d.control.tag,accessibleName:d.control.name}),f.kind==="alt"&&d.img&&(b.image={src:d.img.src,alt:d.img.alt,width:d.img.naturalW||d.img.attrW||d.rect.w,height:d.img.naturalH||d.img.attrH||d.rect.h}),f.kind==="contrast"&&f.pixels&&(b.fg=Jn(f.pixels.fg),b.threshold=Lu(f.rep,f.pixels.threshold),b.bestRatio=Ig(f.pixels.bestRatio),b.worstRatio=Ig(f.pixels.worstRatio),b.fontSize=d.fontSize,b.fontWeight=d.fontWeight),f.kind==="generic"&&(b.fg=Jn(d.fg),b.bg=Jn(d.bg),b.size={w:Math.round(d.rect.w),h:Math.round(d.rect.h)})),b}function Lu(f,d){return f.wcag==="1.4.6"||f.type==="contrast_enhanced"?d===3?4.5:7:d}var Ig=f=>Math.round(f*100)/100;function GM(f,d,b){let g=OM(f);if(d.kind==="alt"){let D=MM(b.fix?.value);return D?Mu(d.ctx)?{...g,fix:{attribute:"aria-label",currentValue:"",suggestedValue:D,needsManualReview:false}}:{...g,fix:{attribute:"alt",currentValue:d.ctx?.img?.alt??f.fix?.currentValue??"",suggestedValue:D,needsManualReview:false}}:null}if(d.kind==="contrast"){let D=d.pixels;if(!D)return null;let F=Jn(D.fg),A=Lu(f,D.threshold),M=D.worstBg?Jn(D.worstBg):null,N=D.bestBg?Jn(D.bestBg):null,S=O=>!!O&&!!M&&Sn(O,M)>=A&&(!N||Sn(O,N)>=A),x,k=LM(b.fix?.value),C=M?WM(F,M,A):null;return k&&k!==F.toLowerCase()&&S(k)?x=`color:${k} !important;`:S(C)?x=`color:${C} !important;`:N&&Sn(F,N)>=A&&(x=`background-color:${N} !important;`),{...g,impact:"serious",message:`contrast: ${F} text on its rendered background measures ${D.worstRatio.toFixed(2)}:1 at worst (${D.bestRatio.toFixed(2)}:1 at best, from pixels; judge: ${b.reason||"not readable"}), needs ${A}:1`,fix:{attribute:"style",currentValue:F,...x?{suggestedValue:x}:{},needsManualReview:true}}}let m=f.fix;return m?{...g,fix:m}:b.fix?.attribute&&b.fix.value?{...g,fix:{attribute:b.fix.attribute,currentValue:"",suggestedValue:b.fix.value,needsManualReview:true}}:g}function WM(f,d,b){let g=f.match(Mg);if(!g)return null;let m=parseInt(g[1],16),D=[m>>16&255,m>>8&255,m&255],F=N=>"#"+N.map(S=>Math.round(Math.min(255,Math.max(0,S))).toString(16).padStart(2,"0")).join(""),A=(N,S)=>F(D.map(x=>S?x*(1-N):x+(255-x)*N)),M=null;for(let N of [true,false]){if(Sn(A(1,N),d)<b)continue;let S=0,x=1;for(let C=0;C<24;C++){let O=(S+x)/2;Sn(A(O,N),d)>=b?x=O:S=O;}let k=A(x,N);Sn(k,d)>=b&&(!M||x<M.t)&&(M={t:x,hex:k});}return M?.hex??null}var UM=[1,.6,.35];async function XM(f,d,b){let g=f.screenshot;if(typeof g!="function"||!d||d.rect.w<2||d.rect.h<2||d.hidden)return null;try{let D=Math.min(1200,d.rect.w+16),F=Math.min(600,d.rect.h+16),A=d.rect.x+d.rect.w/2,M=d.rect.y+d.rect.h/2,N=globalThis.Buffer;if(!N)return null;let S=0;for(let x of b===void 0?[1]:UM){let k=Math.max(2,Math.round(D*x)),C=Math.max(2,Math.round(F*x)),O=x===1?Math.max(0,d.rect.x-8):Math.max(0,A-k/2),L=x===1?Math.max(0,d.rect.y-8):Math.max(0,M-C/2),V=await g.call(f,{clip:{x:O,y:L,width:k,height:C},fullPage:!0,type:"png",animations:"disabled"}),B=N.from(V).toString("base64");if(S=B.length,b===void 0||B.length<=b)return {data:B}}return Iu()&&console.error(`ai judge: crop for ${d.tag} left out (${S} base64 chars > ${b} at the smallest clip)`),{}}catch{return null}}function Og(f=globalThis){if(f.__waDomKernelInstalled)return;function g(E){try{return document.querySelectorAll(E).length===1}catch{return false}}function m(E){if(!E||/^_?[Rr]_[a-z0-9]+_/.test(E)||/^:[Rr][0-9a-z]+:/.test(E)||/^«[Rr][0-9a-z]+»/.test(E)||/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(E)||/^[\w-]*(react|gatsby|root|__next|hash|uuid)[\w-]*$/i.test(E)||/^(radix|headlessui|mui|mantine|cdk|ng|ember|downshift|react-select|react-aria|floating-ui)[-_:]/i.test(E)||/[0-9a-f]{16,}/i.test(E))return true;for(var I=E.split(/[-_:.]/).filter(Boolean),q=I.some(function(ie){var le=(ie.match(/[a-z]/gi)||[]).length,ue=(ie.match(/[aeiou]/gi)||[]).length;return le>=4&&ue>=1&&!/\d/.test(ie)}),$=0;$<I.length;$++){var X=I[$];if(!q&&/^\d{7,}$/.test(X)||/^[0-9a-f]{13}$/i.test(X)&&/[a-f]/i.test(X)&&/\d/.test(X))return true;if(X.length>=7&&/\d/.test(X)&&/[a-z]/i.test(X)){var Z=(X.match(/[aeiou]/gi)||[]).length,ae=(X.match(/[a-z]/gi)||[]).length;if(ae>=4&&Z/ae<.2||(X.match(/\d[a-z]|[a-z]\d/gi)||[]).length>=4)return true}}return false}function D(E){if(!E.classList||!E.classList.length)return [];for(var I=[],q=0;q<E.classList.length&&I.length<3;q++){var $=E.classList[q];$&&(/^(active|open|focus|hover|disabled|selected|hidden|sr-only|css-[a-z0-9]{4,}|jss[0-9]+|sc-[a-z0-9]+|[a-z]+-[a-f0-9]{6,}|_\d|chakra-|MuiBox-|MuiButton-)$/i.test($)||/^[a-z][a-z0-9_-]{1,40}$/i.test($)&&I.push($));}return I}function F(E){var I=E.tagName.toLowerCase(),q=D(E);return q.length?I+"."+q.map(function($){return CSS.escape($)}).join("."):I}function A(E){var I=E.tagName.toLowerCase();if(!E.parentElement)return I;var q=Array.from(E.parentElement.children).filter(function($){return $.tagName===E.tagName});return q.length===1?I:I+":nth-of-type("+(q.indexOf(E)+1)+")"}function M(E){for(var I=[],q=E;q&&q!==document.body&&q!==document.documentElement;)I.unshift(A(q)),q=q.parentElement;return I.join(" > ")}function N(E){if(!E||E===document.body||E===document.documentElement)return "body";var I=E.getAttribute?E.getAttribute("id"):null;if(I&&!m(I)){var q="#"+CSS.escape(I);if(g(q))return q}for(var $=["data-testid","data-cy","data-qa","data-test","data-component","data-id","data-key"],X=0;X<$.length;X++){var Z=E.getAttribute($[X]);if(Z&&Z.length<60){var ae=E.tagName.toLowerCase()+"["+$[X]+'="'+CSS.escape(Z)+'"]';if(g(ae))return ae}}var ie=F(E);if(ie.indexOf(".")!==-1&&g(ie))return ie;for(var le=[],ue=null,we=E;we&&we!==document.body&&we!==document.documentElement;){var ge=we.getAttribute?we.getAttribute("id"):null;if(ge&&!m(ge)){var Se="#"+CSS.escape(ge);if(g(Se)){ue=Se;break}}var be=F(we);if(be.indexOf(".")!==-1&&g(be)){ue=be;break}if(le.unshift(we),we=we.parentElement,le.length>6)break}var De=le.map(function(Ie){var wt=F(Ie);if(wt.indexOf(".")!==-1&&Ie.parentElement){var tr=Ie.parentElement.querySelectorAll(":scope > "+wt);if(tr.length===1)return "> "+wt}return "> "+A(Ie)}).join(" "),nt="";if(ue&&De?nt=(ue+" "+De).slice(0,200):ue&&(nt=ue),nt&&g(nt))return nt;var ot=M(E);return ot&&g(ot)?ot:nt||ot||F(E)}function S(E){if(!E)return false;let I=getComputedStyle(E);if(I.display==="none"||I.visibility==="hidden")return false;let q=parseFloat(I.opacity);if(!isNaN(q)&&q<.1)return false;if(!isNaN(q)&&q<.5){var $=I.transform||"";if($&&$!=="none"&&$!=="matrix(1, 0, 0, 1, 0, 0)")return false}let X=E.getBoundingClientRect();if(X.width<=1||X.height<=1)return false;var Z=I.clipPath||"";return !(Z!=="none"&&/inset\(\s*(?:50|100)%/.test(Z)||/rect\(\s*0(?:px)?\s*,?\s*0(?:px)?\s*,?\s*0(?:px)?\s*,?\s*0(?:px)?\s*\)/.test(I.clip||""))}function x(E){if(!E||!S(E))return false;var I=E.tagName;if(I==="TEXTAREA"||I==="SELECT"||I==="OPTION"||I==="OPTGROUP")return parseFloat(getComputedStyle(E).fontSize)!==0;for(var q=window.scrollX,$=window.scrollY,X=Math.max(document.documentElement.scrollWidth,window.innerWidth),Z=Math.max(document.documentElement.scrollHeight,window.innerHeight),ae=getComputedStyle(E),ie=ae.overflowX!=="visible"||ae.overflowY!=="visible",le=E.getBoundingClientRect(),ue=function(){for(var ot=E.parentElement;ot&&ot!==document.body&&ot!==document.documentElement;ot=ot.parentElement){var Ie=getComputedStyle(ot);if(Ie.overflowX!=="visible"||Ie.overflowY!=="visible"||Ie.transform&&Ie.transform!=="none")return true}return false},we=E.firstChild;we;we=we.nextSibling)if(!(we.nodeType!==3||!(we.textContent||"").trim())){var ge=document.createRange();if(ge.selectNodeContents(we),typeof ge.getClientRects!="function")return parseFloat(getComputedStyle(E).fontSize)!==0;for(var Se=ge.getClientRects(),be=0;be<Se.length;be++){var De=Se[be];if(!(De.width<=1||De.height<=1)){var nt=Math.min(De.right,le.right)-Math.max(De.left,le.left)>1&&Math.min(De.bottom,le.bottom)-Math.max(De.top,le.top)>1;if(!(ie&&!nt)){if(De.right+q<=0||De.bottom+$<=0||De.left+q>=X||De.top+$>=Z){if(nt&&ue())return true;continue}return true}}}}return false}function k(E){if(!E)return "";for(var I=[],q=String(E).trim().split(/\s+/),$=0;$<q.length;$++){var X=document.getElementById(q[$]);if(X){var Z=(X.textContent||"").trim();Z&&I.push(Z);}}return I.join(" ").replace(/\s+/g," ").trim()}function C(E){var I=k(E.getAttribute("aria-labelledby"));if(I)return I;var q=E.getAttribute("aria-label")||"";if(q.trim())return q.trim();var $=E.tagName?E.tagName.toLowerCase():"";if($==="input"||$==="select"||$==="textarea"){var X=E.getAttribute("id");if(X)try{var Z=document.querySelector('label[for="'+CSS.escape(X)+'"]');if(Z&&(Z.textContent||"").trim())return (Z.textContent||"").trim().replace(/\s+/g," ")}catch{}var ae=E.closest?E.closest("label"):null;if(ae&&(ae.textContent||"").trim())return (ae.textContent||"").trim().replace(/\s+/g," ")}var ie=(E.textContent||"").trim().replace(/\s+/g," ");if(!ie&&E.querySelector){var le=E.querySelector('img[alt]:not([alt=""])');if(le&&(ie=(le.getAttribute("alt")||"").trim()),!ie){var ue=E.querySelector("svg > title");ue&&(ie=(ue.textContent||"").trim());}}if(ie)return ie;var we=E.getAttribute("title")||"";return we.trim()}var O="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye],[class*=EquallyAI],[id*=ae_],[class*=ae-exclude],[id*=goog-gt],[class*=goog-te],[id*=recaptcha],[class*=intercom],[class*=drift-],[class*=crisp-],[class*=tawk-],[class*=hubspot-],[class*=fb-],[class*=wistia],#wpadminbar,[class*=cmplz-btn],[class*=cmplz-link],[id*=cmplz-],[class*=onetrust],[class*=cookiebot],[class*=borlabs],[class*=brlbs-],[id*=wp-ada-compliance],[class*=wp-ada-compliance],[id*=webability-widget],[class*=webability-a11y]";function L(E){return E?E.closest(O)!==null:false}function V(E){if(!E)return false;if(E.getAttribute("aria-hidden")==="true"||E.getAttribute("role")==="presentation"||E.getAttribute("role")==="none")return true;let I=E.parentElement,q=0;for(;I&&I!==document.body&&q<6;){if(I.getAttribute("aria-hidden")==="true")return true;I=I.parentElement,q++;}return false}function B(E){let I=E.naturalWidth||E.width||0,q=E.naturalHeight||E.height||0;if(I<=2&&q<=2)return true;let $=E.getBoundingClientRect();if($.width<=2&&$.height<=2)return true;let X=(E.src||"").toLowerCase();return !!(X.includes("pixel")||X.includes("beacon")||X.includes("tracker")||X.includes("analytics")||X.includes("adsrvr")||X.includes("doubleclick")||X.includes("facebook.com/tr"))}function j(E){var I=E.closest("article,section,li,.card,[class*=card],[class*=post],[class*=item],[class*=product],[class*=entry]");I||(I=E.closest("div,nav,main,aside,header,footer"));var q=I?I.querySelector("h1,h2,h3,h4,h5,h6"):null,$=q?(q.textContent||"").trim().slice(0,80):"",X=E.parentElement,Z=X?X.tagName.toLowerCase():"",ae=X&&X.getAttribute("role")||"",ie="";if(I){var le=I.querySelector("p,.description,.excerpt,[class*=desc],[class*=summary]");le&&(ie=(le.textContent||"").trim().slice(0,120));}var ue="";if(I){var we=I.querySelector('img[alt]:not([alt=""])');we&&(ue=(we.getAttribute("alt")||"").trim().slice(0,60));}return {nearbyHeading:$,parentTag:Z,parentRole:ae,cardText:ie,imgAlt:ue}}var z={times:"Close",x:"Close","x-lg":"Close","x-circle":"Close","x-mark":"Close",close:"Close","close-circle":"Close",clear:"Clear",cancel:"Cancel",dismiss:"Dismiss","chevron-right":"Next","arrow-right":"Next","caret-right":"Next","angle-right":"Next","chevron-left":"Previous","arrow-left":"Previous","caret-left":"Previous","angle-left":"Previous","chevron-up":"Collapse","arrow-up":"Up","caret-up":"Collapse","angle-up":"Collapse","chevron-down":"Expand","arrow-down":"Down","caret-down":"Expand","angle-down":"Expand",menu:"Menu",bars:"Menu",hamburger:"Menu",list:"Menu",grid:"Grid view",th:"Grid view",search:"Search","magnifying-glass":"Search",magnify:"Search",zoom:"Zoom",user:"User profile",person:"User profile",profile:"User profile","account-circle":"User profile",cart:"Shopping cart","shopping-cart":"Shopping cart",basket:"Shopping cart",bag:"Shopping bag",heart:"Favorite",bookmark:"Bookmark",star:"Rate",home:"Home",house:"Home",gear:"Settings",cog:"Settings",settings:"Settings",tool:"Tools",trash:"Delete","trash-can":"Delete",delete:"Delete",edit:"Edit",pencil:"Edit",pen:"Edit",plus:"Add",add:"Add","plus-circle":"Add",minus:"Remove","minus-circle":"Remove",check:"Confirm","check-circle":"Confirm",checkmark:"Confirm",info:"Information","info-circle":"Information",question:"Help","question-circle":"Help",help:"Help",warning:"Warning",exclamation:"Warning","exclamation-triangle":"Warning",alert:"Alert","external-link":"Open in new tab","external-link-alt":"Open in new tab","box-arrow-up-right":"Open in new tab",download:"Download",upload:"Upload",share:"Share","share-alt":"Share",copy:"Copy",clipboard:"Copy to clipboard",print:"Print",save:"Save",envelope:"Email",email:"Email",mail:"Email",at:"Email",phone:"Phone",telephone:"Phone",mobile:"Mobile phone",location:"Location","map-marker":"Location","map-pin":"Location","geo-alt":"Location",calendar:"Calendar","calendar-alt":"Calendar",clock:"Time",stopwatch:"Timer",eye:"Show","eye-slash":"Hide","eye-off":"Hide",lock:"Lock",unlock:"Unlock",padlock:"Lock",filter:"Filter",sliders:"Adjust",sort:"Sort","sort-alpha-down":"Sort ascending","sort-alpha-up":"Sort descending",refresh:"Refresh",reload:"Refresh",sync:"Refresh","arrows-rotate":"Refresh",play:"Play","play-circle":"Play",pause:"Pause",stop:"Stop","volume-up":"Volume up","volume-down":"Volume down","volume-mute":"Mute",mute:"Mute",speaker:"Audio",twitter:"Twitter","x-twitter":"X (Twitter)","square-x-twitter":"X (Twitter)",facebook:"Facebook","facebook-f":"Facebook","facebook-square":"Facebook","square-facebook":"Facebook","facebook-messenger":"Facebook Messenger",instagram:"Instagram","square-instagram":"Instagram",linkedin:"LinkedIn","linkedin-in":"LinkedIn","square-linkedin":"LinkedIn",youtube:"YouTube","youtube-square":"YouTube","square-youtube":"YouTube",github:"GitHub","github-alt":"GitHub",gitlab:"GitLab",bitbucket:"Bitbucket",tiktok:"TikTok",pinterest:"Pinterest","pinterest-p":"Pinterest","square-pinterest":"Pinterest",rss:"RSS feed","rss-square":"RSS feed",snapchat:"Snapchat","snapchat-ghost":"Snapchat",reddit:"Reddit","reddit-alien":"Reddit",discord:"Discord",slack:"Slack",whatsapp:"WhatsApp",telegram:"Telegram","telegram-plane":"Telegram",vimeo:"Vimeo","vimeo-v":"Vimeo",twitch:"Twitch",tumblr:"Tumblr",medium:"Medium",dribbble:"Dribbble",behance:"Behance",flickr:"Flickr",threads:"Threads",mastodon:"Mastodon",bluesky:"Bluesky",meetup:"Meetup",weibo:"Weibo",wechat:"WeChat",line:"Line",viber:"Viber",skype:"Skype",microsoft:"Microsoft",apple:"Apple",google:"Google","google-plus":"Google+",yelp:"Yelp",tripadvisor:"TripAdvisor",spotify:"Spotify",soundcloud:"SoundCloud",amazon:"Amazon",etsy:"Etsy",ebay:"eBay","arrow-up-right-from-square":"Open in new tab","square-arrow-up-right":"Open in new tab","up-right-from-square":"Open in new tab",back:"Back",forward:"Forward",return:"Return",reply:"Reply","reply-all":"Reply all","forward-arrow":"Forward",redo:"Redo",undo:"Undo","undo-alt":"Undo","rotate-left":"Undo","rotate-right":"Redo",expand:"Expand","expand-arrows-alt":"Expand",compress:"Collapse",minimize:"Minimize",maximize:"Maximize",fullscreen:"Enter fullscreen","fullscreen-exit":"Exit fullscreen",move:"Move",arrows:"Move","arrows-alt":"Move",drag:"Drag",grip:"Drag handle","grip-vertical":"Drag handle","grip-lines":"Drag handle",ellipsis:"More actions","ellipsis-v":"More actions","ellipsis-vertical":"More actions","ellipsis-h":"More actions","ellipsis-horizontal":"More actions","more-vert":"More actions","more-horiz":"More actions","more-vertical":"More actions","more-horizontal":"More actions","dots-vertical":"More actions","three-dots":"More actions","three-dots-vertical":"More actions","play-fill":"Play","pause-fill":"Pause","stop-fill":"Stop","play-pause":"Play/pause",backward:"Rewind","forward-step":"Next track","backward-step":"Previous track","fast-forward":"Fast forward",rewind:"Rewind","skip-forward":"Skip forward","skip-backward":"Skip backward","skip-next":"Next track","skip-previous":"Previous track",volume:"Volume","volume-off":"Mute","volume-x":"Mute","speaker-mute":"Mute",headphones:"Audio",microphone:"Microphone",mic:"Microphone","mic-off":"Mute microphone","microphone-slash":"Mute microphone",video:"Video","video-camera":"Video",camera:"Camera","camera-retro":"Camera",picture:"Picture",image:"Image",images:"Images",photo:"Photo",film:"Video",record:"Record",broadcast:"Broadcast","chevron-right-circle":"Next","chevron-left-circle":"Previous","double-arrow-right":"Next","double-arrow-left":"Previous","angles-right":"Next","angles-left":"Previous","angles-up":"Collapse","angles-down":"Expand",send:"Send","paper-plane":"Send",submit:"Submit",paperclip:"Attach file",attach:"Attach","file-attachment":"Attach file",signature:"Signature","pen-to-square":"Edit","pencil-square":"Edit","pencil-alt":"Edit","square-pen":"Edit",file:"File","file-alt":"Text file","file-text":"Text file","file-lines":"Text file","file-pdf":"PDF document","file-word":"Word document","file-excel":"Excel spreadsheet","file-powerpoint":"PowerPoint presentation","file-zip":"ZIP archive","file-archive":"Archive","file-image":"Image file","file-video":"Video file","file-audio":"Audio file","file-code":"Code file","file-csv":"CSV file",folder:"Folder","folder-open":"Open folder",book:"Book","book-open":"Book",newspaper:"News","bookmark-fill":"Bookmark","cart-plus":"Add to cart","cart-check":"Added to cart","cart-arrow-down":"Add to cart",truck:"Shipping",box:"Package",gift:"Gift",tag:"Tag",tags:"Tags",percent:"Discount","credit-card":"Credit card",wallet:"Wallet",money:"Money","money-bill":"Money","dollar-sign":"Price","euro-sign":"Price","pound-sign":"Price",receipt:"Receipt",store:"Store",shop:"Shop","basket-plus":"Add to basket","heart-fill":"Favorited","star-fill":"Rated","thumbs-up":"Like","thumbs-down":"Dislike",like:"Like",dislike:"Dislike",comment:"Comment",comments:"Comments",chat:"Chat","chat-bubble":"Chat",message:"Message","message-circle":"Message","message-square":"Message",bell:"Notifications","bell-fill":"Notifications",notifications:"Notifications",inbox:"Inbox",archive:"Archive",flag:"Flag",pin:"Pin","pin-fill":"Pinned",thumbtack:"Pin","sign-in":"Sign in","sign-in-alt":"Sign in","sign-out":"Sign out","sign-out-alt":"Sign out","log-in":"Log in","log-out":"Log out",logout:"Log out",login:"Log in","user-plus":"Add user","user-minus":"Remove user","user-circle":"User profile","user-avatar":"User avatar",users:"Users",key:"Password",shield:"Security","shield-check":"Security verified","id-card":"ID card","id-badge":"ID badge","universal-access":"Accessibility","accessible-icon":"Accessibility",wheelchair:"Wheelchair access",braille:"Braille","sign-language":"Sign language","closed-captioning":"Captions",cc:"Captions",sun:"Light mode",moon:"Dark mode",contrast:"Contrast",palette:"Theme",brush:"Theme",globe:"Global",earth:"Global",map:"Map",compass:"Compass",directions:"Directions",route:"Route",navigation:"Navigation",crosshairs:"Locate",spinner:"Loading",loader:"Loading",loading:"Loading","circle-notch":"Loading",hourglass:"Waiting","clock-fill":"Time","check-square":"Confirm","square-check":"Confirm","circle-check":"Confirm","circle-x":"Close",ban:"Blocked",block:"Block","times-circle":"Close",xmark:"Close","xmark-circle":"Close",columns:"Columns view",rows:"Rows view",layout:"Layout",sidebar:"Sidebar","sidebar-toggle":"Toggle sidebar","panel-left":"Left panel","panel-right":"Right panel","list-view":"List view","grid-view":"Grid view",wifi:"Wi-Fi","wifi-off":"Wi-Fi off",bluetooth:"Bluetooth",signal:"Signal",battery:"Battery","battery-full":"Battery full",plug:"Plug",power:"Power","power-off":"Power off","chart-bar":"Bar chart","chart-line":"Line chart","chart-pie":"Pie chart","chart-area":"Area chart","bar-chart":"Bar chart","line-chart":"Line chart","pie-chart":"Pie chart",analytics:"Analytics",statistics:"Statistics","trending-up":"Trending up","trending-down":"Trending down"},U=/^(fa|fas|far|fab|fal|fad|fass|bi|bi-icon|material-icons|material-symbols|ion|ionicon|feather|lucide|dashicons|glyphicon|icofont|heroicon)-/;function ee(E,I,q){var $=[];if(E)for(var X=E.split(/\s+/),Z=0;Z<X.length;Z++){var ae=X[Z];if(ae){var ie=ae.toLowerCase().replace(U,"").replace(/^icon-/,"");ie&&ie!==ae.toLowerCase()&&$.push(ie);}}if(I&&$.push(I.toLowerCase().trim()),q){var le=q.trim().toLowerCase();le.length<30&&/^[a-z_-]+$/.test(le)&&$.push(le.replace(/_/g,"-"));}for(var ue=0;ue<$.length;ue++)if(z[$[ue]])return z[$[ue]];for(var we=0;we<$.length;we++)for(var ge=$[we].split("-"),Se=0;Se<ge.length;Se++)if(z[ge[Se]])return z[ge[Se]];return null}var _;function h(E){if(!E)return null;var I=E.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\s*\)/);if(I)return [parseInt(I[1],10),parseInt(I[2],10),parseInt(I[3],10),I[4]?parseFloat(I[4]):1];if(E==="transparent"||E==="none")return [0,0,0,0];try{if(_===void 0){var q=document.createElement("canvas");q.width=1,q.height=1,_=q.getContext("2d",{willReadFrequently:!0});}if(!_)return null;_.clearRect(0,0,1,1),_.fillStyle="#000000",_.fillStyle=E,_.fillRect(0,0,1,1);var $=_.getImageData(0,0,1,1).data;return [$[0],$[1],$[2],$[3]/255]}catch{return null}}function y(E,I,q){var $=function(X){var Z=X/255;return Z<=.03928?Z/12.92:Math.pow((Z+.055)/1.055,2.4)};return .2126*$(E)+.7152*$(I)+.0722*$(q)}function R(E,I){var q=y(E[0],E[1],E[2]),$=y(I[0],I[1],I[2]),X=Math.max(q,$),Z=Math.min(q,$);return (X+.05)/(Z+.05)}Object.assign(f,{__isUnique:g,__isGeneratedId:m,__cleanClasses:D,__tagWithClass:F,__nthSelector:A,__fullPath:M,uniqueSel:N,isVisible:S,hasRenderedText:x,__resolveIdRefs:k,getAccessibleName:C,WIDGET_SKIP:O,isWidget:L,isHiddenFromAT:V,isTrackingPixel:B,getNearbyContext:j,__ICON_LABELS:z,__ICON_PREFIX_STRIP:U,lookupIconLabel:ee,__colorCtx:_,parseCssColor:h,relLuminance:y,contrastRatio:R}),f.__waDomKernelInstalled=true;}var Pg="1.17.2";function YM(f){return {async evaluate(d,...b){if(typeof d!="function")throw new Error("string evaluate not supported in DOM mode");return await d(...b)},async addScriptTag(){},url:()=>f.location.href}}async function mP(f={}){let d=f.window??globalThis;if(typeof d.document>"u")throw new Error("scanDocument requires a DOM (window.document)");Og(d);let b=YM(d),g=[],m=[],D=[],F=[];await bu(b);let A=await gg(b,m,D,{skipFocusMutating:f.interactiveChecks!==true,internalBugs:F,experimental:f.experimental});if(g.push(...A.map(xg)),f.includeAxe!==false)try{let k=await Promise.resolve().then(()=>F3(qg(),1)),O=await(k.default??k).run(d.document,{runOnly:{type:"tag",values:Eu(f.wcagTags??_u,f.level)},rules:yg(Eu(f.wcagTags??_u,f.level)),resultTypes:["violations","incomplete"]});for(let L of O.violations??[])for(let V of L.nodes??[])g.push({id:`axe-${L.id}-${Oo(Qa(V.target))}`,source:"axe-core",type:L.id,wcag:Su(L.tags),level:ku(L.tags),impact:Cu(L.impact),message:L.help,selector:Qa(V.target),html:V.html?.slice(0,300)});for(let L of O.incomplete??[])for(let V of L.nodes??[])g.push({id:`axe-incomplete-${L.id}-${Oo(Qa(V.target))}`,source:"axe-core",type:L.id,wcag:Su(L.tags),level:ku(L.tags),impact:Cu(L.impact),message:L.help,selector:Qa(V.target),html:V.html?.slice(0,300),confidence:"needs_review",reviewReason:"axe-core flagged this as needing human review"});}catch{D.push("axe:failed \u2014 axe-core did not complete; results are detector-only");}let M=Au(Lo(g).verdicts);try{M=await yh(b,M);}catch{}try{M=await wh(b,M);}catch{}try{M=await vg(b,M);}catch{}M=Za(M,f.level??"AA");let N=Lo(M),S=N.verdicts,x;if(f.judge)try{let k=Za([...Lo(g).undecided,...N.undecided],f.level??"AA"),C=await Lg(b,k,{...f.judge,url:d.location.href,level:f.judge.level??f.level??"AA",vision:!1});C.judged.length&&(x=C.judged),C.promoted.length&&(S=Au([...S,...C.promoted]));}catch{}try{S=await xu(b,S,F);}catch{}return wu(F,await yu(b)),{url:d.location.href,timestamp:new Date().toISOString(),engine:Pg,issues:S,internal_bugs:F,incomplete:[],...x?{judged:x}:{},...m.length?{truncated:m}:{},...D.length?{engineWarnings:D}:{},summary:Dg(S)}}/*! Bundled license information:
456
+ ${JSON.stringify(d,null,1)}`}function BM(f,d={}){let b=f.vision&&f.items.some(D=>D.screenshot),g=b?d.visionModel||CM:d.textModel||Sg,m=[{type:"text",text:qM(f)}];if(b)for(let D of f.items)D.screenshot&&(m.push({type:"text",text:`Crop for ${D.id}:`}),m.push({type:"image_url",image_url:{url:`data:image/png;base64,${D.screenshot}`}}));return {model:g,temperature:0,max_tokens:4096,...g===Sg&&d.disableTextModelReasoning?{reasoning:{enabled:false}}:{},messages:[{role:"system",content:NM},{role:"user",content:m}]}}function HM(f){let d=(f.baseUrl||EM).replace(/\/+$/,""),b=false;try{let g=new URL(d).hostname;b=g==="openrouter.ai"||g.endsWith(".openrouter.ai");}catch{}return async(g,m)=>{let D=await fetch(`${d}/chat/completions`,{method:"POST",signal:m,headers:{"Content-Type":"application/json",Authorization:`Bearer ${f.apiKey}`,"HTTP-Referer":"https://webability.io","X-Title":"WebAbility scanner judge"},body:JSON.stringify(BM(g,{visionModel:f.visionModel,textModel:f.textModel,disableTextModelReasoning:b}))});if(!D.ok)throw new Zn(`judge model HTTP ${D.status}`);let A=(await D.json()).choices?.[0]?.message?.content;if(typeof A=="string")return A;if(Array.isArray(A))return A.map(M=>typeof M?.text=="string"?M.text:"").join("");throw new Error("judge model returned no content")}}function VM(f){let d=f.apiUrl.replace(/\/+$/,"");return async(b,g)=>{let m=await fetch(`${d}/api/judge-incomplete`,{method:"POST",signal:g,redirect:"manual",headers:{"Content-Type":"application/json",...f.token?{Authorization:`Bearer ${f.token}`}:{},...f.internalSecret?{"x-mcp-internal":f.internalSecret}:{}},body:JSON.stringify(b)});if(m.status>=300&&m.status<400)throw new Zn(`judge endpoint redirected (HTTP ${m.status}); not followed`);if(!m.ok)throw new Zn(`judge endpoint HTTP ${m.status}`);return m.json()}}function jM(f){return f.transport?f.transport:f.apiKey?HM({apiKey:f.apiKey,baseUrl:f.baseUrl,visionModel:f.visionModel,textModel:f.textModel}):f.apiUrl?VM({apiUrl:f.apiUrl,token:f.apiToken,internalSecret:f.internalSecret}):null}function $M(f){return f.maxCropChars??(!f.transport&&!f.apiKey&&f.apiUrl?_M:void 0)}async function Lg(f,d,b){let g={promoted:[],judged:[]},m=jM(b);if(d.length===0)return g;let D=b.level??"AA",F=b.timeoutMs??DM,A=Date.now()+F,M=Za([...d],D);if(M.length===0)return g;let N=new Map;for(let h of M){let y=`${h.selector}|${Fu(h)}`,R=N.get(y);R?R.members.push(h):N.set(y,{key:y,members:[h],rep:h,ctx:void 0,kind:"generic"});}let S={elements:{}};if(f)try{await f.evaluate("if(typeof globalThis.__name==='undefined'){globalThis.__name=function(t){return t}}"),S=await f.evaluate(TM,{selectors:[...N.keys()].map(h=>N.get(h).rep.selector),maxHtml:kg});}catch{}for(let h of N.values())h.ctx=S.elements[h.rep.selector],h.ctx&&!h.ctx.found&&(h.ctx=void 0),h.kind=RM(h.rep,h.ctx);let x=new Map;for(let[h,y]of [...N]){if(!y.ctx)continue;let R=`${y.ctx.elementKey}|${Fu(y.rep)}`,E=x.get(R);if(!E){x.set(R,y);continue}E.members.push(...y.members),N.delete(h);}let k={promoted:[],judged:[]},C=(h,y)=>{for(let R of h.members){if(y.verdict==="violation"){let E=GM(R,h,y);if(!E)continue;k.promoted.push(E);}k.judged.push({id:R.id.replace("axe-incomplete-","axe-"),type:R.type,verdict:y.verdict,reason:y.reason});}},O=[...N.values()].filter(h=>h.kind==="contrast");if(O.length&&f){for(let y of O)y.pixels=b.measured?.get(y.rep.selector);let h=O.filter(y=>!y.pixels).map(y=>({selector:y.rep.selector,fg:Ag(y.rep)}));if(h.length)try{for(let y of await _g(f,h))for(let R of O)R.rep.selector===y.selector&&(R.pixels=y);}catch{}}let L=[];for(let h of N.values()){let y=m?No.get(Rg(b.url,h.rep,h.ctx?.html??h.rep.html??"")):void 0;if(y){C(h,y);continue}let R=zM(h);if(R!=="drop"){if(R){C(h,R);continue}L.push(h);}}if(L.length===0||!m)return k;let V=b.vision!==false&&!!f&&typeof f.screenshot=="function",B=new Map,j=new Set,z=0,U=$M(b),ee=h=>({id:h.rep.id,type:h.rep.type,wcag:h.rep.wcag,message:h.rep.message,selector:h.rep.selector,html:(h.ctx?.html??h.rep.html??"").slice(0,kg),context:j.has(h.key)?{...Fg(h),cropNote:"no image attached: the crop was too large to send"}:Fg(h),...B.has(h.key)?{screenshot:B.get(h.key)}:{}}),_=V?xM:wM;for(let h=0;h<L.length;h+=_){let y=A-Date.now();if(y<=0)break;let R=L.slice(h,h+_);if(V){for(let ae of R){if(z>=AM||Date.now()>A)break;let ie=await XM(f,ae.ctx,U);ie&&(z++,ie.data?B.set(ae.key,ie.data):j.add(ae.key));}if(Date.now()>A)break}let E=new Map(R.map(ae=>[ae.rep.id,ae])),I=new AbortController,q=setTimeout(()=>I.abort(),y),$=null,X=false,Z=Date.now();try{let ae=await Promise.race([m({url:b.url,level:D,vision:V,items:R.map(ee)},I.signal),new Promise((ie,le)=>I.signal.addEventListener("abort",()=>le(new Error("judge deadline"))))]);$=PM(ae),Iu()&&console.error(`ai judge: batch ${R.length} items, ${R.filter(ie=>B.has(ie.key)).length} crops, ${Date.now()-Z}ms, ${$?$.length+" verdicts":"MALFORMED: "+String(ae).slice(0,200)}`);}catch(ae){Iu()&&console.error(`ai judge: batch ${R.length} items failed after ${Date.now()-Z}ms: ${ae.message}`),$=null,X=ae instanceof Zn;}finally{clearTimeout(q);}if(!$){if(I.signal.aborted||X)break;continue}for(let ae of $){let ie=E.get(ae.id);if(!ie)continue;E.delete(ae.id);let le={verdict:ae.verdict,reason:IM(ae.reason),fix:ae.fix};No.size>=SM&&No.clear(),No.set(Rg(b.url,ie.rep,ie.ctx?.html??ie.rep.html??""),le),C(ie,le);}}return k}function zM(f){let d=f.ctx;if(f.kind==="alt"){if(d?.role==="presentation"||d?.role==="none")return {verdict:"pass",reason:"declared decorative (role=presentation)"};if(d?.ariaHidden)return {verdict:"pass",reason:"hidden from assistive technology (aria-hidden)"};if(d?.img){let{attrW:b,attrH:g,naturalW:m,naturalH:D}=d.img;if(b>0&&b<=1&&g>0&&g<=1||m>0&&m<=1&&D>0&&D<=1)return {verdict:"pass",reason:"1x1 tracking/spacer pixel"}}return d&&Mu(d)?d.control?d.control.name?{verdict:"pass",reason:`${d.control.tag} is named ("${d.control.name.slice(0,40)}"); the background image needs no text`}:null:{verdict:"pass",reason:"CSS background image on a non-interactive element; decorative"}:d?.parentInteractive?.text?{verdict:"pass",reason:`${d.parentInteractive.tag} is named by its visible link text ("${d.parentInteractive.text.slice(0,40)}"); alt may be empty`}:null}if(f.kind==="motion")return d?.reducedMotionHandled?{verdict:"pass",reason:"a prefers-reduced-motion: reduce rule stops this element's animation"}:null;if(f.kind==="contrast"){if(!f.pixels)return "drop";let b=Lu(f.rep,f.pixels.threshold);return f.pixels.worstRatio>=b?{verdict:"pass",reason:`measured ${f.pixels.worstRatio.toFixed(2)}:1 at worst behind the text, meets ${b}:1`}:f.pixels.bestRatio<b*.97?{verdict:"violation",reason:`measured ${f.pixels.bestRatio.toFixed(2)}:1 at best behind the text, below ${b}:1 everywhere`}:null}return null}function Fg(f){let d=f.ctx,b={};return f.rep.reviewReason&&(b.engineNote=f.rep.reviewReason),d&&(b.tag=d.tag,d.nearText&&(b.nearbyText=d.nearText),d.parentInteractive&&(b.parentControl=d.parentInteractive),f.kind==="alt"&&Mu(d)&&d.control&&(b.control={tag:d.control.tag,accessibleName:d.control.name}),f.kind==="alt"&&d.img&&(b.image={src:d.img.src,alt:d.img.alt,width:d.img.naturalW||d.img.attrW||d.rect.w,height:d.img.naturalH||d.img.attrH||d.rect.h}),f.kind==="contrast"&&f.pixels&&(b.fg=Jn(f.pixels.fg),b.threshold=Lu(f.rep,f.pixels.threshold),b.bestRatio=Ig(f.pixels.bestRatio),b.worstRatio=Ig(f.pixels.worstRatio),b.fontSize=d.fontSize,b.fontWeight=d.fontWeight),f.kind==="generic"&&(b.fg=Jn(d.fg),b.bg=Jn(d.bg),b.size={w:Math.round(d.rect.w),h:Math.round(d.rect.h)})),b}function Lu(f,d){return f.wcag==="1.4.6"||f.type==="contrast_enhanced"?d===3?4.5:7:d}var Ig=f=>Math.round(f*100)/100;function GM(f,d,b){let g=OM(f);if(d.kind==="alt"){let D=MM(b.fix?.value);return D?Mu(d.ctx)?{...g,fix:{attribute:"aria-label",currentValue:"",suggestedValue:D,needsManualReview:false}}:{...g,fix:{attribute:"alt",currentValue:d.ctx?.img?.alt??f.fix?.currentValue??"",suggestedValue:D,needsManualReview:false}}:null}if(d.kind==="contrast"){let D=d.pixels;if(!D)return null;let F=Jn(D.fg),A=Lu(f,D.threshold),M=D.worstBg?Jn(D.worstBg):null,N=D.bestBg?Jn(D.bestBg):null,S=O=>!!O&&!!M&&Sn(O,M)>=A&&(!N||Sn(O,N)>=A),x,k=LM(b.fix?.value),C=M?WM(F,M,A):null;return k&&k!==F.toLowerCase()&&S(k)?x=`color:${k} !important;`:S(C)?x=`color:${C} !important;`:N&&Sn(F,N)>=A&&(x=`background-color:${N} !important;`),{...g,impact:"serious",message:`contrast: ${F} text on its rendered background measures ${D.worstRatio.toFixed(2)}:1 at worst (${D.bestRatio.toFixed(2)}:1 at best, from pixels; judge: ${b.reason||"not readable"}), needs ${A}:1`,fix:{attribute:"style",currentValue:F,...x?{suggestedValue:x}:{},needsManualReview:true}}}let m=f.fix;return m?{...g,fix:m}:b.fix?.attribute&&b.fix.value?{...g,fix:{attribute:b.fix.attribute,currentValue:"",suggestedValue:b.fix.value,needsManualReview:true}}:g}function WM(f,d,b){let g=f.match(Mg);if(!g)return null;let m=parseInt(g[1],16),D=[m>>16&255,m>>8&255,m&255],F=N=>"#"+N.map(S=>Math.round(Math.min(255,Math.max(0,S))).toString(16).padStart(2,"0")).join(""),A=(N,S)=>F(D.map(x=>S?x*(1-N):x+(255-x)*N)),M=null;for(let N of [true,false]){if(Sn(A(1,N),d)<b)continue;let S=0,x=1;for(let C=0;C<24;C++){let O=(S+x)/2;Sn(A(O,N),d)>=b?x=O:S=O;}let k=A(x,N);Sn(k,d)>=b&&(!M||x<M.t)&&(M={t:x,hex:k});}return M?.hex??null}var UM=[1,.6,.35];async function XM(f,d,b){let g=f.screenshot;if(typeof g!="function"||!d||d.rect.w<2||d.rect.h<2||d.hidden)return null;try{let D=Math.min(1200,d.rect.w+16),F=Math.min(600,d.rect.h+16),A=d.rect.x+d.rect.w/2,M=d.rect.y+d.rect.h/2,N=globalThis.Buffer;if(!N)return null;let S=0;for(let x of b===void 0?[1]:UM){let k=Math.max(2,Math.round(D*x)),C=Math.max(2,Math.round(F*x)),O=x===1?Math.max(0,d.rect.x-8):Math.max(0,A-k/2),L=x===1?Math.max(0,d.rect.y-8):Math.max(0,M-C/2),V=await g.call(f,{clip:{x:O,y:L,width:k,height:C},fullPage:!0,type:"png",animations:"disabled"}),B=N.from(V).toString("base64");if(S=B.length,b===void 0||B.length<=b)return {data:B}}return Iu()&&console.error(`ai judge: crop for ${d.tag} left out (${S} base64 chars > ${b} at the smallest clip)`),{}}catch{return null}}function Og(f=globalThis){if(f.__waDomKernelInstalled)return;function g(E){try{return document.querySelectorAll(E).length===1}catch{return false}}function m(E){if(!E||/^_?[Rr]_[a-z0-9]+_/.test(E)||/^:[Rr][0-9a-z]+:/.test(E)||/^«[Rr][0-9a-z]+»/.test(E)||/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(E)||/^[\w-]*(react|gatsby|root|__next|hash|uuid)[\w-]*$/i.test(E)||/^(radix|headlessui|mui|mantine|cdk|ng|ember|downshift|react-select|react-aria|floating-ui)[-_:]/i.test(E)||/[0-9a-f]{16,}/i.test(E))return true;for(var I=E.split(/[-_:.]/).filter(Boolean),q=I.some(function(ie){var le=(ie.match(/[a-z]/gi)||[]).length,ue=(ie.match(/[aeiou]/gi)||[]).length;return le>=4&&ue>=1&&!/\d/.test(ie)}),$=0;$<I.length;$++){var X=I[$];if(!q&&/^\d{7,}$/.test(X)||/^[0-9a-f]{13}$/i.test(X)&&/[a-f]/i.test(X)&&/\d/.test(X))return true;if(X.length>=7&&/\d/.test(X)&&/[a-z]/i.test(X)){var Z=(X.match(/[aeiou]/gi)||[]).length,ae=(X.match(/[a-z]/gi)||[]).length;if(ae>=4&&Z/ae<.2||(X.match(/\d[a-z]|[a-z]\d/gi)||[]).length>=4)return true}}return false}function D(E){if(!E.classList||!E.classList.length)return [];for(var I=[],q=0;q<E.classList.length&&I.length<3;q++){var $=E.classList[q];$&&(/^(active|open|focus|hover|disabled|selected|hidden|sr-only|css-[a-z0-9]{4,}|jss[0-9]+|sc-[a-z0-9]+|[a-z]+-[a-f0-9]{6,}|_\d|chakra-|MuiBox-|MuiButton-)$/i.test($)||/^[a-z][a-z0-9_-]{1,40}$/i.test($)&&I.push($));}return I}function F(E){var I=E.tagName.toLowerCase(),q=D(E);return q.length?I+"."+q.map(function($){return CSS.escape($)}).join("."):I}function A(E){var I=E.tagName.toLowerCase();if(!E.parentElement)return I;var q=Array.from(E.parentElement.children).filter(function($){return $.tagName===E.tagName});return q.length===1?I:I+":nth-of-type("+(q.indexOf(E)+1)+")"}function M(E){for(var I=[],q=E;q&&q!==document.body&&q!==document.documentElement;)I.unshift(A(q)),q=q.parentElement;return I.join(" > ")}function N(E){if(!E||E===document.body||E===document.documentElement)return "body";var I=E.getAttribute?E.getAttribute("id"):null;if(I&&!m(I)){var q="#"+CSS.escape(I);if(g(q))return q}for(var $=["data-testid","data-cy","data-qa","data-test","data-component","data-id","data-key"],X=0;X<$.length;X++){var Z=E.getAttribute($[X]);if(Z&&Z.length<60){var ae=E.tagName.toLowerCase()+"["+$[X]+'="'+CSS.escape(Z)+'"]';if(g(ae))return ae}}var ie=F(E);if(ie.indexOf(".")!==-1&&g(ie))return ie;for(var le=[],ue=null,we=E;we&&we!==document.body&&we!==document.documentElement;){var ge=we.getAttribute?we.getAttribute("id"):null;if(ge&&!m(ge)){var Se="#"+CSS.escape(ge);if(g(Se)){ue=Se;break}}var be=F(we);if(be.indexOf(".")!==-1&&g(be)){ue=be;break}if(le.unshift(we),we=we.parentElement,le.length>6)break}var De=le.map(function(Ie){var wt=F(Ie);if(wt.indexOf(".")!==-1&&Ie.parentElement){var tr=Ie.parentElement.querySelectorAll(":scope > "+wt);if(tr.length===1)return "> "+wt}return "> "+A(Ie)}).join(" "),nt="";if(ue&&De?nt=(ue+" "+De).slice(0,200):ue&&(nt=ue),nt&&g(nt))return nt;var ot=M(E);return ot&&g(ot)?ot:nt||ot||F(E)}function S(E){if(!E)return false;let I=getComputedStyle(E);if(I.display==="none"||I.visibility==="hidden")return false;let q=parseFloat(I.opacity);if(!isNaN(q)&&q<.1)return false;if(!isNaN(q)&&q<.5){var $=I.transform||"";if($&&$!=="none"&&$!=="matrix(1, 0, 0, 1, 0, 0)")return false}let X=E.getBoundingClientRect();if(X.width<=1||X.height<=1)return false;var Z=I.clipPath||"";return !(Z!=="none"&&/inset\(\s*(?:50|100)%/.test(Z)||/rect\(\s*0(?:px)?\s*,?\s*0(?:px)?\s*,?\s*0(?:px)?\s*,?\s*0(?:px)?\s*\)/.test(I.clip||""))}function x(E){if(!E||!S(E))return false;var I=E.tagName;if(I==="TEXTAREA"||I==="SELECT"||I==="OPTION"||I==="OPTGROUP")return parseFloat(getComputedStyle(E).fontSize)!==0;for(var q=window.scrollX,$=window.scrollY,X=Math.max(document.documentElement.scrollWidth,window.innerWidth),Z=Math.max(document.documentElement.scrollHeight,window.innerHeight),ae=getComputedStyle(E),ie=ae.overflowX!=="visible"||ae.overflowY!=="visible",le=E.getBoundingClientRect(),ue=function(){for(var ot=E.parentElement;ot&&ot!==document.body&&ot!==document.documentElement;ot=ot.parentElement){var Ie=getComputedStyle(ot);if(Ie.overflowX!=="visible"||Ie.overflowY!=="visible"||Ie.transform&&Ie.transform!=="none")return true}return false},we=E.firstChild;we;we=we.nextSibling)if(!(we.nodeType!==3||!(we.textContent||"").trim())){var ge=document.createRange();if(ge.selectNodeContents(we),typeof ge.getClientRects!="function")return parseFloat(getComputedStyle(E).fontSize)!==0;for(var Se=ge.getClientRects(),be=0;be<Se.length;be++){var De=Se[be];if(!(De.width<=1||De.height<=1)){var nt=Math.min(De.right,le.right)-Math.max(De.left,le.left)>1&&Math.min(De.bottom,le.bottom)-Math.max(De.top,le.top)>1;if(!(ie&&!nt)){if(De.right+q<=0||De.bottom+$<=0||De.left+q>=X||De.top+$>=Z){if(nt&&ue())return true;continue}return true}}}}return false}function k(E){if(!E)return "";for(var I=[],q=String(E).trim().split(/\s+/),$=0;$<q.length;$++){var X=document.getElementById(q[$]);if(X){var Z=(X.textContent||"").trim();Z&&I.push(Z);}}return I.join(" ").replace(/\s+/g," ").trim()}function C(E){var I=k(E.getAttribute("aria-labelledby"));if(I)return I;var q=E.getAttribute("aria-label")||"";if(q.trim())return q.trim();var $=E.tagName?E.tagName.toLowerCase():"";if($==="input"||$==="select"||$==="textarea"){var X=E.getAttribute("id");if(X)try{var Z=document.querySelector('label[for="'+CSS.escape(X)+'"]');if(Z&&(Z.textContent||"").trim())return (Z.textContent||"").trim().replace(/\s+/g," ")}catch{}var ae=E.closest?E.closest("label"):null;if(ae&&(ae.textContent||"").trim())return (ae.textContent||"").trim().replace(/\s+/g," ")}var ie=(E.textContent||"").trim().replace(/\s+/g," ");if(!ie&&E.querySelector){var le=E.querySelector('img[alt]:not([alt=""])');if(le&&(ie=(le.getAttribute("alt")||"").trim()),!ie){var ue=E.querySelector("svg > title");ue&&(ie=(ue.textContent||"").trim());}}if(ie)return ie;var we=E.getAttribute("title")||"";return we.trim()}var O="[class*=asw-],[class*=userway],[class*=acsb],[class*=audioeye],[class*=EquallyAI],[id*=ae_],[class*=ae-exclude],[id*=goog-gt],[class*=goog-te],[id*=recaptcha],[class*=intercom],[class*=drift-],[class*=crisp-],[class*=tawk-],[class*=hubspot-],[class*=fb-],[class*=wistia],#wpadminbar,[class*=cmplz-btn],[class*=cmplz-link],[id*=cmplz-],[class*=onetrust],[class*=cookiebot],[class*=borlabs],[class*=brlbs-],[id*=wp-ada-compliance],[class*=wp-ada-compliance],[id*=webability-widget],[class*=webability-a11y]";function L(E){return E?E.closest(O)!==null:false}function V(E){if(!E)return false;if(E.getAttribute("aria-hidden")==="true"||E.getAttribute("role")==="presentation"||E.getAttribute("role")==="none")return true;let I=E.parentElement,q=0;for(;I&&I!==document.body&&q<6;){if(I.getAttribute("aria-hidden")==="true")return true;I=I.parentElement,q++;}return false}function B(E){let I=E.naturalWidth||E.width||0,q=E.naturalHeight||E.height||0;if(I<=2&&q<=2)return true;let $=E.getBoundingClientRect();if($.width<=2&&$.height<=2)return true;let X=(E.src||"").toLowerCase();return !!(X.includes("pixel")||X.includes("beacon")||X.includes("tracker")||X.includes("analytics")||X.includes("adsrvr")||X.includes("doubleclick")||X.includes("facebook.com/tr"))}function j(E){var I=E.closest("article,section,li,.card,[class*=card],[class*=post],[class*=item],[class*=product],[class*=entry]");I||(I=E.closest("div,nav,main,aside,header,footer"));var q=I?I.querySelector("h1,h2,h3,h4,h5,h6"):null,$=q?(q.textContent||"").trim().slice(0,80):"",X=E.parentElement,Z=X?X.tagName.toLowerCase():"",ae=X&&X.getAttribute("role")||"",ie="";if(I){var le=I.querySelector("p,.description,.excerpt,[class*=desc],[class*=summary]");le&&(ie=(le.textContent||"").trim().slice(0,120));}var ue="";if(I){var we=I.querySelector('img[alt]:not([alt=""])');we&&(ue=(we.getAttribute("alt")||"").trim().slice(0,60));}return {nearbyHeading:$,parentTag:Z,parentRole:ae,cardText:ie,imgAlt:ue}}var z={times:"Close",x:"Close","x-lg":"Close","x-circle":"Close","x-mark":"Close",close:"Close","close-circle":"Close",clear:"Clear",cancel:"Cancel",dismiss:"Dismiss","chevron-right":"Next","arrow-right":"Next","caret-right":"Next","angle-right":"Next","chevron-left":"Previous","arrow-left":"Previous","caret-left":"Previous","angle-left":"Previous","chevron-up":"Collapse","arrow-up":"Up","caret-up":"Collapse","angle-up":"Collapse","chevron-down":"Expand","arrow-down":"Down","caret-down":"Expand","angle-down":"Expand",menu:"Menu",bars:"Menu",hamburger:"Menu",list:"Menu",grid:"Grid view",th:"Grid view",search:"Search","magnifying-glass":"Search",magnify:"Search",zoom:"Zoom",user:"User profile",person:"User profile",profile:"User profile","account-circle":"User profile",cart:"Shopping cart","shopping-cart":"Shopping cart",basket:"Shopping cart",bag:"Shopping bag",heart:"Favorite",bookmark:"Bookmark",star:"Rate",home:"Home",house:"Home",gear:"Settings",cog:"Settings",settings:"Settings",tool:"Tools",trash:"Delete","trash-can":"Delete",delete:"Delete",edit:"Edit",pencil:"Edit",pen:"Edit",plus:"Add",add:"Add","plus-circle":"Add",minus:"Remove","minus-circle":"Remove",check:"Confirm","check-circle":"Confirm",checkmark:"Confirm",info:"Information","info-circle":"Information",question:"Help","question-circle":"Help",help:"Help",warning:"Warning",exclamation:"Warning","exclamation-triangle":"Warning",alert:"Alert","external-link":"Open in new tab","external-link-alt":"Open in new tab","box-arrow-up-right":"Open in new tab",download:"Download",upload:"Upload",share:"Share","share-alt":"Share",copy:"Copy",clipboard:"Copy to clipboard",print:"Print",save:"Save",envelope:"Email",email:"Email",mail:"Email",at:"Email",phone:"Phone",telephone:"Phone",mobile:"Mobile phone",location:"Location","map-marker":"Location","map-pin":"Location","geo-alt":"Location",calendar:"Calendar","calendar-alt":"Calendar",clock:"Time",stopwatch:"Timer",eye:"Show","eye-slash":"Hide","eye-off":"Hide",lock:"Lock",unlock:"Unlock",padlock:"Lock",filter:"Filter",sliders:"Adjust",sort:"Sort","sort-alpha-down":"Sort ascending","sort-alpha-up":"Sort descending",refresh:"Refresh",reload:"Refresh",sync:"Refresh","arrows-rotate":"Refresh",play:"Play","play-circle":"Play",pause:"Pause",stop:"Stop","volume-up":"Volume up","volume-down":"Volume down","volume-mute":"Mute",mute:"Mute",speaker:"Audio",twitter:"Twitter","x-twitter":"X (Twitter)","square-x-twitter":"X (Twitter)",facebook:"Facebook","facebook-f":"Facebook","facebook-square":"Facebook","square-facebook":"Facebook","facebook-messenger":"Facebook Messenger",instagram:"Instagram","square-instagram":"Instagram",linkedin:"LinkedIn","linkedin-in":"LinkedIn","square-linkedin":"LinkedIn",youtube:"YouTube","youtube-square":"YouTube","square-youtube":"YouTube",github:"GitHub","github-alt":"GitHub",gitlab:"GitLab",bitbucket:"Bitbucket",tiktok:"TikTok",pinterest:"Pinterest","pinterest-p":"Pinterest","square-pinterest":"Pinterest",rss:"RSS feed","rss-square":"RSS feed",snapchat:"Snapchat","snapchat-ghost":"Snapchat",reddit:"Reddit","reddit-alien":"Reddit",discord:"Discord",slack:"Slack",whatsapp:"WhatsApp",telegram:"Telegram","telegram-plane":"Telegram",vimeo:"Vimeo","vimeo-v":"Vimeo",twitch:"Twitch",tumblr:"Tumblr",medium:"Medium",dribbble:"Dribbble",behance:"Behance",flickr:"Flickr",threads:"Threads",mastodon:"Mastodon",bluesky:"Bluesky",meetup:"Meetup",weibo:"Weibo",wechat:"WeChat",line:"Line",viber:"Viber",skype:"Skype",microsoft:"Microsoft",apple:"Apple",google:"Google","google-plus":"Google+",yelp:"Yelp",tripadvisor:"TripAdvisor",spotify:"Spotify",soundcloud:"SoundCloud",amazon:"Amazon",etsy:"Etsy",ebay:"eBay","arrow-up-right-from-square":"Open in new tab","square-arrow-up-right":"Open in new tab","up-right-from-square":"Open in new tab",back:"Back",forward:"Forward",return:"Return",reply:"Reply","reply-all":"Reply all","forward-arrow":"Forward",redo:"Redo",undo:"Undo","undo-alt":"Undo","rotate-left":"Undo","rotate-right":"Redo",expand:"Expand","expand-arrows-alt":"Expand",compress:"Collapse",minimize:"Minimize",maximize:"Maximize",fullscreen:"Enter fullscreen","fullscreen-exit":"Exit fullscreen",move:"Move",arrows:"Move","arrows-alt":"Move",drag:"Drag",grip:"Drag handle","grip-vertical":"Drag handle","grip-lines":"Drag handle",ellipsis:"More actions","ellipsis-v":"More actions","ellipsis-vertical":"More actions","ellipsis-h":"More actions","ellipsis-horizontal":"More actions","more-vert":"More actions","more-horiz":"More actions","more-vertical":"More actions","more-horizontal":"More actions","dots-vertical":"More actions","three-dots":"More actions","three-dots-vertical":"More actions","play-fill":"Play","pause-fill":"Pause","stop-fill":"Stop","play-pause":"Play/pause",backward:"Rewind","forward-step":"Next track","backward-step":"Previous track","fast-forward":"Fast forward",rewind:"Rewind","skip-forward":"Skip forward","skip-backward":"Skip backward","skip-next":"Next track","skip-previous":"Previous track",volume:"Volume","volume-off":"Mute","volume-x":"Mute","speaker-mute":"Mute",headphones:"Audio",microphone:"Microphone",mic:"Microphone","mic-off":"Mute microphone","microphone-slash":"Mute microphone",video:"Video","video-camera":"Video",camera:"Camera","camera-retro":"Camera",picture:"Picture",image:"Image",images:"Images",photo:"Photo",film:"Video",record:"Record",broadcast:"Broadcast","chevron-right-circle":"Next","chevron-left-circle":"Previous","double-arrow-right":"Next","double-arrow-left":"Previous","angles-right":"Next","angles-left":"Previous","angles-up":"Collapse","angles-down":"Expand",send:"Send","paper-plane":"Send",submit:"Submit",paperclip:"Attach file",attach:"Attach","file-attachment":"Attach file",signature:"Signature","pen-to-square":"Edit","pencil-square":"Edit","pencil-alt":"Edit","square-pen":"Edit",file:"File","file-alt":"Text file","file-text":"Text file","file-lines":"Text file","file-pdf":"PDF document","file-word":"Word document","file-excel":"Excel spreadsheet","file-powerpoint":"PowerPoint presentation","file-zip":"ZIP archive","file-archive":"Archive","file-image":"Image file","file-video":"Video file","file-audio":"Audio file","file-code":"Code file","file-csv":"CSV file",folder:"Folder","folder-open":"Open folder",book:"Book","book-open":"Book",newspaper:"News","bookmark-fill":"Bookmark","cart-plus":"Add to cart","cart-check":"Added to cart","cart-arrow-down":"Add to cart",truck:"Shipping",box:"Package",gift:"Gift",tag:"Tag",tags:"Tags",percent:"Discount","credit-card":"Credit card",wallet:"Wallet",money:"Money","money-bill":"Money","dollar-sign":"Price","euro-sign":"Price","pound-sign":"Price",receipt:"Receipt",store:"Store",shop:"Shop","basket-plus":"Add to basket","heart-fill":"Favorited","star-fill":"Rated","thumbs-up":"Like","thumbs-down":"Dislike",like:"Like",dislike:"Dislike",comment:"Comment",comments:"Comments",chat:"Chat","chat-bubble":"Chat",message:"Message","message-circle":"Message","message-square":"Message",bell:"Notifications","bell-fill":"Notifications",notifications:"Notifications",inbox:"Inbox",archive:"Archive",flag:"Flag",pin:"Pin","pin-fill":"Pinned",thumbtack:"Pin","sign-in":"Sign in","sign-in-alt":"Sign in","sign-out":"Sign out","sign-out-alt":"Sign out","log-in":"Log in","log-out":"Log out",logout:"Log out",login:"Log in","user-plus":"Add user","user-minus":"Remove user","user-circle":"User profile","user-avatar":"User avatar",users:"Users",key:"Password",shield:"Security","shield-check":"Security verified","id-card":"ID card","id-badge":"ID badge","universal-access":"Accessibility","accessible-icon":"Accessibility",wheelchair:"Wheelchair access",braille:"Braille","sign-language":"Sign language","closed-captioning":"Captions",cc:"Captions",sun:"Light mode",moon:"Dark mode",contrast:"Contrast",palette:"Theme",brush:"Theme",globe:"Global",earth:"Global",map:"Map",compass:"Compass",directions:"Directions",route:"Route",navigation:"Navigation",crosshairs:"Locate",spinner:"Loading",loader:"Loading",loading:"Loading","circle-notch":"Loading",hourglass:"Waiting","clock-fill":"Time","check-square":"Confirm","square-check":"Confirm","circle-check":"Confirm","circle-x":"Close",ban:"Blocked",block:"Block","times-circle":"Close",xmark:"Close","xmark-circle":"Close",columns:"Columns view",rows:"Rows view",layout:"Layout",sidebar:"Sidebar","sidebar-toggle":"Toggle sidebar","panel-left":"Left panel","panel-right":"Right panel","list-view":"List view","grid-view":"Grid view",wifi:"Wi-Fi","wifi-off":"Wi-Fi off",bluetooth:"Bluetooth",signal:"Signal",battery:"Battery","battery-full":"Battery full",plug:"Plug",power:"Power","power-off":"Power off","chart-bar":"Bar chart","chart-line":"Line chart","chart-pie":"Pie chart","chart-area":"Area chart","bar-chart":"Bar chart","line-chart":"Line chart","pie-chart":"Pie chart",analytics:"Analytics",statistics:"Statistics","trending-up":"Trending up","trending-down":"Trending down"},U=/^(fa|fas|far|fab|fal|fad|fass|bi|bi-icon|material-icons|material-symbols|ion|ionicon|feather|lucide|dashicons|glyphicon|icofont|heroicon)-/;function ee(E,I,q){var $=[];if(E)for(var X=E.split(/\s+/),Z=0;Z<X.length;Z++){var ae=X[Z];if(ae){var ie=ae.toLowerCase().replace(U,"").replace(/^icon-/,"");ie&&ie!==ae.toLowerCase()&&$.push(ie);}}if(I&&$.push(I.toLowerCase().trim()),q){var le=q.trim().toLowerCase();le.length<30&&/^[a-z_-]+$/.test(le)&&$.push(le.replace(/_/g,"-"));}for(var ue=0;ue<$.length;ue++)if(z[$[ue]])return z[$[ue]];for(var we=0;we<$.length;we++)for(var ge=$[we].split("-"),Se=0;Se<ge.length;Se++)if(z[ge[Se]])return z[ge[Se]];return null}var _;function h(E){if(!E)return null;var I=E.match(/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(?:,\s*([\d.]+))?\s*\)/);if(I)return [parseInt(I[1],10),parseInt(I[2],10),parseInt(I[3],10),I[4]?parseFloat(I[4]):1];if(E==="transparent"||E==="none")return [0,0,0,0];try{if(_===void 0){var q=document.createElement("canvas");q.width=1,q.height=1,_=q.getContext("2d",{willReadFrequently:!0});}if(!_)return null;_.clearRect(0,0,1,1),_.fillStyle="#000000",_.fillStyle=E,_.fillRect(0,0,1,1);var $=_.getImageData(0,0,1,1).data;return [$[0],$[1],$[2],$[3]/255]}catch{return null}}function y(E,I,q){var $=function(X){var Z=X/255;return Z<=.03928?Z/12.92:Math.pow((Z+.055)/1.055,2.4)};return .2126*$(E)+.7152*$(I)+.0722*$(q)}function R(E,I){var q=y(E[0],E[1],E[2]),$=y(I[0],I[1],I[2]),X=Math.max(q,$),Z=Math.min(q,$);return (X+.05)/(Z+.05)}Object.assign(f,{__isUnique:g,__isGeneratedId:m,__cleanClasses:D,__tagWithClass:F,__nthSelector:A,__fullPath:M,uniqueSel:N,isVisible:S,hasRenderedText:x,__resolveIdRefs:k,getAccessibleName:C,WIDGET_SKIP:O,isWidget:L,isHiddenFromAT:V,isTrackingPixel:B,getNearbyContext:j,__ICON_LABELS:z,__ICON_PREFIX_STRIP:U,lookupIconLabel:ee,__colorCtx:_,parseCssColor:h,relLuminance:y,contrastRatio:R}),f.__waDomKernelInstalled=true;}var Pg="1.18.0";function YM(f){return {async evaluate(d,...b){if(typeof d!="function")throw new Error("string evaluate not supported in DOM mode");return await d(...b)},async addScriptTag(){},url:()=>f.location.href}}async function mP(f={}){let d=f.window??globalThis;if(typeof d.document>"u")throw new Error("scanDocument requires a DOM (window.document)");Og(d);let b=YM(d),g=[],m=[],D=[],F=[];await bu(b);let A=await gg(b,m,D,{skipFocusMutating:f.interactiveChecks!==true,internalBugs:F,experimental:f.experimental});if(g.push(...A.map(xg)),f.includeAxe!==false)try{let k=await Promise.resolve().then(()=>F3(qg(),1)),O=await(k.default??k).run(d.document,{runOnly:{type:"tag",values:Eu(f.wcagTags??_u,f.level)},rules:yg(Eu(f.wcagTags??_u,f.level)),resultTypes:["violations","incomplete"]});for(let L of O.violations??[])for(let V of L.nodes??[])g.push({id:`axe-${L.id}-${Oo(Qa(V.target))}`,source:"axe-core",type:L.id,wcag:Su(L.tags),level:ku(L.tags),impact:Cu(L.impact),message:L.help,selector:Qa(V.target),html:V.html?.slice(0,300)});for(let L of O.incomplete??[])for(let V of L.nodes??[])g.push({id:`axe-incomplete-${L.id}-${Oo(Qa(V.target))}`,source:"axe-core",type:L.id,wcag:Su(L.tags),level:ku(L.tags),impact:Cu(L.impact),message:L.help,selector:Qa(V.target),html:V.html?.slice(0,300),confidence:"needs_review",reviewReason:"axe-core flagged this as needing human review"});}catch{D.push("axe:failed \u2014 axe-core did not complete; results are detector-only");}let M=Au(Lo(g).verdicts);try{M=await yh(b,M);}catch{}try{M=await wh(b,M);}catch{}try{M=await vg(b,M);}catch{}M=Za(M,f.level??"AA");let N=Lo(M),S=N.verdicts,x;if(f.judge)try{let k=Za([...Lo(g).undecided,...N.undecided],f.level??"AA"),C=await Lg(b,k,{...f.judge,url:d.location.href,level:f.judge.level??f.level??"AA",vision:!1});C.judged.length&&(x=C.judged),C.promoted.length&&(S=Au([...S,...C.promoted]));}catch{}try{S=await xu(b,S,F);}catch{}return wu(F,await yu(b)),{url:d.location.href,timestamp:new Date().toISOString(),engine:Pg,issues:S,internal_bugs:F,incomplete:[],...x?{judged:x}:{},...m.length?{truncated:m}:{},...D.length?{engineWarnings:D}:{},summary:Dg(S)}}/*! Bundled license information:
457
457
 
458
458
  axe-core/axe.js:
459
459
  (*! axe v4.11.3