vlist 1.6.1 → 1.6.3

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 eJ=2,J1=(J=0)=>({velocity:0,sampleCount:0}),Q1=(J,Q)=>{let j=performance.now(),Y=J._lt??j,U=J._lp??Q,q=j-Y;if(J._lp=Q,J._lt=j,q===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(q>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(Q-U)/q,J.sampleCount=Math.min(J.sampleCount+1,5),J};var e1=(J,Q)=>{let j=Q;return{getOffset:(Y)=>Y*J,getSize:(Y)=>J,indexAtOffset:(Y)=>{if(j===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(Y/J),j-1))},getTotalSize:()=>j*J,getTotal:()=>j,rebuild:(Y)=>{j=Y},isVariable:()=>!1}},J4=(J,Q)=>{let j=Q,Y=new Float64Array(0),U=(B)=>{j=B,Y=new Float64Array(B+1),Y[0]=0;for(let _=0;_<B;_++)Y[_+1]=Y[_]+J(_)};U(Q);let q=(B)=>{if(j===0)return 0;if(B<=0)return 0;if(B>=Y[j])return j-1;let _=0,K=j-1;while(_<K){let Z=_+K+1>>>1;if(Y[Z]<=B)_=Z;else K=Z-1}return _};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=j)return Y[j];return Y[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>q(B),getTotalSize:()=>Y[j]??0,getTotal:()=>j,rebuild:(B)=>U(B),isVariable:()=>!0}},S0=(J,Q)=>{if(typeof J==="number")return e1(J,Q);return J4(J,Q)},q1=(J,Q,j,Y)=>{if(Y===0)return 0;if(!J.isVariable())return Math.ceil(j/J.getSize(0));let U=0,q=0,B=Q;while(B<Y&&q<j)q+=J.getSize(B),U++,B++;return Math.max(1,U)};var Y1=()=>{let J={},Q=(q,B)=>{if(!J[q])J[q]=new Set;return J[q].add(B),()=>j(q,B)},j=(q,B)=>{J[q]?.delete(B)};return{on:Q,off:j,emit:(q,B)=>{J[q]?.forEach((_)=>{try{_(B)}catch(K){console.error(`[vlist] Error in event handler for "${String(q)}":`,K)}})},clear:(q)=>{if(q)delete J[q];else for(let B in J)delete J[B]}}};var j1=(J)=>{if(typeof J==="string"){let Q=document.querySelector(J);if(!Q)throw Error(`[vlist] Container not found: ${J}`);return Q}return J},s0=(J,Q)=>{let j=document.createElement("div");if(j.className=J,Q)j.style.cssText=Q;return j},X1=(J,Q,j,Y,U)=>{let q=Y,B=s0(Q);if(q)B.classList.add(`${Q}--horizontal`);if(U!==!1)B.setAttribute("tabindex","0");let _=s0(`${Q}-viewport`,q?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");_.setAttribute("tabindex","-1");let K=s0(`${Q}-content`,q?"position:relative;height:100%":"position:relative;width:100%"),Z=s0(`${Q}-items`,q?"position:relative;height:100%":"position:relative;width:100%");if(Z.setAttribute("role","listbox"),j)Z.setAttribute("aria-label",j);if(q)Z.setAttribute("aria-orientation","horizontal");let N=s0(`${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 N.setAttribute("aria-live","polite"),N.setAttribute("aria-atomic","true"),N.setAttribute("role","status"),K.appendChild(Z),_.appendChild(K),B.appendChild(N),B.appendChild(_),J.appendChild(B),{root:B,viewport:_,content:K,items:Z,liveRegion:N}};var U1=(J=100)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let Y=document.createElement("div");return Y.setAttribute("role","option"),Y},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 K1=(J,Q,j,Y,U)=>{if(Y===0||Q===0){U.start=0,U.end=-1;return}let q=j.indexAtOffset(J),B=j.indexAtOffset(J+Q);if(B<Y-1)B++;U.start=Math.max(0,q),U.end=Math.min(Y-1,Math.max(0,B))},Z1=(J,Q,j,Y)=>{Y.start=Math.max(0,J.start-Q),Y.end=Math.min(j-1,J.end+Q)},B1=(J,Q,j,Y,U,q=0)=>{if(Y===0)return 0;let B=Math.max(0,Math.min(J,Y-1)),_=Q.getOffset(B),K=Q.getSize(B),Z=Q.getTotalSize(),N=Math.max(0,Z+q-j),R;switch(U){case"center":R=_-(j-K)/2;break;case"end":R=q>0&&_+K>=Z?N:_-j+K;break;default:R=_}return Math.max(0,Math.min(R,N))};var qJ={top:0,right:0,bottom:0,left:0},$0=(J)=>{if(J==null)return qJ;if(typeof J==="number")return J===0?qJ:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[q,B]=J;return q===0&&B===0?qJ:{top:q,right:B,bottom:q,left:B}}let[Q,j,Y,U]=J;return Q===0&&j===0&&Y===0&&U===0?qJ:{top:Q,right:j,bottom:Y,left:U}},h0=(J,Q)=>Q?J.left+J.right:J.top+J.bottom,YJ=(J,Q)=>Q?J.top+J.bottom:J.left+J.right;var p0=(J,Q,j)=>{let Y=Array.from(Q).sort((B,_)=>B-_);if(Y.length<=1)return;let U=[];for(let B=0;B<Y.length;B++){let _=j(Y[B]);if(_)U.push(_)}if(U.length<=1)return;let q=J.firstChild;for(let B=0;B<U.length;B++){let _=U[B];if(_===q)q=q.nextSibling;else J.insertBefore(_,q)}};var N1=(J,Q)=>{let{dom:j,emitter:Y,resolvedConfig:U,rawConfig:q,rendered:B,pool:_,sharedState:K,isHorizontal:Z,classPrefix:N,contentSizeHandlers:R,idleHandlers:G,afterScroll:H,clickHandlers:v,keydownHandlers:z,resizeHandlers:M,destroyHandlers:C,methods:y,onScrollFrame:p,resizeObserver:l,renderRange:d,afterRenderBatch:r}=Q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return Y},get config(){return U},get rawConfig(){return q},adjustScrollPosition(b){if(J.mp===0)return b;let s=Z?J.cw:J.ch,Q0=J.hc.getTotalSize(),i=Math.max(0,Q0-s),P=Math.max(0,Q0+J.mp-s);if(b>=i)return P;return Math.min(b,P)},get renderer(){return{render:(b,s,Q0,i,P)=>{J.ss=Q0,J.fi=i,J.ffn()},updateItemClasses:(b,s,Q0)=>{J.uic(b,s,Q0)},updatePositions:()=>{},updateItem:()=>{},getElement:(b)=>B.get(b)??null,clear:()=>{},destroy:()=>{}}},set renderer(b){},get dataManager(){return J.dm},set dataManager(b){J.dm=b},get scrollController(){return J.sc},set scrollController(b){J.sc=b},state:K,getContainerWidth(){return J.cw},afterScroll:H,idleHandlers:G,afterRenderBatch:r,clickHandlers:v,keydownHandlers:z,resizeHandlers:M,contentSizeHandlers:R,destroyHandlers:C,methods:y,replaceTemplate(b){J.at=b},replaceRenderer(b){},replaceDataManager(b){J.dm=b},replaceScrollController(b){J.sc=b},getItemsForRange(b){let{dm:s,it:Q0}=J,i=[];for(let P=b.start;P<=b.end;P++){let S=s?s.getItem(P):Q0[P];if(S)i.push(S)}return i},getAllLoadedItems(){let b=J.dm;if(b){let s=b.getTotal(),Q0=[];for(let i=0;i<s;i++){let P=b.getItem(i);if(P)Q0.push(P)}return Q0}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let b=J.hc;return{isCompressed:!1,actualSize:b.getTotalSize(),virtualSize:b.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:d.start,compression:K.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,b]of B)b.remove(),_.release(b);B.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(b,s){J.rfn=b,J.ffn=s},setVirtualTotalFn(b){J.vtf=b},rebuildSizeCache(b){J.hc.rebuild(b??J.vtf())},setSizeConfig(b){if(J.hc=S0(b,J.vtf()),J.gp>0){let s=J.hc.getTotalSize,Q0=J.gp;J.hc.getTotalSize=()=>{let i=s();return i>0?i-Q0:0}}},updateContentSize(b){let s=`${b+J.mp}px`;if(Z)j.content.style.width=s;else j.content.style.height=s},updateCompressionMode(){for(let b=0;b<R.length;b++)R[b]()},setVisibleRangeFn(b){J.gvr=b},getVisibleRange(b,s,Q0,i){J.gvr(b,s,J.hc,Q0,i)},setScrollToPosFn(b){J.gsp=b},getScrollToPos(b,s,Q0,i){return J.gsp(b,J.hc,s,Q0,i)},setPositionElementFn(b){J.pef=b},setScrollFns(b,s){J.sgt=b,J.sst=(Q0)=>{s(Q0),p()}},setScrollTarget(b){J.st.removeEventListener("scroll",p),J.st=b,J.st.addEventListener("scroll",p,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(b){J.gcw=b.width,J.gch=b.height,J.cw=b.width(),J.ch=b.height(),K.viewportState.containerSize=Z?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,l.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(b){J.sif=b},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(b){J.i2s=b},setUpdateItemClassesFn(b){J.uic=b}}},W1=(J,Q,j)=>{let{rendered:Y,itemState:U,applyTemplate:q,updateContentSize:B}=Q,_=()=>{J.hc.rebuild(J.vtf()),B(),j.updateCompressionMode(),J.ffn()},K=()=>J.it.length;return{getState:()=>({total:K(),cached:K(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:K,getCached:K,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(Z)=>J.it[Z],isItemLoaded:(Z)=>Z>=0&&Z<K()&&J.it[Z]!==void 0,getItemsInRange:(Z,N)=>{let R=[];for(let G=Math.max(0,Z),H=Math.min(N,K()-1);G<=H;G++)R.push(J.it[G]);return R},setTotal:()=>{},setItems:(Z,N=0,R)=>{if(N===0&&(R!==void 0||K()===0))J.it=Z;else{let G=N+Z.length;if(K()<G)J.it.length=G;for(let H=0;H<Z.length;H++)J.it[N+H]=Z[H]}if(J.ii)_()},updateItem:(Z,N)=>{let R=J.it;if(Z<0||Z>=R.length)return!1;let G=R[Z];if(!G)return!1;R[Z]={...G,...N};let H=Y.get(Z);if(H)q(H,J.at(R[Z],Z,U)),H.dataset.id=String(R[Z].id);return!0},removeItem:(Z)=>{let N=typeof Z==="number"?Z:J.it.findIndex((R)=>R.id===Z);if(N<0||N>=J.it.length)return!1;if(J.it.splice(N,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),B(),J.ffn()}}},V1=(J,Q)=>{let{dom:j,classPrefix:Y}=Q;return{getScrollTop:()=>J.sgt(),scrollTo:(U)=>{J.sst(U),J.ls=U,J.rfn()},scrollBy:(U)=>{let q=J.sgt()+U;J.sst(q),J.ls=q,J.rfn()},isAtTop:()=>J.ls<=2,isAtBottom:(U=2)=>J.sab(U),getScrollPercentage:()=>{let U=J.hc.getTotalSize(),q=Math.max(0,U-J.ch);return q>0?J.ls/q:0},getVelocity:()=>J.vt.velocity,isTracking:()=>J.vt.sampleCount>=2,isScrolling:()=>j.root.classList.contains(`${Y}--scrolling`),updateConfig:()=>{},enableCompression:()=>{J.sic=!0},disableCompression:()=>{J.sic=!1},isCompressed:()=>J.sic,isWindowMode:()=>!1,updateContainerHeight:(U)=>{J.ch=U},destroy:()=>{}}};var EJ=(J,Q,j,Y,U=0,q=0)=>{let B=Q.getOffset(J),_=Q.getSize(J),K=B+U,Z=K+_,N=j+Y;if(K<j)return Math.max(0,B);if(Z>N)return Z+q-Y;return j},jJ=(J,Q,j,Y,U=0,q=0,B,_,K)=>{if(!(B!=null&&B.isCompressed&&B.ratio!==1))return EJ(J,Q,j,Y,U,q);let N=_,{virtualSize:R}=B,G=Q.getSize(Math.max(0,J)),H=Y-U-q,v=Math.max(1,Math.floor(H/G)),z=R/N;if(K){if(J>=K.start+v){let y=H/G,p=J+1-y;return Math.max(0,p*z)}if(J<=K.start)return Math.max(0,J*z);return j}let M=j/R*N,C=M+v;if(J>=C){let y=H/G,p=J+1-y;return Math.max(0,p*z)}if(J<M)return Math.max(0,J*z);return j};var _1=(J,Q,j,Y,U,q,B,_,K,Z,N,R,G)=>{let H=`${j}-item--focused`,v=!1,z=null,M=null,C=null,y=null,p=!1,l=()=>{if(p)return;p=!0,z=K.get("_getNavTotal")??null,M=K.get("_getNavDelta")??null,C=K.get("_navigate")??null,y=K.get("_scrollItemIntoView")??null},d=()=>{return l(),z?z():J.vtf()},r=()=>{return l(),M?M():{ud:1,lr:0,cols:0}};K.set("_getFocusedIndex",()=>v?J.fi:-1);let b=($)=>{if(Q.root.setAttribute("aria-activedescendant",`${Y}-item-${$}`),l(),y)y($);else{let u=U?J.cw:J.ch,T=J.i2s($),L=EJ(T,J.hc,J.ls,u,q,B);if(L!==J.ls)J.sst(L),J.ls=J.sgt()}J.ffn()},s=($)=>{J.fi=$,v=!0,b($)},Q0=($,u)=>{if(J.fi=$,u)v=!0;let T=J.dm?J.dm.getItem($):J.it[$];if(T&&J.ss.has(T.id))J.ss.clear();else if(J.ss.clear(),T)J.ss.add(T.id);b($)},i=($,u,T)=>{let L=$;while(L>=0&&L<T){let w=J.dm?J.dm.getItem(L):J.it[L];if(!w||!w.__groupHeader)return L;L+=u}L=$-u;while(L>=0&&L<T){let w=J.dm?J.dm.getItem(L):J.it[L];if(!w||!w.__groupHeader)return L;L-=u}return $},P=()=>{if(J.id)return;if(!Q.root.matches(":focus-visible"))return;let $=d();if($===0)return;let u=J.fi>=0?Math.min(J.fi,$-1):0;u=i(u,1,$),s(u)};Q.root.addEventListener("focusin",P);let S=($)=>{if(J.id)return;let u=$.relatedTarget;if(u&&Q.root.contains(u))return;if(v=!1,J.fi>=0)Z.get(J.fi)?.classList.remove(H);Q.root.removeAttribute("aria-activedescendant")};Q.root.addEventListener("focusout",S),N.push(($)=>{if(J.id)return;let u=d();if(u===0)return;let T=J.fi,L=T;if($.key===" "||$.key==="Enter"){if(T>=0){let w=J.dm?J.dm.getItem(T):J.it[T];if(w&&!w.__groupHeader)Q0(T,!0)}$.preventDefault();return}if(l(),C)switch($.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":L=C(T,$.key,u);break;default:return}else{let{ud:w,lr:h}=r();switch($.key){case"ArrowUp":L=T-w;break;case"ArrowDown":L=T+w;break;case"ArrowLeft":if(!h)return;L=T-h;break;case"ArrowRight":if(!h)return;L=T+h;break;case"PageUp":case"PageDown":{let c=J.hc.getSize(J.i2s(Math.max(0,T))),x=Math.max(w,Math.floor((U?J.cw:J.ch)/c)*w);L=$.key==="PageUp"?T-x:T+x;break}case"Home":L=0;break;case"End":L=u-1;break;default:return}if(L<0)L=_?u-1:0;else if(L>=u)L=_?0:u-1}if($.preventDefault(),L=i(L,L>=T?1:-1,u),L!==T)s(L)}),R.push(($)=>{if(J.id)return;let u=$.target.closest("[data-index]");if(!u)return;let T=parseInt(u.dataset.index??"-1",10);if(T<0)return;let L=J.dm?.getItem(T)??J.it[T];if(!L||L.__groupHeader)return;v=!1,Q.root.focus(),Q0(T,!1)}),G.push(()=>{Q.root.removeEventListener("focusin",P),Q.root.removeEventListener("focusout",S)})};var AJ=200,u0=50;var D1=50,G1=12,M1=2,g0=16000000;var O1="x",E1=20,LJ="_isPlaceholder",y0="__placeholder_";var P0=(J,Q,j)=>{if(String(j).startsWith(y0))return!1;let Y=y0+Q;if(J.has(Y))return J.delete(Y),J.add(j),!0;return!1},A1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),x0=(J,Q,j)=>{if(j==="none")return J;let Y=new Set(J.selected);if(j==="single"){if(Y.clear(),Q.length>0)Y.add(Q[0])}else for(let U of Q)Y.add(U);return{...J,selected:Y}},FJ=(J,Q)=>{let j=new Set(J.selected);for(let Y of Q)j.delete(Y);return{...J,selected:j}},m0=(J,Q,j)=>{if(j==="none")return J;if(J.selected.has(Q))return FJ(J,[Q]);else return x0(J,[Q],j)},TJ=(J,Q,j)=>{if(j!=="multiple")return J;return{...J,selected:new Set(Q.map((Y)=>Y.id))}},kJ=(J)=>({...J,selected:new Set}),d0=(J,Q)=>{return J.focusedIndex=Q,J},XJ=(J,Q,j=!1,Y=1)=>{if(Q===0)return J;let U=J.focusedIndex-Y;if(U<0)U=j?Q-1:0;return J.focusedIndex=U,J},UJ=(J,Q,j=!1,Y=1)=>{if(Q===0)return J;let U=J.focusedIndex+Y;if(U>=Q)U=j?0:Q-1;return J.focusedIndex=U,J},L1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=0,J},F1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=Q-1,J},HJ=(J,Q,j,Y)=>{if(Q===0)return J;let U=Y==="up"?J.focusedIndex-j:J.focusedIndex+j;return U=Math.max(0,Math.min(Q-1,U)),J.focusedIndex=U,J};var bJ=(J)=>{return Array.from(J.selected)},$J=(J,Q)=>{let j=[];for(let Y of J.selected){let U=Q(Y);if(U)j.push(U)}return j};var KJ=(J,Q,j,Y,U)=>{if(U!=="multiple")return J;let q=Math.min(j,Y),B=Math.max(j,Y),_=[];for(let K=q;K<=B;K++){let Z=Q[K];if(Z)_.push(Z.id)}return x0(J,_,U)};var yJ=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,w0=(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}},c0=(J,Q)=>{let j=null,Y=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(q,B,_)=>{if(Y(),Math.abs(B-q)<1){J.scrollTo(B);return}let K=performance.now(),Z=(N)=>{let R=N-K,G=Math.min(R/_,1),H=q+(B-q)*yJ(G);if(J.scrollTo(H),Q(),G<1)j=requestAnimationFrame(Z);else j=null};j=requestAnimationFrame(Z)},cancelScroll:Y}};var T1=(J,Q,j,Y,U,q,B,_,K,Z,N,R,G,H,v,z,M,C)=>{let y=(E)=>{{if(!Array.isArray(E)){console.warn("[vlist] setItems() expects an array, got:",typeof E);return}if(E.length>0&&E[0]&&!("id"in E[0]))console.warn('[vlist] Items must have an "id" property. First item:',E[0]);let W=Math.min(E.length,1e4),D=new Set;for(let f=0;f<W;f++){let O=E[f];if(O&&"id"in O){if(D.has(O.id)){console.warn(`[vlist] Duplicate item ID "${O.id}" at index ${f}. updateItem() and removeItem() will only match the first occurrence.`);break}D.add(O.id)}}}w(),K.dataManager.setItems(E,0,E.length)},p=(E)=>{let W=Z&&J.sab(2);if(K.dataManager.setItems(E,J.it.length),W&&J.it.length>0){let D=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(D),J.ls=D,J.rfn()}},l=(E)=>{let W=Z?J.sgt():0,D=Z?J.hc.getTotalSize():0,f=[...J.it];if(K.dataManager.clear(),K.dataManager.setItems([...E,...f],0),Z){let O=J.hc.getTotalSize()-D;if(O>0)J.sst(W+O),J.ls=W+O}},d=null,r=null,b=null,s=!1,Q0=()=>{if(s)return;s=!0,d=q.get("_updateRenderedItem")??null,r=q.get("_getSelectedIds")??null,b=q.get("_getFocusedIndex")??null},i=(E,W)=>{{let f=J.vtf();if(E<0||E>=f)console.warn(`[vlist] updateItem() index ${E} is out of range (0–${f-1}).`)}if(K.dataManager.updateItem(E,W),Q0(),!d)return;let D=K.dataManager.getItem(E);if(D){let O=(r?r():J.ss).has(D.id),A=(b?b():J.fi)===E;d(E,D,O,A)}},P=!1,S=(E)=>{let W=typeof document<"u"?document.activeElement:null,D=W&&Q.items.contains(W)?parseInt(W.dataset?.index??"-1",10):-1;if(!K.dataManager.removeItem(E))return console.warn(`[vlist] removeItem() could not find item with id "${E}".`),!1;if(j.emit("data:change",{type:"remove",id:E}),K.forceRender(),!P){let O=K.dataManager;if(typeof O.ensureRange==="function")P=!0,queueMicrotask(()=>{P=!1;let A=K.dataManager.getTotal(),{start:m,end:n}=K.state.viewportState.renderRange;if(A>0&&n>=m)O.ensureRange(m,n).catch(()=>{})})}if(D>=0){let O=J.vtf();if(O>0)Y.get(Math.min(D,O-1))?.focus()}return!0},$=(E)=>{return K.dataManager.getItem(E)},u=(E)=>{return K.dataManager.getIndexById?.(E)??-1},T=async(E)=>{if(K.dataManager.reload)await K.dataManager.reload()},L=null,w=()=>{if(L!==null)cancelAnimationFrame(L),L=null},h=(E,W,D,f)=>{if(w(),Math.abs(W-E)<1){J.sst(W),J.ls=W,J.rfn();return}let O=performance.now(),A=(m)=>{let n=m-O,o=Math.min(n/D,1),t=f?f():W,a=E+(t-E)*yJ(o);if(J.sst(a),J.ls=a,J.rfn(),o<1)L=requestAnimationFrame(A);else L=null};L=requestAnimationFrame(A)},c=(E,W)=>{{let o=J.vtf();if(o>0&&(E<0||E>=o))console.warn(`[vlist] scrollToIndex(${E}) is out of range (0–${o-1}).`)}let{align:D,behavior:f,duration:O}=w0(W),A=J.vtf(),m=E;if(N&&A>0)m=(m%A+A)%A;let n=J.gsp(m,J.hc,J.ch,A,D);if(f==="smooth"){let o=m,t=D;h(J.sgt(),n,O,()=>J.gsp(o,J.hc,J.ch,J.vtf(),t))}else w(),J.sst(n)},x=()=>J.sgt(),I=(E,W)=>{return j.on(E,W)},F=(E,W)=>{j.off(E,W)},X=()=>{if(J.id)return;if(J.id=!0,K.state.isDestroyed=!0,Q.items.removeEventListener("click",R),Q.items.removeEventListener("dblclick",G),Q.root.removeEventListener("keydown",H),J.st.removeEventListener("scroll",v),z.disconnect(),M(),J.wh)Q.viewport.removeEventListener("wheel",J.wh);C();let E=[];for(let W=0;W<_.length;W++)try{_[W]()}catch(D){E.push(D instanceof Error?D:Error(String(D)))}for(let W of B)if(W.destroy)try{W.destroy()}catch(D){E.push(D instanceof Error?D:Error(String(D)))}w();for(let[,W]of Y)W.remove(),U.release(W);Y.clear(),U.clear(),j.emit("destroy",void 0);for(let W of E)j.emit("error",{error:W,context:"destroy"});j.clear(),Q.root.remove()},V=(E,W)=>q.has(E)?q.get(E):W,k={get element(){return Q.root},get items(){let E=q.get("_getItems");return E?E():J.it},get total(){let E=q.get("_getTotal");return E?E():J.vtf()},setItems:V("setItems",y),appendItems:V("appendItems",p),prependItems:V("prependItems",l),updateItem:V("updateItem",i),removeItem:V("removeItem",S),reload:V("reload",T),getItemAt:$,getIndexById:u,scrollToIndex:V("scrollToIndex",c),cancelScroll:V("cancelScroll",w),getScrollPosition:V("getScrollPosition",x),on:I,off:F,destroy:X};for(let[E,W]of q){if(E.charCodeAt(0)===95||E==="setItems"||E==="appendItems"||E==="prependItems"||E==="updateItem"||E==="removeItem"||E==="reload"||E==="scrollToIndex"||E==="scrollToItem"||E==="cancelScroll"||E==="getScrollPosition")continue;k[E]=W}return k};var Q4=3,q4="vlist",Y4=150,j4=16000000,X4=0,PJ=(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",Y=Q?"estimatedWidth":"estimatedHeight",U=Q?J.item.width:J.item.height,q=Q?J.item.estimatedWidth:J.item.estimatedHeight;if(U==null&&q==null)throw Error(`[vlist] item.${j} or item.${Y} 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(q!=null){if(typeof q!=="number"||q<=0)throw Error(`[vlist] item.${Y} 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 B=new Map,_=!1,K={use(Z){if(_)throw Error("[vlist] Cannot call .use() after .build()");return B.set(Z.name,Z),K},build(){if(_)throw Error("[vlist] .build() can only be called once");return _=!0,U4(J,B,Q,U,q??null)}};return K};function U4(J,Q,j,Y,U){let{item:q,items:B,overscan:_=Q4,classPrefix:K=q4,ariaLabel:Z,padding:N,reverse:R=!1,scroll:G,accessible:H,interactive:v}=J,z=v??H??!0,M=G,C=M?.wheel??!0,y=M?.wrap??!1,p=R,l=`${K}-${X4++}`,d=Q.has("withGrid")||Q.has("withMasonry")?0:q.gap??0,r=Y??U,b=Y==null&&U!=null,s=j?typeof q.height==="number"?q.height:void 0:typeof q.width==="number"?q.width:void 0,Q0={overscan:_,classPrefix:K,reverse:p,wrap:y,horizontal:j,ariaIdPrefix:l,interactive:z},i=Array.from(Q.values()).sort((g,e)=>(g.priority??50)-(e.priority??50)),P=new Set(i.map((g)=>g.name));for(let g of i)if(g.conflicts){for(let e of g.conflicts)if(P.has(e))throw Error(`[vlist] ${g.name} and ${e} cannot be combined`)}if(p){if(P.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let S=j1(J.container),$=X1(S,K,Z,j,z);if(M?.wheel===!1)if(j)$.viewport.style.overflowX="hidden";else $.viewport.style.overflow="hidden";if(M?.scrollbar==="none")$.viewport.classList.add(`${K}-viewport--no-scrollbar`);if(M?.gutter==="stable")$.viewport.classList.add(`${K}-viewport--gutter-stable`);let u=$0(N),T=h0(u,j);if(u.top||u.right||u.bottom||u.left)$.content.style.boxSizing="border-box",$.content.style.padding=`${u.top}px ${u.right}px ${u.bottom}px ${u.left}px`;let L=Y1(),w=B||[],h=typeof r==="function"&&(Q.has("withGrid")||Q.has("withMasonry")),c=d>0?typeof r==="function"?(g)=>r(g)+d:r+d:r,x=b?U+d:c,I=S0(x,h?0:w.length);if(d>0){let g=I.getTotalSize;I.getTotalSize=()=>{let e=g();return e>0?e-d:0}}let F=U1(),X={it:w,hc:I,ch:$.viewport.clientHeight,cw:$.viewport.clientWidth,id:!1,ii:!1,ls:0,vt:J1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>$.viewport.scrollLeft:()=>$.viewport.scrollTop,sst:j?(g)=>{$.viewport.scrollLeft=g}:(g)=>{$.viewport.scrollTop=g},sab:(g=2)=>{let e=X.hc.getTotalSize();return X.ls+X.ch>=e-g},sic:!1,rfn:null,ffn:null,gvr:(g,e,Y0,K0,M0)=>{K1(g,e,Y0,K0,M0)},gsp:(g,e,Y0,K0,M0)=>{return B1(g,e,Y0,K0,M0,X.mp)},pef:null,at:q.template,vre:!0,st:$.viewport,wh:null,gcw:()=>X.cw,gch:()=>X.ch,gp:d,mp:T,sif:(g)=>g,i2s:(g)=>g,uic:(g,e,Y0)=>{let K0=A.get(g);if(!K0)return;j0(K0,e,Y0)},csi:null};X.vtf=()=>X.dm?X.dm.getTotal():X.it.length;let V=null,k=!1,E={start:0,end:0},W={start:0,end:0},D={start:-1,end:-1},f={viewportState:{scrollPosition:0,containerSize:j?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},O=()=>({...f.viewportState,totalItems:X.vtf()}),A=new Map,m=()=>{p0($.items,A.keys(),(g)=>A.get(g))},n=()=>{let g=X.hc.getTotalSize(),Y0=`${(X.sic?g:Math.min(g,j4))+T}px`;if(j)$.content.style.width=Y0;else $.content.style.height=Y0},o={selected:!1,focused:!1},t=`${K}-item`,a=`${K}-item--selected`,J0=`${K}-item--focused`,j0=(g,e,Y0)=>{g.classList.toggle(a,e),g.classList.toggle(J0,Y0),g.ariaSelected=e?"true":"false"},q0=q.striped,Z0=!!q0,U0=q0==="data"||q0==="even"||q0==="odd",B0=`${K}-item--odd`,V0=`${K}-item--placeholder`,O0=`${K}-item--replaced`,X0=`${K}--scrolling`,_0=[],E0=[],D0=[],N0=[],A0=[],G0=[],L0=[],z0=[],T0=new Map,BJ="__placeholder_",NJ={scrollPosition:0,direction:"down"},f0={velocity:0,reliable:!1},WJ={range:{start:0,end:0}},VJ=null,_J=null,lJ=!1,c1=()=>{if(lJ)return;lJ=!0,VJ=T0.get("_getSelectedIds")??null,_J=T0.get("_getFocusedIndex")??null},t0=(g,e,Y0)=>{if(!e)console.warn(`[vlist] Template returned falsy value${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);else if(typeof e==="string"&&e==="")console.warn(`[vlist] Template returned empty string${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);if(typeof e==="string")g.innerHTML=e;else g.replaceChildren(e)},l1=(g,e)=>{let Y0=Math.round(X.hc.getOffset(e));if(j)g.style.transform=`translateX(${Y0}px)`;else g.style.transform=`translateY(${Y0}px)`};X.pef=l1;let r1=(g,e)=>{let Y0=F.acquire();Y0.className=t;let K0=!X.csi||X.csi(g);if(j){if(K0)Y0.style.width=`${X.hc.getSize(g)-d}px`;else Y0.style.width="";if(s!=null)Y0.style.height=`${s}px`}else if(K0)Y0.style.height=`${X.hc.getSize(g)-d}px`;else Y0.style.height="";if(Y0.dataset.index=String(g),Y0.dataset.id=String(e.id),Y0.ariaSelected="false",Y0.id=`${l}-item-${g}`,X.la=String(X.vtf()),Y0.setAttribute("aria-setsize",X.la),Y0.setAttribute("aria-posinset",String(g+1)),String(e.id).startsWith(BJ))Y0.classList.add(V0);if(Z0)if(U0){let k0=X.sif(g);if(k0<0)Y0.classList.remove(B0);else Y0.classList.toggle(B0,(k0&1)===1)}else Y0.classList.toggle(B0,(g&1)===1);try{t0(Y0,X.at(e,g,o),g)}catch(k0){let F0=k0 instanceof Error?k0:Error(String(k0));L.emit("error",{error:F0,context:`tpl(${g},${e.id})`,viewport:O()}),Y0.textContent=""}return X.pef(Y0,g),Y0},a1=()=>{if(X.id)return;let g=j?X.cw:X.ch;if(g<=0)return;c1();let e=VJ?VJ():X.ss,Y0=_J?_J():X.fi,K0=X.vtf();if(X.gvr(X.ls,g,X.hc,K0,E),Z1(E,_,K0,W),W.start===D.start&&W.end===D.end){if(X.sic)for(let[W0,H0]of A)X.pef(H0,W0);f.viewportState.scrollPosition=X.ls,f.viewportState.containerSize=g,f.viewportState.visibleRange.start=E.start,f.viewportState.visibleRange.end=E.end,f.viewportState.renderRange.start=W.start,f.viewportState.renderRange.end=W.end;return}let M0=String(K0),k0=M0!==X.la;X.la=M0;for(let[W0,H0]of A)if(W0<W.start||W0>W.end)H0.remove(),F.release(H0),A.delete(W0);let F0=document.createDocumentFragment(),C0=!1,a0=L0.length>0?[]:null;for(let W0=W.start;W0<=W.end;W0++){let H0=X.dm?X.dm.getItem(W0):X.it[W0];if(H0===void 0)continue;let b0=A.get(W0);if(b0){let v0=b0.dataset.id,I0=String(H0.id);if(v0!==I0){let i1=v0?.startsWith(BJ),MJ=I0.startsWith(BJ);try{t0(b0,X.at(H0,W0,o),W0)}catch(OJ){let t1=OJ instanceof Error?OJ:Error(String(OJ));L.emit("error",{error:t1,context:`tpl(${W0},${H0.id})`,viewport:O()}),b0.textContent=""}b0.dataset.id=I0;let tJ=!X.csi||X.csi(W0);if(j)b0.style.width=tJ?`${X.hc.getSize(W0)-d}px`:"";else b0.style.height=tJ?`${X.hc.getSize(W0)-d}px`:"";if(MJ)b0.classList.add(V0);else b0.classList.remove(V0);if(i1&&!MJ)b0.classList.add(O0),setTimeout(()=>{b0.classList.remove(O0)},300);if(X.dm&&!MJ)P0(e,W0,H0.id)}X.pef(b0,W0);let QJ=e.has(H0.id);if(j0(b0,QJ,W0===Y0),k0)b0.setAttribute("aria-setsize",X.la)}else{let v0=r1(W0,H0);if(a0)a0.push({index:W0,element:v0});if(X.dm)P0(e,W0,H0.id);let I0=e.has(H0.id),QJ=W0===Y0;if(I0||QJ)j0(v0,I0,QJ);F0.appendChild(v0),A.set(W0,v0),C0=!0}}if(C0)$.items.appendChild(F0);if(a0&&a0.length>0)for(let W0=0;W0<L0.length;W0++)L0[W0](a0);D.start=W.start,D.end=W.end,f.lastRenderRange.start=W.start,f.lastRenderRange.end=W.end,f.viewportState.scrollPosition=X.ls,f.viewportState.visibleRange.start=E.start,f.viewportState.visibleRange.end=E.end,f.viewportState.renderRange.start=W.start,f.viewportState.renderRange.end=W.end,WJ.range.start=W.start,WJ.range.end=W.end,L.emit("range:change",WJ)},s1=()=>{D.start=-1,D.end=-1,X.rfn()};X.rfn=a1,X.ffn=s1;let o1=()=>{$.root.classList.remove(X0),k=!1,X.vt.velocity=0,X.vt.sampleCount=0,f0.velocity=0,f0.reliable=!1,L.emit("velocity:change",f0),m();for(let g=0;g<E0.length;g++)E0[g]();L.emit("scroll:idle",{scrollPosition:X.ls})},n1=()=>{if(V)clearTimeout(V);V=setTimeout(o1,M?.idleTimeout??Y4)},r0=()=>{if(X.id)return;let g=X.sgt();if(g===X.ls&&k)return;let e=g>=X.ls?"down":"up";if(X.vt=Q1(X.vt,g),!$.root.classList.contains(X0))$.root.classList.add(X0);k=!0,X.ls=g,X.rfn(),NJ.scrollPosition=g,NJ.direction=e,L.emit("scroll",NJ),f0.velocity=X.vt.velocity,f0.reliable=X.vt.sampleCount>=eJ,L.emit("velocity:change",f0);for(let Y0=0;Y0<_0.length;Y0++)_0[Y0](g,e);n1()},e0=null;if(X.st.addEventListener("scroll",r0,{passive:!0}),C){let g=$.viewport;if(j)e0=(e)=>{if(f.viewportState.isCompressed)return;if(Math.abs(e.deltaX)>Math.abs(e.deltaY))return;let Y0=X.sgt(),K0=g.scrollWidth-g.clientWidth,M0=Math.max(0,Math.min(Y0+e.deltaY,K0));if(Math.abs(M0-Y0)<1)return;e.preventDefault(),X.sst(M0),r0()};else e0=(e)=>{if(f.viewportState.isCompressed)return;let Y0=g.scrollWidth>g.clientWidth;if(Y0&&Math.abs(e.deltaX)>Math.abs(e.deltaY))return;if(Y0&&e.deltaX!==0)e.preventDefault(),g.scrollLeft+=e.deltaX;let K0=X.sgt(),M0=g.scrollHeight-g.clientHeight,k0=Math.max(0,Math.min(K0+e.deltaY,M0));if(Math.abs(k0-K0)<1)return;e.preventDefault(),X.sst(k0),r0()};X.wh=e0,g.addEventListener("wheel",e0,{passive:!1})}let rJ=(g)=>{let e=g.target.closest("[data-index]");if(!e)return null;let Y0=parseInt(e.dataset.index??"-1",10);if(Y0<0)return null;let K0=X.dm?.getItem(Y0)??X.it[Y0];if(!K0||K0.__groupHeader)return null;return{item:K0,index:Y0}},aJ=(g)=>{let e=rJ(g);if(e)L.emit("item:click",{item:e.item,index:e.index,event:g});for(let Y0=0;Y0<D0.length;Y0++)D0[Y0](g)},sJ=(g)=>{let e=rJ(g);if(e)L.emit("item:dblclick",{item:e.item,index:e.index,event:g})},oJ=(g)=>{for(let e=0;e<N0.length;e++)N0[e](g)};if($.items.addEventListener("click",aJ),$.items.addEventListener("dblclick",sJ),$.root.addEventListener("keydown",oJ),z){let g=null,e=(Y0)=>{if(g)clearTimeout(g);g=setTimeout(()=>{if(g=null,X.id)return;let K0=X.vtf();$.liveRegion.textContent=`Showing items ${Y0.range.start+1} to ${Math.min(Y0.range.end+1,K0)} of ${K0}`},300)};L.on("range:change",e),z0.push(()=>{if(g)clearTimeout(g);L.off("range:change",e)})}let DJ=new ResizeObserver((g)=>{if(X.id)return;for(let e of g){let Y0=e.contentRect.height,K0=e.contentRect.width,M0=j?K0:Y0,k0=j?X.cw:X.ch;if(X.cw=K0,X.ch=Y0,Math.abs(M0-k0)>1){if(f.viewportState.containerSize=M0,X.ii){let F0=f.cachedCompression;if(F0&&F0.state.isCompressed){let C0=`${F0.state.virtualSize+T}px`;if(j)$.content.style.width=C0;else $.content.style.height=C0}else n();X.rfn(),L.emit("resize",{height:Y0,width:K0})}}if(X.ii)for(let F0=0;F0<A0.length;F0++)A0[F0](K0,Y0)}});if(X.vre)DJ.observe($.viewport);let GJ={dom:$,emitter:L,resolvedConfig:Q0,rawConfig:J,rendered:A,pool:F,itemState:o,sharedState:f,renderRange:W,isHorizontal:j,classPrefix:K,contentSizeHandlers:G0,idleHandlers:E0,afterScroll:_0,clickHandlers:D0,keydownHandlers:N0,resizeHandlers:A0,destroyHandlers:z0,methods:T0,onScrollFrame:r0,resizeObserver:DJ,afterRenderBatch:L0,applyTemplate:t0,updateContentSize:n},JJ=N1(X,GJ);X.dm=W1(X,GJ,JJ),X.sc=V1(X,GJ),T0.set("_updateRenderedItem",(g,e,Y0,K0)=>{let M0=A.get(g);if(!M0)return;let k0={selected:Y0,focused:K0};try{let F0=X.at(e,g,k0);t0(M0,F0,g)}catch(F0){let C0=F0 instanceof Error?F0:Error(String(F0));L.emit("error",{error:C0,context:`tpl(${g},${e.id})`,viewport:O()})}M0.dataset.id=String(e.id),j0(M0,Y0,K0)});let nJ=new WeakSet;T0.set("_setSizeCache",(g)=>{if(X.hc=g,X.gp>0&&!nJ.has(g)){nJ.add(g);let e=X.hc.getTotalSize,Y0=X.gp;X.hc.getTotalSize=()=>{let K0=e();return K0>0?K0-Y0:0}}}),T0.set("_setConstrainSize",(g)=>{X.csi=g});let iJ=new Map;for(let g of i)if(g.methods)for(let e of g.methods){let Y0=iJ.get(e);if(Y0)throw Error(`[vlist] Method "${e}" is registered by both "${Y0}" and "${g.name}"`);iJ.set(e,g.name)}for(let g of i)try{g.setup(JJ)}catch(e){let Y0=e instanceof Error?e:Error(String(e));console.error(`[vlist] Feature "${g.name}" setup failed:`,Y0),L.emit("error",{error:Y0,context:g.name,viewport:O()})}if(b&&!Q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(z&&!T0.has("_getFocusedIndex")){let g=j?u.left:u.top,e=j?u.right:u.bottom;_1(X,$,K,l,j,g,e,y,T0,A,N0,D0,z0)}if(X.ii=!0,JJ.state.isInitialized=!0,n(),X.rfn(),p&&X.it.length>0){let g=X.gsp(X.it.length-1,X.hc,X.ch,X.it.length,"end");X.sst(g),X.ls=g,X.rfn()}return T1(X,$,L,A,F,T0,i,z0,JJ,p,y,aJ,sJ,oJ,r0,DJ,()=>{},()=>{if(V)clearTimeout(V)})}var o0=(J,Q,j)=>{let Y=Q.getTotalSize(),U=j===!0||Y>g0,q=Y>g0?g0:Y,B=Y>0?q/Y:1;return{isCompressed:U,actualSize:Y,virtualSize:q,ratio:B}},k1=(J,Q,j,Y,U,q)=>{if(Y===0||Q===0)return q.start=0,q.end=-1,q;if(!U.isCompressed||U.ratio===1){let G=j.indexAtOffset(J),H=j.indexAtOffset(J+Q);if(H<Y-1)H++;return q.start=Math.max(0,G),q.end=Math.min(Y-1,Math.max(0,H)),q}let{virtualSize:B}=U,K=J/B*Y,Z=Math.floor(K),N=q1(j,Math.max(0,Z),Q,Y),R=Math.ceil(K)+N;return q.start=Math.max(0,Z),q.end=Math.min(Y-1,Math.max(0,R)),q};var l0=(J,Q,j,Y,U,q,B)=>{if(!q.isCompressed||Y===0)return j.getOffset(J);if(q.ratio===1)return j.getOffset(J)-Q;let{virtualSize:_}=q,K=Q/_,Z=j.getTotalSize(),N=K*Z;return j.getOffset(J)-N},H1=(J,Q,j,Y,U,q="start")=>{if(Y===0)return 0;let B;if(U.isCompressed&&U.ratio!==1){B=J/Y*U.virtualSize;let N=Q.getSize(J);switch(q){case"center":B-=(j-N)/2*U.ratio;break;case"end":B-=(j-N)*U.ratio;break}return Math.max(0,B)}B=Q.getOffset(J);let _=Q.getSize(J);switch(q){case"center":B-=(j-_)/2;break;case"end":B-=j-_;break}let K=U.virtualSize-j;return Math.max(0,Math.min(B,K))};var n0=(J,Q,j={},Y="vlist",U=!1)=>{let{autoHide:q=!0,autoHideDelay:B=1000,minThumbSize:_=30,showOnHover:K=!0,hoverZoneWidth:Z=16,showOnViewportEnter:N=!0}=j,R=0,G=0,H=0,v=0,z=!1,M=!1,C=0,y=0,p=0,l=null,d=!1,r=null,b=null,s=U?"width":"height",Q0=U?"translateX":"translateY",i=U?(A)=>A.clientX:(A)=>A.clientY,P=U?"left":"top",S=document.createElement("div"),$=document.createElement("div"),u=K?document.createElement("div"):null,T=()=>{if(S.className=`${Y}-scrollbar`,$.className=`${Y}-scrollbar-thumb`,U)S.classList.add(`${Y}-scrollbar--horizontal`);if(S.appendChild($),J.appendChild(S),u){if(u.className=`${Y}-scrollbar-hover`,U)u.classList.add(`${Y}-scrollbar-hover--horizontal`),u.style.height=`${Z}px`;else u.style.width=`${Z}px`;J.appendChild(u)}},L=()=>{if(l)clearTimeout(l),l=null},w=()=>{if(!q)return;L(),l=setTimeout(c,B)},h=()=>{if(R<=G)return;if(L(),!d)S.classList.add(`${Y}-scrollbar--visible`),d=!0;if(q&&!z&&!M)w()},c=()=>{if(z||M)return;S.classList.remove(`${Y}-scrollbar--visible`),d=!1},x=(A,m)=>{R=A,G=m;let n=R>G;if(S.style.display=n?"":"none",!n){c();return}let o=G/R;H=Math.max(_,o*G),$.style[s]=`${H}px`,v=G-H,I(p)},I=(A)=>{if(p=A,R<=G||v<=0)return;let m=R-G,o=Math.min(1,Math.max(0,A/m))*v;$.style.transform=`${Q0}(${o}px)`},F=(A)=>{if(A.target===$)return;let m=S.getBoundingClientRect(),t=i(A)-m[P]-H/2,J0=Math.max(0,Math.min(t,v))/v,j0=R-G,q0=J0*j0;Q(q0),h()},X=(A)=>{A.preventDefault(),A.stopPropagation(),z=!0,C=i(A),y=p,L(),S.classList.add(`${Y}-scrollbar--dragging`),document.addEventListener("mousemove",V),document.addEventListener("mouseup",k)},V=(A)=>{if(!z)return;let m=i(A)-C,n=v>0?m/v:0,o=R-G,t=n*o,a=Math.max(0,Math.min(y+t,o)),j0=a/o*v;if($.style.transform=`${Q0}(${j0}px)`,b=a,r===null)r=requestAnimationFrame(()=>{if(b!==null)Q(b);r=null})},k=()=>{if(z=!1,r!==null)cancelAnimationFrame(r),r=null;if(b!==null)Q(b),b=null;if(S.classList.remove(`${Y}-scrollbar--dragging`),q&&!M)w();document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",k)},E=()=>{if(N)h()},W=()=>{if(!z){if(M=!1,q)w()}},D=()=>{M=!0,L(),h()},f=()=>{if(M=!1,!z&&q)w()},O=()=>{if(L(),r!==null)cancelAnimationFrame(r),r=null;if(S.removeEventListener("click",F),S.removeEventListener("mouseenter",D),S.removeEventListener("mouseleave",f),$.removeEventListener("mousedown",X),J.removeEventListener("mouseenter",E),J.removeEventListener("mouseleave",W),document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",k),u){if(u.removeEventListener("mouseenter",D),u.removeEventListener("mouseleave",f),u.parentNode)u.parentNode.removeChild(u)}if(S.parentNode)S.parentNode.removeChild(S)};if(T(),S.addEventListener("click",F),S.addEventListener("mouseenter",D),S.addEventListener("mouseleave",f),$.addEventListener("mousedown",X),J.addEventListener("mouseenter",E),J.addEventListener("mouseleave",W),u)u.addEventListener("mouseenter",D),u.addEventListener("mouseleave",f);return{show:h,hide:c,updateBounds:x,updatePosition:I,isVisible:()=>d,destroy:O}};var wJ=(J)=>{let Q=null;return{name:"withScrollbar",priority:30,setup(j){let{dom:Y,config:U}=j,{classPrefix:q,horizontal:B}=U;if(Q=n0(Y.viewport,(K)=>j.scrollController.scrollTo(K),J??{},q,B),!Y.viewport.classList.contains(`${q}-viewport--custom-scrollbar`))Y.viewport.classList.add(`${q}-viewport--custom-scrollbar`);Q.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize);let _=Q;j.afterScroll.push((K,Z)=>{_.updatePosition(K),_.show()}),j.resizeHandlers.push((K,Z)=>{if(_)_.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.contentSizeHandlers.push(()=>{if(_)_.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.destroyHandlers.push(()=>{if(_)_.destroy()})},destroy(){if(Q)Q.destroy(),Q=null}}};var K4=0.65,Z4=0.5,b1=1.7,B4=0.95,N4=0.1,W4=5,V4=100,$1=(J,Q,j,Y=0)=>{if(J<=0)return 0;let U=Q-Y;return Math.max(0,U*(1-j)+Y)},RJ=(J)=>{let Q=J?.force??!1,j=null,Y=0,U=!1,q=0,B=0,_=null,K=0,Z=0,N=null,R=[];return{name:"withScale",priority:20,setup(G){let{dom:H,config:v}=G,{classPrefix:z,horizontal:M}=v,C=$0(G.rawConfig.padding),y=M?C.left+C.right:C.top+C.bottom,p=()=>{let i=G.getVirtualTotal(),P=o0(i,G.sizeCache,Q);if(P.isCompressed&&!U){U=!0,G.scrollController.enableCompression(P);let $=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($>0)Y=$,B=$;q=$1(P.virtualSize,G.state.viewportState.containerSize,P.ratio,y),G.updateContentSize(P.virtualSize+q),G.setScrollFns(()=>Y,(X)=>{if(Y=X,B=X,_!==null)cancelAnimationFrame(_),_=null});let u=()=>{let X=B-Y;if(G.getVirtualTotal()===0){Y=0,B=0,_=null,G.scrollController.scrollTo(0);return}if(Math.abs(X)<Z4){let V=G.getCachedCompression(),k=Math.max(0,V.virtualSize+q-G.state.viewportState.containerSize);Y=Math.max(0,Math.min(B,k)),B=Y,_=null}else{Y+=X*K4;let k=G.getCachedCompression().virtualSize+q-G.state.viewportState.containerSize;Y=Math.max(0,Math.min(Y,k)),_=requestAnimationFrame(u)}G.scrollController.scrollTo(Y)},T=H.viewport,L=(X)=>{X.preventDefault();let V=G.getCachedCompression(),k=V.virtualSize+q-G.state.viewportState.containerSize;if(B=Math.max(0,Math.min(B+X.deltaY*V.ratio*b1,k)),_===null)_=requestAnimationFrame(u)};T.addEventListener("wheel",L,{passive:!1});let w=()=>{if(N!==null)cancelAnimationFrame(N),N=null},h=(X)=>{if(w(),_!==null)cancelAnimationFrame(_),_=null;let V=X.touches[0];if(!V)return;let k=M?V.clientX:V.clientY;K=k,Z=Y,R=[{time:performance.now(),y:k}]},c=(X)=>{X.preventDefault();let V=X.touches[0];if(!V)return;let k=M?V.clientX:V.clientY,E=performance.now();if(R.push({time:E,y:k}),R.length>W4)R.shift();let W=K-k,D=G.getCachedCompression(),f=D.virtualSize+q-G.state.viewportState.containerSize,O=Math.max(0,Math.min(Z+W*D.ratio*b1,f));Y=O,B=O,G.scrollController.scrollTo(O)},x=(X)=>{let V=performance.now(),k=R.filter((f)=>V-f.time<V4),E=0;if(k.length>=2){let f=k[0],O=k[k.length-1],A=O.time-f.time;if(A>0)E=(f.y-O.y)/A}if(R=[],Math.abs(E)<N4)return;let W=E*16,D=()=>{if(W*=B4,Math.abs(W)<0.5){N=null;return}let O=G.getCachedCompression().virtualSize+q-G.state.viewportState.containerSize,A=Y+W;if(A=Math.max(0,Math.min(A,O)),A<=0&&W<0||A>=O&&W>0){Y=A,B=A,G.scrollController.scrollTo(A),N=null;return}Y=A,B=A,G.scrollController.scrollTo(A),N=requestAnimationFrame(D)};N=requestAnimationFrame(D)};T.addEventListener("touchstart",h,{passive:!0}),T.addEventListener("touchmove",c,{passive:!1}),T.addEventListener("touchend",x,{passive:!0}),T.addEventListener("touchcancel",x,{passive:!0}),G.destroyHandlers.push(()=>{T.removeEventListener("wheel",L),T.removeEventListener("touchstart",h),T.removeEventListener("touchmove",c),T.removeEventListener("touchend",x),T.removeEventListener("touchcancel",x)});let I=H.viewport.querySelector(`.${z}-scrollbar`),F=()=>{if((M?H.viewport.scrollLeft:H.viewport.scrollTop)!==0)if(M)H.viewport.scrollLeft=0;else H.viewport.scrollTop=0};if(T.addEventListener("scroll",F,{passive:!0}),G.destroyHandlers.push(()=>{T.removeEventListener("scroll",F)}),!I){if(j=n0(H.viewport,(V)=>G.scrollController.scrollTo(V),{},z,M),!H.viewport.classList.contains(`${z}-viewport--custom-scrollbar`))H.viewport.classList.add(`${z}-viewport--custom-scrollbar`);j.updateBounds(P.virtualSize,G.state.viewportState.containerSize);let X=j;G.afterScroll.push((V,k)=>{if(X)X.updatePosition(V),X.show()}),G.resizeHandlers.push((V,k)=>{if(X){let E=G.getCachedCompression();X.updateBounds(E.virtualSize,G.state.viewportState.containerSize)}})}}else if(!P.isCompressed&&U){if(U=!1,_!==null)cancelAnimationFrame(_),_=null;if(N!==null)cancelAnimationFrame(N),N=null;if(Y=0,B=0,R=[],G.setScrollFns(M?()=>H.viewport.scrollLeft:()=>H.viewport.scrollTop,M?($)=>{H.viewport.scrollLeft=$}:($)=>{H.viewport.scrollTop=$}),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(j)j.destroy(),j=null;q=0,G.updateContentSize(P.actualSize)}else if(P.isCompressed)G.scrollController.updateConfig({compression:P}),q=$1(P.virtualSize,G.state.viewportState.containerSize,P.ratio,y),G.updateContentSize(P.virtualSize+q);if(j)j.updateBounds(P.virtualSize+q,G.state.viewportState.containerSize);let S=G.state.viewportState;if(S.isCompressed=P.isCompressed,S.compressionRatio=P.ratio,S.totalSize=P.virtualSize+q,S.actualSize=P.actualSize,G.state.cachedCompression={state:P,totalItems:i},U){let $=Math.max(0,P.virtualSize+q-G.state.viewportState.containerSize),u=Y;if(u>$)u=$;else if(u<0)u=0;if(u!==Y){if(_!==null)cancelAnimationFrame(_),_=null;if(N!==null)cancelAnimationFrame(N),N=null;G.scrollController.scrollTo(u)}}for(let $=0;$<G.contentSizeHandlers.length;$++)G.contentSizeHandlers[$]()};G.updateCompressionMode=p;let l=G.getCachedCompression.bind(G);G.getCachedCompression=()=>{if(G.state.cachedCompression)return G.state.cachedCompression.state;return l()},G.setVisibleRangeFn((i,P,S,$,u)=>{d=null,r=null;let T=o0($,S,Q);k1(i,P,S,$,T,u)}),G.setScrollToPosFn((i,P,S,$,u)=>{let T=o0($,P,Q);return H1(i,P,S,$,T,u)});let d=null,r=null;G.setPositionElementFn((i,P)=>{let S=G.getVirtualTotal(),$=o0(S,G.sizeCache,Q);if($.isCompressed){let u=G.scrollController.getScrollTop();if(d===null||P<r)r=P,d=Math.round(l0(P,u,G.sizeCache,S,G.state.viewportState.containerSize,$));let T=d+G.sizeCache.getOffset(P)-G.sizeCache.getOffset(r),L=G.config.horizontal;i.style.transform=L?`translateX(${T}px)`:`translateY(${T}px)`}else{let u=Math.round(G.sizeCache.getOffset(P)),T=G.config.horizontal;i.style.transform=T?`translateX(${u}px)`:`translateY(${u}px)`}});let b=M?C.left:C.top,s=M?C.right:C.bottom,Q0=G.getItemToScrollIndexFn();G.methods.set("_scrollItemIntoView",(i)=>{let P=G.getCachedCompression(),S=G.state.viewportState.containerSize,$=G.state.viewportState.scrollPosition,u=G.getVirtualTotal(),{visibleRange:T}=G.state.viewportState,L=Q0(i),w=jJ(L,G.sizeCache,$,S,b,s,P,u,T);if(w!==$)G.scrollController.scrollTo(w)}),p(),G.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(_!==null)cancelAnimationFrame(_),_=null;if(N!==null)cancelAnimationFrame(N),N=null})}}};var y1=(J={})=>{let{chunkSize:Q=100,maxCachedItems:j=5000,evictionBuffer:Y=200,onEvict:U}=J,q=new Map,B=0,_=0,K=(T)=>{let L=q.get(T);if(!L)L={items:Array(Q),count:0,lastAccess:Date.now()},q.set(T,L);else L.lastAccess=Date.now();return L},Z=(T)=>{return Math.floor(T/Q)},N=(T)=>{return T%Q},R=()=>B,G=(T)=>{B=T},H=(T)=>{if(T<0||T>=B)return;let L=Z(T),w=q.get(L);if(!w)return;return w.items[N(T)]},v=(T)=>{if(T<0||T>=B)return!1;let L=Z(T),w=q.get(L);if(!w)return!1;return w.items[N(T)]!==void 0},z=(T,L)=>{let w=Z(T),h=K(w),c=N(T),x=h.items[c]===void 0;if(h.items[c]=L,x)h.count++,_++;if(T>=B)B=T+1},M=(T,L)=>{for(let w=0;w<L.length;w++){let h=L[w];if(h!==void 0)z(T+w,h)}},C=(T)=>{if(T<0||T>=B)return!1;let L=Z(T),w=q.get(L),h=N(T);if(!(w!==void 0&&w.items[h]!==void 0))return!1;let x=L,I=Array.from(q.keys()).filter((X)=>X>=x).sort((X,V)=>X-V),F=[];for(let X of I){let V=q.get(X),k=X*Q;for(let E=0;E<Q;E++){if(V.items[E]===void 0)continue;let W=k+E;if(W<=T)continue;F.push({oldIndex:W,item:V.items[E]})}}if(w.items[h]=void 0,w.count--,_--,w.count===0)q.delete(L);for(let{oldIndex:X}of F){let V=Z(X),k=q.get(V);if(!k)continue;let E=N(X);if(k.items[E]!==void 0){if(k.items[E]=void 0,k.count--,_--,k.count===0)q.delete(V)}}for(let{oldIndex:X,item:V}of F){let k=X-1,E=Z(k),W=K(E),D=N(k);W.items[D]=V,W.count++,_++}return B--,!0},y=(T,L)=>{let w=[];for(let h=T;h<=L&&h<B;h++)w.push(H(h));return w},p=(T,L)=>{for(let w=T;w<=L&&w<B;w++)if(!v(w))return!1;return!0},l=()=>{let T=[],L=null,w=Array.from(q.keys()).sort((h,c)=>h-c);for(let h of w){let c=q.get(h);if(!c)continue;let x=h*Q;for(let I=0;I<Q;I++){let F=x+I;if(F>=B)break;if(c.items[I]!==void 0)if(L===null)L={start:F,end:F};else if(F===L.end+1)L.end=F;else T.push(L),L={start:F,end:F};else if(L!==null)T.push(L),L=null}}if(L!==null)T.push(L);return T},d=(T,L)=>{let w=[],h=null;for(let c=T;c<=L&&c<B;c++)if(!v(c))if(h===null)h={start:c,end:c};else h.end=c;else if(h!==null)w.push(h),h=null;if(h!==null)w.push(h);return w},r=(T)=>{return q.has(T)},b=(T)=>{let L=q.get(T);if(L)L.lastAccess=Date.now()},s=(T,L)=>{if(T>L||q.size===0)return;let w=Date.now(),h=Z(Math.max(0,T)),c=Z(Math.min(B-1,L));for(let x=h;x<=c;x++){let I=q.get(x);if(I)I.lastAccess=w}},Q0=(T,L)=>{if(_<=j)return 0;let w=Math.max(0,T-Y),h=Math.min(B-1,L+Y),c=Z(w),x=Z(h),I=0,F=[];for(let[X,V]of q)if(X<c||X>x)I+=V.count,F.push(X),_-=V.count,q.delete(X);if(I>0&&U)U(I,F);return I},i=()=>{if(_<=j)return 0;let T=Array.from(q.entries()).sort(([,h],[,c])=>h.lastAccess-c.lastAccess),L=0,w=[];for(let[h,c]of T){if(_<=j)break;L+=c.count,_-=c.count,w.push(h),q.delete(h)}if(L>0&&U)U(L,w);return L},P=()=>{return{totalItems:B,cachedItems:_,cachedChunks:q.size,chunkSize:Q,maxCachedItems:j,memoryEfficiency:B>0?1-_/B:1}},S=()=>_,$=()=>{q.clear(),_=0};return{chunkSize:Q,maxCachedItems:j,getTotal:R,setTotal:G,get:H,has:v,set:z,setRange:M,delete:C,getRange:y,isRangeLoaded:p,getLoadedRanges:l,findUnloadedRanges:d,getChunkIndex:Z,isChunkLoaded:r,touchChunk:b,touchChunksForRange:s,evictDistant:Q0,evictToLimit:i,getStats:P,getCachedCount:S,clear:$,reset:()=>{$(),B=0}}},_4=(J)=>{if(J.length===0)return[];let Q=[...J].sort((Y,U)=>Y.start-U.start),j=[{...Q[0]}];for(let Y=1;Y<Q.length;Y++){let U=Q[Y],q=j[j.length-1];if(U.start<=q.end+1)q.end=Math.max(q.end,U.end);else j.push({...U})}return j},P1=(J,Q,j)=>{let Y=Math.floor(J.start/j)*j,U=Math.ceil((J.end+1)/j)*j-1,q={start:Y,end:U};if(Q.length===0)return[q];let B=[],_=_4(Q),K=q.start;for(let Z of _){if(Z.end<K)continue;if(Z.start>q.end)break;if(Z.start>K)B.push({start:K,end:Math.min(Z.start-1,q.end)});if(K=Z.end+1,K>q.end)break}if(K<=q.end)B.push({start:K,end:q.end});return B};var w1=(J={})=>{let{maskCharacter:Q=O1,maxSampleSize:j=E1}=J,Y=[],U=!1,q=(N)=>{if(U||N.length===0)return;let R=Math.min(N.length,j);for(let G=0;G<R;G++){let H=N[G];if(!H||typeof H!=="object")continue;let v={};for(let[z,M]of Object.entries(H)){if(z.startsWith("_")||z==="id")continue;v[z]=String(M??"").length}if(Object.keys(v).length>0)Y.push(v)}U=!0},B=()=>U,_=(N)=>{let R={id:`${y0}${N}`,[LJ]:!0,_index:N};if(Y.length===0)return R.label=Q.repeat(12),R;let G=Y[N%Y.length];for(let[H,v]of Object.entries(G))R[H]=Q.repeat(Math.max(1,v));return R};return{analyzeStructure:q,hasAnalyzedStructure:B,generate:_,generateRange:(N,R)=>{let G=[];for(let H=N;H<=R;H++)G.push(_(H));return G},clear:()=>{Y=[],U=!1}}},ZJ=(J)=>{if(!J||typeof J!=="object")return!1;return J[LJ]===!0};var D4=50,R1=(J={})=>{let{adapter:Q,initialItems:j,initialTotal:Y,storage:U,placeholder:q,pageSize:B=D4,onStateChange:_,onItemsLoaded:K,onItemsEvicted:Z}=J,N=y1({...U,onEvict:(a,J0)=>{Z?.(a),b()}}),R=null,G=()=>{if(!R)R=w1(q);return R},H=new Map,v=!1,z,M=!0,C,y=[],p=0,l=new Map,d=new Map,r=()=>{for(let a of d.values())a.abort();d.clear(),l.clear()},b=()=>{_?.(L())},s=()=>{H.clear();let a=N.getLoadedRanges();for(let J0 of a)for(let j0=J0.start;j0<=J0.end;j0++){let q0=N.get(j0);if(q0&&!ZJ(q0))H.set(q0.id,j0)}},Q0=(a,J0)=>{if(!ZJ(J0))H.set(J0.id,a)},i=(a)=>{H.delete(a)},P=(a,J0)=>{return`${a}-${J0}`},S=()=>N.getTotal(),$=()=>N.getCachedCount(),u=()=>v,T=()=>M,L=()=>({total:N.getTotal(),cached:N.getCachedCount(),isLoading:v,pendingRanges:y,error:z,hasMore:M,cursor:C}),w=()=>N,h=()=>G(),c=(a)=>{let J0=N.get(a);if(J0!==void 0)return J0;if(a>=0&&a<N.getTotal())return G().generate(a);return},x=(a)=>{let J0=H.get(a);if(J0===void 0)return;return N.get(J0)},I=(a)=>{return H.get(a)??-1},F=(a)=>{let J0=N.get(a);return J0!==void 0&&!ZJ(J0)},X=(a,J0)=>{let j0=[],q0=N.getTotal(),Z0=0,U0=0;N.touchChunksForRange(a,Math.min(J0,q0-1));for(let B0=a;B0<=J0&&B0<q0;B0++){let V0=N.get(B0);if(V0!==void 0)j0.push(V0),Z0++;else j0.push(G().generate(B0)),U0++}return j0},V=(a)=>{N.setTotal(a),M=N.getCachedCount()<a,b()},k=(a,J0=0,j0)=>{if(Q&&a.length>0){let q0=G();if(!q0.hasAnalyzedStructure())q0.analyzeStructure(a)}for(let q0=0;q0<a.length;q0++){let Z0=a[q0];if(Z0!==void 0){let U0=J0+q0;N.set(U0,Z0),Q0(U0,Z0)}}if(j0!==void 0)N.setTotal(j0);else if(J0+a.length>N.getTotal())N.setTotal(J0+a.length);if(N.getCachedCount()>=N.getTotal()&&N.getTotal()>0)M=!1;b(),K?.(a,J0,N.getTotal())},E=(a,J0)=>{let j0=N.get(a);if(!j0)return!1;let q0=j0.id,Z0={...j0,...J0};if(N.set(a,Z0),J0.id!==void 0&&J0.id!==q0)i(q0);return Q0(a,Z0),b(),!0},W=(a)=>{let J0=H.get(a);if(J0===void 0)return!1;if(!N.delete(J0))return!1;return s(),r(),b(),!0},D=async(a,J0)=>{if(!Q)return;let j0=P(a,J0);if(l.has(j0))return;let q0=N.getLoadedRanges(),Z0=P1({start:a,end:J0},q0,N.chunkSize);if(Z0.length===0)return;let U0=N.chunkSize,B0=U0*2;for(let[X0,_0]of d){let E0=X0.indexOf("-"),D0=parseInt(X0.slice(0,E0),10);if(Math.abs(D0-a)>B0)_0.abort(),d.delete(X0),l.delete(X0)}let V0=[];for(let X0 of Z0){let _0=Math.floor(X0.start/U0),E0=Math.floor(X0.end/U0);for(let D0=_0;D0<=E0;D0++){let N0=D0*U0,A0=N0+U0-1,G0=P(N0,A0);if(!V0.some((L0)=>L0.start===N0)&&!l.has(G0))V0.push({start:N0,end:A0})}}let O0=[];for(let X0 of Z0){let _0=Math.floor(X0.start/U0),E0=Math.floor(X0.end/U0);for(let D0=_0;D0<=E0;D0++){let N0=D0*U0,A0=N0+U0-1,G0=P(N0,A0);if(l.has(G0)){let L0=l.get(G0);if(!O0.includes(L0))O0.push(L0)}}}for(let X0 of V0){let _0=P(X0.start,X0.end),E0=new AbortController;d.set(_0,E0);let D0=(async()=>{y.push(X0),v=!0,z=void 0,b();try{let N0=X0.end-X0.start+1,A0={offset:X0.start,limit:N0,cursor:void 0,signal:E0.signal},G0=await Q.read(A0);if(k(G0.items,X0.start,G0.total),G0.cursor)C=G0.cursor;let L0=X0.start+G0.items.length;if(L0>=p){if(p=L0,G0.hasMore!==void 0)M=G0.hasMore;else if(G0.total!==void 0)M=L0<G0.total}}catch(N0){if(N0?.name==="AbortError")return;z=N0 instanceof Error?N0:Error(String(N0))}finally{l.delete(_0),d.delete(_0),y=y.filter((N0)=>N0.start!==X0.start||N0.end!==X0.end),v=l.size>0,b()}})();l.set(_0,D0),O0.push(D0)}await Promise.all(O0)},f=async(a,J0)=>{if(N.isRangeLoaded(a,J0))return;await D(a,J0)},O=async()=>{if(!Q)return;await D(0,B-1)},A=async()=>{if(!Q||v||!M)return!1;let a=N.getCachedCount(),J0=N.getTotal(),j0=a,q0=Math.min(j0+B-1,J0>0?J0-1:j0+B-1);if(j0>=J0&&J0>0)return M=!1,!1;return await D(j0,q0),N.getCachedCount()>a},m=async()=>{if(N.clear(),N.setTotal(0),H.clear(),R)R.clear();r(),y=[],v=!1,C=void 0,M=!0,p=0,z=void 0,b()},n=(a,J0)=>{if(N.evictDistant(a,J0)>0)s()},o=()=>{N.clear(),H.clear(),C=void 0,z=void 0,y=[],v=!1,b()},t=()=>{if(N.reset(),H.clear(),R)R.clear();C=void 0,M=!0,p=0,z=void 0,y=[],v=!1,b()};if(j&&j.length>0)k(j,0,Y??j.length);else if(Y!==void 0)N.setTotal(Y),b();return{getState:L,getTotal:S,getCached:$,getIsLoading:u,getHasMore:T,getStorage:w,getPlaceholders:h,getItem:c,getItemById:x,getIndexById:I,isItemLoaded:F,getItemsInRange:X,setTotal:V,setItems:k,updateItem:E,removeItem:W,loadRange:D,ensureRange:f,loadInitial:O,loadMore:A,reload:m,evictDistant:n,clear:o,reset:t}};var zJ=(J)=>{let{adapter:Q,loading:j,storage:Y,total:U,autoLoad:q=!0}=J,B=j?.cancelThreshold??G1,_=j?.preloadThreshold??M1,K=j?.preloadAhead??D1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(Z){let{emitter:N}=Z,R=Z.config.reverse,G=Z.methods.get("_getGridLayout"),H=(P)=>{if(G){let S=G();if(S){let $=Z.dataManager.getTotal();return S.getItemRange(P.start,P.end,$)}}return P},v=R1({adapter:Q,...U!==void 0&&{initialTotal:U},pageSize:Y?.chunkSize??u0,...Y&&{storage:{...Y.chunkSize!==void 0&&{chunkSize:Y.chunkSize},...Y.maxCachedItems!==void 0&&{maxCachedItems:Y.maxCachedItems}}},onStateChange:()=>{if(Z.state.isInitialized){let P=Z.getVirtualTotal();Z.sizeCache.rebuild(P),Z.updateCompressionMode();let S=Z.getCachedCompression();Z.state.viewportState.totalSize=S.virtualSize,Z.state.viewportState.actualSize=S.actualSize,Z.state.viewportState.isCompressed=S.isCompressed,Z.state.viewportState.compressionRatio=S.ratio,Z.updateContentSize(S.virtualSize),Z.renderIfNeeded()}},onItemsLoaded:(P,S,$)=>{if(Z.state.isInitialized)Z.forceRender(),N.emit("load:end",{items:P,total:$,offset:S})}});Z.replaceDataManager(v);let z=null,M=null,C=0,y=!1,p=null,l=120,d=(P=!1)=>{if(y=!1,M=null,P)z=null;if(p!==null)clearTimeout(p),p=null},r=()=>{if(!M)return;M=null;let{renderRange:P}=Z.state.viewportState;if(P.end<P.start)return;z=null;let S=H(P);Z.dataManager.ensureRange(S.start,S.end).catch(($)=>{N.emit("error",{error:$,context:"ensureRange"})})};Z.afterScroll.push((P,S)=>{if(Z.state.isDestroyed)return;let $=Z.scrollController.getVelocity(),T=Z.scrollController.isTracking()&&$<=B;if(C>B&&$<=B)y=!0;else if(y&&$>B)d();if(y&&$<0.5)d(!0);if(C=$,(Z.scrollController.isAtTop()||Z.scrollController.isAtBottom())&&(y||M))d(!0),T=!0;let w=y&&$>0.5;if(T&&!Z.dataManager.getIsLoading()&&Z.dataManager.getHasMore()){if(R){if(P<AJ)N.emit("load:start",{offset:Z.dataManager.getCached(),limit:u0}),Z.dataManager.loadMore().catch((x)=>{N.emit("error",{error:x,context:"loadMore"})})}else if(Z.state.viewportState.totalSize-P-Z.state.viewportState.containerSize<AJ)N.emit("load:start",{offset:Z.dataManager.getCached(),limit:u0}),Z.dataManager.loadMore().catch((I)=>{N.emit("error",{error:I,context:"loadMore"})})}let{renderRange:h}=Z.state.viewportState;if(!z||h.start!==z.start||h.end!==z.end){if(z={start:h.start,end:h.end},T&&!w){if(M=null,p!==null)clearTimeout(p),p=null;let x=H(h),I=x.start,F=x.end,X=G?Z.dataManager.getTotal():Z.getVirtualTotal();if($>_)if(S==="down")F=Math.min(x.end+K,X-1);else I=Math.max(x.start-K,0);Z.dataManager.ensureRange(I,F).catch((V)=>{N.emit("error",{error:V,context:"ensureRange"})})}else if(M={start:h.start,end:h.end},w){if(p!==null)clearTimeout(p);p=setTimeout(()=>{p=null,r(),d()},l)}}});let b=200,s=null;Z.afterScroll.push((P,S)=>{if(s!==null)clearTimeout(s);s=setTimeout(()=>{s=null,r(),d()},b)}),Z.destroyHandlers.push(()=>{if(s!==null)clearTimeout(s),s=null;d()});let Q0=()=>{if(Z.state.isDestroyed)return;z=null;let{renderRange:P}=Z.state.viewportState;if(P.end>0){let S=H(P);Z.dataManager.ensureRange(S.start,S.end).catch(($)=>{N.emit("error",{error:$,context:"ensureRange"})})}r()};window.addEventListener("online",Q0),Z.destroyHandlers.push(()=>{window.removeEventListener("online",Q0)}),N.on("load:start",()=>{Z.dom.root.setAttribute("aria-busy","true")}),N.on("load:end",()=>{Z.dom.root.removeAttribute("aria-busy")}),Z.methods.set("loadVisibleRange",async()=>{z=null,M=null,Z.forceRender();let{renderRange:P}=Z.state.viewportState;if(P.end>0){let S=H(P);N.emit("load:start",{offset:S.start,limit:S.end-S.start+1}),await Z.dataManager.ensureRange(S.start,S.end)}}),Z.methods.set("reload",async(P)=>{z=null,M=null;let S=P?.snapshot,$=S!=null&&(S.total??0)>0&&S.index>0,u=$||P?.skipInitialLoad===!0;if(Z.invalidateRendered(),await Z.dataManager.reload(),!$)Z.scrollController.scrollTo(0);if(!u){N.emit("load:start",{offset:0,limit:u0}),await Z.dataManager.loadInitial(),Z.forceRender();let{renderRange:T}=Z.state.viewportState;if(T.end>0){let L=H(T);await Z.dataManager.ensureRange(L.start,L.end)}}if($){let T=Z.methods.get("restoreScroll");if(T)T(S)}});let i=!1;if(Z.methods.set("_cancelAutoLoad",()=>{i=!0}),q)queueMicrotask(()=>{if(i)return;N.emit("load:start",{offset:0,limit:u0}),Z.dataManager.loadInitial().catch((P)=>{N.emit("error",{error:P,context:"loadInitial"})})});else if(U!==void 0)Z.dataManager.setTotal(U)}}};var CJ=()=>{let J=null;return{name:"withPage",priority:5,setup(Q){let{dom:j,state:Y,config:U,emitter:q}=Q;if(j.root.style.overflow="visible",j.root.style.height="auto",U.horizontal)j.viewport.style.overflowX="visible",j.viewport.style.overflowY="visible";else j.viewport.style.overflow="visible";j.viewport.classList.remove(`${U.classPrefix}-viewport--custom-scrollbar`),Q.disableViewportResize(),Q.disableWheelHandler(),Q.setScrollTarget(window),Q.setScrollFns(()=>{let Z=j.viewport.getBoundingClientRect();if(U.horizontal)return Math.max(0,-Z.left);else return Math.max(0,-Z.top)},(Z)=>{let N=j.viewport.getBoundingClientRect();if(U.horizontal){let R=N.left+window.scrollX;window.scrollTo(R+Z,window.scrollY)}else{let R=N.top+window.scrollY;window.scrollTo(window.scrollX,R+Z)}}),Q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),Y.viewportState.containerSize=window.innerHeight;let{innerHeight:B,innerWidth:_}=window,K=()=>{let{innerWidth:Z,innerHeight:N}=window,R=U.horizontal?Z:N,G=U.horizontal?_:B;if(Math.abs(R-G)<=1)return;B=N,_=Z,Y.viewportState.containerSize=N,q.emit("resize",{width:Z,height:N});for(let H=0;H<Q.resizeHandlers.length;H++)Q.resizeHandlers[H](Z,N);Q.renderIfNeeded()};window.addEventListener("resize",K,{passive:!0}),J=()=>{window.removeEventListener("resize",K)},Q.destroyHandlers.push(J)},destroy(){if(J)J(),J=null}}};var vJ=(J,Q)=>{let j=0,Y=J.length-1;while(j<Y){let U=j+Y+1>>>1;if(J[U].headerLayoutIndex<=Q)j=U;else Y=U-1}return j},z1=(J,Q)=>{let j=0,Y=J.length-1;while(j<Y){let U=j+Y+1>>>1;if(J[U].firstDataIndex<=Q)j=U;else Y=U-1}return j},C1=(J,Q)=>{if(J===0)return[];let j=[],Y=Q(0),U=0,q=0;for(let B=1;B<J;B++){let _=Q(B);if(_!==Y){let K=B-U;j.push({key:Y,groupIndex:j.length,headerLayoutIndex:q,firstDataIndex:U,count:K}),q=q+1+K,Y=_,U=B}}return j.push({key:Y,groupIndex:j.length,headerLayoutIndex:q,firstDataIndex:U,count:J-U}),j},SJ=(J,Q)=>{if(J.length===0||Q.length===0)return[];let j=J.length+Q.length,Y=Array(j),U=0;for(let q of Q){Y[U]={id:`__group_header_${q.groupIndex}`,__groupHeader:!0,groupKey:q.key,groupIndex:q.groupIndex},U++;for(let B=0;B<q.count;B++)Y[U]=J[q.firstDataIndex+B],U++}return Y},fJ=(J,Q,j=!1)=>{let Y=typeof Q==="number"?(U)=>Q:Q;return(U)=>{let q=J.getEntry(U);if(q.type==="header"){if(j&&q.group.groupIndex===0)return 0;return J.getHeaderHeight(q.group.groupIndex)}return Y(q.dataIndex)}},v1=(J,Q)=>{let j=C1(J,Q.getGroupForIndex),Y=J+j.length,U=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return Y},get groupCount(){return j.length},get groups(){return j},getEntry:(G)=>{if(j.length===0)return{type:"item",dataIndex:G,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let H=vJ(j,G),v=j[H];if(G===v.headerLayoutIndex)return{type:"header",group:v};let z=G-v.headerLayoutIndex-1;return{type:"item",dataIndex:v.firstDataIndex+z,group:v}},layoutToDataIndex:(G)=>{if(j.length===0)return G;let H=vJ(j,G),v=j[H];if(G===v.headerLayoutIndex)return-1;let z=G-v.headerLayoutIndex-1;return v.firstDataIndex+z},dataToLayoutIndex:(G)=>{if(j.length===0)return G;let H=z1(j,G),v=j[H],z=G-v.firstDataIndex;return v.headerLayoutIndex+1+z},getGroupAtLayoutIndex:(G)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let H=vJ(j,G);return j[H]},getGroupAtDataIndex:(G)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let H=z1(j,G);return j[H]},getHeaderHeight:typeof U==="number"?(G)=>U:(G)=>{let H=j[G];if(!H)return 0;return U(H.key,G)},rebuild:(G)=>{j=C1(G,Q.getGroupForIndex),Y=G+j.length}}};var S1=(J,Q,j,Y,U,q=!1,B=0)=>{let _=q?"width":"height",K=q?"height":"width",Z=q?"X":"Y",N=(V,k)=>{V.style[_]=`${k}px`},R=document.createElement("div");R.className=`${U}-sticky-header`,R.setAttribute("role","presentation"),R.setAttribute("aria-hidden","true"),R.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(q?`top:0;bottom:0;left:${B||0}px`:`top:${B||0}px`);let G=()=>{let V=document.createElement("div");return V.className="sticky-group",V.style.position="absolute",V.style.willChange="transform",V.style[K]="100%",V},H=G(),v=G();R.append(H,v),J.insertBefore(R,J.firstChild);let z=H,M=v,C=Q.groups,y=[],p=[],l=0,d=()=>{C=Q.groups,l=C.length,y=Array(l),p=Array(l);for(let V=0;V<l;V++)y[V]=j.getOffset(C[V].headerLayoutIndex),p[V]=Q.getHeaderHeight(V)};d();let r=-1,b=0,s=-1,Q0=!1,i=0,P=!1,S=(V,k)=>{Y(V,k);let E=p[k];return N(V,E),E},$=(V)=>{V.replaceChildren(),V.style.transform=""},u=(V)=>{if(V===r)return;if(r=V,b=0,V<0||V>=l){$(z);return}b=S(z,V),N(R,b),z.style.transform=""},T=(V)=>{if(V===i)return;i=V;let k=Math.round(V);z.style.transform=`translate${Z}(${k}px)`,M.style.transform=`translate${Z}(${k+b}px)`},L=()=>{i=0,z.style.transform="",M.style.transform=""},w=()=>{if(!P)return;let V=z;z=M,M=V,r=s,b=r>=0?p[r]:0,N(R,b),$(M),s=-1,P=!1,L()},h=()=>{if(!P)return;$(M),s=-1,P=!1,L()},c=()=>{if(Q0)return;Q0=!0,R.style.display=""},x=()=>{if(!Q0)return;Q0=!1,R.style.display="none",$(z),r=-1,b=0,h()},I=(V)=>{if(l===0){x();return}if(V<y[0]){x();return}let k=0,E=l-1;while(k<E){let D=k+E+1>>>1;if(y[D]+p[D]<=V)k=D;else E=D-1}if(!Q0)c();u(k);let W=k+1;if(W<l){let D=y[W]-V;if(D<=0&&D>-b){if(s!==W||!P)s=W,S(M,W),P=!0;T(D)}else if(D<=-b){if(P)w()}else if(P)h()}else if(P)h()},F=()=>{d();let V=r;if(r=-1,b=0,V>=0)u(V)},X=()=>{R.remove(),r=-1,b=0,s=-1,Q0=!1,P=!1};return R.style.display="none",{update:I,refresh:F,show:c,hide:x,destroy:X}};var R0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var f1=(J,Q,j,Y,U,q)=>{if(Y===0)return 0;let B=Math.max(0,Math.min(J,Y-1)),_=Q.getOffset(B),K=Q.getSize(B),Z=Q.getTotalSize(),N=Math.max(0,Z-j),R;switch(q){case"center":R=_-j/2+K/2;break;case"end":R=_-j+K;break;case"start":default:R=_;break}return Math.max(0,Math.min(R,N))};var i0=(J,Q,j,Y,U="start",q,B=f1)=>{return B(J,Q,j,Y,q,U)};var G4=(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},IJ=(J)=>{let Q=J.header,j=Q?Q.height??Q.width:J.headerHeight,Y=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(!Y)throw Error("[vlist/builder] withGroups: header.template is required");let U=null,q=null,B=[],_=[];return{name:"withGroups",priority:10,setup(K){let{dom:Z,config:N,rawConfig:R}=K,{classPrefix:G}=N,H=G4(J,N.horizontal),z=R.item.height;B=R.items?[...R.items]:[];let M=B.length,C={getGroupForIndex:H.getGroupForIndex,header:{height:H.header.height,template:H.header.template},sticky:H.sticky??!1};U=v1(M,C),_=SJ(B,U.groups);let y=H.sticky!==!1,p=fJ(U,z,y);K.setSizeConfig(p),K.rebuildSizeCache(_.length),K.dataManager.setItems(_,0,_.length);let l=R.item.template,{template:d}=H.header,r=(x,I,F)=>{if(R0(x))return d(x.groupKey,x.groupIndex);return l(x,I,F)},b=K.methods.get("_getGridLayout"),s=K.methods.get("_replaceGridRenderer"),Q0=K.methods.get("_updateGridLayoutForGroups"),i=K.methods.get("_createGridRenderer"),P=K.methods.get("_getTableLayout"),S=K.methods.get("_updateTableForGroups"),$=K.methods.get("_getTableHeaderHeight");if(b&&s&&i){if(Q0)Q0((F)=>{let X=_[F];return!!(X&&R0(X))});let x=b(),I=i(Z.items,r,K.sizeCache,x,G,K.getContainerWidth(),()=>K.dataManager.getTotal(),N.ariaIdPrefix);s(I)}else if(P&&S)S((x)=>R0(x),H.header.template);else K.replaceTemplate(r);let u=$?$():0;if(Z.root.classList.add(`${G}--grouped`),H.sticky!==!1)if(K.methods.set("_getStickyHeaderHeight",()=>H.header.height),!N.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 x=H.header.template,I=(X,V)=>{let k=U.groups[V];if(!k)return;let E=x(k.key,k.groupIndex);if(typeof E==="string")X.innerHTML=E;else X.replaceChildren(E)};q=S1(Z.root,U,K.sizeCache,I,G,N.horizontal,u);let F=q;K.afterScroll.push((X,V)=>{F.update(X)}),q.update(K.scrollController.getScrollTop())}let T=R.item?.striped,L=()=>{if(T!=="data"&&T!=="even"&&T!=="odd")return;let x=new Int32Array(_.length),I=T==="odd"?1:0,F=0;for(let X=0;X<_.length;X++)if(R0(_[X])){if(x[X]=-1,T==="even"||T==="odd")F=0}else x[X]=F+++I;K.setStripeIndexFn((X)=>{if(X<0||X>=x.length)return X;return x[X]})};L();let w=()=>{if(!U)return;U.rebuild(B.length),_=SJ(B,U.groups);let x=fJ(U,z,y);if(K.setSizeConfig(x),K.rebuildSizeCache(_.length),K.dataManager.setItems(_,0,_.length),L(),q)q.refresh()};K.methods.set("setItems",(x)=>{B=x.slice(),w()}),K.methods.set("appendItems",(x)=>{B.push(...x),w()}),K.methods.set("prependItems",(x)=>{B.unshift(...x),w()}),K.methods.set("removeItem",(x)=>{B=B.filter((I)=>I.id!==x),w()});let{animateScroll:h,cancelScroll:c}=c0(K.scrollController,K.renderIfNeeded);K.methods.set("scrollToIndex",(x,I)=>{let F=U.dataToLayoutIndex(x),{align:X,behavior:V,duration:k}=w0(I),E=K.dataManager.getTotal(),W=K.adjustScrollPosition(i0(F,K.sizeCache,K.state.viewportState.containerSize,E,X,K.getCachedCompression()));if(V==="smooth")h(K.scrollController.getScrollTop(),W,k);else c(),K.scrollController.scrollTo(W)}),K.methods.set("_getItems",()=>B),K.methods.set("_getTotal",()=>B.length),K.methods.set("_isGroupHeader",(x)=>{let I=_[x];return!!(I&&R0(I))}),K.destroyHandlers.push(()=>{if(c(),q)q.destroy(),q=null;Z.root.classList.remove(`${G}--grouped`)})},destroy(){if(q)q.destroy(),q=null}}};var I1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Y=J.isHeaderFn,U={row:0,col:0},q=(v)=>{if(v<=0)return 0;if(!Y)return Math.ceil(v/Q);let z=0,M=0,C=0;for(let y=0;y<v;y++)if(Y(y)){if(C++,M>0)z++,M=0;z++,M=0}else if(M++,M>=Q)z++,M=0;if(M>0)z++;return z},B=(v)=>{return U.row=_(v),U.col=K(v),U},_=(v)=>{if(!Y)return Math.floor(v/Q);let z=0,M=0;for(let C=0;C<=v;C++)if(Y(C)){if(M>0)z++,M=0;if(C===v)return z;z++,M=0}else{if(C===v)return z;if(M++,M>=Q)z++,M=0}return console.warn(`⚠️ getRow(${v}) fell through - returning ${z}`),z},K=(v)=>{if(!Y)return v%Q;if(Y(v))return 0;let z=0;for(let M=0;M<=v;M++)if(Y(M))z=0;else{if(M===v)return z;if(z++,z>=Q)z=0}return z},Z=(v,z,M)=>{if(M<=0)return{start:0,end:-1};if(!Y){let d=Math.max(0,v*Q),r=Math.min(M-1,(z+1)*Q-1);return{start:d,end:r}}let C=-1,y=-1,p=0,l=0;for(let d=0;d<M;d++){if(Y(d)){if(l>0)p++,l=0;if(p>=v&&p<=z){if(C===-1)C=d;y=d}p++,l=0}else{if(p>=v&&p<=z){if(C===-1)C=d;y=d}if(l++,l>=Q)p++,l=0}if(p>z&&l===0)break}if(C===-1)return{start:0,end:-1};return{start:C,end:y}},N=(v,z,M)=>{if(z<0||z>=Q)return-1;let C=v*Q+z;if(C<0||C>=M)return-1;return C},R=(v)=>{let z=(Q-1)*j;return Math.max(0,(v-z)/Q)};return{get columns(){return Q},get gap(){return j},update:(v)=>{if(v.columns!==void 0)Q=Math.max(1,Math.floor(v.columns));if(v.gap!==void 0)j=v.gap;if(v.isHeaderFn!==void 0)Y=v.isHeaderFn},getTotalRows:q,getPosition:B,getRow:_,getCol:K,getItemRange:Z,getItemIndex:N,getColumnWidth:R,getColumnOffset:(v,z)=>{let M=R(z);return v*(M+j)}}};var M4=(J=200)=>{let Q=[];return{acquire:()=>{let q=Q.pop();if(q)return q;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(q)=>{if(q.remove(),Q.length<J)q.className="",q.textContent="",q.removeAttribute("style"),q.removeAttribute("data-index"),q.removeAttribute("data-id"),q.removeAttribute("data-row"),q.removeAttribute("data-col"),Q.push(q)},clear:()=>{Q.length=0}}},O4=1,hJ=(J,Q,j,Y,U,q,B,_,K=!1)=>{let Z=M4(),N=new Map,R=q,G=!1,H=0,v="",z=-1,M={selected:!1,focused:!1},C=(X,V)=>{return M.selected=X,M.focused=V,M},y=`${U}-item ${U}-grid-item`,p=`${U}-item--selected`,l=`${U}-item--focused`,d=`${U}-item--placeholder`,r=`${U}-item--replaced`,b=(X,V)=>{if(typeof V==="string")X.innerHTML=V;else X.replaceChildren(V)},s=(X,V,k)=>{X.classList.toggle(p,V),X.classList.toggle(l,k)},Q0=(X,V)=>{let k=Y.getRow(X);if(V?.compression?.isCompressed)return l0(k,V.scrollPosition,j,V.totalItems,V.containerSize,V.compression,V.rangeStart);return j.getOffset(k)},i=(X,V)=>{let k=G&&Y.getCol(X)===0,E=k?0:Y.getCol(X),W=k?0:Y.getColumnOffset(E,R),D;if(G){let f=Y.getRow(X),O=0,A=new Set;for(let m=0;m<X;m++){let n=Y.getRow(m);if(n<f&&!A.has(n)){let o=j.getSize(m);O+=o,A.add(n)}}D=O}else D=Q0(X,V);if(K)return`translate(${Math.round(D)}px, ${Math.round(W)}px)`;return`translate(${Math.round(W)}px, ${Math.round(D)}px)`},P=(X,V)=>{X.style.transform=V},S=(X,V)=>{let k=X.dataset.id?.startsWith("__group_header"),E=k?R:Y.getColumnWidth(R),W;if(G||k)W=j.getSize(V)-Y.gap;else{let D=Y.getRow(V);W=j.getSize(D)-Y.gap}if(K)X.style.width=`${W}px`,X.style.height=`${E}px`;else X.style.width=`${E}px`,X.style.height=`${W}px`},$=(X,V,k,E,W)=>{let D=Z.acquire(),f=C(k,E);if(D.className=y,D.dataset.index=String(X),D.dataset.id=String(V.id),D.dataset.row=String(Y.getRow(X)),D.dataset.col=String(Y.getCol(X)),D.ariaSelected=String(k),_)D.id=`${_}-item-${X}`;if(B){let m=B();if(m!==z)z=m,v=String(m);D.setAttribute("aria-setsize",v),D.setAttribute("aria-posinset",String(X+1))}S(D,X);let O=Q(V,X,f);if(b(D,O),String(V.id).startsWith(y0))D.classList.add(d);return s(D,k,E),P(D,W),{element:D,lastItemId:V.id,lastSelected:k,lastFocused:E,lastTransform:W,lastSeenFrame:H}},u=(X,V,k,E,W)=>{if(H++,V.start===0&&X.length>0)G=R0(X[0]);for(let[O,A]of N)if(O>=V.start&&O<=V.end)A.lastSeenFrame=H;else if(H-A.lastSeenFrame>O4)Z.release(A.element),N.delete(O);let D=!1;if(B){let O=B();if(O!==z)z=O,v=String(O),D=!0}let f=null;for(let O=V.start;O<=V.end;O++){let A=O-V.start,m=X[A];if(!m){console.warn(`⚠️ RENDER: Missing item at index ${O} (range: ${V.start}-${V.end}, items.length: ${X.length})`);continue}let n=k.has(m.id),o=O===E,t=N.get(O);if(t){let a=t.lastItemId!==m.id,J0=t.lastSelected!==n,j0=t.lastFocused!==o;if(a){let Z0=String(t.lastItemId),U0=String(m.id),B0=Z0.startsWith(y0),V0=U0.startsWith(y0);if(!V0&&P0(k,O,m.id))n=!0;let O0=C(n,o),X0=Q(m,O,O0);if(b(t.element,X0),t.element.dataset.id=U0,t.element.dataset.row=String(Y.getRow(O)),t.element.dataset.col=String(Y.getCol(O)),S(t.element,O),t.element.classList.toggle(d,V0),B0&&!V0)t.element.classList.add(r),setTimeout(()=>t.element.classList.remove(r),300);t.lastItemId=m.id}if(a||J0||j0)s(t.element,n,o),t.element.ariaSelected=String(n),t.lastSelected=n,t.lastFocused=o;let q0=i(O,W);if(t.lastTransform!==q0)P(t.element,q0),t.lastTransform=q0;if(D)t.element.setAttribute("aria-setsize",v)}else{if(P0(k,O,m.id))n=!0;let a=i(O,W),J0=$(O,m,n,o,a);if(!f)f=document.createDocumentFragment();f.appendChild(J0.element),N.set(O,J0)}}if(f)J.appendChild(f)},T=(X)=>{for(let[V,k]of N){let E=i(V,X);if(k.lastTransform!==E)P(k.element,E),k.lastTransform=E}},L=(X,V,k,E)=>{let W=N.get(X);if(!W)return;let D=C(k,E),f=Q(V,X,D);b(W.element,f),s(W.element,k,E),W.element.dataset.id=String(V.id),W.element.ariaSelected=String(k),S(W.element,X),W.lastItemId=V.id,W.lastSelected=k,W.lastFocused=E},w=(X,V,k)=>{let E=N.get(X);if(!E)return;let W=E.lastSelected!==V,D=E.lastFocused!==k;if(W||D)s(E.element,V,k),E.lastSelected=V,E.lastFocused=k},h=(X)=>{return N.get(X)?.element},c=(X)=>{if(Math.abs(X-R)<1)return;R=X;for(let[V,k]of N){S(k.element,V);let E=i(V);P(k.element,E),k.lastTransform=E}},x=()=>{p0(J,N.keys(),(X)=>N.get(X)?.element)},I=()=>{for(let[,X]of N)Z.release(X.element);N.clear()};return{render:u,updatePositions:T,updateItem:L,updateItemClasses:w,getElement:h,sortDOM:x,updateContainerWidth:c,clear:I,destroy:()=>{I(),Z.clear()}}};var E4=new Set,pJ=(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(Y){let{dom:U,emitter:q,config:B,rawConfig:_}=Y,{classPrefix:K}=B;if(B.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let Z=B.horizontal,N=YJ($0(_.padding),Z),R=()=>{return(Z?U.viewport.clientHeight:Y.getContainerWidth())-N},G=_.items?.some((I)=>I.__groupHeader===!0),H={columns:J.columns,gap:J.gap??0};if(G)H.isHeaderFn=(I)=>{let F=Y.dataManager.getItem(I);return!!(F&&F.__groupHeader===!0)};Q=I1(H);let v=Q.gap;Y.setVirtualTotalFn(()=>{let I=Y.dataManager.getTotal();return Q.getTotalRows(I)}),Y.setItemToScrollIndexFn((I)=>Math.floor(I/H.columns)),Y.methods.set("_getNavTotal",()=>Y.dataManager.getTotal()),Y.methods.set("_getNavDelta",()=>Z?{ud:1,lr:H.columns,cols:H.columns}:{ud:H.columns,lr:1,cols:H.columns});let z=_.item,M=B.horizontal?z.width:z.height,C={containerWidth:R(),columns:Q.columns,gap:Q.gap},y={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof M==="function")Y.setSizeConfig((I)=>{let F=C.containerWidth-2,X=(C.columns-1)*C.gap;return y.containerWidth=C.containerWidth,y.columns=C.columns,y.gap=C.gap,y.columnWidth=(F-X)/C.columns,y.row=Q.getRow(I),y.column=Q.getCol(I),y.totalRows=Q.getTotalRows(Y.dataManager.getTotal()),y.totalColumns=C.columns,M(I,y)+C.gap});else if(v>0)Y.setSizeConfig(M+v);if(Y.rebuildSizeCache(),v>0){let I=Y.sizeCache.getTotalSize;Y.sizeCache.getTotalSize=()=>{let F=I();return F>0?F-C.gap:0}}U.root.classList.add(`${K}--grid`);let p=R(),l=_.item.template,d=()=>{j=hJ(U.items,l,Y.sizeCache,Q,K,p,()=>Y.dataManager.getTotal(),B.ariaIdPrefix,B.horizontal),Y.replaceRenderer(j)};d(),Y.setUpdateItemClassesFn((I,F,X)=>{j?.updateItemClasses(I,F,X)}),Y.methods.set("_updateRenderedItem",(I,F,X,V)=>{j?.updateItem(I,F,X,V)}),Y.methods.set("_getGridLayout",()=>Q),Y.methods.set("_getGridConfig",()=>H),Y.methods.set("_replaceGridRenderer",(I)=>{j=I}),Y.methods.set("_createGridRenderer",hJ),Y.methods.set("_updateGridLayoutForGroups",(I)=>{Q.update({isHeaderFn:I});let F=Y.dataManager.getTotal(),X=0;for(let V=0;V<F;V++)if(Q.getCol(V)===0){let k=Y.sizeCache.getSize(V);X+=k}Y.sizeCache.getTotalSize=()=>X,Y.updateContentSize(X),d()}),Y.methods.set("updateGrid",(I)=>{if(I.columns!==void 0){if(!Number.isInteger(I.columns)||I.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");H.columns=I.columns}if(I.gap!==void 0){if(I.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");H.gap=I.gap}if(Q)Q.update(H);let F=R();if(C.containerWidth=F,C.columns=H.columns,C.gap=H.gap??0,j)j.updateContainerWidth(F);Y.rebuildSizeCache(),Y.updateContentSize(Y.sizeCache.getTotalSize()),Y.updateCompressionMode();for(let X=0;X<Y.contentSizeHandlers.length;X++)Y.contentSizeHandlers[X]();if(j)j.clear();Y.forceRender()});let r=null,b=null,s=!1,Q0=()=>{if(s)return;s=!0,r=Y.methods.get("_getSelectedIds")??null,b=Y.methods.get("_getFocusedIndex")??null},i=-1,P=-1,S=!0,$=B.overscan,u={start:0,end:0},T={start:0,end:0},L=()=>{if(Y.state.isDestroyed)return;let I=Y.scrollController.getScrollTop(),F=Y.state.viewportState.containerSize;if(!S&&I===i&&F===P)return;i=I,P=F,S=!1;let X=Y.getVirtualTotal();Y.getVisibleRange(I,F,X,u),T.start=Math.max(0,u.start-$),T.end=Math.min(X-1,u.end+$);let V=Y.state.viewportState;V.scrollPosition=I,V.visibleRange.start=u.start,V.visibleRange.end=u.end,V.renderRange.start=T.start,V.renderRange.end=T.end;let k=Y.state.lastRenderRange,E=V.isCompressed,W=k.start!==T.start||k.end!==T.end;if(!W&&E){j.updatePositions(Y.getCompressionContext());return}let D=Y.dataManager.getTotal(),f=Q.getItemRange(T.start,T.end,D),O=Y.dataManager.getItemsInRange(f.start,f.end),A=E?Y.getCompressionContext():void 0;Q0();let m=r?r():E4,n=b?b():-1;if(j.render(O,f,m,n,A),W)k.start=T.start,k.end=T.end,q.emit("range:change",{range:{start:T.start,end:T.end}})},w=()=>{if(Y.state.isDestroyed)return;Y.state.lastRenderRange.start=-1,Y.state.lastRenderRange.end=-1,S=!0,L()};Y.setRenderFns(L,w);let h=typeof M==="function";Y.resizeHandlers.push((I,F)=>{let X=(Z?F:I)-N;if(Math.abs(X-C.containerWidth)<1)return;if(C.containerWidth=X,j)j.updateContainerWidth(X);if(h){Y.rebuildSizeCache(),Y.updateContentSize(Y.sizeCache.getTotalSize()),Y.updateCompressionMode();for(let V=0;V<Y.contentSizeHandlers.length;V++)Y.contentSizeHandlers[V]();if(j)j.clear();Y.forceRender()}});let{animateScroll:c,cancelScroll:x}=c0(Y.scrollController,Y.renderIfNeeded);if(Y.methods.set("cancelScroll",x),Y.methods.set("scrollToIndex",(I,F)=>{let X=Math.floor(I/J.columns),{align:V,behavior:k,duration:E}=w0(F),W=Y.dataManager.getState(),D=Q.getTotalRows(W.total),f=Math.max(0,Math.min(X,D-1)),O=Y.adjustScrollPosition(i0(f,Y.sizeCache,Y.state.viewportState.containerSize,D,V,Y.getCachedCompression()));if(k==="smooth")c(Y.scrollController.getScrollTop(),O,E);else x(),Y.scrollController.scrollTo(O)}),!Y.methods.has("_getTotal"))Y.methods.set("_getTotal",()=>Y.dataManager.getTotal());Y.idleHandlers.push(()=>{if(j)j.sortDOM()}),Y.destroyHandlers.push(()=>{if(x(),j)j.destroy(),j=null;U.root.classList.remove(`${K}--grid`)})},destroy(){if(j)j.destroy(),j=null}}};var h1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Y=J.containerSize,U=0,q=[],B=()=>{let M=(Q-1)*j;U=Math.max(0,(Y-M)/Q),q=Array(Q);let C=U+j;for(let y=0;y<Q;y++)q[y]=y*C};B();let _=[],K=0,Z=[],N=(M)=>{let C=0,y=M[0];for(let p=1;p<M.length;p++){let l=M[p];if(l<y)y=l,C=p}return C},R=(M,C)=>{if(M<=0)return K=0,_=[],[];let y=Array(Q).fill(0),p=Array(Q);for(let r=0;r<Q;r++)p[r]=[];let l=Array(M);for(let r=0;r<M;r++){let b=N(y),s=C(r),Q0=y[b];l[r]={index:r,x:q[b],y:Q0,lane:b,size:s,crossSize:U},p[b].push(r),y[b]=Q0+s+j}_=p;let d=0;for(let r=0;r<Q;r++){let b=y[r],s=b>0?b-j:0;if(s>d)d=s}return K=d,l},G=(M)=>{if(M.length===0)return K>0?K:0;if(K>0)return K;let C=Array(Q).fill(0);for(let p of M){let l=p.y+p.size,d=C[p.lane];if(l>d)C[p.lane]=l}let y=0;for(let p=0;p<Q;p++)if(C[p]>y)y=C[p];return y},H=(M,C,y)=>{if(M.length===0||y<=C)return Z.length=0,Z;if(_.length===0||_.length!==Q)return v(M,C,y);Z.length=0;for(let p=0;p<Q;p++){let l=_[p],d=l.length;if(d===0)continue;let r=0,b=d;while(r<b){let s=r+b>>>1,Q0=M[l[s]];if(Q0.y+Q0.size<=C)r=s+1;else b=s}for(let s=r;s<d;s++){let Q0=M[l[s]];if(Q0.y>=y)break;Z.push(Q0)}}return Z},v=(M,C,y)=>{let p=[];for(let l of M)if(l.y+l.size>C&&l.y<y)p.push(l);return p};return{get columns(){return Q},get gap(){return j},get containerSize(){return Y},update:(M)=>{let C=!1;if(M.columns!==void 0){let y=Math.max(1,Math.floor(M.columns));if(y!==Q)Q=y,C=!0}if(M.gap!==void 0&&M.gap!==j)j=M.gap,C=!0;if(M.containerSize!==void 0&&M.containerSize!==Y)Y=M.containerSize,C=!0;if(C)B()},calculateLayout:R,getTotalSize:G,getVisibleItems:H}};var A4=(J=200)=>{let Q=[];return{acquire:()=>{let q=Q.pop();if(q)return q;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(q)=>{if(q.remove(),Q.length<J)q.className="",q.textContent="",q.removeAttribute("style"),q.removeAttribute("data-index"),q.removeAttribute("data-id"),q.removeAttribute("data-lane"),Q.push(q)},clear:()=>{Q.length=0}}},L4=1,p1=(J,Q,j,Y=!1,U,q)=>{let B=A4(),_=new Map,K=new Set,Z=0,N="",R=-1,G={selected:!1,focused:!1},H=(P,S)=>{return G.selected=P,G.focused=S,G},v=`${j}-item ${j}-masonry-item`,z=`${j}-item--selected`,M=`${j}-item--focused`,C=(P,S)=>{if(typeof S==="string")P.innerHTML=S;else P.replaceChildren(S)},y=(P,S,$)=>{P.classList.toggle(z,S),P.classList.toggle(M,$)},p=(P,S)=>{if(Y)P.style.transform=`translate(${Math.round(S.y)}px, ${Math.round(S.x)}px)`;else P.style.transform=`translate(${Math.round(S.x)}px, ${Math.round(S.y)}px)`},l=(P,S)=>{if(Y)P.style.width=`${S.size}px`,P.style.height=`${S.crossSize}px`;else P.style.width=`${S.crossSize}px`,P.style.height=`${S.size}px`},d=(P,S,$,u,T)=>{let L=B.acquire(),w=H(u,T);if(L.className=v,L.dataset.index=String(P),L.dataset.id=String(S.id),L.dataset.lane=String($.lane),L.ariaSelected=String(u),q)L.id=`${q}-item-${P}`;if(U){let c=U();if(c!==R)R=c,N=String(c);L.setAttribute("aria-setsize",N),L.setAttribute("aria-posinset",String(P+1))}l(L,$);let h=Q(S,P,w);return C(L,h),y(L,u,T),p(L,$),{element:L,lastItemId:S.id,lastSelected:u,lastFocused:T,lastY:$.y,lastX:$.x,lastSize:$.size,lastCrossSize:$.crossSize,lastSeenFrame:Z}},r=(P,S,$,u)=>{Z++,K.clear();for(let L=0;L<S.length;L++)K.add(S[L].index);for(let[L,w]of _)if(K.has(L))w.lastSeenFrame=Z;else if(Z-w.lastSeenFrame>L4)B.release(w.element),_.delete(L);let T=null;for(let L=0;L<S.length;L++){let w=S[L],h=w.index,c=P(h);if(!c)continue;let x=$.has(c.id),I=h===u,F=_.get(h);if(F){let X=F.lastItemId!==c.id,V=F.lastSelected!==x,k=F.lastFocused!==I,E=F.lastY!==w.y||F.lastX!==w.x,W=F.lastSize!==w.size||F.lastCrossSize!==w.crossSize;if(X){let D=H(x,I),f=Q(c,h,D);C(F.element,f),F.element.dataset.id=String(c.id),F.lastItemId=c.id}if(X||V||k)y(F.element,x,I),F.element.ariaSelected=String(x),F.lastSelected=x,F.lastFocused=I;if(W)l(F.element,w),F.lastSize=w.size,F.lastCrossSize=w.crossSize;if(E)p(F.element,w),F.lastY=w.y,F.lastX=w.x}else{let X=d(h,c,w,x,I);if(!T)T=document.createDocumentFragment();T.appendChild(X.element),_.set(h,X)}}if(T)J.appendChild(T)},b=()=>{for(let{element:P}of _.values())B.release(P);_.clear(),J.innerHTML=""};return{render:r,getElement:(P)=>_.get(P)?.element,updateItemClasses:(P,S,$)=>{let u=_.get(P);if(!u)return;let T=u.lastSelected!==S,L=u.lastFocused!==$;if(T||L)y(u.element,S,$),u.lastSelected=S,u.lastFocused=$},sortDOM:()=>{p0(J,_.keys(),(P)=>_.get(P)?.element)},clear:b,destroy:()=>{b(),B.clear()}}};var F4=new Set,T4=100,uJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let Q=null,j=null,Y=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(U){let{dom:q,emitter:B,config:_,rawConfig:K}=U,Z=_.classPrefix,N=_.horizontal;if(_.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");q.root.classList.add(`${Z}--masonry`);let R=$0(K.padding),G=YJ(R,N),H=h0(R,N),v=()=>{return(N?q.viewport.clientHeight:q.viewport.clientWidth)-G},z={columns:J.columns,gap:J.gap??0,containerSize:v()};Q=h1(z);let M=K.item,C=N&&K.item.width?K.item.width:M.height,y={containerWidth:0,columns:0,gap:0,columnWidth:0},p=typeof C==="function"?(D)=>C(D,y):()=>C,l=()=>{let D=U.dataManager.getTotal(),f=Q;y.containerWidth=f.containerSize,y.columns=f.columns,y.gap=f.gap;let O=(f.columns-1)*f.gap;y.columnWidth=Math.max(0,(y.containerWidth-O)/f.columns),Y=f.calculateLayout(D,p),Q0();let A=Q.getTotalSize(Y);U.sizeCache.getTotalSize=()=>A,U.updateContentSize(A)},d=K.item.template;j=p1(q.items,d,Z,N,()=>U.dataManager.getTotal(),_.ariaIdPrefix),U.setUpdateItemClassesFn((D,f,O)=>{j?.updateItemClasses(D,f,O)});let r=[],b=new Int32Array(0),s=[],Q0=()=>{let D=z.columns,f=Y.length;if(r=Array.from({length:D},()=>[]),b.length<f)b=new Int32Array(f);for(let O=0;O<f;O++){let A=Y[O],m=r[A.lane].length;r[A.lane].push(O),b[O]=m}s=Array(D);for(let O=0;O<D;O++){let A=r[O],m=new Float64Array(A.length);for(let n=0;n<A.length;n++){let o=Y[A[n]];m[n]=o.y+o.size*0.5}s[O]=m}};U.methods.set("_getNavTotal",()=>U.dataManager.getTotal());let i=(D,f)=>{let O=D.length;if(O===0)return-1;if(O===1)return 0;let A=0,m=O-1;while(A<m){let n=A+m>>1;if(D[n]<f)A=n+1;else m=n}if(A>0&&Math.abs(D[A-1]-f)<=Math.abs(D[A]-f))return A-1;return A};U.methods.set("_navigate",(D,f,O)=>{let A=Y[D];if(!A)return D;let m=A.lane,n=z.columns,o=b[D],t=r[m];switch(N?f==="ArrowDown"?"ArrowRight":f==="ArrowUp"?"ArrowLeft":f==="ArrowRight"?"ArrowDown":f==="ArrowLeft"?"ArrowUp":f:f){case"ArrowDown":{if(o+1<t.length)return t[o+1];return D}case"ArrowUp":{if(o>0)return t[o-1];return D}case"ArrowRight":{if(m>=n-1)return D;let J0=m+1,j0=A.y+A.size*0.5,q0=r[J0];if(q0.length===0)return D;let Z0=i(s[J0],j0);return Z0>=0?q0[Z0]:D}case"ArrowLeft":{if(m<=0)return D;let J0=m-1,j0=A.y+A.size*0.5,q0=r[J0];if(q0.length===0)return D;let Z0=i(s[J0],j0);return Z0>=0?q0[Z0]:D}case"Home":return 0;case"End":return O-1;case"PageDown":{let J0=U.state.viewportState.containerSize,j0=A.size>0?A.size:150,q0=Math.max(1,Math.floor(J0/j0)),Z0=Math.min(o+q0,t.length-1);return t[Z0]}case"PageUp":{let J0=U.state.viewportState.containerSize,j0=A.size>0?A.size:150,q0=Math.max(1,Math.floor(J0/j0)),Z0=Math.max(0,o-q0);return t[Z0]}}return D}),U.methods.set("_scrollItemIntoView",(D)=>{let f=Y[D];if(!f)return;let O=U.scrollController.getScrollTop(),A=U.state.viewportState.containerSize,m=f.y,n=m+f.size,o=O+A;if(m<O)U.scrollController.scrollTo(U.adjustScrollPosition(Math.max(0,m)));else if(n>o)U.scrollController.scrollTo(U.adjustScrollPosition(n-A))});let P=null,S=null,$=!1,u=()=>{if($)return;$=!0,P=U.methods.get("_getSelectedIds")??null,S=U.methods.get("_getFocusedIndex")??null},T=(D)=>U.dataManager.getItem(D),L=-1,w=-1,h=!0,c=_.overscan*T4,x=()=>{if(U.state.isDestroyed)return;u();let D=U.scrollController.getScrollTop(),f=U.state.viewportState.containerSize;if(!h&&D===L&&f===w)return;L=D,w=f,h=!1;let O=Math.max(0,D-c),A=D+f+c,m=Q.getVisibleItems(Y,O,A),n=P?P():F4,o=S?S():-1;if(j&&m.length>0)j.render(T,m,n,o);let t=U.state.viewportState;t.scrollPosition=D;let a=m.length,J0=a>0?m[0].index:0,j0=a>0?m[a-1].index:0;t.visibleRange.start=J0,t.visibleRange.end=j0,t.renderRange.start=J0,t.renderRange.end=j0;let q0=U.state.lastRenderRange;if(q0.start!==J0||q0.end!==j0)q0.start=J0,q0.end=j0,B.emit("range:change",{range:{start:J0,end:j0}})},I=()=>{U.state.lastRenderRange.start=-1,U.state.lastRenderRange.end=-1,h=!0,x()};U.setRenderFns(x,I);let F=(D,f)=>{let O=(N?f:D)-G;if(Q&&Q.containerSize!==O){if(Q.update({containerSize:O}),l(),j)j.clear();I()}};U.resizeHandlers.push(F);let X=()=>{l(),I()},V=U.dataManager,k=(D)=>{if(typeof V[D]!=="function")return;let f=V[D].bind(V);V[D]=(...O)=>{f(...O),X()}};k("setItems"),k("appendItems"),k("prependItems"),k("updateItem"),k("removeItem");let{animateScroll:E,cancelScroll:W}=c0(U.scrollController,U.renderIfNeeded);U.methods.set("cancelScroll",W),U.methods.set("scrollToIndex",(D,f)=>{let O=Y[D];if(!O)return;let{align:A,behavior:m,duration:n}=w0(f),o=O.y,t=U.state.viewportState.containerSize,a=o;if(A==="center")a=o-t/2+O.size/2;else if(A==="end"){a=o-t+O.size;let J0=Q.getTotalSize(Y);if(D===Y.length-1)a=Math.max(0,J0+H-t)}if(a=Math.max(0,a),a=U.adjustScrollPosition(a),m==="smooth")E(U.scrollController.getScrollTop(),a,n);else W(),U.scrollController.scrollTo(a)}),l(),U.idleHandlers.push(()=>{if(j)j.sortDOM()}),U.destroyHandlers.push(()=>{if(W(),j)j.destroy();q.root.classList.remove(`${Z}--masonry`)})}}};var gJ=(J)=>{let Q=J?.mode??"single",j=J?.followFocus??!1,Y=J?.initial,U=J?.shiftArrowToggle??"origin",q=A1(Y),B=null,_=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(K){let{dom:Z,emitter:N,config:R}=K,{classPrefix:G,ariaIdPrefix:H}=R;if(Q==="none"){K.methods.set("select",()=>{}),K.methods.set("deselect",()=>{}),K.methods.set("toggleSelect",()=>{}),K.methods.set("selectAll",()=>{}),K.methods.set("clearSelection",()=>{}),K.methods.set("getSelected",()=>[]),K.methods.set("getSelectedItems",()=>[]),K.methods.set("setSelectionMode",()=>{}),K.methods.set("selectNext",()=>{}),K.methods.set("selectPrevious",()=>{});return}Z.root.classList.add(`${G}--selectable`);let v=K.methods.get("_isGroupHeader"),z=(F)=>v?v(F):!1,M=(F,X,V)=>{if(!v)return F;let k=F;while(k>=0&&k<V){if(!z(k))return k;k+=X}k=F-X;while(k>=0&&k<V){if(!z(k))return k;k-=X}return F},C=new Map,y=()=>{C.clear();let F=K.dataManager.getTotal(),X=K.dataManager.getCached();if(X===0)return;if(X>=F){for(let k=0;k<F;k++){let E=K.dataManager.getItem(k);if(E)C.set(E.id,k)}return}let V=K.dataManager.getStorage();if(V&&typeof V.getLoadedRanges==="function"){let k=V.getLoadedRanges();for(let E of k)for(let W=E.start;W<=E.end;W++){let D=K.dataManager.getItem(W);if(D&&!D._isPlaceholder)C.set(D.id,W)}}};N.on("data:change",({type:F,id:X})=>{if(F==="remove")q.selected.delete(X),y()}),N.on("load:end",({items:F,offset:X})=>{if(!F||F.length===0)return;if(X!==void 0)for(let V=0;V<F.length;V++){let k=F[V];if(k&&k.id!==void 0)C.set(k.id,X+V)}else y()}),y(),K.methods.set("_getSelectedIds",()=>{return q.selected}),K.methods.set("_getFocusedIndex",()=>{return q.focusVisible?q.focusedIndex:-1});let{forceRender:p}=K.getRenderFns(),l=()=>{p();let F=(X)=>{let V=C.get(X);if(V===void 0)return;return K.dataManager.getItem(V)};N.emit("selection:change",{selected:bJ(q),items:$J(q,F)})},d=$0(K.rawConfig.padding),r=R.horizontal?d.left:d.top,b=R.horizontal?d.right:d.bottom,s=K.getItemToScrollIndexFn(),Q0=null,i=null,P=null,S=!1,$=()=>{if(S)return;S=!0,Q0=K.methods.get("_getNavDelta")??null,i=K.methods.get("_navigate")??null,P=K.methods.get("_scrollItemIntoView")??null},u=()=>{return $(),Q0?Q0():{ud:1,lr:0,cols:0}},T=(F)=>{if(F<0)return;if($(),P)P(F);else{let X=K.state.viewportState.containerSize,V=K.state.viewportState.scrollPosition,k=K.dataManager.getTotal(),E=K.getCachedCompression(),{visibleRange:W}=K.state.viewportState,D=s(F),f=jJ(D,K.sizeCache,V,X,r,b,E,k,W);if(f!==V)K.scrollController.scrollTo(K.adjustScrollPosition(f))}},L=()=>{let F=s(Math.max(0,q.focusedIndex)),X=K.sizeCache.getSize(F),{ud:V}=u();return Math.max(V,Math.floor(K.state.viewportState.containerSize/X)*V)};B=document.createElement("div"),B.setAttribute("aria-live","polite"),B.setAttribute("aria-atomic","true"),B.className=`${G}-live-region`,B.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",(Z.root.getAttribute("role")==="grid"?Z.root.parentElement??Z.root:Z.root).appendChild(B);let h=B;N.on("selection:change",({selected:F})=>{let X=F.length;if(X===0)h.textContent="";else if(X===1)h.textContent="1 item selected";else h.textContent=`${X} items selected`});let c=()=>{if(K.state.isDestroyed)return;if(!Z.root.matches(":focus-visible"))return;let F=K.dataManager.getTotal();if(F===0)return;let X=q.focusedIndex>=0?Math.min(q.focusedIndex,F-1):0;X=M(X,1,F),q=d0(q,X),q.focusVisible=!0,Z.root.setAttribute("aria-activedescendant",`${H}-item-${X}`),T(X);let V=K.dataManager.getItem(X);if(V)K.renderer.updateItemClasses(X,q.selected.has(V.id),!0)};if(R.interactive)Z.root.addEventListener("focusin",c);let x=(F)=>{if(K.state.isDestroyed)return;let X=F.relatedTarget;if(X&&Z.root.contains(X))return;let V=q.focusedIndex;if(q.focusVisible=!1,Z.root.removeAttribute("aria-activedescendant"),V>=0){let k=K.dataManager.getItem(V);if(k)K.renderer.updateItemClasses(V,q.selected.has(k.id),!1)}};if(R.interactive)Z.root.addEventListener("focusout",x);if(K.clickHandlers.push((F)=>{if(K.state.isDestroyed)return;let V=F.target.closest("[data-index]");if(!V)return;let k=parseInt(V.dataset.index??"-1",10);if(k<0)return;let E=K.dataManager.getItem(k);if(!E)return;if(z(k))return;if(N.emit("item:click",{item:E,index:k,event:F}),Q==="multiple"&&F.shiftKey&&q.focusedIndex>=0){let W=_>=0?_:q.focusedIndex,D=K.getAllLoadedItems();q=KJ(q,D,W,k,Q),q=d0(q,k),q.focusVisible=!1,_=k,Z.root.setAttribute("aria-activedescendant",`${H}-item-${k}`),l();return}_=k,q=d0(q,k),q.focusVisible=!1,Z.root.setAttribute("aria-activedescendant",`${H}-item-${k}`),q=m0(q,E.id,Q),l()}),R.interactive)K.keydownHandlers.push((F)=>{if(K.state.isDestroyed)return;let X=K.dataManager.getTotal(),V=q.focusedIndex,k=!1,E=!1,W=q;if($(),i)switch(F.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let D=i(q.focusedIndex,F.key,X);if(D!==q.focusedIndex)W=d0(q,D),W.focusVisible=!0,k=!0,E=!0;else{F.preventDefault();return}break}}if(!k)switch(F.key){case"ArrowUp":W=XJ(q,X,R.wrap,u().ud),W.focusVisible=!0,k=!0,E=!0;break;case"ArrowDown":W=UJ(q,X,R.wrap,u().ud),W.focusVisible=!0,k=!0,E=!0;break;case"ArrowLeft":{let{lr:D}=u();if(D)W=XJ(q,X,R.wrap,D),W.focusVisible=!0,k=!0,E=!0;break}case"ArrowRight":{let{lr:D}=u();if(D)W=UJ(q,X,R.wrap,D),W.focusVisible=!0,k=!0,E=!0;break}case"PageUp":W=HJ(q,X,L(),"up"),W.focusVisible=!0,k=!0,E=!0;break;case"PageDown":W=HJ(q,X,L(),"down"),W.focusVisible=!0,k=!0,E=!0;break;case"Home":{W=L1(q,X),W.focusVisible=!0,k=!0,E=!0;break}case"End":{W=F1(q,X),W.focusVisible=!0,k=!0,E=!0;break}}switch(F.key){case" ":case"Enter":if(F.key===" "&&F.shiftKey&&Q==="multiple"&&q.focusedIndex>=0){if(_>=0){let D=K.getAllLoadedItems();W=KJ(W,D,_,q.focusedIndex,Q)}W.focusVisible=!0,k=!0;break}if(q.focusedIndex>=0&&!z(q.focusedIndex)){let D=K.dataManager.getItem(q.focusedIndex);if(D)W=m0(q,D.id,Q),W.focusVisible=!0;_=q.focusedIndex,k=!0}break;case"a":if((F.ctrlKey||F.metaKey)&&Q==="multiple"){let D=K.getAllLoadedItems();if(q.selected.size===D.length)W=kJ(W);else W=TJ(W,D,Q);W.focusVisible=!0,k=!0,E=!1}break}if(E&&v){let D=W.focusedIndex>V?1:-1;W.focusedIndex=M(W.focusedIndex,D,X)}if(F.shiftKey&&Q==="multiple"&&E&&W.focusedIndex>=0){let D=F.key==="ArrowUp"||F.key==="ArrowDown"||F.key==="ArrowLeft"||F.key==="ArrowRight",f=(F.ctrlKey||F.metaKey)&&(F.key==="Home"||F.key==="End");if(D){if(U==="origin"){if(V>=0){let O=K.dataManager.getItem(V);if(O)W=m0(W,O.id,Q)}}else{let O=K.dataManager.getItem(W.focusedIndex);if(O)W=m0(W,O.id,Q)}_=W.focusedIndex,E=!1}else if(f){let O=K.getAllLoadedItems(),A=V>=0?V:W.focusedIndex;W=KJ(W,O,A,W.focusedIndex,Q),_=W.focusedIndex,E=!1}}if(j&&Q==="single"&&E&&W.focusedIndex>=0){let D=K.dataManager.getItem(W.focusedIndex);if(D)W=x0(W,[D.id],Q);E=!1}if(k){F.preventDefault(),q=W;let D=q.focusedIndex;if(D>=0)T(D),Z.root.setAttribute("aria-activedescendant",`${H}-item-${D}`);else Z.root.removeAttribute("aria-activedescendant");if(E){let{selected:f}=q;if(V>=0&&V!==D){let O=K.dataManager.getItem(V);if(O)K.renderer.updateItemClasses(V,f.has(O.id),!1)}if(D>=0){let O=K.dataManager.getItem(D);if(O)K.renderer.updateItemClasses(D,f.has(O.id),!0)}}else l()}});K.methods.set("select",(...F)=>{q=x0(q,F,Q),l()}),K.methods.set("deselect",(...F)=>{q=FJ(q,F),l()}),K.methods.set("toggleSelect",(F)=>{q=m0(q,F,Q),l()}),K.methods.set("selectAll",()=>{if(Q!=="multiple")return;let F=K.getAllLoadedItems();q=TJ(q,F,Q),y(),l()}),K.methods.set("clearSelection",()=>{q=kJ(q),l()}),K.methods.set("getSelected",()=>{return bJ(q)}),K.methods.set("getSelectedItems",()=>{return $J(q,(X)=>{let V=C.get(X);return V===void 0?void 0:K.dataManager.getItem(V)})});let I=(F)=>{let X=K.dataManager.getTotal();if(X===0)return;if($(),i){let W=F==="next"?"ArrowDown":"ArrowUp",D=i(q.focusedIndex,W,X);q=d0(q,D)}else{let{ud:W}=u();q=F==="next"?UJ(q,X,R.wrap,W):XJ(q,X,R.wrap,W)}let V=F==="next"?1:-1;q.focusedIndex=M(q.focusedIndex,V,X);let k=q.focusedIndex,E=K.dataManager.getItem(k);if(!E)return;q=x0(q,[E.id],Q),T(k),l()};K.methods.set("selectNext",()=>{I("next")}),K.methods.set("selectPrevious",()=>{I("previous")}),K.destroyHandlers.push(()=>{if(h&&h.parentNode)h.remove();Z.root.removeEventListener("focusin",c),Z.root.removeEventListener("focusout",x)})},destroy(){if(B&&B.parentNode)B.remove();B=null}}};var k4=(J)=>{try{let Q=sessionStorage.getItem(J);if(!Q)return;return JSON.parse(Q)}catch{return}},xJ=(J)=>{let Q=J?.autoSave,j=Q?k4(Q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Y){Y.methods.set("getScrollSnapshot",()=>{let q=Y.scrollController.getScrollTop(),B=Y.getCachedCompression(),_=Y.getVirtualTotal(),K=Y.methods.get("getSelected"),Z=K&&K().length>0?K():void 0;if(_===0){let H={index:0,offsetInItem:0,total:0};if(Z)H.selectedIds=Z;return H}let N,R;if(B.isCompressed){let v=q/B.virtualSize*_;N=Math.max(0,Math.min(Math.floor(v),_-1)),R=(v-N)*Y.sizeCache.getSize(N)}else N=Y.sizeCache.indexAtOffset(q),R=q-Y.sizeCache.getOffset(N);R=Math.max(0,R);let G={index:N,offsetInItem:R,total:_};if(Z)G.selectedIds=Z;return G});let U=(q)=>{let{index:B,offsetInItem:_,selectedIds:K}=q,Z=Y.getVirtualTotal();if(Z===0&&q.total&&q.total>0){Y.dataManager.setTotal(q.total),Y.sizeCache.rebuild(q.total),Y.updateCompressionMode();let y=Y.getCachedCompression();Y.updateContentSize(y.virtualSize)}else if(Z===0)return;if(!Number.isFinite(B)||!Number.isFinite(_))return;let N=Y.getVirtualTotal();if(Y.sizeCache.getTotal()!==N){Y.sizeCache.rebuild(N),Y.updateCompressionMode();let y=Y.getCachedCompression();Y.updateContentSize(y.virtualSize)}let G=Y.getCachedCompression(),H=Math.max(0,Math.min(B,N-1)),v;if(G.isCompressed){let y=Y.sizeCache.getSize(H),p=y>0?_/y:0;v=(H+p)/N*G.virtualSize}else v=Y.sizeCache.getOffset(H)+_;let z=Y.state.viewportState.containerSize,M=Math.max(0,G.virtualSize-z);if(v=Math.max(0,Math.min(v,M)),Y.scrollController.scrollTo(v),K&&K.length>0){let y=Y.methods.get("select");if(y)y(...K)}let C=Y.methods.get("loadVisibleRange");if(C){let p=0,l=v,d=()=>{p++;let r=Y.state.viewportState.containerSize,b=Y.scrollController.getScrollTop();if(r>0){if(Math.abs(b-l)>1)Y.scrollController.scrollTo(l);C()}else if(p<10)requestAnimationFrame(d)};requestAnimationFrame(d)}else{let y=Y.methods.get("reload");if(y)requestAnimationFrame(()=>{y()})}};if(Y.methods.set("restoreScroll",U),Q){let q=!!j,B=()=>{if(q)return;let _=Y.methods.get("getScrollSnapshot");if(!_)return;let K=_();try{sessionStorage.setItem(Q,JSON.stringify(K))}catch{}};if(Y.idleHandlers.push(()=>{if(q)q=!1;B()}),Y.emitter.on("selection:change",B),j&&j.total&&j.total>0){let _=Y.methods.get("_cancelAutoLoad");if(_)_();Y.dataManager.setTotal(j.total)}}if(j)queueMicrotask(()=>{U(j)})}}};var u1=(J,Q=50,j=1/0,Y=!0)=>{let U=J,q=[],B=0,_=()=>{q=U.map((M,C)=>({def:M,index:C,width:0,minWidth:H4(M.minWidth??Q,1),maxWidth:M.maxWidth??j,resizable:M.resizable??Y,offset:0}))},K=(M)=>{if(q.length===0){B=0;return}let C=0,y=0;for(let p=0;p<q.length;p++){let l=q[p],d=l.def;if(d.width!==void 0)l.width=mJ(d.width,l.minWidth,l.maxWidth),C+=l.width;else y++}if(y>0){let l=Math.max(0,M-C)/y;for(let d=0;d<q.length;d++){let r=q[d];if(r.def.width===void 0)r.width=mJ(l,r.minWidth,r.maxWidth)}}Z()},Z=()=>{let M=0;for(let C=0;C<q.length;C++){let y=q[C];y.offset=M,M+=y.width}B=M},N=(M,C)=>{if(M<0||M>=q.length)return 0;let y=q[M];if(!y.resizable)return y.width;let p=mJ(C,y.minWidth,y.maxWidth);return y.width=p,Z(),p},R=(M)=>{return q[M]},G=(M)=>{if(q.length===0)return;if(M<0)return q[0];if(M>=B)return q[q.length-1];let C=0,y=q.length-1;while(C<y){let p=C+y>>>1,l=q[p];if(M<l.offset)y=p-1;else if(M>=l.offset+l.width)C=p+1;else return l}return q[C]},H=(M)=>{if(M<0||M>=q.length)return 0;return q[M].offset},v=(M)=>{if(M<0||M>=q.length)return 0;return q[M].width},z=(M)=>{U=M,_()};return _(),{get columns(){return q},get totalWidth(){return B},resolve:K,updateColumns:z,resizeColumn:N,getColumn:R,getColumnAtX:G,getColumnOffset:H,getColumnWidth:v}},mJ=(J,Q,j)=>Math.min(j,Math.max(Q,J)),H4=(J,Q)=>Math.max(Q,J);var g1=(J,Q,j,Y,U,q,B)=>{let _=document.createElement("div");_.setAttribute("role","rowgroup");let K=document.createElement("div");K.className=`${Y}-table-header`,K.setAttribute("role","row"),K.setAttribute("aria-rowindex","1"),K.style.height=`${j}px`;let Z=document.createElement("div");Z.className=`${Y}-table-header-scroll`,Z.setAttribute("role","presentation"),K.appendChild(Z),_.appendChild(K),J.insertBefore(_,J.firstChild),Q.style.cssText=`position:absolute;top:${j}px;left:0px;right:0px;bottom:0px;height:auto`;let N=[],R=[],G=[],H=!0,v=null,z="asc",M=null,C=!1,y=-1,p=0,l=0,d=(w,h)=>{let c=document.createElement("div");c.className=`${Y}-table-header-cell`,c.setAttribute("role","columnheader"),c.setAttribute("aria-colindex",String(h+1)),c.dataset.columnKey=w.def.key;let x=w.def.align;if(x==="center")c.classList.add(`${Y}-table-header-cell--center`);else if(x==="right")c.classList.add(`${Y}-table-header-cell--right`);let I=document.createElement("div");I.className=`${Y}-table-header-content`;let F=w.def.header?w.def.header(w.def):w.def.label;if(typeof F==="string")I.textContent=F;else I.appendChild(F);if(c.appendChild(I),w.def.sortable){let X=document.createElement("span");X.className=`${Y}-table-header-sort`,X.setAttribute("aria-hidden","true"),c.appendChild(X),G.push(X),c.classList.add(`${Y}-table-header-cell--sortable`)}else G.push(null);if(w.resizable){let X=document.createElement("div");X.className=`${Y}-table-header-resize`,X.dataset.resizeIndex=String(h),c.appendChild(X),R.push(X)}return c},r=(w)=>{M=w,Z.textContent="",N=[],R=[],G=[];let h=w.columns;for(let c=0;c<h.length;c++){let x=h[c],I=d(x,c);N.push(I),Z.appendChild(I)}if(b(w),v)s(v,z)},b=(w)=>{M=w;let h=w.columns;Z.style.width=`${w.totalWidth}px`;for(let c=0;c<N.length&&c<h.length;c++){let x=N[c],I=h[c];x.style.width=`${I.width}px`}},s=(w,h)=>{if(v=w,z=h,!M)return;let c=M.columns;for(let x=0;x<G.length&&x<c.length;x++){let I=G[x];if(!I)continue;if(c[x].def.key===w&&w!==null)I.textContent=h==="asc"?"▲":"▼",I.style.opacity="0.7",N[x].setAttribute("aria-sort",h==="asc"?"ascending":"descending");else I.textContent="",I.style.opacity="0",N[x].removeAttribute("aria-sort")}},Q0=(w)=>{Z.style.transform=`translateX(${-w}px)`},i=(w)=>{let h=w.target;if(!h.dataset.resizeIndex)return;if(w.preventDefault(),w.stopPropagation(),y=parseInt(h.dataset.resizeIndex,10),!M)return;let c=M.getColumn(y);if(!c||!c.resizable)return;C=!0,p=w.clientX,l=c.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",h.classList.add(`${Y}-table-header-resize--active`),h.setPointerCapture(w.pointerId),h.addEventListener("pointermove",P),h.addEventListener("pointerup",S),h.addEventListener("pointercancel",S)},P=(w)=>{if(!C||!M)return;let h=w.clientX-p;if(Math.abs(h)<1)return;let c=Math.max(0,l+h);U(y,c)},S=(w)=>{if(!C)return;let h=w.target;h.removeEventListener("pointermove",P),h.removeEventListener("pointerup",S),h.removeEventListener("pointercancel",S);try{h.releasePointerCapture(w.pointerId)}catch{}h.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",C=!1,y=-1},$=(w)=>{let h=w.target;if(h.dataset.resizeIndex!==void 0)return;if(C)return;let c=h;while(c&&!c.dataset.columnKey)if(c=c.parentElement,c===K||c===null)return;if(!c||!c.dataset.columnKey)return;let x=c.dataset.columnKey;if(!M)return;let I=M.columns,F=-1;for(let V=0;V<I.length;V++)if(I[V].def.key===x){F=V;break}if(F===-1)return;let X=I[F];if(B)B({key:x,index:F,event:w});if(X.def.sortable&&q){let V;if(v===x)if(z==="asc")V="desc";else V=null;else V="asc";q({key:x,index:F,direction:V})}};return K.addEventListener("pointerdown",i),K.addEventListener("click",$),{element:K,update:b,updateSort:s,rebuild:r,show:()=>{if(H)return;H=!0,K.style.display=""},hide:()=>{if(!H)return;H=!1,K.style.display="none"},destroy:()=>{K.removeEventListener("pointerdown",i),K.removeEventListener("click",$),Q.style.cssText="",_.remove(),N=[],R=[],G=[],M=null,H=!1},syncScroll:Q0}};var b4=()=>{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}}},x1=(J,Q,j,Y,U,q,B,_,K)=>{let Z=b4(),N=new Map,R=-1,G=j,H=null,v=null,z=null,M=(O,A)=>{v=O,z=A},C=(O,A)=>{if(A)O.setAttribute("aria-selected","true");else O.removeAttribute("aria-selected")},y=(O,A,m,n)=>{O.setAttribute("role",A),O.setAttribute("data-id",String(m)),O.setAttribute("data-index",String(n))},p=(O)=>String(O).startsWith("__placeholder_"),l=`${U}-item ${U}-table-row`,d=`${U}-item--selected`,r=`${U}-item--focused`,b=`${U}-table-cell`,s=`${U}-table-cell--center`,Q0=`${U}-table-cell--right`,i=`${U}-item--odd`,P=`${U}-item--placeholder`,S=`${U}-item--replaced`,$=`${U}-item ${U}-table-row ${U}-table-group-header`,u=`${U}-table-group-header-content`,T=(O,A,m,n,o=!1)=>{if(m.def.cell){let t=m.def.cell(A,m.def,n);if(typeof t==="string")O.innerHTML=t;else O.replaceChildren(t)}else{let t=A[m.def.key],a=t!=null?String(t):"";if(o&&a)O.innerHTML=`<span>${a}</span>`;else O.textContent=a}},L=(O,A,m,n,o=!1)=>{let t=l;if(_){if(H){let a=H(A);if(a>=0&&(a&1)===1)t+=` ${i}`}else if((A&1)===1)t+=` ${i}`}if(o)t+=` ${P}`;if(m)t+=` ${d}`;if(n)t+=` ${r}`;O.className=t},w=(O,A,m)=>{if(m?.compression?.isCompressed)return Math.round(l0(O,m.scrollPosition,A,m.totalItems,m.containerSize,m.compression,m.rangeStart));return A.getOffset(O)},h=(O,A)=>{let m=A.def.align;if(m==="center")O.classList.add(s),O.classList.remove(Q0);else if(m==="right")O.classList.add(Q0),O.classList.remove(s);else O.classList.remove(s,Q0)},c=(O,A)=>{let n=G.columns.length;if(A.length===n)return A;let o=[];for(let t=0;t<n;t++){let a;if(t<A.length)a=A[t];else a=document.createElement("div"),a.className=b,O.appendChild(a);o.push(a)}for(let t=n;t<A.length;t++)A[t].remove();return o},x=(O,A,m,n)=>{let o=Z.acquire(),t=O,a=m.getSize(A),J0=w(A,m,n);o.style.cssText=`width:${G.totalWidth}px;height:${a}px;transform:translateY(${J0}px)`,o.className=$,y(o,"presentation",O.id,A),o.removeAttribute("aria-selected"),o.removeAttribute("aria-rowindex"),o.replaceChildren();let j0=document.createElement("div");if(j0.className=u,z){let q0=z(t.groupKey,t.groupIndex);if(typeof q0==="string")j0.innerHTML=q0;else j0.appendChild(q0)}return o.appendChild(j0),{element:o,cells:[],index:A,isGroupHeader:!0,lastItemId:O.id,lastSelected:!1,lastFocused:!1,lastOffset:J0,lastHeight:a}},I=(O,A,m,n,o,t)=>{let a=Z.acquire(),J0=o.getSize(A),j0=w(A,o,t),q0=p(O.id);a.style.cssText=`width:${G.totalWidth}px;height:${J0}px;transform:translateY(${j0}px)`,L(a,A,m,n,q0),y(a,"row",O.id,A),a.id=`${q}-${A}`,a.setAttribute("aria-rowindex",String(A+2)),C(a,m);let Z0=c(a,[]),U0=G.columns;for(let B0=0;B0<Z0.length&&B0<U0.length;B0++){let V0=Z0[B0],O0=U0[B0];V0.style.cssText=`left:${O0.offset}px;width:${O0.width}px`,V0.setAttribute("role","gridcell"),V0.setAttribute("aria-colindex",String(B0+1)),h(V0,O0),T(V0,O,O0,A,q0)}return{element:a,cells:Z0,index:A,isGroupHeader:!1,lastItemId:O.id,lastSelected:m,lastFocused:n,lastOffset:j0,lastHeight:J0}},F=(O,A,m,n,o)=>{for(let[q0,Z0]of N)if(q0<A.start||q0>A.end)Z.release(Z0.element),N.delete(q0);let t=!1,a=B();if(a!==R)R=a,t=!0;let J0=null,j0=Q();H=typeof _==="string"&&K?K():null;for(let q0=A.start;q0<=A.end;q0++){let Z0=q0-A.start,U0=O[Z0];if(!U0)continue;let B0=m.has(U0.id),V0=q0===n,O0=v?v(U0):!1,X0=N.get(q0);if(X0){if(X0.isGroupHeader!==O0){Z.release(X0.element),N.delete(q0);let _0=O0?x(U0,q0,j0,o):I(U0,q0,B0,V0,j0,o);if(N.set(q0,_0),!J0)J0=document.createDocumentFragment();J0.appendChild(_0.element);continue}if(O0){if(X0.lastItemId!==U0.id){let N0=U0,A0=X0.element.firstElementChild;if(A0&&z){let G0=z(N0.groupKey,N0.groupIndex);if(typeof G0==="string")A0.innerHTML=G0;else A0.replaceChildren(G0)}X0.element.setAttribute("data-id",String(U0.id)),X0.lastItemId=U0.id}let E0=w(q0,j0,o);if(X0.lastOffset!==E0)X0.lastOffset=E0,X0.element.style.transform=`translateY(${E0}px)`;let D0=j0.getSize(q0);if(X0.lastHeight!==D0)X0.lastHeight=D0,X0.element.style.height=`${D0}px`}else{let _0=X0.lastItemId!==U0.id,E0=X0.lastSelected!==B0,D0=X0.lastFocused!==V0;if(_0){let G0=X0.lastItemId!=null&&p(X0.lastItemId),L0=p(U0.id);if(!L0&&P0(m,q0,U0.id))B0=!0;let z0=G.columns;for(let T0=0;T0<X0.cells.length&&T0<z0.length;T0++)T(X0.cells[T0],U0,z0[T0],q0,L0);if(L(X0.element,q0,B0,V0,L0),X0.element.setAttribute("data-id",String(U0.id)),C(X0.element,B0),G0&&!L0)X0.element.classList.add(S),setTimeout(()=>{X0.element.classList.remove(S)},300);X0.lastItemId=U0.id,X0.lastSelected=B0,X0.lastFocused=V0}else if(E0||D0)L(X0.element,q0,B0,V0,p(U0.id)),C(X0.element,B0),X0.lastSelected=B0,X0.lastFocused=V0;let N0=w(q0,j0,o);if(X0.lastOffset!==N0)X0.lastOffset=N0,X0.element.style.transform=`translateY(${N0}px)`;let A0=j0.getSize(q0);if(X0.lastHeight!==A0)X0.lastHeight=A0,X0.element.style.height=`${A0}px`;if(t)X0.element.setAttribute("aria-rowindex",String(q0+2))}}else{if(P0(m,q0,U0.id))B0=!0;let _0=O0?x(U0,q0,j0,o):I(U0,q0,B0,V0,j0,o);if(N.set(q0,_0),!J0)J0=document.createDocumentFragment();J0.appendChild(_0.element)}}if(J0)J.appendChild(J0)},X=(O)=>{let A=Q();for(let[m,n]of N){let o=w(m,A,O);if(n.lastOffset!==o)n.lastOffset=o,n.element.style.transform=`translateY(${o}px)`}},V=(O,A,m,n)=>{let o=N.get(O);if(!o)return;if(o.isGroupHeader)return;let t=G.columns;for(let a=0;a<o.cells.length&&a<t.length;a++)T(o.cells[a],A,t[a],O);o.element.setAttribute("data-id",String(A.id)),o.lastItemId=A.id,L(o.element,O,m,n),C(o.element,m),o.lastSelected=m,o.lastFocused=n},k=(O,A,m)=>{let n=N.get(O);if(!n)return;if(n.isGroupHeader)return;let o=n.lastSelected!==A,t=n.lastFocused!==m;if(o||t)L(n.element,O,A,m),C(n.element,A),n.lastSelected=A,n.lastFocused=m},E=(O)=>{G=O;let A=O.columns;for(let[,m]of N)if(m.element.style.width=`${O.totalWidth}px`,m.cells.length>0)for(let n=0;n<m.cells.length&&n<A.length;n++){let o=m.cells[n],t=A[n];o.style.left=`${t.offset}px`,o.style.width=`${t.width}px`}},W=(O)=>{return N.get(O)?.element},D=()=>{for(let[,O]of N)Z.release(O.element);N.clear(),R=-1};return{render:F,updatePositions:X,updateItem:V,updateItemClasses:k,getElement:W,updateColumnLayout:E,setGroupHeaderFn:M,clear:D,destroy:()=>{D(),Z.clear()}}};var $4=new Set,dJ=(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,Y=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(U){let{dom:q,emitter:B,config:_}=U,{classPrefix:K}=_;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,N=J.minColumnWidth??50,R=J.maxColumnWidth??1/0,G=J.columnBorders??!1,H=J.rowBorders??!0,v=J.rowHeight,z=U.rawConfig.padding,M=!z?0:typeof z==="number"?z*2:z.length===2?z[1]*2:z[1]+z[3],C=J.headerHeight??(typeof v==="number"?v:40),y=J.sort?.key??null,p=J.sort?.direction??"asc";if(Q=u1(J.columns,N,R,Z),typeof v==="function")U.setSizeConfig(v);else if(typeof v==="number")U.setSizeConfig(v);if(U.rebuildSizeCache(),q.root.classList.add(`${K}--table`),H)q.root.classList.add(`${K}--table-row-borders`);if(G)q.root.classList.add(`${K}--table-col-borders`);q.root.setAttribute("role","grid"),q.root.setAttribute("aria-colcount",String(J.columns.length));let l=-1,d=q.items.getAttribute("aria-label");if(d)q.root.setAttribute("aria-label",d),q.items.removeAttribute("aria-label");q.items.setAttribute("role","rowgroup"),q.viewport.setAttribute("role","none"),q.content.setAttribute("role","none"),q.viewport.removeAttribute("tabindex");let r=U.getContainerWidth()-M;Q.resolve(r);let b=(W,D)=>{if(!Q)return;let f=Q.getColumn(W);if(!f)return;let O=f.width,A=Q.resizeColumn(W,D);if(j)j.update(Q);if(Y)Y.updateColumnLayout(Q);i(),B.emit("column:resize",{key:f.def.key,index:W,previousWidth:O,width:A})},s=(W)=>{if(W.direction===null)y=null,p="asc";else y=W.key,p=W.direction;if(j)j.updateSort(y,p);B.emit("column:sort",W)},Q0=(W)=>{B.emit("column:click",W)};if(j=g1(q.root,q.viewport,C,K,b,s,Q0),j.rebuild(Q),y)j.updateSort(y,p);let i=()=>{if(!Q)return;let W=Q.totalWidth;q.content.style.minWidth=`${W}px`,q.items.style.minWidth=`${W}px`};i(),Y=x1(q.items,()=>U.sizeCache,Q,J.columns,K,_.ariaIdPrefix,()=>U.dataManager.getTotal(),U.rawConfig.item?.striped,()=>U.getStripeIndexFn());let P=null,S=null,$=!1,u=()=>{if($)return;$=!0,P=U.methods.get("_getSelectedIds")??null,S=U.methods.get("_getFocusedIndex")??null},T=-1,L=-1,w=-1,h=!0,c=_.overscan,x={start:0,end:0},I={start:0,end:0},F=()=>{if(U.state.isDestroyed)return;let W=U.scrollController.getScrollTop(),D=U.state.viewportState.containerSize,f=U.getVirtualTotal(),O=U.state.viewportState.isCompressed;if(!h&&W===T&&D===L&&f===w)return;T=W,L=D,w=f,h=!1;let A=f+1;if(A!==l)l=A,q.root.setAttribute("aria-rowcount",String(A));U.getVisibleRange(W,D,f,x),I.start=Math.max(0,x.start-c),I.end=Math.min(f-1,x.end+c);let m=U.state.viewportState;m.scrollPosition=W,m.visibleRange.start=x.start,m.visibleRange.end=x.end,m.renderRange.start=I.start,m.renderRange.end=I.end;let n=U.state.lastRenderRange,o=n.start!==I.start||n.end!==I.end;if(!o&&O){Y.updatePositions(U.getCompressionContext());return}if(!o)return;let t=O?U.getCompressionContext():void 0,a=U.dataManager.getItemsInRange(I.start,I.end);u();let J0=P?P():$4,j0=S?S():-1;Y.render(a,I,J0,j0,t),n.start=I.start,n.end=I.end,B.emit("range:change",{range:{start:I.start,end:I.end}})},X=()=>{if(U.state.isDestroyed)return;U.state.lastRenderRange.start=-1,U.state.lastRenderRange.end=-1,h=!0,F()};U.setRenderFns(F,X),U.setUpdateItemClassesFn((W,D,f)=>{Y?.updateItemClasses(W,D,f)});let V=j,k=-1,E=()=>{let W=q.viewport.scrollLeft;if(W!==k){if(k=W,V.syncScroll)V.syncScroll(W)}};U.afterScroll.push(E),q.viewport.addEventListener("scroll",E,{passive:!0}),U.resizeHandlers.push((W,D)=>{if(!Q)return;if(Q.resolve(W-M),j)j.update(Q);if(Y)Y.updateColumnLayout(Q);i()}),U.methods.set("updateColumns",(W)=>{if(!Q||!j)return;if(Q.updateColumns(W),Q.resolve(U.getContainerWidth()-M),j.rebuild(Q),y)j.updateSort(y,p);if(i(),Y)Y.updateColumnLayout(Q),Y.clear();U.forceRender()}),U.methods.set("resizeColumn",(W,D)=>{if(!Q)return;let f;if(typeof W==="string"){let O=Q.columns;f=-1;for(let A=0;A<O.length;A++)if(O[A].def.key===W){f=A;break}if(f===-1)return}else f=W;b(f,D)}),U.methods.set("getColumnWidths",()=>{if(!Q)return{};let W={},D=Q.columns;for(let f=0;f<D.length;f++)W[D[f].def.key]=D[f].width;return W}),U.methods.set("setSort",(W,D)=>{if(y=W,p=D??"asc",j)j.updateSort(y,p)}),U.methods.set("getSort",()=>{return{key:y,direction:p}}),U.methods.set("_getTableLayout",()=>Q),U.methods.set("_updateRenderedItem",(W,D,f,O)=>{Y?.updateItem(W,D,f,O)}),U.methods.set("_replaceTableRenderer",(W)=>{Y=W}),U.methods.set("_updateTableForGroups",(W,D)=>{if(Y)Y.setGroupHeaderFn(W,D)}),U.methods.set("_getTableHeaderHeight",()=>C),U.keydownHandlers.push((W)=>{if(W.key!=="ArrowLeft"&&W.key!=="ArrowRight")return;if(!Q)return;let D=Q.columns;if(D.length===0)return;let f=q.viewport.clientWidth;if(Q.totalWidth<=f)return;let O=q.viewport.scrollLeft;if(W.key==="ArrowRight"){for(let A=0;A<D.length;A++)if(D[A].offset>O+1){q.viewport.scrollLeft=D[A].offset,W.preventDefault();return}}else{for(let A=D.length-1;A>=0;A--)if(D[A].offset<O-1){q.viewport.scrollLeft=D[A].offset,W.preventDefault();return}if(O>0)q.viewport.scrollLeft=0,W.preventDefault()}}),U.contentSizeHandlers.push(()=>{i()}),U.destroyHandlers.push(()=>{if(q.viewport.removeEventListener("scroll",E),j)j.destroy(),j=null;if(Y)Y.destroy(),Y=null;q.content.style.minWidth="",q.items.style.minWidth="",q.root.classList.remove(`${K}--table`),q.root.removeAttribute("role"),q.root.removeAttribute("aria-colcount"),q.viewport.removeAttribute("role"),q.viewport.setAttribute("tabindex","-1"),q.content.removeAttribute("role");let W=q.root.getAttribute("aria-label");if(W)q.items.setAttribute("aria-label",W),q.root.removeAttribute("aria-label");q.root.removeAttribute("aria-rowcount"),q.items.setAttribute("role","listbox")})},destroy(){if(j)j.destroy(),j=null;if(Y)Y.destroy(),Y=null}}};var m1=(J,Q)=>{let j=new Map,Y=(q)=>{let B=j.get(q);return B!==void 0?B:J},U=S0(Y,Q);return{getOffset(q){return U.getOffset(q)},getSize(q){return Y(q)},indexAtOffset(q){return U.indexAtOffset(q)},getTotalSize(){return U.getTotalSize()},getTotal(){return U.getTotal()},rebuild(q){if(q<U.getTotal()){for(let B of j.keys())if(B>=q)j.delete(B)}U=S0(Y,q)},isVariable(){return!0},setMeasuredSize(q,B){j.set(q,B)},isMeasured(q){return j.has(q)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var cJ=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(Q){let j=Q.config.horizontal,U=Q.rawConfig.item,q=j?U.estimatedWidth:U.estimatedHeight;if(q==null||q<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let B=U.gap??0,_=Q.getVirtualTotal(),K=$0(Q.rawConfig.padding),Z=h0(K,j),N=m1(q+B,_),R=Q.methods.get("_setSizeCache"),G=Q.methods.get("_setConstrainSize");if(!R||!G)throw Error("[vlist/withAutoSize] Incompatible builder version");R(N),G((d)=>N.isMeasured(d));let H=new WeakMap,v=0,z=!1,M=2,C=(d)=>{let r=Q.scrollController.getScrollTop(),b=Q.state.viewportState.containerSize;if(b<=0)return!1;let s=Math.max(0,d+Z-b);return r>=s-M},y=()=>{let d=N.getTotalSize(),r=Q.state.viewportState.containerSize;if(r<=0)return;let b=Math.max(0,d+Z-r),s=Q.scrollController.getScrollTop();if(b>s)Q.scrollController.scrollTo(b)},p=()=>{let d=N.getTotalSize();Q.updateContentSize(d)},l=()=>{if(z){let d=Q.dom.viewport,r=d.scrollHeight,b=r-d.clientHeight,s=Q.scrollController.getScrollTop(),Q0=b>0&&s>=b-M,i=Q.getVirtualTotal(),P=Q.state.viewportState.renderRange.end,S=i>0&&P>=i-1,$=N.getTotalSize()+Z,u=Math.abs($-r),T=S&&b>0&&s>=b-u-M,L=Q0||T;if(p(),z=!1,L)d.scrollHeight,y(),Q.forceRender()}};J=new ResizeObserver((d)=>{if(Q.state.isDestroyed)return;let r=!1,b=Q.state.viewportState.visibleRange.start;for(let w of d){let h=H.get(w.target);if(h===void 0)continue;let c=j?w.borderBoxSize[0].inlineSize:w.borderBoxSize[0].blockSize;if(!N.isMeasured(h)){let x=c+B,I=N.getSize(h);if(N.setMeasuredSize(h,x),r=!0,h<b&&x!==I)v+=x-I;J.unobserve(w.target);let F=w.target;if(j)F.style.width=`${c}px`;else F.style.height=`${c}px`}}if(!r)return;let s=N.getTotalSize();if(N.rebuild(Q.getVirtualTotal()),v!==0){let w=Q.scrollController.getScrollTop();Q.scrollController.scrollTo(w+v),v=0}let Q0=C(s),i=Q.getVirtualTotal(),P=Q.state.viewportState.renderRange.end,S=i>0&&P>=i-1,$=Q.dom.viewport,u=$.scrollHeight-$.clientHeight,T=Q.scrollController.getScrollTop(),L=u>0&&T>=u-M;if(Q0||S||!Q.scrollController.isScrolling()){if(p(),z=!1,Q0||S&&L)$.scrollHeight,y()}else z=!0;Q.forceRender()}),Q.afterRenderBatch.push((d)=>{for(let{index:r,element:b}of d)if(!N.isMeasured(r))H.set(b,r),J.observe(b)}),Q.idleHandlers.push(l),Q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var y4=50,P4=0.1;function d1(J){let Q=0,j=0,Y=0;function U(){return Y>0?j/Y:0}function q(K){if(Q=K,K>P4&&K<y4)j+=K,Y++}function B(){let K=J.getTotal();if(K===0)return 0;let Z=J.getItemSize();if(Z<=0)return 0;let N=J.getContainerSize();if(N<=0)return 0;let R=J.getScrollPosition(),G=typeof J.getColumns==="function"?J.getColumns():1,v=Math.ceil(K/G)*Z,M=Math.min(v,g0)-N,C=v-N,y=M>0?C/M:1,p=R*y,l=Math.ceil((p+N)/Z);return Math.min(l*G,K)}function _(){let K=J.getTotal(),Z=B();return{progress:K>0?Math.min(100,Math.max(0,Z/K*100)):0,velocity:Q,velocityAvg:U(),itemCount:Z,total:K}}return{getState:_,onVelocity:q}}export{dJ as withTable,xJ as withSnapshots,gJ as withSelection,wJ as withScrollbar,RJ as withScale,CJ as withPage,uJ as withMasonry,IJ as withGroups,pJ as withGrid,cJ as withAutoSize,zJ as withAsync,PJ as vlist,d1 as createStats};
1
+ var Q1=2,q1=(J=0)=>({velocity:0,sampleCount:0}),Y1=(J,q)=>{let Y=performance.now(),Q=J._lt??Y,U=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-U)/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),U=(K)=>{Y=K,Q=new Float64Array(K+1),Q[0]=0;for(let D=0;D<K;D++)Q[D+1]=Q[D]+J(D)};U(q);let j=(K)=>{if(Y===0)return 0;if(K<=0)return 0;if(K>=Q[Y])return Y-1;let D=0,B=Y-1;while(D<B){let Z=D+B+1>>>1;if(Q[Z]<=K)D=Z;else B=Z-1}return D};return{getOffset:(K)=>{if(K<=0)return 0;if(K>=Y)return Q[Y];return Q[K]},getSize:(K)=>J(K),indexAtOffset:(K)=>j(K),getTotalSize:()=>Q[Y]??0,getTotal:()=>Y,rebuild:(K)=>U(K),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 U=0,j=0,K=q;while(K<Q&&j<Y)j+=J.getSize(K),U++,K++;return Math.max(1,U)};var X1=()=>{let J={},q=(j,K)=>{if(!J[j])J[j]=new Set;return J[j].add(K),()=>Y(j,K)},Y=(j,K)=>{J[j]?.delete(K)};return{on:q,off:Y,emit:(j,K)=>{J[j]?.forEach((D)=>{try{D(K)}catch(B){console.error(`[vlist] Error in event handler for "${String(j)}":`,B)}})},clear:(j)=>{if(j)delete J[j];else for(let K in J)delete J[K]}}};var U1=(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},K1=(J,q,Y,Q,U)=>{let j=Q,K=o0(q);if(j)K.classList.add(`${q}--horizontal`);if(U!==!1)K.setAttribute("tabindex","0");let D=o0(`${q}-viewport`,j?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");D.setAttribute("tabindex","-1");let B=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 N=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 N.setAttribute("aria-live","polite"),N.setAttribute("aria-atomic","true"),N.setAttribute("role","status"),B.appendChild(Z),D.appendChild(B),K.appendChild(N),K.appendChild(D),J.appendChild(K),{root:K,viewport:D,content:B,items:Z,liveRegion:N}};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,U)=>{if(Q===0||q===0){U.start=0,U.end=-1;return}let j=Y.indexAtOffset(J),K=Y.indexAtOffset(J+q);if(K<Q-1)K++;U.start=Math.max(0,j),U.end=Math.min(Q-1,Math.max(0,K))},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,U,j=0)=>{if(Q===0)return 0;let K=Math.max(0,Math.min(J,Q-1)),D=q.getOffset(K),B=q.getSize(K),Z=q.getTotalSize(),N=Math.max(0,Z+j-Y),w;switch(U){case"center":w=D-(Y-B)/2;break;case"end":w=j>0&&D+B>=Z?N:D-Y+B;break;default:w=D}return Math.max(0,Math.min(w,N))};var YJ={top:0,right:0,bottom:0,left:0},$0=(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,K]=J;return j===0&&K===0?YJ:{top:j,right:K,bottom:j,left:K}}let[q,Y,Q,U]=J;return q===0&&Y===0&&Q===0&&U===0?YJ:{top:q,right:Y,bottom:Q,left:U}},h0=(J,q)=>q?J.left+J.right:J.top+J.bottom,jJ=(J,q)=>q?J.top+J.bottom:J.left+J.right;var u0=(J,q,Y)=>{let Q=Array.from(q).sort((K,D)=>K-D);if(Q.length<=1)return;let U=[];for(let K=0;K<Q.length;K++){let D=Y(Q[K]);if(D)U.push(D)}if(U.length<=1)return;let j=J.firstChild;for(let K=0;K<U.length;K++){let D=U[K];if(D===j)j=j.nextSibling;else J.insertBefore(D,j)}};var V1=(J,q)=>{let{dom:Y,emitter:Q,resolvedConfig:U,rawConfig:j,rendered:K,pool:D,sharedState:B,isHorizontal:Z,classPrefix:N,contentSizeHandlers:w,idleHandlers:_,afterScroll:T,clickHandlers:z,keydownHandlers:R,resizeHandlers:G,destroyHandlers:v,methods:k,onScrollFrame:f,resizeObserver:a,renderRange:h,afterRenderBatch:u}=q;return{get dom(){return Y},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return U},get rawConfig(){return j},adjustScrollPosition(b){if(J.mp===0)return b;let d=Z?J.cw:J.ch,J0=J.hc.getTotalSize(),o=Math.max(0,J0-d),H=Math.max(0,J0+J.mp-d);if(b>=o)return H;return Math.min(b,H)},get renderer(){return{render:(b,d,J0,o,H)=>{J.ss=J0,J.fi=o,J.ffn()},updateItemClasses:(b,d,J0)=>{J.uic(b,d,J0)},updatePositions:()=>{},updateItem:()=>{},getElement:(b)=>K.get(b)??null,clear:()=>{},destroy:()=>{}}},set renderer(b){},get dataManager(){return J.dm},set dataManager(b){J.dm=b},get scrollController(){return J.sc},set scrollController(b){J.sc=b},state:B,getContainerWidth(){return J.cw},afterScroll:T,idleHandlers:_,afterRenderBatch:u,clickHandlers:z,keydownHandlers:R,resizeHandlers:G,contentSizeHandlers:w,destroyHandlers:v,methods:k,replaceTemplate(b){J.at=b},replaceRenderer(b){},replaceDataManager(b){J.dm=b},replaceScrollController(b){J.sc=b},getItemsForRange(b){let{dm:d,it:J0}=J,o=[];for(let H=b.start;H<=b.end;H++){let C=d?d.getItem(H):J0[H];if(C)o.push(C)}return o},getAllLoadedItems(){let b=J.dm;if(b){let d=b.getTotal(),J0=[];for(let o=0;o<d;o++){let H=b.getItem(o);if(H)J0.push(H)}return J0}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let b=J.hc;return{isCompressed:!1,actualSize:b.getTotalSize(),virtualSize:b.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:h.start,compression:B.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,b]of K)b.remove(),D.release(b);K.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(b,d){J.rfn=b,J.ffn=d},setVirtualTotalFn(b){J.vtf=b},rebuildSizeCache(b){J.hc.rebuild(b??J.vtf())},setSizeConfig(b){if(J.hc=f0(b,J.vtf()),J.gp>0){let d=J.hc.getTotalSize,J0=J.gp;J.hc.getTotalSize=()=>{let o=d();return o>0?o-J0:0}}},updateContentSize(b){let d=`${b+J.mp}px`;if(Z)Y.content.style.width=d;else Y.content.style.height=d},updateCompressionMode(){for(let b=0;b<w.length;b++)w[b]()},setVisibleRangeFn(b){J.gvr=b},getVisibleRange(b,d,J0,o){J.gvr(b,d,J.hc,J0,o)},setScrollToPosFn(b){J.gsp=b},getScrollToPos(b,d,J0,o){return J.gsp(b,J.hc,d,J0,o)},setPositionElementFn(b){J.pef=b},setScrollFns(b,d){J.sgt=b,J.sst=(J0)=>{d(J0),f()}},setScrollTarget(b){J.st.removeEventListener("scroll",f),J.st=b,J.st.addEventListener("scroll",f,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(b){J.gcw=b.width,J.gch=b.height,J.cw=b.width(),J.ch=b.height(),B.viewportState.containerSize=Z?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,a.unobserve(Y.viewport)},disableWheelHandler(){if(J.wh)Y.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(b){J.sif=b},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(b){J.i2s=b},setUpdateItemClassesFn(b){J.uic=b}}},_1=(J,q,Y)=>{let{rendered:Q,itemState:U,applyTemplate:j,updateContentSize:K}=q,D=()=>{J.hc.rebuild(J.vtf()),K(),Y.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,N)=>{let w=[];for(let _=Math.max(0,Z),T=Math.min(N,B()-1);_<=T;_++)w.push(J.it[_]);return w},setTotal:()=>{},setItems:(Z,N=0,w)=>{if(N===0&&(w!==void 0||B()===0))J.it=Z;else{let _=N+Z.length;if(B()<_)J.it.length=_;for(let T=0;T<Z.length;T++)J.it[N+T]=Z[T]}if(J.ii)D()},updateItem:(Z,N)=>{let w=J.it;if(Z<0||Z>=w.length)return!1;let _=w[Z];if(!_)return!1;w[Z]={..._,...N};let T=Q.get(Z);if(T)j(T,J.at(w[Z],Z,U)),T.dataset.id=String(w[Z].id);return!0},removeItem:(Z)=>{let N=typeof Z==="number"?Z:J.it.findIndex((w)=>w.id===Z);if(N<0||N>=J.it.length)return!1;if(J.it.splice(N,1),J.ii)D();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()}}},D1=(J,q)=>{let{dom:Y,classPrefix:Q}=q;return{getScrollTop:()=>J.sgt(),scrollTo:(U)=>{J.sst(U),J.ls=U,J.rfn()},scrollBy:(U)=>{let j=J.sgt()+U;J.sst(j),J.ls=j,J.rfn()},isAtTop:()=>J.ls<=2,isAtBottom:(U=2)=>J.sab(U),getScrollPercentage:()=>{let U=J.hc.getTotalSize(),j=Math.max(0,U-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:(U)=>{J.ch=U},destroy:()=>{}}};var LJ=(J,q,Y,Q,U=0,j=0)=>{let K=q.getOffset(J),D=q.getSize(J),B=K+U,Z=B+D,N=Y+Q;if(B<Y)return Math.max(0,K);if(Z>N)return Z+j-Q;return Y},XJ=(J,q,Y,Q,U=0,j=0,K,D,B)=>{if(!(K!=null&&K.isCompressed&&K.ratio!==1))return LJ(J,q,Y,Q,U,j);let N=D,{virtualSize:w}=K,_=q.getSize(Math.max(0,J)),T=Q-U-j,z=Math.max(1,Math.floor(T/_)),R=w/N;if(B){if(J>=B.start+z){let k=T/_,f=J+1-k;return Math.max(0,f*R)}if(J<=B.start)return Math.max(0,J*R);return Y}let G=Y/w*N,v=G+z;if(J>=v){let k=T/_,f=J+1-k;return Math.max(0,f*R)}if(J<G)return Math.max(0,J*R);return Y};var G1=(J,q,Y,Q,U,j,K,D,B,Z,N,w,_,T)=>{let z=`${Y}-item--focused`,R=!1,G=null,v=null,k=null,f=null,a=!1,h=()=>{if(a)return;a=!0,G=B.get("_getNavTotal")??null,v=B.get("_getNavDelta")??null,k=B.get("_navigate")??null,f=B.get("_scrollItemIntoView")??null},u=()=>{return h(),G?G():J.vtf()},b=()=>{return h(),v?v():{ud:1,lr:0,cols:0}};B.set("_getFocusedIndex",()=>R?J.fi:-1);let d=(c,F=!0)=>{if(q.root.setAttribute("aria-activedescendant",`${Q}-item-${c}`),h(),F)if(f)f(c);else{let y=U?J.cw:J.ch,O=J.i2s(c),I=LJ(O,J.hc,J.ls,y,j,K);if(I!==J.ls)J.sst(I),J.ls=J.sgt()}J.ffn()},J0=(c)=>{J.fi=c,R=!0,d(c)},o=(c,F)=>{if(J.fi=c,F||T)R=!0;let y=J.dm?J.dm.getItem(c):J.it[c];if(y&&J.ss.has(y.id))J.ss.clear();else if(J.ss.clear(),y)J.ss.add(y.id);d(c,F)},H=(c,F,y)=>{let O=c;while(O>=0&&O<y){let I=J.dm?J.dm.getItem(O):J.it[O];if(!I||!I.__groupHeader)return O;O+=F}O=c-F;while(O>=0&&O<y){let I=J.dm?J.dm.getItem(O):J.it[O];if(!I||!I.__groupHeader)return O;O-=F}return c},C=()=>{if(J.id)return;if(!q.root.matches(":focus-visible"))return;let c=u();if(c===0)return;let F=J.fi>=0?Math.min(J.fi,c-1):0;F=H(F,1,c),J0(F)};q.root.addEventListener("focusin",C);let S=(c)=>{if(J.id)return;let F=c.relatedTarget;if(F&&q.root.contains(F))return;if(R=!1,J.fi>=0)Z.get(J.fi)?.classList.remove(z);q.root.removeAttribute("aria-activedescendant")};q.root.addEventListener("focusout",S),N.push((c)=>{if(J.id)return;let F=u();if(F===0)return;let y=J.fi,O=y;if(c.key===" "||c.key==="Enter"){if(y>=0){let I=J.dm?J.dm.getItem(y):J.it[y];if(I&&!I.__groupHeader)o(y,!0)}c.preventDefault();return}if(h(),k)switch(c.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":O=k(y,c.key,F);break;default:return}else{let{ud:I,lr:x}=b();switch(c.key){case"ArrowUp":O=y-I;break;case"ArrowDown":O=y+I;break;case"ArrowLeft":if(!x)return;O=y-x;break;case"ArrowRight":if(!x)return;O=y+x;break;case"PageUp":case"PageDown":{let l=J.hc.getSize(J.i2s(Math.max(0,y))),p=Math.max(I,Math.floor((U?J.cw:J.ch)/l)*I);O=c.key==="PageUp"?y-p:y+p;break}case"Home":O=0;break;case"End":O=F-1;break;default:return}if(O<0)O=D?F-1:0;else if(O>=F)O=D?0:F-1}if(c.preventDefault(),O=H(O,O>=y?1:-1,F),O!==y)J0(O)}),w.push((c)=>{if(J.id)return;let F=c.target.closest("[data-index]");if(!F)return;let y=parseInt(F.dataset.index??"-1",10);if(y<0)return;let O=J.dm?.getItem(y)??J.it[y];if(!O||O.__groupHeader)return;R=!1,q.root.focus({preventScroll:!0}),o(y,!1)}),_.push(()=>{q.root.removeEventListener("focusin",C),q.root.removeEventListener("focusout",S)})};var FJ=200,g0=50;var M1=50,O1=12,E1=2,x0=16000000;var A1="x",L1=20,TJ="_isPlaceholder",w0="__placeholder_";var R0=(J,q,Y)=>{if(String(Y).startsWith(w0))return!1;let Q=w0+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}),m0=(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 U of q)Q.add(U);return{...J,selected:Q}},kJ=(J,q)=>{let Y=new Set(J.selected);for(let Q of q)Y.delete(Q);return{...J,selected:Y}},d0=(J,q,Y)=>{if(Y==="none")return J;if(J.selected.has(q))return kJ(J,[q]);else return m0(J,[q],Y)},bJ=(J,q,Y)=>{if(Y!=="multiple")return J;return{...J,selected:new Set(q.map((Q)=>Q.id))}},HJ=(J)=>({...J,selected:new Set}),c0=(J,q)=>{return J.focusedIndex=q,J},UJ=(J,q,Y=!1,Q=1)=>{if(q===0)return J;let U=J.focusedIndex-Q;if(U<0)U=Y?q-1:0;return J.focusedIndex=U,J},KJ=(J,q,Y=!1,Q=1)=>{if(q===0)return J;let U=J.focusedIndex+Q;if(U>=q)U=Y?0:q-1;return J.focusedIndex=U,J},T1=(J,q)=>{if(q===0)return J;return J.focusedIndex=0,J},k1=(J,q)=>{if(q===0)return J;return J.focusedIndex=q-1,J},$J=(J,q,Y,Q)=>{if(q===0)return J;let U=Q==="up"?J.focusedIndex-Y:J.focusedIndex+Y;return U=Math.max(0,Math.min(q-1,U)),J.focusedIndex=U,J};var yJ=(J)=>{return Array.from(J.selected)},PJ=(J,q)=>{let Y=[];for(let Q of J.selected){let U=q(Q);if(U)Y.push(U)}return Y};var ZJ=(J,q,Y,Q,U)=>{if(U!=="multiple")return J;let j=Math.min(Y,Q),K=Math.max(Y,Q),D=[];for(let B=j;B<=K;B++){let Z=q[B];if(Z)D.push(Z.id)}return m0(J,D,U)};var wJ=(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,K,D)=>{if(Q(),Math.abs(K-j)<1){J.scrollTo(K);return}let B=performance.now(),Z=(N)=>{let w=N-B,_=Math.min(w/D,1),T=j+(K-j)*wJ(_);if(J.scrollTo(T),q(),_<1)Y=requestAnimationFrame(Z);else Y=null};Y=requestAnimationFrame(Z)},cancelScroll:Q}};var b1=(J,q,Y,Q,U,j,K,D,B,Z,N,w,_,T,z,R,G,v)=>{let k=(M)=>{{if(!Array.isArray(M)){console.warn("[vlist] setItems() expects an array, got:",typeof M);return}if(M.length>0&&M[0]&&!("id"in M[0]))console.warn('[vlist] Items must have an "id" property. First item:',M[0]);let A=Math.min(M.length,1e4),W=new Set;for(let $=0;$<A;$++){let E=M[$];if(E&&"id"in E){if(W.has(E.id)){console.warn(`[vlist] Duplicate item ID "${E.id}" at index ${$}. updateItem() and removeItem() will only match the first occurrence.`);break}W.add(E.id)}}}O(),B.dataManager.setItems(M,0,M.length)},f=(M)=>{let A=Z&&J.sab(2);if(B.dataManager.setItems(M,J.it.length),A&&J.it.length>0){let W=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(W),J.ls=W,J.rfn()}},a=(M)=>{let A=Z?J.sgt():0,W=Z?J.hc.getTotalSize():0,$=[...J.it];if(B.dataManager.clear(),B.dataManager.setItems([...M,...$],0),Z){let E=J.hc.getTotalSize()-W;if(E>0)J.sst(A+E),J.ls=A+E}},h=null,u=null,b=null,d=!1,J0=()=>{if(d)return;d=!0,h=j.get("_updateRenderedItem")??null,u=j.get("_getSelectedIds")??null,b=j.get("_getFocusedIndex")??null},o=(M,A)=>{{let $=J.vtf();if(M<0||M>=$)console.warn(`[vlist] updateItem() index ${M} is out of range (0–${$-1}).`)}if(B.dataManager.updateItem(M,A),J0(),!h)return;let W=B.dataManager.getItem(M);if(W){let E=(u?u():J.ss).has(W.id),L=(b?b():J.fi)===M;h(M,W,E,L)}},H=!1,C=(M)=>{let A=typeof document<"u"?document.activeElement:null,W=A&&q.items.contains(A)?parseInt(A.dataset?.index??"-1",10):-1;if(!B.dataManager.removeItem(M))return console.warn(`[vlist] removeItem() could not find item with id "${M}".`),!1;if(Y.emit("data:change",{type:"remove",id:M}),B.forceRender(),!H){let E=B.dataManager;if(typeof E.ensureRange==="function")H=!0,queueMicrotask(()=>{H=!1;let L=B.dataManager.getTotal(),{start:g,end:i}=B.state.viewportState.renderRange;if(L>0&&i>=g)E.ensureRange(g,i).catch(()=>{})})}if(W>=0){let E=J.vtf();if(E>0)Q.get(Math.min(W,E-1))?.focus()}return!0},S=(M)=>{return B.dataManager.getItem(M)},c=(M)=>{return B.dataManager.getIndexById?.(M)??-1},F=async(M)=>{if(B.dataManager.reload)await B.dataManager.reload()},y=null,O=()=>{if(y!==null)cancelAnimationFrame(y),y=null},I=(M,A,W,$)=>{if(O(),Math.abs(A-M)<1){J.sst(A),J.ls=A,J.rfn();return}let E=performance.now(),L=(g)=>{let i=g-E,n=Math.min(i/W,1),t=$?$():A,j0=M+(t-M)*wJ(n);if(J.sst(j0),J.ls=j0,J.rfn(),n<1)y=requestAnimationFrame(L);else y=null};y=requestAnimationFrame(L)},x=(M,A)=>{{let n=J.vtf();if(n>0&&(M<0||M>=n))console.warn(`[vlist] scrollToIndex(${M}) is out of range (0–${n-1}).`)}let{align:W,behavior:$,duration:E}=z0(A),L=J.vtf(),g=M;if(N&&L>0)g=(g%L+L)%L;let i=J.gsp(g,J.hc,J.ch,L,W);if($==="smooth"){let n=g,t=W;I(J.sgt(),i,E,()=>J.gsp(n,J.hc,J.ch,J.vtf(),t))}else O(),J.sst(i)},l=()=>J.sgt(),p=(M,A)=>{return Y.on(M,A)},r=(M,A)=>{Y.off(M,A)},V=()=>{if(J.id)return;if(J.id=!0,B.state.isDestroyed=!0,q.items.removeEventListener("click",w),q.items.removeEventListener("dblclick",_),q.root.removeEventListener("keydown",T),J.st.removeEventListener("scroll",z),R.disconnect(),G(),J.wh)q.viewport.removeEventListener("wheel",J.wh);v();let M=[];for(let A=0;A<D.length;A++)try{D[A]()}catch(W){M.push(W instanceof Error?W:Error(String(W)))}for(let A of K)if(A.destroy)try{A.destroy()}catch(W){M.push(W instanceof Error?W:Error(String(W)))}O();for(let[,A]of Q)A.remove(),U.release(A);Q.clear(),U.clear(),Y.emit("destroy",void 0);for(let A of M)Y.emit("error",{error:A,context:"destroy"});Y.clear(),q.root.remove()},X=(M,A)=>j.has(M)?j.get(M):A,P={get element(){return q.root},get items(){let M=j.get("_getItems");return M?M():J.it},get total(){let M=j.get("_getTotal");return M?M():J.vtf()},setItems:X("setItems",k),appendItems:X("appendItems",f),prependItems:X("prependItems",a),updateItem:X("updateItem",o),removeItem:X("removeItem",C),reload:X("reload",F),getItemAt:S,getIndexById:c,scrollToIndex:X("scrollToIndex",x),cancelScroll:X("cancelScroll",O),getScrollPosition:X("getScrollPosition",l),on:p,off:r,destroy:V};for(let[M,A]of j){if(M.charCodeAt(0)===95||M==="setItems"||M==="appendItems"||M==="prependItems"||M==="updateItem"||M==="removeItem"||M==="reload"||M==="scrollToIndex"||M==="scrollToItem"||M==="cancelScroll"||M==="getScrollPosition")continue;P[M]=A}return P};var Y4=3,j4="vlist",X4=150,U4=16000000,K4=0,RJ=(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",U=q?J.item.width:J.item.height,j=q?J.item.estimatedWidth:J.item.estimatedHeight;if(U==null&&j==null)throw Error(`[vlist] item.${Y} or item.${Q} is required${q?" when orientation is 'horizontal'":""}`);if(U!=null){if(typeof U==="number"&&U<=0)throw Error(`[vlist] item.${Y} must be a positive number`);if(typeof U!=="number"&&typeof U!=="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 K=new Map,D=!1,B={use(Z){if(D)throw Error("[vlist] Cannot call .use() after .build()");return K.set(Z.name,Z),B},build(){if(D)throw Error("[vlist] .build() can only be called once");return D=!0,Z4(J,K,q,U,j??null)}};return B};function Z4(J,q,Y,Q,U){let{item:j,items:K,overscan:D=Y4,classPrefix:B=j4,ariaLabel:Z,padding:N,reverse:w=!1,scroll:_,accessible:T,interactive:z}=J,R=z??T??!0,G=_,v=G?.wheel??!0,k=G?.wrap??!1,f=w,a=`${B}-${K4++}`,h=q.has("withGrid")||q.has("withMasonry")?0:j.gap??0,u=Q??U,b=Q==null&&U!=null,d=Y?typeof j.height==="number"?j.height:void 0:typeof j.width==="number"?j.width:void 0,J0={overscan:D,classPrefix:B,reverse:f,wrap:k,horizontal:Y,ariaIdPrefix:a,interactive:R},o=Array.from(q.values()).sort((m,e)=>(m.priority??50)-(e.priority??50)),H=new Set(o.map((m)=>m.name));for(let m of o)if(m.conflicts){for(let e of m.conflicts)if(H.has(e))throw Error(`[vlist] ${m.name} and ${e} cannot be combined`)}if(f){if(H.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let C=U1(J.container),S=K1(C,B,Z,Y,R);if(G?.wheel===!1)if(Y)S.viewport.style.overflowX="hidden";else S.viewport.style.overflow="hidden";if(G?.scrollbar==="none")S.viewport.classList.add(`${B}-viewport--no-scrollbar`);if(G?.gutter==="stable")S.viewport.classList.add(`${B}-viewport--gutter-stable`);let c=H.has("withGrid")||H.has("withMasonry");if(Y&&d!=null&&G?.scrollbar!=="none"&&!c){S.root.style.height=`${d}px`;let m=S.viewport.style.overflowX;S.viewport.style.overflowX="scroll";let e=S.viewport.offsetHeight-S.viewport.clientHeight;if(S.viewport.style.overflowX=m,e>0)S.root.style.height=`${d+e}px`}let F=$0(N),y=h0(F,Y);if(F.top||F.right||F.bottom||F.left)S.content.style.boxSizing="border-box",S.content.style.padding=`${F.top}px ${F.right}px ${F.bottom}px ${F.left}px`;let O=X1(),I=K||[],x=typeof u==="function"&&(q.has("withGrid")||q.has("withMasonry")),l=h>0?typeof u==="function"?(m)=>u(m)+h:u+h:u,p=b?U+h:l,r=f0(p,x?0:I.length);if(h>0){let m=r.getTotalSize;r.getTotalSize=()=>{let e=m();return e>0?e-h:0}}let V=Z1(),X={it:I,hc:r,ch:S.viewport.clientHeight,cw:S.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?()=>S.viewport.scrollLeft:()=>S.viewport.scrollTop,sst:Y?(m)=>{S.viewport.scrollLeft=m}:(m)=>{S.viewport.scrollTop=m},sab:(m=2)=>{let e=X.hc.getTotalSize();return X.ls+X.ch>=e-m},sic:!1,rfn:null,ffn:null,gvr:(m,e,Y0,N0,E0)=>{B1(m,e,Y0,N0,E0)},gsp:(m,e,Y0,N0,E0)=>{return W1(m,e,Y0,N0,E0,X.mp)},pef:null,at:j.template,vre:!0,st:S.viewport,wh:null,gcw:()=>X.cw,gch:()=>X.ch,gp:h,mp:y,sif:(m)=>m,i2s:(m)=>m,uic:(m,e,Y0)=>{let N0=g.get(m);if(!N0)return;q0(N0,e,Y0)},csi:null};X.vtf=()=>X.dm?X.dm.getTotal():X.it.length;let P=null,M=!1,A={start:0,end:0},W={start:0,end:0},$={start:-1,end:-1},E={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},L=()=>({...E.viewportState,totalItems:X.vtf()}),g=new Map,i=()=>{u0(S.items,g.keys(),(m)=>g.get(m))},n=()=>{let m=X.hc.getTotalSize(),Y0=`${(X.sic?m:Math.min(m,U4))+y}px`;if(Y)S.content.style.width=Y0;else S.content.style.height=Y0},t={selected:!1,focused:!1},j0=`${B}-item`,s=`${B}-item--selected`,Q0=`${B}-item--focused`,q0=(m,e,Y0)=>{m.classList.toggle(s,e),m.classList.toggle(Q0,Y0),m.ariaSelected=e?"true":"false"},U0=j.striped,K0=!!U0,Z0=U0==="data"||U0==="even"||U0==="odd",V0=`${B}-item--odd`,G0=`${B}-item--placeholder`,X0=`${B}-item--replaced`,B0=`${B}--scrolling`,O0=[],A0=[],D0=[],W0=[],F0=[],M0=[],T0=[],y0=[],P0=new Map,WJ="__placeholder_",VJ={scrollPosition:0,direction:"down"},I0={velocity:0,reliable:!1},_J={range:{start:0,end:0}},DJ=null,GJ=null,aJ=!1,r1=()=>{if(aJ)return;aJ=!0,DJ=P0.get("_getSelectedIds")??null,GJ=P0.get("_getFocusedIndex")??null},e0=(m,e,Y0)=>{if(!e)console.warn(`[vlist] Template returned falsy value${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);else if(typeof e==="string"&&e==="")console.warn(`[vlist] Template returned empty string${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);if(typeof e==="string")m.innerHTML=e;else m.replaceChildren(e)},a1=(m,e)=>{let Y0=Math.round(X.hc.getOffset(e));if(Y)m.style.transform=`translateX(${Y0}px)`;else m.style.transform=`translateY(${Y0}px)`};X.pef=a1;let s1=(m,e)=>{let Y0=V.acquire();Y0.className=j0;let N0=!X.csi||X.csi(m);if(Y){if(N0)Y0.style.width=`${X.hc.getSize(m)-h}px`;else Y0.style.width="";if(d!=null)Y0.style.height=`${d}px`}else if(N0)Y0.style.height=`${X.hc.getSize(m)-h}px`;else Y0.style.height="";if(Y0.dataset.index=String(m),Y0.dataset.id=String(e.id),Y0.ariaSelected="false",Y0.id=`${a}-item-${m}`,X.la=String(X.vtf()),Y0.setAttribute("aria-setsize",X.la),Y0.setAttribute("aria-posinset",String(m+1)),String(e.id).startsWith(WJ))Y0.classList.add(G0);if(K0)if(Z0){let k0=X.sif(m);if(k0<0)Y0.classList.remove(V0);else Y0.classList.toggle(V0,(k0&1)===1)}else Y0.classList.toggle(V0,(m&1)===1);try{e0(Y0,X.at(e,m,t),m)}catch(k0){let L0=k0 instanceof Error?k0:Error(String(k0));O.emit("error",{error:L0,context:`tpl(${m},${e.id})`,viewport:L()}),Y0.textContent=""}return X.pef(Y0,m),Y0},o1=()=>{if(X.id)return;let m=Y?X.cw:X.ch;if(m<=0)return;r1();let e=DJ?DJ():X.ss,Y0=GJ?GJ():X.fi,N0=X.vtf();if(X.gvr(X.ls,m,X.hc,N0,A),N1(A,D,N0,W),W.start===$.start&&W.end===$.end){if(X.sic)for(let[_0,b0]of g)X.pef(b0,_0);E.viewportState.scrollPosition=X.ls,E.viewportState.containerSize=m,E.viewportState.visibleRange.start=A.start,E.viewportState.visibleRange.end=A.end,E.viewportState.renderRange.start=W.start,E.viewportState.renderRange.end=W.end;return}let E0=String(N0),k0=E0!==X.la;X.la=E0;for(let[_0,b0]of g)if(_0<W.start||_0>W.end)b0.remove(),V.release(b0),g.delete(_0);let L0=document.createDocumentFragment(),v0=!1,s0=T0.length>0?[]:null;for(let _0=W.start;_0<=W.end;_0++){let b0=X.dm?X.dm.getItem(_0):X.it[_0];if(b0===void 0)continue;let H0=g.get(_0);if(H0){let S0=H0.dataset.id,p0=String(b0.id);if(S0!==p0){let e1=S0?.startsWith(WJ),EJ=p0.startsWith(WJ);try{e0(H0,X.at(b0,_0,t),_0)}catch(AJ){let J4=AJ instanceof Error?AJ:Error(String(AJ));O.emit("error",{error:J4,context:`tpl(${_0},${b0.id})`,viewport:L()}),H0.textContent=""}H0.dataset.id=p0;let J1=!X.csi||X.csi(_0);if(Y)H0.style.width=J1?`${X.hc.getSize(_0)-h}px`:"";else H0.style.height=J1?`${X.hc.getSize(_0)-h}px`:"";if(EJ)H0.classList.add(G0);else H0.classList.remove(G0);if(e1&&!EJ)H0.classList.add(X0),setTimeout(()=>{H0.classList.remove(X0)},300);if(X.dm&&!EJ)R0(e,_0,b0.id)}X.pef(H0,_0);let qJ=e.has(b0.id);if(q0(H0,qJ,_0===Y0),k0)H0.setAttribute("aria-setsize",X.la)}else{let S0=s1(_0,b0);if(s0)s0.push({index:_0,element:S0});if(X.dm)R0(e,_0,b0.id);let p0=e.has(b0.id),qJ=_0===Y0;if(p0||qJ)q0(S0,p0,qJ);L0.appendChild(S0),g.set(_0,S0),v0=!0}}if(v0)S.items.appendChild(L0);if(s0&&s0.length>0)for(let _0=0;_0<T0.length;_0++)T0[_0](s0);$.start=W.start,$.end=W.end,E.lastRenderRange.start=W.start,E.lastRenderRange.end=W.end,E.viewportState.scrollPosition=X.ls,E.viewportState.visibleRange.start=A.start,E.viewportState.visibleRange.end=A.end,E.viewportState.renderRange.start=W.start,E.viewportState.renderRange.end=W.end,_J.range.start=W.start,_J.range.end=W.end,O.emit("range:change",_J)},n1=()=>{$.start=-1,$.end=-1,X.rfn()};X.rfn=o1,X.ffn=n1;let i1=()=>{S.root.classList.remove(B0),M=!1,X.vt.velocity=0,X.vt.sampleCount=0,I0.velocity=0,I0.reliable=!1,O.emit("velocity:change",I0),i();for(let m=0;m<A0.length;m++)A0[m]();O.emit("scroll:idle",{scrollPosition:X.ls})},t1=()=>{if(P)clearTimeout(P);P=setTimeout(i1,G?.idleTimeout??X4)},a0=()=>{if(X.id)return;let m=X.sgt();if(m===X.ls&&M)return;let e=m>=X.ls?"down":"up";if(X.vt=Y1(X.vt,m),!S.root.classList.contains(B0))S.root.classList.add(B0);M=!0,X.ls=m,X.rfn(),VJ.scrollPosition=m,VJ.direction=e,O.emit("scroll",VJ),I0.velocity=X.vt.velocity,I0.reliable=X.vt.sampleCount>=Q1,O.emit("velocity:change",I0);for(let Y0=0;Y0<O0.length;Y0++)O0[Y0](m,e);t1()},JJ=null;if(X.st.addEventListener("scroll",a0,{passive:!0}),v){let m=S.viewport;if(Y)JJ=(e)=>{if(E.viewportState.isCompressed)return;if(Math.abs(e.deltaX)>Math.abs(e.deltaY))return;let Y0=X.sgt(),N0=m.scrollWidth-m.clientWidth,E0=Math.max(0,Math.min(Y0+e.deltaY,N0));if(Math.abs(E0-Y0)<1)return;e.preventDefault(),X.sst(E0),a0()};else JJ=(e)=>{if(E.viewportState.isCompressed)return;let Y0=m.scrollWidth>m.clientWidth;if(Y0&&Math.abs(e.deltaX)>Math.abs(e.deltaY))return;if(Y0&&e.deltaX!==0)e.preventDefault(),m.scrollLeft+=e.deltaX;let N0=X.sgt(),E0=m.scrollHeight-m.clientHeight,k0=Math.max(0,Math.min(N0+e.deltaY,E0));if(Math.abs(k0-N0)<1)return;e.preventDefault(),X.sst(k0),a0()};X.wh=JJ,m.addEventListener("wheel",JJ,{passive:!1})}let sJ=(m)=>{let e=m.target.closest("[data-index]");if(!e)return null;let Y0=parseInt(e.dataset.index??"-1",10);if(Y0<0)return null;let N0=X.dm?.getItem(Y0)??X.it[Y0];if(!N0||N0.__groupHeader)return null;return{item:N0,index:Y0}},oJ=(m)=>{let e=sJ(m);if(e)O.emit("item:click",{item:e.item,index:e.index,event:m});for(let Y0=0;Y0<D0.length;Y0++)D0[Y0](m)},nJ=(m)=>{let e=sJ(m);if(e)O.emit("item:dblclick",{item:e.item,index:e.index,event:m})},iJ=(m)=>{for(let e=0;e<W0.length;e++)W0[e](m)};if(S.items.addEventListener("click",oJ),S.items.addEventListener("dblclick",nJ),S.root.addEventListener("keydown",iJ),R){let m=null,e=(Y0)=>{if(m)clearTimeout(m);m=setTimeout(()=>{if(m=null,X.id)return;let N0=X.vtf();S.liveRegion.textContent=`Showing items ${Y0.range.start+1} to ${Math.min(Y0.range.end+1,N0)} of ${N0}`},300)};O.on("range:change",e),y0.push(()=>{if(m)clearTimeout(m);O.off("range:change",e)})}let MJ=new ResizeObserver((m)=>{if(X.id)return;for(let e of m){let Y0=e.contentRect.height,N0=e.contentRect.width,E0=Y?N0:Y0,k0=Y?X.cw:X.ch;if(X.cw=N0,X.ch=Y0,Math.abs(E0-k0)>1){if(E.viewportState.containerSize=E0,X.ii){let L0=E.cachedCompression;if(L0&&L0.state.isCompressed){let v0=`${L0.state.virtualSize+y}px`;if(Y)S.content.style.width=v0;else S.content.style.height=v0}else n();X.rfn(),O.emit("resize",{height:Y0,width:N0})}}if(X.ii)for(let L0=0;L0<F0.length;L0++)F0[L0](N0,Y0)}});if(X.vre)MJ.observe(S.viewport);let OJ={dom:S,emitter:O,resolvedConfig:J0,rawConfig:J,rendered:g,pool:V,itemState:t,sharedState:E,renderRange:W,isHorizontal:Y,classPrefix:B,contentSizeHandlers:M0,idleHandlers:A0,afterScroll:O0,clickHandlers:D0,keydownHandlers:W0,resizeHandlers:F0,destroyHandlers:y0,methods:P0,onScrollFrame:a0,resizeObserver:MJ,afterRenderBatch:T0,applyTemplate:e0,updateContentSize:n},QJ=V1(X,OJ);X.dm=_1(X,OJ,QJ),X.sc=D1(X,OJ),P0.set("_updateRenderedItem",(m,e,Y0,N0)=>{let E0=g.get(m);if(!E0)return;let k0={selected:Y0,focused:N0};try{let L0=X.at(e,m,k0);e0(E0,L0,m)}catch(L0){let v0=L0 instanceof Error?L0:Error(String(L0));O.emit("error",{error:v0,context:`tpl(${m},${e.id})`,viewport:L()})}E0.dataset.id=String(e.id),q0(E0,Y0,N0)});let tJ=new WeakSet;P0.set("_setSizeCache",(m)=>{if(X.hc=m,X.gp>0&&!tJ.has(m)){tJ.add(m);let e=X.hc.getTotalSize,Y0=X.gp;X.hc.getTotalSize=()=>{let N0=e();return N0>0?N0-Y0:0}}}),P0.set("_setConstrainSize",(m)=>{X.csi=m});let eJ=new Map;for(let m of o)if(m.methods)for(let e of m.methods){let Y0=eJ.get(e);if(Y0)throw Error(`[vlist] Method "${e}" is registered by both "${Y0}" and "${m.name}"`);eJ.set(e,m.name)}for(let m of o)try{m.setup(QJ)}catch(e){let Y0=e instanceof Error?e:Error(String(e));console.error(`[vlist] Feature "${m.name}" setup failed:`,Y0),O.emit("error",{error:Y0,context:m.name,viewport:L()})}if(b&&!q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(R&&!P0.has("_getFocusedIndex")){let m=Y?F.left:F.top,e=Y?F.right:F.bottom;G1(X,S,B,a,Y,m,e,k,P0,g,W0,D0,y0,!!J.focusOnClick)}if(X.ii=!0,QJ.state.isInitialized=!0,n(),X.rfn(),f&&X.it.length>0){let m=X.gsp(X.it.length-1,X.hc,X.ch,X.it.length,"end");X.sst(m),X.ls=m,X.rfn()}return b1(X,S,O,g,V,P0,o,y0,QJ,f,k,oJ,nJ,iJ,a0,MJ,()=>{},()=>{if(P)clearTimeout(P)})}var n0=(J,q,Y)=>{let Q=q.getTotalSize(),U=Y===!0||Q>x0,j=Q>x0?x0:Q,K=Q>0?j/Q:1;return{isCompressed:U,actualSize:Q,virtualSize:j,ratio:K}},H1=(J,q,Y,Q,U,j)=>{if(Q===0||q===0)return j.start=0,j.end=-1,j;if(!U.isCompressed||U.ratio===1){let _=Y.indexAtOffset(J),T=Y.indexAtOffset(J+q);if(T<Q-1)T++;return j.start=Math.max(0,_),j.end=Math.min(Q-1,Math.max(0,T)),j}let{virtualSize:K}=U,B=J/K*Q,Z=Math.floor(B),N=j1(Y,Math.max(0,Z),q,Q),w=Math.ceil(B)+N;return j.start=Math.max(0,Z),j.end=Math.min(Q-1,Math.max(0,w)),j};var r0=(J,q,Y,Q,U,j,K)=>{if(!j.isCompressed||Q===0)return Y.getOffset(J);if(j.ratio===1)return Y.getOffset(J)-q;let{virtualSize:D}=j,B=q/D,Z=Y.getTotalSize(),N=B*Z;return Y.getOffset(J)-N},$1=(J,q,Y,Q,U,j="start")=>{if(Q===0)return 0;let K;if(U.isCompressed&&U.ratio!==1){K=J/Q*U.virtualSize;let N=q.getSize(J);switch(j){case"center":K-=(Y-N)/2*U.ratio;break;case"end":K-=(Y-N)*U.ratio;break}return Math.max(0,K)}K=q.getOffset(J);let D=q.getSize(J);switch(j){case"center":K-=(Y-D)/2;break;case"end":K-=Y-D;break}let B=U.virtualSize-Y;return Math.max(0,Math.min(K,B))};var i0=(J,q,Y={},Q="vlist",U=!1)=>{let{autoHide:j=!0,autoHideDelay:K=1000,minThumbSize:D=30,showOnHover:B=!0,hoverZoneWidth:Z=16,showOnViewportEnter:N=!0}=Y,w=0,_=0,T=0,z=0,R=!1,G=!1,v=0,k=0,f=0,a=null,h=!1,u=null,b=null,d=U?"width":"height",J0=U?"translateX":"translateY",o=U?(L)=>L.clientX:(L)=>L.clientY,H=U?"left":"top",C=document.createElement("div"),S=document.createElement("div"),c=B?document.createElement("div"):null,F=()=>{if(C.className=`${Q}-scrollbar`,S.className=`${Q}-scrollbar-thumb`,U)C.classList.add(`${Q}-scrollbar--horizontal`);if(C.appendChild(S),J.appendChild(C),c){if(c.className=`${Q}-scrollbar-hover`,U)c.classList.add(`${Q}-scrollbar-hover--horizontal`),c.style.height=`${Z}px`;else c.style.width=`${Z}px`;J.appendChild(c)}},y=()=>{if(a)clearTimeout(a),a=null},O=()=>{if(!j)return;y(),a=setTimeout(x,K)},I=()=>{if(w<=_)return;if(y(),!h)C.classList.add(`${Q}-scrollbar--visible`),h=!0;if(j&&!R&&!G)O()},x=()=>{if(R||G)return;C.classList.remove(`${Q}-scrollbar--visible`),h=!1},l=(L,g)=>{w=L,_=g;let i=w>_;if(C.style.display=i?"":"none",!i){x();return}let n=_/w;T=Math.max(D,n*_),S.style[d]=`${T}px`,z=_-T,p(f)},p=(L)=>{if(f=L,w<=_||z<=0)return;let g=w-_,n=Math.min(1,Math.max(0,L/g))*z;S.style.transform=`${J0}(${n}px)`},r=(L)=>{if(L.target===S)return;let g=C.getBoundingClientRect(),t=o(L)-g[H]-T/2,s=Math.max(0,Math.min(t,z))/z,Q0=w-_,q0=s*Q0;q(q0),I()},V=(L)=>{L.preventDefault(),L.stopPropagation(),R=!0,v=o(L),k=f,y(),C.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",X),document.addEventListener("mouseup",P)},X=(L)=>{if(!R)return;let g=o(L)-v,i=z>0?g/z:0,n=w-_,t=i*n,j0=Math.max(0,Math.min(k+t,n)),Q0=j0/n*z;if(S.style.transform=`${J0}(${Q0}px)`,b=j0,u===null)u=requestAnimationFrame(()=>{if(b!==null)q(b);u=null})},P=()=>{if(R=!1,u!==null)cancelAnimationFrame(u),u=null;if(b!==null)q(b),b=null;if(C.classList.remove(`${Q}-scrollbar--dragging`),j&&!G)O();document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",P)},M=()=>{if(N)I()},A=()=>{if(!R){if(G=!1,j)O()}},W=()=>{G=!0,y(),I()},$=()=>{if(G=!1,!R&&j)O()},E=()=>{if(y(),u!==null)cancelAnimationFrame(u),u=null;if(C.removeEventListener("click",r),C.removeEventListener("mouseenter",W),C.removeEventListener("mouseleave",$),S.removeEventListener("mousedown",V),J.removeEventListener("mouseenter",M),J.removeEventListener("mouseleave",A),document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",P),c){if(c.removeEventListener("mouseenter",W),c.removeEventListener("mouseleave",$),c.parentNode)c.parentNode.removeChild(c)}if(C.parentNode)C.parentNode.removeChild(C)};if(F(),C.addEventListener("click",r),C.addEventListener("mouseenter",W),C.addEventListener("mouseleave",$),S.addEventListener("mousedown",V),J.addEventListener("mouseenter",M),J.addEventListener("mouseleave",A),c)c.addEventListener("mouseenter",W),c.addEventListener("mouseleave",$);return{show:I,hide:x,updateBounds:l,updatePosition:p,isVisible:()=>h,destroy:E}};var zJ=(J)=>{let q=null;return{name:"withScrollbar",priority:30,setup(Y){let{dom:Q,config:U}=Y,{classPrefix:j,horizontal:K}=U;if(q=i0(Q.viewport,(B)=>Y.scrollController.scrollTo(B),J??{},j,K),!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 D=q;Y.afterScroll.push((B,Z)=>{D.updatePosition(B),D.show()}),Y.resizeHandlers.push((B,Z)=>{if(D)D.updateBounds(Y.state.viewportState.totalSize||Y.getCachedCompression().virtualSize,Y.state.viewportState.containerSize)}),Y.contentSizeHandlers.push(()=>{if(D)D.updateBounds(Y.state.viewportState.totalSize||Y.getCachedCompression().virtualSize,Y.state.viewportState.containerSize)}),Y.destroyHandlers.push(()=>{if(D)D.destroy()})},destroy(){if(q)q.destroy(),q=null}}};var B4=0.65,N4=0.5,y1=1.7,W4=0.95,V4=0.1,_4=5,D4=100,P1=(J,q,Y,Q=0)=>{if(J<=0)return 0;let U=q-Q;return Math.max(0,U*(1-Y)+Q)},CJ=(J)=>{let q=J?.force??!1,Y=null,Q=0,U=!1,j=0,K=0,D=null,B=0,Z=0,N=null,w=[];return{name:"withScale",priority:20,setup(_){let{dom:T,config:z}=_,{classPrefix:R,horizontal:G}=z,v=$0(_.rawConfig.padding),k=G?v.left+v.right:v.top+v.bottom,f=()=>{let o=_.getVirtualTotal(),H=n0(o,_.sizeCache,q);if(H.isCompressed&&!U){U=!0,_.scrollController.enableCompression(H);let S=G?T.viewport.scrollLeft:T.viewport.scrollTop;if(G)T.viewport.style.overflowX="hidden";else T.viewport.style.overflow="hidden";if(G)T.viewport.scrollLeft=0;else T.viewport.scrollTop=0;if(S>0)Q=S,K=S;j=P1(H.virtualSize,_.state.viewportState.containerSize,H.ratio,k),_.updateContentSize(H.virtualSize+j),_.setScrollFns(()=>Q,(V)=>{if(Q=V,K=V,D!==null)cancelAnimationFrame(D),D=null});let c=()=>{let V=K-Q;if(_.getVirtualTotal()===0){Q=0,K=0,D=null,_.scrollController.scrollTo(0);return}if(Math.abs(V)<N4){let X=_.getCachedCompression(),P=Math.max(0,X.virtualSize+j-_.state.viewportState.containerSize);Q=Math.max(0,Math.min(K,P)),K=Q,D=null}else{Q+=V*B4;let P=_.getCachedCompression().virtualSize+j-_.state.viewportState.containerSize;Q=Math.max(0,Math.min(Q,P)),D=requestAnimationFrame(c)}_.scrollController.scrollTo(Q)},F=T.viewport,y=(V)=>{V.preventDefault();let X=_.getCachedCompression(),P=X.virtualSize+j-_.state.viewportState.containerSize;if(K=Math.max(0,Math.min(K+V.deltaY*X.ratio*y1,P)),D===null)D=requestAnimationFrame(c)};F.addEventListener("wheel",y,{passive:!1});let O=()=>{if(N!==null)cancelAnimationFrame(N),N=null},I=(V)=>{if(O(),D!==null)cancelAnimationFrame(D),D=null;let X=V.touches[0];if(!X)return;let P=G?X.clientX:X.clientY;B=P,Z=Q,w=[{time:performance.now(),y:P}]},x=(V)=>{V.preventDefault();let X=V.touches[0];if(!X)return;let P=G?X.clientX:X.clientY,M=performance.now();if(w.push({time:M,y:P}),w.length>_4)w.shift();let A=B-P,W=_.getCachedCompression(),$=W.virtualSize+j-_.state.viewportState.containerSize,E=Math.max(0,Math.min(Z+A*W.ratio*y1,$));Q=E,K=E,_.scrollController.scrollTo(E)},l=(V)=>{let X=performance.now(),P=w.filter(($)=>X-$.time<D4),M=0;if(P.length>=2){let $=P[0],E=P[P.length-1],L=E.time-$.time;if(L>0)M=($.y-E.y)/L}if(w=[],Math.abs(M)<V4)return;let A=M*16,W=()=>{if(A*=W4,Math.abs(A)<0.5){N=null;return}let E=_.getCachedCompression().virtualSize+j-_.state.viewportState.containerSize,L=Q+A;if(L=Math.max(0,Math.min(L,E)),L<=0&&A<0||L>=E&&A>0){Q=L,K=L,_.scrollController.scrollTo(L),N=null;return}Q=L,K=L,_.scrollController.scrollTo(L),N=requestAnimationFrame(W)};N=requestAnimationFrame(W)};F.addEventListener("touchstart",I,{passive:!0}),F.addEventListener("touchmove",x,{passive:!1}),F.addEventListener("touchend",l,{passive:!0}),F.addEventListener("touchcancel",l,{passive:!0}),_.destroyHandlers.push(()=>{F.removeEventListener("wheel",y),F.removeEventListener("touchstart",I),F.removeEventListener("touchmove",x),F.removeEventListener("touchend",l),F.removeEventListener("touchcancel",l)});let p=T.viewport.querySelector(`.${R}-scrollbar`),r=()=>{if((G?T.viewport.scrollLeft:T.viewport.scrollTop)!==0)if(G)T.viewport.scrollLeft=0;else T.viewport.scrollTop=0};if(F.addEventListener("scroll",r,{passive:!0}),_.destroyHandlers.push(()=>{F.removeEventListener("scroll",r)}),!p){if(Y=i0(T.viewport,(X)=>_.scrollController.scrollTo(X),{},R,G),!T.viewport.classList.contains(`${R}-viewport--custom-scrollbar`))T.viewport.classList.add(`${R}-viewport--custom-scrollbar`);Y.updateBounds(H.virtualSize,_.state.viewportState.containerSize);let V=Y;_.afterScroll.push((X,P)=>{if(V)V.updatePosition(X),V.show()}),_.resizeHandlers.push((X,P)=>{if(V){let M=_.getCachedCompression();V.updateBounds(M.virtualSize,_.state.viewportState.containerSize)}})}}else if(!H.isCompressed&&U){if(U=!1,D!==null)cancelAnimationFrame(D),D=null;if(N!==null)cancelAnimationFrame(N),N=null;if(Q=0,K=0,w=[],_.setScrollFns(G?()=>T.viewport.scrollLeft:()=>T.viewport.scrollTop,G?(S)=>{T.viewport.scrollLeft=S}:(S)=>{T.viewport.scrollTop=S}),G)T.viewport.scrollLeft=0;else T.viewport.scrollTop=0;if(_.scrollController.disableCompression(),G)T.viewport.style.overflowX="auto";else T.viewport.style.overflow="auto";if(Y)Y.destroy(),Y=null;j=0,_.updateContentSize(H.actualSize)}else if(H.isCompressed)_.scrollController.updateConfig({compression:H}),j=P1(H.virtualSize,_.state.viewportState.containerSize,H.ratio,k),_.updateContentSize(H.virtualSize+j);if(Y)Y.updateBounds(H.virtualSize+j,_.state.viewportState.containerSize);let C=_.state.viewportState;if(C.isCompressed=H.isCompressed,C.compressionRatio=H.ratio,C.totalSize=H.virtualSize+j,C.actualSize=H.actualSize,_.state.cachedCompression={state:H,totalItems:o},U){let S=Math.max(0,H.virtualSize+j-_.state.viewportState.containerSize),c=Q;if(c>S)c=S;else if(c<0)c=0;if(c!==Q){if(D!==null)cancelAnimationFrame(D),D=null;if(N!==null)cancelAnimationFrame(N),N=null;_.scrollController.scrollTo(c)}}for(let S=0;S<_.contentSizeHandlers.length;S++)_.contentSizeHandlers[S]()};_.updateCompressionMode=f;let a=_.getCachedCompression.bind(_);_.getCachedCompression=()=>{if(_.state.cachedCompression)return _.state.cachedCompression.state;return a()},_.setVisibleRangeFn((o,H,C,S,c)=>{h=null,u=null;let F=n0(S,C,q);H1(o,H,C,S,F,c)}),_.setScrollToPosFn((o,H,C,S,c)=>{let F=n0(S,H,q);return $1(o,H,C,S,F,c)});let h=null,u=null;_.setPositionElementFn((o,H)=>{let C=_.getVirtualTotal(),S=n0(C,_.sizeCache,q);if(S.isCompressed){let c=_.scrollController.getScrollTop();if(h===null||H<u)u=H,h=Math.round(r0(H,c,_.sizeCache,C,_.state.viewportState.containerSize,S));let F=h+_.sizeCache.getOffset(H)-_.sizeCache.getOffset(u),y=_.config.horizontal;o.style.transform=y?`translateX(${F}px)`:`translateY(${F}px)`}else{let c=Math.round(_.sizeCache.getOffset(H)),F=_.config.horizontal;o.style.transform=F?`translateX(${c}px)`:`translateY(${c}px)`}});let b=G?v.left:v.top,d=G?v.right:v.bottom,J0=_.getItemToScrollIndexFn();_.methods.set("_scrollItemIntoView",(o)=>{let H=_.getCachedCompression(),C=_.state.viewportState.containerSize,S=_.state.viewportState.scrollPosition,c=_.getVirtualTotal(),{visibleRange:F}=_.state.viewportState,y=J0(o),O=XJ(y,_.sizeCache,S,C,b,d,H,c,F);if(O!==S)_.scrollController.scrollTo(O)}),f(),_.destroyHandlers.push(()=>{if(Y)Y.destroy(),Y=null;if(D!==null)cancelAnimationFrame(D),D=null;if(N!==null)cancelAnimationFrame(N),N=null})}}};var w1=(J={})=>{let{chunkSize:q=100,maxCachedItems:Y=5000,evictionBuffer:Q=200,onEvict:U}=J,j=new Map,K=0,D=0,B=(F)=>{let y=j.get(F);if(!y)y={items:Array(q),count:0,lastAccess:Date.now()},j.set(F,y);else y.lastAccess=Date.now();return y},Z=(F)=>{return Math.floor(F/q)},N=(F)=>{return F%q},w=()=>K,_=(F)=>{K=F},T=(F)=>{if(F<0||F>=K)return;let y=Z(F),O=j.get(y);if(!O)return;return O.items[N(F)]},z=(F)=>{if(F<0||F>=K)return!1;let y=Z(F),O=j.get(y);if(!O)return!1;return O.items[N(F)]!==void 0},R=(F,y)=>{let O=Z(F),I=B(O),x=N(F),l=I.items[x]===void 0;if(I.items[x]=y,l)I.count++,D++;if(F>=K)K=F+1},G=(F,y)=>{for(let O=0;O<y.length;O++){let I=y[O];if(I!==void 0)R(F+O,I)}},v=(F)=>{if(F<0||F>=K)return!1;let y=Z(F),O=j.get(y),I=N(F);if(!(O!==void 0&&O.items[I]!==void 0))return!1;let l=y,p=Array.from(j.keys()).filter((V)=>V>=l).sort((V,X)=>V-X),r=[];for(let V of p){let X=j.get(V),P=V*q;for(let M=0;M<q;M++){if(X.items[M]===void 0)continue;let A=P+M;if(A<=F)continue;r.push({oldIndex:A,item:X.items[M]})}}if(O.items[I]=void 0,O.count--,D--,O.count===0)j.delete(y);for(let{oldIndex:V}of r){let X=Z(V),P=j.get(X);if(!P)continue;let M=N(V);if(P.items[M]!==void 0){if(P.items[M]=void 0,P.count--,D--,P.count===0)j.delete(X)}}for(let{oldIndex:V,item:X}of r){let P=V-1,M=Z(P),A=B(M),W=N(P);A.items[W]=X,A.count++,D++}return K--,!0},k=(F,y)=>{let O=[];for(let I=F;I<=y&&I<K;I++)O.push(T(I));return O},f=(F,y)=>{for(let O=F;O<=y&&O<K;O++)if(!z(O))return!1;return!0},a=()=>{let F=[],y=null,O=Array.from(j.keys()).sort((I,x)=>I-x);for(let I of O){let x=j.get(I);if(!x)continue;let l=I*q;for(let p=0;p<q;p++){let r=l+p;if(r>=K)break;if(x.items[p]!==void 0)if(y===null)y={start:r,end:r};else if(r===y.end+1)y.end=r;else F.push(y),y={start:r,end:r};else if(y!==null)F.push(y),y=null}}if(y!==null)F.push(y);return F},h=(F,y)=>{let O=[],I=null;for(let x=F;x<=y&&x<K;x++)if(!z(x))if(I===null)I={start:x,end:x};else I.end=x;else if(I!==null)O.push(I),I=null;if(I!==null)O.push(I);return O},u=(F)=>{return j.has(F)},b=(F)=>{let y=j.get(F);if(y)y.lastAccess=Date.now()},d=(F,y)=>{if(F>y||j.size===0)return;let O=Date.now(),I=Z(Math.max(0,F)),x=Z(Math.min(K-1,y));for(let l=I;l<=x;l++){let p=j.get(l);if(p)p.lastAccess=O}},J0=(F,y)=>{if(D<=Y)return 0;let O=Math.max(0,F-Q),I=Math.min(K-1,y+Q),x=Z(O),l=Z(I),p=0,r=[];for(let[V,X]of j)if(V<x||V>l)p+=X.count,r.push(V),D-=X.count,j.delete(V);if(p>0&&U)U(p,r);return p},o=()=>{if(D<=Y)return 0;let F=Array.from(j.entries()).sort(([,I],[,x])=>I.lastAccess-x.lastAccess),y=0,O=[];for(let[I,x]of F){if(D<=Y)break;y+=x.count,D-=x.count,O.push(I),j.delete(I)}if(y>0&&U)U(y,O);return y},H=()=>{return{totalItems:K,cachedItems:D,cachedChunks:j.size,chunkSize:q,maxCachedItems:Y,memoryEfficiency:K>0?1-D/K:1}},C=()=>D,S=()=>{j.clear(),D=0};return{chunkSize:q,maxCachedItems:Y,getTotal:w,setTotal:_,get:T,has:z,set:R,setRange:G,delete:v,getRange:k,isRangeLoaded:f,getLoadedRanges:a,findUnloadedRanges:h,getChunkIndex:Z,isChunkLoaded:u,touchChunk:b,touchChunksForRange:d,evictDistant:J0,evictToLimit:o,getStats:H,getCachedCount:C,clear:S,reset:()=>{S(),K=0}}},G4=(J)=>{if(J.length===0)return[];let q=[...J].sort((Q,U)=>Q.start-U.start),Y=[{...q[0]}];for(let Q=1;Q<q.length;Q++){let U=q[Q],j=Y[Y.length-1];if(U.start<=j.end+1)j.end=Math.max(j.end,U.end);else Y.push({...U})}return Y},R1=(J,q,Y)=>{let Q=Math.floor(J.start/Y)*Y,U=Math.ceil((J.end+1)/Y)*Y-1,j={start:Q,end:U};if(q.length===0)return[j];let K=[],D=G4(q),B=j.start;for(let Z of D){if(Z.end<B)continue;if(Z.start>j.end)break;if(Z.start>B)K.push({start:B,end:Math.min(Z.start-1,j.end)});if(B=Z.end+1,B>j.end)break}if(B<=j.end)K.push({start:B,end:j.end});return K};var z1=(J={})=>{let{maskCharacter:q=A1,maxSampleSize:Y=L1}=J,Q=[],U=!1,j=(N)=>{if(U||N.length===0)return;let w=Math.min(N.length,Y);for(let _=0;_<w;_++){let T=N[_];if(!T||typeof T!=="object")continue;let z={};for(let[R,G]of Object.entries(T)){if(R.startsWith("_")||R==="id")continue;z[R]=String(G??"").length}if(Object.keys(z).length>0)Q.push(z)}U=!0},K=()=>U,D=(N)=>{let w={id:`${w0}${N}`,[TJ]:!0,_index:N};if(Q.length===0)return w.label=q.repeat(12),w;let _=Q[N%Q.length];for(let[T,z]of Object.entries(_))w[T]=q.repeat(Math.max(1,z));return w};return{analyzeStructure:j,hasAnalyzedStructure:K,generate:D,generateRange:(N,w)=>{let _=[];for(let T=N;T<=w;T++)_.push(D(T));return _},clear:()=>{Q=[],U=!1}}},BJ=(J)=>{if(!J||typeof J!=="object")return!1;return J[TJ]===!0};var M4=50,C1=(J={})=>{let{adapter:q,initialItems:Y,initialTotal:Q,storage:U,placeholder:j,pageSize:K=M4,onStateChange:D,onItemsLoaded:B,onItemsEvicted:Z}=J,N=w1({...U,onEvict:(s,Q0)=>{Z?.(s),d()}}),w=null,_=()=>{if(!w)w=z1(j);return w},T=new Map,z=!1,R,G=!0,v,k,f=[],a=0,h=new Map,u=new Map,b=()=>{for(let s of u.values())s.abort();u.clear(),h.clear()},d=()=>{D?.(O())},J0=()=>{T.clear();let s=N.getLoadedRanges();for(let Q0 of s)for(let q0=Q0.start;q0<=Q0.end;q0++){let U0=N.get(q0);if(U0&&!BJ(U0))T.set(U0.id,q0)}},o=(s,Q0)=>{if(!BJ(Q0))T.set(Q0.id,s)},H=(s)=>{T.delete(s)},C=(s,Q0)=>{return`${s}-${Q0}`},S=()=>N.getTotal(),c=()=>N.getCachedCount(),F=()=>z,y=()=>G,O=()=>({total:N.getTotal(),cached:N.getCachedCount(),isLoading:z,pendingRanges:f,error:R,hasMore:G,cursor:v}),I=()=>N,x=()=>_(),l=(s)=>{let Q0=N.get(s);if(Q0!==void 0)return Q0;if(s>=0&&s<N.getTotal())return _().generate(s);return},p=(s)=>{let Q0=T.get(s);if(Q0===void 0)return;return N.get(Q0)},r=(s)=>{return T.get(s)??-1},V=(s)=>{let Q0=N.get(s);return Q0!==void 0&&!BJ(Q0)},X=(s,Q0)=>{let q0=[],U0=N.getTotal(),K0=0,Z0=0;N.touchChunksForRange(s,Math.min(Q0,U0-1));for(let V0=s;V0<=Q0&&V0<U0;V0++){let G0=N.get(V0);if(G0!==void 0)q0.push(G0),K0++;else q0.push(_().generate(V0)),Z0++}return q0},P=(s)=>{N.setTotal(s),G=N.getCachedCount()<s,d()},M=(s,Q0=0,q0)=>{if(q&&s.length>0){let U0=_();if(!U0.hasAnalyzedStructure())U0.analyzeStructure(s)}for(let U0=0;U0<s.length;U0++){let K0=s[U0];if(K0!==void 0){let Z0=Q0+U0;N.set(Z0,K0),o(Z0,K0)}}if(q0!==void 0)N.setTotal(q0);else if(Q0+s.length>N.getTotal())N.setTotal(Q0+s.length);if(N.getCachedCount()>=N.getTotal()&&N.getTotal()>0)G=!1;d(),B?.(s,Q0,N.getTotal())},A=(s,Q0)=>{let q0=N.get(s);if(!q0)return!1;let U0=q0.id,K0={...q0,...Q0};if(N.set(s,K0),Q0.id!==void 0&&Q0.id!==U0)H(U0);return o(s,K0),d(),!0},W=(s)=>{let Q0=T.get(s);if(Q0===void 0)return!1;if(!N.delete(Q0))return!1;return J0(),b(),d(),!0},$=async(s,Q0)=>{if(!q)return;let q0=C(s,Q0);if(h.has(q0))return;let U0=N.getLoadedRanges(),K0=R1({start:s,end:Q0},U0,N.chunkSize);if(K0.length===0)return;let Z0=N.chunkSize,V0=Z0*2;for(let[B0,O0]of u){let A0=B0.indexOf("-"),D0=parseInt(B0.slice(0,A0),10);if(Math.abs(D0-s)>V0)O0.abort(),u.delete(B0),h.delete(B0)}let G0=[];for(let B0 of K0){let O0=Math.floor(B0.start/Z0),A0=Math.floor(B0.end/Z0);for(let D0=O0;D0<=A0;D0++){let W0=D0*Z0,F0=W0+Z0-1,M0=C(W0,F0);if(!G0.some((T0)=>T0.start===W0)&&!h.has(M0))G0.push({start:W0,end:F0})}}let X0=[];for(let B0 of K0){let O0=Math.floor(B0.start/Z0),A0=Math.floor(B0.end/Z0);for(let D0=O0;D0<=A0;D0++){let W0=D0*Z0,F0=W0+Z0-1,M0=C(W0,F0);if(h.has(M0)){let T0=h.get(M0);if(!X0.includes(T0))X0.push(T0)}}}for(let B0 of G0){let O0=C(B0.start,B0.end),A0=new AbortController;u.set(O0,A0);let D0=(async()=>{f.push(B0),z=!0,R=void 0,d();try{let W0=B0.end-B0.start+1,F0={offset:B0.start,limit:W0,cursor:B0.start===k?v:void 0,signal:A0.signal},M0=await q.read(F0);if(M(M0.items,B0.start,M0.total),M0.cursor)v=M0.cursor,k=B0.start+M0.items.length;let T0=B0.start+M0.items.length;if(T0>=a){if(a=T0,M0.hasMore!==void 0)G=M0.hasMore;else if(M0.total!==void 0)G=T0<M0.total}}catch(W0){if(W0?.name==="AbortError")return;R=W0 instanceof Error?W0:Error(String(W0))}finally{h.delete(O0),u.delete(O0),f=f.filter((W0)=>W0.start!==B0.start||W0.end!==B0.end),z=h.size>0,d()}})();h.set(O0,D0),X0.push(D0)}await Promise.all(X0)},E=async(s,Q0)=>{if(N.isRangeLoaded(s,Q0))return;await $(s,Q0)},L=async()=>{if(!q)return;await $(0,K-1)},g=async()=>{if(!q||z||!G)return!1;let s=N.getCachedCount(),Q0=N.getTotal(),q0=s,U0=Math.min(q0+K-1,Q0>0?Q0-1:q0+K-1);if(q0>=Q0&&Q0>0)return G=!1,!1;return await $(q0,U0),N.getCachedCount()>s},i=async()=>{if(N.clear(),N.setTotal(0),T.clear(),w)w.clear();b(),f=[],z=!1,v=void 0,k=void 0,G=!0,a=0,R=void 0,d()},n=(s,Q0)=>{if(N.evictDistant(s,Q0)>0)J0()},t=()=>{N.clear(),T.clear(),v=void 0,k=void 0,R=void 0,f=[],z=!1,d()},j0=()=>{if(N.reset(),T.clear(),w)w.clear();v=void 0,k=void 0,G=!0,a=0,R=void 0,f=[],z=!1,d()};if(Y&&Y.length>0)M(Y,0,Q??Y.length);else if(Q!==void 0)N.setTotal(Q),d();return{getState:O,getTotal:S,getCached:c,getIsLoading:F,getHasMore:y,getStorage:I,getPlaceholders:x,getItem:l,getItemById:p,getIndexById:r,isItemLoaded:V,getItemsInRange:X,setTotal:P,setItems:M,updateItem:A,removeItem:W,loadRange:$,ensureRange:E,loadInitial:L,loadMore:g,reload:i,evictDistant:n,clear:t,reset:j0}};var vJ=(J)=>{let{adapter:q,loading:Y,storage:Q,total:U,autoLoad:j=!0}=J,K=Y?.cancelThreshold??O1,D=Y?.preloadThreshold??E1,B=Y?.preloadAhead??M1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(Z){let{emitter:N}=Z,w=Z.config.reverse,_=Z.methods.get("_getGridLayout"),T=(H)=>{if(_){let C=_();if(C){let S=Z.dataManager.getTotal();return C.getItemRange(H.start,H.end,S)}}return H},z=C1({adapter:q,...U!==void 0&&{initialTotal:U},pageSize:Q?.chunkSize??g0,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(Z.state.isInitialized){let H=Z.getVirtualTotal();Z.sizeCache.rebuild(H),Z.updateCompressionMode();let C=Z.getCachedCompression();Z.state.viewportState.totalSize=C.virtualSize,Z.state.viewportState.actualSize=C.actualSize,Z.state.viewportState.isCompressed=C.isCompressed,Z.state.viewportState.compressionRatio=C.ratio,Z.updateContentSize(C.virtualSize),Z.renderIfNeeded()}},onItemsLoaded:(H,C,S)=>{if(Z.state.isInitialized)Z.forceRender(),N.emit("load:end",{items:H,total:S,offset:C})}});Z.replaceDataManager(z);let R=null,G=null,v=0,k=!1,f=null,a=120,h=(H=!1)=>{if(k=!1,G=null,H)R=null;if(f!==null)clearTimeout(f),f=null},u=()=>{if(!G)return;G=null;let{renderRange:H}=Z.state.viewportState;if(H.end<H.start)return;R=null;let C=T(H);Z.dataManager.ensureRange(C.start,C.end).catch((S)=>{N.emit("error",{error:S,context:"ensureRange"})})};Z.afterScroll.push((H,C)=>{if(Z.state.isDestroyed)return;let S=Z.scrollController.getVelocity(),F=Z.scrollController.isTracking()&&S<=K;if(v>K&&S<=K)k=!0;else if(k&&S>K)h();if(k&&S<0.5)h(!0);if(v=S,(Z.scrollController.isAtTop()||Z.scrollController.isAtBottom())&&(k||G))h(!0),F=!0;let O=k&&S>0.5;if(F&&!Z.dataManager.getIsLoading()&&Z.dataManager.getHasMore()){if(w){if(H<FJ)N.emit("load:start",{offset:Z.dataManager.getCached(),limit:g0}),Z.dataManager.loadMore().catch((l)=>{N.emit("error",{error:l,context:"loadMore"})})}else if(Z.state.viewportState.totalSize-H-Z.state.viewportState.containerSize<FJ)N.emit("load:start",{offset:Z.dataManager.getCached(),limit:g0}),Z.dataManager.loadMore().catch((p)=>{N.emit("error",{error:p,context:"loadMore"})})}let{renderRange:I}=Z.state.viewportState;if(!R||I.start!==R.start||I.end!==R.end){if(R={start:I.start,end:I.end},F&&!O){if(G=null,f!==null)clearTimeout(f),f=null;let l=T(I),p=l.start,r=l.end,V=_?Z.dataManager.getTotal():Z.getVirtualTotal();if(S>D)if(C==="down")r=Math.min(l.end+B,V-1);else p=Math.max(l.start-B,0);Z.dataManager.ensureRange(p,r).catch((X)=>{N.emit("error",{error:X,context:"ensureRange"})})}else if(G={start:I.start,end:I.end},O){if(f!==null)clearTimeout(f);f=setTimeout(()=>{f=null,u(),h()},a)}}});let b=200,d=null;Z.afterScroll.push((H,C)=>{if(d!==null)clearTimeout(d);d=setTimeout(()=>{d=null,u(),h()},b)}),Z.destroyHandlers.push(()=>{if(d!==null)clearTimeout(d),d=null;h()});let J0=()=>{if(Z.state.isDestroyed)return;R=null;let{renderRange:H}=Z.state.viewportState;if(H.end>0){let C=T(H);Z.dataManager.ensureRange(C.start,C.end).catch((S)=>{N.emit("error",{error:S,context:"ensureRange"})})}u()};window.addEventListener("online",J0),Z.destroyHandlers.push(()=>{window.removeEventListener("online",J0)}),N.on("load:start",()=>{Z.dom.root.setAttribute("aria-busy","true")}),N.on("load:end",()=>{Z.dom.root.removeAttribute("aria-busy")}),Z.methods.set("loadVisibleRange",async()=>{R=null,G=null,Z.forceRender();let{renderRange:H}=Z.state.viewportState;if(H.end>0){let C=T(H);N.emit("load:start",{offset:C.start,limit:C.end-C.start+1}),await Z.dataManager.ensureRange(C.start,C.end)}}),Z.methods.set("reload",async(H)=>{R=null,G=null;let C=H?.snapshot,S=C!=null&&(C.total??0)>0&&C.index>0,c=S||H?.skipInitialLoad===!0;if(Z.invalidateRendered(),await Z.dataManager.reload(),!S)Z.scrollController.scrollTo(0);if(!c){N.emit("load:start",{offset:0,limit:g0}),await Z.dataManager.loadInitial(),Z.forceRender();let{renderRange:F}=Z.state.viewportState;if(F.end>0){let y=T(F);await Z.dataManager.ensureRange(y.start,y.end)}}if(S){let F=Z.methods.get("restoreScroll");if(F)F(C)}});let o=!1;if(Z.methods.set("_cancelAutoLoad",()=>{o=!0}),j)queueMicrotask(()=>{if(o)return;N.emit("load:start",{offset:0,limit:g0}),Z.dataManager.loadInitial().catch((H)=>{N.emit("error",{error:H,context:"loadInitial"})})});else if(U!==void 0)Z.dataManager.setTotal(U)}}};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:U,state:j,config:K,emitter:D}=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 w=U.viewport.getBoundingClientRect();return Math.max(0,K.horizontal?-w.left:-w.top)},(w)=>{let _=U.viewport.getBoundingClientRect();if(K.horizontal){let T=_.left+window.scrollX;window.scrollTo({left:T+w,top:window.scrollY,behavior:"instant"})}else{let T=_.top+window.scrollY;window.scrollTo({left:window.scrollX,top:T+w,behavior:"instant"})}}),Q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),j.viewportState.containerSize=window.innerHeight,Y){let w=K.horizontal,_=Q.getItemToScrollIndexFn();Q.setScrollToPosFn((T,z,R,G,v)=>{let k=NJ(w?Y.left:Y.top),f=NJ(w?Y.right:Y.bottom);if(G===0)return 0;let a=Math.max(0,Math.min(T,G-1)),h=z.getOffset(a),u=z.getSize(a),b=z.getTotalSize(),d=Math.max(0,b-R+f),J0;switch(v){case"start":J0=h-k;break;case"center":{let o=R-k-f;J0=h-k-(o-u)/2;break}case"end":J0=h-R+u+f;break}return Math.max(-k,Math.min(J0,d))}),Q.methods.set("_scrollItemIntoView",(T)=>{let z=_(T),R=w?window.innerWidth:window.innerHeight,G=NJ(w?Y.left:Y.top),v=NJ(w?Y.right:Y.bottom),k=U.viewport.getBoundingClientRect(),f=w?window.scrollX:window.scrollY,a=(w?k.left:k.top)+f,h=a-f,u=Q.sizeCache.getOffset(z),b=Q.sizeCache.getSize(z),d=h+u,J0=d+b,o=G,H=R-v,C=f;if(d<o)C=a+u-o;else if(J0>H)C=a+u+b-H;if(C!==f)if(w)window.scrollTo({left:C,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:C,behavior:"instant"})})}let{innerHeight:B,innerWidth:Z}=window,N=()=>{let{innerWidth:w,innerHeight:_}=window,T=K.horizontal?w:_,z=K.horizontal?Z:B;if(Math.abs(T-z)<=1)return;B=_,Z=w,j.viewportState.containerSize=_,D.emit("resize",{width:w,height:_});for(let R=0;R<Q.resizeHandlers.length;R++)Q.resizeHandlers[R](w,_);Q.renderIfNeeded()};window.addEventListener("resize",N,{passive:!0}),q=()=>{window.removeEventListener("resize",N)},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 U=Y+Q+1>>>1;if(J[U].headerLayoutIndex<=q)Y=U;else Q=U-1}return Y},v1=(J,q)=>{let Y=0,Q=J.length-1;while(Y<Q){let U=Y+Q+1>>>1;if(J[U].firstDataIndex<=q)Y=U;else Q=U-1}return Y},S1=(J,q)=>{if(J===0)return[];let Y=[],Q=q(0),U=0,j=0;for(let K=1;K<J;K++){let D=q(K);if(D!==Q){let B=K-U;Y.push({key:Q,groupIndex:Y.length,headerLayoutIndex:j,firstDataIndex:U,count:B}),j=j+1+B,Q=D,U=K}}return Y.push({key:Q,groupIndex:Y.length,headerLayoutIndex:j,firstDataIndex:U,count:J-U}),Y},IJ=(J,q)=>{if(J.length===0||q.length===0)return[];let Y=J.length+q.length,Q=Array(Y),U=0;for(let j of q){Q[U]={id:`__group_header_${j.groupIndex}`,__groupHeader:!0,groupKey:j.key,groupIndex:j.groupIndex},U++;for(let K=0;K<j.count;K++)Q[U]=J[j.firstDataIndex+K],U++}return Q},pJ=(J,q,Y=!1)=>{let Q=typeof q==="number"?(U)=>q:q;return(U)=>{let j=J.getEntry(U);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,U=q.header?.height??q.header?.width??q.headerHeight;return{get totalEntries(){return Q},get groupCount(){return Y.length},get groups(){return Y},getEntry:(_)=>{if(Y.length===0)return{type:"item",dataIndex:_,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let T=fJ(Y,_),z=Y[T];if(_===z.headerLayoutIndex)return{type:"header",group:z};let R=_-z.headerLayoutIndex-1;return{type:"item",dataIndex:z.firstDataIndex+R,group:z}},layoutToDataIndex:(_)=>{if(Y.length===0)return _;let T=fJ(Y,_),z=Y[T];if(_===z.headerLayoutIndex)return-1;let R=_-z.headerLayoutIndex-1;return z.firstDataIndex+R},dataToLayoutIndex:(_)=>{if(Y.length===0)return _;let T=v1(Y,_),z=Y[T],R=_-z.firstDataIndex;return z.headerLayoutIndex+1+R},getGroupAtLayoutIndex:(_)=>{if(Y.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let T=fJ(Y,_);return Y[T]},getGroupAtDataIndex:(_)=>{if(Y.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let T=v1(Y,_);return Y[T]},getHeaderHeight:typeof U==="number"?(_)=>U:(_)=>{let T=Y[_];if(!T)return 0;return U(T.key,_)},rebuild:(_)=>{Y=S1(_,q.getGroupForIndex),Q=_+Y.length}}};var I1=(J,q,Y,Q,U,j=!1,K=0)=>{let D=j?"width":"height",B=j?"height":"width",Z=j?"X":"Y",N=(X,P)=>{X.style[D]=`${P}px`},w=document.createElement("div");w.className=`${U}-sticky-header`,w.setAttribute("role","presentation"),w.setAttribute("aria-hidden","true"),w.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${K||0}px`:`top:${K||0}px`);let _=()=>{let X=document.createElement("div");return X.className="sticky-group",X.style.position="absolute",X.style.willChange="transform",X.style[B]="100%",X},T=_(),z=_();w.append(T,z),J.insertBefore(w,J.firstChild);let R=T,G=z,v=q.groups,k=[],f=[],a=0,h=()=>{v=q.groups,a=v.length,k=Array(a),f=Array(a);for(let X=0;X<a;X++)k[X]=Y.getOffset(v[X].headerLayoutIndex),f[X]=q.getHeaderHeight(X)};h();let u=-1,b=0,d=-1,J0=!1,o=0,H=!1,C=(X,P)=>{Q(X,P);let M=f[P];return N(X,M),M},S=(X)=>{X.replaceChildren(),X.style.transform=""},c=(X)=>{if(X===u)return;if(u=X,b=0,X<0||X>=a){S(R);return}b=C(R,X),N(w,b),R.style.transform=""},F=(X)=>{if(X===o)return;o=X;let P=Math.round(X);R.style.transform=`translate${Z}(${P}px)`,G.style.transform=`translate${Z}(${P+b}px)`},y=()=>{o=0,R.style.transform="",G.style.transform=""},O=()=>{if(!H)return;let X=R;R=G,G=X,u=d,b=u>=0?f[u]:0,N(w,b),S(G),d=-1,H=!1,y()},I=()=>{if(!H)return;S(G),d=-1,H=!1,y()},x=()=>{if(J0)return;J0=!0,w.style.display=""},l=()=>{if(!J0)return;J0=!1,w.style.display="none",S(R),u=-1,b=0,I()},p=(X)=>{if(a===0){l();return}if(X<k[0]){l();return}let P=0,M=a-1;while(P<M){let W=P+M+1>>>1;if(k[W]+f[W]<=X)P=W;else M=W-1}if(!J0)x();c(P);let A=P+1;if(A<a){let W=k[A]-X;if(W<=0&&W>-b){if(d!==A||!H)d=A,C(G,A),H=!0;F(W)}else if(W<=-b){if(H)O()}else if(H)I()}else if(H)I()},r=()=>{h();let X=u;if(u=-1,b=0,X>=0)c(X)},V=()=>{w.remove(),u=-1,b=0,d=-1,J0=!1,H=!1};return w.style.display="none",{update:p,refresh:r,show:x,hide:l,destroy:V}};var C0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var p1=(J,q,Y,Q,U,j)=>{if(Q===0)return 0;let K=Math.max(0,Math.min(J,Q-1)),D=q.getOffset(K),B=q.getSize(K),Z=q.getTotalSize(),N=Math.max(0,Z-Y),w;switch(j){case"center":w=D-Y/2+B/2;break;case"end":w=D-Y+B;break;case"start":default:w=D;break}return Math.max(0,Math.min(w,N))};var t0=(J,q,Y,Q,U="start",j,K=p1)=>{return K(J,q,Y,Q,j,U)};var O4=(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},hJ=(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 U=null,j=null,K=[],D=[];return{name:"withGroups",priority:10,setup(B){let{dom:Z,config:N,rawConfig:w}=B,{classPrefix:_}=N,T=O4(J,N.horizontal),R=w.item.height;K=w.items?[...w.items]:[];let G=K.length,v={getGroupForIndex:T.getGroupForIndex,header:{height:T.header.height,template:T.header.template},sticky:T.sticky??!1};U=f1(G,v),D=IJ(K,U.groups);let k=T.sticky!==!1,f=pJ(U,R,k);B.setSizeConfig(f),B.rebuildSizeCache(D.length),B.dataManager.setItems(D,0,D.length);let a=w.item.template,{template:h}=T.header,u=(l,p,r)=>{if(C0(l))return h(l.groupKey,l.groupIndex);return a(l,p,r)},b=B.methods.get("_getGridLayout"),d=B.methods.get("_replaceGridRenderer"),J0=B.methods.get("_updateGridLayoutForGroups"),o=B.methods.get("_createGridRenderer"),H=B.methods.get("_getTableLayout"),C=B.methods.get("_updateTableForGroups"),S=B.methods.get("_getTableHeaderHeight");if(b&&d&&o){if(J0)J0((r)=>{let V=D[r];return!!(V&&C0(V))});let l=b(),p=o(Z.items,u,B.sizeCache,l,_,B.getContainerWidth(),()=>B.dataManager.getTotal(),N.ariaIdPrefix);d(p)}else if(H&&C)C((l)=>C0(l),T.header.template);else B.replaceTemplate(u);let c=S?S():0;if(Z.root.classList.add(`${_}--grouped`),T.sticky!==!1)if(B.methods.set("_getStickyHeaderHeight",()=>T.header.height),!N.horizontal)Z.viewport.style.height=`calc(100% - ${T.header.height}px)`;else Z.viewport.style.width=`calc(100% - ${T.header.height}px)`;if(T.sticky!==!1){let l=T.header.template,p=(V,X)=>{let P=U.groups[X];if(!P)return;let M=l(P.key,P.groupIndex);if(typeof M==="string")V.innerHTML=M;else V.replaceChildren(M)};j=I1(Z.root,U,B.sizeCache,p,_,N.horizontal,c);let r=j;B.afterScroll.push((V,X)=>{r.update(V)}),j.update(B.scrollController.getScrollTop())}let F=w.item?.striped,y=()=>{if(F!=="data"&&F!=="even"&&F!=="odd")return;let l=new Int32Array(D.length),p=F==="odd"?1:0,r=0;for(let V=0;V<D.length;V++)if(C0(D[V])){if(l[V]=-1,F==="even"||F==="odd")r=0}else l[V]=r+++p;B.setStripeIndexFn((V)=>{if(V<0||V>=l.length)return V;return l[V]})};y();let O=()=>{if(!U)return;U.rebuild(K.length),D=IJ(K,U.groups);let l=pJ(U,R,k);if(B.setSizeConfig(l),B.rebuildSizeCache(D.length),B.dataManager.setItems(D,0,D.length),y(),j)j.refresh()};B.methods.set("setItems",(l)=>{K=l.slice(),O()}),B.methods.set("appendItems",(l)=>{K.push(...l),O()}),B.methods.set("prependItems",(l)=>{K.unshift(...l),O()}),B.methods.set("removeItem",(l)=>{K=K.filter((p)=>p.id!==l),O()});let{animateScroll:I,cancelScroll:x}=l0(B.scrollController,B.renderIfNeeded);B.methods.set("scrollToIndex",(l,p)=>{let r=U.dataToLayoutIndex(l),{align:V,behavior:X,duration:P}=z0(p),M=B.dataManager.getTotal(),A=B.adjustScrollPosition(t0(r,B.sizeCache,B.state.viewportState.containerSize,M,V,B.getCachedCompression()));if(X==="smooth")I(B.scrollController.getScrollTop(),A,P);else x(),B.scrollController.scrollTo(A)}),B.methods.set("_getItems",()=>K),B.methods.set("_getTotal",()=>K.length),B.methods.set("_isGroupHeader",(l)=>{let p=D[l];return!!(p&&C0(p))}),B.destroyHandlers.push(()=>{if(x(),j)j.destroy(),j=null;Z.root.classList.remove(`${_}--grouped`)})},destroy(){if(j)j.destroy(),j=null}}};var h1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,Q=J.isHeaderFn,U={row:0,col:0},j=(z)=>{if(z<=0)return 0;if(!Q)return Math.ceil(z/q);let R=0,G=0,v=0;for(let k=0;k<z;k++)if(Q(k)){if(v++,G>0)R++,G=0;R++,G=0}else if(G++,G>=q)R++,G=0;if(G>0)R++;return R},K=(z)=>{return U.row=D(z),U.col=B(z),U},D=(z)=>{if(!Q)return Math.floor(z/q);let R=0,G=0;for(let v=0;v<=z;v++)if(Q(v)){if(G>0)R++,G=0;if(v===z)return R;R++,G=0}else{if(v===z)return R;if(G++,G>=q)R++,G=0}return console.warn(`⚠️ getRow(${z}) fell through - returning ${R}`),R},B=(z)=>{if(!Q)return z%q;if(Q(z))return 0;let R=0;for(let G=0;G<=z;G++)if(Q(G))R=0;else{if(G===z)return R;if(R++,R>=q)R=0}return R},Z=(z,R,G)=>{if(G<=0)return{start:0,end:-1};if(!Q){let h=Math.max(0,z*q),u=Math.min(G-1,(R+1)*q-1);return{start:h,end:u}}let v=-1,k=-1,f=0,a=0;for(let h=0;h<G;h++){if(Q(h)){if(a>0)f++,a=0;if(f>=z&&f<=R){if(v===-1)v=h;k=h}f++,a=0}else{if(f>=z&&f<=R){if(v===-1)v=h;k=h}if(a++,a>=q)f++,a=0}if(f>R&&a===0)break}if(v===-1)return{start:0,end:-1};return{start:v,end:k}},N=(z,R,G)=>{if(R<0||R>=q)return-1;let v=z*q+R;if(v<0||v>=G)return-1;return v},w=(z)=>{let R=(q-1)*Y;return Math.max(0,(z-R)/q)};return{get columns(){return q},get gap(){return Y},update:(z)=>{if(z.columns!==void 0)q=Math.max(1,Math.floor(z.columns));if(z.gap!==void 0)Y=z.gap;if(z.isHeaderFn!==void 0)Q=z.isHeaderFn},getTotalRows:j,getPosition:K,getRow:D,getCol:B,getItemRange:Z,getItemIndex:N,getColumnWidth:w,getColumnOffset:(z,R)=>{let G=w(R);return z*(G+Y)}}};var E4=(J=200)=>{let q=[];return{acquire:()=>{let j=q.pop();if(j)return j;let K=document.createElement("div");return K.setAttribute("role","option"),K},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}}},A4=1,uJ=(J,q,Y,Q,U,j,K,D,B=!1)=>{let Z=E4(),N=new Map,w=j,_=!1,T=0,z="",R=-1,G={selected:!1,focused:!1},v=(V,X)=>{return G.selected=V,G.focused=X,G},k=`${U}-item ${U}-grid-item`,f=`${U}-item--selected`,a=`${U}-item--focused`,h=`${U}-item--placeholder`,u=`${U}-item--replaced`,b=(V,X)=>{if(typeof X==="string")V.innerHTML=X;else V.replaceChildren(X)},d=(V,X,P)=>{V.classList.toggle(f,X),V.classList.toggle(a,P)},J0=(V,X)=>{let P=Q.getRow(V);if(X?.compression?.isCompressed)return r0(P,X.scrollPosition,Y,X.totalItems,X.containerSize,X.compression,X.rangeStart);return Y.getOffset(P)},o=(V,X)=>{let P=_&&Q.getCol(V)===0,M=P?0:Q.getCol(V),A=P?0:Q.getColumnOffset(M,w),W;if(_){let $=Q.getRow(V),E=0,L=new Set;for(let g=0;g<V;g++){let i=Q.getRow(g);if(i<$&&!L.has(i)){let n=Y.getSize(g);E+=n,L.add(i)}}W=E}else W=J0(V,X);if(B)return`translate(${Math.round(W)}px, ${Math.round(A)}px)`;return`translate(${Math.round(A)}px, ${Math.round(W)}px)`},H=(V,X)=>{V.style.transform=X},C=(V,X)=>{let P=V.dataset.id?.startsWith("__group_header"),M=P?w:Q.getColumnWidth(w),A;if(_||P)A=Y.getSize(X)-Q.gap;else{let W=Q.getRow(X);A=Y.getSize(W)-Q.gap}if(B)V.style.width=`${A}px`,V.style.height=`${M}px`;else V.style.width=`${M}px`,V.style.height=`${A}px`},S=(V,X,P,M,A)=>{let W=Z.acquire(),$=v(P,M);if(W.className=k,W.dataset.index=String(V),W.dataset.id=String(X.id),W.dataset.row=String(Q.getRow(V)),W.dataset.col=String(Q.getCol(V)),W.ariaSelected=String(P),D)W.id=`${D}-item-${V}`;if(K){let g=K();if(g!==R)R=g,z=String(g);W.setAttribute("aria-setsize",z),W.setAttribute("aria-posinset",String(V+1))}C(W,V);let E=q(X,V,$);if(b(W,E),String(X.id).startsWith(w0))W.classList.add(h);return d(W,P,M),H(W,A),{element:W,lastItemId:X.id,lastSelected:P,lastFocused:M,lastTransform:A,lastSeenFrame:T}},c=(V,X,P,M,A)=>{if(T++,X.start===0&&V.length>0)_=C0(V[0]);for(let[E,L]of N)if(E>=X.start&&E<=X.end)L.lastSeenFrame=T;else if(T-L.lastSeenFrame>A4)Z.release(L.element),N.delete(E);let W=!1;if(K){let E=K();if(E!==R)R=E,z=String(E),W=!0}let $=null;for(let E=X.start;E<=X.end;E++){let L=E-X.start,g=V[L];if(!g){console.warn(`⚠️ RENDER: Missing item at index ${E} (range: ${X.start}-${X.end}, items.length: ${V.length})`);continue}let i=P.has(g.id),n=E===M,t=N.get(E);if(t){let j0=t.lastItemId!==g.id,s=t.lastSelected!==i,Q0=t.lastFocused!==n;if(j0){let U0=String(t.lastItemId),K0=String(g.id),Z0=U0.startsWith(w0),V0=K0.startsWith(w0);if(!V0&&R0(P,E,g.id))i=!0;let G0=v(i,n),X0=q(g,E,G0);if(b(t.element,X0),t.element.dataset.id=K0,t.element.dataset.row=String(Q.getRow(E)),t.element.dataset.col=String(Q.getCol(E)),C(t.element,E),t.element.classList.toggle(h,V0),Z0&&!V0)t.element.classList.add(u),setTimeout(()=>t.element.classList.remove(u),300);t.lastItemId=g.id}if(j0||s||Q0)d(t.element,i,n),t.element.ariaSelected=String(i),t.lastSelected=i,t.lastFocused=n;let q0=o(E,A);if(t.lastTransform!==q0)H(t.element,q0),t.lastTransform=q0;if(W)t.element.setAttribute("aria-setsize",z)}else{if(R0(P,E,g.id))i=!0;let j0=o(E,A),s=S(E,g,i,n,j0);if(!$)$=document.createDocumentFragment();$.appendChild(s.element),N.set(E,s)}}if($)J.appendChild($)},F=(V)=>{for(let[X,P]of N){let M=o(X,V);if(P.lastTransform!==M)H(P.element,M),P.lastTransform=M}},y=(V,X,P,M)=>{let A=N.get(V);if(!A)return;let W=v(P,M),$=q(X,V,W);b(A.element,$),d(A.element,P,M),A.element.dataset.id=String(X.id),A.element.ariaSelected=String(P),C(A.element,V),A.lastItemId=X.id,A.lastSelected=P,A.lastFocused=M},O=(V,X,P)=>{let M=N.get(V);if(!M)return;let A=M.lastSelected!==X,W=M.lastFocused!==P;if(A||W)d(M.element,X,P),M.lastSelected=X,M.lastFocused=P},I=(V)=>{return N.get(V)?.element},x=(V)=>{if(Math.abs(V-w)<1)return;w=V;for(let[X,P]of N){C(P.element,X);let M=o(X);H(P.element,M),P.lastTransform=M}},l=()=>{u0(J,N.keys(),(V)=>N.get(V)?.element)},p=()=>{for(let[,V]of N)Z.release(V.element);N.clear()};return{render:c,updatePositions:F,updateItem:y,updateItemClasses:O,getElement:I,sortDOM:l,updateContainerWidth:x,clear:p,destroy:()=>{p(),Z.clear()}}};var L4=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:U,emitter:j,config:K,rawConfig:D}=Q,{classPrefix:B}=K;if(K.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let Z=K.horizontal,N=jJ($0(D.padding),Z),w=()=>{return(Z?U.viewport.clientHeight:Q.getContainerWidth())-N},_=D.items?.some((p)=>p.__groupHeader===!0),T={columns:J.columns,gap:J.gap??0};if(_)T.isHeaderFn=(p)=>{let r=Q.dataManager.getItem(p);return!!(r&&r.__groupHeader===!0)};q=h1(T);let z=q.gap;Q.setVirtualTotalFn(()=>{let p=Q.dataManager.getTotal();return q.getTotalRows(p)}),Q.setItemToScrollIndexFn((p)=>Math.floor(p/T.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>Z?{ud:1,lr:T.columns,cols:T.columns}:{ud:T.columns,lr:1,cols:T.columns});let R=D.item,G=K.horizontal?R.width:R.height,v={containerWidth:w(),columns:q.columns,gap:q.gap},k={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof G==="function")Q.setSizeConfig((p)=>{let r=v.containerWidth-2,V=(v.columns-1)*v.gap;return k.containerWidth=v.containerWidth,k.columns=v.columns,k.gap=v.gap,k.columnWidth=(r-V)/v.columns,k.row=q.getRow(p),k.column=q.getCol(p),k.totalRows=q.getTotalRows(Q.dataManager.getTotal()),k.totalColumns=v.columns,G(p,k)+v.gap});else if(z>0)Q.setSizeConfig(G+z);if(Q.rebuildSizeCache(),z>0){let p=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let r=p();return r>0?r-v.gap:0}}U.root.classList.add(`${B}--grid`);let f=w(),a=D.item.template,h=()=>{Y=uJ(U.items,a,Q.sizeCache,q,B,f,()=>Q.dataManager.getTotal(),K.ariaIdPrefix,K.horizontal),Q.replaceRenderer(Y)};h(),Q.setUpdateItemClassesFn((p,r,V)=>{Y?.updateItemClasses(p,r,V)}),Q.methods.set("_updateRenderedItem",(p,r,V,X)=>{Y?.updateItem(p,r,V,X)}),Q.methods.set("_getGridLayout",()=>q),Q.methods.set("_getGridConfig",()=>T),Q.methods.set("_replaceGridRenderer",(p)=>{Y=p}),Q.methods.set("_createGridRenderer",uJ),Q.methods.set("_updateGridLayoutForGroups",(p)=>{q.update({isHeaderFn:p});let r=Q.dataManager.getTotal(),V=0;for(let X=0;X<r;X++)if(q.getCol(X)===0){let P=Q.sizeCache.getSize(X);V+=P}Q.sizeCache.getTotalSize=()=>V,Q.updateContentSize(V),h()}),Q.methods.set("updateGrid",(p)=>{if(p.columns!==void 0){if(!Number.isInteger(p.columns)||p.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");T.columns=p.columns}if(p.gap!==void 0){if(p.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");T.gap=p.gap}if(q)q.update(T);let r=w();if(v.containerWidth=r,v.columns=T.columns,v.gap=T.gap??0,Y)Y.updateContainerWidth(r);Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode();for(let V=0;V<Q.contentSizeHandlers.length;V++)Q.contentSizeHandlers[V]();if(Y)Y.clear();Q.forceRender()});let u=null,b=null,d=!1,J0=()=>{if(d)return;d=!0,u=Q.methods.get("_getSelectedIds")??null,b=Q.methods.get("_getFocusedIndex")??null},o=-1,H=-1,C=!0,S=K.overscan,c={start:0,end:0},F={start:0,end:0},y=()=>{if(Q.state.isDestroyed)return;let p=Q.scrollController.getScrollTop(),r=Q.state.viewportState.containerSize;if(!C&&p===o&&r===H)return;o=p,H=r,C=!1;let V=Q.getVirtualTotal();Q.getVisibleRange(p,r,V,c),F.start=Math.max(0,c.start-S),F.end=Math.min(V-1,c.end+S);let X=Q.state.viewportState;X.scrollPosition=p,X.visibleRange.start=c.start,X.visibleRange.end=c.end,X.renderRange.start=F.start,X.renderRange.end=F.end;let P=Q.state.lastRenderRange,M=X.isCompressed,A=P.start!==F.start||P.end!==F.end;if(!A&&M){Y.updatePositions(Q.getCompressionContext());return}let W=Q.dataManager.getTotal(),$=q.getItemRange(F.start,F.end,W),E=Q.dataManager.getItemsInRange($.start,$.end),L=M?Q.getCompressionContext():void 0;J0();let g=u?u():L4,i=b?b():-1;if(Y.render(E,$,g,i,L),A)P.start=F.start,P.end=F.end,j.emit("range:change",{range:{start:F.start,end:F.end}})},O=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,C=!0,y()};Q.setRenderFns(y,O);let I=typeof G==="function";Q.resizeHandlers.push((p,r)=>{let V=(Z?r:p)-N;if(Math.abs(V-v.containerWidth)<1)return;if(v.containerWidth=V,Y)Y.updateContainerWidth(V);if(I){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:x,cancelScroll:l}=l0(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",l),Q.methods.set("scrollToIndex",(p,r)=>{let V=Math.floor(p/J.columns),{align:X,behavior:P,duration:M}=z0(r),A=Q.dataManager.getState(),W=q.getTotalRows(A.total),$=Math.max(0,Math.min(V,W-1)),E=Q.adjustScrollPosition(t0($,Q.sizeCache,Q.state.viewportState.containerSize,W,X,Q.getCachedCompression()));if(P==="smooth")x(Q.scrollController.getScrollTop(),E,M);else l(),Q.scrollController.scrollTo(E)}),!Q.methods.has("_getTotal"))Q.methods.set("_getTotal",()=>Q.dataManager.getTotal());Q.idleHandlers.push(()=>{if(Y)Y.sortDOM()}),Q.destroyHandlers.push(()=>{if(l(),Y)Y.destroy(),Y=null;U.root.classList.remove(`${B}--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,U=0,j=[],K=()=>{let G=(q-1)*Y;U=Math.max(0,(Q-G)/q),j=Array(q);let v=U+Y;for(let k=0;k<q;k++)j[k]=k*v};K();let D=[],B=0,Z=[],N=(G)=>{let v=0,k=G[0];for(let f=1;f<G.length;f++){let a=G[f];if(a<k)k=a,v=f}return v},w=(G,v)=>{if(G<=0)return B=0,D=[],[];let k=Array(q).fill(0),f=Array(q);for(let u=0;u<q;u++)f[u]=[];let a=Array(G);for(let u=0;u<G;u++){let b=N(k),d=v(u),J0=k[b];a[u]={index:u,x:j[b],y:J0,lane:b,size:d,crossSize:U},f[b].push(u),k[b]=J0+d+Y}D=f;let h=0;for(let u=0;u<q;u++){let b=k[u],d=b>0?b-Y:0;if(d>h)h=d}return B=h,a},_=(G)=>{if(G.length===0)return B>0?B:0;if(B>0)return B;let v=Array(q).fill(0);for(let f of G){let a=f.y+f.size,h=v[f.lane];if(a>h)v[f.lane]=a}let k=0;for(let f=0;f<q;f++)if(v[f]>k)k=v[f];return k},T=(G,v,k)=>{if(G.length===0||k<=v)return Z.length=0,Z;if(D.length===0||D.length!==q)return z(G,v,k);Z.length=0;for(let f=0;f<q;f++){let a=D[f],h=a.length;if(h===0)continue;let u=0,b=h;while(u<b){let d=u+b>>>1,J0=G[a[d]];if(J0.y+J0.size<=v)u=d+1;else b=d}for(let d=u;d<h;d++){let J0=G[a[d]];if(J0.y>=k)break;Z.push(J0)}}return Z},z=(G,v,k)=>{let f=[];for(let a of G)if(a.y+a.size>v&&a.y<k)f.push(a);return f};return{get columns(){return q},get gap(){return Y},get containerSize(){return Q},update:(G)=>{let v=!1;if(G.columns!==void 0){let k=Math.max(1,Math.floor(G.columns));if(k!==q)q=k,v=!0}if(G.gap!==void 0&&G.gap!==Y)Y=G.gap,v=!0;if(G.containerSize!==void 0&&G.containerSize!==Q)Q=G.containerSize,v=!0;if(v)K()},calculateLayout:w,getTotalSize:_,getVisibleItems:T}};var F4=(J=200)=>{let q=[];return{acquire:()=>{let j=q.pop();if(j)return j;let K=document.createElement("div");return K.setAttribute("role","option"),K},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}}},T4=1,g1=(J,q,Y,Q=!1,U,j)=>{let K=F4(),D=new Map,B=new Set,Z=0,N="",w=-1,_={selected:!1,focused:!1},T=(H,C)=>{return _.selected=H,_.focused=C,_},z=`${Y}-item ${Y}-masonry-item`,R=`${Y}-item--selected`,G=`${Y}-item--focused`,v=(H,C)=>{if(typeof C==="string")H.innerHTML=C;else H.replaceChildren(C)},k=(H,C,S)=>{H.classList.toggle(R,C),H.classList.toggle(G,S)},f=(H,C)=>{if(Q)H.style.transform=`translate(${Math.round(C.y)}px, ${Math.round(C.x)}px)`;else H.style.transform=`translate(${Math.round(C.x)}px, ${Math.round(C.y)}px)`},a=(H,C)=>{if(Q)H.style.width=`${C.size}px`,H.style.height=`${C.crossSize}px`;else H.style.width=`${C.crossSize}px`,H.style.height=`${C.size}px`},h=(H,C,S,c,F)=>{let y=K.acquire(),O=T(c,F);if(y.className=z,y.dataset.index=String(H),y.dataset.id=String(C.id),y.dataset.lane=String(S.lane),y.ariaSelected=String(c),j)y.id=`${j}-item-${H}`;if(U){let x=U();if(x!==w)w=x,N=String(x);y.setAttribute("aria-setsize",N),y.setAttribute("aria-posinset",String(H+1))}a(y,S);let I=q(C,H,O);return v(y,I),k(y,c,F),f(y,S),{element:y,lastItemId:C.id,lastSelected:c,lastFocused:F,lastY:S.y,lastX:S.x,lastSize:S.size,lastCrossSize:S.crossSize,lastSeenFrame:Z}},u=(H,C,S,c)=>{Z++,B.clear();for(let y=0;y<C.length;y++)B.add(C[y].index);for(let[y,O]of D)if(B.has(y))O.lastSeenFrame=Z;else if(Z-O.lastSeenFrame>T4)K.release(O.element),D.delete(y);let F=null;for(let y=0;y<C.length;y++){let O=C[y],I=O.index,x=H(I);if(!x)continue;let l=S.has(x.id),p=I===c,r=D.get(I);if(r){let V=r.lastItemId!==x.id,X=r.lastSelected!==l,P=r.lastFocused!==p,M=r.lastY!==O.y||r.lastX!==O.x,A=r.lastSize!==O.size||r.lastCrossSize!==O.crossSize;if(V){let W=T(l,p),$=q(x,I,W);v(r.element,$),r.element.dataset.id=String(x.id),r.lastItemId=x.id}if(V||X||P)k(r.element,l,p),r.element.ariaSelected=String(l),r.lastSelected=l,r.lastFocused=p;if(A)a(r.element,O),r.lastSize=O.size,r.lastCrossSize=O.crossSize;if(M)f(r.element,O),r.lastY=O.y,r.lastX=O.x}else{let V=h(I,x,O,l,p);if(!F)F=document.createDocumentFragment();F.appendChild(V.element),D.set(I,V)}}if(F)J.appendChild(F)},b=()=>{for(let{element:H}of D.values())K.release(H);D.clear(),J.innerHTML=""};return{render:u,getElement:(H)=>D.get(H)?.element,updateItemClasses:(H,C,S)=>{let c=D.get(H);if(!c)return;let F=c.lastSelected!==C,y=c.lastFocused!==S;if(F||y)k(c.element,C,S),c.lastSelected=C,c.lastFocused=S},sortDOM:()=>{u0(J,D.keys(),(H)=>D.get(H)?.element)},clear:b,destroy:()=>{b(),K.clear()}}};var k4=new Set,b4=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(U){let{dom:j,emitter:K,config:D,rawConfig:B}=U,Z=D.classPrefix,N=D.horizontal;if(D.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");j.root.classList.add(`${Z}--masonry`);let w=$0(B.padding),_=jJ(w,N),T=h0(w,N),z=()=>{return(N?j.viewport.clientHeight:j.viewport.clientWidth)-_},R={columns:J.columns,gap:J.gap??0,containerSize:z()};q=u1(R);let G=B.item,v=N&&B.item.width?B.item.width:G.height,k={containerWidth:0,columns:0,gap:0,columnWidth:0},f=typeof v==="function"?(W)=>v(W,k):()=>v,a=()=>{let W=U.dataManager.getTotal(),$=q;k.containerWidth=$.containerSize,k.columns=$.columns,k.gap=$.gap;let E=($.columns-1)*$.gap;k.columnWidth=Math.max(0,(k.containerWidth-E)/$.columns),Q=$.calculateLayout(W,f),J0();let L=q.getTotalSize(Q);U.sizeCache.getTotalSize=()=>L,U.updateContentSize(L)},h=B.item.template;Y=g1(j.items,h,Z,N,()=>U.dataManager.getTotal(),D.ariaIdPrefix),U.setUpdateItemClassesFn((W,$,E)=>{Y?.updateItemClasses(W,$,E)});let u=[],b=new Int32Array(0),d=[],J0=()=>{let W=R.columns,$=Q.length;if(u=Array.from({length:W},()=>[]),b.length<$)b=new Int32Array($);for(let E=0;E<$;E++){let L=Q[E],g=u[L.lane].length;u[L.lane].push(E),b[E]=g}d=Array(W);for(let E=0;E<W;E++){let L=u[E],g=new Float64Array(L.length);for(let i=0;i<L.length;i++){let n=Q[L[i]];g[i]=n.y+n.size*0.5}d[E]=g}};U.methods.set("_getNavTotal",()=>U.dataManager.getTotal());let o=(W,$)=>{let E=W.length;if(E===0)return-1;if(E===1)return 0;let L=0,g=E-1;while(L<g){let i=L+g>>1;if(W[i]<$)L=i+1;else g=i}if(L>0&&Math.abs(W[L-1]-$)<=Math.abs(W[L]-$))return L-1;return L};U.methods.set("_navigate",(W,$,E)=>{let L=Q[W];if(!L)return W;let g=L.lane,i=R.columns,n=b[W],t=u[g];switch(N?$==="ArrowDown"?"ArrowRight":$==="ArrowUp"?"ArrowLeft":$==="ArrowRight"?"ArrowDown":$==="ArrowLeft"?"ArrowUp":$:$){case"ArrowDown":{if(n+1<t.length)return t[n+1];return W}case"ArrowUp":{if(n>0)return t[n-1];return W}case"ArrowRight":{if(g>=i-1)return W;let s=g+1,Q0=L.y+L.size*0.5,q0=u[s];if(q0.length===0)return W;let U0=o(d[s],Q0);return U0>=0?q0[U0]:W}case"ArrowLeft":{if(g<=0)return W;let s=g-1,Q0=L.y+L.size*0.5,q0=u[s];if(q0.length===0)return W;let U0=o(d[s],Q0);return U0>=0?q0[U0]:W}case"Home":return 0;case"End":return E-1;case"PageDown":{let s=U.state.viewportState.containerSize,Q0=L.size>0?L.size:150,q0=Math.max(1,Math.floor(s/Q0)),U0=Math.min(n+q0,t.length-1);return t[U0]}case"PageUp":{let s=U.state.viewportState.containerSize,Q0=L.size>0?L.size:150,q0=Math.max(1,Math.floor(s/Q0)),U0=Math.max(0,n-q0);return t[U0]}}return W}),U.methods.set("_scrollItemIntoView",(W)=>{let $=Q[W];if(!$)return;let E=U.scrollController.getScrollTop(),L=U.state.viewportState.containerSize,g=$.y,i=g+$.size,n=E+L;if(g<E)U.scrollController.scrollTo(U.adjustScrollPosition(Math.max(0,g)));else if(i>n)U.scrollController.scrollTo(U.adjustScrollPosition(i-L))});let H=null,C=null,S=!1,c=()=>{if(S)return;S=!0,H=U.methods.get("_getSelectedIds")??null,C=U.methods.get("_getFocusedIndex")??null},F=(W)=>U.dataManager.getItem(W),y=-1,O=-1,I=!0,x=D.overscan*b4,l=()=>{if(U.state.isDestroyed)return;c();let W=U.scrollController.getScrollTop(),$=U.state.viewportState.containerSize;if(!I&&W===y&&$===O)return;y=W,O=$,I=!1;let E=Math.max(0,W-x),L=W+$+x,g=q.getVisibleItems(Q,E,L),i=H?H():k4,n=C?C():-1;if(Y&&g.length>0)Y.render(F,g,i,n);let t=U.state.viewportState;t.scrollPosition=W;let j0=g.length,s=j0>0?g[0].index:0,Q0=j0>0?g[j0-1].index:0;t.visibleRange.start=s,t.visibleRange.end=Q0,t.renderRange.start=s,t.renderRange.end=Q0;let q0=U.state.lastRenderRange;if(q0.start!==s||q0.end!==Q0)q0.start=s,q0.end=Q0,K.emit("range:change",{range:{start:s,end:Q0}})},p=()=>{U.state.lastRenderRange.start=-1,U.state.lastRenderRange.end=-1,I=!0,l()};U.setRenderFns(l,p);let r=(W,$)=>{let E=(N?$:W)-_;if(q&&q.containerSize!==E){if(q.update({containerSize:E}),a(),Y)Y.clear();p()}};U.resizeHandlers.push(r);let V=()=>{a(),p()},X=U.dataManager,P=(W)=>{if(typeof X[W]!=="function")return;let $=X[W].bind(X);X[W]=(...E)=>{$(...E),V()}};P("setItems"),P("appendItems"),P("prependItems"),P("updateItem"),P("removeItem");let{animateScroll:M,cancelScroll:A}=l0(U.scrollController,U.renderIfNeeded);U.methods.set("cancelScroll",A),U.methods.set("scrollToIndex",(W,$)=>{let E=Q[W];if(!E)return;let{align:L,behavior:g,duration:i}=z0($),n=E.y,t=U.state.viewportState.containerSize,j0=n;if(L==="center")j0=n-t/2+E.size/2;else if(L==="end"){j0=n-t+E.size;let s=q.getTotalSize(Q);if(W===Q.length-1)j0=Math.max(0,s+T-t)}if(j0=Math.max(0,j0),j0=U.adjustScrollPosition(j0),g==="smooth")M(U.scrollController.getScrollTop(),j0,i);else A(),U.scrollController.scrollTo(j0)}),a(),U.idleHandlers.push(()=>{if(Y)Y.sortDOM()}),U.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,U=J?.shiftArrowToggle??"origin",j=J?.focusOnClick??!1,K=F1(Q),D=null,B=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(Z){let{dom:N,emitter:w,config:_}=Z,{classPrefix:T,ariaIdPrefix:z}=_;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",()=>{});return}N.root.classList.add(`${T}--selectable`);let R=Z.methods.get("_isGroupHeader"),G=(V)=>R?R(V):!1,v=(V,X,P)=>{if(!R)return V;let M=V;while(M>=0&&M<P){if(!G(M))return M;M+=X}M=V-X;while(M>=0&&M<P){if(!G(M))return M;M-=X}return V},k=new Map,f=()=>{k.clear();let V=Z.dataManager.getTotal(),X=Z.dataManager.getCached();if(X===0)return;if(X>=V){for(let M=0;M<V;M++){let A=Z.dataManager.getItem(M);if(A)k.set(A.id,M)}return}let P=Z.dataManager.getStorage();if(P&&typeof P.getLoadedRanges==="function"){let M=P.getLoadedRanges();for(let A of M)for(let W=A.start;W<=A.end;W++){let $=Z.dataManager.getItem(W);if($&&!$._isPlaceholder)k.set($.id,W)}}};w.on("data:change",({type:V,id:X})=>{if(V==="remove")K.selected.delete(X),f()}),w.on("load:end",({items:V,offset:X})=>{if(!V||V.length===0)return;if(X!==void 0)for(let P=0;P<V.length;P++){let M=V[P];if(M&&M.id!==void 0)k.set(M.id,X+P)}else f()}),f(),Z.methods.set("_getSelectedIds",()=>{return K.selected}),Z.methods.set("_getFocusedIndex",()=>{return K.focusVisible?K.focusedIndex:-1});let{forceRender:a}=Z.getRenderFns(),h=()=>{a();let V=(X)=>{let P=k.get(X);if(P===void 0)return;return Z.dataManager.getItem(P)};w.emit("selection:change",{selected:yJ(K),items:PJ(K,V)})},u=$0(Z.rawConfig.padding),b=_.horizontal?u.left:u.top,d=_.horizontal?u.right:u.bottom,J0=Z.getItemToScrollIndexFn(),o=null,H=null,C=null,S=!1,c=()=>{if(S)return;S=!0,o=Z.methods.get("_getNavDelta")??null,H=Z.methods.get("_navigate")??null,C=Z.methods.get("_scrollItemIntoView")??null},F=()=>{return c(),o?o():{ud:1,lr:0,cols:0}},y=(V)=>{if(V<0)return;if(c(),C)C(V);else{let X=Z.state.viewportState.containerSize,P=Z.state.viewportState.scrollPosition,M=Z.dataManager.getTotal(),A=Z.getCachedCompression(),{visibleRange:W}=Z.state.viewportState,$=J0(V),E=XJ($,Z.sizeCache,P,X,b,d,A,M,W);if(E!==P)Z.scrollController.scrollTo(Z.adjustScrollPosition(E))}},O=()=>{let V=J0(Math.max(0,K.focusedIndex)),X=Z.sizeCache.getSize(V),{ud:P}=F();return Math.max(P,Math.floor(Z.state.viewportState.containerSize/X)*P)};D=document.createElement("div"),D.setAttribute("aria-live","polite"),D.setAttribute("aria-atomic","true"),D.className=`${T}-live-region`,D.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",(N.root.getAttribute("role")==="grid"?N.root.parentElement??N.root:N.root).appendChild(D);let x=D;w.on("selection:change",({selected:V})=>{let X=V.length;if(X===0)x.textContent="";else if(X===1)x.textContent="1 item selected";else x.textContent=`${X} items selected`});let l=()=>{if(Z.state.isDestroyed)return;if(!N.root.matches(":focus-visible"))return;let V=Z.dataManager.getTotal();if(V===0)return;let X=K.focusedIndex>=0?Math.min(K.focusedIndex,V-1):0;X=v(X,1,V),K=c0(K,X),K.focusVisible=!0,N.root.setAttribute("aria-activedescendant",`${z}-item-${X}`),y(X);let P=Z.dataManager.getItem(X);if(P)Z.renderer.updateItemClasses(X,K.selected.has(P.id),!0)};if(_.interactive)N.root.addEventListener("focusin",l);let p=(V)=>{if(Z.state.isDestroyed)return;let X=V.relatedTarget;if(X&&N.root.contains(X))return;let P=K.focusedIndex;if(K.focusVisible=!1,N.root.removeAttribute("aria-activedescendant"),P>=0){let M=Z.dataManager.getItem(P);if(M)Z.renderer.updateItemClasses(P,K.selected.has(M.id),!1)}};if(_.interactive)N.root.addEventListener("focusout",p);if(Z.clickHandlers.push((V)=>{if(Z.state.isDestroyed)return;let P=V.target.closest("[data-index]");if(!P)return;let M=parseInt(P.dataset.index??"-1",10);if(M<0)return;let A=Z.dataManager.getItem(M);if(!A)return;if(G(M))return;if(w.emit("item:click",{item:A,index:M,event:V}),q==="multiple"&&V.shiftKey&&K.focusedIndex>=0){let W=B>=0?B:K.focusedIndex,$=Z.getAllLoadedItems();K=ZJ(K,$,W,M,q),K=c0(K,M),K.focusVisible=j,B=M,N.root.setAttribute("aria-activedescendant",`${z}-item-${M}`),h();return}B=M,K=c0(K,M),K.focusVisible=j,N.root.setAttribute("aria-activedescendant",`${z}-item-${M}`),K=d0(K,A.id,q),h()}),_.interactive)Z.keydownHandlers.push((V)=>{if(Z.state.isDestroyed)return;let X=Z.dataManager.getTotal(),P=K.focusedIndex,M=!1,A=!1,W=K;if(c(),H)switch(V.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let $=H(K.focusedIndex,V.key,X);if($!==K.focusedIndex)W=c0(K,$),W.focusVisible=!0,M=!0,A=!0;else{V.preventDefault();return}break}}if(!M)switch(V.key){case"ArrowUp":W=UJ(K,X,_.wrap,F().ud),W.focusVisible=!0,M=!0,A=!0;break;case"ArrowDown":W=KJ(K,X,_.wrap,F().ud),W.focusVisible=!0,M=!0,A=!0;break;case"ArrowLeft":{let{lr:$}=F();if($)W=UJ(K,X,_.wrap,$),W.focusVisible=!0,M=!0,A=!0;break}case"ArrowRight":{let{lr:$}=F();if($)W=KJ(K,X,_.wrap,$),W.focusVisible=!0,M=!0,A=!0;break}case"PageUp":W=$J(K,X,O(),"up"),W.focusVisible=!0,M=!0,A=!0;break;case"PageDown":W=$J(K,X,O(),"down"),W.focusVisible=!0,M=!0,A=!0;break;case"Home":{W=T1(K,X),W.focusVisible=!0,M=!0,A=!0;break}case"End":{W=k1(K,X),W.focusVisible=!0,M=!0,A=!0;break}}switch(V.key){case" ":case"Enter":if(V.key===" "&&V.shiftKey&&q==="multiple"&&K.focusedIndex>=0){if(B>=0){let $=Z.getAllLoadedItems();W=ZJ(W,$,B,K.focusedIndex,q)}W.focusVisible=!0,M=!0;break}if(K.focusedIndex>=0&&!G(K.focusedIndex)){let $=Z.dataManager.getItem(K.focusedIndex);if($)W=d0(K,$.id,q),W.focusVisible=!0;B=K.focusedIndex,M=!0}break;case"a":if((V.ctrlKey||V.metaKey)&&q==="multiple"){let $=Z.getAllLoadedItems();if(K.selected.size===$.length)W=HJ(W);else W=bJ(W,$,q);W.focusVisible=!0,M=!0,A=!1}break}if(A&&R){let $=W.focusedIndex>P?1:-1;W.focusedIndex=v(W.focusedIndex,$,X)}if(V.shiftKey&&q==="multiple"&&A&&W.focusedIndex>=0){let $=V.key==="ArrowUp"||V.key==="ArrowDown"||V.key==="ArrowLeft"||V.key==="ArrowRight",E=(V.ctrlKey||V.metaKey)&&(V.key==="Home"||V.key==="End");if($){if(U==="origin"){if(P>=0){let L=Z.dataManager.getItem(P);if(L)W=d0(W,L.id,q)}}else{let L=Z.dataManager.getItem(W.focusedIndex);if(L)W=d0(W,L.id,q)}B=W.focusedIndex,A=!1}else if(E){let L=Z.getAllLoadedItems(),g=P>=0?P:W.focusedIndex;W=ZJ(W,L,g,W.focusedIndex,q),B=W.focusedIndex,A=!1}}if(Y&&q==="single"&&A&&W.focusedIndex>=0){let $=Z.dataManager.getItem(W.focusedIndex);if($)W=m0(W,[$.id],q);A=!1}if(M){V.preventDefault(),K=W;let $=K.focusedIndex;if($>=0)y($),N.root.setAttribute("aria-activedescendant",`${z}-item-${$}`);else N.root.removeAttribute("aria-activedescendant");if(A){let{selected:E}=K;if(P>=0&&P!==$){let L=Z.dataManager.getItem(P);if(L)Z.renderer.updateItemClasses(P,E.has(L.id),!1)}if($>=0){let L=Z.dataManager.getItem($);if(L)Z.renderer.updateItemClasses($,E.has(L.id),!0)}}else h()}});Z.methods.set("select",(...V)=>{K=m0(K,V,q),h()}),Z.methods.set("deselect",(...V)=>{K=kJ(K,V),h()}),Z.methods.set("toggleSelect",(V)=>{K=d0(K,V,q),h()}),Z.methods.set("selectAll",()=>{if(q!=="multiple")return;let V=Z.getAllLoadedItems();K=bJ(K,V,q),f(),h()}),Z.methods.set("clearSelection",()=>{K=HJ(K),h()}),Z.methods.set("getSelected",()=>{return yJ(K)}),Z.methods.set("getSelectedItems",()=>{return PJ(K,(X)=>{let P=k.get(X);return P===void 0?void 0:Z.dataManager.getItem(P)})});let r=(V)=>{let X=Z.dataManager.getTotal();if(X===0)return;if(c(),H){let W=V==="next"?"ArrowDown":"ArrowUp",$=H(K.focusedIndex,W,X);K=c0(K,$)}else{let{ud:W}=F();K=V==="next"?KJ(K,X,_.wrap,W):UJ(K,X,_.wrap,W)}let P=V==="next"?1:-1;K.focusedIndex=v(K.focusedIndex,P,X);let M=K.focusedIndex,A=Z.dataManager.getItem(M);if(!A)return;K=m0(K,[A.id],q),y(M),h()};Z.methods.set("selectNext",()=>{r("next")}),Z.methods.set("selectPrevious",()=>{r("previous")}),Z.destroyHandlers.push(()=>{if(x&&x.parentNode)x.remove();N.root.removeEventListener("focusin",l),N.root.removeEventListener("focusout",p)})},destroy(){if(D&&D.parentNode)D.remove();D=null}}};var H4=(J)=>{try{let q=sessionStorage.getItem(J);if(!q)return;return JSON.parse(q)}catch{return}},dJ=(J)=>{let q=J?.autoSave,Y=q?H4(q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){Q.methods.set("getScrollSnapshot",()=>{let j=Q.scrollController.getScrollTop(),K=Q.getCachedCompression(),D=Q.getVirtualTotal(),B=Q.methods.get("getSelected"),Z=B&&B().length>0?B():void 0;if(D===0){let T={index:0,offsetInItem:0,total:0};if(Z)T.selectedIds=Z;return T}let N,w;if(K.isCompressed){let z=j/K.virtualSize*D;N=Math.max(0,Math.min(Math.floor(z),D-1)),w=(z-N)*Q.sizeCache.getSize(N)}else N=Q.sizeCache.indexAtOffset(j),w=j-Q.sizeCache.getOffset(N);w=Math.max(0,w);let _={index:N,offsetInItem:w,total:D};if(Z)_.selectedIds=Z;return _});let U=(j)=>{let{index:K,offsetInItem:D,selectedIds:B}=j,Z=Q.getVirtualTotal();if(Z===0&&j.total&&j.total>0){Q.dataManager.setTotal(j.total),Q.sizeCache.rebuild(j.total),Q.updateCompressionMode();let k=Q.getCachedCompression();Q.updateContentSize(k.virtualSize)}else if(Z===0)return;if(!Number.isFinite(K)||!Number.isFinite(D))return;let N=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==N){Q.sizeCache.rebuild(N),Q.updateCompressionMode();let k=Q.getCachedCompression();Q.updateContentSize(k.virtualSize)}let _=Q.getCachedCompression(),T=Math.max(0,Math.min(K,N-1)),z;if(_.isCompressed){let k=Q.sizeCache.getSize(T),f=k>0?D/k:0;z=(T+f)/N*_.virtualSize}else z=Q.sizeCache.getOffset(T)+D;let R=Q.state.viewportState.containerSize,G=Math.max(0,_.virtualSize-R);if(z=Math.max(0,Math.min(z,G)),Q.scrollController.scrollTo(z),B&&B.length>0){let k=Q.methods.get("select");if(k)k(...B)}let v=Q.methods.get("loadVisibleRange");if(v){let f=0,a=z,h=()=>{f++;let u=Q.state.viewportState.containerSize,b=Q.scrollController.getScrollTop();if(u>0){if(Math.abs(b-a)>1)Q.scrollController.scrollTo(a);v()}else if(f<10)requestAnimationFrame(h)};requestAnimationFrame(h)}else{let k=Q.methods.get("reload");if(k)requestAnimationFrame(()=>{k()})}};if(Q.methods.set("restoreScroll",U),q){let j=!!Y,K=()=>{if(j)return;let D=Q.methods.get("getScrollSnapshot");if(!D)return;let B=D();try{sessionStorage.setItem(q,JSON.stringify(B))}catch{}};if(Q.idleHandlers.push(()=>{if(j)j=!1;K()}),Q.emitter.on("selection:change",K),Y&&Y.total&&Y.total>0){let D=Q.methods.get("_cancelAutoLoad");if(D)D();Q.dataManager.setTotal(Y.total)}}if(Y)queueMicrotask(()=>{U(Y)})}}};var x1=(J,q=50,Y=1/0,Q=!0)=>{let U=J,j=[],K=0,D=()=>{j=U.map((G,v)=>({def:G,index:v,width:0,minWidth:$4(G.minWidth??q,1),maxWidth:G.maxWidth??Y,resizable:G.resizable??Q,offset:0}))},B=(G)=>{if(j.length===0){K=0;return}let v=0,k=0;for(let f=0;f<j.length;f++){let a=j[f],h=a.def;if(h.width!==void 0)a.width=cJ(h.width,a.minWidth,a.maxWidth),v+=a.width;else k++}if(k>0){let a=Math.max(0,G-v)/k;for(let h=0;h<j.length;h++){let u=j[h];if(u.def.width===void 0)u.width=cJ(a,u.minWidth,u.maxWidth)}}Z()},Z=()=>{let G=0;for(let v=0;v<j.length;v++){let k=j[v];k.offset=G,G+=k.width}K=G},N=(G,v)=>{if(G<0||G>=j.length)return 0;let k=j[G];if(!k.resizable)return k.width;let f=cJ(v,k.minWidth,k.maxWidth);return k.width=f,Z(),f},w=(G)=>{return j[G]},_=(G)=>{if(j.length===0)return;if(G<0)return j[0];if(G>=K)return j[j.length-1];let v=0,k=j.length-1;while(v<k){let f=v+k>>>1,a=j[f];if(G<a.offset)k=f-1;else if(G>=a.offset+a.width)v=f+1;else return a}return j[v]},T=(G)=>{if(G<0||G>=j.length)return 0;return j[G].offset},z=(G)=>{if(G<0||G>=j.length)return 0;return j[G].width},R=(G)=>{U=G,D()};return D(),{get columns(){return j},get totalWidth(){return K},resolve:B,updateColumns:R,resizeColumn:N,getColumn:w,getColumnAtX:_,getColumnOffset:T,getColumnWidth:z}},cJ=(J,q,Y)=>Math.min(Y,Math.max(q,J)),$4=(J,q)=>Math.max(q,J);var m1=(J,q,Y,Q,U,j,K)=>{let D=document.createElement("div");D.setAttribute("role","rowgroup");let B=document.createElement("div");B.className=`${Q}-table-header`,B.setAttribute("role","row"),B.setAttribute("aria-rowindex","1"),B.style.height=`${Y}px`;let Z=document.createElement("div");Z.className=`${Q}-table-header-scroll`,Z.setAttribute("role","presentation"),B.appendChild(Z),D.appendChild(B),J.insertBefore(D,J.firstChild),q.style.cssText=`position:absolute;top:${Y}px;left:0px;right:0px;bottom:0px;height:auto`;let N=[],w=[],_=[],T=!0,z=null,R="asc",G=null,v=!1,k=-1,f=0,a=0,h=(O,I)=>{let x=document.createElement("div");x.className=`${Q}-table-header-cell`,x.setAttribute("role","columnheader"),x.setAttribute("aria-colindex",String(I+1)),x.dataset.columnKey=O.def.key;let l=O.def.align;if(l==="center")x.classList.add(`${Q}-table-header-cell--center`);else if(l==="right")x.classList.add(`${Q}-table-header-cell--right`);let p=document.createElement("div");p.className=`${Q}-table-header-content`;let r=O.def.header?O.def.header(O.def):O.def.label;if(typeof r==="string")p.textContent=r;else p.appendChild(r);if(x.appendChild(p),O.def.sortable){let V=document.createElement("span");V.className=`${Q}-table-header-sort`,V.setAttribute("aria-hidden","true"),x.appendChild(V),_.push(V),x.classList.add(`${Q}-table-header-cell--sortable`)}else _.push(null);if(O.resizable){let V=document.createElement("div");V.className=`${Q}-table-header-resize`,V.dataset.resizeIndex=String(I),x.appendChild(V),w.push(V)}return x},u=(O)=>{G=O,Z.textContent="",N=[],w=[],_=[];let I=O.columns;for(let x=0;x<I.length;x++){let l=I[x],p=h(l,x);N.push(p),Z.appendChild(p)}if(b(O),z)d(z,R)},b=(O)=>{G=O;let I=O.columns;Z.style.width=`${O.totalWidth}px`;for(let x=0;x<N.length&&x<I.length;x++){let l=N[x],p=I[x];l.style.width=`${p.width}px`}},d=(O,I)=>{if(z=O,R=I,!G)return;let x=G.columns;for(let l=0;l<_.length&&l<x.length;l++){let p=_[l];if(!p)continue;if(x[l].def.key===O&&O!==null)p.textContent=I==="asc"?"▲":"▼",p.style.opacity="0.7",N[l].setAttribute("aria-sort",I==="asc"?"ascending":"descending");else p.textContent="",p.style.opacity="0",N[l].removeAttribute("aria-sort")}},J0=(O)=>{Z.style.transform=`translateX(${-O}px)`},o=(O)=>{let I=O.target;if(!I.dataset.resizeIndex)return;if(O.preventDefault(),O.stopPropagation(),k=parseInt(I.dataset.resizeIndex,10),!G)return;let x=G.getColumn(k);if(!x||!x.resizable)return;v=!0,f=O.clientX,a=x.width,J.classList.add(`${Q}--col-resizing`),J.style.cursor="col-resize",I.classList.add(`${Q}-table-header-resize--active`),I.setPointerCapture(O.pointerId),I.addEventListener("pointermove",H),I.addEventListener("pointerup",C),I.addEventListener("pointercancel",C)},H=(O)=>{if(!v||!G)return;let I=O.clientX-f;if(Math.abs(I)<1)return;let x=Math.max(0,a+I);U(k,x)},C=(O)=>{if(!v)return;let I=O.target;I.removeEventListener("pointermove",H),I.removeEventListener("pointerup",C),I.removeEventListener("pointercancel",C);try{I.releasePointerCapture(O.pointerId)}catch{}I.classList.remove(`${Q}-table-header-resize--active`),J.classList.remove(`${Q}--col-resizing`),J.style.cursor="",v=!1,k=-1},S=(O)=>{let I=O.target;if(I.dataset.resizeIndex!==void 0)return;if(v)return;let x=I;while(x&&!x.dataset.columnKey)if(x=x.parentElement,x===B||x===null)return;if(!x||!x.dataset.columnKey)return;let l=x.dataset.columnKey;if(!G)return;let p=G.columns,r=-1;for(let X=0;X<p.length;X++)if(p[X].def.key===l){r=X;break}if(r===-1)return;let V=p[r];if(K)K({key:l,index:r,event:O});if(V.def.sortable&&j){let X;if(z===l)if(R==="asc")X="desc";else X=null;else X="asc";j({key:l,index:r,direction:X})}};return B.addEventListener("pointerdown",o),B.addEventListener("click",S),{element:B,update:b,updateSort:d,rebuild:u,show:()=>{if(T)return;T=!0,B.style.display=""},hide:()=>{if(!T)return;T=!1,B.style.display="none"},destroy:()=>{B.removeEventListener("pointerdown",o),B.removeEventListener("click",S),q.style.cssText="",D.remove(),N=[],w=[],_=[],G=null,T=!1},syncScroll:J0}};var y4=()=>{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,U,j,K,D,B)=>{let Z=y4(),N=new Map,w=-1,_=Y,T=null,z=null,R=null,G=(E,L)=>{z=E,R=L},v=(E,L)=>{if(L)E.setAttribute("aria-selected","true");else E.removeAttribute("aria-selected")},k=(E,L,g,i)=>{E.setAttribute("role",L),E.setAttribute("data-id",String(g)),E.setAttribute("data-index",String(i))},f=(E)=>String(E).startsWith("__placeholder_"),a=`${U}-item ${U}-table-row`,h=`${U}-item--selected`,u=`${U}-item--focused`,b=`${U}-table-cell`,d=`${U}-table-cell--center`,J0=`${U}-table-cell--right`,o=`${U}-item--odd`,H=`${U}-item--placeholder`,C=`${U}-item--replaced`,S=`${U}-item ${U}-table-row ${U}-table-group-header`,c=`${U}-table-group-header-content`,F=(E,L,g,i,n=!1)=>{if(g.def.cell){let t=g.def.cell(L,g.def,i);if(typeof t==="string")E.innerHTML=t;else E.replaceChildren(t)}else{let t=L[g.def.key],j0=t!=null?String(t):"";if(n&&j0)E.innerHTML=`<span>${j0}</span>`;else E.textContent=j0}},y=(E,L,g,i,n=!1)=>{let t=a;if(D){if(T){let j0=T(L);if(j0>=0&&(j0&1)===1)t+=` ${o}`}else if((L&1)===1)t+=` ${o}`}if(n)t+=` ${H}`;if(g)t+=` ${h}`;if(i)t+=` ${u}`;E.className=t},O=(E,L,g)=>{if(g?.compression?.isCompressed)return Math.round(r0(E,g.scrollPosition,L,g.totalItems,g.containerSize,g.compression,g.rangeStart));return L.getOffset(E)},I=(E,L)=>{let g=L.def.align;if(g==="center")E.classList.add(d),E.classList.remove(J0);else if(g==="right")E.classList.add(J0),E.classList.remove(d);else E.classList.remove(d,J0)},x=(E,L)=>{let i=_.columns.length;if(L.length===i)return L;let n=[];for(let t=0;t<i;t++){let j0;if(t<L.length)j0=L[t];else j0=document.createElement("div"),j0.className=b,E.appendChild(j0);n.push(j0)}for(let t=i;t<L.length;t++)L[t].remove();return n},l=(E,L,g,i)=>{let n=Z.acquire(),t=E,j0=g.getSize(L),s=O(L,g,i);n.style.cssText=`width:${_.totalWidth}px;height:${j0}px;transform:translateY(${s}px)`,n.className=S,k(n,"presentation",E.id,L),n.removeAttribute("aria-selected"),n.removeAttribute("aria-rowindex"),n.replaceChildren();let Q0=document.createElement("div");if(Q0.className=c,R){let q0=R(t.groupKey,t.groupIndex);if(typeof q0==="string")Q0.innerHTML=q0;else Q0.appendChild(q0)}return n.appendChild(Q0),{element:n,cells:[],index:L,isGroupHeader:!0,lastItemId:E.id,lastSelected:!1,lastFocused:!1,lastOffset:s,lastHeight:j0}},p=(E,L,g,i,n,t)=>{let j0=Z.acquire(),s=n.getSize(L),Q0=O(L,n,t),q0=f(E.id);j0.style.cssText=`width:${_.totalWidth}px;height:${s}px;transform:translateY(${Q0}px)`,y(j0,L,g,i,q0),k(j0,"row",E.id,L),j0.id=`${j}-${L}`,j0.setAttribute("aria-rowindex",String(L+2)),v(j0,g);let U0=x(j0,[]),K0=_.columns;for(let Z0=0;Z0<U0.length&&Z0<K0.length;Z0++){let V0=U0[Z0],G0=K0[Z0];V0.style.cssText=`left:${G0.offset}px;width:${G0.width}px`,V0.setAttribute("role","gridcell"),V0.setAttribute("aria-colindex",String(Z0+1)),I(V0,G0),F(V0,E,G0,L,q0)}return{element:j0,cells:U0,index:L,isGroupHeader:!1,lastItemId:E.id,lastSelected:g,lastFocused:i,lastOffset:Q0,lastHeight:s}},r=(E,L,g,i,n)=>{for(let[q0,U0]of N)if(q0<L.start||q0>L.end)Z.release(U0.element),N.delete(q0);let t=!1,j0=K();if(j0!==w)w=j0,t=!0;let s=null,Q0=q();T=typeof D==="string"&&B?B():null;for(let q0=L.start;q0<=L.end;q0++){let U0=q0-L.start,K0=E[U0];if(!K0)continue;let Z0=g.has(K0.id),V0=q0===i,G0=z?z(K0):!1,X0=N.get(q0);if(X0){if(X0.isGroupHeader!==G0){Z.release(X0.element),N.delete(q0);let B0=G0?l(K0,q0,Q0,n):p(K0,q0,Z0,V0,Q0,n);if(N.set(q0,B0),!s)s=document.createDocumentFragment();s.appendChild(B0.element);continue}if(G0){if(X0.lastItemId!==K0.id){let D0=K0,W0=X0.element.firstElementChild;if(W0&&R){let F0=R(D0.groupKey,D0.groupIndex);if(typeof F0==="string")W0.innerHTML=F0;else W0.replaceChildren(F0)}X0.element.setAttribute("data-id",String(K0.id)),X0.lastItemId=K0.id}let O0=O(q0,Q0,n);if(X0.lastOffset!==O0)X0.lastOffset=O0,X0.element.style.transform=`translateY(${O0}px)`;let A0=Q0.getSize(q0);if(X0.lastHeight!==A0)X0.lastHeight=A0,X0.element.style.height=`${A0}px`}else{let B0=X0.lastItemId!==K0.id,O0=X0.lastSelected!==Z0,A0=X0.lastFocused!==V0;if(B0){let F0=X0.lastItemId!=null&&f(X0.lastItemId),M0=f(K0.id);if(!M0&&R0(g,q0,K0.id))Z0=!0;let T0=_.columns;for(let y0=0;y0<X0.cells.length&&y0<T0.length;y0++)F(X0.cells[y0],K0,T0[y0],q0,M0);if(y(X0.element,q0,Z0,V0,M0),X0.element.setAttribute("data-id",String(K0.id)),v(X0.element,Z0),F0&&!M0)X0.element.classList.add(C),setTimeout(()=>{X0.element.classList.remove(C)},300);X0.lastItemId=K0.id,X0.lastSelected=Z0,X0.lastFocused=V0}else if(O0||A0)y(X0.element,q0,Z0,V0,f(K0.id)),v(X0.element,Z0),X0.lastSelected=Z0,X0.lastFocused=V0;let D0=O(q0,Q0,n);if(X0.lastOffset!==D0)X0.lastOffset=D0,X0.element.style.transform=`translateY(${D0}px)`;let W0=Q0.getSize(q0);if(X0.lastHeight!==W0)X0.lastHeight=W0,X0.element.style.height=`${W0}px`;if(t)X0.element.setAttribute("aria-rowindex",String(q0+2))}}else{if(R0(g,q0,K0.id))Z0=!0;let B0=G0?l(K0,q0,Q0,n):p(K0,q0,Z0,V0,Q0,n);if(N.set(q0,B0),!s)s=document.createDocumentFragment();s.appendChild(B0.element)}}if(s)J.appendChild(s)},V=(E)=>{let L=q();for(let[g,i]of N){let n=O(g,L,E);if(i.lastOffset!==n)i.lastOffset=n,i.element.style.transform=`translateY(${n}px)`}},X=(E,L,g,i)=>{let n=N.get(E);if(!n)return;if(n.isGroupHeader)return;let t=_.columns;for(let j0=0;j0<n.cells.length&&j0<t.length;j0++)F(n.cells[j0],L,t[j0],E);n.element.setAttribute("data-id",String(L.id)),n.lastItemId=L.id,y(n.element,E,g,i),v(n.element,g),n.lastSelected=g,n.lastFocused=i},P=(E,L,g)=>{let i=N.get(E);if(!i)return;if(i.isGroupHeader)return;let n=i.lastSelected!==L,t=i.lastFocused!==g;if(n||t)y(i.element,E,L,g),v(i.element,L),i.lastSelected=L,i.lastFocused=g},M=(E)=>{_=E;let L=E.columns;for(let[,g]of N)if(g.element.style.width=`${E.totalWidth}px`,g.cells.length>0)for(let i=0;i<g.cells.length&&i<L.length;i++){let n=g.cells[i],t=L[i];n.style.left=`${t.offset}px`,n.style.width=`${t.width}px`}},A=(E)=>{return N.get(E)?.element},W=()=>{for(let[,E]of N)Z.release(E.element);N.clear(),w=-1};return{render:r,updatePositions:V,updateItem:X,updateItemClasses:P,getElement:A,updateColumnLayout:M,setGroupHeaderFn:G,clear:W,destroy:()=>{W(),Z.clear()}}};var P4=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(U){let{dom:j,emitter:K,config:D}=U,{classPrefix:B}=D;if(D.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(D.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let Z=J.resizable??!0,N=J.minColumnWidth??50,w=J.maxColumnWidth??1/0,_=J.columnBorders??!1,T=J.rowBorders??!0,z=J.rowHeight,R=U.rawConfig.padding,G=!R?0:typeof R==="number"?R*2:R.length===2?R[1]*2:R[1]+R[3],v=J.headerHeight??(typeof z==="number"?z:40),k=J.sort?.key??null,f=J.sort?.direction??"asc";if(q=x1(J.columns,N,w,Z),typeof z==="function")U.setSizeConfig(z);else if(typeof z==="number")U.setSizeConfig(z);if(U.rebuildSizeCache(),j.root.classList.add(`${B}--table`),T)j.root.classList.add(`${B}--table-row-borders`);if(_)j.root.classList.add(`${B}--table-col-borders`);j.root.setAttribute("role","grid"),j.root.setAttribute("aria-colcount",String(J.columns.length));let a=-1,h=j.items.getAttribute("aria-label");if(h)j.root.setAttribute("aria-label",h),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 u=U.getContainerWidth()-G;q.resolve(u);let b=(A,W)=>{if(!q)return;let $=q.getColumn(A);if(!$)return;let E=$.width,L=q.resizeColumn(A,W);if(Y)Y.update(q);if(Q)Q.updateColumnLayout(q);o(),K.emit("column:resize",{key:$.def.key,index:A,previousWidth:E,width:L})},d=(A)=>{if(A.direction===null)k=null,f="asc";else k=A.key,f=A.direction;if(Y)Y.updateSort(k,f);K.emit("column:sort",A)},J0=(A)=>{K.emit("column:click",A)};if(Y=m1(j.root,j.viewport,v,B,b,d,J0),Y.rebuild(q),k)Y.updateSort(k,f);let o=()=>{if(!q)return;let A=q.totalWidth;j.content.style.minWidth=`${A}px`,j.items.style.minWidth=`${A}px`};o(),Q=d1(j.items,()=>U.sizeCache,q,J.columns,B,D.ariaIdPrefix,()=>U.dataManager.getTotal(),U.rawConfig.item?.striped,()=>U.getStripeIndexFn());let H=null,C=null,S=!1,c=()=>{if(S)return;S=!0,H=U.methods.get("_getSelectedIds")??null,C=U.methods.get("_getFocusedIndex")??null},F=-1,y=-1,O=-1,I=!0,x=D.overscan,l={start:0,end:0},p={start:0,end:0},r=()=>{if(U.state.isDestroyed)return;let A=U.scrollController.getScrollTop(),W=U.state.viewportState.containerSize,$=U.getVirtualTotal(),E=U.state.viewportState.isCompressed;if(!I&&A===F&&W===y&&$===O)return;F=A,y=W,O=$,I=!1;let L=$+1;if(L!==a)a=L,j.root.setAttribute("aria-rowcount",String(L));U.getVisibleRange(A,W,$,l),p.start=Math.max(0,l.start-x),p.end=Math.min($-1,l.end+x);let g=U.state.viewportState;g.scrollPosition=A,g.visibleRange.start=l.start,g.visibleRange.end=l.end,g.renderRange.start=p.start,g.renderRange.end=p.end;let i=U.state.lastRenderRange,n=i.start!==p.start||i.end!==p.end;if(!n&&E){Q.updatePositions(U.getCompressionContext());return}if(!n)return;let t=E?U.getCompressionContext():void 0,j0=U.dataManager.getItemsInRange(p.start,p.end);c();let s=H?H():P4,Q0=C?C():-1;Q.render(j0,p,s,Q0,t),i.start=p.start,i.end=p.end,K.emit("range:change",{range:{start:p.start,end:p.end}})},V=()=>{if(U.state.isDestroyed)return;U.state.lastRenderRange.start=-1,U.state.lastRenderRange.end=-1,I=!0,r()};U.setRenderFns(r,V),U.setUpdateItemClassesFn((A,W,$)=>{Q?.updateItemClasses(A,W,$)});let X=Y,P=-1,M=()=>{let A=j.viewport.scrollLeft;if(A!==P){if(P=A,X.syncScroll)X.syncScroll(A)}};U.afterScroll.push(M),j.viewport.addEventListener("scroll",M,{passive:!0}),U.resizeHandlers.push((A,W)=>{if(!q)return;if(q.resolve(A-G),Y)Y.update(q);if(Q)Q.updateColumnLayout(q);o()}),U.methods.set("updateColumns",(A)=>{if(!q||!Y)return;if(q.updateColumns(A),q.resolve(U.getContainerWidth()-G),Y.rebuild(q),k)Y.updateSort(k,f);if(o(),Q)Q.updateColumnLayout(q),Q.clear();U.forceRender()}),U.methods.set("resizeColumn",(A,W)=>{if(!q)return;let $;if(typeof A==="string"){let E=q.columns;$=-1;for(let L=0;L<E.length;L++)if(E[L].def.key===A){$=L;break}if($===-1)return}else $=A;b($,W)}),U.methods.set("getColumnWidths",()=>{if(!q)return{};let A={},W=q.columns;for(let $=0;$<W.length;$++)A[W[$].def.key]=W[$].width;return A}),U.methods.set("setSort",(A,W)=>{if(k=A,f=W??"asc",Y)Y.updateSort(k,f)}),U.methods.set("getSort",()=>{return{key:k,direction:f}}),U.methods.set("_getTableLayout",()=>q),U.methods.set("_updateRenderedItem",(A,W,$,E)=>{Q?.updateItem(A,W,$,E)}),U.methods.set("_replaceTableRenderer",(A)=>{Q=A}),U.methods.set("_updateTableForGroups",(A,W)=>{if(Q)Q.setGroupHeaderFn(A,W)}),U.methods.set("_getTableHeaderHeight",()=>v),U.keydownHandlers.push((A)=>{if(A.key!=="ArrowLeft"&&A.key!=="ArrowRight")return;if(!q)return;let W=q.columns;if(W.length===0)return;let $=j.viewport.clientWidth;if(q.totalWidth<=$)return;let E=j.viewport.scrollLeft;if(A.key==="ArrowRight"){for(let L=0;L<W.length;L++)if(W[L].offset>E+1){j.viewport.scrollLeft=W[L].offset,A.preventDefault();return}}else{for(let L=W.length-1;L>=0;L--)if(W[L].offset<E-1){j.viewport.scrollLeft=W[L].offset,A.preventDefault();return}if(E>0)j.viewport.scrollLeft=0,A.preventDefault()}}),U.contentSizeHandlers.push(()=>{o()}),U.destroyHandlers.push(()=>{if(j.viewport.removeEventListener("scroll",M),Y)Y.destroy(),Y=null;if(Q)Q.destroy(),Q=null;j.content.style.minWidth="",j.items.style.minWidth="",j.root.classList.remove(`${B}--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 K=Y.get(j);return K!==void 0?K:J},U=f0(Q,q);return{getOffset(j){return U.getOffset(j)},getSize(j){return Q(j)},indexAtOffset(j){return U.indexAtOffset(j)},getTotalSize(){return U.getTotalSize()},getTotal(){return U.getTotal()},rebuild(j){if(j<U.getTotal()){for(let K of Y.keys())if(K>=j)Y.delete(K)}U=f0(Q,j)},isVariable(){return!0},setMeasuredSize(j,K){Y.set(j,K)},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,U=q.rawConfig.item,j=Y?U.estimatedWidth:U.estimatedHeight;if(j==null||j<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let K=U.gap??0,D=q.getVirtualTotal(),B=$0(q.rawConfig.padding),Z=h0(B,Y),N=c1(j+K,D),w=q.methods.get("_setSizeCache"),_=q.methods.get("_setConstrainSize");if(!w||!_)throw Error("[vlist/withAutoSize] Incompatible builder version");w(N),_((h)=>N.isMeasured(h));let T=new WeakMap,z=0,R=!1,G=2,v=(h)=>{let u=q.scrollController.getScrollTop(),b=q.state.viewportState.containerSize;if(b<=0)return!1;let d=Math.max(0,h+Z-b);return u>=d-G},k=()=>{let h=N.getTotalSize(),u=q.state.viewportState.containerSize;if(u<=0)return;let b=Math.max(0,h+Z-u),d=q.scrollController.getScrollTop();if(b>d)q.scrollController.scrollTo(b)},f=()=>{let h=N.getTotalSize();q.updateContentSize(h)},a=()=>{if(R){let h=q.dom.viewport,u=h.scrollHeight,b=u-h.clientHeight,d=q.scrollController.getScrollTop(),J0=b>0&&d>=b-G,o=q.getVirtualTotal(),H=q.state.viewportState.renderRange.end,C=o>0&&H>=o-1,S=N.getTotalSize()+Z,c=Math.abs(S-u),F=C&&b>0&&d>=b-c-G,y=J0||F;if(f(),R=!1,y)h.scrollHeight,k(),q.forceRender()}};J=new ResizeObserver((h)=>{if(q.state.isDestroyed)return;let u=!1,b=q.state.viewportState.visibleRange.start;for(let O of h){let I=T.get(O.target);if(I===void 0)continue;let x=Y?O.borderBoxSize[0].inlineSize:O.borderBoxSize[0].blockSize;if(!N.isMeasured(I)){let l=x+K,p=N.getSize(I);if(N.setMeasuredSize(I,l),u=!0,I<b&&l!==p)z+=l-p;J.unobserve(O.target);let r=O.target;if(Y)r.style.width=`${x}px`;else r.style.height=`${x}px`}}if(!u)return;let d=N.getTotalSize();if(N.rebuild(q.getVirtualTotal()),z!==0){let O=q.scrollController.getScrollTop();q.scrollController.scrollTo(O+z),z=0}let J0=v(d),o=q.getVirtualTotal(),H=q.state.viewportState.renderRange.end,C=o>0&&H>=o-1,S=q.dom.viewport,c=S.scrollHeight-S.clientHeight,F=q.scrollController.getScrollTop(),y=c>0&&F>=c-G;if(J0||C||!q.scrollController.isScrolling()){if(f(),R=!1,J0||C&&y)S.scrollHeight,k()}else R=!0;q.forceRender()}),q.afterRenderBatch.push((h)=>{for(let{index:u,element:b}of h)if(!N.isMeasured(u))T.set(b,u),J.observe(b)}),q.idleHandlers.push(a),q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var w4=50,R4=0.1;function l1(J){let q=0,Y=0,Q=0;function U(){return Q>0?Y/Q:0}function j(B){if(q=B,B>R4&&B<w4)Y+=B,Q++}function K(){let B=J.getTotal();if(B===0)return 0;let Z=J.getItemSize();if(Z<=0)return 0;let N=J.getContainerSize();if(N<=0)return 0;let w=J.getScrollPosition(),_=typeof J.getColumns==="function"?J.getColumns():1,z=Math.ceil(B/_)*Z,G=Math.min(z,x0)-N,v=z-N,k=G>0?v/G:1,f=w*k,a=Math.ceil((f+N)/Z);return Math.min(a*_,B)}function D(){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:D,onVelocity:j}}export{lJ as withTable,dJ as withSnapshots,mJ as withSelection,zJ as withScrollbar,CJ as withScale,SJ as withPage,xJ as withMasonry,hJ as withGroups,gJ as withGrid,rJ as withAutoSize,vJ as withAsync,RJ as vlist,l1 as createStats};