vlist 1.6.2 → 1.6.4

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 J1=2,Q1=(J=0)=>({velocity:0,sampleCount:0}),q1=(J,Y)=>{let j=performance.now(),Q=J._lt??j,X=J._lp??Y,q=j-Q;if(J._lp=Y,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(Y-X)/q,J.sampleCount=Math.min(J.sampleCount+1,5),J};var J4=(J,Y)=>{let j=Y;return{getOffset:(Q)=>Q*J,getSize:(Q)=>J,indexAtOffset:(Q)=>{if(j===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(Q/J),j-1))},getTotalSize:()=>j*J,getTotal:()=>j,rebuild:(Q)=>{j=Q},isVariable:()=>!1}},Q4=(J,Y)=>{let j=Y,Q=new Float64Array(0),X=(Z)=>{j=Z,Q=new Float64Array(Z+1),Q[0]=0;for(let D=0;D<Z;D++)Q[D+1]=Q[D]+J(D)};X(Y);let q=(Z)=>{if(j===0)return 0;if(Z<=0)return 0;if(Z>=Q[j])return j-1;let D=0,K=j-1;while(D<K){let B=D+K+1>>>1;if(Q[B]<=Z)D=B;else K=B-1}return D};return{getOffset:(Z)=>{if(Z<=0)return 0;if(Z>=j)return Q[j];return Q[Z]},getSize:(Z)=>J(Z),indexAtOffset:(Z)=>q(Z),getTotalSize:()=>Q[j]??0,getTotal:()=>j,rebuild:(Z)=>X(Z),isVariable:()=>!0}},S0=(J,Y)=>{if(typeof J==="number")return J4(J,Y);return Q4(J,Y)},Y1=(J,Y,j,Q)=>{if(Q===0)return 0;if(!J.isVariable())return Math.ceil(j/J.getSize(0));let X=0,q=0,Z=Y;while(Z<Q&&q<j)q+=J.getSize(Z),X++,Z++;return Math.max(1,X)};var j1=()=>{let J={},Y=(q,Z)=>{if(!J[q])J[q]=new Set;return J[q].add(Z),()=>j(q,Z)},j=(q,Z)=>{J[q]?.delete(Z)};return{on:Y,off:j,emit:(q,Z)=>{J[q]?.forEach((D)=>{try{D(Z)}catch(K){console.error(`[vlist] Error in event handler for "${String(q)}":`,K)}})},clear:(q)=>{if(q)delete J[q];else for(let Z in J)delete J[Z]}}};var X1=(J)=>{if(typeof J==="string"){let Y=document.querySelector(J);if(!Y)throw Error(`[vlist] Container not found: ${J}`);return Y}return J},s0=(J,Y)=>{let j=document.createElement("div");if(j.className=J,Y)j.style.cssText=Y;return j},U1=(J,Y,j,Q,X)=>{let q=Q,Z=s0(Y);if(q)Z.classList.add(`${Y}--horizontal`);if(X!==!1)Z.setAttribute("tabindex","0");let D=s0(`${Y}-viewport`,q?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");D.setAttribute("tabindex","-1");let K=s0(`${Y}-content`,q?"position:relative;height:100%":"position:relative;width:100%"),B=s0(`${Y}-items`,q?"position:relative;height:100%":"position:relative;width:100%");if(B.setAttribute("role","listbox"),j)B.setAttribute("aria-label",j);if(q)B.setAttribute("aria-orientation","horizontal");let N=s0(`${Y}-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(B),D.appendChild(K),Z.appendChild(N),Z.appendChild(D),J.appendChild(Z),{root:Z,viewport:D,content:K,items:B,liveRegion:N}};var K1=(J=100)=>{let Y=[];return{acquire:()=>{let j=Y.pop();if(j)return j;let Q=document.createElement("div");return Q.setAttribute("role","option"),Q},release:(j)=>{if(Y.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),Y.push(j)},clear:()=>{Y.length=0}}};var Z1=(J,Y,j,Q,X)=>{if(Q===0||Y===0){X.start=0,X.end=-1;return}let q=j.indexAtOffset(J),Z=j.indexAtOffset(J+Y);if(Z<Q-1)Z++;X.start=Math.max(0,q),X.end=Math.min(Q-1,Math.max(0,Z))},B1=(J,Y,j,Q)=>{Q.start=Math.max(0,J.start-Y),Q.end=Math.min(j-1,J.end+Y)},N1=(J,Y,j,Q,X,q=0)=>{if(Q===0)return 0;let Z=Math.max(0,Math.min(J,Q-1)),D=Y.getOffset(Z),K=Y.getSize(Z),B=Y.getTotalSize(),N=Math.max(0,B+q-j),v;switch(X){case"center":v=D-(j-K)/2;break;case"end":v=q>0&&D+K>=B?N:D-j+K;break;default:v=D}return Math.max(0,Math.min(v,N))};var qJ={top:0,right:0,bottom:0,left:0},y0=(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,Z]=J;return q===0&&Z===0?qJ:{top:q,right:Z,bottom:q,left:Z}}let[Y,j,Q,X]=J;return Y===0&&j===0&&Q===0&&X===0?qJ:{top:Y,right:j,bottom:Q,left:X}},h0=(J,Y)=>Y?J.left+J.right:J.top+J.bottom,YJ=(J,Y)=>Y?J.top+J.bottom:J.left+J.right;var p0=(J,Y,j)=>{let Q=Array.from(Y).sort((Z,D)=>Z-D);if(Q.length<=1)return;let X=[];for(let Z=0;Z<Q.length;Z++){let D=j(Q[Z]);if(D)X.push(D)}if(X.length<=1)return;let q=J.firstChild;for(let Z=0;Z<X.length;Z++){let D=X[Z];if(D===q)q=q.nextSibling;else J.insertBefore(D,q)}};var W1=(J,Y)=>{let{dom:j,emitter:Q,resolvedConfig:X,rawConfig:q,rendered:Z,pool:D,sharedState:K,isHorizontal:B,classPrefix:N,contentSizeHandlers:v,idleHandlers:_,afterScroll:F,clickHandlers:R,keydownHandlers:z,resizeHandlers:G,destroyHandlers:C,methods:y,onScrollFrame:I,resizeObserver:c,renderRange:x,afterRenderBatch:g}=Y;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return X},get rawConfig(){return q},adjustScrollPosition($){if(J.mp===0)return $;let d=B?J.cw:J.ch,Q0=J.hc.getTotalSize(),s=Math.max(0,Q0-d),P=Math.max(0,Q0+J.mp-d);if($>=s)return P;return Math.min($,P)},get renderer(){return{render:($,d,Q0,s,P)=>{J.ss=Q0,J.fi=s,J.ffn()},updateItemClasses:($,d,Q0)=>{J.uic($,d,Q0)},updatePositions:()=>{},updateItem:()=>{},getElement:($)=>Z.get($)??null,clear:()=>{},destroy:()=>{}}},set renderer($){},get dataManager(){return J.dm},set dataManager($){J.dm=$},get scrollController(){return J.sc},set scrollController($){J.sc=$},state:K,getContainerWidth(){return J.cw},afterScroll:F,idleHandlers:_,afterRenderBatch:g,clickHandlers:R,keydownHandlers:z,resizeHandlers:G,contentSizeHandlers:v,destroyHandlers:C,methods:y,replaceTemplate($){J.at=$},replaceRenderer($){},replaceDataManager($){J.dm=$},replaceScrollController($){J.sc=$},getItemsForRange($){let{dm:d,it:Q0}=J,s=[];for(let P=$.start;P<=$.end;P++){let S=d?d.getItem(P):Q0[P];if(S)s.push(S)}return s},getAllLoadedItems(){let $=J.dm;if($){let d=$.getTotal(),Q0=[];for(let s=0;s<d;s++){let P=$.getItem(s);if(P)Q0.push(P)}return Q0}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let $=J.hc;return{isCompressed:!1,actualSize:$.getTotalSize(),virtualSize:$.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:x.start,compression:K.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,$]of Z)$.remove(),D.release($);Z.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns($,d){J.rfn=$,J.ffn=d},setVirtualTotalFn($){J.vtf=$},rebuildSizeCache($){J.hc.rebuild($??J.vtf())},setSizeConfig($){if(J.hc=S0($,J.vtf()),J.gp>0){let d=J.hc.getTotalSize,Q0=J.gp;J.hc.getTotalSize=()=>{let s=d();return s>0?s-Q0:0}}},updateContentSize($){let d=`${$+J.mp}px`;if(B)j.content.style.width=d;else j.content.style.height=d},updateCompressionMode(){for(let $=0;$<v.length;$++)v[$]()},setVisibleRangeFn($){J.gvr=$},getVisibleRange($,d,Q0,s){J.gvr($,d,J.hc,Q0,s)},setScrollToPosFn($){J.gsp=$},getScrollToPos($,d,Q0,s){return J.gsp($,J.hc,d,Q0,s)},setPositionElementFn($){J.pef=$},setScrollFns($,d){J.sgt=$,J.sst=(Q0)=>{d(Q0),I()}},setScrollTarget($){J.st.removeEventListener("scroll",I),J.st=$,J.st.addEventListener("scroll",I,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions($){J.gcw=$.width,J.gch=$.height,J.cw=$.width(),J.ch=$.height(),K.viewportState.containerSize=B?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,c.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn($){J.sif=$},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn($){J.i2s=$},setUpdateItemClassesFn($){J.uic=$}}},V1=(J,Y,j)=>{let{rendered:Q,itemState:X,applyTemplate:q,updateContentSize:Z}=Y,D=()=>{J.hc.rebuild(J.vtf()),Z(),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:(B)=>J.it[B],isItemLoaded:(B)=>B>=0&&B<K()&&J.it[B]!==void 0,getItemsInRange:(B,N)=>{let v=[];for(let _=Math.max(0,B),F=Math.min(N,K()-1);_<=F;_++)v.push(J.it[_]);return v},setTotal:()=>{},setItems:(B,N=0,v)=>{if(N===0&&(v!==void 0||K()===0))J.it=B;else{let _=N+B.length;if(K()<_)J.it.length=_;for(let F=0;F<B.length;F++)J.it[N+F]=B[F]}if(J.ii)D()},updateItem:(B,N)=>{let v=J.it;if(B<0||B>=v.length)return!1;let _=v[B];if(!_)return!1;v[B]={..._,...N};let F=Q.get(B);if(F)q(F,J.at(v[B],B,X)),F.dataset.id=String(v[B].id);return!0},removeItem:(B)=>{let N=typeof B==="number"?B:J.it.findIndex((v)=>v.id===B);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),Z(),J.ffn()}}},_1=(J,Y)=>{let{dom:j,classPrefix:Q}=Y;return{getScrollTop:()=>J.sgt(),scrollTo:(X)=>{J.sst(X),J.ls=X,J.rfn()},scrollBy:(X)=>{let q=J.sgt()+X;J.sst(q),J.ls=q,J.rfn()},isAtTop:()=>J.ls<=2,isAtBottom:(X=2)=>J.sab(X),getScrollPercentage:()=>{let X=J.hc.getTotalSize(),q=Math.max(0,X-J.ch);return q>0?J.ls/q:0},getVelocity:()=>J.vt.velocity,isTracking:()=>J.vt.sampleCount>=2,isScrolling:()=>j.root.classList.contains(`${Q}--scrolling`),updateConfig:()=>{},enableCompression:()=>{J.sic=!0},disableCompression:()=>{J.sic=!1},isCompressed:()=>J.sic,isWindowMode:()=>!1,updateContainerHeight:(X)=>{J.ch=X},destroy:()=>{}}};var AJ=(J,Y,j,Q,X=0,q=0)=>{let Z=Y.getOffset(J),D=Y.getSize(J),K=Z+X,B=K+D,N=j+Q;if(K<j)return Math.max(0,Z);if(B>N)return B+q-Q;return j},jJ=(J,Y,j,Q,X=0,q=0,Z,D,K)=>{if(!(Z!=null&&Z.isCompressed&&Z.ratio!==1))return AJ(J,Y,j,Q,X,q);let N=D,{virtualSize:v}=Z,_=Y.getSize(Math.max(0,J)),F=Q-X-q,R=Math.max(1,Math.floor(F/_)),z=v/N;if(K){if(J>=K.start+R){let y=F/_,I=J+1-y;return Math.max(0,I*z)}if(J<=K.start)return Math.max(0,J*z);return j}let G=j/v*N,C=G+R;if(J>=C){let y=F/_,I=J+1-y;return Math.max(0,I*z)}if(J<G)return Math.max(0,J*z);return j};var D1=(J,Y,j,Q,X,q,Z,D,K,B,N,v,_)=>{let F=`${j}-item--focused`,R=!1,z=null,G=null,C=null,y=null,I=!1,c=()=>{if(I)return;I=!0,z=K.get("_getNavTotal")??null,G=K.get("_getNavDelta")??null,C=K.get("_navigate")??null,y=K.get("_scrollItemIntoView")??null},x=()=>{return c(),z?z():J.vtf()},g=()=>{return c(),G?G():{ud:1,lr:0,cols:0}};K.set("_getFocusedIndex",()=>R?J.fi:-1);let $=(b)=>{if(Y.root.setAttribute("aria-activedescendant",`${Q}-item-${b}`),c(),y)y(b);else{let u=X?J.cw:J.ch,k=J.i2s(b),L=AJ(k,J.hc,J.ls,u,q,Z);if(L!==J.ls)J.sst(L),J.ls=J.sgt()}J.ffn()},d=(b)=>{J.fi=b,R=!0,$(b)},Q0=(b,u)=>{if(J.fi=b,u)R=!0;let k=J.dm?J.dm.getItem(b):J.it[b];if(k&&J.ss.has(k.id))J.ss.clear();else if(J.ss.clear(),k)J.ss.add(k.id);$(b)},s=(b,u,k)=>{let L=b;while(L>=0&&L<k){let w=J.dm?J.dm.getItem(L):J.it[L];if(!w||!w.__groupHeader)return L;L+=u}L=b-u;while(L>=0&&L<k){let w=J.dm?J.dm.getItem(L):J.it[L];if(!w||!w.__groupHeader)return L;L-=u}return b},P=()=>{if(J.id)return;if(!Y.root.matches(":focus-visible"))return;let b=x();if(b===0)return;let u=J.fi>=0?Math.min(J.fi,b-1):0;u=s(u,1,b),d(u)};Y.root.addEventListener("focusin",P);let S=(b)=>{if(J.id)return;let u=b.relatedTarget;if(u&&Y.root.contains(u))return;if(R=!1,J.fi>=0)B.get(J.fi)?.classList.remove(F);Y.root.removeAttribute("aria-activedescendant")};Y.root.addEventListener("focusout",S),N.push((b)=>{if(J.id)return;let u=x();if(u===0)return;let k=J.fi,L=k;if(b.key===" "||b.key==="Enter"){if(k>=0){let w=J.dm?J.dm.getItem(k):J.it[k];if(w&&!w.__groupHeader)Q0(k,!0)}b.preventDefault();return}if(c(),C)switch(b.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":L=C(k,b.key,u);break;default:return}else{let{ud:w,lr:p}=g();switch(b.key){case"ArrowUp":L=k-w;break;case"ArrowDown":L=k+w;break;case"ArrowLeft":if(!p)return;L=k-p;break;case"ArrowRight":if(!p)return;L=k+p;break;case"PageUp":case"PageDown":{let a=J.hc.getSize(J.i2s(Math.max(0,k))),l=Math.max(w,Math.floor((X?J.cw:J.ch)/a)*w);L=b.key==="PageUp"?k-l:k+l;break}case"Home":L=0;break;case"End":L=u-1;break;default:return}if(L<0)L=D?u-1:0;else if(L>=u)L=D?0:u-1}if(b.preventDefault(),L=s(L,L>=k?1:-1,u),L!==k)d(L)}),v.push((b)=>{if(J.id)return;let u=b.target.closest("[data-index]");if(!u)return;let k=parseInt(u.dataset.index??"-1",10);if(k<0)return;let L=J.dm?.getItem(k)??J.it[k];if(!L||L.__groupHeader)return;R=!1,Y.root.focus({preventScroll:!0}),Q0(k,!1)}),_.push(()=>{Y.root.removeEventListener("focusin",P),Y.root.removeEventListener("focusout",S)})};var LJ=200,u0=50;var G1=50,M1=12,O1=2,g0=16000000;var E1="x",A1=20,FJ="_isPlaceholder",P0="__placeholder_";var w0=(J,Y,j)=>{if(String(j).startsWith(P0))return!1;let Q=P0+Y;if(J.has(Q))return J.delete(Q),J.add(j),!0;return!1},L1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),x0=(J,Y,j)=>{if(j==="none")return J;let Q=new Set(J.selected);if(j==="single"){if(Q.clear(),Y.length>0)Q.add(Y[0])}else for(let X of Y)Q.add(X);return{...J,selected:Q}},TJ=(J,Y)=>{let j=new Set(J.selected);for(let Q of Y)j.delete(Q);return{...J,selected:j}},m0=(J,Y,j)=>{if(j==="none")return J;if(J.selected.has(Y))return TJ(J,[Y]);else return x0(J,[Y],j)},kJ=(J,Y,j)=>{if(j!=="multiple")return J;return{...J,selected:new Set(Y.map((Q)=>Q.id))}},bJ=(J)=>({...J,selected:new Set}),d0=(J,Y)=>{return J.focusedIndex=Y,J},XJ=(J,Y,j=!1,Q=1)=>{if(Y===0)return J;let X=J.focusedIndex-Q;if(X<0)X=j?Y-1:0;return J.focusedIndex=X,J},UJ=(J,Y,j=!1,Q=1)=>{if(Y===0)return J;let X=J.focusedIndex+Q;if(X>=Y)X=j?0:Y-1;return J.focusedIndex=X,J},F1=(J,Y)=>{if(Y===0)return J;return J.focusedIndex=0,J},T1=(J,Y)=>{if(Y===0)return J;return J.focusedIndex=Y-1,J},HJ=(J,Y,j,Q)=>{if(Y===0)return J;let X=Q==="up"?J.focusedIndex-j:J.focusedIndex+j;return X=Math.max(0,Math.min(Y-1,X)),J.focusedIndex=X,J};var $J=(J)=>{return Array.from(J.selected)},yJ=(J,Y)=>{let j=[];for(let Q of J.selected){let X=Y(Q);if(X)j.push(X)}return j};var KJ=(J,Y,j,Q,X)=>{if(X!=="multiple")return J;let q=Math.min(j,Q),Z=Math.max(j,Q),D=[];for(let K=q;K<=Z;K++){let B=Y[K];if(B)D.push(B.id)}return x0(J,D,X)};var PJ=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,R0=(J)=>{let Y=typeof J==="object"&&J?J:null;return{align:typeof J==="string"?J:Y?.align??"start",behavior:Y?.behavior??"auto",duration:Y?.duration??300}},c0=(J,Y)=>{let j=null,Q=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(q,Z,D)=>{if(Q(),Math.abs(Z-q)<1){J.scrollTo(Z);return}let K=performance.now(),B=(N)=>{let v=N-K,_=Math.min(v/D,1),F=q+(Z-q)*PJ(_);if(J.scrollTo(F),Y(),_<1)j=requestAnimationFrame(B);else j=null};j=requestAnimationFrame(B)},cancelScroll:Q}};var k1=(J,Y,j,Q,X,q,Z,D,K,B,N,v,_,F,R,z,G,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),M=new Set;for(let f=0;f<W;f++){let O=E[f];if(O&&"id"in O){if(M.has(O.id)){console.warn(`[vlist] Duplicate item ID "${O.id}" at index ${f}. updateItem() and removeItem() will only match the first occurrence.`);break}M.add(O.id)}}}w(),K.dataManager.setItems(E,0,E.length)},I=(E)=>{let W=B&&J.sab(2);if(K.dataManager.setItems(E,J.it.length),W&&J.it.length>0){let M=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(M),J.ls=M,J.rfn()}},c=(E)=>{let W=B?J.sgt():0,M=B?J.hc.getTotalSize():0,f=[...J.it];if(K.dataManager.clear(),K.dataManager.setItems([...E,...f],0),B){let O=J.hc.getTotalSize()-M;if(O>0)J.sst(W+O),J.ls=W+O}},x=null,g=null,$=null,d=!1,Q0=()=>{if(d)return;d=!0,x=q.get("_updateRenderedItem")??null,g=q.get("_getSelectedIds")??null,$=q.get("_getFocusedIndex")??null},s=(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(),!x)return;let M=K.dataManager.getItem(E);if(M){let O=(g?g():J.ss).has(M.id),A=($?$():J.fi)===E;x(E,M,O,A)}},P=!1,S=(E)=>{let W=typeof document<"u"?document.activeElement:null,M=W&&Y.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:r,end:i}=K.state.viewportState.renderRange;if(A>0&&i>=r)O.ensureRange(r,i).catch(()=>{})})}if(M>=0){let O=J.vtf();if(O>0)Q.get(Math.min(M,O-1))?.focus()}return!0},b=(E)=>{return K.dataManager.getItem(E)},u=(E)=>{return K.dataManager.getIndexById?.(E)??-1},k=async(E)=>{if(K.dataManager.reload)await K.dataManager.reload()},L=null,w=()=>{if(L!==null)cancelAnimationFrame(L),L=null},p=(E,W,M,f)=>{if(w(),Math.abs(W-E)<1){J.sst(W),J.ls=W,J.rfn();return}let O=performance.now(),A=(r)=>{let i=r-O,n=Math.min(i/M,1),t=f?f():W,j0=E+(t-E)*PJ(n);if(J.sst(j0),J.ls=j0,J.rfn(),n<1)L=requestAnimationFrame(A);else L=null};L=requestAnimationFrame(A)},a=(E,W)=>{{let n=J.vtf();if(n>0&&(E<0||E>=n))console.warn(`[vlist] scrollToIndex(${E}) is out of range (0–${n-1}).`)}let{align:M,behavior:f,duration:O}=R0(W),A=J.vtf(),r=E;if(N&&A>0)r=(r%A+A)%A;let i=J.gsp(r,J.hc,J.ch,A,M);if(f==="smooth"){let n=r,t=M;p(J.sgt(),i,O,()=>J.gsp(n,J.hc,J.ch,J.vtf(),t))}else w(),J.sst(i)},l=()=>J.sgt(),h=(E,W)=>{return j.on(E,W)},T=(E,W)=>{j.off(E,W)},U=()=>{if(J.id)return;if(J.id=!0,K.state.isDestroyed=!0,Y.items.removeEventListener("click",v),Y.items.removeEventListener("dblclick",_),Y.root.removeEventListener("keydown",F),J.st.removeEventListener("scroll",R),z.disconnect(),G(),J.wh)Y.viewport.removeEventListener("wheel",J.wh);C();let E=[];for(let W=0;W<D.length;W++)try{D[W]()}catch(M){E.push(M instanceof Error?M:Error(String(M)))}for(let W of Z)if(W.destroy)try{W.destroy()}catch(M){E.push(M instanceof Error?M:Error(String(M)))}w();for(let[,W]of Q)W.remove(),X.release(W);Q.clear(),X.clear(),j.emit("destroy",void 0);for(let W of E)j.emit("error",{error:W,context:"destroy"});j.clear(),Y.root.remove()},V=(E,W)=>q.has(E)?q.get(E):W,H={get element(){return Y.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",I),prependItems:V("prependItems",c),updateItem:V("updateItem",s),removeItem:V("removeItem",S),reload:V("reload",k),getItemAt:b,getIndexById:u,scrollToIndex:V("scrollToIndex",a),cancelScroll:V("cancelScroll",w),getScrollPosition:V("getScrollPosition",l),on:h,off:T,destroy:U};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;H[E]=W}return H};var q4=3,Y4="vlist",j4=150,X4=16000000,U4=0,wJ=(J)=>{if(!J.container)throw Error("[vlist] Container is required");if(!J.item)throw Error("[vlist] item configuration is required");let Y=J.orientation==="horizontal",j=Y?"width":"height",Q=Y?"estimatedWidth":"estimatedHeight",X=Y?J.item.width:J.item.height,q=Y?J.item.estimatedWidth:J.item.estimatedHeight;if(X==null&&q==null)throw Error(`[vlist] item.${j} or item.${Q} is required${Y?" when orientation is 'horizontal'":""}`);if(X!=null){if(typeof X==="number"&&X<=0)throw Error(`[vlist] item.${j} must be a positive number`);if(typeof X!=="number"&&typeof X!=="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.${Q} must be a positive number`)}if(!J.item.template)throw Error("[vlist] item.template is required");if(Y&&J.reverse)throw Error("[vlist] horizontal direction cannot be combined with reverse mode");let Z=new Map,D=!1,K={use(B){if(D)throw Error("[vlist] Cannot call .use() after .build()");return Z.set(B.name,B),K},build(){if(D)throw Error("[vlist] .build() can only be called once");return D=!0,K4(J,Z,Y,X,q??null)}};return K};function K4(J,Y,j,Q,X){let{item:q,items:Z,overscan:D=q4,classPrefix:K=Y4,ariaLabel:B,padding:N,reverse:v=!1,scroll:_,accessible:F,interactive:R}=J,z=R??F??!0,G=_,C=G?.wheel??!0,y=G?.wrap??!1,I=v,c=`${K}-${U4++}`,x=Y.has("withGrid")||Y.has("withMasonry")?0:q.gap??0,g=Q??X,$=Q==null&&X!=null,d=j?typeof q.height==="number"?q.height:void 0:typeof q.width==="number"?q.width:void 0,Q0={overscan:D,classPrefix:K,reverse:I,wrap:y,horizontal:j,ariaIdPrefix:c,interactive:z},s=Array.from(Y.values()).sort((m,e)=>(m.priority??50)-(e.priority??50)),P=new Set(s.map((m)=>m.name));for(let m of s)if(m.conflicts){for(let e of m.conflicts)if(P.has(e))throw Error(`[vlist] ${m.name} and ${e} cannot be combined`)}if(I){if(P.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let S=X1(J.container),b=U1(S,K,B,j,z);if(G?.wheel===!1)if(j)b.viewport.style.overflowX="hidden";else b.viewport.style.overflow="hidden";if(G?.scrollbar==="none")b.viewport.classList.add(`${K}-viewport--no-scrollbar`);if(G?.gutter==="stable")b.viewport.classList.add(`${K}-viewport--gutter-stable`);let u=y0(N),k=h0(u,j);if(u.top||u.right||u.bottom||u.left)b.content.style.boxSizing="border-box",b.content.style.padding=`${u.top}px ${u.right}px ${u.bottom}px ${u.left}px`;let L=j1(),w=Z||[],p=typeof g==="function"&&(Y.has("withGrid")||Y.has("withMasonry")),a=x>0?typeof g==="function"?(m)=>g(m)+x:g+x:g,l=$?X+x:a,h=S0(l,p?0:w.length);if(x>0){let m=h.getTotalSize;h.getTotalSize=()=>{let e=m();return e>0?e-x:0}}let T=K1(),U={it:w,hc:h,ch:b.viewport.clientHeight,cw:b.viewport.clientWidth,id:!1,ii:!1,ls:0,vt:Q1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>b.viewport.scrollLeft:()=>b.viewport.scrollTop,sst:j?(m)=>{b.viewport.scrollLeft=m}:(m)=>{b.viewport.scrollTop=m},sab:(m=2)=>{let e=U.hc.getTotalSize();return U.ls+U.ch>=e-m},sic:!1,rfn:null,ffn:null,gvr:(m,e,Y0,N0,E0)=>{Z1(m,e,Y0,N0,E0)},gsp:(m,e,Y0,N0,E0)=>{return N1(m,e,Y0,N0,E0,U.mp)},pef:null,at:q.template,vre:!0,st:b.viewport,wh:null,gcw:()=>U.cw,gch:()=>U.ch,gp:x,mp:k,sif:(m)=>m,i2s:(m)=>m,uic:(m,e,Y0)=>{let N0=A.get(m);if(!N0)return;J0(N0,e,Y0)},csi:null};U.vtf=()=>U.dm?U.dm.getTotal():U.it.length;let V=null,H=!1,E={start:0,end:0},W={start:0,end:0},M={start:-1,end:-1},f={viewportState:{scrollPosition:0,containerSize:j?U.cw:U.ch,totalSize:U.hc.getTotalSize(),actualSize:U.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:U.vtf()}),A=new Map,r=()=>{p0(b.items,A.keys(),(m)=>A.get(m))},i=()=>{let m=U.hc.getTotalSize(),Y0=`${(U.sic?m:Math.min(m,X4))+k}px`;if(j)b.content.style.width=Y0;else b.content.style.height=Y0},n={selected:!1,focused:!1},t=`${K}-item`,j0=`${K}-item--selected`,o=`${K}-item--focused`,J0=(m,e,Y0)=>{m.classList.toggle(j0,e),m.classList.toggle(o,Y0),m.ariaSelected=e?"true":"false"},q0=q.striped,U0=!!q0,K0=q0==="data"||q0==="even"||q0==="odd",Z0=`${K}-item--odd`,W0=`${K}-item--placeholder`,M0=`${K}-item--replaced`,X0=`${K}--scrolling`,B0=[],O0=[],A0=[],G0=[],V0=[],b0=[],D0=[],F0=[],T0=new Map,NJ="__placeholder_",WJ={scrollPosition:0,direction:"down"},f0={velocity:0,reliable:!1},VJ={range:{start:0,end:0}},_J=null,DJ=null,rJ=!1,l1=()=>{if(rJ)return;rJ=!0,_J=T0.get("_getSelectedIds")??null,DJ=T0.get("_getFocusedIndex")??null},t0=(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)},r1=(m,e)=>{let Y0=Math.round(U.hc.getOffset(e));if(j)m.style.transform=`translateX(${Y0}px)`;else m.style.transform=`translateY(${Y0}px)`};U.pef=r1;let a1=(m,e)=>{let Y0=T.acquire();Y0.className=t;let N0=!U.csi||U.csi(m);if(j){if(N0)Y0.style.width=`${U.hc.getSize(m)-x}px`;else Y0.style.width="";if(d!=null)Y0.style.height=`${d}px`}else if(N0)Y0.style.height=`${U.hc.getSize(m)-x}px`;else Y0.style.height="";if(Y0.dataset.index=String(m),Y0.dataset.id=String(e.id),Y0.ariaSelected="false",Y0.id=`${c}-item-${m}`,U.la=String(U.vtf()),Y0.setAttribute("aria-setsize",U.la),Y0.setAttribute("aria-posinset",String(m+1)),String(e.id).startsWith(NJ))Y0.classList.add(W0);if(U0)if(K0){let k0=U.sif(m);if(k0<0)Y0.classList.remove(Z0);else Y0.classList.toggle(Z0,(k0&1)===1)}else Y0.classList.toggle(Z0,(m&1)===1);try{t0(Y0,U.at(e,m,n),m)}catch(k0){let L0=k0 instanceof Error?k0:Error(String(k0));L.emit("error",{error:L0,context:`tpl(${m},${e.id})`,viewport:O()}),Y0.textContent=""}return U.pef(Y0,m),Y0},s1=()=>{if(U.id)return;let m=j?U.cw:U.ch;if(m<=0)return;l1();let e=_J?_J():U.ss,Y0=DJ?DJ():U.fi,N0=U.vtf();if(U.gvr(U.ls,m,U.hc,N0,E),B1(E,D,N0,W),W.start===M.start&&W.end===M.end){if(U.sic)for(let[_0,H0]of A)U.pef(H0,_0);f.viewportState.scrollPosition=U.ls,f.viewportState.containerSize=m,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 E0=String(N0),k0=E0!==U.la;U.la=E0;for(let[_0,H0]of A)if(_0<W.start||_0>W.end)H0.remove(),T.release(H0),A.delete(_0);let L0=document.createDocumentFragment(),C0=!1,a0=D0.length>0?[]:null;for(let _0=W.start;_0<=W.end;_0++){let H0=U.dm?U.dm.getItem(_0):U.it[_0];if(H0===void 0)continue;let $0=A.get(_0);if($0){let v0=$0.dataset.id,I0=String(H0.id);if(v0!==I0){let t1=v0?.startsWith(NJ),OJ=I0.startsWith(NJ);try{t0($0,U.at(H0,_0,n),_0)}catch(EJ){let e1=EJ instanceof Error?EJ:Error(String(EJ));L.emit("error",{error:e1,context:`tpl(${_0},${H0.id})`,viewport:O()}),$0.textContent=""}$0.dataset.id=I0;let eJ=!U.csi||U.csi(_0);if(j)$0.style.width=eJ?`${U.hc.getSize(_0)-x}px`:"";else $0.style.height=eJ?`${U.hc.getSize(_0)-x}px`:"";if(OJ)$0.classList.add(W0);else $0.classList.remove(W0);if(t1&&!OJ)$0.classList.add(M0),setTimeout(()=>{$0.classList.remove(M0)},300);if(U.dm&&!OJ)w0(e,_0,H0.id)}U.pef($0,_0);let QJ=e.has(H0.id);if(J0($0,QJ,_0===Y0),k0)$0.setAttribute("aria-setsize",U.la)}else{let v0=a1(_0,H0);if(a0)a0.push({index:_0,element:v0});if(U.dm)w0(e,_0,H0.id);let I0=e.has(H0.id),QJ=_0===Y0;if(I0||QJ)J0(v0,I0,QJ);L0.appendChild(v0),A.set(_0,v0),C0=!0}}if(C0)b.items.appendChild(L0);if(a0&&a0.length>0)for(let _0=0;_0<D0.length;_0++)D0[_0](a0);M.start=W.start,M.end=W.end,f.lastRenderRange.start=W.start,f.lastRenderRange.end=W.end,f.viewportState.scrollPosition=U.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,VJ.range.start=W.start,VJ.range.end=W.end,L.emit("range:change",VJ)},o1=()=>{M.start=-1,M.end=-1,U.rfn()};U.rfn=s1,U.ffn=o1;let n1=()=>{b.root.classList.remove(X0),H=!1,U.vt.velocity=0,U.vt.sampleCount=0,f0.velocity=0,f0.reliable=!1,L.emit("velocity:change",f0),r();for(let m=0;m<O0.length;m++)O0[m]();L.emit("scroll:idle",{scrollPosition:U.ls})},i1=()=>{if(V)clearTimeout(V);V=setTimeout(n1,G?.idleTimeout??j4)},r0=()=>{if(U.id)return;let m=U.sgt();if(m===U.ls&&H)return;let e=m>=U.ls?"down":"up";if(U.vt=q1(U.vt,m),!b.root.classList.contains(X0))b.root.classList.add(X0);H=!0,U.ls=m,U.rfn(),WJ.scrollPosition=m,WJ.direction=e,L.emit("scroll",WJ),f0.velocity=U.vt.velocity,f0.reliable=U.vt.sampleCount>=J1,L.emit("velocity:change",f0);for(let Y0=0;Y0<B0.length;Y0++)B0[Y0](m,e);i1()},e0=null;if(U.st.addEventListener("scroll",r0,{passive:!0}),C){let m=b.viewport;if(j)e0=(e)=>{if(f.viewportState.isCompressed)return;if(Math.abs(e.deltaX)>Math.abs(e.deltaY))return;let Y0=U.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(),U.sst(E0),r0()};else e0=(e)=>{if(f.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=U.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(),U.sst(k0),r0()};U.wh=e0,m.addEventListener("wheel",e0,{passive:!1})}let aJ=(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=U.dm?.getItem(Y0)??U.it[Y0];if(!N0||N0.__groupHeader)return null;return{item:N0,index:Y0}},sJ=(m)=>{let e=aJ(m);if(e)L.emit("item:click",{item:e.item,index:e.index,event:m});for(let Y0=0;Y0<A0.length;Y0++)A0[Y0](m)},oJ=(m)=>{let e=aJ(m);if(e)L.emit("item:dblclick",{item:e.item,index:e.index,event:m})},nJ=(m)=>{for(let e=0;e<G0.length;e++)G0[e](m)};if(b.items.addEventListener("click",sJ),b.items.addEventListener("dblclick",oJ),b.root.addEventListener("keydown",nJ),z){let m=null,e=(Y0)=>{if(m)clearTimeout(m);m=setTimeout(()=>{if(m=null,U.id)return;let N0=U.vtf();b.liveRegion.textContent=`Showing items ${Y0.range.start+1} to ${Math.min(Y0.range.end+1,N0)} of ${N0}`},300)};L.on("range:change",e),F0.push(()=>{if(m)clearTimeout(m);L.off("range:change",e)})}let GJ=new ResizeObserver((m)=>{if(U.id)return;for(let e of m){let Y0=e.contentRect.height,N0=e.contentRect.width,E0=j?N0:Y0,k0=j?U.cw:U.ch;if(U.cw=N0,U.ch=Y0,Math.abs(E0-k0)>1){if(f.viewportState.containerSize=E0,U.ii){let L0=f.cachedCompression;if(L0&&L0.state.isCompressed){let C0=`${L0.state.virtualSize+k}px`;if(j)b.content.style.width=C0;else b.content.style.height=C0}else i();U.rfn(),L.emit("resize",{height:Y0,width:N0})}}if(U.ii)for(let L0=0;L0<V0.length;L0++)V0[L0](N0,Y0)}});if(U.vre)GJ.observe(b.viewport);let MJ={dom:b,emitter:L,resolvedConfig:Q0,rawConfig:J,rendered:A,pool:T,itemState:n,sharedState:f,renderRange:W,isHorizontal:j,classPrefix:K,contentSizeHandlers:b0,idleHandlers:O0,afterScroll:B0,clickHandlers:A0,keydownHandlers:G0,resizeHandlers:V0,destroyHandlers:F0,methods:T0,onScrollFrame:r0,resizeObserver:GJ,afterRenderBatch:D0,applyTemplate:t0,updateContentSize:i},JJ=W1(U,MJ);U.dm=V1(U,MJ,JJ),U.sc=_1(U,MJ),T0.set("_updateRenderedItem",(m,e,Y0,N0)=>{let E0=A.get(m);if(!E0)return;let k0={selected:Y0,focused:N0};try{let L0=U.at(e,m,k0);t0(E0,L0,m)}catch(L0){let C0=L0 instanceof Error?L0:Error(String(L0));L.emit("error",{error:C0,context:`tpl(${m},${e.id})`,viewport:O()})}E0.dataset.id=String(e.id),J0(E0,Y0,N0)});let iJ=new WeakSet;T0.set("_setSizeCache",(m)=>{if(U.hc=m,U.gp>0&&!iJ.has(m)){iJ.add(m);let e=U.hc.getTotalSize,Y0=U.gp;U.hc.getTotalSize=()=>{let N0=e();return N0>0?N0-Y0:0}}}),T0.set("_setConstrainSize",(m)=>{U.csi=m});let tJ=new Map;for(let m of s)if(m.methods)for(let e of m.methods){let Y0=tJ.get(e);if(Y0)throw Error(`[vlist] Method "${e}" is registered by both "${Y0}" and "${m.name}"`);tJ.set(e,m.name)}for(let m of s)try{m.setup(JJ)}catch(e){let Y0=e instanceof Error?e:Error(String(e));console.error(`[vlist] Feature "${m.name}" setup failed:`,Y0),L.emit("error",{error:Y0,context:m.name,viewport:O()})}if($&&!Y.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 m=j?u.left:u.top,e=j?u.right:u.bottom;D1(U,b,K,c,j,m,e,y,T0,A,G0,A0,F0)}if(U.ii=!0,JJ.state.isInitialized=!0,i(),U.rfn(),I&&U.it.length>0){let m=U.gsp(U.it.length-1,U.hc,U.ch,U.it.length,"end");U.sst(m),U.ls=m,U.rfn()}return k1(U,b,L,A,T,T0,s,F0,JJ,I,y,sJ,oJ,nJ,r0,GJ,()=>{},()=>{if(V)clearTimeout(V)})}var o0=(J,Y,j)=>{let Q=Y.getTotalSize(),X=j===!0||Q>g0,q=Q>g0?g0:Q,Z=Q>0?q/Q:1;return{isCompressed:X,actualSize:Q,virtualSize:q,ratio:Z}},b1=(J,Y,j,Q,X,q)=>{if(Q===0||Y===0)return q.start=0,q.end=-1,q;if(!X.isCompressed||X.ratio===1){let _=j.indexAtOffset(J),F=j.indexAtOffset(J+Y);if(F<Q-1)F++;return q.start=Math.max(0,_),q.end=Math.min(Q-1,Math.max(0,F)),q}let{virtualSize:Z}=X,K=J/Z*Q,B=Math.floor(K),N=Y1(j,Math.max(0,B),Y,Q),v=Math.ceil(K)+N;return q.start=Math.max(0,B),q.end=Math.min(Q-1,Math.max(0,v)),q};var l0=(J,Y,j,Q,X,q,Z)=>{if(!q.isCompressed||Q===0)return j.getOffset(J);if(q.ratio===1)return j.getOffset(J)-Y;let{virtualSize:D}=q,K=Y/D,B=j.getTotalSize(),N=K*B;return j.getOffset(J)-N},H1=(J,Y,j,Q,X,q="start")=>{if(Q===0)return 0;let Z;if(X.isCompressed&&X.ratio!==1){Z=J/Q*X.virtualSize;let N=Y.getSize(J);switch(q){case"center":Z-=(j-N)/2*X.ratio;break;case"end":Z-=(j-N)*X.ratio;break}return Math.max(0,Z)}Z=Y.getOffset(J);let D=Y.getSize(J);switch(q){case"center":Z-=(j-D)/2;break;case"end":Z-=j-D;break}let K=X.virtualSize-j;return Math.max(0,Math.min(Z,K))};var n0=(J,Y,j={},Q="vlist",X=!1)=>{let{autoHide:q=!0,autoHideDelay:Z=1000,minThumbSize:D=30,showOnHover:K=!0,hoverZoneWidth:B=16,showOnViewportEnter:N=!0}=j,v=0,_=0,F=0,R=0,z=!1,G=!1,C=0,y=0,I=0,c=null,x=!1,g=null,$=null,d=X?"width":"height",Q0=X?"translateX":"translateY",s=X?(A)=>A.clientX:(A)=>A.clientY,P=X?"left":"top",S=document.createElement("div"),b=document.createElement("div"),u=K?document.createElement("div"):null,k=()=>{if(S.className=`${Q}-scrollbar`,b.className=`${Q}-scrollbar-thumb`,X)S.classList.add(`${Q}-scrollbar--horizontal`);if(S.appendChild(b),J.appendChild(S),u){if(u.className=`${Q}-scrollbar-hover`,X)u.classList.add(`${Q}-scrollbar-hover--horizontal`),u.style.height=`${B}px`;else u.style.width=`${B}px`;J.appendChild(u)}},L=()=>{if(c)clearTimeout(c),c=null},w=()=>{if(!q)return;L(),c=setTimeout(a,Z)},p=()=>{if(v<=_)return;if(L(),!x)S.classList.add(`${Q}-scrollbar--visible`),x=!0;if(q&&!z&&!G)w()},a=()=>{if(z||G)return;S.classList.remove(`${Q}-scrollbar--visible`),x=!1},l=(A,r)=>{v=A,_=r;let i=v>_;if(S.style.display=i?"":"none",!i){a();return}let n=_/v;F=Math.max(D,n*_),b.style[d]=`${F}px`,R=_-F,h(I)},h=(A)=>{if(I=A,v<=_||R<=0)return;let r=v-_,n=Math.min(1,Math.max(0,A/r))*R;b.style.transform=`${Q0}(${n}px)`},T=(A)=>{if(A.target===b)return;let r=S.getBoundingClientRect(),t=s(A)-r[P]-F/2,o=Math.max(0,Math.min(t,R))/R,J0=v-_,q0=o*J0;Y(q0),p()},U=(A)=>{A.preventDefault(),A.stopPropagation(),z=!0,C=s(A),y=I,L(),S.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",V),document.addEventListener("mouseup",H)},V=(A)=>{if(!z)return;let r=s(A)-C,i=R>0?r/R:0,n=v-_,t=i*n,j0=Math.max(0,Math.min(y+t,n)),J0=j0/n*R;if(b.style.transform=`${Q0}(${J0}px)`,$=j0,g===null)g=requestAnimationFrame(()=>{if($!==null)Y($);g=null})},H=()=>{if(z=!1,g!==null)cancelAnimationFrame(g),g=null;if($!==null)Y($),$=null;if(S.classList.remove(`${Q}-scrollbar--dragging`),q&&!G)w();document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",H)},E=()=>{if(N)p()},W=()=>{if(!z){if(G=!1,q)w()}},M=()=>{G=!0,L(),p()},f=()=>{if(G=!1,!z&&q)w()},O=()=>{if(L(),g!==null)cancelAnimationFrame(g),g=null;if(S.removeEventListener("click",T),S.removeEventListener("mouseenter",M),S.removeEventListener("mouseleave",f),b.removeEventListener("mousedown",U),J.removeEventListener("mouseenter",E),J.removeEventListener("mouseleave",W),document.removeEventListener("mousemove",V),document.removeEventListener("mouseup",H),u){if(u.removeEventListener("mouseenter",M),u.removeEventListener("mouseleave",f),u.parentNode)u.parentNode.removeChild(u)}if(S.parentNode)S.parentNode.removeChild(S)};if(k(),S.addEventListener("click",T),S.addEventListener("mouseenter",M),S.addEventListener("mouseleave",f),b.addEventListener("mousedown",U),J.addEventListener("mouseenter",E),J.addEventListener("mouseleave",W),u)u.addEventListener("mouseenter",M),u.addEventListener("mouseleave",f);return{show:p,hide:a,updateBounds:l,updatePosition:h,isVisible:()=>x,destroy:O}};var RJ=(J)=>{let Y=null;return{name:"withScrollbar",priority:30,setup(j){let{dom:Q,config:X}=j,{classPrefix:q,horizontal:Z}=X;if(Y=n0(Q.viewport,(K)=>j.scrollController.scrollTo(K),J??{},q,Z),!Q.viewport.classList.contains(`${q}-viewport--custom-scrollbar`))Q.viewport.classList.add(`${q}-viewport--custom-scrollbar`);Y.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize);let D=Y;j.afterScroll.push((K,B)=>{D.updatePosition(K),D.show()}),j.resizeHandlers.push((K,B)=>{if(D)D.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.contentSizeHandlers.push(()=>{if(D)D.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.destroyHandlers.push(()=>{if(D)D.destroy()})},destroy(){if(Y)Y.destroy(),Y=null}}};var Z4=0.65,B4=0.5,$1=1.7,N4=0.95,W4=0.1,V4=5,_4=100,y1=(J,Y,j,Q=0)=>{if(J<=0)return 0;let X=Y-Q;return Math.max(0,X*(1-j)+Q)},zJ=(J)=>{let Y=J?.force??!1,j=null,Q=0,X=!1,q=0,Z=0,D=null,K=0,B=0,N=null,v=[];return{name:"withScale",priority:20,setup(_){let{dom:F,config:R}=_,{classPrefix:z,horizontal:G}=R,C=y0(_.rawConfig.padding),y=G?C.left+C.right:C.top+C.bottom,I=()=>{let s=_.getVirtualTotal(),P=o0(s,_.sizeCache,Y);if(P.isCompressed&&!X){X=!0,_.scrollController.enableCompression(P);let b=G?F.viewport.scrollLeft:F.viewport.scrollTop;if(G)F.viewport.style.overflowX="hidden";else F.viewport.style.overflow="hidden";if(G)F.viewport.scrollLeft=0;else F.viewport.scrollTop=0;if(b>0)Q=b,Z=b;q=y1(P.virtualSize,_.state.viewportState.containerSize,P.ratio,y),_.updateContentSize(P.virtualSize+q),_.setScrollFns(()=>Q,(U)=>{if(Q=U,Z=U,D!==null)cancelAnimationFrame(D),D=null});let u=()=>{let U=Z-Q;if(_.getVirtualTotal()===0){Q=0,Z=0,D=null,_.scrollController.scrollTo(0);return}if(Math.abs(U)<B4){let V=_.getCachedCompression(),H=Math.max(0,V.virtualSize+q-_.state.viewportState.containerSize);Q=Math.max(0,Math.min(Z,H)),Z=Q,D=null}else{Q+=U*Z4;let H=_.getCachedCompression().virtualSize+q-_.state.viewportState.containerSize;Q=Math.max(0,Math.min(Q,H)),D=requestAnimationFrame(u)}_.scrollController.scrollTo(Q)},k=F.viewport,L=(U)=>{U.preventDefault();let V=_.getCachedCompression(),H=V.virtualSize+q-_.state.viewportState.containerSize;if(Z=Math.max(0,Math.min(Z+U.deltaY*V.ratio*$1,H)),D===null)D=requestAnimationFrame(u)};k.addEventListener("wheel",L,{passive:!1});let w=()=>{if(N!==null)cancelAnimationFrame(N),N=null},p=(U)=>{if(w(),D!==null)cancelAnimationFrame(D),D=null;let V=U.touches[0];if(!V)return;let H=G?V.clientX:V.clientY;K=H,B=Q,v=[{time:performance.now(),y:H}]},a=(U)=>{U.preventDefault();let V=U.touches[0];if(!V)return;let H=G?V.clientX:V.clientY,E=performance.now();if(v.push({time:E,y:H}),v.length>V4)v.shift();let W=K-H,M=_.getCachedCompression(),f=M.virtualSize+q-_.state.viewportState.containerSize,O=Math.max(0,Math.min(B+W*M.ratio*$1,f));Q=O,Z=O,_.scrollController.scrollTo(O)},l=(U)=>{let V=performance.now(),H=v.filter((f)=>V-f.time<_4),E=0;if(H.length>=2){let f=H[0],O=H[H.length-1],A=O.time-f.time;if(A>0)E=(f.y-O.y)/A}if(v=[],Math.abs(E)<W4)return;let W=E*16,M=()=>{if(W*=N4,Math.abs(W)<0.5){N=null;return}let O=_.getCachedCompression().virtualSize+q-_.state.viewportState.containerSize,A=Q+W;if(A=Math.max(0,Math.min(A,O)),A<=0&&W<0||A>=O&&W>0){Q=A,Z=A,_.scrollController.scrollTo(A),N=null;return}Q=A,Z=A,_.scrollController.scrollTo(A),N=requestAnimationFrame(M)};N=requestAnimationFrame(M)};k.addEventListener("touchstart",p,{passive:!0}),k.addEventListener("touchmove",a,{passive:!1}),k.addEventListener("touchend",l,{passive:!0}),k.addEventListener("touchcancel",l,{passive:!0}),_.destroyHandlers.push(()=>{k.removeEventListener("wheel",L),k.removeEventListener("touchstart",p),k.removeEventListener("touchmove",a),k.removeEventListener("touchend",l),k.removeEventListener("touchcancel",l)});let h=F.viewport.querySelector(`.${z}-scrollbar`),T=()=>{if((G?F.viewport.scrollLeft:F.viewport.scrollTop)!==0)if(G)F.viewport.scrollLeft=0;else F.viewport.scrollTop=0};if(k.addEventListener("scroll",T,{passive:!0}),_.destroyHandlers.push(()=>{k.removeEventListener("scroll",T)}),!h){if(j=n0(F.viewport,(V)=>_.scrollController.scrollTo(V),{},z,G),!F.viewport.classList.contains(`${z}-viewport--custom-scrollbar`))F.viewport.classList.add(`${z}-viewport--custom-scrollbar`);j.updateBounds(P.virtualSize,_.state.viewportState.containerSize);let U=j;_.afterScroll.push((V,H)=>{if(U)U.updatePosition(V),U.show()}),_.resizeHandlers.push((V,H)=>{if(U){let E=_.getCachedCompression();U.updateBounds(E.virtualSize,_.state.viewportState.containerSize)}})}}else if(!P.isCompressed&&X){if(X=!1,D!==null)cancelAnimationFrame(D),D=null;if(N!==null)cancelAnimationFrame(N),N=null;if(Q=0,Z=0,v=[],_.setScrollFns(G?()=>F.viewport.scrollLeft:()=>F.viewport.scrollTop,G?(b)=>{F.viewport.scrollLeft=b}:(b)=>{F.viewport.scrollTop=b}),G)F.viewport.scrollLeft=0;else F.viewport.scrollTop=0;if(_.scrollController.disableCompression(),G)F.viewport.style.overflowX="auto";else F.viewport.style.overflow="auto";if(j)j.destroy(),j=null;q=0,_.updateContentSize(P.actualSize)}else if(P.isCompressed)_.scrollController.updateConfig({compression:P}),q=y1(P.virtualSize,_.state.viewportState.containerSize,P.ratio,y),_.updateContentSize(P.virtualSize+q);if(j)j.updateBounds(P.virtualSize+q,_.state.viewportState.containerSize);let S=_.state.viewportState;if(S.isCompressed=P.isCompressed,S.compressionRatio=P.ratio,S.totalSize=P.virtualSize+q,S.actualSize=P.actualSize,_.state.cachedCompression={state:P,totalItems:s},X){let b=Math.max(0,P.virtualSize+q-_.state.viewportState.containerSize),u=Q;if(u>b)u=b;else if(u<0)u=0;if(u!==Q){if(D!==null)cancelAnimationFrame(D),D=null;if(N!==null)cancelAnimationFrame(N),N=null;_.scrollController.scrollTo(u)}}for(let b=0;b<_.contentSizeHandlers.length;b++)_.contentSizeHandlers[b]()};_.updateCompressionMode=I;let c=_.getCachedCompression.bind(_);_.getCachedCompression=()=>{if(_.state.cachedCompression)return _.state.cachedCompression.state;return c()},_.setVisibleRangeFn((s,P,S,b,u)=>{x=null,g=null;let k=o0(b,S,Y);b1(s,P,S,b,k,u)}),_.setScrollToPosFn((s,P,S,b,u)=>{let k=o0(b,P,Y);return H1(s,P,S,b,k,u)});let x=null,g=null;_.setPositionElementFn((s,P)=>{let S=_.getVirtualTotal(),b=o0(S,_.sizeCache,Y);if(b.isCompressed){let u=_.scrollController.getScrollTop();if(x===null||P<g)g=P,x=Math.round(l0(P,u,_.sizeCache,S,_.state.viewportState.containerSize,b));let k=x+_.sizeCache.getOffset(P)-_.sizeCache.getOffset(g),L=_.config.horizontal;s.style.transform=L?`translateX(${k}px)`:`translateY(${k}px)`}else{let u=Math.round(_.sizeCache.getOffset(P)),k=_.config.horizontal;s.style.transform=k?`translateX(${u}px)`:`translateY(${u}px)`}});let $=G?C.left:C.top,d=G?C.right:C.bottom,Q0=_.getItemToScrollIndexFn();_.methods.set("_scrollItemIntoView",(s)=>{let P=_.getCachedCompression(),S=_.state.viewportState.containerSize,b=_.state.viewportState.scrollPosition,u=_.getVirtualTotal(),{visibleRange:k}=_.state.viewportState,L=Q0(s),w=jJ(L,_.sizeCache,b,S,$,d,P,u,k);if(w!==b)_.scrollController.scrollTo(w)}),I(),_.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(D!==null)cancelAnimationFrame(D),D=null;if(N!==null)cancelAnimationFrame(N),N=null})}}};var P1=(J={})=>{let{chunkSize:Y=100,maxCachedItems:j=5000,evictionBuffer:Q=200,onEvict:X}=J,q=new Map,Z=0,D=0,K=(k)=>{let L=q.get(k);if(!L)L={items:Array(Y),count:0,lastAccess:Date.now()},q.set(k,L);else L.lastAccess=Date.now();return L},B=(k)=>{return Math.floor(k/Y)},N=(k)=>{return k%Y},v=()=>Z,_=(k)=>{Z=k},F=(k)=>{if(k<0||k>=Z)return;let L=B(k),w=q.get(L);if(!w)return;return w.items[N(k)]},R=(k)=>{if(k<0||k>=Z)return!1;let L=B(k),w=q.get(L);if(!w)return!1;return w.items[N(k)]!==void 0},z=(k,L)=>{let w=B(k),p=K(w),a=N(k),l=p.items[a]===void 0;if(p.items[a]=L,l)p.count++,D++;if(k>=Z)Z=k+1},G=(k,L)=>{for(let w=0;w<L.length;w++){let p=L[w];if(p!==void 0)z(k+w,p)}},C=(k)=>{if(k<0||k>=Z)return!1;let L=B(k),w=q.get(L),p=N(k);if(!(w!==void 0&&w.items[p]!==void 0))return!1;let l=L,h=Array.from(q.keys()).filter((U)=>U>=l).sort((U,V)=>U-V),T=[];for(let U of h){let V=q.get(U),H=U*Y;for(let E=0;E<Y;E++){if(V.items[E]===void 0)continue;let W=H+E;if(W<=k)continue;T.push({oldIndex:W,item:V.items[E]})}}if(w.items[p]=void 0,w.count--,D--,w.count===0)q.delete(L);for(let{oldIndex:U}of T){let V=B(U),H=q.get(V);if(!H)continue;let E=N(U);if(H.items[E]!==void 0){if(H.items[E]=void 0,H.count--,D--,H.count===0)q.delete(V)}}for(let{oldIndex:U,item:V}of T){let H=U-1,E=B(H),W=K(E),M=N(H);W.items[M]=V,W.count++,D++}return Z--,!0},y=(k,L)=>{let w=[];for(let p=k;p<=L&&p<Z;p++)w.push(F(p));return w},I=(k,L)=>{for(let w=k;w<=L&&w<Z;w++)if(!R(w))return!1;return!0},c=()=>{let k=[],L=null,w=Array.from(q.keys()).sort((p,a)=>p-a);for(let p of w){let a=q.get(p);if(!a)continue;let l=p*Y;for(let h=0;h<Y;h++){let T=l+h;if(T>=Z)break;if(a.items[h]!==void 0)if(L===null)L={start:T,end:T};else if(T===L.end+1)L.end=T;else k.push(L),L={start:T,end:T};else if(L!==null)k.push(L),L=null}}if(L!==null)k.push(L);return k},x=(k,L)=>{let w=[],p=null;for(let a=k;a<=L&&a<Z;a++)if(!R(a))if(p===null)p={start:a,end:a};else p.end=a;else if(p!==null)w.push(p),p=null;if(p!==null)w.push(p);return w},g=(k)=>{return q.has(k)},$=(k)=>{let L=q.get(k);if(L)L.lastAccess=Date.now()},d=(k,L)=>{if(k>L||q.size===0)return;let w=Date.now(),p=B(Math.max(0,k)),a=B(Math.min(Z-1,L));for(let l=p;l<=a;l++){let h=q.get(l);if(h)h.lastAccess=w}},Q0=(k,L)=>{if(D<=j)return 0;let w=Math.max(0,k-Q),p=Math.min(Z-1,L+Q),a=B(w),l=B(p),h=0,T=[];for(let[U,V]of q)if(U<a||U>l)h+=V.count,T.push(U),D-=V.count,q.delete(U);if(h>0&&X)X(h,T);return h},s=()=>{if(D<=j)return 0;let k=Array.from(q.entries()).sort(([,p],[,a])=>p.lastAccess-a.lastAccess),L=0,w=[];for(let[p,a]of k){if(D<=j)break;L+=a.count,D-=a.count,w.push(p),q.delete(p)}if(L>0&&X)X(L,w);return L},P=()=>{return{totalItems:Z,cachedItems:D,cachedChunks:q.size,chunkSize:Y,maxCachedItems:j,memoryEfficiency:Z>0?1-D/Z:1}},S=()=>D,b=()=>{q.clear(),D=0};return{chunkSize:Y,maxCachedItems:j,getTotal:v,setTotal:_,get:F,has:R,set:z,setRange:G,delete:C,getRange:y,isRangeLoaded:I,getLoadedRanges:c,findUnloadedRanges:x,getChunkIndex:B,isChunkLoaded:g,touchChunk:$,touchChunksForRange:d,evictDistant:Q0,evictToLimit:s,getStats:P,getCachedCount:S,clear:b,reset:()=>{b(),Z=0}}},D4=(J)=>{if(J.length===0)return[];let Y=[...J].sort((Q,X)=>Q.start-X.start),j=[{...Y[0]}];for(let Q=1;Q<Y.length;Q++){let X=Y[Q],q=j[j.length-1];if(X.start<=q.end+1)q.end=Math.max(q.end,X.end);else j.push({...X})}return j},w1=(J,Y,j)=>{let Q=Math.floor(J.start/j)*j,X=Math.ceil((J.end+1)/j)*j-1,q={start:Q,end:X};if(Y.length===0)return[q];let Z=[],D=D4(Y),K=q.start;for(let B of D){if(B.end<K)continue;if(B.start>q.end)break;if(B.start>K)Z.push({start:K,end:Math.min(B.start-1,q.end)});if(K=B.end+1,K>q.end)break}if(K<=q.end)Z.push({start:K,end:q.end});return Z};var R1=(J={})=>{let{maskCharacter:Y=E1,maxSampleSize:j=A1}=J,Q=[],X=!1,q=(N)=>{if(X||N.length===0)return;let v=Math.min(N.length,j);for(let _=0;_<v;_++){let F=N[_];if(!F||typeof F!=="object")continue;let R={};for(let[z,G]of Object.entries(F)){if(z.startsWith("_")||z==="id")continue;R[z]=String(G??"").length}if(Object.keys(R).length>0)Q.push(R)}X=!0},Z=()=>X,D=(N)=>{let v={id:`${P0}${N}`,[FJ]:!0,_index:N};if(Q.length===0)return v.label=Y.repeat(12),v;let _=Q[N%Q.length];for(let[F,R]of Object.entries(_))v[F]=Y.repeat(Math.max(1,R));return v};return{analyzeStructure:q,hasAnalyzedStructure:Z,generate:D,generateRange:(N,v)=>{let _=[];for(let F=N;F<=v;F++)_.push(D(F));return _},clear:()=>{Q=[],X=!1}}},ZJ=(J)=>{if(!J||typeof J!=="object")return!1;return J[FJ]===!0};var G4=50,z1=(J={})=>{let{adapter:Y,initialItems:j,initialTotal:Q,storage:X,placeholder:q,pageSize:Z=G4,onStateChange:D,onItemsLoaded:K,onItemsEvicted:B}=J,N=P1({...X,onEvict:(o,J0)=>{B?.(o),d()}}),v=null,_=()=>{if(!v)v=R1(q);return v},F=new Map,R=!1,z,G=!0,C,y,I=[],c=0,x=new Map,g=new Map,$=()=>{for(let o of g.values())o.abort();g.clear(),x.clear()},d=()=>{D?.(w())},Q0=()=>{F.clear();let o=N.getLoadedRanges();for(let J0 of o)for(let q0=J0.start;q0<=J0.end;q0++){let U0=N.get(q0);if(U0&&!ZJ(U0))F.set(U0.id,q0)}},s=(o,J0)=>{if(!ZJ(J0))F.set(J0.id,o)},P=(o)=>{F.delete(o)},S=(o,J0)=>{return`${o}-${J0}`},b=()=>N.getTotal(),u=()=>N.getCachedCount(),k=()=>R,L=()=>G,w=()=>({total:N.getTotal(),cached:N.getCachedCount(),isLoading:R,pendingRanges:I,error:z,hasMore:G,cursor:C}),p=()=>N,a=()=>_(),l=(o)=>{let J0=N.get(o);if(J0!==void 0)return J0;if(o>=0&&o<N.getTotal())return _().generate(o);return},h=(o)=>{let J0=F.get(o);if(J0===void 0)return;return N.get(J0)},T=(o)=>{return F.get(o)??-1},U=(o)=>{let J0=N.get(o);return J0!==void 0&&!ZJ(J0)},V=(o,J0)=>{let q0=[],U0=N.getTotal(),K0=0,Z0=0;N.touchChunksForRange(o,Math.min(J0,U0-1));for(let W0=o;W0<=J0&&W0<U0;W0++){let M0=N.get(W0);if(M0!==void 0)q0.push(M0),K0++;else q0.push(_().generate(W0)),Z0++}return q0},H=(o)=>{N.setTotal(o),G=N.getCachedCount()<o,d()},E=(o,J0=0,q0)=>{if(Y&&o.length>0){let U0=_();if(!U0.hasAnalyzedStructure())U0.analyzeStructure(o)}for(let U0=0;U0<o.length;U0++){let K0=o[U0];if(K0!==void 0){let Z0=J0+U0;N.set(Z0,K0),s(Z0,K0)}}if(q0!==void 0)N.setTotal(q0);else if(J0+o.length>N.getTotal())N.setTotal(J0+o.length);if(N.getCachedCount()>=N.getTotal()&&N.getTotal()>0)G=!1;d(),K?.(o,J0,N.getTotal())},W=(o,J0)=>{let q0=N.get(o);if(!q0)return!1;let U0=q0.id,K0={...q0,...J0};if(N.set(o,K0),J0.id!==void 0&&J0.id!==U0)P(U0);return s(o,K0),d(),!0},M=(o)=>{let J0=F.get(o);if(J0===void 0)return!1;if(!N.delete(J0))return!1;return Q0(),$(),d(),!0},f=async(o,J0)=>{if(!Y)return;let q0=S(o,J0);if(x.has(q0))return;let U0=N.getLoadedRanges(),K0=w1({start:o,end:J0},U0,N.chunkSize);if(K0.length===0)return;let Z0=N.chunkSize,W0=Z0*2;for(let[B0,O0]of g){let A0=B0.indexOf("-"),G0=parseInt(B0.slice(0,A0),10);if(Math.abs(G0-o)>W0)O0.abort(),g.delete(B0),x.delete(B0)}let M0=[];for(let B0 of K0){let O0=Math.floor(B0.start/Z0),A0=Math.floor(B0.end/Z0);for(let G0=O0;G0<=A0;G0++){let V0=G0*Z0,b0=V0+Z0-1,D0=S(V0,b0);if(!M0.some((F0)=>F0.start===V0)&&!x.has(D0))M0.push({start:V0,end:b0})}}let X0=[];for(let B0 of K0){let O0=Math.floor(B0.start/Z0),A0=Math.floor(B0.end/Z0);for(let G0=O0;G0<=A0;G0++){let V0=G0*Z0,b0=V0+Z0-1,D0=S(V0,b0);if(x.has(D0)){let F0=x.get(D0);if(!X0.includes(F0))X0.push(F0)}}}for(let B0 of M0){let O0=S(B0.start,B0.end),A0=new AbortController;g.set(O0,A0);let G0=(async()=>{I.push(B0),R=!0,z=void 0,d();try{let V0=B0.end-B0.start+1,b0={offset:B0.start,limit:V0,cursor:B0.start===y?C:void 0,signal:A0.signal},D0=await Y.read(b0);if(E(D0.items,B0.start,D0.total),D0.cursor)C=D0.cursor,y=B0.start+D0.items.length;let F0=B0.start+D0.items.length;if(F0>=c){if(c=F0,D0.hasMore!==void 0)G=D0.hasMore;else if(D0.total!==void 0)G=F0<D0.total}}catch(V0){if(V0?.name==="AbortError")return;z=V0 instanceof Error?V0:Error(String(V0))}finally{x.delete(O0),g.delete(O0),I=I.filter((V0)=>V0.start!==B0.start||V0.end!==B0.end),R=x.size>0,d()}})();x.set(O0,G0),X0.push(G0)}await Promise.all(X0)},O=async(o,J0)=>{if(N.isRangeLoaded(o,J0))return;await f(o,J0)},A=async()=>{if(!Y)return;await f(0,Z-1)},r=async()=>{if(!Y||R||!G)return!1;let o=N.getCachedCount(),J0=N.getTotal(),q0=o,U0=Math.min(q0+Z-1,J0>0?J0-1:q0+Z-1);if(q0>=J0&&J0>0)return G=!1,!1;return await f(q0,U0),N.getCachedCount()>o},i=async()=>{if(N.clear(),N.setTotal(0),F.clear(),v)v.clear();$(),I=[],R=!1,C=void 0,y=void 0,G=!0,c=0,z=void 0,d()},n=(o,J0)=>{if(N.evictDistant(o,J0)>0)Q0()},t=()=>{N.clear(),F.clear(),C=void 0,y=void 0,z=void 0,I=[],R=!1,d()},j0=()=>{if(N.reset(),F.clear(),v)v.clear();C=void 0,y=void 0,G=!0,c=0,z=void 0,I=[],R=!1,d()};if(j&&j.length>0)E(j,0,Q??j.length);else if(Q!==void 0)N.setTotal(Q),d();return{getState:w,getTotal:b,getCached:u,getIsLoading:k,getHasMore:L,getStorage:p,getPlaceholders:a,getItem:l,getItemById:h,getIndexById:T,isItemLoaded:U,getItemsInRange:V,setTotal:H,setItems:E,updateItem:W,removeItem:M,loadRange:f,ensureRange:O,loadInitial:A,loadMore:r,reload:i,evictDistant:n,clear:t,reset:j0}};var CJ=(J)=>{let{adapter:Y,loading:j,storage:Q,total:X,autoLoad:q=!0}=J,Z=j?.cancelThreshold??M1,D=j?.preloadThreshold??O1,K=j?.preloadAhead??G1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(B){let{emitter:N}=B,v=B.config.reverse,_=B.methods.get("_getGridLayout"),F=(P)=>{if(_){let S=_();if(S){let b=B.dataManager.getTotal();return S.getItemRange(P.start,P.end,b)}}return P},R=z1({adapter:Y,...X!==void 0&&{initialTotal:X},pageSize:Q?.chunkSize??u0,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(B.state.isInitialized){let P=B.getVirtualTotal();B.sizeCache.rebuild(P),B.updateCompressionMode();let S=B.getCachedCompression();B.state.viewportState.totalSize=S.virtualSize,B.state.viewportState.actualSize=S.actualSize,B.state.viewportState.isCompressed=S.isCompressed,B.state.viewportState.compressionRatio=S.ratio,B.updateContentSize(S.virtualSize),B.renderIfNeeded()}},onItemsLoaded:(P,S,b)=>{if(B.state.isInitialized)B.forceRender(),N.emit("load:end",{items:P,total:b,offset:S})}});B.replaceDataManager(R);let z=null,G=null,C=0,y=!1,I=null,c=120,x=(P=!1)=>{if(y=!1,G=null,P)z=null;if(I!==null)clearTimeout(I),I=null},g=()=>{if(!G)return;G=null;let{renderRange:P}=B.state.viewportState;if(P.end<P.start)return;z=null;let S=F(P);B.dataManager.ensureRange(S.start,S.end).catch((b)=>{N.emit("error",{error:b,context:"ensureRange"})})};B.afterScroll.push((P,S)=>{if(B.state.isDestroyed)return;let b=B.scrollController.getVelocity(),k=B.scrollController.isTracking()&&b<=Z;if(C>Z&&b<=Z)y=!0;else if(y&&b>Z)x();if(y&&b<0.5)x(!0);if(C=b,(B.scrollController.isAtTop()||B.scrollController.isAtBottom())&&(y||G))x(!0),k=!0;let w=y&&b>0.5;if(k&&!B.dataManager.getIsLoading()&&B.dataManager.getHasMore()){if(v){if(P<LJ)N.emit("load:start",{offset:B.dataManager.getCached(),limit:u0}),B.dataManager.loadMore().catch((l)=>{N.emit("error",{error:l,context:"loadMore"})})}else if(B.state.viewportState.totalSize-P-B.state.viewportState.containerSize<LJ)N.emit("load:start",{offset:B.dataManager.getCached(),limit:u0}),B.dataManager.loadMore().catch((h)=>{N.emit("error",{error:h,context:"loadMore"})})}let{renderRange:p}=B.state.viewportState;if(!z||p.start!==z.start||p.end!==z.end){if(z={start:p.start,end:p.end},k&&!w){if(G=null,I!==null)clearTimeout(I),I=null;let l=F(p),h=l.start,T=l.end,U=_?B.dataManager.getTotal():B.getVirtualTotal();if(b>D)if(S==="down")T=Math.min(l.end+K,U-1);else h=Math.max(l.start-K,0);B.dataManager.ensureRange(h,T).catch((V)=>{N.emit("error",{error:V,context:"ensureRange"})})}else if(G={start:p.start,end:p.end},w){if(I!==null)clearTimeout(I);I=setTimeout(()=>{I=null,g(),x()},c)}}});let $=200,d=null;B.afterScroll.push((P,S)=>{if(d!==null)clearTimeout(d);d=setTimeout(()=>{d=null,g(),x()},$)}),B.destroyHandlers.push(()=>{if(d!==null)clearTimeout(d),d=null;x()});let Q0=()=>{if(B.state.isDestroyed)return;z=null;let{renderRange:P}=B.state.viewportState;if(P.end>0){let S=F(P);B.dataManager.ensureRange(S.start,S.end).catch((b)=>{N.emit("error",{error:b,context:"ensureRange"})})}g()};window.addEventListener("online",Q0),B.destroyHandlers.push(()=>{window.removeEventListener("online",Q0)}),N.on("load:start",()=>{B.dom.root.setAttribute("aria-busy","true")}),N.on("load:end",()=>{B.dom.root.removeAttribute("aria-busy")}),B.methods.set("loadVisibleRange",async()=>{z=null,G=null,B.forceRender();let{renderRange:P}=B.state.viewportState;if(P.end>0){let S=F(P);N.emit("load:start",{offset:S.start,limit:S.end-S.start+1}),await B.dataManager.ensureRange(S.start,S.end)}}),B.methods.set("reload",async(P)=>{z=null,G=null;let S=P?.snapshot,b=S!=null&&(S.total??0)>0&&S.index>0,u=b||P?.skipInitialLoad===!0;if(B.invalidateRendered(),await B.dataManager.reload(),!b)B.scrollController.scrollTo(0);if(!u){N.emit("load:start",{offset:0,limit:u0}),await B.dataManager.loadInitial(),B.forceRender();let{renderRange:k}=B.state.viewportState;if(k.end>0){let L=F(k);await B.dataManager.ensureRange(L.start,L.end)}}if(b){let k=B.methods.get("restoreScroll");if(k)k(S)}});let s=!1;if(B.methods.set("_cancelAutoLoad",()=>{s=!0}),q)queueMicrotask(()=>{if(s)return;N.emit("load:start",{offset:0,limit:u0}),B.dataManager.loadInitial().catch((P)=>{N.emit("error",{error:P,context:"loadInitial"})})});else if(X!==void 0)B.dataManager.setTotal(X)}}};var BJ=(J)=>J==null?0:typeof J==="function"?J():J,vJ=(J)=>{let Y=null,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(Q){let{dom:X,state:q,config:Z,emitter:D}=Q;if(X.root.style.overflow="visible",X.root.style.height="auto",Z.horizontal)X.viewport.style.overflowX="visible",X.viewport.style.overflowY="visible";else X.viewport.style.overflow="visible";X.viewport.classList.remove(`${Z.classPrefix}-viewport--custom-scrollbar`),Q.disableViewportResize(),Q.disableWheelHandler(),Q.setScrollTarget(window);let K=null;if(Q.setScrollFns(()=>{let _=X.viewport.getBoundingClientRect();return Math.max(0,Z.horizontal?-_.left:-_.top)},(_)=>{let F=X.viewport.getBoundingClientRect();if(Z.horizontal){let R=F.left+window.scrollX;window.scrollTo({left:R+_,top:window.scrollY,behavior:"instant"})}else{let R=F.top+window.scrollY;window.scrollTo({left:window.scrollX,top:R+_,behavior:"instant"})}}),Q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),q.viewportState.containerSize=window.innerHeight,j){let _=Z.horizontal,F=Q.getItemToScrollIndexFn();Q.setScrollToPosFn((R,z,G,C,y)=>{let I=BJ(_?j.left:j.top),c=BJ(_?j.right:j.bottom);if(C===0)return 0;let x=Math.max(0,Math.min(R,C-1)),g=z.getOffset(x),$=z.getSize(x),d=z.getTotalSize(),Q0=Math.max(0,d-G+c),s;switch(y){case"start":s=g-I;break;case"center":{let P=G-I-c;s=g-I-(P-$)/2;break}case"end":s=g-G+$+c;break}return Math.max(-I,Math.min(s,Q0))}),Q.methods.set("_scrollItemIntoView",(R)=>{let z=F(R),G=_?window.innerWidth:window.innerHeight,C=BJ(_?j.left:j.top),y=BJ(_?j.right:j.bottom),I=X.viewport.getBoundingClientRect(),c=_?window.scrollX:window.scrollY,x=(_?I.left:I.top)+c,g=K??c,$=x-g,d=Q.sizeCache.getOffset(z),Q0=Q.sizeCache.getSize(z),s=$+d,P=s+Q0,S=C,b=G-y,u=g;if(s<S)u=x+d-S;else if(P>b)u=x+d+Q0-b;if(u!==g)if(K=u,_)window.scrollTo({left:u,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:u,behavior:"instant"})})}let{innerHeight:B,innerWidth:N}=window,v=()=>{let{innerWidth:_,innerHeight:F}=window,R=Z.horizontal?_:F,z=Z.horizontal?N:B;if(Math.abs(R-z)<=1)return;B=F,N=_,q.viewportState.containerSize=F,D.emit("resize",{width:_,height:F});for(let G=0;G<Q.resizeHandlers.length;G++)Q.resizeHandlers[G](_,F);Q.renderIfNeeded()};window.addEventListener("resize",v,{passive:!0}),Y=()=>{window.removeEventListener("resize",v)},Q.destroyHandlers.push(Y)},destroy(){if(Y)Y(),Y=null}}};var SJ=(J,Y)=>{let j=0,Q=J.length-1;while(j<Q){let X=j+Q+1>>>1;if(J[X].headerLayoutIndex<=Y)j=X;else Q=X-1}return j},C1=(J,Y)=>{let j=0,Q=J.length-1;while(j<Q){let X=j+Q+1>>>1;if(J[X].firstDataIndex<=Y)j=X;else Q=X-1}return j},v1=(J,Y)=>{if(J===0)return[];let j=[],Q=Y(0),X=0,q=0;for(let Z=1;Z<J;Z++){let D=Y(Z);if(D!==Q){let K=Z-X;j.push({key:Q,groupIndex:j.length,headerLayoutIndex:q,firstDataIndex:X,count:K}),q=q+1+K,Q=D,X=Z}}return j.push({key:Q,groupIndex:j.length,headerLayoutIndex:q,firstDataIndex:X,count:J-X}),j},fJ=(J,Y)=>{if(J.length===0||Y.length===0)return[];let j=J.length+Y.length,Q=Array(j),X=0;for(let q of Y){Q[X]={id:`__group_header_${q.groupIndex}`,__groupHeader:!0,groupKey:q.key,groupIndex:q.groupIndex},X++;for(let Z=0;Z<q.count;Z++)Q[X]=J[q.firstDataIndex+Z],X++}return Q},IJ=(J,Y,j=!1)=>{let Q=typeof Y==="number"?(X)=>Y:Y;return(X)=>{let q=J.getEntry(X);if(q.type==="header"){if(j&&q.group.groupIndex===0)return 0;return J.getHeaderHeight(q.group.groupIndex)}return Q(q.dataIndex)}},S1=(J,Y)=>{let j=v1(J,Y.getGroupForIndex),Q=J+j.length,X=Y.header?.height??Y.header?.width??Y.headerHeight;return{get totalEntries(){return Q},get groupCount(){return j.length},get groups(){return j},getEntry:(_)=>{if(j.length===0)return{type:"item",dataIndex:_,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let F=SJ(j,_),R=j[F];if(_===R.headerLayoutIndex)return{type:"header",group:R};let z=_-R.headerLayoutIndex-1;return{type:"item",dataIndex:R.firstDataIndex+z,group:R}},layoutToDataIndex:(_)=>{if(j.length===0)return _;let F=SJ(j,_),R=j[F];if(_===R.headerLayoutIndex)return-1;let z=_-R.headerLayoutIndex-1;return R.firstDataIndex+z},dataToLayoutIndex:(_)=>{if(j.length===0)return _;let F=C1(j,_),R=j[F],z=_-R.firstDataIndex;return R.headerLayoutIndex+1+z},getGroupAtLayoutIndex:(_)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=SJ(j,_);return j[F]},getGroupAtDataIndex:(_)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=C1(j,_);return j[F]},getHeaderHeight:typeof X==="number"?(_)=>X:(_)=>{let F=j[_];if(!F)return 0;return X(F.key,_)},rebuild:(_)=>{j=v1(_,Y.getGroupForIndex),Q=_+j.length}}};var f1=(J,Y,j,Q,X,q=!1,Z=0)=>{let D=q?"width":"height",K=q?"height":"width",B=q?"X":"Y",N=(V,H)=>{V.style[D]=`${H}px`},v=document.createElement("div");v.className=`${X}-sticky-header`,v.setAttribute("role","presentation"),v.setAttribute("aria-hidden","true"),v.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(q?`top:0;bottom:0;left:${Z||0}px`:`top:${Z||0}px`);let _=()=>{let V=document.createElement("div");return V.className="sticky-group",V.style.position="absolute",V.style.willChange="transform",V.style[K]="100%",V},F=_(),R=_();v.append(F,R),J.insertBefore(v,J.firstChild);let z=F,G=R,C=Y.groups,y=[],I=[],c=0,x=()=>{C=Y.groups,c=C.length,y=Array(c),I=Array(c);for(let V=0;V<c;V++)y[V]=j.getOffset(C[V].headerLayoutIndex),I[V]=Y.getHeaderHeight(V)};x();let g=-1,$=0,d=-1,Q0=!1,s=0,P=!1,S=(V,H)=>{Q(V,H);let E=I[H];return N(V,E),E},b=(V)=>{V.replaceChildren(),V.style.transform=""},u=(V)=>{if(V===g)return;if(g=V,$=0,V<0||V>=c){b(z);return}$=S(z,V),N(v,$),z.style.transform=""},k=(V)=>{if(V===s)return;s=V;let H=Math.round(V);z.style.transform=`translate${B}(${H}px)`,G.style.transform=`translate${B}(${H+$}px)`},L=()=>{s=0,z.style.transform="",G.style.transform=""},w=()=>{if(!P)return;let V=z;z=G,G=V,g=d,$=g>=0?I[g]:0,N(v,$),b(G),d=-1,P=!1,L()},p=()=>{if(!P)return;b(G),d=-1,P=!1,L()},a=()=>{if(Q0)return;Q0=!0,v.style.display=""},l=()=>{if(!Q0)return;Q0=!1,v.style.display="none",b(z),g=-1,$=0,p()},h=(V)=>{if(c===0){l();return}if(V<y[0]){l();return}let H=0,E=c-1;while(H<E){let M=H+E+1>>>1;if(y[M]+I[M]<=V)H=M;else E=M-1}if(!Q0)a();u(H);let W=H+1;if(W<c){let M=y[W]-V;if(M<=0&&M>-$){if(d!==W||!P)d=W,S(G,W),P=!0;k(M)}else if(M<=-$){if(P)w()}else if(P)p()}else if(P)p()},T=()=>{x();let V=g;if(g=-1,$=0,V>=0)u(V)},U=()=>{v.remove(),g=-1,$=0,d=-1,Q0=!1,P=!1};return v.style.display="none",{update:h,refresh:T,show:a,hide:l,destroy:U}};var z0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var I1=(J,Y,j,Q,X,q)=>{if(Q===0)return 0;let Z=Math.max(0,Math.min(J,Q-1)),D=Y.getOffset(Z),K=Y.getSize(Z),B=Y.getTotalSize(),N=Math.max(0,B-j),v;switch(q){case"center":v=D-j/2+K/2;break;case"end":v=D-j+K;break;case"start":default:v=D;break}return Math.max(0,Math.min(v,N))};var i0=(J,Y,j,Q,X="start",q,Z=I1)=>{return Z(J,Y,j,Q,q,X)};var M4=(J,Y)=>{if(J.header){let j=Y?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},hJ=(J)=>{let Y=J.header,j=Y?Y.height??Y.width:J.headerHeight,Q=Y?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(j==null||j<=0)throw Error("[vlist/builder] withGroups: header.height must be a positive number");if(!Q)throw Error("[vlist/builder] withGroups: header.template is required");let X=null,q=null,Z=[],D=[];return{name:"withGroups",priority:10,setup(K){let{dom:B,config:N,rawConfig:v}=K,{classPrefix:_}=N,F=M4(J,N.horizontal),z=v.item.height;Z=v.items?[...v.items]:[];let G=Z.length,C={getGroupForIndex:F.getGroupForIndex,header:{height:F.header.height,template:F.header.template},sticky:F.sticky??!1};X=S1(G,C),D=fJ(Z,X.groups);let y=F.sticky!==!1,I=IJ(X,z,y);K.setSizeConfig(I),K.rebuildSizeCache(D.length),K.dataManager.setItems(D,0,D.length);let c=v.item.template,{template:x}=F.header,g=(l,h,T)=>{if(z0(l))return x(l.groupKey,l.groupIndex);return c(l,h,T)},$=K.methods.get("_getGridLayout"),d=K.methods.get("_replaceGridRenderer"),Q0=K.methods.get("_updateGridLayoutForGroups"),s=K.methods.get("_createGridRenderer"),P=K.methods.get("_getTableLayout"),S=K.methods.get("_updateTableForGroups"),b=K.methods.get("_getTableHeaderHeight");if($&&d&&s){if(Q0)Q0((T)=>{let U=D[T];return!!(U&&z0(U))});let l=$(),h=s(B.items,g,K.sizeCache,l,_,K.getContainerWidth(),()=>K.dataManager.getTotal(),N.ariaIdPrefix);d(h)}else if(P&&S)S((l)=>z0(l),F.header.template);else K.replaceTemplate(g);let u=b?b():0;if(B.root.classList.add(`${_}--grouped`),F.sticky!==!1)if(K.methods.set("_getStickyHeaderHeight",()=>F.header.height),!N.horizontal)B.viewport.style.height=`calc(100% - ${F.header.height}px)`;else B.viewport.style.width=`calc(100% - ${F.header.height}px)`;if(F.sticky!==!1){let l=F.header.template,h=(U,V)=>{let H=X.groups[V];if(!H)return;let E=l(H.key,H.groupIndex);if(typeof E==="string")U.innerHTML=E;else U.replaceChildren(E)};q=f1(B.root,X,K.sizeCache,h,_,N.horizontal,u);let T=q;K.afterScroll.push((U,V)=>{T.update(U)}),q.update(K.scrollController.getScrollTop())}let k=v.item?.striped,L=()=>{if(k!=="data"&&k!=="even"&&k!=="odd")return;let l=new Int32Array(D.length),h=k==="odd"?1:0,T=0;for(let U=0;U<D.length;U++)if(z0(D[U])){if(l[U]=-1,k==="even"||k==="odd")T=0}else l[U]=T+++h;K.setStripeIndexFn((U)=>{if(U<0||U>=l.length)return U;return l[U]})};L();let w=()=>{if(!X)return;X.rebuild(Z.length),D=fJ(Z,X.groups);let l=IJ(X,z,y);if(K.setSizeConfig(l),K.rebuildSizeCache(D.length),K.dataManager.setItems(D,0,D.length),L(),q)q.refresh()};K.methods.set("setItems",(l)=>{Z=l.slice(),w()}),K.methods.set("appendItems",(l)=>{Z.push(...l),w()}),K.methods.set("prependItems",(l)=>{Z.unshift(...l),w()}),K.methods.set("removeItem",(l)=>{Z=Z.filter((h)=>h.id!==l),w()});let{animateScroll:p,cancelScroll:a}=c0(K.scrollController,K.renderIfNeeded);K.methods.set("scrollToIndex",(l,h)=>{let T=X.dataToLayoutIndex(l),{align:U,behavior:V,duration:H}=R0(h),E=K.dataManager.getTotal(),W=K.adjustScrollPosition(i0(T,K.sizeCache,K.state.viewportState.containerSize,E,U,K.getCachedCompression()));if(V==="smooth")p(K.scrollController.getScrollTop(),W,H);else a(),K.scrollController.scrollTo(W)}),K.methods.set("_getItems",()=>Z),K.methods.set("_getTotal",()=>Z.length),K.methods.set("_isGroupHeader",(l)=>{let h=D[l];return!!(h&&z0(h))}),K.destroyHandlers.push(()=>{if(a(),q)q.destroy(),q=null;B.root.classList.remove(`${_}--grouped`)})},destroy(){if(q)q.destroy(),q=null}}};var h1=(J)=>{let Y=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.isHeaderFn,X={row:0,col:0},q=(R)=>{if(R<=0)return 0;if(!Q)return Math.ceil(R/Y);let z=0,G=0,C=0;for(let y=0;y<R;y++)if(Q(y)){if(C++,G>0)z++,G=0;z++,G=0}else if(G++,G>=Y)z++,G=0;if(G>0)z++;return z},Z=(R)=>{return X.row=D(R),X.col=K(R),X},D=(R)=>{if(!Q)return Math.floor(R/Y);let z=0,G=0;for(let C=0;C<=R;C++)if(Q(C)){if(G>0)z++,G=0;if(C===R)return z;z++,G=0}else{if(C===R)return z;if(G++,G>=Y)z++,G=0}return console.warn(`⚠️ getRow(${R}) fell through - returning ${z}`),z},K=(R)=>{if(!Q)return R%Y;if(Q(R))return 0;let z=0;for(let G=0;G<=R;G++)if(Q(G))z=0;else{if(G===R)return z;if(z++,z>=Y)z=0}return z},B=(R,z,G)=>{if(G<=0)return{start:0,end:-1};if(!Q){let x=Math.max(0,R*Y),g=Math.min(G-1,(z+1)*Y-1);return{start:x,end:g}}let C=-1,y=-1,I=0,c=0;for(let x=0;x<G;x++){if(Q(x)){if(c>0)I++,c=0;if(I>=R&&I<=z){if(C===-1)C=x;y=x}I++,c=0}else{if(I>=R&&I<=z){if(C===-1)C=x;y=x}if(c++,c>=Y)I++,c=0}if(I>z&&c===0)break}if(C===-1)return{start:0,end:-1};return{start:C,end:y}},N=(R,z,G)=>{if(z<0||z>=Y)return-1;let C=R*Y+z;if(C<0||C>=G)return-1;return C},v=(R)=>{let z=(Y-1)*j;return Math.max(0,(R-z)/Y)};return{get columns(){return Y},get gap(){return j},update:(R)=>{if(R.columns!==void 0)Y=Math.max(1,Math.floor(R.columns));if(R.gap!==void 0)j=R.gap;if(R.isHeaderFn!==void 0)Q=R.isHeaderFn},getTotalRows:q,getPosition:Z,getRow:D,getCol:K,getItemRange:B,getItemIndex:N,getColumnWidth:v,getColumnOffset:(R,z)=>{let G=v(z);return R*(G+j)}}};var O4=(J=200)=>{let Y=[];return{acquire:()=>{let q=Y.pop();if(q)return q;let Z=document.createElement("div");return Z.setAttribute("role","option"),Z},release:(q)=>{if(q.remove(),Y.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"),Y.push(q)},clear:()=>{Y.length=0}}},E4=1,pJ=(J,Y,j,Q,X,q,Z,D,K=!1)=>{let B=O4(),N=new Map,v=q,_=!1,F=0,R="",z=-1,G={selected:!1,focused:!1},C=(U,V)=>{return G.selected=U,G.focused=V,G},y=`${X}-item ${X}-grid-item`,I=`${X}-item--selected`,c=`${X}-item--focused`,x=`${X}-item--placeholder`,g=`${X}-item--replaced`,$=(U,V)=>{if(typeof V==="string")U.innerHTML=V;else U.replaceChildren(V)},d=(U,V,H)=>{U.classList.toggle(I,V),U.classList.toggle(c,H)},Q0=(U,V)=>{let H=Q.getRow(U);if(V?.compression?.isCompressed)return l0(H,V.scrollPosition,j,V.totalItems,V.containerSize,V.compression,V.rangeStart);return j.getOffset(H)},s=(U,V)=>{let H=_&&Q.getCol(U)===0,E=H?0:Q.getCol(U),W=H?0:Q.getColumnOffset(E,v),M;if(_){let f=Q.getRow(U),O=0,A=new Set;for(let r=0;r<U;r++){let i=Q.getRow(r);if(i<f&&!A.has(i)){let n=j.getSize(r);O+=n,A.add(i)}}M=O}else M=Q0(U,V);if(K)return`translate(${Math.round(M)}px, ${Math.round(W)}px)`;return`translate(${Math.round(W)}px, ${Math.round(M)}px)`},P=(U,V)=>{U.style.transform=V},S=(U,V)=>{let H=U.dataset.id?.startsWith("__group_header"),E=H?v:Q.getColumnWidth(v),W;if(_||H)W=j.getSize(V)-Q.gap;else{let M=Q.getRow(V);W=j.getSize(M)-Q.gap}if(K)U.style.width=`${W}px`,U.style.height=`${E}px`;else U.style.width=`${E}px`,U.style.height=`${W}px`},b=(U,V,H,E,W)=>{let M=B.acquire(),f=C(H,E);if(M.className=y,M.dataset.index=String(U),M.dataset.id=String(V.id),M.dataset.row=String(Q.getRow(U)),M.dataset.col=String(Q.getCol(U)),M.ariaSelected=String(H),D)M.id=`${D}-item-${U}`;if(Z){let r=Z();if(r!==z)z=r,R=String(r);M.setAttribute("aria-setsize",R),M.setAttribute("aria-posinset",String(U+1))}S(M,U);let O=Y(V,U,f);if($(M,O),String(V.id).startsWith(P0))M.classList.add(x);return d(M,H,E),P(M,W),{element:M,lastItemId:V.id,lastSelected:H,lastFocused:E,lastTransform:W,lastSeenFrame:F}},u=(U,V,H,E,W)=>{if(F++,V.start===0&&U.length>0)_=z0(U[0]);for(let[O,A]of N)if(O>=V.start&&O<=V.end)A.lastSeenFrame=F;else if(F-A.lastSeenFrame>E4)B.release(A.element),N.delete(O);let M=!1;if(Z){let O=Z();if(O!==z)z=O,R=String(O),M=!0}let f=null;for(let O=V.start;O<=V.end;O++){let A=O-V.start,r=U[A];if(!r){console.warn(`⚠️ RENDER: Missing item at index ${O} (range: ${V.start}-${V.end}, items.length: ${U.length})`);continue}let i=H.has(r.id),n=O===E,t=N.get(O);if(t){let j0=t.lastItemId!==r.id,o=t.lastSelected!==i,J0=t.lastFocused!==n;if(j0){let U0=String(t.lastItemId),K0=String(r.id),Z0=U0.startsWith(P0),W0=K0.startsWith(P0);if(!W0&&w0(H,O,r.id))i=!0;let M0=C(i,n),X0=Y(r,O,M0);if($(t.element,X0),t.element.dataset.id=K0,t.element.dataset.row=String(Q.getRow(O)),t.element.dataset.col=String(Q.getCol(O)),S(t.element,O),t.element.classList.toggle(x,W0),Z0&&!W0)t.element.classList.add(g),setTimeout(()=>t.element.classList.remove(g),300);t.lastItemId=r.id}if(j0||o||J0)d(t.element,i,n),t.element.ariaSelected=String(i),t.lastSelected=i,t.lastFocused=n;let q0=s(O,W);if(t.lastTransform!==q0)P(t.element,q0),t.lastTransform=q0;if(M)t.element.setAttribute("aria-setsize",R)}else{if(w0(H,O,r.id))i=!0;let j0=s(O,W),o=b(O,r,i,n,j0);if(!f)f=document.createDocumentFragment();f.appendChild(o.element),N.set(O,o)}}if(f)J.appendChild(f)},k=(U)=>{for(let[V,H]of N){let E=s(V,U);if(H.lastTransform!==E)P(H.element,E),H.lastTransform=E}},L=(U,V,H,E)=>{let W=N.get(U);if(!W)return;let M=C(H,E),f=Y(V,U,M);$(W.element,f),d(W.element,H,E),W.element.dataset.id=String(V.id),W.element.ariaSelected=String(H),S(W.element,U),W.lastItemId=V.id,W.lastSelected=H,W.lastFocused=E},w=(U,V,H)=>{let E=N.get(U);if(!E)return;let W=E.lastSelected!==V,M=E.lastFocused!==H;if(W||M)d(E.element,V,H),E.lastSelected=V,E.lastFocused=H},p=(U)=>{return N.get(U)?.element},a=(U)=>{if(Math.abs(U-v)<1)return;v=U;for(let[V,H]of N){S(H.element,V);let E=s(V);P(H.element,E),H.lastTransform=E}},l=()=>{p0(J,N.keys(),(U)=>N.get(U)?.element)},h=()=>{for(let[,U]of N)B.release(U.element);N.clear()};return{render:u,updatePositions:k,updateItem:L,updateItemClasses:w,getElement:p,sortDOM:l,updateContainerWidth:a,clear:h,destroy:()=>{h(),B.clear()}}};var A4=new Set,uJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let Y=null,j=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(Q){let{dom:X,emitter:q,config:Z,rawConfig:D}=Q,{classPrefix:K}=Z;if(Z.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let B=Z.horizontal,N=YJ(y0(D.padding),B),v=()=>{return(B?X.viewport.clientHeight:Q.getContainerWidth())-N},_=D.items?.some((h)=>h.__groupHeader===!0),F={columns:J.columns,gap:J.gap??0};if(_)F.isHeaderFn=(h)=>{let T=Q.dataManager.getItem(h);return!!(T&&T.__groupHeader===!0)};Y=h1(F);let R=Y.gap;Q.setVirtualTotalFn(()=>{let h=Q.dataManager.getTotal();return Y.getTotalRows(h)}),Q.setItemToScrollIndexFn((h)=>Math.floor(h/F.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>B?{ud:1,lr:F.columns,cols:F.columns}:{ud:F.columns,lr:1,cols:F.columns});let z=D.item,G=Z.horizontal?z.width:z.height,C={containerWidth:v(),columns:Y.columns,gap:Y.gap},y={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof G==="function")Q.setSizeConfig((h)=>{let T=C.containerWidth-2,U=(C.columns-1)*C.gap;return y.containerWidth=C.containerWidth,y.columns=C.columns,y.gap=C.gap,y.columnWidth=(T-U)/C.columns,y.row=Y.getRow(h),y.column=Y.getCol(h),y.totalRows=Y.getTotalRows(Q.dataManager.getTotal()),y.totalColumns=C.columns,G(h,y)+C.gap});else if(R>0)Q.setSizeConfig(G+R);if(Q.rebuildSizeCache(),R>0){let h=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let T=h();return T>0?T-C.gap:0}}X.root.classList.add(`${K}--grid`);let I=v(),c=D.item.template,x=()=>{j=pJ(X.items,c,Q.sizeCache,Y,K,I,()=>Q.dataManager.getTotal(),Z.ariaIdPrefix,Z.horizontal),Q.replaceRenderer(j)};x(),Q.setUpdateItemClassesFn((h,T,U)=>{j?.updateItemClasses(h,T,U)}),Q.methods.set("_updateRenderedItem",(h,T,U,V)=>{j?.updateItem(h,T,U,V)}),Q.methods.set("_getGridLayout",()=>Y),Q.methods.set("_getGridConfig",()=>F),Q.methods.set("_replaceGridRenderer",(h)=>{j=h}),Q.methods.set("_createGridRenderer",pJ),Q.methods.set("_updateGridLayoutForGroups",(h)=>{Y.update({isHeaderFn:h});let T=Q.dataManager.getTotal(),U=0;for(let V=0;V<T;V++)if(Y.getCol(V)===0){let H=Q.sizeCache.getSize(V);U+=H}Q.sizeCache.getTotalSize=()=>U,Q.updateContentSize(U),x()}),Q.methods.set("updateGrid",(h)=>{if(h.columns!==void 0){if(!Number.isInteger(h.columns)||h.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");F.columns=h.columns}if(h.gap!==void 0){if(h.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");F.gap=h.gap}if(Y)Y.update(F);let T=v();if(C.containerWidth=T,C.columns=F.columns,C.gap=F.gap??0,j)j.updateContainerWidth(T);Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode();for(let U=0;U<Q.contentSizeHandlers.length;U++)Q.contentSizeHandlers[U]();if(j)j.clear();Q.forceRender()});let g=null,$=null,d=!1,Q0=()=>{if(d)return;d=!0,g=Q.methods.get("_getSelectedIds")??null,$=Q.methods.get("_getFocusedIndex")??null},s=-1,P=-1,S=!0,b=Z.overscan,u={start:0,end:0},k={start:0,end:0},L=()=>{if(Q.state.isDestroyed)return;let h=Q.scrollController.getScrollTop(),T=Q.state.viewportState.containerSize;if(!S&&h===s&&T===P)return;s=h,P=T,S=!1;let U=Q.getVirtualTotal();Q.getVisibleRange(h,T,U,u),k.start=Math.max(0,u.start-b),k.end=Math.min(U-1,u.end+b);let V=Q.state.viewportState;V.scrollPosition=h,V.visibleRange.start=u.start,V.visibleRange.end=u.end,V.renderRange.start=k.start,V.renderRange.end=k.end;let H=Q.state.lastRenderRange,E=V.isCompressed,W=H.start!==k.start||H.end!==k.end;if(!W&&E){j.updatePositions(Q.getCompressionContext());return}let M=Q.dataManager.getTotal(),f=Y.getItemRange(k.start,k.end,M),O=Q.dataManager.getItemsInRange(f.start,f.end),A=E?Q.getCompressionContext():void 0;Q0();let r=g?g():A4,i=$?$():-1;if(j.render(O,f,r,i,A),W)H.start=k.start,H.end=k.end,q.emit("range:change",{range:{start:k.start,end:k.end}})},w=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,S=!0,L()};Q.setRenderFns(L,w);let p=typeof G==="function";Q.resizeHandlers.push((h,T)=>{let U=(B?T:h)-N;if(Math.abs(U-C.containerWidth)<1)return;if(C.containerWidth=U,j)j.updateContainerWidth(U);if(p){Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode();for(let V=0;V<Q.contentSizeHandlers.length;V++)Q.contentSizeHandlers[V]();if(j)j.clear();Q.forceRender()}});let{animateScroll:a,cancelScroll:l}=c0(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",l),Q.methods.set("scrollToIndex",(h,T)=>{let U=Math.floor(h/J.columns),{align:V,behavior:H,duration:E}=R0(T),W=Q.dataManager.getState(),M=Y.getTotalRows(W.total),f=Math.max(0,Math.min(U,M-1)),O=Q.adjustScrollPosition(i0(f,Q.sizeCache,Q.state.viewportState.containerSize,M,V,Q.getCachedCompression()));if(H==="smooth")a(Q.scrollController.getScrollTop(),O,E);else l(),Q.scrollController.scrollTo(O)}),!Q.methods.has("_getTotal"))Q.methods.set("_getTotal",()=>Q.dataManager.getTotal());Q.idleHandlers.push(()=>{if(j)j.sortDOM()}),Q.destroyHandlers.push(()=>{if(l(),j)j.destroy(),j=null;X.root.classList.remove(`${K}--grid`)})},destroy(){if(j)j.destroy(),j=null}}};var p1=(J)=>{let Y=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.containerSize,X=0,q=[],Z=()=>{let G=(Y-1)*j;X=Math.max(0,(Q-G)/Y),q=Array(Y);let C=X+j;for(let y=0;y<Y;y++)q[y]=y*C};Z();let D=[],K=0,B=[],N=(G)=>{let C=0,y=G[0];for(let I=1;I<G.length;I++){let c=G[I];if(c<y)y=c,C=I}return C},v=(G,C)=>{if(G<=0)return K=0,D=[],[];let y=Array(Y).fill(0),I=Array(Y);for(let g=0;g<Y;g++)I[g]=[];let c=Array(G);for(let g=0;g<G;g++){let $=N(y),d=C(g),Q0=y[$];c[g]={index:g,x:q[$],y:Q0,lane:$,size:d,crossSize:X},I[$].push(g),y[$]=Q0+d+j}D=I;let x=0;for(let g=0;g<Y;g++){let $=y[g],d=$>0?$-j:0;if(d>x)x=d}return K=x,c},_=(G)=>{if(G.length===0)return K>0?K:0;if(K>0)return K;let C=Array(Y).fill(0);for(let I of G){let c=I.y+I.size,x=C[I.lane];if(c>x)C[I.lane]=c}let y=0;for(let I=0;I<Y;I++)if(C[I]>y)y=C[I];return y},F=(G,C,y)=>{if(G.length===0||y<=C)return B.length=0,B;if(D.length===0||D.length!==Y)return R(G,C,y);B.length=0;for(let I=0;I<Y;I++){let c=D[I],x=c.length;if(x===0)continue;let g=0,$=x;while(g<$){let d=g+$>>>1,Q0=G[c[d]];if(Q0.y+Q0.size<=C)g=d+1;else $=d}for(let d=g;d<x;d++){let Q0=G[c[d]];if(Q0.y>=y)break;B.push(Q0)}}return B},R=(G,C,y)=>{let I=[];for(let c of G)if(c.y+c.size>C&&c.y<y)I.push(c);return I};return{get columns(){return Y},get gap(){return j},get containerSize(){return Q},update:(G)=>{let C=!1;if(G.columns!==void 0){let y=Math.max(1,Math.floor(G.columns));if(y!==Y)Y=y,C=!0}if(G.gap!==void 0&&G.gap!==j)j=G.gap,C=!0;if(G.containerSize!==void 0&&G.containerSize!==Q)Q=G.containerSize,C=!0;if(C)Z()},calculateLayout:v,getTotalSize:_,getVisibleItems:F}};var L4=(J=200)=>{let Y=[];return{acquire:()=>{let q=Y.pop();if(q)return q;let Z=document.createElement("div");return Z.setAttribute("role","option"),Z},release:(q)=>{if(q.remove(),Y.length<J)q.className="",q.textContent="",q.removeAttribute("style"),q.removeAttribute("data-index"),q.removeAttribute("data-id"),q.removeAttribute("data-lane"),Y.push(q)},clear:()=>{Y.length=0}}},F4=1,u1=(J,Y,j,Q=!1,X,q)=>{let Z=L4(),D=new Map,K=new Set,B=0,N="",v=-1,_={selected:!1,focused:!1},F=(P,S)=>{return _.selected=P,_.focused=S,_},R=`${j}-item ${j}-masonry-item`,z=`${j}-item--selected`,G=`${j}-item--focused`,C=(P,S)=>{if(typeof S==="string")P.innerHTML=S;else P.replaceChildren(S)},y=(P,S,b)=>{P.classList.toggle(z,S),P.classList.toggle(G,b)},I=(P,S)=>{if(Q)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)`},c=(P,S)=>{if(Q)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`},x=(P,S,b,u,k)=>{let L=Z.acquire(),w=F(u,k);if(L.className=R,L.dataset.index=String(P),L.dataset.id=String(S.id),L.dataset.lane=String(b.lane),L.ariaSelected=String(u),q)L.id=`${q}-item-${P}`;if(X){let a=X();if(a!==v)v=a,N=String(a);L.setAttribute("aria-setsize",N),L.setAttribute("aria-posinset",String(P+1))}c(L,b);let p=Y(S,P,w);return C(L,p),y(L,u,k),I(L,b),{element:L,lastItemId:S.id,lastSelected:u,lastFocused:k,lastY:b.y,lastX:b.x,lastSize:b.size,lastCrossSize:b.crossSize,lastSeenFrame:B}},g=(P,S,b,u)=>{B++,K.clear();for(let L=0;L<S.length;L++)K.add(S[L].index);for(let[L,w]of D)if(K.has(L))w.lastSeenFrame=B;else if(B-w.lastSeenFrame>F4)Z.release(w.element),D.delete(L);let k=null;for(let L=0;L<S.length;L++){let w=S[L],p=w.index,a=P(p);if(!a)continue;let l=b.has(a.id),h=p===u,T=D.get(p);if(T){let U=T.lastItemId!==a.id,V=T.lastSelected!==l,H=T.lastFocused!==h,E=T.lastY!==w.y||T.lastX!==w.x,W=T.lastSize!==w.size||T.lastCrossSize!==w.crossSize;if(U){let M=F(l,h),f=Y(a,p,M);C(T.element,f),T.element.dataset.id=String(a.id),T.lastItemId=a.id}if(U||V||H)y(T.element,l,h),T.element.ariaSelected=String(l),T.lastSelected=l,T.lastFocused=h;if(W)c(T.element,w),T.lastSize=w.size,T.lastCrossSize=w.crossSize;if(E)I(T.element,w),T.lastY=w.y,T.lastX=w.x}else{let U=x(p,a,w,l,h);if(!k)k=document.createDocumentFragment();k.appendChild(U.element),D.set(p,U)}}if(k)J.appendChild(k)},$=()=>{for(let{element:P}of D.values())Z.release(P);D.clear(),J.innerHTML=""};return{render:g,getElement:(P)=>D.get(P)?.element,updateItemClasses:(P,S,b)=>{let u=D.get(P);if(!u)return;let k=u.lastSelected!==S,L=u.lastFocused!==b;if(k||L)y(u.element,S,b),u.lastSelected=S,u.lastFocused=b},sortDOM:()=>{p0(J,D.keys(),(P)=>D.get(P)?.element)},clear:$,destroy:()=>{$(),Z.clear()}}};var T4=new Set,k4=100,gJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let Y=null,j=null,Q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(X){let{dom:q,emitter:Z,config:D,rawConfig:K}=X,B=D.classPrefix,N=D.horizontal;if(D.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");q.root.classList.add(`${B}--masonry`);let v=y0(K.padding),_=YJ(v,N),F=h0(v,N),R=()=>{return(N?q.viewport.clientHeight:q.viewport.clientWidth)-_},z={columns:J.columns,gap:J.gap??0,containerSize:R()};Y=p1(z);let G=K.item,C=N&&K.item.width?K.item.width:G.height,y={containerWidth:0,columns:0,gap:0,columnWidth:0},I=typeof C==="function"?(M)=>C(M,y):()=>C,c=()=>{let M=X.dataManager.getTotal(),f=Y;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),Q=f.calculateLayout(M,I),Q0();let A=Y.getTotalSize(Q);X.sizeCache.getTotalSize=()=>A,X.updateContentSize(A)},x=K.item.template;j=u1(q.items,x,B,N,()=>X.dataManager.getTotal(),D.ariaIdPrefix),X.setUpdateItemClassesFn((M,f,O)=>{j?.updateItemClasses(M,f,O)});let g=[],$=new Int32Array(0),d=[],Q0=()=>{let M=z.columns,f=Q.length;if(g=Array.from({length:M},()=>[]),$.length<f)$=new Int32Array(f);for(let O=0;O<f;O++){let A=Q[O],r=g[A.lane].length;g[A.lane].push(O),$[O]=r}d=Array(M);for(let O=0;O<M;O++){let A=g[O],r=new Float64Array(A.length);for(let i=0;i<A.length;i++){let n=Q[A[i]];r[i]=n.y+n.size*0.5}d[O]=r}};X.methods.set("_getNavTotal",()=>X.dataManager.getTotal());let s=(M,f)=>{let O=M.length;if(O===0)return-1;if(O===1)return 0;let A=0,r=O-1;while(A<r){let i=A+r>>1;if(M[i]<f)A=i+1;else r=i}if(A>0&&Math.abs(M[A-1]-f)<=Math.abs(M[A]-f))return A-1;return A};X.methods.set("_navigate",(M,f,O)=>{let A=Q[M];if(!A)return M;let r=A.lane,i=z.columns,n=$[M],t=g[r];switch(N?f==="ArrowDown"?"ArrowRight":f==="ArrowUp"?"ArrowLeft":f==="ArrowRight"?"ArrowDown":f==="ArrowLeft"?"ArrowUp":f:f){case"ArrowDown":{if(n+1<t.length)return t[n+1];return M}case"ArrowUp":{if(n>0)return t[n-1];return M}case"ArrowRight":{if(r>=i-1)return M;let o=r+1,J0=A.y+A.size*0.5,q0=g[o];if(q0.length===0)return M;let U0=s(d[o],J0);return U0>=0?q0[U0]:M}case"ArrowLeft":{if(r<=0)return M;let o=r-1,J0=A.y+A.size*0.5,q0=g[o];if(q0.length===0)return M;let U0=s(d[o],J0);return U0>=0?q0[U0]:M}case"Home":return 0;case"End":return O-1;case"PageDown":{let o=X.state.viewportState.containerSize,J0=A.size>0?A.size:150,q0=Math.max(1,Math.floor(o/J0)),U0=Math.min(n+q0,t.length-1);return t[U0]}case"PageUp":{let o=X.state.viewportState.containerSize,J0=A.size>0?A.size:150,q0=Math.max(1,Math.floor(o/J0)),U0=Math.max(0,n-q0);return t[U0]}}return M}),X.methods.set("_scrollItemIntoView",(M)=>{let f=Q[M];if(!f)return;let O=X.scrollController.getScrollTop(),A=X.state.viewportState.containerSize,r=f.y,i=r+f.size,n=O+A;if(r<O)X.scrollController.scrollTo(X.adjustScrollPosition(Math.max(0,r)));else if(i>n)X.scrollController.scrollTo(X.adjustScrollPosition(i-A))});let P=null,S=null,b=!1,u=()=>{if(b)return;b=!0,P=X.methods.get("_getSelectedIds")??null,S=X.methods.get("_getFocusedIndex")??null},k=(M)=>X.dataManager.getItem(M),L=-1,w=-1,p=!0,a=D.overscan*k4,l=()=>{if(X.state.isDestroyed)return;u();let M=X.scrollController.getScrollTop(),f=X.state.viewportState.containerSize;if(!p&&M===L&&f===w)return;L=M,w=f,p=!1;let O=Math.max(0,M-a),A=M+f+a,r=Y.getVisibleItems(Q,O,A),i=P?P():T4,n=S?S():-1;if(j&&r.length>0)j.render(k,r,i,n);let t=X.state.viewportState;t.scrollPosition=M;let j0=r.length,o=j0>0?r[0].index:0,J0=j0>0?r[j0-1].index:0;t.visibleRange.start=o,t.visibleRange.end=J0,t.renderRange.start=o,t.renderRange.end=J0;let q0=X.state.lastRenderRange;if(q0.start!==o||q0.end!==J0)q0.start=o,q0.end=J0,Z.emit("range:change",{range:{start:o,end:J0}})},h=()=>{X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,p=!0,l()};X.setRenderFns(l,h);let T=(M,f)=>{let O=(N?f:M)-_;if(Y&&Y.containerSize!==O){if(Y.update({containerSize:O}),c(),j)j.clear();h()}};X.resizeHandlers.push(T);let U=()=>{c(),h()},V=X.dataManager,H=(M)=>{if(typeof V[M]!=="function")return;let f=V[M].bind(V);V[M]=(...O)=>{f(...O),U()}};H("setItems"),H("appendItems"),H("prependItems"),H("updateItem"),H("removeItem");let{animateScroll:E,cancelScroll:W}=c0(X.scrollController,X.renderIfNeeded);X.methods.set("cancelScroll",W),X.methods.set("scrollToIndex",(M,f)=>{let O=Q[M];if(!O)return;let{align:A,behavior:r,duration:i}=R0(f),n=O.y,t=X.state.viewportState.containerSize,j0=n;if(A==="center")j0=n-t/2+O.size/2;else if(A==="end"){j0=n-t+O.size;let o=Y.getTotalSize(Q);if(M===Q.length-1)j0=Math.max(0,o+F-t)}if(j0=Math.max(0,j0),j0=X.adjustScrollPosition(j0),r==="smooth")E(X.scrollController.getScrollTop(),j0,i);else W(),X.scrollController.scrollTo(j0)}),c(),X.idleHandlers.push(()=>{if(j)j.sortDOM()}),X.destroyHandlers.push(()=>{if(W(),j)j.destroy();q.root.classList.remove(`${B}--masonry`)})}}};var xJ=(J)=>{let Y=J?.mode??"single",j=J?.followFocus??!1,Q=J?.initial,X=J?.shiftArrowToggle??"origin",q=L1(Q),Z=null,D=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(K){let{dom:B,emitter:N,config:v}=K,{classPrefix:_,ariaIdPrefix:F}=v;if(Y==="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}B.root.classList.add(`${_}--selectable`);let R=K.methods.get("_isGroupHeader"),z=(T)=>R?R(T):!1,G=(T,U,V)=>{if(!R)return T;let H=T;while(H>=0&&H<V){if(!z(H))return H;H+=U}H=T-U;while(H>=0&&H<V){if(!z(H))return H;H-=U}return T},C=new Map,y=()=>{C.clear();let T=K.dataManager.getTotal(),U=K.dataManager.getCached();if(U===0)return;if(U>=T){for(let H=0;H<T;H++){let E=K.dataManager.getItem(H);if(E)C.set(E.id,H)}return}let V=K.dataManager.getStorage();if(V&&typeof V.getLoadedRanges==="function"){let H=V.getLoadedRanges();for(let E of H)for(let W=E.start;W<=E.end;W++){let M=K.dataManager.getItem(W);if(M&&!M._isPlaceholder)C.set(M.id,W)}}};N.on("data:change",({type:T,id:U})=>{if(T==="remove")q.selected.delete(U),y()}),N.on("load:end",({items:T,offset:U})=>{if(!T||T.length===0)return;if(U!==void 0)for(let V=0;V<T.length;V++){let H=T[V];if(H&&H.id!==void 0)C.set(H.id,U+V)}else y()}),y(),K.methods.set("_getSelectedIds",()=>{return q.selected}),K.methods.set("_getFocusedIndex",()=>{return q.focusVisible?q.focusedIndex:-1});let{forceRender:I}=K.getRenderFns(),c=()=>{I();let T=(U)=>{let V=C.get(U);if(V===void 0)return;return K.dataManager.getItem(V)};N.emit("selection:change",{selected:$J(q),items:yJ(q,T)})},x=y0(K.rawConfig.padding),g=v.horizontal?x.left:x.top,$=v.horizontal?x.right:x.bottom,d=K.getItemToScrollIndexFn(),Q0=null,s=null,P=null,S=!1,b=()=>{if(S)return;S=!0,Q0=K.methods.get("_getNavDelta")??null,s=K.methods.get("_navigate")??null,P=K.methods.get("_scrollItemIntoView")??null},u=()=>{return b(),Q0?Q0():{ud:1,lr:0,cols:0}},k=(T)=>{if(T<0)return;if(b(),P)P(T);else{let U=K.state.viewportState.containerSize,V=K.state.viewportState.scrollPosition,H=K.dataManager.getTotal(),E=K.getCachedCompression(),{visibleRange:W}=K.state.viewportState,M=d(T),f=jJ(M,K.sizeCache,V,U,g,$,E,H,W);if(f!==V)K.scrollController.scrollTo(K.adjustScrollPosition(f))}},L=()=>{let T=d(Math.max(0,q.focusedIndex)),U=K.sizeCache.getSize(T),{ud:V}=u();return Math.max(V,Math.floor(K.state.viewportState.containerSize/U)*V)};Z=document.createElement("div"),Z.setAttribute("aria-live","polite"),Z.setAttribute("aria-atomic","true"),Z.className=`${_}-live-region`,Z.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",(B.root.getAttribute("role")==="grid"?B.root.parentElement??B.root:B.root).appendChild(Z);let p=Z;N.on("selection:change",({selected:T})=>{let U=T.length;if(U===0)p.textContent="";else if(U===1)p.textContent="1 item selected";else p.textContent=`${U} items selected`});let a=()=>{if(K.state.isDestroyed)return;if(!B.root.matches(":focus-visible"))return;let T=K.dataManager.getTotal();if(T===0)return;let U=q.focusedIndex>=0?Math.min(q.focusedIndex,T-1):0;U=G(U,1,T),q=d0(q,U),q.focusVisible=!0,B.root.setAttribute("aria-activedescendant",`${F}-item-${U}`),k(U);let V=K.dataManager.getItem(U);if(V)K.renderer.updateItemClasses(U,q.selected.has(V.id),!0)};if(v.interactive)B.root.addEventListener("focusin",a);let l=(T)=>{if(K.state.isDestroyed)return;let U=T.relatedTarget;if(U&&B.root.contains(U))return;let V=q.focusedIndex;if(q.focusVisible=!1,B.root.removeAttribute("aria-activedescendant"),V>=0){let H=K.dataManager.getItem(V);if(H)K.renderer.updateItemClasses(V,q.selected.has(H.id),!1)}};if(v.interactive)B.root.addEventListener("focusout",l);if(K.clickHandlers.push((T)=>{if(K.state.isDestroyed)return;let V=T.target.closest("[data-index]");if(!V)return;let H=parseInt(V.dataset.index??"-1",10);if(H<0)return;let E=K.dataManager.getItem(H);if(!E)return;if(z(H))return;if(N.emit("item:click",{item:E,index:H,event:T}),Y==="multiple"&&T.shiftKey&&q.focusedIndex>=0){let W=D>=0?D:q.focusedIndex,M=K.getAllLoadedItems();q=KJ(q,M,W,H,Y),q=d0(q,H),q.focusVisible=!1,D=H,B.root.setAttribute("aria-activedescendant",`${F}-item-${H}`),c();return}D=H,q=d0(q,H),q.focusVisible=!1,B.root.setAttribute("aria-activedescendant",`${F}-item-${H}`),q=m0(q,E.id,Y),c()}),v.interactive)K.keydownHandlers.push((T)=>{if(K.state.isDestroyed)return;let U=K.dataManager.getTotal(),V=q.focusedIndex,H=!1,E=!1,W=q;if(b(),s)switch(T.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let M=s(q.focusedIndex,T.key,U);if(M!==q.focusedIndex)W=d0(q,M),W.focusVisible=!0,H=!0,E=!0;else{T.preventDefault();return}break}}if(!H)switch(T.key){case"ArrowUp":W=XJ(q,U,v.wrap,u().ud),W.focusVisible=!0,H=!0,E=!0;break;case"ArrowDown":W=UJ(q,U,v.wrap,u().ud),W.focusVisible=!0,H=!0,E=!0;break;case"ArrowLeft":{let{lr:M}=u();if(M)W=XJ(q,U,v.wrap,M),W.focusVisible=!0,H=!0,E=!0;break}case"ArrowRight":{let{lr:M}=u();if(M)W=UJ(q,U,v.wrap,M),W.focusVisible=!0,H=!0,E=!0;break}case"PageUp":W=HJ(q,U,L(),"up"),W.focusVisible=!0,H=!0,E=!0;break;case"PageDown":W=HJ(q,U,L(),"down"),W.focusVisible=!0,H=!0,E=!0;break;case"Home":{W=F1(q,U),W.focusVisible=!0,H=!0,E=!0;break}case"End":{W=T1(q,U),W.focusVisible=!0,H=!0,E=!0;break}}switch(T.key){case" ":case"Enter":if(T.key===" "&&T.shiftKey&&Y==="multiple"&&q.focusedIndex>=0){if(D>=0){let M=K.getAllLoadedItems();W=KJ(W,M,D,q.focusedIndex,Y)}W.focusVisible=!0,H=!0;break}if(q.focusedIndex>=0&&!z(q.focusedIndex)){let M=K.dataManager.getItem(q.focusedIndex);if(M)W=m0(q,M.id,Y),W.focusVisible=!0;D=q.focusedIndex,H=!0}break;case"a":if((T.ctrlKey||T.metaKey)&&Y==="multiple"){let M=K.getAllLoadedItems();if(q.selected.size===M.length)W=bJ(W);else W=kJ(W,M,Y);W.focusVisible=!0,H=!0,E=!1}break}if(E&&R){let M=W.focusedIndex>V?1:-1;W.focusedIndex=G(W.focusedIndex,M,U)}if(T.shiftKey&&Y==="multiple"&&E&&W.focusedIndex>=0){let M=T.key==="ArrowUp"||T.key==="ArrowDown"||T.key==="ArrowLeft"||T.key==="ArrowRight",f=(T.ctrlKey||T.metaKey)&&(T.key==="Home"||T.key==="End");if(M){if(X==="origin"){if(V>=0){let O=K.dataManager.getItem(V);if(O)W=m0(W,O.id,Y)}}else{let O=K.dataManager.getItem(W.focusedIndex);if(O)W=m0(W,O.id,Y)}D=W.focusedIndex,E=!1}else if(f){let O=K.getAllLoadedItems(),A=V>=0?V:W.focusedIndex;W=KJ(W,O,A,W.focusedIndex,Y),D=W.focusedIndex,E=!1}}if(j&&Y==="single"&&E&&W.focusedIndex>=0){let M=K.dataManager.getItem(W.focusedIndex);if(M)W=x0(W,[M.id],Y);E=!1}if(H){T.preventDefault(),q=W;let M=q.focusedIndex;if(M>=0)k(M),B.root.setAttribute("aria-activedescendant",`${F}-item-${M}`);else B.root.removeAttribute("aria-activedescendant");if(E){let{selected:f}=q;if(V>=0&&V!==M){let O=K.dataManager.getItem(V);if(O)K.renderer.updateItemClasses(V,f.has(O.id),!1)}if(M>=0){let O=K.dataManager.getItem(M);if(O)K.renderer.updateItemClasses(M,f.has(O.id),!0)}}else c()}});K.methods.set("select",(...T)=>{q=x0(q,T,Y),c()}),K.methods.set("deselect",(...T)=>{q=TJ(q,T),c()}),K.methods.set("toggleSelect",(T)=>{q=m0(q,T,Y),c()}),K.methods.set("selectAll",()=>{if(Y!=="multiple")return;let T=K.getAllLoadedItems();q=kJ(q,T,Y),y(),c()}),K.methods.set("clearSelection",()=>{q=bJ(q),c()}),K.methods.set("getSelected",()=>{return $J(q)}),K.methods.set("getSelectedItems",()=>{return yJ(q,(U)=>{let V=C.get(U);return V===void 0?void 0:K.dataManager.getItem(V)})});let h=(T)=>{let U=K.dataManager.getTotal();if(U===0)return;if(b(),s){let W=T==="next"?"ArrowDown":"ArrowUp",M=s(q.focusedIndex,W,U);q=d0(q,M)}else{let{ud:W}=u();q=T==="next"?UJ(q,U,v.wrap,W):XJ(q,U,v.wrap,W)}let V=T==="next"?1:-1;q.focusedIndex=G(q.focusedIndex,V,U);let H=q.focusedIndex,E=K.dataManager.getItem(H);if(!E)return;q=x0(q,[E.id],Y),k(H),c()};K.methods.set("selectNext",()=>{h("next")}),K.methods.set("selectPrevious",()=>{h("previous")}),K.destroyHandlers.push(()=>{if(p&&p.parentNode)p.remove();B.root.removeEventListener("focusin",a),B.root.removeEventListener("focusout",l)})},destroy(){if(Z&&Z.parentNode)Z.remove();Z=null}}};var b4=(J)=>{try{let Y=sessionStorage.getItem(J);if(!Y)return;return JSON.parse(Y)}catch{return}},mJ=(J)=>{let Y=J?.autoSave,j=Y?b4(Y):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){Q.methods.set("getScrollSnapshot",()=>{let q=Q.scrollController.getScrollTop(),Z=Q.getCachedCompression(),D=Q.getVirtualTotal(),K=Q.methods.get("getSelected"),B=K&&K().length>0?K():void 0;if(D===0){let F={index:0,offsetInItem:0,total:0};if(B)F.selectedIds=B;return F}let N,v;if(Z.isCompressed){let R=q/Z.virtualSize*D;N=Math.max(0,Math.min(Math.floor(R),D-1)),v=(R-N)*Q.sizeCache.getSize(N)}else N=Q.sizeCache.indexAtOffset(q),v=q-Q.sizeCache.getOffset(N);v=Math.max(0,v);let _={index:N,offsetInItem:v,total:D};if(B)_.selectedIds=B;return _});let X=(q)=>{let{index:Z,offsetInItem:D,selectedIds:K}=q,B=Q.getVirtualTotal();if(B===0&&q.total&&q.total>0){Q.dataManager.setTotal(q.total),Q.sizeCache.rebuild(q.total),Q.updateCompressionMode();let y=Q.getCachedCompression();Q.updateContentSize(y.virtualSize)}else if(B===0)return;if(!Number.isFinite(Z)||!Number.isFinite(D))return;let N=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==N){Q.sizeCache.rebuild(N),Q.updateCompressionMode();let y=Q.getCachedCompression();Q.updateContentSize(y.virtualSize)}let _=Q.getCachedCompression(),F=Math.max(0,Math.min(Z,N-1)),R;if(_.isCompressed){let y=Q.sizeCache.getSize(F),I=y>0?D/y:0;R=(F+I)/N*_.virtualSize}else R=Q.sizeCache.getOffset(F)+D;let z=Q.state.viewportState.containerSize,G=Math.max(0,_.virtualSize-z);if(R=Math.max(0,Math.min(R,G)),Q.scrollController.scrollTo(R),K&&K.length>0){let y=Q.methods.get("select");if(y)y(...K)}let C=Q.methods.get("loadVisibleRange");if(C){let I=0,c=R,x=()=>{I++;let g=Q.state.viewportState.containerSize,$=Q.scrollController.getScrollTop();if(g>0){if(Math.abs($-c)>1)Q.scrollController.scrollTo(c);C()}else if(I<10)requestAnimationFrame(x)};requestAnimationFrame(x)}else{let y=Q.methods.get("reload");if(y)requestAnimationFrame(()=>{y()})}};if(Q.methods.set("restoreScroll",X),Y){let q=!!j,Z=()=>{if(q)return;let D=Q.methods.get("getScrollSnapshot");if(!D)return;let K=D();try{sessionStorage.setItem(Y,JSON.stringify(K))}catch{}};if(Q.idleHandlers.push(()=>{if(q)q=!1;Z()}),Q.emitter.on("selection:change",Z),j&&j.total&&j.total>0){let D=Q.methods.get("_cancelAutoLoad");if(D)D();Q.dataManager.setTotal(j.total)}}if(j)queueMicrotask(()=>{X(j)})}}};var g1=(J,Y=50,j=1/0,Q=!0)=>{let X=J,q=[],Z=0,D=()=>{q=X.map((G,C)=>({def:G,index:C,width:0,minWidth:H4(G.minWidth??Y,1),maxWidth:G.maxWidth??j,resizable:G.resizable??Q,offset:0}))},K=(G)=>{if(q.length===0){Z=0;return}let C=0,y=0;for(let I=0;I<q.length;I++){let c=q[I],x=c.def;if(x.width!==void 0)c.width=dJ(x.width,c.minWidth,c.maxWidth),C+=c.width;else y++}if(y>0){let c=Math.max(0,G-C)/y;for(let x=0;x<q.length;x++){let g=q[x];if(g.def.width===void 0)g.width=dJ(c,g.minWidth,g.maxWidth)}}B()},B=()=>{let G=0;for(let C=0;C<q.length;C++){let y=q[C];y.offset=G,G+=y.width}Z=G},N=(G,C)=>{if(G<0||G>=q.length)return 0;let y=q[G];if(!y.resizable)return y.width;let I=dJ(C,y.minWidth,y.maxWidth);return y.width=I,B(),I},v=(G)=>{return q[G]},_=(G)=>{if(q.length===0)return;if(G<0)return q[0];if(G>=Z)return q[q.length-1];let C=0,y=q.length-1;while(C<y){let I=C+y>>>1,c=q[I];if(G<c.offset)y=I-1;else if(G>=c.offset+c.width)C=I+1;else return c}return q[C]},F=(G)=>{if(G<0||G>=q.length)return 0;return q[G].offset},R=(G)=>{if(G<0||G>=q.length)return 0;return q[G].width},z=(G)=>{X=G,D()};return D(),{get columns(){return q},get totalWidth(){return Z},resolve:K,updateColumns:z,resizeColumn:N,getColumn:v,getColumnAtX:_,getColumnOffset:F,getColumnWidth:R}},dJ=(J,Y,j)=>Math.min(j,Math.max(Y,J)),H4=(J,Y)=>Math.max(Y,J);var x1=(J,Y,j,Q,X,q,Z)=>{let D=document.createElement("div");D.setAttribute("role","rowgroup");let K=document.createElement("div");K.className=`${Q}-table-header`,K.setAttribute("role","row"),K.setAttribute("aria-rowindex","1"),K.style.height=`${j}px`;let B=document.createElement("div");B.className=`${Q}-table-header-scroll`,B.setAttribute("role","presentation"),K.appendChild(B),D.appendChild(K),J.insertBefore(D,J.firstChild),Y.style.cssText=`position:absolute;top:${j}px;left:0px;right:0px;bottom:0px;height:auto`;let N=[],v=[],_=[],F=!0,R=null,z="asc",G=null,C=!1,y=-1,I=0,c=0,x=(w,p)=>{let a=document.createElement("div");a.className=`${Q}-table-header-cell`,a.setAttribute("role","columnheader"),a.setAttribute("aria-colindex",String(p+1)),a.dataset.columnKey=w.def.key;let l=w.def.align;if(l==="center")a.classList.add(`${Q}-table-header-cell--center`);else if(l==="right")a.classList.add(`${Q}-table-header-cell--right`);let h=document.createElement("div");h.className=`${Q}-table-header-content`;let T=w.def.header?w.def.header(w.def):w.def.label;if(typeof T==="string")h.textContent=T;else h.appendChild(T);if(a.appendChild(h),w.def.sortable){let U=document.createElement("span");U.className=`${Q}-table-header-sort`,U.setAttribute("aria-hidden","true"),a.appendChild(U),_.push(U),a.classList.add(`${Q}-table-header-cell--sortable`)}else _.push(null);if(w.resizable){let U=document.createElement("div");U.className=`${Q}-table-header-resize`,U.dataset.resizeIndex=String(p),a.appendChild(U),v.push(U)}return a},g=(w)=>{G=w,B.textContent="",N=[],v=[],_=[];let p=w.columns;for(let a=0;a<p.length;a++){let l=p[a],h=x(l,a);N.push(h),B.appendChild(h)}if($(w),R)d(R,z)},$=(w)=>{G=w;let p=w.columns;B.style.width=`${w.totalWidth}px`;for(let a=0;a<N.length&&a<p.length;a++){let l=N[a],h=p[a];l.style.width=`${h.width}px`}},d=(w,p)=>{if(R=w,z=p,!G)return;let a=G.columns;for(let l=0;l<_.length&&l<a.length;l++){let h=_[l];if(!h)continue;if(a[l].def.key===w&&w!==null)h.textContent=p==="asc"?"▲":"▼",h.style.opacity="0.7",N[l].setAttribute("aria-sort",p==="asc"?"ascending":"descending");else h.textContent="",h.style.opacity="0",N[l].removeAttribute("aria-sort")}},Q0=(w)=>{B.style.transform=`translateX(${-w}px)`},s=(w)=>{let p=w.target;if(!p.dataset.resizeIndex)return;if(w.preventDefault(),w.stopPropagation(),y=parseInt(p.dataset.resizeIndex,10),!G)return;let a=G.getColumn(y);if(!a||!a.resizable)return;C=!0,I=w.clientX,c=a.width,J.classList.add(`${Q}--col-resizing`),J.style.cursor="col-resize",p.classList.add(`${Q}-table-header-resize--active`),p.setPointerCapture(w.pointerId),p.addEventListener("pointermove",P),p.addEventListener("pointerup",S),p.addEventListener("pointercancel",S)},P=(w)=>{if(!C||!G)return;let p=w.clientX-I;if(Math.abs(p)<1)return;let a=Math.max(0,c+p);X(y,a)},S=(w)=>{if(!C)return;let p=w.target;p.removeEventListener("pointermove",P),p.removeEventListener("pointerup",S),p.removeEventListener("pointercancel",S);try{p.releasePointerCapture(w.pointerId)}catch{}p.classList.remove(`${Q}-table-header-resize--active`),J.classList.remove(`${Q}--col-resizing`),J.style.cursor="",C=!1,y=-1},b=(w)=>{let p=w.target;if(p.dataset.resizeIndex!==void 0)return;if(C)return;let a=p;while(a&&!a.dataset.columnKey)if(a=a.parentElement,a===K||a===null)return;if(!a||!a.dataset.columnKey)return;let l=a.dataset.columnKey;if(!G)return;let h=G.columns,T=-1;for(let V=0;V<h.length;V++)if(h[V].def.key===l){T=V;break}if(T===-1)return;let U=h[T];if(Z)Z({key:l,index:T,event:w});if(U.def.sortable&&q){let V;if(R===l)if(z==="asc")V="desc";else V=null;else V="asc";q({key:l,index:T,direction:V})}};return K.addEventListener("pointerdown",s),K.addEventListener("click",b),{element:K,update:$,updateSort:d,rebuild:g,show:()=>{if(F)return;F=!0,K.style.display=""},hide:()=>{if(!F)return;F=!1,K.style.display="none"},destroy:()=>{K.removeEventListener("pointerdown",s),K.removeEventListener("click",b),Y.style.cssText="",D.remove(),N=[],v=[],_=[],G=null,F=!1},syncScroll:Q0}};var $4=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Y)=>{if(Y.parentNode?.removeChild(Y),J.length<200)Y.className="",Y.removeAttribute("data-id"),Y.removeAttribute("data-index"),Y.removeAttribute("aria-selected"),Y.removeAttribute("aria-rowindex"),Y.removeAttribute("role"),Y.style.cssText="",Y.textContent="",J.push(Y)},clear:()=>{J.length=0}}},m1=(J,Y,j,Q,X,q,Z,D,K)=>{let B=$4(),N=new Map,v=-1,_=j,F=null,R=null,z=null,G=(O,A)=>{R=O,z=A},C=(O,A)=>{if(A)O.setAttribute("aria-selected","true");else O.removeAttribute("aria-selected")},y=(O,A,r,i)=>{O.setAttribute("role",A),O.setAttribute("data-id",String(r)),O.setAttribute("data-index",String(i))},I=(O)=>String(O).startsWith("__placeholder_"),c=`${X}-item ${X}-table-row`,x=`${X}-item--selected`,g=`${X}-item--focused`,$=`${X}-table-cell`,d=`${X}-table-cell--center`,Q0=`${X}-table-cell--right`,s=`${X}-item--odd`,P=`${X}-item--placeholder`,S=`${X}-item--replaced`,b=`${X}-item ${X}-table-row ${X}-table-group-header`,u=`${X}-table-group-header-content`,k=(O,A,r,i,n=!1)=>{if(r.def.cell){let t=r.def.cell(A,r.def,i);if(typeof t==="string")O.innerHTML=t;else O.replaceChildren(t)}else{let t=A[r.def.key],j0=t!=null?String(t):"";if(n&&j0)O.innerHTML=`<span>${j0}</span>`;else O.textContent=j0}},L=(O,A,r,i,n=!1)=>{let t=c;if(D){if(F){let j0=F(A);if(j0>=0&&(j0&1)===1)t+=` ${s}`}else if((A&1)===1)t+=` ${s}`}if(n)t+=` ${P}`;if(r)t+=` ${x}`;if(i)t+=` ${g}`;O.className=t},w=(O,A,r)=>{if(r?.compression?.isCompressed)return Math.round(l0(O,r.scrollPosition,A,r.totalItems,r.containerSize,r.compression,r.rangeStart));return A.getOffset(O)},p=(O,A)=>{let r=A.def.align;if(r==="center")O.classList.add(d),O.classList.remove(Q0);else if(r==="right")O.classList.add(Q0),O.classList.remove(d);else O.classList.remove(d,Q0)},a=(O,A)=>{let i=_.columns.length;if(A.length===i)return A;let n=[];for(let t=0;t<i;t++){let j0;if(t<A.length)j0=A[t];else j0=document.createElement("div"),j0.className=$,O.appendChild(j0);n.push(j0)}for(let t=i;t<A.length;t++)A[t].remove();return n},l=(O,A,r,i)=>{let n=B.acquire(),t=O,j0=r.getSize(A),o=w(A,r,i);n.style.cssText=`width:${_.totalWidth}px;height:${j0}px;transform:translateY(${o}px)`,n.className=b,y(n,"presentation",O.id,A),n.removeAttribute("aria-selected"),n.removeAttribute("aria-rowindex"),n.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 n.appendChild(J0),{element:n,cells:[],index:A,isGroupHeader:!0,lastItemId:O.id,lastSelected:!1,lastFocused:!1,lastOffset:o,lastHeight:j0}},h=(O,A,r,i,n,t)=>{let j0=B.acquire(),o=n.getSize(A),J0=w(A,n,t),q0=I(O.id);j0.style.cssText=`width:${_.totalWidth}px;height:${o}px;transform:translateY(${J0}px)`,L(j0,A,r,i,q0),y(j0,"row",O.id,A),j0.id=`${q}-${A}`,j0.setAttribute("aria-rowindex",String(A+2)),C(j0,r);let U0=a(j0,[]),K0=_.columns;for(let Z0=0;Z0<U0.length&&Z0<K0.length;Z0++){let W0=U0[Z0],M0=K0[Z0];W0.style.cssText=`left:${M0.offset}px;width:${M0.width}px`,W0.setAttribute("role","gridcell"),W0.setAttribute("aria-colindex",String(Z0+1)),p(W0,M0),k(W0,O,M0,A,q0)}return{element:j0,cells:U0,index:A,isGroupHeader:!1,lastItemId:O.id,lastSelected:r,lastFocused:i,lastOffset:J0,lastHeight:o}},T=(O,A,r,i,n)=>{for(let[q0,U0]of N)if(q0<A.start||q0>A.end)B.release(U0.element),N.delete(q0);let t=!1,j0=Z();if(j0!==v)v=j0,t=!0;let o=null,J0=Y();F=typeof D==="string"&&K?K():null;for(let q0=A.start;q0<=A.end;q0++){let U0=q0-A.start,K0=O[U0];if(!K0)continue;let Z0=r.has(K0.id),W0=q0===i,M0=R?R(K0):!1,X0=N.get(q0);if(X0){if(X0.isGroupHeader!==M0){B.release(X0.element),N.delete(q0);let B0=M0?l(K0,q0,J0,n):h(K0,q0,Z0,W0,J0,n);if(N.set(q0,B0),!o)o=document.createDocumentFragment();o.appendChild(B0.element);continue}if(M0){if(X0.lastItemId!==K0.id){let G0=K0,V0=X0.element.firstElementChild;if(V0&&z){let b0=z(G0.groupKey,G0.groupIndex);if(typeof b0==="string")V0.innerHTML=b0;else V0.replaceChildren(b0)}X0.element.setAttribute("data-id",String(K0.id)),X0.lastItemId=K0.id}let O0=w(q0,J0,n);if(X0.lastOffset!==O0)X0.lastOffset=O0,X0.element.style.transform=`translateY(${O0}px)`;let A0=J0.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!==W0;if(B0){let b0=X0.lastItemId!=null&&I(X0.lastItemId),D0=I(K0.id);if(!D0&&w0(r,q0,K0.id))Z0=!0;let F0=_.columns;for(let T0=0;T0<X0.cells.length&&T0<F0.length;T0++)k(X0.cells[T0],K0,F0[T0],q0,D0);if(L(X0.element,q0,Z0,W0,D0),X0.element.setAttribute("data-id",String(K0.id)),C(X0.element,Z0),b0&&!D0)X0.element.classList.add(S),setTimeout(()=>{X0.element.classList.remove(S)},300);X0.lastItemId=K0.id,X0.lastSelected=Z0,X0.lastFocused=W0}else if(O0||A0)L(X0.element,q0,Z0,W0,I(K0.id)),C(X0.element,Z0),X0.lastSelected=Z0,X0.lastFocused=W0;let G0=w(q0,J0,n);if(X0.lastOffset!==G0)X0.lastOffset=G0,X0.element.style.transform=`translateY(${G0}px)`;let V0=J0.getSize(q0);if(X0.lastHeight!==V0)X0.lastHeight=V0,X0.element.style.height=`${V0}px`;if(t)X0.element.setAttribute("aria-rowindex",String(q0+2))}}else{if(w0(r,q0,K0.id))Z0=!0;let B0=M0?l(K0,q0,J0,n):h(K0,q0,Z0,W0,J0,n);if(N.set(q0,B0),!o)o=document.createDocumentFragment();o.appendChild(B0.element)}}if(o)J.appendChild(o)},U=(O)=>{let A=Y();for(let[r,i]of N){let n=w(r,A,O);if(i.lastOffset!==n)i.lastOffset=n,i.element.style.transform=`translateY(${n}px)`}},V=(O,A,r,i)=>{let n=N.get(O);if(!n)return;if(n.isGroupHeader)return;let t=_.columns;for(let j0=0;j0<n.cells.length&&j0<t.length;j0++)k(n.cells[j0],A,t[j0],O);n.element.setAttribute("data-id",String(A.id)),n.lastItemId=A.id,L(n.element,O,r,i),C(n.element,r),n.lastSelected=r,n.lastFocused=i},H=(O,A,r)=>{let i=N.get(O);if(!i)return;if(i.isGroupHeader)return;let n=i.lastSelected!==A,t=i.lastFocused!==r;if(n||t)L(i.element,O,A,r),C(i.element,A),i.lastSelected=A,i.lastFocused=r},E=(O)=>{_=O;let A=O.columns;for(let[,r]of N)if(r.element.style.width=`${O.totalWidth}px`,r.cells.length>0)for(let i=0;i<r.cells.length&&i<A.length;i++){let n=r.cells[i],t=A[i];n.style.left=`${t.offset}px`,n.style.width=`${t.width}px`}},W=(O)=>{return N.get(O)?.element},M=()=>{for(let[,O]of N)B.release(O.element);N.clear(),v=-1};return{render:T,updatePositions:U,updateItem:V,updateItemClasses:H,getElement:W,updateColumnLayout:E,setGroupHeaderFn:G,clear:M,destroy:()=>{M(),B.clear()}}};var y4=new Set,cJ=(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 Y=null,j=null,Q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(X){let{dom:q,emitter:Z,config:D}=X,{classPrefix:K}=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 B=J.resizable??!0,N=J.minColumnWidth??50,v=J.maxColumnWidth??1/0,_=J.columnBorders??!1,F=J.rowBorders??!0,R=J.rowHeight,z=X.rawConfig.padding,G=!z?0:typeof z==="number"?z*2:z.length===2?z[1]*2:z[1]+z[3],C=J.headerHeight??(typeof R==="number"?R:40),y=J.sort?.key??null,I=J.sort?.direction??"asc";if(Y=g1(J.columns,N,v,B),typeof R==="function")X.setSizeConfig(R);else if(typeof R==="number")X.setSizeConfig(R);if(X.rebuildSizeCache(),q.root.classList.add(`${K}--table`),F)q.root.classList.add(`${K}--table-row-borders`);if(_)q.root.classList.add(`${K}--table-col-borders`);q.root.setAttribute("role","grid"),q.root.setAttribute("aria-colcount",String(J.columns.length));let c=-1,x=q.items.getAttribute("aria-label");if(x)q.root.setAttribute("aria-label",x),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 g=X.getContainerWidth()-G;Y.resolve(g);let $=(W,M)=>{if(!Y)return;let f=Y.getColumn(W);if(!f)return;let O=f.width,A=Y.resizeColumn(W,M);if(j)j.update(Y);if(Q)Q.updateColumnLayout(Y);s(),Z.emit("column:resize",{key:f.def.key,index:W,previousWidth:O,width:A})},d=(W)=>{if(W.direction===null)y=null,I="asc";else y=W.key,I=W.direction;if(j)j.updateSort(y,I);Z.emit("column:sort",W)},Q0=(W)=>{Z.emit("column:click",W)};if(j=x1(q.root,q.viewport,C,K,$,d,Q0),j.rebuild(Y),y)j.updateSort(y,I);let s=()=>{if(!Y)return;let W=Y.totalWidth;q.content.style.minWidth=`${W}px`,q.items.style.minWidth=`${W}px`};s(),Q=m1(q.items,()=>X.sizeCache,Y,J.columns,K,D.ariaIdPrefix,()=>X.dataManager.getTotal(),X.rawConfig.item?.striped,()=>X.getStripeIndexFn());let P=null,S=null,b=!1,u=()=>{if(b)return;b=!0,P=X.methods.get("_getSelectedIds")??null,S=X.methods.get("_getFocusedIndex")??null},k=-1,L=-1,w=-1,p=!0,a=D.overscan,l={start:0,end:0},h={start:0,end:0},T=()=>{if(X.state.isDestroyed)return;let W=X.scrollController.getScrollTop(),M=X.state.viewportState.containerSize,f=X.getVirtualTotal(),O=X.state.viewportState.isCompressed;if(!p&&W===k&&M===L&&f===w)return;k=W,L=M,w=f,p=!1;let A=f+1;if(A!==c)c=A,q.root.setAttribute("aria-rowcount",String(A));X.getVisibleRange(W,M,f,l),h.start=Math.max(0,l.start-a),h.end=Math.min(f-1,l.end+a);let r=X.state.viewportState;r.scrollPosition=W,r.visibleRange.start=l.start,r.visibleRange.end=l.end,r.renderRange.start=h.start,r.renderRange.end=h.end;let i=X.state.lastRenderRange,n=i.start!==h.start||i.end!==h.end;if(!n&&O){Q.updatePositions(X.getCompressionContext());return}if(!n)return;let t=O?X.getCompressionContext():void 0,j0=X.dataManager.getItemsInRange(h.start,h.end);u();let o=P?P():y4,J0=S?S():-1;Q.render(j0,h,o,J0,t),i.start=h.start,i.end=h.end,Z.emit("range:change",{range:{start:h.start,end:h.end}})},U=()=>{if(X.state.isDestroyed)return;X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,p=!0,T()};X.setRenderFns(T,U),X.setUpdateItemClassesFn((W,M,f)=>{Q?.updateItemClasses(W,M,f)});let V=j,H=-1,E=()=>{let W=q.viewport.scrollLeft;if(W!==H){if(H=W,V.syncScroll)V.syncScroll(W)}};X.afterScroll.push(E),q.viewport.addEventListener("scroll",E,{passive:!0}),X.resizeHandlers.push((W,M)=>{if(!Y)return;if(Y.resolve(W-G),j)j.update(Y);if(Q)Q.updateColumnLayout(Y);s()}),X.methods.set("updateColumns",(W)=>{if(!Y||!j)return;if(Y.updateColumns(W),Y.resolve(X.getContainerWidth()-G),j.rebuild(Y),y)j.updateSort(y,I);if(s(),Q)Q.updateColumnLayout(Y),Q.clear();X.forceRender()}),X.methods.set("resizeColumn",(W,M)=>{if(!Y)return;let f;if(typeof W==="string"){let O=Y.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;$(f,M)}),X.methods.set("getColumnWidths",()=>{if(!Y)return{};let W={},M=Y.columns;for(let f=0;f<M.length;f++)W[M[f].def.key]=M[f].width;return W}),X.methods.set("setSort",(W,M)=>{if(y=W,I=M??"asc",j)j.updateSort(y,I)}),X.methods.set("getSort",()=>{return{key:y,direction:I}}),X.methods.set("_getTableLayout",()=>Y),X.methods.set("_updateRenderedItem",(W,M,f,O)=>{Q?.updateItem(W,M,f,O)}),X.methods.set("_replaceTableRenderer",(W)=>{Q=W}),X.methods.set("_updateTableForGroups",(W,M)=>{if(Q)Q.setGroupHeaderFn(W,M)}),X.methods.set("_getTableHeaderHeight",()=>C),X.keydownHandlers.push((W)=>{if(W.key!=="ArrowLeft"&&W.key!=="ArrowRight")return;if(!Y)return;let M=Y.columns;if(M.length===0)return;let f=q.viewport.clientWidth;if(Y.totalWidth<=f)return;let O=q.viewport.scrollLeft;if(W.key==="ArrowRight"){for(let A=0;A<M.length;A++)if(M[A].offset>O+1){q.viewport.scrollLeft=M[A].offset,W.preventDefault();return}}else{for(let A=M.length-1;A>=0;A--)if(M[A].offset<O-1){q.viewport.scrollLeft=M[A].offset,W.preventDefault();return}if(O>0)q.viewport.scrollLeft=0,W.preventDefault()}}),X.contentSizeHandlers.push(()=>{s()}),X.destroyHandlers.push(()=>{if(q.viewport.removeEventListener("scroll",E),j)j.destroy(),j=null;if(Q)Q.destroy(),Q=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(Q)Q.destroy(),Q=null}}};var d1=(J,Y)=>{let j=new Map,Q=(q)=>{let Z=j.get(q);return Z!==void 0?Z:J},X=S0(Q,Y);return{getOffset(q){return X.getOffset(q)},getSize(q){return Q(q)},indexAtOffset(q){return X.indexAtOffset(q)},getTotalSize(){return X.getTotalSize()},getTotal(){return X.getTotal()},rebuild(q){if(q<X.getTotal()){for(let Z of j.keys())if(Z>=q)j.delete(Z)}X=S0(Q,q)},isVariable(){return!0},setMeasuredSize(q,Z){j.set(q,Z)},isMeasured(q){return j.has(q)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var lJ=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(Y){let j=Y.config.horizontal,X=Y.rawConfig.item,q=j?X.estimatedWidth:X.estimatedHeight;if(q==null||q<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let Z=X.gap??0,D=Y.getVirtualTotal(),K=y0(Y.rawConfig.padding),B=h0(K,j),N=d1(q+Z,D),v=Y.methods.get("_setSizeCache"),_=Y.methods.get("_setConstrainSize");if(!v||!_)throw Error("[vlist/withAutoSize] Incompatible builder version");v(N),_((x)=>N.isMeasured(x));let F=new WeakMap,R=0,z=!1,G=2,C=(x)=>{let g=Y.scrollController.getScrollTop(),$=Y.state.viewportState.containerSize;if($<=0)return!1;let d=Math.max(0,x+B-$);return g>=d-G},y=()=>{let x=N.getTotalSize(),g=Y.state.viewportState.containerSize;if(g<=0)return;let $=Math.max(0,x+B-g),d=Y.scrollController.getScrollTop();if($>d)Y.scrollController.scrollTo($)},I=()=>{let x=N.getTotalSize();Y.updateContentSize(x)},c=()=>{if(z){let x=Y.dom.viewport,g=x.scrollHeight,$=g-x.clientHeight,d=Y.scrollController.getScrollTop(),Q0=$>0&&d>=$-G,s=Y.getVirtualTotal(),P=Y.state.viewportState.renderRange.end,S=s>0&&P>=s-1,b=N.getTotalSize()+B,u=Math.abs(b-g),k=S&&$>0&&d>=$-u-G,L=Q0||k;if(I(),z=!1,L)x.scrollHeight,y(),Y.forceRender()}};J=new ResizeObserver((x)=>{if(Y.state.isDestroyed)return;let g=!1,$=Y.state.viewportState.visibleRange.start;for(let w of x){let p=F.get(w.target);if(p===void 0)continue;let a=j?w.borderBoxSize[0].inlineSize:w.borderBoxSize[0].blockSize;if(!N.isMeasured(p)){let l=a+Z,h=N.getSize(p);if(N.setMeasuredSize(p,l),g=!0,p<$&&l!==h)R+=l-h;J.unobserve(w.target);let T=w.target;if(j)T.style.width=`${a}px`;else T.style.height=`${a}px`}}if(!g)return;let d=N.getTotalSize();if(N.rebuild(Y.getVirtualTotal()),R!==0){let w=Y.scrollController.getScrollTop();Y.scrollController.scrollTo(w+R),R=0}let Q0=C(d),s=Y.getVirtualTotal(),P=Y.state.viewportState.renderRange.end,S=s>0&&P>=s-1,b=Y.dom.viewport,u=b.scrollHeight-b.clientHeight,k=Y.scrollController.getScrollTop(),L=u>0&&k>=u-G;if(Q0||S||!Y.scrollController.isScrolling()){if(I(),z=!1,Q0||S&&L)b.scrollHeight,y()}else z=!0;Y.forceRender()}),Y.afterRenderBatch.push((x)=>{for(let{index:g,element:$}of x)if(!N.isMeasured(g))F.set($,g),J.observe($)}),Y.idleHandlers.push(c),Y.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var P4=50,w4=0.1;function c1(J){let Y=0,j=0,Q=0;function X(){return Q>0?j/Q:0}function q(K){if(Y=K,K>w4&&K<P4)j+=K,Q++}function Z(){let K=J.getTotal();if(K===0)return 0;let B=J.getItemSize();if(B<=0)return 0;let N=J.getContainerSize();if(N<=0)return 0;let v=J.getScrollPosition(),_=typeof J.getColumns==="function"?J.getColumns():1,R=Math.ceil(K/_)*B,G=Math.min(R,g0)-N,C=R-N,y=G>0?C/G:1,I=v*y,c=Math.ceil((I+N)/B);return Math.min(c*_,K)}function D(){let K=J.getTotal(),B=Z();return{progress:K>0?Math.min(100,Math.max(0,B/K*100)):0,velocity:Y,velocityAvg:X(),itemCount:B,total:K}}return{getState:D,onVelocity:q}}export{cJ as withTable,mJ as withSnapshots,xJ as withSelection,RJ as withScrollbar,zJ as withScale,vJ as withPage,gJ as withMasonry,hJ as withGroups,uJ as withGrid,lJ as withAutoSize,CJ as withAsync,wJ as vlist,c1 as createStats};
1
+ var Q1=2,q1=(J=0)=>({velocity:0,sampleCount:0}),Y1=(J,Q)=>{let Y=performance.now(),q=J._lt??Y,K=J._lp??Q,X=Y-q;if(J._lp=Q,J._lt=Y,X===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(X>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(Q-K)/X,J.sampleCount=Math.min(J.sampleCount+1,5),J};var Q4=(J,Q)=>{let Y=Q;return{getOffset:(q)=>q*J,getSize:(q)=>J,indexAtOffset:(q)=>{if(Y===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(q/J),Y-1))},getTotalSize:()=>Y*J,getTotal:()=>Y,rebuild:(q)=>{Y=q},isVariable:()=>!1}},q4=(J,Q)=>{let Y=Q,q=new Float64Array(0),K=(U)=>{Y=U,q=new Float64Array(U+1),q[0]=0;for(let G=0;G<U;G++)q[G+1]=q[G]+J(G)};K(Q);let X=(U)=>{if(Y===0)return 0;if(U<=0)return 0;if(U>=q[Y])return Y-1;let G=0,B=Y-1;while(G<B){let Z=G+B+1>>>1;if(q[Z]<=U)G=Z;else B=Z-1}return G};return{getOffset:(U)=>{if(U<=0)return 0;if(U>=Y)return q[Y];return q[U]},getSize:(U)=>J(U),indexAtOffset:(U)=>X(U),getTotalSize:()=>q[Y]??0,getTotal:()=>Y,rebuild:(U)=>K(U),isVariable:()=>!0}},f0=(J,Q)=>{if(typeof J==="number")return Q4(J,Q);return q4(J,Q)},j1=(J,Q,Y,q)=>{if(q===0)return 0;if(!J.isVariable())return Math.ceil(Y/J.getSize(0));let K=0,X=0,U=Q;while(U<q&&X<Y)X+=J.getSize(U),K++,U++;return Math.max(1,K)};var X1=()=>{let J={},Q=(X,U)=>{if(!J[X])J[X]=new Set;return J[X].add(U),()=>Y(X,U)},Y=(X,U)=>{J[X]?.delete(U)};return{on:Q,off:Y,emit:(X,U)=>{J[X]?.forEach((G)=>{try{G(U)}catch(B){console.error(`[vlist] Error in event handler for "${String(X)}":`,B)}})},clear:(X)=>{if(X)delete J[X];else for(let U in J)delete J[U]}}};var K1=(J)=>{if(typeof J==="string"){let Q=document.querySelector(J);if(!Q)throw Error(`[vlist] Container not found: ${J}`);return Q}return J},o0=(J,Q)=>{let Y=document.createElement("div");if(Y.className=J,Q)Y.style.cssText=Q;return Y},U1=(J,Q,Y,q,K)=>{let X=q,U=o0(Q);if(X)U.classList.add(`${Q}--horizontal`);if(K!==!1)U.setAttribute("tabindex","0");let G=o0(`${Q}-viewport`,X?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");G.setAttribute("tabindex","-1");let B=o0(`${Q}-content`,X?"position:relative;height:100%":"position:relative;width:100%"),Z=o0(`${Q}-items`,X?"position:relative;height:100%":"position:relative;width:100%");if(Z.setAttribute("role","listbox"),Y)Z.setAttribute("aria-label",Y);if(X)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),G.appendChild(B),U.appendChild(N),U.appendChild(G),J.appendChild(U),{root:U,viewport:G,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,K)=>{if(q===0||Q===0){K.start=0,K.end=-1;return}let X=Y.indexAtOffset(J),U=Y.indexAtOffset(J+Q);if(U<q-1)U++;K.start=Math.max(0,X),K.end=Math.min(q-1,Math.max(0,U))},N1=(J,Q,Y,q)=>{q.start=Math.max(0,J.start-Q),q.end=Math.min(Y-1,J.end+Q)},W1=(J,Q,Y,q,K,X=0)=>{if(q===0)return 0;let U=Math.max(0,Math.min(J,q-1)),G=Q.getOffset(U),B=Q.getSize(U),Z=Q.getTotalSize(),N=Math.max(0,Z+X-Y),k;switch(K){case"center":k=G-(Y-B)/2;break;case"end":k=X>0&&G+B>=Z?N:G-Y+B;break;default:k=G}return Math.max(0,Math.min(k,N))};var YJ={top:0,right:0,bottom:0,left:0},y0=(J)=>{if(J==null)return YJ;if(typeof J==="number")return J===0?YJ:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[X,U]=J;return X===0&&U===0?YJ:{top:X,right:U,bottom:X,left:U}}let[Q,Y,q,K]=J;return Q===0&&Y===0&&q===0&&K===0?YJ:{top:Q,right:Y,bottom:q,left:K}},p0=(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((U,G)=>U-G);if(q.length<=1)return;let K=[];for(let U=0;U<q.length;U++){let G=Y(q[U]);if(G)K.push(G)}if(K.length<=1)return;let X=J.firstChild;for(let U=0;U<K.length;U++){let G=K[U];if(G===X)X=X.nextSibling;else J.insertBefore(G,X)}};var V1=(J,Q)=>{let{dom:Y,emitter:q,resolvedConfig:K,rawConfig:X,rendered:U,pool:G,sharedState:B,isHorizontal:Z,classPrefix:N,contentSizeHandlers:k,idleHandlers:_,afterScroll:F,clickHandlers:v,keydownHandlers:z,resizeHandlers:D,destroyHandlers:$,methods:H,onScrollFrame:C,resizeObserver:a,renderRange:p,afterRenderBatch:x}=Q;return{get dom(){return Y},get sizeCache(){return J.hc},get emitter(){return q},get config(){return K},get rawConfig(){return X},adjustScrollPosition(y){if(J.mp===0)return y;let m=Z?J.cw:J.ch,J0=J.hc.getTotalSize(),o=Math.max(0,J0-m),b=Math.max(0,J0+J.mp-m);if(y>=o)return b;return Math.min(y,b)},get renderer(){return{render:(y,m,J0,o,b)=>{J.ss=J0,J.fi=o,J.ffn()},updateItemClasses:(y,m,J0)=>{J.uic(y,m,J0)},updatePositions:()=>{},updateItem:()=>{},getElement:(y)=>U.get(y)??null,clear:()=>{},destroy:()=>{}}},set renderer(y){},get dataManager(){return J.dm},set dataManager(y){J.dm=y},get scrollController(){return J.sc},set scrollController(y){J.sc=y},state:B,getContainerWidth(){return J.cw},afterScroll:F,idleHandlers:_,afterRenderBatch:x,clickHandlers:v,keydownHandlers:z,resizeHandlers:D,contentSizeHandlers:k,destroyHandlers:$,methods:H,replaceTemplate(y){J.at=y},replaceRenderer(y){},replaceDataManager(y){J.dm=y},replaceScrollController(y){J.sc=y},getItemsForRange(y){let{dm:m,it:J0}=J,o=[];for(let b=y.start;b<=y.end;b++){let f=m?m.getItem(b):J0[b];if(f)o.push(f)}return o},getAllLoadedItems(){let y=J.dm;if(y){let m=y.getTotal(),J0=[];for(let o=0;o<m;o++){let b=y.getItem(o);if(b)J0.push(b)}return J0}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let y=J.hc;return{isCompressed:!1,actualSize:y.getTotalSize(),virtualSize:y.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:p.start,compression:B.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,y]of U)y.remove(),G.release(y);U.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(y,m){J.rfn=y,J.ffn=m},setVirtualTotalFn(y){J.vtf=y},rebuildSizeCache(y){J.hc.rebuild(y??J.vtf())},setSizeConfig(y){if(J.hc=f0(y,J.vtf()),J.gp>0){let m=J.hc.getTotalSize,J0=J.gp;J.hc.getTotalSize=()=>{let o=m();return o>0?o-J0:0}}},updateContentSize(y){let m=`${y+J.mp}px`;if(Z)Y.content.style.width=m;else Y.content.style.height=m},updateCompressionMode(){for(let y=0;y<k.length;y++)k[y]()},setVisibleRangeFn(y){J.gvr=y},getVisibleRange(y,m,J0,o){J.gvr(y,m,J.hc,J0,o)},setScrollToPosFn(y){J.gsp=y},getScrollToPos(y,m,J0,o){return J.gsp(y,J.hc,m,J0,o)},setPositionElementFn(y){J.pef=y},setScrollFns(y,m){J.sgt=y,J.sst=(J0)=>{m(J0),C()}},setScrollTarget(y){J.st.removeEventListener("scroll",C),J.st=y,J.st.addEventListener("scroll",C,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(y){J.gcw=y.width,J.gch=y.height,J.cw=y.width(),J.ch=y.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(y){J.sif=y},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(y){J.i2s=y},setUpdateItemClassesFn(y){J.uic=y}}},_1=(J,Q,Y)=>{let{rendered:q,itemState:K,applyTemplate:X,updateContentSize:U}=Q,G=()=>{J.hc.rebuild(J.vtf()),U(),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 k=[];for(let _=Math.max(0,Z),F=Math.min(N,B()-1);_<=F;_++)k.push(J.it[_]);return k},setTotal:()=>{},setItems:(Z,N=0,k)=>{if(N===0&&(k!==void 0||B()===0))J.it=Z;else{let _=N+Z.length;if(B()<_)J.it.length=_;for(let F=0;F<Z.length;F++)J.it[N+F]=Z[F]}if(J.ii)G()},updateItem:(Z,N)=>{let k=J.it;if(Z<0||Z>=k.length)return!1;let _=k[Z];if(!_)return!1;k[Z]={..._,...N};let F=q.get(Z);if(F)X(F,J.at(k[Z],Z,K)),F.dataset.id=String(k[Z].id);return!0},removeItem:(Z)=>{let N=typeof Z==="number"?Z:J.it.findIndex((k)=>k.id===Z);if(N<0||N>=J.it.length)return!1;if(J.it.splice(N,1),J.ii)G();return!0},loadRange:async()=>{},ensureRange:async()=>{},loadInitial:async()=>{},loadMore:async()=>!1,reload:async()=>{},evictDistant:()=>{},clear:()=>{J.it=[]},reset:()=>{if(J.it=[],J.ii)J.hc.rebuild(0),U(),J.ffn()}}},G1=(J,Q)=>{let{dom:Y,classPrefix:q}=Q;return{getScrollTop:()=>J.sgt(),scrollTo:(K)=>{J.sst(K),J.ls=K,J.rfn()},scrollBy:(K)=>{let X=J.sgt()+K;J.sst(X),J.ls=X,J.rfn()},isAtTop:()=>J.ls<=2,isAtBottom:(K=2)=>J.sab(K),getScrollPercentage:()=>{let K=J.hc.getTotalSize(),X=Math.max(0,K-J.ch);return X>0?J.ls/X:0},getVelocity:()=>J.vt.velocity,isTracking:()=>J.vt.sampleCount>=2,isScrolling:()=>Y.root.classList.contains(`${q}--scrolling`),updateConfig:()=>{},enableCompression:()=>{J.sic=!0},disableCompression:()=>{J.sic=!1},isCompressed:()=>J.sic,isWindowMode:()=>!1,updateContainerHeight:(K)=>{J.ch=K},destroy:()=>{}}};var LJ=(J,Q,Y,q,K=0,X=0)=>{let U=Q.getOffset(J),G=Q.getSize(J),B=U+K,Z=B+G,N=Y+q;if(B<Y)return Math.max(0,U);if(Z>N)return Z+X-q;return Y},XJ=(J,Q,Y,q,K=0,X=0,U,G,B)=>{if(!(U!=null&&U.isCompressed&&U.ratio!==1))return LJ(J,Q,Y,q,K,X);let N=G,{virtualSize:k}=U,_=Q.getSize(Math.max(0,J)),F=q-K-X,v=Math.max(1,Math.floor(F/_)),z=k/N;if(B){if(J>=B.start+v){let H=F/_,C=J+1-H;return Math.max(0,C*z)}if(J<=B.start)return Math.max(0,J*z);return Y}let D=Y/k*N,$=D+v;if(J>=$){let H=F/_,C=J+1-H;return Math.max(0,C*z)}if(J<D)return Math.max(0,J*z);return Y};var D1=(J,Q,Y,q,K,X,U,G,B,Z,N,k,_,F)=>{let v=`${Y}-item--focused`,z=!1,D=null,$=null,H=null,C=null,a=!1,p=()=>{if(a)return;a=!0,D=B.get("_getNavTotal")??null,$=B.get("_getNavDelta")??null,H=B.get("_navigate")??null,C=B.get("_scrollItemIntoView")??null},x=()=>{return p(),D?D():J.vtf()},y=()=>{return p(),$?$():{ud:1,lr:0,cols:0}};B.set("_getFocusedIndex",()=>z?J.fi:-1);let m=(r,L=!0)=>{if(Q.root.setAttribute("aria-activedescendant",`${q}-item-${r}`),p(),L)if(C)C(r);else{let P=K?J.cw:J.ch,O=J.i2s(r),h=LJ(O,J.hc,J.ls,P,X,U);if(h!==J.ls)J.sst(h),J.ls=J.sgt()}J.ffn()},J0=(r)=>{J.fi=r,z=!0,m(r)},o=(r,L)=>{if(J.fi=r,L||F)z=!0;let P=J.dm?J.dm.getItem(r):J.it[r];if(P&&J.ss.has(P.id))J.ss.clear();else if(J.ss.clear(),P)J.ss.add(P.id);m(r,L)},b=(r,L,P)=>{let O=r;while(O>=0&&O<P){let h=J.dm?J.dm.getItem(O):J.it[O];if(!h||!h.__groupHeader)return O;O+=L}O=r-L;while(O>=0&&O<P){let h=J.dm?J.dm.getItem(O):J.it[O];if(!h||!h.__groupHeader)return O;O-=L}return r},f=()=>{if(J.id)return;if(!Q.root.matches(":focus-visible"))return;let r=x();if(r===0)return;let L=J.fi>=0?Math.min(J.fi,r-1):0;L=b(L,1,r),J0(L)};Q.root.addEventListener("focusin",f);let S=(r)=>{if(J.id)return;let L=r.relatedTarget;if(L&&Q.root.contains(L))return;if(z=!1,J.fi>=0)Z.get(J.fi)?.classList.remove(v);Q.root.removeAttribute("aria-activedescendant")};Q.root.addEventListener("focusout",S),N.push((r)=>{if(J.id)return;let L=x();if(L===0)return;let P=J.fi,O=P;if(r.key===" "||r.key==="Enter"){if(P>=0){let h=J.dm?J.dm.getItem(P):J.it[P];if(h&&!h.__groupHeader)o(P,!0)}r.preventDefault();return}if(p(),H)switch(r.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":O=H(P,r.key,L);break;default:return}else{let{ud:h,lr:d}=y();switch(r.key){case"ArrowUp":O=P-h;break;case"ArrowDown":O=P+h;break;case"ArrowLeft":if(!d)return;O=P-d;break;case"ArrowRight":if(!d)return;O=P+d;break;case"PageUp":case"PageDown":{let l=J.hc.getSize(J.i2s(Math.max(0,P))),I=Math.max(h,Math.floor((K?J.cw:J.ch)/l)*h);O=r.key==="PageUp"?P-I:P+I;break}case"Home":O=0;break;case"End":O=L-1;break;default:return}if(O<0)O=G?L-1:0;else if(O>=L)O=G?0:L-1}if(r.preventDefault(),O=b(O,O>=P?1:-1,L),O!==P)J0(O)}),k.push((r)=>{if(J.id)return;let L=r.target.closest("[data-index]");if(!L)return;let P=parseInt(L.dataset.index??"-1",10);if(P<0)return;let O=J.dm?.getItem(P)??J.it[P];if(!O||O.__groupHeader)return;z=!1,Q.root.focus({preventScroll:!0}),o(P,!1)}),_.push(()=>{Q.root.removeEventListener("focusin",f),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",R0="__placeholder_";var w0=(J,Q,Y)=>{if(String(Y).startsWith(R0))return!1;let q=R0+Q;if(J.has(q))return J.delete(q),J.add(Y),!0;return!1},F1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),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 K of Q)q.add(K);return{...J,selected:q}},bJ=(J,Q)=>{let Y=new Set(J.selected);for(let q of Q)Y.delete(q);return{...J,selected:Y}},d0=(J,Q,Y)=>{if(Y==="none")return J;if(J.selected.has(Q))return bJ(J,[Q]);else return m0(J,[Q],Y)},HJ=(J,Q,Y)=>{if(Y!=="multiple")return J;return{...J,selected:new Set(Q.map((q)=>q.id))}},kJ=(J)=>({...J,selected:new Set}),c0=(J,Q)=>{return J.focusedIndex=Q,J},KJ=(J,Q,Y=!1,q=1)=>{if(Q===0)return J;let K=J.focusedIndex-q;if(K<0)K=Y?Q-1:0;return J.focusedIndex=K,J},UJ=(J,Q,Y=!1,q=1)=>{if(Q===0)return J;let K=J.focusedIndex+q;if(K>=Q)K=Y?0:Q-1;return J.focusedIndex=K,J},T1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=0,J},b1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=Q-1,J},$J=(J,Q,Y,q)=>{if(Q===0)return J;let K=q==="up"?J.focusedIndex-Y:J.focusedIndex+Y;return K=Math.max(0,Math.min(Q-1,K)),J.focusedIndex=K,J};var yJ=(J)=>{return Array.from(J.selected)},PJ=(J,Q)=>{let Y=[];for(let q of J.selected){let K=Q(q);if(K)Y.push(K)}return Y};var ZJ=(J,Q,Y,q,K)=>{if(K!=="multiple")return J;let X=Math.min(Y,q),U=Math.max(Y,q),G=[];for(let B=X;B<=U;B++){let Z=Q[B];if(Z)G.push(Z.id)}return m0(J,G,K)};var RJ=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,z0=(J)=>{let Q=typeof J==="object"&&J?J:null;return{align:typeof J==="string"?J:Q?.align??"start",behavior:Q?.behavior??"auto",duration:Q?.duration??300}},l0=(J,Q)=>{let Y=null,q=()=>{if(Y!==null)cancelAnimationFrame(Y),Y=null};return{animateScroll:(X,U,G)=>{if(q(),Math.abs(U-X)<1){J.scrollTo(U);return}let B=performance.now(),Z=(N)=>{let k=N-B,_=Math.min(k/G,1),F=X+(U-X)*RJ(_);if(J.scrollTo(F),Q(),_<1)Y=requestAnimationFrame(Z);else Y=null};Y=requestAnimationFrame(Z)},cancelScroll:q}};var H1=(J,Q,Y,q,K,X,U,G,B,Z,N,k,_,F,v,z,D,$)=>{let H=(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),V=new Set;for(let R=0;R<A;R++){let E=M[R];if(E&&"id"in E){if(V.has(E.id)){console.warn(`[vlist] Duplicate item ID "${E.id}" at index ${R}. updateItem() and removeItem() will only match the first occurrence.`);break}V.add(E.id)}}}O(),B.dataManager.setItems(M,0,M.length)},C=(M)=>{let A=Z&&J.sab(2);if(B.dataManager.setItems(M,J.it.length),A&&J.it.length>0){let V=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(V),J.ls=V,J.rfn()}},a=(M)=>{let A=Z?J.sgt():0,V=Z?J.hc.getTotalSize():0,R=[...J.it];if(B.dataManager.clear(),B.dataManager.setItems([...M,...R],0),Z){let E=J.hc.getTotalSize()-V;if(E>0)J.sst(A+E),J.ls=A+E}},p=null,x=null,y=null,m=!1,J0=()=>{if(m)return;m=!0,p=X.get("_updateRenderedItem")??null,x=X.get("_getSelectedIds")??null,y=X.get("_getFocusedIndex")??null},o=(M,A)=>{{let R=J.vtf();if(M<0||M>=R)console.warn(`[vlist] updateItem() index ${M} is out of range (0–${R-1}).`)}if(B.dataManager.updateItem(M,A),J0(),!p)return;let V=B.dataManager.getItem(M);if(V){let E=(x?x():J.ss).has(V.id),T=(y?y():J.fi)===M;p(M,V,E,T)}},b=!1,f=(M)=>{let A=typeof document<"u"?document.activeElement:null,V=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(),!b){let E=B.dataManager;if(typeof E.ensureRange==="function")b=!0,queueMicrotask(()=>{b=!1;let T=B.dataManager.getTotal(),{start:g,end:n}=B.state.viewportState.renderRange;if(T>0&&n>=g)E.ensureRange(g,n).catch(()=>{})})}if(V>=0){let E=J.vtf();if(E>0)q.get(Math.min(V,E-1))?.focus()}return!0},S=(M)=>{return B.dataManager.getItem(M)},r=(M)=>{return B.dataManager.getIndexById?.(M)??-1},L=async(M)=>{if(B.dataManager.reload)await B.dataManager.reload()},P=null,O=()=>{if(P!==null)cancelAnimationFrame(P),P=null},h=(M,A,V,R)=>{if(O(),Math.abs(A-M)<1){J.sst(A),J.ls=A,J.rfn();return}let E=performance.now(),T=(g)=>{let n=g-E,t=Math.min(n/V,1),e=R?R():A,j0=M+(e-M)*RJ(t);if(J.sst(j0),J.ls=j0,J.rfn(),t<1)P=requestAnimationFrame(T);else P=null};P=requestAnimationFrame(T)},d=(M,A)=>{{let t=J.vtf();if(t>0&&(M<0||M>=t))console.warn(`[vlist] scrollToIndex(${M}) is out of range (0–${t-1}).`)}let{align:V,behavior:R,duration:E}=z0(A),T=J.vtf(),g=M;if(N&&T>0)g=(g%T+T)%T;let n=J.gsp(g,J.hc,J.ch,T,V);if(R==="smooth"){let t=g,e=V;h(J.sgt(),n,E,()=>J.gsp(t,J.hc,J.ch,J.vtf(),e))}else O(),J.sst(n)},l=()=>J.sgt(),I=(M,A)=>{return Y.on(M,A)},u=(M,A)=>{Y.off(M,A)},W=()=>{if(J.id)return;if(J.id=!0,B.state.isDestroyed=!0,Q.items.removeEventListener("click",k),Q.items.removeEventListener("dblclick",_),Q.root.removeEventListener("keydown",F),J.st.removeEventListener("scroll",v),z.disconnect(),D(),J.wh)Q.viewport.removeEventListener("wheel",J.wh);$();let M=[];for(let A=0;A<G.length;A++)try{G[A]()}catch(V){M.push(V instanceof Error?V:Error(String(V)))}for(let A of U)if(A.destroy)try{A.destroy()}catch(V){M.push(V instanceof Error?V:Error(String(V)))}O();for(let[,A]of q)A.remove(),K.release(A);q.clear(),K.clear(),Y.emit("destroy",void 0);for(let A of M)Y.emit("error",{error:A,context:"destroy"});Y.clear(),Q.root.remove()},j=(M,A)=>X.has(M)?X.get(M):A,w={get element(){return Q.root},get items(){let M=X.get("_getItems");return M?M():J.it},get total(){let M=X.get("_getTotal");return M?M():J.vtf()},setItems:j("setItems",H),appendItems:j("appendItems",C),prependItems:j("prependItems",a),updateItem:j("updateItem",o),removeItem:j("removeItem",f),reload:j("reload",L),getItemAt:S,getIndexById:r,scrollToIndex:j("scrollToIndex",d),cancelScroll:j("cancelScroll",O),getScrollPosition:j("getScrollPosition",l),on:I,off:u,destroy:W};for(let[M,A]of X){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;w[M]=A}return w};var Y4=3,j4="vlist",X4=150,K4=16000000,U4=0,wJ=(J)=>{if(!J.container)throw Error("[vlist] Container is required");if(!J.item)throw Error("[vlist] item configuration is required");let Q=J.orientation==="horizontal",Y=Q?"width":"height",q=Q?"estimatedWidth":"estimatedHeight",K=Q?J.item.width:J.item.height,X=Q?J.item.estimatedWidth:J.item.estimatedHeight;if(K==null&&X==null)throw Error(`[vlist] item.${Y} or item.${q} is required${Q?" when orientation is 'horizontal'":""}`);if(K!=null){if(typeof K==="number"&&K<=0)throw Error(`[vlist] item.${Y} must be a positive number`);if(typeof K!=="number"&&typeof K!=="function")throw Error(`[vlist] item.${Y} must be a number or a function (index) => number`)}else if(X!=null){if(typeof X!=="number"||X<=0)throw Error(`[vlist] item.${q} must be a positive number`)}if(!J.item.template)throw Error("[vlist] item.template is required");if(Q&&J.reverse)throw Error("[vlist] horizontal direction cannot be combined with reverse mode");let U=new Map,G=!1,B={use(Z){if(G)throw Error("[vlist] Cannot call .use() after .build()");return U.set(Z.name,Z),B},build(){if(G)throw Error("[vlist] .build() can only be called once");return G=!0,Z4(J,U,Q,K,X??null)}};return B};function Z4(J,Q,Y,q,K){let{item:X,items:U,overscan:G=Y4,classPrefix:B=j4,ariaLabel:Z,padding:N,reverse:k=!1,scroll:_,accessible:F,interactive:v}=J,z=v??F??!0,D=_,$=D?.wheel??!0,H=D?.wrap??!1,C=k,a=`${B}-${U4++}`,p=Q.has("withGrid")||Q.has("withMasonry")?0:X.gap??0,x=q??K,y=q==null&&K!=null,m=Y?typeof X.height==="number"?X.height:void 0:typeof X.width==="number"?X.width:void 0,J0={overscan:G,classPrefix:B,reverse:C,wrap:H,horizontal:Y,ariaIdPrefix:a,interactive:z},o=Array.from(Q.values()).sort((c,i)=>(c.priority??50)-(i.priority??50)),b=new Set(o.map((c)=>c.name));for(let c of o)if(c.conflicts){for(let i of c.conflicts)if(b.has(i))throw Error(`[vlist] ${c.name} and ${i} cannot be combined`)}if(C){if(b.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let f=K1(J.container),S=U1(f,B,Z,Y,z);if(D?.wheel===!1)if(Y)S.viewport.style.overflowX="hidden";else S.viewport.style.overflow="hidden";if(D?.scrollbar==="none")S.viewport.classList.add(`${B}-viewport--no-scrollbar`);if(D?.gutter==="stable")S.viewport.classList.add(`${B}-viewport--gutter-stable`);let r=b.has("withGrid")||b.has("withMasonry");if(Y&&m!=null&&D?.scrollbar!=="none"&&!r){S.root.style.height=`${m}px`;let c=S.viewport.style.overflowX;S.viewport.style.overflowX="scroll";let i=S.viewport.offsetHeight-S.viewport.clientHeight;if(S.viewport.style.overflowX=c,i>0)S.root.style.height=`${m+i}px`}let L=y0(N),P=p0(L,Y);if(L.top||L.right||L.bottom||L.left)S.content.style.boxSizing="border-box",S.content.style.padding=`${L.top}px ${L.right}px ${L.bottom}px ${L.left}px`;let O=X1(),h=U||[],d=typeof x==="function"&&(Q.has("withGrid")||Q.has("withMasonry")),l=p>0?typeof x==="function"?(c)=>x(c)+p:x+p:x,I=y?K+p:l,u=f0(I,d?0:h.length);if(p>0){let c=u.getTotalSize;u.getTotalSize=()=>{let i=c();return i>0?i-p:0}}let W=Z1(),j={it:h,hc:u,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?(c)=>{S.viewport.scrollLeft=c}:(c)=>{S.viewport.scrollTop=c},sab:(c=2)=>{let i=j.hc.getTotalSize();return j.ls+j.ch>=i-c},sic:!1,rfn:null,ffn:null,gvr:(c,i,Y0,G0,F0)=>{B1(c,i,Y0,G0,F0)},gsp:(c,i,Y0,G0,F0)=>{return W1(c,i,Y0,G0,F0,j.mp)},pef:null,at:X.template,vre:!0,st:S.viewport,wh:null,gcw:()=>j.cw,gch:()=>j.ch,gp:p,mp:P,sif:(c)=>c,i2s:(c)=>c,uic:(c,i,Y0)=>{let G0=g.get(c);if(!G0)return;q0(G0,i,Y0)},csi:null};j.vtf=()=>j.dm?j.dm.getTotal():j.it.length;let w=null,M=!1,A={start:0,end:0},V={start:0,end:0},R={start:-1,end:-1},E={viewportState:{scrollPosition:0,containerSize:Y?j.cw:j.ch,totalSize:j.hc.getTotalSize(),actualSize:j.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},T=()=>({...E.viewportState,totalItems:j.vtf()}),g=new Map,n=()=>{u0(S.items,g.keys(),(c)=>g.get(c))},t=()=>{let c=j.hc.getTotalSize(),Y0=`${(j.sic?c:Math.min(c,K4))+P}px`;if(Y)S.content.style.width=Y0;else S.content.style.height=Y0},e={selected:!1,focused:!1},j0=`${B}-item`,s=`${B}-item--selected`,Q0=`${B}-item--focused`,q0=(c,i,Y0)=>{c.classList.toggle(s,i),c.classList.toggle(Q0,Y0),c.ariaSelected=i?"true":"false"},U0=X.striped,Z0=!!U0,N0=U0==="data"||U0==="even"||U0==="odd",D0=`${B}-item--odd`,E0=`${B}-item--placeholder`,X0=`${B}-item--replaced`,V0=`${B}--scrolling`,K0=[],_0=[],W0=[],B0=[],A0=[],O0=[],L0=[],$0=[],P0=new Map,WJ="__placeholder_",VJ={scrollPosition:0,direction:"down"},I0={velocity:0,reliable:!1},_J={range:{start:0,end:0}},GJ=null,DJ=null,aJ=!1,r1=()=>{if(aJ)return;aJ=!0,GJ=P0.get("_getSelectedIds")??null,DJ=P0.get("_getFocusedIndex")??null},e0=(c,i,Y0)=>{if(!i)console.warn(`[vlist] Template returned falsy value${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);else if(typeof i==="string"&&i==="")console.warn(`[vlist] Template returned empty string${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);if(typeof i==="string")c.innerHTML=i;else c.replaceChildren(i)},a1=(c,i)=>{let Y0=Math.round(j.hc.getOffset(i));if(Y)c.style.transform=`translateX(${Y0}px)`;else c.style.transform=`translateY(${Y0}px)`};j.pef=a1;let s1=(c,i)=>{let Y0=W.acquire();Y0.className=j0;let G0=!j.csi||j.csi(c);if(Y){if(G0)Y0.style.width=`${j.hc.getSize(c)-p}px`;else Y0.style.width="";if(m!=null)Y0.style.height=`${m}px`}else if(G0)Y0.style.height=`${j.hc.getSize(c)-p}px`;else Y0.style.height="";if(Y0.dataset.index=String(c),Y0.dataset.id=String(i.id),Y0.ariaSelected="false",Y0.id=`${a}-item-${c}`,j.la=String(j.vtf()),Y0.setAttribute("aria-setsize",j.la),Y0.setAttribute("aria-posinset",String(c+1)),String(i.id).startsWith(WJ))Y0.classList.add(E0);if(Z0)if(N0){let b0=j.sif(c);if(b0<0)Y0.classList.remove(D0);else Y0.classList.toggle(D0,(b0&1)===1)}else Y0.classList.toggle(D0,(c&1)===1);try{e0(Y0,j.at(i,c,e),c)}catch(b0){let T0=b0 instanceof Error?b0:Error(String(b0));O.emit("error",{error:T0,context:`tpl(${c},${i.id})`,viewport:T()}),Y0.textContent=""}return j.pef(Y0,c),Y0},o1=()=>{if(j.id)return;let c=Y?j.cw:j.ch;if(c<=0)return;r1();let i=GJ?GJ():j.ss,Y0=DJ?DJ():j.fi,G0=j.vtf();if(j.gvr(j.ls,c,j.hc,G0,A),N1(A,G,G0,V),V.start===R.start&&V.end===R.end){if(j.sic)for(let[M0,H0]of g)j.pef(H0,M0);E.viewportState.scrollPosition=j.ls,E.viewportState.containerSize=c,E.viewportState.visibleRange.start=A.start,E.viewportState.visibleRange.end=A.end,E.viewportState.renderRange.start=V.start,E.viewportState.renderRange.end=V.end;return}let F0=String(G0),b0=F0!==j.la;j.la=F0;for(let[M0,H0]of g)if(M0<V.start||M0>V.end)H0.remove(),W.release(H0),g.delete(M0);let T0=document.createDocumentFragment(),v0=!1,s0=L0.length>0?[]:null;for(let M0=V.start;M0<=V.end;M0++){let H0=j.dm?j.dm.getItem(M0):j.it[M0];if(H0===void 0)continue;let k0=g.get(M0);if(k0){let S0=k0.dataset.id,h0=String(H0.id);if(S0!==h0){let e1=S0?.startsWith(WJ),EJ=h0.startsWith(WJ);try{e0(k0,j.at(H0,M0,e),M0)}catch(AJ){let J4=AJ instanceof Error?AJ:Error(String(AJ));O.emit("error",{error:J4,context:`tpl(${M0},${H0.id})`,viewport:T()}),k0.textContent=""}k0.dataset.id=h0;let J1=!j.csi||j.csi(M0);if(Y)k0.style.width=J1?`${j.hc.getSize(M0)-p}px`:"";else k0.style.height=J1?`${j.hc.getSize(M0)-p}px`:"";if(EJ)k0.classList.add(E0);else k0.classList.remove(E0);if(e1&&!EJ)k0.classList.add(X0),setTimeout(()=>{k0.classList.remove(X0)},300);if(j.dm&&!EJ)w0(i,M0,H0.id)}j.pef(k0,M0);let qJ=i.has(H0.id);if(q0(k0,qJ,M0===Y0),b0)k0.setAttribute("aria-setsize",j.la)}else{let S0=s1(M0,H0);if(s0)s0.push({index:M0,element:S0});if(j.dm)w0(i,M0,H0.id);let h0=i.has(H0.id),qJ=M0===Y0;if(h0||qJ)q0(S0,h0,qJ);T0.appendChild(S0),g.set(M0,S0),v0=!0}}if(v0)S.items.appendChild(T0);if(s0&&s0.length>0)for(let M0=0;M0<L0.length;M0++)L0[M0](s0);R.start=V.start,R.end=V.end,E.lastRenderRange.start=V.start,E.lastRenderRange.end=V.end,E.viewportState.scrollPosition=j.ls,E.viewportState.visibleRange.start=A.start,E.viewportState.visibleRange.end=A.end,E.viewportState.renderRange.start=V.start,E.viewportState.renderRange.end=V.end,_J.range.start=V.start,_J.range.end=V.end,O.emit("range:change",_J)},n1=()=>{R.start=-1,R.end=-1,j.rfn()};j.rfn=o1,j.ffn=n1;let i1=()=>{S.root.classList.remove(V0),M=!1,j.vt.velocity=0,j.vt.sampleCount=0,I0.velocity=0,I0.reliable=!1,O.emit("velocity:change",I0),n();for(let c=0;c<_0.length;c++)_0[c]();O.emit("scroll:idle",{scrollPosition:j.ls})},t1=()=>{if(w)clearTimeout(w);w=setTimeout(i1,D?.idleTimeout??X4)},a0=()=>{if(j.id)return;let c=j.sgt();if(c===j.ls&&M)return;let i=c>=j.ls?"down":"up";if(j.vt=Y1(j.vt,c),!S.root.classList.contains(V0))S.root.classList.add(V0);M=!0,j.ls=c,j.rfn(),VJ.scrollPosition=c,VJ.direction=i,O.emit("scroll",VJ),I0.velocity=j.vt.velocity,I0.reliable=j.vt.sampleCount>=Q1,O.emit("velocity:change",I0);for(let Y0=0;Y0<K0.length;Y0++)K0[Y0](c,i);t1()},JJ=null;if(j.st.addEventListener("scroll",a0,{passive:!0}),$){let c=S.viewport;if(Y)JJ=(i)=>{if(E.viewportState.isCompressed)return;if(Math.abs(i.deltaX)>Math.abs(i.deltaY))return;let Y0=j.sgt(),G0=c.scrollWidth-c.clientWidth,F0=Math.max(0,Math.min(Y0+i.deltaY,G0));if(Math.abs(F0-Y0)<1)return;i.preventDefault(),j.sst(F0),a0()};else JJ=(i)=>{if(E.viewportState.isCompressed)return;let Y0=c.scrollWidth>c.clientWidth;if(Y0&&Math.abs(i.deltaX)>Math.abs(i.deltaY))return;if(Y0&&i.deltaX!==0)i.preventDefault(),c.scrollLeft+=i.deltaX;let G0=j.sgt(),F0=c.scrollHeight-c.clientHeight,b0=Math.max(0,Math.min(G0+i.deltaY,F0));if(Math.abs(b0-G0)<1)return;i.preventDefault(),j.sst(b0),a0()};j.wh=JJ,c.addEventListener("wheel",JJ,{passive:!1})}let sJ=(c)=>{let i=c.target.closest("[data-index]");if(!i)return null;let Y0=parseInt(i.dataset.index??"-1",10);if(Y0<0)return null;let G0=j.dm?.getItem(Y0)??j.it[Y0];if(!G0||G0.__groupHeader)return null;return{item:G0,index:Y0}},oJ=(c)=>{let i=sJ(c);if(i)O.emit("item:click",{item:i.item,index:i.index,event:c});for(let Y0=0;Y0<W0.length;Y0++)W0[Y0](c)},nJ=(c)=>{let i=sJ(c);if(i)O.emit("item:dblclick",{item:i.item,index:i.index,event:c})},iJ=(c)=>{for(let i=0;i<B0.length;i++)B0[i](c)};if(S.items.addEventListener("click",oJ),S.items.addEventListener("dblclick",nJ),S.root.addEventListener("keydown",iJ),z){let c=null,i=(Y0)=>{if(c)clearTimeout(c);c=setTimeout(()=>{if(c=null,j.id)return;let G0=j.vtf();S.liveRegion.textContent=`Showing items ${Y0.range.start+1} to ${Math.min(Y0.range.end+1,G0)} of ${G0}`},300)};O.on("range:change",i),$0.push(()=>{if(c)clearTimeout(c);O.off("range:change",i)})}let MJ=new ResizeObserver((c)=>{if(j.id)return;for(let i of c){let Y0=i.contentRect.height,G0=i.contentRect.width,F0=Y?G0:Y0,b0=Y?j.cw:j.ch;if(j.cw=G0,j.ch=Y0,Math.abs(F0-b0)>1){if(E.viewportState.containerSize=F0,j.ii){let T0=E.cachedCompression;if(T0&&T0.state.isCompressed){let v0=`${T0.state.virtualSize+P}px`;if(Y)S.content.style.width=v0;else S.content.style.height=v0}else t();j.rfn(),O.emit("resize",{height:Y0,width:G0})}}if(j.ii)for(let T0=0;T0<A0.length;T0++)A0[T0](G0,Y0)}});if(j.vre)MJ.observe(S.viewport);let OJ={dom:S,emitter:O,resolvedConfig:J0,rawConfig:J,rendered:g,pool:W,itemState:e,sharedState:E,renderRange:V,isHorizontal:Y,classPrefix:B,contentSizeHandlers:O0,idleHandlers:_0,afterScroll:K0,clickHandlers:W0,keydownHandlers:B0,resizeHandlers:A0,destroyHandlers:$0,methods:P0,onScrollFrame:a0,resizeObserver:MJ,afterRenderBatch:L0,applyTemplate:e0,updateContentSize:t},QJ=V1(j,OJ);j.dm=_1(j,OJ,QJ),j.sc=G1(j,OJ),P0.set("_updateRenderedItem",(c,i,Y0,G0)=>{let F0=g.get(c);if(!F0)return;let b0={selected:Y0,focused:G0};try{let T0=j.at(i,c,b0);e0(F0,T0,c)}catch(T0){let v0=T0 instanceof Error?T0:Error(String(T0));O.emit("error",{error:v0,context:`tpl(${c},${i.id})`,viewport:T()})}F0.dataset.id=String(i.id),q0(F0,Y0,G0)});let tJ=new WeakSet;P0.set("_setSizeCache",(c)=>{if(j.hc=c,j.gp>0&&!tJ.has(c)){tJ.add(c);let i=j.hc.getTotalSize,Y0=j.gp;j.hc.getTotalSize=()=>{let G0=i();return G0>0?G0-Y0:0}}}),P0.set("_setConstrainSize",(c)=>{j.csi=c});let eJ=new Map;for(let c of o)if(c.methods)for(let i of c.methods){let Y0=eJ.get(i);if(Y0)throw Error(`[vlist] Method "${i}" is registered by both "${Y0}" and "${c.name}"`);eJ.set(i,c.name)}for(let c of o)try{c.setup(QJ)}catch(i){let Y0=i instanceof Error?i:Error(String(i));console.error(`[vlist] Feature "${c.name}" setup failed:`,Y0),O.emit("error",{error:Y0,context:c.name,viewport:T()})}if(y&&!Q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(z&&!P0.has("_getFocusedIndex")){let c=Y?L.left:L.top,i=Y?L.right:L.bottom;D1(j,S,B,a,Y,c,i,H,P0,g,B0,W0,$0,!!J.focusOnClick)}if(j.ii=!0,QJ.state.isInitialized=!0,t(),j.rfn(),C&&j.it.length>0){let c=j.gsp(j.it.length-1,j.hc,j.ch,j.it.length,"end");j.sst(c),j.ls=c,j.rfn()}return H1(j,S,O,g,W,P0,o,$0,QJ,C,H,oJ,nJ,iJ,a0,MJ,()=>{},()=>{if(w)clearTimeout(w)})}var n0=(J,Q,Y)=>{let q=Q.getTotalSize(),K=Y===!0||q>x0,X=q>x0?x0:q,U=q>0?X/q:1;return{isCompressed:K,actualSize:q,virtualSize:X,ratio:U}},k1=(J,Q,Y,q,K,X)=>{if(q===0||Q===0)return X.start=0,X.end=-1,X;if(!K.isCompressed||K.ratio===1){let _=Y.indexAtOffset(J),F=Y.indexAtOffset(J+Q);if(F<q-1)F++;return X.start=Math.max(0,_),X.end=Math.min(q-1,Math.max(0,F)),X}let{virtualSize:U}=K,B=J/U*q,Z=Math.floor(B),N=j1(Y,Math.max(0,Z),Q,q),k=Math.ceil(B)+N;return X.start=Math.max(0,Z),X.end=Math.min(q-1,Math.max(0,k)),X};var r0=(J,Q,Y,q,K,X,U)=>{if(!X.isCompressed||q===0)return Y.getOffset(J);if(X.ratio===1)return Y.getOffset(J)-Q;let{virtualSize:G}=X,B=Q/G,Z=Y.getTotalSize(),N=B*Z;return Y.getOffset(J)-N},$1=(J,Q,Y,q,K,X="start")=>{if(q===0)return 0;let U;if(K.isCompressed&&K.ratio!==1){U=J/q*K.virtualSize;let N=Q.getSize(J);switch(X){case"center":U-=(Y-N)/2*K.ratio;break;case"end":U-=(Y-N)*K.ratio;break}return Math.max(0,U)}U=Q.getOffset(J);let G=Q.getSize(J);switch(X){case"center":U-=(Y-G)/2;break;case"end":U-=Y-G;break}let B=K.virtualSize-Y;return Math.max(0,Math.min(U,B))};var B4=(J)=>{if(typeof J!=="object"){let Q=J??2;return{top:Q,right:Q,bottom:Q,left:Q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},i0=(J,Q,Y={},q="vlist",K=!1)=>{let{autoHide:X=!0,autoHideDelay:U=1000,minThumbSize:G=15,showOnHover:B=!0,showOnViewportEnter:Z=!0,clickBehavior:N="page"}=Y,k=B4(Y.padding),_=K?k.left:k.top,F=K?k.right:k.bottom,v=K?k.bottom:k.right,z=Y.hoverZoneWidth??v+16,D=0,$=0,H=0,C=0,a=!1,p=!1,x=0,y=0,m=0,J0=null,o=!1,b=null,f=null,S=0,r=0,L=null,P=null,O=null,h=K?"width":"height",d=K?"translateX":"translateY",l=K?(K0)=>K0.clientX:(K0)=>K0.clientY,I=K?"left":"top",u=document.createElement("div"),W=document.createElement("div"),j=document.createElement("div"),w=()=>{if(u.className=`${q}-scrollbar`,W.className=`${q}-scrollbar-thumb`,K)u.classList.add(`${q}-scrollbar--horizontal`);if(Y.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${k.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${k.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${k.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${k.left}px`);if(Y.minThumbSize!==void 0)u.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${G}px`);if(u.appendChild(W),J.appendChild(u),j.className=`${q}-scrollbar-hover`,K)j.classList.add(`${q}-scrollbar-hover--horizontal`),j.style.height=`${z}px`;else j.style.width=`${z}px`;J.appendChild(j)},M=()=>{if(J0)clearTimeout(J0),J0=null},A=()=>{if(!X)return;M(),J0=setTimeout(R,U)},V=()=>{if(D<=$)return;if(M(),!o)u.classList.add(`${q}-scrollbar--visible`),o=!0;if(X&&!a&&!p)A()},R=()=>{if(a||p)return;u.classList.remove(`${q}-scrollbar--visible`),o=!1},E=(K0,_0)=>{D=K0,$=_0;let W0=D>$;if(u.style.display=W0?"":"none",!W0){R();return}let B0=Math.max(0,$-_-F),A0=$/D;H=Math.max(G,A0*B0),W.style[h]=`${H}px`,C=B0-H,T(m)},T=(K0)=>{if(m=K0,D<=$||C<=0)return;let _0=D-$,B0=Math.min(1,Math.max(0,K0/_0))*C;W.style.transform=`${d}(${B0}px)`},g=(K0)=>{if(K0.target===W||N!=="jump"||C<=0)return;let _0=D-$,W0=u.getBoundingClientRect(),B0=l(K0)-W0[I],A0=Math.max(0,Math.min(B0-H/2,C));Q(A0/C*_0),V()},n=()=>{if(L!==null)clearTimeout(L),L=null;if(P!==null)cancelAnimationFrame(P),P=null;O=null},t=(K0)=>{let _0=C>0?r/K0*C:0;if(S<_0)return-1;if(S>=_0+H)return 1;return 0},e=()=>{let K0=D-$,_0=t(K0);if(_0===0){n();return}if(_0===-1){if(r<=0){n();return}let W0=Math.max(0,r-$);r=W0,Q(W0)}else{if(r>=K0){n();return}let W0=Math.min(K0,r+$);r=W0,Q(W0)}V()},j0=(K0)=>{if(O===null){O=K0,P=requestAnimationFrame(j0);return}let _0=D-$,W0=K0-O;O=K0;let B0=t(_0);if(B0===0){n();return}let A0=12*$/1000,O0=Math.min(A0*W0,$);if(B0===-1){if(r<=0){n();return}let L0=Math.max(0,r-O0);r=L0,Q(L0)}else{if(r>=_0){n();return}let L0=Math.min(_0,r+O0);r=L0,Q(L0)}M(),P=requestAnimationFrame(j0)},s=()=>{n(),A(),document.removeEventListener("mouseup",s)},Q0=(K0)=>{if(K0.target===W||N!=="page")return;K0.preventDefault();let _0=u.getBoundingClientRect();S=l(K0)-_0[I],r=m,e(),L=setTimeout(()=>{P=requestAnimationFrame(j0)},350),document.addEventListener("mouseup",s)},q0=(K0)=>{K0.preventDefault(),K0.stopPropagation(),a=!0,x=l(K0),y=m,M(),u.classList.add(`${q}-scrollbar--dragging`),document.addEventListener("mousemove",U0),document.addEventListener("mouseup",Z0)},U0=(K0)=>{if(!a)return;let _0=l(K0)-x,W0=C>0?_0/C:0,B0=D-$,A0=W0*B0,O0=Math.max(0,Math.min(y+A0,B0)),$0=O0/B0*C;if(W.style.transform=`${d}(${$0}px)`,f=O0,b===null)b=requestAnimationFrame(()=>{if(f!==null)Q(f);b=null})},Z0=()=>{if(a=!1,b!==null)cancelAnimationFrame(b),b=null;if(f!==null)Q(f),f=null;if(u.classList.remove(`${q}-scrollbar--dragging`),X&&!p)A();document.removeEventListener("mousemove",U0),document.removeEventListener("mouseup",Z0)},N0=()=>{if(Z)V()},D0=()=>{if(!a){if(p=!1,X)A()}},E0=()=>{p=!0,M(),V()},X0=()=>{if(p=!1,!a&&X)A()},V0=()=>{if(M(),n(),b!==null)cancelAnimationFrame(b),b=null;if(u.removeEventListener("click",g),u.removeEventListener("mousedown",Q0),u.removeEventListener("mouseenter",E0),document.removeEventListener("mouseup",s),u.removeEventListener("mouseleave",X0),W.removeEventListener("mousedown",q0),J.removeEventListener("mouseenter",N0),J.removeEventListener("mouseleave",D0),document.removeEventListener("mousemove",U0),document.removeEventListener("mouseup",Z0),j.removeEventListener("click",g),j.removeEventListener("mousedown",Q0),B)j.removeEventListener("mouseenter",E0),j.removeEventListener("mouseleave",X0);if(j.parentNode)j.parentNode.removeChild(j);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),u.parentNode)u.parentNode.removeChild(u)};if(w(),u.addEventListener("click",g),u.addEventListener("mousedown",Q0),u.addEventListener("mouseenter",E0),u.addEventListener("mouseleave",X0),W.addEventListener("mousedown",q0),J.addEventListener("mouseenter",N0),J.addEventListener("mouseleave",D0),j.addEventListener("click",g),j.addEventListener("mousedown",Q0),B)j.addEventListener("mouseenter",E0),j.addEventListener("mouseleave",X0);return{show:V,hide:R,updateBounds:E,updatePosition:T,isVisible:()=>o,destroy:V0}};var zJ=(J)=>{let Q=null;return{name:"withScrollbar",priority:30,setup(Y){let{dom:q,config:K}=Y,{classPrefix:X,horizontal:U}=K;if(Q=i0(q.viewport,(B)=>Y.scrollController.scrollTo(B),J??{},X,U),!q.viewport.classList.contains(`${X}-viewport--custom-scrollbar`))q.viewport.classList.add(`${X}-viewport--custom-scrollbar`);if(J?.gutter)q.viewport.classList.add(`${X}-viewport--gutter`);Q.updateBounds(Y.state.viewportState.totalSize||Y.getCachedCompression().virtualSize,Y.state.viewportState.containerSize);let G=Q;Y.afterScroll.push((B,Z)=>{G.updatePosition(B),G.show()}),Y.resizeHandlers.push((B,Z)=>{if(G)G.updateBounds(Y.state.viewportState.totalSize||Y.getCachedCompression().virtualSize,Y.state.viewportState.containerSize)}),Y.contentSizeHandlers.push(()=>{if(G)G.updateBounds(Y.state.viewportState.totalSize||Y.getCachedCompression().virtualSize,Y.state.viewportState.containerSize)}),Y.destroyHandlers.push(()=>{if(G)G.destroy()})},destroy(){if(Q)Q.destroy(),Q=null}}};var N4=0.65,W4=0.5,y1=1.7,V4=0.95,_4=0.1,G4=5,D4=100,P1=(J,Q,Y,q=0)=>{if(J<=0)return 0;let K=Q-q;return Math.max(0,K*(1-Y)+q)},CJ=(J)=>{let Q=J?.force??!1,Y=null,q=0,K=!1,X=0,U=0,G=null,B=0,Z=0,N=null,k=[];return{name:"withScale",priority:20,setup(_){let{dom:F,config:v}=_,{classPrefix:z,horizontal:D}=v,$=y0(_.rawConfig.padding),H=D?$.left+$.right:$.top+$.bottom,C=()=>{let o=_.getVirtualTotal(),b=n0(o,_.sizeCache,Q);if(b.isCompressed&&!K){K=!0,_.scrollController.enableCompression(b);let S=D?F.viewport.scrollLeft:F.viewport.scrollTop;if(D)F.viewport.style.overflowX="hidden";else F.viewport.style.overflow="hidden";if(D)F.viewport.scrollLeft=0;else F.viewport.scrollTop=0;if(S>0)q=S,U=S;X=P1(b.virtualSize,_.state.viewportState.containerSize,b.ratio,H),_.updateContentSize(b.virtualSize+X),_.setScrollFns(()=>q,(W)=>{if(q=W,U=W,G!==null)cancelAnimationFrame(G),G=null});let r=()=>{let W=U-q;if(_.getVirtualTotal()===0){q=0,U=0,G=null,_.scrollController.scrollTo(0);return}if(Math.abs(W)<W4){let j=_.getCachedCompression(),w=Math.max(0,j.virtualSize+X-_.state.viewportState.containerSize);q=Math.max(0,Math.min(U,w)),U=q,G=null}else{q+=W*N4;let w=_.getCachedCompression().virtualSize+X-_.state.viewportState.containerSize;q=Math.max(0,Math.min(q,w)),G=requestAnimationFrame(r)}_.scrollController.scrollTo(q)},L=F.viewport,P=(W)=>{W.preventDefault();let j=_.getCachedCompression(),w=j.virtualSize+X-_.state.viewportState.containerSize;if(U=Math.max(0,Math.min(U+W.deltaY*j.ratio*y1,w)),G===null)G=requestAnimationFrame(r)};L.addEventListener("wheel",P,{passive:!1});let O=()=>{if(N!==null)cancelAnimationFrame(N),N=null},h=(W)=>{if(O(),G!==null)cancelAnimationFrame(G),G=null;let j=W.touches[0];if(!j)return;let w=D?j.clientX:j.clientY;B=w,Z=q,k=[{time:performance.now(),y:w}]},d=(W)=>{W.preventDefault();let j=W.touches[0];if(!j)return;let w=D?j.clientX:j.clientY,M=performance.now();if(k.push({time:M,y:w}),k.length>G4)k.shift();let A=B-w,V=_.getCachedCompression(),R=V.virtualSize+X-_.state.viewportState.containerSize,E=Math.max(0,Math.min(Z+A*V.ratio*y1,R));q=E,U=E,_.scrollController.scrollTo(E)},l=(W)=>{let j=performance.now(),w=k.filter((R)=>j-R.time<D4),M=0;if(w.length>=2){let R=w[0],E=w[w.length-1],T=E.time-R.time;if(T>0)M=(R.y-E.y)/T}if(k=[],Math.abs(M)<_4)return;let A=M*16,V=()=>{if(A*=V4,Math.abs(A)<0.5){N=null;return}let E=_.getCachedCompression().virtualSize+X-_.state.viewportState.containerSize,T=q+A;if(T=Math.max(0,Math.min(T,E)),T<=0&&A<0||T>=E&&A>0){q=T,U=T,_.scrollController.scrollTo(T),N=null;return}q=T,U=T,_.scrollController.scrollTo(T),N=requestAnimationFrame(V)};N=requestAnimationFrame(V)};L.addEventListener("touchstart",h,{passive:!0}),L.addEventListener("touchmove",d,{passive:!1}),L.addEventListener("touchend",l,{passive:!0}),L.addEventListener("touchcancel",l,{passive:!0}),_.destroyHandlers.push(()=>{L.removeEventListener("wheel",P),L.removeEventListener("touchstart",h),L.removeEventListener("touchmove",d),L.removeEventListener("touchend",l),L.removeEventListener("touchcancel",l)});let I=F.viewport.querySelector(`.${z}-scrollbar`),u=()=>{if((D?F.viewport.scrollLeft:F.viewport.scrollTop)!==0)if(D)F.viewport.scrollLeft=0;else F.viewport.scrollTop=0};if(L.addEventListener("scroll",u,{passive:!0}),_.destroyHandlers.push(()=>{L.removeEventListener("scroll",u)}),!I){if(Y=i0(F.viewport,(j)=>_.scrollController.scrollTo(j),{},z,D),!F.viewport.classList.contains(`${z}-viewport--custom-scrollbar`))F.viewport.classList.add(`${z}-viewport--custom-scrollbar`);Y.updateBounds(b.virtualSize,_.state.viewportState.containerSize);let W=Y;_.afterScroll.push((j,w)=>{if(W)W.updatePosition(j),W.show()}),_.resizeHandlers.push((j,w)=>{if(W){let M=_.getCachedCompression();W.updateBounds(M.virtualSize,_.state.viewportState.containerSize)}})}}else if(!b.isCompressed&&K){if(K=!1,G!==null)cancelAnimationFrame(G),G=null;if(N!==null)cancelAnimationFrame(N),N=null;if(q=0,U=0,k=[],_.setScrollFns(D?()=>F.viewport.scrollLeft:()=>F.viewport.scrollTop,D?(S)=>{F.viewport.scrollLeft=S}:(S)=>{F.viewport.scrollTop=S}),D)F.viewport.scrollLeft=0;else F.viewport.scrollTop=0;if(_.scrollController.disableCompression(),D)F.viewport.style.overflowX="auto";else F.viewport.style.overflow="auto";if(Y)Y.destroy(),Y=null;X=0,_.updateContentSize(b.actualSize)}else if(b.isCompressed)_.scrollController.updateConfig({compression:b}),X=P1(b.virtualSize,_.state.viewportState.containerSize,b.ratio,H),_.updateContentSize(b.virtualSize+X);if(Y)Y.updateBounds(b.virtualSize+X,_.state.viewportState.containerSize);let f=_.state.viewportState;if(f.isCompressed=b.isCompressed,f.compressionRatio=b.ratio,f.totalSize=b.virtualSize+X,f.actualSize=b.actualSize,_.state.cachedCompression={state:b,totalItems:o},K){let S=Math.max(0,b.virtualSize+X-_.state.viewportState.containerSize),r=q;if(r>S)r=S;else if(r<0)r=0;if(r!==q){if(G!==null)cancelAnimationFrame(G),G=null;if(N!==null)cancelAnimationFrame(N),N=null;_.scrollController.scrollTo(r)}}for(let S=0;S<_.contentSizeHandlers.length;S++)_.contentSizeHandlers[S]()};_.updateCompressionMode=C;let a=_.getCachedCompression.bind(_);_.getCachedCompression=()=>{if(_.state.cachedCompression)return _.state.cachedCompression.state;return a()},_.setVisibleRangeFn((o,b,f,S,r)=>{p=null,x=null;let L=n0(S,f,Q);k1(o,b,f,S,L,r)}),_.setScrollToPosFn((o,b,f,S,r)=>{let L=n0(S,b,Q);return $1(o,b,f,S,L,r)});let p=null,x=null;_.setPositionElementFn((o,b)=>{let f=_.getVirtualTotal(),S=n0(f,_.sizeCache,Q);if(S.isCompressed){let r=_.scrollController.getScrollTop();if(p===null||b<x)x=b,p=Math.round(r0(b,r,_.sizeCache,f,_.state.viewportState.containerSize,S));let L=p+_.sizeCache.getOffset(b)-_.sizeCache.getOffset(x),P=_.config.horizontal;o.style.transform=P?`translateX(${L}px)`:`translateY(${L}px)`}else{let r=Math.round(_.sizeCache.getOffset(b)),L=_.config.horizontal;o.style.transform=L?`translateX(${r}px)`:`translateY(${r}px)`}});let y=D?$.left:$.top,m=D?$.right:$.bottom,J0=_.getItemToScrollIndexFn();_.methods.set("_scrollItemIntoView",(o)=>{let b=_.getCachedCompression(),f=_.state.viewportState.containerSize,S=_.state.viewportState.scrollPosition,r=_.getVirtualTotal(),{visibleRange:L}=_.state.viewportState,P=J0(o),O=XJ(P,_.sizeCache,S,f,y,m,b,r,L);if(O!==S)_.scrollController.scrollTo(O)}),C(),_.destroyHandlers.push(()=>{if(Y)Y.destroy(),Y=null;if(G!==null)cancelAnimationFrame(G),G=null;if(N!==null)cancelAnimationFrame(N),N=null})}}};var R1=(J={})=>{let{chunkSize:Q=100,maxCachedItems:Y=5000,evictionBuffer:q=200,onEvict:K}=J,X=new Map,U=0,G=0,B=(L)=>{let P=X.get(L);if(!P)P={items:Array(Q),count:0,lastAccess:Date.now()},X.set(L,P);else P.lastAccess=Date.now();return P},Z=(L)=>{return Math.floor(L/Q)},N=(L)=>{return L%Q},k=()=>U,_=(L)=>{U=L},F=(L)=>{if(L<0||L>=U)return;let P=Z(L),O=X.get(P);if(!O)return;return O.items[N(L)]},v=(L)=>{if(L<0||L>=U)return!1;let P=Z(L),O=X.get(P);if(!O)return!1;return O.items[N(L)]!==void 0},z=(L,P)=>{let O=Z(L),h=B(O),d=N(L),l=h.items[d]===void 0;if(h.items[d]=P,l)h.count++,G++;if(L>=U)U=L+1},D=(L,P)=>{for(let O=0;O<P.length;O++){let h=P[O];if(h!==void 0)z(L+O,h)}},$=(L)=>{if(L<0||L>=U)return!1;let P=Z(L),O=X.get(P),h=N(L);if(!(O!==void 0&&O.items[h]!==void 0))return!1;let l=P,I=Array.from(X.keys()).filter((W)=>W>=l).sort((W,j)=>W-j),u=[];for(let W of I){let j=X.get(W),w=W*Q;for(let M=0;M<Q;M++){if(j.items[M]===void 0)continue;let A=w+M;if(A<=L)continue;u.push({oldIndex:A,item:j.items[M]})}}if(O.items[h]=void 0,O.count--,G--,O.count===0)X.delete(P);for(let{oldIndex:W}of u){let j=Z(W),w=X.get(j);if(!w)continue;let M=N(W);if(w.items[M]!==void 0){if(w.items[M]=void 0,w.count--,G--,w.count===0)X.delete(j)}}for(let{oldIndex:W,item:j}of u){let w=W-1,M=Z(w),A=B(M),V=N(w);A.items[V]=j,A.count++,G++}return U--,!0},H=(L,P)=>{let O=[];for(let h=L;h<=P&&h<U;h++)O.push(F(h));return O},C=(L,P)=>{for(let O=L;O<=P&&O<U;O++)if(!v(O))return!1;return!0},a=()=>{let L=[],P=null,O=Array.from(X.keys()).sort((h,d)=>h-d);for(let h of O){let d=X.get(h);if(!d)continue;let l=h*Q;for(let I=0;I<Q;I++){let u=l+I;if(u>=U)break;if(d.items[I]!==void 0)if(P===null)P={start:u,end:u};else if(u===P.end+1)P.end=u;else L.push(P),P={start:u,end:u};else if(P!==null)L.push(P),P=null}}if(P!==null)L.push(P);return L},p=(L,P)=>{let O=[],h=null;for(let d=L;d<=P&&d<U;d++)if(!v(d))if(h===null)h={start:d,end:d};else h.end=d;else if(h!==null)O.push(h),h=null;if(h!==null)O.push(h);return O},x=(L)=>{return X.has(L)},y=(L)=>{let P=X.get(L);if(P)P.lastAccess=Date.now()},m=(L,P)=>{if(L>P||X.size===0)return;let O=Date.now(),h=Z(Math.max(0,L)),d=Z(Math.min(U-1,P));for(let l=h;l<=d;l++){let I=X.get(l);if(I)I.lastAccess=O}},J0=(L,P)=>{if(G<=Y)return 0;let O=Math.max(0,L-q),h=Math.min(U-1,P+q),d=Z(O),l=Z(h),I=0,u=[];for(let[W,j]of X)if(W<d||W>l)I+=j.count,u.push(W),G-=j.count,X.delete(W);if(I>0&&K)K(I,u);return I},o=()=>{if(G<=Y)return 0;let L=Array.from(X.entries()).sort(([,h],[,d])=>h.lastAccess-d.lastAccess),P=0,O=[];for(let[h,d]of L){if(G<=Y)break;P+=d.count,G-=d.count,O.push(h),X.delete(h)}if(P>0&&K)K(P,O);return P},b=()=>{return{totalItems:U,cachedItems:G,cachedChunks:X.size,chunkSize:Q,maxCachedItems:Y,memoryEfficiency:U>0?1-G/U:1}},f=()=>G,S=()=>{X.clear(),G=0};return{chunkSize:Q,maxCachedItems:Y,getTotal:k,setTotal:_,get:F,has:v,set:z,setRange:D,delete:$,getRange:H,isRangeLoaded:C,getLoadedRanges:a,findUnloadedRanges:p,getChunkIndex:Z,isChunkLoaded:x,touchChunk:y,touchChunksForRange:m,evictDistant:J0,evictToLimit:o,getStats:b,getCachedCount:f,clear:S,reset:()=>{S(),U=0}}},M4=(J)=>{if(J.length===0)return[];let Q=[...J].sort((q,K)=>q.start-K.start),Y=[{...Q[0]}];for(let q=1;q<Q.length;q++){let K=Q[q],X=Y[Y.length-1];if(K.start<=X.end+1)X.end=Math.max(X.end,K.end);else Y.push({...K})}return Y},w1=(J,Q,Y)=>{let q=Math.floor(J.start/Y)*Y,K=Math.ceil((J.end+1)/Y)*Y-1,X={start:q,end:K};if(Q.length===0)return[X];let U=[],G=M4(Q),B=X.start;for(let Z of G){if(Z.end<B)continue;if(Z.start>X.end)break;if(Z.start>B)U.push({start:B,end:Math.min(Z.start-1,X.end)});if(B=Z.end+1,B>X.end)break}if(B<=X.end)U.push({start:B,end:X.end});return U};var z1=(J={})=>{let{maskCharacter:Q=A1,maxSampleSize:Y=L1}=J,q=[],K=!1,X=(N)=>{if(K||N.length===0)return;let k=Math.min(N.length,Y);for(let _=0;_<k;_++){let F=N[_];if(!F||typeof F!=="object")continue;let v={};for(let[z,D]of Object.entries(F)){if(z.startsWith("_")||z==="id")continue;v[z]=String(D??"").length}if(Object.keys(v).length>0)q.push(v)}K=!0},U=()=>K,G=(N)=>{let k={id:`${R0}${N}`,[TJ]:!0,_index:N};if(q.length===0)return k.label=Q.repeat(12),k;let _=q[N%q.length];for(let[F,v]of Object.entries(_))k[F]=Q.repeat(Math.max(1,v));return k};return{analyzeStructure:X,hasAnalyzedStructure:U,generate:G,generateRange:(N,k)=>{let _=[];for(let F=N;F<=k;F++)_.push(G(F));return _},clear:()=>{q=[],K=!1}}},BJ=(J)=>{if(!J||typeof J!=="object")return!1;return J[TJ]===!0};var O4=50,C1=(J={})=>{let{adapter:Q,initialItems:Y,initialTotal:q,storage:K,placeholder:X,pageSize:U=O4,onStateChange:G,onItemsLoaded:B,onItemsEvicted:Z}=J,N=R1({...K,onEvict:(s,Q0)=>{Z?.(s),m()}}),k=null,_=()=>{if(!k)k=z1(X);return k},F=new Map,v=!1,z,D=!0,$,H,C=[],a=0,p=new Map,x=new Map,y=()=>{for(let s of x.values())s.abort();x.clear(),p.clear()},m=()=>{G?.(O())},J0=()=>{F.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))F.set(U0.id,q0)}},o=(s,Q0)=>{if(!BJ(Q0))F.set(Q0.id,s)},b=(s)=>{F.delete(s)},f=(s,Q0)=>{return`${s}-${Q0}`},S=()=>N.getTotal(),r=()=>N.getCachedCount(),L=()=>v,P=()=>D,O=()=>({total:N.getTotal(),cached:N.getCachedCount(),isLoading:v,pendingRanges:C,error:z,hasMore:D,cursor:$}),h=()=>N,d=()=>_(),l=(s)=>{let Q0=N.get(s);if(Q0!==void 0)return Q0;if(s>=0&&s<N.getTotal())return _().generate(s);return},I=(s)=>{let Q0=F.get(s);if(Q0===void 0)return;return N.get(Q0)},u=(s)=>{return F.get(s)??-1},W=(s)=>{let Q0=N.get(s);return Q0!==void 0&&!BJ(Q0)},j=(s,Q0)=>{let q0=[],U0=N.getTotal(),Z0=0,N0=0;N.touchChunksForRange(s,Math.min(Q0,U0-1));for(let D0=s;D0<=Q0&&D0<U0;D0++){let E0=N.get(D0);if(E0!==void 0)q0.push(E0),Z0++;else q0.push(_().generate(D0)),N0++}return q0},w=(s)=>{N.setTotal(s),D=N.getCachedCount()<s,m()},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 Z0=s[U0];if(Z0!==void 0){let N0=Q0+U0;N.set(N0,Z0),o(N0,Z0)}}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)D=!1;m(),B?.(s,Q0,N.getTotal())},A=(s,Q0)=>{let q0=N.get(s);if(!q0)return!1;let U0=q0.id,Z0={...q0,...Q0};if(N.set(s,Z0),Q0.id!==void 0&&Q0.id!==U0)b(U0);return o(s,Z0),m(),!0},V=(s)=>{let Q0=F.get(s);if(Q0===void 0)return!1;if(!N.delete(Q0))return!1;return J0(),y(),m(),!0},R=async(s,Q0)=>{if(!Q)return;let q0=f(s,Q0);if(p.has(q0))return;let U0=N.getLoadedRanges(),Z0=w1({start:s,end:Q0},U0,N.chunkSize);if(Z0.length===0)return;let N0=N.chunkSize,D0=N0*2;for(let[V0,K0]of x){let _0=V0.indexOf("-"),W0=parseInt(V0.slice(0,_0),10);if(Math.abs(W0-s)>D0)K0.abort(),x.delete(V0),p.delete(V0)}let E0=[];for(let V0 of Z0){let K0=Math.floor(V0.start/N0),_0=Math.floor(V0.end/N0);for(let W0=K0;W0<=_0;W0++){let B0=W0*N0,A0=B0+N0-1,O0=f(B0,A0);if(!E0.some((L0)=>L0.start===B0)&&!p.has(O0))E0.push({start:B0,end:A0})}}let X0=[];for(let V0 of Z0){let K0=Math.floor(V0.start/N0),_0=Math.floor(V0.end/N0);for(let W0=K0;W0<=_0;W0++){let B0=W0*N0,A0=B0+N0-1,O0=f(B0,A0);if(p.has(O0)){let L0=p.get(O0);if(!X0.includes(L0))X0.push(L0)}}}for(let V0 of E0){let K0=f(V0.start,V0.end),_0=new AbortController;x.set(K0,_0);let W0=(async()=>{C.push(V0),v=!0,z=void 0,m();try{let B0=V0.end-V0.start+1,A0={offset:V0.start,limit:B0,cursor:V0.start===H?$:void 0,signal:_0.signal},O0=await Q.read(A0);if(M(O0.items,V0.start,O0.total),O0.cursor)$=O0.cursor,H=V0.start+O0.items.length;let L0=V0.start+O0.items.length;if(L0>=a){if(a=L0,O0.hasMore!==void 0)D=O0.hasMore;else if(O0.total!==void 0)D=L0<O0.total}}catch(B0){if(B0?.name==="AbortError")return;z=B0 instanceof Error?B0:Error(String(B0))}finally{p.delete(K0),x.delete(K0),C=C.filter((B0)=>B0.start!==V0.start||B0.end!==V0.end),v=p.size>0,m()}})();p.set(K0,W0),X0.push(W0)}await Promise.all(X0)},E=async(s,Q0)=>{if(N.isRangeLoaded(s,Q0))return;await R(s,Q0)},T=async()=>{if(!Q)return;await R(0,U-1)},g=async()=>{if(!Q||v||!D)return!1;let s=N.getCachedCount(),Q0=N.getTotal(),q0=s,U0=Math.min(q0+U-1,Q0>0?Q0-1:q0+U-1);if(q0>=Q0&&Q0>0)return D=!1,!1;return await R(q0,U0),N.getCachedCount()>s},n=async()=>{if(N.clear(),N.setTotal(0),F.clear(),k)k.clear();y(),C=[],v=!1,$=void 0,H=void 0,D=!0,a=0,z=void 0,m()},t=(s,Q0)=>{if(N.evictDistant(s,Q0)>0)J0()},e=()=>{N.clear(),F.clear(),$=void 0,H=void 0,z=void 0,C=[],v=!1,m()},j0=()=>{if(N.reset(),F.clear(),k)k.clear();$=void 0,H=void 0,D=!0,a=0,z=void 0,C=[],v=!1,m()};if(Y&&Y.length>0)M(Y,0,q??Y.length);else if(q!==void 0)N.setTotal(q),m();return{getState:O,getTotal:S,getCached:r,getIsLoading:L,getHasMore:P,getStorage:h,getPlaceholders:d,getItem:l,getItemById:I,getIndexById:u,isItemLoaded:W,getItemsInRange:j,setTotal:w,setItems:M,updateItem:A,removeItem:V,loadRange:R,ensureRange:E,loadInitial:T,loadMore:g,reload:n,evictDistant:t,clear:e,reset:j0}};var vJ=(J)=>{let{adapter:Q,loading:Y,storage:q,total:K,autoLoad:X=!0}=J,U=Y?.cancelThreshold??O1,G=Y?.preloadThreshold??E1,B=Y?.preloadAhead??M1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(Z){let{emitter:N}=Z,k=Z.config.reverse,_=Z.methods.get("_getGridLayout"),F=(b)=>{if(_){let f=_();if(f){let S=Z.dataManager.getTotal();return f.getItemRange(b.start,b.end,S)}}return b},v=C1({adapter:Q,...K!==void 0&&{initialTotal:K},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 b=Z.getVirtualTotal();Z.sizeCache.rebuild(b),Z.updateCompressionMode();let f=Z.getCachedCompression();Z.state.viewportState.totalSize=f.virtualSize,Z.state.viewportState.actualSize=f.actualSize,Z.state.viewportState.isCompressed=f.isCompressed,Z.state.viewportState.compressionRatio=f.ratio,Z.updateContentSize(f.virtualSize),Z.renderIfNeeded()}},onItemsLoaded:(b,f,S)=>{if(Z.state.isInitialized)Z.forceRender(),N.emit("load:end",{items:b,total:S,offset:f})}});Z.replaceDataManager(v);let z=null,D=null,$=0,H=!1,C=null,a=120,p=(b=!1)=>{if(H=!1,D=null,b)z=null;if(C!==null)clearTimeout(C),C=null},x=()=>{if(!D)return;D=null;let{renderRange:b}=Z.state.viewportState;if(b.end<b.start)return;z=null;let f=F(b);Z.dataManager.ensureRange(f.start,f.end).catch((S)=>{N.emit("error",{error:S,context:"ensureRange"})})};Z.afterScroll.push((b,f)=>{if(Z.state.isDestroyed)return;let S=Z.scrollController.getVelocity(),L=Z.scrollController.isTracking()&&S<=U;if($>U&&S<=U)H=!0;else if(H&&S>U)p();if(H&&S<0.5)p(!0);if($=S,(Z.scrollController.isAtTop()||Z.scrollController.isAtBottom())&&(H||D))p(!0),L=!0;let O=H&&S>0.5;if(L&&!Z.dataManager.getIsLoading()&&Z.dataManager.getHasMore()){if(k){if(b<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-b-Z.state.viewportState.containerSize<FJ)N.emit("load:start",{offset:Z.dataManager.getCached(),limit:g0}),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},L&&!O){if(D=null,C!==null)clearTimeout(C),C=null;let l=F(h),I=l.start,u=l.end,W=_?Z.dataManager.getTotal():Z.getVirtualTotal();if(S>G)if(f==="down")u=Math.min(l.end+B,W-1);else I=Math.max(l.start-B,0);Z.dataManager.ensureRange(I,u).catch((j)=>{N.emit("error",{error:j,context:"ensureRange"})})}else if(D={start:h.start,end:h.end},O){if(C!==null)clearTimeout(C);C=setTimeout(()=>{C=null,x(),p()},a)}}});let y=200,m=null;Z.afterScroll.push((b,f)=>{if(m!==null)clearTimeout(m);m=setTimeout(()=>{m=null,x(),p()},y)}),Z.destroyHandlers.push(()=>{if(m!==null)clearTimeout(m),m=null;p()});let J0=()=>{if(Z.state.isDestroyed)return;z=null;let{renderRange:b}=Z.state.viewportState;if(b.end>0){let f=F(b);Z.dataManager.ensureRange(f.start,f.end).catch((S)=>{N.emit("error",{error:S,context:"ensureRange"})})}x()};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()=>{z=null,D=null,Z.forceRender();let{renderRange:b}=Z.state.viewportState;if(b.end>0){let f=F(b);N.emit("load:start",{offset:f.start,limit:f.end-f.start+1}),await Z.dataManager.ensureRange(f.start,f.end)}}),Z.methods.set("reload",async(b)=>{z=null,D=null;let f=b?.snapshot,S=f!=null&&(f.total??0)>0&&f.index>0,r=S||b?.skipInitialLoad===!0;if(Z.invalidateRendered(),await Z.dataManager.reload(),!S)Z.scrollController.scrollTo(0);if(!r){N.emit("load:start",{offset:0,limit:g0}),await Z.dataManager.loadInitial(),Z.forceRender();let{renderRange:L}=Z.state.viewportState;if(L.end>0){let P=F(L);await Z.dataManager.ensureRange(P.start,P.end)}}if(S){let L=Z.methods.get("restoreScroll");if(L)L(f)}});let o=!1;if(Z.methods.set("_cancelAutoLoad",()=>{o=!0}),X)queueMicrotask(()=>{if(o)return;N.emit("load:start",{offset:0,limit:g0}),Z.dataManager.loadInitial().catch((b)=>{N.emit("error",{error:b,context:"loadInitial"})})});else if(K!==void 0)Z.dataManager.setTotal(K)}}};var NJ=(J)=>J==null?0:typeof J==="function"?J():J,SJ=(J)=>{let Q=null,Y=J?.scrollPadding;return{name:"withPage",priority:5,setup(q){let{dom:K,state:X,config:U,emitter:G}=q;if(K.root.style.overflow="visible",K.root.style.height="auto",U.horizontal)K.viewport.style.overflowX="visible",K.viewport.style.overflowY="visible";else K.viewport.style.overflow="visible";if(K.viewport.classList.remove(`${U.classPrefix}-viewport--custom-scrollbar`),q.disableViewportResize(),q.disableWheelHandler(),q.setScrollTarget(window),q.setScrollFns(()=>{let k=K.viewport.getBoundingClientRect();return Math.max(0,U.horizontal?-k.left:-k.top)},(k)=>{let _=K.viewport.getBoundingClientRect();if(U.horizontal){let F=_.left+window.scrollX;window.scrollTo({left:F+k,top:window.scrollY,behavior:"instant"})}else{let F=_.top+window.scrollY;window.scrollTo({left:window.scrollX,top:F+k,behavior:"instant"})}}),q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),X.viewportState.containerSize=window.innerHeight,Y){let k=U.horizontal,_=q.getItemToScrollIndexFn();q.setScrollToPosFn((F,v,z,D,$)=>{let H=NJ(k?Y.left:Y.top),C=NJ(k?Y.right:Y.bottom);if(D===0)return 0;let a=Math.max(0,Math.min(F,D-1)),p=v.getOffset(a),x=v.getSize(a),y=v.getTotalSize(),m=Math.max(0,y-z+C),J0;switch($){case"start":J0=p-H;break;case"center":{let o=z-H-C;J0=p-H-(o-x)/2;break}case"end":J0=p-z+x+C;break}return Math.max(-H,Math.min(J0,m))}),q.methods.set("_scrollItemIntoView",(F)=>{let v=_(F),z=k?window.innerWidth:window.innerHeight,D=NJ(k?Y.left:Y.top),$=NJ(k?Y.right:Y.bottom),H=K.viewport.getBoundingClientRect(),C=k?window.scrollX:window.scrollY,a=(k?H.left:H.top)+C,p=a-C,x=q.sizeCache.getOffset(v),y=q.sizeCache.getSize(v),m=p+x,J0=m+y,o=D,b=z-$,f=C;if(m<o)f=a+x-o;else if(J0>b)f=a+x+y-b;if(f!==C)if(k)window.scrollTo({left:f,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:f,behavior:"instant"})})}let{innerHeight:B,innerWidth:Z}=window,N=()=>{let{innerWidth:k,innerHeight:_}=window,F=U.horizontal?k:_,v=U.horizontal?Z:B;if(Math.abs(F-v)<=1)return;B=_,Z=k,X.viewportState.containerSize=_,G.emit("resize",{width:k,height:_});for(let z=0;z<q.resizeHandlers.length;z++)q.resizeHandlers[z](k,_);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 K=Y+q+1>>>1;if(J[K].headerLayoutIndex<=Q)Y=K;else q=K-1}return Y},v1=(J,Q)=>{let Y=0,q=J.length-1;while(Y<q){let K=Y+q+1>>>1;if(J[K].firstDataIndex<=Q)Y=K;else q=K-1}return Y},S1=(J,Q)=>{if(J===0)return[];let Y=[],q=Q(0),K=0,X=0;for(let U=1;U<J;U++){let G=Q(U);if(G!==q){let B=U-K;Y.push({key:q,groupIndex:Y.length,headerLayoutIndex:X,firstDataIndex:K,count:B}),X=X+1+B,q=G,K=U}}return Y.push({key:q,groupIndex:Y.length,headerLayoutIndex:X,firstDataIndex:K,count:J-K}),Y},IJ=(J,Q)=>{if(J.length===0||Q.length===0)return[];let Y=J.length+Q.length,q=Array(Y),K=0;for(let X of Q){q[K]={id:`__group_header_${X.groupIndex}`,__groupHeader:!0,groupKey:X.key,groupIndex:X.groupIndex},K++;for(let U=0;U<X.count;U++)q[K]=J[X.firstDataIndex+U],K++}return q},hJ=(J,Q,Y=!1)=>{let q=typeof Q==="number"?(K)=>Q:Q;return(K)=>{let X=J.getEntry(K);if(X.type==="header"){if(Y&&X.group.groupIndex===0)return 0;return J.getHeaderHeight(X.group.groupIndex)}return q(X.dataIndex)}},f1=(J,Q)=>{let Y=S1(J,Q.getGroupForIndex),q=J+Y.length,K=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return q},get groupCount(){return Y.length},get groups(){return Y},getEntry:(_)=>{if(Y.length===0)return{type:"item",dataIndex:_,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let F=fJ(Y,_),v=Y[F];if(_===v.headerLayoutIndex)return{type:"header",group:v};let z=_-v.headerLayoutIndex-1;return{type:"item",dataIndex:v.firstDataIndex+z,group:v}},layoutToDataIndex:(_)=>{if(Y.length===0)return _;let F=fJ(Y,_),v=Y[F];if(_===v.headerLayoutIndex)return-1;let z=_-v.headerLayoutIndex-1;return v.firstDataIndex+z},dataToLayoutIndex:(_)=>{if(Y.length===0)return _;let F=v1(Y,_),v=Y[F],z=_-v.firstDataIndex;return v.headerLayoutIndex+1+z},getGroupAtLayoutIndex:(_)=>{if(Y.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=fJ(Y,_);return Y[F]},getGroupAtDataIndex:(_)=>{if(Y.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=v1(Y,_);return Y[F]},getHeaderHeight:typeof K==="number"?(_)=>K:(_)=>{let F=Y[_];if(!F)return 0;return K(F.key,_)},rebuild:(_)=>{Y=S1(_,Q.getGroupForIndex),q=_+Y.length}}};var I1=(J,Q,Y,q,K,X=!1,U=0)=>{let G=X?"width":"height",B=X?"height":"width",Z=X?"X":"Y",N=(j,w)=>{j.style[G]=`${w}px`},k=document.createElement("div");k.className=`${K}-sticky-header`,k.setAttribute("role","presentation"),k.setAttribute("aria-hidden","true"),k.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(X?`top:0;bottom:0;left:${U||0}px`:`top:${U||0}px`);let _=()=>{let j=document.createElement("div");return j.className="sticky-group",j.style.position="absolute",j.style.willChange="transform",j.style[B]="100%",j},F=_(),v=_();k.append(F,v),J.insertBefore(k,J.firstChild);let z=F,D=v,$=Q.groups,H=[],C=[],a=0,p=()=>{$=Q.groups,a=$.length,H=Array(a),C=Array(a);for(let j=0;j<a;j++)H[j]=Y.getOffset($[j].headerLayoutIndex),C[j]=Q.getHeaderHeight(j)};p();let x=-1,y=0,m=-1,J0=!1,o=0,b=!1,f=(j,w)=>{q(j,w);let M=C[w];return N(j,M),M},S=(j)=>{j.replaceChildren(),j.style.transform=""},r=(j)=>{if(j===x)return;if(x=j,y=0,j<0||j>=a){S(z);return}y=f(z,j),N(k,y),z.style.transform=""},L=(j)=>{if(j===o)return;o=j;let w=Math.round(j);z.style.transform=`translate${Z}(${w}px)`,D.style.transform=`translate${Z}(${w+y}px)`},P=()=>{o=0,z.style.transform="",D.style.transform=""},O=()=>{if(!b)return;let j=z;z=D,D=j,x=m,y=x>=0?C[x]:0,N(k,y),S(D),m=-1,b=!1,P()},h=()=>{if(!b)return;S(D),m=-1,b=!1,P()},d=()=>{if(J0)return;J0=!0,k.style.display=""},l=()=>{if(!J0)return;J0=!1,k.style.display="none",S(z),x=-1,y=0,h()},I=(j)=>{if(a===0){l();return}if(j<H[0]){l();return}let w=0,M=a-1;while(w<M){let V=w+M+1>>>1;if(H[V]+C[V]<=j)w=V;else M=V-1}if(!J0)d();r(w);let A=w+1;if(A<a){let V=H[A]-j;if(V<=0&&V>-y){if(m!==A||!b)m=A,f(D,A),b=!0;L(V)}else if(V<=-y){if(b)O()}else if(b)h()}else if(b)h()},u=()=>{p();let j=x;if(x=-1,y=0,j>=0)r(j)},W=()=>{k.remove(),x=-1,y=0,m=-1,J0=!1,b=!1};return k.style.display="none",{update:I,refresh:u,show:d,hide:l,destroy:W}};var C0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var h1=(J,Q,Y,q,K,X)=>{if(q===0)return 0;let U=Math.max(0,Math.min(J,q-1)),G=Q.getOffset(U),B=Q.getSize(U),Z=Q.getTotalSize(),N=Math.max(0,Z-Y),k;switch(X){case"center":k=G-Y/2+B/2;break;case"end":k=G-Y+B;break;case"start":default:k=G;break}return Math.max(0,Math.min(k,N))};var t0=(J,Q,Y,q,K="start",X,U=h1)=>{return U(J,Q,Y,q,X,K)};var E4=(J,Q)=>{if(J.header){let Y=Q?J.header.width??J.header.height:J.header.height??J.header.width;return{...J,header:{...J.header,height:Y}}}if(J.headerHeight!=null&&J.headerTemplate)return{...J,header:{height:J.headerHeight,template:J.headerTemplate}};return J},pJ=(J)=>{let Q=J.header,Y=Q?Q.height??Q.width:J.headerHeight,q=Q?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(Y==null||Y<=0)throw Error("[vlist/builder] withGroups: header.height must be a positive number");if(!q)throw Error("[vlist/builder] withGroups: header.template is required");let K=null,X=null,U=[],G=[];return{name:"withGroups",priority:10,setup(B){let{dom:Z,config:N,rawConfig:k}=B,{classPrefix:_}=N,F=E4(J,N.horizontal),z=k.item.height;U=k.items?[...k.items]:[];let D=U.length,$={getGroupForIndex:F.getGroupForIndex,header:{height:F.header.height,template:F.header.template},sticky:F.sticky??!1};K=f1(D,$),G=IJ(U,K.groups);let H=F.sticky!==!1,C=hJ(K,z,H);B.setSizeConfig(C),B.rebuildSizeCache(G.length),B.dataManager.setItems(G,0,G.length);let a=k.item.template,{template:p}=F.header,x=(l,I,u)=>{if(C0(l))return p(l.groupKey,l.groupIndex);return a(l,I,u)},y=B.methods.get("_getGridLayout"),m=B.methods.get("_replaceGridRenderer"),J0=B.methods.get("_updateGridLayoutForGroups"),o=B.methods.get("_createGridRenderer"),b=B.methods.get("_getTableLayout"),f=B.methods.get("_updateTableForGroups"),S=B.methods.get("_getTableHeaderHeight");if(y&&m&&o){if(J0)J0((u)=>{let W=G[u];return!!(W&&C0(W))});let l=y(),I=o(Z.items,x,B.sizeCache,l,_,B.getContainerWidth(),()=>B.dataManager.getTotal(),N.ariaIdPrefix);m(I)}else if(b&&f)f((l)=>C0(l),F.header.template);else B.replaceTemplate(x);let r=S?S():0;if(Z.root.classList.add(`${_}--grouped`),F.sticky!==!1)if(B.methods.set("_getStickyHeaderHeight",()=>F.header.height),!N.horizontal)Z.viewport.style.height=`calc(100% - ${F.header.height}px)`;else Z.viewport.style.width=`calc(100% - ${F.header.height}px)`;if(F.sticky!==!1){let l=F.header.template,I=(W,j)=>{let w=K.groups[j];if(!w)return;let M=l(w.key,w.groupIndex);if(typeof M==="string")W.innerHTML=M;else W.replaceChildren(M)};X=I1(Z.root,K,B.sizeCache,I,_,N.horizontal,r);let u=X;B.afterScroll.push((W,j)=>{u.update(W)}),X.update(B.scrollController.getScrollTop())}let L=k.item?.striped,P=()=>{if(L!=="data"&&L!=="even"&&L!=="odd")return;let l=new Int32Array(G.length),I=L==="odd"?1:0,u=0;for(let W=0;W<G.length;W++)if(C0(G[W])){if(l[W]=-1,L==="even"||L==="odd")u=0}else l[W]=u+++I;B.setStripeIndexFn((W)=>{if(W<0||W>=l.length)return W;return l[W]})};P();let O=()=>{if(!K)return;K.rebuild(U.length),G=IJ(U,K.groups);let l=hJ(K,z,H);if(B.setSizeConfig(l),B.rebuildSizeCache(G.length),B.dataManager.setItems(G,0,G.length),P(),X)X.refresh()};B.methods.set("setItems",(l)=>{U=l.slice(),O()}),B.methods.set("appendItems",(l)=>{U.push(...l),O()}),B.methods.set("prependItems",(l)=>{U.unshift(...l),O()}),B.methods.set("removeItem",(l)=>{U=U.filter((I)=>I.id!==l),O()});let{animateScroll:h,cancelScroll:d}=l0(B.scrollController,B.renderIfNeeded);B.methods.set("scrollToIndex",(l,I)=>{let u=K.dataToLayoutIndex(l),{align:W,behavior:j,duration:w}=z0(I),M=B.dataManager.getTotal(),A=B.adjustScrollPosition(t0(u,B.sizeCache,B.state.viewportState.containerSize,M,W,B.getCachedCompression()));if(j==="smooth")h(B.scrollController.getScrollTop(),A,w);else d(),B.scrollController.scrollTo(A)}),B.methods.set("_getItems",()=>U),B.methods.set("_getTotal",()=>U.length),B.methods.set("_isGroupHeader",(l)=>{let I=G[l];return!!(I&&C0(I))}),B.destroyHandlers.push(()=>{if(d(),X)X.destroy(),X=null;Z.root.classList.remove(`${_}--grouped`)})},destroy(){if(X)X.destroy(),X=null}}};var p1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,q=J.isHeaderFn,K={row:0,col:0},X=(v)=>{if(v<=0)return 0;if(!q)return Math.ceil(v/Q);let z=0,D=0,$=0;for(let H=0;H<v;H++)if(q(H)){if($++,D>0)z++,D=0;z++,D=0}else if(D++,D>=Q)z++,D=0;if(D>0)z++;return z},U=(v)=>{return K.row=G(v),K.col=B(v),K},G=(v)=>{if(!q)return Math.floor(v/Q);let z=0,D=0;for(let $=0;$<=v;$++)if(q($)){if(D>0)z++,D=0;if($===v)return z;z++,D=0}else{if($===v)return z;if(D++,D>=Q)z++,D=0}return console.warn(`⚠️ getRow(${v}) fell through - returning ${z}`),z},B=(v)=>{if(!q)return v%Q;if(q(v))return 0;let z=0;for(let D=0;D<=v;D++)if(q(D))z=0;else{if(D===v)return z;if(z++,z>=Q)z=0}return z},Z=(v,z,D)=>{if(D<=0)return{start:0,end:-1};if(!q){let p=Math.max(0,v*Q),x=Math.min(D-1,(z+1)*Q-1);return{start:p,end:x}}let $=-1,H=-1,C=0,a=0;for(let p=0;p<D;p++){if(q(p)){if(a>0)C++,a=0;if(C>=v&&C<=z){if($===-1)$=p;H=p}C++,a=0}else{if(C>=v&&C<=z){if($===-1)$=p;H=p}if(a++,a>=Q)C++,a=0}if(C>z&&a===0)break}if($===-1)return{start:0,end:-1};return{start:$,end:H}},N=(v,z,D)=>{if(z<0||z>=Q)return-1;let $=v*Q+z;if($<0||$>=D)return-1;return $},k=(v)=>{let z=(Q-1)*Y;return Math.max(0,(v-z)/Q)};return{get columns(){return Q},get gap(){return Y},update:(v)=>{if(v.columns!==void 0)Q=Math.max(1,Math.floor(v.columns));if(v.gap!==void 0)Y=v.gap;if(v.isHeaderFn!==void 0)q=v.isHeaderFn},getTotalRows:X,getPosition:U,getRow:G,getCol:B,getItemRange:Z,getItemIndex:N,getColumnWidth:k,getColumnOffset:(v,z)=>{let D=k(z);return v*(D+Y)}}};var A4=(J=200)=>{let Q=[];return{acquire:()=>{let X=Q.pop();if(X)return X;let U=document.createElement("div");return U.setAttribute("role","option"),U},release:(X)=>{if(X.remove(),Q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),X.removeAttribute("data-row"),X.removeAttribute("data-col"),Q.push(X)},clear:()=>{Q.length=0}}},L4=1,uJ=(J,Q,Y,q,K,X,U,G,B=!1)=>{let Z=A4(),N=new Map,k=X,_=!1,F=0,v="",z=-1,D={selected:!1,focused:!1},$=(W,j)=>{return D.selected=W,D.focused=j,D},H=`${K}-item ${K}-grid-item`,C=`${K}-item--selected`,a=`${K}-item--focused`,p=`${K}-item--placeholder`,x=`${K}-item--replaced`,y=(W,j)=>{if(typeof j==="string")W.innerHTML=j;else W.replaceChildren(j)},m=(W,j,w)=>{W.classList.toggle(C,j),W.classList.toggle(a,w)},J0=(W,j)=>{let w=q.getRow(W);if(j?.compression?.isCompressed)return r0(w,j.scrollPosition,Y,j.totalItems,j.containerSize,j.compression,j.rangeStart);return Y.getOffset(w)},o=(W,j)=>{let w=_&&q.getCol(W)===0,M=w?0:q.getCol(W),A=w?0:q.getColumnOffset(M,k),V;if(_){let R=q.getRow(W),E=0,T=new Set;for(let g=0;g<W;g++){let n=q.getRow(g);if(n<R&&!T.has(n)){let t=Y.getSize(g);E+=t,T.add(n)}}V=E}else V=J0(W,j);if(B)return`translate(${Math.round(V)}px, ${Math.round(A)}px)`;return`translate(${Math.round(A)}px, ${Math.round(V)}px)`},b=(W,j)=>{W.style.transform=j},f=(W,j)=>{let w=W.dataset.id?.startsWith("__group_header"),M=w?k:q.getColumnWidth(k),A;if(_||w)A=Y.getSize(j)-q.gap;else{let V=q.getRow(j);A=Y.getSize(V)-q.gap}if(B)W.style.width=`${A}px`,W.style.height=`${M}px`;else W.style.width=`${M}px`,W.style.height=`${A}px`},S=(W,j,w,M,A)=>{let V=Z.acquire(),R=$(w,M);if(V.className=H,V.dataset.index=String(W),V.dataset.id=String(j.id),V.dataset.row=String(q.getRow(W)),V.dataset.col=String(q.getCol(W)),V.ariaSelected=String(w),G)V.id=`${G}-item-${W}`;if(U){let g=U();if(g!==z)z=g,v=String(g);V.setAttribute("aria-setsize",v),V.setAttribute("aria-posinset",String(W+1))}f(V,W);let E=Q(j,W,R);if(y(V,E),String(j.id).startsWith(R0))V.classList.add(p);return m(V,w,M),b(V,A),{element:V,lastItemId:j.id,lastSelected:w,lastFocused:M,lastTransform:A,lastSeenFrame:F}},r=(W,j,w,M,A)=>{if(F++,j.start===0&&W.length>0)_=C0(W[0]);for(let[E,T]of N)if(E>=j.start&&E<=j.end)T.lastSeenFrame=F;else if(F-T.lastSeenFrame>L4)Z.release(T.element),N.delete(E);let V=!1;if(U){let E=U();if(E!==z)z=E,v=String(E),V=!0}let R=null;for(let E=j.start;E<=j.end;E++){let T=E-j.start,g=W[T];if(!g){console.warn(`⚠️ RENDER: Missing item at index ${E} (range: ${j.start}-${j.end}, items.length: ${W.length})`);continue}let n=w.has(g.id),t=E===M,e=N.get(E);if(e){let j0=e.lastItemId!==g.id,s=e.lastSelected!==n,Q0=e.lastFocused!==t;if(j0){let U0=String(e.lastItemId),Z0=String(g.id),N0=U0.startsWith(R0),D0=Z0.startsWith(R0);if(!D0&&w0(w,E,g.id))n=!0;let E0=$(n,t),X0=Q(g,E,E0);if(y(e.element,X0),e.element.dataset.id=Z0,e.element.dataset.row=String(q.getRow(E)),e.element.dataset.col=String(q.getCol(E)),f(e.element,E),e.element.classList.toggle(p,D0),N0&&!D0)e.element.classList.add(x),setTimeout(()=>e.element.classList.remove(x),300);e.lastItemId=g.id}if(j0||s||Q0)m(e.element,n,t),e.element.ariaSelected=String(n),e.lastSelected=n,e.lastFocused=t;let q0=o(E,A);if(e.lastTransform!==q0)b(e.element,q0),e.lastTransform=q0;if(V)e.element.setAttribute("aria-setsize",v)}else{if(w0(w,E,g.id))n=!0;let j0=o(E,A),s=S(E,g,n,t,j0);if(!R)R=document.createDocumentFragment();R.appendChild(s.element),N.set(E,s)}}if(R)J.appendChild(R)},L=(W)=>{for(let[j,w]of N){let M=o(j,W);if(w.lastTransform!==M)b(w.element,M),w.lastTransform=M}},P=(W,j,w,M)=>{let A=N.get(W);if(!A)return;let V=$(w,M),R=Q(j,W,V);y(A.element,R),m(A.element,w,M),A.element.dataset.id=String(j.id),A.element.ariaSelected=String(w),f(A.element,W),A.lastItemId=j.id,A.lastSelected=w,A.lastFocused=M},O=(W,j,w)=>{let M=N.get(W);if(!M)return;let A=M.lastSelected!==j,V=M.lastFocused!==w;if(A||V)m(M.element,j,w),M.lastSelected=j,M.lastFocused=w},h=(W)=>{return N.get(W)?.element},d=(W)=>{if(Math.abs(W-k)<1)return;k=W;for(let[j,w]of N){f(w.element,j);let M=o(j);b(w.element,M),w.lastTransform=M}},l=()=>{u0(J,N.keys(),(W)=>N.get(W)?.element)},I=()=>{for(let[,W]of N)Z.release(W.element);N.clear()};return{render:r,updatePositions:L,updateItem:P,updateItemClasses:O,getElement:h,sortDOM:l,updateContainerWidth:d,clear:I,destroy:()=>{I(),Z.clear()}}};var F4=new Set,gJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let Q=null,Y=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(q){let{dom:K,emitter:X,config:U,rawConfig:G}=q,{classPrefix:B}=U;if(U.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let Z=U.horizontal,N=jJ(y0(G.padding),Z),k=()=>{return(Z?K.viewport.clientHeight:q.getContainerWidth())-N},_=G.items?.some((I)=>I.__groupHeader===!0),F={columns:J.columns,gap:J.gap??0};if(_)F.isHeaderFn=(I)=>{let u=q.dataManager.getItem(I);return!!(u&&u.__groupHeader===!0)};Q=p1(F);let v=Q.gap;q.setVirtualTotalFn(()=>{let I=q.dataManager.getTotal();return Q.getTotalRows(I)}),q.setItemToScrollIndexFn((I)=>Math.floor(I/F.columns)),q.methods.set("_getNavTotal",()=>q.dataManager.getTotal()),q.methods.set("_getNavDelta",()=>Z?{ud:1,lr:F.columns,cols:F.columns}:{ud:F.columns,lr:1,cols:F.columns});let z=G.item,D=U.horizontal?z.width:z.height,$={containerWidth:k(),columns:Q.columns,gap:Q.gap},H={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof D==="function")q.setSizeConfig((I)=>{let u=$.containerWidth-2,W=($.columns-1)*$.gap;return H.containerWidth=$.containerWidth,H.columns=$.columns,H.gap=$.gap,H.columnWidth=(u-W)/$.columns,H.row=Q.getRow(I),H.column=Q.getCol(I),H.totalRows=Q.getTotalRows(q.dataManager.getTotal()),H.totalColumns=$.columns,D(I,H)+$.gap});else if(v>0)q.setSizeConfig(D+v);if(q.rebuildSizeCache(),v>0){let I=q.sizeCache.getTotalSize;q.sizeCache.getTotalSize=()=>{let u=I();return u>0?u-$.gap:0}}K.root.classList.add(`${B}--grid`);let C=k(),a=G.item.template,p=()=>{Y=uJ(K.items,a,q.sizeCache,Q,B,C,()=>q.dataManager.getTotal(),U.ariaIdPrefix,U.horizontal),q.replaceRenderer(Y)};p(),q.setUpdateItemClassesFn((I,u,W)=>{Y?.updateItemClasses(I,u,W)}),q.methods.set("_updateRenderedItem",(I,u,W,j)=>{Y?.updateItem(I,u,W,j)}),q.methods.set("_getGridLayout",()=>Q),q.methods.set("_getGridConfig",()=>F),q.methods.set("_replaceGridRenderer",(I)=>{Y=I}),q.methods.set("_createGridRenderer",uJ),q.methods.set("_updateGridLayoutForGroups",(I)=>{Q.update({isHeaderFn:I});let u=q.dataManager.getTotal(),W=0;for(let j=0;j<u;j++)if(Q.getCol(j)===0){let w=q.sizeCache.getSize(j);W+=w}q.sizeCache.getTotalSize=()=>W,q.updateContentSize(W),p()}),q.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");F.columns=I.columns}if(I.gap!==void 0){if(I.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");F.gap=I.gap}if(Q)Q.update(F);let u=k();if($.containerWidth=u,$.columns=F.columns,$.gap=F.gap??0,Y)Y.updateContainerWidth(u);q.rebuildSizeCache(),q.updateContentSize(q.sizeCache.getTotalSize()),q.updateCompressionMode();for(let W=0;W<q.contentSizeHandlers.length;W++)q.contentSizeHandlers[W]();if(Y)Y.clear();q.forceRender()});let x=null,y=null,m=!1,J0=()=>{if(m)return;m=!0,x=q.methods.get("_getSelectedIds")??null,y=q.methods.get("_getFocusedIndex")??null},o=-1,b=-1,f=!0,S=U.overscan,r={start:0,end:0},L={start:0,end:0},P=()=>{if(q.state.isDestroyed)return;let I=q.scrollController.getScrollTop(),u=q.state.viewportState.containerSize;if(!f&&I===o&&u===b)return;o=I,b=u,f=!1;let W=q.getVirtualTotal();q.getVisibleRange(I,u,W,r),L.start=Math.max(0,r.start-S),L.end=Math.min(W-1,r.end+S);let j=q.state.viewportState;j.scrollPosition=I,j.visibleRange.start=r.start,j.visibleRange.end=r.end,j.renderRange.start=L.start,j.renderRange.end=L.end;let w=q.state.lastRenderRange,M=j.isCompressed,A=w.start!==L.start||w.end!==L.end;if(!A&&M){Y.updatePositions(q.getCompressionContext());return}let V=q.dataManager.getTotal(),R=Q.getItemRange(L.start,L.end,V),E=q.dataManager.getItemsInRange(R.start,R.end),T=M?q.getCompressionContext():void 0;J0();let g=x?x():F4,n=y?y():-1;if(Y.render(E,R,g,n,T),A)w.start=L.start,w.end=L.end,X.emit("range:change",{range:{start:L.start,end:L.end}})},O=()=>{if(q.state.isDestroyed)return;q.state.lastRenderRange.start=-1,q.state.lastRenderRange.end=-1,f=!0,P()};q.setRenderFns(P,O);let h=typeof D==="function";q.resizeHandlers.push((I,u)=>{let W=(Z?u:I)-N;if(Math.abs(W-$.containerWidth)<1)return;if($.containerWidth=W,Y)Y.updateContainerWidth(W);if(h){q.rebuildSizeCache(),q.updateContentSize(q.sizeCache.getTotalSize()),q.updateCompressionMode();for(let j=0;j<q.contentSizeHandlers.length;j++)q.contentSizeHandlers[j]();if(Y)Y.clear();q.forceRender()}});let{animateScroll:d,cancelScroll:l}=l0(q.scrollController,q.renderIfNeeded);if(q.methods.set("cancelScroll",l),q.methods.set("scrollToIndex",(I,u)=>{let W=Math.floor(I/J.columns),{align:j,behavior:w,duration:M}=z0(u),A=q.dataManager.getState(),V=Q.getTotalRows(A.total),R=Math.max(0,Math.min(W,V-1)),E=q.adjustScrollPosition(t0(R,q.sizeCache,q.state.viewportState.containerSize,V,j,q.getCachedCompression()));if(w==="smooth")d(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;K.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,K=0,X=[],U=()=>{let D=(Q-1)*Y;K=Math.max(0,(q-D)/Q),X=Array(Q);let $=K+Y;for(let H=0;H<Q;H++)X[H]=H*$};U();let G=[],B=0,Z=[],N=(D)=>{let $=0,H=D[0];for(let C=1;C<D.length;C++){let a=D[C];if(a<H)H=a,$=C}return $},k=(D,$)=>{if(D<=0)return B=0,G=[],[];let H=Array(Q).fill(0),C=Array(Q);for(let x=0;x<Q;x++)C[x]=[];let a=Array(D);for(let x=0;x<D;x++){let y=N(H),m=$(x),J0=H[y];a[x]={index:x,x:X[y],y:J0,lane:y,size:m,crossSize:K},C[y].push(x),H[y]=J0+m+Y}G=C;let p=0;for(let x=0;x<Q;x++){let y=H[x],m=y>0?y-Y:0;if(m>p)p=m}return B=p,a},_=(D)=>{if(D.length===0)return B>0?B:0;if(B>0)return B;let $=Array(Q).fill(0);for(let C of D){let a=C.y+C.size,p=$[C.lane];if(a>p)$[C.lane]=a}let H=0;for(let C=0;C<Q;C++)if($[C]>H)H=$[C];return H},F=(D,$,H)=>{if(D.length===0||H<=$)return Z.length=0,Z;if(G.length===0||G.length!==Q)return v(D,$,H);Z.length=0;for(let C=0;C<Q;C++){let a=G[C],p=a.length;if(p===0)continue;let x=0,y=p;while(x<y){let m=x+y>>>1,J0=D[a[m]];if(J0.y+J0.size<=$)x=m+1;else y=m}for(let m=x;m<p;m++){let J0=D[a[m]];if(J0.y>=H)break;Z.push(J0)}}return Z},v=(D,$,H)=>{let C=[];for(let a of D)if(a.y+a.size>$&&a.y<H)C.push(a);return C};return{get columns(){return Q},get gap(){return Y},get containerSize(){return q},update:(D)=>{let $=!1;if(D.columns!==void 0){let H=Math.max(1,Math.floor(D.columns));if(H!==Q)Q=H,$=!0}if(D.gap!==void 0&&D.gap!==Y)Y=D.gap,$=!0;if(D.containerSize!==void 0&&D.containerSize!==q)q=D.containerSize,$=!0;if($)U()},calculateLayout:k,getTotalSize:_,getVisibleItems:F}};var T4=(J=200)=>{let Q=[];return{acquire:()=>{let X=Q.pop();if(X)return X;let U=document.createElement("div");return U.setAttribute("role","option"),U},release:(X)=>{if(X.remove(),Q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),X.removeAttribute("data-lane"),Q.push(X)},clear:()=>{Q.length=0}}},b4=1,g1=(J,Q,Y,q=!1,K,X)=>{let U=T4(),G=new Map,B=new Set,Z=0,N="",k=-1,_={selected:!1,focused:!1},F=(b,f)=>{return _.selected=b,_.focused=f,_},v=`${Y}-item ${Y}-masonry-item`,z=`${Y}-item--selected`,D=`${Y}-item--focused`,$=(b,f)=>{if(typeof f==="string")b.innerHTML=f;else b.replaceChildren(f)},H=(b,f,S)=>{b.classList.toggle(z,f),b.classList.toggle(D,S)},C=(b,f)=>{if(q)b.style.transform=`translate(${Math.round(f.y)}px, ${Math.round(f.x)}px)`;else b.style.transform=`translate(${Math.round(f.x)}px, ${Math.round(f.y)}px)`},a=(b,f)=>{if(q)b.style.width=`${f.size}px`,b.style.height=`${f.crossSize}px`;else b.style.width=`${f.crossSize}px`,b.style.height=`${f.size}px`},p=(b,f,S,r,L)=>{let P=U.acquire(),O=F(r,L);if(P.className=v,P.dataset.index=String(b),P.dataset.id=String(f.id),P.dataset.lane=String(S.lane),P.ariaSelected=String(r),X)P.id=`${X}-item-${b}`;if(K){let d=K();if(d!==k)k=d,N=String(d);P.setAttribute("aria-setsize",N),P.setAttribute("aria-posinset",String(b+1))}a(P,S);let h=Q(f,b,O);return $(P,h),H(P,r,L),C(P,S),{element:P,lastItemId:f.id,lastSelected:r,lastFocused:L,lastY:S.y,lastX:S.x,lastSize:S.size,lastCrossSize:S.crossSize,lastSeenFrame:Z}},x=(b,f,S,r)=>{Z++,B.clear();for(let P=0;P<f.length;P++)B.add(f[P].index);for(let[P,O]of G)if(B.has(P))O.lastSeenFrame=Z;else if(Z-O.lastSeenFrame>b4)U.release(O.element),G.delete(P);let L=null;for(let P=0;P<f.length;P++){let O=f[P],h=O.index,d=b(h);if(!d)continue;let l=S.has(d.id),I=h===r,u=G.get(h);if(u){let W=u.lastItemId!==d.id,j=u.lastSelected!==l,w=u.lastFocused!==I,M=u.lastY!==O.y||u.lastX!==O.x,A=u.lastSize!==O.size||u.lastCrossSize!==O.crossSize;if(W){let V=F(l,I),R=Q(d,h,V);$(u.element,R),u.element.dataset.id=String(d.id),u.lastItemId=d.id}if(W||j||w)H(u.element,l,I),u.element.ariaSelected=String(l),u.lastSelected=l,u.lastFocused=I;if(A)a(u.element,O),u.lastSize=O.size,u.lastCrossSize=O.crossSize;if(M)C(u.element,O),u.lastY=O.y,u.lastX=O.x}else{let W=p(h,d,O,l,I);if(!L)L=document.createDocumentFragment();L.appendChild(W.element),G.set(h,W)}}if(L)J.appendChild(L)},y=()=>{for(let{element:b}of G.values())U.release(b);G.clear(),J.innerHTML=""};return{render:x,getElement:(b)=>G.get(b)?.element,updateItemClasses:(b,f,S)=>{let r=G.get(b);if(!r)return;let L=r.lastSelected!==f,P=r.lastFocused!==S;if(L||P)H(r.element,f,S),r.lastSelected=f,r.lastFocused=S},sortDOM:()=>{u0(J,G.keys(),(b)=>G.get(b)?.element)},clear:y,destroy:()=>{y(),U.clear()}}};var H4=new Set,k4=100,xJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let Q=null,Y=null,q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(K){let{dom:X,emitter:U,config:G,rawConfig:B}=K,Z=G.classPrefix,N=G.horizontal;if(G.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");X.root.classList.add(`${Z}--masonry`);let k=y0(B.padding),_=jJ(k,N),F=p0(k,N),v=()=>{return(N?X.viewport.clientHeight:X.viewport.clientWidth)-_},z={columns:J.columns,gap:J.gap??0,containerSize:v()};Q=u1(z);let D=B.item,$=N&&B.item.width?B.item.width:D.height,H={containerWidth:0,columns:0,gap:0,columnWidth:0},C=typeof $==="function"?(V)=>$(V,H):()=>$,a=()=>{let V=K.dataManager.getTotal(),R=Q;H.containerWidth=R.containerSize,H.columns=R.columns,H.gap=R.gap;let E=(R.columns-1)*R.gap;H.columnWidth=Math.max(0,(H.containerWidth-E)/R.columns),q=R.calculateLayout(V,C),J0();let T=Q.getTotalSize(q);K.sizeCache.getTotalSize=()=>T,K.updateContentSize(T)},p=B.item.template;Y=g1(X.items,p,Z,N,()=>K.dataManager.getTotal(),G.ariaIdPrefix),K.setUpdateItemClassesFn((V,R,E)=>{Y?.updateItemClasses(V,R,E)});let x=[],y=new Int32Array(0),m=[],J0=()=>{let V=z.columns,R=q.length;if(x=Array.from({length:V},()=>[]),y.length<R)y=new Int32Array(R);for(let E=0;E<R;E++){let T=q[E],g=x[T.lane].length;x[T.lane].push(E),y[E]=g}m=Array(V);for(let E=0;E<V;E++){let T=x[E],g=new Float64Array(T.length);for(let n=0;n<T.length;n++){let t=q[T[n]];g[n]=t.y+t.size*0.5}m[E]=g}};K.methods.set("_getNavTotal",()=>K.dataManager.getTotal());let o=(V,R)=>{let E=V.length;if(E===0)return-1;if(E===1)return 0;let T=0,g=E-1;while(T<g){let n=T+g>>1;if(V[n]<R)T=n+1;else g=n}if(T>0&&Math.abs(V[T-1]-R)<=Math.abs(V[T]-R))return T-1;return T};K.methods.set("_navigate",(V,R,E)=>{let T=q[V];if(!T)return V;let g=T.lane,n=z.columns,t=y[V],e=x[g];switch(N?R==="ArrowDown"?"ArrowRight":R==="ArrowUp"?"ArrowLeft":R==="ArrowRight"?"ArrowDown":R==="ArrowLeft"?"ArrowUp":R:R){case"ArrowDown":{if(t+1<e.length)return e[t+1];return V}case"ArrowUp":{if(t>0)return e[t-1];return V}case"ArrowRight":{if(g>=n-1)return V;let s=g+1,Q0=T.y+T.size*0.5,q0=x[s];if(q0.length===0)return V;let U0=o(m[s],Q0);return U0>=0?q0[U0]:V}case"ArrowLeft":{if(g<=0)return V;let s=g-1,Q0=T.y+T.size*0.5,q0=x[s];if(q0.length===0)return V;let U0=o(m[s],Q0);return U0>=0?q0[U0]:V}case"Home":return 0;case"End":return E-1;case"PageDown":{let s=K.state.viewportState.containerSize,Q0=T.size>0?T.size:150,q0=Math.max(1,Math.floor(s/Q0)),U0=Math.min(t+q0,e.length-1);return e[U0]}case"PageUp":{let s=K.state.viewportState.containerSize,Q0=T.size>0?T.size:150,q0=Math.max(1,Math.floor(s/Q0)),U0=Math.max(0,t-q0);return e[U0]}}return V}),K.methods.set("_scrollItemIntoView",(V)=>{let R=q[V];if(!R)return;let E=K.scrollController.getScrollTop(),T=K.state.viewportState.containerSize,g=R.y,n=g+R.size,t=E+T;if(g<E)K.scrollController.scrollTo(K.adjustScrollPosition(Math.max(0,g)));else if(n>t)K.scrollController.scrollTo(K.adjustScrollPosition(n-T))});let b=null,f=null,S=!1,r=()=>{if(S)return;S=!0,b=K.methods.get("_getSelectedIds")??null,f=K.methods.get("_getFocusedIndex")??null},L=(V)=>K.dataManager.getItem(V),P=-1,O=-1,h=!0,d=G.overscan*k4,l=()=>{if(K.state.isDestroyed)return;r();let V=K.scrollController.getScrollTop(),R=K.state.viewportState.containerSize;if(!h&&V===P&&R===O)return;P=V,O=R,h=!1;let E=Math.max(0,V-d),T=V+R+d,g=Q.getVisibleItems(q,E,T),n=b?b():H4,t=f?f():-1;if(Y&&g.length>0)Y.render(L,g,n,t);let e=K.state.viewportState;e.scrollPosition=V;let j0=g.length,s=j0>0?g[0].index:0,Q0=j0>0?g[j0-1].index:0;e.visibleRange.start=s,e.visibleRange.end=Q0,e.renderRange.start=s,e.renderRange.end=Q0;let q0=K.state.lastRenderRange;if(q0.start!==s||q0.end!==Q0)q0.start=s,q0.end=Q0,U.emit("range:change",{range:{start:s,end:Q0}})},I=()=>{K.state.lastRenderRange.start=-1,K.state.lastRenderRange.end=-1,h=!0,l()};K.setRenderFns(l,I);let u=(V,R)=>{let E=(N?R:V)-_;if(Q&&Q.containerSize!==E){if(Q.update({containerSize:E}),a(),Y)Y.clear();I()}};K.resizeHandlers.push(u);let W=()=>{a(),I()},j=K.dataManager,w=(V)=>{if(typeof j[V]!=="function")return;let R=j[V].bind(j);j[V]=(...E)=>{R(...E),W()}};w("setItems"),w("appendItems"),w("prependItems"),w("updateItem"),w("removeItem");let{animateScroll:M,cancelScroll:A}=l0(K.scrollController,K.renderIfNeeded);K.methods.set("cancelScroll",A),K.methods.set("scrollToIndex",(V,R)=>{let E=q[V];if(!E)return;let{align:T,behavior:g,duration:n}=z0(R),t=E.y,e=K.state.viewportState.containerSize,j0=t;if(T==="center")j0=t-e/2+E.size/2;else if(T==="end"){j0=t-e+E.size;let s=Q.getTotalSize(q);if(V===q.length-1)j0=Math.max(0,s+F-e)}if(j0=Math.max(0,j0),j0=K.adjustScrollPosition(j0),g==="smooth")M(K.scrollController.getScrollTop(),j0,n);else A(),K.scrollController.scrollTo(j0)}),a(),K.idleHandlers.push(()=>{if(Y)Y.sortDOM()}),K.destroyHandlers.push(()=>{if(A(),Y)Y.destroy();X.root.classList.remove(`${Z}--masonry`)})}}};var mJ=(J)=>{let Q=J?.mode??"single",Y=J?.followFocus??!1,q=J?.initial,K=J?.shiftArrowToggle??"origin",X=J?.focusOnClick??!1,U=F1(q),G=null,B=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(Z){let{dom:N,emitter:k,config:_}=Z,{classPrefix:F,ariaIdPrefix:v}=_;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(`${F}--selectable`);let z=Z.methods.get("_isGroupHeader"),D=(W)=>z?z(W):!1,$=(W,j,w)=>{if(!z)return W;let M=W;while(M>=0&&M<w){if(!D(M))return M;M+=j}M=W-j;while(M>=0&&M<w){if(!D(M))return M;M-=j}return W},H=new Map,C=()=>{H.clear();let W=Z.dataManager.getTotal(),j=Z.dataManager.getCached();if(j===0)return;if(j>=W){for(let M=0;M<W;M++){let A=Z.dataManager.getItem(M);if(A)H.set(A.id,M)}return}let w=Z.dataManager.getStorage();if(w&&typeof w.getLoadedRanges==="function"){let M=w.getLoadedRanges();for(let A of M)for(let V=A.start;V<=A.end;V++){let R=Z.dataManager.getItem(V);if(R&&!R._isPlaceholder)H.set(R.id,V)}}};k.on("data:change",({type:W,id:j})=>{if(W==="remove")U.selected.delete(j),C()}),k.on("load:end",({items:W,offset:j})=>{if(!W||W.length===0)return;if(j!==void 0)for(let w=0;w<W.length;w++){let M=W[w];if(M&&M.id!==void 0)H.set(M.id,j+w)}else C()}),C(),Z.methods.set("_getSelectedIds",()=>{return U.selected}),Z.methods.set("_getFocusedIndex",()=>{return U.focusVisible?U.focusedIndex:-1});let{forceRender:a}=Z.getRenderFns(),p=()=>{a();let W=(j)=>{let w=H.get(j);if(w===void 0)return;return Z.dataManager.getItem(w)};k.emit("selection:change",{selected:yJ(U),items:PJ(U,W)})},x=y0(Z.rawConfig.padding),y=_.horizontal?x.left:x.top,m=_.horizontal?x.right:x.bottom,J0=Z.getItemToScrollIndexFn(),o=null,b=null,f=null,S=!1,r=()=>{if(S)return;S=!0,o=Z.methods.get("_getNavDelta")??null,b=Z.methods.get("_navigate")??null,f=Z.methods.get("_scrollItemIntoView")??null},L=()=>{return r(),o?o():{ud:1,lr:0,cols:0}},P=(W)=>{if(W<0)return;if(r(),f)f(W);else{let j=Z.state.viewportState.containerSize,w=Z.state.viewportState.scrollPosition,M=Z.dataManager.getTotal(),A=Z.getCachedCompression(),{visibleRange:V}=Z.state.viewportState,R=J0(W),E=XJ(R,Z.sizeCache,w,j,y,m,A,M,V);if(E!==w)Z.scrollController.scrollTo(Z.adjustScrollPosition(E))}},O=()=>{let W=J0(Math.max(0,U.focusedIndex)),j=Z.sizeCache.getSize(W),{ud:w}=L();return Math.max(w,Math.floor(Z.state.viewportState.containerSize/j)*w)};G=document.createElement("div"),G.setAttribute("aria-live","polite"),G.setAttribute("aria-atomic","true"),G.className=`${F}-live-region`,G.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(G);let d=G;k.on("selection:change",({selected:W})=>{let j=W.length;if(j===0)d.textContent="";else if(j===1)d.textContent="1 item selected";else d.textContent=`${j} items selected`});let l=()=>{if(Z.state.isDestroyed)return;if(!N.root.matches(":focus-visible"))return;let W=Z.dataManager.getTotal();if(W===0)return;let j=U.focusedIndex>=0?Math.min(U.focusedIndex,W-1):0;j=$(j,1,W),U=c0(U,j),U.focusVisible=!0,N.root.setAttribute("aria-activedescendant",`${v}-item-${j}`),P(j);let w=Z.dataManager.getItem(j);if(w)Z.renderer.updateItemClasses(j,U.selected.has(w.id),!0)};if(_.interactive)N.root.addEventListener("focusin",l);let I=(W)=>{if(Z.state.isDestroyed)return;let j=W.relatedTarget;if(j&&N.root.contains(j))return;let w=U.focusedIndex;if(U.focusVisible=!1,N.root.removeAttribute("aria-activedescendant"),w>=0){let M=Z.dataManager.getItem(w);if(M)Z.renderer.updateItemClasses(w,U.selected.has(M.id),!1)}};if(_.interactive)N.root.addEventListener("focusout",I);if(Z.clickHandlers.push((W)=>{if(Z.state.isDestroyed)return;let w=W.target.closest("[data-index]");if(!w)return;let M=parseInt(w.dataset.index??"-1",10);if(M<0)return;let A=Z.dataManager.getItem(M);if(!A)return;if(D(M))return;if(k.emit("item:click",{item:A,index:M,event:W}),Q==="multiple"&&W.shiftKey&&U.focusedIndex>=0){let V=B>=0?B:U.focusedIndex,R=Z.getAllLoadedItems();U=ZJ(U,R,V,M,Q),U=c0(U,M),U.focusVisible=X,B=M,N.root.setAttribute("aria-activedescendant",`${v}-item-${M}`),p();return}B=M,U=c0(U,M),U.focusVisible=X,N.root.setAttribute("aria-activedescendant",`${v}-item-${M}`),U=d0(U,A.id,Q),p()}),_.interactive)Z.keydownHandlers.push((W)=>{if(Z.state.isDestroyed)return;let j=Z.dataManager.getTotal(),w=U.focusedIndex,M=!1,A=!1,V=U;if(r(),b)switch(W.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let R=b(U.focusedIndex,W.key,j);if(R!==U.focusedIndex)V=c0(U,R),V.focusVisible=!0,M=!0,A=!0;else{W.preventDefault();return}break}}if(!M)switch(W.key){case"ArrowUp":V=KJ(U,j,_.wrap,L().ud),V.focusVisible=!0,M=!0,A=!0;break;case"ArrowDown":V=UJ(U,j,_.wrap,L().ud),V.focusVisible=!0,M=!0,A=!0;break;case"ArrowLeft":{let{lr:R}=L();if(R)V=KJ(U,j,_.wrap,R),V.focusVisible=!0,M=!0,A=!0;break}case"ArrowRight":{let{lr:R}=L();if(R)V=UJ(U,j,_.wrap,R),V.focusVisible=!0,M=!0,A=!0;break}case"PageUp":V=$J(U,j,O(),"up"),V.focusVisible=!0,M=!0,A=!0;break;case"PageDown":V=$J(U,j,O(),"down"),V.focusVisible=!0,M=!0,A=!0;break;case"Home":{V=T1(U,j),V.focusVisible=!0,M=!0,A=!0;break}case"End":{V=b1(U,j),V.focusVisible=!0,M=!0,A=!0;break}}switch(W.key){case" ":case"Enter":if(W.key===" "&&W.shiftKey&&Q==="multiple"&&U.focusedIndex>=0){if(B>=0){let R=Z.getAllLoadedItems();V=ZJ(V,R,B,U.focusedIndex,Q)}V.focusVisible=!0,M=!0;break}if(U.focusedIndex>=0&&!D(U.focusedIndex)){let R=Z.dataManager.getItem(U.focusedIndex);if(R)V=d0(U,R.id,Q),V.focusVisible=!0;B=U.focusedIndex,M=!0}break;case"a":if((W.ctrlKey||W.metaKey)&&Q==="multiple"){let R=Z.getAllLoadedItems();if(U.selected.size===R.length)V=kJ(V);else V=HJ(V,R,Q);V.focusVisible=!0,M=!0,A=!1}break}if(A&&z){let R=V.focusedIndex>w?1:-1;V.focusedIndex=$(V.focusedIndex,R,j)}if(W.shiftKey&&Q==="multiple"&&A&&V.focusedIndex>=0){let R=W.key==="ArrowUp"||W.key==="ArrowDown"||W.key==="ArrowLeft"||W.key==="ArrowRight",E=(W.ctrlKey||W.metaKey)&&(W.key==="Home"||W.key==="End");if(R){if(K==="origin"){if(w>=0){let T=Z.dataManager.getItem(w);if(T)V=d0(V,T.id,Q)}}else{let T=Z.dataManager.getItem(V.focusedIndex);if(T)V=d0(V,T.id,Q)}B=V.focusedIndex,A=!1}else if(E){let T=Z.getAllLoadedItems(),g=w>=0?w:V.focusedIndex;V=ZJ(V,T,g,V.focusedIndex,Q),B=V.focusedIndex,A=!1}}if(Y&&Q==="single"&&A&&V.focusedIndex>=0){let R=Z.dataManager.getItem(V.focusedIndex);if(R)V=m0(V,[R.id],Q);A=!1}if(M){W.preventDefault(),U=V;let R=U.focusedIndex;if(R>=0)P(R),N.root.setAttribute("aria-activedescendant",`${v}-item-${R}`);else N.root.removeAttribute("aria-activedescendant");if(A){let{selected:E}=U;if(w>=0&&w!==R){let T=Z.dataManager.getItem(w);if(T)Z.renderer.updateItemClasses(w,E.has(T.id),!1)}if(R>=0){let T=Z.dataManager.getItem(R);if(T)Z.renderer.updateItemClasses(R,E.has(T.id),!0)}}else p()}});Z.methods.set("select",(...W)=>{U=m0(U,W,Q),p()}),Z.methods.set("deselect",(...W)=>{U=bJ(U,W),p()}),Z.methods.set("toggleSelect",(W)=>{U=d0(U,W,Q),p()}),Z.methods.set("selectAll",()=>{if(Q!=="multiple")return;let W=Z.getAllLoadedItems();U=HJ(U,W,Q),C(),p()}),Z.methods.set("clearSelection",()=>{U=kJ(U),p()}),Z.methods.set("getSelected",()=>{return yJ(U)}),Z.methods.set("getSelectedItems",()=>{return PJ(U,(j)=>{let w=H.get(j);return w===void 0?void 0:Z.dataManager.getItem(w)})});let u=(W)=>{let j=Z.dataManager.getTotal();if(j===0)return;if(r(),b){let V=W==="next"?"ArrowDown":"ArrowUp",R=b(U.focusedIndex,V,j);U=c0(U,R)}else{let{ud:V}=L();U=W==="next"?UJ(U,j,_.wrap,V):KJ(U,j,_.wrap,V)}let w=W==="next"?1:-1;U.focusedIndex=$(U.focusedIndex,w,j);let M=U.focusedIndex,A=Z.dataManager.getItem(M);if(!A)return;U=m0(U,[A.id],Q),P(M),p()};Z.methods.set("selectNext",()=>{u("next")}),Z.methods.set("selectPrevious",()=>{u("previous")}),Z.destroyHandlers.push(()=>{if(d&&d.parentNode)d.remove();N.root.removeEventListener("focusin",l),N.root.removeEventListener("focusout",I)})},destroy(){if(G&&G.parentNode)G.remove();G=null}}};var $4=(J)=>{try{let Q=sessionStorage.getItem(J);if(!Q)return;return JSON.parse(Q)}catch{return}},dJ=(J)=>{let Q=J?.autoSave,Y=Q?$4(Q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(q){q.methods.set("getScrollSnapshot",()=>{let X=q.scrollController.getScrollTop(),U=q.getCachedCompression(),G=q.getVirtualTotal(),B=q.methods.get("getSelected"),Z=B&&B().length>0?B():void 0;if(G===0){let F={index:0,offsetInItem:0,total:0};if(Z)F.selectedIds=Z;return F}let N,k;if(U.isCompressed){let v=X/U.virtualSize*G;N=Math.max(0,Math.min(Math.floor(v),G-1)),k=(v-N)*q.sizeCache.getSize(N)}else N=q.sizeCache.indexAtOffset(X),k=X-q.sizeCache.getOffset(N);k=Math.max(0,k);let _={index:N,offsetInItem:k,total:G};if(Z)_.selectedIds=Z;return _});let K=(X)=>{let{index:U,offsetInItem:G,selectedIds:B}=X,Z=q.getVirtualTotal();if(Z===0&&X.total&&X.total>0){q.dataManager.setTotal(X.total),q.sizeCache.rebuild(X.total),q.updateCompressionMode();let H=q.getCachedCompression();q.updateContentSize(H.virtualSize)}else if(Z===0)return;if(!Number.isFinite(U)||!Number.isFinite(G))return;let N=q.getVirtualTotal();if(q.sizeCache.getTotal()!==N){q.sizeCache.rebuild(N),q.updateCompressionMode();let H=q.getCachedCompression();q.updateContentSize(H.virtualSize)}let _=q.getCachedCompression(),F=Math.max(0,Math.min(U,N-1)),v;if(_.isCompressed){let H=q.sizeCache.getSize(F),C=H>0?G/H:0;v=(F+C)/N*_.virtualSize}else v=q.sizeCache.getOffset(F)+G;let z=q.state.viewportState.containerSize,D=Math.max(0,_.virtualSize-z);if(v=Math.max(0,Math.min(v,D)),q.scrollController.scrollTo(v),B&&B.length>0){let H=q.methods.get("select");if(H)H(...B)}let $=q.methods.get("loadVisibleRange");if($){let C=0,a=v,p=()=>{C++;let x=q.state.viewportState.containerSize,y=q.scrollController.getScrollTop();if(x>0){if(Math.abs(y-a)>1)q.scrollController.scrollTo(a);$()}else if(C<10)requestAnimationFrame(p)};requestAnimationFrame(p)}else{let H=q.methods.get("reload");if(H)requestAnimationFrame(()=>{H()})}};if(q.methods.set("restoreScroll",K),Q){let X=!!Y,U=()=>{if(X)return;let G=q.methods.get("getScrollSnapshot");if(!G)return;let B=G();try{sessionStorage.setItem(Q,JSON.stringify(B))}catch{}};if(q.idleHandlers.push(()=>{if(X)X=!1;U()}),q.emitter.on("selection:change",U),Y&&Y.total&&Y.total>0){let G=q.methods.get("_cancelAutoLoad");if(G)G();q.dataManager.setTotal(Y.total)}}if(Y)queueMicrotask(()=>{K(Y)})}}};var x1=(J,Q=50,Y=1/0,q=!0)=>{let K=J,X=[],U=0,G=()=>{X=K.map((D,$)=>({def:D,index:$,width:0,minWidth:y4(D.minWidth??Q,1),maxWidth:D.maxWidth??Y,resizable:D.resizable??q,offset:0}))},B=(D)=>{if(X.length===0){U=0;return}let $=0,H=0;for(let C=0;C<X.length;C++){let a=X[C],p=a.def;if(p.width!==void 0)a.width=cJ(p.width,a.minWidth,a.maxWidth),$+=a.width;else H++}if(H>0){let a=Math.max(0,D-$)/H;for(let p=0;p<X.length;p++){let x=X[p];if(x.def.width===void 0)x.width=cJ(a,x.minWidth,x.maxWidth)}}Z()},Z=()=>{let D=0;for(let $=0;$<X.length;$++){let H=X[$];H.offset=D,D+=H.width}U=D},N=(D,$)=>{if(D<0||D>=X.length)return 0;let H=X[D];if(!H.resizable)return H.width;let C=cJ($,H.minWidth,H.maxWidth);return H.width=C,Z(),C},k=(D)=>{return X[D]},_=(D)=>{if(X.length===0)return;if(D<0)return X[0];if(D>=U)return X[X.length-1];let $=0,H=X.length-1;while($<H){let C=$+H>>>1,a=X[C];if(D<a.offset)H=C-1;else if(D>=a.offset+a.width)$=C+1;else return a}return X[$]},F=(D)=>{if(D<0||D>=X.length)return 0;return X[D].offset},v=(D)=>{if(D<0||D>=X.length)return 0;return X[D].width},z=(D)=>{K=D,G()};return G(),{get columns(){return X},get totalWidth(){return U},resolve:B,updateColumns:z,resizeColumn:N,getColumn:k,getColumnAtX:_,getColumnOffset:F,getColumnWidth:v}},cJ=(J,Q,Y)=>Math.min(Y,Math.max(Q,J)),y4=(J,Q)=>Math.max(Q,J);var m1=(J,Q,Y,q,K,X,U)=>{let G=document.createElement("div");G.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),G.appendChild(B),J.insertBefore(G,J.firstChild),Q.style.cssText=`position:absolute;top:${Y}px;left:0px;right:0px;bottom:0px;height:auto`;let N=[],k=[],_=[],F=!0,v=null,z="asc",D=null,$=!1,H=-1,C=0,a=0,p=(O,h)=>{let d=document.createElement("div");d.className=`${q}-table-header-cell`,d.setAttribute("role","columnheader"),d.setAttribute("aria-colindex",String(h+1)),d.dataset.columnKey=O.def.key;let l=O.def.align;if(l==="center")d.classList.add(`${q}-table-header-cell--center`);else if(l==="right")d.classList.add(`${q}-table-header-cell--right`);let I=document.createElement("div");I.className=`${q}-table-header-content`;let u=O.def.header?O.def.header(O.def):O.def.label;if(typeof u==="string")I.textContent=u;else I.appendChild(u);if(d.appendChild(I),O.def.sortable){let W=document.createElement("span");W.className=`${q}-table-header-sort`,W.setAttribute("aria-hidden","true"),d.appendChild(W),_.push(W),d.classList.add(`${q}-table-header-cell--sortable`)}else _.push(null);if(O.resizable){let W=document.createElement("div");W.className=`${q}-table-header-resize`,W.dataset.resizeIndex=String(h),d.appendChild(W),k.push(W)}return d},x=(O)=>{D=O,Z.textContent="",N=[],k=[],_=[];let h=O.columns;for(let d=0;d<h.length;d++){let l=h[d],I=p(l,d);N.push(I),Z.appendChild(I)}if(y(O),v)m(v,z)},y=(O)=>{D=O;let h=O.columns;Z.style.width=`${O.totalWidth}px`;for(let d=0;d<N.length&&d<h.length;d++){let l=N[d],I=h[d];l.style.width=`${I.width}px`}},m=(O,h)=>{if(v=O,z=h,!D)return;let d=D.columns;for(let l=0;l<_.length&&l<d.length;l++){let I=_[l];if(!I)continue;if(d[l].def.key===O&&O!==null)I.textContent=h==="asc"?"▲":"▼",I.style.opacity="0.7",N[l].setAttribute("aria-sort",h==="asc"?"ascending":"descending");else I.textContent="",I.style.opacity="0",N[l].removeAttribute("aria-sort")}},J0=(O)=>{Z.style.transform=`translateX(${-O}px)`},o=(O)=>{let h=O.target;if(!h.dataset.resizeIndex)return;if(O.preventDefault(),O.stopPropagation(),H=parseInt(h.dataset.resizeIndex,10),!D)return;let d=D.getColumn(H);if(!d||!d.resizable)return;$=!0,C=O.clientX,a=d.width,J.classList.add(`${q}--col-resizing`),J.style.cursor="col-resize",h.classList.add(`${q}-table-header-resize--active`),h.setPointerCapture(O.pointerId),h.addEventListener("pointermove",b),h.addEventListener("pointerup",f),h.addEventListener("pointercancel",f)},b=(O)=>{if(!$||!D)return;let h=O.clientX-C;if(Math.abs(h)<1)return;let d=Math.max(0,a+h);K(H,d)},f=(O)=>{if(!$)return;let h=O.target;h.removeEventListener("pointermove",b),h.removeEventListener("pointerup",f),h.removeEventListener("pointercancel",f);try{h.releasePointerCapture(O.pointerId)}catch{}h.classList.remove(`${q}-table-header-resize--active`),J.classList.remove(`${q}--col-resizing`),J.style.cursor="",$=!1,H=-1},S=(O)=>{let h=O.target;if(h.dataset.resizeIndex!==void 0)return;if($)return;let d=h;while(d&&!d.dataset.columnKey)if(d=d.parentElement,d===B||d===null)return;if(!d||!d.dataset.columnKey)return;let l=d.dataset.columnKey;if(!D)return;let I=D.columns,u=-1;for(let j=0;j<I.length;j++)if(I[j].def.key===l){u=j;break}if(u===-1)return;let W=I[u];if(U)U({key:l,index:u,event:O});if(W.def.sortable&&X){let j;if(v===l)if(z==="asc")j="desc";else j=null;else j="asc";X({key:l,index:u,direction:j})}};return B.addEventListener("pointerdown",o),B.addEventListener("click",S),{element:B,update:y,updateSort:m,rebuild:x,show:()=>{if(F)return;F=!0,B.style.display=""},hide:()=>{if(!F)return;F=!1,B.style.display="none"},destroy:()=>{B.removeEventListener("pointerdown",o),B.removeEventListener("click",S),Q.style.cssText="",G.remove(),N=[],k=[],_=[],D=null,F=!1},syncScroll:J0}};var P4=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Q)=>{if(Q.parentNode?.removeChild(Q),J.length<200)Q.className="",Q.removeAttribute("data-id"),Q.removeAttribute("data-index"),Q.removeAttribute("aria-selected"),Q.removeAttribute("aria-rowindex"),Q.removeAttribute("role"),Q.style.cssText="",Q.textContent="",J.push(Q)},clear:()=>{J.length=0}}},d1=(J,Q,Y,q,K,X,U,G,B)=>{let Z=P4(),N=new Map,k=-1,_=Y,F=null,v=null,z=null,D=(E,T)=>{v=E,z=T},$=(E,T)=>{if(T)E.setAttribute("aria-selected","true");else E.removeAttribute("aria-selected")},H=(E,T,g,n)=>{E.setAttribute("role",T),E.setAttribute("data-id",String(g)),E.setAttribute("data-index",String(n))},C=(E)=>String(E).startsWith("__placeholder_"),a=`${K}-item ${K}-table-row`,p=`${K}-item--selected`,x=`${K}-item--focused`,y=`${K}-table-cell`,m=`${K}-table-cell--center`,J0=`${K}-table-cell--right`,o=`${K}-item--odd`,b=`${K}-item--placeholder`,f=`${K}-item--replaced`,S=`${K}-item ${K}-table-row ${K}-table-group-header`,r=`${K}-table-group-header-content`,L=(E,T,g,n,t=!1)=>{if(g.def.cell){let e=g.def.cell(T,g.def,n);if(typeof e==="string")E.innerHTML=e;else E.replaceChildren(e)}else{let e=T[g.def.key],j0=e!=null?String(e):"";if(t&&j0)E.innerHTML=`<span>${j0}</span>`;else E.textContent=j0}},P=(E,T,g,n,t=!1)=>{let e=a;if(G){if(F){let j0=F(T);if(j0>=0&&(j0&1)===1)e+=` ${o}`}else if((T&1)===1)e+=` ${o}`}if(t)e+=` ${b}`;if(g)e+=` ${p}`;if(n)e+=` ${x}`;E.className=e},O=(E,T,g)=>{if(g?.compression?.isCompressed)return Math.round(r0(E,g.scrollPosition,T,g.totalItems,g.containerSize,g.compression,g.rangeStart));return T.getOffset(E)},h=(E,T)=>{let g=T.def.align;if(g==="center")E.classList.add(m),E.classList.remove(J0);else if(g==="right")E.classList.add(J0),E.classList.remove(m);else E.classList.remove(m,J0)},d=(E,T)=>{let n=_.columns.length;if(T.length===n)return T;let t=[];for(let e=0;e<n;e++){let j0;if(e<T.length)j0=T[e];else j0=document.createElement("div"),j0.className=y,E.appendChild(j0);t.push(j0)}for(let e=n;e<T.length;e++)T[e].remove();return t},l=(E,T,g,n)=>{let t=Z.acquire(),e=E,j0=g.getSize(T),s=O(T,g,n);t.style.cssText=`width:${_.totalWidth}px;height:${j0}px;transform:translateY(${s}px)`,t.className=S,H(t,"presentation",E.id,T),t.removeAttribute("aria-selected"),t.removeAttribute("aria-rowindex"),t.replaceChildren();let Q0=document.createElement("div");if(Q0.className=r,z){let q0=z(e.groupKey,e.groupIndex);if(typeof q0==="string")Q0.innerHTML=q0;else Q0.appendChild(q0)}return t.appendChild(Q0),{element:t,cells:[],index:T,isGroupHeader:!0,lastItemId:E.id,lastSelected:!1,lastFocused:!1,lastOffset:s,lastHeight:j0}},I=(E,T,g,n,t,e)=>{let j0=Z.acquire(),s=t.getSize(T),Q0=O(T,t,e),q0=C(E.id);j0.style.cssText=`width:${_.totalWidth}px;height:${s}px;transform:translateY(${Q0}px)`,P(j0,T,g,n,q0),H(j0,"row",E.id,T),j0.id=`${X}-${T}`,j0.setAttribute("aria-rowindex",String(T+2)),$(j0,g);let U0=d(j0,[]),Z0=_.columns;for(let N0=0;N0<U0.length&&N0<Z0.length;N0++){let D0=U0[N0],E0=Z0[N0];D0.style.cssText=`left:${E0.offset}px;width:${E0.width}px`,D0.setAttribute("role","gridcell"),D0.setAttribute("aria-colindex",String(N0+1)),h(D0,E0),L(D0,E,E0,T,q0)}return{element:j0,cells:U0,index:T,isGroupHeader:!1,lastItemId:E.id,lastSelected:g,lastFocused:n,lastOffset:Q0,lastHeight:s}},u=(E,T,g,n,t)=>{for(let[q0,U0]of N)if(q0<T.start||q0>T.end)Z.release(U0.element),N.delete(q0);let e=!1,j0=U();if(j0!==k)k=j0,e=!0;let s=null,Q0=Q();F=typeof G==="string"&&B?B():null;for(let q0=T.start;q0<=T.end;q0++){let U0=q0-T.start,Z0=E[U0];if(!Z0)continue;let N0=g.has(Z0.id),D0=q0===n,E0=v?v(Z0):!1,X0=N.get(q0);if(X0){if(X0.isGroupHeader!==E0){Z.release(X0.element),N.delete(q0);let V0=E0?l(Z0,q0,Q0,t):I(Z0,q0,N0,D0,Q0,t);if(N.set(q0,V0),!s)s=document.createDocumentFragment();s.appendChild(V0.element);continue}if(E0){if(X0.lastItemId!==Z0.id){let W0=Z0,B0=X0.element.firstElementChild;if(B0&&z){let A0=z(W0.groupKey,W0.groupIndex);if(typeof A0==="string")B0.innerHTML=A0;else B0.replaceChildren(A0)}X0.element.setAttribute("data-id",String(Z0.id)),X0.lastItemId=Z0.id}let K0=O(q0,Q0,t);if(X0.lastOffset!==K0)X0.lastOffset=K0,X0.element.style.transform=`translateY(${K0}px)`;let _0=Q0.getSize(q0);if(X0.lastHeight!==_0)X0.lastHeight=_0,X0.element.style.height=`${_0}px`}else{let V0=X0.lastItemId!==Z0.id,K0=X0.lastSelected!==N0,_0=X0.lastFocused!==D0;if(V0){let A0=X0.lastItemId!=null&&C(X0.lastItemId),O0=C(Z0.id);if(!O0&&w0(g,q0,Z0.id))N0=!0;let L0=_.columns;for(let $0=0;$0<X0.cells.length&&$0<L0.length;$0++)L(X0.cells[$0],Z0,L0[$0],q0,O0);if(P(X0.element,q0,N0,D0,O0),X0.element.setAttribute("data-id",String(Z0.id)),$(X0.element,N0),A0&&!O0)X0.element.classList.add(f),setTimeout(()=>{X0.element.classList.remove(f)},300);X0.lastItemId=Z0.id,X0.lastSelected=N0,X0.lastFocused=D0}else if(K0||_0)P(X0.element,q0,N0,D0,C(Z0.id)),$(X0.element,N0),X0.lastSelected=N0,X0.lastFocused=D0;let W0=O(q0,Q0,t);if(X0.lastOffset!==W0)X0.lastOffset=W0,X0.element.style.transform=`translateY(${W0}px)`;let B0=Q0.getSize(q0);if(X0.lastHeight!==B0)X0.lastHeight=B0,X0.element.style.height=`${B0}px`;if(e)X0.element.setAttribute("aria-rowindex",String(q0+2))}}else{if(w0(g,q0,Z0.id))N0=!0;let V0=E0?l(Z0,q0,Q0,t):I(Z0,q0,N0,D0,Q0,t);if(N.set(q0,V0),!s)s=document.createDocumentFragment();s.appendChild(V0.element)}}if(s)J.appendChild(s)},W=(E)=>{let T=Q();for(let[g,n]of N){let t=O(g,T,E);if(n.lastOffset!==t)n.lastOffset=t,n.element.style.transform=`translateY(${t}px)`}},j=(E,T,g,n)=>{let t=N.get(E);if(!t)return;if(t.isGroupHeader)return;let e=_.columns;for(let j0=0;j0<t.cells.length&&j0<e.length;j0++)L(t.cells[j0],T,e[j0],E);t.element.setAttribute("data-id",String(T.id)),t.lastItemId=T.id,P(t.element,E,g,n),$(t.element,g),t.lastSelected=g,t.lastFocused=n},w=(E,T,g)=>{let n=N.get(E);if(!n)return;if(n.isGroupHeader)return;let t=n.lastSelected!==T,e=n.lastFocused!==g;if(t||e)P(n.element,E,T,g),$(n.element,T),n.lastSelected=T,n.lastFocused=g},M=(E)=>{_=E;let T=E.columns;for(let[,g]of N)if(g.element.style.width=`${E.totalWidth}px`,g.cells.length>0)for(let n=0;n<g.cells.length&&n<T.length;n++){let t=g.cells[n],e=T[n];t.style.left=`${e.offset}px`,t.style.width=`${e.width}px`}},A=(E)=>{return N.get(E)?.element},V=()=>{for(let[,E]of N)Z.release(E.element);N.clear(),k=-1};return{render:u,updatePositions:W,updateItem:j,updateItemClasses:w,getElement:A,updateColumnLayout:M,setGroupHeaderFn:D,clear:V,destroy:()=>{V(),Z.clear()}}};var R4=new Set,lJ=(J)=>{if(!J.columns||J.columns.length===0)throw Error("[vlist] withTable: columns must be a non-empty array");if(J.rowHeight===void 0&&J.estimatedRowHeight===void 0)throw Error("[vlist] withTable: either rowHeight or estimatedRowHeight is required");let Q=null,Y=null,q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(K){let{dom:X,emitter:U,config:G}=K,{classPrefix:B}=G;if(G.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(G.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let Z=J.resizable??!0,N=J.minColumnWidth??50,k=J.maxColumnWidth??1/0,_=J.columnBorders??!1,F=J.rowBorders??!0,v=J.rowHeight,z=K.rawConfig.padding,D=!z?0:typeof z==="number"?z*2:z.length===2?z[1]*2:z[1]+z[3],$=J.headerHeight??(typeof v==="number"?v:40),H=J.sort?.key??null,C=J.sort?.direction??"asc";if(Q=x1(J.columns,N,k,Z),typeof v==="function")K.setSizeConfig(v);else if(typeof v==="number")K.setSizeConfig(v);if(K.rebuildSizeCache(),X.root.classList.add(`${B}--table`),F)X.root.classList.add(`${B}--table-row-borders`);if(_)X.root.classList.add(`${B}--table-col-borders`);X.root.setAttribute("role","grid"),X.root.setAttribute("aria-colcount",String(J.columns.length));let a=-1,p=X.items.getAttribute("aria-label");if(p)X.root.setAttribute("aria-label",p),X.items.removeAttribute("aria-label");X.items.setAttribute("role","rowgroup"),X.viewport.setAttribute("role","none"),X.content.setAttribute("role","none"),X.viewport.removeAttribute("tabindex");let x=K.getContainerWidth()-D;Q.resolve(x);let y=(A,V)=>{if(!Q)return;let R=Q.getColumn(A);if(!R)return;let E=R.width,T=Q.resizeColumn(A,V);if(Y)Y.update(Q);if(q)q.updateColumnLayout(Q);o(),U.emit("column:resize",{key:R.def.key,index:A,previousWidth:E,width:T})},m=(A)=>{if(A.direction===null)H=null,C="asc";else H=A.key,C=A.direction;if(Y)Y.updateSort(H,C);U.emit("column:sort",A)},J0=(A)=>{U.emit("column:click",A)};if(Y=m1(X.root,X.viewport,$,B,y,m,J0),Y.rebuild(Q),H)Y.updateSort(H,C);let o=()=>{if(!Q)return;let A=Q.totalWidth;X.content.style.minWidth=`${A}px`,X.items.style.minWidth=`${A}px`};o(),q=d1(X.items,()=>K.sizeCache,Q,J.columns,B,G.ariaIdPrefix,()=>K.dataManager.getTotal(),K.rawConfig.item?.striped,()=>K.getStripeIndexFn());let b=null,f=null,S=!1,r=()=>{if(S)return;S=!0,b=K.methods.get("_getSelectedIds")??null,f=K.methods.get("_getFocusedIndex")??null},L=-1,P=-1,O=-1,h=!0,d=G.overscan,l={start:0,end:0},I={start:0,end:0},u=()=>{if(K.state.isDestroyed)return;let A=K.scrollController.getScrollTop(),V=K.state.viewportState.containerSize,R=K.getVirtualTotal(),E=K.state.viewportState.isCompressed;if(!h&&A===L&&V===P&&R===O)return;L=A,P=V,O=R,h=!1;let T=R+1;if(T!==a)a=T,X.root.setAttribute("aria-rowcount",String(T));K.getVisibleRange(A,V,R,l),I.start=Math.max(0,l.start-d),I.end=Math.min(R-1,l.end+d);let g=K.state.viewportState;g.scrollPosition=A,g.visibleRange.start=l.start,g.visibleRange.end=l.end,g.renderRange.start=I.start,g.renderRange.end=I.end;let n=K.state.lastRenderRange,t=n.start!==I.start||n.end!==I.end;if(!t&&E){q.updatePositions(K.getCompressionContext());return}if(!t)return;let e=E?K.getCompressionContext():void 0,j0=K.dataManager.getItemsInRange(I.start,I.end);r();let s=b?b():R4,Q0=f?f():-1;q.render(j0,I,s,Q0,e),n.start=I.start,n.end=I.end,U.emit("range:change",{range:{start:I.start,end:I.end}})},W=()=>{if(K.state.isDestroyed)return;K.state.lastRenderRange.start=-1,K.state.lastRenderRange.end=-1,h=!0,u()};K.setRenderFns(u,W),K.setUpdateItemClassesFn((A,V,R)=>{q?.updateItemClasses(A,V,R)});let j=Y,w=-1,M=()=>{let A=X.viewport.scrollLeft;if(A!==w){if(w=A,j.syncScroll)j.syncScroll(A)}};K.afterScroll.push(M),X.viewport.addEventListener("scroll",M,{passive:!0}),K.resizeHandlers.push((A,V)=>{if(!Q)return;if(Q.resolve(A-D),Y)Y.update(Q);if(q)q.updateColumnLayout(Q);o()}),K.methods.set("updateColumns",(A)=>{if(!Q||!Y)return;if(Q.updateColumns(A),Q.resolve(K.getContainerWidth()-D),Y.rebuild(Q),H)Y.updateSort(H,C);if(o(),q)q.updateColumnLayout(Q),q.clear();K.forceRender()}),K.methods.set("resizeColumn",(A,V)=>{if(!Q)return;let R;if(typeof A==="string"){let E=Q.columns;R=-1;for(let T=0;T<E.length;T++)if(E[T].def.key===A){R=T;break}if(R===-1)return}else R=A;y(R,V)}),K.methods.set("getColumnWidths",()=>{if(!Q)return{};let A={},V=Q.columns;for(let R=0;R<V.length;R++)A[V[R].def.key]=V[R].width;return A}),K.methods.set("setSort",(A,V)=>{if(H=A,C=V??"asc",Y)Y.updateSort(H,C)}),K.methods.set("getSort",()=>{return{key:H,direction:C}}),K.methods.set("_getTableLayout",()=>Q),K.methods.set("_updateRenderedItem",(A,V,R,E)=>{q?.updateItem(A,V,R,E)}),K.methods.set("_replaceTableRenderer",(A)=>{q=A}),K.methods.set("_updateTableForGroups",(A,V)=>{if(q)q.setGroupHeaderFn(A,V)}),K.methods.set("_getTableHeaderHeight",()=>$),K.keydownHandlers.push((A)=>{if(A.key!=="ArrowLeft"&&A.key!=="ArrowRight")return;if(!Q)return;let V=Q.columns;if(V.length===0)return;let R=X.viewport.clientWidth;if(Q.totalWidth<=R)return;let E=X.viewport.scrollLeft;if(A.key==="ArrowRight"){for(let T=0;T<V.length;T++)if(V[T].offset>E+1){X.viewport.scrollLeft=V[T].offset,A.preventDefault();return}}else{for(let T=V.length-1;T>=0;T--)if(V[T].offset<E-1){X.viewport.scrollLeft=V[T].offset,A.preventDefault();return}if(E>0)X.viewport.scrollLeft=0,A.preventDefault()}}),K.contentSizeHandlers.push(()=>{o()}),K.destroyHandlers.push(()=>{if(X.viewport.removeEventListener("scroll",M),Y)Y.destroy(),Y=null;if(q)q.destroy(),q=null;X.content.style.minWidth="",X.items.style.minWidth="",X.root.classList.remove(`${B}--table`),X.root.removeAttribute("role"),X.root.removeAttribute("aria-colcount"),X.viewport.removeAttribute("role"),X.viewport.setAttribute("tabindex","-1"),X.content.removeAttribute("role");let A=X.root.getAttribute("aria-label");if(A)X.items.setAttribute("aria-label",A),X.root.removeAttribute("aria-label");X.root.removeAttribute("aria-rowcount"),X.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=(X)=>{let U=Y.get(X);return U!==void 0?U:J},K=f0(q,Q);return{getOffset(X){return K.getOffset(X)},getSize(X){return q(X)},indexAtOffset(X){return K.indexAtOffset(X)},getTotalSize(){return K.getTotalSize()},getTotal(){return K.getTotal()},rebuild(X){if(X<K.getTotal()){for(let U of Y.keys())if(U>=X)Y.delete(U)}K=f0(q,X)},isVariable(){return!0},setMeasuredSize(X,U){Y.set(X,U)},isMeasured(X){return Y.has(X)},getEstimatedSize(){return J},measuredCount(){return Y.size}}};var rJ=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(Q){let Y=Q.config.horizontal,K=Q.rawConfig.item,X=Y?K.estimatedWidth:K.estimatedHeight;if(X==null||X<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let U=K.gap??0,G=Q.getVirtualTotal(),B=y0(Q.rawConfig.padding),Z=p0(B,Y),N=c1(X+U,G),k=Q.methods.get("_setSizeCache"),_=Q.methods.get("_setConstrainSize");if(!k||!_)throw Error("[vlist/withAutoSize] Incompatible builder version");k(N),_((p)=>N.isMeasured(p));let F=new WeakMap,v=0,z=!1,D=2,$=(p)=>{let x=Q.scrollController.getScrollTop(),y=Q.state.viewportState.containerSize;if(y<=0)return!1;let m=Math.max(0,p+Z-y);return x>=m-D},H=()=>{let p=N.getTotalSize(),x=Q.state.viewportState.containerSize;if(x<=0)return;let y=Math.max(0,p+Z-x),m=Q.scrollController.getScrollTop();if(y>m)Q.scrollController.scrollTo(y)},C=()=>{let p=N.getTotalSize();Q.updateContentSize(p)},a=()=>{if(z){let p=Q.dom.viewport,x=p.scrollHeight,y=x-p.clientHeight,m=Q.scrollController.getScrollTop(),J0=y>0&&m>=y-D,o=Q.getVirtualTotal(),b=Q.state.viewportState.renderRange.end,f=o>0&&b>=o-1,S=N.getTotalSize()+Z,r=Math.abs(S-x),L=f&&y>0&&m>=y-r-D,P=J0||L;if(C(),z=!1,P)p.scrollHeight,H(),Q.forceRender()}};J=new ResizeObserver((p)=>{if(Q.state.isDestroyed)return;let x=!1,y=Q.state.viewportState.visibleRange.start;for(let O of p){let h=F.get(O.target);if(h===void 0)continue;let d=Y?O.borderBoxSize[0].inlineSize:O.borderBoxSize[0].blockSize;if(!N.isMeasured(h)){let l=d+U,I=N.getSize(h);if(N.setMeasuredSize(h,l),x=!0,h<y&&l!==I)v+=l-I;J.unobserve(O.target);let u=O.target;if(Y)u.style.width=`${d}px`;else u.style.height=`${d}px`}}if(!x)return;let m=N.getTotalSize();if(N.rebuild(Q.getVirtualTotal()),v!==0){let O=Q.scrollController.getScrollTop();Q.scrollController.scrollTo(O+v),v=0}let J0=$(m),o=Q.getVirtualTotal(),b=Q.state.viewportState.renderRange.end,f=o>0&&b>=o-1,S=Q.dom.viewport,r=S.scrollHeight-S.clientHeight,L=Q.scrollController.getScrollTop(),P=r>0&&L>=r-D;if(J0||f||!Q.scrollController.isScrolling()){if(C(),z=!1,J0||f&&P)S.scrollHeight,H()}else z=!0;Q.forceRender()}),Q.afterRenderBatch.push((p)=>{for(let{index:x,element:y}of p)if(!N.isMeasured(x))F.set(y,x),J.observe(y)}),Q.idleHandlers.push(a),Q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var w4=50,z4=0.1;function l1(J){let Q=0,Y=0,q=0;function K(){return q>0?Y/q:0}function X(B){if(Q=B,B>z4&&B<w4)Y+=B,q++}function U(){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 k=J.getScrollPosition(),_=typeof J.getColumns==="function"?J.getColumns():1,v=Math.ceil(B/_)*Z,D=Math.min(v,x0)-N,$=v-N,H=D>0?$/D:1,C=k*H,a=Math.ceil((C+N)/Z);return Math.min(a*_,B)}function G(){let B=J.getTotal(),Z=U();return{progress:B>0?Math.min(100,Math.max(0,Z/B*100)):0,velocity:Q,velocityAvg:K(),itemCount:Z,total:B}}return{getState:G,onVelocity:X}}export{lJ as withTable,dJ as withSnapshots,mJ as withSelection,zJ as withScrollbar,CJ as withScale,SJ as withPage,xJ as withMasonry,pJ as withGroups,gJ as withGrid,rJ as withAutoSize,vJ as withAsync,wJ as vlist,l1 as createStats};