{"version":3,"file":"BlurGradient.BXKU7K7Q.mjs","names":["useState","useRef","url","useRef","direction"],"sources":["https:/framerusercontent.com/modules/io85aiuxSkpqnHHUZ9pB/FMXnfDjcn4U60z2AvaC8/StickyRevealFooter.js","https:/framerusercontent.com/modules/94x0fXaDoJS3EKt1apTC/KM39kwwLgpAwxhoV9nRH/ParallaxHover.js","https:/framerusercontent.com/modules/rofp3mS0LNY15cjhHzia/cTjrmFqNFkFWO19DE1xk/BlurGradient.js"],"sourcesContent":["// Smart Sticky Reveal Footer component that slides up when scrolling near bottom\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion,AnimatePresence}from\"framer-motion\";/**\n * Smart Sticky Reveal Footer\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 80\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function StickyRevealFooter(props){const{content,revealThreshold,animationSpeed,backgroundColor,textColor,padding,borderRadius,shadow,font,buttonText,buttonColor,buttonTextColor,showButton,buttonFont,linkDestination}=props;const[isVisible,setIsVisible]=useState(false);const[lastScrollY,setLastScrollY]=useState(0);const isStatic=useIsStaticRenderer();function normalizeLink(raw){let v=\"\";if(!raw)return v;if(typeof raw===\"string\")v=raw.trim();else v=(raw.href||raw.url||\"\").trim();if(!v)return\"\";if(/^(https?:|mailto:|tel:|data:)/i.test(v))return v;if(/^\\/\\//.test(v))return`https:${v}`;// protocol-relative\nif(/^[a-z0-9.-]+\\.[a-z]{2,}([/:?#].*)?$/i.test(v))return`https://${v}`;// bare domain\nreturn v;// probably internal route; we'll still handle it\n}const url=normalizeLink(linkDestination);// One-shot guard to prevent double-opens (StrictMode / multiple events)\nconst openOnceRef=useRef(false);function openExternal(url){if(!url||openOnceRef.current)return;openOnceRef.current=true;const isHttp=/^https?:\\/\\//i.test(url);try{// Prefer Framer's opener inside editor/preview if present\n// @ts-ignore\nconst framer=window.framer;if(isHttp&&framer?.openExternalURL){framer.openExternalURL(url);return;}// Break out of iframe and open in new tab\nconst topWin=window.top??window;if(isHttp){topWin.open(url,\"_blank\",\"noopener,noreferrer\");}else{topWin.location.href=url;}}finally{// allow future clicks after a short cooldown\nsetTimeout(()=>openOnceRef.current=false,600);}}useEffect(()=>{if(isStatic||typeof window===\"undefined\"){startTransition(()=>setIsVisible(true));return;}const handleScroll=()=>{const currentScrollY=window.scrollY;const documentHeight=document.documentElement.scrollHeight;const windowHeight=window.innerHeight;const scrollPercentage=(currentScrollY+windowHeight)/documentHeight*100;// Show footer when scrolling down and near bottom\nif(scrollPercentage>=revealThreshold&&currentScrollY>lastScrollY){startTransition(()=>setIsVisible(true));}else if(currentScrollY<lastScrollY&&scrollPercentage<revealThreshold+10){startTransition(()=>setIsVisible(false));}setLastScrollY(currentScrollY);};window.addEventListener(\"scroll\",handleScroll,{passive:true});return()=>window.removeEventListener(\"scroll\",handleScroll);},[lastScrollY,revealThreshold,isStatic]);return /*#__PURE__*/_jsx(AnimatePresence,{children:(isVisible||isStatic)&&/*#__PURE__*/_jsxs(motion.div,{initial:{y:\"100%\"},animate:{y:0},exit:{y:\"100%\"},transition:{duration:animationSpeed,ease:\"easeOut\"},style:{position:\"fixed\",bottom:0,left:0,right:0,backgroundColor,color:textColor,padding:`${padding}px`,borderRadius:`${borderRadius}px ${borderRadius}px 0 0`,boxShadow:shadow?\"0 -4px 20px rgba(0, 0, 0, 0.1)\":\"none\",zIndex:1e3,display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",gap:\"20px\",...font},children:[/*#__PURE__*/_jsx(\"div\",{style:{flex:1},children:content}),showButton&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:e=>{e.preventDefault();e.stopPropagation();// stop router hijack\nopenExternal(url);},onKeyDown:e=>{if(e.key===\"Enter\"||e.key===\" \"){e.preventDefault();e.stopPropagation();openExternal(url);}},style:{backgroundColor:buttonColor,color:buttonTextColor,border:\"none\",borderRadius:6,padding:\"12px 24px\",cursor:url?\"pointer\":\"default\",textDecoration:\"none\",display:\"inline-block\",// ensure it sits above any overlays\nposition:\"relative\",zIndex:9999,...buttonFont},\"aria-label\":`Open link ${url||\"\"}`,disabled:!url,children:buttonText})]})});}addPropertyControls(StickyRevealFooter,{content:{type:ControlType.String,title:\"Content\",defaultValue:\"🎉 Special offer! Get 20% off your first order. Limited time only!\",displayTextArea:true},revealThreshold:{type:ControlType.Number,title:\"Reveal Threshold\",defaultValue:80,min:50,max:95,step:5,unit:\"%\"},animationSpeed:{type:ControlType.Number,title:\"Animation Speed\",defaultValue:.3,min:.1,max:1,step:.1,unit:\"s\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#000000\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#FFFFFF\"},padding:{type:ControlType.Number,title:\"Padding\",defaultValue:20,min:10,max:40,step:2,unit:\"px\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:12,min:0,max:24,step:2,unit:\"px\"},shadow:{type:ControlType.Boolean,title:\"Shadow\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},font:{type:ControlType.Font,title:\"Font\",defaultValue:{fontSize:\"16px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.4em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},showButton:{type:ControlType.Boolean,title:\"Show Button\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},buttonText:{type:ControlType.String,title:\"Button Text\",defaultValue:\"Get Offer\",hidden:({showButton})=>!showButton},linkDestination:{type:ControlType.String,title:\"Link Destination\",defaultValue:\"https://google.com\",placeholder:\"https://example.com\",hidden:({showButton})=>!showButton},buttonColor:{type:ControlType.Color,title:\"Button Color\",defaultValue:\"#FFFFFF\",hidden:({showButton})=>!showButton},buttonTextColor:{type:ControlType.Color,title:\"Button Text Color\",defaultValue:\"#000000\",hidden:({showButton})=>!showButton},buttonFont:{type:ControlType.Font,title:\"Button Font\",defaultValue:{fontSize:\"14px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"},controls:\"extended\",defaultFontType:\"sans-serif\",hidden:({showButton})=>!showButton}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"StickyRevealFooter\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"80\",\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./StickyRevealFooter.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{useMotionValue,useSpring,useInView}from\"framer-motion\";const withIntensity=(Component,maxDistancePercentage,maxOffsetX,maxOffsetY)=>{const SPRING_CONFIG={damping:100,stiffness:400};return props=>{const x=useMotionValue(0);const y=useMotionValue(0);const ref=useRef(null);const springX=useSpring(x,SPRING_CONFIG);const springY=useSpring(y,SPRING_CONFIG);const isInView=useInView(ref);useEffect(()=>{if(!isInView){x.set(0);y.set(0);}},[isInView]);useEffect(()=>{const calculateDistance=e=>{if(ref.current&&isInView){const rect=ref.current.getBoundingClientRect();const centerX=rect.left+rect.width/2;const centerY=rect.top+rect.height/2;let distanceX=e.clientX-centerX;let distanceY=e.clientY-centerY;distanceX=Math.max(Math.min(distanceX,maxOffsetX),-maxOffsetX);distanceY=Math.max(Math.min(distanceY,maxOffsetY),-maxOffsetY);x.set(distanceX*(maxDistancePercentage/100));y.set(distanceY*(maxDistancePercentage/100));}};document.addEventListener(\"mousemove\",calculateDistance);return()=>{document.removeEventListener(\"mousemove\",calculateDistance);};},[ref,isInView,maxOffsetX,maxOffsetY]);return /*#__PURE__*/_jsx(Component,{...props,ref:ref,style:{x:springX,y:springY}});};};export const withIntensity10=Component=>withIntensity(Component,10,400,2e3);export const withIntensity5=Component=>withIntensity(Component,5,2e3,2e3);export const withIntensity1=Component=>withIntensity(Component,1,2e3,2e3);\nexport const __FramerMetadata__ = {\"exports\":{\"withIntensity10\":{\"type\":\"reactHoc\",\"name\":\"withIntensity10\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withIntensity1\":{\"type\":\"reactHoc\",\"name\":\"withIntensity1\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withIntensity5\":{\"type\":\"reactHoc\",\"name\":\"withIntensity5\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ParallaxHover.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 240\n * @framerIntrinsicHeight 240\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */function BlurGradient({blur,borderRadius,direction}){const getGradientDirection=direction=>{switch(direction){case\"toBottom\":return\"to bottom\";case\"toTop\":return\"to top\";case\"toLeft\":return\"to left\";case\"toRight\":return\"to right\";default:return\"to bottom\";}};const blurSteps=[{blur:`${blur/2/2/2/2/2/2/2}px`,gradient:`rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 12.5%, rgba(0, 0, 0, 1) 25%, rgba(0, 0, 0, 0) 37.5%`},{blur:`${blur/2/2/2/2/2/2}px`,gradient:`rgba(0, 0, 0, 0) 12.5%, rgba(0, 0, 0, 1) 25%, rgba(0, 0, 0, 1) 37.5%, rgba(0, 0, 0, 0) 50%`},{blur:`${blur/2/2/2/2/2}px`,gradient:`rgba(0, 0, 0, 0) 25%, rgba(0, 0, 0, 1) 37.5%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 62.5%`},{blur:`${blur/2/2/2/2}px`,gradient:`rgba(0, 0, 0, 0) 37.5%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 1) 62.5%, rgba(0, 0, 0, 0) 75%`},{blur:`${blur/2/2/2}px`,gradient:`rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 1) 62.5%, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 0) 87.5%`},{blur:`${blur/2/2}px`,gradient:`rgba(0, 0, 0, 0) 62.5%, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 1) 87.5%, rgba(0, 0, 0, 0) 100%`},{blur:`${blur/2}px`,gradient:`rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 1) 87.5%, rgba(0, 0, 0, 1) 100%`},{blur:`${blur}px`,gradient:`rgba(0, 0, 0, 0) 87.5%, rgba(0, 0, 0, 1) 100%`}];return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",borderRadius:`${borderRadius}px`},children:blurSteps.map((step,index)=>/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,zIndex:index+1,backdropFilter:`blur(${step.blur})`,WebkitBackdropFilter:`blur(${step.blur})`,maskImage:`linear-gradient(${getGradientDirection(direction)}, ${step.gradient})`,WebkitMaskImage:`linear-gradient(${getGradientDirection(direction)}, ${step.gradient})`,borderRadius:`${borderRadius}px`,pointerEvents:\"none\"}},index))});}BlurGradient.defaultProps={blur:10,borderRadius:0,direction:\"toBottom\"};addPropertyControls(BlurGradient,{blur:{title:\"Blur\",type:ControlType.Number,defaultValue:10,min:0,max:100,step:1,description:\"Large blur values (10<) can impact performance.\"},borderRadius:{title:\"Radius\",type:ControlType.Number,defaultValue:0,min:0,max:100,step:1,description:\"Blur Gradient component's parent frame can't have border radius (it will break the component). If you need corner radius, apply it directly to the Blur Gradient component here.\"},direction:{title:\"Direction\",type:ControlType.SegmentedEnum,options:[\"toBottom\",\"toTop\",\"toLeft\",\"toRight\"],optionTitles:[\"↓\",\"↑\",\"←\",\"→\"],defaultValue:\"toBottom\"}});BlurGradient.displayName=\"Blur Gradient\";export default BlurGradient;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BlurGradient\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicHeight\":\"240\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"240\",\"framerSupportedLayoutHeight\":\"any\",\"framerDisableUnlink\":\"*\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BlurGradient.map"],"mappings":"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"}