{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/yKoHw9VlLaReJCSl9siZ/cnTa7t6XCdqFViwLcYLf/CPerlinWave_02.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useRef,useEffect}from\"react\";import{addPropertyControls,ControlType}from\"framer\";function vertexShaderSource(){return`#version 300 es\n    in vec2 position;\n    out vec2 vPixelCoord;\n    uniform vec2 uResolution;\n    void main() {\n        gl_Position = vec4(position, 0.0, 1.0);\n        vPixelCoord = (vec2(position.x, -position.y) * 0.5 + 0.5) * uResolution;\n    }`;}function fragmentShaderSource(){return`#version 300 es\n        precision highp float;\n        in vec2 vPixelCoord;\n        out vec4 fragColor;\n        \n        uniform float uTime;\n        uniform vec2 uResolution;\n\n        uniform vec4 uColors[16];\n        uniform float uPositions[16];\n        uniform int uColorCount;\n\n        uniform float uGrainScale;\n        uniform float uGrainSpeed;\n        uniform float uGrainStr;\n\n        uniform float uNoiseScale;\n        uniform float uNoiseSpeed;\n\n        uniform float uWaveScale;\n        uniform float uWaveSpeed;\n        uniform float uWaveType;\n\n        uniform bool uPixelate;\n        uniform float uPixelScale;\n\n        vec4 colorRamp(float t) {\n            if (uColorCount == 0) return vec4(0.0);\n            if (t <= uPositions[0]) return uColors[0];\n            for (int i = 1; i < uColorCount; i++) {\n                if (t <= uPositions[i]) {\n                    return mix(uColors[i-1], uColors[i], \n                        (t - uPositions[i-1]) / (uPositions[i] - uPositions[i-1]));\n                }\n            }\n            return uColors[uColorCount - 1];\n        }\n\n        vec3 linearLight(vec3 base, vec3 blend, float factor) {\n            vec3 result = base + 2.0 * (blend - 0.5);\n            return mix(base, clamp(result, 0.0, 1.0), factor);\n        }\n\n        float wave(float x, float scale, float offset, float waveType) {\n            float t = (x - offset) * scale * 6.28318;\n            if (waveType < 0.5) {\n                return cos(t) * 0.5 + 0.5; \n            } else if (waveType < 1.5) {\n                return abs(fract(t / 6.28318) * 2.0 - 1.0); \n            } else {\n                return fract(t / 6.28318); \n            }\n        }\n\n        float white(vec2 coord, float scale, float seed) {\n            float baseScale = 1.7 / scale;\n            vec2 blockCoord = floor(coord * baseScale);\n            vec2 wrappedCoord = vec2(mod(blockCoord.x, 16384.0), mod(blockCoord.y, 16384.0));\n            \n            vec3 p3 = fract(vec3(wrappedCoord.xyx) * vec3(0.1031, 0.1030, 0.0973));\n            p3 += dot(p3, p3.yzx + 33.33);\n            return fract((p3.x + p3.y) * p3.z + seed);\n        }\n        \n        vec4 permute(vec4 x) {\n            return mod((x * 34.0 + 1.0) * x, 289.0);\n        }\n\n        vec4 taylorInvSqrt(vec4 r) {\n            return 1.79284291400159 - 0.85373472095314 * r;\n        }\n\n        float perlin(vec3 P) {\n            vec3 Pi0 = floor(P);\n            vec3 Pi1 = Pi0 + vec3(1.0);\n            Pi0 = mod(Pi0, 289.0);\n            Pi1 = mod(Pi1, 289.0);\n            vec3 Pf0 = fract(P);\n            vec3 Pf1 = Pf0 - vec3(1.0);\n            vec4 ix = vec4(Pi0.x, Pi1.x, Pi0.x, Pi1.x);\n            vec4 iy = vec4(Pi0.yy, Pi1.yy);\n            vec4 iz0 = Pi0.zzzz;\n            vec4 iz1 = Pi1.zzzz;\n\n            vec4 ixy = permute(permute(ix) + iy);\n            vec4 ixy0 = permute(ixy + iz0);\n            vec4 ixy1 = permute(ixy + iz1);\n\n            vec4 gx0 = ixy0 / 7.0;\n            vec4 gy0 = fract(floor(gx0) / 7.0) - 0.5;\n            gx0 = fract(gx0);\n            vec4 gz0 = vec4(0.5) - abs(gx0) - abs(gy0);\n            vec4 sz0 = step(gz0, vec4(0.0));\n            gx0 -= sz0 * (step(0.0, gx0) - 0.5);\n            gy0 -= sz0 * (step(0.0, gy0) - 0.5);\n\n            vec4 gx1 = ixy1 / 7.0;\n            vec4 gy1 = fract(floor(gx1) / 7.0) - 0.5;\n            gx1 = fract(gx1);\n            vec4 gz1 = vec4(0.5) - abs(gx1) - abs(gy1);\n            vec4 sz1 = step(gz1, vec4(0.0));\n            gx1 -= sz1 * (step(0.0, gx1) - 0.5);\n            gy1 -= sz1 * (step(0.0, gy1) - 0.5);\n\n            vec3 g000 = vec3(gx0.x,gy0.x,gz0.x);\n            vec3 g100 = vec3(gx0.y,gy0.y,gz0.y);\n            vec3 g010 = vec3(gx0.z,gy0.z,gz0.z);\n            vec3 g110 = vec3(gx0.w,gy0.w,gz0.w);\n            vec3 g001 = vec3(gx1.x,gy1.x,gz1.x);\n            vec3 g101 = vec3(gx1.y,gy1.y,gz1.y);\n            vec3 g011 = vec3(gx1.z,gy1.z,gz1.z);\n            vec3 g111 = vec3(gx1.w,gy1.w,gz1.w);\n\n            vec4 norm = taylorInvSqrt(vec4(dot(g000, g000), dot(g010, g010), dot(g100, g100), dot(g110, g110)));\n            g000 *= norm.x; g010 *= norm.y; g100 *= norm.z; g110 *= norm.w;\n            norm = taylorInvSqrt(vec4(dot(g001, g001), dot(g011, g011), dot(g101, g101), dot(g111, g111)));\n            g001 *= norm.x; g011 *= norm.y; g101 *= norm.z; g111 *= norm.w;\n\n            float n000 = dot(g000, Pf0);\n            float n100 = dot(g100, vec3(Pf1.x, Pf0.yz));\n            float n010 = dot(g010, vec3(Pf0.x, Pf1.y, Pf0.z));\n            float n110 = dot(g110, vec3(Pf1.xy, Pf0.z));\n            float n001 = dot(g001, vec3(Pf0.xy, Pf1.z));\n            float n101 = dot(g101, vec3(Pf1.x, Pf0.y, Pf1.z));\n            float n011 = dot(g011, vec3(Pf0.x, Pf1.yz));\n            float n111 = dot(g111, Pf1);\n\n            vec3 fade_xyz = Pf0 * Pf0 * Pf0 * (Pf0 * (Pf0 * 6.0 - 15.0) + 10.0);\n            vec4 n_z = mix(vec4(n000, n100, n010, n110), vec4(n001, n101, n011, n111), fade_xyz.z);\n            vec2 n_yz = mix(n_z.xy, n_z.zw, fade_xyz.y);\n            float n_xyz = mix(n_yz.x, n_yz.y, fade_xyz.x); \n            return 2.2 * n_xyz;\n        }\n\n        void main() {\n        vec2 coord = vPixelCoord;\n            \n        if (uPixelate) {\n            vec2 pixelSize = vec2(max(1.0, floor(uPixelScale)));\n            coord = floor(vPixelCoord / pixelSize) * pixelSize + pixelSize * 0.5;\n        }\n\n        float grainScale = uGrainScale * 0.5;\n        float grainSpeed = uGrainSpeed * 0.02;\n\n        float noiseScale = 0.002 / uNoiseScale;\n        float noiseSpeed = uTime * uNoiseSpeed * 0.01;\n\n        float waveScale = 100.0 / uWaveScale;\n        float waveSpeed = uTime * uWaveSpeed * 0.1;\n        \n        float baseNoise = perlin(vec3(coord * noiseScale, noiseSpeed));\n        vec3 grain = vec3(white(coord, grainScale, uTime * grainSpeed));\n\n        vec3 waveNoise = vec3(wave(0.5 * waveScale * baseNoise, 1.0, mod(waveSpeed, 1.0), uWaveType));\n        \n        fragColor = colorRamp(linearLight(waveNoise, grain, uGrainStr).r);\n    }`;}function parseColor(color){const div=document.createElement(\"div\");div.style.color=color;document.body.appendChild(div);const rgba=getComputedStyle(div).color.match(/\\d+(\\.\\d+)?/g).map(Number);document.body.removeChild(div);return rgba.length===3?[...rgba.map(v=>v/255),1]:rgba.map((v,i)=>i<3?v/255:v);}function getUniformLocations(gl,shaderProgram){return{uColorsLocation:gl.getUniformLocation(shaderProgram,\"uColors\"),uPositionsLocation:gl.getUniformLocation(shaderProgram,\"uPositions\"),uColorCountLocation:gl.getUniformLocation(shaderProgram,\"uColorCount\"),uTimeLocation:gl.getUniformLocation(shaderProgram,\"uTime\"),uResolutionLocation:gl.getUniformLocation(shaderProgram,\"uResolution\"),uGrainScaleLocation:gl.getUniformLocation(shaderProgram,\"uGrainScale\"),uGrainSpeedLocation:gl.getUniformLocation(shaderProgram,\"uGrainSpeed\"),uGrainStrLocation:gl.getUniformLocation(shaderProgram,\"uGrainStr\"),uNoiseScaleLocation:gl.getUniformLocation(shaderProgram,\"uNoiseScale\"),uNoiseSpeedLocation:gl.getUniformLocation(shaderProgram,\"uNoiseSpeed\"),uWaveScaleLocation:gl.getUniformLocation(shaderProgram,\"uWaveScale\"),uWaveSpeedLocation:gl.getUniformLocation(shaderProgram,\"uWaveSpeed\"),uWaveTypeLocation:gl.getUniformLocation(shaderProgram,\"uWaveType\"),uPixelate:gl.getUniformLocation(shaderProgram,\"uPixelate\"),uPixelScale:gl.getUniformLocation(shaderProgram,\"uPixelScale\")};}function setUniforms(gl,loc,props,time,resolution){const sortedColors=[...props.colors].sort((a,b)=>a.position-b.position);const colors=sortedColors.map(c=>parseColor(c.color)).flat();const positions=sortedColors.map(c=>c.position);gl.uniform4fv(loc.uColorsLocation,new Float32Array(colors));gl.uniform1fv(loc.uPositionsLocation,new Float32Array(positions));gl.uniform1i(loc.uColorCountLocation,sortedColors.length);gl.uniform1f(loc.uTimeLocation,time);gl.uniform2f(loc.uResolutionLocation,resolution.x,resolution.y);gl.uniform1f(loc.uGrainScaleLocation,props.grainScale);gl.uniform1f(loc.uGrainSpeedLocation,props.grainSpeed);gl.uniform1f(loc.uGrainStrLocation,props.grainStr);gl.uniform1f(loc.uNoiseScaleLocation,props.noiseScale);gl.uniform1f(loc.uNoiseSpeedLocation,props.noiseSpeed);gl.uniform1f(loc.uWaveScaleLocation,props.waveScale);gl.uniform1f(loc.uWaveSpeedLocation,props.waveSpeed);gl.uniform1f(loc.uWaveTypeLocation,props.waveType);gl.uniform1i(loc.uPixelate,props.pixelate);gl.uniform1f(loc.uPixelScale,props.pixelScale);}function initWebGL(gl){const shaderProgram=gl.createProgram();[gl.VERTEX_SHADER,gl.FRAGMENT_SHADER].forEach((type,i)=>{const shader=gl.createShader(type);gl.shaderSource(shader,[vertexShaderSource,fragmentShaderSource][i]());gl.compileShader(shader);gl.attachShader(shaderProgram,shader);});gl.linkProgram(shaderProgram);gl.useProgram(shaderProgram);const vertices=new Float32Array([-1,-1,1,-1,1,1,-1,1]);const vertexBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,vertexBuffer);gl.bufferData(gl.ARRAY_BUFFER,vertices,gl.STATIC_DRAW);const position=gl.getAttribLocation(shaderProgram,\"position\");gl.vertexAttribPointer(position,2,gl.FLOAT,false,0,0);gl.enableVertexAttribArray(position);gl.enable(gl.BLEND);gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA);return getUniformLocations(gl,shaderProgram);}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n *\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 640\n * @framerIntrinsicHeight 480\n */export default function CPerlinWave_02(props){const canvasRef=useRef(null);const[status,setStatus]=useState(\"ready\");useEffect(()=>{const canvas=canvasRef.current;let gl,uniformLocations,animationFrameId;function initGL(){gl=canvas.getContext(\"webgl2\",{alpha:true});if(!gl){setStatus(\"error\");return false;}uniformLocations=initWebGL(gl);setStatus(\"ready\");return true;}function render(time){const{width,height}=canvas;const{clientWidth,clientHeight}=canvas;if(width!==clientWidth*2||height!==clientHeight*2){canvas.width=clientWidth*2;canvas.height=clientHeight*2;gl.viewport(0,0,canvas.width,canvas.height);}gl.clear(gl.COLOR_BUFFER_BIT);setUniforms(gl,uniformLocations,props,time*.001,{x:width,y:height});gl.drawArrays(gl.TRIANGLE_FAN,0,4);animationFrameId=requestAnimationFrame(render);}const handleContextLost=event=>{event.preventDefault();cancelAnimationFrame(animationFrameId);setStatus(\"loading\");};const handleContextRestored=()=>initGL()&&requestAnimationFrame(render);canvas.addEventListener(\"webglcontextlost\",handleContextLost);canvas.addEventListener(\"webglcontextrestored\",handleContextRestored);if(initGL())animationFrameId=requestAnimationFrame(render);return()=>{cancelAnimationFrame(animationFrameId);canvas.removeEventListener(\"webglcontextlost\",handleContextLost);canvas.removeEventListener(\"webglcontextrestored\",handleContextRestored);};},[props]);return /*#__PURE__*/_jsxs(_Fragment,{children:[status!==\"ready\"&&/*#__PURE__*/_jsx(\"div\",{style:{background:\"white\",height:\"100%\",padding:8},children:\"WebGL is loading...\"}),/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",display:status===\"ready\"?\"block\":\"none\"}})]});}CPerlinWave_02.displayName=\"Sol 1.3 - Wave gradient\";addPropertyControls(CPerlinWave_02,{colors:{type:ControlType.Array,title:\"Colors\",control:{type:ControlType.Object,title:\"Color\",controls:{color:{type:ControlType.Color,title:\"Color\"},position:{type:ControlType.Number,title:\"Position\",defaultValue:0,min:0,max:1,step:.01}}},defaultValue:[{color:\"#fae6e6\",position:0},{color:\"#e03100\",position:.35},{color:\"#6e008a\",position:.87},{color:\"#0e0014\",position:1}],description:\" \"},grainScale:{type:ControlType.Number,title:\"Grain\",defaultValue:1,min:.1,max:100,step:.1},grainSpeed:{type:ControlType.Number,title:\"Speed\",defaultValue:50,min:0,max:100},grainStr:{type:ControlType.Number,title:\"Strength\",defaultValue:.1,min:0,max:1,step:.01,description:\" \"},noiseScale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,min:.1,max:10,step:.01},noiseSpeed:{type:ControlType.Number,title:\"Speed\",defaultValue:10,min:-25,max:25,step:.1,description:\" \"},waveType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Wave type\",options:[0,1],optionTitles:[\"Sine\",\"Triangle\"],defaultValue:0},waveScale:{type:ControlType.Number,title:\"Scale\",defaultValue:40,min:.1,max:100,step:.01},waveSpeed:{type:ControlType.Number,title:\"Speed\",defaultValue:0,min:-25,max:25,step:.1,description:\" \"},pixelate:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Pixelate\",options:[0,1],optionTitles:[\"Off\",\"On\"],defaultValue:0},pixelScale:{type:ControlType.Number,title:\"Scale\",defaultValue:20,max:100,min:1,step:1,hidden:props=>props.pixelate===0,description:\"Made with care and love by Teyah.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CPerlinWave_02\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"480\",\"framerIntrinsicWidth\":\"640\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CPerlinWave_02.map"],
  "mappings": "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",
  "names": ["vertexShaderSource", "fragmentShaderSource", "parseColor", "color", "div", "rgba", "v", "getUniformLocations", "gl", "shaderProgram", "setUniforms", "loc", "props", "time", "resolution", "sortedColors", "a", "b", "colors", "c", "positions", "initWebGL", "type", "i", "shader", "vertices", "vertexBuffer", "position", "CPerlinWave_02", "canvasRef", "pe", "status", "setStatus", "ye", "ue", "canvas", "uniformLocations", "animationFrameId", "initGL", "render", "width", "height", "clientWidth", "clientHeight", "handleContextLost", "event", "handleContextRestored", "u", "l", "p", "addPropertyControls", "ControlType"]
}
