{"version":3,"file":"CMS_Infinite_Grid.BA1e72XW.mjs","names":["useRef","useState","useCallback","React","e","Children","useMemo","p","j","items","_Fragment"],"sources":["https:/framerusercontent.com/modules/PXmunBWhDkrMBu1RlEX3/HqQK6ImVU06MXuqXTS8f/CMS_Infinite_Grid.js"],"sourcesContent":["/*\n *  CMS_InfiniteMediaGrid Component v1.0.0\n *  Combined Infinite Grid + Infinite Gallery (toggle via useGallery)\n *  Created by: FramerMaster\n *  License: Proprietary - Unauthorized reproduction is prohibited\n *  Component ID: CIM_2025_UNIFIED_001\n *\n * COMMERCIAL USE RESTRICTIONS:\n * - Commercial resale of this component is strictly FORBIDDEN\n * - Commercial use requires explicit written permission\n * - Sharing with third parties who haven't subscribed to framermaster.com, nor bought the component on Framer Marketplace, nor on LemonSqueezy's Framer Master's account is PROHIBITED\n * - Use of this component in templates, direct resell or shared link without payment is strictly PROHIBITED\n * - This component is licensed for personal/client projects only\n * - Any violation will result in legal action\n *\n * This code contains proprietary algorithms and implementations.\n * Reverse engineering, modification, or redistribution without\n * explicit written permission is strictly forbidden.\n *\n * Copyright © 2024 FramerMaster. All rights reserved.\n * Contact: framermaster@gmail.com | Website: framermaster.com\n * Violation tracking enabled - Usage monitored\n */import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import React,{useEffect,useRef,useState,useCallback,useMemo,Children}from\"react\";import{addPropertyControls,ControlType,RenderTarget,// @ts-ignore\nuseQueryData}from\"framer\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 800\n * @framerDisableUnlink\n */export default function CMSInfiniteMediaGrid(props){const{// Source selection\nuseGallery,collectionList,gallery,// Grid layout and behavior\ngap,itemSize,itemRadius,layoutType,randomnessAmount,sortOrder,// NEW: Background color\nbackgroundColor,// NEW: Image size options\nimageSizeMode,imageWidth,imageHeight,// NEW: Hover effect toggle\nhoverEffect,// NEW: Slide scroll toggle\nslideScroll,// NEW: Autoscroll controls\nenableAutoscroll,autoscrollSpeed,autoscrollDirection,// Interaction/animation\ndragStrength,scrollSpeed,enablePreloading,fadeInDuration,fadeInDelay,// Hover\nhoverScale,transitionDuration,// Lightbox\nenableLightbox,showLightboxClose,showLightboxArrows,lightboxRadius,lightboxBackground}=props;const containerRef=useRef(null);const gridRef=useRef(null);const isDragging=useRef(false);const hasDragged=useRef(false);const dragStartTime=useRef(0);const startPos=useRef({x:0,y:0});const currentPos=useRef({x:0,y:0});const scrollPosition=useRef({x:0,y:0});const velocity=useRef({x:0,y:0});const animationFrame=useRef(null);const lastTime=useRef(Date.now());// NEW: Track if autoscroll should be active\nconst autoscrollActive=useRef(true);const[lightboxData,setLightboxData]=useState(null);const[imagesLoaded,setImagesLoaded]=useState(new Set);const[gridReady,setGridReady]=useState(false);const[forceUpdate,setForceUpdate]=useState(0);const isCanvas=RenderTarget.current()===RenderTarget.canvas;// Scale dragStrength from 1-10 to 0.5-1\nconst scaledDragStrength=.5+((props.dragStrength||1)-1)*.05;const dragMultiplier=1-scaledDragStrength;const DAMPING=.9+.18*dragMultiplier;const MIN_VELOCITY=.1;// NEW: Enhanced autoscroll with direction control\nconst getAutoscrollVelocity=useCallback(()=>{if(!enableAutoscroll||autoscrollSpeed<=0||!autoscrollActive.current){return{x:0,y:0};}// Smooth speed calculation with reduced intensity\nconst smoothSpeed=autoscrollSpeed*.3*dragMultiplier;switch(autoscrollDirection){case\"top\":return{x:0,y:-smoothSpeed};case\"bottom\":return{x:0,y:smoothSpeed};case\"left\":return{x:-smoothSpeed,y:0};case\"right\":return{x:smoothSpeed,y:0};default:return{x:smoothSpeed,y:0};}},[enableAutoscroll,autoscrollSpeed,autoscrollDirection,dragMultiplier]);// ---------- Helpers shared ----------\nconst isImageLike=useCallback(el=>{if(!el||typeof el!==\"object\")return false;if(el.type===\"img\")return true;if(el.props?.as===\"img\"||el.props?.tag===\"img\")return true;if(el.props?.background?.src)return true;if(typeof el.props?.style?.backgroundImage===\"string\")return true;if(el.props?.[\"data-framer-background-image-wrapper\"])return true;return false;},[]);const extractImageSource=useCallback(el=>{if(!el)return null;if(el.type===\"img\"){return el.props.src||el.props.srcSet?.split(\",\")[0]?.trim()||\"\";}if(el.props?.as===\"img\"||el.props?.tag===\"img\"){return el.props.src||el.props.srcSet?.split(\",\")[0]?.trim()||\"\";}if(el.props?.background?.src){return el.props.background.src;}if(el.props?.style?.backgroundImage){const match=el.props.style.backgroundImage.match(/url\\(['\"]?([^'\")]+)['\"]?\\)/);if(match)return match[1];}if(el.props?.[\"data-framer-background-image-wrapper\"]){const childList=React.Children.toArray(el.props.children);const inner=childList.find(c=>c?.type===\"img\"||c?.props?.as===\"img\");if(inner){return inner.props.src||inner.props.srcSet?.split(\",\")[0]?.trim()||\"\";}}if(el.props?.children){const children=React.Children.toArray(el.props.children);for(let child of children){const src=extractImageSource(child);if(src)return src;}}return null;},[]);// ---------- Source: CMS Collection List (single-image items) ----------\nfunction getCollectionListItems(clInstance){if(!clInstance)return[];const query=clInstance?.props?.query??clInstance?.props?.children?.props?.query??clInstance?.props?.children?.props?.children?.props?.query;if(query){let childrenFunction=null;const clpc=clInstance.props?.children;if(typeof clpc==\"function\"){childrenFunction=clpc;}else if(typeof clpc?.props?.children==\"function\"){childrenFunction=clpc.props.children;}else if(typeof clpc?.props?.children?.props?.children==\"function\"){childrenFunction=clpc.props.children.props.children;}const data=useQueryData(query);let children=[];if(childrenFunction&&data){try{let clChildren=childrenFunction(data);if(Array.isArray(clChildren)){children=clChildren;}else if(Array.isArray(clChildren?.props?.children?.[0])){children=clChildren.props.children[0];}else if(Array.isArray(clChildren?.props?.children)){children=clChildren.props.children;}}catch(e){console.warn(\"Error processing collection list items:\",e);}}if(children){return Children.toArray(children);}}return[];}// ---------- Source: Gallery (array of images) ----------\nconst collectImageElementsDeep=useCallback((node,bag)=>{if(!node)return;if(isImageLike(node)){bag.push(node);return;}const kids=React.Children.toArray(node.props?.children);for(const k of kids)collectImageElementsDeep(k,bag);},[isImageLike]);const getGalleryItems=useCallback(()=>{// Normalize roots (accept array or single wrapper)\nconst roots=Array.isArray(gallery)&&gallery.length>0?gallery:gallery?.[0]?[gallery[0]]:[];const expandedRoots=[];for(const r of roots){if(!r)continue;if(Array.isArray(r?.props?.children)){expandedRoots.push(...Children.toArray(r.props.children));}else if(r?.props?.children){expandedRoots.push(r.props.children);}else{expandedRoots.push(r);}}const collected=[];for(const root of expandedRoots)collectImageElementsDeep(root,collected);// Deduplicate by src\nconst seen=new Set;const unique=[];for(const el of collected){const src=extractImageSource(el)||\"__no_src__\"+Math.random();if(!seen.has(src)){seen.add(src);unique.push(el);}}return unique;},[gallery,collectImageElementsDeep,extractImageSource]);// ---------- Items (based on mode) ----------\nconst items=useMemo(()=>{if(isCanvas)return[];const fromGallery=useGallery?getGalleryItems():[];const fromCollection=!useGallery?getCollectionListItems(collectionList?.[0]):[];return(useGallery?fromGallery:fromCollection)||[];},[isCanvas,useGallery,gallery,collectionList,getGalleryItems,forceUpdate]);// Force update when inputs change\nuseEffect(()=>{const t=setTimeout(()=>setForceUpdate(p=>p+1),100);return()=>clearTimeout(t);},[useGallery,gallery,collectionList]);// ---------- Grid layout with seamless tiling ----------\nconst gridLayout=useMemo(()=>{if(!containerRef.current||items.length===0){return{items:[],tileWidth:0,tileHeight:0};}const containerWidth=containerRef.current.offsetWidth;const containerHeight=containerRef.current.offsetHeight;const gridItems=[];const processedItems=[...items];const getItemSize=index=>{if(imageSizeMode===\"defined\"){return{width:imageWidth,height:imageHeight};}else{// Same size mode (original behavior)\nconst size=layoutType===\"regular\"?itemSize:(()=>{const random=Math.sin(index*5.7)*1e4;const rand=random-Math.floor(random);const minSize=itemSize*.7;const maxSize=itemSize*1.3;return minSize+rand*(maxSize-minSize)*(randomnessAmount/100);})();return{width:size,height:size};}};const getRandomOffset=(index,seed)=>{if(layoutType===\"regular\")return{x:0,y:0};const random1=Math.sin(index*9.8+seed)*1e4;const random2=Math.sin(index*7.3+seed+100)*1e4;const randX=(random1-Math.floor(random1))*2-1;const randY=(random2-Math.floor(random2))*2-1;const maxOffset=itemSize*(randomnessAmount/100)*.3;return{x:randX*maxOffset,y:randY*maxOffset};};// Calculate grid dimensions based on actual item sizes + gap\n// We need to find the maximum dimensions to ensure proper tiling\nlet maxItemWidth=0;let maxItemHeight=0;for(let i=0;i<Math.min(processedItems.length,10);i++){const size=getItemSize(i);maxItemWidth=Math.max(maxItemWidth,size.width);maxItemHeight=Math.max(maxItemHeight,size.height);}// Calculate grid cell size: max item size + gap\nconst cellWidth=maxItemWidth+gap;const cellHeight=maxItemHeight+gap;const cols=Math.ceil(containerWidth/cellWidth)+2;const rows=Math.ceil(containerHeight/cellHeight)+2;const tileWidth=cols*cellWidth;const tileHeight=rows*cellHeight;for(let tileY=-1;tileY<=1;tileY++){for(let tileX=-1;tileX<=1;tileX++){let itemIndex=0;const pushCell=(currentItem,col,row)=>{const offset=getRandomOffset(itemIndex,42);const size=getItemSize(itemIndex);// Calculate position: each cell gets its full space\nconst x=tileX*tileWidth+col*cellWidth+offset.x;const y=tileY*tileHeight+row*cellHeight+offset.y;gridItems.push({item:currentItem,index:`${tileX}_${tileY}_${itemIndex}`,originalIndex:items.indexOf(currentItem),x:x,y:y,width:size.width,height:size.height});itemIndex++;};if(sortOrder===\"Shuffle\"){const shuffled=[...processedItems];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]];}for(let row=0;row<rows;row++){for(let col=0;col<cols;col++){pushCell(shuffled[(row*cols+col)%shuffled.length],col,row);}}}else if(sortOrder===\"Horizontal\"){for(let row=0;row<rows;row++){const currentItem=processedItems[row%processedItems.length];for(let col=0;col<cols;col++)pushCell(currentItem,col,row);}}else if(sortOrder===\"Vertical\"){for(let col=0;col<cols;col++){const currentItem=processedItems[col%processedItems.length];for(let row=0;row<rows;row++)pushCell(currentItem,col,row);}}else if(sortOrder===\"Diagonal Left\"){const totalDiagonals=rows+cols-1;for(let d=0;d<totalDiagonals;d++){const currentItem=processedItems[d%processedItems.length];for(let row=0;row<rows;row++){const col=d-row;if(col>=0&&col<cols)pushCell(currentItem,col,row);}}}else if(sortOrder===\"Diagonal Right\"){const totalDiagonals=rows+cols-1;for(let d=0;d<totalDiagonals;d++){const currentItem=processedItems[d%processedItems.length];for(let row=0;row<rows;row++){const col=cols-1-(d-row);if(col>=0&&col<cols)pushCell(currentItem,col,row);}}}}}return{items:gridItems,tileWidth,tileHeight,containerWidth,containerHeight};},[items,itemSize,gap,sortOrder,layoutType,randomnessAmount,imageSizeMode,imageWidth,imageHeight]);// ---------- Enhanced lazy loading with intersection observer ----------\nconst[visibleItems,setVisibleItems]=useState(new Set);const observerRef=useRef(null);useEffect(()=>{if(isCanvas||!enablePreloading)return;// Create intersection observer for lazy loading\nobserverRef.current=new IntersectionObserver(entries=>{entries.forEach(entry=>{if(entry.isIntersecting){const index=parseInt(entry.target.dataset.index);setVisibleItems(prev=>new Set([...prev,index]));}});},{root:containerRef.current,rootMargin:\"50px\",threshold:.1});return()=>{if(observerRef.current){observerRef.current.disconnect();}};},[isCanvas,enablePreloading]);// ---------- Preload images with lazy loading ----------\nuseEffect(()=>{if(isCanvas||items.length===0)return;setImagesLoaded(new Set);const loadPromises=items.map((item,index)=>{return new Promise(resolve=>{// Only load if item is visible or preloading is disabled\nif(enablePreloading||visibleItems.has(index)){const src=extractImageSource(// For collection list, the actual image is often nested deeper\nuseGallery?item:item?.props?.children?.props?.children||item)||extractImageSource(item);if(src){const img=new Image;img.onload=()=>{setImagesLoaded(prev=>{const next=new Set(prev);next.add(index);return next;});resolve();};img.onerror=()=>resolve();img.loading=\"lazy\";img.decoding=\"async\";img.src=src;}else{resolve();}}else{resolve();}});});Promise.all(loadPromises).then(()=>setGridReady(true));},[items,extractImageSource,isCanvas,useGallery,enablePreloading,visibleItems]);// ---------- Motion/drag ----------\nconst wrapPosition=useCallback((value,size)=>{let wrapped=value%size;if(wrapped>size/2)wrapped-=size;if(wrapped<-size/2)wrapped+=size;return wrapped;},[]);const updatePosition=useCallback(()=>{if(!gridRef.current||!gridLayout.tileWidth||!gridLayout.tileHeight)return;const wrappedX=wrapPosition(scrollPosition.current.x,gridLayout.tileWidth);const wrappedY=wrapPosition(scrollPosition.current.y,gridLayout.tileHeight);scrollPosition.current.x=wrappedX;scrollPosition.current.y=wrappedY;gridRef.current.style.transform=`translate3d(${wrappedX}px, ${wrappedY}px, 0)`;},[gridLayout.tileWidth,gridLayout.tileHeight,wrapPosition]);// NEW: Enhanced animate function with continuous autoscroll\nconst animate=useCallback(()=>{const now=Date.now();const deltaTime=Math.min((now-lastTime.current)/1e3,.1);lastTime.current=now;if(!isDragging.current){// Apply damping to velocity\nvelocity.current.x*=DAMPING;velocity.current.y*=DAMPING;// Apply autoscroll if enabled - ALWAYS apply when not dragging\nif(enableAutoscroll&&autoscrollActive.current){const autoscrollVel=getAutoscrollVelocity();velocity.current.x+=autoscrollVel.x*deltaTime*60;velocity.current.y+=autoscrollVel.y*deltaTime*60;}// Maintain minimum velocity for smooth movement when autoscroll is active\nif(enableAutoscroll&&autoscrollActive.current){const autoscrollVel=getAutoscrollVelocity();if(Math.abs(velocity.current.x)<MIN_VELOCITY){velocity.current.x=autoscrollVel.x*.1;}if(Math.abs(velocity.current.y)<MIN_VELOCITY){velocity.current.y=autoscrollVel.y*.1;}}// Update position\nscrollPosition.current.x+=velocity.current.x;scrollPosition.current.y+=velocity.current.y;}updatePosition();// CRITICAL: Always continue the animation loop\nanimationFrame.current=requestAnimationFrame(animate);},[enableAutoscroll,getAutoscrollVelocity,updatePosition,DAMPING,MIN_VELOCITY]);// Enhanced touch handling for mobile\nconst handleStart=useCallback(e=>{isDragging.current=true;hasDragged.current=false;dragStartTime.current=Date.now();const point=e.touches?e.touches[0]:e;startPos.current={x:point.clientX,y:point.clientY};currentPos.current={x:point.clientX,y:point.clientY};velocity.current={x:0,y:0};// Prevent default to avoid scrolling on mobile\ne.preventDefault();e.stopPropagation();},[]);const handleMove=useCallback(e=>{if(!isDragging.current)return;const point=e.touches?e.touches[0]:e;const deltaX=point.clientX-currentPos.current.x;const deltaY=point.clientY-currentPos.current.y;currentPos.current.x=point.clientX;currentPos.current.y=point.clientY;const totalDeltaX=point.clientX-startPos.current.x;const totalDeltaY=point.clientY-startPos.current.y;if(Math.abs(totalDeltaX)>3||Math.abs(totalDeltaY)>3)hasDragged.current=true;const dragResponse=1-scaledDragStrength*.8;scrollPosition.current.x+=deltaX*dragResponse;scrollPosition.current.y+=deltaY*dragResponse;velocity.current.x=deltaX*2*dragResponse;velocity.current.y=deltaY*2*dragResponse;e.preventDefault();e.stopPropagation();},[scaledDragStrength]);const handleEnd=useCallback(()=>{isDragging.current=false;const momentumFactor=1-scaledDragStrength*.3;const delay=100+scaledDragStrength*400;setTimeout(()=>{velocity.current.x*=1.2*momentumFactor;velocity.current.y*=1.2*momentumFactor;},delay);setTimeout(()=>hasDragged.current=false,100);},[scaledDragStrength]);// NEW: Enhanced wheel scroll handler\nconst handleWheel=useCallback(e=>{if(!slideScroll)return;e.preventDefault();const deltaX=e.deltaX*.5;const deltaY=e.deltaY*.5;scrollPosition.current.x-=deltaX;scrollPosition.current.y-=deltaY;// Don't reset velocity completely - let it blend with autoscroll\nvelocity.current.x=-deltaX*.5;velocity.current.y=-deltaY*.5;updatePosition();},[slideScroll,updatePosition]);useEffect(()=>{const container=containerRef.current;if(!container)return;// Mouse events\ncontainer.addEventListener(\"mousedown\",handleStart,{passive:false});window.addEventListener(\"mousemove\",handleMove,{passive:false});window.addEventListener(\"mouseup\",handleEnd);// Enhanced touch events for mobile\ncontainer.addEventListener(\"touchstart\",handleStart,{passive:false});container.addEventListener(\"touchmove\",handleMove,{passive:false});container.addEventListener(\"touchend\",handleEnd);container.addEventListener(\"touchcancel\",handleEnd);// NEW: Wheel events\ncontainer.addEventListener(\"wheel\",handleWheel,{passive:false});// CRITICAL: Always start animation loop\nif(animationFrame.current)cancelAnimationFrame(animationFrame.current);animationFrame.current=requestAnimationFrame(animate);return()=>{container.removeEventListener(\"mousedown\",handleStart);window.removeEventListener(\"mousemove\",handleMove);window.removeEventListener(\"mouseup\",handleEnd);container.removeEventListener(\"touchstart\",handleStart);container.removeEventListener(\"touchmove\",handleMove);container.removeEventListener(\"touchend\",handleEnd);container.removeEventListener(\"touchcancel\",handleEnd);container.removeEventListener(\"wheel\",handleWheel);if(animationFrame.current)cancelAnimationFrame(animationFrame.current);};},[handleStart,handleMove,handleEnd,handleWheel,animate]);// ---------- Enhanced Lightbox with mobile support ----------\nconst openLightbox=useCallback((e,originalIndex)=>{e.preventDefault();e.stopPropagation();// More lenient touch detection for mobile\nif(hasDragged.current){const dragDistance=Math.sqrt(Math.pow(currentPos.current.x-startPos.current.x,2)+Math.pow(currentPos.current.y-startPos.current.y,2));// Allow lightbox if drag distance is small (mobile-friendly)\nif(dragDistance>20)return;}const clickDuration=Date.now()-dragStartTime.current;// More lenient timing for mobile\nif(clickDuration>800)return;setLightboxData({items,currentIndex:originalIndex});document.body.style.overflow=\"hidden\";// Prevent body scroll on mobile\ndocument.body.style.position=\"fixed\";document.body.style.width=\"100%\";},[items]);const closeLightbox=useCallback(()=>{setLightboxData(null);document.body.style.overflow=\"\";document.body.style.position=\"\";document.body.style.width=\"\";},[]);const navigateImage=useCallback(direction=>{if(!lightboxData)return;const{items,currentIndex}=lightboxData;const newIndex=direction===\"prev\"?currentIndex>0?currentIndex-1:items.length-1:currentIndex<items.length-1?currentIndex+1:0;setLightboxData({...lightboxData,currentIndex:newIndex});},[lightboxData]);// Enhanced keyboard nav with mobile support\nuseEffect(()=>{if(!lightboxData)return;const handleKey=e=>{if(e.key===\"Escape\")closeLightbox();else if(e.key===\"ArrowLeft\"&&showLightboxArrows)navigateImage(\"prev\");else if(e.key===\"ArrowRight\"&&showLightboxArrows)navigateImage(\"next\");};document.addEventListener(\"keydown\",handleKey);return()=>document.removeEventListener(\"keydown\",handleKey);},[lightboxData,showLightboxArrows,closeLightbox,navigateImage]);// ---------- Canvas placeholder ----------\nif(isCanvas){return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",width:\"100%\",height:\"100%\",placeContent:\"center\",placeItems:\"center\",flexDirection:\"column\",backgroundColor:\"rgba(136, 85, 255, 0.1)\",borderRadius:6,border:\"1px dashed rgb(136, 85, 255)\",color:\"rgb(136, 85, 255)\",fontSize:12,padding:24,textAlign:\"center\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:0,marginBottom:10,fontWeight:600},children:\"CMS Infinite Media Grid\"}),/*#__PURE__*/_jsx(\"p\",{style:{margin:0,opacity:.7,maxWidth:520,lineHeight:1.5},children:'Toggle \"Use Gallery\" to switch between a CMS Collection List and a CMS Gallery field. Infinite, draggable, with lightbox.'})]});}// Empty state\nif(items.length===0){return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"#999\",fontSize:14,backgroundColor:backgroundColor},children:[\"Connect a \",useGallery?\"Gallery\":\"Collection List\",\" to display images\"]});}// ---------- Render ----------\nreturn /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .cms-media-item * {\n                    width: 100% !important;\n                    height: 100% !important;\n                    max-width: 100% !important;\n                    max-height: 100% !important;\n                }\n                .cms-media-item img {\n                    object-fit: cover !important;\n                    display: block !important;\n                }\n                @keyframes fadeIn {\n                    from { opacity: 0; transform: scale(0.95); }\n                    to { opacity: 1; transform: scale(1); }\n                }\n                .cms-media-item.loading {\n                    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);\n                    background-size: 200% 100%;\n                    animation: loading 1.5s infinite;\n                }\n                @keyframes loading {\n                    0% { background-position: 200% 0; }\n                    100% { background-position: -200% 0; }\n                }\n                @media (max-width: 768px) {\n                    .lightbox-control {\n                        width: 44px !important;\n                        height: 44px !important;\n                        min-width: 44px !important;\n                        min-height: 44px !important;\n                    }\n                }\n            `}),/*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",overflow:\"hidden\",position:\"relative\",cursor:isDragging.current?\"grabbing\":\"grab\",userSelect:\"none\",WebkitUserSelect:\"none\",touchAction:\"none\",backgroundColor:backgroundColor},onMouseLeave:()=>{const els=containerRef.current?.querySelectorAll(\".cms-media-item\");if(els)els.forEach(el=>{el.style.boxShadow=\"none\";el.style.filter=\"none\";});},children:/*#__PURE__*/_jsx(\"div\",{ref:gridRef,style:{position:\"absolute\",left:\"50%\",top:\"50%\",marginLeft:-gridLayout.tileWidth/2,marginTop:-gridLayout.tileHeight/2,width:gridLayout.tileWidth*3,height:gridLayout.tileHeight*3,willChange:\"transform\",transform:\"translate3d(0, 0, 0)\"},children:gridLayout.items.map(gridItem=>{const{item,index,originalIndex,x,y,width,height}=gridItem;if(!item)return null;// For collection list, image node is usually deeper\nconst renderNode=useGallery?item:item?.props?.children?.props?.children||item;// Enhanced lazy loading logic\nconst imageReady=!enablePreloading||imagesLoaded.has(originalIndex)||gridReady||visibleItems.has(originalIndex);const shouldShowLoading=enablePreloading&&!imageReady&&!visibleItems.has(originalIndex);return /*#__PURE__*/_jsx(\"div\",{className:`cms-media-item ${shouldShowLoading?\"loading\":\"\"}`,\"data-index\":originalIndex,ref:el=>{if(el&&observerRef.current&&enablePreloading){observerRef.current.observe(el);}},style:{position:\"absolute\",left:x,top:y,width:width,height:height,borderRadius:itemRadius,overflow:\"hidden\",cursor:enableLightbox?\"pointer\":\"grab\",backgroundColor:\"#1a1a1a\",opacity:imageReady?1:0,animation:imageReady?`fadeIn ${fadeInDuration}s ease-out ${fadeInDelay}s both`:\"none\",transition:\"all 0.3s cubic-bezier(0.4, 0, 0.2, 1)\",transformOrigin:\"center\",boxShadow:\"none\",filter:\"none\"},onMouseEnter:e=>{if(!isDragging.current&&hoverEffect){e.currentTarget.style.boxShadow=\"0 0 17px rgba(255, 255, 255, 0.26), 0 0 34px rgba(255, 255, 255, 0.09)\";e.currentTarget.style.filter=\"brightness(1.1) contrast(1.05)\";}},onMouseLeave:e=>{e.currentTarget.style.boxShadow=\"none\";e.currentTarget.style.filter=\"none\";},onClick:e=>{if(enableLightbox&&!hasDragged.current){openLightbox(e,originalIndex);}},onTouchEnd:e=>{// Enhanced mobile touch handling\nif(enableLightbox&&!hasDragged.current){const touchDuration=Date.now()-dragStartTime.current;if(touchDuration<500){openLightbox(e,originalIndex);}}},children:/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",position:\"relative\",transition:`transform ${transitionDuration}s ease`,transformOrigin:\"center center\",overflow:\"hidden\"},onMouseEnter:e=>{if(hoverScale!==1&&!isDragging.current&&hoverEffect){e.currentTarget.style.transform=\"scale(\"+hoverScale+\")\";}},onMouseLeave:e=>{e.currentTarget.style.transform=\"scale(1)\";},children:imageReady?/*#__PURE__*/React.cloneElement(renderNode,{style:{width:\"100%\",height:\"100%\",display:\"block\",position:\"absolute\",top:0,left:0,objectFit:\"cover\",borderRadius:0},loading:\"lazy\",decoding:\"async\"}):shouldShowLoading?/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",backgroundColor:\"#f0f0f0\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",color:\"#999\",fontSize:\"12px\"},children:\"Loading...\"}):null})},`grid-item-${index}`);})})}),lightboxData&&!isCanvas&&enableLightbox&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",top:0,left:0,width:\"100vw\",height:\"100vh\",background:lightboxBackground,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",zIndex:1e4,cursor:\"pointer\",// Enhanced mobile support\ntouchAction:\"none\",WebkitOverflowScrolling:\"touch\"},onClick:closeLightbox,onTouchEnd:e=>{// Close lightbox on mobile tap outside\nif(e.target===e.currentTarget){closeLightbox();}},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",maxWidth:\"90vw\",maxHeight:\"90vh\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",// Enhanced mobile responsiveness\npadding:\"20px\"},onClick:e=>e.stopPropagation(),onTouchEnd:e=>e.stopPropagation(),children:[(()=>{const item=lightboxData.items[lightboxData.currentIndex];const node=useGallery?item:item?.props?.children?.props?.children||item;const imageSrc=extractImageSource(node);if(imageSrc){return /*#__PURE__*/_jsx(\"img\",{src:imageSrc,alt:\"\",style:{maxWidth:\"90vw\",maxHeight:\"90vh\",width:\"auto\",height:\"auto\",objectFit:\"contain\",borderRadius:lightboxRadius,boxShadow:\"0 20px 60px rgba(0, 0, 0, 0.5)\",// Enhanced mobile touch support\ntouchAction:\"none\"},onTouchStart:e=>e.stopPropagation(),onTouchMove:e=>e.stopPropagation()});}else{return /*#__PURE__*/React.cloneElement(node,{style:{...node?.props?.style,maxWidth:\"90vw\",maxHeight:\"90vh\",borderRadius:lightboxRadius,touchAction:\"none\"}});}})(),showLightboxClose&&/*#__PURE__*/_jsx(\"button\",{className:\"lightbox-control\",onClick:closeLightbox,style:{position:\"absolute\",top:\"4px\",right:\"4px\",width:\"48px\",height:\"48px\",border:\"none\",borderRadius:8,background:\"rgba(0, 0, 0, 0.4)\",color:\"white\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",backdropFilter:\"blur(10px)\",transition:\"all 0.2s ease\",// Mobile/tablet: smaller size and proper positioning\n\"@media (max-width: 768px)\":{width:\"44px\",height:\"44px\",top:\"2px\",right:\"2px\"}},onMouseEnter:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.6)\";e.currentTarget.style.transform=\"scale(1.05)\";},onMouseLeave:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.4)\";e.currentTarget.style.transform=\"scale(1)\";},children:/*#__PURE__*/_jsxs(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"path\",{d:\"M18 6 6 18\"}),/*#__PURE__*/_jsx(\"path\",{d:\"m6 6 12 12\"})]})}),lightboxData.items.length>1&&showLightboxArrows&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"button\",{className:\"lightbox-control\",onClick:()=>navigateImage(\"prev\"),style:{position:\"absolute\",left:\"4px\",top:\"50%\",transform:\"translateY(-50%)\",width:\"48px\",height:\"48px\",border:\"none\",borderRadius:8,background:\"rgba(0, 0, 0, 0.4)\",color:\"white\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",backdropFilter:\"blur(10px)\",transition:\"all 0.2s ease\",// Mobile/tablet: smaller size and proper positioning\n\"@media (max-width: 768px)\":{width:\"44px\",height:\"44px\",left:\"2px\"}},onMouseEnter:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.6)\";e.currentTarget.style.transform=\"translateY(-50%) scale(1.05)\";},onMouseLeave:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.4)\";e.currentTarget.style.transform=\"translateY(-50%) scale(1)\";},children:/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"m15 18-6-6 6-6\"})})}),/*#__PURE__*/_jsx(\"button\",{className:\"lightbox-control\",onClick:()=>navigateImage(\"next\"),style:{position:\"absolute\",right:\"4px\",top:\"50%\",transform:\"translateY(-50%)\",width:\"48px\",height:\"48px\",border:\"none\",borderRadius:8,background:\"rgba(0, 0, 0, 0.4)\",color:\"white\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",backdropFilter:\"blur(10px)\",transition:\"all 0.2s ease\",// Mobile/tablet: smaller size and proper positioning\n\"@media (max-width: 768px)\":{width:\"44px\",height:\"44px\",right:\"2px\"}},onMouseEnter:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.6)\";e.currentTarget.style.transform=\"translateY(-50%) scale(1.05)\";},onMouseLeave:e=>{e.currentTarget.style.background=\"rgba(0, 0, 0, 0.4)\";e.currentTarget.style.transform=\"translateY(-50%) scale(1)\";},children:/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"m9 18 6-6-6-6\"})})})]})]})})]});}CMSInfiniteMediaGrid.displayName=\"CMS Infinite Media Grid\";addPropertyControls(CMSInfiniteMediaGrid,{// Source selection\nuseGallery:{type:ControlType.Boolean,title:\"Use Gallery\",defaultValue:false,description:\"ON: use Gallery field, OFF: use Collection List\"},collectionList:{type:ControlType.ComponentInstance,title:\"Collection List\",hidden:p=>p.useGallery},gallery:{title:\"Gallery\",type:ControlType.Array,control:{type:ControlType.ComponentInstance},maxCount:100,description:\"Bind to a CMS Gallery field\",hidden:p=>!p.useGallery},// NEW: Background color\nbackgroundColor:{type:ControlType.Color,title:\"Background Color\",defaultValue:\"#000000\"},// NEW: Image size options\nimageSizeMode:{type:ControlType.Enum,title:\"Image Size\",options:[\"same\",\"defined\"],optionTitles:[\"Same Size\",\"Defined Size\"],defaultValue:\"defined\"},imageWidth:{type:ControlType.Number,title:\"Image Width\",min:100,max:1500,defaultValue:200,unit:\"px\",hidden:p=>p.imageSizeMode!==\"defined\"},imageHeight:{type:ControlType.Number,title:\"Image Height\",min:100,max:1500,defaultValue:400,unit:\"px\",hidden:p=>p.imageSizeMode!==\"defined\"},// NEW: Hover effect toggle\nhoverEffect:{type:ControlType.Boolean,title:\"Hover Effect\",defaultValue:true},// NEW: Slide scroll toggle\nslideScroll:{type:ControlType.Boolean,title:\"Slide Scroll\",defaultValue:true,description:\"Enable trackpad/mouse wheel scrolling\"},// NEW: Autoscroll controls\nenableAutoscroll:{type:ControlType.Boolean,title:\"Enable Autoscroll\",defaultValue:false,description:\"Enable automatic scrolling of the grid\"},autoscrollSpeed:{type:ControlType.Number,title:\"Autoscroll Speed\",min:0,max:10,step:.1,defaultValue:1,description:\"Speed of autoscroll movement\",hidden:p=>!p.enableAutoscroll},autoscrollDirection:{type:ControlType.Enum,title:\"Autoscroll Direction\",options:[\"right\",\"left\",\"top\",\"bottom\"],optionTitles:[\"→ Right\",\"← Left\",\"↑ Top\",\"↓ Bottom\"],defaultValue:\"right\",description:\"Direction of autoscroll movement\",hidden:p=>!p.enableAutoscroll},// Layout\nsortOrder:{type:ControlType.Enum,title:\"Sort Order\",options:[\"Horizontal\",\"Vertical\",\"Diagonal Left\",\"Diagonal Right\",\"Shuffle\"],defaultValue:\"Diagonal Right\"},layoutType:{type:ControlType.Enum,title:\"Grid Layout\",options:[\"regular\",\"organic\"],optionTitles:[\"Regular Grid\",\"Organic Grid\"],defaultValue:\"regular\"},randomnessAmount:{type:ControlType.Number,title:\"Randomness\",min:0,max:100,defaultValue:70,unit:\"%\",hidden:p=>p.layoutType!==\"organic\"},itemSize:{type:ControlType.Number,title:\"Base Item Size\",min:50,max:400,defaultValue:150,unit:\"px\",hidden:p=>p.imageSizeMode!==\"same\"},gap:{type:ControlType.Number,title:\"Gap\",min:0,max:50,defaultValue:32,unit:\"px\"},itemRadius:{type:ControlType.Number,title:\"Item Radius\",min:0,max:50,defaultValue:8,unit:\"px\"},// Animation/interaction - UPDATED FADE TIMING\nfadeInDuration:{type:ControlType.Number,title:\"Fade Duration\",min:.1,max:10,step:.1,defaultValue:.6,unit:\"s\"},fadeInDelay:{type:ControlType.Number,title:\"Fade Delay\",min:0,max:10,step:.1,defaultValue:.3,unit:\"s\"},dragStrength:{type:ControlType.Number,title:\"Drag Strength\",min:1,max:10,step:1,defaultValue:6,description:\"Higher = heavier drag and longer momentum\"},scrollSpeed:{type:ControlType.Number,title:\"Auto Scroll Speed\",min:0,max:5,step:.1,defaultValue:0,description:\"Set 0 to disable auto-scroll\"},enablePreloading:{type:ControlType.Boolean,title:\"Enable Preloading\",defaultValue:true,description:\"Enable lazy loading for better performance\"},// Hover\nhoverScale:{type:ControlType.Number,title:\"Hover Scale\",min:1,max:1.5,step:.05,defaultValue:1.05,hidden:p=>!p.hoverEffect},transitionDuration:{type:ControlType.Number,title:\"Transition\",min:.1,max:1,step:.1,defaultValue:.3,unit:\"s\"},// Lightbox\nenableLightbox:{type:ControlType.Boolean,title:\"Enable Lightbox\",defaultValue:true},showLightboxClose:{type:ControlType.Boolean,title:\"Show Close\",defaultValue:true,hidden:p=>!p.enableLightbox},showLightboxArrows:{type:ControlType.Boolean,title:\"Show Arrows\",defaultValue:true,hidden:p=>!p.enableLightbox},lightboxRadius:{type:ControlType.Number,title:\"Lightbox Radius\",min:0,max:50,defaultValue:12,unit:\"px\",hidden:p=>!p.enableLightbox},lightboxBackground:{type:ControlType.Color,title:\"Lightbox Background\",defaultValue:\"rgba(0, 0, 0, 0.9)\",hidden:p=>!p.enableLightbox}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CMSInfiniteMediaGrid\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerIntrinsicWidth\":\"1200\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"800\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CMS_Infinite_Grid.map"],"mappings":"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"}