{"version":3,"file":"shared-lib.BGJdtven.mjs","names":["useMemo","useCallback","useState","useRef","metadata","siteMetadata","metadataVersion","__FramerMetadata__","metadata","siteMetadata"],"sources":["https:/framerusercontent.com/modules/JUjM4OKWaIDfsIk2l861/anpuUFE1zO6PGmldnP8g/JBScrollSnappingController.js","https:/framerusercontent.com/modules/7cvXnaPfpqQMJUaUruOt/DS7bx7HN59hhScTaknAL/siteMetadata.js","https:/framerusercontent.com/modules/eFSE0XjUMjlS3q0dbB7z/3kqohNvtDjU8QkAmAIgU/TvUp0Opha.js","https:/framerusercontent.com/modules/6EI1pKhwq0NiBFAINdr6/kLKlTM6r9obcAv6D6v0x/x2HbuJuaj.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{startTransition,useCallback,useEffect,useMemo,useRef,useState}from\"react\";function clamp(n,min,max){return Math.max(min,Math.min(max,n));}function getTop(el){const rect=el.getBoundingClientRect();return rect.top+(typeof window!==\"undefined\"?window.scrollY:0);}function uniqBy(arr,key){const seen=new Set;const out=[];for(const item of arr){const k=key(item);if(seen.has(k))continue;seen.add(k);out.push(item);}return out;}function escapeCssIdent(value){const cssAny=typeof CSS!==\"undefined\"?CSS:undefined;if(cssAny?.escape)return cssAny.escape(value);// Fallback: CSS identifier escaping that safely handles spaces/special chars.\n// Uses simple \"\\\\HHHH \" escapes where needed.\nlet out=\"\";for(let i=0;i<value.length;i++){const ch=value[i];const code=value.codePointAt(i)??ch.charCodeAt(0);// Skip surrogate pair extra increment\nif(code>65535)i++;const isSafe=code>=48&&code<=57||code>=65&&code<=90||code>=97&&code<=122||ch===\"_\"||ch===\"-\";if(isSafe){out+=ch;}else{// CSS escape sequence: backslash + hex + space\nout+=`\\\\${code.toString(16)} `;}}return out;}function escapeCssAttrValue(value){// Attribute selectors use a quoted string; escape backslashes and quotes.\nreturn value.replace(/\\\\\\\\/g,\"\\\\\\\\\\\\\\\\\").replace(/\"/g,'\\\\\"');}/**\n * Scroll Snapping Controller\n *\n * @framerIntrinsicWidth 16\n * @framerIntrinsicHeight 16\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function ScrollSnappingController(props){const{enabled,sectionNames,excludedSectionNames,matchMode,sectionSelector,wheelAxis,thresholdPx,lockMs,minWheelDelta,invertDirection,offsetPx,behavior,useCustomSmoothing,smoothFactor,accelPower,decelPower,tallSectionWheelScale,keyboardSupport,ignoreWhenFocused,debug,debugColor,style}=props;const excludedSet=useMemo(()=>{const names=(excludedSectionNames||[]).map(n=>(n||\"\").trim()).filter(Boolean);return new Set(names);},[excludedSectionNames]);const{position:_p,top:_t,left:_l,right:_r,bottom:_b,zIndex:_z,...safeStyle}=style||{};const isStatic=useIsStaticRenderer();const isPreviewLike=useMemo(()=>{const t=RenderTarget.current();return t===RenderTarget.preview;},[]);const isTextInputFocused=useCallback(()=>{if(!ignoreWhenFocused)return false;if(typeof document===\"undefined\")return false;const el=document.activeElement;if(!el)return false;if(el.isContentEditable)return true;const tag=el.tagName;if(tag===\"INPUT\"||tag===\"TEXTAREA\"||tag===\"SELECT\")return true;// Handle focus inside custom editors/wrappers.\nconst closestEditable=el.closest?.(\"input, textarea, select, [contenteditable='true'], [contenteditable=''], [role='textbox']\");return Boolean(closestEditable);},[ignoreWhenFocused]);const[foundCount,setFoundCount]=useState(0);const[excludedFoundCount,setExcludedFoundCount]=useState(0);const sectionsRef=useRef([]);const lockUntilRef=useRef(0);const lastDirectionRef=useRef(null);const lastWheelTsRef=useRef(0);const rafScanRef=useRef(null);const animRafRef=useRef(null);const wheelTargetYRef=useRef(null);const wheelLastTRef=useRef(0);const wheelAnimatingRef=useRef(false);const cancelAnim=useCallback(()=>{if(typeof window===\"undefined\")return;if(animRafRef.current!=null){window.cancelAnimationFrame(animRafRef.current);animRafRef.current=null;}wheelAnimatingRef.current=false;wheelTargetYRef.current=null;wheelLastTRef.current=0;},[]);const easeInOut=useCallback(t=>{const tin=clamp(accelPower,1,6);const tout=clamp(decelPower,1,6);if(t<=0)return 0;if(t>=1)return 1;if(t<.5)return .5*Math.pow(t*2,tin);return 1-.5*Math.pow((1-t)*2,tout);},[accelPower,decelPower]);const scanSections=useCallback(()=>{if(typeof document===\"undefined\")return;const names=(sectionNames||[]).map(n=>(n||\"\").trim()).filter(Boolean);const results=[];const addIfFound=(target,name,el)=>{if(!el)return;if(!(el instanceof HTMLElement))return;target.push({name,el});};const root=document;const queryName=(name,target)=>{const safeIdent=escapeCssIdent(name);const safeAttr=escapeCssAttrValue(name);if(matchMode===\"data-framer-name\"||matchMode===\"either\"){addIfFound(target,name,root.querySelector(`[data-framer-name=\"${safeAttr}\"]`));}if(matchMode===\"id\"||matchMode===\"either\"){addIfFound(target,name,root.querySelector(`#${safeIdent}`));}if(sectionSelector&&sectionSelector.trim().length>0){try{addIfFound(target,name,root.querySelector(sectionSelector.replace(/\\$name/g,safeIdent)));}catch{// ignore invalid selector\n}}};for(const name of names)queryName(name,results);const unique=uniqBy(results,r=>r.el);const sorted=typeof window!==\"undefined\"?[...unique].sort((a,b)=>getTop(a.el)-getTop(b.el)):unique;sectionsRef.current=sorted;startTransition(()=>setFoundCount(sorted.length));startTransition(()=>setExcludedFoundCount(sorted.filter(s=>excludedSet.has(s.name)).length));},[excludedSet,matchMode,sectionNames,sectionSelector]);const scheduleScan=useCallback(()=>{if(typeof window===\"undefined\")return;if(rafScanRef.current!=null)return;rafScanRef.current=window.requestAnimationFrame(()=>{rafScanRef.current=null;scanSections();});},[scanSections]);const getActiveIndex=useCallback(()=>{if(typeof window===\"undefined\")return 0;const sections=sectionsRef.current;if(!sections.length)return 0;const vh=window.innerHeight||0;const yRef=window.scrollY+clamp(thresholdPx,0,Math.max(0,vh));// Prefer the section that actually contains the reference point.\nfor(let i=0;i<sections.length;i++){const el=sections[i].el;const rect=el.getBoundingClientRect();const top=rect.top+window.scrollY;const bottom=top+rect.height;if(yRef>=top&&yRef<bottom)return i;}// Fallback to closest top (useful near boundaries)\nlet bestIdx=0;let bestDist=Number.POSITIVE_INFINITY;for(let i=0;i<sections.length;i++){const top=getTop(sections[i].el);const dist=Math.abs(top-yRef);if(dist<bestDist){bestDist=dist;bestIdx=i;}}return bestIdx;},[thresholdPx]);const getActiveIndexForDir=useCallback(dir=>{if(typeof window===\"undefined\")return 0;const sections=sectionsRef.current;if(!sections.length)return 0;const vh=window.innerHeight||0;const thr=clamp(thresholdPx,0,Math.max(0,vh));// Use a single, stable reference point for both directions.\n// Directional reference points can cause the active index to \"advance\" early near\n// section boundaries (especially after excluded/tall sections), which leads to skipping.\nconst yRef=window.scrollY+thr;for(let i=0;i<sections.length;i++){const el=sections[i].el;const rect=el.getBoundingClientRect();const top=rect.top+window.scrollY;const bottom=top+rect.height;if(yRef>=top&&yRef<bottom)return i;}let bestIdx=0;let bestDist=Number.POSITIVE_INFINITY;for(let i=0;i<sections.length;i++){const top=getTop(sections[i].el);const dist=Math.abs(top-yRef);if(dist<bestDist){bestDist=dist;bestIdx=i;}}return bestIdx;},[thresholdPx]);const isExcludedActiveSection=useCallback(dir=>{const sections=sectionsRef.current;if(!sections.length)return false;const idx=dir==null?getActiveIndex():getActiveIndexForDir(dir);const name=sections[idx]?.name;if(!name)return false;return excludedSet.has(name);},[excludedSet,getActiveIndex,getActiveIndexForDir]);const canScrollWithinActiveSection=useCallback(dir=>{if(typeof window===\"undefined\")return false;const sections=sectionsRef.current;if(!sections.length)return false;const idx=getActiveIndexForDir(dir);const s=sections[idx];if(!s?.el)return false;const rect=s.el.getBoundingClientRect();const top=rect.top+window.scrollY;const height=rect.height;const bottom=top+height;const vh=window.innerHeight||0;const yTop=window.scrollY;const yBottom=yTop+vh;// Excluded sections behave like regular scroll (no snapping) while we're still inside them.\n// Once we reach the edge (top/bottom) and keep scrolling, snapping can resume.\nif(excludedSet.has(s.name)){if(dir===1)return yBottom<bottom-1;return yTop>top+1;}// If section fits in viewport, snapping is fine.\nif(height<=vh+1)return false;// Allow native scrolling while there's still unviewed content within the active tall section.\nif(dir===1)return yBottom<bottom-1;return yTop>top+1;},[excludedSet,getActiveIndexForDir]);const scrollToIndex=useCallback((idx,align=\"top\")=>{if(typeof window===\"undefined\")return;const sections=sectionsRef.current;if(!sections.length)return;const clampedIdx=clamp(idx,0,sections.length-1);const target=sections[clampedIdx];if(!target?.el)return;const rect=target.el.getBoundingClientRect();const baseTop=getTop(target.el);const vh=typeof window!==\"undefined\"?window.innerHeight||0:0;const top=clampedIdx===0&&align===\"top\"?clamp(0+offsetPx,0,Number.POSITIVE_INFINITY):align===\"bottom\"&&rect.height>vh+1?baseTop+rect.height-vh+offsetPx:baseTop+offsetPx;cancelAnim();if(behavior===\"auto\"||!useCustomSmoothing){lockUntilRef.current=Date.now()+lockMs;window.scrollTo({top,behavior});return;}const startY=window.scrollY;const delta=top-startY;if(Math.abs(delta)<.5)return;const factor=clamp(smoothFactor,.1,5);const dist=Math.abs(delta);const duration=clamp((420+dist*.22)*factor,220,2600);lockUntilRef.current=Date.now()+Math.max(lockMs,duration);const startT=performance.now();const tick=now=>{const t=clamp((now-startT)/duration,0,1);const eased=easeInOut(t);window.scrollTo({top:startY+delta*eased,behavior:\"auto\"});if(t<1){animRafRef.current=window.requestAnimationFrame(tick);}else{animRafRef.current=null;}};animRafRef.current=window.requestAnimationFrame(tick);},[behavior,cancelAnim,easeInOut,lockMs,offsetPx,smoothFactor,useCustomSmoothing]);const smoothScrollBy=useCallback(rawDelta=>{if(typeof window===\"undefined\")return;if(!useCustomSmoothing)return;const delta=rawDelta;if(Math.abs(delta)<.5)return;const maxY=Math.max(0,document.documentElement.scrollHeight-(window.innerHeight||0));// Accumulate wheel input into a single animated target for smoother tall-section scrolling.\nconst base=wheelTargetYRef.current==null?window.scrollY:wheelTargetYRef.current;const nextTarget=clamp(base+delta,0,maxY);wheelTargetYRef.current=nextTarget;if(wheelAnimatingRef.current)return;wheelAnimatingRef.current=true;wheelLastTRef.current=0;const factor=clamp(smoothFactor,.1,5);const tau=.045*factor// seconds; lower = less \"sliding\" / quicker settle\n;const tick=now=>{const last=wheelLastTRef.current||now;const dtMs=clamp(now-last,1,40);wheelLastTRef.current=now;const current=window.scrollY;const target=wheelTargetYRef.current==null?current:wheelTargetYRef.current;const diff=target-current;// If we've basically arrived, snap to target and stop.\nif(Math.abs(diff)<1.5){window.scrollTo({top:target,behavior:\"auto\"});wheelAnimatingRef.current=false;wheelTargetYRef.current=null;animRafRef.current=null;return;}// Exponential smoothing step (time-based), shaped by accel/decel curve.\n// Slightly boosted alpha reduces the long \"glide\" at the end.\nconst alphaRaw=1-Math.exp(-dtMs/(tau*1e3));const alpha=clamp(easeInOut(clamp(alphaRaw,0,1))*1.35,0,1);window.scrollTo({top:current+diff*alpha,behavior:\"auto\"});animRafRef.current=window.requestAnimationFrame(tick);};animRafRef.current=window.requestAnimationFrame(tick);},[cancelAnim,easeInOut,smoothFactor,useCustomSmoothing]);const moveBy=useCallback(dir=>{const sections=sectionsRef.current;if(!sections.length)return;const active=getActiveIndexForDir(dir);const next=active+dir;// If the next section is excluded, do not snap over it; let normal scrolling move through it.\nif(next>=0&&next<sections.length){const nm=sections[next]?.name;if(nm&&excludedSet.has(nm))return;}if(dir===-1&&active===1&&next===0){// When going up into the first section from the second section, prefer aligning to its bottom if it's tall\n// so we don't skip its bottom content.\nscrollToIndex(0,\"bottom\");return;}if(next<=0){cancelAnim();if(behavior===\"auto\"||!useCustomSmoothing){lockUntilRef.current=Date.now()+lockMs;window.scrollTo({top:clamp(0+offsetPx,0,Number.POSITIVE_INFINITY),behavior});return;}scrollToIndex(0,\"top\");return;}scrollToIndex(next,dir===-1?\"bottom\":\"top\");},[behavior,cancelAnim,excludedSet,getActiveIndexForDir,lockMs,offsetPx,scrollToIndex,useCustomSmoothing]);useEffect(()=>{if(isStatic)return;if(typeof window===\"undefined\"||typeof document===\"undefined\")return;scanSections();const t=window.setTimeout(()=>scanSections(),50);const onResize=()=>scheduleScan();window.addEventListener(\"resize\",onResize);const mo=new MutationObserver(()=>scheduleScan());mo.observe(document.documentElement,{childList:true,subtree:true,attributes:true});return()=>{window.clearTimeout(t);window.removeEventListener(\"resize\",onResize);mo.disconnect();if(rafScanRef.current!=null){window.cancelAnimationFrame(rafScanRef.current);rafScanRef.current=null;}};},[isStatic,scanSections,scheduleScan]);useEffect(()=>{if(isStatic)return;if(!enabled)return;if(!isPreviewLike)return;if(typeof window===\"undefined\")return;const onWheel=e=>{if(isTextInputFocused())return;const dx=e.deltaX;const dy=e.deltaY;const primaryDelta=wheelAxis===\"vertical-only\"?dy:Math.abs(dy)>=Math.abs(dx)?dy:dx;if(Math.abs(primaryDelta)<minWheelDelta)return;const dir=primaryDelta>0!==invertDirection?1:-1;// If the next section is excluded, do not snap over it; let normal scrolling move through it.\nconst sections=sectionsRef.current;if(sections.length){const active=getActiveIndexForDir(dir);const next=active+dir;if(next>=0&&next<sections.length){const nm=sections[next]?.name;if(nm&&excludedSet.has(nm)){if(useCustomSmoothing){e.preventDefault();lockUntilRef.current=0;lastDirectionRef.current=null;smoothScrollBy(primaryDelta*tallSectionWheelScale);return;}cancelAnim();lockUntilRef.current=0;lastDirectionRef.current=null;return;}}}// Tall section: let user scroll through it normally (optionally smoothed).\nif(canScrollWithinActiveSection(dir)){if(useCustomSmoothing){e.preventDefault();lockUntilRef.current=0;lastDirectionRef.current=null;smoothScrollBy(primaryDelta*tallSectionWheelScale);return;}cancelAnim();lockUntilRef.current=0;lastDirectionRef.current=null;return;}const now=Date.now();if(now<lockUntilRef.current){e.preventDefault();return;}const dt=now-lastWheelTsRef.current;lastWheelTsRef.current=now;// Reduce hyper-sensitive trackpad bursts: one snap per direction burst.\nif(lastDirectionRef.current===dir&&dt<lockMs*.6){e.preventDefault();return;}lastDirectionRef.current=dir;e.preventDefault();moveBy(dir);};window.addEventListener(\"wheel\",onWheel,{passive:false});return()=>{window.removeEventListener(\"wheel\",onWheel);};},[canScrollWithinActiveSection,cancelAnim,enabled,invertDirection,isPreviewLike,isStatic,isTextInputFocused,lockMs,minWheelDelta,moveBy,smoothScrollBy,useCustomSmoothing,wheelAxis,tallSectionWheelScale,excludedSet,getActiveIndexForDir]);useEffect(()=>{if(isStatic)return;if(!enabled)return;if(!isPreviewLike)return;if(!keyboardSupport)return;if(typeof window===\"undefined\")return;const onKeyDown=e=>{if(isTextInputFocused())return;if(Date.now()<lockUntilRef.current)return;if(e.key===\"ArrowDown\"||e.key===\"PageDown\"){// If the next section is excluded, let native key behavior scroll into it.\nconst sections=sectionsRef.current;if(sections.length){const active=getActiveIndexForDir(1);const next=active+1;const nm=sections[next]?.name;if(nm&&excludedSet.has(nm))return;}if(canScrollWithinActiveSection(1))return;e.preventDefault();moveBy(1);return;}if(e.key===\"ArrowUp\"||e.key===\"PageUp\"){// If the previous section is excluded, let native key behavior scroll into it.\nconst sections=sectionsRef.current;if(sections.length){const active=getActiveIndexForDir(-1);const next=active-1;const nm=sections[next]?.name;if(nm&&excludedSet.has(nm))return;}if(canScrollWithinActiveSection(-1))return;e.preventDefault();moveBy(-1);return;}if(e.key===\"Home\"){e.preventDefault();cancelAnim();window.scrollTo({top:clamp(0+offsetPx,0,Number.POSITIVE_INFINITY),behavior:\"auto\"});return;}if(e.key===\"End\"){e.preventDefault();const sections=sectionsRef.current;let last=sections.length-1;while(last>=0){const nm=sections[last]?.name;if(!nm||!excludedSet.has(nm))break;last--;}scrollToIndex(last,\"bottom\");}};window.addEventListener(\"keydown\",onKeyDown,{passive:false});return()=>window.removeEventListener(\"keydown\",onKeyDown);},[canScrollWithinActiveSection,cancelAnim,enabled,excludedSet,isPreviewLike,isStatic,isTextInputFocused,keyboardSupport,moveBy,offsetPx,scrollToIndex,getActiveIndexForDir]);useEffect(()=>{if(typeof window===\"undefined\")return;return()=>cancelAnim();},[cancelAnim]);const showBadge=RenderTarget.current()===RenderTarget.canvas||debug;return /*#__PURE__*/_jsx(\"div\",{style:{...safeStyle,position:\"fixed\",top:0,left:0,zIndex:10,width:safeStyle.width??\"100%\",height:safeStyle.height??\"100%\",pointerEvents:\"none\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"transparent\"},\"aria-hidden\":\"true\",children:showBadge?/*#__PURE__*/_jsxs(\"div\",{style:{pointerEvents:\"none\",padding:\"6px 8px\",borderRadius:8,fontSize:11,lineHeight:\"1em\",fontFamily:\"ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial\",color:\"#000\",background:debugColor,border:\"1px solid rgba(0,0,0,0.08)\",whiteSpace:\"nowrap\"},children:[\"Scroll Snapping \",enabled?\"On\":\"Off\",\" • \",foundCount,\" \",\"sections • \",excludedFoundCount,\" excluded\"]}):null});}addPropertyControls(ScrollSnappingController,{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},sectionNames:{type:ControlType.Array,title:\"Section Names\",maxCount:30,control:{type:ControlType.String,defaultValue:\"Section\"},defaultValue:[\"Hero\",\"Features\",\"Pricing\"]},excludedSectionNames:{type:ControlType.Array,title:\"Excluded Sections\",maxCount:30,control:{type:ControlType.String,defaultValue:\"\"},defaultValue:[\"\"]},matchMode:{type:ControlType.Enum,title:\"Match\",options:[\"data-framer-name\",\"id\",\"either\"],optionTitles:[\"Framer Name\",\"ID\",\"Either\"],defaultValue:\"either\",displaySegmentedControl:true},sectionSelector:{type:ControlType.String,title:\"Extra Selector\",defaultValue:\"\",placeholder:\"Optional, use $name placeholder\"},behavior:{type:ControlType.Enum,title:\"Behavior\",options:[\"smooth\",\"auto\"],optionTitles:[\"Smooth\",\"Instant\"],defaultValue:\"smooth\",displaySegmentedControl:true},useCustomSmoothing:{type:ControlType.Boolean,title:\"Custom Smooth\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:({behavior})=>behavior!==\"smooth\"},smoothFactor:{type:ControlType.Number,title:\"Smooth Factor\",defaultValue:2,min:.1,max:5,step:.1,hidden:({behavior,useCustomSmoothing})=>behavior!==\"smooth\"||!useCustomSmoothing},accelPower:{type:ControlType.Number,title:\"Accel\",defaultValue:2,min:1,max:6,step:.1,hidden:({behavior,useCustomSmoothing})=>behavior!==\"smooth\"||!useCustomSmoothing},decelPower:{type:ControlType.Number,title:\"Decel\",defaultValue:2,min:1,max:6,step:.1,hidden:({behavior,useCustomSmoothing})=>behavior!==\"smooth\"||!useCustomSmoothing},tallSectionWheelScale:{type:ControlType.Number,title:\"Tall Section Scroll Speed\",defaultValue:1.5,min:.5,max:4,step:.1,hidden:({behavior,useCustomSmoothing})=>behavior!==\"smooth\"||!useCustomSmoothing},keyboardSupport:{type:ControlType.Boolean,title:\"Keyboard Support\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},ignoreWhenFocused:{type:ControlType.Boolean,title:\"Ignore When Typing\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},offsetPx:{type:ControlType.Number,title:\"Offset\",defaultValue:0,min:-400,max:400,step:1,unit:\"px\"},thresholdPx:{type:ControlType.Number,title:\"Active Threshold\",defaultValue:100,min:0,max:600,step:1,unit:\"px\"},lockMs:{type:ControlType.Number,title:\"Lock\",defaultValue:300,min:100,max:5e3,step:50,unit:\"ms\"},minWheelDelta:{type:ControlType.Number,title:\"Min Wheel\",defaultValue:20,min:1,max:200,step:1},wheelAxis:{type:ControlType.Enum,title:\"Wheel Axis\",options:[\"both\",\"vertical-only\"],optionTitles:[\"Both\",\"Vertical\"],defaultValue:\"both\",displaySegmentedControl:true},invertDirection:{type:ControlType.Boolean,title:\"Invert\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},debug:{type:ControlType.Boolean,title:\"Debug\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\"},debugColor:{type:ControlType.Color,title:\"Debug Color\",defaultValue:\"#FFFFFF\",hidden:({debug})=>!debug}});ScrollSnappingController.displayName=\"Scroll Snapping Controller\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrollSnappingController\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"16\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicHeight\":\"16\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./JBScrollSnappingController.map","// Generated by Framer (0f5ea8b)\nexport default function metadata(params,activeLocale){return{description:\"Precision section snapping with smooth navigation control\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/Ju9VVh1gkLkQ5hrtNncoyKy7Qrg.png\",title:\"Scroll Snapping Controller\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (0f5ea8b)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"1duulzr\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"qv068l\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"1pyodlb\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-8zYL1\",socialImage:\"https://framerusercontent.com/assets/Ju9VVh1gkLkQ5hrtNncoyKy7Qrg.png\",title:\"Scroll Snapping Controller\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (0f5ea8b)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"wee1eg\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"1pd99d9\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"6m683z\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},framerSearch:{index:true},robots:\"max-image-preview:large\",serializationId:\"framer-5Qjox\",socialImage:\"https://framerusercontent.com/assets/Ju9VVh1gkLkQ5hrtNncoyKy7Qrg.png\",title:\"Scroll Snapping Controller | Infos\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}