{"version":3,"file":"BlurGradient_Prod.C6KKlcmb.mjs","names":["React.useState","React.useRef","React.useMemo"],"sources":["https:/framerusercontent.com/modules/rofp3mS0LNY15cjhHzia/38VAsjA9XQxFqtnMmScT/BlurGradient_Prod.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";function useSmoothValue(value,transition){const[smoothValue,setSmoothValue]=React.useState(value);const prevValue=React.useRef(value);React.useEffect(()=>{let animationFrame;const startTime=Date.now();const duration=transition.duration;const animate=()=>{const now=Date.now();const elapsed=(now-startTime)/1e3;const progress=Math.min(elapsed/duration,1);setSmoothValue(prevValue.current+(value-prevValue.current)*progress);if(progress<1){animationFrame=requestAnimationFrame(animate);}else{prevValue.current=value;}};animate();return()=>cancelAnimationFrame(animationFrame);},[value,transition]);return smoothValue;}/**\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 240\n * @framerIntrinsicHeight 240\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */function BlurGradient({blur,borderRadius,direction,transition}){const smoothBlur=useSmoothValue(blur,transition);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=React.useMemo(()=>[{blur:`${smoothBlur/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:`${smoothBlur/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:`${smoothBlur/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:`${smoothBlur/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:`${smoothBlur/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:`${smoothBlur/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:`${smoothBlur/2}px`,gradient:`rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 1) 87.5%, rgba(0, 0, 0, 1) 100%`},{blur:`${smoothBlur}px`,gradient:`rgba(0, 0, 0, 0) 87.5%, rgba(0, 0, 0, 1) 100%`}],[smoothBlur]);return /*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,overflow:\"hidden\"},children:blurSteps.map((step,index)=>/*#__PURE__*/_jsx(motion.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,pointerEvents:\"none\"},transition:transition},index))});}BlurGradient.defaultProps={blur:10,borderRadius:\"0px\",direction:\"toBottom\",transition:{duration:.3}};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.BorderRadius,defaultValue:\"0px\",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\"},transition:{type:ControlType.Transition,defaultValue:{duration:.3},title:\"Transition\",description:\"Control how the blur animates when used on hover states or any othe interaction.\\n\\nMore components at [Framer University](https://frameruni.link/cc).\"}});BlurGradient.displayName=\"Blur Gradient\";export default BlurGradient;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BlurGradient\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"240\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"240\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BlurGradient_Prod.map"],"mappings":"gPAA6J,SAAS,EAAe,EAAM,EAAW,CAAC,GAAK,CAAC,EAAY,GAAgBA,EAAe,CAAK,EAAQ,EAAUC,EAAa,CAAK,EAAgd,OAA9c,MAAoB,CAAC,IAAI,EAAqB,EAAU,KAAK,IAAI,EAAQ,EAAS,EAAW,SAAe,MAAY,CAAsB,IAAM,GAAjB,KAAK,IAAuB,EAAE,GAAW,IAAU,EAAS,KAAK,IAAI,EAAQ,EAAS,CAAC,EAAE,EAAe,EAAU,SAAS,EAAM,EAAU,SAAS,CAAQ,EAAK,EAAS,EAAG,EAAe,sBAAsB,CAAO,EAAQ,EAAU,QAAQ,CAAO,EAAY,OAAV,EAAQ,MAAY,qBAAqB,CAAc,CAAE,EAAE,CAAC,EAAM,CAAU,CAAC,EAAS,CAAY,CAQjwB,SAAS,EAAa,CAAC,OAAK,eAAa,YAAU,cAAY,CAAC,IAAM,EAAW,EAAe,EAAK,CAAU,EAAQ,EAAqB,GAAW,CAAC,OAAO,EAAP,CAAkB,IAAI,WAAW,MAAM,YAAY,IAAI,QAAQ,MAAM,SAAS,IAAI,SAAS,MAAM,UAAU,IAAI,UAAU,MAAM,WAAW,QAAQ,MAAM,WAAY,CAAC,EAAgiC,OAAoB,EAAK,MAAM,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,SAAS,QAAQ,EAAE,SAApmCC,MAAkB,CAAC,CAAC,KAAK,GAAG,EAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,SAAS,2FAA2F,EAAE,CAAC,KAAK,GAAG,EAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,SAAS,4FAA4F,EAAE,CAAC,KAAK,GAAG,EAAW,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,SAAS,4FAA4F,EAAE,CAAC,KAAK,GAAG,EAAW,EAAE,EAAE,EAAE,EAAE,IAAI,SAAS,4FAA4F,EAAE,CAAC,KAAK,GAAG,EAAW,EAAE,EAAE,EAAE,IAAI,SAAS,4FAA4F,EAAE,CAAC,KAAK,GAAG,EAAW,EAAE,EAAE,IAAI,SAAS,6FAA6F,EAAE,CAAC,KAAK,GAAG,EAAW,EAAE,IAAI,SAAS,qEAAqE,EAAE,CAAC,KAAK,GAAG,EAAW,IAAI,SAAS,+CAA+C,CAAC,EAAE,CAAC,CAAU,CAA0G,CAAC,CAAC,KAAK,EAAK,IAAqB,EAAK,EAAO,IAAI,CAAC,MAAM,CAAC,SAAS,WAAW,MAAM,EAAE,OAAO,EAAM,EAAE,eAAe,QAAQ,EAAK,KAAK,GAAG,qBAAqB,QAAQ,EAAK,KAAK,GAAG,UAAU,mBAAmB,EAAqB,CAAS,EAAE,IAAI,EAAK,SAAS,GAAG,gBAAgB,mBAAmB,EAAqB,CAAS,EAAE,IAAI,EAAK,SAAS,GAAgB,eAAa,cAAc,MAAM,EAAa,YAAU,EAAE,CAAK,CAAC,CAAC,CAAC,CAAE,iBAR10D,IAA4B,IAAkC,IAAoD,EAQytD,EAAa,aAAa,CAAC,KAAK,GAAG,aAAa,MAAM,UAAU,WAAW,WAAW,CAAC,SAAS,EAAE,CAAC,EAAE,EAAoB,EAAa,CAAC,KAAK,CAAC,MAAM,OAAO,KAAK,EAAY,OAAO,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,YAAY,iDAAiD,EAAE,aAAa,CAAC,MAAM,SAAS,KAAK,EAAY,aAAa,aAAa,MAAM,YAAY,kLAAkL,EAAE,UAAU,CAAC,MAAM,YAAY,KAAK,EAAY,cAAc,QAAQ,CAAC,WAAW,QAAQ,SAAS,SAAS,EAAE,aAAa,CAAC,IAAI,IAAI,IAAI,GAAG,EAAE,aAAa,UAAU,EAAE,WAAW,CAAC,KAAK,EAAY,WAAW,aAAa,CAAC,SAAS,EAAE,EAAE,MAAM,aAAa,YAAY;;mEAAwJ,CAAC,CAAC,EAAE,EAAa,YAAY"}