vlist 1.6.5 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var Q1=2,q1=(J=0)=>({velocity:0,sampleCount:0}),Y1=(J,Q)=>{let Y=performance.now(),q=J._lt??Y,K=J._lp??Q,j=Y-q;if(J._lp=Q,J._lt=Y,j===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(j>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(Q-K)/j,J.sampleCount=Math.min(J.sampleCount+1,5),J};var Q4=(J,Q)=>{let Y=Q;return{getOffset:(q)=>q*J,getSize:(q)=>J,indexAtOffset:(q)=>{if(Y===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(q/J),Y-1))},getTotalSize:()=>Y*J,getTotal:()=>Y,rebuild:(q)=>{Y=q},isVariable:()=>!1}},q4=(J,Q)=>{let Y=Q,q=new Float64Array(0),K=(U)=>{Y=U,q=new Float64Array(U+1),q[0]=0;for(let _=0;_<U;_++)q[_+1]=q[_]+J(_)};K(Q);let j=(U)=>{if(Y===0)return 0;if(U<=0)return 0;if(U>=q[Y])return Y-1;let _=0,W=Y-1;while(_<W){let Z=_+W+1>>>1;if(q[Z]<=U)_=Z;else W=Z-1}return _};return{getOffset:(U)=>{if(U<=0)return 0;if(U>=Y)return q[Y];return q[U]},getSize:(U)=>J(U),indexAtOffset:(U)=>j(U),getTotalSize:()=>q[Y]??0,getTotal:()=>Y,rebuild:(U)=>K(U),isVariable:()=>!0}},f0=(J,Q)=>{if(typeof J==="number")return Q4(J,Q);return q4(J,Q)},j1=(J,Q,Y,q)=>{if(q===0)return 0;if(!J.isVariable())return Math.ceil(Y/J.getSize(0));let K=0,j=0,U=Q;while(U<q&&j<Y)j+=J.getSize(U),K++,U++;return Math.max(1,K)};var X1=()=>{let J={},Q=(j,U)=>{if(!J[j])J[j]=new Set;return J[j].add(U),()=>Y(j,U)},Y=(j,U)=>{J[j]?.delete(U)};return{on:Q,off:Y,emit:(j,U)=>{J[j]?.forEach((_)=>{try{_(U)}catch(W){console.error(`[vlist] Error in event handler for "${String(j)}":`,W)}})},clear:(j)=>{if(j)delete J[j];else for(let U in J)delete J[U]}}};var K1=(J)=>{if(typeof J==="string"){let Q=document.querySelector(J);if(!Q)throw Error(`[vlist] Container not found: ${J}`);return Q}return J},o0=(J,Q)=>{let Y=document.createElement("div");if(Y.className=J,Q)Y.style.cssText=Q;return Y},U1=(J,Q,Y,q,K)=>{let j=q,U=o0(Q);if(j)U.classList.add(`${Q}--horizontal`);if(K!==!1)U.setAttribute("tabindex","0");let _=o0(`${Q}-viewport`,j?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");_.setAttribute("tabindex","-1");let W=o0(`${Q}-content`,j?"position:relative;height:100%":"position:relative;width:100%"),Z=o0(`${Q}-items`,j?"position:relative;height:100%":"position:relative;width:100%");if(Z.setAttribute("role","listbox"),Y)Z.setAttribute("aria-label",Y);if(j)Z.setAttribute("aria-orientation","horizontal");let V=o0(`${Q}-live`,"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0");return V.setAttribute("aria-live","polite"),V.setAttribute("aria-atomic","true"),V.setAttribute("role","status"),W.appendChild(Z),_.appendChild(W),U.appendChild(V),U.appendChild(_),J.appendChild(U),{root:U,viewport:_,content:W,items:Z,liveRegion:V}};var Z1=(J=100)=>{let Q=[];return{acquire:()=>{let Y=Q.pop();if(Y)return Y;let q=document.createElement("div");return q.setAttribute("role","option"),q},release:(Y)=>{if(Q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Q.push(Y)},clear:()=>{Q.length=0}}};var B1=(J,Q,Y,q,K)=>{if(q===0||Q===0){K.start=0,K.end=-1;return}let j=Y.indexAtOffset(J),U=Y.indexAtOffset(J+Q);if(U<q-1)U++;K.start=Math.max(0,j),K.end=Math.min(q-1,Math.max(0,U))},N1=(J,Q,Y,q)=>{q.start=Math.max(0,J.start-Q),q.end=Math.min(Y-1,J.end+Q)},W1=(J,Q,Y,q,K,j=0)=>{if(q===0)return 0;let U=Math.max(0,Math.min(J,q-1)),_=Q.getOffset(U),W=Q.getSize(U),Z=Q.getTotalSize(),V=Math.max(0,Z+j-Y),b;switch(K){case"center":b=_-(Y-W)/2;break;case"end":b=j>0&&_+W>=Z?V:_-Y+W;break;default:b=_}return Math.max(0,Math.min(b,V))};var YJ={top:0,right:0,bottom:0,left:0},y0=(J)=>{if(J==null)return YJ;if(typeof J==="number")return J===0?YJ:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[j,U]=J;return j===0&&U===0?YJ:{top:j,right:U,bottom:j,left:U}}let[Q,Y,q,K]=J;return Q===0&&Y===0&&q===0&&K===0?YJ:{top:Q,right:Y,bottom:q,left:K}},u0=(J,Q)=>Q?J.left+J.right:J.top+J.bottom,jJ=(J,Q)=>Q?J.top+J.bottom:J.left+J.right;var g0=(J,Q,Y)=>{let q=Array.from(Q).sort((U,_)=>U-_);if(q.length<=1)return;let K=[];for(let U=0;U<q.length;U++){let _=Y(q[U]);if(_)K.push(_)}if(K.length<=1)return;let j=J.firstChild;for(let U=0;U<K.length;U++){let _=K[U];if(_===j)j=j.nextSibling;else J.insertBefore(_,j)}};var V1=(J,Q)=>{let{dom:Y,emitter:q,resolvedConfig:K,rawConfig:j,rendered:U,pool:_,sharedState:W,isHorizontal:Z,classPrefix:V,contentSizeHandlers:b,idleHandlers:G,afterScroll:H,clickHandlers:S,keydownHandlers:$,resizeHandlers:M,destroyHandlers:w,methods:z,onScrollFrame:C,resizeObserver:r,renderRange:v,afterRenderBatch:g}=Q;return{get dom(){return Y},get sizeCache(){return J.hc},get emitter(){return q},get config(){return K},get rawConfig(){return j},adjustScrollPosition(P){if(J.mp===0)return P;let m=Z?J.cw:J.ch,t=J.hc.getTotalSize(),s=Math.max(0,t-m),T=Math.max(0,t+J.mp-m);if(P>=s)return T;return Math.min(P,T)},get renderer(){return{render:(P,m,t,s,T)=>{J.ss=t,J.fi=s,J.ffn()},updateItemClasses:(P,m,t)=>{J.uic(P,m,t)},updatePositions:()=>{},updateItem:()=>{},getElement:(P)=>U.get(P)??null,clear:()=>{},destroy:()=>{}}},set renderer(P){},get dataManager(){return J.dm},set dataManager(P){J.dm=P},get scrollController(){return J.sc},set scrollController(P){J.sc=P},state:W,getContainerWidth(){return J.cw},afterScroll:H,idleHandlers:G,afterRenderBatch:g,clickHandlers:S,keydownHandlers:$,resizeHandlers:M,contentSizeHandlers:b,destroyHandlers:w,methods:z,replaceTemplate(P){J.at=P},replaceRenderer(P){},replaceDataManager(P){J.dm=P},replaceScrollController(P){J.sc=P},getItemsForRange(P){let{dm:m,it:t}=J,s=[];for(let T=P.start;T<=P.end;T++){let h=m?m.getItem(T):t[T];if(h)s.push(h)}return s},getAllLoadedItems(){let P=J.dm;if(P){let m=P.getTotal(),t=[];for(let s=0;s<m;s++){let T=P.getItem(s);if(T)t.push(T)}return t}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let P=J.hc;return{isCompressed:!1,actualSize:P.getTotalSize(),virtualSize:P.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:v.start,compression:W.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,P]of U)P.remove(),_.release(P);U.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(P,m){J.rfn=P,J.ffn=m},setVirtualTotalFn(P){J.vtf=P},rebuildSizeCache(P){J.hc.rebuild(P??J.vtf())},setSizeConfig(P){if(J.hc=f0(P,J.vtf()),J.gp>0){let m=J.hc.getTotalSize,t=J.gp;J.hc.getTotalSize=()=>{let s=m();return s>0?s-t:0}}},updateContentSize(P){let m=`${P+J.mp}px`;if(Z)Y.content.style.width=m;else Y.content.style.height=m},updateCompressionMode(){for(let P=0;P<b.length;P++)b[P]()},setVisibleRangeFn(P){J.gvr=P},getVisibleRange(P,m,t,s){J.gvr(P,m,J.hc,t,s)},setScrollToPosFn(P){J.gsp=P},getScrollToPos(P,m,t,s){return J.gsp(P,J.hc,m,t,s)},setPositionElementFn(P){J.pef=P},setScrollFns(P,m){J.sgt=P,J.sst=(t)=>{m(t),C()}},setScrollTarget(P){J.st.removeEventListener("scroll",C),J.st=P,J.st.addEventListener("scroll",C,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(P){J.gcw=P.width,J.gch=P.height,J.cw=P.width(),J.ch=P.height(),W.viewportState.containerSize=Z?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,r.unobserve(Y.viewport)},disableWheelHandler(){if(J.wh)Y.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(P){J.sif=P},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(P){J.i2s=P},setUpdateItemClassesFn(P){J.uic=P}}},_1=(J,Q,Y)=>{let{rendered:q,itemState:K,applyTemplate:j,updateContentSize:U}=Q,_=()=>{J.hc.rebuild(J.vtf()),U(),Y.updateCompressionMode(),J.ffn()},W=()=>J.it.length;return{getState:()=>({total:W(),cached:W(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:W,getCached:W,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(Z)=>J.it[Z],isItemLoaded:(Z)=>Z>=0&&Z<W()&&J.it[Z]!==void 0,getItemsInRange:(Z,V)=>{let b=[];for(let G=Math.max(0,Z),H=Math.min(V,W()-1);G<=H;G++)b.push(J.it[G]);return b},setTotal:()=>{},setItems:(Z,V=0,b)=>{if(V===0&&(b!==void 0||W()===0))J.it=Z;else{let G=V+Z.length;if(W()<G)J.it.length=G;for(let H=0;H<Z.length;H++)J.it[V+H]=Z[H]}if(J.ii)_()},updateItem:(Z,V)=>{let b=J.it;if(Z<0||Z>=b.length)return!1;let G=b[Z];if(!G)return!1;b[Z]={...G,...V};let H=q.get(Z);if(H)j(H,J.at(b[Z],Z,K)),H.dataset.id=String(b[Z].id);return!0},removeItem:(Z)=>{let V=typeof Z==="number"?Z:J.it.findIndex((b)=>b.id===Z);if(V<0||V>=J.it.length)return!1;if(J.it.splice(V,1),J.ii)_();return!0},loadRange:async()=>{},ensureRange:async()=>{},loadInitial:async()=>{},loadMore:async()=>!1,reload:async()=>{},evictDistant:()=>{},clear:()=>{J.it=[]},reset:()=>{if(J.it=[],J.ii)J.hc.rebuild(0),U(),J.ffn()}}},G1=(J,Q)=>{let{dom:Y,classPrefix:q}=Q;return{getScrollTop:()=>J.sgt(),scrollTo:(K)=>{J.sst(K),J.ls=K,J.rfn()},scrollBy:(K)=>{let j=J.sgt()+K;J.sst(j),J.ls=j,J.rfn()},isAtTop:()=>J.ls<=2,isAtBottom:(K=2)=>J.sab(K),getScrollPercentage:()=>{let K=J.hc.getTotalSize(),j=Math.max(0,K-J.ch);return j>0?J.ls/j:0},getVelocity:()=>J.vt.velocity,isTracking:()=>J.vt.sampleCount>=2,isScrolling:()=>Y.root.classList.contains(`${q}--scrolling`),updateConfig:()=>{},enableCompression:()=>{J.sic=!0},disableCompression:()=>{J.sic=!1},isCompressed:()=>J.sic,isWindowMode:()=>!1,updateContainerHeight:(K)=>{J.ch=K},destroy:()=>{}}};var LJ=(J,Q,Y,q,K=0,j=0)=>{let U=Q.getOffset(J),_=Q.getSize(J),W=U+K,Z=W+_,V=Y+q;if(W<Y)return Math.max(0,U);if(Z>V)return Z+j-q;return Y},XJ=(J,Q,Y,q,K=0,j=0,U,_,W)=>{if(!(U!=null&&U.isCompressed&&U.ratio!==1))return LJ(J,Q,Y,q,K,j);let V=_,{virtualSize:b}=U,G=Q.getSize(Math.max(0,J)),H=q-K-j,S=Math.max(1,Math.floor(H/G)),$=b/V;if(W){if(J>=W.start+S){let z=H/G,C=J+1-z;return Math.max(0,C*$)}if(J<=W.start)return Math.max(0,J*$);return Y}let M=Y/b*V,w=M+S;if(J>=w){let z=H/G,C=J+1-z;return Math.max(0,C*$)}if(J<M)return Math.max(0,J*$);return Y};var D1=(J,Q,Y,q,K,j,U,_,W,Z,V,b,G,H)=>{let S=`${Y}-item--focused`,$=!1,M=null,w=null,z=null,C=null,r=!1,v=()=>{if(r)return;r=!0,M=W.get("_getNavTotal")??null,w=W.get("_getNavDelta")??null,z=W.get("_navigate")??null,C=W.get("_scrollItemIntoView")??null},g=()=>{return v(),M?M():J.vtf()},P=()=>{return v(),w?w():{ud:1,lr:0,cols:0}};W.set("_getFocusedIndex",()=>$?J.fi:-1);let m=(l,F=!0)=>{if(Q.root.setAttribute("aria-activedescendant",`${q}-item-${l}`),v(),F)if(C)C(l);else{let E=K?J.cw:J.ch,L=J.i2s(l),f=LJ(L,J.hc,J.ls,E,j,U);if(f!==J.ls)J.sst(f),J.ls=J.sgt()}J.ffn()},t=(l)=>{J.fi=l,$=!0,m(l)},s=(l,F)=>{if(J.fi=l,F||H)$=!0;let E=J.dm?J.dm.getItem(l):J.it[l];if(E&&J.ss.has(E.id))J.ss.clear();else if(J.ss.clear(),E)J.ss.add(E.id);m(l,F)},T=(l,F,E)=>{let L=l;while(L>=0&&L<E){let f=J.dm?J.dm.getItem(L):J.it[L];if(!f||!f.__groupHeader)return L;L+=F}L=l-F;while(L>=0&&L<E){let f=J.dm?J.dm.getItem(L):J.it[L];if(!f||!f.__groupHeader)return L;L-=F}return l},h=()=>{if(J.id)return;if(!Q.root.matches(":focus-visible"))return;let l=g();if(l===0)return;let F=J.fi>=0?Math.min(J.fi,l-1):0;F=T(F,1,l),t(F)};Q.root.addEventListener("focusin",h);let I=(l)=>{if(J.id)return;let F=l.relatedTarget;if(F&&Q.root.contains(F))return;if($=!1,J.fi>=0)Z.get(J.fi)?.classList.remove(S);Q.root.removeAttribute("aria-activedescendant")};Q.root.addEventListener("focusout",I),V.push((l)=>{if(J.id)return;let F=g();if(F===0)return;let E=J.fi,L=E;if(l.key===" "||l.key==="Enter"){if(E>=0){let f=J.dm?J.dm.getItem(E):J.it[E];if(f&&!f.__groupHeader)s(E,!0)}l.preventDefault();return}if(v(),z)switch(l.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":L=z(E,l.key,F);break;default:return}else{let{ud:f,lr:a}=P();switch(l.key){case"ArrowUp":L=E-f;break;case"ArrowDown":L=E+f;break;case"ArrowLeft":if(!a)return;L=E-a;break;case"ArrowRight":if(!a)return;L=E+a;break;case"PageUp":case"PageDown":{let c=J.hc.getSize(J.i2s(Math.max(0,E))),u=Math.max(f,Math.floor((K?J.cw:J.ch)/c)*f);L=l.key==="PageUp"?E-u:E+u;break}case"Home":L=0;break;case"End":L=F-1;break;default:return}if(L<0)L=_?F-1:0;else if(L>=F)L=_?0:F-1}if(l.preventDefault(),L=T(L,L>=E?1:-1,F),L!==E)t(L)}),b.push((l)=>{if(J.id)return;let F=l.target.closest("[data-index]");if(!F)return;let E=parseInt(F.dataset.index??"-1",10);if(E<0)return;let L=J.dm?.getItem(E)??J.it[E];if(!L||L.__groupHeader)return;$=!1,Q.root.focus({preventScroll:!0}),s(E,!1)}),G.push(()=>{Q.root.removeEventListener("focusin",h),Q.root.removeEventListener("focusout",I)})};var FJ=200,x0=50;var M1=50,O1=12,E1=2,m0=16000000;var A1="x",L1=20,TJ="_isPlaceholder",R0="__placeholder_";var w0=(J,Q,Y)=>{if(String(Y).startsWith(R0))return!1;let q=R0+Q;if(J.has(q))return J.delete(q),J.add(Y),!0;return!1},F1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),d0=(J,Q,Y)=>{if(Y==="none")return J;let q=new Set(J.selected);if(Y==="single"){if(q.clear(),Q.length>0)q.add(Q[0])}else for(let K of Q)q.add(K);return{...J,selected:q}},bJ=(J,Q)=>{let Y=new Set(J.selected);for(let q of Q)Y.delete(q);return{...J,selected:Y}},c0=(J,Q,Y)=>{if(Y==="none")return J;if(J.selected.has(Q))return bJ(J,[Q]);else return d0(J,[Q],Y)},HJ=(J,Q,Y)=>{if(Y!=="multiple")return J;return{...J,selected:new Set(Q.map((q)=>q.id))}},kJ=(J)=>({...J,selected:new Set}),I0=(J,Q)=>{return J.focusedIndex=Q,J},KJ=(J,Q,Y=!1,q=1)=>{if(Q===0)return J;let K=J.focusedIndex-q;if(K<0)K=Y?Q-1:0;return J.focusedIndex=K,J},UJ=(J,Q,Y=!1,q=1)=>{if(Q===0)return J;let K=J.focusedIndex+q;if(K>=Q)K=Y?0:Q-1;return J.focusedIndex=K,J},T1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=0,J},b1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=Q-1,J},$J=(J,Q,Y,q)=>{if(Q===0)return J;let K=q==="up"?J.focusedIndex-Y:J.focusedIndex+Y;return K=Math.max(0,Math.min(Q-1,K)),J.focusedIndex=K,J};var yJ=(J)=>{return Array.from(J.selected)},PJ=(J,Q)=>{let Y=[];for(let q of J.selected){let K=Q(q);if(K)Y.push(K)}return Y};var ZJ=(J,Q,Y,q,K)=>{if(K!=="multiple")return J;let j=Math.min(Y,q),U=Math.max(Y,q),_=[];for(let W=j;W<=U;W++){let Z=Q[W];if(Z)_.push(Z.id)}return d0(J,_,K)};var RJ=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,z0=(J)=>{let Q=typeof J==="object"&&J?J:null;return{align:typeof J==="string"?J:Q?.align??"start",behavior:Q?.behavior??"auto",duration:Q?.duration??300}},l0=(J,Q)=>{let Y=null,q=()=>{if(Y!==null)cancelAnimationFrame(Y),Y=null};return{animateScroll:(j,U,_)=>{if(q(),Math.abs(U-j)<1){J.scrollTo(U);return}let W=performance.now(),Z=(V)=>{let b=V-W,G=Math.min(b/_,1),H=j+(U-j)*RJ(G);if(J.scrollTo(H),Q(),G<1)Y=requestAnimationFrame(Z);else Y=null};Y=requestAnimationFrame(Z)},cancelScroll:q}};var H1=(J,Q,Y,q,K,j,U,_,W,Z,V,b,G,H,S,$,M,w)=>{let z=(D)=>{{if(!Array.isArray(D)){console.warn("[vlist] setItems() expects an array, got:",typeof D);return}if(D.length>0&&D[0]&&!("id"in D[0]))console.warn('[vlist] Items must have an "id" property. First item:',D[0]);let A=Math.min(D.length,1e4),N=new Set;for(let y=0;y<A;y++){let O=D[y];if(O&&"id"in O){if(N.has(O.id)){console.warn(`[vlist] Duplicate item ID "${O.id}" at index ${y}. updateItem() and removeItem() will only match the first occurrence.`);break}N.add(O.id)}}}L(),W.dataManager.setItems(D,0,D.length)},C=(D)=>{let A=Z&&J.sab(2);if(W.dataManager.setItems(D,J.it.length),A&&J.it.length>0){let N=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(N),J.ls=N,J.rfn()}},r=(D)=>{let A=Z?J.sgt():0,N=Z?J.hc.getTotalSize():0,y=[...J.it];if(W.dataManager.clear(),W.dataManager.setItems([...D,...y],0),Z){let O=J.hc.getTotalSize()-N;if(O>0)J.sst(A+O),J.ls=A+O}},v=null,g=null,P=null,m=!1,t=()=>{if(m)return;m=!0,v=j.get("_updateRenderedItem")??null,g=j.get("_getSelectedIds")??null,P=j.get("_getFocusedIndex")??null},s=(D,A)=>{{let y=J.vtf();if(D<0||D>=y)console.warn(`[vlist] updateItem() index ${D} is out of range (0–${y-1}).`)}if(W.dataManager.updateItem(D,A),t(),!v)return;let N=W.dataManager.getItem(D);if(N){let O=(g?g():J.ss).has(N.id),k=(P?P():J.fi)===D;v(D,N,O,k)}},T=!1,h=(D)=>{let A=typeof document<"u"?document.activeElement:null,N=A&&Q.items.contains(A)?parseInt(A.dataset?.index??"-1",10):-1;if(!W.dataManager.removeItem(D))return console.warn(`[vlist] removeItem() could not find item with id "${D}".`),!1;if(Y.emit("data:change",{type:"remove",id:D}),W.forceRender(),!T){let O=W.dataManager;if(typeof O.ensureRange==="function")T=!0,queueMicrotask(()=>{T=!1;let k=W.dataManager.getTotal(),{start:x,end:n}=W.state.viewportState.renderRange;if(k>0&&n>=x)O.ensureRange(x,n).catch(()=>{})})}if(N>=0){let O=J.vtf();if(O>0)q.get(Math.min(N,O-1))?.focus()}return!0},I=(D)=>{return W.dataManager.getItem(D)},l=(D)=>{return W.dataManager.getIndexById?.(D)??-1},F=async(D)=>{if(W.dataManager.reload)await W.dataManager.reload()},E=null,L=()=>{if(E!==null)cancelAnimationFrame(E),E=null},f=(D,A,N,y)=>{if(L(),Math.abs(A-D)<1){J.sst(A),J.ls=A,J.rfn();return}let O=performance.now(),k=(x)=>{let n=x-O,e=Math.min(n/N,1),J0=y?y():A,j0=D+(J0-D)*RJ(e);if(J.sst(j0),J.ls=j0,J.rfn(),e<1)E=requestAnimationFrame(k);else E=null};E=requestAnimationFrame(k)},a=(D,A)=>{{let e=J.vtf();if(e>0&&(D<0||D>=e))console.warn(`[vlist] scrollToIndex(${D}) is out of range (0–${e-1}).`)}let{align:N,behavior:y,duration:O}=z0(A),k=J.vtf(),x=D;if(V&&k>0)x=(x%k+k)%k;let n=J.gsp(x,J.hc,J.ch,k,N);if(y==="smooth"){let e=x,J0=N;f(J.sgt(),n,O,()=>J.gsp(e,J.hc,J.ch,J.vtf(),J0))}else L(),J.sst(n)},c=()=>J.sgt(),u=(D,A)=>{return Y.on(D,A)},p=(D,A)=>{Y.off(D,A)},B=()=>{if(J.id)return;if(J.id=!0,W.state.isDestroyed=!0,Q.items.removeEventListener("click",b),Q.items.removeEventListener("dblclick",G),Q.root.removeEventListener("keydown",H),J.st.removeEventListener("scroll",S),$.disconnect(),M(),J.wh)Q.viewport.removeEventListener("wheel",J.wh);w();let D=[];for(let A=0;A<_.length;A++)try{_[A]()}catch(N){D.push(N instanceof Error?N:Error(String(N)))}for(let A of U)if(A.destroy)try{A.destroy()}catch(N){D.push(N instanceof Error?N:Error(String(N)))}L();for(let[,A]of q)A.remove(),K.release(A);q.clear(),K.clear(),Y.emit("destroy",void 0);for(let A of D)Y.emit("error",{error:A,context:"destroy"});Y.clear(),Q.root.remove()},X=(D,A)=>j.has(D)?j.get(D):A,R={get element(){return Q.root},get items(){let D=j.get("_getItems");return D?D():J.it},get total(){let D=j.get("_getTotal");return D?D():J.vtf()},setItems:X("setItems",z),appendItems:X("appendItems",C),prependItems:X("prependItems",r),updateItem:X("updateItem",s),removeItem:X("removeItem",h),reload:X("reload",F),getItemAt:I,getIndexById:l,scrollToIndex:X("scrollToIndex",a),cancelScroll:X("cancelScroll",L),getScrollPosition:X("getScrollPosition",c),on:u,off:p,destroy:B};for(let[D,A]of j){if(D.charCodeAt(0)===95||D==="setItems"||D==="appendItems"||D==="prependItems"||D==="updateItem"||D==="removeItem"||D==="reload"||D==="scrollToIndex"||D==="scrollToItem"||D==="cancelScroll"||D==="getScrollPosition")continue;R[D]=A}return R};var Y4=3,j4="vlist",X4=150,K4=16000000,U4=0,wJ=(J)=>{if(!J.container)throw Error("[vlist] Container is required");if(!J.item)throw Error("[vlist] item configuration is required");let Q=J.orientation==="horizontal",Y=Q?"width":"height",q=Q?"estimatedWidth":"estimatedHeight",K=Q?J.item.width:J.item.height,j=Q?J.item.estimatedWidth:J.item.estimatedHeight;if(K==null&&j==null)throw Error(`[vlist] item.${Y} or item.${q} is required${Q?" when orientation is 'horizontal'":""}`);if(K!=null){if(typeof K==="number"&&K<=0)throw Error(`[vlist] item.${Y} must be a positive number`);if(typeof K!=="number"&&typeof K!=="function")throw Error(`[vlist] item.${Y} must be a number or a function (index) => number`)}else if(j!=null){if(typeof j!=="number"||j<=0)throw Error(`[vlist] item.${q} must be a positive number`)}if(!J.item.template)throw Error("[vlist] item.template is required");if(Q&&J.reverse)throw Error("[vlist] horizontal direction cannot be combined with reverse mode");let U=new Map,_=!1,W={use(Z){if(_)throw Error("[vlist] Cannot call .use() after .build()");return U.set(Z.name,Z),W},build(){if(_)throw Error("[vlist] .build() can only be called once");return _=!0,Z4(J,U,Q,K,j??null)}};return W};function Z4(J,Q,Y,q,K){let{item:j,items:U,overscan:_=Y4,classPrefix:W=j4,ariaLabel:Z,padding:V,reverse:b=!1,scroll:G,accessible:H,interactive:S}=J,$=S??H??!0,M=G,w=M?.wheel??!0,z=M?.wrap??!1,C=b,r=`${W}-${U4++}`,v=Q.has("withGrid")||Q.has("withMasonry")?0:j.gap??0,g=q??K,P=q==null&&K!=null,m=Y?typeof j.height==="number"?j.height:void 0:typeof j.width==="number"?j.width:void 0,t={overscan:_,classPrefix:W,reverse:C,wrap:z,horizontal:Y,ariaIdPrefix:r,interactive:$},s=Array.from(Q.values()).sort((d,i)=>(d.priority??50)-(i.priority??50)),T=new Set(s.map((d)=>d.name));for(let d of s)if(d.conflicts){for(let i of d.conflicts)if(T.has(i))throw Error(`[vlist] ${d.name} and ${i} cannot be combined`)}if(C){if(T.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let h=K1(J.container),I=U1(h,W,Z,Y,$);if(M?.wheel===!1)if(Y)I.viewport.style.overflowX="hidden";else I.viewport.style.overflow="hidden";if(M?.scrollbar==="none")I.viewport.classList.add(`${W}-viewport--no-scrollbar`);if(M?.gutter==="stable")I.viewport.classList.add(`${W}-viewport--gutter-stable`);let l=T.has("withGrid")||T.has("withMasonry");if(Y&&m!=null&&M?.scrollbar!=="none"&&!l){I.root.style.height=`${m}px`;let d=I.viewport.style.overflowX;I.viewport.style.overflowX="scroll";let i=I.viewport.offsetHeight-I.viewport.clientHeight;if(I.viewport.style.overflowX=d,i>0)I.root.style.height=`${m+i}px`}let F=y0(V),E=u0(F,Y);if(F.top||F.right||F.bottom||F.left)I.content.style.boxSizing="border-box",I.content.style.padding=`${F.top}px ${F.right}px ${F.bottom}px ${F.left}px`;let L=X1(),f=U||[],a=typeof g==="function"&&(Q.has("withGrid")||Q.has("withMasonry")),c=v>0?typeof g==="function"?(d)=>g(d)+v:g+v:g,u=P?K+v:c,p=f0(u,a?0:f.length);if(v>0){let d=p.getTotalSize;p.getTotalSize=()=>{let i=d();return i>0?i-v:0}}let B=Z1(),X={it:f,hc:p,ch:I.viewport.clientHeight,cw:I.viewport.clientWidth,id:!1,ii:!1,ls:0,vt:q1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:Y?()=>I.viewport.scrollLeft:()=>I.viewport.scrollTop,sst:Y?(d)=>{I.viewport.scrollLeft=d}:(d)=>{I.viewport.scrollTop=d},sab:(d=2)=>{let i=X.hc.getTotalSize();return X.ls+X.ch>=i-d},sic:!1,rfn:null,ffn:null,gvr:(d,i,Y0,G0,F0)=>{B1(d,i,Y0,G0,F0)},gsp:(d,i,Y0,G0,F0)=>{return W1(d,i,Y0,G0,F0,X.mp)},pef:null,at:j.template,vre:!0,st:I.viewport,wh:null,gcw:()=>X.cw,gch:()=>X.ch,gp:v,mp:E,sif:(d)=>d,i2s:(d)=>d,uic:(d,i,Y0)=>{let G0=x.get(d);if(!G0)return;q0(G0,i,Y0)},csi:null};X.vtf=()=>X.dm?X.dm.getTotal():X.it.length;let R=null,D=!1,A={start:0,end:0},N={start:0,end:0},y={start:-1,end:-1},O={viewportState:{scrollPosition:0,containerSize:Y?X.cw:X.ch,totalSize:X.hc.getTotalSize(),actualSize:X.hc.getTotalSize(),isCompressed:!1,compressionRatio:1,visibleRange:{start:0,end:0},renderRange:{start:0,end:0}},lastRenderRange:{start:-1,end:-1},isInitialized:!1,isDestroyed:!1,cachedCompression:null},k=()=>({...O.viewportState,totalItems:X.vtf()}),x=new Map,n=()=>{g0(I.items,x.keys(),(d)=>x.get(d))},e=()=>{let d=X.hc.getTotalSize(),Y0=`${(X.sic?d:Math.min(d,K4))+E}px`;if(Y)I.content.style.width=Y0;else I.content.style.height=Y0},J0={selected:!1,focused:!1},j0=`${W}-item`,o=`${W}-item--selected`,Q0=`${W}-item--focused`,q0=(d,i,Y0)=>{d.classList.toggle(o,i),d.classList.toggle(Q0,Y0),d.ariaSelected=i?"true":"false"},U0=j.striped,Z0=!!U0,N0=U0==="data"||U0==="even"||U0==="odd",D0=`${W}-item--odd`,E0=`${W}-item--placeholder`,X0=`${W}-item--replaced`,V0=`${W}--scrolling`,K0=[],_0=[],W0=[],B0=[],A0=[],O0=[],L0=[],$0=[],P0=new Map,WJ="__placeholder_",VJ={scrollPosition:0,direction:"down"},h0={velocity:0,reliable:!1},_J={range:{start:0,end:0}},GJ=null,DJ=null,aJ=!1,r1=()=>{if(aJ)return;aJ=!0,GJ=P0.get("_getSelectedIds")??null,DJ=P0.get("_getFocusedIndex")??null},e0=(d,i,Y0)=>{if(!i)console.warn(`[vlist] Template returned falsy value${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);else if(typeof i==="string"&&i==="")console.warn(`[vlist] Template returned empty string${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);if(typeof i==="string")d.innerHTML=i;else d.replaceChildren(i)},a1=(d,i)=>{let Y0=Math.round(X.hc.getOffset(i));if(Y)d.style.transform=`translateX(${Y0}px)`;else d.style.transform=`translateY(${Y0}px)`};X.pef=a1;let s1=(d,i)=>{let Y0=B.acquire();Y0.className=j0;let G0=!X.csi||X.csi(d);if(Y){if(G0)Y0.style.width=`${X.hc.getSize(d)-v}px`;else Y0.style.width="";if(m!=null)Y0.style.height=`${m}px`}else if(G0)Y0.style.height=`${X.hc.getSize(d)-v}px`;else Y0.style.height="";if(Y0.dataset.index=String(d),Y0.dataset.id=String(i.id),Y0.ariaSelected="false",Y0.id=`${r}-item-${d}`,X.la=String(X.vtf()),Y0.setAttribute("aria-setsize",X.la),Y0.setAttribute("aria-posinset",String(d+1)),String(i.id).startsWith(WJ))Y0.classList.add(E0);if(Z0)if(N0){let b0=X.sif(d);if(b0<0)Y0.classList.remove(D0);else Y0.classList.toggle(D0,(b0&1)===1)}else Y0.classList.toggle(D0,(d&1)===1);try{e0(Y0,X.at(i,d,J0),d)}catch(b0){let T0=b0 instanceof Error?b0:Error(String(b0));L.emit("error",{error:T0,context:`tpl(${d},${i.id})`,viewport:k()}),Y0.textContent=""}return X.pef(Y0,d),Y0},o1=()=>{if(X.id)return;let d=Y?X.cw:X.ch;if(d<=0)return;r1();let i=GJ?GJ():X.ss,Y0=DJ?DJ():X.fi,G0=X.vtf();if(X.gvr(X.ls,d,X.hc,G0,A),N1(A,_,G0,N),N.start===y.start&&N.end===y.end){if(X.sic)for(let[M0,H0]of x)X.pef(H0,M0);O.viewportState.scrollPosition=X.ls,O.viewportState.containerSize=d,O.viewportState.visibleRange.start=A.start,O.viewportState.visibleRange.end=A.end,O.viewportState.renderRange.start=N.start,O.viewportState.renderRange.end=N.end;return}let F0=String(G0),b0=F0!==X.la;X.la=F0;for(let[M0,H0]of x)if(M0<N.start||M0>N.end)H0.remove(),B.release(H0),x.delete(M0);let T0=document.createDocumentFragment(),v0=!1,s0=L0.length>0?[]:null;for(let M0=N.start;M0<=N.end;M0++){let H0=X.dm?X.dm.getItem(M0):X.it[M0];if(H0===void 0)continue;let k0=x.get(M0);if(k0){let S0=k0.dataset.id,p0=String(H0.id);if(S0!==p0){let e1=S0?.startsWith(WJ),EJ=p0.startsWith(WJ);try{e0(k0,X.at(H0,M0,J0),M0)}catch(AJ){let J4=AJ instanceof Error?AJ:Error(String(AJ));L.emit("error",{error:J4,context:`tpl(${M0},${H0.id})`,viewport:k()}),k0.textContent=""}k0.dataset.id=p0;let J1=!X.csi||X.csi(M0);if(Y)k0.style.width=J1?`${X.hc.getSize(M0)-v}px`:"";else k0.style.height=J1?`${X.hc.getSize(M0)-v}px`:"";if(EJ)k0.classList.add(E0);else k0.classList.remove(E0);if(e1&&!EJ)k0.classList.add(X0),setTimeout(()=>{k0.classList.remove(X0)},300);if(X.dm&&!EJ)w0(i,M0,H0.id)}X.pef(k0,M0);let qJ=i.has(H0.id);if(q0(k0,qJ,M0===Y0),b0)k0.setAttribute("aria-setsize",X.la)}else{let S0=s1(M0,H0);if(s0)s0.push({index:M0,element:S0});if(X.dm)w0(i,M0,H0.id);let p0=i.has(H0.id),qJ=M0===Y0;if(p0||qJ)q0(S0,p0,qJ);T0.appendChild(S0),x.set(M0,S0),v0=!0}}if(v0)I.items.appendChild(T0);if(s0&&s0.length>0)for(let M0=0;M0<L0.length;M0++)L0[M0](s0);y.start=N.start,y.end=N.end,O.lastRenderRange.start=N.start,O.lastRenderRange.end=N.end,O.viewportState.scrollPosition=X.ls,O.viewportState.visibleRange.start=A.start,O.viewportState.visibleRange.end=A.end,O.viewportState.renderRange.start=N.start,O.viewportState.renderRange.end=N.end,_J.range.start=N.start,_J.range.end=N.end,L.emit("range:change",_J)},n1=()=>{y.start=-1,y.end=-1,X.rfn()};X.rfn=o1,X.ffn=n1;let i1=()=>{I.root.classList.remove(V0),D=!1,X.vt.velocity=0,X.vt.sampleCount=0,h0.velocity=0,h0.reliable=!1,L.emit("velocity:change",h0),n();for(let d=0;d<_0.length;d++)_0[d]();L.emit("scroll:idle",{scrollPosition:X.ls})},t1=()=>{if(R)clearTimeout(R);R=setTimeout(i1,M?.idleTimeout??X4)},a0=()=>{if(X.id)return;let d=X.sgt();if(d===X.ls&&D)return;let i=d>=X.ls?"down":"up";if(X.vt=Y1(X.vt,d),!I.root.classList.contains(V0))I.root.classList.add(V0);D=!0,X.ls=d,X.rfn(),VJ.scrollPosition=d,VJ.direction=i,L.emit("scroll",VJ),h0.velocity=X.vt.velocity,h0.reliable=X.vt.sampleCount>=Q1,L.emit("velocity:change",h0);for(let Y0=0;Y0<K0.length;Y0++)K0[Y0](d,i);t1()},JJ=null;if(X.st.addEventListener("scroll",a0,{passive:!0}),w){let d=I.viewport;if(Y)JJ=(i)=>{if(O.viewportState.isCompressed)return;if(Math.abs(i.deltaX)>Math.abs(i.deltaY))return;let Y0=X.sgt(),G0=d.scrollWidth-d.clientWidth,F0=Math.max(0,Math.min(Y0+i.deltaY,G0));if(Math.abs(F0-Y0)<1)return;i.preventDefault(),X.sst(F0),a0()};else JJ=(i)=>{if(O.viewportState.isCompressed)return;let Y0=d.scrollWidth>d.clientWidth;if(Y0&&Math.abs(i.deltaX)>Math.abs(i.deltaY))return;if(Y0&&i.deltaX!==0)i.preventDefault(),d.scrollLeft+=i.deltaX;let G0=X.sgt(),F0=d.scrollHeight-d.clientHeight,b0=Math.max(0,Math.min(G0+i.deltaY,F0));if(Math.abs(b0-G0)<1)return;i.preventDefault(),X.sst(b0),a0()};X.wh=JJ,d.addEventListener("wheel",JJ,{passive:!1})}let sJ=(d)=>{let i=d.target.closest("[data-index]");if(!i)return null;let Y0=parseInt(i.dataset.index??"-1",10);if(Y0<0)return null;let G0=X.dm?.getItem(Y0)??X.it[Y0];if(!G0||G0.__groupHeader)return null;return{item:G0,index:Y0}},oJ=(d)=>{let i=sJ(d);if(i)L.emit("item:click",{item:i.item,index:i.index,event:d});for(let Y0=0;Y0<W0.length;Y0++)W0[Y0](d)},nJ=(d)=>{let i=sJ(d);if(i)L.emit("item:dblclick",{item:i.item,index:i.index,event:d})},iJ=(d)=>{for(let i=0;i<B0.length;i++)B0[i](d)};if(I.items.addEventListener("click",oJ),I.items.addEventListener("dblclick",nJ),I.root.addEventListener("keydown",iJ),$){let d=null,i=(Y0)=>{if(d)clearTimeout(d);d=setTimeout(()=>{if(d=null,X.id)return;let G0=X.vtf();I.liveRegion.textContent=`Showing items ${Y0.range.start+1} to ${Math.min(Y0.range.end+1,G0)} of ${G0}`},300)};L.on("range:change",i),$0.push(()=>{if(d)clearTimeout(d);L.off("range:change",i)})}let MJ=new ResizeObserver((d)=>{if(X.id)return;for(let i of d){let Y0=i.contentRect.height,G0=i.contentRect.width,F0=Y?G0:Y0,b0=Y?X.cw:X.ch;if(X.cw=G0,X.ch=Y0,Math.abs(F0-b0)>1){if(O.viewportState.containerSize=F0,X.ii){let T0=O.cachedCompression;if(T0&&T0.state.isCompressed){let v0=`${T0.state.virtualSize+E}px`;if(Y)I.content.style.width=v0;else I.content.style.height=v0}else e();X.rfn(),L.emit("resize",{height:Y0,width:G0})}}if(X.ii)for(let T0=0;T0<A0.length;T0++)A0[T0](G0,Y0)}});if(X.vre)MJ.observe(I.viewport);let OJ={dom:I,emitter:L,resolvedConfig:t,rawConfig:J,rendered:x,pool:B,itemState:J0,sharedState:O,renderRange:N,isHorizontal:Y,classPrefix:W,contentSizeHandlers:O0,idleHandlers:_0,afterScroll:K0,clickHandlers:W0,keydownHandlers:B0,resizeHandlers:A0,destroyHandlers:$0,methods:P0,onScrollFrame:a0,resizeObserver:MJ,afterRenderBatch:L0,applyTemplate:e0,updateContentSize:e},QJ=V1(X,OJ);X.dm=_1(X,OJ,QJ),X.sc=G1(X,OJ),P0.set("_updateRenderedItem",(d,i,Y0,G0)=>{let F0=x.get(d);if(!F0)return;let b0={selected:Y0,focused:G0};try{let T0=X.at(i,d,b0);e0(F0,T0,d)}catch(T0){let v0=T0 instanceof Error?T0:Error(String(T0));L.emit("error",{error:v0,context:`tpl(${d},${i.id})`,viewport:k()})}F0.dataset.id=String(i.id),q0(F0,Y0,G0)});let tJ=new WeakSet;P0.set("_setSizeCache",(d)=>{if(X.hc=d,X.gp>0&&!tJ.has(d)){tJ.add(d);let i=X.hc.getTotalSize,Y0=X.gp;X.hc.getTotalSize=()=>{let G0=i();return G0>0?G0-Y0:0}}}),P0.set("_setConstrainSize",(d)=>{X.csi=d});let eJ=new Map;for(let d of s)if(d.methods)for(let i of d.methods){let Y0=eJ.get(i);if(Y0)throw Error(`[vlist] Method "${i}" is registered by both "${Y0}" and "${d.name}"`);eJ.set(i,d.name)}for(let d of s)try{d.setup(QJ)}catch(i){let Y0=i instanceof Error?i:Error(String(i));console.error(`[vlist] Feature "${d.name}" setup failed:`,Y0),L.emit("error",{error:Y0,context:d.name,viewport:k()})}if(P&&!Q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if($&&!P0.has("_getFocusedIndex")){let d=Y?F.left:F.top,i=Y?F.right:F.bottom;D1(X,I,W,r,Y,d,i,z,P0,x,B0,W0,$0,!!J.focusOnClick)}if(X.ii=!0,QJ.state.isInitialized=!0,e(),X.rfn(),C&&X.it.length>0){let d=X.gsp(X.it.length-1,X.hc,X.ch,X.it.length,"end");X.sst(d),X.ls=d,X.rfn()}return H1(X,I,L,x,B,P0,s,$0,QJ,C,z,oJ,nJ,iJ,a0,MJ,()=>{},()=>{if(R)clearTimeout(R)})}var n0=(J,Q,Y)=>{let q=Q.getTotalSize(),K=Y===!0||q>m0,j=q>m0?m0:q,U=q>0?j/q:1;return{isCompressed:K,actualSize:q,virtualSize:j,ratio:U}},k1=(J,Q,Y,q,K,j)=>{if(q===0||Q===0)return j.start=0,j.end=-1,j;if(!K.isCompressed||K.ratio===1){let G=Y.indexAtOffset(J),H=Y.indexAtOffset(J+Q);if(H<q-1)H++;return j.start=Math.max(0,G),j.end=Math.min(q-1,Math.max(0,H)),j}let{virtualSize:U}=K,W=J/U*q,Z=Math.floor(W),V=j1(Y,Math.max(0,Z),Q,q),b=Math.ceil(W)+V;return j.start=Math.max(0,Z),j.end=Math.min(q-1,Math.max(0,b)),j};var r0=(J,Q,Y,q,K,j,U)=>{if(!j.isCompressed||q===0)return Y.getOffset(J);if(j.ratio===1)return Y.getOffset(J)-Q;let{virtualSize:_}=j,W=Q/_,Z=Y.getTotalSize(),V=W*Z;return Y.getOffset(J)-V},$1=(J,Q,Y,q,K,j="start")=>{if(q===0)return 0;let U;if(K.isCompressed&&K.ratio!==1){U=J/q*K.virtualSize;let V=Q.getSize(J);switch(j){case"center":U-=(Y-V)/2*K.ratio;break;case"end":U-=(Y-V)*K.ratio;break}return Math.max(0,U)}U=Q.getOffset(J);let _=Q.getSize(J);switch(j){case"center":U-=(Y-_)/2;break;case"end":U-=Y-_;break}let W=K.virtualSize-Y;return Math.max(0,Math.min(U,W))};var B4=(J)=>{if(typeof J!=="object"){let Q=J??2;return{top:Q,right:Q,bottom:Q,left:Q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},i0=(J,Q,Y={},q="vlist",K=!1)=>{let{autoHide:j=!0,autoHideDelay:U=1000,minThumbSize:_=15,showOnHover:W=!0,showOnViewportEnter:Z=!0,clickBehavior:V="page"}=Y,b=B4(Y.padding),G=K?b.left:b.top,H=K?b.right:b.bottom,S=K?b.bottom:b.right,$=Y.hoverZoneWidth??S+16,M=0,w=0,z=0,C=0,r=!1,v=!1,g=0,P=0,m=0,t=null,s=!1,T=null,h=null,I=0,l=0,F=null,E=null,L=null,f=K?"width":"height",a=K?"translateX":"translateY",c=K?(K0)=>K0.clientX:(K0)=>K0.clientY,u=K?"left":"top",p=document.createElement("div"),B=document.createElement("div"),X=document.createElement("div"),R=()=>{if(p.className=`${q}-scrollbar`,B.className=`${q}-scrollbar-thumb`,K)p.classList.add(`${q}-scrollbar--horizontal`);if(Y.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${b.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${b.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${b.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${b.left}px`);if(Y.minThumbSize!==void 0)p.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${_}px`);if(p.appendChild(B),J.appendChild(p),X.className=`${q}-scrollbar-hover`,K)X.classList.add(`${q}-scrollbar-hover--horizontal`),X.style.height=`${$}px`;else X.style.width=`${$}px`;J.appendChild(X)},D=()=>{if(t)clearTimeout(t),t=null},A=()=>{if(!j)return;D(),t=setTimeout(y,U)},N=()=>{if(M<=w)return;if(D(),!s)p.classList.add(`${q}-scrollbar--visible`),s=!0;if(j&&!r&&!v)A()},y=()=>{if(r||v)return;p.classList.remove(`${q}-scrollbar--visible`),s=!1},O=(K0,_0)=>{M=K0,w=_0;let W0=M>w;if(p.style.display=W0?"":"none",!W0){y();return}let B0=Math.max(0,w-G-H),A0=w/M;z=Math.max(_,A0*B0),B.style[f]=`${z}px`,C=B0-z,k(m)},k=(K0)=>{if(m=K0,M<=w||C<=0)return;let _0=M-w,B0=Math.min(1,Math.max(0,K0/_0))*C;B.style.transform=`${a}(${B0}px)`},x=(K0)=>{if(K0.target===B||V!=="jump"||C<=0)return;let _0=M-w,W0=p.getBoundingClientRect(),B0=c(K0)-W0[u],A0=Math.max(0,Math.min(B0-z/2,C));Q(A0/C*_0),N()},n=()=>{if(F!==null)clearTimeout(F),F=null;if(E!==null)cancelAnimationFrame(E),E=null;L=null},e=(K0)=>{let _0=C>0?l/K0*C:0;if(I<_0)return-1;if(I>=_0+z)return 1;return 0},J0=()=>{let K0=M-w,_0=e(K0);if(_0===0){n();return}if(_0===-1){if(l<=0){n();return}let W0=Math.max(0,l-w);l=W0,Q(W0)}else{if(l>=K0){n();return}let W0=Math.min(K0,l+w);l=W0,Q(W0)}N()},j0=(K0)=>{if(L===null){L=K0,E=requestAnimationFrame(j0);return}let _0=M-w,W0=K0-L;L=K0;let B0=e(_0);if(B0===0){n();return}let A0=12*w/1000,O0=Math.min(A0*W0,w);if(B0===-1){if(l<=0){n();return}let L0=Math.max(0,l-O0);l=L0,Q(L0)}else{if(l>=_0){n();return}let L0=Math.min(_0,l+O0);l=L0,Q(L0)}D(),E=requestAnimationFrame(j0)},o=()=>{n(),A(),document.removeEventListener("mouseup",o)},Q0=(K0)=>{if(K0.target===B||V!=="page")return;K0.preventDefault();let _0=p.getBoundingClientRect();I=c(K0)-_0[u],l=m,J0(),F=setTimeout(()=>{E=requestAnimationFrame(j0)},350),document.addEventListener("mouseup",o)},q0=(K0)=>{K0.preventDefault(),K0.stopPropagation(),r=!0,g=c(K0),P=m,D(),p.classList.add(`${q}-scrollbar--dragging`),document.addEventListener("mousemove",U0),document.addEventListener("mouseup",Z0)},U0=(K0)=>{if(!r)return;let _0=c(K0)-g,W0=C>0?_0/C:0,B0=M-w,A0=W0*B0,O0=Math.max(0,Math.min(P+A0,B0)),$0=O0/B0*C;if(B.style.transform=`${a}(${$0}px)`,h=O0,T===null)T=requestAnimationFrame(()=>{if(h!==null)Q(h);T=null})},Z0=()=>{if(r=!1,T!==null)cancelAnimationFrame(T),T=null;if(h!==null)Q(h),h=null;if(p.classList.remove(`${q}-scrollbar--dragging`),j&&!v)A();document.removeEventListener("mousemove",U0),document.removeEventListener("mouseup",Z0)},N0=()=>{if(Z)N()},D0=()=>{if(!r){if(v=!1,j)A()}},E0=()=>{v=!0,D(),N()},X0=()=>{if(v=!1,!r&&j)A()},V0=()=>{if(D(),n(),T!==null)cancelAnimationFrame(T),T=null;if(p.removeEventListener("click",x),p.removeEventListener("mousedown",Q0),p.removeEventListener("mouseenter",E0),document.removeEventListener("mouseup",o),p.removeEventListener("mouseleave",X0),B.removeEventListener("mousedown",q0),J.removeEventListener("mouseenter",N0),J.removeEventListener("mouseleave",D0),document.removeEventListener("mousemove",U0),document.removeEventListener("mouseup",Z0),X.removeEventListener("click",x),X.removeEventListener("mousedown",Q0),W)X.removeEventListener("mouseenter",E0),X.removeEventListener("mouseleave",X0);if(X.parentNode)X.parentNode.removeChild(X);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),p.parentNode)p.parentNode.removeChild(p)};if(R(),p.addEventListener("click",x),p.addEventListener("mousedown",Q0),p.addEventListener("mouseenter",E0),p.addEventListener("mouseleave",X0),B.addEventListener("mousedown",q0),J.addEventListener("mouseenter",N0),J.addEventListener("mouseleave",D0),X.addEventListener("click",x),X.addEventListener("mousedown",Q0),W)X.addEventListener("mouseenter",E0),X.addEventListener("mouseleave",X0);return{show:N,hide:y,updateBounds:O,updatePosition:k,isVisible:()=>s,destroy:V0}};var zJ=(J)=>{let Q=null;return{name:"withScrollbar",priority:30,setup(Y){let{dom:q,config:K}=Y,{classPrefix:j,horizontal:U}=K;if(Q=i0(q.viewport,(W)=>Y.scrollController.scrollTo(W),J??{},j,U),!q.viewport.classList.contains(`${j}-viewport--custom-scrollbar`))q.viewport.classList.add(`${j}-viewport--custom-scrollbar`);if(J?.gutter)q.viewport.classList.add(`${j}-viewport--gutter`);Q.updateBounds(Y.state.viewportState.totalSize||Y.getCachedCompression().virtualSize,Y.state.viewportState.containerSize);let _=Q;Y.afterScroll.push((W,Z)=>{_.updatePosition(W),_.show()}),Y.resizeHandlers.push((W,Z)=>{if(_)_.updateBounds(Y.state.viewportState.totalSize||Y.getCachedCompression().virtualSize,Y.state.viewportState.containerSize)}),Y.contentSizeHandlers.push(()=>{if(_)_.updateBounds(Y.state.viewportState.totalSize||Y.getCachedCompression().virtualSize,Y.state.viewportState.containerSize)}),Y.destroyHandlers.push(()=>{if(_)_.destroy()})},destroy(){if(Q)Q.destroy(),Q=null}}};var N4=0.65,W4=0.5,y1=1.7,V4=0.95,_4=0.1,G4=5,D4=100,P1=(J,Q,Y,q=0)=>{if(J<=0)return 0;let K=Q-q;return Math.max(0,K*(1-Y)+q)},CJ=(J)=>{let Q=J?.force??!1,Y=null,q=0,K=!1,j=0,U=0,_=null,W=0,Z=0,V=null,b=[];return{name:"withScale",priority:20,setup(G){let{dom:H,config:S}=G,{classPrefix:$,horizontal:M}=S,w=y0(G.rawConfig.padding),z=M?w.left+w.right:w.top+w.bottom,C=()=>{let s=G.getVirtualTotal(),T=n0(s,G.sizeCache,Q);if(T.isCompressed&&!K){K=!0,G.scrollController.enableCompression(T);let I=M?H.viewport.scrollLeft:H.viewport.scrollTop;if(M)H.viewport.style.overflowX="hidden";else H.viewport.style.overflow="hidden";if(M)H.viewport.scrollLeft=0;else H.viewport.scrollTop=0;if(I>0)q=I,U=I;j=P1(T.virtualSize,G.state.viewportState.containerSize,T.ratio,z),G.updateContentSize(T.virtualSize+j),G.setScrollFns(()=>q,(B)=>{if(q=B,U=B,_!==null)cancelAnimationFrame(_),_=null});let l=()=>{let B=U-q;if(G.getVirtualTotal()===0){q=0,U=0,_=null,G.scrollController.scrollTo(0);return}if(Math.abs(B)<W4){let X=G.getCachedCompression(),R=Math.max(0,X.virtualSize+j-G.state.viewportState.containerSize);q=Math.max(0,Math.min(U,R)),U=q,_=null}else{q+=B*N4;let R=G.getCachedCompression().virtualSize+j-G.state.viewportState.containerSize;q=Math.max(0,Math.min(q,R)),_=requestAnimationFrame(l)}G.scrollController.scrollTo(q)},F=H.viewport,E=(B)=>{B.preventDefault();let X=G.getCachedCompression(),R=X.virtualSize+j-G.state.viewportState.containerSize;if(U=Math.max(0,Math.min(U+B.deltaY*X.ratio*y1,R)),_===null)_=requestAnimationFrame(l)};F.addEventListener("wheel",E,{passive:!1});let L=()=>{if(V!==null)cancelAnimationFrame(V),V=null},f=(B)=>{if(L(),_!==null)cancelAnimationFrame(_),_=null;let X=B.touches[0];if(!X)return;let R=M?X.clientX:X.clientY;W=R,Z=q,b=[{time:performance.now(),y:R}]},a=(B)=>{B.preventDefault();let X=B.touches[0];if(!X)return;let R=M?X.clientX:X.clientY,D=performance.now();if(b.push({time:D,y:R}),b.length>G4)b.shift();let A=W-R,N=G.getCachedCompression(),y=N.virtualSize+j-G.state.viewportState.containerSize,O=Math.max(0,Math.min(Z+A*N.ratio*y1,y));q=O,U=O,G.scrollController.scrollTo(O)},c=(B)=>{let X=performance.now(),R=b.filter((y)=>X-y.time<D4),D=0;if(R.length>=2){let y=R[0],O=R[R.length-1],k=O.time-y.time;if(k>0)D=(y.y-O.y)/k}if(b=[],Math.abs(D)<_4)return;let A=D*16,N=()=>{if(A*=V4,Math.abs(A)<0.5){V=null;return}let O=G.getCachedCompression().virtualSize+j-G.state.viewportState.containerSize,k=q+A;if(k=Math.max(0,Math.min(k,O)),k<=0&&A<0||k>=O&&A>0){q=k,U=k,G.scrollController.scrollTo(k),V=null;return}q=k,U=k,G.scrollController.scrollTo(k),V=requestAnimationFrame(N)};V=requestAnimationFrame(N)};F.addEventListener("touchstart",f,{passive:!0}),F.addEventListener("touchmove",a,{passive:!1}),F.addEventListener("touchend",c,{passive:!0}),F.addEventListener("touchcancel",c,{passive:!0}),G.destroyHandlers.push(()=>{F.removeEventListener("wheel",E),F.removeEventListener("touchstart",f),F.removeEventListener("touchmove",a),F.removeEventListener("touchend",c),F.removeEventListener("touchcancel",c)});let u=H.viewport.querySelector(`.${$}-scrollbar`),p=()=>{if((M?H.viewport.scrollLeft:H.viewport.scrollTop)!==0)if(M)H.viewport.scrollLeft=0;else H.viewport.scrollTop=0};if(F.addEventListener("scroll",p,{passive:!0}),G.destroyHandlers.push(()=>{F.removeEventListener("scroll",p)}),!u){if(Y=i0(H.viewport,(X)=>G.scrollController.scrollTo(X),{},$,M),!H.viewport.classList.contains(`${$}-viewport--custom-scrollbar`))H.viewport.classList.add(`${$}-viewport--custom-scrollbar`);Y.updateBounds(T.virtualSize,G.state.viewportState.containerSize);let B=Y;G.afterScroll.push((X,R)=>{if(B)B.updatePosition(X),B.show()}),G.resizeHandlers.push((X,R)=>{if(B){let D=G.getCachedCompression();B.updateBounds(D.virtualSize,G.state.viewportState.containerSize)}})}}else if(!T.isCompressed&&K){if(K=!1,_!==null)cancelAnimationFrame(_),_=null;if(V!==null)cancelAnimationFrame(V),V=null;if(q=0,U=0,b=[],G.setScrollFns(M?()=>H.viewport.scrollLeft:()=>H.viewport.scrollTop,M?(I)=>{H.viewport.scrollLeft=I}:(I)=>{H.viewport.scrollTop=I}),M)H.viewport.scrollLeft=0;else H.viewport.scrollTop=0;if(G.scrollController.disableCompression(),M)H.viewport.style.overflowX="auto";else H.viewport.style.overflow="auto";if(Y)Y.destroy(),Y=null;j=0,G.updateContentSize(T.actualSize)}else if(T.isCompressed)G.scrollController.updateConfig({compression:T}),j=P1(T.virtualSize,G.state.viewportState.containerSize,T.ratio,z),G.updateContentSize(T.virtualSize+j);if(Y)Y.updateBounds(T.virtualSize+j,G.state.viewportState.containerSize);let h=G.state.viewportState;if(h.isCompressed=T.isCompressed,h.compressionRatio=T.ratio,h.totalSize=T.virtualSize+j,h.actualSize=T.actualSize,G.state.cachedCompression={state:T,totalItems:s},K){let I=Math.max(0,T.virtualSize+j-G.state.viewportState.containerSize),l=q;if(l>I)l=I;else if(l<0)l=0;if(l!==q){if(_!==null)cancelAnimationFrame(_),_=null;if(V!==null)cancelAnimationFrame(V),V=null;G.scrollController.scrollTo(l)}}for(let I=0;I<G.contentSizeHandlers.length;I++)G.contentSizeHandlers[I]()};G.updateCompressionMode=C;let r=G.getCachedCompression.bind(G);G.getCachedCompression=()=>{if(G.state.cachedCompression)return G.state.cachedCompression.state;return r()},G.setVisibleRangeFn((s,T,h,I,l)=>{v=null,g=null;let F=n0(I,h,Q);k1(s,T,h,I,F,l)}),G.setScrollToPosFn((s,T,h,I,l)=>{let F=n0(I,T,Q);return $1(s,T,h,I,F,l)});let v=null,g=null;G.setPositionElementFn((s,T)=>{let h=G.getVirtualTotal(),I=n0(h,G.sizeCache,Q);if(I.isCompressed){let l=G.scrollController.getScrollTop();if(v===null||T<g)g=T,v=Math.round(r0(T,l,G.sizeCache,h,G.state.viewportState.containerSize,I));let F=v+G.sizeCache.getOffset(T)-G.sizeCache.getOffset(g),E=G.config.horizontal;s.style.transform=E?`translateX(${F}px)`:`translateY(${F}px)`}else{let l=Math.round(G.sizeCache.getOffset(T)),F=G.config.horizontal;s.style.transform=F?`translateX(${l}px)`:`translateY(${l}px)`}});let P=M?w.left:w.top,m=M?w.right:w.bottom,t=G.getItemToScrollIndexFn();G.methods.set("_scrollItemIntoView",(s)=>{let T=G.getCachedCompression(),h=G.state.viewportState.containerSize,I=G.state.viewportState.scrollPosition,l=G.getVirtualTotal(),{visibleRange:F}=G.state.viewportState,E=t(s),L=XJ(E,G.sizeCache,I,h,P,m,T,l,F);if(L!==I)G.scrollController.scrollTo(L)}),C(),G.destroyHandlers.push(()=>{if(Y)Y.destroy(),Y=null;if(_!==null)cancelAnimationFrame(_),_=null;if(V!==null)cancelAnimationFrame(V),V=null})}}};var R1=(J={})=>{let{chunkSize:Q=100,maxCachedItems:Y=5000,evictionBuffer:q=200,onEvict:K}=J,j=new Map,U=0,_=0,W=(F)=>{let E=j.get(F);if(!E)E={items:Array(Q),count:0,lastAccess:Date.now()},j.set(F,E);else E.lastAccess=Date.now();return E},Z=(F)=>{return Math.floor(F/Q)},V=(F)=>{return F%Q},b=()=>U,G=(F)=>{U=F},H=(F)=>{if(F<0||F>=U)return;let E=Z(F),L=j.get(E);if(!L)return;return L.items[V(F)]},S=(F)=>{if(F<0||F>=U)return!1;let E=Z(F),L=j.get(E);if(!L)return!1;return L.items[V(F)]!==void 0},$=(F,E)=>{let L=Z(F),f=W(L),a=V(F),c=f.items[a]===void 0;if(f.items[a]=E,c)f.count++,_++;if(F>=U)U=F+1},M=(F,E)=>{for(let L=0;L<E.length;L++){let f=E[L];if(f!==void 0)$(F+L,f)}},w=(F)=>{if(F<0||F>=U)return!1;let E=Z(F),L=j.get(E),f=V(F);if(!(L!==void 0&&L.items[f]!==void 0))return!1;let c=E,u=Array.from(j.keys()).filter((B)=>B>=c).sort((B,X)=>B-X),p=[];for(let B of u){let X=j.get(B),R=B*Q;for(let D=0;D<Q;D++){if(X.items[D]===void 0)continue;let A=R+D;if(A<=F)continue;p.push({oldIndex:A,item:X.items[D]})}}if(L.items[f]=void 0,L.count--,_--,L.count===0)j.delete(E);for(let{oldIndex:B}of p){let X=Z(B),R=j.get(X);if(!R)continue;let D=V(B);if(R.items[D]!==void 0){if(R.items[D]=void 0,R.count--,_--,R.count===0)j.delete(X)}}for(let{oldIndex:B,item:X}of p){let R=B-1,D=Z(R),A=W(D),N=V(R);A.items[N]=X,A.count++,_++}return U--,!0},z=(F,E)=>{let L=[];for(let f=F;f<=E&&f<U;f++)L.push(H(f));return L},C=(F,E)=>{for(let L=F;L<=E&&L<U;L++)if(!S(L))return!1;return!0},r=()=>{let F=[],E=null,L=Array.from(j.keys()).sort((f,a)=>f-a);for(let f of L){let a=j.get(f);if(!a)continue;let c=f*Q;for(let u=0;u<Q;u++){let p=c+u;if(p>=U)break;if(a.items[u]!==void 0)if(E===null)E={start:p,end:p};else if(p===E.end+1)E.end=p;else F.push(E),E={start:p,end:p};else if(E!==null)F.push(E),E=null}}if(E!==null)F.push(E);return F},v=(F,E)=>{let L=[],f=null;for(let a=F;a<=E&&a<U;a++)if(!S(a))if(f===null)f={start:a,end:a};else f.end=a;else if(f!==null)L.push(f),f=null;if(f!==null)L.push(f);return L},g=(F)=>{return j.has(F)},P=(F)=>{let E=j.get(F);if(E)E.lastAccess=Date.now()},m=(F,E)=>{if(F>E||j.size===0)return;let L=Date.now(),f=Z(Math.max(0,F)),a=Z(Math.min(U-1,E));for(let c=f;c<=a;c++){let u=j.get(c);if(u)u.lastAccess=L}},t=(F,E)=>{if(_<=Y)return 0;let L=Math.max(0,F-q),f=Math.min(U-1,E+q),a=Z(L),c=Z(f),u=0,p=[];for(let[B,X]of j)if(B<a||B>c)u+=X.count,p.push(B),_-=X.count,j.delete(B);if(u>0&&K)K(u,p);return u},s=()=>{if(_<=Y)return 0;let F=Array.from(j.entries()).sort(([,f],[,a])=>f.lastAccess-a.lastAccess),E=0,L=[];for(let[f,a]of F){if(_<=Y)break;E+=a.count,_-=a.count,L.push(f),j.delete(f)}if(E>0&&K)K(E,L);return E},T=()=>{return{totalItems:U,cachedItems:_,cachedChunks:j.size,chunkSize:Q,maxCachedItems:Y,memoryEfficiency:U>0?1-_/U:1}},h=()=>_,I=()=>{j.clear(),_=0};return{chunkSize:Q,maxCachedItems:Y,getTotal:b,setTotal:G,get:H,has:S,set:$,setRange:M,delete:w,getRange:z,isRangeLoaded:C,getLoadedRanges:r,findUnloadedRanges:v,getChunkIndex:Z,isChunkLoaded:g,touchChunk:P,touchChunksForRange:m,evictDistant:t,evictToLimit:s,getStats:T,getCachedCount:h,clear:I,reset:()=>{I(),U=0}}},M4=(J)=>{if(J.length===0)return[];let Q=[...J].sort((q,K)=>q.start-K.start),Y=[{...Q[0]}];for(let q=1;q<Q.length;q++){let K=Q[q],j=Y[Y.length-1];if(K.start<=j.end+1)j.end=Math.max(j.end,K.end);else Y.push({...K})}return Y},w1=(J,Q,Y)=>{let q=Math.floor(J.start/Y)*Y,K=Math.ceil((J.end+1)/Y)*Y-1,j={start:q,end:K};if(Q.length===0)return[j];let U=[],_=M4(Q),W=j.start;for(let Z of _){if(Z.end<W)continue;if(Z.start>j.end)break;if(Z.start>W)U.push({start:W,end:Math.min(Z.start-1,j.end)});if(W=Z.end+1,W>j.end)break}if(W<=j.end)U.push({start:W,end:j.end});return U};var z1=(J={})=>{let{maskCharacter:Q=A1,maxSampleSize:Y=L1}=J,q=[],K=!1,j=(V)=>{if(K||V.length===0)return;let b=Math.min(V.length,Y);for(let G=0;G<b;G++){let H=V[G];if(!H||typeof H!=="object")continue;let S={};for(let[$,M]of Object.entries(H)){if($.startsWith("_")||$==="id")continue;S[$]=String(M??"").length}if(Object.keys(S).length>0)q.push(S)}K=!0},U=()=>K,_=(V)=>{let b={id:`${R0}${V}`,[TJ]:!0,_index:V};if(q.length===0)return b.label=Q.repeat(12),b;let G=q[V%q.length];for(let[H,S]of Object.entries(G))b[H]=Q.repeat(Math.max(1,S));return b};return{analyzeStructure:j,hasAnalyzedStructure:U,generate:_,generateRange:(V,b)=>{let G=[];for(let H=V;H<=b;H++)G.push(_(H));return G},clear:()=>{q=[],K=!1}}},BJ=(J)=>{if(!J||typeof J!=="object")return!1;return J[TJ]===!0};var O4=50,C1=(J={})=>{let{adapter:Q,initialItems:Y,initialTotal:q,storage:K,placeholder:j,pageSize:U=O4,onStateChange:_,onItemsLoaded:W,onItemsEvicted:Z}=J,V=R1({...K,onEvict:(o,Q0)=>{Z?.(o),m()}}),b=null,G=()=>{if(!b)b=z1(j);return b},H=new Map,S=!1,$,M=!0,w,z,C=[],r=0,v=new Map,g=new Map,P=()=>{for(let o of g.values())o.abort();g.clear(),v.clear()},m=()=>{_?.(L())},t=()=>{H.clear();let o=V.getLoadedRanges();for(let Q0 of o)for(let q0=Q0.start;q0<=Q0.end;q0++){let U0=V.get(q0);if(U0&&!BJ(U0))H.set(U0.id,q0)}},s=(o,Q0)=>{if(!BJ(Q0))H.set(Q0.id,o)},T=(o)=>{H.delete(o)},h=(o,Q0)=>{return`${o}-${Q0}`},I=()=>V.getTotal(),l=()=>V.getCachedCount(),F=()=>S,E=()=>M,L=()=>({total:V.getTotal(),cached:V.getCachedCount(),isLoading:S,pendingRanges:C,error:$,hasMore:M,cursor:w}),f=()=>V,a=()=>G(),c=(o)=>{let Q0=V.get(o);if(Q0!==void 0)return Q0;if(o>=0&&o<V.getTotal())return G().generate(o);return},u=(o)=>{let Q0=H.get(o);if(Q0===void 0)return;return V.get(Q0)},p=(o)=>{return H.get(o)??-1},B=(o)=>{let Q0=V.get(o);return Q0!==void 0&&!BJ(Q0)},X=(o,Q0)=>{let q0=[],U0=V.getTotal(),Z0=0,N0=0;V.touchChunksForRange(o,Math.min(Q0,U0-1));for(let D0=o;D0<=Q0&&D0<U0;D0++){let E0=V.get(D0);if(E0!==void 0)q0.push(E0),Z0++;else q0.push(G().generate(D0)),N0++}return q0},R=(o)=>{V.setTotal(o),M=V.getCachedCount()<o,m()},D=(o,Q0=0,q0)=>{if(Q&&o.length>0){let U0=G();if(!U0.hasAnalyzedStructure())U0.analyzeStructure(o)}for(let U0=0;U0<o.length;U0++){let Z0=o[U0];if(Z0!==void 0){let N0=Q0+U0;V.set(N0,Z0),s(N0,Z0)}}if(q0!==void 0)V.setTotal(q0);else if(Q0+o.length>V.getTotal())V.setTotal(Q0+o.length);if(V.getCachedCount()>=V.getTotal()&&V.getTotal()>0)M=!1;m(),W?.(o,Q0,V.getTotal())},A=(o,Q0)=>{let q0=V.get(o);if(!q0)return!1;let U0=q0.id,Z0={...q0,...Q0};if(V.set(o,Z0),Q0.id!==void 0&&Q0.id!==U0)T(U0);return s(o,Z0),m(),!0},N=(o)=>{let Q0=H.get(o);if(Q0===void 0)return!1;if(!V.delete(Q0))return!1;return t(),P(),m(),!0},y=async(o,Q0)=>{if(!Q)return;let q0=h(o,Q0);if(v.has(q0))return;let U0=V.getLoadedRanges(),Z0=w1({start:o,end:Q0},U0,V.chunkSize);if(Z0.length===0)return;let N0=V.chunkSize,D0=N0*2;for(let[V0,K0]of g){let _0=V0.indexOf("-"),W0=parseInt(V0.slice(0,_0),10);if(Math.abs(W0-o)>D0)K0.abort(),g.delete(V0),v.delete(V0)}let E0=[];for(let V0 of Z0){let K0=Math.floor(V0.start/N0),_0=Math.floor(V0.end/N0);for(let W0=K0;W0<=_0;W0++){let B0=W0*N0,A0=B0+N0-1,O0=h(B0,A0);if(!E0.some((L0)=>L0.start===B0)&&!v.has(O0))E0.push({start:B0,end:A0})}}let X0=[];for(let V0 of Z0){let K0=Math.floor(V0.start/N0),_0=Math.floor(V0.end/N0);for(let W0=K0;W0<=_0;W0++){let B0=W0*N0,A0=B0+N0-1,O0=h(B0,A0);if(v.has(O0)){let L0=v.get(O0);if(!X0.includes(L0))X0.push(L0)}}}for(let V0 of E0){let K0=h(V0.start,V0.end),_0=new AbortController;g.set(K0,_0);let W0=(async()=>{C.push(V0),S=!0,$=void 0,m();try{let B0=V0.end-V0.start+1,A0={offset:V0.start,limit:B0,cursor:V0.start===z?w:void 0,signal:_0.signal},O0=await Q.read(A0);if(D(O0.items,V0.start,O0.total),O0.cursor)w=O0.cursor,z=V0.start+O0.items.length;let L0=V0.start+O0.items.length;if(L0>=r){if(r=L0,O0.hasMore!==void 0)M=O0.hasMore;else if(O0.total!==void 0)M=L0<O0.total}}catch(B0){if(B0?.name==="AbortError")return;$=B0 instanceof Error?B0:Error(String(B0))}finally{v.delete(K0),g.delete(K0),C=C.filter((B0)=>B0.start!==V0.start||B0.end!==V0.end),S=v.size>0,m()}})();v.set(K0,W0),X0.push(W0)}await Promise.all(X0)},O=async(o,Q0)=>{if(V.isRangeLoaded(o,Q0))return;await y(o,Q0)},k=async()=>{if(!Q)return;await y(0,U-1)},x=async()=>{if(!Q||S||!M)return!1;let o=V.getCachedCount(),Q0=V.getTotal(),q0=o,U0=Math.min(q0+U-1,Q0>0?Q0-1:q0+U-1);if(q0>=Q0&&Q0>0)return M=!1,!1;return await y(q0,U0),V.getCachedCount()>o},n=async()=>{if(V.clear(),V.setTotal(0),H.clear(),b)b.clear();P(),C=[],S=!1,w=void 0,z=void 0,M=!0,r=0,$=void 0,m()},e=(o,Q0)=>{if(V.evictDistant(o,Q0)>0)t()},J0=()=>{V.clear(),H.clear(),w=void 0,z=void 0,$=void 0,C=[],S=!1,m()},j0=()=>{if(V.reset(),H.clear(),b)b.clear();w=void 0,z=void 0,M=!0,r=0,$=void 0,C=[],S=!1,m()};if(Y&&Y.length>0)D(Y,0,q??Y.length);else if(q!==void 0)V.setTotal(q),m();return{getState:L,getTotal:I,getCached:l,getIsLoading:F,getHasMore:E,getStorage:f,getPlaceholders:a,getItem:c,getItemById:u,getIndexById:p,isItemLoaded:B,getItemsInRange:X,setTotal:R,setItems:D,updateItem:A,removeItem:N,loadRange:y,ensureRange:O,loadInitial:k,loadMore:x,reload:n,evictDistant:e,clear:J0,reset:j0}};var vJ=(J)=>{let{adapter:Q,loading:Y,storage:q,total:K,autoLoad:j=!0}=J,U=Y?.cancelThreshold??O1,_=Y?.preloadThreshold??E1,W=Y?.preloadAhead??M1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(Z){let{emitter:V}=Z,b=Z.config.reverse,G=Z.methods.get("_getGridLayout"),H=(T)=>{if(G){let h=G();if(h){let I=Z.dataManager.getTotal();return h.getItemRange(T.start,T.end,I)}}return T},S=C1({adapter:Q,...K!==void 0&&{initialTotal:K},pageSize:q?.chunkSize??x0,...q&&{storage:{...q.chunkSize!==void 0&&{chunkSize:q.chunkSize},...q.maxCachedItems!==void 0&&{maxCachedItems:q.maxCachedItems}}},onStateChange:()=>{if(Z.state.isInitialized){let T=Z.getVirtualTotal();Z.sizeCache.rebuild(T),Z.updateCompressionMode();let h=Z.getCachedCompression();Z.state.viewportState.totalSize=h.virtualSize,Z.state.viewportState.actualSize=h.actualSize,Z.state.viewportState.isCompressed=h.isCompressed,Z.state.viewportState.compressionRatio=h.ratio,Z.updateContentSize(h.virtualSize),Z.renderIfNeeded()}},onItemsLoaded:(T,h,I)=>{if(Z.state.isInitialized)Z.forceRender(),V.emit("load:end",{items:T,total:I,offset:h})}});Z.replaceDataManager(S);let $=null,M=null,w=0,z=!1,C=null,r=120,v=(T=!1)=>{if(z=!1,M=null,T)$=null;if(C!==null)clearTimeout(C),C=null},g=()=>{if(!M)return;M=null;let{renderRange:T}=Z.state.viewportState;if(T.end<T.start)return;$=null;let h=H(T);Z.dataManager.ensureRange(h.start,h.end).catch((I)=>{V.emit("error",{error:I,context:"ensureRange"})})};Z.afterScroll.push((T,h)=>{if(Z.state.isDestroyed)return;let I=Z.scrollController.getVelocity(),F=Z.scrollController.isTracking()&&I<=U;if(w>U&&I<=U)z=!0;else if(z&&I>U)v();if(z&&I<0.5)v(!0);if(w=I,(Z.scrollController.isAtTop()||Z.scrollController.isAtBottom())&&(z||M))v(!0),F=!0;let L=z&&I>0.5;if(F&&!Z.dataManager.getIsLoading()&&Z.dataManager.getHasMore()){if(b){if(T<FJ)V.emit("load:start",{offset:Z.dataManager.getCached(),limit:x0}),Z.dataManager.loadMore().catch((c)=>{V.emit("error",{error:c,context:"loadMore"})})}else if(Z.state.viewportState.totalSize-T-Z.state.viewportState.containerSize<FJ)V.emit("load:start",{offset:Z.dataManager.getCached(),limit:x0}),Z.dataManager.loadMore().catch((u)=>{V.emit("error",{error:u,context:"loadMore"})})}let{renderRange:f}=Z.state.viewportState;if(!$||f.start!==$.start||f.end!==$.end){if($={start:f.start,end:f.end},F&&!L){if(M=null,C!==null)clearTimeout(C),C=null;let c=H(f),u=c.start,p=c.end,B=G?Z.dataManager.getTotal():Z.getVirtualTotal();if(I>_)if(h==="down")p=Math.min(c.end+W,B-1);else u=Math.max(c.start-W,0);Z.dataManager.ensureRange(u,p).catch((X)=>{V.emit("error",{error:X,context:"ensureRange"})})}else if(M={start:f.start,end:f.end},L){if(C!==null)clearTimeout(C);C=setTimeout(()=>{C=null,g(),v()},r)}}});let P=200,m=null;Z.afterScroll.push((T,h)=>{if(m!==null)clearTimeout(m);m=setTimeout(()=>{m=null,g(),v()},P)}),Z.destroyHandlers.push(()=>{if(m!==null)clearTimeout(m),m=null;v()});let t=()=>{if(Z.state.isDestroyed)return;$=null;let{renderRange:T}=Z.state.viewportState;if(T.end>0){let h=H(T);Z.dataManager.ensureRange(h.start,h.end).catch((I)=>{V.emit("error",{error:I,context:"ensureRange"})})}g()};window.addEventListener("online",t),Z.destroyHandlers.push(()=>{window.removeEventListener("online",t)}),V.on("load:start",()=>{Z.dom.root.setAttribute("aria-busy","true")}),V.on("load:end",()=>{Z.dom.root.removeAttribute("aria-busy")}),Z.methods.set("loadVisibleRange",async()=>{$=null,M=null,Z.forceRender();let{renderRange:T}=Z.state.viewportState;if(T.end>0){let h=H(T);V.emit("load:start",{offset:h.start,limit:h.end-h.start+1}),await Z.dataManager.ensureRange(h.start,h.end)}}),Z.methods.set("reload",async(T)=>{$=null,M=null;let h=T?.snapshot,I=h!=null&&(h.total??0)>0&&h.index>0,l=I||T?.skipInitialLoad===!0;if(Z.invalidateRendered(),await Z.dataManager.reload(),!I)Z.scrollController.scrollTo(0);if(!l){V.emit("load:start",{offset:0,limit:x0}),await Z.dataManager.loadInitial(),Z.forceRender();let{renderRange:F}=Z.state.viewportState;if(F.end>0){let E=H(F);await Z.dataManager.ensureRange(E.start,E.end)}}if(I){let F=Z.methods.get("restoreScroll");if(F)F(h)}});let s=!1;if(Z.methods.set("_cancelAutoLoad",()=>{s=!0}),j)queueMicrotask(()=>{if(s)return;V.emit("load:start",{offset:0,limit:x0}),Z.dataManager.loadInitial().catch((T)=>{V.emit("error",{error:T,context:"loadInitial"})})});else if(K!==void 0)Z.dataManager.setTotal(K)}}};var NJ=(J)=>J==null?0:typeof J==="function"?J():J,SJ=(J)=>{let Q=null,Y=J?.scrollPadding;return{name:"withPage",priority:5,setup(q){let{dom:K,state:j,config:U,emitter:_}=q;if(K.root.style.overflow="visible",K.root.style.height="auto",U.horizontal)K.viewport.style.overflowX="visible",K.viewport.style.overflowY="visible";else K.viewport.style.overflow="visible";if(K.viewport.classList.remove(`${U.classPrefix}-viewport--custom-scrollbar`),q.disableViewportResize(),q.disableWheelHandler(),q.setScrollTarget(window),q.setScrollFns(()=>{let b=K.viewport.getBoundingClientRect();return Math.max(0,U.horizontal?-b.left:-b.top)},(b)=>{let G=K.viewport.getBoundingClientRect();if(U.horizontal){let H=G.left+window.scrollX;window.scrollTo({left:H+b,top:window.scrollY,behavior:"instant"})}else{let H=G.top+window.scrollY;window.scrollTo({left:window.scrollX,top:H+b,behavior:"instant"})}}),q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),j.viewportState.containerSize=window.innerHeight,Y){let b=U.horizontal,G=q.getItemToScrollIndexFn();q.setScrollToPosFn((H,S,$,M,w)=>{let z=NJ(b?Y.left:Y.top),C=NJ(b?Y.right:Y.bottom);if(M===0)return 0;let r=Math.max(0,Math.min(H,M-1)),v=S.getOffset(r),g=S.getSize(r),P=S.getTotalSize(),m=Math.max(0,P-$+C),t;switch(w){case"start":t=v-z;break;case"center":{let s=$-z-C;t=v-z-(s-g)/2;break}case"end":t=v-$+g+C;break}return Math.max(-z,Math.min(t,m))}),q.methods.set("_scrollItemIntoView",(H)=>{let S=G(H),$=b?window.innerWidth:window.innerHeight,M=NJ(b?Y.left:Y.top),w=NJ(b?Y.right:Y.bottom),z=K.viewport.getBoundingClientRect(),C=b?window.scrollX:window.scrollY,r=(b?z.left:z.top)+C,v=r-C,g=q.sizeCache.getOffset(S),P=q.sizeCache.getSize(S),m=v+g,t=m+P,s=M,T=$-w,h=C;if(m<s)h=r+g-s;else if(t>T)h=r+g+P-T;if(h!==C)if(b)window.scrollTo({left:h,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:h,behavior:"instant"})})}let{innerHeight:W,innerWidth:Z}=window,V=()=>{let{innerWidth:b,innerHeight:G}=window,H=U.horizontal?b:G,S=U.horizontal?Z:W;if(Math.abs(H-S)<=1)return;W=G,Z=b,j.viewportState.containerSize=G,_.emit("resize",{width:b,height:G});for(let $=0;$<q.resizeHandlers.length;$++)q.resizeHandlers[$](b,G);q.renderIfNeeded()};window.addEventListener("resize",V,{passive:!0}),Q=()=>{window.removeEventListener("resize",V)},q.destroyHandlers.push(Q)},destroy(){if(Q)Q(),Q=null}}};var fJ=(J,Q)=>{let Y=0,q=J.length-1;while(Y<q){let K=Y+q+1>>>1;if(J[K].headerLayoutIndex<=Q)Y=K;else q=K-1}return Y},v1=(J,Q)=>{let Y=0,q=J.length-1;while(Y<q){let K=Y+q+1>>>1;if(J[K].firstDataIndex<=Q)Y=K;else q=K-1}return Y},S1=(J,Q)=>{if(J===0)return[];let Y=[],q=Q(0),K=0,j=0;for(let U=1;U<J;U++){let _=Q(U);if(_!==q){let W=U-K;Y.push({key:q,groupIndex:Y.length,headerLayoutIndex:j,firstDataIndex:K,count:W}),j=j+1+W,q=_,K=U}}return Y.push({key:q,groupIndex:Y.length,headerLayoutIndex:j,firstDataIndex:K,count:J-K}),Y},IJ=(J,Q)=>{if(J.length===0||Q.length===0)return[];let Y=J.length+Q.length,q=Array(Y),K=0;for(let j of Q){q[K]={id:`__group_header_${j.groupIndex}`,__groupHeader:!0,groupKey:j.key,groupIndex:j.groupIndex},K++;for(let U=0;U<j.count;U++)q[K]=J[j.firstDataIndex+U],K++}return q},hJ=(J,Q,Y=!1)=>{let q=typeof Q==="number"?(K)=>Q:Q;return(K)=>{let j=J.getEntry(K);if(j.type==="header"){if(Y&&j.group.groupIndex===0)return 0;return J.getHeaderHeight(j.group.groupIndex)}return q(j.dataIndex)}},f1=(J,Q)=>{let Y=S1(J,Q.getGroupForIndex),q=J+Y.length,K=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return q},get groupCount(){return Y.length},get groups(){return Y},getEntry:(G)=>{if(Y.length===0)return{type:"item",dataIndex:G,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let H=fJ(Y,G),S=Y[H];if(G===S.headerLayoutIndex)return{type:"header",group:S};let $=G-S.headerLayoutIndex-1;return{type:"item",dataIndex:S.firstDataIndex+$,group:S}},layoutToDataIndex:(G)=>{if(Y.length===0)return G;let H=fJ(Y,G),S=Y[H];if(G===S.headerLayoutIndex)return-1;let $=G-S.headerLayoutIndex-1;return S.firstDataIndex+$},dataToLayoutIndex:(G)=>{if(Y.length===0)return G;let H=v1(Y,G),S=Y[H],$=G-S.firstDataIndex;return S.headerLayoutIndex+1+$},getGroupAtLayoutIndex:(G)=>{if(Y.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let H=fJ(Y,G);return Y[H]},getGroupAtDataIndex:(G)=>{if(Y.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let H=v1(Y,G);return Y[H]},getHeaderHeight:typeof K==="number"?(G)=>K:(G)=>{let H=Y[G];if(!H)return 0;return K(H.key,G)},rebuild:(G)=>{Y=S1(G,Q.getGroupForIndex),q=G+Y.length}}};var I1=(J,Q,Y,q,K,j=!1,U=0)=>{let _=j?"width":"height",W=j?"height":"width",Z=j?"X":"Y",V=(X,R)=>{X.style[_]=`${R}px`},b=document.createElement("div");b.className=`${K}-sticky-header`,b.setAttribute("role","presentation"),b.setAttribute("aria-hidden","true"),b.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${U||0}px`:`top:${U||0}px`);let G=()=>{let X=document.createElement("div");return X.className="sticky-group",X.style.position="absolute",X.style.willChange="transform",X.style[W]="100%",X},H=G(),S=G();b.append(H,S),J.insertBefore(b,J.firstChild);let $=H,M=S,w=Q.groups,z=[],C=[],r=0,v=()=>{w=Q.groups,r=w.length,z=Array(r),C=Array(r);for(let X=0;X<r;X++)z[X]=Y.getOffset(w[X].headerLayoutIndex),C[X]=Q.getHeaderHeight(X)};v();let g=-1,P=0,m=-1,t=!1,s=0,T=!1,h=(X,R)=>{q(X,R);let D=C[R];return V(X,D),D},I=(X)=>{X.replaceChildren(),X.style.transform=""},l=(X)=>{if(X===g)return;if(g=X,P=0,X<0||X>=r){I($);return}P=h($,X),V(b,P),$.style.transform=""},F=(X)=>{if(X===s)return;s=X;let R=Math.round(X);$.style.transform=`translate${Z}(${R}px)`,M.style.transform=`translate${Z}(${R+P}px)`},E=()=>{s=0,$.style.transform="",M.style.transform=""},L=()=>{if(!T)return;let X=$;$=M,M=X,g=m,P=g>=0?C[g]:0,V(b,P),I(M),m=-1,T=!1,E()},f=()=>{if(!T)return;I(M),m=-1,T=!1,E()},a=()=>{if(t)return;t=!0,b.style.display=""},c=()=>{if(!t)return;t=!1,b.style.display="none",I($),g=-1,P=0,f()},u=(X)=>{if(r===0){c();return}if(X<z[0]){c();return}let R=0,D=r-1;while(R<D){let N=R+D+1>>>1;if(z[N]+C[N]<=X)R=N;else D=N-1}if(!t)a();l(R);let A=R+1;if(A<r){let N=z[A]-X;if(N<=0&&N>-P){if(m!==A||!T)m=A,h(M,A),T=!0;F(N)}else if(N<=-P){if(T)L()}else if(T)f()}else if(T)f()},p=()=>{v();let X=g;if(g=-1,P=0,X>=0)l(X)},B=()=>{b.remove(),g=-1,P=0,m=-1,t=!1,T=!1};return b.style.display="none",{update:u,refresh:p,show:a,hide:c,destroy:B}};var C0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var h1=(J,Q,Y,q,K,j)=>{if(q===0)return 0;let U=Math.max(0,Math.min(J,q-1)),_=Q.getOffset(U),W=Q.getSize(U),Z=Q.getTotalSize(),V=Math.max(0,Z-Y),b;switch(j){case"center":b=_-Y/2+W/2;break;case"end":b=_-Y+W;break;case"start":default:b=_;break}return Math.max(0,Math.min(b,V))};var t0=(J,Q,Y,q,K="start",j,U=h1)=>{return U(J,Q,Y,q,j,K)};var E4=(J,Q)=>{if(J.header){let Y=Q?J.header.width??J.header.height:J.header.height??J.header.width;return{...J,header:{...J.header,height:Y}}}if(J.headerHeight!=null&&J.headerTemplate)return{...J,header:{height:J.headerHeight,template:J.headerTemplate}};return J},pJ=(J)=>{let Q=J.header,Y=Q?Q.height??Q.width:J.headerHeight,q=Q?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(Y==null||Y<=0)throw Error("[vlist/builder] withGroups: header.height must be a positive number");if(!q)throw Error("[vlist/builder] withGroups: header.template is required");let K=null,j=null,U=[],_=[];return{name:"withGroups",priority:10,setup(W){let{dom:Z,config:V,rawConfig:b}=W,{classPrefix:G}=V,H=E4(J,V.horizontal),$=b.item.height;U=b.items?[...b.items]:[];let M=U.length,w={getGroupForIndex:H.getGroupForIndex,header:{height:H.header.height,template:H.header.template},sticky:H.sticky??!1};K=f1(M,w),_=IJ(U,K.groups);let z=H.sticky!==!1,C=hJ(K,$,z);W.setSizeConfig(C),W.rebuildSizeCache(_.length),W.dataManager.setItems(_,0,_.length);let r=b.item.template,{template:v}=H.header,g=(c,u,p)=>{if(C0(c))return v(c.groupKey,c.groupIndex);return r(c,u,p)},P=W.methods.get("_getGridLayout"),m=W.methods.get("_replaceGridRenderer"),t=W.methods.get("_updateGridLayoutForGroups"),s=W.methods.get("_createGridRenderer"),T=W.methods.get("_getTableLayout"),h=W.methods.get("_updateTableForGroups"),I=W.methods.get("_getTableHeaderHeight");if(P&&m&&s){if(t)t((p)=>{let B=_[p];return!!(B&&C0(B))});let c=P(),u=s(Z.items,g,W.sizeCache,c,G,W.getContainerWidth(),()=>W.dataManager.getTotal(),V.ariaIdPrefix);m(u)}else if(T&&h)h((c)=>C0(c),H.header.template);else W.replaceTemplate(g);let l=I?I():0;if(Z.root.classList.add(`${G}--grouped`),H.sticky!==!1)if(W.methods.set("_getStickyHeaderHeight",()=>H.header.height),!V.horizontal)Z.viewport.style.height=`calc(100% - ${H.header.height}px)`;else Z.viewport.style.width=`calc(100% - ${H.header.height}px)`;if(H.sticky!==!1){let c=H.header.template,u=(B,X)=>{let R=K.groups[X];if(!R)return;let D=c(R.key,R.groupIndex);if(typeof D==="string")B.innerHTML=D;else B.replaceChildren(D)};j=I1(Z.root,K,W.sizeCache,u,G,V.horizontal,l);let p=j;W.afterScroll.push((B,X)=>{p.update(B)}),j.update(W.scrollController.getScrollTop())}let F=b.item?.striped,E=()=>{if(F!=="data"&&F!=="even"&&F!=="odd")return;let c=new Int32Array(_.length),u=F==="odd"?1:0,p=0;for(let B=0;B<_.length;B++)if(C0(_[B])){if(c[B]=-1,F==="even"||F==="odd")p=0}else c[B]=p+++u;W.setStripeIndexFn((B)=>{if(B<0||B>=c.length)return B;return c[B]})};E();let L=()=>{if(!K)return;K.rebuild(U.length),_=IJ(U,K.groups);let c=hJ(K,$,z);if(W.setSizeConfig(c),W.rebuildSizeCache(_.length),W.dataManager.setItems(_,0,_.length),E(),j)j.refresh()};W.methods.set("setItems",(c)=>{U=c.slice(),L()}),W.methods.set("appendItems",(c)=>{U.push(...c),L()}),W.methods.set("prependItems",(c)=>{U.unshift(...c),L()}),W.methods.set("removeItem",(c)=>{U=U.filter((u)=>u.id!==c),L()});let{animateScroll:f,cancelScroll:a}=l0(W.scrollController,W.renderIfNeeded);W.methods.set("scrollToIndex",(c,u)=>{let p=K.dataToLayoutIndex(c),{align:B,behavior:X,duration:R}=z0(u),D=W.dataManager.getTotal(),A=W.adjustScrollPosition(t0(p,W.sizeCache,W.state.viewportState.containerSize,D,B,W.getCachedCompression()));if(X==="smooth")f(W.scrollController.getScrollTop(),A,R);else a(),W.scrollController.scrollTo(A)}),W.methods.set("_getItems",()=>U),W.methods.set("_getTotal",()=>U.length),W.methods.set("_isGroupHeader",(c)=>{let u=_[c];return!!(u&&C0(u))}),W.destroyHandlers.push(()=>{if(a(),j)j.destroy(),j=null;Z.root.classList.remove(`${G}--grouped`)})},destroy(){if(j)j.destroy(),j=null}}};var p1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,q=J.isHeaderFn,K={row:0,col:0},j=(S)=>{if(S<=0)return 0;if(!q)return Math.ceil(S/Q);let $=0,M=0,w=0;for(let z=0;z<S;z++)if(q(z)){if(w++,M>0)$++,M=0;$++,M=0}else if(M++,M>=Q)$++,M=0;if(M>0)$++;return $},U=(S)=>{return K.row=_(S),K.col=W(S),K},_=(S)=>{if(!q)return Math.floor(S/Q);let $=0,M=0;for(let w=0;w<=S;w++)if(q(w)){if(M>0)$++,M=0;if(w===S)return $;$++,M=0}else{if(w===S)return $;if(M++,M>=Q)$++,M=0}return console.warn(`⚠️ getRow(${S}) fell through - returning ${$}`),$},W=(S)=>{if(!q)return S%Q;if(q(S))return 0;let $=0;for(let M=0;M<=S;M++)if(q(M))$=0;else{if(M===S)return $;if($++,$>=Q)$=0}return $},Z=(S,$,M)=>{if(M<=0)return{start:0,end:-1};if(!q){let v=Math.max(0,S*Q),g=Math.min(M-1,($+1)*Q-1);return{start:v,end:g}}let w=-1,z=-1,C=0,r=0;for(let v=0;v<M;v++){if(q(v)){if(r>0)C++,r=0;if(C>=S&&C<=$){if(w===-1)w=v;z=v}C++,r=0}else{if(C>=S&&C<=$){if(w===-1)w=v;z=v}if(r++,r>=Q)C++,r=0}if(C>$&&r===0)break}if(w===-1)return{start:0,end:-1};return{start:w,end:z}},V=(S,$,M)=>{if($<0||$>=Q)return-1;let w=S*Q+$;if(w<0||w>=M)return-1;return w},b=(S)=>{let $=(Q-1)*Y;return Math.max(0,(S-$)/Q)};return{get columns(){return Q},get gap(){return Y},update:(S)=>{if(S.columns!==void 0)Q=Math.max(1,Math.floor(S.columns));if(S.gap!==void 0)Y=S.gap;if(S.isHeaderFn!==void 0)q=S.isHeaderFn},getTotalRows:j,getPosition:U,getRow:_,getCol:W,getItemRange:Z,getItemIndex:V,getColumnWidth:b,getColumnOffset:(S,$)=>{let M=b($);return S*(M+Y)}}};var A4=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let U=document.createElement("div");return U.setAttribute("role","option"),U},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-row"),j.removeAttribute("data-col"),Q.push(j)},clear:()=>{Q.length=0}}},L4=1,uJ=(J,Q,Y,q,K,j,U,_,W=!1)=>{let Z=A4(),V=new Map,b=j,G=!1,H=0,S="",$=-1,M={selected:!1,focused:!1},w=(B,X)=>{return M.selected=B,M.focused=X,M},z=`${K}-item ${K}-grid-item`,C=`${K}-item--selected`,r=`${K}-item--focused`,v=`${K}-item--placeholder`,g=`${K}-item--replaced`,P=(B,X)=>{if(typeof X==="string")B.innerHTML=X;else B.replaceChildren(X)},m=(B,X,R)=>{B.classList.toggle(C,X),B.classList.toggle(r,R)},t=(B,X)=>{let R=q.getRow(B);if(X?.compression?.isCompressed)return r0(R,X.scrollPosition,Y,X.totalItems,X.containerSize,X.compression,X.rangeStart);return Y.getOffset(R)},s=(B,X)=>{let R=G&&q.getCol(B)===0,D=R?0:q.getCol(B),A=R?0:q.getColumnOffset(D,b),N;if(G){let y=q.getRow(B),O=0,k=new Set;for(let x=0;x<B;x++){let n=q.getRow(x);if(n<y&&!k.has(n)){let e=Y.getSize(x);O+=e,k.add(n)}}N=O}else N=t(B,X);if(W)return`translate(${Math.round(N)}px, ${Math.round(A)}px)`;return`translate(${Math.round(A)}px, ${Math.round(N)}px)`},T=(B,X)=>{B.style.transform=X},h=(B,X)=>{let R=B.dataset.id?.startsWith("__group_header"),D=R?b:q.getColumnWidth(b),A;if(G||R)A=Y.getSize(X)-q.gap;else{let N=q.getRow(X);A=Y.getSize(N)-q.gap}if(W)B.style.width=`${A}px`,B.style.height=`${D}px`;else B.style.width=`${D}px`,B.style.height=`${A}px`},I=(B,X,R,D,A)=>{let N=Z.acquire(),y=w(R,D);if(N.className=z,N.dataset.index=String(B),N.dataset.id=String(X.id),N.dataset.row=String(q.getRow(B)),N.dataset.col=String(q.getCol(B)),N.ariaSelected=String(R),_)N.id=`${_}-item-${B}`;if(U){let x=U();if(x!==$)$=x,S=String(x);N.setAttribute("aria-setsize",S),N.setAttribute("aria-posinset",String(B+1))}h(N,B);let O=Q(X,B,y);if(P(N,O),String(X.id).startsWith(R0))N.classList.add(v);return m(N,R,D),T(N,A),{element:N,lastItemId:X.id,lastSelected:R,lastFocused:D,lastTransform:A,lastSeenFrame:H}},l=(B,X,R,D,A)=>{if(H++,X.start===0&&B.length>0)G=C0(B[0]);for(let[O,k]of V)if(O>=X.start&&O<=X.end)k.lastSeenFrame=H;else if(H-k.lastSeenFrame>L4)Z.release(k.element),V.delete(O);let N=!1;if(U){let O=U();if(O!==$)$=O,S=String(O),N=!0}let y=null;for(let O=X.start;O<=X.end;O++){let k=O-X.start,x=B[k];if(!x){console.warn(`⚠️ RENDER: Missing item at index ${O} (range: ${X.start}-${X.end}, items.length: ${B.length})`);continue}let n=R.has(x.id),e=O===D,J0=V.get(O);if(J0){let j0=J0.lastItemId!==x.id,o=J0.lastSelected!==n,Q0=J0.lastFocused!==e;if(j0){let U0=String(J0.lastItemId),Z0=String(x.id),N0=U0.startsWith(R0),D0=Z0.startsWith(R0);if(!D0&&w0(R,O,x.id))n=!0;let E0=w(n,e),X0=Q(x,O,E0);if(P(J0.element,X0),J0.element.dataset.id=Z0,J0.element.dataset.row=String(q.getRow(O)),J0.element.dataset.col=String(q.getCol(O)),h(J0.element,O),J0.element.classList.toggle(v,D0),N0&&!D0)J0.element.classList.add(g),setTimeout(()=>J0.element.classList.remove(g),300);J0.lastItemId=x.id}if(j0||o||Q0)m(J0.element,n,e),J0.element.ariaSelected=String(n),J0.lastSelected=n,J0.lastFocused=e;let q0=s(O,A);if(J0.lastTransform!==q0)T(J0.element,q0),J0.lastTransform=q0;if(N)J0.element.setAttribute("aria-setsize",S)}else{if(w0(R,O,x.id))n=!0;let j0=s(O,A),o=I(O,x,n,e,j0);if(!y)y=document.createDocumentFragment();y.appendChild(o.element),V.set(O,o)}}if(y)J.appendChild(y)},F=(B)=>{for(let[X,R]of V){let D=s(X,B);if(R.lastTransform!==D)T(R.element,D),R.lastTransform=D}},E=(B,X,R,D)=>{let A=V.get(B);if(!A)return;let N=w(R,D),y=Q(X,B,N);P(A.element,y),m(A.element,R,D),A.element.dataset.id=String(X.id),A.element.ariaSelected=String(R),h(A.element,B),A.lastItemId=X.id,A.lastSelected=R,A.lastFocused=D},L=(B,X,R)=>{let D=V.get(B);if(!D)return;let A=D.lastSelected!==X,N=D.lastFocused!==R;if(A||N)m(D.element,X,R),D.lastSelected=X,D.lastFocused=R},f=(B)=>{return V.get(B)?.element},a=(B)=>{if(Math.abs(B-b)<1)return;b=B;for(let[X,R]of V){h(R.element,X);let D=s(X);T(R.element,D),R.lastTransform=D}},c=()=>{g0(J,V.keys(),(B)=>V.get(B)?.element)},u=()=>{for(let[,B]of V)Z.release(B.element);V.clear()};return{render:l,updatePositions:F,updateItem:E,updateItemClasses:L,getElement:f,sortDOM:c,updateContainerWidth:a,clear:u,destroy:()=>{u(),Z.clear()}}};var F4=new Set,gJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let Q=null,Y=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(q){let{dom:K,emitter:j,config:U,rawConfig:_}=q,{classPrefix:W}=U;if(U.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let Z=U.horizontal,V=jJ(y0(_.padding),Z),b=()=>{return(Z?K.viewport.clientHeight:q.getContainerWidth())-V},G=_.items?.some((u)=>u.__groupHeader===!0),H={columns:J.columns,gap:J.gap??0};if(G)H.isHeaderFn=(u)=>{let p=q.dataManager.getItem(u);return!!(p&&p.__groupHeader===!0)};Q=p1(H);let S=Q.gap;q.setVirtualTotalFn(()=>{let u=q.dataManager.getTotal();return Q.getTotalRows(u)}),q.setItemToScrollIndexFn((u)=>Math.floor(u/H.columns)),q.methods.set("_getNavTotal",()=>q.dataManager.getTotal()),q.methods.set("_getNavDelta",()=>Z?{ud:1,lr:H.columns,cols:H.columns}:{ud:H.columns,lr:1,cols:H.columns});let $=_.item,M=U.horizontal?$.width:$.height,w={containerWidth:b(),columns:Q.columns,gap:Q.gap},z={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof M==="function")q.setSizeConfig((u)=>{let p=w.containerWidth-2,B=(w.columns-1)*w.gap;return z.containerWidth=w.containerWidth,z.columns=w.columns,z.gap=w.gap,z.columnWidth=(p-B)/w.columns,z.row=Q.getRow(u),z.column=Q.getCol(u),z.totalRows=Q.getTotalRows(q.dataManager.getTotal()),z.totalColumns=w.columns,M(u,z)+w.gap});else if(S>0)q.setSizeConfig(M+S);if(q.rebuildSizeCache(),S>0){let u=q.sizeCache.getTotalSize;q.sizeCache.getTotalSize=()=>{let p=u();return p>0?p-w.gap:0}}K.root.classList.add(`${W}--grid`);let C=b(),r=_.item.template,v=()=>{Y=uJ(K.items,r,q.sizeCache,Q,W,C,()=>q.dataManager.getTotal(),U.ariaIdPrefix,U.horizontal),q.replaceRenderer(Y)};v(),q.setUpdateItemClassesFn((u,p,B)=>{Y?.updateItemClasses(u,p,B)}),q.methods.set("_updateRenderedItem",(u,p,B,X)=>{Y?.updateItem(u,p,B,X)}),q.methods.set("_getGridLayout",()=>Q),q.methods.set("_getGridConfig",()=>H),q.methods.set("_replaceGridRenderer",(u)=>{Y=u}),q.methods.set("_createGridRenderer",uJ),q.methods.set("_updateGridLayoutForGroups",(u)=>{Q.update({isHeaderFn:u});let p=q.dataManager.getTotal(),B=0;for(let X=0;X<p;X++)if(Q.getCol(X)===0){let R=q.sizeCache.getSize(X);B+=R}q.sizeCache.getTotalSize=()=>B,q.updateContentSize(B),v()}),q.methods.set("updateGrid",(u)=>{if(u.columns!==void 0){if(!Number.isInteger(u.columns)||u.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");H.columns=u.columns}if(u.gap!==void 0){if(u.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");H.gap=u.gap}if(Q)Q.update(H);let p=b();if(w.containerWidth=p,w.columns=H.columns,w.gap=H.gap??0,Y)Y.updateContainerWidth(p);q.rebuildSizeCache(),q.updateContentSize(q.sizeCache.getTotalSize()),q.updateCompressionMode();for(let B=0;B<q.contentSizeHandlers.length;B++)q.contentSizeHandlers[B]();if(Y)Y.clear();q.forceRender()});let g=null,P=null,m=!1,t=()=>{if(m)return;m=!0,g=q.methods.get("_getSelectedIds")??null,P=q.methods.get("_getFocusedIndex")??null},s=-1,T=-1,h=!0,I=U.overscan,l={start:0,end:0},F={start:0,end:0},E=()=>{if(q.state.isDestroyed)return;let u=q.scrollController.getScrollTop(),p=q.state.viewportState.containerSize;if(!h&&u===s&&p===T)return;s=u,T=p,h=!1;let B=q.getVirtualTotal();q.getVisibleRange(u,p,B,l),F.start=Math.max(0,l.start-I),F.end=Math.min(B-1,l.end+I);let X=q.state.viewportState;X.scrollPosition=u,X.visibleRange.start=l.start,X.visibleRange.end=l.end,X.renderRange.start=F.start,X.renderRange.end=F.end;let R=q.state.lastRenderRange,D=X.isCompressed,A=R.start!==F.start||R.end!==F.end;if(!A&&D){Y.updatePositions(q.getCompressionContext());return}let N=q.dataManager.getTotal(),y=Q.getItemRange(F.start,F.end,N),O=q.dataManager.getItemsInRange(y.start,y.end),k=D?q.getCompressionContext():void 0;t();let x=g?g():F4,n=P?P():-1;if(Y.render(O,y,x,n,k),A)R.start=F.start,R.end=F.end,j.emit("range:change",{range:{start:F.start,end:F.end}})},L=()=>{if(q.state.isDestroyed)return;q.state.lastRenderRange.start=-1,q.state.lastRenderRange.end=-1,h=!0,E()};q.setRenderFns(E,L);let f=typeof M==="function";q.resizeHandlers.push((u,p)=>{let B=(Z?p:u)-V;if(Math.abs(B-w.containerWidth)<1)return;if(w.containerWidth=B,Y)Y.updateContainerWidth(B);if(f){q.rebuildSizeCache(),q.updateContentSize(q.sizeCache.getTotalSize()),q.updateCompressionMode();for(let X=0;X<q.contentSizeHandlers.length;X++)q.contentSizeHandlers[X]();if(Y)Y.clear();q.forceRender()}});let{animateScroll:a,cancelScroll:c}=l0(q.scrollController,q.renderIfNeeded);if(q.methods.set("cancelScroll",c),q.methods.set("scrollToIndex",(u,p)=>{let B=Math.floor(u/J.columns),{align:X,behavior:R,duration:D}=z0(p),A=q.dataManager.getState(),N=Q.getTotalRows(A.total),y=Math.max(0,Math.min(B,N-1)),O=q.adjustScrollPosition(t0(y,q.sizeCache,q.state.viewportState.containerSize,N,X,q.getCachedCompression()));if(R==="smooth")a(q.scrollController.getScrollTop(),O,D);else c(),q.scrollController.scrollTo(O)}),!q.methods.has("_getTotal"))q.methods.set("_getTotal",()=>q.dataManager.getTotal());q.idleHandlers.push(()=>{if(Y)Y.sortDOM()}),q.destroyHandlers.push(()=>{if(c(),Y)Y.destroy(),Y=null;K.root.classList.remove(`${W}--grid`)})},destroy(){if(Y)Y.destroy(),Y=null}}};var u1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,q=J.containerSize,K=0,j=[],U=()=>{let M=(Q-1)*Y;K=Math.max(0,(q-M)/Q),j=Array(Q);let w=K+Y;for(let z=0;z<Q;z++)j[z]=z*w};U();let _=[],W=0,Z=[],V=(M)=>{let w=0,z=M[0];for(let C=1;C<M.length;C++){let r=M[C];if(r<z)z=r,w=C}return w},b=(M,w)=>{if(M<=0)return W=0,_=[],[];let z=Array(Q).fill(0),C=Array(Q);for(let g=0;g<Q;g++)C[g]=[];let r=Array(M);for(let g=0;g<M;g++){let P=V(z),m=w(g),t=z[P];r[g]={index:g,x:j[P],y:t,lane:P,size:m,crossSize:K},C[P].push(g),z[P]=t+m+Y}_=C;let v=0;for(let g=0;g<Q;g++){let P=z[g],m=P>0?P-Y:0;if(m>v)v=m}return W=v,r},G=(M)=>{if(M.length===0)return W>0?W:0;if(W>0)return W;let w=Array(Q).fill(0);for(let C of M){let r=C.y+C.size,v=w[C.lane];if(r>v)w[C.lane]=r}let z=0;for(let C=0;C<Q;C++)if(w[C]>z)z=w[C];return z},H=(M,w,z)=>{if(M.length===0||z<=w)return Z.length=0,Z;if(_.length===0||_.length!==Q)return S(M,w,z);Z.length=0;for(let C=0;C<Q;C++){let r=_[C],v=r.length;if(v===0)continue;let g=0,P=v;while(g<P){let m=g+P>>>1,t=M[r[m]];if(t.y+t.size<=w)g=m+1;else P=m}for(let m=g;m<v;m++){let t=M[r[m]];if(t.y>=z)break;Z.push(t)}}return Z},S=(M,w,z)=>{let C=[];for(let r of M)if(r.y+r.size>w&&r.y<z)C.push(r);return C};return{get columns(){return Q},get gap(){return Y},get containerSize(){return q},update:(M)=>{let w=!1;if(M.columns!==void 0){let z=Math.max(1,Math.floor(M.columns));if(z!==Q)Q=z,w=!0}if(M.gap!==void 0&&M.gap!==Y)Y=M.gap,w=!0;if(M.containerSize!==void 0&&M.containerSize!==q)q=M.containerSize,w=!0;if(w)U()},calculateLayout:b,getTotalSize:G,getVisibleItems:H}};var T4=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let U=document.createElement("div");return U.setAttribute("role","option"),U},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-lane"),Q.push(j)},clear:()=>{Q.length=0}}},b4=1,g1=(J,Q,Y,q=!1,K,j)=>{let U=T4(),_=new Map,W=new Set,Z=0,V="",b=-1,G={selected:!1,focused:!1},H=(T,h)=>{return G.selected=T,G.focused=h,G},S=`${Y}-item ${Y}-masonry-item`,$=`${Y}-item--selected`,M=`${Y}-item--focused`,w=(T,h)=>{if(typeof h==="string")T.innerHTML=h;else T.replaceChildren(h)},z=(T,h,I)=>{T.classList.toggle($,h),T.classList.toggle(M,I)},C=(T,h)=>{if(q)T.style.transform=`translate(${Math.round(h.y)}px, ${Math.round(h.x)}px)`;else T.style.transform=`translate(${Math.round(h.x)}px, ${Math.round(h.y)}px)`},r=(T,h)=>{if(q)T.style.width=`${h.size}px`,T.style.height=`${h.crossSize}px`;else T.style.width=`${h.crossSize}px`,T.style.height=`${h.size}px`},v=(T,h,I,l,F)=>{let E=U.acquire(),L=H(l,F);if(E.className=S,E.dataset.index=String(T),E.dataset.id=String(h.id),E.dataset.lane=String(I.lane),E.ariaSelected=String(l),j)E.id=`${j}-item-${T}`;if(K){let a=K();if(a!==b)b=a,V=String(a);E.setAttribute("aria-setsize",V),E.setAttribute("aria-posinset",String(T+1))}r(E,I);let f=Q(h,T,L);return w(E,f),z(E,l,F),C(E,I),{element:E,lastItemId:h.id,lastSelected:l,lastFocused:F,lastY:I.y,lastX:I.x,lastSize:I.size,lastCrossSize:I.crossSize,lastSeenFrame:Z}},g=(T,h,I,l)=>{Z++,W.clear();for(let E=0;E<h.length;E++)W.add(h[E].index);for(let[E,L]of _)if(W.has(E))L.lastSeenFrame=Z;else if(Z-L.lastSeenFrame>b4)U.release(L.element),_.delete(E);let F=null;for(let E=0;E<h.length;E++){let L=h[E],f=L.index,a=T(f);if(!a)continue;let c=I.has(a.id),u=f===l,p=_.get(f);if(p){let B=p.lastItemId!==a.id,X=p.lastSelected!==c,R=p.lastFocused!==u,D=p.lastY!==L.y||p.lastX!==L.x,A=p.lastSize!==L.size||p.lastCrossSize!==L.crossSize;if(B){let N=H(c,u),y=Q(a,f,N);w(p.element,y),p.element.dataset.id=String(a.id),p.lastItemId=a.id}if(B||X||R)z(p.element,c,u),p.element.ariaSelected=String(c),p.lastSelected=c,p.lastFocused=u;if(A)r(p.element,L),p.lastSize=L.size,p.lastCrossSize=L.crossSize;if(D)C(p.element,L),p.lastY=L.y,p.lastX=L.x}else{let B=v(f,a,L,c,u);if(!F)F=document.createDocumentFragment();F.appendChild(B.element),_.set(f,B)}}if(F)J.appendChild(F)},P=()=>{for(let{element:T}of _.values())U.release(T);_.clear(),J.innerHTML=""};return{render:g,getElement:(T)=>_.get(T)?.element,updateItemClasses:(T,h,I)=>{let l=_.get(T);if(!l)return;let F=l.lastSelected!==h,E=l.lastFocused!==I;if(F||E)z(l.element,h,I),l.lastSelected=h,l.lastFocused=I},sortDOM:()=>{g0(J,_.keys(),(T)=>_.get(T)?.element)},clear:P,destroy:()=>{P(),U.clear()}}};var H4=new Set,k4=100,xJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let Q=null,Y=null,q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(K){let{dom:j,emitter:U,config:_,rawConfig:W}=K,Z=_.classPrefix,V=_.horizontal;if(_.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");j.root.classList.add(`${Z}--masonry`);let b=y0(W.padding),G=jJ(b,V),H=u0(b,V),S=()=>{return(V?j.viewport.clientHeight:j.viewport.clientWidth)-G},$={columns:J.columns,gap:J.gap??0,containerSize:S()};Q=u1($);let M=W.item,w=V&&W.item.width?W.item.width:M.height,z={containerWidth:0,columns:0,gap:0,columnWidth:0},C=typeof w==="function"?(N)=>w(N,z):()=>w,r=()=>{let N=K.dataManager.getTotal(),y=Q;z.containerWidth=y.containerSize,z.columns=y.columns,z.gap=y.gap;let O=(y.columns-1)*y.gap;z.columnWidth=Math.max(0,(z.containerWidth-O)/y.columns),q=y.calculateLayout(N,C),t();let k=Q.getTotalSize(q);K.sizeCache.getTotalSize=()=>k,K.updateContentSize(k)},v=W.item.template;Y=g1(j.items,v,Z,V,()=>K.dataManager.getTotal(),_.ariaIdPrefix),K.setUpdateItemClassesFn((N,y,O)=>{Y?.updateItemClasses(N,y,O)});let g=[],P=new Int32Array(0),m=[],t=()=>{let N=$.columns,y=q.length;if(g=Array.from({length:N},()=>[]),P.length<y)P=new Int32Array(y);for(let O=0;O<y;O++){let k=q[O],x=g[k.lane].length;g[k.lane].push(O),P[O]=x}m=Array(N);for(let O=0;O<N;O++){let k=g[O],x=new Float64Array(k.length);for(let n=0;n<k.length;n++){let e=q[k[n]];x[n]=e.y+e.size*0.5}m[O]=x}};K.methods.set("_getNavTotal",()=>K.dataManager.getTotal());let s=(N,y)=>{let O=N.length;if(O===0)return-1;if(O===1)return 0;let k=0,x=O-1;while(k<x){let n=k+x>>1;if(N[n]<y)k=n+1;else x=n}if(k>0&&Math.abs(N[k-1]-y)<=Math.abs(N[k]-y))return k-1;return k};K.methods.set("_navigate",(N,y,O)=>{let k=q[N];if(!k)return N;let x=k.lane,n=$.columns,e=P[N],J0=g[x];switch(V?y==="ArrowDown"?"ArrowRight":y==="ArrowUp"?"ArrowLeft":y==="ArrowRight"?"ArrowDown":y==="ArrowLeft"?"ArrowUp":y:y){case"ArrowDown":{if(e+1<J0.length)return J0[e+1];return N}case"ArrowUp":{if(e>0)return J0[e-1];return N}case"ArrowRight":{if(x>=n-1)return N;let o=x+1,Q0=k.y+k.size*0.5,q0=g[o];if(q0.length===0)return N;let U0=s(m[o],Q0);return U0>=0?q0[U0]:N}case"ArrowLeft":{if(x<=0)return N;let o=x-1,Q0=k.y+k.size*0.5,q0=g[o];if(q0.length===0)return N;let U0=s(m[o],Q0);return U0>=0?q0[U0]:N}case"Home":return 0;case"End":return O-1;case"PageDown":{let o=K.state.viewportState.containerSize,Q0=k.size>0?k.size:150,q0=Math.max(1,Math.floor(o/Q0)),U0=Math.min(e+q0,J0.length-1);return J0[U0]}case"PageUp":{let o=K.state.viewportState.containerSize,Q0=k.size>0?k.size:150,q0=Math.max(1,Math.floor(o/Q0)),U0=Math.max(0,e-q0);return J0[U0]}}return N}),K.methods.set("_scrollItemIntoView",(N)=>{let y=q[N];if(!y)return;let O=K.scrollController.getScrollTop(),k=K.state.viewportState.containerSize,x=y.y,n=x+y.size,e=O+k;if(x<O)K.scrollController.scrollTo(K.adjustScrollPosition(Math.max(0,x)));else if(n>e)K.scrollController.scrollTo(K.adjustScrollPosition(n-k))});let T=null,h=null,I=!1,l=()=>{if(I)return;I=!0,T=K.methods.get("_getSelectedIds")??null,h=K.methods.get("_getFocusedIndex")??null},F=(N)=>K.dataManager.getItem(N),E=-1,L=-1,f=!0,a=_.overscan*k4,c=()=>{if(K.state.isDestroyed)return;l();let N=K.scrollController.getScrollTop(),y=K.state.viewportState.containerSize;if(!f&&N===E&&y===L)return;E=N,L=y,f=!1;let O=Math.max(0,N-a),k=N+y+a,x=Q.getVisibleItems(q,O,k),n=T?T():H4,e=h?h():-1;if(Y&&x.length>0)Y.render(F,x,n,e);let J0=K.state.viewportState;J0.scrollPosition=N;let j0=x.length,o=j0>0?x[0].index:0,Q0=j0>0?x[j0-1].index:0;J0.visibleRange.start=o,J0.visibleRange.end=Q0,J0.renderRange.start=o,J0.renderRange.end=Q0;let q0=K.state.lastRenderRange;if(q0.start!==o||q0.end!==Q0)q0.start=o,q0.end=Q0,U.emit("range:change",{range:{start:o,end:Q0}})},u=()=>{K.state.lastRenderRange.start=-1,K.state.lastRenderRange.end=-1,f=!0,c()};K.setRenderFns(c,u);let p=(N,y)=>{let O=(V?y:N)-G;if(Q&&Q.containerSize!==O){if(Q.update({containerSize:O}),r(),Y)Y.clear();u()}};K.resizeHandlers.push(p);let B=()=>{r(),u()},X=K.dataManager,R=(N)=>{if(typeof X[N]!=="function")return;let y=X[N].bind(X);X[N]=(...O)=>{y(...O),B()}};R("setItems"),R("appendItems"),R("prependItems"),R("updateItem"),R("removeItem");let{animateScroll:D,cancelScroll:A}=l0(K.scrollController,K.renderIfNeeded);K.methods.set("cancelScroll",A),K.methods.set("scrollToIndex",(N,y)=>{let O=q[N];if(!O)return;let{align:k,behavior:x,duration:n}=z0(y),e=O.y,J0=K.state.viewportState.containerSize,j0=e;if(k==="center")j0=e-J0/2+O.size/2;else if(k==="end"){j0=e-J0+O.size;let o=Q.getTotalSize(q);if(N===q.length-1)j0=Math.max(0,o+H-J0)}if(j0=Math.max(0,j0),j0=K.adjustScrollPosition(j0),x==="smooth")D(K.scrollController.getScrollTop(),j0,n);else A(),K.scrollController.scrollTo(j0)}),r(),K.idleHandlers.push(()=>{if(Y)Y.sortDOM()}),K.destroyHandlers.push(()=>{if(A(),Y)Y.destroy();j.root.classList.remove(`${Z}--masonry`)})}}};var mJ=(J)=>{let Q=J?.mode??"single",Y=J?.followFocus??!1,q=J?.initial,K=J?.shiftArrowToggle??"origin",j=J?.focusOnClick??!1,U=F1(q),_=null,W=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(Z){let{dom:V,emitter:b,config:G}=Z,{classPrefix:H,ariaIdPrefix:S}=G;if(Q==="none"){Z.methods.set("select",()=>{}),Z.methods.set("deselect",()=>{}),Z.methods.set("toggleSelect",()=>{}),Z.methods.set("selectAll",()=>{}),Z.methods.set("clearSelection",()=>{}),Z.methods.set("getSelected",()=>[]),Z.methods.set("getSelectedItems",()=>[]),Z.methods.set("setSelectionMode",()=>{}),Z.methods.set("selectNext",()=>{}),Z.methods.set("selectPrevious",()=>{}),Z.methods.set("_focusById",()=>{}),Z.methods.set("_getFocusedId",()=>{return});return}V.root.classList.add(`${H}--selectable`);let $=Z.methods.get("_isGroupHeader"),M=(B)=>$?$(B):!1,w=(B,X,R)=>{if(!$)return B;let D=B;while(D>=0&&D<R){if(!M(D))return D;D+=X}D=B-X;while(D>=0&&D<R){if(!M(D))return D;D-=X}return B},z=new Map,C=()=>{z.clear();let B=Z.dataManager.getTotal(),X=Z.dataManager.getCached();if(X===0)return;if(X>=B){for(let D=0;D<B;D++){let A=Z.dataManager.getItem(D);if(A)z.set(A.id,D)}return}let R=Z.dataManager.getStorage();if(R&&typeof R.getLoadedRanges==="function"){let D=R.getLoadedRanges();for(let A of D)for(let N=A.start;N<=A.end;N++){let y=Z.dataManager.getItem(N);if(y&&!y._isPlaceholder)z.set(y.id,N)}}};b.on("data:change",({type:B,id:X})=>{if(B==="remove")U.selected.delete(X),C()}),b.on("load:end",({items:B,offset:X})=>{if(!B||B.length===0)return;if(X!==void 0)for(let R=0;R<B.length;R++){let D=B[R];if(D&&D.id!==void 0)z.set(D.id,X+R)}else C()}),C(),Z.methods.set("_getSelectedIds",()=>{return U.selected}),Z.methods.set("_getFocusedIndex",()=>{return U.focusVisible?U.focusedIndex:-1});let{forceRender:r}=Z.getRenderFns(),v=()=>{r();let B=(X)=>{let R=z.get(X);if(R===void 0)return;return Z.dataManager.getItem(R)};b.emit("selection:change",{selected:yJ(U),items:PJ(U,B)})},g=y0(Z.rawConfig.padding),P=G.horizontal?g.left:g.top,m=G.horizontal?g.right:g.bottom,t=Z.getItemToScrollIndexFn(),s=null,T=null,h=null,I=!1,l=()=>{if(I)return;I=!0,s=Z.methods.get("_getNavDelta")??null,T=Z.methods.get("_navigate")??null,h=Z.methods.get("_scrollItemIntoView")??null},F=()=>{return l(),s?s():{ud:1,lr:0,cols:0}},E=(B)=>{if(B<0)return;if(l(),h)h(B);else{let X=Z.state.viewportState.containerSize,R=Z.state.viewportState.scrollPosition,D=Z.dataManager.getTotal(),A=Z.getCachedCompression(),{visibleRange:N}=Z.state.viewportState,y=t(B),O=XJ(y,Z.sizeCache,R,X,P,m,A,D,N);if(O!==R)Z.scrollController.scrollTo(Z.adjustScrollPosition(O))}},L=()=>{let B=t(Math.max(0,U.focusedIndex)),X=Z.sizeCache.getSize(B),{ud:R}=F();return Math.max(R,Math.floor(Z.state.viewportState.containerSize/X)*R)};_=document.createElement("div"),_.setAttribute("aria-live","polite"),_.setAttribute("aria-atomic","true"),_.className=`${H}-live-region`,_.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",(V.root.getAttribute("role")==="grid"?V.root.parentElement??V.root:V.root).appendChild(_);let a=_;b.on("selection:change",({selected:B})=>{let X=B.length;if(X===0)a.textContent="";else if(X===1)a.textContent="1 item selected";else a.textContent=`${X} items selected`});let c=()=>{if(Z.state.isDestroyed)return;if(!V.root.matches(":focus-visible"))return;let B=Z.dataManager.getTotal();if(B===0)return;let X=U.focusedIndex>=0?Math.min(U.focusedIndex,B-1):0;X=w(X,1,B),U=I0(U,X),U.focusVisible=!0,V.root.setAttribute("aria-activedescendant",`${S}-item-${X}`),E(X);let R=Z.dataManager.getItem(X);if(R)Z.renderer.updateItemClasses(X,U.selected.has(R.id),!0)};if(G.interactive)V.root.addEventListener("focusin",c);let u=(B)=>{if(Z.state.isDestroyed)return;let X=B.relatedTarget;if(X&&V.root.contains(X))return;let R=U.focusedIndex;if(U.focusVisible=!1,V.root.removeAttribute("aria-activedescendant"),R>=0){let D=Z.dataManager.getItem(R);if(D)Z.renderer.updateItemClasses(R,U.selected.has(D.id),!1)}};if(G.interactive)V.root.addEventListener("focusout",u);if(Z.clickHandlers.push((B)=>{if(Z.state.isDestroyed)return;let R=B.target.closest("[data-index]");if(!R)return;let D=parseInt(R.dataset.index??"-1",10);if(D<0)return;let A=Z.dataManager.getItem(D);if(!A)return;if(M(D))return;if(b.emit("item:click",{item:A,index:D,event:B}),Q==="multiple"&&B.shiftKey&&U.focusedIndex>=0){let N=W>=0?W:U.focusedIndex,y=Z.getAllLoadedItems();U=ZJ(U,y,N,D,Q),U=I0(U,D),U.focusVisible=j,W=D,V.root.setAttribute("aria-activedescendant",`${S}-item-${D}`),v();return}W=D,U=I0(U,D),U.focusVisible=j,V.root.setAttribute("aria-activedescendant",`${S}-item-${D}`),U=c0(U,A.id,Q),v()}),G.interactive)Z.keydownHandlers.push((B)=>{if(Z.state.isDestroyed)return;let X=Z.dataManager.getTotal(),R=U.focusedIndex,D=!1,A=!1,N=U;if(l(),T)switch(B.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let y=T(U.focusedIndex,B.key,X);if(y!==U.focusedIndex)N=I0(U,y),N.focusVisible=!0,D=!0,A=!0;else{B.preventDefault();return}break}}if(!D)switch(B.key){case"ArrowUp":N=KJ(U,X,G.wrap,F().ud),N.focusVisible=!0,D=!0,A=!0;break;case"ArrowDown":N=UJ(U,X,G.wrap,F().ud),N.focusVisible=!0,D=!0,A=!0;break;case"ArrowLeft":{let{lr:y}=F();if(y)N=KJ(U,X,G.wrap,y),N.focusVisible=!0,D=!0,A=!0;break}case"ArrowRight":{let{lr:y}=F();if(y)N=UJ(U,X,G.wrap,y),N.focusVisible=!0,D=!0,A=!0;break}case"PageUp":N=$J(U,X,L(),"up"),N.focusVisible=!0,D=!0,A=!0;break;case"PageDown":N=$J(U,X,L(),"down"),N.focusVisible=!0,D=!0,A=!0;break;case"Home":{N=T1(U,X),N.focusVisible=!0,D=!0,A=!0;break}case"End":{N=b1(U,X),N.focusVisible=!0,D=!0,A=!0;break}}switch(B.key){case" ":case"Enter":if(B.key===" "&&B.shiftKey&&Q==="multiple"&&U.focusedIndex>=0){if(W>=0){let y=Z.getAllLoadedItems();N=ZJ(N,y,W,U.focusedIndex,Q)}N.focusVisible=!0,D=!0;break}if(U.focusedIndex>=0&&!M(U.focusedIndex)){let y=Z.dataManager.getItem(U.focusedIndex);if(y)N=c0(U,y.id,Q),N.focusVisible=!0;W=U.focusedIndex,D=!0}break;case"a":if((B.ctrlKey||B.metaKey)&&Q==="multiple"){let y=Z.getAllLoadedItems();if(U.selected.size===y.length)N=kJ(N);else N=HJ(N,y,Q);N.focusVisible=!0,D=!0,A=!1}break}if(A&&$){let y=N.focusedIndex>R?1:-1;N.focusedIndex=w(N.focusedIndex,y,X)}if(B.shiftKey&&Q==="multiple"&&A&&N.focusedIndex>=0){let y=B.key==="ArrowUp"||B.key==="ArrowDown"||B.key==="ArrowLeft"||B.key==="ArrowRight",O=(B.ctrlKey||B.metaKey)&&(B.key==="Home"||B.key==="End");if(y){if(K==="origin"){if(R>=0){let k=Z.dataManager.getItem(R);if(k)N=c0(N,k.id,Q)}}else{let k=Z.dataManager.getItem(N.focusedIndex);if(k)N=c0(N,k.id,Q)}W=N.focusedIndex,A=!1}else if(O){let k=Z.getAllLoadedItems(),x=R>=0?R:N.focusedIndex;N=ZJ(N,k,x,N.focusedIndex,Q),W=N.focusedIndex,A=!1}}if(Y&&Q==="single"&&A&&N.focusedIndex>=0){let y=Z.dataManager.getItem(N.focusedIndex);if(y)N=d0(N,[y.id],Q);A=!1}if(D){B.preventDefault(),U=N;let y=U.focusedIndex;if(y>=0)E(y),V.root.setAttribute("aria-activedescendant",`${S}-item-${y}`);else V.root.removeAttribute("aria-activedescendant");if(A){let{selected:O}=U;if(R>=0&&R!==y){let k=Z.dataManager.getItem(R);if(k)Z.renderer.updateItemClasses(R,O.has(k.id),!1)}if(y>=0){let k=Z.dataManager.getItem(y);if(k)Z.renderer.updateItemClasses(y,O.has(k.id),!0)}}else v();if(y>=0&&y!==R){let O=Z.dataManager.getItem(y);if(O)b.emit("focus:change",{id:O.id,index:y})}}});Z.methods.set("select",(...B)=>{U=d0(U,B,Q),v()}),Z.methods.set("deselect",(...B)=>{U=bJ(U,B),v()}),Z.methods.set("toggleSelect",(B)=>{U=c0(U,B,Q),v()}),Z.methods.set("selectAll",()=>{if(Q!=="multiple")return;let B=Z.getAllLoadedItems();U=HJ(U,B,Q),C(),v()}),Z.methods.set("clearSelection",()=>{U=kJ(U),v()}),Z.methods.set("getSelected",()=>{return yJ(U)}),Z.methods.set("getSelectedItems",()=>{return PJ(U,(X)=>{let R=z.get(X);return R===void 0?void 0:Z.dataManager.getItem(R)})});let p=(B)=>{let X=Z.dataManager.getTotal();if(X===0)return;if(l(),T){let N=B==="next"?"ArrowDown":"ArrowUp",y=T(U.focusedIndex,N,X);U=I0(U,y)}else{let{ud:N}=F();U=B==="next"?UJ(U,X,G.wrap,N):KJ(U,X,G.wrap,N)}let R=B==="next"?1:-1;U.focusedIndex=w(U.focusedIndex,R,X);let D=U.focusedIndex,A=Z.dataManager.getItem(D);if(!A)return;U=d0(U,[A.id],Q),E(D),v()};Z.methods.set("selectNext",()=>{p("next")}),Z.methods.set("selectPrevious",()=>{p("previous")}),Z.methods.set("_focusById",(B)=>{let X=z.get(B);if(X===void 0)return;U=I0(U,X);let R=Z.dataManager.getItem(X);if(R)b.emit("focus:change",{id:R.id,index:X})}),Z.methods.set("_getFocusedId",()=>{let B=U.focusedIndex;if(B<0)return;return Z.dataManager.getItem(B)?.id}),Z.destroyHandlers.push(()=>{if(a&&a.parentNode)a.remove();V.root.removeEventListener("focusin",c),V.root.removeEventListener("focusout",u)})},destroy(){if(_&&_.parentNode)_.remove();_=null}}};var $4=(J)=>{try{let Q=sessionStorage.getItem(J);if(!Q)return;return JSON.parse(Q)}catch{return}},dJ=(J)=>{let Q=J?.autoSave,Y=Q?$4(Q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(q){q.methods.set("getScrollSnapshot",()=>{let j=q.scrollController.getScrollTop(),U=q.getCachedCompression(),_=q.getVirtualTotal(),W=q.methods.get("getSelected"),Z=W&&W().length>0?W():void 0;if(_===0){let S={index:0,offsetInItem:0,total:0};if(Z)S.selectedIds=Z;return S}let V,b;if(U.isCompressed){let $=j/U.virtualSize*_;V=Math.max(0,Math.min(Math.floor($),_-1)),b=($-V)*q.sizeCache.getSize(V)}else V=q.sizeCache.indexAtOffset(j),b=j-q.sizeCache.getOffset(V);b=Math.max(0,b);let G={index:V,offsetInItem:b,total:_};if(Z)G.selectedIds=Z;let H=q.methods.get("_getFocusedId");if(H){let S=H();if(S!==void 0)G.focusedId=S}return G});let K=(j)=>{let{index:U,offsetInItem:_,selectedIds:W,focusedId:Z}=j,V=q.getVirtualTotal();if(V===0&&j.total&&j.total>0){q.dataManager.setTotal(j.total),q.sizeCache.rebuild(j.total),q.updateCompressionMode();let v=q.getCachedCompression();if(!v.isCompressed)q.updateContentSize(v.virtualSize)}else if(V===0)return;if(!Number.isFinite(U)||!Number.isFinite(_))return;let b=q.getVirtualTotal();if(q.sizeCache.getTotal()!==b){q.sizeCache.rebuild(b),q.updateCompressionMode();let v=q.getCachedCompression();if(!v.isCompressed)q.updateContentSize(v.virtualSize)}let H=q.getCachedCompression(),S=Math.max(0,Math.min(U,b-1)),$;if(H.isCompressed){let v=q.sizeCache.getSize(S),g=v>0?_/v:0;$=(S+g)/b*H.virtualSize}else $=q.sizeCache.getOffset(S)+_;let M=q.state.viewportState.containerSize,w=H.isCompressed?q.state.viewportState.totalSize:H.virtualSize,z=Math.max(0,w-M);if($=Math.max(0,Math.min($,z)),q.scrollController.scrollTo($),W&&W.length>0){let v=q.methods.get("select");if(v)v(...W)}let C=q.methods.get("loadVisibleRange"),r=()=>{if(Z===void 0)return;let v=q.methods.get("_focusById");if(v)v(Z)};if(C){let g=0,P=$,m=()=>{g++;let t=q.state.viewportState.containerSize,s=q.scrollController.getScrollTop();if(t>0){if(Math.abs(s-P)>1)q.scrollController.scrollTo(P);C().then(r)}else if(g<10)requestAnimationFrame(m)};requestAnimationFrame(m)}else{let v=q.methods.get("reload");if(v)requestAnimationFrame(()=>{v().then(r)});else requestAnimationFrame(r)}};if(q.methods.set("restoreScroll",K),Q){let j=!!Y,U=()=>{if(j)return;let _=q.methods.get("getScrollSnapshot");if(!_)return;let W=_();try{sessionStorage.setItem(Q,JSON.stringify(W))}catch{}};if(q.idleHandlers.push(()=>{if(j)j=!1;U()}),q.emitter.on("selection:change",U),q.emitter.on("focus:change",U),Y&&Y.total&&Y.total>0){let _=q.methods.get("_cancelAutoLoad");if(_)_();q.dataManager.setTotal(Y.total)}}if(Y)queueMicrotask(()=>{K(Y)})}}};var x1=(J,Q=50,Y=1/0,q=!0)=>{let K=J,j=[],U=0,_=()=>{j=K.map((M,w)=>({def:M,index:w,width:0,minWidth:y4(M.minWidth??Q,1),maxWidth:M.maxWidth??Y,resizable:M.resizable??q,offset:0}))},W=(M)=>{if(j.length===0){U=0;return}let w=0,z=0;for(let C=0;C<j.length;C++){let r=j[C],v=r.def;if(v.width!==void 0)r.width=cJ(v.width,r.minWidth,r.maxWidth),w+=r.width;else z++}if(z>0){let r=Math.max(0,M-w)/z;for(let v=0;v<j.length;v++){let g=j[v];if(g.def.width===void 0)g.width=cJ(r,g.minWidth,g.maxWidth)}}Z()},Z=()=>{let M=0;for(let w=0;w<j.length;w++){let z=j[w];z.offset=M,M+=z.width}U=M},V=(M,w)=>{if(M<0||M>=j.length)return 0;let z=j[M];if(!z.resizable)return z.width;let C=cJ(w,z.minWidth,z.maxWidth);return z.width=C,Z(),C},b=(M)=>{return j[M]},G=(M)=>{if(j.length===0)return;if(M<0)return j[0];if(M>=U)return j[j.length-1];let w=0,z=j.length-1;while(w<z){let C=w+z>>>1,r=j[C];if(M<r.offset)z=C-1;else if(M>=r.offset+r.width)w=C+1;else return r}return j[w]},H=(M)=>{if(M<0||M>=j.length)return 0;return j[M].offset},S=(M)=>{if(M<0||M>=j.length)return 0;return j[M].width},$=(M)=>{K=M,_()};return _(),{get columns(){return j},get totalWidth(){return U},resolve:W,updateColumns:$,resizeColumn:V,getColumn:b,getColumnAtX:G,getColumnOffset:H,getColumnWidth:S}},cJ=(J,Q,Y)=>Math.min(Y,Math.max(Q,J)),y4=(J,Q)=>Math.max(Q,J);var m1=(J,Q,Y,q,K,j)=>{let U=document.createElement("div");U.setAttribute("role","rowgroup");let _=document.createElement("div");_.className=`${Y}-table-header`,_.setAttribute("role","row"),_.setAttribute("aria-rowindex","1"),_.style.height=`${Q}px`;let W=document.createElement("div");W.className=`${Y}-table-header-scroll`,W.setAttribute("role","presentation"),_.appendChild(W),U.appendChild(_),J.insertBefore(U,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let Z=[],V=[],b=[],G=!0,H=null,S="asc",$=null,M=!1,w=-1,z=0,C=0,r=(E,L)=>{let f=document.createElement("div");f.className=`${Y}-table-header-cell`,f.setAttribute("role","columnheader"),f.setAttribute("aria-colindex",String(L+1)),f.dataset.columnKey=E.def.key;let a=E.def.align;if(a==="center")f.classList.add(`${Y}-table-header-cell--center`);else if(a==="right")f.classList.add(`${Y}-table-header-cell--right`);let c=document.createElement("div");c.className=`${Y}-table-header-content`;let u=E.def.header?E.def.header(E.def):E.def.label;if(typeof u==="string")c.textContent=u;else c.appendChild(u);if(f.appendChild(c),E.def.sortable){let p=document.createElement("span");p.className=`${Y}-table-header-sort`,p.setAttribute("aria-hidden","true"),f.appendChild(p),b.push(p),f.classList.add(`${Y}-table-header-cell--sortable`)}else b.push(null);if(E.resizable){let p=document.createElement("div");p.className=`${Y}-table-header-resize`,p.dataset.resizeIndex=String(L),f.appendChild(p),V.push(p)}return f},v=(E)=>{$=E,W.textContent="",Z=[],V=[],b=[];let L=E.columns;for(let f=0;f<L.length;f++){let a=L[f],c=r(a,f);Z.push(c),W.appendChild(c)}if(g(E),H)P(H,S)},g=(E)=>{$=E;let L=E.columns;W.style.width=`${E.totalWidth}px`;for(let f=0;f<Z.length&&f<L.length;f++){let a=Z[f],c=L[f];a.style.width=`${c.width}px`}},P=(E,L)=>{if(H=E,S=L,!$)return;let f=$.columns;for(let a=0;a<b.length&&a<f.length;a++){let c=b[a];if(!c)continue;if(f[a].def.key===E&&E!==null)c.textContent=L==="asc"?"▲":"▼",c.style.opacity="0.7",Z[a].setAttribute("aria-sort",L==="asc"?"ascending":"descending");else c.textContent="",c.style.opacity="0",Z[a].removeAttribute("aria-sort")}},m=(E)=>{W.style.transform=`translateX(${-E}px)`},t=(E)=>{let L=E.target;if(!L.dataset.resizeIndex)return;if(E.preventDefault(),E.stopPropagation(),w=parseInt(L.dataset.resizeIndex,10),!$)return;let f=$.getColumn(w);if(!f||!f.resizable)return;M=!0,z=E.clientX,C=f.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",L.classList.add(`${Y}-table-header-resize--active`),L.setPointerCapture(E.pointerId),L.addEventListener("pointermove",s),L.addEventListener("pointerup",T),L.addEventListener("pointercancel",T)},s=(E)=>{if(!M||!$)return;let L=E.clientX-z;if(Math.abs(L)<1)return;let f=Math.max(0,C+L);q(w,f)},T=(E)=>{if(!M)return;let L=E.target;L.removeEventListener("pointermove",s),L.removeEventListener("pointerup",T),L.removeEventListener("pointercancel",T);try{L.releasePointerCapture(E.pointerId)}catch{}L.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",M=!1,w=-1},h=(E)=>{let L=E.target;if(L.dataset.resizeIndex!==void 0)return;if(M)return;let f=L;while(f&&!f.dataset.columnKey)if(f=f.parentElement,f===_||f===null)return;if(!f||!f.dataset.columnKey)return;let a=f.dataset.columnKey;if(!$)return;let c=$.columns,u=-1;for(let B=0;B<c.length;B++)if(c[B].def.key===a){u=B;break}if(u===-1)return;let p=c[u];if(j)j({key:a,index:u,event:E});if(p.def.sortable&&K){let B;if(H===a)if(S==="asc")B="desc";else B=null;else B="asc";K({key:a,index:u,direction:B})}};return _.addEventListener("pointerdown",t),_.addEventListener("click",h),{element:_,update:g,updateSort:P,rebuild:v,show:()=>{if(G)return;G=!0,_.style.display=""},hide:()=>{if(!G)return;G=!1,_.style.display="none"},destroy:()=>{_.removeEventListener("pointerdown",t),_.removeEventListener("click",h),J.style.removeProperty("--vlist-table-header-height"),U.remove(),Z=[],V=[],b=[],$=null,G=!1},syncScroll:m}};var P4=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Q)=>{if(Q.parentNode?.removeChild(Q),J.length<200)Q.className="",Q.removeAttribute("data-id"),Q.removeAttribute("data-index"),Q.removeAttribute("aria-selected"),Q.removeAttribute("aria-rowindex"),Q.removeAttribute("role"),Q.style.cssText="",Q.textContent="",J.push(Q)},clear:()=>{J.length=0}}},d1=(J,Q,Y,q,K,j,U,_,W)=>{let Z=P4(),V=new Map,b=-1,G=Y,H=null,S=null,$=null,M=(O,k)=>{S=O,$=k},w=(O,k)=>{if(k)O.setAttribute("aria-selected","true");else O.removeAttribute("aria-selected")},z=(O,k,x,n)=>{O.setAttribute("role",k),O.setAttribute("data-id",String(x)),O.setAttribute("data-index",String(n))},C=(O)=>String(O).startsWith("__placeholder_"),r=`${K}-item ${K}-table-row`,v=`${K}-item--selected`,g=`${K}-item--focused`,P=`${K}-table-cell`,m=`${K}-table-cell--center`,t=`${K}-table-cell--right`,s=`${K}-item--odd`,T=`${K}-item--placeholder`,h=`${K}-item--replaced`,I=`${K}-item ${K}-table-row ${K}-table-group-header`,l=`${K}-table-group-header-content`,F=(O,k,x,n,e=!1)=>{if(x.def.cell){let J0=x.def.cell(k,x.def,n);if(typeof J0==="string")O.innerHTML=J0;else O.replaceChildren(J0)}else{let J0=k[x.def.key],j0=J0!=null?String(J0):"";if(e&&j0)O.innerHTML=`<span>${j0}</span>`;else O.textContent=j0}},E=(O,k,x,n,e=!1)=>{let J0=r;if(_){if(H){let j0=H(k);if(j0>=0&&(j0&1)===1)J0+=` ${s}`}else if((k&1)===1)J0+=` ${s}`}if(e)J0+=` ${T}`;if(x)J0+=` ${v}`;if(n)J0+=` ${g}`;O.className=J0},L=(O,k,x)=>{if(x?.compression?.isCompressed)return Math.round(r0(O,x.scrollPosition,k,x.totalItems,x.containerSize,x.compression,x.rangeStart));return k.getOffset(O)},f=(O,k)=>{let x=k.def.align;if(x==="center")O.classList.add(m),O.classList.remove(t);else if(x==="right")O.classList.add(t),O.classList.remove(m);else O.classList.remove(m,t)},a=(O,k)=>{let n=G.columns.length;if(k.length===n)return k;let e=[];for(let J0=0;J0<n;J0++){let j0;if(J0<k.length)j0=k[J0];else j0=document.createElement("div"),j0.className=P,O.appendChild(j0);e.push(j0)}for(let J0=n;J0<k.length;J0++)k[J0].remove();return e},c=(O,k,x,n)=>{let e=Z.acquire(),J0=O,j0=x.getSize(k),o=L(k,x,n);e.style.cssText=`width:${G.totalWidth}px;height:${j0}px;transform:translateY(${o}px)`,e.className=I,z(e,"presentation",O.id,k),e.removeAttribute("aria-selected"),e.removeAttribute("aria-rowindex"),e.replaceChildren();let Q0=document.createElement("div");if(Q0.className=l,$){let q0=$(J0.groupKey,J0.groupIndex);if(typeof q0==="string")Q0.innerHTML=q0;else Q0.appendChild(q0)}return e.appendChild(Q0),{element:e,cells:[],index:k,isGroupHeader:!0,lastItemId:O.id,lastSelected:!1,lastFocused:!1,lastOffset:o,lastHeight:j0}},u=(O,k,x,n,e,J0)=>{let j0=Z.acquire(),o=e.getSize(k),Q0=L(k,e,J0),q0=C(O.id);j0.style.cssText=`width:${G.totalWidth}px;height:${o}px;transform:translateY(${Q0}px)`,E(j0,k,x,n,q0),z(j0,"row",O.id,k),j0.id=`${j}-${k}`,j0.setAttribute("aria-rowindex",String(k+2)),w(j0,x);let U0=a(j0,[]),Z0=G.columns;for(let N0=0;N0<U0.length&&N0<Z0.length;N0++){let D0=U0[N0],E0=Z0[N0];D0.style.cssText=`left:${E0.offset}px;width:${E0.width}px`,D0.setAttribute("role","gridcell"),D0.setAttribute("aria-colindex",String(N0+1)),f(D0,E0),F(D0,O,E0,k,q0)}return{element:j0,cells:U0,index:k,isGroupHeader:!1,lastItemId:O.id,lastSelected:x,lastFocused:n,lastOffset:Q0,lastHeight:o}},p=(O,k,x,n,e)=>{for(let[q0,U0]of V)if(q0<k.start||q0>k.end)Z.release(U0.element),V.delete(q0);let J0=!1,j0=U();if(j0!==b)b=j0,J0=!0;let o=null,Q0=Q();H=typeof _==="string"&&W?W():null;for(let q0=k.start;q0<=k.end;q0++){let U0=q0-k.start,Z0=O[U0];if(!Z0)continue;let N0=x.has(Z0.id),D0=q0===n,E0=S?S(Z0):!1,X0=V.get(q0);if(X0){if(X0.isGroupHeader!==E0){Z.release(X0.element),V.delete(q0);let V0=E0?c(Z0,q0,Q0,e):u(Z0,q0,N0,D0,Q0,e);if(V.set(q0,V0),!o)o=document.createDocumentFragment();o.appendChild(V0.element);continue}if(E0){if(X0.lastItemId!==Z0.id){let W0=Z0,B0=X0.element.firstElementChild;if(B0&&$){let A0=$(W0.groupKey,W0.groupIndex);if(typeof A0==="string")B0.innerHTML=A0;else B0.replaceChildren(A0)}X0.element.setAttribute("data-id",String(Z0.id)),X0.lastItemId=Z0.id}let K0=L(q0,Q0,e);if(X0.lastOffset!==K0)X0.lastOffset=K0,X0.element.style.transform=`translateY(${K0}px)`;let _0=Q0.getSize(q0);if(X0.lastHeight!==_0)X0.lastHeight=_0,X0.element.style.height=`${_0}px`}else{let V0=X0.lastItemId!==Z0.id,K0=X0.lastSelected!==N0,_0=X0.lastFocused!==D0;if(V0){let A0=X0.lastItemId!=null&&C(X0.lastItemId),O0=C(Z0.id);if(!O0&&w0(x,q0,Z0.id))N0=!0;let L0=G.columns;for(let $0=0;$0<X0.cells.length&&$0<L0.length;$0++)F(X0.cells[$0],Z0,L0[$0],q0,O0);if(E(X0.element,q0,N0,D0,O0),X0.element.setAttribute("data-id",String(Z0.id)),w(X0.element,N0),A0&&!O0)X0.element.classList.add(h),setTimeout(()=>{X0.element.classList.remove(h)},300);X0.lastItemId=Z0.id,X0.lastSelected=N0,X0.lastFocused=D0}else if(K0||_0)E(X0.element,q0,N0,D0,C(Z0.id)),w(X0.element,N0),X0.lastSelected=N0,X0.lastFocused=D0;let W0=L(q0,Q0,e);if(X0.lastOffset!==W0)X0.lastOffset=W0,X0.element.style.transform=`translateY(${W0}px)`;let B0=Q0.getSize(q0);if(X0.lastHeight!==B0)X0.lastHeight=B0,X0.element.style.height=`${B0}px`;if(J0)X0.element.setAttribute("aria-rowindex",String(q0+2))}}else{if(w0(x,q0,Z0.id))N0=!0;let V0=E0?c(Z0,q0,Q0,e):u(Z0,q0,N0,D0,Q0,e);if(V.set(q0,V0),!o)o=document.createDocumentFragment();o.appendChild(V0.element)}}if(o)J.appendChild(o)},B=(O)=>{let k=Q();for(let[x,n]of V){let e=L(x,k,O);if(n.lastOffset!==e)n.lastOffset=e,n.element.style.transform=`translateY(${e}px)`}},X=(O,k,x,n)=>{let e=V.get(O);if(!e)return;if(e.isGroupHeader)return;let J0=G.columns;for(let j0=0;j0<e.cells.length&&j0<J0.length;j0++)F(e.cells[j0],k,J0[j0],O);e.element.setAttribute("data-id",String(k.id)),e.lastItemId=k.id,E(e.element,O,x,n),w(e.element,x),e.lastSelected=x,e.lastFocused=n},R=(O,k,x)=>{let n=V.get(O);if(!n)return;if(n.isGroupHeader)return;let e=n.lastSelected!==k,J0=n.lastFocused!==x;if(e||J0)E(n.element,O,k,x),w(n.element,k),n.lastSelected=k,n.lastFocused=x},D=(O)=>{G=O;let k=O.columns;for(let[,x]of V)if(x.element.style.width=`${O.totalWidth}px`,x.cells.length>0)for(let n=0;n<x.cells.length&&n<k.length;n++){let e=x.cells[n],J0=k[n];e.style.left=`${J0.offset}px`,e.style.width=`${J0.width}px`}},A=(O)=>{return V.get(O)?.element},N=()=>{for(let[,O]of V)Z.release(O.element);V.clear(),b=-1};return{render:p,updatePositions:B,updateItem:X,updateItemClasses:R,getElement:A,updateColumnLayout:D,setGroupHeaderFn:M,clear:N,destroy:()=>{N(),Z.clear()}}};var R4=new Set,lJ=(J)=>{if(!J.columns||J.columns.length===0)throw Error("[vlist] withTable: columns must be a non-empty array");if(J.rowHeight===void 0&&J.estimatedRowHeight===void 0)throw Error("[vlist] withTable: either rowHeight or estimatedRowHeight is required");let Q=null,Y=null,q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(K){let{dom:j,emitter:U,config:_}=K,{classPrefix:W}=_;if(_.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(_.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let Z=J.resizable??!0,V=J.minColumnWidth??50,b=J.maxColumnWidth??1/0,G=J.columnBorders??!1,H=J.rowBorders??!0,S=J.rowHeight,$=K.rawConfig.padding,M=!$?0:typeof $==="number"?$*2:$.length===2?$[1]*2:$[1]+$[3],w=J.headerHeight??(typeof S==="number"?S:40),z=J.sort?.key??null,C=J.sort?.direction??"asc";if(Q=x1(J.columns,V,b,Z),typeof S==="function")K.setSizeConfig(S);else if(typeof S==="number")K.setSizeConfig(S);if(K.rebuildSizeCache(),j.root.classList.add(`${W}--table`),H)j.root.classList.add(`${W}--table-row-borders`);if(G)j.root.classList.add(`${W}--table-col-borders`);j.root.setAttribute("role","grid"),j.root.setAttribute("aria-colcount",String(J.columns.length));let r=-1,v=j.items.getAttribute("aria-label");if(v)j.root.setAttribute("aria-label",v),j.items.removeAttribute("aria-label");j.items.setAttribute("role","rowgroup"),j.viewport.setAttribute("role","none"),j.content.setAttribute("role","none"),j.viewport.removeAttribute("tabindex");let g=K.getContainerWidth()-M;Q.resolve(g);let P=(A,N)=>{if(!Q)return;let y=Q.getColumn(A);if(!y)return;let O=y.width,k=Q.resizeColumn(A,N);if(Y)Y.update(Q);if(q)q.updateColumnLayout(Q);s(),U.emit("column:resize",{key:y.def.key,index:A,previousWidth:O,width:k})},m=(A)=>{if(A.direction===null)z=null,C="asc";else z=A.key,C=A.direction;if(Y)Y.updateSort(z,C);U.emit("column:sort",A)},t=(A)=>{U.emit("column:click",A)};if(Y=m1(j.root,w,W,P,m,t),Y.rebuild(Q),z)Y.updateSort(z,C);let s=()=>{if(!Q)return;let A=Q.totalWidth;j.content.style.minWidth=`${A}px`,j.items.style.minWidth=`${A}px`};s(),q=d1(j.items,()=>K.sizeCache,Q,J.columns,W,_.ariaIdPrefix,()=>K.dataManager.getTotal(),K.rawConfig.item?.striped,()=>K.getStripeIndexFn());let T=null,h=null,I=!1,l=()=>{if(I)return;I=!0,T=K.methods.get("_getSelectedIds")??null,h=K.methods.get("_getFocusedIndex")??null},F=-1,E=-1,L=-1,f=!0,a=_.overscan,c={start:0,end:0},u={start:0,end:0},p=()=>{if(K.state.isDestroyed)return;let A=K.scrollController.getScrollTop(),N=K.state.viewportState.containerSize,y=K.getVirtualTotal(),O=K.state.viewportState.isCompressed;if(!f&&A===F&&N===E&&y===L)return;F=A,E=N,L=y,f=!1;let k=y+1;if(k!==r)r=k,j.root.setAttribute("aria-rowcount",String(k));K.getVisibleRange(A,N,y,c),u.start=Math.max(0,c.start-a),u.end=Math.min(y-1,c.end+a);let x=K.state.viewportState;x.scrollPosition=A,x.visibleRange.start=c.start,x.visibleRange.end=c.end,x.renderRange.start=u.start,x.renderRange.end=u.end;let n=K.state.lastRenderRange,e=n.start!==u.start||n.end!==u.end;if(!e&&O){q.updatePositions(K.getCompressionContext());return}if(!e)return;let J0=O?K.getCompressionContext():void 0,j0=K.dataManager.getItemsInRange(u.start,u.end);l();let o=T?T():R4,Q0=h?h():-1;q.render(j0,u,o,Q0,J0),n.start=u.start,n.end=u.end,U.emit("range:change",{range:{start:u.start,end:u.end}})},B=()=>{if(K.state.isDestroyed)return;K.state.lastRenderRange.start=-1,K.state.lastRenderRange.end=-1,f=!0,p()};K.setRenderFns(p,B),K.setUpdateItemClassesFn((A,N,y)=>{q?.updateItemClasses(A,N,y)});let X=Y,R=-1,D=()=>{let A=j.viewport.scrollLeft;if(A!==R){if(R=A,X.syncScroll)X.syncScroll(A)}};K.afterScroll.push(D),j.viewport.addEventListener("scroll",D,{passive:!0}),K.resizeHandlers.push((A,N)=>{if(!Q)return;if(Q.resolve(A-M),Y)Y.update(Q);if(q)q.updateColumnLayout(Q);s()}),K.methods.set("updateColumns",(A)=>{if(!Q||!Y)return;if(Q.updateColumns(A),Q.resolve(K.getContainerWidth()-M),Y.rebuild(Q),z)Y.updateSort(z,C);if(s(),q)q.updateColumnLayout(Q),q.clear();K.forceRender()}),K.methods.set("resizeColumn",(A,N)=>{if(!Q)return;let y;if(typeof A==="string"){let O=Q.columns;y=-1;for(let k=0;k<O.length;k++)if(O[k].def.key===A){y=k;break}if(y===-1)return}else y=A;P(y,N)}),K.methods.set("getColumnWidths",()=>{if(!Q)return{};let A={},N=Q.columns;for(let y=0;y<N.length;y++)A[N[y].def.key]=N[y].width;return A}),K.methods.set("setSort",(A,N)=>{if(z=A,C=N??"asc",Y)Y.updateSort(z,C)}),K.methods.set("getSort",()=>{return{key:z,direction:C}}),K.methods.set("_getTableLayout",()=>Q),K.methods.set("_updateRenderedItem",(A,N,y,O)=>{q?.updateItem(A,N,y,O)}),K.methods.set("_replaceTableRenderer",(A)=>{q=A}),K.methods.set("_updateTableForGroups",(A,N)=>{if(q)q.setGroupHeaderFn(A,N)}),K.methods.set("_getTableHeaderHeight",()=>w),K.keydownHandlers.push((A)=>{if(A.key!=="ArrowLeft"&&A.key!=="ArrowRight")return;if(!Q)return;let N=Q.columns;if(N.length===0)return;let y=j.viewport.clientWidth;if(Q.totalWidth<=y)return;let O=j.viewport.scrollLeft;if(A.key==="ArrowRight"){for(let k=0;k<N.length;k++)if(N[k].offset>O+1){j.viewport.scrollLeft=N[k].offset,A.preventDefault();return}}else{for(let k=N.length-1;k>=0;k--)if(N[k].offset<O-1){j.viewport.scrollLeft=N[k].offset,A.preventDefault();return}if(O>0)j.viewport.scrollLeft=0,A.preventDefault()}}),K.contentSizeHandlers.push(()=>{s()}),K.destroyHandlers.push(()=>{if(j.viewport.removeEventListener("scroll",D),Y)Y.destroy(),Y=null;if(q)q.destroy(),q=null;j.content.style.minWidth="",j.items.style.minWidth="",j.root.classList.remove(`${W}--table`),j.root.removeAttribute("role"),j.root.removeAttribute("aria-colcount"),j.viewport.removeAttribute("role"),j.viewport.setAttribute("tabindex","-1"),j.content.removeAttribute("role");let A=j.root.getAttribute("aria-label");if(A)j.items.setAttribute("aria-label",A),j.root.removeAttribute("aria-label");j.root.removeAttribute("aria-rowcount"),j.items.setAttribute("role","listbox")})},destroy(){if(Y)Y.destroy(),Y=null;if(q)q.destroy(),q=null}}};var c1=(J,Q)=>{let Y=new Map,q=(j)=>{let U=Y.get(j);return U!==void 0?U:J},K=f0(q,Q);return{getOffset(j){return K.getOffset(j)},getSize(j){return q(j)},indexAtOffset(j){return K.indexAtOffset(j)},getTotalSize(){return K.getTotalSize()},getTotal(){return K.getTotal()},rebuild(j){if(j<K.getTotal()){for(let U of Y.keys())if(U>=j)Y.delete(U)}K=f0(q,j)},isVariable(){return!0},setMeasuredSize(j,U){Y.set(j,U)},isMeasured(j){return Y.has(j)},getEstimatedSize(){return J},measuredCount(){return Y.size}}};var rJ=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(Q){let Y=Q.config.horizontal,K=Q.rawConfig.item,j=Y?K.estimatedWidth:K.estimatedHeight;if(j==null||j<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let U=K.gap??0,_=Q.getVirtualTotal(),W=y0(Q.rawConfig.padding),Z=u0(W,Y),V=c1(j+U,_),b=Q.methods.get("_setSizeCache"),G=Q.methods.get("_setConstrainSize");if(!b||!G)throw Error("[vlist/withAutoSize] Incompatible builder version");b(V),G((v)=>V.isMeasured(v));let H=new WeakMap,S=0,$=!1,M=2,w=(v)=>{let g=Q.scrollController.getScrollTop(),P=Q.state.viewportState.containerSize;if(P<=0)return!1;let m=Math.max(0,v+Z-P);return g>=m-M},z=()=>{let v=V.getTotalSize(),g=Q.state.viewportState.containerSize;if(g<=0)return;let P=Math.max(0,v+Z-g),m=Q.scrollController.getScrollTop();if(P>m)Q.scrollController.scrollTo(P)},C=()=>{let v=V.getTotalSize();Q.updateContentSize(v)},r=()=>{if($){let v=Q.dom.viewport,g=v.scrollHeight,P=g-v.clientHeight,m=Q.scrollController.getScrollTop(),t=P>0&&m>=P-M,s=Q.getVirtualTotal(),T=Q.state.viewportState.renderRange.end,h=s>0&&T>=s-1,I=V.getTotalSize()+Z,l=Math.abs(I-g),F=h&&P>0&&m>=P-l-M,E=t||F;if(C(),$=!1,E)v.scrollHeight,z(),Q.forceRender()}};J=new ResizeObserver((v)=>{if(Q.state.isDestroyed)return;let g=!1,P=Q.state.viewportState.visibleRange.start;for(let L of v){let f=H.get(L.target);if(f===void 0)continue;let a=Y?L.borderBoxSize[0].inlineSize:L.borderBoxSize[0].blockSize;if(!V.isMeasured(f)){let c=a+U,u=V.getSize(f);if(V.setMeasuredSize(f,c),g=!0,f<P&&c!==u)S+=c-u;J.unobserve(L.target);let p=L.target;if(Y)p.style.width=`${a}px`;else p.style.height=`${a}px`}}if(!g)return;let m=V.getTotalSize();if(V.rebuild(Q.getVirtualTotal()),S!==0){let L=Q.scrollController.getScrollTop();Q.scrollController.scrollTo(L+S),S=0}let t=w(m),s=Q.getVirtualTotal(),T=Q.state.viewportState.renderRange.end,h=s>0&&T>=s-1,I=Q.dom.viewport,l=I.scrollHeight-I.clientHeight,F=Q.scrollController.getScrollTop(),E=l>0&&F>=l-M;if(t||h||!Q.scrollController.isScrolling()){if(C(),$=!1,t||h&&E)I.scrollHeight,z()}else $=!0;Q.forceRender()}),Q.afterRenderBatch.push((v)=>{for(let{index:g,element:P}of v)if(!V.isMeasured(g))H.set(P,g),J.observe(P)}),Q.idleHandlers.push(r),Q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var w4=50,z4=0.1;function l1(J){let Q=0,Y=0,q=0;function K(){return q>0?Y/q:0}function j(W){if(Q=W,W>z4&&W<w4)Y+=W,q++}function U(){let W=J.getTotal();if(W===0)return 0;let Z=J.getItemSize();if(Z<=0)return 0;let V=J.getContainerSize();if(V<=0)return 0;let b=J.getScrollPosition(),G=typeof J.getColumns==="function"?J.getColumns():1,S=Math.ceil(W/G)*Z,M=Math.min(S,m0)-V,w=S-V,z=M>0?w/M:1,C=b*z,r=Math.ceil((C+V)/Z);return Math.min(r*G,W)}function _(){let W=J.getTotal(),Z=U();return{progress:W>0?Math.min(100,Math.max(0,Z/W*100)):0,velocity:Q,velocityAvg:K(),itemCount:Z,total:W}}return{getState:_,onVelocity:j}}export{lJ as withTable,dJ as withSnapshots,mJ as withSelection,zJ as withScrollbar,CJ as withScale,SJ as withPage,xJ as withMasonry,pJ as withGroups,gJ as withGrid,rJ as withAutoSize,vJ as withAsync,wJ as vlist,l1 as createStats};
1
+ var X1=2,U1=(J=0)=>({velocity:0,sampleCount:0}),K1=(J,Q)=>{let j=performance.now(),q=J._lt??j,U=J._lp??Q,X=j-q;if(J._lp=Q,J._lt=j,X===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(X>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(Q-U)/X,J.sampleCount=Math.min(J.sampleCount+1,5),J};var q4=(J,Q)=>{let j=Q;return{getOffset:(q)=>q*J,getSize:(q)=>J,indexAtOffset:(q)=>{if(j===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(q/J),j-1))},getTotalSize:()=>j*J,getTotal:()=>j,rebuild:(q)=>{j=q},isVariable:()=>!1}},j4=(J,Q)=>{let j=Q,q=new Float64Array(0),U=(K)=>{j=K,q=new Float64Array(K+1),q[0]=0;for(let N=0;N<K;N++)q[N+1]=q[N]+J(N)};U(Q);let X=(K)=>{if(j===0)return 0;if(K<=0)return 0;if(K>=q[j])return j-1;let N=0,B=j-1;while(N<B){let Z=N+B+1>>>1;if(q[Z]<=K)N=Z;else B=Z-1}return N};return{getOffset:(K)=>{if(K<=0)return 0;if(K>=j)return q[j];return q[K]},getSize:(K)=>J(K),indexAtOffset:(K)=>X(K),getTotalSize:()=>q[j]??0,getTotal:()=>j,rebuild:(K)=>U(K),isVariable:()=>!0}},d0=(J,Q)=>{if(typeof J==="number")return q4(J,Q);return j4(J,Q)},Z1=(J,Q,j,q)=>{if(q===0)return 0;if(!J.isVariable())return Math.ceil(j/J.getSize(0));let U=0,X=0,K=Q;while(K<q&&X<j)X+=J.getSize(K),U++,K++;return Math.max(1,U)};var B1=()=>{let J={},Q=(X,K)=>{if(!J[X])J[X]=new Set;return J[X].add(K),()=>j(X,K)},j=(X,K)=>{J[X]?.delete(K)};return{on:Q,off:j,emit:(X,K)=>{J[X]?.forEach((N)=>{try{N(K)}catch(B){console.error(`[vlist] Error in event handler for "${String(X)}":`,B)}})},clear:(X)=>{if(X)delete J[X];else for(let K in J)delete J[K]}}};var N1=(J)=>{if(typeof J==="string"){let Q=document.querySelector(J);if(!Q)throw Error(`[vlist] Container not found: ${J}`);return Q}return J},jJ=(J,Q)=>{let j=document.createElement("div");if(j.className=J,Q)j.style.cssText=Q;return j},W1=(J,Q,j,q,U)=>{let X=q,K=jJ(Q);if(X)K.classList.add(`${Q}--horizontal`);if(U!==!1)K.setAttribute("tabindex","0");let N=jJ(`${Q}-viewport`,X?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");N.setAttribute("tabindex","-1");let B=jJ(`${Q}-content`,X?"position:relative;height:100%":"position:relative;width:100%"),Z=jJ(`${Q}-items`,X?"position:relative;height:100%":"position:relative;width:100%");if(Z.setAttribute("role","listbox"),j)Z.setAttribute("aria-label",j);if(X)Z.setAttribute("aria-orientation","horizontal");let _=jJ(`${Q}-live`,"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0");return _.setAttribute("aria-live","polite"),_.setAttribute("aria-atomic","true"),_.setAttribute("role","status"),B.appendChild(Z),N.appendChild(B),K.appendChild(_),K.appendChild(N),J.appendChild(K),{root:K,viewport:N,content:B,items:Z,liveRegion:_}};var V1=(J=100)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let q=document.createElement("div");return q.setAttribute("role","option"),q},release:(j)=>{if(Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),Q.push(j)},clear:()=>{Q.length=0}}};var _1=(J,Q,j,q,U)=>{if(q===0||Q===0){U.start=0,U.end=-1;return}let X=j.indexAtOffset(J),K=j.indexAtOffset(J+Q);if(K<q-1)K++;U.start=Math.max(0,X),U.end=Math.min(q-1,Math.max(0,K))},D1=(J,Q,j,q)=>{q.start=Math.max(0,J.start-Q),q.end=Math.min(j-1,J.end+Q)},M1=(J,Q,j,q,U,X=0)=>{if(q===0)return 0;let K=Math.max(0,Math.min(J,q-1)),N=Q.getOffset(K),B=Q.getSize(K),Z=Q.getTotalSize(),_=Math.max(0,Z+X-j),T;switch(U){case"center":T=N-(j-B)/2;break;case"end":T=X>0&&N+B>=Z?_:N-j+B;break;default:T=N}return Math.max(0,Math.min(T,_))};var WJ={top:0,right:0,bottom:0,left:0},I0=(J)=>{if(J==null)return WJ;if(typeof J==="number")return J===0?WJ:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[X,K]=J;return X===0&&K===0?WJ:{top:X,right:K,bottom:X,left:K}}let[Q,j,q,U]=J;return Q===0&&j===0&&q===0&&U===0?WJ:{top:Q,right:j,bottom:q,left:U}},a0=(J,Q)=>Q?J.left+J.right:J.top+J.bottom,VJ=(J,Q)=>Q?J.top+J.bottom:J.left+J.right;var s0=(J,Q,j)=>{let q=Array.from(Q).sort((K,N)=>K-N);if(q.length<=1)return;let U=[];for(let K=0;K<q.length;K++){let N=j(q[K]);if(N)U.push(N)}if(U.length<=1)return;let X=J.firstChild;for(let K=0;K<U.length;K++){let N=U[K];if(N===X)X=X.nextSibling;else J.insertBefore(N,X)}};var G1=(J,Q)=>{let{dom:j,emitter:q,resolvedConfig:U,rawConfig:X,rendered:K,pool:N,sharedState:B,isHorizontal:Z,classPrefix:_,contentSizeHandlers:T,idleHandlers:D,afterScroll:y,clickHandlers:S,keydownHandlers:k,resizeHandlers:M,destroyHandlers:R,methods:z,onScrollFrame:v,resizeObserver:r,renderRange:C,afterRenderBatch:x}=Q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return q},get config(){return U},get rawConfig(){return X},adjustScrollPosition(H){if(J.mp===0)return H;let d=Z?J.cw:J.ch,s=J.hc.getTotalSize(),o=Math.max(0,s-d),b=Math.max(0,s+J.mp-d);if(H>=o)return b;return Math.min(H,b)},get renderer(){return{render:(H,d,s,o,b)=>{J.ss=s,J.fi=o,J.ffn()},updateItemClasses:(H,d,s)=>{J.uic(H,d,s)},updatePositions:()=>{},updateItem:()=>{},getElement:(H)=>K.get(H)??null,clear:()=>{},destroy:()=>{}}},set renderer(H){},get dataManager(){return J.dm},set dataManager(H){J.dm=H},get scrollController(){return J.sc},set scrollController(H){J.sc=H},state:B,getContainerWidth(){return J.cw},afterScroll:y,idleHandlers:D,afterRenderBatch:x,clickHandlers:S,keydownHandlers:k,resizeHandlers:M,contentSizeHandlers:T,destroyHandlers:R,methods:z,replaceTemplate(H){J.at=H},replaceRenderer(H){},replaceDataManager(H){J.dm=H},replaceScrollController(H){J.sc=H},getItemsForRange(H){let{dm:d,it:s}=J,o=[];for(let b=H.start;b<=H.end;b++){let h=d?d.getItem(b):s[b];if(h)o.push(h)}return o},getAllLoadedItems(){let H=J.dm;if(H){let d=H.getTotal(),s=[];for(let o=0;o<d;o++){let b=H.getItem(o);if(b)s.push(b)}return s}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let H=J.hc;return{isCompressed:!1,actualSize:H.getTotalSize(),virtualSize:H.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:C.start,compression:B.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,H]of K)H.remove(),N.release(H);K.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(H,d){J.rfn=H,J.ffn=d},setVirtualTotalFn(H){J.vtf=H},rebuildSizeCache(H){J.hc.rebuild(H??J.vtf())},setSizeConfig(H){if(J.hc=d0(H,J.vtf()),J.gp>0){let d=J.hc.getTotalSize,s=J.gp;J.hc.getTotalSize=()=>{let o=d();return o>0?o-s:0}}},updateContentSize(H){let d=`${H+J.mp}px`;if(Z)j.content.style.width=d;else j.content.style.height=d},updateCompressionMode(){for(let H=0;H<T.length;H++)T[H]()},setVisibleRangeFn(H){J.gvr=H},getVisibleRange(H,d,s,o){J.gvr(H,d,J.hc,s,o)},setScrollToPosFn(H){J.gsp=H},getScrollToPos(H,d,s,o){return J.gsp(H,J.hc,d,s,o)},setPositionElementFn(H){J.pef=H},setScrollFns(H,d){J.sgt=H,J.sst=(s)=>{d(s),v()}},setScrollTarget(H){J.st.removeEventListener("scroll",v),J.st=H,J.st.addEventListener("scroll",v,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(H){J.gcw=H.width,J.gch=H.height,J.cw=H.width(),J.ch=H.height(),B.viewportState.containerSize=Z?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,r.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(H){J.sif=H},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(H){J.i2s=H},setUpdateItemClassesFn(H){J.uic=H}}},O1=(J,Q,j)=>{let{rendered:q,itemState:U,applyTemplate:X,updateContentSize:K}=Q,N=()=>{J.hc.rebuild(J.vtf()),K(),j.updateCompressionMode(),J.ffn()},B=()=>J.it.length;return{getState:()=>({total:B(),cached:B(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:B,getCached:B,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(Z)=>J.it[Z],isItemLoaded:(Z)=>Z>=0&&Z<B()&&J.it[Z]!==void 0,getItemsInRange:(Z,_)=>{let T=[];for(let D=Math.max(0,Z),y=Math.min(_,B()-1);D<=y;D++)T.push(J.it[D]);return T},setTotal:()=>{},setItems:(Z,_=0,T)=>{if(_===0&&(T!==void 0||B()===0))J.it=Z;else{let D=_+Z.length;if(B()<D)J.it.length=D;for(let y=0;y<Z.length;y++)J.it[_+y]=Z[y]}if(J.ii)N()},updateItem:(Z,_)=>{let T=J.it;if(Z<0||Z>=T.length)return!1;let D=T[Z];if(!D)return!1;T[Z]={...D,..._};let y=q.get(Z);if(y)X(y,J.at(T[Z],Z,U)),y.dataset.id=String(T[Z].id);return!0},removeItem:(Z)=>{let _=typeof Z==="number"?Z:J.it.findIndex((T)=>T.id===Z);if(_<0||_>=J.it.length)return!1;if(J.it.splice(_,1),J.ii)N();return!0},loadRange:async()=>{},ensureRange:async()=>{},loadInitial:async()=>{},loadMore:async()=>!1,reload:async()=>{},evictDistant:()=>{},clear:()=>{J.it=[]},reset:()=>{if(J.it=[],J.ii)J.hc.rebuild(0),K(),J.ffn()}}},A1=(J,Q)=>{let{dom:j,classPrefix:q}=Q;return{getScrollTop:()=>J.sgt(),scrollTo:(U)=>{J.sst(U),J.ls=U,J.rfn()},scrollBy:(U)=>{let X=J.sgt()+U;J.sst(X),J.ls=X,J.rfn()},isAtTop:()=>J.ls<=2,isAtBottom:(U=2)=>J.sab(U),getScrollPercentage:()=>{let U=J.hc.getTotalSize(),X=Math.max(0,U-J.ch);return X>0?J.ls/X:0},getVelocity:()=>J.vt.velocity,isTracking:()=>J.vt.sampleCount>=2,isScrolling:()=>j.root.classList.contains(`${q}--scrolling`),updateConfig:()=>{},enableCompression:()=>{J.sic=!0},disableCompression:()=>{J.sic=!1},isCompressed:()=>J.sic,isWindowMode:()=>!1,updateContainerHeight:(U)=>{J.ch=U},destroy:()=>{}}};var YJ=(J,Q,j,q,U=0,X=0)=>{let K=Q.getOffset(J),N=Q.getSize(J),B=K+U,Z=B+N,_=j+q;if(B<j)return Math.max(0,K);if(Z>_)return Z+X-q;return j},_J=(J,Q,j,q,U=0,X=0,K,N,B)=>{if(!(K!=null&&K.isCompressed&&K.ratio!==1))return YJ(J,Q,j,q,U,X);let _=N,{virtualSize:T}=K,D=Q.getSize(Math.max(0,J)),y=q-U-X,S=Math.max(1,Math.floor(y/D)),k=T/_;if(B){if(J>=B.start+S){let z=y/D,v=J+1-z;return Math.max(0,v*k)}if(J<=B.start)return Math.max(0,J*k);return j}let M=j/T*_,R=M+S;if(J>=R){let z=y/D,v=J+1-z;return Math.max(0,v*k)}if(J<M)return Math.max(0,J*k);return j};var E1=(J,Q,j,q,U,X,K,N,B,Z,_,T,D,y)=>{let S=`${j}-item--focused`,k=!1,M=null,R=null,z=null,v=null,r=!1,C=()=>{if(r)return;r=!0,M=B.get("_getNavTotal")??null,R=B.get("_getNavDelta")??null,z=B.get("_navigate")??null,v=B.get("_scrollItemIntoView")??null},x=()=>{return C(),M?M():J.vtf()},H=()=>{return C(),R?R():{ud:1,lr:0,cols:0}};B.set("_getFocusedIndex",()=>k?J.fi:-1);let d=(a,F=!0)=>{if(Q.root.setAttribute("aria-activedescendant",`${q}-item-${a}`),C(),F)if(v)v(a);else{let A=U?J.cw:J.ch,L=J.i2s(a),f=YJ(L,J.hc,J.ls,A,X,K);if(f!==J.ls)J.sst(f),J.ls=J.sgt()}J.ffn()},s=(a)=>{J.fi=a,k=!0,d(a)},o=(a,F)=>{if(J.fi=a,F||y)k=!0;let A=J.dm?J.dm.getItem(a):J.it[a];if(A&&J.ss.has(A.id))J.ss.clear();else if(J.ss.clear(),A)J.ss.add(A.id);d(a,F)},b=(a,F,A)=>{let L=a;while(L>=0&&L<A){let f=J.dm?J.dm.getItem(L):J.it[L];if(!f||!f.__groupHeader)return L;L+=F}L=a-F;while(L>=0&&L<A){let f=J.dm?J.dm.getItem(L):J.it[L];if(!f||!f.__groupHeader)return L;L-=F}return a},h=()=>{if(J.id)return;if(!Q.root.matches(":focus-visible"))return;let a=x();if(a===0)return;let F=J.fi>=0?Math.min(J.fi,a-1):0;F=b(F,1,a),s(F)};Q.root.addEventListener("focusin",h);let I=(a)=>{if(J.id)return;let F=a.relatedTarget;if(F&&Q.root.contains(F))return;if(k=!1,J.fi>=0)Z.get(J.fi)?.classList.remove(S);Q.root.removeAttribute("aria-activedescendant")};Q.root.addEventListener("focusout",I),_.push((a)=>{if(J.id)return;let F=x();if(F===0)return;let A=J.fi,L=A;if(a.key===" "||a.key==="Enter"){if(A>=0){let f=J.dm?J.dm.getItem(A):J.it[A];if(f&&!f.__groupHeader)o(A,!0)}a.preventDefault();return}if(C(),z)switch(a.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":L=z(A,a.key,F);break;default:return}else{let{ud:f,lr:n}=H();switch(a.key){case"ArrowUp":L=A-f;break;case"ArrowDown":L=A+f;break;case"ArrowLeft":if(!n)return;L=A-n;break;case"ArrowRight":if(!n)return;L=A+n;break;case"PageUp":case"PageDown":{let c=J.hc.getSize(J.i2s(Math.max(0,A))),g=Math.max(f,Math.floor((U?J.cw:J.ch)/c)*f);L=a.key==="PageUp"?A-g:A+g;break}case"Home":L=0;break;case"End":L=F-1;break;default:return}if(L<0)L=N?F-1:0;else if(L>=F)L=N?0:F-1}if(a.preventDefault(),L=b(L,L>=A?1:-1,F),L!==A)s(L)}),T.push((a)=>{if(J.id)return;let F=a.target.closest("[data-index]");if(!F)return;let A=parseInt(F.dataset.index??"-1",10);if(A<0)return;let L=J.dm?.getItem(A)??J.it[A];if(!L||L.__groupHeader)return;k=!1,Q.root.focus({preventScroll:!0}),o(A,!1)}),D.push(()=>{Q.root.removeEventListener("focusin",h),Q.root.removeEventListener("focusout",I)})};var bJ=200,o0=50;var L1=50,F1=12,T1=2,n0=16000000;var H1="x",k1=20,$J="_isPlaceholder",h0="__placeholder_";var p0=(J,Q,j)=>{if(String(j).startsWith(h0))return!1;let q=h0+Q;if(J.has(q))return J.delete(q),J.add(j),!0;return!1},b1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),i0=(J,Q,j)=>{if(j==="none")return J;let q=new Set(J.selected);if(j==="single"){if(q.clear(),Q.length>0)q.add(Q[0])}else for(let U of Q)q.add(U);return{...J,selected:q}},yJ=(J,Q)=>{let j=new Set(J.selected);for(let q of Q)j.delete(q);return{...J,selected:j}},t0=(J,Q,j)=>{if(j==="none")return J;if(J.selected.has(Q))return yJ(J,[Q]);else return i0(J,[Q],j)},RJ=(J,Q,j)=>{if(j!=="multiple")return J;return{...J,selected:new Set(Q.map((q)=>q.id))}},PJ=(J)=>({...J,selected:new Set}),c0=(J,Q)=>{return J.focusedIndex=Q,J},DJ=(J,Q,j=!1,q=1)=>{if(Q===0)return J;let U=J.focusedIndex-q;if(U<0)U=j?Q-1:0;return J.focusedIndex=U,J},MJ=(J,Q,j=!1,q=1)=>{if(Q===0)return J;let U=J.focusedIndex+q;if(U>=Q)U=j?0:Q-1;return J.focusedIndex=U,J},$1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=0,J},y1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=Q-1,J},wJ=(J,Q,j,q)=>{if(Q===0)return J;let U=q==="up"?J.focusedIndex-j:J.focusedIndex+j;return U=Math.max(0,Math.min(Q-1,U)),J.focusedIndex=U,J};var zJ=(J)=>{return Array.from(J.selected)},CJ=(J,Q)=>{let j=[];for(let q of J.selected){let U=Q(q);if(U)j.push(U)}return j};var GJ=(J,Q,j,q,U)=>{if(U!=="multiple")return J;let X=Math.min(j,q),K=Math.max(j,q),N=[];for(let B=X;B<=K;B++){let Z=Q[B];if(Z)N.push(Z.id)}return i0(J,N,U)};var vJ=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,u0=(J)=>{let Q=typeof J==="object"&&J?J:null;return{align:typeof J==="string"?J:Q?.align??"start",behavior:Q?.behavior??"auto",duration:Q?.duration??300}},e0=(J,Q)=>{let j=null,q=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(X,K,N)=>{if(q(),Math.abs(K-X)<1){J.scrollTo(K);return}let B=performance.now(),Z=(_)=>{let T=_-B,D=Math.min(T/N,1),y=X+(K-X)*vJ(D);if(J.scrollTo(y),Q(),D<1)j=requestAnimationFrame(Z);else j=null};j=requestAnimationFrame(Z)},cancelScroll:q}};var R1=(J,Q,j,q,U,X,K,N,B,Z,_,T,D,y,S,k,M,R)=>{let z=(G)=>{{if(!Array.isArray(G)){console.warn("[vlist] setItems() expects an array, got:",typeof G);return}if(G.length>0&&G[0]&&!("id"in G[0]))console.warn('[vlist] Items must have an "id" property. First item:',G[0]);let E=Math.min(G.length,1e4),V=new Set;for(let P=0;P<E;P++){let O=G[P];if(O&&"id"in O){if(V.has(O.id)){console.warn(`[vlist] Duplicate item ID "${O.id}" at index ${P}. updateItem() and removeItem() will only match the first occurrence.`);break}V.add(O.id)}}}L(),B.dataManager.setItems(G,0,G.length)},v=(G)=>{let E=Z&&J.sab(2);if(B.dataManager.setItems(G,J.it.length),E&&J.it.length>0){let V=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(V),J.ls=V,J.rfn()}},r=(G)=>{let E=Z?J.sgt():0,V=Z?J.hc.getTotalSize():0,P=[...J.it];if(B.dataManager.clear(),B.dataManager.setItems([...G,...P],0),Z){let O=J.hc.getTotalSize()-V;if(O>0)J.sst(E+O),J.ls=E+O}},C=null,x=null,H=null,d=!1,s=()=>{if(d)return;d=!0,C=X.get("_updateRenderedItem")??null,x=X.get("_getSelectedIds")??null,H=X.get("_getFocusedIndex")??null},o=(G,E)=>{{let P=J.vtf();if(G<0||G>=P)console.warn(`[vlist] updateItem() index ${G} is out of range (0–${P-1}).`)}if(B.dataManager.updateItem(G,E),s(),!C)return;let V=B.dataManager.getItem(G);if(V){let O=(x?x():J.ss).has(V.id),$=(H?H():J.fi)===G;C(G,V,O,$)}},b=!1,h=(G)=>{let E=typeof document<"u"?document.activeElement:null,V=E&&Q.items.contains(E)?parseInt(E.dataset?.index??"-1",10):-1;if(!B.dataManager.removeItem(G))return console.warn(`[vlist] removeItem() could not find item with id "${G}".`),!1;if(j.emit("data:change",{type:"remove",id:G}),B.forceRender(),!b){let O=B.dataManager;if(typeof O.ensureRange==="function")b=!0,queueMicrotask(()=>{b=!1;let $=B.dataManager.getTotal(),{start:u,end:i}=B.state.viewportState.renderRange;if($>0&&i>=u)O.ensureRange(u,i).catch(()=>{})})}if(V>=0){let O=J.vtf();if(O>0)q.get(Math.min(V,O-1))?.focus()}return!0},I=(G)=>{return B.dataManager.getItem(G)},a=(G)=>{return B.dataManager.getIndexById?.(G)??-1},F=async(G)=>{if(B.dataManager.reload)await B.dataManager.reload()},A=null,L=()=>{if(A!==null)cancelAnimationFrame(A),A=null},f=(G,E,V,P)=>{if(L(),Math.abs(E-G)<1){J.sst(E),J.ls=E,J.rfn();return}let O=performance.now(),$=(u)=>{let i=u-O,J0=Math.min(i/V,1),e=P?P():E,U0=G+(e-G)*vJ(J0);if(J.sst(U0),J.ls=U0,J.rfn(),J0<1)A=requestAnimationFrame($);else A=null};A=requestAnimationFrame($)},n=(G,E)=>{{let J0=J.vtf();if(J0>0&&(G<0||G>=J0))console.warn(`[vlist] scrollToIndex(${G}) is out of range (0–${J0-1}).`)}let{align:V,behavior:P,duration:O}=u0(E),$=J.vtf(),u=G;if(_&&$>0)u=(u%$+$)%$;let i=J.gsp(u,J.hc,J.ch,$,V);if(P==="smooth"){let J0=u,e=V;f(J.sgt(),i,O,()=>J.gsp(J0,J.hc,J.ch,J.vtf(),e))}else L(),J.sst(i)},c=()=>J.sgt(),g=(G,E)=>{return j.on(G,E)},p=(G,E)=>{j.off(G,E)},W=()=>{if(J.id)return;if(J.id=!0,B.state.isDestroyed=!0,Q.items.removeEventListener("click",T),Q.items.removeEventListener("dblclick",D),Q.root.removeEventListener("keydown",y),J.st.removeEventListener("scroll",S),k.disconnect(),M(),J.wh)Q.viewport.removeEventListener("wheel",J.wh);R();let G=[];for(let E=0;E<N.length;E++)try{N[E]()}catch(V){G.push(V instanceof Error?V:Error(String(V)))}for(let E of K)if(E.destroy)try{E.destroy()}catch(V){G.push(V instanceof Error?V:Error(String(V)))}L();for(let[,E]of q)E.remove(),U.release(E);q.clear(),U.clear(),j.emit("destroy",void 0);for(let E of G)j.emit("error",{error:E,context:"destroy"});j.clear(),Q.root.remove()},Y=(G,E)=>X.has(G)?X.get(G):E,w={get element(){return Q.root},get items(){let G=X.get("_getItems");return G?G():J.it},get total(){let G=X.get("_getTotal");return G?G():J.vtf()},setItems:Y("setItems",z),appendItems:Y("appendItems",v),prependItems:Y("prependItems",r),updateItem:Y("updateItem",o),removeItem:Y("removeItem",h),reload:Y("reload",F),getItemAt:I,getIndexById:a,scrollToIndex:Y("scrollToIndex",n),cancelScroll:Y("cancelScroll",L),getScrollPosition:Y("getScrollPosition",c),on:g,off:p,destroy:W};for(let[G,E]of X){if(G.charCodeAt(0)===95||G==="setItems"||G==="appendItems"||G==="prependItems"||G==="updateItem"||G==="removeItem"||G==="reload"||G==="scrollToIndex"||G==="scrollToItem"||G==="cancelScroll"||G==="getScrollPosition")continue;w[G]=E}return w};var Y4=3,X4="vlist",U4=150,K4=16000000,Z4=0,SJ=(J)=>{if(!J.container)throw Error("[vlist] Container is required");if(!J.item)throw Error("[vlist] item configuration is required");let Q=J.orientation==="horizontal",j=Q?"width":"height",q=Q?"estimatedWidth":"estimatedHeight",U=Q?J.item.width:J.item.height,X=Q?J.item.estimatedWidth:J.item.estimatedHeight;if(U==null&&X==null)throw Error(`[vlist] item.${j} or item.${q} is required${Q?" when orientation is 'horizontal'":""}`);if(U!=null){if(typeof U==="number"&&U<=0)throw Error(`[vlist] item.${j} must be a positive number`);if(typeof U!=="number"&&typeof U!=="function")throw Error(`[vlist] item.${j} must be a number or a function (index) => number`)}else if(X!=null){if(typeof X!=="number"||X<=0)throw Error(`[vlist] item.${q} must be a positive number`)}if(!J.item.template)throw Error("[vlist] item.template is required");if(Q&&J.reverse)throw Error("[vlist] horizontal direction cannot be combined with reverse mode");let K=new Map,N=!1,B={use(Z){if(N)throw Error("[vlist] Cannot call .use() after .build()");return K.set(Z.name,Z),B},build(){if(N)throw Error("[vlist] .build() can only be called once");return N=!0,B4(J,K,Q,U,X??null)}};return B};function B4(J,Q,j,q,U){let{item:X,items:K,overscan:N=Y4,classPrefix:B=X4,ariaLabel:Z,padding:_,reverse:T=!1,scroll:D,accessible:y,interactive:S}=J,k=S??y??!0,M=D,R=M?.wheel??!0,z=M?.wrap??!1,v=T,r=`${B}-${Z4++}`,C=Q.has("withGrid")||Q.has("withMasonry")?0:X.gap??0,x=q??U,H=q==null&&U!=null,d=j?typeof X.height==="number"?X.height:void 0:typeof X.width==="number"?X.width:void 0,s={overscan:N,classPrefix:B,reverse:v,wrap:z,horizontal:j,ariaIdPrefix:r,interactive:k},o=Array.from(Q.values()).sort((l,q0)=>(l.priority??50)-(q0.priority??50)),b=new Set(o.map((l)=>l.name));for(let l of o)if(l.conflicts){for(let q0 of l.conflicts)if(b.has(q0))throw Error(`[vlist] ${l.name} and ${q0} cannot be combined`)}if(v){if(b.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let h=N1(J.container),I=W1(h,B,Z,j,k);if(M?.wheel===!1)if(j)I.viewport.style.overflowX="hidden";else I.viewport.style.overflow="hidden";if(M?.scrollbar==="none")I.viewport.classList.add(`${B}-viewport--no-scrollbar`);if(M?.gutter==="stable")I.viewport.classList.add(`${B}-viewport--gutter-stable`);let a=b.has("withGrid")||b.has("withMasonry");if(j&&d!=null&&M?.scrollbar!=="none"&&!a){I.root.style.height=`${d}px`;let l=I.viewport.style.overflowX;I.viewport.style.overflowX="scroll";let q0=I.viewport.offsetHeight-I.viewport.clientHeight;if(I.viewport.style.overflowX=l,q0>0)I.root.style.height=`${d+q0}px`}let F=I0(_),A=a0(F,j);if(F.top||F.right||F.bottom||F.left)I.content.style.boxSizing="border-box",I.content.style.padding=`${F.top}px ${F.right}px ${F.bottom}px ${F.left}px`;let L=B1(),f=K||[],n=typeof x==="function"&&(Q.has("withGrid")||Q.has("withMasonry")),c=C>0?typeof x==="function"?(l)=>x(l)+C:x+C:x,g=H?U+C:c,p=d0(g,n?0:f.length);if(C>0){let l=p.getTotalSize;p.getTotalSize=()=>{let q0=l();return q0>0?q0-C:0}}let W=V1(),Y={it:f,hc:p,ch:I.viewport.clientHeight,cw:I.viewport.clientWidth,id:!1,ii:!1,ls:0,vt:U1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>I.viewport.scrollLeft:()=>I.viewport.scrollTop,sst:j?(l)=>{I.viewport.scrollLeft=l}:(l)=>{I.viewport.scrollTop=l},sab:(l=2)=>{let q0=Y.hc.getTotalSize();return Y.ls+Y.ch>=q0-l},sic:!1,rfn:null,ffn:null,gvr:(l,q0,X0,E0,P0)=>{_1(l,q0,X0,E0,P0)},gsp:(l,q0,X0,E0,P0)=>{return M1(l,q0,X0,E0,P0,Y.mp)},pef:null,at:X.template,vre:!0,st:I.viewport,wh:null,gcw:()=>Y.cw,gch:()=>Y.ch,gp:C,mp:A,sif:(l)=>l,i2s:(l)=>l,uic:(l,q0,X0)=>{let E0=u.get(l);if(!E0)return;j0(E0,q0,X0)},csi:null};Y.vtf=()=>Y.dm?Y.dm.getTotal():Y.it.length;let w=null,G=!1,E={start:0,end:0},V={start:0,end:0},P={start:-1,end:-1},O={viewportState:{scrollPosition:0,containerSize:j?Y.cw:Y.ch,totalSize:Y.hc.getTotalSize(),actualSize:Y.hc.getTotalSize(),isCompressed:!1,compressionRatio:1,visibleRange:{start:0,end:0},renderRange:{start:0,end:0}},lastRenderRange:{start:-1,end:-1},isInitialized:!1,isDestroyed:!1,cachedCompression:null},$=()=>({...O.viewportState,totalItems:Y.vtf()}),u=new Map,i=()=>{s0(I.items,u.keys(),(l)=>u.get(l))},J0=()=>{let l=Y.hc.getTotalSize(),X0=`${(Y.sic?l:Math.min(l,K4))+A}px`;if(j)I.content.style.width=X0;else I.content.style.height=X0},e={selected:!1,focused:!1},U0=`${B}-item`,t=`${B}-item--selected`,Q0=`${B}-item--focused`,j0=(l,q0,X0)=>{l.classList.toggle(t,q0),l.classList.toggle(Q0,X0),l.ariaSelected=q0?"true":"false"},N0=X.striped,W0=!!N0,D0=N0==="data"||N0==="even"||N0==="odd",L0=`${B}-item--odd`,H0=`${B}-item--placeholder`,Z0=`${B}-item--replaced`,O0=`${B}--scrolling`,B0=[],G0=[],M0=[],V0=[],$0=[],F0=[],m=[],Y0=[],K0=new Map,_0="__placeholder_",A0={scrollPosition:0,direction:"down"},T0={velocity:0,reliable:!1},y0={range:{start:0,end:0}},k0=null,C0=null,z0=!1,R0=()=>{if(z0)return;z0=!0,k0=K0.get("_getSelectedIds")??null,C0=K0.get("_getFocusedIndex")??null},l0=(l,q0,X0)=>{if(!q0)console.warn(`[vlist] Template returned falsy value${X0!==void 0?` for item at index ${X0}`:""}. The element will render as blank.`);else if(typeof q0==="string"&&q0==="")console.warn(`[vlist] Template returned empty string${X0!==void 0?` for item at index ${X0}`:""}. The element will render as blank.`);if(typeof q0==="string")l.innerHTML=q0;else l.replaceChildren(q0)},EJ=(l,q0)=>{let X0=Math.round(Y.hc.getOffset(q0));if(j)l.style.transform=`translateX(${X0}px)`;else l.style.transform=`translateY(${X0}px)`};Y.pef=EJ;let LJ=(l,q0)=>{let X0=W.acquire();X0.className=U0;let E0=!Y.csi||Y.csi(l);if(j){if(E0)X0.style.width=`${Y.hc.getSize(l)-C}px`;else X0.style.width="";if(d!=null)X0.style.height=`${d}px`}else if(E0)X0.style.height=`${Y.hc.getSize(l)-C}px`;else X0.style.height="";if(X0.dataset.index=String(l),X0.dataset.id=String(q0.id),X0.ariaSelected="false",X0.id=`${r}-item-${l}`,Y.la=String(Y.vtf()),X0.setAttribute("aria-setsize",Y.la),X0.setAttribute("aria-posinset",String(l+1)),String(q0.id).startsWith(_0))X0.classList.add(H0);if(W0)if(D0){let v0=Y.sif(l);if(v0<0)X0.classList.remove(L0);else X0.classList.toggle(L0,(v0&1)===1)}else X0.classList.toggle(L0,(l&1)===1);try{l0(X0,Y.at(q0,l,e),l)}catch(v0){let w0=v0 instanceof Error?v0:Error(String(v0));L.emit("error",{error:w0,context:`tpl(${l},${q0.id})`,viewport:$()}),X0.textContent=""}return Y.pef(X0,l),X0},n1=()=>{if(Y.id)return;let l=j?Y.cw:Y.ch;if(l<=0)return;R0();let q0=k0?k0():Y.ss,X0=C0?C0():Y.fi,E0=Y.vtf();if(Y.gvr(Y.ls,l,Y.hc,E0,E),D1(E,N,E0,V),V.start===P.start&&V.end===P.end){if(Y.sic)for(let[b0,S0]of u)Y.pef(S0,b0);O.viewportState.scrollPosition=Y.ls,O.viewportState.containerSize=l,O.viewportState.visibleRange.start=E.start,O.viewportState.visibleRange.end=E.end,O.viewportState.renderRange.start=V.start,O.viewportState.renderRange.end=V.end;return}let P0=String(E0),v0=P0!==Y.la;Y.la=P0;for(let[b0,S0]of u)if(b0<V.start||b0>V.end)S0.remove(),W.release(S0),u.delete(b0);let w0=document.createDocumentFragment(),x0=!1,qJ=m.length>0?[]:null;for(let b0=V.start;b0<=V.end;b0++){let S0=Y.dm?Y.dm.getItem(b0):Y.it[b0];if(S0===void 0)continue;let f0=u.get(b0);if(f0){let m0=f0.dataset.id,r0=String(S0.id);if(m0!==r0){let J4=m0?.startsWith(_0),HJ=r0.startsWith(_0);try{l0(f0,Y.at(S0,b0,e),b0)}catch(kJ){let Q4=kJ instanceof Error?kJ:Error(String(kJ));L.emit("error",{error:Q4,context:`tpl(${b0},${S0.id})`,viewport:$()}),f0.textContent=""}f0.dataset.id=r0;let Y1=!Y.csi||Y.csi(b0);if(j)f0.style.width=Y1?`${Y.hc.getSize(b0)-C}px`:"";else f0.style.height=Y1?`${Y.hc.getSize(b0)-C}px`:"";if(HJ)f0.classList.add(H0);else f0.classList.remove(H0);if(J4&&!HJ)f0.classList.add(Z0),setTimeout(()=>{f0.classList.remove(Z0)},300);if(Y.dm&&!HJ)p0(q0,b0,S0.id)}Y.pef(f0,b0);let NJ=q0.has(S0.id);if(j0(f0,NJ,b0===X0),v0)f0.setAttribute("aria-setsize",Y.la)}else{let m0=LJ(b0,S0);if(qJ)qJ.push({index:b0,element:m0});if(Y.dm)p0(q0,b0,S0.id);let r0=q0.has(S0.id),NJ=b0===X0;if(r0||NJ)j0(m0,r0,NJ);w0.appendChild(m0),u.set(b0,m0),x0=!0}}if(x0)I.items.appendChild(w0);if(qJ&&qJ.length>0)for(let b0=0;b0<m.length;b0++)m[b0](qJ);P.start=V.start,P.end=V.end,O.lastRenderRange.start=V.start,O.lastRenderRange.end=V.end,O.viewportState.scrollPosition=Y.ls,O.viewportState.visibleRange.start=E.start,O.viewportState.visibleRange.end=E.end,O.viewportState.renderRange.start=V.start,O.viewportState.renderRange.end=V.end,y0.range.start=V.start,y0.range.end=V.end,L.emit("range:change",y0)},i1=()=>{P.start=-1,P.end=-1,Y.rfn()};Y.rfn=n1,Y.ffn=i1;let t1=()=>{I.root.classList.remove(O0),G=!1,Y.vt.velocity=0,Y.vt.sampleCount=0,T0.velocity=0,T0.reliable=!1,L.emit("velocity:change",T0),i();for(let l=0;l<G0.length;l++)G0[l]();L.emit("scroll:idle",{scrollPosition:Y.ls})},e1=()=>{if(w)clearTimeout(w);w=setTimeout(t1,M?.idleTimeout??U4)},QJ=()=>{if(Y.id)return;let l=Y.sgt();if(l===Y.ls&&G)return;let q0=l>=Y.ls?"down":"up";if(Y.vt=K1(Y.vt,l),!I.root.classList.contains(O0))I.root.classList.add(O0);G=!0,Y.ls=l,Y.rfn(),A0.scrollPosition=l,A0.direction=q0,L.emit("scroll",A0),T0.velocity=Y.vt.velocity,T0.reliable=Y.vt.sampleCount>=X1,L.emit("velocity:change",T0);for(let X0=0;X0<B0.length;X0++)B0[X0](l,q0);e1()},ZJ=null;if(Y.st.addEventListener("scroll",QJ,{passive:!0}),R){let l=I.viewport;if(j)ZJ=(q0)=>{if(O.viewportState.isCompressed)return;if(Math.abs(q0.deltaX)>Math.abs(q0.deltaY))return;let X0=Y.sgt(),E0=l.scrollWidth-l.clientWidth,P0=Math.max(0,Math.min(X0+q0.deltaY,E0));if(Math.abs(P0-X0)<1)return;q0.preventDefault(),Y.sst(P0),QJ()};else ZJ=(q0)=>{if(O.viewportState.isCompressed)return;let X0=l.scrollWidth>l.clientWidth;if(X0&&Math.abs(q0.deltaX)>Math.abs(q0.deltaY))return;if(X0&&q0.deltaX!==0)q0.preventDefault(),l.scrollLeft+=q0.deltaX;let E0=Y.sgt(),P0=l.scrollHeight-l.clientHeight,v0=Math.max(0,Math.min(E0+q0.deltaY,P0));if(Math.abs(v0-E0)<1)return;q0.preventDefault(),Y.sst(v0),QJ()};Y.wh=ZJ,l.addEventListener("wheel",ZJ,{passive:!1})}let tJ=(l)=>{let q0=l.target.closest("[data-index]");if(!q0)return null;let X0=parseInt(q0.dataset.index??"-1",10);if(X0<0)return null;let E0=Y.dm?.getItem(X0)??Y.it[X0];if(!E0||E0.__groupHeader)return null;return{item:E0,index:X0}},eJ=(l)=>{let q0=tJ(l);if(q0)L.emit("item:click",{item:q0.item,index:q0.index,event:l});for(let X0=0;X0<M0.length;X0++)M0[X0](l)},J1=(l)=>{let q0=tJ(l);if(q0)L.emit("item:dblclick",{item:q0.item,index:q0.index,event:l})},Q1=(l)=>{for(let q0=0;q0<V0.length;q0++)V0[q0](l)};if(I.items.addEventListener("click",eJ),I.items.addEventListener("dblclick",J1),I.root.addEventListener("keydown",Q1),k){let l=null,q0=(X0)=>{if(l)clearTimeout(l);l=setTimeout(()=>{if(l=null,Y.id)return;let E0=Y.vtf();I.liveRegion.textContent=`Showing items ${X0.range.start+1} to ${Math.min(X0.range.end+1,E0)} of ${E0}`},300)};L.on("range:change",q0),Y0.push(()=>{if(l)clearTimeout(l);L.off("range:change",q0)})}let FJ=new ResizeObserver((l)=>{if(Y.id)return;for(let q0 of l){let X0=q0.contentRect.height,E0=q0.contentRect.width,P0=j?E0:X0,v0=j?Y.cw:Y.ch;if(Y.cw=E0,Y.ch=X0,Math.abs(P0-v0)>1){if(O.viewportState.containerSize=P0,Y.ii){let w0=O.cachedCompression;if(w0&&w0.state.isCompressed){let x0=`${w0.state.virtualSize+A}px`;if(j)I.content.style.width=x0;else I.content.style.height=x0}else J0();Y.rfn(),L.emit("resize",{height:X0,width:E0})}}if(Y.ii)for(let w0=0;w0<$0.length;w0++)$0[w0](E0,X0)}});if(Y.vre)FJ.observe(I.viewport);let TJ={dom:I,emitter:L,resolvedConfig:s,rawConfig:J,rendered:u,pool:W,itemState:e,sharedState:O,renderRange:V,isHorizontal:j,classPrefix:B,contentSizeHandlers:F0,idleHandlers:G0,afterScroll:B0,clickHandlers:M0,keydownHandlers:V0,resizeHandlers:$0,destroyHandlers:Y0,methods:K0,onScrollFrame:QJ,resizeObserver:FJ,afterRenderBatch:m,applyTemplate:l0,updateContentSize:J0},BJ=G1(Y,TJ);Y.dm=O1(Y,TJ,BJ),Y.sc=A1(Y,TJ),K0.set("_updateRenderedItem",(l,q0,X0,E0)=>{let P0=u.get(l);if(!P0)return;let v0={selected:X0,focused:E0};try{let w0=Y.at(q0,l,v0);l0(P0,w0,l)}catch(w0){let x0=w0 instanceof Error?w0:Error(String(w0));L.emit("error",{error:x0,context:`tpl(${l},${q0.id})`,viewport:$()})}P0.dataset.id=String(q0.id),j0(P0,X0,E0)});let q1=new WeakSet;K0.set("_setSizeCache",(l)=>{if(Y.hc=l,Y.gp>0&&!q1.has(l)){q1.add(l);let q0=Y.hc.getTotalSize,X0=Y.gp;Y.hc.getTotalSize=()=>{let E0=q0();return E0>0?E0-X0:0}}}),K0.set("_setConstrainSize",(l)=>{Y.csi=l});let j1=new Map;for(let l of o)if(l.methods)for(let q0 of l.methods){let X0=j1.get(q0);if(X0)throw Error(`[vlist] Method "${q0}" is registered by both "${X0}" and "${l.name}"`);j1.set(q0,l.name)}for(let l of o)try{l.setup(BJ)}catch(q0){let X0=q0 instanceof Error?q0:Error(String(q0));console.error(`[vlist] Feature "${l.name}" setup failed:`,X0),L.emit("error",{error:X0,context:l.name,viewport:$()})}if(H&&!Q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(k&&!K0.has("_getFocusedIndex")){let l=j?F.left:F.top,q0=j?F.right:F.bottom;E1(Y,I,B,r,j,l,q0,z,K0,u,V0,M0,Y0,!!J.focusOnClick)}if(Y.ii=!0,BJ.state.isInitialized=!0,J0(),Y.rfn(),v&&Y.it.length>0){let l=Y.gsp(Y.it.length-1,Y.hc,Y.ch,Y.it.length,"end");Y.sst(l),Y.ls=l,Y.rfn()}return R1(Y,I,L,u,W,K0,o,Y0,BJ,v,z,eJ,J1,Q1,QJ,FJ,()=>{},()=>{if(w)clearTimeout(w)})}var XJ=(J,Q,j)=>{let q=Q.getTotalSize(),U=j===!0||q>n0,X=q>n0?n0:q,K=q>0?X/q:1;return{isCompressed:U,actualSize:q,virtualSize:X,ratio:K}},P1=(J,Q,j,q,U,X)=>{if(q===0||Q===0)return X.start=0,X.end=-1,X;if(!U.isCompressed||U.ratio===1){let D=j.indexAtOffset(J),y=j.indexAtOffset(J+Q);if(y<q-1)y++;return X.start=Math.max(0,D),X.end=Math.min(q-1,Math.max(0,y)),X}let{virtualSize:K}=U,B=J/K*q,Z=Math.floor(B),_=Z1(j,Math.max(0,Z),Q,q),T=Math.ceil(B)+_;return X.start=Math.max(0,Z),X.end=Math.min(q-1,Math.max(0,T)),X};var JJ=(J,Q,j,q,U,X,K)=>{if(!X.isCompressed||q===0)return j.getOffset(J);if(X.ratio===1)return j.getOffset(J)-Q;let{virtualSize:N}=X,B=Q/N,Z=j.getTotalSize(),_=B*Z;return j.getOffset(J)-_},w1=(J,Q,j,q,U,X="start")=>{if(q===0)return 0;let K;if(U.isCompressed&&U.ratio!==1){K=J/q*U.virtualSize;let _=Q.getSize(J);switch(X){case"center":K-=(j-_)/2*U.ratio;break;case"end":K-=(j-_)*U.ratio;break}return Math.max(0,K)}K=Q.getOffset(J);let N=Q.getSize(J);switch(X){case"center":K-=(j-N)/2;break;case"end":K-=j-N;break}let B=U.virtualSize-j;return Math.max(0,Math.min(K,B))};var N4=(J)=>{if(typeof J!=="object"){let Q=J??2;return{top:Q,right:Q,bottom:Q,left:Q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},UJ=(J,Q,j={},q="vlist",U=!1)=>{let{autoHide:X=!0,autoHideDelay:K=1000,minThumbSize:N=15,showOnHover:B=!0,showOnViewportEnter:Z=!0,clickBehavior:_="page"}=j,T=N4(j.padding),D=U?T.left:T.top,y=U?T.right:T.bottom,S=U?T.bottom:T.right,k=j.hoverZoneWidth??S+16,M=0,R=0,z=0,v=0,r=!1,C=!1,x=0,H=0,d=0,s=null,o=!1,b=null,h=null,I=0,a=0,F=null,A=null,L=null,f=U?"width":"height",n=U?"translateX":"translateY",c=U?(B0)=>B0.clientX:(B0)=>B0.clientY,g=U?"left":"top",p=document.createElement("div"),W=document.createElement("div"),Y=document.createElement("div"),w=()=>{if(p.className=`${q}-scrollbar`,W.className=`${q}-scrollbar-thumb`,U)p.classList.add(`${q}-scrollbar--horizontal`);if(j.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${T.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${T.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${T.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${T.left}px`);if(j.minThumbSize!==void 0)p.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${N}px`);if(p.appendChild(W),J.appendChild(p),Y.className=`${q}-scrollbar-hover`,U)Y.classList.add(`${q}-scrollbar-hover--horizontal`),Y.style.height=`${k}px`;else Y.style.width=`${k}px`;J.appendChild(Y)},G=()=>{if(s)clearTimeout(s),s=null},E=()=>{if(!X)return;G(),s=setTimeout(P,K)},V=()=>{if(M<=R)return;if(G(),!o)p.classList.add(`${q}-scrollbar--visible`),o=!0;if(X&&!r&&!C)E()},P=()=>{if(r||C)return;p.classList.remove(`${q}-scrollbar--visible`),o=!1},O=(B0,G0)=>{M=B0,R=G0;let M0=M>R;if(p.style.display=M0?"":"none",!M0){P();return}let V0=Math.max(0,R-D-y),$0=R/M;z=Math.max(N,$0*V0),W.style[f]=`${z}px`,v=V0-z,$(d)},$=(B0)=>{if(d=B0,M<=R||v<=0)return;let G0=M-R,V0=Math.min(1,Math.max(0,B0/G0))*v;W.style.transform=`${n}(${V0}px)`},u=(B0)=>{if(B0.target===W||_!=="jump"||v<=0)return;let G0=M-R,M0=p.getBoundingClientRect(),V0=c(B0)-M0[g],$0=Math.max(0,Math.min(V0-z/2,v));Q($0/v*G0),V()},i=()=>{if(F!==null)clearTimeout(F),F=null;if(A!==null)cancelAnimationFrame(A),A=null;L=null},J0=(B0)=>{let G0=v>0?a/B0*v:0;if(I<G0)return-1;if(I>=G0+z)return 1;return 0},e=()=>{let B0=M-R,G0=J0(B0);if(G0===0){i();return}if(G0===-1){if(a<=0){i();return}let M0=Math.max(0,a-R);a=M0,Q(M0)}else{if(a>=B0){i();return}let M0=Math.min(B0,a+R);a=M0,Q(M0)}V()},U0=(B0)=>{if(L===null){L=B0,A=requestAnimationFrame(U0);return}let G0=M-R,M0=B0-L;L=B0;let V0=J0(G0);if(V0===0){i();return}let $0=12*R/1000,F0=Math.min($0*M0,R);if(V0===-1){if(a<=0){i();return}let m=Math.max(0,a-F0);a=m,Q(m)}else{if(a>=G0){i();return}let m=Math.min(G0,a+F0);a=m,Q(m)}G(),A=requestAnimationFrame(U0)},t=()=>{i(),E(),document.removeEventListener("mouseup",t)},Q0=(B0)=>{if(B0.target===W||_!=="page")return;B0.preventDefault();let G0=p.getBoundingClientRect();I=c(B0)-G0[g],a=d,e(),F=setTimeout(()=>{A=requestAnimationFrame(U0)},350),document.addEventListener("mouseup",t)},j0=(B0)=>{B0.preventDefault(),B0.stopPropagation(),r=!0,x=c(B0),H=d,G(),p.classList.add(`${q}-scrollbar--dragging`),document.addEventListener("mousemove",N0),document.addEventListener("mouseup",W0)},N0=(B0)=>{if(!r)return;let G0=c(B0)-x,M0=v>0?G0/v:0,V0=M-R,$0=M0*V0,F0=Math.max(0,Math.min(H+$0,V0)),Y0=F0/V0*v;if(W.style.transform=`${n}(${Y0}px)`,h=F0,b===null)b=requestAnimationFrame(()=>{if(h!==null)Q(h);b=null})},W0=()=>{if(r=!1,b!==null)cancelAnimationFrame(b),b=null;if(h!==null)Q(h),h=null;if(p.classList.remove(`${q}-scrollbar--dragging`),X&&!C)E();document.removeEventListener("mousemove",N0),document.removeEventListener("mouseup",W0)},D0=()=>{if(Z)V()},L0=()=>{if(!r){if(C=!1,X)E()}},H0=()=>{C=!0,G(),V()},Z0=()=>{if(C=!1,!r&&X)E()},O0=()=>{if(G(),i(),b!==null)cancelAnimationFrame(b),b=null;if(p.removeEventListener("click",u),p.removeEventListener("mousedown",Q0),p.removeEventListener("mouseenter",H0),document.removeEventListener("mouseup",t),p.removeEventListener("mouseleave",Z0),W.removeEventListener("mousedown",j0),J.removeEventListener("mouseenter",D0),J.removeEventListener("mouseleave",L0),document.removeEventListener("mousemove",N0),document.removeEventListener("mouseup",W0),Y.removeEventListener("click",u),Y.removeEventListener("mousedown",Q0),B)Y.removeEventListener("mouseenter",H0),Y.removeEventListener("mouseleave",Z0);if(Y.parentNode)Y.parentNode.removeChild(Y);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),p.parentNode)p.parentNode.removeChild(p)};if(w(),p.addEventListener("click",u),p.addEventListener("mousedown",Q0),p.addEventListener("mouseenter",H0),p.addEventListener("mouseleave",Z0),W.addEventListener("mousedown",j0),J.addEventListener("mouseenter",D0),J.addEventListener("mouseleave",L0),Y.addEventListener("click",u),Y.addEventListener("mousedown",Q0),B)Y.addEventListener("mouseenter",H0),Y.addEventListener("mouseleave",Z0);return{show:V,hide:P,updateBounds:O,updatePosition:$,isVisible:()=>o,destroy:O0}};var fJ=(J)=>{let Q=null;return{name:"withScrollbar",priority:30,setup(j){let{dom:q,config:U}=j,{classPrefix:X,horizontal:K}=U;if(Q=UJ(q.viewport,(B)=>j.scrollController.scrollTo(B),J??{},X,K),!q.viewport.classList.contains(`${X}-viewport--custom-scrollbar`))q.viewport.classList.add(`${X}-viewport--custom-scrollbar`);if(J?.gutter)q.viewport.classList.add(`${X}-viewport--gutter`);Q.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize);let N=Q;j.afterScroll.push((B,Z)=>{N.updatePosition(B),N.show()}),j.resizeHandlers.push((B,Z)=>{if(N)N.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.contentSizeHandlers.push(()=>{if(N)N.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.destroyHandlers.push(()=>{if(N)N.destroy()})},destroy(){if(Q)Q.destroy(),Q=null}}};var W4=0.65,V4=0.5,z1=1.7,_4=0.95,D4=0.1,M4=5,G4=100,C1=(J,Q,j,q=0)=>{if(J<=0)return 0;let U=Q-q;return Math.max(0,U*(1-j)+q)},IJ=(J)=>{let Q=J?.force??!1,j=null,q=0,U=!1,X=0,K=0,N=null,B=0,Z=0,_=null,T=[];return{name:"withScale",priority:20,setup(D){let{dom:y,config:S}=D,{classPrefix:k,horizontal:M}=S,R=I0(D.rawConfig.padding),z=M?R.left+R.right:R.top+R.bottom,v=()=>{let o=D.getVirtualTotal(),b=XJ(o,D.sizeCache,Q);if(b.isCompressed&&!U){U=!0,D.scrollController.enableCompression(b);let I=M?y.viewport.scrollLeft:y.viewport.scrollTop;if(M)y.viewport.style.overflowX="hidden";else y.viewport.style.overflow="hidden";if(M)y.viewport.scrollLeft=0;else y.viewport.scrollTop=0;if(I>0)q=I,K=I;X=C1(b.virtualSize,D.state.viewportState.containerSize,b.ratio,z),D.updateContentSize(b.virtualSize+X),D.setScrollFns(()=>q,(W)=>{if(q=W,K=W,N!==null)cancelAnimationFrame(N),N=null});let a=()=>{let W=K-q;if(D.getVirtualTotal()===0){q=0,K=0,N=null,D.scrollController.scrollTo(0);return}if(Math.abs(W)<V4){let Y=D.getCachedCompression(),w=Math.max(0,Y.virtualSize+X-D.state.viewportState.containerSize);q=Math.max(0,Math.min(K,w)),K=q,N=null}else{q+=W*W4;let w=D.getCachedCompression().virtualSize+X-D.state.viewportState.containerSize;q=Math.max(0,Math.min(q,w)),N=requestAnimationFrame(a)}D.scrollController.scrollTo(q)},F=y.viewport,A=(W)=>{W.preventDefault();let Y=D.getCachedCompression(),w=Y.virtualSize+X-D.state.viewportState.containerSize;if(K=Math.max(0,Math.min(K+W.deltaY*Y.ratio*z1,w)),N===null)N=requestAnimationFrame(a)};F.addEventListener("wheel",A,{passive:!1});let L=()=>{if(_!==null)cancelAnimationFrame(_),_=null},f=(W)=>{if(L(),N!==null)cancelAnimationFrame(N),N=null;let Y=W.touches[0];if(!Y)return;let w=M?Y.clientX:Y.clientY;B=w,Z=q,T=[{time:performance.now(),y:w}]},n=(W)=>{W.preventDefault();let Y=W.touches[0];if(!Y)return;let w=M?Y.clientX:Y.clientY,G=performance.now();if(T.push({time:G,y:w}),T.length>M4)T.shift();let E=B-w,V=D.getCachedCompression(),P=V.virtualSize+X-D.state.viewportState.containerSize,O=Math.max(0,Math.min(Z+E*V.ratio*z1,P));q=O,K=O,D.scrollController.scrollTo(O)},c=(W)=>{let Y=performance.now(),w=T.filter((P)=>Y-P.time<G4),G=0;if(w.length>=2){let P=w[0],O=w[w.length-1],$=O.time-P.time;if($>0)G=(P.y-O.y)/$}if(T=[],Math.abs(G)<D4)return;let E=G*16,V=()=>{if(E*=_4,Math.abs(E)<0.5){_=null;return}let O=D.getCachedCompression().virtualSize+X-D.state.viewportState.containerSize,$=q+E;if($=Math.max(0,Math.min($,O)),$<=0&&E<0||$>=O&&E>0){q=$,K=$,D.scrollController.scrollTo($),_=null;return}q=$,K=$,D.scrollController.scrollTo($),_=requestAnimationFrame(V)};_=requestAnimationFrame(V)};F.addEventListener("touchstart",f,{passive:!0}),F.addEventListener("touchmove",n,{passive:!1}),F.addEventListener("touchend",c,{passive:!0}),F.addEventListener("touchcancel",c,{passive:!0}),D.destroyHandlers.push(()=>{F.removeEventListener("wheel",A),F.removeEventListener("touchstart",f),F.removeEventListener("touchmove",n),F.removeEventListener("touchend",c),F.removeEventListener("touchcancel",c)});let g=y.viewport.querySelector(`.${k}-scrollbar`),p=()=>{if((M?y.viewport.scrollLeft:y.viewport.scrollTop)!==0)if(M)y.viewport.scrollLeft=0;else y.viewport.scrollTop=0};if(F.addEventListener("scroll",p,{passive:!0}),D.destroyHandlers.push(()=>{F.removeEventListener("scroll",p)}),!g){if(j=UJ(y.viewport,(Y)=>D.scrollController.scrollTo(Y),{},k,M),!y.viewport.classList.contains(`${k}-viewport--custom-scrollbar`))y.viewport.classList.add(`${k}-viewport--custom-scrollbar`);j.updateBounds(b.virtualSize,D.state.viewportState.containerSize);let W=j;D.afterScroll.push((Y,w)=>{if(W)W.updatePosition(Y),W.show()}),D.resizeHandlers.push((Y,w)=>{if(W){let G=D.getCachedCompression();W.updateBounds(G.virtualSize,D.state.viewportState.containerSize)}})}}else if(!b.isCompressed&&U){if(U=!1,N!==null)cancelAnimationFrame(N),N=null;if(_!==null)cancelAnimationFrame(_),_=null;if(q=0,K=0,T=[],D.setScrollFns(M?()=>y.viewport.scrollLeft:()=>y.viewport.scrollTop,M?(I)=>{y.viewport.scrollLeft=I}:(I)=>{y.viewport.scrollTop=I}),M)y.viewport.scrollLeft=0;else y.viewport.scrollTop=0;if(D.scrollController.disableCompression(),M)y.viewport.style.overflowX="auto";else y.viewport.style.overflow="auto";if(j)j.destroy(),j=null;X=0,D.updateContentSize(b.actualSize)}else if(b.isCompressed)D.scrollController.updateConfig({compression:b}),X=C1(b.virtualSize,D.state.viewportState.containerSize,b.ratio,z),D.updateContentSize(b.virtualSize+X);if(j)j.updateBounds(b.virtualSize+X,D.state.viewportState.containerSize);let h=D.state.viewportState;if(h.isCompressed=b.isCompressed,h.compressionRatio=b.ratio,h.totalSize=b.virtualSize+X,h.actualSize=b.actualSize,D.state.cachedCompression={state:b,totalItems:o},U){let I=Math.max(0,b.virtualSize+X-D.state.viewportState.containerSize),a=q;if(a>I)a=I;else if(a<0)a=0;if(a!==q){if(N!==null)cancelAnimationFrame(N),N=null;if(_!==null)cancelAnimationFrame(_),_=null;D.scrollController.scrollTo(a)}}for(let I=0;I<D.contentSizeHandlers.length;I++)D.contentSizeHandlers[I]()};D.updateCompressionMode=v;let r=D.getCachedCompression.bind(D);D.getCachedCompression=()=>{if(D.state.cachedCompression)return D.state.cachedCompression.state;return r()},D.setVisibleRangeFn((o,b,h,I,a)=>{C=null,x=null;let F=XJ(I,h,Q);P1(o,b,h,I,F,a)}),D.setScrollToPosFn((o,b,h,I,a)=>{let F=XJ(I,b,Q);return w1(o,b,h,I,F,a)});let C=null,x=null;D.setPositionElementFn((o,b)=>{let h=D.getVirtualTotal(),I=XJ(h,D.sizeCache,Q);if(I.isCompressed){let a=D.scrollController.getScrollTop();if(C===null||b<x)x=b,C=Math.round(JJ(b,a,D.sizeCache,h,D.state.viewportState.containerSize,I));let F=C+D.sizeCache.getOffset(b)-D.sizeCache.getOffset(x),A=D.config.horizontal;o.style.transform=A?`translateX(${F}px)`:`translateY(${F}px)`}else{let a=Math.round(D.sizeCache.getOffset(b)),F=D.config.horizontal;o.style.transform=F?`translateX(${a}px)`:`translateY(${a}px)`}});let H=M?R.left:R.top,d=M?R.right:R.bottom,s=D.getItemToScrollIndexFn();D.methods.set("_scrollItemIntoView",(o)=>{let b=D.getCachedCompression(),h=D.state.viewportState.containerSize,I=D.state.viewportState.scrollPosition,a=D.getVirtualTotal(),{visibleRange:F}=D.state.viewportState,A=s(o),L=_J(A,D.sizeCache,I,h,H,d,b,a,F);if(L!==I)D.scrollController.scrollTo(L)}),v(),D.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(N!==null)cancelAnimationFrame(N),N=null;if(_!==null)cancelAnimationFrame(_),_=null})}}};var v1=(J={})=>{let{chunkSize:Q=100,maxCachedItems:j=5000,evictionBuffer:q=200,onEvict:U}=J,X=new Map,K=0,N=0,B=(F)=>{let A=X.get(F);if(!A)A={items:Array(Q),count:0,lastAccess:Date.now()},X.set(F,A);else A.lastAccess=Date.now();return A},Z=(F)=>{return Math.floor(F/Q)},_=(F)=>{return F%Q},T=()=>K,D=(F)=>{K=F},y=(F)=>{if(F<0||F>=K)return;let A=Z(F),L=X.get(A);if(!L)return;return L.items[_(F)]},S=(F)=>{if(F<0||F>=K)return!1;let A=Z(F),L=X.get(A);if(!L)return!1;return L.items[_(F)]!==void 0},k=(F,A)=>{let L=Z(F),f=B(L),n=_(F),c=f.items[n]===void 0;if(f.items[n]=A,c)f.count++,N++;if(F>=K)K=F+1},M=(F,A)=>{for(let L=0;L<A.length;L++){let f=A[L];if(f!==void 0)k(F+L,f)}},R=(F)=>{if(F<0||F>=K)return!1;let A=Z(F),L=X.get(A),f=_(F);if(!(L!==void 0&&L.items[f]!==void 0))return!1;let c=A,g=Array.from(X.keys()).filter((W)=>W>=c).sort((W,Y)=>W-Y),p=[];for(let W of g){let Y=X.get(W),w=W*Q;for(let G=0;G<Q;G++){if(Y.items[G]===void 0)continue;let E=w+G;if(E<=F)continue;p.push({oldIndex:E,item:Y.items[G]})}}if(L.items[f]=void 0,L.count--,N--,L.count===0)X.delete(A);for(let{oldIndex:W}of p){let Y=Z(W),w=X.get(Y);if(!w)continue;let G=_(W);if(w.items[G]!==void 0){if(w.items[G]=void 0,w.count--,N--,w.count===0)X.delete(Y)}}for(let{oldIndex:W,item:Y}of p){let w=W-1,G=Z(w),E=B(G),V=_(w);E.items[V]=Y,E.count++,N++}return K--,!0},z=(F,A)=>{let L=[];for(let f=F;f<=A&&f<K;f++)L.push(y(f));return L},v=(F,A)=>{for(let L=F;L<=A&&L<K;L++)if(!S(L))return!1;return!0},r=()=>{let F=[],A=null,L=Array.from(X.keys()).sort((f,n)=>f-n);for(let f of L){let n=X.get(f);if(!n)continue;let c=f*Q;for(let g=0;g<Q;g++){let p=c+g;if(p>=K)break;if(n.items[g]!==void 0)if(A===null)A={start:p,end:p};else if(p===A.end+1)A.end=p;else F.push(A),A={start:p,end:p};else if(A!==null)F.push(A),A=null}}if(A!==null)F.push(A);return F},C=(F,A)=>{let L=[],f=null;for(let n=F;n<=A&&n<K;n++)if(!S(n))if(f===null)f={start:n,end:n};else f.end=n;else if(f!==null)L.push(f),f=null;if(f!==null)L.push(f);return L},x=(F)=>{return X.has(F)},H=(F)=>{let A=X.get(F);if(A)A.lastAccess=Date.now()},d=(F,A)=>{if(F>A||X.size===0)return;let L=Date.now(),f=Z(Math.max(0,F)),n=Z(Math.min(K-1,A));for(let c=f;c<=n;c++){let g=X.get(c);if(g)g.lastAccess=L}},s=(F,A)=>{if(N<=j)return 0;let L=Math.max(0,F-q),f=Math.min(K-1,A+q),n=Z(L),c=Z(f),g=0,p=[];for(let[W,Y]of X)if(W<n||W>c)g+=Y.count,p.push(W),N-=Y.count,X.delete(W);if(g>0&&U)U(g,p);return g},o=()=>{if(N<=j)return 0;let F=Array.from(X.entries()).sort(([,f],[,n])=>f.lastAccess-n.lastAccess),A=0,L=[];for(let[f,n]of F){if(N<=j)break;A+=n.count,N-=n.count,L.push(f),X.delete(f)}if(A>0&&U)U(A,L);return A},b=()=>{return{totalItems:K,cachedItems:N,cachedChunks:X.size,chunkSize:Q,maxCachedItems:j,memoryEfficiency:K>0?1-N/K:1}},h=()=>N,I=()=>{X.clear(),N=0};return{chunkSize:Q,maxCachedItems:j,getTotal:T,setTotal:D,get:y,has:S,set:k,setRange:M,delete:R,getRange:z,isRangeLoaded:v,getLoadedRanges:r,findUnloadedRanges:C,getChunkIndex:Z,isChunkLoaded:x,touchChunk:H,touchChunksForRange:d,evictDistant:s,evictToLimit:o,getStats:b,getCachedCount:h,clear:I,reset:()=>{I(),K=0}}},O4=(J)=>{if(J.length===0)return[];let Q=[...J].sort((q,U)=>q.start-U.start),j=[{...Q[0]}];for(let q=1;q<Q.length;q++){let U=Q[q],X=j[j.length-1];if(U.start<=X.end+1)X.end=Math.max(X.end,U.end);else j.push({...U})}return j},S1=(J,Q,j)=>{let q=Math.floor(J.start/j)*j,U=Math.ceil((J.end+1)/j)*j-1,X={start:q,end:U};if(Q.length===0)return[X];let K=[],N=O4(Q),B=X.start;for(let Z of N){if(Z.end<B)continue;if(Z.start>X.end)break;if(Z.start>B)K.push({start:B,end:Math.min(Z.start-1,X.end)});if(B=Z.end+1,B>X.end)break}if(B<=X.end)K.push({start:B,end:X.end});return K};var f1=(J={})=>{let{maskCharacter:Q=H1,maxSampleSize:j=k1}=J,q=[],U=!1,X=(_)=>{if(U||_.length===0)return;let T=Math.min(_.length,j);for(let D=0;D<T;D++){let y=_[D];if(!y||typeof y!=="object")continue;let S={};for(let[k,M]of Object.entries(y)){if(k.startsWith("_")||k==="id")continue;S[k]=String(M??"").length}if(Object.keys(S).length>0)q.push(S)}U=!0},K=()=>U,N=(_)=>{let T={id:`${h0}${_}`,[$J]:!0,_index:_};if(q.length===0)return T.label=Q.repeat(12),T;let D=q[_%q.length];for(let[y,S]of Object.entries(D))T[y]=Q.repeat(Math.max(1,S));return T};return{analyzeStructure:X,hasAnalyzedStructure:K,generate:N,generateRange:(_,T)=>{let D=[];for(let y=_;y<=T;y++)D.push(N(y));return D},clear:()=>{q=[],U=!1}}},OJ=(J)=>{if(!J||typeof J!=="object")return!1;return J[$J]===!0};var A4=50,I1=(J={})=>{let{adapter:Q,initialItems:j,initialTotal:q,storage:U,placeholder:X,pageSize:K=A4,onStateChange:N,onItemsLoaded:B,onItemsEvicted:Z}=J,_=v1({...U,onEvict:(t,Q0)=>{Z?.(t),d()}}),T=null,D=()=>{if(!T)T=f1(X);return T},y=new Map,S=!1,k,M=!0,R,z,v=[],r=0,C=new Map,x=new Map,H=()=>{for(let t of x.values())t.abort();x.clear(),C.clear()},d=()=>{N?.(L())},s=()=>{y.clear();let t=_.getLoadedRanges();for(let Q0 of t)for(let j0=Q0.start;j0<=Q0.end;j0++){let N0=_.get(j0);if(N0&&!OJ(N0))y.set(N0.id,j0)}},o=(t,Q0)=>{if(!OJ(Q0))y.set(Q0.id,t)},b=(t)=>{y.delete(t)},h=(t,Q0)=>{return`${t}-${Q0}`},I=()=>_.getTotal(),a=()=>_.getCachedCount(),F=()=>S,A=()=>M,L=()=>({total:_.getTotal(),cached:_.getCachedCount(),isLoading:S,pendingRanges:v,error:k,hasMore:M,cursor:R}),f=()=>_,n=()=>D(),c=(t)=>{let Q0=_.get(t);if(Q0!==void 0)return Q0;if(t>=0&&t<_.getTotal())return D().generate(t);return},g=(t)=>{let Q0=y.get(t);if(Q0===void 0)return;return _.get(Q0)},p=(t)=>{return y.get(t)??-1},W=(t)=>{let Q0=_.get(t);return Q0!==void 0&&!OJ(Q0)},Y=(t,Q0)=>{let j0=[],N0=_.getTotal(),W0=0,D0=0;_.touchChunksForRange(t,Math.min(Q0,N0-1));for(let L0=t;L0<=Q0&&L0<N0;L0++){let H0=_.get(L0);if(H0!==void 0)j0.push(H0),W0++;else j0.push(D().generate(L0)),D0++}return j0},w=(t)=>{_.setTotal(t),M=_.getCachedCount()<t,d()},G=(t,Q0=0,j0)=>{if(Q&&t.length>0){let N0=D();if(!N0.hasAnalyzedStructure())N0.analyzeStructure(t)}for(let N0=0;N0<t.length;N0++){let W0=t[N0];if(W0!==void 0){let D0=Q0+N0;_.set(D0,W0),o(D0,W0)}}if(j0!==void 0)_.setTotal(j0);else if(Q0+t.length>_.getTotal())_.setTotal(Q0+t.length);if(_.getCachedCount()>=_.getTotal()&&_.getTotal()>0)M=!1;d(),B?.(t,Q0,_.getTotal())},E=(t,Q0)=>{let j0=_.get(t);if(!j0)return!1;let N0=j0.id,W0={...j0,...Q0};if(_.set(t,W0),Q0.id!==void 0&&Q0.id!==N0)b(N0);return o(t,W0),d(),!0},V=(t)=>{let Q0=y.get(t);if(Q0===void 0)return!1;if(!_.delete(Q0))return!1;return s(),H(),d(),!0},P=async(t,Q0)=>{if(!Q)return;let j0=h(t,Q0);if(C.has(j0))return;let N0=_.getLoadedRanges(),W0=S1({start:t,end:Q0},N0,_.chunkSize);if(W0.length===0)return;let D0=_.chunkSize,L0=D0*2;for(let[O0,B0]of x){let G0=O0.indexOf("-"),M0=parseInt(O0.slice(0,G0),10);if(Math.abs(M0-t)>L0)B0.abort(),x.delete(O0),C.delete(O0)}let H0=[];for(let O0 of W0){let B0=Math.floor(O0.start/D0),G0=Math.floor(O0.end/D0);for(let M0=B0;M0<=G0;M0++){let V0=M0*D0,$0=V0+D0-1,F0=h(V0,$0);if(!H0.some((m)=>m.start===V0)&&!C.has(F0))H0.push({start:V0,end:$0})}}let Z0=[];for(let O0 of W0){let B0=Math.floor(O0.start/D0),G0=Math.floor(O0.end/D0);for(let M0=B0;M0<=G0;M0++){let V0=M0*D0,$0=V0+D0-1,F0=h(V0,$0);if(C.has(F0)){let m=C.get(F0);if(!Z0.includes(m))Z0.push(m)}}}for(let O0 of H0){let B0=h(O0.start,O0.end),G0=new AbortController;x.set(B0,G0);let M0=(async()=>{v.push(O0),S=!0,k=void 0,d();try{let V0=O0.end-O0.start+1,$0={offset:O0.start,limit:V0,cursor:O0.start===z?R:void 0,signal:G0.signal},F0=await Q.read($0);if(G(F0.items,O0.start,F0.total),F0.cursor)R=F0.cursor,z=O0.start+F0.items.length;let m=O0.start+F0.items.length;if(m>=r){if(r=m,F0.hasMore!==void 0)M=F0.hasMore;else if(F0.total!==void 0)M=m<F0.total}}catch(V0){if(V0?.name==="AbortError")return;k=V0 instanceof Error?V0:Error(String(V0))}finally{C.delete(B0),x.delete(B0),v=v.filter((V0)=>V0.start!==O0.start||V0.end!==O0.end),S=C.size>0,d()}})();C.set(B0,M0),Z0.push(M0)}await Promise.all(Z0)},O=async(t,Q0)=>{if(_.isRangeLoaded(t,Q0))return;await P(t,Q0)},$=async()=>{if(!Q)return;await P(0,K-1)},u=async()=>{if(!Q||S||!M)return!1;let t=_.getCachedCount(),Q0=_.getTotal(),j0=t,N0=Math.min(j0+K-1,Q0>0?Q0-1:j0+K-1);if(j0>=Q0&&Q0>0)return M=!1,!1;return await P(j0,N0),_.getCachedCount()>t},i=async()=>{if(_.clear(),_.setTotal(0),y.clear(),T)T.clear();H(),v=[],S=!1,R=void 0,z=void 0,M=!0,r=0,k=void 0,d()},J0=(t,Q0)=>{if(_.evictDistant(t,Q0)>0)s()},e=()=>{_.clear(),y.clear(),R=void 0,z=void 0,k=void 0,v=[],S=!1,d()},U0=()=>{if(_.reset(),y.clear(),T)T.clear();R=void 0,z=void 0,M=!0,r=0,k=void 0,v=[],S=!1,d()};if(j&&j.length>0)G(j,0,q??j.length);else if(q!==void 0)_.setTotal(q),d();return{getState:L,getTotal:I,getCached:a,getIsLoading:F,getHasMore:A,getStorage:f,getPlaceholders:n,getItem:c,getItemById:g,getIndexById:p,isItemLoaded:W,getItemsInRange:Y,setTotal:w,setItems:G,updateItem:E,removeItem:V,loadRange:P,ensureRange:O,loadInitial:$,loadMore:u,reload:i,evictDistant:J0,clear:e,reset:U0}};var hJ=(J)=>{let{adapter:Q,loading:j,storage:q,total:U,autoLoad:X=!0}=J,K=j?.cancelThreshold??F1,N=j?.preloadThreshold??T1,B=j?.preloadAhead??L1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(Z){let{emitter:_}=Z,T=Z.config.reverse,D=Z.methods.get("_getGridLayout"),y=(b)=>{if(D){let h=D();if(h){let I=Z.dataManager.getTotal();return h.getItemRange(b.start,b.end,I)}}return b},S=I1({adapter:Q,...U!==void 0&&{initialTotal:U},pageSize:q?.chunkSize??o0,...q&&{storage:{...q.chunkSize!==void 0&&{chunkSize:q.chunkSize},...q.maxCachedItems!==void 0&&{maxCachedItems:q.maxCachedItems}}},onStateChange:()=>{if(Z.state.isInitialized){let b=Z.getVirtualTotal();Z.sizeCache.rebuild(b),Z.updateCompressionMode();let h=Z.getCachedCompression();Z.state.viewportState.totalSize=h.virtualSize,Z.state.viewportState.actualSize=h.actualSize,Z.state.viewportState.isCompressed=h.isCompressed,Z.state.viewportState.compressionRatio=h.ratio,Z.updateContentSize(h.virtualSize),Z.renderIfNeeded()}},onItemsLoaded:(b,h,I)=>{if(Z.state.isInitialized)Z.forceRender(),_.emit("load:end",{items:b,total:I,offset:h})}});Z.replaceDataManager(S);let k=null,M=null,R=0,z=!1,v=null,r=120,C=(b=!1)=>{if(z=!1,M=null,b)k=null;if(v!==null)clearTimeout(v),v=null},x=()=>{if(!M)return;M=null;let{renderRange:b}=Z.state.viewportState;if(b.end<b.start)return;k=null;let h=y(b);Z.dataManager.ensureRange(h.start,h.end).catch((I)=>{_.emit("error",{error:I,context:"ensureRange"})})};Z.afterScroll.push((b,h)=>{if(Z.state.isDestroyed)return;let I=Z.scrollController.getVelocity(),F=Z.scrollController.isTracking()&&I<=K;if(R>K&&I<=K)z=!0;else if(z&&I>K)C();if(z&&I<0.5)C(!0);if(R=I,(Z.scrollController.isAtTop()||Z.scrollController.isAtBottom())&&(z||M))C(!0),F=!0;let L=z&&I>0.5;if(F&&!Z.dataManager.getIsLoading()&&Z.dataManager.getHasMore()){if(T){if(b<bJ)_.emit("load:start",{offset:Z.dataManager.getCached(),limit:o0}),Z.dataManager.loadMore().catch((c)=>{_.emit("error",{error:c,context:"loadMore"})})}else if(Z.state.viewportState.totalSize-b-Z.state.viewportState.containerSize<bJ)_.emit("load:start",{offset:Z.dataManager.getCached(),limit:o0}),Z.dataManager.loadMore().catch((g)=>{_.emit("error",{error:g,context:"loadMore"})})}let{renderRange:f}=Z.state.viewportState;if(!k||f.start!==k.start||f.end!==k.end){if(k={start:f.start,end:f.end},F&&!L){if(M=null,v!==null)clearTimeout(v),v=null;let c=y(f),g=c.start,p=c.end,W=D?Z.dataManager.getTotal():Z.getVirtualTotal();if(I>N)if(h==="down")p=Math.min(c.end+B,W-1);else g=Math.max(c.start-B,0);Z.dataManager.ensureRange(g,p).catch((Y)=>{_.emit("error",{error:Y,context:"ensureRange"})})}else if(M={start:f.start,end:f.end},L){if(v!==null)clearTimeout(v);v=setTimeout(()=>{v=null,x(),C()},r)}}});let H=200,d=null;Z.afterScroll.push((b,h)=>{if(d!==null)clearTimeout(d);d=setTimeout(()=>{d=null,x(),C()},H)}),Z.destroyHandlers.push(()=>{if(d!==null)clearTimeout(d),d=null;C()});let s=()=>{if(Z.state.isDestroyed)return;k=null;let{renderRange:b}=Z.state.viewportState;if(b.end>0){let h=y(b);Z.dataManager.ensureRange(h.start,h.end).catch((I)=>{_.emit("error",{error:I,context:"ensureRange"})})}x()};window.addEventListener("online",s),Z.destroyHandlers.push(()=>{window.removeEventListener("online",s)}),_.on("load:start",()=>{Z.dom.root.setAttribute("aria-busy","true")}),_.on("load:end",()=>{Z.dom.root.removeAttribute("aria-busy")}),Z.methods.set("loadVisibleRange",async()=>{k=null,M=null,Z.forceRender();let{renderRange:b}=Z.state.viewportState;if(b.end>0){let h=y(b);_.emit("load:start",{offset:h.start,limit:h.end-h.start+1}),await Z.dataManager.ensureRange(h.start,h.end)}}),Z.methods.set("reload",async(b)=>{k=null,M=null;let h=b?.snapshot,I=h!=null&&(h.total??0)>0&&h.index>0,a=I||b?.skipInitialLoad===!0;if(Z.invalidateRendered(),await Z.dataManager.reload(),!I)Z.scrollController.scrollTo(0);if(!a){_.emit("load:start",{offset:0,limit:o0}),await Z.dataManager.loadInitial(),Z.forceRender();let{renderRange:F}=Z.state.viewportState;if(F.end>0){let A=y(F);await Z.dataManager.ensureRange(A.start,A.end)}}if(I){let F=Z.methods.get("restoreScroll");if(F)F(h)}});let o=!1;if(Z.methods.set("_cancelAutoLoad",()=>{o=!0}),X)queueMicrotask(()=>{if(o)return;_.emit("load:start",{offset:0,limit:o0}),Z.dataManager.loadInitial().catch((b)=>{_.emit("error",{error:b,context:"loadInitial"})})});else if(U!==void 0)Z.dataManager.setTotal(U)}}};var AJ=(J)=>J==null?0:typeof J==="function"?J():J,pJ=(J)=>{let Q=null,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(q){let{dom:U,state:X,config:K,emitter:N}=q;if(U.root.style.overflow="visible",U.root.style.height="auto",K.horizontal)U.viewport.style.overflowX="visible",U.viewport.style.overflowY="visible";else U.viewport.style.overflow="visible";if(U.viewport.classList.remove(`${K.classPrefix}-viewport--custom-scrollbar`),q.disableViewportResize(),q.disableWheelHandler(),q.setScrollTarget(window),q.setScrollFns(()=>{let T=U.viewport.getBoundingClientRect();return Math.max(0,K.horizontal?-T.left:-T.top)},(T)=>{let D=U.viewport.getBoundingClientRect();if(K.horizontal){let y=D.left+window.scrollX;window.scrollTo({left:y+T,top:window.scrollY,behavior:"instant"})}else{let y=D.top+window.scrollY;window.scrollTo({left:window.scrollX,top:y+T,behavior:"instant"})}}),q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),X.viewportState.containerSize=window.innerHeight,j){let T=K.horizontal,D=q.getItemToScrollIndexFn();q.setScrollToPosFn((y,S,k,M,R)=>{let z=AJ(T?j.left:j.top),v=AJ(T?j.right:j.bottom);if(M===0)return 0;let r=Math.max(0,Math.min(y,M-1)),C=S.getOffset(r),x=S.getSize(r),H=S.getTotalSize(),d=Math.max(0,H-k+v),s;switch(R){case"start":s=C-z;break;case"center":{let o=k-z-v;s=C-z-(o-x)/2;break}case"end":s=C-k+x+v;break}return Math.max(-z,Math.min(s,d))}),q.methods.set("_scrollItemIntoView",(y)=>{let S=D(y),k=T?window.innerWidth:window.innerHeight,M=AJ(T?j.left:j.top),R=AJ(T?j.right:j.bottom),z=U.viewport.getBoundingClientRect(),v=T?window.scrollX:window.scrollY,r=(T?z.left:z.top)+v,C=r-v,x=q.sizeCache.getOffset(S),H=q.sizeCache.getSize(S),d=C+x,s=d+H,o=M,b=k-R,h=v;if(d<o)h=r+x-o;else if(s>b)h=r+x+H-b;if(h!==v)if(T)window.scrollTo({left:h,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:h,behavior:"instant"})})}let{innerHeight:B,innerWidth:Z}=window,_=()=>{let{innerWidth:T,innerHeight:D}=window,y=K.horizontal?T:D,S=K.horizontal?Z:B;if(Math.abs(y-S)<=1)return;B=D,Z=T,X.viewportState.containerSize=D,N.emit("resize",{width:T,height:D});for(let k=0;k<q.resizeHandlers.length;k++)q.resizeHandlers[k](T,D);q.renderIfNeeded()};window.addEventListener("resize",_,{passive:!0}),Q=()=>{window.removeEventListener("resize",_)},q.destroyHandlers.push(Q)},destroy(){if(Q)Q(),Q=null}}};var uJ=(J,Q)=>{let j=0,q=J.length-1;while(j<q){let U=j+q+1>>>1;if(J[U].headerLayoutIndex<=Q)j=U;else q=U-1}return j},h1=(J,Q)=>{let j=0,q=J.length-1;while(j<q){let U=j+q+1>>>1;if(J[U].firstDataIndex<=Q)j=U;else q=U-1}return j},p1=(J,Q)=>{if(J===0)return[];let j=[],q=Q(0),U=0,X=0;for(let K=1;K<J;K++){let N=Q(K);if(N!==q){let B=K-U;j.push({key:q,groupIndex:j.length,headerLayoutIndex:X,firstDataIndex:U,count:B}),X=X+1+B,q=N,U=K}}return j.push({key:q,groupIndex:j.length,headerLayoutIndex:X,firstDataIndex:U,count:J-U}),j},gJ=(J,Q)=>{if(J.length===0||Q.length===0)return[];let j=J.length+Q.length,q=Array(j),U=0;for(let X of Q){q[U]={id:`__group_header_${X.groupIndex}`,__groupHeader:!0,groupKey:X.key,groupIndex:X.groupIndex},U++;for(let K=0;K<X.count;K++)q[U]=J[X.firstDataIndex+K],U++}return q},xJ=(J,Q,j=!1)=>{let q=typeof Q==="number"?(U)=>Q:Q;return(U)=>{let X=J.getEntry(U);if(X.type==="header"){if(j&&X.group.groupIndex===0)return 0;return J.getHeaderHeight(X.group.groupIndex)}return q(X.dataIndex)}},u1=(J,Q)=>{let j=p1(J,Q.getGroupForIndex),q=J+j.length,U=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return q},get groupCount(){return j.length},get groups(){return j},getEntry:(D)=>{if(j.length===0)return{type:"item",dataIndex:D,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let y=uJ(j,D),S=j[y];if(D===S.headerLayoutIndex)return{type:"header",group:S};let k=D-S.headerLayoutIndex-1;return{type:"item",dataIndex:S.firstDataIndex+k,group:S}},layoutToDataIndex:(D)=>{if(j.length===0)return D;let y=uJ(j,D),S=j[y];if(D===S.headerLayoutIndex)return-1;let k=D-S.headerLayoutIndex-1;return S.firstDataIndex+k},dataToLayoutIndex:(D)=>{if(j.length===0)return D;let y=h1(j,D),S=j[y],k=D-S.firstDataIndex;return S.headerLayoutIndex+1+k},getGroupAtLayoutIndex:(D)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let y=uJ(j,D);return j[y]},getGroupAtDataIndex:(D)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let y=h1(j,D);return j[y]},getHeaderHeight:typeof U==="number"?(D)=>U:(D)=>{let y=j[D];if(!y)return 0;return U(y.key,D)},rebuild:(D)=>{j=p1(D,Q.getGroupForIndex),q=D+j.length}}};var g1=(J,Q,j,q,U,X=!1,K=0)=>{let N=X?"width":"height",B=X?"height":"width",Z=X?"X":"Y",_=(Y,w)=>{Y.style[N]=`${w}px`},T=document.createElement("div");T.className=`${U}-sticky-header`,T.setAttribute("role","presentation"),T.setAttribute("aria-hidden","true"),T.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(X?`top:0;bottom:0;left:${K||0}px`:`top:${K||0}px`);let D=()=>{let Y=document.createElement("div");return Y.className="sticky-group",Y.style.position="absolute",Y.style.willChange="transform",Y.style[B]="100%",Y},y=D(),S=D();T.append(y,S),J.insertBefore(T,J.firstChild);let k=y,M=S,R=Q.groups,z=[],v=[],r=0,C=()=>{R=Q.groups,r=R.length,z=Array(r),v=Array(r);for(let Y=0;Y<r;Y++)z[Y]=j.getOffset(R[Y].headerLayoutIndex),v[Y]=Q.getHeaderHeight(Y)};C();let x=-1,H=0,d=-1,s=!1,o=0,b=!1,h=(Y,w)=>{q(Y,w);let G=v[w];return _(Y,G),G},I=(Y)=>{Y.replaceChildren(),Y.style.transform=""},a=(Y)=>{if(Y===x)return;if(x=Y,H=0,Y<0||Y>=r){I(k);return}H=h(k,Y),_(T,H),k.style.transform=""},F=(Y)=>{if(Y===o)return;o=Y;let w=Math.round(Y);k.style.transform=`translate${Z}(${w}px)`,M.style.transform=`translate${Z}(${w+H}px)`},A=()=>{o=0,k.style.transform="",M.style.transform=""},L=()=>{if(!b)return;let Y=k;k=M,M=Y,x=d,H=x>=0?v[x]:0,_(T,H),I(M),d=-1,b=!1,A()},f=()=>{if(!b)return;I(M),d=-1,b=!1,A()},n=()=>{if(s)return;s=!0,T.style.display=""},c=()=>{if(!s)return;s=!1,T.style.display="none",I(k),x=-1,H=0,f()},g=(Y)=>{if(r===0){c();return}if(Y<z[0]){c();return}let w=0,G=r-1;while(w<G){let V=w+G+1>>>1;if(z[V]+v[V]<=Y)w=V;else G=V-1}if(!s)n();a(w);let E=w+1;if(E<r){let V=z[E]-Y;if(V<=0&&V>-H){if(d!==E||!b)d=E,h(M,E),b=!0;F(V)}else if(V<=-H){if(b)L()}else if(b)f()}else if(b)f()},p=()=>{C();let Y=x;if(x=-1,H=0,Y>=0)a(Y)},W=()=>{T.remove(),x=-1,H=0,d=-1,s=!1,b=!1};return T.style.display="none",{update:g,refresh:p,show:n,hide:c,destroy:W}};var g0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var x1=(J,Q,j,q,U,X)=>{if(q===0)return 0;let K=Math.max(0,Math.min(J,q-1)),N=Q.getOffset(K),B=Q.getSize(K),Z=Q.getTotalSize(),_=Math.max(0,Z-j),T;switch(X){case"center":T=N-j/2+B/2;break;case"end":T=N-j+B;break;case"start":default:T=N;break}return Math.max(0,Math.min(T,_))};var KJ=(J,Q,j,q,U="start",X,K=x1)=>{return K(J,Q,j,q,X,U)};var E4=(J,Q)=>{if(J.header){let j=Q?J.header.width??J.header.height:J.header.height??J.header.width;return{...J,header:{...J.header,height:j}}}if(J.headerHeight!=null&&J.headerTemplate)return{...J,header:{height:J.headerHeight,template:J.headerTemplate}};return J},mJ=(J)=>{let Q=J.header,j=Q?Q.height??Q.width:J.headerHeight,q=Q?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(j==null||j<=0)throw Error("[vlist/builder] withGroups: header.height must be a positive number");if(!q)throw Error("[vlist/builder] withGroups: header.template is required");let U=null,X=null,K=[],N=[];return{name:"withGroups",priority:10,setup(B){let{dom:Z,config:_,rawConfig:T}=B,{classPrefix:D}=_,y=E4(J,_.horizontal),k=T.item.height;K=T.items?[...T.items]:[];let M=K.length,R={getGroupForIndex:y.getGroupForIndex,header:{height:y.header.height,template:y.header.template},sticky:y.sticky??!1};U=u1(M,R),N=gJ(K,U.groups);let z=y.sticky!==!1,v=xJ(U,k,z);B.setSizeConfig(v),B.rebuildSizeCache(N.length),B.dataManager.setItems(N,0,N.length);let r=T.item.template,{template:C}=y.header,x=(c,g,p)=>{if(g0(c))return C(c.groupKey,c.groupIndex);return r(c,g,p)},H=B.methods.get("_getGridLayout"),d=B.methods.get("_replaceGridRenderer"),s=B.methods.get("_updateGridLayoutForGroups"),o=B.methods.get("_createGridRenderer"),b=B.methods.get("_getTableLayout"),h=B.methods.get("_updateTableForGroups"),I=B.methods.get("_getTableHeaderHeight");if(H&&d&&o){if(s)s((p)=>{let W=N[p];return!!(W&&g0(W))});let c=H(),g=o(Z.items,x,B.sizeCache,c,D,B.getContainerWidth(),()=>B.dataManager.getTotal(),_.ariaIdPrefix);d(g)}else if(b&&h)h((c)=>g0(c),y.header.template);else B.replaceTemplate(x);let a=I?I():0;if(Z.root.classList.add(`${D}--grouped`),y.sticky!==!1)if(B.methods.set("_getStickyHeaderHeight",()=>y.header.height),!_.horizontal)Z.viewport.style.height=`calc(100% - ${y.header.height}px)`;else Z.viewport.style.width=`calc(100% - ${y.header.height}px)`;if(y.sticky!==!1){let c=y.header.template,g=(W,Y)=>{let w=U.groups[Y];if(!w)return;let G=c(w.key,w.groupIndex);if(typeof G==="string")W.innerHTML=G;else W.replaceChildren(G)};X=g1(Z.root,U,B.sizeCache,g,D,_.horizontal,a);let p=X;B.afterScroll.push((W,Y)=>{p.update(W)}),X.update(B.scrollController.getScrollTop())}let F=T.item?.striped,A=()=>{if(F!=="data"&&F!=="even"&&F!=="odd")return;let c=new Int32Array(N.length),g=F==="odd"?1:0,p=0;for(let W=0;W<N.length;W++)if(g0(N[W])){if(c[W]=-1,F==="even"||F==="odd")p=0}else c[W]=p+++g;B.setStripeIndexFn((W)=>{if(W<0||W>=c.length)return W;return c[W]})};A();let L=()=>{if(!U)return;U.rebuild(K.length),N=gJ(K,U.groups);let c=xJ(U,k,z);if(B.setSizeConfig(c),B.rebuildSizeCache(N.length),B.dataManager.setItems(N,0,N.length),A(),X)X.refresh()};B.methods.set("setItems",(c)=>{K=c.slice(),L()}),B.methods.set("appendItems",(c)=>{K.push(...c),L()}),B.methods.set("prependItems",(c)=>{K.unshift(...c),L()}),B.methods.set("removeItem",(c)=>{K=K.filter((g)=>g.id!==c),L()});let{animateScroll:f,cancelScroll:n}=e0(B.scrollController,B.renderIfNeeded);B.methods.set("scrollToIndex",(c,g)=>{let p=U.dataToLayoutIndex(c),{align:W,behavior:Y,duration:w}=u0(g),G=B.dataManager.getTotal(),E=B.adjustScrollPosition(KJ(p,B.sizeCache,B.state.viewportState.containerSize,G,W,B.getCachedCompression()));if(Y==="smooth")f(B.scrollController.getScrollTop(),E,w);else n(),B.scrollController.scrollTo(E)}),B.methods.set("_getItems",()=>K),B.methods.set("_getTotal",()=>K.length),B.methods.set("_isGroupHeader",(c)=>{let g=N[c];return!!(g&&g0(g))}),B.destroyHandlers.push(()=>{if(n(),X)X.destroy(),X=null;Z.root.classList.remove(`${D}--grouped`)})},destroy(){if(X)X.destroy(),X=null}}};var m1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,q=J.isHeaderFn,U={row:0,col:0},X=(S)=>{if(S<=0)return 0;if(!q)return Math.ceil(S/Q);let k=0,M=0,R=0;for(let z=0;z<S;z++)if(q(z)){if(R++,M>0)k++,M=0;k++,M=0}else if(M++,M>=Q)k++,M=0;if(M>0)k++;return k},K=(S)=>{return U.row=N(S),U.col=B(S),U},N=(S)=>{if(!q)return Math.floor(S/Q);let k=0,M=0;for(let R=0;R<=S;R++)if(q(R)){if(M>0)k++,M=0;if(R===S)return k;k++,M=0}else{if(R===S)return k;if(M++,M>=Q)k++,M=0}return console.warn(`⚠️ getRow(${S}) fell through - returning ${k}`),k},B=(S)=>{if(!q)return S%Q;if(q(S))return 0;let k=0;for(let M=0;M<=S;M++)if(q(M))k=0;else{if(M===S)return k;if(k++,k>=Q)k=0}return k},Z=(S,k,M)=>{if(M<=0)return{start:0,end:-1};if(!q){let C=Math.max(0,S*Q),x=Math.min(M-1,(k+1)*Q-1);return{start:C,end:x}}let R=-1,z=-1,v=0,r=0;for(let C=0;C<M;C++){if(q(C)){if(r>0)v++,r=0;if(v>=S&&v<=k){if(R===-1)R=C;z=C}v++,r=0}else{if(v>=S&&v<=k){if(R===-1)R=C;z=C}if(r++,r>=Q)v++,r=0}if(v>k&&r===0)break}if(R===-1)return{start:0,end:-1};return{start:R,end:z}},_=(S,k,M)=>{if(k<0||k>=Q)return-1;let R=S*Q+k;if(R<0||R>=M)return-1;return R},T=(S)=>{let k=(Q-1)*j;return Math.max(0,(S-k)/Q)};return{get columns(){return Q},get gap(){return j},update:(S)=>{if(S.columns!==void 0)Q=Math.max(1,Math.floor(S.columns));if(S.gap!==void 0)j=S.gap;if(S.isHeaderFn!==void 0)q=S.isHeaderFn},getTotalRows:X,getPosition:K,getRow:N,getCol:B,getItemRange:Z,getItemIndex:_,getColumnWidth:T,getColumnOffset:(S,k)=>{let M=T(k);return S*(M+j)}}};var L4=(J=200)=>{let Q=[];return{acquire:()=>{let X=Q.pop();if(X)return X;let K=document.createElement("div");return K.setAttribute("role","option"),K},release:(X)=>{if(X.remove(),Q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),X.removeAttribute("data-row"),X.removeAttribute("data-col"),Q.push(X)},clear:()=>{Q.length=0}}},F4=1,dJ=(J,Q,j,q,U,X,K,N,B=!1)=>{let Z=L4(),_=new Map,T=X,D=!1,y=0,S="",k=-1,M={selected:!1,focused:!1},R=(W,Y)=>{return M.selected=W,M.focused=Y,M},z=`${U}-item ${U}-grid-item`,v=`${U}-item--selected`,r=`${U}-item--focused`,C=`${U}-item--placeholder`,x=`${U}-item--replaced`,H=(W,Y)=>{if(typeof Y==="string")W.innerHTML=Y;else W.replaceChildren(Y)},d=(W,Y,w)=>{W.classList.toggle(v,Y),W.classList.toggle(r,w)},s=(W,Y)=>{let w=q.getRow(W);if(Y?.compression?.isCompressed)return JJ(w,Y.scrollPosition,j,Y.totalItems,Y.containerSize,Y.compression,Y.rangeStart);return j.getOffset(w)},o=(W,Y)=>{let w=D&&q.getCol(W)===0,G=w?0:q.getCol(W),E=w?0:q.getColumnOffset(G,T),V;if(D){let P=q.getRow(W),O=0,$=new Set;for(let u=0;u<W;u++){let i=q.getRow(u);if(i<P&&!$.has(i)){let J0=j.getSize(u);O+=J0,$.add(i)}}V=O}else V=s(W,Y);if(B)return`translate(${Math.round(V)}px, ${Math.round(E)}px)`;return`translate(${Math.round(E)}px, ${Math.round(V)}px)`},b=(W,Y)=>{W.style.transform=Y},h=(W,Y)=>{let w=W.dataset.id?.startsWith("__group_header"),G=w?T:q.getColumnWidth(T),E;if(D||w)E=j.getSize(Y)-q.gap;else{let V=q.getRow(Y);E=j.getSize(V)-q.gap}if(B)W.style.width=`${E}px`,W.style.height=`${G}px`;else W.style.width=`${G}px`,W.style.height=`${E}px`},I=(W,Y,w,G,E)=>{let V=Z.acquire(),P=R(w,G);if(V.className=z,V.dataset.index=String(W),V.dataset.id=String(Y.id),V.dataset.row=String(q.getRow(W)),V.dataset.col=String(q.getCol(W)),V.ariaSelected=String(w),N)V.id=`${N}-item-${W}`;if(K){let u=K();if(u!==k)k=u,S=String(u);V.setAttribute("aria-setsize",S),V.setAttribute("aria-posinset",String(W+1))}h(V,W);let O=Q(Y,W,P);if(H(V,O),String(Y.id).startsWith(h0))V.classList.add(C);return d(V,w,G),b(V,E),{element:V,lastItemId:Y.id,lastSelected:w,lastFocused:G,lastTransform:E,lastSeenFrame:y}},a=(W,Y,w,G,E)=>{if(y++,Y.start===0&&W.length>0)D=g0(W[0]);for(let[O,$]of _)if(O>=Y.start&&O<=Y.end)$.lastSeenFrame=y;else if(y-$.lastSeenFrame>F4)Z.release($.element),_.delete(O);let V=!1;if(K){let O=K();if(O!==k)k=O,S=String(O),V=!0}let P=null;for(let O=Y.start;O<=Y.end;O++){let $=O-Y.start,u=W[$];if(!u){console.warn(`⚠️ RENDER: Missing item at index ${O} (range: ${Y.start}-${Y.end}, items.length: ${W.length})`);continue}let i=w.has(u.id),J0=O===G,e=_.get(O);if(e){let U0=e.lastItemId!==u.id,t=e.lastSelected!==i,Q0=e.lastFocused!==J0;if(U0){let N0=String(e.lastItemId),W0=String(u.id),D0=N0.startsWith(h0),L0=W0.startsWith(h0);if(!L0&&p0(w,O,u.id))i=!0;let H0=R(i,J0),Z0=Q(u,O,H0);if(H(e.element,Z0),e.element.dataset.id=W0,e.element.dataset.row=String(q.getRow(O)),e.element.dataset.col=String(q.getCol(O)),h(e.element,O),e.element.classList.toggle(C,L0),D0&&!L0)e.element.classList.add(x),setTimeout(()=>e.element.classList.remove(x),300);e.lastItemId=u.id}if(U0||t||Q0)d(e.element,i,J0),e.element.ariaSelected=String(i),e.lastSelected=i,e.lastFocused=J0;let j0=o(O,E);if(e.lastTransform!==j0)b(e.element,j0),e.lastTransform=j0;if(V)e.element.setAttribute("aria-setsize",S)}else{if(p0(w,O,u.id))i=!0;let U0=o(O,E),t=I(O,u,i,J0,U0);if(!P)P=document.createDocumentFragment();P.appendChild(t.element),_.set(O,t)}}if(P)J.appendChild(P)},F=(W)=>{for(let[Y,w]of _){let G=o(Y,W);if(w.lastTransform!==G)b(w.element,G),w.lastTransform=G}},A=(W,Y,w,G)=>{let E=_.get(W);if(!E)return;let V=R(w,G),P=Q(Y,W,V);H(E.element,P),d(E.element,w,G),E.element.dataset.id=String(Y.id),E.element.ariaSelected=String(w),h(E.element,W),E.lastItemId=Y.id,E.lastSelected=w,E.lastFocused=G},L=(W,Y,w)=>{let G=_.get(W);if(!G)return;let E=G.lastSelected!==Y,V=G.lastFocused!==w;if(E||V)d(G.element,Y,w),G.lastSelected=Y,G.lastFocused=w},f=(W)=>{return _.get(W)?.element},n=(W)=>{if(Math.abs(W-T)<1)return;T=W;for(let[Y,w]of _){h(w.element,Y);let G=o(Y);b(w.element,G),w.lastTransform=G}},c=()=>{s0(J,_.keys(),(W)=>_.get(W)?.element)},g=()=>{for(let[,W]of _)Z.release(W.element);_.clear()};return{render:a,updatePositions:F,updateItem:A,updateItemClasses:L,getElement:f,sortDOM:c,updateContainerWidth:n,clear:g,destroy:()=>{g(),Z.clear()}}};var T4=new Set,cJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let Q=null,j=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(q){let{dom:U,emitter:X,config:K,rawConfig:N}=q,{classPrefix:B}=K;if(K.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let Z=K.horizontal,_=VJ(I0(N.padding),Z),T=()=>{return(Z?U.viewport.clientHeight:q.getContainerWidth())-_},D=N.items?.some((g)=>g.__groupHeader===!0),y={columns:J.columns,gap:J.gap??0};if(D)y.isHeaderFn=(g)=>{let p=q.dataManager.getItem(g);return!!(p&&p.__groupHeader===!0)};Q=m1(y);let S=Q.gap;q.setVirtualTotalFn(()=>{let g=q.dataManager.getTotal();return Q.getTotalRows(g)}),q.setItemToScrollIndexFn((g)=>Math.floor(g/y.columns)),q.methods.set("_getNavTotal",()=>q.dataManager.getTotal()),q.methods.set("_getNavDelta",()=>Z?{ud:1,lr:y.columns,cols:y.columns}:{ud:y.columns,lr:1,cols:y.columns});let k=N.item,M=K.horizontal?k.width:k.height,R={containerWidth:T(),columns:Q.columns,gap:Q.gap},z={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof M==="function")q.setSizeConfig((g)=>{let p=R.containerWidth-2,W=(R.columns-1)*R.gap;return z.containerWidth=R.containerWidth,z.columns=R.columns,z.gap=R.gap,z.columnWidth=(p-W)/R.columns,z.row=Q.getRow(g),z.column=Q.getCol(g),z.totalRows=Q.getTotalRows(q.dataManager.getTotal()),z.totalColumns=R.columns,M(g,z)+R.gap});else if(S>0)q.setSizeConfig(M+S);if(q.rebuildSizeCache(),S>0){let g=q.sizeCache.getTotalSize;q.sizeCache.getTotalSize=()=>{let p=g();return p>0?p-R.gap:0}}U.root.classList.add(`${B}--grid`);let v=T(),r=N.item.template,C=()=>{j=dJ(U.items,r,q.sizeCache,Q,B,v,()=>q.dataManager.getTotal(),K.ariaIdPrefix,K.horizontal),q.replaceRenderer(j)};C(),q.setUpdateItemClassesFn((g,p,W)=>{j?.updateItemClasses(g,p,W)}),q.methods.set("_updateRenderedItem",(g,p,W,Y)=>{j?.updateItem(g,p,W,Y)}),q.methods.set("_getGridLayout",()=>Q),q.methods.set("_getGridConfig",()=>y),q.methods.set("_replaceGridRenderer",(g)=>{j=g}),q.methods.set("_createGridRenderer",dJ),q.methods.set("_updateGridLayoutForGroups",(g)=>{Q.update({isHeaderFn:g});let p=q.dataManager.getTotal(),W=0;for(let Y=0;Y<p;Y++)if(Q.getCol(Y)===0){let w=q.sizeCache.getSize(Y);W+=w}q.sizeCache.getTotalSize=()=>W,q.updateContentSize(W),C()}),q.methods.set("updateGrid",(g)=>{if(g.columns!==void 0){if(!Number.isInteger(g.columns)||g.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");y.columns=g.columns}if(g.gap!==void 0){if(g.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");y.gap=g.gap}if(Q)Q.update(y);let p=T();if(R.containerWidth=p,R.columns=y.columns,R.gap=y.gap??0,j)j.updateContainerWidth(p);q.rebuildSizeCache(),q.updateContentSize(q.sizeCache.getTotalSize()),q.updateCompressionMode();for(let W=0;W<q.contentSizeHandlers.length;W++)q.contentSizeHandlers[W]();if(j)j.clear();q.forceRender()});let x=null,H=null,d=!1,s=()=>{if(d)return;d=!0,x=q.methods.get("_getSelectedIds")??null,H=q.methods.get("_getFocusedIndex")??null},o=-1,b=-1,h=!0,I=K.overscan,a={start:0,end:0},F={start:0,end:0},A=()=>{if(q.state.isDestroyed)return;let g=q.scrollController.getScrollTop(),p=q.state.viewportState.containerSize;if(!h&&g===o&&p===b)return;o=g,b=p,h=!1;let W=q.getVirtualTotal();q.getVisibleRange(g,p,W,a),F.start=Math.max(0,a.start-I),F.end=Math.min(W-1,a.end+I);let Y=q.state.viewportState;Y.scrollPosition=g,Y.visibleRange.start=a.start,Y.visibleRange.end=a.end,Y.renderRange.start=F.start,Y.renderRange.end=F.end;let w=q.state.lastRenderRange,G=Y.isCompressed,E=w.start!==F.start||w.end!==F.end;if(!E&&G){j.updatePositions(q.getCompressionContext());return}let V=q.dataManager.getTotal(),P=Q.getItemRange(F.start,F.end,V),O=q.dataManager.getItemsInRange(P.start,P.end),$=G?q.getCompressionContext():void 0;s();let u=x?x():T4,i=H?H():-1;if(j.render(O,P,u,i,$),E)w.start=F.start,w.end=F.end,X.emit("range:change",{range:{start:F.start,end:F.end}})},L=()=>{if(q.state.isDestroyed)return;q.state.lastRenderRange.start=-1,q.state.lastRenderRange.end=-1,h=!0,A()};q.setRenderFns(A,L);let f=typeof M==="function";q.resizeHandlers.push((g,p)=>{let W=(Z?p:g)-_;if(Math.abs(W-R.containerWidth)<1)return;if(R.containerWidth=W,j)j.updateContainerWidth(W);if(f){q.rebuildSizeCache(),q.updateContentSize(q.sizeCache.getTotalSize()),q.updateCompressionMode();for(let Y=0;Y<q.contentSizeHandlers.length;Y++)q.contentSizeHandlers[Y]();if(j)j.clear();q.forceRender()}});let{animateScroll:n,cancelScroll:c}=e0(q.scrollController,q.renderIfNeeded);if(q.methods.set("cancelScroll",c),q.methods.set("scrollToIndex",(g,p)=>{let W=Math.floor(g/J.columns),{align:Y,behavior:w,duration:G}=u0(p),E=q.dataManager.getState(),V=Q.getTotalRows(E.total),P=Math.max(0,Math.min(W,V-1)),O=q.adjustScrollPosition(KJ(P,q.sizeCache,q.state.viewportState.containerSize,V,Y,q.getCachedCompression()));if(w==="smooth")n(q.scrollController.getScrollTop(),O,G);else c(),q.scrollController.scrollTo(O)}),!q.methods.has("_getTotal"))q.methods.set("_getTotal",()=>q.dataManager.getTotal());q.idleHandlers.push(()=>{if(j)j.sortDOM()}),q.destroyHandlers.push(()=>{if(c(),j)j.destroy(),j=null;U.root.classList.remove(`${B}--grid`)})},destroy(){if(j)j.destroy(),j=null}}};var d1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,q=J.containerSize,U=0,X=[],K=()=>{let M=(Q-1)*j;U=Math.max(0,(q-M)/Q),X=Array(Q);let R=U+j;for(let z=0;z<Q;z++)X[z]=z*R};K();let N=[],B=0,Z=[],_=(M)=>{let R=0,z=M[0];for(let v=1;v<M.length;v++){let r=M[v];if(r<z)z=r,R=v}return R},T=(M,R)=>{if(M<=0)return B=0,N=[],[];let z=Array(Q).fill(0),v=Array(Q);for(let x=0;x<Q;x++)v[x]=[];let r=Array(M);for(let x=0;x<M;x++){let H=_(z),d=R(x),s=z[H];r[x]={index:x,x:X[H],y:s,lane:H,size:d,crossSize:U},v[H].push(x),z[H]=s+d+j}N=v;let C=0;for(let x=0;x<Q;x++){let H=z[x],d=H>0?H-j:0;if(d>C)C=d}return B=C,r},D=(M)=>{if(M.length===0)return B>0?B:0;if(B>0)return B;let R=Array(Q).fill(0);for(let v of M){let r=v.y+v.size,C=R[v.lane];if(r>C)R[v.lane]=r}let z=0;for(let v=0;v<Q;v++)if(R[v]>z)z=R[v];return z},y=(M,R,z)=>{if(M.length===0||z<=R)return Z.length=0,Z;if(N.length===0||N.length!==Q)return S(M,R,z);Z.length=0;for(let v=0;v<Q;v++){let r=N[v],C=r.length;if(C===0)continue;let x=0,H=C;while(x<H){let d=x+H>>>1,s=M[r[d]];if(s.y+s.size<=R)x=d+1;else H=d}for(let d=x;d<C;d++){let s=M[r[d]];if(s.y>=z)break;Z.push(s)}}return Z},S=(M,R,z)=>{let v=[];for(let r of M)if(r.y+r.size>R&&r.y<z)v.push(r);return v};return{get columns(){return Q},get gap(){return j},get containerSize(){return q},update:(M)=>{let R=!1;if(M.columns!==void 0){let z=Math.max(1,Math.floor(M.columns));if(z!==Q)Q=z,R=!0}if(M.gap!==void 0&&M.gap!==j)j=M.gap,R=!0;if(M.containerSize!==void 0&&M.containerSize!==q)q=M.containerSize,R=!0;if(R)K()},calculateLayout:T,getTotalSize:D,getVisibleItems:y}};var H4=(J=200)=>{let Q=[];return{acquire:()=>{let X=Q.pop();if(X)return X;let K=document.createElement("div");return K.setAttribute("role","option"),K},release:(X)=>{if(X.remove(),Q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),X.removeAttribute("data-lane"),Q.push(X)},clear:()=>{Q.length=0}}},k4=1,c1=(J,Q,j,q=!1,U,X)=>{let K=H4(),N=new Map,B=new Set,Z=0,_="",T=-1,D={selected:!1,focused:!1},y=(b,h)=>{return D.selected=b,D.focused=h,D},S=`${j}-item ${j}-masonry-item`,k=`${j}-item--selected`,M=`${j}-item--focused`,R=(b,h)=>{if(typeof h==="string")b.innerHTML=h;else b.replaceChildren(h)},z=(b,h,I)=>{b.classList.toggle(k,h),b.classList.toggle(M,I)},v=(b,h)=>{if(q)b.style.transform=`translate(${Math.round(h.y)}px, ${Math.round(h.x)}px)`;else b.style.transform=`translate(${Math.round(h.x)}px, ${Math.round(h.y)}px)`},r=(b,h)=>{if(q)b.style.width=`${h.size}px`,b.style.height=`${h.crossSize}px`;else b.style.width=`${h.crossSize}px`,b.style.height=`${h.size}px`},C=(b,h,I,a,F)=>{let A=K.acquire(),L=y(a,F);if(A.className=S,A.dataset.index=String(b),A.dataset.id=String(h.id),A.dataset.lane=String(I.lane),A.ariaSelected=String(a),X)A.id=`${X}-item-${b}`;if(U){let n=U();if(n!==T)T=n,_=String(n);A.setAttribute("aria-setsize",_),A.setAttribute("aria-posinset",String(b+1))}r(A,I);let f=Q(h,b,L);return R(A,f),z(A,a,F),v(A,I),{element:A,lastItemId:h.id,lastSelected:a,lastFocused:F,lastY:I.y,lastX:I.x,lastSize:I.size,lastCrossSize:I.crossSize,lastSeenFrame:Z}},x=(b,h,I,a)=>{Z++,B.clear();for(let A=0;A<h.length;A++)B.add(h[A].index);for(let[A,L]of N)if(B.has(A))L.lastSeenFrame=Z;else if(Z-L.lastSeenFrame>k4)K.release(L.element),N.delete(A);let F=null;for(let A=0;A<h.length;A++){let L=h[A],f=L.index,n=b(f);if(!n)continue;let c=I.has(n.id),g=f===a,p=N.get(f);if(p){let W=p.lastItemId!==n.id,Y=p.lastSelected!==c,w=p.lastFocused!==g,G=p.lastY!==L.y||p.lastX!==L.x,E=p.lastSize!==L.size||p.lastCrossSize!==L.crossSize;if(W){let V=y(c,g),P=Q(n,f,V);R(p.element,P),p.element.dataset.id=String(n.id),p.lastItemId=n.id}if(W||Y||w)z(p.element,c,g),p.element.ariaSelected=String(c),p.lastSelected=c,p.lastFocused=g;if(E)r(p.element,L),p.lastSize=L.size,p.lastCrossSize=L.crossSize;if(G)v(p.element,L),p.lastY=L.y,p.lastX=L.x}else{let W=C(f,n,L,c,g);if(!F)F=document.createDocumentFragment();F.appendChild(W.element),N.set(f,W)}}if(F)J.appendChild(F)},H=()=>{for(let{element:b}of N.values())K.release(b);N.clear(),J.innerHTML=""};return{render:x,getElement:(b)=>N.get(b)?.element,updateItemClasses:(b,h,I)=>{let a=N.get(b);if(!a)return;let F=a.lastSelected!==h,A=a.lastFocused!==I;if(F||A)z(a.element,h,I),a.lastSelected=h,a.lastFocused=I},sortDOM:()=>{s0(J,N.keys(),(b)=>N.get(b)?.element)},clear:H,destroy:()=>{H(),K.clear()}}};var b4=new Set,$4=100,lJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let Q=null,j=null,q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(U){let{dom:X,emitter:K,config:N,rawConfig:B}=U,Z=N.classPrefix,_=N.horizontal;if(N.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");X.root.classList.add(`${Z}--masonry`);let T=I0(B.padding),D=VJ(T,_),y=a0(T,_),S=()=>{return(_?X.viewport.clientHeight:X.viewport.clientWidth)-D},k={columns:J.columns,gap:J.gap??0,containerSize:S()};Q=d1(k);let M=B.item,R=_&&B.item.width?B.item.width:M.height,z={containerWidth:0,columns:0,gap:0,columnWidth:0},v=typeof R==="function"?(V)=>R(V,z):()=>R,r=()=>{let V=U.dataManager.getTotal(),P=Q;z.containerWidth=P.containerSize,z.columns=P.columns,z.gap=P.gap;let O=(P.columns-1)*P.gap;z.columnWidth=Math.max(0,(z.containerWidth-O)/P.columns),q=P.calculateLayout(V,v),s();let $=Q.getTotalSize(q);U.sizeCache.getTotalSize=()=>$,U.updateContentSize($)},C=B.item.template;j=c1(X.items,C,Z,_,()=>U.dataManager.getTotal(),N.ariaIdPrefix),U.setUpdateItemClassesFn((V,P,O)=>{j?.updateItemClasses(V,P,O)});let x=[],H=new Int32Array(0),d=[],s=()=>{let V=k.columns,P=q.length;if(x=Array.from({length:V},()=>[]),H.length<P)H=new Int32Array(P);for(let O=0;O<P;O++){let $=q[O],u=x[$.lane].length;x[$.lane].push(O),H[O]=u}d=Array(V);for(let O=0;O<V;O++){let $=x[O],u=new Float64Array($.length);for(let i=0;i<$.length;i++){let J0=q[$[i]];u[i]=J0.y+J0.size*0.5}d[O]=u}};U.methods.set("_getNavTotal",()=>U.dataManager.getTotal());let o=(V,P)=>{let O=V.length;if(O===0)return-1;if(O===1)return 0;let $=0,u=O-1;while($<u){let i=$+u>>1;if(V[i]<P)$=i+1;else u=i}if($>0&&Math.abs(V[$-1]-P)<=Math.abs(V[$]-P))return $-1;return $};U.methods.set("_navigate",(V,P,O)=>{let $=q[V];if(!$)return V;let u=$.lane,i=k.columns,J0=H[V],e=x[u];switch(_?P==="ArrowDown"?"ArrowRight":P==="ArrowUp"?"ArrowLeft":P==="ArrowRight"?"ArrowDown":P==="ArrowLeft"?"ArrowUp":P:P){case"ArrowDown":{if(J0+1<e.length)return e[J0+1];return V}case"ArrowUp":{if(J0>0)return e[J0-1];return V}case"ArrowRight":{if(u>=i-1)return V;let t=u+1,Q0=$.y+$.size*0.5,j0=x[t];if(j0.length===0)return V;let N0=o(d[t],Q0);return N0>=0?j0[N0]:V}case"ArrowLeft":{if(u<=0)return V;let t=u-1,Q0=$.y+$.size*0.5,j0=x[t];if(j0.length===0)return V;let N0=o(d[t],Q0);return N0>=0?j0[N0]:V}case"Home":return 0;case"End":return O-1;case"PageDown":{let t=U.state.viewportState.containerSize,Q0=$.size>0?$.size:150,j0=Math.max(1,Math.floor(t/Q0)),N0=Math.min(J0+j0,e.length-1);return e[N0]}case"PageUp":{let t=U.state.viewportState.containerSize,Q0=$.size>0?$.size:150,j0=Math.max(1,Math.floor(t/Q0)),N0=Math.max(0,J0-j0);return e[N0]}}return V}),U.methods.set("_scrollItemIntoView",(V)=>{let P=q[V];if(!P)return;let O=U.scrollController.getScrollTop(),$=U.state.viewportState.containerSize,u=P.y,i=u+P.size,J0=O+$;if(u<O)U.scrollController.scrollTo(U.adjustScrollPosition(Math.max(0,u)));else if(i>J0)U.scrollController.scrollTo(U.adjustScrollPosition(i-$))});let b=null,h=null,I=!1,a=()=>{if(I)return;I=!0,b=U.methods.get("_getSelectedIds")??null,h=U.methods.get("_getFocusedIndex")??null},F=(V)=>U.dataManager.getItem(V),A=-1,L=-1,f=!0,n=N.overscan*$4,c=()=>{if(U.state.isDestroyed)return;a();let V=U.scrollController.getScrollTop(),P=U.state.viewportState.containerSize;if(!f&&V===A&&P===L)return;A=V,L=P,f=!1;let O=Math.max(0,V-n),$=V+P+n,u=Q.getVisibleItems(q,O,$),i=b?b():b4,J0=h?h():-1;if(j&&u.length>0)j.render(F,u,i,J0);let e=U.state.viewportState;e.scrollPosition=V;let U0=u.length,t=U0>0?u[0].index:0,Q0=U0>0?u[U0-1].index:0;e.visibleRange.start=t,e.visibleRange.end=Q0,e.renderRange.start=t,e.renderRange.end=Q0;let j0=U.state.lastRenderRange;if(j0.start!==t||j0.end!==Q0)j0.start=t,j0.end=Q0,K.emit("range:change",{range:{start:t,end:Q0}})},g=()=>{U.state.lastRenderRange.start=-1,U.state.lastRenderRange.end=-1,f=!0,c()};U.setRenderFns(c,g);let p=(V,P)=>{let O=(_?P:V)-D;if(Q&&Q.containerSize!==O){if(Q.update({containerSize:O}),r(),j)j.clear();g()}};U.resizeHandlers.push(p);let W=()=>{r(),g()},Y=U.dataManager,w=(V)=>{if(typeof Y[V]!=="function")return;let P=Y[V].bind(Y);Y[V]=(...O)=>{P(...O),W()}};w("setItems"),w("appendItems"),w("prependItems"),w("updateItem"),w("removeItem");let{animateScroll:G,cancelScroll:E}=e0(U.scrollController,U.renderIfNeeded);U.methods.set("cancelScroll",E),U.methods.set("scrollToIndex",(V,P)=>{let O=q[V];if(!O)return;let{align:$,behavior:u,duration:i}=u0(P),J0=O.y,e=U.state.viewportState.containerSize,U0=J0;if($==="center")U0=J0-e/2+O.size/2;else if($==="end"){U0=J0-e+O.size;let t=Q.getTotalSize(q);if(V===q.length-1)U0=Math.max(0,t+y-e)}if(U0=Math.max(0,U0),U0=U.adjustScrollPosition(U0),u==="smooth")G(U.scrollController.getScrollTop(),U0,i);else E(),U.scrollController.scrollTo(U0)}),r(),U.idleHandlers.push(()=>{if(j)j.sortDOM()}),U.destroyHandlers.push(()=>{if(E(),j)j.destroy();X.root.classList.remove(`${Z}--masonry`)})}}};var rJ=(J)=>{let Q=J?.mode??"single",j=J?.followFocus??!1,q=J?.initial,U=J?.shiftArrowToggle??"origin",X=J?.focusOnClick??!1,K=b1(q),N=null,B=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(Z){let{dom:_,emitter:T,config:D}=Z,{classPrefix:y,ariaIdPrefix:S}=D;if(Q==="none"){Z.methods.set("select",()=>{}),Z.methods.set("deselect",()=>{}),Z.methods.set("toggleSelect",()=>{}),Z.methods.set("selectAll",()=>{}),Z.methods.set("clearSelection",()=>{}),Z.methods.set("getSelected",()=>[]),Z.methods.set("getSelectedItems",()=>[]),Z.methods.set("setSelectionMode",()=>{}),Z.methods.set("selectNext",()=>{}),Z.methods.set("selectPrevious",()=>{}),Z.methods.set("_focusById",()=>{}),Z.methods.set("_getFocusedId",()=>{return});return}_.root.classList.add(`${y}--selectable`);let k=Z.methods.get("_isGroupHeader"),M=(W)=>k?k(W):!1,R=(W,Y,w)=>{if(!k)return W;let G=W;while(G>=0&&G<w){if(!M(G))return G;G+=Y}G=W-Y;while(G>=0&&G<w){if(!M(G))return G;G-=Y}return W},z=new Map,v=()=>{z.clear();let W=Z.dataManager.getTotal(),Y=Z.dataManager.getCached();if(Y===0)return;if(Y>=W){for(let G=0;G<W;G++){let E=Z.dataManager.getItem(G);if(E)z.set(E.id,G)}return}let w=Z.dataManager.getStorage();if(w&&typeof w.getLoadedRanges==="function"){let G=w.getLoadedRanges();for(let E of G)for(let V=E.start;V<=E.end;V++){let P=Z.dataManager.getItem(V);if(P&&!P._isPlaceholder)z.set(P.id,V)}}};T.on("data:change",({type:W,id:Y})=>{if(W==="remove")K.selected.delete(Y),v()}),T.on("load:end",({items:W,offset:Y})=>{if(!W||W.length===0)return;if(Y!==void 0)for(let w=0;w<W.length;w++){let G=W[w];if(G&&G.id!==void 0)z.set(G.id,Y+w)}else v()}),v(),Z.methods.set("_getSelectedIds",()=>{return K.selected}),Z.methods.set("_getFocusedIndex",()=>{return K.focusVisible?K.focusedIndex:-1});let{forceRender:r}=Z.getRenderFns(),C=()=>{r();let W=(Y)=>{let w=z.get(Y);if(w===void 0)return;return Z.dataManager.getItem(w)};T.emit("selection:change",{selected:zJ(K),items:CJ(K,W)})},x=I0(Z.rawConfig.padding),H=D.horizontal?x.left:x.top,d=D.horizontal?x.right:x.bottom,s=Z.getItemToScrollIndexFn(),o=null,b=null,h=null,I=!1,a=()=>{if(I)return;I=!0,o=Z.methods.get("_getNavDelta")??null,b=Z.methods.get("_navigate")??null,h=Z.methods.get("_scrollItemIntoView")??null},F=()=>{return a(),o?o():{ud:1,lr:0,cols:0}},A=(W)=>{if(W<0)return;if(a(),h)h(W);else{let Y=Z.state.viewportState.containerSize,w=Z.state.viewportState.scrollPosition,G=Z.dataManager.getTotal(),E=Z.getCachedCompression(),{visibleRange:V}=Z.state.viewportState,P=s(W),O=_J(P,Z.sizeCache,w,Y,H,d,E,G,V);if(O!==w)Z.scrollController.scrollTo(Z.adjustScrollPosition(O))}},L=()=>{let W=s(Math.max(0,K.focusedIndex)),Y=Z.sizeCache.getSize(W),{ud:w}=F();return Math.max(w,Math.floor(Z.state.viewportState.containerSize/Y)*w)};N=document.createElement("div"),N.setAttribute("aria-live","polite"),N.setAttribute("aria-atomic","true"),N.className=`${y}-live-region`,N.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",(_.root.getAttribute("role")==="grid"?_.root.parentElement??_.root:_.root).appendChild(N);let n=N;T.on("selection:change",({selected:W})=>{let Y=W.length;if(Y===0)n.textContent="";else if(Y===1)n.textContent="1 item selected";else n.textContent=`${Y} items selected`});let c=()=>{if(Z.state.isDestroyed)return;if(!_.root.matches(":focus-visible"))return;let W=Z.dataManager.getTotal();if(W===0)return;let Y=K.focusedIndex>=0?Math.min(K.focusedIndex,W-1):0;Y=R(Y,1,W),K=c0(K,Y),K.focusVisible=!0,_.root.setAttribute("aria-activedescendant",`${S}-item-${Y}`),A(Y);let w=Z.dataManager.getItem(Y);if(w)Z.renderer.updateItemClasses(Y,K.selected.has(w.id),!0)};if(D.interactive)_.root.addEventListener("focusin",c);let g=(W)=>{if(Z.state.isDestroyed)return;let Y=W.relatedTarget;if(Y&&_.root.contains(Y))return;let w=K.focusedIndex;if(K.focusVisible=!1,_.root.removeAttribute("aria-activedescendant"),w>=0){let G=Z.dataManager.getItem(w);if(G)Z.renderer.updateItemClasses(w,K.selected.has(G.id),!1)}};if(D.interactive)_.root.addEventListener("focusout",g);if(Z.clickHandlers.push((W)=>{if(Z.state.isDestroyed)return;let w=W.target.closest("[data-index]");if(!w)return;let G=parseInt(w.dataset.index??"-1",10);if(G<0)return;let E=Z.dataManager.getItem(G);if(!E)return;if(M(G))return;if(T.emit("item:click",{item:E,index:G,event:W}),Q==="multiple"&&W.shiftKey&&K.focusedIndex>=0){let V=B>=0?B:K.focusedIndex,P=Z.getAllLoadedItems();K=GJ(K,P,V,G,Q),K=c0(K,G),K.focusVisible=X,B=G,_.root.setAttribute("aria-activedescendant",`${S}-item-${G}`),C();return}B=G,K=c0(K,G),K.focusVisible=X,_.root.setAttribute("aria-activedescendant",`${S}-item-${G}`),K=t0(K,E.id,Q),C()}),D.interactive)Z.keydownHandlers.push((W)=>{if(Z.state.isDestroyed)return;let Y=Z.dataManager.getTotal(),w=K.focusedIndex,G=!1,E=!1,V=K;if(a(),b)switch(W.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let P=b(K.focusedIndex,W.key,Y);if(P!==K.focusedIndex)V=c0(K,P),V.focusVisible=!0,G=!0,E=!0;else{W.preventDefault();return}break}}if(!G)switch(W.key){case"ArrowUp":V=DJ(K,Y,D.wrap,F().ud),V.focusVisible=!0,G=!0,E=!0;break;case"ArrowDown":V=MJ(K,Y,D.wrap,F().ud),V.focusVisible=!0,G=!0,E=!0;break;case"ArrowLeft":{let{lr:P}=F();if(P)V=DJ(K,Y,D.wrap,P),V.focusVisible=!0,G=!0,E=!0;break}case"ArrowRight":{let{lr:P}=F();if(P)V=MJ(K,Y,D.wrap,P),V.focusVisible=!0,G=!0,E=!0;break}case"PageUp":V=wJ(K,Y,L(),"up"),V.focusVisible=!0,G=!0,E=!0;break;case"PageDown":V=wJ(K,Y,L(),"down"),V.focusVisible=!0,G=!0,E=!0;break;case"Home":{V=$1(K,Y),V.focusVisible=!0,G=!0,E=!0;break}case"End":{V=y1(K,Y),V.focusVisible=!0,G=!0,E=!0;break}}switch(W.key){case" ":case"Enter":if(W.key===" "&&W.shiftKey&&Q==="multiple"&&K.focusedIndex>=0){if(B>=0){let P=Z.getAllLoadedItems();V=GJ(V,P,B,K.focusedIndex,Q)}V.focusVisible=!0,G=!0;break}if(K.focusedIndex>=0&&!M(K.focusedIndex)){let P=Z.dataManager.getItem(K.focusedIndex);if(P)V=t0(K,P.id,Q),V.focusVisible=!0;B=K.focusedIndex,G=!0}break;case"a":if((W.ctrlKey||W.metaKey)&&Q==="multiple"){let P=Z.getAllLoadedItems();if(K.selected.size===P.length)V=PJ(V);else V=RJ(V,P,Q);V.focusVisible=!0,G=!0,E=!1}break}if(E&&k){let P=V.focusedIndex>w?1:-1;V.focusedIndex=R(V.focusedIndex,P,Y)}if(W.shiftKey&&Q==="multiple"&&E&&V.focusedIndex>=0){let P=W.key==="ArrowUp"||W.key==="ArrowDown"||W.key==="ArrowLeft"||W.key==="ArrowRight",O=(W.ctrlKey||W.metaKey)&&(W.key==="Home"||W.key==="End");if(P){if(U==="origin"){if(w>=0){let $=Z.dataManager.getItem(w);if($)V=t0(V,$.id,Q)}}else{let $=Z.dataManager.getItem(V.focusedIndex);if($)V=t0(V,$.id,Q)}B=V.focusedIndex,E=!1}else if(O){let $=Z.getAllLoadedItems(),u=w>=0?w:V.focusedIndex;V=GJ(V,$,u,V.focusedIndex,Q),B=V.focusedIndex,E=!1}}if(j&&Q==="single"&&E&&V.focusedIndex>=0){let P=Z.dataManager.getItem(V.focusedIndex);if(P)V=i0(V,[P.id],Q);E=!1}if(G){W.preventDefault(),K=V;let P=K.focusedIndex;if(P>=0)A(P),_.root.setAttribute("aria-activedescendant",`${S}-item-${P}`);else _.root.removeAttribute("aria-activedescendant");if(E){let{selected:O}=K;if(w>=0&&w!==P){let $=Z.dataManager.getItem(w);if($)Z.renderer.updateItemClasses(w,O.has($.id),!1)}if(P>=0){let $=Z.dataManager.getItem(P);if($)Z.renderer.updateItemClasses(P,O.has($.id),!0)}}else C();if(P>=0&&P!==w){let O=Z.dataManager.getItem(P);if(O)T.emit("focus:change",{id:O.id,index:P})}}});Z.methods.set("select",(...W)=>{K=i0(K,W,Q),C()}),Z.methods.set("deselect",(...W)=>{K=yJ(K,W),C()}),Z.methods.set("toggleSelect",(W)=>{K=t0(K,W,Q),C()}),Z.methods.set("selectAll",()=>{if(Q!=="multiple")return;let W=Z.getAllLoadedItems();K=RJ(K,W,Q),v(),C()}),Z.methods.set("clearSelection",()=>{K=PJ(K),C()}),Z.methods.set("getSelected",()=>{return zJ(K)}),Z.methods.set("getSelectedItems",()=>{return CJ(K,(Y)=>{let w=z.get(Y);return w===void 0?void 0:Z.dataManager.getItem(w)})});let p=(W)=>{let Y=Z.dataManager.getTotal();if(Y===0)return;if(a(),b){let V=W==="next"?"ArrowDown":"ArrowUp",P=b(K.focusedIndex,V,Y);K=c0(K,P)}else{let{ud:V}=F();K=W==="next"?MJ(K,Y,D.wrap,V):DJ(K,Y,D.wrap,V)}let w=W==="next"?1:-1;K.focusedIndex=R(K.focusedIndex,w,Y);let G=K.focusedIndex,E=Z.dataManager.getItem(G);if(!E)return;K=i0(K,[E.id],Q),A(G),C()};Z.methods.set("selectNext",()=>{p("next")}),Z.methods.set("selectPrevious",()=>{p("previous")}),Z.methods.set("_focusById",(W)=>{let Y=z.get(W);if(Y!==void 0){let G=Z.dataManager.getItem(Y);if(!G||G.id!==W)Y=void 0}if(Y===void 0){if(v(),Y=z.get(W),Y===void 0)return}K=c0(K,Y);let w=Z.dataManager.getItem(Y);if(w)T.emit("focus:change",{id:w.id,index:Y})}),Z.methods.set("_getFocusedId",()=>{let W=K.focusedIndex;if(W<0)return;return Z.dataManager.getItem(W)?.id}),Z.destroyHandlers.push(()=>{if(n&&n.parentNode)n.remove();_.root.removeEventListener("focusin",c),_.root.removeEventListener("focusout",g)})},destroy(){if(N&&N.parentNode)N.remove();N=null}}};var y4=(J)=>{try{let Q=sessionStorage.getItem(J);if(!Q)return;return JSON.parse(Q)}catch{return}},aJ=(J)=>{let Q=J?.autoSave,j=Q?y4(Q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(q){q.methods.set("getScrollSnapshot",()=>{let X=q.scrollController.getScrollTop(),K=q.getCachedCompression(),N=q.getVirtualTotal(),B=q.methods.get("getSelected"),Z=B&&B().length>0?B():void 0;if(N===0){let S={index:0,offsetInItem:0,total:0};if(Z)S.selectedIds=Z;return S}let _,T;if(K.isCompressed){let k=X/K.virtualSize*N;_=Math.max(0,Math.min(Math.floor(k),N-1)),T=(k-_)*q.sizeCache.getSize(_)}else _=q.sizeCache.indexAtOffset(X),T=X-q.sizeCache.getOffset(_);T=Math.max(0,T);let D={index:_,offsetInItem:T,total:N};if(Z)D.selectedIds=Z;let y=q.methods.get("_getFocusedId");if(y){let S=y();if(S!==void 0)D.focusedId=S}return D});let U=(X)=>{let{index:K,offsetInItem:N,selectedIds:B,focusedId:Z}=X,_=q.getVirtualTotal();if(_===0&&X.total&&X.total>0){q.dataManager.setTotal(X.total),q.sizeCache.rebuild(X.total),q.updateCompressionMode();let C=q.getCachedCompression();if(!C.isCompressed)q.updateContentSize(C.virtualSize)}else if(_===0)return;if(!Number.isFinite(K)||!Number.isFinite(N))return;let T=q.getVirtualTotal();if(q.sizeCache.getTotal()!==T){q.sizeCache.rebuild(T),q.updateCompressionMode();let C=q.getCachedCompression();if(!C.isCompressed)q.updateContentSize(C.virtualSize)}let y=q.getCachedCompression(),S=Math.max(0,Math.min(K,T-1)),k;if(y.isCompressed){let C=q.sizeCache.getSize(S),x=C>0?N/C:0;k=(S+x)/T*y.virtualSize}else k=q.sizeCache.getOffset(S)+N;let M=q.state.viewportState.containerSize,R=y.isCompressed?q.state.viewportState.totalSize:y.virtualSize,z=Math.max(0,R-M);if(k=Math.max(0,Math.min(k,z)),q.scrollController.scrollTo(k),B&&B.length>0){let C=q.methods.get("select");if(C)C(...B)}let v=q.methods.get("loadVisibleRange"),r=()=>{if(Z===void 0)return;let C=q.methods.get("_focusById");if(C)C(Z)};if(v){let x=0,H=k,d=()=>{x++;let s=q.state.viewportState.containerSize,o=q.scrollController.getScrollTop();if(s>0){if(Math.abs(o-H)>1)q.scrollController.scrollTo(H);v().then(r)}else if(x<10)requestAnimationFrame(d)};requestAnimationFrame(d)}else{let C=q.methods.get("reload");if(C)requestAnimationFrame(()=>{C().then(r)});else requestAnimationFrame(r)}};if(q.methods.set("restoreScroll",U),Q){let X=!!j,K=()=>{if(X)return;let N=q.methods.get("getScrollSnapshot");if(!N)return;let B=N();try{sessionStorage.setItem(Q,JSON.stringify(B))}catch{}};if(q.idleHandlers.push(()=>{if(X)X=!1;K()}),q.emitter.on("selection:change",K),q.emitter.on("focus:change",K),j&&j.total&&j.total>0){let N=q.methods.get("_cancelAutoLoad");if(N)N();q.dataManager.setTotal(j.total)}}if(j)queueMicrotask(()=>{U(j)})}}};var l1=(J,Q=50,j=1/0,q=!0)=>{let U=J,X=[],K=0,N=()=>{X=U.map((M,R)=>({def:M,index:R,width:0,minWidth:R4(M.minWidth??Q,1),maxWidth:M.maxWidth??j,resizable:M.resizable??q,offset:0}))},B=(M)=>{if(X.length===0){K=0;return}let R=0,z=0;for(let v=0;v<X.length;v++){let r=X[v],C=r.def;if(C.width!==void 0)r.width=sJ(C.width,r.minWidth,r.maxWidth),R+=r.width;else z++}if(z>0){let r=Math.max(0,M-R)/z;for(let C=0;C<X.length;C++){let x=X[C];if(x.def.width===void 0)x.width=sJ(r,x.minWidth,x.maxWidth)}}Z()},Z=()=>{let M=0;for(let R=0;R<X.length;R++){let z=X[R];z.offset=M,M+=z.width}K=M},_=(M,R)=>{if(M<0||M>=X.length)return 0;let z=X[M];if(!z.resizable)return z.width;let v=sJ(R,z.minWidth,z.maxWidth);return z.width=v,Z(),v},T=(M)=>{return X[M]},D=(M)=>{if(X.length===0)return;if(M<0)return X[0];if(M>=K)return X[X.length-1];let R=0,z=X.length-1;while(R<z){let v=R+z>>>1,r=X[v];if(M<r.offset)z=v-1;else if(M>=r.offset+r.width)R=v+1;else return r}return X[R]},y=(M)=>{if(M<0||M>=X.length)return 0;return X[M].offset},S=(M)=>{if(M<0||M>=X.length)return 0;return X[M].width},k=(M)=>{U=M,N()};return N(),{get columns(){return X},get totalWidth(){return K},resolve:B,updateColumns:k,resizeColumn:_,getColumn:T,getColumnAtX:D,getColumnOffset:y,getColumnWidth:S}},sJ=(J,Q,j)=>Math.min(j,Math.max(Q,J)),R4=(J,Q)=>Math.max(Q,J);var r1=(J,Q,j,q,U,X)=>{let K=document.createElement("div");K.setAttribute("role","rowgroup");let N=document.createElement("div");N.className=`${j}-table-header`,N.setAttribute("role","row"),N.setAttribute("aria-rowindex","1"),N.style.height=`${Q}px`;let B=document.createElement("div");B.className=`${j}-table-header-scroll`,B.setAttribute("role","presentation"),N.appendChild(B),K.appendChild(N),J.insertBefore(K,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let Z=[],_=[],T=[],D=!0,y=null,S="asc",k=null,M=!1,R=-1,z=0,v=0,r=(A,L)=>{let f=document.createElement("div");f.className=`${j}-table-header-cell`,f.setAttribute("role","columnheader"),f.setAttribute("aria-colindex",String(L+1)),f.dataset.columnKey=A.def.key;let n=A.def.align;if(n==="center")f.classList.add(`${j}-table-header-cell--center`);else if(n==="right")f.classList.add(`${j}-table-header-cell--right`);let c=document.createElement("div");c.className=`${j}-table-header-content`;let g=A.def.header?A.def.header(A.def):A.def.label;if(typeof g==="string")c.textContent=g;else c.appendChild(g);if(f.appendChild(c),A.def.sortable){let p=document.createElement("span");p.className=`${j}-table-header-sort`,p.setAttribute("aria-hidden","true"),f.appendChild(p),T.push(p),f.classList.add(`${j}-table-header-cell--sortable`)}else T.push(null);if(A.resizable){let p=document.createElement("div");p.className=`${j}-table-header-resize`,p.dataset.resizeIndex=String(L),f.appendChild(p),_.push(p)}return f},C=(A)=>{k=A,B.textContent="",Z=[],_=[],T=[];let L=A.columns;for(let f=0;f<L.length;f++){let n=L[f],c=r(n,f);Z.push(c),B.appendChild(c)}if(x(A),y)H(y,S)},x=(A)=>{k=A;let L=A.columns;B.style.width=`${A.totalWidth}px`;for(let f=0;f<Z.length&&f<L.length;f++){let n=Z[f],c=L[f];n.style.width=`${c.width}px`}},H=(A,L)=>{if(y=A,S=L,!k)return;let f=k.columns;for(let n=0;n<T.length&&n<f.length;n++){let c=T[n];if(!c)continue;if(f[n].def.key===A&&A!==null)c.textContent=L==="asc"?"▲":"▼",c.style.opacity="0.7",Z[n].setAttribute("aria-sort",L==="asc"?"ascending":"descending");else c.textContent="",c.style.opacity="0",Z[n].removeAttribute("aria-sort")}},d=(A)=>{B.style.transform=`translateX(${-A}px)`},s=(A)=>{let L=A.target;if(!L.dataset.resizeIndex)return;if(A.preventDefault(),A.stopPropagation(),R=parseInt(L.dataset.resizeIndex,10),!k)return;let f=k.getColumn(R);if(!f||!f.resizable)return;M=!0,z=A.clientX,v=f.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",L.classList.add(`${j}-table-header-resize--active`),L.setPointerCapture(A.pointerId),L.addEventListener("pointermove",o),L.addEventListener("pointerup",b),L.addEventListener("pointercancel",b)},o=(A)=>{if(!M||!k)return;let L=A.clientX-z;if(Math.abs(L)<1)return;let f=Math.max(0,v+L);q(R,f)},b=(A)=>{if(!M)return;let L=A.target;L.removeEventListener("pointermove",o),L.removeEventListener("pointerup",b),L.removeEventListener("pointercancel",b);try{L.releasePointerCapture(A.pointerId)}catch{}L.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",M=!1,R=-1},h=(A)=>{let L=A.target;if(L.dataset.resizeIndex!==void 0)return;if(M)return;let f=L;while(f&&!f.dataset.columnKey)if(f=f.parentElement,f===N||f===null)return;if(!f||!f.dataset.columnKey)return;let n=f.dataset.columnKey;if(!k)return;let c=k.columns,g=-1;for(let W=0;W<c.length;W++)if(c[W].def.key===n){g=W;break}if(g===-1)return;let p=c[g];if(X)X({key:n,index:g,event:A});if(p.def.sortable&&U){let W;if(y===n)if(S==="asc")W="desc";else W=null;else W="asc";U({key:n,index:g,direction:W})}};return N.addEventListener("pointerdown",s),N.addEventListener("click",h),{element:N,update:x,updateSort:H,rebuild:C,show:()=>{if(D)return;D=!0,N.style.display=""},hide:()=>{if(!D)return;D=!1,N.style.display="none"},destroy:()=>{N.removeEventListener("pointerdown",s),N.removeEventListener("click",h),J.style.removeProperty("--vlist-table-header-height"),K.remove(),Z=[],_=[],T=[],k=null,D=!1},syncScroll:d}};var P4=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Q)=>{if(Q.parentNode?.removeChild(Q),J.length<200)Q.className="",Q.removeAttribute("data-id"),Q.removeAttribute("data-index"),Q.removeAttribute("aria-selected"),Q.removeAttribute("aria-rowindex"),Q.removeAttribute("role"),Q.style.cssText="",Q.textContent="",J.push(Q)},clear:()=>{J.length=0}}},a1=(J,Q,j,q,U,X,K,N,B)=>{let Z=P4(),_=new Map,T=-1,D=j,y=null,S=null,k=null,M=(O,$)=>{S=O,k=$},R=(O,$)=>{if($)O.setAttribute("aria-selected","true");else O.removeAttribute("aria-selected")},z=(O,$,u,i)=>{O.setAttribute("role",$),O.setAttribute("data-id",String(u)),O.setAttribute("data-index",String(i))},v=(O)=>String(O).startsWith("__placeholder_"),r=`${U}-item ${U}-table-row`,C=`${U}-item--selected`,x=`${U}-item--focused`,H=`${U}-table-cell`,d=`${U}-table-cell--center`,s=`${U}-table-cell--right`,o=`${U}-item--odd`,b=`${U}-item--placeholder`,h=`${U}-item--replaced`,I=`${U}-item ${U}-table-row ${U}-table-group-header`,a=`${U}-table-group-header-content`,F=(O,$,u,i,J0=!1)=>{if(u.def.cell){let e=u.def.cell($,u.def,i);if(typeof e==="string")O.innerHTML=e;else O.replaceChildren(e)}else{let e=$[u.def.key],U0=e!=null?String(e):"";if(J0&&U0)O.innerHTML=`<span>${U0}</span>`;else O.textContent=U0}},A=(O,$,u,i,J0=!1)=>{let e=r;if(N){if(y){let U0=y($);if(U0>=0&&(U0&1)===1)e+=` ${o}`}else if(($&1)===1)e+=` ${o}`}if(J0)e+=` ${b}`;if(u)e+=` ${C}`;if(i)e+=` ${x}`;O.className=e},L=(O,$,u)=>{if(u?.compression?.isCompressed)return Math.round(JJ(O,u.scrollPosition,$,u.totalItems,u.containerSize,u.compression,u.rangeStart));return $.getOffset(O)},f=(O,$)=>{let u=$.def.align;if(u==="center")O.classList.add(d),O.classList.remove(s);else if(u==="right")O.classList.add(s),O.classList.remove(d);else O.classList.remove(d,s)},n=(O,$)=>{let i=D.columns.length;if($.length===i)return $;let J0=[];for(let e=0;e<i;e++){let U0;if(e<$.length)U0=$[e];else U0=document.createElement("div"),U0.className=H,O.appendChild(U0);J0.push(U0)}for(let e=i;e<$.length;e++)$[e].remove();return J0},c=(O,$,u,i)=>{let J0=Z.acquire(),e=O,U0=u.getSize($),t=L($,u,i);J0.style.cssText=`width:${D.totalWidth}px;height:${U0}px;transform:translateY(${t}px)`,J0.className=I,z(J0,"presentation",O.id,$),J0.removeAttribute("aria-selected"),J0.removeAttribute("aria-rowindex"),J0.replaceChildren();let Q0=document.createElement("div");if(Q0.className=a,k){let j0=k(e.groupKey,e.groupIndex);if(typeof j0==="string")Q0.innerHTML=j0;else Q0.appendChild(j0)}return J0.appendChild(Q0),{element:J0,cells:[],index:$,isGroupHeader:!0,lastItemId:O.id,lastSelected:!1,lastFocused:!1,lastOffset:t,lastHeight:U0}},g=(O,$,u,i,J0,e)=>{let U0=Z.acquire(),t=J0.getSize($),Q0=L($,J0,e),j0=v(O.id);U0.style.cssText=`width:${D.totalWidth}px;height:${t}px;transform:translateY(${Q0}px)`,A(U0,$,u,i,j0),z(U0,"row",O.id,$),U0.id=`${X}-${$}`,U0.setAttribute("aria-rowindex",String($+2)),R(U0,u);let N0=n(U0,[]),W0=D.columns;for(let D0=0;D0<N0.length&&D0<W0.length;D0++){let L0=N0[D0],H0=W0[D0];L0.style.cssText=`left:${H0.offset}px;width:${H0.width}px`,L0.setAttribute("role","gridcell"),L0.setAttribute("aria-colindex",String(D0+1)),f(L0,H0),F(L0,O,H0,$,j0)}return{element:U0,cells:N0,index:$,isGroupHeader:!1,lastItemId:O.id,lastSelected:u,lastFocused:i,lastOffset:Q0,lastHeight:t}},p=(O,$,u,i,J0)=>{for(let[j0,N0]of _)if(j0<$.start||j0>$.end)Z.release(N0.element),_.delete(j0);let e=!1,U0=K();if(U0!==T)T=U0,e=!0;let t=null,Q0=Q();y=typeof N==="string"&&B?B():null;for(let j0=$.start;j0<=$.end;j0++){let N0=j0-$.start,W0=O[N0];if(!W0)continue;let D0=u.has(W0.id),L0=j0===i,H0=S?S(W0):!1,Z0=_.get(j0);if(Z0){if(Z0.isGroupHeader!==H0){Z.release(Z0.element),_.delete(j0);let O0=H0?c(W0,j0,Q0,J0):g(W0,j0,D0,L0,Q0,J0);if(_.set(j0,O0),!t)t=document.createDocumentFragment();t.appendChild(O0.element);continue}if(H0){if(Z0.lastItemId!==W0.id){let M0=W0,V0=Z0.element.firstElementChild;if(V0&&k){let $0=k(M0.groupKey,M0.groupIndex);if(typeof $0==="string")V0.innerHTML=$0;else V0.replaceChildren($0)}Z0.element.setAttribute("data-id",String(W0.id)),Z0.lastItemId=W0.id}let B0=L(j0,Q0,J0);if(Z0.lastOffset!==B0)Z0.lastOffset=B0,Z0.element.style.transform=`translateY(${B0}px)`;let G0=Q0.getSize(j0);if(Z0.lastHeight!==G0)Z0.lastHeight=G0,Z0.element.style.height=`${G0}px`}else{let O0=Z0.lastItemId!==W0.id,B0=Z0.lastSelected!==D0,G0=Z0.lastFocused!==L0;if(O0){let $0=Z0.lastItemId!=null&&v(Z0.lastItemId),F0=v(W0.id);if(!F0&&p0(u,j0,W0.id))D0=!0;let m=D.columns;for(let Y0=0;Y0<Z0.cells.length&&Y0<m.length;Y0++)F(Z0.cells[Y0],W0,m[Y0],j0,F0);if(A(Z0.element,j0,D0,L0,F0),Z0.element.setAttribute("data-id",String(W0.id)),R(Z0.element,D0),$0&&!F0)Z0.element.classList.add(h),setTimeout(()=>{Z0.element.classList.remove(h)},300);Z0.lastItemId=W0.id,Z0.lastSelected=D0,Z0.lastFocused=L0}else if(B0||G0)A(Z0.element,j0,D0,L0,v(W0.id)),R(Z0.element,D0),Z0.lastSelected=D0,Z0.lastFocused=L0;let M0=L(j0,Q0,J0);if(Z0.lastOffset!==M0)Z0.lastOffset=M0,Z0.element.style.transform=`translateY(${M0}px)`;let V0=Q0.getSize(j0);if(Z0.lastHeight!==V0)Z0.lastHeight=V0,Z0.element.style.height=`${V0}px`;if(e)Z0.element.setAttribute("aria-rowindex",String(j0+2))}}else{if(p0(u,j0,W0.id))D0=!0;let O0=H0?c(W0,j0,Q0,J0):g(W0,j0,D0,L0,Q0,J0);if(_.set(j0,O0),!t)t=document.createDocumentFragment();t.appendChild(O0.element)}}if(t)J.appendChild(t)},W=(O)=>{let $=Q();for(let[u,i]of _){let J0=L(u,$,O);if(i.lastOffset!==J0)i.lastOffset=J0,i.element.style.transform=`translateY(${J0}px)`}},Y=(O,$,u,i)=>{let J0=_.get(O);if(!J0)return;if(J0.isGroupHeader)return;let e=D.columns;for(let U0=0;U0<J0.cells.length&&U0<e.length;U0++)F(J0.cells[U0],$,e[U0],O);J0.element.setAttribute("data-id",String($.id)),J0.lastItemId=$.id,A(J0.element,O,u,i),R(J0.element,u),J0.lastSelected=u,J0.lastFocused=i},w=(O,$,u)=>{let i=_.get(O);if(!i)return;if(i.isGroupHeader)return;let J0=i.lastSelected!==$,e=i.lastFocused!==u;if(J0||e)A(i.element,O,$,u),R(i.element,$),i.lastSelected=$,i.lastFocused=u},G=(O)=>{D=O;let $=O.columns;for(let[,u]of _)if(u.element.style.width=`${O.totalWidth}px`,u.cells.length>0)for(let i=0;i<u.cells.length&&i<$.length;i++){let J0=u.cells[i],e=$[i];J0.style.left=`${e.offset}px`,J0.style.width=`${e.width}px`}},E=(O)=>{return _.get(O)?.element},V=()=>{for(let[,O]of _)Z.release(O.element);_.clear(),T=-1};return{render:p,updatePositions:W,updateItem:Y,updateItemClasses:w,getElement:E,updateColumnLayout:G,setGroupHeaderFn:M,clear:V,destroy:()=>{V(),Z.clear()}}};var w4=new Set,oJ=(J)=>{if(!J.columns||J.columns.length===0)throw Error("[vlist] withTable: columns must be a non-empty array");if(J.rowHeight===void 0&&J.estimatedRowHeight===void 0)throw Error("[vlist] withTable: either rowHeight or estimatedRowHeight is required");let Q=null,j=null,q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(U){let{dom:X,emitter:K,config:N}=U,{classPrefix:B}=N;if(N.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(N.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let Z=J.resizable??!0,_=J.minColumnWidth??50,T=J.maxColumnWidth??1/0,D=J.columnBorders??!1,y=J.rowBorders??!0,S=J.rowHeight,k=U.rawConfig.padding,M=!k?0:typeof k==="number"?k*2:k.length===2?k[1]*2:k[1]+k[3],R=J.headerHeight??(typeof S==="number"?S:40),z=J.sort?.key??null,v=J.sort?.direction??"asc";if(Q=l1(J.columns,_,T,Z),typeof S==="function")U.setSizeConfig(S);else if(typeof S==="number")U.setSizeConfig(S);if(U.rebuildSizeCache(),X.root.classList.add(`${B}--table`),y)X.root.classList.add(`${B}--table-row-borders`);if(D)X.root.classList.add(`${B}--table-col-borders`);X.root.setAttribute("role","grid"),X.root.setAttribute("aria-colcount",String(J.columns.length));let r=-1,C=X.items.getAttribute("aria-label");if(C)X.root.setAttribute("aria-label",C),X.items.removeAttribute("aria-label");X.items.setAttribute("role","rowgroup"),X.viewport.setAttribute("role","none"),X.content.setAttribute("role","none"),X.viewport.removeAttribute("tabindex");let x=U.getContainerWidth()-M;Q.resolve(x);let H=(E,V)=>{if(!Q)return;let P=Q.getColumn(E);if(!P)return;let O=P.width,$=Q.resizeColumn(E,V);if(j)j.update(Q);if(q)q.updateColumnLayout(Q);o(),K.emit("column:resize",{key:P.def.key,index:E,previousWidth:O,width:$})},d=(E)=>{if(E.direction===null)z=null,v="asc";else z=E.key,v=E.direction;if(j)j.updateSort(z,v);K.emit("column:sort",E)},s=(E)=>{K.emit("column:click",E)};if(j=r1(X.root,R,B,H,d,s),j.rebuild(Q),z)j.updateSort(z,v);let o=()=>{if(!Q)return;let E=Q.totalWidth;X.content.style.minWidth=`${E}px`,X.items.style.minWidth=`${E}px`};o(),q=a1(X.items,()=>U.sizeCache,Q,J.columns,B,N.ariaIdPrefix,()=>U.dataManager.getTotal(),U.rawConfig.item?.striped,()=>U.getStripeIndexFn());let b=null,h=null,I=!1,a=()=>{if(I)return;I=!0,b=U.methods.get("_getSelectedIds")??null,h=U.methods.get("_getFocusedIndex")??null},F=-1,A=-1,L=-1,f=!0,n=N.overscan,c={start:0,end:0},g={start:0,end:0},p=()=>{if(U.state.isDestroyed)return;let E=U.scrollController.getScrollTop(),V=U.state.viewportState.containerSize,P=U.getVirtualTotal(),O=U.state.viewportState.isCompressed;if(!f&&E===F&&V===A&&P===L)return;F=E,A=V,L=P,f=!1;let $=P+1;if($!==r)r=$,X.root.setAttribute("aria-rowcount",String($));U.getVisibleRange(E,V,P,c),g.start=Math.max(0,c.start-n),g.end=Math.min(P-1,c.end+n);let u=U.state.viewportState;u.scrollPosition=E,u.visibleRange.start=c.start,u.visibleRange.end=c.end,u.renderRange.start=g.start,u.renderRange.end=g.end;let i=U.state.lastRenderRange,J0=i.start!==g.start||i.end!==g.end;if(!J0&&O){q.updatePositions(U.getCompressionContext());return}if(!J0)return;let e=O?U.getCompressionContext():void 0,U0=U.dataManager.getItemsInRange(g.start,g.end);a();let t=b?b():w4,Q0=h?h():-1;q.render(U0,g,t,Q0,e),i.start=g.start,i.end=g.end,K.emit("range:change",{range:{start:g.start,end:g.end}})},W=()=>{if(U.state.isDestroyed)return;U.state.lastRenderRange.start=-1,U.state.lastRenderRange.end=-1,f=!0,p()};U.setRenderFns(p,W),U.setUpdateItemClassesFn((E,V,P)=>{q?.updateItemClasses(E,V,P)});let Y=j,w=-1,G=()=>{let E=X.viewport.scrollLeft;if(E!==w){if(w=E,Y.syncScroll)Y.syncScroll(E)}};U.afterScroll.push(G),X.viewport.addEventListener("scroll",G,{passive:!0}),U.resizeHandlers.push((E,V)=>{if(!Q)return;if(Q.resolve(E-M),j)j.update(Q);if(q)q.updateColumnLayout(Q);o()}),U.methods.set("updateColumns",(E)=>{if(!Q||!j)return;if(Q.updateColumns(E),Q.resolve(U.getContainerWidth()-M),j.rebuild(Q),z)j.updateSort(z,v);if(o(),q)q.updateColumnLayout(Q),q.clear();U.forceRender()}),U.methods.set("resizeColumn",(E,V)=>{if(!Q)return;let P;if(typeof E==="string"){let O=Q.columns;P=-1;for(let $=0;$<O.length;$++)if(O[$].def.key===E){P=$;break}if(P===-1)return}else P=E;H(P,V)}),U.methods.set("getColumnWidths",()=>{if(!Q)return{};let E={},V=Q.columns;for(let P=0;P<V.length;P++)E[V[P].def.key]=V[P].width;return E}),U.methods.set("setSort",(E,V)=>{if(z=E,v=V??"asc",j)j.updateSort(z,v)}),U.methods.set("getSort",()=>{return{key:z,direction:v}}),U.methods.set("_getTableLayout",()=>Q),U.methods.set("_updateRenderedItem",(E,V,P,O)=>{q?.updateItem(E,V,P,O)}),U.methods.set("_replaceTableRenderer",(E)=>{q=E}),U.methods.set("_updateTableForGroups",(E,V)=>{if(q)q.setGroupHeaderFn(E,V)}),U.methods.set("_getTableHeaderHeight",()=>R),U.keydownHandlers.push((E)=>{if(E.key!=="ArrowLeft"&&E.key!=="ArrowRight")return;if(!Q)return;let V=Q.columns;if(V.length===0)return;let P=X.viewport.clientWidth;if(Q.totalWidth<=P)return;let O=X.viewport.scrollLeft;if(E.key==="ArrowRight"){for(let $=0;$<V.length;$++)if(V[$].offset>O+1){X.viewport.scrollLeft=V[$].offset,E.preventDefault();return}}else{for(let $=V.length-1;$>=0;$--)if(V[$].offset<O-1){X.viewport.scrollLeft=V[$].offset,E.preventDefault();return}if(O>0)X.viewport.scrollLeft=0,E.preventDefault()}}),U.contentSizeHandlers.push(()=>{o()}),U.destroyHandlers.push(()=>{if(X.viewport.removeEventListener("scroll",G),j)j.destroy(),j=null;if(q)q.destroy(),q=null;X.content.style.minWidth="",X.items.style.minWidth="",X.root.classList.remove(`${B}--table`),X.root.removeAttribute("role"),X.root.removeAttribute("aria-colcount"),X.viewport.removeAttribute("role"),X.viewport.setAttribute("tabindex","-1"),X.content.removeAttribute("role");let E=X.root.getAttribute("aria-label");if(E)X.items.setAttribute("aria-label",E),X.root.removeAttribute("aria-label");X.root.removeAttribute("aria-rowcount"),X.items.setAttribute("role","listbox")})},destroy(){if(j)j.destroy(),j=null;if(q)q.destroy(),q=null}}};var nJ=(J)=>{let Q=J?.handle??null,j=J?.ghostClass??"vlist-sort-ghost",q=J?.shiftDuration??150,U=J?.edgeScrollZone??40,X=J?.edgeScrollSpeed??20,K=J?.dragThreshold??5;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable"],setup(N){let{dom:B,emitter:Z,config:_}=N,{classPrefix:T}=_,D=_.horizontal,y=D?"translateX":"translateY",S=q>0?`transform ${q}ms ease`:"none",k=!1,M=-1,R=-1,z=0,v=0,r=0,C=0,x=!1,H=null,d=0,s=null,o=0,b=0,h=0,I=null;N.methods.set("isSorting",()=>k||u);let a=(m)=>{return m.closest("[data-index]")},F=(m)=>{let Y0=m.dataset.index;return Y0===void 0?-1:+Y0},A=(m)=>{let Y0=m.getBoundingClientRect(),K0=m.cloneNode(!0);return K0.className=`${T}-item ${j}`,K0.removeAttribute("data-index"),K0.style.cssText=["position:fixed","pointer-events:none","z-index:10000",`width:${Y0.width}px`,`height:${Y0.height}px`,`left:${Y0.left}px`,`top:${Y0.top}px`,"transition:none","will-change:transform"].join(";"),document.body.appendChild(K0),K0},L=()=>{if(!H)return;let m=r-b,Y0=C-h;H.style.left=`${m}px`,H.style.top=`${Y0}px`},f=()=>{let m=N.dataManager.getTotal();if(m===0)return 0;let Y0=B.viewport.getBoundingClientRect(),K0=N.scrollController.getScrollTop(),_0=D?r>z:C>v,A0=D?r-b+(_0?o:0):C-h+(_0?o:0),T0=D?A0-Y0.left+B.viewport.scrollLeft+K0:A0-Y0.top+K0,y0=B.items.querySelectorAll("[data-index]"),k0=m;for(let C0=0;C0<y0.length;C0++){let z0=y0[C0],R0=F(z0);if(R0<0)continue;if(R0===M)continue;let l0=N.sizeCache.getOffset(R0),EJ=N.sizeCache.getSize(R0),LJ=l0+EJ/2;if(T0<LJ){k0=R0>M?R0-1:R0;break}}if(k0===m)k0=m-1;return Math.max(0,Math.min(k0,m-1))},n=()=>{let m=B.items.children,Y0=o;for(let K0=0;K0<m.length;K0++){let _0=m[K0],A0=F(_0);if(A0<0||A0===M)continue;let T0=0;if(R>M){if(A0>M&&A0<=R)T0=-Y0}else if(R<M){if(A0>=R&&A0<M)T0=Y0}let y0=Math.round(N.sizeCache.getOffset(A0)+T0);_0.style.transition=S,_0.style.transform=`${y}(${y0}px)`}},c=()=>{let m=B.items.children;for(let Y0=0;Y0<m.length;Y0++){let K0=m[Y0],_0=F(K0);if(_0>=0)K0.style.transform=`${y}(${Math.round(N.sizeCache.getOffset(_0))}px)`;K0.style.transition=""}},g=()=>{let m=f();if(m===R)return;R=m,n(),Z.emit("sort:move",{fromIndex:M,currentIndex:R})},p=!1,W=()=>{let m=B.viewport.getBoundingClientRect();if(D)return r<m.left||r>m.right;return C<m.top||C>m.bottom},Y=()=>{let m=()=>{if(!k)return;let Y0=B.viewport.getBoundingClientRect(),K0=0,_0=3;if(D){let T0=r-Y0.left,y0=Y0.right-r;if(T0<U){let k0=Math.min(_0,1-T0/U);K0=-X*k0*k0}else if(y0<U){let k0=Math.min(_0,1-y0/U);K0=X*k0*k0}}else{let T0=C-Y0.top,y0=Y0.bottom-C;if(T0<U){let k0=Math.min(_0,1-T0/U);K0=-X*k0*k0}else if(y0<U){let k0=Math.min(_0,1-y0/U);K0=X*k0*k0}}let A0=W();if(K0!==0){let T0=N.scrollController.getScrollTop(),y0=N.sizeCache.getTotalSize()-(D?B.viewport.clientWidth:B.viewport.clientHeight);if(K0<0&&T0<=0||K0>0&&T0>=y0)p=A0;else p=!0,N.scrollController.scrollTo(T0+K0)}else p=A0;d=requestAnimationFrame(m)};d=requestAnimationFrame(m)},w=()=>{if(d)cancelAnimationFrame(d),d=0},G=(m=!1)=>{if(k=!1,x=!1,H&&H.parentNode)H.remove();if(H=null,s)s.style.opacity="",s.style.pointerEvents="",s=null;if(!m)c();if(w(),B.root.classList.remove(`${T}--sorting`),document.removeEventListener("pointermove",V),document.removeEventListener("pointerup",O),document.removeEventListener("pointercancel",$),!m)N.forceRender()},E=(m)=>{if(N.state.isDestroyed)return;if(k)return;if(u)Z0();if(m.button!==0)return;let Y0=m.target;if(Q){if(!Y0.closest(Q))return}let K0=a(Y0);if(!K0)return;let _0=F(K0);if(_0<0)return;z=m.clientX,v=m.clientY,r=m.clientX,C=m.clientY,M=_0,x=!1,s=K0;let A0=K0.getBoundingClientRect();b=m.clientX-A0.left,h=m.clientY-A0.top,document.addEventListener("pointermove",V),document.addEventListener("pointerup",O),document.addEventListener("pointercancel",$)},V=(m)=>{if(r=m.clientX,C=m.clientY,!x){let Y0=r-z,K0=C-v;if(Math.sqrt(Y0*Y0+K0*K0)<K)return;if(x=!0,k=!0,R=M,B.root.classList.add(`${T}--sorting`),o=N.sizeCache.getSize(M),s)H=A(s),s.style.opacity="0",s.style.pointerEvents="none";let A0=t();if(A0>=0){let T0=N.dataManager.getItem(A0);I=T0?T0.id:null}else I=null;Z.emit("sort:start",{index:M}),Y()}if(k){if(m.preventDefault(),L(),!p)g();else if(W()){if(R!==M)R=M,c()}}},P=(m,Y0)=>{if(!H){let C0=m!==Y0&&m>=0&&Y0>=0;if(C0){let z0=B.items.children;for(let R0=0;R0<z0.length;R0++)z0[R0].style.transition="none";if(B.root.classList.remove(`${T}--sorting`),Z.emit("sort:end",{fromIndex:m,toIndex:Y0}),I!==null)Q0(I),N.forceRender()}if(G(C0),C0)requestAnimationFrame(()=>{let z0=B.items.children;for(let R0=0;R0<z0.length;R0++)z0[R0].style.transition=""});return}let K0=B.viewport.getBoundingClientRect(),_0=N.scrollController.getScrollTop(),A0=N.sizeCache.getOffset(Y0),T0=q>0?q:150;if(H.style.transition=`left ${T0}ms ease, top ${T0}ms ease`,D)H.style.left=`${K0.left-B.viewport.scrollLeft+A0-_0}px`,H.style.top=`${K0.top}px`;else H.style.left=`${K0.left}px`,H.style.top=`${K0.top+A0-_0}px`;let y0=!1,k0=()=>{if(y0)return;y0=!0,H?.removeEventListener("transitionend",k0);let C0=m!==Y0&&m>=0&&Y0>=0;if(C0){if(s)s.style.opacity="",s.style.pointerEvents="";let z0=B.items.children;for(let R0=0;R0<z0.length;R0++)z0[R0].style.transition="none";if(B.root.classList.remove(`${T}--sorting`),Z.emit("sort:end",{fromIndex:m,toIndex:Y0}),I!==null)Q0(I),N.forceRender()}if(G(C0),C0)requestAnimationFrame(()=>{let z0=B.items.children;for(let R0=0;R0<z0.length;R0++)z0[R0].style.transition=""})};H.addEventListener("transitionend",k0),setTimeout(k0,T0+50)},O=(m)=>{if(!x){document.removeEventListener("pointermove",V),document.removeEventListener("pointerup",O),document.removeEventListener("pointercancel",$),s=null;return}m.preventDefault(),document.removeEventListener("pointermove",V),document.removeEventListener("pointerup",O),document.removeEventListener("pointercancel",$),w(),P(M,R)},$=()=>{G()};B.items.addEventListener("pointerdown",E);let u=!1,i="",J0=-1,e=-1,U0=[],t=()=>{let m=N.methods.get("_getFocusedIndex");return m?m():-1},Q0=(m)=>{let Y0=N.methods.get("_focusById");if(Y0)Y0(m)},j0=(m)=>{let Y0=D?B.viewport.clientWidth:B.viewport.clientHeight,K0=N.scrollController.getScrollTop(),_0=YJ(m,N.sizeCache,K0,Y0);if(_0!==K0)N.scrollController.scrollTo(N.adjustScrollPosition(_0))},N0=(m)=>{B.liveRegion.textContent="",B.liveRegion.offsetHeight,B.liveRegion.textContent=m},W0=(m)=>{let Y0=N.dataManager.getItem(m);if(!Y0)return"";return B.items.querySelector(`[data-index="${m}"]`)?.textContent?.trim()||String(Y0.id)},D0=()=>String(N.dataManager.getTotal()),L0=(m)=>{let Y0=N.dataManager.getItem(m);if(!Y0)return;u=!0,i=Y0.id,J0=m,e=m;let K0=N.dataManager.getTotal();U0=[];for(let _0=0;_0<K0;_0++)U0.push(N.dataManager.getItem(_0));B.root.classList.add(`${T}--sorting`),Z.emit("sort:start",{index:m}),M0(),N0(`Grabbed ${W0(m)}. Current position ${m+1} of ${D0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},H0=()=>{if(!u)return;u=!1;let m=e,Y0=W0(m),K0=B.items.children;for(let _0=0;_0<K0.length;_0++)K0[_0].style.transition="none";B.root.classList.remove(`${T}--sorting`),G0(),Q0(i),N.forceRender(),N0(`${Y0} dropped. Final position ${m+1} of ${D0()}.`),U0=[],requestAnimationFrame(()=>{let _0=B.items.children;for(let A0=0;A0<_0.length;A0++)_0[A0].style.transition=""})},Z0=()=>{if(!u)return;u=!1;let m=J0,Y0=B.items.children;for(let K0=0;K0<Y0.length;K0++)Y0[K0].style.transition="none";if(B.root.classList.remove(`${T}--sorting`),G0(),e!==m)Z.emit("sort:cancel",{originalItems:U0});Q0(i),N.forceRender(),j0(m),N0(`Reorder cancelled. Returned to position ${m+1} of ${D0()}.`),U0=[],requestAnimationFrame(()=>{let K0=B.items.children;for(let _0=0;_0<K0.length;_0++)K0[_0].style.transition=""})},O0=(m)=>{if(!u)return;let Y0=N.dataManager.getTotal(),K0=e+m;if(K0<0||K0>=Y0)return;let _0=e,A0=K0,T0=B.items.children;for(let y0=0;y0<T0.length;y0++)T0[y0].style.transition="none";Z.emit("sort:end",{fromIndex:_0,toIndex:A0}),e=A0,Q0(i),N.forceRender(),j0(A0),M0(),N0(`${W0(A0)} moved. New position ${A0+1} of ${D0()}.`),requestAnimationFrame(()=>{let y0=B.items.children;for(let k0=0;k0<y0.length;k0++)y0[k0].style.transition=""})},B0=`${T}-item--kb-sorting`,G0=()=>{let m=B.items.querySelectorAll(`.${B0}`);for(let Y0=0;Y0<m.length;Y0++)m[Y0].classList.remove(B0)},M0=()=>{G0();let m=B.items.querySelector(`[data-id="${i}"]`);if(m)m.classList.add(B0)};N.afterRenderBatch.push(()=>{if(u)M0()});let V0=(m)=>{if(N.state.isDestroyed)return;if(k)return;if(u)switch(m.key){case" ":case"Enter":m.preventDefault(),m.stopImmediatePropagation(),H0();return;case"Escape":m.preventDefault(),m.stopImmediatePropagation(),Z0();return;case"ArrowUp":case"ArrowLeft":m.preventDefault(),m.stopImmediatePropagation(),O0(-1);return;case"ArrowDown":case"ArrowRight":m.preventDefault(),m.stopImmediatePropagation(),O0(1);return;default:if(!m.key.startsWith("F")&&m.key!=="Tab")m.preventDefault(),m.stopImmediatePropagation();return}if(m.key===" "&&!m.shiftKey&&!m.ctrlKey&&!m.metaKey){let Y0=t();if(Y0>=0)m.preventDefault(),m.stopImmediatePropagation(),L0(Y0)}};B.root.addEventListener("keydown",V0);let $0=`${T}-sort-instructions`,F0=document.createElement("div");F0.id=$0,F0.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",F0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",B.root.appendChild(F0),N.afterRenderBatch.push((m)=>{for(let Y0=0;Y0<m.length;Y0++){let K0=m[Y0].element;K0.setAttribute("aria-roledescription","sortable item"),K0.setAttribute("aria-describedby",$0)}}),N.destroyHandlers.push(()=>{if(u)Z0();G(),B.items.removeEventListener("pointerdown",E),B.root.removeEventListener("keydown",V0),F0.remove()})}}};var s1=(J,Q)=>{let j=new Map,q=(X)=>{let K=j.get(X);return K!==void 0?K:J},U=d0(q,Q);return{getOffset(X){return U.getOffset(X)},getSize(X){return q(X)},indexAtOffset(X){return U.indexAtOffset(X)},getTotalSize(){return U.getTotalSize()},getTotal(){return U.getTotal()},rebuild(X){if(X<U.getTotal()){for(let K of j.keys())if(K>=X)j.delete(K)}U=d0(q,X)},isVariable(){return!0},setMeasuredSize(X,K){j.set(X,K)},isMeasured(X){return j.has(X)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var iJ=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(Q){let j=Q.config.horizontal,U=Q.rawConfig.item,X=j?U.estimatedWidth:U.estimatedHeight;if(X==null||X<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let K=U.gap??0,N=Q.getVirtualTotal(),B=I0(Q.rawConfig.padding),Z=a0(B,j),_=s1(X+K,N),T=Q.methods.get("_setSizeCache"),D=Q.methods.get("_setConstrainSize");if(!T||!D)throw Error("[vlist/withAutoSize] Incompatible builder version");T(_),D((C)=>_.isMeasured(C));let y=new WeakMap,S=0,k=!1,M=2,R=(C)=>{let x=Q.scrollController.getScrollTop(),H=Q.state.viewportState.containerSize;if(H<=0)return!1;let d=Math.max(0,C+Z-H);return x>=d-M},z=()=>{let C=_.getTotalSize(),x=Q.state.viewportState.containerSize;if(x<=0)return;let H=Math.max(0,C+Z-x),d=Q.scrollController.getScrollTop();if(H>d)Q.scrollController.scrollTo(H)},v=()=>{let C=_.getTotalSize();Q.updateContentSize(C)},r=()=>{if(k){let C=Q.dom.viewport,x=C.scrollHeight,H=x-C.clientHeight,d=Q.scrollController.getScrollTop(),s=H>0&&d>=H-M,o=Q.getVirtualTotal(),b=Q.state.viewportState.renderRange.end,h=o>0&&b>=o-1,I=_.getTotalSize()+Z,a=Math.abs(I-x),F=h&&H>0&&d>=H-a-M,A=s||F;if(v(),k=!1,A)C.scrollHeight,z(),Q.forceRender()}};J=new ResizeObserver((C)=>{if(Q.state.isDestroyed)return;let x=!1,H=Q.state.viewportState.visibleRange.start;for(let L of C){let f=y.get(L.target);if(f===void 0)continue;let n=j?L.borderBoxSize[0].inlineSize:L.borderBoxSize[0].blockSize;if(!_.isMeasured(f)){let c=n+K,g=_.getSize(f);if(_.setMeasuredSize(f,c),x=!0,f<H&&c!==g)S+=c-g;J.unobserve(L.target);let p=L.target;if(j)p.style.width=`${n}px`;else p.style.height=`${n}px`}}if(!x)return;let d=_.getTotalSize();if(_.rebuild(Q.getVirtualTotal()),S!==0){let L=Q.scrollController.getScrollTop();Q.scrollController.scrollTo(L+S),S=0}let s=R(d),o=Q.getVirtualTotal(),b=Q.state.viewportState.renderRange.end,h=o>0&&b>=o-1,I=Q.dom.viewport,a=I.scrollHeight-I.clientHeight,F=Q.scrollController.getScrollTop(),A=a>0&&F>=a-M;if(s||h||!Q.scrollController.isScrolling()){if(v(),k=!1,s||h&&A)I.scrollHeight,z()}else k=!0;Q.forceRender()}),Q.afterRenderBatch.push((C)=>{for(let{index:x,element:H}of C)if(!_.isMeasured(x))y.set(H,x),J.observe(H)}),Q.idleHandlers.push(r),Q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var z4=50,C4=0.1;function o1(J){let Q=0,j=0,q=0;function U(){return q>0?j/q:0}function X(B){if(Q=B,B>C4&&B<z4)j+=B,q++}function K(){let B=J.getTotal();if(B===0)return 0;let Z=J.getItemSize();if(Z<=0)return 0;let _=J.getContainerSize();if(_<=0)return 0;let T=J.getScrollPosition(),D=typeof J.getColumns==="function"?J.getColumns():1,S=Math.ceil(B/D)*Z,M=Math.min(S,n0)-_,R=S-_,z=M>0?R/M:1,v=T*z,r=Math.ceil((v+_)/Z);return Math.min(r*D,B)}function N(){let B=J.getTotal(),Z=K();return{progress:B>0?Math.min(100,Math.max(0,Z/B*100)):0,velocity:Q,velocityAvg:U(),itemCount:Z,total:B}}return{getState:N,onVelocity:X}}export{oJ as withTable,nJ as withSortable,aJ as withSnapshots,rJ as withSelection,fJ as withScrollbar,IJ as withScale,pJ as withPage,lJ as withMasonry,mJ as withGroups,cJ as withGrid,iJ as withAutoSize,hJ as withAsync,SJ as vlist,o1 as createStats};