{"version":3,"file":"shared-lib.pR-CDUHc.mjs","names":["__esmMin","window","init_npm_react_18_3_1","init_ssg_sandbox_shims","ce","c","init_jsx_runtime","navigator","RenderTarget","addPropertyControls","init_framer_B6PCHH0A","ControlType","isPhoneDevice","canNestedElementScroll","node","path","limit","overflow","delta","SmoothScroll","props","isCanvas","motionQuery","current","target","frame","previousTime","stopped","normalized","clamp","intensity","response","writeScroll","stop","hasStopScroll","htmlOverflow","bodyOverflow","syncStoppedState","nextStopped","scheduleFrame","advanceFrame","deltaTime","time","mix","jumpTo","nextTarget","animateTo","resolveScrollTarget","value","element","style","rootStyle","margin","padding","onWheel","event","multiplier","onScroll","actual","onClick","clickable","url","currentUrl","hash","attributeObserver","records","record","markerObserver","release","init_SmoothScroll_Prod","min","max"],"sources":["https:/framerusercontent.com/modules/Yppqt3Cs3Y8TZqvASnXl/m8GA9mPhlmqo0ABsMJfm/SmoothScroll_Prod.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const clamp=(value,min,max)=>Math.max(min,Math.min(max,value));function isPhoneDevice(){return window.matchMedia(\"(max-width: 767px)\").matches||/iPhone|iPod|Android.+Mobile|Windows Phone|webOS|BlackBerry/i.test(navigator.userAgent);}function canNestedElementScroll(path,delta){for(const node of path){if(!(node instanceof HTMLElement))continue;if(node===document.documentElement||node===document.body)break;const limit=node.scrollHeight-node.clientHeight;if(limit<=0)continue;const overflow=getComputedStyle(node).overflowY;if(/^(auto|scroll|overlay)$/.test(overflow)&&(delta>0&&node.scrollTop<limit-1||delta<0&&node.scrollTop>1)){return true;}}return false;}/**\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n */export default function SmoothScroll(props){const{intensity=50}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;React.useEffect(()=>{if(isCanvas||typeof window===\"undefined\")return;window.__framerUniversitySmoothScroll?.release();if(isPhoneDevice())return;const motionQuery=window.matchMedia(\"(prefers-reduced-motion: reduce)\");let current=window.scrollY;let target=current;let frame=0;let previousTime=0;let stopped=false;const normalized=clamp(intensity,0,100)/100;const response=normalized<=.5?.22-.12*(normalized/.5):.1-.07*((normalized-.5)/.5);const writeScroll=top=>{window.scrollTo({top,behavior:\"instant\"});};const stop=()=>{if(frame)cancelAnimationFrame(frame);frame=0;previousTime=0;current=target=window.scrollY;};const hasStopScroll=()=>{if(document.querySelector(\"style[data-frameruni-stop-scroll]\")){return true;}const htmlOverflow=getComputedStyle(document.documentElement).overflowY;const bodyOverflow=getComputedStyle(document.body).overflowY;return htmlOverflow===\"hidden\"||htmlOverflow===\"clip\"||bodyOverflow===\"hidden\"||bodyOverflow===\"clip\";};const syncStoppedState=()=>{const nextStopped=hasStopScroll();if(nextStopped&&!stopped)stop();if(!nextStopped&&stopped){current=target=window.scrollY;}stopped=nextStopped;};const scheduleFrame=()=>{frame=requestAnimationFrame(advanceFrame);};const advanceFrame=time=>{if(stopped||motionQuery.matches){stop();return;}const deltaTime=previousTime?Math.min((time-previousTime)/1e3,.05):1/60;previousTime=time;const mix=1-Math.exp(-response*60*deltaTime);current+=(target-current)*mix;if(Math.abs(target-current)<.35)current=target;writeScroll(current);if(current===target){frame=0;previousTime=0;return;}scheduleFrame();};const jumpTo=nextTarget=>{if(frame)cancelAnimationFrame(frame);frame=0;previousTime=0;current=target=nextTarget;writeScroll(nextTarget);};const animateTo=nextTarget=>{if(motionQuery.matches){jumpTo(nextTarget);return;}current=window.scrollY;target=nextTarget;previousTime=0;if(current===target)return;if(!frame)scheduleFrame();};const resolveScrollTarget=value=>{const limit=Math.max(0,document.documentElement.scrollHeight-window.innerHeight);if(typeof value===\"number\")return clamp(value,0,limit);const element=value instanceof HTMLElement?value:value===\"#\"||value===\"#top\"?null:document.getElementById(value.replace(/^#/,\"\"));if(!element)return 0;const style=getComputedStyle(element);const rootStyle=getComputedStyle(document.documentElement);const margin=Number.parseFloat(style.scrollMarginTop)||0;const padding=Number.parseFloat(rootStyle.scrollPaddingTop)||0;return clamp(element.getBoundingClientRect().top+window.scrollY-margin-padding,0,limit);};const onWheel=event=>{if(stopped||motionQuery.matches||event.ctrlKey||!event.cancelable)return;const multiplier=event.deltaMode===WheelEvent.DOM_DELTA_LINE?16:event.deltaMode===WheelEvent.DOM_DELTA_PAGE?window.innerHeight:1;const delta=event.deltaY*multiplier;if(!delta||canNestedElementScroll(event.composedPath(),delta))return;// Once this page gesture is ours, keep ownership even when the\n// clamped target cannot move. Letting edge events fall through lets\n// native scrolling race the active interpolation and causes bounce.\nevent.preventDefault();const limit=Math.max(0,document.documentElement.scrollHeight-window.innerHeight);const nextTarget=clamp(target+delta,0,limit);if(nextTarget===target)return;target=nextTarget;if(!frame)scheduleFrame();};const onScroll=()=>{const actual=window.scrollY;if(frame&&Math.abs(actual-current)<=1)return;if(frame)cancelAnimationFrame(frame);frame=0;previousTime=0;current=target=actual;};const onClick=event=>{const clickable=event.composedPath().find(node=>node instanceof HTMLElement&&node.matches(\"a[href], button\"));if(!clickable)return;stop();if(!(clickable instanceof HTMLAnchorElement))return;if(event.defaultPrevented)return;if(event.button!==0)return;if(event.metaKey||event.ctrlKey||event.shiftKey||event.altKey)return;if(clickable.hasAttribute(\"download\"))return;if(clickable.target&&clickable.target!==\"\"&&clickable.target!==\"_self\"){return;}const url=new URL(clickable.href,window.location.href);const currentUrl=new URL(window.location.href);const isSamePage=url.origin===currentUrl.origin&&url.pathname===currentUrl.pathname&&url.search===currentUrl.search;if(!isSamePage||!url.hash)return;let hash=url.hash;try{hash=decodeURIComponent(url.hash);}catch{return;}const element=document.getElementById(hash.slice(1));if(!element&&hash!==\"#top\"&&hash!==\"#\")return;event.preventDefault();if(window.location.hash===url.hash){history.replaceState(history.state,\"\",url.hash);}else{history.pushState(history.state,\"\",url.hash);}animateTo(resolveScrollTarget(element??hash));};const attributeObserver=new MutationObserver(records=>{const relevant=records.some(record=>record.type===\"attributes\"&&(record.target===document.documentElement||record.target===document.body));if(relevant)syncStoppedState();});const markerObserver=new MutationObserver(records=>{const relevant=records.some(record=>[...record.addedNodes,...record.removedNodes].some(node=>node instanceof Element&&(node.matches(\"style[data-frameruni-stop-scroll]\")||Boolean(node.querySelector(\"style[data-frameruni-stop-scroll]\")))));if(relevant)syncStoppedState();});attributeObserver.observe(document.documentElement,{attributes:true,attributeFilter:[\"style\",\"class\"]});attributeObserver.observe(document.body,{attributes:true,attributeFilter:[\"style\",\"class\"]});markerObserver.observe(document.head,{subtree:true,childList:true});markerObserver.observe(document.body,{subtree:true,childList:true});const release=()=>{stop();attributeObserver.disconnect();markerObserver.disconnect();window.removeEventListener(\"wheel\",onWheel);window.removeEventListener(\"scroll\",onScroll);window.removeEventListener(\"touchstart\",stop);window.removeEventListener(\"click\",onClick);motionQuery.removeEventListener(\"change\",stop);if(window.__framerUniversitySmoothScroll?.release===release){delete window.__framerUniversitySmoothScroll;}};window.__framerUniversitySmoothScroll={release};window.addEventListener(\"wheel\",onWheel,{passive:false});window.addEventListener(\"scroll\",onScroll,{passive:true});window.addEventListener(\"touchstart\",stop,{passive:true});window.addEventListener(\"click\",onClick);motionQuery.addEventListener(\"change\",stop);syncStoppedState();return release;},[intensity,isCanvas]);return /*#__PURE__*/_jsx(\"div\",{\"data-build\":\"smooth-scroll-prod-20261004-01\",\"aria-hidden\":\"true\",\"data-smooth-scroll-host\":\"\",style:{position:\"relative\",width:\"100%\",height:\"100%\",minWidth:isCanvas?24:0,minHeight:isCanvas?24:0,boxSizing:\"border-box\",border:\"none\",borderRadius:0,pointerEvents:\"none\"}});}addPropertyControls(SmoothScroll,{intensity:{type:ControlType.Number,title:\"Intensity\",min:0,max:100,step:1,defaultValue:50,unit:\"%\",displayStepper:true,description:\"More components at [Framer University](https://frameruni.link/cc).\"}});SmoothScroll.displayName=\"Smooth Scroll\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmoothScroll\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"24\",\"framerIntrinsicWidth\":\"24\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmoothScroll_Prod.map"],"mappings":"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"}