{"version":3,"file":"ScannerOverrides.B7wiDEoV.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/nFSUlDLjDusAujJiGIN8/mcOpKEeStYnw4QbDROIO/ScannerOverrides.js"],"sourcesContent":["// ─────────────────────────────────────────────────────────────────────────────\n// AEO Scanner — Framer Code Overrides\n// Production: framer.com/aeo\n//\n// Pages:\n//   Home:     framer.com/aeo\n//   Scanning: framer.com/aeo/scanning\n//   Results:  framer.com/aeo/results\n//\n// DO NOT use this file for the staging site (grateful-encounter-637485.framer.app)\n// For staging, use aeo-results-override-v3.tsx\n// ─────────────────────────────────────────────────────────────────────────────\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState,useRef}from\"react\";const WORKER_URL=\"https://aeo-scanner.framer-aeo.workers.dev\";const MIN_LOADER_MS=1e4;const TIMEOUT_MS=3e4;// Map: check key → data-framer-name of its dot element\nconst CHECK_DOT_NAMES={// Findable\nhttps:\"Dot_https\",robots:\"Dot_robots\",sitemap:\"Dot_sitemap\",canonical:\"Dot_canonical\",aiCrawlers:\"Dot_aiCrawlers\",// Understandable\nh1:\"Dot_h1\",headingHierarchy:\"Dot_headingHierarchy\",structuredData:\"Dot_structuredData\",openGraph:\"Dot_openGraph\",altText:\"Dot_altText\",// Quotable\nmetaDescription:\"Dot_metaDescription\",wordCount:\"Dot_wordCount\",freshness:\"Dot_freshness\",faq:\"Dot_faq\",// Trustworthy\ninternalLinks:\"Dot_internalLinks\",externalCitations:\"Dot_externalCitations\",llmsTxt:\"Dot_llmsTxt\"};const DOT_COLOR=(status,bonus)=>{if(bonus)return status===\"pass\"?\"#00FF66\":\"rgba(255,255,255,0.25)\";return status===\"pass\"?\"#00FF66\":status===\"warn\"?\"#FF9100\":\"#FF6A52\";};// ─────────────────────────────────────────────\n// Home form\n// ─────────────────────────────────────────────\n// Free email domains — block these, require business email\nconst FREE_EMAIL_DOMAINS=new Set([\"gmail.com\",\"googlemail.com\",\"yahoo.com\",\"yahoo.co.uk\",\"yahoo.fr\",\"yahoo.de\",\"hotmail.com\",\"hotmail.co.uk\",\"hotmail.fr\",\"outlook.com\",\"live.com\",\"msn.com\",\"icloud.com\",\"me.com\",\"mac.com\",\"aol.com\",\"protonmail.com\",\"tutanota.com\",\"tutamail.com\",\"zoho.com\",\"yandex.com\",\"yandex.ru\",\"mail.com\",\"gmx.com\",\"gmx.net\",\"inbox.com\"]);function isBusinessEmail(email){const lower=email.trim().toLowerCase();const match=lower.match(/^[^@]+@([^@]+)$/);if(!match)return false;const domain=match[1];return!FREE_EMAIL_DOMAINS.has(domain);}function isValidUrl(raw){let v=raw.trim();if(!v)return{ok:false,normalized:\"\"};if(!/^https?:\\/\\//i.test(v))v=\"https://\"+v;try{const u=new URL(v);// Must have a real TLD — at least one dot in hostname, no spaces\nconst host=u.hostname;if(!host.includes(\".\")||host.includes(\" \"))return{ok:false,normalized:v};// Reject localhost / IP-only\nif(host===\"localhost\"||/^\\d+\\.\\d+\\.\\d+\\.\\d+$/.test(host))return{ok:false,normalized:v};return{ok:true,normalized:v};}catch{return{ok:false,normalized:v};}}function showFormError(name,message){const el=document.querySelector(`[data-framer-name=\"${name}\"]`);if(!el)return;if(message===null){el.style.display=\"none\";el.style.visibility=\"hidden\";return;}const inner=el.querySelector(\"p,span,h1,h2,h3,h4,h5,h6\")||el;inner.textContent=message;inner.style.color=\"#FF6A52\";el.style.display=\"flex\";el.style.opacity=\"1\";el.style.visibility=\"visible\";}export function withHomeForm(Component){return props=>{const submitted=useRef(false);useEffect(()=>{// Guard: only run in real browser, not Framer canvas\nif(typeof window===\"undefined\"||!window.location)return;showFormError(\"FormError_email\",null);showFormError(\"FormError_firstname\",null);showFormError(\"FormError_lastname\",null);try{const scanError=new URLSearchParams(window.location.search).get(\"scanError\");if(scanError){showFormError(\"FormError_url\",scanError);submitted.current=true;window.history.replaceState({},\"\",\"/aeo\");}else{showFormError(\"FormError_url\",null);}}catch{}const getEmailInput=()=>document.querySelector('input[type=\"email\"], input[placeholder*=\"company\"]');const getUrlInput=()=>document.querySelector('input[placeholder*=\"yoursite\"], input[placeholder*=\"site.com\"]');const getFirstnameInput=()=>document.querySelector('input[placeholder*=\"First name\"]');const getLastnameInput=()=>document.querySelector('input[placeholder*=\"Last name\"]');const emailInput=getEmailInput();const urlInput=getUrlInput();const firstnameInput=getFirstnameInput();const lastnameInput=getLastnameInput();const onEmailInput=()=>{if(!submitted.current)return;const val=(emailInput?.value||\"\").trim();if(val.includes(\"@\")&&isBusinessEmail(val))showFormError(\"FormError_email\",null);};const onUrlInput=()=>{if(!submitted.current)return;const val=(urlInput?.value||\"\").trim();if(isValidUrl(val).ok)showFormError(\"FormError_url\",null);};const onFirstnameInput=()=>{if(!submitted.current)return;if((firstnameInput?.value||\"\").trim())showFormError(\"FormError_firstname\",null);};const onLastnameInput=()=>{if(!submitted.current)return;if((lastnameInput?.value||\"\").trim())showFormError(\"FormError_lastname\",null);};const form=document.querySelector(\"form\");const onSubmit=e=>{// Do NOT preventDefault — we need Framer's native form to submit to Sheets\n// iOS Safari commits the virtual keyboard value on the same tick as the submit event.\n// setTimeout(0) defers validation to the next tick so input.value is fully populated.\nsetTimeout(()=>{const emailVal=(getEmailInput()?.value||\"\").trim();const urlVal=(getUrlInput()?.value||\"\").trim();let valid=true;if(!emailVal||!emailVal.includes(\"@\")){showFormError(\"FormError_email\",\"Please enter your work email\");valid=false;}else if(!isBusinessEmail(emailVal)){showFormError(\"FormError_email\",\"Please use a business email — not Gmail, Yahoo, etc.\");valid=false;}else{showFormError(\"FormError_email\",null);}const{ok,normalized}=isValidUrl(urlVal);if(!urlVal){showFormError(\"FormError_url\",\"Please enter your website URL\");valid=false;}else if(!ok){showFormError(\"FormError_url\",\"That doesn’t look like a valid website — try https://yoursite.com\");valid=false;}else{showFormError(\"FormError_url\",null);const urlInput=getUrlInput();if(urlInput){const setter=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,\"value\").set;setter.call(urlInput,normalized);urlInput.dispatchEvent(new Event(\"input\",{bubbles:true}));urlInput.dispatchEvent(new Event(\"change\",{bubbles:true}));}}const firstnameVal=(getFirstnameInput()?.value||\"\").trim();const lastnameVal=(getLastnameInput()?.value||\"\").trim();if(!firstnameVal){showFormError(\"FormError_firstname\",\"Please enter your first name\");valid=false;}else{showFormError(\"FormError_firstname\",null);}if(!lastnameVal){showFormError(\"FormError_lastname\",\"Please enter your last name\");valid=false;}else{showFormError(\"FormError_lastname\",null);}if(!valid)return;submitted.current=true;// Store PII in sessionStorage — keeps it out of the URL, browser history, and Referer headers\ntry{sessionStorage.setItem(\"aeo_email\",emailVal);sessionStorage.setItem(\"aeo_firstname\",firstnameVal);sessionStorage.setItem(\"aeo_lastname\",lastnameVal);}catch{/* sessionStorage unavailable — PII will be missing from Zapier but scan still works */}const scanUrl=`/aeo/scanning?url=${encodeURIComponent(normalized)}&rawUrl=${encodeURIComponent(urlVal)}`;// Don't preventDefault — let Framer's native form submit to Sheets\n// Then redirect after a short delay\nsetTimeout(()=>{window.location.href=scanUrl;},1500);},0)// end iOS keyboard commit fix\n;};const onKeyDown=e=>{if(e.key!==\"Enter\")return;if(e.target?.tagName!==\"INPUT\")return;// Don't preventDefault — Framer needs the native Enter behavior to read field values\n// Double-submit is already guarded by the submitted.current ref in onSubmit\nonSubmit(e);};emailInput?.addEventListener(\"input\",onEmailInput);urlInput?.addEventListener(\"input\",onUrlInput);firstnameInput?.addEventListener(\"input\",onFirstnameInput);lastnameInput?.addEventListener(\"input\",onLastnameInput);form?.addEventListener(\"submit\",onSubmit);document.addEventListener(\"keydown\",onKeyDown);return()=>{emailInput?.removeEventListener(\"input\",onEmailInput);urlInput?.removeEventListener(\"input\",onUrlInput);firstnameInput?.removeEventListener(\"input\",onFirstnameInput);lastnameInput?.removeEventListener(\"input\",onLastnameInput);form?.removeEventListener(\"submit\",onSubmit);document.removeEventListener(\"keydown\",onKeyDown);};},[]);// Return Component directly — no wrapper div that confuses Framer's canvas\nreturn /*#__PURE__*/_jsx(Component,{...props});};}// ─────────────────────────────────────────────\n// Scan flow\n// ─────────────────────────────────────────────\nexport function withScanFlow(Component){return props=>{const[error,setError]=useState(null);const hasRun=useRef(false);useEffect(()=>{if(hasRun.current)return;hasRun.current=true;// Hide placeholder immediately\nconst scanDomainEls=document.querySelectorAll('[data-framer-name=\"ScanDomain\"]');scanDomainEls.forEach(el=>{el.style.opacity=\"0\";});const params=new URLSearchParams(window.location.search);const url=params.get(\"url\");const rawUrl=params.get(\"rawUrl\")||url||\"\";// Read PII from sessionStorage — not from URL to avoid browser history / Referer leaks\nlet email=\"\",firstname=\"\",lastname=\"\";try{email=sessionStorage.getItem(\"aeo_email\")||\"\";firstname=sessionStorage.getItem(\"aeo_firstname\")||\"\";lastname=sessionStorage.getItem(\"aeo_lastname\")||\"\";// Clear immediately after reading — no reason to keep it around\nsessionStorage.removeItem(\"aeo_email\");sessionStorage.removeItem(\"aeo_firstname\");sessionStorage.removeItem(\"aeo_lastname\");}catch{/* sessionStorage unavailable — scan still works without PII */}if(!url){window.location.replace(\"/aeo\");return;}try{const domain=url.replace(/^https?:\\/\\/(www\\.)?/,\"\").replace(/\\/$/,\"\");setText(\"ScanDomain\",domain);// Restore after text is set\nscanDomainEls.forEach(el=>{el.style.opacity=\"1\";});}catch{}const startedAt=Date.now();const scanPromise=fetch(`${WORKER_URL}/scan`,{method:\"POST\",headers:{\"content-type\":\"application/json\"},body:JSON.stringify({url,rawUrl,email,firstname,lastname})}).then(async r=>{if(!r.ok){// Try to parse error message, fall back to generic if body isn't JSON\nlet msg=\"Something went wrong. Try again.\";try{const d=await r.json();msg=d?.error||msg;}catch{}window.location.href=`/aeo?scanError=${encodeURIComponent(msg)}`;throw new Error(msg);}return r.json();});const timeoutPromise=new Promise((_,rej)=>setTimeout(()=>rej(new Error(\"Scan timed out\")),TIMEOUT_MS));Promise.race([scanPromise,timeoutPromise]).then(async data=>{const elapsed=Date.now()-startedAt;const wait=Math.max(0,MIN_LOADER_MS-elapsed);await new Promise(r=>setTimeout(r,wait));window.location.href=`/aeo/results?id=${data.slug}`;}).catch(err=>setError(err.message));},[]);useEffect(()=>{const errEl=document.querySelector('[data-framer-name=\"ScanError\"]');if(errEl)errEl.style.display=error?\"block\":\"none\";if(error){const el=document.querySelector('[data-framer-name=\"ScanStatus\"]');if(el)deepestTextEl(el).textContent=`Error: ${error}`;// Give the user a way back — redirect to scanner after 3s\nsetTimeout(()=>{window.location.href=\"/aeo\";},3e3);}},[error]);return /*#__PURE__*/_jsx(Component,{...props});};}// ─────────────────────────────────────────────\n// Results data\n// ─────────────────────────────────────────────\n// Elements that show placeholder content in Framer — hide the whole element immediately\n// so the user never sees placeholder text flash before real data loads\nconst RESULT_HIDE_NAMES=[\"ResultDomain\",\"ResultVerdict\",\"ResultSubVerdict\",\"ResultBenchmark\",\"ResultScore\",\"Domain Chip Row\",\"Score Number\",\"Score Number Row\",\"Verdict Group\",\"Verdict + Actions\",// Pillar scores\n\"PillarScore_findable\",\"PillarScore_quotable\",\"PillarScore_understandable\",\"PillarScore_trustworthy\",// Pillar ratings\n\"PillarFindableRating\",\"PillarQuotableRating\",\"PillarUnderstandableRating\",\"PillarTrustworthyRating\",// Check scores\n\"CheckScore\",// Score layout and pillar rows\n\"Score Layout\",\"Pillar Score Rows\"];function hideResultPlaceholders(){for(const name of RESULT_HIDE_NAMES){const els=document.querySelectorAll(`[data-framer-name=\"${name}\"]`);els.forEach(el=>{el.style.opacity=\"0\";});}}function showErrorState(){// Restore all hidden elements so the error page isn’t a blank shell\nfor(const name of RESULT_HIDE_NAMES){const els=document.querySelectorAll(`[data-framer-name=\"${name}\"]`);els.forEach(el=>{el.style.opacity=\"1\";});}setText(\"ResultVerdict\",\"We couldn’t load this report.\");setText(\"ResultSubVerdict\",\"Try scanning again at framer.com/aeo.\");}export function withResultsData(Component){return props=>{const hasRun=useRef(false);useEffect(()=>{if(hasRun.current)return;hasRun.current=true;hideResultPlaceholders();const id=new URLSearchParams(window.location.search).get(\"id\");if(!id){window.location.replace(\"/aeo\");return;}fetch(`${WORKER_URL}/result/${id}`).then(r=>r.ok?r.json():Promise.reject()).then(data=>{// Small delay so Framer entrance animations play before we overwrite text\nsetTimeout(()=>{try{render(data);}catch{showErrorState();}},400);}).catch(()=>{hasRun.current=false;showErrorState();});},[]);return /*#__PURE__*/_jsx(Component,{...props});};}// ─────────────────────────────────────────────\n// Render\n// ─────────────────────────────────────────────\nfunction render(data){// Restore all hidden elements now that real data is ready\nfor(const name of RESULT_HIDE_NAMES){const els=document.querySelectorAll(`[data-framer-name=\"${name}\"]`);els.forEach(el=>{el.style.opacity=\"1\";});}// Domain\ntry{setText(\"ResultDomain\",data.url.replace(/^https?:\\/\\/(www\\.)?/,\"\").replace(/\\/$/,\"\"));}catch{}// Verdict + sub-verdict (curly apostrophes)\nsetText(\"ResultVerdict\",typographic(data.verdict||\"\"));setText(\"ResultSubVerdict\",typographic(data.subVerdict||\"\"));// Benchmark text (curly apostrophes)\nsetText(\"ResultBenchmark\",typographic(data.benchmark||\"\"));// Score counter\nanimateCount(\"ResultScore\",data.score);// Overall bar\nanimateBar(\"ScoreBar\",data.score/100,\"#ffffff\",0);// Pillar bars + rating labels — recompute pct from checks directly\nconst pillarMap={findable:{bar:\"PillarFindableBar\",rating:\"PillarFindableRating\"},quotable:{bar:\"PillarQuotableBar\",rating:\"PillarQuotableRating\"},understandable:{bar:\"PillarUnderstandableBar\",rating:\"PillarUnderstandableRating\"},trustworthy:{bar:\"PillarTrustworthyBar\",rating:\"PillarTrustworthyRating\"}};const pillarPct=pillarKey=>{const pillarChecks=Object.values(data.checks).filter(c=>c.pillar===pillarKey);const earned=pillarChecks.reduce((s,c)=>s+(c.score??0),0);const coreMax=pillarChecks.filter(c=>!c.bonus).reduce((s,c)=>s+(c.total??0),0);return coreMax===0?0:Math.min(1,earned/coreMax);};let stagger=200;for(const[key,names]of Object.entries(pillarMap)){const pct=pillarPct(key);const ratingColor=pct>=.7?\"#00FF66\":pct>=.4?\"#FF9100\":\"#FF6A52\";const ratingLabel=pct>=.7?\"Good\":pct>=.4?\"Average\":\"Poor\";animateBar(names.bar,pct,undefined,stagger);stagger+=150;// Update rating label text + color\nconst ratingEl=document.querySelector(`[data-framer-name=\"${names.rating}\"]`);if(ratingEl){const textEl=ratingEl.querySelector(\"h1,h2,h3,h4,h5,h6,p\")||ratingEl;textEl.textContent=ratingLabel;textEl.style.color=ratingColor;// Only force visible if hidden — don't kill Framer entrance animations\nif(window.getComputedStyle(textEl).opacity===\"0\"){textEl.style.opacity=\"1\";}}}// Pillar accordions: summaries + check statuses + dots\npopulatePillarSummaries(data.pillars,data.checks);updateAccordionChecks(data.checks);colorCheckDots(data.checks);}// ─────────────────────────────────────────────\n// Dot coloring — targets named dot elements\n// ─────────────────────────────────────────────\nfunction colorCheckDots(checks){if(!checks)return;for(const[key,check]of Object.entries(checks)){const dotName=CHECK_DOT_NAMES[key];if(!dotName)continue;// Find ALL dots with this name (one per accordion, though typically just one)\nconst dots=document.querySelectorAll(`[data-framer-name=\"${dotName}\"]`);const color=DOT_COLOR(check.status,!!check.bonus);dots.forEach(dot=>{dot.style.background=color;dot.style.backgroundColor=color;// Also try coloring any SVG fill or border-radius circle\ndot.style.color=color;});}}// ─────────────────────────────────────────────\n// Pillar accordion summaries + check rows\n// ─────────────────────────────────────────────\n// Map check key → Framer layer name for its row container\nconst CHECK_ROW_NAMES={https:\"Check_https\",robots:\"Check_robots\",sitemap:\"Check_sitemap\",canonical:\"Check_canonical\",aiCrawlers:\"Check_aiCrawlers\",h1:\"Check_h1\",headingHierarchy:\"Check_headingHierarchy\",structuredData:\"Check_structuredData\",openGraph:\"Check_openGraph\",altText:\"Check_altText\",metaDescription:\"Check_metaDescription\",wordCount:\"Check_wordCount\",freshness:\"Check_freshness\",faq:\"Check_faq\",internalLinks:\"Check_internalLinks\",externalCitations:\"Check_externalCitations\",llmsTxt:\"Check_llmsTxt\"};// Each pillar's score element must be named uniquely in Framer:\n// PillarScore_findable, PillarScore_quotable, PillarScore_understandable, PillarScore_trustworthy\nconst PILLAR_SCORE_NAMES={findable:\"PillarScore_findable\",quotable:\"PillarScore_quotable\",understandable:\"PillarScore_understandable\",trustworthy:\"PillarScore_trustworthy\"};function populatePillarSummaries(pillars,checks){if(!pillars||!checks)return;const pillarOrder=[\"findable\",\"quotable\",\"understandable\",\"trustworthy\"];for(const pillarKey of pillarOrder){// Recompute score from checks — never trust stale KV pillar.score\nconst pillarChecks=Object.values(checks).filter(c=>c.pillar===pillarKey);const earned=pillarChecks.reduce((sum,c)=>sum+(c.score??0),0);const coreMax=pillarChecks.filter(c=>!c.bonus).reduce((sum,c)=>sum+(c.total??0),0);const total=pillars[pillarKey]?.total??25;const raw=coreMax===0?0:earned/coreMax*total;const score=Math.min(total,Math.round(raw));const pct=score/total;const scoreColor=pct>=.7?\"#00FF66\":pct>=.4?\"#FF9100\":\"#FF6A52\";// Target each pillar score element by unique name — no accordion index dependency\nconst elName=PILLAR_SCORE_NAMES[pillarKey];const scoreEl=document.querySelector(`[data-framer-name=\"${elName}\"]`);if(scoreEl){setElText(scoreEl,`${score} / ${total}`);const textEl=scoreEl.querySelector(\"h1,h2,h3,h4,h5,h6,p\")||scoreEl;textEl.style.color=scoreColor;}}}function updateAccordionChecks(checks){if(!checks)return;for(const[key,check]of Object.entries(checks)){const rowName=CHECK_ROW_NAMES[key];if(!rowName)continue;const rows=document.querySelectorAll(`[data-framer-name=\"${rowName}\"]`);const color=check.bonus?check.status===\"pass\"?\"#00FF66\":\"rgba(255,255,255,0.3)\":check.status===\"pass\"?\"#00FF66\":check.status===\"warn\"?\"#FF9100\":\"#FF6A52\";rows.forEach(row=>{// Score: e.g. \"3.5 / 7\"\nconst scoreEl=row.querySelector('[data-framer-name=\"CheckScore\"]');if(scoreEl){const earned=Math.round((check.score??0)*10)/10;const total=check.total??\"\";setElText(scoreEl,total!==\"\"?`${earned} / ${total}`:`${earned}`);const textEl=scoreEl.querySelector(\"h1,h2,h3,h4,h5,h6,p\")||scoreEl;textEl.style.color=color;}// Fix text: show/hide based on pass status — Framer canvas text is source of truth\nconst fixEl=row.querySelector('[data-framer-name=\"CheckFix\"]');if(fixEl){fixEl.style.display=check.status===\"pass\"?\"none\":\"\";}});}}// ─────────────────────────────────────────────\n// Bars\n// ─────────────────────────────────────────────\nfunction pillarColor(pct){if(pct>=.7)return\"#00FF66\";if(pct>=.4)return\"#FF9100\";return\"#FF6A52\";}function animateBar(name,pct,color,startDelay=0){const bar=document.querySelector(`[data-framer-name=\"${name}\"]`);if(!bar)return;const blocks=Array.from(bar.children);const lit=Math.round(pct*blocks.length);const litColor=color||pillarColor(pct);blocks.forEach(block=>{block.style.opacity=\"0.2\";block.style.background=litColor;block.style.transition=\"opacity 0.06s ease\";});const fillDuration=900;blocks.forEach((block,i)=>{if(i<lit){setTimeout(()=>{block.style.opacity=\"1\";},startDelay+i/Math.max(lit,1)*fillDuration);}});}// ─────────────────────────────────────────────\n// Score counter\n// ─────────────────────────────────────────────\nfunction animateCount(name,target,suffix=\"\",duration=1200){const el=document.querySelector(`[data-framer-name=\"${name}\"]`);if(!el)return;const textWrapper=el.querySelector(\"h1, h2, h3, h4, h5, h6, p\")||el;textWrapper.innerHTML=\"\";textWrapper.textContent=\"0\"+suffix;const computed=window.getComputedStyle(textWrapper);if(computed.opacity===\"0\"){textWrapper.style.opacity=\"1\";}if(computed.color===\"rgb(0, 0, 0)\"||computed.color===\"rgba(0, 0, 0, 0)\"){textWrapper.style.color=\"white\";}const steps=30;const stepMs=Math.round(duration/steps);let step=0;const tick=()=>{step++;const progress=Math.min(step/steps,1);const eased=1-Math.pow(1-progress,3);textWrapper.textContent=`${Math.round(eased*target)}${suffix}`;if(progress<1)setTimeout(tick,stepMs);};setTimeout(tick,stepMs);}// ─────────────────────────────────────────────\n// Text helpers\n// ─────────────────────────────────────────────\n// setText: sets text reliably after Framer animations have completed\nfunction setText(name,value){const el=document.querySelector(`[data-framer-name=\"${name}\"]`);if(!el)return;// ResultBenchmark: bold-white label before the em dash, rest stays default color\nif(name===\"ResultBenchmark\"){const textWrapper=el.querySelector(\"h1,h2,h3,h4,h5,h6,p\")||el;const emDash=value.indexOf(\" — \");if(emDash!==-1){const label=value.slice(0,emDash);const rest=value.slice(emDash)// includes \" — \"\n;textWrapper.innerHTML=`<span style=\"color:#ffffff\">${label}</span>${rest}`;}else{textWrapper.textContent=value;}return;}setElText(el,value);}function setElText(el,value){const textWrapper=el.querySelector(\"h1, h2, h3, h4, h5, h6, p\")||el;const computed=window.getComputedStyle(textWrapper);const color=computed.color;textWrapper.innerHTML=\"\";textWrapper.textContent=value;// Only force visibility if element is still hidden (opacity 0 from a hide pass)\n// Do NOT reset filter/transform — that kills Framer entrance animations\nif(computed.opacity===\"0\"){textWrapper.style.opacity=\"1\";}if(color===\"rgb(0, 0, 0)\"||color===\"rgba(0, 0, 0, 0)\"){textWrapper.style.color=\"white\";}// Hide Framer placeholder label siblings e.g. \"(PillarScore)\"\nfor(const child of Array.from(el.children)){if(child===textWrapper)continue;const childText=child.textContent?.trim()||\"\";if(childText.startsWith(\"(\")&&childText.endsWith(\")\")){child.style.display=\"none\";}}}/** Replace straight apostrophes with curly equivalents */function typographic(str){// Replace all straight apostrophes with right single quotation mark (curly)\nreturn str.replace(/'/g,\"’\");}function deepestTextEl(el){const walker=document.createTreeWalker(el,NodeFilter.SHOW_TEXT,null);const textNode=walker.nextNode();return textNode?.parentElement||el;}\nexport const __FramerMetadata__ = {\"exports\":{\"withScanFlow\":{\"type\":\"reactHoc\",\"name\":\"withScanFlow\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withResultsData\":{\"type\":\"reactHoc\",\"name\":\"withResultsData\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHomeForm\":{\"type\":\"reactHoc\",\"name\":\"withHomeForm\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScannerOverrides.map"],"mappings":"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"}