{"version":3,"file":"GradientColumns.DwAVUZLL.mjs","names":["useRef"],"sources":["https:/framerusercontent.com/modules/1WozRmd1rKiampgjFsOj/cELpdrGtBdTw8c3eObmz/GradientColumns.js"],"sourcesContent":["// Gradient Columns component with WebGL shader effects and mouse interaction\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";const MAX_COLORS=8;function hexToRgb(hex){const parsed=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);return parsed?{r:parseInt(parsed[1],16),g:parseInt(parsed[2],16),b:parseInt(parsed[3],16)}:{r:0,g:0,b:0};}function parseColor(str){if(!str)return{r:0,g:0,b:0};// If already rgba(...)\nif(str.startsWith(\"rgb\")){const[r,g,b]=str.match(/\\d+/g).map(Number);return{r,g,b};}// Hex fallback\nconst parsed=/^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(str);return parsed?{r:parseInt(parsed[1],16),g:parseInt(parsed[2],16),b:parseInt(parsed[3],16)}:{r:0,g:0,b:0};}// Function to interpolate between colors in the gradient array\nconst preStop=(offset,colors)=>{if(colors.length===0)return\"#000000\";if(colors.length===1)return colors[0];const clampedOffset=Math.max(0,Math.min(1,offset));const scaledPosition=clampedOffset*(colors.length-1);const lowerIndex=Math.floor(scaledPosition);const upperIndex=Math.min(lowerIndex+1,colors.length-1);const localOffset=scaledPosition-lowerIndex;if(lowerIndex===upperIndex)return colors[lowerIndex];const color1=parseColor(colors[lowerIndex]);const color2=parseColor(colors[upperIndex]);const r=Math.round(color1.r+(color2.r-color1.r)*localOffset);const g=Math.round(color1.g+(color2.g-color1.g)*localOffset);const b=Math.round(color1.b+(color2.b-color1.b)*localOffset);return`rgb(${r}, ${g}, ${b})`;};// Helper function to generate gradient stops\nconst generateGradientStops=(gradientColors,stopCount=10)=>{return Array.from({length:stopCount},(_,i)=>{const offset=i/(stopCount-1)// 0 → 1\n;return{offset:`${offset*100}%`,stopColor:preStop(offset,gradientColors)};});};const prepStops=stops=>{const base=(stops&&stops.length?stops:[\"#FF9FFC\",\"#5227FF\"]).slice(0,MAX_COLORS);if(base.length===1)base.push(base[0]);while(base.length<MAX_COLORS)base.push(base[base.length-1]);const arr=[];for(let i=0;i<MAX_COLORS;i++){const rgb=parseColor(base[i]);arr.push([rgb.r/255,rgb.g/255,rgb.b/255]);}const count=Math.max(2,Math.min(MAX_COLORS,stops?.length??2));return{arr,count};};/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function GradientColumns(props){const{gradientColors=[\"#FF9FFC\",\"#5227FF\"],angle=0,noise=.3,columnCount=16,columnMinWidth=60,mouseDampening=.15,mirrorGradient=false,spotlightRadius=.5,spotlightSoftness=1,spotlightOpacity=1,distortAmount=0,shineDirection=\"left\",mixBlendMode=\"normal\",zIndex=0,animationDuration=4e3}=props;const containerRef=useRef(null);const canvasRef=useRef(null);const rafRef=useRef(null);const glRef=useRef(null);const programRef=useRef(null);const mouseTargetRef=useRef([0,0]);const mouseCurrentRef=useRef([0,0]);const lastTimeRef=useRef(0);const uniformsRef=useRef({});const isStatic=useIsStaticRenderer();// Mobile detection and auto-animation state\nconst isMobileRef=useRef(false);const autoAnimationStartTimeRef=useRef(0);// Detect if device is mobile (not tablet)\nuseEffect(()=>{if(typeof window!==\"undefined\"){isMobileRef.current=/iPhone|iPod|Android/i.test(navigator.userAgent)&&!/iPad/i.test(navigator.userAgent);}},[]);useEffect(()=>{if(isStatic)return;const container=containerRef.current;if(!container)return;// Create canvas\nconst canvas=document.createElement(\"canvas\");canvasRef.current=canvas;canvas.style.width=\"100%\";canvas.style.height=\"100%\";canvas.style.display=\"block\";container.appendChild(canvas);// Get WebGL context with better error handling\nconst gl=canvas.getContext(\"webgl\",{alpha:true,antialias:true,preserveDrawingBuffer:false});if(!gl){console.error(\"WebGL not supported\");return;}glRef.current=gl;// Enable blending for transparency\ngl.enable(gl.BLEND);gl.blendFunc(gl.SRC_ALPHA,gl.ONE_MINUS_SRC_ALPHA);// Vertex shader\nconst vertexShaderSource=`\n      attribute vec2 a_position;\n      varying vec2 vUv;\n      \n      void main() {\n        vUv = a_position * 0.5 + 0.5;\n        gl_Position = vec4(a_position, 0.0, 1.0);\n      }\n    `;// Fragment shader\nconst fragmentShaderSource=`\n      #ifdef GL_ES\n      precision mediump float;\n      #endif\n      \n      uniform vec3 iResolution;\n      uniform vec2 iMouse;\n      uniform float iTime;\n      uniform float uAngle;\n      uniform float uNoise;\n      uniform float uColumnCount;\n      uniform float uSpotlightRadius;\n      uniform float uSpotlightSoftness;\n      uniform float uSpotlightOpacity;\n      uniform float uMirror;\n      uniform float uDistort;\n      uniform float uShineFlip;\n      uniform vec3 uColor0;\n      uniform vec3 uColor1;\n      uniform vec3 uColor2;\n      uniform vec3 uColor3;\n      uniform vec3 uColor4;\n      uniform vec3 uColor5;\n      uniform vec3 uColor6;\n      uniform vec3 uColor7;\n      uniform int uColorCount;\n      \n      varying vec2 vUv;\n      \n      float rand(vec2 co) {\n        return fract(sin(dot(co, vec2(12.9898, 78.233))) * 43758.5453);\n      }\n      \n      vec2 rotate2D(vec2 p, float a) {\n        float c = cos(a);\n        float s = sin(a);\n        return mat2(c, -s, s, c) * p;\n      }\n      \n      vec3 getGradientColor(float t) {\n        float tt = clamp(t, 0.0, 1.0);\n        int count = uColorCount;\n        if (count < 2) count = 2;\n        float scaled = tt * float(count - 1);\n        float seg = floor(scaled);\n        float f = fract(scaled);\n        \n        if (seg < 1.0) return mix(uColor0, uColor1, f);\n        if (seg < 2.0 && count > 2) return mix(uColor1, uColor2, f);\n        if (seg < 3.0 && count > 3) return mix(uColor2, uColor3, f);\n        if (seg < 4.0 && count > 4) return mix(uColor3, uColor4, f);\n        if (seg < 5.0 && count > 5) return mix(uColor4, uColor5, f);\n        if (seg < 6.0 && count > 6) return mix(uColor5, uColor6, f);\n        if (seg < 7.0 && count > 7) return mix(uColor6, uColor7, f);\n        if (count > 7) return uColor7;\n        if (count > 6) return uColor6;\n        if (count > 5) return uColor5;\n        if (count > 4) return uColor4;\n        if (count > 3) return uColor3;\n        if (count > 2) return uColor2;\n        return uColor1;\n      }\n      \n      void main() {\n        vec2 uv0 = vUv;\n        float aspect = iResolution.x / iResolution.y;\n        vec2 p = uv0 * 2.0 - 1.0;\n        p.x *= aspect;\n        vec2 pr = rotate2D(p, uAngle);\n        pr.x /= aspect;\n        vec2 uv = pr * 0.5 + 0.5;\n        \n        vec2 uvMod = uv;\n        if (uDistort > 0.0) {\n          float a = uvMod.y * 6.0;\n          float b = uvMod.x * 6.0;\n          float w = 0.01 * uDistort;\n          uvMod.x += sin(a) * w;\n          uvMod.y += cos(b) * w;\n        }\n        \n        float t = uvMod.x;\n        if (uMirror > 0.5) {\n          t = 1.0 - abs(1.0 - 2.0 * fract(t));\n        }\n        vec3 base = getGradientColor(t);\n        \n        vec2 offset = vec2(iMouse.x / iResolution.x, iMouse.y / iResolution.y);\n        float d = length(uv0 - offset);\n        float r = max(uSpotlightRadius, 1e-4);\n        float dn = d / r;\n        float spot = (1.0 - 2.0 * pow(dn, uSpotlightSoftness)) * uSpotlightOpacity;\n        vec3 cir = vec3(spot);\n        \n        float stripe = fract(uvMod.x * max(uColumnCount, 1.0));\n        if (uShineFlip > 0.5) stripe = 1.0 - stripe;\n        vec3 ran = vec3(stripe);\n        \n        vec3 col = cir + base - ran;\n        col += (rand(uv0 * iResolution.xy + iTime) - 0.5) * uNoise;\n        \n        gl_FragColor = vec4(col, 1.0);\n      }\n    `;// Create shaders with better error handling\nconst createShader=(type,source)=>{const shader=gl.createShader(type);if(!shader){console.error(\"Failed to create shader\");return null;}gl.shaderSource(shader,source);gl.compileShader(shader);if(!gl.getShaderParameter(shader,gl.COMPILE_STATUS)){const error=gl.getShaderInfoLog(shader);console.error(\"Shader compile error:\",error);gl.deleteShader(shader);return null;}return shader;};const vertexShader=createShader(gl.VERTEX_SHADER,vertexShaderSource);const fragmentShader=createShader(gl.FRAGMENT_SHADER,fragmentShaderSource);if(!vertexShader||!fragmentShader){console.error(\"Failed to create shaders\");return;}// Create and link program\nconst program=gl.createProgram();if(!program){console.error(\"Failed to create program\");return;}programRef.current=program;gl.attachShader(program,vertexShader);gl.attachShader(program,fragmentShader);gl.linkProgram(program);if(!gl.getProgramParameter(program,gl.LINK_STATUS)){const error=gl.getProgramInfoLog(program);console.error(\"Program link error:\",error);gl.deleteProgram(program);return;}gl.useProgram(program);// Clean up shaders after linking\ngl.deleteShader(vertexShader);gl.deleteShader(fragmentShader);// Get uniform locations\nconst uniforms={iResolution:gl.getUniformLocation(program,\"iResolution\"),iMouse:gl.getUniformLocation(program,\"iMouse\"),iTime:gl.getUniformLocation(program,\"iTime\"),uAngle:gl.getUniformLocation(program,\"uAngle\"),uNoise:gl.getUniformLocation(program,\"uNoise\"),uColumnCount:gl.getUniformLocation(program,\"uColumnCount\"),uSpotlightRadius:gl.getUniformLocation(program,\"uSpotlightRadius\"),uSpotlightSoftness:gl.getUniformLocation(program,\"uSpotlightSoftness\"),uSpotlightOpacity:gl.getUniformLocation(program,\"uSpotlightOpacity\"),uMirror:gl.getUniformLocation(program,\"uMirror\"),uDistort:gl.getUniformLocation(program,\"uDistort\"),uShineFlip:gl.getUniformLocation(program,\"uShineFlip\"),uColor0:gl.getUniformLocation(program,\"uColor0\"),uColor1:gl.getUniformLocation(program,\"uColor1\"),uColor2:gl.getUniformLocation(program,\"uColor2\"),uColor3:gl.getUniformLocation(program,\"uColor3\"),uColor4:gl.getUniformLocation(program,\"uColor4\"),uColor5:gl.getUniformLocation(program,\"uColor5\"),uColor6:gl.getUniformLocation(program,\"uColor6\"),uColor7:gl.getUniformLocation(program,\"uColor7\"),uColorCount:gl.getUniformLocation(program,\"uColorCount\")};uniformsRef.current=uniforms;// Create geometry - full screen quad\nconst positions=new Float32Array([-1,-1,1,-1,-1,1,1,1]);const buffer=gl.createBuffer();if(!buffer){console.error(\"Failed to create buffer\");return;}gl.bindBuffer(gl.ARRAY_BUFFER,buffer);gl.bufferData(gl.ARRAY_BUFFER,positions,gl.STATIC_DRAW);const positionLocation=gl.getAttribLocation(program,\"a_position\");if(positionLocation===-1){console.error(\"Failed to get position attribute location\");return;}gl.enableVertexAttribArray(positionLocation);gl.vertexAttribPointer(positionLocation,2,gl.FLOAT,false,0,0);// Update uniforms function\nconst updateUniforms=()=>{try{const{arr:colorArr,count:colorCount}=prepStops(gradientColors);// Ensure program is active before setting uniforms\ngl.useProgram(program);if(uniforms.uAngle)gl.uniform1f(uniforms.uAngle,angle*Math.PI/180);if(uniforms.uNoise)gl.uniform1f(uniforms.uNoise,noise);if(uniforms.uSpotlightRadius)gl.uniform1f(uniforms.uSpotlightRadius,spotlightRadius);if(uniforms.uSpotlightSoftness)gl.uniform1f(uniforms.uSpotlightSoftness,spotlightSoftness);if(uniforms.uSpotlightOpacity)gl.uniform1f(uniforms.uSpotlightOpacity,spotlightOpacity);if(uniforms.uMirror)gl.uniform1f(uniforms.uMirror,mirrorGradient?1:0);if(uniforms.uDistort)gl.uniform1f(uniforms.uDistort,distortAmount);if(uniforms.uShineFlip)gl.uniform1f(uniforms.uShineFlip,shineDirection===\"right\"?1:0);if(uniforms.uColorCount)gl.uniform1i(uniforms.uColorCount,colorCount);// Set color uniforms with proper error checking\nif(uniforms.uColor0&&colorArr[0])gl.uniform3fv(uniforms.uColor0,colorArr[0]);if(uniforms.uColor1&&colorArr[1])gl.uniform3fv(uniforms.uColor1,colorArr[1]);if(uniforms.uColor2&&colorArr[2])gl.uniform3fv(uniforms.uColor2,colorArr[2]);if(uniforms.uColor3&&colorArr[3])gl.uniform3fv(uniforms.uColor3,colorArr[3]);if(uniforms.uColor4&&colorArr[4])gl.uniform3fv(uniforms.uColor4,colorArr[4]);if(uniforms.uColor5&&colorArr[5])gl.uniform3fv(uniforms.uColor5,colorArr[5]);if(uniforms.uColor6&&colorArr[6])gl.uniform3fv(uniforms.uColor6,colorArr[6]);if(uniforms.uColor7&&colorArr[7])gl.uniform3fv(uniforms.uColor7,colorArr[7]);}catch(error){console.error(\"Error updating uniforms:\",error);}};// Resize function\nconst resize=()=>{try{const rect=container.getBoundingClientRect();const dpr=typeof window!==\"undefined\"?window.devicePixelRatio||1:1;canvas.width=rect.width*dpr;canvas.height=rect.height*dpr;gl.viewport(0,0,canvas.width,canvas.height);if(uniforms.iResolution){gl.uniform3f(uniforms.iResolution,canvas.width,canvas.height,1);}// Update column count based on min width\nif(columnMinWidth&&columnMinWidth>0){const maxByMinWidth=Math.max(1,Math.floor(rect.width/columnMinWidth));const effective=columnCount?Math.min(columnCount,maxByMinWidth):maxByMinWidth;if(uniforms.uColumnCount){gl.uniform1f(uniforms.uColumnCount,Math.max(1,effective));}}else{if(uniforms.uColumnCount){gl.uniform1f(uniforms.uColumnCount,Math.max(1,columnCount));}}// Initialize mouse position\nconst cx=canvas.width/2;const cy=canvas.height/2;mouseTargetRef.current=[cx,cy];mouseCurrentRef.current=[cx,cy];if(uniforms.iMouse){gl.uniform2f(uniforms.iMouse,cx,cy);}}catch(error){console.error(\"Error in resize:\",error);}};resize();// Mouse handling\nconst onPointerMove=e=>{try{const rect=canvas.getBoundingClientRect();const dpr=typeof window!==\"undefined\"?window.devicePixelRatio||1:1;const x=Math.max(0,Math.min(canvas.width,(e.clientX-rect.left)*dpr));const y=Math.max(0,Math.min(canvas.height,(rect.height-(e.clientY-rect.top))*dpr));mouseTargetRef.current=[x,y];if(mouseDampening<=0&&uniforms.iMouse){gl.uniform2f(uniforms.iMouse,x,y);mouseCurrentRef.current=[x,y];}}catch(error){console.error(\"Error in pointer move:\",error);}};canvas.addEventListener(\"pointermove\",onPointerMove);// Set initial uniforms\nupdateUniforms();// Resize observer\nconst ro=new ResizeObserver(resize);ro.observe(container);// Animation loop\nconst loop=t=>{rafRef.current=requestAnimationFrame(loop);try{if(uniforms.iTime){gl.uniform1f(uniforms.iTime,t*.001);}// Mobile auto-animation\nif(isMobileRef.current){if(autoAnimationStartTimeRef.current===0){autoAnimationStartTimeRef.current=t;}const elapsed=t-autoAnimationStartTimeRef.current;let progress=elapsed%(animationDuration*1e3)/(animationDuration*1e3);// Reset start time when animation completes for seamless looping\nif(elapsed>=animationDuration*1e3){autoAnimationStartTimeRef.current=t;}// Use sine wave for smooth back-and-forth animation\n// This creates seamless transitions at direction changes\nconst smoothProgress=(Math.sin(progress*Math.PI*2-Math.PI/2)+1)/2;// Animate from bottom-left (0, 0) to top-right (width, height) of the screen\nif(typeof window!==\"undefined\"){const screenWidth=window.innerWidth;const screenHeight=window.innerHeight;const dpr=window.devicePixelRatio||1;// Get canvas position relative to screen\nconst rect=canvas.getBoundingClientRect();// Calculate screen coordinates for bottom-left to top-right animation\nconst screenX=smoothProgress*screenWidth;const screenY=screenHeight-smoothProgress*screenHeight;// Convert screen coordinates to canvas coordinates\nconst canvasX=Math.max(0,Math.min(canvas.width,(screenX-rect.left)*dpr));const canvasY=Math.max(0,Math.min(canvas.height,(rect.height-(screenY-rect.top))*dpr));mouseTargetRef.current=[canvasX,canvasY];mouseCurrentRef.current=[canvasX,canvasY];if(uniforms.iMouse){gl.uniform2f(uniforms.iMouse,canvasX,canvasY);}}}else{// Mouse dampening for non-mobile devices\nif(mouseDampening>0){if(!lastTimeRef.current)lastTimeRef.current=t;const dt=(t-lastTimeRef.current)/1e3;lastTimeRef.current=t;const tau=Math.max(1e-4,mouseDampening);let factor=1-Math.exp(-dt/tau);if(factor>1)factor=1;const target=mouseTargetRef.current;const cur=mouseCurrentRef.current;cur[0]+=(target[0]-cur[0])*factor;cur[1]+=(target[1]-cur[1])*factor;if(uniforms.iMouse){gl.uniform2f(uniforms.iMouse,cur[0],cur[1]);}}else{lastTimeRef.current=t;}}gl.clearColor(0,0,0,0);gl.clear(gl.COLOR_BUFFER_BIT);gl.drawArrays(gl.TRIANGLE_STRIP,0,4);}catch(error){console.error(\"Error in animation loop:\",error);}};rafRef.current=requestAnimationFrame(loop);return()=>{try{if(rafRef.current)cancelAnimationFrame(rafRef.current);canvas.removeEventListener(\"pointermove\",onPointerMove);ro.disconnect();if(canvas.parentElement===container){container.removeChild(canvas);}if(program){gl.deleteProgram(program);}if(buffer){gl.deleteBuffer(buffer);}}catch(error){console.error(\"Error in cleanup:\",error);}};},[gradientColors,angle,noise,columnCount,columnMinWidth,mouseDampening,mirrorGradient,spotlightRadius,spotlightSoftness,spotlightOpacity,distortAmount,shineDirection,isStatic]);// Update uniforms when props change\nuseEffect(()=>{if(isStatic||!glRef.current||!uniformsRef.current||!programRef.current)return;const gl=glRef.current;const uniforms=uniformsRef.current;const program=programRef.current;const{arr:colorArr,count:colorCount}=prepStops(gradientColors);// Ensure program is active before setting uniforms\ngl.useProgram(program);if(uniforms.uAngle)gl.uniform1f(uniforms.uAngle,angle*Math.PI/180);if(uniforms.uNoise)gl.uniform1f(uniforms.uNoise,noise);if(uniforms.uSpotlightRadius)gl.uniform1f(uniforms.uSpotlightRadius,spotlightRadius);if(uniforms.uSpotlightSoftness)gl.uniform1f(uniforms.uSpotlightSoftness,spotlightSoftness);if(uniforms.uSpotlightOpacity)gl.uniform1f(uniforms.uSpotlightOpacity,spotlightOpacity);if(uniforms.uMirror)gl.uniform1f(uniforms.uMirror,mirrorGradient?1:0);if(uniforms.uDistort)gl.uniform1f(uniforms.uDistort,distortAmount);if(uniforms.uShineFlip)gl.uniform1f(uniforms.uShineFlip,shineDirection===\"right\"?1:0);if(uniforms.uColorCount)gl.uniform1i(uniforms.uColorCount,colorCount);// Set color uniforms with proper error checking\nif(uniforms.uColor0&&colorArr[0])gl.uniform3fv(uniforms.uColor0,colorArr[0]);if(uniforms.uColor1&&colorArr[1])gl.uniform3fv(uniforms.uColor1,colorArr[1]);if(uniforms.uColor2&&colorArr[2])gl.uniform3fv(uniforms.uColor2,colorArr[2]);if(uniforms.uColor3&&colorArr[3])gl.uniform3fv(uniforms.uColor3,colorArr[3]);if(uniforms.uColor4&&colorArr[4])gl.uniform3fv(uniforms.uColor4,colorArr[4]);if(uniforms.uColor5&&colorArr[5])gl.uniform3fv(uniforms.uColor5,colorArr[5]);if(uniforms.uColor6&&colorArr[6])gl.uniform3fv(uniforms.uColor6,colorArr[6]);if(uniforms.uColor7&&colorArr[7])gl.uniform3fv(uniforms.uColor7,colorArr[7]);},[gradientColors,angle,noise,spotlightRadius,spotlightSoftness,spotlightOpacity,mirrorGradient,distortAmount,shineDirection,isStatic]);if(isStatic){// Static preview with CSS gradient\nconst gradientString=`linear-gradient(${angle}deg, ${gradientColors.join(\", \")})`;return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",background:gradientString,mixBlendMode:\"normal\",zIndex,...props.style}});}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",overflow:\"hidden\",position:\"relative\",mixBlendMode:\"normal\",zIndex,...props.style}});}GradientColumns.displayName=\"Gradient Columns\";addPropertyControls(GradientColumns,{gradientColors:{type:ControlType.Array,title:\"Gradient Colors\",propertyControl:{type:ControlType.Color},defaultValue:[\"#FF9FFC\",\"#5227FF\"],maxCount:8},mirrorGradient:{type:ControlType.Boolean,title:\"Mirror Gradient\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},shineDirection:{type:ControlType.Enum,title:\"Shine Direction\",options:[\"left\",\"right\"],optionTitles:[\"Left\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true},angle:{type:ControlType.Number,title:\"Angle\",defaultValue:0,min:-180,max:180,step:1,unit:\"deg\",displayStepper:true},columnCount:{type:ControlType.Number,title:\"Column Count\",defaultValue:16,min:1,max:100,step:1,displayStepper:true},columnMinWidth:{type:ControlType.Number,title:\"Min Column Width\",defaultValue:60,min:10,max:200,step:1,unit:\"px\",displayStepper:true},noise:{type:ControlType.Number,title:\"Noise\",defaultValue:.3,min:0,max:1,step:.01},spotlightRadius:{type:ControlType.Number,title:\"Spotlight Radius\",defaultValue:.5,min:.1,max:2,step:.01},spotlightSoftness:{type:ControlType.Number,title:\"Spotlight Softness\",defaultValue:1,min:.1,max:5,step:.1},spotlightOpacity:{type:ControlType.Number,title:\"Spotlight Opacity\",defaultValue:1,min:0,max:2,step:.01},distortAmount:{type:ControlType.Number,title:\"Distort Amount\",defaultValue:0,min:0,max:5,step:.1},mouseDampening:{type:ControlType.Number,title:\"Mouse Dampening\",defaultValue:.15,min:0,max:1,step:.01},animationDuration:{type:ControlType.Number,title:\"Animation Duration\",defaultValue:4,min:1,max:10,step:.1,unit:\"s\"},zIndex:{type:ControlType.Number,title:\"Z-Index\",defaultValue:0,min:-100,max:100,step:1,displayStepper:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GradientColumns\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GradientColumns.map"],"mappings":"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"}