{"version":3,"file":"DomeGallery.142W_fRa.mjs","names":["useRef","useState","useCallback","useMemo"],"sources":["https:/framerusercontent.com/modules/lyRvtGmHKoazYy5GPS55/O0HujxYTCtioOzz5slsu/DomeGallery.js"],"sourcesContent":["// 3D Interactive Dome Gallery with clickable tiles, drag rotation, and smooth animations\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useRef,useEffect,useState,useCallback,useMemo,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * 3D Interactive Dome Gallery\n *\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 400\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function DomeGallery(props){const{images=[{src:\"https://framerusercontent.com/images/J8QhlhOj1wL9jbrHFp4mvdyq0.jpg?scale-down-to=1024&width=1200&height=1500\",alt:\"Image 1\"},{src:\"https://framerusercontent.com/images/G6oskLkUJEoXkWV0ruLSfN6ZU.jpg?scale-down-to=1024&width=1200&height=1500\",alt:\"Image 2\"},{src:\"https://framerusercontent.com/images/Br1zvE2uv9ZuvQEa0Mblqun31eI.jpg?width=600&height=750\",alt:\"Image 3\"},{src:\"https://framerusercontent.com/images/TnmSaZlZ8MkXAYxiL7IrMWjFKvo.jpg?scale-down-to=1024&width=1200&height=1500\",alt:\"Image 4\"},{src:\"https://framerusercontent.com/images/2yJBE5GY3PtHom3ezGzIgNwnXA.jpg?width=600&height=750\",alt:\"Image 5\"},{src:\"https://framerusercontent.com/images/nPIYoqszWK2xBJLOZp3sV6lbEk.jpg?width=600&height=750\",alt:\"Image 6\"},{src:\"https://framerusercontent.com/images/AN5LGaWDB4MXJEUqjA0FcrFnGSY.jpg?width=600&height=750\",alt:\"Image 7\"},{src:\"https://framerusercontent.com/images/OzXJvWjZUWpbzdfAwPFseahugI.jpg?scale-down-to=1024&width=1200&height=1500\",alt:\"Image 8\"},{src:\"https://framerusercontent.com/images/vvQyqFjSQweZh9lqMhSZaN9mPLU.jpg?width=600&height=750\",alt:\"Image 9\"},{src:\"https://framerusercontent.com/images/RS2foZEUmMoXueDdLWBlEA1UHQ.jpeg?scale-down-to=1024&width=1066&height=1600\",alt:\"Image 10\"},{src:\"https://framerusercontent.com/images/SsZiCFtzKQZiyUUF8hzyEzCUpU.jpg?scale-down-to=512&width=1080&height=1049\",alt:\"Image 11\"},{src:\"https://framerusercontent.com/images/RS2foZEUmMoXueDdLWBlEA1UHQ.jpeg?scale-down-to=1024&width=1066&height=1600\",alt:\"Image 12\"},{src:\"https://framerusercontent.com/images/OzXJvWjZUWpbzdfAwPFseahugI.jpg?scale-down-to=1024&width=1200&height=1500\",alt:\"Image 13\"},{src:\"https://framerusercontent.com/images/TnmSaZlZ8MkXAYxiL7IrMWjFKvo.jpg?scale-down-to=1024&width=1200&height=1500\",alt:\"Image 14\"}],segments=45,fit=.5,fitBasis=\"auto\",minRadius=600,maxRadius=1200,padFactor=.25,maxVerticalRotationDeg=5,dragSensitivity=20,dragDampening=2,grayscale=true,overlayBlurColor=\"#060010\",backgroundColor=\"#000000\",autoRotate=false,autoRotateSpeed=1,autoRotateDirection=\"clockwise\",pauseOnHover=true,imageBorderRadius=12,openedImageBorderRadius=16}=props;const rootRef=useRef(null);const sphereRef=useRef(null);const rotationRef=useRef({x:0,y:0});const startRotRef=useRef({x:0,y:0});const startPosRef=useRef(null);const draggingRef=useRef(false);const movedRef=useRef(false);const inertiaRAF=useRef(null);const lastDragEndAt=useRef(0);const velocityRef=useRef({x:0,y:0});const lastPointerPos=useRef({x:0,y:0,time:0});const autoRotateRAF=useRef(null);const isHovering=useRef(false);const scrollInertiaRAF=useRef(null);const[popupImage,setPopupImage]=useState(null);const isStatic=useIsStaticRenderer();// Add smooth interpolation refs\nconst targetRotationRef=useRef({x:0,y:0});const currentRotationRef=useRef({x:0,y:0});const smoothingRAF=useRef(null);const lastScrollTime=useRef(0);const scrollVelocityBuffer=useRef([]);// Reset all states and animations on component mount/refresh\nuseEffect(()=>{// Reset rotation to initial state\nrotationRef.current={x:0,y:0};startRotRef.current={x:0,y:0};targetRotationRef.current={x:0,y:0};currentRotationRef.current={x:0,y:0};startPosRef.current=null;draggingRef.current=false;movedRef.current=false;lastDragEndAt.current=0;velocityRef.current={x:0,y:0};lastPointerPos.current={x:0,y:0,time:0};isHovering.current=false;lastScrollTime.current=0;scrollVelocityBuffer.current=[];// Clear all animation frames\nif(inertiaRAF.current){cancelAnimationFrame(inertiaRAF.current);inertiaRAF.current=null;}if(autoRotateRAF.current){cancelAnimationFrame(autoRotateRAF.current);autoRotateRAF.current=null;}if(scrollInertiaRAF.current){cancelAnimationFrame(scrollInertiaRAF.current);scrollInertiaRAF.current=null;}if(smoothingRAF.current){cancelAnimationFrame(smoothingRAF.current);smoothingRAF.current=null;}// Reset popup state\nsetPopupImage(null);// Reset sphere transform to initial position\nif(sphereRef.current){sphereRef.current.style.transform=`translateZ(calc(var(--radius) * -1)) rotateX(0deg) rotateY(0deg)`;}// Warm up buildItems to pre-populate items and chunk, reduce layout jank\n// (asynchronously, so main thread isn't blocked, but quickly after mount)\nsetTimeout(()=>{buildItems(images,segments);},0);},[]);const clamp=(v,min,max)=>Math.min(Math.max(v,min),max);const wrapAngleSigned=deg=>{const a=((deg+180)%360+360)%360;return a-180;};const buildItems=useCallback((pool,seg)=>{const xCols=Array.from({length:seg},(_,i)=>-37+i*2);const evenYs=[-6,-4,-2,0,2,4,6];const oddYs=[-5,-3,-1,1,3,5,7];const coords=xCols.flatMap((x,c)=>{const ys=c%2===0?evenYs:oddYs;return ys.map(y=>({x,y,sizeX:2,sizeY:2}));});const totalSlots=coords.length;if(pool.length===0){return coords.map(c=>({...c,src:\"\",alt:\"\"}));}const normalizedImages=pool.map(image=>({src:image.src||\"\",alt:image.alt||\"\"}));// Create multiple shuffled copies to ensure even distribution\nconst repetitions=Math.ceil(totalSlots/normalizedImages.length);const shuffledCopies=[];// Fisher-Yates shuffle helper\nconst shuffleArray=array=>{const shuffled=[...array];for(let i=shuffled.length-1;i>0;i--){const j=Math.floor(Math.random()*(i+1));[shuffled[i],shuffled[j]]=[shuffled[j],shuffled[i]];}return shuffled;};// Create multiple shuffled copies of the image array\nfor(let rep=0;rep<repetitions;rep++){shuffledCopies.push(...shuffleArray(normalizedImages));}// Trim to exact slot count\nconst usedImages=shuffledCopies.slice(0,totalSlots);return coords.map((c,i)=>({...c,src:usedImages[i].src,alt:usedImages[i].alt}));},[]);const items=useMemo(()=>buildItems(images,segments),[images,segments,buildItems]);const applyTransform=useCallback((xDeg,yDeg)=>{const el=sphereRef.current;if(el){el.style.transform=`translateZ(calc(var(--radius) * -1)) rotateX(${xDeg}deg) rotateY(${yDeg}deg)`;}},[]);const closeOverlay=useCallback(()=>{startTransition(()=>{setPopupImage(null);});},[]);// Resize observer for responsive sizing\nuseEffect(()=>{const root=rootRef.current;if(!root||typeof window===\"undefined\")return;// Move debounce timer outside updateSize\nlet resizeTimer=null;const updateSize=()=>{// Only use debounce when multiple resizes are triggered\nif(resizeTimer)clearTimeout(resizeTimer);resizeTimer=setTimeout(()=>{const rect=root.getBoundingClientRect();const w=Math.max(1,rect.width);const h=Math.max(1,rect.height);const minDim=Math.min(w,h);const maxDim=Math.max(w,h);let basis;switch(fitBasis){case\"min\":basis=minDim;break;case\"max\":basis=maxDim;break;case\"width\":basis=w;break;case\"height\":basis=h;break;default:basis=minDim;break;}let radius=basis*fit;radius=clamp(radius,minRadius,maxRadius);const viewerPad=Math.max(8,Math.round(minDim*padFactor));root.style.setProperty(\"--radius\",`${Math.round(radius)}px`);root.style.setProperty(\"--viewer-pad\",`${viewerPad}px`);root.style.setProperty(\"--overlay-blur-color\",overlayBlurColor);root.style.setProperty(\"--tile-radius\",`${imageBorderRadius}px`);root.style.setProperty(\"--enlarge-radius\",`${openedImageBorderRadius}px`);root.style.setProperty(\"--image-filter\",grayscale?\"grayscale(1)\":\"none\");applyTransform(rotationRef.current.x,rotationRef.current.y);},10);};const ro=new ResizeObserver(updateSize);ro.observe(root);updateSize();return()=>{ro.disconnect();if(resizeTimer)clearTimeout(resizeTimer);};},[fit,fitBasis,minRadius,maxRadius,padFactor,overlayBlurColor,grayscale,imageBorderRadius,openedImageBorderRadius,applyTransform]);const stopInertia=useCallback(()=>{if(inertiaRAF.current){cancelAnimationFrame(inertiaRAF.current);inertiaRAF.current=null;}if(scrollInertiaRAF.current){cancelAnimationFrame(scrollInertiaRAF.current);scrollInertiaRAF.current=null;}},[]);const stopAutoRotate=useCallback(()=>{if(autoRotateRAF.current){cancelAnimationFrame(autoRotateRAF.current);autoRotateRAF.current=null;}},[]);const startAutoRotate=useCallback(()=>{if(!autoRotate||isStatic||draggingRef.current)return;if(pauseOnHover&&isHovering.current)return;stopAutoRotate();const step=()=>{if(!autoRotate||draggingRef.current){autoRotateRAF.current=null;return;}if(pauseOnHover&&isHovering.current){autoRotateRAF.current=null;return;}const rotationSpeed=autoRotateSpeed*.8;const direction=autoRotateDirection===\"clockwise\"?1:-1;const rotationAmount=rotationSpeed*direction;const nextY=wrapAngleSigned(rotationRef.current.y+rotationAmount);rotationRef.current={x:rotationRef.current.x,y:nextY};applyTransform(rotationRef.current.x,nextY);autoRotateRAF.current=requestAnimationFrame(step);};autoRotateRAF.current=requestAnimationFrame(step);},[autoRotate,autoRotateSpeed,autoRotateDirection,pauseOnHover,isStatic,stopAutoRotate,applyTransform]);const startInertia=useCallback((vx,vy)=>{stopAutoRotate();const MAX_V=2;let vX=clamp(vx,-MAX_V,MAX_V)*60;let vY=clamp(vy,-MAX_V,MAX_V)*60;let frames=0;const dampingFactor=Math.max(.1,Math.min(1,dragDampening/5));const frictionMul=.88+.1*(1-dampingFactor);const stopThreshold=.008+.004*dampingFactor;const maxFrames=Math.round(80+200*(1-dampingFactor));const step=()=>{vX*=frictionMul;vY*=frictionMul;if(Math.abs(vX)<stopThreshold&&Math.abs(vY)<stopThreshold){inertiaRAF.current=null;if(autoRotate){setTimeout(()=>startAutoRotate(),500);}return;}if(++frames>maxFrames){inertiaRAF.current=null;if(autoRotate){setTimeout(()=>startAutoRotate(),500);}return;}const sensitivity=dragSensitivity*.8;const nextX=clamp(rotationRef.current.x-vY/sensitivity,-maxVerticalRotationDeg,maxVerticalRotationDeg);const nextY=wrapAngleSigned(rotationRef.current.y+vX/sensitivity);rotationRef.current={x:nextX,y:nextY};applyTransform(nextX,nextY);inertiaRAF.current=requestAnimationFrame(step);};stopInertia();inertiaRAF.current=requestAnimationFrame(step);},[dragDampening,maxVerticalRotationDeg,stopInertia,applyTransform,dragSensitivity,autoRotate,startAutoRotate,stopAutoRotate]);const startScrollInertia=useCallback(velocity=>{stopAutoRotate();let vel=clamp(velocity,-4,4);let frames=0;const maxFrames=150;const friction=.94;const stopThreshold=.005;const step=()=>{vel*=friction;if(Math.abs(vel)<stopThreshold||frames>maxFrames){scrollInertiaRAF.current=null;if(autoRotate){setTimeout(()=>startAutoRotate(),300);}return;}frames++;const rotationDelta=vel*1.5;const nextY=wrapAngleSigned(rotationRef.current.y+rotationDelta);rotationRef.current={x:rotationRef.current.x,y:nextY};applyTransform(rotationRef.current.x,nextY);scrollInertiaRAF.current=requestAnimationFrame(step);};if(scrollInertiaRAF.current){cancelAnimationFrame(scrollInertiaRAF.current);}scrollInertiaRAF.current=requestAnimationFrame(step);},[stopAutoRotate,applyTransform,autoRotate,startAutoRotate]);const handleWheel=useCallback(event=>{if(isStatic||popupImage)return;// Remove all effect of scrolling on the dome; do not prevent default\n// Allow page scroll\nreturn;},[isStatic,popupImage]);const handleDragStart=useCallback(event=>{if(isStatic)return;event.preventDefault();event.stopPropagation();stopInertia();stopAutoRotate();draggingRef.current=true;movedRef.current=false;startRotRef.current={...rotationRef.current};startPosRef.current={x:event.clientX,y:event.clientY};lastPointerPos.current={x:event.clientX,y:event.clientY,time:performance.now()};velocityRef.current={x:0,y:0};// Clear velocity buffer for fresh start\nscrollVelocityBuffer.current=[];},[stopInertia,stopAutoRotate,isStatic]);const handleDrag=useCallback(event=>{if(!draggingRef.current||!startPosRef.current||isStatic)return;const currentTime=performance.now();const deltaTime=Math.max(1,currentTime-lastPointerPos.current.time);// Ultra-smooth velocity calculation with temporal smoothing\nif(deltaTime>0){const deltaX=event.clientX-lastPointerPos.current.x;const deltaY=event.clientY-lastPointerPos.current.y;// Frame-rate independent velocity calculation\nconst timeScale=Math.min(deltaTime/16.67,2)// Normalize to 60fps\n;const newVelX=deltaX/deltaTime*1e3/timeScale;const newVelY=deltaY/deltaTime*1e3/timeScale;// Enhanced smoothing with adaptive filtering\nconst smoothingFactor=Math.min(.8,Math.max(.3,deltaTime/50));velocityRef.current.x=velocityRef.current.x*smoothingFactor+newVelX*(1-smoothingFactor);velocityRef.current.y=velocityRef.current.y*smoothingFactor+newVelY*(1-smoothingFactor);}lastPointerPos.current={x:event.clientX,y:event.clientY,time:currentTime};const dxTotal=event.clientX-startPosRef.current.x;const dyTotal=event.clientY-startPosRef.current.y;if(!movedRef.current){const dist2=dxTotal*dxTotal+dyTotal*dyTotal;if(dist2>2)movedRef.current=true// Reduced threshold for more responsive detection\n;}// Ultra-smooth sensitivity with sub-pixel precision\nconst sensitivity=dragSensitivity*.15;const nextX=0;const nextY=wrapAngleSigned(startRotRef.current.y+dxTotal/sensitivity);// Direct transform with optimized precision\nrotationRef.current={x:nextX,y:nextY};applyTransform(nextX,nextY);},[dragSensitivity,applyTransform,isStatic]);const handleDragEnd=useCallback(event=>{if(!draggingRef.current||isStatic)return;draggingRef.current=false;// Ultra-smooth velocity handling with momentum preservation\nconst vx=clamp(velocityRef.current.x/1e3*6,-12,12);const vy=0;if(Math.abs(vx)>.02){startInertia(vx,vy);}else{if(autoRotate){setTimeout(()=>startAutoRotate(),50);}}if(movedRef.current)lastDragEndAt.current=performance.now();movedRef.current=false;},[startInertia,autoRotate,startAutoRotate,isStatic]);// Touch-specific handlers for mobile optimization\nconst handleTouchStart=useCallback(event=>{if(isStatic||event.touches.length!==1)return;const touch=event.touches[0];const syntheticEvent={clientX:touch.clientX,clientY:touch.clientY,preventDefault:()=>event.preventDefault(),stopPropagation:()=>event.stopPropagation()};handleDragStart(syntheticEvent);},[handleDragStart,isStatic]);const handleTouchMove=useCallback(event=>{if(!draggingRef.current||!startPosRef.current||isStatic||event.touches.length!==1)return;event.preventDefault()// Prevent scrolling\n;const touch=event.touches[0];const currentTime=performance.now();const deltaTime=Math.max(1,currentTime-lastPointerPos.current.time);// Mobile-optimized velocity calculation with enhanced smoothing\nif(deltaTime>0){const deltaX=touch.clientX-lastPointerPos.current.x;const deltaY=touch.clientY-lastPointerPos.current.y;// Mobile-specific velocity scaling for smoother response\nconst timeScale=Math.min(deltaTime/16.67,1.5);const newVelX=deltaX/deltaTime*1e3/timeScale;const newVelY=deltaY/deltaTime*1e3/timeScale;// Enhanced smoothing for touch with momentum preservation\nconst smoothingFactor=Math.min(.9,Math.max(.4,deltaTime/40));velocityRef.current.x=velocityRef.current.x*smoothingFactor+newVelX*(1-smoothingFactor);velocityRef.current.y=velocityRef.current.y*smoothingFactor+newVelY*(1-smoothingFactor);}lastPointerPos.current={x:touch.clientX,y:touch.clientY,time:currentTime};const dxTotal=touch.clientX-startPosRef.current.x;const dyTotal=touch.clientY-startPosRef.current.y;if(!movedRef.current){const dist2=dxTotal*dxTotal+dyTotal*dyTotal;if(dist2>1)movedRef.current=true// Even more sensitive for touch\n;}// Mobile-optimized sensitivity for smoother swipes\nconst mobileSensitivity=dragSensitivity*.08// Reduced for mobile\n;const nextX=0;const nextY=wrapAngleSigned(startRotRef.current.y+dxTotal/mobileSensitivity);// Immediate transform for responsive touch feedback\nrotationRef.current={x:nextX,y:nextY};applyTransform(nextX,nextY);},[dragSensitivity,applyTransform,isStatic]);const handleTouchEnd=useCallback(event=>{if(!draggingRef.current||isStatic)return;draggingRef.current=false;// Mobile-optimized momentum with enhanced velocity preservation\nconst vx=clamp(velocityRef.current.x/1e3*8,-15,15)// Increased for mobile momentum\n;const vy=0;if(Math.abs(vx)>.015){// Lower threshold for mobile\nstartInertia(vx,vy);}else{if(autoRotate){setTimeout(()=>startAutoRotate(),30);}}if(movedRef.current)lastDragEndAt.current=performance.now();movedRef.current=false;},[startInertia,autoRotate,startAutoRotate,isStatic]);// Global pointer events\nuseEffect(()=>{if(isStatic)return;const handleGlobalPointerMove=e=>{if(draggingRef.current){e.preventDefault();handleDrag(e);}};const handleGlobalPointerUp=e=>{if(draggingRef.current){e.preventDefault();handleDragEnd(e);}};document.addEventListener(\"pointermove\",handleGlobalPointerMove,{passive:false});document.addEventListener(\"pointerup\",handleGlobalPointerUp,{passive:false});return()=>{document.removeEventListener(\"pointermove\",handleGlobalPointerMove);document.removeEventListener(\"pointerup\",handleGlobalPointerUp);};},[handleDrag,handleDragEnd,isStatic]);const onTileClick=useCallback(e=>{e.preventDefault();e.stopPropagation();if(draggingRef.current)return;if(performance.now()-lastDragEndAt.current<120)return;const src=e.currentTarget.getAttribute(\"data-src\");const alt=e.currentTarget.getAttribute(\"data-alt\")||\"Image\";if(src){startTransition(()=>{setPopupImage({src,alt});});}},[]);// Mouse enter/leave handlers for pause on hover\nconst handleMouseEnter=useCallback(()=>{isHovering.current=true;if(pauseOnHover&&autoRotate){stopAutoRotate();}},[pauseOnHover,autoRotate,stopAutoRotate]);const handleMouseLeave=useCallback(()=>{isHovering.current=false;if(pauseOnHover&&autoRotate&&!draggingRef.current){setTimeout(()=>startAutoRotate(),100);}},[pauseOnHover,autoRotate,startAutoRotate]);// Auto rotation effect\nuseEffect(()=>{if(autoRotate&&!isStatic){const timer=setTimeout(()=>{startAutoRotate();},100);return()=>{clearTimeout(timer);stopAutoRotate();};}else{stopAutoRotate();}},[autoRotate,startAutoRotate,stopAutoRotate,isStatic]);// Wheel event listener\nuseEffect(()=>{if(isStatic)return;const root=rootRef.current;if(!root)return;root.addEventListener(\"wheel\",handleWheel,{passive:false});return()=>{root.removeEventListener(\"wheel\",handleWheel);};},[handleWheel,isStatic]);// Cleanup\nuseEffect(()=>{return()=>{stopAutoRotate();};},[stopAutoRotate]);return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:\"sphere-root\",style:{position:\"relative\",width:\"100%\",height:\"100%\",backgroundColor:backgroundColor,\"--segments-x\":segments,\"--segments-y\":segments,\"--overlay-blur-color\":overlayBlurColor,\"--tile-radius\":`${imageBorderRadius}px`,\"--enlarge-radius\":`${openedImageBorderRadius}px`,\"--image-filter\":grayscale?\"grayscale(1)\":\"none\",\"--radius\":\"520px\",\"--viewer-pad\":\"72px\",\"--circ\":\"calc(var(--radius) * 3.14)\",\"--rot-y\":\"calc((360deg / var(--segments-x)) / 2)\",\"--rot-x\":\"calc((360deg / var(--segments-y)) / 2)\",\"--item-width\":\"calc(var(--circ) / var(--segments-x))\",\"--item-height\":\"calc(var(--circ) / var(--segments-y))\"},onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,children:[/*#__PURE__*/_jsxs(\"main\",{style:{position:\"absolute\",inset:0,display:\"grid\",placeItems:\"center\",overflow:\"hidden\",touchAction:\"none\",userSelect:\"none\",WebkitUserSelect:\"none\",WebkitTouchCallout:\"none\",WebkitTapHighlightColor:\"transparent\"},onPointerDown:handleDragStart,children:[/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"grid\",placeItems:\"center\",perspective:\"calc(var(--radius) * 2)\",perspectiveOrigin:\"50% 50%\",contain:\"layout paint size\"},children:/*#__PURE__*/_jsx(\"div\",{ref:sphereRef,style:{transform:\"translateZ(calc(var(--radius) * -1))\",willChange:\"transform\",transformStyle:\"preserve-3d\"},children:items.map((it,i)=>/*#__PURE__*/_jsx(\"div\",{style:{width:\"calc(var(--item-width) * var(--item-size-x))\",height:\"calc(var(--item-height) * var(--item-size-y))\",position:\"absolute\",top:\"-999px\",bottom:\"-999px\",left:\"-999px\",right:\"-999px\",margin:\"auto\",transformOrigin:\"50% 50%\",backfaceVisibility:\"hidden\",transition:\"transform 300ms\",transform:`rotateY(calc(var(--rot-y) * (var(--offset-x) + ((var(--item-size-x) - 1) / 2)) + var(--rot-y-delta, 0deg))) rotateX(calc(var(--rot-x) * (var(--offset-y) - ((var(--item-size-y) - 1) / 2)) + var(--rot-x-delta, 0deg))) translateZ(var(--radius))`,transformStyle:\"preserve-3d\",\"--offset-x\":it.x,\"--offset-y\":it.y,\"--item-size-x\":it.sizeX,\"--item-size-y\":it.sizeY},\"data-src\":it.src,\"data-alt\":it.alt,children:/*#__PURE__*/_jsx(\"div\",{role:\"button\",tabIndex:0,\"aria-label\":it.alt||\"Open image\",style:{position:\"absolute\",display:\"block\",inset:\"10px\",borderRadius:\"var(--tile-radius, 12px)\",background:\"transparent\",overflow:\"hidden\",backfaceVisibility:\"hidden\",transition:\"transform 300ms ease, box-shadow 300ms ease\",cursor:\"pointer\",WebkitTapHighlightColor:\"transparent\",touchAction:\"manipulation\",pointerEvents:\"auto\",WebkitTransform:\"translateZ(0)\",transform:\"translateZ(0)\",transformStyle:\"preserve-3d\"},onClick:onTileClick,onKeyDown:e=>{if(e.key===\"Enter\"||e.key===\" \"){onTileClick(e);}},onMouseEnter:e=>{e.currentTarget.style.transform=\"translateZ(0) scale(1.05)\";e.currentTarget.style.boxShadow=\"0 8px 25px rgba(255, 255, 255, 0.15), 0 0 20px rgba(255, 255, 255, 0.1)\";},onMouseLeave:e=>{e.currentTarget.style.transform=\"translateZ(0) scale(1)\";e.currentTarget.style.boxShadow=\"none\";},children:/*#__PURE__*/_jsx(\"img\",{src:it.src,draggable:false,alt:it.alt,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",pointerEvents:\"none\",backfaceVisibility:\"hidden\",filter:grayscale?\"grayscale(1)\":\"none\",transition:\"filter 0.3s ease\"},onMouseEnter:e=>{if(grayscale){e.currentTarget.style.filter=\"grayscale(0)\";}},onMouseLeave:e=>{if(grayscale){e.currentTarget.style.filter=\"grayscale(1)\";}}})})},`${it.x},${it.y},${i}`))})}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,margin:\"auto\",zIndex:3,pointerEvents:\"none\",backgroundImage:\"radial-gradient(rgba(235, 235, 235, 0) 65%, var(--overlay-blur-color, #060010) 100%)\"}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,margin:\"auto\",zIndex:3,pointerEvents:\"none\",WebkitMaskImage:\"radial-gradient(rgba(235, 235, 235, 0) 70%, var(--overlay-blur-color, #060010) 90%)\",maskImage:\"radial-gradient(rgba(235, 235, 235, 0) 70%, var(--overlay-blur-color, #060010) 90%)\",backdropFilter:\"blur(3px)\"}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:0,right:0,top:0,height:\"120px\",zIndex:5,pointerEvents:\"none\",background:\"linear-gradient(to bottom, transparent, var(--overlay-blur-color, #060010))\",transform:\"rotate(180deg)\"}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:0,right:0,bottom:0,height:\"120px\",zIndex:5,pointerEvents:\"none\",background:\"linear-gradient(to bottom, transparent, var(--overlay-blur-color, #060010))\"}})]}),popupImage&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",top:0,left:0,width:\"100vw\",height:\"100vh\",backgroundColor:\"rgba(0, 0, 0, 0.9)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",zIndex:1e3,backdropFilter:\"blur(10px)\",cursor:\"pointer\"},onClick:closeOverlay,onKeyDown:e=>{if(e.key===\"Escape\"){closeOverlay();}},tabIndex:0,role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"Image popup\",children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",maxWidth:\"90vw\",maxHeight:\"90vh\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\"},onClick:e=>e.stopPropagation(),children:[/*#__PURE__*/_jsx(\"img\",{src:popupImage.src,alt:popupImage.alt,style:{width:\"200px\",height:\"200px\",objectFit:\"contain\",borderRadius:`${openedImageBorderRadius}px`,boxShadow:\"0 20px 60px rgba(0, 0, 0, 0.5)\"}}),/*#__PURE__*/_jsx(\"button\",{style:{position:\"absolute\",top:\"-20px\",right:\"-20px\",width:\"40px\",height:\"40px\",borderRadius:\"50%\",backgroundColor:\"rgba(255, 255, 255, 0.9)\",border:\"none\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontSize:\"20px\",fontWeight:\"bold\",color:\"#000\",boxShadow:\"0 4px 12px rgba(0, 0, 0, 0.3)\",transition:\"all 0.2s ease\"},onClick:closeOverlay,onMouseEnter:e=>{e.currentTarget.style.backgroundColor=\"rgba(255, 255, 255, 1)\";e.currentTarget.style.transform=\"scale(1.1)\";},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=\"rgba(255, 255, 255, 0.9)\";e.currentTarget.style.transform=\"scale(1)\";},\"aria-label\":\"Close popup\",children:\"\\xd7\"})]})})]});}addPropertyControls(DomeGallery,{images:{type:ControlType.Array,title:\"Images\",description:\"Collection of images to display in the 3D dome gallery\",control:{type:ControlType.ResponsiveImage},defaultValue:[{src:\"https://framerusercontent.com/images/J8QhlhOj1wL9jbrHFp4mvdyq0.jpg?scale-down-to=1024&width=1200&height=1500\",alt:\"Image 1\"},{src:\"https://framerusercontent.com/images/G6oskLkUJEoXkWV0ruLSfN6ZU.jpg?scale-down-to=1024&width=1200&height=1500\",alt:\"Image 2\"},{src:\"https://framerusercontent.com/images/Br1zvE2uv9ZuvQEa0Mblqun31eI.jpg?width=600&height=750\",alt:\"Image 3\"},{src:\"https://framerusercontent.com/images/TnmSaZlZ8MkXAYxiL7IrMWjFKvo.jpg?scale-down-to=1024&width=1200&height=1500\",alt:\"Image 4\"},{src:\"https://framerusercontent.com/images/2yJBE5GY3PtHom3ezGzIgNwnXA.jpg?width=600&height=750\",alt:\"Image 5\"},{src:\"https://framerusercontent.com/images/nPIYoqszWK2xBJLOZp3sV6lbEk.jpg?width=600&height=750\",alt:\"Image 6\"},{src:\"https://framerusercontent.com/images/AN5LGaWDB4MXJEUqjA0FcrFnGSY.jpg?width=600&height=750\",alt:\"Image 7\"},{src:\"https://framerusercontent.com/images/OzXJvWjZUWpbzdfAwPFseahugI.jpg?scale-down-to=1024&width=1200&height=1500\",alt:\"Image 8\"},{src:\"https://framerusercontent.com/images/vvQyqFjSQweZh9lqMhSZaN9mPLU.jpg?width=600&height=750\",alt:\"Image 9\"},{src:\"https://framerusercontent.com/images/RS2foZEUmMoXueDdLWBlEA1UHQ.jpeg?scale-down-to=1024&width=1066&height=1600\",alt:\"Image 10\"},{src:\"https://framerusercontent.com/images/SsZiCFtzKQZiyUUF8hzyEzCUpU.jpg?scale-down-to=512&width=1080&height=1049\",alt:\"Image 11\"},{src:\"https://framerusercontent.com/images/RS2foZEUmMoXueDdLWBlEA1UHQ.jpeg?scale-down-to=1024&width=1066&height=1600\",alt:\"Image 12\"},{src:\"https://framerusercontent.com/images/OzXJvWjZUWpbzdfAwPFseahugI.jpg?scale-down-to=1024&width=1200&height=1500\",alt:\"Image 13\"},{src:\"https://framerusercontent.com/images/TnmSaZlZ8MkXAYxiL7IrMWjFKvo.jpg?scale-down-to=1024&width=1200&height=1500\",alt:\"Image 14\"}],maxCount:50},segments:{type:ControlType.Number,title:\"Segments\",description:\"Number of segments around the dome circumference\",defaultValue:45,min:10,max:50,step:1},fit:{type:ControlType.Number,title:\"Fit\",description:\"Scale factor for the dome size relative to container\",defaultValue:.5,min:.1,max:1,step:.1},fitBasis:{type:ControlType.Enum,title:\"Fit Basis\",description:\"Which dimension to use for calculating dome size\",options:[\"auto\",\"min\",\"max\",\"width\",\"height\"],optionTitles:[\"Auto\",\"Min\",\"Max\",\"Width\",\"Height\"],defaultValue:\"auto\"},minRadius:{type:ControlType.Number,title:\"Min Radius\",description:\"Minimum allowed radius for the dome in pixels\",defaultValue:600,min:200,max:1e3,step:50,unit:\"px\"},maxRadius:{type:ControlType.Number,title:\"Max Radius\",description:\"Maximum allowed radius for the dome in pixels\",defaultValue:1200,min:800,max:2e3,step:100,unit:\"px\"},padFactor:{type:ControlType.Number,title:\"Pad Factor\",description:\"Padding around the dome as a factor of container size\",defaultValue:.25,min:.1,max:.5,step:.05},maxVerticalRotationDeg:{type:ControlType.Number,title:\"Max Vertical Rotation\",description:\"Maximum vertical rotation angle in degrees\",defaultValue:5,min:0,max:45,step:5,unit:\"deg\"},dragSensitivity:{type:ControlType.Number,title:\"Drag Sensitivity\",description:\"How responsive the dome is to drag interactions\",defaultValue:20,min:5,max:50,step:5},dragDampening:{type:ControlType.Number,title:\"Drag Dampening\",description:\"How quickly the dome stops spinning after drag release\",defaultValue:2,min:.5,max:5,step:.5},autoRotate:{type:ControlType.Boolean,title:\"Auto Rotate\",description:\"Enable automatic continuous rotation of the dome\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},autoRotateSpeed:{type:ControlType.Number,title:\"Rotation Speed\",description:\"Speed of automatic rotation\",defaultValue:1,min:.1,max:5,step:.1,hidden:({autoRotate})=>!autoRotate},autoRotateDirection:{type:ControlType.Enum,title:\"Rotation Direction\",description:\"Direction of automatic rotation\",options:[\"clockwise\",\"counterclockwise\"],optionTitles:[\"Clockwise\",\"Counter-clockwise\"],defaultValue:\"clockwise\",displaySegmentedControl:true,hidden:({autoRotate})=>!autoRotate},pauseOnHover:{type:ControlType.Boolean,title:\"Pause on Hover\",description:\"Pause automatic rotation when mouse hovers over dome\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:({autoRotate})=>!autoRotate},grayscale:{type:ControlType.Boolean,title:\"Grayscale\",description:\"Apply grayscale filter to images (color on hover)\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},backgroundColor:{type:ControlType.Color,title:\"Background Color\",description:\"Background color of the dome container\",defaultValue:\"#000000\"},overlayBlurColor:{type:ControlType.Color,title:\"Overlay Color\",description:\"Color of the radial overlay that fades the edges\",defaultValue:\"#060010\"},imageBorderRadius:{type:ControlType.Number,title:\"Image Border Radius\",description:\"Border radius for individual image tiles\",defaultValue:12,min:0,max:32,step:1,unit:\"px\"},openedImageBorderRadius:{type:ControlType.Number,title:\"Opened Image Border Radius\",description:\"Border radius for images when opened in popup\",defaultValue:16,min:0,max:32,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DomeGallery\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"600\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"400\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DomeGallery.map"],"mappings":"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"}