{"version":3,"file":"shared-lib.eVgpTOS3.mjs","names":["useId","useRef","Lenis","__esmMin","ie","init_ssg_sandbox_shims","window","c","init_jsx_runtime","ce","init_npm_react_18_3_1","de","addPropertyControls","init_framer_BikQVKhx","ControlType","withCSS","DragPreventer","props","styleId","rules","preventAll","preventImages","preventLinks","preventTextDrag","preventTextSelect","styleEl","init_drag_preventer","e","init__empty","SmoothScrollComponent","lenis","error","checkForStopScroll","stopScrollElement","htmlElement","hasHiddenOverflow","stopScrollObserver","htmlStyleObserver","allElements","i","element","computedStyle","styleError","intensity","raf","time","animationId","anchorLinksData","anchor","isInternalLink","hasHash","anchorElement","href","decodedHref","scrollMargin","targetElement","marginStyle","targetError","anchorError","handleClick","handlers","index","SmoothScroll","init_SmoothScroll_Prod"],"sources":["https:/framerusercontent.com/modules/mn6XTfhwVtXcd89J069m/eeY4llrkFk2zCUCxTwWW/drag_preventer.js","https:/ga.jspm.io/npm:@jspm/core@2.1.0/nodelibs/@empty.js","https:/framerusercontent.com/modules/Yppqt3Cs3Y8TZqvASnXl/PGrowqBrgWCViHduGfsA/SmoothScroll_Prod.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useId}from\"react\";/**\n * @framerDisableUnlink\n */export default function DragPreventer(props){const{preventImages=true,preventLinks=true,preventTextDrag=false,preventTextSelect=false,preventAll=false}=props;// Generate a unique ID per instance so multiple components\n// on the same page don't conflict with each other\nconst uid=useId().replace(/:/g,\"\");const styleId=`drag-preventer-${uid}`;useEffect(()=>{// Remove any previously injected style for this instance\ndocument.getElementById(styleId)?.remove();const rules=[];// Scope all rules to :root so they act page-wide,\n// but are tied to this specific injected <style> tag\n// (removed on unmount), not a global unmanaged block.\n// ── Drag Prevention ───────────────────────────────────\nif(preventAll){rules.push(`\n                :root * {\n                    -webkit-user-drag: none !important;\n                    user-drag: none !important;\n                }\n            `);}else{if(preventImages){rules.push(`\n                    :root img {\n                        -webkit-user-drag: none !important;\n                        user-drag: none !important;\n                    }\n                `);}if(preventLinks){rules.push(`\n                    :root a,\n                    :root button,\n                    :root [role=\"link\"],\n                    :root [role=\"button\"],\n                    :root div[data-framer-link] {\n                        -webkit-user-drag: none !important;\n                        user-drag: none !important;\n                    }\n                `);}if(preventTextDrag){rules.push(`\n                    :root * {\n                        -webkit-user-drag: none !important;\n                        user-drag: none !important;\n                    }\n                `);}}// ── Text Selection Prevention ─────────────────────────\nif(preventTextSelect){rules.push(`\n                :root * {\n                    user-select: none !important;\n                    -webkit-user-select: none !important;\n                }\n                :root input,\n                :root textarea,\n                :root [contenteditable] {\n                    user-select: text !important;\n                    -webkit-user-select: text !important;\n                }\n            `);}if(rules.length===0)return;// Inject a uniquely-identified <style> tag into <head>\n// so it can be precisely removed on unmount or prop change\nconst styleEl=document.createElement(\"style\");styleEl.id=styleId;styleEl.textContent=rules.join(\"\\n\");document.head.appendChild(styleEl);// ── Cleanup on unmount or prop change ─────────────────\nreturn()=>{document.getElementById(styleId)?.remove();};},[preventAll,preventImages,preventLinks,preventTextDrag,preventTextSelect]);// Render nothing visible — this is a behavior-only component\nreturn /*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",width:0,height:0,overflow:\"hidden\",pointerEvents:\"none\"}});}DragPreventer.displayName=\"Drag Preventer\";addPropertyControls(DragPreventer,{preventAll:{title:\"Block All Dragging\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Prevents dragging on every element on the page at once.\"},preventImages:{title:\"Block Image Drag\",type:ControlType.Boolean,defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:props=>props.preventAll,description:\"Stops visitors from dragging images off your site into another tab or folder.\"},preventLinks:{title:\"Block Link Drag\",type:ControlType.Boolean,defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:props=>props.preventAll,description:\"Stops visitors from dragging links and buttons into the browser bookmark bar or new tab.\"},preventTextDrag:{title:\"Block Text Drag\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:props=>props.preventAll,description:\"Stops visitors from dragging highlighted text. They can still select and copy text normally.\"},preventTextSelect:{title:\"Block Text Select\",type:ControlType.Boolean,defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"Stops visitors from highlighting or selecting any text on your site. Works independently from all drag settings above.\\n\\nMade with ❤️ by [Soyeb](https://framer.link/project)\\n*Version:* 1.0.0\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DragPreventer\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./drag_preventer.map","var e=Object.freeze(Object.create(null));export{e as default};\n//# sourceMappingURL=@empty.js.map\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,withCSS}from\"framer\";import Lenis from\"lenis\";import{useEffect,useRef}from\"react\";function SmoothScrollComponent(props){const{intensity}=props;const lenis=useRef(null);useEffect(()=>{if(lenis.current){try{lenis.current.scrollTo(0,{immediate:true});}catch(error){console.error(\"Error scrolling to top:\",error);}}},[lenis]);// Watch for stop scroll elements\nuseEffect(()=>{const checkForStopScroll=()=>{try{const stopScrollElement=document.querySelector(\"[data-frameruni-stop-scroll]\");const htmlElement=document.documentElement;const hasHiddenOverflow=htmlElement&&htmlElement.style&&htmlElement.style.overflow===\"hidden\";if(lenis.current){if(stopScrollElement||hasHiddenOverflow){lenis.current.stop();}else{lenis.current.start();}}}catch(error){console.error(\"Error in checkForStopScroll:\",error);}};// Initial check\ncheckForStopScroll();// Set up observers\nlet stopScrollObserver;let htmlStyleObserver;try{stopScrollObserver=new MutationObserver(checkForStopScroll);htmlStyleObserver=new MutationObserver(checkForStopScroll);// Observe document for data-frameruni-stop-scroll attribute\nif(document&&document.documentElement){stopScrollObserver.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\"]});}}catch(error){console.error(\"Error setting up observers:\",error);}return()=>{try{if(stopScrollObserver)stopScrollObserver.disconnect();if(htmlStyleObserver)htmlStyleObserver.disconnect();}catch(error){console.error(\"Error disconnecting observers:\",error);}};},[]);useEffect(()=>{try{if(!document)return;const allElements=document.getElementsByTagName(\"*\");for(let i=0;i<allElements.length;i++){const element=allElements[i];if(!element)continue;try{const computedStyle=window.getComputedStyle(element);if(computedStyle&&computedStyle.getPropertyValue(\"overflow\")===\"auto\"){element.setAttribute(\"data-lenis-prevent\",\"true\");}}catch(styleError){console.error(\"Error getting computed style:\",styleError);}}}catch(error){console.error(\"Error in overflow detection:\",error);}},[]);useEffect(()=>{try{if(typeof Lenis!==\"function\"){console.error(\"Lenis is not available\");return;}lenis.current=new Lenis({duration:(intensity||10)/10});const raf=time=>{if(lenis.current){try{lenis.current.raf(time);requestAnimationFrame(raf);}catch(error){console.error(\"Error in animation frame:\",error);}}};const animationId=requestAnimationFrame(raf);return()=>{cancelAnimationFrame(animationId);if(lenis.current){try{lenis.current.destroy();lenis.current=null;}catch(error){console.error(\"Error destroying Lenis:\",error);}}};}catch(error){console.error(\"Error initializing Lenis:\",error);return()=>{};}},[intensity]);//https://github.com/darkroomengineering/lenis?tab=readme-ov-file#anchor-links\nuseEffect(()=>{try{if(!document||!lenis.current)return;// Get all anchor links and store click handlers with their targets\nconst anchorLinksData=Array.from(document.querySelectorAll(\"a[href]\")||[]).filter(element=>{if(!element)return false;const anchor=element;if(!anchor.href)return false;// 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=>{try{const anchorElement=anchor;const href=anchorElement.href.includes(\"#\")?`#${anchorElement.href.split(\"#\").pop()}`:\"\";const decodedHref=href?decodeURIComponent(href):\"\";let scrollMargin=0;try{if(decodedHref){const targetElement=document.querySelector(decodedHref);if(targetElement){const marginStyle=window.getComputedStyle(targetElement).scrollMarginTop;scrollMargin=marginStyle?parseInt(marginStyle)||0:0;}}}catch(targetError){console.error(\"Error finding target element:\",targetError);}return{href,scrollMargin,anchorElement:anchorElement};}catch(anchorError){console.error(\"Error processing anchor:\",anchorError);return null;}}).filter(Boolean);const handleClick=(e,href,scrollMargin)=>{try{if(e&&e.preventDefault)e.preventDefault();if(lenis.current&&href){lenis.current.scrollTo(href,{offset:-(scrollMargin||0)});}}catch(error){console.error(\"Error in anchor click handler:\",error);}};const handlers=anchorLinksData.map(({href,scrollMargin})=>e=>handleClick(e,href,scrollMargin));anchorLinksData.forEach(({anchorElement},index)=>{if(anchorElement&&handlers[index]){anchorElement.addEventListener(\"click\",handlers[index]);}});return()=>{anchorLinksData.forEach(({anchorElement},index)=>{if(anchorElement&&handlers[index]){anchorElement.removeEventListener(\"click\",handlers[index]);}});};}catch(error){console.error(\"Error setting up anchor links:\",error);return()=>{};}},[lenis]);return /*#__PURE__*/_jsx(\"div\",{style:props.style});}/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n *\n * @framerDisableUnlink\n */const SmoothScroll=withCSS(SmoothScrollComponent,[\"html.lenis { height: auto; }\",\".lenis.lenis-smooth { scroll-behavior: auto !important; }\",\".lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }\",\".lenis.lenis-stopped { overflow: hidden; }\",\".lenis.lenis-scrolling iframe { pointer-events: none; }\"],\"\");export default SmoothScroll;SmoothScroll.displayName=\"Smooth Scroll\";addPropertyControls(SmoothScroll,{intensity:{title:\"Intensity\",type:ControlType.Number,defaultValue:10,min:0,description:\"More components at [Framer University](https://frameruni.link/cc).\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmoothScroll\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"auto\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmoothScroll_Prod.map"],"mappings":"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"}