{"version":3,"file":"shared-lib.B76nr_vo.mjs","names":["React.useRef","React.useState","React.useMemo","React.useCallback","metadata","siteMetadata","metadataVersion","__FramerMetadata__","metadata","siteMetadata"],"sources":["https:/framerusercontent.com/modules/o6h3hwyVHIkr1RUAdslK/SKT7Q8kAwSzdzz8MQNfR/ProximityImageWall.js","https:/framerusercontent.com/modules/rii7kJNaqK42VxMulPt3/iEsBxfjC8U4kpFTrG9qi/siteMetadata.js","https:/framerusercontent.com/modules/o79XuaABLGcl53omyHZK/2vbJmUNjDHx2ucifZ9fi/augiA20Il.js","https:/framerusercontent.com/modules/OOQAe3PvXw1LWdEHfHnA/Mnicry7npZQxRO79YA05/pqRD0SC29.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";const fallbackImages=[{src:\"https://framerusercontent.com/images/f9RiWoNpmlCMqVRIHz8l8wYfeI.jpg\",alt:\"Gradient 5 - Green\"},{src:\"https://framerusercontent.com/images/2uTNEj5aTl2K3NJaEFWMbnrA.jpg\",alt:\"Gradient 4 - Yellow\"},{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Gradient 3 - Orange\"}];function makeSmallSetSequence(length){const sequenceLength=97;let seed=2463534242;const result=[];for(let i=0;i<sequenceLength;i++){seed=seed*1664525+1013904223>>>0;let next=seed%length;if(result.length>0&&next===result[result.length-1]){next=(next+1)%length;}if(result.length>1&&next===result[result.length-2]){next=(next+1)%length;}result.push(next);}return result;}function hashGrid(x,y){let h=x*374761393+y*668265263;h=(h^h>>>13)*1274126177;return(h^h>>>16)>>>0;}function clamp(value,min,max){return Math.min(max,Math.max(min,value));}function gcd(a,b){let x=Math.abs(a);let y=Math.abs(b);while(y!==0){const t=y;y=x%y;x=t;}return x||1;}function findCoprimeStep(length,preferred){if(length<=1)return 1;let step=Math.max(1,preferred%length);for(let i=0;i<length;i++){const candidate=(step+i)%length||1;if(gcd(candidate,length)===1)return candidate;}return 1;}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function ProximityImageWall(props){const{images=fallbackImages,minimumScale=.72,centerScale=1,scrollZoom=false,zoomAmount=1.8,tileWidth=180,tileHeight=130,gap=18,horizontalSpacingScale=1,driftSpeed=18,driftDirectionX=\"right\",driftDirectionY=\"down\",cornerRadius=22,background=\"#08080A\",imageFit=\"cover\",tileShape=\"rectangular\",densePacking=true,randomness=0,opacityFalloff=false,dragToScroll=true,matchImageRatio=true,tileBorderColor=\"rgba(255,255,255,0.08)\",tileBorderWidth=1,tileShadow=true,tileShadowColor=\"rgba(0,0,0,0.35)\",tileShadowBlur=20,tileShadowX=0,tileShadowY=6,style}=props;const containerRef=React.useRef(null);const isStaticRenderer=useIsStaticRenderer();const[size,setSize]=React.useState({width:900,height:600});const[renderOffset,setRenderOffset]=React.useState({x:0,y:0});const[renderZoom,setRenderZoom]=React.useState(1);const[reducedMotion,setReducedMotion]=React.useState(false);const[isVisible,setIsVisible]=React.useState(true);const[imageRatios,setImageRatios]=React.useState({});const rawOffsetRef=React.useRef({x:0,y:0});const targetOffsetRef=React.useRef({x:0,y:0});const lastRenderOffsetRef=React.useRef({x:0,y:0});const rawZoomRef=React.useRef(1);const targetZoomRef=React.useRef(1);const lastRenderZoomRef=React.useRef(1);const activePointersRef=React.useRef(new Map);const pinchStateRef=React.useRef({active:false,startDistance:0,startZoom:1,startMidX:0,startMidY:0,startOffsetX:0,startOffsetY:0});const zoomFocusRef=React.useRef(null);const wheelZoomLockRef=React.useRef(null);const dragStateRef=React.useRef({dragging:false,pointerId:-1,lastX:0,lastY:0});React.useEffect(()=>{if(typeof window!==\"undefined\"){const media=window.matchMedia(\"(prefers-reduced-motion: reduce)\");React.startTransition(()=>setReducedMotion(media.matches));const onChange=event=>{React.startTransition(()=>setReducedMotion(event.matches));};if(media.addEventListener)media.addEventListener(\"change\",onChange);else media.addListener(onChange);return()=>{if(media.removeEventListener)media.removeEventListener(\"change\",onChange);else media.removeListener(onChange);};}else{React.startTransition(()=>setReducedMotion(false));}},[]);React.useEffect(()=>{if(!containerRef.current)return;if(typeof window!==\"undefined\"){const updateSize=()=>{if(!containerRef.current)return;const next={width:Math.max(1,containerRef.current.clientWidth),height:Math.max(1,containerRef.current.clientHeight)};React.startTransition(()=>setSize(next));};updateSize();const observer=new ResizeObserver(updateSize);observer.observe(containerRef.current);window.addEventListener(\"resize\",updateSize);return()=>{observer.disconnect();window.removeEventListener(\"resize\",updateSize);};}else{React.startTransition(()=>setSize({width:900,height:600}));}},[]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const element=containerRef.current;if(!element)return;if(typeof IntersectionObserver===\"undefined\"){React.startTransition(()=>setIsVisible(true));return;}const observer=new IntersectionObserver(entries=>{const entry=entries[0];if(!entry)return;React.startTransition(()=>setIsVisible(entry.isIntersecting));},{rootMargin:\"200px\"});observer.observe(element);return()=>observer.disconnect();},[]);React.useEffect(()=>{if(isStaticRenderer)return;if(typeof window===\"undefined\")return;if(!isVisible)return;let raf=0;let previous=performance.now();const tick=now=>{const dt=Math.min(.05,(now-previous)/1e3);previous=now;const reducedMultiplier=reducedMotion?.12:1;const dirX=driftDirectionX===\"right\"?1:driftDirectionX===\"left\"?-1:0;const dirY=driftDirectionY===\"down\"?1:driftDirectionY===\"up\"?-1:0;const speedX=driftSpeed*dirX*reducedMultiplier;const speedY=driftSpeed*.82*dirY*reducedMultiplier;const driftDX=speedX*dt;const driftDY=speedY*dt;targetOffsetRef.current={x:targetOffsetRef.current.x+driftDX,y:targetOffsetRef.current.y+driftDY};const smoothing=dragStateRef.current.dragging?1:.2;rawOffsetRef.current={x:rawOffsetRef.current.x+(targetOffsetRef.current.x-rawOffsetRef.current.x)*smoothing,y:rawOffsetRef.current.y+(targetOffsetRef.current.y-rawOffsetRef.current.y)*smoothing};rawZoomRef.current=rawZoomRef.current+(targetZoomRef.current-rawZoomRef.current)*.2;const rx=rawOffsetRef.current.x;const ry=rawOffsetRef.current.y;const lx=lastRenderOffsetRef.current.x;const ly=lastRenderOffsetRef.current.y;const rz=rawZoomRef.current;const lz=lastRenderZoomRef.current;if(Math.abs(rx-lx)>.1||Math.abs(ry-ly)>.1||Math.abs(rz-lz)>.001){lastRenderOffsetRef.current={x:rx,y:ry};lastRenderZoomRef.current=rz;React.startTransition(()=>{setRenderOffset({x:rx,y:ry});setRenderZoom(rz);});}raf=window.requestAnimationFrame(tick);};raf=window.requestAnimationFrame(tick);return()=>window.cancelAnimationFrame(raf);},[driftSpeed,driftDirectionX,driftDirectionY,reducedMotion,isStaticRenderer,isVisible]);const validImages=React.useMemo(()=>{const cleaned=(images||[]).filter(img=>!!img?.src);return cleaned.length>0?cleaned:fallbackImages;},[images]);React.useEffect(()=>{if(typeof window===\"undefined\")return;let cancelled=false;validImages.forEach(img=>{const src=img.src||\"\";if(!src||imageRatios[src])return;const probe=new Image;probe.decoding=\"async\";probe.onload=()=>{if(cancelled)return;const ratio=probe.naturalWidth>0&&probe.naturalHeight>0?probe.naturalWidth/probe.naturalHeight:tileWidth/Math.max(1,tileHeight);React.startTransition(()=>{setImageRatios(prev=>{if(prev[src])return prev;return{...prev,[src]:ratio};});});};probe.src=src;});return()=>{cancelled=true;};},[validImages,imageRatios,tileWidth,tileHeight]);const smallSetSequence=React.useMemo(()=>{if(validImages.length<=3){return makeSmallSetSequence(validImages.length);}return[];},[validImages]);// Pick the two coprime multipliers whose lattice keeps identical images\n// as far apart as possible, so duplicates never cluster or touch.\nconst bestLattice=React.useMemo(()=>{const count=validImages.length;if(count<2)return{a:1,b:1};if(count>64){const a=findCoprimeStep(count,Math.max(2,Math.round(count*.382)));let b=findCoprimeStep(count,Math.max(3,Math.round(count*.618)));if(b===a||(a+b)%count===0){b=findCoprimeStep(count,b+1);}return{a,b};}const R=Math.ceil(Math.sqrt(count))+1;const minDist2=(a,b)=>{let best=Infinity;for(let dy=-R;dy<=R;dy++){for(let dx=-R;dx<=R;dx++){if(dx===0&&dy===0)continue;if(((a*dx+b*dy)%count+count)%count===0){const d2=dx*dx+dy*dy;if(d2<best)best=d2;}}}return best;};const coprimes=[];for(let v=1;v<count;v++){if(gcd(v,count)===1)coprimes.push(v);}let bestA=coprimes[0]||1;let bestB=coprimes[0]||1;let bestScore=-1;for(const a of coprimes){for(const b of coprimes){if((a+b)%count===0)continue;const score=minDist2(a,b);if(score>bestScore){bestScore=score;bestA=a;bestB=b;}}}return{a:bestA,b:bestB};},[validImages]);// Shuffle which actual image maps to each lattice slot. The Randomness\n// control is the seed, so changing it reshuffles the whole arrangement.\nconst imagePermutation=React.useMemo(()=>{const count=validImages.length;const perm=Array.from({length:count},(_,i)=>i);let s=(Math.max(0,Math.round(randomness))+1)*2654435761>>>0;const rnd=()=>{s=s*1664525+1013904223>>>0;return s/4294967296;};for(let i=count-1;i>0;i--){const j=Math.floor(rnd()*(i+1));const t=perm[i];perm[i]=perm[j];perm[j]=t;}return perm;},[validImages,randomness]);const getImageIndexForCell=React.useCallback((ix,iy)=>{const count=validImages.length;if(count<=0)return 0;if(count===1)return 0;const h=hashGrid(ix,iy);if(count<=3&&smallSetSequence.length>0){return smallSetSequence[h%smallSetSequence.length];}const{a,b}=bestLattice;const seed=Math.max(0,Math.round(randomness));// One lattice period per block, with a per-block offset so the\n// even spread repeats without the eye catching a tiled pattern.\nconst block=Math.max(4,count);const offset=(hashGrid(Math.floor(ix/block),Math.floor(iy/block))+seed)%count;const lattice=((a*ix+b*iy+offset)%count+count)%count;return imagePermutation[lattice];},[validImages,smallSetSequence,bestLattice,imagePermutation,randomness]);const getRatioForImage=React.useCallback(image=>{const fallbackRatio=tileWidth/Math.max(1,tileHeight);const src=image.src||\"\";if(!src)return fallbackRatio;return imageRatios[src]||fallbackRatio;},[imageRatios,tileWidth,tileHeight]);const maxKnownRatio=React.useMemo(()=>{const fallbackRatio=tileWidth/Math.max(1,tileHeight);return validImages.length>0?Math.max(...validImages.map(image=>getRatioForImage(image))):fallbackRatio;},[validImages,getRatioForImage,tileWidth,tileHeight]);const getLayoutConfig=React.useCallback(zoom=>{const resolvedTiling=tileShape===\"hexagon\"?\"hexagonal\":\"rectangular\";const zoomedGap=gap*zoom;const zoomedTileHeight=tileHeight*zoom;const zoomedTileWidth=tileWidth*zoom;const minS=Math.min(1,Math.max(0,minimumScale));const centerS=Math.max(.2,Number.isFinite(centerScale)?centerScale:1);const maxScaleForLayout=Math.max(1,centerS,minS);const maxTileWidth=matchImageRatio?Math.max(40*zoom,zoomedTileHeight*Math.max(.4,maxKnownRatio)):zoomedTileWidth;const safeTileWidth=maxTileWidth*maxScaleForLayout;const safeTileHeight=zoomedTileHeight*maxScaleForLayout;const spacingSafety=densePacking?zoomedGap:zoomedGap*1.35;const minHorizontalGap=Math.max(1,spacingSafety*.35);const baseCellW=safeTileWidth+spacingSafety;const scaledCellW=baseCellW*clamp(horizontalSpacingScale,.5,1.5);const cellW=Math.max(24,scaledCellW,safeTileWidth+minHorizontalGap);const rowStep=Math.max(24,safeTileHeight+spacingSafety);return{resolvedTiling,minS,centerS,maxTileWidth,zoomedTileHeight,zoomedTileWidth,zoom,cellW,rowStep};},[tileShape,gap,tileHeight,tileWidth,minimumScale,centerScale,matchImageRatio,maxKnownRatio,densePacking,horizontalSpacingScale]);const getTileGeometry=React.useCallback((worldX,worldY,offsetX,offsetY,config,forcedImageIndex)=>{const rowShift=config.resolvedTiling===\"hexagonal\"&&Math.abs(worldY%2)===1?config.cellW*.5:0;const imageIndex=forcedImageIndex!==undefined?forcedImageIndex:getImageIndexForCell(worldX,worldY);const image=validImages[imageIndex]||validImages[0];const ratio=getRatioForImage(image);const tileW=matchImageRatio?Math.max(40*Math.max(1,config.zoom),Math.min(config.maxTileWidth,config.zoomedTileHeight*Math.max(.4,ratio))):config.zoomedTileWidth;const x=worldX*config.cellW-offsetX+rowShift+(config.cellW-tileW)*.5;const y=worldY*config.rowStep-offsetY;return{image,tileW,tileH:config.zoomedTileHeight,x,y,centerX:x+tileW*.5,centerY:y+config.zoomedTileHeight*.5};},[getImageIndexForCell,getRatioForImage,matchImageRatio,validImages]);const handleWheelInteraction=React.useCallback((clientX,clientY,deltaX,deltaY,rect)=>{if(!scrollZoom&&!dragToScroll)return;if(!scrollZoom){targetOffsetRef.current={x:targetOffsetRef.current.x+deltaX*.9,y:targetOffsetRef.current.y+deltaY*.9};return;}const maxZoom=Math.max(1,Number.isFinite(zoomAmount)?zoomAmount:1.8);const oldTargetZoom=Math.max(1,targetZoomRef.current);const clampedDeltaY=clamp(deltaY,-80,80);const nextTargetZoom=clamp(oldTargetZoom*Math.exp(-clampedDeltaY*.0015),1,maxZoom);const px=clamp(clientX-rect.left,0,rect.width);const py=clamp(clientY-rect.top,0,rect.height);const now=typeof performance!==\"undefined\"&&typeof performance.now===\"function\"?performance.now():Date.now();if(Math.abs(nextTargetZoom-oldTargetZoom)<1e-4){if(dragToScroll){targetOffsetRef.current={x:targetOffsetRef.current.x+deltaX*.2,y:targetOffsetRef.current.y};}return;}const currentConfig=getLayoutConfig(oldTargetZoom);const approxWorldX=Math.floor((targetOffsetRef.current.x+px)/currentConfig.cellW);const approxWorldY=Math.floor((targetOffsetRef.current.y+py)/currentConfig.rowStep);let chosen=null;let bestContain=null;let bestNear=null;const existingLock=wheelZoomLockRef.current;if(existingLock&&existingLock.expiresAt>=now){const lockedTile=getTileGeometry(existingLock.worldX,existingLock.worldY,targetOffsetRef.current.x,targetOffsetRef.current.y,currentConfig);const ldx=lockedTile.centerX-px;const ldy=lockedTile.centerY-py;const lockD2=ldx*ldx+ldy*ldy;const lockRadius=Math.max(220,Math.min(rect.width,rect.height)*.4);if(lockD2<=lockRadius*lockRadius){chosen={distance:lockD2,worldX:existingLock.worldX,worldY:existingLock.worldY,centerX:lockedTile.centerX,centerY:lockedTile.centerY};}}if(!chosen){for(let y=approxWorldY-4;y<=approxWorldY+4;y++){for(let x=approxWorldX-6;x<=approxWorldX+6;x++){const tile=getTileGeometry(x,y,targetOffsetRef.current.x,targetOffsetRef.current.y,currentConfig);const dx=tile.centerX-px;const dy=tile.centerY-py;const d2=dx*dx+dy*dy;const contains=px>=tile.x&&px<=tile.x+tile.tileW&&py>=tile.y&&py<=tile.y+tile.tileH;if(contains){if(!bestContain||d2<bestContain.distance){bestContain={distance:d2,worldX:x,worldY:y,centerX:tile.centerX,centerY:tile.centerY};}}else if(!bestNear||d2<bestNear.distance){bestNear={distance:d2,worldX:x,worldY:y,centerX:tile.centerX,centerY:tile.centerY};}}}chosen=bestContain||bestNear;}const anchorX=chosen?chosen.centerX:px;const anchorY=chosen?chosen.centerY:py;if(chosen){wheelZoomLockRef.current={worldX:chosen.worldX,worldY:chosen.worldY,expiresAt:now+450};zoomFocusRef.current={worldX:chosen.worldX,worldY:chosen.worldY,expiresAt:now+450};}else{wheelZoomLockRef.current=null;zoomFocusRef.current=null;}const targetWorldX=(targetOffsetRef.current.x+anchorX)/oldTargetZoom;const targetWorldY=(targetOffsetRef.current.y+anchorY)/oldTargetZoom;targetOffsetRef.current={x:targetWorldX*nextTargetZoom-px+(dragToScroll?deltaX*.12:0),y:targetWorldY*nextTargetZoom-py};targetZoomRef.current=nextTargetZoom;},[dragToScroll,scrollZoom,zoomAmount,getLayoutConfig,getTileGeometry]);React.useEffect(()=>{const element=containerRef.current;if(!element)return;if(typeof window===\"undefined\")return;const shouldBlockWheel=dragToScroll||scrollZoom;if(!shouldBlockWheel)return;const onNativeWheel=event=>{event.preventDefault();const rect=element.getBoundingClientRect();handleWheelInteraction(event.clientX,event.clientY,event.deltaX,event.deltaY,rect);};element.addEventListener(\"wheel\",onNativeWheel,{passive:false});return()=>{element.removeEventListener(\"wheel\",onNativeWheel);};},[dragToScroll,scrollZoom,handleWheelInteraction]);const handlePinchMove=React.useCallback(event=>{const points=Array.from(activePointersRef.current.values());if(!scrollZoom||points.length!==2)return false;const[p1,p2]=points;const dx=p2.x-p1.x;const dy=p2.y-p1.y;const distance=Math.hypot(dx,dy);if(distance<=0)return true;const midX=(p1.x+p2.x)*.5;const midY=(p1.y+p2.y)*.5;const rect=event.currentTarget.getBoundingClientRect();const localMidX=clamp(midX-rect.left,0,rect.width);const localMidY=clamp(midY-rect.top,0,rect.height);const pinch=pinchStateRef.current;if(!pinch.active){pinchStateRef.current={active:true,startDistance:distance,startZoom:Math.max(1,rawZoomRef.current),startMidX:localMidX,startMidY:localMidY,startOffsetX:rawOffsetRef.current.x,startOffsetY:rawOffsetRef.current.y};zoomFocusRef.current=null;return true;}const maxZoom=Math.max(1,Number.isFinite(zoomAmount)?zoomAmount:1.8);const scaleFactor=distance/Math.max(1e-6,pinch.startDistance);const nextZoom=clamp(pinch.startZoom*scaleFactor,1,maxZoom);const worldX=(pinch.startOffsetX+pinch.startMidX)/Math.max(1,pinch.startZoom);const worldY=(pinch.startOffsetY+pinch.startMidY)/Math.max(1,pinch.startZoom);const nextOffsetX=worldX*nextZoom-localMidX;const nextOffsetY=worldY*nextZoom-localMidY;rawZoomRef.current=nextZoom;targetZoomRef.current=nextZoom;rawOffsetRef.current={x:nextOffsetX,y:nextOffsetY};targetOffsetRef.current={x:nextOffsetX,y:nextOffsetY};lastRenderOffsetRef.current={x:nextOffsetX,y:nextOffsetY};lastRenderZoomRef.current=nextZoom;React.startTransition(()=>{setRenderOffset({x:nextOffsetX,y:nextOffsetY});setRenderZoom(nextZoom);});return true;},[scrollZoom,zoomAmount]);const onPointerDown=React.useCallback(event=>{activePointersRef.current.set(event.pointerId,{x:event.clientX,y:event.clientY});event.currentTarget.setPointerCapture(event.pointerId);const pointerCount=activePointersRef.current.size;if(scrollZoom&&pointerCount===2){pinchStateRef.current.active=false;dragStateRef.current={dragging:false,pointerId:-1,lastX:0,lastY:0};return;}if(!dragToScroll||pointerCount>1)return;dragStateRef.current={dragging:true,pointerId:event.pointerId,lastX:event.clientX,lastY:event.clientY};},[dragToScroll,scrollZoom]);const onPointerMove=React.useCallback(event=>{if(activePointersRef.current.has(event.pointerId)){activePointersRef.current.set(event.pointerId,{x:event.clientX,y:event.clientY});}if(handlePinchMove(event)){dragStateRef.current={dragging:false,pointerId:-1,lastX:0,lastY:0};return;}const state=dragStateRef.current;if(!dragToScroll||!state.dragging||state.pointerId!==event.pointerId)return;const dx=state.lastX-event.clientX;const dy=state.lastY-event.clientY;dragStateRef.current={...state,lastX:event.clientX,lastY:event.clientY};rawOffsetRef.current={x:rawOffsetRef.current.x+dx,y:rawOffsetRef.current.y+dy};targetOffsetRef.current={x:targetOffsetRef.current.x+dx,y:targetOffsetRef.current.y+dy};const rx=rawOffsetRef.current.x;const ry=rawOffsetRef.current.y;lastRenderOffsetRef.current={x:rx,y:ry};React.startTransition(()=>{setRenderOffset({x:rx,y:ry});});},[dragToScroll,handlePinchMove]);const endPointer=React.useCallback(event=>{activePointersRef.current.delete(event.pointerId);if(activePointersRef.current.size<2){pinchStateRef.current.active=false;}const state=dragStateRef.current;if(state.pointerId===event.pointerId){dragStateRef.current={dragging:false,pointerId:-1,lastX:0,lastY:0};}},[]);const tiles=React.useMemo(()=>{const zoom=Math.max(1,renderZoom);const config=getLayoutConfig(zoom);const{cellW,rowStep,minS,centerS}=config;const worldColOffset=Math.floor(renderOffset.x/cellW);const worldRowOffset=Math.floor(renderOffset.y/rowStep);const wrappedX=(renderOffset.x%cellW+cellW)%cellW;const wrappedY=(renderOffset.y%rowStep+rowStep)%rowStep;const cols=Math.ceil(size.width/cellW)+(config.resolvedTiling===\"hexagonal\"?12:7);const rows=Math.ceil(size.height/rowStep)+8;const maxDist=Math.hypot(size.width*.5,size.height*.5)||1;const list=[];for(let y=-4;y<rows-4;y++){for(let x=-5;x<cols-5;x++){const worldX=x+worldColOffset;const worldY=y+worldRowOffset;const imageIndex=getImageIndexForCell(worldX,worldY);const tile=getTileGeometry(worldX,worldY,0,0,config,imageIndex);const tileX=x*cellW-wrappedX+(tile.x-worldX*cellW);const py=y*rowStep-wrappedY;const cx=tileX+tile.tileW*.5;const cy=py+tile.tileH*.5;const dx=cx-size.width*.5;const dy=cy-size.height*.5;const t=Math.min(1,Math.hypot(dx,dy)/maxDist);const scale=centerS+(minS-centerS)*t;const opacity=opacityFalloff?1-.4*t:1;list.push(/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:cx,top:cy,width:tile.tileW,height:tile.tileH,transform:`translate3d(-50%,-50%,0) scale(${scale})`,transformOrigin:\"center\",opacity,willChange:\"transform\"},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,borderRadius:cornerRadius*zoom,overflow:\"hidden\",boxShadow:tileShadow&&tileShadowBlur>0?`${tileShadowX}px ${tileShadowY}px ${tileShadowBlur}px ${tileShadowColor}`:\"none\",border:tileBorderWidth>0?`${tileBorderWidth}px solid ${tileBorderColor}`:\"none\",backgroundColor:\"rgba(255,255,255,0.03)\"},children:/*#__PURE__*/_jsx(\"img\",{src:tile.image.src,srcSet:tile.image.srcSet,alt:tile.image.alt||\"\",style:{width:\"100%\",height:\"100%\",objectFit:imageFit,display:\"block\"}})})},`${worldX}:${worldY}`));}}return list;},[renderZoom,renderOffset.x,renderOffset.y,size.width,size.height,validImages,opacityFalloff,cornerRadius,imageFit,tileBorderColor,tileBorderWidth,tileShadow,tileShadowColor,tileShadowBlur,tileShadowX,tileShadowY,getImageIndexForCell,getLayoutConfig,getTileGeometry]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",background,touchAction:dragToScroll||scrollZoom?\"none\":\"auto\",cursor:dragToScroll?\"grab\":\"default\",...style},role:\"region\",\"aria-label\":\"Proximity image wall\",onPointerDown:onPointerDown,onPointerMove:onPointerMove,onPointerUp:endPointer,onPointerCancel:endPointer,onPointerLeave:endPointer,children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\"},children:tiles})});}addPropertyControls(ProximityImageWall,{images:{type:ControlType.Array,title:\"Images\",control:{type:ControlType.ResponsiveImage},defaultValue:fallbackImages},minimumScale:{type:ControlType.Number,title:\"Minimum Scale\",min:0,max:1,step:.01,defaultValue:.72},centerScale:{type:ControlType.Number,title:\"Center Scale\",min:.2,max:50,step:.01,defaultValue:1},scrollZoom:{type:ControlType.Boolean,title:\"Scroll Zoom\",defaultValue:false},zoomAmount:{type:ControlType.Number,title:\"Zoom Amount\",min:1,max:50,step:.05,defaultValue:1.8},tileWidth:{type:ControlType.Number,title:\"Tile Width\",min:40,max:480,step:1,defaultValue:180},tileHeight:{type:ControlType.Number,title:\"Tile Height\",min:40,max:420,step:1,defaultValue:130},gap:{type:ControlType.Number,title:\"Spacing\",min:0,max:100,step:1,defaultValue:18},horizontalSpacingScale:{type:ControlType.Number,title:\"Horizontal Spacing\",min:.5,max:1.5,step:.01,defaultValue:1},driftSpeed:{type:ControlType.Number,title:\"Drift Speed\",min:0,max:120,step:1,defaultValue:18},driftDirectionX:{type:ControlType.Enum,title:\"Drift X\",options:[\"left\",\"right\",\"none\"],optionTitles:[\"Left\",\"Right\",\"None\"],defaultValue:\"right\"},driftDirectionY:{type:ControlType.Enum,title:\"Drift Y\",options:[\"up\",\"down\",\"none\"],optionTitles:[\"Up\",\"Down\",\"None\"],defaultValue:\"down\"},cornerRadius:{type:ControlType.Number,title:\"Corner Radius\",step:1,defaultValue:22},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#08080A\"},imageFit:{type:ControlType.Enum,title:\"Image Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],defaultValue:\"cover\"},tileShape:{type:ControlType.Enum,title:\"Tile Shape\",options:[\"rectangular\",\"hexagon\"],optionTitles:[\"Rectangular\",\"Hexagonal\"],defaultValue:\"rectangular\"},densePacking:{type:ControlType.Boolean,title:\"Dense Packing\",defaultValue:true},randomness:{type:ControlType.Number,title:\"Randomness\",min:0,max:50,step:1,defaultValue:0},opacityFalloff:{type:ControlType.Boolean,title:\"Opacity Falloff\",defaultValue:false},dragToScroll:{type:ControlType.Boolean,title:\"Drag To Scroll\",defaultValue:true},matchImageRatio:{type:ControlType.Boolean,title:\"Match Image Ratio\",defaultValue:true},tileBorderColor:{type:ControlType.Color,title:\"Border Color\",defaultValue:\"rgba(255,255,255,0.08)\"},tileBorderWidth:{type:ControlType.Number,title:\"Border Width\",step:.5,defaultValue:1},tileShadow:{type:ControlType.Boolean,title:\"Shadow\",defaultValue:true},tileShadowColor:{type:ControlType.Color,title:\"Shadow Color\",defaultValue:\"rgba(0,0,0,0.35)\"},tileShadowBlur:{type:ControlType.Number,title:\"Shadow Blur\",step:1,defaultValue:20},tileShadowX:{type:ControlType.Number,title:\"Shadow X\",step:1,defaultValue:0},tileShadowY:{type:ControlType.Number,title:\"Shadow Y\",step:1,defaultValue:6}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ProximityImageWall\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ProximityImageWall.map","// Generated by Framer (2b843ce)\nexport default function metadata(params,activeLocale){return{description:\"Infinite canvas to show your work\",robots:\"max-image-preview:large\",title:\"The Proximity Grid\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (eaac66a)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"117phh\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"c8ibqm\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-mraVH\",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 (eaac66a)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"11ook2n\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-KSwhT\",title:siteMetadata(params,activeLocale).title||\"Page\",viewport:\"width=1200\"};}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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"}