{"version":3,"file":"DenseGrid.ffSo3A9K.mjs","names":["useRef","useCallback"],"sources":["https:/framerusercontent.com/modules/rMr3aCcK05xxMOkRLA4m/8wMvtZHvmpXI6Hob1Ygm/DenseGrid.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useCallback,useLayoutEffect,useRef}from\"react\";// User request: Create a code override that injects `gridAutoFlow: \"dense\"` into the wrapped element's style while preserving all existing props and styles.\nexport function withDenseGrid(Component){return /*#__PURE__*/forwardRef(function DenseGridOverride(props,ref){const gridRef=useRef(null);const wrapperRef=useRef(null);const lastModifiedChildRef=useRef(null);const rafIdRef=useRef(null);const assignRef=useCallback(node=>{gridRef.current=node;if(typeof ref===\"function\"){ref(node);}else if(ref&&\"current\"in ref){ref.current=node;}},[ref]);const parseTrackTokens=useCallback(value=>{if(!value||value===\"none\")return[];const tokens=[];let current=\"\";let depth=0;for(let i=0;i<value.length;i++){const char=value[i];if(char===\"(\")depth++;if(char===\")\")depth=Math.max(0,depth-1);if(char===\" \"&&depth===0){if(current.trim())tokens.push(current.trim());current=\"\";}else{current+=char;}}if(current.trim())tokens.push(current.trim());return tokens;},[]);const getGridElement=useCallback(()=>{if(gridRef.current instanceof HTMLElement)return gridRef.current;const wrapperEl=wrapperRef.current;if(!wrapperEl)return null;const first=wrapperEl.firstElementChild;if(first instanceof HTMLElement)return first;return wrapperEl.querySelector(\":scope > *\");},[]);const clearPreviousInlineSpan=useCallback(()=>{const prev=lastModifiedChildRef.current;if(prev){prev.style.gridColumn=\"\";lastModifiedChildRef.current=null;}},[]);const recompute=useCallback(()=>{if(typeof window===\"undefined\")return;const gridEl=getGridElement();if(!gridEl)return;clearPreviousInlineSpan();const children=Array.from(gridEl.children).filter(child=>child instanceof HTMLElement);if(children.length===0)return;const computed=window.getComputedStyle(gridEl);const trackTokens=parseTrackTokens(computed.gridTemplateColumns);const columnCount=Math.max(1,trackTokens.length);const columnGap=Number.parseFloat(computed.columnGap||\"0\");const safeGap=Number.isFinite(columnGap)?columnGap:0;const numericTracks=trackTokens.map(token=>Number.parseFloat(token)).filter(n=>Number.isFinite(n)&&n>0);const fallbackColWidth=Math.max(1,(gridEl.getBoundingClientRect().width-safeGap*Math.max(0,columnCount-1))/columnCount);const singleColumnWidth=numericTracks.length>0?numericTracks.reduce((sum,n)=>sum+n,0)/numericTracks.length:fallbackColWidth;const withTop=children.map(child=>({child,top:child.offsetTop}));const maxTop=Math.max(...withTop.map(item=>item.top));const tolerance=3;const lastRowChildren=withTop.filter(item=>Math.abs(item.top-maxTop)<=tolerance).map(item=>item.child);if(lastRowChildren.length===0)return;const lastChild=lastRowChildren[lastRowChildren.length-1];const otherLastRowChildren=lastRowChildren.slice(0,-1);const measureSpan=el=>{const width=el.getBoundingClientRect().width;const estimated=Math.round((width+safeGap)/(singleColumnWidth+safeGap));return Math.min(columnCount,Math.max(1,estimated));};const occupied=otherLastRowChildren.reduce((sum,el)=>sum+measureSpan(el),0);const remaining=Math.min(columnCount,Math.max(1,columnCount-occupied));const computedLast=window.getComputedStyle(lastChild);const explicitSpanMatch=computedLast.gridColumnEnd.match(/span\\s+(\\d+)/i);const explicitSpan=explicitSpanMatch?Number.parseInt(explicitSpanMatch[1],10):1;const finalSpan=Math.min(columnCount,Math.max(remaining,Number.isFinite(explicitSpan)?explicitSpan:1));lastChild.style.gridColumn=`span ${finalSpan}`;lastModifiedChildRef.current=lastChild;},[clearPreviousInlineSpan,getGridElement,parseTrackTokens]);const scheduleRecompute=useCallback(()=>{if(typeof window===\"undefined\")return;if(rafIdRef.current!==null){window.cancelAnimationFrame(rafIdRef.current);}rafIdRef.current=window.requestAnimationFrame(()=>{rafIdRef.current=null;recompute();});},[recompute]);useLayoutEffect(()=>{if(typeof window===\"undefined\")return;scheduleRecompute();const gridEl=getGridElement();if(!gridEl)return;let resizeObserver=null;let mutationObserver=null;if(\"ResizeObserver\"in window){resizeObserver=new ResizeObserver(()=>{scheduleRecompute();});resizeObserver.observe(gridEl);}if(\"MutationObserver\"in window){mutationObserver=new MutationObserver(()=>{scheduleRecompute();});mutationObserver.observe(gridEl,{childList:true,subtree:true,characterData:true});}return()=>{if(rafIdRef.current!==null){window.cancelAnimationFrame(rafIdRef.current);rafIdRef.current=null;}if(resizeObserver)resizeObserver.disconnect();if(mutationObserver)mutationObserver.disconnect();clearPreviousInlineSpan();};},[clearPreviousInlineSpan,getGridElement,scheduleRecompute]);return /*#__PURE__*/_jsx(\"div\",{ref:wrapperRef,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{ref:assignRef,...props,style:{...props?.style??{},gridAutoFlow:\"dense\"}})});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withDenseGrid\":{\"type\":\"reactHoc\",\"name\":\"withDenseGrid\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DenseGrid.map"],"mappings":"qJACA,SAAgB,EAAc,EAAU,CAAC,OAAoB,EAAW,SAA2B,EAAM,EAAI,CAAC,IAAM,EAAQA,EAAO,IAAI,EAAQ,EAAWA,EAAO,IAAI,EAAQ,EAAqBA,EAAO,IAAI,EAAQ,EAASA,EAAO,IAAI,EAAQ,EAAUC,EAAY,GAAM,CAAC,EAAQ,QAAQ,EAAQ,OAAO,GAAM,WAAY,EAAI,CAAI,EAAW,GAAK,YAAY,IAAK,EAAI,QAAQ,EAAM,EAAE,CAAC,CAAG,CAAC,EAAQ,EAAiBA,EAAY,GAAO,CAAC,GAAG,CAAC,GAAO,IAAQ,OAAO,MAAM,CAAC,EAAE,IAAM,EAAO,CAAC,EAAM,EAAQ,GAAO,EAAM,EAAE,IAAI,IAAI,EAAE,EAAE,EAAE,EAAM,OAAO,IAAI,CAAC,IAAM,EAAK,EAAM,GAAM,IAAO,KAAI,IAAW,IAAO,MAAI,EAAM,KAAK,IAAI,EAAE,EAAM,CAAC,GAAK,IAAO,KAAK,IAAQ,GAAM,EAAQ,KAAK,GAAE,EAAO,KAAK,EAAQ,KAAK,CAAC,EAAE,EAAQ,IAAS,GAAS,CAAM,CAA+C,OAA3C,EAAQ,KAAK,GAAE,EAAO,KAAK,EAAQ,KAAK,CAAC,EAAS,CAAO,EAAE,CAAC,CAAC,EAAQ,EAAeA,MAAgB,CAAC,GAAG,EAAQ,mBAAmB,YAAY,OAAO,EAAQ,QAAQ,IAAM,EAAU,EAAW,QAAQ,GAAG,CAAC,EAAU,OAAO,KAAK,IAAM,EAAM,EAAU,kBAA+D,OAA1C,aAAiB,YAAmB,EAAa,EAAU,cAAc,YAAY,CAAE,EAAE,CAAC,CAAC,EAAQ,EAAwBA,MAAgB,CAAC,IAAM,EAAK,EAAqB,QAAW,IAAM,EAAK,MAAM,WAAW,GAAG,EAAqB,QAAQ,KAAM,EAAE,CAAC,CAAC,EAAQ,EAAUA,MAAgB,CAAC,GAAU,IAAS,OAAY,OAAO,IAAM,EAAO,EAAe,EAAE,GAAG,CAAC,EAAO,OAAO,EAAwB,EAAE,IAAM,EAAS,MAAM,KAAK,EAAO,QAAQ,CAAC,CAAC,OAAO,GAAO,aAAiB,WAAW,EAAE,GAAG,EAAS,SAAS,EAAE,OAAO,IAAM,EAAS,EAAO,iBAAiB,CAAM,EAAQ,EAAY,EAAiB,EAAS,mBAAmB,EAAQ,EAAY,KAAK,IAAI,EAAE,EAAY,MAAM,EAAQ,EAAU,OAAO,WAAW,EAAS,WAAW,GAAG,EAAQ,EAAQ,OAAO,SAAS,CAAS,EAAE,EAAU,EAAQ,EAAc,EAAY,IAAI,GAAO,OAAO,WAAW,CAAK,CAAC,CAAC,CAAC,OAAO,GAAG,OAAO,SAAS,CAAC,GAAG,EAAE,CAAC,EAAQ,EAAiB,KAAK,IAAI,GAAG,EAAO,sBAAsB,CAAC,CAAC,MAAM,EAAQ,KAAK,IAAI,EAAE,EAAY,CAAC,GAAG,CAAW,EAAQ,EAAkB,EAAc,OAAO,EAAE,EAAc,QAAQ,EAAI,IAAI,EAAI,EAAE,CAAC,EAAE,EAAc,OAAO,EAAuB,EAAQ,EAAS,IAAI,IAAQ,CAAC,QAAM,IAAI,EAAM,SAAS,EAAE,EAAQ,EAAO,KAAK,IAAI,GAAG,EAAQ,IAAI,GAAM,EAAK,GAAG,CAAC,EAA0B,EAAgB,EAAQ,OAAO,GAAM,KAAK,IAAI,EAAK,IAAI,CAAM,GAAG,CAAS,CAAC,CAAC,IAAI,GAAM,EAAK,KAAK,EAAE,GAAG,EAAgB,SAAS,EAAE,OAAO,IAAM,EAAU,EAAgB,EAAgB,OAAO,GAAS,EAAqB,EAAgB,MAAM,EAAE,EAAE,EAAQ,EAAY,GAAI,CAAC,IAAM,EAAM,EAAG,sBAAsB,CAAC,CAAC,MAAY,EAAU,KAAK,OAAO,EAAM,IAAU,EAAkB,EAAQ,EAAE,OAAO,KAAK,IAAI,EAAY,KAAK,IAAI,EAAE,CAAS,CAAC,CAAE,EAAQ,EAAS,EAAqB,QAAQ,EAAI,IAAK,EAAI,EAAY,CAAE,EAAE,CAAC,EAAQ,EAAU,KAAK,IAAI,EAAY,KAAK,IAAI,EAAE,EAAY,CAAQ,CAAC,EAA8D,EAAzC,EAAO,iBAAiB,CAA8C,CAAC,CAAC,cAAc,MAAM,eAAe,EAAQ,EAAa,EAAkB,OAAO,SAAS,EAAkB,GAAG,EAAE,EAAE,EAAQ,EAAU,KAAK,IAAI,EAAY,KAAK,IAAI,EAAU,OAAO,SAAS,CAAY,EAAE,EAAa,CAAC,CAAC,EAAE,EAAU,MAAM,WAAW,QAAQ,IAAY,EAAqB,QAAQ,CAAU,EAAE,CAAC,EAAwB,EAAe,CAAgB,CAAC,EAAQ,EAAkBA,MAAgB,CAAW,IAAS,SAAsB,EAAS,UAAU,MAAM,EAAO,qBAAqB,EAAS,OAAO,EAAG,EAAS,QAAQ,EAAO,0BAA0B,CAAC,EAAS,QAAQ,KAAK,EAAU,CAAE,CAAC,EAAE,EAAE,CAAC,CAAS,CAAC,EAA0wB,OAAxwB,MAAoB,CAAC,GAAU,IAAS,OAAY,OAAO,EAAkB,EAAE,IAAM,EAAO,EAAe,EAAE,GAAG,CAAC,EAAO,OAAO,IAAI,EAAe,KAAS,EAAiB,KAAsT,MAA9S,mBAAmB,IAAQ,EAAe,IAAI,mBAAmB,CAAC,EAAkB,CAAE,CAAC,EAAE,EAAe,QAAQ,CAAM,GAAM,qBAAqB,IAAQ,EAAiB,IAAI,qBAAqB,CAAC,EAAkB,CAAE,CAAC,EAAE,EAAiB,QAAQ,EAAO,CAAC,UAAU,GAAK,QAAQ,GAAK,cAAc,EAAI,CAAC,OAAa,CAAI,EAAS,UAAU,OAAM,EAAO,qBAAqB,EAAS,OAAO,EAAE,EAAS,QAAQ,MAAS,GAAe,EAAe,WAAW,EAAK,GAAiB,EAAiB,WAAW,EAAE,EAAwB,CAAE,CAAE,EAAE,CAAC,EAAwB,EAAe,CAAiB,CAAC,EAAsB,EAAK,MAAM,CAAC,IAAI,EAAW,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,EAAK,EAAU,CAAC,IAAI,EAAU,GAAG,EAAM,MAAM,CAAC,GAAG,GAAO,OAAO,CAAC,EAAE,aAAa,OAAO,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,CAAE,qBAD55I,IAAiE"}