{"version":3,"file":"WaveThreads.CFueIrWd.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/ROf43ng7xP4TxQybGnBL/W8BEFvqVx6bwvGqu50ir/WaveThreads.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,startTransition,useState}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";function colorToRgb01(color){if(!color)return[1,1,1];if(color.startsWith(\"#\")){const clean=color.replace(\"#\",\"\");const full=clean.length===3?clean.split(\"\").map(c=>c+c).join(\"\"):clean;const num=parseInt(full,16);if(!Number.isNaN(num)){return[(num>>16&255)/255,(num>>8&255)/255,(num&255)/255];}}const match=color.match(/\\d+(\\.\\d+)?/g);if(match&&match.length>=3){return[Math.min(255,Number(match[0]))/255,Math.min(255,Number(match[1]))/255,Math.min(255,Number(match[2]))/255];}return[1,1,1];}/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function WaveThreads(props){const{amplitude=1,distance=0,enableMouseInteraction=false,lineCount=40,lineWidth=7,animationSpeed=1,backgroundColor=\"transparent\",threadColor=\"#1FDCB3\",threadOpacity=.45,tintStrength=.65,leftTaper=.15,fadeEdges=true,fadeWidth=.18,fadeVertical=false,preserveAspectRatio=true,designAspectRatio=1.78,patternScale=1,offsetX=0,offsetY=0}=props;const containerRef=useRef(null);const canvasRef=useRef(null);const animationFrameId=useRef();const programRef=useRef(null);const[,setIsInitialized]=useState(false);const isStatic=useIsStaticRenderer();const vertexShader=`\n        attribute vec2 position;\n\n        void main() {\n            gl_Position = vec4(position, 0.0, 1.0);\n        }\n    `;const fragmentShader=`\n        precision highp float;\n\n        uniform float iTime;\n        uniform vec2 iResolution;\n        uniform float uAmplitude;\n        uniform float uDistance;\n        uniform vec2 uMouse;\n        uniform float uLineCount;\n        uniform float uLineWidth;\n        uniform vec3 uThreadColor;\n        uniform float uThreadOpacity;\n        uniform float uTintStrength;\n        uniform float uLeftTaper;\n        uniform float uFadeEdges;\n        uniform float uFadeWidth;\n        uniform float uFadeVertical;\n        uniform float uPreserveAspectRatio;\n        uniform float uDesignAspectRatio;\n        uniform float uPatternScale;\n        uniform vec2 uOffset;\n\n        float Perlin2D(vec2 P) {\n            vec2 Pi = floor(P);\n            vec4 Pf_Pfmin1 = P.xyxy - vec4(Pi, Pi + 1.0);\n            vec4 Pt = vec4(Pi.xy, Pi.xy + 1.0);\n            Pt = Pt - floor(Pt * (1.0 / 71.0)) * 71.0;\n            Pt += vec2(26.0, 161.0).xyxy;\n            Pt *= Pt;\n            Pt = Pt.xzxz * Pt.yyww;\n\n            vec4 hash_x = fract(Pt * (1.0 / 951.135664));\n            vec4 hash_y = fract(Pt * (1.0 / 642.949883));\n            vec4 grad_x = hash_x - 0.49999;\n            vec4 grad_y = hash_y - 0.49999;\n\n            vec4 grad_results = inversesqrt(grad_x * grad_x + grad_y * grad_y)\n                * (grad_x * Pf_Pfmin1.xzxz + grad_y * Pf_Pfmin1.yyww);\n\n            grad_results *= 1.4142135623730950;\n\n            vec2 blend = Pf_Pfmin1.xy * Pf_Pfmin1.xy * Pf_Pfmin1.xy\n                * (Pf_Pfmin1.xy * (Pf_Pfmin1.xy * 6.0 - 15.0) + 10.0);\n\n            vec4 blend2 = vec4(blend, vec2(1.0 - blend));\n\n            return dot(grad_results, blend2.zxzx * blend2.wwyy);\n        }\n\n        float pixel(float count, vec2 resolution) {\n            return (1.0 / max(resolution.x, resolution.y)) * count;\n        }\n\n        float lineFn(\n            vec2 st,\n            float width,\n            float perc,\n            vec2 mouse,\n            float time,\n            float amplitude,\n            float distance\n        ) {\n            float split_offset = perc * 0.4;\n            float split_point = 0.1 + split_offset;\n\n            float taperedAmplitude = smoothstep(split_point, 0.7, st.x);\n            float evenAmplitude = 1.0;\n            float amplitude_normal = mix(evenAmplitude, taperedAmplitude, uLeftTaper);\n\n            float finalAmplitude = amplitude_normal * 0.5 * amplitude\n                * (1.0 + (mouse.y - 0.5) * 0.2);\n\n            float time_scaled = time / 10.0 + (mouse.x - 0.5) * 1.0;\n            float blur = smoothstep(split_point, split_point + 0.05, st.x) * perc;\n\n            float xnoise = mix(\n                Perlin2D(vec2(time_scaled, st.x + perc) * 2.5),\n                Perlin2D(vec2(time_scaled, st.x + time_scaled) * 3.5) / 1.5,\n                st.x * 0.3\n            );\n\n            float y = 0.5 + (perc - 0.5) * distance + xnoise / 2.0 * finalAmplitude;\n\n            float line_start = smoothstep(\n                y + (width / 2.0) + (10.0 * pixel(1.0, iResolution) * blur),\n                y,\n                st.y\n            );\n\n            float line_end = smoothstep(\n                y,\n                y - (width / 2.0) - (10.0 * pixel(1.0, iResolution) * blur),\n                st.y\n            );\n\n            return clamp(\n                (line_start - line_end) * (1.0 - smoothstep(0.0, 1.0, pow(perc, 0.3))),\n                0.0,\n                1.0\n            );\n        }\n\n        vec2 preserveAspect(vec2 uv) {\n            if (uPreserveAspectRatio < 0.5) return uv;\n\n            float currentAspect = iResolution.x / iResolution.y;\n            vec2 centered = uv - 0.5;\n\n            if (currentAspect > uDesignAspectRatio) {\n                centered.x *= currentAspect / uDesignAspectRatio;\n            } else {\n                centered.y *= uDesignAspectRatio / currentAspect;\n            }\n\n            centered /= max(uPatternScale, 0.001);\n            centered -= uOffset;\n\n            return centered + 0.5;\n        }\n\n        float edgeFade(vec2 screenUv) {\n            if (uFadeEdges < 0.5) return 1.0;\n\n            float width = max(uFadeWidth, 0.001);\n\n            float fade = smoothstep(0.0, width, screenUv.x)\n                * smoothstep(0.0, width, 1.0 - screenUv.x);\n\n            if (uFadeVertical > 0.5) {\n                fade *= smoothstep(0.0, width, screenUv.y)\n                    * smoothstep(0.0, width, 1.0 - screenUv.y);\n            }\n\n            return fade;\n        }\n\n        void main() {\n            vec2 screenUv = gl_FragCoord.xy / iResolution;\n            vec2 uv = preserveAspect(screenUv);\n\n            float line_strength = 1.0;\n            int lineCountInt = int(uLineCount);\n\n            for (int i = 0; i < 100; i++) {\n                if (i >= lineCountInt) break;\n\n                float p = float(i) / uLineCount;\n\n                line_strength *= (1.0 - lineFn(\n                    uv,\n                    uLineWidth * pixel(1.0, iResolution) * (1.0 - p),\n                    p,\n                    uMouse,\n                    iTime,\n                    uAmplitude,\n                    uDistance\n                ));\n            }\n\n            float colorVal = 1.0 - line_strength;\n            float alpha = colorVal * uThreadOpacity * edgeFade(screenUv);\n\n            gl_FragColor = vec4(uThreadColor, alpha);\n        }\n    `;const createShader=(gl,type,source)=>{const shader=gl.createShader(type);if(!shader)return null;gl.shaderSource(shader,source);gl.compileShader(shader);if(!gl.getShaderParameter(shader,gl.COMPILE_STATUS)){console.error(\"Shader compilation error:\",gl.getShaderInfoLog(shader));gl.deleteShader(shader);return null;}return shader;};const createProgram=(gl,vertexShader,fragmentShader)=>{const program=gl.createProgram();if(!program)return null;gl.attachShader(program,vertexShader);gl.attachShader(program,fragmentShader);gl.linkProgram(program);if(!gl.getProgramParameter(program,gl.LINK_STATUS)){console.error(\"Program linking error:\",gl.getProgramInfoLog(program));gl.deleteProgram(program);return null;}return program;};useEffect(()=>{if(isStatic)return;const canvas=canvasRef.current;const container=containerRef.current;if(!canvas||!container)return;const gl=canvas.getContext(\"webgl\",{alpha:true,premultipliedAlpha:false});if(!gl){console.error(\"WebGL not supported\");return;}gl.clearColor(0,0,0,0);gl.enable(gl.BLEND);gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA);const vertexShaderObj=createShader(gl,gl.VERTEX_SHADER,vertexShader);const fragmentShaderObj=createShader(gl,gl.FRAGMENT_SHADER,fragmentShader);if(!vertexShaderObj||!fragmentShaderObj)return;const program=createProgram(gl,vertexShaderObj,fragmentShaderObj);if(!program)return;programRef.current=program;gl.useProgram(program);const positions=new Float32Array([-1,-1,3,-1,-1,3]);const positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);gl.bufferData(gl.ARRAY_BUFFER,positions,gl.STATIC_DRAW);const positionLocation=gl.getAttribLocation(program,\"position\");gl.enableVertexAttribArray(positionLocation);gl.vertexAttribPointer(positionLocation,2,gl.FLOAT,false,0,0);const uniforms={iTime:gl.getUniformLocation(program,\"iTime\"),iResolution:gl.getUniformLocation(program,\"iResolution\"),uAmplitude:gl.getUniformLocation(program,\"uAmplitude\"),uDistance:gl.getUniformLocation(program,\"uDistance\"),uMouse:gl.getUniformLocation(program,\"uMouse\"),uLineCount:gl.getUniformLocation(program,\"uLineCount\"),uLineWidth:gl.getUniformLocation(program,\"uLineWidth\"),uThreadColor:gl.getUniformLocation(program,\"uThreadColor\"),uThreadOpacity:gl.getUniformLocation(program,\"uThreadOpacity\"),uTintStrength:gl.getUniformLocation(program,\"uTintStrength\"),uLeftTaper:gl.getUniformLocation(program,\"uLeftTaper\"),uFadeEdges:gl.getUniformLocation(program,\"uFadeEdges\"),uFadeWidth:gl.getUniformLocation(program,\"uFadeWidth\"),uFadeVertical:gl.getUniformLocation(program,\"uFadeVertical\"),uPreserveAspectRatio:gl.getUniformLocation(program,\"uPreserveAspectRatio\"),uDesignAspectRatio:gl.getUniformLocation(program,\"uDesignAspectRatio\"),uPatternScale:gl.getUniformLocation(program,\"uPatternScale\"),uOffset:gl.getUniformLocation(program,\"uOffset\")};let currentMouse=[.5,.5];let targetMouse=[.5,.5];const handleMouseMove=e=>{const rect=container.getBoundingClientRect();const x=(e.clientX-rect.left)/rect.width;const y=1-(e.clientY-rect.top)/rect.height;targetMouse=[x,y];};const handleMouseLeave=()=>{targetMouse=[.5,.5];};if(enableMouseInteraction){container.addEventListener(\"mousemove\",handleMouseMove);container.addEventListener(\"mouseleave\",handleMouseLeave);}const resize=()=>{const{clientWidth,clientHeight}=container;const pixelRatio=Math.min(window.devicePixelRatio||1,2);canvas.width=Math.max(1,Math.floor(clientWidth*pixelRatio));canvas.height=Math.max(1,Math.floor(clientHeight*pixelRatio));canvas.style.width=`${clientWidth}px`;canvas.style.height=`${clientHeight}px`;gl.viewport(0,0,canvas.width,canvas.height);gl.uniform2f(uniforms.iResolution,canvas.width,canvas.height);};const resizeObserver=new ResizeObserver(resize);resizeObserver.observe(container);resize();const render=time=>{if(!programRef.current)return;if(enableMouseInteraction){const smoothing=.05;currentMouse[0]+=smoothing*(targetMouse[0]-currentMouse[0]);currentMouse[1]+=smoothing*(targetMouse[1]-currentMouse[1]);}else{currentMouse=[.5,.5];}const rgb=colorToRgb01(threadColor);gl.uniform1f(uniforms.iTime,time*.001*animationSpeed);gl.uniform1f(uniforms.uAmplitude,amplitude);gl.uniform1f(uniforms.uDistance,distance);gl.uniform2f(uniforms.uMouse,currentMouse[0],currentMouse[1]);gl.uniform1f(uniforms.uLineCount,lineCount);gl.uniform1f(uniforms.uLineWidth,lineWidth);gl.uniform3f(uniforms.uThreadColor,rgb[0],rgb[1],rgb[2]);gl.uniform1f(uniforms.uThreadOpacity,threadOpacity);gl.uniform1f(uniforms.uTintStrength,tintStrength);gl.uniform1f(uniforms.uLeftTaper,leftTaper);gl.uniform1f(uniforms.uFadeEdges,fadeEdges?1:0);gl.uniform1f(uniforms.uFadeWidth,fadeWidth);gl.uniform1f(uniforms.uFadeVertical,fadeVertical?1:0);gl.uniform1f(uniforms.uPreserveAspectRatio,preserveAspectRatio?1:0);gl.uniform1f(uniforms.uDesignAspectRatio,designAspectRatio);gl.uniform1f(uniforms.uPatternScale,patternScale);gl.uniform2f(uniforms.uOffset,offsetX,offsetY);gl.clear(gl.COLOR_BUFFER_BIT);gl.drawArrays(gl.TRIANGLES,0,3);animationFrameId.current=requestAnimationFrame(render);};startTransition(()=>setIsInitialized(true));animationFrameId.current=requestAnimationFrame(render);return()=>{if(animationFrameId.current){cancelAnimationFrame(animationFrameId.current);}resizeObserver.disconnect();if(enableMouseInteraction){container.removeEventListener(\"mousemove\",handleMouseMove);container.removeEventListener(\"mouseleave\",handleMouseLeave);}};},[amplitude,distance,enableMouseInteraction,lineCount,lineWidth,animationSpeed,threadColor,threadOpacity,tintStrength,leftTaper,fadeEdges,fadeWidth,fadeVertical,preserveAspectRatio,designAspectRatio,patternScale,offsetX,offsetY,isStatic]);if(isStatic){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",backgroundColor,position:\"relative\",overflow:\"hidden\",opacity:threadOpacity,...props.style}});}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",backgroundColor,pointerEvents:enableMouseInteraction?\"auto\":\"none\",...props.style},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",display:\"block\"}})});}addPropertyControls(WaveThreads,{threadColor:{type:ControlType.Color,title:\"Thread Color\",defaultValue:\"#1FDCB3\"},threadOpacity:{type:ControlType.Number,title:\"Thread Opacity\",defaultValue:.45,min:0,max:1,step:.05},tintStrength:{type:ControlType.Number,title:\"Tint Strength\",defaultValue:.65,min:0,max:1,step:.05},leftTaper:{type:ControlType.Number,title:\"Left Taper\",defaultValue:.15,min:0,max:1,step:.05},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"transparent\"},fadeEdges:{type:ControlType.Boolean,title:\"Fade Edges\",defaultValue:true},fadeWidth:{type:ControlType.Number,title:\"Fade Width\",defaultValue:.18,min:.02,max:.5,step:.01,hidden:props=>!props.fadeEdges},fadeVertical:{type:ControlType.Boolean,title:\"Fade Top/Bottom\",defaultValue:false,hidden:props=>!props.fadeEdges},preserveAspectRatio:{type:ControlType.Boolean,title:\"Preserve Aspect\",defaultValue:true},designAspectRatio:{type:ControlType.Number,title:\"Aspect Ratio\",defaultValue:1.78,min:.5,max:3,step:.01,hidden:props=>!props.preserveAspectRatio},patternScale:{type:ControlType.Number,title:\"Pattern Scale\",defaultValue:1,min:.5,max:3,step:.05},offsetX:{type:ControlType.Number,title:\"Offset X\",defaultValue:0,min:-1,max:1,step:.01},offsetY:{type:ControlType.Number,title:\"Offset Y\",defaultValue:0,min:-1,max:1,step:.01},amplitude:{type:ControlType.Number,title:\"Wave Amplitude\",defaultValue:1,min:0,max:3,step:.1},distance:{type:ControlType.Number,title:\"Spread\",defaultValue:0,min:-1,max:1,step:.1},lineCount:{type:ControlType.Number,title:\"Count\",defaultValue:40,min:10,max:100,step:5,displayStepper:true},lineWidth:{type:ControlType.Number,title:\"Width\",defaultValue:7,min:1,max:20,step:1,displayStepper:true},animationSpeed:{type:ControlType.Number,title:\"Animation Speed\",defaultValue:1,min:0,max:3,step:.1},enableMouseInteraction:{type:ControlType.Boolean,title:\"Mouse Interaction\",defaultValue:false,enabledTitle:\"Enabled\",disabledTitle:\"Disabled\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"WaveThreads\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WaveThreads.map"],"mappings":"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"}