{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/HtS23o3hXMfD3kzFpfI7/WA9aeCFfFM2LgHiCmIbo/Shaders.js", "ssg:https://framerusercontent.com/modules/LUdrsFEKBYKqEuRjnoZ6/O5HkOqoQe45cEn4RiiOu/WebGL.js", "ssg:https://framerusercontent.com/modules/RVpno4j77LAssQMS5aAj/gAfJljYV0P31W6RYQbQn/Distortion.js"],
  "sourcesContent": ["export const vertexShader=`\nuniform vec2 uMediaSize;\nuniform vec2 uPlaneSize;\nuniform float uDistortionStrength;\nuniform float uProgress;\nuniform float uSharp;\nuniform float uScale; // Initial scale value\nvarying vec2 vUv;\nvarying vec2 vTextureCoord;\n\n// Enhanced radial distortion function\nvec2 enhancedRadialDistortion(vec2 coord, float strength) {\n    // \u5C06\u5750\u6807\u8F6C\u6362\u5230 -1 \u5230 1 \u7684\u8303\u56F4\n    vec2 cc = (coord - 0.5) * 2.0;\n    float dist = length(cc);\n    \n    // \u4F7F\u7528\u5E73\u6ED1\u7684\u8870\u51CF\u51FD\u6570\n    float falloff = 1.0 - smoothstep(0.0, 1.0, dist);\n    \n    // \u8BA1\u7B97\u7578\u53D8\u5F3A\u5EA6\uFF0C\u5728\u8FB9\u7F18\u5904\u9010\u6E10\u51CF\u5F31\n    float adjustedStrength = strength * falloff;\n    \n    // \u786E\u4FDD\u7578\u53D8\u4E0D\u4F1A\u592A\u6FC0\u8FDB\n    float maxStrength = min(adjustedStrength, 0.4);\n    \n    // \u8BA1\u7B97\u7578\u53D8\u65B9\u5411\n    vec2 direction = normalize(cc + 0.0001);\n    \n    // \u5E94\u7528\u7578\u53D8\uFF0C\u4F7F\u7528\u5E73\u6ED1\u7684\u4E8C\u6B21\u51FD\u6570\n    vec2 distortion = direction * (dist * dist) * maxStrength;\n    \n    // \u786E\u4FDD\u4E0D\u4F1A\u8D85\u51FA\u8FB9\u754C\n    distortion *= (1.0 - smoothstep(0.8, 1.0, dist));\n    \n    // \u5C06\u7ED3\u679C\u8F6C\u56DE 0 \u5230 1 \u7684\u8303\u56F4\n    return coord + distortion * 0.5;\n}\n\nvoid main() {\n    vUv = uv;\n    vec2 ratio = uPlaneSize / uMediaSize;\n    float scale = max(ratio.x, ratio.y);\n    vec2 scaledMediaSize = uMediaSize * scale;\n    vTextureCoord = (uv - 0.5) * (uPlaneSize / scaledMediaSize) + 0.5;\n    \n    vec3 pos = position;\n    float currentDistortionStrength = uDistortionStrength * (1.0 - uProgress);\n    vec2 distortedUV = enhancedRadialDistortion(uv, currentDistortionStrength);\n    float edgeEnhancement = pow(length(uv - 0.5) * 2.0 * (uSharp * currentDistortionStrength), 2.0) * currentDistortionStrength;\n    pos.xy = mix(pos.xy, distortedUV * 2.0 - 1.0, currentDistortionStrength + edgeEnhancement);\n    pos.xy += 0.01 * sin(pos.x * 15.0 + pos.y * 15.0) * (currentDistortionStrength + 0.1);\n    \n    // Calculate dynamic scale based on uProgress\n    float dynamicScale = mix(uScale, 1.0, uProgress);\n    \n    // Apply dynamic scaling\n    pos.xy *= dynamicScale;\n    \n    gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0);\n}\n`;export const fragmentShader=`\n  uniform sampler2D uTexture;\n  uniform float uBlurStrength;\n  uniform float uProgress;\n  uniform float uAlpha;\n  uniform vec2 uMediaSize;\n  varying vec2 vTextureCoord;\n\n  void main() {\n      vec2 texelSize = 1.0 / uMediaSize;\n      vec4 color = vec4(0.0);\n      \n      float currentBlurStrength = uBlurStrength * (1.0 - uProgress);\n      \n      // Simple Gaussian blur\n      for(int x = -2; x <= 2; x++) {\n          for(int y = -2; y <= 2; y++) {\n              vec2 offset = vec2(float(x), float(y)) * texelSize * currentBlurStrength;\n              color += texture2D(uTexture, vTextureCoord + offset);\n          }\n      }\n      color = color / 25.0;\n      \n      // Calculate alpha based on uProgress and uAlpha\n      float currentAlpha = clamp(uAlpha, 0.0, 1.0);\n      \n      // Use calculated alpha for transparency control\n      gl_FragColor = vec4(color.rgb, color.a * currentAlpha);\n  }\n`;// Vertex Shader\nexport const vertexShader2=`\nuniform vec2 uMediaSize;\nuniform vec2 uPlaneSize;\nuniform float uProgress;\nuniform float uDistortionStrength;\nuniform float uScale;  \nvarying vec2 vUv;\nvarying vec2 vTextureCoord;\n\n// Enhanced lens distortion function with adjusted coefficients\nvec2 lensDistortion(vec2 coord, float strength) {\n    // Center the coordinates\n    vec2 p = coord - 0.5;\n    \n    // Calculate radius and higher-order terms\n    float r2 = dot(p, p);\n    float r4 = r2 * r2;\n    \n    // Scale down the strength to a more manageable range\n    strength *= 0.0000000001;\n    \n    // Enhanced distortion formula with more controlled coefficients\n    float distortion = 1.0 + strength * r2 + (strength * 0.5) * r4;\n    \n    // Apply distortion and recenter\n    return p * distortion + 0.5;\n}\n\nvoid main() {\n    vUv = uv;\n    \n    // Calculate texture coordinates based on media size and plane size\n    vec2 ratio = uPlaneSize / uMediaSize;\n    float scale = max(ratio.x, ratio.y);\n    vec2 scaledMediaSize = uMediaSize * scale;\n    vec2 baseTextureCoord = (uv - 0.5) * (uPlaneSize / scaledMediaSize) + 0.5;\n    \n    // Calculate current distortion strength and scale based on progress\n    float currentDistortionStrength = - uDistortionStrength * (1.0 - uProgress);\n    \n    // Calculate current scale - transition from uScale to 1.0 as progress increases\n    float currentScale = mix(uScale, 1.0, uProgress);\n    \n    // Apply lens distortion to texture coordinates\n    vTextureCoord = lensDistortion(baseTextureCoord, currentDistortionStrength);\n    \n    // Apply distortion and scaling to vertex position\n    vec3 pos = position;\n    vec2 centeredPos = pos.xy * 0.5 + 0.5; // Convert from [-1,1] to [0,1]\n    vec2 distortedPos = lensDistortion(centeredPos, currentDistortionStrength);\n    pos.xy = (distortedPos - 0.5) * 2.0; // Convert back to [-1,1]\n    \n    // Apply scaling after distortion\n    pos.xy *= currentScale;\n    \n    gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0);\n}`;// Fragment Shader\nexport const fragmentShader2=`\nuniform sampler2D uTexture;\nuniform float uBlurStrength;\nuniform float uProgress;\nuniform float uAlpha;\nuniform vec2 uMediaSize;\nvarying vec2 vTextureCoord;\n\nvoid main() {\n    vec2 texelSize = 1.0 / uMediaSize;\n    vec4 color = vec4(0.0);\n    float currentBlurStrength = uBlurStrength * (1.0 - uProgress);\n    \n    // Check if coordinates are within bounds\n    if(vTextureCoord.x >= 0.0 && vTextureCoord.x <= 1.0 && \n       vTextureCoord.y >= 0.0 && vTextureCoord.y <= 1.0) {\n        // Apply Gaussian blur\n        for(int x = -2; x <= 2; x++) {\n            for(int y = -2; y <= 2; y++) {\n                vec2 offset = vec2(float(x), float(y)) * texelSize * currentBlurStrength;\n                color += texture2D(uTexture, vTextureCoord + offset);\n            }\n        }\n        color = color / 25.0;\n    } else {\n        // Out of bounds color\n        color = vec4(0.0, 0.0, 0.0, 0.0);\n    }\n    \n    // Calculate final alpha\n    float currentAlpha = clamp(uAlpha, 0.0, 1.0);\n    \n    // Output final color with transparency\n    gl_FragColor = vec4(color.rgb, color.a * currentAlpha);\n}`;\nexport const __FramerMetadata__ = {\"exports\":{\"vertexShader2\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fragmentShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"vertexShader\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fragmentShader2\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Shaders.map", "import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect,useState,useCallback,useMemo}from\"react\";import{useMotionValue,animate,useAnimationFrame,useMotionValueEvent}from\"framer-motion\";import{RenderTarget}from\"framer\";import{vertexShader,fragmentShader,vertexShader2,fragmentShader2}from\"https://framerusercontent.com/modules/HtS23o3hXMfD3kzFpfI7/WA9aeCFfFM2LgHiCmIbo/Shaders.js\";import{useMediaLoader,usePanelSize,useWebGLSetup,useWebGLInitialization,useScrollAnimation,checkDrawState}from\"https://framerusercontent.com/modules/XY6c75OfbrZTbomptgju/DEOnlmQN7iCZ68VZg0AS/Utils.js\";export const WebGL=({mediaType,src,loop,mode,distortionStrength,blurStrength,sharp,scale,transition,sizeType,setScale,setRatio,animateProp,onMediaLoad,onVideoEnd,onAnimationStart,onAnimationEnd})=>{const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const mountRef=useRef(null);const[animationEnd,setAnimationEnd]=useState(false);const[draw,setDraw]=useState(false);const{media,mediaSize,mediaLoaded,videoState,handleVideoPlayback}=useMediaLoader(mediaType,src,loop);// \u89E6\u53D1 onLoad \u56DE\u8C03\nuseEffect(()=>{if(mediaLoaded){onMediaLoad===null||onMediaLoad===void 0?void 0:onMediaLoad();}},[mediaLoaded,onMediaLoad]);// \u89E6\u53D1 onVideoEnd \u56DE\u8C03\nuseEffect(()=>{if(mediaLoaded&&videoState===\"pause\"){onVideoEnd===null||onVideoEnd===void 0?void 0:onVideoEnd();console.log(videoState);}},[videoState,onVideoEnd]);// \u914D\u7F6E\u5A92\u4F53\u5C3A\u5BF8\nconst{panelSize,isResizing}=usePanelSize(mountRef,sizeType,mediaSize,setScale,setRatio);// \u914D\u7F6EUniforms\nconst initialUniforms=useMemo(()=>({uDistortionStrength:{value:-distortionStrength},uBlurStrength:{value:blurStrength},uProgress:{value:0},uAlpha:{value:isOnCanvas?1:0},uSharp:{value:sharp},uScale:{value:scale}}),[distortionStrength,blurStrength,sharp,scale,mode]);// \u914D\u7F6EWebGL\u573A\u666F\nconst{sceneRef,rendererRef,cameraRef,materialRef,geometryRef}=useWebGLSetup(mountRef,{media,mediaSize,panelSize,vertexShader:mode===\"classic\"?vertexShader:vertexShader2,fragmentShader:mode===\"classic\"?fragmentShader:fragmentShader2,uniforms:initialUniforms});// \u68C0\u67E5\u521D\u59CB\u5316\u6761\u4EF6\nconst{isInitialized,initError}=useWebGLInitialization({mediaLoaded,sceneRef,rendererRef,cameraRef,materialRef,geometryRef});// \u914D\u7F6E\u6EDA\u52A8\u52A8\u753B\nconst{isVisible,inView,scrollYProgress}=useScrollAnimation(mountRef,animateProp);// \u63A7\u5236\u52A8\u753B\u8FDB\u5EA6\nconst progressValue=useMotionValue(0);const animateValues=useCallback((progress,transform)=>{if(transform){animate(progressValue,progress,{...transition,restDelta:.01,restSpeed:.01});}else{animate(progressValue,progress,{...transition,restDelta:1e-5,restSpeed:1e-5});}},[transition]);// \u89E6\u53D1\u52A8\u753B\nuseEffect(()=>{if(!isInitialized)return;if(!animateProp.enable){progressValue.set(0);return;}const isInView=animateProp.type===\"appear\"||animateProp.type===\"enter\"&&inView;const targetProgress=animateProp.target?isInView?animateProp.progress:0:isInView?1:0;if(animateProp.type!==\"transform\"){animateValues(targetProgress,false);}},[mediaLoaded,animateProp,inView,animateValues,isInitialized]);useEffect(()=>{if(!isInitialized)return;if(animateProp.type===\"transform\"){progressValue.set(scrollYProgress.get());}},[mediaLoaded,animateProp,isInitialized]);useEffect(()=>{if(!isInitialized)return;if(animateProp.type===\"transform\"){progressValue.set(scrollYProgress.get());}},[mediaLoaded,animateProp,isInitialized]);useMotionValueEvent(scrollYProgress,\"change\",latest=>{if(isInitialized&&animateProp.type===\"transform\"){animateValues(latest,true);}});// \u662F\u5426\u5E94\u8BE5\u5F00\u59CB\u7ED8\u5236\u6548\u679C\nuseMotionValueEvent(progressValue,\"animationStart\",()=>{if(isInitialized&&animateProp.type!==\"transform\"){setAnimationEnd(false);onAnimationStart===null||onAnimationStart===void 0?void 0:onAnimationStart();}});useMotionValueEvent(progressValue,\"animationComplete\",()=>{if(isInitialized&&animateProp.type!==\"transform\"){setAnimationEnd(true);onAnimationEnd===null||onAnimationEnd===void 0?void 0:onAnimationEnd();}});useMotionValueEvent(progressValue,\"change\",latest=>{if(isInitialized&&animateProp.type===\"transform\"){const shouldDraw=checkDrawState({videoState,isResizing,animateProp,progress:latest,animationEnd});setDraw(shouldDraw);// console.log(\"scroll progress updated:\", latest, \"draw:\", shouldDraw)\n}});useEffect(()=>{const shouldDraw=checkDrawState({videoState,isResizing,animateProp,progress:scrollYProgress.get(),animationEnd});setDraw(shouldDraw);},[animationEnd,isResizing,videoState,animateProp.type]);// \u5904\u7406\u89C6\u9891\u64AD\u653E\nuseEffect(()=>{if(mediaType===\"video\"&&isInitialized&&!isOnCanvas){const shouldPlay=isVisible&&(animateProp.type===\"appear\"||animateProp.type===\"enter\"&&inView||animateProp.type===\"transform\"&&inView);if(shouldPlay){if((transition===null||transition===void 0?void 0:transition.delay)||transition.delay===0){if(animationEnd){handleVideoPlayback(true);}else{const timeoutId=setTimeout(()=>{handleVideoPlayback(true);},transition.delay*1e3);return()=>clearTimeout(timeoutId);}handleVideoPlayback(true);}}else{handleVideoPlayback(false);}}},[mediaType,isInitialized,animateProp,inView,isVisible,isOnCanvas,transition]);// \u52A8\u753B\u5E27\u66F4\u65B0\nuseAnimationFrame(t=>{if(!isInitialized||isOnCanvas||!isVisible)return;if(draw){const uniforms=materialRef.current.uniforms;uniforms.uProgress.value=progressValue.get();uniforms.uAlpha.value=animateProp.fadeIn?progressValue.get()*3:1;if(mediaType===\"video\"&&media){uniforms.uTexture.value.needsUpdate=true;}rendererRef.current.render(sceneRef.current,cameraRef.current);}});return /*#__PURE__*/_jsx(\"div\",{ref:mountRef,style:{display:\"flex\",width:\"100%\",height:\"100%\",justifyContent:\"center\",alignItems:\"center\",overflow:\"hidden\"}});};\nexport const __FramerMetadata__ = {\"exports\":{\"WebGL\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WebGL.map", "import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{WebGL}from\"https://framerusercontent.com/modules/LUdrsFEKBYKqEuRjnoZ6/O5HkOqoQe45cEn4RiiOu/WebGL.js\";import{containerStyle,webGLContainerStyle,hiddenStyle}from\"https://framerusercontent.com/modules/B8C86sFFn4z8EDjUM2Eg/IGczZdkki35ozWx5McID/Styles.js\";import{useMediaSource,universalPropertyControls}from\"https://framerusercontent.com/modules/XY6c75OfbrZTbomptgju/DEOnlmQN7iCZ68VZg0AS/Utils.js\";/**\n *\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 800\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function Distortion(props){const{media,file,upImage,defaultImage,darkImage,dark,urlVideo,upVideo,loop,size,mode,distortion2,distortion,scale,blur,sharp,animateProp,transition,onMediaLoad,onVideoEnd,onAnimationStart,onAnimationEnd}=props;const{imageAlt,mediaSrc,mediaType}=useMediaSource(media,file,upImage,urlVideo,upVideo,defaultImage,darkImage,dark);return /*#__PURE__*/_jsxs(\"figure\",{style:containerStyle,children:[/*#__PURE__*/_jsx(\"div\",{style:webGLContainerStyle,\"aria-label\":imageAlt,role:\"img\",children:/*#__PURE__*/_jsx(WebGL,{mediaType:mediaType,src:mediaSrc,loop:loop,mode:mode,distortionStrength:mode===\"classic\"?distortion:distortion2,scale:scale,blurStrength:blur,sharp:sharp,sizeType:size.type,setScale:size.scale,setRatio:size.ratio,animateProp:animateProp,transition:transition,onMediaLoad:onMediaLoad,onVideoEnd:onVideoEnd,onAnimationStart:onAnimationStart,onAnimationEnd:onAnimationEnd})}),/*#__PURE__*/_jsx(\"figcaption\",{style:hiddenStyle,children:imageAlt})]});}Distortion.displayName=\"Distortion\";addPropertyControls(Distortion,{...universalPropertyControls.media,...universalPropertyControls.size,mode:{type:ControlType.Enum,title:\"Mode\",options:[\"classic\",\"realistic\"],optionTitles:[\"Classic\",\"Realistic\"],displaySegmentedControl:true,defaultValue:\"classic\"},distortion:{type:ControlType.Number,title:\"Distortion\",displayStepper:true,step:.1,max:1,min:-.2,defaultValue:1,hidden(props){return props.mode===\"realistic\";}},distortion2:{type:ControlType.Number,title:\"Distortion\",displayStepper:true,step:1,max:100,min:-5,defaultValue:10,hidden(props){return props.mode===\"classic\";}},scale:{type:ControlType.Number,title:\"Scale\",displayStepper:true,step:.1,max:10,min:0,defaultValue:2,hidden(props){return props.mode===\"classic\";}},sharp:{type:ControlType.Number,title:\"Sharpness\",displayStepper:true,step:1,max:10,min:1,defaultValue:5,hidden(props){return props.mode===\"realistic\";}},blur:{type:ControlType.Number,title:\"Blur\",displayStepper:true,step:1,max:10,min:0,defaultValue:1},animateProp:{type:ControlType.Object,title:\"Animate\",icon:\"effect\",controls:{...universalPropertyControls.animateControls,fadeIn:{type:ControlType.Boolean,title:\"Fade In\",defaultValue:true},target:{type:ControlType.Boolean,title:\"Target Mode\",defaultValue:false,hidden(props){if(!props.enable){return true;}return props.type!==\"enter\"&&props.type!==\"appear\";}},progress:{type:ControlType.Number,title:\"Progress\",displayStepper:true,step:.1,max:1,min:0,defaultValue:0,hidden(props){if(!props.enable||props.target===false){return true;}return props.type!==\"enter\"&&props.type!==\"appear\";}}}},transition:{type:ControlType.Transition,title:\"Transition\",description:\"Learn more on [Reveals](https://reveals.cool).\",defaultValue:{type:\"spring\",stiffness:300,damping:80}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Distortion\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicHeight\":\"800\",\"framerIntrinsicWidth\":\"600\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Distortion.map"],
  "mappings": "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",
  "names": ["vertexShader", "fragmentShader", "vertexShader2", "fragmentShader2", "WebGL", "mediaType", "src", "loop", "mode", "distortionStrength", "blurStrength", "sharp", "scale", "transition", "sizeType", "setScale", "setRatio", "animateProp", "onMediaLoad", "onVideoEnd", "onAnimationStart", "onAnimationEnd", "isOnCanvas", "RenderTarget", "mountRef", "pe", "animationEnd", "setAnimationEnd", "ye", "draw", "setDraw", "media", "mediaSize", "mediaLoaded", "videoState", "handleVideoPlayback", "useMediaLoader", "ue", "panelSize", "isResizing", "usePanelSize", "initialUniforms", "se", "sceneRef", "rendererRef", "cameraRef", "materialRef", "geometryRef", "useWebGLSetup", "vertexShader", "vertexShader2", "fragmentShader", "fragmentShader2", "isInitialized", "initError", "useWebGLInitialization", "isVisible", "inView", "scrollYProgress", "useScrollAnimation", "progressValue", "useMotionValue", "animateValues", "te", "progress", "transform", "animate", "isInView", "targetProgress", "useMotionValueEvent", "latest", "shouldDraw", "checkDrawState", "timeoutId", "useAnimationFrame", "t", "uniforms", "p", "Distortion", "props", "media", "file", "upImage", "defaultImage", "darkImage", "dark", "urlVideo", "upVideo", "loop", "size", "mode", "distortion2", "distortion", "scale", "blur", "sharp", "animateProp", "transition", "onMediaLoad", "onVideoEnd", "onAnimationStart", "onAnimationEnd", "imageAlt", "mediaSrc", "mediaType", "useMediaSource", "u", "containerStyle", "p", "webGLContainerStyle", "WebGL", "hiddenStyle", "addPropertyControls", "universalPropertyControls", "ControlType"]
}
