{"version":3,"file":"shared-lib.Idv1XSLs.mjs","names":["React.useRef","metadata","metadata","siteMetadata","metadataVersion","__FramerMetadata__","siteMetadata"],"sources":["https:/framerusercontent.com/modules/Tc5AGfHaZRiNipFqq7Tk/QSMYAFa79Mj8yVpMbbaj/Scanner.js","https:/framerusercontent.com/modules/hGWQ6DoocusTRlKjXbzF/itczqvbEqpED3jEVlLGI/siteMetadata.js","https:/framerusercontent.com/modules/8hEcyhoZhebyoNBUpVcV/eAFN6PSf4ZSMtZmZmbTV/augiA20Il.js","https:/framerusercontent.com/modules/ZomnkRqvOgrmvVWQ1RNL/58nYalioFmO9pU8e31dL/CuXs2SXYI.js"],"sourcesContent":["/**\n * Adapted from:\n * \"WebGPU Scanning Effect with Depth Maps\"\n * by d3adrabbit\n *\n * Source:\n * https://github.com/d3adrabbit/ScanningEffectWithDepthMap\n *\n * Original project licensed under the MIT License.\n *\n * This Framer implementation has been substantially modified and rewritten\n * for use as a Framer Code Component.\n *\n * MIT License\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n */import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";function colorToRgb(color){if(!color)return{r:1,g:1,b:1};if(color.startsWith(\"#\")){const clean=color.replace(\"#\",\"\");const full=clean.length===3?clean.split(\"\").map(c=>c+c).join(\"\"):clean;const bigint=parseInt(full,16);if(Number.isNaN(bigint)){return{r:1,g:1,b:1};}return{r:(bigint>>16&255)/255,g:(bigint>>8&255)/255,b:(bigint&255)/255};}const match=color.match(/rgba?\\(([^)]+)\\)/);if(match){const parts=match[1].split(\",\").map(v=>parseFloat(v.trim()));return{r:(parts[0]||255)/255,g:(parts[1]||255)/255,b:(parts[2]||255)/255};}return{r:1,g:1,b:1};}export default function Effect03DepthScan(props){const isStaticRenderer=useIsStaticRenderer();const canvasRef=React.useRef(null);const wrapRef=React.useRef(null);React.useEffect(()=>{// Framer Canvas/export: never initialize WebGL, listeners, or animation loops.\nif(isStaticRenderer)return;const canvas=canvasRef.current;const wrapper=wrapRef.current;if(!canvas||!wrapper)return;const gl=canvas.getContext(\"webgl\",{alpha:true,antialias:true,premultipliedAlpha:true})||canvas.getContext(\"experimental-webgl\");if(!gl)return;let disposed=false;let raf=0;let isVisible=true;let texturesReady=false;let renderFrame=null;const start=performance.now();const vertexShaderSource=`\n            attribute vec2 aPosition;\n            varying vec2 vUv;\n\n            void main() {\n                vUv = aPosition * 0.5 + 0.5;\n                gl_Position = vec4(aPosition, 0.0, 1.0);\n            }\n        `;const fragmentShaderSource=`\n            precision mediump float;\n\n            varying vec2 vUv;\n\n            uniform sampler2D uImage;\n            uniform sampler2D uDepth;\n            uniform sampler2D uEdge;\n\n            uniform vec2 uCanvasRes;\n            uniform vec2 uImageRes;\n            uniform vec2 uPointer;\n\n            uniform float uTime;\n            uniform float uPointerStrength;\n            uniform float uScanDuration;\n            uniform float uScanMax;\n            uniform float uCrossScale;\n            uniform float uCrossSizeX;\n            uniform float uCrossSizeY;\n            uniform float uCrossSoftness;\n            uniform float uMaskBoost;\n            uniform float uImageDim;\n            uniform float uOpacity;\n            uniform float uInvertDepth;\n            uniform float uInvertEdge;\n            uniform float uUseEdgeMap;\n            uniform float uImageFit;\n\n            uniform vec3 uScanColor;\n\n            vec2 coverUv(vec2 uv, vec2 canvas, vec2 image) {\n                float canvasRatio = canvas.x / canvas.y;\n                float imageRatio = image.x / image.y;\n\n                vec2 outUv = uv;\n\n                if (canvasRatio > imageRatio) {\n                    float scale = imageRatio / canvasRatio;\n                    outUv.y = (uv.y - 0.5) * scale + 0.5;\n                } else {\n                    float scale = canvasRatio / imageRatio;\n                    outUv.x = (uv.x - 0.5) * scale + 0.5;\n                }\n\n                return outUv;\n            }\n\n            vec2 containUv(vec2 uv, vec2 canvas, vec2 image) {\n                float canvasRatio = canvas.x / canvas.y;\n                float imageRatio = image.x / image.y;\n\n                vec2 outUv = uv;\n\n                if (canvasRatio > imageRatio) {\n                    float scale = imageRatio / canvasRatio;\n                    outUv.x = (uv.x - 0.5) / scale + 0.5;\n                } else {\n                    float scale = canvasRatio / imageRatio;\n                    outUv.y = (uv.y - 0.5) / scale + 0.5;\n                }\n\n                return outUv;\n            }\n\n            float insideUv(vec2 uv) {\n                return\n                    step(0.0, uv.x) *\n                    step(0.0, uv.y) *\n                    step(uv.x, 1.0) *\n                    step(uv.y, 1.0);\n            }\n\n            vec2 mod2(vec2 x, float y) {\n                return x - y * floor(x / y);\n            }\n\n            float sdCross(vec2 p, vec2 b, float r) {\n                p = abs(p);\n                p = (p.y > p.x) ? p.yx : p.xy;\n                vec2 q = p - b;\n                float k = max(q.y, q.x);\n                vec2 w = (k > 0.0) ? q : vec2(b.y - p.x, -k);\n                float d = length(max(w, 0.0));\n                return ((k > 0.0) ? d : -d) + r;\n            }\n\n            vec3 blendScreen(vec3 base, vec3 blend) {\n                return 1.0 - (1.0 - base) * (1.0 - blend);\n            }\n\n            void main() {\n                vec2 uv = uImageFit < 0.5\n                    ? coverUv(vUv, uCanvasRes, uImageRes)\n                    : containUv(vUv, uCanvasRes, uImageRes);\n\n                float imageInside = insideUv(uv);\n\n                if (uImageFit > 0.5 && imageInside < 0.5) {\n                    discard;\n                }\n\n                vec4 depthTex = texture2D(uDepth, uv);\n                float depthSample = depthTex.r;\n\n                if (uInvertDepth > 0.5) {\n                    depthSample = 1.0 - depthSample;\n                }\n\n                vec2 displacedUv = uv + depthSample * uPointer * uPointerStrength;\n\n                float displacedInside = insideUv(displacedUv);\n\n                if (uImageFit > 0.5 && displacedInside < 0.5) {\n                    discard;\n                }\n\n                vec3 imageColor = texture2D(uImage, displacedUv).rgb * uImageDim;\n\n                float depth = 1.0 - depthSample;\n\n                float progress = mod(uTime / max(uScanDuration, 0.001), 1.0) * uScanMax;\n\n                float flow = 1.0 - smoothstep(0.0, 0.02, abs(depth - progress));\n\n                float maskValue;\n\n                if (uUseEdgeMap > 0.5) {\n                    // Edge map mode: use edge texture as the scan mask shape\n                    vec3 edgeTex = texture2D(uEdge, uv).rgb;\n                    float edgeValue = (edgeTex.r + edgeTex.g + edgeTex.b) / 3.0;\n\n                    if (uInvertEdge < 0.5) {\n                        edgeValue = 1.0 - edgeValue;\n                    }\n\n                    maskValue = edgeValue;\n                } else {\n                    // Cross pattern mode (original behavior)\n                    float aspect = uImageRes.x / uImageRes.y;\n                    vec2 tUv = vec2(uv.x * aspect, uv.y);\n                    vec2 tiledUv = mod2(tUv * uCrossScale, 2.0) - 1.0;\n\n                    float dist = sdCross(tiledUv, vec2(uCrossSizeX, uCrossSizeY), 0.0);\n                    float cross = smoothstep(0.0, uCrossSoftness, dist);\n\n                    maskValue = 1.0 - cross;\n                }\n\n                vec3 mask = vec3(maskValue) * flow * uScanColor * uMaskBoost;\n\n                vec3 finalColor = blendScreen(imageColor, mask);\n\n                gl_FragColor = vec4(finalColor, imageInside * displacedInside * uOpacity);\n            }\n        `;function compileShader(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(gl.getShaderInfoLog(shader));gl.deleteShader(shader);return null;}return shader;}const vertexShader=compileShader(gl.VERTEX_SHADER,vertexShaderSource);const fragmentShader=compileShader(gl.FRAGMENT_SHADER,fragmentShaderSource);if(!vertexShader||!fragmentShader)return;const program=gl.createProgram();if(!program)return;gl.attachShader(program,vertexShader);gl.attachShader(program,fragmentShader);gl.linkProgram(program);if(!gl.getProgramParameter(program,gl.LINK_STATUS)){console.error(gl.getProgramInfoLog(program));return;}gl.useProgram(program);const positionBuffer=gl.createBuffer();gl.bindBuffer(gl.ARRAY_BUFFER,positionBuffer);gl.bufferData(gl.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,-1,1,1,-1,1,1]),gl.STATIC_DRAW);const aPosition=gl.getAttribLocation(program,\"aPosition\");gl.enableVertexAttribArray(aPosition);gl.vertexAttribPointer(aPosition,2,gl.FLOAT,false,0,0);const uniforms={uImage:gl.getUniformLocation(program,\"uImage\"),uDepth:gl.getUniformLocation(program,\"uDepth\"),uEdge:gl.getUniformLocation(program,\"uEdge\"),uCanvasRes:gl.getUniformLocation(program,\"uCanvasRes\"),uImageRes:gl.getUniformLocation(program,\"uImageRes\"),uPointer:gl.getUniformLocation(program,\"uPointer\"),uTime:gl.getUniformLocation(program,\"uTime\"),uPointerStrength:gl.getUniformLocation(program,\"uPointerStrength\"),uScanDuration:gl.getUniformLocation(program,\"uScanDuration\"),uScanMax:gl.getUniformLocation(program,\"uScanMax\"),uCrossScale:gl.getUniformLocation(program,\"uCrossScale\"),uCrossSizeX:gl.getUniformLocation(program,\"uCrossSizeX\"),uCrossSizeY:gl.getUniformLocation(program,\"uCrossSizeY\"),uCrossSoftness:gl.getUniformLocation(program,\"uCrossSoftness\"),uMaskBoost:gl.getUniformLocation(program,\"uMaskBoost\"),uImageDim:gl.getUniformLocation(program,\"uImageDim\"),uOpacity:gl.getUniformLocation(program,\"uOpacity\"),uInvertDepth:gl.getUniformLocation(program,\"uInvertDepth\"),uInvertEdge:gl.getUniformLocation(program,\"uInvertEdge\"),uUseEdgeMap:gl.getUniformLocation(program,\"uUseEdgeMap\"),uImageFit:gl.getUniformLocation(program,\"uImageFit\"),uScanColor:gl.getUniformLocation(program,\"uScanColor\")};let imageTexture=null;let depthTexture=null;let edgeTexture=null;const imageSize={w:1226,h:650};const pointer={x:0,y:0};function resize(){const rect=wrapper.getBoundingClientRect();const dpr=Math.min(window.devicePixelRatio||1,2);const width=Math.max(1,Math.round(rect.width*dpr));const height=Math.max(1,Math.round(rect.height*dpr));if(canvas.width!==width||canvas.height!==height){canvas.width=width;canvas.height=height;canvas.style.width=`${rect.width}px`;canvas.style.height=`${rect.height}px`;gl.viewport(0,0,width,height);}}function createTexture(unit,image){const texture=gl.createTexture();gl.activeTexture(gl.TEXTURE0+unit);gl.bindTexture(gl.TEXTURE_2D,texture);gl.pixelStorei(gl.UNPACK_FLIP_Y_WEBGL,1);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,image);return texture;}// Create a 1x1 blank white texture as fallback for edge map\nfunction createFallbackTexture(unit){const texture=gl.createTexture();gl.activeTexture(gl.TEXTURE0+unit);gl.bindTexture(gl.TEXTURE_2D,texture);gl.texImage2D(gl.TEXTURE_2D,0,gl.RGBA,1,1,0,gl.RGBA,gl.UNSIGNED_BYTE,new Uint8Array([255,255,255,255]));return texture;}function loadImage(src){return new Promise((resolve,reject)=>{const img=new Image;img.crossOrigin=\"anonymous\";img.onload=()=>resolve(img);img.onerror=reject;img.src=src;});}function onPointerMove(e){const rect=wrapper.getBoundingClientRect();const x=(e.clientX-rect.left)/Math.max(rect.width,1);const y=(e.clientY-rect.top)/Math.max(rect.height,1);pointer.x+=((x-.5)*2-pointer.x)*.18;pointer.y+=((1-y-.5)*2-pointer.y)*.18;}function onPointerLeave(){pointer.x=0;pointer.y=0;}wrapper.addEventListener(\"pointermove\",onPointerMove);wrapper.addEventListener(\"pointerleave\",onPointerLeave);window.addEventListener(\"resize\",resize);// Pause the continuous WebGL loop while the component is off-screen.\n// This avoids unnecessary background CPU/GPU work on published pages.\nconst visibilityObserver=typeof IntersectionObserver!==\"undefined\"?new IntersectionObserver(([entry])=>{isVisible=entry?.isIntersecting??true;if(!isVisible){if(raf){cancelAnimationFrame(raf);raf=0;}return;}if(texturesReady&&renderFrame&&!raf){raf=requestAnimationFrame(renderFrame);}},{threshold:0}):null;visibilityObserver?.observe(wrapper);// Load image and depth map always; edge map is optional\nconst imagesToLoad=[loadImage(props.image),loadImage(props.depthMap)];const hasEdgeMap=props.useEdgeMap&&props.edgeMap&&props.edgeMap.length>0;if(hasEdgeMap){imagesToLoad.push(loadImage(props.edgeMap));}Promise.all(imagesToLoad).then(images=>{if(disposed)return;const[img,depth,edge]=images;imageSize.w=img.naturalWidth||img.width||1226;imageSize.h=img.naturalHeight||img.height||650;imageTexture=createTexture(0,img);depthTexture=createTexture(1,depth);// Use edge map if provided, otherwise use fallback blank texture\nif(edge){edgeTexture=createTexture(2,edge);}else{edgeTexture=createFallbackTexture(2);}gl.useProgram(program);gl.uniform1i(uniforms.uImage,0);gl.uniform1i(uniforms.uDepth,1);gl.uniform1i(uniforms.uEdge,2);resize();renderFrame=now=>{raf=0;if(disposed||!isVisible)return;resize();const t=(now-start)*.001;const scanRgb=colorToRgb(props.scanColor);pointer.x+=(0-pointer.x)*.02;pointer.y+=(0-pointer.y)*.02;gl.clearColor(0,0,0,0);gl.clear(gl.COLOR_BUFFER_BIT);gl.useProgram(program);gl.uniform2f(uniforms.uCanvasRes,canvas.width,canvas.height);gl.uniform2f(uniforms.uImageRes,imageSize.w,imageSize.h);gl.uniform2f(uniforms.uPointer,pointer.x,pointer.y);gl.uniform1f(uniforms.uTime,t);gl.uniform1f(uniforms.uPointerStrength,props.pointerStrength);gl.uniform1f(uniforms.uScanDuration,props.scanDuration);gl.uniform1f(uniforms.uScanMax,props.scanMax);gl.uniform1f(uniforms.uCrossScale,props.crossScale);gl.uniform1f(uniforms.uCrossSizeX,props.crossSizeX);gl.uniform1f(uniforms.uCrossSizeY,props.crossSizeY);gl.uniform1f(uniforms.uCrossSoftness,props.crossSoftness);gl.uniform1f(uniforms.uMaskBoost,props.maskBoost);gl.uniform1f(uniforms.uImageDim,props.imageDim);gl.uniform1f(uniforms.uOpacity,props.opacity);gl.uniform1f(uniforms.uInvertDepth,props.invertDepth?1:0);gl.uniform1f(uniforms.uInvertEdge,props.invertEdge?1:0);gl.uniform1f(uniforms.uUseEdgeMap,props.useEdgeMap&&hasEdgeMap?1:0);gl.uniform1f(uniforms.uImageFit,props.imageFit===\"contain\"?1:0);gl.uniform3f(uniforms.uScanColor,scanRgb.r,scanRgb.g,scanRgb.b);gl.drawArrays(gl.TRIANGLES,0,6);if(!disposed&&isVisible&&renderFrame){raf=requestAnimationFrame(renderFrame);}};texturesReady=true;if(isVisible&&renderFrame&&!raf){raf=requestAnimationFrame(renderFrame);}}).catch(err=>{console.error(\"Effect03DepthScan failed to load image/depth map:\",err);});return()=>{disposed=true;cancelAnimationFrame(raf);wrapper.removeEventListener(\"pointermove\",onPointerMove);wrapper.removeEventListener(\"pointerleave\",onPointerLeave);window.removeEventListener(\"resize\",resize);visibilityObserver?.disconnect();if(imageTexture)gl.deleteTexture(imageTexture);if(depthTexture)gl.deleteTexture(depthTexture);if(edgeTexture)gl.deleteTexture(edgeTexture);if(positionBuffer)gl.deleteBuffer(positionBuffer);if(program)gl.deleteProgram(program);if(vertexShader)gl.deleteShader(vertexShader);if(fragmentShader)gl.deleteShader(fragmentShader);};},[isStaticRenderer,props.image,props.depthMap,props.edgeMap,props.imageFit,props.background,props.scanColor,props.pointerStrength,props.scanDuration,props.scanMax,props.crossScale,props.crossSizeX,props.crossSizeY,props.crossSoftness,props.maskBoost,props.imageDim,props.borderRadius,props.opacity,props.invertDepth,props.invertEdge,props.useEdgeMap]);if(isStaticRenderer){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",borderRadius:props.borderRadius,background:props.background},children:props.image?/*#__PURE__*/_jsx(\"img\",{src:props.image,alt:\"\",\"aria-hidden\":\"true\",style:{width:\"100%\",height:\"100%\",display:\"block\",objectFit:props.imageFit,borderRadius:props.borderRadius,opacity:props.opacity,pointerEvents:\"none\"}}):null});}return /*#__PURE__*/_jsx(\"div\",{ref:wrapRef,style:{width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\",borderRadius:props.borderRadius,background:props.background},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",display:\"block\",borderRadius:props.borderRadius}})});}Effect03DepthScan.defaultProps={image:\"\",depthMap:\"\",edgeMap:\"\",imageFit:\"cover\",background:\"#000000\",scanColor:\"#ffffff\",pointerStrength:.01,scanDuration:3,scanMax:.9,crossScale:50,crossSizeX:.3,crossSizeY:.02,crossSoftness:.02,maskBoost:10,imageDim:.5,borderRadius:0,opacity:1,invertDepth:false,invertEdge:false,useEdgeMap:false};addPropertyControls(Effect03DepthScan,{image:{type:ControlType.File,title:\"Image\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"webp\",\"avif\"],description:\"Base image.\"},depthMap:{type:ControlType.File,title:\"Depth\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"webp\",\"avif\"],description:\"Matching grayscale depth map. You can generate a depth map from website like https://huggingface.co/spaces/depth-anything/Depth-Anything-V2.\"},useEdgeMap:{type:ControlType.Boolean,title:\"Use Edge Map\",description:\"Toggle to switch between the cross pattern (off) and edge map mode (on). Upload an edge map below when enabled.\",defaultValue:false},edgeMap:{type:ControlType.File,title:\"Edge Map\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"webp\",\"avif\"],description:\"Edge map used as the scan mask. Only active when 'Use Edge Map' is on. Generate one at https://pinetools.com/image-edge-detection\",hidden(props){return!props.useEdgeMap;}},invertEdge:{type:ControlType.Boolean,title:\"Invert Edge\",description:\"Flip the edge map interpretation if the mask looks wrong.\",hidden(props){return!props.useEdgeMap;}},imageFit:{type:ControlType.Enum,title:\"Image Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],defaultValue:\"cover\",description:\"Choose Cover to fill the frame or Contain to show the full image without cropping.\"},background:{type:ControlType.Color,title:\"BG\",description:\"Background shown behind the effect.\"},scanColor:{type:ControlType.Color,title:\"Scan Color\",description:\"Color of the scan animation.\"},pointerStrength:{type:ControlType.Number,title:\"Pointer\",min:0,max:.08,step:.001,description:\"Depth-based mouse displacement strength.\"},scanDuration:{type:ControlType.Number,title:\"Duration\",min:.2,max:10,step:.1,description:\"Time for one full scan cycle.\"},scanMax:{type:ControlType.Number,title:\"Progress Max\",min:.1,max:1,step:.01,description:\"Maximum scan progress before looping.\"},crossScale:{type:ControlType.Number,title:\"Tiling\",min:1,max:120,step:1,description:\"Density of the tiled cross pattern. (Cross mode only)\",hidden(props){return props.useEdgeMap;}},crossSizeX:{type:ControlType.Number,title:\"Cross W\",min:.01,max:1,step:.01,description:\"Cross width. (Cross mode only)\",hidden(props){return props.useEdgeMap;}},crossSizeY:{type:ControlType.Number,title:\"Cross H\",min:.001,max:.2,step:.001,description:\"Cross arm thickness. (Cross mode only)\",hidden(props){return props.useEdgeMap;}},crossSoftness:{type:ControlType.Number,title:\"Softness\",min:.001,max:.1,step:.001,description:\"Soft edge of the cross mask. (Cross mode only)\",hidden(props){return props.useEdgeMap;}},maskBoost:{type:ControlType.Number,title:\"Boost\",min:0,max:20,step:.1,description:\"Intensity of the scan mask.\"},imageDim:{type:ControlType.Number,title:\"Dim\",min:0,max:1.5,step:.01,description:\"Base image brightness before screen blend.\"},opacity:{type:ControlType.Number,title:\"Opacity\",min:0,max:1,step:.01,description:\"Overall effect opacity.\"},invertDepth:{type:ControlType.Boolean,title:\"Invert Depth\",description:\"Flip the depth map if the scan feels reversed.\"},borderRadius:{type:ControlType.Number,title:\"Radius\",min:0,max:200,step:1,description:\"Corner radius.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Effect03DepthScan\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Scanner.map","// Generated by Framer (3ad0d99)\nexport default function metadata(params,activeLocale){return{description:\"Made with Framer\",robots:\"max-image-preview:large\",title:\"My Framer Site\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (e85a4e6)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"53wcr9\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"myny02\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-tvsHu\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (e85a4e6)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"hjei91\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"oblq1x\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"2e5oaz\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-JMveO\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}