vlist 1.7.6 → 1.7.7

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 CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  The virtual list library for every framework. Accessible by default, batteries-included, with composable features — in 11.2 KB.
4
4
 
5
- **v1.7.6** — [Changelog](./CHANGELOG.md)
5
+ **v1.7.7** — [Changelog](./CHANGELOG.md)
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/vlist.svg)](https://www.npmjs.com/package/vlist)
8
8
  [![CI](https://github.com/floor/vlist/actions/workflows/ci.yml/badge.svg)](https://github.com/floor/vlist/actions/workflows/ci.yml)
@@ -17,5 +17,10 @@
17
17
  */
18
18
  import type { GroupLayout, StickyHeader } from "./types";
19
19
  import type { SizeCache } from "../../rendering/sizes";
20
- export declare const createStickyHeader: (root: HTMLElement, layout: GroupLayout, sizeCache: SizeCache, renderInto: (slot: HTMLElement, groupIndex: number) => void, classPrefix: string, horizontal?: boolean, stickyOffset?: number, getCompressionRatio?: () => number) => StickyHeader;
20
+ /**
21
+ * Create the sticky header container element upfront (before data arrives)
22
+ * so the DOM structure is stable and doesn't cause a visual shift.
23
+ */
24
+ export declare const createStickyContainer: (root: HTMLElement, classPrefix: string, horizontal: boolean, headerHeight: number, stickyOffset?: number) => HTMLElement;
25
+ export declare const createStickyHeader: (root: HTMLElement, layout: GroupLayout, sizeCache: SizeCache, renderInto: (slot: HTMLElement, groupIndex: number) => void, classPrefix: string, horizontal?: boolean, stickyOffset?: number, getCompressionRatio?: () => number, existingContainer?: HTMLElement) => StickyHeader;
21
26
  //# sourceMappingURL=sticky.d.ts.map
@@ -89,11 +89,12 @@ export type ScrollCallback = (position: number) => void;
89
89
  /**
90
90
  * Create a scrollbar instance
91
91
  *
92
- * @param viewport - The viewport element to attach scrollbar to
92
+ * @param viewport - The viewport element (used for events and CSS variables)
93
93
  * @param onScroll - Callback when scrollbar interaction causes scroll
94
94
  * @param config - Scrollbar configuration
95
95
  * @param classPrefix - CSS class prefix (default: 'vlist')
96
96
  * @param horizontal - Whether the scrollbar is horizontal (default: false)
97
+ * @param parent - Element to append scrollbar DOM to (default: viewport)
97
98
  */
98
- export declare const createScrollbar: (viewport: HTMLElement, onScroll: ScrollCallback, config?: ScrollbarConfig, classPrefix?: string, horizontal?: boolean) => Scrollbar;
99
+ export declare const createScrollbar: (viewport: HTMLElement, onScroll: ScrollCallback, config?: ScrollbarConfig, classPrefix?: string, horizontal?: boolean, parent?: HTMLElement) => Scrollbar;
99
100
  //# sourceMappingURL=scrollbar.d.ts.map
package/dist/index.js CHANGED
@@ -1 +1 @@
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};
1
+ var _2=2,V2=(J=0)=>({velocity:0,sampleCount:0}),D2=(J,q)=>{let j=performance.now(),Q=J._lt??j,Y=J._lp??q,X=j-Q;if(J._lp=q,J._lt=j,X===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(X>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(q-Y)/X,J.sampleCount=Math.min(J.sampleCount+1,5),J};var AJ=(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}},EJ=(J,q)=>{let j=q,Q=new Float64Array(0),Y=(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)};Y(q);let X=(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 K=Z+_+1>>>1;if(Q[K]<=W)Z=K;else _=K-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)=>X(W),getTotalSize:()=>Q[j]??0,getTotal:()=>j,rebuild:(W)=>Y(W),isVariable:()=>!0}},c0=(J,q)=>{if(typeof J==="number")return AJ(J,q);return EJ(J,q)},G2=(J,q,j,Q)=>{if(Q===0)return 0;if(!J.isVariable())return Math.ceil(j/J.getSize(0));let Y=0,X=0,W=q;while(W<Q&&X<j)X+=J.getSize(W),Y++,W++;return Math.max(1,Y)};var M2=()=>{let J={},q=(X,W)=>{if(!J[X])J[X]=new Set;return J[X].add(W),()=>j(X,W)},j=(X,W)=>{J[X]?.delete(W)};return{on:q,off:j,emit:(X,W)=>{J[X]?.forEach((Z)=>{try{Z(W)}catch(_){console.error(`[vlist] Error in event handler for "${String(X)}":`,_)}})},clear:(X)=>{if(X)delete J[X];else for(let W in J)delete J[W]}}};var O2=(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},A2=(J,q,j,Q,Y)=>{let X=Q,W=Y1(q);if(X)W.classList.add(`${q}--horizontal`);if(Y!==!1)W.setAttribute("tabindex","0");let Z=Y1(`${q}-viewport`,X?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");Z.setAttribute("tabindex","-1");let _=Y1(`${q}-content`,X?"position:relative;height:100%":"position:relative;width:100%"),K=Y1(`${q}-items`,X?"position:relative;height:100%":"position:relative;width:100%");if(K.setAttribute("role","listbox"),j)K.setAttribute("aria-label",j);if(X)K.setAttribute("aria-orientation","horizontal");let U=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 U.setAttribute("aria-live","polite"),U.setAttribute("aria-atomic","true"),U.setAttribute("role","status"),_.appendChild(K),Z.appendChild(_),W.appendChild(U),W.appendChild(Z),J.appendChild(W),{root:W,viewport:Z,content:_,items:K,liveRegion:U}};var E2=(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 L2=(J,q,j,Q,Y)=>{if(Q===0||q===0){Y.start=0,Y.end=-1;return}let X=j.indexAtOffset(J),W=j.indexAtOffset(J+q);if(W<Q-1)W++;Y.start=Math.max(0,X),Y.end=Math.min(Q-1,Math.max(0,W))},F2=(J,q,j,Q)=>{Q.start=Math.max(0,J.start-q),Q.end=Math.min(j-1,J.end+q)},T2=(J,q,j,Q,Y,X=0)=>{if(Q===0)return 0;let W=Math.max(0,Math.min(J,Q-1)),Z=q.getOffset(W),_=q.getSize(W),K=q.getTotalSize(),U=Math.max(0,K+X-j),S;switch(Y){case"center":S=Z-(j-_)/2;break;case"end":S=X>0&&Z+_>=K?U:Z-j+_;break;default:S=Z}return Math.max(0,Math.min(S,U))};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[X,W]=J;return X===0&&W===0?G1:{top:X,right:W,bottom:X,left:W}}let[q,j,Q,Y]=J;return q===0&&j===0&&Q===0&&Y===0?G1:{top:q,right:j,bottom:Q,left:Y}},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 Y=[];for(let W=0;W<Q.length;W++){let Z=j(Q[W]);if(Z)Y.push(Z)}if(Y.length<=1)return;let X=J.firstChild;for(let W=0;W<Y.length;W++){let Z=Y[W];if(Z===X)X=X.nextSibling;else J.insertBefore(Z,X)}};var H2=(J,q)=>{let{dom:j,emitter:Q,resolvedConfig:Y,rawConfig:X,rendered:W,pool:Z,sharedState:_,isHorizontal:K,classPrefix:U,contentSizeHandlers:S,idleHandlers:T,afterScroll:O,clickHandlers:F,contextMenuHandlers:f,keydownHandlers:L,resizeHandlers:w,destroyHandlers:b,methods:R,onScrollFrame:y,resizeObserver:h,renderRange:p,afterRenderBatch:I}=q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return Y},get rawConfig(){return X},adjustScrollPosition(A){if(J.mp===0)return A;let d=K?J.cw:J.ch,i=J.hc.getTotalSize(),o=Math.max(0,i-d),g=Math.max(0,i+J.mp-d);if(A>=o)return g;return Math.min(A,g)},get renderer(){return{render:(A,d,i,o,g)=>{J.ss=i,J.fi=o,J.ffn()},updateItemClasses:(A,d,i)=>{J.uic(A,d,i)},updatePositions:()=>{},updateItem:()=>{},getElement:(A)=>W.get(A)??null,clear:()=>{},destroy:()=>{}}},set renderer(A){},get dataManager(){return J.dm},set dataManager(A){J.dm=A},get scrollController(){return J.sc},set scrollController(A){J.sc=A},state:_,getContainerWidth(){return J.cw},afterScroll:O,idleHandlers:T,afterRenderBatch:I,clickHandlers:F,contextMenuHandlers:f,keydownHandlers:L,resizeHandlers:w,contentSizeHandlers:S,destroyHandlers:b,methods:R,replaceTemplate(A){J.at=A},replaceRenderer(A){},replaceDataManager(A){J.dm=A},replaceScrollController(A){J.sc=A},getItemsForRange(A){let{dm:d,it:i}=J,o=[];for(let g=A.start;g<=A.end;g++){let C=d?d.getItem(g):i[g];if(C)o.push(C)}return o},getAllLoadedItems(){let A=J.dm;if(A){let d=A.getTotal(),i=[];for(let o=0;o<d;o++){let g=A.getItem(o);if(g)i.push(g)}return i}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let A=J.hc;return{isCompressed:!1,actualSize:A.getTotalSize(),virtualSize:A.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:p.start,compression:_.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,A]of W)A.remove(),Z.release(A);W.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(A,d){J.rfn=A,J.ffn=d},setVirtualTotalFn(A){J.vtf=A},rebuildSizeCache(A){J.hc.rebuild(A??J.vtf())},setSizeConfig(A){if(J.hc=c0(A,J.vtf()),J.gp>0){let d=J.hc.getTotalSize,i=J.gp;J.hc.getTotalSize=()=>{let o=d();return o>0?o-i:0}}},updateContentSize(A){let d=`${A+J.mp}px`;if(K)j.content.style.width=d;else j.content.style.height=d},updateCompressionMode(){for(let A=0;A<S.length;A++)S[A]()},setVisibleRangeFn(A){J.gvr=A},getVisibleRange(A,d,i,o){J.gvr(A,d,J.hc,i,o)},setScrollToPosFn(A){J.gsp=A},getScrollToPos(A,d,i,o){return J.gsp(A,J.hc,d,i,o)},setPositionElementFn(A){J.pef=A},setScrollFns(A,d){J.sgt=A,J.sst=(i)=>{d(i),y()}},triggerScrollFrame(){y()},setScrollTarget(A){J.st.removeEventListener("scroll",y),J.st=A,J.st.addEventListener("scroll",y,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(A){J.gcw=A.width,J.gch=A.height,J.cw=A.width(),J.ch=A.height(),_.viewportState.containerSize=K?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(A){J.sif=A},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(A){J.i2s=A},setUpdateItemClassesFn(A){J.uic=A}}},$2=(J,q,j)=>{let{rendered:Q,itemState:Y,applyTemplate:X,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:(K)=>J.it[K],isItemLoaded:(K)=>K>=0&&K<_()&&J.it[K]!==void 0,getItemsInRange:(K,U)=>{let S=[];for(let T=Math.max(0,K),O=Math.min(U,_()-1);T<=O;T++)S.push(J.it[T]);return S},setTotal:()=>{},setItems:(K,U=0,S)=>{if(U===0&&(S!==void 0||_()===0))J.it=K;else{let T=U+K.length;if(_()<T)J.it.length=T;for(let O=0;O<K.length;O++)J.it[U+O]=K[O]}if(J.ii)Z()},updateItem:(K,U)=>{let S=J.it;if(K<0||K>=S.length)return!1;let T=S[K];if(!T)return!1;S[K]={...T,...U};let O=Q.get(K);if(O)X(O,J.at(S[K],K,Y)),O.dataset.id=String(S[K].id);return!0},removeItem:(K)=>{let U=typeof K==="number"?K:J.it.findIndex((S)=>S.id===K);if(U<0||U>=J.it.length)return!1;if(J.it.splice(U,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()}}},k2=(J,q)=>{let{dom:j,classPrefix:Q,onScrollFrame:Y}=q;return{getScrollTop:()=>J.sgt(),scrollTo:(X)=>{J.sst(X),Y()},scrollBy:(X)=>{let W=J.sgt()+X;J.sst(W),Y()},isAtTop:()=>J.ls<=2,isAtBottom:(X=2)=>J.sab(X),getScrollPercentage:()=>{let X=J.hc.getTotalSize(),W=Math.max(0,X-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:(X)=>{J.ch=X},destroy:()=>{}}};var X1=(J,q,j,Q,Y=0,X=0)=>{let W=q.getOffset(J),Z=q.getSize(J),_=W+Y,K=_+Z,U=j+Q;if(_<j)return Math.max(0,W);if(K>U)return K+X-Q;return j},O1=(J,q,j,Q,Y=0,X=0,W,Z,_)=>{if(!(W!=null&&W.isCompressed&&W.ratio!==1))return X1(J,q,j,Q,Y,X);let{virtualSize:U}=W,S=q.getSize(Math.max(0,J)),T=Q-Y-X,O=Math.max(1,Math.floor(T/S)),F=q.getTotalSize();if(_){if(J>=_.start+O){let b=q.getOffset(J)+S+X-Q;return Math.max(0,b/F*U)}if(J<=_.start){let w=q.getOffset(J)-Y;return Math.max(0,w/F*U)}return j}let f=j/U*Z,L=f+O;if(J>=L){let b=q.getOffset(J)+S+X-Q;return Math.max(0,b/F*U)}if(J<f){let w=q.getOffset(J)-Y;return Math.max(0,w/F*U)}return j};var b2=(J,q,j,Q,Y,X,W,Z,_,K,U,S,T,O)=>{let F=`${j}-item--focused`,f=!1,L=null,w=null,b=null,R=null,y=!1,h=()=>{if(y)return;y=!0,L=_.get("_getNavTotal")??null,w=_.get("_getNavDelta")??null,b=_.get("_navigate")??null,R=_.get("_scrollItemIntoView")??null},p=()=>{return h(),L?L():J.vtf()},I=()=>{return h(),w?w():{ud:1,lr:0,cols:0}};_.set("_getFocusedIndex",()=>f?J.fi:-1);let A=(k,P=!0)=>{if(q.root.setAttribute("aria-activedescendant",`${Q}-item-${k}`),h(),P)if(R)R(k);else{let M=Y?J.cw:J.ch,H=J.i2s(k),G=X1(H,J.hc,J.ls,M,X,W);if(G!==J.ls)J.sst(G),J.ls=J.sgt()}J.ffn()},d=(k)=>{J.fi=k,f=!0,A(k)},i=(k,P)=>{if(J.fi=k,P||O)f=!0;let M=J.dm?J.dm.getItem(k):J.it[k];if(M&&J.ss.has(M.id))J.ss.clear();else if(J.ss.clear(),M)J.ss.add(M.id);A(k,P)},o=(k,P,M)=>{let H=k;while(H>=0&&H<M){let G=J.dm?J.dm.getItem(H):J.it[H];if(!G||!G.__groupHeader)return H;H+=P}H=k-P;while(H>=0&&H<M){let G=J.dm?J.dm.getItem(H):J.it[H];if(!G||!G.__groupHeader)return H;H-=P}return k},g=()=>{if(J.id)return;if(!q.root.matches(":focus-visible"))return;let k=p();if(k===0)return;let P=J.fi>=0?Math.min(J.fi,k-1):0;P=o(P,1,k),d(P)};q.root.addEventListener("focusin",g);let C=(k)=>{if(J.id)return;let P=k.relatedTarget;if(P&&q.root.contains(P))return;if(f=!1,J.fi>=0)K.get(J.fi)?.classList.remove(F);q.root.removeAttribute("aria-activedescendant")};q.root.addEventListener("focusout",C),U.push((k)=>{if(J.id)return;let P=p();if(P===0)return;let M=J.fi,H=M;if(k.key===" "||k.key==="Enter"){if(M>=0){let G=J.dm?J.dm.getItem(M):J.it[M];if(G&&!G.__groupHeader)i(M,!0)}k.preventDefault();return}if(h(),b)switch(k.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":H=b(M,k.key,P);break;default:return}else{let{ud:G,lr:m}=I();switch(k.key){case"ArrowUp":H=M-G;break;case"ArrowDown":H=M+G;break;case"ArrowLeft":if(!m)return;H=M-m;break;case"ArrowRight":if(!m)return;H=M+m;break;case"PageUp":case"PageDown":{let e=J.hc.getSize(J.i2s(Math.max(0,M))),s=Math.max(G,Math.floor((Y?J.cw:J.ch)/e)*G),x=_.get("_layoutToDataIndex"),J0=_.get("_dataToLayoutIndex");if(x&&J0){let n=x(M),B=k.key==="PageUp"?-s:s,l=x(P-1);H=J0(Math.max(0,Math.min(l,n+B)))}else H=k.key==="PageUp"?M-s:M+s;break}case"Home":H=0;break;case"End":H=P-1;break;default:return}if(H<0)H=Z?P-1:0;else if(H>=P)H=Z?0:P-1}if(k.preventDefault(),H=o(H,H>=M?1:-1,P),H!==M)d(H)}),S.push((k)=>{if(J.id)return;let P=k.target.closest("[data-index]");if(!P)return;let M=parseInt(P.dataset.index??"-1",10);if(M<0)return;let H=J.dm?.getItem(M)??J.it[M];if(!H||H.__groupHeader)return;f=!1,q.root.focus({preventScroll:!0}),i(M,!1)}),T.push(()=>{q.root.removeEventListener("focusin",g),q.root.removeEventListener("focusout",C)})};var o0=(J,q)=>{let j,Q;return{getSetSize:()=>{if(j===void 0)j=J.get("_getTotal")??null;return j?j():q()},getPosInSet:(Y)=>{if(Q===void 0)Q=J.get("_layoutToDataIndex")??null;return Q?Q(Y)+1:Y+1}}};var z1=200,n0=50;var R2=50,P2=12,w2=2,i0=16000000;var y2="x",z2=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},C2=(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 Y of q)Q.add(Y);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 Y=J.focusedIndex-Q;if(Y<0)Y=j?q-1:0;return J.focusedIndex=Y,J},E1=(J,q,j=!1,Q=1)=>{if(q===0)return J;let Y=J.focusedIndex+Q;if(Y>=q)Y=j?0:q-1;return J.focusedIndex=Y,J},v2=(J,q)=>{if(q===0)return J;return J.focusedIndex=0,J},S2=(J,q)=>{if(q===0)return J;return J.focusedIndex=q-1,J},f2=(J,q,j,Q)=>{if(q===0)return J;let Y=Q==="up"?J.focusedIndex-j:J.focusedIndex+j;return Y=Math.max(0,Math.min(q-1,Y)),J.focusedIndex=Y,J};var L1=(J)=>{return Array.from(J.selected)},F1=(J,q)=>{let j=[];for(let Q of J.selected){let Y=q(Q);if(Y)j.push(Y)}return j};var T1=(J,q,j,Q,Y)=>{if(Y!=="multiple")return J;let X=Math.min(j,Q),W=Math.max(j,Q),Z=[];for(let _=X;_<=W;_++){let K=q[_];if(K)Z.push(K.id)}return t0(J,Z,Y)};var h1=(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:(X,W,Z)=>{if(Q(),Math.abs(W-X)<1){J.scrollTo(W);return}let _=performance.now(),K=(U)=>{let S=U-_,T=Math.min(S/Z,1),O=X+(W-X)*h1(T);if(J.scrollTo(O),q(),T<1)j=requestAnimationFrame(K);else j=null};j=requestAnimationFrame(K)},cancelScroll:Q}};var h2=(J,q,j,Q,Y,X,W,Z,_,K,U,S,T,O,F,f,L,w,b)=>{let R=($)=>{{if(!Array.isArray($)){console.warn("[vlist] setItems() expects an array, got:",typeof $);return}if($.length>0&&$[0]&&!("id"in $[0]))console.warn('[vlist] Items must have an "id" property. First item:',$[0]);let E=Math.min($.length,1e4),N=new Set;for(let V=0;V<E;V++){let D=$[V];if(D&&"id"in D){if(N.has(D.id)){console.warn(`[vlist] Duplicate item ID "${D.id}" at index ${V}. updateItem() and removeItem() will only match the first occurrence.`);break}N.add(D.id)}}}G(),_.dataManager.setItems($,0,$.length)},y=($)=>{let E=K&&J.sab(2);if(_.dataManager.setItems($,J.it.length),E&&J.it.length>0){let N=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(N),J.ls=N,J.rfn()}},h=($)=>{let E=K?J.sgt():0,N=K?J.hc.getTotalSize():0,V=[...J.it];if(_.dataManager.clear(),_.dataManager.setItems([...$,...V],0),K){let D=J.hc.getTotalSize()-N;if(D>0)J.sst(E+D),J.ls=E+D}},p=null,I=null,A=null,d=!1,i=()=>{if(d)return;d=!0,p=X.get("_updateRenderedItem")??null,I=X.get("_getSelectedIds")??null,A=X.get("_getFocusedIndex")??null},o=($,E)=>{{let V=J.vtf();if($<0||$>=V)console.warn(`[vlist] updateItem() index ${$} is out of range (0–${V-1}).`)}if(_.dataManager.updateItem($,E),i(),!p)return;let N=_.dataManager.getItem($);if(N){let D=(I?I():J.ss).has(N.id),z=(A?A():J.fi)===$;p($,N,D,z)}},g=!1,C=($)=>{let E=typeof document<"u"?document.activeElement:null,N=E&&q.items.contains(E)?parseInt(E.dataset?.index??"-1",10):-1;if(!_.dataManager.removeItem($))return console.warn(`[vlist] removeItem() could not find item with id "${$}".`),!1;if(j.emit("data:change",{type:"remove",id:$}),_.forceRender(),!g){let D=_.dataManager;if(typeof D.ensureRange==="function")g=!0,queueMicrotask(()=>{g=!1;let z=_.dataManager.getTotal(),{start:v,end:u}=_.state.viewportState.renderRange;if(z>0&&u>=v)D.ensureRange(v,u).catch(()=>{})})}if(N>=0){let D=J.vtf();if(D>0)Q.get(Math.min(N,D-1))?.focus()}return!0},k=($)=>{return _.dataManager.getItem($)},P=($)=>{return _.dataManager.getIndexById?.($)??-1},M=async($)=>{if(_.dataManager.reload)await _.dataManager.reload()},H=null,G=()=>{if(H!==null)cancelAnimationFrame(H),H=null},m=($,E,N,V)=>{if(G(),Math.abs(E-$)<1){J.sst(E),J.ls=E,J.rfn();return}let D=performance.now(),z=(v)=>{let u=v-D,t=Math.min(u/N,1),q0=V?V():E,c=$+(q0-$)*h1(t);if(J.sst(c),J.ls=c,J.rfn(),t<1)H=requestAnimationFrame(z);else H=null};H=requestAnimationFrame(z)},e=($,E)=>{{let t=J.vtf();if(t>0&&($<0||$>=t))console.warn(`[vlist] scrollToIndex(${$}) is out of range (0–${t-1}).`)}let{align:N,behavior:V,duration:D}=d0(E),z=J.vtf(),v=$;if(U&&z>0)v=(v%z+z)%z;let u=J.gsp(v,J.hc,J.ch,z,N);if(V==="smooth"){let t=v,q0=N;m(J.sgt(),u,D,()=>J.gsp(t,J.hc,J.ch,J.vtf(),q0))}else G(),J.sst(u)},s=()=>J.sgt(),x=($,E)=>{return j.on($,E)},J0=($,E)=>{j.off($,E)},n=()=>{if(J.id)return;if(J.id=!0,_.state.isDestroyed=!0,q.items.removeEventListener("click",S),q.items.removeEventListener("dblclick",T),q.items.removeEventListener("contextmenu",O),q.root.removeEventListener("keydown",F),J.st.removeEventListener("scroll",f),L.disconnect(),w(),J.wh)q.viewport.removeEventListener("wheel",J.wh);b();let $=[];for(let E=0;E<Z.length;E++)try{Z[E]()}catch(N){$.push(N instanceof Error?N:Error(String(N)))}for(let E of W)if(E.destroy)try{E.destroy()}catch(N){$.push(N instanceof Error?N:Error(String(N)))}G();for(let[,E]of Q)E.remove(),Y.release(E);Q.clear(),Y.clear(),j.emit("destroy",void 0);for(let E of $)j.emit("error",{error:E,context:"destroy"});j.clear(),q.root.remove()},B=($,E)=>X.has($)?X.get($):E,l={get element(){return q.root},get items(){let $=X.get("_getItems");return $?$():J.it},get total(){let $=X.get("_getTotal");return $?$():J.vtf()},setItems:B("setItems",R),appendItems:B("appendItems",y),prependItems:B("prependItems",h),updateItem:B("updateItem",o),removeItem($){let E=X.get("removeItem");return E?E($):C($)},reload:B("reload",M),getItemAt:k,getIndexById:P,scrollToIndex:B("scrollToIndex",e),cancelScroll:B("cancelScroll",G),getScrollPosition:B("getScrollPosition",s),on:x,off:J0,destroy:n};for(let[$,E]of X){if($.charCodeAt(0)===95||$==="setItems"||$==="appendItems"||$==="prependItems"||$==="updateItem"||$==="removeItem"||$==="reload"||$==="scrollToIndex"||$==="scrollToItem"||$==="cancelScroll"||$==="getScrollPosition")continue;l[$]=E}return l};var LJ=3,FJ="vlist",TJ=150,HJ=16000000,$J=4096,kJ=(J)=>(typeof screen<"u"?J?screen.width:screen.height:0)||$J,bJ=0,I1=(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",Y=q?J.item.width:J.item.height,X=q?J.item.estimatedWidth:J.item.estimatedHeight;if(Y==null&&X==null)throw Error(`[vlist] item.${j} or item.${Q} is required${q?" when orientation is 'horizontal'":""}`);if(Y!=null){if(typeof Y==="number"&&Y<=0)throw Error(`[vlist] item.${j} must be a positive number`);if(typeof Y!=="number"&&typeof Y!=="function")throw Error(`[vlist] item.${j} must be a number or a function (index) => number`)}else if(X!=null){if(typeof X!=="number"||X<=0)throw Error(`[vlist] item.${Q} must be a positive number`)}if(!J.item.template)throw Error("[vlist] item.template is required");if(q&&J.reverse)throw Error("[vlist] horizontal direction cannot be combined with reverse mode");let W=new Map,Z=!1,_={use(K){if(Z)throw Error("[vlist] Cannot call .use() after .build()");return W.set(K.name,K),_},build(){if(Z)throw Error("[vlist] .build() can only be called once");return Z=!0,RJ(J,W,q,Y,X??null)}};return _};function RJ(J,q,j,Q,Y){let{item:X,items:W,overscan:Z=LJ,classPrefix:_=FJ,ariaLabel:K,padding:U,reverse:S=!1,scroll:T,accessible:O,interactive:F}=J,f=F??O??!0,L=T,w=L?.wheel??!0,b=L?.wrap??!1,R=S,y=`${_}-${bJ++}`,h=q.has("withGrid")||q.has("withMasonry")?0:X.gap??0,p=Q??Y,I=Q==null&&Y!=null,A=j?typeof X.height==="number"?X.height:void 0:typeof X.width==="number"?X.width:void 0,d={overscan:Z,classPrefix:_,reverse:R,wrap:b,horizontal:j,ariaIdPrefix:y,interactive:f},i=kJ(j),o=Array.from(q.values()).sort((r,j0)=>(r.priority??50)-(j0.priority??50)),g=new Set(o.map((r)=>r.name));for(let r of o)if(r.conflicts){for(let j0 of r.conflicts)if(g.has(j0))throw Error(`[vlist] ${r.name} and ${j0} cannot be combined`)}if(R){if(g.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let C=O2(J.container),k=A2(C,_,K,j,f);if(L?.wheel===!1)if(j)k.viewport.style.overflowX="hidden";else k.viewport.style.overflow="hidden";if(L?.scrollbar==="none")k.viewport.classList.add(`${_}-viewport--no-scrollbar`);if(L?.gutter==="stable")k.viewport.classList.add(`${_}-viewport--gutter-stable`);let P=g.has("withGrid")||g.has("withMasonry");if(j&&A!=null&&L?.scrollbar!=="none"&&!P){k.root.style.height=`${A}px`;let r=k.viewport.style.overflowX;k.viewport.style.overflowX="scroll";let j0=k.viewport.offsetHeight-k.viewport.clientHeight;if(k.viewport.style.overflowX=r,j0>0)k.root.style.height=`${A+j0}px`}let M=S0(U),H=s0(M,j);if(M.top||M.right||M.bottom||M.left)k.content.style.boxSizing="border-box",k.content.style.padding=`${M.top}px ${M.right}px ${M.bottom}px ${M.left}px`;let G=M2(),m=W||[],e=typeof p==="function"&&(q.has("withGrid")||q.has("withMasonry")),s=h>0?typeof p==="function"?(r)=>p(r)+h:p+h:p,x=I?Y+h:s,J0=c0(x,e?0:m.length);if(h>0){let r=J0.getTotalSize;J0.getTotalSize=()=>{let j0=r();return j0>0?j0-h:0}}let n=E2(),B={it:m,hc:J0,ch:Math.min(k.viewport.clientHeight,i),cw:Math.min(k.viewport.clientWidth,i),id:!1,ii:!1,ls:0,vt:V2(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>k.viewport.scrollLeft:()=>k.viewport.scrollTop,sst:j?(r)=>{k.viewport.scrollLeft=r}:(r)=>{k.viewport.scrollTop=r},sab:(r=2)=>{let j0=B.hc.getTotalSize();return B.ls+B.ch>=j0-r},sic:!1,rfn:null,ffn:null,gvr:(r,j0,Y0,E0,z0)=>{L2(r,j0,Y0,E0,z0)},gsp:(r,j0,Y0,E0,z0)=>{return T2(r,j0,Y0,E0,z0,B.mp)},pef:null,at:X.template,vre:!0,st:k.viewport,wh:null,gcw:()=>B.cw,gch:()=>B.ch,gp:h,mp:H,sif:(r)=>r,i2s:(r)=>r,uic:(r,j0,Y0)=>{let E0=v.get(r);if(!E0)return;W0(E0,j0,Y0)},csi:null};B.vtf=()=>B.dm?B.dm.getTotal():B.it.length;let l=null,$=!1,E={start:0,end:0},N={start:0,end:0},V={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},z=()=>({...D.viewportState,totalItems:B.vtf()}),v=new Map,u=()=>{a0(k.items,v.keys(),(r)=>v.get(r))},t=()=>{let r=B.hc.getTotalSize(),Y0=`${(B.sic?r:Math.min(r,HJ))+H}px`;if(j)k.content.style.width=Y0;else k.content.style.height=Y0},q0={selected:!1,focused:!1},c=`${_}-item`,Q0=`${_}-group-header`,X0=`${_}-item--selected`,K0=`${_}-item--focused`,W0=(r,j0,Y0)=>{r.classList.toggle(X0,j0),r.classList.toggle(K0,Y0),r.ariaSelected=j0?"true":"false"},M0=X.striped,L0=!!M0,R0=M0==="data"||M0==="even"||M0==="odd",B0=`${_}-item--odd`,D0=`${_}-item--placeholder`,F0=`${_}-item--replaced`,w0=`${_}--scrolling`,T0=[],k0=[],_0=[],G0=[],b0=[],P0=[],a=[],U0=[],Z0=[],N0=new Map,V0="__placeholder_",O0={scrollPosition:0,direction:"down"},H0={velocity:0,reliable:!1},A0={range:{start:0,end:0}},h0=null,f0=null,Q2=!1,K1=!1,KJ=()=>{if(Q2)return;Q2=!0,h0=N0.get("_getSelectedIds")??null,f0=N0.get("_getFocusedIndex")??null},N1=o0(N0,B.vtf),W1=(r,j0,Y0)=>{if(!j0)console.warn(`[vlist] Template returned falsy value${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);else if(typeof j0==="string"&&j0==="")console.warn(`[vlist] Template returned empty string${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);if(typeof j0==="string")r.innerHTML=j0;else r.replaceChildren(j0)},NJ=(r,j0)=>{let Y0=Math.round(B.hc.getOffset(j0));if(j)r.style.transform=`translateX(${Y0}px)`;else r.style.transform=`translateY(${Y0}px)`};B.pef=NJ;let WJ=(r,j0)=>{let Y0=n.acquire(),E0=!!j0.__groupHeader;Y0.className=E0?Q0:c;let z0=!B.csi||B.csi(r);if(j){if(z0)Y0.style.width=`${B.hc.getSize(r)-h}px`;else Y0.style.width="";if(A!=null)Y0.style.height=`${A}px`}else if(z0)Y0.style.height=`${B.hc.getSize(r)-h}px`;else Y0.style.height="";if(Y0.dataset.index=String(r),Y0.dataset.id=String(j0.id),E0)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.ariaSelected="false",Y0.id=`${y}-item-${r}`,B.la=String(N1.getSetSize()),Y0.setAttribute("aria-setsize",B.la),Y0.setAttribute("aria-posinset",String(N1.getPosInSet(r)));if(String(j0.id).startsWith(V0))Y0.classList.add(D0);if(L0)if(R0){let y0=B.sif(r);if(y0<0)Y0.classList.remove(B0);else Y0.classList.toggle(B0,(y0&1)===1)}else Y0.classList.toggle(B0,(r&1)===1);try{W1(Y0,B.at(j0,r,q0),r)}catch(y0){let u0=y0 instanceof Error?y0:Error(String(y0));G.emit("error",{error:u0,context:`tpl(${r},${j0.id})`,viewport:z()}),Y0.textContent=""}return B.pef(Y0,r),Y0},B1=NaN,BJ=()=>{if(B.id)return;let r=j?B.cw:B.ch;if(r<=0)return;KJ();let j0=h0?h0():B.ss,Y0=f0?f0():B.fi,E0=B.vtf();B.gvr(B.ls,r,B.hc,E0,E),F2(E,Z,E0,N);let z0=N.end-N.start+1,I0=B.hc.getSize(0)||1,y0=Math.ceil(i/I0)+Z*2;if(z0>y0){if(!K1)K1=!0,console.warn(`[vlist] Render range capped: ${z0} items → ${y0}. Container is ${r}px tall (item: ${I0}px). This usually means the container has no CSS height constraint.`);N.end=N.start+y0-1}if(N.start===V.start&&N.end===V.end){if(B.sic&&B.ls!==B1){B1=B.ls;for(let[$0,v0]of v)B.pef(v0,$0)}D.viewportState.scrollPosition=B.ls,D.viewportState.containerSize=r,D.viewportState.visibleRange.start=E.start,D.viewportState.visibleRange.end=E.end,D.viewportState.renderRange.start=N.start,D.viewportState.renderRange.end=N.end;return}let u0=String(N1.getSetSize()),GJ=u0!==B.la;B.la=u0;for(let[$0,v0]of v)if($0<N.start||$0>N.end)v0.remove(),n.release(v0),v.delete($0);let K2=document.createDocumentFragment(),N2=!1,j1=U0.length>0?[]:null;for(let $0=N.start;$0<=N.end;$0++){let v0=B.dm?B.dm.getItem($0):B.it[$0];if(v0===void 0)continue;let C0=v.get($0);if(C0){let l0=C0.dataset.id,r0=String(v0.id);if(l0!==r0){let MJ=l0?.startsWith(V0),w1=r0.startsWith(V0),W2=!!v0.__groupHeader;if(C0.className=W2?Q0:c,W2)C0.setAttribute("role","presentation"),C0.removeAttribute("aria-selected"),C0.removeAttribute("aria-setsize"),C0.removeAttribute("aria-posinset"),C0.removeAttribute("id");else C0.setAttribute("role","option"),C0.id=`${y}-item-${$0}`,C0.setAttribute("aria-posinset",String(N1.getPosInSet($0)));try{W1(C0,B.at(v0,$0,q0),$0)}catch(y1){let OJ=y1 instanceof Error?y1:Error(String(y1));G.emit("error",{error:OJ,context:`tpl(${$0},${v0.id})`,viewport:z()}),C0.textContent=""}C0.dataset.id=r0;let B2=!B.csi||B.csi($0);if(j)C0.style.width=B2?`${B.hc.getSize($0)-h}px`:"";else C0.style.height=B2?`${B.hc.getSize($0)-h}px`:"";if(w1)C0.classList.add(D0);else C0.classList.remove(D0);if(MJ&&!w1)C0.classList.add(F0),setTimeout(()=>{C0.classList.remove(F0)},300);if(B.dm&&!w1)m0(j0,$0,v0.id)}B.pef(C0,$0);let D1=j0.has(v0.id);if(W0(C0,D1,$0===Y0),GJ&&!v0.__groupHeader)C0.setAttribute("aria-setsize",B.la)}else{let l0=WJ($0,v0);if(j1)j1.push({index:$0,element:l0});if(B.dm)m0(j0,$0,v0.id);let r0=j0.has(v0.id),D1=$0===Y0;if(r0||D1)W0(l0,r0,D1);K2.appendChild(l0),v.set($0,l0),N2=!0}}if(N2)k.items.appendChild(K2);if(j1&&j1.length>0)for(let $0=0;$0<U0.length;$0++)U0[$0](j1);V.start=N.start,V.end=N.end,B1=B.ls,D.lastRenderRange.start=N.start,D.lastRenderRange.end=N.end,D.viewportState.scrollPosition=B.ls,D.viewportState.visibleRange.start=E.start,D.viewportState.visibleRange.end=E.end,D.viewportState.renderRange.start=N.start,D.viewportState.renderRange.end=N.end,A0.range.start=N.start,A0.range.end=N.end,G.emit("range:change",A0)},_J=()=>{V.start=-1,V.end=-1,B1=NaN,B.rfn()};B.rfn=BJ,B.ffn=_J;let VJ=()=>{k.root.classList.remove(w0),$=!1,B.vt.velocity=0,B.vt.sampleCount=0,H0.velocity=0,H0.reliable=!1,G.emit("velocity:change",H0),u();for(let r=0;r<k0.length;r++)k0[r]();G.emit("scroll:idle",{scrollPosition:B.ls})},DJ=()=>{if(l)clearTimeout(l);l=setTimeout(VJ,L?.idleTimeout??TJ)},q1=()=>{if(B.id)return;let r=B.sgt();if(r===B.ls&&$)return;let j0=r>=B.ls?"down":"up";if(B.vt=D2(B.vt,r),!k.root.classList.contains(w0))k.root.classList.add(w0);$=!0,B.ls=r,B.rfn(),O0.scrollPosition=r,O0.direction=j0,G.emit("scroll",O0),H0.velocity=B.vt.velocity,H0.reliable=B.vt.sampleCount>=_2,G.emit("velocity:change",H0);for(let Y0=0;Y0<T0.length;Y0++)T0[Y0](r,j0);DJ()},_1=null;if(B.st.addEventListener("scroll",q1,{passive:!0}),w){let r=k.viewport;if(j)_1=(j0)=>{if(D.viewportState.isCompressed)return;if(Math.abs(j0.deltaX)>Math.abs(j0.deltaY))return;let Y0=B.sgt(),E0=r.scrollWidth-r.clientWidth,z0=Math.max(0,Math.min(Y0+j0.deltaY,E0));if(Math.abs(z0-Y0)<1)return;j0.preventDefault(),B.sst(z0),q1()};else _1=(j0)=>{if(D.viewportState.isCompressed)return;let Y0=r.scrollWidth>r.clientWidth;if(Y0&&Math.abs(j0.deltaX)>Math.abs(j0.deltaY))return;if(Y0&&j0.deltaX!==0)j0.preventDefault(),r.scrollLeft+=j0.deltaX;let E0=B.sgt(),z0=r.scrollHeight-r.clientHeight,I0=Math.max(0,Math.min(E0+j0.deltaY,z0));if(Math.abs(I0-E0)<1)return;j0.preventDefault(),B.sst(I0),q1()};B.wh=_1,r.addEventListener("wheel",_1,{passive:!1})}let b1=(r)=>{let j0=r.target.closest("[data-index]");if(!j0)return null;let Y0=parseInt(j0.dataset.index??"-1",10);if(Y0<0)return null;let E0=B.dm?.getItem(Y0)??B.it[Y0];if(!E0||E0.__groupHeader)return null;return{item:E0,index:Y0}},q2=(r)=>{for(let Y0=0;Y0<_0.length;Y0++)_0[Y0](r);let j0=b1(r);if(j0)G.emit("item:click",{item:j0.item,index:j0.index,event:r})},j2=(r)=>{let j0=b1(r);if(j0)G.emit("item:dblclick",{item:j0.item,index:j0.index,event:r})},Y2=(r)=>{for(let Y0=0;Y0<G0.length;Y0++)G0[Y0](r);let j0=b1(r);if(j0)G.emit("item:contextmenu",{item:j0.item,index:j0.index,event:r})},X2=(r)=>{for(let j0=0;j0<b0.length;j0++)b0[j0](r)};if(k.items.addEventListener("click",q2),k.items.addEventListener("dblclick",j2),k.items.addEventListener("contextmenu",Y2),k.root.addEventListener("keydown",X2),f){let r=null,j0=(Y0)=>{if(r)clearTimeout(r);r=setTimeout(()=>{if(r=null,B.id)return;let E0=B.vtf();k.liveRegion.textContent=`Showing items ${Y0.range.start+1} to ${Math.min(Y0.range.end+1,E0)} of ${E0}`},300)};G.on("range:change",j0),Z0.push(()=>{if(r)clearTimeout(r);G.off("range:change",j0)})}let R1=new ResizeObserver((r)=>{if(B.id)return;for(let j0 of r){let Y0=j0.contentRect.height,E0=j0.contentRect.width,z0=j?E0:Y0,I0=j?B.cw:B.ch;if(z0>i){if(!K1)K1=!0,console.warn(`[vlist] Viewport grew to ${Math.round(z0)}px (screen: ${i}px). Re-applying size constraint. Check that the vlist container has a CSS height/width constraint.`);let y0=j?"width":"height";k.root.style[y0]="100%",k.viewport.style[y0]="100%";return}if(B.cw=E0,B.ch=Y0,Math.abs(z0-I0)>1){if(D.viewportState.containerSize=z0,B.ii){let y0=D.cachedCompression;if(y0&&y0.state.isCompressed){let u0=`${y0.state.virtualSize+H}px`;if(j)k.content.style.width=u0;else k.content.style.height=u0}else t();B.rfn(),G.emit("resize",{height:Y0,width:E0})}}if(B.ii)for(let y0=0;y0<P0.length;y0++)P0[y0](E0,Y0)}});if(B.vre)R1.observe(k.viewport);let P1={dom:k,emitter:G,resolvedConfig:d,rawConfig:J,rendered:v,pool:n,itemState:q0,sharedState:D,renderRange:N,isHorizontal:j,classPrefix:_,contentSizeHandlers:a,idleHandlers:k0,afterScroll:T0,clickHandlers:_0,contextMenuHandlers:G0,keydownHandlers:b0,resizeHandlers:P0,destroyHandlers:Z0,methods:N0,onScrollFrame:q1,resizeObserver:R1,afterRenderBatch:U0,applyTemplate:W1,updateContentSize:t},V1=H2(B,P1);B.dm=$2(B,P1,V1),B.sc=k2(B,P1),N0.set("_updateRenderedItem",(r,j0,Y0,E0)=>{let z0=v.get(r);if(!z0)return;let I0={selected:Y0,focused:E0};try{let y0=B.at(j0,r,I0);W1(z0,y0,r)}catch(y0){let u0=y0 instanceof Error?y0:Error(String(y0));G.emit("error",{error:u0,context:`tpl(${r},${j0.id})`,viewport:z()})}z0.dataset.id=String(j0.id),W0(z0,Y0,E0)});let U2=new WeakSet;N0.set("_setSizeCache",(r)=>{if(B.hc=r,B.gp>0&&!U2.has(r)){U2.add(r);let j0=B.hc.getTotalSize,Y0=B.gp;B.hc.getTotalSize=()=>{let E0=j0();return E0>0?E0-Y0:0}}}),N0.set("_setConstrainSize",(r)=>{B.csi=r});let Z2=new Map;for(let r of o)if(r.methods)for(let j0 of r.methods){let Y0=Z2.get(j0);if(Y0)throw Error(`[vlist] Method "${j0}" is registered by both "${Y0}" and "${r.name}"`);Z2.set(j0,r.name)}for(let r of o)try{r.setup(V1)}catch(j0){let Y0=j0 instanceof Error?j0:Error(String(j0));console.error(`[vlist] Feature "${r.name}" setup failed:`,Y0),G.emit("error",{error:Y0,context:r.name,viewport:z()})}if(I&&!q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(f&&!N0.has("_getFocusedIndex")){let r=j?M.left:M.top,j0=j?M.right:M.bottom;b2(B,k,_,y,j,r,j0,b,N0,v,b0,_0,Z0,!!J.focusOnClick)}if(B.ii=!0,V1.state.isInitialized=!0,t(),B.rfn(),R&&B.it.length>0){let r=B.gsp(B.it.length-1,B.hc,B.ch,B.it.length,"end");B.sst(r),B.ls=r,B.rfn()}return h2(B,k,G,v,n,N0,o,Z0,V1,R,b,q2,j2,Y2,X2,q1,R1,()=>{},()=>{if(l)clearTimeout(l)})}var I2=(J,q,j)=>{let Q=q.getTotalSize(),Y=j===!0||Q>i0,X=Q>i0?i0:Q,W=Q>0?X/Q:1;return{isCompressed:Y,actualSize:Q,virtualSize:X,ratio:W}},p2=(J,q,j,Q,Y,X)=>{if(Q===0||q===0)return X.start=0,X.end=-1,X;if(!Y.isCompressed||Y.ratio===1){let O=j.indexAtOffset(J),F=j.indexAtOffset(J+q);if(F<Q-1)F++;return X.start=Math.max(0,O),X.end=Math.min(Q-1,Math.max(0,F)),X}let{virtualSize:W}=Y,Z=J/W,_=j.getTotalSize(),K=Z*_,U=j.indexAtOffset(K),S=G2(j,Math.max(0,U),q,Q),T=U+S;return X.start=Math.max(0,U),X.end=Math.min(Q-1,Math.max(0,T)),X};var Q1=(J,q,j,Q,Y,X,W)=>{if(!X.isCompressed||Q===0)return j.getOffset(J);if(X.ratio===1)return j.getOffset(J)-q;let{virtualSize:Z}=X,_=q/Z,K=j.getTotalSize(),U=_*K;return j.getOffset(J)-U},u2=(J,q,j,Q,Y,X="start")=>{if(Q===0)return 0;let W;if(Y.isCompressed&&Y.ratio!==1){W=J/Q*Y.virtualSize;let U=q.getSize(J);switch(X){case"center":W-=(j-U)/2*Y.ratio;break;case"end":W-=(j-U)*Y.ratio;break}return Math.max(0,W)}W=q.getOffset(J);let Z=q.getSize(J);switch(X){case"center":W-=(j-Z)/2;break;case"end":W-=j-Z;break}let _=Y.virtualSize-j;return Math.max(0,Math.min(W,_))};var PJ=(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",Y=!1,X)=>{let{autoHide:W=!0,autoHideDelay:Z=1000,minThumbSize:_=15,showOnHover:K=!0,showOnViewportEnter:U=!0,clickBehavior:S="scroll"}=j,T=S==="page"?"scroll":S,O=X??J,F=PJ(j.padding),f=Y?F.left:F.top,L=Y?F.right:F.bottom,w=Y?F.bottom:F.right,b=j.hoverZoneWidth??w+16,R=0,y=0,h=0,p=0,I=!1,A=!1,d=0,i=0,o=0,g=null,C=!1,k=null,P=null,M=0,H=0,G=null,m=null,e=null,s=Y?"width":"height",x=Y?"translateX":"translateY",J0=Y?(_0)=>_0.clientX:(_0)=>_0.clientY,n=Y?"left":"top",B=document.createElement("div"),l=document.createElement("div"),$=document.createElement("div"),E=()=>{if(O===J)return;let _0=J.offsetTop,G0=Y?F.left:F.top;B.style[Y?"left":"top"]=`${_0+G0}px`,$.style[Y?"left":"top"]=`${_0}px`},N=()=>{if(B.className=`${Q}-scrollbar`,l.className=`${Q}-scrollbar-thumb`,Y)B.classList.add(`${Q}-scrollbar--horizontal`);if(j.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${F.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${F.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${F.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${F.left}px`);if(j.minThumbSize!==void 0)B.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${_}px`);if(B.appendChild(l),O.appendChild(B),$.className=`${Q}-scrollbar-hover`,Y)$.classList.add(`${Q}-scrollbar-hover--horizontal`),$.style.height=`${b}px`;else $.style.width=`${b}px`;if(O.appendChild($),O!==J)E()},V=()=>{if(g)clearTimeout(g),g=null},D=()=>{if(!W)return;V(),g=setTimeout(v,Z)},z=()=>{if(R<=y)return;if(V(),!C)B.classList.add(`${Q}-scrollbar--visible`),C=!0;if(W&&!I&&!A)D()},v=()=>{if(I||A)return;B.classList.remove(`${Q}-scrollbar--visible`),C=!1},u=(_0,G0)=>{R=_0,y=G0,E();let b0=R>y;if(B.style.display=b0?"":"none",!b0){v();return}let P0=Math.max(0,y-f-L),a=y/R;if(h=Math.max(_,a*P0),l.style[s]=`${h}px`,p=P0-h,t(o),!W)z()},t=(_0)=>{if(o=_0,R<=y||p<=0)return;let G0=R-y,P0=Math.min(1,Math.max(0,_0/G0))*p;l.style.transform=`${x}(${P0}px)`},q0=(_0)=>{if(_0.target===l||T!=="jump"||p<=0)return;let G0=R-y,b0=B.getBoundingClientRect(),P0=J0(_0)-b0[n],a=Math.max(0,Math.min(P0-h/2,p));q(a/p*G0),z()},c=()=>{if(G!==null)clearTimeout(G),G=null;if(m!==null)cancelAnimationFrame(m),m=null;e=null},Q0=(_0)=>{let G0=p>0?H/_0*p:0;if(M<G0)return-1;if(M>=G0+h)return 1;return 0},X0=()=>{let _0=R-y,G0=Q0(_0);if(G0===0){c();return}if(G0===-1){if(H<=0){c();return}let b0=Math.max(0,H-y);H=b0,q(b0)}else{if(H>=_0){c();return}let b0=Math.min(_0,H+y);H=b0,q(b0)}z()},K0=(_0)=>{if(e===null){e=_0,m=requestAnimationFrame(K0);return}let G0=R-y,b0=_0-e;e=_0;let P0=Q0(G0);if(P0===0){c();return}let a=12*y/1000,U0=Math.min(a*b0,y);if(P0===-1){if(H<=0){c();return}let Z0=Math.max(0,H-U0);H=Z0,q(Z0)}else{if(H>=G0){c();return}let Z0=Math.min(G0,H+U0);H=Z0,q(Z0)}V(),m=requestAnimationFrame(K0)},W0=()=>{c(),D(),document.removeEventListener("mouseup",W0)},M0=(_0)=>{if(_0.target===l||T!=="scroll")return;_0.preventDefault();let G0=B.getBoundingClientRect();M=J0(_0)-G0[n],H=o,X0(),G=setTimeout(()=>{m=requestAnimationFrame(K0)},350),document.addEventListener("mouseup",W0)},L0=(_0)=>{_0.preventDefault(),_0.stopPropagation(),I=!0,d=J0(_0),i=o,V(),B.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",R0),document.addEventListener("mouseup",B0)},R0=(_0)=>{if(!I)return;let G0=J0(_0)-d,b0=p>0?G0/p:0,P0=R-y,a=b0*P0,U0=Math.max(0,Math.min(i+a,P0)),N0=U0/P0*p;if(l.style.transform=`${x}(${N0}px)`,P=U0,k===null)k=requestAnimationFrame(()=>{if(P!==null)q(P);k=null})},B0=()=>{if(I=!1,k!==null)cancelAnimationFrame(k),k=null;if(P!==null)q(P),P=null;if(B.classList.remove(`${Q}-scrollbar--dragging`),W&&!A)D();document.removeEventListener("mousemove",R0),document.removeEventListener("mouseup",B0)},D0=()=>{if(U)z()},F0=()=>{if(!I){if(A=!1,W)D()}},w0=()=>{A=!0,V(),z()},T0=()=>{if(A=!1,!I&&W)D()},k0=()=>{if(V(),c(),k!==null)cancelAnimationFrame(k),k=null;if(B.removeEventListener("click",q0),B.removeEventListener("mousedown",M0),B.removeEventListener("mouseenter",w0),document.removeEventListener("mouseup",W0),B.removeEventListener("mouseleave",T0),l.removeEventListener("mousedown",L0),J.removeEventListener("mouseenter",D0),J.removeEventListener("mouseleave",F0),document.removeEventListener("mousemove",R0),document.removeEventListener("mouseup",B0),$.removeEventListener("click",q0),$.removeEventListener("mousedown",M0),K)$.removeEventListener("mouseenter",w0),$.removeEventListener("mouseleave",T0);if($.parentNode)$.parentNode.removeChild($);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"),B.parentNode)B.parentNode.removeChild(B)};if(N(),B.addEventListener("click",q0),B.addEventListener("mousedown",M0),B.addEventListener("mouseenter",w0),B.addEventListener("mouseleave",T0),l.addEventListener("mousedown",L0),J.addEventListener("mouseenter",D0),J.addEventListener("mouseleave",F0),$.addEventListener("click",q0),$.addEventListener("mousedown",M0),K)$.addEventListener("mouseenter",w0),$.addEventListener("mouseleave",T0);return{show:z,hide:v,updateBounds:u,updatePosition:t,isVisible:()=>C,destroy:k0}};var p1=(J)=>{let q=null;return{name:"withScrollbar",priority:15,setup(j){let{dom:Q,config:Y}=j,{classPrefix:X,horizontal:W}=Y;if(j.methods.has("_hasScrollbar")){let _=Q.root.querySelector(`.${X}-scrollbar`);if(_)_.remove();let K=Q.root.querySelector(`.${X}-scrollbar-hover`);if(K)K.remove()}if(j.methods.set("_hasScrollbar",()=>!0),q=U1(Q.viewport,(_)=>j.scrollController.scrollTo(_),J??{},X,W,Q.root),!Q.viewport.classList.contains(`${X}-viewport--custom-scrollbar`))Q.viewport.classList.add(`${X}-viewport--custom-scrollbar`);if(J?.gutter)Q.viewport.classList.add(`${X}-viewport--gutter`);q.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize);let Z=q;j.afterScroll.push((_,K)=>{Z.updatePosition(_),Z.show()}),j.resizeHandlers.push((_,K)=>{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 wJ=0.65,yJ=0.5,g2=1.7,zJ=0.95,CJ=0.1,vJ=5,SJ=100,m2=(J,q,j,Q=0)=>{if(J<=0)return 0;let Y=q-Q;return Math.max(0,Y*(1-j)+Q)},u1=(J)=>{let q=J?.force??!1,j=null,Q=0,Y=!1,X=0,W=0,Z=null,_=0,K=0,U=null,S=[];return{name:"withScale",priority:20,setup(T){let{dom:O,config:F}=T,{classPrefix:f,horizontal:L}=F,w=S0(T.rawConfig.padding),b=L?w.left+w.right:w.top+w.bottom,R=()=>{let g=T.getVirtualTotal(),C=I2(g,T.sizeCache,q);if(C.isCompressed&&!Y){Y=!0,T.scrollController.enableCompression(C);let P=L?O.viewport.scrollLeft:O.viewport.scrollTop;if(L)O.viewport.style.overflowX="hidden";else O.viewport.style.overflow="hidden";if(L)O.viewport.scrollLeft=0;else O.viewport.scrollTop=0;if(P>0)Q=P,W=P;X=m2(C.virtualSize,T.state.viewportState.containerSize,C.ratio,b),T.updateContentSize(C.virtualSize+X),T.setScrollFns(()=>Q,(n)=>{if(Q=n,W=n,Z!==null)cancelAnimationFrame(Z),Z=null});let M=()=>{let n=W-Q;if(T.getVirtualTotal()===0){Q=0,W=0,Z=null,T.triggerScrollFrame();return}if(Math.abs(n)<yJ){let B=T.getCachedCompression(),l=Math.max(0,B.virtualSize+X-T.state.viewportState.containerSize);Q=Math.max(0,Math.min(W,l)),W=Q,Z=null}else{Q+=n*wJ;let l=T.getCachedCompression().virtualSize+X-T.state.viewportState.containerSize;Q=Math.max(0,Math.min(Q,l)),Z=requestAnimationFrame(M)}T.triggerScrollFrame()},H=O.viewport,G=(n)=>{n.preventDefault();let B=T.getCachedCompression(),l=B.virtualSize+X-T.state.viewportState.containerSize;if(W=Math.max(0,Math.min(W+n.deltaY*B.ratio*g2,l)),Z===null)Z=requestAnimationFrame(M)};H.addEventListener("wheel",G,{passive:!1});let m=()=>{if(U!==null)cancelAnimationFrame(U),U=null},e=(n)=>{if(m(),Z!==null)cancelAnimationFrame(Z),Z=null;let B=n.touches[0];if(!B)return;let l=L?B.clientX:B.clientY;_=l,K=Q,S=[{time:performance.now(),y:l}]},s=(n)=>{n.preventDefault();let B=n.touches[0];if(!B)return;let l=L?B.clientX:B.clientY,$=performance.now();if(S.push({time:$,y:l}),S.length>vJ)S.shift();let E=_-l,N=T.getCachedCompression(),V=N.virtualSize+X-T.state.viewportState.containerSize,D=Math.max(0,Math.min(K+E*N.ratio*g2,V));Q=D,W=D,T.triggerScrollFrame()},x=(n)=>{let B=performance.now(),l=S.filter((V)=>B-V.time<SJ),$=0;if(l.length>=2){let V=l[0],D=l[l.length-1],z=D.time-V.time;if(z>0)$=(V.y-D.y)/z}if(S=[],Math.abs($)<CJ)return;let E=$*16,N=()=>{if(E*=zJ,Math.abs(E)<0.5){U=null;return}let D=T.getCachedCompression().virtualSize+X-T.state.viewportState.containerSize,z=Q+E;if(z=Math.max(0,Math.min(z,D)),z<=0&&E<0||z>=D&&E>0){Q=z,W=z,T.triggerScrollFrame(),U=null;return}Q=z,W=z,T.triggerScrollFrame(),U=requestAnimationFrame(N)};U=requestAnimationFrame(N)};H.addEventListener("touchstart",e,{passive:!0}),H.addEventListener("touchmove",s,{passive:!1}),H.addEventListener("touchend",x,{passive:!0}),H.addEventListener("touchcancel",x,{passive:!0}),T.destroyHandlers.push(()=>{H.removeEventListener("wheel",G),H.removeEventListener("touchstart",e),H.removeEventListener("touchmove",s),H.removeEventListener("touchend",x),H.removeEventListener("touchcancel",x)});let J0=()=>{if((L?O.viewport.scrollLeft:O.viewport.scrollTop)!==0)if(L)O.viewport.scrollLeft=0;else O.viewport.scrollTop=0};if(H.addEventListener("scroll",J0,{passive:!0}),T.destroyHandlers.push(()=>{H.removeEventListener("scroll",J0)}),!T.methods.has("_hasScrollbar")){if(T.methods.set("_hasScrollbar",()=>!0),j=U1(O.viewport,(B)=>T.scrollController.scrollTo(B),{},f,L,O.root),!O.viewport.classList.contains(`${f}-viewport--custom-scrollbar`))O.viewport.classList.add(`${f}-viewport--custom-scrollbar`);j.updateBounds(C.virtualSize,T.state.viewportState.containerSize);let n=j;T.afterScroll.push((B,l)=>{if(n)n.updatePosition(B),n.show()}),T.resizeHandlers.push((B,l)=>{if(n){let $=T.getCachedCompression();n.updateBounds($.virtualSize,T.state.viewportState.containerSize)}})}}else if(!C.isCompressed&&Y){if(Y=!1,Z!==null)cancelAnimationFrame(Z),Z=null;if(U!==null)cancelAnimationFrame(U),U=null;if(Q=0,W=0,S=[],T.setScrollFns(L?()=>O.viewport.scrollLeft:()=>O.viewport.scrollTop,L?(P)=>{O.viewport.scrollLeft=P}:(P)=>{O.viewport.scrollTop=P}),L)O.viewport.scrollLeft=0;else O.viewport.scrollTop=0;if(T.scrollController.disableCompression(),L)O.viewport.style.overflowX="auto";else O.viewport.style.overflow="auto";if(j)j.destroy(),j=null;X=0,T.updateContentSize(C.actualSize)}else if(C.isCompressed)T.scrollController.updateConfig({compression:C}),X=m2(C.virtualSize,T.state.viewportState.containerSize,C.ratio,b),T.updateContentSize(C.virtualSize+X);if(j)j.updateBounds(C.virtualSize+X,T.state.viewportState.containerSize);let k=T.state.viewportState;if(k.isCompressed=C.isCompressed,k.compressionRatio=C.ratio,k.totalSize=C.virtualSize+X,k.actualSize=C.actualSize,T.state.cachedCompression={state:C,totalItems:g},Y){let P=Math.max(0,C.virtualSize+X-T.state.viewportState.containerSize),M=Q;if(M>P)M=P;else if(M<0)M=0;if(M!==Q){if(Z!==null)cancelAnimationFrame(Z),Z=null;if(U!==null)cancelAnimationFrame(U),U=null;T.scrollController.scrollTo(M)}}for(let P=0;P<T.contentSizeHandlers.length;P++)T.contentSizeHandlers[P]()};T.updateCompressionMode=R;let y=T.getCachedCompression.bind(T);T.getCachedCompression=()=>{if(T.state.cachedCompression)return T.state.cachedCompression.state;return y()},T.setVisibleRangeFn((g,C,k,P,M)=>{p=null,I=null,p2(g,C,k,P,T.getCachedCompression(),M)}),T.setScrollToPosFn((g,C,k,P,M)=>{return u2(g,C,k,P,T.getCachedCompression(),M)});let h=NaN,p=null,I=null,A=L;T.setPositionElementFn((g,C)=>{let k=T.scrollController.getScrollTop(),P=T.getCachedCompression();if(k!==h)h=k,p=null,I=null;if(P.isCompressed){if(p===null||C<I)I=C,p=Math.round(Q1(C,k,T.sizeCache,T.getVirtualTotal(),T.state.viewportState.containerSize,P));let M=p+T.sizeCache.getOffset(C)-T.sizeCache.getOffset(I);g.style.transform=A?`translateX(${M}px)`:`translateY(${M}px)`}else{let M=Math.round(T.sizeCache.getOffset(C));g.style.transform=A?`translateX(${M}px)`:`translateY(${M}px)`}});let d=L?w.left:w.top,i=L?w.right:w.bottom,o=T.getItemToScrollIndexFn();T.methods.set("_scrollItemIntoView",(g)=>{let C=T.getCachedCompression(),k=T.state.viewportState.containerSize,P=T.state.viewportState.scrollPosition,M=T.getVirtualTotal(),{visibleRange:H}=T.state.viewportState,G=o(g),m=O1(G,T.sizeCache,P,k,d,i,C,M,H);if(m!==P)T.scrollController.scrollTo(m)}),R(),T.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(Z!==null)cancelAnimationFrame(Z),Z=null;if(U!==null)cancelAnimationFrame(U),U=null})}}};var x2=(J={})=>{let{chunkSize:q=100,maxCachedItems:j=5000,evictionBuffer:Q=200,onEvict:Y}=J,X=new Map,W=0,Z=0,_=(P)=>{let M=X.get(P);if(!M)M={items:Array(q),count:0,lastAccess:Date.now()},X.set(P,M);else M.lastAccess=Date.now();return M},K=(P)=>{return Math.floor(P/q)},U=(P)=>{return P%q},S=()=>W,T=(P)=>{W=P},O=(P)=>{if(P<0||P>=W)return;let M=K(P),H=X.get(M);if(!H)return;return H.items[U(P)]},F=(P)=>{if(P<0||P>=W)return!1;let M=K(P),H=X.get(M);if(!H)return!1;return H.items[U(P)]!==void 0},f=(P,M)=>{let H=K(P),G=_(H),m=U(P),e=G.items[m]===void 0;if(G.items[m]=M,e)G.count++,Z++;if(P>=W)W=P+1},L=(P,M)=>{for(let H=0;H<M.length;H++){let G=M[H];if(G!==void 0)f(P+H,G)}},w=(P)=>{if(P<0||P>=W)return!1;let M=K(P),H=X.get(M),G=U(P);if(!(H!==void 0&&H.items[G]!==void 0))return!1;let e=M,s=Array.from(X.keys()).filter((J0)=>J0>=e).sort((J0,n)=>J0-n),x=[];for(let J0 of s){let n=X.get(J0),B=J0*q;for(let l=0;l<q;l++){if(n.items[l]===void 0)continue;let $=B+l;if($<=P)continue;x.push({oldIndex:$,item:n.items[l]})}}if(H.items[G]=void 0,H.count--,Z--,H.count===0)X.delete(M);for(let{oldIndex:J0}of x){let n=K(J0),B=X.get(n);if(!B)continue;let l=U(J0);if(B.items[l]!==void 0){if(B.items[l]=void 0,B.count--,Z--,B.count===0)X.delete(n)}}for(let{oldIndex:J0,item:n}of x){let B=J0-1,l=K(B),$=_(l),E=U(B);$.items[E]=n,$.count++,Z++}return W--,!0},b=(P,M)=>{let H=[];for(let G=P;G<=M&&G<W;G++)H.push(O(G));return H},R=(P,M)=>{for(let H=P;H<=M&&H<W;H++)if(!F(H))return!1;return!0},y=()=>{let P=[],M=null,H=Array.from(X.keys()).sort((G,m)=>G-m);for(let G of H){let m=X.get(G);if(!m)continue;let e=G*q;for(let s=0;s<q;s++){let x=e+s;if(x>=W)break;if(m.items[s]!==void 0)if(M===null)M={start:x,end:x};else if(x===M.end+1)M.end=x;else P.push(M),M={start:x,end:x};else if(M!==null)P.push(M),M=null}}if(M!==null)P.push(M);return P},h=(P,M)=>{let H=[],G=null;for(let m=P;m<=M&&m<W;m++)if(!F(m))if(G===null)G={start:m,end:m};else G.end=m;else if(G!==null)H.push(G),G=null;if(G!==null)H.push(G);return H},p=(P)=>{return X.has(P)},I=(P)=>{let M=X.get(P);if(M)M.lastAccess=Date.now()},A=(P,M)=>{if(P>M||X.size===0)return;let H=Date.now(),G=K(Math.max(0,P)),m=K(Math.min(W-1,M));for(let e=G;e<=m;e++){let s=X.get(e);if(s)s.lastAccess=H}},d=(P,M)=>{if(Z<=j)return 0;let H=Math.max(0,P-Q),G=Math.min(W-1,M+Q),m=K(H),e=K(G),s=0,x=[];for(let[J0,n]of X)if(J0<m||J0>e)s+=n.count,x.push(J0),Z-=n.count,X.delete(J0);if(s>0&&Y)Y(s,x);return s},i=()=>{if(Z<=j)return 0;let P=Array.from(X.entries()).sort(([,G],[,m])=>G.lastAccess-m.lastAccess),M=0,H=[];for(let[G,m]of P){if(Z<=j)break;M+=m.count,Z-=m.count,H.push(G),X.delete(G)}if(M>0&&Y)Y(M,H);return M},o=()=>{return{totalItems:W,cachedItems:Z,cachedChunks:X.size,chunkSize:q,maxCachedItems:j,memoryEfficiency:W>0?1-Z/W:1}},g=()=>Z,C=()=>{X.clear(),Z=0};return{chunkSize:q,maxCachedItems:j,getTotal:S,setTotal:T,get:O,has:F,set:f,setRange:L,delete:w,getRange:b,isRangeLoaded:R,getLoadedRanges:y,findUnloadedRanges:h,getChunkIndex:K,isChunkLoaded:p,touchChunk:I,touchChunksForRange:A,evictDistant:d,evictToLimit:i,getStats:o,getCachedCount:g,clear:C,reset:()=>{C(),W=0}}};var d2=(J={})=>{let{maskCharacter:q=y2,maxSampleSize:j=z2}=J,Q=[],Y=!1,X=(U)=>{if(Y||U.length===0)return;let S=Math.min(U.length,j);for(let T=0;T<S;T++){let O=U[T];if(!O||typeof O!=="object")continue;let F={};for(let[f,L]of Object.entries(O)){if(f.startsWith("_")||f==="id")continue;F[f]=String(L??"").length}if(Object.keys(F).length>0)Q.push(F)}Y=!0},W=()=>Y,Z=(U)=>{let S={id:`${g0}${U}`,[C1]:!0,_index:U};if(Q.length===0)return S.label=q.repeat(12),S;let T=Q[U%Q.length];for(let[O,F]of Object.entries(T))S[O]=q.repeat(Math.max(1,F));return S};return{analyzeStructure:X,hasAnalyzedStructure:W,generate:Z,generateRange:(U,S)=>{let T=[];for(let O=U;O<=S;O++)T.push(Z(O));return T},clear:()=>{Q=[],Y=!1}}},H1=(J)=>{if(!J||typeof J!=="object")return!1;return J[C1]===!0};var fJ=50,l2=(J={})=>{let{adapter:q,initialItems:j,initialTotal:Q,storage:Y,placeholder:X,pageSize:W=fJ,onStateChange:Z,onItemsLoaded:_,onItemsEvicted:K}=J,U=x2({...Y,onEvict:(c,Q0)=>{K?.(c),A()}}),S=null,T=()=>{if(!S)S=d2(X);return S},O=new Map,F=!1,f,L=!0,w,b,R=[],y=0,h=new Map,p=new Map,I=()=>{for(let c of p.values())c.abort();p.clear(),h.clear()},A=()=>{Z?.(H())},d=()=>{O.clear();let c=U.getLoadedRanges();for(let Q0 of c)for(let X0=Q0.start;X0<=Q0.end;X0++){let K0=U.get(X0);if(K0&&!H1(K0))O.set(K0.id,X0)}},i=(c,Q0)=>{if(!H1(Q0))O.set(Q0.id,c)},o=(c)=>{O.delete(c)},g=(c,Q0)=>{return`${c}-${Q0}`},C=()=>U.getTotal(),k=()=>U.getCachedCount(),P=()=>F,M=()=>L,H=()=>({total:U.getTotal(),cached:U.getCachedCount(),isLoading:F,pendingRanges:R,error:f,hasMore:L,cursor:w}),G=()=>U,m=()=>T(),e=(c)=>{let Q0=U.get(c);if(Q0!==void 0)return Q0;if(c>=0&&c<U.getTotal())return T().generate(c);return},s=(c)=>{let Q0=O.get(c);if(Q0===void 0)return;return U.get(Q0)},x=(c)=>{return O.get(c)??-1},J0=(c)=>{let Q0=U.get(c);return Q0!==void 0&&!H1(Q0)},n=(c,Q0)=>{let X0=[],K0=U.getTotal(),W0=0,M0=0;U.touchChunksForRange(c,Math.min(Q0,K0-1));for(let L0=c;L0<=Q0&&L0<K0;L0++){let R0=U.get(L0);if(R0!==void 0)X0.push(R0),W0++;else X0.push(T().generate(L0)),M0++}return X0},B=(c)=>{U.setTotal(c),L=U.getCachedCount()<c,A()},l=(c,Q0=0,X0)=>{if(q&&c.length>0){let K0=T();if(!K0.hasAnalyzedStructure())K0.analyzeStructure(c)}for(let K0=0;K0<c.length;K0++){let W0=c[K0];if(W0!==void 0){let M0=Q0+K0;U.set(M0,W0),i(M0,W0)}}if(X0!==void 0)U.setTotal(X0);else if(Q0+c.length>U.getTotal())U.setTotal(Q0+c.length);if(U.getCachedCount()>=U.getTotal()&&U.getTotal()>0)L=!1;A(),_?.(c,Q0,U.getTotal())},$=(c,Q0)=>{let X0=U.get(c);if(!X0)return!1;let K0=X0.id,W0={...X0,...Q0};if(U.set(c,W0),Q0.id!==void 0&&Q0.id!==K0)o(K0);return i(c,W0),A(),!0},E=(c)=>{let Q0=O.get(c);if(Q0===void 0)return!1;if(!U.delete(Q0))return!1;return d(),I(),A(),!0},N=async(c,Q0)=>{if(!q)return;let X0=g(c,Q0);if(h.has(X0))return;let K0=U.chunkSize,W0=Math.floor(c/K0),M0=Math.floor(Q0/K0),L0=K0*2;for(let[D0,F0]of p){let w0=D0.indexOf("-"),T0=parseInt(D0.slice(0,w0),10);if(Math.abs(T0-c)>L0)F0.abort(),p.delete(D0),h.delete(D0)}let R0=[];for(let D0=W0;D0<=M0;D0++){let F0=D0*K0,w0=F0+K0-1,T0=g(F0,w0);if(!U.isChunkLoaded(D0)&&!h.has(T0))R0.push({start:F0,end:w0})}if(R0.length===0)return;let B0=[];for(let D0=W0;D0<=M0;D0++){let F0=D0*K0,w0=F0+K0-1,T0=g(F0,w0);if(h.has(T0)){let k0=h.get(T0);if(!B0.includes(k0))B0.push(k0)}}for(let D0 of R0){let F0=g(D0.start,D0.end),w0=new AbortController;p.set(F0,w0);let T0=(async()=>{R.push(D0),F=!0,f=void 0,A();try{let k0=D0.end-D0.start+1,_0={offset:D0.start,limit:k0,cursor:D0.start===b?w:void 0,signal:w0.signal},G0=await q.read(_0);if(l(G0.items,D0.start,G0.total),G0.cursor)w=G0.cursor,b=D0.start+G0.items.length;let b0=D0.start+G0.items.length;if(b0>=y){if(y=b0,G0.hasMore!==void 0)L=G0.hasMore;else if(G0.total!==void 0)L=b0<G0.total}}catch(k0){if(k0?.name==="AbortError")return;f=k0 instanceof Error?k0:Error(String(k0))}finally{h.delete(F0),p.delete(F0),R=R.filter((k0)=>k0.start!==D0.start||k0.end!==D0.end),F=h.size>0,A()}})();h.set(F0,T0),B0.push(T0)}await Promise.all(B0)},V=async(c,Q0)=>{if(U.isRangeLoaded(c,Q0))return;await N(c,Q0)},D=async()=>{if(!q)return;await N(0,W-1)},z=async()=>{if(!q||F||!L)return!1;let c=U.getCachedCount(),Q0=U.getTotal(),X0=c,K0=Math.min(X0+W-1,Q0>0?Q0-1:X0+W-1);if(X0>=Q0&&Q0>0)return L=!1,!1;return await N(X0,K0),U.getCachedCount()>c},v=async()=>{if(U.clear(),U.setTotal(0),O.clear(),S)S.clear();I(),R=[],F=!1,w=void 0,b=void 0,L=!0,y=0,f=void 0,A()},u=(c,Q0)=>{if(U.evictDistant(c,Q0)>0)d()},t=()=>{U.clear(),O.clear(),w=void 0,b=void 0,f=void 0,R=[],F=!1,A()},q0=()=>{if(U.reset(),O.clear(),S)S.clear();w=void 0,b=void 0,L=!0,y=0,f=void 0,R=[],F=!1,A()};if(j&&j.length>0)l(j,0,Q??j.length);else if(Q!==void 0)U.setTotal(Q),A();return{getState:H,getTotal:C,getCached:k,getIsLoading:P,getHasMore:M,getStorage:G,getPlaceholders:m,getItem:e,getItemById:s,getIndexById:x,isItemLoaded:J0,getItemsInRange:n,setTotal:B,setItems:l,updateItem:$,removeItem:E,loadRange:N,ensureRange:V,loadInitial:D,loadMore:z,reload:v,evictDistant:u,clear:t,reset:q0}};var g1=(J)=>{let{adapter:q,loading:j,storage:Q,total:Y,autoLoad:X=!0}=J,W=j?.cancelThreshold??P2,Z=j?.preloadThreshold??w2,_=j?.preloadAhead??R2;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(K){let{emitter:U}=K,S=K.config.reverse,T=K.methods.get("_getGridLayout"),O=(g)=>{let C=K.methods.get("_getGroupBridge");if(C){let k=C();if(k&&k.groupCount>0){let P=k.layoutToDataIndex(g.start),M=k.layoutToDataIndex(g.end);if(P<0){for(let H=g.start+1;H<=g.end;H++)if(P=k.layoutToDataIndex(H),P>=0)break}if(M<0){for(let H=g.end-1;H>=g.start;H--)if(M=k.layoutToDataIndex(H),M>=0)break}if(P>=0&&M>=0)return{start:P,end:M}}}if(T){let k=T();if(k){let P=K.dataManager.getTotal();return k.getItemRange(g.start,g.end,P)}}return g};K.methods.set("_isAsync",()=>!0);let F=[];K.methods.set("_onItemsLoaded",(g)=>{F.push(g)});let f=l2({adapter:q,...Y!==void 0&&{initialTotal:Y},pageSize:Q?.chunkSize??n0,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(K.state.isInitialized){let g=K.getVirtualTotal();if(g!==K.sizeCache.getTotal())K.sizeCache.rebuild(g);K.updateCompressionMode();let C=K.getCachedCompression();K.state.viewportState.totalSize=C.virtualSize,K.state.viewportState.actualSize=C.actualSize,K.state.viewportState.isCompressed=C.isCompressed,K.state.viewportState.compressionRatio=C.ratio,K.updateContentSize(C.virtualSize),K.renderIfNeeded()}},onItemsLoaded:(g,C,k)=>{if(K.state.isInitialized){for(let P of F)P(g,C,k);K.forceRender(),U.emit("load:end",{items:g,total:k,offset:C})}}});K.replaceDataManager(f);let L=null,w=null,b=0,R=!1,y=null,h=120,p=(g=!1)=>{if(R=!1,w=null,g)L=null;if(y!==null)clearTimeout(y),y=null},I=()=>{if(!w)return;w=null;let{renderRange:g}=K.state.viewportState;if(g.end<g.start)return;L=null;let C=O(g);K.dataManager.ensureRange(C.start,C.end).catch((k)=>{U.emit("error",{error:k,context:"ensureRange"})})};K.afterScroll.push((g,C)=>{if(K.state.isDestroyed)return;let k=K.scrollController.getVelocity(),M=K.scrollController.isTracking()&&k<=W;if(b>W&&k<=W)R=!0;else if(R&&k>W)p();if(R&&k<0.5)p(!0);if(b=k,(K.scrollController.isAtTop()||K.scrollController.isAtBottom())&&(R||w))p(!0),M=!0;let G=R&&k>0.5;if(M&&!K.dataManager.getIsLoading()&&K.dataManager.getHasMore()){if(S){if(g<z1)U.emit("load:start",{offset:K.dataManager.getCached(),limit:n0}),K.dataManager.loadMore().catch((s)=>{U.emit("error",{error:s,context:"loadMore"})})}else if(K.state.viewportState.totalSize-g-K.state.viewportState.containerSize<z1)U.emit("load:start",{offset:K.dataManager.getCached(),limit:n0}),K.dataManager.loadMore().catch((x)=>{U.emit("error",{error:x,context:"loadMore"})})}let{renderRange:m}=K.state.viewportState;if(!L||m.start!==L.start||m.end!==L.end){if(L={start:m.start,end:m.end},M&&!G){if(w=null,y!==null)clearTimeout(y),y=null;let s=O(m),x=s.start,J0=s.end,n=T?K.dataManager.getTotal():K.getVirtualTotal();if(k>Z)if(C==="down")J0=Math.min(s.end+_,n-1);else x=Math.max(s.start-_,0);K.dataManager.ensureRange(x,J0).catch((B)=>{U.emit("error",{error:B,context:"ensureRange"})})}else if(w={start:m.start,end:m.end},G){if(y!==null)clearTimeout(y);y=setTimeout(()=>{y=null,I(),p()},h)}}});let A=200,d=null;K.afterScroll.push((g,C)=>{if(d!==null)clearTimeout(d);d=setTimeout(()=>{d=null,I(),p()},A)}),K.destroyHandlers.push(()=>{if(d!==null)clearTimeout(d),d=null;p()});let i=()=>{if(K.state.isDestroyed)return;L=null;let{renderRange:g}=K.state.viewportState;if(g.end>0){let C=O(g);K.dataManager.ensureRange(C.start,C.end).catch((k)=>{U.emit("error",{error:k,context:"ensureRange"})})}I()};window.addEventListener("online",i),K.destroyHandlers.push(()=>{window.removeEventListener("online",i)}),U.on("load:start",()=>{K.dom.root.setAttribute("aria-busy","true")}),U.on("load:end",()=>{K.dom.root.removeAttribute("aria-busy")}),K.methods.set("loadVisibleRange",async()=>{L=null,w=null,K.forceRender();let{renderRange:g}=K.state.viewportState;if(g.end>0){let C=O(g);U.emit("load:start",{offset:C.start,limit:C.end-C.start+1}),await K.dataManager.ensureRange(C.start,C.end)}}),K.methods.set("reload",async(g)=>{L=null,w=null;let C=g?.snapshot,k=C!=null&&(C.total??0)>0&&C.index>0,P=k||g?.skipInitialLoad===!0;if(K.invalidateRendered(),await K.dataManager.reload(),!k)K.scrollController.scrollTo(0);if(!P){U.emit("load:start",{offset:0,limit:n0}),await K.dataManager.loadInitial(),K.forceRender();let{renderRange:M}=K.state.viewportState;if(M.end>0){let H=O(M);await K.dataManager.ensureRange(H.start,H.end)}}if(k){let M=K.methods.get("restoreScroll");if(M)M(C)}});let o=!1;if(K.methods.set("_cancelAutoLoad",()=>{o=!0}),X)queueMicrotask(()=>{if(o)return;U.emit("load:start",{offset:0,limit:n0}),K.dataManager.loadInitial().catch((g)=>{U.emit("error",{error:g,context:"loadInitial"})})});else if(Y!==void 0)K.dataManager.setTotal(Y)}}};var $1=(J)=>J==null?0:typeof J==="function"?J():J,m1=(J)=>{let q=null,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(Q){let{dom:Y,state:X,config:W,emitter:Z}=Q;if(Y.root.style.overflow="visible",Y.root.style.height="auto",W.horizontal)Y.viewport.style.overflowX="visible",Y.viewport.style.overflowY="visible";else Y.viewport.style.overflow="visible";if(Y.viewport.classList.remove(`${W.classPrefix}-viewport--custom-scrollbar`),Q.disableViewportResize(),Q.disableWheelHandler(),Q.setScrollTarget(window),Q.setScrollFns(()=>{let S=Y.viewport.getBoundingClientRect();return Math.max(0,W.horizontal?-S.left:-S.top)},(S)=>{let T=Y.viewport.getBoundingClientRect();if(W.horizontal){let O=T.left+window.scrollX;window.scrollTo({left:O+S,top:window.scrollY,behavior:"instant"})}else{let O=T.top+window.scrollY;window.scrollTo({left:window.scrollX,top:O+S,behavior:"instant"})}}),Q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),X.viewportState.containerSize=window.innerHeight,j){let S=W.horizontal,T=Q.getItemToScrollIndexFn();Q.setScrollToPosFn((O,F,f,L,w)=>{let b=$1(S?j.left:j.top),R=$1(S?j.right:j.bottom);if(L===0)return 0;let y=Math.max(0,Math.min(O,L-1)),h=F.getOffset(y),p=F.getSize(y),I=F.getTotalSize(),A=Math.max(0,I-f+R),d;switch(w){case"start":d=h-b;break;case"center":{let i=f-b-R;d=h-b-(i-p)/2;break}case"end":d=h-f+p+R;break}return Math.max(-b,Math.min(d,A))}),Q.methods.set("_scrollItemIntoView",(O)=>{let F=T(O),f=S?window.innerWidth:window.innerHeight,L=$1(S?j.left:j.top),w=$1(S?j.right:j.bottom),b=Y.viewport.getBoundingClientRect(),R=S?window.scrollX:window.scrollY,y=(S?b.left:b.top)+R,h=y-R,p=Q.sizeCache.getOffset(F),I=Q.sizeCache.getSize(F),A=h+p,d=A+I,i=L,o=f-w,g=R;if(A<i)g=y+p-i;else if(d>o)g=y+p+I-o;if(g!==R)if(S)window.scrollTo({left:g,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:g,behavior:"instant"})})}let{innerHeight:_,innerWidth:K}=window,U=()=>{let{innerWidth:S,innerHeight:T}=window,O=W.horizontal?S:T,F=W.horizontal?K:_;if(Math.abs(O-F)<=1)return;_=T,K=S,X.viewportState.containerSize=T,Z.emit("resize",{width:S,height:T});for(let f=0;f<Q.resizeHandlers.length;f++)Q.resizeHandlers[f](S,T);Q.renderIfNeeded()};window.addEventListener("resize",U,{passive:!0}),q=()=>{window.removeEventListener("resize",U)},Q.destroyHandlers.push(q)},destroy(){if(q)q(),q=null}}};var x1=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let Y=j+Q+1>>>1;if(J[Y].headerLayoutIndex<=q)j=Y;else Q=Y-1}return j},c2=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let Y=j+Q+1>>>1;if(J[Y].firstDataIndex<=q)j=Y;else Q=Y-1}return j},r2=(J,q,j)=>{if(J===0)return[];let Q=[],Y=q(0,j?.(0)),X=0,W=0;for(let Z=1;Z<J;Z++){let _=q(Z,j?.(Z));if(_!==Y){let K=Z-X;Q.push({key:Y,groupIndex:Q.length,headerLayoutIndex:W,firstDataIndex:X,count:K}),W=W+1+K,Y=_,X=Z}}return Q.push({key:Y,groupIndex:Q.length,headerLayoutIndex:W,firstDataIndex:X,count:J-X}),Q},d1=(J,q)=>{if(J.length===0||q.length===0)return[];let j=J.length+q.length,Q=Array(j),Y=0;for(let X of q){Q[Y]={id:`__group_header_${X.groupIndex}`,__groupHeader:!0,groupKey:X.key,groupIndex:X.groupIndex},Y++;for(let W=0;W<X.count;W++)Q[Y]=J[X.firstDataIndex+W],Y++}return Q},s2=(J,q,j=!1)=>{let Q=typeof q==="number"?(Y)=>q:q;return(Y)=>{let X=J.getEntry(Y);if(X.type==="header"){if(j&&X.group.groupIndex===0)return 0;return J.getHeaderHeight(X.group.groupIndex)}return Q(X.dataIndex)}},a2=(J,q,j)=>{let Q=r2(J,q.getGroupForIndex,j),Y=J+Q.length,X=q.header?.height??q.header?.width??q.headerHeight;return{get totalEntries(){return Y},get groupCount(){return Q.length},get groups(){return Q},getEntry:(O)=>{if(Q.length===0)return{type:"item",dataIndex:O,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let F=x1(Q,O),f=Q[F];if(O===f.headerLayoutIndex)return{type:"header",group:f};let L=O-f.headerLayoutIndex-1;return{type:"item",dataIndex:f.firstDataIndex+L,group:f}},layoutToDataIndex:(O)=>{if(Q.length===0)return O;let F=x1(Q,O),f=Q[F];if(O===f.headerLayoutIndex)return-1;let L=O-f.headerLayoutIndex-1;return f.firstDataIndex+L},dataToLayoutIndex:(O)=>{if(Q.length===0)return O;let F=c2(Q,O),f=Q[F],L=O-f.firstDataIndex;return f.headerLayoutIndex+1+L},getGroupAtLayoutIndex:(O)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=x1(Q,O);return Q[F]},getGroupAtDataIndex:(O)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=c2(Q,O);return Q[F]},getHeaderHeight:typeof X==="number"?(O)=>X:(O)=>{let F=Q[O];if(!F)return 0;return X(F.key,O)},rebuild:(O,F)=>{Q=r2(O,q.getGroupForIndex,F??j),Y=O+Q.length}}};var o2=(J,q,j,Q,Y=0)=>{let X=j?"width":"height",W=document.createElement("div");return W.className=`${q}-sticky-header`,W.setAttribute("role","presentation"),W.setAttribute("aria-hidden","true"),W.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${Y||0}px`:`top:${Y||0}px`),W.style[X]=`${Q}px`,J.insertBefore(W,J.firstChild),W},l1=(J,q,j,Q,Y,X=!1,W=0,Z,_)=>{let K=X?"width":"height",U=X?"height":"width",S=X?"X":"Y",T=(N,V)=>{N.style[K]=`${V}px`},O=_??(()=>{let N=document.createElement("div");return N.className=`${Y}-sticky-header`,N.setAttribute("role","presentation"),N.setAttribute("aria-hidden","true"),N.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(X?`top:0;bottom:0;left:${W||0}px`:`top:${W||0}px`),J.insertBefore(N,J.firstChild),N})(),F=()=>{let N=document.createElement("div");return N.className="sticky-group",N.style.position="absolute",N.style.willChange="transform",N.style[U]="100%",N},f=F(),L=F();if(O.append(f,L),!_)J.insertBefore(O,J.firstChild);let w=f,b=L,R=q.groups,y=[],h=[],p=[],I=0,A=()=>{R=q.groups,I=R.length,y=Array(I),h=Array(I),p=Array(I);let N=Z?Z():1;for(let V=0;V<I;V++)y[V]=j.getOffset(R[V].headerLayoutIndex)*N,h[V]=q.getHeaderHeight(V),p[V]=h[V]*N};A();let d=-1,i=0,o=0,g=-1,C=!1,k=0,P=!1,M=(N,V)=>{Q(N,V);let D=h[V];return T(N,D),D},H=(N)=>{N.replaceChildren(),N.style.transform=""},G=(N)=>{if(N===d)return;if(d=N,i=0,o=0,N<0||N>=I){H(w);return}i=M(w,N),o=p[N],T(O,i),w.style.transform=""},m=(N)=>{if(N===k)return;k=N;let V=Math.round(N);w.style.transform=`translate${S}(${V}px)`,b.style.transform=`translate${S}(${V+i}px)`},e=()=>{k=0,w.style.transform="",b.style.transform=""},s=()=>{if(!P)return;let N=w;w=b,b=N,d=g,i=d>=0?h[d]:0,o=d>=0?p[d]:0,T(O,i),H(b),g=-1,P=!1,e()},x=()=>{if(!P)return;H(b),g=-1,P=!1,e()},J0=!!_,n=()=>{if(C)return;if(C=!0,J0)O.style.visibility="";else O.style.display=""},B=()=>{if(!C)return;if(C=!1,J0)O.style.visibility="hidden";else O.style.display="none";H(w),d=-1,i=0,o=0,x()},l=(N)=>{if(I===0){B();return}if(N<y[0]){B();return}let V=0,D=I-1;while(V<D){let v=V+D+1>>>1;if(y[v]+p[v]<=N)V=v;else D=v-1}if(!C)n();G(V);let z=V+1;if(z<I){let v=y[z]-N;if(v<=0&&v>-o){if(g!==z||!P)g=z,M(b,z),P=!0;let u=o>0?v/o*i:v;m(u)}else if(v<=-o){if(P)s()}else if(P)x()}else if(P)x()},$=()=>{A();let N=d;if(d=-1,i=0,o=0,N>=0)G(N)},E=()=>{O.remove(),d=-1,i=0,o=0,g=-1,C=!1,P=!1};if(!_)O.style.display="none";return{update:l,refresh:$,show:n,hide:B,destroy:E}};var p0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var k1=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let Y=j+Q+1>>>1;if(J[Y].headerLayoutIndex<=q)j=Y;else Q=Y-1}return j},n2=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let Y=j+Q+1>>>1;if(J[Y].firstDataIndex<=q)j=Y;else Q=Y-1}return j},i2={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},t2=(J,q,j)=>{let Q=[],Y=0,X=0,W=new Map,Z=()=>{if(Q=[],Y===0||W.size===0){X=Y;return}let b=null,R=-1,y=0;for(let h=0;h<Y;h++){let p=W.get(h);if(p===void 0){if(b!==null&&R>=0){let I=h-R;Q.push({key:b,groupIndex:Q.length,headerLayoutIndex:R+y,firstDataIndex:R,count:I}),y++,b=null,R=-1}continue}if(p!==b){if(b!==null&&R>=0){let I=h-R;Q.push({key:b,groupIndex:Q.length,headerLayoutIndex:R+y,firstDataIndex:R,count:I}),y++}b=p,R=h}}if(b!==null&&R>=0){let h=Y-R;Q.push({key:b,groupIndex:Q.length,headerLayoutIndex:R+y,firstDataIndex:R,count:h}),y++}X=Y+y};return{onItemsLoaded:(b,R,y)=>{Y=y;for(let h=0;h<b.length;h++){let p=R+h,I=b[h];if(I!==void 0){let A=J.getGroupForIndex(p,I);W.set(p,A)}}Z()},get totalEntries(){return X},get groupCount(){return Q.length},get groups(){return Q},isHeader:(b)=>{if(Q.length===0)return!1;let R=k1(Q,b),y=Q[R];return b===y.headerLayoutIndex},getHeaderItem:(b)=>{if(Q.length===0)return;let R=k1(Q,b),y=Q[R];if(b!==y.headerLayoutIndex)return;return{id:`__group_header_${y.groupIndex}`,__groupHeader:!0,groupKey:y.key,groupIndex:y.groupIndex}},layoutToDataIndex:(b)=>{if(Q.length===0)return b;let R=k1(Q,b),y=Q[R];if(b===y.headerLayoutIndex)return-1;let h=b-y.headerLayoutIndex-1;return y.firstDataIndex+h},dataToLayoutIndex:(b)=>{if(Q.length===0)return b;let R=n2(Q,b),y=Q[R],h=b-y.firstDataIndex;return y.headerLayoutIndex+1+h},getHeaderHeight:(b)=>J.headerHeight,getGroupAtLayoutIndex:(b)=>{if(Q.length===0)return i2;let R=k1(Q,b);return Q[R]},getGroupAtDataIndex:(b)=>{if(Q.length===0)return i2;let R=n2(Q,b);return Q[R]},removeAt:(b)=>{let R=new Map;for(let[y,h]of W)if(y<b)R.set(y,h);else if(y>b)R.set(y-1,h);W.clear();for(let[y,h]of R)W.set(y,h);Y--,Z()},reset:()=>{Q=[],Y=0,X=0,W.clear()}}};var e2=(J,q,j,Q,Y,X)=>{if(Q===0)return 0;let W=Math.max(0,Math.min(J,Q-1)),Z=q.getOffset(W),_=q.getSize(W),K=q.getTotalSize(),U=Math.max(0,K-j),S;switch(X){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,U))};var Z1=(J,q,j,Q,Y="start",X,W=e2)=>{return W(J,q,j,Q,X,Y)};var hJ=(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},c1=(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 Y=null,X=null;return{name:"withGroups",priority:10,setup(W){let{dom:Z,config:_,rawConfig:K}=W,{classPrefix:U}=_,S=hJ(J,_.horizontal),O=K.item.height,F=S.sticky!==!1,{template:f}=S.header;Z.root.classList.add(`${U}--grouped`);let L=null;if(F)if(W.methods.set("_getStickyHeaderHeight",()=>S.header.height),L=o2(Z.root,U,_.horizontal,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:w,cancelScroll:b}=J1(W.scrollController,W.renderIfNeeded),R=null;W.methods.set("scrollToIndex",(h,p)=>{let I=R??Y;if(!I)return;let A=I.dataToLayoutIndex(h),{align:d,behavior:i,duration:o}=d0(p),g=W.dataManager.getTotal(),C=W.adjustScrollPosition(Z1(A,W.sizeCache,W.state.viewportState.containerSize,g,d,W.getCachedCompression()));if(i==="smooth")w(W.scrollController.getScrollTop(),C,o);else b(),W.scrollController.scrollTo(C)}),W.destroyHandlers.push(()=>{if(b(),X)X.destroy(),X=null;else if(L)L.remove();Z.root.classList.remove(`${U}--grouped`)});let y=null;W.methods.set("_getGroupBridge",()=>y),queueMicrotask(()=>{let h=W.methods.get("_onItemsLoaded");if(h)pJ(W,S,_,K,O,F,f,U,h,(p)=>{y=p,R=p},(p)=>{X=p},L)}),IJ(W,S,_,K,O,F,f,U,()=>{},()=>{},(h)=>{Y=h,R=h},(h)=>{X=h},L)},destroy(){if(X)X.destroy(),X=null}}};function IJ(J,q,j,Q,Y,X,W,Z,_,K,U,S,T){let{dom:O}=J,F=null,f=Q.items?[...Q.items]:[];_(f);let L=f.length,w={getGroupForIndex:q.getGroupForIndex,header:{height:q.header.height,template:q.header.template},sticky:q.sticky??!1},b=(G)=>f[G],R=a2(L,w,b);U(R);let y=d1(f,R.groups);K(y);let h=s2(R,Y,X);J.setSizeConfig(h),J.rebuildSizeCache(y.length),J.dataManager.setItems(y,0,y.length);let p=Q.item.template,I=(G,m,e)=>{if(p0(G))return W(G.groupKey,G.groupIndex);return p(G,m,e)},A=J.methods.get("_getGridLayout"),d=J.methods.get("_replaceGridRenderer"),i=J.methods.get("_updateGridLayoutForGroups"),o=J.methods.get("_createGridRenderer"),g=J.methods.get("_getTableLayout"),C=J.methods.get("_updateTableForGroups");if(A&&d&&o){if(i)i((e)=>{let s=y[e];return!!(s&&p0(s))});let G=A(),m=o(O.items,I,J.sizeCache,G,Z,J.getContainerWidth(),()=>f.length,j.ariaIdPrefix,j.horizontal,(e)=>R.layoutToDataIndex(e)+1);d(m)}else if(g&&C)C((G)=>p0(G),q.header.template);else J.replaceTemplate(I);let k=()=>{if(!X||F)return;if(R.groupCount===0)return;let G=q.header.template,m=(s,x)=>{let J0=R.groups[x];if(!J0)return;let n=G(J0.key,J0.groupIndex);if(typeof n==="string")s.innerHTML=n;else s.replaceChildren(n)},e=l1(O.root,R,J.sizeCache,m,Z,j.horizontal,0,()=>J.getCachedCompression().ratio,T??void 0);F=e,S(e),J.afterScroll.push((s,x)=>{e.update(s)}),e.update(J.scrollController.getScrollTop())};k();let P=Q.item?.striped,M=()=>{if(P!=="data"&&P!=="even"&&P!=="odd")return;let G=new Int32Array(y.length),m=P==="odd"?1:0,e=0;for(let s=0;s<y.length;s++)if(p0(y[s])){if(G[s]=-1,P==="even"||P==="odd")e=0}else G[s]=e+++m;J.setStripeIndexFn((s)=>{if(s<0||s>=G.length)return s;return G[s]})};M();let H=()=>{if(R.rebuild(f.length,b),y=d1(f,R.groups),K(y),J.rebuildSizeCache(y.length),J.dataManager.setItems(y,0,y.length),M(),k(),F)F.refresh()};J.methods.set("setItems",(G)=>{f=G.slice(),_(f),H()}),J.methods.set("appendItems",(G)=>{f.push(...G),_(f),H()}),J.methods.set("prependItems",(G)=>{f.unshift(...G),_(f),H()}),J.methods.set("removeItem",(G)=>{f=f.filter((m)=>m.id!==G),_(f),H()}),J.methods.set("_getItems",()=>f),J.methods.set("_getTotal",()=>f.length),J.methods.set("_isGroupHeader",(G)=>{let m=y[G];return!!(m&&p0(m))}),J.methods.set("_layoutToDataIndex",(G)=>R.layoutToDataIndex(G)),J.methods.set("_dataToLayoutIndex",(G)=>R.dataToLayoutIndex(G))}function pJ(J,q,j,Q,Y,X,W,Z,_,K,U,S){let{dom:T}=J,O=J.dataManager,F=t2({getGroupForIndex:q.getGroupForIndex,headerHeight:q.header.height},(I)=>O.getItem(I),(I)=>O.isItemLoaded(I));K(F);let f=typeof Y==="number"?(I)=>Y:Y,L=(I)=>{if(F.isHeader(I)){if(X&&F.getGroupAtLayoutIndex(I).groupIndex===0)return 0;return q.header.height}let A=F.layoutToDataIndex(I);return A>=0?f(A):f(I)};J.setSizeConfig(L),J.setVirtualTotalFn(()=>F.totalEntries||O.getTotal());let w={...O,getTotal:()=>F.totalEntries,getIndexById:(I)=>{let A=O.getIndexById(I);if(A<0)return-1;return F.dataToLayoutIndex(A)},getItem:(I)=>{let A=F.getHeaderItem(I);if(A)return A;let d=F.layoutToDataIndex(I);if(d>=0)return O.getItem(d);return O.getItem(I)},getItemsInRange:(I,A)=>{let d=[];for(let i=I;i<=A;i++){let o=w.getItem(i);if(o!==void 0)d.push(o)}return d},isItemLoaded:(I)=>{if(F.isHeader(I))return!0;let A=F.layoutToDataIndex(I);if(A>=0)return O.isItemLoaded(A);return O.isItemLoaded(I)},ensureRange:(I,A)=>O.ensureRange(I,A),loadRange:(I,A)=>O.loadRange(I,A),loadInitial:()=>O.loadInitial(),loadMore:()=>O.loadMore(),reload:()=>{return F.reset(),O.reload()},setTotal:(I)=>O.setTotal(I),setItems:(I,A,d)=>O.setItems(I,A,d),removeItem:(I)=>{let A=O.getIndexById(I);if(A>=0)F.removeAt(A);return O.removeItem(I)},clear:()=>{F.reset(),O.clear()},reset:()=>{F.reset(),O.reset()}};J.replaceDataManager(w);let b=Q.item.template,R=J.methods.get("_updateTableForGroups");if(R)R((I)=>p0(I),q.header.template);J.replaceTemplate((I,A,d)=>{if(p0(I))return W(I.groupKey,I.groupIndex);return b(I,A,d)});let y=null;if(X){let I=q.header.template,A=(o,g)=>{let C=F.groups[g];if(!C)return;let k=I(C.key,C.groupIndex);if(typeof k==="string")o.innerHTML=k;else o.replaceChildren(k)},d={get totalEntries(){return F.totalEntries},get groupCount(){return F.groupCount},get groups(){return F.groups},getEntry:(o)=>{if(F.isHeader(o))return{type:"header",group:F.getGroupAtLayoutIndex(o)};return{type:"item",dataIndex:F.layoutToDataIndex(o),group:F.getGroupAtLayoutIndex(o)}},layoutToDataIndex:(o)=>F.layoutToDataIndex(o),dataToLayoutIndex:(o)=>F.dataToLayoutIndex(o),getGroupAtLayoutIndex:(o)=>F.getGroupAtLayoutIndex(o),getGroupAtDataIndex:(o)=>F.getGroupAtDataIndex(o),getHeaderHeight:(o)=>F.getHeaderHeight(o),rebuild:()=>{}};y=l1(T.root,d,J.sizeCache,A,Z,j.horizontal,0,()=>J.getCachedCompression().ratio,S??void 0),U(y);let i=y;J.afterScroll.push((o,g)=>{i.update(o)})}let h=-1;J.methods.set("_ensureTailLoaded",()=>{let I=O.getTotal();if(I<=0)return;let A=I-1;if(O.isItemLoaded(A))return;h=A,O.ensureRange(A,A)}),_((I,A,d)=>{let i=J.scrollController.getScrollTop(),o=F.groupCount,g=F.totalEntries||d,C=0,k=0,P=J.methods.get("_restoreAnchor");if(P)C=P.dataIndex,k=P.fraction;else if(i>0){let G=J.getCachedCompression(),m=G.ratio!==1?i/G.ratio:i,e=J.sizeCache.indexAtOffset(m);if(C=F.layoutToDataIndex(e),C<0&&e+1<F.totalEntries)e=e+1,C=F.layoutToDataIndex(e);let s=J.sizeCache.getOffset(e),x=J.sizeCache.getSize(e);k=x>0?(m-s)/x:0}F.onItemsLoaded(I,A,d),J.rebuildSizeCache(F.totalEntries);let M=J.getCachedCompression();if(J.updateContentSize(M.virtualSize),F.groupCount-o>0&&(i>0||P)){if(P?.skipAdjust);else if(C>=0){let G=F.dataToLayoutIndex(C),m=J.sizeCache.getOffset(G),e=J.sizeCache.getSize(G),s=m+k*e,x=M.ratio!==1?s*M.ratio:s;if(Math.abs(x-i)>1)J.scrollController.scrollTo(x);if(P){J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave");let J0=J.methods.get("_saveSnapshot");if(J0)J0()}}}else if(P){let G=P.skipAdjust;if(J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave"),!G){let m=J.methods.get("_saveSnapshot");if(m)m()}}if(y)y.refresh(),y.update(J.scrollController.getScrollTop());if(h>=0&&O.isItemLoaded(h)){let G=F.dataToLayoutIndex(h);h=-1;let m=J.methods.get("_getFocusedIndex"),e=m?m():-1;if(e>=0&&e>=g-1&&G!==e){let s=G;while(s>0&&F.isHeader(s))s--;let x=J.methods.get("_setFocusedIndex");if(x)x(s)}}}),J.methods.set("_isGroupHeader",(I)=>F.isHeader(I)),J.methods.set("_layoutToDataIndex",(I)=>F.layoutToDataIndex(I)),J.methods.set("_dataToLayoutIndex",(I)=>F.dataToLayoutIndex(I)),J.methods.set("_getTotal",()=>O.getTotal()),J.methods.delete("removeItem");let p=Q.item?.striped;if(p==="data"||p==="even"||p==="odd"){let I=p==="odd"?1:0;J.setStripeIndexFn((A)=>{if(F.isHeader(A))return-1;let d=F.layoutToDataIndex(A);return d>=0?d+I:A})}}var JJ=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.isHeaderFn,Y={row:0,col:0},X=(F)=>{if(F<=0)return 0;if(!Q)return Math.ceil(F/q);let f=0,L=0,w=0;for(let b=0;b<F;b++)if(Q(b)){if(w++,L>0)f++,L=0;f++,L=0}else if(L++,L>=q)f++,L=0;if(L>0)f++;return f},W=(F)=>{return Y.row=Z(F),Y.col=_(F),Y},Z=(F)=>{if(!Q)return Math.floor(F/q);let f=0,L=0;for(let w=0;w<=F;w++)if(Q(w)){if(L>0)f++,L=0;if(w===F)return f;f++,L=0}else{if(w===F)return f;if(L++,L>=q)f++,L=0}return console.warn(`⚠️ getRow(${F}) fell through - returning ${f}`),f},_=(F)=>{if(!Q)return F%q;if(Q(F))return 0;let f=0;for(let L=0;L<=F;L++)if(Q(L))f=0;else{if(L===F)return f;if(f++,f>=q)f=0}return f},K=(F,f,L)=>{if(L<=0)return{start:0,end:-1};if(!Q){let h=Math.max(0,F*q),p=Math.min(L-1,(f+1)*q-1);return{start:h,end:p}}let w=-1,b=-1,R=0,y=0;for(let h=0;h<L;h++){if(Q(h)){if(y>0)R++,y=0;if(R>=F&&R<=f){if(w===-1)w=h;b=h}R++,y=0}else{if(R>=F&&R<=f){if(w===-1)w=h;b=h}if(y++,y>=q)R++,y=0}if(R>f&&y===0)break}if(w===-1)return{start:0,end:-1};return{start:w,end:b}},U=(F,f,L)=>{if(f<0||f>=q)return-1;let w=F*q+f;if(w<0||w>=L)return-1;return w},S=(F)=>{let f=(q-1)*j;return Math.max(0,(F-f)/q)};return{get columns(){return q},get gap(){return j},update:(F)=>{if(F.columns!==void 0)q=Math.max(1,Math.floor(F.columns));if(F.gap!==void 0)j=F.gap;if(F.isHeaderFn!==void 0)Q=F.isHeaderFn},getTotalRows:X,getPosition:W,getRow:Z,getCol:_,getItemRange:K,getItemIndex:U,getColumnWidth:S,getColumnOffset:(F,f)=>{let L=S(f);return F*(L+j)}}};var uJ=(J=200)=>{let q=[];return{acquire:()=>{let X=q.pop();if(X)return X;let W=document.createElement("div");return W.setAttribute("role","option"),W},release:(X)=>{if(X.remove(),q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),X.removeAttribute("data-row"),X.removeAttribute("data-col"),q.push(X)},clear:()=>{q.length=0}}},gJ=1,r1=(J,q,j,Q,Y,X,W,Z,_=!1,K)=>{let U=uJ(),S=new Map,T=X,O=!1,F=0,f="",L=-1,w={selected:!1,focused:!1},b=(B,l)=>{return w.selected=B,w.focused=l,w},R=`${Y}-item ${Y}-grid-item`,y=`${Y}-group-header`,h=`${Y}-item--selected`,p=`${Y}-item--focused`,I=`${Y}-item--placeholder`,A=`${Y}-item--replaced`,d=(B,l)=>{if(typeof l==="string")B.innerHTML=l;else B.replaceChildren(l)},i=(B,l,$)=>{B.classList.toggle(h,l),B.classList.toggle(p,$)},o=(B,l)=>{let $=Q.getRow(B);if(l?.compression?.isCompressed)return Q1($,l.scrollPosition,j,l.totalItems,l.containerSize,l.compression,l.rangeStart);return j.getOffset($)},g=(B,l)=>{let $=O&&Q.getCol(B)===0,E=$?0:Q.getCol(B),N=$?0:Q.getColumnOffset(E,T),V;if(O){let D=Q.getRow(B),z=0,v=new Set;for(let u=0;u<B;u++){let t=Q.getRow(u);if(t<D&&!v.has(t)){let q0=j.getSize(u);z+=q0,v.add(t)}}V=z}else V=o(B,l);if(_)return`translate(${Math.round(V)}px, ${Math.round(N)}px)`;return`translate(${Math.round(N)}px, ${Math.round(V)}px)`},C=(B,l)=>{B.style.transform=l},k=(B,l)=>{let $=B.classList.contains(y),E=$?T:Q.getColumnWidth(T),N;if(O||$)N=j.getSize(l)-Q.gap;else{let V=Q.getRow(l);N=j.getSize(V)-Q.gap}if(_)B.style.width=`${N}px`,B.style.height=`${E}px`;else B.style.width=`${E}px`,B.style.height=`${N}px`},P=(B,l,$,E,N)=>{let V=U.acquire(),D=!!l.__groupHeader,z=b($,E);if(V.className=D?y:R,V.dataset.index=String(B),V.dataset.id=String(l.id),V.dataset.row=String(Q.getRow(B)),V.dataset.col=String(Q.getCol(B)),D)V.setAttribute("role","presentation"),V.removeAttribute("aria-selected"),V.removeAttribute("aria-setsize"),V.removeAttribute("aria-posinset"),V.removeAttribute("id");else{if(V.setAttribute("role","option"),V.ariaSelected=String($),Z)V.id=`${Z}-item-${B}`;if(W){let t=W();if(t!==L)L=t,f=String(t);V.setAttribute("aria-setsize",f);let q0=K?K(B):B+1;V.setAttribute("aria-posinset",String(q0))}}k(V,B);let v=q(l,B,z);if(d(V,v),String(l.id).startsWith(g0))V.classList.add(I);return i(V,$,E),C(V,N),{element:V,lastItemId:l.id,lastSelected:$,lastFocused:E,lastTransform:N,lastSeenFrame:F}},M=(B,l,$,E,N)=>{if(F++,l.start===0&&B.length>0)O=p0(B[0]);for(let[z,v]of S)if(z>=l.start&&z<=l.end)v.lastSeenFrame=F;else if(F-v.lastSeenFrame>gJ)U.release(v.element),S.delete(z);let V=!1;if(W){let z=W();if(z!==L)L=z,f=String(z),V=!0}let D=null;for(let z=l.start;z<=l.end;z++){let v=z-l.start,u=B[v];if(!u){console.warn(`⚠️ RENDER: Missing item at index ${z} (range: ${l.start}-${l.end}, items.length: ${B.length})`);continue}let t=$.has(u.id),q0=z===E,c=S.get(z);if(c){let Q0=c.lastItemId!==u.id,X0=c.lastSelected!==t,K0=c.lastFocused!==q0;if(Q0){let M0=String(c.lastItemId),L0=String(u.id),R0=M0.startsWith(g0),B0=L0.startsWith(g0);if(!B0&&m0($,z,u.id))t=!0;let D0=b(t,q0),F0=q(u,z,D0);if(d(c.element,F0),c.element.dataset.id=L0,c.element.dataset.row=String(Q.getRow(z)),c.element.dataset.col=String(Q.getCol(z)),k(c.element,z),c.element.classList.toggle(I,B0),R0&&!B0)c.element.classList.add(A),setTimeout(()=>c.element.classList.remove(A),300);if(c.lastItemId=u.id,!u.__groupHeader){let T0=K?K(z):z+1;c.element.setAttribute("aria-posinset",String(T0))}}if(Q0||X0||K0)i(c.element,t,q0),c.element.ariaSelected=String(t),c.lastSelected=t,c.lastFocused=q0;let W0=g(z,N);if(c.lastTransform!==W0)C(c.element,W0),c.lastTransform=W0;if(V&&!u.__groupHeader)c.element.setAttribute("aria-setsize",f)}else{if(m0($,z,u.id))t=!0;let Q0=g(z,N),X0=P(z,u,t,q0,Q0);if(!D)D=document.createDocumentFragment();D.appendChild(X0.element),S.set(z,X0)}}if(D)J.appendChild(D)},H=(B)=>{for(let[l,$]of S){let E=g(l,B);if($.lastTransform!==E)C($.element,E),$.lastTransform=E}},G=(B,l,$,E)=>{let N=S.get(B);if(!N)return;let V=b($,E),D=q(l,B,V);d(N.element,D),i(N.element,$,E),N.element.dataset.id=String(l.id),N.element.ariaSelected=String($),k(N.element,B),N.lastItemId=l.id,N.lastSelected=$,N.lastFocused=E},m=(B,l,$)=>{let E=S.get(B);if(!E)return;let N=E.lastSelected!==l,V=E.lastFocused!==$;if(N||V)i(E.element,l,$),E.lastSelected=l,E.lastFocused=$},e=(B)=>{return S.get(B)?.element},s=(B)=>{if(Math.abs(B-T)<1)return;T=B;for(let[l,$]of S){k($.element,l);let E=g(l);C($.element,E),$.lastTransform=E}},x=()=>{a0(J,S.keys(),(B)=>S.get(B)?.element)},J0=()=>{for(let[,B]of S)U.release(B.element);S.clear()};return{render:M,updatePositions:H,updateItem:G,updateItemClasses:m,getElement:e,sortDOM:x,updateContainerWidth:s,clear:J0,destroy:()=>{J0(),U.clear()}}};var mJ=new Set,s1=(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:Y,emitter:X,config:W,rawConfig:Z}=Q,{classPrefix:_}=W;if(W.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let K=W.horizontal,U=M1(S0(Z.padding),K),S=()=>{return(K?Y.viewport.clientHeight:Q.getContainerWidth())-U},T=Z.items?.some((x)=>x.__groupHeader===!0),O={columns:J.columns,gap:J.gap??0};if(T)O.isHeaderFn=(x)=>{let J0=Q.dataManager.getItem(x);return!!(J0&&J0.__groupHeader===!0)};q=JJ(O);let F=q.gap;Q.setVirtualTotalFn(()=>{let x=Q.dataManager.getTotal();return q.getTotalRows(x)}),Q.setItemToScrollIndexFn((x)=>Math.floor(x/O.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>K?{ud:1,lr:O.columns,cols:O.columns}:{ud:O.columns,lr:1,cols:O.columns});let f=Z.item,L=W.horizontal?f.width:f.height,w={containerWidth:S(),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 L==="function")Q.setSizeConfig((x)=>{let J0=w.containerWidth-2,n=(w.columns-1)*w.gap;return b.containerWidth=w.containerWidth,b.columns=w.columns,b.gap=w.gap,b.columnWidth=(J0-n)/w.columns,b.row=q.getRow(x),b.column=q.getCol(x),b.totalRows=q.getTotalRows(Q.dataManager.getTotal()),b.totalColumns=w.columns,L(x,b)+w.gap});else if(F>0)Q.setSizeConfig(L+F);if(Q.rebuildSizeCache(),F>0){let x=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let J0=x();return J0>0?J0-w.gap:0}}Y.root.classList.add(`${_}--grid`);let R=S(),y=Z.item.template,h=o0(Q.methods,()=>Q.dataManager.getTotal()),p=()=>{j=r1(Y.items,y,Q.sizeCache,q,_,R,h.getSetSize,W.ariaIdPrefix,W.horizontal,h.getPosInSet),Q.replaceRenderer(j)};p(),Q.setUpdateItemClassesFn((x,J0,n)=>{j?.updateItemClasses(x,J0,n)}),Q.methods.set("_updateRenderedItem",(x,J0,n,B)=>{j?.updateItem(x,J0,n,B)}),Q.methods.set("_getGridLayout",()=>q),Q.methods.set("_getGridConfig",()=>O),Q.methods.set("_replaceGridRenderer",(x)=>{j=x}),Q.methods.set("_createGridRenderer",r1),Q.methods.set("_updateGridLayoutForGroups",(x)=>{q.update({isHeaderFn:x});let J0=Q.dataManager.getTotal(),n=0;for(let B=0;B<J0;B++)if(q.getCol(B)===0){let l=Q.sizeCache.getSize(B);n+=l}Q.sizeCache.getTotalSize=()=>n,Q.updateContentSize(n),p()}),Q.methods.set("updateGrid",(x)=>{if(x.columns!==void 0){if(!Number.isInteger(x.columns)||x.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");O.columns=x.columns}if(x.gap!==void 0){if(x.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");O.gap=x.gap}if(q)q.update(O);let J0=S();if(w.containerWidth=J0,w.columns=O.columns,w.gap=O.gap??0,j)j.updateContainerWidth(J0);Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode();for(let n=0;n<Q.contentSizeHandlers.length;n++)Q.contentSizeHandlers[n]();if(j)j.clear();Q.forceRender()});let I=null,A=null,d=!1,i=()=>{if(d)return;d=!0,I=Q.methods.get("_getSelectedIds")??null,A=Q.methods.get("_getFocusedIndex")??null},o=-1,g=-1,C=!0,k=W.overscan,P={start:0,end:0},M={start:0,end:0},H=()=>{if(Q.state.isDestroyed)return;let x=Q.scrollController.getScrollTop(),J0=Q.state.viewportState.containerSize;if(!C&&x===o&&J0===g)return;o=x,g=J0,C=!1;let n=Q.getVirtualTotal();Q.getVisibleRange(x,J0,n,P),M.start=Math.max(0,P.start-k),M.end=Math.min(n-1,P.end+k);let B=Q.state.viewportState;B.scrollPosition=x,B.visibleRange.start=P.start,B.visibleRange.end=P.end,B.renderRange.start=M.start,B.renderRange.end=M.end;let l=Q.state.lastRenderRange,$=B.isCompressed,E=l.start!==M.start||l.end!==M.end;if(!E&&$){j.updatePositions(Q.getCompressionContext());return}let N=Q.dataManager.getTotal(),V=q.getItemRange(M.start,M.end,N),D=Q.dataManager.getItemsInRange(V.start,V.end),z=$?Q.getCompressionContext():void 0;i();let v=I?I():mJ,u=A?A():-1;if(j.render(D,V,v,u,z),E)l.start=M.start,l.end=M.end,X.emit("range:change",{range:{start:M.start,end:M.end}})},G=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,C=!0,H()};Q.setRenderFns(H,G);let m=typeof L==="function";Q.resizeHandlers.push((x,J0)=>{let n=(K?J0:x)-U;if(Math.abs(n-w.containerWidth)<1)return;if(w.containerWidth=n,j)j.updateContainerWidth(n);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:e,cancelScroll:s}=J1(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",s),Q.methods.set("scrollToIndex",(x,J0)=>{let n=Math.floor(x/J.columns),{align:B,behavior:l,duration:$}=d0(J0),E=Q.dataManager.getState(),N=q.getTotalRows(E.total),V=Math.max(0,Math.min(n,N-1)),D=Q.adjustScrollPosition(Z1(V,Q.sizeCache,Q.state.viewportState.containerSize,N,B,Q.getCachedCompression()));if(l==="smooth")e(Q.scrollController.getScrollTop(),D,$);else s(),Q.scrollController.scrollTo(D)}),!Q.methods.has("_getTotal"))Q.methods.set("_getTotal",()=>Q.dataManager.getTotal());Q.methods.set("_layoutToDataIndex",(x)=>x*J.columns),Q.methods.set("_dataToLayoutIndex",(x)=>Math.floor(x/J.columns)),Q.idleHandlers.push(()=>{if(j)j.sortDOM()}),Q.destroyHandlers.push(()=>{if(s(),j)j.destroy(),j=null;Y.root.classList.remove(`${_}--grid`)})},destroy(){if(j)j.destroy(),j=null}}};var QJ=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.containerSize,Y=0,X=[],W=()=>{let L=(q-1)*j;Y=Math.max(0,(Q-L)/q),X=Array(q);let w=Y+j;for(let b=0;b<q;b++)X[b]=b*w};W();let Z=[],_=0,K=[],U=(L)=>{let w=0,b=L[0];for(let R=1;R<L.length;R++){let y=L[R];if(y<b)b=y,w=R}return w},S=(L,w)=>{if(L<=0)return _=0,Z=[],[];let b=Array(q).fill(0),R=Array(q);for(let p=0;p<q;p++)R[p]=[];let y=Array(L);for(let p=0;p<L;p++){let I=U(b),A=w(p),d=b[I];y[p]={index:p,x:X[I],y:d,lane:I,size:A,crossSize:Y},R[I].push(p),b[I]=d+A+j}Z=R;let h=0;for(let p=0;p<q;p++){let I=b[p],A=I>0?I-j:0;if(A>h)h=A}return _=h,y},T=(L)=>{if(L.length===0)return _>0?_:0;if(_>0)return _;let w=Array(q).fill(0);for(let R of L){let y=R.y+R.size,h=w[R.lane];if(y>h)w[R.lane]=y}let b=0;for(let R=0;R<q;R++)if(w[R]>b)b=w[R];return b},O=(L,w,b)=>{if(L.length===0||b<=w)return K.length=0,K;if(Z.length===0||Z.length!==q)return F(L,w,b);K.length=0;for(let R=0;R<q;R++){let y=Z[R],h=y.length;if(h===0)continue;let p=0,I=h;while(p<I){let A=p+I>>>1,d=L[y[A]];if(d.y+d.size<=w)p=A+1;else I=A}for(let A=p;A<h;A++){let d=L[y[A]];if(d.y>=b)break;K.push(d)}}return K},F=(L,w,b)=>{let R=[];for(let y of L)if(y.y+y.size>w&&y.y<b)R.push(y);return R};return{get columns(){return q},get gap(){return j},get containerSize(){return Q},update:(L)=>{let w=!1;if(L.columns!==void 0){let b=Math.max(1,Math.floor(L.columns));if(b!==q)q=b,w=!0}if(L.gap!==void 0&&L.gap!==j)j=L.gap,w=!0;if(L.containerSize!==void 0&&L.containerSize!==Q)Q=L.containerSize,w=!0;if(w)W()},calculateLayout:S,getTotalSize:T,getVisibleItems:O}};var xJ=(J=200)=>{let q=[];return{acquire:()=>{let X=q.pop();if(X)return X;let W=document.createElement("div");return W.setAttribute("role","option"),W},release:(X)=>{if(X.remove(),q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),X.removeAttribute("data-lane"),q.push(X)},clear:()=>{q.length=0}}},dJ=1,qJ=(J,q,j,Q=!1,Y,X,W)=>{let Z=xJ(),_=new Map,K=new Set,U=0,S="",T=-1,O={selected:!1,focused:!1},F=(C,k)=>{return O.selected=C,O.focused=k,O},f=`${j}-item ${j}-masonry-item`,L=`${j}-group-header`,w=`${j}-item--selected`,b=`${j}-item--focused`,R=(C,k)=>{if(typeof k==="string")C.innerHTML=k;else C.replaceChildren(k)},y=(C,k,P)=>{C.classList.toggle(w,k),C.classList.toggle(b,P)},h=(C,k)=>{if(Q)C.style.transform=`translate(${Math.round(k.y)}px, ${Math.round(k.x)}px)`;else C.style.transform=`translate(${Math.round(k.x)}px, ${Math.round(k.y)}px)`},p=(C,k)=>{if(Q)C.style.width=`${k.size}px`,C.style.height=`${k.crossSize}px`;else C.style.width=`${k.crossSize}px`,C.style.height=`${k.size}px`},I=(C,k,P,M,H)=>{let G=Z.acquire(),m=!!k.__groupHeader,e=F(M,H);if(G.className=m?L:f,G.dataset.index=String(C),G.dataset.id=String(k.id),G.dataset.lane=String(P.lane),m)G.setAttribute("role","presentation"),G.removeAttribute("aria-selected"),G.removeAttribute("aria-setsize"),G.removeAttribute("aria-posinset"),G.removeAttribute("id");else{if(G.setAttribute("role","option"),G.ariaSelected=String(M),X)G.id=`${X}-item-${C}`;if(Y){let x=Y();if(x!==T)T=x,S=String(x);G.setAttribute("aria-setsize",S);let J0=W?W(C):C+1;G.setAttribute("aria-posinset",String(J0))}}p(G,P);let s=q(k,C,e);return R(G,s),y(G,M,H),h(G,P),{element:G,lastItemId:k.id,lastSelected:M,lastFocused:H,lastY:P.y,lastX:P.x,lastSize:P.size,lastCrossSize:P.crossSize,lastSeenFrame:U}},A=(C,k,P,M)=>{U++,K.clear();for(let G=0;G<k.length;G++)K.add(k[G].index);for(let[G,m]of _)if(K.has(G))m.lastSeenFrame=U;else if(U-m.lastSeenFrame>dJ)Z.release(m.element),_.delete(G);let H=null;for(let G=0;G<k.length;G++){let m=k[G],e=m.index,s=C(e);if(!s)continue;let x=P.has(s.id),J0=e===M,n=_.get(e);if(n){let B=n.lastItemId!==s.id,l=n.lastSelected!==x,$=n.lastFocused!==J0,E=n.lastY!==m.y||n.lastX!==m.x,N=n.lastSize!==m.size||n.lastCrossSize!==m.crossSize;if(B){let V=F(x,J0),D=q(s,e,V);if(R(n.element,D),n.element.dataset.id=String(s.id),n.lastItemId=s.id,!s.__groupHeader){let v=W?W(e):e+1;n.element.setAttribute("aria-posinset",String(v))}}if(B||l||$)y(n.element,x,J0),n.element.ariaSelected=String(x),n.lastSelected=x,n.lastFocused=J0;if(N)p(n.element,m),n.lastSize=m.size,n.lastCrossSize=m.crossSize;if(E)h(n.element,m),n.lastY=m.y,n.lastX=m.x}else{let B=I(e,s,m,x,J0);if(!H)H=document.createDocumentFragment();H.appendChild(B.element),_.set(e,B)}}if(H)J.appendChild(H)},d=()=>{for(let{element:C}of _.values())Z.release(C);_.clear(),J.innerHTML=""};return{render:A,getElement:(C)=>_.get(C)?.element,updateItemClasses:(C,k,P)=>{let M=_.get(C);if(!M)return;let H=M.lastSelected!==k,G=M.lastFocused!==P;if(H||G)y(M.element,k,P),M.lastSelected=k,M.lastFocused=P},sortDOM:()=>{a0(J,_.keys(),(C)=>_.get(C)?.element)},clear:d,destroy:()=>{d(),Z.clear()}}};var lJ=new Set,cJ=100,a1=(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(Y){let{dom:X,emitter:W,config:Z,rawConfig:_}=Y,K=Z.classPrefix,U=Z.horizontal;if(Z.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");X.root.classList.add(`${K}--masonry`);let S=S0(_.padding),T=M1(S,U),O=s0(S,U),F=()=>{return(U?X.viewport.clientHeight:X.viewport.clientWidth)-T},f={columns:J.columns,gap:J.gap??0,containerSize:F()};q=QJ(f);let L=_.item,w=U&&_.item.width?_.item.width:L.height,b={containerWidth:0,columns:0,gap:0,columnWidth:0},R=typeof w==="function"?(N)=>w(N,b):()=>w,y=()=>{let N=Y.dataManager.getTotal(),V=q;b.containerWidth=V.containerSize,b.columns=V.columns,b.gap=V.gap;let D=(V.columns-1)*V.gap;b.columnWidth=Math.max(0,(b.containerWidth-D)/V.columns),Q=V.calculateLayout(N,R),i();let z=q.getTotalSize(Q);Y.sizeCache.getTotalSize=()=>z,Y.updateContentSize(z)},h=_.item.template,p=o0(Y.methods,()=>Y.dataManager.getTotal());j=qJ(X.items,h,K,U,p.getSetSize,Z.ariaIdPrefix,p.getPosInSet),Y.setUpdateItemClassesFn((N,V,D)=>{j?.updateItemClasses(N,V,D)});let I=[],A=new Int32Array(0),d=[],i=()=>{let N=f.columns,V=Q.length;if(I=Array.from({length:N},()=>[]),A.length<V)A=new Int32Array(V);for(let D=0;D<V;D++){let z=Q[D],v=I[z.lane].length;I[z.lane].push(D),A[D]=v}d=Array(N);for(let D=0;D<N;D++){let z=I[D],v=new Float64Array(z.length);for(let u=0;u<z.length;u++){let t=Q[z[u]];v[u]=t.y+t.size*0.5}d[D]=v}};Y.methods.set("_getNavTotal",()=>Y.dataManager.getTotal());let o=(N,V)=>{let D=N.length;if(D===0)return-1;if(D===1)return 0;let z=0,v=D-1;while(z<v){let u=z+v>>1;if(N[u]<V)z=u+1;else v=u}if(z>0&&Math.abs(N[z-1]-V)<=Math.abs(N[z]-V))return z-1;return z};Y.methods.set("_navigate",(N,V,D)=>{let z=Q[N];if(!z)return N;let v=z.lane,u=f.columns,t=A[N],q0=I[v];switch(U?V==="ArrowDown"?"ArrowRight":V==="ArrowUp"?"ArrowLeft":V==="ArrowRight"?"ArrowDown":V==="ArrowLeft"?"ArrowUp":V:V){case"ArrowDown":{if(t+1<q0.length)return q0[t+1];return N}case"ArrowUp":{if(t>0)return q0[t-1];return N}case"ArrowRight":{if(v>=u-1)return N;let Q0=v+1,X0=z.y+z.size*0.5,K0=I[Q0];if(K0.length===0)return N;let W0=o(d[Q0],X0);return W0>=0?K0[W0]:N}case"ArrowLeft":{if(v<=0)return N;let Q0=v-1,X0=z.y+z.size*0.5,K0=I[Q0];if(K0.length===0)return N;let W0=o(d[Q0],X0);return W0>=0?K0[W0]:N}case"Home":return 0;case"End":return D-1;case"PageDown":{let Q0=Y.state.viewportState.containerSize,X0=z.size>0?z.size:150,K0=Math.max(1,Math.floor(Q0/X0)),W0=Math.min(t+K0,q0.length-1);return q0[W0]}case"PageUp":{let Q0=Y.state.viewportState.containerSize,X0=z.size>0?z.size:150,K0=Math.max(1,Math.floor(Q0/X0)),W0=Math.max(0,t-K0);return q0[W0]}}return N}),Y.methods.set("_scrollItemIntoView",(N)=>{let V=Q[N];if(!V)return;let D=Y.scrollController.getScrollTop(),z=Y.state.viewportState.containerSize,v=V.y,u=v+V.size,t=D+z;if(v<D)Y.scrollController.scrollTo(Y.adjustScrollPosition(Math.max(0,v)));else if(u>t)Y.scrollController.scrollTo(Y.adjustScrollPosition(u-z))});let g=null,C=null,k=!1,P=()=>{if(k)return;k=!0,g=Y.methods.get("_getSelectedIds")??null,C=Y.methods.get("_getFocusedIndex")??null},M=(N)=>Y.dataManager.getItem(N),H=-1,G=-1,m=!0,e=Z.overscan*cJ,s=()=>{if(Y.state.isDestroyed)return;P();let N=Y.scrollController.getScrollTop(),V=Y.state.viewportState.containerSize;if(!m&&N===H&&V===G)return;H=N,G=V,m=!1;let D=Math.max(0,N-e),z=N+V+e,v=q.getVisibleItems(Q,D,z),u=g?g():lJ,t=C?C():-1;if(j&&v.length>0)j.render(M,v,u,t);let q0=Y.state.viewportState;q0.scrollPosition=N;let c=v.length,Q0=c>0?v[0].index:0,X0=c>0?v[c-1].index:0;q0.visibleRange.start=Q0,q0.visibleRange.end=X0,q0.renderRange.start=Q0,q0.renderRange.end=X0;let K0=Y.state.lastRenderRange;if(K0.start!==Q0||K0.end!==X0)K0.start=Q0,K0.end=X0,W.emit("range:change",{range:{start:Q0,end:X0}})},x=()=>{Y.state.lastRenderRange.start=-1,Y.state.lastRenderRange.end=-1,m=!0,s()};Y.setRenderFns(s,x);let J0=(N,V)=>{let D=(U?V:N)-T;if(q&&q.containerSize!==D){if(q.update({containerSize:D}),y(),j)j.clear();x()}};Y.resizeHandlers.push(J0);let n=()=>{y(),x()},B=Y.dataManager,l=(N)=>{if(typeof B[N]!=="function")return;let V=B[N].bind(B);B[N]=(...D)=>{V(...D),n()}};l("setItems"),l("appendItems"),l("prependItems"),l("updateItem"),l("removeItem");let{animateScroll:$,cancelScroll:E}=J1(Y.scrollController,Y.renderIfNeeded);Y.methods.set("cancelScroll",E),Y.methods.set("scrollToIndex",(N,V)=>{let D=Q[N];if(!D)return;let{align:z,behavior:v,duration:u}=d0(V),t=D.y,q0=Y.state.viewportState.containerSize,c=t;if(z==="center")c=t-q0/2+D.size/2;else if(z==="end"){c=t-q0+D.size;let Q0=q.getTotalSize(Q);if(N===Q.length-1)c=Math.max(0,Q0+O-q0)}if(c=Math.max(0,c),c=Y.adjustScrollPosition(c),v==="smooth")$(Y.scrollController.getScrollTop(),c,u);else E(),Y.scrollController.scrollTo(c)}),y(),Y.idleHandlers.push(()=>{if(j)j.sortDOM()}),Y.destroyHandlers.push(()=>{if(E(),j)j.destroy();X.root.classList.remove(`${K}--masonry`)})}}};var o1=(J)=>{let q=J?.mode??"single",j=J?.followFocus??!1,Q=J?.initial,Y=J?.shiftArrowToggle??"origin",X=J?.focusOnClick??!1,W=J?.contextMenu??"select",Z=C2(Q),_=null,K=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(U){let{dom:S,emitter:T,config:O}=U,{classPrefix:F,ariaIdPrefix:f}=O;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}S.root.classList.add(`${F}--selectable`);let L=()=>U.methods.get("_isGroupHeader"),w=()=>U.methods.get("_layoutToDataIndex"),b=()=>U.methods.get("_dataToLayoutIndex"),R=(E)=>{let N=L();return N?N(E):!1},y=(E,N,V)=>{if(!L())return E;let D=E;while(D>=0&&D<V){if(!R(D))return D;D+=N}D=E-N;while(D>=0&&D<V){if(!R(D))return D;D-=N}return E},h=new Map,p=()=>{h.clear();let E=U.dataManager.getTotal(),N=U.dataManager.getCached();if(N===0)return;if(N>=E){for(let D=0;D<E;D++){let z=U.dataManager.getItem(D);if(z)h.set(z.id,D)}return}let V=U.dataManager.getStorage();if(V&&typeof V.getLoadedRanges==="function"){let D=V.getLoadedRanges();for(let z of D)for(let v=z.start;v<=z.end;v++){let u=U.dataManager.getItem(v);if(u&&!u._isPlaceholder)h.set(u.id,v)}}};T.on("data:change",({type:E,id:N})=>{if(E==="remove"){Z.selected.delete(N),p();let V=U.dataManager.getTotal();if(V>0&&Z.focusedIndex>=0){let D=Math.min(Z.focusedIndex,V-1);Z.focusedIndex=y(D,1,V)}}}),T.on("load:end",({items:E,offset:N})=>{if(!E||E.length===0)return;if(N!==void 0)for(let V=0;V<E.length;V++){let D=E[V];if(D&&D.id!==void 0)h.set(D.id,N+V)}else p()}),p(),U.methods.set("_getSelectedIds",()=>{return Z.selected}),U.methods.set("_getFocusedIndex",()=>{return Z.focusVisible?Z.focusedIndex:-1}),U.methods.set("_seedSelection",(E)=>{for(let N of E)Z.selected.add(N)});let{forceRender:I}=U.getRenderFns(),A=()=>{I();let E=(N)=>{let V=h.get(N);if(V===void 0)return;return U.dataManager.getItem(V)};T.emit("selection:change",{selected:L1(Z),items:F1(Z,E)})},d=S0(U.rawConfig.padding),i=O.horizontal?d.left:d.top,o=O.horizontal?d.right:d.bottom,g=U.getItemToScrollIndexFn(),C=null,k=null,P=null,M=!1,H=()=>{if(M)return;M=!0,C=U.methods.get("_getNavDelta")??null,k=U.methods.get("_navigate")??null,P=U.methods.get("_scrollItemIntoView")??null},G=()=>{return H(),C?C():{ud:1,lr:0,cols:0}},m=(E)=>{if(E<0)return;if(H(),P)P(E);else{let N=U.state.viewportState.containerSize,V=U.state.viewportState.scrollPosition,D=U.dataManager.getTotal(),z=U.getCachedCompression(),{visibleRange:v}=U.state.viewportState,u=g(E),t=O1(u,U.sizeCache,V,N,i,o,z,D,v);if(t!==V)U.scrollController.scrollTo(U.adjustScrollPosition(t))}},e=()=>{let E=g(Math.max(0,Z.focusedIndex)),N=U.sizeCache.getSize(E),{ud:V}=G();return Math.max(V,Math.floor(U.state.viewportState.containerSize/N)*V)};_=document.createElement("div"),_.setAttribute("aria-live","polite"),_.setAttribute("aria-atomic","true"),_.className=`${F}-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 x=_;T.on("selection:change",({selected:E})=>{let N=E.length;if(N===0)x.textContent="";else if(N===1)x.textContent="1 item selected";else x.textContent=`${N} items selected`});let J0=()=>{if(U.state.isDestroyed)return;if(!S.root.matches(":focus-visible"))return;let E=U.dataManager.getTotal();if(E===0)return;let N=Z.focusedIndex>=0?Math.min(Z.focusedIndex,E-1):0;N=y(N,1,E),Z=x0(Z,N),Z.focusVisible=!0,S.root.setAttribute("aria-activedescendant",`${f}-item-${N}`),m(N);let V=U.dataManager.getItem(N);if(V)U.renderer.updateItemClasses(N,Z.selected.has(V.id),!0)};if(O.interactive)S.root.addEventListener("focusin",J0);let n=(E)=>{if(U.state.isDestroyed)return;let N=E.relatedTarget;if(N&&S.root.contains(N))return;let V=Z.focusedIndex;if(Z.focusVisible=!1,S.root.removeAttribute("aria-activedescendant"),V>=0){let D=U.dataManager.getItem(V);if(D)U.renderer.updateItemClasses(V,Z.selected.has(D.id),!1)}};if(O.interactive)S.root.addEventListener("focusout",n);let B=(E)=>{let N=E.target.closest("[data-index]");if(!N)return null;let V=parseInt(N.dataset.index??"-1",10);if(V<0)return null;let D=U.dataManager.getItem(V);if(!D||R(V))return null;return{item:D,index:V}},l=(E)=>{Z=x0(Z,E),Z.focusVisible=X,K=E,S.root.setAttribute("aria-activedescendant",`${f}-item-${E}`)};if(U.clickHandlers.push((E)=>{if(U.state.isDestroyed)return;let N=B(E);if(!N)return;let{item:V,index:D}=N;if(T.emit("item:click",{item:V,index:D,event:E}),q==="multiple"&&E.shiftKey&&Z.focusedIndex>=0){let z=K>=0?K:Z.focusedIndex;Z=T1(Z,U.getAllLoadedItems(),z,D,q),l(D),A();return}l(D),Z=e0(Z,V.id,q),A()}),W==="select")U.contextMenuHandlers.push((E)=>{if(U.state.isDestroyed)return;let N=B(E);if(!N)return;if(!Z.selected.has(N.item.id))Z={...Z,selected:new Set([N.item.id])},l(N.index),A()});if(O.interactive)U.keydownHandlers.push((E)=>{if(U.state.isDestroyed)return;let N=U.dataManager.getTotal(),V=Z.focusedIndex,D=!1,z=!1,v=Z;if(H(),k)switch(E.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let u=k(Z.focusedIndex,E.key,N);if(u!==Z.focusedIndex)v=x0(Z,u),v.focusVisible=!0,D=!0,z=!0;else{E.preventDefault();return}break}}if(!D)switch(E.key){case"ArrowUp":v=A1(Z,N,O.wrap,G().ud),v.focusVisible=!0,D=!0,z=!0;break;case"ArrowDown":v=E1(Z,N,O.wrap,G().ud),v.focusVisible=!0,D=!0,z=!0;break;case"ArrowLeft":{let{lr:u}=G();if(u)v=A1(Z,N,O.wrap,u),v.focusVisible=!0,D=!0,z=!0;break}case"ArrowRight":{let{lr:u}=G();if(u)v=E1(Z,N,O.wrap,u),v.focusVisible=!0,D=!0,z=!0;break}case"PageUp":case"PageDown":{let u=e(),t=w(),q0=b();if(t&&q0){let c=t(Z.focusedIndex),Q0=E.key==="PageUp"?-u:u,X0=t(N-1),K0=Math.max(0,Math.min(X0,c+Q0));v=x0(Z,q0(K0))}else v=f2(Z,N,u,E.key==="PageUp"?"up":"down");v.focusVisible=!0,D=!0,z=!0;break}case"Home":{v=v2(Z,N),v.focusVisible=!0,D=!0,z=!0;break}case"End":{v=S2(Z,N);let u=U.methods.get("_ensureTailLoaded");if(u)u();v.focusVisible=!0,D=!0,z=!0;break}}switch(E.key){case" ":case"Enter":if(E.key===" "&&E.shiftKey&&q==="multiple"&&Z.focusedIndex>=0){if(K>=0){let u=U.getAllLoadedItems();v=T1(v,u,K,Z.focusedIndex,q)}v.focusVisible=!0,D=!0;break}if(Z.focusedIndex>=0&&!R(Z.focusedIndex)){let u=U.dataManager.getItem(Z.focusedIndex);if(u)v=e0(Z,u.id,q),v.focusVisible=!0;K=Z.focusedIndex,D=!0}break;case"a":if((E.ctrlKey||E.metaKey)&&q==="multiple"){let u=U.getAllLoadedItems();if(Z.selected.size===u.length)v=f1(v);else v=S1(v,u,q);v.focusVisible=!0,D=!0,z=!1}break;case"Delete":case"Backspace":if(Z.selected.size>0){let u=(t)=>{let q0=h.get(t);return q0===void 0?void 0:U.dataManager.getItem(q0)};T.emit("delete",{selected:L1(Z),items:F1(Z,u)}),D=!0}break}if(z&&L()){let u=v.focusedIndex>V?1:-1;v.focusedIndex=y(v.focusedIndex,u,N)}if(E.shiftKey&&q==="multiple"&&z&&v.focusedIndex>=0){let u=E.key==="ArrowUp"||E.key==="ArrowDown"||E.key==="ArrowLeft"||E.key==="ArrowRight",t=(E.ctrlKey||E.metaKey)&&(E.key==="Home"||E.key==="End");if(u){if(Y==="origin"){if(V>=0){let q0=U.dataManager.getItem(V);if(q0)v=e0(v,q0.id,q)}}else{let q0=U.dataManager.getItem(v.focusedIndex);if(q0)v=e0(v,q0.id,q)}K=v.focusedIndex,z=!1}else if(t){let q0=U.getAllLoadedItems(),c=V>=0?V:v.focusedIndex;v=T1(v,q0,c,v.focusedIndex,q),K=v.focusedIndex,z=!1}}if(j&&q==="single"&&z&&v.focusedIndex>=0){let u=U.dataManager.getItem(v.focusedIndex);if(u)v=t0(v,[u.id],q);z=!1}if(D){E.preventDefault(),Z=v;let u=Z.focusedIndex;if(u>=0)m(u),S.root.setAttribute("aria-activedescendant",`${f}-item-${u}`);else S.root.removeAttribute("aria-activedescendant");if(z){let{selected:t}=Z;if(V>=0&&V!==u){let q0=U.dataManager.getItem(V);if(q0)U.renderer.updateItemClasses(V,t.has(q0.id),!1)}if(u>=0){let q0=U.dataManager.getItem(u);if(q0)U.renderer.updateItemClasses(u,t.has(q0.id),!0)}}else A();if(u>=0&&u!==V){let t=U.dataManager.getItem(u);if(t)T.emit("focus:change",{id:t.id,index:u})}}});U.methods.set("select",(...E)=>{if(Z=t0(Z,E,q),E.length>0){let N=h.get(E[0]);if(N===void 0)p(),N=h.get(E[0]);if(N!==void 0)Z=x0(Z,N)}A()}),U.methods.set("deselect",(...E)=>{Z=v1(Z,E),A()}),U.methods.set("toggleSelect",(E)=>{Z=e0(Z,E,q),A()}),U.methods.set("selectAll",()=>{if(q!=="multiple")return;let E=U.getAllLoadedItems();Z=S1(Z,E,q),p(),A()}),U.methods.set("clearSelection",()=>{Z=f1(Z),A()}),U.methods.set("getSelected",()=>{return L1(Z)}),U.methods.set("getSelectedItems",()=>{return F1(Z,(N)=>{let V=h.get(N);return V===void 0?void 0:U.dataManager.getItem(V)})});let $=(E)=>{let N=U.dataManager.getTotal();if(N===0)return;if(H(),k){let v=E==="next"?"ArrowDown":"ArrowUp",u=k(Z.focusedIndex,v,N);Z=x0(Z,u)}else{let{ud:v}=G();Z=E==="next"?E1(Z,N,O.wrap,v):A1(Z,N,O.wrap,v)}let V=E==="next"?1:-1;Z.focusedIndex=y(Z.focusedIndex,V,N);let D=Z.focusedIndex,z=U.dataManager.getItem(D);if(!z)return;Z=t0(Z,[z.id],q),m(D),A()};U.methods.set("selectNext",()=>{$("next")}),U.methods.set("selectPrevious",()=>{$("previous")}),U.methods.set("_focusById",(E)=>{let N=h.get(E);if(N!==void 0){let D=U.dataManager.getItem(N);if(!D||D.id!==E)N=void 0}if(N===void 0){if(p(),N=h.get(E),N===void 0)return}Z=x0(Z,N);let V=U.dataManager.getItem(N);if(V)T.emit("focus:change",{id:V.id,index:N})}),U.methods.set("_getFocusedId",()=>{let E=Z.focusedIndex;if(E<0)return;return U.dataManager.getItem(E)?.id}),U.methods.set("_setFocusedIndex",(E)=>{Z=x0(Z,E),Z.focusVisible=!0,m(E),S.root.setAttribute("aria-activedescendant",`${f}-item-${E}`),U.renderIfNeeded()}),U.destroyHandlers.push(()=>{if(x&&x.parentNode)x.remove();S.root.removeEventListener("focusin",J0),S.root.removeEventListener("focusout",n)})},destroy(){if(_&&_.parentNode)_.remove();_=null}}};var rJ=(J)=>{try{let q=sessionStorage.getItem(J);if(!q)return;return JSON.parse(q)}catch{return}},n1=(J)=>{let q=J?.autoSave,j=q?rJ(q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){Q.methods.set("getScrollSnapshot",()=>{let Z=Q.scrollController.getScrollTop(),_=Q.getCachedCompression(),K=Q.getVirtualTotal(),U=Q.methods.get("getSelected"),S=U&&U().length>0?U():void 0;if(K===0){let R={index:0,offsetInItem:0,total:0};if(S)R.selectedIds=S;return R}let T,O;if(_.isCompressed&&_.ratio!==1){let y=Z/_.virtualSize*K;T=Math.max(0,Math.min(Math.floor(y),K-1)),O=(y-T)*Q.sizeCache.getSize(T)}else T=Q.sizeCache.indexAtOffset(Z),O=Z-Q.sizeCache.getOffset(T);O=Math.max(0,O);let F={index:T,offsetInItem:O,total:K,scrollTop:Z},f=Q.sizeCache.getSize(T);if(f>0)F.offsetRatio=O/f;let L=Q.methods.get("_layoutToDataIndex");if(L){let R=L(T);if(R<0){for(let y=T+1;y<K;y++)if(R=L(y),R>=0)break}if(R>=0)F.dataIndex=R}let w=Q.methods.get("_getTotal");if(w)F.dataTotal=w();if(S)F.selectedIds=S;let b=Q.methods.get("_getFocusedId");if(b){let R=b();if(R!==void 0)F.focusedId=R}return F});let Y=(Z)=>{let{index:_,offsetInItem:K,selectedIds:U,focusedId:S}=Z,T=Q.getVirtualTotal(),O=Z.dataTotal??Z.total;if(T===0&&O&&O>0){Q.dataManager.setTotal(O);let C=Q.getVirtualTotal();Q.sizeCache.rebuild(C),Q.updateCompressionMode();let k=Q.getCachedCompression();if(!k.isCompressed)Q.updateContentSize(k.virtualSize)}else if(T===0)return;if(!Number.isFinite(_)||!Number.isFinite(K))return;let F=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==F){Q.sizeCache.rebuild(F),Q.updateCompressionMode();let C=Q.getCachedCompression();if(!C.isCompressed)Q.updateContentSize(C.virtualSize)}let L=Q.getCachedCompression(),w=Q.methods.get("_dataToLayoutIndex"),b=_;if(Z.dataIndex!==void 0&&Z.dataIndex>=0)b=w?w(Z.dataIndex):Z.dataIndex;else if(w)b=w(_);let R=Math.max(0,Math.min(b,F-1)),y=Q.sizeCache.getSize(R),h=Z.offsetRatio!==void 0?Z.offsetRatio*y:Math.min(K,y),p;if(L.isCompressed&&L.ratio!==1){let C=Q.methods.get("_getTotal")?.(),k=Z.dataTotal!==void 0&&C!==void 0&&Z.dataTotal===C;if(Z.scrollTop!==void 0&&(Z.total===F||k))p=Z.scrollTop;else{let P=y>0?h/y:0;p=(R+P)/F*L.virtualSize}}else p=Q.sizeCache.getOffset(R)+h;let I=Q.state.viewportState.containerSize,A=L.isCompressed?Q.state.viewportState.totalSize:L.virtualSize,d=Math.max(0,A-I);p=Math.max(0,Math.min(p,d));let i=p===Z.scrollTop;if(Z.dataIndex!==void 0&&Z.dataIndex>=0){let C=y>0?h/y:0;Q.methods.set("_restoreAnchor",{dataIndex:Z.dataIndex,fraction:C,skipAdjust:i}),Q.methods.set("_suppressSave",!0)}if(Q.scrollController.scrollTo(p),U&&U.length>0){let C=Q.methods.get("select");if(C)C(...U)}let o=Q.methods.get("loadVisibleRange"),g=()=>{if(S===void 0)return;let C=Q.methods.get("_focusById");if(C)C(S)};if(o){let k=0,P=p,M=()=>{k++;let H=Q.state.viewportState.containerSize,G=Q.scrollController.getScrollTop();if(H>0){if(Math.abs(G-P)>1)Q.scrollController.scrollTo(P);o().then(g)}else if(k<10)requestAnimationFrame(M)};requestAnimationFrame(M)}else{let C=Q.methods.get("reload");if(C)requestAnimationFrame(()=>{C().then(g)});else requestAnimationFrame(g)}};Q.methods.set("restoreScroll",Y);let X=!!j&&!!q,W=null;if(q){W=()=>{if(X)return;if(Q.methods.has("_suppressSave"))return;let K=Q.methods.get("getScrollSnapshot");if(!K)return;let U=K();try{sessionStorage.setItem(q,JSON.stringify(U))}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 K=Q.methods.get("_cancelAutoLoad");if(K)K();Q.dataManager.setTotal(j.total)}}if(j){let Z=!1;if(j.selectedIds&&j.selectedIds.length>0){let K=Q.methods.get("_seedSelection");if(K)K(j.selectedIds),Z=!0}let _=Z?(({selectedIds:K,...U})=>U)(j):j;queueMicrotask(()=>{if(Y(_),X=!1,W)W()})}}}};var jJ=(J,q=50,j=1/0,Q=!0)=>{let Y=J,X=[],W=0,Z=()=>{X=Y.map((L,w)=>({def:L,index:w,width:0,minWidth:sJ(L.minWidth??q,1),maxWidth:L.maxWidth??j,resizable:L.resizable??Q,offset:0}))},_=(L)=>{if(X.length===0){W=0;return}let w=0,b=0;for(let R=0;R<X.length;R++){let y=X[R],h=y.def;if(h.width!==void 0)y.width=i1(h.width,y.minWidth,y.maxWidth),w+=y.width;else b++}if(b>0){let y=Math.max(0,L-w)/b;for(let h=0;h<X.length;h++){let p=X[h];if(p.def.width===void 0)p.width=i1(y,p.minWidth,p.maxWidth)}}K()},K=()=>{let L=0;for(let w=0;w<X.length;w++){let b=X[w];b.offset=L,L+=b.width}W=L},U=(L,w)=>{if(L<0||L>=X.length)return 0;let b=X[L];if(!b.resizable)return b.width;let R=i1(w,b.minWidth,b.maxWidth);return b.width=R,K(),R},S=(L)=>{return X[L]},T=(L)=>{if(X.length===0)return;if(L<0)return X[0];if(L>=W)return X[X.length-1];let w=0,b=X.length-1;while(w<b){let R=w+b>>>1,y=X[R];if(L<y.offset)b=R-1;else if(L>=y.offset+y.width)w=R+1;else return y}return X[w]},O=(L)=>{if(L<0||L>=X.length)return 0;return X[L].offset},F=(L)=>{if(L<0||L>=X.length)return 0;return X[L].width},f=(L)=>{Y=L,Z()};return Z(),{get columns(){return X},get totalWidth(){return W},resolve:_,updateColumns:f,resizeColumn:U,getColumn:S,getColumnAtX:T,getColumnOffset:O,getColumnWidth:F}},i1=(J,q,j)=>Math.min(j,Math.max(q,J)),sJ=(J,q)=>Math.max(q,J);var YJ=(J,q,j,Q,Y,X)=>{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 K=[],U=[],S=[],T=!0,O=null,F="asc",f=null,L=!1,w=-1,b=0,R=0,y=(M,H)=>{let G=document.createElement("div");G.className=`${j}-table-header-cell`,G.setAttribute("role","columnheader"),G.setAttribute("aria-colindex",String(H+1)),G.dataset.columnKey=M.def.key;let m=M.def.align;if(m==="center")G.classList.add(`${j}-table-header-cell--center`);else if(m==="right")G.classList.add(`${j}-table-header-cell--right`);let e=document.createElement("div");e.className=`${j}-table-header-content`;let s=M.def.header?M.def.header(M.def):M.def.label;if(typeof s==="string")e.textContent=s;else e.appendChild(s);if(G.appendChild(e),M.def.sortable){let x=document.createElement("span");x.className=`${j}-table-header-sort`,x.setAttribute("aria-hidden","true"),G.appendChild(x),S.push(x),G.classList.add(`${j}-table-header-cell--sortable`)}else S.push(null);if(M.resizable){let x=document.createElement("div");x.className=`${j}-table-header-resize`,x.dataset.resizeIndex=String(H),G.appendChild(x),U.push(x)}return G},h=(M)=>{f=M,_.textContent="",K=[],U=[],S=[];let H=M.columns;for(let G=0;G<H.length;G++){let m=H[G],e=y(m,G);K.push(e),_.appendChild(e)}if(p(M),O)I(O,F)},p=(M)=>{f=M;let H=M.columns;_.style.width=`${M.totalWidth}px`;for(let G=0;G<K.length&&G<H.length;G++){let m=K[G],e=H[G];m.style.width=`${e.width}px`}},I=(M,H)=>{if(O=M,F=H,!f)return;let G=f.columns;for(let m=0;m<S.length&&m<G.length;m++){let e=S[m];if(!e)continue;if(G[m].def.key===M&&M!==null)e.textContent=H==="asc"?"▲":"▼",e.style.opacity="0.7",K[m].setAttribute("aria-sort",H==="asc"?"ascending":"descending");else e.textContent="",e.style.opacity="0",K[m].removeAttribute("aria-sort")}},A=(M)=>{_.style.transform=`translateX(${-M}px)`},d=(M)=>{let H=M.target;if(!H.dataset.resizeIndex)return;if(M.preventDefault(),M.stopPropagation(),w=parseInt(H.dataset.resizeIndex,10),!f)return;let G=f.getColumn(w);if(!G||!G.resizable)return;L=!0,b=M.clientX,R=G.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",H.classList.add(`${j}-table-header-resize--active`),H.setPointerCapture(M.pointerId),H.addEventListener("pointermove",i),H.addEventListener("pointerup",o),H.addEventListener("pointercancel",o)},i=(M)=>{if(!L||!f)return;let H=M.clientX-b;if(Math.abs(H)<1)return;let G=Math.max(0,R+H);Q(w,G)},o=(M)=>{if(!L)return;let H=M.target;H.removeEventListener("pointermove",i),H.removeEventListener("pointerup",o),H.removeEventListener("pointercancel",o);try{H.releasePointerCapture(M.pointerId)}catch{}H.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",L=!1,w=-1},g=(M)=>{let H=M.target;if(H.dataset.resizeIndex!==void 0)return;if(L)return;let G=H;while(G&&!G.dataset.columnKey)if(G=G.parentElement,G===Z||G===null)return;if(!G||!G.dataset.columnKey)return;let m=G.dataset.columnKey;if(!f)return;let e=f.columns,s=-1;for(let J0=0;J0<e.length;J0++)if(e[J0].def.key===m){s=J0;break}if(s===-1)return;let x=e[s];if(X)X({key:m,index:s,event:M});if(x.def.sortable&&Y){let J0;if(O===m)if(F==="asc")J0="desc";else J0=null;else J0="asc";Y({key:m,index:s,direction:J0})}};return Z.addEventListener("pointerdown",d),Z.addEventListener("click",g),{element:Z,update:p,updateSort:I,rebuild:h,show:()=>{if(T)return;T=!0,Z.style.display=""},hide:()=>{if(!T)return;T=!1,Z.style.display="none"},destroy:()=>{Z.removeEventListener("pointerdown",d),Z.removeEventListener("click",g),J.style.removeProperty("--vlist-table-header-height"),W.remove(),K=[],U=[],S=[],f=null,T=!1},syncScroll:A}};var aJ=()=>{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}}},XJ=(J,q,j,Q,Y,X,W,Z,_)=>{let K=aJ(),U=new Map,S=-1,T=j,O=null,F=null,f=null,L=(V,D)=>{F=V,f=D},w=(V,D)=>{if(D)V.setAttribute("aria-selected","true");else V.removeAttribute("aria-selected")},b=(V,D,z,v)=>{V.setAttribute("role",D),V.setAttribute("data-id",String(z)),V.setAttribute("data-index",String(v))},R=(V)=>String(V).startsWith("__placeholder_"),y=`${Y}-item ${Y}-table-row`,h=`${Y}-item--selected`,p=`${Y}-item--focused`,I=`${Y}-table-cell`,A=`${Y}-table-cell--center`,d=`${Y}-table-cell--right`,i=`${Y}-item--odd`,o=`${Y}-item--placeholder`,g=`${Y}-item--replaced`,C=`${Y}-item ${Y}-table-row ${Y}-table-group-header`,k=`${Y}-table-group-header-content`,P=(V,D,z,v,u=!1)=>{if(z.def.cell){let t=z.def.cell(D,z.def,v);if(typeof t==="string")V.innerHTML=t;else V.replaceChildren(t)}else{let t=D[z.def.key],q0=t!=null?String(t):"";if(u&&q0)V.innerHTML=`<span>${q0}</span>`;else V.textContent=q0}},M=(V,D,z,v,u=!1)=>{let t=y;if(Z){if(O){let q0=O(D);if(q0>=0&&(q0&1)===1)t+=` ${i}`}else if((D&1)===1)t+=` ${i}`}if(u)t+=` ${o}`;if(z)t+=` ${h}`;if(v)t+=` ${p}`;V.className=t},H=(V,D,z)=>{if(z?.compression?.isCompressed)return Math.round(Q1(V,z.scrollPosition,D,z.totalItems,z.containerSize,z.compression,z.rangeStart));return D.getOffset(V)},G=(V,D)=>{let z=D.def.align;if(z==="center")V.classList.add(A),V.classList.remove(d);else if(z==="right")V.classList.add(d),V.classList.remove(A);else V.classList.remove(A,d)},m=(V,D)=>{let v=T.columns.length;if(D.length===v)return D;let u=[];for(let t=0;t<v;t++){let q0;if(t<D.length)q0=D[t];else q0=document.createElement("div"),q0.className=I,V.appendChild(q0);u.push(q0)}for(let t=v;t<D.length;t++)D[t].remove();return u},e=(V,D,z,v)=>{let u=K.acquire(),t=V,q0=z.getSize(D),c=H(D,z,v);u.style.cssText=`width:${T.totalWidth}px;height:${q0}px;transform:translateY(${c}px)`,u.className=C,b(u,"presentation",V.id,D),u.removeAttribute("aria-selected"),u.removeAttribute("aria-rowindex"),u.replaceChildren();let Q0=document.createElement("div");if(Q0.className=k,f){let X0=f(t.groupKey,t.groupIndex);if(typeof X0==="string")Q0.innerHTML=X0;else Q0.appendChild(X0)}return u.appendChild(Q0),{element:u,cells:[],index:D,isGroupHeader:!0,lastItemId:V.id,lastSelected:!1,lastFocused:!1,lastOffset:c,lastHeight:q0}},s=(V,D,z,v,u,t)=>{let q0=K.acquire(),c=u.getSize(D),Q0=H(D,u,t),X0=R(V.id);q0.style.cssText=`width:${T.totalWidth}px;height:${c}px;transform:translateY(${Q0}px)`,M(q0,D,z,v,X0),b(q0,"row",V.id,D),q0.id=`${X}-${D}`,q0.setAttribute("aria-rowindex",String(D+2)),w(q0,z);let K0=m(q0,[]),W0=T.columns;for(let M0=0;M0<K0.length&&M0<W0.length;M0++){let L0=K0[M0],R0=W0[M0];L0.style.cssText=`left:${R0.offset}px;width:${R0.width}px`,L0.setAttribute("role","gridcell"),L0.setAttribute("aria-colindex",String(M0+1)),G(L0,R0),P(L0,V,R0,D,X0)}return{element:q0,cells:K0,index:D,isGroupHeader:!1,lastItemId:V.id,lastSelected:z,lastFocused:v,lastOffset:Q0,lastHeight:c}},x=(V,D,z,v,u)=>{for(let[X0,K0]of U)if(X0<D.start||X0>D.end)K.release(K0.element),U.delete(X0);let t=!1,q0=W();if(q0!==S)S=q0,t=!0;let c=null,Q0=q();O=typeof Z==="string"&&_?_():null;for(let X0=D.start;X0<=D.end;X0++){let K0=X0-D.start,W0=V[K0];if(!W0)continue;let M0=z.has(W0.id),L0=X0===v,R0=F?F(W0):!1,B0=U.get(X0);if(B0){if(B0.isGroupHeader!==R0){K.release(B0.element),U.delete(X0);let D0=R0?e(W0,X0,Q0,u):s(W0,X0,M0,L0,Q0,u);if(U.set(X0,D0),!c)c=document.createDocumentFragment();c.appendChild(D0.element);continue}if(R0){if(B0.lastItemId!==W0.id){let T0=W0,k0=B0.element.firstElementChild;if(k0&&f){let _0=f(T0.groupKey,T0.groupIndex);if(typeof _0==="string")k0.innerHTML=_0;else k0.replaceChildren(_0)}B0.element.setAttribute("data-id",String(W0.id)),B0.lastItemId=W0.id}let F0=H(X0,Q0,u);if(B0.lastOffset!==F0)B0.lastOffset=F0,B0.element.style.transform=`translateY(${F0}px)`;let w0=Q0.getSize(X0);if(B0.lastHeight!==w0)B0.lastHeight=w0,B0.element.style.height=`${w0}px`}else{let D0=B0.lastItemId!==W0.id,F0=B0.lastSelected!==M0,w0=B0.lastFocused!==L0;if(D0){let _0=B0.lastItemId!=null&&R(B0.lastItemId),G0=R(W0.id);if(!G0&&m0(z,X0,W0.id))M0=!0;let b0=T.columns;for(let P0=0;P0<B0.cells.length&&P0<b0.length;P0++)P(B0.cells[P0],W0,b0[P0],X0,G0);if(M(B0.element,X0,M0,L0,G0),B0.element.setAttribute("data-id",String(W0.id)),w(B0.element,M0),_0&&!G0)B0.element.classList.add(g),setTimeout(()=>{B0.element.classList.remove(g)},300);B0.lastItemId=W0.id,B0.lastSelected=M0,B0.lastFocused=L0}else if(F0||w0)M(B0.element,X0,M0,L0,R(W0.id)),w(B0.element,M0),B0.lastSelected=M0,B0.lastFocused=L0;let T0=H(X0,Q0,u);if(B0.lastOffset!==T0)B0.lastOffset=T0,B0.element.style.transform=`translateY(${T0}px)`;let k0=Q0.getSize(X0);if(B0.lastHeight!==k0)B0.lastHeight=k0,B0.element.style.height=`${k0}px`;if(t)B0.element.setAttribute("aria-rowindex",String(X0+2))}}else{if(m0(z,X0,W0.id))M0=!0;let D0=R0?e(W0,X0,Q0,u):s(W0,X0,M0,L0,Q0,u);if(U.set(X0,D0),!c)c=document.createDocumentFragment();c.appendChild(D0.element)}}if(c)J.appendChild(c)},J0=(V)=>{let D=q();for(let[z,v]of U){let u=H(z,D,V);if(v.lastOffset!==u)v.lastOffset=u,v.element.style.transform=`translateY(${u}px)`}},n=(V,D,z,v)=>{let u=U.get(V);if(!u)return;if(u.isGroupHeader)return;let t=T.columns;for(let q0=0;q0<u.cells.length&&q0<t.length;q0++)P(u.cells[q0],D,t[q0],V);u.element.setAttribute("data-id",String(D.id)),u.lastItemId=D.id,M(u.element,V,z,v),w(u.element,z),u.lastSelected=z,u.lastFocused=v},B=(V,D,z)=>{let v=U.get(V);if(!v)return;if(v.isGroupHeader)return;let u=v.lastSelected!==D,t=v.lastFocused!==z;if(u||t)M(v.element,V,D,z),w(v.element,D),v.lastSelected=D,v.lastFocused=z},l=(V)=>{T=V;let D=V.columns;for(let[,z]of U)if(z.element.style.width=`${V.totalWidth}px`,z.cells.length>0)for(let v=0;v<z.cells.length&&v<D.length;v++){let u=z.cells[v],t=D[v];u.style.left=`${t.offset}px`,u.style.width=`${t.width}px`}},$=(V)=>{return U.get(V)?.element},E=()=>{for(let[,V]of U)K.release(V.element);U.clear(),S=-1};return{render:x,updatePositions:J0,updateItem:n,updateItemClasses:B,getElement:$,updateColumnLayout:l,setGroupHeaderFn:L,clear:E,destroy:()=>{E(),K.clear()}}};var oJ=new Set,t1=(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(Y){let{dom:X,emitter:W,config:Z}=Y,{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 K=J.resizable??!0,U=J.minColumnWidth??50,S=J.maxColumnWidth??1/0,T=J.columnBorders??!1,O=J.rowBorders??!0,F=J.rowHeight,f=Y.rawConfig.padding,L=!f?0:typeof f==="number"?f*2:f.length===2?f[1]*2:f[1]+f[3],w=J.headerHeight??(typeof F==="number"?F:40),b=J.sort?.key??null,R=J.sort?.direction??"asc";if(q=jJ(J.columns,U,S,K),typeof F==="function")Y.setSizeConfig(F);else if(typeof F==="number")Y.setSizeConfig(F);if(Y.rebuildSizeCache(),X.root.classList.add(`${_}--table`),O)X.root.classList.add(`${_}--table-row-borders`);if(T)X.root.classList.add(`${_}--table-col-borders`);X.root.setAttribute("role","grid"),X.root.setAttribute("aria-colcount",String(J.columns.length));let y=-1,h=X.items.getAttribute("aria-label");if(h)X.root.setAttribute("aria-label",h),X.items.removeAttribute("aria-label");X.items.setAttribute("role","rowgroup"),X.viewport.setAttribute("role","none"),X.content.setAttribute("role","none"),X.viewport.removeAttribute("tabindex");let p=Y.getContainerWidth()-L;q.resolve(p);let I=($,E)=>{if(!q)return;let N=q.getColumn($);if(!N)return;let V=N.width,D=q.resizeColumn($,E);if(j)j.update(q);if(Q)Q.updateColumnLayout(q);i(),W.emit("column:resize",{key:N.def.key,index:$,previousWidth:V,width:D})},A=($)=>{if($.direction===null)b=null,R="asc";else b=$.key,R=$.direction;if(j)j.updateSort(b,R);W.emit("column:sort",$)},d=($)=>{W.emit("column:click",$)};if(j=YJ(X.root,w,_,I,A,d),j.rebuild(q),b)j.updateSort(b,R);let i=()=>{if(!q)return;let $=q.totalWidth;X.content.style.minWidth=`${$}px`,X.items.style.minWidth=`${$}px`};i(),Q=XJ(X.items,()=>Y.sizeCache,q,J.columns,_,Z.ariaIdPrefix,()=>Y.dataManager.getTotal(),Y.rawConfig.item?.striped,()=>Y.getStripeIndexFn());let o=null,g=null,C=!1,k=()=>{if(C)return;C=!0,o=Y.methods.get("_getSelectedIds")??null,g=Y.methods.get("_getFocusedIndex")??null},P=-1,M=-1,H=-1,G=!0,m=Z.overscan,e={start:0,end:0},s={start:0,end:0},x=()=>{if(Y.state.isDestroyed)return;let $=Y.scrollController.getScrollTop(),E=Y.state.viewportState.containerSize,N=Y.getVirtualTotal(),V=Y.state.viewportState.isCompressed;if(!G&&$===P&&E===M&&N===H)return;P=$,M=E,H=N,G=!1;let D=N+1;if(D!==y)y=D,X.root.setAttribute("aria-rowcount",String(D));Y.getVisibleRange($,E,N,e),s.start=Math.max(0,e.start-m),s.end=Math.min(N-1,e.end+m);let z=Y.state.viewportState;z.scrollPosition=$,z.visibleRange.start=e.start,z.visibleRange.end=e.end,z.renderRange.start=s.start,z.renderRange.end=s.end;let v=Y.state.lastRenderRange,u=v.start!==s.start||v.end!==s.end;if(!u&&V){Q.updatePositions(Y.getCompressionContext());return}if(!u)return;let t=V?Y.getCompressionContext():void 0,q0=Y.dataManager.getItemsInRange(s.start,s.end);k();let c=o?o():oJ,Q0=g?g():-1;Q.render(q0,s,c,Q0,t),v.start=s.start,v.end=s.end,W.emit("range:change",{range:{start:s.start,end:s.end}})},J0=()=>{if(Y.state.isDestroyed)return;Y.state.lastRenderRange.start=-1,Y.state.lastRenderRange.end=-1,G=!0,x()};Y.setRenderFns(x,J0),Y.setUpdateItemClassesFn(($,E,N)=>{Q?.updateItemClasses($,E,N)});let n=j,B=-1,l=()=>{let $=X.viewport.scrollLeft;if($!==B){if(B=$,n.syncScroll)n.syncScroll($)}};Y.afterScroll.push(l),X.viewport.addEventListener("scroll",l,{passive:!0}),Y.resizeHandlers.push(($,E)=>{if(!q)return;if(q.resolve($-L),j)j.update(q);if(Q)Q.updateColumnLayout(q);i()}),Y.methods.set("updateColumns",($)=>{if(!q||!j)return;if(q.updateColumns($),q.resolve(Y.getContainerWidth()-L),j.rebuild(q),b)j.updateSort(b,R);if(i(),Q)Q.updateColumnLayout(q),Q.clear();Y.forceRender()}),Y.methods.set("resizeColumn",($,E)=>{if(!q)return;let N;if(typeof $==="string"){let V=q.columns;N=-1;for(let D=0;D<V.length;D++)if(V[D].def.key===$){N=D;break}if(N===-1)return}else N=$;I(N,E)}),Y.methods.set("getColumnWidths",()=>{if(!q)return{};let $={},E=q.columns;for(let N=0;N<E.length;N++)$[E[N].def.key]=E[N].width;return $}),Y.methods.set("setSort",($,E)=>{if(b=$,R=E??"asc",j)j.updateSort(b,R)}),Y.methods.set("getSort",()=>{return{key:b,direction:R}}),Y.methods.set("_getTableLayout",()=>q),Y.methods.set("_updateRenderedItem",($,E,N,V)=>{Q?.updateItem($,E,N,V)}),Y.methods.set("_replaceTableRenderer",($)=>{Q=$}),Y.methods.set("_updateTableForGroups",($,E)=>{if(Q)Q.setGroupHeaderFn($,E)}),Y.methods.set("_getTableHeaderHeight",()=>w),Y.keydownHandlers.push(($)=>{if($.key!=="ArrowLeft"&&$.key!=="ArrowRight")return;if(!q)return;let E=q.columns;if(E.length===0)return;let N=X.viewport.clientWidth;if(q.totalWidth<=N)return;let V=X.viewport.scrollLeft;if($.key==="ArrowRight"){for(let D=0;D<E.length;D++)if(E[D].offset>V+1){X.viewport.scrollLeft=E[D].offset,$.preventDefault();return}}else{for(let D=E.length-1;D>=0;D--)if(E[D].offset<V-1){X.viewport.scrollLeft=E[D].offset,$.preventDefault();return}if(V>0)X.viewport.scrollLeft=0,$.preventDefault()}}),Y.contentSizeHandlers.push(()=>{i()}),Y.destroyHandlers.push(()=>{if(X.viewport.removeEventListener("scroll",l),j)j.destroy(),j=null;if(Q)Q.destroy(),Q=null;X.content.style.minWidth="",X.items.style.minWidth="",X.root.classList.remove(`${_}--table`),X.root.removeAttribute("role"),X.root.removeAttribute("aria-colcount"),X.viewport.removeAttribute("role"),X.viewport.setAttribute("tabindex","-1"),X.content.removeAttribute("role");let $=X.root.getAttribute("aria-label");if($)X.items.setAttribute("aria-label",$),X.root.removeAttribute("aria-label");X.root.removeAttribute("aria-rowcount"),X.items.setAttribute("role","listbox")})},destroy(){if(j)j.destroy(),j=null;if(Q)Q.destroy(),Q=null}}};var e1=(J)=>{let q=J?.handle??null,j=J?.ghostClass??"vlist-sort-ghost",Q=J?.shiftDuration??150,Y=J?.edgeScrollZone??40,X=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:K,emitter:U,config:S}=_,{classPrefix:T}=S,O=S.horizontal,F=O?"translateX":"translateY",f=Q>0?`transform ${Q}ms ease`:"none",L=!1,w=-1,b=-1,R=0,y=0,h=0,p=0,I=!1,A=null,d=0,i=null,o=0,g=0,C=0,k=null;_.methods.set("isSorting",()=>L||u);let P=(a)=>{return a.closest("[data-index]")},M=(a)=>{let U0=a.dataset.index;return U0===void 0?-1:+U0},H=(a)=>{let U0=a.getBoundingClientRect(),Z0=a.cloneNode(!0);return Z0.className=`${T}-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},G=()=>{if(!A)return;let a=h-g,U0=p-C;A.style.left=`${a}px`,A.style.top=`${U0}px`},m=()=>{let a=_.dataManager.getTotal();if(a===0)return 0;let U0=K.viewport.getBoundingClientRect(),Z0=_.scrollController.getScrollTop(),N0=O?h-g-U0.left+K.viewport.scrollLeft+Z0:p-C-U0.top+Z0,V0=N0+o,O0=_.sizeCache.getOffset(w)+_.sizeCache.getSize(w);if(V0>O0){let A0=_.sizeCache.indexAtOffset(V0),h0=_.sizeCache.getOffset(A0)+_.sizeCache.getSize(A0)/2,f0=V0>h0?A0:A0-1;return Math.min(Math.max(f0,w),a-1)}let H0=_.sizeCache.getOffset(w);if(N0<H0){let A0=_.sizeCache.indexAtOffset(N0),h0=_.sizeCache.getOffset(A0)+_.sizeCache.getSize(A0)/2,f0=N0<h0?A0:A0+1;return Math.max(Math.min(f0,w),0)}return w},e=()=>{let a=K.items.children,U0=o;for(let Z0=0;Z0<a.length;Z0++){let N0=a[Z0],V0=M(N0);if(V0<0||V0===w)continue;let O0=0;if(b>w){if(V0>w&&V0<=b)O0=-U0}else if(b<w){if(V0>=b&&V0<w)O0=U0}let H0=_.sizeCache.getOffset(V0),A0=Math.round(H0+O0);N0.style.transition=f,N0.style.transform=`${F}(${A0}px)`}},s=()=>{let a=K.items.children;for(let U0=0;U0<a.length;U0++){let Z0=a[U0],N0=M(Z0);if(N0>=0)Z0.style.transform=`${F}(${Math.round(_.sizeCache.getOffset(N0))}px)`;Z0.style.transition=""}},x=()=>{let a=m();if(a===b)return;b=a,e(),U.emit("sort:move",{fromIndex:w,currentIndex:b})},J0=!1,n=()=>{let a=K.viewport.getBoundingClientRect();if(O)return h<a.left||h>a.right;return p<a.top||p>a.bottom},B=()=>{let a=()=>{if(!L)return;let U0=K.viewport.getBoundingClientRect(),Z0=0,N0=3;if(O){let O0=h-U0.left,H0=U0.right-h;if(O0<Y){let A0=Math.min(N0,1-O0/Y);Z0=-X*A0*A0}else if(H0<Y){let A0=Math.min(N0,1-H0/Y);Z0=X*A0*A0}}else{let O0=p-U0.top,H0=U0.bottom-p;if(O0<Y){let A0=Math.min(N0,1-O0/Y);Z0=-X*A0*A0}else if(H0<Y){let A0=Math.min(N0,1-H0/Y);Z0=X*A0*A0}}let V0=n();if(Z0!==0){let O0=_.scrollController.getScrollTop(),H0=_.sizeCache.getTotalSize()-(O?K.viewport.clientWidth:K.viewport.clientHeight);if(Z0<0&&O0<=0||Z0>0&&O0>=H0)J0=V0;else J0=!0,_.scrollController.scrollTo(O0+Z0)}else J0=V0;d=requestAnimationFrame(a)};d=requestAnimationFrame(a)},l=()=>{if(d)cancelAnimationFrame(d),d=0},$=(a=!1)=>{if(L=!1,I=!1,A&&A.parentNode)A.remove();A=null,i=null;let U0=`${T}-item--drag-source`,Z0=K.items.children;for(let V0=0;V0<Z0.length;V0++){let O0=Z0[V0];O0.classList.remove(U0);let H0=M(O0);if(H0>=0)O0.style.transform=`${F}(${Math.round(_.sizeCache.getOffset(H0))}px)`;O0.style.transition=""}l(),K.root.classList.remove(`${T}--sorting`),document.body.style.cursor="";let N0=window.getSelection();if(N0)N0.removeAllRanges();if(document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",v),!a)_.forceRender()},E=(a)=>{if(_.state.isDestroyed)return;if(L)return;if(u)F0();if(a.button!==0)return;let U0=a.target;if(q){if(!U0.closest(q))return}let Z0=P(U0);if(!Z0)return;let N0=M(Z0);if(N0<0)return;R=a.clientX,y=a.clientY,h=a.clientX,p=a.clientY,w=N0,I=!1,i=Z0;let V0=Z0.getBoundingClientRect();g=a.clientX-V0.left,C=a.clientY-V0.top,document.addEventListener("pointermove",N),document.addEventListener("pointerup",D),document.addEventListener("pointercancel",v)},N=(a)=>{if(h=a.clientX,p=a.clientY,!I){let U0=h-R,Z0=p-y;if(Math.sqrt(U0*U0+Z0*Z0)<W)return;if(I=!0,L=!0,b=w,K.root.classList.add(`${T}--sorting`),document.body.style.cursor="grabbing",o=_.sizeCache.getSize(w),i)A=H(i),i.classList.add(`${T}-item--drag-source`);let V0=X0();if(V0>=0){let O0=_.dataManager.getItem(V0);k=O0?O0.id:null}else k=null;U.emit("sort:start",{index:w}),B()}if(L){if(a.preventDefault(),G(),!J0)x();else if(n()){if(b!==w)b=w,s()}}},V=(a,U0)=>{let Z0=a!==U0&&a>=0&&U0>=0,N0=()=>{if(L=!1,Z0){if(K.root.classList.add(`${T}--settling`),U.emit("sort:end",{fromIndex:a,toIndex:U0}),k!==null)K0(k);$(!0),requestAnimationFrame(()=>{K.root.classList.remove(`${T}--settling`)})}else K.root.classList.add(`${T}--settling`),U.emit("sort:cancel",{originalItems:_.getAllLoadedItems()}),$(!1),requestAnimationFrame(()=>{K.root.classList.remove(`${T}--settling`)})};if(!A){N0();return}let V0=K.viewport.getBoundingClientRect(),O0=_.scrollController.getScrollTop(),H0=_.sizeCache.getOffset(U0),A0=Q>0?Q:150;if(A.style.transition=`left ${A0}ms ease, top ${A0}ms ease`,O)A.style.left=`${V0.left-K.viewport.scrollLeft+H0-O0}px`,A.style.top=`${V0.top}px`;else A.style.left=`${V0.left}px`,A.style.top=`${V0.top+H0-O0}px`;let h0=!1,f0=()=>{if(h0)return;h0=!0,A?.removeEventListener("transitionend",f0),N0()};A.addEventListener("transitionend",f0),setTimeout(f0,A0+50)},D=(a)=>{if(!I){document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",v),i=null;return}a.preventDefault(),document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",v),l(),V(w,b)},z=()=>{if(!I)return;document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",v),l(),s(),V(w,w)},v=()=>{z()};K.items.addEventListener("pointerdown",E);let u=!1,t="",q0=-1,c=-1,Q0=[],X0=()=>{let a=_.methods.get("_getFocusedIndex");return a?a():-1},K0=(a)=>{let U0=_.methods.get("_focusById");if(U0)U0(a)},W0=(a)=>{let U0=O?K.viewport.clientWidth:K.viewport.clientHeight,Z0=_.scrollController.getScrollTop(),N0=X1(a,_.sizeCache,Z0,U0);if(N0!==Z0)_.scrollController.scrollTo(_.adjustScrollPosition(N0))},M0=(a)=>{K.liveRegion.textContent="",K.liveRegion.offsetHeight,K.liveRegion.textContent=a},L0=(a)=>{let U0=_.dataManager.getItem(a);if(!U0)return"";return K.items.querySelector(`[data-index="${a}"]`)?.textContent?.trim()||String(U0.id)},R0=()=>String(_.dataManager.getTotal()),B0=(a)=>{let U0=_.dataManager.getItem(a);if(!U0)return;u=!0,t=U0.id,q0=a,c=a;let Z0=_.dataManager.getTotal();Q0=[];for(let N0=0;N0<Z0;N0++)Q0.push(_.dataManager.getItem(N0));K.root.classList.add(`${T}--sorting`),U.emit("sort:start",{index:a}),_0(),M0(`Grabbed ${L0(a)}. Current position ${a+1} of ${R0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},D0=()=>{if(!u)return;u=!1;let a=c,U0=L0(a),Z0=K.items.children;for(let N0=0;N0<Z0.length;N0++)Z0[N0].style.transition="none";K.root.classList.remove(`${T}--sorting`),k0(),K0(t),_.forceRender(),M0(`${U0} dropped. Final position ${a+1} of ${R0()}.`),Q0=[],requestAnimationFrame(()=>{let N0=K.items.children;for(let V0=0;V0<N0.length;V0++)N0[V0].style.transition=""})},F0=()=>{if(!u)return;u=!1;let a=q0,U0=K.items.children;for(let Z0=0;Z0<U0.length;Z0++)U0[Z0].style.transition="none";if(K.root.classList.remove(`${T}--sorting`),k0(),c!==a)U.emit("sort:cancel",{originalItems:Q0});K0(t),_.forceRender(),W0(a),M0(`Reorder cancelled. Returned to position ${a+1} of ${R0()}.`),Q0=[],requestAnimationFrame(()=>{let Z0=K.items.children;for(let N0=0;N0<Z0.length;N0++)Z0[N0].style.transition=""})},w0=(a)=>{if(!u)return;let U0=_.dataManager.getTotal(),Z0=c+a;if(Z0<0||Z0>=U0)return;let N0=c,V0=Z0,O0=K.items.children;for(let H0=0;H0<O0.length;H0++)O0[H0].style.transition="none";U.emit("sort:end",{fromIndex:N0,toIndex:V0}),c=V0,K0(t),_.forceRender(),W0(V0),_0(),M0(`${L0(V0)} moved. New position ${V0+1} of ${R0()}.`),requestAnimationFrame(()=>{let H0=K.items.children;for(let A0=0;A0<H0.length;A0++)H0[A0].style.transition=""})},T0=`${T}-item--kb-sorting`,k0=()=>{let a=K.items.querySelectorAll(`.${T0}`);for(let U0=0;U0<a.length;U0++)a[U0].classList.remove(T0)},_0=()=>{k0();let a=K.items.querySelector(`[data-id="${t}"]`);if(a)a.classList.add(T0)};_.afterRenderBatch.push(()=>{if(u)_0()});let G0=(a)=>{if(_.state.isDestroyed)return;if(L){if(a.key==="Escape")a.preventDefault(),a.stopImmediatePropagation(),z();return}if(u)switch(a.key){case" ":case"Enter":a.preventDefault(),a.stopImmediatePropagation(),D0();return;case"Escape":a.preventDefault(),a.stopImmediatePropagation(),F0();return;case"ArrowUp":case"ArrowLeft":a.preventDefault(),a.stopImmediatePropagation(),w0(-1);return;case"ArrowDown":case"ArrowRight":a.preventDefault(),a.stopImmediatePropagation(),w0(1);return;default:if(!a.key.startsWith("F")&&a.key!=="Tab")a.preventDefault(),a.stopImmediatePropagation();return}if(a.key===" "&&!a.shiftKey&&!a.ctrlKey&&!a.metaKey){let U0=X0();if(U0>=0)a.preventDefault(),a.stopImmediatePropagation(),B0(U0)}};K.root.addEventListener("keydown",G0);let b0=`${T}-sort-instructions`,P0=document.createElement("div");P0.id=b0,P0.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",P0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",K.root.appendChild(P0),_.afterRenderBatch.push((a)=>{for(let U0=0;U0<a.length;U0++){let Z0=a[U0].element;Z0.setAttribute("aria-roledescription","sortable item"),Z0.setAttribute("aria-describedby",b0)}}),_.afterRenderBatch.push((a)=>{if(!L)return;for(let U0=0;U0<a.length;U0++){let{index:Z0,element:N0}=a[U0];if(Z0===w)N0.classList.add(`${T}-item--drag-source`),i=N0;else{N0.classList.remove(`${T}-item--drag-source`);let V0=0;if(b>w){if(Z0>w&&Z0<=b)V0=-o}else if(b<w){if(Z0>=b&&Z0<w)V0=o}let O0=Math.round(_.sizeCache.getOffset(Z0)+V0);N0.style.transform=`${F}(${O0}px)`}}}),_.destroyHandlers.push(()=>{if(u)F0();$(),K.items.removeEventListener("pointerdown",E),K.root.removeEventListener("keydown",G0),P0.remove()})}}};var UJ=(J,q)=>{let j=new Map,Q=(X)=>{let W=j.get(X);return W!==void 0?W:J},Y=c0(Q,q);return{getOffset(X){return Y.getOffset(X)},getSize(X){return Q(X)},indexAtOffset(X){return Y.indexAtOffset(X)},getTotalSize(){return Y.getTotalSize()},getTotal(){return Y.getTotal()},rebuild(X){if(X<Y.getTotal()){for(let W of j.keys())if(W>=X)j.delete(W)}Y=c0(Q,X)},isVariable(){return!0},setMeasuredSize(X,W){j.set(X,W)},isMeasured(X){return j.has(X)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var J2=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(q){let j=q.config.horizontal,Y=q.rawConfig.item,X=j?Y.estimatedWidth:Y.estimatedHeight;if(X==null||X<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let W=Y.gap??0,Z=q.getVirtualTotal(),_=S0(q.rawConfig.padding),K=s0(_,j),U=UJ(X+W,Z),S=q.methods.get("_setSizeCache"),T=q.methods.get("_setConstrainSize");if(!S||!T)throw Error("[vlist/withAutoSize] Incompatible builder version");S(U),T((h)=>U.isMeasured(h));let O=new WeakMap,F=0,f=!1,L=2,w=(h)=>{let p=q.scrollController.getScrollTop(),I=q.state.viewportState.containerSize;if(I<=0)return!1;let A=Math.max(0,h+K-I);return p>=A-L},b=()=>{let h=U.getTotalSize(),p=q.state.viewportState.containerSize;if(p<=0)return;let I=Math.max(0,h+K-p),A=q.scrollController.getScrollTop();if(I>A)q.scrollController.scrollTo(I)},R=()=>{let h=U.getTotalSize();q.updateContentSize(h)},y=()=>{if(f){let h=q.dom.viewport,p=h.scrollHeight,I=p-h.clientHeight,A=q.scrollController.getScrollTop(),d=I>0&&A>=I-L,i=q.getVirtualTotal(),o=q.state.viewportState.renderRange.end,g=i>0&&o>=i-1,C=U.getTotalSize()+K,k=Math.abs(C-p),P=g&&I>0&&A>=I-k-L,M=d||P;if(R(),f=!1,M)h.scrollHeight,b(),q.forceRender()}};J=new ResizeObserver((h)=>{if(q.state.isDestroyed)return;let p=!1,I=q.state.viewportState.visibleRange.start;for(let H of h){let G=O.get(H.target);if(G===void 0)continue;let m=j?H.borderBoxSize[0].inlineSize:H.borderBoxSize[0].blockSize;if(!U.isMeasured(G)){let e=m+W,s=U.getSize(G);if(U.setMeasuredSize(G,e),p=!0,G<I&&e!==s)F+=e-s;J.unobserve(H.target);let x=H.target;if(j)x.style.width=`${m}px`;else x.style.height=`${m}px`}}if(!p)return;let A=U.getTotalSize();if(U.rebuild(q.getVirtualTotal()),F!==0){let H=q.scrollController.getScrollTop();q.scrollController.scrollTo(H+F),F=0}let d=w(A),i=q.getVirtualTotal(),o=q.state.viewportState.renderRange.end,g=i>0&&o>=i-1,C=q.dom.viewport,k=C.scrollHeight-C.clientHeight,P=q.scrollController.getScrollTop(),M=k>0&&P>=k-L;if(d||g||!q.scrollController.isScrolling()){if(R(),f=!1,d||g&&M)C.scrollHeight,b()}else f=!0;q.forceRender()}),q.afterRenderBatch.push((h)=>{for(let{index:p,element:I}of h)if(!U.isMeasured(p))O.set(I,p),J.observe(I)}),q.idleHandlers.push(y),q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var nJ=50,iJ=0.1;function ZJ(J){let q=0,j=0,Q=0;function Y(){return Q>0?j/Q:0}function X(_){if(q=_,_>iJ&&_<nJ)j+=_,Q++}function W(){let _=J.getTotal();if(_===0)return 0;let K=J.getItemSize();if(K<=0)return 0;let U=J.getContainerSize();if(U<=0)return 0;let S=J.getScrollPosition(),T=typeof J.getColumns==="function"?J.getColumns():1,F=Math.ceil(_/T)*K,L=Math.min(F,i0)-U,w=F-U,b=L>0?w/L:1,R=S*b,y=Math.ceil((R+U)/K);return Math.min(y*T,_)}function Z(){let _=J.getTotal(),K=W();return{progress:_>0?Math.min(100,Math.max(0,K/_*100)):0,velocity:q,velocityAvg:Y(),itemCount:K,total:_}}return{getState:Z,onVelocity:X}}export{t1 as withTable,e1 as withSortable,n1 as withSnapshots,o1 as withSelection,p1 as withScrollbar,u1 as withScale,m1 as withPage,a1 as withMasonry,c1 as withGroups,s1 as withGrid,J2 as withAutoSize,g1 as withAsync,I1 as vlist,ZJ as createStats};
package/dist/internals.js CHANGED
@@ -1 +1 @@
1
- var b2=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var w2=(J,Q)=>{let Y=0,$=J.length-1;while(Y<$){let q=Y+$+1>>>1;if(J[q].headerLayoutIndex<=Q)Y=q;else $=q-1}return Y},x2=(J,Q)=>{let Y=0,$=J.length-1;while(Y<$){let q=Y+$+1>>>1;if(J[q].firstDataIndex<=Q)Y=q;else $=q-1}return Y},g2=(J,Q,Y)=>{if(J===0)return[];let $=[],q=Q(0,Y?.(0)),j=0,B=0;for(let _=1;_<J;_++){let b=Q(_,Y?.(_));if(b!==q){let O=_-j;$.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:O}),B=B+1+O,q=b,j=_}}return $.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:J-j}),$},u2=(J,Q)=>{if(J.length===0||Q.length===0)return[];let Y=J.length+Q.length,$=Array(Y),q=0;for(let j of Q){$[q]={id:`__group_header_${j.groupIndex}`,__groupHeader:!0,groupKey:j.key,groupIndex:j.groupIndex},q++;for(let B=0;B<j.count;B++)$[q]=J[j.firstDataIndex+B],q++}return $},m2=(J,Q,Y=!1)=>{let $=typeof Q==="number"?(q)=>Q:Q;return(q)=>{let j=J.getEntry(q);if(j.type==="header"){if(Y&&j.group.groupIndex===0)return 0;return J.getHeaderHeight(j.group.groupIndex)}return $(j.dataIndex)}},d2=(J,Q,Y)=>{let $=g2(J,Q.getGroupForIndex,Y),q=J+$.length,j=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return q},get groupCount(){return $.length},get groups(){return $},getEntry:(y)=>{if($.length===0)return{type:"item",dataIndex:y,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let G=w2($,y),W=$[G];if(y===W.headerLayoutIndex)return{type:"header",group:W};let K=y-W.headerLayoutIndex-1;return{type:"item",dataIndex:W.firstDataIndex+K,group:W}},layoutToDataIndex:(y)=>{if($.length===0)return y;let G=w2($,y),W=$[G];if(y===W.headerLayoutIndex)return-1;let K=y-W.headerLayoutIndex-1;return W.firstDataIndex+K},dataToLayoutIndex:(y)=>{if($.length===0)return y;let G=x2($,y),W=$[G],K=y-W.firstDataIndex;return W.headerLayoutIndex+1+K},getGroupAtLayoutIndex:(y)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let G=w2($,y);return $[G]},getGroupAtDataIndex:(y)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let G=x2($,y);return $[G]},getHeaderHeight:typeof j==="number"?(y)=>j:(y)=>{let G=$[y];if(!G)return 0;return j(G.key,y)},rebuild:(y,G)=>{$=g2(y,Q.getGroupForIndex,G??Y),q=y+$.length}}};var c2=(J,Q,Y,$,q,j=!1,B=0,_)=>{let b=j?"width":"height",O=j?"height":"width",N=j?"X":"Y",T=(U,R)=>{U.style[b]=`${R}px`},P=document.createElement("div");P.className=`${q}-sticky-header`,P.setAttribute("role","presentation"),P.setAttribute("aria-hidden","true"),P.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${B||0}px`:`top:${B||0}px`);let y=()=>{let U=document.createElement("div");return U.className="sticky-group",U.style.position="absolute",U.style.willChange="transform",U.style[O]="100%",U},G=y(),W=y();P.append(G,W),J.insertBefore(P,J.firstChild);let K=G,D=W,A=Q.groups,z=[],w=[],g=[],x=0,Y2=()=>{A=Q.groups,x=A.length,z=Array(x),w=Array(x),g=Array(x);let U=_?_():1;for(let R=0;R<x;R++)z[R]=Y.getOffset(A[R].headerLayoutIndex)*U,w[R]=Q.getHeaderHeight(R),g[R]=w[R]*U};Y2();let c=-1,i=0,q2=0,U2=-1,B2=!1,u=0,m=!1,E=(U,R)=>{$(U,R);let p=w[R];return T(U,p),p},Z=(U)=>{U.replaceChildren(),U.style.transform=""},M=(U)=>{if(U===c)return;if(c=U,i=0,q2=0,U<0||U>=x){Z(K);return}i=E(K,U),q2=g[U],T(P,i),K.style.transform=""},X=(U)=>{if(U===u)return;u=U;let R=Math.round(U);K.style.transform=`translate${N}(${R}px)`,D.style.transform=`translate${N}(${R+i}px)`},v=()=>{u=0,K.style.transform="",D.style.transform=""},l=()=>{if(!m)return;let U=K;K=D,D=U,c=U2,i=c>=0?w[c]:0,q2=c>=0?g[c]:0,T(P,i),Z(D),U2=-1,m=!1,v()},a=()=>{if(!m)return;Z(D),U2=-1,m=!1,v()},o=()=>{if(B2)return;B2=!0,P.style.display=""},S=()=>{if(!B2)return;B2=!1,P.style.display="none",Z(K),c=-1,i=0,q2=0,a()},s=(U)=>{if(x===0){S();return}if(U<z[0]){S();return}let R=0,p=x-1;while(R<p){let H=R+p+1>>>1;if(z[H]+g[H]<=U)R=H;else p=H-1}if(!B2)o();M(R);let V=R+1;if(V<x){let H=z[V]-U;if(H<=0&&H>-q2){if(U2!==V||!m)U2=V,E(D,V),m=!0;let k=q2>0?H/q2*i:H;X(k)}else if(H<=-q2){if(m)l()}else if(m)a()}else if(m)a()},L=()=>{Y2();let U=c;if(c=-1,i=0,q2=0,U>=0)M(U)},C=()=>{P.remove(),c=-1,i=0,q2=0,U2=-1,B2=!1,m=!1};return P.style.display="none",{update:s,refresh:L,show:o,hide:S,destroy:C}};var r2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.isHeaderFn,q={row:0,col:0},j=(G)=>{if(G<=0)return 0;if(!$)return Math.ceil(G/Q);let W=0,K=0,D=0;for(let A=0;A<G;A++)if($(A)){if(D++,K>0)W++,K=0;W++,K=0}else if(K++,K>=Q)W++,K=0;if(K>0)W++;return W},B=(G)=>{return q.row=_(G),q.col=b(G),q},_=(G)=>{if(!$)return Math.floor(G/Q);let W=0,K=0;for(let D=0;D<=G;D++)if($(D)){if(K>0)W++,K=0;if(D===G)return W;W++,K=0}else{if(D===G)return W;if(K++,K>=Q)W++,K=0}return console.warn(`⚠️ getRow(${G}) fell through - returning ${W}`),W},b=(G)=>{if(!$)return G%Q;if($(G))return 0;let W=0;for(let K=0;K<=G;K++)if($(K))W=0;else{if(K===G)return W;if(W++,W>=Q)W=0}return W},O=(G,W,K)=>{if(K<=0)return{start:0,end:-1};if(!$){let g=Math.max(0,G*Q),x=Math.min(K-1,(W+1)*Q-1);return{start:g,end:x}}let D=-1,A=-1,z=0,w=0;for(let g=0;g<K;g++){if($(g)){if(w>0)z++,w=0;if(z>=G&&z<=W){if(D===-1)D=g;A=g}z++,w=0}else{if(z>=G&&z<=W){if(D===-1)D=g;A=g}if(w++,w>=Q)z++,w=0}if(z>W&&w===0)break}if(D===-1)return{start:0,end:-1};return{start:D,end:A}},N=(G,W,K)=>{if(W<0||W>=Q)return-1;let D=G*Q+W;if(D<0||D>=K)return-1;return D},T=(G)=>{let W=(Q-1)*Y;return Math.max(0,(G-W)/Q)};return{get columns(){return Q},get gap(){return Y},update:(G)=>{if(G.columns!==void 0)Q=Math.max(1,Math.floor(G.columns));if(G.gap!==void 0)Y=G.gap;if(G.isHeaderFn!==void 0)$=G.isHeaderFn},getTotalRows:j,getPosition:B,getRow:_,getCol:b,getItemRange:O,getItemIndex:N,getColumnWidth:T,getColumnOffset:(G,W)=>{let K=T(W);return G*(K+Y)}}};var M2=16000000;var l2="x",a2=20,v2="_isPlaceholder",O2="__placeholder_";var E2=(J,Q,Y)=>{if(String(Y).startsWith(O2))return!1;let $=O2+Q;if(J.has($))return J.delete($),J.add(Y),!0;return!1},s2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),C2=(J,Q,Y)=>{if(Y==="none")return J;let $=new Set(J.selected);if(Y==="single"){if($.clear(),Q.length>0)$.add(Q[0])}else for(let q of Q)$.add(q);return{...J,selected:$}},f2=(J,Q)=>{let Y=new Set(J.selected);for(let $ of Q)Y.delete($);return{...J,selected:Y}},n2=(J,Q,Y)=>{if(Y==="none")return J;if(J.selected.has(Q))return f2(J,[Q]);else return C2(J,[Q],Y)},o2=(J,Q,Y)=>{if(Y!=="multiple")return J;return{...J,selected:new Set(Q.map(($)=>$.id))}},i2=(J)=>({...J,selected:new Set});var t2=(J,Q)=>{return J.selected.has(Q)},e2=(J)=>{return Array.from(J.selected)},JJ=(J,Q)=>{let Y=[];for(let $ of J.selected){let q=Q($);if(q)Y.push(q)}return Y};var CJ=(J,Q)=>{let Y=Q;return{getOffset:($)=>$*J,getSize:($)=>J,indexAtOffset:($)=>{if(Y===0||J===0)return 0;return Math.max(0,Math.min(Math.floor($/J),Y-1))},getTotalSize:()=>Y*J,getTotal:()=>Y,rebuild:($)=>{Y=$},isVariable:()=>!1}},fJ=(J,Q)=>{let Y=Q,$=new Float64Array(0),q=(B)=>{Y=B,$=new Float64Array(B+1),$[0]=0;for(let _=0;_<B;_++)$[_+1]=$[_]+J(_)};q(Q);let j=(B)=>{if(Y===0)return 0;if(B<=0)return 0;if(B>=$[Y])return Y-1;let _=0,b=Y-1;while(_<b){let O=_+b+1>>>1;if($[O]<=B)_=O;else b=O-1}return _};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=Y)return $[Y];return $[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>j(B),getTotalSize:()=>$[Y]??0,getTotal:()=>Y,rebuild:(B)=>q(B),isVariable:()=>!0}},L2=(J,Q)=>{if(typeof J==="number")return CJ(J,Q);return fJ(J,Q)},S2=(J,Q,Y,$)=>{if($===0)return 0;if(!J.isVariable())return Math.ceil(Y/J.getSize(0));let q=0,j=0,B=Q;while(B<$&&j<Y)j+=J.getSize(B),q++,B++;return Math.max(1,q)};var H2=(J,Q,Y)=>{let $=Q.getTotalSize(),q=Y===!0||$>M2,j=$>M2?M2:$,B=$>0?j/$:1;return{isCompressed:q,actualSize:$,virtualSize:j,ratio:B}},QJ=(J,Q,Y,$,q,j)=>{if($===0||Q===0)return j.start=0,j.end=-1,j;if(!q.isCompressed||q.ratio===1){let y=Y.indexAtOffset(J),G=Y.indexAtOffset(J+Q);if(G<$-1)G++;return j.start=Math.max(0,y),j.end=Math.min($-1,Math.max(0,G)),j}let{virtualSize:B}=q,_=J/B,b=Y.getTotalSize(),O=_*b,N=Y.indexAtOffset(O),T=S2(Y,Math.max(0,N),Q,$),P=N+T;return j.start=Math.max(0,N),j.end=Math.min($-1,Math.max(0,P)),j},$J=(J,Q,Y,$)=>{if(Y===0)return $.start=0,$.end=-1,$;return $.start=Math.max(0,J.start-Q),$.end=Math.min(Y-1,J.end+Q),$},F2=(J,Q,Y,$,q,j,B)=>{if(!j.isCompressed||$===0)return Y.getOffset(J);if(j.ratio===1)return Y.getOffset(J)-Q;let{virtualSize:_}=j,b=Q/_,O=Y.getTotalSize(),N=b*O;return Y.getOffset(J)-N},YJ=(J,Q,Y,$,q,j="start")=>{if($===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/$*q.virtualSize;let N=Q.getSize(J);switch(j){case"center":B-=(Y-N)/2*q.ratio;break;case"end":B-=(Y-N)*q.ratio;break}return Math.max(0,B)}B=Q.getOffset(J);let _=Q.getSize(J);switch(j){case"center":B-=(Y-_)/2;break;case"end":B-=Y-_;break}let b=q.virtualSize-Y;return Math.max(0,Math.min(B,b))},jJ=(J,Q,Y,$)=>{if(Y===0)return 0;if($.isCompressed&&$.ratio!==1){let q=J/$.virtualSize;return Math.floor(q*Y)}return Q.indexAtOffset(J)},qJ=(J,Q)=>{if(typeof Q==="number")return J*Q>M2;return Q.getTotalSize()>M2},BJ=(J)=>{if(J<=0)return 0;return Math.floor(M2/J)},KJ=(J,Q,Y)=>{let $=H2(J,Q,Y);if(!$.isCompressed)return`No compression needed (${J} items, ${($.actualSize/1e6).toFixed(2)}M px)`;return`Compressed to ${($.ratio*100).toFixed(1)}% (${J} items, ${($.actualSize/1e6).toFixed(1)}M px → ${($.virtualSize/1e6).toFixed(1)}M px virtual)`};var T2=(J,Q,Y)=>{let $=Array.from(Q).sort((B,_)=>B-_);if($.length<=1)return;let q=[];for(let B=0;B<$.length;B++){let _=Y($[B]);if(_)q.push(_)}if(q.length<=1)return;let j=J.firstChild;for(let B=0;B<q.length;B++){let _=q[B];if(_===j)j=j.nextSibling;else J.insertBefore(_,j)}};var SJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-row"),j.removeAttribute("data-col"),Q.push(j)},clear:()=>{Q.length=0}}},IJ=1,XJ=(J,Q,Y,$,q,j,B,_,b=!1,O)=>{let N=SJ(),T=new Map,P=j,y=!1,G=0,W="",K=-1,D={selected:!1,focused:!1},A=(L,C)=>{return D.selected=L,D.focused=C,D},z=`${q}-item ${q}-grid-item`,w=`${q}-group-header`,g=`${q}-item--selected`,x=`${q}-item--focused`,Y2=`${q}-item--placeholder`,c=`${q}-item--replaced`,i=(L,C)=>{if(typeof C==="string")L.innerHTML=C;else L.replaceChildren(C)},q2=(L,C,U)=>{L.classList.toggle(g,C),L.classList.toggle(x,U)},U2=(L,C)=>{let U=$.getRow(L);if(C?.compression?.isCompressed)return F2(U,C.scrollPosition,Y,C.totalItems,C.containerSize,C.compression,C.rangeStart);return Y.getOffset(U)},B2=(L,C)=>{let U=y&&$.getCol(L)===0,R=U?0:$.getCol(L),p=U?0:$.getColumnOffset(R,P),V;if(y){let H=$.getRow(L),k=0,r=new Set;for(let f=0;f<L;f++){let d=$.getRow(f);if(d<H&&!r.has(d)){let e=Y.getSize(f);k+=e,r.add(d)}}V=k}else V=U2(L,C);if(b)return`translate(${Math.round(V)}px, ${Math.round(p)}px)`;return`translate(${Math.round(p)}px, ${Math.round(V)}px)`},u=(L,C)=>{L.style.transform=C},m=(L,C)=>{let U=L.classList.contains(w),R=U?P:$.getColumnWidth(P),p;if(y||U)p=Y.getSize(C)-$.gap;else{let V=$.getRow(C);p=Y.getSize(V)-$.gap}if(b)L.style.width=`${p}px`,L.style.height=`${R}px`;else L.style.width=`${R}px`,L.style.height=`${p}px`},E=(L,C,U,R,p)=>{let V=N.acquire(),H=!!C.__groupHeader,k=A(U,R);if(V.className=H?w:z,V.dataset.index=String(L),V.dataset.id=String(C.id),V.dataset.row=String($.getRow(L)),V.dataset.col=String($.getCol(L)),H)V.setAttribute("role","presentation"),V.removeAttribute("aria-selected"),V.removeAttribute("aria-setsize"),V.removeAttribute("aria-posinset"),V.removeAttribute("id");else{if(V.setAttribute("role","option"),V.ariaSelected=String(U),_)V.id=`${_}-item-${L}`;if(B){let d=B();if(d!==K)K=d,W=String(d);V.setAttribute("aria-setsize",W);let e=O?O(L):L+1;V.setAttribute("aria-posinset",String(e))}}m(V,L);let r=Q(C,L,k);if(i(V,r),String(C.id).startsWith(O2))V.classList.add(Y2);return q2(V,U,R),u(V,p),{element:V,lastItemId:C.id,lastSelected:U,lastFocused:R,lastTransform:p,lastSeenFrame:G}},Z=(L,C,U,R,p)=>{if(G++,C.start===0&&L.length>0)y=b2(L[0]);for(let[k,r]of T)if(k>=C.start&&k<=C.end)r.lastSeenFrame=G;else if(G-r.lastSeenFrame>IJ)N.release(r.element),T.delete(k);let V=!1;if(B){let k=B();if(k!==K)K=k,W=String(k),V=!0}let H=null;for(let k=C.start;k<=C.end;k++){let r=k-C.start,f=L[r];if(!f){console.warn(`⚠️ RENDER: Missing item at index ${k} (range: ${C.start}-${C.end}, items.length: ${L.length})`);continue}let d=U.has(f.id),e=k===R,F=T.get(k);if(F){let I=F.lastItemId!==f.id,h=F.lastSelected!==d,$2=F.lastFocused!==e;if(I){let X2=String(F.lastItemId),N2=String(f.id),D2=X2.startsWith(O2),n=N2.startsWith(O2);if(!n&&E2(U,k,f.id))d=!0;let Q2=A(d,e),Z2=Q(f,k,Q2);if(i(F.element,Z2),F.element.dataset.id=N2,F.element.dataset.row=String($.getRow(k)),F.element.dataset.col=String($.getCol(k)),m(F.element,k),F.element.classList.toggle(Y2,n),D2&&!n)F.element.classList.add(c),setTimeout(()=>F.element.classList.remove(c),300);if(F.lastItemId=f.id,!f.__groupHeader){let j2=O?O(k):k+1;F.element.setAttribute("aria-posinset",String(j2))}}if(I||h||$2)q2(F.element,d,e),F.element.ariaSelected=String(d),F.lastSelected=d,F.lastFocused=e;let J2=B2(k,p);if(F.lastTransform!==J2)u(F.element,J2),F.lastTransform=J2;if(V&&!f.__groupHeader)F.element.setAttribute("aria-setsize",W)}else{if(E2(U,k,f.id))d=!0;let I=B2(k,p),h=E(k,f,d,e,I);if(!H)H=document.createDocumentFragment();H.appendChild(h.element),T.set(k,h)}}if(H)J.appendChild(H)},M=(L)=>{for(let[C,U]of T){let R=B2(C,L);if(U.lastTransform!==R)u(U.element,R),U.lastTransform=R}},X=(L,C,U,R)=>{let p=T.get(L);if(!p)return;let V=A(U,R),H=Q(C,L,V);i(p.element,H),q2(p.element,U,R),p.element.dataset.id=String(C.id),p.element.ariaSelected=String(U),m(p.element,L),p.lastItemId=C.id,p.lastSelected=U,p.lastFocused=R},v=(L,C,U)=>{let R=T.get(L);if(!R)return;let p=R.lastSelected!==C,V=R.lastFocused!==U;if(p||V)q2(R.element,C,U),R.lastSelected=C,R.lastFocused=U},l=(L)=>{return T.get(L)?.element},a=(L)=>{if(Math.abs(L-P)<1)return;P=L;for(let[C,U]of T){m(U.element,C);let R=B2(C);u(U.element,R),U.lastTransform=R}},o=()=>{T2(J,T.keys(),(L)=>T.get(L)?.element)},S=()=>{for(let[,L]of T)N.release(L.element);T.clear()};return{render:Z,updatePositions:M,updateItem:X,updateItemClasses:v,getElement:l,sortDOM:o,updateContainerWidth:a,clear:S,destroy:()=>{S(),N.clear()}}};var UJ=(J,Q=50,Y=1/0,$=!0)=>{let q=J,j=[],B=0,_=()=>{j=q.map((K,D)=>({def:K,index:D,width:0,minWidth:pJ(K.minWidth??Q,1),maxWidth:K.maxWidth??Y,resizable:K.resizable??$,offset:0}))},b=(K)=>{if(j.length===0){B=0;return}let D=0,A=0;for(let z=0;z<j.length;z++){let w=j[z],g=w.def;if(g.width!==void 0)w.width=I2(g.width,w.minWidth,w.maxWidth),D+=w.width;else A++}if(A>0){let w=Math.max(0,K-D)/A;for(let g=0;g<j.length;g++){let x=j[g];if(x.def.width===void 0)x.width=I2(w,x.minWidth,x.maxWidth)}}O()},O=()=>{let K=0;for(let D=0;D<j.length;D++){let A=j[D];A.offset=K,K+=A.width}B=K},N=(K,D)=>{if(K<0||K>=j.length)return 0;let A=j[K];if(!A.resizable)return A.width;let z=I2(D,A.minWidth,A.maxWidth);return A.width=z,O(),z},T=(K)=>{return j[K]},P=(K)=>{if(j.length===0)return;if(K<0)return j[0];if(K>=B)return j[j.length-1];let D=0,A=j.length-1;while(D<A){let z=D+A>>>1,w=j[z];if(K<w.offset)A=z-1;else if(K>=w.offset+w.width)D=z+1;else return w}return j[D]},y=(K)=>{if(K<0||K>=j.length)return 0;return j[K].offset},G=(K)=>{if(K<0||K>=j.length)return 0;return j[K].width},W=(K)=>{q=K,_()};return _(),{get columns(){return j},get totalWidth(){return B},resolve:b,updateColumns:W,resizeColumn:N,getColumn:T,getColumnAtX:P,getColumnOffset:y,getColumnWidth:G}},I2=(J,Q,Y)=>Math.min(Y,Math.max(Q,J)),pJ=(J,Q)=>Math.max(Q,J);var NJ=(J,Q,Y,$,q,j)=>{let B=document.createElement("div");B.setAttribute("role","rowgroup");let _=document.createElement("div");_.className=`${Y}-table-header`,_.setAttribute("role","row"),_.setAttribute("aria-rowindex","1"),_.style.height=`${Q}px`;let b=document.createElement("div");b.className=`${Y}-table-header-scroll`,b.setAttribute("role","presentation"),_.appendChild(b),B.appendChild(_),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let O=[],N=[],T=[],P=!0,y=null,G="asc",W=null,K=!1,D=-1,A=0,z=0,w=(Z,M)=>{let X=document.createElement("div");X.className=`${Y}-table-header-cell`,X.setAttribute("role","columnheader"),X.setAttribute("aria-colindex",String(M+1)),X.dataset.columnKey=Z.def.key;let v=Z.def.align;if(v==="center")X.classList.add(`${Y}-table-header-cell--center`);else if(v==="right")X.classList.add(`${Y}-table-header-cell--right`);let l=document.createElement("div");l.className=`${Y}-table-header-content`;let a=Z.def.header?Z.def.header(Z.def):Z.def.label;if(typeof a==="string")l.textContent=a;else l.appendChild(a);if(X.appendChild(l),Z.def.sortable){let o=document.createElement("span");o.className=`${Y}-table-header-sort`,o.setAttribute("aria-hidden","true"),X.appendChild(o),T.push(o),X.classList.add(`${Y}-table-header-cell--sortable`)}else T.push(null);if(Z.resizable){let o=document.createElement("div");o.className=`${Y}-table-header-resize`,o.dataset.resizeIndex=String(M),X.appendChild(o),N.push(o)}return X},g=(Z)=>{W=Z,b.textContent="",O=[],N=[],T=[];let M=Z.columns;for(let X=0;X<M.length;X++){let v=M[X],l=w(v,X);O.push(l),b.appendChild(l)}if(x(Z),y)Y2(y,G)},x=(Z)=>{W=Z;let M=Z.columns;b.style.width=`${Z.totalWidth}px`;for(let X=0;X<O.length&&X<M.length;X++){let v=O[X],l=M[X];v.style.width=`${l.width}px`}},Y2=(Z,M)=>{if(y=Z,G=M,!W)return;let X=W.columns;for(let v=0;v<T.length&&v<X.length;v++){let l=T[v];if(!l)continue;if(X[v].def.key===Z&&Z!==null)l.textContent=M==="asc"?"▲":"▼",l.style.opacity="0.7",O[v].setAttribute("aria-sort",M==="asc"?"ascending":"descending");else l.textContent="",l.style.opacity="0",O[v].removeAttribute("aria-sort")}},c=(Z)=>{b.style.transform=`translateX(${-Z}px)`},i=(Z)=>{let M=Z.target;if(!M.dataset.resizeIndex)return;if(Z.preventDefault(),Z.stopPropagation(),D=parseInt(M.dataset.resizeIndex,10),!W)return;let X=W.getColumn(D);if(!X||!X.resizable)return;K=!0,A=Z.clientX,z=X.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",M.classList.add(`${Y}-table-header-resize--active`),M.setPointerCapture(Z.pointerId),M.addEventListener("pointermove",q2),M.addEventListener("pointerup",U2),M.addEventListener("pointercancel",U2)},q2=(Z)=>{if(!K||!W)return;let M=Z.clientX-A;if(Math.abs(M)<1)return;let X=Math.max(0,z+M);$(D,X)},U2=(Z)=>{if(!K)return;let M=Z.target;M.removeEventListener("pointermove",q2),M.removeEventListener("pointerup",U2),M.removeEventListener("pointercancel",U2);try{M.releasePointerCapture(Z.pointerId)}catch{}M.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",K=!1,D=-1},B2=(Z)=>{let M=Z.target;if(M.dataset.resizeIndex!==void 0)return;if(K)return;let X=M;while(X&&!X.dataset.columnKey)if(X=X.parentElement,X===_||X===null)return;if(!X||!X.dataset.columnKey)return;let v=X.dataset.columnKey;if(!W)return;let l=W.columns,a=-1;for(let S=0;S<l.length;S++)if(l[S].def.key===v){a=S;break}if(a===-1)return;let o=l[a];if(j)j({key:v,index:a,event:Z});if(o.def.sortable&&q){let S;if(y===v)if(G==="asc")S="desc";else S=null;else S="asc";q({key:v,index:a,direction:S})}};return _.addEventListener("pointerdown",i),_.addEventListener("click",B2),{element:_,update:x,updateSort:Y2,rebuild:g,show:()=>{if(P)return;P=!0,_.style.display=""},hide:()=>{if(!P)return;P=!1,_.style.display="none"},destroy:()=>{_.removeEventListener("pointerdown",i),_.removeEventListener("click",B2),J.style.removeProperty("--vlist-table-header-height"),B.remove(),O=[],N=[],T=[],W=null,P=!1},syncScroll:c}};var hJ=()=>{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}}},ZJ=(J,Q,Y,$,q,j,B,_,b)=>{let O=hJ(),N=new Map,T=-1,P=Y,y=null,G=null,W=null,K=(V,H)=>{G=V,W=H},D=(V,H)=>{if(H)V.setAttribute("aria-selected","true");else V.removeAttribute("aria-selected")},A=(V,H,k,r)=>{V.setAttribute("role",H),V.setAttribute("data-id",String(k)),V.setAttribute("data-index",String(r))},z=(V)=>String(V).startsWith("__placeholder_"),w=`${q}-item ${q}-table-row`,g=`${q}-item--selected`,x=`${q}-item--focused`,Y2=`${q}-table-cell`,c=`${q}-table-cell--center`,i=`${q}-table-cell--right`,q2=`${q}-item--odd`,U2=`${q}-item--placeholder`,B2=`${q}-item--replaced`,u=`${q}-item ${q}-table-row ${q}-table-group-header`,m=`${q}-table-group-header-content`,E=(V,H,k,r,f=!1)=>{if(k.def.cell){let d=k.def.cell(H,k.def,r);if(typeof d==="string")V.innerHTML=d;else V.replaceChildren(d)}else{let d=H[k.def.key],e=d!=null?String(d):"";if(f&&e)V.innerHTML=`<span>${e}</span>`;else V.textContent=e}},Z=(V,H,k,r,f=!1)=>{let d=w;if(_){if(y){let e=y(H);if(e>=0&&(e&1)===1)d+=` ${q2}`}else if((H&1)===1)d+=` ${q2}`}if(f)d+=` ${U2}`;if(k)d+=` ${g}`;if(r)d+=` ${x}`;V.className=d},M=(V,H,k)=>{if(k?.compression?.isCompressed)return Math.round(F2(V,k.scrollPosition,H,k.totalItems,k.containerSize,k.compression,k.rangeStart));return H.getOffset(V)},X=(V,H)=>{let k=H.def.align;if(k==="center")V.classList.add(c),V.classList.remove(i);else if(k==="right")V.classList.add(i),V.classList.remove(c);else V.classList.remove(c,i)},v=(V,H)=>{let r=P.columns.length;if(H.length===r)return H;let f=[];for(let d=0;d<r;d++){let e;if(d<H.length)e=H[d];else e=document.createElement("div"),e.className=Y2,V.appendChild(e);f.push(e)}for(let d=r;d<H.length;d++)H[d].remove();return f},l=(V,H,k,r)=>{let f=O.acquire(),d=V,e=k.getSize(H),F=M(H,k,r);f.style.cssText=`width:${P.totalWidth}px;height:${e}px;transform:translateY(${F}px)`,f.className=u,A(f,"presentation",V.id,H),f.removeAttribute("aria-selected"),f.removeAttribute("aria-rowindex"),f.replaceChildren();let I=document.createElement("div");if(I.className=m,W){let h=W(d.groupKey,d.groupIndex);if(typeof h==="string")I.innerHTML=h;else I.appendChild(h)}return f.appendChild(I),{element:f,cells:[],index:H,isGroupHeader:!0,lastItemId:V.id,lastSelected:!1,lastFocused:!1,lastOffset:F,lastHeight:e}},a=(V,H,k,r,f,d)=>{let e=O.acquire(),F=f.getSize(H),I=M(H,f,d),h=z(V.id);e.style.cssText=`width:${P.totalWidth}px;height:${F}px;transform:translateY(${I}px)`,Z(e,H,k,r,h),A(e,"row",V.id,H),e.id=`${j}-${H}`,e.setAttribute("aria-rowindex",String(H+2)),D(e,k);let $2=v(e,[]),J2=P.columns;for(let X2=0;X2<$2.length&&X2<J2.length;X2++){let N2=$2[X2],D2=J2[X2];N2.style.cssText=`left:${D2.offset}px;width:${D2.width}px`,N2.setAttribute("role","gridcell"),N2.setAttribute("aria-colindex",String(X2+1)),X(N2,D2),E(N2,V,D2,H,h)}return{element:e,cells:$2,index:H,isGroupHeader:!1,lastItemId:V.id,lastSelected:k,lastFocused:r,lastOffset:I,lastHeight:F}},o=(V,H,k,r,f)=>{for(let[h,$2]of N)if(h<H.start||h>H.end)O.release($2.element),N.delete(h);let d=!1,e=B();if(e!==T)T=e,d=!0;let F=null,I=Q();y=typeof _==="string"&&b?b():null;for(let h=H.start;h<=H.end;h++){let $2=h-H.start,J2=V[$2];if(!J2)continue;let X2=k.has(J2.id),N2=h===r,D2=G?G(J2):!1,n=N.get(h);if(n){if(n.isGroupHeader!==D2){O.release(n.element),N.delete(h);let Q2=D2?l(J2,h,I,f):a(J2,h,X2,N2,I,f);if(N.set(h,Q2),!F)F=document.createDocumentFragment();F.appendChild(Q2.element);continue}if(D2){if(n.lastItemId!==J2.id){let j2=J2,K2=n.element.firstElementChild;if(K2&&W){let G2=W(j2.groupKey,j2.groupIndex);if(typeof G2==="string")K2.innerHTML=G2;else K2.replaceChildren(G2)}n.element.setAttribute("data-id",String(J2.id)),n.lastItemId=J2.id}let Z2=M(h,I,f);if(n.lastOffset!==Z2)n.lastOffset=Z2,n.element.style.transform=`translateY(${Z2}px)`;let t=I.getSize(h);if(n.lastHeight!==t)n.lastHeight=t,n.element.style.height=`${t}px`}else{let Q2=n.lastItemId!==J2.id,Z2=n.lastSelected!==X2,t=n.lastFocused!==N2;if(Q2){let G2=n.lastItemId!=null&&z(n.lastItemId),_2=z(J2.id);if(!_2&&E2(k,h,J2.id))X2=!0;let V2=P.columns;for(let W2=0;W2<n.cells.length&&W2<V2.length;W2++)E(n.cells[W2],J2,V2[W2],h,_2);if(Z(n.element,h,X2,N2,_2),n.element.setAttribute("data-id",String(J2.id)),D(n.element,X2),G2&&!_2)n.element.classList.add(B2),setTimeout(()=>{n.element.classList.remove(B2)},300);n.lastItemId=J2.id,n.lastSelected=X2,n.lastFocused=N2}else if(Z2||t)Z(n.element,h,X2,N2,z(J2.id)),D(n.element,X2),n.lastSelected=X2,n.lastFocused=N2;let j2=M(h,I,f);if(n.lastOffset!==j2)n.lastOffset=j2,n.element.style.transform=`translateY(${j2}px)`;let K2=I.getSize(h);if(n.lastHeight!==K2)n.lastHeight=K2,n.element.style.height=`${K2}px`;if(d)n.element.setAttribute("aria-rowindex",String(h+2))}}else{if(E2(k,h,J2.id))X2=!0;let Q2=D2?l(J2,h,I,f):a(J2,h,X2,N2,I,f);if(N.set(h,Q2),!F)F=document.createDocumentFragment();F.appendChild(Q2.element)}}if(F)J.appendChild(F)},S=(V)=>{let H=Q();for(let[k,r]of N){let f=M(k,H,V);if(r.lastOffset!==f)r.lastOffset=f,r.element.style.transform=`translateY(${f}px)`}},s=(V,H,k,r)=>{let f=N.get(V);if(!f)return;if(f.isGroupHeader)return;let d=P.columns;for(let e=0;e<f.cells.length&&e<d.length;e++)E(f.cells[e],H,d[e],V);f.element.setAttribute("data-id",String(H.id)),f.lastItemId=H.id,Z(f.element,V,k,r),D(f.element,k),f.lastSelected=k,f.lastFocused=r},L=(V,H,k)=>{let r=N.get(V);if(!r)return;if(r.isGroupHeader)return;let f=r.lastSelected!==H,d=r.lastFocused!==k;if(f||d)Z(r.element,V,H,k),D(r.element,H),r.lastSelected=H,r.lastFocused=k},C=(V)=>{P=V;let H=V.columns;for(let[,k]of N)if(k.element.style.width=`${V.totalWidth}px`,k.cells.length>0)for(let r=0;r<k.cells.length&&r<H.length;r++){let f=k.cells[r],d=H[r];f.style.left=`${d.offset}px`,f.style.width=`${d.width}px`}},U=(V)=>{return N.get(V)?.element},R=()=>{for(let[,V]of N)O.release(V.element);N.clear(),T=-1};return{render:o,updatePositions:S,updateItem:s,updateItemClasses:L,getElement:U,updateColumnLayout:C,setGroupHeaderFn:K,clear:R,destroy:()=>{R(),O.clear()}}};var _J=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.containerSize,q=0,j=[],B=()=>{let K=(Q-1)*Y;q=Math.max(0,($-K)/Q),j=Array(Q);let D=q+Y;for(let A=0;A<Q;A++)j[A]=A*D};B();let _=[],b=0,O=[],N=(K)=>{let D=0,A=K[0];for(let z=1;z<K.length;z++){let w=K[z];if(w<A)A=w,D=z}return D},T=(K,D)=>{if(K<=0)return b=0,_=[],[];let A=Array(Q).fill(0),z=Array(Q);for(let x=0;x<Q;x++)z[x]=[];let w=Array(K);for(let x=0;x<K;x++){let Y2=N(A),c=D(x),i=A[Y2];w[x]={index:x,x:j[Y2],y:i,lane:Y2,size:c,crossSize:q},z[Y2].push(x),A[Y2]=i+c+Y}_=z;let g=0;for(let x=0;x<Q;x++){let Y2=A[x],c=Y2>0?Y2-Y:0;if(c>g)g=c}return b=g,w},P=(K)=>{if(K.length===0)return b>0?b:0;if(b>0)return b;let D=Array(Q).fill(0);for(let z of K){let w=z.y+z.size,g=D[z.lane];if(w>g)D[z.lane]=w}let A=0;for(let z=0;z<Q;z++)if(D[z]>A)A=D[z];return A},y=(K,D,A)=>{if(K.length===0||A<=D)return O.length=0,O;if(_.length===0||_.length!==Q)return G(K,D,A);O.length=0;for(let z=0;z<Q;z++){let w=_[z],g=w.length;if(g===0)continue;let x=0,Y2=g;while(x<Y2){let c=x+Y2>>>1,i=K[w[c]];if(i.y+i.size<=D)x=c+1;else Y2=c}for(let c=x;c<g;c++){let i=K[w[c]];if(i.y>=A)break;O.push(i)}}return O},G=(K,D,A)=>{let z=[];for(let w of K)if(w.y+w.size>D&&w.y<A)z.push(w);return z};return{get columns(){return Q},get gap(){return Y},get containerSize(){return $},update:(K)=>{let D=!1;if(K.columns!==void 0){let A=Math.max(1,Math.floor(K.columns));if(A!==Q)Q=A,D=!0}if(K.gap!==void 0&&K.gap!==Y)Y=K.gap,D=!0;if(K.containerSize!==void 0&&K.containerSize!==$)$=K.containerSize,D=!0;if(D)B()},calculateLayout:T,getTotalSize:P,getVisibleItems:y}};var xJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-lane"),Q.push(j)},clear:()=>{Q.length=0}}},gJ=1,DJ=(J,Q,Y,$=!1,q,j,B)=>{let _=xJ(),b=new Map,O=new Set,N=0,T="",P=-1,y={selected:!1,focused:!1},G=(u,m)=>{return y.selected=u,y.focused=m,y},W=`${Y}-item ${Y}-masonry-item`,K=`${Y}-group-header`,D=`${Y}-item--selected`,A=`${Y}-item--focused`,z=(u,m)=>{if(typeof m==="string")u.innerHTML=m;else u.replaceChildren(m)},w=(u,m,E)=>{u.classList.toggle(D,m),u.classList.toggle(A,E)},g=(u,m)=>{if($)u.style.transform=`translate(${Math.round(m.y)}px, ${Math.round(m.x)}px)`;else u.style.transform=`translate(${Math.round(m.x)}px, ${Math.round(m.y)}px)`},x=(u,m)=>{if($)u.style.width=`${m.size}px`,u.style.height=`${m.crossSize}px`;else u.style.width=`${m.crossSize}px`,u.style.height=`${m.size}px`},Y2=(u,m,E,Z,M)=>{let X=_.acquire(),v=!!m.__groupHeader,l=G(Z,M);if(X.className=v?K:W,X.dataset.index=String(u),X.dataset.id=String(m.id),X.dataset.lane=String(E.lane),v)X.setAttribute("role","presentation"),X.removeAttribute("aria-selected"),X.removeAttribute("aria-setsize"),X.removeAttribute("aria-posinset"),X.removeAttribute("id");else{if(X.setAttribute("role","option"),X.ariaSelected=String(Z),j)X.id=`${j}-item-${u}`;if(q){let o=q();if(o!==P)P=o,T=String(o);X.setAttribute("aria-setsize",T);let S=B?B(u):u+1;X.setAttribute("aria-posinset",String(S))}}x(X,E);let a=Q(m,u,l);return z(X,a),w(X,Z,M),g(X,E),{element:X,lastItemId:m.id,lastSelected:Z,lastFocused:M,lastY:E.y,lastX:E.x,lastSize:E.size,lastCrossSize:E.crossSize,lastSeenFrame:N}},c=(u,m,E,Z)=>{N++,O.clear();for(let X=0;X<m.length;X++)O.add(m[X].index);for(let[X,v]of b)if(O.has(X))v.lastSeenFrame=N;else if(N-v.lastSeenFrame>gJ)_.release(v.element),b.delete(X);let M=null;for(let X=0;X<m.length;X++){let v=m[X],l=v.index,a=u(l);if(!a)continue;let o=E.has(a.id),S=l===Z,s=b.get(l);if(s){let L=s.lastItemId!==a.id,C=s.lastSelected!==o,U=s.lastFocused!==S,R=s.lastY!==v.y||s.lastX!==v.x,p=s.lastSize!==v.size||s.lastCrossSize!==v.crossSize;if(L){let V=G(o,S),H=Q(a,l,V);if(z(s.element,H),s.element.dataset.id=String(a.id),s.lastItemId=a.id,!a.__groupHeader){let r=B?B(l):l+1;s.element.setAttribute("aria-posinset",String(r))}}if(L||C||U)w(s.element,o,S),s.element.ariaSelected=String(o),s.lastSelected=o,s.lastFocused=S;if(p)x(s.element,v),s.lastSize=v.size,s.lastCrossSize=v.crossSize;if(R)g(s.element,v),s.lastY=v.y,s.lastX=v.x}else{let L=Y2(l,a,v,o,S);if(!M)M=document.createDocumentFragment();M.appendChild(L.element),b.set(l,L)}}if(M)J.appendChild(M)},i=()=>{for(let{element:u}of b.values())_.release(u);b.clear(),J.innerHTML=""};return{render:c,getElement:(u)=>b.get(u)?.element,updateItemClasses:(u,m,E)=>{let Z=b.get(u);if(!Z)return;let M=Z.lastSelected!==m,X=Z.lastFocused!==E;if(M||X)w(Z.element,m,E),Z.lastSelected=m,Z.lastFocused=E},sortDOM:()=>{T2(J,b.keys(),(u)=>b.get(u)?.element)},clear:i,destroy:()=>{i(),_.clear()}}};var GJ=(J,Q)=>{let Y=new Map,$=(j)=>{let B=Y.get(j);return B!==void 0?B:J},q=L2($,Q);return{getOffset(j){return q.getOffset(j)},getSize(j){return $(j)},indexAtOffset(j){return q.indexAtOffset(j)},getTotalSize(){return q.getTotalSize()},getTotal(){return q.getTotal()},rebuild(j){if(j<q.getTotal()){for(let B of Y.keys())if(B>=j)Y.delete(B)}q=L2($,j)},isVariable(){return!0},setMeasuredSize(j,B){Y.set(j,B)},isMeasured(j){return Y.has(j)},getEstimatedSize(){return J},measuredCount(){return Y.size}}};var VJ=(J,Q,Y,$,q,j)=>{if($===0||Q===0)return j.start=0,j.end=-1,j;let B=Y.indexAtOffset(J),_=Y.indexAtOffset(J+Q);if(_<$-1)_++;return j.start=Math.max(0,B),j.end=Math.min($-1,Math.max(0,_)),j},WJ=(J,Q,Y,$)=>{if(Y===0)return $.start=0,$.end=-1,$;return $.start=Math.max(0,J.start-Q),$.end=Math.min(Y-1,J.end+Q),$},MJ=(J,Q,Y,$,q,j)=>{if($===0)return 0;let B=Math.max(0,Math.min(J,$-1)),_=Q.getOffset(B),b=Q.getSize(B),O=Q.getTotalSize(),N=Math.max(0,O-Y),T;switch(j){case"center":T=_-Y/2+b/2;break;case"end":T=_-Y+b;break;case"start":default:T=_;break}return Math.max(0,Math.min(T,N))},OJ=(J,Q,Y)=>{if(Y&&Y.isCompressed)return Y.virtualSize;return Q.getTotalSize()},AJ=(J,Q)=>{return Q.getTotalSize()},EJ=(J,Q)=>{return Q.getOffset(J)},FJ=(J,Q,Y)=>{let $=Math.max(0,Q-Y);return Math.max(0,Math.min(J,$))};var LJ=(J,Q,Y,$,q="start",j,B=MJ)=>{return B(J,Q,Y,$,j,q)},HJ=(J,Q)=>{return J.start===Q.start&&J.end===Q.end},bJ=(J,Q)=>{return J>=Q.start&&J<=Q.end},TJ=(J)=>{if(J.end<J.start)return 0;return J.end-J.start+1};var RJ=(J,Q)=>{let Y=[],$=[];for(let q=J.start;q<=J.end;q++)if(q<Q.start||q>Q.end)$.push(q);for(let q=Q.start;q<=Q.end;q++)if(q<J.start||q>J.end)Y.push(q);return{add:Y,remove:$}};var yJ=()=>{let J={},Q=(j,B)=>{if(!J[j])J[j]=new Set;return J[j].add(B),()=>Y(j,B)},Y=(j,B)=>{J[j]?.delete(B)};return{on:Q,off:Y,emit:(j,B)=>{J[j]?.forEach((_)=>{try{_(B)}catch(b){console.error(`[vlist] Error in event handler for "${String(j)}":`,b)}})},clear:(j)=>{if(j)delete J[j];else for(let B in J)delete J[B]}}};var R2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:Y=5000,evictionBuffer:$=200,onEvict:q}=J,j=new Map,B=0,_=0,b=(E)=>{let Z=j.get(E);if(!Z)Z={items:Array(Q),count:0,lastAccess:Date.now()},j.set(E,Z);else Z.lastAccess=Date.now();return Z},O=(E)=>{return Math.floor(E/Q)},N=(E)=>{return E%Q},T=()=>B,P=(E)=>{B=E},y=(E)=>{if(E<0||E>=B)return;let Z=O(E),M=j.get(Z);if(!M)return;return M.items[N(E)]},G=(E)=>{if(E<0||E>=B)return!1;let Z=O(E),M=j.get(Z);if(!M)return!1;return M.items[N(E)]!==void 0},W=(E,Z)=>{let M=O(E),X=b(M),v=N(E),l=X.items[v]===void 0;if(X.items[v]=Z,l)X.count++,_++;if(E>=B)B=E+1},K=(E,Z)=>{for(let M=0;M<Z.length;M++){let X=Z[M];if(X!==void 0)W(E+M,X)}},D=(E)=>{if(E<0||E>=B)return!1;let Z=O(E),M=j.get(Z),X=N(E);if(!(M!==void 0&&M.items[X]!==void 0))return!1;let l=Z,a=Array.from(j.keys()).filter((S)=>S>=l).sort((S,s)=>S-s),o=[];for(let S of a){let s=j.get(S),L=S*Q;for(let C=0;C<Q;C++){if(s.items[C]===void 0)continue;let U=L+C;if(U<=E)continue;o.push({oldIndex:U,item:s.items[C]})}}if(M.items[X]=void 0,M.count--,_--,M.count===0)j.delete(Z);for(let{oldIndex:S}of o){let s=O(S),L=j.get(s);if(!L)continue;let C=N(S);if(L.items[C]!==void 0){if(L.items[C]=void 0,L.count--,_--,L.count===0)j.delete(s)}}for(let{oldIndex:S,item:s}of o){let L=S-1,C=O(L),U=b(C),R=N(L);U.items[R]=s,U.count++,_++}return B--,!0},A=(E,Z)=>{let M=[];for(let X=E;X<=Z&&X<B;X++)M.push(y(X));return M},z=(E,Z)=>{for(let M=E;M<=Z&&M<B;M++)if(!G(M))return!1;return!0},w=()=>{let E=[],Z=null,M=Array.from(j.keys()).sort((X,v)=>X-v);for(let X of M){let v=j.get(X);if(!v)continue;let l=X*Q;for(let a=0;a<Q;a++){let o=l+a;if(o>=B)break;if(v.items[a]!==void 0)if(Z===null)Z={start:o,end:o};else if(o===Z.end+1)Z.end=o;else E.push(Z),Z={start:o,end:o};else if(Z!==null)E.push(Z),Z=null}}if(Z!==null)E.push(Z);return E},g=(E,Z)=>{let M=[],X=null;for(let v=E;v<=Z&&v<B;v++)if(!G(v))if(X===null)X={start:v,end:v};else X.end=v;else if(X!==null)M.push(X),X=null;if(X!==null)M.push(X);return M},x=(E)=>{return j.has(E)},Y2=(E)=>{let Z=j.get(E);if(Z)Z.lastAccess=Date.now()},c=(E,Z)=>{if(E>Z||j.size===0)return;let M=Date.now(),X=O(Math.max(0,E)),v=O(Math.min(B-1,Z));for(let l=X;l<=v;l++){let a=j.get(l);if(a)a.lastAccess=M}},i=(E,Z)=>{if(_<=Y)return 0;let M=Math.max(0,E-$),X=Math.min(B-1,Z+$),v=O(M),l=O(X),a=0,o=[];for(let[S,s]of j)if(S<v||S>l)a+=s.count,o.push(S),_-=s.count,j.delete(S);if(a>0&&q)q(a,o);return a},q2=()=>{if(_<=Y)return 0;let E=Array.from(j.entries()).sort(([,X],[,v])=>X.lastAccess-v.lastAccess),Z=0,M=[];for(let[X,v]of E){if(_<=Y)break;Z+=v.count,_-=v.count,M.push(X),j.delete(X)}if(Z>0&&q)q(Z,M);return Z},U2=()=>{return{totalItems:B,cachedItems:_,cachedChunks:j.size,chunkSize:Q,maxCachedItems:Y,memoryEfficiency:B>0?1-_/B:1}},B2=()=>_,u=()=>{j.clear(),_=0};return{chunkSize:Q,maxCachedItems:Y,getTotal:T,setTotal:P,get:y,has:G,set:W,setRange:K,delete:D,getRange:A,isRangeLoaded:z,getLoadedRanges:w,findUnloadedRanges:g,getChunkIndex:O,isChunkLoaded:x,touchChunk:Y2,touchChunksForRange:c,evictDistant:i,evictToLimit:q2,getStats:U2,getCachedCount:B2,clear:u,reset:()=>{u(),B=0}}},y2=(J)=>{if(J.length===0)return[];let Q=[...J].sort(($,q)=>$.start-q.start),Y=[{...Q[0]}];for(let $=1;$<Q.length;$++){let q=Q[$],j=Y[Y.length-1];if(q.start<=j.end+1)j.end=Math.max(j.end,q.end);else Y.push({...q})}return Y},p2=(J,Q,Y)=>{let $=Math.floor(J.start/Y)*Y,q=Math.ceil((J.end+1)/Y)*Y-1,j={start:$,end:q};if(Q.length===0)return[j];let B=[],_=y2(Q),b=j.start;for(let O of _){if(O.end<b)continue;if(O.start>j.end)break;if(O.start>b)B.push({start:b,end:Math.min(O.start-1,j.end)});if(b=O.end+1,b>j.end)break}if(b<=j.end)B.push({start:b,end:j.end});return B};var P2=(J={})=>{let{maskCharacter:Q=l2,maxSampleSize:Y=a2}=J,$=[],q=!1,j=(N)=>{if(q||N.length===0)return;let T=Math.min(N.length,Y);for(let P=0;P<T;P++){let y=N[P];if(!y||typeof y!=="object")continue;let G={};for(let[W,K]of Object.entries(y)){if(W.startsWith("_")||W==="id")continue;G[W]=String(K??"").length}if(Object.keys(G).length>0)$.push(G)}q=!0},B=()=>q,_=(N)=>{let T={id:`${O2}${N}`,[v2]:!0,_index:N};if($.length===0)return T.label=Q.repeat(12),T;let P=$[N%$.length];for(let[y,G]of Object.entries(P))T[y]=Q.repeat(Math.max(1,G));return T};return{analyzeStructure:j,hasAnalyzedStructure:B,generate:_,generateRange:(N,T)=>{let P=[];for(let y=N;y<=T;y++)P.push(_(y));return P},clear:()=>{$=[],q=!1}}},A2=(J)=>{if(!J||typeof J!=="object")return!1;return J[v2]===!0},h2=(J)=>{return J.filter((Q)=>!A2(Q))};var mJ=50,PJ=(J={})=>{let{adapter:Q,initialItems:Y,initialTotal:$,storage:q,placeholder:j,pageSize:B=mJ,onStateChange:_,onItemsLoaded:b,onItemsEvicted:O}=J,N=R2({...q,onEvict:(F,I)=>{O?.(F),c()}}),T=null,P=()=>{if(!T)T=P2(j);return T},y=new Map,G=!1,W,K=!0,D,A,z=[],w=0,g=new Map,x=new Map,Y2=()=>{for(let F of x.values())F.abort();x.clear(),g.clear()},c=()=>{_?.(M())},i=()=>{y.clear();let F=N.getLoadedRanges();for(let I of F)for(let h=I.start;h<=I.end;h++){let $2=N.get(h);if($2&&!A2($2))y.set($2.id,h)}},q2=(F,I)=>{if(!A2(I))y.set(I.id,F)},U2=(F)=>{y.delete(F)},B2=(F,I)=>{return`${F}-${I}`},u=()=>N.getTotal(),m=()=>N.getCachedCount(),E=()=>G,Z=()=>K,M=()=>({total:N.getTotal(),cached:N.getCachedCount(),isLoading:G,pendingRanges:z,error:W,hasMore:K,cursor:D}),X=()=>N,v=()=>P(),l=(F)=>{let I=N.get(F);if(I!==void 0)return I;if(F>=0&&F<N.getTotal())return P().generate(F);return},a=(F)=>{let I=y.get(F);if(I===void 0)return;return N.get(I)},o=(F)=>{return y.get(F)??-1},S=(F)=>{let I=N.get(F);return I!==void 0&&!A2(I)},s=(F,I)=>{let h=[],$2=N.getTotal(),J2=0,X2=0;N.touchChunksForRange(F,Math.min(I,$2-1));for(let N2=F;N2<=I&&N2<$2;N2++){let D2=N.get(N2);if(D2!==void 0)h.push(D2),J2++;else h.push(P().generate(N2)),X2++}return h},L=(F)=>{N.setTotal(F),K=N.getCachedCount()<F,c()},C=(F,I=0,h)=>{if(Q&&F.length>0){let $2=P();if(!$2.hasAnalyzedStructure())$2.analyzeStructure(F)}for(let $2=0;$2<F.length;$2++){let J2=F[$2];if(J2!==void 0){let X2=I+$2;N.set(X2,J2),q2(X2,J2)}}if(h!==void 0)N.setTotal(h);else if(I+F.length>N.getTotal())N.setTotal(I+F.length);if(N.getCachedCount()>=N.getTotal()&&N.getTotal()>0)K=!1;c(),b?.(F,I,N.getTotal())},U=(F,I)=>{let h=N.get(F);if(!h)return!1;let $2=h.id,J2={...h,...I};if(N.set(F,J2),I.id!==void 0&&I.id!==$2)U2($2);return q2(F,J2),c(),!0},R=(F)=>{let I=y.get(F);if(I===void 0)return!1;if(!N.delete(I))return!1;return i(),Y2(),c(),!0},p=async(F,I)=>{if(!Q)return;let h=B2(F,I);if(g.has(h))return;let $2=N.chunkSize,J2=Math.floor(F/$2),X2=Math.floor(I/$2),N2=$2*2;for(let[Q2,Z2]of x){let t=Q2.indexOf("-"),j2=parseInt(Q2.slice(0,t),10);if(Math.abs(j2-F)>N2)Z2.abort(),x.delete(Q2),g.delete(Q2)}let D2=[];for(let Q2=J2;Q2<=X2;Q2++){let Z2=Q2*$2,t=Z2+$2-1,j2=B2(Z2,t);if(!N.isChunkLoaded(Q2)&&!g.has(j2))D2.push({start:Z2,end:t})}if(D2.length===0)return;let n=[];for(let Q2=J2;Q2<=X2;Q2++){let Z2=Q2*$2,t=Z2+$2-1,j2=B2(Z2,t);if(g.has(j2)){let K2=g.get(j2);if(!n.includes(K2))n.push(K2)}}for(let Q2 of D2){let Z2=B2(Q2.start,Q2.end),t=new AbortController;x.set(Z2,t);let j2=(async()=>{z.push(Q2),G=!0,W=void 0,c();try{let K2=Q2.end-Q2.start+1,G2={offset:Q2.start,limit:K2,cursor:Q2.start===A?D:void 0,signal:t.signal},_2=await Q.read(G2);if(C(_2.items,Q2.start,_2.total),_2.cursor)D=_2.cursor,A=Q2.start+_2.items.length;let V2=Q2.start+_2.items.length;if(V2>=w){if(w=V2,_2.hasMore!==void 0)K=_2.hasMore;else if(_2.total!==void 0)K=V2<_2.total}}catch(K2){if(K2?.name==="AbortError")return;W=K2 instanceof Error?K2:Error(String(K2))}finally{g.delete(Z2),x.delete(Z2),z=z.filter((K2)=>K2.start!==Q2.start||K2.end!==Q2.end),G=g.size>0,c()}})();g.set(Z2,j2),n.push(j2)}await Promise.all(n)},V=async(F,I)=>{if(N.isRangeLoaded(F,I))return;await p(F,I)},H=async()=>{if(!Q)return;await p(0,B-1)},k=async()=>{if(!Q||G||!K)return!1;let F=N.getCachedCount(),I=N.getTotal(),h=F,$2=Math.min(h+B-1,I>0?I-1:h+B-1);if(h>=I&&I>0)return K=!1,!1;return await p(h,$2),N.getCachedCount()>F},r=async()=>{if(N.clear(),N.setTotal(0),y.clear(),T)T.clear();Y2(),z=[],G=!1,D=void 0,A=void 0,K=!0,w=0,W=void 0,c()},f=(F,I)=>{if(N.evictDistant(F,I)>0)i()},d=()=>{N.clear(),y.clear(),D=void 0,A=void 0,W=void 0,z=[],G=!1,c()},e=()=>{if(N.reset(),y.clear(),T)T.clear();D=void 0,A=void 0,K=!0,w=0,W=void 0,z=[],G=!1,c()};if(Y&&Y.length>0)C(Y,0,$??Y.length);else if($!==void 0)N.setTotal($),c();return{getState:M,getTotal:u,getCached:m,getIsLoading:E,getHasMore:Z,getStorage:X,getPlaceholders:v,getItem:l,getItemById:a,getIndexById:o,isItemLoaded:S,getItemsInRange:s,setTotal:L,setItems:C,updateItem:U,removeItem:R,loadRange:p,ensureRange:V,loadInitial:H,loadMore:k,reload:r,evictDistant:f,clear:d,reset:e}};var kJ=(J=0)=>{let Q=[,,,,,,,,];for(let Y=0;Y<8;Y++)Q[Y]={position:0,time:0};return{velocity:0,lastPosition:J,lastTime:performance.now(),samples:Q,sampleIndex:0,sampleCount:0}},k2=(J,Q)=>{let Y=performance.now(),$=Y-J.lastTime;if($===0)return J;if($>100){J.sampleCount=0,J.sampleIndex=0,J.velocity=0;let j=J.samples[0];return j.position=Q,j.time=Y,J.sampleIndex=1,J.sampleCount=1,J.lastPosition=Q,J.lastTime=Y,J}let q=J.samples[J.sampleIndex];if(q.position=Q,q.time=Y,J.sampleIndex=(J.sampleIndex+1)%8,J.sampleCount=Math.min(J.sampleCount+1,8),J.sampleCount>=2){let j=(J.sampleIndex-J.sampleCount+8)%8,B=J.samples[j],_=Q-B.position,b=Y-B.time;J.velocity=b>0?_/b:0}return J.lastPosition=Q,J.lastTime=Y,J},dJ=(J)=>J.sampleCount>=3,zJ=(J,Q={})=>{let{wheel:Y=!0,sensitivity:$=1,smoothing:q=!1,idleTimeout:j=150,onScroll:B,onIdle:_,scrollElement:b,horizontal:O=!1}=Q,N=!!b,T=0,P=0,y=N?O?window.innerWidth:window.innerHeight:O?J.clientWidth:J.clientHeight,G=Q.compressed??!1,W=Q.compression,K=kJ(),D=!1,A=null,w=z2(()=>{let U=O?J.scrollLeft:J.scrollTop,R=U>=T?"down":"up";if(K=k2(K,U),T=U,B)B({scrollTop:T,direction:R,velocity:K.velocity});q2()}),x=z2(()=>{let U=J.getBoundingClientRect(),R=O?Math.max(0,-U.left):Math.max(0,-U.top),p=R>=T?"down":"up";if(K=k2(K,R),T=R,!D)D=!0;if(B)B({scrollTop:T,direction:p,velocity:K.velocity});q2()}),Y2=(U)=>{U.preventDefault()},c=(U)=>{if(U.deltaX)return;U.preventDefault(),J.scrollLeft+=U.deltaY},i=(U)=>{if(!G)return;U.preventDefault();let R=(O?U.deltaX||U.deltaY:U.deltaY)*$,p=T+R;if(q)p=T+R*0.3;if(p=Math.max(0,Math.min(p,P)),p!==T){let H=p>=T?"down":"up";if(K=k2(K,p),T=p,!D)D=!0;if(B)B({scrollTop:T,direction:H,velocity:K.velocity});q2()}},q2=()=>{if(A)clearTimeout(A);A=setTimeout(()=>{if(D=!1,K=kJ(T),_)_()},j)},U2=(U)=>{if(G)return;if(G=!0,W=U,P=U.virtualSize-y,N)return;if(w.cancel(),J.removeEventListener("scroll",w),!Y)J.removeEventListener("wheel",Y2);else if(O)J.removeEventListener("wheel",c);if(O)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",i,{passive:!1});let R=O?J.scrollLeft:J.scrollTop;if(R>0){let p=O?W?.actualSize??J.scrollWidth:W?.actualSize??J.scrollHeight;T=R/p*P}if(O)J.scrollLeft=0;else J.scrollTop=0},B2=()=>{if(!G)return;if(G=!1,N){W=void 0;return}if(J.removeEventListener("wheel",i),O)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",w,{passive:!0}),!Y)J.addEventListener("wheel",Y2,{passive:!1});else if(O)J.addEventListener("wheel",c,{passive:!1});if(W&&T>0){let R=T/P*(W.actualSize-y);if(O)J.scrollLeft=R;else J.scrollTop=R}W=void 0},u=()=>{if(N||G)return T;return O?J.scrollLeft:J.scrollTop},m=(U,R=!1)=>{let p=Math.max(0,Math.min(U,P||1/0));if(N){let V=J.getBoundingClientRect();if(O){let H=V.left+window.scrollX;window.scrollTo({left:H+p,behavior:R?"smooth":"auto"})}else{let H=V.top+window.scrollY;window.scrollTo({top:H+p,behavior:R?"smooth":"auto"})}}else if(G){if(p===T)return;let H=p>=T?"down":"up";if(K=k2(K,p),T=p,!D)D=!0;if(B)B({scrollTop:T,direction:H,velocity:K.velocity});q2()}else if(O)J.scrollTo({left:p,behavior:R?"smooth":"auto"});else J.scrollTo({top:p,behavior:R?"smooth":"auto"})},E=(U)=>{m(u()+U)},Z=()=>{return u()<=0},M=(U=0)=>{let R=u(),p=N||G?P:O?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return R>=p-U},X=()=>{let U=u(),R=N||G?P:O?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(R<=0)return 0;return Math.min(1,Math.max(0,U/R))},v=(U)=>{if(U.compression)W=U.compression,P=W.virtualSize-y},l=()=>G,a=()=>Math.abs(K.velocity),o=()=>dJ(K),S=()=>D,s=()=>N,L=(U)=>{if(y=U,W)P=W.virtualSize-y},C=()=>{if(A)clearTimeout(A);if(N)x.cancel(),window.removeEventListener("scroll",x);else w.cancel(),J.removeEventListener("scroll",w),J.removeEventListener("wheel",i),J.removeEventListener("wheel",Y2),J.removeEventListener("wheel",c)};if(N){if(G&&W)P=W.virtualSize-y;window.addEventListener("scroll",x,{passive:!0})}else if(G&&W){if(P=W.virtualSize-y,O)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",i,{passive:!1})}else{if(O)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",w,{passive:!0}),!Y)J.addEventListener("wheel",Y2,{passive:!1});else if(O)J.addEventListener("wheel",c,{passive:!1})}return{getScrollTop:u,scrollTo:m,scrollBy:E,isAtTop:Z,isAtBottom:M,getScrollPercentage:X,getVelocity:a,isTracking:o,isScrolling:S,updateConfig:v,enableCompression:U2,disableCompression:B2,isCompressed:l,isWindowMode:s,updateContainerHeight:L,destroy:C}},z2=(J)=>{let Q=null,Y=null,$=(...q)=>{if(Y=q,Q===null)Q=requestAnimationFrame(()=>{if(Q=null,Y)J(...Y)})};return $.cancel=()=>{if(Q!==null)cancelAnimationFrame(Q),Q=null},$};var cJ=(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}},wJ=(J,Q,Y={},$="vlist",q=!1)=>{let{autoHide:j=!0,autoHideDelay:B=1000,minThumbSize:_=15,showOnHover:b=!0,showOnViewportEnter:O=!0,clickBehavior:N="scroll"}=Y,T=N==="page"?"scroll":N,P=cJ(Y.padding),y=q?P.left:P.top,G=q?P.right:P.bottom,W=q?P.bottom:P.right,K=Y.hoverZoneWidth??W+16,D=0,A=0,z=0,w=0,g=!1,x=!1,Y2=0,c=0,i=0,q2=null,U2=!1,B2=null,u=null,m=0,E=0,Z=null,M=null,X=null,v=q?"width":"height",l=q?"translateX":"translateY",a=q?(t)=>t.clientX:(t)=>t.clientY,o=q?"left":"top",S=document.createElement("div"),s=document.createElement("div"),L=document.createElement("div"),C=()=>{if(S.className=`${$}-scrollbar`,s.className=`${$}-scrollbar-thumb`,q)S.classList.add(`${$}-scrollbar--horizontal`);if(Y.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${P.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${P.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${P.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${P.left}px`);if(Y.minThumbSize!==void 0)S.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${_}px`);if(S.appendChild(s),J.appendChild(S),L.className=`${$}-scrollbar-hover`,q)L.classList.add(`${$}-scrollbar-hover--horizontal`),L.style.height=`${K}px`;else L.style.width=`${K}px`;J.appendChild(L)},U=()=>{if(q2)clearTimeout(q2),q2=null},R=()=>{if(!j)return;U(),q2=setTimeout(V,B)},p=()=>{if(D<=A)return;if(U(),!U2)S.classList.add(`${$}-scrollbar--visible`),U2=!0;if(j&&!g&&!x)R()},V=()=>{if(g||x)return;S.classList.remove(`${$}-scrollbar--visible`),U2=!1},H=(t,j2)=>{D=t,A=j2;let K2=D>A;if(S.style.display=K2?"":"none",!K2){V();return}let G2=Math.max(0,A-y-G),_2=A/D;if(z=Math.max(_,_2*G2),s.style[v]=`${z}px`,w=G2-z,k(i),!j)p()},k=(t)=>{if(i=t,D<=A||w<=0)return;let j2=D-A,G2=Math.min(1,Math.max(0,t/j2))*w;s.style.transform=`${l}(${G2}px)`},r=(t)=>{if(t.target===s||T!=="jump"||w<=0)return;let j2=D-A,K2=S.getBoundingClientRect(),G2=a(t)-K2[o],_2=Math.max(0,Math.min(G2-z/2,w));Q(_2/w*j2),p()},f=()=>{if(Z!==null)clearTimeout(Z),Z=null;if(M!==null)cancelAnimationFrame(M),M=null;X=null},d=(t)=>{let j2=w>0?E/t*w:0;if(m<j2)return-1;if(m>=j2+z)return 1;return 0},e=()=>{let t=D-A,j2=d(t);if(j2===0){f();return}if(j2===-1){if(E<=0){f();return}let K2=Math.max(0,E-A);E=K2,Q(K2)}else{if(E>=t){f();return}let K2=Math.min(t,E+A);E=K2,Q(K2)}p()},F=(t)=>{if(X===null){X=t,M=requestAnimationFrame(F);return}let j2=D-A,K2=t-X;X=t;let G2=d(j2);if(G2===0){f();return}let _2=12*A/1000,V2=Math.min(_2*K2,A);if(G2===-1){if(E<=0){f();return}let W2=Math.max(0,E-V2);E=W2,Q(W2)}else{if(E>=j2){f();return}let W2=Math.min(j2,E+V2);E=W2,Q(W2)}U(),M=requestAnimationFrame(F)},I=()=>{f(),R(),document.removeEventListener("mouseup",I)},h=(t)=>{if(t.target===s||T!=="scroll")return;t.preventDefault();let j2=S.getBoundingClientRect();m=a(t)-j2[o],E=i,e(),Z=setTimeout(()=>{M=requestAnimationFrame(F)},350),document.addEventListener("mouseup",I)},$2=(t)=>{t.preventDefault(),t.stopPropagation(),g=!0,Y2=a(t),c=i,U(),S.classList.add(`${$}-scrollbar--dragging`),document.addEventListener("mousemove",J2),document.addEventListener("mouseup",X2)},J2=(t)=>{if(!g)return;let j2=a(t)-Y2,K2=w>0?j2/w:0,G2=D-A,_2=K2*G2,V2=Math.max(0,Math.min(c+_2,G2)),vJ=V2/G2*w;if(s.style.transform=`${l}(${vJ}px)`,u=V2,B2===null)B2=requestAnimationFrame(()=>{if(u!==null)Q(u);B2=null})},X2=()=>{if(g=!1,B2!==null)cancelAnimationFrame(B2),B2=null;if(u!==null)Q(u),u=null;if(S.classList.remove(`${$}-scrollbar--dragging`),j&&!x)R();document.removeEventListener("mousemove",J2),document.removeEventListener("mouseup",X2)},N2=()=>{if(O)p()},D2=()=>{if(!g){if(x=!1,j)R()}},n=()=>{x=!0,U(),p()},Q2=()=>{if(x=!1,!g&&j)R()},Z2=()=>{if(U(),f(),B2!==null)cancelAnimationFrame(B2),B2=null;if(S.removeEventListener("click",r),S.removeEventListener("mousedown",h),S.removeEventListener("mouseenter",n),document.removeEventListener("mouseup",I),S.removeEventListener("mouseleave",Q2),s.removeEventListener("mousedown",$2),J.removeEventListener("mouseenter",N2),J.removeEventListener("mouseleave",D2),document.removeEventListener("mousemove",J2),document.removeEventListener("mouseup",X2),L.removeEventListener("click",r),L.removeEventListener("mousedown",h),b)L.removeEventListener("mouseenter",n),L.removeEventListener("mouseleave",Q2);if(L.parentNode)L.parentNode.removeChild(L);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"),S.parentNode)S.parentNode.removeChild(S)};if(C(),S.addEventListener("click",r),S.addEventListener("mousedown",h),S.addEventListener("mouseenter",n),S.addEventListener("mouseleave",Q2),s.addEventListener("mousedown",$2),J.addEventListener("mouseenter",N2),J.addEventListener("mouseleave",D2),L.addEventListener("click",r),L.addEventListener("mousedown",h),b)L.addEventListener("mouseenter",n),L.addEventListener("mouseleave",Q2);return{show:p,hide:V,updateBounds:H,updatePosition:k,isVisible:()=>U2,destroy:Z2}};var rJ=50,lJ=0.1;function aJ(J){let Q=0,Y=0,$=0;function q(){return $>0?Y/$:0}function j(b){if(Q=b,b>lJ&&b<rJ)Y+=b,$++}function B(){let b=J.getTotal();if(b===0)return 0;let O=J.getItemSize();if(O<=0)return 0;let N=J.getContainerSize();if(N<=0)return 0;let T=J.getScrollPosition(),P=typeof J.getColumns==="function"?J.getColumns():1,G=Math.ceil(b/P)*O,K=Math.min(G,M2)-N,D=G-N,A=K>0?D/K:1,z=T*A,w=Math.ceil((z+N)/O);return Math.min(w*P,b)}function _(){let b=J.getTotal(),O=B();return{progress:b>0?Math.min(100,Math.max(0,O/b*100)):0,velocity:Q,velocityAvg:q(),itemCount:O,total:b}}return{getState:_,onVelocity:j}}export{n2 as toggleSelection,VJ as simpleVisibleRange,C2 as selectItems,o2 as selectAll,HJ as rangesEqual,z2 as rafThrottle,qJ as needsScaling,y2 as mergeRanges,t2 as isSelected,A2 as isPlaceholderItem,bJ as isInRange,b2 as isGroupHeader,JJ as getSelectedItems,e2 as getSelectedIds,H2 as getScaleState,KJ as getScaleInfo,H2 as getScale,TJ as getRangeCount,BJ as getMaxItemsWithoutScaling,h2 as filterPlaceholders,RJ as diffRanges,f2 as deselectItems,ZJ as createTableRenderer,UJ as createTableLayout,NJ as createTableHeader,c2 as createStickyHeader,aJ as createStats,R2 as createSparseStorage,L2 as createSizeCache,s2 as createSelectionState,wJ as createScrollbar,zJ as createScrollController,P2 as createPlaceholderManager,GJ as createMeasuredSizeCache,DJ as createMasonryRenderer,_J as createMasonryLayout,m2 as createGroupedSizeFn,d2 as createGroupLayout,XJ as createGridRenderer,r2 as createGridLayout,yJ as createEmitter,PJ as createAsyncManager,i2 as clearSelection,FJ as clampScrollPosition,OJ as calculateTotalSize,LJ as calculateScrollToIndex,QJ as calculateScaledVisibleRange,YJ as calculateScaledScrollToIndex,$J as calculateScaledRenderRange,F2 as calculateScaledItemPosition,WJ as calculateRenderRange,p2 as calculateMissingRanges,EJ as calculateItemOffset,jJ as calculateIndexFromScrollPosition,AJ as calculateActualSize,u2 as buildLayoutItems,M2 as MAX_VIRTUAL_SIZE};
1
+ var y2=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var f2=(J,Q)=>{let Y=0,$=J.length-1;while(Y<$){let q=Y+$+1>>>1;if(J[q].headerLayoutIndex<=Q)Y=q;else $=q-1}return Y},m2=(J,Q)=>{let Y=0,$=J.length-1;while(Y<$){let q=Y+$+1>>>1;if(J[q].firstDataIndex<=Q)Y=q;else $=q-1}return Y},d2=(J,Q,Y)=>{if(J===0)return[];let $=[],q=Q(0,Y?.(0)),j=0,B=0;for(let G=1;G<J;G++){let b=Q(G,Y?.(G));if(b!==q){let O=G-j;$.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:O}),B=B+1+O,q=b,j=G}}return $.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:J-j}),$},c2=(J,Q)=>{if(J.length===0||Q.length===0)return[];let Y=J.length+Q.length,$=Array(Y),q=0;for(let j of Q){$[q]={id:`__group_header_${j.groupIndex}`,__groupHeader:!0,groupKey:j.key,groupIndex:j.groupIndex},q++;for(let B=0;B<j.count;B++)$[q]=J[j.firstDataIndex+B],q++}return $},r2=(J,Q,Y=!1)=>{let $=typeof Q==="number"?(q)=>Q:Q;return(q)=>{let j=J.getEntry(q);if(j.type==="header"){if(Y&&j.group.groupIndex===0)return 0;return J.getHeaderHeight(j.group.groupIndex)}return $(j.dataIndex)}},l2=(J,Q,Y)=>{let $=d2(J,Q.getGroupForIndex,Y),q=J+$.length,j=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return q},get groupCount(){return $.length},get groups(){return $},getEntry:(L)=>{if($.length===0)return{type:"item",dataIndex:L,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let Z=f2($,L),V=$[Z];if(L===V.headerLayoutIndex)return{type:"header",group:V};let K=L-V.headerLayoutIndex-1;return{type:"item",dataIndex:V.firstDataIndex+K,group:V}},layoutToDataIndex:(L)=>{if($.length===0)return L;let Z=f2($,L),V=$[Z];if(L===V.headerLayoutIndex)return-1;let K=L-V.headerLayoutIndex-1;return V.firstDataIndex+K},dataToLayoutIndex:(L)=>{if($.length===0)return L;let Z=m2($,L),V=$[Z],K=L-V.firstDataIndex;return V.headerLayoutIndex+1+K},getGroupAtLayoutIndex:(L)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let Z=f2($,L);return $[Z]},getGroupAtDataIndex:(L)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let Z=m2($,L);return $[Z]},getHeaderHeight:typeof j==="number"?(L)=>j:(L)=>{let Z=$[L];if(!Z)return 0;return j(Z.key,L)},rebuild:(L,Z)=>{$=d2(L,Q.getGroupForIndex,Z??Y),q=L+$.length}}};var a2=(J,Q,Y,$,q,j=!1,B=0,G,b)=>{let O=j?"width":"height",N=j?"height":"width",y=j?"X":"Y",S=(E,X)=>{E.style[O]=`${X}px`},L=b??(()=>{let E=document.createElement("div");return E.className=`${q}-sticky-header`,E.setAttribute("role","presentation"),E.setAttribute("aria-hidden","true"),E.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${B||0}px`:`top:${B||0}px`),J.insertBefore(E,J.firstChild),E})(),Z=()=>{let E=document.createElement("div");return E.className="sticky-group",E.style.position="absolute",E.style.willChange="transform",E.style[N]="100%",E},V=Z(),K=Z();if(L.append(V,K),!b)J.insertBefore(L,J.firstChild);let W=V,P=K,k=Q.groups,z=[],u=[],I=[],n=0,r=()=>{k=Q.groups,n=k.length,z=Array(n),u=Array(n),I=Array(n);let E=G?G():1;for(let X=0;X<n;X++)z[X]=Y.getOffset(k[X].headerLayoutIndex)*E,u[X]=Q.getHeaderHeight(X),I[X]=u[X]*E};r();let e=-1,q2=0,X2=0,K2=-1,g=!1,c=0,H=!1,_=(E,X)=>{$(E,X);let T=u[X];return S(E,T),T},D=(E)=>{E.replaceChildren(),E.style.transform=""},U=(E)=>{if(E===e)return;if(e=E,q2=0,X2=0,E<0||E>=n){D(W);return}q2=_(W,E),X2=I[E],S(L,q2),W.style.transform=""},w=(E)=>{if(E===c)return;c=E;let X=Math.round(E);W.style.transform=`translate${y}(${X}px)`,P.style.transform=`translate${y}(${X+q2}px)`},m=()=>{c=0,W.style.transform="",P.style.transform=""},i=()=>{if(!H)return;let E=W;W=P,P=E,e=K2,q2=e>=0?u[e]:0,X2=e>=0?I[e]:0,S(L,q2),D(P),K2=-1,H=!1,m()},l=()=>{if(!H)return;D(P),K2=-1,H=!1,m()},s=!!b,t=()=>{if(g)return;if(g=!0,s)L.style.visibility="";else L.style.display=""},M=()=>{if(!g)return;if(g=!1,s)L.style.visibility="hidden";else L.style.display="none";D(W),e=-1,q2=0,X2=0,l()},v=(E)=>{if(n===0){M();return}if(E<z[0]){M();return}let X=0,T=n-1;while(X<T){let p=X+T+1>>>1;if(z[p]+I[p]<=E)X=p;else T=p-1}if(!g)t();U(X);let R=X+1;if(R<n){let p=z[R]-E;if(p<=0&&p>-X2){if(K2!==R||!H)K2=R,_(P,R),H=!0;let f=X2>0?p/X2*q2:p;w(f)}else if(p<=-X2){if(H)i()}else if(H)l()}else if(H)l()},A=()=>{r();let E=e;if(e=-1,q2=0,X2=0,E>=0)U(E)},h=()=>{L.remove(),e=-1,q2=0,X2=0,K2=-1,g=!1,H=!1};if(!b)L.style.display="none";return{update:v,refresh:A,show:t,hide:M,destroy:h}};var s2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.isHeaderFn,q={row:0,col:0},j=(Z)=>{if(Z<=0)return 0;if(!$)return Math.ceil(Z/Q);let V=0,K=0,W=0;for(let P=0;P<Z;P++)if($(P)){if(W++,K>0)V++,K=0;V++,K=0}else if(K++,K>=Q)V++,K=0;if(K>0)V++;return V},B=(Z)=>{return q.row=G(Z),q.col=b(Z),q},G=(Z)=>{if(!$)return Math.floor(Z/Q);let V=0,K=0;for(let W=0;W<=Z;W++)if($(W)){if(K>0)V++,K=0;if(W===Z)return V;V++,K=0}else{if(W===Z)return V;if(K++,K>=Q)V++,K=0}return console.warn(`⚠️ getRow(${Z}) fell through - returning ${V}`),V},b=(Z)=>{if(!$)return Z%Q;if($(Z))return 0;let V=0;for(let K=0;K<=Z;K++)if($(K))V=0;else{if(K===Z)return V;if(V++,V>=Q)V=0}return V},O=(Z,V,K)=>{if(K<=0)return{start:0,end:-1};if(!$){let u=Math.max(0,Z*Q),I=Math.min(K-1,(V+1)*Q-1);return{start:u,end:I}}let W=-1,P=-1,k=0,z=0;for(let u=0;u<K;u++){if($(u)){if(z>0)k++,z=0;if(k>=Z&&k<=V){if(W===-1)W=u;P=u}k++,z=0}else{if(k>=Z&&k<=V){if(W===-1)W=u;P=u}if(z++,z>=Q)k++,z=0}if(k>V&&z===0)break}if(W===-1)return{start:0,end:-1};return{start:W,end:P}},N=(Z,V,K)=>{if(V<0||V>=Q)return-1;let W=Z*Q+V;if(W<0||W>=K)return-1;return W},y=(Z)=>{let V=(Q-1)*Y;return Math.max(0,(Z-V)/Q)};return{get columns(){return Q},get gap(){return Y},update:(Z)=>{if(Z.columns!==void 0)Q=Math.max(1,Math.floor(Z.columns));if(Z.gap!==void 0)Y=Z.gap;if(Z.isHeaderFn!==void 0)$=Z.isHeaderFn},getTotalRows:j,getPosition:B,getRow:G,getCol:b,getItemRange:O,getItemIndex:N,getColumnWidth:y,getColumnOffset:(Z,V)=>{let K=y(V);return Z*(K+Y)}}};var M2=16000000;var n2="x",o2=20,S2="_isPlaceholder",O2="__placeholder_";var F2=(J,Q,Y)=>{if(String(Y).startsWith(O2))return!1;let $=O2+Q;if(J.has($))return J.delete($),J.add(Y),!0;return!1},i2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),I2=(J,Q,Y)=>{if(Y==="none")return J;let $=new Set(J.selected);if(Y==="single"){if($.clear(),Q.length>0)$.add(Q[0])}else for(let q of Q)$.add(q);return{...J,selected:$}},p2=(J,Q)=>{let Y=new Set(J.selected);for(let $ of Q)Y.delete($);return{...J,selected:Y}},t2=(J,Q,Y)=>{if(Y==="none")return J;if(J.selected.has(Q))return p2(J,[Q]);else return I2(J,[Q],Y)},e2=(J,Q,Y)=>{if(Y!=="multiple")return J;return{...J,selected:new Set(Q.map(($)=>$.id))}},JJ=(J)=>({...J,selected:new Set});var QJ=(J,Q)=>{return J.selected.has(Q)},$J=(J)=>{return Array.from(J.selected)},YJ=(J,Q)=>{let Y=[];for(let $ of J.selected){let q=Q($);if(q)Y.push(q)}return Y};var IJ=(J,Q)=>{let Y=Q;return{getOffset:($)=>$*J,getSize:($)=>J,indexAtOffset:($)=>{if(Y===0||J===0)return 0;return Math.max(0,Math.min(Math.floor($/J),Y-1))},getTotalSize:()=>Y*J,getTotal:()=>Y,rebuild:($)=>{Y=$},isVariable:()=>!1}},pJ=(J,Q)=>{let Y=Q,$=new Float64Array(0),q=(B)=>{Y=B,$=new Float64Array(B+1),$[0]=0;for(let G=0;G<B;G++)$[G+1]=$[G]+J(G)};q(Q);let j=(B)=>{if(Y===0)return 0;if(B<=0)return 0;if(B>=$[Y])return Y-1;let G=0,b=Y-1;while(G<b){let O=G+b+1>>>1;if($[O]<=B)G=O;else b=O-1}return G};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=Y)return $[Y];return $[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>j(B),getTotalSize:()=>$[Y]??0,getTotal:()=>Y,rebuild:(B)=>q(B),isVariable:()=>!0}},T2=(J,Q)=>{if(typeof J==="number")return IJ(J,Q);return pJ(J,Q)},h2=(J,Q,Y,$)=>{if($===0)return 0;if(!J.isVariable())return Math.ceil(Y/J.getSize(0));let q=0,j=0,B=Q;while(B<$&&j<Y)j+=J.getSize(B),q++,B++;return Math.max(1,q)};var R2=(J,Q,Y)=>{let $=Q.getTotalSize(),q=Y===!0||$>M2,j=$>M2?M2:$,B=$>0?j/$:1;return{isCompressed:q,actualSize:$,virtualSize:j,ratio:B}},jJ=(J,Q,Y,$,q,j)=>{if($===0||Q===0)return j.start=0,j.end=-1,j;if(!q.isCompressed||q.ratio===1){let L=Y.indexAtOffset(J),Z=Y.indexAtOffset(J+Q);if(Z<$-1)Z++;return j.start=Math.max(0,L),j.end=Math.min($-1,Math.max(0,Z)),j}let{virtualSize:B}=q,G=J/B,b=Y.getTotalSize(),O=G*b,N=Y.indexAtOffset(O),y=h2(Y,Math.max(0,N),Q,$),S=N+y;return j.start=Math.max(0,N),j.end=Math.min($-1,Math.max(0,S)),j},qJ=(J,Q,Y,$)=>{if(Y===0)return $.start=0,$.end=-1,$;return $.start=Math.max(0,J.start-Q),$.end=Math.min(Y-1,J.end+Q),$},H2=(J,Q,Y,$,q,j,B)=>{if(!j.isCompressed||$===0)return Y.getOffset(J);if(j.ratio===1)return Y.getOffset(J)-Q;let{virtualSize:G}=j,b=Q/G,O=Y.getTotalSize(),N=b*O;return Y.getOffset(J)-N},BJ=(J,Q,Y,$,q,j="start")=>{if($===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/$*q.virtualSize;let N=Q.getSize(J);switch(j){case"center":B-=(Y-N)/2*q.ratio;break;case"end":B-=(Y-N)*q.ratio;break}return Math.max(0,B)}B=Q.getOffset(J);let G=Q.getSize(J);switch(j){case"center":B-=(Y-G)/2;break;case"end":B-=Y-G;break}let b=q.virtualSize-Y;return Math.max(0,Math.min(B,b))},KJ=(J,Q,Y,$)=>{if(Y===0)return 0;if($.isCompressed&&$.ratio!==1){let q=J/$.virtualSize;return Math.floor(q*Y)}return Q.indexAtOffset(J)},XJ=(J,Q)=>{if(typeof Q==="number")return J*Q>M2;return Q.getTotalSize()>M2},UJ=(J)=>{if(J<=0)return 0;return Math.floor(M2/J)},NJ=(J,Q,Y)=>{let $=R2(J,Q,Y);if(!$.isCompressed)return`No compression needed (${J} items, ${($.actualSize/1e6).toFixed(2)}M px)`;return`Compressed to ${($.ratio*100).toFixed(1)}% (${J} items, ${($.actualSize/1e6).toFixed(1)}M px → ${($.virtualSize/1e6).toFixed(1)}M px virtual)`};var P2=(J,Q,Y)=>{let $=Array.from(Q).sort((B,G)=>B-G);if($.length<=1)return;let q=[];for(let B=0;B<$.length;B++){let G=Y($[B]);if(G)q.push(G)}if(q.length<=1)return;let j=J.firstChild;for(let B=0;B<q.length;B++){let G=q[B];if(G===j)j=j.nextSibling;else J.insertBefore(G,j)}};var hJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-row"),j.removeAttribute("data-col"),Q.push(j)},clear:()=>{Q.length=0}}},xJ=1,ZJ=(J,Q,Y,$,q,j,B,G,b=!1,O)=>{let N=hJ(),y=new Map,S=j,L=!1,Z=0,V="",K=-1,W={selected:!1,focused:!1},P=(M,v)=>{return W.selected=M,W.focused=v,W},k=`${q}-item ${q}-grid-item`,z=`${q}-group-header`,u=`${q}-item--selected`,I=`${q}-item--focused`,n=`${q}-item--placeholder`,r=`${q}-item--replaced`,e=(M,v)=>{if(typeof v==="string")M.innerHTML=v;else M.replaceChildren(v)},q2=(M,v,A)=>{M.classList.toggle(u,v),M.classList.toggle(I,A)},X2=(M,v)=>{let A=$.getRow(M);if(v?.compression?.isCompressed)return H2(A,v.scrollPosition,Y,v.totalItems,v.containerSize,v.compression,v.rangeStart);return Y.getOffset(A)},K2=(M,v)=>{let A=L&&$.getCol(M)===0,h=A?0:$.getCol(M),E=A?0:$.getColumnOffset(h,S),X;if(L){let T=$.getRow(M),R=0,p=new Set;for(let f=0;f<M;f++){let d=$.getRow(f);if(d<T&&!p.has(d)){let o=Y.getSize(f);R+=o,p.add(d)}}X=R}else X=X2(M,v);if(b)return`translate(${Math.round(X)}px, ${Math.round(E)}px)`;return`translate(${Math.round(E)}px, ${Math.round(X)}px)`},g=(M,v)=>{M.style.transform=v},c=(M,v)=>{let A=M.classList.contains(z),h=A?S:$.getColumnWidth(S),E;if(L||A)E=Y.getSize(v)-$.gap;else{let X=$.getRow(v);E=Y.getSize(X)-$.gap}if(b)M.style.width=`${E}px`,M.style.height=`${h}px`;else M.style.width=`${h}px`,M.style.height=`${E}px`},H=(M,v,A,h,E)=>{let X=N.acquire(),T=!!v.__groupHeader,R=P(A,h);if(X.className=T?z:k,X.dataset.index=String(M),X.dataset.id=String(v.id),X.dataset.row=String($.getRow(M)),X.dataset.col=String($.getCol(M)),T)X.setAttribute("role","presentation"),X.removeAttribute("aria-selected"),X.removeAttribute("aria-setsize"),X.removeAttribute("aria-posinset"),X.removeAttribute("id");else{if(X.setAttribute("role","option"),X.ariaSelected=String(A),G)X.id=`${G}-item-${M}`;if(B){let d=B();if(d!==K)K=d,V=String(d);X.setAttribute("aria-setsize",V);let o=O?O(M):M+1;X.setAttribute("aria-posinset",String(o))}}c(X,M);let p=Q(v,M,R);if(e(X,p),String(v.id).startsWith(O2))X.classList.add(n);return q2(X,A,h),g(X,E),{element:X,lastItemId:v.id,lastSelected:A,lastFocused:h,lastTransform:E,lastSeenFrame:Z}},_=(M,v,A,h,E)=>{if(Z++,v.start===0&&M.length>0)L=y2(M[0]);for(let[R,p]of y)if(R>=v.start&&R<=v.end)p.lastSeenFrame=Z;else if(Z-p.lastSeenFrame>xJ)N.release(p.element),y.delete(R);let X=!1;if(B){let R=B();if(R!==K)K=R,V=String(R),X=!0}let T=null;for(let R=v.start;R<=v.end;R++){let p=R-v.start,f=M[p];if(!f){console.warn(`⚠️ RENDER: Missing item at index ${R} (range: ${v.start}-${v.end}, items.length: ${M.length})`);continue}let d=A.has(f.id),o=R===h,F=y.get(R);if(F){let C=F.lastItemId!==f.id,x=F.lastSelected!==d,$2=F.lastFocused!==o;if(C){let B2=String(F.lastItemId),U2=String(f.id),_2=B2.startsWith(O2),a=U2.startsWith(O2);if(!a&&F2(A,R,f.id))d=!0;let Y2=P(d,o),N2=Q(f,R,Y2);if(e(F.element,N2),F.element.dataset.id=U2,F.element.dataset.row=String($.getRow(R)),F.element.dataset.col=String($.getCol(R)),c(F.element,R),F.element.classList.toggle(n,a),_2&&!a)F.element.classList.add(r),setTimeout(()=>F.element.classList.remove(r),300);if(F.lastItemId=f.id,!f.__groupHeader){let Z2=O?O(R):R+1;F.element.setAttribute("aria-posinset",String(Z2))}}if(C||x||$2)q2(F.element,d,o),F.element.ariaSelected=String(d),F.lastSelected=d,F.lastFocused=o;let J2=K2(R,E);if(F.lastTransform!==J2)g(F.element,J2),F.lastTransform=J2;if(X&&!f.__groupHeader)F.element.setAttribute("aria-setsize",V)}else{if(F2(A,R,f.id))d=!0;let C=K2(R,E),x=H(R,f,d,o,C);if(!T)T=document.createDocumentFragment();T.appendChild(x.element),y.set(R,x)}}if(T)J.appendChild(T)},D=(M)=>{for(let[v,A]of y){let h=K2(v,M);if(A.lastTransform!==h)g(A.element,h),A.lastTransform=h}},U=(M,v,A,h)=>{let E=y.get(M);if(!E)return;let X=P(A,h),T=Q(v,M,X);e(E.element,T),q2(E.element,A,h),E.element.dataset.id=String(v.id),E.element.ariaSelected=String(A),c(E.element,M),E.lastItemId=v.id,E.lastSelected=A,E.lastFocused=h},w=(M,v,A)=>{let h=y.get(M);if(!h)return;let E=h.lastSelected!==v,X=h.lastFocused!==A;if(E||X)q2(h.element,v,A),h.lastSelected=v,h.lastFocused=A},m=(M)=>{return y.get(M)?.element},i=(M)=>{if(Math.abs(M-S)<1)return;S=M;for(let[v,A]of y){c(A.element,v);let h=K2(v);g(A.element,h),A.lastTransform=h}},l=()=>{P2(J,y.keys(),(M)=>y.get(M)?.element)},s=()=>{for(let[,M]of y)N.release(M.element);y.clear()};return{render:_,updatePositions:D,updateItem:U,updateItemClasses:w,getElement:m,sortDOM:l,updateContainerWidth:i,clear:s,destroy:()=>{s(),N.clear()}}};var _J=(J,Q=50,Y=1/0,$=!0)=>{let q=J,j=[],B=0,G=()=>{j=q.map((K,W)=>({def:K,index:W,width:0,minWidth:gJ(K.minWidth??Q,1),maxWidth:K.maxWidth??Y,resizable:K.resizable??$,offset:0}))},b=(K)=>{if(j.length===0){B=0;return}let W=0,P=0;for(let k=0;k<j.length;k++){let z=j[k],u=z.def;if(u.width!==void 0)z.width=x2(u.width,z.minWidth,z.maxWidth),W+=z.width;else P++}if(P>0){let z=Math.max(0,K-W)/P;for(let u=0;u<j.length;u++){let I=j[u];if(I.def.width===void 0)I.width=x2(z,I.minWidth,I.maxWidth)}}O()},O=()=>{let K=0;for(let W=0;W<j.length;W++){let P=j[W];P.offset=K,K+=P.width}B=K},N=(K,W)=>{if(K<0||K>=j.length)return 0;let P=j[K];if(!P.resizable)return P.width;let k=x2(W,P.minWidth,P.maxWidth);return P.width=k,O(),k},y=(K)=>{return j[K]},S=(K)=>{if(j.length===0)return;if(K<0)return j[0];if(K>=B)return j[j.length-1];let W=0,P=j.length-1;while(W<P){let k=W+P>>>1,z=j[k];if(K<z.offset)P=k-1;else if(K>=z.offset+z.width)W=k+1;else return z}return j[W]},L=(K)=>{if(K<0||K>=j.length)return 0;return j[K].offset},Z=(K)=>{if(K<0||K>=j.length)return 0;return j[K].width},V=(K)=>{q=K,G()};return G(),{get columns(){return j},get totalWidth(){return B},resolve:b,updateColumns:V,resizeColumn:N,getColumn:y,getColumnAtX:S,getColumnOffset:L,getColumnWidth:Z}},x2=(J,Q,Y)=>Math.min(Y,Math.max(Q,J)),gJ=(J,Q)=>Math.max(Q,J);var DJ=(J,Q,Y,$,q,j)=>{let B=document.createElement("div");B.setAttribute("role","rowgroup");let G=document.createElement("div");G.className=`${Y}-table-header`,G.setAttribute("role","row"),G.setAttribute("aria-rowindex","1"),G.style.height=`${Q}px`;let b=document.createElement("div");b.className=`${Y}-table-header-scroll`,b.setAttribute("role","presentation"),G.appendChild(b),B.appendChild(G),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let O=[],N=[],y=[],S=!0,L=null,Z="asc",V=null,K=!1,W=-1,P=0,k=0,z=(_,D)=>{let U=document.createElement("div");U.className=`${Y}-table-header-cell`,U.setAttribute("role","columnheader"),U.setAttribute("aria-colindex",String(D+1)),U.dataset.columnKey=_.def.key;let w=_.def.align;if(w==="center")U.classList.add(`${Y}-table-header-cell--center`);else if(w==="right")U.classList.add(`${Y}-table-header-cell--right`);let m=document.createElement("div");m.className=`${Y}-table-header-content`;let i=_.def.header?_.def.header(_.def):_.def.label;if(typeof i==="string")m.textContent=i;else m.appendChild(i);if(U.appendChild(m),_.def.sortable){let l=document.createElement("span");l.className=`${Y}-table-header-sort`,l.setAttribute("aria-hidden","true"),U.appendChild(l),y.push(l),U.classList.add(`${Y}-table-header-cell--sortable`)}else y.push(null);if(_.resizable){let l=document.createElement("div");l.className=`${Y}-table-header-resize`,l.dataset.resizeIndex=String(D),U.appendChild(l),N.push(l)}return U},u=(_)=>{V=_,b.textContent="",O=[],N=[],y=[];let D=_.columns;for(let U=0;U<D.length;U++){let w=D[U],m=z(w,U);O.push(m),b.appendChild(m)}if(I(_),L)n(L,Z)},I=(_)=>{V=_;let D=_.columns;b.style.width=`${_.totalWidth}px`;for(let U=0;U<O.length&&U<D.length;U++){let w=O[U],m=D[U];w.style.width=`${m.width}px`}},n=(_,D)=>{if(L=_,Z=D,!V)return;let U=V.columns;for(let w=0;w<y.length&&w<U.length;w++){let m=y[w];if(!m)continue;if(U[w].def.key===_&&_!==null)m.textContent=D==="asc"?"▲":"▼",m.style.opacity="0.7",O[w].setAttribute("aria-sort",D==="asc"?"ascending":"descending");else m.textContent="",m.style.opacity="0",O[w].removeAttribute("aria-sort")}},r=(_)=>{b.style.transform=`translateX(${-_}px)`},e=(_)=>{let D=_.target;if(!D.dataset.resizeIndex)return;if(_.preventDefault(),_.stopPropagation(),W=parseInt(D.dataset.resizeIndex,10),!V)return;let U=V.getColumn(W);if(!U||!U.resizable)return;K=!0,P=_.clientX,k=U.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",D.classList.add(`${Y}-table-header-resize--active`),D.setPointerCapture(_.pointerId),D.addEventListener("pointermove",q2),D.addEventListener("pointerup",X2),D.addEventListener("pointercancel",X2)},q2=(_)=>{if(!K||!V)return;let D=_.clientX-P;if(Math.abs(D)<1)return;let U=Math.max(0,k+D);$(W,U)},X2=(_)=>{if(!K)return;let D=_.target;D.removeEventListener("pointermove",q2),D.removeEventListener("pointerup",X2),D.removeEventListener("pointercancel",X2);try{D.releasePointerCapture(_.pointerId)}catch{}D.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",K=!1,W=-1},K2=(_)=>{let D=_.target;if(D.dataset.resizeIndex!==void 0)return;if(K)return;let U=D;while(U&&!U.dataset.columnKey)if(U=U.parentElement,U===G||U===null)return;if(!U||!U.dataset.columnKey)return;let w=U.dataset.columnKey;if(!V)return;let m=V.columns,i=-1;for(let s=0;s<m.length;s++)if(m[s].def.key===w){i=s;break}if(i===-1)return;let l=m[i];if(j)j({key:w,index:i,event:_});if(l.def.sortable&&q){let s;if(L===w)if(Z==="asc")s="desc";else s=null;else s="asc";q({key:w,index:i,direction:s})}};return G.addEventListener("pointerdown",e),G.addEventListener("click",K2),{element:G,update:I,updateSort:n,rebuild:u,show:()=>{if(S)return;S=!0,G.style.display=""},hide:()=>{if(!S)return;S=!1,G.style.display="none"},destroy:()=>{G.removeEventListener("pointerdown",e),G.removeEventListener("click",K2),J.style.removeProperty("--vlist-table-header-height"),B.remove(),O=[],N=[],y=[],V=null,S=!1},syncScroll:r}};var uJ=()=>{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}}},GJ=(J,Q,Y,$,q,j,B,G,b)=>{let O=uJ(),N=new Map,y=-1,S=Y,L=null,Z=null,V=null,K=(X,T)=>{Z=X,V=T},W=(X,T)=>{if(T)X.setAttribute("aria-selected","true");else X.removeAttribute("aria-selected")},P=(X,T,R,p)=>{X.setAttribute("role",T),X.setAttribute("data-id",String(R)),X.setAttribute("data-index",String(p))},k=(X)=>String(X).startsWith("__placeholder_"),z=`${q}-item ${q}-table-row`,u=`${q}-item--selected`,I=`${q}-item--focused`,n=`${q}-table-cell`,r=`${q}-table-cell--center`,e=`${q}-table-cell--right`,q2=`${q}-item--odd`,X2=`${q}-item--placeholder`,K2=`${q}-item--replaced`,g=`${q}-item ${q}-table-row ${q}-table-group-header`,c=`${q}-table-group-header-content`,H=(X,T,R,p,f=!1)=>{if(R.def.cell){let d=R.def.cell(T,R.def,p);if(typeof d==="string")X.innerHTML=d;else X.replaceChildren(d)}else{let d=T[R.def.key],o=d!=null?String(d):"";if(f&&o)X.innerHTML=`<span>${o}</span>`;else X.textContent=o}},_=(X,T,R,p,f=!1)=>{let d=z;if(G){if(L){let o=L(T);if(o>=0&&(o&1)===1)d+=` ${q2}`}else if((T&1)===1)d+=` ${q2}`}if(f)d+=` ${X2}`;if(R)d+=` ${u}`;if(p)d+=` ${I}`;X.className=d},D=(X,T,R)=>{if(R?.compression?.isCompressed)return Math.round(H2(X,R.scrollPosition,T,R.totalItems,R.containerSize,R.compression,R.rangeStart));return T.getOffset(X)},U=(X,T)=>{let R=T.def.align;if(R==="center")X.classList.add(r),X.classList.remove(e);else if(R==="right")X.classList.add(e),X.classList.remove(r);else X.classList.remove(r,e)},w=(X,T)=>{let p=S.columns.length;if(T.length===p)return T;let f=[];for(let d=0;d<p;d++){let o;if(d<T.length)o=T[d];else o=document.createElement("div"),o.className=n,X.appendChild(o);f.push(o)}for(let d=p;d<T.length;d++)T[d].remove();return f},m=(X,T,R,p)=>{let f=O.acquire(),d=X,o=R.getSize(T),F=D(T,R,p);f.style.cssText=`width:${S.totalWidth}px;height:${o}px;transform:translateY(${F}px)`,f.className=g,P(f,"presentation",X.id,T),f.removeAttribute("aria-selected"),f.removeAttribute("aria-rowindex"),f.replaceChildren();let C=document.createElement("div");if(C.className=c,V){let x=V(d.groupKey,d.groupIndex);if(typeof x==="string")C.innerHTML=x;else C.appendChild(x)}return f.appendChild(C),{element:f,cells:[],index:T,isGroupHeader:!0,lastItemId:X.id,lastSelected:!1,lastFocused:!1,lastOffset:F,lastHeight:o}},i=(X,T,R,p,f,d)=>{let o=O.acquire(),F=f.getSize(T),C=D(T,f,d),x=k(X.id);o.style.cssText=`width:${S.totalWidth}px;height:${F}px;transform:translateY(${C}px)`,_(o,T,R,p,x),P(o,"row",X.id,T),o.id=`${j}-${T}`,o.setAttribute("aria-rowindex",String(T+2)),W(o,R);let $2=w(o,[]),J2=S.columns;for(let B2=0;B2<$2.length&&B2<J2.length;B2++){let U2=$2[B2],_2=J2[B2];U2.style.cssText=`left:${_2.offset}px;width:${_2.width}px`,U2.setAttribute("role","gridcell"),U2.setAttribute("aria-colindex",String(B2+1)),U(U2,_2),H(U2,X,_2,T,x)}return{element:o,cells:$2,index:T,isGroupHeader:!1,lastItemId:X.id,lastSelected:R,lastFocused:p,lastOffset:C,lastHeight:F}},l=(X,T,R,p,f)=>{for(let[x,$2]of N)if(x<T.start||x>T.end)O.release($2.element),N.delete(x);let d=!1,o=B();if(o!==y)y=o,d=!0;let F=null,C=Q();L=typeof G==="string"&&b?b():null;for(let x=T.start;x<=T.end;x++){let $2=x-T.start,J2=X[$2];if(!J2)continue;let B2=R.has(J2.id),U2=x===p,_2=Z?Z(J2):!1,a=N.get(x);if(a){if(a.isGroupHeader!==_2){O.release(a.element),N.delete(x);let Y2=_2?m(J2,x,C,f):i(J2,x,B2,U2,C,f);if(N.set(x,Y2),!F)F=document.createDocumentFragment();F.appendChild(Y2.element);continue}if(_2){if(a.lastItemId!==J2.id){let Z2=J2,D2=a.element.firstElementChild;if(D2&&V){let Q2=V(Z2.groupKey,Z2.groupIndex);if(typeof Q2==="string")D2.innerHTML=Q2;else D2.replaceChildren(Q2)}a.element.setAttribute("data-id",String(J2.id)),a.lastItemId=J2.id}let N2=D(x,C,f);if(a.lastOffset!==N2)a.lastOffset=N2,a.element.style.transform=`translateY(${N2}px)`;let V2=C.getSize(x);if(a.lastHeight!==V2)a.lastHeight=V2,a.element.style.height=`${V2}px`}else{let Y2=a.lastItemId!==J2.id,N2=a.lastSelected!==B2,V2=a.lastFocused!==U2;if(Y2){let Q2=a.lastItemId!=null&&k(a.lastItemId),j2=k(J2.id);if(!j2&&F2(R,x,J2.id))B2=!0;let G2=S.columns;for(let W2=0;W2<a.cells.length&&W2<G2.length;W2++)H(a.cells[W2],J2,G2[W2],x,j2);if(_(a.element,x,B2,U2,j2),a.element.setAttribute("data-id",String(J2.id)),W(a.element,B2),Q2&&!j2)a.element.classList.add(K2),setTimeout(()=>{a.element.classList.remove(K2)},300);a.lastItemId=J2.id,a.lastSelected=B2,a.lastFocused=U2}else if(N2||V2)_(a.element,x,B2,U2,k(J2.id)),W(a.element,B2),a.lastSelected=B2,a.lastFocused=U2;let Z2=D(x,C,f);if(a.lastOffset!==Z2)a.lastOffset=Z2,a.element.style.transform=`translateY(${Z2}px)`;let D2=C.getSize(x);if(a.lastHeight!==D2)a.lastHeight=D2,a.element.style.height=`${D2}px`;if(d)a.element.setAttribute("aria-rowindex",String(x+2))}}else{if(F2(R,x,J2.id))B2=!0;let Y2=_2?m(J2,x,C,f):i(J2,x,B2,U2,C,f);if(N.set(x,Y2),!F)F=document.createDocumentFragment();F.appendChild(Y2.element)}}if(F)J.appendChild(F)},s=(X)=>{let T=Q();for(let[R,p]of N){let f=D(R,T,X);if(p.lastOffset!==f)p.lastOffset=f,p.element.style.transform=`translateY(${f}px)`}},t=(X,T,R,p)=>{let f=N.get(X);if(!f)return;if(f.isGroupHeader)return;let d=S.columns;for(let o=0;o<f.cells.length&&o<d.length;o++)H(f.cells[o],T,d[o],X);f.element.setAttribute("data-id",String(T.id)),f.lastItemId=T.id,_(f.element,X,R,p),W(f.element,R),f.lastSelected=R,f.lastFocused=p},M=(X,T,R)=>{let p=N.get(X);if(!p)return;if(p.isGroupHeader)return;let f=p.lastSelected!==T,d=p.lastFocused!==R;if(f||d)_(p.element,X,T,R),W(p.element,T),p.lastSelected=T,p.lastFocused=R},v=(X)=>{S=X;let T=X.columns;for(let[,R]of N)if(R.element.style.width=`${X.totalWidth}px`,R.cells.length>0)for(let p=0;p<R.cells.length&&p<T.length;p++){let f=R.cells[p],d=T[p];f.style.left=`${d.offset}px`,f.style.width=`${d.width}px`}},A=(X)=>{return N.get(X)?.element},h=()=>{for(let[,X]of N)O.release(X.element);N.clear(),y=-1};return{render:l,updatePositions:s,updateItem:t,updateItemClasses:M,getElement:A,updateColumnLayout:v,setGroupHeaderFn:K,clear:h,destroy:()=>{h(),O.clear()}}};var VJ=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.containerSize,q=0,j=[],B=()=>{let K=(Q-1)*Y;q=Math.max(0,($-K)/Q),j=Array(Q);let W=q+Y;for(let P=0;P<Q;P++)j[P]=P*W};B();let G=[],b=0,O=[],N=(K)=>{let W=0,P=K[0];for(let k=1;k<K.length;k++){let z=K[k];if(z<P)P=z,W=k}return W},y=(K,W)=>{if(K<=0)return b=0,G=[],[];let P=Array(Q).fill(0),k=Array(Q);for(let I=0;I<Q;I++)k[I]=[];let z=Array(K);for(let I=0;I<K;I++){let n=N(P),r=W(I),e=P[n];z[I]={index:I,x:j[n],y:e,lane:n,size:r,crossSize:q},k[n].push(I),P[n]=e+r+Y}G=k;let u=0;for(let I=0;I<Q;I++){let n=P[I],r=n>0?n-Y:0;if(r>u)u=r}return b=u,z},S=(K)=>{if(K.length===0)return b>0?b:0;if(b>0)return b;let W=Array(Q).fill(0);for(let k of K){let z=k.y+k.size,u=W[k.lane];if(z>u)W[k.lane]=z}let P=0;for(let k=0;k<Q;k++)if(W[k]>P)P=W[k];return P},L=(K,W,P)=>{if(K.length===0||P<=W)return O.length=0,O;if(G.length===0||G.length!==Q)return Z(K,W,P);O.length=0;for(let k=0;k<Q;k++){let z=G[k],u=z.length;if(u===0)continue;let I=0,n=u;while(I<n){let r=I+n>>>1,e=K[z[r]];if(e.y+e.size<=W)I=r+1;else n=r}for(let r=I;r<u;r++){let e=K[z[r]];if(e.y>=P)break;O.push(e)}}return O},Z=(K,W,P)=>{let k=[];for(let z of K)if(z.y+z.size>W&&z.y<P)k.push(z);return k};return{get columns(){return Q},get gap(){return Y},get containerSize(){return $},update:(K)=>{let W=!1;if(K.columns!==void 0){let P=Math.max(1,Math.floor(K.columns));if(P!==Q)Q=P,W=!0}if(K.gap!==void 0&&K.gap!==Y)Y=K.gap,W=!0;if(K.containerSize!==void 0&&K.containerSize!==$)$=K.containerSize,W=!0;if(W)B()},calculateLayout:y,getTotalSize:S,getVisibleItems:L}};var mJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-lane"),Q.push(j)},clear:()=>{Q.length=0}}},dJ=1,WJ=(J,Q,Y,$=!1,q,j,B)=>{let G=mJ(),b=new Map,O=new Set,N=0,y="",S=-1,L={selected:!1,focused:!1},Z=(g,c)=>{return L.selected=g,L.focused=c,L},V=`${Y}-item ${Y}-masonry-item`,K=`${Y}-group-header`,W=`${Y}-item--selected`,P=`${Y}-item--focused`,k=(g,c)=>{if(typeof c==="string")g.innerHTML=c;else g.replaceChildren(c)},z=(g,c,H)=>{g.classList.toggle(W,c),g.classList.toggle(P,H)},u=(g,c)=>{if($)g.style.transform=`translate(${Math.round(c.y)}px, ${Math.round(c.x)}px)`;else g.style.transform=`translate(${Math.round(c.x)}px, ${Math.round(c.y)}px)`},I=(g,c)=>{if($)g.style.width=`${c.size}px`,g.style.height=`${c.crossSize}px`;else g.style.width=`${c.crossSize}px`,g.style.height=`${c.size}px`},n=(g,c,H,_,D)=>{let U=G.acquire(),w=!!c.__groupHeader,m=Z(_,D);if(U.className=w?K:V,U.dataset.index=String(g),U.dataset.id=String(c.id),U.dataset.lane=String(H.lane),w)U.setAttribute("role","presentation"),U.removeAttribute("aria-selected"),U.removeAttribute("aria-setsize"),U.removeAttribute("aria-posinset"),U.removeAttribute("id");else{if(U.setAttribute("role","option"),U.ariaSelected=String(_),j)U.id=`${j}-item-${g}`;if(q){let l=q();if(l!==S)S=l,y=String(l);U.setAttribute("aria-setsize",y);let s=B?B(g):g+1;U.setAttribute("aria-posinset",String(s))}}I(U,H);let i=Q(c,g,m);return k(U,i),z(U,_,D),u(U,H),{element:U,lastItemId:c.id,lastSelected:_,lastFocused:D,lastY:H.y,lastX:H.x,lastSize:H.size,lastCrossSize:H.crossSize,lastSeenFrame:N}},r=(g,c,H,_)=>{N++,O.clear();for(let U=0;U<c.length;U++)O.add(c[U].index);for(let[U,w]of b)if(O.has(U))w.lastSeenFrame=N;else if(N-w.lastSeenFrame>dJ)G.release(w.element),b.delete(U);let D=null;for(let U=0;U<c.length;U++){let w=c[U],m=w.index,i=g(m);if(!i)continue;let l=H.has(i.id),s=m===_,t=b.get(m);if(t){let M=t.lastItemId!==i.id,v=t.lastSelected!==l,A=t.lastFocused!==s,h=t.lastY!==w.y||t.lastX!==w.x,E=t.lastSize!==w.size||t.lastCrossSize!==w.crossSize;if(M){let X=Z(l,s),T=Q(i,m,X);if(k(t.element,T),t.element.dataset.id=String(i.id),t.lastItemId=i.id,!i.__groupHeader){let p=B?B(m):m+1;t.element.setAttribute("aria-posinset",String(p))}}if(M||v||A)z(t.element,l,s),t.element.ariaSelected=String(l),t.lastSelected=l,t.lastFocused=s;if(E)I(t.element,w),t.lastSize=w.size,t.lastCrossSize=w.crossSize;if(h)u(t.element,w),t.lastY=w.y,t.lastX=w.x}else{let M=n(m,i,w,l,s);if(!D)D=document.createDocumentFragment();D.appendChild(M.element),b.set(m,M)}}if(D)J.appendChild(D)},e=()=>{for(let{element:g}of b.values())G.release(g);b.clear(),J.innerHTML=""};return{render:r,getElement:(g)=>b.get(g)?.element,updateItemClasses:(g,c,H)=>{let _=b.get(g);if(!_)return;let D=_.lastSelected!==c,U=_.lastFocused!==H;if(D||U)z(_.element,c,H),_.lastSelected=c,_.lastFocused=H},sortDOM:()=>{P2(J,b.keys(),(g)=>b.get(g)?.element)},clear:e,destroy:()=>{e(),G.clear()}}};var MJ=(J,Q)=>{let Y=new Map,$=(j)=>{let B=Y.get(j);return B!==void 0?B:J},q=T2($,Q);return{getOffset(j){return q.getOffset(j)},getSize(j){return $(j)},indexAtOffset(j){return q.indexAtOffset(j)},getTotalSize(){return q.getTotalSize()},getTotal(){return q.getTotal()},rebuild(j){if(j<q.getTotal()){for(let B of Y.keys())if(B>=j)Y.delete(B)}q=T2($,j)},isVariable(){return!0},setMeasuredSize(j,B){Y.set(j,B)},isMeasured(j){return Y.has(j)},getEstimatedSize(){return J},measuredCount(){return Y.size}}};var OJ=(J,Q,Y,$,q,j)=>{if($===0||Q===0)return j.start=0,j.end=-1,j;let B=Y.indexAtOffset(J),G=Y.indexAtOffset(J+Q);if(G<$-1)G++;return j.start=Math.max(0,B),j.end=Math.min($-1,Math.max(0,G)),j},AJ=(J,Q,Y,$)=>{if(Y===0)return $.start=0,$.end=-1,$;return $.start=Math.max(0,J.start-Q),$.end=Math.min(Y-1,J.end+Q),$},EJ=(J,Q,Y,$,q,j)=>{if($===0)return 0;let B=Math.max(0,Math.min(J,$-1)),G=Q.getOffset(B),b=Q.getSize(B),O=Q.getTotalSize(),N=Math.max(0,O-Y),y;switch(j){case"center":y=G-Y/2+b/2;break;case"end":y=G-Y+b;break;case"start":default:y=G;break}return Math.max(0,Math.min(y,N))},FJ=(J,Q,Y)=>{if(Y&&Y.isCompressed)return Y.virtualSize;return Q.getTotalSize()},LJ=(J,Q)=>{return Q.getTotalSize()},HJ=(J,Q)=>{return Q.getOffset(J)},bJ=(J,Q,Y)=>{let $=Math.max(0,Q-Y);return Math.max(0,Math.min(J,$))};var TJ=(J,Q,Y,$,q="start",j,B=EJ)=>{return B(J,Q,Y,$,j,q)},RJ=(J,Q)=>{return J.start===Q.start&&J.end===Q.end},yJ=(J,Q)=>{return J>=Q.start&&J<=Q.end},PJ=(J)=>{if(J.end<J.start)return 0;return J.end-J.start+1};var kJ=(J,Q)=>{let Y=[],$=[];for(let q=J.start;q<=J.end;q++)if(q<Q.start||q>Q.end)$.push(q);for(let q=Q.start;q<=Q.end;q++)if(q<J.start||q>J.end)Y.push(q);return{add:Y,remove:$}};var zJ=()=>{let J={},Q=(j,B)=>{if(!J[j])J[j]=new Set;return J[j].add(B),()=>Y(j,B)},Y=(j,B)=>{J[j]?.delete(B)};return{on:Q,off:Y,emit:(j,B)=>{J[j]?.forEach((G)=>{try{G(B)}catch(b){console.error(`[vlist] Error in event handler for "${String(j)}":`,b)}})},clear:(j)=>{if(j)delete J[j];else for(let B in J)delete J[B]}}};var k2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:Y=5000,evictionBuffer:$=200,onEvict:q}=J,j=new Map,B=0,G=0,b=(H)=>{let _=j.get(H);if(!_)_={items:Array(Q),count:0,lastAccess:Date.now()},j.set(H,_);else _.lastAccess=Date.now();return _},O=(H)=>{return Math.floor(H/Q)},N=(H)=>{return H%Q},y=()=>B,S=(H)=>{B=H},L=(H)=>{if(H<0||H>=B)return;let _=O(H),D=j.get(_);if(!D)return;return D.items[N(H)]},Z=(H)=>{if(H<0||H>=B)return!1;let _=O(H),D=j.get(_);if(!D)return!1;return D.items[N(H)]!==void 0},V=(H,_)=>{let D=O(H),U=b(D),w=N(H),m=U.items[w]===void 0;if(U.items[w]=_,m)U.count++,G++;if(H>=B)B=H+1},K=(H,_)=>{for(let D=0;D<_.length;D++){let U=_[D];if(U!==void 0)V(H+D,U)}},W=(H)=>{if(H<0||H>=B)return!1;let _=O(H),D=j.get(_),U=N(H);if(!(D!==void 0&&D.items[U]!==void 0))return!1;let m=_,i=Array.from(j.keys()).filter((s)=>s>=m).sort((s,t)=>s-t),l=[];for(let s of i){let t=j.get(s),M=s*Q;for(let v=0;v<Q;v++){if(t.items[v]===void 0)continue;let A=M+v;if(A<=H)continue;l.push({oldIndex:A,item:t.items[v]})}}if(D.items[U]=void 0,D.count--,G--,D.count===0)j.delete(_);for(let{oldIndex:s}of l){let t=O(s),M=j.get(t);if(!M)continue;let v=N(s);if(M.items[v]!==void 0){if(M.items[v]=void 0,M.count--,G--,M.count===0)j.delete(t)}}for(let{oldIndex:s,item:t}of l){let M=s-1,v=O(M),A=b(v),h=N(M);A.items[h]=t,A.count++,G++}return B--,!0},P=(H,_)=>{let D=[];for(let U=H;U<=_&&U<B;U++)D.push(L(U));return D},k=(H,_)=>{for(let D=H;D<=_&&D<B;D++)if(!Z(D))return!1;return!0},z=()=>{let H=[],_=null,D=Array.from(j.keys()).sort((U,w)=>U-w);for(let U of D){let w=j.get(U);if(!w)continue;let m=U*Q;for(let i=0;i<Q;i++){let l=m+i;if(l>=B)break;if(w.items[i]!==void 0)if(_===null)_={start:l,end:l};else if(l===_.end+1)_.end=l;else H.push(_),_={start:l,end:l};else if(_!==null)H.push(_),_=null}}if(_!==null)H.push(_);return H},u=(H,_)=>{let D=[],U=null;for(let w=H;w<=_&&w<B;w++)if(!Z(w))if(U===null)U={start:w,end:w};else U.end=w;else if(U!==null)D.push(U),U=null;if(U!==null)D.push(U);return D},I=(H)=>{return j.has(H)},n=(H)=>{let _=j.get(H);if(_)_.lastAccess=Date.now()},r=(H,_)=>{if(H>_||j.size===0)return;let D=Date.now(),U=O(Math.max(0,H)),w=O(Math.min(B-1,_));for(let m=U;m<=w;m++){let i=j.get(m);if(i)i.lastAccess=D}},e=(H,_)=>{if(G<=Y)return 0;let D=Math.max(0,H-$),U=Math.min(B-1,_+$),w=O(D),m=O(U),i=0,l=[];for(let[s,t]of j)if(s<w||s>m)i+=t.count,l.push(s),G-=t.count,j.delete(s);if(i>0&&q)q(i,l);return i},q2=()=>{if(G<=Y)return 0;let H=Array.from(j.entries()).sort(([,U],[,w])=>U.lastAccess-w.lastAccess),_=0,D=[];for(let[U,w]of H){if(G<=Y)break;_+=w.count,G-=w.count,D.push(U),j.delete(U)}if(_>0&&q)q(_,D);return _},X2=()=>{return{totalItems:B,cachedItems:G,cachedChunks:j.size,chunkSize:Q,maxCachedItems:Y,memoryEfficiency:B>0?1-G/B:1}},K2=()=>G,g=()=>{j.clear(),G=0};return{chunkSize:Q,maxCachedItems:Y,getTotal:y,setTotal:S,get:L,has:Z,set:V,setRange:K,delete:W,getRange:P,isRangeLoaded:k,getLoadedRanges:z,findUnloadedRanges:u,getChunkIndex:O,isChunkLoaded:I,touchChunk:n,touchChunksForRange:r,evictDistant:e,evictToLimit:q2,getStats:X2,getCachedCount:K2,clear:g,reset:()=>{g(),B=0}}},z2=(J)=>{if(J.length===0)return[];let Q=[...J].sort(($,q)=>$.start-q.start),Y=[{...Q[0]}];for(let $=1;$<Q.length;$++){let q=Q[$],j=Y[Y.length-1];if(q.start<=j.end+1)j.end=Math.max(j.end,q.end);else Y.push({...q})}return Y},g2=(J,Q,Y)=>{let $=Math.floor(J.start/Y)*Y,q=Math.ceil((J.end+1)/Y)*Y-1,j={start:$,end:q};if(Q.length===0)return[j];let B=[],G=z2(Q),b=j.start;for(let O of G){if(O.end<b)continue;if(O.start>j.end)break;if(O.start>b)B.push({start:b,end:Math.min(O.start-1,j.end)});if(b=O.end+1,b>j.end)break}if(b<=j.end)B.push({start:b,end:j.end});return B};var w2=(J={})=>{let{maskCharacter:Q=n2,maxSampleSize:Y=o2}=J,$=[],q=!1,j=(N)=>{if(q||N.length===0)return;let y=Math.min(N.length,Y);for(let S=0;S<y;S++){let L=N[S];if(!L||typeof L!=="object")continue;let Z={};for(let[V,K]of Object.entries(L)){if(V.startsWith("_")||V==="id")continue;Z[V]=String(K??"").length}if(Object.keys(Z).length>0)$.push(Z)}q=!0},B=()=>q,G=(N)=>{let y={id:`${O2}${N}`,[S2]:!0,_index:N};if($.length===0)return y.label=Q.repeat(12),y;let S=$[N%$.length];for(let[L,Z]of Object.entries(S))y[L]=Q.repeat(Math.max(1,Z));return y};return{analyzeStructure:j,hasAnalyzedStructure:B,generate:G,generateRange:(N,y)=>{let S=[];for(let L=N;L<=y;L++)S.push(G(L));return S},clear:()=>{$=[],q=!1}}},A2=(J)=>{if(!J||typeof J!=="object")return!1;return J[S2]===!0},u2=(J)=>{return J.filter((Q)=>!A2(Q))};var rJ=50,wJ=(J={})=>{let{adapter:Q,initialItems:Y,initialTotal:$,storage:q,placeholder:j,pageSize:B=rJ,onStateChange:G,onItemsLoaded:b,onItemsEvicted:O}=J,N=k2({...q,onEvict:(F,C)=>{O?.(F),r()}}),y=null,S=()=>{if(!y)y=w2(j);return y},L=new Map,Z=!1,V,K=!0,W,P,k=[],z=0,u=new Map,I=new Map,n=()=>{for(let F of I.values())F.abort();I.clear(),u.clear()},r=()=>{G?.(D())},e=()=>{L.clear();let F=N.getLoadedRanges();for(let C of F)for(let x=C.start;x<=C.end;x++){let $2=N.get(x);if($2&&!A2($2))L.set($2.id,x)}},q2=(F,C)=>{if(!A2(C))L.set(C.id,F)},X2=(F)=>{L.delete(F)},K2=(F,C)=>{return`${F}-${C}`},g=()=>N.getTotal(),c=()=>N.getCachedCount(),H=()=>Z,_=()=>K,D=()=>({total:N.getTotal(),cached:N.getCachedCount(),isLoading:Z,pendingRanges:k,error:V,hasMore:K,cursor:W}),U=()=>N,w=()=>S(),m=(F)=>{let C=N.get(F);if(C!==void 0)return C;if(F>=0&&F<N.getTotal())return S().generate(F);return},i=(F)=>{let C=L.get(F);if(C===void 0)return;return N.get(C)},l=(F)=>{return L.get(F)??-1},s=(F)=>{let C=N.get(F);return C!==void 0&&!A2(C)},t=(F,C)=>{let x=[],$2=N.getTotal(),J2=0,B2=0;N.touchChunksForRange(F,Math.min(C,$2-1));for(let U2=F;U2<=C&&U2<$2;U2++){let _2=N.get(U2);if(_2!==void 0)x.push(_2),J2++;else x.push(S().generate(U2)),B2++}return x},M=(F)=>{N.setTotal(F),K=N.getCachedCount()<F,r()},v=(F,C=0,x)=>{if(Q&&F.length>0){let $2=S();if(!$2.hasAnalyzedStructure())$2.analyzeStructure(F)}for(let $2=0;$2<F.length;$2++){let J2=F[$2];if(J2!==void 0){let B2=C+$2;N.set(B2,J2),q2(B2,J2)}}if(x!==void 0)N.setTotal(x);else if(C+F.length>N.getTotal())N.setTotal(C+F.length);if(N.getCachedCount()>=N.getTotal()&&N.getTotal()>0)K=!1;r(),b?.(F,C,N.getTotal())},A=(F,C)=>{let x=N.get(F);if(!x)return!1;let $2=x.id,J2={...x,...C};if(N.set(F,J2),C.id!==void 0&&C.id!==$2)X2($2);return q2(F,J2),r(),!0},h=(F)=>{let C=L.get(F);if(C===void 0)return!1;if(!N.delete(C))return!1;return e(),n(),r(),!0},E=async(F,C)=>{if(!Q)return;let x=K2(F,C);if(u.has(x))return;let $2=N.chunkSize,J2=Math.floor(F/$2),B2=Math.floor(C/$2),U2=$2*2;for(let[Y2,N2]of I){let V2=Y2.indexOf("-"),Z2=parseInt(Y2.slice(0,V2),10);if(Math.abs(Z2-F)>U2)N2.abort(),I.delete(Y2),u.delete(Y2)}let _2=[];for(let Y2=J2;Y2<=B2;Y2++){let N2=Y2*$2,V2=N2+$2-1,Z2=K2(N2,V2);if(!N.isChunkLoaded(Y2)&&!u.has(Z2))_2.push({start:N2,end:V2})}if(_2.length===0)return;let a=[];for(let Y2=J2;Y2<=B2;Y2++){let N2=Y2*$2,V2=N2+$2-1,Z2=K2(N2,V2);if(u.has(Z2)){let D2=u.get(Z2);if(!a.includes(D2))a.push(D2)}}for(let Y2 of _2){let N2=K2(Y2.start,Y2.end),V2=new AbortController;I.set(N2,V2);let Z2=(async()=>{k.push(Y2),Z=!0,V=void 0,r();try{let D2=Y2.end-Y2.start+1,Q2={offset:Y2.start,limit:D2,cursor:Y2.start===P?W:void 0,signal:V2.signal},j2=await Q.read(Q2);if(v(j2.items,Y2.start,j2.total),j2.cursor)W=j2.cursor,P=Y2.start+j2.items.length;let G2=Y2.start+j2.items.length;if(G2>=z){if(z=G2,j2.hasMore!==void 0)K=j2.hasMore;else if(j2.total!==void 0)K=G2<j2.total}}catch(D2){if(D2?.name==="AbortError")return;V=D2 instanceof Error?D2:Error(String(D2))}finally{u.delete(N2),I.delete(N2),k=k.filter((D2)=>D2.start!==Y2.start||D2.end!==Y2.end),Z=u.size>0,r()}})();u.set(N2,Z2),a.push(Z2)}await Promise.all(a)},X=async(F,C)=>{if(N.isRangeLoaded(F,C))return;await E(F,C)},T=async()=>{if(!Q)return;await E(0,B-1)},R=async()=>{if(!Q||Z||!K)return!1;let F=N.getCachedCount(),C=N.getTotal(),x=F,$2=Math.min(x+B-1,C>0?C-1:x+B-1);if(x>=C&&C>0)return K=!1,!1;return await E(x,$2),N.getCachedCount()>F},p=async()=>{if(N.clear(),N.setTotal(0),L.clear(),y)y.clear();n(),k=[],Z=!1,W=void 0,P=void 0,K=!0,z=0,V=void 0,r()},f=(F,C)=>{if(N.evictDistant(F,C)>0)e()},d=()=>{N.clear(),L.clear(),W=void 0,P=void 0,V=void 0,k=[],Z=!1,r()},o=()=>{if(N.reset(),L.clear(),y)y.clear();W=void 0,P=void 0,K=!0,z=0,V=void 0,k=[],Z=!1,r()};if(Y&&Y.length>0)v(Y,0,$??Y.length);else if($!==void 0)N.setTotal($),r();return{getState:D,getTotal:g,getCached:c,getIsLoading:H,getHasMore:_,getStorage:U,getPlaceholders:w,getItem:m,getItemById:i,getIndexById:l,isItemLoaded:s,getItemsInRange:t,setTotal:M,setItems:v,updateItem:A,removeItem:h,loadRange:E,ensureRange:X,loadInitial:T,loadMore:R,reload:p,evictDistant:f,clear:d,reset:o}};var vJ=(J=0)=>{let Q=[,,,,,,,,];for(let Y=0;Y<8;Y++)Q[Y]={position:0,time:0};return{velocity:0,lastPosition:J,lastTime:performance.now(),samples:Q,sampleIndex:0,sampleCount:0}},v2=(J,Q)=>{let Y=performance.now(),$=Y-J.lastTime;if($===0)return J;if($>100){J.sampleCount=0,J.sampleIndex=0,J.velocity=0;let j=J.samples[0];return j.position=Q,j.time=Y,J.sampleIndex=1,J.sampleCount=1,J.lastPosition=Q,J.lastTime=Y,J}let q=J.samples[J.sampleIndex];if(q.position=Q,q.time=Y,J.sampleIndex=(J.sampleIndex+1)%8,J.sampleCount=Math.min(J.sampleCount+1,8),J.sampleCount>=2){let j=(J.sampleIndex-J.sampleCount+8)%8,B=J.samples[j],G=Q-B.position,b=Y-B.time;J.velocity=b>0?G/b:0}return J.lastPosition=Q,J.lastTime=Y,J},lJ=(J)=>J.sampleCount>=3,CJ=(J,Q={})=>{let{wheel:Y=!0,sensitivity:$=1,smoothing:q=!1,idleTimeout:j=150,onScroll:B,onIdle:G,scrollElement:b,horizontal:O=!1}=Q,N=!!b,y=0,S=0,L=N?O?window.innerWidth:window.innerHeight:O?J.clientWidth:J.clientHeight,Z=Q.compressed??!1,V=Q.compression,K=vJ(),W=!1,P=null,z=C2(()=>{let A=O?J.scrollLeft:J.scrollTop,h=A>=y?"down":"up";if(K=v2(K,A),y=A,B)B({scrollTop:y,direction:h,velocity:K.velocity});q2()}),I=C2(()=>{let A=J.getBoundingClientRect(),h=O?Math.max(0,-A.left):Math.max(0,-A.top),E=h>=y?"down":"up";if(K=v2(K,h),y=h,!W)W=!0;if(B)B({scrollTop:y,direction:E,velocity:K.velocity});q2()}),n=(A)=>{A.preventDefault()},r=(A)=>{if(A.deltaX)return;A.preventDefault(),J.scrollLeft+=A.deltaY},e=(A)=>{if(!Z)return;A.preventDefault();let h=(O?A.deltaX||A.deltaY:A.deltaY)*$,E=y+h;if(q)E=y+h*0.3;if(E=Math.max(0,Math.min(E,S)),E!==y){let T=E>=y?"down":"up";if(K=v2(K,E),y=E,!W)W=!0;if(B)B({scrollTop:y,direction:T,velocity:K.velocity});q2()}},q2=()=>{if(P)clearTimeout(P);P=setTimeout(()=>{if(W=!1,K=vJ(y),G)G()},j)},X2=(A)=>{if(Z)return;if(Z=!0,V=A,S=A.virtualSize-L,N)return;if(z.cancel(),J.removeEventListener("scroll",z),!Y)J.removeEventListener("wheel",n);else if(O)J.removeEventListener("wheel",r);if(O)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",e,{passive:!1});let h=O?J.scrollLeft:J.scrollTop;if(h>0){let E=O?V?.actualSize??J.scrollWidth:V?.actualSize??J.scrollHeight;y=h/E*S}if(O)J.scrollLeft=0;else J.scrollTop=0},K2=()=>{if(!Z)return;if(Z=!1,N){V=void 0;return}if(J.removeEventListener("wheel",e),O)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",z,{passive:!0}),!Y)J.addEventListener("wheel",n,{passive:!1});else if(O)J.addEventListener("wheel",r,{passive:!1});if(V&&y>0){let h=y/S*(V.actualSize-L);if(O)J.scrollLeft=h;else J.scrollTop=h}V=void 0},g=()=>{if(N||Z)return y;return O?J.scrollLeft:J.scrollTop},c=(A,h=!1)=>{let E=Math.max(0,Math.min(A,S||1/0));if(N){let X=J.getBoundingClientRect();if(O){let T=X.left+window.scrollX;window.scrollTo({left:T+E,behavior:h?"smooth":"auto"})}else{let T=X.top+window.scrollY;window.scrollTo({top:T+E,behavior:h?"smooth":"auto"})}}else if(Z){if(E===y)return;let T=E>=y?"down":"up";if(K=v2(K,E),y=E,!W)W=!0;if(B)B({scrollTop:y,direction:T,velocity:K.velocity});q2()}else if(O)J.scrollTo({left:E,behavior:h?"smooth":"auto"});else J.scrollTo({top:E,behavior:h?"smooth":"auto"})},H=(A)=>{c(g()+A)},_=()=>{return g()<=0},D=(A=0)=>{let h=g(),E=N||Z?S:O?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return h>=E-A},U=()=>{let A=g(),h=N||Z?S:O?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(h<=0)return 0;return Math.min(1,Math.max(0,A/h))},w=(A)=>{if(A.compression)V=A.compression,S=V.virtualSize-L},m=()=>Z,i=()=>Math.abs(K.velocity),l=()=>lJ(K),s=()=>W,t=()=>N,M=(A)=>{if(L=A,V)S=V.virtualSize-L},v=()=>{if(P)clearTimeout(P);if(N)I.cancel(),window.removeEventListener("scroll",I);else z.cancel(),J.removeEventListener("scroll",z),J.removeEventListener("wheel",e),J.removeEventListener("wheel",n),J.removeEventListener("wheel",r)};if(N){if(Z&&V)S=V.virtualSize-L;window.addEventListener("scroll",I,{passive:!0})}else if(Z&&V){if(S=V.virtualSize-L,O)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",e,{passive:!1})}else{if(O)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",z,{passive:!0}),!Y)J.addEventListener("wheel",n,{passive:!1});else if(O)J.addEventListener("wheel",r,{passive:!1})}return{getScrollTop:g,scrollTo:c,scrollBy:H,isAtTop:_,isAtBottom:D,getScrollPercentage:U,getVelocity:i,isTracking:l,isScrolling:s,updateConfig:w,enableCompression:X2,disableCompression:K2,isCompressed:m,isWindowMode:t,updateContainerHeight:M,destroy:v}},C2=(J)=>{let Q=null,Y=null,$=(...q)=>{if(Y=q,Q===null)Q=requestAnimationFrame(()=>{if(Q=null,Y)J(...Y)})};return $.cancel=()=>{if(Q!==null)cancelAnimationFrame(Q),Q=null},$};var aJ=(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}},fJ=(J,Q,Y={},$="vlist",q=!1,j)=>{let{autoHide:B=!0,autoHideDelay:G=1000,minThumbSize:b=15,showOnHover:O=!0,showOnViewportEnter:N=!0,clickBehavior:y="scroll"}=Y,S=y==="page"?"scroll":y,L=j??J,Z=aJ(Y.padding),V=q?Z.left:Z.top,K=q?Z.right:Z.bottom,W=q?Z.bottom:Z.right,P=Y.hoverZoneWidth??W+16,k=0,z=0,u=0,I=0,n=!1,r=!1,e=0,q2=0,X2=0,K2=null,g=!1,c=null,H=null,_=0,D=0,U=null,w=null,m=null,i=q?"width":"height",l=q?"translateX":"translateY",s=q?(Q2)=>Q2.clientX:(Q2)=>Q2.clientY,t=q?"left":"top",M=document.createElement("div"),v=document.createElement("div"),A=document.createElement("div"),h=()=>{if(L===J)return;let Q2=J.offsetTop,j2=q?Z.left:Z.top;M.style[q?"left":"top"]=`${Q2+j2}px`,A.style[q?"left":"top"]=`${Q2}px`},E=()=>{if(M.className=`${$}-scrollbar`,v.className=`${$}-scrollbar-thumb`,q)M.classList.add(`${$}-scrollbar--horizontal`);if(Y.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${Z.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${Z.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${Z.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${Z.left}px`);if(Y.minThumbSize!==void 0)M.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${b}px`);if(M.appendChild(v),L.appendChild(M),A.className=`${$}-scrollbar-hover`,q)A.classList.add(`${$}-scrollbar-hover--horizontal`),A.style.height=`${P}px`;else A.style.width=`${P}px`;if(L.appendChild(A),L!==J)h()},X=()=>{if(K2)clearTimeout(K2),K2=null},T=()=>{if(!B)return;X(),K2=setTimeout(p,G)},R=()=>{if(k<=z)return;if(X(),!g)M.classList.add(`${$}-scrollbar--visible`),g=!0;if(B&&!n&&!r)T()},p=()=>{if(n||r)return;M.classList.remove(`${$}-scrollbar--visible`),g=!1},f=(Q2,j2)=>{k=Q2,z=j2,h();let G2=k>z;if(M.style.display=G2?"":"none",!G2){p();return}let W2=Math.max(0,z-V-K),E2=z/k;if(u=Math.max(b,E2*W2),v.style[i]=`${u}px`,I=W2-u,d(X2),!B)R()},d=(Q2)=>{if(X2=Q2,k<=z||I<=0)return;let j2=k-z,W2=Math.min(1,Math.max(0,Q2/j2))*I;v.style.transform=`${l}(${W2}px)`},o=(Q2)=>{if(Q2.target===v||S!=="jump"||I<=0)return;let j2=k-z,G2=M.getBoundingClientRect(),W2=s(Q2)-G2[t],E2=Math.max(0,Math.min(W2-u/2,I));Q(E2/I*j2),R()},F=()=>{if(U!==null)clearTimeout(U),U=null;if(w!==null)cancelAnimationFrame(w),w=null;m=null},C=(Q2)=>{let j2=I>0?D/Q2*I:0;if(_<j2)return-1;if(_>=j2+u)return 1;return 0},x=()=>{let Q2=k-z,j2=C(Q2);if(j2===0){F();return}if(j2===-1){if(D<=0){F();return}let G2=Math.max(0,D-z);D=G2,Q(G2)}else{if(D>=Q2){F();return}let G2=Math.min(Q2,D+z);D=G2,Q(G2)}R()},$2=(Q2)=>{if(m===null){m=Q2,w=requestAnimationFrame($2);return}let j2=k-z,G2=Q2-m;m=Q2;let W2=C(j2);if(W2===0){F();return}let E2=12*z/1000,b2=Math.min(E2*G2,z);if(W2===-1){if(D<=0){F();return}let L2=Math.max(0,D-b2);D=L2,Q(L2)}else{if(D>=j2){F();return}let L2=Math.min(j2,D+b2);D=L2,Q(L2)}X(),w=requestAnimationFrame($2)},J2=()=>{F(),T(),document.removeEventListener("mouseup",J2)},B2=(Q2)=>{if(Q2.target===v||S!=="scroll")return;Q2.preventDefault();let j2=M.getBoundingClientRect();_=s(Q2)-j2[t],D=X2,x(),U=setTimeout(()=>{w=requestAnimationFrame($2)},350),document.addEventListener("mouseup",J2)},U2=(Q2)=>{Q2.preventDefault(),Q2.stopPropagation(),n=!0,e=s(Q2),q2=X2,X(),M.classList.add(`${$}-scrollbar--dragging`),document.addEventListener("mousemove",_2),document.addEventListener("mouseup",a)},_2=(Q2)=>{if(!n)return;let j2=s(Q2)-e,G2=I>0?j2/I:0,W2=k-z,E2=G2*W2,b2=Math.max(0,Math.min(q2+E2,W2)),SJ=b2/W2*I;if(v.style.transform=`${l}(${SJ}px)`,H=b2,c===null)c=requestAnimationFrame(()=>{if(H!==null)Q(H);c=null})},a=()=>{if(n=!1,c!==null)cancelAnimationFrame(c),c=null;if(H!==null)Q(H),H=null;if(M.classList.remove(`${$}-scrollbar--dragging`),B&&!r)T();document.removeEventListener("mousemove",_2),document.removeEventListener("mouseup",a)},Y2=()=>{if(N)R()},N2=()=>{if(!n){if(r=!1,B)T()}},V2=()=>{r=!0,X(),R()},Z2=()=>{if(r=!1,!n&&B)T()},D2=()=>{if(X(),F(),c!==null)cancelAnimationFrame(c),c=null;if(M.removeEventListener("click",o),M.removeEventListener("mousedown",B2),M.removeEventListener("mouseenter",V2),document.removeEventListener("mouseup",J2),M.removeEventListener("mouseleave",Z2),v.removeEventListener("mousedown",U2),J.removeEventListener("mouseenter",Y2),J.removeEventListener("mouseleave",N2),document.removeEventListener("mousemove",_2),document.removeEventListener("mouseup",a),A.removeEventListener("click",o),A.removeEventListener("mousedown",B2),O)A.removeEventListener("mouseenter",V2),A.removeEventListener("mouseleave",Z2);if(A.parentNode)A.parentNode.removeChild(A);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"),M.parentNode)M.parentNode.removeChild(M)};if(E(),M.addEventListener("click",o),M.addEventListener("mousedown",B2),M.addEventListener("mouseenter",V2),M.addEventListener("mouseleave",Z2),v.addEventListener("mousedown",U2),J.addEventListener("mouseenter",Y2),J.addEventListener("mouseleave",N2),A.addEventListener("click",o),A.addEventListener("mousedown",B2),O)A.addEventListener("mouseenter",V2),A.addEventListener("mouseleave",Z2);return{show:R,hide:p,updateBounds:f,updatePosition:d,isVisible:()=>g,destroy:D2}};var sJ=50,nJ=0.1;function oJ(J){let Q=0,Y=0,$=0;function q(){return $>0?Y/$:0}function j(b){if(Q=b,b>nJ&&b<sJ)Y+=b,$++}function B(){let b=J.getTotal();if(b===0)return 0;let O=J.getItemSize();if(O<=0)return 0;let N=J.getContainerSize();if(N<=0)return 0;let y=J.getScrollPosition(),S=typeof J.getColumns==="function"?J.getColumns():1,Z=Math.ceil(b/S)*O,K=Math.min(Z,M2)-N,W=Z-N,P=K>0?W/K:1,k=y*P,z=Math.ceil((k+N)/O);return Math.min(z*S,b)}function G(){let b=J.getTotal(),O=B();return{progress:b>0?Math.min(100,Math.max(0,O/b*100)):0,velocity:Q,velocityAvg:q(),itemCount:O,total:b}}return{getState:G,onVelocity:j}}export{t2 as toggleSelection,OJ as simpleVisibleRange,I2 as selectItems,e2 as selectAll,RJ as rangesEqual,C2 as rafThrottle,XJ as needsScaling,z2 as mergeRanges,QJ as isSelected,A2 as isPlaceholderItem,yJ as isInRange,y2 as isGroupHeader,YJ as getSelectedItems,$J as getSelectedIds,R2 as getScaleState,NJ as getScaleInfo,R2 as getScale,PJ as getRangeCount,UJ as getMaxItemsWithoutScaling,u2 as filterPlaceholders,kJ as diffRanges,p2 as deselectItems,GJ as createTableRenderer,_J as createTableLayout,DJ as createTableHeader,a2 as createStickyHeader,oJ as createStats,k2 as createSparseStorage,T2 as createSizeCache,i2 as createSelectionState,fJ as createScrollbar,CJ as createScrollController,w2 as createPlaceholderManager,MJ as createMeasuredSizeCache,WJ as createMasonryRenderer,VJ as createMasonryLayout,r2 as createGroupedSizeFn,l2 as createGroupLayout,ZJ as createGridRenderer,s2 as createGridLayout,zJ as createEmitter,wJ as createAsyncManager,JJ as clearSelection,bJ as clampScrollPosition,FJ as calculateTotalSize,TJ as calculateScrollToIndex,jJ as calculateScaledVisibleRange,BJ as calculateScaledScrollToIndex,qJ as calculateScaledRenderRange,H2 as calculateScaledItemPosition,AJ as calculateRenderRange,g2 as calculateMissingRanges,HJ as calculateItemOffset,KJ as calculateIndexFromScrollPosition,LJ as calculateActualSize,c2 as buildLayoutItems,M2 as MAX_VIRTUAL_SIZE};
package/dist/size.json CHANGED
@@ -1 +1 @@
1
- {"base":{"minified":"29.4","gzipped":"11.2","minBytes":30070,"gzBytes":11516},"withGrid":{"minified":"41.9","gzipped":"15.2","minBytes":42901,"gzBytes":15586},"withMasonry":{"minified":"39.4","gzipped":"14.8","minBytes":40347,"gzBytes":15114},"withGroups":{"minified":"44.5","gzipped":"15.9","minBytes":45580,"gzBytes":16259},"withAsync":{"minified":"42.1","gzipped":"15.8","minBytes":43095,"gzBytes":16153},"withSelection":{"minified":"40.8","gzipped":"14.5","minBytes":41757,"gzBytes":14818},"withScale":{"minified":"42.4","gzipped":"14.9","minBytes":43451,"gzBytes":15297},"withScrollbar":{"minified":"35.5","gzipped":"13.0","minBytes":36342,"gzBytes":13331},"withPage":{"minified":"31.7","gzipped":"12.0","minBytes":32462,"gzBytes":12288},"withSnapshots":{"minified":"33.2","gzipped":"12.5","minBytes":33964,"gzBytes":12804},"withTable":{"minified":"46.9","gzipped":"16.8","minBytes":48042,"gzBytes":17180},"withSortable":{"minified":"39.3","gzipped":"14.3","minBytes":40232,"gzBytes":14597},"withAutoSize":{"minified":"32.2","gzipped":"12.2","minBytes":32946,"gzBytes":12455}}
1
+ {"base":{"minified":"29.5","gzipped":"11.3","minBytes":30233,"gzBytes":11578},"withGrid":{"minified":"42.0","gzipped":"15.3","minBytes":43054,"gzBytes":15646},"withMasonry":{"minified":"39.6","gzipped":"14.8","minBytes":40509,"gzBytes":15169},"withGroups":{"minified":"45.3","gzipped":"16.1","minBytes":46420,"gzBytes":16461},"withAsync":{"minified":"42.2","gzipped":"15.8","minBytes":43249,"gzBytes":16215},"withSelection":{"minified":"41.2","gzipped":"14.6","minBytes":42206,"gzBytes":14962},"withScale":{"minified":"42.9","gzipped":"15.1","minBytes":43886,"gzBytes":15423},"withScrollbar":{"minified":"36.0","gzipped":"13.2","minBytes":36878,"gzBytes":13533},"withPage":{"minified":"31.9","gzipped":"12.1","minBytes":32625,"gzBytes":12357},"withSnapshots":{"minified":"33.3","gzipped":"12.6","minBytes":34127,"gzBytes":12866},"withTable":{"minified":"47.1","gzipped":"16.8","minBytes":48204,"gzBytes":17231},"withSortable":{"minified":"39.4","gzipped":"14.3","minBytes":40396,"gzBytes":14666},"withAutoSize":{"minified":"32.3","gzipped":"12.2","minBytes":33109,"gzBytes":12511}}
package/dist/vlist.css CHANGED
@@ -1 +1 @@
1
- @keyframes vlist-fade-in{from{opacity:0.6}to{opacity:1}}@keyframes vlist-placeholder-pulse{0%,100%{opacity:0.6}50%{opacity:0.4}}:root{--vlist-scrollbar-width:8px;--vlist-scrollbar-track-color:transparent;--vlist-scrollbar-radius:4px;--vlist-custom-scrollbar-width:8px;--vlist-custom-scrollbar-track-color:transparent;--vlist-custom-scrollbar-radius:4px;--vlist-custom-scrollbar-padding-top:2px;--vlist-custom-scrollbar-padding-right:2px;--vlist-custom-scrollbar-padding-bottom:2px;--vlist-custom-scrollbar-padding-left:2px;--vlist-custom-scrollbar-min-thumb-size:15px;--vlist-item-padding-x:1rem;--vlist-item-padding-y:0.75rem;--vlist-border-radius:0.5rem;--vlist-transition-duration:150ms;--vlist-transition-timing:ease-in-out;--vlist-bg:#ffffff;--vlist-bg-hover:rgba(0,0,0,0.04);--vlist-bg-striped:rgba(0,0,0,0.02);--vlist-bg-selected:rgba(59,130,246,0.12);--vlist-bg-selected-hover:rgba(59,130,246,0.18);--vlist-border:#e5e7eb;--vlist-border-selected:#3b82f6;--vlist-text:#111827;--vlist-text-muted:#6b7280;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#f3f4f6;--vlist-scrollbar-thumb-color:#d1d5db;--vlist-scrollbar-thumb-hover-color:#9ca3af;--vlist-custom-scrollbar-thumb-color:rgba(0,0,0,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(0,0,0,0.3);--vlist-placeholder-bg:rgba(0,0,0,0.2)}[data-theme-mode="dark"]{--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]){--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}}.dark{--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}.vlist{position:relative;width:100%;height:100%;box-sizing:border-box;overflow:hidden;background-color:var(--vlist-bg);color:var(--vlist-text);color-scheme:light;border:1px solid var(--vlist-border);border-radius:var(--vlist-border-radius);outline:none}[data-theme-mode="dark"] .vlist,.dark .vlist{color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]) .vlist{color-scheme:dark}}.vlist:focus,.vlist:focus-visible{outline:none}.vlist-viewport{position:relative;width:100%;height:100%;overflow:auto;scrollbar-color:var(--vlist-scrollbar-thumb-color) var(--vlist-scrollbar-track-color)}@supports (-moz-appearance:none) and (scrollbar-width:1px){.vlist-viewport{scrollbar-width:var(--vlist-scrollbar-width)}}.vlist-viewport::-webkit-scrollbar{width:var(--vlist-scrollbar-width);height:var(--vlist-scrollbar-width)}.vlist-viewport::-webkit-scrollbar-track{background:var(--vlist-scrollbar-track-color)}.vlist-viewport::-webkit-scrollbar-thumb{background-color:var(--vlist-scrollbar-thumb-color);border-radius:var(--vlist-scrollbar-radius)}.vlist-viewport::-webkit-scrollbar-thumb:hover{background-color:var(--vlist-scrollbar-thumb-hover-color)}.vlist-content{position:relative;width:100%}.vlist-items{position:relative;width:100%;contain:layout style}.vlist-item,.vlist-group-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;background-color:var(--vlist-bg);cursor:default;user-select:none;opacity:1;transition:background-color var(--vlist-transition-duration) var(--vlist-transition-timing),opacity var(--vlist-transition-duration) var(--vlist-transition-timing);contain:content;box-sizing:border-box;will-change:transform}.vlist--scrolling .vlist-item,.vlist--settling .vlist-item,.vlist--scrolling .vlist-group-header,.vlist--settling .vlist-group-header{transition:none}.vlist--selectable .vlist-item{cursor:pointer}.vlist--selectable .vlist-item:hover{background-color:var(--vlist-bg-hover)}.vlist-item.vlist-item--odd{background:var(--vlist-bg-striped)}.vlist-item.vlist-item--selected{background-color:var(--vlist-bg-selected)}.vlist-item.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected)}.vlist-item.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover)}.vlist-item.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover)}.vlist-item.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-item--replaced{animation:vlist-fade-in 0.3s ease-out}.vlist-item--placeholder{opacity:0.6;animation:vlist-placeholder-pulse 2s ease-in-out infinite}.vlist-item.vlist-item--selected.vlist-item--focused{outline-color:var(--vlist-border-selected)}.vlist-scrollbar{position:absolute;top:var(--vlist-custom-scrollbar-padding-top);right:var(--vlist-custom-scrollbar-padding-right);bottom:var(--vlist-custom-scrollbar-padding-bottom);width:var(--vlist-custom-scrollbar-width);background-color:var(--vlist-custom-scrollbar-track-color);opacity:0;transition:opacity 0.2s ease-out;z-index:10;pointer-events:none}.vlist-scrollbar-hover{position:absolute;top:0;right:0;height:100%;z-index:9;pointer-events:auto}.vlist-scrollbar-hover--horizontal{top:auto;right:auto;bottom:0;left:0;width:100%;height:auto}.vlist-scrollbar--visible{opacity:1;pointer-events:auto}.vlist-scrollbar-thumb{position:absolute;top:0;left:0;right:0;width:100%;background-color:var(--vlist-custom-scrollbar-thumb-color);border-radius:var(--vlist-custom-scrollbar-radius);cursor:pointer;transition:background-color 0.15s ease-out}.vlist-scrollbar-thumb:hover{background-color:var(--vlist-custom-scrollbar-thumb-hover-color)}.vlist-scrollbar--dragging{opacity:1;pointer-events:auto}.vlist-scrollbar--dragging .vlist-scrollbar-thumb{background-color:var(--vlist-custom-scrollbar-thumb-hover-color)}.vlist-group-header{cursor:default;background-color:var(--vlist-group-header-bg,#f3f4f6);border-bottom:1px solid var(--vlist-border);z-index:1;overflow:hidden}.vlist-group-header:hover{background-color:var(--vlist-group-header-bg,#f3f4f6)}.vlist-sticky-header{left:0;right:0;background-color:var(--vlist-group-header-bg,#f3f4f6);border-bottom:1px solid var(--vlist-border)}.vlist--horizontal{overflow:hidden}.vlist--horizontal .vlist-viewport{overflow-x:auto;overflow-y:hidden}.vlist--horizontal .vlist-content{height:100%;width:auto}.vlist--horizontal .vlist-items{height:100%;width:auto}.vlist--horizontal .vlist-item,.vlist--horizontal .vlist-group-header{position:absolute;top:0;bottom:0;left:0;right:auto;display:flex;align-items:center;justify-content:center;border-bottom:none;border-right:1px solid var(--vlist-border)}.vlist-scrollbar--horizontal{top:auto;left:var(--vlist-custom-scrollbar-padding-left);right:var(--vlist-custom-scrollbar-padding-right);bottom:var(--vlist-custom-scrollbar-padding-bottom);width:auto;height:var(--vlist-custom-scrollbar-width)}.vlist-scrollbar--horizontal .vlist-scrollbar-thumb{top:0;left:0;width:auto;height:100%}.vlist-viewport--gutter{padding-right:calc( var(--vlist-custom-scrollbar-padding-right) + var(--vlist-custom-scrollbar-width) + var(--vlist-custom-scrollbar-padding-left) )}.vlist--horizontal .vlist-viewport--gutter{padding-right:0;padding-bottom:calc( var(--vlist-custom-scrollbar-padding-bottom) + var(--vlist-custom-scrollbar-width) + var(--vlist-custom-scrollbar-padding-top) )}.vlist-viewport--custom-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.vlist-viewport--custom-scrollbar::-webkit-scrollbar{display:none}.vlist-viewport--no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.vlist-viewport--no-scrollbar::-webkit-scrollbar{display:none}.vlist-viewport--gutter-stable{scrollbar-gutter:stable}.vlist-sort-ghost{opacity:0.85;box-shadow:0 4px 16px rgba(0,0,0,0.18);cursor:grabbing}.vlist-item--drag-source{opacity:0 !important;pointer-events:none}.vlist--sorting{cursor:grabbing;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.vlist-item--kb-sorting{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;background-color:var(--vlist-bg-selected);z-index:1}
1
+ @keyframes vlist-fade-in{from{opacity:0.6}to{opacity:1}}@keyframes vlist-placeholder-pulse{0%,100%{opacity:0.6}50%{opacity:0.4}}:root{--vlist-scrollbar-width:8px;--vlist-scrollbar-track-color:transparent;--vlist-scrollbar-radius:4px;--vlist-custom-scrollbar-width:8px;--vlist-custom-scrollbar-track-color:transparent;--vlist-custom-scrollbar-radius:4px;--vlist-custom-scrollbar-padding-top:2px;--vlist-custom-scrollbar-padding-right:2px;--vlist-custom-scrollbar-padding-bottom:2px;--vlist-custom-scrollbar-padding-left:2px;--vlist-custom-scrollbar-min-thumb-size:15px;--vlist-item-padding-x:1rem;--vlist-item-padding-y:0.75rem;--vlist-border-radius:0.5rem;--vlist-transition-duration:150ms;--vlist-transition-timing:ease-in-out;--vlist-bg:#ffffff;--vlist-bg-hover:rgba(0,0,0,0.04);--vlist-bg-striped:rgba(0,0,0,0.02);--vlist-bg-selected:rgba(59,130,246,0.12);--vlist-bg-selected-hover:rgba(59,130,246,0.18);--vlist-border:#e5e7eb;--vlist-border-selected:#3b82f6;--vlist-text:#111827;--vlist-text-muted:#6b7280;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#f3f4f6;--vlist-scrollbar-thumb-color:#d1d5db;--vlist-scrollbar-thumb-hover-color:#9ca3af;--vlist-custom-scrollbar-thumb-color:rgba(0,0,0,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(0,0,0,0.3);--vlist-placeholder-bg:rgba(0,0,0,0.2)}[data-theme-mode="dark"]{--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]){--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}}.dark{--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}.vlist{position:relative;width:100%;height:100%;box-sizing:border-box;overflow:hidden;background-color:var(--vlist-bg);color:var(--vlist-text);color-scheme:light;border:1px solid var(--vlist-border);border-radius:var(--vlist-border-radius);outline:none}[data-theme-mode="dark"] .vlist,.dark .vlist{color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]) .vlist{color-scheme:dark}}.vlist:focus,.vlist:focus-visible{outline:none}.vlist-viewport{width:100%;height:100%;overflow:auto;scrollbar-color:var(--vlist-scrollbar-thumb-color) var(--vlist-scrollbar-track-color)}@supports (-moz-appearance:none) and (scrollbar-width:1px){.vlist-viewport{scrollbar-width:var(--vlist-scrollbar-width)}}.vlist-viewport::-webkit-scrollbar{width:var(--vlist-scrollbar-width);height:var(--vlist-scrollbar-width)}.vlist-viewport::-webkit-scrollbar-track{background:var(--vlist-scrollbar-track-color)}.vlist-viewport::-webkit-scrollbar-thumb{background-color:var(--vlist-scrollbar-thumb-color);border-radius:var(--vlist-scrollbar-radius)}.vlist-viewport::-webkit-scrollbar-thumb:hover{background-color:var(--vlist-scrollbar-thumb-hover-color)}.vlist-content{position:relative;width:100%}.vlist-items{position:relative;width:100%;contain:layout style}.vlist-item,.vlist-group-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;background-color:var(--vlist-bg);cursor:default;user-select:none;opacity:1;transition:background-color var(--vlist-transition-duration) var(--vlist-transition-timing),opacity var(--vlist-transition-duration) var(--vlist-transition-timing);contain:content;box-sizing:border-box;will-change:transform}.vlist--scrolling .vlist-item,.vlist--settling .vlist-item,.vlist--scrolling .vlist-group-header,.vlist--settling .vlist-group-header{transition:none}.vlist--selectable .vlist-item{cursor:pointer}.vlist--selectable .vlist-item:hover{background-color:var(--vlist-bg-hover)}.vlist-item.vlist-item--odd{background:var(--vlist-bg-striped)}.vlist-item.vlist-item--selected{background-color:var(--vlist-bg-selected)}.vlist-item.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected)}.vlist-item.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover)}.vlist-item.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover)}.vlist-item.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-item--replaced{animation:vlist-fade-in 0.3s ease-out}.vlist-item--placeholder{opacity:0.6;animation:vlist-placeholder-pulse 2s ease-in-out infinite}.vlist-item.vlist-item--selected.vlist-item--focused{outline-color:var(--vlist-border-selected)}.vlist-scrollbar{position:absolute;top:var(--vlist-custom-scrollbar-padding-top);right:var(--vlist-custom-scrollbar-padding-right);bottom:var(--vlist-custom-scrollbar-padding-bottom);width:var(--vlist-custom-scrollbar-width);background-color:var(--vlist-custom-scrollbar-track-color);opacity:0;transition:opacity 0.2s ease-out;z-index:10;pointer-events:none}.vlist-scrollbar-hover{position:absolute;top:0;right:0;height:100%;z-index:9;pointer-events:auto}.vlist-scrollbar-hover--horizontal{top:auto;right:auto;bottom:0;left:0;width:100%;height:auto}.vlist-scrollbar--visible{opacity:1;pointer-events:auto}.vlist-scrollbar-thumb{position:absolute;top:0;left:0;right:0;width:100%;background-color:var(--vlist-custom-scrollbar-thumb-color);border-radius:var(--vlist-custom-scrollbar-radius);cursor:pointer;transition:background-color 0.15s ease-out}.vlist-scrollbar-thumb:hover{background-color:var(--vlist-custom-scrollbar-thumb-hover-color)}.vlist-scrollbar--dragging{opacity:1;pointer-events:auto}.vlist-scrollbar--dragging .vlist-scrollbar-thumb{background-color:var(--vlist-custom-scrollbar-thumb-hover-color)}.vlist-group-header{cursor:default;background-color:var(--vlist-group-header-bg,#f3f4f6);z-index:1;overflow:hidden}.vlist-group-header:hover{background-color:var(--vlist-group-header-bg,#f3f4f6)}.vlist-sticky-header{left:0;right:0;background-color:var(--vlist-group-header-bg,#f3f4f6)}.vlist--horizontal{overflow:hidden}.vlist--horizontal .vlist-viewport{overflow-x:auto;overflow-y:hidden}.vlist--horizontal .vlist-content{height:100%;width:auto}.vlist--horizontal .vlist-items{height:100%;width:auto}.vlist--horizontal .vlist-item,.vlist--horizontal .vlist-group-header{position:absolute;top:0;bottom:0;left:0;right:auto;display:flex;align-items:center;justify-content:center;border-bottom:none;border-right:1px solid var(--vlist-border)}.vlist-scrollbar--horizontal{top:auto;left:var(--vlist-custom-scrollbar-padding-left);right:var(--vlist-custom-scrollbar-padding-right);bottom:var(--vlist-custom-scrollbar-padding-bottom);width:auto;height:var(--vlist-custom-scrollbar-width)}.vlist-scrollbar--horizontal .vlist-scrollbar-thumb{top:0;left:0;width:auto;height:100%}.vlist-viewport--gutter{padding-right:calc( var(--vlist-custom-scrollbar-padding-right) + var(--vlist-custom-scrollbar-width) + var(--vlist-custom-scrollbar-padding-left) )}.vlist--horizontal .vlist-viewport--gutter{padding-right:0;padding-bottom:calc( var(--vlist-custom-scrollbar-padding-bottom) + var(--vlist-custom-scrollbar-width) + var(--vlist-custom-scrollbar-padding-top) )}.vlist-viewport--custom-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.vlist-viewport--custom-scrollbar::-webkit-scrollbar{display:none}.vlist-viewport--no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.vlist-viewport--no-scrollbar::-webkit-scrollbar{display:none}.vlist-viewport--gutter-stable{scrollbar-gutter:stable}.vlist-sort-ghost{opacity:0.85;box-shadow:0 4px 16px rgba(0,0,0,0.18);cursor:grabbing}.vlist-item--drag-source{opacity:0 !important;pointer-events:none}.vlist--sorting{cursor:grabbing;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.vlist-item--kb-sorting{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;background-color:var(--vlist-bg-selected);z-index:1}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vlist",
3
- "version": "1.7.6",
3
+ "version": "1.7.7",
4
4
  "description": "Lightweight, high-performance virtual list with zero dependencies",
5
5
  "author": {
6
6
  "name": "Floor IO",