{"version":3,"file":"ThreeDInfiniteGallery.Cm9q_sB5.mjs","names":["useRef","useState","React","useCallback"],"sources":["https:/framerusercontent.com/modules/MUhkThke7VQaWpyjzj2g/lGTkMkcGiaiBbfgVozXu/ThreeDInfiniteGallery.js"],"sourcesContent":["// 3D Infinite Gallery with image and video support, URL and upload options\nimport{jsx as _jsx}from\"react/jsx-runtime\";import React,{useRef,useState,useEffect,useCallback,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";function computePinnedOffset(prevSize,nextSize,pivot,prevOffset){const worldX=(pivot.x-prevOffset.x)/prevSize;const worldY=(pivot.y-prevOffset.y)/prevSize;return{x:pivot.x-worldX*nextSize,y:pivot.y-worldY*nextSize};}function toRadians(deg){return deg*Math.PI/180;}function calcArcTransform(opts){const{cellCenterX,cellCenterY,viewportW,viewportH,arcAxis,arcMaxAngleDeg,arcAmount}=opts;const maxAngle=toRadians(arcMaxAngleDeg)*Math.max(0,Math.min(1,arcAmount));if(maxAngle===0)return{z:0,yawDeg:0,pitchDeg:0,edgeFactor:0};if(arcAxis===\"horizontal\"){const dx=(cellCenterX-viewportW/2)/(viewportW/2);const angle=dx*maxAngle;const radius=viewportW/(2*Math.sin(Math.max(.001,maxAngle)));const z=-radius*(Math.cos(angle)-1);const yawDeg=-(angle*180)/Math.PI;const edgeFactor=Math.min(1,Math.abs(dx));return{z,yawDeg,pitchDeg:0,edgeFactor};}else{const dy=(cellCenterY-viewportH/2)/(viewportH/2);const angle=dy*maxAngle;const radius=viewportH/(2*Math.sin(Math.max(.001,maxAngle)));const z=-radius*(Math.cos(angle)-1);const pitchDeg=angle*180/Math.PI;const edgeFactor=Math.min(1,Math.abs(dy));return{z,yawDeg:0,pitchDeg,edgeFactor};}}/**\n * 3D Infinite Gallery\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function ThreeDInfiniteGallery(props){const{items=[{mediaType:\"image\",image:{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Motion Study\"},videoSource:\"upload\",videoFile:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",videoUrl:\"\"},{mediaType:\"image\",image:{src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Idle Form\"},videoSource:\"upload\",videoFile:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",videoUrl:\"\"},{mediaType:\"image\",image:{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Blur Signal\"},videoSource:\"upload\",videoFile:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",videoUrl:\"\"},{mediaType:\"image\",image:{src:\"https://framerusercontent.com/images/2uTNEj5aTl2K3NJaEFWMbnrA.jpg\",alt:\"Still Drift\"},videoSource:\"upload\",videoFile:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",videoUrl:\"\"},{mediaType:\"image\",image:{src:\"https://framerusercontent.com/images/f9RiWoNpmlCMqVRIHz8l8wYfeI.jpg\",alt:\"Tidewalk\"},videoSource:\"upload\",videoFile:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",videoUrl:\"\"}],cellSize=200,backgroundColor=\"#000000\",borderColor=\"#FFFFFF\",cellPadding=10,gap=12,hoverColor=\"#FF5588\",zoomValue=.7,border={width:1,style:\"solid\",color:\"#FFFFFF\",showTop:false,showBottom:true,showLeft:true,showRight:true},arc={amount:.6,maxAngleDeg:28,axis:\"horizontal\",edgeFade:.25},parallax={enabled:true,strength:.1,ease:.12,whileDragging:false},throw:throwSettings={enabled:true,friction:.92,velocityScale:1,minSpeed:80,maxSpeed:2500}}=props;const containerRef=useRef(null);const[offset,setOffset]=useState({x:0,y:0});const[targetOffset,setTargetOffset]=useState({x:0,y:0});const[isDragging,setIsDragging]=useState(false);const[currentCellSize,setCurrentCellSize]=useState(cellSize);const[mouseOffset,setMouseOffset]=useState({x:0,y:0});const[targetMouseOffset,setTargetMouseOffset]=useState({x:0,y:0});const[targetCellSize,setTargetCellSize]=useState(cellSize);const[inertiaState,setInertia]=React.useState({x:0,y:0});const[hoveredCell,setHoveredCell]=useState(null);const inertiaRef=React.useRef(inertiaState);React.useEffect(()=>{inertiaRef.current=inertiaState;},[inertiaState]);const velocityRef=React.useRef({x:0,y:0});const lastMoveRef=React.useRef({x:0,y:0,t:0});const inertiaActiveRef=React.useRef(false);const pointerIdRef=React.useRef(null);const isPressingRef=React.useRef(false);const draggingRef=React.useRef(false);React.useEffect(()=>{draggingRef.current=isDragging;},[isDragging]);const offsetRef=React.useRef(offset);React.useEffect(()=>{offsetRef.current=offset;},[offset]);const targetOffsetRef=React.useRef(targetOffset);React.useEffect(()=>{targetOffsetRef.current=targetOffset;},[targetOffset]);const mouseOffsetRef=React.useRef(mouseOffset);React.useEffect(()=>{mouseOffsetRef.current=mouseOffset;},[mouseOffset]);const targetMouseOffsetRef=React.useRef(targetMouseOffset);React.useEffect(()=>{targetMouseOffsetRef.current=targetMouseOffset;},[targetMouseOffset]);const pressPosRef=React.useRef({x:0,y:0});const startOffsetRef=React.useRef({x:0,y:0});const pressTimerRef=React.useRef(null);const lastTimeRef=React.useRef(performance.now());const DRAG_THRESHOLD=4;const PRESS_ZOOM_DELAY=120;const clamp=(v,min,max)=>Math.max(min,Math.min(max,v));const commitInertiaToBase=React.useCallback(()=>{const currentOffset=offsetRef.current;const currentInertia=inertiaRef.current||{x:0,y:0};const committed={x:currentOffset.x+currentInertia.x,y:currentOffset.y+currentInertia.y};setOffset(committed);setTargetOffset(committed);setInertia({x:0,y:0});if(inertiaActiveRef)inertiaActiveRef.current=false;},[]);const[viewport,setViewport]=useState({w:0,h:0});useEffect(()=>{const el=containerRef.current;if(!el)return;const ro=new ResizeObserver(([entry])=>{const cr=entry.contentRect;setViewport({w:cr.width,h:cr.height});});ro.observe(el);return()=>ro.disconnect();},[]);useEffect(()=>{let raf=0;const tick=()=>{const now=performance.now();const dt=Math.min(.05,(now-lastTimeRef.current)/1e3);lastTimeRef.current=now;let needsUpdate=false;// Batch state updates\nsetCurrentCellSize(prev=>{const next=prev+(targetCellSize-prev)*.18;if(Math.abs(next-targetCellSize)<.05)return targetCellSize;needsUpdate=true;return next;});if(!draggingRef.current){setOffset(prev=>{const tx=targetOffsetRef.current.x;const ty=targetOffsetRef.current.y;const nx=prev.x+(tx-prev.x)*.18;const ny=prev.y+(ty-prev.y)*.18;if(Math.abs(nx-tx)<.1&&Math.abs(ny-ty)<.1){return{x:tx,y:ty};}needsUpdate=true;return{x:nx,y:ny};});}if(throwSettings.enabled&&inertiaActiveRef.current){const f=Math.pow(throwSettings.friction,dt*60);velocityRef.current.x*=f;velocityRef.current.y*=f;const speed=Math.hypot(velocityRef.current.x,velocityRef.current.y);if(speed<1){const direction=Math.atan2(velocityRef.current.y,velocityRef.current.x);velocityRef.current.x=Math.cos(direction)*1e-4;velocityRef.current.y=Math.sin(direction)*1e-4;}setInertia(prev=>{const newX=prev.x+velocityRef.current.x*dt;const newY=prev.y+velocityRef.current.y*dt;if(Math.abs(newX-prev.x)>.01||Math.abs(newY-prev.y)>.01){needsUpdate=true;return{x:newX,y:newY};}return prev;});}if(parallax.enabled&&(parallax.whileDragging||!draggingRef.current)){setMouseOffset(prev=>{const tx=targetMouseOffsetRef.current.x;const ty=targetMouseOffsetRef.current.y;const nx=prev.x+(tx-prev.x)*parallax.ease;const ny=prev.y+(ty-prev.y)*parallax.ease;if(Math.abs(nx-tx)<.1&&Math.abs(ny-ty)<.1){return{x:tx,y:ty};}needsUpdate=true;return{x:nx,y:ny};});}else{setMouseOffset(prev=>{const nx=prev.x+(0-prev.x)*parallax.ease;const ny=prev.y+(0-prev.y)*parallax.ease;if(Math.abs(nx)<.1&&Math.abs(ny)<.1){return{x:0,y:0};}needsUpdate=true;return{x:nx,y:ny};});}// Only request next frame if something is animating\nif(needsUpdate||draggingRef.current||inertiaActiveRef.current){raf=requestAnimationFrame(tick);}else{raf=requestAnimationFrame(tick);}};raf=requestAnimationFrame(tick);return()=>cancelAnimationFrame(raf);},[throwSettings.enabled,throwSettings.friction,targetCellSize,parallax.enabled,parallax.whileDragging,parallax.ease]);useEffect(()=>{const rect=containerRef.current?.getBoundingClientRect();const pivot=rect?{x:rect.width/2,y:rect.height/2}:{x:0,y:0};const visibleOffset={x:offsetRef.current.x+(inertiaRef.current?.x||0),y:offsetRef.current.y+(inertiaRef.current?.y||0)};const newTargetOffset=computePinnedOffset(currentCellSize,cellSize,pivot,visibleOffset);setTargetCellSize(cellSize);setTargetOffset(newTargetOffset);},[cellSize]);const handlePointerDown=useCallback(e=>{if(inertiaActiveRef?.current||(inertiaRef.current?.x||0)!==0||(inertiaRef.current?.y||0)!==0){commitInertiaToBase();}pointerIdRef.current=e.pointerId;e.currentTarget.setPointerCapture(e.pointerId);isPressingRef.current=true;setIsDragging(false);lastMoveRef.current={x:e.clientX,y:e.clientY,t:performance.now()};velocityRef.current={x:0,y:0};pressPosRef.current={x:e.clientX,y:e.clientY};startOffsetRef.current=offsetRef.current;if(pressTimerRef.current)window.clearTimeout(pressTimerRef.current);pressTimerRef.current=window.setTimeout(()=>{if(!draggingRef.current&&isPressingRef.current){const rect=containerRef.current?.getBoundingClientRect();const pivot=rect?{x:rect.width/2,y:rect.height/2}:{x:0,y:0};const newSize=cellSize*props.zoomValue;const visibleOffset={x:offsetRef.current.x+(inertiaRef.current?.x||0),y:offsetRef.current.y+(inertiaRef.current?.y||0)};const pinned=computePinnedOffset(currentCellSize,newSize,pivot,visibleOffset);setTargetCellSize(newSize);setTargetOffset(pinned);}},PRESS_ZOOM_DELAY);},[cellSize,props.zoomValue,currentCellSize,commitInertiaToBase]);const handlePointerMove=useCallback(e=>{if(isPressingRef.current){const now=performance.now();const dt=Math.max(.001,(now-lastMoveRef.current.t)/1e3);const dx=e.clientX-lastMoveRef.current.x;const dy=e.clientY-lastMoveRef.current.y;const vx=clamp(dx/dt*throwSettings.velocityScale,-throwSettings.maxSpeed,throwSettings.maxSpeed);const vy=clamp(dy/dt*throwSettings.velocityScale,-throwSettings.maxSpeed,throwSettings.maxSpeed);velocityRef.current.x=vx*.6+velocityRef.current.x*.4;velocityRef.current.y=vy*.6+velocityRef.current.y*.4;lastMoveRef.current={x:e.clientX,y:e.clientY,t:now};}const suppressParallax=isPressingRef.current||isDragging;if(parallax.enabled&&(parallax.whileDragging||!draggingRef.current)&&containerRef.current&&!suppressParallax){const rect=containerRef.current.getBoundingClientRect();const mouseX=e.clientX-rect.left;const mouseY=e.clientY-rect.top;const centerX=rect.width/2;const centerY=rect.height/2;const reverseX=(centerX-mouseX)*parallax.strength;const reverseY=(centerY-mouseY)*parallax.strength;setTargetMouseOffset({x:reverseX,y:reverseY});}if(!isPressingRef.current)return;const dx=e.clientX-pressPosRef.current.x;const dy=e.clientY-pressPosRef.current.y;if(!isDragging&&Math.hypot(dx,dy)>DRAG_THRESHOLD){setIsDragging(true);draggingRef.current=true;startOffsetRef.current=offsetRef.current;setHoveredCell(null)// Clear hover when dragging starts\n;}if(draggingRef.current){const nx=startOffsetRef.current.x+dx;const ny=startOffsetRef.current.y+dy;startTransition(()=>{setOffset({x:nx,y:ny});setTargetOffset({x:nx,y:ny});});}},[isDragging,parallax.enabled,parallax.whileDragging,parallax.strength,throwSettings.velocityScale,throwSettings.maxSpeed]);const handlePointerUp=useCallback(()=>{isPressingRef.current=false;if(pressTimerRef.current){window.clearTimeout(pressTimerRef.current);pressTimerRef.current=null;}const speed=Math.hypot(velocityRef.current.x,velocityRef.current.y);if(throwSettings.enabled&&speed>=throwSettings.minSpeed){inertiaActiveRef.current=true;}else{inertiaActiveRef.current=false;setInertia({x:0,y:0});}setIsDragging(false);draggingRef.current=false;const rect=containerRef.current?.getBoundingClientRect();const pivot=rect?{x:rect.width/2,y:rect.height/2}:{x:0,y:0};const visibleOffset={x:offsetRef.current.x+(inertiaRef.current?.x||0),y:offsetRef.current.y+(inertiaRef.current?.y||0)};const pinnedBack=computePinnedOffset(currentCellSize,cellSize,pivot,visibleOffset);setTargetMouseOffset({x:0,y:0});startTransition(()=>{setTargetCellSize(cellSize);setTargetOffset(pinnedBack);});},[cellSize,currentCellSize,throwSettings.enabled,throwSettings.minSpeed]);const handlePointerLeave=useCallback(()=>{setTargetMouseOffset({x:0,y:0});},[]);// Optimized grid rendering with culling\nconst gridCells=React.useMemo(()=>{const cells=[];const gridSize=12// Reduced from 20 for better performance\n;const cellWithGap=currentCellSize;const startX=Math.floor(-offset.x/cellWithGap)-3;const startY=Math.floor(-offset.y/cellWithGap)-3;// Visible bounds with padding\nconst visibleLeft=-100;const visibleRight=viewport.w+100;const visibleTop=-100;const visibleBottom=viewport.h+100;for(let y=startY;y<startY+gridSize;y++){for(let x=startX;x<startX+gridSize;x++){const itemIndex=Math.abs((x+y*3)%items.length);const item=items[itemIndex];const tileLeft=x*cellWithGap+offset.x+mouseOffset.x+inertiaState.x;const tileTop=y*cellWithGap+offset.y+mouseOffset.y+inertiaState.y;const tileW=currentCellSize;const tileH=currentCellSize;// Cull cells outside viewport\nif(tileLeft+tileW<visibleLeft||tileLeft>visibleRight||tileTop+tileH<visibleTop||tileTop>visibleBottom){continue;}const cellCenterX=tileLeft+tileW/2;const cellCenterY=tileTop+tileH/2;const{z,yawDeg,pitchDeg,edgeFactor}=calcArcTransform({cellCenterX,cellCenterY,viewportW:viewport.w||1,viewportH:viewport.h||1,arcAxis:arc.axis,arcMaxAngleDeg:arc.maxAngleDeg,arcAmount:arc.amount});const scale=1-arc.edgeFade*(edgeFactor*edgeFactor);const opacity=1-.4*(edgeFactor*arc.amount);const isVideo=item?.mediaType===\"video\";const videoSrc=isVideo?item?.videoSource===\"url\"?item?.videoUrl||\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\":item?.videoFile||\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\":\"\";cells.push(/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:tileLeft,top:tileTop,width:tileW,height:tileH,borderTop:border.showTop?`${border.width}px ${border.style} ${border.color}`:\"none\",borderLeft:border.showLeft?`${border.width}px ${border.style} ${border.color}`:\"none\",borderRight:border.showRight?`${border.width}px ${border.style} ${border.color}`:\"none\",borderBottom:border.showBottom?`${border.width}px ${border.style} ${border.color}`:\"none\",backgroundColor:hoveredCell===`${x}-${y}`&&!isDragging?hoverColor:\"rgba(0, 0, 0, 0.1)\",cursor:\"pointer\",display:\"flex\",flexDirection:\"column\",padding:`${cellPadding}px`,boxSizing:\"border-box\",transformStyle:\"preserve-3d\",transform:`translate3d(0, 0, ${z.toFixed(2)}px) rotateY(${yawDeg.toFixed(2)}deg) rotateX(${pitchDeg.toFixed(2)}deg) scale(${scale.toFixed(3)})`,opacity:opacity.toFixed(3),willChange:isDragging?\"transform\":\"auto\",transition:\"background-color 0.2s ease\",pointerEvents:isDragging?\"none\":\"auto\"},onPointerEnter:()=>{if(!isDragging&&!isPressingRef.current){setHoveredCell(`${x}-${y}`);}},onPointerLeave:()=>{if(!isDragging){setHoveredCell(null);}},children:isVideo?/*#__PURE__*/_jsx(\"video\",{src:videoSrc,style:{flex:1,width:\"100%\",height:\"100%\",objectFit:\"cover\",marginBottom:`${gap}px`,borderRadius:\"4px\"},autoPlay:true,loop:true,muted:true,playsInline:true,preload:\"metadata\"}):/*#__PURE__*/_jsx(\"div\",{style:{flex:1,backgroundImage:`url(${item?.image?.src||\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\"})`,backgroundSize:\"cover\",backgroundPosition:\"center\",marginBottom:`${gap}px`,borderRadius:\"4px\"}})},`${x}-${y}`));}}return cells;},[currentCellSize,offset.x,offset.y,mouseOffset.x,mouseOffset.y,inertiaState.x,inertiaState.y,viewport.w,viewport.h,items,border,cellPadding,gap,arc.axis,arc.maxAngleDeg,arc.amount,arc.edgeFade,isDragging,hoverColor]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",backgroundColor,position:\"relative\",overflow:\"hidden\",touchAction:\"none\",cursor:isDragging?\"grabbing\":\"grab\",userSelect:\"none\",perspective:\"1000px\",transformStyle:\"preserve-3d\"},onPointerDown:handlePointerDown,onPointerMove:handlePointerMove,onPointerUp:handlePointerUp,onPointerCancel:handlePointerUp,onPointerLeave:handlePointerLeave,children:gridCells});}addPropertyControls(ThreeDInfiniteGallery,{items:{type:ControlType.Array,title:\"Items\",description:\"Gallery items with images or videos\",control:{type:ControlType.Object,controls:{mediaType:{type:ControlType.Enum,title:\"Media Type\",description:\"Choose between image or video content\",options:[\"image\",\"video\"],optionTitles:[\"Image\",\"Video\"],defaultValue:\"image\",displaySegmentedControl:true},image:{type:ControlType.ResponsiveImage,title:\"Image\",description:\"Upload or select an image\",hidden:({mediaType})=>mediaType===\"video\"},videoSource:{type:ControlType.Enum,title:\"Video Source\",description:\"Upload a video file or provide a URL\",options:[\"upload\",\"url\"],optionTitles:[\"Upload\",\"URL\"],defaultValue:\"upload\",displaySegmentedControl:true,hidden:({mediaType})=>mediaType!==\"video\"},videoFile:{type:ControlType.File,title:\"Video File\",description:\"Upload a video file (MP4, WebM, or MOV)\",allowedFileTypes:[\"mp4\",\"webm\",\"mov\"],hidden:({mediaType,videoSource})=>mediaType!==\"video\"||videoSource!==\"upload\"},videoUrl:{type:ControlType.String,title:\"Video URL\",description:\"Enter a direct URL to a video file\",defaultValue:\"\",placeholder:\"https://example.com/video.mp4\",hidden:({mediaType,videoSource})=>mediaType!==\"video\"||videoSource!==\"url\"}}},defaultValue:[{mediaType:\"image\",image:{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Motion Study\"},videoSource:\"upload\",videoFile:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",videoUrl:\"\"},{mediaType:\"image\",image:{src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Idle Form\"},videoSource:\"upload\",videoFile:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",videoUrl:\"\"},{mediaType:\"image\",image:{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Blur Signal\"},videoSource:\"upload\",videoFile:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",videoUrl:\"\"},{mediaType:\"image\",image:{src:\"https://framerusercontent.com/images/2uTNEj5aTl2K3NJaEFWMbnrA.jpg\",alt:\"Still Drift\"},videoSource:\"upload\",videoFile:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",videoUrl:\"\"},{mediaType:\"image\",image:{src:\"https://framerusercontent.com/images/f9RiWoNpmlCMqVRIHz8l8wYfeI.jpg\",alt:\"Tidewalk\"},videoSource:\"upload\",videoFile:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",videoUrl:\"\"}]},cellSize:{type:ControlType.Number,title:\"Cell Size\",description:\"Size of each gallery cell in pixels\",min:100,max:400,step:10,defaultValue:200,unit:\"px\"},gap:{type:ControlType.Number,title:\"Image Gap\",description:\"Space between media and cell border\",min:0,max:50,step:1,defaultValue:12,unit:\"px\"},backgroundColor:{type:ControlType.Color,title:\"Background\",description:\"Background color of the gallery\",defaultValue:\"#000000\"},border:{type:ControlType.Object,title:\"Border\",description:\"Cell border styling options\",controls:{width:{type:ControlType.Number,title:\"Width\",description:\"Border thickness in pixels\",min:0,max:10,step:1,defaultValue:1,unit:\"px\"},style:{type:ControlType.Enum,title:\"Style\",description:\"Border line style\",options:[\"solid\",\"dashed\",\"dotted\",\"double\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\",\"Double\"],defaultValue:\"solid\"},color:{type:ControlType.Color,title:\"Color\",description:\"Border color\",defaultValue:\"#FFFFFF\"},showTop:{type:ControlType.Boolean,title:\"Show Top\",description:\"Display top border\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showBottom:{type:ControlType.Boolean,title:\"Show Bottom\",description:\"Display bottom border\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showLeft:{type:ControlType.Boolean,title:\"Show Left\",description:\"Display left border\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showRight:{type:ControlType.Boolean,title:\"Show Right\",description:\"Display right border\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"}},defaultValue:{width:1,style:\"solid\",color:\"#FFFFFF\",showTop:false,showBottom:true,showLeft:true,showRight:true}},cellPadding:{type:ControlType.Number,title:\"Cell Padding\",description:\"Inner padding of each cell\",min:0,max:50,step:1,defaultValue:10,unit:\"px\"},zoomValue:{type:ControlType.Number,title:\"Zoom Value\",description:\"Zoom level when holding down (1.0 = no zoom)\",min:.1,max:1,step:.05,defaultValue:.7,unit:\"\"},hoverColor:{type:ControlType.Color,title:\"Hover Color\",description:\"Cell background color on hover\",defaultValue:\"#FF5588\"},arc:{type:ControlType.Object,title:\"Arc\",description:\"3D arc/curve effect settings\",controls:{amount:{type:ControlType.Number,title:\"Amount\",description:\"Intensity of the arc effect (0 = flat, 1 = maximum curve)\",min:0,max:1,step:.01,defaultValue:.6},maxAngleDeg:{type:ControlType.Number,title:\"Max Angle\",description:\"Maximum rotation angle at the edges in degrees\",min:0,max:60,step:1,defaultValue:28},axis:{type:ControlType.Enum,title:\"Axis\",description:\"Direction of the arc curve\",options:[\"horizontal\",\"vertical\"],optionTitles:[\"Horizontal\",\"Vertical\"],defaultValue:\"horizontal\"},edgeFade:{type:ControlType.Number,title:\"Edge Fade\",description:\"Fade and scale reduction at edges (0 = none, 1 = maximum)\",min:0,max:1,step:.01,defaultValue:.25}},defaultValue:{amount:.6,maxAngleDeg:28,axis:\"horizontal\",edgeFade:.25}},parallax:{type:ControlType.Object,title:\"Parallax\",description:\"Mouse-based parallax movement settings\",controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",description:\"Enable parallax effect on mouse movement\",defaultValue:true},strength:{type:ControlType.Number,title:\"Strength\",description:\"How much the gallery moves with mouse (higher = more movement)\",min:0,max:.5,step:.01,defaultValue:.1},ease:{type:ControlType.Number,title:\"Ease\",description:\"Smoothness of parallax movement (lower = smoother)\",min:.01,max:.5,step:.01,defaultValue:.12},whileDragging:{type:ControlType.Boolean,title:\"While Drag\",description:\"Keep parallax active while dragging\",defaultValue:false}},defaultValue:{enabled:true,strength:.1,ease:.12,whileDragging:false}},throw:{type:ControlType.Object,title:\"Throw/Inertia\",description:\"Momentum and throw behavior settings\",controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",description:\"Enable momentum after releasing drag\",defaultValue:true},friction:{type:ControlType.Number,title:\"Friction\",description:\"How quickly momentum slows down (higher = slower decay)\",min:.85,max:.99,step:.001,defaultValue:.92},velocityScale:{type:ControlType.Number,title:\"Velocity Scale\",description:\"Multiplier for throw velocity (higher = faster throws)\",min:.5,max:2,step:.05,defaultValue:1},minSpeed:{type:ControlType.Number,title:\"Min Speed (px/s)\",description:\"Minimum speed to trigger momentum\",min:0,max:500,step:10,defaultValue:80},maxSpeed:{type:ControlType.Number,title:\"Max Speed (px/s)\",description:\"Maximum allowed throw speed\",min:500,max:6e3,step:100,defaultValue:2500}},defaultValue:{enabled:true,friction:.92,velocityScale:1,minSpeed:80,maxSpeed:2500}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ThreeDInfiniteGallery\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ThreeDInfiniteGallery.map"],"mappings":"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"}