{"version":3,"file":"NavScroll.DG8MeAST.mjs","names":["useState","__legacyOverrideHOC_DataObserverContext","_jsx"],"sources":["https:/framerusercontent.com/modules/5LNbmtC48dL8CEktjrmh/P3mzyYRK0Jjz8dx6whjr/NavScroll.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useState}from\"react\";const PAGE_CONFIGS=[{// Homepage: dark hero, light main section, dark lower section.\nmatch:path=>path===\"/\"||path===\"\",config:{default:\"Transparent Dark\",onScroll:\"Dark\",sections:[{id:\"section-0\",variantDown:\"Light\"},{id:\"section-1\",variantDown:\"Dark\"},{id:\"section-2\",variantDown:\"Light\"}]}},{// Contact and contact/thank-you: dark page, light footer area.\nmatch:path=>path.startsWith(\"/contact\"),config:{default:\"Transparent Dark\",onScroll:\"Dark\",sections:[{id:\"section-0\",variantDown:\"Light\"}]}},{// DeFi insurance article: light page with one dark proof section.\nmatch:path=>path.startsWith(\"/defi-insurance\"),config:{default:\"Transparent Light\",onScroll:\"Light\",sections:[{id:\"defi-dark-start\",variantDown:\"Dark\"},{id:\"defi-dark-section\",variantDown:\"Light\"}]}},{// Claims and product detail pages: light hero, dark middle section.\nmatch:()=>true,config:{default:\"Transparent Light\",onScroll:\"Light\",sections:[{id:\"section-0\",variantDown:\"Dark\"},{id:\"section-1\",variantDown:\"Light\"}]}}];const getConfig=()=>{const path=typeof window!==\"undefined\"?window.location.pathname:\"/\";return PAGE_CONFIGS.find(p=>p.match(path)).config;};const findSection=id=>document.getElementById(id)||document.querySelector(`[data-framer-name=\"${id}\"]`);export function NavScrollVariant(){const[variant,setVariant]=useState(null);useEffect(()=>{const config=getConfig();const getScrollY=()=>window.scrollY??document.documentElement.scrollTop??0;const buildCheckpoints=()=>{const checkpoints=[{y:0,variant:config.default},{y:1,variant:config.onScroll}];config.sections.forEach(({id,variantDown})=>{const el=findSection(id);if(!el)return;const top=el.getBoundingClientRect().top+getScrollY();checkpoints.push({y:top+el.offsetHeight-30,variant:variantDown});});checkpoints.sort((a,b)=>a.y-b.y);return checkpoints;};const getVariantForY=(y,checkpoints)=>{let active=checkpoints[0].variant;for(const cp of checkpoints){if(y>=cp.y)active=cp.variant;else break;}return active;};let checkpoints=[];let currentVariant=config.default;let retryCount=0;const rebuild=()=>{checkpoints=buildCheckpoints();currentVariant=getVariantForY(getScrollY(),checkpoints);setVariant(currentVariant);};const tryInit=()=>{retryCount++;// Sections can mount late. Retry briefly, then build with\n// whatever exists so the nav still reacts to scrolling.\nconst allFound=config.sections.every(({id})=>findSection(id));if(!allFound&&retryCount<50){setTimeout(tryInit,100);return;}rebuild();};tryInit();const handleScroll=()=>{if(checkpoints.length===0)return;const y=getScrollY();const newVariant=getVariantForY(y,checkpoints);if(newVariant!==currentVariant){currentVariant=newVariant;setVariant(newVariant);}};window.addEventListener(\"scroll\",handleScroll,{passive:true});document.addEventListener(\"scroll\",handleScroll,{passive:true});window.addEventListener(\"resize\",rebuild);// Page content can grow or shrink after load (lists revealing rows,\n// charts mounting), which moves the section boundaries. Rebuild the\n// checkpoints whenever the document height changes.\nconst bodyObserver=typeof ResizeObserver!==\"undefined\"?new ResizeObserver(()=>rebuild()):null;bodyObserver?.observe(document.body);return()=>{window.removeEventListener(\"scroll\",handleScroll);document.removeEventListener(\"scroll\",handleScroll);window.removeEventListener(\"resize\",rebuild);bodyObserver?.disconnect();};},[]);return variant?{variant}:{};}import{useContext as __legacyOverrideHOC_useContext}from\"react\";import{DataObserverContext as __legacyOverrideHOC_DataObserverContext}from\"framer\";export function withNavScrollVariant(C){return props=>{__legacyOverrideHOC_useContext(__legacyOverrideHOC_DataObserverContext);return _jsx(C,{...props,...NavScrollVariant(props)});};}withNavScrollVariant.displayName=\"NavScrollVariant\";\nexport const __FramerMetadata__ = {\"exports\":{\"NavScrollVariant\":{\"type\":\"override\",\"name\":\"NavScrollVariant\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withNavScrollVariant\":{\"type\":\"reactHoc\",\"name\":\"withNavScrollVariant\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NavScroll.map"],"mappings":"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"}