{"version":3,"file":"V2_Aberration.k8O2Ls94.mjs","names":[],"sources":["https:/framerusercontent.com/modules/sXnDgKybAePMvCAe9mWd/W9PmH2A49qNaYcr6Qq7q/V2_Aberration.js"],"sourcesContent":["import{defineShader,ControlType}from\"framer\";export default defineShader({title:\"Chromatic Aberration\",fragment:`\nvec4 spectrum(float p) {\n    return 2.6 * vec4(\n        smoothstep(0.54, 0.24, p),\n        smoothstep(0.38, 0.0, abs(p - 0.5)),\n        smoothstep(0.47, 0.82, p),\n        1.0\n    );\n}\n\nvoid main() {\n    \n    float realTime = u_time - 250.;\n    float cssResX = u_resolution.x / u_pixelRatio;\n    float cssResY = u_resolution.y / u_pixelRatio;\n    float aspect = cssResX / cssResY;\n\n    ivec2 texSizeI = textureSize(u_texture, 0);\n    vec2 texSize = vec2(texSizeI);\n    float textureAspect = texSize.x / texSize.y;\n\n    vec2 coverScale = vec2(1.0);\n    vec2 coverOffset = vec2(0.0);\n    if (aspect > textureAspect) {\n        float s = aspect / textureAspect;\n        coverScale = vec2(1.0, 1.0 / s);\n        coverOffset = vec2(0.0, (1.0 - coverScale.y) * 0.5);\n    } else {\n        float s = textureAspect / aspect;\n        coverScale = vec2(1.0 / s, 1.0);\n        coverOffset = vec2((1.0 - coverScale.x) * 0.5, 0.0);\n    }\n\n    vec2 centered = v_uv * 2.0 - 1.0;\n    float maxDim = max(aspect, 1.0);\n    vec2 p_aspect = centered * vec2(aspect, 1.0) / maxDim;\n\n    // Animated swirl\n    float swirlVal = u_swirl * cos(realTime * u_swirlSpeed);\n\n    // Direction based on pattern mode\n    vec2 dir;\n    float mode = u_mode;\n    if (mode < 0.5) {\n        dir = p_aspect;\n    } else if (mode < 1.5) {\n        dir = vec2(p_aspect.x, 0.0);\n    } else if (mode < 2.5) {\n        dir = vec2(0.0, p_aspect.y);\n    } else {\n        float dist = length(p_aspect);\n        float angle = atan(p_aspect.y, p_aspect.x) + dist * swirlVal;\n        dir = vec2(cos(angle), sin(angle)) * dist;\n    }\n    \n    float r = u_radius + u_pulse * cos(realTime * u_speed);\n    float maxRes = 1600.;\n\n\n    const float k = 0.03;\n    vec4 col = vec4(0.0);\n        for (float i = 0.0; i < 1.0; i += k) {\n            vec2 sUV = v_uv + dir * i * r / maxRes;\n            sUV = sUV * coverScale + coverOffset;\n            sUV.y = 1.0 - sUV.y;\n            col += texture(u_texture, sUV) * spectrum(i);\n        }\n\n    fragColor = vec4(col.rgb * k, 1.0);\n}\n`,propertyControls:{texture:{type:ControlType.ResponsiveImage,title:\"Image\",defaultValue:\"data:framer/asset-reference,8YqSiXvya6m9Z6ZOIzVXDo6rVaY.png?originalFilename=WFD+UP%402x.png&width=1600&height=900\"},mode:{type:ControlType.Enum,title:\"Mode\",defaultValue:3,options:[0,1,2,3],optionTitles:[\"Radial\",\"Horizontal\",\"Vertical\",\"Swirl\"]},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:60,min:0,max:120,step:.5},pulse:{type:ControlType.Number,title:\"Pulse\",defaultValue:30,min:0,max:60,step:.5},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:0,min:0,max:5,step:.1},swirl:{type:ControlType.Number,title:\"Swirl\",defaultValue:3,min:0,max:10,step:.1,hidden:props=>props.mode!==3},swirlSpeed:{type:ControlType.Number,title:\"Swirl Speed\",defaultValue:0,min:0,max:2,step:.01,hidden:props=>props.mode!==3}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"shader\",\"name\":null,\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./V2_Aberration.map"],"mappings":"gIAA6C,GAAe,EAAa,CAAC,MAAM,uBAAuB,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsE9G,iBAAiB,CAAC,QAAQ,CAAC,KAAK,EAAY,gBAAgB,MAAM,QAAQ,aAAa,qHAAqH,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,aAAa,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,aAAa,WAAW,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,GAAG,OAAO,GAAO,EAAM,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,EAAY,OAAO,MAAM,cAAc,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,OAAO,GAAO,EAAM,OAAO,EAAE,CAAC,CAAC,CAAC"}