vlist 1.8.0 → 1.8.2

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
@@ -1,17 +1,17 @@
1
1
  # vlist
2
2
 
3
- The virtual list library for every framework. Accessible by default, batteries-included, with composable features — in 10.8 KB.
3
+ The virtual list library for every framework. Accessible by default, batteries-included, with composable features — in 11.0 KB.
4
4
 
5
- **v1.8.0** — [Changelog](./CHANGELOG.md)
5
+ **v1.8.2** — [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)
9
9
  [![license](https://img.shields.io/npm/l/vlist.svg)](https://github.com/floor/vlist/blob/main/LICENSE)
10
10
 
11
- - **New: 10.8 KB base** — optimized from 11.2 KB, every feature bundle reduced
11
+ - **New: 11.0 KB base** — optimized from 11.2 KB, every feature bundle reduced
12
12
  - **Accessible** — WAI-ARIA, 2D keyboard navigation, focus recovery, screen-reader DOM ordering, ARIA live region
13
13
  - **Zero dependencies** — framework-agnostic core with tiny adapters for Vue, Svelte, Solid, React
14
- - **10.8 KB gzipped** — composable features with perfect tree-shaking
14
+ - **11.0 KB gzipped** — composable features with perfect tree-shaking
15
15
  - **Constant memory** — ~0.1 MB overhead at any scale, from 10K to 1M+ items
16
16
  - **Grid, masonry, table, groups, async, selection, sortable, scale** — all opt-in
17
17
  - **Vertical & horizontal** — single axis-neutral code path, every feature works in both orientations
@@ -94,13 +94,13 @@ const list = vlist({
94
94
 
95
95
  | Feature | Size | Description |
96
96
  |---------|------|-------------|
97
- | **Base** | 10.8 KB | Virtualization, ARIA, keyboard nav, gap, padding |
98
- | `withAsync()` | +4.4 KB | Lazy loading with velocity-aware fetching |
97
+ | **Base** | 11.0 KB | Virtualization, ARIA, keyboard nav, gap, padding |
98
+ | `withAsync()` | +4.5 KB | Lazy loading with velocity-aware fetching |
99
99
  | `withSelection()` | +3.0 KB | Single/multiple selection with 2D keyboard nav |
100
100
  | `withScale()` | +3.6 KB | 1M+ items via scroll compression |
101
101
  | `withGroups()` | +4.5 KB | Sticky/inline headers with async group discovery |
102
102
  | `withAutoSize()` | +0.9 KB | Auto-measure items via ResizeObserver |
103
- | `withScrollbar()` | +1.8 KB | Custom scrollbar UI |
103
+ | `withScrollbar()` | +1.9 KB | Custom scrollbar UI |
104
104
  | `withGrid()` | +4.1 KB | 2D grid layout |
105
105
  | `withMasonry()` | +3.5 KB | Pinterest-style masonry with lane-aware keyboard nav |
106
106
  | `withTable()` | +5.8 KB | Data table with columns, resize, sort |
package/README.md CHANGED
@@ -1,17 +1,17 @@
1
1
  # vlist
2
2
 
3
- The virtual list library for every framework. Accessible by default, batteries-included, with composable features — in 10.8 KB.
3
+ The virtual list library for every framework. Accessible by default, batteries-included, with composable features — in 11.0 KB.
4
4
 
5
- **v1.8.0** — [Changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md)
5
+ **v1.8.2** — [Changelog](https://github.com/floor/vlist/blob/main/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)
9
9
  [![license](https://img.shields.io/npm/l/vlist.svg)](https://github.com/floor/vlist/blob/main/LICENSE)
10
10
 
11
- - **New: 10.8 KB base** — optimized from 11.2 KB, every feature bundle reduced
11
+ - **New: 11.0 KB base** — optimized from 11.2 KB, every feature bundle reduced
12
12
  - **Zero dependencies** — framework-agnostic core, tiny adapters for Vue, Svelte, Solid, React
13
13
  - **Accessible** — WAI-ARIA, 2D keyboard navigation, focus recovery, screen-reader DOM ordering
14
- - **10.8 KB gzipped** — composable features with perfect tree-shaking
14
+ - **11.0 KB gzipped** — composable features with perfect tree-shaking
15
15
  - **Constant memory** — ~0.1 MB overhead at any scale, from 10K to 1M+ items
16
16
  - **Vertical & horizontal** — single axis-neutral code path, every feature works in both orientations
17
17
 
@@ -56,13 +56,13 @@ const list = vlist({ container: '#app', items, item: { height: 200, template: re
56
56
 
57
57
  | Feature | Size | Description |
58
58
  |---------|------|-------------|
59
- | **Base** | 10.8 KB | Virtualization, ARIA, keyboard nav, gap, padding |
60
- | `withAsync()` | +4.4 KB | Lazy loading with velocity-aware fetching |
59
+ | **Base** | 11.0 KB | Virtualization, ARIA, keyboard nav, gap, padding |
60
+ | `withAsync()` | +4.5 KB | Lazy loading with velocity-aware fetching |
61
61
  | `withSelection()` | +3.0 KB | Single/multiple selection with 2D keyboard nav |
62
62
  | `withScale()` | +3.6 KB | 1M+ items via scroll compression |
63
63
  | `withGroups()` | +4.5 KB | Sticky/inline headers with async group discovery |
64
64
  | `withAutoSize()` | +0.9 KB | Auto-measure items via ResizeObserver |
65
- | `withScrollbar()` | +1.8 KB | Custom scrollbar UI |
65
+ | `withScrollbar()` | +1.9 KB | Custom scrollbar UI |
66
66
  | `withGrid()` | +4.1 KB | 2D grid layout |
67
67
  | `withMasonry()` | +3.5 KB | Pinterest-style masonry with lane-aware keyboard nav |
68
68
  | `withTable()` | +5.8 KB | Data table with columns, resize, sort |
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var K1=2,N1=(J=0)=>({velocity:0,sampleCount:0}),W1=(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 jJ=(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}},YJ=(J,q)=>{let j=q,Q=new Float64Array(0),X=(N)=>{j=N,Q=new Float64Array(N+1),Q[0]=0;for(let B=0;B<N;B++)Q[B+1]=Q[B]+J(B)};X(q);let Y=(N)=>{if(j===0)return 0;if(N<=0)return 0;if(N>=Q[j])return j-1;let B=0,K=j-1;while(B<K){let Z=B+K+1>>>1;if(Q[Z]<=N)B=Z;else K=Z-1}return B};return{getOffset:(N)=>{if(N<=0)return 0;if(N>=j)return Q[j];return Q[N]},getSize:(N)=>J(N),indexAtOffset:(N)=>Y(N),getTotalSize:()=>Q[j]??0,getTotal:()=>j,rebuild:(N)=>X(N),isVariable:()=>!0}},i0=(J,q)=>{if(typeof J==="number")return jJ(J,q);return YJ(J,q)};var B1=()=>{let J={},q=(Y,N)=>{if(!J[Y])J[Y]=new Set;return J[Y].add(N),()=>j(Y,N)},j=(Y,N)=>{J[Y]?.delete(N)};return{on:q,off:j,emit:(Y,N)=>{J[Y]?.forEach((B)=>{try{B(N)}catch(K){console.error(`[vlist] Error in event handler for "${String(Y)}":`,K)}})},clear:(Y)=>{if(Y)delete J[Y];else for(let N in J)delete J[N]}}};var _1=(J)=>{if(typeof J==="string"){let q=document.querySelector(J);if(!q)throw Error(`[vlist] Container not found: ${J}`);return q}return J},K2=(J,q)=>{let j=document.createElement("div");if(j.className=J,q)j.style.cssText=q;return j},V1=(J,q,j,Q,X)=>{let Y=Q,N=K2(q);if(Y)N.classList.add(`${q}--horizontal`);let B=K2(`${q}-viewport`,Y?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");B.setAttribute("tabindex","-1");let K=K2(`${q}-content`,Y?"position:relative;height:100%":"position:relative;width:100%"),Z=K2(`${q}-items`,Y?"position:relative;height:100%":"position:relative;width:100%");if(Z.setAttribute("role",X!==!1?"listbox":"list"),X!==!1)Z.setAttribute("tabindex","0");if(j)Z.setAttribute("aria-label",j);if(Y)Z.setAttribute("aria-orientation","horizontal");let O=K2(`${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 O.setAttribute("aria-live","polite"),O.setAttribute("aria-atomic","true"),O.setAttribute("role","status"),K.appendChild(Z),B.appendChild(K),N.appendChild(O),N.appendChild(B),J.appendChild(N),{root:N,viewport:B,content:K,items:Z,liveRegion:O}};var D1=(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 M1=(J,q,j,Q,X)=>{if(Q===0||q===0){X.start=0,X.end=-1;return}let Y=j.indexAtOffset(J),N=j.indexAtOffset(J+q);if(N<Q-1)N++;X.start=Math.max(0,Y),X.end=Math.min(Q-1,Math.max(0,N))},G1=(J,q,j,Q)=>{Q.start=Math.max(0,J.start-q),Q.end=Math.min(j-1,J.end+q)},O1=(J,q,j,Q,X,Y=0)=>{if(Q===0)return 0;let N=Math.max(0,Math.min(J,Q-1)),B=q.getOffset(N),K=q.getSize(N),Z=q.getTotalSize(),O=Math.max(0,Z+Y-j),A;switch(X){case"center":A=B-(j-K)/2;break;case"end":A=Y>0&&B+K>=Z?O:B-j+K;break;default:A=B}return Math.max(0,Math.min(A,O))};var E2={top:0,right:0,bottom:0,left:0},u0=(J)=>{if(J==null)return E2;if(typeof J==="number")return J===0?E2:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[Y,N]=J;return Y===0&&N===0?E2:{top:Y,right:N,bottom:Y,left:N}}let[q,j,Q,X]=J;return q===0&&j===0&&Q===0&&X===0?E2:{top:q,right:j,bottom:Q,left:X}},e0=(J,q)=>q?J.left+J.right:J.top+J.bottom,L2=(J,q)=>q?J.top+J.bottom:J.left+J.right;var J2=(J,q,j)=>{let Q=Array.from(q).sort((N,B)=>N-B);if(Q.length<=1)return;let X=[];for(let N=0;N<Q.length;N++){let B=j(Q[N]);if(B)X.push(B)}if(X.length<=1)return;let Y=J.firstChild;for(let N=0;N<X.length;N++){let B=X[N];if(B===Y)Y=Y.nextSibling;else J.insertBefore(B,Y)}};var A1=(J,q)=>{let{dom:j,emitter:Q,resolvedConfig:X,rawConfig:Y,rendered:N,pool:B,sharedState:K,isHorizontal:Z,classPrefix:O,contentSizeHandlers:A,idleHandlers:k,afterScroll:G,clickHandlers:D,contextMenuHandlers:R,keydownHandlers:F,resizeHandlers:T,destroyHandlers:L,methods:S,onScrollFrame:C,resizeObserver:g,renderRange:r,afterRenderBatch:P}=q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return X},get rawConfig(){return Y},adjustScrollPosition(V){if(J.mp===0)return V;let h=Z?J.cw:J.ch,s=J.hc.getTotalSize(),x=Math.max(0,s-h),o=Math.max(0,s+J.mp-h);if(V>=x)return o;return Math.min(V,o)},get renderer(){return{render:(V,h,s,x,o)=>{J.ss=s,J.fi=x,J.ffn()},updateItemClasses:(V,h,s)=>{J.uic(V,h,s)},updatePositions:()=>{},updateItem:()=>{},getElement:(V)=>N.get(V)??null,clear:()=>{},destroy:()=>{}}},set renderer(V){},get dataManager(){return J.dm},set dataManager(V){J.dm=V},get scrollController(){return J.sc},set scrollController(V){J.sc=V},state:K,getContainerWidth(){return J.cw},afterScroll:G,idleHandlers:k,afterRenderBatch:P,clickHandlers:D,contextMenuHandlers:R,keydownHandlers:F,resizeHandlers:T,contentSizeHandlers:A,destroyHandlers:L,methods:S,replaceTemplate(V){J.at=V},replaceRenderer(V){},replaceDataManager(V){J.dm=V},replaceScrollController(V){J.sc=V},getItemsForRange(V){let{dm:h,it:s}=J,x=[];for(let o=V.start;o<=V.end;o++){let X0=h?h.getItem(o):s[o];if(X0)x.push(X0)}return x},getAllLoadedItems(){let V=J.dm;if(V){let h=V.getTotal(),s=[];for(let x=0;x<h;x++){let o=V.getItem(x);if(o)s.push(o)}return s}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let V=J.hc;return{isCompressed:!1,actualSize:V.getTotalSize(),virtualSize:V.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:r.start,compression:K.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,V]of N)V.remove(),B.release(V);N.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(V,h){J.rfn=V,J.ffn=h},setVirtualTotalFn(V){J.vtf=V},rebuildSizeCache(V){J.hc.rebuild(V??J.vtf())},setSizeConfig(V){if(J.hc=i0(V,J.vtf()),J.gp>0){let h=J.hc.getTotalSize,s=J.gp;J.hc.getTotalSize=()=>{let x=h();return x>0?x-s:0}}},updateContentSize(V){let h=`${V+J.mp}px`;if(Z)j.content.style.width=h;else j.content.style.height=h},updateCompressionMode(){for(let V=0;V<A.length;V++)A[V]()},setVisibleRangeFn(V){J.gvr=V},getVisibleRange(V,h,s,x){J.gvr(V,h,J.hc,s,x)},setScrollToPosFn(V){J.gsp=V},getScrollToPos(V,h,s,x){return J.gsp(V,J.hc,h,s,x)},setPositionElementFn(V){J.pef=V},setScrollFns(V,h){J.sgt=V,J.sst=(s)=>{h(s),C()}},triggerScrollFrame(){C()},setScrollTarget(V){J.st.removeEventListener("scroll",C),J.st=V,J.st.addEventListener("scroll",C,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(V){J.gcw=V.width,J.gch=V.height,J.cw=V.width(),J.ch=V.height(),K.viewportState.containerSize=Z?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,g.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(V){J.sif=V},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(V){J.i2s=V},setUpdateItemClassesFn(V){J.uic=V}}},E1=(J,q,j)=>{let{rendered:Q,itemState:X,applyTemplate:Y,updateContentSize:N}=q,B=()=>{J.hc.rebuild(J.vtf()),N(),j.updateCompressionMode(),J.ffn()},K=()=>J.it.length;return{getState:()=>({total:K(),cached:K(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:K,getCached:K,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(Z)=>J.it[Z],isItemLoaded:(Z)=>Z>=0&&Z<K()&&J.it[Z]!==void 0,getItemsInRange:(Z,O)=>{let A=[];for(let k=Math.max(0,Z),G=Math.min(O,K()-1);k<=G;k++)A.push(J.it[k]);return A},setTotal:()=>{},setItems:(Z,O=0,A)=>{if(O===0&&(A!==void 0||K()===0))J.it=Z;else{let k=O+Z.length;if(K()<k)J.it.length=k;for(let G=0;G<Z.length;G++)J.it[O+G]=Z[G]}if(J.ii)B()},updateItem:(Z,O)=>{let A=J.it;if(Z<0||Z>=A.length)return!1;let k=A[Z];if(!k)return!1;A[Z]={...k,...O};let G=Q.get(Z);if(G)Y(G,J.at(A[Z],Z,X)),G.dataset.id=String(A[Z].id);return!0},removeItem:(Z)=>{let O=typeof Z==="number"?Z:J.it.findIndex((A)=>A.id===Z);if(O<0||O>=J.it.length)return!1;if(J.it.splice(O,1),J.ii)B();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),N(),J.ffn()}}},L1=(J,q)=>{let{dom:j,classPrefix:Q,onScrollFrame:X}=q;return{getScrollTop:()=>J.sgt(),scrollTo:(Y)=>{J.sst(Y),X()},scrollBy:(Y)=>{let N=J.sgt()+Y;J.sst(N),X()},isAtTop:()=>J.ls<=2,isAtBottom:(Y=2)=>J.sab(Y),getScrollPercentage:()=>{let Y=J.hc.getTotalSize(),N=Math.max(0,Y-J.ch);return N>0?J.ls/N: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 N2=(J,q,j,Q,X=0,Y=0)=>{let N=q.getOffset(J),B=q.getSize(J),K=N+X,Z=K+B,O=j+Q;if(K<j)return Math.max(0,N);if(Z>O)return Z+Y-Q;return j},F2=(J,q,j,Q,X=0,Y=0,N,B,K)=>{if(!(N!=null&&N.isCompressed&&N.ratio!==1))return N2(J,q,j,Q,X,Y);let{virtualSize:O}=N,A=q.getSize(Math.max(0,J)),k=Q-X-Y,G=Math.max(1,Math.floor(k/A)),D=q.getTotalSize();if(K){if(J>=K.start+G){let L=q.getOffset(J)+A+Y-Q;return Math.max(0,L/D*O)}if(J<=K.start){let T=q.getOffset(J)-X;return Math.max(0,T/D*O)}return j}let R=j/O*B,F=R+G;if(J>=F){let L=q.getOffset(J)+A+Y-Q;return Math.max(0,L/D*O)}if(J<R){let T=q.getOffset(J)-X;return Math.max(0,T/D*O)}return j};var F1=(J,q,j,Q,X,Y,N,B,K,Z,O,A,k,G)=>{let D=`${j}-item--focused`,R=!1,F=()=>{let h=K.get("_getNavTotal");return h?h():J.vtf()},T=()=>{let h=K.get("_getNavDelta");return h?h():{ud:1,lr:0,cols:0}};K.set("_getFocusedIndex",()=>R?J.fi:-1);let L=()=>q.root.getAttribute("role")==="grid"?q.root:q.items,S=(h,s=!0)=>{if(L().setAttribute("aria-activedescendant",`${Q}-item-${h}`),s){let x=K.get("_scrollItemIntoView");if(x)x(h);else{let o=X?J.cw:J.ch,X0=J.i2s(h),n=N2(X0,J.hc,J.ls,o,Y,N);if(n!==J.ls)J.sst(n),J.ls=J.sgt()}}J.ffn()},C=(h)=>{J.fi=h,R=!0,S(h)},g=(h,s)=>{if(J.fi=h,s||G)R=!0;let x=J.dm?J.dm.getItem(h):J.it[h];if(x&&J.ss.has(x.id))J.ss.clear();else if(J.ss.clear(),x)J.ss.add(x.id);S(h,s)},r=(h,s,x)=>{let o=h;while(o>=0&&o<x){let X0=J.dm?J.dm.getItem(o):J.it[o];if(!X0||!X0.__groupHeader)return o;o+=s}o=h-s;while(o>=0&&o<x){let X0=J.dm?J.dm.getItem(o):J.it[o];if(!X0||!X0.__groupHeader)return o;o-=s}return h},P=()=>{if(J.id)return;if(!L().matches(":focus-visible")&&!q.root.matches(":focus-visible"))return;let s=F();if(s===0)return;let x=J.fi>=0?Math.min(J.fi,s-1):0;x=r(x,1,s),C(x)};q.root.addEventListener("focusin",P);let V=(h)=>{if(J.id)return;let s=h.relatedTarget;if(s&&q.root.contains(s))return;if(R=!1,J.fi>=0)Z.get(J.fi)?.classList.remove(D);L().removeAttribute("aria-activedescendant")};q.root.addEventListener("focusout",V),O.push((h)=>{if(J.id)return;let s=F();if(s===0)return;let x=J.fi,o=x;if(h.key===" "||h.key==="Enter"){if(x>=0){let n=J.dm?J.dm.getItem(x):J.it[x];if(n&&!n.__groupHeader)g(x,!0)}h.preventDefault();return}let X0=K.get("_navigate");if(X0)switch(h.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":o=X0(x,h.key,s);break;default:return}else{let{ud:n,lr:$}=T();switch(h.key){case"ArrowUp":o=x-n;break;case"ArrowDown":o=x+n;break;case"ArrowLeft":if(!$)return;o=x-$;break;case"ArrowRight":if(!$)return;o=x+$;break;case"PageUp":case"PageDown":{let f=J.hc.getSize(J.i2s(Math.max(0,x))),W=Math.max(n,Math.floor((X?J.cw:J.ch)/f)*n),_=K.get("_layoutToDataIndex"),E=K.get("_dataToLayoutIndex");if(_&&E){let H=_(x),d=h.key==="PageUp"?-W:W,Q0=_(s-1);o=E(Math.max(0,Math.min(Q0,H+d)))}else o=h.key==="PageUp"?x-W:x+W;break}case"Home":o=0;break;case"End":o=s-1;break;default:return}if(o<0)o=B?s-1:0;else if(o>=s)o=B?0:s-1}if(h.preventDefault(),o=r(o,o>=x?1:-1,s),o!==x)C(o)}),A.push((h)=>{if(J.id)return;let s=h.target.closest("[data-index]");if(!s)return;let x=parseInt(s.dataset.index??"-1",10);if(x<0)return;let o=J.dm?.getItem(x)??J.it[x];if(!o||o.__groupHeader)return;R=!1,L().focus({preventScroll:!0}),g(x,!1)}),k.push(()=>{q.root.removeEventListener("focusin",P),q.root.removeEventListener("focusout",V)})};var Q2=(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 w2=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,l0=(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}},q2=(J,q)=>{let j=null,Q=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(Y,N,B)=>{if(Q(),Math.abs(N-Y)<1){J.scrollTo(N);return}let K=performance.now(),Z=(O)=>{let A=O-K,k=Math.min(A/B,1),G=Y+(N-Y)*w2(k);if(J.scrollTo(G),q(),k<1)j=requestAnimationFrame(Z);else j=null};j=requestAnimationFrame(Z)},cancelScroll:Q}};var T1=(J,q,j,Q,X,Y,N,B,K,Z,O,A,k,G,D,R,F,T,L)=>{let S=(b)=>{{if(!Array.isArray(b)){console.warn("[vlist] setItems() expects an array, got:",typeof b);return}if(b.length>0&&b[0]&&!("id"in b[0]))console.warn('[vlist] Items must have an "id" property. First item:',b[0]);let U=Math.min(b.length,1e4),z=new Set;for(let M=0;M<U;M++){let u=b[M];if(u&&"id"in u){if(z.has(u.id)){console.warn(`[vlist] Duplicate item ID "${u.id}" at index ${M}. updateItem() and removeItem() will only match the first occurrence.`);break}z.add(u.id)}}}_(),K.dataManager.setItems(b,0,b.length)},C=(b)=>{let U=Z&&J.sab(2);if(K.dataManager.setItems(b,J.it.length),U&&J.it.length>0){let z=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(z),J.ls=z,J.rfn()}},g=(b)=>{let U=Z?J.sgt():0,z=Z?J.hc.getTotalSize():0,M=[...J.it];if(K.dataManager.clear(),K.dataManager.setItems([...b,...M],0),Z){let u=J.hc.getTotalSize()-z;if(u>0)J.sst(U+u),J.ls=U+u}},r=null,P=null,V=null,h=!1,s=()=>{if(h)return;h=!0,r=Y.get("_updateRenderedItem")??null,P=Y.get("_getSelectedIds")??null,V=Y.get("_getFocusedIndex")??null},x=(b,U)=>{{let M=J.vtf();if(b<0||b>=M)console.warn(`[vlist] updateItem() index ${b} is out of range (0–${M-1}).`)}if(K.dataManager.updateItem(b,U),s(),!r)return;let z=K.dataManager.getItem(b);if(z){let u=(P?P():J.ss).has(z.id),v=(V?V():J.fi)===b;r(b,z,u,v)}},o=!1,X0=(b)=>{let U=typeof document<"u"?document.activeElement:null,z=U&&q.items.contains(U)?parseInt(U.dataset?.index??"-1",10):-1;if(!K.dataManager.removeItem(b))return console.warn(`[vlist] removeItem() could not find item with id "${b}".`),!1;if(j.emit("data:change",{type:"remove",id:b}),K.forceRender(),!o){let u=K.dataManager;if(typeof u.ensureRange==="function")o=!0,queueMicrotask(()=>{o=!1;let v=K.dataManager.getTotal(),{start:t,end:a}=K.state.viewportState.renderRange;if(v>0&&a>=t)u.ensureRange(t,a).catch(()=>{})})}if(z>=0){let u=J.vtf();if(u>0)Q.get(Math.min(z,u-1))?.focus()}return!0},n=(b)=>{return K.dataManager.getItem(b)},$=(b)=>{return K.dataManager.getIndexById?.(b)??-1},f=async(b)=>{if(K.dataManager.reload)await K.dataManager.reload()},W=null,_=()=>{if(W!==null)cancelAnimationFrame(W),W=null},E=(b,U,z,M)=>{if(_(),Math.abs(U-b)<1){J.sst(U),J.ls=U,J.rfn();return}let u=performance.now(),v=(t)=>{let a=t-u,Y0=Math.min(a/z,1),m=M?M():U,e=b+(m-b)*w2(Y0);if(J.sst(e),J.ls=e,J.rfn(),Y0<1)W=requestAnimationFrame(v);else W=null};W=requestAnimationFrame(v)},H=(b,U)=>{{let Y0=J.vtf();if(Y0>0&&(b<0||b>=Y0))console.warn(`[vlist] scrollToIndex(${b}) is out of range (0–${Y0-1}).`)}let{align:z,behavior:M,duration:u}=l0(U),v=J.vtf(),t=b;if(O&&v>0)t=(t%v+v)%v;let a=J.gsp(t,J.hc,J.ch,v,z);if(M==="smooth"){let Y0=t,m=z;E(J.sgt(),a,u,()=>J.gsp(Y0,J.hc,J.ch,J.vtf(),m))}else _(),J.sst(a)},d=()=>J.sgt(),Q0=(b,U)=>{return j.on(b,U)},c=(b,U)=>{j.off(b,U)},j0=()=>{if(J.id)return;if(J.id=!0,K.state.isDestroyed=!0,q.items.removeEventListener("click",A),q.items.removeEventListener("dblclick",k),q.items.removeEventListener("contextmenu",G),q.root.removeEventListener("keydown",D),J.st.removeEventListener("scroll",R),F.disconnect(),T(),J.wh)q.viewport.removeEventListener("wheel",J.wh);L();let b=[];for(let U=0;U<B.length;U++)try{B[U]()}catch(z){b.push(z instanceof Error?z:Error(String(z)))}for(let U of N)if(U.destroy)try{U.destroy()}catch(z){b.push(z instanceof Error?z:Error(String(z)))}_();for(let[,U]of Q)U.remove(),X.release(U);Q.clear(),X.clear(),j.emit("destroy",void 0);for(let U of b)j.emit("error",{error:U,context:"destroy"});j.clear(),q.root.remove()},w=(b,U)=>Y.has(b)?Y.get(b):U,I={get element(){return q.root},get items(){let b=Y.get("_getItems");return b?b():J.it},get total(){let b=Y.get("_getTotal");return b?b():J.vtf()},setItems:w("setItems",S),appendItems:w("appendItems",C),prependItems:w("prependItems",g),updateItem:w("updateItem",x),removeItem(b){let U=Y.get("removeItem");return U?U(b):X0(b)},reload:w("reload",f),getItemAt:n,getIndexById:$,scrollToIndex:w("scrollToIndex",H),cancelScroll:w("cancelScroll",_),getScrollPosition:w("getScrollPosition",d),on:Q0,off:c,destroy:j0};for(let[b,U]of Y){if(b.charCodeAt(0)===95||b==="setItems"||b==="appendItems"||b==="prependItems"||b==="updateItem"||b==="removeItem"||b==="reload"||b==="scrollToIndex"||b==="scrollToItem"||b==="cancelScroll"||b==="getScrollPosition")continue;I[b]=U}return I};var XJ=3,UJ="vlist",ZJ=150,KJ=16000000,NJ=4096,W2="__placeholder_",WJ=(J)=>(typeof screen<"u"?J?screen.width:screen.height:0)||NJ,BJ=0,z2=(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 N=new Map,B=!1,K={use(Z){if(B)throw Error("[vlist] Cannot call .use() after .build()");return N.set(Z.name,Z),K},build(){if(B)throw Error("[vlist] .build() can only be called once");return B=!0,_J(J,N,q,X,Y??null)}};return K};function _J(J,q,j,Q,X){let{item:Y,items:N,overscan:B=XJ,classPrefix:K=UJ,ariaLabel:Z,accessibility:O,padding:A,reverse:k=!1,scroll:G,accessible:D,interactive:R}=J,F=R??D??!0,T=G,L=T?.wheel??!0,S=T?.wrap??!1,C=O?.announceVisibleRange??!1,g=O?.rangeAnnouncementDebounce??750,r=k,P=`${K}-${BJ++}`,V=q.has("withGrid")||q.has("withMasonry")?0:Y.gap??0,h=Q??X,s=Q==null&&X!=null,x=j?typeof Y.height==="number"?Y.height:void 0:typeof Y.width==="number"?Y.width:void 0,o={overscan:B,classPrefix:K,reverse:r,wrap:S,horizontal:j,ariaIdPrefix:P,interactive:F},X0=WJ(j),n=Array.from(q.values()).sort((l,Z0)=>(l.priority??50)-(Z0.priority??50)),$=new Set(n.map((l)=>l.name));for(let l of n)if(l.conflicts){for(let Z0 of l.conflicts)if($.has(Z0))throw Error(`[vlist] ${l.name} and ${Z0} cannot be combined`)}if(r){if($.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let f=_1(J.container),W=V1(f,K,Z,j,F);if(T?.wheel===!1)if(j)W.viewport.style.overflowX="hidden";else W.viewport.style.overflow="hidden";if(T?.scrollbar==="none")W.viewport.classList.add(`${K}-viewport--no-scrollbar`);if(T?.gutter==="stable")W.viewport.classList.add(`${K}-viewport--gutter-stable`);let _=$.has("withGrid")||$.has("withMasonry");if(j&&x!=null&&T?.scrollbar!=="none"&&!_){W.root.style.height=`${x}px`;let l=W.viewport.style.overflowX;W.viewport.style.overflowX="scroll";let Z0=W.viewport.offsetHeight-W.viewport.clientHeight;if(W.viewport.style.overflowX=l,Z0>0)W.root.style.height=`${x+Z0}px`}let E=u0(A),H=e0(E,j);if(E.top||E.right||E.bottom||E.left)W.content.style.boxSizing="border-box",W.content.style.padding=`${E.top}px ${E.right}px ${E.bottom}px ${E.left}px`;let d=B1(),Q0=N||[],c=typeof h==="function"&&(q.has("withGrid")||q.has("withMasonry")),j0=V>0?typeof h==="function"?(l)=>h(l)+V:h+V:h,w=s?X+V:j0,I=i0(w,c?0:Q0.length);if(V>0){let l=I.getTotalSize;I.getTotalSize=()=>{let Z0=l();return Z0>0?Z0-V:0}}let b=D1(),U={it:Q0,hc:I,ch:Math.min(W.viewport.clientHeight,X0),cw:Math.min(W.viewport.clientWidth,X0),id:!1,ii:!1,ls:0,vt:N1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>W.viewport.scrollLeft:()=>W.viewport.scrollTop,sst:j?(l)=>{W.viewport.scrollLeft=l}:(l)=>{W.viewport.scrollTop=l},sab:(l=2)=>{let Z0=U.hc.getTotalSize();return U.ls+U.ch>=Z0-l},sic:!1,rfn:null,ffn:null,gvr:(l,Z0,K0,A0,y0)=>{M1(l,Z0,K0,A0,y0)},gsp:(l,Z0,K0,A0,y0)=>{return O1(l,Z0,K0,A0,y0,U.mp)},pef:null,at:Y.template,vre:!0,st:W.viewport,wh:null,gcw:()=>U.cw,gch:()=>U.ch,gp:V,mp:H,sif:(l)=>l,i2s:(l)=>l,uic:(l,Z0,K0)=>{let A0=m.get(l);if(!A0)return;U0(A0,Z0,K0)},csi:null};U.vtf=()=>U.dm?U.dm.getTotal():U.it.length;let z=null,M=!1,u={start:0,end:0},v={start:0,end:0},t={start:-1,end:-1},a={viewportState:{scrollPosition:0,containerSize:j?U.cw:U.ch,totalSize:U.hc.getTotalSize(),actualSize:U.hc.getTotalSize(),isCompressed:!1,compressionRatio:1,visibleRange:{start:0,end:0},renderRange:{start:0,end:0}},lastRenderRange:{start:-1,end:-1},isInitialized:!1,isDestroyed:!1,cachedCompression:null},Y0=()=>({...a.viewportState,totalItems:U.vtf()}),m=new Map,e=()=>{J2(W.items,m.keys(),(l)=>m.get(l))},y=()=>{let l=U.hc.getTotalSize(),K0=`${(U.sic?l:Math.min(l,KJ))+H}px`;if(j)W.content.style.width=K0;else W.content.style.height=K0},p={selected:!1,focused:!1},J0=`${K}-item`,i=`${K}-group-header`,_0=`${K}-item--selected`,W0=`${K}-item--focused`,U0=(l,Z0,K0)=>{l.classList.toggle(_0,Z0),l.classList.toggle(W0,K0),l.ariaSelected=Z0?"true":"false"},N0=(l,Z0,K0,A0)=>{if(K0)l.setAttribute("role","presentation"),l.removeAttribute("aria-selected"),l.removeAttribute("aria-setsize"),l.removeAttribute("aria-posinset"),l.removeAttribute("id");else if(F){if(l.setAttribute("role","option"),A0)l.ariaSelected="false",U.la=String(I0.getSetSize()),l.setAttribute("aria-setsize",U.la);l.id=`${P}-item-${Z0}`,l.setAttribute("aria-posinset",String(I0.getPosInSet(Z0)))}else{if(l.setAttribute("role","listitem"),l.removeAttribute("aria-selected"),A0)U.la=String(I0.getSetSize()),l.setAttribute("aria-setsize",U.la);l.setAttribute("aria-posinset",String(I0.getPosInSet(Z0)))}},M0=Y.striped,k0=!!M0,F0=M0==="data"||M0==="even"||M0==="odd",R0=`${K}-item--odd`,H0=`${K}-item--placeholder`,D0=`${K}-item--replaced`,E0=`${K}--scrolling`,P0=[],w0=[],f0=[],p0=[],h0=[],s0=[],X2=[],a0=[],o0=[],C0=new Map,q0=(l,Z0,K0)=>{if(String(K0).startsWith(W2))return;let A0=W2+Z0;if(l.has(A0))l.delete(A0),l.add(K0)},B0={scrollPosition:0,direction:"down"},V0={velocity:0,reliable:!1},G0={range:{start:0,end:0}},O0=null,T0=null,z0=!1,L0=!1,c0=()=>{if(z0)return;z0=!0,O0=C0.get("_getSelectedIds")??null,T0=C0.get("_getFocusedIndex")??null},I0=Q2(C0,U.vtf),D2=(l,Z0,K0)=>{if(!Z0)console.warn(`[vlist] Template returned falsy value${K0!==void 0?` for item at index ${K0}`:""}. The element will render as blank.`);else if(typeof Z0==="string"&&Z0==="")console.warn(`[vlist] Template returned empty string${K0!==void 0?` for item at index ${K0}`:""}. The element will render as blank.`);if(typeof Z0==="string")l.innerHTML=Z0;else l.replaceChildren(Z0)},a1=(l,Z0)=>{let K0=Math.round(U.hc.getOffset(Z0));if(j)l.style.transform=`translateX(${K0}px)`;else l.style.transform=`translateY(${K0}px)`};U.pef=a1;let o1=(l,Z0)=>{let K0=b.acquire(),A0=!!Z0.__groupHeader;K0.className=A0?i:J0;let y0=!U.csi||U.csi(l);if(j){if(y0)K0.style.width=`${U.hc.getSize(l)-V}px`;else K0.style.width="";if(x!=null)K0.style.height=`${x}px`}else if(y0)K0.style.height=`${U.hc.getSize(l)-V}px`;else K0.style.height="";if(K0.dataset.index=String(l),K0.dataset.id=String(Z0.id),N0(K0,l,A0,!0),String(Z0.id).startsWith(W2))K0.classList.add(H0);if(k0)if(F0){let b0=U.sif(l);if(b0<0)K0.classList.remove(R0);else K0.classList.toggle(R0,(b0&1)===1)}else K0.classList.toggle(R0,(l&1)===1);try{D2(K0,U.at(Z0,l,p),l)}catch(b0){let x0=b0 instanceof Error?b0:Error(String(b0));d.emit("error",{error:x0,context:`tpl(${l},${Z0.id})`,viewport:Y0()}),K0.textContent=""}return U.pef(K0,l),K0},M2=NaN,n1=()=>{if(U.id)return;let l=j?U.cw:U.ch;if(l<=0)return;c0();let Z0=O0?O0():U.ss,K0=T0?T0():U.fi,A0=U.vtf();U.gvr(U.ls,l,U.hc,A0,u),G1(u,B,A0,v);let y0=v.end-v.start+1,g0=U.hc.getSize(0)||1,b0=Math.ceil(X0/g0)+B*2;if(y0>b0){if(!L0)L0=!0,console.warn(`[vlist] Render range capped: ${y0} items → ${b0}. Container is ${l}px tall (item: ${g0}px). This usually means the container has no CSS height constraint.`);v.end=v.start+b0-1}if(v.start===t.start&&v.end===t.end){if(U.sic&&U.ls!==M2){M2=U.ls;for(let[$0,v0]of m)U.pef(v0,$0)}a.viewportState.scrollPosition=U.ls,a.viewportState.containerSize=l,a.viewportState.visibleRange.start=u.start,a.viewportState.visibleRange.end=u.end,a.viewportState.renderRange.start=v.start,a.viewportState.renderRange.end=v.end;return}let x0=String(I0.getSetSize()),JJ=x0!==U.la;U.la=x0;for(let[$0,v0]of m)if($0<v.start||$0>v.end)v0.remove(),b.release(v0),m.delete($0);let Y1=document.createDocumentFragment(),X1=!1,Z2=a0.length>0?[]:null;for(let $0=v.start;$0<=v.end;$0++){let v0=U.dm?U.dm.getItem($0):U.it[$0];if(v0===void 0)continue;let S0=m.get($0);if(S0){let n0=S0.dataset.id,t0=String(v0.id);if(n0!==t0){let QJ=n0?.startsWith(W2),P2=t0.startsWith(W2),U1=!!v0.__groupHeader;S0.className=U1?i:J0,N0(S0,$0,U1,!1);try{D2(S0,U.at(v0,$0,p),$0)}catch(y2){let qJ=y2 instanceof Error?y2:Error(String(y2));d.emit("error",{error:qJ,context:`tpl(${$0},${v0.id})`,viewport:Y0()}),S0.textContent=""}S0.dataset.id=t0;let Z1=!U.csi||U.csi($0);if(j)S0.style.width=Z1?`${U.hc.getSize($0)-V}px`:"";else S0.style.height=Z1?`${U.hc.getSize($0)-V}px`:"";if(P2)S0.classList.add(H0);else S0.classList.remove(H0);if(QJ&&!P2)S0.classList.add(D0),setTimeout(()=>{S0.classList.remove(D0)},300);if(U.dm&&!P2)q0(Z0,$0,v0.id)}U.pef(S0,$0);let A2=Z0.has(v0.id);if(U0(S0,A2,$0===K0),JJ&&!v0.__groupHeader)S0.setAttribute("aria-setsize",U.la)}else{let n0=o1($0,v0);if(Z2)Z2.push({index:$0,element:n0});if(U.dm)q0(Z0,$0,v0.id);let t0=Z0.has(v0.id),A2=$0===K0;if(t0||A2)U0(n0,t0,A2);Y1.appendChild(n0),m.set($0,n0),X1=!0}}if(X1)W.items.appendChild(Y1);if(Z2&&Z2.length>0)for(let $0=0;$0<a0.length;$0++)a0[$0](Z2);t.start=v.start,t.end=v.end,M2=U.ls,a.lastRenderRange.start=v.start,a.lastRenderRange.end=v.end,a.viewportState.scrollPosition=U.ls,a.viewportState.visibleRange.start=u.start,a.viewportState.visibleRange.end=u.end,a.viewportState.renderRange.start=v.start,a.viewportState.renderRange.end=v.end,G0.range.start=v.start,G0.range.end=v.end,d.emit("range:change",G0)},i1=()=>{t.start=-1,t.end=-1,M2=NaN,U.rfn()};U.rfn=n1,U.ffn=i1;let t1=()=>{W.root.classList.remove(E0),M=!1,U.vt.velocity=0,U.vt.sampleCount=0,V0.velocity=0,V0.reliable=!1,d.emit("velocity:change",V0),e();for(let l=0;l<w0.length;l++)w0[l]();d.emit("scroll:idle",{scrollPosition:U.ls})},e1=()=>{if(z)clearTimeout(z);z=setTimeout(t1,T?.idleTimeout??ZJ)},U2=()=>{if(U.id)return;let l=U.sgt();if(l===U.ls&&M)return;let Z0=l>=U.ls?"down":"up";if(U.vt=W1(U.vt,l),!W.root.classList.contains(E0))W.root.classList.add(E0);M=!0,U.ls=l,U.rfn(),B0.scrollPosition=l,B0.direction=Z0,d.emit("scroll",B0),V0.velocity=U.vt.velocity,V0.reliable=U.vt.sampleCount>=K1,d.emit("velocity:change",V0);for(let K0=0;K0<P0.length;K0++)P0[K0](l,Z0);e1()},G2=null;if(U.st.addEventListener("scroll",U2,{passive:!0}),L){let l=W.viewport;if(j)G2=(Z0)=>{if(a.viewportState.isCompressed)return;if(Math.abs(Z0.deltaX)>Math.abs(Z0.deltaY))return;let K0=U.sgt(),A0=l.scrollWidth-l.clientWidth,y0=Math.max(0,Math.min(K0+Z0.deltaY,A0));if(Math.abs(y0-K0)<1)return;Z0.preventDefault(),U.sst(y0),U2()};else G2=(Z0)=>{if(a.viewportState.isCompressed)return;let K0=l.scrollWidth>l.clientWidth;if(K0&&Math.abs(Z0.deltaX)>Math.abs(Z0.deltaY))return;if(K0&&Z0.deltaX!==0)Z0.preventDefault(),l.scrollLeft+=Z0.deltaX;let A0=U.sgt(),y0=l.scrollHeight-l.clientHeight,g0=Math.max(0,Math.min(A0+Z0.deltaY,y0));if(Math.abs(g0-A0)<1)return;Z0.preventDefault(),U.sst(g0),U2()};U.wh=G2,l.addEventListener("wheel",G2,{passive:!1})}let k2=(l)=>{let Z0=l.target.closest("[data-index]");if(!Z0)return null;let K0=parseInt(Z0.dataset.index??"-1",10);if(K0<0)return null;let A0=U.dm?.getItem(K0)??U.it[K0];if(!A0||A0.__groupHeader)return null;return{item:A0,index:K0}},t2=(l)=>{for(let K0=0;K0<f0.length;K0++)f0[K0](l);let Z0=k2(l);if(Z0)d.emit("item:click",{item:Z0.item,index:Z0.index,event:l})},e2=(l)=>{let Z0=k2(l);if(Z0)d.emit("item:dblclick",{item:Z0.item,index:Z0.index,event:l})},J1=(l)=>{for(let K0=0;K0<p0.length;K0++)p0[K0](l);let Z0=k2(l);if(Z0)d.emit("item:contextmenu",{item:Z0.item,index:Z0.index,event:l})},Q1=(l)=>{for(let Z0=0;Z0<h0.length;Z0++)h0[Z0](l)};if(W.items.addEventListener("click",t2),W.items.addEventListener("dblclick",e2),W.items.addEventListener("contextmenu",J1),W.root.addEventListener("keydown",Q1),F&&C){let l=null,Z0=(K0)=>{if(l)clearTimeout(l);l=setTimeout(()=>{if(l=null,U.id)return;let A0=U.vtf();W.liveRegion.textContent=`Showing items ${K0.range.start+1} to ${Math.min(K0.range.end+1,A0)} of ${A0}`},g)};d.on("range:change",Z0),o0.push(()=>{if(l)clearTimeout(l);d.off("range:change",Z0)})}let b2=new ResizeObserver((l)=>{if(U.id)return;for(let Z0 of l){let K0=Z0.contentRect.height,A0=Z0.contentRect.width,y0=j?A0:K0,g0=j?U.cw:U.ch;if(y0>X0){if(!L0)L0=!0,console.warn(`[vlist] Viewport grew to ${Math.round(y0)}px (screen: ${X0}px). Re-applying size constraint. Check that the vlist container has a CSS height/width constraint.`);let b0=j?"width":"height";W.root.style[b0]="100%",W.viewport.style[b0]="100%";return}if(U.cw=A0,U.ch=K0,Math.abs(y0-g0)>1){if(a.viewportState.containerSize=y0,U.ii){let b0=a.cachedCompression;if(b0&&b0.state.isCompressed){let x0=`${b0.state.virtualSize+H}px`;if(j)W.content.style.width=x0;else W.content.style.height=x0}else y();U.rfn(),d.emit("resize",{height:K0,width:A0})}}if(U.ii)for(let b0=0;b0<s0.length;b0++)s0[b0](A0,K0)}});if(U.vre)b2.observe(W.viewport);let R2={dom:W,emitter:d,resolvedConfig:o,rawConfig:J,rendered:m,pool:b,itemState:p,sharedState:a,renderRange:v,isHorizontal:j,classPrefix:K,contentSizeHandlers:X2,idleHandlers:w0,afterScroll:P0,clickHandlers:f0,contextMenuHandlers:p0,keydownHandlers:h0,resizeHandlers:s0,destroyHandlers:o0,methods:C0,onScrollFrame:U2,resizeObserver:b2,afterRenderBatch:a0,applyTemplate:D2,updateContentSize:y},O2=A1(U,R2);U.dm=E1(U,R2,O2),U.sc=L1(U,R2),C0.set("_updateRenderedItem",(l,Z0,K0,A0)=>{let y0=m.get(l);if(!y0)return;let g0={selected:K0,focused:A0};try{let b0=U.at(Z0,l,g0);D2(y0,b0,l)}catch(b0){let x0=b0 instanceof Error?b0:Error(String(b0));d.emit("error",{error:x0,context:`tpl(${l},${Z0.id})`,viewport:Y0()})}y0.dataset.id=String(Z0.id),U0(y0,K0,A0)});let q1=new WeakSet;C0.set("_setSizeCache",(l)=>{if(U.hc=l,U.gp>0&&!q1.has(l)){q1.add(l);let Z0=U.hc.getTotalSize,K0=U.gp;U.hc.getTotalSize=()=>{let A0=Z0();return A0>0?A0-K0:0}}}),C0.set("_setConstrainSize",(l)=>{U.csi=l});let j1=new Map;for(let l of n)if(l.methods)for(let Z0 of l.methods){let K0=j1.get(Z0);if(K0)throw Error(`[vlist] Method "${Z0}" is registered by both "${K0}" and "${l.name}"`);j1.set(Z0,l.name)}for(let l of n)try{l.setup(O2)}catch(Z0){let K0=Z0 instanceof Error?Z0:Error(String(Z0));console.error(`[vlist] Feature "${l.name}" setup failed:`,K0),d.emit("error",{error:K0,context:l.name,viewport:Y0()})}if(s&&!q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(F&&!C0.has("_getFocusedIndex")){let l=j?E.left:E.top,Z0=j?E.right:E.bottom;F1(U,W,K,P,j,l,Z0,S,C0,m,h0,f0,o0,!!J.focusOnClick)}if(U.ii=!0,O2.state.isInitialized=!0,y(),U.rfn(),r&&U.it.length>0){let l=U.gsp(U.it.length-1,U.hc,U.ch,U.it.length,"end");U.sst(l),U.ls=l,U.rfn()}return T1(U,W,d,m,b,C0,n,o0,O2,r,S,t2,e2,J1,Q1,U2,b2,()=>{},()=>{if(z)clearTimeout(z)})}var C2=200,v2=50;var H1=50,$1=12,k1=2,j2=16000000;var b1="x",R1=20,S2="_isPlaceholder",d0="__placeholder_";var P1=(J,q,j)=>{let Q=q.getTotalSize(),X=j===!0||Q>j2,Y=Q>j2?j2:Q,N=Q>0?Y/Q:1;return{isCompressed:X,actualSize:Q,virtualSize:Y,ratio:N}};var T2=(J,q,j,Q,X,Y,N)=>{if(!Y.isCompressed||Q===0)return j.getOffset(J);if(Y.ratio===1)return j.getOffset(J)-q;let{virtualSize:B}=Y,K=q/B,Z=j.getTotalSize(),O=K*Z;return j.getOffset(J)-O};var VJ=(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}},B2=(J,q,j={},Q="vlist",X=!1,Y)=>{let{autoHide:N=!0,autoHideDelay:B=1000,minThumbSize:K=15,showOnHover:Z=!0,showOnViewportEnter:O=!0,clickBehavior:A="scroll"}=j,k=A==="page"?"scroll":A,G=Y??J,D=VJ(j.padding),R=X?D.left:D.top,F=X?D.right:D.bottom,T=X?D.bottom:D.right,L=j.hoverZoneWidth??T+16,S=0,C=0,g=0,r=0,P=!1,V=!1,h=0,s=0,x=0,o=null,X0=!1,n=null,$=null,f=0,W=0,_=null,E=null,H=null,d=X?"width":"height",Q0=X?"translateX":"translateY",c=X?(D0)=>D0.clientX:(D0)=>D0.clientY,j0=X?"left":"top",w=document.createElement("div"),I=document.createElement("div"),b=document.createElement("div"),U=()=>{if(G===J)return;let D0=J.offsetTop,E0=X?D.left:D.top;w.style[X?"left":"top"]=`${D0+E0}px`,b.style[X?"left":"top"]=`${D0}px`},z=()=>{if(w.className=`${Q}-scrollbar`,I.className=`${Q}-scrollbar-thumb`,X)w.classList.add(`${Q}-scrollbar--horizontal`);if(j.padding!==void 0)G.style.setProperty("--vlist-custom-scrollbar-padding-top",`${D.top}px`),G.style.setProperty("--vlist-custom-scrollbar-padding-right",`${D.right}px`),G.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${D.bottom}px`),G.style.setProperty("--vlist-custom-scrollbar-padding-left",`${D.left}px`);if(j.minThumbSize!==void 0)w.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${K}px`);if(w.appendChild(I),G.appendChild(w),b.className=`${Q}-scrollbar-hover`,X)b.classList.add(`${Q}-scrollbar-hover--horizontal`),b.style.height=`${L}px`;else b.style.width=`${L}px`;if(G.appendChild(b),G!==J)U()},M=()=>{if(o)clearTimeout(o),o=null},u=()=>{if(!N)return;M(),o=setTimeout(t,B)},v=()=>{if(S<=C)return;if(M(),!X0)w.classList.add(`${Q}-scrollbar--visible`),X0=!0;if(N&&!P&&!V)u()},t=()=>{if(P||V)return;w.classList.remove(`${Q}-scrollbar--visible`),X0=!1},a=(D0,E0)=>{if(S=D0,C=E0,U(),S<=C){w.style.display="none",t();return}w.style.display="";let P0=Math.max(0,C-R-F),w0=C/S;if(g=Math.max(K,w0*P0),I.style[d]=`${g}px`,r=P0-g,Y0(x),!N)v()},Y0=(D0)=>{if(x=D0,S<=C||r<=0)return;let E0=S-C,P0=Math.min(1,Math.max(0,D0/E0));I.style.transform=`${Q0}(${P0*r}px)`},m=(D0)=>{if(D0.target===I||k!=="jump"||r<=0)return;let E0=S-C,P0=w.getBoundingClientRect(),w0=c(D0)-P0[j0],f0=Math.max(0,Math.min(w0-g/2,r));q(f0/r*E0),v()},e=()=>{if(_!==null)clearTimeout(_),_=null;if(E!==null)cancelAnimationFrame(E),E=null;H=null},y=(D0)=>{let E0=r>0?W/D0*r:0;if(f<E0)return-1;if(f>=E0+g)return 1;return 0},p=()=>{let D0=S-C,E0=y(D0);if(E0===0){e();return}if(E0===-1){if(W<=0){e();return}let P0=Math.max(0,W-C);W=P0,q(P0)}else{if(W>=D0){e();return}let P0=Math.min(D0,W+C);W=P0,q(P0)}v()},J0=(D0)=>{if(H===null){H=D0,E=requestAnimationFrame(J0);return}let E0=S-C,P0=D0-H;H=D0;let w0=y(E0);if(w0===0){e();return}let f0=12*C/1000,p0=Math.min(f0*P0,C);if(w0===-1){if(W<=0){e();return}let h0=Math.max(0,W-p0);W=h0,q(h0)}else{if(W>=E0){e();return}let h0=Math.min(E0,W+p0);W=h0,q(h0)}M(),E=requestAnimationFrame(J0)},i=()=>{e(),u(),document.removeEventListener("mouseup",i)},_0=(D0)=>{if(D0.target===I||k!=="scroll")return;D0.preventDefault();let E0=w.getBoundingClientRect();f=c(D0)-E0[j0],W=x,p(),_=setTimeout(()=>{E=requestAnimationFrame(J0)},350),document.addEventListener("mouseup",i)},W0=(D0)=>{D0.preventDefault(),D0.stopPropagation(),P=!0,h=c(D0),s=x,M(),w.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",U0),document.addEventListener("mouseup",N0)},U0=(D0)=>{if(!P)return;let E0=c(D0)-h,P0=r>0?E0/r:0,w0=S-C,f0=P0*w0,p0=Math.max(0,Math.min(s+f0,w0));if(I.style.transform=`${Q0}(${p0/w0*r}px)`,$=p0,n===null)n=requestAnimationFrame(()=>{if($!==null)q($);n=null})},N0=()=>{if(P=!1,n!==null)cancelAnimationFrame(n),n=null;if($!==null)q($),$=null;if(w.classList.remove(`${Q}-scrollbar--dragging`),N&&!V)u();document.removeEventListener("mousemove",U0),document.removeEventListener("mouseup",N0)},M0=()=>{if(O)v()},k0=()=>{if(!P){if(V=!1,N)u()}},F0=()=>{V=!0,M(),v()},R0=()=>{if(V=!1,!P&&N)u()},H0=()=>{if(M(),e(),n!==null)cancelAnimationFrame(n),n=null;w.removeEventListener("click",m),w.removeEventListener("mousedown",_0),w.removeEventListener("mouseenter",F0),document.removeEventListener("mouseup",i),w.removeEventListener("mouseleave",R0),I.removeEventListener("mousedown",W0),J.removeEventListener("mouseenter",M0),J.removeEventListener("mouseleave",k0),document.removeEventListener("mousemove",U0),document.removeEventListener("mouseup",N0),b.removeEventListener("click",m),b.removeEventListener("mousedown",_0),b.removeEventListener("mouseenter",F0),b.removeEventListener("mouseleave",R0),b.remove(),G.style.removeProperty("--vlist-custom-scrollbar-padding-top"),G.style.removeProperty("--vlist-custom-scrollbar-padding-right"),G.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),G.style.removeProperty("--vlist-custom-scrollbar-padding-left"),w.remove()};if(z(),w.addEventListener("click",m),w.addEventListener("mousedown",_0),w.addEventListener("mouseenter",F0),w.addEventListener("mouseleave",R0),I.addEventListener("mousedown",W0),J.addEventListener("mouseenter",M0),J.addEventListener("mouseleave",k0),b.addEventListener("click",m),b.addEventListener("mousedown",_0),Z)b.addEventListener("mouseenter",F0),b.addEventListener("mouseleave",R0);return{show:v,hide:t,updateBounds:a,updatePosition:Y0,isVisible:()=>X0,destroy:H0}};var f2=(J)=>{let q=null;return{name:"withScrollbar",priority:15,setup(j){let{dom:Q,config:X}=j,{classPrefix:Y,horizontal:N}=X;if(j.methods.has("_hasScrollbar"))Q.root.querySelector(`.${Y}-scrollbar`)?.remove(),Q.root.querySelector(`.${Y}-scrollbar-hover`)?.remove();j.methods.set("_hasScrollbar",()=>!0),q=B2(Q.viewport,(Z)=>j.scrollController.scrollTo(Z),J,Y,N,Q.root);let B=q,K=()=>{B.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)};if(Q.viewport.classList.add(`${Y}-viewport--custom-scrollbar`),J?.gutter)Q.viewport.classList.add(`${Y}-viewport--gutter`);K(),j.afterScroll.push((Z,O)=>{B.updatePosition(Z),B.show()}),j.resizeHandlers.push((Z,O)=>{K()}),j.contentSizeHandlers.push(()=>{K()}),j.destroyHandlers.push(()=>{B.destroy()})},destroy(){if(q)q.destroy(),q=null}}};var DJ=0.65,MJ=0.5,y1=1.7,GJ=0.95,OJ=0.1,AJ=5,EJ=100,w1=(J,q,j,Q=0)=>{if(J<=0)return 0;return Math.max(0,(q-Q)*(1-j)+Q)},h2=(J)=>{let q=J?.force??!1,j=null,Q=0,X=!1,Y=0,N=0,B=null,K=0,Z=0,O=null,A=[];return{name:"withScale",priority:20,setup(k){let{dom:G,config:D}=k,{classPrefix:R,horizontal:F}=D,{root:T,viewport:L}=G,S=k.state.viewportState,C=F?"scrollLeft":"scrollTop",g=F?"overflowX":"overflow",r=u0(k.rawConfig.padding),P=F?r.left+r.right:r.top+r.bottom,V=()=>{let W=k.getVirtualTotal(),_=P1(W,k.sizeCache,q);if(_.isCompressed&&!X){X=!0,k.scrollController.enableCompression(_);let H=L[C];if(L.style[g]="hidden",L[C]=0,H>0)Q=H,N=H;Y=w1(_.virtualSize,S.containerSize,_.ratio,P),k.updateContentSize(_.virtualSize+Y),k.setScrollFns(()=>Q,(U)=>{if(Q=U,N=U,B!==null)cancelAnimationFrame(B),B=null});let d=()=>{let U=N-Q;if(k.getVirtualTotal()===0){Q=0,N=0,B=null,k.triggerScrollFrame();return}if(Math.abs(U)<MJ){let z=k.getCachedCompression(),M=Math.max(0,z.virtualSize+Y-S.containerSize);Q=Math.max(0,Math.min(N,M)),N=Q,B=null}else{Q+=U*DJ;let M=k.getCachedCompression().virtualSize+Y-S.containerSize;Q=Math.max(0,Math.min(Q,M)),B=requestAnimationFrame(d)}k.triggerScrollFrame()},Q0=(U)=>{U.preventDefault();let z=k.getCachedCompression(),M=z.virtualSize+Y-S.containerSize;if(N=Math.max(0,Math.min(N+U.deltaY*z.ratio*y1,M)),B===null)B=requestAnimationFrame(d)};L.addEventListener("wheel",Q0,{passive:!1});let c=()=>{if(O!==null)cancelAnimationFrame(O),O=null},j0=(U)=>{if(c(),B!==null)cancelAnimationFrame(B),B=null;let z=U.touches[0];if(!z)return;let M=F?z.clientX:z.clientY;K=M,Z=Q,A=[{time:performance.now(),y:M}]},w=(U)=>{U.preventDefault();let z=U.touches[0];if(!z)return;let M=F?z.clientX:z.clientY,u=performance.now();if(A.push({time:u,y:M}),A.length>AJ)A.shift();let v=K-M,t=k.getCachedCompression(),a=t.virtualSize+Y-S.containerSize,Y0=Math.max(0,Math.min(Z+v*t.ratio*y1,a));Q=Y0,N=Y0,k.triggerScrollFrame()},I=(U)=>{let z=performance.now(),M=A.filter((a)=>z-a.time<EJ),u=0;if(M.length>=2){let a=M[0],Y0=M[M.length-1],m=Y0.time-a.time;if(m>0)u=(a.y-Y0.y)/m}if(A=[],Math.abs(u)<OJ)return;let v=u*16,t=()=>{if(v*=GJ,Math.abs(v)<0.5){O=null;return}let Y0=k.getCachedCompression().virtualSize+Y-S.containerSize,m=Q+v;if(m=Math.max(0,Math.min(m,Y0)),m<=0&&v<0||m>=Y0&&v>0){Q=m,N=m,k.triggerScrollFrame(),O=null;return}Q=m,N=m,k.triggerScrollFrame(),O=requestAnimationFrame(t)};O=requestAnimationFrame(t)};L.addEventListener("touchstart",j0,{passive:!0}),L.addEventListener("touchmove",w,{passive:!1}),L.addEventListener("touchend",I,{passive:!0}),L.addEventListener("touchcancel",I,{passive:!0}),k.destroyHandlers.push(()=>{L.removeEventListener("wheel",Q0),L.removeEventListener("touchstart",j0),L.removeEventListener("touchmove",w),L.removeEventListener("touchend",I),L.removeEventListener("touchcancel",I)});let b=()=>{if(L[C]!==0)L[C]=0};if(L.addEventListener("scroll",b,{passive:!0}),k.destroyHandlers.push(()=>{L.removeEventListener("scroll",b)}),!k.methods.has("_hasScrollbar")){if(k.methods.set("_hasScrollbar",()=>!0),j=B2(L,(z)=>k.scrollController.scrollTo(z),{},R,F,T),!L.classList.contains(`${R}-viewport--custom-scrollbar`))L.classList.add(`${R}-viewport--custom-scrollbar`);j.updateBounds(_.virtualSize,S.containerSize);let U=j;k.afterScroll.push((z,M)=>{if(U)U.updatePosition(z),U.show()}),k.resizeHandlers.push((z,M)=>{if(U){let u=k.getCachedCompression();U.updateBounds(u.virtualSize,S.containerSize)}})}}else if(!_.isCompressed&&X){if(X=!1,B!==null)cancelAnimationFrame(B),B=null;if(O!==null)cancelAnimationFrame(O),O=null;if(Q=0,N=0,A=[],k.setScrollFns(()=>L[C],(H)=>{L[C]=H}),L[C]=0,k.scrollController.disableCompression(),L.style[g]="auto",j)j.destroy(),j=null;Y=0,k.updateContentSize(_.actualSize)}else if(_.isCompressed)k.scrollController.updateConfig({compression:_}),Y=w1(_.virtualSize,S.containerSize,_.ratio,P),k.updateContentSize(_.virtualSize+Y);if(j)j.updateBounds(_.virtualSize+Y,S.containerSize);let E=S;if(E.isCompressed=_.isCompressed,E.compressionRatio=_.ratio,E.totalSize=_.virtualSize+Y,E.actualSize=_.actualSize,k.state.cachedCompression={state:_,totalItems:W},X){let H=Math.max(0,_.virtualSize+Y-S.containerSize),d=Q;if(d>H)d=H;else if(d<0)d=0;if(d!==Q){if(B!==null)cancelAnimationFrame(B),B=null;if(O!==null)cancelAnimationFrame(O),O=null;k.scrollController.scrollTo(d)}}for(let H=0;H<k.contentSizeHandlers.length;H++)k.contentSizeHandlers[H]()};k.updateCompressionMode=V;let h=k.getCachedCompression.bind(k);k.getCachedCompression=()=>{if(k.state.cachedCompression)return k.state.cachedCompression.state;return h()},k.setVisibleRangeFn((W,_,E,H,d)=>{if(x=null,o=null,H===0||_===0){d.start=0,d.end=-1;return}let Q0=k.getCachedCompression();if(!Q0.isCompressed||Q0.ratio===1){let w=E.indexAtOffset(W),I=E.indexAtOffset(W+_);if(I<H-1)I++;d.start=Math.max(0,w),d.end=Math.min(H-1,Math.max(0,I));return}let c=E.indexAtOffset(W/Q0.virtualSize*Q0.actualSize),j0;if(!E.isVariable())j0=Math.ceil(_/E.getSize(0));else{j0=0;let w=0,I=c;while(I<H&&w<_)w+=E.getSize(I),j0++,I++;if(j0<1)j0=1}d.start=Math.max(0,c),d.end=Math.min(H-1,Math.max(0,c+j0))}),k.setScrollToPosFn((W,_,E,H,d)=>{if(H===0)return 0;let Q0=k.getCachedCompression(),c=_.getSize(W),j0;if(Q0.isCompressed&&Q0.ratio!==1){if(j0=W/H*Q0.virtualSize,d==="center")j0-=(E-c)/2*Q0.ratio;else if(d==="end")j0-=(E-c)*Q0.ratio;return Math.max(0,j0)}if(j0=_.getOffset(W),d==="center")j0-=(E-c)/2;else if(d==="end")j0-=E-c;return Math.max(0,Math.min(j0,Q0.virtualSize-E))});let s=NaN,x=null,o=null,X0=F?"translateX":"translateY";k.setPositionElementFn((W,_)=>{let E=k.scrollController.getScrollTop(),H=k.getCachedCompression();if(E!==s)s=E,x=null,o=null;if(H.isCompressed){if(x===null||_<o){o=_;let Q0=k.sizeCache.getOffset(_);x=Math.round(H.ratio===1?Q0-E:Q0-E/H.virtualSize*H.actualSize)}let d=x+k.sizeCache.getOffset(_)-k.sizeCache.getOffset(o);W.style.transform=`${X0}(${d}px)`}else{let d=Math.round(k.sizeCache.getOffset(_));W.style.transform=`${X0}(${d}px)`}});let n=F?r.left:r.top,$=F?r.right:r.bottom,f=k.getItemToScrollIndexFn();k.methods.set("_scrollItemIntoView",(W)=>{let _=k.getCachedCompression(),E=S.containerSize,H=S.scrollPosition,d=k.getVirtualTotal(),{visibleRange:Q0}=S,c=f(W),j0=F2(c,k.sizeCache,H,E,n,$,_,d,Q0);if(j0!==H)k.scrollController.scrollTo(j0)}),V(),k.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(B!==null)cancelAnimationFrame(B),B=null;if(O!==null)cancelAnimationFrame(O),O=null})}}};var z1=(J={})=>{let{chunkSize:q=100,maxCachedItems:j=5000,evictionBuffer:Q=200,onEvict:X}=J,Y=new Map,N=0,B=0,K=($)=>{let f=Y.get($);if(!f)f={items:Array(q),count:0,lastAccess:Date.now()},Y.set($,f);else f.lastAccess=Date.now();return f},Z=($)=>{return Math.floor($/q)},O=($)=>{return $%q},A=()=>N,k=($)=>{N=$},G=($)=>{if($<0||$>=N)return;let f=Z($),W=Y.get(f);if(!W)return;return W.items[O($)]},D=($)=>{if($<0||$>=N)return!1;let f=Z($),W=Y.get(f);if(!W)return!1;return W.items[O($)]!==void 0},R=($,f)=>{let W=Z($),_=K(W),E=O($),H=_.items[E]===void 0;if(_.items[E]=f,H)_.count++,B++;if($>=N)N=$+1},F=($,f)=>{for(let W=0;W<f.length;W++){let _=f[W];if(_!==void 0)R($+W,_)}},T=($)=>{if($<0||$>=N)return!1;let f=Z($),W=Y.get(f),_=O($);if(!(W!==void 0&&W.items[_]!==void 0))return!1;let H=f,d=Array.from(Y.keys()).filter((c)=>c>=H).sort((c,j0)=>c-j0),Q0=[];for(let c of d){let j0=Y.get(c),w=c*q;for(let I=0;I<q;I++){if(j0.items[I]===void 0)continue;let b=w+I;if(b<=$)continue;Q0.push({oldIndex:b,item:j0.items[I]})}}if(W.items[_]=void 0,W.count--,B--,W.count===0)Y.delete(f);for(let{oldIndex:c}of Q0){let j0=Z(c),w=Y.get(j0);if(!w)continue;let I=O(c);if(w.items[I]!==void 0){if(w.items[I]=void 0,w.count--,B--,w.count===0)Y.delete(j0)}}for(let{oldIndex:c,item:j0}of Q0){let w=c-1,I=Z(w),b=K(I),U=O(w);b.items[U]=j0,b.count++,B++}return N--,!0},L=($,f)=>{let W=[];for(let _=$;_<=f&&_<N;_++)W.push(G(_));return W},S=($,f)=>{for(let W=$;W<=f&&W<N;W++)if(!D(W))return!1;return!0},C=()=>{let $=[],f=null,W=Array.from(Y.keys()).sort((_,E)=>_-E);for(let _ of W){let E=Y.get(_);if(!E)continue;let H=_*q;for(let d=0;d<q;d++){let Q0=H+d;if(Q0>=N)break;if(E.items[d]!==void 0)if(f===null)f={start:Q0,end:Q0};else if(Q0===f.end+1)f.end=Q0;else $.push(f),f={start:Q0,end:Q0};else if(f!==null)$.push(f),f=null}}if(f!==null)$.push(f);return $},g=($,f)=>{let W=[],_=null;for(let E=$;E<=f&&E<N;E++)if(!D(E))if(_===null)_={start:E,end:E};else _.end=E;else if(_!==null)W.push(_),_=null;if(_!==null)W.push(_);return W},r=($)=>{return Y.has($)},P=($)=>{let f=Y.get($);if(f)f.lastAccess=Date.now()},V=($,f)=>{if($>f||Y.size===0)return;let W=Date.now(),_=Z(Math.max(0,$)),E=Z(Math.min(N-1,f));for(let H=_;H<=E;H++){let d=Y.get(H);if(d)d.lastAccess=W}},h=($,f)=>{if(B<=j)return 0;let W=Math.max(0,$-Q),_=Math.min(N-1,f+Q),E=Z(W),H=Z(_),d=0,Q0=[];for(let[c,j0]of Y)if(c<E||c>H)d+=j0.count,Q0.push(c),B-=j0.count,Y.delete(c);if(d>0&&X)X(d,Q0);return d},s=()=>{if(B<=j)return 0;let $=Array.from(Y.entries()).sort(([,_],[,E])=>_.lastAccess-E.lastAccess),f=0,W=[];for(let[_,E]of $){if(B<=j)break;f+=E.count,B-=E.count,W.push(_),Y.delete(_)}if(f>0&&X)X(f,W);return f},x=()=>{return{totalItems:N,cachedItems:B,cachedChunks:Y.size,chunkSize:q,maxCachedItems:j,memoryEfficiency:N>0?1-B/N:1}},o=()=>B,X0=()=>{Y.clear(),B=0};return{chunkSize:q,maxCachedItems:j,getTotal:A,setTotal:k,get:G,has:D,set:R,setRange:F,delete:T,getRange:L,isRangeLoaded:S,getLoadedRanges:C,findUnloadedRanges:g,getChunkIndex:Z,isChunkLoaded:r,touchChunk:P,touchChunksForRange:V,evictDistant:h,evictToLimit:s,getStats:x,getCachedCount:o,clear:X0,reset:()=>{X0(),N=0}}};var C1=(J={})=>{let{maskCharacter:q=b1,maxSampleSize:j=R1}=J,Q=[],X=!1,Y=(O)=>{if(X||O.length===0)return;let A=Math.min(O.length,j);for(let k=0;k<A;k++){let G=O[k];if(!G||typeof G!=="object")continue;let D={},R=!1;for(let[F,T]of Object.entries(G)){if(F.startsWith("_")||F==="id")continue;D[F]=String(T??"").length,R=!0}if(R)Q.push(D)}X=!0},N=()=>X,B=(O)=>{let A={id:`${d0}${O}`,[S2]:!0,_index:O};if(Q.length===0)return A.label=q.repeat(12),A;let k=Q[O%Q.length];for(let[G,D]of Object.entries(k))A[G]=q.repeat(Math.max(1,D));return A};return{analyzeStructure:Y,hasAnalyzedStructure:N,generate:B,generateRange:(O,A)=>{let k=[];for(let G=O;G<=A;G++)k.push(B(G));return k},clear:()=>{Q=[],X=!1}}},H2=(J)=>{if(!J||typeof J!=="object")return!1;return J[S2]===!0};var LJ=50,v1=(J={})=>{let{adapter:q,initialItems:j,initialTotal:Q,storage:X,placeholder:Y,pageSize:N=LJ,onStateChange:B,onItemsLoaded:K,onItemsEvicted:Z}=J,O=z1({...X,onEvict:(m,e)=>{Z?.(m),P()}}),A=null,k=()=>{if(!A)A=C1(Y);return A},G=new Map,D=!1,R,F=!0,T,L,S=[],C=0,g=new Map,r=()=>{for(let m of g.values())m[1].abort();g.clear()},P=()=>{B?.(f())},V=()=>{G.clear();let m=O.getLoadedRanges();for(let e of m)for(let y=e.start;y<=e.end;y++){let p=O.get(y);if(p&&!H2(p))G.set(p.id,y)}},h=(m,e)=>{if(!H2(e))G.set(e.id,m)},s=(m)=>{G.delete(m)},x=(m,e)=>{return`${m}-${e}`},o=()=>O.getTotal(),X0=()=>O.getCachedCount(),n=()=>D,$=()=>F,f=()=>({total:O.getTotal(),cached:O.getCachedCount(),isLoading:D,pendingRanges:S,error:R,hasMore:F,cursor:T}),W=()=>O,_=()=>k(),E=(m)=>{let e=O.get(m);if(e!==void 0)return e;if(m>=0&&m<O.getTotal())return k().generate(m);return},H=(m)=>{let e=G.get(m);if(e===void 0)return;return O.get(e)},d=(m)=>{return G.get(m)??-1},Q0=(m)=>{let e=O.get(m);return e!==void 0&&!H2(e)},c=(m,e)=>{let y=[],p=O.getTotal();O.touchChunksForRange(m,Math.min(e,p-1));for(let J0=m;J0<=e&&J0<p;J0++){let i=O.get(J0);if(i!==void 0)y.push(i);else y.push(k().generate(J0))}return y},j0=(m)=>{O.setTotal(m),F=O.getCachedCount()<m,P()},w=(m,e=0,y)=>{if(q&&m.length>0){let p=k();if(!p.hasAnalyzedStructure())p.analyzeStructure(m)}for(let p=0;p<m.length;p++){let J0=m[p];if(J0!==void 0){let i=e+p;O.set(i,J0),h(i,J0)}}if(y!==void 0)O.setTotal(y);else if(e+m.length>O.getTotal())O.setTotal(e+m.length);if(O.getCachedCount()>=O.getTotal()&&O.getTotal()>0)F=!1;P(),K?.(m,e,O.getTotal())},I=(m,e)=>{let y=O.get(m);if(!y)return!1;let p=y.id,J0={...y,...e};if(O.set(m,J0),e.id!==void 0&&e.id!==p)s(p);return h(m,J0),P(),!0},b=(m)=>{let e=G.get(m);if(e===void 0)return!1;if(!O.delete(e))return!1;return V(),r(),P(),!0},U=async(m,e)=>{if(!q)return;let y=O.chunkSize,p=Math.floor(m/y),J0=Math.floor(e/y),i=y*2;for(let[U0,N0]of g){let M0=U0.indexOf("-"),k0=parseInt(U0.slice(0,M0),10);if(Math.abs(k0-m)>i)N0[1].abort(),g.delete(U0)}let _0=[],W0=[];for(let U0=p;U0<=J0;U0++){let N0=U0*y,M0=N0+y-1,k0=x(N0,M0);if(O.isChunkLoaded(U0))continue;let F0=g.get(k0);if(F0)W0.push(F0[0]);else _0.push({start:N0,end:M0})}if(_0.length===0)return;for(let U0 of _0){let N0=x(U0.start,U0.end),M0=new AbortController,k0=(async()=>{S.push(U0),D=!0,R=void 0,P();try{let F0=U0.end-U0.start+1,R0={offset:U0.start,limit:F0,cursor:U0.start===L?T:void 0,signal:M0.signal},H0=await q.read(R0);if(w(H0.items,U0.start,H0.total),H0.cursor)T=H0.cursor,L=U0.start+H0.items.length;let D0=U0.start+H0.items.length;if(D0>=C){if(C=D0,H0.hasMore!==void 0)F=H0.hasMore;else if(H0.total!==void 0)F=D0<H0.total}}catch(F0){if(F0?.name==="AbortError")return;R=F0 instanceof Error?F0:Error(String(F0))}finally{g.delete(N0),S=S.filter((F0)=>F0.start!==U0.start||F0.end!==U0.end),D=g.size>0,P()}})();g.set(N0,[k0,M0]),W0.push(k0)}await Promise.all(W0)},z=async(m,e)=>{if(O.isRangeLoaded(m,e))return;await U(m,e)},M=async()=>{if(!q)return;await U(0,N-1)},u=async()=>{if(!q||D||!F)return!1;let m=O.getCachedCount(),e=O.getTotal(),y=m,p=Math.min(y+N-1,e>0?e-1:y+N-1);if(y>=e&&e>0)return F=!1,!1;return await U(y,p),O.getCachedCount()>m},v=async()=>{if(O.clear(),O.setTotal(0),G.clear(),A)A.clear();r(),S=[],D=!1,T=void 0,L=void 0,F=!0,C=0,R=void 0,P()},t=(m,e)=>{if(O.evictDistant(m,e)>0)V()},a=()=>{O.clear(),G.clear(),T=void 0,L=void 0,R=void 0,S=[],D=!1,P()},Y0=()=>{if(O.reset(),G.clear(),A)A.clear();T=void 0,L=void 0,F=!0,C=0,R=void 0,S=[],D=!1,P()};if(j&&j.length>0)w(j,0,Q??j.length);else if(Q!==void 0)O.setTotal(Q),P();return{getState:f,getTotal:o,getCached:X0,getIsLoading:n,getHasMore:$,getStorage:W,getPlaceholders:_,getItem:E,getItemById:H,getIndexById:d,isItemLoaded:Q0,getItemsInRange:c,setTotal:j0,setItems:w,updateItem:I,removeItem:b,loadRange:U,ensureRange:z,loadInitial:M,loadMore:u,reload:v,evictDistant:t,clear:a,reset:Y0}};var I2=(J)=>{let{adapter:q,loading:j,storage:Q,total:X,autoLoad:Y=!0}=J,N=j?.cancelThreshold??$1,B=j?.preloadThreshold??k1,K=j?.preloadAhead??H1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(Z){let{emitter:O}=Z,A=Z.config.reverse,k=Z.methods.get("_getGridLayout"),G=(f)=>{let W=Z.methods.get("_getGroupBridge");if(W){let _=W();if(_&&_.groupCount>0){let E=_.layoutToDataIndex(f.start),H=_.layoutToDataIndex(f.end);if(E<0){for(let d=f.start+1;d<=f.end;d++)if(E=_.layoutToDataIndex(d),E>=0)break}if(H<0){for(let d=f.end-1;d>=f.start;d--)if(H=_.layoutToDataIndex(d),H>=0)break}if(E>=0&&H>=0)return{start:E,end:H}}}if(k){let _=k();if(_){let E=Z.dataManager.getTotal();return _.getItemRange(f.start,f.end,E)}}return f};Z.methods.set("_isAsync",()=>!0);let D=null;Z.methods.set("_onItemsLoaded",(f)=>{(D??=[]).push(f)});let R=(f)=>{O.emit("error",{error:f,context:"ensureRange"})},F=(f)=>{O.emit("error",{error:f,context:"loadMore"})},T=(f,W)=>Z.dataManager.ensureRange(f,W),L=(f,W=v2)=>{O.emit("load:start",{offset:f,limit:W})},S=v1({adapter:q,...X!==void 0&&{initialTotal:X},pageSize:Q?.chunkSize??v2,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(Z.state.isInitialized){let f=Z.getVirtualTotal();if(f!==Z.sizeCache.getTotal())Z.sizeCache.rebuild(f);Z.updateCompressionMode();let W=Z.getCachedCompression();Z.state.viewportState.totalSize=W.virtualSize,Z.state.viewportState.actualSize=W.actualSize,Z.state.viewportState.isCompressed=W.isCompressed,Z.state.viewportState.compressionRatio=W.ratio,Z.updateContentSize(W.virtualSize),Z.renderIfNeeded()}},onItemsLoaded:(f,W,_)=>{if(Z.state.isInitialized){if(D)for(let E of D)E(f,W,_);Z.forceRender(),O.emit("load:end",{items:f,total:_,offset:W})}}});Z.replaceDataManager(S);let C=null,g=null,r=0,P=!1,V=null,h=120,s=(f=!1)=>{if(P=!1,g=null,f)C=null;if(V!==null)clearTimeout(V),V=null},x=()=>{if(!g)return;g=null;let{renderRange:f}=Z.state.viewportState;if(f.end<f.start)return;C=null;let W=G(f);T(W.start,W.end).catch(R)};Z.afterScroll.push((f,W)=>{if(Z.state.isDestroyed)return;let _=Z.scrollController.getVelocity(),H=Z.scrollController.isTracking()&&_<=N;if(r>N&&_<=N)P=!0;else if(P&&_>N)s();if(P&&_<0.5)s(!0);if(r=_,(Z.scrollController.isAtTop()||Z.scrollController.isAtBottom())&&(P||g))s(!0),H=!0;let Q0=P&&_>0.5;if(H&&!Z.dataManager.getIsLoading()&&Z.dataManager.getHasMore()){if(A?f<C2:Z.state.viewportState.totalSize-f-Z.state.viewportState.containerSize<C2)L(Z.dataManager.getCached()),Z.dataManager.loadMore().catch(F)}let{renderRange:c}=Z.state.viewportState;if(!C||c.start!==C.start||c.end!==C.end){if(C={start:c.start,end:c.end},H&&!Q0){if(g=null,V!==null)clearTimeout(V),V=null;let w=G(c),I=w.start,b=w.end,U=k?Z.dataManager.getTotal():Z.getVirtualTotal();if(_>B)if(W==="down")b=Math.min(w.end+K,U-1);else I=Math.max(w.start-K,0);T(I,b).catch(R)}else if(g={start:c.start,end:c.end},Q0){if(V!==null)clearTimeout(V);V=setTimeout(()=>{V=null,x(),s()},h)}}});let o=200,X0=null;Z.afterScroll.push((f,W)=>{if(X0!==null)clearTimeout(X0);X0=setTimeout(()=>{X0=null,x(),s()},o)}),Z.destroyHandlers.push(()=>{if(X0!==null)clearTimeout(X0),X0=null;s()});let n=()=>{if(Z.state.isDestroyed)return;C=null;let{renderRange:f}=Z.state.viewportState;if(f.end>0){let W=G(f);T(W.start,W.end).catch(R)}x()};window.addEventListener("online",n),Z.destroyHandlers.push(()=>{window.removeEventListener("online",n)}),O.on("load:start",()=>{Z.dom.root.setAttribute("aria-busy","true")}),O.on("load:end",()=>{Z.dom.root.removeAttribute("aria-busy")}),Z.methods.set("loadVisibleRange",async()=>{C=null,g=null,Z.forceRender();let{renderRange:f}=Z.state.viewportState;if(f.end>0){let W=G(f);L(W.start,W.end-W.start+1),await T(W.start,W.end)}}),Z.methods.set("reload",async(f)=>{C=null,g=null;let W=f?.snapshot,_=W!=null&&(W.total??0)>0&&W.index>0,E=_||f?.skipInitialLoad===!0;if(Z.invalidateRendered(),await Z.dataManager.reload(),!_)Z.scrollController.scrollTo(0);if(!E){L(0),await Z.dataManager.loadInitial(),Z.forceRender();let{renderRange:H}=Z.state.viewportState;if(H.end>0){let d=G(H);await T(d.start,d.end)}}if(_){let H=Z.methods.get("restoreScroll");if(H)H(W)}});let $=!1;if(Z.methods.set("_cancelAutoLoad",()=>{$=!0}),Y)queueMicrotask(()=>{if($)return;L(0),Z.dataManager.loadInitial().catch((f)=>{O.emit("error",{error:f,context:"loadInitial"})})});else if(X!==void 0)Z.dataManager.setTotal(X)}}};var $2=(J)=>J==null?0:typeof J==="function"?J():J,p2=(J)=>{let q,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(Q){let{dom:X,state:Y,config:N,emitter:B}=Q,K=N.horizontal,Z=window;if(X.root.style.overflow="visible",X.root.style.height="auto",K)X.viewport.style.overflowX="visible",X.viewport.style.overflowY="visible";else X.viewport.style.overflow="visible";if(X.viewport.classList.remove(`${N.classPrefix}-viewport--custom-scrollbar`),Q.disableViewportResize(),Q.disableWheelHandler(),Q.setScrollTarget(Z),Q.setScrollFns(()=>{let G=X.viewport.getBoundingClientRect();return Math.max(0,K?-G.left:-G.top)},(G)=>{let D=X.viewport.getBoundingClientRect(),R=(K?D.left+Z.scrollX:D.top+Z.scrollY)+G;if(K)Z.scrollTo({left:R,top:Z.scrollY,behavior:"instant"});else Z.scrollTo({left:Z.scrollX,top:R,behavior:"instant"})}),Q.setContainerDimensions({width:()=>Z.innerWidth,height:()=>Z.innerHeight}),Y.viewportState.containerSize=Z.innerHeight,j){let G=Q.getItemToScrollIndexFn();Q.setScrollToPosFn((D,R,F,T,L)=>{let S=$2(K?j.left:j.top),C=$2(K?j.right:j.bottom);if(T===0)return 0;let g=Math.max(0,Math.min(D,T-1)),r=R.getOffset(g),P=R.getSize(g),V=R.getTotalSize(),h=Math.max(0,V-F+C),s=L==="start"?r-S:L==="center"?r-S-(F-S-C-P)/2:r-F+P+C;return Math.max(-S,Math.min(s,h))}),Q.methods.set("_scrollItemIntoView",(D)=>{let R=G(D),F=K?Z.innerWidth:Z.innerHeight,T=$2(K?j.left:j.top),L=$2(K?j.right:j.bottom),S=X.viewport.getBoundingClientRect(),C=K?Z.scrollX:Z.scrollY,g=K?S.left:S.top,r=g+C,P=Q.sizeCache.getOffset(R),V=Q.sizeCache.getSize(R),h=g+P,s=F-L,x=C;if(h<T)x=r+P-T;else if(h+V>s)x=r+P+V-s;if(x!==C)if(K)Z.scrollTo({left:x,top:Z.scrollY,behavior:"instant"});else Z.scrollTo({left:Z.scrollX,top:x,behavior:"instant"})})}let{innerHeight:O,innerWidth:A}=Z,k=()=>{let{innerWidth:G,innerHeight:D}=Z;if(Math.abs(K?G-A:D-O)>1){O=D,A=G,Y.viewportState.containerSize=D,B.emit("resize",{width:G,height:D});for(let R=0;R<Q.resizeHandlers.length;R++)Q.resizeHandlers[R](G,D);Q.renderIfNeeded()}};Z.addEventListener("resize",k),q=()=>Z.removeEventListener("resize",k),Q.destroyHandlers.push(q)},destroy(){q?.(),q=void 0}}};var r0=(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},_2=(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},S1=(J,q,j)=>{if(J===0)return[];let Q=[],X=q(0,j?.(0)),Y=0,N=0;for(let B=1;B<J;B++){let K=q(B,j?.(B));if(K!==X){let Z=B-Y;Q.push({key:X,groupIndex:Q.length,headerLayoutIndex:N,firstDataIndex:Y,count:Z}),N=N+1+Z,X=K,Y=B}}return Q.push({key:X,groupIndex:Q.length,headerLayoutIndex:N,firstDataIndex:Y,count:J-Y}),Q},u2=(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 N=0;N<Y.count;N++)Q[X]=J[Y.firstDataIndex+N],X++}return Q};var f1=(J,q,j)=>{let Q=S1(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:(G)=>{if(Q.length===0)return{type:"item",dataIndex:G,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let D=r0(Q,G),R=Q[D];if(G===R.headerLayoutIndex)return{type:"header",group:R};let F=G-R.headerLayoutIndex-1;return{type:"item",dataIndex:R.firstDataIndex+F,group:R}},layoutToDataIndex:(G)=>{if(Q.length===0)return G;let D=r0(Q,G),R=Q[D];if(G===R.headerLayoutIndex)return-1;let F=G-R.headerLayoutIndex-1;return R.firstDataIndex+F},dataToLayoutIndex:(G)=>{if(Q.length===0)return G;let D=_2(Q,G),R=Q[D],F=G-R.firstDataIndex;return R.headerLayoutIndex+1+F},getGroupAtLayoutIndex:(G)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=r0(Q,G);return Q[D]},getGroupAtDataIndex:(G)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=_2(Q,G);return Q[D]},getHeaderHeight:typeof Y==="number"?(G)=>Y:(G)=>{let D=Q[G];if(!D)return 0;return Y(D.key,G)},rebuild:(G,D)=>{Q=S1(G,q.getGroupForIndex,D??j),X=G+Q.length}}};var g2=(J,q,j,Q,X=0)=>{let Y=j?"width":"height",N=document.createElement("div");return N.className=`${q}-sticky-header`,N.setAttribute("role","presentation"),N.setAttribute("aria-hidden","true"),N.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${X||0}px`:`top:${X||0}px`),N.style[Y]=`${Q}px`,J.insertBefore(N,J.firstChild),N},m2=(J,q,j,Q,X,Y=!1,N=0,B,K)=>{let Z=Y?"width":"height",O=Y?"height":"width",A=Y?"X":"Y",k=(z,M)=>{z.style[Z]=`${M}px`},G=K??g2(J,X,Y,0,N),D=()=>{let z=document.createElement("div");return z.className="sticky-group",z.style.position="absolute",z.style.willChange="transform",z.style[O]="100%",z},R=D(),F=D();G.append(R,F);let T=R,L=F,S=q.groups,C=[],g=[],r=[],P=0,V=()=>{S=q.groups,P=S.length,C=Array(P),g=Array(P),r=Array(P);let z=B?B():1;for(let M=0;M<P;M++)C[M]=j.getOffset(S[M].headerLayoutIndex)*z,g[M]=q.getHeaderHeight(M),r[M]=g[M]*z};V();let h=-1,s=0,x=0,o=-1,X0=!1,n=0,$=!1,f=(z,M)=>{Q(z,M);let u=g[M];return k(z,u),u},W=(z)=>{z.replaceChildren(),z.style.transform=""},_=(z)=>{if(z===h)return;if(h=z,s=0,x=0,z<0||z>=P){W(T);return}s=f(T,z),x=r[z],k(G,s),T.style.transform=""},E=(z)=>{if(z===n)return;n=z;let M=Math.round(z);T.style.transform=`translate${A}(${M}px)`,L.style.transform=`translate${A}(${M+s}px)`},H=()=>{n=0,T.style.transform="",L.style.transform=""},d=()=>{if(!$)return;let z=T;T=L,L=z,h=o,s=h>=0?g[h]:0,x=h>=0?r[h]:0,k(G,s),W(L),o=-1,$=!1,H()},Q0=()=>{if(!$)return;W(L),o=-1,$=!1,H()},c=!!K,j0=()=>{if(X0)return;if(X0=!0,c)G.style.visibility="";else G.style.display=""},w=()=>{if(!X0)return;if(X0=!1,c)G.style.visibility="hidden";else G.style.display="none";W(T),h=-1,s=0,x=0,Q0()},I=(z)=>{if(P===0){w();return}if(z<C[0]){w();return}let M=0,u=P-1;while(M<u){let t=M+u+1>>>1;if(C[t]+r[t]<=z)M=t;else u=t-1}if(!X0)j0();_(M);let v=M+1;if(v<P){let t=C[v]-z;if(t<=0&&t>-x){if(o!==v||!$)o=v,f(L,v),$=!0;let a=x>0?t/x*s:t;E(a)}else if(t<=-x){if($)d()}else if($)Q0()}else if($)Q0()},b=()=>{V();let z=h;if(h=-1,s=0,x=0,z>=0)_(z)},U=()=>{G.remove(),h=-1,s=0,x=0,o=-1,X0=!1,$=!1};if(!K)G.style.display="none";return{update:I,refresh:b,show:j0,hide:w,destroy:U}};var m0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var h1={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},I1=(J,q,j)=>{let Q=[],X=0,Y=0,N=new Map,B=()=>{if(Q=[],X===0||N.size===0){Y=X;return}let L=null,S=-1,C=0;for(let g=0;g<X;g++){let r=N.get(g);if(r===void 0){if(L!==null&&S>=0){let P=g-S;Q.push({key:L,groupIndex:Q.length,headerLayoutIndex:S+C,firstDataIndex:S,count:P}),C++,L=null,S=-1}continue}if(r!==L){if(L!==null&&S>=0){let P=g-S;Q.push({key:L,groupIndex:Q.length,headerLayoutIndex:S+C,firstDataIndex:S,count:P}),C++}L=r,S=g}}if(L!==null&&S>=0){let g=X-S;Q.push({key:L,groupIndex:Q.length,headerLayoutIndex:S+C,firstDataIndex:S,count:g}),C++}Y=X+C};return{onItemsLoaded:(L,S,C)=>{X=C;for(let g=0;g<L.length;g++){let r=S+g,P=L[g];if(P!==void 0){let V=J.getGroupForIndex(r,P);N.set(r,V)}}B()},get totalEntries(){return Y},get groupCount(){return Q.length},get groups(){return Q},isHeader:(L)=>{if(Q.length===0)return!1;let S=r0(Q,L),C=Q[S];return L===C.headerLayoutIndex},getHeaderItem:(L)=>{if(Q.length===0)return;let S=r0(Q,L),C=Q[S];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 S=r0(Q,L),C=Q[S];if(L===C.headerLayoutIndex)return-1;let g=L-C.headerLayoutIndex-1;return C.firstDataIndex+g},dataToLayoutIndex:(L)=>{if(Q.length===0)return L;let S=_2(Q,L),C=Q[S],g=L-C.firstDataIndex;return C.headerLayoutIndex+1+g},getHeaderHeight:(L)=>J.headerHeight,getGroupAtLayoutIndex:(L)=>{if(Q.length===0)return h1;let S=r0(Q,L);return Q[S]},getGroupAtDataIndex:(L)=>{if(Q.length===0)return h1;let S=_2(Q,L);return Q[S]},removeAt:(L)=>{let S=new Map;for(let[C,g]of N)if(C<L)S.set(C,g);else if(C>L)S.set(C-1,g);N.clear();for(let[C,g]of S)N.set(C,g);X--,B()},reset:()=>{Q=[],X=0,Y=0,N.clear()}}};var p1=(J,q,j,Q,X,Y)=>{if(Q===0)return 0;let N=Math.max(0,Math.min(J,Q-1)),B=q.getOffset(N),K=q.getSize(N),Z=q.getTotalSize(),O=Math.max(0,Z-j),A;switch(Y){case"center":A=B-j/2+K/2;break;case"end":A=B-j+K;break;case"start":default:A=B;break}return Math.max(0,Math.min(A,O))};var V2=(J,q,j,Q,X="start",Y,N=p1)=>{return N(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{getGroupForIndex:J.getGroupForIndex,header:{height:j,template:J.header.template},sticky:J.sticky}}if(J.headerHeight!=null&&J.headerTemplate)return{getGroupForIndex:J.getGroupForIndex,header:{height:J.headerHeight,template:J.headerTemplate},sticky:J.sticky};return J},x2=(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(N){let{dom:B,config:K,rawConfig:Z}=N,{classPrefix:O}=K,A=FJ(J,K.horizontal),G=Z.item.height,D=A.sticky!==!1,{template:R}=A.header;B.root.classList.add(`${O}--grouped`);let F=null;if(D)if(N.methods.set("_getStickyHeaderHeight",()=>A.header.height),F=g2(B.root,O,K.horizontal,A.header.height),!K.horizontal)B.viewport.style.height=`calc(100% - ${A.header.height}px)`;else B.viewport.style.width=`calc(100% - ${A.header.height}px)`;let{animateScroll:T,cancelScroll:L}=q2(N.scrollController,N.renderIfNeeded),S=null;N.methods.set("scrollToIndex",(g,r)=>{let P=S??X;if(!P)return;let V=P.dataToLayoutIndex(g),{align:h,behavior:s,duration:x}=l0(r),o=N.dataManager.getTotal(),X0=N.adjustScrollPosition(V2(V,N.sizeCache,N.state.viewportState.containerSize,o,h,N.getCachedCompression()));if(s==="smooth")T(N.scrollController.getScrollTop(),X0,x);else L(),N.scrollController.scrollTo(X0)}),N.destroyHandlers.push(()=>{if(L(),Y)Y.destroy(),Y=null;else if(F)F.remove();B.root.classList.remove(`${O}--grouped`)});let C=null;N.methods.set("_getGroupBridge",()=>C),queueMicrotask(()=>{let g=N.methods.get("_onItemsLoaded");if(g)HJ(N,A,K,Z,G,D,R,O,g,(r)=>{C=r,S=r},(r)=>{Y=r},F)}),TJ(N,A,K,Z,G,D,R,O,(g)=>{X=g,S=g},(g)=>{Y=g},F)},destroy(){if(Y)Y.destroy(),Y=null}}};function TJ(J,q,j,Q,X,Y,N,B,K,Z,O){let{dom:A}=J,k=null,G=Q.items?[...Q.items]:[],D=G.length,R={getGroupForIndex:q.getGroupForIndex,header:{height:q.header.height}},F=(W)=>G[W],T=f1(D,R,F);K(T);let L=u2(G,T.groups),S=typeof X==="number"?(W)=>X:X,C=(W)=>{let _=T.layoutToDataIndex(W);if(_<0){let E=T.getGroupAtLayoutIndex(W);if(Y&&E.groupIndex===0)return 0;return T.getHeaderHeight(E.groupIndex)}return S(_)};J.setSizeConfig(C),J.rebuildSizeCache(L.length),J.dataManager.setItems(L,0,L.length);let g=Q.item.template,r=(W,_,E)=>{if(m0(W))return N(W.groupKey,W.groupIndex);return g(W,_,E)},P=J.methods.get("_getGridLayout"),V=J.methods.get("_replaceGridRenderer"),h=J.methods.get("_updateGridLayoutForGroups"),s=J.methods.get("_createGridRenderer"),x=J.methods.get("_getTableLayout"),o=J.methods.get("_updateTableForGroups");if(P&&V&&s){if(h)h((E)=>{let H=L[E];return!!(H&&m0(H))});let W=P(),_=s(A.items,r,J.sizeCache,W,B,J.getContainerWidth(),()=>G.length,j.ariaIdPrefix,j.horizontal,(E)=>T.layoutToDataIndex(E)+1,j.interactive);V(_)}else if(x&&o)o((W)=>m0(W),q.header.template);else J.replaceTemplate(r);let X0=()=>{if(!Y||k)return;if(T.groupCount===0)return;let W=q.header.template,_=(H,d)=>{let Q0=T.groups[d];if(!Q0)return;let c=W(Q0.key,Q0.groupIndex);if(typeof c==="string")H.innerHTML=c;else H.replaceChildren(c)},E=m2(A.root,T,J.sizeCache,_,B,j.horizontal,0,()=>J.getCachedCompression().ratio,O??void 0);k=E,Z(E),J.afterScroll.push((H,d)=>{E.update(H)}),E.update(J.scrollController.getScrollTop())};X0();let n=Q.item?.striped,$=()=>{if(n!=="data"&&n!=="even"&&n!=="odd")return;let W=new Int32Array(L.length),_=n==="odd"?1:0,E=0;for(let H=0;H<L.length;H++)if(m0(L[H])){if(W[H]=-1,n==="even"||n==="odd")E=0}else W[H]=E+++_;J.setStripeIndexFn((H)=>{if(H<0||H>=W.length)return H;return W[H]})};$();let f=()=>{if(T.rebuild(G.length,F),L=u2(G,T.groups),J.rebuildSizeCache(L.length),J.dataManager.setItems(L,0,L.length),$(),X0(),k)k.refresh()};J.methods.set("setItems",(W)=>{G=W.slice(),f()}),J.methods.set("appendItems",(W)=>{G.push(...W),f()}),J.methods.set("prependItems",(W)=>{G.unshift(...W),f()}),J.methods.set("removeItem",(W)=>{G=G.filter((_)=>_.id!==W),f()}),J.methods.set("_getItems",()=>G),J.methods.set("_getTotal",()=>G.length),J.methods.set("_isGroupHeader",(W)=>{let _=L[W];return!!(_&&m0(_))}),J.methods.set("_layoutToDataIndex",(W)=>T.layoutToDataIndex(W)),J.methods.set("_dataToLayoutIndex",(W)=>T.dataToLayoutIndex(W))}function HJ(J,q,j,Q,X,Y,N,B,K,Z,O,A){let{dom:k}=J,G=J.dataManager,D=I1({getGroupForIndex:q.getGroupForIndex,headerHeight:q.header.height});Z(D);let R=typeof X==="number"?(P)=>X:X,F=(P)=>{if(D.isHeader(P)){if(Y&&D.getGroupAtLayoutIndex(P).groupIndex===0)return 0;return q.header.height}let V=D.layoutToDataIndex(P);return V>=0?R(V):R(P)};J.setSizeConfig(F),J.setVirtualTotalFn(()=>D.totalEntries||G.getTotal());let T={...G,getTotal:()=>D.totalEntries,getIndexById:(P)=>{let V=G.getIndexById(P);if(V<0)return-1;return D.dataToLayoutIndex(V)},getItem:(P)=>{let V=D.getHeaderItem(P);if(V)return V;let h=D.layoutToDataIndex(P);if(h>=0)return G.getItem(h);return G.getItem(P)},getItemsInRange:(P,V)=>{let h=[];for(let s=P;s<=V;s++){let x=T.getItem(s);if(x!==void 0)h.push(x)}return h},isItemLoaded:(P)=>{if(D.isHeader(P))return!0;let V=D.layoutToDataIndex(P);if(V>=0)return G.isItemLoaded(V);return G.isItemLoaded(P)},reload:()=>{return D.reset(),G.reload()},removeItem:(P)=>{let V=G.getIndexById(P);if(V>=0)D.removeAt(V);return G.removeItem(P)},clear:()=>{D.reset(),G.clear()},reset:()=>{D.reset(),G.reset()}};J.replaceDataManager(T);let L=Q.item.template,S=J.methods.get("_updateTableForGroups");if(S)S((P)=>m0(P),q.header.template);J.replaceTemplate((P,V,h)=>{if(m0(P))return N(P.groupKey,P.groupIndex);return L(P,V,h)});let C=null;if(Y){let P=q.header.template,V=(x,o)=>{let X0=D.groups[o];if(!X0)return;let n=P(X0.key,X0.groupIndex);if(typeof n==="string")x.innerHTML=n;else x.replaceChildren(n)},h={get groups(){return D.groups},getHeaderHeight:(x)=>D.getHeaderHeight(x)};C=m2(k.root,h,J.sizeCache,V,B,j.horizontal,0,()=>J.getCachedCompression().ratio,A??void 0),O(C);let s=C;J.afterScroll.push((x,o)=>{s.update(x)})}let g=-1;J.methods.set("_ensureTailLoaded",()=>{let P=G.getTotal();if(P<=0)return;let V=P-1;if(G.isItemLoaded(V))return;g=V,G.ensureRange(V,V)}),K((P,V,h)=>{let s=J.scrollController.getScrollTop(),x=D.groupCount,o=D.totalEntries||h,X0=0,n=0,$=J.methods.get("_restoreAnchor");if($)X0=$.dataIndex,n=$.fraction;else if(s>0){let _=J.getCachedCompression(),E=_.ratio!==1?s/_.ratio:s,H=J.sizeCache.indexAtOffset(E);if(X0=D.layoutToDataIndex(H),X0<0&&H+1<D.totalEntries)H=H+1,X0=D.layoutToDataIndex(H);let d=J.sizeCache.getOffset(H),Q0=J.sizeCache.getSize(H);n=Q0>0?(E-d)/Q0:0}D.onItemsLoaded(P,V,h),J.rebuildSizeCache(D.totalEntries);let f=J.getCachedCompression();if(J.updateContentSize(f.virtualSize),D.groupCount-x>0&&(s>0||$)){if($?.skipAdjust);else if(X0>=0){let _=D.dataToLayoutIndex(X0),E=J.sizeCache.getOffset(_),H=J.sizeCache.getSize(_),d=E+n*H,Q0=f.ratio!==1?d*f.ratio:d;if(Math.abs(Q0-s)>1)J.scrollController.scrollTo(Q0);if($){J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave");let c=J.methods.get("_saveSnapshot");if(c)c()}}}else if($){let _=$.skipAdjust;if(J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave"),!_){let E=J.methods.get("_saveSnapshot");if(E)E()}}if(C)C.refresh(),C.update(J.scrollController.getScrollTop());if(g>=0&&G.isItemLoaded(g)){let _=D.dataToLayoutIndex(g);g=-1;let E=J.methods.get("_getFocusedIndex"),H=E?E():-1;if(H>=0&&H>=o-1&&_!==H){let d=_;while(d>0&&D.isHeader(d))d--;let Q0=J.methods.get("_setFocusedIndex");if(Q0)Q0(d)}}}),J.methods.set("_isGroupHeader",(P)=>D.isHeader(P)),J.methods.set("_layoutToDataIndex",(P)=>D.layoutToDataIndex(P)),J.methods.set("_dataToLayoutIndex",(P)=>D.dataToLayoutIndex(P)),J.methods.set("_getTotal",()=>G.getTotal()),J.methods.delete("removeItem");let r=Q.item?.striped;if(r==="data"||r==="even"||r==="odd"){let P=r==="odd"?1:0;J.setStripeIndexFn((V)=>{if(D.isHeader(V))return-1;let h=D.layoutToDataIndex(V);return h>=0?h+P:V})}}var u1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.isHeaderFn,X={row:0,col:0},Y=(D)=>{if(D<=0)return 0;if(!Q)return Math.ceil(D/q);let R=0,F=0,T=0;for(let L=0;L<D;L++)if(Q(L)){if(T++,F)R++,F=0;R++,F=0}else if(F++,F>=q)R++,F=0;if(F)R++;return R},N=(D)=>{return X.row=B(D),X.col=K(D),X},B=(D)=>{if(!Q)return Math.floor(D/q);let R=0,F=0;for(let T=0;T<=D;T++)if(Q(T)){if(F)R++,F=0;if(T===D)return R;R++,F=0}else{if(T===D)return R;if(F++,F>=q)R++,F=0}return console.warn(`⚠️ getRow(${D}) fell through - returning ${R}`),R},K=(D)=>{if(!Q)return D%q;if(Q(D))return 0;let R=0;for(let F=0;F<=D;F++)if(Q(F))R=0;else{if(F===D)return R;if(R++,R>=q)R=0}return R},Z=(D,R,F)=>{if(F<=0)return{start:0,end:-1};if(!Q){let g=Math.max(0,D*q),r=Math.min(F-1,(R+1)*q-1);return{start:g,end:r}}let T=-1,L=-1,S=0,C=0;for(let g=0;g<F;g++){if(Q(g)){if(C)S++,C=0;if(S>=D&&S<=R){if(T<0)T=g;L=g}S++,C=0}else{if(S>=D&&S<=R){if(T<0)T=g;L=g}if(C++,C>=q)S++,C=0}if(S>R&&!C)break}if(T<0)return{start:0,end:-1};return{start:T,end:L}},O=(D,R,F)=>{if(R<0||R>=q)return-1;let T=D*q+R;if(T<0||T>=F)return-1;return T},A=(D)=>{let R=(q-1)*j;return Math.max(0,(D-R)/q)};return{get columns(){return q},get gap(){return j},update:(D)=>{if(D.columns!==void 0)q=Math.max(1,Math.floor(D.columns));if(D.gap!==void 0)j=D.gap;if(D.isHeaderFn!==void 0)Q=D.isHeaderFn},getTotalRows:Y,getPosition:N,getRow:B,getCol:K,getItemRange:Z,getItemIndex:O,getColumnWidth:A,getColumnOffset:(D,R)=>{let F=A(R);return D*(F+j)}}};var Y2=(J,q,j)=>{if(String(j).startsWith(d0))return!1;let Q=d0+q;if(J.has(Q))return J.delete(Q),J.add(j),!0;return!1},g1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1});var $J=(J=200)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let N=document.createElement("div");return N.setAttribute("role","option"),N},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}}},kJ=1,d2=(J,q,j,Q,X,Y,N,B,K=!1,Z,O)=>{let A=$J(),k=new Map,G=Y,D=!1,R=0,F="",T=-1,L={selected:!1,focused:!1},S=(w,I)=>{return L.selected=w,L.focused=I,L},C=`${X}-item ${X}-grid-item`,g=`${X}-group-header`,r=`${X}-item--selected`,P=`${X}-item--focused`,V=`${X}-item--placeholder`,h=`${X}-item--replaced`,s=(w,I)=>{if(typeof I==="string")w.innerHTML=I;else w.replaceChildren(I)},x=(w,I,b)=>{w.classList.toggle(r,I),w.classList.toggle(P,b)},o=(w,I)=>{let b=Q.getRow(w);if(I?.compression?.isCompressed)return T2(b,I.scrollPosition,j,I.totalItems,I.containerSize,I.compression,I.rangeStart);return j.getOffset(b)},X0=(w,I)=>{let b=Q.getCol(w),z=D&&b===0?0:Q.getColumnOffset(b,G),M;if(D){let u=Q.getRow(w),v=0,t=-1;for(let a=0;a<w;a++){let Y0=Q.getRow(a);if(Y0<u&&Y0!==t){let m=j.getSize(a);v+=m,t=Y0}}M=v}else M=o(w,I);if(K)return`translate(${Math.round(M)}px, ${Math.round(z)}px)`;return`translate(${Math.round(z)}px, ${Math.round(M)}px)`},n=(w,I)=>{let b=w.classList.contains(g),U=b?G:Q.getColumnWidth(G),z;if(D||b)z=j.getSize(I)-Q.gap;else{let M=Q.getRow(I);z=j.getSize(M)-Q.gap}if(K)w.style.width=`${z}px`,w.style.height=`${U}px`;else w.style.width=`${U}px`,w.style.height=`${z}px`},$=(w,I,b,U,z)=>{let M=A.acquire(),u=!!I.__groupHeader,v=S(b,U);if(M.className=u?g:C,M.dataset.index=String(w),M.dataset.id=String(I.id),M.dataset.row=String(Q.getRow(w)),M.dataset.col=String(Q.getCol(w)),u)M.setAttribute("role","presentation"),M.removeAttribute("aria-selected"),M.removeAttribute("aria-setsize"),M.removeAttribute("aria-posinset"),M.removeAttribute("id");else if(O!==!1){if(M.setAttribute("role","option"),M.ariaSelected=String(b),B)M.id=`${B}-item-${w}`;if(N){let Y0=N();if(Y0!==T)T=Y0,F=String(Y0);M.setAttribute("aria-setsize",F);let m=Z?Z(w):w+1;M.setAttribute("aria-posinset",String(m))}}else if(M.setAttribute("role","listitem"),M.removeAttribute("aria-selected"),N){let Y0=N();if(Y0!==T)T=Y0,F=String(Y0);M.setAttribute("aria-setsize",F);let m=Z?Z(w):w+1;M.setAttribute("aria-posinset",String(m))}n(M,w);let t=q(I,w,v);if(s(M,t),String(I.id).startsWith(d0))M.classList.add(V);return x(M,b,U),M.style.transform=z,{element:M,lastItemId:I.id,lastSelected:b,lastFocused:U,lastTransform:z,lastSeenFrame:R}},f=(w,I,b,U,z)=>{if(R++,I.start===0&&w.length)D=m0(w[0]);for(let[v,t]of k)if(v>=I.start&&v<=I.end)t.lastSeenFrame=R;else if(R-t.lastSeenFrame>kJ)A.release(t.element),k.delete(v);let M=!1;if(N){let v=N();if(v!==T)T=v,F=String(v),M=!0}let u=null;for(let v=I.start;v<=I.end;v++){let t=v-I.start,a=w[t];if(!a){console.warn(`⚠️ RENDER: Missing item at index ${v} (range: ${I.start}-${I.end}, items.length: ${w.length})`);continue}let Y0=b.has(a.id),m=v===U,e=k.get(v);if(e){let y=e.lastItemId!==a.id,p=e.lastSelected!==Y0,J0=e.lastFocused!==m;if(y){let _0=String(e.lastItemId),W0=String(a.id),U0=_0.startsWith(d0),N0=W0.startsWith(d0);if(!N0&&Y2(b,v,a.id))Y0=!0;let M0=S(Y0,m),k0=q(a,v,M0);if(s(e.element,k0),e.element.dataset.id=W0,e.element.dataset.row=String(Q.getRow(v)),e.element.dataset.col=String(Q.getCol(v)),n(e.element,v),e.element.classList.toggle(V,N0),U0&&!N0)e.element.classList.add(h),setTimeout(()=>e.element.classList.remove(h),300);if(e.lastItemId=a.id,!a.__groupHeader){let R0=Z?Z(v):v+1;e.element.setAttribute("aria-posinset",String(R0))}}if(y||p||J0)x(e.element,Y0,m),e.element.ariaSelected=String(Y0),e.lastSelected=Y0,e.lastFocused=m;let i=X0(v,z);if(e.lastTransform!==i)e.element.style.transform=i,e.lastTransform=i;if(M&&!a.__groupHeader)e.element.setAttribute("aria-setsize",F)}else{if(Y2(b,v,a.id))Y0=!0;let y=X0(v,z),p=$(v,a,Y0,m,y);if(!u)u=document.createDocumentFragment();u.appendChild(p.element),k.set(v,p)}}if(u)J.appendChild(u)},W=(w)=>{for(let[I,b]of k){let U=X0(I,w);if(b.lastTransform!==U)b.element.style.transform=U,b.lastTransform=U}},_=(w,I,b,U)=>{let z=k.get(w);if(!z)return;let M=S(b,U),u=q(I,w,M);s(z.element,u),x(z.element,b,U),z.element.dataset.id=String(I.id),z.element.ariaSelected=String(b),n(z.element,w),z.lastItemId=I.id,z.lastSelected=b,z.lastFocused=U},E=(w,I,b)=>{let U=k.get(w);if(!U)return;let z=U.lastSelected!==I,M=U.lastFocused!==b;if(z||M)x(U.element,I,b),U.lastSelected=I,U.lastFocused=b},H=(w)=>{return k.get(w)?.element},d=(w)=>{if(Math.abs(w-G)<1)return;G=w;for(let[I,b]of k){n(b.element,I);let U=X0(I);b.element.style.transform=U,b.lastTransform=U}},Q0=()=>{J2(J,k.keys(),(w)=>k.get(w)?.element)},c=()=>{for(let[,w]of k)A.release(w.element);k.clear()};return{render:f,updatePositions:W,updateItem:_,updateItemClasses:E,getElement:H,sortDOM:Q0,updateContainerWidth:d,clear:c,destroy:()=>{c(),A.clear()}}};var bJ=new Set,c2=(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:N,rawConfig:B}=Q,{classPrefix:K}=N;if(N.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let Z=N.horizontal,O=L2(u0(B.padding),Z),A=()=>{return(Z?X.viewport.clientHeight:Q.getContainerWidth())-O},k=B.items?.some((c)=>c.__groupHeader===!0),G={columns:J.columns,gap:J.gap??0};if(k)G.isHeaderFn=(c)=>{let j0=Q.dataManager.getItem(c);return!!(j0&&j0.__groupHeader===!0)};q=u1(G);let D=q.gap;Q.setVirtualTotalFn(()=>{let c=Q.dataManager.getTotal();return q.getTotalRows(c)}),Q.setItemToScrollIndexFn((c)=>Math.floor(c/G.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>Z?{ud:1,lr:G.columns,cols:G.columns}:{ud:G.columns,lr:1,cols:G.columns});let R=B.item,F=N.horizontal?R.width:R.height,T={containerWidth:A(),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 F==="function")Q.setSizeConfig((c)=>{let j0=T.containerWidth-2,w=(T.columns-1)*T.gap;return L.containerWidth=T.containerWidth,L.columns=T.columns,L.gap=T.gap,L.columnWidth=(j0-w)/T.columns,L.row=q.getRow(c),L.column=q.getCol(c),L.totalRows=q.getTotalRows(Q.dataManager.getTotal()),L.totalColumns=T.columns,F(c,L)+T.gap});else if(D>0)Q.setSizeConfig(F+D);if(Q.rebuildSizeCache(),D>0){let c=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let j0=c();return j0?j0-T.gap:0}}X.root.classList.add(`${K}--grid`);let S=A(),C=B.item.template,g=Q2(Q.methods,()=>Q.dataManager.getTotal()),r=()=>{j=d2(X.items,C,Q.sizeCache,q,K,S,g.getSetSize,N.ariaIdPrefix,N.horizontal,g.getPosInSet,N.interactive),Q.replaceRenderer(j)};r();let P=()=>{for(let c=0;c<Q.contentSizeHandlers.length;c++)Q.contentSizeHandlers[c]()};Q.setUpdateItemClassesFn((c,j0,w)=>{j?.updateItemClasses(c,j0,w)}),Q.methods.set("_updateRenderedItem",(c,j0,w,I)=>{j?.updateItem(c,j0,w,I)}),Q.methods.set("_getGridLayout",()=>q),Q.methods.set("_getGridConfig",()=>G),Q.methods.set("_replaceGridRenderer",(c)=>{j=c}),Q.methods.set("_createGridRenderer",d2),Q.methods.set("_updateGridLayoutForGroups",(c)=>{q.update({isHeaderFn:c});let j0=Q.dataManager.getTotal(),w=0;for(let I=0;I<j0;I++)if(!q.getCol(I)){let b=Q.sizeCache.getSize(I);w+=b}Q.sizeCache.getTotalSize=()=>w,Q.updateContentSize(w),r()}),Q.methods.set("updateGrid",(c)=>{if(c.columns!==void 0){if(!Number.isInteger(c.columns)||c.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");G.columns=c.columns}if(c.gap!==void 0){if(c.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");G.gap=c.gap}q?.update(G);let j0=A();T.containerWidth=j0,T.columns=G.columns,T.gap=G.gap??0,j?.updateContainerWidth(j0),Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode(),P(),j?.clear(),Q.forceRender()});let V=null,h=null,s=!1,x=()=>{if(s)return;s=!0,V=Q.methods.get("_getSelectedIds")??null,h=Q.methods.get("_getFocusedIndex")??null},o=-1,X0=-1,n=!0,$=N.overscan,f={start:0,end:0},W={start:0,end:0},_=()=>{if(Q.state.isDestroyed)return;let c=Q.scrollController.getScrollTop(),j0=Q.state.viewportState.containerSize;if(!n&&c===o&&j0===X0)return;o=c,X0=j0,n=!1;let w=Q.getVirtualTotal();Q.getVisibleRange(c,j0,w,f),W.start=Math.max(0,f.start-$),W.end=Math.min(w-1,f.end+$);let I=Q.state.viewportState;I.scrollPosition=c,I.visibleRange.start=f.start,I.visibleRange.end=f.end,I.renderRange.start=W.start,I.renderRange.end=W.end;let b=Q.state.lastRenderRange,U=I.isCompressed,z=b.start!==W.start||b.end!==W.end;if(!z&&U){j.updatePositions(Q.getCompressionContext());return}let M=q.getItemRange(W.start,W.end,Q.dataManager.getTotal()),u=Q.dataManager.getItemsInRange(M.start,M.end),v=U?Q.getCompressionContext():void 0;x();let t=V?V():bJ,a=h?h():-1;if(j.render(u,M,t,a,v),z)b.start=W.start,b.end=W.end,Y.emit("range:change",{range:{start:W.start,end:W.end}})},E=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,n=!0,_()};Q.setRenderFns(_,E);let H=typeof F==="function";Q.resizeHandlers.push((c,j0)=>{let w=(Z?j0:c)-O;if(Math.abs(w-T.containerWidth)<1)return;if(T.containerWidth=w,j?.updateContainerWidth(w),H)Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode(),P(),j?.clear(),Q.forceRender()});let{animateScroll:d,cancelScroll:Q0}=q2(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",Q0),Q.methods.set("scrollToIndex",(c,j0)=>{let w=Math.floor(c/J.columns),{align:I,behavior:b,duration:U}=l0(j0),z=Q.dataManager.getState(),M=q.getTotalRows(z.total),u=Math.max(0,Math.min(w,M-1)),v=Q.adjustScrollPosition(V2(u,Q.sizeCache,Q.state.viewportState.containerSize,M,I,Q.getCachedCompression()));if(b==="smooth")d(Q.scrollController.getScrollTop(),v,U);else Q0(),Q.scrollController.scrollTo(v)}),!Q.methods.has("_getTotal"))Q.methods.set("_getTotal",()=>Q.dataManager.getTotal());Q.methods.set("_layoutToDataIndex",(c)=>c*J.columns),Q.methods.set("_dataToLayoutIndex",(c)=>Math.floor(c/J.columns)),Q.idleHandlers.push(()=>{j?.sortDOM()}),Q.destroyHandlers.push(()=>{Q0(),j?.destroy(),j=null,X.root.classList.remove(`${K}--grid`)})},destroy(){j?.destroy(),j=null}}};var m1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.containerSize,X=0,Y=[],N=()=>{let R=(q-1)*j;X=Math.max(0,(Q-R)/q),Y=Array(q);let F=X+j;for(let T=0;T<q;T++)Y[T]=T*F};N();let B=[],K=0,Z=[],O=(R,F)=>{if(R<=0)return K=0,B=[],[];let T=Array(q).fill(0),L=Array(q);for(let g=0;g<q;g++)L[g]=[];let S=Array(R);for(let g=0;g<R;g++){let r=0,P=T[0];for(let s=1;s<q;s++){let x=T[s];if(x<P)P=x,r=s}let V=F(g),h=T[r];S[g]={index:g,x:Y[r],y:h,lane:r,size:V,crossSize:X},L[r].push(g),T[r]=h+V+j}B=L;let C=0;for(let g=0;g<q;g++){let r=T[g],P=r>0?r-j:0;if(P>C)C=P}return K=C,S},A=(R)=>{if(R.length===0)return K;if(K)return K;let F=Array(q).fill(0);for(let L of R){let S=L.y+L.size,C=F[L.lane];if(S>C)F[L.lane]=S}let T=0;for(let L=0;L<q;L++)if(F[L]>T)T=F[L];return T},k=(R,F,T)=>{if(R.length===0||T<=F)return Z.length=0,Z;if(B.length===0||B.length!==q)return G(R,F,T);Z.length=0;for(let L=0;L<q;L++){let S=B[L],C=S.length;if(!C)continue;let g=0,r=C;while(g<r){let P=g+r>>>1,V=R[S[P]];if(V.y+V.size<=F)g=P+1;else r=P}for(let P=g;P<C;P++){let V=R[S[P]];if(V.y>=T)break;Z.push(V)}}return Z},G=(R,F,T)=>{Z.length=0;for(let L of R)if(L.y+L.size>F&&L.y<T)Z.push(L);return Z};return{get columns(){return q},get gap(){return j},get containerSize(){return Q},update:(R)=>{let F=!1;if(R.columns!==void 0){let T=Math.max(1,Math.floor(R.columns));if(T!==q)q=T,F=!0}if(R.gap!==void 0&&R.gap!==j)j=R.gap,F=!0;if(R.containerSize!==void 0&&R.containerSize!==Q)Q=R.containerSize,F=!0;if(F)N()},calculateLayout:O,getTotalSize:A,getVisibleItems:k}};var RJ=(J=200)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let N=document.createElement("div");return N.setAttribute("role","option"),N},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}}},PJ=1,x1=(J,q,j,Q=!1,X,Y,N,B)=>{let K=RJ(),Z=new Map,O=new Set,A=0,k="",G=-1,D={selected:!1,focused:!1},R=(n,$)=>{return D.selected=n,D.focused=$,D},F=`${j}-item ${j}-masonry-item`,T=`${j}-group-header`,L=`${j}-item--selected`,S=`${j}-item--focused`,C=(n,$)=>{if(typeof $==="string")n.innerHTML=$;else n.replaceChildren($)},g=(n,$,f)=>{n.classList.toggle(L,$),n.classList.toggle(S,f)},r=(n,$)=>{if(Q)n.style.transform=`translate(${Math.round($.y)}px, ${Math.round($.x)}px)`;else n.style.transform=`translate(${Math.round($.x)}px, ${Math.round($.y)}px)`},P=(n,$)=>{if(Q)n.style.width=`${$.size}px`,n.style.height=`${$.crossSize}px`;else n.style.width=`${$.crossSize}px`,n.style.height=`${$.size}px`},V=(n,$,f,W,_)=>{let E=K.acquire(),H=$.__groupHeader,d=R(W,_);if(E.className=H?T:F,E.dataset.index=String(n),E.dataset.id=String($.id),E.dataset.lane=String(f.lane),H)E.setAttribute("role","presentation"),E.removeAttribute("aria-selected"),E.removeAttribute("aria-setsize"),E.removeAttribute("aria-posinset"),E.removeAttribute("id");else if(B!==!1){if(E.setAttribute("role","option"),E.ariaSelected=String(W),Y)E.id=`${Y}-item-${n}`;if(X){let c=X();if(c!==G)G=c,k=String(c);E.setAttribute("aria-setsize",k);let j0=N?N(n):n+1;E.setAttribute("aria-posinset",String(j0))}}else if(E.setAttribute("role","listitem"),E.removeAttribute("aria-selected"),X){let c=X();if(c!==G)G=c,k=String(c);E.setAttribute("aria-setsize",k);let j0=N?N(n):n+1;E.setAttribute("aria-posinset",String(j0))}P(E,f);let Q0=q($,n,d);return C(E,Q0),g(E,W,_),r(E,f),{element:E,lastItemId:$.id,lastSelected:W,lastFocused:_,lastY:f.y,lastX:f.x,lastSize:f.size,lastCrossSize:f.crossSize,lastSeenFrame:A}},h=(n,$,f,W)=>{A++,O.clear();for(let E=0;E<$.length;E++)O.add($[E].index);for(let[E,H]of Z)if(O.has(E))H.lastSeenFrame=A;else if(A-H.lastSeenFrame>PJ)K.release(H.element),Z.delete(E);let _=null;for(let E=0;E<$.length;E++){let H=$[E],d=H.index,Q0=n(d);if(!Q0)continue;let c=f.has(Q0.id),j0=d===W,w=Z.get(d);if(w){let I=w.lastItemId!==Q0.id,b=w.lastSelected!==c,U=w.lastFocused!==j0,z=w.lastY!==H.y||w.lastX!==H.x,M=w.lastSize!==H.size||w.lastCrossSize!==H.crossSize;if(I){let u=R(c,j0),v=q(Q0,d,u);if(C(w.element,v),w.element.dataset.id=String(Q0.id),w.lastItemId=Q0.id,!Q0.__groupHeader){let a=N?N(d):d+1;w.element.setAttribute("aria-posinset",String(a))}}if(I||b||U)g(w.element,c,j0),w.element.ariaSelected=String(c),w.lastSelected=c,w.lastFocused=j0;if(M)P(w.element,H),w.lastSize=H.size,w.lastCrossSize=H.crossSize;if(z)r(w.element,H),w.lastY=H.y,w.lastX=H.x}else{let I=V(d,Q0,H,c,j0);if(!_)_=document.createDocumentFragment();_.appendChild(I.element),Z.set(d,I)}}if(_)J.appendChild(_)},s=()=>{for(let n of Z.values())K.release(n.element);Z.clear(),J.innerHTML=""};return{render:h,getElement:(n)=>Z.get(n)?.element,updateItemClasses:(n,$,f)=>{let W=Z.get(n);if(!W)return;let _=W.lastSelected!==$,E=W.lastFocused!==f;if(_||E)g(W.element,$,f),W.lastSelected=$,W.lastFocused=f},sortDOM:()=>{J2(J,Z.keys(),(n)=>Z.get(n)?.element)},clear:s,destroy:()=>{s(),K.clear()}}};var yJ=new Set,wJ=100,l2=(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:N,config:B,rawConfig:K}=X,Z=B.classPrefix,O=B.horizontal;if(B.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");Y.root.classList.add(`${Z}--masonry`);let A=u0(K.padding),k=L2(A,O),G=e0(A,O),D=()=>(O?Y.viewport.clientHeight:Y.viewport.clientWidth)-k;q=m1({columns:J.columns,gap:J.gap??0,containerSize:D()});let R=K.item,F=O&&R.width?R.width:R.height,T={containerWidth:0,columns:0,gap:0,columnWidth:0},L=typeof F==="function"?(U)=>F(U,T):()=>F,S=()=>{let U=X.dataManager.getTotal(),z=q,M=z.columns,u=z.gap;T.containerWidth=z.containerSize,T.columns=M,T.gap=u;let v=(M-1)*u;T.columnWidth=Math.max(0,(T.containerWidth-v)/M),Q=z.calculateLayout(U,L),h();let t=z.getTotalSize(Q);X.sizeCache.getTotalSize=()=>t,X.updateContentSize(t)},C=K.item.template,g=Q2(X.methods,()=>X.dataManager.getTotal());j=x1(Y.items,C,Z,O,g.getSetSize,B.ariaIdPrefix,g.getPosInSet,B.interactive),X.setUpdateItemClassesFn((U,z,M)=>{j?.updateItemClasses(U,z,M)});let r=[],P=new Int32Array(0),V=[],h=()=>{let U=q.columns,z=Q.length;r=Array(U);for(let M=0;M<U;M++)r[M]=[];if(P.length<z)P=new Int32Array(z);for(let M=0;M<z;M++){let u=Q[M],v=r[u.lane].length;r[u.lane].push(M),P[M]=v}V=Array(U);for(let M=0;M<U;M++){let u=r[M],v=new Float64Array(u.length);for(let t=0;t<u.length;t++){let a=Q[u[t]];v[t]=a.y+a.size*0.5}V[M]=v}};X.methods.set("_getNavTotal",()=>X.dataManager.getTotal());let s=(U,z)=>{let M=U.length;if(!M)return-1;let u=0,v=M-1;while(u<v){let t=u+v>>1;if(U[t]<z)u=t+1;else v=t}if(u>0&&Math.abs(U[u-1]-z)<=Math.abs(U[u]-z))return u-1;return u};X.methods.set("_navigate",(U,z,M)=>{let u=Q[U];if(!u)return U;let v=u.lane,t=q.columns,a=P[U],Y0=r[v];switch(O?z==="ArrowDown"?"ArrowRight":z==="ArrowUp"?"ArrowLeft":z==="ArrowRight"?"ArrowDown":z==="ArrowLeft"?"ArrowUp":z:z){case"ArrowDown":{if(a+1<Y0.length)return Y0[a+1];return U}case"ArrowUp":{if(a>0)return Y0[a-1];return U}case"ArrowRight":{if(v>=t-1)return U;let e=v+1,y=u.y+u.size*0.5,p=r[e];if(!p.length)return U;let J0=s(V[e],y);return J0>=0?p[J0]:U}case"ArrowLeft":{if(v<=0)return U;let e=v-1,y=u.y+u.size*0.5,p=r[e];if(!p.length)return U;let J0=s(V[e],y);return J0>=0?p[J0]:U}case"Home":return 0;case"End":return M-1;case"PageDown":{let e=X.state.viewportState.containerSize,y=u.size>0?u.size:150,p=Math.max(1,Math.floor(e/y)),J0=Math.min(a+p,Y0.length-1);return Y0[J0]}case"PageUp":{let e=X.state.viewportState.containerSize,y=u.size>0?u.size:150,p=Math.max(1,Math.floor(e/y)),J0=Math.max(0,a-p);return Y0[J0]}}return U}),X.methods.set("_scrollItemIntoView",(U)=>{let z=Q[U];if(!z)return;let M=X.scrollController.getScrollTop(),u=X.state.viewportState.containerSize,v=z.y,t=v+z.size;if(v<M)X.scrollController.scrollTo(X.adjustScrollPosition(Math.max(0,v)));else if(t>M+u)X.scrollController.scrollTo(X.adjustScrollPosition(t-u))});let x=null,o=null,X0=!1,n=()=>{if(X0)return;X0=!0,x=X.methods.get("_getSelectedIds")??null,o=X.methods.get("_getFocusedIndex")??null},$=(U)=>X.dataManager.getItem(U),f=-1,W=-1,_=!0,E=B.overscan*wJ,H=()=>{if(X.state.isDestroyed)return;n();let U=X.scrollController.getScrollTop(),z=X.state.viewportState.containerSize;if(!_&&U===f&&z===W)return;f=U,W=z,_=!1;let M=Math.max(0,U-E),u=U+z+E,v=q.getVisibleItems(Q,M,u),t=x?.()??yJ,a=o?.()??-1;if(j&&v.length)j.render($,v,t,a);let Y0=X.state.viewportState;Y0.scrollPosition=U;let m=v.length,e=m?v[0].index:0,y=m?v[m-1].index:0;Y0.visibleRange.start=e,Y0.visibleRange.end=y,Y0.renderRange.start=e,Y0.renderRange.end=y;let p=X.state.lastRenderRange;if(p.start!==e||p.end!==y)p.start=e,p.end=y,N.emit("range:change",{range:{start:e,end:y}})},d=()=>{X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,_=!0,H()};X.setRenderFns(H,d);let Q0=(U,z)=>{let M=(O?z:U)-k;if(q&&q.containerSize!==M)q.update({containerSize:M}),S(),j?.clear(),d()};X.resizeHandlers.push(Q0);let c=()=>{S(),d()},j0=X.dataManager,w=(U)=>{if(typeof j0[U]!=="function")return;let z=j0[U].bind(j0);j0[U]=(...M)=>{z(...M),c()}};w("setItems"),w("appendItems"),w("prependItems"),w("updateItem"),w("removeItem");let{animateScroll:I,cancelScroll:b}=q2(X.scrollController,X.renderIfNeeded);X.methods.set("cancelScroll",b),X.methods.set("scrollToIndex",(U,z)=>{let M=Q[U];if(!M)return;let{align:u,behavior:v,duration:t}=l0(z),a=M.y,Y0=X.state.viewportState.containerSize,m=a;if(u==="center")m=a-Y0/2+M.size/2;else if(u==="end"){m=a-Y0+M.size;let e=q.getTotalSize(Q);if(U===Q.length-1)m=Math.max(0,e+G-Y0)}if(m=X.adjustScrollPosition(Math.max(0,m)),v==="smooth")I(X.scrollController.getScrollTop(),m,t);else b(),X.scrollController.scrollTo(m)}),S(),X.idleHandlers.push(()=>{j?.sortDOM()}),X.destroyHandlers.push(()=>{b(),j?.destroy(),Y.root.classList.remove(`${Z}--masonry`)})}}};var r2=(J)=>{let q=J?.mode??"single",j=J?.followFocus??!1,Q=J?.initial,X=J?.shiftArrowToggle??"origin",Y=J?.focusOnClick??!1,N=J?.contextMenu??"select",B=g1(Q),K=B.selected,Z=null,O=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(A){let{dom:k,emitter:G,config:D}=A,{classPrefix:R,ariaIdPrefix:F}=D,T=()=>k.root.getAttribute("role")==="grid"?k.root:k.items;if(q==="none"){A.methods.set("select",()=>{}),A.methods.set("deselect",()=>{}),A.methods.set("toggleSelect",()=>{}),A.methods.set("selectAll",()=>{}),A.methods.set("clearSelection",()=>{}),A.methods.set("getSelected",()=>[]),A.methods.set("getSelectedItems",()=>[]),A.methods.set("setSelectionMode",()=>{}),A.methods.set("selectNext",()=>{}),A.methods.set("selectPrevious",()=>{}),A.methods.set("_focusById",()=>{}),A.methods.set("_getFocusedId",()=>{return});return}k.root.classList.add(`${R}--selectable`);let L=()=>A.methods.get("_isGroupHeader"),S=()=>A.methods.get("_layoutToDataIndex"),C=()=>A.methods.get("_dataToLayoutIndex"),g=(y)=>{let p=L();return p?p(y):!1},r=(y,p,J0)=>{if(!L())return y;let i=y;while(i>=0&&i<J0){if(!g(i))return i;i+=p}i=y-p;while(i>=0&&i<J0){if(!g(i))return i;i-=p}return y},P=(y)=>{B.focusedIndex=y},V=(y,p,J0=!1)=>{if(p===0)return;let i=B.focusedIndex+y;if(i<0)i=J0?p-1:0;else if(i>=p)i=J0?0:p-1;P(i)},h=(y)=>{if(q==="single"){if(K.clear(),y.length>0)K.add(y[0])}else for(let p of y)K.add(p)},s=(y)=>{if(q==="single")K.clear();K.add(y)},x=(y)=>{if(K.has(y))K.delete(y);else s(y)},o=(y,p,J0)=>{if(q!=="multiple")return;let i=Math.min(p,J0),_0=Math.max(p,J0);for(let W0=i;W0<=_0;W0++){let U0=y[W0];if(U0)K.add(U0.id)}},X0=()=>Array.from(K),n=(y)=>{let p=[];for(let J0 of K){let i=y(J0);if(i)p.push(i)}return p},$=new Map,f=()=>{$.clear();let y=A.dataManager.getTotal(),p=A.dataManager.getCached();if(p===0)return;if(p>=y){for(let i=0;i<y;i++){let _0=A.dataManager.getItem(i);if(_0)$.set(_0.id,i)}return}let J0=A.dataManager.getStorage();if(J0&&typeof J0.getLoadedRanges==="function"){let i=J0.getLoadedRanges();for(let _0 of i)for(let W0=_0.start;W0<=_0.end;W0++){let U0=A.dataManager.getItem(W0);if(U0&&!U0._isPlaceholder)$.set(U0.id,W0)}}};G.on("data:change",({type:y,id:p})=>{if(y==="remove"){K.delete(p),f();let J0=A.dataManager.getTotal();if(J0>0&&B.focusedIndex>=0){let i=Math.min(B.focusedIndex,J0-1);B.focusedIndex=r(i,1,J0)}}}),G.on("load:end",({items:y,offset:p})=>{if(!y||y.length===0)return;if(p!==void 0)for(let J0=0;J0<y.length;J0++){let i=y[J0];if(i&&i.id!==void 0)$.set(i.id,p+J0)}else f()}),f(),A.methods.set("_getSelectedIds",()=>{return K}),A.methods.set("_getFocusedIndex",()=>{return B.focusVisible?B.focusedIndex:-1}),A.methods.set("_seedSelection",(y)=>{for(let p of y)K.add(p)});let{forceRender:W}=A.getRenderFns(),_=()=>{W();let y=(p)=>{let J0=$.get(p);if(J0===void 0)return;return A.dataManager.getItem(J0)};G.emit("selection:change",{selected:X0(),items:n(y)})},E=u0(A.rawConfig.padding),H=D.horizontal?E.left:E.top,d=D.horizontal?E.right:E.bottom,Q0=A.getItemToScrollIndexFn(),c=null,j0=null,w=null,I=!1,b=()=>{if(I)return;I=!0,c=A.methods.get("_getNavDelta")??null,j0=A.methods.get("_navigate")??null,w=A.methods.get("_scrollItemIntoView")??null},U=()=>{return b(),c?c():{ud:1,lr:0,cols:0}},z=(y)=>{if(y<0)return;if(b(),w)w(y);else{let p=A.state.viewportState.containerSize,J0=A.state.viewportState.scrollPosition,i=A.dataManager.getTotal(),_0=A.getCachedCompression(),{visibleRange:W0}=A.state.viewportState,U0=Q0(y),N0=F2(U0,A.sizeCache,J0,p,H,d,_0,i,W0);if(N0!==J0)A.scrollController.scrollTo(A.adjustScrollPosition(N0))}},M=()=>{let y=Q0(Math.max(0,B.focusedIndex)),p=A.sizeCache.getSize(y),{ud:J0}=U();return Math.max(J0,Math.floor(A.state.viewportState.containerSize/p)*J0)};Z=document.createElement("div"),Z.setAttribute("aria-live","polite"),Z.setAttribute("aria-atomic","true"),Z.className=`${R}-live-region`,Z.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",(k.root.getAttribute("role")==="grid"?k.root.parentElement??k.root:k.root).appendChild(Z);let v=Z;G.on("selection:change",({selected:y})=>{let p=y.length;if(p===0)v.textContent="";else if(p===1)v.textContent="1 item selected";else v.textContent=`${p} items selected`});let t=()=>{if(A.state.isDestroyed)return;let y=T();if(!y.matches(":focus-visible")&&!k.root.matches(":focus-visible"))return;let p=A.dataManager.getTotal();if(p===0)return;let J0=B.focusedIndex>=0?Math.min(B.focusedIndex,p-1):0;J0=r(J0,1,p),P(J0),B.focusVisible=!0,y.setAttribute("aria-activedescendant",`${F}-item-${J0}`),z(J0);let i=A.dataManager.getItem(J0);if(i)A.renderer.updateItemClasses(J0,K.has(i.id),!0)};if(D.interactive)k.root.addEventListener("focusin",t);let a=(y)=>{if(A.state.isDestroyed)return;let p=y.relatedTarget;if(p&&k.root.contains(p))return;let J0=B.focusedIndex;if(B.focusVisible=!1,T().removeAttribute("aria-activedescendant"),J0>=0){let i=A.dataManager.getItem(J0);if(i)A.renderer.updateItemClasses(J0,K.has(i.id),!1)}};if(D.interactive)k.root.addEventListener("focusout",a);let Y0=(y)=>{let p=y.target.closest("[data-index]");if(!p)return null;let J0=parseInt(p.dataset.index??"-1",10);if(J0<0)return null;let i=A.dataManager.getItem(J0);if(!i||g(J0))return null;return{item:i,index:J0}},m=(y)=>{P(y),B.focusVisible=Y,O=y,T().setAttribute("aria-activedescendant",`${F}-item-${y}`)};if(A.clickHandlers.push((y)=>{if(A.state.isDestroyed)return;let p=Y0(y);if(!p)return;let{item:J0,index:i}=p;if(G.emit("item:click",{item:J0,index:i,event:y}),q==="multiple"&&y.shiftKey&&B.focusedIndex>=0){let _0=O>=0?O:B.focusedIndex;o(A.getAllLoadedItems(),_0,i),m(i),_();return}m(i),x(J0.id),_()}),N==="select")A.contextMenuHandlers.push((y)=>{if(A.state.isDestroyed)return;let p=Y0(y);if(!p)return;if(!K.has(p.item.id))K.clear(),K.add(p.item.id),m(p.index),_()});if(D.interactive)A.keydownHandlers.push((y)=>{if(A.state.isDestroyed)return;let p=A.dataManager.getTotal(),J0=B.focusedIndex,i=!1,_0=!1,W0=B;if(b(),j0)switch(y.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let U0=j0(B.focusedIndex,y.key,p);if(U0!==B.focusedIndex)P(U0),W0=B,W0.focusVisible=!0,i=!0,_0=!0;else{y.preventDefault();return}break}}if(!i)switch(y.key){case"ArrowUp":V(-U().ud,p,D.wrap),W0=B,W0.focusVisible=!0,i=!0,_0=!0;break;case"ArrowDown":V(U().ud,p,D.wrap),W0=B,W0.focusVisible=!0,i=!0,_0=!0;break;case"ArrowLeft":{let{lr:U0}=U();if(U0)V(-U0,p,D.wrap),W0=B,W0.focusVisible=!0,i=!0,_0=!0;break}case"ArrowRight":{let{lr:U0}=U();if(U0)V(U0,p,D.wrap),W0=B,W0.focusVisible=!0,i=!0,_0=!0;break}case"PageUp":case"PageDown":{let U0=M(),N0=S(),M0=C();if(N0&&M0){let k0=N0(B.focusedIndex),F0=y.key==="PageUp"?-U0:U0,R0=N0(p-1),H0=Math.max(0,Math.min(R0,k0+F0));P(M0(H0))}else V(y.key==="PageUp"?-U0:U0,p);W0=B,W0.focusVisible=!0,i=!0,_0=!0;break}case"Home":{if(p>0)P(0);W0=B,W0.focusVisible=!0,i=!0,_0=!0;break}case"End":{if(p>0)P(p-1);W0=B;let U0=A.methods.get("_ensureTailLoaded");if(U0)U0();W0.focusVisible=!0,i=!0,_0=!0;break}}switch(y.key){case" ":case"Enter":if(y.key===" "&&y.shiftKey&&q==="multiple"&&B.focusedIndex>=0){if(O>=0){let U0=A.getAllLoadedItems();o(U0,O,B.focusedIndex),W0=B}W0.focusVisible=!0,i=!0;break}if(B.focusedIndex>=0&&!g(B.focusedIndex)){let U0=A.dataManager.getItem(B.focusedIndex);if(U0)x(U0.id),W0=B,W0.focusVisible=!0;O=B.focusedIndex,i=!0}break;case"a":if((y.ctrlKey||y.metaKey)&&q==="multiple"){let U0=A.getAllLoadedItems();if(K.size===U0.length)K.clear();else for(let N0 of U0)K.add(N0.id);W0=B,W0.focusVisible=!0,i=!0,_0=!1}break;case"Delete":case"Backspace":if(K.size>0){let U0=(N0)=>{let M0=$.get(N0);return M0===void 0?void 0:A.dataManager.getItem(M0)};G.emit("delete",{selected:X0(),items:n(U0)}),i=!0}break}if(_0&&L()){let U0=W0.focusedIndex>J0?1:-1;W0.focusedIndex=r(W0.focusedIndex,U0,p)}if(y.shiftKey&&q==="multiple"&&_0&&W0.focusedIndex>=0){let U0=y.key==="ArrowUp"||y.key==="ArrowDown"||y.key==="ArrowLeft"||y.key==="ArrowRight",N0=(y.ctrlKey||y.metaKey)&&(y.key==="Home"||y.key==="End");if(U0){if(X==="origin"){if(J0>=0){let M0=A.dataManager.getItem(J0);if(M0)x(M0.id),W0=B}}else{let M0=A.dataManager.getItem(W0.focusedIndex);if(M0)x(M0.id),W0=B}O=W0.focusedIndex,_0=!1}else if(N0){let M0=A.getAllLoadedItems(),k0=J0>=0?J0:W0.focusedIndex;o(M0,k0,W0.focusedIndex),W0=B,O=W0.focusedIndex,_0=!1}}if(j&&q==="single"&&_0&&W0.focusedIndex>=0){let U0=A.dataManager.getItem(W0.focusedIndex);if(U0)s(U0.id),W0=B;_0=!1}if(i){y.preventDefault(),B=W0;let U0=B.focusedIndex;if(U0>=0)z(U0),T().setAttribute("aria-activedescendant",`${F}-item-${U0}`);else T().removeAttribute("aria-activedescendant");if(_0){let{selected:N0}=B;if(J0>=0&&J0!==U0){let M0=A.dataManager.getItem(J0);if(M0)A.renderer.updateItemClasses(J0,N0.has(M0.id),!1)}if(U0>=0){let M0=A.dataManager.getItem(U0);if(M0)A.renderer.updateItemClasses(U0,N0.has(M0.id),!0)}}else _();if(U0>=0&&U0!==J0){let N0=A.dataManager.getItem(U0);if(N0)G.emit("focus:change",{id:N0.id,index:U0})}}});A.methods.set("select",(...y)=>{if(h(y),y.length>0){let p=$.get(y[0]);if(p===void 0)f(),p=$.get(y[0]);if(p!==void 0)P(p)}_()}),A.methods.set("deselect",(...y)=>{for(let p of y)K.delete(p);_()}),A.methods.set("toggleSelect",(y)=>{x(y),_()}),A.methods.set("selectAll",()=>{if(q!=="multiple")return;let y=A.getAllLoadedItems();K.clear();for(let p of y)K.add(p.id);f(),_()}),A.methods.set("clearSelection",()=>{K.clear(),_()}),A.methods.set("getSelected",()=>{return X0()}),A.methods.set("getSelectedItems",()=>{return n((p)=>{let J0=$.get(p);return J0===void 0?void 0:A.dataManager.getItem(J0)})});let e=(y)=>{let p=A.dataManager.getTotal();if(p===0)return;if(b(),j0){let W0=y==="next"?"ArrowDown":"ArrowUp",U0=j0(B.focusedIndex,W0,p);P(U0)}else{let{ud:W0}=U();V(y==="next"?W0:-W0,p,D.wrap)}let J0=y==="next"?1:-1;B.focusedIndex=r(B.focusedIndex,J0,p);let i=B.focusedIndex,_0=A.dataManager.getItem(i);if(!_0)return;s(_0.id),z(i),_()};A.methods.set("selectNext",()=>{e("next")}),A.methods.set("selectPrevious",()=>{e("previous")}),A.methods.set("_focusById",(y)=>{let p=$.get(y);if(p!==void 0){let i=A.dataManager.getItem(p);if(!i||i.id!==y)p=void 0}if(p===void 0){if(f(),p=$.get(y),p===void 0)return}P(p);let J0=A.dataManager.getItem(p);if(J0)G.emit("focus:change",{id:J0.id,index:p})}),A.methods.set("_getFocusedId",()=>{let y=B.focusedIndex;if(y<0)return;return A.dataManager.getItem(y)?.id}),A.methods.set("_setFocusedIndex",(y)=>{P(y),B.focusVisible=!0,z(y),T().setAttribute("aria-activedescendant",`${F}-item-${y}`),A.renderIfNeeded()}),A.destroyHandlers.push(()=>{if(v&&v.parentNode)v.remove();k.root.removeEventListener("focusin",t),k.root.removeEventListener("focusout",a)})},destroy(){if(Z&&Z.parentNode)Z.remove();Z=null}}};var zJ=(J)=>{try{let q=sessionStorage.getItem(J);if(!q)return;return JSON.parse(q)}catch{return}},s2=(J)=>{let q=J?.autoSave,j=q?zJ(q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){let X=()=>{let K=Q.scrollController.getScrollTop(),Z=Q.getCachedCompression(),O=Q.getVirtualTotal(),k=Q.methods.get("getSelected")?.();if(O===0){let C={index:0,offsetInItem:0,total:0};if(k?.length)C.selectedIds=k;return C}let G,D;if(Z.isCompressed&&Z.ratio!==1){let g=K/Z.virtualSize*O;G=Math.max(0,Math.min(Math.floor(g),O-1)),D=(g-G)*Q.sizeCache.getSize(G)}else G=Q.sizeCache.indexAtOffset(K),D=K-Q.sizeCache.getOffset(G);D=Math.max(0,D);let R={index:G,offsetInItem:D,total:O,scrollTop:K},F=Q.sizeCache.getSize(G);if(F)R.offsetRatio=D/F;let T=Q.methods.get("_layoutToDataIndex");if(T){let C=T(G);if(C<0){for(let g=G+1;g<O;g++)if(C=T(g),C>=0)break}if(C>=0)R.dataIndex=C}let L=Q.methods.get("_getTotal");if(L)R.dataTotal=L();if(k?.length)R.selectedIds=k;let S=Q.methods.get("_getFocusedId");if(S){let C=S();if(C!==void 0)R.focusedId=C}return R};Q.methods.set("getScrollSnapshot",X);let Y=(K,Z=!0)=>{let{index:O,offsetInItem:A,selectedIds:k,focusedId:G}=K,D=Q.getVirtualTotal(),R=K.dataTotal??K.total;if(D===0&&R&&R>0){Q.dataManager.setTotal(R);let $=Q.getVirtualTotal();Q.sizeCache.rebuild($),Q.updateCompressionMode();let f=Q.getCachedCompression();if(!f.isCompressed)Q.updateContentSize(f.virtualSize)}else if(D===0)return;if(!Number.isFinite(O)||!Number.isFinite(A))return;let F=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==F){Q.sizeCache.rebuild(F),Q.updateCompressionMode();let $=Q.getCachedCompression();if(!$.isCompressed)Q.updateContentSize($.virtualSize)}let L=Q.getCachedCompression(),S=Q.methods.get("_dataToLayoutIndex"),C=O;if(K.dataIndex!==void 0&&K.dataIndex>=0)C=S?S(K.dataIndex):K.dataIndex;else if(S)C=S(O);let g=Math.max(0,Math.min(C,F-1)),r=Q.sizeCache.getSize(g),P=K.offsetRatio!==void 0?K.offsetRatio*r:Math.min(A,r),V;if(L.isCompressed&&L.ratio!==1){let $=Q.methods.get("_getTotal")?.(),f=$!==void 0&&K.dataTotal===$;if(K.scrollTop!==void 0&&(K.total===F||f))V=K.scrollTop;else{let W=r?P/r:0;V=(g+W)/F*L.virtualSize}}else V=Q.sizeCache.getOffset(g)+P;let h=Q.state.viewportState.containerSize,s=L.isCompressed?Q.state.viewportState.totalSize:L.virtualSize,x=Math.max(0,s-h);V=Math.max(0,Math.min(V,x));let o=V===K.scrollTop;if(K.dataIndex!==void 0&&K.dataIndex>=0){let $=r?P/r:0;Q.methods.set("_restoreAnchor",{dataIndex:K.dataIndex,fraction:$,skipAdjust:o}),Q.methods.set("_suppressSave",1)}if(Q.scrollController.scrollTo(V),Z&&k?.length){let $=Q.methods.get("select");if($)$(...k)}let X0=Q.methods.get("loadVisibleRange"),n=()=>{if(G===void 0)return;let $=Q.methods.get("_focusById");if($)$(G)};if(X0){let $=0,f=()=>{if(Q.state.viewportState.containerSize){if(Math.abs(Q.scrollController.getScrollTop()-V)>1)Q.scrollController.scrollTo(V);X0().then(n)}else if(++$<10)requestAnimationFrame(f)};requestAnimationFrame(f)}else{let $=Q.methods.get("reload");if($)requestAnimationFrame(()=>{$().then(n)});else requestAnimationFrame(n)}};Q.methods.set("restoreScroll",Y);let N=!!(j&&q),B=null;if(q){B=()=>{if(N||Q.methods.has("_suppressSave"))return;let O=Q.methods.get("getScrollSnapshot");if(!O)return;let A=O();try{sessionStorage.setItem(q,JSON.stringify(A))}catch{}},Q.methods.set("_saveSnapshot",B);let K=0,Z=()=>{if(K)return;K=requestAnimationFrame(()=>{K=0,B()})};if(Q.idleHandlers.push(Z),Q.emitter.on("selection:change",Z),Q.emitter.on("focus:change",Z),j&&j.total&&j.total>0){let O=Q.methods.get("_cancelAutoLoad");if(O)O();Q.dataManager.setTotal(j.total)}}if(j){let K=!0;if(j.selectedIds?.length){let Z=Q.methods.get("_seedSelection");if(Z)Z(j.selectedIds),K=!1}queueMicrotask(()=>{if(Y(j,K),N=!1,B)B()})}}}};var d1=(J,q=50,j=1/0,Q=!0)=>{let X=J,Y=[],N=0,B=()=>{Y=X.map((F,T)=>({def:F,index:T,width:0,minWidth:CJ(F.minWidth??q,1),maxWidth:F.maxWidth??j,resizable:F.resizable??Q,offset:0}))},K=(F)=>{if(Y.length===0){N=0;return}let T=0,L=0;for(let S=0;S<Y.length;S++){let C=Y[S],g=C.def;if(g.width!==void 0)C.width=a2(g.width,C.minWidth,C.maxWidth),T+=C.width;else L++}if(L){let C=Math.max(0,F-T)/L;for(let g=0;g<Y.length;g++){let r=Y[g];if(r.def.width===void 0)r.width=a2(C,r.minWidth,r.maxWidth)}}Z()},Z=()=>{let F=0;for(let T=0;T<Y.length;T++){let L=Y[T];L.offset=F,F+=L.width}N=F},O=(F,T)=>{if(F<0||F>=Y.length)return 0;let L=Y[F];if(!L.resizable)return L.width;let S=a2(T,L.minWidth,L.maxWidth);return L.width=S,Z(),S},A=(F)=>{return Y[F]},k=(F)=>{if(Y.length===0)return;if(F<0)return Y[0];if(F>=N)return Y[Y.length-1];let T=0,L=Y.length-1;while(T<L){let S=T+L>>>1,C=Y[S];if(F<C.offset)L=S-1;else if(F>=C.offset+C.width)T=S+1;else return C}return Y[T]},G=(F)=>{if(F<0||F>=Y.length)return 0;return Y[F].offset},D=(F)=>{if(F<0||F>=Y.length)return 0;return Y[F].width},R=(F)=>{X=F,B()};return B(),{get columns(){return Y},get totalWidth(){return N},resolve:K,updateColumns:R,resizeColumn:O,getColumn:A,getColumnAtX:k,getColumnOffset:G,getColumnWidth:D}},a2=(J,q,j)=>Math.min(j,Math.max(q,J)),CJ=(J,q)=>Math.max(q,J);var c1=(J,q,j,Q,X,Y)=>{let N=document.createElement("div");N.setAttribute("role","rowgroup");let B=document.createElement("div");B.className=`${j}-table-header`,B.setAttribute("role","row"),B.setAttribute("aria-rowindex","1"),B.style.height=`${q}px`;let K=document.createElement("div");K.className=`${j}-table-header-scroll`,K.setAttribute("role","presentation"),B.appendChild(K),N.appendChild(B),J.insertBefore(N,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${q}px`);let Z=[],O=[],A=!0,k=null,G="asc",D=null,R=!1,F=-1,T=0,L=0,S=0,C=(_,E)=>{let H=document.createElement("div");H.className=`${j}-table-header-cell`,H.setAttribute("role","columnheader"),H.setAttribute("aria-colindex",String(E+1)),H.setAttribute("tabindex",E===0?"0":"-1"),H.dataset.columnKey=_.def.key;let d=_.def.align;if(d==="center")H.classList.add(`${j}-table-header-cell--center`);else if(d==="right")H.classList.add(`${j}-table-header-cell--right`);let Q0=document.createElement("div");Q0.className=`${j}-table-header-content`;let c=_.def.header?_.def.header(_.def):_.def.label;if(typeof c==="string")Q0.textContent=c;else Q0.appendChild(c);if(H.appendChild(Q0),_.def.sortable){let j0=document.createElement("span");j0.className=`${j}-table-header-sort`,j0.setAttribute("aria-hidden","true"),H.appendChild(j0),O.push(j0),H.classList.add(`${j}-table-header-cell--sortable`)}else O.push(null);if(_.resizable){let j0=document.createElement("div");j0.className=`${j}-table-header-resize`,j0.dataset.resizeIndex=String(E),H.appendChild(j0)}return H},g=(_)=>{D=_,K.textContent="",Z=[],O=[];let E=_.columns;for(let H=0;H<E.length;H++){let d=E[H],Q0=C(d,H);Z.push(Q0),K.appendChild(Q0)}if(r(_),k)P(k,G)},r=(_)=>{D=_;let E=_.columns;K.style.width=`${_.totalWidth}px`;for(let H=0;H<Z.length&&H<E.length;H++){let d=Z[H],Q0=E[H];d.style.width=`${Q0.width}px`}},P=(_,E)=>{if(k=_,G=E,!D)return;let H=D.columns;for(let d=0;d<O.length&&d<H.length;d++){let Q0=O[d];if(!Q0)continue;if(H[d].def.key===_)Q0.textContent=E==="asc"?"▲":"▼",Q0.style.opacity="0.7",Z[d].setAttribute("aria-sort",E==="asc"?"ascending":"descending");else Q0.textContent="",Q0.style.opacity="0",Z[d].removeAttribute("aria-sort")}},V=(_)=>{K.style.transform=`translateX(${-_}px)`},h=(_)=>{let E=_.target;if(!E.dataset.resizeIndex)return;if(_.preventDefault(),_.stopPropagation(),F=+E.dataset.resizeIndex,!D)return;let H=D.getColumn(F);if(!H?.resizable)return;R=!0,T=_.clientX,L=H.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",E.classList.add(`${j}-table-header-resize--active`),E.setPointerCapture(_.pointerId),E.addEventListener("pointermove",s),E.addEventListener("pointerup",x),E.addEventListener("pointercancel",x)},s=(_)=>{if(!R||!D)return;let E=_.clientX-T;if(Math.abs(E)<1)return;let H=Math.max(0,L+E);Q(F,H)},x=(_)=>{if(!R)return;let E=_.target;E.removeEventListener("pointermove",s),E.removeEventListener("pointerup",x),E.removeEventListener("pointercancel",x);try{E.releasePointerCapture(_.pointerId)}catch{}E.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",R=!1,F=-1},o=(_)=>{let E=_.target;if(E.dataset.resizeIndex)return;if(R)return;let H=E;while(H&&!H.dataset.columnKey)if(H=H.parentElement,H===B||H===null)return;let d=H.dataset.columnKey;if(!D)return;let Q0=D.columns,c=-1;for(let w=0;w<Q0.length;w++)if(Q0[w].def.key===d){c=w;break}if(c===-1)return;let j0=Q0[c];if(Y)Y({key:d,index:c,event:_});if(j0.def.sortable&&X){let w;if(k===d)w=G==="asc"?"desc":null;else w="asc";X({key:d,index:c,direction:w})}},X0=(_)=>{if(_<0||_>=Z.length)return;Z[S]?.setAttribute("tabindex","-1"),S=_;let E=Z[S];E.setAttribute("tabindex","0"),E.focus()},n=(_)=>{let E=_.key;if(E==="ArrowRight"){if(_.ctrlKey||_.metaKey){if(!D)return;let H=D.getColumn(S);if(H?.resizable)Q(S,H.width+10),_.preventDefault()}else if(S<Z.length-1)X0(S+1),_.preventDefault();_.stopPropagation();return}if(E==="ArrowLeft"){if(_.ctrlKey||_.metaKey){if(!D)return;let H=D.getColumn(S);if(H?.resizable)Q(S,H.width-10),_.preventDefault()}else if(S>0)X0(S-1),_.preventDefault();_.stopPropagation();return}if(E==="Home"){X0(0),_.preventDefault(),_.stopPropagation();return}if(E==="End"){X0(Z.length-1),_.preventDefault(),_.stopPropagation();return}if(E==="Enter"||E===" "){if(!D)return;let H=D.getColumn(S);if(H?.def.sortable&&X){let d;if(k===H.def.key)d=G==="asc"?"desc":null;else d="asc";X({key:H.def.key,index:S,direction:d}),_.preventDefault()}_.stopPropagation();return}if(E==="ArrowDown"){J.focus(),_.preventDefault(),_.stopPropagation();return}};return B.addEventListener("pointerdown",h),B.addEventListener("click",o),B.addEventListener("keydown",n),{element:B,update:r,updateSort:P,rebuild:g,show:()=>{if(A)return;A=!0,B.style.display=""},hide:()=>{if(!A)return;A=!1,B.style.display="none"},destroy:()=>{B.removeEventListener("pointerdown",h),B.removeEventListener("click",o),B.removeEventListener("keydown",n),J.style.removeProperty("--vlist-table-header-height"),N.remove(),Z=[],O=[],D=null,A=!1},syncScroll:V}};var vJ=()=>{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}}},l1=(J,q,j,Q,X,Y,N,B,K)=>{let Z=vJ(),O=new Map,A=-1,k=j,G=null,D=null,R=null,F=(M,u)=>{D=M,R=u},T=(M,u)=>{u?M.setAttribute("aria-selected","true"):M.removeAttribute("aria-selected")},L=(M,u,v,t)=>{M.setAttribute("role",u),M.setAttribute("data-id",String(v)),M.setAttribute("data-index",String(t))},S=(M)=>String(M).startsWith("__placeholder_"),C=`${X}-item ${X}-table-row`,g=`${X}-item--selected`,r=`${X}-item--focused`,P=`${X}-table-cell`,V=`${X}-table-cell--center`,h=`${X}-table-cell--right`,s=`${X}-item--odd`,x=`${X}-item--placeholder`,o=`${X}-item--replaced`,X0=`${X}-item ${X}-table-row ${X}-table-group-header`,n=`${X}-table-group-header-content`,$=(M,u,v,t,a=!1)=>{if(v.def.cell){let Y0=v.def.cell(u,v.def,t);if(typeof Y0==="string")M.innerHTML=Y0;else M.replaceChildren(Y0)}else{let Y0=u[v.def.key],m=Y0!=null?String(Y0):"";if(a&&m)M.innerHTML=`<span>${m}</span>`;else M.textContent=m}},f=(M,u,v,t,a=!1)=>{let Y0=C;if(B){if(G){let m=G(u);if(m>=0&&(m&1)===1)Y0+=` ${s}`}else if((u&1)===1)Y0+=` ${s}`}if(a)Y0+=` ${x}`;if(v)Y0+=` ${g}`;if(t)Y0+=` ${r}`;M.className=Y0},W=(M,u,v)=>{if(v?.compression?.isCompressed)return Math.round(T2(M,v.scrollPosition,u,v.totalItems,v.containerSize,v.compression,v.rangeStart));return u.getOffset(M)},_=(M,u)=>{let v=u.def.align;if(v==="center")M.classList.add(V),M.classList.remove(h);else if(v==="right")M.classList.add(h),M.classList.remove(V);else M.classList.remove(V,h)},E=(M,u)=>{let t=k.columns.length;if(u.length===t)return u;let a=[];for(let Y0=0;Y0<t;Y0++){let m;if(Y0<u.length)m=u[Y0];else m=document.createElement("div"),m.className=P,M.appendChild(m);a.push(m)}for(let Y0=t;Y0<u.length;Y0++)u[Y0].remove();return a},H=(M,u,v,t)=>{let a=Z.acquire(),Y0=M,m=v.getSize(u),e=W(u,v,t);a.style.cssText=`width:${k.totalWidth}px;height:${m}px;transform:translateY(${e}px)`,a.className=X0,L(a,"presentation",M.id,u),a.removeAttribute("aria-selected"),a.removeAttribute("aria-rowindex"),a.replaceChildren();let y=document.createElement("div");if(y.className=n,R){let p=R(Y0.groupKey,Y0.groupIndex);if(typeof p==="string")y.innerHTML=p;else y.appendChild(p)}return a.appendChild(y),{element:a,cells:[],index:u,isGroupHeader:!0,lastItemId:M.id,lastSelected:!1,lastFocused:!1,lastOffset:e,lastHeight:m}},d=(M,u,v,t,a,Y0)=>{let m=Z.acquire(),e=a.getSize(u),y=W(u,a,Y0),p=S(M.id);m.style.cssText=`width:${k.totalWidth}px;height:${e}px;transform:translateY(${y}px)`,f(m,u,v,t,p),L(m,"row",M.id,u),m.id=`${Y}-item-${u}`,m.setAttribute("aria-rowindex",String(u+2)),T(m,v);let J0=E(m,[]),i=k.columns;for(let _0=0;_0<J0.length&&_0<i.length;_0++){let W0=J0[_0],U0=i[_0];W0.style.cssText=`left:${U0.offset}px;width:${U0.width}px`,W0.setAttribute("role","gridcell"),W0.setAttribute("aria-colindex",String(_0+1)),_(W0,U0),$(W0,M,U0,u,p)}return{element:m,cells:J0,index:u,isGroupHeader:!1,lastItemId:M.id,lastSelected:v,lastFocused:t,lastOffset:y,lastHeight:e}},Q0=(M,u,v,t,a)=>{for(let[p,J0]of O)if(p<u.start||p>u.end)Z.release(J0.element),O.delete(p);let Y0=!1,m=N();if(m!==A)A=m,Y0=!0;let e=null,y=q();G=typeof B==="string"&&K?K():null;for(let p=u.start;p<=u.end;p++){let J0=p-u.start,i=M[J0];if(!i)continue;let _0=v.has(i.id),W0=p===t,U0=D?D(i):!1,N0=O.get(p);if(N0){if(N0.isGroupHeader!==U0){Z.release(N0.element),O.delete(p);let M0=U0?H(i,p,y,a):d(i,p,_0,W0,y,a);if(O.set(p,M0),!e)e=document.createDocumentFragment();e.appendChild(M0.element);continue}if(U0){if(N0.lastItemId!==i.id){let R0=i,H0=N0.element.firstElementChild;if(H0&&R){let D0=R(R0.groupKey,R0.groupIndex);if(typeof D0==="string")H0.innerHTML=D0;else H0.replaceChildren(D0)}N0.element.setAttribute("data-id",String(i.id)),N0.lastItemId=i.id}let k0=W(p,y,a);if(N0.lastOffset!==k0)N0.lastOffset=k0,N0.element.style.transform=`translateY(${k0}px)`;let F0=y.getSize(p);if(N0.lastHeight!==F0)N0.lastHeight=F0,N0.element.style.height=`${F0}px`}else{let M0=N0.lastItemId!==i.id,k0=N0.lastSelected!==_0,F0=N0.lastFocused!==W0;if(M0){let D0=N0.lastItemId!=null&&S(N0.lastItemId),E0=S(i.id);if(!E0&&Y2(v,p,i.id))_0=!0;let P0=k.columns;for(let w0=0;w0<N0.cells.length&&w0<P0.length;w0++)$(N0.cells[w0],i,P0[w0],p,E0);if(f(N0.element,p,_0,W0,E0),N0.element.setAttribute("data-id",String(i.id)),T(N0.element,_0),D0&&!E0)N0.element.classList.add(o),setTimeout(()=>{N0.element.classList.remove(o)},300);N0.lastItemId=i.id,N0.lastSelected=_0,N0.lastFocused=W0}else if(k0||F0)f(N0.element,p,_0,W0,S(i.id)),T(N0.element,_0),N0.lastSelected=_0,N0.lastFocused=W0;let R0=W(p,y,a);if(N0.lastOffset!==R0)N0.lastOffset=R0,N0.element.style.transform=`translateY(${R0}px)`;let H0=y.getSize(p);if(N0.lastHeight!==H0)N0.lastHeight=H0,N0.element.style.height=`${H0}px`;if(Y0)N0.element.setAttribute("aria-rowindex",String(p+2))}}else{if(Y2(v,p,i.id))_0=!0;let M0=U0?H(i,p,y,a):d(i,p,_0,W0,y,a);if(O.set(p,M0),!e)e=document.createDocumentFragment();e.appendChild(M0.element)}}if(e)J.appendChild(e)},c=(M)=>{let u=q();for(let[v,t]of O){let a=W(v,u,M);if(t.lastOffset!==a)t.lastOffset=a,t.element.style.transform=`translateY(${a}px)`}},j0=(M,u,v,t)=>{let a=O.get(M);if(!a)return;if(a.isGroupHeader)return;let Y0=k.columns;for(let m=0;m<a.cells.length&&m<Y0.length;m++)$(a.cells[m],u,Y0[m],M);a.element.setAttribute("data-id",String(u.id)),a.lastItemId=u.id,f(a.element,M,v,t),T(a.element,v),a.lastSelected=v,a.lastFocused=t},w=(M,u,v)=>{let t=O.get(M);if(!t)return;if(t.isGroupHeader)return;let a=t.lastSelected!==u,Y0=t.lastFocused!==v;if(a||Y0)f(t.element,M,u,v),T(t.element,u),t.lastSelected=u,t.lastFocused=v},I=(M)=>{k=M;let u=M.columns;for(let[,v]of O)if(v.element.style.width=`${M.totalWidth}px`,v.cells.length>0)for(let t=0;t<v.cells.length&&t<u.length;t++){let a=v.cells[t],Y0=u[t];a.style.left=`${Y0.offset}px`,a.style.width=`${Y0.width}px`}},b=(M)=>{return O.get(M)?.element},U=()=>{for(let[,M]of O)Z.release(M.element);O.clear(),A=-1};return{render:Q0,updatePositions:c,updateItem:j0,updateItemClasses:w,getElement:b,updateColumnLayout:I,setGroupHeaderFn:F,clear:U,destroy:()=>{U(),Z.clear()}}};var SJ=new Set,o2=(J)=>{if(!J.columns?.length)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:N,config:B}=X,{classPrefix:K}=B;if(B.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(B.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let Z=J.resizable??!0,O=J.minColumnWidth??50,A=J.maxColumnWidth??1/0,k=J.rowBorders??!0,G=J.rowHeight,D=X.rawConfig.padding,R=!D?0:typeof D==="number"?D*2:D.length===2?D[1]*2:D[1]+D[3],F=J.headerHeight??(typeof G==="number"?G:40),T=J.sort?.key??null,L=J.sort?.direction??"asc";if(q=d1(J.columns,O,A,Z),typeof G==="function"||typeof G==="number")X.setSizeConfig(G);if(X.rebuildSizeCache(),Y.root.classList.add(`${K}--table`),k&&Y.root.classList.add(`${K}--table-row-borders`),J.columnBorders&&Y.root.classList.add(`${K}--table-col-borders`),B.interactive)Y.root.setAttribute("tabindex","0"),Y.items.removeAttribute("tabindex");Y.root.setAttribute("role","grid"),Y.root.setAttribute("aria-colcount",`${J.columns.length}`);let S=-1,C=Y.root.getAttribute("aria-label")??Y.items.getAttribute("aria-label");if(C)Y.root.setAttribute("aria-label",C),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 g=X.getContainerWidth()-R;q.resolve(g);let r=(I,b)=>{if(!q)return;let U=q.getColumn(I);if(!U)return;let z=U.width,M=q.resizeColumn(I,b);j?.update(q),Q?.updateColumnLayout(q),h(),N.emit("column:resize",{key:U.def.key,index:I,previousWidth:z,width:M})},P=(I)=>{T=I.direction===null?null:I.key,L=I.direction??"asc",j?.updateSort(T,L),N.emit("column:sort",I)},V=(I)=>{N.emit("column:click",I)};if(j=c1(Y.root,F,K,r,P,V),j.rebuild(q),T)j.updateSort(T,L);let h=()=>{if(!q)return;let I=`${q.totalWidth}px`;Y.content.style.minWidth=I,Y.items.style.minWidth=I};h(),Q=l1(Y.items,()=>X.sizeCache,q,J.columns,K,B.ariaIdPrefix,()=>X.dataManager.getTotal(),X.rawConfig.item?.striped,()=>X.getStripeIndexFn());let s=null,x=null,o=!1,X0=()=>{if(o)return;o=!0,s=X.methods.get("_getSelectedIds")??null,x=X.methods.get("_getFocusedIndex")??null},n=-1,$=-1,f=-1,W=!0,_=B.overscan,E={start:0,end:0},H={start:0,end:0},d=()=>{if(X.state.isDestroyed)return;let I=X.scrollController.getScrollTop(),b=X.state.viewportState.containerSize,U=X.getVirtualTotal(),z=X.state.viewportState.isCompressed;if(!W&&I===n&&b===$&&U===f)return;n=I,$=b,f=U,W=!1;let M=U+1;if(M!==S)S=M,Y.root.setAttribute("aria-rowcount",`${M}`);X.getVisibleRange(I,b,U,E),H.start=Math.max(0,E.start-_),H.end=Math.min(U-1,E.end+_);let u=X.state.viewportState;u.scrollPosition=I,u.visibleRange.start=E.start,u.visibleRange.end=E.end,u.renderRange.start=H.start,u.renderRange.end=H.end;let v=X.state.lastRenderRange,t=v.start!==H.start||v.end!==H.end;if(!t&&z){Q.updatePositions(X.getCompressionContext());return}if(!t)return;let a=z?X.getCompressionContext():void 0,Y0=X.dataManager.getItemsInRange(H.start,H.end);X0();let m=s?s():SJ,e=x?x():-1;Q.render(Y0,H,m,e,a),v.start=H.start,v.end=H.end,N.emit("range:change",{range:{start:H.start,end:H.end}})},Q0=()=>{if(X.state.isDestroyed)return;X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,W=!0,d()};X.setRenderFns(d,Q0),X.setUpdateItemClassesFn((I,b,U)=>{Q?.updateItemClasses(I,b,U)});let c=j,j0=-1,w=()=>{let I=Y.viewport.scrollLeft;if(I!==j0){if(j0=I,c.syncScroll)c.syncScroll(I)}};X.afterScroll.push(w),Y.viewport.addEventListener("scroll",w,{passive:!0}),X.resizeHandlers.push((I,b)=>{if(!q)return;q.resolve(I-R),j?.update(q),Q?.updateColumnLayout(q),h()}),X.methods.set("updateColumns",(I)=>{if(!q||!j)return;if(q.updateColumns(I),q.resolve(X.getContainerWidth()-R),j.rebuild(q),T)j.updateSort(T,L);h(),Q?.updateColumnLayout(q),Q?.clear(),X.forceRender()}),X.methods.set("resizeColumn",(I,b)=>{if(!q)return;let U;if(typeof I==="string"){let z=q.columns;U=-1;for(let M=0;M<z.length;M++)if(z[M].def.key===I){U=M;break}if(U===-1)return}else U=I;r(U,b)}),X.methods.set("getColumnWidths",()=>{if(!q)return{};let I={},b=q.columns;for(let U=0;U<b.length;U++)I[b[U].def.key]=b[U].width;return I}),X.methods.set("setSort",(I,b)=>{T=I,L=b??"asc",j?.updateSort(T,L)}),X.methods.set("getSort",()=>{return{key:T,direction:L}}),X.methods.set("_getTableLayout",()=>q),X.methods.set("_updateRenderedItem",(I,b,U,z)=>{Q?.updateItem(I,b,U,z)}),X.methods.set("_replaceTableRenderer",(I)=>{Q=I}),X.methods.set("_updateTableForGroups",(I,b)=>{Q?.setGroupHeaderFn(I,b)}),X.methods.set("_getTableHeaderHeight",()=>F),X.keydownHandlers.push((I)=>{if(I.key!=="ArrowLeft"&&I.key!=="ArrowRight")return;if(!q)return;let b=q.columns;if(b.length===0)return;let U=Y.viewport.clientWidth;if(q.totalWidth<=U)return;let z=Y.viewport.scrollLeft;if(I.key==="ArrowRight"){for(let M=0;M<b.length;M++)if(b[M].offset>z+1){Y.viewport.scrollLeft=b[M].offset,I.preventDefault();return}}else{for(let M=b.length-1;M>=0;M--)if(b[M].offset<z-1){Y.viewport.scrollLeft=b[M].offset,I.preventDefault();return}if(z>0)Y.viewport.scrollLeft=0,I.preventDefault()}}),X.contentSizeHandlers.push(()=>{h()}),X.destroyHandlers.push(()=>{Y.viewport.removeEventListener("scroll",w),j?.destroy(),j=null,Q?.destroy(),Q=null,Y.content.style.minWidth="",Y.items.style.minWidth="",Y.root.classList.remove(`${K}--table`),Y.root.removeAttribute("role"),Y.root.removeAttribute("aria-colcount"),Y.root.removeAttribute("tabindex"),Y.viewport.removeAttribute("role"),Y.viewport.setAttribute("tabindex","-1"),Y.content.removeAttribute("role");let I=Y.root.getAttribute("aria-label");if(I)Y.items.setAttribute("aria-label",I),Y.root.removeAttribute("aria-label");if(Y.root.removeAttribute("aria-rowcount"),Y.items.setAttribute("role",B.interactive?"listbox":"list"),B.interactive)Y.items.setAttribute("tabindex","0")})},destroy(){j?.destroy(),j=null,Q?.destroy(),Q=null}}};var n2=(J)=>{let q=J?.handle??null,j=J?.ghostClass??"vlist-sort-ghost",Q=J?.shiftDuration??150,X=J?.edgeScrollZone??40,Y=J?.edgeScrollSpeed??20,N=J?.dragThreshold??5,B=J?.ghostContainer??null;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(K){let{dom:Z,emitter:O,config:A}=K,{classPrefix:k}=A,{root:G,viewport:D,items:R}=Z,{sizeCache:F}=K,T=A.horizontal,L=T?"translateX":"translateY",S=Q>0?`transform ${Q}ms ease`:"none",C=`${k}--sorting`,g=`${k}--settling`,r=`${k}-item--drag-source`,P=!1,V=-1,h=-1,s=0,x=0,o=0,X0=0,n=!1,$=null,f=0,W=null,_=0,E=0,H=0,d=null;K.methods.set("isSorting",()=>P||i);let Q0=(q0)=>{return q0.closest("[data-index]")},c=(q0)=>{let B0=q0.dataset.index;return B0===void 0?-1:+B0},j0=(q0)=>{let B0=q0.getBoundingClientRect(),V0=q0.cloneNode(!0);return V0.className=`${k}-item ${j}`,V0.removeAttribute("data-index"),V0.style.cssText=`position:fixed;pointer-events:none;z-index:10000;width:${B0.width}px;height:${B0.height}px;left:${B0.left}px;top:${B0.top}px;transition:none;will-change:transform`,(B||document.body).appendChild(V0),V0},w=()=>{if(!$)return;let q0=o-E,B0=X0-H;$.style.left=`${q0}px`,$.style.top=`${B0}px`},I=()=>{let q0=K.dataManager.getTotal();if(q0===0)return 0;let B0=D.getBoundingClientRect(),V0=K.scrollController.getScrollTop(),G0=T?o-E-B0.left+D.scrollLeft+V0:X0-H-B0.top+V0,O0=G0+_,T0=F.getOffset(V)+F.getSize(V);if(O0>T0){let L0=F.indexAtOffset(O0),c0=F.getOffset(L0)+F.getSize(L0)/2,I0=O0>c0?L0:L0-1;return Math.min(Math.max(I0,V),q0-1)}let z0=F.getOffset(V);if(G0<z0){let L0=F.indexAtOffset(G0),c0=F.getOffset(L0)+F.getSize(L0)/2,I0=G0<c0?L0:L0+1;return Math.max(Math.min(I0,V),0)}return V},b=()=>{let q0=R.children,B0=_;for(let V0=0;V0<q0.length;V0++){let G0=q0[V0],O0=c(G0);if(O0<0||O0===V)continue;let T0=0;if(h>V){if(O0>V&&O0<=h)T0=-B0}else if(h<V){if(O0>=h&&O0<V)T0=B0}let z0=F.getOffset(O0),L0=Math.round(z0+T0);G0.style.transition=S,G0.style.transform=`${L}(${L0}px)`}},U=()=>{let q0=R.children;for(let B0=0;B0<q0.length;B0++){let V0=q0[B0],G0=c(V0);if(G0>=0)V0.style.transform=`${L}(${Math.round(F.getOffset(G0))}px)`;V0.style.transition=""}},z=()=>{let q0=I();if(q0===h)return;h=q0,b(),O.emit("sort:move",{fromIndex:V,currentIndex:h})},M=!1,u=()=>{let q0=D.getBoundingClientRect();if(T)return o<q0.left||o>q0.right;return X0<q0.top||X0>q0.bottom},v=()=>{let q0=()=>{if(!P)return;let B0=D.getBoundingClientRect(),V0=0,G0=3;if(T){let T0=o-B0.left,z0=B0.right-o;if(T0<X){let L0=Math.min(G0,1-T0/X);V0=-Y*L0*L0}else if(z0<X){let L0=Math.min(G0,1-z0/X);V0=Y*L0*L0}}else{let T0=X0-B0.top,z0=B0.bottom-X0;if(T0<X){let L0=Math.min(G0,1-T0/X);V0=-Y*L0*L0}else if(z0<X){let L0=Math.min(G0,1-z0/X);V0=Y*L0*L0}}let O0=u();if(V0!==0){let T0=K.scrollController.getScrollTop(),z0=F.getTotalSize()-(T?D.clientWidth:D.clientHeight);if(V0<0&&T0<=0||V0>0&&T0>=z0)M=O0;else M=!0,K.scrollController.scrollTo(T0+V0)}else M=O0;f=requestAnimationFrame(q0)};f=requestAnimationFrame(q0)},t=()=>{if(f)cancelAnimationFrame(f),f=0},a=(q0=!1)=>{if(P=!1,n=!1,$&&$.parentNode)$.remove();$=null,W=null;let B0=R.children;for(let G0=0;G0<B0.length;G0++){let O0=B0[G0];O0.classList.remove(r);let T0=c(O0);if(T0>=0)O0.style.transform=`${L}(${Math.round(F.getOffset(T0))}px)`;O0.style.transition=""}t(),G.classList.remove(C),document.body.style.cursor="";let V0=window.getSelection();if(V0)V0.removeAllRanges();if(document.removeEventListener("pointermove",m),document.removeEventListener("pointerup",y),document.removeEventListener("pointercancel",J0),!q0)K.forceRender()},Y0=(q0)=>{if(K.state.isDestroyed)return;if(P)return;if(i)f0();if(q0.button!==0)return;let B0=q0.target;if(q){if(!B0.closest(q))return}let V0=Q0(B0);if(!V0)return;let G0=c(V0);if(G0<0)return;s=q0.clientX,x=q0.clientY,o=q0.clientX,X0=q0.clientY,V=G0,n=!1,W=V0;let O0=V0.getBoundingClientRect();E=q0.clientX-O0.left,H=q0.clientY-O0.top,document.addEventListener("pointermove",m),document.addEventListener("pointerup",y),document.addEventListener("pointercancel",J0)},m=(q0)=>{if(o=q0.clientX,X0=q0.clientY,!n){let B0=o-s,V0=X0-x;if(Math.sqrt(B0*B0+V0*V0)<N)return;if(n=!0,P=!0,h=V,G.classList.add(C),document.body.style.cursor="grabbing",_=F.getSize(V),W)$=j0(W),W.classList.add(r);let O0=M0();if(O0>=0){let T0=K.dataManager.getItem(O0);d=T0?T0.id:null}else d=null;O.emit("sort:start",{index:V}),v()}if(P){if(q0.preventDefault(),w(),!M)z();else if(u()){if(h!==V)h=V,U()}}},e=(q0,B0)=>{let V0=q0!==B0&&q0>=0&&B0>=0,G0=()=>{if(P=!1,V0){if(G.classList.add(g),O.emit("sort:end",{fromIndex:q0,toIndex:B0}),d!==null)k0(d);a(!0),requestAnimationFrame(()=>{G.classList.remove(g)})}else G.classList.add(g),O.emit("sort:cancel",{originalItems:K.getAllLoadedItems()}),a(!1),requestAnimationFrame(()=>{G.classList.remove(g)})};if(!$){G0();return}let O0=D.getBoundingClientRect(),T0=K.scrollController.getScrollTop(),z0=F.getOffset(B0),L0=Q>0?Q:150;if($.style.transition=`left ${L0}ms ease, top ${L0}ms ease`,T)$.style.left=`${O0.left-D.scrollLeft+z0-T0}px`,$.style.top=`${O0.top}px`;else $.style.left=`${O0.left}px`,$.style.top=`${O0.top+z0-T0}px`;let c0=!1,I0=()=>{if(c0)return;c0=!0,$?.removeEventListener("transitionend",I0),G0()};$.addEventListener("transitionend",I0),setTimeout(I0,L0+50)},y=(q0)=>{if(!n){document.removeEventListener("pointermove",m),document.removeEventListener("pointerup",y),document.removeEventListener("pointercancel",J0),W=null;return}q0.preventDefault(),document.removeEventListener("pointermove",m),document.removeEventListener("pointerup",y),document.removeEventListener("pointercancel",J0),t(),e(V,h)},p=()=>{if(!n)return;document.removeEventListener("pointermove",m),document.removeEventListener("pointerup",y),document.removeEventListener("pointercancel",J0),t(),U(),e(V,V)},J0=()=>{p()};R.addEventListener("pointerdown",Y0);let i=!1,_0="",W0=-1,U0=-1,N0=[],M0=()=>{let q0=K.methods.get("_getFocusedIndex");return q0?q0():-1},k0=(q0)=>{let B0=K.methods.get("_focusById");if(B0)B0(q0)},F0=(q0)=>{let B0=T?D.clientWidth:D.clientHeight,V0=K.scrollController.getScrollTop(),G0=N2(q0,F,V0,B0);if(G0!==V0)K.scrollController.scrollTo(K.adjustScrollPosition(G0))},R0=(q0)=>{Z.liveRegion.textContent="",Z.liveRegion.offsetHeight,Z.liveRegion.textContent=q0},H0=(q0)=>{let B0=K.dataManager.getItem(q0);if(!B0)return"";return R.querySelector(`[data-index="${q0}"]`)?.textContent?.trim()||String(B0.id)},D0=()=>String(K.dataManager.getTotal()),E0=(q0)=>{let B0=R.children;for(let V0=0;V0<B0.length;V0++)B0[V0].style.transition=q0},P0=(q0)=>{let B0=K.dataManager.getItem(q0);if(!B0)return;i=!0,_0=B0.id,W0=q0,U0=q0;let V0=K.dataManager.getTotal();N0=[];for(let G0=0;G0<V0;G0++)N0.push(K.dataManager.getItem(G0));G.classList.add(C),O.emit("sort:start",{index:q0}),X2(),R0(`Grabbed ${H0(q0)}. Current position ${q0+1} of ${D0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},w0=()=>{if(!i)return;i=!1;let q0=U0,B0=H0(q0);E0("none"),G.classList.remove(C),s0(),k0(_0),K.forceRender(),R0(`${B0} dropped. Final position ${q0+1} of ${D0()}.`),N0=[],requestAnimationFrame(()=>{E0("")})},f0=()=>{if(!i)return;i=!1;let q0=W0;if(E0("none"),G.classList.remove(C),s0(),U0!==q0)O.emit("sort:cancel",{originalItems:N0});k0(_0),K.forceRender(),F0(q0),R0(`Reorder cancelled. Returned to position ${q0+1} of ${D0()}.`),N0=[],requestAnimationFrame(()=>{E0("")})},p0=(q0)=>{if(!i)return;let B0=K.dataManager.getTotal(),V0=U0+q0;if(V0<0||V0>=B0)return;let G0=U0,O0=V0;E0("none"),O.emit("sort:end",{fromIndex:G0,toIndex:O0}),U0=O0,k0(_0),K.forceRender(),F0(O0),X2(),R0(`${H0(O0)} moved. New position ${O0+1} of ${D0()}.`),requestAnimationFrame(()=>{E0("")})},h0=`${k}-item--kb-sorting`,s0=()=>{let q0=R.querySelectorAll(`.${h0}`);for(let B0=0;B0<q0.length;B0++)q0[B0].classList.remove(h0)},X2=()=>{s0();let q0=R.querySelector(`[data-id="${_0}"]`);if(q0)q0.classList.add(h0)};K.afterRenderBatch.push(()=>{if(i)X2()});let a0=(q0)=>{if(K.state.isDestroyed)return;if(P){if(q0.key==="Escape")q0.preventDefault(),q0.stopImmediatePropagation(),p();return}if(i)switch(q0.key){case" ":case"Enter":q0.preventDefault(),q0.stopImmediatePropagation(),w0();return;case"Escape":q0.preventDefault(),q0.stopImmediatePropagation(),f0();return;case"ArrowUp":case"ArrowLeft":q0.preventDefault(),q0.stopImmediatePropagation(),p0(-1);return;case"ArrowDown":case"ArrowRight":q0.preventDefault(),q0.stopImmediatePropagation(),p0(1);return;default:if(!q0.key.startsWith("F")&&q0.key!=="Tab")q0.preventDefault(),q0.stopImmediatePropagation();return}if(q0.key===" "&&!q0.shiftKey&&!q0.ctrlKey&&!q0.metaKey){let B0=M0();if(B0>=0)q0.preventDefault(),q0.stopImmediatePropagation(),P0(B0)}};G.addEventListener("keydown",a0);let o0=`${k}-sort-instructions`,C0=document.createElement("div");C0.id=o0,C0.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",C0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",G.appendChild(C0),K.afterRenderBatch.push((q0)=>{for(let B0=0;B0<q0.length;B0++){let V0=q0[B0].element;V0.setAttribute("aria-roledescription","sortable item"),V0.setAttribute("aria-describedby",o0)}}),K.afterRenderBatch.push((q0)=>{if(!P)return;for(let B0=0;B0<q0.length;B0++){let{index:V0,element:G0}=q0[B0];if(V0===V)G0.classList.add(r),W=G0;else{G0.classList.remove(r);let O0=0;if(h>V){if(V0>V&&V0<=h)O0=-_}else if(h<V){if(V0>=h&&V0<V)O0=_}let T0=Math.round(F.getOffset(V0)+O0);G0.style.transform=`${L}(${T0}px)`}}}),K.destroyHandlers.push(()=>{if(i)f0();a(),R.removeEventListener("pointerdown",Y0),G.removeEventListener("keydown",a0),C0.remove()})}}};var r1=(J,q)=>{let j=new Map,Q=(Y)=>j.get(Y)??J,X=i0(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 N of j.keys())if(N>=Y)j.delete(N)}X=i0(Q,Y)},isVariable(){return!0},setMeasuredSize(Y,N){j.set(Y,N)},isMeasured(Y){return j.has(Y)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var i2=()=>{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 N=X.gap??0,B=q.getVirtualTotal(),K=u0(q.rawConfig.padding),Z=e0(K,j),O=r1(Y+N,B),A=q.methods.get("_setSizeCache"),k=q.methods.get("_setConstrainSize");if(!A||!k)throw Error("[vlist/withAutoSize] Incompatible builder version");A(O),k((P)=>O.isMeasured(P));let G=q.scrollController,D=q.state.viewportState,R=new WeakMap,F=0,T=!1,L=2,S=(P)=>{let V=G.getScrollTop(),h=D.containerSize;if(h<=0)return!1;return V>=Math.max(0,P+Z-h)-L},C=()=>{let P=O.getTotalSize(),V=D.containerSize;if(V<=0)return;let h=Math.max(0,P+Z-V);if(h>G.getScrollTop())G.scrollTo(h)},g=()=>{q.updateContentSize(O.getTotalSize())},r=()=>{if(T){let P=q.dom.viewport,V=P.scrollHeight,h=V-P.clientHeight,s=G.getScrollTop(),x=h>0&&s>=h-L,o=q.getVirtualTotal(),X0=o&&D.renderRange.end>=o-1,n=Math.abs(O.getTotalSize()+Z-V),$=x||X0&&h>0&&s>=h-n-L;if(g(),T=!1,$)P.scrollHeight,C(),q.forceRender()}};J=new ResizeObserver((P)=>{if(q.state.isDestroyed)return;let V=!1,h=D.visibleRange.start;for(let W of P){let _=R.get(W.target);if(_===void 0)continue;let E=j?W.borderBoxSize[0].inlineSize:W.borderBoxSize[0].blockSize;if(!O.isMeasured(_)){let H=E+N,d=O.getSize(_);if(O.setMeasuredSize(_,H),V=!0,_<h&&H!==d)F+=H-d;J.unobserve(W.target);let Q0=W.target;if(j)Q0.style.width=`${E}px`;else Q0.style.height=`${E}px`}}if(!V)return;let s=O.getTotalSize();if(O.rebuild(q.getVirtualTotal()),F)G.scrollTo(G.getScrollTop()+F),F=0;let x=S(s),o=q.getVirtualTotal(),X0=o&&D.renderRange.end>=o-1,n=q.dom.viewport,$=n.scrollHeight-n.clientHeight,f=$>0&&G.getScrollTop()>=$-L;if(x||X0||!G.isScrolling()){if(g(),T=!1,x||X0&&f)n.scrollHeight,C()}else T=!0;q.forceRender()}),q.afterRenderBatch.push((P)=>{for(let{index:V,element:h}of P)if(!O.isMeasured(V))R.set(h,V),J.observe(h)}),q.idleHandlers.push(r),q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var fJ=50,hJ=0.1;function s1(J){let q=0,j=0,Q=0;function X(){return Q>0?j/Q:0}function Y(K){if(q=K,K>hJ&&K<fJ)j+=K,Q++}function N(){let K=J.getTotal();if(K===0)return 0;let Z=J.getItemSize();if(Z<=0)return 0;let O=J.getContainerSize();if(O<=0)return 0;let A=J.getScrollPosition(),k=typeof J.getColumns==="function"?J.getColumns():1,D=Math.ceil(K/k)*Z,F=Math.min(D,j2)-O,T=D-O,L=F>0?T/F:1,S=A*L,C=Math.ceil((S+O)/Z);return Math.min(C*k,K)}function B(){let K=J.getTotal(),Z=N();return{progress:K>0?Math.min(100,Math.max(0,Z/K*100)):0,velocity:q,velocityAvg:X(),itemCount:Z,total:K}}return{getState:B,onVelocity:Y}}export{o2 as withTable,n2 as withSortable,s2 as withSnapshots,r2 as withSelection,f2 as withScrollbar,h2 as withScale,p2 as withPage,l2 as withMasonry,x2 as withGroups,c2 as withGrid,i2 as withAutoSize,I2 as withAsync,z2 as vlist,s1 as createStats};
1
+ var K1=2,N1=(J=0)=>({velocity:0,sampleCount:0}),W1=(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 jJ=(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}},YJ=(J,q)=>{let j=q,Q=new Float64Array(0),X=(W)=>{j=W,Q=new Float64Array(W+1),Q[0]=0;for(let B=0;B<W;B++)Q[B+1]=Q[B]+J(B)};X(q);let Y=(W)=>{if(j===0)return 0;if(W<=0)return 0;if(W>=Q[j])return j-1;let B=0,_=j-1;while(B<_){let Z=B+_+1>>>1;if(Q[Z]<=W)B=Z;else _=Z-1}return B};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}},i0=(J,q)=>{if(typeof J==="number")return jJ(J,q);return YJ(J,q)};var B1=()=>{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((B)=>{try{B(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 _1=(J)=>{if(typeof J==="string"){let q=document.querySelector(J);if(!q)throw Error(`[vlist] Container not found: ${J}`);return q}return J},K2=(J,q)=>{let j=document.createElement("div");if(j.className=J,q)j.style.cssText=q;return j},V1=(J,q,j,Q,X)=>{let Y=Q,W=K2(q);if(Y)W.classList.add(`${q}--horizontal`);let B=K2(`${q}-viewport`,Y?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");B.setAttribute("tabindex","-1");let _=K2(`${q}-content`,Y?"position:relative;height:100%":"position:relative;width:100%"),Z=K2(`${q}-items`,Y?"position:relative;height:100%":"position:relative;width:100%");if(Z.setAttribute("role",X!==!1?"listbox":"list"),X!==!1)Z.setAttribute("tabindex","0");if(j)Z.setAttribute("aria-label",j);if(Y)Z.setAttribute("aria-orientation","horizontal");let A=K2(`${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 A.setAttribute("aria-live","polite"),A.setAttribute("aria-atomic","true"),A.setAttribute("role","status"),_.appendChild(Z),B.appendChild(_),W.appendChild(A),W.appendChild(B),J.appendChild(W),{root:W,viewport:B,content:_,items:Z,liveRegion:A}};var D1=(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 M1=(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))},G1=(J,q,j,Q)=>{Q.start=Math.max(0,J.start-q),Q.end=Math.min(j-1,J.end+q)},O1=(J,q,j,Q,X,Y=0)=>{if(Q===0)return 0;let W=Math.max(0,Math.min(J,Q-1)),B=q.getOffset(W),_=q.getSize(W),Z=q.getTotalSize(),A=Math.max(0,Z+Y-j),K;switch(X){case"center":K=B-(j-_)/2;break;case"end":K=Y>0&&B+_>=Z?A:B-j+_;break;default:K=B}return Math.max(0,Math.min(K,A))};var E2={top:0,right:0,bottom:0,left:0},g0=(J)=>{if(J==null)return E2;if(typeof J==="number")return J===0?E2:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[Y,W]=J;return Y===0&&W===0?E2:{top:Y,right:W,bottom:Y,left:W}}let[q,j,Q,X]=J;return q===0&&j===0&&Q===0&&X===0?E2:{top:q,right:j,bottom:Q,left:X}},e0=(J,q)=>q?J.left+J.right:J.top+J.bottom,L2=(J,q)=>q?J.top+J.bottom:J.left+J.right;var J2=(J,q,j)=>{let Q=Array.from(q).sort((W,B)=>W-B);if(Q.length<=1)return;let X=[];for(let W=0;W<Q.length;W++){let B=j(Q[W]);if(B)X.push(B)}if(X.length<=1)return;let Y=J.firstChild;for(let W=0;W<X.length;W++){let B=X[W];if(B===Y)Y=Y.nextSibling;else J.insertBefore(B,Y)}};var A1=(J,q)=>{let{dom:j,emitter:Q,resolvedConfig:X,rawConfig:Y,rendered:W,pool:B,sharedState:_,isHorizontal:Z,classPrefix:A,contentSizeHandlers:K,idleHandlers:$,afterScroll:O,clickHandlers:D,contextMenuHandlers:k,keydownHandlers:E,resizeHandlers:T,destroyHandlers:F,methods:S,onScrollFrame:p,resizeObserver:g,renderRange:r,afterRenderBatch:y}=q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return X},get rawConfig(){return Y},adjustScrollPosition(M){if(J.mp===0)return M;let w=Z?J.cw:J.ch,s=J.hc.getTotalSize(),m=Math.max(0,s-w),o=Math.max(0,s+J.mp-w);if(M>=m)return o;return Math.min(M,o)},get renderer(){return{render:(M,w,s,m,o)=>{J.ss=s,J.fi=m,J.ffn()},updateItemClasses:(M,w,s)=>{J.uic(M,w,s)},updatePositions:()=>{},updateItem:()=>{},getElement:(M)=>W.get(M)??null,clear:()=>{},destroy:()=>{}}},set renderer(M){},get dataManager(){return J.dm},set dataManager(M){J.dm=M},get scrollController(){return J.sc},set scrollController(M){J.sc=M},state:_,getContainerWidth(){return J.cw},afterScroll:O,idleHandlers:$,afterRenderBatch:y,clickHandlers:D,contextMenuHandlers:k,keydownHandlers:E,resizeHandlers:T,contentSizeHandlers:K,destroyHandlers:F,methods:S,replaceTemplate(M){J.at=M},replaceRenderer(M){},replaceDataManager(M){J.dm=M},replaceScrollController(M){J.sc=M},getItemsForRange(M){let{dm:w,it:s}=J,m=[];for(let o=M.start;o<=M.end;o++){let X0=w?w.getItem(o):s[o];if(X0)m.push(X0)}return m},getAllLoadedItems(){let M=J.dm;if(M){let w=M.getTotal(),s=[];for(let m=0;m<w;m++){let o=M.getItem(m);if(o)s.push(o)}return s}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let M=J.hc;return{isCompressed:!1,actualSize:M.getTotalSize(),virtualSize:M.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[,M]of W)M.remove(),B.release(M);W.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(M,w){J.rfn=M,J.ffn=w},setVirtualTotalFn(M){J.vtf=M},rebuildSizeCache(M){J.hc.rebuild(M??J.vtf())},setSizeConfig(M){if(J.hc=i0(M,J.vtf()),J.gp>0){let w=J.hc.getTotalSize,s=J.gp;J.hc.getTotalSize=()=>{let m=w();return m>0?m-s:0}}},updateContentSize(M){let w=`${M+J.mp}px`;if(Z)j.content.style.width=w;else j.content.style.height=w},updateCompressionMode(){for(let M=0;M<K.length;M++)K[M]()},setVisibleRangeFn(M){J.gvr=M},getVisibleRange(M,w,s,m){J.gvr(M,w,J.hc,s,m)},setScrollToPosFn(M){J.gsp=M},getScrollToPos(M,w,s,m){return J.gsp(M,J.hc,w,s,m)},setPositionElementFn(M){J.pef=M},setScrollFns(M,w){J.sgt=M,J.sst=(s)=>{w(s),p()}},triggerScrollFrame(){p()},setScrollTarget(M){J.st.removeEventListener("scroll",p),J.st=M,J.st.addEventListener("scroll",p,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(M){J.gcw=M.width,J.gch=M.height,J.cw=M.width(),J.ch=M.height(),_.viewportState.containerSize=Z?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,g.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(M){J.sif=M},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(M){J.i2s=M},setUpdateItemClassesFn(M){J.uic=M}}},E1=(J,q,j)=>{let{rendered:Q,itemState:X,applyTemplate:Y,updateContentSize:W}=q,B=()=>{J.hc.rebuild(J.vtf()),W(),j.updateCompressionMode(),J.ffn()},_=()=>J.it.length,Z=null,A=()=>{if(!Z)Z=new Map;Z.clear();for(let K=0;K<J.it.length;K++){let $=J.it[K]?.id;if($!==void 0)Z.set($,K)}return Z};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,$)=>{let O=[];for(let D=Math.max(0,K),k=Math.min($,_()-1);D<=k;D++)O.push(J.it[D]);return O},getIndexById:(K)=>{return(Z??A()).get(K)??-1},setTotal:()=>{},setItems:(K,$=0,O)=>{if($===0&&(O!==void 0||_()===0)){if(J.it=K,Z)A()}else{let D=$+K.length;if(_()<D)J.it.length=D;for(let k=0;k<K.length;k++){if(Z){let E=J.it[$+k]?.id;if(E!==void 0)Z.delete(E)}if(J.it[$+k]=K[k],Z){let E=K[k]?.id;if(E!==void 0)Z.set(E,$+k)}}}if(J.ii)B()},updateItem:(K,$)=>{let O=J.it;if(K<0||K>=O.length)return!1;let D=O[K];if(!D)return!1;let k=D.id;if(O[K]={...D,...$},Z){let T=O[K].id;if(k!==T){if(k!==void 0)Z.delete(k);if(T!==void 0)Z.set(T,K)}}let E=Q.get(K);if(E)Y(E,J.at(O[K],K,X)),E.dataset.id=String(O[K].id);return!0},removeItem:(K)=>{let $;if(typeof K==="number")$=Z?Z.get(K)??K:K;else $=(Z??A()).get(K)??-1;if($<0||$>=J.it.length)return!1;if(J.it.splice($,1),Z)A();if(J.ii)B();return!0},loadRange:async()=>{},ensureRange:async()=>{},loadInitial:async()=>{},loadMore:async()=>!1,reload:async()=>{},evictDistant:()=>{},clear:()=>{if(J.it=[],Z)Z.clear()},reset:()=>{if(J.it=[],Z)Z.clear();if(J.ii)J.hc.rebuild(0),W(),J.ffn()}}},L1=(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 N2=(J,q,j,Q,X=0,Y=0)=>{let W=q.getOffset(J),B=q.getSize(J),_=W+X,Z=_+B,A=j+Q;if(_<j)return Math.max(0,W);if(Z>A)return Z+Y-Q;return j},F2=(J,q,j,Q,X=0,Y=0,W,B,_)=>{if(!(W!=null&&W.isCompressed&&W.ratio!==1))return N2(J,q,j,Q,X,Y);let{virtualSize:A}=W,K=q.getSize(Math.max(0,J)),$=Q-X-Y,O=Math.max(1,Math.floor($/K)),D=q.getTotalSize();if(_){if(J>=_.start+O){let F=q.getOffset(J)+K+Y-Q;return Math.max(0,F/D*A)}if(J<=_.start){let T=q.getOffset(J)-X;return Math.max(0,T/D*A)}return j}let k=j/A*B,E=k+O;if(J>=E){let F=q.getOffset(J)+K+Y-Q;return Math.max(0,F/D*A)}if(J<k){let T=q.getOffset(J)-X;return Math.max(0,T/D*A)}return j};var F1=(J,q,j,Q,X,Y,W,B,_,Z,A,K,$,O)=>{let D=`${j}-item--focused`,k=!1,E=()=>{let w=_.get("_getNavTotal");return w?w():J.vtf()},T=()=>{let w=_.get("_getNavDelta");return w?w():{ud:1,lr:0,cols:0}};_.set("_getFocusedIndex",()=>k?J.fi:-1);let F=()=>q.root.getAttribute("role")==="grid"?q.root:q.items,S=(w,s=!0)=>{if(F().setAttribute("aria-activedescendant",`${Q}-item-${w}`),s){let m=_.get("_scrollItemIntoView");if(m)m(w);else{let o=X?J.cw:J.ch,X0=J.i2s(w),n=N2(X0,J.hc,J.ls,o,Y,W);if(n!==J.ls)J.sst(n),J.ls=J.sgt()}}J.ffn()},p=(w)=>{J.fi=w,k=!0,S(w)},g=(w,s)=>{if(J.fi=w,s||O)k=!0;let m=J.dm?J.dm.getItem(w):J.it[w];if(m&&J.ss.has(m.id))J.ss.clear();else if(J.ss.clear(),m)J.ss.add(m.id);S(w,s)},r=(w,s,m)=>{let o=w;while(o>=0&&o<m){let X0=J.dm?J.dm.getItem(o):J.it[o];if(!X0||!X0.__groupHeader)return o;o+=s}o=w-s;while(o>=0&&o<m){let X0=J.dm?J.dm.getItem(o):J.it[o];if(!X0||!X0.__groupHeader)return o;o-=s}return w},y=()=>{if(J.id)return;if(!F().matches(":focus-visible")&&!q.root.matches(":focus-visible"))return;let s=E();if(s===0)return;let m=J.fi>=0?Math.min(J.fi,s-1):0;m=r(m,1,s),p(m)};q.root.addEventListener("focusin",y);let M=(w)=>{if(J.id)return;let s=w.relatedTarget;if(s&&q.root.contains(s))return;if(k=!1,J.fi>=0)Z.get(J.fi)?.classList.remove(D);F().removeAttribute("aria-activedescendant")};q.root.addEventListener("focusout",M),A.push((w)=>{if(J.id)return;let s=E();if(s===0)return;let m=J.fi,o=m;if(w.key===" "||w.key==="Enter"){if(m>=0){let n=J.dm?J.dm.getItem(m):J.it[m];if(n&&!n.__groupHeader)g(m,!0)}w.preventDefault();return}let X0=_.get("_navigate");if(X0)switch(w.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":o=X0(m,w.key,s);break;default:return}else{let{ud:n,lr:v}=T();switch(w.key){case"ArrowUp":o=m-n;break;case"ArrowDown":o=m+n;break;case"ArrowLeft":if(!v)return;o=m-v;break;case"ArrowRight":if(!v)return;o=m+v;break;case"PageUp":case"PageDown":{let R=J.hc.getSize(J.i2s(Math.max(0,m))),N=Math.max(n,Math.floor((X?J.cw:J.ch)/R)*n),V=_.get("_layoutToDataIndex"),L=_.get("_dataToLayoutIndex");if(V&&L){let H=V(m),d=w.key==="PageUp"?-N:N,J0=V(s-1);o=L(Math.max(0,Math.min(J0,H+d)))}else o=w.key==="PageUp"?m-N:m+N;break}case"Home":o=0;break;case"End":o=s-1;break;default:return}if(o<0)o=B?s-1:0;else if(o>=s)o=B?0:s-1}if(w.preventDefault(),o=r(o,o>=m?1:-1,s),o!==m)p(o)}),K.push((w)=>{if(J.id)return;let s=w.target.closest("[data-index]");if(!s)return;let m=parseInt(s.dataset.index??"-1",10);if(m<0)return;let o=J.dm?.getItem(m)??J.it[m];if(!o||o.__groupHeader)return;k=!1,F().focus({preventScroll:!0}),g(m,!1)}),$.push(()=>{q.root.removeEventListener("focusin",y),q.root.removeEventListener("focusout",M)})};var Q2=(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 w2=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,r0=(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}},q2=(J,q)=>{let j=null,Q=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(Y,W,B)=>{if(Q(),Math.abs(W-Y)<1){J.scrollTo(W);return}let _=performance.now(),Z=(A)=>{let K=A-_,$=Math.min(K/B,1),O=Y+(W-Y)*w2($);if(J.scrollTo(O),q(),$<1)j=requestAnimationFrame(Z);else j=null};j=requestAnimationFrame(Z)},cancelScroll:Q}};var T1=(J,q,j,Q,X,Y,W,B,_,Z,A,K,$,O,D,k,E,T,F)=>{let S=(b)=>{{if(!Array.isArray(b)){console.warn("[vlist] setItems() expects an array, got:",typeof b);return}if(b.length>0&&b[0]&&!("id"in b[0]))console.warn('[vlist] Items must have an "id" property. First item:',b[0]);let U=Math.min(b.length,1e4),C=new Set;for(let G=0;G<U;G++){let u=b[G];if(u&&"id"in u){if(C.has(u.id)){console.warn(`[vlist] Duplicate item ID "${u.id}" at index ${G}. updateItem() and removeItem() will only match the first occurrence.`);break}C.add(u.id)}}}V(),_.dataManager.setItems(b,0,b.length)},p=(b)=>{let U=Z&&J.sab(2);if(_.dataManager.setItems(b,J.it.length),U&&J.it.length>0){let C=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(C),J.ls=C,J.rfn()}},g=(b)=>{let U=Z?J.sgt():0,C=Z?J.hc.getTotalSize():0,G=[...J.it];if(_.dataManager.clear(),_.dataManager.setItems([...b,...G],0),Z){let u=J.hc.getTotalSize()-C;if(u>0)J.sst(U+u),J.ls=U+u}},r=null,y=null,M=null,w=!1,s=()=>{if(w)return;w=!0,r=Y.get("_updateRenderedItem")??null,y=Y.get("_getSelectedIds")??null,M=Y.get("_getFocusedIndex")??null},m=(b,U)=>{{let G=J.vtf();if(b<0||b>=G)console.warn(`[vlist] updateItem() index ${b} is out of range (0–${G-1}).`)}if(_.dataManager.updateItem(b,U),s(),!r)return;let C=_.dataManager.getItem(b);if(C){let u=(y?y():J.ss).has(C.id),f=(M?M():J.fi)===b;r(b,C,u,f)}},o=!1,X0=(b)=>{let U=typeof document<"u"?document.activeElement:null,C=U&&q.items.contains(U)?parseInt(U.dataset?.index??"-1",10):-1;if(!_.dataManager.removeItem(b))return console.warn(`[vlist] removeItem() could not find item with id "${b}".`),!1;if(j.emit("data:change",{type:"remove",id:b}),_.forceRender(),!o){let u=_.dataManager;if(typeof u.ensureRange==="function")o=!0,queueMicrotask(()=>{o=!1;let f=_.dataManager.getTotal(),{start:i,end:a}=_.state.viewportState.renderRange;if(f>0&&a>=i)u.ensureRange(i,a).catch(()=>{})})}if(C>=0){let u=J.vtf();if(u>0)Q.get(Math.min(C,u-1))?.focus()}return!0},n=(b)=>{return _.dataManager.getItem(b)},v=(b)=>{return _.dataManager.getIndexById?.(b)??-1},R=async(b)=>{if(_.dataManager.reload)await _.dataManager.reload()},N=null,V=()=>{if(N!==null)cancelAnimationFrame(N),N=null},L=(b,U,C,G)=>{if(V(),Math.abs(U-b)<1){J.sst(U),J.ls=U,J.rfn();return}let u=performance.now(),f=(i)=>{let a=i-u,Y0=Math.min(a/C,1),x=G?G():U,e=b+(x-b)*w2(Y0);if(J.sst(e),J.ls=e,J.rfn(),Y0<1)N=requestAnimationFrame(f);else N=null};N=requestAnimationFrame(f)},H=(b,U)=>{{let Y0=J.vtf();if(Y0>0&&(b<0||b>=Y0))console.warn(`[vlist] scrollToIndex(${b}) is out of range (0–${Y0-1}).`)}let{align:C,behavior:G,duration:u}=r0(U),f=J.vtf(),i=b;if(A&&f>0)i=(i%f+f)%f;let a=J.gsp(i,J.hc,J.ch,f,C);if(G==="smooth"){let Y0=i,x=C;L(J.sgt(),a,u,()=>J.gsp(Y0,J.hc,J.ch,J.vtf(),x))}else V(),J.sst(a)},d=()=>J.sgt(),J0=(b,U)=>{return j.on(b,U)},c=(b,U)=>{j.off(b,U)},j0=()=>{if(J.id)return;if(J.id=!0,_.state.isDestroyed=!0,q.items.removeEventListener("click",K),q.items.removeEventListener("dblclick",$),q.items.removeEventListener("contextmenu",O),q.root.removeEventListener("keydown",D),J.st.removeEventListener("scroll",k),E.disconnect(),T(),J.wh)q.viewport.removeEventListener("wheel",J.wh);F();let b=[];for(let U=0;U<B.length;U++)try{B[U]()}catch(C){b.push(C instanceof Error?C:Error(String(C)))}for(let U of W)if(U.destroy)try{U.destroy()}catch(C){b.push(C instanceof Error?C:Error(String(C)))}V();for(let[,U]of Q)U.remove(),X.release(U);Q.clear(),X.clear(),j.emit("destroy",void 0);for(let U of b)j.emit("error",{error:U,context:"destroy"});j.clear(),q.root.remove()},z=(b,U)=>Y.has(b)?Y.get(b):U,I={get element(){return q.root},get items(){let b=Y.get("_getItems");return b?b():J.it},get total(){let b=Y.get("_getTotal");return b?b():J.vtf()},setItems:z("setItems",S),appendItems:z("appendItems",p),prependItems:z("prependItems",g),updateItem:z("updateItem",m),removeItem(b){let U=Y.get("removeItem");return U?U(b):X0(b)},reload:z("reload",R),getItemAt:n,getIndexById:v,scrollToIndex:z("scrollToIndex",H),cancelScroll:z("cancelScroll",V),getScrollPosition:z("getScrollPosition",d),on:J0,off:c,destroy:j0};for(let[b,U]of Y){if(b.charCodeAt(0)===95||b==="setItems"||b==="appendItems"||b==="prependItems"||b==="updateItem"||b==="removeItem"||b==="reload"||b==="scrollToIndex"||b==="scrollToItem"||b==="cancelScroll"||b==="getScrollPosition")continue;I[b]=U}return I};var XJ=3,UJ="vlist",ZJ=150,KJ=16000000,NJ=4096,W2="__placeholder_",WJ=(J)=>(typeof screen<"u"?J?screen.width:screen.height:0)||NJ,BJ=0,z2=(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,B=!1,_={use(Z){if(B)throw Error("[vlist] Cannot call .use() after .build()");return W.set(Z.name,Z),_},build(){if(B)throw Error("[vlist] .build() can only be called once");return B=!0,_J(J,W,q,X,Y??null)}};return _};function _J(J,q,j,Q,X){let{item:Y,items:W,overscan:B=XJ,classPrefix:_=UJ,ariaLabel:Z,accessibility:A,padding:K,reverse:$=!1,scroll:O,accessible:D,interactive:k}=J,E=k??D??!0,T=O,F=T?.wheel??!0,S=T?.wrap??!1,p=A?.announceVisibleRange??!1,g=A?.rangeAnnouncementDebounce??750,r=$,y=`${_}-${BJ++}`,M=q.has("withGrid")||q.has("withMasonry")?0:Y.gap??0,w=Q??X,s=Q==null&&X!=null,m=j?typeof Y.height==="number"?Y.height:void 0:typeof Y.width==="number"?Y.width:void 0,o={overscan:B,classPrefix:_,reverse:r,wrap:S,horizontal:j,ariaIdPrefix:y,interactive:E},X0=WJ(j),n=Array.from(q.values()).sort((l,Z0)=>(l.priority??50)-(Z0.priority??50)),v=new Set(n.map((l)=>l.name));for(let l of n)if(l.conflicts){for(let Z0 of l.conflicts)if(v.has(Z0))throw Error(`[vlist] ${l.name} and ${Z0} cannot be combined`)}if(r){if(v.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let R=_1(J.container),N=V1(R,_,Z,j,E);if(T?.wheel===!1)if(j)N.viewport.style.overflowX="hidden";else N.viewport.style.overflow="hidden";if(T?.scrollbar==="none")N.viewport.classList.add(`${_}-viewport--no-scrollbar`);if(T?.gutter==="stable")N.viewport.classList.add(`${_}-viewport--gutter-stable`);let V=v.has("withGrid")||v.has("withMasonry");if(j&&m!=null&&T?.scrollbar!=="none"&&!V){N.root.style.height=`${m}px`;let l=N.viewport.style.overflowX;N.viewport.style.overflowX="scroll";let Z0=N.viewport.offsetHeight-N.viewport.clientHeight;if(N.viewport.style.overflowX=l,Z0>0)N.root.style.height=`${m+Z0}px`}let L=g0(K),H=e0(L,j);if(L.top||L.right||L.bottom||L.left)N.content.style.boxSizing="border-box",N.content.style.padding=`${L.top}px ${L.right}px ${L.bottom}px ${L.left}px`;let d=B1(),J0=W||[],c=typeof w==="function"&&(q.has("withGrid")||q.has("withMasonry")),j0=M>0?typeof w==="function"?(l)=>w(l)+M:w+M:w,z=s?X+M:j0,I=i0(z,c?0:J0.length);if(M>0){let l=I.getTotalSize;I.getTotalSize=()=>{let Z0=l();return Z0>0?Z0-M:0}}let b=D1(),U={it:J0,hc:I,ch:Math.min(N.viewport.clientHeight,X0),cw:Math.min(N.viewport.clientWidth,X0),id:!1,ii:!1,ls:0,vt:N1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>N.viewport.scrollLeft:()=>N.viewport.scrollTop,sst:j?(l)=>{N.viewport.scrollLeft=l}:(l)=>{N.viewport.scrollTop=l},sab:(l=2)=>{let Z0=U.hc.getTotalSize();return U.ls+U.ch>=Z0-l},sic:!1,rfn:null,ffn:null,gvr:(l,Z0,K0,A0,y0)=>{M1(l,Z0,K0,A0,y0)},gsp:(l,Z0,K0,A0,y0)=>{return O1(l,Z0,K0,A0,y0,U.mp)},pef:null,at:Y.template,vre:!0,st:N.viewport,wh:null,gcw:()=>U.cw,gch:()=>U.ch,gp:M,mp:H,sif:(l)=>l,i2s:(l)=>l,uic:(l,Z0,K0)=>{let A0=x.get(l);if(!A0)return;U0(A0,Z0,K0)},csi:null};U.vtf=()=>U.dm?U.dm.getTotal():U.it.length;let C=null,G=!1,u={start:0,end:0},f={start:0,end:0},i={start:-1,end:-1},a={viewportState:{scrollPosition:0,containerSize:j?U.cw:U.ch,totalSize:U.hc.getTotalSize(),actualSize:U.hc.getTotalSize(),isCompressed:!1,compressionRatio:1,visibleRange:{start:0,end:0},renderRange:{start:0,end:0}},lastRenderRange:{start:-1,end:-1},isInitialized:!1,isDestroyed:!1,cachedCompression:null},Y0=()=>({...a.viewportState,totalItems:U.vtf()}),x=new Map,e=()=>{J2(N.items,x.keys(),(l)=>x.get(l))},P=()=>{let l=U.hc.getTotalSize(),K0=`${(U.sic?l:Math.min(l,KJ))+H}px`;if(j)N.content.style.width=K0;else N.content.style.height=K0},h={selected:!1,focused:!1},Q0=`${_}-item`,t=`${_}-group-header`,V0=`${_}-item--selected`,N0=`${_}-item--focused`,U0=(l,Z0,K0)=>{l.classList.toggle(V0,Z0),l.classList.toggle(N0,K0),l.ariaSelected=Z0?"true":"false"},W0=(l,Z0,K0,A0)=>{if(K0)l.setAttribute("role","presentation"),l.removeAttribute("aria-selected"),l.removeAttribute("aria-setsize"),l.removeAttribute("aria-posinset"),l.removeAttribute("id");else if(E){if(l.setAttribute("role","option"),A0)l.ariaSelected="false",U.la=String(p0.getSetSize()),l.setAttribute("aria-setsize",U.la);l.id=`${y}-item-${Z0}`,l.setAttribute("aria-posinset",String(p0.getPosInSet(Z0)))}else{if(l.setAttribute("role","listitem"),l.removeAttribute("aria-selected"),A0)U.la=String(p0.getSetSize()),l.setAttribute("aria-setsize",U.la);l.setAttribute("aria-posinset",String(p0.getPosInSet(Z0)))}},M0=Y.striped,$0=!!M0,H0=M0==="data"||M0==="even"||M0==="odd",P0=`${_}-item--odd`,E0=`${_}-item--placeholder`,w0=`${_}-item--replaced`,D0=`${_}--scrolling`,k0=[],b0=[],z0=[],u0=[],h0=[],I0=[],X2=[],a0=[],o0=[],v0=new Map,q0=(l,Z0,K0)=>{if(String(K0).startsWith(W2))return;let A0=W2+Z0;if(l.has(A0))l.delete(A0),l.add(K0)},B0={scrollPosition:0,direction:"down"},_0={velocity:0,reliable:!1},G0={range:{start:0,end:0}},O0=null,F0=null,C0=!1,L0=!1,l0=()=>{if(C0)return;C0=!0,O0=v0.get("_getSelectedIds")??null,F0=v0.get("_getFocusedIndex")??null},p0=Q2(v0,U.vtf),D2=(l,Z0,K0)=>{if(!Z0)console.warn(`[vlist] Template returned falsy value${K0!==void 0?` for item at index ${K0}`:""}. The element will render as blank.`);else if(typeof Z0==="string"&&Z0==="")console.warn(`[vlist] Template returned empty string${K0!==void 0?` for item at index ${K0}`:""}. The element will render as blank.`);if(typeof Z0==="string")l.innerHTML=Z0;else l.replaceChildren(Z0)},a1=(l,Z0)=>{let K0=Math.round(U.hc.getOffset(Z0));if(j)l.style.transform=`translateX(${K0}px)`;else l.style.transform=`translateY(${K0}px)`};U.pef=a1;let o1=(l,Z0)=>{let K0=b.acquire(),A0=!!Z0.__groupHeader;K0.className=A0?t:Q0;let y0=!U.csi||U.csi(l);if(j){if(y0)K0.style.width=`${U.hc.getSize(l)-M}px`;else K0.style.width="";if(m!=null)K0.style.height=`${m}px`}else if(y0)K0.style.height=`${U.hc.getSize(l)-M}px`;else K0.style.height="";if(K0.dataset.index=String(l),K0.dataset.id=String(Z0.id),W0(K0,l,A0,!0),String(Z0.id).startsWith(W2))K0.classList.add(E0);if($0)if(H0){let R0=U.sif(l);if(R0<0)K0.classList.remove(P0);else K0.classList.toggle(P0,(R0&1)===1)}else K0.classList.toggle(P0,(l&1)===1);try{D2(K0,U.at(Z0,l,h),l)}catch(R0){let d0=R0 instanceof Error?R0:Error(String(R0));d.emit("error",{error:d0,context:`tpl(${l},${Z0.id})`,viewport:Y0()}),K0.textContent=""}return U.pef(K0,l),K0},M2=NaN,n1=()=>{if(U.id)return;let l=j?U.cw:U.ch;if(l<=0)return;l0();let Z0=O0?O0():U.ss,K0=F0?F0():U.fi,A0=U.vtf();U.gvr(U.ls,l,U.hc,A0,u),G1(u,B,A0,f);let y0=f.end-f.start+1,m0=U.hc.getSize(0)||1,R0=Math.ceil(X0/m0)+B*2;if(y0>R0){if(!L0)L0=!0,console.warn(`[vlist] Render range capped: ${y0} items → ${R0}. Container is ${l}px tall (item: ${m0}px). This usually means the container has no CSS height constraint.`);f.end=f.start+R0-1}if(f.start===i.start&&f.end===i.end){if(U.sic&&U.ls!==M2){M2=U.ls;for(let[T0,S0]of x)U.pef(S0,T0)}a.viewportState.scrollPosition=U.ls,a.viewportState.containerSize=l,a.viewportState.visibleRange.start=u.start,a.viewportState.visibleRange.end=u.end,a.viewportState.renderRange.start=f.start,a.viewportState.renderRange.end=f.end;return}let d0=String(p0.getSetSize()),JJ=d0!==U.la;U.la=d0;for(let[T0,S0]of x)if(T0<f.start||T0>f.end)S0.remove(),b.release(S0),x.delete(T0);let Y1=document.createDocumentFragment(),X1=!1,Z2=a0.length>0?[]:null;for(let T0=f.start;T0<=f.end;T0++){let S0=U.dm?U.dm.getItem(T0):U.it[T0];if(S0===void 0)continue;let f0=x.get(T0);if(f0){let n0=f0.dataset.id,t0=String(S0.id);if(n0!==t0){let QJ=n0?.startsWith(W2),P2=t0.startsWith(W2),U1=!!S0.__groupHeader;f0.className=U1?t:Q0,W0(f0,T0,U1,!1);try{D2(f0,U.at(S0,T0,h),T0)}catch(y2){let qJ=y2 instanceof Error?y2:Error(String(y2));d.emit("error",{error:qJ,context:`tpl(${T0},${S0.id})`,viewport:Y0()}),f0.textContent=""}f0.dataset.id=t0;let Z1=!U.csi||U.csi(T0);if(j)f0.style.width=Z1?`${U.hc.getSize(T0)-M}px`:"";else f0.style.height=Z1?`${U.hc.getSize(T0)-M}px`:"";if(P2)f0.classList.add(E0);else f0.classList.remove(E0);if(QJ&&!P2)f0.classList.add(w0),setTimeout(()=>{f0.classList.remove(w0)},300);if(U.dm&&!P2)q0(Z0,T0,S0.id)}U.pef(f0,T0);let A2=Z0.has(S0.id);if(U0(f0,A2,T0===K0),JJ&&!S0.__groupHeader)f0.setAttribute("aria-setsize",U.la)}else{let n0=o1(T0,S0);if(Z2)Z2.push({index:T0,element:n0});if(U.dm)q0(Z0,T0,S0.id);let t0=Z0.has(S0.id),A2=T0===K0;if(t0||A2)U0(n0,t0,A2);Y1.appendChild(n0),x.set(T0,n0),X1=!0}}if(X1)N.items.appendChild(Y1);if(Z2&&Z2.length>0)for(let T0=0;T0<a0.length;T0++)a0[T0](Z2);i.start=f.start,i.end=f.end,M2=U.ls,a.lastRenderRange.start=f.start,a.lastRenderRange.end=f.end,a.viewportState.scrollPosition=U.ls,a.viewportState.visibleRange.start=u.start,a.viewportState.visibleRange.end=u.end,a.viewportState.renderRange.start=f.start,a.viewportState.renderRange.end=f.end,G0.range.start=f.start,G0.range.end=f.end,d.emit("range:change",G0)},i1=()=>{i.start=-1,i.end=-1,M2=NaN,U.rfn()};U.rfn=n1,U.ffn=i1;let t1=()=>{N.root.classList.remove(D0),G=!1,U.vt.velocity=0,U.vt.sampleCount=0,_0.velocity=0,_0.reliable=!1,d.emit("velocity:change",_0),e();for(let l=0;l<b0.length;l++)b0[l]();d.emit("scroll:idle",{scrollPosition:U.ls})},e1=()=>{if(C)clearTimeout(C);C=setTimeout(t1,T?.idleTimeout??ZJ)},U2=()=>{if(U.id)return;let l=U.sgt();if(l===U.ls&&G)return;let Z0=l>=U.ls?"down":"up";if(U.vt=W1(U.vt,l),!N.root.classList.contains(D0))N.root.classList.add(D0);G=!0,U.ls=l,U.rfn(),B0.scrollPosition=l,B0.direction=Z0,d.emit("scroll",B0),_0.velocity=U.vt.velocity,_0.reliable=U.vt.sampleCount>=K1,d.emit("velocity:change",_0);for(let K0=0;K0<k0.length;K0++)k0[K0](l,Z0);e1()},G2=null;if(U.st.addEventListener("scroll",U2,{passive:!0}),F){let l=N.viewport;if(j)G2=(Z0)=>{if(a.viewportState.isCompressed)return;if(Math.abs(Z0.deltaX)>Math.abs(Z0.deltaY))return;let K0=U.sgt(),A0=l.scrollWidth-l.clientWidth,y0=Math.max(0,Math.min(K0+Z0.deltaY,A0));if(Math.abs(y0-K0)<1)return;Z0.preventDefault(),U.sst(y0),U2()};else G2=(Z0)=>{if(a.viewportState.isCompressed)return;let K0=l.scrollWidth>l.clientWidth;if(K0&&Math.abs(Z0.deltaX)>Math.abs(Z0.deltaY))return;if(K0&&Z0.deltaX!==0)Z0.preventDefault(),l.scrollLeft+=Z0.deltaX;let A0=U.sgt(),y0=l.scrollHeight-l.clientHeight,m0=Math.max(0,Math.min(A0+Z0.deltaY,y0));if(Math.abs(m0-A0)<1)return;Z0.preventDefault(),U.sst(m0),U2()};U.wh=G2,l.addEventListener("wheel",G2,{passive:!1})}let k2=(l)=>{let Z0=l.target.closest("[data-index]");if(!Z0)return null;let K0=parseInt(Z0.dataset.index??"-1",10);if(K0<0)return null;let A0=U.dm?.getItem(K0)??U.it[K0];if(!A0||A0.__groupHeader)return null;return{item:A0,index:K0}},t2=(l)=>{for(let K0=0;K0<z0.length;K0++)z0[K0](l);let Z0=k2(l);if(Z0)d.emit("item:click",{item:Z0.item,index:Z0.index,event:l})},e2=(l)=>{let Z0=k2(l);if(Z0)d.emit("item:dblclick",{item:Z0.item,index:Z0.index,event:l})},J1=(l)=>{for(let K0=0;K0<u0.length;K0++)u0[K0](l);let Z0=k2(l);if(Z0)d.emit("item:contextmenu",{item:Z0.item,index:Z0.index,event:l})},Q1=(l)=>{for(let Z0=0;Z0<h0.length;Z0++)h0[Z0](l)};if(N.items.addEventListener("click",t2),N.items.addEventListener("dblclick",e2),N.items.addEventListener("contextmenu",J1),N.root.addEventListener("keydown",Q1),E&&p){let l=null,Z0=(K0)=>{if(l)clearTimeout(l);l=setTimeout(()=>{if(l=null,U.id)return;let A0=U.vtf();N.liveRegion.textContent=`Showing items ${K0.range.start+1} to ${Math.min(K0.range.end+1,A0)} of ${A0}`},g)};d.on("range:change",Z0),o0.push(()=>{if(l)clearTimeout(l);d.off("range:change",Z0)})}let b2=new ResizeObserver((l)=>{if(U.id)return;for(let Z0 of l){let K0=Z0.contentRect.height,A0=Z0.contentRect.width,y0=j?A0:K0,m0=j?U.cw:U.ch;if(y0>X0){if(!L0)L0=!0,console.warn(`[vlist] Viewport grew to ${Math.round(y0)}px (screen: ${X0}px). Re-applying size constraint. Check that the vlist container has a CSS height/width constraint.`);let R0=j?"width":"height";N.root.style[R0]="100%",N.viewport.style[R0]="100%";return}if(U.cw=A0,U.ch=K0,Math.abs(y0-m0)>1){if(a.viewportState.containerSize=y0,U.ii){let R0=a.cachedCompression;if(R0&&R0.state.isCompressed){let d0=`${R0.state.virtualSize+H}px`;if(j)N.content.style.width=d0;else N.content.style.height=d0}else P();U.rfn(),d.emit("resize",{height:K0,width:A0})}}if(U.ii)for(let R0=0;R0<I0.length;R0++)I0[R0](A0,K0)}});if(U.vre)b2.observe(N.viewport);let R2={dom:N,emitter:d,resolvedConfig:o,rawConfig:J,rendered:x,pool:b,itemState:h,sharedState:a,renderRange:f,isHorizontal:j,classPrefix:_,contentSizeHandlers:X2,idleHandlers:b0,afterScroll:k0,clickHandlers:z0,contextMenuHandlers:u0,keydownHandlers:h0,resizeHandlers:I0,destroyHandlers:o0,methods:v0,onScrollFrame:U2,resizeObserver:b2,afterRenderBatch:a0,applyTemplate:D2,updateContentSize:P},O2=A1(U,R2);U.dm=E1(U,R2,O2),U.sc=L1(U,R2),v0.set("_updateRenderedItem",(l,Z0,K0,A0)=>{let y0=x.get(l);if(!y0)return;let m0={selected:K0,focused:A0};try{let R0=U.at(Z0,l,m0);D2(y0,R0,l)}catch(R0){let d0=R0 instanceof Error?R0:Error(String(R0));d.emit("error",{error:d0,context:`tpl(${l},${Z0.id})`,viewport:Y0()})}y0.dataset.id=String(Z0.id),U0(y0,K0,A0)});let q1=new WeakSet;v0.set("_setSizeCache",(l)=>{if(U.hc=l,U.gp>0&&!q1.has(l)){q1.add(l);let Z0=U.hc.getTotalSize,K0=U.gp;U.hc.getTotalSize=()=>{let A0=Z0();return A0>0?A0-K0:0}}}),v0.set("_setConstrainSize",(l)=>{U.csi=l});let j1=new Map;for(let l of n)if(l.methods)for(let Z0 of l.methods){let K0=j1.get(Z0);if(K0)throw Error(`[vlist] Method "${Z0}" is registered by both "${K0}" and "${l.name}"`);j1.set(Z0,l.name)}for(let l of n)try{l.setup(O2)}catch(Z0){let K0=Z0 instanceof Error?Z0:Error(String(Z0));console.error(`[vlist] Feature "${l.name}" setup failed:`,K0),d.emit("error",{error:K0,context:l.name,viewport:Y0()})}if(s&&!q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(E&&!v0.has("_getFocusedIndex")){let l=j?L.left:L.top,Z0=j?L.right:L.bottom;F1(U,N,_,y,j,l,Z0,S,v0,x,h0,z0,o0,!!J.focusOnClick)}if(U.ii=!0,O2.state.isInitialized=!0,P(),U.rfn(),r&&U.it.length>0){let l=U.gsp(U.it.length-1,U.hc,U.ch,U.it.length,"end");U.sst(l),U.ls=l,U.rfn()}return T1(U,N,d,x,b,v0,n,o0,O2,r,S,t2,e2,J1,Q1,U2,b2,()=>{},()=>{if(C)clearTimeout(C)})}var C2=200,v2=50;var H1=50,$1=12,k1=2,j2=16000000;var b1="x",R1=20,S2="_isPlaceholder",c0="__placeholder_";var P1=(J,q,j)=>{let Q=q.getTotalSize(),X=j===!0||Q>j2,Y=Q>j2?j2:Q,W=Q>0?Y/Q:1;return{isCompressed:X,actualSize:Q,virtualSize:Y,ratio:W}};var T2=(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:B}=Y,_=q/B,Z=j.getTotalSize(),A=_*Z;return j.getOffset(J)-A};var VJ=(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}},B2=(J,q,j={},Q="vlist",X=!1,Y)=>{let{autoHide:W=!0,autoHideDelay:B=1000,minThumbSize:_=15,showOnHover:Z=!0,showOnViewportEnter:A=!0,clickBehavior:K="scroll"}=j,$=K==="page"?"scroll":K,O=Y??J,D=VJ(j.padding),k=X?D.left:D.top,E=X?D.right:D.bottom,T=X?D.bottom:D.right,F=j.hoverZoneWidth??T+16,S=0,p=0,g=0,r=0,y=!1,M=!1,w=0,s=0,m=0,o=null,X0=!1,n=null,v=null,R=0,N=0,V=null,L=null,H=null,d=X?"width":"height",J0=X?"translateX":"translateY",c=X?(D0)=>D0.clientX:(D0)=>D0.clientY,j0=X?"left":"top",z=document.createElement("div"),I=document.createElement("div"),b=document.createElement("div"),U=X?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",C=()=>{if(O===J)return;let D0=J.offsetTop;z.style[X?"left":"top"]=D0?`calc(var(${U}) + ${D0}px)`:`var(${U})`,b.style[X?"left":"top"]=`${D0}px`},G=()=>{if(z.className=`${Q}-scrollbar`,I.className=`${Q}-scrollbar-thumb`,X)z.classList.add(`${Q}-scrollbar--horizontal`);if(j.padding!==void 0)O.style.setProperty("--vlist-custom-scrollbar-padding-top",`${D.top}px`),O.style.setProperty("--vlist-custom-scrollbar-padding-right",`${D.right}px`),O.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${D.bottom}px`),O.style.setProperty("--vlist-custom-scrollbar-padding-left",`${D.left}px`);if(j.minThumbSize!==void 0)z.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${_}px`);if(z.appendChild(I),O.appendChild(z),b.className=`${Q}-scrollbar-hover`,X)b.classList.add(`${Q}-scrollbar-hover--horizontal`),b.style.height=`${F}px`;else b.style.width=`${F}px`;if(O.appendChild(b),O!==J)C()},u=()=>{if(o)clearTimeout(o),o=null},f=()=>{if(!W)return;u(),o=setTimeout(a,B)},i=()=>{if(S<=p)return;if(u(),!X0)z.classList.add(`${Q}-scrollbar--visible`),X0=!0;if(W&&!y&&!M)f()},a=()=>{if(y||M)return;z.classList.remove(`${Q}-scrollbar--visible`),X0=!1},Y0=(D0,k0)=>{if(S=D0,p=k0,C(),S<=p){z.style.display="none",a();return}z.style.display="";let b0=Math.max(0,p-k-E),z0=p/S;if(g=Math.max(_,z0*b0),I.style[d]=`${g}px`,r=b0-g,x(m),!W)i()},x=(D0)=>{if(m=D0,S<=p||r<=0)return;let k0=S-p,b0=Math.min(1,Math.max(0,D0/k0));I.style.transform=`${J0}(${b0*r}px)`},e=(D0)=>{if(D0.target===I||$!=="jump"||r<=0)return;let k0=S-p,b0=z.getBoundingClientRect(),z0=c(D0)-b0[j0],u0=Math.max(0,Math.min(z0-g/2,r));q(u0/r*k0),i()},P=()=>{if(V!==null)clearTimeout(V),V=null;if(L!==null)cancelAnimationFrame(L),L=null;H=null},h=(D0)=>{let k0=r>0?N/D0*r:0;if(R<k0)return-1;if(R>=k0+g)return 1;return 0},Q0=()=>{let D0=S-p,k0=h(D0);if(k0===0){P();return}if(k0===-1){if(N<=0){P();return}let b0=Math.max(0,N-p);N=b0,q(b0)}else{if(N>=D0){P();return}let b0=Math.min(D0,N+p);N=b0,q(b0)}i()},t=(D0)=>{if(H===null){H=D0,L=requestAnimationFrame(t);return}let k0=S-p,b0=D0-H;H=D0;let z0=h(k0);if(z0===0){P();return}let u0=12*p/1000,h0=Math.min(u0*b0,p);if(z0===-1){if(N<=0){P();return}let I0=Math.max(0,N-h0);N=I0,q(I0)}else{if(N>=k0){P();return}let I0=Math.min(k0,N+h0);N=I0,q(I0)}u(),L=requestAnimationFrame(t)},V0=()=>{P(),f(),document.removeEventListener("mouseup",V0)},N0=(D0)=>{if(D0.target===I||$!=="scroll")return;D0.preventDefault();let k0=z.getBoundingClientRect();R=c(D0)-k0[j0],N=m,Q0(),V=setTimeout(()=>{L=requestAnimationFrame(t)},350),document.addEventListener("mouseup",V0)},U0=(D0)=>{D0.preventDefault(),D0.stopPropagation(),y=!0,w=c(D0),s=m,u(),z.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",W0),document.addEventListener("mouseup",M0)},W0=(D0)=>{if(!y)return;let k0=c(D0)-w,b0=r>0?k0/r:0,z0=S-p,u0=b0*z0,h0=Math.max(0,Math.min(s+u0,z0));if(I.style.transform=`${J0}(${h0/z0*r}px)`,v=h0,n===null)n=requestAnimationFrame(()=>{if(v!==null)q(v);n=null})},M0=()=>{if(y=!1,n!==null)cancelAnimationFrame(n),n=null;if(v!==null)q(v),v=null;if(z.classList.remove(`${Q}-scrollbar--dragging`),W&&!M)f();document.removeEventListener("mousemove",W0),document.removeEventListener("mouseup",M0)},$0=()=>{if(A)i()},H0=()=>{if(!y){if(M=!1,W)f()}},P0=()=>{M=!0,u(),i()},E0=()=>{if(M=!1,!y&&W)f()},w0=()=>{if(u(),P(),n!==null)cancelAnimationFrame(n),n=null;z.removeEventListener("click",e),z.removeEventListener("mousedown",N0),z.removeEventListener("mouseenter",P0),document.removeEventListener("mouseup",V0),z.removeEventListener("mouseleave",E0),I.removeEventListener("mousedown",U0),J.removeEventListener("mouseenter",$0),J.removeEventListener("mouseleave",H0),document.removeEventListener("mousemove",W0),document.removeEventListener("mouseup",M0),b.removeEventListener("click",e),b.removeEventListener("mousedown",N0),b.removeEventListener("mouseenter",P0),b.removeEventListener("mouseleave",E0),b.remove(),O.style.removeProperty("--vlist-custom-scrollbar-padding-top"),O.style.removeProperty("--vlist-custom-scrollbar-padding-right"),O.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),O.style.removeProperty("--vlist-custom-scrollbar-padding-left"),z.remove()};if(G(),z.addEventListener("click",e),z.addEventListener("mousedown",N0),z.addEventListener("mouseenter",P0),z.addEventListener("mouseleave",E0),I.addEventListener("mousedown",U0),J.addEventListener("mouseenter",$0),J.addEventListener("mouseleave",H0),b.addEventListener("click",e),b.addEventListener("mousedown",N0),Z)b.addEventListener("mouseenter",P0),b.addEventListener("mouseleave",E0);return{show:i,hide:a,updateBounds:Y0,updatePosition:x,isVisible:()=>X0,destroy:w0}};var f2=(J)=>{let q=null;return{name:"withScrollbar",priority:15,setup(j){let{dom:Q,config:X}=j,{classPrefix:Y,horizontal:W}=X;if(j.methods.has("_hasScrollbar"))Q.root.querySelector(`.${Y}-scrollbar`)?.remove(),Q.root.querySelector(`.${Y}-scrollbar-hover`)?.remove();j.methods.set("_hasScrollbar",()=>!0),q=B2(Q.viewport,(Z)=>j.scrollController.scrollTo(Z),J,Y,W,Q.root);let B=q,_=()=>{B.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)};if(Q.viewport.classList.add(`${Y}-viewport--custom-scrollbar`),J?.gutter)Q.viewport.classList.add(`${Y}-viewport--gutter`);_(),j.afterScroll.push((Z,A)=>{B.updatePosition(Z),B.show()}),j.resizeHandlers.push((Z,A)=>{_()}),j.contentSizeHandlers.push(()=>{_()}),j.destroyHandlers.push(()=>{B.destroy()})},destroy(){if(q)q.destroy(),q=null}}};var DJ=0.65,MJ=0.5,y1=1.7,GJ=0.95,OJ=0.1,AJ=5,EJ=100,w1=(J,q,j,Q=0)=>{if(J<=0)return 0;return Math.max(0,(q-Q)*(1-j)+Q)},h2=(J)=>{let q=J?.force??!1,j=null,Q=0,X=!1,Y=0,W=0,B=null,_=0,Z=0,A=null,K=[];return{name:"withScale",priority:20,setup($){let{dom:O,config:D}=$,{classPrefix:k,horizontal:E}=D,{root:T,viewport:F}=O,S=$.state.viewportState,p=E?"scrollLeft":"scrollTop",g=E?"overflowX":"overflow",r=g0($.rawConfig.padding),y=E?r.left+r.right:r.top+r.bottom,M=()=>{let N=$.getVirtualTotal(),V=P1(N,$.sizeCache,q);if(V.isCompressed&&!X){X=!0,$.scrollController.enableCompression(V);let H=F[p];if(F.style[g]="hidden",F[p]=0,H>0)Q=H,W=H;Y=w1(V.virtualSize,S.containerSize,V.ratio,y),$.updateContentSize(V.virtualSize+Y),$.setScrollFns(()=>Q,(U)=>{if(Q=U,W=U,B!==null)cancelAnimationFrame(B),B=null});let d=()=>{let U=W-Q;if($.getVirtualTotal()===0){Q=0,W=0,B=null,$.triggerScrollFrame();return}if(Math.abs(U)<MJ){let C=$.getCachedCompression(),G=Math.max(0,C.virtualSize+Y-S.containerSize);Q=Math.max(0,Math.min(W,G)),W=Q,B=null}else{Q+=U*DJ;let G=$.getCachedCompression().virtualSize+Y-S.containerSize;Q=Math.max(0,Math.min(Q,G)),B=requestAnimationFrame(d)}$.triggerScrollFrame()},J0=(U)=>{U.preventDefault();let C=$.getCachedCompression(),G=C.virtualSize+Y-S.containerSize;if(W=Math.max(0,Math.min(W+U.deltaY*C.ratio*y1,G)),B===null)B=requestAnimationFrame(d)};F.addEventListener("wheel",J0,{passive:!1});let c=()=>{if(A!==null)cancelAnimationFrame(A),A=null},j0=(U)=>{if(c(),B!==null)cancelAnimationFrame(B),B=null;let C=U.touches[0];if(!C)return;let G=E?C.clientX:C.clientY;_=G,Z=Q,K=[{time:performance.now(),y:G}]},z=(U)=>{U.preventDefault();let C=U.touches[0];if(!C)return;let G=E?C.clientX:C.clientY,u=performance.now();if(K.push({time:u,y:G}),K.length>AJ)K.shift();let f=_-G,i=$.getCachedCompression(),a=i.virtualSize+Y-S.containerSize,Y0=Math.max(0,Math.min(Z+f*i.ratio*y1,a));Q=Y0,W=Y0,$.triggerScrollFrame()},I=(U)=>{let C=performance.now(),G=K.filter((a)=>C-a.time<EJ),u=0;if(G.length>=2){let a=G[0],Y0=G[G.length-1],x=Y0.time-a.time;if(x>0)u=(a.y-Y0.y)/x}if(K=[],Math.abs(u)<OJ)return;let f=u*16,i=()=>{if(f*=GJ,Math.abs(f)<0.5){A=null;return}let Y0=$.getCachedCompression().virtualSize+Y-S.containerSize,x=Q+f;if(x=Math.max(0,Math.min(x,Y0)),x<=0&&f<0||x>=Y0&&f>0){Q=x,W=x,$.triggerScrollFrame(),A=null;return}Q=x,W=x,$.triggerScrollFrame(),A=requestAnimationFrame(i)};A=requestAnimationFrame(i)};F.addEventListener("touchstart",j0,{passive:!0}),F.addEventListener("touchmove",z,{passive:!1}),F.addEventListener("touchend",I,{passive:!0}),F.addEventListener("touchcancel",I,{passive:!0}),$.destroyHandlers.push(()=>{F.removeEventListener("wheel",J0),F.removeEventListener("touchstart",j0),F.removeEventListener("touchmove",z),F.removeEventListener("touchend",I),F.removeEventListener("touchcancel",I)});let b=()=>{if(F[p]!==0)F[p]=0};if(F.addEventListener("scroll",b,{passive:!0}),$.destroyHandlers.push(()=>{F.removeEventListener("scroll",b)}),!$.methods.has("_hasScrollbar")){if($.methods.set("_hasScrollbar",()=>!0),j=B2(F,(C)=>$.scrollController.scrollTo(C),{},k,E,T),!F.classList.contains(`${k}-viewport--custom-scrollbar`))F.classList.add(`${k}-viewport--custom-scrollbar`);j.updateBounds(V.virtualSize,S.containerSize);let U=j;$.afterScroll.push((C,G)=>{if(U)U.updatePosition(C),U.show()}),$.resizeHandlers.push((C,G)=>{if(U){let u=$.getCachedCompression();U.updateBounds(u.virtualSize,S.containerSize)}})}}else if(!V.isCompressed&&X){if(X=!1,B!==null)cancelAnimationFrame(B),B=null;if(A!==null)cancelAnimationFrame(A),A=null;if(Q=0,W=0,K=[],$.setScrollFns(()=>F[p],(H)=>{F[p]=H}),F[p]=0,$.scrollController.disableCompression(),F.style[g]="auto",j)j.destroy(),j=null;Y=0,$.updateContentSize(V.actualSize)}else if(V.isCompressed)$.scrollController.updateConfig({compression:V}),Y=w1(V.virtualSize,S.containerSize,V.ratio,y),$.updateContentSize(V.virtualSize+Y);if(j)j.updateBounds(V.virtualSize+Y,S.containerSize);let L=S;if(L.isCompressed=V.isCompressed,L.compressionRatio=V.ratio,L.totalSize=V.virtualSize+Y,L.actualSize=V.actualSize,$.state.cachedCompression={state:V,totalItems:N},X){let H=Math.max(0,V.virtualSize+Y-S.containerSize),d=Q;if(d>H)d=H;else if(d<0)d=0;if(d!==Q){if(B!==null)cancelAnimationFrame(B),B=null;if(A!==null)cancelAnimationFrame(A),A=null;$.scrollController.scrollTo(d)}}for(let H=0;H<$.contentSizeHandlers.length;H++)$.contentSizeHandlers[H]()};$.updateCompressionMode=M;let w=$.getCachedCompression.bind($);$.getCachedCompression=()=>{if($.state.cachedCompression)return $.state.cachedCompression.state;return w()},$.setVisibleRangeFn((N,V,L,H,d)=>{if(m=null,o=null,H===0||V===0){d.start=0,d.end=-1;return}let J0=$.getCachedCompression();if(!J0.isCompressed||J0.ratio===1){let z=L.indexAtOffset(N),I=L.indexAtOffset(N+V);if(I<H-1)I++;d.start=Math.max(0,z),d.end=Math.min(H-1,Math.max(0,I));return}let c=L.indexAtOffset(N/J0.virtualSize*J0.actualSize),j0;if(!L.isVariable())j0=Math.ceil(V/L.getSize(0));else{j0=0;let z=0,I=c;while(I<H&&z<V)z+=L.getSize(I),j0++,I++;if(j0<1)j0=1}d.start=Math.max(0,c),d.end=Math.min(H-1,Math.max(0,c+j0))}),$.setScrollToPosFn((N,V,L,H,d)=>{if(H===0)return 0;let J0=$.getCachedCompression(),c=V.getSize(N),j0;if(J0.isCompressed&&J0.ratio!==1){if(j0=N/H*J0.virtualSize,d==="center")j0-=(L-c)/2*J0.ratio;else if(d==="end")j0-=(L-c)*J0.ratio;return Math.max(0,j0)}if(j0=V.getOffset(N),d==="center")j0-=(L-c)/2;else if(d==="end")j0-=L-c;return Math.max(0,Math.min(j0,J0.virtualSize-L))});let s=NaN,m=null,o=null,X0=E?"translateX":"translateY";$.setPositionElementFn((N,V)=>{let L=$.scrollController.getScrollTop(),H=$.getCachedCompression();if(L!==s)s=L,m=null,o=null;if(H.isCompressed){if(m===null||V<o){o=V;let J0=$.sizeCache.getOffset(V);m=Math.round(H.ratio===1?J0-L:J0-L/H.virtualSize*H.actualSize)}let d=m+$.sizeCache.getOffset(V)-$.sizeCache.getOffset(o);N.style.transform=`${X0}(${d}px)`}else{let d=Math.round($.sizeCache.getOffset(V));N.style.transform=`${X0}(${d}px)`}});let n=E?r.left:r.top,v=E?r.right:r.bottom,R=$.getItemToScrollIndexFn();$.methods.set("_scrollItemIntoView",(N)=>{let V=$.getCachedCompression(),L=S.containerSize,H=S.scrollPosition,d=$.getVirtualTotal(),{visibleRange:J0}=S,c=R(N),j0=F2(c,$.sizeCache,H,L,n,v,V,d,J0);if(j0!==H)$.scrollController.scrollTo(j0)}),M(),$.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(B!==null)cancelAnimationFrame(B),B=null;if(A!==null)cancelAnimationFrame(A),A=null})}}};var z1=(J={})=>{let{chunkSize:q=100,maxCachedItems:j=5000,evictionBuffer:Q=200,onEvict:X}=J,Y=new Map,W=0,B=0,_=(v)=>{let R=Y.get(v);if(!R)R={items:Array(q),count:0,lastAccess:Date.now()},Y.set(v,R);else R.lastAccess=Date.now();return R},Z=(v)=>{return Math.floor(v/q)},A=(v)=>{return v%q},K=()=>W,$=(v)=>{W=v},O=(v)=>{if(v<0||v>=W)return;let R=Z(v),N=Y.get(R);if(!N)return;return N.items[A(v)]},D=(v)=>{if(v<0||v>=W)return!1;let R=Z(v),N=Y.get(R);if(!N)return!1;return N.items[A(v)]!==void 0},k=(v,R)=>{let N=Z(v),V=_(N),L=A(v),H=V.items[L]===void 0;if(V.items[L]=R,H)V.count++,B++;if(v>=W)W=v+1},E=(v,R)=>{for(let N=0;N<R.length;N++){let V=R[N];if(V!==void 0)k(v+N,V)}},T=(v)=>{if(v<0||v>=W)return!1;let R=Z(v),N=Y.get(R),V=A(v);if(!(N!==void 0&&N.items[V]!==void 0))return!1;let H=R,d=Array.from(Y.keys()).filter((c)=>c>=H).sort((c,j0)=>c-j0),J0=[];for(let c of d){let j0=Y.get(c),z=c*q;for(let I=0;I<q;I++){if(j0.items[I]===void 0)continue;let b=z+I;if(b<=v)continue;J0.push({oldIndex:b,item:j0.items[I]})}}if(N.items[V]=void 0,N.count--,B--,N.count===0)Y.delete(R);for(let{oldIndex:c}of J0){let j0=Z(c),z=Y.get(j0);if(!z)continue;let I=A(c);if(z.items[I]!==void 0){if(z.items[I]=void 0,z.count--,B--,z.count===0)Y.delete(j0)}}for(let{oldIndex:c,item:j0}of J0){let z=c-1,I=Z(z),b=_(I),U=A(z);b.items[U]=j0,b.count++,B++}return W--,!0},F=(v,R)=>{let N=[];for(let V=v;V<=R&&V<W;V++)N.push(O(V));return N},S=(v,R)=>{for(let N=v;N<=R&&N<W;N++)if(!D(N))return!1;return!0},p=()=>{let v=[],R=null,N=Array.from(Y.keys()).sort((V,L)=>V-L);for(let V of N){let L=Y.get(V);if(!L)continue;let H=V*q;for(let d=0;d<q;d++){let J0=H+d;if(J0>=W)break;if(L.items[d]!==void 0)if(R===null)R={start:J0,end:J0};else if(J0===R.end+1)R.end=J0;else v.push(R),R={start:J0,end:J0};else if(R!==null)v.push(R),R=null}}if(R!==null)v.push(R);return v},g=(v,R)=>{let N=[],V=null;for(let L=v;L<=R&&L<W;L++)if(!D(L))if(V===null)V={start:L,end:L};else V.end=L;else if(V!==null)N.push(V),V=null;if(V!==null)N.push(V);return N},r=(v)=>{return Y.has(v)},y=(v)=>{let R=Y.get(v);if(R)R.lastAccess=Date.now()},M=(v,R)=>{if(v>R||Y.size===0)return;let N=Date.now(),V=Z(Math.max(0,v)),L=Z(Math.min(W-1,R));for(let H=V;H<=L;H++){let d=Y.get(H);if(d)d.lastAccess=N}},w=(v,R)=>{if(B<=j)return 0;let N=Math.max(0,v-Q),V=Math.min(W-1,R+Q),L=Z(N),H=Z(V),d=0,J0=[];for(let[c,j0]of Y)if(c<L||c>H)d+=j0.count,J0.push(c),B-=j0.count,Y.delete(c);if(d>0&&X)X(d,J0);return d},s=()=>{if(B<=j)return 0;let v=Array.from(Y.entries()).sort(([,V],[,L])=>V.lastAccess-L.lastAccess),R=0,N=[];for(let[V,L]of v){if(B<=j)break;R+=L.count,B-=L.count,N.push(V),Y.delete(V)}if(R>0&&X)X(R,N);return R},m=()=>{return{totalItems:W,cachedItems:B,cachedChunks:Y.size,chunkSize:q,maxCachedItems:j,memoryEfficiency:W>0?1-B/W:1}},o=()=>B,X0=()=>{Y.clear(),B=0};return{chunkSize:q,maxCachedItems:j,getTotal:K,setTotal:$,get:O,has:D,set:k,setRange:E,delete:T,getRange:F,isRangeLoaded:S,getLoadedRanges:p,findUnloadedRanges:g,getChunkIndex:Z,isChunkLoaded:r,touchChunk:y,touchChunksForRange:M,evictDistant:w,evictToLimit:s,getStats:m,getCachedCount:o,clear:X0,reset:()=>{X0(),W=0}}};var C1=(J={})=>{let{maskCharacter:q=b1,maxSampleSize:j=R1}=J,Q=[],X=!1,Y=(A)=>{if(X||A.length===0)return;let K=Math.min(A.length,j);for(let $=0;$<K;$++){let O=A[$];if(!O||typeof O!=="object")continue;let D={},k=!1;for(let[E,T]of Object.entries(O)){if(E.startsWith("_")||E==="id")continue;D[E]=String(T??"").length,k=!0}if(k)Q.push(D)}X=!0},W=()=>X,B=(A)=>{let K={id:`${c0}${A}`,[S2]:!0,_index:A};if(Q.length===0)return K.label=q.repeat(12),K;let $=Q[A%Q.length];for(let[O,D]of Object.entries($))K[O]=q.repeat(Math.max(1,D));return K};return{analyzeStructure:Y,hasAnalyzedStructure:W,generate:B,generateRange:(A,K)=>{let $=[];for(let O=A;O<=K;O++)$.push(B(O));return $},clear:()=>{Q=[],X=!1}}},H2=(J)=>{if(!J||typeof J!=="object")return!1;return J[S2]===!0};var LJ=50,v1=(J={})=>{let{adapter:q,initialItems:j,initialTotal:Q,storage:X,placeholder:Y,pageSize:W=LJ,onStateChange:B,onItemsLoaded:_,onItemsEvicted:Z}=J,A=z1({...X,onEvict:(x,e)=>{Z?.(x),y()}}),K=null,$=()=>{if(!K)K=C1(Y);return K},O=new Map,D=!1,k,E=!0,T,F,S=[],p=0,g=new Map,r=()=>{for(let x of g.values())x[1].abort();g.clear()},y=()=>{B?.(R())},M=()=>{O.clear();let x=A.getLoadedRanges();for(let e of x)for(let P=e.start;P<=e.end;P++){let h=A.get(P);if(h&&!H2(h))O.set(h.id,P)}},w=(x,e)=>{if(!H2(e))O.set(e.id,x)},s=(x)=>{O.delete(x)},m=(x,e)=>{return`${x}-${e}`},o=()=>A.getTotal(),X0=()=>A.getCachedCount(),n=()=>D,v=()=>E,R=()=>({total:A.getTotal(),cached:A.getCachedCount(),isLoading:D,pendingRanges:S,error:k,hasMore:E,cursor:T}),N=()=>A,V=()=>$(),L=(x)=>{let e=A.get(x);if(e!==void 0)return e;if(x>=0&&x<A.getTotal())return $().generate(x);return},H=(x)=>{let e=O.get(x);if(e===void 0)return;return A.get(e)},d=(x)=>{return O.get(x)??-1},J0=(x)=>{let e=A.get(x);return e!==void 0&&!H2(e)},c=(x,e)=>{let P=[],h=A.getTotal();A.touchChunksForRange(x,Math.min(e,h-1));for(let Q0=x;Q0<=e&&Q0<h;Q0++){let t=A.get(Q0);if(t!==void 0)P.push(t);else P.push($().generate(Q0))}return P},j0=(x)=>{A.setTotal(x),E=A.getCachedCount()<x,y()},z=(x,e=0,P)=>{if(q&&x.length>0){let h=$();if(!h.hasAnalyzedStructure())h.analyzeStructure(x)}for(let h=0;h<x.length;h++){let Q0=x[h];if(Q0!==void 0){let t=e+h;A.set(t,Q0),w(t,Q0)}}if(P!==void 0)A.setTotal(P);else if(e+x.length>A.getTotal())A.setTotal(e+x.length);if(A.getCachedCount()>=A.getTotal()&&A.getTotal()>0)E=!1;y(),_?.(x,e,A.getTotal())},I=(x,e)=>{let P=A.get(x);if(!P)return!1;let h=P.id,Q0={...P,...e};if(A.set(x,Q0),e.id!==void 0&&e.id!==h)s(h);return w(x,Q0),y(),!0},b=(x)=>{let e=O.get(x);if(e===void 0)return!1;if(!A.delete(e))return!1;return M(),r(),y(),!0},U=async(x,e)=>{if(!q)return;let P=A.chunkSize,h=Math.floor(x/P),Q0=Math.floor(e/P),t=P*2;for(let[U0,W0]of g){let M0=U0.indexOf("-"),$0=parseInt(U0.slice(0,M0),10);if(Math.abs($0-x)>t)W0[1].abort(),g.delete(U0)}let V0=[],N0=[];for(let U0=h;U0<=Q0;U0++){let W0=U0*P,M0=W0+P-1,$0=m(W0,M0);if(A.isChunkLoaded(U0))continue;let H0=g.get($0);if(H0)N0.push(H0[0]);else V0.push({start:W0,end:M0})}if(V0.length===0)return;for(let U0 of V0){let W0=m(U0.start,U0.end),M0=new AbortController,$0=(async()=>{S.push(U0),D=!0,k=void 0,y();try{let H0=U0.end-U0.start+1,P0={offset:U0.start,limit:H0,cursor:U0.start===F?T:void 0,signal:M0.signal},E0=await q.read(P0);if(z(E0.items,U0.start,E0.total),E0.cursor)T=E0.cursor,F=U0.start+E0.items.length;let w0=U0.start+E0.items.length;if(w0>=p){if(p=w0,E0.hasMore!==void 0)E=E0.hasMore;else if(E0.total!==void 0)E=w0<E0.total}}catch(H0){if(H0?.name==="AbortError")return;k=H0 instanceof Error?H0:Error(String(H0))}finally{g.delete(W0),S=S.filter((H0)=>H0.start!==U0.start||H0.end!==U0.end),D=g.size>0,y()}})();g.set(W0,[$0,M0]),N0.push($0)}await Promise.all(N0)},C=async(x,e)=>{if(A.isRangeLoaded(x,e))return;await U(x,e)},G=async()=>{if(!q)return;await U(0,W-1)},u=async()=>{if(!q||D||!E)return!1;let x=A.getCachedCount(),e=A.getTotal(),P=x,h=Math.min(P+W-1,e>0?e-1:P+W-1);if(P>=e&&e>0)return E=!1,!1;return await U(P,h),A.getCachedCount()>x},f=async()=>{if(A.clear(),A.setTotal(0),O.clear(),K)K.clear();r(),S=[],D=!1,T=void 0,F=void 0,E=!0,p=0,k=void 0,y()},i=(x,e)=>{if(A.evictDistant(x,e)>0)M()},a=()=>{A.clear(),O.clear(),T=void 0,F=void 0,k=void 0,S=[],D=!1,y()},Y0=()=>{if(A.reset(),O.clear(),K)K.clear();T=void 0,F=void 0,E=!0,p=0,k=void 0,S=[],D=!1,y()};if(j&&j.length>0)z(j,0,Q??j.length);else if(Q!==void 0)A.setTotal(Q),y();return{getState:R,getTotal:o,getCached:X0,getIsLoading:n,getHasMore:v,getStorage:N,getPlaceholders:V,getItem:L,getItemById:H,getIndexById:d,isItemLoaded:J0,getItemsInRange:c,setTotal:j0,setItems:z,updateItem:I,removeItem:b,loadRange:U,ensureRange:C,loadInitial:G,loadMore:u,reload:f,evictDistant:i,clear:a,reset:Y0}};var I2=(J)=>{let{adapter:q,loading:j,storage:Q,total:X,autoLoad:Y=!0}=J,W=j?.cancelThreshold??$1,B=j?.preloadThreshold??k1,_=j?.preloadAhead??H1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(Z){let{emitter:A}=Z,K=Z.config.reverse,$=Z.methods.get("_getGridLayout"),O=(R)=>{let N=Z.methods.get("_getGroupBridge");if(N){let V=N();if(V&&V.groupCount>0){let L=V.layoutToDataIndex(R.start),H=V.layoutToDataIndex(R.end);if(L<0){for(let d=R.start+1;d<=R.end;d++)if(L=V.layoutToDataIndex(d),L>=0)break}if(H<0){for(let d=R.end-1;d>=R.start;d--)if(H=V.layoutToDataIndex(d),H>=0)break}if(L>=0&&H>=0)return{start:L,end:H}}}if($){let V=$();if(V){let L=Z.dataManager.getTotal();return V.getItemRange(R.start,R.end,L)}}return R};Z.methods.set("_isAsync",()=>!0);let D=null;Z.methods.set("_onItemsLoaded",(R)=>{(D??=[]).push(R)});let k=(R)=>{A.emit("error",{error:R,context:"ensureRange"})},E=(R)=>{A.emit("error",{error:R,context:"loadMore"})},T=(R,N)=>Z.dataManager.ensureRange(R,N),F=(R,N=v2)=>{A.emit("load:start",{offset:R,limit:N})},S=v1({adapter:q,...X!==void 0&&{initialTotal:X},pageSize:Q?.chunkSize??v2,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(Z.state.isInitialized){let R=Z.getVirtualTotal();if(R!==Z.sizeCache.getTotal())Z.sizeCache.rebuild(R);Z.updateCompressionMode();let N=Z.getCachedCompression();Z.state.viewportState.totalSize=N.virtualSize,Z.state.viewportState.actualSize=N.actualSize,Z.state.viewportState.isCompressed=N.isCompressed,Z.state.viewportState.compressionRatio=N.ratio,Z.updateContentSize(N.virtualSize),Z.renderIfNeeded()}},onItemsLoaded:(R,N,V)=>{if(Z.state.isInitialized){if(D)for(let L of D)L(R,N,V);Z.forceRender(),A.emit("load:end",{items:R,total:V,offset:N})}}});Z.replaceDataManager(S);let p=null,g=null,r=0,y=!1,M=null,w=120,s=(R=!1)=>{if(y=!1,g=null,R)p=null;if(M!==null)clearTimeout(M),M=null},m=()=>{if(!g)return;g=null;let{renderRange:R}=Z.state.viewportState;if(R.end<R.start)return;p=null;let N=O(R);T(N.start,N.end).catch(k)};Z.afterScroll.push((R,N)=>{if(Z.state.isDestroyed)return;let V=Z.scrollController.getVelocity(),H=Z.scrollController.isTracking()&&V<=W;if(r>W&&V<=W)y=!0;else if(y&&V>W)s();if(y&&V<0.5)s(!0);if(r=V,(Z.scrollController.isAtTop()||Z.scrollController.isAtBottom())&&(y||g))s(!0),H=!0;let J0=y&&V>0.5;if(H&&!Z.dataManager.getIsLoading()&&Z.dataManager.getHasMore()){if(K?R<C2:Z.state.viewportState.totalSize-R-Z.state.viewportState.containerSize<C2)F(Z.dataManager.getCached()),Z.dataManager.loadMore().catch(E)}let{renderRange:c}=Z.state.viewportState;if(!p||c.start!==p.start||c.end!==p.end){if(p={start:c.start,end:c.end},H&&!J0){if(g=null,M!==null)clearTimeout(M),M=null;let z=O(c),I=z.start,b=z.end,U=$?Z.dataManager.getTotal():Z.getVirtualTotal();if(V>B)if(N==="down")b=Math.min(z.end+_,U-1);else I=Math.max(z.start-_,0);T(I,b).catch(k)}else if(g={start:c.start,end:c.end},J0){if(M!==null)clearTimeout(M);M=setTimeout(()=>{M=null,m(),s()},w)}}});let o=200,X0=null;Z.afterScroll.push((R,N)=>{if(X0!==null)clearTimeout(X0);X0=setTimeout(()=>{X0=null,m(),s()},o)}),Z.destroyHandlers.push(()=>{if(X0!==null)clearTimeout(X0),X0=null;s()});let n=()=>{if(Z.state.isDestroyed)return;p=null;let{renderRange:R}=Z.state.viewportState;if(R.end>0){let N=O(R);T(N.start,N.end).catch(k)}m()};window.addEventListener("online",n),Z.destroyHandlers.push(()=>{window.removeEventListener("online",n)}),A.on("load:start",()=>{Z.dom.root.setAttribute("aria-busy","true")}),A.on("load:end",()=>{Z.dom.root.removeAttribute("aria-busy")}),Z.methods.set("loadVisibleRange",async()=>{p=null,g=null,Z.forceRender();let{renderRange:R}=Z.state.viewportState;if(R.end>0){let N=O(R);F(N.start,N.end-N.start+1),await T(N.start,N.end)}}),Z.methods.set("reload",async(R)=>{p=null,g=null;let N=R?.snapshot,V=N!=null&&(N.total??0)>0&&N.index>0,L=V||R?.skipInitialLoad===!0;if(Z.invalidateRendered(),await Z.dataManager.reload(),!V)Z.scrollController.scrollTo(0);if(!L){F(0),await Z.dataManager.loadInitial(),Z.forceRender();let{renderRange:H}=Z.state.viewportState;if(H.end>0){let d=O(H);await T(d.start,d.end)}}if(V){let H=Z.methods.get("restoreScroll");if(H)H(N)}});let v=!1;if(Z.methods.set("_cancelAutoLoad",()=>{v=!0}),Y)queueMicrotask(()=>{if(v)return;F(0),Z.dataManager.loadInitial().catch((R)=>{A.emit("error",{error:R,context:"loadInitial"})})});else if(X!==void 0)Z.dataManager.setTotal(X)}}};var $2=(J)=>J==null?0:typeof J==="function"?J():J,p2=(J)=>{let q,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(Q){let{dom:X,state:Y,config:W,emitter:B}=Q,_=W.horizontal,Z=window;if(X.root.style.overflow="visible",X.root.style.height="auto",_)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(Z),Q.setScrollFns(()=>{let O=X.viewport.getBoundingClientRect();return Math.max(0,_?-O.left:-O.top)},(O)=>{let D=X.viewport.getBoundingClientRect(),k=(_?D.left+Z.scrollX:D.top+Z.scrollY)+O;if(_)Z.scrollTo({left:k,top:Z.scrollY,behavior:"instant"});else Z.scrollTo({left:Z.scrollX,top:k,behavior:"instant"})}),Q.setContainerDimensions({width:()=>Z.innerWidth,height:()=>Z.innerHeight}),Y.viewportState.containerSize=Z.innerHeight,j){let O=Q.getItemToScrollIndexFn();Q.setScrollToPosFn((D,k,E,T,F)=>{let S=$2(_?j.left:j.top),p=$2(_?j.right:j.bottom);if(T===0)return 0;let g=Math.max(0,Math.min(D,T-1)),r=k.getOffset(g),y=k.getSize(g),M=k.getTotalSize(),w=Math.max(0,M-E+p),s=F==="start"?r-S:F==="center"?r-S-(E-S-p-y)/2:r-E+y+p;return Math.max(-S,Math.min(s,w))}),Q.methods.set("_scrollItemIntoView",(D)=>{let k=O(D),E=_?Z.innerWidth:Z.innerHeight,T=$2(_?j.left:j.top),F=$2(_?j.right:j.bottom),S=X.viewport.getBoundingClientRect(),p=_?Z.scrollX:Z.scrollY,g=_?S.left:S.top,r=g+p,y=Q.sizeCache.getOffset(k),M=Q.sizeCache.getSize(k),w=g+y,s=E-F,m=p;if(w<T)m=r+y-T;else if(w+M>s)m=r+y+M-s;if(m!==p)if(_)Z.scrollTo({left:m,top:Z.scrollY,behavior:"instant"});else Z.scrollTo({left:Z.scrollX,top:m,behavior:"instant"})})}let{innerHeight:A,innerWidth:K}=Z,$=()=>{let{innerWidth:O,innerHeight:D}=Z;if(Math.abs(_?O-K:D-A)>1){A=D,K=O,Y.viewportState.containerSize=D,B.emit("resize",{width:O,height:D});for(let k=0;k<Q.resizeHandlers.length;k++)Q.resizeHandlers[k](O,D);Q.renderIfNeeded()}};Z.addEventListener("resize",$),q=()=>Z.removeEventListener("resize",$),Q.destroyHandlers.push(q)},destroy(){q?.(),q=void 0}}};var s0=(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},_2=(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},S1=(J,q,j)=>{if(J===0)return[];let Q=[],X=q(0,j?.(0)),Y=0,W=0;for(let B=1;B<J;B++){let _=q(B,j?.(B));if(_!==X){let Z=B-Y;Q.push({key:X,groupIndex:Q.length,headerLayoutIndex:W,firstDataIndex:Y,count:Z}),W=W+1+Z,X=_,Y=B}}return Q.push({key:X,groupIndex:Q.length,headerLayoutIndex:W,firstDataIndex:Y,count:J-Y}),Q},u2=(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};var f1=(J,q,j)=>{let Q=S1(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:(O)=>{if(Q.length===0)return{type:"item",dataIndex:O,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let D=s0(Q,O),k=Q[D];if(O===k.headerLayoutIndex)return{type:"header",group:k};let E=O-k.headerLayoutIndex-1;return{type:"item",dataIndex:k.firstDataIndex+E,group:k}},layoutToDataIndex:(O)=>{if(Q.length===0)return O;let D=s0(Q,O),k=Q[D];if(O===k.headerLayoutIndex)return-1;let E=O-k.headerLayoutIndex-1;return k.firstDataIndex+E},dataToLayoutIndex:(O)=>{if(Q.length===0)return O;let D=_2(Q,O),k=Q[D],E=O-k.firstDataIndex;return k.headerLayoutIndex+1+E},getGroupAtLayoutIndex:(O)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=s0(Q,O);return Q[D]},getGroupAtDataIndex:(O)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=_2(Q,O);return Q[D]},getHeaderHeight:typeof Y==="number"?(O)=>Y:(O)=>{let D=Q[O];if(!D)return 0;return Y(D.key,O)},rebuild:(O,D)=>{Q=S1(O,q.getGroupForIndex,D??j),X=O+Q.length}}};var g2=(J,q,j,Q,X=0)=>{let Y=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:${X||0}px`:`top:${X||0}px`),W.style[Y]=`${Q}px`,J.insertBefore(W,J.firstChild),W},m2=(J,q,j,Q,X,Y=!1,W=0,B,_)=>{let Z=Y?"width":"height",A=Y?"height":"width",K=Y?"X":"Y",$=(C,G)=>{C.style[Z]=`${G}px`},O=_??g2(J,X,Y,0,W),D=()=>{let C=document.createElement("div");return C.className="sticky-group",C.style.position="absolute",C.style.willChange="transform",C.style[A]="100%",C},k=D(),E=D();O.append(k,E);let T=k,F=E,S=q.groups,p=[],g=[],r=[],y=0,M=()=>{S=q.groups,y=S.length,p=Array(y),g=Array(y),r=Array(y);let C=B?B():1;for(let G=0;G<y;G++)p[G]=j.getOffset(S[G].headerLayoutIndex)*C,g[G]=q.getHeaderHeight(G),r[G]=g[G]*C};M();let w=-1,s=0,m=0,o=-1,X0=!1,n=0,v=!1,R=(C,G)=>{Q(C,G);let u=g[G];return $(C,u),u},N=(C)=>{C.replaceChildren(),C.style.transform=""},V=(C)=>{if(C===w)return;if(w=C,s=0,m=0,C<0||C>=y){N(T);return}s=R(T,C),m=r[C],$(O,s),T.style.transform=""},L=(C)=>{if(C===n)return;n=C;let G=Math.round(C);T.style.transform=`translate${K}(${G}px)`,F.style.transform=`translate${K}(${G+s}px)`},H=()=>{n=0,T.style.transform="",F.style.transform=""},d=()=>{if(!v)return;let C=T;T=F,F=C,w=o,s=w>=0?g[w]:0,m=w>=0?r[w]:0,$(O,s),N(F),o=-1,v=!1,H()},J0=()=>{if(!v)return;N(F),o=-1,v=!1,H()},c=!!_,j0=()=>{if(X0)return;if(X0=!0,c)O.style.visibility="";else O.style.display=""},z=()=>{if(!X0)return;if(X0=!1,c)O.style.visibility="hidden";else O.style.display="none";N(T),w=-1,s=0,m=0,J0()},I=(C)=>{if(y===0){z();return}if(C<p[0]){z();return}let G=0,u=y-1;while(G<u){let i=G+u+1>>>1;if(p[i]+r[i]<=C)G=i;else u=i-1}if(!X0)j0();V(G);let f=G+1;if(f<y){let i=p[f]-C;if(i<=0&&i>-m){if(o!==f||!v)o=f,R(F,f),v=!0;let a=m>0?i/m*s:i;L(a)}else if(i<=-m){if(v)d()}else if(v)J0()}else if(v)J0()},b=()=>{M();let C=w;if(w=-1,s=0,m=0,C>=0)V(C)},U=()=>{O.remove(),w=-1,s=0,m=0,o=-1,X0=!1,v=!1};if(!_)O.style.display="none";return{update:I,refresh:b,show:j0,hide:z,destroy:U}};var x0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var h1={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},I1=(J,q,j)=>{let Q=[],X=0,Y=0,W=new Map,B=()=>{if(Q=[],X===0||W.size===0){Y=X;return}let F=null,S=-1,p=0;for(let g=0;g<X;g++){let r=W.get(g);if(r===void 0){if(F!==null&&S>=0){let y=g-S;Q.push({key:F,groupIndex:Q.length,headerLayoutIndex:S+p,firstDataIndex:S,count:y}),p++,F=null,S=-1}continue}if(r!==F){if(F!==null&&S>=0){let y=g-S;Q.push({key:F,groupIndex:Q.length,headerLayoutIndex:S+p,firstDataIndex:S,count:y}),p++}F=r,S=g}}if(F!==null&&S>=0){let g=X-S;Q.push({key:F,groupIndex:Q.length,headerLayoutIndex:S+p,firstDataIndex:S,count:g}),p++}Y=X+p};return{onItemsLoaded:(F,S,p)=>{X=p;for(let g=0;g<F.length;g++){let r=S+g,y=F[g];if(y!==void 0){let M=J.getGroupForIndex(r,y);W.set(r,M)}}B()},get totalEntries(){return Y},get groupCount(){return Q.length},get groups(){return Q},isHeader:(F)=>{if(Q.length===0)return!1;let S=s0(Q,F),p=Q[S];return F===p.headerLayoutIndex},getHeaderItem:(F)=>{if(Q.length===0)return;let S=s0(Q,F),p=Q[S];if(F!==p.headerLayoutIndex)return;return{id:`__group_header_${p.groupIndex}`,__groupHeader:!0,groupKey:p.key,groupIndex:p.groupIndex}},layoutToDataIndex:(F)=>{if(Q.length===0)return F;let S=s0(Q,F),p=Q[S];if(F===p.headerLayoutIndex)return-1;let g=F-p.headerLayoutIndex-1;return p.firstDataIndex+g},dataToLayoutIndex:(F)=>{if(Q.length===0)return F;let S=_2(Q,F),p=Q[S],g=F-p.firstDataIndex;return p.headerLayoutIndex+1+g},getHeaderHeight:(F)=>J.headerHeight,getGroupAtLayoutIndex:(F)=>{if(Q.length===0)return h1;let S=s0(Q,F);return Q[S]},getGroupAtDataIndex:(F)=>{if(Q.length===0)return h1;let S=_2(Q,F);return Q[S]},removeAt:(F)=>{let S=new Map;for(let[p,g]of W)if(p<F)S.set(p,g);else if(p>F)S.set(p-1,g);W.clear();for(let[p,g]of S)W.set(p,g);X--,B()},reset:()=>{Q=[],X=0,Y=0,W.clear()}}};var p1=(J,q,j,Q,X,Y)=>{if(Q===0)return 0;let W=Math.max(0,Math.min(J,Q-1)),B=q.getOffset(W),_=q.getSize(W),Z=q.getTotalSize(),A=Math.max(0,Z-j),K;switch(Y){case"center":K=B-j/2+_/2;break;case"end":K=B-j+_;break;case"start":default:K=B;break}return Math.max(0,Math.min(K,A))};var V2=(J,q,j,Q,X="start",Y,W=p1)=>{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{getGroupForIndex:J.getGroupForIndex,header:{height:j,template:J.header.template},sticky:J.sticky}}if(J.headerHeight!=null&&J.headerTemplate)return{getGroupForIndex:J.getGroupForIndex,header:{height:J.headerHeight,template:J.headerTemplate},sticky:J.sticky};return J},x2=(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:B,config:_,rawConfig:Z}=W,{classPrefix:A}=_,K=FJ(J,_.horizontal),O=Z.item.height,D=K.sticky!==!1,{template:k}=K.header;B.root.classList.add(`${A}--grouped`);let E=null;if(D)if(W.methods.set("_getStickyHeaderHeight",()=>K.header.height),E=g2(B.root,A,_.horizontal,K.header.height),!_.horizontal)B.viewport.style.height=`calc(100% - ${K.header.height}px)`;else B.viewport.style.width=`calc(100% - ${K.header.height}px)`;let{animateScroll:T,cancelScroll:F}=q2(W.scrollController,W.renderIfNeeded),S=null;W.methods.set("scrollToIndex",(g,r)=>{let y=S??X;if(!y)return;let M=y.dataToLayoutIndex(g),{align:w,behavior:s,duration:m}=r0(r),o=W.dataManager.getTotal(),X0=W.adjustScrollPosition(V2(M,W.sizeCache,W.state.viewportState.containerSize,o,w,W.getCachedCompression()));if(s==="smooth")T(W.scrollController.getScrollTop(),X0,m);else F(),W.scrollController.scrollTo(X0)}),W.destroyHandlers.push(()=>{if(F(),Y)Y.destroy(),Y=null;else if(E)E.remove();B.root.classList.remove(`${A}--grouped`)});let p=null;W.methods.set("_getGroupBridge",()=>p),queueMicrotask(()=>{let g=W.methods.get("_onItemsLoaded");if(g)HJ(W,K,_,Z,O,D,k,A,g,(r)=>{p=r,S=r},(r)=>{Y=r},E)}),TJ(W,K,_,Z,O,D,k,A,(g)=>{X=g,S=g},(g)=>{Y=g},E)},destroy(){if(Y)Y.destroy(),Y=null}}};function TJ(J,q,j,Q,X,Y,W,B,_,Z,A){let{dom:K}=J,$=null,O=Q.items?[...Q.items]:[],D=O.length,k={getGroupForIndex:q.getGroupForIndex,header:{height:q.header.height}},E=(N)=>O[N],T=f1(D,k,E);_(T);let F=u2(O,T.groups),S=typeof X==="number"?(N)=>X:X,p=(N)=>{let V=T.layoutToDataIndex(N);if(V<0){let L=T.getGroupAtLayoutIndex(N);if(Y&&L.groupIndex===0)return 0;return T.getHeaderHeight(L.groupIndex)}return S(V)};J.setSizeConfig(p),J.rebuildSizeCache(F.length),J.dataManager.setItems(F,0,F.length);let g=Q.item.template,r=(N,V,L)=>{if(x0(N))return W(N.groupKey,N.groupIndex);return g(N,V,L)},y=J.methods.get("_getGridLayout"),M=J.methods.get("_replaceGridRenderer"),w=J.methods.get("_updateGridLayoutForGroups"),s=J.methods.get("_createGridRenderer"),m=J.methods.get("_getTableLayout"),o=J.methods.get("_updateTableForGroups");if(y&&M&&s){if(w)w((L)=>{let H=F[L];return!!(H&&x0(H))});let N=y(),V=s(K.items,r,J.sizeCache,N,B,J.getContainerWidth(),()=>O.length,j.ariaIdPrefix,j.horizontal,(L)=>T.layoutToDataIndex(L)+1,j.interactive);M(V)}else if(m&&o)o((N)=>x0(N),q.header.template);else J.replaceTemplate(r);let X0=()=>{if(!Y||$)return;if(T.groupCount===0)return;let N=q.header.template,V=(H,d)=>{let J0=T.groups[d];if(!J0)return;let c=N(J0.key,J0.groupIndex);if(typeof c==="string")H.innerHTML=c;else H.replaceChildren(c)},L=m2(K.root,T,J.sizeCache,V,B,j.horizontal,0,()=>J.getCachedCompression().ratio,A??void 0);$=L,Z(L),J.afterScroll.push((H,d)=>{L.update(H)}),L.update(J.scrollController.getScrollTop())};X0();let n=Q.item?.striped,v=()=>{if(n!=="data"&&n!=="even"&&n!=="odd")return;let N=new Int32Array(F.length),V=n==="odd"?1:0,L=0;for(let H=0;H<F.length;H++)if(x0(F[H])){if(N[H]=-1,n==="even"||n==="odd")L=0}else N[H]=L+++V;J.setStripeIndexFn((H)=>{if(H<0||H>=N.length)return H;return N[H]})};v();let R=()=>{if(T.rebuild(O.length,E),F=u2(O,T.groups),J.rebuildSizeCache(F.length),J.dataManager.setItems(F,0,F.length),v(),X0(),$)$.refresh()};J.methods.set("setItems",(N)=>{O=N.slice(),R()}),J.methods.set("appendItems",(N)=>{O.push(...N),R()}),J.methods.set("prependItems",(N)=>{O.unshift(...N),R()}),J.methods.set("removeItem",(N)=>{O=O.filter((V)=>V.id!==N),R()}),J.methods.set("_getItems",()=>O),J.methods.set("_getTotal",()=>O.length),J.methods.set("_isGroupHeader",(N)=>{let V=F[N];return!!(V&&x0(V))}),J.methods.set("_layoutToDataIndex",(N)=>T.layoutToDataIndex(N)),J.methods.set("_dataToLayoutIndex",(N)=>T.dataToLayoutIndex(N))}function HJ(J,q,j,Q,X,Y,W,B,_,Z,A,K){let{dom:$}=J,O=J.dataManager,D=I1({getGroupForIndex:q.getGroupForIndex,headerHeight:q.header.height});Z(D);let k=typeof X==="number"?(y)=>X:X,E=(y)=>{if(D.isHeader(y)){if(Y&&D.getGroupAtLayoutIndex(y).groupIndex===0)return 0;return q.header.height}let M=D.layoutToDataIndex(y);return M>=0?k(M):k(y)};J.setSizeConfig(E),J.setVirtualTotalFn(()=>D.totalEntries||O.getTotal());let T={...O,getTotal:()=>D.totalEntries,getIndexById:(y)=>{let M=O.getIndexById(y);if(M<0)return-1;return D.dataToLayoutIndex(M)},getItem:(y)=>{let M=D.getHeaderItem(y);if(M)return M;let w=D.layoutToDataIndex(y);if(w>=0)return O.getItem(w);return O.getItem(y)},getItemsInRange:(y,M)=>{let w=[];for(let s=y;s<=M;s++){let m=T.getItem(s);if(m!==void 0)w.push(m)}return w},isItemLoaded:(y)=>{if(D.isHeader(y))return!0;let M=D.layoutToDataIndex(y);if(M>=0)return O.isItemLoaded(M);return O.isItemLoaded(y)},reload:()=>{return D.reset(),O.reload()},removeItem:(y)=>{let M=O.getIndexById(y);if(M>=0)D.removeAt(M);return O.removeItem(y)},clear:()=>{D.reset(),O.clear()},reset:()=>{D.reset(),O.reset()}};J.replaceDataManager(T);let F=Q.item.template,S=J.methods.get("_updateTableForGroups");if(S)S((y)=>x0(y),q.header.template);J.replaceTemplate((y,M,w)=>{if(x0(y))return W(y.groupKey,y.groupIndex);return F(y,M,w)});let p=null;if(Y){let y=q.header.template,M=(m,o)=>{let X0=D.groups[o];if(!X0)return;let n=y(X0.key,X0.groupIndex);if(typeof n==="string")m.innerHTML=n;else m.replaceChildren(n)},w={get groups(){return D.groups},getHeaderHeight:(m)=>D.getHeaderHeight(m)};p=m2($.root,w,J.sizeCache,M,B,j.horizontal,0,()=>J.getCachedCompression().ratio,K??void 0),A(p);let s=p;J.afterScroll.push((m,o)=>{s.update(m)})}let g=-1;J.methods.set("_ensureTailLoaded",()=>{let y=O.getTotal();if(y<=0)return;let M=y-1;if(O.isItemLoaded(M))return;g=M,O.ensureRange(M,M)}),_((y,M,w)=>{let s=J.scrollController.getScrollTop(),m=D.groupCount,o=D.totalEntries||w,X0=0,n=0,v=J.methods.get("_restoreAnchor");if(v)X0=v.dataIndex,n=v.fraction;else if(s>0){let V=J.getCachedCompression(),L=V.ratio!==1?s/V.ratio:s,H=J.sizeCache.indexAtOffset(L);if(X0=D.layoutToDataIndex(H),X0<0&&H+1<D.totalEntries)H=H+1,X0=D.layoutToDataIndex(H);let d=J.sizeCache.getOffset(H),J0=J.sizeCache.getSize(H);n=J0>0?(L-d)/J0:0}D.onItemsLoaded(y,M,w),J.rebuildSizeCache(D.totalEntries);let R=J.getCachedCompression();if(J.updateContentSize(R.virtualSize),D.groupCount-m>0&&(s>0||v)){if(v?.skipAdjust);else if(X0>=0){let V=D.dataToLayoutIndex(X0),L=J.sizeCache.getOffset(V),H=J.sizeCache.getSize(V),d=L+n*H,J0=R.ratio!==1?d*R.ratio:d;if(Math.abs(J0-s)>1)J.scrollController.scrollTo(J0);if(v){J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave");let c=J.methods.get("_saveSnapshot");if(c)c()}}}else if(v){let V=v.skipAdjust;if(J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave"),!V){let L=J.methods.get("_saveSnapshot");if(L)L()}}if(p)p.refresh(),p.update(J.scrollController.getScrollTop());if(g>=0&&O.isItemLoaded(g)){let V=D.dataToLayoutIndex(g);g=-1;let L=J.methods.get("_getFocusedIndex"),H=L?L():-1;if(H>=0&&H>=o-1&&V!==H){let d=V;while(d>0&&D.isHeader(d))d--;let J0=J.methods.get("_setFocusedIndex");if(J0)J0(d)}}}),J.methods.set("_isGroupHeader",(y)=>D.isHeader(y)),J.methods.set("_layoutToDataIndex",(y)=>D.layoutToDataIndex(y)),J.methods.set("_dataToLayoutIndex",(y)=>D.dataToLayoutIndex(y)),J.methods.set("_getTotal",()=>O.getTotal()),J.methods.delete("removeItem");let r=Q.item?.striped;if(r==="data"||r==="even"||r==="odd"){let y=r==="odd"?1:0;J.setStripeIndexFn((M)=>{if(D.isHeader(M))return-1;let w=D.layoutToDataIndex(M);return w>=0?w+y:M})}}var u1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.isHeaderFn,X={row:0,col:0},Y=(D)=>{if(D<=0)return 0;if(!Q)return Math.ceil(D/q);let k=0,E=0,T=0;for(let F=0;F<D;F++)if(Q(F)){if(T++,E)k++,E=0;k++,E=0}else if(E++,E>=q)k++,E=0;if(E)k++;return k},W=(D)=>{return X.row=B(D),X.col=_(D),X},B=(D)=>{if(!Q)return Math.floor(D/q);let k=0,E=0;for(let T=0;T<=D;T++)if(Q(T)){if(E)k++,E=0;if(T===D)return k;k++,E=0}else{if(T===D)return k;if(E++,E>=q)k++,E=0}return console.warn(`⚠️ getRow(${D}) fell through - returning ${k}`),k},_=(D)=>{if(!Q)return D%q;if(Q(D))return 0;let k=0;for(let E=0;E<=D;E++)if(Q(E))k=0;else{if(E===D)return k;if(k++,k>=q)k=0}return k},Z=(D,k,E)=>{if(E<=0)return{start:0,end:-1};if(!Q){let g=Math.max(0,D*q),r=Math.min(E-1,(k+1)*q-1);return{start:g,end:r}}let T=-1,F=-1,S=0,p=0;for(let g=0;g<E;g++){if(Q(g)){if(p)S++,p=0;if(S>=D&&S<=k){if(T<0)T=g;F=g}S++,p=0}else{if(S>=D&&S<=k){if(T<0)T=g;F=g}if(p++,p>=q)S++,p=0}if(S>k&&!p)break}if(T<0)return{start:0,end:-1};return{start:T,end:F}},A=(D,k,E)=>{if(k<0||k>=q)return-1;let T=D*q+k;if(T<0||T>=E)return-1;return T},K=(D)=>{let k=(q-1)*j;return Math.max(0,(D-k)/q)};return{get columns(){return q},get gap(){return j},update:(D)=>{if(D.columns!==void 0)q=Math.max(1,Math.floor(D.columns));if(D.gap!==void 0)j=D.gap;if(D.isHeaderFn!==void 0)Q=D.isHeaderFn},getTotalRows:Y,getPosition:W,getRow:B,getCol:_,getItemRange:Z,getItemIndex:A,getColumnWidth:K,getColumnOffset:(D,k)=>{let E=K(k);return D*(E+j)}}};var Y2=(J,q,j)=>{if(String(j).startsWith(c0))return!1;let Q=c0+q;if(J.has(Q))return J.delete(Q),J.add(j),!0;return!1},g1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1});var $J=(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}}},kJ=1,d2=(J,q,j,Q,X,Y,W,B,_=!1,Z,A)=>{let K=$J(),$=new Map,O=Y,D=!1,k=0,E="",T=-1,F={selected:!1,focused:!1},S=(z,I)=>{return F.selected=z,F.focused=I,F},p=`${X}-item ${X}-grid-item`,g=`${X}-group-header`,r=`${X}-item--selected`,y=`${X}-item--focused`,M=`${X}-item--placeholder`,w=`${X}-item--replaced`,s=(z,I)=>{if(typeof I==="string")z.innerHTML=I;else z.replaceChildren(I)},m=(z,I,b)=>{z.classList.toggle(r,I),z.classList.toggle(y,b)},o=(z,I)=>{let b=Q.getRow(z);if(I?.compression?.isCompressed)return T2(b,I.scrollPosition,j,I.totalItems,I.containerSize,I.compression,I.rangeStart);return j.getOffset(b)},X0=(z,I)=>{let b=Q.getCol(z),C=D&&b===0?0:Q.getColumnOffset(b,O),G;if(D){let u=Q.getRow(z),f=0,i=-1;for(let a=0;a<z;a++){let Y0=Q.getRow(a);if(Y0<u&&Y0!==i){let x=j.getSize(a);f+=x,i=Y0}}G=f}else G=o(z,I);if(_)return`translate(${Math.round(G)}px, ${Math.round(C)}px)`;return`translate(${Math.round(C)}px, ${Math.round(G)}px)`},n=(z,I)=>{let b=z.classList.contains(g),U=b?O:Q.getColumnWidth(O),C;if(D||b)C=j.getSize(I)-Q.gap;else{let G=Q.getRow(I);C=j.getSize(G)-Q.gap}if(_)z.style.width=`${C}px`,z.style.height=`${U}px`;else z.style.width=`${U}px`,z.style.height=`${C}px`},v=(z,I,b,U,C)=>{let G=K.acquire(),u=!!I.__groupHeader,f=S(b,U);if(G.className=u?g:p,G.dataset.index=String(z),G.dataset.id=String(I.id),G.dataset.row=String(Q.getRow(z)),G.dataset.col=String(Q.getCol(z)),u)G.setAttribute("role","presentation"),G.removeAttribute("aria-selected"),G.removeAttribute("aria-setsize"),G.removeAttribute("aria-posinset"),G.removeAttribute("id");else if(A!==!1){if(G.setAttribute("role","option"),G.ariaSelected=String(b),B)G.id=`${B}-item-${z}`;if(W){let Y0=W();if(Y0!==T)T=Y0,E=String(Y0);G.setAttribute("aria-setsize",E);let x=Z?Z(z):z+1;G.setAttribute("aria-posinset",String(x))}}else if(G.setAttribute("role","listitem"),G.removeAttribute("aria-selected"),W){let Y0=W();if(Y0!==T)T=Y0,E=String(Y0);G.setAttribute("aria-setsize",E);let x=Z?Z(z):z+1;G.setAttribute("aria-posinset",String(x))}n(G,z);let i=q(I,z,f);if(s(G,i),String(I.id).startsWith(c0))G.classList.add(M);return m(G,b,U),G.style.transform=C,{element:G,lastItemId:I.id,lastSelected:b,lastFocused:U,lastTransform:C,lastSeenFrame:k}},R=(z,I,b,U,C)=>{if(k++,I.start===0&&z.length)D=x0(z[0]);for(let[f,i]of $)if(f>=I.start&&f<=I.end)i.lastSeenFrame=k;else if(k-i.lastSeenFrame>kJ)K.release(i.element),$.delete(f);let G=!1;if(W){let f=W();if(f!==T)T=f,E=String(f),G=!0}let u=null;for(let f=I.start;f<=I.end;f++){let i=f-I.start,a=z[i];if(!a){console.warn(`⚠️ RENDER: Missing item at index ${f} (range: ${I.start}-${I.end}, items.length: ${z.length})`);continue}let Y0=b.has(a.id),x=f===U,e=$.get(f);if(e){let P=e.lastItemId!==a.id,h=e.lastSelected!==Y0,Q0=e.lastFocused!==x;if(P){let V0=String(e.lastItemId),N0=String(a.id),U0=V0.startsWith(c0),W0=N0.startsWith(c0);if(!W0&&Y2(b,f,a.id))Y0=!0;let M0=S(Y0,x),$0=q(a,f,M0);if(s(e.element,$0),e.element.dataset.id=N0,e.element.dataset.row=String(Q.getRow(f)),e.element.dataset.col=String(Q.getCol(f)),n(e.element,f),e.element.classList.toggle(M,W0),U0&&!W0)e.element.classList.add(w),setTimeout(()=>e.element.classList.remove(w),300);if(e.lastItemId=a.id,!a.__groupHeader){let P0=Z?Z(f):f+1;e.element.setAttribute("aria-posinset",String(P0))}}if(P||h||Q0)m(e.element,Y0,x),e.element.ariaSelected=String(Y0),e.lastSelected=Y0,e.lastFocused=x;let t=X0(f,C);if(e.lastTransform!==t)e.element.style.transform=t,e.lastTransform=t;if(G&&!a.__groupHeader)e.element.setAttribute("aria-setsize",E)}else{if(Y2(b,f,a.id))Y0=!0;let P=X0(f,C),h=v(f,a,Y0,x,P);if(!u)u=document.createDocumentFragment();u.appendChild(h.element),$.set(f,h)}}if(u)J.appendChild(u)},N=(z)=>{for(let[I,b]of $){let U=X0(I,z);if(b.lastTransform!==U)b.element.style.transform=U,b.lastTransform=U}},V=(z,I,b,U)=>{let C=$.get(z);if(!C)return;let G=S(b,U),u=q(I,z,G);s(C.element,u),m(C.element,b,U),C.element.dataset.id=String(I.id),C.element.ariaSelected=String(b),n(C.element,z),C.lastItemId=I.id,C.lastSelected=b,C.lastFocused=U},L=(z,I,b)=>{let U=$.get(z);if(!U)return;let C=U.lastSelected!==I,G=U.lastFocused!==b;if(C||G)m(U.element,I,b),U.lastSelected=I,U.lastFocused=b},H=(z)=>{return $.get(z)?.element},d=(z)=>{if(Math.abs(z-O)<1)return;O=z;for(let[I,b]of $){n(b.element,I);let U=X0(I);b.element.style.transform=U,b.lastTransform=U}},J0=()=>{J2(J,$.keys(),(z)=>$.get(z)?.element)},c=()=>{for(let[,z]of $)K.release(z.element);$.clear()};return{render:R,updatePositions:N,updateItem:V,updateItemClasses:L,getElement:H,sortDOM:J0,updateContainerWidth:d,clear:c,destroy:()=>{c(),K.clear()}}};var bJ=new Set,c2=(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:B}=Q,{classPrefix:_}=W;if(W.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let Z=W.horizontal,A=L2(g0(B.padding),Z),K=()=>{return(Z?X.viewport.clientHeight:Q.getContainerWidth())-A},$=B.items?.some((c)=>c.__groupHeader===!0),O={columns:J.columns,gap:J.gap??0};if($)O.isHeaderFn=(c)=>{let j0=Q.dataManager.getItem(c);return!!(j0&&j0.__groupHeader===!0)};q=u1(O);let D=q.gap;Q.setVirtualTotalFn(()=>{let c=Q.dataManager.getTotal();return q.getTotalRows(c)}),Q.setItemToScrollIndexFn((c)=>Math.floor(c/O.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>Z?{ud:1,lr:O.columns,cols:O.columns}:{ud:O.columns,lr:1,cols:O.columns});let k=B.item,E=W.horizontal?k.width:k.height,T={containerWidth:K(),columns:q.columns,gap:q.gap},F={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof E==="function")Q.setSizeConfig((c)=>{let j0=T.containerWidth-2,z=(T.columns-1)*T.gap;return F.containerWidth=T.containerWidth,F.columns=T.columns,F.gap=T.gap,F.columnWidth=(j0-z)/T.columns,F.row=q.getRow(c),F.column=q.getCol(c),F.totalRows=q.getTotalRows(Q.dataManager.getTotal()),F.totalColumns=T.columns,E(c,F)+T.gap});else if(D>0)Q.setSizeConfig(E+D);if(Q.rebuildSizeCache(),D>0){let c=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let j0=c();return j0?j0-T.gap:0}}X.root.classList.add(`${_}--grid`);let S=K(),p=B.item.template,g=Q2(Q.methods,()=>Q.dataManager.getTotal()),r=()=>{j=d2(X.items,p,Q.sizeCache,q,_,S,g.getSetSize,W.ariaIdPrefix,W.horizontal,g.getPosInSet,W.interactive),Q.replaceRenderer(j)};r();let y=()=>{for(let c=0;c<Q.contentSizeHandlers.length;c++)Q.contentSizeHandlers[c]()};Q.setUpdateItemClassesFn((c,j0,z)=>{j?.updateItemClasses(c,j0,z)}),Q.methods.set("_updateRenderedItem",(c,j0,z,I)=>{j?.updateItem(c,j0,z,I)}),Q.methods.set("_getGridLayout",()=>q),Q.methods.set("_getGridConfig",()=>O),Q.methods.set("_replaceGridRenderer",(c)=>{j=c}),Q.methods.set("_createGridRenderer",d2),Q.methods.set("_updateGridLayoutForGroups",(c)=>{q.update({isHeaderFn:c});let j0=Q.dataManager.getTotal(),z=0;for(let I=0;I<j0;I++)if(!q.getCol(I)){let b=Q.sizeCache.getSize(I);z+=b}Q.sizeCache.getTotalSize=()=>z,Q.updateContentSize(z),r()}),Q.methods.set("updateGrid",(c)=>{if(c.columns!==void 0){if(!Number.isInteger(c.columns)||c.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");O.columns=c.columns}if(c.gap!==void 0){if(c.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");O.gap=c.gap}q?.update(O);let j0=K();T.containerWidth=j0,T.columns=O.columns,T.gap=O.gap??0,j?.updateContainerWidth(j0),Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode(),y(),j?.clear(),Q.forceRender()});let M=null,w=null,s=!1,m=()=>{if(s)return;s=!0,M=Q.methods.get("_getSelectedIds")??null,w=Q.methods.get("_getFocusedIndex")??null},o=-1,X0=-1,n=!0,v=W.overscan,R={start:0,end:0},N={start:0,end:0},V=()=>{if(Q.state.isDestroyed)return;let c=Q.scrollController.getScrollTop(),j0=Q.state.viewportState.containerSize;if(!n&&c===o&&j0===X0)return;o=c,X0=j0,n=!1;let z=Q.getVirtualTotal();Q.getVisibleRange(c,j0,z,R),N.start=Math.max(0,R.start-v),N.end=Math.min(z-1,R.end+v);let I=Q.state.viewportState;I.scrollPosition=c,I.visibleRange.start=R.start,I.visibleRange.end=R.end,I.renderRange.start=N.start,I.renderRange.end=N.end;let b=Q.state.lastRenderRange,U=I.isCompressed,C=b.start!==N.start||b.end!==N.end;if(!C&&U){j.updatePositions(Q.getCompressionContext());return}let G=q.getItemRange(N.start,N.end,Q.dataManager.getTotal()),u=Q.dataManager.getItemsInRange(G.start,G.end),f=U?Q.getCompressionContext():void 0;m();let i=M?M():bJ,a=w?w():-1;if(j.render(u,G,i,a,f),C)b.start=N.start,b.end=N.end,Y.emit("range:change",{range:{start:N.start,end:N.end}})},L=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,n=!0,V()};Q.setRenderFns(V,L);let H=typeof E==="function";Q.resizeHandlers.push((c,j0)=>{let z=(Z?j0:c)-A;if(Math.abs(z-T.containerWidth)<1)return;if(T.containerWidth=z,j?.updateContainerWidth(z),H)Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode(),y(),j?.clear(),Q.forceRender()});let{animateScroll:d,cancelScroll:J0}=q2(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",J0),Q.methods.set("scrollToIndex",(c,j0)=>{let z=Math.floor(c/J.columns),{align:I,behavior:b,duration:U}=r0(j0),C=Q.dataManager.getState(),G=q.getTotalRows(C.total),u=Math.max(0,Math.min(z,G-1)),f=Q.adjustScrollPosition(V2(u,Q.sizeCache,Q.state.viewportState.containerSize,G,I,Q.getCachedCompression()));if(b==="smooth")d(Q.scrollController.getScrollTop(),f,U);else J0(),Q.scrollController.scrollTo(f)}),!Q.methods.has("_getTotal"))Q.methods.set("_getTotal",()=>Q.dataManager.getTotal());Q.methods.set("_layoutToDataIndex",(c)=>c*J.columns),Q.methods.set("_dataToLayoutIndex",(c)=>Math.floor(c/J.columns)),Q.idleHandlers.push(()=>{j?.sortDOM()}),Q.destroyHandlers.push(()=>{J0(),j?.destroy(),j=null,X.root.classList.remove(`${_}--grid`)})},destroy(){j?.destroy(),j=null}}};var m1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.containerSize,X=0,Y=[],W=()=>{let k=(q-1)*j;X=Math.max(0,(Q-k)/q),Y=Array(q);let E=X+j;for(let T=0;T<q;T++)Y[T]=T*E};W();let B=[],_=0,Z=[],A=(k,E)=>{if(k<=0)return _=0,B=[],[];let T=Array(q).fill(0),F=Array(q);for(let g=0;g<q;g++)F[g]=[];let S=Array(k);for(let g=0;g<k;g++){let r=0,y=T[0];for(let s=1;s<q;s++){let m=T[s];if(m<y)y=m,r=s}let M=E(g),w=T[r];S[g]={index:g,x:Y[r],y:w,lane:r,size:M,crossSize:X},F[r].push(g),T[r]=w+M+j}B=F;let p=0;for(let g=0;g<q;g++){let r=T[g],y=r>0?r-j:0;if(y>p)p=y}return _=p,S},K=(k)=>{if(k.length===0)return _;if(_)return _;let E=Array(q).fill(0);for(let F of k){let S=F.y+F.size,p=E[F.lane];if(S>p)E[F.lane]=S}let T=0;for(let F=0;F<q;F++)if(E[F]>T)T=E[F];return T},$=(k,E,T)=>{if(k.length===0||T<=E)return Z.length=0,Z;if(B.length===0||B.length!==q)return O(k,E,T);Z.length=0;for(let F=0;F<q;F++){let S=B[F],p=S.length;if(!p)continue;let g=0,r=p;while(g<r){let y=g+r>>>1,M=k[S[y]];if(M.y+M.size<=E)g=y+1;else r=y}for(let y=g;y<p;y++){let M=k[S[y]];if(M.y>=T)break;Z.push(M)}}return Z},O=(k,E,T)=>{Z.length=0;for(let F of k)if(F.y+F.size>E&&F.y<T)Z.push(F);return Z};return{get columns(){return q},get gap(){return j},get containerSize(){return Q},update:(k)=>{let E=!1;if(k.columns!==void 0){let T=Math.max(1,Math.floor(k.columns));if(T!==q)q=T,E=!0}if(k.gap!==void 0&&k.gap!==j)j=k.gap,E=!0;if(k.containerSize!==void 0&&k.containerSize!==Q)Q=k.containerSize,E=!0;if(E)W()},calculateLayout:A,getTotalSize:K,getVisibleItems:$}};var RJ=(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}}},PJ=1,x1=(J,q,j,Q=!1,X,Y,W,B)=>{let _=RJ(),Z=new Map,A=new Set,K=0,$="",O=-1,D={selected:!1,focused:!1},k=(n,v)=>{return D.selected=n,D.focused=v,D},E=`${j}-item ${j}-masonry-item`,T=`${j}-group-header`,F=`${j}-item--selected`,S=`${j}-item--focused`,p=(n,v)=>{if(typeof v==="string")n.innerHTML=v;else n.replaceChildren(v)},g=(n,v,R)=>{n.classList.toggle(F,v),n.classList.toggle(S,R)},r=(n,v)=>{if(Q)n.style.transform=`translate(${Math.round(v.y)}px, ${Math.round(v.x)}px)`;else n.style.transform=`translate(${Math.round(v.x)}px, ${Math.round(v.y)}px)`},y=(n,v)=>{if(Q)n.style.width=`${v.size}px`,n.style.height=`${v.crossSize}px`;else n.style.width=`${v.crossSize}px`,n.style.height=`${v.size}px`},M=(n,v,R,N,V)=>{let L=_.acquire(),H=v.__groupHeader,d=k(N,V);if(L.className=H?T:E,L.dataset.index=String(n),L.dataset.id=String(v.id),L.dataset.lane=String(R.lane),H)L.setAttribute("role","presentation"),L.removeAttribute("aria-selected"),L.removeAttribute("aria-setsize"),L.removeAttribute("aria-posinset"),L.removeAttribute("id");else if(B!==!1){if(L.setAttribute("role","option"),L.ariaSelected=String(N),Y)L.id=`${Y}-item-${n}`;if(X){let c=X();if(c!==O)O=c,$=String(c);L.setAttribute("aria-setsize",$);let j0=W?W(n):n+1;L.setAttribute("aria-posinset",String(j0))}}else if(L.setAttribute("role","listitem"),L.removeAttribute("aria-selected"),X){let c=X();if(c!==O)O=c,$=String(c);L.setAttribute("aria-setsize",$);let j0=W?W(n):n+1;L.setAttribute("aria-posinset",String(j0))}y(L,R);let J0=q(v,n,d);return p(L,J0),g(L,N,V),r(L,R),{element:L,lastItemId:v.id,lastSelected:N,lastFocused:V,lastY:R.y,lastX:R.x,lastSize:R.size,lastCrossSize:R.crossSize,lastSeenFrame:K}},w=(n,v,R,N)=>{K++,A.clear();for(let L=0;L<v.length;L++)A.add(v[L].index);for(let[L,H]of Z)if(A.has(L))H.lastSeenFrame=K;else if(K-H.lastSeenFrame>PJ)_.release(H.element),Z.delete(L);let V=null;for(let L=0;L<v.length;L++){let H=v[L],d=H.index,J0=n(d);if(!J0)continue;let c=R.has(J0.id),j0=d===N,z=Z.get(d);if(z){let I=z.lastItemId!==J0.id,b=z.lastSelected!==c,U=z.lastFocused!==j0,C=z.lastY!==H.y||z.lastX!==H.x,G=z.lastSize!==H.size||z.lastCrossSize!==H.crossSize;if(I){let u=k(c,j0),f=q(J0,d,u);if(p(z.element,f),z.element.dataset.id=String(J0.id),z.lastItemId=J0.id,!J0.__groupHeader){let a=W?W(d):d+1;z.element.setAttribute("aria-posinset",String(a))}}if(I||b||U)g(z.element,c,j0),z.element.ariaSelected=String(c),z.lastSelected=c,z.lastFocused=j0;if(G)y(z.element,H),z.lastSize=H.size,z.lastCrossSize=H.crossSize;if(C)r(z.element,H),z.lastY=H.y,z.lastX=H.x}else{let I=M(d,J0,H,c,j0);if(!V)V=document.createDocumentFragment();V.appendChild(I.element),Z.set(d,I)}}if(V)J.appendChild(V)},s=()=>{for(let n of Z.values())_.release(n.element);Z.clear(),J.innerHTML=""};return{render:w,getElement:(n)=>Z.get(n)?.element,updateItemClasses:(n,v,R)=>{let N=Z.get(n);if(!N)return;let V=N.lastSelected!==v,L=N.lastFocused!==R;if(V||L)g(N.element,v,R),N.lastSelected=v,N.lastFocused=R},sortDOM:()=>{J2(J,Z.keys(),(n)=>Z.get(n)?.element)},clear:s,destroy:()=>{s(),_.clear()}}};var yJ=new Set,wJ=100,l2=(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:B,rawConfig:_}=X,Z=B.classPrefix,A=B.horizontal;if(B.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");Y.root.classList.add(`${Z}--masonry`);let K=g0(_.padding),$=L2(K,A),O=e0(K,A),D=()=>(A?Y.viewport.clientHeight:Y.viewport.clientWidth)-$;q=m1({columns:J.columns,gap:J.gap??0,containerSize:D()});let k=_.item,E=A&&k.width?k.width:k.height,T={containerWidth:0,columns:0,gap:0,columnWidth:0},F=typeof E==="function"?(U)=>E(U,T):()=>E,S=()=>{let U=X.dataManager.getTotal(),C=q,G=C.columns,u=C.gap;T.containerWidth=C.containerSize,T.columns=G,T.gap=u;let f=(G-1)*u;T.columnWidth=Math.max(0,(T.containerWidth-f)/G),Q=C.calculateLayout(U,F),w();let i=C.getTotalSize(Q);X.sizeCache.getTotalSize=()=>i,X.updateContentSize(i)},p=_.item.template,g=Q2(X.methods,()=>X.dataManager.getTotal());j=x1(Y.items,p,Z,A,g.getSetSize,B.ariaIdPrefix,g.getPosInSet,B.interactive),X.setUpdateItemClassesFn((U,C,G)=>{j?.updateItemClasses(U,C,G)});let r=[],y=new Int32Array(0),M=[],w=()=>{let U=q.columns,C=Q.length;r=Array(U);for(let G=0;G<U;G++)r[G]=[];if(y.length<C)y=new Int32Array(C);for(let G=0;G<C;G++){let u=Q[G],f=r[u.lane].length;r[u.lane].push(G),y[G]=f}M=Array(U);for(let G=0;G<U;G++){let u=r[G],f=new Float64Array(u.length);for(let i=0;i<u.length;i++){let a=Q[u[i]];f[i]=a.y+a.size*0.5}M[G]=f}};X.methods.set("_getNavTotal",()=>X.dataManager.getTotal());let s=(U,C)=>{let G=U.length;if(!G)return-1;let u=0,f=G-1;while(u<f){let i=u+f>>1;if(U[i]<C)u=i+1;else f=i}if(u>0&&Math.abs(U[u-1]-C)<=Math.abs(U[u]-C))return u-1;return u};X.methods.set("_navigate",(U,C,G)=>{let u=Q[U];if(!u)return U;let f=u.lane,i=q.columns,a=y[U],Y0=r[f];switch(A?C==="ArrowDown"?"ArrowRight":C==="ArrowUp"?"ArrowLeft":C==="ArrowRight"?"ArrowDown":C==="ArrowLeft"?"ArrowUp":C:C){case"ArrowDown":{if(a+1<Y0.length)return Y0[a+1];return U}case"ArrowUp":{if(a>0)return Y0[a-1];return U}case"ArrowRight":{if(f>=i-1)return U;let e=f+1,P=u.y+u.size*0.5,h=r[e];if(!h.length)return U;let Q0=s(M[e],P);return Q0>=0?h[Q0]:U}case"ArrowLeft":{if(f<=0)return U;let e=f-1,P=u.y+u.size*0.5,h=r[e];if(!h.length)return U;let Q0=s(M[e],P);return Q0>=0?h[Q0]:U}case"Home":return 0;case"End":return G-1;case"PageDown":{let e=X.state.viewportState.containerSize,P=u.size>0?u.size:150,h=Math.max(1,Math.floor(e/P)),Q0=Math.min(a+h,Y0.length-1);return Y0[Q0]}case"PageUp":{let e=X.state.viewportState.containerSize,P=u.size>0?u.size:150,h=Math.max(1,Math.floor(e/P)),Q0=Math.max(0,a-h);return Y0[Q0]}}return U}),X.methods.set("_scrollItemIntoView",(U)=>{let C=Q[U];if(!C)return;let G=X.scrollController.getScrollTop(),u=X.state.viewportState.containerSize,f=C.y,i=f+C.size;if(f<G)X.scrollController.scrollTo(X.adjustScrollPosition(Math.max(0,f)));else if(i>G+u)X.scrollController.scrollTo(X.adjustScrollPosition(i-u))});let m=null,o=null,X0=!1,n=()=>{if(X0)return;X0=!0,m=X.methods.get("_getSelectedIds")??null,o=X.methods.get("_getFocusedIndex")??null},v=(U)=>X.dataManager.getItem(U),R=-1,N=-1,V=!0,L=B.overscan*wJ,H=()=>{if(X.state.isDestroyed)return;n();let U=X.scrollController.getScrollTop(),C=X.state.viewportState.containerSize;if(!V&&U===R&&C===N)return;R=U,N=C,V=!1;let G=Math.max(0,U-L),u=U+C+L,f=q.getVisibleItems(Q,G,u),i=m?.()??yJ,a=o?.()??-1;if(j&&f.length)j.render(v,f,i,a);let Y0=X.state.viewportState;Y0.scrollPosition=U;let x=f.length,e=x?f[0].index:0,P=x?f[x-1].index:0;Y0.visibleRange.start=e,Y0.visibleRange.end=P,Y0.renderRange.start=e,Y0.renderRange.end=P;let h=X.state.lastRenderRange;if(h.start!==e||h.end!==P)h.start=e,h.end=P,W.emit("range:change",{range:{start:e,end:P}})},d=()=>{X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,V=!0,H()};X.setRenderFns(H,d);let J0=(U,C)=>{let G=(A?C:U)-$;if(q&&q.containerSize!==G)q.update({containerSize:G}),S(),j?.clear(),d()};X.resizeHandlers.push(J0);let c=()=>{S(),d()},j0=X.dataManager,z=(U)=>{if(typeof j0[U]!=="function")return;let C=j0[U].bind(j0);j0[U]=(...G)=>{C(...G),c()}};z("setItems"),z("appendItems"),z("prependItems"),z("updateItem"),z("removeItem");let{animateScroll:I,cancelScroll:b}=q2(X.scrollController,X.renderIfNeeded);X.methods.set("cancelScroll",b),X.methods.set("scrollToIndex",(U,C)=>{let G=Q[U];if(!G)return;let{align:u,behavior:f,duration:i}=r0(C),a=G.y,Y0=X.state.viewportState.containerSize,x=a;if(u==="center")x=a-Y0/2+G.size/2;else if(u==="end"){x=a-Y0+G.size;let e=q.getTotalSize(Q);if(U===Q.length-1)x=Math.max(0,e+O-Y0)}if(x=X.adjustScrollPosition(Math.max(0,x)),f==="smooth")I(X.scrollController.getScrollTop(),x,i);else b(),X.scrollController.scrollTo(x)}),S(),X.idleHandlers.push(()=>{j?.sortDOM()}),X.destroyHandlers.push(()=>{b(),j?.destroy(),Y.root.classList.remove(`${Z}--masonry`)})}}};var r2=(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",B=g1(Q),_=B.selected,Z=null,A=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(K){let{dom:$,emitter:O,config:D}=K,{classPrefix:k,ariaIdPrefix:E}=D,T=()=>$.root.getAttribute("role")==="grid"?$.root:$.items;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}$.root.classList.add(`${k}--selectable`);let F=()=>K.methods.get("_isGroupHeader"),S=()=>K.methods.get("_layoutToDataIndex"),p=()=>K.methods.get("_dataToLayoutIndex"),g=(P)=>{let h=F();return h?h(P):!1},r=(P,h,Q0)=>{if(!F())return P;let t=P;while(t>=0&&t<Q0){if(!g(t))return t;t+=h}t=P-h;while(t>=0&&t<Q0){if(!g(t))return t;t-=h}return P},y=(P)=>{B.focusedIndex=P},M=(P,h,Q0=!1)=>{if(h===0)return;let t=B.focusedIndex+P;if(t<0)t=Q0?h-1:0;else if(t>=h)t=Q0?0:h-1;y(t)},w=(P)=>{if(q==="single"){if(_.clear(),P.length>0)_.add(P[0])}else for(let h of P)_.add(h)},s=(P)=>{if(q==="single")_.clear();_.add(P)},m=(P)=>{if(_.has(P))_.delete(P);else s(P)},o=(P,h,Q0)=>{if(q!=="multiple")return;let t=Math.min(h,Q0),V0=Math.max(h,Q0);for(let N0=t;N0<=V0;N0++){let U0=P[N0];if(U0)_.add(U0.id)}},X0=()=>Array.from(_),n=(P)=>{let h=[];for(let Q0 of _){let t=P(Q0);if(t)h.push(t)}return h},v=new Map,R=()=>{v.clear();let P=K.dataManager.getTotal(),h=K.dataManager.getCached();if(h===0)return;if(h>=P){for(let t=0;t<P;t++){let V0=K.dataManager.getItem(t);if(V0)v.set(V0.id,t)}return}let Q0=K.dataManager.getStorage();if(Q0&&typeof Q0.getLoadedRanges==="function"){let t=Q0.getLoadedRanges();for(let V0 of t)for(let N0=V0.start;N0<=V0.end;N0++){let U0=K.dataManager.getItem(N0);if(U0&&!U0._isPlaceholder)v.set(U0.id,N0)}}};O.on("data:change",({type:P,id:h})=>{if(P==="remove"){_.delete(h),R();let Q0=K.dataManager.getTotal();if(Q0>0&&B.focusedIndex>=0){let t=Math.min(B.focusedIndex,Q0-1);B.focusedIndex=r(t,1,Q0)}}}),O.on("load:end",({items:P,offset:h})=>{if(!P||P.length===0)return;if(h!==void 0)for(let Q0=0;Q0<P.length;Q0++){let t=P[Q0];if(t&&t.id!==void 0)v.set(t.id,h+Q0)}else R()}),R(),K.methods.set("_getSelectedIds",()=>{return _}),K.methods.set("_getFocusedIndex",()=>{return B.focusVisible?B.focusedIndex:-1}),K.methods.set("_seedSelection",(P)=>{for(let h of P)_.add(h)});let{forceRender:N}=K.getRenderFns(),V=()=>{N();let P=(h)=>{let Q0=v.get(h);if(Q0===void 0)return;return K.dataManager.getItem(Q0)};O.emit("selection:change",{selected:X0(),items:n(P)})},L=g0(K.rawConfig.padding),H=D.horizontal?L.left:L.top,d=D.horizontal?L.right:L.bottom,J0=K.getItemToScrollIndexFn(),c=null,j0=null,z=null,I=!1,b=()=>{if(I)return;I=!0,c=K.methods.get("_getNavDelta")??null,j0=K.methods.get("_navigate")??null,z=K.methods.get("_scrollItemIntoView")??null},U=()=>{return b(),c?c():{ud:1,lr:0,cols:0}},C=(P)=>{if(P<0)return;if(b(),z)z(P);else{let h=K.state.viewportState.containerSize,Q0=K.state.viewportState.scrollPosition,t=K.dataManager.getTotal(),V0=K.getCachedCompression(),{visibleRange:N0}=K.state.viewportState,U0=J0(P),W0=F2(U0,K.sizeCache,Q0,h,H,d,V0,t,N0);if(W0!==Q0)K.scrollController.scrollTo(K.adjustScrollPosition(W0))}},G=()=>{let P=J0(Math.max(0,B.focusedIndex)),h=K.sizeCache.getSize(P),{ud:Q0}=U();return Math.max(Q0,Math.floor(K.state.viewportState.containerSize/h)*Q0)};Z=document.createElement("div"),Z.setAttribute("aria-live","polite"),Z.setAttribute("aria-atomic","true"),Z.className=`${k}-live-region`,Z.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",($.root.getAttribute("role")==="grid"?$.root.parentElement??$.root:$.root).appendChild(Z);let f=Z;O.on("selection:change",({selected:P})=>{let h=P.length;if(h===0)f.textContent="";else if(h===1)f.textContent="1 item selected";else f.textContent=`${h} items selected`});let i=()=>{if(K.state.isDestroyed)return;let P=T();if(!P.matches(":focus-visible")&&!$.root.matches(":focus-visible"))return;let h=K.dataManager.getTotal();if(h===0)return;let Q0=B.focusedIndex>=0?Math.min(B.focusedIndex,h-1):0;Q0=r(Q0,1,h),y(Q0),B.focusVisible=!0,P.setAttribute("aria-activedescendant",`${E}-item-${Q0}`),C(Q0);let t=K.dataManager.getItem(Q0);if(t)K.renderer.updateItemClasses(Q0,_.has(t.id),!0)};if(D.interactive)$.root.addEventListener("focusin",i);let a=(P)=>{if(K.state.isDestroyed)return;let h=P.relatedTarget;if(h&&$.root.contains(h))return;let Q0=B.focusedIndex;if(B.focusVisible=!1,T().removeAttribute("aria-activedescendant"),Q0>=0){let t=K.dataManager.getItem(Q0);if(t)K.renderer.updateItemClasses(Q0,_.has(t.id),!1)}};if(D.interactive)$.root.addEventListener("focusout",a);let Y0=(P)=>{let h=P.target.closest("[data-index]");if(!h)return null;let Q0=parseInt(h.dataset.index??"-1",10);if(Q0<0)return null;let t=K.dataManager.getItem(Q0);if(!t||g(Q0))return null;return{item:t,index:Q0}},x=(P)=>{y(P),B.focusVisible=Y,A=P,T().setAttribute("aria-activedescendant",`${E}-item-${P}`)};if(K.clickHandlers.push((P)=>{if(K.state.isDestroyed)return;let h=Y0(P);if(!h)return;let{item:Q0,index:t}=h;if(O.emit("item:click",{item:Q0,index:t,event:P}),q==="multiple"&&P.shiftKey&&B.focusedIndex>=0){let V0=A>=0?A:B.focusedIndex;o(K.getAllLoadedItems(),V0,t),x(t),V();return}x(t),m(Q0.id),V()}),W==="select")K.contextMenuHandlers.push((P)=>{if(K.state.isDestroyed)return;let h=Y0(P);if(!h)return;if(!_.has(h.item.id))_.clear(),_.add(h.item.id),x(h.index),V()});if(D.interactive)K.keydownHandlers.push((P)=>{if(K.state.isDestroyed)return;let h=K.dataManager.getTotal(),Q0=B.focusedIndex,t=!1,V0=!1,N0=B;if(b(),j0)switch(P.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let U0=j0(B.focusedIndex,P.key,h);if(U0!==B.focusedIndex)y(U0),N0=B,N0.focusVisible=!0,t=!0,V0=!0;else{P.preventDefault();return}break}}if(!t)switch(P.key){case"ArrowUp":M(-U().ud,h,D.wrap),N0=B,N0.focusVisible=!0,t=!0,V0=!0;break;case"ArrowDown":M(U().ud,h,D.wrap),N0=B,N0.focusVisible=!0,t=!0,V0=!0;break;case"ArrowLeft":{let{lr:U0}=U();if(U0)M(-U0,h,D.wrap),N0=B,N0.focusVisible=!0,t=!0,V0=!0;break}case"ArrowRight":{let{lr:U0}=U();if(U0)M(U0,h,D.wrap),N0=B,N0.focusVisible=!0,t=!0,V0=!0;break}case"PageUp":case"PageDown":{let U0=G(),W0=S(),M0=p();if(W0&&M0){let $0=W0(B.focusedIndex),H0=P.key==="PageUp"?-U0:U0,P0=W0(h-1),E0=Math.max(0,Math.min(P0,$0+H0));y(M0(E0))}else M(P.key==="PageUp"?-U0:U0,h);N0=B,N0.focusVisible=!0,t=!0,V0=!0;break}case"Home":{if(h>0)y(0);N0=B,N0.focusVisible=!0,t=!0,V0=!0;break}case"End":{if(h>0)y(h-1);N0=B;let U0=K.methods.get("_ensureTailLoaded");if(U0)U0();N0.focusVisible=!0,t=!0,V0=!0;break}}switch(P.key){case" ":case"Enter":if(P.key===" "&&P.shiftKey&&q==="multiple"&&B.focusedIndex>=0){if(A>=0){let U0=K.getAllLoadedItems();o(U0,A,B.focusedIndex),N0=B}N0.focusVisible=!0,t=!0;break}if(B.focusedIndex>=0&&!g(B.focusedIndex)){let U0=K.dataManager.getItem(B.focusedIndex);if(U0)m(U0.id),N0=B,N0.focusVisible=!0;A=B.focusedIndex,t=!0}break;case"a":if((P.ctrlKey||P.metaKey)&&q==="multiple"){let U0=K.getAllLoadedItems();if(_.size===U0.length)_.clear();else for(let W0 of U0)_.add(W0.id);N0=B,N0.focusVisible=!0,t=!0,V0=!1}break;case"Delete":case"Backspace":if(_.size>0){let U0=(W0)=>{let M0=v.get(W0);return M0===void 0?void 0:K.dataManager.getItem(M0)};O.emit("delete",{selected:X0(),items:n(U0)}),t=!0}break}if(V0&&F()){let U0=N0.focusedIndex>Q0?1:-1;N0.focusedIndex=r(N0.focusedIndex,U0,h)}if(P.shiftKey&&q==="multiple"&&V0&&N0.focusedIndex>=0){let U0=P.key==="ArrowUp"||P.key==="ArrowDown"||P.key==="ArrowLeft"||P.key==="ArrowRight",W0=(P.ctrlKey||P.metaKey)&&(P.key==="Home"||P.key==="End");if(U0){if(X==="origin"){if(Q0>=0){let M0=K.dataManager.getItem(Q0);if(M0)m(M0.id),N0=B}}else{let M0=K.dataManager.getItem(N0.focusedIndex);if(M0)m(M0.id),N0=B}A=N0.focusedIndex,V0=!1}else if(W0){let M0=K.getAllLoadedItems(),$0=Q0>=0?Q0:N0.focusedIndex;o(M0,$0,N0.focusedIndex),N0=B,A=N0.focusedIndex,V0=!1}}if(j&&q==="single"&&V0&&N0.focusedIndex>=0){let U0=K.dataManager.getItem(N0.focusedIndex);if(U0)s(U0.id),N0=B;V0=!1}if(t){P.preventDefault(),B=N0;let U0=B.focusedIndex;if(U0>=0)C(U0),T().setAttribute("aria-activedescendant",`${E}-item-${U0}`);else T().removeAttribute("aria-activedescendant");if(V0){let{selected:W0}=B;if(Q0>=0&&Q0!==U0){let M0=K.dataManager.getItem(Q0);if(M0)K.renderer.updateItemClasses(Q0,W0.has(M0.id),!1)}if(U0>=0){let M0=K.dataManager.getItem(U0);if(M0)K.renderer.updateItemClasses(U0,W0.has(M0.id),!0)}}else V();if(U0>=0&&U0!==Q0){let W0=K.dataManager.getItem(U0);if(W0)O.emit("focus:change",{id:W0.id,index:U0})}}});K.methods.set("select",(...P)=>{if(w(P),P.length>0){let h=v.get(P[0]);if(h===void 0)R(),h=v.get(P[0]);if(h!==void 0)y(h)}V()}),K.methods.set("deselect",(...P)=>{for(let h of P)_.delete(h);V()}),K.methods.set("toggleSelect",(P)=>{m(P),V()}),K.methods.set("selectAll",()=>{if(q!=="multiple")return;let P=K.getAllLoadedItems();_.clear();for(let h of P)_.add(h.id);R(),V()}),K.methods.set("clearSelection",()=>{_.clear(),V()}),K.methods.set("getSelected",()=>{return X0()}),K.methods.set("getSelectedItems",()=>{return n((h)=>{let Q0=v.get(h);return Q0===void 0?void 0:K.dataManager.getItem(Q0)})});let e=(P)=>{let h=K.dataManager.getTotal();if(h===0)return;if(b(),j0){let N0=P==="next"?"ArrowDown":"ArrowUp",U0=j0(B.focusedIndex,N0,h);y(U0)}else{let{ud:N0}=U();M(P==="next"?N0:-N0,h,D.wrap)}let Q0=P==="next"?1:-1;B.focusedIndex=r(B.focusedIndex,Q0,h);let t=B.focusedIndex,V0=K.dataManager.getItem(t);if(!V0)return;s(V0.id),C(t),V()};K.methods.set("selectNext",()=>{e("next")}),K.methods.set("selectPrevious",()=>{e("previous")}),K.methods.set("_focusById",(P)=>{let h=v.get(P);if(h!==void 0){let t=K.dataManager.getItem(h);if(!t||t.id!==P)h=void 0}if(h===void 0){if(R(),h=v.get(P),h===void 0)return}y(h);let Q0=K.dataManager.getItem(h);if(Q0)O.emit("focus:change",{id:Q0.id,index:h})}),K.methods.set("_getFocusedId",()=>{let P=B.focusedIndex;if(P<0)return;return K.dataManager.getItem(P)?.id}),K.methods.set("_setFocusedIndex",(P)=>{y(P),B.focusVisible=!0,C(P),T().setAttribute("aria-activedescendant",`${E}-item-${P}`),K.renderIfNeeded()}),K.destroyHandlers.push(()=>{if(f&&f.parentNode)f.remove();$.root.removeEventListener("focusin",i),$.root.removeEventListener("focusout",a)})},destroy(){if(Z&&Z.parentNode)Z.remove();Z=null}}};var zJ=(J)=>{try{let q=sessionStorage.getItem(J);if(!q)return;return JSON.parse(q)}catch{return}},s2=(J)=>{let q=J?.autoSave,j=q?zJ(q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){let X=()=>{let Z=Q.scrollController.getScrollTop(),A=Q.getCachedCompression(),K=Q.getVirtualTotal(),O=Q.methods.get("getSelected")?.();if(K===0){let g={index:0,offsetInItem:0,total:0};if(O?.length)g.selectedIds=O;return g}let D,k;if(A.isCompressed&&A.ratio!==1){let r=Z/A.virtualSize*K;D=Math.max(0,Math.min(Math.floor(r),K-1)),k=(r-D)*Q.sizeCache.getSize(D)}else D=Q.sizeCache.indexAtOffset(Z),k=Z-Q.sizeCache.getOffset(D);k=Math.max(0,k);let E={index:D,offsetInItem:k,total:K,scrollTop:Z},T=Q.sizeCache.getSize(D);if(T)E.offsetRatio=k/T;let F=Q.methods.get("_layoutToDataIndex");if(F){let g=F(D);if(g<0){for(let r=D+1;r<K;r++)if(g=F(r),g>=0)break}if(g>=0)E.dataIndex=g}let S=Q.methods.get("_getTotal");if(S)E.dataTotal=S();if(O?.length)E.selectedIds=O;let p=Q.methods.get("_getFocusedId");if(p){let g=p();if(g!==void 0)E.focusedId=g}return E};Q.methods.set("getScrollSnapshot",X);let Y=(Z,A=!0)=>{let{index:K,offsetInItem:$,selectedIds:O,focusedId:D}=Z,k=Q.getVirtualTotal(),E=Z.dataTotal??Z.total;if(k===0&&E&&E>0){Q.dataManager.setTotal(E);let R=Q.getVirtualTotal();Q.sizeCache.rebuild(R),Q.updateCompressionMode();let N=Q.getCachedCompression();if(!N.isCompressed)Q.updateContentSize(N.virtualSize)}else if(k===0)return;if(!Number.isFinite(K)||!Number.isFinite($))return;let T=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==T){Q.sizeCache.rebuild(T),Q.updateCompressionMode();let R=Q.getCachedCompression();if(!R.isCompressed)Q.updateContentSize(R.virtualSize)}let S=Q.getCachedCompression(),p=Q.methods.get("_dataToLayoutIndex"),g=K;if(Z.dataIndex!==void 0&&Z.dataIndex>=0)g=p?p(Z.dataIndex):Z.dataIndex;else if(p)g=p(K);let r=Math.max(0,Math.min(g,T-1)),y=Q.sizeCache.getSize(r),M=Z.offsetRatio!==void 0?Z.offsetRatio*y:Math.min($,y),w;if(S.isCompressed&&S.ratio!==1){let R=Q.methods.get("_getTotal")?.(),N=R!==void 0&&Z.dataTotal===R;if(Z.scrollTop!==void 0&&(Z.total===T||N))w=Z.scrollTop;else{let V=y?M/y:0;w=(r+V)/T*S.virtualSize}}else w=Q.sizeCache.getOffset(r)+M;let s=Q.state.viewportState.containerSize,m=S.isCompressed?Q.state.viewportState.totalSize:S.virtualSize,o=Math.max(0,m-s);w=Math.max(0,Math.min(w,o));let X0=w===Z.scrollTop;if(Z.dataIndex!==void 0&&Z.dataIndex>=0){let R=y?M/y:0;Q.methods.set("_restoreAnchor",{dataIndex:Z.dataIndex,fraction:R,skipAdjust:X0}),Q.methods.set("_suppressSave",1)}if(Q.scrollController.scrollTo(w),A&&O?.length){let R=Q.methods.get("select");if(R)R(...O)}let n=Q.methods.get("loadVisibleRange"),v=()=>{if(D===void 0)return;let R=Q.methods.get("_focusById");if(R)R(D)};if(n){let R=0,N=()=>{if(Q.state.viewportState.containerSize){if(Math.abs(Q.scrollController.getScrollTop()-w)>1)Q.scrollController.scrollTo(w);n().then(v)}else if(++R<10)requestAnimationFrame(N)};requestAnimationFrame(N)}else{let R=Q.methods.get("reload");if(R)requestAnimationFrame(()=>{R().then(v)});else requestAnimationFrame(v)}};Q.methods.set("restoreScroll",Y);let W=!!(j&&q),B=null,_=!1;if(Q.destroyHandlers.push(()=>{_=!0}),q){B=()=>{if(_||W||Q.methods.has("_suppressSave"))return;let K=Q.methods.get("getScrollSnapshot");if(!K)return;let $=K();try{sessionStorage.setItem(q,JSON.stringify($))}catch{}},Q.methods.set("_saveSnapshot",B);let Z=0,A=()=>{if(Z)return;Z=requestAnimationFrame(()=>{Z=0,B()})};if(Q.idleHandlers.push(A),Q.emitter.on("selection:change",A),Q.emitter.on("focus:change",A),j&&j.total&&j.total>0){let K=Q.methods.get("_cancelAutoLoad");if(K)K();Q.dataManager.setTotal(j.total)}}if(j){let Z=!0;if(j.selectedIds?.length){let A=Q.methods.get("_seedSelection");if(A)A(j.selectedIds),Z=!1}queueMicrotask(()=>{if(Y(j,Z),W=!1,B)B()})}}}};var d1=(J,q=50,j=1/0,Q=!0)=>{let X=J,Y=[],W=0,B=()=>{Y=X.map((E,T)=>({def:E,index:T,width:0,minWidth:CJ(E.minWidth??q,1),maxWidth:E.maxWidth??j,resizable:E.resizable??Q,offset:0}))},_=(E)=>{if(Y.length===0){W=0;return}let T=0,F=0;for(let S=0;S<Y.length;S++){let p=Y[S],g=p.def;if(g.width!==void 0)p.width=a2(g.width,p.minWidth,p.maxWidth),T+=p.width;else F++}if(F){let p=Math.max(0,E-T)/F;for(let g=0;g<Y.length;g++){let r=Y[g];if(r.def.width===void 0)r.width=a2(p,r.minWidth,r.maxWidth)}}Z()},Z=()=>{let E=0;for(let T=0;T<Y.length;T++){let F=Y[T];F.offset=E,E+=F.width}W=E},A=(E,T)=>{if(E<0||E>=Y.length)return 0;let F=Y[E];if(!F.resizable)return F.width;let S=a2(T,F.minWidth,F.maxWidth);return F.width=S,Z(),S},K=(E)=>{return Y[E]},$=(E)=>{if(Y.length===0)return;if(E<0)return Y[0];if(E>=W)return Y[Y.length-1];let T=0,F=Y.length-1;while(T<F){let S=T+F>>>1,p=Y[S];if(E<p.offset)F=S-1;else if(E>=p.offset+p.width)T=S+1;else return p}return Y[T]},O=(E)=>{if(E<0||E>=Y.length)return 0;return Y[E].offset},D=(E)=>{if(E<0||E>=Y.length)return 0;return Y[E].width},k=(E)=>{X=E,B()};return B(),{get columns(){return Y},get totalWidth(){return W},resolve:_,updateColumns:k,resizeColumn:A,getColumn:K,getColumnAtX:$,getColumnOffset:O,getColumnWidth:D}},a2=(J,q,j)=>Math.min(j,Math.max(q,J)),CJ=(J,q)=>Math.max(q,J);var c1=(J,q,j,Q,X,Y)=>{let W=document.createElement("div");W.setAttribute("role","rowgroup");let B=document.createElement("div");B.className=`${j}-table-header`,B.setAttribute("role","row"),B.setAttribute("aria-rowindex","1"),B.style.height=`${q}px`;let _=document.createElement("div");_.className=`${j}-table-header-scroll`,_.setAttribute("role","presentation"),B.appendChild(_),W.appendChild(B),J.insertBefore(W,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${q}px`);let Z=[],A=[],K=!0,$=null,O="asc",D=null,k=!1,E=-1,T=0,F=0,S=0,p=(V,L)=>{let H=document.createElement("div");H.className=`${j}-table-header-cell`,H.setAttribute("role","columnheader"),H.setAttribute("aria-colindex",String(L+1)),H.setAttribute("tabindex",L===0?"0":"-1"),H.dataset.columnKey=V.def.key;let d=V.def.align;if(d==="center")H.classList.add(`${j}-table-header-cell--center`);else if(d==="right")H.classList.add(`${j}-table-header-cell--right`);let J0=document.createElement("div");J0.className=`${j}-table-header-content`;let c=V.def.header?V.def.header(V.def):V.def.label;if(typeof c==="string")J0.textContent=c;else J0.appendChild(c);if(H.appendChild(J0),V.def.sortable){let j0=document.createElement("span");j0.className=`${j}-table-header-sort`,j0.setAttribute("aria-hidden","true"),H.appendChild(j0),A.push(j0),H.classList.add(`${j}-table-header-cell--sortable`)}else A.push(null);if(V.resizable){let j0=document.createElement("div");j0.className=`${j}-table-header-resize`,j0.dataset.resizeIndex=String(L),H.appendChild(j0)}return H},g=(V)=>{D=V,_.textContent="",Z=[],A=[];let L=V.columns;for(let H=0;H<L.length;H++){let d=L[H],J0=p(d,H);Z.push(J0),_.appendChild(J0)}if(r(V),$)y($,O)},r=(V)=>{D=V;let L=V.columns;_.style.width=`${V.totalWidth}px`;for(let H=0;H<Z.length&&H<L.length;H++){let d=Z[H],J0=L[H];d.style.width=`${J0.width}px`}},y=(V,L)=>{if($=V,O=L,!D)return;let H=D.columns;for(let d=0;d<A.length&&d<H.length;d++){let J0=A[d];if(!J0)continue;if(H[d].def.key===V)J0.textContent=L==="asc"?"▲":"▼",J0.style.opacity="0.7",Z[d].setAttribute("aria-sort",L==="asc"?"ascending":"descending");else J0.textContent="",J0.style.opacity="0",Z[d].removeAttribute("aria-sort")}},M=(V)=>{_.style.transform=`translateX(${-V}px)`},w=(V)=>{let L=V.target;if(!L.dataset.resizeIndex)return;if(V.preventDefault(),V.stopPropagation(),E=+L.dataset.resizeIndex,!D)return;let H=D.getColumn(E);if(!H?.resizable)return;k=!0,T=V.clientX,F=H.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",L.classList.add(`${j}-table-header-resize--active`),L.setPointerCapture(V.pointerId),L.addEventListener("pointermove",s),L.addEventListener("pointerup",m),L.addEventListener("pointercancel",m)},s=(V)=>{if(!k||!D)return;let L=V.clientX-T;if(Math.abs(L)<1)return;let H=Math.max(0,F+L);Q(E,H)},m=(V)=>{if(!k)return;let L=V.target;L.removeEventListener("pointermove",s),L.removeEventListener("pointerup",m),L.removeEventListener("pointercancel",m);try{L.releasePointerCapture(V.pointerId)}catch{}L.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",k=!1,E=-1},o=(V)=>{let L=V.target;if(L.dataset.resizeIndex)return;if(k)return;let H=L;while(H&&!H.dataset.columnKey)if(H=H.parentElement,H===B||H===null)return;let d=H.dataset.columnKey;if(!D)return;let J0=D.columns,c=-1;for(let z=0;z<J0.length;z++)if(J0[z].def.key===d){c=z;break}if(c===-1)return;let j0=J0[c];if(Y)Y({key:d,index:c,event:V});if(j0.def.sortable&&X){let z;if($===d)z=O==="asc"?"desc":null;else z="asc";X({key:d,index:c,direction:z})}},X0=(V)=>{if(V<0||V>=Z.length)return;Z[S]?.setAttribute("tabindex","-1"),S=V;let L=Z[S];L.setAttribute("tabindex","0"),L.focus()},n=(V)=>{let L=V.key;if(L==="ArrowRight"){if(V.ctrlKey||V.metaKey){if(!D)return;let H=D.getColumn(S);if(H?.resizable)Q(S,H.width+10),V.preventDefault()}else if(S<Z.length-1)X0(S+1),V.preventDefault();V.stopPropagation();return}if(L==="ArrowLeft"){if(V.ctrlKey||V.metaKey){if(!D)return;let H=D.getColumn(S);if(H?.resizable)Q(S,H.width-10),V.preventDefault()}else if(S>0)X0(S-1),V.preventDefault();V.stopPropagation();return}if(L==="Home"){X0(0),V.preventDefault(),V.stopPropagation();return}if(L==="End"){X0(Z.length-1),V.preventDefault(),V.stopPropagation();return}if(L==="Enter"||L===" "){if(!D)return;let H=D.getColumn(S);if(H?.def.sortable&&X){let d;if($===H.def.key)d=O==="asc"?"desc":null;else d="asc";X({key:H.def.key,index:S,direction:d}),V.preventDefault()}V.stopPropagation();return}if(L==="ArrowDown"){J.focus(),V.preventDefault(),V.stopPropagation();return}};return B.addEventListener("pointerdown",w),B.addEventListener("click",o),B.addEventListener("keydown",n),{element:B,update:r,updateSort:y,rebuild:g,show:()=>{if(K)return;K=!0,B.style.display=""},hide:()=>{if(!K)return;K=!1,B.style.display="none"},destroy:()=>{B.removeEventListener("pointerdown",w),B.removeEventListener("click",o),B.removeEventListener("keydown",n),J.style.removeProperty("--vlist-table-header-height"),W.remove(),Z=[],A=[],D=null,K=!1},syncScroll:M}};var vJ=()=>{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}}},l1=(J,q,j,Q,X,Y,W,B,_)=>{let Z=vJ(),A=new Map,K=-1,$=j,O=null,D=null,k=null,E=(G,u)=>{D=G,k=u},T=(G,u)=>{u?G.setAttribute("aria-selected","true"):G.removeAttribute("aria-selected")},F=(G,u,f,i)=>{G.setAttribute("role",u),G.setAttribute("data-id",String(f)),G.setAttribute("data-index",String(i))},S=(G)=>String(G).startsWith("__placeholder_"),p=`${X}-item ${X}-table-row`,g=`${X}-item--selected`,r=`${X}-item--focused`,y=`${X}-table-cell`,M=`${X}-table-cell--center`,w=`${X}-table-cell--right`,s=`${X}-item--odd`,m=`${X}-item--placeholder`,o=`${X}-item--replaced`,X0=`${X}-item ${X}-table-row ${X}-table-group-header`,n=`${X}-table-group-header-content`,v=(G,u,f,i,a=!1)=>{if(f.def.cell){let Y0=f.def.cell(u,f.def,i);if(typeof Y0==="string")G.innerHTML=Y0;else G.replaceChildren(Y0)}else{let Y0=u[f.def.key],x=Y0!=null?String(Y0):"";if(a&&x)G.innerHTML=`<span>${x}</span>`;else G.textContent=x}},R=(G,u,f,i,a=!1)=>{let Y0=p;if(B){if(O){let x=O(u);if(x>=0&&(x&1)===1)Y0+=` ${s}`}else if((u&1)===1)Y0+=` ${s}`}if(a)Y0+=` ${m}`;if(f)Y0+=` ${g}`;if(i)Y0+=` ${r}`;G.className=Y0},N=(G,u,f)=>{if(f?.compression?.isCompressed)return Math.round(T2(G,f.scrollPosition,u,f.totalItems,f.containerSize,f.compression,f.rangeStart));return u.getOffset(G)},V=(G,u)=>{let f=u.def.align;if(f==="center")G.classList.add(M),G.classList.remove(w);else if(f==="right")G.classList.add(w),G.classList.remove(M);else G.classList.remove(M,w)},L=(G,u)=>{let i=$.columns.length;if(u.length===i)return u;let a=[];for(let Y0=0;Y0<i;Y0++){let x;if(Y0<u.length)x=u[Y0];else x=document.createElement("div"),x.className=y,G.appendChild(x);a.push(x)}for(let Y0=i;Y0<u.length;Y0++)u[Y0].remove();return a},H=(G,u,f,i)=>{let a=Z.acquire(),Y0=G,x=f.getSize(u),e=N(u,f,i);a.style.cssText=`width:${$.totalWidth}px;height:${x}px;transform:translateY(${e}px)`,a.className=X0,F(a,"presentation",G.id,u),a.removeAttribute("aria-selected"),a.removeAttribute("aria-rowindex"),a.replaceChildren();let P=document.createElement("div");if(P.className=n,k){let h=k(Y0.groupKey,Y0.groupIndex);if(typeof h==="string")P.innerHTML=h;else P.appendChild(h)}return a.appendChild(P),{element:a,cells:[],index:u,isGroupHeader:!0,lastItemId:G.id,lastSelected:!1,lastFocused:!1,lastOffset:e,lastHeight:x}},d=(G,u,f,i,a,Y0)=>{let x=Z.acquire(),e=a.getSize(u),P=N(u,a,Y0),h=S(G.id);x.style.cssText=`width:${$.totalWidth}px;height:${e}px;transform:translateY(${P}px)`,R(x,u,f,i,h),F(x,"row",G.id,u),x.id=`${Y}-item-${u}`,x.setAttribute("aria-rowindex",String(u+2)),T(x,f);let Q0=L(x,[]),t=$.columns;for(let V0=0;V0<Q0.length&&V0<t.length;V0++){let N0=Q0[V0],U0=t[V0];N0.style.cssText=`left:${U0.offset}px;width:${U0.width}px`,N0.setAttribute("role","gridcell"),N0.setAttribute("aria-colindex",String(V0+1)),V(N0,U0),v(N0,G,U0,u,h)}return{element:x,cells:Q0,index:u,isGroupHeader:!1,lastItemId:G.id,lastSelected:f,lastFocused:i,lastOffset:P,lastHeight:e}},J0=(G,u,f,i,a)=>{for(let[h,Q0]of A)if(h<u.start||h>u.end)Z.release(Q0.element),A.delete(h);let Y0=!1,x=W();if(x!==K)K=x,Y0=!0;let e=null,P=q();O=typeof B==="string"&&_?_():null;for(let h=u.start;h<=u.end;h++){let Q0=h-u.start,t=G[Q0];if(!t)continue;let V0=f.has(t.id),N0=h===i,U0=D?D(t):!1,W0=A.get(h);if(W0){if(W0.isGroupHeader!==U0){Z.release(W0.element),A.delete(h);let M0=U0?H(t,h,P,a):d(t,h,V0,N0,P,a);if(A.set(h,M0),!e)e=document.createDocumentFragment();e.appendChild(M0.element);continue}if(U0){if(W0.lastItemId!==t.id){let P0=t,E0=W0.element.firstElementChild;if(E0&&k){let w0=k(P0.groupKey,P0.groupIndex);if(typeof w0==="string")E0.innerHTML=w0;else E0.replaceChildren(w0)}W0.element.setAttribute("data-id",String(t.id)),W0.lastItemId=t.id}let $0=N(h,P,a);if(W0.lastOffset!==$0)W0.lastOffset=$0,W0.element.style.transform=`translateY(${$0}px)`;let H0=P.getSize(h);if(W0.lastHeight!==H0)W0.lastHeight=H0,W0.element.style.height=`${H0}px`}else{let M0=W0.lastItemId!==t.id,$0=W0.lastSelected!==V0,H0=W0.lastFocused!==N0;if(M0){let w0=W0.lastItemId!=null&&S(W0.lastItemId),D0=S(t.id);if(!D0&&Y2(f,h,t.id))V0=!0;let k0=$.columns;for(let b0=0;b0<W0.cells.length&&b0<k0.length;b0++)v(W0.cells[b0],t,k0[b0],h,D0);if(R(W0.element,h,V0,N0,D0),W0.element.setAttribute("data-id",String(t.id)),T(W0.element,V0),w0&&!D0)W0.element.classList.add(o),setTimeout(()=>{W0.element.classList.remove(o)},300);W0.lastItemId=t.id,W0.lastSelected=V0,W0.lastFocused=N0}else if($0||H0)R(W0.element,h,V0,N0,S(t.id)),T(W0.element,V0),W0.lastSelected=V0,W0.lastFocused=N0;let P0=N(h,P,a);if(W0.lastOffset!==P0)W0.lastOffset=P0,W0.element.style.transform=`translateY(${P0}px)`;let E0=P.getSize(h);if(W0.lastHeight!==E0)W0.lastHeight=E0,W0.element.style.height=`${E0}px`;if(Y0)W0.element.setAttribute("aria-rowindex",String(h+2))}}else{if(Y2(f,h,t.id))V0=!0;let M0=U0?H(t,h,P,a):d(t,h,V0,N0,P,a);if(A.set(h,M0),!e)e=document.createDocumentFragment();e.appendChild(M0.element)}}if(e)J.appendChild(e)},c=(G)=>{let u=q();for(let[f,i]of A){let a=N(f,u,G);if(i.lastOffset!==a)i.lastOffset=a,i.element.style.transform=`translateY(${a}px)`}},j0=(G,u,f,i)=>{let a=A.get(G);if(!a)return;if(a.isGroupHeader)return;let Y0=$.columns;for(let x=0;x<a.cells.length&&x<Y0.length;x++)v(a.cells[x],u,Y0[x],G);a.element.setAttribute("data-id",String(u.id)),a.lastItemId=u.id,R(a.element,G,f,i),T(a.element,f),a.lastSelected=f,a.lastFocused=i},z=(G,u,f)=>{let i=A.get(G);if(!i)return;if(i.isGroupHeader)return;let a=i.lastSelected!==u,Y0=i.lastFocused!==f;if(a||Y0)R(i.element,G,u,f),T(i.element,u),i.lastSelected=u,i.lastFocused=f},I=(G)=>{$=G;let u=G.columns;for(let[,f]of A)if(f.element.style.width=`${G.totalWidth}px`,f.cells.length>0)for(let i=0;i<f.cells.length&&i<u.length;i++){let a=f.cells[i],Y0=u[i];a.style.left=`${Y0.offset}px`,a.style.width=`${Y0.width}px`}},b=(G)=>{return A.get(G)?.element},U=()=>{for(let[,G]of A)Z.release(G.element);A.clear(),K=-1};return{render:J0,updatePositions:c,updateItem:j0,updateItemClasses:z,getElement:b,updateColumnLayout:I,setGroupHeaderFn:E,clear:U,destroy:()=>{U(),Z.clear()}}};var SJ=new Set,o2=(J)=>{if(!J.columns?.length)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:B}=X,{classPrefix:_}=B;if(B.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(B.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let Z=J.resizable??!0,A=J.minColumnWidth??50,K=J.maxColumnWidth??1/0,$=J.rowBorders??!0,O=J.rowHeight,D=X.rawConfig.padding,k=!D?0:typeof D==="number"?D*2:D.length===2?D[1]*2:D[1]+D[3],E=J.headerHeight??(typeof O==="number"?O:40),T=J.sort?.key??null,F=J.sort?.direction??"asc";if(q=d1(J.columns,A,K,Z),typeof O==="function"||typeof O==="number")X.setSizeConfig(O);if(X.rebuildSizeCache(),Y.root.classList.add(`${_}--table`),$&&Y.root.classList.add(`${_}--table-row-borders`),J.columnBorders&&Y.root.classList.add(`${_}--table-col-borders`),B.interactive)Y.root.setAttribute("tabindex","0"),Y.items.removeAttribute("tabindex");Y.root.setAttribute("role","grid"),Y.root.setAttribute("aria-colcount",`${J.columns.length}`);let S=-1,p=Y.root.getAttribute("aria-label")??Y.items.getAttribute("aria-label");if(p)Y.root.setAttribute("aria-label",p),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 g=X.getContainerWidth()-k;q.resolve(g);let r=(I,b)=>{if(!q)return;let U=q.getColumn(I);if(!U)return;let C=U.width,G=q.resizeColumn(I,b);j?.update(q),Q?.updateColumnLayout(q),w(),W.emit("column:resize",{key:U.def.key,index:I,previousWidth:C,width:G})},y=(I)=>{T=I.direction===null?null:I.key,F=I.direction??"asc",j?.updateSort(T,F),W.emit("column:sort",I)},M=(I)=>{W.emit("column:click",I)};if(j=c1(Y.root,E,_,r,y,M),j.rebuild(q),T)j.updateSort(T,F);let w=()=>{if(!q)return;let I=`${q.totalWidth}px`;Y.content.style.minWidth=I,Y.items.style.minWidth=I};w(),Q=l1(Y.items,()=>X.sizeCache,q,J.columns,_,B.ariaIdPrefix,()=>X.dataManager.getTotal(),X.rawConfig.item?.striped,()=>X.getStripeIndexFn());let s=null,m=null,o=!1,X0=()=>{if(o)return;o=!0,s=X.methods.get("_getSelectedIds")??null,m=X.methods.get("_getFocusedIndex")??null},n=-1,v=-1,R=-1,N=!0,V=B.overscan,L={start:0,end:0},H={start:0,end:0},d=()=>{if(X.state.isDestroyed)return;let I=X.scrollController.getScrollTop(),b=X.state.viewportState.containerSize,U=X.getVirtualTotal(),C=X.state.viewportState.isCompressed;if(!N&&I===n&&b===v&&U===R)return;n=I,v=b,R=U,N=!1;let G=U+1;if(G!==S)S=G,Y.root.setAttribute("aria-rowcount",`${G}`);X.getVisibleRange(I,b,U,L),H.start=Math.max(0,L.start-V),H.end=Math.min(U-1,L.end+V);let u=X.state.viewportState;u.scrollPosition=I,u.visibleRange.start=L.start,u.visibleRange.end=L.end,u.renderRange.start=H.start,u.renderRange.end=H.end;let f=X.state.lastRenderRange,i=f.start!==H.start||f.end!==H.end;if(!i&&C){Q.updatePositions(X.getCompressionContext());return}if(!i)return;let a=C?X.getCompressionContext():void 0,Y0=X.dataManager.getItemsInRange(H.start,H.end);X0();let x=s?s():SJ,e=m?m():-1;Q.render(Y0,H,x,e,a),f.start=H.start,f.end=H.end,W.emit("range:change",{range:{start:H.start,end:H.end}})},J0=()=>{if(X.state.isDestroyed)return;X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,N=!0,d()};X.setRenderFns(d,J0),X.setUpdateItemClassesFn((I,b,U)=>{Q?.updateItemClasses(I,b,U)});let c=j,j0=-1,z=()=>{let I=Y.viewport.scrollLeft;if(I!==j0){if(j0=I,c.syncScroll)c.syncScroll(I)}};X.afterScroll.push(z),Y.viewport.addEventListener("scroll",z,{passive:!0}),X.resizeHandlers.push((I,b)=>{if(!q)return;q.resolve(I-k),j?.update(q),Q?.updateColumnLayout(q),w()}),X.methods.set("updateColumns",(I)=>{if(!q||!j)return;if(q.updateColumns(I),q.resolve(X.getContainerWidth()-k),j.rebuild(q),T)j.updateSort(T,F);w(),Q?.updateColumnLayout(q),Q?.clear(),X.forceRender()}),X.methods.set("resizeColumn",(I,b)=>{if(!q)return;let U;if(typeof I==="string"){let C=q.columns;U=-1;for(let G=0;G<C.length;G++)if(C[G].def.key===I){U=G;break}if(U===-1)return}else U=I;r(U,b)}),X.methods.set("getColumnWidths",()=>{if(!q)return{};let I={},b=q.columns;for(let U=0;U<b.length;U++)I[b[U].def.key]=b[U].width;return I}),X.methods.set("setSort",(I,b)=>{T=I,F=b??"asc",j?.updateSort(T,F)}),X.methods.set("getSort",()=>{return{key:T,direction:F}}),X.methods.set("_getTableLayout",()=>q),X.methods.set("_updateRenderedItem",(I,b,U,C)=>{Q?.updateItem(I,b,U,C)}),X.methods.set("_replaceTableRenderer",(I)=>{Q=I}),X.methods.set("_updateTableForGroups",(I,b)=>{Q?.setGroupHeaderFn(I,b)}),X.methods.set("_getTableHeaderHeight",()=>E),X.keydownHandlers.push((I)=>{if(I.key!=="ArrowLeft"&&I.key!=="ArrowRight")return;if(!q)return;let b=q.columns;if(b.length===0)return;let U=Y.viewport.clientWidth;if(q.totalWidth<=U)return;let C=Y.viewport.scrollLeft;if(I.key==="ArrowRight"){for(let G=0;G<b.length;G++)if(b[G].offset>C+1){Y.viewport.scrollLeft=b[G].offset,I.preventDefault();return}}else{for(let G=b.length-1;G>=0;G--)if(b[G].offset<C-1){Y.viewport.scrollLeft=b[G].offset,I.preventDefault();return}if(C>0)Y.viewport.scrollLeft=0,I.preventDefault()}}),X.contentSizeHandlers.push(()=>{w()}),X.destroyHandlers.push(()=>{Y.viewport.removeEventListener("scroll",z),j?.destroy(),j=null,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.root.removeAttribute("tabindex"),Y.viewport.removeAttribute("role"),Y.viewport.setAttribute("tabindex","-1"),Y.content.removeAttribute("role");let I=Y.root.getAttribute("aria-label");if(I)Y.items.setAttribute("aria-label",I),Y.root.removeAttribute("aria-label");if(Y.root.removeAttribute("aria-rowcount"),Y.items.setAttribute("role",B.interactive?"listbox":"list"),B.interactive)Y.items.setAttribute("tabindex","0")})},destroy(){j?.destroy(),j=null,Q?.destroy(),Q=null}}};var n2=(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,B=J?.ghostContainer??null;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(_){let{dom:Z,emitter:A,config:K}=_,{classPrefix:$}=K,{root:O,viewport:D,items:k}=Z,{sizeCache:E}=_,T=K.horizontal,F=T?"translateX":"translateY",S=Q>0?`transform ${Q}ms ease`:"none",p=`${$}--sorting`,g=`${$}--settling`,r=`${$}-item--drag-source`,y=!1,M=-1,w=-1,s=0,m=0,o=0,X0=0,n=!1,v=null,R=0,N=null,V=0,L=0,H=0,d=null;_.methods.set("isSorting",()=>y||t);let J0=(q0)=>{return q0.closest("[data-index]")},c=(q0)=>{let B0=q0.dataset.index;return B0===void 0?-1:+B0},j0=(q0)=>{let B0=q0.getBoundingClientRect(),_0=q0.cloneNode(!0);return _0.className=`${$}-item ${j}`,_0.removeAttribute("data-index"),_0.style.cssText=`position:fixed;pointer-events:none;z-index:10000;width:${B0.width}px;height:${B0.height}px;left:${B0.left}px;top:${B0.top}px;transition:none;will-change:transform`,(B||document.body).appendChild(_0),_0},z=()=>{if(!v)return;let q0=o-L,B0=X0-H;v.style.left=`${q0}px`,v.style.top=`${B0}px`},I=()=>{let q0=_.dataManager.getTotal();if(q0===0)return 0;let B0=D.getBoundingClientRect(),_0=_.scrollController.getScrollTop(),G0=T?o-L-B0.left+D.scrollLeft+_0:X0-H-B0.top+_0,O0=G0+V,F0=E.getOffset(M)+E.getSize(M);if(O0>F0){let L0=E.indexAtOffset(O0),l0=E.getOffset(L0)+E.getSize(L0)/2,p0=O0>l0?L0:L0-1;return Math.min(Math.max(p0,M),q0-1)}let C0=E.getOffset(M);if(G0<C0){let L0=E.indexAtOffset(G0),l0=E.getOffset(L0)+E.getSize(L0)/2,p0=G0<l0?L0:L0+1;return Math.max(Math.min(p0,M),0)}return M},b=()=>{let q0=k.children,B0=V;for(let _0=0;_0<q0.length;_0++){let G0=q0[_0],O0=c(G0);if(O0<0||O0===M)continue;let F0=0;if(w>M){if(O0>M&&O0<=w)F0=-B0}else if(w<M){if(O0>=w&&O0<M)F0=B0}let C0=E.getOffset(O0),L0=Math.round(C0+F0);G0.style.transition=S,G0.style.transform=`${F}(${L0}px)`}},U=()=>{let q0=k.children;for(let B0=0;B0<q0.length;B0++){let _0=q0[B0],G0=c(_0);if(G0>=0)_0.style.transform=`${F}(${Math.round(E.getOffset(G0))}px)`;_0.style.transition=""}},C=()=>{let q0=I();if(q0===w)return;w=q0,b(),A.emit("sort:move",{fromIndex:M,currentIndex:w})},G=!1,u=()=>{let q0=D.getBoundingClientRect();if(T)return o<q0.left||o>q0.right;return X0<q0.top||X0>q0.bottom},f=()=>{let q0=()=>{if(!y)return;let B0=D.getBoundingClientRect(),_0=0,G0=3;if(T){let F0=o-B0.left,C0=B0.right-o;if(F0<X){let L0=Math.min(G0,1-F0/X);_0=-Y*L0*L0}else if(C0<X){let L0=Math.min(G0,1-C0/X);_0=Y*L0*L0}}else{let F0=X0-B0.top,C0=B0.bottom-X0;if(F0<X){let L0=Math.min(G0,1-F0/X);_0=-Y*L0*L0}else if(C0<X){let L0=Math.min(G0,1-C0/X);_0=Y*L0*L0}}let O0=u();if(_0!==0){let F0=_.scrollController.getScrollTop(),C0=E.getTotalSize()-(T?D.clientWidth:D.clientHeight);if(_0<0&&F0<=0||_0>0&&F0>=C0)G=O0;else G=!0,_.scrollController.scrollTo(F0+_0)}else G=O0;R=requestAnimationFrame(q0)};R=requestAnimationFrame(q0)},i=()=>{if(R)cancelAnimationFrame(R),R=0},a=(q0=!1)=>{if(y=!1,n=!1,v&&v.parentNode)v.remove();v=null,N=null;let B0=k.children;for(let G0=0;G0<B0.length;G0++){let O0=B0[G0];O0.classList.remove(r);let F0=c(O0);if(F0>=0)O0.style.transform=`${F}(${Math.round(E.getOffset(F0))}px)`;O0.style.transition=""}i(),O.classList.remove(p),document.body.style.cursor="";let _0=window.getSelection();if(_0)_0.removeAllRanges();if(document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",P),document.removeEventListener("pointercancel",Q0),!q0)_.forceRender()},Y0=(q0)=>{if(_.state.isDestroyed)return;if(y)return;if(t)z0();if(q0.button!==0)return;let B0=q0.target;if(q){if(!B0.closest(q))return}let _0=J0(B0);if(!_0)return;let G0=c(_0);if(G0<0)return;s=q0.clientX,m=q0.clientY,o=q0.clientX,X0=q0.clientY,M=G0,n=!1,N=_0;let O0=_0.getBoundingClientRect();L=q0.clientX-O0.left,H=q0.clientY-O0.top,document.addEventListener("pointermove",x),document.addEventListener("pointerup",P),document.addEventListener("pointercancel",Q0)},x=(q0)=>{if(o=q0.clientX,X0=q0.clientY,!n){let B0=o-s,_0=X0-m;if(Math.sqrt(B0*B0+_0*_0)<W)return;if(n=!0,y=!0,w=M,O.classList.add(p),document.body.style.cursor="grabbing",V=E.getSize(M),N)v=j0(N),N.classList.add(r);let O0=M0();if(O0>=0){let F0=_.dataManager.getItem(O0);d=F0?F0.id:null}else d=null;A.emit("sort:start",{index:M}),f()}if(y){if(q0.preventDefault(),z(),!G)C();else if(u()){if(w!==M)w=M,U()}}},e=(q0,B0)=>{let _0=q0!==B0&&q0>=0&&B0>=0,G0=()=>{if(y=!1,_0){if(O.classList.add(g),A.emit("sort:end",{fromIndex:q0,toIndex:B0}),d!==null)$0(d);a(!0),requestAnimationFrame(()=>{O.classList.remove(g)})}else O.classList.add(g),A.emit("sort:cancel",{originalItems:_.getAllLoadedItems()}),a(!1),requestAnimationFrame(()=>{O.classList.remove(g)})};if(!v){G0();return}let O0=D.getBoundingClientRect(),F0=_.scrollController.getScrollTop(),C0=E.getOffset(B0),L0=Q>0?Q:150;if(v.style.transition=`left ${L0}ms ease, top ${L0}ms ease`,T)v.style.left=`${O0.left-D.scrollLeft+C0-F0}px`,v.style.top=`${O0.top}px`;else v.style.left=`${O0.left}px`,v.style.top=`${O0.top+C0-F0}px`;let l0=!1,p0=()=>{if(l0)return;l0=!0,v?.removeEventListener("transitionend",p0),G0()};v.addEventListener("transitionend",p0),setTimeout(p0,L0+50)},P=(q0)=>{if(!n){document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",P),document.removeEventListener("pointercancel",Q0),N=null;return}q0.preventDefault(),document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",P),document.removeEventListener("pointercancel",Q0),i(),e(M,w)},h=()=>{if(!n)return;document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",P),document.removeEventListener("pointercancel",Q0),i(),U(),e(M,M)},Q0=()=>{h()};k.addEventListener("pointerdown",Y0);let t=!1,V0="",N0=-1,U0=-1,W0=[],M0=()=>{let q0=_.methods.get("_getFocusedIndex");return q0?q0():-1},$0=(q0)=>{let B0=_.methods.get("_focusById");if(B0)B0(q0)},H0=(q0)=>{let B0=T?D.clientWidth:D.clientHeight,_0=_.scrollController.getScrollTop(),G0=N2(q0,E,_0,B0);if(G0!==_0)_.scrollController.scrollTo(_.adjustScrollPosition(G0))},P0=(q0)=>{Z.liveRegion.textContent="",Z.liveRegion.offsetHeight,Z.liveRegion.textContent=q0},E0=(q0)=>{let B0=_.dataManager.getItem(q0);if(!B0)return"";return k.querySelector(`[data-index="${q0}"]`)?.textContent?.trim()||String(B0.id)},w0=()=>String(_.dataManager.getTotal()),D0=(q0)=>{let B0=k.children;for(let _0=0;_0<B0.length;_0++)B0[_0].style.transition=q0},k0=(q0)=>{let B0=_.dataManager.getItem(q0);if(!B0)return;t=!0,V0=B0.id,N0=q0,U0=q0;let _0=_.dataManager.getTotal();W0=[];for(let G0=0;G0<_0;G0++)W0.push(_.dataManager.getItem(G0));O.classList.add(p),A.emit("sort:start",{index:q0}),X2(),P0(`Grabbed ${E0(q0)}. Current position ${q0+1} of ${w0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},b0=()=>{if(!t)return;t=!1;let q0=U0,B0=E0(q0);D0("none"),O.classList.remove(p),I0(),$0(V0),_.forceRender(),P0(`${B0} dropped. Final position ${q0+1} of ${w0()}.`),W0=[],requestAnimationFrame(()=>{D0("")})},z0=()=>{if(!t)return;t=!1;let q0=N0;if(D0("none"),O.classList.remove(p),I0(),U0!==q0)A.emit("sort:cancel",{originalItems:W0});$0(V0),_.forceRender(),H0(q0),P0(`Reorder cancelled. Returned to position ${q0+1} of ${w0()}.`),W0=[],requestAnimationFrame(()=>{D0("")})},u0=(q0)=>{if(!t)return;let B0=_.dataManager.getTotal(),_0=U0+q0;if(_0<0||_0>=B0)return;let G0=U0,O0=_0;D0("none"),A.emit("sort:end",{fromIndex:G0,toIndex:O0}),U0=O0,$0(V0),_.forceRender(),H0(O0),X2(),P0(`${E0(O0)} moved. New position ${O0+1} of ${w0()}.`),requestAnimationFrame(()=>{D0("")})},h0=`${$}-item--kb-sorting`,I0=()=>{let q0=k.querySelectorAll(`.${h0}`);for(let B0=0;B0<q0.length;B0++)q0[B0].classList.remove(h0)},X2=()=>{I0();let q0=k.querySelector(`[data-id="${V0}"]`);if(q0)q0.classList.add(h0)};_.afterRenderBatch.push(()=>{if(t)X2()});let a0=(q0)=>{if(_.state.isDestroyed)return;if(y){if(q0.key==="Escape")q0.preventDefault(),q0.stopImmediatePropagation(),h();return}if(t)switch(q0.key){case" ":case"Enter":q0.preventDefault(),q0.stopImmediatePropagation(),b0();return;case"Escape":q0.preventDefault(),q0.stopImmediatePropagation(),z0();return;case"ArrowUp":case"ArrowLeft":q0.preventDefault(),q0.stopImmediatePropagation(),u0(-1);return;case"ArrowDown":case"ArrowRight":q0.preventDefault(),q0.stopImmediatePropagation(),u0(1);return;default:if(!q0.key.startsWith("F")&&q0.key!=="Tab")q0.preventDefault(),q0.stopImmediatePropagation();return}if(q0.key===" "&&!q0.shiftKey&&!q0.ctrlKey&&!q0.metaKey){let B0=M0();if(B0>=0)q0.preventDefault(),q0.stopImmediatePropagation(),k0(B0)}};O.addEventListener("keydown",a0);let o0=`${$}-sort-instructions`,v0=document.createElement("div");v0.id=o0,v0.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",v0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",O.appendChild(v0),_.afterRenderBatch.push((q0)=>{for(let B0=0;B0<q0.length;B0++){let _0=q0[B0].element;_0.setAttribute("aria-roledescription","sortable item"),_0.setAttribute("aria-describedby",o0)}}),_.afterRenderBatch.push((q0)=>{if(!y)return;for(let B0=0;B0<q0.length;B0++){let{index:_0,element:G0}=q0[B0];if(_0===M)G0.classList.add(r),N=G0;else{G0.classList.remove(r);let O0=0;if(w>M){if(_0>M&&_0<=w)O0=-V}else if(w<M){if(_0>=w&&_0<M)O0=V}let F0=Math.round(E.getOffset(_0)+O0);G0.style.transform=`${F}(${F0}px)`}}}),_.destroyHandlers.push(()=>{if(t)z0();a(),k.removeEventListener("pointerdown",Y0),O.removeEventListener("keydown",a0),v0.remove()})}}};var r1=(J,q)=>{let j=new Map,Q=(Y)=>j.get(Y)??J,X=i0(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=i0(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 i2=()=>{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,B=q.getVirtualTotal(),_=g0(q.rawConfig.padding),Z=e0(_,j),A=r1(Y+W,B),K=q.methods.get("_setSizeCache"),$=q.methods.get("_setConstrainSize");if(!K||!$)throw Error("[vlist/withAutoSize] Incompatible builder version");K(A),$((y)=>A.isMeasured(y));let O=q.scrollController,D=q.state.viewportState,k=new WeakMap,E=0,T=!1,F=2,S=(y)=>{let M=O.getScrollTop(),w=D.containerSize;if(w<=0)return!1;return M>=Math.max(0,y+Z-w)-F},p=()=>{let y=A.getTotalSize(),M=D.containerSize;if(M<=0)return;let w=Math.max(0,y+Z-M);if(w>O.getScrollTop())O.scrollTo(w)},g=()=>{q.updateContentSize(A.getTotalSize())},r=()=>{if(T){let y=q.dom.viewport,M=y.scrollHeight,w=M-y.clientHeight,s=O.getScrollTop(),m=w>0&&s>=w-F,o=q.getVirtualTotal(),X0=o&&D.renderRange.end>=o-1,n=Math.abs(A.getTotalSize()+Z-M),v=m||X0&&w>0&&s>=w-n-F;if(g(),T=!1,v)y.scrollHeight,p(),q.forceRender()}};J=new ResizeObserver((y)=>{if(q.state.isDestroyed)return;let M=!1,w=D.visibleRange.start;for(let N of y){let V=k.get(N.target);if(V===void 0)continue;let L=j?N.borderBoxSize[0].inlineSize:N.borderBoxSize[0].blockSize;if(!A.isMeasured(V)){let H=L+W,d=A.getSize(V);if(A.setMeasuredSize(V,H),M=!0,V<w&&H!==d)E+=H-d;J.unobserve(N.target);let J0=N.target;if(j)J0.style.width=`${L}px`;else J0.style.height=`${L}px`}}if(!M)return;let s=A.getTotalSize();if(A.rebuild(q.getVirtualTotal()),E)O.scrollTo(O.getScrollTop()+E),E=0;let m=S(s),o=q.getVirtualTotal(),X0=o&&D.renderRange.end>=o-1,n=q.dom.viewport,v=n.scrollHeight-n.clientHeight,R=v>0&&O.getScrollTop()>=v-F;if(m||X0||!O.isScrolling()){if(g(),T=!1,m||X0&&R)n.scrollHeight,p()}else T=!0;q.forceRender()}),q.afterRenderBatch.push((y)=>{for(let{index:M,element:w}of y)if(!A.isMeasured(M))k.set(w,M),J.observe(w)}),q.idleHandlers.push(r),q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var fJ=50,hJ=0.1;function s1(J){let q=0,j=0,Q=0;function X(){return Q>0?j/Q:0}function Y(_){if(q=_,_>hJ&&_<fJ)j+=_,Q++}function W(){let _=J.getTotal();if(_===0)return 0;let Z=J.getItemSize();if(Z<=0)return 0;let A=J.getContainerSize();if(A<=0)return 0;let K=J.getScrollPosition(),$=typeof J.getColumns==="function"?J.getColumns():1,D=Math.ceil(_/$)*Z,E=Math.min(D,j2)-A,T=D-A,F=E>0?T/E:1,S=K*F,p=Math.ceil((S+A)/Z);return Math.min(p*$,_)}function B(){let _=J.getTotal(),Z=W();return{progress:_>0?Math.min(100,Math.max(0,Z/_*100)):0,velocity:q,velocityAvg:X(),itemCount:Z,total:_}}return{getState:B,onVelocity:Y}}export{o2 as withTable,n2 as withSortable,s2 as withSnapshots,r2 as withSelection,f2 as withScrollbar,h2 as withScale,p2 as withPage,l2 as withMasonry,x2 as withGroups,c2 as withGrid,i2 as withAutoSize,I2 as withAsync,z2 as vlist,s1 as createStats};
package/dist/internals.js CHANGED
@@ -1 +1 @@
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 y=Q(G,Y?.(G));if(y!==q){let W=G-j;$.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:W}),B=B+1+W,q=y,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:(E)=>{if($.length===0)return{type:"item",dataIndex:E,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let X=f2($,E),Z=$[X];if(E===Z.headerLayoutIndex)return{type:"header",group:Z};let K=E-Z.headerLayoutIndex-1;return{type:"item",dataIndex:Z.firstDataIndex+K,group:Z}},layoutToDataIndex:(E)=>{if($.length===0)return E;let X=f2($,E),Z=$[X];if(E===Z.headerLayoutIndex)return-1;let K=E-Z.headerLayoutIndex-1;return Z.firstDataIndex+K},dataToLayoutIndex:(E)=>{if($.length===0)return E;let X=m2($,E),Z=$[X],K=E-Z.firstDataIndex;return Z.headerLayoutIndex+1+K},getGroupAtLayoutIndex:(E)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let X=f2($,E);return $[X]},getGroupAtDataIndex:(E)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let X=m2($,E);return $[X]},getHeaderHeight:typeof j==="number"?(E)=>j:(E)=>{let X=$[E];if(!X)return 0;return j(X.key,E)},rebuild:(E,X)=>{$=d2(E,Q.getGroupForIndex,X??Y),q=E+$.length}}};var SJ=(J,Q,Y,$,q=0)=>{let j=Y?"width":"height",B=document.createElement("div");return B.className=`${Q}-sticky-header`,B.setAttribute("role","presentation"),B.setAttribute("aria-hidden","true"),B.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(Y?`top:0;bottom:0;left:${q||0}px`:`top:${q||0}px`),B.style[j]=`${$}px`,J.insertBefore(B,J.firstChild),B},a2=(J,Q,Y,$,q,j=!1,B=0,G,y)=>{let W=j?"width":"height",V=j?"height":"width",v=j?"X":"Y",f=(T,U)=>{T.style[W]=`${U}px`},E=y??SJ(J,q,j,0,B),X=()=>{let T=document.createElement("div");return T.className="sticky-group",T.style.position="absolute",T.style.willChange="transform",T.style[V]="100%",T},Z=X(),K=X();E.append(Z,K);let O=Z,P=K,w=Q.groups,S=[],I=[],a=[],c=0,e=()=>{w=Q.groups,c=w.length,S=Array(c),I=Array(c),a=Array(c);let T=G?G():1;for(let U=0;U<c;U++)S[U]=Y.getOffset(w[U].headerLayoutIndex)*T,I[U]=Q.getHeaderHeight(U),a[U]=I[U]*T};e();let J2=-1,t=0,Q2=0,K2=-1,j2=!1,u=0,M=!1,k=(T,U)=>{$(T,U);let H=I[U];return f(T,H),H},z=(T)=>{T.replaceChildren(),T.style.transform=""},_=(T)=>{if(T===J2)return;if(J2=T,t=0,Q2=0,T<0||T>=c){z(O);return}t=k(O,T),Q2=a[T],f(E,t),O.style.transform=""},D=(T)=>{if(T===u)return;u=T;let U=Math.round(T);O.style.transform=`translate${v}(${U}px)`,P.style.transform=`translate${v}(${U+t}px)`},L=()=>{u=0,O.style.transform="",P.style.transform=""},m=()=>{if(!M)return;let T=O;O=P,P=T,J2=K2,t=J2>=0?I[J2]:0,Q2=J2>=0?a[J2]:0,f(E,t),z(P),K2=-1,M=!1,L()},r=()=>{if(!M)return;z(P),K2=-1,M=!1,L()},l=!!y,o=()=>{if(j2)return;if(j2=!0,l)E.style.visibility="";else E.style.display=""},N=()=>{if(!j2)return;if(j2=!1,l)E.style.visibility="hidden";else E.style.display="none";z(O),J2=-1,t=0,Q2=0,r()},C=(T)=>{if(c===0){N();return}if(T<S[0]){N();return}let U=0,H=c-1;while(U<H){let x=U+H+1>>>1;if(S[x]+a[x]<=T)U=x;else H=x-1}if(!j2)o();_(U);let b=U+1;if(b<c){let x=S[b]-T;if(x<=0&&x>-Q2){if(K2!==b||!M)K2=b,k(P,b),M=!0;let p=Q2>0?x/Q2*t:x;D(p)}else if(x<=-Q2){if(M)m()}else if(M)r()}else if(M)r()},F=()=>{e();let T=J2;if(J2=-1,t=0,Q2=0,T>=0)_(T)},h=()=>{E.remove(),J2=-1,t=0,Q2=0,K2=-1,j2=!1,M=!1};if(!y)E.style.display="none";return{update:C,refresh:F,show:o,hide:N,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=(X)=>{if(X<=0)return 0;if(!$)return Math.ceil(X/Q);let Z=0,K=0,O=0;for(let P=0;P<X;P++)if($(P)){if(O++,K)Z++,K=0;Z++,K=0}else if(K++,K>=Q)Z++,K=0;if(K)Z++;return Z},B=(X)=>{return q.row=G(X),q.col=y(X),q},G=(X)=>{if(!$)return Math.floor(X/Q);let Z=0,K=0;for(let O=0;O<=X;O++)if($(O)){if(K)Z++,K=0;if(O===X)return Z;Z++,K=0}else{if(O===X)return Z;if(K++,K>=Q)Z++,K=0}return console.warn(`⚠️ getRow(${X}) fell through - returning ${Z}`),Z},y=(X)=>{if(!$)return X%Q;if($(X))return 0;let Z=0;for(let K=0;K<=X;K++)if($(K))Z=0;else{if(K===X)return Z;if(Z++,Z>=Q)Z=0}return Z},W=(X,Z,K)=>{if(K<=0)return{start:0,end:-1};if(!$){let I=Math.max(0,X*Q),a=Math.min(K-1,(Z+1)*Q-1);return{start:I,end:a}}let O=-1,P=-1,w=0,S=0;for(let I=0;I<K;I++){if($(I)){if(S)w++,S=0;if(w>=X&&w<=Z){if(O<0)O=I;P=I}w++,S=0}else{if(w>=X&&w<=Z){if(O<0)O=I;P=I}if(S++,S>=Q)w++,S=0}if(w>Z&&!S)break}if(O<0)return{start:0,end:-1};return{start:O,end:P}},V=(X,Z,K)=>{if(Z<0||Z>=Q)return-1;let O=X*Q+Z;if(O<0||O>=K)return-1;return O},v=(X)=>{let Z=(Q-1)*Y;return Math.max(0,(X-Z)/Q)};return{get columns(){return Q},get gap(){return Y},update:(X)=>{if(X.columns!==void 0)Q=Math.max(1,Math.floor(X.columns));if(X.gap!==void 0)Y=X.gap;if(X.isHeaderFn!==void 0)$=X.isHeaderFn},getTotalRows:j,getPosition:B,getRow:G,getCol:y,getItemRange:W,getItemIndex:V,getColumnWidth:v,getColumnOffset:(X,Z)=>{let K=v(Z);return X*(K+Y)}}};var G2=16000000;var n2="x",o2=20,S2="_isPlaceholder",O2="__placeholder_";var A2=(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,y=Y-1;while(G<y){let W=G+y+1>>>1;if($[W]<=B)G=W;else y=W-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||$>G2,j=$>G2?G2:$,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 E=Y.indexAtOffset(J),X=Y.indexAtOffset(J+Q);if(X<$-1)X++;return j.start=Math.max(0,E),j.end=Math.min($-1,Math.max(0,X)),j}let{virtualSize:B}=q,G=J/B,y=Y.getTotalSize(),W=G*y,V=Y.indexAtOffset(W),v=h2(Y,Math.max(0,V),Q,$),f=V+v;return j.start=Math.max(0,V),j.end=Math.min($-1,Math.max(0,f)),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),$},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:G}=j,y=Q/G,W=Y.getTotalSize(),V=y*W;return Y.getOffset(J)-V},BJ=(J,Q,Y,$,q,j="start")=>{if($===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/$*q.virtualSize;let V=Q.getSize(J);switch(j){case"center":B-=(Y-V)/2*q.ratio;break;case"end":B-=(Y-V)*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 y=q.virtualSize-Y;return Math.max(0,Math.min(B,y))},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>G2;return Q.getTotalSize()>G2},UJ=(J)=>{if(J<=0)return 0;return Math.floor(G2/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,y=!1,W,V)=>{let v=hJ(),f=new Map,E=j,X=!1,Z=0,K="",O=-1,P={selected:!1,focused:!1},w=(N,C)=>{return P.selected=N,P.focused=C,P},S=`${q}-item ${q}-grid-item`,I=`${q}-group-header`,a=`${q}-item--selected`,c=`${q}-item--focused`,e=`${q}-item--placeholder`,J2=`${q}-item--replaced`,t=(N,C)=>{if(typeof C==="string")N.innerHTML=C;else N.replaceChildren(C)},Q2=(N,C,F)=>{N.classList.toggle(a,C),N.classList.toggle(c,F)},K2=(N,C)=>{let F=$.getRow(N);if(C?.compression?.isCompressed)return F2(F,C.scrollPosition,Y,C.totalItems,C.containerSize,C.compression,C.rangeStart);return Y.getOffset(F)},j2=(N,C)=>{let F=$.getCol(N),T=X&&F===0?0:$.getColumnOffset(F,E),U;if(X){let H=$.getRow(N),b=0,x=-1;for(let p=0;p<N;p++){let g=$.getRow(p);if(g<H&&g!==x){let A=Y.getSize(p);b+=A,x=g}}U=b}else U=K2(N,C);if(y)return`translate(${Math.round(U)}px, ${Math.round(T)}px)`;return`translate(${Math.round(T)}px, ${Math.round(U)}px)`},u=(N,C)=>{let F=N.classList.contains(I),h=F?E:$.getColumnWidth(E),T;if(X||F)T=Y.getSize(C)-$.gap;else{let U=$.getRow(C);T=Y.getSize(U)-$.gap}if(y)N.style.width=`${T}px`,N.style.height=`${h}px`;else N.style.width=`${h}px`,N.style.height=`${T}px`},M=(N,C,F,h,T)=>{let U=v.acquire(),H=!!C.__groupHeader,b=w(F,h);if(U.className=H?I:S,U.dataset.index=String(N),U.dataset.id=String(C.id),U.dataset.row=String($.getRow(N)),U.dataset.col=String($.getCol(N)),H)U.setAttribute("role","presentation"),U.removeAttribute("aria-selected"),U.removeAttribute("aria-setsize"),U.removeAttribute("aria-posinset"),U.removeAttribute("id");else if(V!==!1){if(U.setAttribute("role","option"),U.ariaSelected=String(F),G)U.id=`${G}-item-${N}`;if(B){let g=B();if(g!==O)O=g,K=String(g);U.setAttribute("aria-setsize",K);let A=W?W(N):N+1;U.setAttribute("aria-posinset",String(A))}}else if(U.setAttribute("role","listitem"),U.removeAttribute("aria-selected"),B){let g=B();if(g!==O)O=g,K=String(g);U.setAttribute("aria-setsize",K);let A=W?W(N):N+1;U.setAttribute("aria-posinset",String(A))}u(U,N);let x=Q(C,N,b);if(t(U,x),String(C.id).startsWith(O2))U.classList.add(e);return Q2(U,F,h),U.style.transform=T,{element:U,lastItemId:C.id,lastSelected:F,lastFocused:h,lastTransform:T,lastSeenFrame:Z}},k=(N,C,F,h,T)=>{if(Z++,C.start===0&&N.length)X=y2(N[0]);for(let[b,x]of f)if(b>=C.start&&b<=C.end)x.lastSeenFrame=Z;else if(Z-x.lastSeenFrame>xJ)v.release(x.element),f.delete(b);let U=!1;if(B){let b=B();if(b!==O)O=b,K=String(b),U=!0}let H=null;for(let b=C.start;b<=C.end;b++){let x=b-C.start,p=N[x];if(!p){console.warn(`⚠️ RENDER: Missing item at index ${b} (range: ${C.start}-${C.end}, items.length: ${N.length})`);continue}let g=F.has(p.id),A=b===h,R=f.get(b);if(R){let n=R.lastItemId!==p.id,d=R.lastSelected!==g,B2=R.lastFocused!==A;if(n){let q2=String(R.lastItemId),N2=String(p.id),Y2=q2.startsWith(O2),s=N2.startsWith(O2);if(!s&&A2(F,b,p.id))g=!0;let Z2=w(g,A),V2=Q(p,b,Z2);if(t(R.element,V2),R.element.dataset.id=N2,R.element.dataset.row=String($.getRow(b)),R.element.dataset.col=String($.getCol(b)),u(R.element,b),R.element.classList.toggle(e,s),Y2&&!s)R.element.classList.add(J2),setTimeout(()=>R.element.classList.remove(J2),300);if(R.lastItemId=p.id,!p.__groupHeader){let M2=W?W(b):b+1;R.element.setAttribute("aria-posinset",String(M2))}}if(n||d||B2)Q2(R.element,g,A),R.element.ariaSelected=String(g),R.lastSelected=g,R.lastFocused=A;let $2=j2(b,T);if(R.lastTransform!==$2)R.element.style.transform=$2,R.lastTransform=$2;if(U&&!p.__groupHeader)R.element.setAttribute("aria-setsize",K)}else{if(A2(F,b,p.id))g=!0;let n=j2(b,T),d=M(b,p,g,A,n);if(!H)H=document.createDocumentFragment();H.appendChild(d.element),f.set(b,d)}}if(H)J.appendChild(H)},z=(N)=>{for(let[C,F]of f){let h=j2(C,N);if(F.lastTransform!==h)F.element.style.transform=h,F.lastTransform=h}},_=(N,C,F,h)=>{let T=f.get(N);if(!T)return;let U=w(F,h),H=Q(C,N,U);t(T.element,H),Q2(T.element,F,h),T.element.dataset.id=String(C.id),T.element.ariaSelected=String(F),u(T.element,N),T.lastItemId=C.id,T.lastSelected=F,T.lastFocused=h},D=(N,C,F)=>{let h=f.get(N);if(!h)return;let T=h.lastSelected!==C,U=h.lastFocused!==F;if(T||U)Q2(h.element,C,F),h.lastSelected=C,h.lastFocused=F},L=(N)=>{return f.get(N)?.element},m=(N)=>{if(Math.abs(N-E)<1)return;E=N;for(let[C,F]of f){u(F.element,C);let h=j2(C);F.element.style.transform=h,F.lastTransform=h}},r=()=>{P2(J,f.keys(),(N)=>f.get(N)?.element)},l=()=>{for(let[,N]of f)v.release(N.element);f.clear()};return{render:k,updatePositions:z,updateItem:_,updateItemClasses:D,getElement:L,sortDOM:r,updateContainerWidth:m,clear:l,destroy:()=>{l(),v.clear()}}};var _J=(J,Q=50,Y=1/0,$=!0)=>{let q=J,j=[],B=0,G=()=>{j=q.map((K,O)=>({def:K,index:O,width:0,minWidth:gJ(K.minWidth??Q,1),maxWidth:K.maxWidth??Y,resizable:K.resizable??$,offset:0}))},y=(K)=>{if(j.length===0){B=0;return}let O=0,P=0;for(let w=0;w<j.length;w++){let S=j[w],I=S.def;if(I.width!==void 0)S.width=x2(I.width,S.minWidth,S.maxWidth),O+=S.width;else P++}if(P){let S=Math.max(0,K-O)/P;for(let I=0;I<j.length;I++){let a=j[I];if(a.def.width===void 0)a.width=x2(S,a.minWidth,a.maxWidth)}}W()},W=()=>{let K=0;for(let O=0;O<j.length;O++){let P=j[O];P.offset=K,K+=P.width}B=K},V=(K,O)=>{if(K<0||K>=j.length)return 0;let P=j[K];if(!P.resizable)return P.width;let w=x2(O,P.minWidth,P.maxWidth);return P.width=w,W(),w},v=(K)=>{return j[K]},f=(K)=>{if(j.length===0)return;if(K<0)return j[0];if(K>=B)return j[j.length-1];let O=0,P=j.length-1;while(O<P){let w=O+P>>>1,S=j[w];if(K<S.offset)P=w-1;else if(K>=S.offset+S.width)O=w+1;else return S}return j[O]},E=(K)=>{if(K<0||K>=j.length)return 0;return j[K].offset},X=(K)=>{if(K<0||K>=j.length)return 0;return j[K].width},Z=(K)=>{q=K,G()};return G(),{get columns(){return j},get totalWidth(){return B},resolve:y,updateColumns:Z,resizeColumn:V,getColumn:v,getColumnAtX:f,getColumnOffset:E,getColumnWidth:X}},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 y=document.createElement("div");y.className=`${Y}-table-header-scroll`,y.setAttribute("role","presentation"),G.appendChild(y),B.appendChild(G),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let W=[],V=[],v=!0,f=null,E="asc",X=null,Z=!1,K=-1,O=0,P=0,w=0,S=(_,D)=>{let L=document.createElement("div");L.className=`${Y}-table-header-cell`,L.setAttribute("role","columnheader"),L.setAttribute("aria-colindex",String(D+1)),L.setAttribute("tabindex",D===0?"0":"-1"),L.dataset.columnKey=_.def.key;let m=_.def.align;if(m==="center")L.classList.add(`${Y}-table-header-cell--center`);else if(m==="right")L.classList.add(`${Y}-table-header-cell--right`);let r=document.createElement("div");r.className=`${Y}-table-header-content`;let l=_.def.header?_.def.header(_.def):_.def.label;if(typeof l==="string")r.textContent=l;else r.appendChild(l);if(L.appendChild(r),_.def.sortable){let o=document.createElement("span");o.className=`${Y}-table-header-sort`,o.setAttribute("aria-hidden","true"),L.appendChild(o),V.push(o),L.classList.add(`${Y}-table-header-cell--sortable`)}else V.push(null);if(_.resizable){let o=document.createElement("div");o.className=`${Y}-table-header-resize`,o.dataset.resizeIndex=String(D),L.appendChild(o)}return L},I=(_)=>{X=_,y.textContent="",W=[],V=[];let D=_.columns;for(let L=0;L<D.length;L++){let m=D[L],r=S(m,L);W.push(r),y.appendChild(r)}if(a(_),f)c(f,E)},a=(_)=>{X=_;let D=_.columns;y.style.width=`${_.totalWidth}px`;for(let L=0;L<W.length&&L<D.length;L++){let m=W[L],r=D[L];m.style.width=`${r.width}px`}},c=(_,D)=>{if(f=_,E=D,!X)return;let L=X.columns;for(let m=0;m<V.length&&m<L.length;m++){let r=V[m];if(!r)continue;if(L[m].def.key===_)r.textContent=D==="asc"?"▲":"▼",r.style.opacity="0.7",W[m].setAttribute("aria-sort",D==="asc"?"ascending":"descending");else r.textContent="",r.style.opacity="0",W[m].removeAttribute("aria-sort")}},e=(_)=>{y.style.transform=`translateX(${-_}px)`},J2=(_)=>{let D=_.target;if(!D.dataset.resizeIndex)return;if(_.preventDefault(),_.stopPropagation(),K=+D.dataset.resizeIndex,!X)return;let L=X.getColumn(K);if(!L?.resizable)return;Z=!0,O=_.clientX,P=L.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",t),D.addEventListener("pointerup",Q2),D.addEventListener("pointercancel",Q2)},t=(_)=>{if(!Z||!X)return;let D=_.clientX-O;if(Math.abs(D)<1)return;let L=Math.max(0,P+D);$(K,L)},Q2=(_)=>{if(!Z)return;let D=_.target;D.removeEventListener("pointermove",t),D.removeEventListener("pointerup",Q2),D.removeEventListener("pointercancel",Q2);try{D.releasePointerCapture(_.pointerId)}catch{}D.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",Z=!1,K=-1},K2=(_)=>{let D=_.target;if(D.dataset.resizeIndex)return;if(Z)return;let L=D;while(L&&!L.dataset.columnKey)if(L=L.parentElement,L===G||L===null)return;let m=L.dataset.columnKey;if(!X)return;let r=X.columns,l=-1;for(let N=0;N<r.length;N++)if(r[N].def.key===m){l=N;break}if(l===-1)return;let o=r[l];if(j)j({key:m,index:l,event:_});if(o.def.sortable&&q){let N;if(f===m)N=E==="asc"?"desc":null;else N="asc";q({key:m,index:l,direction:N})}},j2=(_)=>{if(_<0||_>=W.length)return;W[w]?.setAttribute("tabindex","-1"),w=_;let D=W[w];D.setAttribute("tabindex","0"),D.focus()},u=(_)=>{let D=_.key;if(D==="ArrowRight"){if(_.ctrlKey||_.metaKey){if(!X)return;let L=X.getColumn(w);if(L?.resizable)$(w,L.width+10),_.preventDefault()}else if(w<W.length-1)j2(w+1),_.preventDefault();_.stopPropagation();return}if(D==="ArrowLeft"){if(_.ctrlKey||_.metaKey){if(!X)return;let L=X.getColumn(w);if(L?.resizable)$(w,L.width-10),_.preventDefault()}else if(w>0)j2(w-1),_.preventDefault();_.stopPropagation();return}if(D==="Home"){j2(0),_.preventDefault(),_.stopPropagation();return}if(D==="End"){j2(W.length-1),_.preventDefault(),_.stopPropagation();return}if(D==="Enter"||D===" "){if(!X)return;let L=X.getColumn(w);if(L?.def.sortable&&q){let m;if(f===L.def.key)m=E==="asc"?"desc":null;else m="asc";q({key:L.def.key,index:w,direction:m}),_.preventDefault()}_.stopPropagation();return}if(D==="ArrowDown"){J.focus(),_.preventDefault(),_.stopPropagation();return}};return G.addEventListener("pointerdown",J2),G.addEventListener("click",K2),G.addEventListener("keydown",u),{element:G,update:a,updateSort:c,rebuild:I,show:()=>{if(v)return;v=!0,G.style.display=""},hide:()=>{if(!v)return;v=!1,G.style.display="none"},destroy:()=>{G.removeEventListener("pointerdown",J2),G.removeEventListener("click",K2),G.removeEventListener("keydown",u),J.style.removeProperty("--vlist-table-header-height"),B.remove(),W=[],V=[],X=null,v=!1},syncScroll:e}};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}}},VJ=(J,Q,Y,$,q,j,B,G,y)=>{let W=uJ(),V=new Map,v=-1,f=Y,E=null,X=null,Z=null,K=(U,H)=>{X=U,Z=H},O=(U,H)=>{H?U.setAttribute("aria-selected","true"):U.removeAttribute("aria-selected")},P=(U,H,b,x)=>{U.setAttribute("role",H),U.setAttribute("data-id",String(b)),U.setAttribute("data-index",String(x))},w=(U)=>String(U).startsWith("__placeholder_"),S=`${q}-item ${q}-table-row`,I=`${q}-item--selected`,a=`${q}-item--focused`,c=`${q}-table-cell`,e=`${q}-table-cell--center`,J2=`${q}-table-cell--right`,t=`${q}-item--odd`,Q2=`${q}-item--placeholder`,K2=`${q}-item--replaced`,j2=`${q}-item ${q}-table-row ${q}-table-group-header`,u=`${q}-table-group-header-content`,M=(U,H,b,x,p=!1)=>{if(b.def.cell){let g=b.def.cell(H,b.def,x);if(typeof g==="string")U.innerHTML=g;else U.replaceChildren(g)}else{let g=H[b.def.key],A=g!=null?String(g):"";if(p&&A)U.innerHTML=`<span>${A}</span>`;else U.textContent=A}},k=(U,H,b,x,p=!1)=>{let g=S;if(G){if(E){let A=E(H);if(A>=0&&(A&1)===1)g+=` ${t}`}else if((H&1)===1)g+=` ${t}`}if(p)g+=` ${Q2}`;if(b)g+=` ${I}`;if(x)g+=` ${a}`;U.className=g},z=(U,H,b)=>{if(b?.compression?.isCompressed)return Math.round(F2(U,b.scrollPosition,H,b.totalItems,b.containerSize,b.compression,b.rangeStart));return H.getOffset(U)},_=(U,H)=>{let b=H.def.align;if(b==="center")U.classList.add(e),U.classList.remove(J2);else if(b==="right")U.classList.add(J2),U.classList.remove(e);else U.classList.remove(e,J2)},D=(U,H)=>{let x=f.columns.length;if(H.length===x)return H;let p=[];for(let g=0;g<x;g++){let A;if(g<H.length)A=H[g];else A=document.createElement("div"),A.className=c,U.appendChild(A);p.push(A)}for(let g=x;g<H.length;g++)H[g].remove();return p},L=(U,H,b,x)=>{let p=W.acquire(),g=U,A=b.getSize(H),R=z(H,b,x);p.style.cssText=`width:${f.totalWidth}px;height:${A}px;transform:translateY(${R}px)`,p.className=j2,P(p,"presentation",U.id,H),p.removeAttribute("aria-selected"),p.removeAttribute("aria-rowindex"),p.replaceChildren();let n=document.createElement("div");if(n.className=u,Z){let d=Z(g.groupKey,g.groupIndex);if(typeof d==="string")n.innerHTML=d;else n.appendChild(d)}return p.appendChild(n),{element:p,cells:[],index:H,isGroupHeader:!0,lastItemId:U.id,lastSelected:!1,lastFocused:!1,lastOffset:R,lastHeight:A}},m=(U,H,b,x,p,g)=>{let A=W.acquire(),R=p.getSize(H),n=z(H,p,g),d=w(U.id);A.style.cssText=`width:${f.totalWidth}px;height:${R}px;transform:translateY(${n}px)`,k(A,H,b,x,d),P(A,"row",U.id,H),A.id=`${j}-item-${H}`,A.setAttribute("aria-rowindex",String(H+2)),O(A,b);let B2=D(A,[]),$2=f.columns;for(let q2=0;q2<B2.length&&q2<$2.length;q2++){let N2=B2[q2],Y2=$2[q2];N2.style.cssText=`left:${Y2.offset}px;width:${Y2.width}px`,N2.setAttribute("role","gridcell"),N2.setAttribute("aria-colindex",String(q2+1)),_(N2,Y2),M(N2,U,Y2,H,d)}return{element:A,cells:B2,index:H,isGroupHeader:!1,lastItemId:U.id,lastSelected:b,lastFocused:x,lastOffset:n,lastHeight:R}},r=(U,H,b,x,p)=>{for(let[d,B2]of V)if(d<H.start||d>H.end)W.release(B2.element),V.delete(d);let g=!1,A=B();if(A!==v)v=A,g=!0;let R=null,n=Q();E=typeof G==="string"&&y?y():null;for(let d=H.start;d<=H.end;d++){let B2=d-H.start,$2=U[B2];if(!$2)continue;let q2=b.has($2.id),N2=d===x,Y2=X?X($2):!1,s=V.get(d);if(s){if(s.isGroupHeader!==Y2){W.release(s.element),V.delete(d);let Z2=Y2?L($2,d,n,p):m($2,d,q2,N2,n,p);if(V.set(d,Z2),!R)R=document.createDocumentFragment();R.appendChild(Z2.element);continue}if(Y2){if(s.lastItemId!==$2.id){let M2=$2,_2=s.element.firstElementChild;if(_2&&Z){let i=Z(M2.groupKey,M2.groupIndex);if(typeof i==="string")_2.innerHTML=i;else _2.replaceChildren(i)}s.element.setAttribute("data-id",String($2.id)),s.lastItemId=$2.id}let V2=z(d,n,p);if(s.lastOffset!==V2)s.lastOffset=V2,s.element.style.transform=`translateY(${V2}px)`;let U2=n.getSize(d);if(s.lastHeight!==U2)s.lastHeight=U2,s.element.style.height=`${U2}px`}else{let Z2=s.lastItemId!==$2.id,V2=s.lastSelected!==q2,U2=s.lastFocused!==N2;if(Z2){let i=s.lastItemId!=null&&w(s.lastItemId),X2=w($2.id);if(!X2&&A2(b,d,$2.id))q2=!0;let D2=f.columns;for(let W2=0;W2<s.cells.length&&W2<D2.length;W2++)M(s.cells[W2],$2,D2[W2],d,X2);if(k(s.element,d,q2,N2,X2),s.element.setAttribute("data-id",String($2.id)),O(s.element,q2),i&&!X2)s.element.classList.add(K2),setTimeout(()=>{s.element.classList.remove(K2)},300);s.lastItemId=$2.id,s.lastSelected=q2,s.lastFocused=N2}else if(V2||U2)k(s.element,d,q2,N2,w($2.id)),O(s.element,q2),s.lastSelected=q2,s.lastFocused=N2;let M2=z(d,n,p);if(s.lastOffset!==M2)s.lastOffset=M2,s.element.style.transform=`translateY(${M2}px)`;let _2=n.getSize(d);if(s.lastHeight!==_2)s.lastHeight=_2,s.element.style.height=`${_2}px`;if(g)s.element.setAttribute("aria-rowindex",String(d+2))}}else{if(A2(b,d,$2.id))q2=!0;let Z2=Y2?L($2,d,n,p):m($2,d,q2,N2,n,p);if(V.set(d,Z2),!R)R=document.createDocumentFragment();R.appendChild(Z2.element)}}if(R)J.appendChild(R)},l=(U)=>{let H=Q();for(let[b,x]of V){let p=z(b,H,U);if(x.lastOffset!==p)x.lastOffset=p,x.element.style.transform=`translateY(${p}px)`}},o=(U,H,b,x)=>{let p=V.get(U);if(!p)return;if(p.isGroupHeader)return;let g=f.columns;for(let A=0;A<p.cells.length&&A<g.length;A++)M(p.cells[A],H,g[A],U);p.element.setAttribute("data-id",String(H.id)),p.lastItemId=H.id,k(p.element,U,b,x),O(p.element,b),p.lastSelected=b,p.lastFocused=x},N=(U,H,b)=>{let x=V.get(U);if(!x)return;if(x.isGroupHeader)return;let p=x.lastSelected!==H,g=x.lastFocused!==b;if(p||g)k(x.element,U,H,b),O(x.element,H),x.lastSelected=H,x.lastFocused=b},C=(U)=>{f=U;let H=U.columns;for(let[,b]of V)if(b.element.style.width=`${U.totalWidth}px`,b.cells.length>0)for(let x=0;x<b.cells.length&&x<H.length;x++){let p=b.cells[x],g=H[x];p.style.left=`${g.offset}px`,p.style.width=`${g.width}px`}},F=(U)=>{return V.get(U)?.element},h=()=>{for(let[,U]of V)W.release(U.element);V.clear(),v=-1};return{render:r,updatePositions:l,updateItem:o,updateItemClasses:N,getElement:F,updateColumnLayout:C,setGroupHeaderFn:K,clear:h,destroy:()=>{h(),W.clear()}}};var WJ=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.containerSize,q=0,j=[],B=()=>{let Z=(Q-1)*Y;q=Math.max(0,($-Z)/Q),j=Array(Q);let K=q+Y;for(let O=0;O<Q;O++)j[O]=O*K};B();let G=[],y=0,W=[],V=(Z,K)=>{if(Z<=0)return y=0,G=[],[];let O=Array(Q).fill(0),P=Array(Q);for(let I=0;I<Q;I++)P[I]=[];let w=Array(Z);for(let I=0;I<Z;I++){let a=0,c=O[0];for(let t=1;t<Q;t++){let Q2=O[t];if(Q2<c)c=Q2,a=t}let e=K(I),J2=O[a];w[I]={index:I,x:j[a],y:J2,lane:a,size:e,crossSize:q},P[a].push(I),O[a]=J2+e+Y}G=P;let S=0;for(let I=0;I<Q;I++){let a=O[I],c=a>0?a-Y:0;if(c>S)S=c}return y=S,w},v=(Z)=>{if(Z.length===0)return y;if(y)return y;let K=Array(Q).fill(0);for(let P of Z){let w=P.y+P.size,S=K[P.lane];if(w>S)K[P.lane]=w}let O=0;for(let P=0;P<Q;P++)if(K[P]>O)O=K[P];return O},f=(Z,K,O)=>{if(Z.length===0||O<=K)return W.length=0,W;if(G.length===0||G.length!==Q)return E(Z,K,O);W.length=0;for(let P=0;P<Q;P++){let w=G[P],S=w.length;if(!S)continue;let I=0,a=S;while(I<a){let c=I+a>>>1,e=Z[w[c]];if(e.y+e.size<=K)I=c+1;else a=c}for(let c=I;c<S;c++){let e=Z[w[c]];if(e.y>=O)break;W.push(e)}}return W},E=(Z,K,O)=>{W.length=0;for(let P of Z)if(P.y+P.size>K&&P.y<O)W.push(P);return W};return{get columns(){return Q},get gap(){return Y},get containerSize(){return $},update:(Z)=>{let K=!1;if(Z.columns!==void 0){let O=Math.max(1,Math.floor(Z.columns));if(O!==Q)Q=O,K=!0}if(Z.gap!==void 0&&Z.gap!==Y)Y=Z.gap,K=!0;if(Z.containerSize!==void 0&&Z.containerSize!==$)$=Z.containerSize,K=!0;if(K)B()},calculateLayout:V,getTotalSize:v,getVisibleItems:f}};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,MJ=(J,Q,Y,$=!1,q,j,B,G)=>{let y=mJ(),W=new Map,V=new Set,v=0,f="",E=-1,X={selected:!1,focused:!1},Z=(u,M)=>{return X.selected=u,X.focused=M,X},K=`${Y}-item ${Y}-masonry-item`,O=`${Y}-group-header`,P=`${Y}-item--selected`,w=`${Y}-item--focused`,S=(u,M)=>{if(typeof M==="string")u.innerHTML=M;else u.replaceChildren(M)},I=(u,M,k)=>{u.classList.toggle(P,M),u.classList.toggle(w,k)},a=(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)`},c=(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`},e=(u,M,k,z,_)=>{let D=y.acquire(),L=M.__groupHeader,m=Z(z,_);if(D.className=L?O:K,D.dataset.index=String(u),D.dataset.id=String(M.id),D.dataset.lane=String(k.lane),L)D.setAttribute("role","presentation"),D.removeAttribute("aria-selected"),D.removeAttribute("aria-setsize"),D.removeAttribute("aria-posinset"),D.removeAttribute("id");else if(G!==!1){if(D.setAttribute("role","option"),D.ariaSelected=String(z),j)D.id=`${j}-item-${u}`;if(q){let l=q();if(l!==E)E=l,f=String(l);D.setAttribute("aria-setsize",f);let o=B?B(u):u+1;D.setAttribute("aria-posinset",String(o))}}else if(D.setAttribute("role","listitem"),D.removeAttribute("aria-selected"),q){let l=q();if(l!==E)E=l,f=String(l);D.setAttribute("aria-setsize",f);let o=B?B(u):u+1;D.setAttribute("aria-posinset",String(o))}c(D,k);let r=Q(M,u,m);return S(D,r),I(D,z,_),a(D,k),{element:D,lastItemId:M.id,lastSelected:z,lastFocused:_,lastY:k.y,lastX:k.x,lastSize:k.size,lastCrossSize:k.crossSize,lastSeenFrame:v}},J2=(u,M,k,z)=>{v++,V.clear();for(let D=0;D<M.length;D++)V.add(M[D].index);for(let[D,L]of W)if(V.has(D))L.lastSeenFrame=v;else if(v-L.lastSeenFrame>dJ)y.release(L.element),W.delete(D);let _=null;for(let D=0;D<M.length;D++){let L=M[D],m=L.index,r=u(m);if(!r)continue;let l=k.has(r.id),o=m===z,N=W.get(m);if(N){let C=N.lastItemId!==r.id,F=N.lastSelected!==l,h=N.lastFocused!==o,T=N.lastY!==L.y||N.lastX!==L.x,U=N.lastSize!==L.size||N.lastCrossSize!==L.crossSize;if(C){let H=Z(l,o),b=Q(r,m,H);if(S(N.element,b),N.element.dataset.id=String(r.id),N.lastItemId=r.id,!r.__groupHeader){let p=B?B(m):m+1;N.element.setAttribute("aria-posinset",String(p))}}if(C||F||h)I(N.element,l,o),N.element.ariaSelected=String(l),N.lastSelected=l,N.lastFocused=o;if(U)c(N.element,L),N.lastSize=L.size,N.lastCrossSize=L.crossSize;if(T)a(N.element,L),N.lastY=L.y,N.lastX=L.x}else{let C=e(m,r,L,l,o);if(!_)_=document.createDocumentFragment();_.appendChild(C.element),W.set(m,C)}}if(_)J.appendChild(_)},t=()=>{for(let u of W.values())y.release(u.element);W.clear(),J.innerHTML=""};return{render:J2,getElement:(u)=>W.get(u)?.element,updateItemClasses:(u,M,k)=>{let z=W.get(u);if(!z)return;let _=z.lastSelected!==M,D=z.lastFocused!==k;if(_||D)I(z.element,M,k),z.lastSelected=M,z.lastFocused=k},sortDOM:()=>{P2(J,W.keys(),(u)=>W.get(u)?.element)},clear:t,destroy:()=>{t(),y.clear()}}};var GJ=(J,Q)=>{let Y=new Map,$=(j)=>Y.get(j)??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},EJ=(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),$},AJ=(J,Q,Y,$,q,j)=>{if($===0)return 0;let B=Math.max(0,Math.min(J,$-1)),G=Q.getOffset(B),y=Q.getSize(B),W=Q.getTotalSize(),V=Math.max(0,W-Y),v;switch(j){case"center":v=G-Y/2+y/2;break;case"end":v=G-Y+y;break;case"start":default:v=G;break}return Math.max(0,Math.min(v,V))},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=AJ)=>{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(y){console.error(`[vlist] Error in event handler for "${String(j)}":`,y)}})},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,y=(M)=>{let k=j.get(M);if(!k)k={items:Array(Q),count:0,lastAccess:Date.now()},j.set(M,k);else k.lastAccess=Date.now();return k},W=(M)=>{return Math.floor(M/Q)},V=(M)=>{return M%Q},v=()=>B,f=(M)=>{B=M},E=(M)=>{if(M<0||M>=B)return;let k=W(M),z=j.get(k);if(!z)return;return z.items[V(M)]},X=(M)=>{if(M<0||M>=B)return!1;let k=W(M),z=j.get(k);if(!z)return!1;return z.items[V(M)]!==void 0},Z=(M,k)=>{let z=W(M),_=y(z),D=V(M),L=_.items[D]===void 0;if(_.items[D]=k,L)_.count++,G++;if(M>=B)B=M+1},K=(M,k)=>{for(let z=0;z<k.length;z++){let _=k[z];if(_!==void 0)Z(M+z,_)}},O=(M)=>{if(M<0||M>=B)return!1;let k=W(M),z=j.get(k),_=V(M);if(!(z!==void 0&&z.items[_]!==void 0))return!1;let L=k,m=Array.from(j.keys()).filter((l)=>l>=L).sort((l,o)=>l-o),r=[];for(let l of m){let o=j.get(l),N=l*Q;for(let C=0;C<Q;C++){if(o.items[C]===void 0)continue;let F=N+C;if(F<=M)continue;r.push({oldIndex:F,item:o.items[C]})}}if(z.items[_]=void 0,z.count--,G--,z.count===0)j.delete(k);for(let{oldIndex:l}of r){let o=W(l),N=j.get(o);if(!N)continue;let C=V(l);if(N.items[C]!==void 0){if(N.items[C]=void 0,N.count--,G--,N.count===0)j.delete(o)}}for(let{oldIndex:l,item:o}of r){let N=l-1,C=W(N),F=y(C),h=V(N);F.items[h]=o,F.count++,G++}return B--,!0},P=(M,k)=>{let z=[];for(let _=M;_<=k&&_<B;_++)z.push(E(_));return z},w=(M,k)=>{for(let z=M;z<=k&&z<B;z++)if(!X(z))return!1;return!0},S=()=>{let M=[],k=null,z=Array.from(j.keys()).sort((_,D)=>_-D);for(let _ of z){let D=j.get(_);if(!D)continue;let L=_*Q;for(let m=0;m<Q;m++){let r=L+m;if(r>=B)break;if(D.items[m]!==void 0)if(k===null)k={start:r,end:r};else if(r===k.end+1)k.end=r;else M.push(k),k={start:r,end:r};else if(k!==null)M.push(k),k=null}}if(k!==null)M.push(k);return M},I=(M,k)=>{let z=[],_=null;for(let D=M;D<=k&&D<B;D++)if(!X(D))if(_===null)_={start:D,end:D};else _.end=D;else if(_!==null)z.push(_),_=null;if(_!==null)z.push(_);return z},a=(M)=>{return j.has(M)},c=(M)=>{let k=j.get(M);if(k)k.lastAccess=Date.now()},e=(M,k)=>{if(M>k||j.size===0)return;let z=Date.now(),_=W(Math.max(0,M)),D=W(Math.min(B-1,k));for(let L=_;L<=D;L++){let m=j.get(L);if(m)m.lastAccess=z}},J2=(M,k)=>{if(G<=Y)return 0;let z=Math.max(0,M-$),_=Math.min(B-1,k+$),D=W(z),L=W(_),m=0,r=[];for(let[l,o]of j)if(l<D||l>L)m+=o.count,r.push(l),G-=o.count,j.delete(l);if(m>0&&q)q(m,r);return m},t=()=>{if(G<=Y)return 0;let M=Array.from(j.entries()).sort(([,_],[,D])=>_.lastAccess-D.lastAccess),k=0,z=[];for(let[_,D]of M){if(G<=Y)break;k+=D.count,G-=D.count,z.push(_),j.delete(_)}if(k>0&&q)q(k,z);return k},Q2=()=>{return{totalItems:B,cachedItems:G,cachedChunks:j.size,chunkSize:Q,maxCachedItems:Y,memoryEfficiency:B>0?1-G/B:1}},K2=()=>G,j2=()=>{j.clear(),G=0};return{chunkSize:Q,maxCachedItems:Y,getTotal:v,setTotal:f,get:E,has:X,set:Z,setRange:K,delete:O,getRange:P,isRangeLoaded:w,getLoadedRanges:S,findUnloadedRanges:I,getChunkIndex:W,isChunkLoaded:a,touchChunk:c,touchChunksForRange:e,evictDistant:J2,evictToLimit:t,getStats:Q2,getCachedCount:K2,clear:j2,reset:()=>{j2(),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),y=j.start;for(let W of G){if(W.end<y)continue;if(W.start>j.end)break;if(W.start>y)B.push({start:y,end:Math.min(W.start-1,j.end)});if(y=W.end+1,y>j.end)break}if(y<=j.end)B.push({start:y,end:j.end});return B};var w2=(J={})=>{let{maskCharacter:Q=n2,maxSampleSize:Y=o2}=J,$=[],q=!1,j=(V)=>{if(q||V.length===0)return;let v=Math.min(V.length,Y);for(let f=0;f<v;f++){let E=V[f];if(!E||typeof E!=="object")continue;let X={},Z=!1;for(let[K,O]of Object.entries(E)){if(K.startsWith("_")||K==="id")continue;X[K]=String(O??"").length,Z=!0}if(Z)$.push(X)}q=!0},B=()=>q,G=(V)=>{let v={id:`${O2}${V}`,[S2]:!0,_index:V};if($.length===0)return v.label=Q.repeat(12),v;let f=$[V%$.length];for(let[E,X]of Object.entries(f))v[E]=Q.repeat(Math.max(1,X));return v};return{analyzeStructure:j,hasAnalyzedStructure:B,generate:G,generateRange:(V,v)=>{let f=[];for(let E=V;E<=v;E++)f.push(G(E));return f},clear:()=>{$=[],q=!1}}},E2=(J)=>{if(!J||typeof J!=="object")return!1;return J[S2]===!0},u2=(J)=>{return J.filter((Q)=>!E2(Q))};var rJ=50,wJ=(J={})=>{let{adapter:Q,initialItems:Y,initialTotal:$,storage:q,placeholder:j,pageSize:B=rJ,onStateChange:G,onItemsLoaded:y,onItemsEvicted:W}=J,V=k2({...q,onEvict:(A,R)=>{W?.(A),c()}}),v=null,f=()=>{if(!v)v=w2(j);return v},E=new Map,X=!1,Z,K=!0,O,P,w=[],S=0,I=new Map,a=()=>{for(let A of I.values())A[1].abort();I.clear()},c=()=>{G?.(k())},e=()=>{E.clear();let A=V.getLoadedRanges();for(let R of A)for(let n=R.start;n<=R.end;n++){let d=V.get(n);if(d&&!E2(d))E.set(d.id,n)}},J2=(A,R)=>{if(!E2(R))E.set(R.id,A)},t=(A)=>{E.delete(A)},Q2=(A,R)=>{return`${A}-${R}`},K2=()=>V.getTotal(),j2=()=>V.getCachedCount(),u=()=>X,M=()=>K,k=()=>({total:V.getTotal(),cached:V.getCachedCount(),isLoading:X,pendingRanges:w,error:Z,hasMore:K,cursor:O}),z=()=>V,_=()=>f(),D=(A)=>{let R=V.get(A);if(R!==void 0)return R;if(A>=0&&A<V.getTotal())return f().generate(A);return},L=(A)=>{let R=E.get(A);if(R===void 0)return;return V.get(R)},m=(A)=>{return E.get(A)??-1},r=(A)=>{let R=V.get(A);return R!==void 0&&!E2(R)},l=(A,R)=>{let n=[],d=V.getTotal();V.touchChunksForRange(A,Math.min(R,d-1));for(let B2=A;B2<=R&&B2<d;B2++){let $2=V.get(B2);if($2!==void 0)n.push($2);else n.push(f().generate(B2))}return n},o=(A)=>{V.setTotal(A),K=V.getCachedCount()<A,c()},N=(A,R=0,n)=>{if(Q&&A.length>0){let d=f();if(!d.hasAnalyzedStructure())d.analyzeStructure(A)}for(let d=0;d<A.length;d++){let B2=A[d];if(B2!==void 0){let $2=R+d;V.set($2,B2),J2($2,B2)}}if(n!==void 0)V.setTotal(n);else if(R+A.length>V.getTotal())V.setTotal(R+A.length);if(V.getCachedCount()>=V.getTotal()&&V.getTotal()>0)K=!1;c(),y?.(A,R,V.getTotal())},C=(A,R)=>{let n=V.get(A);if(!n)return!1;let d=n.id,B2={...n,...R};if(V.set(A,B2),R.id!==void 0&&R.id!==d)t(d);return J2(A,B2),c(),!0},F=(A)=>{let R=E.get(A);if(R===void 0)return!1;if(!V.delete(R))return!1;return e(),a(),c(),!0},h=async(A,R)=>{if(!Q)return;let n=V.chunkSize,d=Math.floor(A/n),B2=Math.floor(R/n),$2=n*2;for(let[Y2,s]of I){let Z2=Y2.indexOf("-"),V2=parseInt(Y2.slice(0,Z2),10);if(Math.abs(V2-A)>$2)s[1].abort(),I.delete(Y2)}let q2=[],N2=[];for(let Y2=d;Y2<=B2;Y2++){let s=Y2*n,Z2=s+n-1,V2=Q2(s,Z2);if(V.isChunkLoaded(Y2))continue;let U2=I.get(V2);if(U2)N2.push(U2[0]);else q2.push({start:s,end:Z2})}if(q2.length===0)return;for(let Y2 of q2){let s=Q2(Y2.start,Y2.end),Z2=new AbortController,V2=(async()=>{w.push(Y2),X=!0,Z=void 0,c();try{let U2=Y2.end-Y2.start+1,M2={offset:Y2.start,limit:U2,cursor:Y2.start===P?O:void 0,signal:Z2.signal},_2=await Q.read(M2);if(N(_2.items,Y2.start,_2.total),_2.cursor)O=_2.cursor,P=Y2.start+_2.items.length;let i=Y2.start+_2.items.length;if(i>=S){if(S=i,_2.hasMore!==void 0)K=_2.hasMore;else if(_2.total!==void 0)K=i<_2.total}}catch(U2){if(U2?.name==="AbortError")return;Z=U2 instanceof Error?U2:Error(String(U2))}finally{I.delete(s),w=w.filter((U2)=>U2.start!==Y2.start||U2.end!==Y2.end),X=I.size>0,c()}})();I.set(s,[V2,Z2]),N2.push(V2)}await Promise.all(N2)},T=async(A,R)=>{if(V.isRangeLoaded(A,R))return;await h(A,R)},U=async()=>{if(!Q)return;await h(0,B-1)},H=async()=>{if(!Q||X||!K)return!1;let A=V.getCachedCount(),R=V.getTotal(),n=A,d=Math.min(n+B-1,R>0?R-1:n+B-1);if(n>=R&&R>0)return K=!1,!1;return await h(n,d),V.getCachedCount()>A},b=async()=>{if(V.clear(),V.setTotal(0),E.clear(),v)v.clear();a(),w=[],X=!1,O=void 0,P=void 0,K=!0,S=0,Z=void 0,c()},x=(A,R)=>{if(V.evictDistant(A,R)>0)e()},p=()=>{V.clear(),E.clear(),O=void 0,P=void 0,Z=void 0,w=[],X=!1,c()},g=()=>{if(V.reset(),E.clear(),v)v.clear();O=void 0,P=void 0,K=!0,S=0,Z=void 0,w=[],X=!1,c()};if(Y&&Y.length>0)N(Y,0,$??Y.length);else if($!==void 0)V.setTotal($),c();return{getState:k,getTotal:K2,getCached:j2,getIsLoading:u,getHasMore:M,getStorage:z,getPlaceholders:_,getItem:D,getItemById:L,getIndexById:m,isItemLoaded:r,getItemsInRange:l,setTotal:o,setItems:N,updateItem:C,removeItem:F,loadRange:h,ensureRange:T,loadInitial:U,loadMore:H,reload:b,evictDistant:x,clear:p,reset:g}};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,y=Y-B.time;J.velocity=y>0?G/y: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:y,horizontal:W=!1}=Q,V=!!y,v=0,f=0,E=V?W?window.innerWidth:window.innerHeight:W?J.clientWidth:J.clientHeight,X=Q.compressed??!1,Z=Q.compression,K=vJ(),O=!1,P=null,S=C2(()=>{let F=W?J.scrollLeft:J.scrollTop,h=F>=v?"down":"up";if(K=v2(K,F),v=F,B)B({scrollTop:v,direction:h,velocity:K.velocity});t()}),a=C2(()=>{let F=J.getBoundingClientRect(),h=W?Math.max(0,-F.left):Math.max(0,-F.top),T=h>=v?"down":"up";if(K=v2(K,h),v=h,!O)O=!0;if(B)B({scrollTop:v,direction:T,velocity:K.velocity});t()}),c=(F)=>{F.preventDefault()},e=(F)=>{if(F.deltaX)return;F.preventDefault(),J.scrollLeft+=F.deltaY},J2=(F)=>{if(!X)return;F.preventDefault();let h=(W?F.deltaX||F.deltaY:F.deltaY)*$,T=v+h;if(q)T=v+h*0.3;if(T=Math.max(0,Math.min(T,f)),T!==v){let H=T>=v?"down":"up";if(K=v2(K,T),v=T,!O)O=!0;if(B)B({scrollTop:v,direction:H,velocity:K.velocity});t()}},t=()=>{if(P)clearTimeout(P);P=setTimeout(()=>{if(O=!1,K=vJ(v),G)G()},j)},Q2=(F)=>{if(X)return;if(X=!0,Z=F,f=F.virtualSize-E,V)return;if(S.cancel(),J.removeEventListener("scroll",S),!Y)J.removeEventListener("wheel",c);else if(W)J.removeEventListener("wheel",e);if(W)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",J2,{passive:!1});let h=W?J.scrollLeft:J.scrollTop;if(h>0){let T=W?Z?.actualSize??J.scrollWidth:Z?.actualSize??J.scrollHeight;v=h/T*f}if(W)J.scrollLeft=0;else J.scrollTop=0},K2=()=>{if(!X)return;if(X=!1,V){Z=void 0;return}if(J.removeEventListener("wheel",J2),W)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",S,{passive:!0}),!Y)J.addEventListener("wheel",c,{passive:!1});else if(W)J.addEventListener("wheel",e,{passive:!1});if(Z&&v>0){let h=v/f*(Z.actualSize-E);if(W)J.scrollLeft=h;else J.scrollTop=h}Z=void 0},j2=()=>{if(V||X)return v;return W?J.scrollLeft:J.scrollTop},u=(F,h=!1)=>{let T=Math.max(0,Math.min(F,f||1/0));if(V){let U=J.getBoundingClientRect();if(W){let H=U.left+window.scrollX;window.scrollTo({left:H+T,behavior:h?"smooth":"auto"})}else{let H=U.top+window.scrollY;window.scrollTo({top:H+T,behavior:h?"smooth":"auto"})}}else if(X){if(T===v)return;let H=T>=v?"down":"up";if(K=v2(K,T),v=T,!O)O=!0;if(B)B({scrollTop:v,direction:H,velocity:K.velocity});t()}else if(W)J.scrollTo({left:T,behavior:h?"smooth":"auto"});else J.scrollTo({top:T,behavior:h?"smooth":"auto"})},M=(F)=>{u(j2()+F)},k=()=>{return j2()<=0},z=(F=0)=>{let h=j2(),T=V||X?f:W?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return h>=T-F},_=()=>{let F=j2(),h=V||X?f:W?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(h<=0)return 0;return Math.min(1,Math.max(0,F/h))},D=(F)=>{if(F.compression)Z=F.compression,f=Z.virtualSize-E},L=()=>X,m=()=>Math.abs(K.velocity),r=()=>lJ(K),l=()=>O,o=()=>V,N=(F)=>{if(E=F,Z)f=Z.virtualSize-E},C=()=>{if(P)clearTimeout(P);if(V)a.cancel(),window.removeEventListener("scroll",a);else S.cancel(),J.removeEventListener("scroll",S),J.removeEventListener("wheel",J2),J.removeEventListener("wheel",c),J.removeEventListener("wheel",e)};if(V){if(X&&Z)f=Z.virtualSize-E;window.addEventListener("scroll",a,{passive:!0})}else if(X&&Z){if(f=Z.virtualSize-E,W)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",J2,{passive:!1})}else{if(W)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",S,{passive:!0}),!Y)J.addEventListener("wheel",c,{passive:!1});else if(W)J.addEventListener("wheel",e,{passive:!1})}return{getScrollTop:j2,scrollTo:u,scrollBy:M,isAtTop:k,isAtBottom:z,getScrollPercentage:_,getVelocity:m,isTracking:r,isScrolling:l,updateConfig:D,enableCompression:Q2,disableCompression:K2,isCompressed:L,isWindowMode:o,updateContainerHeight:N,destroy:C}},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:y=15,showOnHover:W=!0,showOnViewportEnter:V=!0,clickBehavior:v="scroll"}=Y,f=v==="page"?"scroll":v,E=j??J,X=aJ(Y.padding),Z=q?X.left:X.top,K=q?X.right:X.bottom,O=q?X.bottom:X.right,P=Y.hoverZoneWidth??O+16,w=0,S=0,I=0,a=0,c=!1,e=!1,J2=0,t=0,Q2=0,K2=null,j2=!1,u=null,M=null,k=0,z=0,_=null,D=null,L=null,m=q?"width":"height",r=q?"translateX":"translateY",l=q?(i)=>i.clientX:(i)=>i.clientY,o=q?"left":"top",N=document.createElement("div"),C=document.createElement("div"),F=document.createElement("div"),h=()=>{if(E===J)return;let i=J.offsetTop,X2=q?X.left:X.top;N.style[q?"left":"top"]=`${i+X2}px`,F.style[q?"left":"top"]=`${i}px`},T=()=>{if(N.className=`${$}-scrollbar`,C.className=`${$}-scrollbar-thumb`,q)N.classList.add(`${$}-scrollbar--horizontal`);if(Y.padding!==void 0)E.style.setProperty("--vlist-custom-scrollbar-padding-top",`${X.top}px`),E.style.setProperty("--vlist-custom-scrollbar-padding-right",`${X.right}px`),E.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${X.bottom}px`),E.style.setProperty("--vlist-custom-scrollbar-padding-left",`${X.left}px`);if(Y.minThumbSize!==void 0)N.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${y}px`);if(N.appendChild(C),E.appendChild(N),F.className=`${$}-scrollbar-hover`,q)F.classList.add(`${$}-scrollbar-hover--horizontal`),F.style.height=`${P}px`;else F.style.width=`${P}px`;if(E.appendChild(F),E!==J)h()},U=()=>{if(K2)clearTimeout(K2),K2=null},H=()=>{if(!B)return;U(),K2=setTimeout(x,G)},b=()=>{if(w<=S)return;if(U(),!j2)N.classList.add(`${$}-scrollbar--visible`),j2=!0;if(B&&!c&&!e)H()},x=()=>{if(c||e)return;N.classList.remove(`${$}-scrollbar--visible`),j2=!1},p=(i,X2)=>{if(w=i,S=X2,h(),w<=S){N.style.display="none",x();return}N.style.display="";let D2=Math.max(0,S-Z-K),W2=S/w;if(I=Math.max(y,W2*D2),C.style[m]=`${I}px`,a=D2-I,g(Q2),!B)b()},g=(i)=>{if(Q2=i,w<=S||a<=0)return;let X2=w-S,D2=Math.min(1,Math.max(0,i/X2));C.style.transform=`${r}(${D2*a}px)`},A=(i)=>{if(i.target===C||f!=="jump"||a<=0)return;let X2=w-S,D2=N.getBoundingClientRect(),W2=l(i)-D2[o],L2=Math.max(0,Math.min(W2-I/2,a));Q(L2/a*X2),b()},R=()=>{if(_!==null)clearTimeout(_),_=null;if(D!==null)cancelAnimationFrame(D),D=null;L=null},n=(i)=>{let X2=a>0?z/i*a:0;if(k<X2)return-1;if(k>=X2+I)return 1;return 0},d=()=>{let i=w-S,X2=n(i);if(X2===0){R();return}if(X2===-1){if(z<=0){R();return}let D2=Math.max(0,z-S);z=D2,Q(D2)}else{if(z>=i){R();return}let D2=Math.min(i,z+S);z=D2,Q(D2)}b()},B2=(i)=>{if(L===null){L=i,D=requestAnimationFrame(B2);return}let X2=w-S,D2=i-L;L=i;let W2=n(X2);if(W2===0){R();return}let L2=12*S/1000,H2=Math.min(L2*D2,S);if(W2===-1){if(z<=0){R();return}let b2=Math.max(0,z-H2);z=b2,Q(b2)}else{if(z>=X2){R();return}let b2=Math.min(X2,z+H2);z=b2,Q(b2)}U(),D=requestAnimationFrame(B2)},$2=()=>{R(),H(),document.removeEventListener("mouseup",$2)},q2=(i)=>{if(i.target===C||f!=="scroll")return;i.preventDefault();let X2=N.getBoundingClientRect();k=l(i)-X2[o],z=Q2,d(),_=setTimeout(()=>{D=requestAnimationFrame(B2)},350),document.addEventListener("mouseup",$2)},N2=(i)=>{i.preventDefault(),i.stopPropagation(),c=!0,J2=l(i),t=Q2,U(),N.classList.add(`${$}-scrollbar--dragging`),document.addEventListener("mousemove",Y2),document.addEventListener("mouseup",s)},Y2=(i)=>{if(!c)return;let X2=l(i)-J2,D2=a>0?X2/a:0,W2=w-S,L2=D2*W2,H2=Math.max(0,Math.min(t+L2,W2));if(C.style.transform=`${r}(${H2/W2*a}px)`,M=H2,u===null)u=requestAnimationFrame(()=>{if(M!==null)Q(M);u=null})},s=()=>{if(c=!1,u!==null)cancelAnimationFrame(u),u=null;if(M!==null)Q(M),M=null;if(N.classList.remove(`${$}-scrollbar--dragging`),B&&!e)H();document.removeEventListener("mousemove",Y2),document.removeEventListener("mouseup",s)},Z2=()=>{if(V)b()},V2=()=>{if(!c){if(e=!1,B)H()}},U2=()=>{e=!0,U(),b()},M2=()=>{if(e=!1,!c&&B)H()},_2=()=>{if(U(),R(),u!==null)cancelAnimationFrame(u),u=null;N.removeEventListener("click",A),N.removeEventListener("mousedown",q2),N.removeEventListener("mouseenter",U2),document.removeEventListener("mouseup",$2),N.removeEventListener("mouseleave",M2),C.removeEventListener("mousedown",N2),J.removeEventListener("mouseenter",Z2),J.removeEventListener("mouseleave",V2),document.removeEventListener("mousemove",Y2),document.removeEventListener("mouseup",s),F.removeEventListener("click",A),F.removeEventListener("mousedown",q2),F.removeEventListener("mouseenter",U2),F.removeEventListener("mouseleave",M2),F.remove(),E.style.removeProperty("--vlist-custom-scrollbar-padding-top"),E.style.removeProperty("--vlist-custom-scrollbar-padding-right"),E.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),E.style.removeProperty("--vlist-custom-scrollbar-padding-left"),N.remove()};if(T(),N.addEventListener("click",A),N.addEventListener("mousedown",q2),N.addEventListener("mouseenter",U2),N.addEventListener("mouseleave",M2),C.addEventListener("mousedown",N2),J.addEventListener("mouseenter",Z2),J.addEventListener("mouseleave",V2),F.addEventListener("click",A),F.addEventListener("mousedown",q2),W)F.addEventListener("mouseenter",U2),F.addEventListener("mouseleave",M2);return{show:b,hide:x,updateBounds:p,updatePosition:g,isVisible:()=>j2,destroy:_2}};var sJ=50,nJ=0.1;function oJ(J){let Q=0,Y=0,$=0;function q(){return $>0?Y/$:0}function j(y){if(Q=y,y>nJ&&y<sJ)Y+=y,$++}function B(){let y=J.getTotal();if(y===0)return 0;let W=J.getItemSize();if(W<=0)return 0;let V=J.getContainerSize();if(V<=0)return 0;let v=J.getScrollPosition(),f=typeof J.getColumns==="function"?J.getColumns():1,X=Math.ceil(y/f)*W,K=Math.min(X,G2)-V,O=X-V,P=K>0?O/K:1,w=v*P,S=Math.ceil((w+V)/W);return Math.min(S*f,y)}function G(){let y=J.getTotal(),W=B();return{progress:y>0?Math.min(100,Math.max(0,W/y*100)):0,velocity:Q,velocityAvg:q(),itemCount:W,total:y}}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,E2 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,VJ 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,GJ as createMeasuredSizeCache,MJ as createMasonryRenderer,WJ 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,F2 as calculateScaledItemPosition,EJ as calculateRenderRange,g2 as calculateMissingRanges,HJ as calculateItemOffset,KJ as calculateIndexFromScrollPosition,LJ as calculateActualSize,c2 as buildLayoutItems,G2 as MAX_VIRTUAL_SIZE};
1
+ var P2=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var S2=(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},d2=(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},c2=(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 y=Q(G,Y?.(G));if(y!==q){let V=G-j;$.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:V}),B=B+1+V,q=y,j=G}}return $.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:J-j}),$},r2=(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 $},l2=(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)}},a2=(J,Q,Y)=>{let $=c2(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:(E)=>{if($.length===0)return{type:"item",dataIndex:E,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let X=S2($,E),Z=$[X];if(E===Z.headerLayoutIndex)return{type:"header",group:Z};let K=E-Z.headerLayoutIndex-1;return{type:"item",dataIndex:Z.firstDataIndex+K,group:Z}},layoutToDataIndex:(E)=>{if($.length===0)return E;let X=S2($,E),Z=$[X];if(E===Z.headerLayoutIndex)return-1;let K=E-Z.headerLayoutIndex-1;return Z.firstDataIndex+K},dataToLayoutIndex:(E)=>{if($.length===0)return E;let X=d2($,E),Z=$[X],K=E-Z.firstDataIndex;return Z.headerLayoutIndex+1+K},getGroupAtLayoutIndex:(E)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let X=S2($,E);return $[X]},getGroupAtDataIndex:(E)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let X=d2($,E);return $[X]},getHeaderHeight:typeof j==="number"?(E)=>j:(E)=>{let X=$[E];if(!X)return 0;return j(X.key,E)},rebuild:(E,X)=>{$=c2(E,Q.getGroupForIndex,X??Y),q=E+$.length}}};var IJ=(J,Q,Y,$,q=0)=>{let j=Y?"width":"height",B=document.createElement("div");return B.className=`${Q}-sticky-header`,B.setAttribute("role","presentation"),B.setAttribute("aria-hidden","true"),B.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(Y?`top:0;bottom:0;left:${q||0}px`:`top:${q||0}px`),B.style[j]=`${$}px`,J.insertBefore(B,J.firstChild),B},s2=(J,Q,Y,$,q,j=!1,B=0,G,y)=>{let V=j?"width":"height",W=j?"height":"width",v=j?"X":"Y",f=(b,N)=>{b.style[V]=`${N}px`},E=y??IJ(J,q,j,0,B),X=()=>{let b=document.createElement("div");return b.className="sticky-group",b.style.position="absolute",b.style.willChange="transform",b.style[W]="100%",b},Z=X(),K=X();E.append(Z,K);let O=Z,P=K,w=Q.groups,S=[],p=[],s=[],c=0,e=()=>{w=Q.groups,c=w.length,S=Array(c),p=Array(c),s=Array(c);let b=G?G():1;for(let N=0;N<c;N++)S[N]=Y.getOffset(w[N].headerLayoutIndex)*b,p[N]=Q.getHeaderHeight(N),s[N]=p[N]*b};e();let J2=-1,i=0,Q2=0,B2=-1,j2=!1,g=0,M=!1,k=(b,N)=>{$(b,N);let H=p[N];return f(b,H),H},z=(b)=>{b.replaceChildren(),b.style.transform=""},_=(b)=>{if(b===J2)return;if(J2=b,i=0,Q2=0,b<0||b>=c){z(O);return}i=k(O,b),Q2=s[b],f(E,i),O.style.transform=""},D=(b)=>{if(b===g)return;g=b;let N=Math.round(b);O.style.transform=`translate${v}(${N}px)`,P.style.transform=`translate${v}(${N+i}px)`},L=()=>{g=0,O.style.transform="",P.style.transform=""},d=()=>{if(!M)return;let b=O;O=P,P=b,J2=B2,i=J2>=0?p[J2]:0,Q2=J2>=0?s[J2]:0,f(E,i),z(P),B2=-1,M=!1,L()},r=()=>{if(!M)return;z(P),B2=-1,M=!1,L()},l=!!y,o=()=>{if(j2)return;if(j2=!0,l)E.style.visibility="";else E.style.display=""},U=()=>{if(!j2)return;if(j2=!1,l)E.style.visibility="hidden";else E.style.display="none";z(O),J2=-1,i=0,Q2=0,r()},C=(b)=>{if(c===0){U();return}if(b<S[0]){U();return}let N=0,H=c-1;while(N<H){let h=N+H+1>>>1;if(S[h]+s[h]<=b)N=h;else H=h-1}if(!j2)o();_(N);let T=N+1;if(T<c){let h=S[T]-b;if(h<=0&&h>-Q2){if(B2!==T||!M)B2=T,k(P,T),M=!0;let I=Q2>0?h/Q2*i:h;D(I)}else if(h<=-Q2){if(M)d()}else if(M)r()}else if(M)r()},F=()=>{e();let b=J2;if(J2=-1,i=0,Q2=0,b>=0)_(b)},x=()=>{E.remove(),J2=-1,i=0,Q2=0,B2=-1,j2=!1,M=!1};if(!y)E.style.display="none";return{update:C,refresh:F,show:o,hide:U,destroy:x}};var n2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.isHeaderFn,q={row:0,col:0},j=(X)=>{if(X<=0)return 0;if(!$)return Math.ceil(X/Q);let Z=0,K=0,O=0;for(let P=0;P<X;P++)if($(P)){if(O++,K)Z++,K=0;Z++,K=0}else if(K++,K>=Q)Z++,K=0;if(K)Z++;return Z},B=(X)=>{return q.row=G(X),q.col=y(X),q},G=(X)=>{if(!$)return Math.floor(X/Q);let Z=0,K=0;for(let O=0;O<=X;O++)if($(O)){if(K)Z++,K=0;if(O===X)return Z;Z++,K=0}else{if(O===X)return Z;if(K++,K>=Q)Z++,K=0}return console.warn(`⚠️ getRow(${X}) fell through - returning ${Z}`),Z},y=(X)=>{if(!$)return X%Q;if($(X))return 0;let Z=0;for(let K=0;K<=X;K++)if($(K))Z=0;else{if(K===X)return Z;if(Z++,Z>=Q)Z=0}return Z},V=(X,Z,K)=>{if(K<=0)return{start:0,end:-1};if(!$){let p=Math.max(0,X*Q),s=Math.min(K-1,(Z+1)*Q-1);return{start:p,end:s}}let O=-1,P=-1,w=0,S=0;for(let p=0;p<K;p++){if($(p)){if(S)w++,S=0;if(w>=X&&w<=Z){if(O<0)O=p;P=p}w++,S=0}else{if(w>=X&&w<=Z){if(O<0)O=p;P=p}if(S++,S>=Q)w++,S=0}if(w>Z&&!S)break}if(O<0)return{start:0,end:-1};return{start:O,end:P}},W=(X,Z,K)=>{if(Z<0||Z>=Q)return-1;let O=X*Q+Z;if(O<0||O>=K)return-1;return O},v=(X)=>{let Z=(Q-1)*Y;return Math.max(0,(X-Z)/Q)};return{get columns(){return Q},get gap(){return Y},update:(X)=>{if(X.columns!==void 0)Q=Math.max(1,Math.floor(X.columns));if(X.gap!==void 0)Y=X.gap;if(X.isHeaderFn!==void 0)$=X.isHeaderFn},getTotalRows:j,getPosition:B,getRow:G,getCol:y,getItemRange:V,getItemIndex:W,getColumnWidth:v,getColumnOffset:(X,Z)=>{let K=v(Z);return X*(K+Y)}}};var G2=16000000;var o2="x",i2=20,I2="_isPlaceholder",E2="__placeholder_";var F2=(J,Q,Y)=>{if(String(Y).startsWith(E2))return!1;let $=E2+Q;if(J.has($))return J.delete($),J.add(Y),!0;return!1},t2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),p2=(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:$}},h2=(J,Q)=>{let Y=new Set(J.selected);for(let $ of Q)Y.delete($);return{...J,selected:Y}},e2=(J,Q,Y)=>{if(Y==="none")return J;if(J.selected.has(Q))return h2(J,[Q]);else return p2(J,[Q],Y)},JJ=(J,Q,Y)=>{if(Y!=="multiple")return J;return{...J,selected:new Set(Q.map(($)=>$.id))}},QJ=(J)=>({...J,selected:new Set});var $J=(J,Q)=>{return J.selected.has(Q)},YJ=(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 pJ=(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}},hJ=(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,y=Y-1;while(G<y){let V=G+y+1>>>1;if($[V]<=B)G=V;else y=V-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}},R2=(J,Q)=>{if(typeof J==="number")return pJ(J,Q);return hJ(J,Q)},x2=(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 y2=(J,Q,Y)=>{let $=Q.getTotalSize(),q=Y===!0||$>G2,j=$>G2?G2:$,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 E=Y.indexAtOffset(J),X=Y.indexAtOffset(J+Q);if(X<$-1)X++;return j.start=Math.max(0,E),j.end=Math.min($-1,Math.max(0,X)),j}let{virtualSize:B}=q,G=J/B,y=Y.getTotalSize(),V=G*y,W=Y.indexAtOffset(V),v=x2(Y,Math.max(0,W),Q,$),f=W+v;return j.start=Math.max(0,W),j.end=Math.min($-1,Math.max(0,f)),j},BJ=(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),$},L2=(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,y=Q/G,V=Y.getTotalSize(),W=y*V;return Y.getOffset(J)-W},KJ=(J,Q,Y,$,q,j="start")=>{if($===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/$*q.virtualSize;let W=Q.getSize(J);switch(j){case"center":B-=(Y-W)/2*q.ratio;break;case"end":B-=(Y-W)*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 y=q.virtualSize-Y;return Math.max(0,Math.min(B,y))},XJ=(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)},UJ=(J,Q)=>{if(typeof Q==="number")return J*Q>G2;return Q.getTotalSize()>G2},NJ=(J)=>{if(J<=0)return 0;return Math.floor(G2/J)},ZJ=(J,Q,Y)=>{let $=y2(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 k2=(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 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-row"),j.removeAttribute("data-col"),Q.push(j)},clear:()=>{Q.length=0}}},gJ=1,_J=(J,Q,Y,$,q,j,B,G,y=!1,V,W)=>{let v=xJ(),f=new Map,E=j,X=!1,Z=0,K="",O=-1,P={selected:!1,focused:!1},w=(U,C)=>{return P.selected=U,P.focused=C,P},S=`${q}-item ${q}-grid-item`,p=`${q}-group-header`,s=`${q}-item--selected`,c=`${q}-item--focused`,e=`${q}-item--placeholder`,J2=`${q}-item--replaced`,i=(U,C)=>{if(typeof C==="string")U.innerHTML=C;else U.replaceChildren(C)},Q2=(U,C,F)=>{U.classList.toggle(s,C),U.classList.toggle(c,F)},B2=(U,C)=>{let F=$.getRow(U);if(C?.compression?.isCompressed)return L2(F,C.scrollPosition,Y,C.totalItems,C.containerSize,C.compression,C.rangeStart);return Y.getOffset(F)},j2=(U,C)=>{let F=$.getCol(U),b=X&&F===0?0:$.getColumnOffset(F,E),N;if(X){let H=$.getRow(U),T=0,h=-1;for(let I=0;I<U;I++){let u=$.getRow(I);if(u<H&&u!==h){let A=Y.getSize(I);T+=A,h=u}}N=T}else N=B2(U,C);if(y)return`translate(${Math.round(N)}px, ${Math.round(b)}px)`;return`translate(${Math.round(b)}px, ${Math.round(N)}px)`},g=(U,C)=>{let F=U.classList.contains(p),x=F?E:$.getColumnWidth(E),b;if(X||F)b=Y.getSize(C)-$.gap;else{let N=$.getRow(C);b=Y.getSize(N)-$.gap}if(y)U.style.width=`${b}px`,U.style.height=`${x}px`;else U.style.width=`${x}px`,U.style.height=`${b}px`},M=(U,C,F,x,b)=>{let N=v.acquire(),H=!!C.__groupHeader,T=w(F,x);if(N.className=H?p:S,N.dataset.index=String(U),N.dataset.id=String(C.id),N.dataset.row=String($.getRow(U)),N.dataset.col=String($.getCol(U)),H)N.setAttribute("role","presentation"),N.removeAttribute("aria-selected"),N.removeAttribute("aria-setsize"),N.removeAttribute("aria-posinset"),N.removeAttribute("id");else if(W!==!1){if(N.setAttribute("role","option"),N.ariaSelected=String(F),G)N.id=`${G}-item-${U}`;if(B){let u=B();if(u!==O)O=u,K=String(u);N.setAttribute("aria-setsize",K);let A=V?V(U):U+1;N.setAttribute("aria-posinset",String(A))}}else if(N.setAttribute("role","listitem"),N.removeAttribute("aria-selected"),B){let u=B();if(u!==O)O=u,K=String(u);N.setAttribute("aria-setsize",K);let A=V?V(U):U+1;N.setAttribute("aria-posinset",String(A))}g(N,U);let h=Q(C,U,T);if(i(N,h),String(C.id).startsWith(E2))N.classList.add(e);return Q2(N,F,x),N.style.transform=b,{element:N,lastItemId:C.id,lastSelected:F,lastFocused:x,lastTransform:b,lastSeenFrame:Z}},k=(U,C,F,x,b)=>{if(Z++,C.start===0&&U.length)X=P2(U[0]);for(let[T,h]of f)if(T>=C.start&&T<=C.end)h.lastSeenFrame=Z;else if(Z-h.lastSeenFrame>gJ)v.release(h.element),f.delete(T);let N=!1;if(B){let T=B();if(T!==O)O=T,K=String(T),N=!0}let H=null;for(let T=C.start;T<=C.end;T++){let h=T-C.start,I=U[h];if(!I){console.warn(`⚠️ RENDER: Missing item at index ${T} (range: ${C.start}-${C.end}, items.length: ${U.length})`);continue}let u=F.has(I.id),A=T===x,R=f.get(T);if(R){let a=R.lastItemId!==I.id,m=R.lastSelected!==u,K2=R.lastFocused!==A;if(a){let q2=String(R.lastItemId),X2=String(I.id),Y2=q2.startsWith(E2),n=X2.startsWith(E2);if(!n&&F2(F,T,I.id))u=!0;let N2=w(u,A),W2=Q(I,T,N2);if(i(R.element,W2),R.element.dataset.id=X2,R.element.dataset.row=String($.getRow(T)),R.element.dataset.col=String($.getCol(T)),g(R.element,T),R.element.classList.toggle(e,n),Y2&&!n)R.element.classList.add(J2),setTimeout(()=>R.element.classList.remove(J2),300);if(R.lastItemId=I.id,!I.__groupHeader){let V2=V?V(T):T+1;R.element.setAttribute("aria-posinset",String(V2))}}if(a||m||K2)Q2(R.element,u,A),R.element.ariaSelected=String(u),R.lastSelected=u,R.lastFocused=A;let $2=j2(T,b);if(R.lastTransform!==$2)R.element.style.transform=$2,R.lastTransform=$2;if(N&&!I.__groupHeader)R.element.setAttribute("aria-setsize",K)}else{if(F2(F,T,I.id))u=!0;let a=j2(T,b),m=M(T,I,u,A,a);if(!H)H=document.createDocumentFragment();H.appendChild(m.element),f.set(T,m)}}if(H)J.appendChild(H)},z=(U)=>{for(let[C,F]of f){let x=j2(C,U);if(F.lastTransform!==x)F.element.style.transform=x,F.lastTransform=x}},_=(U,C,F,x)=>{let b=f.get(U);if(!b)return;let N=w(F,x),H=Q(C,U,N);i(b.element,H),Q2(b.element,F,x),b.element.dataset.id=String(C.id),b.element.ariaSelected=String(F),g(b.element,U),b.lastItemId=C.id,b.lastSelected=F,b.lastFocused=x},D=(U,C,F)=>{let x=f.get(U);if(!x)return;let b=x.lastSelected!==C,N=x.lastFocused!==F;if(b||N)Q2(x.element,C,F),x.lastSelected=C,x.lastFocused=F},L=(U)=>{return f.get(U)?.element},d=(U)=>{if(Math.abs(U-E)<1)return;E=U;for(let[C,F]of f){g(F.element,C);let x=j2(C);F.element.style.transform=x,F.lastTransform=x}},r=()=>{k2(J,f.keys(),(U)=>f.get(U)?.element)},l=()=>{for(let[,U]of f)v.release(U.element);f.clear()};return{render:k,updatePositions:z,updateItem:_,updateItemClasses:D,getElement:L,sortDOM:r,updateContainerWidth:d,clear:l,destroy:()=>{l(),v.clear()}}};var DJ=(J,Q=50,Y=1/0,$=!0)=>{let q=J,j=[],B=0,G=()=>{j=q.map((K,O)=>({def:K,index:O,width:0,minWidth:uJ(K.minWidth??Q,1),maxWidth:K.maxWidth??Y,resizable:K.resizable??$,offset:0}))},y=(K)=>{if(j.length===0){B=0;return}let O=0,P=0;for(let w=0;w<j.length;w++){let S=j[w],p=S.def;if(p.width!==void 0)S.width=g2(p.width,S.minWidth,S.maxWidth),O+=S.width;else P++}if(P){let S=Math.max(0,K-O)/P;for(let p=0;p<j.length;p++){let s=j[p];if(s.def.width===void 0)s.width=g2(S,s.minWidth,s.maxWidth)}}V()},V=()=>{let K=0;for(let O=0;O<j.length;O++){let P=j[O];P.offset=K,K+=P.width}B=K},W=(K,O)=>{if(K<0||K>=j.length)return 0;let P=j[K];if(!P.resizable)return P.width;let w=g2(O,P.minWidth,P.maxWidth);return P.width=w,V(),w},v=(K)=>{return j[K]},f=(K)=>{if(j.length===0)return;if(K<0)return j[0];if(K>=B)return j[j.length-1];let O=0,P=j.length-1;while(O<P){let w=O+P>>>1,S=j[w];if(K<S.offset)P=w-1;else if(K>=S.offset+S.width)O=w+1;else return S}return j[O]},E=(K)=>{if(K<0||K>=j.length)return 0;return j[K].offset},X=(K)=>{if(K<0||K>=j.length)return 0;return j[K].width},Z=(K)=>{q=K,G()};return G(),{get columns(){return j},get totalWidth(){return B},resolve:y,updateColumns:Z,resizeColumn:W,getColumn:v,getColumnAtX:f,getColumnOffset:E,getColumnWidth:X}},g2=(J,Q,Y)=>Math.min(Y,Math.max(Q,J)),uJ=(J,Q)=>Math.max(Q,J);var WJ=(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 y=document.createElement("div");y.className=`${Y}-table-header-scroll`,y.setAttribute("role","presentation"),G.appendChild(y),B.appendChild(G),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let V=[],W=[],v=!0,f=null,E="asc",X=null,Z=!1,K=-1,O=0,P=0,w=0,S=(_,D)=>{let L=document.createElement("div");L.className=`${Y}-table-header-cell`,L.setAttribute("role","columnheader"),L.setAttribute("aria-colindex",String(D+1)),L.setAttribute("tabindex",D===0?"0":"-1"),L.dataset.columnKey=_.def.key;let d=_.def.align;if(d==="center")L.classList.add(`${Y}-table-header-cell--center`);else if(d==="right")L.classList.add(`${Y}-table-header-cell--right`);let r=document.createElement("div");r.className=`${Y}-table-header-content`;let l=_.def.header?_.def.header(_.def):_.def.label;if(typeof l==="string")r.textContent=l;else r.appendChild(l);if(L.appendChild(r),_.def.sortable){let o=document.createElement("span");o.className=`${Y}-table-header-sort`,o.setAttribute("aria-hidden","true"),L.appendChild(o),W.push(o),L.classList.add(`${Y}-table-header-cell--sortable`)}else W.push(null);if(_.resizable){let o=document.createElement("div");o.className=`${Y}-table-header-resize`,o.dataset.resizeIndex=String(D),L.appendChild(o)}return L},p=(_)=>{X=_,y.textContent="",V=[],W=[];let D=_.columns;for(let L=0;L<D.length;L++){let d=D[L],r=S(d,L);V.push(r),y.appendChild(r)}if(s(_),f)c(f,E)},s=(_)=>{X=_;let D=_.columns;y.style.width=`${_.totalWidth}px`;for(let L=0;L<V.length&&L<D.length;L++){let d=V[L],r=D[L];d.style.width=`${r.width}px`}},c=(_,D)=>{if(f=_,E=D,!X)return;let L=X.columns;for(let d=0;d<W.length&&d<L.length;d++){let r=W[d];if(!r)continue;if(L[d].def.key===_)r.textContent=D==="asc"?"▲":"▼",r.style.opacity="0.7",V[d].setAttribute("aria-sort",D==="asc"?"ascending":"descending");else r.textContent="",r.style.opacity="0",V[d].removeAttribute("aria-sort")}},e=(_)=>{y.style.transform=`translateX(${-_}px)`},J2=(_)=>{let D=_.target;if(!D.dataset.resizeIndex)return;if(_.preventDefault(),_.stopPropagation(),K=+D.dataset.resizeIndex,!X)return;let L=X.getColumn(K);if(!L?.resizable)return;Z=!0,O=_.clientX,P=L.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",i),D.addEventListener("pointerup",Q2),D.addEventListener("pointercancel",Q2)},i=(_)=>{if(!Z||!X)return;let D=_.clientX-O;if(Math.abs(D)<1)return;let L=Math.max(0,P+D);$(K,L)},Q2=(_)=>{if(!Z)return;let D=_.target;D.removeEventListener("pointermove",i),D.removeEventListener("pointerup",Q2),D.removeEventListener("pointercancel",Q2);try{D.releasePointerCapture(_.pointerId)}catch{}D.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",Z=!1,K=-1},B2=(_)=>{let D=_.target;if(D.dataset.resizeIndex)return;if(Z)return;let L=D;while(L&&!L.dataset.columnKey)if(L=L.parentElement,L===G||L===null)return;let d=L.dataset.columnKey;if(!X)return;let r=X.columns,l=-1;for(let U=0;U<r.length;U++)if(r[U].def.key===d){l=U;break}if(l===-1)return;let o=r[l];if(j)j({key:d,index:l,event:_});if(o.def.sortable&&q){let U;if(f===d)U=E==="asc"?"desc":null;else U="asc";q({key:d,index:l,direction:U})}},j2=(_)=>{if(_<0||_>=V.length)return;V[w]?.setAttribute("tabindex","-1"),w=_;let D=V[w];D.setAttribute("tabindex","0"),D.focus()},g=(_)=>{let D=_.key;if(D==="ArrowRight"){if(_.ctrlKey||_.metaKey){if(!X)return;let L=X.getColumn(w);if(L?.resizable)$(w,L.width+10),_.preventDefault()}else if(w<V.length-1)j2(w+1),_.preventDefault();_.stopPropagation();return}if(D==="ArrowLeft"){if(_.ctrlKey||_.metaKey){if(!X)return;let L=X.getColumn(w);if(L?.resizable)$(w,L.width-10),_.preventDefault()}else if(w>0)j2(w-1),_.preventDefault();_.stopPropagation();return}if(D==="Home"){j2(0),_.preventDefault(),_.stopPropagation();return}if(D==="End"){j2(V.length-1),_.preventDefault(),_.stopPropagation();return}if(D==="Enter"||D===" "){if(!X)return;let L=X.getColumn(w);if(L?.def.sortable&&q){let d;if(f===L.def.key)d=E==="asc"?"desc":null;else d="asc";q({key:L.def.key,index:w,direction:d}),_.preventDefault()}_.stopPropagation();return}if(D==="ArrowDown"){J.focus(),_.preventDefault(),_.stopPropagation();return}};return G.addEventListener("pointerdown",J2),G.addEventListener("click",B2),G.addEventListener("keydown",g),{element:G,update:s,updateSort:c,rebuild:p,show:()=>{if(v)return;v=!0,G.style.display=""},hide:()=>{if(!v)return;v=!1,G.style.display="none"},destroy:()=>{G.removeEventListener("pointerdown",J2),G.removeEventListener("click",B2),G.removeEventListener("keydown",g),J.style.removeProperty("--vlist-table-header-height"),B.remove(),V=[],W=[],X=null,v=!1},syncScroll:e}};var mJ=()=>{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}}},VJ=(J,Q,Y,$,q,j,B,G,y)=>{let V=mJ(),W=new Map,v=-1,f=Y,E=null,X=null,Z=null,K=(N,H)=>{X=N,Z=H},O=(N,H)=>{H?N.setAttribute("aria-selected","true"):N.removeAttribute("aria-selected")},P=(N,H,T,h)=>{N.setAttribute("role",H),N.setAttribute("data-id",String(T)),N.setAttribute("data-index",String(h))},w=(N)=>String(N).startsWith("__placeholder_"),S=`${q}-item ${q}-table-row`,p=`${q}-item--selected`,s=`${q}-item--focused`,c=`${q}-table-cell`,e=`${q}-table-cell--center`,J2=`${q}-table-cell--right`,i=`${q}-item--odd`,Q2=`${q}-item--placeholder`,B2=`${q}-item--replaced`,j2=`${q}-item ${q}-table-row ${q}-table-group-header`,g=`${q}-table-group-header-content`,M=(N,H,T,h,I=!1)=>{if(T.def.cell){let u=T.def.cell(H,T.def,h);if(typeof u==="string")N.innerHTML=u;else N.replaceChildren(u)}else{let u=H[T.def.key],A=u!=null?String(u):"";if(I&&A)N.innerHTML=`<span>${A}</span>`;else N.textContent=A}},k=(N,H,T,h,I=!1)=>{let u=S;if(G){if(E){let A=E(H);if(A>=0&&(A&1)===1)u+=` ${i}`}else if((H&1)===1)u+=` ${i}`}if(I)u+=` ${Q2}`;if(T)u+=` ${p}`;if(h)u+=` ${s}`;N.className=u},z=(N,H,T)=>{if(T?.compression?.isCompressed)return Math.round(L2(N,T.scrollPosition,H,T.totalItems,T.containerSize,T.compression,T.rangeStart));return H.getOffset(N)},_=(N,H)=>{let T=H.def.align;if(T==="center")N.classList.add(e),N.classList.remove(J2);else if(T==="right")N.classList.add(J2),N.classList.remove(e);else N.classList.remove(e,J2)},D=(N,H)=>{let h=f.columns.length;if(H.length===h)return H;let I=[];for(let u=0;u<h;u++){let A;if(u<H.length)A=H[u];else A=document.createElement("div"),A.className=c,N.appendChild(A);I.push(A)}for(let u=h;u<H.length;u++)H[u].remove();return I},L=(N,H,T,h)=>{let I=V.acquire(),u=N,A=T.getSize(H),R=z(H,T,h);I.style.cssText=`width:${f.totalWidth}px;height:${A}px;transform:translateY(${R}px)`,I.className=j2,P(I,"presentation",N.id,H),I.removeAttribute("aria-selected"),I.removeAttribute("aria-rowindex"),I.replaceChildren();let a=document.createElement("div");if(a.className=g,Z){let m=Z(u.groupKey,u.groupIndex);if(typeof m==="string")a.innerHTML=m;else a.appendChild(m)}return I.appendChild(a),{element:I,cells:[],index:H,isGroupHeader:!0,lastItemId:N.id,lastSelected:!1,lastFocused:!1,lastOffset:R,lastHeight:A}},d=(N,H,T,h,I,u)=>{let A=V.acquire(),R=I.getSize(H),a=z(H,I,u),m=w(N.id);A.style.cssText=`width:${f.totalWidth}px;height:${R}px;transform:translateY(${a}px)`,k(A,H,T,h,m),P(A,"row",N.id,H),A.id=`${j}-item-${H}`,A.setAttribute("aria-rowindex",String(H+2)),O(A,T);let K2=D(A,[]),$2=f.columns;for(let q2=0;q2<K2.length&&q2<$2.length;q2++){let X2=K2[q2],Y2=$2[q2];X2.style.cssText=`left:${Y2.offset}px;width:${Y2.width}px`,X2.setAttribute("role","gridcell"),X2.setAttribute("aria-colindex",String(q2+1)),_(X2,Y2),M(X2,N,Y2,H,m)}return{element:A,cells:K2,index:H,isGroupHeader:!1,lastItemId:N.id,lastSelected:T,lastFocused:h,lastOffset:a,lastHeight:R}},r=(N,H,T,h,I)=>{for(let[m,K2]of W)if(m<H.start||m>H.end)V.release(K2.element),W.delete(m);let u=!1,A=B();if(A!==v)v=A,u=!0;let R=null,a=Q();E=typeof G==="string"&&y?y():null;for(let m=H.start;m<=H.end;m++){let K2=m-H.start,$2=N[K2];if(!$2)continue;let q2=T.has($2.id),X2=m===h,Y2=X?X($2):!1,n=W.get(m);if(n){if(n.isGroupHeader!==Y2){V.release(n.element),W.delete(m);let N2=Y2?L($2,m,a,I):d($2,m,q2,X2,a,I);if(W.set(m,N2),!R)R=document.createDocumentFragment();R.appendChild(N2.element);continue}if(Y2){if(n.lastItemId!==$2.id){let V2=$2,U2=n.element.firstElementChild;if(U2&&Z){let M2=Z(V2.groupKey,V2.groupIndex);if(typeof M2==="string")U2.innerHTML=M2;else U2.replaceChildren(M2)}n.element.setAttribute("data-id",String($2.id)),n.lastItemId=$2.id}let W2=z(m,a,I);if(n.lastOffset!==W2)n.lastOffset=W2,n.element.style.transform=`translateY(${W2}px)`;let Z2=a.getSize(m);if(n.lastHeight!==Z2)n.lastHeight=Z2,n.element.style.height=`${Z2}px`}else{let N2=n.lastItemId!==$2.id,W2=n.lastSelected!==q2,Z2=n.lastFocused!==X2;if(N2){let M2=n.lastItemId!=null&&w(n.lastItemId),t=w($2.id);if(!t&&F2(T,m,$2.id))q2=!0;let _2=f.columns;for(let D2=0;D2<n.cells.length&&D2<_2.length;D2++)M(n.cells[D2],$2,_2[D2],m,t);if(k(n.element,m,q2,X2,t),n.element.setAttribute("data-id",String($2.id)),O(n.element,q2),M2&&!t)n.element.classList.add(B2),setTimeout(()=>{n.element.classList.remove(B2)},300);n.lastItemId=$2.id,n.lastSelected=q2,n.lastFocused=X2}else if(W2||Z2)k(n.element,m,q2,X2,w($2.id)),O(n.element,q2),n.lastSelected=q2,n.lastFocused=X2;let V2=z(m,a,I);if(n.lastOffset!==V2)n.lastOffset=V2,n.element.style.transform=`translateY(${V2}px)`;let U2=a.getSize(m);if(n.lastHeight!==U2)n.lastHeight=U2,n.element.style.height=`${U2}px`;if(u)n.element.setAttribute("aria-rowindex",String(m+2))}}else{if(F2(T,m,$2.id))q2=!0;let N2=Y2?L($2,m,a,I):d($2,m,q2,X2,a,I);if(W.set(m,N2),!R)R=document.createDocumentFragment();R.appendChild(N2.element)}}if(R)J.appendChild(R)},l=(N)=>{let H=Q();for(let[T,h]of W){let I=z(T,H,N);if(h.lastOffset!==I)h.lastOffset=I,h.element.style.transform=`translateY(${I}px)`}},o=(N,H,T,h)=>{let I=W.get(N);if(!I)return;if(I.isGroupHeader)return;let u=f.columns;for(let A=0;A<I.cells.length&&A<u.length;A++)M(I.cells[A],H,u[A],N);I.element.setAttribute("data-id",String(H.id)),I.lastItemId=H.id,k(I.element,N,T,h),O(I.element,T),I.lastSelected=T,I.lastFocused=h},U=(N,H,T)=>{let h=W.get(N);if(!h)return;if(h.isGroupHeader)return;let I=h.lastSelected!==H,u=h.lastFocused!==T;if(I||u)k(h.element,N,H,T),O(h.element,H),h.lastSelected=H,h.lastFocused=T},C=(N)=>{f=N;let H=N.columns;for(let[,T]of W)if(T.element.style.width=`${N.totalWidth}px`,T.cells.length>0)for(let h=0;h<T.cells.length&&h<H.length;h++){let I=T.cells[h],u=H[h];I.style.left=`${u.offset}px`,I.style.width=`${u.width}px`}},F=(N)=>{return W.get(N)?.element},x=()=>{for(let[,N]of W)V.release(N.element);W.clear(),v=-1};return{render:r,updatePositions:l,updateItem:o,updateItemClasses:U,getElement:F,updateColumnLayout:C,setGroupHeaderFn:K,clear:x,destroy:()=>{x(),V.clear()}}};var MJ=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.containerSize,q=0,j=[],B=()=>{let Z=(Q-1)*Y;q=Math.max(0,($-Z)/Q),j=Array(Q);let K=q+Y;for(let O=0;O<Q;O++)j[O]=O*K};B();let G=[],y=0,V=[],W=(Z,K)=>{if(Z<=0)return y=0,G=[],[];let O=Array(Q).fill(0),P=Array(Q);for(let p=0;p<Q;p++)P[p]=[];let w=Array(Z);for(let p=0;p<Z;p++){let s=0,c=O[0];for(let i=1;i<Q;i++){let Q2=O[i];if(Q2<c)c=Q2,s=i}let e=K(p),J2=O[s];w[p]={index:p,x:j[s],y:J2,lane:s,size:e,crossSize:q},P[s].push(p),O[s]=J2+e+Y}G=P;let S=0;for(let p=0;p<Q;p++){let s=O[p],c=s>0?s-Y:0;if(c>S)S=c}return y=S,w},v=(Z)=>{if(Z.length===0)return y;if(y)return y;let K=Array(Q).fill(0);for(let P of Z){let w=P.y+P.size,S=K[P.lane];if(w>S)K[P.lane]=w}let O=0;for(let P=0;P<Q;P++)if(K[P]>O)O=K[P];return O},f=(Z,K,O)=>{if(Z.length===0||O<=K)return V.length=0,V;if(G.length===0||G.length!==Q)return E(Z,K,O);V.length=0;for(let P=0;P<Q;P++){let w=G[P],S=w.length;if(!S)continue;let p=0,s=S;while(p<s){let c=p+s>>>1,e=Z[w[c]];if(e.y+e.size<=K)p=c+1;else s=c}for(let c=p;c<S;c++){let e=Z[w[c]];if(e.y>=O)break;V.push(e)}}return V},E=(Z,K,O)=>{V.length=0;for(let P of Z)if(P.y+P.size>K&&P.y<O)V.push(P);return V};return{get columns(){return Q},get gap(){return Y},get containerSize(){return $},update:(Z)=>{let K=!1;if(Z.columns!==void 0){let O=Math.max(1,Math.floor(Z.columns));if(O!==Q)Q=O,K=!0}if(Z.gap!==void 0&&Z.gap!==Y)Y=Z.gap,K=!0;if(Z.containerSize!==void 0&&Z.containerSize!==$)$=Z.containerSize,K=!0;if(K)B()},calculateLayout:W,getTotalSize:v,getVisibleItems:f}};var dJ=(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}}},cJ=1,GJ=(J,Q,Y,$=!1,q,j,B,G)=>{let y=dJ(),V=new Map,W=new Set,v=0,f="",E=-1,X={selected:!1,focused:!1},Z=(g,M)=>{return X.selected=g,X.focused=M,X},K=`${Y}-item ${Y}-masonry-item`,O=`${Y}-group-header`,P=`${Y}-item--selected`,w=`${Y}-item--focused`,S=(g,M)=>{if(typeof M==="string")g.innerHTML=M;else g.replaceChildren(M)},p=(g,M,k)=>{g.classList.toggle(P,M),g.classList.toggle(w,k)},s=(g,M)=>{if($)g.style.transform=`translate(${Math.round(M.y)}px, ${Math.round(M.x)}px)`;else g.style.transform=`translate(${Math.round(M.x)}px, ${Math.round(M.y)}px)`},c=(g,M)=>{if($)g.style.width=`${M.size}px`,g.style.height=`${M.crossSize}px`;else g.style.width=`${M.crossSize}px`,g.style.height=`${M.size}px`},e=(g,M,k,z,_)=>{let D=y.acquire(),L=M.__groupHeader,d=Z(z,_);if(D.className=L?O:K,D.dataset.index=String(g),D.dataset.id=String(M.id),D.dataset.lane=String(k.lane),L)D.setAttribute("role","presentation"),D.removeAttribute("aria-selected"),D.removeAttribute("aria-setsize"),D.removeAttribute("aria-posinset"),D.removeAttribute("id");else if(G!==!1){if(D.setAttribute("role","option"),D.ariaSelected=String(z),j)D.id=`${j}-item-${g}`;if(q){let l=q();if(l!==E)E=l,f=String(l);D.setAttribute("aria-setsize",f);let o=B?B(g):g+1;D.setAttribute("aria-posinset",String(o))}}else if(D.setAttribute("role","listitem"),D.removeAttribute("aria-selected"),q){let l=q();if(l!==E)E=l,f=String(l);D.setAttribute("aria-setsize",f);let o=B?B(g):g+1;D.setAttribute("aria-posinset",String(o))}c(D,k);let r=Q(M,g,d);return S(D,r),p(D,z,_),s(D,k),{element:D,lastItemId:M.id,lastSelected:z,lastFocused:_,lastY:k.y,lastX:k.x,lastSize:k.size,lastCrossSize:k.crossSize,lastSeenFrame:v}},J2=(g,M,k,z)=>{v++,W.clear();for(let D=0;D<M.length;D++)W.add(M[D].index);for(let[D,L]of V)if(W.has(D))L.lastSeenFrame=v;else if(v-L.lastSeenFrame>cJ)y.release(L.element),V.delete(D);let _=null;for(let D=0;D<M.length;D++){let L=M[D],d=L.index,r=g(d);if(!r)continue;let l=k.has(r.id),o=d===z,U=V.get(d);if(U){let C=U.lastItemId!==r.id,F=U.lastSelected!==l,x=U.lastFocused!==o,b=U.lastY!==L.y||U.lastX!==L.x,N=U.lastSize!==L.size||U.lastCrossSize!==L.crossSize;if(C){let H=Z(l,o),T=Q(r,d,H);if(S(U.element,T),U.element.dataset.id=String(r.id),U.lastItemId=r.id,!r.__groupHeader){let I=B?B(d):d+1;U.element.setAttribute("aria-posinset",String(I))}}if(C||F||x)p(U.element,l,o),U.element.ariaSelected=String(l),U.lastSelected=l,U.lastFocused=o;if(N)c(U.element,L),U.lastSize=L.size,U.lastCrossSize=L.crossSize;if(b)s(U.element,L),U.lastY=L.y,U.lastX=L.x}else{let C=e(d,r,L,l,o);if(!_)_=document.createDocumentFragment();_.appendChild(C.element),V.set(d,C)}}if(_)J.appendChild(_)},i=()=>{for(let g of V.values())y.release(g.element);V.clear(),J.innerHTML=""};return{render:J2,getElement:(g)=>V.get(g)?.element,updateItemClasses:(g,M,k)=>{let z=V.get(g);if(!z)return;let _=z.lastSelected!==M,D=z.lastFocused!==k;if(_||D)p(z.element,M,k),z.lastSelected=M,z.lastFocused=k},sortDOM:()=>{k2(J,V.keys(),(g)=>V.get(g)?.element)},clear:i,destroy:()=>{i(),y.clear()}}};var OJ=(J,Q)=>{let Y=new Map,$=(j)=>Y.get(j)??J,q=R2($,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=R2($,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 EJ=(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),$},FJ=(J,Q,Y,$,q,j)=>{if($===0)return 0;let B=Math.max(0,Math.min(J,$-1)),G=Q.getOffset(B),y=Q.getSize(B),V=Q.getTotalSize(),W=Math.max(0,V-Y),v;switch(j){case"center":v=G-Y/2+y/2;break;case"end":v=G-Y+y;break;case"start":default:v=G;break}return Math.max(0,Math.min(v,W))},LJ=(J,Q,Y)=>{if(Y&&Y.isCompressed)return Y.virtualSize;return Q.getTotalSize()},HJ=(J,Q)=>{return Q.getTotalSize()},bJ=(J,Q)=>{return Q.getOffset(J)},TJ=(J,Q,Y)=>{let $=Math.max(0,Q-Y);return Math.max(0,Math.min(J,$))};var RJ=(J,Q,Y,$,q="start",j,B=FJ)=>{return B(J,Q,Y,$,j,q)},yJ=(J,Q)=>{return J.start===Q.start&&J.end===Q.end},PJ=(J,Q)=>{return J>=Q.start&&J<=Q.end},kJ=(J)=>{if(J.end<J.start)return 0;return J.end-J.start+1};var zJ=(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 wJ=()=>{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(y){console.error(`[vlist] Error in event handler for "${String(j)}":`,y)}})},clear:(j)=>{if(j)delete J[j];else for(let B in J)delete J[B]}}};var z2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:Y=5000,evictionBuffer:$=200,onEvict:q}=J,j=new Map,B=0,G=0,y=(M)=>{let k=j.get(M);if(!k)k={items:Array(Q),count:0,lastAccess:Date.now()},j.set(M,k);else k.lastAccess=Date.now();return k},V=(M)=>{return Math.floor(M/Q)},W=(M)=>{return M%Q},v=()=>B,f=(M)=>{B=M},E=(M)=>{if(M<0||M>=B)return;let k=V(M),z=j.get(k);if(!z)return;return z.items[W(M)]},X=(M)=>{if(M<0||M>=B)return!1;let k=V(M),z=j.get(k);if(!z)return!1;return z.items[W(M)]!==void 0},Z=(M,k)=>{let z=V(M),_=y(z),D=W(M),L=_.items[D]===void 0;if(_.items[D]=k,L)_.count++,G++;if(M>=B)B=M+1},K=(M,k)=>{for(let z=0;z<k.length;z++){let _=k[z];if(_!==void 0)Z(M+z,_)}},O=(M)=>{if(M<0||M>=B)return!1;let k=V(M),z=j.get(k),_=W(M);if(!(z!==void 0&&z.items[_]!==void 0))return!1;let L=k,d=Array.from(j.keys()).filter((l)=>l>=L).sort((l,o)=>l-o),r=[];for(let l of d){let o=j.get(l),U=l*Q;for(let C=0;C<Q;C++){if(o.items[C]===void 0)continue;let F=U+C;if(F<=M)continue;r.push({oldIndex:F,item:o.items[C]})}}if(z.items[_]=void 0,z.count--,G--,z.count===0)j.delete(k);for(let{oldIndex:l}of r){let o=V(l),U=j.get(o);if(!U)continue;let C=W(l);if(U.items[C]!==void 0){if(U.items[C]=void 0,U.count--,G--,U.count===0)j.delete(o)}}for(let{oldIndex:l,item:o}of r){let U=l-1,C=V(U),F=y(C),x=W(U);F.items[x]=o,F.count++,G++}return B--,!0},P=(M,k)=>{let z=[];for(let _=M;_<=k&&_<B;_++)z.push(E(_));return z},w=(M,k)=>{for(let z=M;z<=k&&z<B;z++)if(!X(z))return!1;return!0},S=()=>{let M=[],k=null,z=Array.from(j.keys()).sort((_,D)=>_-D);for(let _ of z){let D=j.get(_);if(!D)continue;let L=_*Q;for(let d=0;d<Q;d++){let r=L+d;if(r>=B)break;if(D.items[d]!==void 0)if(k===null)k={start:r,end:r};else if(r===k.end+1)k.end=r;else M.push(k),k={start:r,end:r};else if(k!==null)M.push(k),k=null}}if(k!==null)M.push(k);return M},p=(M,k)=>{let z=[],_=null;for(let D=M;D<=k&&D<B;D++)if(!X(D))if(_===null)_={start:D,end:D};else _.end=D;else if(_!==null)z.push(_),_=null;if(_!==null)z.push(_);return z},s=(M)=>{return j.has(M)},c=(M)=>{let k=j.get(M);if(k)k.lastAccess=Date.now()},e=(M,k)=>{if(M>k||j.size===0)return;let z=Date.now(),_=V(Math.max(0,M)),D=V(Math.min(B-1,k));for(let L=_;L<=D;L++){let d=j.get(L);if(d)d.lastAccess=z}},J2=(M,k)=>{if(G<=Y)return 0;let z=Math.max(0,M-$),_=Math.min(B-1,k+$),D=V(z),L=V(_),d=0,r=[];for(let[l,o]of j)if(l<D||l>L)d+=o.count,r.push(l),G-=o.count,j.delete(l);if(d>0&&q)q(d,r);return d},i=()=>{if(G<=Y)return 0;let M=Array.from(j.entries()).sort(([,_],[,D])=>_.lastAccess-D.lastAccess),k=0,z=[];for(let[_,D]of M){if(G<=Y)break;k+=D.count,G-=D.count,z.push(_),j.delete(_)}if(k>0&&q)q(k,z);return k},Q2=()=>{return{totalItems:B,cachedItems:G,cachedChunks:j.size,chunkSize:Q,maxCachedItems:Y,memoryEfficiency:B>0?1-G/B:1}},B2=()=>G,j2=()=>{j.clear(),G=0};return{chunkSize:Q,maxCachedItems:Y,getTotal:v,setTotal:f,get:E,has:X,set:Z,setRange:K,delete:O,getRange:P,isRangeLoaded:w,getLoadedRanges:S,findUnloadedRanges:p,getChunkIndex:V,isChunkLoaded:s,touchChunk:c,touchChunksForRange:e,evictDistant:J2,evictToLimit:i,getStats:Q2,getCachedCount:B2,clear:j2,reset:()=>{j2(),B=0}}},w2=(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},u2=(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=w2(Q),y=j.start;for(let V of G){if(V.end<y)continue;if(V.start>j.end)break;if(V.start>y)B.push({start:y,end:Math.min(V.start-1,j.end)});if(y=V.end+1,y>j.end)break}if(y<=j.end)B.push({start:y,end:j.end});return B};var v2=(J={})=>{let{maskCharacter:Q=o2,maxSampleSize:Y=i2}=J,$=[],q=!1,j=(W)=>{if(q||W.length===0)return;let v=Math.min(W.length,Y);for(let f=0;f<v;f++){let E=W[f];if(!E||typeof E!=="object")continue;let X={},Z=!1;for(let[K,O]of Object.entries(E)){if(K.startsWith("_")||K==="id")continue;X[K]=String(O??"").length,Z=!0}if(Z)$.push(X)}q=!0},B=()=>q,G=(W)=>{let v={id:`${E2}${W}`,[I2]:!0,_index:W};if($.length===0)return v.label=Q.repeat(12),v;let f=$[W%$.length];for(let[E,X]of Object.entries(f))v[E]=Q.repeat(Math.max(1,X));return v};return{analyzeStructure:j,hasAnalyzedStructure:B,generate:G,generateRange:(W,v)=>{let f=[];for(let E=W;E<=v;E++)f.push(G(E));return f},clear:()=>{$=[],q=!1}}},A2=(J)=>{if(!J||typeof J!=="object")return!1;return J[I2]===!0},m2=(J)=>{return J.filter((Q)=>!A2(Q))};var lJ=50,vJ=(J={})=>{let{adapter:Q,initialItems:Y,initialTotal:$,storage:q,placeholder:j,pageSize:B=lJ,onStateChange:G,onItemsLoaded:y,onItemsEvicted:V}=J,W=z2({...q,onEvict:(A,R)=>{V?.(A),c()}}),v=null,f=()=>{if(!v)v=v2(j);return v},E=new Map,X=!1,Z,K=!0,O,P,w=[],S=0,p=new Map,s=()=>{for(let A of p.values())A[1].abort();p.clear()},c=()=>{G?.(k())},e=()=>{E.clear();let A=W.getLoadedRanges();for(let R of A)for(let a=R.start;a<=R.end;a++){let m=W.get(a);if(m&&!A2(m))E.set(m.id,a)}},J2=(A,R)=>{if(!A2(R))E.set(R.id,A)},i=(A)=>{E.delete(A)},Q2=(A,R)=>{return`${A}-${R}`},B2=()=>W.getTotal(),j2=()=>W.getCachedCount(),g=()=>X,M=()=>K,k=()=>({total:W.getTotal(),cached:W.getCachedCount(),isLoading:X,pendingRanges:w,error:Z,hasMore:K,cursor:O}),z=()=>W,_=()=>f(),D=(A)=>{let R=W.get(A);if(R!==void 0)return R;if(A>=0&&A<W.getTotal())return f().generate(A);return},L=(A)=>{let R=E.get(A);if(R===void 0)return;return W.get(R)},d=(A)=>{return E.get(A)??-1},r=(A)=>{let R=W.get(A);return R!==void 0&&!A2(R)},l=(A,R)=>{let a=[],m=W.getTotal();W.touchChunksForRange(A,Math.min(R,m-1));for(let K2=A;K2<=R&&K2<m;K2++){let $2=W.get(K2);if($2!==void 0)a.push($2);else a.push(f().generate(K2))}return a},o=(A)=>{W.setTotal(A),K=W.getCachedCount()<A,c()},U=(A,R=0,a)=>{if(Q&&A.length>0){let m=f();if(!m.hasAnalyzedStructure())m.analyzeStructure(A)}for(let m=0;m<A.length;m++){let K2=A[m];if(K2!==void 0){let $2=R+m;W.set($2,K2),J2($2,K2)}}if(a!==void 0)W.setTotal(a);else if(R+A.length>W.getTotal())W.setTotal(R+A.length);if(W.getCachedCount()>=W.getTotal()&&W.getTotal()>0)K=!1;c(),y?.(A,R,W.getTotal())},C=(A,R)=>{let a=W.get(A);if(!a)return!1;let m=a.id,K2={...a,...R};if(W.set(A,K2),R.id!==void 0&&R.id!==m)i(m);return J2(A,K2),c(),!0},F=(A)=>{let R=E.get(A);if(R===void 0)return!1;if(!W.delete(R))return!1;return e(),s(),c(),!0},x=async(A,R)=>{if(!Q)return;let a=W.chunkSize,m=Math.floor(A/a),K2=Math.floor(R/a),$2=a*2;for(let[Y2,n]of p){let N2=Y2.indexOf("-"),W2=parseInt(Y2.slice(0,N2),10);if(Math.abs(W2-A)>$2)n[1].abort(),p.delete(Y2)}let q2=[],X2=[];for(let Y2=m;Y2<=K2;Y2++){let n=Y2*a,N2=n+a-1,W2=Q2(n,N2);if(W.isChunkLoaded(Y2))continue;let Z2=p.get(W2);if(Z2)X2.push(Z2[0]);else q2.push({start:n,end:N2})}if(q2.length===0)return;for(let Y2 of q2){let n=Q2(Y2.start,Y2.end),N2=new AbortController,W2=(async()=>{w.push(Y2),X=!0,Z=void 0,c();try{let Z2=Y2.end-Y2.start+1,V2={offset:Y2.start,limit:Z2,cursor:Y2.start===P?O:void 0,signal:N2.signal},U2=await Q.read(V2);if(U(U2.items,Y2.start,U2.total),U2.cursor)O=U2.cursor,P=Y2.start+U2.items.length;let M2=Y2.start+U2.items.length;if(M2>=S){if(S=M2,U2.hasMore!==void 0)K=U2.hasMore;else if(U2.total!==void 0)K=M2<U2.total}}catch(Z2){if(Z2?.name==="AbortError")return;Z=Z2 instanceof Error?Z2:Error(String(Z2))}finally{p.delete(n),w=w.filter((Z2)=>Z2.start!==Y2.start||Z2.end!==Y2.end),X=p.size>0,c()}})();p.set(n,[W2,N2]),X2.push(W2)}await Promise.all(X2)},b=async(A,R)=>{if(W.isRangeLoaded(A,R))return;await x(A,R)},N=async()=>{if(!Q)return;await x(0,B-1)},H=async()=>{if(!Q||X||!K)return!1;let A=W.getCachedCount(),R=W.getTotal(),a=A,m=Math.min(a+B-1,R>0?R-1:a+B-1);if(a>=R&&R>0)return K=!1,!1;return await x(a,m),W.getCachedCount()>A},T=async()=>{if(W.clear(),W.setTotal(0),E.clear(),v)v.clear();s(),w=[],X=!1,O=void 0,P=void 0,K=!0,S=0,Z=void 0,c()},h=(A,R)=>{if(W.evictDistant(A,R)>0)e()},I=()=>{W.clear(),E.clear(),O=void 0,P=void 0,Z=void 0,w=[],X=!1,c()},u=()=>{if(W.reset(),E.clear(),v)v.clear();O=void 0,P=void 0,K=!0,S=0,Z=void 0,w=[],X=!1,c()};if(Y&&Y.length>0)U(Y,0,$??Y.length);else if($!==void 0)W.setTotal($),c();return{getState:k,getTotal:B2,getCached:j2,getIsLoading:g,getHasMore:M,getStorage:z,getPlaceholders:_,getItem:D,getItemById:L,getIndexById:d,isItemLoaded:r,getItemsInRange:l,setTotal:o,setItems:U,updateItem:C,removeItem:F,loadRange:x,ensureRange:b,loadInitial:N,loadMore:H,reload:T,evictDistant:h,clear:I,reset:u}};var CJ=(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}},C2=(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,y=Y-B.time;J.velocity=y>0?G/y:0}return J.lastPosition=Q,J.lastTime=Y,J},aJ=(J)=>J.sampleCount>=3,fJ=(J,Q={})=>{let{wheel:Y=!0,sensitivity:$=1,smoothing:q=!1,idleTimeout:j=150,onScroll:B,onIdle:G,scrollElement:y,horizontal:V=!1}=Q,W=!!y,v=0,f=0,E=W?V?window.innerWidth:window.innerHeight:V?J.clientWidth:J.clientHeight,X=Q.compressed??!1,Z=Q.compression,K=CJ(),O=!1,P=null,S=f2(()=>{let F=V?J.scrollLeft:J.scrollTop,x=F>=v?"down":"up";if(K=C2(K,F),v=F,B)B({scrollTop:v,direction:x,velocity:K.velocity});i()}),s=f2(()=>{let F=J.getBoundingClientRect(),x=V?Math.max(0,-F.left):Math.max(0,-F.top),b=x>=v?"down":"up";if(K=C2(K,x),v=x,!O)O=!0;if(B)B({scrollTop:v,direction:b,velocity:K.velocity});i()}),c=(F)=>{F.preventDefault()},e=(F)=>{if(F.deltaX)return;F.preventDefault(),J.scrollLeft+=F.deltaY},J2=(F)=>{if(!X)return;F.preventDefault();let x=(V?F.deltaX||F.deltaY:F.deltaY)*$,b=v+x;if(q)b=v+x*0.3;if(b=Math.max(0,Math.min(b,f)),b!==v){let H=b>=v?"down":"up";if(K=C2(K,b),v=b,!O)O=!0;if(B)B({scrollTop:v,direction:H,velocity:K.velocity});i()}},i=()=>{if(P)clearTimeout(P);P=setTimeout(()=>{if(O=!1,K=CJ(v),G)G()},j)},Q2=(F)=>{if(X)return;if(X=!0,Z=F,f=F.virtualSize-E,W)return;if(S.cancel(),J.removeEventListener("scroll",S),!Y)J.removeEventListener("wheel",c);else if(V)J.removeEventListener("wheel",e);if(V)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",J2,{passive:!1});let x=V?J.scrollLeft:J.scrollTop;if(x>0){let b=V?Z?.actualSize??J.scrollWidth:Z?.actualSize??J.scrollHeight;v=x/b*f}if(V)J.scrollLeft=0;else J.scrollTop=0},B2=()=>{if(!X)return;if(X=!1,W){Z=void 0;return}if(J.removeEventListener("wheel",J2),V)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",S,{passive:!0}),!Y)J.addEventListener("wheel",c,{passive:!1});else if(V)J.addEventListener("wheel",e,{passive:!1});if(Z&&v>0){let x=v/f*(Z.actualSize-E);if(V)J.scrollLeft=x;else J.scrollTop=x}Z=void 0},j2=()=>{if(W||X)return v;return V?J.scrollLeft:J.scrollTop},g=(F,x=!1)=>{let b=Math.max(0,Math.min(F,f||1/0));if(W){let N=J.getBoundingClientRect();if(V){let H=N.left+window.scrollX;window.scrollTo({left:H+b,behavior:x?"smooth":"auto"})}else{let H=N.top+window.scrollY;window.scrollTo({top:H+b,behavior:x?"smooth":"auto"})}}else if(X){if(b===v)return;let H=b>=v?"down":"up";if(K=C2(K,b),v=b,!O)O=!0;if(B)B({scrollTop:v,direction:H,velocity:K.velocity});i()}else if(V)J.scrollTo({left:b,behavior:x?"smooth":"auto"});else J.scrollTo({top:b,behavior:x?"smooth":"auto"})},M=(F)=>{g(j2()+F)},k=()=>{return j2()<=0},z=(F=0)=>{let x=j2(),b=W||X?f:V?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return x>=b-F},_=()=>{let F=j2(),x=W||X?f:V?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(x<=0)return 0;return Math.min(1,Math.max(0,F/x))},D=(F)=>{if(F.compression)Z=F.compression,f=Z.virtualSize-E},L=()=>X,d=()=>Math.abs(K.velocity),r=()=>aJ(K),l=()=>O,o=()=>W,U=(F)=>{if(E=F,Z)f=Z.virtualSize-E},C=()=>{if(P)clearTimeout(P);if(W)s.cancel(),window.removeEventListener("scroll",s);else S.cancel(),J.removeEventListener("scroll",S),J.removeEventListener("wheel",J2),J.removeEventListener("wheel",c),J.removeEventListener("wheel",e)};if(W){if(X&&Z)f=Z.virtualSize-E;window.addEventListener("scroll",s,{passive:!0})}else if(X&&Z){if(f=Z.virtualSize-E,V)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",J2,{passive:!1})}else{if(V)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",S,{passive:!0}),!Y)J.addEventListener("wheel",c,{passive:!1});else if(V)J.addEventListener("wheel",e,{passive:!1})}return{getScrollTop:j2,scrollTo:g,scrollBy:M,isAtTop:k,isAtBottom:z,getScrollPercentage:_,getVelocity:d,isTracking:r,isScrolling:l,updateConfig:D,enableCompression:Q2,disableCompression:B2,isCompressed:L,isWindowMode:o,updateContainerHeight:U,destroy:C}},f2=(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 sJ=(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}},SJ=(J,Q,Y={},$="vlist",q=!1,j)=>{let{autoHide:B=!0,autoHideDelay:G=1000,minThumbSize:y=15,showOnHover:V=!0,showOnViewportEnter:W=!0,clickBehavior:v="scroll"}=Y,f=v==="page"?"scroll":v,E=j??J,X=sJ(Y.padding),Z=q?X.left:X.top,K=q?X.right:X.bottom,O=q?X.bottom:X.right,P=Y.hoverZoneWidth??O+16,w=0,S=0,p=0,s=0,c=!1,e=!1,J2=0,i=0,Q2=0,B2=null,j2=!1,g=null,M=null,k=0,z=0,_=null,D=null,L=null,d=q?"width":"height",r=q?"translateX":"translateY",l=q?(t)=>t.clientX:(t)=>t.clientY,o=q?"left":"top",U=document.createElement("div"),C=document.createElement("div"),F=document.createElement("div"),x=q?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",b=()=>{if(E===J)return;let t=J.offsetTop;U.style[q?"left":"top"]=t?`calc(var(${x}) + ${t}px)`:`var(${x})`,F.style[q?"left":"top"]=`${t}px`},N=()=>{if(U.className=`${$}-scrollbar`,C.className=`${$}-scrollbar-thumb`,q)U.classList.add(`${$}-scrollbar--horizontal`);if(Y.padding!==void 0)E.style.setProperty("--vlist-custom-scrollbar-padding-top",`${X.top}px`),E.style.setProperty("--vlist-custom-scrollbar-padding-right",`${X.right}px`),E.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${X.bottom}px`),E.style.setProperty("--vlist-custom-scrollbar-padding-left",`${X.left}px`);if(Y.minThumbSize!==void 0)U.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${y}px`);if(U.appendChild(C),E.appendChild(U),F.className=`${$}-scrollbar-hover`,q)F.classList.add(`${$}-scrollbar-hover--horizontal`),F.style.height=`${P}px`;else F.style.width=`${P}px`;if(E.appendChild(F),E!==J)b()},H=()=>{if(B2)clearTimeout(B2),B2=null},T=()=>{if(!B)return;H(),B2=setTimeout(I,G)},h=()=>{if(w<=S)return;if(H(),!j2)U.classList.add(`${$}-scrollbar--visible`),j2=!0;if(B&&!c&&!e)T()},I=()=>{if(c||e)return;U.classList.remove(`${$}-scrollbar--visible`),j2=!1},u=(t,_2)=>{if(w=t,S=_2,b(),w<=S){U.style.display="none",I();return}U.style.display="";let D2=Math.max(0,S-Z-K),O2=S/w;if(p=Math.max(y,O2*D2),C.style[d]=`${p}px`,s=D2-p,A(Q2),!B)h()},A=(t)=>{if(Q2=t,w<=S||s<=0)return;let _2=w-S,D2=Math.min(1,Math.max(0,t/_2));C.style.transform=`${r}(${D2*s}px)`},R=(t)=>{if(t.target===C||f!=="jump"||s<=0)return;let _2=w-S,D2=U.getBoundingClientRect(),O2=l(t)-D2[o],H2=Math.max(0,Math.min(O2-p/2,s));Q(H2/s*_2),h()},a=()=>{if(_!==null)clearTimeout(_),_=null;if(D!==null)cancelAnimationFrame(D),D=null;L=null},m=(t)=>{let _2=s>0?z/t*s:0;if(k<_2)return-1;if(k>=_2+p)return 1;return 0},K2=()=>{let t=w-S,_2=m(t);if(_2===0){a();return}if(_2===-1){if(z<=0){a();return}let D2=Math.max(0,z-S);z=D2,Q(D2)}else{if(z>=t){a();return}let D2=Math.min(t,z+S);z=D2,Q(D2)}h()},$2=(t)=>{if(L===null){L=t,D=requestAnimationFrame($2);return}let _2=w-S,D2=t-L;L=t;let O2=m(_2);if(O2===0){a();return}let H2=12*S/1000,b2=Math.min(H2*D2,S);if(O2===-1){if(z<=0){a();return}let T2=Math.max(0,z-b2);z=T2,Q(T2)}else{if(z>=_2){a();return}let T2=Math.min(_2,z+b2);z=T2,Q(T2)}H(),D=requestAnimationFrame($2)},q2=()=>{a(),T(),document.removeEventListener("mouseup",q2)},X2=(t)=>{if(t.target===C||f!=="scroll")return;t.preventDefault();let _2=U.getBoundingClientRect();k=l(t)-_2[o],z=Q2,K2(),_=setTimeout(()=>{D=requestAnimationFrame($2)},350),document.addEventListener("mouseup",q2)},Y2=(t)=>{t.preventDefault(),t.stopPropagation(),c=!0,J2=l(t),i=Q2,H(),U.classList.add(`${$}-scrollbar--dragging`),document.addEventListener("mousemove",n),document.addEventListener("mouseup",N2)},n=(t)=>{if(!c)return;let _2=l(t)-J2,D2=s>0?_2/s:0,O2=w-S,H2=D2*O2,b2=Math.max(0,Math.min(i+H2,O2));if(C.style.transform=`${r}(${b2/O2*s}px)`,M=b2,g===null)g=requestAnimationFrame(()=>{if(M!==null)Q(M);g=null})},N2=()=>{if(c=!1,g!==null)cancelAnimationFrame(g),g=null;if(M!==null)Q(M),M=null;if(U.classList.remove(`${$}-scrollbar--dragging`),B&&!e)T();document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",N2)},W2=()=>{if(W)h()},Z2=()=>{if(!c){if(e=!1,B)T()}},V2=()=>{e=!0,H(),h()},U2=()=>{if(e=!1,!c&&B)T()},M2=()=>{if(H(),a(),g!==null)cancelAnimationFrame(g),g=null;U.removeEventListener("click",R),U.removeEventListener("mousedown",X2),U.removeEventListener("mouseenter",V2),document.removeEventListener("mouseup",q2),U.removeEventListener("mouseleave",U2),C.removeEventListener("mousedown",Y2),J.removeEventListener("mouseenter",W2),J.removeEventListener("mouseleave",Z2),document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",N2),F.removeEventListener("click",R),F.removeEventListener("mousedown",X2),F.removeEventListener("mouseenter",V2),F.removeEventListener("mouseleave",U2),F.remove(),E.style.removeProperty("--vlist-custom-scrollbar-padding-top"),E.style.removeProperty("--vlist-custom-scrollbar-padding-right"),E.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),E.style.removeProperty("--vlist-custom-scrollbar-padding-left"),U.remove()};if(N(),U.addEventListener("click",R),U.addEventListener("mousedown",X2),U.addEventListener("mouseenter",V2),U.addEventListener("mouseleave",U2),C.addEventListener("mousedown",Y2),J.addEventListener("mouseenter",W2),J.addEventListener("mouseleave",Z2),F.addEventListener("click",R),F.addEventListener("mousedown",X2),V)F.addEventListener("mouseenter",V2),F.addEventListener("mouseleave",U2);return{show:h,hide:I,updateBounds:u,updatePosition:A,isVisible:()=>j2,destroy:M2}};var nJ=50,oJ=0.1;function iJ(J){let Q=0,Y=0,$=0;function q(){return $>0?Y/$:0}function j(y){if(Q=y,y>oJ&&y<nJ)Y+=y,$++}function B(){let y=J.getTotal();if(y===0)return 0;let V=J.getItemSize();if(V<=0)return 0;let W=J.getContainerSize();if(W<=0)return 0;let v=J.getScrollPosition(),f=typeof J.getColumns==="function"?J.getColumns():1,X=Math.ceil(y/f)*V,K=Math.min(X,G2)-W,O=X-W,P=K>0?O/K:1,w=v*P,S=Math.ceil((w+W)/V);return Math.min(S*f,y)}function G(){let y=J.getTotal(),V=B();return{progress:y>0?Math.min(100,Math.max(0,V/y*100)):0,velocity:Q,velocityAvg:q(),itemCount:V,total:y}}return{getState:G,onVelocity:j}}export{e2 as toggleSelection,EJ as simpleVisibleRange,p2 as selectItems,JJ as selectAll,yJ as rangesEqual,f2 as rafThrottle,UJ as needsScaling,w2 as mergeRanges,$J as isSelected,A2 as isPlaceholderItem,PJ as isInRange,P2 as isGroupHeader,jJ as getSelectedItems,YJ as getSelectedIds,y2 as getScaleState,ZJ as getScaleInfo,y2 as getScale,kJ as getRangeCount,NJ as getMaxItemsWithoutScaling,m2 as filterPlaceholders,zJ as diffRanges,h2 as deselectItems,VJ as createTableRenderer,DJ as createTableLayout,WJ as createTableHeader,s2 as createStickyHeader,iJ as createStats,z2 as createSparseStorage,R2 as createSizeCache,t2 as createSelectionState,SJ as createScrollbar,fJ as createScrollController,v2 as createPlaceholderManager,OJ as createMeasuredSizeCache,GJ as createMasonryRenderer,MJ as createMasonryLayout,l2 as createGroupedSizeFn,a2 as createGroupLayout,_J as createGridRenderer,n2 as createGridLayout,wJ as createEmitter,vJ as createAsyncManager,QJ as clearSelection,TJ as clampScrollPosition,LJ as calculateTotalSize,RJ as calculateScrollToIndex,qJ as calculateScaledVisibleRange,KJ as calculateScaledScrollToIndex,BJ as calculateScaledRenderRange,L2 as calculateScaledItemPosition,AJ as calculateRenderRange,u2 as calculateMissingRanges,bJ as calculateItemOffset,XJ as calculateIndexFromScrollPosition,HJ as calculateActualSize,r2 as buildLayoutItems,G2 as MAX_VIRTUAL_SIZE};
package/dist/size.json CHANGED
@@ -1 +1 @@
1
- {"base":{"minified":"28.6","gzipped":"10.9","minBytes":29322,"gzBytes":11148},"withGrid":{"minified":"41.4","gzipped":"15.0","minBytes":42391,"gzBytes":15313},"withMasonry":{"minified":"38.8","gzipped":"14.4","minBytes":39695,"gzBytes":14731},"withGroups":{"minified":"43.1","gzipped":"15.4","minBytes":44093,"gzBytes":15740},"withAsync":{"minified":"40.8","gzipped":"15.3","minBytes":41745,"gzBytes":15715},"withSelection":{"minified":"39.7","gzipped":"13.9","minBytes":40618,"gzBytes":14229},"withScale":{"minified":"40.8","gzipped":"14.5","minBytes":41804,"gzBytes":14842},"withScrollbar":{"minified":"34.7","gzipped":"12.7","minBytes":35568,"gzBytes":13023},"withPage":{"minified":"30.7","gzipped":"11.6","minBytes":31448,"gzBytes":11860},"withSnapshots":{"minified":"32.3","gzipped":"12.1","minBytes":33114,"gzBytes":12384},"withTable":{"minified":"47.4","gzipped":"16.7","minBytes":48547,"gzBytes":17120},"withSortable":{"minified":"37.8","gzipped":"13.8","minBytes":38710,"gzBytes":14128},"withAutoSize":{"minified":"31.2","gzipped":"11.8","minBytes":31924,"gzBytes":12044}}
1
+ {"base":{"minified":"29.1","gzipped":"11.0","minBytes":29755,"gzBytes":11289},"withGrid":{"minified":"41.8","gzipped":"15.1","minBytes":42822,"gzBytes":15471},"withMasonry":{"minified":"39.2","gzipped":"14.5","minBytes":40137,"gzBytes":14876},"withGroups":{"minified":"43.5","gzipped":"15.5","minBytes":44524,"gzBytes":15890},"withAsync":{"minified":"41.2","gzipped":"15.5","minBytes":42176,"gzBytes":15864},"withSelection":{"minified":"40.1","gzipped":"14.0","minBytes":41051,"gzBytes":14369},"withScale":{"minified":"41.3","gzipped":"14.7","minBytes":42337,"gzBytes":15016},"withScrollbar":{"minified":"35.3","gzipped":"12.9","minBytes":36099,"gzBytes":13201},"withPage":{"minified":"31.1","gzipped":"11.7","minBytes":31879,"gzBytes":12000},"withSnapshots":{"minified":"32.8","gzipped":"12.3","minBytes":33590,"gzBytes":12553},"withTable":{"minified":"47.8","gzipped":"16.9","minBytes":48978,"gzBytes":17255},"withSortable":{"minified":"38.2","gzipped":"13.9","minBytes":39141,"gzBytes":14276},"withAutoSize":{"minified":"31.6","gzipped":"11.9","minBytes":32355,"gzBytes":12195}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vlist",
3
- "version": "1.8.0",
3
+ "version": "1.8.2",
4
4
  "description": "Lightweight, high-performance virtual list with zero dependencies",
5
5
  "author": {
6
6
  "name": "Floor IO",