vlist 1.7.4 → 1.7.6
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/README.github.md +12 -12
- package/README.md +12 -12
- package/dist/builder/data.d.ts +1 -0
- package/dist/builder/materialize.d.ts +1 -1
- package/dist/builder/types.d.ts +9 -0
- package/dist/features/grid/renderer.d.ts +1 -1
- package/dist/features/groups/async-bridge.d.ts +68 -0
- package/dist/features/groups/feature.d.ts +2 -1
- package/dist/features/groups/index.d.ts +1 -0
- package/dist/features/groups/layout.d.ts +1 -1
- package/dist/features/groups/sticky.d.ts +1 -1
- package/dist/features/groups/types.d.ts +4 -1
- package/dist/features/masonry/renderer.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/internals.js +1 -1
- package/dist/rendering/aria.d.ts +13 -0
- package/dist/rendering/renderer.d.ts +1 -1
- package/dist/size.json +1 -1
- package/dist/types.d.ts +13 -1
- package/dist/vlist-table.css +1 -1
- package/dist/vlist.css +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var X1=2,U1=(J=0)=>({velocity:0,sampleCount:0}),K1=(J,Q)=>{let j=performance.now(),q=J._lt??j,X=J._lp??Q,Y=j-q;if(J._lp=Q,J._lt=j,Y===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(Y>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(Q-X)/Y,J.sampleCount=Math.min(J.sampleCount+1,5),J};var Y4=(J,Q)=>{let j=Q;return{getOffset:(q)=>q*J,getSize:(q)=>J,indexAtOffset:(q)=>{if(j===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(q/J),j-1))},getTotalSize:()=>j*J,getTotal:()=>j,rebuild:(q)=>{j=q},isVariable:()=>!1}},X4=(J,Q)=>{let j=Q,q=new Float64Array(0),X=(V)=>{j=V,q=new Float64Array(V+1),q[0]=0;for(let K=0;K<V;K++)q[K+1]=q[K]+J(K)};X(Q);let Y=(V)=>{if(j===0)return 0;if(V<=0)return 0;if(V>=q[j])return j-1;let K=0,Z=j-1;while(K<Z){let N=K+Z+1>>>1;if(q[N]<=V)K=N;else Z=N-1}return K};return{getOffset:(V)=>{if(V<=0)return 0;if(V>=j)return q[j];return q[V]},getSize:(V)=>J(V),indexAtOffset:(V)=>Y(V),getTotalSize:()=>q[j]??0,getTotal:()=>j,rebuild:(V)=>X(V),isVariable:()=>!0}},c0=(J,Q)=>{if(typeof J==="number")return Y4(J,Q);return X4(J,Q)},Z1=(J,Q,j,q)=>{if(q===0)return 0;if(!J.isVariable())return Math.ceil(j/J.getSize(0));let X=0,Y=0,V=Q;while(V<q&&Y<j)Y+=J.getSize(V),X++,V++;return Math.max(1,X)};var B1=()=>{let J={},Q=(Y,V)=>{if(!J[Y])J[Y]=new Set;return J[Y].add(V),()=>j(Y,V)},j=(Y,V)=>{J[Y]?.delete(V)};return{on:Q,off:j,emit:(Y,V)=>{J[Y]?.forEach((K)=>{try{K(V)}catch(Z){console.error(`[vlist] Error in event handler for "${String(Y)}":`,Z)}})},clear:(Y)=>{if(Y)delete J[Y];else for(let V in J)delete J[V]}}};var N1=(J)=>{if(typeof J==="string"){let Q=document.querySelector(J);if(!Q)throw Error(`[vlist] Container not found: ${J}`);return Q}return J},jJ=(J,Q)=>{let j=document.createElement("div");if(j.className=J,Q)j.style.cssText=Q;return j},W1=(J,Q,j,q,X)=>{let Y=q,V=jJ(Q);if(Y)V.classList.add(`${Q}--horizontal`);if(X!==!1)V.setAttribute("tabindex","0");let K=jJ(`${Q}-viewport`,Y?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");K.setAttribute("tabindex","-1");let Z=jJ(`${Q}-content`,Y?"position:relative;height:100%":"position:relative;width:100%"),N=jJ(`${Q}-items`,Y?"position:relative;height:100%":"position:relative;width:100%");if(N.setAttribute("role","listbox"),j)N.setAttribute("aria-label",j);if(Y)N.setAttribute("aria-orientation","horizontal");let U=jJ(`${Q}-live`,"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0");return U.setAttribute("aria-live","polite"),U.setAttribute("aria-atomic","true"),U.setAttribute("role","status"),Z.appendChild(N),K.appendChild(Z),V.appendChild(U),V.appendChild(K),J.appendChild(V),{root:V,viewport:K,content:Z,items:N,liveRegion:U}};var V1=(J=100)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let q=document.createElement("div");return q.setAttribute("role","option"),q},release:(j)=>{if(Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),Q.push(j)},clear:()=>{Q.length=0}}};var _1=(J,Q,j,q,X)=>{if(q===0||Q===0){X.start=0,X.end=-1;return}let Y=j.indexAtOffset(J),V=j.indexAtOffset(J+Q);if(V<q-1)V++;X.start=Math.max(0,Y),X.end=Math.min(q-1,Math.max(0,V))},D1=(J,Q,j,q)=>{q.start=Math.max(0,J.start-Q),q.end=Math.min(j-1,J.end+Q)},G1=(J,Q,j,q,X,Y=0)=>{if(q===0)return 0;let V=Math.max(0,Math.min(J,q-1)),K=Q.getOffset(V),Z=Q.getSize(V),N=Q.getTotalSize(),U=Math.max(0,N+Y-j),P;switch(X){case"center":P=K-(j-Z)/2;break;case"end":P=Y>0&&K+Z>=N?U:K-j+Z;break;default:P=K}return Math.max(0,Math.min(P,U))};var VJ={top:0,right:0,bottom:0,left:0},f0=(J)=>{if(J==null)return VJ;if(typeof J==="number")return J===0?VJ:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[Y,V]=J;return Y===0&&V===0?VJ:{top:Y,right:V,bottom:Y,left:V}}let[Q,j,q,X]=J;return Q===0&&j===0&&q===0&&X===0?VJ:{top:Q,right:j,bottom:q,left:X}},r0=(J,Q)=>Q?J.left+J.right:J.top+J.bottom,_J=(J,Q)=>Q?J.top+J.bottom:J.left+J.right;var a0=(J,Q,j)=>{let q=Array.from(Q).sort((V,K)=>V-K);if(q.length<=1)return;let X=[];for(let V=0;V<q.length;V++){let K=j(q[V]);if(K)X.push(K)}if(X.length<=1)return;let Y=J.firstChild;for(let V=0;V<X.length;V++){let K=X[V];if(K===Y)Y=Y.nextSibling;else J.insertBefore(K,Y)}};var M1=(J,Q)=>{let{dom:j,emitter:q,resolvedConfig:X,rawConfig:Y,rendered:V,pool:K,sharedState:Z,isHorizontal:N,classPrefix:U,contentSizeHandlers:P,idleHandlers:D,afterScroll:H,clickHandlers:I,contextMenuHandlers:C,keydownHandlers:O,resizeHandlers:k,destroyHandlers:b,methods:v,onScrollFrame:m,resizeObserver:g,renderRange:h,afterRenderBatch:i}=Q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return q},get config(){return X},get rawConfig(){return Y},adjustScrollPosition($){if(J.mp===0)return $;let e=N?J.cw:J.ch,o=J.hc.getTotalSize(),y=Math.max(0,o-e),R=Math.max(0,o+J.mp-e);if($>=y)return R;return Math.min($,R)},get renderer(){return{render:($,e,o,y,R)=>{J.ss=o,J.fi=y,J.ffn()},updateItemClasses:($,e,o)=>{J.uic($,e,o)},updatePositions:()=>{},updateItem:()=>{},getElement:($)=>V.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:Z,getContainerWidth(){return J.cw},afterScroll:H,idleHandlers:D,afterRenderBatch:i,clickHandlers:I,contextMenuHandlers:C,keydownHandlers:O,resizeHandlers:k,contentSizeHandlers:P,destroyHandlers:b,methods:v,replaceTemplate($){J.at=$},replaceRenderer($){},replaceDataManager($){J.dm=$},replaceScrollController($){J.sc=$},getItemsForRange($){let{dm:e,it:o}=J,y=[];for(let R=$.start;R<=$.end;R++){let S=e?e.getItem(R):o[R];if(S)y.push(S)}return y},getAllLoadedItems(){let $=J.dm;if($){let e=$.getTotal(),o=[];for(let y=0;y<e;y++){let R=$.getItem(y);if(R)o.push(R)}return o}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:h.start,compression:Z.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,$]of V)$.remove(),K.release($);V.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns($,e){J.rfn=$,J.ffn=e},setVirtualTotalFn($){J.vtf=$},rebuildSizeCache($){J.hc.rebuild($??J.vtf())},setSizeConfig($){if(J.hc=c0($,J.vtf()),J.gp>0){let e=J.hc.getTotalSize,o=J.gp;J.hc.getTotalSize=()=>{let y=e();return y>0?y-o:0}}},updateContentSize($){let e=`${$+J.mp}px`;if(N)j.content.style.width=e;else j.content.style.height=e},updateCompressionMode(){for(let $=0;$<P.length;$++)P[$]()},setVisibleRangeFn($){J.gvr=$},getVisibleRange($,e,o,y){J.gvr($,e,J.hc,o,y)},setScrollToPosFn($){J.gsp=$},getScrollToPos($,e,o,y){return J.gsp($,J.hc,e,o,y)},setPositionElementFn($){J.pef=$},setScrollFns($,e){J.sgt=$,J.sst=(o)=>{e(o),m()}},setScrollTarget($){J.st.removeEventListener("scroll",m),J.st=$,J.st.addEventListener("scroll",m,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions($){J.gcw=$.width,J.gch=$.height,J.cw=$.width(),J.ch=$.height(),Z.viewportState.containerSize=N?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,g.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=$}}},O1=(J,Q,j)=>{let{rendered:q,itemState:X,applyTemplate:Y,updateContentSize:V}=Q,K=()=>{J.hc.rebuild(J.vtf()),V(),j.updateCompressionMode(),J.ffn()},Z=()=>J.it.length;return{getState:()=>({total:Z(),cached:Z(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:Z,getCached:Z,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(N)=>J.it[N],isItemLoaded:(N)=>N>=0&&N<Z()&&J.it[N]!==void 0,getItemsInRange:(N,U)=>{let P=[];for(let D=Math.max(0,N),H=Math.min(U,Z()-1);D<=H;D++)P.push(J.it[D]);return P},setTotal:()=>{},setItems:(N,U=0,P)=>{if(U===0&&(P!==void 0||Z()===0))J.it=N;else{let D=U+N.length;if(Z()<D)J.it.length=D;for(let H=0;H<N.length;H++)J.it[U+H]=N[H]}if(J.ii)K()},updateItem:(N,U)=>{let P=J.it;if(N<0||N>=P.length)return!1;let D=P[N];if(!D)return!1;P[N]={...D,...U};let H=q.get(N);if(H)Y(H,J.at(P[N],N,X)),H.dataset.id=String(P[N].id);return!0},removeItem:(N)=>{let U=typeof N==="number"?N:J.it.findIndex((P)=>P.id===N);if(U<0||U>=J.it.length)return!1;if(J.it.splice(U,1),J.ii)K();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),V(),J.ffn()}}},A1=(J,Q)=>{let{dom:j,classPrefix:q}=Q;return{getScrollTop:()=>J.sgt(),scrollTo:(X)=>{J.sst(X),J.ls=X,J.rfn()},scrollBy:(X)=>{let Y=J.sgt()+X;J.sst(Y),J.ls=Y,J.rfn()},isAtTop:()=>J.ls<=2,isAtBottom:(X=2)=>J.sab(X),getScrollPercentage:()=>{let X=J.hc.getTotalSize(),Y=Math.max(0,X-J.ch);return Y>0?J.ls/Y: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 YJ=(J,Q,j,q,X=0,Y=0)=>{let V=Q.getOffset(J),K=Q.getSize(J),Z=V+X,N=Z+K,U=j+q;if(Z<j)return Math.max(0,V);if(N>U)return N+Y-q;return j},DJ=(J,Q,j,q,X=0,Y=0,V,K,Z)=>{if(!(V!=null&&V.isCompressed&&V.ratio!==1))return YJ(J,Q,j,q,X,Y);let U=K,{virtualSize:P}=V,D=Q.getSize(Math.max(0,J)),H=q-X-Y,I=Math.max(1,Math.floor(H/D)),C=P/U;if(Z){if(J>=Z.start+I){let b=H/D,v=J+1-b;return Math.max(0,v*C)}if(J<=Z.start)return Math.max(0,J*C);return j}let O=j/P*U,k=O+I;if(J>=k){let b=H/D,v=J+1-b;return Math.max(0,v*C)}if(J<O)return Math.max(0,J*C);return j};var E1=(J,Q,j,q,X,Y,V,K,Z,N,U,P,D,H)=>{let I=`${j}-item--focused`,C=!1,O=null,k=null,b=null,v=null,m=!1,g=()=>{if(m)return;m=!0,O=Z.get("_getNavTotal")??null,k=Z.get("_getNavDelta")??null,b=Z.get("_navigate")??null,v=Z.get("_scrollItemIntoView")??null},h=()=>{return g(),O?O():J.vtf()},i=()=>{return g(),k?k():{ud:1,lr:0,cols:0}};Z.set("_getFocusedIndex",()=>C?J.fi:-1);let $=(a,L=!0)=>{if(Q.root.setAttribute("aria-activedescendant",`${q}-item-${a}`),g(),L)if(v)v(a);else{let E=X?J.cw:J.ch,A=J.i2s(a),f=YJ(A,J.hc,J.ls,E,Y,V);if(f!==J.ls)J.sst(f),J.ls=J.sgt()}J.ffn()},e=(a)=>{J.fi=a,C=!0,$(a)},o=(a,L)=>{if(J.fi=a,L||H)C=!0;let E=J.dm?J.dm.getItem(a):J.it[a];if(E&&J.ss.has(E.id))J.ss.clear();else if(J.ss.clear(),E)J.ss.add(E.id);$(a,L)},y=(a,L,E)=>{let A=a;while(A>=0&&A<E){let f=J.dm?J.dm.getItem(A):J.it[A];if(!f||!f.__groupHeader)return A;A+=L}A=a-L;while(A>=0&&A<E){let f=J.dm?J.dm.getItem(A):J.it[A];if(!f||!f.__groupHeader)return A;A-=L}return a},R=()=>{if(J.id)return;if(!Q.root.matches(":focus-visible"))return;let a=h();if(a===0)return;let L=J.fi>=0?Math.min(J.fi,a-1):0;L=y(L,1,a),e(L)};Q.root.addEventListener("focusin",R);let S=(a)=>{if(J.id)return;let L=a.relatedTarget;if(L&&Q.root.contains(L))return;if(C=!1,J.fi>=0)N.get(J.fi)?.classList.remove(I);Q.root.removeAttribute("aria-activedescendant")};Q.root.addEventListener("focusout",S),U.push((a)=>{if(J.id)return;let L=h();if(L===0)return;let E=J.fi,A=E;if(a.key===" "||a.key==="Enter"){if(E>=0){let f=J.dm?J.dm.getItem(E):J.it[E];if(f&&!f.__groupHeader)o(E,!0)}a.preventDefault();return}if(g(),b)switch(a.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":A=b(E,a.key,L);break;default:return}else{let{ud:f,lr:J0}=i();switch(a.key){case"ArrowUp":A=E-f;break;case"ArrowDown":A=E+f;break;case"ArrowLeft":if(!J0)return;A=E-J0;break;case"ArrowRight":if(!J0)return;A=E+J0;break;case"PageUp":case"PageDown":{let x=J.hc.getSize(J.i2s(Math.max(0,E))),u=Math.max(f,Math.floor((X?J.cw:J.ch)/x)*f);A=a.key==="PageUp"?E-u:E+u;break}case"Home":A=0;break;case"End":A=L-1;break;default:return}if(A<0)A=K?L-1:0;else if(A>=L)A=K?0:L-1}if(a.preventDefault(),A=y(A,A>=E?1:-1,L),A!==E)e(A)}),P.push((a)=>{if(J.id)return;let L=a.target.closest("[data-index]");if(!L)return;let E=parseInt(L.dataset.index??"-1",10);if(E<0)return;let A=J.dm?.getItem(E)??J.it[E];if(!A||A.__groupHeader)return;C=!1,Q.root.focus({preventScroll:!0}),o(E,!1)}),D.push(()=>{Q.root.removeEventListener("focusin",R),Q.root.removeEventListener("focusout",S)})};var yJ=200,s0=50;var L1=50,F1=12,T1=2,o0=16000000;var H1="x",k1=20,RJ="_isPlaceholder",p0="__placeholder_";var u0=(J,Q,j)=>{if(String(j).startsWith(p0))return!1;let q=p0+Q;if(J.has(q))return J.delete(q),J.add(j),!0;return!1},$1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),n0=(J,Q,j)=>{if(j==="none")return J;let q=new Set(J.selected);if(j==="single"){if(q.clear(),Q.length>0)q.add(Q[0])}else for(let X of Q)q.add(X);return{...J,selected:q}},PJ=(J,Q)=>{let j=new Set(J.selected);for(let q of Q)j.delete(q);return{...J,selected:j}},i0=(J,Q,j)=>{if(j==="none")return J;if(J.selected.has(Q))return PJ(J,[Q]);else return n0(J,[Q],j)},wJ=(J,Q,j)=>{if(j!=="multiple")return J;return{...J,selected:new Set(Q.map((q)=>q.id))}},zJ=(J)=>({...J,selected:new Set}),t0=(J,Q)=>{return J.focusedIndex=Q,J},GJ=(J,Q,j=!1,q=1)=>{if(Q===0)return J;let X=J.focusedIndex-q;if(X<0)X=j?Q-1:0;return J.focusedIndex=X,J},MJ=(J,Q,j=!1,q=1)=>{if(Q===0)return J;let X=J.focusedIndex+q;if(X>=Q)X=j?0:Q-1;return J.focusedIndex=X,J},b1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=0,J},y1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=Q-1,J},CJ=(J,Q,j,q)=>{if(Q===0)return J;let X=q==="up"?J.focusedIndex-j:J.focusedIndex+j;return X=Math.max(0,Math.min(Q-1,X)),J.focusedIndex=X,J};var OJ=(J)=>{return Array.from(J.selected)},AJ=(J,Q)=>{let j=[];for(let q of J.selected){let X=Q(q);if(X)j.push(X)}return j};var EJ=(J,Q,j,q,X)=>{if(X!=="multiple")return J;let Y=Math.min(j,q),V=Math.max(j,q),K=[];for(let Z=Y;Z<=V;Z++){let N=Q[Z];if(N)K.push(N.id)}return n0(J,K,X)};var vJ=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,g0=(J)=>{let Q=typeof J==="object"&&J?J:null;return{align:typeof J==="string"?J:Q?.align??"start",behavior:Q?.behavior??"auto",duration:Q?.duration??300}},e0=(J,Q)=>{let j=null,q=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(Y,V,K)=>{if(q(),Math.abs(V-Y)<1){J.scrollTo(V);return}let Z=performance.now(),N=(U)=>{let P=U-Z,D=Math.min(P/K,1),H=Y+(V-Y)*vJ(D);if(J.scrollTo(H),Q(),D<1)j=requestAnimationFrame(N);else j=null};j=requestAnimationFrame(N)},cancelScroll:q}};var R1=(J,Q,j,q,X,Y,V,K,Z,N,U,P,D,H,I,C,O,k,b)=>{let v=(W)=>{{if(!Array.isArray(W)){console.warn("[vlist] setItems() expects an array, got:",typeof W);return}if(W.length>0&&W[0]&&!("id"in W[0]))console.warn('[vlist] Items must have an "id" property. First item:',W[0]);let _=Math.min(W.length,1e4),F=new Set;for(let M=0;M<_;M++){let G=W[M];if(G&&"id"in G){if(F.has(G.id)){console.warn(`[vlist] Duplicate item ID "${G.id}" at index ${M}. updateItem() and removeItem() will only match the first occurrence.`);break}F.add(G.id)}}}f(),Z.dataManager.setItems(W,0,W.length)},m=(W)=>{let _=N&&J.sab(2);if(Z.dataManager.setItems(W,J.it.length),_&&J.it.length>0){let F=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(F),J.ls=F,J.rfn()}},g=(W)=>{let _=N?J.sgt():0,F=N?J.hc.getTotalSize():0,M=[...J.it];if(Z.dataManager.clear(),Z.dataManager.setItems([...W,...M],0),N){let G=J.hc.getTotalSize()-F;if(G>0)J.sst(_+G),J.ls=_+G}},h=null,i=null,$=null,e=!1,o=()=>{if(e)return;e=!0,h=Y.get("_updateRenderedItem")??null,i=Y.get("_getSelectedIds")??null,$=Y.get("_getFocusedIndex")??null},y=(W,_)=>{{let M=J.vtf();if(W<0||W>=M)console.warn(`[vlist] updateItem() index ${W} is out of range (0–${M-1}).`)}if(Z.dataManager.updateItem(W,_),o(),!h)return;let F=Z.dataManager.getItem(W);if(F){let G=(i?i():J.ss).has(F.id),z=($?$():J.fi)===W;h(W,F,G,z)}},R=!1,S=(W)=>{let _=typeof document<"u"?document.activeElement:null,F=_&&Q.items.contains(_)?parseInt(_.dataset?.index??"-1",10):-1;if(!Z.dataManager.removeItem(W))return console.warn(`[vlist] removeItem() could not find item with id "${W}".`),!1;if(j.emit("data:change",{type:"remove",id:W}),Z.forceRender(),!R){let G=Z.dataManager;if(typeof G.ensureRange==="function")R=!0,queueMicrotask(()=>{R=!1;let z=Z.dataManager.getTotal(),{start:s,end:c}=Z.state.viewportState.renderRange;if(z>0&&c>=s)G.ensureRange(s,c).catch(()=>{})})}if(F>=0){let G=J.vtf();if(G>0)q.get(Math.min(F,G-1))?.focus()}return!0},a=(W)=>{return Z.dataManager.getItem(W)},L=(W)=>{return Z.dataManager.getIndexById?.(W)??-1},E=async(W)=>{if(Z.dataManager.reload)await Z.dataManager.reload()},A=null,f=()=>{if(A!==null)cancelAnimationFrame(A),A=null},J0=(W,_,F,M)=>{if(f(),Math.abs(_-W)<1){J.sst(_),J.ls=_,J.rfn();return}let G=performance.now(),z=(s)=>{let c=s-G,t=Math.min(c/F,1),K0=M?M():_,n=W+(K0-W)*vJ(t);if(J.sst(n),J.ls=n,J.rfn(),t<1)A=requestAnimationFrame(z);else A=null};A=requestAnimationFrame(z)},x=(W,_)=>{{let t=J.vtf();if(t>0&&(W<0||W>=t))console.warn(`[vlist] scrollToIndex(${W}) is out of range (0–${t-1}).`)}let{align:F,behavior:M,duration:G}=g0(_),z=J.vtf(),s=W;if(U&&z>0)s=(s%z+z)%z;let c=J.gsp(s,J.hc,J.ch,z,F);if(M==="smooth"){let t=s,K0=F;J0(J.sgt(),c,G,()=>J.gsp(t,J.hc,J.ch,J.vtf(),K0))}else f(),J.sst(c)},u=()=>J.sgt(),l=(W,_)=>{return j.on(W,_)},T=(W,_)=>{j.off(W,_)},B=()=>{if(J.id)return;if(J.id=!0,Z.state.isDestroyed=!0,Q.items.removeEventListener("click",P),Q.items.removeEventListener("dblclick",D),Q.items.removeEventListener("contextmenu",H),Q.root.removeEventListener("keydown",I),J.st.removeEventListener("scroll",C),O.disconnect(),k(),J.wh)Q.viewport.removeEventListener("wheel",J.wh);b();let W=[];for(let _=0;_<K.length;_++)try{K[_]()}catch(F){W.push(F instanceof Error?F:Error(String(F)))}for(let _ of V)if(_.destroy)try{_.destroy()}catch(F){W.push(F instanceof Error?F:Error(String(F)))}f();for(let[,_]of q)_.remove(),X.release(_);q.clear(),X.clear(),j.emit("destroy",void 0);for(let _ of W)j.emit("error",{error:_,context:"destroy"});j.clear(),Q.root.remove()},p=(W,_)=>Y.has(W)?Y.get(W):_,w={get element(){return Q.root},get items(){let W=Y.get("_getItems");return W?W():J.it},get total(){let W=Y.get("_getTotal");return W?W():J.vtf()},setItems:p("setItems",v),appendItems:p("appendItems",m),prependItems:p("prependItems",g),updateItem:p("updateItem",y),removeItem:p("removeItem",S),reload:p("reload",E),getItemAt:a,getIndexById:L,scrollToIndex:p("scrollToIndex",x),cancelScroll:p("cancelScroll",f),getScrollPosition:p("getScrollPosition",u),on:l,off:T,destroy:B};for(let[W,_]of Y){if(W.charCodeAt(0)===95||W==="setItems"||W==="appendItems"||W==="prependItems"||W==="updateItem"||W==="removeItem"||W==="reload"||W==="scrollToIndex"||W==="scrollToItem"||W==="cancelScroll"||W==="getScrollPosition")continue;w[W]=_}return w};var U4=3,K4="vlist",Z4=150,B4=16000000,N4=0,SJ=(J)=>{if(!J.container)throw Error("[vlist] Container is required");if(!J.item)throw Error("[vlist] item configuration is required");let Q=J.orientation==="horizontal",j=Q?"width":"height",q=Q?"estimatedWidth":"estimatedHeight",X=Q?J.item.width:J.item.height,Y=Q?J.item.estimatedWidth:J.item.estimatedHeight;if(X==null&&Y==null)throw Error(`[vlist] item.${j} or item.${q} is required${Q?" 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(Y!=null){if(typeof Y!=="number"||Y<=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 V=new Map,K=!1,Z={use(N){if(K)throw Error("[vlist] Cannot call .use() after .build()");return V.set(N.name,N),Z},build(){if(K)throw Error("[vlist] .build() can only be called once");return K=!0,W4(J,V,Q,X,Y??null)}};return Z};function W4(J,Q,j,q,X){let{item:Y,items:V,overscan:K=U4,classPrefix:Z=K4,ariaLabel:N,padding:U,reverse:P=!1,scroll:D,accessible:H,interactive:I}=J,C=I??H??!0,O=D,k=O?.wheel??!0,b=O?.wrap??!1,v=P,m=`${Z}-${N4++}`,g=Q.has("withGrid")||Q.has("withMasonry")?0:Y.gap??0,h=q??X,i=q==null&&X!=null,$=j?typeof Y.height==="number"?Y.height:void 0:typeof Y.width==="number"?Y.width:void 0,e={overscan:K,classPrefix:Z,reverse:v,wrap:b,horizontal:j,ariaIdPrefix:m,interactive:C},o=Array.from(Q.values()).sort((d,Q0)=>(d.priority??50)-(Q0.priority??50)),y=new Set(o.map((d)=>d.name));for(let d of o)if(d.conflicts){for(let Q0 of d.conflicts)if(y.has(Q0))throw Error(`[vlist] ${d.name} and ${Q0} cannot be combined`)}if(v){if(y.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let R=N1(J.container),S=W1(R,Z,N,j,C);if(O?.wheel===!1)if(j)S.viewport.style.overflowX="hidden";else S.viewport.style.overflow="hidden";if(O?.scrollbar==="none")S.viewport.classList.add(`${Z}-viewport--no-scrollbar`);if(O?.gutter==="stable")S.viewport.classList.add(`${Z}-viewport--gutter-stable`);let a=y.has("withGrid")||y.has("withMasonry");if(j&&$!=null&&O?.scrollbar!=="none"&&!a){S.root.style.height=`${$}px`;let d=S.viewport.style.overflowX;S.viewport.style.overflowX="scroll";let Q0=S.viewport.offsetHeight-S.viewport.clientHeight;if(S.viewport.style.overflowX=d,Q0>0)S.root.style.height=`${$+Q0}px`}let L=f0(U),E=r0(L,j);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 A=B1(),f=V||[],J0=typeof h==="function"&&(Q.has("withGrid")||Q.has("withMasonry")),x=g>0?typeof h==="function"?(d)=>h(d)+g:h+g:h,u=i?X+g:x,l=c0(u,J0?0:f.length);if(g>0){let d=l.getTotalSize;l.getTotalSize=()=>{let Q0=d();return Q0>0?Q0-g:0}}let T=V1(),B={it:f,hc:l,ch:S.viewport.clientHeight,cw:S.viewport.clientWidth,id:!1,ii:!1,ls:0,vt:U1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>S.viewport.scrollLeft:()=>S.viewport.scrollTop,sst:j?(d)=>{S.viewport.scrollLeft=d}:(d)=>{S.viewport.scrollTop=d},sab:(d=2)=>{let Q0=B.hc.getTotalSize();return B.ls+B.ch>=Q0-d},sic:!1,rfn:null,ffn:null,gvr:(d,Q0,Y0,F0,w0)=>{_1(d,Q0,Y0,F0,w0)},gsp:(d,Q0,Y0,F0,w0)=>{return G1(d,Q0,Y0,F0,w0,B.mp)},pef:null,at:Y.template,vre:!0,st:S.viewport,wh:null,gcw:()=>B.cw,gch:()=>B.ch,gp:g,mp:E,sif:(d)=>d,i2s:(d)=>d,uic:(d,Q0,Y0)=>{let F0=z.get(d);if(!F0)return;j0(F0,Q0,Y0)},csi:null};B.vtf=()=>B.dm?B.dm.getTotal():B.it.length;let p=null,w=!1,W={start:0,end:0},_={start:0,end:0},F={start:-1,end:-1},M={viewportState:{scrollPosition:0,containerSize:j?B.cw:B.ch,totalSize:B.hc.getTotalSize(),actualSize:B.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},G=()=>({...M.viewportState,totalItems:B.vtf()}),z=new Map,s=()=>{a0(S.items,z.keys(),(d)=>z.get(d))},c=()=>{let d=B.hc.getTotalSize(),Y0=`${(B.sic?d:Math.min(d,B4))+E}px`;if(j)S.content.style.width=Y0;else S.content.style.height=Y0},t={selected:!1,focused:!1},K0=`${Z}-item`,n=`${Z}-item--selected`,q0=`${Z}-item--focused`,j0=(d,Q0,Y0)=>{d.classList.toggle(n,Q0),d.classList.toggle(q0,Y0),d.ariaSelected=Q0?"true":"false"},N0=Y.striped,G0=!!N0,M0=N0==="data"||N0==="even"||N0==="odd",A0=`${Z}-item--odd`,k0=`${Z}-item--placeholder`,Z0=`${Z}-item--replaced`,O0=`${Z}--scrolling`,y0=[],W0=[],D0=[],_0=[],T0=[],H0=[],P0=[],R0=[],r=[],X0=new Map,U0="__placeholder_",B0={scrollPosition:0,direction:"down"},V0={velocity:0,reliable:!1},E0={range:{start:0,end:0}},b0=null,L0=null,I0=!1,h0=()=>{if(I0)return;I0=!0,b0=X0.get("_getSelectedIds")??null,L0=X0.get("_getFocusedIndex")??null},ZJ=(d,Q0,Y0)=>{if(!Q0)console.warn(`[vlist] Template returned falsy value${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);else if(typeof Q0==="string"&&Q0==="")console.warn(`[vlist] Template returned empty string${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);if(typeof Q0==="string")d.innerHTML=Q0;else d.replaceChildren(Q0)},n1=(d,Q0)=>{let Y0=Math.round(B.hc.getOffset(Q0));if(j)d.style.transform=`translateX(${Y0}px)`;else d.style.transform=`translateY(${Y0}px)`};B.pef=n1;let i1=(d,Q0)=>{let Y0=T.acquire();Y0.className=K0;let F0=!B.csi||B.csi(d);if(j){if(F0)Y0.style.width=`${B.hc.getSize(d)-g}px`;else Y0.style.width="";if($!=null)Y0.style.height=`${$}px`}else if(F0)Y0.style.height=`${B.hc.getSize(d)-g}px`;else Y0.style.height="";if(Y0.dataset.index=String(d),Y0.dataset.id=String(Q0.id),Y0.ariaSelected="false",Y0.id=`${m}-item-${d}`,B.la=String(B.vtf()),Y0.setAttribute("aria-setsize",B.la),Y0.setAttribute("aria-posinset",String(d+1)),String(Q0.id).startsWith(U0))Y0.classList.add(k0);if(G0)if(M0){let C0=B.sif(d);if(C0<0)Y0.classList.remove(A0);else Y0.classList.toggle(A0,(C0&1)===1)}else Y0.classList.toggle(A0,(d&1)===1);try{ZJ(Y0,B.at(Q0,d,t),d)}catch(C0){let z0=C0 instanceof Error?C0:Error(String(C0));A.emit("error",{error:z0,context:`tpl(${d},${Q0.id})`,viewport:G()}),Y0.textContent=""}return B.pef(Y0,d),Y0},t1=()=>{if(B.id)return;let d=j?B.cw:B.ch;if(d<=0)return;h0();let Q0=b0?b0():B.ss,Y0=L0?L0():B.fi,F0=B.vtf();if(B.gvr(B.ls,d,B.hc,F0,W),D1(W,K,F0,_),_.start===F.start&&_.end===F.end){if(B.sic)for(let[$0,v0]of z)B.pef(v0,$0);M.viewportState.scrollPosition=B.ls,M.viewportState.containerSize=d,M.viewportState.visibleRange.start=W.start,M.viewportState.visibleRange.end=W.end,M.viewportState.renderRange.start=_.start,M.viewportState.renderRange.end=_.end;return}let w0=String(F0),C0=w0!==B.la;B.la=w0;for(let[$0,v0]of z)if($0<_.start||$0>_.end)v0.remove(),T.release(v0),z.delete($0);let z0=document.createDocumentFragment(),x0=!1,qJ=R0.length>0?[]:null;for(let $0=_.start;$0<=_.end;$0++){let v0=B.dm?B.dm.getItem($0):B.it[$0];if(v0===void 0)continue;let S0=z.get($0);if(S0){let d0=S0.dataset.id,l0=String(v0.id);if(d0!==l0){let q4=d0?.startsWith(U0),$J=l0.startsWith(U0);try{ZJ(S0,B.at(v0,$0,t),$0)}catch(bJ){let j4=bJ instanceof Error?bJ:Error(String(bJ));A.emit("error",{error:j4,context:`tpl(${$0},${v0.id})`,viewport:G()}),S0.textContent=""}S0.dataset.id=l0;let Y1=!B.csi||B.csi($0);if(j)S0.style.width=Y1?`${B.hc.getSize($0)-g}px`:"";else S0.style.height=Y1?`${B.hc.getSize($0)-g}px`:"";if($J)S0.classList.add(k0);else S0.classList.remove(k0);if(q4&&!$J)S0.classList.add(Z0),setTimeout(()=>{S0.classList.remove(Z0)},300);if(B.dm&&!$J)u0(Q0,$0,v0.id)}B.pef(S0,$0);let WJ=Q0.has(v0.id);if(j0(S0,WJ,$0===Y0),C0)S0.setAttribute("aria-setsize",B.la)}else{let d0=i1($0,v0);if(qJ)qJ.push({index:$0,element:d0});if(B.dm)u0(Q0,$0,v0.id);let l0=Q0.has(v0.id),WJ=$0===Y0;if(l0||WJ)j0(d0,l0,WJ);z0.appendChild(d0),z.set($0,d0),x0=!0}}if(x0)S.items.appendChild(z0);if(qJ&&qJ.length>0)for(let $0=0;$0<R0.length;$0++)R0[$0](qJ);F.start=_.start,F.end=_.end,M.lastRenderRange.start=_.start,M.lastRenderRange.end=_.end,M.viewportState.scrollPosition=B.ls,M.viewportState.visibleRange.start=W.start,M.viewportState.visibleRange.end=W.end,M.viewportState.renderRange.start=_.start,M.viewportState.renderRange.end=_.end,E0.range.start=_.start,E0.range.end=_.end,A.emit("range:change",E0)},e1=()=>{F.start=-1,F.end=-1,B.rfn()};B.rfn=t1,B.ffn=e1;let J4=()=>{S.root.classList.remove(O0),w=!1,B.vt.velocity=0,B.vt.sampleCount=0,V0.velocity=0,V0.reliable=!1,A.emit("velocity:change",V0),s();for(let d=0;d<W0.length;d++)W0[d]();A.emit("scroll:idle",{scrollPosition:B.ls})},Q4=()=>{if(p)clearTimeout(p);p=setTimeout(J4,O?.idleTimeout??Z4)},QJ=()=>{if(B.id)return;let d=B.sgt();if(d===B.ls&&w)return;let Q0=d>=B.ls?"down":"up";if(B.vt=K1(B.vt,d),!S.root.classList.contains(O0))S.root.classList.add(O0);w=!0,B.ls=d,B.rfn(),B0.scrollPosition=d,B0.direction=Q0,A.emit("scroll",B0),V0.velocity=B.vt.velocity,V0.reliable=B.vt.sampleCount>=X1,A.emit("velocity:change",V0);for(let Y0=0;Y0<y0.length;Y0++)y0[Y0](d,Q0);Q4()},BJ=null;if(B.st.addEventListener("scroll",QJ,{passive:!0}),k){let d=S.viewport;if(j)BJ=(Q0)=>{if(M.viewportState.isCompressed)return;if(Math.abs(Q0.deltaX)>Math.abs(Q0.deltaY))return;let Y0=B.sgt(),F0=d.scrollWidth-d.clientWidth,w0=Math.max(0,Math.min(Y0+Q0.deltaY,F0));if(Math.abs(w0-Y0)<1)return;Q0.preventDefault(),B.sst(w0),QJ()};else BJ=(Q0)=>{if(M.viewportState.isCompressed)return;let Y0=d.scrollWidth>d.clientWidth;if(Y0&&Math.abs(Q0.deltaX)>Math.abs(Q0.deltaY))return;if(Y0&&Q0.deltaX!==0)Q0.preventDefault(),d.scrollLeft+=Q0.deltaX;let F0=B.sgt(),w0=d.scrollHeight-d.clientHeight,C0=Math.max(0,Math.min(F0+Q0.deltaY,w0));if(Math.abs(C0-F0)<1)return;Q0.preventDefault(),B.sst(C0),QJ()};B.wh=BJ,d.addEventListener("wheel",BJ,{passive:!1})}let TJ=(d)=>{let Q0=d.target.closest("[data-index]");if(!Q0)return null;let Y0=parseInt(Q0.dataset.index??"-1",10);if(Y0<0)return null;let F0=B.dm?.getItem(Y0)??B.it[Y0];if(!F0||F0.__groupHeader)return null;return{item:F0,index:Y0}},tJ=(d)=>{for(let Y0=0;Y0<D0.length;Y0++)D0[Y0](d);let Q0=TJ(d);if(Q0)A.emit("item:click",{item:Q0.item,index:Q0.index,event:d})},eJ=(d)=>{let Q0=TJ(d);if(Q0)A.emit("item:dblclick",{item:Q0.item,index:Q0.index,event:d})},J1=(d)=>{for(let Y0=0;Y0<_0.length;Y0++)_0[Y0](d);let Q0=TJ(d);if(Q0)A.emit("item:contextmenu",{item:Q0.item,index:Q0.index,event:d})},Q1=(d)=>{for(let Q0=0;Q0<T0.length;Q0++)T0[Q0](d)};if(S.items.addEventListener("click",tJ),S.items.addEventListener("dblclick",eJ),S.items.addEventListener("contextmenu",J1),S.root.addEventListener("keydown",Q1),C){let d=null,Q0=(Y0)=>{if(d)clearTimeout(d);d=setTimeout(()=>{if(d=null,B.id)return;let F0=B.vtf();S.liveRegion.textContent=`Showing items ${Y0.range.start+1} to ${Math.min(Y0.range.end+1,F0)} of ${F0}`},300)};A.on("range:change",Q0),r.push(()=>{if(d)clearTimeout(d);A.off("range:change",Q0)})}let HJ=new ResizeObserver((d)=>{if(B.id)return;for(let Q0 of d){let Y0=Q0.contentRect.height,F0=Q0.contentRect.width,w0=j?F0:Y0,C0=j?B.cw:B.ch;if(B.cw=F0,B.ch=Y0,Math.abs(w0-C0)>1){if(M.viewportState.containerSize=w0,B.ii){let z0=M.cachedCompression;if(z0&&z0.state.isCompressed){let x0=`${z0.state.virtualSize+E}px`;if(j)S.content.style.width=x0;else S.content.style.height=x0}else c();B.rfn(),A.emit("resize",{height:Y0,width:F0})}}if(B.ii)for(let z0=0;z0<H0.length;z0++)H0[z0](F0,Y0)}});if(B.vre)HJ.observe(S.viewport);let kJ={dom:S,emitter:A,resolvedConfig:e,rawConfig:J,rendered:z,pool:T,itemState:t,sharedState:M,renderRange:_,isHorizontal:j,classPrefix:Z,contentSizeHandlers:P0,idleHandlers:W0,afterScroll:y0,clickHandlers:D0,contextMenuHandlers:_0,keydownHandlers:T0,resizeHandlers:H0,destroyHandlers:r,methods:X0,onScrollFrame:QJ,resizeObserver:HJ,afterRenderBatch:R0,applyTemplate:ZJ,updateContentSize:c},NJ=M1(B,kJ);B.dm=O1(B,kJ,NJ),B.sc=A1(B,kJ),X0.set("_updateRenderedItem",(d,Q0,Y0,F0)=>{let w0=z.get(d);if(!w0)return;let C0={selected:Y0,focused:F0};try{let z0=B.at(Q0,d,C0);ZJ(w0,z0,d)}catch(z0){let x0=z0 instanceof Error?z0:Error(String(z0));A.emit("error",{error:x0,context:`tpl(${d},${Q0.id})`,viewport:G()})}w0.dataset.id=String(Q0.id),j0(w0,Y0,F0)});let q1=new WeakSet;X0.set("_setSizeCache",(d)=>{if(B.hc=d,B.gp>0&&!q1.has(d)){q1.add(d);let Q0=B.hc.getTotalSize,Y0=B.gp;B.hc.getTotalSize=()=>{let F0=Q0();return F0>0?F0-Y0:0}}}),X0.set("_setConstrainSize",(d)=>{B.csi=d});let j1=new Map;for(let d of o)if(d.methods)for(let Q0 of d.methods){let Y0=j1.get(Q0);if(Y0)throw Error(`[vlist] Method "${Q0}" is registered by both "${Y0}" and "${d.name}"`);j1.set(Q0,d.name)}for(let d of o)try{d.setup(NJ)}catch(Q0){let Y0=Q0 instanceof Error?Q0:Error(String(Q0));console.error(`[vlist] Feature "${d.name}" setup failed:`,Y0),A.emit("error",{error:Y0,context:d.name,viewport:G()})}if(i&&!Q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(C&&!X0.has("_getFocusedIndex")){let d=j?L.left:L.top,Q0=j?L.right:L.bottom;E1(B,S,Z,m,j,d,Q0,b,X0,z,T0,D0,r,!!J.focusOnClick)}if(B.ii=!0,NJ.state.isInitialized=!0,c(),B.rfn(),v&&B.it.length>0){let d=B.gsp(B.it.length-1,B.hc,B.ch,B.it.length,"end");B.sst(d),B.ls=d,B.rfn()}return R1(B,S,A,z,T,X0,o,r,NJ,v,b,tJ,eJ,J1,Q1,QJ,HJ,()=>{},()=>{if(p)clearTimeout(p)})}var XJ=(J,Q,j)=>{let q=Q.getTotalSize(),X=j===!0||q>o0,Y=q>o0?o0:q,V=q>0?Y/q:1;return{isCompressed:X,actualSize:q,virtualSize:Y,ratio:V}},P1=(J,Q,j,q,X,Y)=>{if(q===0||Q===0)return Y.start=0,Y.end=-1,Y;if(!X.isCompressed||X.ratio===1){let D=j.indexAtOffset(J),H=j.indexAtOffset(J+Q);if(H<q-1)H++;return Y.start=Math.max(0,D),Y.end=Math.min(q-1,Math.max(0,H)),Y}let{virtualSize:V}=X,Z=J/V*q,N=Math.floor(Z),U=Z1(j,Math.max(0,N),Q,q),P=Math.ceil(Z)+U;return Y.start=Math.max(0,N),Y.end=Math.min(q-1,Math.max(0,P)),Y};var JJ=(J,Q,j,q,X,Y,V)=>{if(!Y.isCompressed||q===0)return j.getOffset(J);if(Y.ratio===1)return j.getOffset(J)-Q;let{virtualSize:K}=Y,Z=Q/K,N=j.getTotalSize(),U=Z*N;return j.getOffset(J)-U},w1=(J,Q,j,q,X,Y="start")=>{if(q===0)return 0;let V;if(X.isCompressed&&X.ratio!==1){V=J/q*X.virtualSize;let U=Q.getSize(J);switch(Y){case"center":V-=(j-U)/2*X.ratio;break;case"end":V-=(j-U)*X.ratio;break}return Math.max(0,V)}V=Q.getOffset(J);let K=Q.getSize(J);switch(Y){case"center":V-=(j-K)/2;break;case"end":V-=j-K;break}let Z=X.virtualSize-j;return Math.max(0,Math.min(V,Z))};var V4=(J)=>{if(typeof J!=="object"){let Q=J??2;return{top:Q,right:Q,bottom:Q,left:Q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},UJ=(J,Q,j={},q="vlist",X=!1)=>{let{autoHide:Y=!0,autoHideDelay:V=1000,minThumbSize:K=15,showOnHover:Z=!0,showOnViewportEnter:N=!0,clickBehavior:U="scroll"}=j,P=U==="page"?"scroll":U,D=V4(j.padding),H=X?D.left:D.top,I=X?D.right:D.bottom,C=X?D.bottom:D.right,O=j.hoverZoneWidth??C+16,k=0,b=0,v=0,m=0,g=!1,h=!1,i=0,$=0,e=0,o=null,y=!1,R=null,S=null,a=0,L=0,E=null,A=null,f=null,J0=X?"width":"height",x=X?"translateX":"translateY",u=X?(W0)=>W0.clientX:(W0)=>W0.clientY,l=X?"left":"top",T=document.createElement("div"),B=document.createElement("div"),p=document.createElement("div"),w=()=>{if(T.className=`${q}-scrollbar`,B.className=`${q}-scrollbar-thumb`,X)T.classList.add(`${q}-scrollbar--horizontal`);if(j.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${D.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${D.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${D.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${D.left}px`);if(j.minThumbSize!==void 0)T.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${K}px`);if(T.appendChild(B),J.appendChild(T),p.className=`${q}-scrollbar-hover`,X)p.classList.add(`${q}-scrollbar-hover--horizontal`),p.style.height=`${O}px`;else p.style.width=`${O}px`;J.appendChild(p)},W=()=>{if(o)clearTimeout(o),o=null},_=()=>{if(!Y)return;W(),o=setTimeout(M,V)},F=()=>{if(k<=b)return;if(W(),!y)T.classList.add(`${q}-scrollbar--visible`),y=!0;if(Y&&!g&&!h)_()},M=()=>{if(g||h)return;T.classList.remove(`${q}-scrollbar--visible`),y=!1},G=(W0,D0)=>{k=W0,b=D0;let _0=k>b;if(T.style.display=_0?"":"none",!_0){M();return}let T0=Math.max(0,b-H-I),H0=b/k;if(v=Math.max(K,H0*T0),B.style[J0]=`${v}px`,m=T0-v,z(e),!Y)F()},z=(W0)=>{if(e=W0,k<=b||m<=0)return;let D0=k-b,T0=Math.min(1,Math.max(0,W0/D0))*m;B.style.transform=`${x}(${T0}px)`},s=(W0)=>{if(W0.target===B||P!=="jump"||m<=0)return;let D0=k-b,_0=T.getBoundingClientRect(),T0=u(W0)-_0[l],H0=Math.max(0,Math.min(T0-v/2,m));Q(H0/m*D0),F()},c=()=>{if(E!==null)clearTimeout(E),E=null;if(A!==null)cancelAnimationFrame(A),A=null;f=null},t=(W0)=>{let D0=m>0?L/W0*m:0;if(a<D0)return-1;if(a>=D0+v)return 1;return 0},K0=()=>{let W0=k-b,D0=t(W0);if(D0===0){c();return}if(D0===-1){if(L<=0){c();return}let _0=Math.max(0,L-b);L=_0,Q(_0)}else{if(L>=W0){c();return}let _0=Math.min(W0,L+b);L=_0,Q(_0)}F()},n=(W0)=>{if(f===null){f=W0,A=requestAnimationFrame(n);return}let D0=k-b,_0=W0-f;f=W0;let T0=t(D0);if(T0===0){c();return}let H0=12*b/1000,P0=Math.min(H0*_0,b);if(T0===-1){if(L<=0){c();return}let R0=Math.max(0,L-P0);L=R0,Q(R0)}else{if(L>=D0){c();return}let R0=Math.min(D0,L+P0);L=R0,Q(R0)}W(),A=requestAnimationFrame(n)},q0=()=>{c(),_(),document.removeEventListener("mouseup",q0)},j0=(W0)=>{if(W0.target===B||P!=="scroll")return;W0.preventDefault();let D0=T.getBoundingClientRect();a=u(W0)-D0[l],L=e,K0(),E=setTimeout(()=>{A=requestAnimationFrame(n)},350),document.addEventListener("mouseup",q0)},N0=(W0)=>{W0.preventDefault(),W0.stopPropagation(),g=!0,i=u(W0),$=e,W(),T.classList.add(`${q}-scrollbar--dragging`),document.addEventListener("mousemove",G0),document.addEventListener("mouseup",M0)},G0=(W0)=>{if(!g)return;let D0=u(W0)-i,_0=m>0?D0/m:0,T0=k-b,H0=_0*T0,P0=Math.max(0,Math.min($+H0,T0)),r=P0/T0*m;if(B.style.transform=`${x}(${r}px)`,S=P0,R===null)R=requestAnimationFrame(()=>{if(S!==null)Q(S);R=null})},M0=()=>{if(g=!1,R!==null)cancelAnimationFrame(R),R=null;if(S!==null)Q(S),S=null;if(T.classList.remove(`${q}-scrollbar--dragging`),Y&&!h)_();document.removeEventListener("mousemove",G0),document.removeEventListener("mouseup",M0)},A0=()=>{if(N)F()},k0=()=>{if(!g){if(h=!1,Y)_()}},Z0=()=>{h=!0,W(),F()},O0=()=>{if(h=!1,!g&&Y)_()},y0=()=>{if(W(),c(),R!==null)cancelAnimationFrame(R),R=null;if(T.removeEventListener("click",s),T.removeEventListener("mousedown",j0),T.removeEventListener("mouseenter",Z0),document.removeEventListener("mouseup",q0),T.removeEventListener("mouseleave",O0),B.removeEventListener("mousedown",N0),J.removeEventListener("mouseenter",A0),J.removeEventListener("mouseleave",k0),document.removeEventListener("mousemove",G0),document.removeEventListener("mouseup",M0),p.removeEventListener("click",s),p.removeEventListener("mousedown",j0),Z)p.removeEventListener("mouseenter",Z0),p.removeEventListener("mouseleave",O0);if(p.parentNode)p.parentNode.removeChild(p);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"),T.parentNode)T.parentNode.removeChild(T)};if(w(),T.addEventListener("click",s),T.addEventListener("mousedown",j0),T.addEventListener("mouseenter",Z0),T.addEventListener("mouseleave",O0),B.addEventListener("mousedown",N0),J.addEventListener("mouseenter",A0),J.addEventListener("mouseleave",k0),p.addEventListener("click",s),p.addEventListener("mousedown",j0),Z)p.addEventListener("mouseenter",Z0),p.addEventListener("mouseleave",O0);return{show:F,hide:M,updateBounds:G,updatePosition:z,isVisible:()=>y,destroy:y0}};var fJ=(J)=>{let Q=null;return{name:"withScrollbar",priority:30,setup(j){let{dom:q,config:X}=j,{classPrefix:Y,horizontal:V}=X;if(Q=UJ(q.viewport,(Z)=>j.scrollController.scrollTo(Z),J??{},Y,V),!q.viewport.classList.contains(`${Y}-viewport--custom-scrollbar`))q.viewport.classList.add(`${Y}-viewport--custom-scrollbar`);if(J?.gutter)q.viewport.classList.add(`${Y}-viewport--gutter`);Q.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize);let K=Q;j.afterScroll.push((Z,N)=>{K.updatePosition(Z),K.show()}),j.resizeHandlers.push((Z,N)=>{if(K)K.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.contentSizeHandlers.push(()=>{if(K)K.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.destroyHandlers.push(()=>{if(K)K.destroy()})},destroy(){if(Q)Q.destroy(),Q=null}}};var _4=0.65,D4=0.5,z1=1.7,G4=0.95,M4=0.1,O4=5,A4=100,C1=(J,Q,j,q=0)=>{if(J<=0)return 0;let X=Q-q;return Math.max(0,X*(1-j)+q)},IJ=(J)=>{let Q=J?.force??!1,j=null,q=0,X=!1,Y=0,V=0,K=null,Z=0,N=0,U=null,P=[];return{name:"withScale",priority:20,setup(D){let{dom:H,config:I}=D,{classPrefix:C,horizontal:O}=I,k=f0(D.rawConfig.padding),b=O?k.left+k.right:k.top+k.bottom,v=()=>{let o=D.getVirtualTotal(),y=XJ(o,D.sizeCache,Q);if(y.isCompressed&&!X){X=!0,D.scrollController.enableCompression(y);let S=O?H.viewport.scrollLeft:H.viewport.scrollTop;if(O)H.viewport.style.overflowX="hidden";else H.viewport.style.overflow="hidden";if(O)H.viewport.scrollLeft=0;else H.viewport.scrollTop=0;if(S>0)q=S,V=S;Y=C1(y.virtualSize,D.state.viewportState.containerSize,y.ratio,b),D.updateContentSize(y.virtualSize+Y),D.setScrollFns(()=>q,(T)=>{if(q=T,V=T,K!==null)cancelAnimationFrame(K),K=null});let a=()=>{let T=V-q;if(D.getVirtualTotal()===0){q=0,V=0,K=null,D.scrollController.scrollTo(0);return}if(Math.abs(T)<D4){let B=D.getCachedCompression(),p=Math.max(0,B.virtualSize+Y-D.state.viewportState.containerSize);q=Math.max(0,Math.min(V,p)),V=q,K=null}else{q+=T*_4;let p=D.getCachedCompression().virtualSize+Y-D.state.viewportState.containerSize;q=Math.max(0,Math.min(q,p)),K=requestAnimationFrame(a)}D.scrollController.scrollTo(q)},L=H.viewport,E=(T)=>{T.preventDefault();let B=D.getCachedCompression(),p=B.virtualSize+Y-D.state.viewportState.containerSize;if(V=Math.max(0,Math.min(V+T.deltaY*B.ratio*z1,p)),K===null)K=requestAnimationFrame(a)};L.addEventListener("wheel",E,{passive:!1});let A=()=>{if(U!==null)cancelAnimationFrame(U),U=null},f=(T)=>{if(A(),K!==null)cancelAnimationFrame(K),K=null;let B=T.touches[0];if(!B)return;let p=O?B.clientX:B.clientY;Z=p,N=q,P=[{time:performance.now(),y:p}]},J0=(T)=>{T.preventDefault();let B=T.touches[0];if(!B)return;let p=O?B.clientX:B.clientY,w=performance.now();if(P.push({time:w,y:p}),P.length>O4)P.shift();let W=Z-p,_=D.getCachedCompression(),F=_.virtualSize+Y-D.state.viewportState.containerSize,M=Math.max(0,Math.min(N+W*_.ratio*z1,F));q=M,V=M,D.scrollController.scrollTo(M)},x=(T)=>{let B=performance.now(),p=P.filter((F)=>B-F.time<A4),w=0;if(p.length>=2){let F=p[0],M=p[p.length-1],G=M.time-F.time;if(G>0)w=(F.y-M.y)/G}if(P=[],Math.abs(w)<M4)return;let W=w*16,_=()=>{if(W*=G4,Math.abs(W)<0.5){U=null;return}let M=D.getCachedCompression().virtualSize+Y-D.state.viewportState.containerSize,G=q+W;if(G=Math.max(0,Math.min(G,M)),G<=0&&W<0||G>=M&&W>0){q=G,V=G,D.scrollController.scrollTo(G),U=null;return}q=G,V=G,D.scrollController.scrollTo(G),U=requestAnimationFrame(_)};U=requestAnimationFrame(_)};L.addEventListener("touchstart",f,{passive:!0}),L.addEventListener("touchmove",J0,{passive:!1}),L.addEventListener("touchend",x,{passive:!0}),L.addEventListener("touchcancel",x,{passive:!0}),D.destroyHandlers.push(()=>{L.removeEventListener("wheel",E),L.removeEventListener("touchstart",f),L.removeEventListener("touchmove",J0),L.removeEventListener("touchend",x),L.removeEventListener("touchcancel",x)});let u=H.viewport.querySelector(`.${C}-scrollbar`),l=()=>{if((O?H.viewport.scrollLeft:H.viewport.scrollTop)!==0)if(O)H.viewport.scrollLeft=0;else H.viewport.scrollTop=0};if(L.addEventListener("scroll",l,{passive:!0}),D.destroyHandlers.push(()=>{L.removeEventListener("scroll",l)}),!u){if(j=UJ(H.viewport,(B)=>D.scrollController.scrollTo(B),{},C,O),!H.viewport.classList.contains(`${C}-viewport--custom-scrollbar`))H.viewport.classList.add(`${C}-viewport--custom-scrollbar`);j.updateBounds(y.virtualSize,D.state.viewportState.containerSize);let T=j;D.afterScroll.push((B,p)=>{if(T)T.updatePosition(B),T.show()}),D.resizeHandlers.push((B,p)=>{if(T){let w=D.getCachedCompression();T.updateBounds(w.virtualSize,D.state.viewportState.containerSize)}})}}else if(!y.isCompressed&&X){if(X=!1,K!==null)cancelAnimationFrame(K),K=null;if(U!==null)cancelAnimationFrame(U),U=null;if(q=0,V=0,P=[],D.setScrollFns(O?()=>H.viewport.scrollLeft:()=>H.viewport.scrollTop,O?(S)=>{H.viewport.scrollLeft=S}:(S)=>{H.viewport.scrollTop=S}),O)H.viewport.scrollLeft=0;else H.viewport.scrollTop=0;if(D.scrollController.disableCompression(),O)H.viewport.style.overflowX="auto";else H.viewport.style.overflow="auto";if(j)j.destroy(),j=null;Y=0,D.updateContentSize(y.actualSize)}else if(y.isCompressed)D.scrollController.updateConfig({compression:y}),Y=C1(y.virtualSize,D.state.viewportState.containerSize,y.ratio,b),D.updateContentSize(y.virtualSize+Y);if(j)j.updateBounds(y.virtualSize+Y,D.state.viewportState.containerSize);let R=D.state.viewportState;if(R.isCompressed=y.isCompressed,R.compressionRatio=y.ratio,R.totalSize=y.virtualSize+Y,R.actualSize=y.actualSize,D.state.cachedCompression={state:y,totalItems:o},X){let S=Math.max(0,y.virtualSize+Y-D.state.viewportState.containerSize),a=q;if(a>S)a=S;else if(a<0)a=0;if(a!==q){if(K!==null)cancelAnimationFrame(K),K=null;if(U!==null)cancelAnimationFrame(U),U=null;D.scrollController.scrollTo(a)}}for(let S=0;S<D.contentSizeHandlers.length;S++)D.contentSizeHandlers[S]()};D.updateCompressionMode=v;let m=D.getCachedCompression.bind(D);D.getCachedCompression=()=>{if(D.state.cachedCompression)return D.state.cachedCompression.state;return m()},D.setVisibleRangeFn((o,y,R,S,a)=>{g=null,h=null;let L=XJ(S,R,Q);P1(o,y,R,S,L,a)}),D.setScrollToPosFn((o,y,R,S,a)=>{let L=XJ(S,y,Q);return w1(o,y,R,S,L,a)});let g=null,h=null;D.setPositionElementFn((o,y)=>{let R=D.getVirtualTotal(),S=XJ(R,D.sizeCache,Q);if(S.isCompressed){let a=D.scrollController.getScrollTop();if(g===null||y<h)h=y,g=Math.round(JJ(y,a,D.sizeCache,R,D.state.viewportState.containerSize,S));let L=g+D.sizeCache.getOffset(y)-D.sizeCache.getOffset(h),E=D.config.horizontal;o.style.transform=E?`translateX(${L}px)`:`translateY(${L}px)`}else{let a=Math.round(D.sizeCache.getOffset(y)),L=D.config.horizontal;o.style.transform=L?`translateX(${a}px)`:`translateY(${a}px)`}});let i=O?k.left:k.top,$=O?k.right:k.bottom,e=D.getItemToScrollIndexFn();D.methods.set("_scrollItemIntoView",(o)=>{let y=D.getCachedCompression(),R=D.state.viewportState.containerSize,S=D.state.viewportState.scrollPosition,a=D.getVirtualTotal(),{visibleRange:L}=D.state.viewportState,E=e(o),A=DJ(E,D.sizeCache,S,R,i,$,y,a,L);if(A!==S)D.scrollController.scrollTo(A)}),v(),D.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(K!==null)cancelAnimationFrame(K),K=null;if(U!==null)cancelAnimationFrame(U),U=null})}}};var v1=(J={})=>{let{chunkSize:Q=100,maxCachedItems:j=5000,evictionBuffer:q=200,onEvict:X}=J,Y=new Map,V=0,K=0,Z=(L)=>{let E=Y.get(L);if(!E)E={items:Array(Q),count:0,lastAccess:Date.now()},Y.set(L,E);else E.lastAccess=Date.now();return E},N=(L)=>{return Math.floor(L/Q)},U=(L)=>{return L%Q},P=()=>V,D=(L)=>{V=L},H=(L)=>{if(L<0||L>=V)return;let E=N(L),A=Y.get(E);if(!A)return;return A.items[U(L)]},I=(L)=>{if(L<0||L>=V)return!1;let E=N(L),A=Y.get(E);if(!A)return!1;return A.items[U(L)]!==void 0},C=(L,E)=>{let A=N(L),f=Z(A),J0=U(L),x=f.items[J0]===void 0;if(f.items[J0]=E,x)f.count++,K++;if(L>=V)V=L+1},O=(L,E)=>{for(let A=0;A<E.length;A++){let f=E[A];if(f!==void 0)C(L+A,f)}},k=(L)=>{if(L<0||L>=V)return!1;let E=N(L),A=Y.get(E),f=U(L);if(!(A!==void 0&&A.items[f]!==void 0))return!1;let x=E,u=Array.from(Y.keys()).filter((T)=>T>=x).sort((T,B)=>T-B),l=[];for(let T of u){let B=Y.get(T),p=T*Q;for(let w=0;w<Q;w++){if(B.items[w]===void 0)continue;let W=p+w;if(W<=L)continue;l.push({oldIndex:W,item:B.items[w]})}}if(A.items[f]=void 0,A.count--,K--,A.count===0)Y.delete(E);for(let{oldIndex:T}of l){let B=N(T),p=Y.get(B);if(!p)continue;let w=U(T);if(p.items[w]!==void 0){if(p.items[w]=void 0,p.count--,K--,p.count===0)Y.delete(B)}}for(let{oldIndex:T,item:B}of l){let p=T-1,w=N(p),W=Z(w),_=U(p);W.items[_]=B,W.count++,K++}return V--,!0},b=(L,E)=>{let A=[];for(let f=L;f<=E&&f<V;f++)A.push(H(f));return A},v=(L,E)=>{for(let A=L;A<=E&&A<V;A++)if(!I(A))return!1;return!0},m=()=>{let L=[],E=null,A=Array.from(Y.keys()).sort((f,J0)=>f-J0);for(let f of A){let J0=Y.get(f);if(!J0)continue;let x=f*Q;for(let u=0;u<Q;u++){let l=x+u;if(l>=V)break;if(J0.items[u]!==void 0)if(E===null)E={start:l,end:l};else if(l===E.end+1)E.end=l;else L.push(E),E={start:l,end:l};else if(E!==null)L.push(E),E=null}}if(E!==null)L.push(E);return L},g=(L,E)=>{let A=[],f=null;for(let J0=L;J0<=E&&J0<V;J0++)if(!I(J0))if(f===null)f={start:J0,end:J0};else f.end=J0;else if(f!==null)A.push(f),f=null;if(f!==null)A.push(f);return A},h=(L)=>{return Y.has(L)},i=(L)=>{let E=Y.get(L);if(E)E.lastAccess=Date.now()},$=(L,E)=>{if(L>E||Y.size===0)return;let A=Date.now(),f=N(Math.max(0,L)),J0=N(Math.min(V-1,E));for(let x=f;x<=J0;x++){let u=Y.get(x);if(u)u.lastAccess=A}},e=(L,E)=>{if(K<=j)return 0;let A=Math.max(0,L-q),f=Math.min(V-1,E+q),J0=N(A),x=N(f),u=0,l=[];for(let[T,B]of Y)if(T<J0||T>x)u+=B.count,l.push(T),K-=B.count,Y.delete(T);if(u>0&&X)X(u,l);return u},o=()=>{if(K<=j)return 0;let L=Array.from(Y.entries()).sort(([,f],[,J0])=>f.lastAccess-J0.lastAccess),E=0,A=[];for(let[f,J0]of L){if(K<=j)break;E+=J0.count,K-=J0.count,A.push(f),Y.delete(f)}if(E>0&&X)X(E,A);return E},y=()=>{return{totalItems:V,cachedItems:K,cachedChunks:Y.size,chunkSize:Q,maxCachedItems:j,memoryEfficiency:V>0?1-K/V:1}},R=()=>K,S=()=>{Y.clear(),K=0};return{chunkSize:Q,maxCachedItems:j,getTotal:P,setTotal:D,get:H,has:I,set:C,setRange:O,delete:k,getRange:b,isRangeLoaded:v,getLoadedRanges:m,findUnloadedRanges:g,getChunkIndex:N,isChunkLoaded:h,touchChunk:i,touchChunksForRange:$,evictDistant:e,evictToLimit:o,getStats:y,getCachedCount:R,clear:S,reset:()=>{S(),V=0}}},E4=(J)=>{if(J.length===0)return[];let Q=[...J].sort((q,X)=>q.start-X.start),j=[{...Q[0]}];for(let q=1;q<Q.length;q++){let X=Q[q],Y=j[j.length-1];if(X.start<=Y.end+1)Y.end=Math.max(Y.end,X.end);else j.push({...X})}return j},S1=(J,Q,j)=>{let q=Math.floor(J.start/j)*j,X=Math.ceil((J.end+1)/j)*j-1,Y={start:q,end:X};if(Q.length===0)return[Y];let V=[],K=E4(Q),Z=Y.start;for(let N of K){if(N.end<Z)continue;if(N.start>Y.end)break;if(N.start>Z)V.push({start:Z,end:Math.min(N.start-1,Y.end)});if(Z=N.end+1,Z>Y.end)break}if(Z<=Y.end)V.push({start:Z,end:Y.end});return V};var f1=(J={})=>{let{maskCharacter:Q=H1,maxSampleSize:j=k1}=J,q=[],X=!1,Y=(U)=>{if(X||U.length===0)return;let P=Math.min(U.length,j);for(let D=0;D<P;D++){let H=U[D];if(!H||typeof H!=="object")continue;let I={};for(let[C,O]of Object.entries(H)){if(C.startsWith("_")||C==="id")continue;I[C]=String(O??"").length}if(Object.keys(I).length>0)q.push(I)}X=!0},V=()=>X,K=(U)=>{let P={id:`${p0}${U}`,[RJ]:!0,_index:U};if(q.length===0)return P.label=Q.repeat(12),P;let D=q[U%q.length];for(let[H,I]of Object.entries(D))P[H]=Q.repeat(Math.max(1,I));return P};return{analyzeStructure:Y,hasAnalyzedStructure:V,generate:K,generateRange:(U,P)=>{let D=[];for(let H=U;H<=P;H++)D.push(K(H));return D},clear:()=>{q=[],X=!1}}},LJ=(J)=>{if(!J||typeof J!=="object")return!1;return J[RJ]===!0};var L4=50,I1=(J={})=>{let{adapter:Q,initialItems:j,initialTotal:q,storage:X,placeholder:Y,pageSize:V=L4,onStateChange:K,onItemsLoaded:Z,onItemsEvicted:N}=J,U=v1({...X,onEvict:(n,q0)=>{N?.(n),$()}}),P=null,D=()=>{if(!P)P=f1(Y);return P},H=new Map,I=!1,C,O=!0,k,b,v=[],m=0,g=new Map,h=new Map,i=()=>{for(let n of h.values())n.abort();h.clear(),g.clear()},$=()=>{K?.(A())},e=()=>{H.clear();let n=U.getLoadedRanges();for(let q0 of n)for(let j0=q0.start;j0<=q0.end;j0++){let N0=U.get(j0);if(N0&&!LJ(N0))H.set(N0.id,j0)}},o=(n,q0)=>{if(!LJ(q0))H.set(q0.id,n)},y=(n)=>{H.delete(n)},R=(n,q0)=>{return`${n}-${q0}`},S=()=>U.getTotal(),a=()=>U.getCachedCount(),L=()=>I,E=()=>O,A=()=>({total:U.getTotal(),cached:U.getCachedCount(),isLoading:I,pendingRanges:v,error:C,hasMore:O,cursor:k}),f=()=>U,J0=()=>D(),x=(n)=>{let q0=U.get(n);if(q0!==void 0)return q0;if(n>=0&&n<U.getTotal())return D().generate(n);return},u=(n)=>{let q0=H.get(n);if(q0===void 0)return;return U.get(q0)},l=(n)=>{return H.get(n)??-1},T=(n)=>{let q0=U.get(n);return q0!==void 0&&!LJ(q0)},B=(n,q0)=>{let j0=[],N0=U.getTotal(),G0=0,M0=0;U.touchChunksForRange(n,Math.min(q0,N0-1));for(let A0=n;A0<=q0&&A0<N0;A0++){let k0=U.get(A0);if(k0!==void 0)j0.push(k0),G0++;else j0.push(D().generate(A0)),M0++}return j0},p=(n)=>{U.setTotal(n),O=U.getCachedCount()<n,$()},w=(n,q0=0,j0)=>{if(Q&&n.length>0){let N0=D();if(!N0.hasAnalyzedStructure())N0.analyzeStructure(n)}for(let N0=0;N0<n.length;N0++){let G0=n[N0];if(G0!==void 0){let M0=q0+N0;U.set(M0,G0),o(M0,G0)}}if(j0!==void 0)U.setTotal(j0);else if(q0+n.length>U.getTotal())U.setTotal(q0+n.length);if(U.getCachedCount()>=U.getTotal()&&U.getTotal()>0)O=!1;$(),Z?.(n,q0,U.getTotal())},W=(n,q0)=>{let j0=U.get(n);if(!j0)return!1;let N0=j0.id,G0={...j0,...q0};if(U.set(n,G0),q0.id!==void 0&&q0.id!==N0)y(N0);return o(n,G0),$(),!0},_=(n)=>{let q0=H.get(n);if(q0===void 0)return!1;if(!U.delete(q0))return!1;return e(),i(),$(),!0},F=async(n,q0)=>{if(!Q)return;let j0=R(n,q0);if(g.has(j0))return;let N0=U.getLoadedRanges(),G0=S1({start:n,end:q0},N0,U.chunkSize);if(G0.length===0)return;let M0=U.chunkSize,A0=M0*2;for(let[O0,y0]of h){let W0=O0.indexOf("-"),D0=parseInt(O0.slice(0,W0),10);if(Math.abs(D0-n)>A0)y0.abort(),h.delete(O0),g.delete(O0)}let k0=[];for(let O0 of G0){let y0=Math.floor(O0.start/M0),W0=Math.floor(O0.end/M0);for(let D0=y0;D0<=W0;D0++){let _0=D0*M0,T0=_0+M0-1,H0=R(_0,T0);if(!k0.some((P0)=>P0.start===_0)&&!g.has(H0))k0.push({start:_0,end:T0})}}let Z0=[];for(let O0 of G0){let y0=Math.floor(O0.start/M0),W0=Math.floor(O0.end/M0);for(let D0=y0;D0<=W0;D0++){let _0=D0*M0,T0=_0+M0-1,H0=R(_0,T0);if(g.has(H0)){let P0=g.get(H0);if(!Z0.includes(P0))Z0.push(P0)}}}for(let O0 of k0){let y0=R(O0.start,O0.end),W0=new AbortController;h.set(y0,W0);let D0=(async()=>{v.push(O0),I=!0,C=void 0,$();try{let _0=O0.end-O0.start+1,T0={offset:O0.start,limit:_0,cursor:O0.start===b?k:void 0,signal:W0.signal},H0=await Q.read(T0);if(w(H0.items,O0.start,H0.total),H0.cursor)k=H0.cursor,b=O0.start+H0.items.length;let P0=O0.start+H0.items.length;if(P0>=m){if(m=P0,H0.hasMore!==void 0)O=H0.hasMore;else if(H0.total!==void 0)O=P0<H0.total}}catch(_0){if(_0?.name==="AbortError")return;C=_0 instanceof Error?_0:Error(String(_0))}finally{g.delete(y0),h.delete(y0),v=v.filter((_0)=>_0.start!==O0.start||_0.end!==O0.end),I=g.size>0,$()}})();g.set(y0,D0),Z0.push(D0)}await Promise.all(Z0)},M=async(n,q0)=>{if(U.isRangeLoaded(n,q0))return;await F(n,q0)},G=async()=>{if(!Q)return;await F(0,V-1)},z=async()=>{if(!Q||I||!O)return!1;let n=U.getCachedCount(),q0=U.getTotal(),j0=n,N0=Math.min(j0+V-1,q0>0?q0-1:j0+V-1);if(j0>=q0&&q0>0)return O=!1,!1;return await F(j0,N0),U.getCachedCount()>n},s=async()=>{if(U.clear(),U.setTotal(0),H.clear(),P)P.clear();i(),v=[],I=!1,k=void 0,b=void 0,O=!0,m=0,C=void 0,$()},c=(n,q0)=>{if(U.evictDistant(n,q0)>0)e()},t=()=>{U.clear(),H.clear(),k=void 0,b=void 0,C=void 0,v=[],I=!1,$()},K0=()=>{if(U.reset(),H.clear(),P)P.clear();k=void 0,b=void 0,O=!0,m=0,C=void 0,v=[],I=!1,$()};if(j&&j.length>0)w(j,0,q??j.length);else if(q!==void 0)U.setTotal(q),$();return{getState:A,getTotal:S,getCached:a,getIsLoading:L,getHasMore:E,getStorage:f,getPlaceholders:J0,getItem:x,getItemById:u,getIndexById:l,isItemLoaded:T,getItemsInRange:B,setTotal:p,setItems:w,updateItem:W,removeItem:_,loadRange:F,ensureRange:M,loadInitial:G,loadMore:z,reload:s,evictDistant:c,clear:t,reset:K0}};var hJ=(J)=>{let{adapter:Q,loading:j,storage:q,total:X,autoLoad:Y=!0}=J,V=j?.cancelThreshold??F1,K=j?.preloadThreshold??T1,Z=j?.preloadAhead??L1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(N){let{emitter:U}=N,P=N.config.reverse,D=N.methods.get("_getGridLayout"),H=(y)=>{if(D){let R=D();if(R){let S=N.dataManager.getTotal();return R.getItemRange(y.start,y.end,S)}}return y},I=I1({adapter:Q,...X!==void 0&&{initialTotal:X},pageSize:q?.chunkSize??s0,...q&&{storage:{...q.chunkSize!==void 0&&{chunkSize:q.chunkSize},...q.maxCachedItems!==void 0&&{maxCachedItems:q.maxCachedItems}}},onStateChange:()=>{if(N.state.isInitialized){let y=N.getVirtualTotal();N.sizeCache.rebuild(y),N.updateCompressionMode();let R=N.getCachedCompression();N.state.viewportState.totalSize=R.virtualSize,N.state.viewportState.actualSize=R.actualSize,N.state.viewportState.isCompressed=R.isCompressed,N.state.viewportState.compressionRatio=R.ratio,N.updateContentSize(R.virtualSize),N.renderIfNeeded()}},onItemsLoaded:(y,R,S)=>{if(N.state.isInitialized)N.forceRender(),U.emit("load:end",{items:y,total:S,offset:R})}});N.replaceDataManager(I);let C=null,O=null,k=0,b=!1,v=null,m=120,g=(y=!1)=>{if(b=!1,O=null,y)C=null;if(v!==null)clearTimeout(v),v=null},h=()=>{if(!O)return;O=null;let{renderRange:y}=N.state.viewportState;if(y.end<y.start)return;C=null;let R=H(y);N.dataManager.ensureRange(R.start,R.end).catch((S)=>{U.emit("error",{error:S,context:"ensureRange"})})};N.afterScroll.push((y,R)=>{if(N.state.isDestroyed)return;let S=N.scrollController.getVelocity(),L=N.scrollController.isTracking()&&S<=V;if(k>V&&S<=V)b=!0;else if(b&&S>V)g();if(b&&S<0.5)g(!0);if(k=S,(N.scrollController.isAtTop()||N.scrollController.isAtBottom())&&(b||O))g(!0),L=!0;let A=b&&S>0.5;if(L&&!N.dataManager.getIsLoading()&&N.dataManager.getHasMore()){if(P){if(y<yJ)U.emit("load:start",{offset:N.dataManager.getCached(),limit:s0}),N.dataManager.loadMore().catch((x)=>{U.emit("error",{error:x,context:"loadMore"})})}else if(N.state.viewportState.totalSize-y-N.state.viewportState.containerSize<yJ)U.emit("load:start",{offset:N.dataManager.getCached(),limit:s0}),N.dataManager.loadMore().catch((u)=>{U.emit("error",{error:u,context:"loadMore"})})}let{renderRange:f}=N.state.viewportState;if(!C||f.start!==C.start||f.end!==C.end){if(C={start:f.start,end:f.end},L&&!A){if(O=null,v!==null)clearTimeout(v),v=null;let x=H(f),u=x.start,l=x.end,T=D?N.dataManager.getTotal():N.getVirtualTotal();if(S>K)if(R==="down")l=Math.min(x.end+Z,T-1);else u=Math.max(x.start-Z,0);N.dataManager.ensureRange(u,l).catch((B)=>{U.emit("error",{error:B,context:"ensureRange"})})}else if(O={start:f.start,end:f.end},A){if(v!==null)clearTimeout(v);v=setTimeout(()=>{v=null,h(),g()},m)}}});let i=200,$=null;N.afterScroll.push((y,R)=>{if($!==null)clearTimeout($);$=setTimeout(()=>{$=null,h(),g()},i)}),N.destroyHandlers.push(()=>{if($!==null)clearTimeout($),$=null;g()});let e=()=>{if(N.state.isDestroyed)return;C=null;let{renderRange:y}=N.state.viewportState;if(y.end>0){let R=H(y);N.dataManager.ensureRange(R.start,R.end).catch((S)=>{U.emit("error",{error:S,context:"ensureRange"})})}h()};window.addEventListener("online",e),N.destroyHandlers.push(()=>{window.removeEventListener("online",e)}),U.on("load:start",()=>{N.dom.root.setAttribute("aria-busy","true")}),U.on("load:end",()=>{N.dom.root.removeAttribute("aria-busy")}),N.methods.set("loadVisibleRange",async()=>{C=null,O=null,N.forceRender();let{renderRange:y}=N.state.viewportState;if(y.end>0){let R=H(y);U.emit("load:start",{offset:R.start,limit:R.end-R.start+1}),await N.dataManager.ensureRange(R.start,R.end)}}),N.methods.set("reload",async(y)=>{C=null,O=null;let R=y?.snapshot,S=R!=null&&(R.total??0)>0&&R.index>0,a=S||y?.skipInitialLoad===!0;if(N.invalidateRendered(),await N.dataManager.reload(),!S)N.scrollController.scrollTo(0);if(!a){U.emit("load:start",{offset:0,limit:s0}),await N.dataManager.loadInitial(),N.forceRender();let{renderRange:L}=N.state.viewportState;if(L.end>0){let E=H(L);await N.dataManager.ensureRange(E.start,E.end)}}if(S){let L=N.methods.get("restoreScroll");if(L)L(R)}});let o=!1;if(N.methods.set("_cancelAutoLoad",()=>{o=!0}),Y)queueMicrotask(()=>{if(o)return;U.emit("load:start",{offset:0,limit:s0}),N.dataManager.loadInitial().catch((y)=>{U.emit("error",{error:y,context:"loadInitial"})})});else if(X!==void 0)N.dataManager.setTotal(X)}}};var FJ=(J)=>J==null?0:typeof J==="function"?J():J,pJ=(J)=>{let Q=null,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(q){let{dom:X,state:Y,config:V,emitter:K}=q;if(X.root.style.overflow="visible",X.root.style.height="auto",V.horizontal)X.viewport.style.overflowX="visible",X.viewport.style.overflowY="visible";else X.viewport.style.overflow="visible";if(X.viewport.classList.remove(`${V.classPrefix}-viewport--custom-scrollbar`),q.disableViewportResize(),q.disableWheelHandler(),q.setScrollTarget(window),q.setScrollFns(()=>{let P=X.viewport.getBoundingClientRect();return Math.max(0,V.horizontal?-P.left:-P.top)},(P)=>{let D=X.viewport.getBoundingClientRect();if(V.horizontal){let H=D.left+window.scrollX;window.scrollTo({left:H+P,top:window.scrollY,behavior:"instant"})}else{let H=D.top+window.scrollY;window.scrollTo({left:window.scrollX,top:H+P,behavior:"instant"})}}),q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),Y.viewportState.containerSize=window.innerHeight,j){let P=V.horizontal,D=q.getItemToScrollIndexFn();q.setScrollToPosFn((H,I,C,O,k)=>{let b=FJ(P?j.left:j.top),v=FJ(P?j.right:j.bottom);if(O===0)return 0;let m=Math.max(0,Math.min(H,O-1)),g=I.getOffset(m),h=I.getSize(m),i=I.getTotalSize(),$=Math.max(0,i-C+v),e;switch(k){case"start":e=g-b;break;case"center":{let o=C-b-v;e=g-b-(o-h)/2;break}case"end":e=g-C+h+v;break}return Math.max(-b,Math.min(e,$))}),q.methods.set("_scrollItemIntoView",(H)=>{let I=D(H),C=P?window.innerWidth:window.innerHeight,O=FJ(P?j.left:j.top),k=FJ(P?j.right:j.bottom),b=X.viewport.getBoundingClientRect(),v=P?window.scrollX:window.scrollY,m=(P?b.left:b.top)+v,g=m-v,h=q.sizeCache.getOffset(I),i=q.sizeCache.getSize(I),$=g+h,e=$+i,o=O,y=C-k,R=v;if($<o)R=m+h-o;else if(e>y)R=m+h+i-y;if(R!==v)if(P)window.scrollTo({left:R,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:R,behavior:"instant"})})}let{innerHeight:Z,innerWidth:N}=window,U=()=>{let{innerWidth:P,innerHeight:D}=window,H=V.horizontal?P:D,I=V.horizontal?N:Z;if(Math.abs(H-I)<=1)return;Z=D,N=P,Y.viewportState.containerSize=D,K.emit("resize",{width:P,height:D});for(let C=0;C<q.resizeHandlers.length;C++)q.resizeHandlers[C](P,D);q.renderIfNeeded()};window.addEventListener("resize",U,{passive:!0}),Q=()=>{window.removeEventListener("resize",U)},q.destroyHandlers.push(Q)},destroy(){if(Q)Q(),Q=null}}};var uJ=(J,Q)=>{let j=0,q=J.length-1;while(j<q){let X=j+q+1>>>1;if(J[X].headerLayoutIndex<=Q)j=X;else q=X-1}return j},h1=(J,Q)=>{let j=0,q=J.length-1;while(j<q){let X=j+q+1>>>1;if(J[X].firstDataIndex<=Q)j=X;else q=X-1}return j},p1=(J,Q)=>{if(J===0)return[];let j=[],q=Q(0),X=0,Y=0;for(let V=1;V<J;V++){let K=Q(V);if(K!==q){let Z=V-X;j.push({key:q,groupIndex:j.length,headerLayoutIndex:Y,firstDataIndex:X,count:Z}),Y=Y+1+Z,q=K,X=V}}return j.push({key:q,groupIndex:j.length,headerLayoutIndex:Y,firstDataIndex:X,count:J-X}),j},gJ=(J,Q)=>{if(J.length===0||Q.length===0)return[];let j=J.length+Q.length,q=Array(j),X=0;for(let Y of Q){q[X]={id:`__group_header_${Y.groupIndex}`,__groupHeader:!0,groupKey:Y.key,groupIndex:Y.groupIndex},X++;for(let V=0;V<Y.count;V++)q[X]=J[Y.firstDataIndex+V],X++}return q},mJ=(J,Q,j=!1)=>{let q=typeof Q==="number"?(X)=>Q:Q;return(X)=>{let Y=J.getEntry(X);if(Y.type==="header"){if(j&&Y.group.groupIndex===0)return 0;return J.getHeaderHeight(Y.group.groupIndex)}return q(Y.dataIndex)}},u1=(J,Q)=>{let j=p1(J,Q.getGroupForIndex),q=J+j.length,X=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return q},get groupCount(){return j.length},get groups(){return j},getEntry:(D)=>{if(j.length===0)return{type:"item",dataIndex:D,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let H=uJ(j,D),I=j[H];if(D===I.headerLayoutIndex)return{type:"header",group:I};let C=D-I.headerLayoutIndex-1;return{type:"item",dataIndex:I.firstDataIndex+C,group:I}},layoutToDataIndex:(D)=>{if(j.length===0)return D;let H=uJ(j,D),I=j[H];if(D===I.headerLayoutIndex)return-1;let C=D-I.headerLayoutIndex-1;return I.firstDataIndex+C},dataToLayoutIndex:(D)=>{if(j.length===0)return D;let H=h1(j,D),I=j[H],C=D-I.firstDataIndex;return I.headerLayoutIndex+1+C},getGroupAtLayoutIndex:(D)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let H=uJ(j,D);return j[H]},getGroupAtDataIndex:(D)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let H=h1(j,D);return j[H]},getHeaderHeight:typeof X==="number"?(D)=>X:(D)=>{let H=j[D];if(!H)return 0;return X(H.key,D)},rebuild:(D)=>{j=p1(D,Q.getGroupForIndex),q=D+j.length}}};var g1=(J,Q,j,q,X,Y=!1,V=0)=>{let K=Y?"width":"height",Z=Y?"height":"width",N=Y?"X":"Y",U=(B,p)=>{B.style[K]=`${p}px`},P=document.createElement("div");P.className=`${X}-sticky-header`,P.setAttribute("role","presentation"),P.setAttribute("aria-hidden","true"),P.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(Y?`top:0;bottom:0;left:${V||0}px`:`top:${V||0}px`);let D=()=>{let B=document.createElement("div");return B.className="sticky-group",B.style.position="absolute",B.style.willChange="transform",B.style[Z]="100%",B},H=D(),I=D();P.append(H,I),J.insertBefore(P,J.firstChild);let C=H,O=I,k=Q.groups,b=[],v=[],m=0,g=()=>{k=Q.groups,m=k.length,b=Array(m),v=Array(m);for(let B=0;B<m;B++)b[B]=j.getOffset(k[B].headerLayoutIndex),v[B]=Q.getHeaderHeight(B)};g();let h=-1,i=0,$=-1,e=!1,o=0,y=!1,R=(B,p)=>{q(B,p);let w=v[p];return U(B,w),w},S=(B)=>{B.replaceChildren(),B.style.transform=""},a=(B)=>{if(B===h)return;if(h=B,i=0,B<0||B>=m){S(C);return}i=R(C,B),U(P,i),C.style.transform=""},L=(B)=>{if(B===o)return;o=B;let p=Math.round(B);C.style.transform=`translate${N}(${p}px)`,O.style.transform=`translate${N}(${p+i}px)`},E=()=>{o=0,C.style.transform="",O.style.transform=""},A=()=>{if(!y)return;let B=C;C=O,O=B,h=$,i=h>=0?v[h]:0,U(P,i),S(O),$=-1,y=!1,E()},f=()=>{if(!y)return;S(O),$=-1,y=!1,E()},J0=()=>{if(e)return;e=!0,P.style.display=""},x=()=>{if(!e)return;e=!1,P.style.display="none",S(C),h=-1,i=0,f()},u=(B)=>{if(m===0){x();return}if(B<b[0]){x();return}let p=0,w=m-1;while(p<w){let _=p+w+1>>>1;if(b[_]+v[_]<=B)p=_;else w=_-1}if(!e)J0();a(p);let W=p+1;if(W<m){let _=b[W]-B;if(_<=0&&_>-i){if($!==W||!y)$=W,R(O,W),y=!0;L(_)}else if(_<=-i){if(y)A()}else if(y)f()}else if(y)f()},l=()=>{g();let B=h;if(h=-1,i=0,B>=0)a(B)},T=()=>{P.remove(),h=-1,i=0,$=-1,e=!1,y=!1};return P.style.display="none",{update:u,refresh:l,show:J0,hide:x,destroy:T}};var m0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var m1=(J,Q,j,q,X,Y)=>{if(q===0)return 0;let V=Math.max(0,Math.min(J,q-1)),K=Q.getOffset(V),Z=Q.getSize(V),N=Q.getTotalSize(),U=Math.max(0,N-j),P;switch(Y){case"center":P=K-j/2+Z/2;break;case"end":P=K-j+Z;break;case"start":default:P=K;break}return Math.max(0,Math.min(P,U))};var KJ=(J,Q,j,q,X="start",Y,V=m1)=>{return V(J,Q,j,q,Y,X)};var F4=(J,Q)=>{if(J.header){let j=Q?J.header.width??J.header.height:J.header.height??J.header.width;return{...J,header:{...J.header,height:j}}}if(J.headerHeight!=null&&J.headerTemplate)return{...J,header:{height:J.headerHeight,template:J.headerTemplate}};return J},xJ=(J)=>{let Q=J.header,j=Q?Q.height??Q.width:J.headerHeight,q=Q?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(j==null||j<=0)throw Error("[vlist/builder] withGroups: header.height must be a positive number");if(!q)throw Error("[vlist/builder] withGroups: header.template is required");let X=null,Y=null,V=[],K=[];return{name:"withGroups",priority:10,setup(Z){let{dom:N,config:U,rawConfig:P}=Z,{classPrefix:D}=U,H=F4(J,U.horizontal),C=P.item.height;V=P.items?[...P.items]:[];let O=V.length,k={getGroupForIndex:H.getGroupForIndex,header:{height:H.header.height,template:H.header.template},sticky:H.sticky??!1};X=u1(O,k),K=gJ(V,X.groups);let b=H.sticky!==!1,v=mJ(X,C,b);Z.setSizeConfig(v),Z.rebuildSizeCache(K.length),Z.dataManager.setItems(K,0,K.length);let m=P.item.template,{template:g}=H.header,h=(x,u,l)=>{if(m0(x))return g(x.groupKey,x.groupIndex);return m(x,u,l)},i=Z.methods.get("_getGridLayout"),$=Z.methods.get("_replaceGridRenderer"),e=Z.methods.get("_updateGridLayoutForGroups"),o=Z.methods.get("_createGridRenderer"),y=Z.methods.get("_getTableLayout"),R=Z.methods.get("_updateTableForGroups"),S=Z.methods.get("_getTableHeaderHeight");if(i&&$&&o){if(e)e((l)=>{let T=K[l];return!!(T&&m0(T))});let x=i(),u=o(N.items,h,Z.sizeCache,x,D,Z.getContainerWidth(),()=>Z.dataManager.getTotal(),U.ariaIdPrefix);$(u)}else if(y&&R)R((x)=>m0(x),H.header.template);else Z.replaceTemplate(h);let a=S?S():0;if(N.root.classList.add(`${D}--grouped`),H.sticky!==!1)if(Z.methods.set("_getStickyHeaderHeight",()=>H.header.height),!U.horizontal)N.viewport.style.height=`calc(100% - ${H.header.height}px)`;else N.viewport.style.width=`calc(100% - ${H.header.height}px)`;if(H.sticky!==!1){let x=H.header.template,u=(T,B)=>{let p=X.groups[B];if(!p)return;let w=x(p.key,p.groupIndex);if(typeof w==="string")T.innerHTML=w;else T.replaceChildren(w)};Y=g1(N.root,X,Z.sizeCache,u,D,U.horizontal,a);let l=Y;Z.afterScroll.push((T,B)=>{l.update(T)}),Y.update(Z.scrollController.getScrollTop())}let L=P.item?.striped,E=()=>{if(L!=="data"&&L!=="even"&&L!=="odd")return;let x=new Int32Array(K.length),u=L==="odd"?1:0,l=0;for(let T=0;T<K.length;T++)if(m0(K[T])){if(x[T]=-1,L==="even"||L==="odd")l=0}else x[T]=l+++u;Z.setStripeIndexFn((T)=>{if(T<0||T>=x.length)return T;return x[T]})};E();let A=()=>{if(!X)return;X.rebuild(V.length),K=gJ(V,X.groups);let x=mJ(X,C,b);if(Z.setSizeConfig(x),Z.rebuildSizeCache(K.length),Z.dataManager.setItems(K,0,K.length),E(),Y)Y.refresh()};Z.methods.set("setItems",(x)=>{V=x.slice(),A()}),Z.methods.set("appendItems",(x)=>{V.push(...x),A()}),Z.methods.set("prependItems",(x)=>{V.unshift(...x),A()}),Z.methods.set("removeItem",(x)=>{V=V.filter((u)=>u.id!==x),A()});let{animateScroll:f,cancelScroll:J0}=e0(Z.scrollController,Z.renderIfNeeded);Z.methods.set("scrollToIndex",(x,u)=>{let l=X.dataToLayoutIndex(x),{align:T,behavior:B,duration:p}=g0(u),w=Z.dataManager.getTotal(),W=Z.adjustScrollPosition(KJ(l,Z.sizeCache,Z.state.viewportState.containerSize,w,T,Z.getCachedCompression()));if(B==="smooth")f(Z.scrollController.getScrollTop(),W,p);else J0(),Z.scrollController.scrollTo(W)}),Z.methods.set("_getItems",()=>V),Z.methods.set("_getTotal",()=>V.length),Z.methods.set("_isGroupHeader",(x)=>{let u=K[x];return!!(u&&m0(u))}),Z.methods.set("_layoutToDataIndex",(x)=>X.layoutToDataIndex(x)),Z.methods.set("_dataToLayoutIndex",(x)=>X.dataToLayoutIndex(x)),Z.destroyHandlers.push(()=>{if(J0(),Y)Y.destroy(),Y=null;N.root.classList.remove(`${D}--grouped`)})},destroy(){if(Y)Y.destroy(),Y=null}}};var x1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,q=J.isHeaderFn,X={row:0,col:0},Y=(I)=>{if(I<=0)return 0;if(!q)return Math.ceil(I/Q);let C=0,O=0,k=0;for(let b=0;b<I;b++)if(q(b)){if(k++,O>0)C++,O=0;C++,O=0}else if(O++,O>=Q)C++,O=0;if(O>0)C++;return C},V=(I)=>{return X.row=K(I),X.col=Z(I),X},K=(I)=>{if(!q)return Math.floor(I/Q);let C=0,O=0;for(let k=0;k<=I;k++)if(q(k)){if(O>0)C++,O=0;if(k===I)return C;C++,O=0}else{if(k===I)return C;if(O++,O>=Q)C++,O=0}return console.warn(`⚠️ getRow(${I}) fell through - returning ${C}`),C},Z=(I)=>{if(!q)return I%Q;if(q(I))return 0;let C=0;for(let O=0;O<=I;O++)if(q(O))C=0;else{if(O===I)return C;if(C++,C>=Q)C=0}return C},N=(I,C,O)=>{if(O<=0)return{start:0,end:-1};if(!q){let g=Math.max(0,I*Q),h=Math.min(O-1,(C+1)*Q-1);return{start:g,end:h}}let k=-1,b=-1,v=0,m=0;for(let g=0;g<O;g++){if(q(g)){if(m>0)v++,m=0;if(v>=I&&v<=C){if(k===-1)k=g;b=g}v++,m=0}else{if(v>=I&&v<=C){if(k===-1)k=g;b=g}if(m++,m>=Q)v++,m=0}if(v>C&&m===0)break}if(k===-1)return{start:0,end:-1};return{start:k,end:b}},U=(I,C,O)=>{if(C<0||C>=Q)return-1;let k=I*Q+C;if(k<0||k>=O)return-1;return k},P=(I)=>{let C=(Q-1)*j;return Math.max(0,(I-C)/Q)};return{get columns(){return Q},get gap(){return j},update:(I)=>{if(I.columns!==void 0)Q=Math.max(1,Math.floor(I.columns));if(I.gap!==void 0)j=I.gap;if(I.isHeaderFn!==void 0)q=I.isHeaderFn},getTotalRows:Y,getPosition:V,getRow:K,getCol:Z,getItemRange:N,getItemIndex:U,getColumnWidth:P,getColumnOffset:(I,C)=>{let O=P(C);return I*(O+j)}}};var T4=(J=200)=>{let Q=[];return{acquire:()=>{let Y=Q.pop();if(Y)return Y;let V=document.createElement("div");return V.setAttribute("role","option"),V},release:(Y)=>{if(Y.remove(),Q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-row"),Y.removeAttribute("data-col"),Q.push(Y)},clear:()=>{Q.length=0}}},H4=1,dJ=(J,Q,j,q,X,Y,V,K,Z=!1)=>{let N=T4(),U=new Map,P=Y,D=!1,H=0,I="",C=-1,O={selected:!1,focused:!1},k=(T,B)=>{return O.selected=T,O.focused=B,O},b=`${X}-item ${X}-grid-item`,v=`${X}-item--selected`,m=`${X}-item--focused`,g=`${X}-item--placeholder`,h=`${X}-item--replaced`,i=(T,B)=>{if(typeof B==="string")T.innerHTML=B;else T.replaceChildren(B)},$=(T,B,p)=>{T.classList.toggle(v,B),T.classList.toggle(m,p)},e=(T,B)=>{let p=q.getRow(T);if(B?.compression?.isCompressed)return JJ(p,B.scrollPosition,j,B.totalItems,B.containerSize,B.compression,B.rangeStart);return j.getOffset(p)},o=(T,B)=>{let p=D&&q.getCol(T)===0,w=p?0:q.getCol(T),W=p?0:q.getColumnOffset(w,P),_;if(D){let F=q.getRow(T),M=0,G=new Set;for(let z=0;z<T;z++){let s=q.getRow(z);if(s<F&&!G.has(s)){let c=j.getSize(z);M+=c,G.add(s)}}_=M}else _=e(T,B);if(Z)return`translate(${Math.round(_)}px, ${Math.round(W)}px)`;return`translate(${Math.round(W)}px, ${Math.round(_)}px)`},y=(T,B)=>{T.style.transform=B},R=(T,B)=>{let p=T.dataset.id?.startsWith("__group_header"),w=p?P:q.getColumnWidth(P),W;if(D||p)W=j.getSize(B)-q.gap;else{let _=q.getRow(B);W=j.getSize(_)-q.gap}if(Z)T.style.width=`${W}px`,T.style.height=`${w}px`;else T.style.width=`${w}px`,T.style.height=`${W}px`},S=(T,B,p,w,W)=>{let _=N.acquire(),F=k(p,w);if(_.className=b,_.dataset.index=String(T),_.dataset.id=String(B.id),_.dataset.row=String(q.getRow(T)),_.dataset.col=String(q.getCol(T)),_.ariaSelected=String(p),K)_.id=`${K}-item-${T}`;if(V){let z=V();if(z!==C)C=z,I=String(z);_.setAttribute("aria-setsize",I),_.setAttribute("aria-posinset",String(T+1))}R(_,T);let M=Q(B,T,F);if(i(_,M),String(B.id).startsWith(p0))_.classList.add(g);return $(_,p,w),y(_,W),{element:_,lastItemId:B.id,lastSelected:p,lastFocused:w,lastTransform:W,lastSeenFrame:H}},a=(T,B,p,w,W)=>{if(H++,B.start===0&&T.length>0)D=m0(T[0]);for(let[M,G]of U)if(M>=B.start&&M<=B.end)G.lastSeenFrame=H;else if(H-G.lastSeenFrame>H4)N.release(G.element),U.delete(M);let _=!1;if(V){let M=V();if(M!==C)C=M,I=String(M),_=!0}let F=null;for(let M=B.start;M<=B.end;M++){let G=M-B.start,z=T[G];if(!z){console.warn(`⚠️ RENDER: Missing item at index ${M} (range: ${B.start}-${B.end}, items.length: ${T.length})`);continue}let s=p.has(z.id),c=M===w,t=U.get(M);if(t){let K0=t.lastItemId!==z.id,n=t.lastSelected!==s,q0=t.lastFocused!==c;if(K0){let N0=String(t.lastItemId),G0=String(z.id),M0=N0.startsWith(p0),A0=G0.startsWith(p0);if(!A0&&u0(p,M,z.id))s=!0;let k0=k(s,c),Z0=Q(z,M,k0);if(i(t.element,Z0),t.element.dataset.id=G0,t.element.dataset.row=String(q.getRow(M)),t.element.dataset.col=String(q.getCol(M)),R(t.element,M),t.element.classList.toggle(g,A0),M0&&!A0)t.element.classList.add(h),setTimeout(()=>t.element.classList.remove(h),300);t.lastItemId=z.id}if(K0||n||q0)$(t.element,s,c),t.element.ariaSelected=String(s),t.lastSelected=s,t.lastFocused=c;let j0=o(M,W);if(t.lastTransform!==j0)y(t.element,j0),t.lastTransform=j0;if(_)t.element.setAttribute("aria-setsize",I)}else{if(u0(p,M,z.id))s=!0;let K0=o(M,W),n=S(M,z,s,c,K0);if(!F)F=document.createDocumentFragment();F.appendChild(n.element),U.set(M,n)}}if(F)J.appendChild(F)},L=(T)=>{for(let[B,p]of U){let w=o(B,T);if(p.lastTransform!==w)y(p.element,w),p.lastTransform=w}},E=(T,B,p,w)=>{let W=U.get(T);if(!W)return;let _=k(p,w),F=Q(B,T,_);i(W.element,F),$(W.element,p,w),W.element.dataset.id=String(B.id),W.element.ariaSelected=String(p),R(W.element,T),W.lastItemId=B.id,W.lastSelected=p,W.lastFocused=w},A=(T,B,p)=>{let w=U.get(T);if(!w)return;let W=w.lastSelected!==B,_=w.lastFocused!==p;if(W||_)$(w.element,B,p),w.lastSelected=B,w.lastFocused=p},f=(T)=>{return U.get(T)?.element},J0=(T)=>{if(Math.abs(T-P)<1)return;P=T;for(let[B,p]of U){R(p.element,B);let w=o(B);y(p.element,w),p.lastTransform=w}},x=()=>{a0(J,U.keys(),(T)=>U.get(T)?.element)},u=()=>{for(let[,T]of U)N.release(T.element);U.clear()};return{render:a,updatePositions:L,updateItem:E,updateItemClasses:A,getElement:f,sortDOM:x,updateContainerWidth:J0,clear:u,destroy:()=>{u(),N.clear()}}};var k4=new Set,cJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let Q=null,j=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(q){let{dom:X,emitter:Y,config:V,rawConfig:K}=q,{classPrefix:Z}=V;if(V.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let N=V.horizontal,U=_J(f0(K.padding),N),P=()=>{return(N?X.viewport.clientHeight:q.getContainerWidth())-U},D=K.items?.some((u)=>u.__groupHeader===!0),H={columns:J.columns,gap:J.gap??0};if(D)H.isHeaderFn=(u)=>{let l=q.dataManager.getItem(u);return!!(l&&l.__groupHeader===!0)};Q=x1(H);let I=Q.gap;q.setVirtualTotalFn(()=>{let u=q.dataManager.getTotal();return Q.getTotalRows(u)}),q.setItemToScrollIndexFn((u)=>Math.floor(u/H.columns)),q.methods.set("_getNavTotal",()=>q.dataManager.getTotal()),q.methods.set("_getNavDelta",()=>N?{ud:1,lr:H.columns,cols:H.columns}:{ud:H.columns,lr:1,cols:H.columns});let C=K.item,O=V.horizontal?C.width:C.height,k={containerWidth:P(),columns:Q.columns,gap:Q.gap},b={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof O==="function")q.setSizeConfig((u)=>{let l=k.containerWidth-2,T=(k.columns-1)*k.gap;return b.containerWidth=k.containerWidth,b.columns=k.columns,b.gap=k.gap,b.columnWidth=(l-T)/k.columns,b.row=Q.getRow(u),b.column=Q.getCol(u),b.totalRows=Q.getTotalRows(q.dataManager.getTotal()),b.totalColumns=k.columns,O(u,b)+k.gap});else if(I>0)q.setSizeConfig(O+I);if(q.rebuildSizeCache(),I>0){let u=q.sizeCache.getTotalSize;q.sizeCache.getTotalSize=()=>{let l=u();return l>0?l-k.gap:0}}X.root.classList.add(`${Z}--grid`);let v=P(),m=K.item.template,g=()=>{j=dJ(X.items,m,q.sizeCache,Q,Z,v,()=>q.dataManager.getTotal(),V.ariaIdPrefix,V.horizontal),q.replaceRenderer(j)};g(),q.setUpdateItemClassesFn((u,l,T)=>{j?.updateItemClasses(u,l,T)}),q.methods.set("_updateRenderedItem",(u,l,T,B)=>{j?.updateItem(u,l,T,B)}),q.methods.set("_getGridLayout",()=>Q),q.methods.set("_getGridConfig",()=>H),q.methods.set("_replaceGridRenderer",(u)=>{j=u}),q.methods.set("_createGridRenderer",dJ),q.methods.set("_updateGridLayoutForGroups",(u)=>{Q.update({isHeaderFn:u});let l=q.dataManager.getTotal(),T=0;for(let B=0;B<l;B++)if(Q.getCol(B)===0){let p=q.sizeCache.getSize(B);T+=p}q.sizeCache.getTotalSize=()=>T,q.updateContentSize(T),g()}),q.methods.set("updateGrid",(u)=>{if(u.columns!==void 0){if(!Number.isInteger(u.columns)||u.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");H.columns=u.columns}if(u.gap!==void 0){if(u.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");H.gap=u.gap}if(Q)Q.update(H);let l=P();if(k.containerWidth=l,k.columns=H.columns,k.gap=H.gap??0,j)j.updateContainerWidth(l);q.rebuildSizeCache(),q.updateContentSize(q.sizeCache.getTotalSize()),q.updateCompressionMode();for(let T=0;T<q.contentSizeHandlers.length;T++)q.contentSizeHandlers[T]();if(j)j.clear();q.forceRender()});let h=null,i=null,$=!1,e=()=>{if($)return;$=!0,h=q.methods.get("_getSelectedIds")??null,i=q.methods.get("_getFocusedIndex")??null},o=-1,y=-1,R=!0,S=V.overscan,a={start:0,end:0},L={start:0,end:0},E=()=>{if(q.state.isDestroyed)return;let u=q.scrollController.getScrollTop(),l=q.state.viewportState.containerSize;if(!R&&u===o&&l===y)return;o=u,y=l,R=!1;let T=q.getVirtualTotal();q.getVisibleRange(u,l,T,a),L.start=Math.max(0,a.start-S),L.end=Math.min(T-1,a.end+S);let B=q.state.viewportState;B.scrollPosition=u,B.visibleRange.start=a.start,B.visibleRange.end=a.end,B.renderRange.start=L.start,B.renderRange.end=L.end;let p=q.state.lastRenderRange,w=B.isCompressed,W=p.start!==L.start||p.end!==L.end;if(!W&&w){j.updatePositions(q.getCompressionContext());return}let _=q.dataManager.getTotal(),F=Q.getItemRange(L.start,L.end,_),M=q.dataManager.getItemsInRange(F.start,F.end),G=w?q.getCompressionContext():void 0;e();let z=h?h():k4,s=i?i():-1;if(j.render(M,F,z,s,G),W)p.start=L.start,p.end=L.end,Y.emit("range:change",{range:{start:L.start,end:L.end}})},A=()=>{if(q.state.isDestroyed)return;q.state.lastRenderRange.start=-1,q.state.lastRenderRange.end=-1,R=!0,E()};q.setRenderFns(E,A);let f=typeof O==="function";q.resizeHandlers.push((u,l)=>{let T=(N?l:u)-U;if(Math.abs(T-k.containerWidth)<1)return;if(k.containerWidth=T,j)j.updateContainerWidth(T);if(f){q.rebuildSizeCache(),q.updateContentSize(q.sizeCache.getTotalSize()),q.updateCompressionMode();for(let B=0;B<q.contentSizeHandlers.length;B++)q.contentSizeHandlers[B]();if(j)j.clear();q.forceRender()}});let{animateScroll:J0,cancelScroll:x}=e0(q.scrollController,q.renderIfNeeded);if(q.methods.set("cancelScroll",x),q.methods.set("scrollToIndex",(u,l)=>{let T=Math.floor(u/J.columns),{align:B,behavior:p,duration:w}=g0(l),W=q.dataManager.getState(),_=Q.getTotalRows(W.total),F=Math.max(0,Math.min(T,_-1)),M=q.adjustScrollPosition(KJ(F,q.sizeCache,q.state.viewportState.containerSize,_,B,q.getCachedCompression()));if(p==="smooth")J0(q.scrollController.getScrollTop(),M,w);else x(),q.scrollController.scrollTo(M)}),!q.methods.has("_getTotal"))q.methods.set("_getTotal",()=>q.dataManager.getTotal());q.methods.set("_layoutToDataIndex",(u)=>u*J.columns),q.methods.set("_dataToLayoutIndex",(u)=>Math.floor(u/J.columns)),q.idleHandlers.push(()=>{if(j)j.sortDOM()}),q.destroyHandlers.push(()=>{if(x(),j)j.destroy(),j=null;X.root.classList.remove(`${Z}--grid`)})},destroy(){if(j)j.destroy(),j=null}}};var d1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,q=J.containerSize,X=0,Y=[],V=()=>{let O=(Q-1)*j;X=Math.max(0,(q-O)/Q),Y=Array(Q);let k=X+j;for(let b=0;b<Q;b++)Y[b]=b*k};V();let K=[],Z=0,N=[],U=(O)=>{let k=0,b=O[0];for(let v=1;v<O.length;v++){let m=O[v];if(m<b)b=m,k=v}return k},P=(O,k)=>{if(O<=0)return Z=0,K=[],[];let b=Array(Q).fill(0),v=Array(Q);for(let h=0;h<Q;h++)v[h]=[];let m=Array(O);for(let h=0;h<O;h++){let i=U(b),$=k(h),e=b[i];m[h]={index:h,x:Y[i],y:e,lane:i,size:$,crossSize:X},v[i].push(h),b[i]=e+$+j}K=v;let g=0;for(let h=0;h<Q;h++){let i=b[h],$=i>0?i-j:0;if($>g)g=$}return Z=g,m},D=(O)=>{if(O.length===0)return Z>0?Z:0;if(Z>0)return Z;let k=Array(Q).fill(0);for(let v of O){let m=v.y+v.size,g=k[v.lane];if(m>g)k[v.lane]=m}let b=0;for(let v=0;v<Q;v++)if(k[v]>b)b=k[v];return b},H=(O,k,b)=>{if(O.length===0||b<=k)return N.length=0,N;if(K.length===0||K.length!==Q)return I(O,k,b);N.length=0;for(let v=0;v<Q;v++){let m=K[v],g=m.length;if(g===0)continue;let h=0,i=g;while(h<i){let $=h+i>>>1,e=O[m[$]];if(e.y+e.size<=k)h=$+1;else i=$}for(let $=h;$<g;$++){let e=O[m[$]];if(e.y>=b)break;N.push(e)}}return N},I=(O,k,b)=>{let v=[];for(let m of O)if(m.y+m.size>k&&m.y<b)v.push(m);return v};return{get columns(){return Q},get gap(){return j},get containerSize(){return q},update:(O)=>{let k=!1;if(O.columns!==void 0){let b=Math.max(1,Math.floor(O.columns));if(b!==Q)Q=b,k=!0}if(O.gap!==void 0&&O.gap!==j)j=O.gap,k=!0;if(O.containerSize!==void 0&&O.containerSize!==q)q=O.containerSize,k=!0;if(k)V()},calculateLayout:P,getTotalSize:D,getVisibleItems:H}};var $4=(J=200)=>{let Q=[];return{acquire:()=>{let Y=Q.pop();if(Y)return Y;let V=document.createElement("div");return V.setAttribute("role","option"),V},release:(Y)=>{if(Y.remove(),Q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-lane"),Q.push(Y)},clear:()=>{Q.length=0}}},b4=1,c1=(J,Q,j,q=!1,X,Y)=>{let V=$4(),K=new Map,Z=new Set,N=0,U="",P=-1,D={selected:!1,focused:!1},H=(y,R)=>{return D.selected=y,D.focused=R,D},I=`${j}-item ${j}-masonry-item`,C=`${j}-item--selected`,O=`${j}-item--focused`,k=(y,R)=>{if(typeof R==="string")y.innerHTML=R;else y.replaceChildren(R)},b=(y,R,S)=>{y.classList.toggle(C,R),y.classList.toggle(O,S)},v=(y,R)=>{if(q)y.style.transform=`translate(${Math.round(R.y)}px, ${Math.round(R.x)}px)`;else y.style.transform=`translate(${Math.round(R.x)}px, ${Math.round(R.y)}px)`},m=(y,R)=>{if(q)y.style.width=`${R.size}px`,y.style.height=`${R.crossSize}px`;else y.style.width=`${R.crossSize}px`,y.style.height=`${R.size}px`},g=(y,R,S,a,L)=>{let E=V.acquire(),A=H(a,L);if(E.className=I,E.dataset.index=String(y),E.dataset.id=String(R.id),E.dataset.lane=String(S.lane),E.ariaSelected=String(a),Y)E.id=`${Y}-item-${y}`;if(X){let J0=X();if(J0!==P)P=J0,U=String(J0);E.setAttribute("aria-setsize",U),E.setAttribute("aria-posinset",String(y+1))}m(E,S);let f=Q(R,y,A);return k(E,f),b(E,a,L),v(E,S),{element:E,lastItemId:R.id,lastSelected:a,lastFocused:L,lastY:S.y,lastX:S.x,lastSize:S.size,lastCrossSize:S.crossSize,lastSeenFrame:N}},h=(y,R,S,a)=>{N++,Z.clear();for(let E=0;E<R.length;E++)Z.add(R[E].index);for(let[E,A]of K)if(Z.has(E))A.lastSeenFrame=N;else if(N-A.lastSeenFrame>b4)V.release(A.element),K.delete(E);let L=null;for(let E=0;E<R.length;E++){let A=R[E],f=A.index,J0=y(f);if(!J0)continue;let x=S.has(J0.id),u=f===a,l=K.get(f);if(l){let T=l.lastItemId!==J0.id,B=l.lastSelected!==x,p=l.lastFocused!==u,w=l.lastY!==A.y||l.lastX!==A.x,W=l.lastSize!==A.size||l.lastCrossSize!==A.crossSize;if(T){let _=H(x,u),F=Q(J0,f,_);k(l.element,F),l.element.dataset.id=String(J0.id),l.lastItemId=J0.id}if(T||B||p)b(l.element,x,u),l.element.ariaSelected=String(x),l.lastSelected=x,l.lastFocused=u;if(W)m(l.element,A),l.lastSize=A.size,l.lastCrossSize=A.crossSize;if(w)v(l.element,A),l.lastY=A.y,l.lastX=A.x}else{let T=g(f,J0,A,x,u);if(!L)L=document.createDocumentFragment();L.appendChild(T.element),K.set(f,T)}}if(L)J.appendChild(L)},i=()=>{for(let{element:y}of K.values())V.release(y);K.clear(),J.innerHTML=""};return{render:h,getElement:(y)=>K.get(y)?.element,updateItemClasses:(y,R,S)=>{let a=K.get(y);if(!a)return;let L=a.lastSelected!==R,E=a.lastFocused!==S;if(L||E)b(a.element,R,S),a.lastSelected=R,a.lastFocused=S},sortDOM:()=>{a0(J,K.keys(),(y)=>K.get(y)?.element)},clear:i,destroy:()=>{i(),V.clear()}}};var y4=new Set,R4=100,lJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let Q=null,j=null,q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(X){let{dom:Y,emitter:V,config:K,rawConfig:Z}=X,N=K.classPrefix,U=K.horizontal;if(K.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");Y.root.classList.add(`${N}--masonry`);let P=f0(Z.padding),D=_J(P,U),H=r0(P,U),I=()=>{return(U?Y.viewport.clientHeight:Y.viewport.clientWidth)-D},C={columns:J.columns,gap:J.gap??0,containerSize:I()};Q=d1(C);let O=Z.item,k=U&&Z.item.width?Z.item.width:O.height,b={containerWidth:0,columns:0,gap:0,columnWidth:0},v=typeof k==="function"?(_)=>k(_,b):()=>k,m=()=>{let _=X.dataManager.getTotal(),F=Q;b.containerWidth=F.containerSize,b.columns=F.columns,b.gap=F.gap;let M=(F.columns-1)*F.gap;b.columnWidth=Math.max(0,(b.containerWidth-M)/F.columns),q=F.calculateLayout(_,v),e();let G=Q.getTotalSize(q);X.sizeCache.getTotalSize=()=>G,X.updateContentSize(G)},g=Z.item.template;j=c1(Y.items,g,N,U,()=>X.dataManager.getTotal(),K.ariaIdPrefix),X.setUpdateItemClassesFn((_,F,M)=>{j?.updateItemClasses(_,F,M)});let h=[],i=new Int32Array(0),$=[],e=()=>{let _=C.columns,F=q.length;if(h=Array.from({length:_},()=>[]),i.length<F)i=new Int32Array(F);for(let M=0;M<F;M++){let G=q[M],z=h[G.lane].length;h[G.lane].push(M),i[M]=z}$=Array(_);for(let M=0;M<_;M++){let G=h[M],z=new Float64Array(G.length);for(let s=0;s<G.length;s++){let c=q[G[s]];z[s]=c.y+c.size*0.5}$[M]=z}};X.methods.set("_getNavTotal",()=>X.dataManager.getTotal());let o=(_,F)=>{let M=_.length;if(M===0)return-1;if(M===1)return 0;let G=0,z=M-1;while(G<z){let s=G+z>>1;if(_[s]<F)G=s+1;else z=s}if(G>0&&Math.abs(_[G-1]-F)<=Math.abs(_[G]-F))return G-1;return G};X.methods.set("_navigate",(_,F,M)=>{let G=q[_];if(!G)return _;let z=G.lane,s=C.columns,c=i[_],t=h[z];switch(U?F==="ArrowDown"?"ArrowRight":F==="ArrowUp"?"ArrowLeft":F==="ArrowRight"?"ArrowDown":F==="ArrowLeft"?"ArrowUp":F:F){case"ArrowDown":{if(c+1<t.length)return t[c+1];return _}case"ArrowUp":{if(c>0)return t[c-1];return _}case"ArrowRight":{if(z>=s-1)return _;let n=z+1,q0=G.y+G.size*0.5,j0=h[n];if(j0.length===0)return _;let N0=o($[n],q0);return N0>=0?j0[N0]:_}case"ArrowLeft":{if(z<=0)return _;let n=z-1,q0=G.y+G.size*0.5,j0=h[n];if(j0.length===0)return _;let N0=o($[n],q0);return N0>=0?j0[N0]:_}case"Home":return 0;case"End":return M-1;case"PageDown":{let n=X.state.viewportState.containerSize,q0=G.size>0?G.size:150,j0=Math.max(1,Math.floor(n/q0)),N0=Math.min(c+j0,t.length-1);return t[N0]}case"PageUp":{let n=X.state.viewportState.containerSize,q0=G.size>0?G.size:150,j0=Math.max(1,Math.floor(n/q0)),N0=Math.max(0,c-j0);return t[N0]}}return _}),X.methods.set("_scrollItemIntoView",(_)=>{let F=q[_];if(!F)return;let M=X.scrollController.getScrollTop(),G=X.state.viewportState.containerSize,z=F.y,s=z+F.size,c=M+G;if(z<M)X.scrollController.scrollTo(X.adjustScrollPosition(Math.max(0,z)));else if(s>c)X.scrollController.scrollTo(X.adjustScrollPosition(s-G))});let y=null,R=null,S=!1,a=()=>{if(S)return;S=!0,y=X.methods.get("_getSelectedIds")??null,R=X.methods.get("_getFocusedIndex")??null},L=(_)=>X.dataManager.getItem(_),E=-1,A=-1,f=!0,J0=K.overscan*R4,x=()=>{if(X.state.isDestroyed)return;a();let _=X.scrollController.getScrollTop(),F=X.state.viewportState.containerSize;if(!f&&_===E&&F===A)return;E=_,A=F,f=!1;let M=Math.max(0,_-J0),G=_+F+J0,z=Q.getVisibleItems(q,M,G),s=y?y():y4,c=R?R():-1;if(j&&z.length>0)j.render(L,z,s,c);let t=X.state.viewportState;t.scrollPosition=_;let K0=z.length,n=K0>0?z[0].index:0,q0=K0>0?z[K0-1].index:0;t.visibleRange.start=n,t.visibleRange.end=q0,t.renderRange.start=n,t.renderRange.end=q0;let j0=X.state.lastRenderRange;if(j0.start!==n||j0.end!==q0)j0.start=n,j0.end=q0,V.emit("range:change",{range:{start:n,end:q0}})},u=()=>{X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,f=!0,x()};X.setRenderFns(x,u);let l=(_,F)=>{let M=(U?F:_)-D;if(Q&&Q.containerSize!==M){if(Q.update({containerSize:M}),m(),j)j.clear();u()}};X.resizeHandlers.push(l);let T=()=>{m(),u()},B=X.dataManager,p=(_)=>{if(typeof B[_]!=="function")return;let F=B[_].bind(B);B[_]=(...M)=>{F(...M),T()}};p("setItems"),p("appendItems"),p("prependItems"),p("updateItem"),p("removeItem");let{animateScroll:w,cancelScroll:W}=e0(X.scrollController,X.renderIfNeeded);X.methods.set("cancelScroll",W),X.methods.set("scrollToIndex",(_,F)=>{let M=q[_];if(!M)return;let{align:G,behavior:z,duration:s}=g0(F),c=M.y,t=X.state.viewportState.containerSize,K0=c;if(G==="center")K0=c-t/2+M.size/2;else if(G==="end"){K0=c-t+M.size;let n=Q.getTotalSize(q);if(_===q.length-1)K0=Math.max(0,n+H-t)}if(K0=Math.max(0,K0),K0=X.adjustScrollPosition(K0),z==="smooth")w(X.scrollController.getScrollTop(),K0,s);else W(),X.scrollController.scrollTo(K0)}),m(),X.idleHandlers.push(()=>{if(j)j.sortDOM()}),X.destroyHandlers.push(()=>{if(W(),j)j.destroy();Y.root.classList.remove(`${N}--masonry`)})}}};var rJ=(J)=>{let Q=J?.mode??"single",j=J?.followFocus??!1,q=J?.initial,X=J?.shiftArrowToggle??"origin",Y=J?.focusOnClick??!1,V=J?.contextMenu??"select",K=$1(q),Z=null,N=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(U){let{dom:P,emitter:D,config:H}=U,{classPrefix:I,ariaIdPrefix:C}=H;if(Q==="none"){U.methods.set("select",()=>{}),U.methods.set("deselect",()=>{}),U.methods.set("toggleSelect",()=>{}),U.methods.set("selectAll",()=>{}),U.methods.set("clearSelection",()=>{}),U.methods.set("getSelected",()=>[]),U.methods.set("getSelectedItems",()=>[]),U.methods.set("setSelectionMode",()=>{}),U.methods.set("selectNext",()=>{}),U.methods.set("selectPrevious",()=>{}),U.methods.set("_focusById",()=>{}),U.methods.set("_getFocusedId",()=>{return});return}P.root.classList.add(`${I}--selectable`);let O=U.methods.get("_isGroupHeader"),k=(w)=>O?O(w):!1,b=(w,W,_)=>{if(!O)return w;let F=w;while(F>=0&&F<_){if(!k(F))return F;F+=W}F=w-W;while(F>=0&&F<_){if(!k(F))return F;F-=W}return w},v=new Map,m=()=>{v.clear();let w=U.dataManager.getTotal(),W=U.dataManager.getCached();if(W===0)return;if(W>=w){for(let F=0;F<w;F++){let M=U.dataManager.getItem(F);if(M)v.set(M.id,F)}return}let _=U.dataManager.getStorage();if(_&&typeof _.getLoadedRanges==="function"){let F=_.getLoadedRanges();for(let M of F)for(let G=M.start;G<=M.end;G++){let z=U.dataManager.getItem(G);if(z&&!z._isPlaceholder)v.set(z.id,G)}}};D.on("data:change",({type:w,id:W})=>{if(w==="remove")K.selected.delete(W),m()}),D.on("load:end",({items:w,offset:W})=>{if(!w||w.length===0)return;if(W!==void 0)for(let _=0;_<w.length;_++){let F=w[_];if(F&&F.id!==void 0)v.set(F.id,W+_)}else m()}),m(),U.methods.set("_getSelectedIds",()=>{return K.selected}),U.methods.set("_getFocusedIndex",()=>{return K.focusVisible?K.focusedIndex:-1}),U.methods.set("_seedSelection",(w)=>{for(let W of w)K.selected.add(W)});let{forceRender:g}=U.getRenderFns(),h=()=>{g();let w=(W)=>{let _=v.get(W);if(_===void 0)return;return U.dataManager.getItem(_)};D.emit("selection:change",{selected:OJ(K),items:AJ(K,w)})},i=f0(U.rawConfig.padding),$=H.horizontal?i.left:i.top,e=H.horizontal?i.right:i.bottom,o=U.getItemToScrollIndexFn(),y=null,R=null,S=null,a=!1,L=()=>{if(a)return;a=!0,y=U.methods.get("_getNavDelta")??null,R=U.methods.get("_navigate")??null,S=U.methods.get("_scrollItemIntoView")??null},E=()=>{return L(),y?y():{ud:1,lr:0,cols:0}},A=(w)=>{if(w<0)return;if(L(),S)S(w);else{let W=U.state.viewportState.containerSize,_=U.state.viewportState.scrollPosition,F=U.dataManager.getTotal(),M=U.getCachedCompression(),{visibleRange:G}=U.state.viewportState,z=o(w),s=DJ(z,U.sizeCache,_,W,$,e,M,F,G);if(s!==_)U.scrollController.scrollTo(U.adjustScrollPosition(s))}},f=()=>{let w=o(Math.max(0,K.focusedIndex)),W=U.sizeCache.getSize(w),{ud:_}=E();return Math.max(_,Math.floor(U.state.viewportState.containerSize/W)*_)};Z=document.createElement("div"),Z.setAttribute("aria-live","polite"),Z.setAttribute("aria-atomic","true"),Z.className=`${I}-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",(P.root.getAttribute("role")==="grid"?P.root.parentElement??P.root:P.root).appendChild(Z);let x=Z;D.on("selection:change",({selected:w})=>{let W=w.length;if(W===0)x.textContent="";else if(W===1)x.textContent="1 item selected";else x.textContent=`${W} items selected`});let u=()=>{if(U.state.isDestroyed)return;if(!P.root.matches(":focus-visible"))return;let w=U.dataManager.getTotal();if(w===0)return;let W=K.focusedIndex>=0?Math.min(K.focusedIndex,w-1):0;W=b(W,1,w),K=t0(K,W),K.focusVisible=!0,P.root.setAttribute("aria-activedescendant",`${C}-item-${W}`),A(W);let _=U.dataManager.getItem(W);if(_)U.renderer.updateItemClasses(W,K.selected.has(_.id),!0)};if(H.interactive)P.root.addEventListener("focusin",u);let l=(w)=>{if(U.state.isDestroyed)return;let W=w.relatedTarget;if(W&&P.root.contains(W))return;let _=K.focusedIndex;if(K.focusVisible=!1,P.root.removeAttribute("aria-activedescendant"),_>=0){let F=U.dataManager.getItem(_);if(F)U.renderer.updateItemClasses(_,K.selected.has(F.id),!1)}};if(H.interactive)P.root.addEventListener("focusout",l);let T=(w)=>{let W=w.target.closest("[data-index]");if(!W)return null;let _=parseInt(W.dataset.index??"-1",10);if(_<0)return null;let F=U.dataManager.getItem(_);if(!F||k(_))return null;return{item:F,index:_}},B=(w)=>{K=t0(K,w),K.focusVisible=Y,N=w,P.root.setAttribute("aria-activedescendant",`${C}-item-${w}`)};if(U.clickHandlers.push((w)=>{if(U.state.isDestroyed)return;let W=T(w);if(!W)return;let{item:_,index:F}=W;if(D.emit("item:click",{item:_,index:F,event:w}),Q==="multiple"&&w.shiftKey&&K.focusedIndex>=0){let M=N>=0?N:K.focusedIndex;K=EJ(K,U.getAllLoadedItems(),M,F,Q),B(F),h();return}B(F),K=i0(K,_.id,Q),h()}),V==="select")U.contextMenuHandlers.push((w)=>{if(U.state.isDestroyed)return;let W=T(w);if(!W)return;if(!K.selected.has(W.item.id))K={...K,selected:new Set([W.item.id])},B(W.index),h()});if(H.interactive)U.keydownHandlers.push((w)=>{if(U.state.isDestroyed)return;let W=U.dataManager.getTotal(),_=K.focusedIndex,F=!1,M=!1,G=K;if(L(),R)switch(w.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let z=R(K.focusedIndex,w.key,W);if(z!==K.focusedIndex)G=t0(K,z),G.focusVisible=!0,F=!0,M=!0;else{w.preventDefault();return}break}}if(!F)switch(w.key){case"ArrowUp":G=GJ(K,W,H.wrap,E().ud),G.focusVisible=!0,F=!0,M=!0;break;case"ArrowDown":G=MJ(K,W,H.wrap,E().ud),G.focusVisible=!0,F=!0,M=!0;break;case"ArrowLeft":{let{lr:z}=E();if(z)G=GJ(K,W,H.wrap,z),G.focusVisible=!0,F=!0,M=!0;break}case"ArrowRight":{let{lr:z}=E();if(z)G=MJ(K,W,H.wrap,z),G.focusVisible=!0,F=!0,M=!0;break}case"PageUp":G=CJ(K,W,f(),"up"),G.focusVisible=!0,F=!0,M=!0;break;case"PageDown":G=CJ(K,W,f(),"down"),G.focusVisible=!0,F=!0,M=!0;break;case"Home":{G=b1(K,W),G.focusVisible=!0,F=!0,M=!0;break}case"End":{G=y1(K,W),G.focusVisible=!0,F=!0,M=!0;break}}switch(w.key){case" ":case"Enter":if(w.key===" "&&w.shiftKey&&Q==="multiple"&&K.focusedIndex>=0){if(N>=0){let z=U.getAllLoadedItems();G=EJ(G,z,N,K.focusedIndex,Q)}G.focusVisible=!0,F=!0;break}if(K.focusedIndex>=0&&!k(K.focusedIndex)){let z=U.dataManager.getItem(K.focusedIndex);if(z)G=i0(K,z.id,Q),G.focusVisible=!0;N=K.focusedIndex,F=!0}break;case"a":if((w.ctrlKey||w.metaKey)&&Q==="multiple"){let z=U.getAllLoadedItems();if(K.selected.size===z.length)G=zJ(G);else G=wJ(G,z,Q);G.focusVisible=!0,F=!0,M=!1}break;case"Delete":case"Backspace":if(K.selected.size>0){let z=(s)=>{let c=v.get(s);return c===void 0?void 0:U.dataManager.getItem(c)};D.emit("delete",{selected:OJ(K),items:AJ(K,z)}),F=!0}break}if(M&&O){let z=G.focusedIndex>_?1:-1;G.focusedIndex=b(G.focusedIndex,z,W)}if(w.shiftKey&&Q==="multiple"&&M&&G.focusedIndex>=0){let z=w.key==="ArrowUp"||w.key==="ArrowDown"||w.key==="ArrowLeft"||w.key==="ArrowRight",s=(w.ctrlKey||w.metaKey)&&(w.key==="Home"||w.key==="End");if(z){if(X==="origin"){if(_>=0){let c=U.dataManager.getItem(_);if(c)G=i0(G,c.id,Q)}}else{let c=U.dataManager.getItem(G.focusedIndex);if(c)G=i0(G,c.id,Q)}N=G.focusedIndex,M=!1}else if(s){let c=U.getAllLoadedItems(),t=_>=0?_:G.focusedIndex;G=EJ(G,c,t,G.focusedIndex,Q),N=G.focusedIndex,M=!1}}if(j&&Q==="single"&&M&&G.focusedIndex>=0){let z=U.dataManager.getItem(G.focusedIndex);if(z)G=n0(G,[z.id],Q);M=!1}if(F){w.preventDefault(),K=G;let z=K.focusedIndex;if(z>=0)A(z),P.root.setAttribute("aria-activedescendant",`${C}-item-${z}`);else P.root.removeAttribute("aria-activedescendant");if(M){let{selected:s}=K;if(_>=0&&_!==z){let c=U.dataManager.getItem(_);if(c)U.renderer.updateItemClasses(_,s.has(c.id),!1)}if(z>=0){let c=U.dataManager.getItem(z);if(c)U.renderer.updateItemClasses(z,s.has(c.id),!0)}}else h();if(z>=0&&z!==_){let s=U.dataManager.getItem(z);if(s)D.emit("focus:change",{id:s.id,index:z})}}});U.methods.set("select",(...w)=>{K=n0(K,w,Q),h()}),U.methods.set("deselect",(...w)=>{K=PJ(K,w),h()}),U.methods.set("toggleSelect",(w)=>{K=i0(K,w,Q),h()}),U.methods.set("selectAll",()=>{if(Q!=="multiple")return;let w=U.getAllLoadedItems();K=wJ(K,w,Q),m(),h()}),U.methods.set("clearSelection",()=>{K=zJ(K),h()}),U.methods.set("getSelected",()=>{return OJ(K)}),U.methods.set("getSelectedItems",()=>{return AJ(K,(W)=>{let _=v.get(W);return _===void 0?void 0:U.dataManager.getItem(_)})});let p=(w)=>{let W=U.dataManager.getTotal();if(W===0)return;if(L(),R){let G=w==="next"?"ArrowDown":"ArrowUp",z=R(K.focusedIndex,G,W);K=t0(K,z)}else{let{ud:G}=E();K=w==="next"?MJ(K,W,H.wrap,G):GJ(K,W,H.wrap,G)}let _=w==="next"?1:-1;K.focusedIndex=b(K.focusedIndex,_,W);let F=K.focusedIndex,M=U.dataManager.getItem(F);if(!M)return;K=n0(K,[M.id],Q),A(F),h()};U.methods.set("selectNext",()=>{p("next")}),U.methods.set("selectPrevious",()=>{p("previous")}),U.methods.set("_focusById",(w)=>{let W=v.get(w);if(W!==void 0){let F=U.dataManager.getItem(W);if(!F||F.id!==w)W=void 0}if(W===void 0){if(m(),W=v.get(w),W===void 0)return}K=t0(K,W);let _=U.dataManager.getItem(W);if(_)D.emit("focus:change",{id:_.id,index:W})}),U.methods.set("_getFocusedId",()=>{let w=K.focusedIndex;if(w<0)return;return U.dataManager.getItem(w)?.id}),U.destroyHandlers.push(()=>{if(x&&x.parentNode)x.remove();P.root.removeEventListener("focusin",u),P.root.removeEventListener("focusout",l)})},destroy(){if(Z&&Z.parentNode)Z.remove();Z=null}}};var P4=(J)=>{try{let Q=sessionStorage.getItem(J);if(!Q)return;return JSON.parse(Q)}catch{return}},aJ=(J)=>{let Q=J?.autoSave,j=Q?P4(Q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(q){q.methods.set("getScrollSnapshot",()=>{let K=q.scrollController.getScrollTop(),Z=q.getCachedCompression(),N=q.getVirtualTotal(),U=q.methods.get("getSelected"),P=U&&U().length>0?U():void 0;if(N===0){let v={index:0,offsetInItem:0,total:0};if(P)v.selectedIds=P;return v}let D,H;if(Z.isCompressed){let m=K/Z.virtualSize*N;D=Math.max(0,Math.min(Math.floor(m),N-1)),H=(m-D)*q.sizeCache.getSize(D)}else D=q.sizeCache.indexAtOffset(K),H=K-q.sizeCache.getOffset(D);H=Math.max(0,H);let I={index:D,offsetInItem:H,total:N},C=q.sizeCache.getSize(D);if(C>0)I.offsetRatio=H/C;let O=q.methods.get("_layoutToDataIndex");if(O){let v=O(D);if(v>=0)I.dataIndex=v}let k=q.methods.get("_getTotal");if(k)I.dataTotal=k();if(P)I.selectedIds=P;let b=q.methods.get("_getFocusedId");if(b){let v=b();if(v!==void 0)I.focusedId=v}return I});let X=(K)=>{let{index:Z,offsetInItem:N,selectedIds:U,focusedId:P}=K,D=q.getVirtualTotal(),H=K.dataTotal??K.total;if(D===0&&H&&H>0){q.dataManager.setTotal(H);let R=q.getVirtualTotal();q.sizeCache.rebuild(R),q.updateCompressionMode();let S=q.getCachedCompression();if(!S.isCompressed)q.updateContentSize(S.virtualSize)}else if(D===0)return;if(!Number.isFinite(Z)||!Number.isFinite(N))return;let I=q.getVirtualTotal();if(q.sizeCache.getTotal()!==I){q.sizeCache.rebuild(I),q.updateCompressionMode();let R=q.getCachedCompression();if(!R.isCompressed)q.updateContentSize(R.virtualSize)}let O=q.getCachedCompression(),k=q.methods.get("_dataToLayoutIndex"),b=Z;if(K.dataIndex!==void 0&&K.dataIndex>=0)b=k?k(K.dataIndex):K.dataIndex;else if(k)b=k(Z);let v=Math.max(0,Math.min(b,I-1)),m=q.sizeCache.getSize(v),g=K.offsetRatio!==void 0?K.offsetRatio*m:Math.min(N,m),h;if(O.isCompressed){let R=m>0?g/m:0;h=(v+R)/I*O.virtualSize}else h=q.sizeCache.getOffset(v)+g;let i=q.state.viewportState.containerSize,$=O.isCompressed?q.state.viewportState.totalSize:O.virtualSize,e=Math.max(0,$-i);if(h=Math.max(0,Math.min(h,e)),q.scrollController.scrollTo(h),U&&U.length>0){let R=q.methods.get("select");if(R)R(...U)}let o=q.methods.get("loadVisibleRange"),y=()=>{if(P===void 0)return;let R=q.methods.get("_focusById");if(R)R(P)};if(o){let S=0,a=h,L=()=>{S++;let E=q.state.viewportState.containerSize,A=q.scrollController.getScrollTop();if(E>0){if(Math.abs(A-a)>1)q.scrollController.scrollTo(a);o().then(y)}else if(S<10)requestAnimationFrame(L)};requestAnimationFrame(L)}else{let R=q.methods.get("reload");if(R)requestAnimationFrame(()=>{R().then(y)});else requestAnimationFrame(y)}};q.methods.set("restoreScroll",X);let Y=!!j&&!!Q,V=null;if(Q){V=()=>{if(Y)return;let Z=q.methods.get("getScrollSnapshot");if(!Z)return;let N=Z();try{sessionStorage.setItem(Q,JSON.stringify(N))}catch{}};let K=V;if(q.idleHandlers.push(K),q.emitter.on("selection:change",K),q.emitter.on("focus:change",K),j&&j.total&&j.total>0){let Z=q.methods.get("_cancelAutoLoad");if(Z)Z();q.dataManager.setTotal(j.total)}}if(j){let K=!1;if(j.selectedIds&&j.selectedIds.length>0){let N=q.methods.get("_seedSelection");if(N)N(j.selectedIds),K=!0}let Z=K?(({selectedIds:N,...U})=>U)(j):j;queueMicrotask(()=>{if(X(Z),Y=!1,V)V()})}}}};var l1=(J,Q=50,j=1/0,q=!0)=>{let X=J,Y=[],V=0,K=()=>{Y=X.map((O,k)=>({def:O,index:k,width:0,minWidth:w4(O.minWidth??Q,1),maxWidth:O.maxWidth??j,resizable:O.resizable??q,offset:0}))},Z=(O)=>{if(Y.length===0){V=0;return}let k=0,b=0;for(let v=0;v<Y.length;v++){let m=Y[v],g=m.def;if(g.width!==void 0)m.width=sJ(g.width,m.minWidth,m.maxWidth),k+=m.width;else b++}if(b>0){let m=Math.max(0,O-k)/b;for(let g=0;g<Y.length;g++){let h=Y[g];if(h.def.width===void 0)h.width=sJ(m,h.minWidth,h.maxWidth)}}N()},N=()=>{let O=0;for(let k=0;k<Y.length;k++){let b=Y[k];b.offset=O,O+=b.width}V=O},U=(O,k)=>{if(O<0||O>=Y.length)return 0;let b=Y[O];if(!b.resizable)return b.width;let v=sJ(k,b.minWidth,b.maxWidth);return b.width=v,N(),v},P=(O)=>{return Y[O]},D=(O)=>{if(Y.length===0)return;if(O<0)return Y[0];if(O>=V)return Y[Y.length-1];let k=0,b=Y.length-1;while(k<b){let v=k+b>>>1,m=Y[v];if(O<m.offset)b=v-1;else if(O>=m.offset+m.width)k=v+1;else return m}return Y[k]},H=(O)=>{if(O<0||O>=Y.length)return 0;return Y[O].offset},I=(O)=>{if(O<0||O>=Y.length)return 0;return Y[O].width},C=(O)=>{X=O,K()};return K(),{get columns(){return Y},get totalWidth(){return V},resolve:Z,updateColumns:C,resizeColumn:U,getColumn:P,getColumnAtX:D,getColumnOffset:H,getColumnWidth:I}},sJ=(J,Q,j)=>Math.min(j,Math.max(Q,J)),w4=(J,Q)=>Math.max(Q,J);var r1=(J,Q,j,q,X,Y)=>{let V=document.createElement("div");V.setAttribute("role","rowgroup");let K=document.createElement("div");K.className=`${j}-table-header`,K.setAttribute("role","row"),K.setAttribute("aria-rowindex","1"),K.style.height=`${Q}px`;let Z=document.createElement("div");Z.className=`${j}-table-header-scroll`,Z.setAttribute("role","presentation"),K.appendChild(Z),V.appendChild(K),J.insertBefore(V,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let N=[],U=[],P=[],D=!0,H=null,I="asc",C=null,O=!1,k=-1,b=0,v=0,m=(E,A)=>{let f=document.createElement("div");f.className=`${j}-table-header-cell`,f.setAttribute("role","columnheader"),f.setAttribute("aria-colindex",String(A+1)),f.dataset.columnKey=E.def.key;let J0=E.def.align;if(J0==="center")f.classList.add(`${j}-table-header-cell--center`);else if(J0==="right")f.classList.add(`${j}-table-header-cell--right`);let x=document.createElement("div");x.className=`${j}-table-header-content`;let u=E.def.header?E.def.header(E.def):E.def.label;if(typeof u==="string")x.textContent=u;else x.appendChild(u);if(f.appendChild(x),E.def.sortable){let l=document.createElement("span");l.className=`${j}-table-header-sort`,l.setAttribute("aria-hidden","true"),f.appendChild(l),P.push(l),f.classList.add(`${j}-table-header-cell--sortable`)}else P.push(null);if(E.resizable){let l=document.createElement("div");l.className=`${j}-table-header-resize`,l.dataset.resizeIndex=String(A),f.appendChild(l),U.push(l)}return f},g=(E)=>{C=E,Z.textContent="",N=[],U=[],P=[];let A=E.columns;for(let f=0;f<A.length;f++){let J0=A[f],x=m(J0,f);N.push(x),Z.appendChild(x)}if(h(E),H)i(H,I)},h=(E)=>{C=E;let A=E.columns;Z.style.width=`${E.totalWidth}px`;for(let f=0;f<N.length&&f<A.length;f++){let J0=N[f],x=A[f];J0.style.width=`${x.width}px`}},i=(E,A)=>{if(H=E,I=A,!C)return;let f=C.columns;for(let J0=0;J0<P.length&&J0<f.length;J0++){let x=P[J0];if(!x)continue;if(f[J0].def.key===E&&E!==null)x.textContent=A==="asc"?"▲":"▼",x.style.opacity="0.7",N[J0].setAttribute("aria-sort",A==="asc"?"ascending":"descending");else x.textContent="",x.style.opacity="0",N[J0].removeAttribute("aria-sort")}},$=(E)=>{Z.style.transform=`translateX(${-E}px)`},e=(E)=>{let A=E.target;if(!A.dataset.resizeIndex)return;if(E.preventDefault(),E.stopPropagation(),k=parseInt(A.dataset.resizeIndex,10),!C)return;let f=C.getColumn(k);if(!f||!f.resizable)return;O=!0,b=E.clientX,v=f.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",A.classList.add(`${j}-table-header-resize--active`),A.setPointerCapture(E.pointerId),A.addEventListener("pointermove",o),A.addEventListener("pointerup",y),A.addEventListener("pointercancel",y)},o=(E)=>{if(!O||!C)return;let A=E.clientX-b;if(Math.abs(A)<1)return;let f=Math.max(0,v+A);q(k,f)},y=(E)=>{if(!O)return;let A=E.target;A.removeEventListener("pointermove",o),A.removeEventListener("pointerup",y),A.removeEventListener("pointercancel",y);try{A.releasePointerCapture(E.pointerId)}catch{}A.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",O=!1,k=-1},R=(E)=>{let A=E.target;if(A.dataset.resizeIndex!==void 0)return;if(O)return;let f=A;while(f&&!f.dataset.columnKey)if(f=f.parentElement,f===K||f===null)return;if(!f||!f.dataset.columnKey)return;let J0=f.dataset.columnKey;if(!C)return;let x=C.columns,u=-1;for(let T=0;T<x.length;T++)if(x[T].def.key===J0){u=T;break}if(u===-1)return;let l=x[u];if(Y)Y({key:J0,index:u,event:E});if(l.def.sortable&&X){let T;if(H===J0)if(I==="asc")T="desc";else T=null;else T="asc";X({key:J0,index:u,direction:T})}};return K.addEventListener("pointerdown",e),K.addEventListener("click",R),{element:K,update:h,updateSort:i,rebuild:g,show:()=>{if(D)return;D=!0,K.style.display=""},hide:()=>{if(!D)return;D=!1,K.style.display="none"},destroy:()=>{K.removeEventListener("pointerdown",e),K.removeEventListener("click",R),J.style.removeProperty("--vlist-table-header-height"),V.remove(),N=[],U=[],P=[],C=null,D=!1},syncScroll:$}};var z4=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Q)=>{if(Q.parentNode?.removeChild(Q),J.length<200)Q.className="",Q.removeAttribute("data-id"),Q.removeAttribute("data-index"),Q.removeAttribute("aria-selected"),Q.removeAttribute("aria-rowindex"),Q.removeAttribute("role"),Q.style.cssText="",Q.textContent="",J.push(Q)},clear:()=>{J.length=0}}},a1=(J,Q,j,q,X,Y,V,K,Z)=>{let N=z4(),U=new Map,P=-1,D=j,H=null,I=null,C=null,O=(M,G)=>{I=M,C=G},k=(M,G)=>{if(G)M.setAttribute("aria-selected","true");else M.removeAttribute("aria-selected")},b=(M,G,z,s)=>{M.setAttribute("role",G),M.setAttribute("data-id",String(z)),M.setAttribute("data-index",String(s))},v=(M)=>String(M).startsWith("__placeholder_"),m=`${X}-item ${X}-table-row`,g=`${X}-item--selected`,h=`${X}-item--focused`,i=`${X}-table-cell`,$=`${X}-table-cell--center`,e=`${X}-table-cell--right`,o=`${X}-item--odd`,y=`${X}-item--placeholder`,R=`${X}-item--replaced`,S=`${X}-item ${X}-table-row ${X}-table-group-header`,a=`${X}-table-group-header-content`,L=(M,G,z,s,c=!1)=>{if(z.def.cell){let t=z.def.cell(G,z.def,s);if(typeof t==="string")M.innerHTML=t;else M.replaceChildren(t)}else{let t=G[z.def.key],K0=t!=null?String(t):"";if(c&&K0)M.innerHTML=`<span>${K0}</span>`;else M.textContent=K0}},E=(M,G,z,s,c=!1)=>{let t=m;if(K){if(H){let K0=H(G);if(K0>=0&&(K0&1)===1)t+=` ${o}`}else if((G&1)===1)t+=` ${o}`}if(c)t+=` ${y}`;if(z)t+=` ${g}`;if(s)t+=` ${h}`;M.className=t},A=(M,G,z)=>{if(z?.compression?.isCompressed)return Math.round(JJ(M,z.scrollPosition,G,z.totalItems,z.containerSize,z.compression,z.rangeStart));return G.getOffset(M)},f=(M,G)=>{let z=G.def.align;if(z==="center")M.classList.add($),M.classList.remove(e);else if(z==="right")M.classList.add(e),M.classList.remove($);else M.classList.remove($,e)},J0=(M,G)=>{let s=D.columns.length;if(G.length===s)return G;let c=[];for(let t=0;t<s;t++){let K0;if(t<G.length)K0=G[t];else K0=document.createElement("div"),K0.className=i,M.appendChild(K0);c.push(K0)}for(let t=s;t<G.length;t++)G[t].remove();return c},x=(M,G,z,s)=>{let c=N.acquire(),t=M,K0=z.getSize(G),n=A(G,z,s);c.style.cssText=`width:${D.totalWidth}px;height:${K0}px;transform:translateY(${n}px)`,c.className=S,b(c,"presentation",M.id,G),c.removeAttribute("aria-selected"),c.removeAttribute("aria-rowindex"),c.replaceChildren();let q0=document.createElement("div");if(q0.className=a,C){let j0=C(t.groupKey,t.groupIndex);if(typeof j0==="string")q0.innerHTML=j0;else q0.appendChild(j0)}return c.appendChild(q0),{element:c,cells:[],index:G,isGroupHeader:!0,lastItemId:M.id,lastSelected:!1,lastFocused:!1,lastOffset:n,lastHeight:K0}},u=(M,G,z,s,c,t)=>{let K0=N.acquire(),n=c.getSize(G),q0=A(G,c,t),j0=v(M.id);K0.style.cssText=`width:${D.totalWidth}px;height:${n}px;transform:translateY(${q0}px)`,E(K0,G,z,s,j0),b(K0,"row",M.id,G),K0.id=`${Y}-${G}`,K0.setAttribute("aria-rowindex",String(G+2)),k(K0,z);let N0=J0(K0,[]),G0=D.columns;for(let M0=0;M0<N0.length&&M0<G0.length;M0++){let A0=N0[M0],k0=G0[M0];A0.style.cssText=`left:${k0.offset}px;width:${k0.width}px`,A0.setAttribute("role","gridcell"),A0.setAttribute("aria-colindex",String(M0+1)),f(A0,k0),L(A0,M,k0,G,j0)}return{element:K0,cells:N0,index:G,isGroupHeader:!1,lastItemId:M.id,lastSelected:z,lastFocused:s,lastOffset:q0,lastHeight:n}},l=(M,G,z,s,c)=>{for(let[j0,N0]of U)if(j0<G.start||j0>G.end)N.release(N0.element),U.delete(j0);let t=!1,K0=V();if(K0!==P)P=K0,t=!0;let n=null,q0=Q();H=typeof K==="string"&&Z?Z():null;for(let j0=G.start;j0<=G.end;j0++){let N0=j0-G.start,G0=M[N0];if(!G0)continue;let M0=z.has(G0.id),A0=j0===s,k0=I?I(G0):!1,Z0=U.get(j0);if(Z0){if(Z0.isGroupHeader!==k0){N.release(Z0.element),U.delete(j0);let O0=k0?x(G0,j0,q0,c):u(G0,j0,M0,A0,q0,c);if(U.set(j0,O0),!n)n=document.createDocumentFragment();n.appendChild(O0.element);continue}if(k0){if(Z0.lastItemId!==G0.id){let D0=G0,_0=Z0.element.firstElementChild;if(_0&&C){let T0=C(D0.groupKey,D0.groupIndex);if(typeof T0==="string")_0.innerHTML=T0;else _0.replaceChildren(T0)}Z0.element.setAttribute("data-id",String(G0.id)),Z0.lastItemId=G0.id}let y0=A(j0,q0,c);if(Z0.lastOffset!==y0)Z0.lastOffset=y0,Z0.element.style.transform=`translateY(${y0}px)`;let W0=q0.getSize(j0);if(Z0.lastHeight!==W0)Z0.lastHeight=W0,Z0.element.style.height=`${W0}px`}else{let O0=Z0.lastItemId!==G0.id,y0=Z0.lastSelected!==M0,W0=Z0.lastFocused!==A0;if(O0){let T0=Z0.lastItemId!=null&&v(Z0.lastItemId),H0=v(G0.id);if(!H0&&u0(z,j0,G0.id))M0=!0;let P0=D.columns;for(let R0=0;R0<Z0.cells.length&&R0<P0.length;R0++)L(Z0.cells[R0],G0,P0[R0],j0,H0);if(E(Z0.element,j0,M0,A0,H0),Z0.element.setAttribute("data-id",String(G0.id)),k(Z0.element,M0),T0&&!H0)Z0.element.classList.add(R),setTimeout(()=>{Z0.element.classList.remove(R)},300);Z0.lastItemId=G0.id,Z0.lastSelected=M0,Z0.lastFocused=A0}else if(y0||W0)E(Z0.element,j0,M0,A0,v(G0.id)),k(Z0.element,M0),Z0.lastSelected=M0,Z0.lastFocused=A0;let D0=A(j0,q0,c);if(Z0.lastOffset!==D0)Z0.lastOffset=D0,Z0.element.style.transform=`translateY(${D0}px)`;let _0=q0.getSize(j0);if(Z0.lastHeight!==_0)Z0.lastHeight=_0,Z0.element.style.height=`${_0}px`;if(t)Z0.element.setAttribute("aria-rowindex",String(j0+2))}}else{if(u0(z,j0,G0.id))M0=!0;let O0=k0?x(G0,j0,q0,c):u(G0,j0,M0,A0,q0,c);if(U.set(j0,O0),!n)n=document.createDocumentFragment();n.appendChild(O0.element)}}if(n)J.appendChild(n)},T=(M)=>{let G=Q();for(let[z,s]of U){let c=A(z,G,M);if(s.lastOffset!==c)s.lastOffset=c,s.element.style.transform=`translateY(${c}px)`}},B=(M,G,z,s)=>{let c=U.get(M);if(!c)return;if(c.isGroupHeader)return;let t=D.columns;for(let K0=0;K0<c.cells.length&&K0<t.length;K0++)L(c.cells[K0],G,t[K0],M);c.element.setAttribute("data-id",String(G.id)),c.lastItemId=G.id,E(c.element,M,z,s),k(c.element,z),c.lastSelected=z,c.lastFocused=s},p=(M,G,z)=>{let s=U.get(M);if(!s)return;if(s.isGroupHeader)return;let c=s.lastSelected!==G,t=s.lastFocused!==z;if(c||t)E(s.element,M,G,z),k(s.element,G),s.lastSelected=G,s.lastFocused=z},w=(M)=>{D=M;let G=M.columns;for(let[,z]of U)if(z.element.style.width=`${M.totalWidth}px`,z.cells.length>0)for(let s=0;s<z.cells.length&&s<G.length;s++){let c=z.cells[s],t=G[s];c.style.left=`${t.offset}px`,c.style.width=`${t.width}px`}},W=(M)=>{return U.get(M)?.element},_=()=>{for(let[,M]of U)N.release(M.element);U.clear(),P=-1};return{render:l,updatePositions:T,updateItem:B,updateItemClasses:p,getElement:W,updateColumnLayout:w,setGroupHeaderFn:O,clear:_,destroy:()=>{_(),N.clear()}}};var C4=new Set,oJ=(J)=>{if(!J.columns||J.columns.length===0)throw Error("[vlist] withTable: columns must be a non-empty array");if(J.rowHeight===void 0&&J.estimatedRowHeight===void 0)throw Error("[vlist] withTable: either rowHeight or estimatedRowHeight is required");let Q=null,j=null,q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(X){let{dom:Y,emitter:V,config:K}=X,{classPrefix:Z}=K;if(K.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(K.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let N=J.resizable??!0,U=J.minColumnWidth??50,P=J.maxColumnWidth??1/0,D=J.columnBorders??!1,H=J.rowBorders??!0,I=J.rowHeight,C=X.rawConfig.padding,O=!C?0:typeof C==="number"?C*2:C.length===2?C[1]*2:C[1]+C[3],k=J.headerHeight??(typeof I==="number"?I:40),b=J.sort?.key??null,v=J.sort?.direction??"asc";if(Q=l1(J.columns,U,P,N),typeof I==="function")X.setSizeConfig(I);else if(typeof I==="number")X.setSizeConfig(I);if(X.rebuildSizeCache(),Y.root.classList.add(`${Z}--table`),H)Y.root.classList.add(`${Z}--table-row-borders`);if(D)Y.root.classList.add(`${Z}--table-col-borders`);Y.root.setAttribute("role","grid"),Y.root.setAttribute("aria-colcount",String(J.columns.length));let m=-1,g=Y.items.getAttribute("aria-label");if(g)Y.root.setAttribute("aria-label",g),Y.items.removeAttribute("aria-label");Y.items.setAttribute("role","rowgroup"),Y.viewport.setAttribute("role","none"),Y.content.setAttribute("role","none"),Y.viewport.removeAttribute("tabindex");let h=X.getContainerWidth()-O;Q.resolve(h);let i=(W,_)=>{if(!Q)return;let F=Q.getColumn(W);if(!F)return;let M=F.width,G=Q.resizeColumn(W,_);if(j)j.update(Q);if(q)q.updateColumnLayout(Q);o(),V.emit("column:resize",{key:F.def.key,index:W,previousWidth:M,width:G})},$=(W)=>{if(W.direction===null)b=null,v="asc";else b=W.key,v=W.direction;if(j)j.updateSort(b,v);V.emit("column:sort",W)},e=(W)=>{V.emit("column:click",W)};if(j=r1(Y.root,k,Z,i,$,e),j.rebuild(Q),b)j.updateSort(b,v);let o=()=>{if(!Q)return;let W=Q.totalWidth;Y.content.style.minWidth=`${W}px`,Y.items.style.minWidth=`${W}px`};o(),q=a1(Y.items,()=>X.sizeCache,Q,J.columns,Z,K.ariaIdPrefix,()=>X.dataManager.getTotal(),X.rawConfig.item?.striped,()=>X.getStripeIndexFn());let y=null,R=null,S=!1,a=()=>{if(S)return;S=!0,y=X.methods.get("_getSelectedIds")??null,R=X.methods.get("_getFocusedIndex")??null},L=-1,E=-1,A=-1,f=!0,J0=K.overscan,x={start:0,end:0},u={start:0,end:0},l=()=>{if(X.state.isDestroyed)return;let W=X.scrollController.getScrollTop(),_=X.state.viewportState.containerSize,F=X.getVirtualTotal(),M=X.state.viewportState.isCompressed;if(!f&&W===L&&_===E&&F===A)return;L=W,E=_,A=F,f=!1;let G=F+1;if(G!==m)m=G,Y.root.setAttribute("aria-rowcount",String(G));X.getVisibleRange(W,_,F,x),u.start=Math.max(0,x.start-J0),u.end=Math.min(F-1,x.end+J0);let z=X.state.viewportState;z.scrollPosition=W,z.visibleRange.start=x.start,z.visibleRange.end=x.end,z.renderRange.start=u.start,z.renderRange.end=u.end;let s=X.state.lastRenderRange,c=s.start!==u.start||s.end!==u.end;if(!c&&M){q.updatePositions(X.getCompressionContext());return}if(!c)return;let t=M?X.getCompressionContext():void 0,K0=X.dataManager.getItemsInRange(u.start,u.end);a();let n=y?y():C4,q0=R?R():-1;q.render(K0,u,n,q0,t),s.start=u.start,s.end=u.end,V.emit("range:change",{range:{start:u.start,end:u.end}})},T=()=>{if(X.state.isDestroyed)return;X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,f=!0,l()};X.setRenderFns(l,T),X.setUpdateItemClassesFn((W,_,F)=>{q?.updateItemClasses(W,_,F)});let B=j,p=-1,w=()=>{let W=Y.viewport.scrollLeft;if(W!==p){if(p=W,B.syncScroll)B.syncScroll(W)}};X.afterScroll.push(w),Y.viewport.addEventListener("scroll",w,{passive:!0}),X.resizeHandlers.push((W,_)=>{if(!Q)return;if(Q.resolve(W-O),j)j.update(Q);if(q)q.updateColumnLayout(Q);o()}),X.methods.set("updateColumns",(W)=>{if(!Q||!j)return;if(Q.updateColumns(W),Q.resolve(X.getContainerWidth()-O),j.rebuild(Q),b)j.updateSort(b,v);if(o(),q)q.updateColumnLayout(Q),q.clear();X.forceRender()}),X.methods.set("resizeColumn",(W,_)=>{if(!Q)return;let F;if(typeof W==="string"){let M=Q.columns;F=-1;for(let G=0;G<M.length;G++)if(M[G].def.key===W){F=G;break}if(F===-1)return}else F=W;i(F,_)}),X.methods.set("getColumnWidths",()=>{if(!Q)return{};let W={},_=Q.columns;for(let F=0;F<_.length;F++)W[_[F].def.key]=_[F].width;return W}),X.methods.set("setSort",(W,_)=>{if(b=W,v=_??"asc",j)j.updateSort(b,v)}),X.methods.set("getSort",()=>{return{key:b,direction:v}}),X.methods.set("_getTableLayout",()=>Q),X.methods.set("_updateRenderedItem",(W,_,F,M)=>{q?.updateItem(W,_,F,M)}),X.methods.set("_replaceTableRenderer",(W)=>{q=W}),X.methods.set("_updateTableForGroups",(W,_)=>{if(q)q.setGroupHeaderFn(W,_)}),X.methods.set("_getTableHeaderHeight",()=>k),X.keydownHandlers.push((W)=>{if(W.key!=="ArrowLeft"&&W.key!=="ArrowRight")return;if(!Q)return;let _=Q.columns;if(_.length===0)return;let F=Y.viewport.clientWidth;if(Q.totalWidth<=F)return;let M=Y.viewport.scrollLeft;if(W.key==="ArrowRight"){for(let G=0;G<_.length;G++)if(_[G].offset>M+1){Y.viewport.scrollLeft=_[G].offset,W.preventDefault();return}}else{for(let G=_.length-1;G>=0;G--)if(_[G].offset<M-1){Y.viewport.scrollLeft=_[G].offset,W.preventDefault();return}if(M>0)Y.viewport.scrollLeft=0,W.preventDefault()}}),X.contentSizeHandlers.push(()=>{o()}),X.destroyHandlers.push(()=>{if(Y.viewport.removeEventListener("scroll",w),j)j.destroy(),j=null;if(q)q.destroy(),q=null;Y.content.style.minWidth="",Y.items.style.minWidth="",Y.root.classList.remove(`${Z}--table`),Y.root.removeAttribute("role"),Y.root.removeAttribute("aria-colcount"),Y.viewport.removeAttribute("role"),Y.viewport.setAttribute("tabindex","-1"),Y.content.removeAttribute("role");let W=Y.root.getAttribute("aria-label");if(W)Y.items.setAttribute("aria-label",W),Y.root.removeAttribute("aria-label");Y.root.removeAttribute("aria-rowcount"),Y.items.setAttribute("role","listbox")})},destroy(){if(j)j.destroy(),j=null;if(q)q.destroy(),q=null}}};var nJ=(J)=>{let Q=J?.handle??null,j=J?.ghostClass??"vlist-sort-ghost",q=J?.shiftDuration??150,X=J?.edgeScrollZone??40,Y=J?.edgeScrollSpeed??20,V=J?.dragThreshold??5,K=J?.ghostContainer??null;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(Z){let{dom:N,emitter:U,config:P}=Z,{classPrefix:D}=P,H=P.horizontal,I=H?"translateX":"translateY",C=q>0?`transform ${q}ms ease`:"none",O=!1,k=-1,b=-1,v=0,m=0,g=0,h=0,i=!1,$=null,e=0,o=null,y=0,R=0,S=0,a=null;Z.methods.set("isSorting",()=>O||c);let L=(r)=>{return r.closest("[data-index]")},E=(r)=>{let X0=r.dataset.index;return X0===void 0?-1:+X0},A=(r)=>{let X0=r.getBoundingClientRect(),U0=r.cloneNode(!0);return U0.className=`${D}-item ${j}`,U0.removeAttribute("data-index"),U0.style.cssText=["position:fixed","pointer-events:none","z-index:10000",`width:${X0.width}px`,`height:${X0.height}px`,`left:${X0.left}px`,`top:${X0.top}px`,"transition:none","will-change:transform"].join(";"),(K||document.body).appendChild(U0),U0},f=()=>{if(!$)return;let r=g-R,X0=h-S;$.style.left=`${r}px`,$.style.top=`${X0}px`},J0=()=>{let r=Z.dataManager.getTotal();if(r===0)return 0;let X0=N.viewport.getBoundingClientRect(),U0=Z.scrollController.getScrollTop(),B0=H?g-R-X0.left+N.viewport.scrollLeft+U0:h-S-X0.top+U0,V0=B0+y,E0=Z.sizeCache.getOffset(k)+Z.sizeCache.getSize(k);if(V0>E0){let L0=Z.sizeCache.indexAtOffset(V0),I0=Z.sizeCache.getOffset(L0)+Z.sizeCache.getSize(L0)/2,h0=V0>I0?L0:L0-1;return Math.min(Math.max(h0,k),r-1)}let b0=Z.sizeCache.getOffset(k);if(B0<b0){let L0=Z.sizeCache.indexAtOffset(B0),I0=Z.sizeCache.getOffset(L0)+Z.sizeCache.getSize(L0)/2,h0=B0<I0?L0:L0+1;return Math.max(Math.min(h0,k),0)}return k},x=()=>{let r=N.items.children,X0=y;for(let U0=0;U0<r.length;U0++){let B0=r[U0],V0=E(B0);if(V0<0||V0===k)continue;let E0=0;if(b>k){if(V0>k&&V0<=b)E0=-X0}else if(b<k){if(V0>=b&&V0<k)E0=X0}let b0=Z.sizeCache.getOffset(V0),L0=Math.round(b0+E0);B0.style.transition=C,B0.style.transform=`${I}(${L0}px)`}},u=()=>{let r=N.items.children;for(let X0=0;X0<r.length;X0++){let U0=r[X0],B0=E(U0);if(B0>=0)U0.style.transform=`${I}(${Math.round(Z.sizeCache.getOffset(B0))}px)`;U0.style.transition=""}},l=()=>{let r=J0();if(r===b)return;b=r,x(),U.emit("sort:move",{fromIndex:k,currentIndex:b})},T=!1,B=()=>{let r=N.viewport.getBoundingClientRect();if(H)return g<r.left||g>r.right;return h<r.top||h>r.bottom},p=()=>{let r=()=>{if(!O)return;let X0=N.viewport.getBoundingClientRect(),U0=0,B0=3;if(H){let E0=g-X0.left,b0=X0.right-g;if(E0<X){let L0=Math.min(B0,1-E0/X);U0=-Y*L0*L0}else if(b0<X){let L0=Math.min(B0,1-b0/X);U0=Y*L0*L0}}else{let E0=h-X0.top,b0=X0.bottom-h;if(E0<X){let L0=Math.min(B0,1-E0/X);U0=-Y*L0*L0}else if(b0<X){let L0=Math.min(B0,1-b0/X);U0=Y*L0*L0}}let V0=B();if(U0!==0){let E0=Z.scrollController.getScrollTop(),b0=Z.sizeCache.getTotalSize()-(H?N.viewport.clientWidth:N.viewport.clientHeight);if(U0<0&&E0<=0||U0>0&&E0>=b0)T=V0;else T=!0,Z.scrollController.scrollTo(E0+U0)}else T=V0;e=requestAnimationFrame(r)};e=requestAnimationFrame(r)},w=()=>{if(e)cancelAnimationFrame(e),e=0},W=(r=!1)=>{if(O=!1,i=!1,$&&$.parentNode)$.remove();$=null,o=null;let X0=`${D}-item--drag-source`,U0=N.items.children;for(let V0=0;V0<U0.length;V0++){let E0=U0[V0];E0.classList.remove(X0);let b0=E(E0);if(b0>=0)E0.style.transform=`${I}(${Math.round(Z.sizeCache.getOffset(b0))}px)`;E0.style.transition=""}w(),N.root.classList.remove(`${D}--sorting`),document.body.style.cursor="";let B0=window.getSelection();if(B0)B0.removeAllRanges();if(document.removeEventListener("pointermove",F),document.removeEventListener("pointerup",G),document.removeEventListener("pointercancel",s),!r)Z.forceRender()},_=(r)=>{if(Z.state.isDestroyed)return;if(O)return;if(c)y0();if(r.button!==0)return;let X0=r.target;if(Q){if(!X0.closest(Q))return}let U0=L(X0);if(!U0)return;let B0=E(U0);if(B0<0)return;v=r.clientX,m=r.clientY,g=r.clientX,h=r.clientY,k=B0,i=!1,o=U0;let V0=U0.getBoundingClientRect();R=r.clientX-V0.left,S=r.clientY-V0.top,document.addEventListener("pointermove",F),document.addEventListener("pointerup",G),document.addEventListener("pointercancel",s)},F=(r)=>{if(g=r.clientX,h=r.clientY,!i){let X0=g-v,U0=h-m;if(Math.sqrt(X0*X0+U0*U0)<V)return;if(i=!0,O=!0,b=k,N.root.classList.add(`${D}--sorting`),document.body.style.cursor="grabbing",y=Z.sizeCache.getSize(k),o)$=A(o),o.classList.add(`${D}-item--drag-source`);let V0=j0();if(V0>=0){let E0=Z.dataManager.getItem(V0);a=E0?E0.id:null}else a=null;U.emit("sort:start",{index:k}),p()}if(O){if(r.preventDefault(),f(),!T)l();else if(B()){if(b!==k)b=k,u()}}},M=(r,X0)=>{let U0=r!==X0&&r>=0&&X0>=0,B0=()=>{if(O=!1,U0){if(N.root.classList.add(`${D}--settling`),U.emit("sort:end",{fromIndex:r,toIndex:X0}),a!==null)N0(a);W(!0),requestAnimationFrame(()=>{N.root.classList.remove(`${D}--settling`)})}else N.root.classList.add(`${D}--settling`),U.emit("sort:cancel",{originalItems:Z.getAllLoadedItems()}),W(!1),requestAnimationFrame(()=>{N.root.classList.remove(`${D}--settling`)})};if(!$){B0();return}let V0=N.viewport.getBoundingClientRect(),E0=Z.scrollController.getScrollTop(),b0=Z.sizeCache.getOffset(X0),L0=q>0?q:150;if($.style.transition=`left ${L0}ms ease, top ${L0}ms ease`,H)$.style.left=`${V0.left-N.viewport.scrollLeft+b0-E0}px`,$.style.top=`${V0.top}px`;else $.style.left=`${V0.left}px`,$.style.top=`${V0.top+b0-E0}px`;let I0=!1,h0=()=>{if(I0)return;I0=!0,$?.removeEventListener("transitionend",h0),B0()};$.addEventListener("transitionend",h0),setTimeout(h0,L0+50)},G=(r)=>{if(!i){document.removeEventListener("pointermove",F),document.removeEventListener("pointerup",G),document.removeEventListener("pointercancel",s),o=null;return}r.preventDefault(),document.removeEventListener("pointermove",F),document.removeEventListener("pointerup",G),document.removeEventListener("pointercancel",s),w(),M(k,b)},z=()=>{if(!i)return;document.removeEventListener("pointermove",F),document.removeEventListener("pointerup",G),document.removeEventListener("pointercancel",s),w(),u(),M(k,k)},s=()=>{z()};N.items.addEventListener("pointerdown",_);let c=!1,t="",K0=-1,n=-1,q0=[],j0=()=>{let r=Z.methods.get("_getFocusedIndex");return r?r():-1},N0=(r)=>{let X0=Z.methods.get("_focusById");if(X0)X0(r)},G0=(r)=>{let X0=H?N.viewport.clientWidth:N.viewport.clientHeight,U0=Z.scrollController.getScrollTop(),B0=YJ(r,Z.sizeCache,U0,X0);if(B0!==U0)Z.scrollController.scrollTo(Z.adjustScrollPosition(B0))},M0=(r)=>{N.liveRegion.textContent="",N.liveRegion.offsetHeight,N.liveRegion.textContent=r},A0=(r)=>{let X0=Z.dataManager.getItem(r);if(!X0)return"";return N.items.querySelector(`[data-index="${r}"]`)?.textContent?.trim()||String(X0.id)},k0=()=>String(Z.dataManager.getTotal()),Z0=(r)=>{let X0=Z.dataManager.getItem(r);if(!X0)return;c=!0,t=X0.id,K0=r,n=r;let U0=Z.dataManager.getTotal();q0=[];for(let B0=0;B0<U0;B0++)q0.push(Z.dataManager.getItem(B0));N.root.classList.add(`${D}--sorting`),U.emit("sort:start",{index:r}),T0(),M0(`Grabbed ${A0(r)}. Current position ${r+1} of ${k0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},O0=()=>{if(!c)return;c=!1;let r=n,X0=A0(r),U0=N.items.children;for(let B0=0;B0<U0.length;B0++)U0[B0].style.transition="none";N.root.classList.remove(`${D}--sorting`),_0(),N0(t),Z.forceRender(),M0(`${X0} dropped. Final position ${r+1} of ${k0()}.`),q0=[],requestAnimationFrame(()=>{let B0=N.items.children;for(let V0=0;V0<B0.length;V0++)B0[V0].style.transition=""})},y0=()=>{if(!c)return;c=!1;let r=K0,X0=N.items.children;for(let U0=0;U0<X0.length;U0++)X0[U0].style.transition="none";if(N.root.classList.remove(`${D}--sorting`),_0(),n!==r)U.emit("sort:cancel",{originalItems:q0});N0(t),Z.forceRender(),G0(r),M0(`Reorder cancelled. Returned to position ${r+1} of ${k0()}.`),q0=[],requestAnimationFrame(()=>{let U0=N.items.children;for(let B0=0;B0<U0.length;B0++)U0[B0].style.transition=""})},W0=(r)=>{if(!c)return;let X0=Z.dataManager.getTotal(),U0=n+r;if(U0<0||U0>=X0)return;let B0=n,V0=U0,E0=N.items.children;for(let b0=0;b0<E0.length;b0++)E0[b0].style.transition="none";U.emit("sort:end",{fromIndex:B0,toIndex:V0}),n=V0,N0(t),Z.forceRender(),G0(V0),T0(),M0(`${A0(V0)} moved. New position ${V0+1} of ${k0()}.`),requestAnimationFrame(()=>{let b0=N.items.children;for(let L0=0;L0<b0.length;L0++)b0[L0].style.transition=""})},D0=`${D}-item--kb-sorting`,_0=()=>{let r=N.items.querySelectorAll(`.${D0}`);for(let X0=0;X0<r.length;X0++)r[X0].classList.remove(D0)},T0=()=>{_0();let r=N.items.querySelector(`[data-id="${t}"]`);if(r)r.classList.add(D0)};Z.afterRenderBatch.push(()=>{if(c)T0()});let H0=(r)=>{if(Z.state.isDestroyed)return;if(O){if(r.key==="Escape")r.preventDefault(),r.stopImmediatePropagation(),z();return}if(c)switch(r.key){case" ":case"Enter":r.preventDefault(),r.stopImmediatePropagation(),O0();return;case"Escape":r.preventDefault(),r.stopImmediatePropagation(),y0();return;case"ArrowUp":case"ArrowLeft":r.preventDefault(),r.stopImmediatePropagation(),W0(-1);return;case"ArrowDown":case"ArrowRight":r.preventDefault(),r.stopImmediatePropagation(),W0(1);return;default:if(!r.key.startsWith("F")&&r.key!=="Tab")r.preventDefault(),r.stopImmediatePropagation();return}if(r.key===" "&&!r.shiftKey&&!r.ctrlKey&&!r.metaKey){let X0=j0();if(X0>=0)r.preventDefault(),r.stopImmediatePropagation(),Z0(X0)}};N.root.addEventListener("keydown",H0);let P0=`${D}-sort-instructions`,R0=document.createElement("div");R0.id=P0,R0.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",R0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",N.root.appendChild(R0),Z.afterRenderBatch.push((r)=>{for(let X0=0;X0<r.length;X0++){let U0=r[X0].element;U0.setAttribute("aria-roledescription","sortable item"),U0.setAttribute("aria-describedby",P0)}}),Z.afterRenderBatch.push((r)=>{if(!O)return;for(let X0=0;X0<r.length;X0++){let{index:U0,element:B0}=r[X0];if(U0===k)B0.classList.add(`${D}-item--drag-source`),o=B0;else{B0.classList.remove(`${D}-item--drag-source`);let V0=0;if(b>k){if(U0>k&&U0<=b)V0=-y}else if(b<k){if(U0>=b&&U0<k)V0=y}let E0=Math.round(Z.sizeCache.getOffset(U0)+V0);B0.style.transform=`${I}(${E0}px)`}}}),Z.destroyHandlers.push(()=>{if(c)y0();W(),N.items.removeEventListener("pointerdown",_),N.root.removeEventListener("keydown",H0),R0.remove()})}}};var s1=(J,Q)=>{let j=new Map,q=(Y)=>{let V=j.get(Y);return V!==void 0?V:J},X=c0(q,Q);return{getOffset(Y){return X.getOffset(Y)},getSize(Y){return q(Y)},indexAtOffset(Y){return X.indexAtOffset(Y)},getTotalSize(){return X.getTotalSize()},getTotal(){return X.getTotal()},rebuild(Y){if(Y<X.getTotal()){for(let V of j.keys())if(V>=Y)j.delete(V)}X=c0(q,Y)},isVariable(){return!0},setMeasuredSize(Y,V){j.set(Y,V)},isMeasured(Y){return j.has(Y)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var iJ=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(Q){let j=Q.config.horizontal,X=Q.rawConfig.item,Y=j?X.estimatedWidth:X.estimatedHeight;if(Y==null||Y<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let V=X.gap??0,K=Q.getVirtualTotal(),Z=f0(Q.rawConfig.padding),N=r0(Z,j),U=s1(Y+V,K),P=Q.methods.get("_setSizeCache"),D=Q.methods.get("_setConstrainSize");if(!P||!D)throw Error("[vlist/withAutoSize] Incompatible builder version");P(U),D((g)=>U.isMeasured(g));let H=new WeakMap,I=0,C=!1,O=2,k=(g)=>{let h=Q.scrollController.getScrollTop(),i=Q.state.viewportState.containerSize;if(i<=0)return!1;let $=Math.max(0,g+N-i);return h>=$-O},b=()=>{let g=U.getTotalSize(),h=Q.state.viewportState.containerSize;if(h<=0)return;let i=Math.max(0,g+N-h),$=Q.scrollController.getScrollTop();if(i>$)Q.scrollController.scrollTo(i)},v=()=>{let g=U.getTotalSize();Q.updateContentSize(g)},m=()=>{if(C){let g=Q.dom.viewport,h=g.scrollHeight,i=h-g.clientHeight,$=Q.scrollController.getScrollTop(),e=i>0&&$>=i-O,o=Q.getVirtualTotal(),y=Q.state.viewportState.renderRange.end,R=o>0&&y>=o-1,S=U.getTotalSize()+N,a=Math.abs(S-h),L=R&&i>0&&$>=i-a-O,E=e||L;if(v(),C=!1,E)g.scrollHeight,b(),Q.forceRender()}};J=new ResizeObserver((g)=>{if(Q.state.isDestroyed)return;let h=!1,i=Q.state.viewportState.visibleRange.start;for(let A of g){let f=H.get(A.target);if(f===void 0)continue;let J0=j?A.borderBoxSize[0].inlineSize:A.borderBoxSize[0].blockSize;if(!U.isMeasured(f)){let x=J0+V,u=U.getSize(f);if(U.setMeasuredSize(f,x),h=!0,f<i&&x!==u)I+=x-u;J.unobserve(A.target);let l=A.target;if(j)l.style.width=`${J0}px`;else l.style.height=`${J0}px`}}if(!h)return;let $=U.getTotalSize();if(U.rebuild(Q.getVirtualTotal()),I!==0){let A=Q.scrollController.getScrollTop();Q.scrollController.scrollTo(A+I),I=0}let e=k($),o=Q.getVirtualTotal(),y=Q.state.viewportState.renderRange.end,R=o>0&&y>=o-1,S=Q.dom.viewport,a=S.scrollHeight-S.clientHeight,L=Q.scrollController.getScrollTop(),E=a>0&&L>=a-O;if(e||R||!Q.scrollController.isScrolling()){if(v(),C=!1,e||R&&E)S.scrollHeight,b()}else C=!0;Q.forceRender()}),Q.afterRenderBatch.push((g)=>{for(let{index:h,element:i}of g)if(!U.isMeasured(h))H.set(i,h),J.observe(i)}),Q.idleHandlers.push(m),Q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var v4=50,S4=0.1;function o1(J){let Q=0,j=0,q=0;function X(){return q>0?j/q:0}function Y(Z){if(Q=Z,Z>S4&&Z<v4)j+=Z,q++}function V(){let Z=J.getTotal();if(Z===0)return 0;let N=J.getItemSize();if(N<=0)return 0;let U=J.getContainerSize();if(U<=0)return 0;let P=J.getScrollPosition(),D=typeof J.getColumns==="function"?J.getColumns():1,I=Math.ceil(Z/D)*N,O=Math.min(I,o0)-U,k=I-U,b=O>0?k/O:1,v=P*b,m=Math.ceil((v+U)/N);return Math.min(m*D,Z)}function K(){let Z=J.getTotal(),N=V();return{progress:Z>0?Math.min(100,Math.max(0,N/Z*100)):0,velocity:Q,velocityAvg:X(),itemCount:N,total:Z}}return{getState:K,onVelocity:Y}}export{oJ as withTable,nJ as withSortable,aJ as withSnapshots,rJ as withSelection,fJ as withScrollbar,IJ as withScale,pJ as withPage,lJ as withMasonry,xJ as withGroups,cJ as withGrid,iJ as withAutoSize,hJ as withAsync,SJ as vlist,o1 as createStats};
|
|
1
|
+
var V2=2,D2=(J=0)=>({velocity:0,sampleCount:0}),G2=(J,q)=>{let j=performance.now(),Q=J._lt??j,X=J._lp??q,Y=j-Q;if(J._lp=q,J._lt=j,Y===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(Y>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(q-X)/Y,J.sampleCount=Math.min(J.sampleCount+1,5),J};var OJ=(J,q)=>{let j=q;return{getOffset:(Q)=>Q*J,getSize:(Q)=>J,indexAtOffset:(Q)=>{if(j===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(Q/J),j-1))},getTotalSize:()=>j*J,getTotal:()=>j,rebuild:(Q)=>{j=Q},isVariable:()=>!1}},AJ=(J,q)=>{let j=q,Q=new Float64Array(0),X=(W)=>{j=W,Q=new Float64Array(W+1),Q[0]=0;for(let Z=0;Z<W;Z++)Q[Z+1]=Q[Z]+J(Z)};X(q);let Y=(W)=>{if(j===0)return 0;if(W<=0)return 0;if(W>=Q[j])return j-1;let Z=0,_=j-1;while(Z<_){let N=Z+_+1>>>1;if(Q[N]<=W)Z=N;else _=N-1}return Z};return{getOffset:(W)=>{if(W<=0)return 0;if(W>=j)return Q[j];return Q[W]},getSize:(W)=>J(W),indexAtOffset:(W)=>Y(W),getTotalSize:()=>Q[j]??0,getTotal:()=>j,rebuild:(W)=>X(W),isVariable:()=>!0}},c0=(J,q)=>{if(typeof J==="number")return OJ(J,q);return AJ(J,q)},M2=(J,q,j,Q)=>{if(Q===0)return 0;if(!J.isVariable())return Math.ceil(j/J.getSize(0));let X=0,Y=0,W=q;while(W<Q&&Y<j)Y+=J.getSize(W),X++,W++;return Math.max(1,X)};var O2=()=>{let J={},q=(Y,W)=>{if(!J[Y])J[Y]=new Set;return J[Y].add(W),()=>j(Y,W)},j=(Y,W)=>{J[Y]?.delete(W)};return{on:q,off:j,emit:(Y,W)=>{J[Y]?.forEach((Z)=>{try{Z(W)}catch(_){console.error(`[vlist] Error in event handler for "${String(Y)}":`,_)}})},clear:(Y)=>{if(Y)delete J[Y];else for(let W in J)delete J[W]}}};var A2=(J)=>{if(typeof J==="string"){let q=document.querySelector(J);if(!q)throw Error(`[vlist] Container not found: ${J}`);return q}return J},Y1=(J,q)=>{let j=document.createElement("div");if(j.className=J,q)j.style.cssText=q;return j},E2=(J,q,j,Q,X)=>{let Y=Q,W=Y1(q);if(Y)W.classList.add(`${q}--horizontal`);if(X!==!1)W.setAttribute("tabindex","0");let Z=Y1(`${q}-viewport`,Y?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");Z.setAttribute("tabindex","-1");let _=Y1(`${q}-content`,Y?"position:relative;height:100%":"position:relative;width:100%"),N=Y1(`${q}-items`,Y?"position:relative;height:100%":"position:relative;width:100%");if(N.setAttribute("role","listbox"),j)N.setAttribute("aria-label",j);if(Y)N.setAttribute("aria-orientation","horizontal");let K=Y1(`${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 K.setAttribute("aria-live","polite"),K.setAttribute("aria-atomic","true"),K.setAttribute("role","status"),_.appendChild(N),Z.appendChild(_),W.appendChild(K),W.appendChild(Z),J.appendChild(W),{root:W,viewport:Z,content:_,items:N,liveRegion:K}};var L2=(J=100)=>{let q=[];return{acquire:()=>{let j=q.pop();if(j)return j;let Q=document.createElement("div");return Q.setAttribute("role","option"),Q},release:(j)=>{if(q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),q.push(j)},clear:()=>{q.length=0}}};var F2=(J,q,j,Q,X)=>{if(Q===0||q===0){X.start=0,X.end=-1;return}let Y=j.indexAtOffset(J),W=j.indexAtOffset(J+q);if(W<Q-1)W++;X.start=Math.max(0,Y),X.end=Math.min(Q-1,Math.max(0,W))},T2=(J,q,j,Q)=>{Q.start=Math.max(0,J.start-q),Q.end=Math.min(j-1,J.end+q)},H2=(J,q,j,Q,X,Y=0)=>{if(Q===0)return 0;let W=Math.max(0,Math.min(J,Q-1)),Z=q.getOffset(W),_=q.getSize(W),N=q.getTotalSize(),K=Math.max(0,N+Y-j),S;switch(X){case"center":S=Z-(j-_)/2;break;case"end":S=Y>0&&Z+_>=N?K:Z-j+_;break;default:S=Z}return Math.max(0,Math.min(S,K))};var G1={top:0,right:0,bottom:0,left:0},S0=(J)=>{if(J==null)return G1;if(typeof J==="number")return J===0?G1:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[Y,W]=J;return Y===0&&W===0?G1:{top:Y,right:W,bottom:Y,left:W}}let[q,j,Q,X]=J;return q===0&&j===0&&Q===0&&X===0?G1:{top:q,right:j,bottom:Q,left:X}},s0=(J,q)=>q?J.left+J.right:J.top+J.bottom,M1=(J,q)=>q?J.top+J.bottom:J.left+J.right;var a0=(J,q,j)=>{let Q=Array.from(q).sort((W,Z)=>W-Z);if(Q.length<=1)return;let X=[];for(let W=0;W<Q.length;W++){let Z=j(Q[W]);if(Z)X.push(Z)}if(X.length<=1)return;let Y=J.firstChild;for(let W=0;W<X.length;W++){let Z=X[W];if(Z===Y)Y=Y.nextSibling;else J.insertBefore(Z,Y)}};var k2=(J,q)=>{let{dom:j,emitter:Q,resolvedConfig:X,rawConfig:Y,rendered:W,pool:Z,sharedState:_,isHorizontal:N,classPrefix:K,contentSizeHandlers:S,idleHandlers:V,afterScroll:M,clickHandlers:v,contextMenuHandlers:I,keydownHandlers:E,resizeHandlers:w,destroyHandlers:L,methods:T,onScrollFrame:C,resizeObserver:h,renderRange:R,afterRenderBatch:u}=q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return X},get rawConfig(){return Y},adjustScrollPosition(P){if(J.mp===0)return P;let d=N?J.cw:J.ch,l=J.hc.getTotalSize(),J0=Math.max(0,l-d),p=Math.max(0,l+J.mp-d);if(P>=J0)return p;return Math.min(P,p)},get renderer(){return{render:(P,d,l,J0,p)=>{J.ss=l,J.fi=J0,J.ffn()},updateItemClasses:(P,d,l)=>{J.uic(P,d,l)},updatePositions:()=>{},updateItem:()=>{},getElement:(P)=>W.get(P)??null,clear:()=>{},destroy:()=>{}}},set renderer(P){},get dataManager(){return J.dm},set dataManager(P){J.dm=P},get scrollController(){return J.sc},set scrollController(P){J.sc=P},state:_,getContainerWidth(){return J.cw},afterScroll:M,idleHandlers:V,afterRenderBatch:u,clickHandlers:v,contextMenuHandlers:I,keydownHandlers:E,resizeHandlers:w,contentSizeHandlers:S,destroyHandlers:L,methods:T,replaceTemplate(P){J.at=P},replaceRenderer(P){},replaceDataManager(P){J.dm=P},replaceScrollController(P){J.sc=P},getItemsForRange(P){let{dm:d,it:l}=J,J0=[];for(let p=P.start;p<=P.end;p++){let f=d?d.getItem(p):l[p];if(f)J0.push(f)}return J0},getAllLoadedItems(){let P=J.dm;if(P){let d=P.getTotal(),l=[];for(let J0=0;J0<d;J0++){let p=P.getItem(J0);if(p)l.push(p)}return l}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let P=J.hc;return{isCompressed:!1,actualSize:P.getTotalSize(),virtualSize:P.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:R.start,compression:_.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,P]of W)P.remove(),Z.release(P);W.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(P,d){J.rfn=P,J.ffn=d},setVirtualTotalFn(P){J.vtf=P},rebuildSizeCache(P){J.hc.rebuild(P??J.vtf())},setSizeConfig(P){if(J.hc=c0(P,J.vtf()),J.gp>0){let d=J.hc.getTotalSize,l=J.gp;J.hc.getTotalSize=()=>{let J0=d();return J0>0?J0-l:0}}},updateContentSize(P){let d=`${P+J.mp}px`;if(N)j.content.style.width=d;else j.content.style.height=d},updateCompressionMode(){for(let P=0;P<S.length;P++)S[P]()},setVisibleRangeFn(P){J.gvr=P},getVisibleRange(P,d,l,J0){J.gvr(P,d,J.hc,l,J0)},setScrollToPosFn(P){J.gsp=P},getScrollToPos(P,d,l,J0){return J.gsp(P,J.hc,d,l,J0)},setPositionElementFn(P){J.pef=P},setScrollFns(P,d){J.sgt=P,J.sst=(l)=>{d(l),C()}},triggerScrollFrame(){C()},setScrollTarget(P){J.st.removeEventListener("scroll",C),J.st=P,J.st.addEventListener("scroll",C,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(P){J.gcw=P.width,J.gch=P.height,J.cw=P.width(),J.ch=P.height(),_.viewportState.containerSize=N?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,h.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(P){J.sif=P},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(P){J.i2s=P},setUpdateItemClassesFn(P){J.uic=P}}},$2=(J,q,j)=>{let{rendered:Q,itemState:X,applyTemplate:Y,updateContentSize:W}=q,Z=()=>{J.hc.rebuild(J.vtf()),W(),j.updateCompressionMode(),J.ffn()},_=()=>J.it.length;return{getState:()=>({total:_(),cached:_(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:_,getCached:_,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(N)=>J.it[N],isItemLoaded:(N)=>N>=0&&N<_()&&J.it[N]!==void 0,getItemsInRange:(N,K)=>{let S=[];for(let V=Math.max(0,N),M=Math.min(K,_()-1);V<=M;V++)S.push(J.it[V]);return S},setTotal:()=>{},setItems:(N,K=0,S)=>{if(K===0&&(S!==void 0||_()===0))J.it=N;else{let V=K+N.length;if(_()<V)J.it.length=V;for(let M=0;M<N.length;M++)J.it[K+M]=N[M]}if(J.ii)Z()},updateItem:(N,K)=>{let S=J.it;if(N<0||N>=S.length)return!1;let V=S[N];if(!V)return!1;S[N]={...V,...K};let M=Q.get(N);if(M)Y(M,J.at(S[N],N,X)),M.dataset.id=String(S[N].id);return!0},removeItem:(N)=>{let K=typeof N==="number"?N:J.it.findIndex((S)=>S.id===N);if(K<0||K>=J.it.length)return!1;if(J.it.splice(K,1),J.ii)Z();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),W(),J.ffn()}}},b2=(J,q)=>{let{dom:j,classPrefix:Q,onScrollFrame:X}=q;return{getScrollTop:()=>J.sgt(),scrollTo:(Y)=>{J.sst(Y),X()},scrollBy:(Y)=>{let W=J.sgt()+Y;J.sst(W),X()},isAtTop:()=>J.ls<=2,isAtBottom:(Y=2)=>J.sab(Y),getScrollPercentage:()=>{let Y=J.hc.getTotalSize(),W=Math.max(0,Y-J.ch);return W>0?J.ls/W: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:(Y)=>{J.ch=Y},destroy:()=>{}}};var X1=(J,q,j,Q,X=0,Y=0)=>{let W=q.getOffset(J),Z=q.getSize(J),_=W+X,N=_+Z,K=j+Q;if(_<j)return Math.max(0,W);if(N>K)return N+Y-Q;return j},O1=(J,q,j,Q,X=0,Y=0,W,Z,_)=>{if(!(W!=null&&W.isCompressed&&W.ratio!==1))return X1(J,q,j,Q,X,Y);let K=Z,{virtualSize:S}=W,V=q.getSize(Math.max(0,J)),M=Q-X-Y,v=Math.max(1,Math.floor(M/V)),I=S/K;if(_){if(J>=_.start+v){let L=M/V,T=J+1-L;return Math.max(0,T*I)}if(J<=_.start)return Math.max(0,J*I);return j}let E=j/S*K,w=E+v;if(J>=w){let L=M/V,T=J+1-L;return Math.max(0,T*I)}if(J<E)return Math.max(0,J*I);return j};var R2=(J,q,j,Q,X,Y,W,Z,_,N,K,S,V,M)=>{let v=`${j}-item--focused`,I=!1,E=null,w=null,L=null,T=null,C=!1,h=()=>{if(C)return;C=!0,E=_.get("_getNavTotal")??null,w=_.get("_getNavDelta")??null,L=_.get("_navigate")??null,T=_.get("_scrollItemIntoView")??null},R=()=>{return h(),E?E():J.vtf()},u=()=>{return h(),w?w():{ud:1,lr:0,cols:0}};_.set("_getFocusedIndex",()=>I?J.fi:-1);let P=(k,z=!0)=>{if(q.root.setAttribute("aria-activedescendant",`${Q}-item-${k}`),h(),z)if(T)T(k);else{let A=X?J.cw:J.ch,O=J.i2s(k),$=X1(O,J.hc,J.ls,A,Y,W);if($!==J.ls)J.sst($),J.ls=J.sgt()}J.ffn()},d=(k)=>{J.fi=k,I=!0,P(k)},l=(k,z)=>{if(J.fi=k,z||M)I=!0;let A=J.dm?J.dm.getItem(k):J.it[k];if(A&&J.ss.has(A.id))J.ss.clear();else if(J.ss.clear(),A)J.ss.add(A.id);P(k,z)},J0=(k,z,A)=>{let O=k;while(O>=0&&O<A){let $=J.dm?J.dm.getItem(O):J.it[O];if(!$||!$.__groupHeader)return O;O+=z}O=k-z;while(O>=0&&O<A){let $=J.dm?J.dm.getItem(O):J.it[O];if(!$||!$.__groupHeader)return O;O-=z}return k},p=()=>{if(J.id)return;if(!q.root.matches(":focus-visible"))return;let k=R();if(k===0)return;let z=J.fi>=0?Math.min(J.fi,k-1):0;z=J0(z,1,k),d(z)};q.root.addEventListener("focusin",p);let f=(k)=>{if(J.id)return;let z=k.relatedTarget;if(z&&q.root.contains(z))return;if(I=!1,J.fi>=0)N.get(J.fi)?.classList.remove(v);q.root.removeAttribute("aria-activedescendant")};q.root.addEventListener("focusout",f),K.push((k)=>{if(J.id)return;let z=R();if(z===0)return;let A=J.fi,O=A;if(k.key===" "||k.key==="Enter"){if(A>=0){let $=J.dm?J.dm.getItem(A):J.it[A];if($&&!$.__groupHeader)l(A,!0)}k.preventDefault();return}if(h(),L)switch(k.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":O=L(A,k.key,z);break;default:return}else{let{ud:$,lr:m}=u();switch(k.key){case"ArrowUp":O=A-$;break;case"ArrowDown":O=A+$;break;case"ArrowLeft":if(!m)return;O=A-m;break;case"ArrowRight":if(!m)return;O=A+m;break;case"PageUp":case"PageDown":{let o=J.hc.getSize(J.i2s(Math.max(0,A))),i=Math.max($,Math.floor((X?J.cw:J.ch)/o)*$);O=k.key==="PageUp"?A-i:A+i;break}case"Home":O=0;break;case"End":O=z-1;break;default:return}if(O<0)O=Z?z-1:0;else if(O>=z)O=Z?0:z-1}if(k.preventDefault(),O=J0(O,O>=A?1:-1,z),O!==A)d(O)}),S.push((k)=>{if(J.id)return;let z=k.target.closest("[data-index]");if(!z)return;let A=parseInt(z.dataset.index??"-1",10);if(A<0)return;let O=J.dm?.getItem(A)??J.it[A];if(!O||O.__groupHeader)return;I=!1,q.root.focus({preventScroll:!0}),l(A,!1)}),V.push(()=>{q.root.removeEventListener("focusin",p),q.root.removeEventListener("focusout",f)})};var o0=(J,q)=>{let j,Q;return{getSetSize:()=>{if(j===void 0)j=J.get("_getTotal")??null;return j?j():q()},getPosInSet:(X)=>{if(Q===void 0)Q=J.get("_layoutToDataIndex")??null;return Q?Q(X)+1:X+1}}};var z1=200,n0=50;var P2=50,w2=12,y2=2,i0=16000000;var z2="x",C2=20,C1="_isPlaceholder",g0="__placeholder_";var m0=(J,q,j)=>{if(String(j).startsWith(g0))return!1;let Q=g0+q;if(J.has(Q))return J.delete(Q),J.add(j),!0;return!1},v2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),t0=(J,q,j)=>{if(j==="none")return J;let Q=new Set(J.selected);if(j==="single"){if(Q.clear(),q.length>0)Q.add(q[0])}else for(let X of q)Q.add(X);return{...J,selected:Q}},v1=(J,q)=>{let j=new Set(J.selected);for(let Q of q)j.delete(Q);return{...J,selected:j}},e0=(J,q,j)=>{if(j==="none")return J;if(J.selected.has(q))return v1(J,[q]);else return t0(J,[q],j)},S1=(J,q,j)=>{if(j!=="multiple")return J;return{...J,selected:new Set(q.map((Q)=>Q.id))}},f1=(J)=>({...J,selected:new Set}),x0=(J,q)=>{return J.focusedIndex=q,J},A1=(J,q,j=!1,Q=1)=>{if(q===0)return J;let X=J.focusedIndex-Q;if(X<0)X=j?q-1:0;return J.focusedIndex=X,J},E1=(J,q,j=!1,Q=1)=>{if(q===0)return J;let X=J.focusedIndex+Q;if(X>=q)X=j?0:q-1;return J.focusedIndex=X,J},S2=(J,q)=>{if(q===0)return J;return J.focusedIndex=0,J},f2=(J,q)=>{if(q===0)return J;return J.focusedIndex=q-1,J},h1=(J,q,j,Q)=>{if(q===0)return J;let X=Q==="up"?J.focusedIndex-j:J.focusedIndex+j;return X=Math.max(0,Math.min(q-1,X)),J.focusedIndex=X,J};var L1=(J)=>{return Array.from(J.selected)},F1=(J,q)=>{let j=[];for(let Q of J.selected){let X=q(Q);if(X)j.push(X)}return j};var T1=(J,q,j,Q,X)=>{if(X!=="multiple")return J;let Y=Math.min(j,Q),W=Math.max(j,Q),Z=[];for(let _=Y;_<=W;_++){let N=q[_];if(N)Z.push(N.id)}return t0(J,Z,X)};var I1=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,d0=(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}},J1=(J,q)=>{let j=null,Q=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(Y,W,Z)=>{if(Q(),Math.abs(W-Y)<1){J.scrollTo(W);return}let _=performance.now(),N=(K)=>{let S=K-_,V=Math.min(S/Z,1),M=Y+(W-Y)*I1(V);if(J.scrollTo(M),q(),V<1)j=requestAnimationFrame(N);else j=null};j=requestAnimationFrame(N)},cancelScroll:Q}};var h2=(J,q,j,Q,X,Y,W,Z,_,N,K,S,V,M,v,I,E,w,L)=>{let T=(U)=>{{if(!Array.isArray(U)){console.warn("[vlist] setItems() expects an array, got:",typeof U);return}if(U.length>0&&U[0]&&!("id"in U[0]))console.warn('[vlist] Items must have an "id" property. First item:',U[0]);let H=Math.min(U.length,1e4),G=new Set;for(let F=0;F<H;F++){let D=U[F];if(D&&"id"in D){if(G.has(D.id)){console.warn(`[vlist] Duplicate item ID "${D.id}" at index ${F}. updateItem() and removeItem() will only match the first occurrence.`);break}G.add(D.id)}}}$(),_.dataManager.setItems(U,0,U.length)},C=(U)=>{let H=N&&J.sab(2);if(_.dataManager.setItems(U,J.it.length),H&&J.it.length>0){let G=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(G),J.ls=G,J.rfn()}},h=(U)=>{let H=N?J.sgt():0,G=N?J.hc.getTotalSize():0,F=[...J.it];if(_.dataManager.clear(),_.dataManager.setItems([...U,...F],0),N){let D=J.hc.getTotalSize()-G;if(D>0)J.sst(H+D),J.ls=H+D}},R=null,u=null,P=null,d=!1,l=()=>{if(d)return;d=!0,R=Y.get("_updateRenderedItem")??null,u=Y.get("_getSelectedIds")??null,P=Y.get("_getFocusedIndex")??null},J0=(U,H)=>{{let F=J.vtf();if(U<0||U>=F)console.warn(`[vlist] updateItem() index ${U} is out of range (0–${F-1}).`)}if(_.dataManager.updateItem(U,H),l(),!R)return;let G=_.dataManager.getItem(U);if(G){let D=(u?u():J.ss).has(G.id),y=(P?P():J.fi)===U;R(U,G,D,y)}},p=!1,f=(U)=>{let H=typeof document<"u"?document.activeElement:null,G=H&&q.items.contains(H)?parseInt(H.dataset?.index??"-1",10):-1;if(!_.dataManager.removeItem(U))return console.warn(`[vlist] removeItem() could not find item with id "${U}".`),!1;if(j.emit("data:change",{type:"remove",id:U}),_.forceRender(),!p){let D=_.dataManager;if(typeof D.ensureRange==="function")p=!0,queueMicrotask(()=>{p=!1;let y=_.dataManager.getTotal(),{start:g,end:x}=_.state.viewportState.renderRange;if(y>0&&x>=g)D.ensureRange(g,x).catch(()=>{})})}if(G>=0){let D=J.vtf();if(D>0)Q.get(Math.min(G,D-1))?.focus()}return!0},k=(U)=>{return _.dataManager.getItem(U)},z=(U)=>{return _.dataManager.getIndexById?.(U)??-1},A=async(U)=>{if(_.dataManager.reload)await _.dataManager.reload()},O=null,$=()=>{if(O!==null)cancelAnimationFrame(O),O=null},m=(U,H,G,F)=>{if($(),Math.abs(H-U)<1){J.sst(H),J.ls=H,J.rfn();return}let D=performance.now(),y=(g)=>{let x=g-D,t=Math.min(x/G,1),X0=F?F():H,s=U+(X0-U)*I1(t);if(J.sst(s),J.ls=s,J.rfn(),t<1)O=requestAnimationFrame(y);else O=null};O=requestAnimationFrame(y)},o=(U,H)=>{{let t=J.vtf();if(t>0&&(U<0||U>=t))console.warn(`[vlist] scrollToIndex(${U}) is out of range (0–${t-1}).`)}let{align:G,behavior:F,duration:D}=d0(H),y=J.vtf(),g=U;if(K&&y>0)g=(g%y+y)%y;let x=J.gsp(g,J.hc,J.ch,y,G);if(F==="smooth"){let t=g,X0=G;m(J.sgt(),x,D,()=>J.gsp(t,J.hc,J.ch,J.vtf(),X0))}else $(),J.sst(x)},i=()=>J.sgt(),r=(U,H)=>{return j.on(U,H)},a=(U,H)=>{j.off(U,H)},Q0=()=>{if(J.id)return;if(J.id=!0,_.state.isDestroyed=!0,q.items.removeEventListener("click",S),q.items.removeEventListener("dblclick",V),q.items.removeEventListener("contextmenu",M),q.root.removeEventListener("keydown",v),J.st.removeEventListener("scroll",I),E.disconnect(),w(),J.wh)q.viewport.removeEventListener("wheel",J.wh);L();let U=[];for(let H=0;H<Z.length;H++)try{Z[H]()}catch(G){U.push(G instanceof Error?G:Error(String(G)))}for(let H of W)if(H.destroy)try{H.destroy()}catch(G){U.push(G instanceof Error?G:Error(String(G)))}$();for(let[,H]of Q)H.remove(),X.release(H);Q.clear(),X.clear(),j.emit("destroy",void 0);for(let H of U)j.emit("error",{error:H,context:"destroy"});j.clear(),q.root.remove()},B=(U,H)=>Y.has(U)?Y.get(U):H,b={get element(){return q.root},get items(){let U=Y.get("_getItems");return U?U():J.it},get total(){let U=Y.get("_getTotal");return U?U():J.vtf()},setItems:B("setItems",T),appendItems:B("appendItems",C),prependItems:B("prependItems",h),updateItem:B("updateItem",J0),removeItem(U){let H=Y.get("removeItem");return H?H(U):f(U)},reload:B("reload",A),getItemAt:k,getIndexById:z,scrollToIndex:B("scrollToIndex",o),cancelScroll:B("cancelScroll",$),getScrollPosition:B("getScrollPosition",i),on:r,off:a,destroy:Q0};for(let[U,H]of Y){if(U.charCodeAt(0)===95||U==="setItems"||U==="appendItems"||U==="prependItems"||U==="updateItem"||U==="removeItem"||U==="reload"||U==="scrollToIndex"||U==="scrollToItem"||U==="cancelScroll"||U==="getScrollPosition")continue;b[U]=H}return b};var EJ=3,LJ="vlist",FJ=150,TJ=16000000,HJ=4096,kJ=(J)=>(typeof screen<"u"?J?screen.width:screen.height:0)||HJ,$J=0,p1=(J)=>{if(!J.container)throw Error("[vlist] Container is required");if(!J.item)throw Error("[vlist] item configuration is required");let q=J.orientation==="horizontal",j=q?"width":"height",Q=q?"estimatedWidth":"estimatedHeight",X=q?J.item.width:J.item.height,Y=q?J.item.estimatedWidth:J.item.estimatedHeight;if(X==null&&Y==null)throw Error(`[vlist] item.${j} or item.${Q} is required${q?" 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(Y!=null){if(typeof Y!=="number"||Y<=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 W=new Map,Z=!1,_={use(N){if(Z)throw Error("[vlist] Cannot call .use() after .build()");return W.set(N.name,N),_},build(){if(Z)throw Error("[vlist] .build() can only be called once");return Z=!0,bJ(J,W,q,X,Y??null)}};return _};function bJ(J,q,j,Q,X){let{item:Y,items:W,overscan:Z=EJ,classPrefix:_=LJ,ariaLabel:N,padding:K,reverse:S=!1,scroll:V,accessible:M,interactive:v}=J,I=v??M??!0,E=V,w=E?.wheel??!0,L=E?.wrap??!1,T=S,C=`${_}-${$J++}`,h=q.has("withGrid")||q.has("withMasonry")?0:Y.gap??0,R=Q??X,u=Q==null&&X!=null,P=j?typeof Y.height==="number"?Y.height:void 0:typeof Y.width==="number"?Y.width:void 0,d={overscan:Z,classPrefix:_,reverse:T,wrap:L,horizontal:j,ariaIdPrefix:C,interactive:I},l=kJ(j),J0=Array.from(q.values()).sort((c,q0)=>(c.priority??50)-(q0.priority??50)),p=new Set(J0.map((c)=>c.name));for(let c of J0)if(c.conflicts){for(let q0 of c.conflicts)if(p.has(q0))throw Error(`[vlist] ${c.name} and ${q0} cannot be combined`)}if(T){if(p.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let f=A2(J.container),k=E2(f,_,N,j,I);if(E?.wheel===!1)if(j)k.viewport.style.overflowX="hidden";else k.viewport.style.overflow="hidden";if(E?.scrollbar==="none")k.viewport.classList.add(`${_}-viewport--no-scrollbar`);if(E?.gutter==="stable")k.viewport.classList.add(`${_}-viewport--gutter-stable`);let z=p.has("withGrid")||p.has("withMasonry");if(j&&P!=null&&E?.scrollbar!=="none"&&!z){k.root.style.height=`${P}px`;let c=k.viewport.style.overflowX;k.viewport.style.overflowX="scroll";let q0=k.viewport.offsetHeight-k.viewport.clientHeight;if(k.viewport.style.overflowX=c,q0>0)k.root.style.height=`${P+q0}px`}let A=S0(K),O=s0(A,j);if(A.top||A.right||A.bottom||A.left)k.content.style.boxSizing="border-box",k.content.style.padding=`${A.top}px ${A.right}px ${A.bottom}px ${A.left}px`;let $=O2(),m=W||[],o=typeof R==="function"&&(q.has("withGrid")||q.has("withMasonry")),i=h>0?typeof R==="function"?(c)=>R(c)+h:R+h:R,r=u?X+h:i,a=c0(r,o?0:m.length);if(h>0){let c=a.getTotalSize;a.getTotalSize=()=>{let q0=c();return q0>0?q0-h:0}}let Q0=L2(),B={it:m,hc:a,ch:Math.min(k.viewport.clientHeight,l),cw:Math.min(k.viewport.clientWidth,l),id:!1,ii:!1,ls:0,vt:D2(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>k.viewport.scrollLeft:()=>k.viewport.scrollTop,sst:j?(c)=>{k.viewport.scrollLeft=c}:(c)=>{k.viewport.scrollTop=c},sab:(c=2)=>{let q0=B.hc.getTotalSize();return B.ls+B.ch>=q0-c},sic:!1,rfn:null,ffn:null,gvr:(c,q0,j0,L0,w0)=>{F2(c,q0,j0,L0,w0)},gsp:(c,q0,j0,L0,w0)=>{return H2(c,q0,j0,L0,w0,B.mp)},pef:null,at:Y.template,vre:!0,st:k.viewport,wh:null,gcw:()=>B.cw,gch:()=>B.ch,gp:h,mp:O,sif:(c)=>c,i2s:(c)=>c,uic:(c,q0,j0)=>{let L0=g.get(c);if(!L0)return;W0(L0,q0,j0)},csi:null};B.vtf=()=>B.dm?B.dm.getTotal():B.it.length;let b=null,U=!1,H={start:0,end:0},G={start:0,end:0},F={start:-1,end:-1},D={viewportState:{scrollPosition:0,containerSize:j?B.cw:B.ch,totalSize:B.hc.getTotalSize(),actualSize:B.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},y=()=>({...D.viewportState,totalItems:B.vtf()}),g=new Map,x=()=>{a0(k.items,g.keys(),(c)=>g.get(c))},t=()=>{let c=B.hc.getTotalSize(),j0=`${(B.sic?c:Math.min(c,TJ))+O}px`;if(j)k.content.style.width=j0;else k.content.style.height=j0},X0={selected:!1,focused:!1},s=`${_}-item`,e=`${_}-group-header`,Y0=`${_}-item--selected`,N0=`${_}-item--focused`,W0=(c,q0,j0)=>{c.classList.toggle(Y0,q0),c.classList.toggle(N0,j0),c.ariaSelected=q0?"true":"false"},O0=Y.striped,F0=!!O0,R0=O0==="data"||O0==="even"||O0==="odd",B0=`${_}-item--odd`,V0=`${_}-item--placeholder`,k0=`${_}-item--replaced`,_0=`${_}--scrolling`,G0=[],M0=[],$0=[],b0=[],C0=[],z0=[],n=[],U0=[],Z0=[],K0=new Map,D0="__placeholder_",A0={scrollPosition:0,direction:"down"},T0={velocity:0,reliable:!1},E0={range:{start:0,end:0}},h0=null,f0=null,q2=!1,K1=!1,ZJ=()=>{if(q2)return;q2=!0,h0=K0.get("_getSelectedIds")??null,f0=K0.get("_getFocusedIndex")??null},N1=o0(K0,B.vtf),W1=(c,q0,j0)=>{if(!q0)console.warn(`[vlist] Template returned falsy value${j0!==void 0?` for item at index ${j0}`:""}. The element will render as blank.`);else if(typeof q0==="string"&&q0==="")console.warn(`[vlist] Template returned empty string${j0!==void 0?` for item at index ${j0}`:""}. The element will render as blank.`);if(typeof q0==="string")c.innerHTML=q0;else c.replaceChildren(q0)},KJ=(c,q0)=>{let j0=Math.round(B.hc.getOffset(q0));if(j)c.style.transform=`translateX(${j0}px)`;else c.style.transform=`translateY(${j0}px)`};B.pef=KJ;let NJ=(c,q0)=>{let j0=Q0.acquire(),L0=!!q0.__groupHeader;j0.className=L0?e:s;let w0=!B.csi||B.csi(c);if(j){if(w0)j0.style.width=`${B.hc.getSize(c)-h}px`;else j0.style.width="";if(P!=null)j0.style.height=`${P}px`}else if(w0)j0.style.height=`${B.hc.getSize(c)-h}px`;else j0.style.height="";if(j0.dataset.index=String(c),j0.dataset.id=String(q0.id),L0)j0.setAttribute("role","presentation"),j0.removeAttribute("aria-selected"),j0.removeAttribute("aria-setsize"),j0.removeAttribute("aria-posinset"),j0.removeAttribute("id");else j0.setAttribute("role","option"),j0.ariaSelected="false",j0.id=`${C}-item-${c}`,B.la=String(N1.getSetSize()),j0.setAttribute("aria-setsize",B.la),j0.setAttribute("aria-posinset",String(N1.getPosInSet(c)));if(String(q0.id).startsWith(D0))j0.classList.add(V0);if(F0)if(R0){let P0=B.sif(c);if(P0<0)j0.classList.remove(B0);else j0.classList.toggle(B0,(P0&1)===1)}else j0.classList.toggle(B0,(c&1)===1);try{W1(j0,B.at(q0,c,X0),c)}catch(P0){let u0=P0 instanceof Error?P0:Error(String(P0));$.emit("error",{error:u0,context:`tpl(${c},${q0.id})`,viewport:y()}),j0.textContent=""}return B.pef(j0,c),j0},B1=NaN,WJ=()=>{if(B.id)return;let c=j?B.cw:B.ch;if(c<=0)return;ZJ();let q0=h0?h0():B.ss,j0=f0?f0():B.fi,L0=B.vtf();B.gvr(B.ls,c,B.hc,L0,H),T2(H,Z,L0,G);let w0=G.end-G.start+1,I0=B.hc.getSize(0)||1,P0=Math.ceil(l/I0)+Z*2;if(w0>P0){if(!K1)K1=!0,console.warn(`[vlist] Render range capped: ${w0} items → ${P0}. Container is ${c}px tall (item: ${I0}px). This usually means the container has no CSS height constraint.`);G.end=G.start+P0-1}if(G.start===F.start&&G.end===F.end){if(B.sic&&B.ls!==B1){B1=B.ls;for(let[H0,v0]of g)B.pef(v0,H0)}D.viewportState.scrollPosition=B.ls,D.viewportState.containerSize=c,D.viewportState.visibleRange.start=H.start,D.viewportState.visibleRange.end=H.end,D.viewportState.renderRange.start=G.start,D.viewportState.renderRange.end=G.end;return}let u0=String(N1.getSetSize()),DJ=u0!==B.la;B.la=u0;for(let[H0,v0]of g)if(H0<G.start||H0>G.end)v0.remove(),Q0.release(v0),g.delete(H0);let N2=document.createDocumentFragment(),W2=!1,j1=U0.length>0?[]:null;for(let H0=G.start;H0<=G.end;H0++){let v0=B.dm?B.dm.getItem(H0):B.it[H0];if(v0===void 0)continue;let y0=g.get(H0);if(y0){let l0=y0.dataset.id,r0=String(v0.id);if(l0!==r0){let GJ=l0?.startsWith(D0),w1=r0.startsWith(D0),B2=!!v0.__groupHeader;if(y0.className=B2?e:s,B2)y0.setAttribute("role","presentation"),y0.removeAttribute("aria-selected"),y0.removeAttribute("aria-setsize"),y0.removeAttribute("aria-posinset"),y0.removeAttribute("id");else y0.setAttribute("role","option"),y0.id=`${C}-item-${H0}`,y0.setAttribute("aria-posinset",String(N1.getPosInSet(H0)));try{W1(y0,B.at(v0,H0,X0),H0)}catch(y1){let MJ=y1 instanceof Error?y1:Error(String(y1));$.emit("error",{error:MJ,context:`tpl(${H0},${v0.id})`,viewport:y()}),y0.textContent=""}y0.dataset.id=r0;let _2=!B.csi||B.csi(H0);if(j)y0.style.width=_2?`${B.hc.getSize(H0)-h}px`:"";else y0.style.height=_2?`${B.hc.getSize(H0)-h}px`:"";if(w1)y0.classList.add(V0);else y0.classList.remove(V0);if(GJ&&!w1)y0.classList.add(k0),setTimeout(()=>{y0.classList.remove(k0)},300);if(B.dm&&!w1)m0(q0,H0,v0.id)}B.pef(y0,H0);let D1=q0.has(v0.id);if(W0(y0,D1,H0===j0),DJ&&!v0.__groupHeader)y0.setAttribute("aria-setsize",B.la)}else{let l0=NJ(H0,v0);if(j1)j1.push({index:H0,element:l0});if(B.dm)m0(q0,H0,v0.id);let r0=q0.has(v0.id),D1=H0===j0;if(r0||D1)W0(l0,r0,D1);N2.appendChild(l0),g.set(H0,l0),W2=!0}}if(W2)k.items.appendChild(N2);if(j1&&j1.length>0)for(let H0=0;H0<U0.length;H0++)U0[H0](j1);F.start=G.start,F.end=G.end,B1=B.ls,D.lastRenderRange.start=G.start,D.lastRenderRange.end=G.end,D.viewportState.scrollPosition=B.ls,D.viewportState.visibleRange.start=H.start,D.viewportState.visibleRange.end=H.end,D.viewportState.renderRange.start=G.start,D.viewportState.renderRange.end=G.end,E0.range.start=G.start,E0.range.end=G.end,$.emit("range:change",E0)},BJ=()=>{F.start=-1,F.end=-1,B1=NaN,B.rfn()};B.rfn=WJ,B.ffn=BJ;let _J=()=>{k.root.classList.remove(_0),U=!1,B.vt.velocity=0,B.vt.sampleCount=0,T0.velocity=0,T0.reliable=!1,$.emit("velocity:change",T0),x();for(let c=0;c<M0.length;c++)M0[c]();$.emit("scroll:idle",{scrollPosition:B.ls})},VJ=()=>{if(b)clearTimeout(b);b=setTimeout(_J,E?.idleTimeout??FJ)},q1=()=>{if(B.id)return;let c=B.sgt();if(c===B.ls&&U)return;let q0=c>=B.ls?"down":"up";if(B.vt=G2(B.vt,c),!k.root.classList.contains(_0))k.root.classList.add(_0);U=!0,B.ls=c,B.rfn(),A0.scrollPosition=c,A0.direction=q0,$.emit("scroll",A0),T0.velocity=B.vt.velocity,T0.reliable=B.vt.sampleCount>=V2,$.emit("velocity:change",T0);for(let j0=0;j0<G0.length;j0++)G0[j0](c,q0);VJ()},_1=null;if(B.st.addEventListener("scroll",q1,{passive:!0}),w){let c=k.viewport;if(j)_1=(q0)=>{if(D.viewportState.isCompressed)return;if(Math.abs(q0.deltaX)>Math.abs(q0.deltaY))return;let j0=B.sgt(),L0=c.scrollWidth-c.clientWidth,w0=Math.max(0,Math.min(j0+q0.deltaY,L0));if(Math.abs(w0-j0)<1)return;q0.preventDefault(),B.sst(w0),q1()};else _1=(q0)=>{if(D.viewportState.isCompressed)return;let j0=c.scrollWidth>c.clientWidth;if(j0&&Math.abs(q0.deltaX)>Math.abs(q0.deltaY))return;if(j0&&q0.deltaX!==0)q0.preventDefault(),c.scrollLeft+=q0.deltaX;let L0=B.sgt(),w0=c.scrollHeight-c.clientHeight,I0=Math.max(0,Math.min(L0+q0.deltaY,w0));if(Math.abs(I0-L0)<1)return;q0.preventDefault(),B.sst(I0),q1()};B.wh=_1,c.addEventListener("wheel",_1,{passive:!1})}let b1=(c)=>{let q0=c.target.closest("[data-index]");if(!q0)return null;let j0=parseInt(q0.dataset.index??"-1",10);if(j0<0)return null;let L0=B.dm?.getItem(j0)??B.it[j0];if(!L0||L0.__groupHeader)return null;return{item:L0,index:j0}},j2=(c)=>{for(let j0=0;j0<$0.length;j0++)$0[j0](c);let q0=b1(c);if(q0)$.emit("item:click",{item:q0.item,index:q0.index,event:c})},Y2=(c)=>{let q0=b1(c);if(q0)$.emit("item:dblclick",{item:q0.item,index:q0.index,event:c})},X2=(c)=>{for(let j0=0;j0<b0.length;j0++)b0[j0](c);let q0=b1(c);if(q0)$.emit("item:contextmenu",{item:q0.item,index:q0.index,event:c})},U2=(c)=>{for(let q0=0;q0<C0.length;q0++)C0[q0](c)};if(k.items.addEventListener("click",j2),k.items.addEventListener("dblclick",Y2),k.items.addEventListener("contextmenu",X2),k.root.addEventListener("keydown",U2),I){let c=null,q0=(j0)=>{if(c)clearTimeout(c);c=setTimeout(()=>{if(c=null,B.id)return;let L0=B.vtf();k.liveRegion.textContent=`Showing items ${j0.range.start+1} to ${Math.min(j0.range.end+1,L0)} of ${L0}`},300)};$.on("range:change",q0),Z0.push(()=>{if(c)clearTimeout(c);$.off("range:change",q0)})}let R1=new ResizeObserver((c)=>{if(B.id)return;for(let q0 of c){let j0=q0.contentRect.height,L0=q0.contentRect.width,w0=j?L0:j0,I0=j?B.cw:B.ch;if(w0>l){if(!K1)K1=!0,console.warn(`[vlist] Viewport grew to ${Math.round(w0)}px (screen: ${l}px). Re-applying size constraint. Check that the vlist container has a CSS height/width constraint.`);let P0=j?"width":"height";k.root.style[P0]="100%",k.viewport.style[P0]="100%";return}if(B.cw=L0,B.ch=j0,Math.abs(w0-I0)>1){if(D.viewportState.containerSize=w0,B.ii){let P0=D.cachedCompression;if(P0&&P0.state.isCompressed){let u0=`${P0.state.virtualSize+O}px`;if(j)k.content.style.width=u0;else k.content.style.height=u0}else t();B.rfn(),$.emit("resize",{height:j0,width:L0})}}if(B.ii)for(let P0=0;P0<z0.length;P0++)z0[P0](L0,j0)}});if(B.vre)R1.observe(k.viewport);let P1={dom:k,emitter:$,resolvedConfig:d,rawConfig:J,rendered:g,pool:Q0,itemState:X0,sharedState:D,renderRange:G,isHorizontal:j,classPrefix:_,contentSizeHandlers:n,idleHandlers:M0,afterScroll:G0,clickHandlers:$0,contextMenuHandlers:b0,keydownHandlers:C0,resizeHandlers:z0,destroyHandlers:Z0,methods:K0,onScrollFrame:q1,resizeObserver:R1,afterRenderBatch:U0,applyTemplate:W1,updateContentSize:t},V1=k2(B,P1);B.dm=$2(B,P1,V1),B.sc=b2(B,P1),K0.set("_updateRenderedItem",(c,q0,j0,L0)=>{let w0=g.get(c);if(!w0)return;let I0={selected:j0,focused:L0};try{let P0=B.at(q0,c,I0);W1(w0,P0,c)}catch(P0){let u0=P0 instanceof Error?P0:Error(String(P0));$.emit("error",{error:u0,context:`tpl(${c},${q0.id})`,viewport:y()})}w0.dataset.id=String(q0.id),W0(w0,j0,L0)});let Z2=new WeakSet;K0.set("_setSizeCache",(c)=>{if(B.hc=c,B.gp>0&&!Z2.has(c)){Z2.add(c);let q0=B.hc.getTotalSize,j0=B.gp;B.hc.getTotalSize=()=>{let L0=q0();return L0>0?L0-j0:0}}}),K0.set("_setConstrainSize",(c)=>{B.csi=c});let K2=new Map;for(let c of J0)if(c.methods)for(let q0 of c.methods){let j0=K2.get(q0);if(j0)throw Error(`[vlist] Method "${q0}" is registered by both "${j0}" and "${c.name}"`);K2.set(q0,c.name)}for(let c of J0)try{c.setup(V1)}catch(q0){let j0=q0 instanceof Error?q0:Error(String(q0));console.error(`[vlist] Feature "${c.name}" setup failed:`,j0),$.emit("error",{error:j0,context:c.name,viewport:y()})}if(u&&!q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(I&&!K0.has("_getFocusedIndex")){let c=j?A.left:A.top,q0=j?A.right:A.bottom;R2(B,k,_,C,j,c,q0,L,K0,g,C0,$0,Z0,!!J.focusOnClick)}if(B.ii=!0,V1.state.isInitialized=!0,t(),B.rfn(),T&&B.it.length>0){let c=B.gsp(B.it.length-1,B.hc,B.ch,B.it.length,"end");B.sst(c),B.ls=c,B.rfn()}return h2(B,k,$,g,Q0,K0,J0,Z0,V1,T,L,j2,Y2,X2,U2,q1,R1,()=>{},()=>{if(b)clearTimeout(b)})}var I2=(J,q,j)=>{let Q=q.getTotalSize(),X=j===!0||Q>i0,Y=Q>i0?i0:Q,W=Q>0?Y/Q:1;return{isCompressed:X,actualSize:Q,virtualSize:Y,ratio:W}},p2=(J,q,j,Q,X,Y)=>{if(Q===0||q===0)return Y.start=0,Y.end=-1,Y;if(!X.isCompressed||X.ratio===1){let M=j.indexAtOffset(J),v=j.indexAtOffset(J+q);if(v<Q-1)v++;return Y.start=Math.max(0,M),Y.end=Math.min(Q-1,Math.max(0,v)),Y}let{virtualSize:W}=X,Z=J/W,_=j.getTotalSize(),N=Z*_,K=j.indexAtOffset(N),S=M2(j,Math.max(0,K),q,Q),V=K+S;return Y.start=Math.max(0,K),Y.end=Math.min(Q-1,Math.max(0,V)),Y};var Q1=(J,q,j,Q,X,Y,W)=>{if(!Y.isCompressed||Q===0)return j.getOffset(J);if(Y.ratio===1)return j.getOffset(J)-q;let{virtualSize:Z}=Y,_=q/Z,N=j.getTotalSize(),K=_*N;return j.getOffset(J)-K},u2=(J,q,j,Q,X,Y="start")=>{if(Q===0)return 0;let W;if(X.isCompressed&&X.ratio!==1){W=J/Q*X.virtualSize;let K=q.getSize(J);switch(Y){case"center":W-=(j-K)/2*X.ratio;break;case"end":W-=(j-K)*X.ratio;break}return Math.max(0,W)}W=q.getOffset(J);let Z=q.getSize(J);switch(Y){case"center":W-=(j-Z)/2;break;case"end":W-=j-Z;break}let _=X.virtualSize-j;return Math.max(0,Math.min(W,_))};var RJ=(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}},U1=(J,q,j={},Q="vlist",X=!1)=>{let{autoHide:Y=!0,autoHideDelay:W=1000,minThumbSize:Z=15,showOnHover:_=!0,showOnViewportEnter:N=!0,clickBehavior:K="scroll"}=j,S=K==="page"?"scroll":K,V=RJ(j.padding),M=X?V.left:V.top,v=X?V.right:V.bottom,I=X?V.bottom:V.right,E=j.hoverZoneWidth??I+16,w=0,L=0,T=0,C=0,h=!1,R=!1,u=0,P=0,d=0,l=null,J0=!1,p=null,f=null,k=0,z=0,A=null,O=null,$=null,m=X?"width":"height",o=X?"translateX":"translateY",i=X?(_0)=>_0.clientX:(_0)=>_0.clientY,r=X?"left":"top",a=document.createElement("div"),Q0=document.createElement("div"),B=document.createElement("div"),b=()=>{if(a.className=`${Q}-scrollbar`,Q0.className=`${Q}-scrollbar-thumb`,X)a.classList.add(`${Q}-scrollbar--horizontal`);if(j.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${V.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${V.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${V.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${V.left}px`);if(j.minThumbSize!==void 0)a.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${Z}px`);if(a.appendChild(Q0),J.appendChild(a),B.className=`${Q}-scrollbar-hover`,X)B.classList.add(`${Q}-scrollbar-hover--horizontal`),B.style.height=`${E}px`;else B.style.width=`${E}px`;J.appendChild(B)},U=()=>{if(l)clearTimeout(l),l=null},H=()=>{if(!Y)return;U(),l=setTimeout(F,W)},G=()=>{if(w<=L)return;if(U(),!J0)a.classList.add(`${Q}-scrollbar--visible`),J0=!0;if(Y&&!h&&!R)H()},F=()=>{if(h||R)return;a.classList.remove(`${Q}-scrollbar--visible`),J0=!1},D=(_0,G0)=>{w=_0,L=G0;let M0=w>L;if(a.style.display=M0?"":"none",!M0){F();return}let $0=Math.max(0,L-M-v),b0=L/w;if(T=Math.max(Z,b0*$0),Q0.style[m]=`${T}px`,C=$0-T,y(d),!Y)G()},y=(_0)=>{if(d=_0,w<=L||C<=0)return;let G0=w-L,$0=Math.min(1,Math.max(0,_0/G0))*C;Q0.style.transform=`${o}(${$0}px)`},g=(_0)=>{if(_0.target===Q0||S!=="jump"||C<=0)return;let G0=w-L,M0=a.getBoundingClientRect(),$0=i(_0)-M0[r],b0=Math.max(0,Math.min($0-T/2,C));q(b0/C*G0),G()},x=()=>{if(A!==null)clearTimeout(A),A=null;if(O!==null)cancelAnimationFrame(O),O=null;$=null},t=(_0)=>{let G0=C>0?z/_0*C:0;if(k<G0)return-1;if(k>=G0+T)return 1;return 0},X0=()=>{let _0=w-L,G0=t(_0);if(G0===0){x();return}if(G0===-1){if(z<=0){x();return}let M0=Math.max(0,z-L);z=M0,q(M0)}else{if(z>=_0){x();return}let M0=Math.min(_0,z+L);z=M0,q(M0)}G()},s=(_0)=>{if($===null){$=_0,O=requestAnimationFrame(s);return}let G0=w-L,M0=_0-$;$=_0;let $0=t(G0);if($0===0){x();return}let b0=12*L/1000,C0=Math.min(b0*M0,L);if($0===-1){if(z<=0){x();return}let z0=Math.max(0,z-C0);z=z0,q(z0)}else{if(z>=G0){x();return}let z0=Math.min(G0,z+C0);z=z0,q(z0)}U(),O=requestAnimationFrame(s)},e=()=>{x(),H(),document.removeEventListener("mouseup",e)},Y0=(_0)=>{if(_0.target===Q0||S!=="scroll")return;_0.preventDefault();let G0=a.getBoundingClientRect();k=i(_0)-G0[r],z=d,X0(),A=setTimeout(()=>{O=requestAnimationFrame(s)},350),document.addEventListener("mouseup",e)},N0=(_0)=>{_0.preventDefault(),_0.stopPropagation(),h=!0,u=i(_0),P=d,U(),a.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",W0),document.addEventListener("mouseup",O0)},W0=(_0)=>{if(!h)return;let G0=i(_0)-u,M0=C>0?G0/C:0,$0=w-L,b0=M0*$0,C0=Math.max(0,Math.min(P+b0,$0)),n=C0/$0*C;if(Q0.style.transform=`${o}(${n}px)`,f=C0,p===null)p=requestAnimationFrame(()=>{if(f!==null)q(f);p=null})},O0=()=>{if(h=!1,p!==null)cancelAnimationFrame(p),p=null;if(f!==null)q(f),f=null;if(a.classList.remove(`${Q}-scrollbar--dragging`),Y&&!R)H();document.removeEventListener("mousemove",W0),document.removeEventListener("mouseup",O0)},F0=()=>{if(N)G()},R0=()=>{if(!h){if(R=!1,Y)H()}},B0=()=>{R=!0,U(),G()},V0=()=>{if(R=!1,!h&&Y)H()},k0=()=>{if(U(),x(),p!==null)cancelAnimationFrame(p),p=null;if(a.removeEventListener("click",g),a.removeEventListener("mousedown",Y0),a.removeEventListener("mouseenter",B0),document.removeEventListener("mouseup",e),a.removeEventListener("mouseleave",V0),Q0.removeEventListener("mousedown",N0),J.removeEventListener("mouseenter",F0),J.removeEventListener("mouseleave",R0),document.removeEventListener("mousemove",W0),document.removeEventListener("mouseup",O0),B.removeEventListener("click",g),B.removeEventListener("mousedown",Y0),_)B.removeEventListener("mouseenter",B0),B.removeEventListener("mouseleave",V0);if(B.parentNode)B.parentNode.removeChild(B);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"),a.parentNode)a.parentNode.removeChild(a)};if(b(),a.addEventListener("click",g),a.addEventListener("mousedown",Y0),a.addEventListener("mouseenter",B0),a.addEventListener("mouseleave",V0),Q0.addEventListener("mousedown",N0),J.addEventListener("mouseenter",F0),J.addEventListener("mouseleave",R0),B.addEventListener("click",g),B.addEventListener("mousedown",Y0),_)B.addEventListener("mouseenter",B0),B.addEventListener("mouseleave",V0);return{show:G,hide:F,updateBounds:D,updatePosition:y,isVisible:()=>J0,destroy:k0}};var u1=(J)=>{let q=null;return{name:"withScrollbar",priority:15,setup(j){let{dom:Q,config:X}=j,{classPrefix:Y,horizontal:W}=X;if(q=U1(Q.viewport,(_)=>j.scrollController.scrollTo(_),J??{},Y,W),!Q.viewport.classList.contains(`${Y}-viewport--custom-scrollbar`))Q.viewport.classList.add(`${Y}-viewport--custom-scrollbar`);if(J?.gutter)Q.viewport.classList.add(`${Y}-viewport--gutter`);q.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize);let Z=q;j.afterScroll.push((_,N)=>{Z.updatePosition(_),Z.show()}),j.resizeHandlers.push((_,N)=>{if(Z)Z.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.contentSizeHandlers.push(()=>{if(Z)Z.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.destroyHandlers.push(()=>{if(Z)Z.destroy()})},destroy(){if(q)q.destroy(),q=null}}};var PJ=0.65,wJ=0.5,g2=1.7,yJ=0.95,zJ=0.1,CJ=5,vJ=100,m2=(J,q,j,Q=0)=>{if(J<=0)return 0;let X=q-Q;return Math.max(0,X*(1-j)+Q)},g1=(J)=>{let q=J?.force??!1,j=null,Q=0,X=!1,Y=0,W=0,Z=null,_=0,N=0,K=null,S=[];return{name:"withScale",priority:20,setup(V){let{dom:M,config:v}=V,{classPrefix:I,horizontal:E}=v,w=S0(V.rawConfig.padding),L=E?w.left+w.right:w.top+w.bottom,T=()=>{let p=V.getVirtualTotal(),f=I2(p,V.sizeCache,q);if(f.isCompressed&&!X){X=!0,V.scrollController.enableCompression(f);let z=E?M.viewport.scrollLeft:M.viewport.scrollTop;if(E)M.viewport.style.overflowX="hidden";else M.viewport.style.overflow="hidden";if(E)M.viewport.scrollLeft=0;else M.viewport.scrollTop=0;if(z>0)Q=z,W=z;Y=m2(f.virtualSize,V.state.viewportState.containerSize,f.ratio,L),V.updateContentSize(f.virtualSize+Y),V.setScrollFns(()=>Q,(B)=>{if(Q=B,W=B,Z!==null)cancelAnimationFrame(Z),Z=null});let A=()=>{let B=W-Q;if(V.getVirtualTotal()===0){Q=0,W=0,Z=null,V.triggerScrollFrame();return}if(Math.abs(B)<wJ){let b=V.getCachedCompression(),U=Math.max(0,b.virtualSize+Y-V.state.viewportState.containerSize);Q=Math.max(0,Math.min(W,U)),W=Q,Z=null}else{Q+=B*PJ;let U=V.getCachedCompression().virtualSize+Y-V.state.viewportState.containerSize;Q=Math.max(0,Math.min(Q,U)),Z=requestAnimationFrame(A)}V.triggerScrollFrame()},O=M.viewport,$=(B)=>{B.preventDefault();let b=V.getCachedCompression(),U=b.virtualSize+Y-V.state.viewportState.containerSize;if(W=Math.max(0,Math.min(W+B.deltaY*b.ratio*g2,U)),Z===null)Z=requestAnimationFrame(A)};O.addEventListener("wheel",$,{passive:!1});let m=()=>{if(K!==null)cancelAnimationFrame(K),K=null},o=(B)=>{if(m(),Z!==null)cancelAnimationFrame(Z),Z=null;let b=B.touches[0];if(!b)return;let U=E?b.clientX:b.clientY;_=U,N=Q,S=[{time:performance.now(),y:U}]},i=(B)=>{B.preventDefault();let b=B.touches[0];if(!b)return;let U=E?b.clientX:b.clientY,H=performance.now();if(S.push({time:H,y:U}),S.length>CJ)S.shift();let G=_-U,F=V.getCachedCompression(),D=F.virtualSize+Y-V.state.viewportState.containerSize,y=Math.max(0,Math.min(N+G*F.ratio*g2,D));Q=y,W=y,V.triggerScrollFrame()},r=(B)=>{let b=performance.now(),U=S.filter((D)=>b-D.time<vJ),H=0;if(U.length>=2){let D=U[0],y=U[U.length-1],g=y.time-D.time;if(g>0)H=(D.y-y.y)/g}if(S=[],Math.abs(H)<zJ)return;let G=H*16,F=()=>{if(G*=yJ,Math.abs(G)<0.5){K=null;return}let y=V.getCachedCompression().virtualSize+Y-V.state.viewportState.containerSize,g=Q+G;if(g=Math.max(0,Math.min(g,y)),g<=0&&G<0||g>=y&&G>0){Q=g,W=g,V.triggerScrollFrame(),K=null;return}Q=g,W=g,V.triggerScrollFrame(),K=requestAnimationFrame(F)};K=requestAnimationFrame(F)};O.addEventListener("touchstart",o,{passive:!0}),O.addEventListener("touchmove",i,{passive:!1}),O.addEventListener("touchend",r,{passive:!0}),O.addEventListener("touchcancel",r,{passive:!0}),V.destroyHandlers.push(()=>{O.removeEventListener("wheel",$),O.removeEventListener("touchstart",o),O.removeEventListener("touchmove",i),O.removeEventListener("touchend",r),O.removeEventListener("touchcancel",r)});let a=M.viewport.querySelector(`.${I}-scrollbar`),Q0=()=>{if((E?M.viewport.scrollLeft:M.viewport.scrollTop)!==0)if(E)M.viewport.scrollLeft=0;else M.viewport.scrollTop=0};if(O.addEventListener("scroll",Q0,{passive:!0}),V.destroyHandlers.push(()=>{O.removeEventListener("scroll",Q0)}),!a){if(j=U1(M.viewport,(b)=>V.scrollController.scrollTo(b),{},I,E),!M.viewport.classList.contains(`${I}-viewport--custom-scrollbar`))M.viewport.classList.add(`${I}-viewport--custom-scrollbar`);j.updateBounds(f.virtualSize,V.state.viewportState.containerSize);let B=j;V.afterScroll.push((b,U)=>{if(B)B.updatePosition(b),B.show()}),V.resizeHandlers.push((b,U)=>{if(B){let H=V.getCachedCompression();B.updateBounds(H.virtualSize,V.state.viewportState.containerSize)}})}}else if(!f.isCompressed&&X){if(X=!1,Z!==null)cancelAnimationFrame(Z),Z=null;if(K!==null)cancelAnimationFrame(K),K=null;if(Q=0,W=0,S=[],V.setScrollFns(E?()=>M.viewport.scrollLeft:()=>M.viewport.scrollTop,E?(z)=>{M.viewport.scrollLeft=z}:(z)=>{M.viewport.scrollTop=z}),E)M.viewport.scrollLeft=0;else M.viewport.scrollTop=0;if(V.scrollController.disableCompression(),E)M.viewport.style.overflowX="auto";else M.viewport.style.overflow="auto";if(j)j.destroy(),j=null;Y=0,V.updateContentSize(f.actualSize)}else if(f.isCompressed)V.scrollController.updateConfig({compression:f}),Y=m2(f.virtualSize,V.state.viewportState.containerSize,f.ratio,L),V.updateContentSize(f.virtualSize+Y);if(j)j.updateBounds(f.virtualSize+Y,V.state.viewportState.containerSize);let k=V.state.viewportState;if(k.isCompressed=f.isCompressed,k.compressionRatio=f.ratio,k.totalSize=f.virtualSize+Y,k.actualSize=f.actualSize,V.state.cachedCompression={state:f,totalItems:p},X){let z=Math.max(0,f.virtualSize+Y-V.state.viewportState.containerSize),A=Q;if(A>z)A=z;else if(A<0)A=0;if(A!==Q){if(Z!==null)cancelAnimationFrame(Z),Z=null;if(K!==null)cancelAnimationFrame(K),K=null;V.scrollController.scrollTo(A)}}for(let z=0;z<V.contentSizeHandlers.length;z++)V.contentSizeHandlers[z]()};V.updateCompressionMode=T;let C=V.getCachedCompression.bind(V);V.getCachedCompression=()=>{if(V.state.cachedCompression)return V.state.cachedCompression.state;return C()},V.setVisibleRangeFn((p,f,k,z,A)=>{R=null,u=null,p2(p,f,k,z,V.getCachedCompression(),A)}),V.setScrollToPosFn((p,f,k,z,A)=>{return u2(p,f,k,z,V.getCachedCompression(),A)});let h=NaN,R=null,u=null,P=E;V.setPositionElementFn((p,f)=>{let k=V.scrollController.getScrollTop(),z=V.getCachedCompression();if(k!==h)h=k,R=null,u=null;if(z.isCompressed){if(R===null||f<u)u=f,R=Math.round(Q1(f,k,V.sizeCache,V.getVirtualTotal(),V.state.viewportState.containerSize,z));let A=R+V.sizeCache.getOffset(f)-V.sizeCache.getOffset(u);p.style.transform=P?`translateX(${A}px)`:`translateY(${A}px)`}else{let A=Math.round(V.sizeCache.getOffset(f));p.style.transform=P?`translateX(${A}px)`:`translateY(${A}px)`}});let d=E?w.left:w.top,l=E?w.right:w.bottom,J0=V.getItemToScrollIndexFn();V.methods.set("_scrollItemIntoView",(p)=>{let f=V.getCachedCompression(),k=V.state.viewportState.containerSize,z=V.state.viewportState.scrollPosition,A=V.getVirtualTotal(),{visibleRange:O}=V.state.viewportState,$=J0(p),m=O1($,V.sizeCache,z,k,d,l,f,A,O);if(m!==z)V.scrollController.scrollTo(m)}),T(),V.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(Z!==null)cancelAnimationFrame(Z),Z=null;if(K!==null)cancelAnimationFrame(K),K=null})}}};var x2=(J={})=>{let{chunkSize:q=100,maxCachedItems:j=5000,evictionBuffer:Q=200,onEvict:X}=J,Y=new Map,W=0,Z=0,_=(z)=>{let A=Y.get(z);if(!A)A={items:Array(q),count:0,lastAccess:Date.now()},Y.set(z,A);else A.lastAccess=Date.now();return A},N=(z)=>{return Math.floor(z/q)},K=(z)=>{return z%q},S=()=>W,V=(z)=>{W=z},M=(z)=>{if(z<0||z>=W)return;let A=N(z),O=Y.get(A);if(!O)return;return O.items[K(z)]},v=(z)=>{if(z<0||z>=W)return!1;let A=N(z),O=Y.get(A);if(!O)return!1;return O.items[K(z)]!==void 0},I=(z,A)=>{let O=N(z),$=_(O),m=K(z),o=$.items[m]===void 0;if($.items[m]=A,o)$.count++,Z++;if(z>=W)W=z+1},E=(z,A)=>{for(let O=0;O<A.length;O++){let $=A[O];if($!==void 0)I(z+O,$)}},w=(z)=>{if(z<0||z>=W)return!1;let A=N(z),O=Y.get(A),$=K(z);if(!(O!==void 0&&O.items[$]!==void 0))return!1;let o=A,i=Array.from(Y.keys()).filter((a)=>a>=o).sort((a,Q0)=>a-Q0),r=[];for(let a of i){let Q0=Y.get(a),B=a*q;for(let b=0;b<q;b++){if(Q0.items[b]===void 0)continue;let U=B+b;if(U<=z)continue;r.push({oldIndex:U,item:Q0.items[b]})}}if(O.items[$]=void 0,O.count--,Z--,O.count===0)Y.delete(A);for(let{oldIndex:a}of r){let Q0=N(a),B=Y.get(Q0);if(!B)continue;let b=K(a);if(B.items[b]!==void 0){if(B.items[b]=void 0,B.count--,Z--,B.count===0)Y.delete(Q0)}}for(let{oldIndex:a,item:Q0}of r){let B=a-1,b=N(B),U=_(b),H=K(B);U.items[H]=Q0,U.count++,Z++}return W--,!0},L=(z,A)=>{let O=[];for(let $=z;$<=A&&$<W;$++)O.push(M($));return O},T=(z,A)=>{for(let O=z;O<=A&&O<W;O++)if(!v(O))return!1;return!0},C=()=>{let z=[],A=null,O=Array.from(Y.keys()).sort(($,m)=>$-m);for(let $ of O){let m=Y.get($);if(!m)continue;let o=$*q;for(let i=0;i<q;i++){let r=o+i;if(r>=W)break;if(m.items[i]!==void 0)if(A===null)A={start:r,end:r};else if(r===A.end+1)A.end=r;else z.push(A),A={start:r,end:r};else if(A!==null)z.push(A),A=null}}if(A!==null)z.push(A);return z},h=(z,A)=>{let O=[],$=null;for(let m=z;m<=A&&m<W;m++)if(!v(m))if($===null)$={start:m,end:m};else $.end=m;else if($!==null)O.push($),$=null;if($!==null)O.push($);return O},R=(z)=>{return Y.has(z)},u=(z)=>{let A=Y.get(z);if(A)A.lastAccess=Date.now()},P=(z,A)=>{if(z>A||Y.size===0)return;let O=Date.now(),$=N(Math.max(0,z)),m=N(Math.min(W-1,A));for(let o=$;o<=m;o++){let i=Y.get(o);if(i)i.lastAccess=O}},d=(z,A)=>{if(Z<=j)return 0;let O=Math.max(0,z-Q),$=Math.min(W-1,A+Q),m=N(O),o=N($),i=0,r=[];for(let[a,Q0]of Y)if(a<m||a>o)i+=Q0.count,r.push(a),Z-=Q0.count,Y.delete(a);if(i>0&&X)X(i,r);return i},l=()=>{if(Z<=j)return 0;let z=Array.from(Y.entries()).sort(([,$],[,m])=>$.lastAccess-m.lastAccess),A=0,O=[];for(let[$,m]of z){if(Z<=j)break;A+=m.count,Z-=m.count,O.push($),Y.delete($)}if(A>0&&X)X(A,O);return A},J0=()=>{return{totalItems:W,cachedItems:Z,cachedChunks:Y.size,chunkSize:q,maxCachedItems:j,memoryEfficiency:W>0?1-Z/W:1}},p=()=>Z,f=()=>{Y.clear(),Z=0};return{chunkSize:q,maxCachedItems:j,getTotal:S,setTotal:V,get:M,has:v,set:I,setRange:E,delete:w,getRange:L,isRangeLoaded:T,getLoadedRanges:C,findUnloadedRanges:h,getChunkIndex:N,isChunkLoaded:R,touchChunk:u,touchChunksForRange:P,evictDistant:d,evictToLimit:l,getStats:J0,getCachedCount:p,clear:f,reset:()=>{f(),W=0}}};var d2=(J={})=>{let{maskCharacter:q=z2,maxSampleSize:j=C2}=J,Q=[],X=!1,Y=(K)=>{if(X||K.length===0)return;let S=Math.min(K.length,j);for(let V=0;V<S;V++){let M=K[V];if(!M||typeof M!=="object")continue;let v={};for(let[I,E]of Object.entries(M)){if(I.startsWith("_")||I==="id")continue;v[I]=String(E??"").length}if(Object.keys(v).length>0)Q.push(v)}X=!0},W=()=>X,Z=(K)=>{let S={id:`${g0}${K}`,[C1]:!0,_index:K};if(Q.length===0)return S.label=q.repeat(12),S;let V=Q[K%Q.length];for(let[M,v]of Object.entries(V))S[M]=q.repeat(Math.max(1,v));return S};return{analyzeStructure:Y,hasAnalyzedStructure:W,generate:Z,generateRange:(K,S)=>{let V=[];for(let M=K;M<=S;M++)V.push(Z(M));return V},clear:()=>{Q=[],X=!1}}},H1=(J)=>{if(!J||typeof J!=="object")return!1;return J[C1]===!0};var SJ=50,l2=(J={})=>{let{adapter:q,initialItems:j,initialTotal:Q,storage:X,placeholder:Y,pageSize:W=SJ,onStateChange:Z,onItemsLoaded:_,onItemsEvicted:N}=J,K=x2({...X,onEvict:(s,e)=>{N?.(s),P()}}),S=null,V=()=>{if(!S)S=d2(Y);return S},M=new Map,v=!1,I,E=!0,w,L,T=[],C=0,h=new Map,R=new Map,u=()=>{for(let s of R.values())s.abort();R.clear(),h.clear()},P=()=>{Z?.(O())},d=()=>{M.clear();let s=K.getLoadedRanges();for(let e of s)for(let Y0=e.start;Y0<=e.end;Y0++){let N0=K.get(Y0);if(N0&&!H1(N0))M.set(N0.id,Y0)}},l=(s,e)=>{if(!H1(e))M.set(e.id,s)},J0=(s)=>{M.delete(s)},p=(s,e)=>{return`${s}-${e}`},f=()=>K.getTotal(),k=()=>K.getCachedCount(),z=()=>v,A=()=>E,O=()=>({total:K.getTotal(),cached:K.getCachedCount(),isLoading:v,pendingRanges:T,error:I,hasMore:E,cursor:w}),$=()=>K,m=()=>V(),o=(s)=>{let e=K.get(s);if(e!==void 0)return e;if(s>=0&&s<K.getTotal())return V().generate(s);return},i=(s)=>{let e=M.get(s);if(e===void 0)return;return K.get(e)},r=(s)=>{return M.get(s)??-1},a=(s)=>{let e=K.get(s);return e!==void 0&&!H1(e)},Q0=(s,e)=>{let Y0=[],N0=K.getTotal(),W0=0,O0=0;K.touchChunksForRange(s,Math.min(e,N0-1));for(let F0=s;F0<=e&&F0<N0;F0++){let R0=K.get(F0);if(R0!==void 0)Y0.push(R0),W0++;else Y0.push(V().generate(F0)),O0++}return Y0},B=(s)=>{K.setTotal(s),E=K.getCachedCount()<s,P()},b=(s,e=0,Y0)=>{if(q&&s.length>0){let N0=V();if(!N0.hasAnalyzedStructure())N0.analyzeStructure(s)}for(let N0=0;N0<s.length;N0++){let W0=s[N0];if(W0!==void 0){let O0=e+N0;K.set(O0,W0),l(O0,W0)}}if(Y0!==void 0)K.setTotal(Y0);else if(e+s.length>K.getTotal())K.setTotal(e+s.length);if(K.getCachedCount()>=K.getTotal()&&K.getTotal()>0)E=!1;P(),_?.(s,e,K.getTotal())},U=(s,e)=>{let Y0=K.get(s);if(!Y0)return!1;let N0=Y0.id,W0={...Y0,...e};if(K.set(s,W0),e.id!==void 0&&e.id!==N0)J0(N0);return l(s,W0),P(),!0},H=(s)=>{let e=M.get(s);if(e===void 0)return!1;if(!K.delete(e))return!1;return d(),u(),P(),!0},G=async(s,e)=>{if(!q)return;let Y0=p(s,e);if(h.has(Y0))return;let N0=K.chunkSize,W0=Math.floor(s/N0),O0=Math.floor(e/N0),F0=N0*2;for(let[V0,k0]of R){let _0=V0.indexOf("-"),G0=parseInt(V0.slice(0,_0),10);if(Math.abs(G0-s)>F0)k0.abort(),R.delete(V0),h.delete(V0)}let R0=[];for(let V0=W0;V0<=O0;V0++){let k0=V0*N0,_0=k0+N0-1,G0=p(k0,_0);if(!K.isChunkLoaded(V0)&&!h.has(G0))R0.push({start:k0,end:_0})}if(R0.length===0)return;let B0=[];for(let V0=W0;V0<=O0;V0++){let k0=V0*N0,_0=k0+N0-1,G0=p(k0,_0);if(h.has(G0)){let M0=h.get(G0);if(!B0.includes(M0))B0.push(M0)}}for(let V0 of R0){let k0=p(V0.start,V0.end),_0=new AbortController;R.set(k0,_0);let G0=(async()=>{T.push(V0),v=!0,I=void 0,P();try{let M0=V0.end-V0.start+1,$0={offset:V0.start,limit:M0,cursor:V0.start===L?w:void 0,signal:_0.signal},b0=await q.read($0);if(b(b0.items,V0.start,b0.total),b0.cursor)w=b0.cursor,L=V0.start+b0.items.length;let C0=V0.start+b0.items.length;if(C0>=C){if(C=C0,b0.hasMore!==void 0)E=b0.hasMore;else if(b0.total!==void 0)E=C0<b0.total}}catch(M0){if(M0?.name==="AbortError")return;I=M0 instanceof Error?M0:Error(String(M0))}finally{h.delete(k0),R.delete(k0),T=T.filter((M0)=>M0.start!==V0.start||M0.end!==V0.end),v=h.size>0,P()}})();h.set(k0,G0),B0.push(G0)}await Promise.all(B0)},F=async(s,e)=>{if(K.isRangeLoaded(s,e))return;await G(s,e)},D=async()=>{if(!q)return;await G(0,W-1)},y=async()=>{if(!q||v||!E)return!1;let s=K.getCachedCount(),e=K.getTotal(),Y0=s,N0=Math.min(Y0+W-1,e>0?e-1:Y0+W-1);if(Y0>=e&&e>0)return E=!1,!1;return await G(Y0,N0),K.getCachedCount()>s},g=async()=>{if(K.clear(),K.setTotal(0),M.clear(),S)S.clear();u(),T=[],v=!1,w=void 0,L=void 0,E=!0,C=0,I=void 0,P()},x=(s,e)=>{if(K.evictDistant(s,e)>0)d()},t=()=>{K.clear(),M.clear(),w=void 0,L=void 0,I=void 0,T=[],v=!1,P()},X0=()=>{if(K.reset(),M.clear(),S)S.clear();w=void 0,L=void 0,E=!0,C=0,I=void 0,T=[],v=!1,P()};if(j&&j.length>0)b(j,0,Q??j.length);else if(Q!==void 0)K.setTotal(Q),P();return{getState:O,getTotal:f,getCached:k,getIsLoading:z,getHasMore:A,getStorage:$,getPlaceholders:m,getItem:o,getItemById:i,getIndexById:r,isItemLoaded:a,getItemsInRange:Q0,setTotal:B,setItems:b,updateItem:U,removeItem:H,loadRange:G,ensureRange:F,loadInitial:D,loadMore:y,reload:g,evictDistant:x,clear:t,reset:X0}};var m1=(J)=>{let{adapter:q,loading:j,storage:Q,total:X,autoLoad:Y=!0}=J,W=j?.cancelThreshold??w2,Z=j?.preloadThreshold??y2,_=j?.preloadAhead??P2;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(N){let{emitter:K}=N,S=N.config.reverse,V=N.methods.get("_getGridLayout"),M=(p)=>{let f=N.methods.get("_getGroupBridge");if(f){let k=f();if(k&&k.groupCount>0){let z=k.layoutToDataIndex(p.start),A=k.layoutToDataIndex(p.end);if(z<0){for(let O=p.start+1;O<=p.end;O++)if(z=k.layoutToDataIndex(O),z>=0)break}if(A<0){for(let O=p.end-1;O>=p.start;O--)if(A=k.layoutToDataIndex(O),A>=0)break}if(z>=0&&A>=0)return{start:z,end:A}}}if(V){let k=V();if(k){let z=N.dataManager.getTotal();return k.getItemRange(p.start,p.end,z)}}return p};N.methods.set("_isAsync",()=>!0);let v=[];N.methods.set("_onItemsLoaded",(p)=>{v.push(p)});let I=l2({adapter:q,...X!==void 0&&{initialTotal:X},pageSize:Q?.chunkSize??n0,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(N.state.isInitialized){let p=N.getVirtualTotal();if(p!==N.sizeCache.getTotal())N.sizeCache.rebuild(p);N.updateCompressionMode();let f=N.getCachedCompression();N.state.viewportState.totalSize=f.virtualSize,N.state.viewportState.actualSize=f.actualSize,N.state.viewportState.isCompressed=f.isCompressed,N.state.viewportState.compressionRatio=f.ratio,N.updateContentSize(f.virtualSize),N.renderIfNeeded()}},onItemsLoaded:(p,f,k)=>{if(N.state.isInitialized){for(let z of v)z(p,f,k);N.forceRender(),K.emit("load:end",{items:p,total:k,offset:f})}}});N.replaceDataManager(I);let E=null,w=null,L=0,T=!1,C=null,h=120,R=(p=!1)=>{if(T=!1,w=null,p)E=null;if(C!==null)clearTimeout(C),C=null},u=()=>{if(!w)return;w=null;let{renderRange:p}=N.state.viewportState;if(p.end<p.start)return;E=null;let f=M(p);N.dataManager.ensureRange(f.start,f.end).catch((k)=>{K.emit("error",{error:k,context:"ensureRange"})})};N.afterScroll.push((p,f)=>{if(N.state.isDestroyed)return;let k=N.scrollController.getVelocity(),A=N.scrollController.isTracking()&&k<=W;if(L>W&&k<=W)T=!0;else if(T&&k>W)R();if(T&&k<0.5)R(!0);if(L=k,(N.scrollController.isAtTop()||N.scrollController.isAtBottom())&&(T||w))R(!0),A=!0;let $=T&&k>0.5;if(A&&!N.dataManager.getIsLoading()&&N.dataManager.getHasMore()){if(S){if(p<z1)K.emit("load:start",{offset:N.dataManager.getCached(),limit:n0}),N.dataManager.loadMore().catch((i)=>{K.emit("error",{error:i,context:"loadMore"})})}else if(N.state.viewportState.totalSize-p-N.state.viewportState.containerSize<z1)K.emit("load:start",{offset:N.dataManager.getCached(),limit:n0}),N.dataManager.loadMore().catch((r)=>{K.emit("error",{error:r,context:"loadMore"})})}let{renderRange:m}=N.state.viewportState;if(!E||m.start!==E.start||m.end!==E.end){if(E={start:m.start,end:m.end},A&&!$){if(w=null,C!==null)clearTimeout(C),C=null;let i=M(m),r=i.start,a=i.end,Q0=V?N.dataManager.getTotal():N.getVirtualTotal();if(k>Z)if(f==="down")a=Math.min(i.end+_,Q0-1);else r=Math.max(i.start-_,0);N.dataManager.ensureRange(r,a).catch((B)=>{K.emit("error",{error:B,context:"ensureRange"})})}else if(w={start:m.start,end:m.end},$){if(C!==null)clearTimeout(C);C=setTimeout(()=>{C=null,u(),R()},h)}}});let P=200,d=null;N.afterScroll.push((p,f)=>{if(d!==null)clearTimeout(d);d=setTimeout(()=>{d=null,u(),R()},P)}),N.destroyHandlers.push(()=>{if(d!==null)clearTimeout(d),d=null;R()});let l=()=>{if(N.state.isDestroyed)return;E=null;let{renderRange:p}=N.state.viewportState;if(p.end>0){let f=M(p);N.dataManager.ensureRange(f.start,f.end).catch((k)=>{K.emit("error",{error:k,context:"ensureRange"})})}u()};window.addEventListener("online",l),N.destroyHandlers.push(()=>{window.removeEventListener("online",l)}),K.on("load:start",()=>{N.dom.root.setAttribute("aria-busy","true")}),K.on("load:end",()=>{N.dom.root.removeAttribute("aria-busy")}),N.methods.set("loadVisibleRange",async()=>{E=null,w=null,N.forceRender();let{renderRange:p}=N.state.viewportState;if(p.end>0){let f=M(p);K.emit("load:start",{offset:f.start,limit:f.end-f.start+1}),await N.dataManager.ensureRange(f.start,f.end)}}),N.methods.set("reload",async(p)=>{E=null,w=null;let f=p?.snapshot,k=f!=null&&(f.total??0)>0&&f.index>0,z=k||p?.skipInitialLoad===!0;if(N.invalidateRendered(),await N.dataManager.reload(),!k)N.scrollController.scrollTo(0);if(!z){K.emit("load:start",{offset:0,limit:n0}),await N.dataManager.loadInitial(),N.forceRender();let{renderRange:A}=N.state.viewportState;if(A.end>0){let O=M(A);await N.dataManager.ensureRange(O.start,O.end)}}if(k){let A=N.methods.get("restoreScroll");if(A)A(f)}});let J0=!1;if(N.methods.set("_cancelAutoLoad",()=>{J0=!0}),Y)queueMicrotask(()=>{if(J0)return;K.emit("load:start",{offset:0,limit:n0}),N.dataManager.loadInitial().catch((p)=>{K.emit("error",{error:p,context:"loadInitial"})})});else if(X!==void 0)N.dataManager.setTotal(X)}}};var k1=(J)=>J==null?0:typeof J==="function"?J():J,x1=(J)=>{let q=null,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(Q){let{dom:X,state:Y,config:W,emitter:Z}=Q;if(X.root.style.overflow="visible",X.root.style.height="auto",W.horizontal)X.viewport.style.overflowX="visible",X.viewport.style.overflowY="visible";else X.viewport.style.overflow="visible";if(X.viewport.classList.remove(`${W.classPrefix}-viewport--custom-scrollbar`),Q.disableViewportResize(),Q.disableWheelHandler(),Q.setScrollTarget(window),Q.setScrollFns(()=>{let S=X.viewport.getBoundingClientRect();return Math.max(0,W.horizontal?-S.left:-S.top)},(S)=>{let V=X.viewport.getBoundingClientRect();if(W.horizontal){let M=V.left+window.scrollX;window.scrollTo({left:M+S,top:window.scrollY,behavior:"instant"})}else{let M=V.top+window.scrollY;window.scrollTo({left:window.scrollX,top:M+S,behavior:"instant"})}}),Q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),Y.viewportState.containerSize=window.innerHeight,j){let S=W.horizontal,V=Q.getItemToScrollIndexFn();Q.setScrollToPosFn((M,v,I,E,w)=>{let L=k1(S?j.left:j.top),T=k1(S?j.right:j.bottom);if(E===0)return 0;let C=Math.max(0,Math.min(M,E-1)),h=v.getOffset(C),R=v.getSize(C),u=v.getTotalSize(),P=Math.max(0,u-I+T),d;switch(w){case"start":d=h-L;break;case"center":{let l=I-L-T;d=h-L-(l-R)/2;break}case"end":d=h-I+R+T;break}return Math.max(-L,Math.min(d,P))}),Q.methods.set("_scrollItemIntoView",(M)=>{let v=V(M),I=S?window.innerWidth:window.innerHeight,E=k1(S?j.left:j.top),w=k1(S?j.right:j.bottom),L=X.viewport.getBoundingClientRect(),T=S?window.scrollX:window.scrollY,C=(S?L.left:L.top)+T,h=C-T,R=Q.sizeCache.getOffset(v),u=Q.sizeCache.getSize(v),P=h+R,d=P+u,l=E,J0=I-w,p=T;if(P<l)p=C+R-l;else if(d>J0)p=C+R+u-J0;if(p!==T)if(S)window.scrollTo({left:p,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:p,behavior:"instant"})})}let{innerHeight:_,innerWidth:N}=window,K=()=>{let{innerWidth:S,innerHeight:V}=window,M=W.horizontal?S:V,v=W.horizontal?N:_;if(Math.abs(M-v)<=1)return;_=V,N=S,Y.viewportState.containerSize=V,Z.emit("resize",{width:S,height:V});for(let I=0;I<Q.resizeHandlers.length;I++)Q.resizeHandlers[I](S,V);Q.renderIfNeeded()};window.addEventListener("resize",K,{passive:!0}),q=()=>{window.removeEventListener("resize",K)},Q.destroyHandlers.push(q)},destroy(){if(q)q(),q=null}}};var d1=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let X=j+Q+1>>>1;if(J[X].headerLayoutIndex<=q)j=X;else Q=X-1}return j},c2=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let X=j+Q+1>>>1;if(J[X].firstDataIndex<=q)j=X;else Q=X-1}return j},r2=(J,q,j)=>{if(J===0)return[];let Q=[],X=q(0,j?.(0)),Y=0,W=0;for(let Z=1;Z<J;Z++){let _=q(Z,j?.(Z));if(_!==X){let N=Z-Y;Q.push({key:X,groupIndex:Q.length,headerLayoutIndex:W,firstDataIndex:Y,count:N}),W=W+1+N,X=_,Y=Z}}return Q.push({key:X,groupIndex:Q.length,headerLayoutIndex:W,firstDataIndex:Y,count:J-Y}),Q},l1=(J,q)=>{if(J.length===0||q.length===0)return[];let j=J.length+q.length,Q=Array(j),X=0;for(let Y of q){Q[X]={id:`__group_header_${Y.groupIndex}`,__groupHeader:!0,groupKey:Y.key,groupIndex:Y.groupIndex},X++;for(let W=0;W<Y.count;W++)Q[X]=J[Y.firstDataIndex+W],X++}return Q},s2=(J,q,j=!1)=>{let Q=typeof q==="number"?(X)=>q:q;return(X)=>{let Y=J.getEntry(X);if(Y.type==="header"){if(j&&Y.group.groupIndex===0)return 0;return J.getHeaderHeight(Y.group.groupIndex)}return Q(Y.dataIndex)}},a2=(J,q,j)=>{let Q=r2(J,q.getGroupForIndex,j),X=J+Q.length,Y=q.header?.height??q.header?.width??q.headerHeight;return{get totalEntries(){return X},get groupCount(){return Q.length},get groups(){return Q},getEntry:(M)=>{if(Q.length===0)return{type:"item",dataIndex:M,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let v=d1(Q,M),I=Q[v];if(M===I.headerLayoutIndex)return{type:"header",group:I};let E=M-I.headerLayoutIndex-1;return{type:"item",dataIndex:I.firstDataIndex+E,group:I}},layoutToDataIndex:(M)=>{if(Q.length===0)return M;let v=d1(Q,M),I=Q[v];if(M===I.headerLayoutIndex)return-1;let E=M-I.headerLayoutIndex-1;return I.firstDataIndex+E},dataToLayoutIndex:(M)=>{if(Q.length===0)return M;let v=c2(Q,M),I=Q[v],E=M-I.firstDataIndex;return I.headerLayoutIndex+1+E},getGroupAtLayoutIndex:(M)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let v=d1(Q,M);return Q[v]},getGroupAtDataIndex:(M)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let v=c2(Q,M);return Q[v]},getHeaderHeight:typeof Y==="number"?(M)=>Y:(M)=>{let v=Q[M];if(!v)return 0;return Y(v.key,M)},rebuild:(M,v)=>{Q=r2(M,q.getGroupForIndex,v??j),X=M+Q.length}}};var c1=(J,q,j,Q,X,Y=!1,W=0,Z)=>{let _=Y?"width":"height",N=Y?"height":"width",K=Y?"X":"Y",S=(U,H)=>{U.style[_]=`${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;"+(Y?`top:0;bottom:0;left:${W||0}px`:`top:${W||0}px`);let M=()=>{let U=document.createElement("div");return U.className="sticky-group",U.style.position="absolute",U.style.willChange="transform",U.style[N]="100%",U},v=M(),I=M();V.append(v,I),J.insertBefore(V,J.firstChild);let E=v,w=I,L=q.groups,T=[],C=[],h=[],R=0,u=()=>{L=q.groups,R=L.length,T=Array(R),C=Array(R),h=Array(R);let U=Z?Z():1;for(let H=0;H<R;H++)T[H]=j.getOffset(L[H].headerLayoutIndex)*U,C[H]=q.getHeaderHeight(H),h[H]=C[H]*U};u();let P=-1,d=0,l=0,J0=-1,p=!1,f=0,k=!1,z=(U,H)=>{Q(U,H);let G=C[H];return S(U,G),G},A=(U)=>{U.replaceChildren(),U.style.transform=""},O=(U)=>{if(U===P)return;if(P=U,d=0,l=0,U<0||U>=R){A(E);return}d=z(E,U),l=h[U],S(V,d),E.style.transform=""},$=(U)=>{if(U===f)return;f=U;let H=Math.round(U);E.style.transform=`translate${K}(${H}px)`,w.style.transform=`translate${K}(${H+d}px)`},m=()=>{f=0,E.style.transform="",w.style.transform=""},o=()=>{if(!k)return;let U=E;E=w,w=U,P=J0,d=P>=0?C[P]:0,l=P>=0?h[P]:0,S(V,d),A(w),J0=-1,k=!1,m()},i=()=>{if(!k)return;A(w),J0=-1,k=!1,m()},r=()=>{if(p)return;p=!0,V.style.display=""},a=()=>{if(!p)return;p=!1,V.style.display="none",A(E),P=-1,d=0,l=0,i()},Q0=(U)=>{if(R===0){a();return}if(U<T[0]){a();return}let H=0,G=R-1;while(H<G){let D=H+G+1>>>1;if(T[D]+h[D]<=U)H=D;else G=D-1}if(!p)r();O(H);let F=H+1;if(F<R){let D=T[F]-U;if(D<=0&&D>-l){if(J0!==F||!k)J0=F,z(w,F),k=!0;let y=l>0?D/l*d:D;$(y)}else if(D<=-l){if(k)o()}else if(k)i()}else if(k)i()},B=()=>{u();let U=P;if(P=-1,d=0,l=0,U>=0)O(U)},b=()=>{V.remove(),P=-1,d=0,l=0,J0=-1,p=!1,k=!1};return V.style.display="none",{update:Q0,refresh:B,show:r,hide:a,destroy:b}};var p0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var $1=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let X=j+Q+1>>>1;if(J[X].headerLayoutIndex<=q)j=X;else Q=X-1}return j},o2=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let X=j+Q+1>>>1;if(J[X].firstDataIndex<=q)j=X;else Q=X-1}return j},n2={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},i2=(J,q,j)=>{let Q=[],X=0,Y=0,W=new Map,Z=()=>{if(Q=[],X===0||W.size===0){Y=X;return}let L=null,T=-1,C=0;for(let h=0;h<X;h++){let R=W.get(h);if(R===void 0){if(L!==null&&T>=0){let u=h-T;Q.push({key:L,groupIndex:Q.length,headerLayoutIndex:T+C,firstDataIndex:T,count:u}),C++,L=null,T=-1}continue}if(R!==L){if(L!==null&&T>=0){let u=h-T;Q.push({key:L,groupIndex:Q.length,headerLayoutIndex:T+C,firstDataIndex:T,count:u}),C++}L=R,T=h}}if(L!==null&&T>=0){let h=X-T;Q.push({key:L,groupIndex:Q.length,headerLayoutIndex:T+C,firstDataIndex:T,count:h}),C++}Y=X+C};return{onItemsLoaded:(L,T,C)=>{X=C;for(let h=0;h<L.length;h++){let R=T+h,u=L[h];if(u!==void 0){let P=J.getGroupForIndex(R,u);W.set(R,P)}}Z()},get totalEntries(){return Y},get groupCount(){return Q.length},get groups(){return Q},isHeader:(L)=>{if(Q.length===0)return!1;let T=$1(Q,L),C=Q[T];return L===C.headerLayoutIndex},getHeaderItem:(L)=>{if(Q.length===0)return;let T=$1(Q,L),C=Q[T];if(L!==C.headerLayoutIndex)return;return{id:`__group_header_${C.groupIndex}`,__groupHeader:!0,groupKey:C.key,groupIndex:C.groupIndex}},layoutToDataIndex:(L)=>{if(Q.length===0)return L;let T=$1(Q,L),C=Q[T];if(L===C.headerLayoutIndex)return-1;let h=L-C.headerLayoutIndex-1;return C.firstDataIndex+h},dataToLayoutIndex:(L)=>{if(Q.length===0)return L;let T=o2(Q,L),C=Q[T],h=L-C.firstDataIndex;return C.headerLayoutIndex+1+h},getHeaderHeight:(L)=>J.headerHeight,getGroupAtLayoutIndex:(L)=>{if(Q.length===0)return n2;let T=$1(Q,L);return Q[T]},getGroupAtDataIndex:(L)=>{if(Q.length===0)return n2;let T=o2(Q,L);return Q[T]},removeAt:(L)=>{let T=new Map;for(let[C,h]of W)if(C<L)T.set(C,h);else if(C>L)T.set(C-1,h);W.clear();for(let[C,h]of T)W.set(C,h);X--,Z()},reset:()=>{Q=[],X=0,Y=0,W.clear()}}};var t2=(J,q,j,Q,X,Y)=>{if(Q===0)return 0;let W=Math.max(0,Math.min(J,Q-1)),Z=q.getOffset(W),_=q.getSize(W),N=q.getTotalSize(),K=Math.max(0,N-j),S;switch(Y){case"center":S=Z-j/2+_/2;break;case"end":S=Z-j+_;break;case"start":default:S=Z;break}return Math.max(0,Math.min(S,K))};var Z1=(J,q,j,Q,X="start",Y,W=t2)=>{return W(J,q,j,Q,Y,X)};var fJ=(J,q)=>{if(J.header){let j=q?J.header.width??J.header.height:J.header.height??J.header.width;return{...J,header:{...J.header,height:j}}}if(J.headerHeight!=null&&J.headerTemplate)return{...J,header:{height:J.headerHeight,template:J.headerTemplate}};return J},r1=(J)=>{let q=J.header,j=q?q.height??q.width:J.headerHeight,Q=q?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(j==null||j<=0)throw Error("[vlist/builder] withGroups: header.height must be a positive number");if(!Q)throw Error("[vlist/builder] withGroups: header.template is required");let X=null,Y=null;return{name:"withGroups",priority:10,setup(W){let{dom:Z,config:_,rawConfig:N}=W,{classPrefix:K}=_,S=fJ(J,_.horizontal),M=N.item.height,v=S.sticky!==!1,{template:I}=S.header;if(Z.root.classList.add(`${K}--grouped`),v)if(W.methods.set("_getStickyHeaderHeight",()=>S.header.height),!_.horizontal)Z.viewport.style.height=`calc(100% - ${S.header.height}px)`;else Z.viewport.style.width=`calc(100% - ${S.header.height}px)`;let{animateScroll:E,cancelScroll:w}=J1(W.scrollController,W.renderIfNeeded),L=null;W.methods.set("scrollToIndex",(C,h)=>{let R=L??X;if(!R)return;let u=R.dataToLayoutIndex(C),{align:P,behavior:d,duration:l}=d0(h),J0=W.dataManager.getTotal(),p=W.adjustScrollPosition(Z1(u,W.sizeCache,W.state.viewportState.containerSize,J0,P,W.getCachedCompression()));if(d==="smooth")E(W.scrollController.getScrollTop(),p,l);else w(),W.scrollController.scrollTo(p)}),W.destroyHandlers.push(()=>{if(w(),Y)Y.destroy(),Y=null;Z.root.classList.remove(`${K}--grouped`)});let T=null;W.methods.set("_getGroupBridge",()=>T),queueMicrotask(()=>{let C=W.methods.get("_onItemsLoaded");if(C)IJ(W,S,_,N,M,v,I,K,C,(h)=>{T=h,L=h},(h)=>{Y=h})}),hJ(W,S,_,N,M,v,I,K,()=>{},()=>{},(C)=>{X=C,L=C},(C)=>{Y=C})},destroy(){if(Y)Y.destroy(),Y=null}}};function hJ(J,q,j,Q,X,Y,W,Z,_,N,K,S){let{dom:V}=J,M=null,v=Q.items?[...Q.items]:[];_(v);let I=v.length,E={getGroupForIndex:q.getGroupForIndex,header:{height:q.header.height,template:q.header.template},sticky:q.sticky??!1},w=(O)=>v[O],L=a2(I,E,w);K(L);let T=l1(v,L.groups);N(T);let C=s2(L,X,Y);J.setSizeConfig(C),J.rebuildSizeCache(T.length),J.dataManager.setItems(T,0,T.length);let h=Q.item.template,R=(O,$,m)=>{if(p0(O))return W(O.groupKey,O.groupIndex);return h(O,$,m)},u=J.methods.get("_getGridLayout"),P=J.methods.get("_replaceGridRenderer"),d=J.methods.get("_updateGridLayoutForGroups"),l=J.methods.get("_createGridRenderer"),J0=J.methods.get("_getTableLayout"),p=J.methods.get("_updateTableForGroups");if(u&&P&&l){if(d)d((m)=>{let o=T[m];return!!(o&&p0(o))});let O=u(),$=l(V.items,R,J.sizeCache,O,Z,J.getContainerWidth(),()=>v.length,j.ariaIdPrefix,j.horizontal,(m)=>L.layoutToDataIndex(m)+1);P($)}else if(J0&&p)p((O)=>p0(O),q.header.template);else J.replaceTemplate(R);let f=()=>{if(!Y||M)return;if(L.groupCount===0)return;let O=q.header.template,$=(o,i)=>{let r=L.groups[i];if(!r)return;let a=O(r.key,r.groupIndex);if(typeof a==="string")o.innerHTML=a;else o.replaceChildren(a)},m=c1(V.root,L,J.sizeCache,$,Z,j.horizontal,0,()=>J.getCachedCompression().ratio);M=m,S(m),J.afterScroll.push((o,i)=>{m.update(o)}),m.update(J.scrollController.getScrollTop())};f();let k=Q.item?.striped,z=()=>{if(k!=="data"&&k!=="even"&&k!=="odd")return;let O=new Int32Array(T.length),$=k==="odd"?1:0,m=0;for(let o=0;o<T.length;o++)if(p0(T[o])){if(O[o]=-1,k==="even"||k==="odd")m=0}else O[o]=m+++$;J.setStripeIndexFn((o)=>{if(o<0||o>=O.length)return o;return O[o]})};z();let A=()=>{if(L.rebuild(v.length,w),T=l1(v,L.groups),N(T),J.rebuildSizeCache(T.length),J.dataManager.setItems(T,0,T.length),z(),f(),M)M.refresh()};J.methods.set("setItems",(O)=>{v=O.slice(),_(v),A()}),J.methods.set("appendItems",(O)=>{v.push(...O),_(v),A()}),J.methods.set("prependItems",(O)=>{v.unshift(...O),_(v),A()}),J.methods.set("removeItem",(O)=>{v=v.filter(($)=>$.id!==O),_(v),A()}),J.methods.set("_getItems",()=>v),J.methods.set("_getTotal",()=>v.length),J.methods.set("_isGroupHeader",(O)=>{let $=T[O];return!!($&&p0($))}),J.methods.set("_layoutToDataIndex",(O)=>L.layoutToDataIndex(O)),J.methods.set("_dataToLayoutIndex",(O)=>L.dataToLayoutIndex(O))}function IJ(J,q,j,Q,X,Y,W,Z,_,N,K){let{dom:S}=J,V=J.dataManager,M=i2({getGroupForIndex:q.getGroupForIndex,headerHeight:q.header.height},(R)=>V.getItem(R),(R)=>V.isItemLoaded(R));N(M);let v=typeof X==="number"?(R)=>X:X,I=(R)=>{if(M.isHeader(R)){if(Y&&M.getGroupAtLayoutIndex(R).groupIndex===0)return 0;return q.header.height}let u=M.layoutToDataIndex(R);return u>=0?v(u):v(R)};J.setSizeConfig(I),J.setVirtualTotalFn(()=>M.totalEntries||V.getTotal());let E={...V,getTotal:()=>M.totalEntries,getIndexById:(R)=>{let u=V.getIndexById(R);if(u<0)return-1;return M.dataToLayoutIndex(u)},getItem:(R)=>{let u=M.getHeaderItem(R);if(u)return u;let P=M.layoutToDataIndex(R);if(P>=0)return V.getItem(P);return V.getItem(R)},getItemsInRange:(R,u)=>{let P=[];for(let d=R;d<=u;d++){let l=E.getItem(d);if(l!==void 0)P.push(l)}return P},isItemLoaded:(R)=>{if(M.isHeader(R))return!0;let u=M.layoutToDataIndex(R);if(u>=0)return V.isItemLoaded(u);return V.isItemLoaded(R)},ensureRange:(R,u)=>V.ensureRange(R,u),loadRange:(R,u)=>V.loadRange(R,u),loadInitial:()=>V.loadInitial(),loadMore:()=>V.loadMore(),reload:()=>{return M.reset(),V.reload()},setTotal:(R)=>V.setTotal(R),setItems:(R,u,P)=>V.setItems(R,u,P),removeItem:(R)=>{let u=V.getIndexById(R);if(u>=0)M.removeAt(u);return V.removeItem(R)},clear:()=>{M.reset(),V.clear()},reset:()=>{M.reset(),V.reset()}};J.replaceDataManager(E);let w=Q.item.template,L=J.methods.get("_updateTableForGroups");if(L)L((R)=>p0(R),q.header.template);J.replaceTemplate((R,u,P)=>{if(p0(R))return W(R.groupKey,R.groupIndex);return w(R,u,P)});let T=null;if(Y){let R=q.header.template,u=(l,J0)=>{let p=M.groups[J0];if(!p)return;let f=R(p.key,p.groupIndex);if(typeof f==="string")l.innerHTML=f;else l.replaceChildren(f)},P={get totalEntries(){return M.totalEntries},get groupCount(){return M.groupCount},get groups(){return M.groups},getEntry:(l)=>{if(M.isHeader(l))return{type:"header",group:M.getGroupAtLayoutIndex(l)};return{type:"item",dataIndex:M.layoutToDataIndex(l),group:M.getGroupAtLayoutIndex(l)}},layoutToDataIndex:(l)=>M.layoutToDataIndex(l),dataToLayoutIndex:(l)=>M.dataToLayoutIndex(l),getGroupAtLayoutIndex:(l)=>M.getGroupAtLayoutIndex(l),getGroupAtDataIndex:(l)=>M.getGroupAtDataIndex(l),getHeaderHeight:(l)=>M.getHeaderHeight(l),rebuild:()=>{}};T=c1(S.root,P,J.sizeCache,u,Z,j.horizontal,0,()=>J.getCachedCompression().ratio),K(T);let d=T;J.afterScroll.push((l,J0)=>{d.update(l)})}let C=-1;J.methods.set("_ensureTailLoaded",()=>{let R=V.getTotal();if(R<=0)return;let u=R-1;if(V.isItemLoaded(u))return;C=u,V.ensureRange(u,u)}),_((R,u,P)=>{let d=J.scrollController.getScrollTop(),l=M.groupCount,J0=M.totalEntries||P,p=0,f=0,k=J.methods.get("_restoreAnchor");if(k)p=k.dataIndex,f=k.fraction;else if(d>0){let O=J.getCachedCompression(),$=O.ratio!==1?d/O.ratio:d,m=J.sizeCache.indexAtOffset($);if(p=M.layoutToDataIndex(m),p<0&&m+1<M.totalEntries)m=m+1,p=M.layoutToDataIndex(m);let o=J.sizeCache.getOffset(m),i=J.sizeCache.getSize(m);f=i>0?($-o)/i:0}M.onItemsLoaded(R,u,P),J.rebuildSizeCache(M.totalEntries);let z=J.getCachedCompression();if(J.updateContentSize(z.virtualSize),M.groupCount-l>0&&(d>0||k)){if(k?.skipAdjust);else if(p>=0){let O=M.dataToLayoutIndex(p),$=J.sizeCache.getOffset(O),m=J.sizeCache.getSize(O),o=$+f*m,i=z.ratio!==1?o*z.ratio:o;if(Math.abs(i-d)>1)J.scrollController.scrollTo(i);if(k){J.methods.delete("_suppressSave");let r=J.methods.get("_saveSnapshot");if(r)r()}}}else if(k){let O=k.skipAdjust;if(J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave"),!O){let $=J.methods.get("_saveSnapshot");if($)$()}}if(T)T.refresh(),T.update(J.scrollController.getScrollTop());if(C>=0&&V.isItemLoaded(C)){let O=M.dataToLayoutIndex(C);C=-1;let $=J.methods.get("_getFocusedIndex"),m=$?$():-1;if(m>=0&&m>=J0-1&&O!==m){let o=O;while(o>0&&M.isHeader(o))o--;let i=J.methods.get("_setFocusedIndex");if(i)i(o)}}}),J.methods.set("_isGroupHeader",(R)=>M.isHeader(R)),J.methods.set("_layoutToDataIndex",(R)=>M.layoutToDataIndex(R)),J.methods.set("_dataToLayoutIndex",(R)=>M.dataToLayoutIndex(R)),J.methods.set("_getTotal",()=>V.getTotal()),J.methods.delete("removeItem");let h=Q.item?.striped;if(h==="data"||h==="even"||h==="odd"){let R=h==="odd"?1:0;J.setStripeIndexFn((u)=>{if(M.isHeader(u))return-1;let P=M.layoutToDataIndex(u);return P>=0?P+R:u})}}var e2=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.isHeaderFn,X={row:0,col:0},Y=(v)=>{if(v<=0)return 0;if(!Q)return Math.ceil(v/q);let I=0,E=0,w=0;for(let L=0;L<v;L++)if(Q(L)){if(w++,E>0)I++,E=0;I++,E=0}else if(E++,E>=q)I++,E=0;if(E>0)I++;return I},W=(v)=>{return X.row=Z(v),X.col=_(v),X},Z=(v)=>{if(!Q)return Math.floor(v/q);let I=0,E=0;for(let w=0;w<=v;w++)if(Q(w)){if(E>0)I++,E=0;if(w===v)return I;I++,E=0}else{if(w===v)return I;if(E++,E>=q)I++,E=0}return console.warn(`⚠️ getRow(${v}) fell through - returning ${I}`),I},_=(v)=>{if(!Q)return v%q;if(Q(v))return 0;let I=0;for(let E=0;E<=v;E++)if(Q(E))I=0;else{if(E===v)return I;if(I++,I>=q)I=0}return I},N=(v,I,E)=>{if(E<=0)return{start:0,end:-1};if(!Q){let h=Math.max(0,v*q),R=Math.min(E-1,(I+1)*q-1);return{start:h,end:R}}let w=-1,L=-1,T=0,C=0;for(let h=0;h<E;h++){if(Q(h)){if(C>0)T++,C=0;if(T>=v&&T<=I){if(w===-1)w=h;L=h}T++,C=0}else{if(T>=v&&T<=I){if(w===-1)w=h;L=h}if(C++,C>=q)T++,C=0}if(T>I&&C===0)break}if(w===-1)return{start:0,end:-1};return{start:w,end:L}},K=(v,I,E)=>{if(I<0||I>=q)return-1;let w=v*q+I;if(w<0||w>=E)return-1;return w},S=(v)=>{let I=(q-1)*j;return Math.max(0,(v-I)/q)};return{get columns(){return q},get gap(){return j},update:(v)=>{if(v.columns!==void 0)q=Math.max(1,Math.floor(v.columns));if(v.gap!==void 0)j=v.gap;if(v.isHeaderFn!==void 0)Q=v.isHeaderFn},getTotalRows:Y,getPosition:W,getRow:Z,getCol:_,getItemRange:N,getItemIndex:K,getColumnWidth:S,getColumnOffset:(v,I)=>{let E=S(I);return v*(E+j)}}};var pJ=(J=200)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let W=document.createElement("div");return W.setAttribute("role","option"),W},release:(Y)=>{if(Y.remove(),q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-row"),Y.removeAttribute("data-col"),q.push(Y)},clear:()=>{q.length=0}}},uJ=1,s1=(J,q,j,Q,X,Y,W,Z,_=!1,N)=>{let K=pJ(),S=new Map,V=Y,M=!1,v=0,I="",E=-1,w={selected:!1,focused:!1},L=(B,b)=>{return w.selected=B,w.focused=b,w},T=`${X}-item ${X}-grid-item`,C=`${X}-group-header`,h=`${X}-item--selected`,R=`${X}-item--focused`,u=`${X}-item--placeholder`,P=`${X}-item--replaced`,d=(B,b)=>{if(typeof b==="string")B.innerHTML=b;else B.replaceChildren(b)},l=(B,b,U)=>{B.classList.toggle(h,b),B.classList.toggle(R,U)},J0=(B,b)=>{let U=Q.getRow(B);if(b?.compression?.isCompressed)return Q1(U,b.scrollPosition,j,b.totalItems,b.containerSize,b.compression,b.rangeStart);return j.getOffset(U)},p=(B,b)=>{let U=M&&Q.getCol(B)===0,H=U?0:Q.getCol(B),G=U?0:Q.getColumnOffset(H,V),F;if(M){let D=Q.getRow(B),y=0,g=new Set;for(let x=0;x<B;x++){let t=Q.getRow(x);if(t<D&&!g.has(t)){let X0=j.getSize(x);y+=X0,g.add(t)}}F=y}else F=J0(B,b);if(_)return`translate(${Math.round(F)}px, ${Math.round(G)}px)`;return`translate(${Math.round(G)}px, ${Math.round(F)}px)`},f=(B,b)=>{B.style.transform=b},k=(B,b)=>{let U=B.classList.contains(C),H=U?V:Q.getColumnWidth(V),G;if(M||U)G=j.getSize(b)-Q.gap;else{let F=Q.getRow(b);G=j.getSize(F)-Q.gap}if(_)B.style.width=`${G}px`,B.style.height=`${H}px`;else B.style.width=`${H}px`,B.style.height=`${G}px`},z=(B,b,U,H,G)=>{let F=K.acquire(),D=!!b.__groupHeader,y=L(U,H);if(F.className=D?C:T,F.dataset.index=String(B),F.dataset.id=String(b.id),F.dataset.row=String(Q.getRow(B)),F.dataset.col=String(Q.getCol(B)),D)F.setAttribute("role","presentation"),F.removeAttribute("aria-selected"),F.removeAttribute("aria-setsize"),F.removeAttribute("aria-posinset"),F.removeAttribute("id");else{if(F.setAttribute("role","option"),F.ariaSelected=String(U),Z)F.id=`${Z}-item-${B}`;if(W){let t=W();if(t!==E)E=t,I=String(t);F.setAttribute("aria-setsize",I);let X0=N?N(B):B+1;F.setAttribute("aria-posinset",String(X0))}}k(F,B);let g=q(b,B,y);if(d(F,g),String(b.id).startsWith(g0))F.classList.add(u);return l(F,U,H),f(F,G),{element:F,lastItemId:b.id,lastSelected:U,lastFocused:H,lastTransform:G,lastSeenFrame:v}},A=(B,b,U,H,G)=>{if(v++,b.start===0&&B.length>0)M=p0(B[0]);for(let[y,g]of S)if(y>=b.start&&y<=b.end)g.lastSeenFrame=v;else if(v-g.lastSeenFrame>uJ)K.release(g.element),S.delete(y);let F=!1;if(W){let y=W();if(y!==E)E=y,I=String(y),F=!0}let D=null;for(let y=b.start;y<=b.end;y++){let g=y-b.start,x=B[g];if(!x){console.warn(`⚠️ RENDER: Missing item at index ${y} (range: ${b.start}-${b.end}, items.length: ${B.length})`);continue}let t=U.has(x.id),X0=y===H,s=S.get(y);if(s){let e=s.lastItemId!==x.id,Y0=s.lastSelected!==t,N0=s.lastFocused!==X0;if(e){let O0=String(s.lastItemId),F0=String(x.id),R0=O0.startsWith(g0),B0=F0.startsWith(g0);if(!B0&&m0(U,y,x.id))t=!0;let V0=L(t,X0),k0=q(x,y,V0);if(d(s.element,k0),s.element.dataset.id=F0,s.element.dataset.row=String(Q.getRow(y)),s.element.dataset.col=String(Q.getCol(y)),k(s.element,y),s.element.classList.toggle(u,B0),R0&&!B0)s.element.classList.add(P),setTimeout(()=>s.element.classList.remove(P),300);if(s.lastItemId=x.id,!x.__groupHeader){let G0=N?N(y):y+1;s.element.setAttribute("aria-posinset",String(G0))}}if(e||Y0||N0)l(s.element,t,X0),s.element.ariaSelected=String(t),s.lastSelected=t,s.lastFocused=X0;let W0=p(y,G);if(s.lastTransform!==W0)f(s.element,W0),s.lastTransform=W0;if(F&&!x.__groupHeader)s.element.setAttribute("aria-setsize",I)}else{if(m0(U,y,x.id))t=!0;let e=p(y,G),Y0=z(y,x,t,X0,e);if(!D)D=document.createDocumentFragment();D.appendChild(Y0.element),S.set(y,Y0)}}if(D)J.appendChild(D)},O=(B)=>{for(let[b,U]of S){let H=p(b,B);if(U.lastTransform!==H)f(U.element,H),U.lastTransform=H}},$=(B,b,U,H)=>{let G=S.get(B);if(!G)return;let F=L(U,H),D=q(b,B,F);d(G.element,D),l(G.element,U,H),G.element.dataset.id=String(b.id),G.element.ariaSelected=String(U),k(G.element,B),G.lastItemId=b.id,G.lastSelected=U,G.lastFocused=H},m=(B,b,U)=>{let H=S.get(B);if(!H)return;let G=H.lastSelected!==b,F=H.lastFocused!==U;if(G||F)l(H.element,b,U),H.lastSelected=b,H.lastFocused=U},o=(B)=>{return S.get(B)?.element},i=(B)=>{if(Math.abs(B-V)<1)return;V=B;for(let[b,U]of S){k(U.element,b);let H=p(b);f(U.element,H),U.lastTransform=H}},r=()=>{a0(J,S.keys(),(B)=>S.get(B)?.element)},a=()=>{for(let[,B]of S)K.release(B.element);S.clear()};return{render:A,updatePositions:O,updateItem:$,updateItemClasses:m,getElement:o,sortDOM:r,updateContainerWidth:i,clear:a,destroy:()=>{a(),K.clear()}}};var gJ=new Set,a1=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let q=null,j=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(Q){let{dom:X,emitter:Y,config:W,rawConfig:Z}=Q,{classPrefix:_}=W;if(W.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let N=W.horizontal,K=M1(S0(Z.padding),N),S=()=>{return(N?X.viewport.clientHeight:Q.getContainerWidth())-K},V=Z.items?.some((r)=>r.__groupHeader===!0),M={columns:J.columns,gap:J.gap??0};if(V)M.isHeaderFn=(r)=>{let a=Q.dataManager.getItem(r);return!!(a&&a.__groupHeader===!0)};q=e2(M);let v=q.gap;Q.setVirtualTotalFn(()=>{let r=Q.dataManager.getTotal();return q.getTotalRows(r)}),Q.setItemToScrollIndexFn((r)=>Math.floor(r/M.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>N?{ud:1,lr:M.columns,cols:M.columns}:{ud:M.columns,lr:1,cols:M.columns});let I=Z.item,E=W.horizontal?I.width:I.height,w={containerWidth:S(),columns:q.columns,gap:q.gap},L={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof E==="function")Q.setSizeConfig((r)=>{let a=w.containerWidth-2,Q0=(w.columns-1)*w.gap;return L.containerWidth=w.containerWidth,L.columns=w.columns,L.gap=w.gap,L.columnWidth=(a-Q0)/w.columns,L.row=q.getRow(r),L.column=q.getCol(r),L.totalRows=q.getTotalRows(Q.dataManager.getTotal()),L.totalColumns=w.columns,E(r,L)+w.gap});else if(v>0)Q.setSizeConfig(E+v);if(Q.rebuildSizeCache(),v>0){let r=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let a=r();return a>0?a-w.gap:0}}X.root.classList.add(`${_}--grid`);let T=S(),C=Z.item.template,h=o0(Q.methods,()=>Q.dataManager.getTotal()),R=()=>{j=s1(X.items,C,Q.sizeCache,q,_,T,h.getSetSize,W.ariaIdPrefix,W.horizontal,h.getPosInSet),Q.replaceRenderer(j)};R(),Q.setUpdateItemClassesFn((r,a,Q0)=>{j?.updateItemClasses(r,a,Q0)}),Q.methods.set("_updateRenderedItem",(r,a,Q0,B)=>{j?.updateItem(r,a,Q0,B)}),Q.methods.set("_getGridLayout",()=>q),Q.methods.set("_getGridConfig",()=>M),Q.methods.set("_replaceGridRenderer",(r)=>{j=r}),Q.methods.set("_createGridRenderer",s1),Q.methods.set("_updateGridLayoutForGroups",(r)=>{q.update({isHeaderFn:r});let a=Q.dataManager.getTotal(),Q0=0;for(let B=0;B<a;B++)if(q.getCol(B)===0){let b=Q.sizeCache.getSize(B);Q0+=b}Q.sizeCache.getTotalSize=()=>Q0,Q.updateContentSize(Q0),R()}),Q.methods.set("updateGrid",(r)=>{if(r.columns!==void 0){if(!Number.isInteger(r.columns)||r.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");M.columns=r.columns}if(r.gap!==void 0){if(r.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");M.gap=r.gap}if(q)q.update(M);let a=S();if(w.containerWidth=a,w.columns=M.columns,w.gap=M.gap??0,j)j.updateContainerWidth(a);Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode();for(let Q0=0;Q0<Q.contentSizeHandlers.length;Q0++)Q.contentSizeHandlers[Q0]();if(j)j.clear();Q.forceRender()});let u=null,P=null,d=!1,l=()=>{if(d)return;d=!0,u=Q.methods.get("_getSelectedIds")??null,P=Q.methods.get("_getFocusedIndex")??null},J0=-1,p=-1,f=!0,k=W.overscan,z={start:0,end:0},A={start:0,end:0},O=()=>{if(Q.state.isDestroyed)return;let r=Q.scrollController.getScrollTop(),a=Q.state.viewportState.containerSize;if(!f&&r===J0&&a===p)return;J0=r,p=a,f=!1;let Q0=Q.getVirtualTotal();Q.getVisibleRange(r,a,Q0,z),A.start=Math.max(0,z.start-k),A.end=Math.min(Q0-1,z.end+k);let B=Q.state.viewportState;B.scrollPosition=r,B.visibleRange.start=z.start,B.visibleRange.end=z.end,B.renderRange.start=A.start,B.renderRange.end=A.end;let b=Q.state.lastRenderRange,U=B.isCompressed,H=b.start!==A.start||b.end!==A.end;if(!H&&U){j.updatePositions(Q.getCompressionContext());return}let G=Q.dataManager.getTotal(),F=q.getItemRange(A.start,A.end,G),D=Q.dataManager.getItemsInRange(F.start,F.end),y=U?Q.getCompressionContext():void 0;l();let g=u?u():gJ,x=P?P():-1;if(j.render(D,F,g,x,y),H)b.start=A.start,b.end=A.end,Y.emit("range:change",{range:{start:A.start,end:A.end}})},$=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,f=!0,O()};Q.setRenderFns(O,$);let m=typeof E==="function";Q.resizeHandlers.push((r,a)=>{let Q0=(N?a:r)-K;if(Math.abs(Q0-w.containerWidth)<1)return;if(w.containerWidth=Q0,j)j.updateContainerWidth(Q0);if(m){Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode();for(let B=0;B<Q.contentSizeHandlers.length;B++)Q.contentSizeHandlers[B]();if(j)j.clear();Q.forceRender()}});let{animateScroll:o,cancelScroll:i}=J1(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",i),Q.methods.set("scrollToIndex",(r,a)=>{let Q0=Math.floor(r/J.columns),{align:B,behavior:b,duration:U}=d0(a),H=Q.dataManager.getState(),G=q.getTotalRows(H.total),F=Math.max(0,Math.min(Q0,G-1)),D=Q.adjustScrollPosition(Z1(F,Q.sizeCache,Q.state.viewportState.containerSize,G,B,Q.getCachedCompression()));if(b==="smooth")o(Q.scrollController.getScrollTop(),D,U);else i(),Q.scrollController.scrollTo(D)}),!Q.methods.has("_getTotal"))Q.methods.set("_getTotal",()=>Q.dataManager.getTotal());Q.methods.set("_layoutToDataIndex",(r)=>r*J.columns),Q.methods.set("_dataToLayoutIndex",(r)=>Math.floor(r/J.columns)),Q.idleHandlers.push(()=>{if(j)j.sortDOM()}),Q.destroyHandlers.push(()=>{if(i(),j)j.destroy(),j=null;X.root.classList.remove(`${_}--grid`)})},destroy(){if(j)j.destroy(),j=null}}};var JJ=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.containerSize,X=0,Y=[],W=()=>{let E=(q-1)*j;X=Math.max(0,(Q-E)/q),Y=Array(q);let w=X+j;for(let L=0;L<q;L++)Y[L]=L*w};W();let Z=[],_=0,N=[],K=(E)=>{let w=0,L=E[0];for(let T=1;T<E.length;T++){let C=E[T];if(C<L)L=C,w=T}return w},S=(E,w)=>{if(E<=0)return _=0,Z=[],[];let L=Array(q).fill(0),T=Array(q);for(let R=0;R<q;R++)T[R]=[];let C=Array(E);for(let R=0;R<E;R++){let u=K(L),P=w(R),d=L[u];C[R]={index:R,x:Y[u],y:d,lane:u,size:P,crossSize:X},T[u].push(R),L[u]=d+P+j}Z=T;let h=0;for(let R=0;R<q;R++){let u=L[R],P=u>0?u-j:0;if(P>h)h=P}return _=h,C},V=(E)=>{if(E.length===0)return _>0?_:0;if(_>0)return _;let w=Array(q).fill(0);for(let T of E){let C=T.y+T.size,h=w[T.lane];if(C>h)w[T.lane]=C}let L=0;for(let T=0;T<q;T++)if(w[T]>L)L=w[T];return L},M=(E,w,L)=>{if(E.length===0||L<=w)return N.length=0,N;if(Z.length===0||Z.length!==q)return v(E,w,L);N.length=0;for(let T=0;T<q;T++){let C=Z[T],h=C.length;if(h===0)continue;let R=0,u=h;while(R<u){let P=R+u>>>1,d=E[C[P]];if(d.y+d.size<=w)R=P+1;else u=P}for(let P=R;P<h;P++){let d=E[C[P]];if(d.y>=L)break;N.push(d)}}return N},v=(E,w,L)=>{let T=[];for(let C of E)if(C.y+C.size>w&&C.y<L)T.push(C);return T};return{get columns(){return q},get gap(){return j},get containerSize(){return Q},update:(E)=>{let w=!1;if(E.columns!==void 0){let L=Math.max(1,Math.floor(E.columns));if(L!==q)q=L,w=!0}if(E.gap!==void 0&&E.gap!==j)j=E.gap,w=!0;if(E.containerSize!==void 0&&E.containerSize!==Q)Q=E.containerSize,w=!0;if(w)W()},calculateLayout:S,getTotalSize:V,getVisibleItems:M}};var mJ=(J=200)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let W=document.createElement("div");return W.setAttribute("role","option"),W},release:(Y)=>{if(Y.remove(),q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-lane"),q.push(Y)},clear:()=>{q.length=0}}},xJ=1,QJ=(J,q,j,Q=!1,X,Y,W)=>{let Z=mJ(),_=new Map,N=new Set,K=0,S="",V=-1,M={selected:!1,focused:!1},v=(f,k)=>{return M.selected=f,M.focused=k,M},I=`${j}-item ${j}-masonry-item`,E=`${j}-group-header`,w=`${j}-item--selected`,L=`${j}-item--focused`,T=(f,k)=>{if(typeof k==="string")f.innerHTML=k;else f.replaceChildren(k)},C=(f,k,z)=>{f.classList.toggle(w,k),f.classList.toggle(L,z)},h=(f,k)=>{if(Q)f.style.transform=`translate(${Math.round(k.y)}px, ${Math.round(k.x)}px)`;else f.style.transform=`translate(${Math.round(k.x)}px, ${Math.round(k.y)}px)`},R=(f,k)=>{if(Q)f.style.width=`${k.size}px`,f.style.height=`${k.crossSize}px`;else f.style.width=`${k.crossSize}px`,f.style.height=`${k.size}px`},u=(f,k,z,A,O)=>{let $=Z.acquire(),m=!!k.__groupHeader,o=v(A,O);if($.className=m?E:I,$.dataset.index=String(f),$.dataset.id=String(k.id),$.dataset.lane=String(z.lane),m)$.setAttribute("role","presentation"),$.removeAttribute("aria-selected"),$.removeAttribute("aria-setsize"),$.removeAttribute("aria-posinset"),$.removeAttribute("id");else{if($.setAttribute("role","option"),$.ariaSelected=String(A),Y)$.id=`${Y}-item-${f}`;if(X){let r=X();if(r!==V)V=r,S=String(r);$.setAttribute("aria-setsize",S);let a=W?W(f):f+1;$.setAttribute("aria-posinset",String(a))}}R($,z);let i=q(k,f,o);return T($,i),C($,A,O),h($,z),{element:$,lastItemId:k.id,lastSelected:A,lastFocused:O,lastY:z.y,lastX:z.x,lastSize:z.size,lastCrossSize:z.crossSize,lastSeenFrame:K}},P=(f,k,z,A)=>{K++,N.clear();for(let $=0;$<k.length;$++)N.add(k[$].index);for(let[$,m]of _)if(N.has($))m.lastSeenFrame=K;else if(K-m.lastSeenFrame>xJ)Z.release(m.element),_.delete($);let O=null;for(let $=0;$<k.length;$++){let m=k[$],o=m.index,i=f(o);if(!i)continue;let r=z.has(i.id),a=o===A,Q0=_.get(o);if(Q0){let B=Q0.lastItemId!==i.id,b=Q0.lastSelected!==r,U=Q0.lastFocused!==a,H=Q0.lastY!==m.y||Q0.lastX!==m.x,G=Q0.lastSize!==m.size||Q0.lastCrossSize!==m.crossSize;if(B){let F=v(r,a),D=q(i,o,F);if(T(Q0.element,D),Q0.element.dataset.id=String(i.id),Q0.lastItemId=i.id,!i.__groupHeader){let g=W?W(o):o+1;Q0.element.setAttribute("aria-posinset",String(g))}}if(B||b||U)C(Q0.element,r,a),Q0.element.ariaSelected=String(r),Q0.lastSelected=r,Q0.lastFocused=a;if(G)R(Q0.element,m),Q0.lastSize=m.size,Q0.lastCrossSize=m.crossSize;if(H)h(Q0.element,m),Q0.lastY=m.y,Q0.lastX=m.x}else{let B=u(o,i,m,r,a);if(!O)O=document.createDocumentFragment();O.appendChild(B.element),_.set(o,B)}}if(O)J.appendChild(O)},d=()=>{for(let{element:f}of _.values())Z.release(f);_.clear(),J.innerHTML=""};return{render:P,getElement:(f)=>_.get(f)?.element,updateItemClasses:(f,k,z)=>{let A=_.get(f);if(!A)return;let O=A.lastSelected!==k,$=A.lastFocused!==z;if(O||$)C(A.element,k,z),A.lastSelected=k,A.lastFocused=z},sortDOM:()=>{a0(J,_.keys(),(f)=>_.get(f)?.element)},clear:d,destroy:()=>{d(),Z.clear()}}};var dJ=new Set,lJ=100,o1=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let q=null,j=null,Q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(X){let{dom:Y,emitter:W,config:Z,rawConfig:_}=X,N=Z.classPrefix,K=Z.horizontal;if(Z.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");Y.root.classList.add(`${N}--masonry`);let S=S0(_.padding),V=M1(S,K),M=s0(S,K),v=()=>{return(K?Y.viewport.clientHeight:Y.viewport.clientWidth)-V},I={columns:J.columns,gap:J.gap??0,containerSize:v()};q=JJ(I);let E=_.item,w=K&&_.item.width?_.item.width:E.height,L={containerWidth:0,columns:0,gap:0,columnWidth:0},T=typeof w==="function"?(G)=>w(G,L):()=>w,C=()=>{let G=X.dataManager.getTotal(),F=q;L.containerWidth=F.containerSize,L.columns=F.columns,L.gap=F.gap;let D=(F.columns-1)*F.gap;L.columnWidth=Math.max(0,(L.containerWidth-D)/F.columns),Q=F.calculateLayout(G,T),l();let y=q.getTotalSize(Q);X.sizeCache.getTotalSize=()=>y,X.updateContentSize(y)},h=_.item.template,R=o0(X.methods,()=>X.dataManager.getTotal());j=QJ(Y.items,h,N,K,R.getSetSize,Z.ariaIdPrefix,R.getPosInSet),X.setUpdateItemClassesFn((G,F,D)=>{j?.updateItemClasses(G,F,D)});let u=[],P=new Int32Array(0),d=[],l=()=>{let G=I.columns,F=Q.length;if(u=Array.from({length:G},()=>[]),P.length<F)P=new Int32Array(F);for(let D=0;D<F;D++){let y=Q[D],g=u[y.lane].length;u[y.lane].push(D),P[D]=g}d=Array(G);for(let D=0;D<G;D++){let y=u[D],g=new Float64Array(y.length);for(let x=0;x<y.length;x++){let t=Q[y[x]];g[x]=t.y+t.size*0.5}d[D]=g}};X.methods.set("_getNavTotal",()=>X.dataManager.getTotal());let J0=(G,F)=>{let D=G.length;if(D===0)return-1;if(D===1)return 0;let y=0,g=D-1;while(y<g){let x=y+g>>1;if(G[x]<F)y=x+1;else g=x}if(y>0&&Math.abs(G[y-1]-F)<=Math.abs(G[y]-F))return y-1;return y};X.methods.set("_navigate",(G,F,D)=>{let y=Q[G];if(!y)return G;let g=y.lane,x=I.columns,t=P[G],X0=u[g];switch(K?F==="ArrowDown"?"ArrowRight":F==="ArrowUp"?"ArrowLeft":F==="ArrowRight"?"ArrowDown":F==="ArrowLeft"?"ArrowUp":F:F){case"ArrowDown":{if(t+1<X0.length)return X0[t+1];return G}case"ArrowUp":{if(t>0)return X0[t-1];return G}case"ArrowRight":{if(g>=x-1)return G;let e=g+1,Y0=y.y+y.size*0.5,N0=u[e];if(N0.length===0)return G;let W0=J0(d[e],Y0);return W0>=0?N0[W0]:G}case"ArrowLeft":{if(g<=0)return G;let e=g-1,Y0=y.y+y.size*0.5,N0=u[e];if(N0.length===0)return G;let W0=J0(d[e],Y0);return W0>=0?N0[W0]:G}case"Home":return 0;case"End":return D-1;case"PageDown":{let e=X.state.viewportState.containerSize,Y0=y.size>0?y.size:150,N0=Math.max(1,Math.floor(e/Y0)),W0=Math.min(t+N0,X0.length-1);return X0[W0]}case"PageUp":{let e=X.state.viewportState.containerSize,Y0=y.size>0?y.size:150,N0=Math.max(1,Math.floor(e/Y0)),W0=Math.max(0,t-N0);return X0[W0]}}return G}),X.methods.set("_scrollItemIntoView",(G)=>{let F=Q[G];if(!F)return;let D=X.scrollController.getScrollTop(),y=X.state.viewportState.containerSize,g=F.y,x=g+F.size,t=D+y;if(g<D)X.scrollController.scrollTo(X.adjustScrollPosition(Math.max(0,g)));else if(x>t)X.scrollController.scrollTo(X.adjustScrollPosition(x-y))});let p=null,f=null,k=!1,z=()=>{if(k)return;k=!0,p=X.methods.get("_getSelectedIds")??null,f=X.methods.get("_getFocusedIndex")??null},A=(G)=>X.dataManager.getItem(G),O=-1,$=-1,m=!0,o=Z.overscan*lJ,i=()=>{if(X.state.isDestroyed)return;z();let G=X.scrollController.getScrollTop(),F=X.state.viewportState.containerSize;if(!m&&G===O&&F===$)return;O=G,$=F,m=!1;let D=Math.max(0,G-o),y=G+F+o,g=q.getVisibleItems(Q,D,y),x=p?p():dJ,t=f?f():-1;if(j&&g.length>0)j.render(A,g,x,t);let X0=X.state.viewportState;X0.scrollPosition=G;let s=g.length,e=s>0?g[0].index:0,Y0=s>0?g[s-1].index:0;X0.visibleRange.start=e,X0.visibleRange.end=Y0,X0.renderRange.start=e,X0.renderRange.end=Y0;let N0=X.state.lastRenderRange;if(N0.start!==e||N0.end!==Y0)N0.start=e,N0.end=Y0,W.emit("range:change",{range:{start:e,end:Y0}})},r=()=>{X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,m=!0,i()};X.setRenderFns(i,r);let a=(G,F)=>{let D=(K?F:G)-V;if(q&&q.containerSize!==D){if(q.update({containerSize:D}),C(),j)j.clear();r()}};X.resizeHandlers.push(a);let Q0=()=>{C(),r()},B=X.dataManager,b=(G)=>{if(typeof B[G]!=="function")return;let F=B[G].bind(B);B[G]=(...D)=>{F(...D),Q0()}};b("setItems"),b("appendItems"),b("prependItems"),b("updateItem"),b("removeItem");let{animateScroll:U,cancelScroll:H}=J1(X.scrollController,X.renderIfNeeded);X.methods.set("cancelScroll",H),X.methods.set("scrollToIndex",(G,F)=>{let D=Q[G];if(!D)return;let{align:y,behavior:g,duration:x}=d0(F),t=D.y,X0=X.state.viewportState.containerSize,s=t;if(y==="center")s=t-X0/2+D.size/2;else if(y==="end"){s=t-X0+D.size;let e=q.getTotalSize(Q);if(G===Q.length-1)s=Math.max(0,e+M-X0)}if(s=Math.max(0,s),s=X.adjustScrollPosition(s),g==="smooth")U(X.scrollController.getScrollTop(),s,x);else H(),X.scrollController.scrollTo(s)}),C(),X.idleHandlers.push(()=>{if(j)j.sortDOM()}),X.destroyHandlers.push(()=>{if(H(),j)j.destroy();Y.root.classList.remove(`${N}--masonry`)})}}};var n1=(J)=>{let q=J?.mode??"single",j=J?.followFocus??!1,Q=J?.initial,X=J?.shiftArrowToggle??"origin",Y=J?.focusOnClick??!1,W=J?.contextMenu??"select",Z=v2(Q),_=null,N=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(K){let{dom:S,emitter:V,config:M}=K,{classPrefix:v,ariaIdPrefix:I}=M;if(q==="none"){K.methods.set("select",()=>{}),K.methods.set("deselect",()=>{}),K.methods.set("toggleSelect",()=>{}),K.methods.set("selectAll",()=>{}),K.methods.set("clearSelection",()=>{}),K.methods.set("getSelected",()=>[]),K.methods.set("getSelectedItems",()=>[]),K.methods.set("setSelectionMode",()=>{}),K.methods.set("selectNext",()=>{}),K.methods.set("selectPrevious",()=>{}),K.methods.set("_focusById",()=>{}),K.methods.set("_getFocusedId",()=>{return});return}S.root.classList.add(`${v}--selectable`);let E=()=>K.methods.get("_isGroupHeader"),w=(b)=>{let U=E();return U?U(b):!1},L=(b,U,H)=>{if(!E())return b;let G=b;while(G>=0&&G<H){if(!w(G))return G;G+=U}G=b-U;while(G>=0&&G<H){if(!w(G))return G;G-=U}return b},T=new Map,C=()=>{T.clear();let b=K.dataManager.getTotal(),U=K.dataManager.getCached();if(U===0)return;if(U>=b){for(let G=0;G<b;G++){let F=K.dataManager.getItem(G);if(F)T.set(F.id,G)}return}let H=K.dataManager.getStorage();if(H&&typeof H.getLoadedRanges==="function"){let G=H.getLoadedRanges();for(let F of G)for(let D=F.start;D<=F.end;D++){let y=K.dataManager.getItem(D);if(y&&!y._isPlaceholder)T.set(y.id,D)}}};V.on("data:change",({type:b,id:U})=>{if(b==="remove"){Z.selected.delete(U),C();let H=K.dataManager.getTotal();if(H>0&&Z.focusedIndex>=0){let G=Math.min(Z.focusedIndex,H-1);Z.focusedIndex=L(G,1,H)}}}),V.on("load:end",({items:b,offset:U})=>{if(!b||b.length===0)return;if(U!==void 0)for(let H=0;H<b.length;H++){let G=b[H];if(G&&G.id!==void 0)T.set(G.id,U+H)}else C()}),C(),K.methods.set("_getSelectedIds",()=>{return Z.selected}),K.methods.set("_getFocusedIndex",()=>{return Z.focusVisible?Z.focusedIndex:-1}),K.methods.set("_seedSelection",(b)=>{for(let U of b)Z.selected.add(U)});let{forceRender:h}=K.getRenderFns(),R=()=>{h();let b=(U)=>{let H=T.get(U);if(H===void 0)return;return K.dataManager.getItem(H)};V.emit("selection:change",{selected:L1(Z),items:F1(Z,b)})},u=S0(K.rawConfig.padding),P=M.horizontal?u.left:u.top,d=M.horizontal?u.right:u.bottom,l=K.getItemToScrollIndexFn(),J0=null,p=null,f=null,k=!1,z=()=>{if(k)return;k=!0,J0=K.methods.get("_getNavDelta")??null,p=K.methods.get("_navigate")??null,f=K.methods.get("_scrollItemIntoView")??null},A=()=>{return z(),J0?J0():{ud:1,lr:0,cols:0}},O=(b)=>{if(b<0)return;if(z(),f)f(b);else{let U=K.state.viewportState.containerSize,H=K.state.viewportState.scrollPosition,G=K.dataManager.getTotal(),F=K.getCachedCompression(),{visibleRange:D}=K.state.viewportState,y=l(b),g=O1(y,K.sizeCache,H,U,P,d,F,G,D);if(g!==H)K.scrollController.scrollTo(K.adjustScrollPosition(g))}},$=()=>{let b=l(Math.max(0,Z.focusedIndex)),U=K.sizeCache.getSize(b),{ud:H}=A();return Math.max(H,Math.floor(K.state.viewportState.containerSize/U)*H)};_=document.createElement("div"),_.setAttribute("aria-live","polite"),_.setAttribute("aria-atomic","true"),_.className=`${v}-live-region`,_.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",(S.root.getAttribute("role")==="grid"?S.root.parentElement??S.root:S.root).appendChild(_);let o=_;V.on("selection:change",({selected:b})=>{let U=b.length;if(U===0)o.textContent="";else if(U===1)o.textContent="1 item selected";else o.textContent=`${U} items selected`});let i=()=>{if(K.state.isDestroyed)return;if(!S.root.matches(":focus-visible"))return;let b=K.dataManager.getTotal();if(b===0)return;let U=Z.focusedIndex>=0?Math.min(Z.focusedIndex,b-1):0;U=L(U,1,b),Z=x0(Z,U),Z.focusVisible=!0,S.root.setAttribute("aria-activedescendant",`${I}-item-${U}`),O(U);let H=K.dataManager.getItem(U);if(H)K.renderer.updateItemClasses(U,Z.selected.has(H.id),!0)};if(M.interactive)S.root.addEventListener("focusin",i);let r=(b)=>{if(K.state.isDestroyed)return;let U=b.relatedTarget;if(U&&S.root.contains(U))return;let H=Z.focusedIndex;if(Z.focusVisible=!1,S.root.removeAttribute("aria-activedescendant"),H>=0){let G=K.dataManager.getItem(H);if(G)K.renderer.updateItemClasses(H,Z.selected.has(G.id),!1)}};if(M.interactive)S.root.addEventListener("focusout",r);let a=(b)=>{let U=b.target.closest("[data-index]");if(!U)return null;let H=parseInt(U.dataset.index??"-1",10);if(H<0)return null;let G=K.dataManager.getItem(H);if(!G||w(H))return null;return{item:G,index:H}},Q0=(b)=>{Z=x0(Z,b),Z.focusVisible=Y,N=b,S.root.setAttribute("aria-activedescendant",`${I}-item-${b}`)};if(K.clickHandlers.push((b)=>{if(K.state.isDestroyed)return;let U=a(b);if(!U)return;let{item:H,index:G}=U;if(V.emit("item:click",{item:H,index:G,event:b}),q==="multiple"&&b.shiftKey&&Z.focusedIndex>=0){let F=N>=0?N:Z.focusedIndex;Z=T1(Z,K.getAllLoadedItems(),F,G,q),Q0(G),R();return}Q0(G),Z=e0(Z,H.id,q),R()}),W==="select")K.contextMenuHandlers.push((b)=>{if(K.state.isDestroyed)return;let U=a(b);if(!U)return;if(!Z.selected.has(U.item.id))Z={...Z,selected:new Set([U.item.id])},Q0(U.index),R()});if(M.interactive)K.keydownHandlers.push((b)=>{if(K.state.isDestroyed)return;let U=K.dataManager.getTotal(),H=Z.focusedIndex,G=!1,F=!1,D=Z;if(z(),p)switch(b.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let y=p(Z.focusedIndex,b.key,U);if(y!==Z.focusedIndex)D=x0(Z,y),D.focusVisible=!0,G=!0,F=!0;else{b.preventDefault();return}break}}if(!G)switch(b.key){case"ArrowUp":D=A1(Z,U,M.wrap,A().ud),D.focusVisible=!0,G=!0,F=!0;break;case"ArrowDown":D=E1(Z,U,M.wrap,A().ud),D.focusVisible=!0,G=!0,F=!0;break;case"ArrowLeft":{let{lr:y}=A();if(y)D=A1(Z,U,M.wrap,y),D.focusVisible=!0,G=!0,F=!0;break}case"ArrowRight":{let{lr:y}=A();if(y)D=E1(Z,U,M.wrap,y),D.focusVisible=!0,G=!0,F=!0;break}case"PageUp":D=h1(Z,U,$(),"up"),D.focusVisible=!0,G=!0,F=!0;break;case"PageDown":D=h1(Z,U,$(),"down"),D.focusVisible=!0,G=!0,F=!0;break;case"Home":{D=S2(Z,U),D.focusVisible=!0,G=!0,F=!0;break}case"End":{D=f2(Z,U);let y=K.methods.get("_ensureTailLoaded");if(y)y();D.focusVisible=!0,G=!0,F=!0;break}}switch(b.key){case" ":case"Enter":if(b.key===" "&&b.shiftKey&&q==="multiple"&&Z.focusedIndex>=0){if(N>=0){let y=K.getAllLoadedItems();D=T1(D,y,N,Z.focusedIndex,q)}D.focusVisible=!0,G=!0;break}if(Z.focusedIndex>=0&&!w(Z.focusedIndex)){let y=K.dataManager.getItem(Z.focusedIndex);if(y)D=e0(Z,y.id,q),D.focusVisible=!0;N=Z.focusedIndex,G=!0}break;case"a":if((b.ctrlKey||b.metaKey)&&q==="multiple"){let y=K.getAllLoadedItems();if(Z.selected.size===y.length)D=f1(D);else D=S1(D,y,q);D.focusVisible=!0,G=!0,F=!1}break;case"Delete":case"Backspace":if(Z.selected.size>0){let y=(g)=>{let x=T.get(g);return x===void 0?void 0:K.dataManager.getItem(x)};V.emit("delete",{selected:L1(Z),items:F1(Z,y)}),G=!0}break}if(F&&E()){let y=D.focusedIndex>H?1:-1;D.focusedIndex=L(D.focusedIndex,y,U)}if(b.shiftKey&&q==="multiple"&&F&&D.focusedIndex>=0){let y=b.key==="ArrowUp"||b.key==="ArrowDown"||b.key==="ArrowLeft"||b.key==="ArrowRight",g=(b.ctrlKey||b.metaKey)&&(b.key==="Home"||b.key==="End");if(y){if(X==="origin"){if(H>=0){let x=K.dataManager.getItem(H);if(x)D=e0(D,x.id,q)}}else{let x=K.dataManager.getItem(D.focusedIndex);if(x)D=e0(D,x.id,q)}N=D.focusedIndex,F=!1}else if(g){let x=K.getAllLoadedItems(),t=H>=0?H:D.focusedIndex;D=T1(D,x,t,D.focusedIndex,q),N=D.focusedIndex,F=!1}}if(j&&q==="single"&&F&&D.focusedIndex>=0){let y=K.dataManager.getItem(D.focusedIndex);if(y)D=t0(D,[y.id],q);F=!1}if(G){b.preventDefault(),Z=D;let y=Z.focusedIndex;if(y>=0)O(y),S.root.setAttribute("aria-activedescendant",`${I}-item-${y}`);else S.root.removeAttribute("aria-activedescendant");if(F){let{selected:g}=Z;if(H>=0&&H!==y){let x=K.dataManager.getItem(H);if(x)K.renderer.updateItemClasses(H,g.has(x.id),!1)}if(y>=0){let x=K.dataManager.getItem(y);if(x)K.renderer.updateItemClasses(y,g.has(x.id),!0)}}else R();if(y>=0&&y!==H){let g=K.dataManager.getItem(y);if(g)V.emit("focus:change",{id:g.id,index:y})}}});K.methods.set("select",(...b)=>{if(Z=t0(Z,b,q),b.length>0){let U=T.get(b[0]);if(U===void 0)C(),U=T.get(b[0]);if(U!==void 0)Z=x0(Z,U)}R()}),K.methods.set("deselect",(...b)=>{Z=v1(Z,b),R()}),K.methods.set("toggleSelect",(b)=>{Z=e0(Z,b,q),R()}),K.methods.set("selectAll",()=>{if(q!=="multiple")return;let b=K.getAllLoadedItems();Z=S1(Z,b,q),C(),R()}),K.methods.set("clearSelection",()=>{Z=f1(Z),R()}),K.methods.set("getSelected",()=>{return L1(Z)}),K.methods.set("getSelectedItems",()=>{return F1(Z,(U)=>{let H=T.get(U);return H===void 0?void 0:K.dataManager.getItem(H)})});let B=(b)=>{let U=K.dataManager.getTotal();if(U===0)return;if(z(),p){let D=b==="next"?"ArrowDown":"ArrowUp",y=p(Z.focusedIndex,D,U);Z=x0(Z,y)}else{let{ud:D}=A();Z=b==="next"?E1(Z,U,M.wrap,D):A1(Z,U,M.wrap,D)}let H=b==="next"?1:-1;Z.focusedIndex=L(Z.focusedIndex,H,U);let G=Z.focusedIndex,F=K.dataManager.getItem(G);if(!F)return;Z=t0(Z,[F.id],q),O(G),R()};K.methods.set("selectNext",()=>{B("next")}),K.methods.set("selectPrevious",()=>{B("previous")}),K.methods.set("_focusById",(b)=>{let U=T.get(b);if(U!==void 0){let G=K.dataManager.getItem(U);if(!G||G.id!==b)U=void 0}if(U===void 0){if(C(),U=T.get(b),U===void 0)return}Z=x0(Z,U);let H=K.dataManager.getItem(U);if(H)V.emit("focus:change",{id:H.id,index:U})}),K.methods.set("_getFocusedId",()=>{let b=Z.focusedIndex;if(b<0)return;return K.dataManager.getItem(b)?.id}),K.methods.set("_setFocusedIndex",(b)=>{Z=x0(Z,b),Z.focusVisible=!0,O(b),S.root.setAttribute("aria-activedescendant",`${I}-item-${b}`),K.renderIfNeeded()}),K.destroyHandlers.push(()=>{if(o&&o.parentNode)o.remove();S.root.removeEventListener("focusin",i),S.root.removeEventListener("focusout",r)})},destroy(){if(_&&_.parentNode)_.remove();_=null}}};var cJ=(J)=>{try{let q=sessionStorage.getItem(J);if(!q)return;return JSON.parse(q)}catch{return}},i1=(J)=>{let q=J?.autoSave,j=q?cJ(q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){Q.methods.set("getScrollSnapshot",()=>{let Z=Q.scrollController.getScrollTop(),_=Q.getCachedCompression(),N=Q.getVirtualTotal(),K=Q.methods.get("getSelected"),S=K&&K().length>0?K():void 0;if(N===0){let T={index:0,offsetInItem:0,total:0};if(S)T.selectedIds=S;return T}let V,M;if(_.isCompressed&&_.ratio!==1){let C=Z/_.virtualSize*N;V=Math.max(0,Math.min(Math.floor(C),N-1)),M=(C-V)*Q.sizeCache.getSize(V)}else V=Q.sizeCache.indexAtOffset(Z),M=Z-Q.sizeCache.getOffset(V);M=Math.max(0,M);let v={index:V,offsetInItem:M,total:N,scrollTop:Z},I=Q.sizeCache.getSize(V);if(I>0)v.offsetRatio=M/I;let E=Q.methods.get("_layoutToDataIndex");if(E){let T=E(V);if(T<0){for(let C=V+1;C<N;C++)if(T=E(C),T>=0)break}if(T>=0)v.dataIndex=T}let w=Q.methods.get("_getTotal");if(w)v.dataTotal=w();if(S)v.selectedIds=S;let L=Q.methods.get("_getFocusedId");if(L){let T=L();if(T!==void 0)v.focusedId=T}return v});let X=(Z)=>{let{index:_,offsetInItem:N,selectedIds:K,focusedId:S}=Z,V=Q.getVirtualTotal(),M=Z.dataTotal??Z.total;if(V===0&&M&&M>0){Q.dataManager.setTotal(M);let f=Q.getVirtualTotal();Q.sizeCache.rebuild(f),Q.updateCompressionMode();let k=Q.getCachedCompression();if(!k.isCompressed)Q.updateContentSize(k.virtualSize)}else if(V===0)return;if(!Number.isFinite(_)||!Number.isFinite(N))return;let v=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==v){Q.sizeCache.rebuild(v),Q.updateCompressionMode();let f=Q.getCachedCompression();if(!f.isCompressed)Q.updateContentSize(f.virtualSize)}let E=Q.getCachedCompression(),w=Q.methods.get("_dataToLayoutIndex"),L=_;if(Z.dataIndex!==void 0&&Z.dataIndex>=0)L=w?w(Z.dataIndex):Z.dataIndex;else if(w)L=w(_);let T=Math.max(0,Math.min(L,v-1)),C=Q.sizeCache.getSize(T),h=Z.offsetRatio!==void 0?Z.offsetRatio*C:Math.min(N,C),R;if(E.isCompressed&&E.ratio!==1){let f=Q.methods.get("_getTotal")?.(),k=Z.dataTotal!==void 0&&f!==void 0&&Z.dataTotal===f;if(Z.scrollTop!==void 0&&(Z.total===v||k))R=Z.scrollTop;else{let z=C>0?h/C:0;R=(T+z)/v*E.virtualSize}}else R=Q.sizeCache.getOffset(T)+h;let u=Q.state.viewportState.containerSize,P=E.isCompressed?Q.state.viewportState.totalSize:E.virtualSize,d=Math.max(0,P-u);R=Math.max(0,Math.min(R,d));let l=R===Z.scrollTop;if(Z.dataIndex!==void 0&&Z.dataIndex>=0){let f=C>0?h/C:0;Q.methods.set("_restoreAnchor",{dataIndex:Z.dataIndex,fraction:f,skipAdjust:l}),Q.methods.set("_suppressSave",!0)}if(Q.scrollController.scrollTo(R),K&&K.length>0){let f=Q.methods.get("select");if(f)f(...K)}let J0=Q.methods.get("loadVisibleRange"),p=()=>{if(S===void 0)return;let f=Q.methods.get("_focusById");if(f)f(S)};if(J0){let k=0,z=R,A=()=>{k++;let O=Q.state.viewportState.containerSize,$=Q.scrollController.getScrollTop();if(O>0){if(Math.abs($-z)>1)Q.scrollController.scrollTo(z);J0().then(p)}else if(k<10)requestAnimationFrame(A)};requestAnimationFrame(A)}else{let f=Q.methods.get("reload");if(f)requestAnimationFrame(()=>{f().then(p)});else requestAnimationFrame(p)}};Q.methods.set("restoreScroll",X);let Y=!!j&&!!q,W=null;if(q){W=()=>{if(Y)return;if(Q.methods.has("_suppressSave"))return;let N=Q.methods.get("getScrollSnapshot");if(!N)return;let K=N();try{sessionStorage.setItem(q,JSON.stringify(K))}catch{}},Q.methods.set("_saveSnapshot",W);let Z=0,_=()=>{if(Z)return;Z=requestAnimationFrame(()=>{Z=0,W()})};if(Q.idleHandlers.push(_),Q.emitter.on("selection:change",_),Q.emitter.on("focus:change",_),j&&j.total&&j.total>0){let N=Q.methods.get("_cancelAutoLoad");if(N)N();Q.dataManager.setTotal(j.total)}}if(j){let Z=!1;if(j.selectedIds&&j.selectedIds.length>0){let N=Q.methods.get("_seedSelection");if(N)N(j.selectedIds),Z=!0}let _=Z?(({selectedIds:N,...K})=>K)(j):j;queueMicrotask(()=>{if(X(_),Y=!1,W)W()})}}}};var qJ=(J,q=50,j=1/0,Q=!0)=>{let X=J,Y=[],W=0,Z=()=>{Y=X.map((E,w)=>({def:E,index:w,width:0,minWidth:rJ(E.minWidth??q,1),maxWidth:E.maxWidth??j,resizable:E.resizable??Q,offset:0}))},_=(E)=>{if(Y.length===0){W=0;return}let w=0,L=0;for(let T=0;T<Y.length;T++){let C=Y[T],h=C.def;if(h.width!==void 0)C.width=t1(h.width,C.minWidth,C.maxWidth),w+=C.width;else L++}if(L>0){let C=Math.max(0,E-w)/L;for(let h=0;h<Y.length;h++){let R=Y[h];if(R.def.width===void 0)R.width=t1(C,R.minWidth,R.maxWidth)}}N()},N=()=>{let E=0;for(let w=0;w<Y.length;w++){let L=Y[w];L.offset=E,E+=L.width}W=E},K=(E,w)=>{if(E<0||E>=Y.length)return 0;let L=Y[E];if(!L.resizable)return L.width;let T=t1(w,L.minWidth,L.maxWidth);return L.width=T,N(),T},S=(E)=>{return Y[E]},V=(E)=>{if(Y.length===0)return;if(E<0)return Y[0];if(E>=W)return Y[Y.length-1];let w=0,L=Y.length-1;while(w<L){let T=w+L>>>1,C=Y[T];if(E<C.offset)L=T-1;else if(E>=C.offset+C.width)w=T+1;else return C}return Y[w]},M=(E)=>{if(E<0||E>=Y.length)return 0;return Y[E].offset},v=(E)=>{if(E<0||E>=Y.length)return 0;return Y[E].width},I=(E)=>{X=E,Z()};return Z(),{get columns(){return Y},get totalWidth(){return W},resolve:_,updateColumns:I,resizeColumn:K,getColumn:S,getColumnAtX:V,getColumnOffset:M,getColumnWidth:v}},t1=(J,q,j)=>Math.min(j,Math.max(q,J)),rJ=(J,q)=>Math.max(q,J);var jJ=(J,q,j,Q,X,Y)=>{let W=document.createElement("div");W.setAttribute("role","rowgroup");let Z=document.createElement("div");Z.className=`${j}-table-header`,Z.setAttribute("role","row"),Z.setAttribute("aria-rowindex","1"),Z.style.height=`${q}px`;let _=document.createElement("div");_.className=`${j}-table-header-scroll`,_.setAttribute("role","presentation"),Z.appendChild(_),W.appendChild(Z),J.insertBefore(W,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${q}px`);let N=[],K=[],S=[],V=!0,M=null,v="asc",I=null,E=!1,w=-1,L=0,T=0,C=(A,O)=>{let $=document.createElement("div");$.className=`${j}-table-header-cell`,$.setAttribute("role","columnheader"),$.setAttribute("aria-colindex",String(O+1)),$.dataset.columnKey=A.def.key;let m=A.def.align;if(m==="center")$.classList.add(`${j}-table-header-cell--center`);else if(m==="right")$.classList.add(`${j}-table-header-cell--right`);let o=document.createElement("div");o.className=`${j}-table-header-content`;let i=A.def.header?A.def.header(A.def):A.def.label;if(typeof i==="string")o.textContent=i;else o.appendChild(i);if($.appendChild(o),A.def.sortable){let r=document.createElement("span");r.className=`${j}-table-header-sort`,r.setAttribute("aria-hidden","true"),$.appendChild(r),S.push(r),$.classList.add(`${j}-table-header-cell--sortable`)}else S.push(null);if(A.resizable){let r=document.createElement("div");r.className=`${j}-table-header-resize`,r.dataset.resizeIndex=String(O),$.appendChild(r),K.push(r)}return $},h=(A)=>{I=A,_.textContent="",N=[],K=[],S=[];let O=A.columns;for(let $=0;$<O.length;$++){let m=O[$],o=C(m,$);N.push(o),_.appendChild(o)}if(R(A),M)u(M,v)},R=(A)=>{I=A;let O=A.columns;_.style.width=`${A.totalWidth}px`;for(let $=0;$<N.length&&$<O.length;$++){let m=N[$],o=O[$];m.style.width=`${o.width}px`}},u=(A,O)=>{if(M=A,v=O,!I)return;let $=I.columns;for(let m=0;m<S.length&&m<$.length;m++){let o=S[m];if(!o)continue;if($[m].def.key===A&&A!==null)o.textContent=O==="asc"?"▲":"▼",o.style.opacity="0.7",N[m].setAttribute("aria-sort",O==="asc"?"ascending":"descending");else o.textContent="",o.style.opacity="0",N[m].removeAttribute("aria-sort")}},P=(A)=>{_.style.transform=`translateX(${-A}px)`},d=(A)=>{let O=A.target;if(!O.dataset.resizeIndex)return;if(A.preventDefault(),A.stopPropagation(),w=parseInt(O.dataset.resizeIndex,10),!I)return;let $=I.getColumn(w);if(!$||!$.resizable)return;E=!0,L=A.clientX,T=$.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",O.classList.add(`${j}-table-header-resize--active`),O.setPointerCapture(A.pointerId),O.addEventListener("pointermove",l),O.addEventListener("pointerup",J0),O.addEventListener("pointercancel",J0)},l=(A)=>{if(!E||!I)return;let O=A.clientX-L;if(Math.abs(O)<1)return;let $=Math.max(0,T+O);Q(w,$)},J0=(A)=>{if(!E)return;let O=A.target;O.removeEventListener("pointermove",l),O.removeEventListener("pointerup",J0),O.removeEventListener("pointercancel",J0);try{O.releasePointerCapture(A.pointerId)}catch{}O.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",E=!1,w=-1},p=(A)=>{let O=A.target;if(O.dataset.resizeIndex!==void 0)return;if(E)return;let $=O;while($&&!$.dataset.columnKey)if($=$.parentElement,$===Z||$===null)return;if(!$||!$.dataset.columnKey)return;let m=$.dataset.columnKey;if(!I)return;let o=I.columns,i=-1;for(let a=0;a<o.length;a++)if(o[a].def.key===m){i=a;break}if(i===-1)return;let r=o[i];if(Y)Y({key:m,index:i,event:A});if(r.def.sortable&&X){let a;if(M===m)if(v==="asc")a="desc";else a=null;else a="asc";X({key:m,index:i,direction:a})}};return Z.addEventListener("pointerdown",d),Z.addEventListener("click",p),{element:Z,update:R,updateSort:u,rebuild:h,show:()=>{if(V)return;V=!0,Z.style.display=""},hide:()=>{if(!V)return;V=!1,Z.style.display="none"},destroy:()=>{Z.removeEventListener("pointerdown",d),Z.removeEventListener("click",p),J.style.removeProperty("--vlist-table-header-height"),W.remove(),N=[],K=[],S=[],I=null,V=!1},syncScroll:P}};var sJ=()=>{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}}},YJ=(J,q,j,Q,X,Y,W,Z,_)=>{let N=sJ(),K=new Map,S=-1,V=j,M=null,v=null,I=null,E=(F,D)=>{v=F,I=D},w=(F,D)=>{if(D)F.setAttribute("aria-selected","true");else F.removeAttribute("aria-selected")},L=(F,D,y,g)=>{F.setAttribute("role",D),F.setAttribute("data-id",String(y)),F.setAttribute("data-index",String(g))},T=(F)=>String(F).startsWith("__placeholder_"),C=`${X}-item ${X}-table-row`,h=`${X}-item--selected`,R=`${X}-item--focused`,u=`${X}-table-cell`,P=`${X}-table-cell--center`,d=`${X}-table-cell--right`,l=`${X}-item--odd`,J0=`${X}-item--placeholder`,p=`${X}-item--replaced`,f=`${X}-item ${X}-table-row ${X}-table-group-header`,k=`${X}-table-group-header-content`,z=(F,D,y,g,x=!1)=>{if(y.def.cell){let t=y.def.cell(D,y.def,g);if(typeof t==="string")F.innerHTML=t;else F.replaceChildren(t)}else{let t=D[y.def.key],X0=t!=null?String(t):"";if(x&&X0)F.innerHTML=`<span>${X0}</span>`;else F.textContent=X0}},A=(F,D,y,g,x=!1)=>{let t=C;if(Z){if(M){let X0=M(D);if(X0>=0&&(X0&1)===1)t+=` ${l}`}else if((D&1)===1)t+=` ${l}`}if(x)t+=` ${J0}`;if(y)t+=` ${h}`;if(g)t+=` ${R}`;F.className=t},O=(F,D,y)=>{if(y?.compression?.isCompressed)return Math.round(Q1(F,y.scrollPosition,D,y.totalItems,y.containerSize,y.compression,y.rangeStart));return D.getOffset(F)},$=(F,D)=>{let y=D.def.align;if(y==="center")F.classList.add(P),F.classList.remove(d);else if(y==="right")F.classList.add(d),F.classList.remove(P);else F.classList.remove(P,d)},m=(F,D)=>{let g=V.columns.length;if(D.length===g)return D;let x=[];for(let t=0;t<g;t++){let X0;if(t<D.length)X0=D[t];else X0=document.createElement("div"),X0.className=u,F.appendChild(X0);x.push(X0)}for(let t=g;t<D.length;t++)D[t].remove();return x},o=(F,D,y,g)=>{let x=N.acquire(),t=F,X0=y.getSize(D),s=O(D,y,g);x.style.cssText=`width:${V.totalWidth}px;height:${X0}px;transform:translateY(${s}px)`,x.className=f,L(x,"presentation",F.id,D),x.removeAttribute("aria-selected"),x.removeAttribute("aria-rowindex"),x.replaceChildren();let e=document.createElement("div");if(e.className=k,I){let Y0=I(t.groupKey,t.groupIndex);if(typeof Y0==="string")e.innerHTML=Y0;else e.appendChild(Y0)}return x.appendChild(e),{element:x,cells:[],index:D,isGroupHeader:!0,lastItemId:F.id,lastSelected:!1,lastFocused:!1,lastOffset:s,lastHeight:X0}},i=(F,D,y,g,x,t)=>{let X0=N.acquire(),s=x.getSize(D),e=O(D,x,t),Y0=T(F.id);X0.style.cssText=`width:${V.totalWidth}px;height:${s}px;transform:translateY(${e}px)`,A(X0,D,y,g,Y0),L(X0,"row",F.id,D),X0.id=`${Y}-${D}`,X0.setAttribute("aria-rowindex",String(D+2)),w(X0,y);let N0=m(X0,[]),W0=V.columns;for(let O0=0;O0<N0.length&&O0<W0.length;O0++){let F0=N0[O0],R0=W0[O0];F0.style.cssText=`left:${R0.offset}px;width:${R0.width}px`,F0.setAttribute("role","gridcell"),F0.setAttribute("aria-colindex",String(O0+1)),$(F0,R0),z(F0,F,R0,D,Y0)}return{element:X0,cells:N0,index:D,isGroupHeader:!1,lastItemId:F.id,lastSelected:y,lastFocused:g,lastOffset:e,lastHeight:s}},r=(F,D,y,g,x)=>{for(let[Y0,N0]of K)if(Y0<D.start||Y0>D.end)N.release(N0.element),K.delete(Y0);let t=!1,X0=W();if(X0!==S)S=X0,t=!0;let s=null,e=q();M=typeof Z==="string"&&_?_():null;for(let Y0=D.start;Y0<=D.end;Y0++){let N0=Y0-D.start,W0=F[N0];if(!W0)continue;let O0=y.has(W0.id),F0=Y0===g,R0=v?v(W0):!1,B0=K.get(Y0);if(B0){if(B0.isGroupHeader!==R0){N.release(B0.element),K.delete(Y0);let V0=R0?o(W0,Y0,e,x):i(W0,Y0,O0,F0,e,x);if(K.set(Y0,V0),!s)s=document.createDocumentFragment();s.appendChild(V0.element);continue}if(R0){if(B0.lastItemId!==W0.id){let G0=W0,M0=B0.element.firstElementChild;if(M0&&I){let $0=I(G0.groupKey,G0.groupIndex);if(typeof $0==="string")M0.innerHTML=$0;else M0.replaceChildren($0)}B0.element.setAttribute("data-id",String(W0.id)),B0.lastItemId=W0.id}let k0=O(Y0,e,x);if(B0.lastOffset!==k0)B0.lastOffset=k0,B0.element.style.transform=`translateY(${k0}px)`;let _0=e.getSize(Y0);if(B0.lastHeight!==_0)B0.lastHeight=_0,B0.element.style.height=`${_0}px`}else{let V0=B0.lastItemId!==W0.id,k0=B0.lastSelected!==O0,_0=B0.lastFocused!==F0;if(V0){let $0=B0.lastItemId!=null&&T(B0.lastItemId),b0=T(W0.id);if(!b0&&m0(y,Y0,W0.id))O0=!0;let C0=V.columns;for(let z0=0;z0<B0.cells.length&&z0<C0.length;z0++)z(B0.cells[z0],W0,C0[z0],Y0,b0);if(A(B0.element,Y0,O0,F0,b0),B0.element.setAttribute("data-id",String(W0.id)),w(B0.element,O0),$0&&!b0)B0.element.classList.add(p),setTimeout(()=>{B0.element.classList.remove(p)},300);B0.lastItemId=W0.id,B0.lastSelected=O0,B0.lastFocused=F0}else if(k0||_0)A(B0.element,Y0,O0,F0,T(W0.id)),w(B0.element,O0),B0.lastSelected=O0,B0.lastFocused=F0;let G0=O(Y0,e,x);if(B0.lastOffset!==G0)B0.lastOffset=G0,B0.element.style.transform=`translateY(${G0}px)`;let M0=e.getSize(Y0);if(B0.lastHeight!==M0)B0.lastHeight=M0,B0.element.style.height=`${M0}px`;if(t)B0.element.setAttribute("aria-rowindex",String(Y0+2))}}else{if(m0(y,Y0,W0.id))O0=!0;let V0=R0?o(W0,Y0,e,x):i(W0,Y0,O0,F0,e,x);if(K.set(Y0,V0),!s)s=document.createDocumentFragment();s.appendChild(V0.element)}}if(s)J.appendChild(s)},a=(F)=>{let D=q();for(let[y,g]of K){let x=O(y,D,F);if(g.lastOffset!==x)g.lastOffset=x,g.element.style.transform=`translateY(${x}px)`}},Q0=(F,D,y,g)=>{let x=K.get(F);if(!x)return;if(x.isGroupHeader)return;let t=V.columns;for(let X0=0;X0<x.cells.length&&X0<t.length;X0++)z(x.cells[X0],D,t[X0],F);x.element.setAttribute("data-id",String(D.id)),x.lastItemId=D.id,A(x.element,F,y,g),w(x.element,y),x.lastSelected=y,x.lastFocused=g},B=(F,D,y)=>{let g=K.get(F);if(!g)return;if(g.isGroupHeader)return;let x=g.lastSelected!==D,t=g.lastFocused!==y;if(x||t)A(g.element,F,D,y),w(g.element,D),g.lastSelected=D,g.lastFocused=y},b=(F)=>{V=F;let D=F.columns;for(let[,y]of K)if(y.element.style.width=`${F.totalWidth}px`,y.cells.length>0)for(let g=0;g<y.cells.length&&g<D.length;g++){let x=y.cells[g],t=D[g];x.style.left=`${t.offset}px`,x.style.width=`${t.width}px`}},U=(F)=>{return K.get(F)?.element},H=()=>{for(let[,F]of K)N.release(F.element);K.clear(),S=-1};return{render:r,updatePositions:a,updateItem:Q0,updateItemClasses:B,getElement:U,updateColumnLayout:b,setGroupHeaderFn:E,clear:H,destroy:()=>{H(),N.clear()}}};var aJ=new Set,e1=(J)=>{if(!J.columns||J.columns.length===0)throw Error("[vlist] withTable: columns must be a non-empty array");if(J.rowHeight===void 0&&J.estimatedRowHeight===void 0)throw Error("[vlist] withTable: either rowHeight or estimatedRowHeight is required");let q=null,j=null,Q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(X){let{dom:Y,emitter:W,config:Z}=X,{classPrefix:_}=Z;if(Z.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(Z.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let N=J.resizable??!0,K=J.minColumnWidth??50,S=J.maxColumnWidth??1/0,V=J.columnBorders??!1,M=J.rowBorders??!0,v=J.rowHeight,I=X.rawConfig.padding,E=!I?0:typeof I==="number"?I*2:I.length===2?I[1]*2:I[1]+I[3],w=J.headerHeight??(typeof v==="number"?v:40),L=J.sort?.key??null,T=J.sort?.direction??"asc";if(q=qJ(J.columns,K,S,N),typeof v==="function")X.setSizeConfig(v);else if(typeof v==="number")X.setSizeConfig(v);if(X.rebuildSizeCache(),Y.root.classList.add(`${_}--table`),M)Y.root.classList.add(`${_}--table-row-borders`);if(V)Y.root.classList.add(`${_}--table-col-borders`);Y.root.setAttribute("role","grid"),Y.root.setAttribute("aria-colcount",String(J.columns.length));let C=-1,h=Y.items.getAttribute("aria-label");if(h)Y.root.setAttribute("aria-label",h),Y.items.removeAttribute("aria-label");Y.items.setAttribute("role","rowgroup"),Y.viewport.setAttribute("role","none"),Y.content.setAttribute("role","none"),Y.viewport.removeAttribute("tabindex");let R=X.getContainerWidth()-E;q.resolve(R);let u=(U,H)=>{if(!q)return;let G=q.getColumn(U);if(!G)return;let F=G.width,D=q.resizeColumn(U,H);if(j)j.update(q);if(Q)Q.updateColumnLayout(q);l(),W.emit("column:resize",{key:G.def.key,index:U,previousWidth:F,width:D})},P=(U)=>{if(U.direction===null)L=null,T="asc";else L=U.key,T=U.direction;if(j)j.updateSort(L,T);W.emit("column:sort",U)},d=(U)=>{W.emit("column:click",U)};if(j=jJ(Y.root,w,_,u,P,d),j.rebuild(q),L)j.updateSort(L,T);let l=()=>{if(!q)return;let U=q.totalWidth;Y.content.style.minWidth=`${U}px`,Y.items.style.minWidth=`${U}px`};l(),Q=YJ(Y.items,()=>X.sizeCache,q,J.columns,_,Z.ariaIdPrefix,()=>X.dataManager.getTotal(),X.rawConfig.item?.striped,()=>X.getStripeIndexFn());let J0=null,p=null,f=!1,k=()=>{if(f)return;f=!0,J0=X.methods.get("_getSelectedIds")??null,p=X.methods.get("_getFocusedIndex")??null},z=-1,A=-1,O=-1,$=!0,m=Z.overscan,o={start:0,end:0},i={start:0,end:0},r=()=>{if(X.state.isDestroyed)return;let U=X.scrollController.getScrollTop(),H=X.state.viewportState.containerSize,G=X.getVirtualTotal(),F=X.state.viewportState.isCompressed;if(!$&&U===z&&H===A&&G===O)return;z=U,A=H,O=G,$=!1;let D=G+1;if(D!==C)C=D,Y.root.setAttribute("aria-rowcount",String(D));X.getVisibleRange(U,H,G,o),i.start=Math.max(0,o.start-m),i.end=Math.min(G-1,o.end+m);let y=X.state.viewportState;y.scrollPosition=U,y.visibleRange.start=o.start,y.visibleRange.end=o.end,y.renderRange.start=i.start,y.renderRange.end=i.end;let g=X.state.lastRenderRange,x=g.start!==i.start||g.end!==i.end;if(!x&&F){Q.updatePositions(X.getCompressionContext());return}if(!x)return;let t=F?X.getCompressionContext():void 0,X0=X.dataManager.getItemsInRange(i.start,i.end);k();let s=J0?J0():aJ,e=p?p():-1;Q.render(X0,i,s,e,t),g.start=i.start,g.end=i.end,W.emit("range:change",{range:{start:i.start,end:i.end}})},a=()=>{if(X.state.isDestroyed)return;X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,$=!0,r()};X.setRenderFns(r,a),X.setUpdateItemClassesFn((U,H,G)=>{Q?.updateItemClasses(U,H,G)});let Q0=j,B=-1,b=()=>{let U=Y.viewport.scrollLeft;if(U!==B){if(B=U,Q0.syncScroll)Q0.syncScroll(U)}};X.afterScroll.push(b),Y.viewport.addEventListener("scroll",b,{passive:!0}),X.resizeHandlers.push((U,H)=>{if(!q)return;if(q.resolve(U-E),j)j.update(q);if(Q)Q.updateColumnLayout(q);l()}),X.methods.set("updateColumns",(U)=>{if(!q||!j)return;if(q.updateColumns(U),q.resolve(X.getContainerWidth()-E),j.rebuild(q),L)j.updateSort(L,T);if(l(),Q)Q.updateColumnLayout(q),Q.clear();X.forceRender()}),X.methods.set("resizeColumn",(U,H)=>{if(!q)return;let G;if(typeof U==="string"){let F=q.columns;G=-1;for(let D=0;D<F.length;D++)if(F[D].def.key===U){G=D;break}if(G===-1)return}else G=U;u(G,H)}),X.methods.set("getColumnWidths",()=>{if(!q)return{};let U={},H=q.columns;for(let G=0;G<H.length;G++)U[H[G].def.key]=H[G].width;return U}),X.methods.set("setSort",(U,H)=>{if(L=U,T=H??"asc",j)j.updateSort(L,T)}),X.methods.set("getSort",()=>{return{key:L,direction:T}}),X.methods.set("_getTableLayout",()=>q),X.methods.set("_updateRenderedItem",(U,H,G,F)=>{Q?.updateItem(U,H,G,F)}),X.methods.set("_replaceTableRenderer",(U)=>{Q=U}),X.methods.set("_updateTableForGroups",(U,H)=>{if(Q)Q.setGroupHeaderFn(U,H)}),X.methods.set("_getTableHeaderHeight",()=>w),X.keydownHandlers.push((U)=>{if(U.key!=="ArrowLeft"&&U.key!=="ArrowRight")return;if(!q)return;let H=q.columns;if(H.length===0)return;let G=Y.viewport.clientWidth;if(q.totalWidth<=G)return;let F=Y.viewport.scrollLeft;if(U.key==="ArrowRight"){for(let D=0;D<H.length;D++)if(H[D].offset>F+1){Y.viewport.scrollLeft=H[D].offset,U.preventDefault();return}}else{for(let D=H.length-1;D>=0;D--)if(H[D].offset<F-1){Y.viewport.scrollLeft=H[D].offset,U.preventDefault();return}if(F>0)Y.viewport.scrollLeft=0,U.preventDefault()}}),X.contentSizeHandlers.push(()=>{l()}),X.destroyHandlers.push(()=>{if(Y.viewport.removeEventListener("scroll",b),j)j.destroy(),j=null;if(Q)Q.destroy(),Q=null;Y.content.style.minWidth="",Y.items.style.minWidth="",Y.root.classList.remove(`${_}--table`),Y.root.removeAttribute("role"),Y.root.removeAttribute("aria-colcount"),Y.viewport.removeAttribute("role"),Y.viewport.setAttribute("tabindex","-1"),Y.content.removeAttribute("role");let U=Y.root.getAttribute("aria-label");if(U)Y.items.setAttribute("aria-label",U),Y.root.removeAttribute("aria-label");Y.root.removeAttribute("aria-rowcount"),Y.items.setAttribute("role","listbox")})},destroy(){if(j)j.destroy(),j=null;if(Q)Q.destroy(),Q=null}}};var J2=(J)=>{let q=J?.handle??null,j=J?.ghostClass??"vlist-sort-ghost",Q=J?.shiftDuration??150,X=J?.edgeScrollZone??40,Y=J?.edgeScrollSpeed??20,W=J?.dragThreshold??5,Z=J?.ghostContainer??null;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(_){let{dom:N,emitter:K,config:S}=_,{classPrefix:V}=S,M=S.horizontal,v=M?"translateX":"translateY",I=Q>0?`transform ${Q}ms ease`:"none",E=!1,w=-1,L=-1,T=0,C=0,h=0,R=0,u=!1,P=null,d=0,l=null,J0=0,p=0,f=0,k=null;_.methods.set("isSorting",()=>E||x);let z=(n)=>{return n.closest("[data-index]")},A=(n)=>{let U0=n.dataset.index;return U0===void 0?-1:+U0},O=(n)=>{let U0=n.getBoundingClientRect(),Z0=n.cloneNode(!0);return Z0.className=`${V}-item ${j}`,Z0.removeAttribute("data-index"),Z0.style.cssText=["position:fixed","pointer-events:none","z-index:10000",`width:${U0.width}px`,`height:${U0.height}px`,`left:${U0.left}px`,`top:${U0.top}px`,"transition:none","will-change:transform"].join(";"),(Z||document.body).appendChild(Z0),Z0},$=()=>{if(!P)return;let n=h-p,U0=R-f;P.style.left=`${n}px`,P.style.top=`${U0}px`},m=()=>{let n=_.dataManager.getTotal();if(n===0)return 0;let U0=N.viewport.getBoundingClientRect(),Z0=_.scrollController.getScrollTop(),K0=M?h-p-U0.left+N.viewport.scrollLeft+Z0:R-f-U0.top+Z0,D0=K0+J0,A0=_.sizeCache.getOffset(w)+_.sizeCache.getSize(w);if(D0>A0){let E0=_.sizeCache.indexAtOffset(D0),h0=_.sizeCache.getOffset(E0)+_.sizeCache.getSize(E0)/2,f0=D0>h0?E0:E0-1;return Math.min(Math.max(f0,w),n-1)}let T0=_.sizeCache.getOffset(w);if(K0<T0){let E0=_.sizeCache.indexAtOffset(K0),h0=_.sizeCache.getOffset(E0)+_.sizeCache.getSize(E0)/2,f0=K0<h0?E0:E0+1;return Math.max(Math.min(f0,w),0)}return w},o=()=>{let n=N.items.children,U0=J0;for(let Z0=0;Z0<n.length;Z0++){let K0=n[Z0],D0=A(K0);if(D0<0||D0===w)continue;let A0=0;if(L>w){if(D0>w&&D0<=L)A0=-U0}else if(L<w){if(D0>=L&&D0<w)A0=U0}let T0=_.sizeCache.getOffset(D0),E0=Math.round(T0+A0);K0.style.transition=I,K0.style.transform=`${v}(${E0}px)`}},i=()=>{let n=N.items.children;for(let U0=0;U0<n.length;U0++){let Z0=n[U0],K0=A(Z0);if(K0>=0)Z0.style.transform=`${v}(${Math.round(_.sizeCache.getOffset(K0))}px)`;Z0.style.transition=""}},r=()=>{let n=m();if(n===L)return;L=n,o(),K.emit("sort:move",{fromIndex:w,currentIndex:L})},a=!1,Q0=()=>{let n=N.viewport.getBoundingClientRect();if(M)return h<n.left||h>n.right;return R<n.top||R>n.bottom},B=()=>{let n=()=>{if(!E)return;let U0=N.viewport.getBoundingClientRect(),Z0=0,K0=3;if(M){let A0=h-U0.left,T0=U0.right-h;if(A0<X){let E0=Math.min(K0,1-A0/X);Z0=-Y*E0*E0}else if(T0<X){let E0=Math.min(K0,1-T0/X);Z0=Y*E0*E0}}else{let A0=R-U0.top,T0=U0.bottom-R;if(A0<X){let E0=Math.min(K0,1-A0/X);Z0=-Y*E0*E0}else if(T0<X){let E0=Math.min(K0,1-T0/X);Z0=Y*E0*E0}}let D0=Q0();if(Z0!==0){let A0=_.scrollController.getScrollTop(),T0=_.sizeCache.getTotalSize()-(M?N.viewport.clientWidth:N.viewport.clientHeight);if(Z0<0&&A0<=0||Z0>0&&A0>=T0)a=D0;else a=!0,_.scrollController.scrollTo(A0+Z0)}else a=D0;d=requestAnimationFrame(n)};d=requestAnimationFrame(n)},b=()=>{if(d)cancelAnimationFrame(d),d=0},U=(n=!1)=>{if(E=!1,u=!1,P&&P.parentNode)P.remove();P=null,l=null;let U0=`${V}-item--drag-source`,Z0=N.items.children;for(let D0=0;D0<Z0.length;D0++){let A0=Z0[D0];A0.classList.remove(U0);let T0=A(A0);if(T0>=0)A0.style.transform=`${v}(${Math.round(_.sizeCache.getOffset(T0))}px)`;A0.style.transition=""}b(),N.root.classList.remove(`${V}--sorting`),document.body.style.cursor="";let K0=window.getSelection();if(K0)K0.removeAllRanges();if(document.removeEventListener("pointermove",G),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",g),!n)_.forceRender()},H=(n)=>{if(_.state.isDestroyed)return;if(E)return;if(x)k0();if(n.button!==0)return;let U0=n.target;if(q){if(!U0.closest(q))return}let Z0=z(U0);if(!Z0)return;let K0=A(Z0);if(K0<0)return;T=n.clientX,C=n.clientY,h=n.clientX,R=n.clientY,w=K0,u=!1,l=Z0;let D0=Z0.getBoundingClientRect();p=n.clientX-D0.left,f=n.clientY-D0.top,document.addEventListener("pointermove",G),document.addEventListener("pointerup",D),document.addEventListener("pointercancel",g)},G=(n)=>{if(h=n.clientX,R=n.clientY,!u){let U0=h-T,Z0=R-C;if(Math.sqrt(U0*U0+Z0*Z0)<W)return;if(u=!0,E=!0,L=w,N.root.classList.add(`${V}--sorting`),document.body.style.cursor="grabbing",J0=_.sizeCache.getSize(w),l)P=O(l),l.classList.add(`${V}-item--drag-source`);let D0=Y0();if(D0>=0){let A0=_.dataManager.getItem(D0);k=A0?A0.id:null}else k=null;K.emit("sort:start",{index:w}),B()}if(E){if(n.preventDefault(),$(),!a)r();else if(Q0()){if(L!==w)L=w,i()}}},F=(n,U0)=>{let Z0=n!==U0&&n>=0&&U0>=0,K0=()=>{if(E=!1,Z0){if(N.root.classList.add(`${V}--settling`),K.emit("sort:end",{fromIndex:n,toIndex:U0}),k!==null)N0(k);U(!0),requestAnimationFrame(()=>{N.root.classList.remove(`${V}--settling`)})}else N.root.classList.add(`${V}--settling`),K.emit("sort:cancel",{originalItems:_.getAllLoadedItems()}),U(!1),requestAnimationFrame(()=>{N.root.classList.remove(`${V}--settling`)})};if(!P){K0();return}let D0=N.viewport.getBoundingClientRect(),A0=_.scrollController.getScrollTop(),T0=_.sizeCache.getOffset(U0),E0=Q>0?Q:150;if(P.style.transition=`left ${E0}ms ease, top ${E0}ms ease`,M)P.style.left=`${D0.left-N.viewport.scrollLeft+T0-A0}px`,P.style.top=`${D0.top}px`;else P.style.left=`${D0.left}px`,P.style.top=`${D0.top+T0-A0}px`;let h0=!1,f0=()=>{if(h0)return;h0=!0,P?.removeEventListener("transitionend",f0),K0()};P.addEventListener("transitionend",f0),setTimeout(f0,E0+50)},D=(n)=>{if(!u){document.removeEventListener("pointermove",G),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",g),l=null;return}n.preventDefault(),document.removeEventListener("pointermove",G),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",g),b(),F(w,L)},y=()=>{if(!u)return;document.removeEventListener("pointermove",G),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",g),b(),i(),F(w,w)},g=()=>{y()};N.items.addEventListener("pointerdown",H);let x=!1,t="",X0=-1,s=-1,e=[],Y0=()=>{let n=_.methods.get("_getFocusedIndex");return n?n():-1},N0=(n)=>{let U0=_.methods.get("_focusById");if(U0)U0(n)},W0=(n)=>{let U0=M?N.viewport.clientWidth:N.viewport.clientHeight,Z0=_.scrollController.getScrollTop(),K0=X1(n,_.sizeCache,Z0,U0);if(K0!==Z0)_.scrollController.scrollTo(_.adjustScrollPosition(K0))},O0=(n)=>{N.liveRegion.textContent="",N.liveRegion.offsetHeight,N.liveRegion.textContent=n},F0=(n)=>{let U0=_.dataManager.getItem(n);if(!U0)return"";return N.items.querySelector(`[data-index="${n}"]`)?.textContent?.trim()||String(U0.id)},R0=()=>String(_.dataManager.getTotal()),B0=(n)=>{let U0=_.dataManager.getItem(n);if(!U0)return;x=!0,t=U0.id,X0=n,s=n;let Z0=_.dataManager.getTotal();e=[];for(let K0=0;K0<Z0;K0++)e.push(_.dataManager.getItem(K0));N.root.classList.add(`${V}--sorting`),K.emit("sort:start",{index:n}),$0(),O0(`Grabbed ${F0(n)}. Current position ${n+1} of ${R0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},V0=()=>{if(!x)return;x=!1;let n=s,U0=F0(n),Z0=N.items.children;for(let K0=0;K0<Z0.length;K0++)Z0[K0].style.transition="none";N.root.classList.remove(`${V}--sorting`),M0(),N0(t),_.forceRender(),O0(`${U0} dropped. Final position ${n+1} of ${R0()}.`),e=[],requestAnimationFrame(()=>{let K0=N.items.children;for(let D0=0;D0<K0.length;D0++)K0[D0].style.transition=""})},k0=()=>{if(!x)return;x=!1;let n=X0,U0=N.items.children;for(let Z0=0;Z0<U0.length;Z0++)U0[Z0].style.transition="none";if(N.root.classList.remove(`${V}--sorting`),M0(),s!==n)K.emit("sort:cancel",{originalItems:e});N0(t),_.forceRender(),W0(n),O0(`Reorder cancelled. Returned to position ${n+1} of ${R0()}.`),e=[],requestAnimationFrame(()=>{let Z0=N.items.children;for(let K0=0;K0<Z0.length;K0++)Z0[K0].style.transition=""})},_0=(n)=>{if(!x)return;let U0=_.dataManager.getTotal(),Z0=s+n;if(Z0<0||Z0>=U0)return;let K0=s,D0=Z0,A0=N.items.children;for(let T0=0;T0<A0.length;T0++)A0[T0].style.transition="none";K.emit("sort:end",{fromIndex:K0,toIndex:D0}),s=D0,N0(t),_.forceRender(),W0(D0),$0(),O0(`${F0(D0)} moved. New position ${D0+1} of ${R0()}.`),requestAnimationFrame(()=>{let T0=N.items.children;for(let E0=0;E0<T0.length;E0++)T0[E0].style.transition=""})},G0=`${V}-item--kb-sorting`,M0=()=>{let n=N.items.querySelectorAll(`.${G0}`);for(let U0=0;U0<n.length;U0++)n[U0].classList.remove(G0)},$0=()=>{M0();let n=N.items.querySelector(`[data-id="${t}"]`);if(n)n.classList.add(G0)};_.afterRenderBatch.push(()=>{if(x)$0()});let b0=(n)=>{if(_.state.isDestroyed)return;if(E){if(n.key==="Escape")n.preventDefault(),n.stopImmediatePropagation(),y();return}if(x)switch(n.key){case" ":case"Enter":n.preventDefault(),n.stopImmediatePropagation(),V0();return;case"Escape":n.preventDefault(),n.stopImmediatePropagation(),k0();return;case"ArrowUp":case"ArrowLeft":n.preventDefault(),n.stopImmediatePropagation(),_0(-1);return;case"ArrowDown":case"ArrowRight":n.preventDefault(),n.stopImmediatePropagation(),_0(1);return;default:if(!n.key.startsWith("F")&&n.key!=="Tab")n.preventDefault(),n.stopImmediatePropagation();return}if(n.key===" "&&!n.shiftKey&&!n.ctrlKey&&!n.metaKey){let U0=Y0();if(U0>=0)n.preventDefault(),n.stopImmediatePropagation(),B0(U0)}};N.root.addEventListener("keydown",b0);let C0=`${V}-sort-instructions`,z0=document.createElement("div");z0.id=C0,z0.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",z0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",N.root.appendChild(z0),_.afterRenderBatch.push((n)=>{for(let U0=0;U0<n.length;U0++){let Z0=n[U0].element;Z0.setAttribute("aria-roledescription","sortable item"),Z0.setAttribute("aria-describedby",C0)}}),_.afterRenderBatch.push((n)=>{if(!E)return;for(let U0=0;U0<n.length;U0++){let{index:Z0,element:K0}=n[U0];if(Z0===w)K0.classList.add(`${V}-item--drag-source`),l=K0;else{K0.classList.remove(`${V}-item--drag-source`);let D0=0;if(L>w){if(Z0>w&&Z0<=L)D0=-J0}else if(L<w){if(Z0>=L&&Z0<w)D0=J0}let A0=Math.round(_.sizeCache.getOffset(Z0)+D0);K0.style.transform=`${v}(${A0}px)`}}}),_.destroyHandlers.push(()=>{if(x)k0();U(),N.items.removeEventListener("pointerdown",H),N.root.removeEventListener("keydown",b0),z0.remove()})}}};var XJ=(J,q)=>{let j=new Map,Q=(Y)=>{let W=j.get(Y);return W!==void 0?W:J},X=c0(Q,q);return{getOffset(Y){return X.getOffset(Y)},getSize(Y){return Q(Y)},indexAtOffset(Y){return X.indexAtOffset(Y)},getTotalSize(){return X.getTotalSize()},getTotal(){return X.getTotal()},rebuild(Y){if(Y<X.getTotal()){for(let W of j.keys())if(W>=Y)j.delete(W)}X=c0(Q,Y)},isVariable(){return!0},setMeasuredSize(Y,W){j.set(Y,W)},isMeasured(Y){return j.has(Y)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var Q2=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(q){let j=q.config.horizontal,X=q.rawConfig.item,Y=j?X.estimatedWidth:X.estimatedHeight;if(Y==null||Y<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let W=X.gap??0,Z=q.getVirtualTotal(),_=S0(q.rawConfig.padding),N=s0(_,j),K=XJ(Y+W,Z),S=q.methods.get("_setSizeCache"),V=q.methods.get("_setConstrainSize");if(!S||!V)throw Error("[vlist/withAutoSize] Incompatible builder version");S(K),V((h)=>K.isMeasured(h));let M=new WeakMap,v=0,I=!1,E=2,w=(h)=>{let R=q.scrollController.getScrollTop(),u=q.state.viewportState.containerSize;if(u<=0)return!1;let P=Math.max(0,h+N-u);return R>=P-E},L=()=>{let h=K.getTotalSize(),R=q.state.viewportState.containerSize;if(R<=0)return;let u=Math.max(0,h+N-R),P=q.scrollController.getScrollTop();if(u>P)q.scrollController.scrollTo(u)},T=()=>{let h=K.getTotalSize();q.updateContentSize(h)},C=()=>{if(I){let h=q.dom.viewport,R=h.scrollHeight,u=R-h.clientHeight,P=q.scrollController.getScrollTop(),d=u>0&&P>=u-E,l=q.getVirtualTotal(),J0=q.state.viewportState.renderRange.end,p=l>0&&J0>=l-1,f=K.getTotalSize()+N,k=Math.abs(f-R),z=p&&u>0&&P>=u-k-E,A=d||z;if(T(),I=!1,A)h.scrollHeight,L(),q.forceRender()}};J=new ResizeObserver((h)=>{if(q.state.isDestroyed)return;let R=!1,u=q.state.viewportState.visibleRange.start;for(let O of h){let $=M.get(O.target);if($===void 0)continue;let m=j?O.borderBoxSize[0].inlineSize:O.borderBoxSize[0].blockSize;if(!K.isMeasured($)){let o=m+W,i=K.getSize($);if(K.setMeasuredSize($,o),R=!0,$<u&&o!==i)v+=o-i;J.unobserve(O.target);let r=O.target;if(j)r.style.width=`${m}px`;else r.style.height=`${m}px`}}if(!R)return;let P=K.getTotalSize();if(K.rebuild(q.getVirtualTotal()),v!==0){let O=q.scrollController.getScrollTop();q.scrollController.scrollTo(O+v),v=0}let d=w(P),l=q.getVirtualTotal(),J0=q.state.viewportState.renderRange.end,p=l>0&&J0>=l-1,f=q.dom.viewport,k=f.scrollHeight-f.clientHeight,z=q.scrollController.getScrollTop(),A=k>0&&z>=k-E;if(d||p||!q.scrollController.isScrolling()){if(T(),I=!1,d||p&&A)f.scrollHeight,L()}else I=!0;q.forceRender()}),q.afterRenderBatch.push((h)=>{for(let{index:R,element:u}of h)if(!K.isMeasured(R))M.set(u,R),J.observe(u)}),q.idleHandlers.push(C),q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var oJ=50,nJ=0.1;function UJ(J){let q=0,j=0,Q=0;function X(){return Q>0?j/Q:0}function Y(_){if(q=_,_>nJ&&_<oJ)j+=_,Q++}function W(){let _=J.getTotal();if(_===0)return 0;let N=J.getItemSize();if(N<=0)return 0;let K=J.getContainerSize();if(K<=0)return 0;let S=J.getScrollPosition(),V=typeof J.getColumns==="function"?J.getColumns():1,v=Math.ceil(_/V)*N,E=Math.min(v,i0)-K,w=v-K,L=E>0?w/E:1,T=S*L,C=Math.ceil((T+K)/N);return Math.min(C*V,_)}function Z(){let _=J.getTotal(),N=W();return{progress:_>0?Math.min(100,Math.max(0,N/_*100)):0,velocity:q,velocityAvg:X(),itemCount:N,total:_}}return{getState:Z,onVelocity:Y}}export{e1 as withTable,J2 as withSortable,i1 as withSnapshots,n1 as withSelection,u1 as withScrollbar,g1 as withScale,x1 as withPage,o1 as withMasonry,r1 as withGroups,a1 as withGrid,Q2 as withAutoSize,m1 as withAsync,p1 as vlist,UJ as createStats};
|