{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/cFCNUo1Ds3rhcmaxa6ny/0ur2yM3uxpU1LfbLGWAI/Scroll_Progress.js", "ssg:https://framerusercontent.com/modules/za79gHOwSZxNFLMTQ9vr/l0oOq8HcswR4yku6oC91/rIrA4x5bC.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";export function withProgress(Component){return props=>{const[progress,setProgress]=useState(0);const animationFrame=useRef();const targetProgress=useRef(0);const currentProgress=useRef(0);useEffect(()=>{const calculateProgress=()=>{const startEl=document.getElementById(\"start\");const endEl=document.getElementById(\"end\");if(startEl&&endEl){const startTop=startEl.getBoundingClientRect().top+window.scrollY;const endTop=endEl.getBoundingClientRect().top+window.scrollY;const sectionHeight=endTop-startTop;const scrollY=window.scrollY;const sectionScrollDistance=scrollY-startTop;const sectionProgress=Math.max(0,Math.min(100,sectionScrollDistance/sectionHeight*100));return sectionProgress;}return 0;};// Smooth animation loop\nconst animateProgress=()=>{const diff=targetProgress.current-currentProgress.current;const step=diff*.06;if(Math.abs(diff)>.01){currentProgress.current+=step;setProgress(currentProgress.current);animationFrame.current=requestAnimationFrame(animateProgress);}else{currentProgress.current=targetProgress.current;setProgress(targetProgress.current);animationFrame.current=null;}};const handleScroll=()=>{const newProgress=calculateProgress();targetProgress.current=newProgress;// Always start animation if not running\nif(!animationFrame.current){animateProgress();}};// Initial setup\nhandleScroll();window.addEventListener(\"scroll\",handleScroll);window.addEventListener(\"resize\",handleScroll);return()=>{window.removeEventListener(\"scroll\",handleScroll);window.removeEventListener(\"resize\",handleScroll);if(animationFrame.current){cancelAnimationFrame(animationFrame.current);}};},[]);return /*#__PURE__*/_jsx(Component,{...props,style:{...props.style,width:`${progress}%`}});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withProgress\":{\"type\":\"reactHoc\",\"name\":\"withProgress\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Scroll_Progress.map", "// Generated by Framer (2f96024)\nimport{fontStore}from\"framer\";fontStore.loadFonts([]);export const fonts=[{explicitInter:true,fonts:[]}];export const css=[\".framer-rrIl8 .framer-styles-preset-bguu2d:not(.rich-text-wrapper), .framer-rrIl8 .framer-styles-preset-bguu2d.rich-text-wrapper a { --framer-link-current-text-color: #000000; --framer-link-current-text-decoration: none; --framer-link-hover-text-color: #000000; --framer-link-hover-text-decoration: underline; --framer-link-text-color: #525252; --framer-link-text-decoration: none; }\"];export const className=\"framer-rrIl8\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "+GAA+F,SAASA,EAAaC,EAAU,CAAC,OAAOC,GAAO,CAAC,GAAK,CAACC,EAASC,CAAW,EAAEC,EAAS,CAAC,EAAQC,EAAeC,EAAO,EAAQC,EAAeD,EAAO,CAAC,EAAQE,EAAgBF,EAAO,CAAC,EAAE,OAAAG,EAAU,IAAI,CAAC,IAAMC,EAAkB,IAAI,CAAC,IAAMC,EAAQ,SAAS,eAAe,OAAO,EAAQC,EAAM,SAAS,eAAe,KAAK,EAAE,GAAGD,GAASC,EAAM,CAAC,IAAMC,EAASF,EAAQ,sBAAsB,EAAE,IAAIG,EAAO,QAA4EC,EAAvDH,EAAM,sBAAsB,EAAE,IAAIE,EAAO,QAAmCD,EAA4CG,EAArBF,EAAO,QAA4CD,EAAiG,OAAlE,KAAK,IAAI,EAAE,KAAK,IAAI,IAAIG,EAAsBD,EAAc,GAAG,CAAC,CAAyB,CAAC,MAAO,EAAE,EAC9wBE,EAAgB,IAAI,CAAC,IAAMC,EAAKX,EAAe,QAAQC,EAAgB,QAAcW,EAAKD,EAAK,IAAO,KAAK,IAAIA,CAAI,EAAE,KAAKV,EAAgB,SAASW,EAAKhB,EAAYK,EAAgB,OAAO,EAAEH,EAAe,QAAQ,sBAAsBY,CAAe,IAAQT,EAAgB,QAAQD,EAAe,QAAQJ,EAAYI,EAAe,OAAO,EAAEF,EAAe,QAAQ,KAAM,EAAQe,EAAa,IAAI,CAAC,IAAMC,EAAYX,EAAkB,EAAEH,EAAe,QAAQc,EAC1chB,EAAe,SAASY,EAAgB,CAAG,EAC/C,OAAAG,EAAa,EAAEN,EAAO,iBAAiB,SAASM,CAAY,EAAEN,EAAO,iBAAiB,SAASM,CAAY,EAAQ,IAAI,CAACN,EAAO,oBAAoB,SAASM,CAAY,EAAEN,EAAO,oBAAoB,SAASM,CAAY,EAAKf,EAAe,SAAS,qBAAqBA,EAAe,OAAO,CAAG,CAAE,EAAE,CAAC,CAAC,EAAsBiB,EAAKtB,EAAU,CAAC,GAAGC,EAAM,MAAM,CAAC,GAAGA,EAAM,MAAM,MAAM,GAAGC,CAAQ,GAAG,CAAC,CAAC,CAAE,CAAE,CCF5WqB,EAAU,UAAU,CAAC,CAAC,EAAS,IAAMC,EAAM,CAAC,CAAC,cAAc,GAAK,MAAM,CAAC,CAAC,CAAC,EAAeC,EAAI,CAAC,iYAAiY,EAAeC,EAAU",
  "names": ["withProgress", "Component", "props", "progress", "setProgress", "ye", "animationFrame", "pe", "targetProgress", "currentProgress", "ue", "calculateProgress", "startEl", "endEl", "startTop", "window", "sectionHeight", "sectionScrollDistance", "animateProgress", "diff", "step", "handleScroll", "newProgress", "p", "fontStore", "fonts", "css", "className"]
}
