{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/Yppqt3Cs3Y8TZqvASnXl/TXhR1VriQwDbYQl0Jpzg/SmoothScroll_Prod.js"],
  "sourcesContent": ["import{jsx as _jsx,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import Lenis from\"lenis\";// import Lenis from \"@studio-freight/lenis\"\nimport{useEffect,useRef}from\"react\";/**\n * @framerDisableUnlink\n */export default function SmoothScroll(props){const{intensity}=props;const lenis=useRef(null);useEffect(()=>{if(lenis.current){lenis.current.scrollTo(0,{immediate:true});}},[lenis]);// Watch for stop scroll elements\nuseEffect(()=>{const checkForStopScroll=()=>{const stopScrollElement=document.querySelector(\"[data-frameruni-stop-scroll]\");const htmlElement=document.documentElement;const hasHiddenOverflow=htmlElement.style.overflow===\"hidden\";if(lenis.current){if(stopScrollElement||hasHiddenOverflow){lenis.current.stop();}else{lenis.current.start();}}};// Initial check\ncheckForStopScroll();// Set up observers\nconst stopScrollObserver=new MutationObserver(checkForStopScroll);const htmlStyleObserver=new MutationObserver(checkForStopScroll);// Observe document for data-frameruni-stop-scroll attribute\nstopScrollObserver.observe(document.documentElement,{childList:true,subtree:true,attributes:true,attributeFilter:[\"data-frameruni-stop-scroll\"]});// Observe only the HTML element for style changes\nhtmlStyleObserver.observe(document.documentElement,{attributes:true,attributeFilter:[\"style\"]});return()=>{stopScrollObserver.disconnect();htmlStyleObserver.disconnect();};},[]);useEffect(()=>{const allElements=document.getElementsByTagName(\"*\");for(let i=0;i<allElements.length;i++){const element=allElements[i];const computedStyle=window.getComputedStyle(element);if(computedStyle.getPropertyValue(\"overflow\")===\"auto\"){element.setAttribute(\"data-lenis-prevent\",\"true\");}}},[]);useEffect(()=>{lenis.current=new Lenis({duration:intensity/10});const raf=time=>{if(lenis.current){lenis.current.raf(time);requestAnimationFrame(raf);}};requestAnimationFrame(raf);return()=>{if(lenis.current){lenis.current.destroy();lenis.current=null;}};},[]);useEffect(()=>{const styleElement=document.createElement(\"style\");styleElement.textContent=`\nhtml.lenis {\nheight: auto;\n}\n.lenis.lenis-smooth {\n\nscroll-behavior: auto !important;\n}\n.lenis.lenis-smooth [data-lenis-prevent] {\n\noverscroll-behavior: contain;\n}\n.lenis.lenis-stopped {\n\noverflow: hidden;\n}\n.lenis.lenis-scrolling iframe {\n\npointer-events: none;\n}\n`;document.head.appendChild(styleElement);return()=>{document.head.removeChild(styleElement);};},[]);//https://github.com/darkroomengineering/lenis?tab=readme-ov-file#anchor-links\nuseEffect(()=>{// Get all anchor links and store click handlers with their targets\nconst anchorLinksData=[...document.querySelectorAll(\"a[href]\")].filter(element=>{const anchor=element;// Only handle internal anchor links\nconst isInternalLink=anchor.href.startsWith(window.location.origin)||anchor.href.startsWith(\"./\")||anchor.href.startsWith(\"/\");const hasHash=anchor.href.includes(\"#\");return isInternalLink&&hasHash;}).map(anchor=>{const href=`#${anchor.href.split(\"#\").pop()}`;const decodedHref=decodeURIComponent(href);let scrollMargin=0;const targetElement=document.querySelector(decodedHref);if(targetElement){scrollMargin=parseInt(window.getComputedStyle(targetElement).scrollMarginTop);}return{href,scrollMargin,anchorElement:anchor};});const handleClick=(e,href,scrollMargin)=>{e.preventDefault();lenis.current.scrollTo(href,{offset:-scrollMargin});};const handlers=anchorLinksData.map(({href,scrollMargin})=>e=>handleClick(e,href,scrollMargin));anchorLinksData.forEach(({anchorElement},index)=>{anchorElement.addEventListener(\"click\",handlers[index]);});return()=>{anchorLinksData.forEach(({anchorElement},index)=>{anchorElement.removeEventListener(\"click\",handlers[index]);});};},[lenis]);return /*#__PURE__*/_jsx(_Fragment,{});}SmoothScroll.displayName=\"Smooth Scroll\";addPropertyControls(SmoothScroll,{intensity:{title:\"Intensity\",type:ControlType.Number,defaultValue:10,description:\"More components at [Framer University](https://frameruni.link/cc).\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmoothScroll\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmoothScroll_Prod.map"],
  "mappings": "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",
  "names": ["SmoothScroll", "props", "intensity", "lenis", "pe", "ue", "checkForStopScroll", "stopScrollElement", "hasHiddenOverflow", "stopScrollObserver", "htmlStyleObserver", "allElements", "i", "element", "window", "Lenis", "raf", "time", "styleElement", "anchorLinksData", "anchor", "isInternalLink", "hasHash", "href", "decodedHref", "scrollMargin", "targetElement", "handleClick", "e", "handlers", "anchorElement", "index", "l", "addPropertyControls", "ControlType"]
}
