{"version":3,"file":"ImageDisplacementTransition.elHseGa4.mjs","names":["n","useRef","useState","startTransition"],"sources":["https:/framerusercontent.com/modules/hrsZk3U2Wr3zv4943pMi/PaUg9VqMTQKdsPWQhlnD/BAnFiIU4v.js","https:/ga.jspm.io/npm:@motionone/utils@10.14.0/dist/index.es.js","https:/ga.jspm.io/npm:@motionone/easing@10.13.1/dist/index.es.js","https:/framerusercontent.com/modules/cKGD16u2MGB7MfqfVXFp/wiztTCbXokZrMicHAmZc/Grain.js","https:/framerusercontent.com/modules/YC5KhfquHIO20Jd2kn4f/d3qyumw0pDA5naEAlWi9/ImageDisplacementTransition.js"],"sourcesContent":["// Generated by Framer (64adcc9)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"CUSTOMV2;Pretendard Regular\",\"CUSTOMV2;Pretendard Bold\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Pretendard Regular\",source:\"custom\",style:\"normal\",uiFamilyName:\"Pretendard\",url:\"https://framerusercontent.com/assets/FyvaBmQLI1A6sAVrXVhA1qjbVqs.woff2\",weight:\"400\"},{cssFamilyName:\"Pretendard Bold\",source:\"custom\",style:\"normal\",uiFamilyName:\"Pretendard\",url:\"https://framerusercontent.com/assets/GHJPBmd4yxGhh5oPHY0HmX7Jl4.woff2\",weight:\"700\"}]}];export const css=[\".framer-0Cxb8 .framer-styles-preset-1ttym1n:not(.rich-text-wrapper), .framer-0Cxb8 .framer-styles-preset-1ttym1n.rich-text-wrapper p { --framer-font-family: \\\"Pretendard Regular\\\", \\\"Pretendard Regular Placeholder\\\", sans-serif; --framer-font-family-bold: \\\"Pretendard Bold\\\", \\\"Pretendard Bold Placeholder\\\", sans-serif; --framer-font-open-type-features: 'blwf' on, 'cv09' on, 'cv03' on, 'cv04' on, 'cv11' on; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 1.13); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: 0px; --framer-line-height: 1.3em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-8bee45cf-366e-4ffe-9dee-d17e953a2156, #33261f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }\",\"@media (max-width: 1199px) and (min-width: 810px) { .framer-0Cxb8 .framer-styles-preset-1ttym1n:not(.rich-text-wrapper), .framer-0Cxb8 .framer-styles-preset-1ttym1n.rich-text-wrapper p { --framer-font-family: \\\"Pretendard Regular\\\", \\\"Pretendard Regular Placeholder\\\", sans-serif; --framer-font-family-bold: \\\"Pretendard Bold\\\", \\\"Pretendard Bold Placeholder\\\", sans-serif; --framer-font-open-type-features: 'blwf' on, 'cv09' on, 'cv03' on, 'cv04' on, 'cv11' on; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 1.06); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: 0px; --framer-line-height: 1.3em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-8bee45cf-366e-4ffe-9dee-d17e953a2156, #33261f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }\",\"@media (max-width: 809px) and (min-width: 0px) { .framer-0Cxb8 .framer-styles-preset-1ttym1n:not(.rich-text-wrapper), .framer-0Cxb8 .framer-styles-preset-1ttym1n.rich-text-wrapper p { --framer-font-family: \\\"Pretendard Regular\\\", \\\"Pretendard Regular Placeholder\\\", sans-serif; --framer-font-family-bold: \\\"Pretendard Bold\\\", \\\"Pretendard Bold Placeholder\\\", sans-serif; --framer-font-open-type-features: 'blwf' on, 'cv09' on, 'cv03' on, 'cv04' on, 'cv11' on; --framer-font-size: calc(var(--framer-root-font-size, 1rem) * 1); --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 400; --framer-font-weight-bold: 700; --framer-letter-spacing: 0px; --framer-line-height: 1.3em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-8bee45cf-366e-4ffe-9dee-d17e953a2156, #33261f); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; } }\"];export const className=\"framer-0Cxb8\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","function addUniqueItem(t,e){-1===t.indexOf(e)&&t.push(e)}function removeItem(t,e){const n=t.indexOf(e);n>-1&&t.splice(n,1)}const clamp=(t,e,n)=>Math.min(Math.max(n,t),e);const t={duration:.3,delay:0,endDelay:0,repeat:0,easing:\"ease\"};const isNumber=t=>\"number\"===typeof t;const isEasingList=t=>Array.isArray(t)&&!isNumber(t[0]);const wrap=(t,e,n)=>{const o=e-t;return((n-t)%o+o)%o+t};function getEasingForSegment(t,e){return isEasingList(t)?t[wrap(0,t.length,e)]:t}const mix=(t,e,n)=>-n*t+n*e+t;const noop=()=>{};const noopReturn=t=>t;const progress=(t,e,n)=>e-t===0?1:(n-t)/(e-t);function fillOffset(t,e){const n=t[t.length-1];for(let o=1;o<=e;o++){const s=progress(0,e,o);t.push(mix(n,1,s))}}function defaultOffset(t){const e=[0];fillOffset(e,t-1);return e}function interpolate(t,e=defaultOffset(t.length),n=noopReturn){const o=t.length;const s=o-e.length;s>0&&fillOffset(e,s);return s=>{let f=0;for(;f<o-2;f++)if(s<e[f+1])break;let r=clamp(0,1,progress(e[f],e[f+1],s));const c=getEasingForSegment(n,f);r=c(r);return mix(t[f],t[f+1],r)}}const isCubicBezier=t=>Array.isArray(t)&&isNumber(t[0]);const isEasingGenerator=t=>\"object\"===typeof t&&Boolean(t.createAnimation);const isFunction=t=>\"function\"===typeof t;const isString=t=>\"string\"===typeof t;const e={ms:t=>1e3*t,s:t=>t/1e3};\n/*\n  Convert velocity into velocity per second\n\n  @param [number]: Unit per frame\n  @param [number]: Frame duration in ms\n*/function velocityPerSecond(t,e){return e?t*(1e3/e):0}export{addUniqueItem,clamp,defaultOffset,t as defaults,fillOffset,getEasingForSegment,interpolate,isCubicBezier,isEasingGenerator,isEasingList,isFunction,isNumber,isString,mix,noop,noopReturn,progress,removeItem,e as time,velocityPerSecond,wrap};\n\n//# sourceMappingURL=index.es.js.map","import{noopReturn as t,clamp as n}from\"@motionone/utils\";const calcBezier=(t,n,e)=>(((1-3*e+3*n)*t+(3*e-6*n))*t+3*n)*t;const e=1e-7;const i=12;function binarySubdivide(t,n,o,r,c){let u;let a;let s=0;do{a=n+(o-n)/2;u=calcBezier(a,r,c)-t;u>0?o=a:n=a}while(Math.abs(u)>e&&++s<i);return a}function cubicBezier(n,e,i,o){if(n===e&&i===o)return t;const getTForX=t=>binarySubdivide(t,0,1,n,i);return t=>0===t||1===t?t:calcBezier(getTForX(t),e,o)}const steps=(t,e=\"end\")=>i=>{i=\"end\"===e?Math.min(i,.999):Math.max(i,.001);const o=i*t;const r=\"end\"===e?Math.floor(o):Math.ceil(o);return n(0,1,r/t)};export{cubicBezier,steps};\n\n//# sourceMappingURL=index.es.js.map","import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion}from\"framer-motion\";import{steps}from\"@motionone/easing\";/**\n * @framerIntrinsicWidth 100\n * @framerIntrinsicHeight 100\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */ export default function Grain(props){const{opacity,style}=props;const keyframesX=[\"0%\",\"-5%\",\"-15%\",\"7%\",\"-5%\",\"-15%\",\"15%\",\"0%\",\"3%\",\"-10%\",];const keyframesY=[\"0%\",\"-10%\",\"5%\",\"-25%\",\"25%\",\"10%\",\"0%\",\"15%\",\"35%\",\"10%\",];const isCanvas=RenderTarget.current()===RenderTarget.canvas;return /*#__PURE__*/ _jsx(\"div\",{style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\"},children:/*#__PURE__*/ _jsx(motion.div,{style:{...containerStyle,opacity:opacity,inset:isCanvas?0:\"-200%\",width:isCanvas?\"100%\":\"400%\",height:isCanvas?\"100%\":\"400%\",position:\"absolute\"},animate:!isCanvas&&{x:keyframesX,y:keyframesY},transition:{ease:steps(10,\"start\"),repeat:Infinity,duration:8}})});};Grain.defaultProps={opacity:.5};addPropertyControls(Grain,{opacity:{title:\"Opacity\",type:ControlType.Number,step:.1,displayStepper:true,max:1,min:0}});const containerStyle={backgroundSize:\"256px 256px\",backgroundRepeat:\"repeat\",background:\"url('https://framerusercontent.com/images/rR6HYXBrMmX4cRpXfXUOvpvpB0.png')\"};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Grain\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicHeight\":\"100\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"100\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Grain.map","// Displacement map image transition between two images using WebGL <canvas>, with hover, easing, and duration controls\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect,useState,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const vertexShaderSource=`\n    attribute vec2 position;\n    attribute vec2 uv;\n    varying vec2 vUv;\n    uniform vec2 uResolution;\n    uniform vec2 uImageResolution;\n    void main() {\n        // Calculate aspect ratios\n        float canvasAspect = uResolution.x / uResolution.y;\n        float imageAspect = uImageResolution.x / uImageResolution.y;\n        vec2 scale = vec2(1.0);\n        if (canvasAspect > imageAspect) {\n            scale.y = imageAspect / canvasAspect;\n        } else {\n            scale.x = canvasAspect / imageAspect;\n        }\n        vUv = uv * scale + 0.5 * (1.0 - scale);\n        gl_Position = vec4(position, 0.0, 1.0);\n    }\n`;const fragmentShaderSource=`\n    precision mediump float;\n    varying vec2 vUv;\n    uniform sampler2D tex;\n    uniform sampler2D tex2;\n    uniform sampler2D disp;\n    uniform float dispFactor;\n    uniform float effectFactor;\n    void main() {\n        vec2 uv = vUv;\n        vec4 disp = texture2D(disp, uv);\n        vec2 distortedPosition = vec2(uv.x + dispFactor * (disp.r*effectFactor), uv.y);\n        vec2 distortedPosition2 = vec2(uv.x - (1.0 - dispFactor) * (disp.r*effectFactor), uv.y);\n        vec4 _texture = texture2D(tex, distortedPosition);\n        vec4 _texture2 = texture2D(tex2, distortedPosition2);\n        vec4 finalTexture = mix(_texture, _texture2, dispFactor);\n        gl_FragColor = finalTexture;\n    }\n`;function loadImage(src){return new Promise((resolve,reject)=>{const img=new window.Image;img.crossOrigin=\"anonymous\";img.onload=()=>resolve(img);img.onerror=reject;img.src=src;});}function createShader(gl,type,source){const shader=gl.createShader(type);gl.shaderSource(shader,source);gl.compileShader(shader);if(!gl.getShaderParameter(shader,gl.COMPILE_STATUS)){throw new Error(gl.getShaderInfoLog(shader));}return shader;}function createProgram(gl,vsSource,fsSource){const vs=createShader(gl,gl.VERTEX_SHADER,vsSource);const fs=createShader(gl,gl.FRAGMENT_SHADER,fsSource);const program=gl.createProgram();gl.attachShader(program,vs);gl.attachShader(program,fs);gl.linkProgram(program);if(!gl.getProgramParameter(program,gl.LINK_STATUS)){throw new Error(gl.getProgramInfoLog(program));}return program;}function setTriangle(gl){gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-1,-1,3,-1,-1,3]),gl.STATIC_DRAW);}function setTriangleUV(gl){gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([0,0,2,0,0,2]),gl.STATIC_DRAW);}function createTexture(gl,img){const tex=gl.createTexture();gl.bindTexture(gl.TEXTURE_2D,tex);gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL,true)// Flip Y so images are not upside down\n;gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_S,gl.CLAMP_TO_EDGE);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_WRAP_T,gl.CLAMP_TO_EDGE);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MIN_FILTER,gl.LINEAR);gl.texParameteri(gl.TEXTURE_2D,gl.TEXTURE_MAG_FILTER,gl.LINEAR);gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,gl.RGBA,gl.UNSIGNED_BYTE,img);return tex;}function easeFn(easing){return({linear:t=>t,easeIn:t=>t*t,easeOut:t=>t*(2-t),easeInOut:t=>t<.5?2*t*t:-1+(4-2*t)*t,expoOut:t=>t===1?1:1-Math.pow(2,-10*t)})[easing]||(t=>t);}function ImageDisplacementTransitionCanvas({image1,image2,dispMap,duration,easing,effectFactor,style}){const canvasRef=useRef(null);const[hovered,setHovered]=useState(false);const[loaded,setLoaded]=useState(false);const[size,setSize]=useState({width:400,height:300});const dispFactorRef=useRef(0);const animatingRef=useRef(false);const animationFrame=useRef(undefined);const glRef=useRef(null);const programRef=useRef(null);// Explicitly type the texture and uniform refs\nconst texsRef=useRef({tex1:null,tex2:null,dispTex:null,img1Size:[1,1]});const uniformLocs=useRef({tex:null,tex2:null,disp:null,dispFactor:null,effectFactor:null,uResolution:null,uImageResolution:null});useEffect(()=>{function handleResize(){if(!canvasRef.current)return;setSize({width:canvasRef.current.offsetWidth,height:canvasRef.current.offsetHeight});}handleResize();window.addEventListener(\"resize\",handleResize);return()=>window.removeEventListener(\"resize\",handleResize);},[]);useEffect(()=>{let cancelled=false;async function setup(){if(!canvasRef.current)return;const gl=canvasRef.current.getContext(\"webgl\",{preserveDrawingBuffer:true});if(!gl)return;glRef.current=gl;// Compile shaders\nconst program=createProgram(gl,vertexShaderSource,fragmentShaderSource);programRef.current=program;gl.useProgram(program);// Attributes\nconst posLoc=gl.getAttribLocation(program,\"position\");const uvLoc=gl.getAttribLocation(program,\"uv\");// Buffers\nconst posBuf=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,posBuf);setTriangle(gl);gl.enableVertexAttribArray(posLoc);gl.vertexAttribPointer(posLoc,2,gl.FLOAT,false,0,0);// UVs\nconst uvBuf=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,uvBuf);setTriangleUV(gl);gl.enableVertexAttribArray(uvLoc);gl.vertexAttribPointer(uvLoc,2,gl.FLOAT,false,0,0);// Load images\nconst[img1,img2,disp]=await Promise.all([loadImage(image1.src),loadImage(image2.src),loadImage(dispMap.src)]);if(cancelled)return;texsRef.current.tex1=createTexture(gl,img1);texsRef.current.tex2=createTexture(gl,img2);texsRef.current.dispTex=createTexture(gl,disp);// Uniforms\nuniformLocs.current.tex=gl.getUniformLocation(program,\"tex\");uniformLocs.current.tex2=gl.getUniformLocation(program,\"tex2\");uniformLocs.current.disp=gl.getUniformLocation(program,\"disp\");uniformLocs.current.dispFactor=gl.getUniformLocation(program,\"dispFactor\");uniformLocs.current.effectFactor=gl.getUniformLocation(program,\"effectFactor\");// New: set up uniforms for resolution and image resolution\nuniformLocs.current.uResolution=gl.getUniformLocation(program,\"uResolution\");uniformLocs.current.uImageResolution=gl.getUniformLocation(program,\"uImageResolution\");// Save image sizes for later\nconst img1Width=img1&&typeof img1===\"object\"&&\"width\"in img1?img1.width:1;const img1Height=img1&&typeof img1===\"object\"&&\"height\"in img1?img1.height:1;texsRef.current.img1Size=[img1Width,img1Height];setLoaded(true);}setup();return()=>{cancelled=true;};},[image1,image2,dispMap]);// Draw function\nfunction draw(dispFactor){const gl=glRef.current;const program=programRef.current;if(!gl||!program)return;gl.viewport(0,0,gl.drawingBufferWidth,gl.drawingBufferHeight);gl.clear(gl.COLOR_BUFFER_BIT);// Set uniforms\ngl.useProgram(program);gl.activeTexture(gl.TEXTURE0);gl.bindTexture(gl.TEXTURE_2D,texsRef.current.tex1);gl.uniform1i(uniformLocs.current.tex,0);gl.activeTexture(gl.TEXTURE1);gl.bindTexture(gl.TEXTURE_2D,texsRef.current.tex2);gl.uniform1i(uniformLocs.current.tex2,1);gl.activeTexture(gl.TEXTURE2);gl.bindTexture(gl.TEXTURE_2D,texsRef.current.dispTex);gl.uniform1i(uniformLocs.current.disp,2);gl.uniform1f(uniformLocs.current.dispFactor,dispFactor);gl.uniform1f(uniformLocs.current.effectFactor,effectFactor);// Set resolution uniforms for cover effect\nif(uniformLocs.current.uResolution&&uniformLocs.current.uImageResolution&&texsRef.current.img1Size){gl.uniform2f(uniformLocs.current.uResolution,gl.drawingBufferWidth,gl.drawingBufferHeight);gl.uniform2f(uniformLocs.current.uImageResolution,texsRef.current.img1Size[0],texsRef.current.img1Size[1]);}gl.drawArrays(gl.TRIANGLES,0,3);}// Animate dispFactor\nuseEffect(()=>{if(!loaded)return;let from=dispFactorRef.current;let to=hovered?1:0;if(from===to)return;let start;const ease=easeFn(easing);animatingRef.current=true;function animate(ts){if(!start)start=ts;let elapsed=(ts-start)/1e3;let t=Math.min(elapsed/duration,1);let eased=ease(t);let value=from+(to-from)*eased;dispFactorRef.current=value;draw(value);if(t<1&&animatingRef.current){animationFrame.current=window.requestAnimationFrame(animate);}else{dispFactorRef.current=to;draw(to);animatingRef.current=false;}}animationFrame.current=window.requestAnimationFrame(animate);return()=>{animatingRef.current=false;if(animationFrame.current!==undefined)window.cancelAnimationFrame(animationFrame.current);};},[hovered,loaded,duration,easing,effectFactor]);// Redraw on resize or effectFactor\nuseEffect(()=>{if(loaded)draw(dispFactorRef.current);},[size.width,size.height,loaded,effectFactor]);return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",...style,position:\"relative\",overflow:\"hidden\",cursor:\"pointer\"},onMouseEnter:()=>startTransition(()=>setHovered(true)),onMouseLeave:()=>startTransition(()=>setHovered(false)),tabIndex:0,\"aria-label\":\"Displacement image transition\",children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,width:size.width,height:size.height,style:{width:\"100%\",height:\"100%\",display:\"block\"}})});}/**\n * Displacement Image Transition (WebGL)\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function ImageDisplacementTransition(props){// Default images\nconst{image1={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Image 1\"},image2={src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Image 2\"},dispMap={src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Displacement Map\"},duration=1,easing=\"expoOut\",effectFactor=.75,style}=props;return /*#__PURE__*/_jsx(ImageDisplacementTransitionCanvas,{image1:image1,image2:image2,dispMap:dispMap,duration:duration,easing:easing,effectFactor:effectFactor,style:style});}addPropertyControls(ImageDisplacementTransition,{image1:{type:ControlType.ResponsiveImage,title:\"Image 1\"},image2:{type:ControlType.ResponsiveImage,title:\"Image 2\"},dispMap:{type:ControlType.ResponsiveImage,title:\"Displacement Map\"},duration:{type:ControlType.Number,title:\"Duration (s)\",defaultValue:1,min:.1,max:5,step:.05,displayStepper:true},easing:{type:ControlType.Enum,title:\"Easing\",options:[\"expoOut\",\"linear\",\"easeIn\",\"easeOut\",\"easeInOut\"],optionTitles:[\"Expo Out\",\"Linear\",\"Ease In\",\"Ease Out\",\"Ease InOut\"],defaultValue:\"expoOut\",displaySegmentedControl:false},effectFactor:{type:ControlType.Number,title:\"Effect Strength\",defaultValue:.75,min:0,max:2,step:.01,displayStepper:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ImageDisplacementTransition\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ImageDisplacementTransition.map"],"mappings":"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"}