vlist 1.7.7 → 1.7.8

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 11.2 KB.
3
+ The virtual list library for every framework. Accessible by default, batteries-included, with composable features — in 10.7 KB.
4
4
 
5
- **v1.7.7** — [Changelog](./CHANGELOG.md)
5
+ **v1.7.8** — [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: `withSortable()`**drag-and-drop reordering with auto-scroll, keyboard support, and ARIA announcements
11
+ - **New: 10.7 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
- - **11.2 KB gzipped** — composable features with perfect tree-shaking
14
+ - **10.7 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,19 +94,19 @@ const list = vlist({
94
94
 
95
95
  | Feature | Size | Description |
96
96
  |---------|------|-------------|
97
- | **Base** | 11.2 KB | Virtualization, ARIA, keyboard nav, gap, padding |
98
- | `withAsync()` | +4.5 KB | Lazy loading with velocity-aware fetching |
99
- | `withSelection()` | +3.2 KB | Single/multiple selection with 2D keyboard nav |
100
- | `withScale()` | +3.7 KB | 1M+ items via scroll compression |
101
- | `withGroups()` | +4.6 KB | Sticky/inline headers with async group discovery |
97
+ | **Base** | 10.7 KB | Virtualization, ARIA, keyboard nav, gap, padding |
98
+ | `withAsync()` | +4.4 KB | Lazy loading with velocity-aware fetching |
99
+ | `withSelection()` | +3.0 KB | Single/multiple selection with 2D keyboard nav |
100
+ | `withScale()` | +3.6 KB | 1M+ items via scroll compression |
101
+ | `withGroups()` | +4.4 KB | Sticky/inline headers with async group discovery |
102
102
  | `withAutoSize()` | +0.9 KB | Auto-measure items via ResizeObserver |
103
103
  | `withScrollbar()` | +1.8 KB | Custom scrollbar UI |
104
104
  | `withGrid()` | +4.0 KB | 2D grid layout |
105
- | `withMasonry()` | +3.5 KB | Pinterest-style masonry with lane-aware keyboard nav |
105
+ | `withMasonry()` | +3.4 KB | Pinterest-style masonry with lane-aware keyboard nav |
106
106
  | `withTable()` | +5.5 KB | Data table with columns, resize, sort |
107
107
  | `withPage()` | +0.7 KB | Window-level scrolling |
108
- | `withSortable()` | +3.0 KB | Drag-and-drop reordering with auto-scroll |
109
- | `withSnapshots()` | +1.3 KB | Scroll position save/restore |
108
+ | `withSortable()` | +2.9 KB | Drag-and-drop reordering with auto-scroll |
109
+ | `withSnapshots()` | +1.2 KB | Scroll position save/restore |
110
110
 
111
111
  ## Examples
112
112
 
package/README.md CHANGED
@@ -1,15 +1,17 @@
1
1
  # vlist
2
2
 
3
- The virtual list library for every framework. Accessible by default, batteries-included, with composable features — in 11.2 KB.
3
+ The virtual list library for every framework. Accessible by default, batteries-included, with composable features — in 10.7 KB.
4
+
5
+ **v1.7.8** — [Changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md)
4
6
 
5
7
  [![npm version](https://img.shields.io/npm/v/vlist.svg)](https://www.npmjs.com/package/vlist)
6
8
  [![CI](https://github.com/floor/vlist/actions/workflows/ci.yml/badge.svg)](https://github.com/floor/vlist/actions/workflows/ci.yml)
7
9
  [![license](https://img.shields.io/npm/l/vlist.svg)](https://github.com/floor/vlist/blob/main/LICENSE)
8
10
 
9
- - **New: `withSortable()`**drag-and-drop reordering with auto-scroll, keyboard support, and ARIA announcements
11
+ - **New: 10.7 KB base** optimized from 11.2 KB, every feature bundle reduced
10
12
  - **Zero dependencies** — framework-agnostic core, tiny adapters for Vue, Svelte, Solid, React
11
13
  - **Accessible** — WAI-ARIA, 2D keyboard navigation, focus recovery, screen-reader DOM ordering
12
- - **11.2 KB gzipped** — composable features with perfect tree-shaking
14
+ - **10.7 KB gzipped** — composable features with perfect tree-shaking
13
15
  - **Constant memory** — ~0.1 MB overhead at any scale, from 10K to 1M+ items
14
16
  - **Vertical & horizontal** — single axis-neutral code path, every feature works in both orientations
15
17
 
@@ -54,19 +56,19 @@ const list = vlist({ container: '#app', items, item: { height: 200, template: re
54
56
 
55
57
  | Feature | Size | Description |
56
58
  |---------|------|-------------|
57
- | **Base** | 11.2 KB | Virtualization, ARIA, keyboard nav, gap, padding |
58
- | `withAsync()` | +4.5 KB | Lazy loading with velocity-aware fetching |
59
- | `withSelection()` | +3.2 KB | Single/multiple selection with 2D keyboard nav |
60
- | `withScale()` | +3.7 KB | 1M+ items via scroll compression |
61
- | `withGroups()` | +4.6 KB | Sticky/inline headers with async group discovery |
59
+ | **Base** | 10.7 KB | Virtualization, ARIA, keyboard nav, gap, padding |
60
+ | `withAsync()` | +4.4 KB | Lazy loading with velocity-aware fetching |
61
+ | `withSelection()` | +3.0 KB | Single/multiple selection with 2D keyboard nav |
62
+ | `withScale()` | +3.6 KB | 1M+ items via scroll compression |
63
+ | `withGroups()` | +4.4 KB | Sticky/inline headers with async group discovery |
62
64
  | `withAutoSize()` | +0.9 KB | Auto-measure items via ResizeObserver |
63
65
  | `withScrollbar()` | +1.8 KB | Custom scrollbar UI |
64
66
  | `withGrid()` | +4.0 KB | 2D grid layout |
65
- | `withMasonry()` | +3.5 KB | Pinterest-style masonry with lane-aware keyboard nav |
67
+ | `withMasonry()` | +3.4 KB | Pinterest-style masonry with lane-aware keyboard nav |
66
68
  | `withTable()` | +5.5 KB | Data table with columns, resize, sort |
67
69
  | `withPage()` | +0.7 KB | Window-level scrolling |
68
- | `withSortable()` | +3.0 KB | Drag-and-drop reordering with auto-scroll |
69
- | `withSnapshots()` | +1.3 KB | Scroll position save/restore |
70
+ | `withSortable()` | +2.9 KB | Drag-and-drop reordering with auto-scroll |
71
+ | `withSnapshots()` | +1.2 KB | Scroll position save/restore |
70
72
 
71
73
  ## Framework Adapters
72
74
 
@@ -64,5 +64,5 @@ export interface AsyncGroupBridge {
64
64
  * @param getItem - Item accessor from the async data manager
65
65
  * @param isItemLoaded - Check if an item at index is loaded (not placeholder)
66
66
  */
67
- export declare const createAsyncGroupBridge: (config: AsyncBridgeConfig, _getItem: (index: number) => VListItem | undefined, _isItemLoaded: (index: number) => boolean) => AsyncGroupBridge;
67
+ export declare const createAsyncGroupBridge: (config: AsyncBridgeConfig, _getItem?: (index: number) => VListItem | undefined, _isItemLoaded?: (index: number) => boolean) => AsyncGroupBridge;
68
68
  //# sourceMappingURL=async-bridge.d.ts.map
@@ -15,6 +15,16 @@
15
15
  */
16
16
  import type { GroupsConfig, GroupBoundary, GroupLayout, GroupHeaderItem } from "./types";
17
17
  import type { VListItem } from "../../types";
18
+ /**
19
+ * Find the last group whose headerLayoutIndex <= layoutIndex.
20
+ * Returns the group's index in the groups array.
21
+ */
22
+ export declare const findGroupByLayoutIndex: (groups: readonly GroupBoundary[], layoutIndex: number) => number;
23
+ /**
24
+ * Find the last group whose firstDataIndex <= dataIndex.
25
+ * Returns the group's index in the groups array.
26
+ */
27
+ export declare const findGroupByDataIndex: (groups: readonly GroupBoundary[], dataIndex: number) => number;
18
28
  /**
19
29
  * Build the transformed layout items array with header pseudo-items inserted
20
30
  * at group boundaries.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var _2=2,V2=(J=0)=>({velocity:0,sampleCount:0}),D2=(J,q)=>{let j=performance.now(),Q=J._lt??j,Y=J._lp??q,X=j-Q;if(J._lp=q,J._lt=j,X===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(X>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(q-Y)/X,J.sampleCount=Math.min(J.sampleCount+1,5),J};var AJ=(J,q)=>{let j=q;return{getOffset:(Q)=>Q*J,getSize:(Q)=>J,indexAtOffset:(Q)=>{if(j===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(Q/J),j-1))},getTotalSize:()=>j*J,getTotal:()=>j,rebuild:(Q)=>{j=Q},isVariable:()=>!1}},EJ=(J,q)=>{let j=q,Q=new Float64Array(0),Y=(W)=>{j=W,Q=new Float64Array(W+1),Q[0]=0;for(let Z=0;Z<W;Z++)Q[Z+1]=Q[Z]+J(Z)};Y(q);let X=(W)=>{if(j===0)return 0;if(W<=0)return 0;if(W>=Q[j])return j-1;let Z=0,_=j-1;while(Z<_){let K=Z+_+1>>>1;if(Q[K]<=W)Z=K;else _=K-1}return Z};return{getOffset:(W)=>{if(W<=0)return 0;if(W>=j)return Q[j];return Q[W]},getSize:(W)=>J(W),indexAtOffset:(W)=>X(W),getTotalSize:()=>Q[j]??0,getTotal:()=>j,rebuild:(W)=>Y(W),isVariable:()=>!0}},c0=(J,q)=>{if(typeof J==="number")return AJ(J,q);return EJ(J,q)},G2=(J,q,j,Q)=>{if(Q===0)return 0;if(!J.isVariable())return Math.ceil(j/J.getSize(0));let Y=0,X=0,W=q;while(W<Q&&X<j)X+=J.getSize(W),Y++,W++;return Math.max(1,Y)};var M2=()=>{let J={},q=(X,W)=>{if(!J[X])J[X]=new Set;return J[X].add(W),()=>j(X,W)},j=(X,W)=>{J[X]?.delete(W)};return{on:q,off:j,emit:(X,W)=>{J[X]?.forEach((Z)=>{try{Z(W)}catch(_){console.error(`[vlist] Error in event handler for "${String(X)}":`,_)}})},clear:(X)=>{if(X)delete J[X];else for(let W in J)delete J[W]}}};var O2=(J)=>{if(typeof J==="string"){let q=document.querySelector(J);if(!q)throw Error(`[vlist] Container not found: ${J}`);return q}return J},Y1=(J,q)=>{let j=document.createElement("div");if(j.className=J,q)j.style.cssText=q;return j},A2=(J,q,j,Q,Y)=>{let X=Q,W=Y1(q);if(X)W.classList.add(`${q}--horizontal`);if(Y!==!1)W.setAttribute("tabindex","0");let Z=Y1(`${q}-viewport`,X?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");Z.setAttribute("tabindex","-1");let _=Y1(`${q}-content`,X?"position:relative;height:100%":"position:relative;width:100%"),K=Y1(`${q}-items`,X?"position:relative;height:100%":"position:relative;width:100%");if(K.setAttribute("role","listbox"),j)K.setAttribute("aria-label",j);if(X)K.setAttribute("aria-orientation","horizontal");let U=Y1(`${q}-live`,"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0");return U.setAttribute("aria-live","polite"),U.setAttribute("aria-atomic","true"),U.setAttribute("role","status"),_.appendChild(K),Z.appendChild(_),W.appendChild(U),W.appendChild(Z),J.appendChild(W),{root:W,viewport:Z,content:_,items:K,liveRegion:U}};var E2=(J=100)=>{let q=[];return{acquire:()=>{let j=q.pop();if(j)return j;let Q=document.createElement("div");return Q.setAttribute("role","option"),Q},release:(j)=>{if(q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),q.push(j)},clear:()=>{q.length=0}}};var L2=(J,q,j,Q,Y)=>{if(Q===0||q===0){Y.start=0,Y.end=-1;return}let X=j.indexAtOffset(J),W=j.indexAtOffset(J+q);if(W<Q-1)W++;Y.start=Math.max(0,X),Y.end=Math.min(Q-1,Math.max(0,W))},F2=(J,q,j,Q)=>{Q.start=Math.max(0,J.start-q),Q.end=Math.min(j-1,J.end+q)},T2=(J,q,j,Q,Y,X=0)=>{if(Q===0)return 0;let W=Math.max(0,Math.min(J,Q-1)),Z=q.getOffset(W),_=q.getSize(W),K=q.getTotalSize(),U=Math.max(0,K+X-j),S;switch(Y){case"center":S=Z-(j-_)/2;break;case"end":S=X>0&&Z+_>=K?U:Z-j+_;break;default:S=Z}return Math.max(0,Math.min(S,U))};var G1={top:0,right:0,bottom:0,left:0},S0=(J)=>{if(J==null)return G1;if(typeof J==="number")return J===0?G1:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[X,W]=J;return X===0&&W===0?G1:{top:X,right:W,bottom:X,left:W}}let[q,j,Q,Y]=J;return q===0&&j===0&&Q===0&&Y===0?G1:{top:q,right:j,bottom:Q,left:Y}},s0=(J,q)=>q?J.left+J.right:J.top+J.bottom,M1=(J,q)=>q?J.top+J.bottom:J.left+J.right;var a0=(J,q,j)=>{let Q=Array.from(q).sort((W,Z)=>W-Z);if(Q.length<=1)return;let Y=[];for(let W=0;W<Q.length;W++){let Z=j(Q[W]);if(Z)Y.push(Z)}if(Y.length<=1)return;let X=J.firstChild;for(let W=0;W<Y.length;W++){let Z=Y[W];if(Z===X)X=X.nextSibling;else J.insertBefore(Z,X)}};var H2=(J,q)=>{let{dom:j,emitter:Q,resolvedConfig:Y,rawConfig:X,rendered:W,pool:Z,sharedState:_,isHorizontal:K,classPrefix:U,contentSizeHandlers:S,idleHandlers:T,afterScroll:O,clickHandlers:F,contextMenuHandlers:f,keydownHandlers:L,resizeHandlers:w,destroyHandlers:b,methods:R,onScrollFrame:y,resizeObserver:h,renderRange:p,afterRenderBatch:I}=q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return Y},get rawConfig(){return X},adjustScrollPosition(A){if(J.mp===0)return A;let d=K?J.cw:J.ch,i=J.hc.getTotalSize(),o=Math.max(0,i-d),g=Math.max(0,i+J.mp-d);if(A>=o)return g;return Math.min(A,g)},get renderer(){return{render:(A,d,i,o,g)=>{J.ss=i,J.fi=o,J.ffn()},updateItemClasses:(A,d,i)=>{J.uic(A,d,i)},updatePositions:()=>{},updateItem:()=>{},getElement:(A)=>W.get(A)??null,clear:()=>{},destroy:()=>{}}},set renderer(A){},get dataManager(){return J.dm},set dataManager(A){J.dm=A},get scrollController(){return J.sc},set scrollController(A){J.sc=A},state:_,getContainerWidth(){return J.cw},afterScroll:O,idleHandlers:T,afterRenderBatch:I,clickHandlers:F,contextMenuHandlers:f,keydownHandlers:L,resizeHandlers:w,contentSizeHandlers:S,destroyHandlers:b,methods:R,replaceTemplate(A){J.at=A},replaceRenderer(A){},replaceDataManager(A){J.dm=A},replaceScrollController(A){J.sc=A},getItemsForRange(A){let{dm:d,it:i}=J,o=[];for(let g=A.start;g<=A.end;g++){let C=d?d.getItem(g):i[g];if(C)o.push(C)}return o},getAllLoadedItems(){let A=J.dm;if(A){let d=A.getTotal(),i=[];for(let o=0;o<d;o++){let g=A.getItem(o);if(g)i.push(g)}return i}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let A=J.hc;return{isCompressed:!1,actualSize:A.getTotalSize(),virtualSize:A.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:p.start,compression:_.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,A]of W)A.remove(),Z.release(A);W.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(A,d){J.rfn=A,J.ffn=d},setVirtualTotalFn(A){J.vtf=A},rebuildSizeCache(A){J.hc.rebuild(A??J.vtf())},setSizeConfig(A){if(J.hc=c0(A,J.vtf()),J.gp>0){let d=J.hc.getTotalSize,i=J.gp;J.hc.getTotalSize=()=>{let o=d();return o>0?o-i:0}}},updateContentSize(A){let d=`${A+J.mp}px`;if(K)j.content.style.width=d;else j.content.style.height=d},updateCompressionMode(){for(let A=0;A<S.length;A++)S[A]()},setVisibleRangeFn(A){J.gvr=A},getVisibleRange(A,d,i,o){J.gvr(A,d,J.hc,i,o)},setScrollToPosFn(A){J.gsp=A},getScrollToPos(A,d,i,o){return J.gsp(A,J.hc,d,i,o)},setPositionElementFn(A){J.pef=A},setScrollFns(A,d){J.sgt=A,J.sst=(i)=>{d(i),y()}},triggerScrollFrame(){y()},setScrollTarget(A){J.st.removeEventListener("scroll",y),J.st=A,J.st.addEventListener("scroll",y,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(A){J.gcw=A.width,J.gch=A.height,J.cw=A.width(),J.ch=A.height(),_.viewportState.containerSize=K?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,h.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(A){J.sif=A},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(A){J.i2s=A},setUpdateItemClassesFn(A){J.uic=A}}},$2=(J,q,j)=>{let{rendered:Q,itemState:Y,applyTemplate:X,updateContentSize:W}=q,Z=()=>{J.hc.rebuild(J.vtf()),W(),j.updateCompressionMode(),J.ffn()},_=()=>J.it.length;return{getState:()=>({total:_(),cached:_(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:_,getCached:_,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(K)=>J.it[K],isItemLoaded:(K)=>K>=0&&K<_()&&J.it[K]!==void 0,getItemsInRange:(K,U)=>{let S=[];for(let T=Math.max(0,K),O=Math.min(U,_()-1);T<=O;T++)S.push(J.it[T]);return S},setTotal:()=>{},setItems:(K,U=0,S)=>{if(U===0&&(S!==void 0||_()===0))J.it=K;else{let T=U+K.length;if(_()<T)J.it.length=T;for(let O=0;O<K.length;O++)J.it[U+O]=K[O]}if(J.ii)Z()},updateItem:(K,U)=>{let S=J.it;if(K<0||K>=S.length)return!1;let T=S[K];if(!T)return!1;S[K]={...T,...U};let O=Q.get(K);if(O)X(O,J.at(S[K],K,Y)),O.dataset.id=String(S[K].id);return!0},removeItem:(K)=>{let U=typeof K==="number"?K:J.it.findIndex((S)=>S.id===K);if(U<0||U>=J.it.length)return!1;if(J.it.splice(U,1),J.ii)Z();return!0},loadRange:async()=>{},ensureRange:async()=>{},loadInitial:async()=>{},loadMore:async()=>!1,reload:async()=>{},evictDistant:()=>{},clear:()=>{J.it=[]},reset:()=>{if(J.it=[],J.ii)J.hc.rebuild(0),W(),J.ffn()}}},k2=(J,q)=>{let{dom:j,classPrefix:Q,onScrollFrame:Y}=q;return{getScrollTop:()=>J.sgt(),scrollTo:(X)=>{J.sst(X),Y()},scrollBy:(X)=>{let W=J.sgt()+X;J.sst(W),Y()},isAtTop:()=>J.ls<=2,isAtBottom:(X=2)=>J.sab(X),getScrollPercentage:()=>{let X=J.hc.getTotalSize(),W=Math.max(0,X-J.ch);return W>0?J.ls/W:0},getVelocity:()=>J.vt.velocity,isTracking:()=>J.vt.sampleCount>=2,isScrolling:()=>j.root.classList.contains(`${Q}--scrolling`),updateConfig:()=>{},enableCompression:()=>{J.sic=!0},disableCompression:()=>{J.sic=!1},isCompressed:()=>J.sic,isWindowMode:()=>!1,updateContainerHeight:(X)=>{J.ch=X},destroy:()=>{}}};var X1=(J,q,j,Q,Y=0,X=0)=>{let W=q.getOffset(J),Z=q.getSize(J),_=W+Y,K=_+Z,U=j+Q;if(_<j)return Math.max(0,W);if(K>U)return K+X-Q;return j},O1=(J,q,j,Q,Y=0,X=0,W,Z,_)=>{if(!(W!=null&&W.isCompressed&&W.ratio!==1))return X1(J,q,j,Q,Y,X);let{virtualSize:U}=W,S=q.getSize(Math.max(0,J)),T=Q-Y-X,O=Math.max(1,Math.floor(T/S)),F=q.getTotalSize();if(_){if(J>=_.start+O){let b=q.getOffset(J)+S+X-Q;return Math.max(0,b/F*U)}if(J<=_.start){let w=q.getOffset(J)-Y;return Math.max(0,w/F*U)}return j}let f=j/U*Z,L=f+O;if(J>=L){let b=q.getOffset(J)+S+X-Q;return Math.max(0,b/F*U)}if(J<f){let w=q.getOffset(J)-Y;return Math.max(0,w/F*U)}return j};var b2=(J,q,j,Q,Y,X,W,Z,_,K,U,S,T,O)=>{let F=`${j}-item--focused`,f=!1,L=null,w=null,b=null,R=null,y=!1,h=()=>{if(y)return;y=!0,L=_.get("_getNavTotal")??null,w=_.get("_getNavDelta")??null,b=_.get("_navigate")??null,R=_.get("_scrollItemIntoView")??null},p=()=>{return h(),L?L():J.vtf()},I=()=>{return h(),w?w():{ud:1,lr:0,cols:0}};_.set("_getFocusedIndex",()=>f?J.fi:-1);let A=(k,P=!0)=>{if(q.root.setAttribute("aria-activedescendant",`${Q}-item-${k}`),h(),P)if(R)R(k);else{let M=Y?J.cw:J.ch,H=J.i2s(k),G=X1(H,J.hc,J.ls,M,X,W);if(G!==J.ls)J.sst(G),J.ls=J.sgt()}J.ffn()},d=(k)=>{J.fi=k,f=!0,A(k)},i=(k,P)=>{if(J.fi=k,P||O)f=!0;let M=J.dm?J.dm.getItem(k):J.it[k];if(M&&J.ss.has(M.id))J.ss.clear();else if(J.ss.clear(),M)J.ss.add(M.id);A(k,P)},o=(k,P,M)=>{let H=k;while(H>=0&&H<M){let G=J.dm?J.dm.getItem(H):J.it[H];if(!G||!G.__groupHeader)return H;H+=P}H=k-P;while(H>=0&&H<M){let G=J.dm?J.dm.getItem(H):J.it[H];if(!G||!G.__groupHeader)return H;H-=P}return k},g=()=>{if(J.id)return;if(!q.root.matches(":focus-visible"))return;let k=p();if(k===0)return;let P=J.fi>=0?Math.min(J.fi,k-1):0;P=o(P,1,k),d(P)};q.root.addEventListener("focusin",g);let C=(k)=>{if(J.id)return;let P=k.relatedTarget;if(P&&q.root.contains(P))return;if(f=!1,J.fi>=0)K.get(J.fi)?.classList.remove(F);q.root.removeAttribute("aria-activedescendant")};q.root.addEventListener("focusout",C),U.push((k)=>{if(J.id)return;let P=p();if(P===0)return;let M=J.fi,H=M;if(k.key===" "||k.key==="Enter"){if(M>=0){let G=J.dm?J.dm.getItem(M):J.it[M];if(G&&!G.__groupHeader)i(M,!0)}k.preventDefault();return}if(h(),b)switch(k.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":H=b(M,k.key,P);break;default:return}else{let{ud:G,lr:m}=I();switch(k.key){case"ArrowUp":H=M-G;break;case"ArrowDown":H=M+G;break;case"ArrowLeft":if(!m)return;H=M-m;break;case"ArrowRight":if(!m)return;H=M+m;break;case"PageUp":case"PageDown":{let e=J.hc.getSize(J.i2s(Math.max(0,M))),s=Math.max(G,Math.floor((Y?J.cw:J.ch)/e)*G),x=_.get("_layoutToDataIndex"),J0=_.get("_dataToLayoutIndex");if(x&&J0){let n=x(M),B=k.key==="PageUp"?-s:s,l=x(P-1);H=J0(Math.max(0,Math.min(l,n+B)))}else H=k.key==="PageUp"?M-s:M+s;break}case"Home":H=0;break;case"End":H=P-1;break;default:return}if(H<0)H=Z?P-1:0;else if(H>=P)H=Z?0:P-1}if(k.preventDefault(),H=o(H,H>=M?1:-1,P),H!==M)d(H)}),S.push((k)=>{if(J.id)return;let P=k.target.closest("[data-index]");if(!P)return;let M=parseInt(P.dataset.index??"-1",10);if(M<0)return;let H=J.dm?.getItem(M)??J.it[M];if(!H||H.__groupHeader)return;f=!1,q.root.focus({preventScroll:!0}),i(M,!1)}),T.push(()=>{q.root.removeEventListener("focusin",g),q.root.removeEventListener("focusout",C)})};var o0=(J,q)=>{let j,Q;return{getSetSize:()=>{if(j===void 0)j=J.get("_getTotal")??null;return j?j():q()},getPosInSet:(Y)=>{if(Q===void 0)Q=J.get("_layoutToDataIndex")??null;return Q?Q(Y)+1:Y+1}}};var z1=200,n0=50;var R2=50,P2=12,w2=2,i0=16000000;var y2="x",z2=20,C1="_isPlaceholder",g0="__placeholder_";var m0=(J,q,j)=>{if(String(j).startsWith(g0))return!1;let Q=g0+q;if(J.has(Q))return J.delete(Q),J.add(j),!0;return!1},C2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),t0=(J,q,j)=>{if(j==="none")return J;let Q=new Set(J.selected);if(j==="single"){if(Q.clear(),q.length>0)Q.add(q[0])}else for(let Y of q)Q.add(Y);return{...J,selected:Q}},v1=(J,q)=>{let j=new Set(J.selected);for(let Q of q)j.delete(Q);return{...J,selected:j}},e0=(J,q,j)=>{if(j==="none")return J;if(J.selected.has(q))return v1(J,[q]);else return t0(J,[q],j)},S1=(J,q,j)=>{if(j!=="multiple")return J;return{...J,selected:new Set(q.map((Q)=>Q.id))}},f1=(J)=>({...J,selected:new Set}),x0=(J,q)=>{return J.focusedIndex=q,J},A1=(J,q,j=!1,Q=1)=>{if(q===0)return J;let Y=J.focusedIndex-Q;if(Y<0)Y=j?q-1:0;return J.focusedIndex=Y,J},E1=(J,q,j=!1,Q=1)=>{if(q===0)return J;let Y=J.focusedIndex+Q;if(Y>=q)Y=j?0:q-1;return J.focusedIndex=Y,J},v2=(J,q)=>{if(q===0)return J;return J.focusedIndex=0,J},S2=(J,q)=>{if(q===0)return J;return J.focusedIndex=q-1,J},f2=(J,q,j,Q)=>{if(q===0)return J;let Y=Q==="up"?J.focusedIndex-j:J.focusedIndex+j;return Y=Math.max(0,Math.min(q-1,Y)),J.focusedIndex=Y,J};var L1=(J)=>{return Array.from(J.selected)},F1=(J,q)=>{let j=[];for(let Q of J.selected){let Y=q(Q);if(Y)j.push(Y)}return j};var T1=(J,q,j,Q,Y)=>{if(Y!=="multiple")return J;let X=Math.min(j,Q),W=Math.max(j,Q),Z=[];for(let _=X;_<=W;_++){let K=q[_];if(K)Z.push(K.id)}return t0(J,Z,Y)};var h1=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,d0=(J)=>{let q=typeof J==="object"&&J?J:null;return{align:typeof J==="string"?J:q?.align??"start",behavior:q?.behavior??"auto",duration:q?.duration??300}},J1=(J,q)=>{let j=null,Q=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(X,W,Z)=>{if(Q(),Math.abs(W-X)<1){J.scrollTo(W);return}let _=performance.now(),K=(U)=>{let S=U-_,T=Math.min(S/Z,1),O=X+(W-X)*h1(T);if(J.scrollTo(O),q(),T<1)j=requestAnimationFrame(K);else j=null};j=requestAnimationFrame(K)},cancelScroll:Q}};var h2=(J,q,j,Q,Y,X,W,Z,_,K,U,S,T,O,F,f,L,w,b)=>{let R=($)=>{{if(!Array.isArray($)){console.warn("[vlist] setItems() expects an array, got:",typeof $);return}if($.length>0&&$[0]&&!("id"in $[0]))console.warn('[vlist] Items must have an "id" property. First item:',$[0]);let E=Math.min($.length,1e4),N=new Set;for(let V=0;V<E;V++){let D=$[V];if(D&&"id"in D){if(N.has(D.id)){console.warn(`[vlist] Duplicate item ID "${D.id}" at index ${V}. updateItem() and removeItem() will only match the first occurrence.`);break}N.add(D.id)}}}G(),_.dataManager.setItems($,0,$.length)},y=($)=>{let E=K&&J.sab(2);if(_.dataManager.setItems($,J.it.length),E&&J.it.length>0){let N=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(N),J.ls=N,J.rfn()}},h=($)=>{let E=K?J.sgt():0,N=K?J.hc.getTotalSize():0,V=[...J.it];if(_.dataManager.clear(),_.dataManager.setItems([...$,...V],0),K){let D=J.hc.getTotalSize()-N;if(D>0)J.sst(E+D),J.ls=E+D}},p=null,I=null,A=null,d=!1,i=()=>{if(d)return;d=!0,p=X.get("_updateRenderedItem")??null,I=X.get("_getSelectedIds")??null,A=X.get("_getFocusedIndex")??null},o=($,E)=>{{let V=J.vtf();if($<0||$>=V)console.warn(`[vlist] updateItem() index ${$} is out of range (0–${V-1}).`)}if(_.dataManager.updateItem($,E),i(),!p)return;let N=_.dataManager.getItem($);if(N){let D=(I?I():J.ss).has(N.id),z=(A?A():J.fi)===$;p($,N,D,z)}},g=!1,C=($)=>{let E=typeof document<"u"?document.activeElement:null,N=E&&q.items.contains(E)?parseInt(E.dataset?.index??"-1",10):-1;if(!_.dataManager.removeItem($))return console.warn(`[vlist] removeItem() could not find item with id "${$}".`),!1;if(j.emit("data:change",{type:"remove",id:$}),_.forceRender(),!g){let D=_.dataManager;if(typeof D.ensureRange==="function")g=!0,queueMicrotask(()=>{g=!1;let z=_.dataManager.getTotal(),{start:v,end:u}=_.state.viewportState.renderRange;if(z>0&&u>=v)D.ensureRange(v,u).catch(()=>{})})}if(N>=0){let D=J.vtf();if(D>0)Q.get(Math.min(N,D-1))?.focus()}return!0},k=($)=>{return _.dataManager.getItem($)},P=($)=>{return _.dataManager.getIndexById?.($)??-1},M=async($)=>{if(_.dataManager.reload)await _.dataManager.reload()},H=null,G=()=>{if(H!==null)cancelAnimationFrame(H),H=null},m=($,E,N,V)=>{if(G(),Math.abs(E-$)<1){J.sst(E),J.ls=E,J.rfn();return}let D=performance.now(),z=(v)=>{let u=v-D,t=Math.min(u/N,1),q0=V?V():E,c=$+(q0-$)*h1(t);if(J.sst(c),J.ls=c,J.rfn(),t<1)H=requestAnimationFrame(z);else H=null};H=requestAnimationFrame(z)},e=($,E)=>{{let t=J.vtf();if(t>0&&($<0||$>=t))console.warn(`[vlist] scrollToIndex(${$}) is out of range (0–${t-1}).`)}let{align:N,behavior:V,duration:D}=d0(E),z=J.vtf(),v=$;if(U&&z>0)v=(v%z+z)%z;let u=J.gsp(v,J.hc,J.ch,z,N);if(V==="smooth"){let t=v,q0=N;m(J.sgt(),u,D,()=>J.gsp(t,J.hc,J.ch,J.vtf(),q0))}else G(),J.sst(u)},s=()=>J.sgt(),x=($,E)=>{return j.on($,E)},J0=($,E)=>{j.off($,E)},n=()=>{if(J.id)return;if(J.id=!0,_.state.isDestroyed=!0,q.items.removeEventListener("click",S),q.items.removeEventListener("dblclick",T),q.items.removeEventListener("contextmenu",O),q.root.removeEventListener("keydown",F),J.st.removeEventListener("scroll",f),L.disconnect(),w(),J.wh)q.viewport.removeEventListener("wheel",J.wh);b();let $=[];for(let E=0;E<Z.length;E++)try{Z[E]()}catch(N){$.push(N instanceof Error?N:Error(String(N)))}for(let E of W)if(E.destroy)try{E.destroy()}catch(N){$.push(N instanceof Error?N:Error(String(N)))}G();for(let[,E]of Q)E.remove(),Y.release(E);Q.clear(),Y.clear(),j.emit("destroy",void 0);for(let E of $)j.emit("error",{error:E,context:"destroy"});j.clear(),q.root.remove()},B=($,E)=>X.has($)?X.get($):E,l={get element(){return q.root},get items(){let $=X.get("_getItems");return $?$():J.it},get total(){let $=X.get("_getTotal");return $?$():J.vtf()},setItems:B("setItems",R),appendItems:B("appendItems",y),prependItems:B("prependItems",h),updateItem:B("updateItem",o),removeItem($){let E=X.get("removeItem");return E?E($):C($)},reload:B("reload",M),getItemAt:k,getIndexById:P,scrollToIndex:B("scrollToIndex",e),cancelScroll:B("cancelScroll",G),getScrollPosition:B("getScrollPosition",s),on:x,off:J0,destroy:n};for(let[$,E]of X){if($.charCodeAt(0)===95||$==="setItems"||$==="appendItems"||$==="prependItems"||$==="updateItem"||$==="removeItem"||$==="reload"||$==="scrollToIndex"||$==="scrollToItem"||$==="cancelScroll"||$==="getScrollPosition")continue;l[$]=E}return l};var LJ=3,FJ="vlist",TJ=150,HJ=16000000,$J=4096,kJ=(J)=>(typeof screen<"u"?J?screen.width:screen.height:0)||$J,bJ=0,I1=(J)=>{if(!J.container)throw Error("[vlist] Container is required");if(!J.item)throw Error("[vlist] item configuration is required");let q=J.orientation==="horizontal",j=q?"width":"height",Q=q?"estimatedWidth":"estimatedHeight",Y=q?J.item.width:J.item.height,X=q?J.item.estimatedWidth:J.item.estimatedHeight;if(Y==null&&X==null)throw Error(`[vlist] item.${j} or item.${Q} is required${q?" when orientation is 'horizontal'":""}`);if(Y!=null){if(typeof Y==="number"&&Y<=0)throw Error(`[vlist] item.${j} must be a positive number`);if(typeof Y!=="number"&&typeof Y!=="function")throw Error(`[vlist] item.${j} must be a number or a function (index) => number`)}else if(X!=null){if(typeof X!=="number"||X<=0)throw Error(`[vlist] item.${Q} must be a positive number`)}if(!J.item.template)throw Error("[vlist] item.template is required");if(q&&J.reverse)throw Error("[vlist] horizontal direction cannot be combined with reverse mode");let W=new Map,Z=!1,_={use(K){if(Z)throw Error("[vlist] Cannot call .use() after .build()");return W.set(K.name,K),_},build(){if(Z)throw Error("[vlist] .build() can only be called once");return Z=!0,RJ(J,W,q,Y,X??null)}};return _};function RJ(J,q,j,Q,Y){let{item:X,items:W,overscan:Z=LJ,classPrefix:_=FJ,ariaLabel:K,padding:U,reverse:S=!1,scroll:T,accessible:O,interactive:F}=J,f=F??O??!0,L=T,w=L?.wheel??!0,b=L?.wrap??!1,R=S,y=`${_}-${bJ++}`,h=q.has("withGrid")||q.has("withMasonry")?0:X.gap??0,p=Q??Y,I=Q==null&&Y!=null,A=j?typeof X.height==="number"?X.height:void 0:typeof X.width==="number"?X.width:void 0,d={overscan:Z,classPrefix:_,reverse:R,wrap:b,horizontal:j,ariaIdPrefix:y,interactive:f},i=kJ(j),o=Array.from(q.values()).sort((r,j0)=>(r.priority??50)-(j0.priority??50)),g=new Set(o.map((r)=>r.name));for(let r of o)if(r.conflicts){for(let j0 of r.conflicts)if(g.has(j0))throw Error(`[vlist] ${r.name} and ${j0} cannot be combined`)}if(R){if(g.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let C=O2(J.container),k=A2(C,_,K,j,f);if(L?.wheel===!1)if(j)k.viewport.style.overflowX="hidden";else k.viewport.style.overflow="hidden";if(L?.scrollbar==="none")k.viewport.classList.add(`${_}-viewport--no-scrollbar`);if(L?.gutter==="stable")k.viewport.classList.add(`${_}-viewport--gutter-stable`);let P=g.has("withGrid")||g.has("withMasonry");if(j&&A!=null&&L?.scrollbar!=="none"&&!P){k.root.style.height=`${A}px`;let r=k.viewport.style.overflowX;k.viewport.style.overflowX="scroll";let j0=k.viewport.offsetHeight-k.viewport.clientHeight;if(k.viewport.style.overflowX=r,j0>0)k.root.style.height=`${A+j0}px`}let M=S0(U),H=s0(M,j);if(M.top||M.right||M.bottom||M.left)k.content.style.boxSizing="border-box",k.content.style.padding=`${M.top}px ${M.right}px ${M.bottom}px ${M.left}px`;let G=M2(),m=W||[],e=typeof p==="function"&&(q.has("withGrid")||q.has("withMasonry")),s=h>0?typeof p==="function"?(r)=>p(r)+h:p+h:p,x=I?Y+h:s,J0=c0(x,e?0:m.length);if(h>0){let r=J0.getTotalSize;J0.getTotalSize=()=>{let j0=r();return j0>0?j0-h:0}}let n=E2(),B={it:m,hc:J0,ch:Math.min(k.viewport.clientHeight,i),cw:Math.min(k.viewport.clientWidth,i),id:!1,ii:!1,ls:0,vt:V2(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>k.viewport.scrollLeft:()=>k.viewport.scrollTop,sst:j?(r)=>{k.viewport.scrollLeft=r}:(r)=>{k.viewport.scrollTop=r},sab:(r=2)=>{let j0=B.hc.getTotalSize();return B.ls+B.ch>=j0-r},sic:!1,rfn:null,ffn:null,gvr:(r,j0,Y0,E0,z0)=>{L2(r,j0,Y0,E0,z0)},gsp:(r,j0,Y0,E0,z0)=>{return T2(r,j0,Y0,E0,z0,B.mp)},pef:null,at:X.template,vre:!0,st:k.viewport,wh:null,gcw:()=>B.cw,gch:()=>B.ch,gp:h,mp:H,sif:(r)=>r,i2s:(r)=>r,uic:(r,j0,Y0)=>{let E0=v.get(r);if(!E0)return;W0(E0,j0,Y0)},csi:null};B.vtf=()=>B.dm?B.dm.getTotal():B.it.length;let l=null,$=!1,E={start:0,end:0},N={start:0,end:0},V={start:-1,end:-1},D={viewportState:{scrollPosition:0,containerSize:j?B.cw:B.ch,totalSize:B.hc.getTotalSize(),actualSize:B.hc.getTotalSize(),isCompressed:!1,compressionRatio:1,visibleRange:{start:0,end:0},renderRange:{start:0,end:0}},lastRenderRange:{start:-1,end:-1},isInitialized:!1,isDestroyed:!1,cachedCompression:null},z=()=>({...D.viewportState,totalItems:B.vtf()}),v=new Map,u=()=>{a0(k.items,v.keys(),(r)=>v.get(r))},t=()=>{let r=B.hc.getTotalSize(),Y0=`${(B.sic?r:Math.min(r,HJ))+H}px`;if(j)k.content.style.width=Y0;else k.content.style.height=Y0},q0={selected:!1,focused:!1},c=`${_}-item`,Q0=`${_}-group-header`,X0=`${_}-item--selected`,K0=`${_}-item--focused`,W0=(r,j0,Y0)=>{r.classList.toggle(X0,j0),r.classList.toggle(K0,Y0),r.ariaSelected=j0?"true":"false"},M0=X.striped,L0=!!M0,R0=M0==="data"||M0==="even"||M0==="odd",B0=`${_}-item--odd`,D0=`${_}-item--placeholder`,F0=`${_}-item--replaced`,w0=`${_}--scrolling`,T0=[],k0=[],_0=[],G0=[],b0=[],P0=[],a=[],U0=[],Z0=[],N0=new Map,V0="__placeholder_",O0={scrollPosition:0,direction:"down"},H0={velocity:0,reliable:!1},A0={range:{start:0,end:0}},h0=null,f0=null,Q2=!1,K1=!1,KJ=()=>{if(Q2)return;Q2=!0,h0=N0.get("_getSelectedIds")??null,f0=N0.get("_getFocusedIndex")??null},N1=o0(N0,B.vtf),W1=(r,j0,Y0)=>{if(!j0)console.warn(`[vlist] Template returned falsy value${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);else if(typeof j0==="string"&&j0==="")console.warn(`[vlist] Template returned empty string${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);if(typeof j0==="string")r.innerHTML=j0;else r.replaceChildren(j0)},NJ=(r,j0)=>{let Y0=Math.round(B.hc.getOffset(j0));if(j)r.style.transform=`translateX(${Y0}px)`;else r.style.transform=`translateY(${Y0}px)`};B.pef=NJ;let WJ=(r,j0)=>{let Y0=n.acquire(),E0=!!j0.__groupHeader;Y0.className=E0?Q0:c;let z0=!B.csi||B.csi(r);if(j){if(z0)Y0.style.width=`${B.hc.getSize(r)-h}px`;else Y0.style.width="";if(A!=null)Y0.style.height=`${A}px`}else if(z0)Y0.style.height=`${B.hc.getSize(r)-h}px`;else Y0.style.height="";if(Y0.dataset.index=String(r),Y0.dataset.id=String(j0.id),E0)Y0.setAttribute("role","presentation"),Y0.removeAttribute("aria-selected"),Y0.removeAttribute("aria-setsize"),Y0.removeAttribute("aria-posinset"),Y0.removeAttribute("id");else Y0.setAttribute("role","option"),Y0.ariaSelected="false",Y0.id=`${y}-item-${r}`,B.la=String(N1.getSetSize()),Y0.setAttribute("aria-setsize",B.la),Y0.setAttribute("aria-posinset",String(N1.getPosInSet(r)));if(String(j0.id).startsWith(V0))Y0.classList.add(D0);if(L0)if(R0){let y0=B.sif(r);if(y0<0)Y0.classList.remove(B0);else Y0.classList.toggle(B0,(y0&1)===1)}else Y0.classList.toggle(B0,(r&1)===1);try{W1(Y0,B.at(j0,r,q0),r)}catch(y0){let u0=y0 instanceof Error?y0:Error(String(y0));G.emit("error",{error:u0,context:`tpl(${r},${j0.id})`,viewport:z()}),Y0.textContent=""}return B.pef(Y0,r),Y0},B1=NaN,BJ=()=>{if(B.id)return;let r=j?B.cw:B.ch;if(r<=0)return;KJ();let j0=h0?h0():B.ss,Y0=f0?f0():B.fi,E0=B.vtf();B.gvr(B.ls,r,B.hc,E0,E),F2(E,Z,E0,N);let z0=N.end-N.start+1,I0=B.hc.getSize(0)||1,y0=Math.ceil(i/I0)+Z*2;if(z0>y0){if(!K1)K1=!0,console.warn(`[vlist] Render range capped: ${z0} items → ${y0}. Container is ${r}px tall (item: ${I0}px). This usually means the container has no CSS height constraint.`);N.end=N.start+y0-1}if(N.start===V.start&&N.end===V.end){if(B.sic&&B.ls!==B1){B1=B.ls;for(let[$0,v0]of v)B.pef(v0,$0)}D.viewportState.scrollPosition=B.ls,D.viewportState.containerSize=r,D.viewportState.visibleRange.start=E.start,D.viewportState.visibleRange.end=E.end,D.viewportState.renderRange.start=N.start,D.viewportState.renderRange.end=N.end;return}let u0=String(N1.getSetSize()),GJ=u0!==B.la;B.la=u0;for(let[$0,v0]of v)if($0<N.start||$0>N.end)v0.remove(),n.release(v0),v.delete($0);let K2=document.createDocumentFragment(),N2=!1,j1=U0.length>0?[]:null;for(let $0=N.start;$0<=N.end;$0++){let v0=B.dm?B.dm.getItem($0):B.it[$0];if(v0===void 0)continue;let C0=v.get($0);if(C0){let l0=C0.dataset.id,r0=String(v0.id);if(l0!==r0){let MJ=l0?.startsWith(V0),w1=r0.startsWith(V0),W2=!!v0.__groupHeader;if(C0.className=W2?Q0:c,W2)C0.setAttribute("role","presentation"),C0.removeAttribute("aria-selected"),C0.removeAttribute("aria-setsize"),C0.removeAttribute("aria-posinset"),C0.removeAttribute("id");else C0.setAttribute("role","option"),C0.id=`${y}-item-${$0}`,C0.setAttribute("aria-posinset",String(N1.getPosInSet($0)));try{W1(C0,B.at(v0,$0,q0),$0)}catch(y1){let OJ=y1 instanceof Error?y1:Error(String(y1));G.emit("error",{error:OJ,context:`tpl(${$0},${v0.id})`,viewport:z()}),C0.textContent=""}C0.dataset.id=r0;let B2=!B.csi||B.csi($0);if(j)C0.style.width=B2?`${B.hc.getSize($0)-h}px`:"";else C0.style.height=B2?`${B.hc.getSize($0)-h}px`:"";if(w1)C0.classList.add(D0);else C0.classList.remove(D0);if(MJ&&!w1)C0.classList.add(F0),setTimeout(()=>{C0.classList.remove(F0)},300);if(B.dm&&!w1)m0(j0,$0,v0.id)}B.pef(C0,$0);let D1=j0.has(v0.id);if(W0(C0,D1,$0===Y0),GJ&&!v0.__groupHeader)C0.setAttribute("aria-setsize",B.la)}else{let l0=WJ($0,v0);if(j1)j1.push({index:$0,element:l0});if(B.dm)m0(j0,$0,v0.id);let r0=j0.has(v0.id),D1=$0===Y0;if(r0||D1)W0(l0,r0,D1);K2.appendChild(l0),v.set($0,l0),N2=!0}}if(N2)k.items.appendChild(K2);if(j1&&j1.length>0)for(let $0=0;$0<U0.length;$0++)U0[$0](j1);V.start=N.start,V.end=N.end,B1=B.ls,D.lastRenderRange.start=N.start,D.lastRenderRange.end=N.end,D.viewportState.scrollPosition=B.ls,D.viewportState.visibleRange.start=E.start,D.viewportState.visibleRange.end=E.end,D.viewportState.renderRange.start=N.start,D.viewportState.renderRange.end=N.end,A0.range.start=N.start,A0.range.end=N.end,G.emit("range:change",A0)},_J=()=>{V.start=-1,V.end=-1,B1=NaN,B.rfn()};B.rfn=BJ,B.ffn=_J;let VJ=()=>{k.root.classList.remove(w0),$=!1,B.vt.velocity=0,B.vt.sampleCount=0,H0.velocity=0,H0.reliable=!1,G.emit("velocity:change",H0),u();for(let r=0;r<k0.length;r++)k0[r]();G.emit("scroll:idle",{scrollPosition:B.ls})},DJ=()=>{if(l)clearTimeout(l);l=setTimeout(VJ,L?.idleTimeout??TJ)},q1=()=>{if(B.id)return;let r=B.sgt();if(r===B.ls&&$)return;let j0=r>=B.ls?"down":"up";if(B.vt=D2(B.vt,r),!k.root.classList.contains(w0))k.root.classList.add(w0);$=!0,B.ls=r,B.rfn(),O0.scrollPosition=r,O0.direction=j0,G.emit("scroll",O0),H0.velocity=B.vt.velocity,H0.reliable=B.vt.sampleCount>=_2,G.emit("velocity:change",H0);for(let Y0=0;Y0<T0.length;Y0++)T0[Y0](r,j0);DJ()},_1=null;if(B.st.addEventListener("scroll",q1,{passive:!0}),w){let r=k.viewport;if(j)_1=(j0)=>{if(D.viewportState.isCompressed)return;if(Math.abs(j0.deltaX)>Math.abs(j0.deltaY))return;let Y0=B.sgt(),E0=r.scrollWidth-r.clientWidth,z0=Math.max(0,Math.min(Y0+j0.deltaY,E0));if(Math.abs(z0-Y0)<1)return;j0.preventDefault(),B.sst(z0),q1()};else _1=(j0)=>{if(D.viewportState.isCompressed)return;let Y0=r.scrollWidth>r.clientWidth;if(Y0&&Math.abs(j0.deltaX)>Math.abs(j0.deltaY))return;if(Y0&&j0.deltaX!==0)j0.preventDefault(),r.scrollLeft+=j0.deltaX;let E0=B.sgt(),z0=r.scrollHeight-r.clientHeight,I0=Math.max(0,Math.min(E0+j0.deltaY,z0));if(Math.abs(I0-E0)<1)return;j0.preventDefault(),B.sst(I0),q1()};B.wh=_1,r.addEventListener("wheel",_1,{passive:!1})}let b1=(r)=>{let j0=r.target.closest("[data-index]");if(!j0)return null;let Y0=parseInt(j0.dataset.index??"-1",10);if(Y0<0)return null;let E0=B.dm?.getItem(Y0)??B.it[Y0];if(!E0||E0.__groupHeader)return null;return{item:E0,index:Y0}},q2=(r)=>{for(let Y0=0;Y0<_0.length;Y0++)_0[Y0](r);let j0=b1(r);if(j0)G.emit("item:click",{item:j0.item,index:j0.index,event:r})},j2=(r)=>{let j0=b1(r);if(j0)G.emit("item:dblclick",{item:j0.item,index:j0.index,event:r})},Y2=(r)=>{for(let Y0=0;Y0<G0.length;Y0++)G0[Y0](r);let j0=b1(r);if(j0)G.emit("item:contextmenu",{item:j0.item,index:j0.index,event:r})},X2=(r)=>{for(let j0=0;j0<b0.length;j0++)b0[j0](r)};if(k.items.addEventListener("click",q2),k.items.addEventListener("dblclick",j2),k.items.addEventListener("contextmenu",Y2),k.root.addEventListener("keydown",X2),f){let r=null,j0=(Y0)=>{if(r)clearTimeout(r);r=setTimeout(()=>{if(r=null,B.id)return;let E0=B.vtf();k.liveRegion.textContent=`Showing items ${Y0.range.start+1} to ${Math.min(Y0.range.end+1,E0)} of ${E0}`},300)};G.on("range:change",j0),Z0.push(()=>{if(r)clearTimeout(r);G.off("range:change",j0)})}let R1=new ResizeObserver((r)=>{if(B.id)return;for(let j0 of r){let Y0=j0.contentRect.height,E0=j0.contentRect.width,z0=j?E0:Y0,I0=j?B.cw:B.ch;if(z0>i){if(!K1)K1=!0,console.warn(`[vlist] Viewport grew to ${Math.round(z0)}px (screen: ${i}px). Re-applying size constraint. Check that the vlist container has a CSS height/width constraint.`);let y0=j?"width":"height";k.root.style[y0]="100%",k.viewport.style[y0]="100%";return}if(B.cw=E0,B.ch=Y0,Math.abs(z0-I0)>1){if(D.viewportState.containerSize=z0,B.ii){let y0=D.cachedCompression;if(y0&&y0.state.isCompressed){let u0=`${y0.state.virtualSize+H}px`;if(j)k.content.style.width=u0;else k.content.style.height=u0}else t();B.rfn(),G.emit("resize",{height:Y0,width:E0})}}if(B.ii)for(let y0=0;y0<P0.length;y0++)P0[y0](E0,Y0)}});if(B.vre)R1.observe(k.viewport);let P1={dom:k,emitter:G,resolvedConfig:d,rawConfig:J,rendered:v,pool:n,itemState:q0,sharedState:D,renderRange:N,isHorizontal:j,classPrefix:_,contentSizeHandlers:a,idleHandlers:k0,afterScroll:T0,clickHandlers:_0,contextMenuHandlers:G0,keydownHandlers:b0,resizeHandlers:P0,destroyHandlers:Z0,methods:N0,onScrollFrame:q1,resizeObserver:R1,afterRenderBatch:U0,applyTemplate:W1,updateContentSize:t},V1=H2(B,P1);B.dm=$2(B,P1,V1),B.sc=k2(B,P1),N0.set("_updateRenderedItem",(r,j0,Y0,E0)=>{let z0=v.get(r);if(!z0)return;let I0={selected:Y0,focused:E0};try{let y0=B.at(j0,r,I0);W1(z0,y0,r)}catch(y0){let u0=y0 instanceof Error?y0:Error(String(y0));G.emit("error",{error:u0,context:`tpl(${r},${j0.id})`,viewport:z()})}z0.dataset.id=String(j0.id),W0(z0,Y0,E0)});let U2=new WeakSet;N0.set("_setSizeCache",(r)=>{if(B.hc=r,B.gp>0&&!U2.has(r)){U2.add(r);let j0=B.hc.getTotalSize,Y0=B.gp;B.hc.getTotalSize=()=>{let E0=j0();return E0>0?E0-Y0:0}}}),N0.set("_setConstrainSize",(r)=>{B.csi=r});let Z2=new Map;for(let r of o)if(r.methods)for(let j0 of r.methods){let Y0=Z2.get(j0);if(Y0)throw Error(`[vlist] Method "${j0}" is registered by both "${Y0}" and "${r.name}"`);Z2.set(j0,r.name)}for(let r of o)try{r.setup(V1)}catch(j0){let Y0=j0 instanceof Error?j0:Error(String(j0));console.error(`[vlist] Feature "${r.name}" setup failed:`,Y0),G.emit("error",{error:Y0,context:r.name,viewport:z()})}if(I&&!q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(f&&!N0.has("_getFocusedIndex")){let r=j?M.left:M.top,j0=j?M.right:M.bottom;b2(B,k,_,y,j,r,j0,b,N0,v,b0,_0,Z0,!!J.focusOnClick)}if(B.ii=!0,V1.state.isInitialized=!0,t(),B.rfn(),R&&B.it.length>0){let r=B.gsp(B.it.length-1,B.hc,B.ch,B.it.length,"end");B.sst(r),B.ls=r,B.rfn()}return h2(B,k,G,v,n,N0,o,Z0,V1,R,b,q2,j2,Y2,X2,q1,R1,()=>{},()=>{if(l)clearTimeout(l)})}var I2=(J,q,j)=>{let Q=q.getTotalSize(),Y=j===!0||Q>i0,X=Q>i0?i0:Q,W=Q>0?X/Q:1;return{isCompressed:Y,actualSize:Q,virtualSize:X,ratio:W}},p2=(J,q,j,Q,Y,X)=>{if(Q===0||q===0)return X.start=0,X.end=-1,X;if(!Y.isCompressed||Y.ratio===1){let O=j.indexAtOffset(J),F=j.indexAtOffset(J+q);if(F<Q-1)F++;return X.start=Math.max(0,O),X.end=Math.min(Q-1,Math.max(0,F)),X}let{virtualSize:W}=Y,Z=J/W,_=j.getTotalSize(),K=Z*_,U=j.indexAtOffset(K),S=G2(j,Math.max(0,U),q,Q),T=U+S;return X.start=Math.max(0,U),X.end=Math.min(Q-1,Math.max(0,T)),X};var Q1=(J,q,j,Q,Y,X,W)=>{if(!X.isCompressed||Q===0)return j.getOffset(J);if(X.ratio===1)return j.getOffset(J)-q;let{virtualSize:Z}=X,_=q/Z,K=j.getTotalSize(),U=_*K;return j.getOffset(J)-U},u2=(J,q,j,Q,Y,X="start")=>{if(Q===0)return 0;let W;if(Y.isCompressed&&Y.ratio!==1){W=J/Q*Y.virtualSize;let U=q.getSize(J);switch(X){case"center":W-=(j-U)/2*Y.ratio;break;case"end":W-=(j-U)*Y.ratio;break}return Math.max(0,W)}W=q.getOffset(J);let Z=q.getSize(J);switch(X){case"center":W-=(j-Z)/2;break;case"end":W-=j-Z;break}let _=Y.virtualSize-j;return Math.max(0,Math.min(W,_))};var PJ=(J)=>{if(typeof J!=="object"){let q=J??2;return{top:q,right:q,bottom:q,left:q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},U1=(J,q,j={},Q="vlist",Y=!1,X)=>{let{autoHide:W=!0,autoHideDelay:Z=1000,minThumbSize:_=15,showOnHover:K=!0,showOnViewportEnter:U=!0,clickBehavior:S="scroll"}=j,T=S==="page"?"scroll":S,O=X??J,F=PJ(j.padding),f=Y?F.left:F.top,L=Y?F.right:F.bottom,w=Y?F.bottom:F.right,b=j.hoverZoneWidth??w+16,R=0,y=0,h=0,p=0,I=!1,A=!1,d=0,i=0,o=0,g=null,C=!1,k=null,P=null,M=0,H=0,G=null,m=null,e=null,s=Y?"width":"height",x=Y?"translateX":"translateY",J0=Y?(_0)=>_0.clientX:(_0)=>_0.clientY,n=Y?"left":"top",B=document.createElement("div"),l=document.createElement("div"),$=document.createElement("div"),E=()=>{if(O===J)return;let _0=J.offsetTop,G0=Y?F.left:F.top;B.style[Y?"left":"top"]=`${_0+G0}px`,$.style[Y?"left":"top"]=`${_0}px`},N=()=>{if(B.className=`${Q}-scrollbar`,l.className=`${Q}-scrollbar-thumb`,Y)B.classList.add(`${Q}-scrollbar--horizontal`);if(j.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${F.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${F.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${F.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${F.left}px`);if(j.minThumbSize!==void 0)B.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${_}px`);if(B.appendChild(l),O.appendChild(B),$.className=`${Q}-scrollbar-hover`,Y)$.classList.add(`${Q}-scrollbar-hover--horizontal`),$.style.height=`${b}px`;else $.style.width=`${b}px`;if(O.appendChild($),O!==J)E()},V=()=>{if(g)clearTimeout(g),g=null},D=()=>{if(!W)return;V(),g=setTimeout(v,Z)},z=()=>{if(R<=y)return;if(V(),!C)B.classList.add(`${Q}-scrollbar--visible`),C=!0;if(W&&!I&&!A)D()},v=()=>{if(I||A)return;B.classList.remove(`${Q}-scrollbar--visible`),C=!1},u=(_0,G0)=>{R=_0,y=G0,E();let b0=R>y;if(B.style.display=b0?"":"none",!b0){v();return}let P0=Math.max(0,y-f-L),a=y/R;if(h=Math.max(_,a*P0),l.style[s]=`${h}px`,p=P0-h,t(o),!W)z()},t=(_0)=>{if(o=_0,R<=y||p<=0)return;let G0=R-y,P0=Math.min(1,Math.max(0,_0/G0))*p;l.style.transform=`${x}(${P0}px)`},q0=(_0)=>{if(_0.target===l||T!=="jump"||p<=0)return;let G0=R-y,b0=B.getBoundingClientRect(),P0=J0(_0)-b0[n],a=Math.max(0,Math.min(P0-h/2,p));q(a/p*G0),z()},c=()=>{if(G!==null)clearTimeout(G),G=null;if(m!==null)cancelAnimationFrame(m),m=null;e=null},Q0=(_0)=>{let G0=p>0?H/_0*p:0;if(M<G0)return-1;if(M>=G0+h)return 1;return 0},X0=()=>{let _0=R-y,G0=Q0(_0);if(G0===0){c();return}if(G0===-1){if(H<=0){c();return}let b0=Math.max(0,H-y);H=b0,q(b0)}else{if(H>=_0){c();return}let b0=Math.min(_0,H+y);H=b0,q(b0)}z()},K0=(_0)=>{if(e===null){e=_0,m=requestAnimationFrame(K0);return}let G0=R-y,b0=_0-e;e=_0;let P0=Q0(G0);if(P0===0){c();return}let a=12*y/1000,U0=Math.min(a*b0,y);if(P0===-1){if(H<=0){c();return}let Z0=Math.max(0,H-U0);H=Z0,q(Z0)}else{if(H>=G0){c();return}let Z0=Math.min(G0,H+U0);H=Z0,q(Z0)}V(),m=requestAnimationFrame(K0)},W0=()=>{c(),D(),document.removeEventListener("mouseup",W0)},M0=(_0)=>{if(_0.target===l||T!=="scroll")return;_0.preventDefault();let G0=B.getBoundingClientRect();M=J0(_0)-G0[n],H=o,X0(),G=setTimeout(()=>{m=requestAnimationFrame(K0)},350),document.addEventListener("mouseup",W0)},L0=(_0)=>{_0.preventDefault(),_0.stopPropagation(),I=!0,d=J0(_0),i=o,V(),B.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",R0),document.addEventListener("mouseup",B0)},R0=(_0)=>{if(!I)return;let G0=J0(_0)-d,b0=p>0?G0/p:0,P0=R-y,a=b0*P0,U0=Math.max(0,Math.min(i+a,P0)),N0=U0/P0*p;if(l.style.transform=`${x}(${N0}px)`,P=U0,k===null)k=requestAnimationFrame(()=>{if(P!==null)q(P);k=null})},B0=()=>{if(I=!1,k!==null)cancelAnimationFrame(k),k=null;if(P!==null)q(P),P=null;if(B.classList.remove(`${Q}-scrollbar--dragging`),W&&!A)D();document.removeEventListener("mousemove",R0),document.removeEventListener("mouseup",B0)},D0=()=>{if(U)z()},F0=()=>{if(!I){if(A=!1,W)D()}},w0=()=>{A=!0,V(),z()},T0=()=>{if(A=!1,!I&&W)D()},k0=()=>{if(V(),c(),k!==null)cancelAnimationFrame(k),k=null;if(B.removeEventListener("click",q0),B.removeEventListener("mousedown",M0),B.removeEventListener("mouseenter",w0),document.removeEventListener("mouseup",W0),B.removeEventListener("mouseleave",T0),l.removeEventListener("mousedown",L0),J.removeEventListener("mouseenter",D0),J.removeEventListener("mouseleave",F0),document.removeEventListener("mousemove",R0),document.removeEventListener("mouseup",B0),$.removeEventListener("click",q0),$.removeEventListener("mousedown",M0),K)$.removeEventListener("mouseenter",w0),$.removeEventListener("mouseleave",T0);if($.parentNode)$.parentNode.removeChild($);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),B.parentNode)B.parentNode.removeChild(B)};if(N(),B.addEventListener("click",q0),B.addEventListener("mousedown",M0),B.addEventListener("mouseenter",w0),B.addEventListener("mouseleave",T0),l.addEventListener("mousedown",L0),J.addEventListener("mouseenter",D0),J.addEventListener("mouseleave",F0),$.addEventListener("click",q0),$.addEventListener("mousedown",M0),K)$.addEventListener("mouseenter",w0),$.addEventListener("mouseleave",T0);return{show:z,hide:v,updateBounds:u,updatePosition:t,isVisible:()=>C,destroy:k0}};var p1=(J)=>{let q=null;return{name:"withScrollbar",priority:15,setup(j){let{dom:Q,config:Y}=j,{classPrefix:X,horizontal:W}=Y;if(j.methods.has("_hasScrollbar")){let _=Q.root.querySelector(`.${X}-scrollbar`);if(_)_.remove();let K=Q.root.querySelector(`.${X}-scrollbar-hover`);if(K)K.remove()}if(j.methods.set("_hasScrollbar",()=>!0),q=U1(Q.viewport,(_)=>j.scrollController.scrollTo(_),J??{},X,W,Q.root),!Q.viewport.classList.contains(`${X}-viewport--custom-scrollbar`))Q.viewport.classList.add(`${X}-viewport--custom-scrollbar`);if(J?.gutter)Q.viewport.classList.add(`${X}-viewport--gutter`);q.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize);let Z=q;j.afterScroll.push((_,K)=>{Z.updatePosition(_),Z.show()}),j.resizeHandlers.push((_,K)=>{if(Z)Z.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.contentSizeHandlers.push(()=>{if(Z)Z.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.destroyHandlers.push(()=>{if(Z)Z.destroy()})},destroy(){if(q)q.destroy(),q=null}}};var wJ=0.65,yJ=0.5,g2=1.7,zJ=0.95,CJ=0.1,vJ=5,SJ=100,m2=(J,q,j,Q=0)=>{if(J<=0)return 0;let Y=q-Q;return Math.max(0,Y*(1-j)+Q)},u1=(J)=>{let q=J?.force??!1,j=null,Q=0,Y=!1,X=0,W=0,Z=null,_=0,K=0,U=null,S=[];return{name:"withScale",priority:20,setup(T){let{dom:O,config:F}=T,{classPrefix:f,horizontal:L}=F,w=S0(T.rawConfig.padding),b=L?w.left+w.right:w.top+w.bottom,R=()=>{let g=T.getVirtualTotal(),C=I2(g,T.sizeCache,q);if(C.isCompressed&&!Y){Y=!0,T.scrollController.enableCompression(C);let P=L?O.viewport.scrollLeft:O.viewport.scrollTop;if(L)O.viewport.style.overflowX="hidden";else O.viewport.style.overflow="hidden";if(L)O.viewport.scrollLeft=0;else O.viewport.scrollTop=0;if(P>0)Q=P,W=P;X=m2(C.virtualSize,T.state.viewportState.containerSize,C.ratio,b),T.updateContentSize(C.virtualSize+X),T.setScrollFns(()=>Q,(n)=>{if(Q=n,W=n,Z!==null)cancelAnimationFrame(Z),Z=null});let M=()=>{let n=W-Q;if(T.getVirtualTotal()===0){Q=0,W=0,Z=null,T.triggerScrollFrame();return}if(Math.abs(n)<yJ){let B=T.getCachedCompression(),l=Math.max(0,B.virtualSize+X-T.state.viewportState.containerSize);Q=Math.max(0,Math.min(W,l)),W=Q,Z=null}else{Q+=n*wJ;let l=T.getCachedCompression().virtualSize+X-T.state.viewportState.containerSize;Q=Math.max(0,Math.min(Q,l)),Z=requestAnimationFrame(M)}T.triggerScrollFrame()},H=O.viewport,G=(n)=>{n.preventDefault();let B=T.getCachedCompression(),l=B.virtualSize+X-T.state.viewportState.containerSize;if(W=Math.max(0,Math.min(W+n.deltaY*B.ratio*g2,l)),Z===null)Z=requestAnimationFrame(M)};H.addEventListener("wheel",G,{passive:!1});let m=()=>{if(U!==null)cancelAnimationFrame(U),U=null},e=(n)=>{if(m(),Z!==null)cancelAnimationFrame(Z),Z=null;let B=n.touches[0];if(!B)return;let l=L?B.clientX:B.clientY;_=l,K=Q,S=[{time:performance.now(),y:l}]},s=(n)=>{n.preventDefault();let B=n.touches[0];if(!B)return;let l=L?B.clientX:B.clientY,$=performance.now();if(S.push({time:$,y:l}),S.length>vJ)S.shift();let E=_-l,N=T.getCachedCompression(),V=N.virtualSize+X-T.state.viewportState.containerSize,D=Math.max(0,Math.min(K+E*N.ratio*g2,V));Q=D,W=D,T.triggerScrollFrame()},x=(n)=>{let B=performance.now(),l=S.filter((V)=>B-V.time<SJ),$=0;if(l.length>=2){let V=l[0],D=l[l.length-1],z=D.time-V.time;if(z>0)$=(V.y-D.y)/z}if(S=[],Math.abs($)<CJ)return;let E=$*16,N=()=>{if(E*=zJ,Math.abs(E)<0.5){U=null;return}let D=T.getCachedCompression().virtualSize+X-T.state.viewportState.containerSize,z=Q+E;if(z=Math.max(0,Math.min(z,D)),z<=0&&E<0||z>=D&&E>0){Q=z,W=z,T.triggerScrollFrame(),U=null;return}Q=z,W=z,T.triggerScrollFrame(),U=requestAnimationFrame(N)};U=requestAnimationFrame(N)};H.addEventListener("touchstart",e,{passive:!0}),H.addEventListener("touchmove",s,{passive:!1}),H.addEventListener("touchend",x,{passive:!0}),H.addEventListener("touchcancel",x,{passive:!0}),T.destroyHandlers.push(()=>{H.removeEventListener("wheel",G),H.removeEventListener("touchstart",e),H.removeEventListener("touchmove",s),H.removeEventListener("touchend",x),H.removeEventListener("touchcancel",x)});let J0=()=>{if((L?O.viewport.scrollLeft:O.viewport.scrollTop)!==0)if(L)O.viewport.scrollLeft=0;else O.viewport.scrollTop=0};if(H.addEventListener("scroll",J0,{passive:!0}),T.destroyHandlers.push(()=>{H.removeEventListener("scroll",J0)}),!T.methods.has("_hasScrollbar")){if(T.methods.set("_hasScrollbar",()=>!0),j=U1(O.viewport,(B)=>T.scrollController.scrollTo(B),{},f,L,O.root),!O.viewport.classList.contains(`${f}-viewport--custom-scrollbar`))O.viewport.classList.add(`${f}-viewport--custom-scrollbar`);j.updateBounds(C.virtualSize,T.state.viewportState.containerSize);let n=j;T.afterScroll.push((B,l)=>{if(n)n.updatePosition(B),n.show()}),T.resizeHandlers.push((B,l)=>{if(n){let $=T.getCachedCompression();n.updateBounds($.virtualSize,T.state.viewportState.containerSize)}})}}else if(!C.isCompressed&&Y){if(Y=!1,Z!==null)cancelAnimationFrame(Z),Z=null;if(U!==null)cancelAnimationFrame(U),U=null;if(Q=0,W=0,S=[],T.setScrollFns(L?()=>O.viewport.scrollLeft:()=>O.viewport.scrollTop,L?(P)=>{O.viewport.scrollLeft=P}:(P)=>{O.viewport.scrollTop=P}),L)O.viewport.scrollLeft=0;else O.viewport.scrollTop=0;if(T.scrollController.disableCompression(),L)O.viewport.style.overflowX="auto";else O.viewport.style.overflow="auto";if(j)j.destroy(),j=null;X=0,T.updateContentSize(C.actualSize)}else if(C.isCompressed)T.scrollController.updateConfig({compression:C}),X=m2(C.virtualSize,T.state.viewportState.containerSize,C.ratio,b),T.updateContentSize(C.virtualSize+X);if(j)j.updateBounds(C.virtualSize+X,T.state.viewportState.containerSize);let k=T.state.viewportState;if(k.isCompressed=C.isCompressed,k.compressionRatio=C.ratio,k.totalSize=C.virtualSize+X,k.actualSize=C.actualSize,T.state.cachedCompression={state:C,totalItems:g},Y){let P=Math.max(0,C.virtualSize+X-T.state.viewportState.containerSize),M=Q;if(M>P)M=P;else if(M<0)M=0;if(M!==Q){if(Z!==null)cancelAnimationFrame(Z),Z=null;if(U!==null)cancelAnimationFrame(U),U=null;T.scrollController.scrollTo(M)}}for(let P=0;P<T.contentSizeHandlers.length;P++)T.contentSizeHandlers[P]()};T.updateCompressionMode=R;let y=T.getCachedCompression.bind(T);T.getCachedCompression=()=>{if(T.state.cachedCompression)return T.state.cachedCompression.state;return y()},T.setVisibleRangeFn((g,C,k,P,M)=>{p=null,I=null,p2(g,C,k,P,T.getCachedCompression(),M)}),T.setScrollToPosFn((g,C,k,P,M)=>{return u2(g,C,k,P,T.getCachedCompression(),M)});let h=NaN,p=null,I=null,A=L;T.setPositionElementFn((g,C)=>{let k=T.scrollController.getScrollTop(),P=T.getCachedCompression();if(k!==h)h=k,p=null,I=null;if(P.isCompressed){if(p===null||C<I)I=C,p=Math.round(Q1(C,k,T.sizeCache,T.getVirtualTotal(),T.state.viewportState.containerSize,P));let M=p+T.sizeCache.getOffset(C)-T.sizeCache.getOffset(I);g.style.transform=A?`translateX(${M}px)`:`translateY(${M}px)`}else{let M=Math.round(T.sizeCache.getOffset(C));g.style.transform=A?`translateX(${M}px)`:`translateY(${M}px)`}});let d=L?w.left:w.top,i=L?w.right:w.bottom,o=T.getItemToScrollIndexFn();T.methods.set("_scrollItemIntoView",(g)=>{let C=T.getCachedCompression(),k=T.state.viewportState.containerSize,P=T.state.viewportState.scrollPosition,M=T.getVirtualTotal(),{visibleRange:H}=T.state.viewportState,G=o(g),m=O1(G,T.sizeCache,P,k,d,i,C,M,H);if(m!==P)T.scrollController.scrollTo(m)}),R(),T.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(Z!==null)cancelAnimationFrame(Z),Z=null;if(U!==null)cancelAnimationFrame(U),U=null})}}};var x2=(J={})=>{let{chunkSize:q=100,maxCachedItems:j=5000,evictionBuffer:Q=200,onEvict:Y}=J,X=new Map,W=0,Z=0,_=(P)=>{let M=X.get(P);if(!M)M={items:Array(q),count:0,lastAccess:Date.now()},X.set(P,M);else M.lastAccess=Date.now();return M},K=(P)=>{return Math.floor(P/q)},U=(P)=>{return P%q},S=()=>W,T=(P)=>{W=P},O=(P)=>{if(P<0||P>=W)return;let M=K(P),H=X.get(M);if(!H)return;return H.items[U(P)]},F=(P)=>{if(P<0||P>=W)return!1;let M=K(P),H=X.get(M);if(!H)return!1;return H.items[U(P)]!==void 0},f=(P,M)=>{let H=K(P),G=_(H),m=U(P),e=G.items[m]===void 0;if(G.items[m]=M,e)G.count++,Z++;if(P>=W)W=P+1},L=(P,M)=>{for(let H=0;H<M.length;H++){let G=M[H];if(G!==void 0)f(P+H,G)}},w=(P)=>{if(P<0||P>=W)return!1;let M=K(P),H=X.get(M),G=U(P);if(!(H!==void 0&&H.items[G]!==void 0))return!1;let e=M,s=Array.from(X.keys()).filter((J0)=>J0>=e).sort((J0,n)=>J0-n),x=[];for(let J0 of s){let n=X.get(J0),B=J0*q;for(let l=0;l<q;l++){if(n.items[l]===void 0)continue;let $=B+l;if($<=P)continue;x.push({oldIndex:$,item:n.items[l]})}}if(H.items[G]=void 0,H.count--,Z--,H.count===0)X.delete(M);for(let{oldIndex:J0}of x){let n=K(J0),B=X.get(n);if(!B)continue;let l=U(J0);if(B.items[l]!==void 0){if(B.items[l]=void 0,B.count--,Z--,B.count===0)X.delete(n)}}for(let{oldIndex:J0,item:n}of x){let B=J0-1,l=K(B),$=_(l),E=U(B);$.items[E]=n,$.count++,Z++}return W--,!0},b=(P,M)=>{let H=[];for(let G=P;G<=M&&G<W;G++)H.push(O(G));return H},R=(P,M)=>{for(let H=P;H<=M&&H<W;H++)if(!F(H))return!1;return!0},y=()=>{let P=[],M=null,H=Array.from(X.keys()).sort((G,m)=>G-m);for(let G of H){let m=X.get(G);if(!m)continue;let e=G*q;for(let s=0;s<q;s++){let x=e+s;if(x>=W)break;if(m.items[s]!==void 0)if(M===null)M={start:x,end:x};else if(x===M.end+1)M.end=x;else P.push(M),M={start:x,end:x};else if(M!==null)P.push(M),M=null}}if(M!==null)P.push(M);return P},h=(P,M)=>{let H=[],G=null;for(let m=P;m<=M&&m<W;m++)if(!F(m))if(G===null)G={start:m,end:m};else G.end=m;else if(G!==null)H.push(G),G=null;if(G!==null)H.push(G);return H},p=(P)=>{return X.has(P)},I=(P)=>{let M=X.get(P);if(M)M.lastAccess=Date.now()},A=(P,M)=>{if(P>M||X.size===0)return;let H=Date.now(),G=K(Math.max(0,P)),m=K(Math.min(W-1,M));for(let e=G;e<=m;e++){let s=X.get(e);if(s)s.lastAccess=H}},d=(P,M)=>{if(Z<=j)return 0;let H=Math.max(0,P-Q),G=Math.min(W-1,M+Q),m=K(H),e=K(G),s=0,x=[];for(let[J0,n]of X)if(J0<m||J0>e)s+=n.count,x.push(J0),Z-=n.count,X.delete(J0);if(s>0&&Y)Y(s,x);return s},i=()=>{if(Z<=j)return 0;let P=Array.from(X.entries()).sort(([,G],[,m])=>G.lastAccess-m.lastAccess),M=0,H=[];for(let[G,m]of P){if(Z<=j)break;M+=m.count,Z-=m.count,H.push(G),X.delete(G)}if(M>0&&Y)Y(M,H);return M},o=()=>{return{totalItems:W,cachedItems:Z,cachedChunks:X.size,chunkSize:q,maxCachedItems:j,memoryEfficiency:W>0?1-Z/W:1}},g=()=>Z,C=()=>{X.clear(),Z=0};return{chunkSize:q,maxCachedItems:j,getTotal:S,setTotal:T,get:O,has:F,set:f,setRange:L,delete:w,getRange:b,isRangeLoaded:R,getLoadedRanges:y,findUnloadedRanges:h,getChunkIndex:K,isChunkLoaded:p,touchChunk:I,touchChunksForRange:A,evictDistant:d,evictToLimit:i,getStats:o,getCachedCount:g,clear:C,reset:()=>{C(),W=0}}};var d2=(J={})=>{let{maskCharacter:q=y2,maxSampleSize:j=z2}=J,Q=[],Y=!1,X=(U)=>{if(Y||U.length===0)return;let S=Math.min(U.length,j);for(let T=0;T<S;T++){let O=U[T];if(!O||typeof O!=="object")continue;let F={};for(let[f,L]of Object.entries(O)){if(f.startsWith("_")||f==="id")continue;F[f]=String(L??"").length}if(Object.keys(F).length>0)Q.push(F)}Y=!0},W=()=>Y,Z=(U)=>{let S={id:`${g0}${U}`,[C1]:!0,_index:U};if(Q.length===0)return S.label=q.repeat(12),S;let T=Q[U%Q.length];for(let[O,F]of Object.entries(T))S[O]=q.repeat(Math.max(1,F));return S};return{analyzeStructure:X,hasAnalyzedStructure:W,generate:Z,generateRange:(U,S)=>{let T=[];for(let O=U;O<=S;O++)T.push(Z(O));return T},clear:()=>{Q=[],Y=!1}}},H1=(J)=>{if(!J||typeof J!=="object")return!1;return J[C1]===!0};var fJ=50,l2=(J={})=>{let{adapter:q,initialItems:j,initialTotal:Q,storage:Y,placeholder:X,pageSize:W=fJ,onStateChange:Z,onItemsLoaded:_,onItemsEvicted:K}=J,U=x2({...Y,onEvict:(c,Q0)=>{K?.(c),A()}}),S=null,T=()=>{if(!S)S=d2(X);return S},O=new Map,F=!1,f,L=!0,w,b,R=[],y=0,h=new Map,p=new Map,I=()=>{for(let c of p.values())c.abort();p.clear(),h.clear()},A=()=>{Z?.(H())},d=()=>{O.clear();let c=U.getLoadedRanges();for(let Q0 of c)for(let X0=Q0.start;X0<=Q0.end;X0++){let K0=U.get(X0);if(K0&&!H1(K0))O.set(K0.id,X0)}},i=(c,Q0)=>{if(!H1(Q0))O.set(Q0.id,c)},o=(c)=>{O.delete(c)},g=(c,Q0)=>{return`${c}-${Q0}`},C=()=>U.getTotal(),k=()=>U.getCachedCount(),P=()=>F,M=()=>L,H=()=>({total:U.getTotal(),cached:U.getCachedCount(),isLoading:F,pendingRanges:R,error:f,hasMore:L,cursor:w}),G=()=>U,m=()=>T(),e=(c)=>{let Q0=U.get(c);if(Q0!==void 0)return Q0;if(c>=0&&c<U.getTotal())return T().generate(c);return},s=(c)=>{let Q0=O.get(c);if(Q0===void 0)return;return U.get(Q0)},x=(c)=>{return O.get(c)??-1},J0=(c)=>{let Q0=U.get(c);return Q0!==void 0&&!H1(Q0)},n=(c,Q0)=>{let X0=[],K0=U.getTotal(),W0=0,M0=0;U.touchChunksForRange(c,Math.min(Q0,K0-1));for(let L0=c;L0<=Q0&&L0<K0;L0++){let R0=U.get(L0);if(R0!==void 0)X0.push(R0),W0++;else X0.push(T().generate(L0)),M0++}return X0},B=(c)=>{U.setTotal(c),L=U.getCachedCount()<c,A()},l=(c,Q0=0,X0)=>{if(q&&c.length>0){let K0=T();if(!K0.hasAnalyzedStructure())K0.analyzeStructure(c)}for(let K0=0;K0<c.length;K0++){let W0=c[K0];if(W0!==void 0){let M0=Q0+K0;U.set(M0,W0),i(M0,W0)}}if(X0!==void 0)U.setTotal(X0);else if(Q0+c.length>U.getTotal())U.setTotal(Q0+c.length);if(U.getCachedCount()>=U.getTotal()&&U.getTotal()>0)L=!1;A(),_?.(c,Q0,U.getTotal())},$=(c,Q0)=>{let X0=U.get(c);if(!X0)return!1;let K0=X0.id,W0={...X0,...Q0};if(U.set(c,W0),Q0.id!==void 0&&Q0.id!==K0)o(K0);return i(c,W0),A(),!0},E=(c)=>{let Q0=O.get(c);if(Q0===void 0)return!1;if(!U.delete(Q0))return!1;return d(),I(),A(),!0},N=async(c,Q0)=>{if(!q)return;let X0=g(c,Q0);if(h.has(X0))return;let K0=U.chunkSize,W0=Math.floor(c/K0),M0=Math.floor(Q0/K0),L0=K0*2;for(let[D0,F0]of p){let w0=D0.indexOf("-"),T0=parseInt(D0.slice(0,w0),10);if(Math.abs(T0-c)>L0)F0.abort(),p.delete(D0),h.delete(D0)}let R0=[];for(let D0=W0;D0<=M0;D0++){let F0=D0*K0,w0=F0+K0-1,T0=g(F0,w0);if(!U.isChunkLoaded(D0)&&!h.has(T0))R0.push({start:F0,end:w0})}if(R0.length===0)return;let B0=[];for(let D0=W0;D0<=M0;D0++){let F0=D0*K0,w0=F0+K0-1,T0=g(F0,w0);if(h.has(T0)){let k0=h.get(T0);if(!B0.includes(k0))B0.push(k0)}}for(let D0 of R0){let F0=g(D0.start,D0.end),w0=new AbortController;p.set(F0,w0);let T0=(async()=>{R.push(D0),F=!0,f=void 0,A();try{let k0=D0.end-D0.start+1,_0={offset:D0.start,limit:k0,cursor:D0.start===b?w:void 0,signal:w0.signal},G0=await q.read(_0);if(l(G0.items,D0.start,G0.total),G0.cursor)w=G0.cursor,b=D0.start+G0.items.length;let b0=D0.start+G0.items.length;if(b0>=y){if(y=b0,G0.hasMore!==void 0)L=G0.hasMore;else if(G0.total!==void 0)L=b0<G0.total}}catch(k0){if(k0?.name==="AbortError")return;f=k0 instanceof Error?k0:Error(String(k0))}finally{h.delete(F0),p.delete(F0),R=R.filter((k0)=>k0.start!==D0.start||k0.end!==D0.end),F=h.size>0,A()}})();h.set(F0,T0),B0.push(T0)}await Promise.all(B0)},V=async(c,Q0)=>{if(U.isRangeLoaded(c,Q0))return;await N(c,Q0)},D=async()=>{if(!q)return;await N(0,W-1)},z=async()=>{if(!q||F||!L)return!1;let c=U.getCachedCount(),Q0=U.getTotal(),X0=c,K0=Math.min(X0+W-1,Q0>0?Q0-1:X0+W-1);if(X0>=Q0&&Q0>0)return L=!1,!1;return await N(X0,K0),U.getCachedCount()>c},v=async()=>{if(U.clear(),U.setTotal(0),O.clear(),S)S.clear();I(),R=[],F=!1,w=void 0,b=void 0,L=!0,y=0,f=void 0,A()},u=(c,Q0)=>{if(U.evictDistant(c,Q0)>0)d()},t=()=>{U.clear(),O.clear(),w=void 0,b=void 0,f=void 0,R=[],F=!1,A()},q0=()=>{if(U.reset(),O.clear(),S)S.clear();w=void 0,b=void 0,L=!0,y=0,f=void 0,R=[],F=!1,A()};if(j&&j.length>0)l(j,0,Q??j.length);else if(Q!==void 0)U.setTotal(Q),A();return{getState:H,getTotal:C,getCached:k,getIsLoading:P,getHasMore:M,getStorage:G,getPlaceholders:m,getItem:e,getItemById:s,getIndexById:x,isItemLoaded:J0,getItemsInRange:n,setTotal:B,setItems:l,updateItem:$,removeItem:E,loadRange:N,ensureRange:V,loadInitial:D,loadMore:z,reload:v,evictDistant:u,clear:t,reset:q0}};var g1=(J)=>{let{adapter:q,loading:j,storage:Q,total:Y,autoLoad:X=!0}=J,W=j?.cancelThreshold??P2,Z=j?.preloadThreshold??w2,_=j?.preloadAhead??R2;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(K){let{emitter:U}=K,S=K.config.reverse,T=K.methods.get("_getGridLayout"),O=(g)=>{let C=K.methods.get("_getGroupBridge");if(C){let k=C();if(k&&k.groupCount>0){let P=k.layoutToDataIndex(g.start),M=k.layoutToDataIndex(g.end);if(P<0){for(let H=g.start+1;H<=g.end;H++)if(P=k.layoutToDataIndex(H),P>=0)break}if(M<0){for(let H=g.end-1;H>=g.start;H--)if(M=k.layoutToDataIndex(H),M>=0)break}if(P>=0&&M>=0)return{start:P,end:M}}}if(T){let k=T();if(k){let P=K.dataManager.getTotal();return k.getItemRange(g.start,g.end,P)}}return g};K.methods.set("_isAsync",()=>!0);let F=[];K.methods.set("_onItemsLoaded",(g)=>{F.push(g)});let f=l2({adapter:q,...Y!==void 0&&{initialTotal:Y},pageSize:Q?.chunkSize??n0,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(K.state.isInitialized){let g=K.getVirtualTotal();if(g!==K.sizeCache.getTotal())K.sizeCache.rebuild(g);K.updateCompressionMode();let C=K.getCachedCompression();K.state.viewportState.totalSize=C.virtualSize,K.state.viewportState.actualSize=C.actualSize,K.state.viewportState.isCompressed=C.isCompressed,K.state.viewportState.compressionRatio=C.ratio,K.updateContentSize(C.virtualSize),K.renderIfNeeded()}},onItemsLoaded:(g,C,k)=>{if(K.state.isInitialized){for(let P of F)P(g,C,k);K.forceRender(),U.emit("load:end",{items:g,total:k,offset:C})}}});K.replaceDataManager(f);let L=null,w=null,b=0,R=!1,y=null,h=120,p=(g=!1)=>{if(R=!1,w=null,g)L=null;if(y!==null)clearTimeout(y),y=null},I=()=>{if(!w)return;w=null;let{renderRange:g}=K.state.viewportState;if(g.end<g.start)return;L=null;let C=O(g);K.dataManager.ensureRange(C.start,C.end).catch((k)=>{U.emit("error",{error:k,context:"ensureRange"})})};K.afterScroll.push((g,C)=>{if(K.state.isDestroyed)return;let k=K.scrollController.getVelocity(),M=K.scrollController.isTracking()&&k<=W;if(b>W&&k<=W)R=!0;else if(R&&k>W)p();if(R&&k<0.5)p(!0);if(b=k,(K.scrollController.isAtTop()||K.scrollController.isAtBottom())&&(R||w))p(!0),M=!0;let G=R&&k>0.5;if(M&&!K.dataManager.getIsLoading()&&K.dataManager.getHasMore()){if(S){if(g<z1)U.emit("load:start",{offset:K.dataManager.getCached(),limit:n0}),K.dataManager.loadMore().catch((s)=>{U.emit("error",{error:s,context:"loadMore"})})}else if(K.state.viewportState.totalSize-g-K.state.viewportState.containerSize<z1)U.emit("load:start",{offset:K.dataManager.getCached(),limit:n0}),K.dataManager.loadMore().catch((x)=>{U.emit("error",{error:x,context:"loadMore"})})}let{renderRange:m}=K.state.viewportState;if(!L||m.start!==L.start||m.end!==L.end){if(L={start:m.start,end:m.end},M&&!G){if(w=null,y!==null)clearTimeout(y),y=null;let s=O(m),x=s.start,J0=s.end,n=T?K.dataManager.getTotal():K.getVirtualTotal();if(k>Z)if(C==="down")J0=Math.min(s.end+_,n-1);else x=Math.max(s.start-_,0);K.dataManager.ensureRange(x,J0).catch((B)=>{U.emit("error",{error:B,context:"ensureRange"})})}else if(w={start:m.start,end:m.end},G){if(y!==null)clearTimeout(y);y=setTimeout(()=>{y=null,I(),p()},h)}}});let A=200,d=null;K.afterScroll.push((g,C)=>{if(d!==null)clearTimeout(d);d=setTimeout(()=>{d=null,I(),p()},A)}),K.destroyHandlers.push(()=>{if(d!==null)clearTimeout(d),d=null;p()});let i=()=>{if(K.state.isDestroyed)return;L=null;let{renderRange:g}=K.state.viewportState;if(g.end>0){let C=O(g);K.dataManager.ensureRange(C.start,C.end).catch((k)=>{U.emit("error",{error:k,context:"ensureRange"})})}I()};window.addEventListener("online",i),K.destroyHandlers.push(()=>{window.removeEventListener("online",i)}),U.on("load:start",()=>{K.dom.root.setAttribute("aria-busy","true")}),U.on("load:end",()=>{K.dom.root.removeAttribute("aria-busy")}),K.methods.set("loadVisibleRange",async()=>{L=null,w=null,K.forceRender();let{renderRange:g}=K.state.viewportState;if(g.end>0){let C=O(g);U.emit("load:start",{offset:C.start,limit:C.end-C.start+1}),await K.dataManager.ensureRange(C.start,C.end)}}),K.methods.set("reload",async(g)=>{L=null,w=null;let C=g?.snapshot,k=C!=null&&(C.total??0)>0&&C.index>0,P=k||g?.skipInitialLoad===!0;if(K.invalidateRendered(),await K.dataManager.reload(),!k)K.scrollController.scrollTo(0);if(!P){U.emit("load:start",{offset:0,limit:n0}),await K.dataManager.loadInitial(),K.forceRender();let{renderRange:M}=K.state.viewportState;if(M.end>0){let H=O(M);await K.dataManager.ensureRange(H.start,H.end)}}if(k){let M=K.methods.get("restoreScroll");if(M)M(C)}});let o=!1;if(K.methods.set("_cancelAutoLoad",()=>{o=!0}),X)queueMicrotask(()=>{if(o)return;U.emit("load:start",{offset:0,limit:n0}),K.dataManager.loadInitial().catch((g)=>{U.emit("error",{error:g,context:"loadInitial"})})});else if(Y!==void 0)K.dataManager.setTotal(Y)}}};var $1=(J)=>J==null?0:typeof J==="function"?J():J,m1=(J)=>{let q=null,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(Q){let{dom:Y,state:X,config:W,emitter:Z}=Q;if(Y.root.style.overflow="visible",Y.root.style.height="auto",W.horizontal)Y.viewport.style.overflowX="visible",Y.viewport.style.overflowY="visible";else Y.viewport.style.overflow="visible";if(Y.viewport.classList.remove(`${W.classPrefix}-viewport--custom-scrollbar`),Q.disableViewportResize(),Q.disableWheelHandler(),Q.setScrollTarget(window),Q.setScrollFns(()=>{let S=Y.viewport.getBoundingClientRect();return Math.max(0,W.horizontal?-S.left:-S.top)},(S)=>{let T=Y.viewport.getBoundingClientRect();if(W.horizontal){let O=T.left+window.scrollX;window.scrollTo({left:O+S,top:window.scrollY,behavior:"instant"})}else{let O=T.top+window.scrollY;window.scrollTo({left:window.scrollX,top:O+S,behavior:"instant"})}}),Q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),X.viewportState.containerSize=window.innerHeight,j){let S=W.horizontal,T=Q.getItemToScrollIndexFn();Q.setScrollToPosFn((O,F,f,L,w)=>{let b=$1(S?j.left:j.top),R=$1(S?j.right:j.bottom);if(L===0)return 0;let y=Math.max(0,Math.min(O,L-1)),h=F.getOffset(y),p=F.getSize(y),I=F.getTotalSize(),A=Math.max(0,I-f+R),d;switch(w){case"start":d=h-b;break;case"center":{let i=f-b-R;d=h-b-(i-p)/2;break}case"end":d=h-f+p+R;break}return Math.max(-b,Math.min(d,A))}),Q.methods.set("_scrollItemIntoView",(O)=>{let F=T(O),f=S?window.innerWidth:window.innerHeight,L=$1(S?j.left:j.top),w=$1(S?j.right:j.bottom),b=Y.viewport.getBoundingClientRect(),R=S?window.scrollX:window.scrollY,y=(S?b.left:b.top)+R,h=y-R,p=Q.sizeCache.getOffset(F),I=Q.sizeCache.getSize(F),A=h+p,d=A+I,i=L,o=f-w,g=R;if(A<i)g=y+p-i;else if(d>o)g=y+p+I-o;if(g!==R)if(S)window.scrollTo({left:g,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:g,behavior:"instant"})})}let{innerHeight:_,innerWidth:K}=window,U=()=>{let{innerWidth:S,innerHeight:T}=window,O=W.horizontal?S:T,F=W.horizontal?K:_;if(Math.abs(O-F)<=1)return;_=T,K=S,X.viewportState.containerSize=T,Z.emit("resize",{width:S,height:T});for(let f=0;f<Q.resizeHandlers.length;f++)Q.resizeHandlers[f](S,T);Q.renderIfNeeded()};window.addEventListener("resize",U,{passive:!0}),q=()=>{window.removeEventListener("resize",U)},Q.destroyHandlers.push(q)},destroy(){if(q)q(),q=null}}};var x1=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let Y=j+Q+1>>>1;if(J[Y].headerLayoutIndex<=q)j=Y;else Q=Y-1}return j},c2=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let Y=j+Q+1>>>1;if(J[Y].firstDataIndex<=q)j=Y;else Q=Y-1}return j},r2=(J,q,j)=>{if(J===0)return[];let Q=[],Y=q(0,j?.(0)),X=0,W=0;for(let Z=1;Z<J;Z++){let _=q(Z,j?.(Z));if(_!==Y){let K=Z-X;Q.push({key:Y,groupIndex:Q.length,headerLayoutIndex:W,firstDataIndex:X,count:K}),W=W+1+K,Y=_,X=Z}}return Q.push({key:Y,groupIndex:Q.length,headerLayoutIndex:W,firstDataIndex:X,count:J-X}),Q},d1=(J,q)=>{if(J.length===0||q.length===0)return[];let j=J.length+q.length,Q=Array(j),Y=0;for(let X of q){Q[Y]={id:`__group_header_${X.groupIndex}`,__groupHeader:!0,groupKey:X.key,groupIndex:X.groupIndex},Y++;for(let W=0;W<X.count;W++)Q[Y]=J[X.firstDataIndex+W],Y++}return Q},s2=(J,q,j=!1)=>{let Q=typeof q==="number"?(Y)=>q:q;return(Y)=>{let X=J.getEntry(Y);if(X.type==="header"){if(j&&X.group.groupIndex===0)return 0;return J.getHeaderHeight(X.group.groupIndex)}return Q(X.dataIndex)}},a2=(J,q,j)=>{let Q=r2(J,q.getGroupForIndex,j),Y=J+Q.length,X=q.header?.height??q.header?.width??q.headerHeight;return{get totalEntries(){return Y},get groupCount(){return Q.length},get groups(){return Q},getEntry:(O)=>{if(Q.length===0)return{type:"item",dataIndex:O,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let F=x1(Q,O),f=Q[F];if(O===f.headerLayoutIndex)return{type:"header",group:f};let L=O-f.headerLayoutIndex-1;return{type:"item",dataIndex:f.firstDataIndex+L,group:f}},layoutToDataIndex:(O)=>{if(Q.length===0)return O;let F=x1(Q,O),f=Q[F];if(O===f.headerLayoutIndex)return-1;let L=O-f.headerLayoutIndex-1;return f.firstDataIndex+L},dataToLayoutIndex:(O)=>{if(Q.length===0)return O;let F=c2(Q,O),f=Q[F],L=O-f.firstDataIndex;return f.headerLayoutIndex+1+L},getGroupAtLayoutIndex:(O)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=x1(Q,O);return Q[F]},getGroupAtDataIndex:(O)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=c2(Q,O);return Q[F]},getHeaderHeight:typeof X==="number"?(O)=>X:(O)=>{let F=Q[O];if(!F)return 0;return X(F.key,O)},rebuild:(O,F)=>{Q=r2(O,q.getGroupForIndex,F??j),Y=O+Q.length}}};var o2=(J,q,j,Q,Y=0)=>{let X=j?"width":"height",W=document.createElement("div");return W.className=`${q}-sticky-header`,W.setAttribute("role","presentation"),W.setAttribute("aria-hidden","true"),W.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${Y||0}px`:`top:${Y||0}px`),W.style[X]=`${Q}px`,J.insertBefore(W,J.firstChild),W},l1=(J,q,j,Q,Y,X=!1,W=0,Z,_)=>{let K=X?"width":"height",U=X?"height":"width",S=X?"X":"Y",T=(N,V)=>{N.style[K]=`${V}px`},O=_??(()=>{let N=document.createElement("div");return N.className=`${Y}-sticky-header`,N.setAttribute("role","presentation"),N.setAttribute("aria-hidden","true"),N.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(X?`top:0;bottom:0;left:${W||0}px`:`top:${W||0}px`),J.insertBefore(N,J.firstChild),N})(),F=()=>{let N=document.createElement("div");return N.className="sticky-group",N.style.position="absolute",N.style.willChange="transform",N.style[U]="100%",N},f=F(),L=F();if(O.append(f,L),!_)J.insertBefore(O,J.firstChild);let w=f,b=L,R=q.groups,y=[],h=[],p=[],I=0,A=()=>{R=q.groups,I=R.length,y=Array(I),h=Array(I),p=Array(I);let N=Z?Z():1;for(let V=0;V<I;V++)y[V]=j.getOffset(R[V].headerLayoutIndex)*N,h[V]=q.getHeaderHeight(V),p[V]=h[V]*N};A();let d=-1,i=0,o=0,g=-1,C=!1,k=0,P=!1,M=(N,V)=>{Q(N,V);let D=h[V];return T(N,D),D},H=(N)=>{N.replaceChildren(),N.style.transform=""},G=(N)=>{if(N===d)return;if(d=N,i=0,o=0,N<0||N>=I){H(w);return}i=M(w,N),o=p[N],T(O,i),w.style.transform=""},m=(N)=>{if(N===k)return;k=N;let V=Math.round(N);w.style.transform=`translate${S}(${V}px)`,b.style.transform=`translate${S}(${V+i}px)`},e=()=>{k=0,w.style.transform="",b.style.transform=""},s=()=>{if(!P)return;let N=w;w=b,b=N,d=g,i=d>=0?h[d]:0,o=d>=0?p[d]:0,T(O,i),H(b),g=-1,P=!1,e()},x=()=>{if(!P)return;H(b),g=-1,P=!1,e()},J0=!!_,n=()=>{if(C)return;if(C=!0,J0)O.style.visibility="";else O.style.display=""},B=()=>{if(!C)return;if(C=!1,J0)O.style.visibility="hidden";else O.style.display="none";H(w),d=-1,i=0,o=0,x()},l=(N)=>{if(I===0){B();return}if(N<y[0]){B();return}let V=0,D=I-1;while(V<D){let v=V+D+1>>>1;if(y[v]+p[v]<=N)V=v;else D=v-1}if(!C)n();G(V);let z=V+1;if(z<I){let v=y[z]-N;if(v<=0&&v>-o){if(g!==z||!P)g=z,M(b,z),P=!0;let u=o>0?v/o*i:v;m(u)}else if(v<=-o){if(P)s()}else if(P)x()}else if(P)x()},$=()=>{A();let N=d;if(d=-1,i=0,o=0,N>=0)G(N)},E=()=>{O.remove(),d=-1,i=0,o=0,g=-1,C=!1,P=!1};if(!_)O.style.display="none";return{update:l,refresh:$,show:n,hide:B,destroy:E}};var p0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var k1=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let Y=j+Q+1>>>1;if(J[Y].headerLayoutIndex<=q)j=Y;else Q=Y-1}return j},n2=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let Y=j+Q+1>>>1;if(J[Y].firstDataIndex<=q)j=Y;else Q=Y-1}return j},i2={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},t2=(J,q,j)=>{let Q=[],Y=0,X=0,W=new Map,Z=()=>{if(Q=[],Y===0||W.size===0){X=Y;return}let b=null,R=-1,y=0;for(let h=0;h<Y;h++){let p=W.get(h);if(p===void 0){if(b!==null&&R>=0){let I=h-R;Q.push({key:b,groupIndex:Q.length,headerLayoutIndex:R+y,firstDataIndex:R,count:I}),y++,b=null,R=-1}continue}if(p!==b){if(b!==null&&R>=0){let I=h-R;Q.push({key:b,groupIndex:Q.length,headerLayoutIndex:R+y,firstDataIndex:R,count:I}),y++}b=p,R=h}}if(b!==null&&R>=0){let h=Y-R;Q.push({key:b,groupIndex:Q.length,headerLayoutIndex:R+y,firstDataIndex:R,count:h}),y++}X=Y+y};return{onItemsLoaded:(b,R,y)=>{Y=y;for(let h=0;h<b.length;h++){let p=R+h,I=b[h];if(I!==void 0){let A=J.getGroupForIndex(p,I);W.set(p,A)}}Z()},get totalEntries(){return X},get groupCount(){return Q.length},get groups(){return Q},isHeader:(b)=>{if(Q.length===0)return!1;let R=k1(Q,b),y=Q[R];return b===y.headerLayoutIndex},getHeaderItem:(b)=>{if(Q.length===0)return;let R=k1(Q,b),y=Q[R];if(b!==y.headerLayoutIndex)return;return{id:`__group_header_${y.groupIndex}`,__groupHeader:!0,groupKey:y.key,groupIndex:y.groupIndex}},layoutToDataIndex:(b)=>{if(Q.length===0)return b;let R=k1(Q,b),y=Q[R];if(b===y.headerLayoutIndex)return-1;let h=b-y.headerLayoutIndex-1;return y.firstDataIndex+h},dataToLayoutIndex:(b)=>{if(Q.length===0)return b;let R=n2(Q,b),y=Q[R],h=b-y.firstDataIndex;return y.headerLayoutIndex+1+h},getHeaderHeight:(b)=>J.headerHeight,getGroupAtLayoutIndex:(b)=>{if(Q.length===0)return i2;let R=k1(Q,b);return Q[R]},getGroupAtDataIndex:(b)=>{if(Q.length===0)return i2;let R=n2(Q,b);return Q[R]},removeAt:(b)=>{let R=new Map;for(let[y,h]of W)if(y<b)R.set(y,h);else if(y>b)R.set(y-1,h);W.clear();for(let[y,h]of R)W.set(y,h);Y--,Z()},reset:()=>{Q=[],Y=0,X=0,W.clear()}}};var e2=(J,q,j,Q,Y,X)=>{if(Q===0)return 0;let W=Math.max(0,Math.min(J,Q-1)),Z=q.getOffset(W),_=q.getSize(W),K=q.getTotalSize(),U=Math.max(0,K-j),S;switch(X){case"center":S=Z-j/2+_/2;break;case"end":S=Z-j+_;break;case"start":default:S=Z;break}return Math.max(0,Math.min(S,U))};var Z1=(J,q,j,Q,Y="start",X,W=e2)=>{return W(J,q,j,Q,X,Y)};var hJ=(J,q)=>{if(J.header){let j=q?J.header.width??J.header.height:J.header.height??J.header.width;return{...J,header:{...J.header,height:j}}}if(J.headerHeight!=null&&J.headerTemplate)return{...J,header:{height:J.headerHeight,template:J.headerTemplate}};return J},c1=(J)=>{let q=J.header,j=q?q.height??q.width:J.headerHeight,Q=q?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(j==null||j<=0)throw Error("[vlist/builder] withGroups: header.height must be a positive number");if(!Q)throw Error("[vlist/builder] withGroups: header.template is required");let Y=null,X=null;return{name:"withGroups",priority:10,setup(W){let{dom:Z,config:_,rawConfig:K}=W,{classPrefix:U}=_,S=hJ(J,_.horizontal),O=K.item.height,F=S.sticky!==!1,{template:f}=S.header;Z.root.classList.add(`${U}--grouped`);let L=null;if(F)if(W.methods.set("_getStickyHeaderHeight",()=>S.header.height),L=o2(Z.root,U,_.horizontal,S.header.height),!_.horizontal)Z.viewport.style.height=`calc(100% - ${S.header.height}px)`;else Z.viewport.style.width=`calc(100% - ${S.header.height}px)`;let{animateScroll:w,cancelScroll:b}=J1(W.scrollController,W.renderIfNeeded),R=null;W.methods.set("scrollToIndex",(h,p)=>{let I=R??Y;if(!I)return;let A=I.dataToLayoutIndex(h),{align:d,behavior:i,duration:o}=d0(p),g=W.dataManager.getTotal(),C=W.adjustScrollPosition(Z1(A,W.sizeCache,W.state.viewportState.containerSize,g,d,W.getCachedCompression()));if(i==="smooth")w(W.scrollController.getScrollTop(),C,o);else b(),W.scrollController.scrollTo(C)}),W.destroyHandlers.push(()=>{if(b(),X)X.destroy(),X=null;else if(L)L.remove();Z.root.classList.remove(`${U}--grouped`)});let y=null;W.methods.set("_getGroupBridge",()=>y),queueMicrotask(()=>{let h=W.methods.get("_onItemsLoaded");if(h)pJ(W,S,_,K,O,F,f,U,h,(p)=>{y=p,R=p},(p)=>{X=p},L)}),IJ(W,S,_,K,O,F,f,U,()=>{},()=>{},(h)=>{Y=h,R=h},(h)=>{X=h},L)},destroy(){if(X)X.destroy(),X=null}}};function IJ(J,q,j,Q,Y,X,W,Z,_,K,U,S,T){let{dom:O}=J,F=null,f=Q.items?[...Q.items]:[];_(f);let L=f.length,w={getGroupForIndex:q.getGroupForIndex,header:{height:q.header.height,template:q.header.template},sticky:q.sticky??!1},b=(G)=>f[G],R=a2(L,w,b);U(R);let y=d1(f,R.groups);K(y);let h=s2(R,Y,X);J.setSizeConfig(h),J.rebuildSizeCache(y.length),J.dataManager.setItems(y,0,y.length);let p=Q.item.template,I=(G,m,e)=>{if(p0(G))return W(G.groupKey,G.groupIndex);return p(G,m,e)},A=J.methods.get("_getGridLayout"),d=J.methods.get("_replaceGridRenderer"),i=J.methods.get("_updateGridLayoutForGroups"),o=J.methods.get("_createGridRenderer"),g=J.methods.get("_getTableLayout"),C=J.methods.get("_updateTableForGroups");if(A&&d&&o){if(i)i((e)=>{let s=y[e];return!!(s&&p0(s))});let G=A(),m=o(O.items,I,J.sizeCache,G,Z,J.getContainerWidth(),()=>f.length,j.ariaIdPrefix,j.horizontal,(e)=>R.layoutToDataIndex(e)+1);d(m)}else if(g&&C)C((G)=>p0(G),q.header.template);else J.replaceTemplate(I);let k=()=>{if(!X||F)return;if(R.groupCount===0)return;let G=q.header.template,m=(s,x)=>{let J0=R.groups[x];if(!J0)return;let n=G(J0.key,J0.groupIndex);if(typeof n==="string")s.innerHTML=n;else s.replaceChildren(n)},e=l1(O.root,R,J.sizeCache,m,Z,j.horizontal,0,()=>J.getCachedCompression().ratio,T??void 0);F=e,S(e),J.afterScroll.push((s,x)=>{e.update(s)}),e.update(J.scrollController.getScrollTop())};k();let P=Q.item?.striped,M=()=>{if(P!=="data"&&P!=="even"&&P!=="odd")return;let G=new Int32Array(y.length),m=P==="odd"?1:0,e=0;for(let s=0;s<y.length;s++)if(p0(y[s])){if(G[s]=-1,P==="even"||P==="odd")e=0}else G[s]=e+++m;J.setStripeIndexFn((s)=>{if(s<0||s>=G.length)return s;return G[s]})};M();let H=()=>{if(R.rebuild(f.length,b),y=d1(f,R.groups),K(y),J.rebuildSizeCache(y.length),J.dataManager.setItems(y,0,y.length),M(),k(),F)F.refresh()};J.methods.set("setItems",(G)=>{f=G.slice(),_(f),H()}),J.methods.set("appendItems",(G)=>{f.push(...G),_(f),H()}),J.methods.set("prependItems",(G)=>{f.unshift(...G),_(f),H()}),J.methods.set("removeItem",(G)=>{f=f.filter((m)=>m.id!==G),_(f),H()}),J.methods.set("_getItems",()=>f),J.methods.set("_getTotal",()=>f.length),J.methods.set("_isGroupHeader",(G)=>{let m=y[G];return!!(m&&p0(m))}),J.methods.set("_layoutToDataIndex",(G)=>R.layoutToDataIndex(G)),J.methods.set("_dataToLayoutIndex",(G)=>R.dataToLayoutIndex(G))}function pJ(J,q,j,Q,Y,X,W,Z,_,K,U,S){let{dom:T}=J,O=J.dataManager,F=t2({getGroupForIndex:q.getGroupForIndex,headerHeight:q.header.height},(I)=>O.getItem(I),(I)=>O.isItemLoaded(I));K(F);let f=typeof Y==="number"?(I)=>Y:Y,L=(I)=>{if(F.isHeader(I)){if(X&&F.getGroupAtLayoutIndex(I).groupIndex===0)return 0;return q.header.height}let A=F.layoutToDataIndex(I);return A>=0?f(A):f(I)};J.setSizeConfig(L),J.setVirtualTotalFn(()=>F.totalEntries||O.getTotal());let w={...O,getTotal:()=>F.totalEntries,getIndexById:(I)=>{let A=O.getIndexById(I);if(A<0)return-1;return F.dataToLayoutIndex(A)},getItem:(I)=>{let A=F.getHeaderItem(I);if(A)return A;let d=F.layoutToDataIndex(I);if(d>=0)return O.getItem(d);return O.getItem(I)},getItemsInRange:(I,A)=>{let d=[];for(let i=I;i<=A;i++){let o=w.getItem(i);if(o!==void 0)d.push(o)}return d},isItemLoaded:(I)=>{if(F.isHeader(I))return!0;let A=F.layoutToDataIndex(I);if(A>=0)return O.isItemLoaded(A);return O.isItemLoaded(I)},ensureRange:(I,A)=>O.ensureRange(I,A),loadRange:(I,A)=>O.loadRange(I,A),loadInitial:()=>O.loadInitial(),loadMore:()=>O.loadMore(),reload:()=>{return F.reset(),O.reload()},setTotal:(I)=>O.setTotal(I),setItems:(I,A,d)=>O.setItems(I,A,d),removeItem:(I)=>{let A=O.getIndexById(I);if(A>=0)F.removeAt(A);return O.removeItem(I)},clear:()=>{F.reset(),O.clear()},reset:()=>{F.reset(),O.reset()}};J.replaceDataManager(w);let b=Q.item.template,R=J.methods.get("_updateTableForGroups");if(R)R((I)=>p0(I),q.header.template);J.replaceTemplate((I,A,d)=>{if(p0(I))return W(I.groupKey,I.groupIndex);return b(I,A,d)});let y=null;if(X){let I=q.header.template,A=(o,g)=>{let C=F.groups[g];if(!C)return;let k=I(C.key,C.groupIndex);if(typeof k==="string")o.innerHTML=k;else o.replaceChildren(k)},d={get totalEntries(){return F.totalEntries},get groupCount(){return F.groupCount},get groups(){return F.groups},getEntry:(o)=>{if(F.isHeader(o))return{type:"header",group:F.getGroupAtLayoutIndex(o)};return{type:"item",dataIndex:F.layoutToDataIndex(o),group:F.getGroupAtLayoutIndex(o)}},layoutToDataIndex:(o)=>F.layoutToDataIndex(o),dataToLayoutIndex:(o)=>F.dataToLayoutIndex(o),getGroupAtLayoutIndex:(o)=>F.getGroupAtLayoutIndex(o),getGroupAtDataIndex:(o)=>F.getGroupAtDataIndex(o),getHeaderHeight:(o)=>F.getHeaderHeight(o),rebuild:()=>{}};y=l1(T.root,d,J.sizeCache,A,Z,j.horizontal,0,()=>J.getCachedCompression().ratio,S??void 0),U(y);let i=y;J.afterScroll.push((o,g)=>{i.update(o)})}let h=-1;J.methods.set("_ensureTailLoaded",()=>{let I=O.getTotal();if(I<=0)return;let A=I-1;if(O.isItemLoaded(A))return;h=A,O.ensureRange(A,A)}),_((I,A,d)=>{let i=J.scrollController.getScrollTop(),o=F.groupCount,g=F.totalEntries||d,C=0,k=0,P=J.methods.get("_restoreAnchor");if(P)C=P.dataIndex,k=P.fraction;else if(i>0){let G=J.getCachedCompression(),m=G.ratio!==1?i/G.ratio:i,e=J.sizeCache.indexAtOffset(m);if(C=F.layoutToDataIndex(e),C<0&&e+1<F.totalEntries)e=e+1,C=F.layoutToDataIndex(e);let s=J.sizeCache.getOffset(e),x=J.sizeCache.getSize(e);k=x>0?(m-s)/x:0}F.onItemsLoaded(I,A,d),J.rebuildSizeCache(F.totalEntries);let M=J.getCachedCompression();if(J.updateContentSize(M.virtualSize),F.groupCount-o>0&&(i>0||P)){if(P?.skipAdjust);else if(C>=0){let G=F.dataToLayoutIndex(C),m=J.sizeCache.getOffset(G),e=J.sizeCache.getSize(G),s=m+k*e,x=M.ratio!==1?s*M.ratio:s;if(Math.abs(x-i)>1)J.scrollController.scrollTo(x);if(P){J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave");let J0=J.methods.get("_saveSnapshot");if(J0)J0()}}}else if(P){let G=P.skipAdjust;if(J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave"),!G){let m=J.methods.get("_saveSnapshot");if(m)m()}}if(y)y.refresh(),y.update(J.scrollController.getScrollTop());if(h>=0&&O.isItemLoaded(h)){let G=F.dataToLayoutIndex(h);h=-1;let m=J.methods.get("_getFocusedIndex"),e=m?m():-1;if(e>=0&&e>=g-1&&G!==e){let s=G;while(s>0&&F.isHeader(s))s--;let x=J.methods.get("_setFocusedIndex");if(x)x(s)}}}),J.methods.set("_isGroupHeader",(I)=>F.isHeader(I)),J.methods.set("_layoutToDataIndex",(I)=>F.layoutToDataIndex(I)),J.methods.set("_dataToLayoutIndex",(I)=>F.dataToLayoutIndex(I)),J.methods.set("_getTotal",()=>O.getTotal()),J.methods.delete("removeItem");let p=Q.item?.striped;if(p==="data"||p==="even"||p==="odd"){let I=p==="odd"?1:0;J.setStripeIndexFn((A)=>{if(F.isHeader(A))return-1;let d=F.layoutToDataIndex(A);return d>=0?d+I:A})}}var JJ=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.isHeaderFn,Y={row:0,col:0},X=(F)=>{if(F<=0)return 0;if(!Q)return Math.ceil(F/q);let f=0,L=0,w=0;for(let b=0;b<F;b++)if(Q(b)){if(w++,L>0)f++,L=0;f++,L=0}else if(L++,L>=q)f++,L=0;if(L>0)f++;return f},W=(F)=>{return Y.row=Z(F),Y.col=_(F),Y},Z=(F)=>{if(!Q)return Math.floor(F/q);let f=0,L=0;for(let w=0;w<=F;w++)if(Q(w)){if(L>0)f++,L=0;if(w===F)return f;f++,L=0}else{if(w===F)return f;if(L++,L>=q)f++,L=0}return console.warn(`⚠️ getRow(${F}) fell through - returning ${f}`),f},_=(F)=>{if(!Q)return F%q;if(Q(F))return 0;let f=0;for(let L=0;L<=F;L++)if(Q(L))f=0;else{if(L===F)return f;if(f++,f>=q)f=0}return f},K=(F,f,L)=>{if(L<=0)return{start:0,end:-1};if(!Q){let h=Math.max(0,F*q),p=Math.min(L-1,(f+1)*q-1);return{start:h,end:p}}let w=-1,b=-1,R=0,y=0;for(let h=0;h<L;h++){if(Q(h)){if(y>0)R++,y=0;if(R>=F&&R<=f){if(w===-1)w=h;b=h}R++,y=0}else{if(R>=F&&R<=f){if(w===-1)w=h;b=h}if(y++,y>=q)R++,y=0}if(R>f&&y===0)break}if(w===-1)return{start:0,end:-1};return{start:w,end:b}},U=(F,f,L)=>{if(f<0||f>=q)return-1;let w=F*q+f;if(w<0||w>=L)return-1;return w},S=(F)=>{let f=(q-1)*j;return Math.max(0,(F-f)/q)};return{get columns(){return q},get gap(){return j},update:(F)=>{if(F.columns!==void 0)q=Math.max(1,Math.floor(F.columns));if(F.gap!==void 0)j=F.gap;if(F.isHeaderFn!==void 0)Q=F.isHeaderFn},getTotalRows:X,getPosition:W,getRow:Z,getCol:_,getItemRange:K,getItemIndex:U,getColumnWidth:S,getColumnOffset:(F,f)=>{let L=S(f);return F*(L+j)}}};var uJ=(J=200)=>{let q=[];return{acquire:()=>{let X=q.pop();if(X)return X;let W=document.createElement("div");return W.setAttribute("role","option"),W},release:(X)=>{if(X.remove(),q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),X.removeAttribute("data-row"),X.removeAttribute("data-col"),q.push(X)},clear:()=>{q.length=0}}},gJ=1,r1=(J,q,j,Q,Y,X,W,Z,_=!1,K)=>{let U=uJ(),S=new Map,T=X,O=!1,F=0,f="",L=-1,w={selected:!1,focused:!1},b=(B,l)=>{return w.selected=B,w.focused=l,w},R=`${Y}-item ${Y}-grid-item`,y=`${Y}-group-header`,h=`${Y}-item--selected`,p=`${Y}-item--focused`,I=`${Y}-item--placeholder`,A=`${Y}-item--replaced`,d=(B,l)=>{if(typeof l==="string")B.innerHTML=l;else B.replaceChildren(l)},i=(B,l,$)=>{B.classList.toggle(h,l),B.classList.toggle(p,$)},o=(B,l)=>{let $=Q.getRow(B);if(l?.compression?.isCompressed)return Q1($,l.scrollPosition,j,l.totalItems,l.containerSize,l.compression,l.rangeStart);return j.getOffset($)},g=(B,l)=>{let $=O&&Q.getCol(B)===0,E=$?0:Q.getCol(B),N=$?0:Q.getColumnOffset(E,T),V;if(O){let D=Q.getRow(B),z=0,v=new Set;for(let u=0;u<B;u++){let t=Q.getRow(u);if(t<D&&!v.has(t)){let q0=j.getSize(u);z+=q0,v.add(t)}}V=z}else V=o(B,l);if(_)return`translate(${Math.round(V)}px, ${Math.round(N)}px)`;return`translate(${Math.round(N)}px, ${Math.round(V)}px)`},C=(B,l)=>{B.style.transform=l},k=(B,l)=>{let $=B.classList.contains(y),E=$?T:Q.getColumnWidth(T),N;if(O||$)N=j.getSize(l)-Q.gap;else{let V=Q.getRow(l);N=j.getSize(V)-Q.gap}if(_)B.style.width=`${N}px`,B.style.height=`${E}px`;else B.style.width=`${E}px`,B.style.height=`${N}px`},P=(B,l,$,E,N)=>{let V=U.acquire(),D=!!l.__groupHeader,z=b($,E);if(V.className=D?y:R,V.dataset.index=String(B),V.dataset.id=String(l.id),V.dataset.row=String(Q.getRow(B)),V.dataset.col=String(Q.getCol(B)),D)V.setAttribute("role","presentation"),V.removeAttribute("aria-selected"),V.removeAttribute("aria-setsize"),V.removeAttribute("aria-posinset"),V.removeAttribute("id");else{if(V.setAttribute("role","option"),V.ariaSelected=String($),Z)V.id=`${Z}-item-${B}`;if(W){let t=W();if(t!==L)L=t,f=String(t);V.setAttribute("aria-setsize",f);let q0=K?K(B):B+1;V.setAttribute("aria-posinset",String(q0))}}k(V,B);let v=q(l,B,z);if(d(V,v),String(l.id).startsWith(g0))V.classList.add(I);return i(V,$,E),C(V,N),{element:V,lastItemId:l.id,lastSelected:$,lastFocused:E,lastTransform:N,lastSeenFrame:F}},M=(B,l,$,E,N)=>{if(F++,l.start===0&&B.length>0)O=p0(B[0]);for(let[z,v]of S)if(z>=l.start&&z<=l.end)v.lastSeenFrame=F;else if(F-v.lastSeenFrame>gJ)U.release(v.element),S.delete(z);let V=!1;if(W){let z=W();if(z!==L)L=z,f=String(z),V=!0}let D=null;for(let z=l.start;z<=l.end;z++){let v=z-l.start,u=B[v];if(!u){console.warn(`⚠️ RENDER: Missing item at index ${z} (range: ${l.start}-${l.end}, items.length: ${B.length})`);continue}let t=$.has(u.id),q0=z===E,c=S.get(z);if(c){let Q0=c.lastItemId!==u.id,X0=c.lastSelected!==t,K0=c.lastFocused!==q0;if(Q0){let M0=String(c.lastItemId),L0=String(u.id),R0=M0.startsWith(g0),B0=L0.startsWith(g0);if(!B0&&m0($,z,u.id))t=!0;let D0=b(t,q0),F0=q(u,z,D0);if(d(c.element,F0),c.element.dataset.id=L0,c.element.dataset.row=String(Q.getRow(z)),c.element.dataset.col=String(Q.getCol(z)),k(c.element,z),c.element.classList.toggle(I,B0),R0&&!B0)c.element.classList.add(A),setTimeout(()=>c.element.classList.remove(A),300);if(c.lastItemId=u.id,!u.__groupHeader){let T0=K?K(z):z+1;c.element.setAttribute("aria-posinset",String(T0))}}if(Q0||X0||K0)i(c.element,t,q0),c.element.ariaSelected=String(t),c.lastSelected=t,c.lastFocused=q0;let W0=g(z,N);if(c.lastTransform!==W0)C(c.element,W0),c.lastTransform=W0;if(V&&!u.__groupHeader)c.element.setAttribute("aria-setsize",f)}else{if(m0($,z,u.id))t=!0;let Q0=g(z,N),X0=P(z,u,t,q0,Q0);if(!D)D=document.createDocumentFragment();D.appendChild(X0.element),S.set(z,X0)}}if(D)J.appendChild(D)},H=(B)=>{for(let[l,$]of S){let E=g(l,B);if($.lastTransform!==E)C($.element,E),$.lastTransform=E}},G=(B,l,$,E)=>{let N=S.get(B);if(!N)return;let V=b($,E),D=q(l,B,V);d(N.element,D),i(N.element,$,E),N.element.dataset.id=String(l.id),N.element.ariaSelected=String($),k(N.element,B),N.lastItemId=l.id,N.lastSelected=$,N.lastFocused=E},m=(B,l,$)=>{let E=S.get(B);if(!E)return;let N=E.lastSelected!==l,V=E.lastFocused!==$;if(N||V)i(E.element,l,$),E.lastSelected=l,E.lastFocused=$},e=(B)=>{return S.get(B)?.element},s=(B)=>{if(Math.abs(B-T)<1)return;T=B;for(let[l,$]of S){k($.element,l);let E=g(l);C($.element,E),$.lastTransform=E}},x=()=>{a0(J,S.keys(),(B)=>S.get(B)?.element)},J0=()=>{for(let[,B]of S)U.release(B.element);S.clear()};return{render:M,updatePositions:H,updateItem:G,updateItemClasses:m,getElement:e,sortDOM:x,updateContainerWidth:s,clear:J0,destroy:()=>{J0(),U.clear()}}};var mJ=new Set,s1=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let q=null,j=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(Q){let{dom:Y,emitter:X,config:W,rawConfig:Z}=Q,{classPrefix:_}=W;if(W.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let K=W.horizontal,U=M1(S0(Z.padding),K),S=()=>{return(K?Y.viewport.clientHeight:Q.getContainerWidth())-U},T=Z.items?.some((x)=>x.__groupHeader===!0),O={columns:J.columns,gap:J.gap??0};if(T)O.isHeaderFn=(x)=>{let J0=Q.dataManager.getItem(x);return!!(J0&&J0.__groupHeader===!0)};q=JJ(O);let F=q.gap;Q.setVirtualTotalFn(()=>{let x=Q.dataManager.getTotal();return q.getTotalRows(x)}),Q.setItemToScrollIndexFn((x)=>Math.floor(x/O.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>K?{ud:1,lr:O.columns,cols:O.columns}:{ud:O.columns,lr:1,cols:O.columns});let f=Z.item,L=W.horizontal?f.width:f.height,w={containerWidth:S(),columns:q.columns,gap:q.gap},b={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof L==="function")Q.setSizeConfig((x)=>{let J0=w.containerWidth-2,n=(w.columns-1)*w.gap;return b.containerWidth=w.containerWidth,b.columns=w.columns,b.gap=w.gap,b.columnWidth=(J0-n)/w.columns,b.row=q.getRow(x),b.column=q.getCol(x),b.totalRows=q.getTotalRows(Q.dataManager.getTotal()),b.totalColumns=w.columns,L(x,b)+w.gap});else if(F>0)Q.setSizeConfig(L+F);if(Q.rebuildSizeCache(),F>0){let x=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let J0=x();return J0>0?J0-w.gap:0}}Y.root.classList.add(`${_}--grid`);let R=S(),y=Z.item.template,h=o0(Q.methods,()=>Q.dataManager.getTotal()),p=()=>{j=r1(Y.items,y,Q.sizeCache,q,_,R,h.getSetSize,W.ariaIdPrefix,W.horizontal,h.getPosInSet),Q.replaceRenderer(j)};p(),Q.setUpdateItemClassesFn((x,J0,n)=>{j?.updateItemClasses(x,J0,n)}),Q.methods.set("_updateRenderedItem",(x,J0,n,B)=>{j?.updateItem(x,J0,n,B)}),Q.methods.set("_getGridLayout",()=>q),Q.methods.set("_getGridConfig",()=>O),Q.methods.set("_replaceGridRenderer",(x)=>{j=x}),Q.methods.set("_createGridRenderer",r1),Q.methods.set("_updateGridLayoutForGroups",(x)=>{q.update({isHeaderFn:x});let J0=Q.dataManager.getTotal(),n=0;for(let B=0;B<J0;B++)if(q.getCol(B)===0){let l=Q.sizeCache.getSize(B);n+=l}Q.sizeCache.getTotalSize=()=>n,Q.updateContentSize(n),p()}),Q.methods.set("updateGrid",(x)=>{if(x.columns!==void 0){if(!Number.isInteger(x.columns)||x.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");O.columns=x.columns}if(x.gap!==void 0){if(x.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");O.gap=x.gap}if(q)q.update(O);let J0=S();if(w.containerWidth=J0,w.columns=O.columns,w.gap=O.gap??0,j)j.updateContainerWidth(J0);Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode();for(let n=0;n<Q.contentSizeHandlers.length;n++)Q.contentSizeHandlers[n]();if(j)j.clear();Q.forceRender()});let I=null,A=null,d=!1,i=()=>{if(d)return;d=!0,I=Q.methods.get("_getSelectedIds")??null,A=Q.methods.get("_getFocusedIndex")??null},o=-1,g=-1,C=!0,k=W.overscan,P={start:0,end:0},M={start:0,end:0},H=()=>{if(Q.state.isDestroyed)return;let x=Q.scrollController.getScrollTop(),J0=Q.state.viewportState.containerSize;if(!C&&x===o&&J0===g)return;o=x,g=J0,C=!1;let n=Q.getVirtualTotal();Q.getVisibleRange(x,J0,n,P),M.start=Math.max(0,P.start-k),M.end=Math.min(n-1,P.end+k);let B=Q.state.viewportState;B.scrollPosition=x,B.visibleRange.start=P.start,B.visibleRange.end=P.end,B.renderRange.start=M.start,B.renderRange.end=M.end;let l=Q.state.lastRenderRange,$=B.isCompressed,E=l.start!==M.start||l.end!==M.end;if(!E&&$){j.updatePositions(Q.getCompressionContext());return}let N=Q.dataManager.getTotal(),V=q.getItemRange(M.start,M.end,N),D=Q.dataManager.getItemsInRange(V.start,V.end),z=$?Q.getCompressionContext():void 0;i();let v=I?I():mJ,u=A?A():-1;if(j.render(D,V,v,u,z),E)l.start=M.start,l.end=M.end,X.emit("range:change",{range:{start:M.start,end:M.end}})},G=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,C=!0,H()};Q.setRenderFns(H,G);let m=typeof L==="function";Q.resizeHandlers.push((x,J0)=>{let n=(K?J0:x)-U;if(Math.abs(n-w.containerWidth)<1)return;if(w.containerWidth=n,j)j.updateContainerWidth(n);if(m){Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode();for(let B=0;B<Q.contentSizeHandlers.length;B++)Q.contentSizeHandlers[B]();if(j)j.clear();Q.forceRender()}});let{animateScroll:e,cancelScroll:s}=J1(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",s),Q.methods.set("scrollToIndex",(x,J0)=>{let n=Math.floor(x/J.columns),{align:B,behavior:l,duration:$}=d0(J0),E=Q.dataManager.getState(),N=q.getTotalRows(E.total),V=Math.max(0,Math.min(n,N-1)),D=Q.adjustScrollPosition(Z1(V,Q.sizeCache,Q.state.viewportState.containerSize,N,B,Q.getCachedCompression()));if(l==="smooth")e(Q.scrollController.getScrollTop(),D,$);else s(),Q.scrollController.scrollTo(D)}),!Q.methods.has("_getTotal"))Q.methods.set("_getTotal",()=>Q.dataManager.getTotal());Q.methods.set("_layoutToDataIndex",(x)=>x*J.columns),Q.methods.set("_dataToLayoutIndex",(x)=>Math.floor(x/J.columns)),Q.idleHandlers.push(()=>{if(j)j.sortDOM()}),Q.destroyHandlers.push(()=>{if(s(),j)j.destroy(),j=null;Y.root.classList.remove(`${_}--grid`)})},destroy(){if(j)j.destroy(),j=null}}};var QJ=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.containerSize,Y=0,X=[],W=()=>{let L=(q-1)*j;Y=Math.max(0,(Q-L)/q),X=Array(q);let w=Y+j;for(let b=0;b<q;b++)X[b]=b*w};W();let Z=[],_=0,K=[],U=(L)=>{let w=0,b=L[0];for(let R=1;R<L.length;R++){let y=L[R];if(y<b)b=y,w=R}return w},S=(L,w)=>{if(L<=0)return _=0,Z=[],[];let b=Array(q).fill(0),R=Array(q);for(let p=0;p<q;p++)R[p]=[];let y=Array(L);for(let p=0;p<L;p++){let I=U(b),A=w(p),d=b[I];y[p]={index:p,x:X[I],y:d,lane:I,size:A,crossSize:Y},R[I].push(p),b[I]=d+A+j}Z=R;let h=0;for(let p=0;p<q;p++){let I=b[p],A=I>0?I-j:0;if(A>h)h=A}return _=h,y},T=(L)=>{if(L.length===0)return _>0?_:0;if(_>0)return _;let w=Array(q).fill(0);for(let R of L){let y=R.y+R.size,h=w[R.lane];if(y>h)w[R.lane]=y}let b=0;for(let R=0;R<q;R++)if(w[R]>b)b=w[R];return b},O=(L,w,b)=>{if(L.length===0||b<=w)return K.length=0,K;if(Z.length===0||Z.length!==q)return F(L,w,b);K.length=0;for(let R=0;R<q;R++){let y=Z[R],h=y.length;if(h===0)continue;let p=0,I=h;while(p<I){let A=p+I>>>1,d=L[y[A]];if(d.y+d.size<=w)p=A+1;else I=A}for(let A=p;A<h;A++){let d=L[y[A]];if(d.y>=b)break;K.push(d)}}return K},F=(L,w,b)=>{let R=[];for(let y of L)if(y.y+y.size>w&&y.y<b)R.push(y);return R};return{get columns(){return q},get gap(){return j},get containerSize(){return Q},update:(L)=>{let w=!1;if(L.columns!==void 0){let b=Math.max(1,Math.floor(L.columns));if(b!==q)q=b,w=!0}if(L.gap!==void 0&&L.gap!==j)j=L.gap,w=!0;if(L.containerSize!==void 0&&L.containerSize!==Q)Q=L.containerSize,w=!0;if(w)W()},calculateLayout:S,getTotalSize:T,getVisibleItems:O}};var xJ=(J=200)=>{let q=[];return{acquire:()=>{let X=q.pop();if(X)return X;let W=document.createElement("div");return W.setAttribute("role","option"),W},release:(X)=>{if(X.remove(),q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),X.removeAttribute("data-lane"),q.push(X)},clear:()=>{q.length=0}}},dJ=1,qJ=(J,q,j,Q=!1,Y,X,W)=>{let Z=xJ(),_=new Map,K=new Set,U=0,S="",T=-1,O={selected:!1,focused:!1},F=(C,k)=>{return O.selected=C,O.focused=k,O},f=`${j}-item ${j}-masonry-item`,L=`${j}-group-header`,w=`${j}-item--selected`,b=`${j}-item--focused`,R=(C,k)=>{if(typeof k==="string")C.innerHTML=k;else C.replaceChildren(k)},y=(C,k,P)=>{C.classList.toggle(w,k),C.classList.toggle(b,P)},h=(C,k)=>{if(Q)C.style.transform=`translate(${Math.round(k.y)}px, ${Math.round(k.x)}px)`;else C.style.transform=`translate(${Math.round(k.x)}px, ${Math.round(k.y)}px)`},p=(C,k)=>{if(Q)C.style.width=`${k.size}px`,C.style.height=`${k.crossSize}px`;else C.style.width=`${k.crossSize}px`,C.style.height=`${k.size}px`},I=(C,k,P,M,H)=>{let G=Z.acquire(),m=!!k.__groupHeader,e=F(M,H);if(G.className=m?L:f,G.dataset.index=String(C),G.dataset.id=String(k.id),G.dataset.lane=String(P.lane),m)G.setAttribute("role","presentation"),G.removeAttribute("aria-selected"),G.removeAttribute("aria-setsize"),G.removeAttribute("aria-posinset"),G.removeAttribute("id");else{if(G.setAttribute("role","option"),G.ariaSelected=String(M),X)G.id=`${X}-item-${C}`;if(Y){let x=Y();if(x!==T)T=x,S=String(x);G.setAttribute("aria-setsize",S);let J0=W?W(C):C+1;G.setAttribute("aria-posinset",String(J0))}}p(G,P);let s=q(k,C,e);return R(G,s),y(G,M,H),h(G,P),{element:G,lastItemId:k.id,lastSelected:M,lastFocused:H,lastY:P.y,lastX:P.x,lastSize:P.size,lastCrossSize:P.crossSize,lastSeenFrame:U}},A=(C,k,P,M)=>{U++,K.clear();for(let G=0;G<k.length;G++)K.add(k[G].index);for(let[G,m]of _)if(K.has(G))m.lastSeenFrame=U;else if(U-m.lastSeenFrame>dJ)Z.release(m.element),_.delete(G);let H=null;for(let G=0;G<k.length;G++){let m=k[G],e=m.index,s=C(e);if(!s)continue;let x=P.has(s.id),J0=e===M,n=_.get(e);if(n){let B=n.lastItemId!==s.id,l=n.lastSelected!==x,$=n.lastFocused!==J0,E=n.lastY!==m.y||n.lastX!==m.x,N=n.lastSize!==m.size||n.lastCrossSize!==m.crossSize;if(B){let V=F(x,J0),D=q(s,e,V);if(R(n.element,D),n.element.dataset.id=String(s.id),n.lastItemId=s.id,!s.__groupHeader){let v=W?W(e):e+1;n.element.setAttribute("aria-posinset",String(v))}}if(B||l||$)y(n.element,x,J0),n.element.ariaSelected=String(x),n.lastSelected=x,n.lastFocused=J0;if(N)p(n.element,m),n.lastSize=m.size,n.lastCrossSize=m.crossSize;if(E)h(n.element,m),n.lastY=m.y,n.lastX=m.x}else{let B=I(e,s,m,x,J0);if(!H)H=document.createDocumentFragment();H.appendChild(B.element),_.set(e,B)}}if(H)J.appendChild(H)},d=()=>{for(let{element:C}of _.values())Z.release(C);_.clear(),J.innerHTML=""};return{render:A,getElement:(C)=>_.get(C)?.element,updateItemClasses:(C,k,P)=>{let M=_.get(C);if(!M)return;let H=M.lastSelected!==k,G=M.lastFocused!==P;if(H||G)y(M.element,k,P),M.lastSelected=k,M.lastFocused=P},sortDOM:()=>{a0(J,_.keys(),(C)=>_.get(C)?.element)},clear:d,destroy:()=>{d(),Z.clear()}}};var lJ=new Set,cJ=100,a1=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let q=null,j=null,Q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(Y){let{dom:X,emitter:W,config:Z,rawConfig:_}=Y,K=Z.classPrefix,U=Z.horizontal;if(Z.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");X.root.classList.add(`${K}--masonry`);let S=S0(_.padding),T=M1(S,U),O=s0(S,U),F=()=>{return(U?X.viewport.clientHeight:X.viewport.clientWidth)-T},f={columns:J.columns,gap:J.gap??0,containerSize:F()};q=QJ(f);let L=_.item,w=U&&_.item.width?_.item.width:L.height,b={containerWidth:0,columns:0,gap:0,columnWidth:0},R=typeof w==="function"?(N)=>w(N,b):()=>w,y=()=>{let N=Y.dataManager.getTotal(),V=q;b.containerWidth=V.containerSize,b.columns=V.columns,b.gap=V.gap;let D=(V.columns-1)*V.gap;b.columnWidth=Math.max(0,(b.containerWidth-D)/V.columns),Q=V.calculateLayout(N,R),i();let z=q.getTotalSize(Q);Y.sizeCache.getTotalSize=()=>z,Y.updateContentSize(z)},h=_.item.template,p=o0(Y.methods,()=>Y.dataManager.getTotal());j=qJ(X.items,h,K,U,p.getSetSize,Z.ariaIdPrefix,p.getPosInSet),Y.setUpdateItemClassesFn((N,V,D)=>{j?.updateItemClasses(N,V,D)});let I=[],A=new Int32Array(0),d=[],i=()=>{let N=f.columns,V=Q.length;if(I=Array.from({length:N},()=>[]),A.length<V)A=new Int32Array(V);for(let D=0;D<V;D++){let z=Q[D],v=I[z.lane].length;I[z.lane].push(D),A[D]=v}d=Array(N);for(let D=0;D<N;D++){let z=I[D],v=new Float64Array(z.length);for(let u=0;u<z.length;u++){let t=Q[z[u]];v[u]=t.y+t.size*0.5}d[D]=v}};Y.methods.set("_getNavTotal",()=>Y.dataManager.getTotal());let o=(N,V)=>{let D=N.length;if(D===0)return-1;if(D===1)return 0;let z=0,v=D-1;while(z<v){let u=z+v>>1;if(N[u]<V)z=u+1;else v=u}if(z>0&&Math.abs(N[z-1]-V)<=Math.abs(N[z]-V))return z-1;return z};Y.methods.set("_navigate",(N,V,D)=>{let z=Q[N];if(!z)return N;let v=z.lane,u=f.columns,t=A[N],q0=I[v];switch(U?V==="ArrowDown"?"ArrowRight":V==="ArrowUp"?"ArrowLeft":V==="ArrowRight"?"ArrowDown":V==="ArrowLeft"?"ArrowUp":V:V){case"ArrowDown":{if(t+1<q0.length)return q0[t+1];return N}case"ArrowUp":{if(t>0)return q0[t-1];return N}case"ArrowRight":{if(v>=u-1)return N;let Q0=v+1,X0=z.y+z.size*0.5,K0=I[Q0];if(K0.length===0)return N;let W0=o(d[Q0],X0);return W0>=0?K0[W0]:N}case"ArrowLeft":{if(v<=0)return N;let Q0=v-1,X0=z.y+z.size*0.5,K0=I[Q0];if(K0.length===0)return N;let W0=o(d[Q0],X0);return W0>=0?K0[W0]:N}case"Home":return 0;case"End":return D-1;case"PageDown":{let Q0=Y.state.viewportState.containerSize,X0=z.size>0?z.size:150,K0=Math.max(1,Math.floor(Q0/X0)),W0=Math.min(t+K0,q0.length-1);return q0[W0]}case"PageUp":{let Q0=Y.state.viewportState.containerSize,X0=z.size>0?z.size:150,K0=Math.max(1,Math.floor(Q0/X0)),W0=Math.max(0,t-K0);return q0[W0]}}return N}),Y.methods.set("_scrollItemIntoView",(N)=>{let V=Q[N];if(!V)return;let D=Y.scrollController.getScrollTop(),z=Y.state.viewportState.containerSize,v=V.y,u=v+V.size,t=D+z;if(v<D)Y.scrollController.scrollTo(Y.adjustScrollPosition(Math.max(0,v)));else if(u>t)Y.scrollController.scrollTo(Y.adjustScrollPosition(u-z))});let g=null,C=null,k=!1,P=()=>{if(k)return;k=!0,g=Y.methods.get("_getSelectedIds")??null,C=Y.methods.get("_getFocusedIndex")??null},M=(N)=>Y.dataManager.getItem(N),H=-1,G=-1,m=!0,e=Z.overscan*cJ,s=()=>{if(Y.state.isDestroyed)return;P();let N=Y.scrollController.getScrollTop(),V=Y.state.viewportState.containerSize;if(!m&&N===H&&V===G)return;H=N,G=V,m=!1;let D=Math.max(0,N-e),z=N+V+e,v=q.getVisibleItems(Q,D,z),u=g?g():lJ,t=C?C():-1;if(j&&v.length>0)j.render(M,v,u,t);let q0=Y.state.viewportState;q0.scrollPosition=N;let c=v.length,Q0=c>0?v[0].index:0,X0=c>0?v[c-1].index:0;q0.visibleRange.start=Q0,q0.visibleRange.end=X0,q0.renderRange.start=Q0,q0.renderRange.end=X0;let K0=Y.state.lastRenderRange;if(K0.start!==Q0||K0.end!==X0)K0.start=Q0,K0.end=X0,W.emit("range:change",{range:{start:Q0,end:X0}})},x=()=>{Y.state.lastRenderRange.start=-1,Y.state.lastRenderRange.end=-1,m=!0,s()};Y.setRenderFns(s,x);let J0=(N,V)=>{let D=(U?V:N)-T;if(q&&q.containerSize!==D){if(q.update({containerSize:D}),y(),j)j.clear();x()}};Y.resizeHandlers.push(J0);let n=()=>{y(),x()},B=Y.dataManager,l=(N)=>{if(typeof B[N]!=="function")return;let V=B[N].bind(B);B[N]=(...D)=>{V(...D),n()}};l("setItems"),l("appendItems"),l("prependItems"),l("updateItem"),l("removeItem");let{animateScroll:$,cancelScroll:E}=J1(Y.scrollController,Y.renderIfNeeded);Y.methods.set("cancelScroll",E),Y.methods.set("scrollToIndex",(N,V)=>{let D=Q[N];if(!D)return;let{align:z,behavior:v,duration:u}=d0(V),t=D.y,q0=Y.state.viewportState.containerSize,c=t;if(z==="center")c=t-q0/2+D.size/2;else if(z==="end"){c=t-q0+D.size;let Q0=q.getTotalSize(Q);if(N===Q.length-1)c=Math.max(0,Q0+O-q0)}if(c=Math.max(0,c),c=Y.adjustScrollPosition(c),v==="smooth")$(Y.scrollController.getScrollTop(),c,u);else E(),Y.scrollController.scrollTo(c)}),y(),Y.idleHandlers.push(()=>{if(j)j.sortDOM()}),Y.destroyHandlers.push(()=>{if(E(),j)j.destroy();X.root.classList.remove(`${K}--masonry`)})}}};var o1=(J)=>{let q=J?.mode??"single",j=J?.followFocus??!1,Q=J?.initial,Y=J?.shiftArrowToggle??"origin",X=J?.focusOnClick??!1,W=J?.contextMenu??"select",Z=C2(Q),_=null,K=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(U){let{dom:S,emitter:T,config:O}=U,{classPrefix:F,ariaIdPrefix:f}=O;if(q==="none"){U.methods.set("select",()=>{}),U.methods.set("deselect",()=>{}),U.methods.set("toggleSelect",()=>{}),U.methods.set("selectAll",()=>{}),U.methods.set("clearSelection",()=>{}),U.methods.set("getSelected",()=>[]),U.methods.set("getSelectedItems",()=>[]),U.methods.set("setSelectionMode",()=>{}),U.methods.set("selectNext",()=>{}),U.methods.set("selectPrevious",()=>{}),U.methods.set("_focusById",()=>{}),U.methods.set("_getFocusedId",()=>{return});return}S.root.classList.add(`${F}--selectable`);let L=()=>U.methods.get("_isGroupHeader"),w=()=>U.methods.get("_layoutToDataIndex"),b=()=>U.methods.get("_dataToLayoutIndex"),R=(E)=>{let N=L();return N?N(E):!1},y=(E,N,V)=>{if(!L())return E;let D=E;while(D>=0&&D<V){if(!R(D))return D;D+=N}D=E-N;while(D>=0&&D<V){if(!R(D))return D;D-=N}return E},h=new Map,p=()=>{h.clear();let E=U.dataManager.getTotal(),N=U.dataManager.getCached();if(N===0)return;if(N>=E){for(let D=0;D<E;D++){let z=U.dataManager.getItem(D);if(z)h.set(z.id,D)}return}let V=U.dataManager.getStorage();if(V&&typeof V.getLoadedRanges==="function"){let D=V.getLoadedRanges();for(let z of D)for(let v=z.start;v<=z.end;v++){let u=U.dataManager.getItem(v);if(u&&!u._isPlaceholder)h.set(u.id,v)}}};T.on("data:change",({type:E,id:N})=>{if(E==="remove"){Z.selected.delete(N),p();let V=U.dataManager.getTotal();if(V>0&&Z.focusedIndex>=0){let D=Math.min(Z.focusedIndex,V-1);Z.focusedIndex=y(D,1,V)}}}),T.on("load:end",({items:E,offset:N})=>{if(!E||E.length===0)return;if(N!==void 0)for(let V=0;V<E.length;V++){let D=E[V];if(D&&D.id!==void 0)h.set(D.id,N+V)}else p()}),p(),U.methods.set("_getSelectedIds",()=>{return Z.selected}),U.methods.set("_getFocusedIndex",()=>{return Z.focusVisible?Z.focusedIndex:-1}),U.methods.set("_seedSelection",(E)=>{for(let N of E)Z.selected.add(N)});let{forceRender:I}=U.getRenderFns(),A=()=>{I();let E=(N)=>{let V=h.get(N);if(V===void 0)return;return U.dataManager.getItem(V)};T.emit("selection:change",{selected:L1(Z),items:F1(Z,E)})},d=S0(U.rawConfig.padding),i=O.horizontal?d.left:d.top,o=O.horizontal?d.right:d.bottom,g=U.getItemToScrollIndexFn(),C=null,k=null,P=null,M=!1,H=()=>{if(M)return;M=!0,C=U.methods.get("_getNavDelta")??null,k=U.methods.get("_navigate")??null,P=U.methods.get("_scrollItemIntoView")??null},G=()=>{return H(),C?C():{ud:1,lr:0,cols:0}},m=(E)=>{if(E<0)return;if(H(),P)P(E);else{let N=U.state.viewportState.containerSize,V=U.state.viewportState.scrollPosition,D=U.dataManager.getTotal(),z=U.getCachedCompression(),{visibleRange:v}=U.state.viewportState,u=g(E),t=O1(u,U.sizeCache,V,N,i,o,z,D,v);if(t!==V)U.scrollController.scrollTo(U.adjustScrollPosition(t))}},e=()=>{let E=g(Math.max(0,Z.focusedIndex)),N=U.sizeCache.getSize(E),{ud:V}=G();return Math.max(V,Math.floor(U.state.viewportState.containerSize/N)*V)};_=document.createElement("div"),_.setAttribute("aria-live","polite"),_.setAttribute("aria-atomic","true"),_.className=`${F}-live-region`,_.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",(S.root.getAttribute("role")==="grid"?S.root.parentElement??S.root:S.root).appendChild(_);let x=_;T.on("selection:change",({selected:E})=>{let N=E.length;if(N===0)x.textContent="";else if(N===1)x.textContent="1 item selected";else x.textContent=`${N} items selected`});let J0=()=>{if(U.state.isDestroyed)return;if(!S.root.matches(":focus-visible"))return;let E=U.dataManager.getTotal();if(E===0)return;let N=Z.focusedIndex>=0?Math.min(Z.focusedIndex,E-1):0;N=y(N,1,E),Z=x0(Z,N),Z.focusVisible=!0,S.root.setAttribute("aria-activedescendant",`${f}-item-${N}`),m(N);let V=U.dataManager.getItem(N);if(V)U.renderer.updateItemClasses(N,Z.selected.has(V.id),!0)};if(O.interactive)S.root.addEventListener("focusin",J0);let n=(E)=>{if(U.state.isDestroyed)return;let N=E.relatedTarget;if(N&&S.root.contains(N))return;let V=Z.focusedIndex;if(Z.focusVisible=!1,S.root.removeAttribute("aria-activedescendant"),V>=0){let D=U.dataManager.getItem(V);if(D)U.renderer.updateItemClasses(V,Z.selected.has(D.id),!1)}};if(O.interactive)S.root.addEventListener("focusout",n);let B=(E)=>{let N=E.target.closest("[data-index]");if(!N)return null;let V=parseInt(N.dataset.index??"-1",10);if(V<0)return null;let D=U.dataManager.getItem(V);if(!D||R(V))return null;return{item:D,index:V}},l=(E)=>{Z=x0(Z,E),Z.focusVisible=X,K=E,S.root.setAttribute("aria-activedescendant",`${f}-item-${E}`)};if(U.clickHandlers.push((E)=>{if(U.state.isDestroyed)return;let N=B(E);if(!N)return;let{item:V,index:D}=N;if(T.emit("item:click",{item:V,index:D,event:E}),q==="multiple"&&E.shiftKey&&Z.focusedIndex>=0){let z=K>=0?K:Z.focusedIndex;Z=T1(Z,U.getAllLoadedItems(),z,D,q),l(D),A();return}l(D),Z=e0(Z,V.id,q),A()}),W==="select")U.contextMenuHandlers.push((E)=>{if(U.state.isDestroyed)return;let N=B(E);if(!N)return;if(!Z.selected.has(N.item.id))Z={...Z,selected:new Set([N.item.id])},l(N.index),A()});if(O.interactive)U.keydownHandlers.push((E)=>{if(U.state.isDestroyed)return;let N=U.dataManager.getTotal(),V=Z.focusedIndex,D=!1,z=!1,v=Z;if(H(),k)switch(E.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let u=k(Z.focusedIndex,E.key,N);if(u!==Z.focusedIndex)v=x0(Z,u),v.focusVisible=!0,D=!0,z=!0;else{E.preventDefault();return}break}}if(!D)switch(E.key){case"ArrowUp":v=A1(Z,N,O.wrap,G().ud),v.focusVisible=!0,D=!0,z=!0;break;case"ArrowDown":v=E1(Z,N,O.wrap,G().ud),v.focusVisible=!0,D=!0,z=!0;break;case"ArrowLeft":{let{lr:u}=G();if(u)v=A1(Z,N,O.wrap,u),v.focusVisible=!0,D=!0,z=!0;break}case"ArrowRight":{let{lr:u}=G();if(u)v=E1(Z,N,O.wrap,u),v.focusVisible=!0,D=!0,z=!0;break}case"PageUp":case"PageDown":{let u=e(),t=w(),q0=b();if(t&&q0){let c=t(Z.focusedIndex),Q0=E.key==="PageUp"?-u:u,X0=t(N-1),K0=Math.max(0,Math.min(X0,c+Q0));v=x0(Z,q0(K0))}else v=f2(Z,N,u,E.key==="PageUp"?"up":"down");v.focusVisible=!0,D=!0,z=!0;break}case"Home":{v=v2(Z,N),v.focusVisible=!0,D=!0,z=!0;break}case"End":{v=S2(Z,N);let u=U.methods.get("_ensureTailLoaded");if(u)u();v.focusVisible=!0,D=!0,z=!0;break}}switch(E.key){case" ":case"Enter":if(E.key===" "&&E.shiftKey&&q==="multiple"&&Z.focusedIndex>=0){if(K>=0){let u=U.getAllLoadedItems();v=T1(v,u,K,Z.focusedIndex,q)}v.focusVisible=!0,D=!0;break}if(Z.focusedIndex>=0&&!R(Z.focusedIndex)){let u=U.dataManager.getItem(Z.focusedIndex);if(u)v=e0(Z,u.id,q),v.focusVisible=!0;K=Z.focusedIndex,D=!0}break;case"a":if((E.ctrlKey||E.metaKey)&&q==="multiple"){let u=U.getAllLoadedItems();if(Z.selected.size===u.length)v=f1(v);else v=S1(v,u,q);v.focusVisible=!0,D=!0,z=!1}break;case"Delete":case"Backspace":if(Z.selected.size>0){let u=(t)=>{let q0=h.get(t);return q0===void 0?void 0:U.dataManager.getItem(q0)};T.emit("delete",{selected:L1(Z),items:F1(Z,u)}),D=!0}break}if(z&&L()){let u=v.focusedIndex>V?1:-1;v.focusedIndex=y(v.focusedIndex,u,N)}if(E.shiftKey&&q==="multiple"&&z&&v.focusedIndex>=0){let u=E.key==="ArrowUp"||E.key==="ArrowDown"||E.key==="ArrowLeft"||E.key==="ArrowRight",t=(E.ctrlKey||E.metaKey)&&(E.key==="Home"||E.key==="End");if(u){if(Y==="origin"){if(V>=0){let q0=U.dataManager.getItem(V);if(q0)v=e0(v,q0.id,q)}}else{let q0=U.dataManager.getItem(v.focusedIndex);if(q0)v=e0(v,q0.id,q)}K=v.focusedIndex,z=!1}else if(t){let q0=U.getAllLoadedItems(),c=V>=0?V:v.focusedIndex;v=T1(v,q0,c,v.focusedIndex,q),K=v.focusedIndex,z=!1}}if(j&&q==="single"&&z&&v.focusedIndex>=0){let u=U.dataManager.getItem(v.focusedIndex);if(u)v=t0(v,[u.id],q);z=!1}if(D){E.preventDefault(),Z=v;let u=Z.focusedIndex;if(u>=0)m(u),S.root.setAttribute("aria-activedescendant",`${f}-item-${u}`);else S.root.removeAttribute("aria-activedescendant");if(z){let{selected:t}=Z;if(V>=0&&V!==u){let q0=U.dataManager.getItem(V);if(q0)U.renderer.updateItemClasses(V,t.has(q0.id),!1)}if(u>=0){let q0=U.dataManager.getItem(u);if(q0)U.renderer.updateItemClasses(u,t.has(q0.id),!0)}}else A();if(u>=0&&u!==V){let t=U.dataManager.getItem(u);if(t)T.emit("focus:change",{id:t.id,index:u})}}});U.methods.set("select",(...E)=>{if(Z=t0(Z,E,q),E.length>0){let N=h.get(E[0]);if(N===void 0)p(),N=h.get(E[0]);if(N!==void 0)Z=x0(Z,N)}A()}),U.methods.set("deselect",(...E)=>{Z=v1(Z,E),A()}),U.methods.set("toggleSelect",(E)=>{Z=e0(Z,E,q),A()}),U.methods.set("selectAll",()=>{if(q!=="multiple")return;let E=U.getAllLoadedItems();Z=S1(Z,E,q),p(),A()}),U.methods.set("clearSelection",()=>{Z=f1(Z),A()}),U.methods.set("getSelected",()=>{return L1(Z)}),U.methods.set("getSelectedItems",()=>{return F1(Z,(N)=>{let V=h.get(N);return V===void 0?void 0:U.dataManager.getItem(V)})});let $=(E)=>{let N=U.dataManager.getTotal();if(N===0)return;if(H(),k){let v=E==="next"?"ArrowDown":"ArrowUp",u=k(Z.focusedIndex,v,N);Z=x0(Z,u)}else{let{ud:v}=G();Z=E==="next"?E1(Z,N,O.wrap,v):A1(Z,N,O.wrap,v)}let V=E==="next"?1:-1;Z.focusedIndex=y(Z.focusedIndex,V,N);let D=Z.focusedIndex,z=U.dataManager.getItem(D);if(!z)return;Z=t0(Z,[z.id],q),m(D),A()};U.methods.set("selectNext",()=>{$("next")}),U.methods.set("selectPrevious",()=>{$("previous")}),U.methods.set("_focusById",(E)=>{let N=h.get(E);if(N!==void 0){let D=U.dataManager.getItem(N);if(!D||D.id!==E)N=void 0}if(N===void 0){if(p(),N=h.get(E),N===void 0)return}Z=x0(Z,N);let V=U.dataManager.getItem(N);if(V)T.emit("focus:change",{id:V.id,index:N})}),U.methods.set("_getFocusedId",()=>{let E=Z.focusedIndex;if(E<0)return;return U.dataManager.getItem(E)?.id}),U.methods.set("_setFocusedIndex",(E)=>{Z=x0(Z,E),Z.focusVisible=!0,m(E),S.root.setAttribute("aria-activedescendant",`${f}-item-${E}`),U.renderIfNeeded()}),U.destroyHandlers.push(()=>{if(x&&x.parentNode)x.remove();S.root.removeEventListener("focusin",J0),S.root.removeEventListener("focusout",n)})},destroy(){if(_&&_.parentNode)_.remove();_=null}}};var rJ=(J)=>{try{let q=sessionStorage.getItem(J);if(!q)return;return JSON.parse(q)}catch{return}},n1=(J)=>{let q=J?.autoSave,j=q?rJ(q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){Q.methods.set("getScrollSnapshot",()=>{let Z=Q.scrollController.getScrollTop(),_=Q.getCachedCompression(),K=Q.getVirtualTotal(),U=Q.methods.get("getSelected"),S=U&&U().length>0?U():void 0;if(K===0){let R={index:0,offsetInItem:0,total:0};if(S)R.selectedIds=S;return R}let T,O;if(_.isCompressed&&_.ratio!==1){let y=Z/_.virtualSize*K;T=Math.max(0,Math.min(Math.floor(y),K-1)),O=(y-T)*Q.sizeCache.getSize(T)}else T=Q.sizeCache.indexAtOffset(Z),O=Z-Q.sizeCache.getOffset(T);O=Math.max(0,O);let F={index:T,offsetInItem:O,total:K,scrollTop:Z},f=Q.sizeCache.getSize(T);if(f>0)F.offsetRatio=O/f;let L=Q.methods.get("_layoutToDataIndex");if(L){let R=L(T);if(R<0){for(let y=T+1;y<K;y++)if(R=L(y),R>=0)break}if(R>=0)F.dataIndex=R}let w=Q.methods.get("_getTotal");if(w)F.dataTotal=w();if(S)F.selectedIds=S;let b=Q.methods.get("_getFocusedId");if(b){let R=b();if(R!==void 0)F.focusedId=R}return F});let Y=(Z)=>{let{index:_,offsetInItem:K,selectedIds:U,focusedId:S}=Z,T=Q.getVirtualTotal(),O=Z.dataTotal??Z.total;if(T===0&&O&&O>0){Q.dataManager.setTotal(O);let C=Q.getVirtualTotal();Q.sizeCache.rebuild(C),Q.updateCompressionMode();let k=Q.getCachedCompression();if(!k.isCompressed)Q.updateContentSize(k.virtualSize)}else if(T===0)return;if(!Number.isFinite(_)||!Number.isFinite(K))return;let F=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==F){Q.sizeCache.rebuild(F),Q.updateCompressionMode();let C=Q.getCachedCompression();if(!C.isCompressed)Q.updateContentSize(C.virtualSize)}let L=Q.getCachedCompression(),w=Q.methods.get("_dataToLayoutIndex"),b=_;if(Z.dataIndex!==void 0&&Z.dataIndex>=0)b=w?w(Z.dataIndex):Z.dataIndex;else if(w)b=w(_);let R=Math.max(0,Math.min(b,F-1)),y=Q.sizeCache.getSize(R),h=Z.offsetRatio!==void 0?Z.offsetRatio*y:Math.min(K,y),p;if(L.isCompressed&&L.ratio!==1){let C=Q.methods.get("_getTotal")?.(),k=Z.dataTotal!==void 0&&C!==void 0&&Z.dataTotal===C;if(Z.scrollTop!==void 0&&(Z.total===F||k))p=Z.scrollTop;else{let P=y>0?h/y:0;p=(R+P)/F*L.virtualSize}}else p=Q.sizeCache.getOffset(R)+h;let I=Q.state.viewportState.containerSize,A=L.isCompressed?Q.state.viewportState.totalSize:L.virtualSize,d=Math.max(0,A-I);p=Math.max(0,Math.min(p,d));let i=p===Z.scrollTop;if(Z.dataIndex!==void 0&&Z.dataIndex>=0){let C=y>0?h/y:0;Q.methods.set("_restoreAnchor",{dataIndex:Z.dataIndex,fraction:C,skipAdjust:i}),Q.methods.set("_suppressSave",!0)}if(Q.scrollController.scrollTo(p),U&&U.length>0){let C=Q.methods.get("select");if(C)C(...U)}let o=Q.methods.get("loadVisibleRange"),g=()=>{if(S===void 0)return;let C=Q.methods.get("_focusById");if(C)C(S)};if(o){let k=0,P=p,M=()=>{k++;let H=Q.state.viewportState.containerSize,G=Q.scrollController.getScrollTop();if(H>0){if(Math.abs(G-P)>1)Q.scrollController.scrollTo(P);o().then(g)}else if(k<10)requestAnimationFrame(M)};requestAnimationFrame(M)}else{let C=Q.methods.get("reload");if(C)requestAnimationFrame(()=>{C().then(g)});else requestAnimationFrame(g)}};Q.methods.set("restoreScroll",Y);let X=!!j&&!!q,W=null;if(q){W=()=>{if(X)return;if(Q.methods.has("_suppressSave"))return;let K=Q.methods.get("getScrollSnapshot");if(!K)return;let U=K();try{sessionStorage.setItem(q,JSON.stringify(U))}catch{}},Q.methods.set("_saveSnapshot",W);let Z=0,_=()=>{if(Z)return;Z=requestAnimationFrame(()=>{Z=0,W()})};if(Q.idleHandlers.push(_),Q.emitter.on("selection:change",_),Q.emitter.on("focus:change",_),j&&j.total&&j.total>0){let K=Q.methods.get("_cancelAutoLoad");if(K)K();Q.dataManager.setTotal(j.total)}}if(j){let Z=!1;if(j.selectedIds&&j.selectedIds.length>0){let K=Q.methods.get("_seedSelection");if(K)K(j.selectedIds),Z=!0}let _=Z?(({selectedIds:K,...U})=>U)(j):j;queueMicrotask(()=>{if(Y(_),X=!1,W)W()})}}}};var jJ=(J,q=50,j=1/0,Q=!0)=>{let Y=J,X=[],W=0,Z=()=>{X=Y.map((L,w)=>({def:L,index:w,width:0,minWidth:sJ(L.minWidth??q,1),maxWidth:L.maxWidth??j,resizable:L.resizable??Q,offset:0}))},_=(L)=>{if(X.length===0){W=0;return}let w=0,b=0;for(let R=0;R<X.length;R++){let y=X[R],h=y.def;if(h.width!==void 0)y.width=i1(h.width,y.minWidth,y.maxWidth),w+=y.width;else b++}if(b>0){let y=Math.max(0,L-w)/b;for(let h=0;h<X.length;h++){let p=X[h];if(p.def.width===void 0)p.width=i1(y,p.minWidth,p.maxWidth)}}K()},K=()=>{let L=0;for(let w=0;w<X.length;w++){let b=X[w];b.offset=L,L+=b.width}W=L},U=(L,w)=>{if(L<0||L>=X.length)return 0;let b=X[L];if(!b.resizable)return b.width;let R=i1(w,b.minWidth,b.maxWidth);return b.width=R,K(),R},S=(L)=>{return X[L]},T=(L)=>{if(X.length===0)return;if(L<0)return X[0];if(L>=W)return X[X.length-1];let w=0,b=X.length-1;while(w<b){let R=w+b>>>1,y=X[R];if(L<y.offset)b=R-1;else if(L>=y.offset+y.width)w=R+1;else return y}return X[w]},O=(L)=>{if(L<0||L>=X.length)return 0;return X[L].offset},F=(L)=>{if(L<0||L>=X.length)return 0;return X[L].width},f=(L)=>{Y=L,Z()};return Z(),{get columns(){return X},get totalWidth(){return W},resolve:_,updateColumns:f,resizeColumn:U,getColumn:S,getColumnAtX:T,getColumnOffset:O,getColumnWidth:F}},i1=(J,q,j)=>Math.min(j,Math.max(q,J)),sJ=(J,q)=>Math.max(q,J);var YJ=(J,q,j,Q,Y,X)=>{let W=document.createElement("div");W.setAttribute("role","rowgroup");let Z=document.createElement("div");Z.className=`${j}-table-header`,Z.setAttribute("role","row"),Z.setAttribute("aria-rowindex","1"),Z.style.height=`${q}px`;let _=document.createElement("div");_.className=`${j}-table-header-scroll`,_.setAttribute("role","presentation"),Z.appendChild(_),W.appendChild(Z),J.insertBefore(W,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${q}px`);let K=[],U=[],S=[],T=!0,O=null,F="asc",f=null,L=!1,w=-1,b=0,R=0,y=(M,H)=>{let G=document.createElement("div");G.className=`${j}-table-header-cell`,G.setAttribute("role","columnheader"),G.setAttribute("aria-colindex",String(H+1)),G.dataset.columnKey=M.def.key;let m=M.def.align;if(m==="center")G.classList.add(`${j}-table-header-cell--center`);else if(m==="right")G.classList.add(`${j}-table-header-cell--right`);let e=document.createElement("div");e.className=`${j}-table-header-content`;let s=M.def.header?M.def.header(M.def):M.def.label;if(typeof s==="string")e.textContent=s;else e.appendChild(s);if(G.appendChild(e),M.def.sortable){let x=document.createElement("span");x.className=`${j}-table-header-sort`,x.setAttribute("aria-hidden","true"),G.appendChild(x),S.push(x),G.classList.add(`${j}-table-header-cell--sortable`)}else S.push(null);if(M.resizable){let x=document.createElement("div");x.className=`${j}-table-header-resize`,x.dataset.resizeIndex=String(H),G.appendChild(x),U.push(x)}return G},h=(M)=>{f=M,_.textContent="",K=[],U=[],S=[];let H=M.columns;for(let G=0;G<H.length;G++){let m=H[G],e=y(m,G);K.push(e),_.appendChild(e)}if(p(M),O)I(O,F)},p=(M)=>{f=M;let H=M.columns;_.style.width=`${M.totalWidth}px`;for(let G=0;G<K.length&&G<H.length;G++){let m=K[G],e=H[G];m.style.width=`${e.width}px`}},I=(M,H)=>{if(O=M,F=H,!f)return;let G=f.columns;for(let m=0;m<S.length&&m<G.length;m++){let e=S[m];if(!e)continue;if(G[m].def.key===M&&M!==null)e.textContent=H==="asc"?"▲":"▼",e.style.opacity="0.7",K[m].setAttribute("aria-sort",H==="asc"?"ascending":"descending");else e.textContent="",e.style.opacity="0",K[m].removeAttribute("aria-sort")}},A=(M)=>{_.style.transform=`translateX(${-M}px)`},d=(M)=>{let H=M.target;if(!H.dataset.resizeIndex)return;if(M.preventDefault(),M.stopPropagation(),w=parseInt(H.dataset.resizeIndex,10),!f)return;let G=f.getColumn(w);if(!G||!G.resizable)return;L=!0,b=M.clientX,R=G.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",H.classList.add(`${j}-table-header-resize--active`),H.setPointerCapture(M.pointerId),H.addEventListener("pointermove",i),H.addEventListener("pointerup",o),H.addEventListener("pointercancel",o)},i=(M)=>{if(!L||!f)return;let H=M.clientX-b;if(Math.abs(H)<1)return;let G=Math.max(0,R+H);Q(w,G)},o=(M)=>{if(!L)return;let H=M.target;H.removeEventListener("pointermove",i),H.removeEventListener("pointerup",o),H.removeEventListener("pointercancel",o);try{H.releasePointerCapture(M.pointerId)}catch{}H.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",L=!1,w=-1},g=(M)=>{let H=M.target;if(H.dataset.resizeIndex!==void 0)return;if(L)return;let G=H;while(G&&!G.dataset.columnKey)if(G=G.parentElement,G===Z||G===null)return;if(!G||!G.dataset.columnKey)return;let m=G.dataset.columnKey;if(!f)return;let e=f.columns,s=-1;for(let J0=0;J0<e.length;J0++)if(e[J0].def.key===m){s=J0;break}if(s===-1)return;let x=e[s];if(X)X({key:m,index:s,event:M});if(x.def.sortable&&Y){let J0;if(O===m)if(F==="asc")J0="desc";else J0=null;else J0="asc";Y({key:m,index:s,direction:J0})}};return Z.addEventListener("pointerdown",d),Z.addEventListener("click",g),{element:Z,update:p,updateSort:I,rebuild:h,show:()=>{if(T)return;T=!0,Z.style.display=""},hide:()=>{if(!T)return;T=!1,Z.style.display="none"},destroy:()=>{Z.removeEventListener("pointerdown",d),Z.removeEventListener("click",g),J.style.removeProperty("--vlist-table-header-height"),W.remove(),K=[],U=[],S=[],f=null,T=!1},syncScroll:A}};var aJ=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(q)=>{if(q.parentNode?.removeChild(q),J.length<200)q.className="",q.removeAttribute("data-id"),q.removeAttribute("data-index"),q.removeAttribute("aria-selected"),q.removeAttribute("aria-rowindex"),q.removeAttribute("role"),q.style.cssText="",q.textContent="",J.push(q)},clear:()=>{J.length=0}}},XJ=(J,q,j,Q,Y,X,W,Z,_)=>{let K=aJ(),U=new Map,S=-1,T=j,O=null,F=null,f=null,L=(V,D)=>{F=V,f=D},w=(V,D)=>{if(D)V.setAttribute("aria-selected","true");else V.removeAttribute("aria-selected")},b=(V,D,z,v)=>{V.setAttribute("role",D),V.setAttribute("data-id",String(z)),V.setAttribute("data-index",String(v))},R=(V)=>String(V).startsWith("__placeholder_"),y=`${Y}-item ${Y}-table-row`,h=`${Y}-item--selected`,p=`${Y}-item--focused`,I=`${Y}-table-cell`,A=`${Y}-table-cell--center`,d=`${Y}-table-cell--right`,i=`${Y}-item--odd`,o=`${Y}-item--placeholder`,g=`${Y}-item--replaced`,C=`${Y}-item ${Y}-table-row ${Y}-table-group-header`,k=`${Y}-table-group-header-content`,P=(V,D,z,v,u=!1)=>{if(z.def.cell){let t=z.def.cell(D,z.def,v);if(typeof t==="string")V.innerHTML=t;else V.replaceChildren(t)}else{let t=D[z.def.key],q0=t!=null?String(t):"";if(u&&q0)V.innerHTML=`<span>${q0}</span>`;else V.textContent=q0}},M=(V,D,z,v,u=!1)=>{let t=y;if(Z){if(O){let q0=O(D);if(q0>=0&&(q0&1)===1)t+=` ${i}`}else if((D&1)===1)t+=` ${i}`}if(u)t+=` ${o}`;if(z)t+=` ${h}`;if(v)t+=` ${p}`;V.className=t},H=(V,D,z)=>{if(z?.compression?.isCompressed)return Math.round(Q1(V,z.scrollPosition,D,z.totalItems,z.containerSize,z.compression,z.rangeStart));return D.getOffset(V)},G=(V,D)=>{let z=D.def.align;if(z==="center")V.classList.add(A),V.classList.remove(d);else if(z==="right")V.classList.add(d),V.classList.remove(A);else V.classList.remove(A,d)},m=(V,D)=>{let v=T.columns.length;if(D.length===v)return D;let u=[];for(let t=0;t<v;t++){let q0;if(t<D.length)q0=D[t];else q0=document.createElement("div"),q0.className=I,V.appendChild(q0);u.push(q0)}for(let t=v;t<D.length;t++)D[t].remove();return u},e=(V,D,z,v)=>{let u=K.acquire(),t=V,q0=z.getSize(D),c=H(D,z,v);u.style.cssText=`width:${T.totalWidth}px;height:${q0}px;transform:translateY(${c}px)`,u.className=C,b(u,"presentation",V.id,D),u.removeAttribute("aria-selected"),u.removeAttribute("aria-rowindex"),u.replaceChildren();let Q0=document.createElement("div");if(Q0.className=k,f){let X0=f(t.groupKey,t.groupIndex);if(typeof X0==="string")Q0.innerHTML=X0;else Q0.appendChild(X0)}return u.appendChild(Q0),{element:u,cells:[],index:D,isGroupHeader:!0,lastItemId:V.id,lastSelected:!1,lastFocused:!1,lastOffset:c,lastHeight:q0}},s=(V,D,z,v,u,t)=>{let q0=K.acquire(),c=u.getSize(D),Q0=H(D,u,t),X0=R(V.id);q0.style.cssText=`width:${T.totalWidth}px;height:${c}px;transform:translateY(${Q0}px)`,M(q0,D,z,v,X0),b(q0,"row",V.id,D),q0.id=`${X}-${D}`,q0.setAttribute("aria-rowindex",String(D+2)),w(q0,z);let K0=m(q0,[]),W0=T.columns;for(let M0=0;M0<K0.length&&M0<W0.length;M0++){let L0=K0[M0],R0=W0[M0];L0.style.cssText=`left:${R0.offset}px;width:${R0.width}px`,L0.setAttribute("role","gridcell"),L0.setAttribute("aria-colindex",String(M0+1)),G(L0,R0),P(L0,V,R0,D,X0)}return{element:q0,cells:K0,index:D,isGroupHeader:!1,lastItemId:V.id,lastSelected:z,lastFocused:v,lastOffset:Q0,lastHeight:c}},x=(V,D,z,v,u)=>{for(let[X0,K0]of U)if(X0<D.start||X0>D.end)K.release(K0.element),U.delete(X0);let t=!1,q0=W();if(q0!==S)S=q0,t=!0;let c=null,Q0=q();O=typeof Z==="string"&&_?_():null;for(let X0=D.start;X0<=D.end;X0++){let K0=X0-D.start,W0=V[K0];if(!W0)continue;let M0=z.has(W0.id),L0=X0===v,R0=F?F(W0):!1,B0=U.get(X0);if(B0){if(B0.isGroupHeader!==R0){K.release(B0.element),U.delete(X0);let D0=R0?e(W0,X0,Q0,u):s(W0,X0,M0,L0,Q0,u);if(U.set(X0,D0),!c)c=document.createDocumentFragment();c.appendChild(D0.element);continue}if(R0){if(B0.lastItemId!==W0.id){let T0=W0,k0=B0.element.firstElementChild;if(k0&&f){let _0=f(T0.groupKey,T0.groupIndex);if(typeof _0==="string")k0.innerHTML=_0;else k0.replaceChildren(_0)}B0.element.setAttribute("data-id",String(W0.id)),B0.lastItemId=W0.id}let F0=H(X0,Q0,u);if(B0.lastOffset!==F0)B0.lastOffset=F0,B0.element.style.transform=`translateY(${F0}px)`;let w0=Q0.getSize(X0);if(B0.lastHeight!==w0)B0.lastHeight=w0,B0.element.style.height=`${w0}px`}else{let D0=B0.lastItemId!==W0.id,F0=B0.lastSelected!==M0,w0=B0.lastFocused!==L0;if(D0){let _0=B0.lastItemId!=null&&R(B0.lastItemId),G0=R(W0.id);if(!G0&&m0(z,X0,W0.id))M0=!0;let b0=T.columns;for(let P0=0;P0<B0.cells.length&&P0<b0.length;P0++)P(B0.cells[P0],W0,b0[P0],X0,G0);if(M(B0.element,X0,M0,L0,G0),B0.element.setAttribute("data-id",String(W0.id)),w(B0.element,M0),_0&&!G0)B0.element.classList.add(g),setTimeout(()=>{B0.element.classList.remove(g)},300);B0.lastItemId=W0.id,B0.lastSelected=M0,B0.lastFocused=L0}else if(F0||w0)M(B0.element,X0,M0,L0,R(W0.id)),w(B0.element,M0),B0.lastSelected=M0,B0.lastFocused=L0;let T0=H(X0,Q0,u);if(B0.lastOffset!==T0)B0.lastOffset=T0,B0.element.style.transform=`translateY(${T0}px)`;let k0=Q0.getSize(X0);if(B0.lastHeight!==k0)B0.lastHeight=k0,B0.element.style.height=`${k0}px`;if(t)B0.element.setAttribute("aria-rowindex",String(X0+2))}}else{if(m0(z,X0,W0.id))M0=!0;let D0=R0?e(W0,X0,Q0,u):s(W0,X0,M0,L0,Q0,u);if(U.set(X0,D0),!c)c=document.createDocumentFragment();c.appendChild(D0.element)}}if(c)J.appendChild(c)},J0=(V)=>{let D=q();for(let[z,v]of U){let u=H(z,D,V);if(v.lastOffset!==u)v.lastOffset=u,v.element.style.transform=`translateY(${u}px)`}},n=(V,D,z,v)=>{let u=U.get(V);if(!u)return;if(u.isGroupHeader)return;let t=T.columns;for(let q0=0;q0<u.cells.length&&q0<t.length;q0++)P(u.cells[q0],D,t[q0],V);u.element.setAttribute("data-id",String(D.id)),u.lastItemId=D.id,M(u.element,V,z,v),w(u.element,z),u.lastSelected=z,u.lastFocused=v},B=(V,D,z)=>{let v=U.get(V);if(!v)return;if(v.isGroupHeader)return;let u=v.lastSelected!==D,t=v.lastFocused!==z;if(u||t)M(v.element,V,D,z),w(v.element,D),v.lastSelected=D,v.lastFocused=z},l=(V)=>{T=V;let D=V.columns;for(let[,z]of U)if(z.element.style.width=`${V.totalWidth}px`,z.cells.length>0)for(let v=0;v<z.cells.length&&v<D.length;v++){let u=z.cells[v],t=D[v];u.style.left=`${t.offset}px`,u.style.width=`${t.width}px`}},$=(V)=>{return U.get(V)?.element},E=()=>{for(let[,V]of U)K.release(V.element);U.clear(),S=-1};return{render:x,updatePositions:J0,updateItem:n,updateItemClasses:B,getElement:$,updateColumnLayout:l,setGroupHeaderFn:L,clear:E,destroy:()=>{E(),K.clear()}}};var oJ=new Set,t1=(J)=>{if(!J.columns||J.columns.length===0)throw Error("[vlist] withTable: columns must be a non-empty array");if(J.rowHeight===void 0&&J.estimatedRowHeight===void 0)throw Error("[vlist] withTable: either rowHeight or estimatedRowHeight is required");let q=null,j=null,Q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(Y){let{dom:X,emitter:W,config:Z}=Y,{classPrefix:_}=Z;if(Z.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(Z.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let K=J.resizable??!0,U=J.minColumnWidth??50,S=J.maxColumnWidth??1/0,T=J.columnBorders??!1,O=J.rowBorders??!0,F=J.rowHeight,f=Y.rawConfig.padding,L=!f?0:typeof f==="number"?f*2:f.length===2?f[1]*2:f[1]+f[3],w=J.headerHeight??(typeof F==="number"?F:40),b=J.sort?.key??null,R=J.sort?.direction??"asc";if(q=jJ(J.columns,U,S,K),typeof F==="function")Y.setSizeConfig(F);else if(typeof F==="number")Y.setSizeConfig(F);if(Y.rebuildSizeCache(),X.root.classList.add(`${_}--table`),O)X.root.classList.add(`${_}--table-row-borders`);if(T)X.root.classList.add(`${_}--table-col-borders`);X.root.setAttribute("role","grid"),X.root.setAttribute("aria-colcount",String(J.columns.length));let y=-1,h=X.items.getAttribute("aria-label");if(h)X.root.setAttribute("aria-label",h),X.items.removeAttribute("aria-label");X.items.setAttribute("role","rowgroup"),X.viewport.setAttribute("role","none"),X.content.setAttribute("role","none"),X.viewport.removeAttribute("tabindex");let p=Y.getContainerWidth()-L;q.resolve(p);let I=($,E)=>{if(!q)return;let N=q.getColumn($);if(!N)return;let V=N.width,D=q.resizeColumn($,E);if(j)j.update(q);if(Q)Q.updateColumnLayout(q);i(),W.emit("column:resize",{key:N.def.key,index:$,previousWidth:V,width:D})},A=($)=>{if($.direction===null)b=null,R="asc";else b=$.key,R=$.direction;if(j)j.updateSort(b,R);W.emit("column:sort",$)},d=($)=>{W.emit("column:click",$)};if(j=YJ(X.root,w,_,I,A,d),j.rebuild(q),b)j.updateSort(b,R);let i=()=>{if(!q)return;let $=q.totalWidth;X.content.style.minWidth=`${$}px`,X.items.style.minWidth=`${$}px`};i(),Q=XJ(X.items,()=>Y.sizeCache,q,J.columns,_,Z.ariaIdPrefix,()=>Y.dataManager.getTotal(),Y.rawConfig.item?.striped,()=>Y.getStripeIndexFn());let o=null,g=null,C=!1,k=()=>{if(C)return;C=!0,o=Y.methods.get("_getSelectedIds")??null,g=Y.methods.get("_getFocusedIndex")??null},P=-1,M=-1,H=-1,G=!0,m=Z.overscan,e={start:0,end:0},s={start:0,end:0},x=()=>{if(Y.state.isDestroyed)return;let $=Y.scrollController.getScrollTop(),E=Y.state.viewportState.containerSize,N=Y.getVirtualTotal(),V=Y.state.viewportState.isCompressed;if(!G&&$===P&&E===M&&N===H)return;P=$,M=E,H=N,G=!1;let D=N+1;if(D!==y)y=D,X.root.setAttribute("aria-rowcount",String(D));Y.getVisibleRange($,E,N,e),s.start=Math.max(0,e.start-m),s.end=Math.min(N-1,e.end+m);let z=Y.state.viewportState;z.scrollPosition=$,z.visibleRange.start=e.start,z.visibleRange.end=e.end,z.renderRange.start=s.start,z.renderRange.end=s.end;let v=Y.state.lastRenderRange,u=v.start!==s.start||v.end!==s.end;if(!u&&V){Q.updatePositions(Y.getCompressionContext());return}if(!u)return;let t=V?Y.getCompressionContext():void 0,q0=Y.dataManager.getItemsInRange(s.start,s.end);k();let c=o?o():oJ,Q0=g?g():-1;Q.render(q0,s,c,Q0,t),v.start=s.start,v.end=s.end,W.emit("range:change",{range:{start:s.start,end:s.end}})},J0=()=>{if(Y.state.isDestroyed)return;Y.state.lastRenderRange.start=-1,Y.state.lastRenderRange.end=-1,G=!0,x()};Y.setRenderFns(x,J0),Y.setUpdateItemClassesFn(($,E,N)=>{Q?.updateItemClasses($,E,N)});let n=j,B=-1,l=()=>{let $=X.viewport.scrollLeft;if($!==B){if(B=$,n.syncScroll)n.syncScroll($)}};Y.afterScroll.push(l),X.viewport.addEventListener("scroll",l,{passive:!0}),Y.resizeHandlers.push(($,E)=>{if(!q)return;if(q.resolve($-L),j)j.update(q);if(Q)Q.updateColumnLayout(q);i()}),Y.methods.set("updateColumns",($)=>{if(!q||!j)return;if(q.updateColumns($),q.resolve(Y.getContainerWidth()-L),j.rebuild(q),b)j.updateSort(b,R);if(i(),Q)Q.updateColumnLayout(q),Q.clear();Y.forceRender()}),Y.methods.set("resizeColumn",($,E)=>{if(!q)return;let N;if(typeof $==="string"){let V=q.columns;N=-1;for(let D=0;D<V.length;D++)if(V[D].def.key===$){N=D;break}if(N===-1)return}else N=$;I(N,E)}),Y.methods.set("getColumnWidths",()=>{if(!q)return{};let $={},E=q.columns;for(let N=0;N<E.length;N++)$[E[N].def.key]=E[N].width;return $}),Y.methods.set("setSort",($,E)=>{if(b=$,R=E??"asc",j)j.updateSort(b,R)}),Y.methods.set("getSort",()=>{return{key:b,direction:R}}),Y.methods.set("_getTableLayout",()=>q),Y.methods.set("_updateRenderedItem",($,E,N,V)=>{Q?.updateItem($,E,N,V)}),Y.methods.set("_replaceTableRenderer",($)=>{Q=$}),Y.methods.set("_updateTableForGroups",($,E)=>{if(Q)Q.setGroupHeaderFn($,E)}),Y.methods.set("_getTableHeaderHeight",()=>w),Y.keydownHandlers.push(($)=>{if($.key!=="ArrowLeft"&&$.key!=="ArrowRight")return;if(!q)return;let E=q.columns;if(E.length===0)return;let N=X.viewport.clientWidth;if(q.totalWidth<=N)return;let V=X.viewport.scrollLeft;if($.key==="ArrowRight"){for(let D=0;D<E.length;D++)if(E[D].offset>V+1){X.viewport.scrollLeft=E[D].offset,$.preventDefault();return}}else{for(let D=E.length-1;D>=0;D--)if(E[D].offset<V-1){X.viewport.scrollLeft=E[D].offset,$.preventDefault();return}if(V>0)X.viewport.scrollLeft=0,$.preventDefault()}}),Y.contentSizeHandlers.push(()=>{i()}),Y.destroyHandlers.push(()=>{if(X.viewport.removeEventListener("scroll",l),j)j.destroy(),j=null;if(Q)Q.destroy(),Q=null;X.content.style.minWidth="",X.items.style.minWidth="",X.root.classList.remove(`${_}--table`),X.root.removeAttribute("role"),X.root.removeAttribute("aria-colcount"),X.viewport.removeAttribute("role"),X.viewport.setAttribute("tabindex","-1"),X.content.removeAttribute("role");let $=X.root.getAttribute("aria-label");if($)X.items.setAttribute("aria-label",$),X.root.removeAttribute("aria-label");X.root.removeAttribute("aria-rowcount"),X.items.setAttribute("role","listbox")})},destroy(){if(j)j.destroy(),j=null;if(Q)Q.destroy(),Q=null}}};var e1=(J)=>{let q=J?.handle??null,j=J?.ghostClass??"vlist-sort-ghost",Q=J?.shiftDuration??150,Y=J?.edgeScrollZone??40,X=J?.edgeScrollSpeed??20,W=J?.dragThreshold??5,Z=J?.ghostContainer??null;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(_){let{dom:K,emitter:U,config:S}=_,{classPrefix:T}=S,O=S.horizontal,F=O?"translateX":"translateY",f=Q>0?`transform ${Q}ms ease`:"none",L=!1,w=-1,b=-1,R=0,y=0,h=0,p=0,I=!1,A=null,d=0,i=null,o=0,g=0,C=0,k=null;_.methods.set("isSorting",()=>L||u);let P=(a)=>{return a.closest("[data-index]")},M=(a)=>{let U0=a.dataset.index;return U0===void 0?-1:+U0},H=(a)=>{let U0=a.getBoundingClientRect(),Z0=a.cloneNode(!0);return Z0.className=`${T}-item ${j}`,Z0.removeAttribute("data-index"),Z0.style.cssText=["position:fixed","pointer-events:none","z-index:10000",`width:${U0.width}px`,`height:${U0.height}px`,`left:${U0.left}px`,`top:${U0.top}px`,"transition:none","will-change:transform"].join(";"),(Z||document.body).appendChild(Z0),Z0},G=()=>{if(!A)return;let a=h-g,U0=p-C;A.style.left=`${a}px`,A.style.top=`${U0}px`},m=()=>{let a=_.dataManager.getTotal();if(a===0)return 0;let U0=K.viewport.getBoundingClientRect(),Z0=_.scrollController.getScrollTop(),N0=O?h-g-U0.left+K.viewport.scrollLeft+Z0:p-C-U0.top+Z0,V0=N0+o,O0=_.sizeCache.getOffset(w)+_.sizeCache.getSize(w);if(V0>O0){let A0=_.sizeCache.indexAtOffset(V0),h0=_.sizeCache.getOffset(A0)+_.sizeCache.getSize(A0)/2,f0=V0>h0?A0:A0-1;return Math.min(Math.max(f0,w),a-1)}let H0=_.sizeCache.getOffset(w);if(N0<H0){let A0=_.sizeCache.indexAtOffset(N0),h0=_.sizeCache.getOffset(A0)+_.sizeCache.getSize(A0)/2,f0=N0<h0?A0:A0+1;return Math.max(Math.min(f0,w),0)}return w},e=()=>{let a=K.items.children,U0=o;for(let Z0=0;Z0<a.length;Z0++){let N0=a[Z0],V0=M(N0);if(V0<0||V0===w)continue;let O0=0;if(b>w){if(V0>w&&V0<=b)O0=-U0}else if(b<w){if(V0>=b&&V0<w)O0=U0}let H0=_.sizeCache.getOffset(V0),A0=Math.round(H0+O0);N0.style.transition=f,N0.style.transform=`${F}(${A0}px)`}},s=()=>{let a=K.items.children;for(let U0=0;U0<a.length;U0++){let Z0=a[U0],N0=M(Z0);if(N0>=0)Z0.style.transform=`${F}(${Math.round(_.sizeCache.getOffset(N0))}px)`;Z0.style.transition=""}},x=()=>{let a=m();if(a===b)return;b=a,e(),U.emit("sort:move",{fromIndex:w,currentIndex:b})},J0=!1,n=()=>{let a=K.viewport.getBoundingClientRect();if(O)return h<a.left||h>a.right;return p<a.top||p>a.bottom},B=()=>{let a=()=>{if(!L)return;let U0=K.viewport.getBoundingClientRect(),Z0=0,N0=3;if(O){let O0=h-U0.left,H0=U0.right-h;if(O0<Y){let A0=Math.min(N0,1-O0/Y);Z0=-X*A0*A0}else if(H0<Y){let A0=Math.min(N0,1-H0/Y);Z0=X*A0*A0}}else{let O0=p-U0.top,H0=U0.bottom-p;if(O0<Y){let A0=Math.min(N0,1-O0/Y);Z0=-X*A0*A0}else if(H0<Y){let A0=Math.min(N0,1-H0/Y);Z0=X*A0*A0}}let V0=n();if(Z0!==0){let O0=_.scrollController.getScrollTop(),H0=_.sizeCache.getTotalSize()-(O?K.viewport.clientWidth:K.viewport.clientHeight);if(Z0<0&&O0<=0||Z0>0&&O0>=H0)J0=V0;else J0=!0,_.scrollController.scrollTo(O0+Z0)}else J0=V0;d=requestAnimationFrame(a)};d=requestAnimationFrame(a)},l=()=>{if(d)cancelAnimationFrame(d),d=0},$=(a=!1)=>{if(L=!1,I=!1,A&&A.parentNode)A.remove();A=null,i=null;let U0=`${T}-item--drag-source`,Z0=K.items.children;for(let V0=0;V0<Z0.length;V0++){let O0=Z0[V0];O0.classList.remove(U0);let H0=M(O0);if(H0>=0)O0.style.transform=`${F}(${Math.round(_.sizeCache.getOffset(H0))}px)`;O0.style.transition=""}l(),K.root.classList.remove(`${T}--sorting`),document.body.style.cursor="";let N0=window.getSelection();if(N0)N0.removeAllRanges();if(document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",v),!a)_.forceRender()},E=(a)=>{if(_.state.isDestroyed)return;if(L)return;if(u)F0();if(a.button!==0)return;let U0=a.target;if(q){if(!U0.closest(q))return}let Z0=P(U0);if(!Z0)return;let N0=M(Z0);if(N0<0)return;R=a.clientX,y=a.clientY,h=a.clientX,p=a.clientY,w=N0,I=!1,i=Z0;let V0=Z0.getBoundingClientRect();g=a.clientX-V0.left,C=a.clientY-V0.top,document.addEventListener("pointermove",N),document.addEventListener("pointerup",D),document.addEventListener("pointercancel",v)},N=(a)=>{if(h=a.clientX,p=a.clientY,!I){let U0=h-R,Z0=p-y;if(Math.sqrt(U0*U0+Z0*Z0)<W)return;if(I=!0,L=!0,b=w,K.root.classList.add(`${T}--sorting`),document.body.style.cursor="grabbing",o=_.sizeCache.getSize(w),i)A=H(i),i.classList.add(`${T}-item--drag-source`);let V0=X0();if(V0>=0){let O0=_.dataManager.getItem(V0);k=O0?O0.id:null}else k=null;U.emit("sort:start",{index:w}),B()}if(L){if(a.preventDefault(),G(),!J0)x();else if(n()){if(b!==w)b=w,s()}}},V=(a,U0)=>{let Z0=a!==U0&&a>=0&&U0>=0,N0=()=>{if(L=!1,Z0){if(K.root.classList.add(`${T}--settling`),U.emit("sort:end",{fromIndex:a,toIndex:U0}),k!==null)K0(k);$(!0),requestAnimationFrame(()=>{K.root.classList.remove(`${T}--settling`)})}else K.root.classList.add(`${T}--settling`),U.emit("sort:cancel",{originalItems:_.getAllLoadedItems()}),$(!1),requestAnimationFrame(()=>{K.root.classList.remove(`${T}--settling`)})};if(!A){N0();return}let V0=K.viewport.getBoundingClientRect(),O0=_.scrollController.getScrollTop(),H0=_.sizeCache.getOffset(U0),A0=Q>0?Q:150;if(A.style.transition=`left ${A0}ms ease, top ${A0}ms ease`,O)A.style.left=`${V0.left-K.viewport.scrollLeft+H0-O0}px`,A.style.top=`${V0.top}px`;else A.style.left=`${V0.left}px`,A.style.top=`${V0.top+H0-O0}px`;let h0=!1,f0=()=>{if(h0)return;h0=!0,A?.removeEventListener("transitionend",f0),N0()};A.addEventListener("transitionend",f0),setTimeout(f0,A0+50)},D=(a)=>{if(!I){document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",v),i=null;return}a.preventDefault(),document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",v),l(),V(w,b)},z=()=>{if(!I)return;document.removeEventListener("pointermove",N),document.removeEventListener("pointerup",D),document.removeEventListener("pointercancel",v),l(),s(),V(w,w)},v=()=>{z()};K.items.addEventListener("pointerdown",E);let u=!1,t="",q0=-1,c=-1,Q0=[],X0=()=>{let a=_.methods.get("_getFocusedIndex");return a?a():-1},K0=(a)=>{let U0=_.methods.get("_focusById");if(U0)U0(a)},W0=(a)=>{let U0=O?K.viewport.clientWidth:K.viewport.clientHeight,Z0=_.scrollController.getScrollTop(),N0=X1(a,_.sizeCache,Z0,U0);if(N0!==Z0)_.scrollController.scrollTo(_.adjustScrollPosition(N0))},M0=(a)=>{K.liveRegion.textContent="",K.liveRegion.offsetHeight,K.liveRegion.textContent=a},L0=(a)=>{let U0=_.dataManager.getItem(a);if(!U0)return"";return K.items.querySelector(`[data-index="${a}"]`)?.textContent?.trim()||String(U0.id)},R0=()=>String(_.dataManager.getTotal()),B0=(a)=>{let U0=_.dataManager.getItem(a);if(!U0)return;u=!0,t=U0.id,q0=a,c=a;let Z0=_.dataManager.getTotal();Q0=[];for(let N0=0;N0<Z0;N0++)Q0.push(_.dataManager.getItem(N0));K.root.classList.add(`${T}--sorting`),U.emit("sort:start",{index:a}),_0(),M0(`Grabbed ${L0(a)}. Current position ${a+1} of ${R0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},D0=()=>{if(!u)return;u=!1;let a=c,U0=L0(a),Z0=K.items.children;for(let N0=0;N0<Z0.length;N0++)Z0[N0].style.transition="none";K.root.classList.remove(`${T}--sorting`),k0(),K0(t),_.forceRender(),M0(`${U0} dropped. Final position ${a+1} of ${R0()}.`),Q0=[],requestAnimationFrame(()=>{let N0=K.items.children;for(let V0=0;V0<N0.length;V0++)N0[V0].style.transition=""})},F0=()=>{if(!u)return;u=!1;let a=q0,U0=K.items.children;for(let Z0=0;Z0<U0.length;Z0++)U0[Z0].style.transition="none";if(K.root.classList.remove(`${T}--sorting`),k0(),c!==a)U.emit("sort:cancel",{originalItems:Q0});K0(t),_.forceRender(),W0(a),M0(`Reorder cancelled. Returned to position ${a+1} of ${R0()}.`),Q0=[],requestAnimationFrame(()=>{let Z0=K.items.children;for(let N0=0;N0<Z0.length;N0++)Z0[N0].style.transition=""})},w0=(a)=>{if(!u)return;let U0=_.dataManager.getTotal(),Z0=c+a;if(Z0<0||Z0>=U0)return;let N0=c,V0=Z0,O0=K.items.children;for(let H0=0;H0<O0.length;H0++)O0[H0].style.transition="none";U.emit("sort:end",{fromIndex:N0,toIndex:V0}),c=V0,K0(t),_.forceRender(),W0(V0),_0(),M0(`${L0(V0)} moved. New position ${V0+1} of ${R0()}.`),requestAnimationFrame(()=>{let H0=K.items.children;for(let A0=0;A0<H0.length;A0++)H0[A0].style.transition=""})},T0=`${T}-item--kb-sorting`,k0=()=>{let a=K.items.querySelectorAll(`.${T0}`);for(let U0=0;U0<a.length;U0++)a[U0].classList.remove(T0)},_0=()=>{k0();let a=K.items.querySelector(`[data-id="${t}"]`);if(a)a.classList.add(T0)};_.afterRenderBatch.push(()=>{if(u)_0()});let G0=(a)=>{if(_.state.isDestroyed)return;if(L){if(a.key==="Escape")a.preventDefault(),a.stopImmediatePropagation(),z();return}if(u)switch(a.key){case" ":case"Enter":a.preventDefault(),a.stopImmediatePropagation(),D0();return;case"Escape":a.preventDefault(),a.stopImmediatePropagation(),F0();return;case"ArrowUp":case"ArrowLeft":a.preventDefault(),a.stopImmediatePropagation(),w0(-1);return;case"ArrowDown":case"ArrowRight":a.preventDefault(),a.stopImmediatePropagation(),w0(1);return;default:if(!a.key.startsWith("F")&&a.key!=="Tab")a.preventDefault(),a.stopImmediatePropagation();return}if(a.key===" "&&!a.shiftKey&&!a.ctrlKey&&!a.metaKey){let U0=X0();if(U0>=0)a.preventDefault(),a.stopImmediatePropagation(),B0(U0)}};K.root.addEventListener("keydown",G0);let b0=`${T}-sort-instructions`,P0=document.createElement("div");P0.id=b0,P0.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",P0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",K.root.appendChild(P0),_.afterRenderBatch.push((a)=>{for(let U0=0;U0<a.length;U0++){let Z0=a[U0].element;Z0.setAttribute("aria-roledescription","sortable item"),Z0.setAttribute("aria-describedby",b0)}}),_.afterRenderBatch.push((a)=>{if(!L)return;for(let U0=0;U0<a.length;U0++){let{index:Z0,element:N0}=a[U0];if(Z0===w)N0.classList.add(`${T}-item--drag-source`),i=N0;else{N0.classList.remove(`${T}-item--drag-source`);let V0=0;if(b>w){if(Z0>w&&Z0<=b)V0=-o}else if(b<w){if(Z0>=b&&Z0<w)V0=o}let O0=Math.round(_.sizeCache.getOffset(Z0)+V0);N0.style.transform=`${F}(${O0}px)`}}}),_.destroyHandlers.push(()=>{if(u)F0();$(),K.items.removeEventListener("pointerdown",E),K.root.removeEventListener("keydown",G0),P0.remove()})}}};var UJ=(J,q)=>{let j=new Map,Q=(X)=>{let W=j.get(X);return W!==void 0?W:J},Y=c0(Q,q);return{getOffset(X){return Y.getOffset(X)},getSize(X){return Q(X)},indexAtOffset(X){return Y.indexAtOffset(X)},getTotalSize(){return Y.getTotalSize()},getTotal(){return Y.getTotal()},rebuild(X){if(X<Y.getTotal()){for(let W of j.keys())if(W>=X)j.delete(W)}Y=c0(Q,X)},isVariable(){return!0},setMeasuredSize(X,W){j.set(X,W)},isMeasured(X){return j.has(X)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var J2=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(q){let j=q.config.horizontal,Y=q.rawConfig.item,X=j?Y.estimatedWidth:Y.estimatedHeight;if(X==null||X<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let W=Y.gap??0,Z=q.getVirtualTotal(),_=S0(q.rawConfig.padding),K=s0(_,j),U=UJ(X+W,Z),S=q.methods.get("_setSizeCache"),T=q.methods.get("_setConstrainSize");if(!S||!T)throw Error("[vlist/withAutoSize] Incompatible builder version");S(U),T((h)=>U.isMeasured(h));let O=new WeakMap,F=0,f=!1,L=2,w=(h)=>{let p=q.scrollController.getScrollTop(),I=q.state.viewportState.containerSize;if(I<=0)return!1;let A=Math.max(0,h+K-I);return p>=A-L},b=()=>{let h=U.getTotalSize(),p=q.state.viewportState.containerSize;if(p<=0)return;let I=Math.max(0,h+K-p),A=q.scrollController.getScrollTop();if(I>A)q.scrollController.scrollTo(I)},R=()=>{let h=U.getTotalSize();q.updateContentSize(h)},y=()=>{if(f){let h=q.dom.viewport,p=h.scrollHeight,I=p-h.clientHeight,A=q.scrollController.getScrollTop(),d=I>0&&A>=I-L,i=q.getVirtualTotal(),o=q.state.viewportState.renderRange.end,g=i>0&&o>=i-1,C=U.getTotalSize()+K,k=Math.abs(C-p),P=g&&I>0&&A>=I-k-L,M=d||P;if(R(),f=!1,M)h.scrollHeight,b(),q.forceRender()}};J=new ResizeObserver((h)=>{if(q.state.isDestroyed)return;let p=!1,I=q.state.viewportState.visibleRange.start;for(let H of h){let G=O.get(H.target);if(G===void 0)continue;let m=j?H.borderBoxSize[0].inlineSize:H.borderBoxSize[0].blockSize;if(!U.isMeasured(G)){let e=m+W,s=U.getSize(G);if(U.setMeasuredSize(G,e),p=!0,G<I&&e!==s)F+=e-s;J.unobserve(H.target);let x=H.target;if(j)x.style.width=`${m}px`;else x.style.height=`${m}px`}}if(!p)return;let A=U.getTotalSize();if(U.rebuild(q.getVirtualTotal()),F!==0){let H=q.scrollController.getScrollTop();q.scrollController.scrollTo(H+F),F=0}let d=w(A),i=q.getVirtualTotal(),o=q.state.viewportState.renderRange.end,g=i>0&&o>=i-1,C=q.dom.viewport,k=C.scrollHeight-C.clientHeight,P=q.scrollController.getScrollTop(),M=k>0&&P>=k-L;if(d||g||!q.scrollController.isScrolling()){if(R(),f=!1,d||g&&M)C.scrollHeight,b()}else f=!0;q.forceRender()}),q.afterRenderBatch.push((h)=>{for(let{index:p,element:I}of h)if(!U.isMeasured(p))O.set(I,p),J.observe(I)}),q.idleHandlers.push(y),q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var nJ=50,iJ=0.1;function ZJ(J){let q=0,j=0,Q=0;function Y(){return Q>0?j/Q:0}function X(_){if(q=_,_>iJ&&_<nJ)j+=_,Q++}function W(){let _=J.getTotal();if(_===0)return 0;let K=J.getItemSize();if(K<=0)return 0;let U=J.getContainerSize();if(U<=0)return 0;let S=J.getScrollPosition(),T=typeof J.getColumns==="function"?J.getColumns():1,F=Math.ceil(_/T)*K,L=Math.min(F,i0)-U,w=F-U,b=L>0?w/L:1,R=S*b,y=Math.ceil((R+U)/K);return Math.min(y*T,_)}function Z(){let _=J.getTotal(),K=W();return{progress:_>0?Math.min(100,Math.max(0,K/_*100)):0,velocity:q,velocityAvg:Y(),itemCount:K,total:_}}return{getState:Z,onVelocity:X}}export{t1 as withTable,e1 as withSortable,n1 as withSnapshots,o1 as withSelection,p1 as withScrollbar,u1 as withScale,m1 as withPage,a1 as withMasonry,c1 as withGroups,s1 as withGrid,J2 as withAutoSize,g1 as withAsync,I1 as vlist,ZJ as createStats};
1
+ var Z1=2,K1=(J=0)=>({velocity:0,sampleCount:0}),N1=(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}},QJ=(J,q)=>{let j=q,Q=new Float64Array(0),X=(B)=>{j=B,Q=new Float64Array(B+1),Q[0]=0;for(let _=0;_<B;_++)Q[_+1]=Q[_]+J(_)};X(q);let Y=(B)=>{if(j===0)return 0;if(B<=0)return 0;if(B>=Q[j])return j-1;let _=0,U=j-1;while(_<U){let Z=_+U+1>>>1;if(Q[Z]<=B)_=Z;else U=Z-1}return _};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=j)return Q[j];return Q[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>Y(B),getTotalSize:()=>Q[j]??0,getTotal:()=>j,rebuild:(B)=>X(B),isVariable:()=>!0}},n0=(J,q)=>{if(typeof J==="number")return JJ(J,q);return QJ(J,q)};var W1=()=>{let J={},q=(Y,B)=>{if(!J[Y])J[Y]=new Set;return J[Y].add(B),()=>j(Y,B)},j=(Y,B)=>{J[Y]?.delete(B)};return{on:q,off:j,emit:(Y,B)=>{J[Y]?.forEach((_)=>{try{_(B)}catch(U){console.error(`[vlist] Error in event handler for "${String(Y)}":`,U)}})},clear:(Y)=>{if(Y)delete J[Y];else for(let B in J)delete J[B]}}};var B1=(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},_1=(J,q,j,Q,X)=>{let Y=Q,B=K2(q);if(Y)B.classList.add(`${q}--horizontal`);if(X!==!1)B.setAttribute("tabindex","0");let _=K2(`${q}-viewport`,Y?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");_.setAttribute("tabindex","-1");let U=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","listbox"),j)Z.setAttribute("aria-label",j);if(Y)Z.setAttribute("aria-orientation","horizontal");let D=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 D.setAttribute("aria-live","polite"),D.setAttribute("aria-atomic","true"),D.setAttribute("role","status"),U.appendChild(Z),_.appendChild(U),B.appendChild(D),B.appendChild(_),J.appendChild(B),{root:B,viewport:_,content:U,items:Z,liveRegion:D}};var V1=(J=100)=>{let q=[];return{acquire:()=>{let j=q.pop();if(j)return j;let Q=document.createElement("div");return Q.setAttribute("role","option"),Q},release:(j)=>{if(q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),q.push(j)},clear:()=>{q.length=0}}};var D1=(J,q,j,Q,X)=>{if(Q===0||q===0){X.start=0,X.end=-1;return}let Y=j.indexAtOffset(J),B=j.indexAtOffset(J+q);if(B<Q-1)B++;X.start=Math.max(0,Y),X.end=Math.min(Q-1,Math.max(0,B))},G1=(J,q,j,Q)=>{Q.start=Math.max(0,J.start-q),Q.end=Math.min(j-1,J.end+q)},M1=(J,q,j,Q,X,Y=0)=>{if(Q===0)return 0;let B=Math.max(0,Math.min(J,Q-1)),_=q.getOffset(B),U=q.getSize(B),Z=q.getTotalSize(),D=Math.max(0,Z+Y-j),G;switch(X){case"center":G=_-(j-U)/2;break;case"end":G=Y>0&&_+U>=Z?D:_-j+U;break;default:G=_}return Math.max(0,Math.min(G,D))};var A2={top:0,right:0,bottom:0,left:0},p0=(J)=>{if(J==null)return A2;if(typeof J==="number")return J===0?A2:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[Y,B]=J;return Y===0&&B===0?A2:{top:Y,right:B,bottom:Y,left:B}}let[q,j,Q,X]=J;return q===0&&j===0&&Q===0&&X===0?A2:{top:q,right:j,bottom:Q,left:X}},e0=(J,q)=>q?J.left+J.right:J.top+J.bottom,E2=(J,q)=>q?J.top+J.bottom:J.left+J.right;var J2=(J,q,j)=>{let Q=Array.from(q).sort((B,_)=>B-_);if(Q.length<=1)return;let X=[];for(let B=0;B<Q.length;B++){let _=j(Q[B]);if(_)X.push(_)}if(X.length<=1)return;let Y=J.firstChild;for(let B=0;B<X.length;B++){let _=X[B];if(_===Y)Y=Y.nextSibling;else J.insertBefore(_,Y)}};var O1=(J,q)=>{let{dom:j,emitter:Q,resolvedConfig:X,rawConfig:Y,rendered:B,pool:_,sharedState:U,isHorizontal:Z,classPrefix:D,contentSizeHandlers:G,idleHandlers:y,afterScroll:M,clickHandlers:O,contextMenuHandlers:P,keydownHandlers:F,resizeHandlers:R,destroyHandlers:A,methods:h,onScrollFrame:w,resizeObserver:v,renderRange:c,afterRenderBatch:C}=q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return X},get rawConfig(){return Y},adjustScrollPosition(K){if(J.mp===0)return K;let I=Z?J.cw:J.ch,d=J.hc.getTotalSize(),l=Math.max(0,d-I),q0=Math.max(0,d+J.mp-I);if(K>=l)return q0;return Math.min(K,q0)},get renderer(){return{render:(K,I,d,l,q0)=>{J.ss=d,J.fi=l,J.ffn()},updateItemClasses:(K,I,d)=>{J.uic(K,I,d)},updatePositions:()=>{},updateItem:()=>{},getElement:(K)=>B.get(K)??null,clear:()=>{},destroy:()=>{}}},set renderer(K){},get dataManager(){return J.dm},set dataManager(K){J.dm=K},get scrollController(){return J.sc},set scrollController(K){J.sc=K},state:U,getContainerWidth(){return J.cw},afterScroll:M,idleHandlers:y,afterRenderBatch:C,clickHandlers:O,contextMenuHandlers:P,keydownHandlers:F,resizeHandlers:R,contentSizeHandlers:G,destroyHandlers:A,methods:h,replaceTemplate(K){J.at=K},replaceRenderer(K){},replaceDataManager(K){J.dm=K},replaceScrollController(K){J.sc=K},getItemsForRange(K){let{dm:I,it:d}=J,l=[];for(let q0=K.start;q0<=K.end;q0++){let i=I?I.getItem(q0):d[q0];if(i)l.push(i)}return l},getAllLoadedItems(){let K=J.dm;if(K){let I=K.getTotal(),d=[];for(let l=0;l<I;l++){let q0=K.getItem(l);if(q0)d.push(q0)}return d}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let K=J.hc;return{isCompressed:!1,actualSize:K.getTotalSize(),virtualSize:K.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:c.start,compression:U.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,K]of B)K.remove(),_.release(K);B.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(K,I){J.rfn=K,J.ffn=I},setVirtualTotalFn(K){J.vtf=K},rebuildSizeCache(K){J.hc.rebuild(K??J.vtf())},setSizeConfig(K){if(J.hc=n0(K,J.vtf()),J.gp>0){let I=J.hc.getTotalSize,d=J.gp;J.hc.getTotalSize=()=>{let l=I();return l>0?l-d:0}}},updateContentSize(K){let I=`${K+J.mp}px`;if(Z)j.content.style.width=I;else j.content.style.height=I},updateCompressionMode(){for(let K=0;K<G.length;K++)G[K]()},setVisibleRangeFn(K){J.gvr=K},getVisibleRange(K,I,d,l){J.gvr(K,I,J.hc,d,l)},setScrollToPosFn(K){J.gsp=K},getScrollToPos(K,I,d,l){return J.gsp(K,J.hc,I,d,l)},setPositionElementFn(K){J.pef=K},setScrollFns(K,I){J.sgt=K,J.sst=(d)=>{I(d),w()}},triggerScrollFrame(){w()},setScrollTarget(K){J.st.removeEventListener("scroll",w),J.st=K,J.st.addEventListener("scroll",w,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(K){J.gcw=K.width,J.gch=K.height,J.cw=K.width(),J.ch=K.height(),U.viewportState.containerSize=Z?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,v.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(K){J.sif=K},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(K){J.i2s=K},setUpdateItemClassesFn(K){J.uic=K}}},A1=(J,q,j)=>{let{rendered:Q,itemState:X,applyTemplate:Y,updateContentSize:B}=q,_=()=>{J.hc.rebuild(J.vtf()),B(),j.updateCompressionMode(),J.ffn()},U=()=>J.it.length;return{getState:()=>({total:U(),cached:U(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:U,getCached:U,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(Z)=>J.it[Z],isItemLoaded:(Z)=>Z>=0&&Z<U()&&J.it[Z]!==void 0,getItemsInRange:(Z,D)=>{let G=[];for(let y=Math.max(0,Z),M=Math.min(D,U()-1);y<=M;y++)G.push(J.it[y]);return G},setTotal:()=>{},setItems:(Z,D=0,G)=>{if(D===0&&(G!==void 0||U()===0))J.it=Z;else{let y=D+Z.length;if(U()<y)J.it.length=y;for(let M=0;M<Z.length;M++)J.it[D+M]=Z[M]}if(J.ii)_()},updateItem:(Z,D)=>{let G=J.it;if(Z<0||Z>=G.length)return!1;let y=G[Z];if(!y)return!1;G[Z]={...y,...D};let M=Q.get(Z);if(M)Y(M,J.at(G[Z],Z,X)),M.dataset.id=String(G[Z].id);return!0},removeItem:(Z)=>{let D=typeof Z==="number"?Z:J.it.findIndex((G)=>G.id===Z);if(D<0||D>=J.it.length)return!1;if(J.it.splice(D,1),J.ii)_();return!0},loadRange:async()=>{},ensureRange:async()=>{},loadInitial:async()=>{},loadMore:async()=>!1,reload:async()=>{},evictDistant:()=>{},clear:()=>{J.it=[]},reset:()=>{if(J.it=[],J.ii)J.hc.rebuild(0),B(),J.ffn()}}},E1=(J,q)=>{let{dom:j,classPrefix:Q,onScrollFrame:X}=q;return{getScrollTop:()=>J.sgt(),scrollTo:(Y)=>{J.sst(Y),X()},scrollBy:(Y)=>{let B=J.sgt()+Y;J.sst(B),X()},isAtTop:()=>J.ls<=2,isAtBottom:(Y=2)=>J.sab(Y),getScrollPercentage:()=>{let Y=J.hc.getTotalSize(),B=Math.max(0,Y-J.ch);return B>0?J.ls/B: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 B=q.getOffset(J),_=q.getSize(J),U=B+X,Z=U+_,D=j+Q;if(U<j)return Math.max(0,B);if(Z>D)return Z+Y-Q;return j},L2=(J,q,j,Q,X=0,Y=0,B,_,U)=>{if(!(B!=null&&B.isCompressed&&B.ratio!==1))return N2(J,q,j,Q,X,Y);let{virtualSize:D}=B,G=q.getSize(Math.max(0,J)),y=Q-X-Y,M=Math.max(1,Math.floor(y/G)),O=q.getTotalSize();if(U){if(J>=U.start+M){let A=q.getOffset(J)+G+Y-Q;return Math.max(0,A/O*D)}if(J<=U.start){let R=q.getOffset(J)-X;return Math.max(0,R/O*D)}return j}let P=j/D*_,F=P+M;if(J>=F){let A=q.getOffset(J)+G+Y-Q;return Math.max(0,A/O*D)}if(J<P){let R=q.getOffset(J)-X;return Math.max(0,R/O*D)}return j};var L1=(J,q,j,Q,X,Y,B,_,U,Z,D,G,y,M)=>{let O=`${j}-item--focused`,P=!1,F=()=>{let K=U.get("_getNavTotal");return K?K():J.vtf()},R=()=>{let K=U.get("_getNavDelta");return K?K():{ud:1,lr:0,cols:0}};U.set("_getFocusedIndex",()=>P?J.fi:-1);let A=(K,I=!0)=>{if(q.root.setAttribute("aria-activedescendant",`${Q}-item-${K}`),I){let d=U.get("_scrollItemIntoView");if(d)d(K);else{let l=X?J.cw:J.ch,q0=J.i2s(K),i=N2(q0,J.hc,J.ls,l,Y,B);if(i!==J.ls)J.sst(i),J.ls=J.sgt()}}J.ffn()},h=(K)=>{J.fi=K,P=!0,A(K)},w=(K,I)=>{if(J.fi=K,I||M)P=!0;let d=J.dm?J.dm.getItem(K):J.it[K];if(d&&J.ss.has(d.id))J.ss.clear();else if(J.ss.clear(),d)J.ss.add(d.id);A(K,I)},v=(K,I,d)=>{let l=K;while(l>=0&&l<d){let q0=J.dm?J.dm.getItem(l):J.it[l];if(!q0||!q0.__groupHeader)return l;l+=I}l=K-I;while(l>=0&&l<d){let q0=J.dm?J.dm.getItem(l):J.it[l];if(!q0||!q0.__groupHeader)return l;l-=I}return K},c=()=>{if(J.id)return;if(!q.root.matches(":focus-visible"))return;let K=F();if(K===0)return;let I=J.fi>=0?Math.min(J.fi,K-1):0;I=v(I,1,K),h(I)};q.root.addEventListener("focusin",c);let C=(K)=>{if(J.id)return;let I=K.relatedTarget;if(I&&q.root.contains(I))return;if(P=!1,J.fi>=0)Z.get(J.fi)?.classList.remove(O);q.root.removeAttribute("aria-activedescendant")};q.root.addEventListener("focusout",C),D.push((K)=>{if(J.id)return;let I=F();if(I===0)return;let d=J.fi,l=d;if(K.key===" "||K.key==="Enter"){if(d>=0){let i=J.dm?J.dm.getItem(d):J.it[d];if(i&&!i.__groupHeader)w(d,!0)}K.preventDefault();return}let q0=U.get("_navigate");if(q0)switch(K.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":l=q0(d,K.key,I);break;default:return}else{let{ud:i,lr:m}=R();switch(K.key){case"ArrowUp":l=d-i;break;case"ArrowDown":l=d+i;break;case"ArrowLeft":if(!m)return;l=d-m;break;case"ArrowRight":if(!m)return;l=d+m;break;case"PageUp":case"PageDown":{let k=J.hc.getSize(J.i2s(Math.max(0,d))),E=Math.max(i,Math.floor((X?J.cw:J.ch)/k)*i),W=U.get("_layoutToDataIndex"),V=U.get("_dataToLayoutIndex");if(W&&V){let f=W(d),g=K.key==="PageUp"?-E:E,t=W(I-1);l=V(Math.max(0,Math.min(t,f+g)))}else l=K.key==="PageUp"?d-E:d+E;break}case"Home":l=0;break;case"End":l=I-1;break;default:return}if(l<0)l=_?I-1:0;else if(l>=I)l=_?0:I-1}if(K.preventDefault(),l=v(l,l>=d?1:-1,I),l!==d)h(l)}),G.push((K)=>{if(J.id)return;let I=K.target.closest("[data-index]");if(!I)return;let d=parseInt(I.dataset.index??"-1",10);if(d<0)return;let l=J.dm?.getItem(d)??J.it[d];if(!l||l.__groupHeader)return;P=!1,q.root.focus({preventScroll:!0}),w(d,!1)}),y.push(()=>{q.root.removeEventListener("focusin",c),q.root.removeEventListener("focusout",C)})};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 y2=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,s0=(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,B,_)=>{if(Q(),Math.abs(B-Y)<1){J.scrollTo(B);return}let U=performance.now(),Z=(D)=>{let G=D-U,y=Math.min(G/_,1),M=Y+(B-Y)*y2(y);if(J.scrollTo(M),q(),y<1)j=requestAnimationFrame(Z);else j=null};j=requestAnimationFrame(Z)},cancelScroll:Q}};var F1=(J,q,j,Q,X,Y,B,_,U,Z,D,G,y,M,O,P,F,R,A)=>{let h=(z)=>{{if(!Array.isArray(z)){console.warn("[vlist] setItems() expects an array, got:",typeof z);return}if(z.length>0&&z[0]&&!("id"in z[0]))console.warn('[vlist] Items must have an "id" property. First item:',z[0]);let b=Math.min(z.length,1e4),$=new Set;for(let L=0;L<b;L++){let H=z[L];if(H&&"id"in H){if($.has(H.id)){console.warn(`[vlist] Duplicate item ID "${H.id}" at index ${L}. updateItem() and removeItem() will only match the first occurrence.`);break}$.add(H.id)}}}V(),U.dataManager.setItems(z,0,z.length)},w=(z)=>{let b=Z&&J.sab(2);if(U.dataManager.setItems(z,J.it.length),b&&J.it.length>0){let $=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst($),J.ls=$,J.rfn()}},v=(z)=>{let b=Z?J.sgt():0,$=Z?J.hc.getTotalSize():0,L=[...J.it];if(U.dataManager.clear(),U.dataManager.setItems([...z,...L],0),Z){let H=J.hc.getTotalSize()-$;if(H>0)J.sst(b+H),J.ls=b+H}},c=null,C=null,K=null,I=!1,d=()=>{if(I)return;I=!0,c=Y.get("_updateRenderedItem")??null,C=Y.get("_getSelectedIds")??null,K=Y.get("_getFocusedIndex")??null},l=(z,b)=>{{let L=J.vtf();if(z<0||z>=L)console.warn(`[vlist] updateItem() index ${z} is out of range (0–${L-1}).`)}if(U.dataManager.updateItem(z,b),d(),!c)return;let $=U.dataManager.getItem(z);if($){let H=(C?C():J.ss).has($.id),a=(K?K():J.fi)===z;c(z,$,H,a)}},q0=!1,i=(z)=>{let b=typeof document<"u"?document.activeElement:null,$=b&&q.items.contains(b)?parseInt(b.dataset?.index??"-1",10):-1;if(!U.dataManager.removeItem(z))return console.warn(`[vlist] removeItem() could not find item with id "${z}".`),!1;if(j.emit("data:change",{type:"remove",id:z}),U.forceRender(),!q0){let H=U.dataManager;if(typeof H.ensureRange==="function")q0=!0,queueMicrotask(()=>{q0=!1;let a=U.dataManager.getTotal(),{start:o,end:Q0}=U.state.viewportState.renderRange;if(a>0&&Q0>=o)H.ensureRange(o,Q0).catch(()=>{})})}if($>=0){let H=J.vtf();if(H>0)Q.get(Math.min($,H-1))?.focus()}return!0},m=(z)=>{return U.dataManager.getItem(z)},k=(z)=>{return U.dataManager.getIndexById?.(z)??-1},E=async(z)=>{if(U.dataManager.reload)await U.dataManager.reload()},W=null,V=()=>{if(W!==null)cancelAnimationFrame(W),W=null},f=(z,b,$,L)=>{if(V(),Math.abs(b-z)<1){J.sst(b),J.ls=b,J.rfn();return}let H=performance.now(),a=(o)=>{let Q0=o-H,X0=Math.min(Q0/$,1),x=L?L():b,T=z+(x-z)*y2(X0);if(J.sst(T),J.ls=T,J.rfn(),X0<1)W=requestAnimationFrame(a);else W=null};W=requestAnimationFrame(a)},g=(z,b)=>{{let X0=J.vtf();if(X0>0&&(z<0||z>=X0))console.warn(`[vlist] scrollToIndex(${z}) is out of range (0–${X0-1}).`)}let{align:$,behavior:L,duration:H}=s0(b),a=J.vtf(),o=z;if(D&&a>0)o=(o%a+a)%a;let Q0=J.gsp(o,J.hc,J.ch,a,$);if(L==="smooth"){let X0=o,x=$;f(J.sgt(),Q0,H,()=>J.gsp(X0,J.hc,J.ch,J.vtf(),x))}else V(),J.sst(Q0)},t=()=>J.sgt(),j0=(z,b)=>{return j.on(z,b)},n=(z,b)=>{j.off(z,b)},u=()=>{if(J.id)return;if(J.id=!0,U.state.isDestroyed=!0,q.items.removeEventListener("click",G),q.items.removeEventListener("dblclick",y),q.items.removeEventListener("contextmenu",M),q.root.removeEventListener("keydown",O),J.st.removeEventListener("scroll",P),F.disconnect(),R(),J.wh)q.viewport.removeEventListener("wheel",J.wh);A();let z=[];for(let b=0;b<_.length;b++)try{_[b]()}catch($){z.push($ instanceof Error?$:Error(String($)))}for(let b of B)if(b.destroy)try{b.destroy()}catch($){z.push($ instanceof Error?$:Error(String($)))}V();for(let[,b]of Q)b.remove(),X.release(b);Q.clear(),X.clear(),j.emit("destroy",void 0);for(let b of z)j.emit("error",{error:b,context:"destroy"});j.clear(),q.root.remove()},N=(z,b)=>Y.has(z)?Y.get(z):b,p={get element(){return q.root},get items(){let z=Y.get("_getItems");return z?z():J.it},get total(){let z=Y.get("_getTotal");return z?z():J.vtf()},setItems:N("setItems",h),appendItems:N("appendItems",w),prependItems:N("prependItems",v),updateItem:N("updateItem",l),removeItem(z){let b=Y.get("removeItem");return b?b(z):i(z)},reload:N("reload",E),getItemAt:m,getIndexById:k,scrollToIndex:N("scrollToIndex",g),cancelScroll:N("cancelScroll",V),getScrollPosition:N("getScrollPosition",t),on:j0,off:n,destroy:u};for(let[z,b]of Y){if(z.charCodeAt(0)===95||z==="setItems"||z==="appendItems"||z==="prependItems"||z==="updateItem"||z==="removeItem"||z==="reload"||z==="scrollToIndex"||z==="scrollToItem"||z==="cancelScroll"||z==="getScrollPosition")continue;p[z]=b}return p};var qJ=3,jJ="vlist",YJ=150,XJ=16000000,UJ=4096,W2="__placeholder_",ZJ=(J)=>(typeof screen<"u"?J?screen.width:screen.height:0)||UJ,KJ=0,w2=(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 B=new Map,_=!1,U={use(Z){if(_)throw Error("[vlist] Cannot call .use() after .build()");return B.set(Z.name,Z),U},build(){if(_)throw Error("[vlist] .build() can only be called once");return _=!0,NJ(J,B,q,X,Y??null)}};return U};function NJ(J,q,j,Q,X){let{item:Y,items:B,overscan:_=qJ,classPrefix:U=jJ,ariaLabel:Z,padding:D,reverse:G=!1,scroll:y,accessible:M,interactive:O}=J,P=O??M??!0,F=y,R=F?.wheel??!0,A=F?.wrap??!1,h=G,w=`${U}-${KJ++}`,v=q.has("withGrid")||q.has("withMasonry")?0:Y.gap??0,c=Q??X,C=Q==null&&X!=null,K=j?typeof Y.height==="number"?Y.height:void 0:typeof Y.width==="number"?Y.width:void 0,I={overscan:_,classPrefix:U,reverse:h,wrap:A,horizontal:j,ariaIdPrefix:w,interactive:P},d=ZJ(j),l=Array.from(q.values()).sort((s,Y0)=>(s.priority??50)-(Y0.priority??50)),q0=new Set(l.map((s)=>s.name));for(let s of l)if(s.conflicts){for(let Y0 of s.conflicts)if(q0.has(Y0))throw Error(`[vlist] ${s.name} and ${Y0} cannot be combined`)}if(h){if(q0.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let i=B1(J.container),m=_1(i,U,Z,j,P);if(F?.wheel===!1)if(j)m.viewport.style.overflowX="hidden";else m.viewport.style.overflow="hidden";if(F?.scrollbar==="none")m.viewport.classList.add(`${U}-viewport--no-scrollbar`);if(F?.gutter==="stable")m.viewport.classList.add(`${U}-viewport--gutter-stable`);let k=q0.has("withGrid")||q0.has("withMasonry");if(j&&K!=null&&F?.scrollbar!=="none"&&!k){m.root.style.height=`${K}px`;let s=m.viewport.style.overflowX;m.viewport.style.overflowX="scroll";let Y0=m.viewport.offsetHeight-m.viewport.clientHeight;if(m.viewport.style.overflowX=s,Y0>0)m.root.style.height=`${K+Y0}px`}let E=p0(D),W=e0(E,j);if(E.top||E.right||E.bottom||E.left)m.content.style.boxSizing="border-box",m.content.style.padding=`${E.top}px ${E.right}px ${E.bottom}px ${E.left}px`;let V=W1(),f=B||[],g=typeof c==="function"&&(q.has("withGrid")||q.has("withMasonry")),t=v>0?typeof c==="function"?(s)=>c(s)+v:c+v:c,j0=C?X+v:t,n=n0(j0,g?0:f.length);if(v>0){let s=n.getTotalSize;n.getTotalSize=()=>{let Y0=s();return Y0>0?Y0-v:0}}let u=V1(),N={it:f,hc:n,ch:Math.min(m.viewport.clientHeight,d),cw:Math.min(m.viewport.clientWidth,d),id:!1,ii:!1,ls:0,vt:K1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>m.viewport.scrollLeft:()=>m.viewport.scrollTop,sst:j?(s)=>{m.viewport.scrollLeft=s}:(s)=>{m.viewport.scrollTop=s},sab:(s=2)=>{let Y0=N.hc.getTotalSize();return N.ls+N.ch>=Y0-s},sic:!1,rfn:null,ffn:null,gvr:(s,Y0,K0,O0,y0)=>{D1(s,Y0,K0,O0,y0)},gsp:(s,Y0,K0,O0,y0)=>{return M1(s,Y0,K0,O0,y0,N.mp)},pef:null,at:Y.template,vre:!0,st:m.viewport,wh:null,gcw:()=>N.cw,gch:()=>N.ch,gp:v,mp:W,sif:(s)=>s,i2s:(s)=>s,uic:(s,Y0,K0)=>{let O0=o.get(s);if(!O0)return;N0(O0,Y0,K0)},csi:null};N.vtf=()=>N.dm?N.dm.getTotal():N.it.length;let p=null,z=!1,b={start:0,end:0},$={start:0,end:0},L={start:-1,end:-1},H={viewportState:{scrollPosition:0,containerSize:j?N.cw:N.ch,totalSize:N.hc.getTotalSize(),actualSize:N.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},a=()=>({...H.viewportState,totalItems:N.vtf()}),o=new Map,Q0=()=>{J2(m.items,o.keys(),(s)=>o.get(s))},X0=()=>{let s=N.hc.getTotalSize(),K0=`${(N.sic?s:Math.min(s,XJ))+W}px`;if(j)m.content.style.width=K0;else m.content.style.height=K0},x={selected:!1,focused:!1},T=`${U}-item`,S=`${U}-group-header`,r=`${U}-item--selected`,e=`${U}-item--focused`,N0=(s,Y0,K0)=>{s.classList.toggle(r,Y0),s.classList.toggle(e,K0),s.ariaSelected=Y0?"true":"false"},U0=(s,Y0,K0,O0)=>{if(K0)s.setAttribute("role","presentation"),s.removeAttribute("aria-selected"),s.removeAttribute("aria-setsize"),s.removeAttribute("aria-posinset"),s.removeAttribute("id");else{if(s.setAttribute("role","option"),O0)s.ariaSelected="false",N.la=String(z0.getSetSize()),s.setAttribute("aria-setsize",N.la);s.id=`${w}-item-${Y0}`,s.setAttribute("aria-posinset",String(z0.getPosInSet(Y0)))}},Z0=Y.striped,_0=!!Z0,W0=Z0==="data"||Z0==="even"||Z0==="odd",F0=`${U}-item--odd`,$0=`${U}-item--placeholder`,E0=`${U}-item--replaced`,P0=`${U}--scrolling`,k0=[],D0=[],A0=[],R0=[],w0=[],h0=[],u0=[],S0=[],l0=[],f0=new Map,X2=(s,Y0,K0)=>{if(String(K0).startsWith(W2))return;let O0=W2+Y0;if(s.has(O0))s.delete(O0),s.add(K0)},i0={scrollPosition:0,direction:"down"},I0={velocity:0,reliable:!1},J0={range:{start:0,end:0}},B0=null,V0=null,G0=!1,M0=!1,H0=()=>{if(G0)return;G0=!0,B0=f0.get("_getSelectedIds")??null,V0=f0.get("_getFocusedIndex")??null},z0=Q2(f0,N.vtf),L0=(s,Y0,K0)=>{if(!Y0)console.warn(`[vlist] Template returned falsy value${K0!==void 0?` for item at index ${K0}`:""}. The element will render as blank.`);else if(typeof Y0==="string"&&Y0==="")console.warn(`[vlist] Template returned empty string${K0!==void 0?` for item at index ${K0}`:""}. The element will render as blank.`);if(typeof Y0==="string")s.innerHTML=Y0;else s.replaceChildren(Y0)},r0=(s,Y0)=>{let K0=Math.round(N.hc.getOffset(Y0));if(j)s.style.transform=`translateX(${K0}px)`;else s.style.transform=`translateY(${K0}px)`};N.pef=r0;let x0=(s,Y0)=>{let K0=u.acquire(),O0=!!Y0.__groupHeader;K0.className=O0?S:T;let y0=!N.csi||N.csi(s);if(j){if(y0)K0.style.width=`${N.hc.getSize(s)-v}px`;else K0.style.width="";if(K!=null)K0.style.height=`${K}px`}else if(y0)K0.style.height=`${N.hc.getSize(s)-v}px`;else K0.style.height="";if(K0.dataset.index=String(s),K0.dataset.id=String(Y0.id),U0(K0,s,O0,!0),String(Y0.id).startsWith(W2))K0.classList.add($0);if(_0)if(W0){let b0=N.sif(s);if(b0<0)K0.classList.remove(F0);else K0.classList.toggle(F0,(b0&1)===1)}else K0.classList.toggle(F0,(s&1)===1);try{L0(K0,N.at(Y0,s,x),s)}catch(b0){let d0=b0 instanceof Error?b0:Error(String(b0));V.emit("error",{error:d0,context:`tpl(${s},${Y0.id})`,viewport:a()}),K0.textContent=""}return N.pef(K0,s),K0},D2=NaN,s1=()=>{if(N.id)return;let s=j?N.cw:N.ch;if(s<=0)return;H0();let Y0=B0?B0():N.ss,K0=V0?V0():N.fi,O0=N.vtf();N.gvr(N.ls,s,N.hc,O0,b),G1(b,_,O0,$);let y0=$.end-$.start+1,g0=N.hc.getSize(0)||1,b0=Math.ceil(d/g0)+_*2;if(y0>b0){if(!M0)M0=!0,console.warn(`[vlist] Render range capped: ${y0} items → ${b0}. Container is ${s}px tall (item: ${g0}px). This usually means the container has no CSS height constraint.`);$.end=$.start+b0-1}if($.start===L.start&&$.end===L.end){if(N.sic&&N.ls!==D2){D2=N.ls;for(let[T0,C0]of o)N.pef(C0,T0)}H.viewportState.scrollPosition=N.ls,H.viewportState.containerSize=s,H.viewportState.visibleRange.start=b.start,H.viewportState.visibleRange.end=b.end,H.viewportState.renderRange.start=$.start,H.viewportState.renderRange.end=$.end;return}let d0=String(z0.getSetSize()),i1=d0!==N.la;N.la=d0;for(let[T0,C0]of o)if(T0<$.start||T0>$.end)C0.remove(),u.release(C0),o.delete(T0);let j1=document.createDocumentFragment(),Y1=!1,Z2=S0.length>0?[]:null;for(let T0=$.start;T0<=$.end;T0++){let C0=N.dm?N.dm.getItem(T0):N.it[T0];if(C0===void 0)continue;let v0=o.get(T0);if(v0){let o0=v0.dataset.id,t0=String(C0.id);if(o0!==t0){let t1=o0?.startsWith(W2),R2=t0.startsWith(W2),X1=!!C0.__groupHeader;v0.className=X1?S:T,U0(v0,T0,X1,!1);try{L0(v0,N.at(C0,T0,x),T0)}catch(P2){let e1=P2 instanceof Error?P2:Error(String(P2));V.emit("error",{error:e1,context:`tpl(${T0},${C0.id})`,viewport:a()}),v0.textContent=""}v0.dataset.id=t0;let U1=!N.csi||N.csi(T0);if(j)v0.style.width=U1?`${N.hc.getSize(T0)-v}px`:"";else v0.style.height=U1?`${N.hc.getSize(T0)-v}px`:"";if(R2)v0.classList.add($0);else v0.classList.remove($0);if(t1&&!R2)v0.classList.add(E0),setTimeout(()=>{v0.classList.remove(E0)},300);if(N.dm&&!R2)X2(Y0,T0,C0.id)}N.pef(v0,T0);let O2=Y0.has(C0.id);if(N0(v0,O2,T0===K0),i1&&!C0.__groupHeader)v0.setAttribute("aria-setsize",N.la)}else{let o0=x0(T0,C0);if(Z2)Z2.push({index:T0,element:o0});if(N.dm)X2(Y0,T0,C0.id);let t0=Y0.has(C0.id),O2=T0===K0;if(t0||O2)N0(o0,t0,O2);j1.appendChild(o0),o.set(T0,o0),Y1=!0}}if(Y1)m.items.appendChild(j1);if(Z2&&Z2.length>0)for(let T0=0;T0<S0.length;T0++)S0[T0](Z2);L.start=$.start,L.end=$.end,D2=N.ls,H.lastRenderRange.start=$.start,H.lastRenderRange.end=$.end,H.viewportState.scrollPosition=N.ls,H.viewportState.visibleRange.start=b.start,H.viewportState.visibleRange.end=b.end,H.viewportState.renderRange.start=$.start,H.viewportState.renderRange.end=$.end,J0.range.start=$.start,J0.range.end=$.end,V.emit("range:change",J0)},a1=()=>{L.start=-1,L.end=-1,D2=NaN,N.rfn()};N.rfn=s1,N.ffn=a1;let o1=()=>{m.root.classList.remove(P0),z=!1,N.vt.velocity=0,N.vt.sampleCount=0,I0.velocity=0,I0.reliable=!1,V.emit("velocity:change",I0),Q0();for(let s=0;s<D0.length;s++)D0[s]();V.emit("scroll:idle",{scrollPosition:N.ls})},n1=()=>{if(p)clearTimeout(p);p=setTimeout(o1,F?.idleTimeout??YJ)},U2=()=>{if(N.id)return;let s=N.sgt();if(s===N.ls&&z)return;let Y0=s>=N.ls?"down":"up";if(N.vt=N1(N.vt,s),!m.root.classList.contains(P0))m.root.classList.add(P0);z=!0,N.ls=s,N.rfn(),i0.scrollPosition=s,i0.direction=Y0,V.emit("scroll",i0),I0.velocity=N.vt.velocity,I0.reliable=N.vt.sampleCount>=Z1,V.emit("velocity:change",I0);for(let K0=0;K0<k0.length;K0++)k0[K0](s,Y0);n1()},G2=null;if(N.st.addEventListener("scroll",U2,{passive:!0}),R){let s=m.viewport;if(j)G2=(Y0)=>{if(H.viewportState.isCompressed)return;if(Math.abs(Y0.deltaX)>Math.abs(Y0.deltaY))return;let K0=N.sgt(),O0=s.scrollWidth-s.clientWidth,y0=Math.max(0,Math.min(K0+Y0.deltaY,O0));if(Math.abs(y0-K0)<1)return;Y0.preventDefault(),N.sst(y0),U2()};else G2=(Y0)=>{if(H.viewportState.isCompressed)return;let K0=s.scrollWidth>s.clientWidth;if(K0&&Math.abs(Y0.deltaX)>Math.abs(Y0.deltaY))return;if(K0&&Y0.deltaX!==0)Y0.preventDefault(),s.scrollLeft+=Y0.deltaX;let O0=N.sgt(),y0=s.scrollHeight-s.clientHeight,g0=Math.max(0,Math.min(O0+Y0.deltaY,y0));if(Math.abs(g0-O0)<1)return;Y0.preventDefault(),N.sst(g0),U2()};N.wh=G2,s.addEventListener("wheel",G2,{passive:!1})}let k2=(s)=>{let Y0=s.target.closest("[data-index]");if(!Y0)return null;let K0=parseInt(Y0.dataset.index??"-1",10);if(K0<0)return null;let O0=N.dm?.getItem(K0)??N.it[K0];if(!O0||O0.__groupHeader)return null;return{item:O0,index:K0}},i2=(s)=>{for(let K0=0;K0<A0.length;K0++)A0[K0](s);let Y0=k2(s);if(Y0)V.emit("item:click",{item:Y0.item,index:Y0.index,event:s})},t2=(s)=>{let Y0=k2(s);if(Y0)V.emit("item:dblclick",{item:Y0.item,index:Y0.index,event:s})},e2=(s)=>{for(let K0=0;K0<R0.length;K0++)R0[K0](s);let Y0=k2(s);if(Y0)V.emit("item:contextmenu",{item:Y0.item,index:Y0.index,event:s})},J1=(s)=>{for(let Y0=0;Y0<w0.length;Y0++)w0[Y0](s)};if(m.items.addEventListener("click",i2),m.items.addEventListener("dblclick",t2),m.items.addEventListener("contextmenu",e2),m.root.addEventListener("keydown",J1),P){let s=null,Y0=(K0)=>{if(s)clearTimeout(s);s=setTimeout(()=>{if(s=null,N.id)return;let O0=N.vtf();m.liveRegion.textContent=`Showing items ${K0.range.start+1} to ${Math.min(K0.range.end+1,O0)} of ${O0}`},300)};V.on("range:change",Y0),l0.push(()=>{if(s)clearTimeout(s);V.off("range:change",Y0)})}let $2=new ResizeObserver((s)=>{if(N.id)return;for(let Y0 of s){let K0=Y0.contentRect.height,O0=Y0.contentRect.width,y0=j?O0:K0,g0=j?N.cw:N.ch;if(y0>d){if(!M0)M0=!0,console.warn(`[vlist] Viewport grew to ${Math.round(y0)}px (screen: ${d}px). Re-applying size constraint. Check that the vlist container has a CSS height/width constraint.`);let b0=j?"width":"height";m.root.style[b0]="100%",m.viewport.style[b0]="100%";return}if(N.cw=O0,N.ch=K0,Math.abs(y0-g0)>1){if(H.viewportState.containerSize=y0,N.ii){let b0=H.cachedCompression;if(b0&&b0.state.isCompressed){let d0=`${b0.state.virtualSize+W}px`;if(j)m.content.style.width=d0;else m.content.style.height=d0}else X0();N.rfn(),V.emit("resize",{height:K0,width:O0})}}if(N.ii)for(let b0=0;b0<h0.length;b0++)h0[b0](O0,K0)}});if(N.vre)$2.observe(m.viewport);let b2={dom:m,emitter:V,resolvedConfig:I,rawConfig:J,rendered:o,pool:u,itemState:x,sharedState:H,renderRange:$,isHorizontal:j,classPrefix:U,contentSizeHandlers:u0,idleHandlers:D0,afterScroll:k0,clickHandlers:A0,contextMenuHandlers:R0,keydownHandlers:w0,resizeHandlers:h0,destroyHandlers:l0,methods:f0,onScrollFrame:U2,resizeObserver:$2,afterRenderBatch:S0,applyTemplate:L0,updateContentSize:X0},M2=O1(N,b2);N.dm=A1(N,b2,M2),N.sc=E1(N,b2),f0.set("_updateRenderedItem",(s,Y0,K0,O0)=>{let y0=o.get(s);if(!y0)return;let g0={selected:K0,focused:O0};try{let b0=N.at(Y0,s,g0);L0(y0,b0,s)}catch(b0){let d0=b0 instanceof Error?b0:Error(String(b0));V.emit("error",{error:d0,context:`tpl(${s},${Y0.id})`,viewport:a()})}y0.dataset.id=String(Y0.id),N0(y0,K0,O0)});let Q1=new WeakSet;f0.set("_setSizeCache",(s)=>{if(N.hc=s,N.gp>0&&!Q1.has(s)){Q1.add(s);let Y0=N.hc.getTotalSize,K0=N.gp;N.hc.getTotalSize=()=>{let O0=Y0();return O0>0?O0-K0:0}}}),f0.set("_setConstrainSize",(s)=>{N.csi=s});let q1=new Map;for(let s of l)if(s.methods)for(let Y0 of s.methods){let K0=q1.get(Y0);if(K0)throw Error(`[vlist] Method "${Y0}" is registered by both "${K0}" and "${s.name}"`);q1.set(Y0,s.name)}for(let s of l)try{s.setup(M2)}catch(Y0){let K0=Y0 instanceof Error?Y0:Error(String(Y0));console.error(`[vlist] Feature "${s.name}" setup failed:`,K0),V.emit("error",{error:K0,context:s.name,viewport:a()})}if(C&&!q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(P&&!f0.has("_getFocusedIndex")){let s=j?E.left:E.top,Y0=j?E.right:E.bottom;L1(N,m,U,w,j,s,Y0,A,f0,o,w0,A0,l0,!!J.focusOnClick)}if(N.ii=!0,M2.state.isInitialized=!0,X0(),N.rfn(),h&&N.it.length>0){let s=N.gsp(N.it.length-1,N.hc,N.ch,N.it.length,"end");N.sst(s),N.ls=s,N.rfn()}return F1(N,m,V,o,u,f0,l,l0,M2,h,A,i2,t2,e2,J1,U2,$2,()=>{},()=>{if(p)clearTimeout(p)})}var z2=200,C2=50;var T1=50,H1=12,k1=2,j2=16000000;var $1="x",b1=20,v2="_isPlaceholder",c0="__placeholder_";var R1=(J,q,j)=>{let Q=q.getTotalSize(),X=j===!0||Q>j2,Y=Q>j2?j2:Q,B=Q>0?Y/Q:1;return{isCompressed:X,actualSize:Q,virtualSize:Y,ratio:B}};var F2=(J,q,j,Q,X,Y,B)=>{if(!Y.isCompressed||Q===0)return j.getOffset(J);if(Y.ratio===1)return j.getOffset(J)-q;let{virtualSize:_}=Y,U=q/_,Z=j.getTotalSize(),D=U*Z;return j.getOffset(J)-D};var WJ=(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:B=!0,autoHideDelay:_=1000,minThumbSize:U=15,showOnHover:Z=!0,showOnViewportEnter:D=!0,clickBehavior:G="scroll"}=j,y=G==="page"?"scroll":G,M=Y??J,O=WJ(j.padding),P=X?O.left:O.top,F=X?O.right:O.bottom,R=X?O.bottom:O.right,A=j.hoverZoneWidth??R+16,h=0,w=0,v=0,c=0,C=!1,K=!1,I=0,d=0,l=0,q0=null,i=!1,m=null,k=null,E=0,W=0,V=null,f=null,g=null,t=X?"width":"height",j0=X?"translateX":"translateY",n=X?(D0)=>D0.clientX:(D0)=>D0.clientY,u=X?"left":"top",N=document.createElement("div"),p=document.createElement("div"),z=document.createElement("div"),b=()=>{if(M===J)return;let D0=J.offsetTop,A0=X?O.left:O.top;N.style[X?"left":"top"]=`${D0+A0}px`,z.style[X?"left":"top"]=`${D0}px`},$=()=>{if(N.className=`${Q}-scrollbar`,p.className=`${Q}-scrollbar-thumb`,X)N.classList.add(`${Q}-scrollbar--horizontal`);if(j.padding!==void 0)M.style.setProperty("--vlist-custom-scrollbar-padding-top",`${O.top}px`),M.style.setProperty("--vlist-custom-scrollbar-padding-right",`${O.right}px`),M.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${O.bottom}px`),M.style.setProperty("--vlist-custom-scrollbar-padding-left",`${O.left}px`);if(j.minThumbSize!==void 0)N.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${U}px`);if(N.appendChild(p),M.appendChild(N),z.className=`${Q}-scrollbar-hover`,X)z.classList.add(`${Q}-scrollbar-hover--horizontal`),z.style.height=`${A}px`;else z.style.width=`${A}px`;if(M.appendChild(z),M!==J)b()},L=()=>{if(q0)clearTimeout(q0),q0=null},H=()=>{if(!B)return;L(),q0=setTimeout(o,_)},a=()=>{if(h<=w)return;if(L(),!i)N.classList.add(`${Q}-scrollbar--visible`),i=!0;if(B&&!C&&!K)H()},o=()=>{if(C||K)return;N.classList.remove(`${Q}-scrollbar--visible`),i=!1},Q0=(D0,A0)=>{if(h=D0,w=A0,b(),h<=w){N.style.display="none",o();return}N.style.display="";let R0=Math.max(0,w-P-F),w0=w/h;if(v=Math.max(U,w0*R0),p.style[t]=`${v}px`,c=R0-v,X0(l),!B)a()},X0=(D0)=>{if(l=D0,h<=w||c<=0)return;let A0=h-w,R0=Math.min(1,Math.max(0,D0/A0));p.style.transform=`${j0}(${R0*c}px)`},x=(D0)=>{if(D0.target===p||y!=="jump"||c<=0)return;let A0=h-w,R0=N.getBoundingClientRect(),w0=n(D0)-R0[u],h0=Math.max(0,Math.min(w0-v/2,c));q(h0/c*A0),a()},T=()=>{if(V!==null)clearTimeout(V),V=null;if(f!==null)cancelAnimationFrame(f),f=null;g=null},S=(D0)=>{let A0=c>0?W/D0*c:0;if(E<A0)return-1;if(E>=A0+v)return 1;return 0},r=()=>{let D0=h-w,A0=S(D0);if(A0===0){T();return}if(A0===-1){if(W<=0){T();return}let R0=Math.max(0,W-w);W=R0,q(R0)}else{if(W>=D0){T();return}let R0=Math.min(D0,W+w);W=R0,q(R0)}a()},e=(D0)=>{if(g===null){g=D0,f=requestAnimationFrame(e);return}let A0=h-w,R0=D0-g;g=D0;let w0=S(A0);if(w0===0){T();return}let h0=12*w/1000,u0=Math.min(h0*R0,w);if(w0===-1){if(W<=0){T();return}let S0=Math.max(0,W-u0);W=S0,q(S0)}else{if(W>=A0){T();return}let S0=Math.min(A0,W+u0);W=S0,q(S0)}L(),f=requestAnimationFrame(e)},N0=()=>{T(),H(),document.removeEventListener("mouseup",N0)},U0=(D0)=>{if(D0.target===p||y!=="scroll")return;D0.preventDefault();let A0=N.getBoundingClientRect();E=n(D0)-A0[u],W=l,r(),V=setTimeout(()=>{f=requestAnimationFrame(e)},350),document.addEventListener("mouseup",N0)},Z0=(D0)=>{D0.preventDefault(),D0.stopPropagation(),C=!0,I=n(D0),d=l,L(),N.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",_0),document.addEventListener("mouseup",W0)},_0=(D0)=>{if(!C)return;let A0=n(D0)-I,R0=c>0?A0/c:0,w0=h-w,h0=R0*w0,u0=Math.max(0,Math.min(d+h0,w0));if(p.style.transform=`${j0}(${u0/w0*c}px)`,k=u0,m===null)m=requestAnimationFrame(()=>{if(k!==null)q(k);m=null})},W0=()=>{if(C=!1,m!==null)cancelAnimationFrame(m),m=null;if(k!==null)q(k),k=null;if(N.classList.remove(`${Q}-scrollbar--dragging`),B&&!K)H();document.removeEventListener("mousemove",_0),document.removeEventListener("mouseup",W0)},F0=()=>{if(D)a()},$0=()=>{if(!C){if(K=!1,B)H()}},E0=()=>{K=!0,L(),a()},P0=()=>{if(K=!1,!C&&B)H()},k0=()=>{if(L(),T(),m!==null)cancelAnimationFrame(m),m=null;N.removeEventListener("click",x),N.removeEventListener("mousedown",U0),N.removeEventListener("mouseenter",E0),document.removeEventListener("mouseup",N0),N.removeEventListener("mouseleave",P0),p.removeEventListener("mousedown",Z0),J.removeEventListener("mouseenter",F0),J.removeEventListener("mouseleave",$0),document.removeEventListener("mousemove",_0),document.removeEventListener("mouseup",W0),z.removeEventListener("click",x),z.removeEventListener("mousedown",U0),z.removeEventListener("mouseenter",E0),z.removeEventListener("mouseleave",P0),z.remove(),M.style.removeProperty("--vlist-custom-scrollbar-padding-top"),M.style.removeProperty("--vlist-custom-scrollbar-padding-right"),M.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),M.style.removeProperty("--vlist-custom-scrollbar-padding-left"),N.remove()};if($(),N.addEventListener("click",x),N.addEventListener("mousedown",U0),N.addEventListener("mouseenter",E0),N.addEventListener("mouseleave",P0),p.addEventListener("mousedown",Z0),J.addEventListener("mouseenter",F0),J.addEventListener("mouseleave",$0),z.addEventListener("click",x),z.addEventListener("mousedown",U0),Z)z.addEventListener("mouseenter",E0),z.addEventListener("mouseleave",P0);return{show:a,hide:o,updateBounds:Q0,updatePosition:X0,isVisible:()=>i,destroy:k0}};var S2=(J)=>{let q=null;return{name:"withScrollbar",priority:15,setup(j){let{dom:Q,config:X}=j,{classPrefix:Y,horizontal:B}=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,B,Q.root);let _=q,U=()=>{_.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`);U(),j.afterScroll.push((Z,D)=>{_.updatePosition(Z),_.show()}),j.resizeHandlers.push((Z,D)=>{U()}),j.contentSizeHandlers.push(()=>{U()}),j.destroyHandlers.push(()=>{_.destroy()})},destroy(){if(q)q.destroy(),q=null}}};var BJ=0.65,_J=0.5,P1=1.7,VJ=0.95,DJ=0.1,GJ=5,MJ=100,y1=(J,q,j,Q=0)=>{if(J<=0)return 0;return Math.max(0,(q-Q)*(1-j)+Q)},f2=(J)=>{let q=J?.force??!1,j=null,Q=0,X=!1,Y=0,B=0,_=null,U=0,Z=0,D=null,G=[];return{name:"withScale",priority:20,setup(y){let{dom:M,config:O}=y,{classPrefix:P,horizontal:F}=O,{root:R,viewport:A}=M,h=y.state.viewportState,w=F?"scrollLeft":"scrollTop",v=F?"overflowX":"overflow",c=p0(y.rawConfig.padding),C=F?c.left+c.right:c.top+c.bottom,K=()=>{let W=y.getVirtualTotal(),V=R1(W,y.sizeCache,q);if(V.isCompressed&&!X){X=!0,y.scrollController.enableCompression(V);let g=A[w];if(A.style[v]="hidden",A[w]=0,g>0)Q=g,B=g;Y=y1(V.virtualSize,h.containerSize,V.ratio,C),y.updateContentSize(V.virtualSize+Y),y.setScrollFns(()=>Q,(b)=>{if(Q=b,B=b,_!==null)cancelAnimationFrame(_),_=null});let t=()=>{let b=B-Q;if(y.getVirtualTotal()===0){Q=0,B=0,_=null,y.triggerScrollFrame();return}if(Math.abs(b)<_J){let $=y.getCachedCompression(),L=Math.max(0,$.virtualSize+Y-h.containerSize);Q=Math.max(0,Math.min(B,L)),B=Q,_=null}else{Q+=b*BJ;let L=y.getCachedCompression().virtualSize+Y-h.containerSize;Q=Math.max(0,Math.min(Q,L)),_=requestAnimationFrame(t)}y.triggerScrollFrame()},j0=(b)=>{b.preventDefault();let $=y.getCachedCompression(),L=$.virtualSize+Y-h.containerSize;if(B=Math.max(0,Math.min(B+b.deltaY*$.ratio*P1,L)),_===null)_=requestAnimationFrame(t)};A.addEventListener("wheel",j0,{passive:!1});let n=()=>{if(D!==null)cancelAnimationFrame(D),D=null},u=(b)=>{if(n(),_!==null)cancelAnimationFrame(_),_=null;let $=b.touches[0];if(!$)return;let L=F?$.clientX:$.clientY;U=L,Z=Q,G=[{time:performance.now(),y:L}]},N=(b)=>{b.preventDefault();let $=b.touches[0];if(!$)return;let L=F?$.clientX:$.clientY,H=performance.now();if(G.push({time:H,y:L}),G.length>GJ)G.shift();let a=U-L,o=y.getCachedCompression(),Q0=o.virtualSize+Y-h.containerSize,X0=Math.max(0,Math.min(Z+a*o.ratio*P1,Q0));Q=X0,B=X0,y.triggerScrollFrame()},p=(b)=>{let $=performance.now(),L=G.filter((Q0)=>$-Q0.time<MJ),H=0;if(L.length>=2){let Q0=L[0],X0=L[L.length-1],x=X0.time-Q0.time;if(x>0)H=(Q0.y-X0.y)/x}if(G=[],Math.abs(H)<DJ)return;let a=H*16,o=()=>{if(a*=VJ,Math.abs(a)<0.5){D=null;return}let X0=y.getCachedCompression().virtualSize+Y-h.containerSize,x=Q+a;if(x=Math.max(0,Math.min(x,X0)),x<=0&&a<0||x>=X0&&a>0){Q=x,B=x,y.triggerScrollFrame(),D=null;return}Q=x,B=x,y.triggerScrollFrame(),D=requestAnimationFrame(o)};D=requestAnimationFrame(o)};A.addEventListener("touchstart",u,{passive:!0}),A.addEventListener("touchmove",N,{passive:!1}),A.addEventListener("touchend",p,{passive:!0}),A.addEventListener("touchcancel",p,{passive:!0}),y.destroyHandlers.push(()=>{A.removeEventListener("wheel",j0),A.removeEventListener("touchstart",u),A.removeEventListener("touchmove",N),A.removeEventListener("touchend",p),A.removeEventListener("touchcancel",p)});let z=()=>{if(A[w]!==0)A[w]=0};if(A.addEventListener("scroll",z,{passive:!0}),y.destroyHandlers.push(()=>{A.removeEventListener("scroll",z)}),!y.methods.has("_hasScrollbar")){if(y.methods.set("_hasScrollbar",()=>!0),j=B2(A,($)=>y.scrollController.scrollTo($),{},P,F,R),!A.classList.contains(`${P}-viewport--custom-scrollbar`))A.classList.add(`${P}-viewport--custom-scrollbar`);j.updateBounds(V.virtualSize,h.containerSize);let b=j;y.afterScroll.push(($,L)=>{if(b)b.updatePosition($),b.show()}),y.resizeHandlers.push(($,L)=>{if(b){let H=y.getCachedCompression();b.updateBounds(H.virtualSize,h.containerSize)}})}}else if(!V.isCompressed&&X){if(X=!1,_!==null)cancelAnimationFrame(_),_=null;if(D!==null)cancelAnimationFrame(D),D=null;if(Q=0,B=0,G=[],y.setScrollFns(()=>A[w],(g)=>{A[w]=g}),A[w]=0,y.scrollController.disableCompression(),A.style[v]="auto",j)j.destroy(),j=null;Y=0,y.updateContentSize(V.actualSize)}else if(V.isCompressed)y.scrollController.updateConfig({compression:V}),Y=y1(V.virtualSize,h.containerSize,V.ratio,C),y.updateContentSize(V.virtualSize+Y);if(j)j.updateBounds(V.virtualSize+Y,h.containerSize);let f=h;if(f.isCompressed=V.isCompressed,f.compressionRatio=V.ratio,f.totalSize=V.virtualSize+Y,f.actualSize=V.actualSize,y.state.cachedCompression={state:V,totalItems:W},X){let g=Math.max(0,V.virtualSize+Y-h.containerSize),t=Q;if(t>g)t=g;else if(t<0)t=0;if(t!==Q){if(_!==null)cancelAnimationFrame(_),_=null;if(D!==null)cancelAnimationFrame(D),D=null;y.scrollController.scrollTo(t)}}for(let g=0;g<y.contentSizeHandlers.length;g++)y.contentSizeHandlers[g]()};y.updateCompressionMode=K;let I=y.getCachedCompression.bind(y);y.getCachedCompression=()=>{if(y.state.cachedCompression)return y.state.cachedCompression.state;return I()},y.setVisibleRangeFn((W,V,f,g,t)=>{if(l=null,q0=null,g===0||V===0){t.start=0,t.end=-1;return}let j0=y.getCachedCompression();if(!j0.isCompressed||j0.ratio===1){let N=f.indexAtOffset(W),p=f.indexAtOffset(W+V);if(p<g-1)p++;t.start=Math.max(0,N),t.end=Math.min(g-1,Math.max(0,p));return}let n=f.indexAtOffset(W/j0.virtualSize*j0.actualSize),u;if(!f.isVariable())u=Math.ceil(V/f.getSize(0));else{u=0;let N=0,p=n;while(p<g&&N<V)N+=f.getSize(p),u++,p++;if(u<1)u=1}t.start=Math.max(0,n),t.end=Math.min(g-1,Math.max(0,n+u))}),y.setScrollToPosFn((W,V,f,g,t)=>{if(g===0)return 0;let j0=y.getCachedCompression(),n=V.getSize(W),u;if(j0.isCompressed&&j0.ratio!==1){if(u=W/g*j0.virtualSize,t==="center")u-=(f-n)/2*j0.ratio;else if(t==="end")u-=(f-n)*j0.ratio;return Math.max(0,u)}if(u=V.getOffset(W),t==="center")u-=(f-n)/2;else if(t==="end")u-=f-n;return Math.max(0,Math.min(u,j0.virtualSize-f))});let d=NaN,l=null,q0=null,i=F?"translateX":"translateY";y.setPositionElementFn((W,V)=>{let f=y.scrollController.getScrollTop(),g=y.getCachedCompression();if(f!==d)d=f,l=null,q0=null;if(g.isCompressed){if(l===null||V<q0){q0=V;let j0=y.sizeCache.getOffset(V);l=Math.round(g.ratio===1?j0-f:j0-f/g.virtualSize*g.actualSize)}let t=l+y.sizeCache.getOffset(V)-y.sizeCache.getOffset(q0);W.style.transform=`${i}(${t}px)`}else{let t=Math.round(y.sizeCache.getOffset(V));W.style.transform=`${i}(${t}px)`}});let m=F?c.left:c.top,k=F?c.right:c.bottom,E=y.getItemToScrollIndexFn();y.methods.set("_scrollItemIntoView",(W)=>{let V=y.getCachedCompression(),f=h.containerSize,g=h.scrollPosition,t=y.getVirtualTotal(),{visibleRange:j0}=h,n=E(W),u=L2(n,y.sizeCache,g,f,m,k,V,t,j0);if(u!==g)y.scrollController.scrollTo(u)}),K(),y.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(_!==null)cancelAnimationFrame(_),_=null;if(D!==null)cancelAnimationFrame(D),D=null})}}};var w1=(J={})=>{let{chunkSize:q=100,maxCachedItems:j=5000,evictionBuffer:Q=200,onEvict:X}=J,Y=new Map,B=0,_=0,U=(k)=>{let E=Y.get(k);if(!E)E={items:Array(q),count:0,lastAccess:Date.now()},Y.set(k,E);else E.lastAccess=Date.now();return E},Z=(k)=>{return Math.floor(k/q)},D=(k)=>{return k%q},G=()=>B,y=(k)=>{B=k},M=(k)=>{if(k<0||k>=B)return;let E=Z(k),W=Y.get(E);if(!W)return;return W.items[D(k)]},O=(k)=>{if(k<0||k>=B)return!1;let E=Z(k),W=Y.get(E);if(!W)return!1;return W.items[D(k)]!==void 0},P=(k,E)=>{let W=Z(k),V=U(W),f=D(k),g=V.items[f]===void 0;if(V.items[f]=E,g)V.count++,_++;if(k>=B)B=k+1},F=(k,E)=>{for(let W=0;W<E.length;W++){let V=E[W];if(V!==void 0)P(k+W,V)}},R=(k)=>{if(k<0||k>=B)return!1;let E=Z(k),W=Y.get(E),V=D(k);if(!(W!==void 0&&W.items[V]!==void 0))return!1;let g=E,t=Array.from(Y.keys()).filter((n)=>n>=g).sort((n,u)=>n-u),j0=[];for(let n of t){let u=Y.get(n),N=n*q;for(let p=0;p<q;p++){if(u.items[p]===void 0)continue;let z=N+p;if(z<=k)continue;j0.push({oldIndex:z,item:u.items[p]})}}if(W.items[V]=void 0,W.count--,_--,W.count===0)Y.delete(E);for(let{oldIndex:n}of j0){let u=Z(n),N=Y.get(u);if(!N)continue;let p=D(n);if(N.items[p]!==void 0){if(N.items[p]=void 0,N.count--,_--,N.count===0)Y.delete(u)}}for(let{oldIndex:n,item:u}of j0){let N=n-1,p=Z(N),z=U(p),b=D(N);z.items[b]=u,z.count++,_++}return B--,!0},A=(k,E)=>{let W=[];for(let V=k;V<=E&&V<B;V++)W.push(M(V));return W},h=(k,E)=>{for(let W=k;W<=E&&W<B;W++)if(!O(W))return!1;return!0},w=()=>{let k=[],E=null,W=Array.from(Y.keys()).sort((V,f)=>V-f);for(let V of W){let f=Y.get(V);if(!f)continue;let g=V*q;for(let t=0;t<q;t++){let j0=g+t;if(j0>=B)break;if(f.items[t]!==void 0)if(E===null)E={start:j0,end:j0};else if(j0===E.end+1)E.end=j0;else k.push(E),E={start:j0,end:j0};else if(E!==null)k.push(E),E=null}}if(E!==null)k.push(E);return k},v=(k,E)=>{let W=[],V=null;for(let f=k;f<=E&&f<B;f++)if(!O(f))if(V===null)V={start:f,end:f};else V.end=f;else if(V!==null)W.push(V),V=null;if(V!==null)W.push(V);return W},c=(k)=>{return Y.has(k)},C=(k)=>{let E=Y.get(k);if(E)E.lastAccess=Date.now()},K=(k,E)=>{if(k>E||Y.size===0)return;let W=Date.now(),V=Z(Math.max(0,k)),f=Z(Math.min(B-1,E));for(let g=V;g<=f;g++){let t=Y.get(g);if(t)t.lastAccess=W}},I=(k,E)=>{if(_<=j)return 0;let W=Math.max(0,k-Q),V=Math.min(B-1,E+Q),f=Z(W),g=Z(V),t=0,j0=[];for(let[n,u]of Y)if(n<f||n>g)t+=u.count,j0.push(n),_-=u.count,Y.delete(n);if(t>0&&X)X(t,j0);return t},d=()=>{if(_<=j)return 0;let k=Array.from(Y.entries()).sort(([,V],[,f])=>V.lastAccess-f.lastAccess),E=0,W=[];for(let[V,f]of k){if(_<=j)break;E+=f.count,_-=f.count,W.push(V),Y.delete(V)}if(E>0&&X)X(E,W);return E},l=()=>{return{totalItems:B,cachedItems:_,cachedChunks:Y.size,chunkSize:q,maxCachedItems:j,memoryEfficiency:B>0?1-_/B:1}},q0=()=>_,i=()=>{Y.clear(),_=0};return{chunkSize:q,maxCachedItems:j,getTotal:G,setTotal:y,get:M,has:O,set:P,setRange:F,delete:R,getRange:A,isRangeLoaded:h,getLoadedRanges:w,findUnloadedRanges:v,getChunkIndex:Z,isChunkLoaded:c,touchChunk:C,touchChunksForRange:K,evictDistant:I,evictToLimit:d,getStats:l,getCachedCount:q0,clear:i,reset:()=>{i(),B=0}}};var z1=(J={})=>{let{maskCharacter:q=$1,maxSampleSize:j=b1}=J,Q=[],X=!1,Y=(D)=>{if(X||D.length===0)return;let G=Math.min(D.length,j);for(let y=0;y<G;y++){let M=D[y];if(!M||typeof M!=="object")continue;let O={},P=!1;for(let[F,R]of Object.entries(M)){if(F.startsWith("_")||F==="id")continue;O[F]=String(R??"").length,P=!0}if(P)Q.push(O)}X=!0},B=()=>X,_=(D)=>{let G={id:`${c0}${D}`,[v2]:!0,_index:D};if(Q.length===0)return G.label=q.repeat(12),G;let y=Q[D%Q.length];for(let[M,O]of Object.entries(y))G[M]=q.repeat(Math.max(1,O));return G};return{analyzeStructure:Y,hasAnalyzedStructure:B,generate:_,generateRange:(D,G)=>{let y=[];for(let M=D;M<=G;M++)y.push(_(M));return y},clear:()=>{Q=[],X=!1}}},T2=(J)=>{if(!J||typeof J!=="object")return!1;return J[v2]===!0};var OJ=50,C1=(J={})=>{let{adapter:q,initialItems:j,initialTotal:Q,storage:X,placeholder:Y,pageSize:B=OJ,onStateChange:_,onItemsLoaded:U,onItemsEvicted:Z}=J,D=w1({...X,onEvict:(x,T)=>{Z?.(x),C()}}),G=null,y=()=>{if(!G)G=z1(Y);return G},M=new Map,O=!1,P,F=!0,R,A,h=[],w=0,v=new Map,c=()=>{for(let x of v.values())x[1].abort();v.clear()},C=()=>{_?.(E())},K=()=>{M.clear();let x=D.getLoadedRanges();for(let T of x)for(let S=T.start;S<=T.end;S++){let r=D.get(S);if(r&&!T2(r))M.set(r.id,S)}},I=(x,T)=>{if(!T2(T))M.set(T.id,x)},d=(x)=>{M.delete(x)},l=(x,T)=>{return`${x}-${T}`},q0=()=>D.getTotal(),i=()=>D.getCachedCount(),m=()=>O,k=()=>F,E=()=>({total:D.getTotal(),cached:D.getCachedCount(),isLoading:O,pendingRanges:h,error:P,hasMore:F,cursor:R}),W=()=>D,V=()=>y(),f=(x)=>{let T=D.get(x);if(T!==void 0)return T;if(x>=0&&x<D.getTotal())return y().generate(x);return},g=(x)=>{let T=M.get(x);if(T===void 0)return;return D.get(T)},t=(x)=>{return M.get(x)??-1},j0=(x)=>{let T=D.get(x);return T!==void 0&&!T2(T)},n=(x,T)=>{let S=[],r=D.getTotal();D.touchChunksForRange(x,Math.min(T,r-1));for(let e=x;e<=T&&e<r;e++){let N0=D.get(e);if(N0!==void 0)S.push(N0);else S.push(y().generate(e))}return S},u=(x)=>{D.setTotal(x),F=D.getCachedCount()<x,C()},N=(x,T=0,S)=>{if(q&&x.length>0){let r=y();if(!r.hasAnalyzedStructure())r.analyzeStructure(x)}for(let r=0;r<x.length;r++){let e=x[r];if(e!==void 0){let N0=T+r;D.set(N0,e),I(N0,e)}}if(S!==void 0)D.setTotal(S);else if(T+x.length>D.getTotal())D.setTotal(T+x.length);if(D.getCachedCount()>=D.getTotal()&&D.getTotal()>0)F=!1;C(),U?.(x,T,D.getTotal())},p=(x,T)=>{let S=D.get(x);if(!S)return!1;let r=S.id,e={...S,...T};if(D.set(x,e),T.id!==void 0&&T.id!==r)d(r);return I(x,e),C(),!0},z=(x)=>{let T=M.get(x);if(T===void 0)return!1;if(!D.delete(T))return!1;return K(),c(),C(),!0},b=async(x,T)=>{if(!q)return;let S=D.chunkSize,r=Math.floor(x/S),e=Math.floor(T/S),N0=S*2;for(let[_0,W0]of v){let F0=_0.indexOf("-"),$0=parseInt(_0.slice(0,F0),10);if(Math.abs($0-x)>N0)W0[1].abort(),v.delete(_0)}let U0=[],Z0=[];for(let _0=r;_0<=e;_0++){let W0=_0*S,F0=W0+S-1,$0=l(W0,F0);if(D.isChunkLoaded(_0))continue;let E0=v.get($0);if(E0)Z0.push(E0[0]);else U0.push({start:W0,end:F0})}if(U0.length===0)return;for(let _0 of U0){let W0=l(_0.start,_0.end),F0=new AbortController,$0=(async()=>{h.push(_0),O=!0,P=void 0,C();try{let E0=_0.end-_0.start+1,P0={offset:_0.start,limit:E0,cursor:_0.start===A?R:void 0,signal:F0.signal},k0=await q.read(P0);if(N(k0.items,_0.start,k0.total),k0.cursor)R=k0.cursor,A=_0.start+k0.items.length;let D0=_0.start+k0.items.length;if(D0>=w){if(w=D0,k0.hasMore!==void 0)F=k0.hasMore;else if(k0.total!==void 0)F=D0<k0.total}}catch(E0){if(E0?.name==="AbortError")return;P=E0 instanceof Error?E0:Error(String(E0))}finally{v.delete(W0),h=h.filter((E0)=>E0.start!==_0.start||E0.end!==_0.end),O=v.size>0,C()}})();v.set(W0,[$0,F0]),Z0.push($0)}await Promise.all(Z0)},$=async(x,T)=>{if(D.isRangeLoaded(x,T))return;await b(x,T)},L=async()=>{if(!q)return;await b(0,B-1)},H=async()=>{if(!q||O||!F)return!1;let x=D.getCachedCount(),T=D.getTotal(),S=x,r=Math.min(S+B-1,T>0?T-1:S+B-1);if(S>=T&&T>0)return F=!1,!1;return await b(S,r),D.getCachedCount()>x},a=async()=>{if(D.clear(),D.setTotal(0),M.clear(),G)G.clear();c(),h=[],O=!1,R=void 0,A=void 0,F=!0,w=0,P=void 0,C()},o=(x,T)=>{if(D.evictDistant(x,T)>0)K()},Q0=()=>{D.clear(),M.clear(),R=void 0,A=void 0,P=void 0,h=[],O=!1,C()},X0=()=>{if(D.reset(),M.clear(),G)G.clear();R=void 0,A=void 0,F=!0,w=0,P=void 0,h=[],O=!1,C()};if(j&&j.length>0)N(j,0,Q??j.length);else if(Q!==void 0)D.setTotal(Q),C();return{getState:E,getTotal:q0,getCached:i,getIsLoading:m,getHasMore:k,getStorage:W,getPlaceholders:V,getItem:f,getItemById:g,getIndexById:t,isItemLoaded:j0,getItemsInRange:n,setTotal:u,setItems:N,updateItem:p,removeItem:z,loadRange:b,ensureRange:$,loadInitial:L,loadMore:H,reload:a,evictDistant:o,clear:Q0,reset:X0}};var h2=(J)=>{let{adapter:q,loading:j,storage:Q,total:X,autoLoad:Y=!0}=J,B=j?.cancelThreshold??H1,_=j?.preloadThreshold??k1,U=j?.preloadAhead??T1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(Z){let{emitter:D}=Z,G=Z.config.reverse,y=Z.methods.get("_getGridLayout"),M=(E)=>{let W=Z.methods.get("_getGroupBridge");if(W){let V=W();if(V&&V.groupCount>0){let f=V.layoutToDataIndex(E.start),g=V.layoutToDataIndex(E.end);if(f<0){for(let t=E.start+1;t<=E.end;t++)if(f=V.layoutToDataIndex(t),f>=0)break}if(g<0){for(let t=E.end-1;t>=E.start;t--)if(g=V.layoutToDataIndex(t),g>=0)break}if(f>=0&&g>=0)return{start:f,end:g}}}if(y){let V=y();if(V){let f=Z.dataManager.getTotal();return V.getItemRange(E.start,E.end,f)}}return E};Z.methods.set("_isAsync",()=>!0);let O=null;Z.methods.set("_onItemsLoaded",(E)=>{(O??=[]).push(E)});let P=(E)=>{D.emit("error",{error:E,context:"ensureRange"})},F=(E)=>{D.emit("error",{error:E,context:"loadMore"})},R=(E,W)=>Z.dataManager.ensureRange(E,W),A=(E,W=C2)=>{D.emit("load:start",{offset:E,limit:W})},h=C1({adapter:q,...X!==void 0&&{initialTotal:X},pageSize:Q?.chunkSize??C2,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(Z.state.isInitialized){let E=Z.getVirtualTotal();if(E!==Z.sizeCache.getTotal())Z.sizeCache.rebuild(E);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:(E,W,V)=>{if(Z.state.isInitialized){if(O)for(let f of O)f(E,W,V);Z.forceRender(),D.emit("load:end",{items:E,total:V,offset:W})}}});Z.replaceDataManager(h);let w=null,v=null,c=0,C=!1,K=null,I=120,d=(E=!1)=>{if(C=!1,v=null,E)w=null;if(K!==null)clearTimeout(K),K=null},l=()=>{if(!v)return;v=null;let{renderRange:E}=Z.state.viewportState;if(E.end<E.start)return;w=null;let W=M(E);R(W.start,W.end).catch(P)};Z.afterScroll.push((E,W)=>{if(Z.state.isDestroyed)return;let V=Z.scrollController.getVelocity(),g=Z.scrollController.isTracking()&&V<=B;if(c>B&&V<=B)C=!0;else if(C&&V>B)d();if(C&&V<0.5)d(!0);if(c=V,(Z.scrollController.isAtTop()||Z.scrollController.isAtBottom())&&(C||v))d(!0),g=!0;let j0=C&&V>0.5;if(g&&!Z.dataManager.getIsLoading()&&Z.dataManager.getHasMore()){if(G?E<z2:Z.state.viewportState.totalSize-E-Z.state.viewportState.containerSize<z2)A(Z.dataManager.getCached()),Z.dataManager.loadMore().catch(F)}let{renderRange:n}=Z.state.viewportState;if(!w||n.start!==w.start||n.end!==w.end){if(w={start:n.start,end:n.end},g&&!j0){if(v=null,K!==null)clearTimeout(K),K=null;let N=M(n),p=N.start,z=N.end,b=y?Z.dataManager.getTotal():Z.getVirtualTotal();if(V>_)if(W==="down")z=Math.min(N.end+U,b-1);else p=Math.max(N.start-U,0);R(p,z).catch(P)}else if(v={start:n.start,end:n.end},j0){if(K!==null)clearTimeout(K);K=setTimeout(()=>{K=null,l(),d()},I)}}});let q0=200,i=null;Z.afterScroll.push((E,W)=>{if(i!==null)clearTimeout(i);i=setTimeout(()=>{i=null,l(),d()},q0)}),Z.destroyHandlers.push(()=>{if(i!==null)clearTimeout(i),i=null;d()});let m=()=>{if(Z.state.isDestroyed)return;w=null;let{renderRange:E}=Z.state.viewportState;if(E.end>0){let W=M(E);R(W.start,W.end).catch(P)}l()};window.addEventListener("online",m),Z.destroyHandlers.push(()=>{window.removeEventListener("online",m)}),D.on("load:start",()=>{Z.dom.root.setAttribute("aria-busy","true")}),D.on("load:end",()=>{Z.dom.root.removeAttribute("aria-busy")}),Z.methods.set("loadVisibleRange",async()=>{w=null,v=null,Z.forceRender();let{renderRange:E}=Z.state.viewportState;if(E.end>0){let W=M(E);A(W.start,W.end-W.start+1),await R(W.start,W.end)}}),Z.methods.set("reload",async(E)=>{w=null,v=null;let W=E?.snapshot,V=W!=null&&(W.total??0)>0&&W.index>0,f=V||E?.skipInitialLoad===!0;if(Z.invalidateRendered(),await Z.dataManager.reload(),!V)Z.scrollController.scrollTo(0);if(!f){A(0),await Z.dataManager.loadInitial(),Z.forceRender();let{renderRange:g}=Z.state.viewportState;if(g.end>0){let t=M(g);await R(t.start,t.end)}}if(V){let g=Z.methods.get("restoreScroll");if(g)g(W)}});let k=!1;if(Z.methods.set("_cancelAutoLoad",()=>{k=!0}),Y)queueMicrotask(()=>{if(k)return;A(0),Z.dataManager.loadInitial().catch((E)=>{D.emit("error",{error:E,context:"loadInitial"})})});else if(X!==void 0)Z.dataManager.setTotal(X)}}};var H2=(J)=>J==null?0:typeof J==="function"?J():J,I2=(J)=>{let q,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(Q){let{dom:X,state:Y,config:B,emitter:_}=Q,U=B.horizontal,Z=window;if(X.root.style.overflow="visible",X.root.style.height="auto",U)X.viewport.style.overflowX="visible",X.viewport.style.overflowY="visible";else X.viewport.style.overflow="visible";if(X.viewport.classList.remove(`${B.classPrefix}-viewport--custom-scrollbar`),Q.disableViewportResize(),Q.disableWheelHandler(),Q.setScrollTarget(Z),Q.setScrollFns(()=>{let M=X.viewport.getBoundingClientRect();return Math.max(0,U?-M.left:-M.top)},(M)=>{let O=X.viewport.getBoundingClientRect(),P=(U?O.left+Z.scrollX:O.top+Z.scrollY)+M;if(U)Z.scrollTo({left:P,top:Z.scrollY,behavior:"instant"});else Z.scrollTo({left:Z.scrollX,top:P,behavior:"instant"})}),Q.setContainerDimensions({width:()=>Z.innerWidth,height:()=>Z.innerHeight}),Y.viewportState.containerSize=Z.innerHeight,j){let M=Q.getItemToScrollIndexFn();Q.setScrollToPosFn((O,P,F,R,A)=>{let h=H2(U?j.left:j.top),w=H2(U?j.right:j.bottom);if(R===0)return 0;let v=Math.max(0,Math.min(O,R-1)),c=P.getOffset(v),C=P.getSize(v),K=P.getTotalSize(),I=Math.max(0,K-F+w),d=A==="start"?c-h:A==="center"?c-h-(F-h-w-C)/2:c-F+C+w;return Math.max(-h,Math.min(d,I))}),Q.methods.set("_scrollItemIntoView",(O)=>{let P=M(O),F=U?Z.innerWidth:Z.innerHeight,R=H2(U?j.left:j.top),A=H2(U?j.right:j.bottom),h=X.viewport.getBoundingClientRect(),w=U?Z.scrollX:Z.scrollY,v=U?h.left:h.top,c=v+w,C=Q.sizeCache.getOffset(P),K=Q.sizeCache.getSize(P),I=v+C,d=F-A,l=w;if(I<R)l=c+C-R;else if(I+K>d)l=c+C+K-d;if(l!==w)if(U)Z.scrollTo({left:l,top:Z.scrollY,behavior:"instant"});else Z.scrollTo({left:Z.scrollX,top:l,behavior:"instant"})})}let{innerHeight:D,innerWidth:G}=Z,y=()=>{let{innerWidth:M,innerHeight:O}=Z;if(Math.abs(U?M-G:O-D)>1){D=O,G=M,Y.viewportState.containerSize=O,_.emit("resize",{width:M,height:O});for(let P=0;P<Q.resizeHandlers.length;P++)Q.resizeHandlers[P](M,O);Q.renderIfNeeded()}};Z.addEventListener("resize",y),q=()=>Z.removeEventListener("resize",y),Q.destroyHandlers.push(q)},destroy(){q?.(),q=void 0}}};var a0=(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},v1=(J,q,j)=>{if(J===0)return[];let Q=[],X=q(0,j?.(0)),Y=0,B=0;for(let _=1;_<J;_++){let U=q(_,j?.(_));if(U!==X){let Z=_-Y;Q.push({key:X,groupIndex:Q.length,headerLayoutIndex:B,firstDataIndex:Y,count:Z}),B=B+1+Z,X=U,Y=_}}return Q.push({key:X,groupIndex:Q.length,headerLayoutIndex:B,firstDataIndex:Y,count:J-Y}),Q},p2=(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 B=0;B<Y.count;B++)Q[X]=J[Y.firstDataIndex+B],X++}return Q};var S1=(J,q,j)=>{let Q=v1(J,q.getGroupForIndex,j),X=J+Q.length,Y=q.header?.height??q.header?.width??q.headerHeight;return{get totalEntries(){return X},get groupCount(){return Q.length},get groups(){return Q},getEntry:(M)=>{if(Q.length===0)return{type:"item",dataIndex:M,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let O=a0(Q,M),P=Q[O];if(M===P.headerLayoutIndex)return{type:"header",group:P};let F=M-P.headerLayoutIndex-1;return{type:"item",dataIndex:P.firstDataIndex+F,group:P}},layoutToDataIndex:(M)=>{if(Q.length===0)return M;let O=a0(Q,M),P=Q[O];if(M===P.headerLayoutIndex)return-1;let F=M-P.headerLayoutIndex-1;return P.firstDataIndex+F},dataToLayoutIndex:(M)=>{if(Q.length===0)return M;let O=_2(Q,M),P=Q[O],F=M-P.firstDataIndex;return P.headerLayoutIndex+1+F},getGroupAtLayoutIndex:(M)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let O=a0(Q,M);return Q[O]},getGroupAtDataIndex:(M)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let O=_2(Q,M);return Q[O]},getHeaderHeight:typeof Y==="number"?(M)=>Y:(M)=>{let O=Q[M];if(!O)return 0;return Y(O.key,M)},rebuild:(M,O)=>{Q=v1(M,q.getGroupForIndex,O??j),X=M+Q.length}}};var u2=(J,q,j,Q,X=0)=>{let Y=j?"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;"+(j?`top:0;bottom:0;left:${X||0}px`:`top:${X||0}px`),B.style[Y]=`${Q}px`,J.insertBefore(B,J.firstChild),B},g2=(J,q,j,Q,X,Y=!1,B=0,_,U)=>{let Z=Y?"width":"height",D=Y?"height":"width",G=Y?"X":"Y",y=($,L)=>{$.style[Z]=`${L}px`},M=U??u2(J,X,Y,0,B),O=()=>{let $=document.createElement("div");return $.className="sticky-group",$.style.position="absolute",$.style.willChange="transform",$.style[D]="100%",$},P=O(),F=O();M.append(P,F);let R=P,A=F,h=q.groups,w=[],v=[],c=[],C=0,K=()=>{h=q.groups,C=h.length,w=Array(C),v=Array(C),c=Array(C);let $=_?_():1;for(let L=0;L<C;L++)w[L]=j.getOffset(h[L].headerLayoutIndex)*$,v[L]=q.getHeaderHeight(L),c[L]=v[L]*$};K();let I=-1,d=0,l=0,q0=-1,i=!1,m=0,k=!1,E=($,L)=>{Q($,L);let H=v[L];return y($,H),H},W=($)=>{$.replaceChildren(),$.style.transform=""},V=($)=>{if($===I)return;if(I=$,d=0,l=0,$<0||$>=C){W(R);return}d=E(R,$),l=c[$],y(M,d),R.style.transform=""},f=($)=>{if($===m)return;m=$;let L=Math.round($);R.style.transform=`translate${G}(${L}px)`,A.style.transform=`translate${G}(${L+d}px)`},g=()=>{m=0,R.style.transform="",A.style.transform=""},t=()=>{if(!k)return;let $=R;R=A,A=$,I=q0,d=I>=0?v[I]:0,l=I>=0?c[I]:0,y(M,d),W(A),q0=-1,k=!1,g()},j0=()=>{if(!k)return;W(A),q0=-1,k=!1,g()},n=!!U,u=()=>{if(i)return;if(i=!0,n)M.style.visibility="";else M.style.display=""},N=()=>{if(!i)return;if(i=!1,n)M.style.visibility="hidden";else M.style.display="none";W(R),I=-1,d=0,l=0,j0()},p=($)=>{if(C===0){N();return}if($<w[0]){N();return}let L=0,H=C-1;while(L<H){let o=L+H+1>>>1;if(w[o]+c[o]<=$)L=o;else H=o-1}if(!i)u();V(L);let a=L+1;if(a<C){let o=w[a]-$;if(o<=0&&o>-l){if(q0!==a||!k)q0=a,E(A,a),k=!0;let Q0=l>0?o/l*d:o;f(Q0)}else if(o<=-l){if(k)t()}else if(k)j0()}else if(k)j0()},z=()=>{K();let $=I;if(I=-1,d=0,l=0,$>=0)V($)},b=()=>{M.remove(),I=-1,d=0,l=0,q0=-1,i=!1,k=!1};if(!U)M.style.display="none";return{update:p,refresh:z,show:u,hide:N,destroy:b}};var m0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var f1={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},h1=(J,q,j)=>{let Q=[],X=0,Y=0,B=new Map,_=()=>{if(Q=[],X===0||B.size===0){Y=X;return}let A=null,h=-1,w=0;for(let v=0;v<X;v++){let c=B.get(v);if(c===void 0){if(A!==null&&h>=0){let C=v-h;Q.push({key:A,groupIndex:Q.length,headerLayoutIndex:h+w,firstDataIndex:h,count:C}),w++,A=null,h=-1}continue}if(c!==A){if(A!==null&&h>=0){let C=v-h;Q.push({key:A,groupIndex:Q.length,headerLayoutIndex:h+w,firstDataIndex:h,count:C}),w++}A=c,h=v}}if(A!==null&&h>=0){let v=X-h;Q.push({key:A,groupIndex:Q.length,headerLayoutIndex:h+w,firstDataIndex:h,count:v}),w++}Y=X+w};return{onItemsLoaded:(A,h,w)=>{X=w;for(let v=0;v<A.length;v++){let c=h+v,C=A[v];if(C!==void 0){let K=J.getGroupForIndex(c,C);B.set(c,K)}}_()},get totalEntries(){return Y},get groupCount(){return Q.length},get groups(){return Q},isHeader:(A)=>{if(Q.length===0)return!1;let h=a0(Q,A),w=Q[h];return A===w.headerLayoutIndex},getHeaderItem:(A)=>{if(Q.length===0)return;let h=a0(Q,A),w=Q[h];if(A!==w.headerLayoutIndex)return;return{id:`__group_header_${w.groupIndex}`,__groupHeader:!0,groupKey:w.key,groupIndex:w.groupIndex}},layoutToDataIndex:(A)=>{if(Q.length===0)return A;let h=a0(Q,A),w=Q[h];if(A===w.headerLayoutIndex)return-1;let v=A-w.headerLayoutIndex-1;return w.firstDataIndex+v},dataToLayoutIndex:(A)=>{if(Q.length===0)return A;let h=_2(Q,A),w=Q[h],v=A-w.firstDataIndex;return w.headerLayoutIndex+1+v},getHeaderHeight:(A)=>J.headerHeight,getGroupAtLayoutIndex:(A)=>{if(Q.length===0)return f1;let h=a0(Q,A);return Q[h]},getGroupAtDataIndex:(A)=>{if(Q.length===0)return f1;let h=_2(Q,A);return Q[h]},removeAt:(A)=>{let h=new Map;for(let[w,v]of B)if(w<A)h.set(w,v);else if(w>A)h.set(w-1,v);B.clear();for(let[w,v]of h)B.set(w,v);X--,_()},reset:()=>{Q=[],X=0,Y=0,B.clear()}}};var I1=(J,q,j,Q,X,Y)=>{if(Q===0)return 0;let B=Math.max(0,Math.min(J,Q-1)),_=q.getOffset(B),U=q.getSize(B),Z=q.getTotalSize(),D=Math.max(0,Z-j),G;switch(Y){case"center":G=_-j/2+U/2;break;case"end":G=_-j+U;break;case"start":default:G=_;break}return Math.max(0,Math.min(G,D))};var V2=(J,q,j,Q,X="start",Y,B=I1)=>{return B(J,q,j,Q,Y,X)};var AJ=(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},m2=(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(B){let{dom:_,config:U,rawConfig:Z}=B,{classPrefix:D}=U,G=AJ(J,U.horizontal),M=Z.item.height,O=G.sticky!==!1,{template:P}=G.header;_.root.classList.add(`${D}--grouped`);let F=null;if(O)if(B.methods.set("_getStickyHeaderHeight",()=>G.header.height),F=u2(_.root,D,U.horizontal,G.header.height),!U.horizontal)_.viewport.style.height=`calc(100% - ${G.header.height}px)`;else _.viewport.style.width=`calc(100% - ${G.header.height}px)`;let{animateScroll:R,cancelScroll:A}=q2(B.scrollController,B.renderIfNeeded),h=null;B.methods.set("scrollToIndex",(v,c)=>{let C=h??X;if(!C)return;let K=C.dataToLayoutIndex(v),{align:I,behavior:d,duration:l}=s0(c),q0=B.dataManager.getTotal(),i=B.adjustScrollPosition(V2(K,B.sizeCache,B.state.viewportState.containerSize,q0,I,B.getCachedCompression()));if(d==="smooth")R(B.scrollController.getScrollTop(),i,l);else A(),B.scrollController.scrollTo(i)}),B.destroyHandlers.push(()=>{if(A(),Y)Y.destroy(),Y=null;else if(F)F.remove();_.root.classList.remove(`${D}--grouped`)});let w=null;B.methods.set("_getGroupBridge",()=>w),queueMicrotask(()=>{let v=B.methods.get("_onItemsLoaded");if(v)LJ(B,G,U,Z,M,O,P,D,v,(c)=>{w=c,h=c},(c)=>{Y=c},F)}),EJ(B,G,U,Z,M,O,P,D,(v)=>{X=v,h=v},(v)=>{Y=v},F)},destroy(){if(Y)Y.destroy(),Y=null}}};function EJ(J,q,j,Q,X,Y,B,_,U,Z,D){let{dom:G}=J,y=null,M=Q.items?[...Q.items]:[],O=M.length,P={getGroupForIndex:q.getGroupForIndex,header:{height:q.header.height}},F=(W)=>M[W],R=S1(O,P,F);U(R);let A=p2(M,R.groups),h=typeof X==="number"?(W)=>X:X,w=(W)=>{let V=R.layoutToDataIndex(W);if(V<0){let f=R.getGroupAtLayoutIndex(W);if(Y&&f.groupIndex===0)return 0;return R.getHeaderHeight(f.groupIndex)}return h(V)};J.setSizeConfig(w),J.rebuildSizeCache(A.length),J.dataManager.setItems(A,0,A.length);let v=Q.item.template,c=(W,V,f)=>{if(m0(W))return B(W.groupKey,W.groupIndex);return v(W,V,f)},C=J.methods.get("_getGridLayout"),K=J.methods.get("_replaceGridRenderer"),I=J.methods.get("_updateGridLayoutForGroups"),d=J.methods.get("_createGridRenderer"),l=J.methods.get("_getTableLayout"),q0=J.methods.get("_updateTableForGroups");if(C&&K&&d){if(I)I((f)=>{let g=A[f];return!!(g&&m0(g))});let W=C(),V=d(G.items,c,J.sizeCache,W,_,J.getContainerWidth(),()=>M.length,j.ariaIdPrefix,j.horizontal,(f)=>R.layoutToDataIndex(f)+1);K(V)}else if(l&&q0)q0((W)=>m0(W),q.header.template);else J.replaceTemplate(c);let i=()=>{if(!Y||y)return;if(R.groupCount===0)return;let W=q.header.template,V=(g,t)=>{let j0=R.groups[t];if(!j0)return;let n=W(j0.key,j0.groupIndex);if(typeof n==="string")g.innerHTML=n;else g.replaceChildren(n)},f=g2(G.root,R,J.sizeCache,V,_,j.horizontal,0,()=>J.getCachedCompression().ratio,D??void 0);y=f,Z(f),J.afterScroll.push((g,t)=>{f.update(g)}),f.update(J.scrollController.getScrollTop())};i();let m=Q.item?.striped,k=()=>{if(m!=="data"&&m!=="even"&&m!=="odd")return;let W=new Int32Array(A.length),V=m==="odd"?1:0,f=0;for(let g=0;g<A.length;g++)if(m0(A[g])){if(W[g]=-1,m==="even"||m==="odd")f=0}else W[g]=f+++V;J.setStripeIndexFn((g)=>{if(g<0||g>=W.length)return g;return W[g]})};k();let E=()=>{if(R.rebuild(M.length,F),A=p2(M,R.groups),J.rebuildSizeCache(A.length),J.dataManager.setItems(A,0,A.length),k(),i(),y)y.refresh()};J.methods.set("setItems",(W)=>{M=W.slice(),E()}),J.methods.set("appendItems",(W)=>{M.push(...W),E()}),J.methods.set("prependItems",(W)=>{M.unshift(...W),E()}),J.methods.set("removeItem",(W)=>{M=M.filter((V)=>V.id!==W),E()}),J.methods.set("_getItems",()=>M),J.methods.set("_getTotal",()=>M.length),J.methods.set("_isGroupHeader",(W)=>{let V=A[W];return!!(V&&m0(V))}),J.methods.set("_layoutToDataIndex",(W)=>R.layoutToDataIndex(W)),J.methods.set("_dataToLayoutIndex",(W)=>R.dataToLayoutIndex(W))}function LJ(J,q,j,Q,X,Y,B,_,U,Z,D,G){let{dom:y}=J,M=J.dataManager,O=h1({getGroupForIndex:q.getGroupForIndex,headerHeight:q.header.height});Z(O);let P=typeof X==="number"?(C)=>X:X,F=(C)=>{if(O.isHeader(C)){if(Y&&O.getGroupAtLayoutIndex(C).groupIndex===0)return 0;return q.header.height}let K=O.layoutToDataIndex(C);return K>=0?P(K):P(C)};J.setSizeConfig(F),J.setVirtualTotalFn(()=>O.totalEntries||M.getTotal());let R={...M,getTotal:()=>O.totalEntries,getIndexById:(C)=>{let K=M.getIndexById(C);if(K<0)return-1;return O.dataToLayoutIndex(K)},getItem:(C)=>{let K=O.getHeaderItem(C);if(K)return K;let I=O.layoutToDataIndex(C);if(I>=0)return M.getItem(I);return M.getItem(C)},getItemsInRange:(C,K)=>{let I=[];for(let d=C;d<=K;d++){let l=R.getItem(d);if(l!==void 0)I.push(l)}return I},isItemLoaded:(C)=>{if(O.isHeader(C))return!0;let K=O.layoutToDataIndex(C);if(K>=0)return M.isItemLoaded(K);return M.isItemLoaded(C)},reload:()=>{return O.reset(),M.reload()},removeItem:(C)=>{let K=M.getIndexById(C);if(K>=0)O.removeAt(K);return M.removeItem(C)},clear:()=>{O.reset(),M.clear()},reset:()=>{O.reset(),M.reset()}};J.replaceDataManager(R);let A=Q.item.template,h=J.methods.get("_updateTableForGroups");if(h)h((C)=>m0(C),q.header.template);J.replaceTemplate((C,K,I)=>{if(m0(C))return B(C.groupKey,C.groupIndex);return A(C,K,I)});let w=null;if(Y){let C=q.header.template,K=(l,q0)=>{let i=O.groups[q0];if(!i)return;let m=C(i.key,i.groupIndex);if(typeof m==="string")l.innerHTML=m;else l.replaceChildren(m)},I={get groups(){return O.groups},getHeaderHeight:(l)=>O.getHeaderHeight(l)};w=g2(y.root,I,J.sizeCache,K,_,j.horizontal,0,()=>J.getCachedCompression().ratio,G??void 0),D(w);let d=w;J.afterScroll.push((l,q0)=>{d.update(l)})}let v=-1;J.methods.set("_ensureTailLoaded",()=>{let C=M.getTotal();if(C<=0)return;let K=C-1;if(M.isItemLoaded(K))return;v=K,M.ensureRange(K,K)}),U((C,K,I)=>{let d=J.scrollController.getScrollTop(),l=O.groupCount,q0=O.totalEntries||I,i=0,m=0,k=J.methods.get("_restoreAnchor");if(k)i=k.dataIndex,m=k.fraction;else if(d>0){let V=J.getCachedCompression(),f=V.ratio!==1?d/V.ratio:d,g=J.sizeCache.indexAtOffset(f);if(i=O.layoutToDataIndex(g),i<0&&g+1<O.totalEntries)g=g+1,i=O.layoutToDataIndex(g);let t=J.sizeCache.getOffset(g),j0=J.sizeCache.getSize(g);m=j0>0?(f-t)/j0:0}O.onItemsLoaded(C,K,I),J.rebuildSizeCache(O.totalEntries);let E=J.getCachedCompression();if(J.updateContentSize(E.virtualSize),O.groupCount-l>0&&(d>0||k)){if(k?.skipAdjust);else if(i>=0){let V=O.dataToLayoutIndex(i),f=J.sizeCache.getOffset(V),g=J.sizeCache.getSize(V),t=f+m*g,j0=E.ratio!==1?t*E.ratio:t;if(Math.abs(j0-d)>1)J.scrollController.scrollTo(j0);if(k){J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave");let n=J.methods.get("_saveSnapshot");if(n)n()}}}else if(k){let V=k.skipAdjust;if(J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave"),!V){let f=J.methods.get("_saveSnapshot");if(f)f()}}if(w)w.refresh(),w.update(J.scrollController.getScrollTop());if(v>=0&&M.isItemLoaded(v)){let V=O.dataToLayoutIndex(v);v=-1;let f=J.methods.get("_getFocusedIndex"),g=f?f():-1;if(g>=0&&g>=q0-1&&V!==g){let t=V;while(t>0&&O.isHeader(t))t--;let j0=J.methods.get("_setFocusedIndex");if(j0)j0(t)}}}),J.methods.set("_isGroupHeader",(C)=>O.isHeader(C)),J.methods.set("_layoutToDataIndex",(C)=>O.layoutToDataIndex(C)),J.methods.set("_dataToLayoutIndex",(C)=>O.dataToLayoutIndex(C)),J.methods.set("_getTotal",()=>M.getTotal()),J.methods.delete("removeItem");let c=Q.item?.striped;if(c==="data"||c==="even"||c==="odd"){let C=c==="odd"?1:0;J.setStripeIndexFn((K)=>{if(O.isHeader(K))return-1;let I=O.layoutToDataIndex(K);return I>=0?I+C:K})}}var p1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.isHeaderFn,X={row:0,col:0},Y=(O)=>{if(O<=0)return 0;if(!Q)return Math.ceil(O/q);let P=0,F=0,R=0;for(let A=0;A<O;A++)if(Q(A)){if(R++,F)P++,F=0;P++,F=0}else if(F++,F>=q)P++,F=0;if(F)P++;return P},B=(O)=>{return X.row=_(O),X.col=U(O),X},_=(O)=>{if(!Q)return Math.floor(O/q);let P=0,F=0;for(let R=0;R<=O;R++)if(Q(R)){if(F)P++,F=0;if(R===O)return P;P++,F=0}else{if(R===O)return P;if(F++,F>=q)P++,F=0}return console.warn(`⚠️ getRow(${O}) fell through - returning ${P}`),P},U=(O)=>{if(!Q)return O%q;if(Q(O))return 0;let P=0;for(let F=0;F<=O;F++)if(Q(F))P=0;else{if(F===O)return P;if(P++,P>=q)P=0}return P},Z=(O,P,F)=>{if(F<=0)return{start:0,end:-1};if(!Q){let v=Math.max(0,O*q),c=Math.min(F-1,(P+1)*q-1);return{start:v,end:c}}let R=-1,A=-1,h=0,w=0;for(let v=0;v<F;v++){if(Q(v)){if(w)h++,w=0;if(h>=O&&h<=P){if(R<0)R=v;A=v}h++,w=0}else{if(h>=O&&h<=P){if(R<0)R=v;A=v}if(w++,w>=q)h++,w=0}if(h>P&&!w)break}if(R<0)return{start:0,end:-1};return{start:R,end:A}},D=(O,P,F)=>{if(P<0||P>=q)return-1;let R=O*q+P;if(R<0||R>=F)return-1;return R},G=(O)=>{let P=(q-1)*j;return Math.max(0,(O-P)/q)};return{get columns(){return q},get gap(){return j},update:(O)=>{if(O.columns!==void 0)q=Math.max(1,Math.floor(O.columns));if(O.gap!==void 0)j=O.gap;if(O.isHeaderFn!==void 0)Q=O.isHeaderFn},getTotalRows:Y,getPosition:B,getRow:_,getCol:U,getItemRange:Z,getItemIndex:D,getColumnWidth:G,getColumnOffset:(O,P)=>{let F=G(P);return O*(F+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},u1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1});var FJ=(J=200)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let B=document.createElement("div");return B.setAttribute("role","option"),B},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}}},TJ=1,x2=(J,q,j,Q,X,Y,B,_,U=!1,Z)=>{let D=FJ(),G=new Map,y=Y,M=!1,O=0,P="",F=-1,R={selected:!1,focused:!1},A=(u,N)=>{return R.selected=u,R.focused=N,R},h=`${X}-item ${X}-grid-item`,w=`${X}-group-header`,v=`${X}-item--selected`,c=`${X}-item--focused`,C=`${X}-item--placeholder`,K=`${X}-item--replaced`,I=(u,N)=>{if(typeof N==="string")u.innerHTML=N;else u.replaceChildren(N)},d=(u,N,p)=>{u.classList.toggle(v,N),u.classList.toggle(c,p)},l=(u,N)=>{let p=Q.getRow(u);if(N?.compression?.isCompressed)return F2(p,N.scrollPosition,j,N.totalItems,N.containerSize,N.compression,N.rangeStart);return j.getOffset(p)},q0=(u,N)=>{let p=Q.getCol(u),b=M&&p===0?0:Q.getColumnOffset(p,y),$;if(M){let L=Q.getRow(u),H=0,a=-1;for(let o=0;o<u;o++){let Q0=Q.getRow(o);if(Q0<L&&Q0!==a){let X0=j.getSize(o);H+=X0,a=Q0}}$=H}else $=l(u,N);if(U)return`translate(${Math.round($)}px, ${Math.round(b)}px)`;return`translate(${Math.round(b)}px, ${Math.round($)}px)`},i=(u,N)=>{let p=u.classList.contains(w),z=p?y:Q.getColumnWidth(y),b;if(M||p)b=j.getSize(N)-Q.gap;else{let $=Q.getRow(N);b=j.getSize($)-Q.gap}if(U)u.style.width=`${b}px`,u.style.height=`${z}px`;else u.style.width=`${z}px`,u.style.height=`${b}px`},m=(u,N,p,z,b)=>{let $=D.acquire(),L=!!N.__groupHeader,H=A(p,z);if($.className=L?w:h,$.dataset.index=String(u),$.dataset.id=String(N.id),$.dataset.row=String(Q.getRow(u)),$.dataset.col=String(Q.getCol(u)),L)$.setAttribute("role","presentation"),$.removeAttribute("aria-selected"),$.removeAttribute("aria-setsize"),$.removeAttribute("aria-posinset"),$.removeAttribute("id");else{if($.setAttribute("role","option"),$.ariaSelected=String(p),_)$.id=`${_}-item-${u}`;if(B){let Q0=B();if(Q0!==F)F=Q0,P=String(Q0);$.setAttribute("aria-setsize",P);let X0=Z?Z(u):u+1;$.setAttribute("aria-posinset",String(X0))}}i($,u);let a=q(N,u,H);if(I($,a),String(N.id).startsWith(c0))$.classList.add(C);return d($,p,z),$.style.transform=b,{element:$,lastItemId:N.id,lastSelected:p,lastFocused:z,lastTransform:b,lastSeenFrame:O}},k=(u,N,p,z,b)=>{if(O++,N.start===0&&u.length)M=m0(u[0]);for(let[H,a]of G)if(H>=N.start&&H<=N.end)a.lastSeenFrame=O;else if(O-a.lastSeenFrame>TJ)D.release(a.element),G.delete(H);let $=!1;if(B){let H=B();if(H!==F)F=H,P=String(H),$=!0}let L=null;for(let H=N.start;H<=N.end;H++){let a=H-N.start,o=u[a];if(!o){console.warn(`⚠️ RENDER: Missing item at index ${H} (range: ${N.start}-${N.end}, items.length: ${u.length})`);continue}let Q0=p.has(o.id),X0=H===z,x=G.get(H);if(x){let T=x.lastItemId!==o.id,S=x.lastSelected!==Q0,r=x.lastFocused!==X0;if(T){let N0=String(x.lastItemId),U0=String(o.id),Z0=N0.startsWith(c0),_0=U0.startsWith(c0);if(!_0&&Y2(p,H,o.id))Q0=!0;let W0=A(Q0,X0),F0=q(o,H,W0);if(I(x.element,F0),x.element.dataset.id=U0,x.element.dataset.row=String(Q.getRow(H)),x.element.dataset.col=String(Q.getCol(H)),i(x.element,H),x.element.classList.toggle(C,_0),Z0&&!_0)x.element.classList.add(K),setTimeout(()=>x.element.classList.remove(K),300);if(x.lastItemId=o.id,!o.__groupHeader){let E0=Z?Z(H):H+1;x.element.setAttribute("aria-posinset",String(E0))}}if(T||S||r)d(x.element,Q0,X0),x.element.ariaSelected=String(Q0),x.lastSelected=Q0,x.lastFocused=X0;let e=q0(H,b);if(x.lastTransform!==e)x.element.style.transform=e,x.lastTransform=e;if($&&!o.__groupHeader)x.element.setAttribute("aria-setsize",P)}else{if(Y2(p,H,o.id))Q0=!0;let T=q0(H,b),S=m(H,o,Q0,X0,T);if(!L)L=document.createDocumentFragment();L.appendChild(S.element),G.set(H,S)}}if(L)J.appendChild(L)},E=(u)=>{for(let[N,p]of G){let z=q0(N,u);if(p.lastTransform!==z)p.element.style.transform=z,p.lastTransform=z}},W=(u,N,p,z)=>{let b=G.get(u);if(!b)return;let $=A(p,z),L=q(N,u,$);I(b.element,L),d(b.element,p,z),b.element.dataset.id=String(N.id),b.element.ariaSelected=String(p),i(b.element,u),b.lastItemId=N.id,b.lastSelected=p,b.lastFocused=z},V=(u,N,p)=>{let z=G.get(u);if(!z)return;let b=z.lastSelected!==N,$=z.lastFocused!==p;if(b||$)d(z.element,N,p),z.lastSelected=N,z.lastFocused=p},f=(u)=>{return G.get(u)?.element},g=(u)=>{if(Math.abs(u-y)<1)return;y=u;for(let[N,p]of G){i(p.element,N);let z=q0(N);p.element.style.transform=z,p.lastTransform=z}},t=()=>{J2(J,G.keys(),(u)=>G.get(u)?.element)},j0=()=>{for(let[,u]of G)D.release(u.element);G.clear()};return{render:k,updatePositions:E,updateItem:W,updateItemClasses:V,getElement:f,sortDOM:t,updateContainerWidth:g,clear:j0,destroy:()=>{j0(),D.clear()}}};var HJ=new Set,d2=(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:B,rawConfig:_}=Q,{classPrefix:U}=B;if(B.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let Z=B.horizontal,D=E2(p0(_.padding),Z),G=()=>{return(Z?X.viewport.clientHeight:Q.getContainerWidth())-D},y=_.items?.some((n)=>n.__groupHeader===!0),M={columns:J.columns,gap:J.gap??0};if(y)M.isHeaderFn=(n)=>{let u=Q.dataManager.getItem(n);return!!(u&&u.__groupHeader===!0)};q=p1(M);let O=q.gap;Q.setVirtualTotalFn(()=>{let n=Q.dataManager.getTotal();return q.getTotalRows(n)}),Q.setItemToScrollIndexFn((n)=>Math.floor(n/M.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>Z?{ud:1,lr:M.columns,cols:M.columns}:{ud:M.columns,lr:1,cols:M.columns});let P=_.item,F=B.horizontal?P.width:P.height,R={containerWidth:G(),columns:q.columns,gap:q.gap},A={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof F==="function")Q.setSizeConfig((n)=>{let u=R.containerWidth-2,N=(R.columns-1)*R.gap;return A.containerWidth=R.containerWidth,A.columns=R.columns,A.gap=R.gap,A.columnWidth=(u-N)/R.columns,A.row=q.getRow(n),A.column=q.getCol(n),A.totalRows=q.getTotalRows(Q.dataManager.getTotal()),A.totalColumns=R.columns,F(n,A)+R.gap});else if(O>0)Q.setSizeConfig(F+O);if(Q.rebuildSizeCache(),O>0){let n=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let u=n();return u?u-R.gap:0}}X.root.classList.add(`${U}--grid`);let h=G(),w=_.item.template,v=Q2(Q.methods,()=>Q.dataManager.getTotal()),c=()=>{j=x2(X.items,w,Q.sizeCache,q,U,h,v.getSetSize,B.ariaIdPrefix,B.horizontal,v.getPosInSet),Q.replaceRenderer(j)};c();let C=()=>{for(let n=0;n<Q.contentSizeHandlers.length;n++)Q.contentSizeHandlers[n]()};Q.setUpdateItemClassesFn((n,u,N)=>{j?.updateItemClasses(n,u,N)}),Q.methods.set("_updateRenderedItem",(n,u,N,p)=>{j?.updateItem(n,u,N,p)}),Q.methods.set("_getGridLayout",()=>q),Q.methods.set("_getGridConfig",()=>M),Q.methods.set("_replaceGridRenderer",(n)=>{j=n}),Q.methods.set("_createGridRenderer",x2),Q.methods.set("_updateGridLayoutForGroups",(n)=>{q.update({isHeaderFn:n});let u=Q.dataManager.getTotal(),N=0;for(let p=0;p<u;p++)if(!q.getCol(p)){let z=Q.sizeCache.getSize(p);N+=z}Q.sizeCache.getTotalSize=()=>N,Q.updateContentSize(N),c()}),Q.methods.set("updateGrid",(n)=>{if(n.columns!==void 0){if(!Number.isInteger(n.columns)||n.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");M.columns=n.columns}if(n.gap!==void 0){if(n.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");M.gap=n.gap}q?.update(M);let u=G();R.containerWidth=u,R.columns=M.columns,R.gap=M.gap??0,j?.updateContainerWidth(u),Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode(),C(),j?.clear(),Q.forceRender()});let K=null,I=null,d=!1,l=()=>{if(d)return;d=!0,K=Q.methods.get("_getSelectedIds")??null,I=Q.methods.get("_getFocusedIndex")??null},q0=-1,i=-1,m=!0,k=B.overscan,E={start:0,end:0},W={start:0,end:0},V=()=>{if(Q.state.isDestroyed)return;let n=Q.scrollController.getScrollTop(),u=Q.state.viewportState.containerSize;if(!m&&n===q0&&u===i)return;q0=n,i=u,m=!1;let N=Q.getVirtualTotal();Q.getVisibleRange(n,u,N,E),W.start=Math.max(0,E.start-k),W.end=Math.min(N-1,E.end+k);let p=Q.state.viewportState;p.scrollPosition=n,p.visibleRange.start=E.start,p.visibleRange.end=E.end,p.renderRange.start=W.start,p.renderRange.end=W.end;let z=Q.state.lastRenderRange,b=p.isCompressed,$=z.start!==W.start||z.end!==W.end;if(!$&&b){j.updatePositions(Q.getCompressionContext());return}let L=q.getItemRange(W.start,W.end,Q.dataManager.getTotal()),H=Q.dataManager.getItemsInRange(L.start,L.end),a=b?Q.getCompressionContext():void 0;l();let o=K?K():HJ,Q0=I?I():-1;if(j.render(H,L,o,Q0,a),$)z.start=W.start,z.end=W.end,Y.emit("range:change",{range:{start:W.start,end:W.end}})},f=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,m=!0,V()};Q.setRenderFns(V,f);let g=typeof F==="function";Q.resizeHandlers.push((n,u)=>{let N=(Z?u:n)-D;if(Math.abs(N-R.containerWidth)<1)return;if(R.containerWidth=N,j?.updateContainerWidth(N),g)Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode(),C(),j?.clear(),Q.forceRender()});let{animateScroll:t,cancelScroll:j0}=q2(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",j0),Q.methods.set("scrollToIndex",(n,u)=>{let N=Math.floor(n/J.columns),{align:p,behavior:z,duration:b}=s0(u),$=Q.dataManager.getState(),L=q.getTotalRows($.total),H=Math.max(0,Math.min(N,L-1)),a=Q.adjustScrollPosition(V2(H,Q.sizeCache,Q.state.viewportState.containerSize,L,p,Q.getCachedCompression()));if(z==="smooth")t(Q.scrollController.getScrollTop(),a,b);else j0(),Q.scrollController.scrollTo(a)}),!Q.methods.has("_getTotal"))Q.methods.set("_getTotal",()=>Q.dataManager.getTotal());Q.methods.set("_layoutToDataIndex",(n)=>n*J.columns),Q.methods.set("_dataToLayoutIndex",(n)=>Math.floor(n/J.columns)),Q.idleHandlers.push(()=>{j?.sortDOM()}),Q.destroyHandlers.push(()=>{j0(),j?.destroy(),j=null,X.root.classList.remove(`${U}--grid`)})},destroy(){j?.destroy(),j=null}}};var g1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.containerSize,X=0,Y=[],B=()=>{let P=(q-1)*j;X=Math.max(0,(Q-P)/q),Y=Array(q);let F=X+j;for(let R=0;R<q;R++)Y[R]=R*F};B();let _=[],U=0,Z=[],D=(P,F)=>{if(P<=0)return U=0,_=[],[];let R=Array(q).fill(0),A=Array(q);for(let v=0;v<q;v++)A[v]=[];let h=Array(P);for(let v=0;v<P;v++){let c=0,C=R[0];for(let d=1;d<q;d++){let l=R[d];if(l<C)C=l,c=d}let K=F(v),I=R[c];h[v]={index:v,x:Y[c],y:I,lane:c,size:K,crossSize:X},A[c].push(v),R[c]=I+K+j}_=A;let w=0;for(let v=0;v<q;v++){let c=R[v],C=c>0?c-j:0;if(C>w)w=C}return U=w,h},G=(P)=>{if(P.length===0)return U;if(U)return U;let F=Array(q).fill(0);for(let A of P){let h=A.y+A.size,w=F[A.lane];if(h>w)F[A.lane]=h}let R=0;for(let A=0;A<q;A++)if(F[A]>R)R=F[A];return R},y=(P,F,R)=>{if(P.length===0||R<=F)return Z.length=0,Z;if(_.length===0||_.length!==q)return M(P,F,R);Z.length=0;for(let A=0;A<q;A++){let h=_[A],w=h.length;if(!w)continue;let v=0,c=w;while(v<c){let C=v+c>>>1,K=P[h[C]];if(K.y+K.size<=F)v=C+1;else c=C}for(let C=v;C<w;C++){let K=P[h[C]];if(K.y>=R)break;Z.push(K)}}return Z},M=(P,F,R)=>{Z.length=0;for(let A of P)if(A.y+A.size>F&&A.y<R)Z.push(A);return Z};return{get columns(){return q},get gap(){return j},get containerSize(){return Q},update:(P)=>{let F=!1;if(P.columns!==void 0){let R=Math.max(1,Math.floor(P.columns));if(R!==q)q=R,F=!0}if(P.gap!==void 0&&P.gap!==j)j=P.gap,F=!0;if(P.containerSize!==void 0&&P.containerSize!==Q)Q=P.containerSize,F=!0;if(F)B()},calculateLayout:D,getTotalSize:G,getVisibleItems:y}};var kJ=(J=200)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let B=document.createElement("div");return B.setAttribute("role","option"),B},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}}},$J=1,m1=(J,q,j,Q=!1,X,Y,B)=>{let _=kJ(),U=new Map,Z=new Set,D=0,G="",y=-1,M={selected:!1,focused:!1},O=(i,m)=>{return M.selected=i,M.focused=m,M},P=`${j}-item ${j}-masonry-item`,F=`${j}-group-header`,R=`${j}-item--selected`,A=`${j}-item--focused`,h=(i,m)=>{if(typeof m==="string")i.innerHTML=m;else i.replaceChildren(m)},w=(i,m,k)=>{i.classList.toggle(R,m),i.classList.toggle(A,k)},v=(i,m)=>{if(Q)i.style.transform=`translate(${Math.round(m.y)}px, ${Math.round(m.x)}px)`;else i.style.transform=`translate(${Math.round(m.x)}px, ${Math.round(m.y)}px)`},c=(i,m)=>{if(Q)i.style.width=`${m.size}px`,i.style.height=`${m.crossSize}px`;else i.style.width=`${m.crossSize}px`,i.style.height=`${m.size}px`},C=(i,m,k,E,W)=>{let V=_.acquire(),f=m.__groupHeader,g=O(E,W);if(V.className=f?F:P,V.dataset.index=String(i),V.dataset.id=String(m.id),V.dataset.lane=String(k.lane),f)V.setAttribute("role","presentation"),V.removeAttribute("aria-selected"),V.removeAttribute("aria-setsize"),V.removeAttribute("aria-posinset"),V.removeAttribute("id");else{if(V.setAttribute("role","option"),V.ariaSelected=String(E),Y)V.id=`${Y}-item-${i}`;if(X){let j0=X();if(j0!==y)y=j0,G=String(j0);V.setAttribute("aria-setsize",G);let n=B?B(i):i+1;V.setAttribute("aria-posinset",String(n))}}c(V,k);let t=q(m,i,g);return h(V,t),w(V,E,W),v(V,k),{element:V,lastItemId:m.id,lastSelected:E,lastFocused:W,lastY:k.y,lastX:k.x,lastSize:k.size,lastCrossSize:k.crossSize,lastSeenFrame:D}},K=(i,m,k,E)=>{D++,Z.clear();for(let V=0;V<m.length;V++)Z.add(m[V].index);for(let[V,f]of U)if(Z.has(V))f.lastSeenFrame=D;else if(D-f.lastSeenFrame>$J)_.release(f.element),U.delete(V);let W=null;for(let V=0;V<m.length;V++){let f=m[V],g=f.index,t=i(g);if(!t)continue;let j0=k.has(t.id),n=g===E,u=U.get(g);if(u){let N=u.lastItemId!==t.id,p=u.lastSelected!==j0,z=u.lastFocused!==n,b=u.lastY!==f.y||u.lastX!==f.x,$=u.lastSize!==f.size||u.lastCrossSize!==f.crossSize;if(N){let L=O(j0,n),H=q(t,g,L);if(h(u.element,H),u.element.dataset.id=String(t.id),u.lastItemId=t.id,!t.__groupHeader){let o=B?B(g):g+1;u.element.setAttribute("aria-posinset",String(o))}}if(N||p||z)w(u.element,j0,n),u.element.ariaSelected=String(j0),u.lastSelected=j0,u.lastFocused=n;if($)c(u.element,f),u.lastSize=f.size,u.lastCrossSize=f.crossSize;if(b)v(u.element,f),u.lastY=f.y,u.lastX=f.x}else{let N=C(g,t,f,j0,n);if(!W)W=document.createDocumentFragment();W.appendChild(N.element),U.set(g,N)}}if(W)J.appendChild(W)},I=()=>{for(let i of U.values())_.release(i.element);U.clear(),J.innerHTML=""};return{render:K,getElement:(i)=>U.get(i)?.element,updateItemClasses:(i,m,k)=>{let E=U.get(i);if(!E)return;let W=E.lastSelected!==m,V=E.lastFocused!==k;if(W||V)w(E.element,m,k),E.lastSelected=m,E.lastFocused=k},sortDOM:()=>{J2(J,U.keys(),(i)=>U.get(i)?.element)},clear:I,destroy:()=>{I(),_.clear()}}};var bJ=new Set,RJ=100,c2=(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:B,config:_,rawConfig:U}=X,Z=_.classPrefix,D=_.horizontal;if(_.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");Y.root.classList.add(`${Z}--masonry`);let G=p0(U.padding),y=E2(G,D),M=e0(G,D),O=()=>(D?Y.viewport.clientHeight:Y.viewport.clientWidth)-y;q=g1({columns:J.columns,gap:J.gap??0,containerSize:O()});let P=U.item,F=D&&P.width?P.width:P.height,R={containerWidth:0,columns:0,gap:0,columnWidth:0},A=typeof F==="function"?(b)=>F(b,R):()=>F,h=()=>{let b=X.dataManager.getTotal(),$=q,L=$.columns,H=$.gap;R.containerWidth=$.containerSize,R.columns=L,R.gap=H;let a=(L-1)*H;R.columnWidth=Math.max(0,(R.containerWidth-a)/L),Q=$.calculateLayout(b,A),I();let o=$.getTotalSize(Q);X.sizeCache.getTotalSize=()=>o,X.updateContentSize(o)},w=U.item.template,v=Q2(X.methods,()=>X.dataManager.getTotal());j=m1(Y.items,w,Z,D,v.getSetSize,_.ariaIdPrefix,v.getPosInSet),X.setUpdateItemClassesFn((b,$,L)=>{j?.updateItemClasses(b,$,L)});let c=[],C=new Int32Array(0),K=[],I=()=>{let b=q.columns,$=Q.length;c=Array(b);for(let L=0;L<b;L++)c[L]=[];if(C.length<$)C=new Int32Array($);for(let L=0;L<$;L++){let H=Q[L],a=c[H.lane].length;c[H.lane].push(L),C[L]=a}K=Array(b);for(let L=0;L<b;L++){let H=c[L],a=new Float64Array(H.length);for(let o=0;o<H.length;o++){let Q0=Q[H[o]];a[o]=Q0.y+Q0.size*0.5}K[L]=a}};X.methods.set("_getNavTotal",()=>X.dataManager.getTotal());let d=(b,$)=>{let L=b.length;if(!L)return-1;let H=0,a=L-1;while(H<a){let o=H+a>>1;if(b[o]<$)H=o+1;else a=o}if(H>0&&Math.abs(b[H-1]-$)<=Math.abs(b[H]-$))return H-1;return H};X.methods.set("_navigate",(b,$,L)=>{let H=Q[b];if(!H)return b;let a=H.lane,o=q.columns,Q0=C[b],X0=c[a];switch(D?$==="ArrowDown"?"ArrowRight":$==="ArrowUp"?"ArrowLeft":$==="ArrowRight"?"ArrowDown":$==="ArrowLeft"?"ArrowUp":$:$){case"ArrowDown":{if(Q0+1<X0.length)return X0[Q0+1];return b}case"ArrowUp":{if(Q0>0)return X0[Q0-1];return b}case"ArrowRight":{if(a>=o-1)return b;let T=a+1,S=H.y+H.size*0.5,r=c[T];if(!r.length)return b;let e=d(K[T],S);return e>=0?r[e]:b}case"ArrowLeft":{if(a<=0)return b;let T=a-1,S=H.y+H.size*0.5,r=c[T];if(!r.length)return b;let e=d(K[T],S);return e>=0?r[e]:b}case"Home":return 0;case"End":return L-1;case"PageDown":{let T=X.state.viewportState.containerSize,S=H.size>0?H.size:150,r=Math.max(1,Math.floor(T/S)),e=Math.min(Q0+r,X0.length-1);return X0[e]}case"PageUp":{let T=X.state.viewportState.containerSize,S=H.size>0?H.size:150,r=Math.max(1,Math.floor(T/S)),e=Math.max(0,Q0-r);return X0[e]}}return b}),X.methods.set("_scrollItemIntoView",(b)=>{let $=Q[b];if(!$)return;let L=X.scrollController.getScrollTop(),H=X.state.viewportState.containerSize,a=$.y,o=a+$.size;if(a<L)X.scrollController.scrollTo(X.adjustScrollPosition(Math.max(0,a)));else if(o>L+H)X.scrollController.scrollTo(X.adjustScrollPosition(o-H))});let l=null,q0=null,i=!1,m=()=>{if(i)return;i=!0,l=X.methods.get("_getSelectedIds")??null,q0=X.methods.get("_getFocusedIndex")??null},k=(b)=>X.dataManager.getItem(b),E=-1,W=-1,V=!0,f=_.overscan*RJ,g=()=>{if(X.state.isDestroyed)return;m();let b=X.scrollController.getScrollTop(),$=X.state.viewportState.containerSize;if(!V&&b===E&&$===W)return;E=b,W=$,V=!1;let L=Math.max(0,b-f),H=b+$+f,a=q.getVisibleItems(Q,L,H),o=l?.()??bJ,Q0=q0?.()??-1;if(j&&a.length)j.render(k,a,o,Q0);let X0=X.state.viewportState;X0.scrollPosition=b;let x=a.length,T=x?a[0].index:0,S=x?a[x-1].index:0;X0.visibleRange.start=T,X0.visibleRange.end=S,X0.renderRange.start=T,X0.renderRange.end=S;let r=X.state.lastRenderRange;if(r.start!==T||r.end!==S)r.start=T,r.end=S,B.emit("range:change",{range:{start:T,end:S}})},t=()=>{X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,V=!0,g()};X.setRenderFns(g,t);let j0=(b,$)=>{let L=(D?$:b)-y;if(q&&q.containerSize!==L)q.update({containerSize:L}),h(),j?.clear(),t()};X.resizeHandlers.push(j0);let n=()=>{h(),t()},u=X.dataManager,N=(b)=>{if(typeof u[b]!=="function")return;let $=u[b].bind(u);u[b]=(...L)=>{$(...L),n()}};N("setItems"),N("appendItems"),N("prependItems"),N("updateItem"),N("removeItem");let{animateScroll:p,cancelScroll:z}=q2(X.scrollController,X.renderIfNeeded);X.methods.set("cancelScroll",z),X.methods.set("scrollToIndex",(b,$)=>{let L=Q[b];if(!L)return;let{align:H,behavior:a,duration:o}=s0($),Q0=L.y,X0=X.state.viewportState.containerSize,x=Q0;if(H==="center")x=Q0-X0/2+L.size/2;else if(H==="end"){x=Q0-X0+L.size;let T=q.getTotalSize(Q);if(b===Q.length-1)x=Math.max(0,T+M-X0)}if(x=X.adjustScrollPosition(Math.max(0,x)),a==="smooth")p(X.scrollController.getScrollTop(),x,o);else z(),X.scrollController.scrollTo(x)}),h(),X.idleHandlers.push(()=>{j?.sortDOM()}),X.destroyHandlers.push(()=>{z(),j?.destroy(),Y.root.classList.remove(`${Z}--masonry`)})}}};var l2=(J)=>{let q=J?.mode??"single",j=J?.followFocus??!1,Q=J?.initial,X=J?.shiftArrowToggle??"origin",Y=J?.focusOnClick??!1,B=J?.contextMenu??"select",_=u1(Q),U=_.selected,Z=null,D=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(G){let{dom:y,emitter:M,config:O}=G,{classPrefix:P,ariaIdPrefix:F}=O;if(q==="none"){G.methods.set("select",()=>{}),G.methods.set("deselect",()=>{}),G.methods.set("toggleSelect",()=>{}),G.methods.set("selectAll",()=>{}),G.methods.set("clearSelection",()=>{}),G.methods.set("getSelected",()=>[]),G.methods.set("getSelectedItems",()=>[]),G.methods.set("setSelectionMode",()=>{}),G.methods.set("selectNext",()=>{}),G.methods.set("selectPrevious",()=>{}),G.methods.set("_focusById",()=>{}),G.methods.set("_getFocusedId",()=>{return});return}y.root.classList.add(`${P}--selectable`);let R=()=>G.methods.get("_isGroupHeader"),A=()=>G.methods.get("_layoutToDataIndex"),h=()=>G.methods.get("_dataToLayoutIndex"),w=(T)=>{let S=R();return S?S(T):!1},v=(T,S,r)=>{if(!R())return T;let e=T;while(e>=0&&e<r){if(!w(e))return e;e+=S}e=T-S;while(e>=0&&e<r){if(!w(e))return e;e-=S}return T},c=(T)=>{_.focusedIndex=T},C=(T,S,r=!1)=>{if(S===0)return;let e=_.focusedIndex+T;if(e<0)e=r?S-1:0;else if(e>=S)e=r?0:S-1;c(e)},K=(T)=>{if(q==="single"){if(U.clear(),T.length>0)U.add(T[0])}else for(let S of T)U.add(S)},I=(T)=>{if(q==="single")U.clear();U.add(T)},d=(T)=>{if(U.has(T))U.delete(T);else I(T)},l=(T,S,r)=>{if(q!=="multiple")return;let e=Math.min(S,r),N0=Math.max(S,r);for(let U0=e;U0<=N0;U0++){let Z0=T[U0];if(Z0)U.add(Z0.id)}},q0=()=>Array.from(U),i=(T)=>{let S=[];for(let r of U){let e=T(r);if(e)S.push(e)}return S},m=new Map,k=()=>{m.clear();let T=G.dataManager.getTotal(),S=G.dataManager.getCached();if(S===0)return;if(S>=T){for(let e=0;e<T;e++){let N0=G.dataManager.getItem(e);if(N0)m.set(N0.id,e)}return}let r=G.dataManager.getStorage();if(r&&typeof r.getLoadedRanges==="function"){let e=r.getLoadedRanges();for(let N0 of e)for(let U0=N0.start;U0<=N0.end;U0++){let Z0=G.dataManager.getItem(U0);if(Z0&&!Z0._isPlaceholder)m.set(Z0.id,U0)}}};M.on("data:change",({type:T,id:S})=>{if(T==="remove"){U.delete(S),k();let r=G.dataManager.getTotal();if(r>0&&_.focusedIndex>=0){let e=Math.min(_.focusedIndex,r-1);_.focusedIndex=v(e,1,r)}}}),M.on("load:end",({items:T,offset:S})=>{if(!T||T.length===0)return;if(S!==void 0)for(let r=0;r<T.length;r++){let e=T[r];if(e&&e.id!==void 0)m.set(e.id,S+r)}else k()}),k(),G.methods.set("_getSelectedIds",()=>{return U}),G.methods.set("_getFocusedIndex",()=>{return _.focusVisible?_.focusedIndex:-1}),G.methods.set("_seedSelection",(T)=>{for(let S of T)U.add(S)});let{forceRender:E}=G.getRenderFns(),W=()=>{E();let T=(S)=>{let r=m.get(S);if(r===void 0)return;return G.dataManager.getItem(r)};M.emit("selection:change",{selected:q0(),items:i(T)})},V=p0(G.rawConfig.padding),f=O.horizontal?V.left:V.top,g=O.horizontal?V.right:V.bottom,t=G.getItemToScrollIndexFn(),j0=null,n=null,u=null,N=!1,p=()=>{if(N)return;N=!0,j0=G.methods.get("_getNavDelta")??null,n=G.methods.get("_navigate")??null,u=G.methods.get("_scrollItemIntoView")??null},z=()=>{return p(),j0?j0():{ud:1,lr:0,cols:0}},b=(T)=>{if(T<0)return;if(p(),u)u(T);else{let S=G.state.viewportState.containerSize,r=G.state.viewportState.scrollPosition,e=G.dataManager.getTotal(),N0=G.getCachedCompression(),{visibleRange:U0}=G.state.viewportState,Z0=t(T),_0=L2(Z0,G.sizeCache,r,S,f,g,N0,e,U0);if(_0!==r)G.scrollController.scrollTo(G.adjustScrollPosition(_0))}},$=()=>{let T=t(Math.max(0,_.focusedIndex)),S=G.sizeCache.getSize(T),{ud:r}=z();return Math.max(r,Math.floor(G.state.viewportState.containerSize/S)*r)};Z=document.createElement("div"),Z.setAttribute("aria-live","polite"),Z.setAttribute("aria-atomic","true"),Z.className=`${P}-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",(y.root.getAttribute("role")==="grid"?y.root.parentElement??y.root:y.root).appendChild(Z);let H=Z;M.on("selection:change",({selected:T})=>{let S=T.length;if(S===0)H.textContent="";else if(S===1)H.textContent="1 item selected";else H.textContent=`${S} items selected`});let a=()=>{if(G.state.isDestroyed)return;if(!y.root.matches(":focus-visible"))return;let T=G.dataManager.getTotal();if(T===0)return;let S=_.focusedIndex>=0?Math.min(_.focusedIndex,T-1):0;S=v(S,1,T),c(S),_.focusVisible=!0,y.root.setAttribute("aria-activedescendant",`${F}-item-${S}`),b(S);let r=G.dataManager.getItem(S);if(r)G.renderer.updateItemClasses(S,U.has(r.id),!0)};if(O.interactive)y.root.addEventListener("focusin",a);let o=(T)=>{if(G.state.isDestroyed)return;let S=T.relatedTarget;if(S&&y.root.contains(S))return;let r=_.focusedIndex;if(_.focusVisible=!1,y.root.removeAttribute("aria-activedescendant"),r>=0){let e=G.dataManager.getItem(r);if(e)G.renderer.updateItemClasses(r,U.has(e.id),!1)}};if(O.interactive)y.root.addEventListener("focusout",o);let Q0=(T)=>{let S=T.target.closest("[data-index]");if(!S)return null;let r=parseInt(S.dataset.index??"-1",10);if(r<0)return null;let e=G.dataManager.getItem(r);if(!e||w(r))return null;return{item:e,index:r}},X0=(T)=>{c(T),_.focusVisible=Y,D=T,y.root.setAttribute("aria-activedescendant",`${F}-item-${T}`)};if(G.clickHandlers.push((T)=>{if(G.state.isDestroyed)return;let S=Q0(T);if(!S)return;let{item:r,index:e}=S;if(M.emit("item:click",{item:r,index:e,event:T}),q==="multiple"&&T.shiftKey&&_.focusedIndex>=0){let N0=D>=0?D:_.focusedIndex;l(G.getAllLoadedItems(),N0,e),X0(e),W();return}X0(e),d(r.id),W()}),B==="select")G.contextMenuHandlers.push((T)=>{if(G.state.isDestroyed)return;let S=Q0(T);if(!S)return;if(!U.has(S.item.id))U.clear(),U.add(S.item.id),X0(S.index),W()});if(O.interactive)G.keydownHandlers.push((T)=>{if(G.state.isDestroyed)return;let S=G.dataManager.getTotal(),r=_.focusedIndex,e=!1,N0=!1,U0=_;if(p(),n)switch(T.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let Z0=n(_.focusedIndex,T.key,S);if(Z0!==_.focusedIndex)c(Z0),U0=_,U0.focusVisible=!0,e=!0,N0=!0;else{T.preventDefault();return}break}}if(!e)switch(T.key){case"ArrowUp":C(-z().ud,S,O.wrap),U0=_,U0.focusVisible=!0,e=!0,N0=!0;break;case"ArrowDown":C(z().ud,S,O.wrap),U0=_,U0.focusVisible=!0,e=!0,N0=!0;break;case"ArrowLeft":{let{lr:Z0}=z();if(Z0)C(-Z0,S,O.wrap),U0=_,U0.focusVisible=!0,e=!0,N0=!0;break}case"ArrowRight":{let{lr:Z0}=z();if(Z0)C(Z0,S,O.wrap),U0=_,U0.focusVisible=!0,e=!0,N0=!0;break}case"PageUp":case"PageDown":{let Z0=$(),_0=A(),W0=h();if(_0&&W0){let F0=_0(_.focusedIndex),$0=T.key==="PageUp"?-Z0:Z0,E0=_0(S-1),P0=Math.max(0,Math.min(E0,F0+$0));c(W0(P0))}else C(T.key==="PageUp"?-Z0:Z0,S);U0=_,U0.focusVisible=!0,e=!0,N0=!0;break}case"Home":{if(S>0)c(0);U0=_,U0.focusVisible=!0,e=!0,N0=!0;break}case"End":{if(S>0)c(S-1);U0=_;let Z0=G.methods.get("_ensureTailLoaded");if(Z0)Z0();U0.focusVisible=!0,e=!0,N0=!0;break}}switch(T.key){case" ":case"Enter":if(T.key===" "&&T.shiftKey&&q==="multiple"&&_.focusedIndex>=0){if(D>=0){let Z0=G.getAllLoadedItems();l(Z0,D,_.focusedIndex),U0=_}U0.focusVisible=!0,e=!0;break}if(_.focusedIndex>=0&&!w(_.focusedIndex)){let Z0=G.dataManager.getItem(_.focusedIndex);if(Z0)d(Z0.id),U0=_,U0.focusVisible=!0;D=_.focusedIndex,e=!0}break;case"a":if((T.ctrlKey||T.metaKey)&&q==="multiple"){let Z0=G.getAllLoadedItems();if(U.size===Z0.length)U.clear();else for(let _0 of Z0)U.add(_0.id);U0=_,U0.focusVisible=!0,e=!0,N0=!1}break;case"Delete":case"Backspace":if(U.size>0){let Z0=(_0)=>{let W0=m.get(_0);return W0===void 0?void 0:G.dataManager.getItem(W0)};M.emit("delete",{selected:q0(),items:i(Z0)}),e=!0}break}if(N0&&R()){let Z0=U0.focusedIndex>r?1:-1;U0.focusedIndex=v(U0.focusedIndex,Z0,S)}if(T.shiftKey&&q==="multiple"&&N0&&U0.focusedIndex>=0){let Z0=T.key==="ArrowUp"||T.key==="ArrowDown"||T.key==="ArrowLeft"||T.key==="ArrowRight",_0=(T.ctrlKey||T.metaKey)&&(T.key==="Home"||T.key==="End");if(Z0){if(X==="origin"){if(r>=0){let W0=G.dataManager.getItem(r);if(W0)d(W0.id),U0=_}}else{let W0=G.dataManager.getItem(U0.focusedIndex);if(W0)d(W0.id),U0=_}D=U0.focusedIndex,N0=!1}else if(_0){let W0=G.getAllLoadedItems(),F0=r>=0?r:U0.focusedIndex;l(W0,F0,U0.focusedIndex),U0=_,D=U0.focusedIndex,N0=!1}}if(j&&q==="single"&&N0&&U0.focusedIndex>=0){let Z0=G.dataManager.getItem(U0.focusedIndex);if(Z0)I(Z0.id),U0=_;N0=!1}if(e){T.preventDefault(),_=U0;let Z0=_.focusedIndex;if(Z0>=0)b(Z0),y.root.setAttribute("aria-activedescendant",`${F}-item-${Z0}`);else y.root.removeAttribute("aria-activedescendant");if(N0){let{selected:_0}=_;if(r>=0&&r!==Z0){let W0=G.dataManager.getItem(r);if(W0)G.renderer.updateItemClasses(r,_0.has(W0.id),!1)}if(Z0>=0){let W0=G.dataManager.getItem(Z0);if(W0)G.renderer.updateItemClasses(Z0,_0.has(W0.id),!0)}}else W();if(Z0>=0&&Z0!==r){let _0=G.dataManager.getItem(Z0);if(_0)M.emit("focus:change",{id:_0.id,index:Z0})}}});G.methods.set("select",(...T)=>{if(K(T),T.length>0){let S=m.get(T[0]);if(S===void 0)k(),S=m.get(T[0]);if(S!==void 0)c(S)}W()}),G.methods.set("deselect",(...T)=>{for(let S of T)U.delete(S);W()}),G.methods.set("toggleSelect",(T)=>{d(T),W()}),G.methods.set("selectAll",()=>{if(q!=="multiple")return;let T=G.getAllLoadedItems();U.clear();for(let S of T)U.add(S.id);k(),W()}),G.methods.set("clearSelection",()=>{U.clear(),W()}),G.methods.set("getSelected",()=>{return q0()}),G.methods.set("getSelectedItems",()=>{return i((S)=>{let r=m.get(S);return r===void 0?void 0:G.dataManager.getItem(r)})});let x=(T)=>{let S=G.dataManager.getTotal();if(S===0)return;if(p(),n){let U0=T==="next"?"ArrowDown":"ArrowUp",Z0=n(_.focusedIndex,U0,S);c(Z0)}else{let{ud:U0}=z();C(T==="next"?U0:-U0,S,O.wrap)}let r=T==="next"?1:-1;_.focusedIndex=v(_.focusedIndex,r,S);let e=_.focusedIndex,N0=G.dataManager.getItem(e);if(!N0)return;I(N0.id),b(e),W()};G.methods.set("selectNext",()=>{x("next")}),G.methods.set("selectPrevious",()=>{x("previous")}),G.methods.set("_focusById",(T)=>{let S=m.get(T);if(S!==void 0){let e=G.dataManager.getItem(S);if(!e||e.id!==T)S=void 0}if(S===void 0){if(k(),S=m.get(T),S===void 0)return}c(S);let r=G.dataManager.getItem(S);if(r)M.emit("focus:change",{id:r.id,index:S})}),G.methods.set("_getFocusedId",()=>{let T=_.focusedIndex;if(T<0)return;return G.dataManager.getItem(T)?.id}),G.methods.set("_setFocusedIndex",(T)=>{c(T),_.focusVisible=!0,b(T),y.root.setAttribute("aria-activedescendant",`${F}-item-${T}`),G.renderIfNeeded()}),G.destroyHandlers.push(()=>{if(H&&H.parentNode)H.remove();y.root.removeEventListener("focusin",a),y.root.removeEventListener("focusout",o)})},destroy(){if(Z&&Z.parentNode)Z.remove();Z=null}}};var PJ=(J)=>{try{let q=sessionStorage.getItem(J);if(!q)return;return JSON.parse(q)}catch{return}},r2=(J)=>{let q=J?.autoSave,j=q?PJ(q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){let X=()=>{let U=Q.scrollController.getScrollTop(),Z=Q.getCachedCompression(),D=Q.getVirtualTotal(),y=Q.methods.get("getSelected")?.();if(D===0){let w={index:0,offsetInItem:0,total:0};if(y?.length)w.selectedIds=y;return w}let M,O;if(Z.isCompressed&&Z.ratio!==1){let v=U/Z.virtualSize*D;M=Math.max(0,Math.min(Math.floor(v),D-1)),O=(v-M)*Q.sizeCache.getSize(M)}else M=Q.sizeCache.indexAtOffset(U),O=U-Q.sizeCache.getOffset(M);O=Math.max(0,O);let P={index:M,offsetInItem:O,total:D,scrollTop:U},F=Q.sizeCache.getSize(M);if(F)P.offsetRatio=O/F;let R=Q.methods.get("_layoutToDataIndex");if(R){let w=R(M);if(w<0){for(let v=M+1;v<D;v++)if(w=R(v),w>=0)break}if(w>=0)P.dataIndex=w}let A=Q.methods.get("_getTotal");if(A)P.dataTotal=A();if(y?.length)P.selectedIds=y;let h=Q.methods.get("_getFocusedId");if(h){let w=h();if(w!==void 0)P.focusedId=w}return P};Q.methods.set("getScrollSnapshot",X);let Y=(U,Z=!0)=>{let{index:D,offsetInItem:G,selectedIds:y,focusedId:M}=U,O=Q.getVirtualTotal(),P=U.dataTotal??U.total;if(O===0&&P&&P>0){Q.dataManager.setTotal(P);let k=Q.getVirtualTotal();Q.sizeCache.rebuild(k),Q.updateCompressionMode();let E=Q.getCachedCompression();if(!E.isCompressed)Q.updateContentSize(E.virtualSize)}else if(O===0)return;if(!Number.isFinite(D)||!Number.isFinite(G))return;let F=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==F){Q.sizeCache.rebuild(F),Q.updateCompressionMode();let k=Q.getCachedCompression();if(!k.isCompressed)Q.updateContentSize(k.virtualSize)}let A=Q.getCachedCompression(),h=Q.methods.get("_dataToLayoutIndex"),w=D;if(U.dataIndex!==void 0&&U.dataIndex>=0)w=h?h(U.dataIndex):U.dataIndex;else if(h)w=h(D);let v=Math.max(0,Math.min(w,F-1)),c=Q.sizeCache.getSize(v),C=U.offsetRatio!==void 0?U.offsetRatio*c:Math.min(G,c),K;if(A.isCompressed&&A.ratio!==1){let k=Q.methods.get("_getTotal")?.(),E=k!==void 0&&U.dataTotal===k;if(U.scrollTop!==void 0&&(U.total===F||E))K=U.scrollTop;else{let W=c?C/c:0;K=(v+W)/F*A.virtualSize}}else K=Q.sizeCache.getOffset(v)+C;let I=Q.state.viewportState.containerSize,d=A.isCompressed?Q.state.viewportState.totalSize:A.virtualSize,l=Math.max(0,d-I);K=Math.max(0,Math.min(K,l));let q0=K===U.scrollTop;if(U.dataIndex!==void 0&&U.dataIndex>=0){let k=c?C/c:0;Q.methods.set("_restoreAnchor",{dataIndex:U.dataIndex,fraction:k,skipAdjust:q0}),Q.methods.set("_suppressSave",1)}if(Q.scrollController.scrollTo(K),Z&&y?.length){let k=Q.methods.get("select");if(k)k(...y)}let i=Q.methods.get("loadVisibleRange"),m=()=>{if(M===void 0)return;let k=Q.methods.get("_focusById");if(k)k(M)};if(i){let k=0,E=()=>{if(Q.state.viewportState.containerSize){if(Math.abs(Q.scrollController.getScrollTop()-K)>1)Q.scrollController.scrollTo(K);i().then(m)}else if(++k<10)requestAnimationFrame(E)};requestAnimationFrame(E)}else{let k=Q.methods.get("reload");if(k)requestAnimationFrame(()=>{k().then(m)});else requestAnimationFrame(m)}};Q.methods.set("restoreScroll",Y);let B=!!(j&&q),_=null;if(q){_=()=>{if(B||Q.methods.has("_suppressSave"))return;let D=Q.methods.get("getScrollSnapshot");if(!D)return;let G=D();try{sessionStorage.setItem(q,JSON.stringify(G))}catch{}},Q.methods.set("_saveSnapshot",_);let U=0,Z=()=>{if(U)return;U=requestAnimationFrame(()=>{U=0,_()})};if(Q.idleHandlers.push(Z),Q.emitter.on("selection:change",Z),Q.emitter.on("focus:change",Z),j&&j.total&&j.total>0){let D=Q.methods.get("_cancelAutoLoad");if(D)D();Q.dataManager.setTotal(j.total)}}if(j){let U=!0;if(j.selectedIds?.length){let Z=Q.methods.get("_seedSelection");if(Z)Z(j.selectedIds),U=!1}queueMicrotask(()=>{if(Y(j,U),B=!1,_)_()})}}}};var x1=(J,q=50,j=1/0,Q=!0)=>{let X=J,Y=[],B=0,_=()=>{Y=X.map((F,R)=>({def:F,index:R,width:0,minWidth:yJ(F.minWidth??q,1),maxWidth:F.maxWidth??j,resizable:F.resizable??Q,offset:0}))},U=(F)=>{if(Y.length===0){B=0;return}let R=0,A=0;for(let h=0;h<Y.length;h++){let w=Y[h],v=w.def;if(v.width!==void 0)w.width=s2(v.width,w.minWidth,w.maxWidth),R+=w.width;else A++}if(A){let w=Math.max(0,F-R)/A;for(let v=0;v<Y.length;v++){let c=Y[v];if(c.def.width===void 0)c.width=s2(w,c.minWidth,c.maxWidth)}}Z()},Z=()=>{let F=0;for(let R=0;R<Y.length;R++){let A=Y[R];A.offset=F,F+=A.width}B=F},D=(F,R)=>{if(F<0||F>=Y.length)return 0;let A=Y[F];if(!A.resizable)return A.width;let h=s2(R,A.minWidth,A.maxWidth);return A.width=h,Z(),h},G=(F)=>{return Y[F]},y=(F)=>{if(Y.length===0)return;if(F<0)return Y[0];if(F>=B)return Y[Y.length-1];let R=0,A=Y.length-1;while(R<A){let h=R+A>>>1,w=Y[h];if(F<w.offset)A=h-1;else if(F>=w.offset+w.width)R=h+1;else return w}return Y[R]},M=(F)=>{if(F<0||F>=Y.length)return 0;return Y[F].offset},O=(F)=>{if(F<0||F>=Y.length)return 0;return Y[F].width},P=(F)=>{X=F,_()};return _(),{get columns(){return Y},get totalWidth(){return B},resolve:U,updateColumns:P,resizeColumn:D,getColumn:G,getColumnAtX:y,getColumnOffset:M,getColumnWidth:O}},s2=(J,q,j)=>Math.min(j,Math.max(q,J)),yJ=(J,q)=>Math.max(q,J);var d1=(J,q,j,Q,X,Y)=>{let B=document.createElement("div");B.setAttribute("role","rowgroup");let _=document.createElement("div");_.className=`${j}-table-header`,_.setAttribute("role","row"),_.setAttribute("aria-rowindex","1"),_.style.height=`${q}px`;let U=document.createElement("div");U.className=`${j}-table-header-scroll`,U.setAttribute("role","presentation"),_.appendChild(U),B.appendChild(_),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${q}px`);let Z=[],D=[],G=!0,y=null,M="asc",O=null,P=!1,F=-1,R=0,A=0,h=(k,E)=>{let W=document.createElement("div");W.className=`${j}-table-header-cell`,W.setAttribute("role","columnheader"),W.setAttribute("aria-colindex",String(E+1)),W.dataset.columnKey=k.def.key;let V=k.def.align;if(V==="center")W.classList.add(`${j}-table-header-cell--center`);else if(V==="right")W.classList.add(`${j}-table-header-cell--right`);let f=document.createElement("div");f.className=`${j}-table-header-content`;let g=k.def.header?k.def.header(k.def):k.def.label;if(typeof g==="string")f.textContent=g;else f.appendChild(g);if(W.appendChild(f),k.def.sortable){let t=document.createElement("span");t.className=`${j}-table-header-sort`,t.setAttribute("aria-hidden","true"),W.appendChild(t),D.push(t),W.classList.add(`${j}-table-header-cell--sortable`)}else D.push(null);if(k.resizable){let t=document.createElement("div");t.className=`${j}-table-header-resize`,t.dataset.resizeIndex=String(E),W.appendChild(t)}return W},w=(k)=>{O=k,U.textContent="",Z=[],D=[];let E=k.columns;for(let W=0;W<E.length;W++){let V=E[W],f=h(V,W);Z.push(f),U.appendChild(f)}if(v(k),y)c(y,M)},v=(k)=>{O=k;let E=k.columns;U.style.width=`${k.totalWidth}px`;for(let W=0;W<Z.length&&W<E.length;W++){let V=Z[W],f=E[W];V.style.width=`${f.width}px`}},c=(k,E)=>{if(y=k,M=E,!O)return;let W=O.columns;for(let V=0;V<D.length&&V<W.length;V++){let f=D[V];if(!f)continue;if(W[V].def.key===k)f.textContent=E==="asc"?"▲":"▼",f.style.opacity="0.7",Z[V].setAttribute("aria-sort",E==="asc"?"ascending":"descending");else f.textContent="",f.style.opacity="0",Z[V].removeAttribute("aria-sort")}},C=(k)=>{U.style.transform=`translateX(${-k}px)`},K=(k)=>{let E=k.target;if(!E.dataset.resizeIndex)return;if(k.preventDefault(),k.stopPropagation(),F=+E.dataset.resizeIndex,!O)return;let W=O.getColumn(F);if(!W?.resizable)return;P=!0,R=k.clientX,A=W.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",E.classList.add(`${j}-table-header-resize--active`),E.setPointerCapture(k.pointerId),E.addEventListener("pointermove",I),E.addEventListener("pointerup",d),E.addEventListener("pointercancel",d)},I=(k)=>{if(!P||!O)return;let E=k.clientX-R;if(Math.abs(E)<1)return;let W=Math.max(0,A+E);Q(F,W)},d=(k)=>{if(!P)return;let E=k.target;E.removeEventListener("pointermove",I),E.removeEventListener("pointerup",d),E.removeEventListener("pointercancel",d);try{E.releasePointerCapture(k.pointerId)}catch{}E.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",P=!1,F=-1},l=(k)=>{let E=k.target;if(E.dataset.resizeIndex)return;if(P)return;let W=E;while(W&&!W.dataset.columnKey)if(W=W.parentElement,W===_||W===null)return;let V=W.dataset.columnKey;if(!O)return;let f=O.columns,g=-1;for(let j0=0;j0<f.length;j0++)if(f[j0].def.key===V){g=j0;break}if(g===-1)return;let t=f[g];if(Y)Y({key:V,index:g,event:k});if(t.def.sortable&&X){let j0;if(y===V)j0=M==="asc"?"desc":null;else j0="asc";X({key:V,index:g,direction:j0})}};return _.addEventListener("pointerdown",K),_.addEventListener("click",l),{element:_,update:v,updateSort:c,rebuild:w,show:()=>{if(G)return;G=!0,_.style.display=""},hide:()=>{if(!G)return;G=!1,_.style.display="none"},destroy:()=>{_.removeEventListener("pointerdown",K),_.removeEventListener("click",l),J.style.removeProperty("--vlist-table-header-height"),B.remove(),Z=[],D=[],O=null,G=!1},syncScroll:C}};var wJ=()=>{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}}},c1=(J,q,j,Q,X,Y,B,_,U)=>{let Z=wJ(),D=new Map,G=-1,y=j,M=null,O=null,P=null,F=(L,H)=>{O=L,P=H},R=(L,H)=>{H?L.setAttribute("aria-selected","true"):L.removeAttribute("aria-selected")},A=(L,H,a,o)=>{L.setAttribute("role",H),L.setAttribute("data-id",String(a)),L.setAttribute("data-index",String(o))},h=(L)=>String(L).startsWith("__placeholder_"),w=`${X}-item ${X}-table-row`,v=`${X}-item--selected`,c=`${X}-item--focused`,C=`${X}-table-cell`,K=`${X}-table-cell--center`,I=`${X}-table-cell--right`,d=`${X}-item--odd`,l=`${X}-item--placeholder`,q0=`${X}-item--replaced`,i=`${X}-item ${X}-table-row ${X}-table-group-header`,m=`${X}-table-group-header-content`,k=(L,H,a,o,Q0=!1)=>{if(a.def.cell){let X0=a.def.cell(H,a.def,o);if(typeof X0==="string")L.innerHTML=X0;else L.replaceChildren(X0)}else{let X0=H[a.def.key],x=X0!=null?String(X0):"";if(Q0&&x)L.innerHTML=`<span>${x}</span>`;else L.textContent=x}},E=(L,H,a,o,Q0=!1)=>{let X0=w;if(_){if(M){let x=M(H);if(x>=0&&(x&1)===1)X0+=` ${d}`}else if((H&1)===1)X0+=` ${d}`}if(Q0)X0+=` ${l}`;if(a)X0+=` ${v}`;if(o)X0+=` ${c}`;L.className=X0},W=(L,H,a)=>{if(a?.compression?.isCompressed)return Math.round(F2(L,a.scrollPosition,H,a.totalItems,a.containerSize,a.compression,a.rangeStart));return H.getOffset(L)},V=(L,H)=>{let a=H.def.align;if(a==="center")L.classList.add(K),L.classList.remove(I);else if(a==="right")L.classList.add(I),L.classList.remove(K);else L.classList.remove(K,I)},f=(L,H)=>{let o=y.columns.length;if(H.length===o)return H;let Q0=[];for(let X0=0;X0<o;X0++){let x;if(X0<H.length)x=H[X0];else x=document.createElement("div"),x.className=C,L.appendChild(x);Q0.push(x)}for(let X0=o;X0<H.length;X0++)H[X0].remove();return Q0},g=(L,H,a,o)=>{let Q0=Z.acquire(),X0=L,x=a.getSize(H),T=W(H,a,o);Q0.style.cssText=`width:${y.totalWidth}px;height:${x}px;transform:translateY(${T}px)`,Q0.className=i,A(Q0,"presentation",L.id,H),Q0.removeAttribute("aria-selected"),Q0.removeAttribute("aria-rowindex"),Q0.replaceChildren();let S=document.createElement("div");if(S.className=m,P){let r=P(X0.groupKey,X0.groupIndex);if(typeof r==="string")S.innerHTML=r;else S.appendChild(r)}return Q0.appendChild(S),{element:Q0,cells:[],index:H,isGroupHeader:!0,lastItemId:L.id,lastSelected:!1,lastFocused:!1,lastOffset:T,lastHeight:x}},t=(L,H,a,o,Q0,X0)=>{let x=Z.acquire(),T=Q0.getSize(H),S=W(H,Q0,X0),r=h(L.id);x.style.cssText=`width:${y.totalWidth}px;height:${T}px;transform:translateY(${S}px)`,E(x,H,a,o,r),A(x,"row",L.id,H),x.id=`${Y}-${H}`,x.setAttribute("aria-rowindex",String(H+2)),R(x,a);let e=f(x,[]),N0=y.columns;for(let U0=0;U0<e.length&&U0<N0.length;U0++){let Z0=e[U0],_0=N0[U0];Z0.style.cssText=`left:${_0.offset}px;width:${_0.width}px`,Z0.setAttribute("role","gridcell"),Z0.setAttribute("aria-colindex",String(U0+1)),V(Z0,_0),k(Z0,L,_0,H,r)}return{element:x,cells:e,index:H,isGroupHeader:!1,lastItemId:L.id,lastSelected:a,lastFocused:o,lastOffset:S,lastHeight:T}},j0=(L,H,a,o,Q0)=>{for(let[r,e]of D)if(r<H.start||r>H.end)Z.release(e.element),D.delete(r);let X0=!1,x=B();if(x!==G)G=x,X0=!0;let T=null,S=q();M=typeof _==="string"&&U?U():null;for(let r=H.start;r<=H.end;r++){let e=r-H.start,N0=L[e];if(!N0)continue;let U0=a.has(N0.id),Z0=r===o,_0=O?O(N0):!1,W0=D.get(r);if(W0){if(W0.isGroupHeader!==_0){Z.release(W0.element),D.delete(r);let F0=_0?g(N0,r,S,Q0):t(N0,r,U0,Z0,S,Q0);if(D.set(r,F0),!T)T=document.createDocumentFragment();T.appendChild(F0.element);continue}if(_0){if(W0.lastItemId!==N0.id){let P0=N0,k0=W0.element.firstElementChild;if(k0&&P){let D0=P(P0.groupKey,P0.groupIndex);if(typeof D0==="string")k0.innerHTML=D0;else k0.replaceChildren(D0)}W0.element.setAttribute("data-id",String(N0.id)),W0.lastItemId=N0.id}let $0=W(r,S,Q0);if(W0.lastOffset!==$0)W0.lastOffset=$0,W0.element.style.transform=`translateY(${$0}px)`;let E0=S.getSize(r);if(W0.lastHeight!==E0)W0.lastHeight=E0,W0.element.style.height=`${E0}px`}else{let F0=W0.lastItemId!==N0.id,$0=W0.lastSelected!==U0,E0=W0.lastFocused!==Z0;if(F0){let D0=W0.lastItemId!=null&&h(W0.lastItemId),A0=h(N0.id);if(!A0&&Y2(a,r,N0.id))U0=!0;let R0=y.columns;for(let w0=0;w0<W0.cells.length&&w0<R0.length;w0++)k(W0.cells[w0],N0,R0[w0],r,A0);if(E(W0.element,r,U0,Z0,A0),W0.element.setAttribute("data-id",String(N0.id)),R(W0.element,U0),D0&&!A0)W0.element.classList.add(q0),setTimeout(()=>{W0.element.classList.remove(q0)},300);W0.lastItemId=N0.id,W0.lastSelected=U0,W0.lastFocused=Z0}else if($0||E0)E(W0.element,r,U0,Z0,h(N0.id)),R(W0.element,U0),W0.lastSelected=U0,W0.lastFocused=Z0;let P0=W(r,S,Q0);if(W0.lastOffset!==P0)W0.lastOffset=P0,W0.element.style.transform=`translateY(${P0}px)`;let k0=S.getSize(r);if(W0.lastHeight!==k0)W0.lastHeight=k0,W0.element.style.height=`${k0}px`;if(X0)W0.element.setAttribute("aria-rowindex",String(r+2))}}else{if(Y2(a,r,N0.id))U0=!0;let F0=_0?g(N0,r,S,Q0):t(N0,r,U0,Z0,S,Q0);if(D.set(r,F0),!T)T=document.createDocumentFragment();T.appendChild(F0.element)}}if(T)J.appendChild(T)},n=(L)=>{let H=q();for(let[a,o]of D){let Q0=W(a,H,L);if(o.lastOffset!==Q0)o.lastOffset=Q0,o.element.style.transform=`translateY(${Q0}px)`}},u=(L,H,a,o)=>{let Q0=D.get(L);if(!Q0)return;if(Q0.isGroupHeader)return;let X0=y.columns;for(let x=0;x<Q0.cells.length&&x<X0.length;x++)k(Q0.cells[x],H,X0[x],L);Q0.element.setAttribute("data-id",String(H.id)),Q0.lastItemId=H.id,E(Q0.element,L,a,o),R(Q0.element,a),Q0.lastSelected=a,Q0.lastFocused=o},N=(L,H,a)=>{let o=D.get(L);if(!o)return;if(o.isGroupHeader)return;let Q0=o.lastSelected!==H,X0=o.lastFocused!==a;if(Q0||X0)E(o.element,L,H,a),R(o.element,H),o.lastSelected=H,o.lastFocused=a},p=(L)=>{y=L;let H=L.columns;for(let[,a]of D)if(a.element.style.width=`${L.totalWidth}px`,a.cells.length>0)for(let o=0;o<a.cells.length&&o<H.length;o++){let Q0=a.cells[o],X0=H[o];Q0.style.left=`${X0.offset}px`,Q0.style.width=`${X0.width}px`}},z=(L)=>{return D.get(L)?.element},b=()=>{for(let[,L]of D)Z.release(L.element);D.clear(),G=-1};return{render:j0,updatePositions:n,updateItem:u,updateItemClasses:N,getElement:z,updateColumnLayout:p,setGroupHeaderFn:F,clear:b,destroy:()=>{b(),Z.clear()}}};var zJ=new Set,a2=(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:B,config:_}=X,{classPrefix:U}=_;if(_.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(_.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let Z=J.resizable??!0,D=J.minColumnWidth??50,G=J.maxColumnWidth??1/0,y=J.rowBorders??!0,M=J.rowHeight,O=X.rawConfig.padding,P=!O?0:typeof O==="number"?O*2:O.length===2?O[1]*2:O[1]+O[3],F=J.headerHeight??(typeof M==="number"?M:40),R=J.sort?.key??null,A=J.sort?.direction??"asc";if(q=x1(J.columns,D,G,Z),typeof M==="function"||typeof M==="number")X.setSizeConfig(M);X.rebuildSizeCache(),Y.root.classList.add(`${U}--table`),y&&Y.root.classList.add(`${U}--table-row-borders`),J.columnBorders&&Y.root.classList.add(`${U}--table-col-borders`),Y.root.setAttribute("role","grid"),Y.root.setAttribute("aria-colcount",`${J.columns.length}`);let h=-1,w=Y.items.getAttribute("aria-label");if(w)Y.root.setAttribute("aria-label",w),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 v=X.getContainerWidth()-P;q.resolve(v);let c=(p,z)=>{if(!q)return;let b=q.getColumn(p);if(!b)return;let $=b.width,L=q.resizeColumn(p,z);j?.update(q),Q?.updateColumnLayout(q),I(),B.emit("column:resize",{key:b.def.key,index:p,previousWidth:$,width:L})},C=(p)=>{R=p.direction===null?null:p.key,A=p.direction??"asc",j?.updateSort(R,A),B.emit("column:sort",p)},K=(p)=>{B.emit("column:click",p)};if(j=d1(Y.root,F,U,c,C,K),j.rebuild(q),R)j.updateSort(R,A);let I=()=>{if(!q)return;let p=`${q.totalWidth}px`;Y.content.style.minWidth=p,Y.items.style.minWidth=p};I(),Q=c1(Y.items,()=>X.sizeCache,q,J.columns,U,_.ariaIdPrefix,()=>X.dataManager.getTotal(),X.rawConfig.item?.striped,()=>X.getStripeIndexFn());let d=null,l=null,q0=!1,i=()=>{if(q0)return;q0=!0,d=X.methods.get("_getSelectedIds")??null,l=X.methods.get("_getFocusedIndex")??null},m=-1,k=-1,E=-1,W=!0,V=_.overscan,f={start:0,end:0},g={start:0,end:0},t=()=>{if(X.state.isDestroyed)return;let p=X.scrollController.getScrollTop(),z=X.state.viewportState.containerSize,b=X.getVirtualTotal(),$=X.state.viewportState.isCompressed;if(!W&&p===m&&z===k&&b===E)return;m=p,k=z,E=b,W=!1;let L=b+1;if(L!==h)h=L,Y.root.setAttribute("aria-rowcount",`${L}`);X.getVisibleRange(p,z,b,f),g.start=Math.max(0,f.start-V),g.end=Math.min(b-1,f.end+V);let H=X.state.viewportState;H.scrollPosition=p,H.visibleRange.start=f.start,H.visibleRange.end=f.end,H.renderRange.start=g.start,H.renderRange.end=g.end;let a=X.state.lastRenderRange,o=a.start!==g.start||a.end!==g.end;if(!o&&$){Q.updatePositions(X.getCompressionContext());return}if(!o)return;let Q0=$?X.getCompressionContext():void 0,X0=X.dataManager.getItemsInRange(g.start,g.end);i();let x=d?d():zJ,T=l?l():-1;Q.render(X0,g,x,T,Q0),a.start=g.start,a.end=g.end,B.emit("range:change",{range:{start:g.start,end:g.end}})},j0=()=>{if(X.state.isDestroyed)return;X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,W=!0,t()};X.setRenderFns(t,j0),X.setUpdateItemClassesFn((p,z,b)=>{Q?.updateItemClasses(p,z,b)});let n=j,u=-1,N=()=>{let p=Y.viewport.scrollLeft;if(p!==u){if(u=p,n.syncScroll)n.syncScroll(p)}};X.afterScroll.push(N),Y.viewport.addEventListener("scroll",N,{passive:!0}),X.resizeHandlers.push((p,z)=>{if(!q)return;q.resolve(p-P),j?.update(q),Q?.updateColumnLayout(q),I()}),X.methods.set("updateColumns",(p)=>{if(!q||!j)return;if(q.updateColumns(p),q.resolve(X.getContainerWidth()-P),j.rebuild(q),R)j.updateSort(R,A);I(),Q?.updateColumnLayout(q),Q?.clear(),X.forceRender()}),X.methods.set("resizeColumn",(p,z)=>{if(!q)return;let b;if(typeof p==="string"){let $=q.columns;b=-1;for(let L=0;L<$.length;L++)if($[L].def.key===p){b=L;break}if(b===-1)return}else b=p;c(b,z)}),X.methods.set("getColumnWidths",()=>{if(!q)return{};let p={},z=q.columns;for(let b=0;b<z.length;b++)p[z[b].def.key]=z[b].width;return p}),X.methods.set("setSort",(p,z)=>{R=p,A=z??"asc",j?.updateSort(R,A)}),X.methods.set("getSort",()=>{return{key:R,direction:A}}),X.methods.set("_getTableLayout",()=>q),X.methods.set("_updateRenderedItem",(p,z,b,$)=>{Q?.updateItem(p,z,b,$)}),X.methods.set("_replaceTableRenderer",(p)=>{Q=p}),X.methods.set("_updateTableForGroups",(p,z)=>{Q?.setGroupHeaderFn(p,z)}),X.methods.set("_getTableHeaderHeight",()=>F),X.keydownHandlers.push((p)=>{if(p.key!=="ArrowLeft"&&p.key!=="ArrowRight")return;if(!q)return;let z=q.columns;if(z.length===0)return;let b=Y.viewport.clientWidth;if(q.totalWidth<=b)return;let $=Y.viewport.scrollLeft;if(p.key==="ArrowRight"){for(let L=0;L<z.length;L++)if(z[L].offset>$+1){Y.viewport.scrollLeft=z[L].offset,p.preventDefault();return}}else{for(let L=z.length-1;L>=0;L--)if(z[L].offset<$-1){Y.viewport.scrollLeft=z[L].offset,p.preventDefault();return}if($>0)Y.viewport.scrollLeft=0,p.preventDefault()}}),X.contentSizeHandlers.push(()=>{I()}),X.destroyHandlers.push(()=>{Y.viewport.removeEventListener("scroll",N),j?.destroy(),j=null,Q?.destroy(),Q=null,Y.content.style.minWidth="",Y.items.style.minWidth="",Y.root.classList.remove(`${U}--table`),Y.root.removeAttribute("role"),Y.root.removeAttribute("aria-colcount"),Y.viewport.removeAttribute("role"),Y.viewport.setAttribute("tabindex","-1"),Y.content.removeAttribute("role");let p=Y.root.getAttribute("aria-label");if(p)Y.items.setAttribute("aria-label",p),Y.root.removeAttribute("aria-label");Y.root.removeAttribute("aria-rowcount"),Y.items.setAttribute("role","listbox")})},destroy(){j?.destroy(),j=null,Q?.destroy(),Q=null}}};var o2=(J)=>{let q=J?.handle??null,j=J?.ghostClass??"vlist-sort-ghost",Q=J?.shiftDuration??150,X=J?.edgeScrollZone??40,Y=J?.edgeScrollSpeed??20,B=J?.dragThreshold??5,_=J?.ghostContainer??null;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(U){let{dom:Z,emitter:D,config:G}=U,{classPrefix:y}=G,{root:M,viewport:O,items:P}=Z,{sizeCache:F}=U,R=G.horizontal,A=R?"translateX":"translateY",h=Q>0?`transform ${Q}ms ease`:"none",w=`${y}--sorting`,v=`${y}--settling`,c=`${y}-item--drag-source`,C=!1,K=-1,I=-1,d=0,l=0,q0=0,i=0,m=!1,k=null,E=0,W=null,V=0,f=0,g=0,t=null;U.methods.set("isSorting",()=>C||N0);let j0=(J0)=>{return J0.closest("[data-index]")},n=(J0)=>{let B0=J0.dataset.index;return B0===void 0?-1:+B0},u=(J0)=>{let B0=J0.getBoundingClientRect(),V0=J0.cloneNode(!0);return V0.className=`${y}-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`,(_||document.body).appendChild(V0),V0},N=()=>{if(!k)return;let J0=q0-f,B0=i-g;k.style.left=`${J0}px`,k.style.top=`${B0}px`},p=()=>{let J0=U.dataManager.getTotal();if(J0===0)return 0;let B0=O.getBoundingClientRect(),V0=U.scrollController.getScrollTop(),G0=R?q0-f-B0.left+O.scrollLeft+V0:i-g-B0.top+V0,M0=G0+V,H0=F.getOffset(K)+F.getSize(K);if(M0>H0){let L0=F.indexAtOffset(M0),r0=F.getOffset(L0)+F.getSize(L0)/2,x0=M0>r0?L0:L0-1;return Math.min(Math.max(x0,K),J0-1)}let z0=F.getOffset(K);if(G0<z0){let L0=F.indexAtOffset(G0),r0=F.getOffset(L0)+F.getSize(L0)/2,x0=G0<r0?L0:L0+1;return Math.max(Math.min(x0,K),0)}return K},z=()=>{let J0=P.children,B0=V;for(let V0=0;V0<J0.length;V0++){let G0=J0[V0],M0=n(G0);if(M0<0||M0===K)continue;let H0=0;if(I>K){if(M0>K&&M0<=I)H0=-B0}else if(I<K){if(M0>=I&&M0<K)H0=B0}let z0=F.getOffset(M0),L0=Math.round(z0+H0);G0.style.transition=h,G0.style.transform=`${A}(${L0}px)`}},b=()=>{let J0=P.children;for(let B0=0;B0<J0.length;B0++){let V0=J0[B0],G0=n(V0);if(G0>=0)V0.style.transform=`${A}(${Math.round(F.getOffset(G0))}px)`;V0.style.transition=""}},$=()=>{let J0=p();if(J0===I)return;I=J0,z(),D.emit("sort:move",{fromIndex:K,currentIndex:I})},L=!1,H=()=>{let J0=O.getBoundingClientRect();if(R)return q0<J0.left||q0>J0.right;return i<J0.top||i>J0.bottom},a=()=>{let J0=()=>{if(!C)return;let B0=O.getBoundingClientRect(),V0=0,G0=3;if(R){let H0=q0-B0.left,z0=B0.right-q0;if(H0<X){let L0=Math.min(G0,1-H0/X);V0=-Y*L0*L0}else if(z0<X){let L0=Math.min(G0,1-z0/X);V0=Y*L0*L0}}else{let H0=i-B0.top,z0=B0.bottom-i;if(H0<X){let L0=Math.min(G0,1-H0/X);V0=-Y*L0*L0}else if(z0<X){let L0=Math.min(G0,1-z0/X);V0=Y*L0*L0}}let M0=H();if(V0!==0){let H0=U.scrollController.getScrollTop(),z0=F.getTotalSize()-(R?O.clientWidth:O.clientHeight);if(V0<0&&H0<=0||V0>0&&H0>=z0)L=M0;else L=!0,U.scrollController.scrollTo(H0+V0)}else L=M0;E=requestAnimationFrame(J0)};E=requestAnimationFrame(J0)},o=()=>{if(E)cancelAnimationFrame(E),E=0},Q0=(J0=!1)=>{if(C=!1,m=!1,k&&k.parentNode)k.remove();k=null,W=null;let B0=P.children;for(let G0=0;G0<B0.length;G0++){let M0=B0[G0];M0.classList.remove(c);let H0=n(M0);if(H0>=0)M0.style.transform=`${A}(${Math.round(F.getOffset(H0))}px)`;M0.style.transition=""}o(),M.classList.remove(w),document.body.style.cursor="";let V0=window.getSelection();if(V0)V0.removeAllRanges();if(document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",S),document.removeEventListener("pointercancel",e),!J0)U.forceRender()},X0=(J0)=>{if(U.state.isDestroyed)return;if(C)return;if(N0)h0();if(J0.button!==0)return;let B0=J0.target;if(q){if(!B0.closest(q))return}let V0=j0(B0);if(!V0)return;let G0=n(V0);if(G0<0)return;d=J0.clientX,l=J0.clientY,q0=J0.clientX,i=J0.clientY,K=G0,m=!1,W=V0;let M0=V0.getBoundingClientRect();f=J0.clientX-M0.left,g=J0.clientY-M0.top,document.addEventListener("pointermove",x),document.addEventListener("pointerup",S),document.addEventListener("pointercancel",e)},x=(J0)=>{if(q0=J0.clientX,i=J0.clientY,!m){let B0=q0-d,V0=i-l;if(Math.sqrt(B0*B0+V0*V0)<B)return;if(m=!0,C=!0,I=K,M.classList.add(w),document.body.style.cursor="grabbing",V=F.getSize(K),W)k=u(W),W.classList.add(c);let M0=F0();if(M0>=0){let H0=U.dataManager.getItem(M0);t=H0?H0.id:null}else t=null;D.emit("sort:start",{index:K}),a()}if(C){if(J0.preventDefault(),N(),!L)$();else if(H()){if(I!==K)I=K,b()}}},T=(J0,B0)=>{let V0=J0!==B0&&J0>=0&&B0>=0,G0=()=>{if(C=!1,V0){if(M.classList.add(v),D.emit("sort:end",{fromIndex:J0,toIndex:B0}),t!==null)$0(t);Q0(!0),requestAnimationFrame(()=>{M.classList.remove(v)})}else M.classList.add(v),D.emit("sort:cancel",{originalItems:U.getAllLoadedItems()}),Q0(!1),requestAnimationFrame(()=>{M.classList.remove(v)})};if(!k){G0();return}let M0=O.getBoundingClientRect(),H0=U.scrollController.getScrollTop(),z0=F.getOffset(B0),L0=Q>0?Q:150;if(k.style.transition=`left ${L0}ms ease, top ${L0}ms ease`,R)k.style.left=`${M0.left-O.scrollLeft+z0-H0}px`,k.style.top=`${M0.top}px`;else k.style.left=`${M0.left}px`,k.style.top=`${M0.top+z0-H0}px`;let r0=!1,x0=()=>{if(r0)return;r0=!0,k?.removeEventListener("transitionend",x0),G0()};k.addEventListener("transitionend",x0),setTimeout(x0,L0+50)},S=(J0)=>{if(!m){document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",S),document.removeEventListener("pointercancel",e),W=null;return}J0.preventDefault(),document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",S),document.removeEventListener("pointercancel",e),o(),T(K,I)},r=()=>{if(!m)return;document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",S),document.removeEventListener("pointercancel",e),o(),b(),T(K,K)},e=()=>{r()};P.addEventListener("pointerdown",X0);let N0=!1,U0="",Z0=-1,_0=-1,W0=[],F0=()=>{let J0=U.methods.get("_getFocusedIndex");return J0?J0():-1},$0=(J0)=>{let B0=U.methods.get("_focusById");if(B0)B0(J0)},E0=(J0)=>{let B0=R?O.clientWidth:O.clientHeight,V0=U.scrollController.getScrollTop(),G0=N2(J0,F,V0,B0);if(G0!==V0)U.scrollController.scrollTo(U.adjustScrollPosition(G0))},P0=(J0)=>{Z.liveRegion.textContent="",Z.liveRegion.offsetHeight,Z.liveRegion.textContent=J0},k0=(J0)=>{let B0=U.dataManager.getItem(J0);if(!B0)return"";return P.querySelector(`[data-index="${J0}"]`)?.textContent?.trim()||String(B0.id)},D0=()=>String(U.dataManager.getTotal()),A0=(J0)=>{let B0=P.children;for(let V0=0;V0<B0.length;V0++)B0[V0].style.transition=J0},R0=(J0)=>{let B0=U.dataManager.getItem(J0);if(!B0)return;N0=!0,U0=B0.id,Z0=J0,_0=J0;let V0=U.dataManager.getTotal();W0=[];for(let G0=0;G0<V0;G0++)W0.push(U.dataManager.getItem(G0));M.classList.add(w),D.emit("sort:start",{index:J0}),f0(),P0(`Grabbed ${k0(J0)}. Current position ${J0+1} of ${D0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},w0=()=>{if(!N0)return;N0=!1;let J0=_0,B0=k0(J0);A0("none"),M.classList.remove(w),l0(),$0(U0),U.forceRender(),P0(`${B0} dropped. Final position ${J0+1} of ${D0()}.`),W0=[],requestAnimationFrame(()=>{A0("")})},h0=()=>{if(!N0)return;N0=!1;let J0=Z0;if(A0("none"),M.classList.remove(w),l0(),_0!==J0)D.emit("sort:cancel",{originalItems:W0});$0(U0),U.forceRender(),E0(J0),P0(`Reorder cancelled. Returned to position ${J0+1} of ${D0()}.`),W0=[],requestAnimationFrame(()=>{A0("")})},u0=(J0)=>{if(!N0)return;let B0=U.dataManager.getTotal(),V0=_0+J0;if(V0<0||V0>=B0)return;let G0=_0,M0=V0;A0("none"),D.emit("sort:end",{fromIndex:G0,toIndex:M0}),_0=M0,$0(U0),U.forceRender(),E0(M0),f0(),P0(`${k0(M0)} moved. New position ${M0+1} of ${D0()}.`),requestAnimationFrame(()=>{A0("")})},S0=`${y}-item--kb-sorting`,l0=()=>{let J0=P.querySelectorAll(`.${S0}`);for(let B0=0;B0<J0.length;B0++)J0[B0].classList.remove(S0)},f0=()=>{l0();let J0=P.querySelector(`[data-id="${U0}"]`);if(J0)J0.classList.add(S0)};U.afterRenderBatch.push(()=>{if(N0)f0()});let X2=(J0)=>{if(U.state.isDestroyed)return;if(C){if(J0.key==="Escape")J0.preventDefault(),J0.stopImmediatePropagation(),r();return}if(N0)switch(J0.key){case" ":case"Enter":J0.preventDefault(),J0.stopImmediatePropagation(),w0();return;case"Escape":J0.preventDefault(),J0.stopImmediatePropagation(),h0();return;case"ArrowUp":case"ArrowLeft":J0.preventDefault(),J0.stopImmediatePropagation(),u0(-1);return;case"ArrowDown":case"ArrowRight":J0.preventDefault(),J0.stopImmediatePropagation(),u0(1);return;default:if(!J0.key.startsWith("F")&&J0.key!=="Tab")J0.preventDefault(),J0.stopImmediatePropagation();return}if(J0.key===" "&&!J0.shiftKey&&!J0.ctrlKey&&!J0.metaKey){let B0=F0();if(B0>=0)J0.preventDefault(),J0.stopImmediatePropagation(),R0(B0)}};M.addEventListener("keydown",X2);let i0=`${y}-sort-instructions`,I0=document.createElement("div");I0.id=i0,I0.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",I0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",M.appendChild(I0),U.afterRenderBatch.push((J0)=>{for(let B0=0;B0<J0.length;B0++){let V0=J0[B0].element;V0.setAttribute("aria-roledescription","sortable item"),V0.setAttribute("aria-describedby",i0)}}),U.afterRenderBatch.push((J0)=>{if(!C)return;for(let B0=0;B0<J0.length;B0++){let{index:V0,element:G0}=J0[B0];if(V0===K)G0.classList.add(c),W=G0;else{G0.classList.remove(c);let M0=0;if(I>K){if(V0>K&&V0<=I)M0=-V}else if(I<K){if(V0>=I&&V0<K)M0=V}let H0=Math.round(F.getOffset(V0)+M0);G0.style.transform=`${A}(${H0}px)`}}}),U.destroyHandlers.push(()=>{if(N0)h0();Q0(),P.removeEventListener("pointerdown",X0),M.removeEventListener("keydown",X2),I0.remove()})}}};var l1=(J,q)=>{let j=new Map,Q=(Y)=>j.get(Y)??J,X=n0(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 B of j.keys())if(B>=Y)j.delete(B)}X=n0(Q,Y)},isVariable(){return!0},setMeasuredSize(Y,B){j.set(Y,B)},isMeasured(Y){return j.has(Y)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var n2=()=>{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 B=X.gap??0,_=q.getVirtualTotal(),U=p0(q.rawConfig.padding),Z=e0(U,j),D=l1(Y+B,_),G=q.methods.get("_setSizeCache"),y=q.methods.get("_setConstrainSize");if(!G||!y)throw Error("[vlist/withAutoSize] Incompatible builder version");G(D),y((C)=>D.isMeasured(C));let M=q.scrollController,O=q.state.viewportState,P=new WeakMap,F=0,R=!1,A=2,h=(C)=>{let K=M.getScrollTop(),I=O.containerSize;if(I<=0)return!1;return K>=Math.max(0,C+Z-I)-A},w=()=>{let C=D.getTotalSize(),K=O.containerSize;if(K<=0)return;let I=Math.max(0,C+Z-K);if(I>M.getScrollTop())M.scrollTo(I)},v=()=>{q.updateContentSize(D.getTotalSize())},c=()=>{if(R){let C=q.dom.viewport,K=C.scrollHeight,I=K-C.clientHeight,d=M.getScrollTop(),l=I>0&&d>=I-A,q0=q.getVirtualTotal(),i=q0&&O.renderRange.end>=q0-1,m=Math.abs(D.getTotalSize()+Z-K),k=l||i&&I>0&&d>=I-m-A;if(v(),R=!1,k)C.scrollHeight,w(),q.forceRender()}};J=new ResizeObserver((C)=>{if(q.state.isDestroyed)return;let K=!1,I=O.visibleRange.start;for(let W of C){let V=P.get(W.target);if(V===void 0)continue;let f=j?W.borderBoxSize[0].inlineSize:W.borderBoxSize[0].blockSize;if(!D.isMeasured(V)){let g=f+B,t=D.getSize(V);if(D.setMeasuredSize(V,g),K=!0,V<I&&g!==t)F+=g-t;J.unobserve(W.target);let j0=W.target;if(j)j0.style.width=`${f}px`;else j0.style.height=`${f}px`}}if(!K)return;let d=D.getTotalSize();if(D.rebuild(q.getVirtualTotal()),F)M.scrollTo(M.getScrollTop()+F),F=0;let l=h(d),q0=q.getVirtualTotal(),i=q0&&O.renderRange.end>=q0-1,m=q.dom.viewport,k=m.scrollHeight-m.clientHeight,E=k>0&&M.getScrollTop()>=k-A;if(l||i||!M.isScrolling()){if(v(),R=!1,l||i&&E)m.scrollHeight,w()}else R=!0;q.forceRender()}),q.afterRenderBatch.push((C)=>{for(let{index:K,element:I}of C)if(!D.isMeasured(K))P.set(I,K),J.observe(I)}),q.idleHandlers.push(c),q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var CJ=50,vJ=0.1;function r1(J){let q=0,j=0,Q=0;function X(){return Q>0?j/Q:0}function Y(U){if(q=U,U>vJ&&U<CJ)j+=U,Q++}function B(){let U=J.getTotal();if(U===0)return 0;let Z=J.getItemSize();if(Z<=0)return 0;let D=J.getContainerSize();if(D<=0)return 0;let G=J.getScrollPosition(),y=typeof J.getColumns==="function"?J.getColumns():1,O=Math.ceil(U/y)*Z,F=Math.min(O,j2)-D,R=O-D,A=F>0?R/F:1,h=G*A,w=Math.ceil((h+D)/Z);return Math.min(w*y,U)}function _(){let U=J.getTotal(),Z=B();return{progress:U>0?Math.min(100,Math.max(0,Z/U*100)):0,velocity:q,velocityAvg:X(),itemCount:Z,total:U}}return{getState:_,onVelocity:Y}}export{a2 as withTable,o2 as withSortable,r2 as withSnapshots,l2 as withSelection,S2 as withScrollbar,f2 as withScale,I2 as withPage,c2 as withMasonry,m2 as withGroups,d2 as withGrid,n2 as withAutoSize,h2 as withAsync,w2 as vlist,r1 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 b=Q(G,Y?.(G));if(b!==q){let O=G-j;$.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:O}),B=B+1+O,q=b,j=G}}return $.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:J-j}),$},c2=(J,Q)=>{if(J.length===0||Q.length===0)return[];let Y=J.length+Q.length,$=Array(Y),q=0;for(let j of Q){$[q]={id:`__group_header_${j.groupIndex}`,__groupHeader:!0,groupKey:j.key,groupIndex:j.groupIndex},q++;for(let B=0;B<j.count;B++)$[q]=J[j.firstDataIndex+B],q++}return $},r2=(J,Q,Y=!1)=>{let $=typeof Q==="number"?(q)=>Q:Q;return(q)=>{let j=J.getEntry(q);if(j.type==="header"){if(Y&&j.group.groupIndex===0)return 0;return J.getHeaderHeight(j.group.groupIndex)}return $(j.dataIndex)}},l2=(J,Q,Y)=>{let $=d2(J,Q.getGroupForIndex,Y),q=J+$.length,j=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return q},get groupCount(){return $.length},get groups(){return $},getEntry:(L)=>{if($.length===0)return{type:"item",dataIndex:L,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let Z=f2($,L),V=$[Z];if(L===V.headerLayoutIndex)return{type:"header",group:V};let K=L-V.headerLayoutIndex-1;return{type:"item",dataIndex:V.firstDataIndex+K,group:V}},layoutToDataIndex:(L)=>{if($.length===0)return L;let Z=f2($,L),V=$[Z];if(L===V.headerLayoutIndex)return-1;let K=L-V.headerLayoutIndex-1;return V.firstDataIndex+K},dataToLayoutIndex:(L)=>{if($.length===0)return L;let Z=m2($,L),V=$[Z],K=L-V.firstDataIndex;return V.headerLayoutIndex+1+K},getGroupAtLayoutIndex:(L)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let Z=f2($,L);return $[Z]},getGroupAtDataIndex:(L)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let Z=m2($,L);return $[Z]},getHeaderHeight:typeof j==="number"?(L)=>j:(L)=>{let Z=$[L];if(!Z)return 0;return j(Z.key,L)},rebuild:(L,Z)=>{$=d2(L,Q.getGroupForIndex,Z??Y),q=L+$.length}}};var a2=(J,Q,Y,$,q,j=!1,B=0,G,b)=>{let O=j?"width":"height",N=j?"height":"width",y=j?"X":"Y",S=(E,X)=>{E.style[O]=`${X}px`},L=b??(()=>{let E=document.createElement("div");return E.className=`${q}-sticky-header`,E.setAttribute("role","presentation"),E.setAttribute("aria-hidden","true"),E.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${B||0}px`:`top:${B||0}px`),J.insertBefore(E,J.firstChild),E})(),Z=()=>{let E=document.createElement("div");return E.className="sticky-group",E.style.position="absolute",E.style.willChange="transform",E.style[N]="100%",E},V=Z(),K=Z();if(L.append(V,K),!b)J.insertBefore(L,J.firstChild);let W=V,P=K,k=Q.groups,z=[],u=[],I=[],n=0,r=()=>{k=Q.groups,n=k.length,z=Array(n),u=Array(n),I=Array(n);let E=G?G():1;for(let X=0;X<n;X++)z[X]=Y.getOffset(k[X].headerLayoutIndex)*E,u[X]=Q.getHeaderHeight(X),I[X]=u[X]*E};r();let e=-1,q2=0,X2=0,K2=-1,g=!1,c=0,H=!1,_=(E,X)=>{$(E,X);let T=u[X];return S(E,T),T},D=(E)=>{E.replaceChildren(),E.style.transform=""},U=(E)=>{if(E===e)return;if(e=E,q2=0,X2=0,E<0||E>=n){D(W);return}q2=_(W,E),X2=I[E],S(L,q2),W.style.transform=""},w=(E)=>{if(E===c)return;c=E;let X=Math.round(E);W.style.transform=`translate${y}(${X}px)`,P.style.transform=`translate${y}(${X+q2}px)`},m=()=>{c=0,W.style.transform="",P.style.transform=""},i=()=>{if(!H)return;let E=W;W=P,P=E,e=K2,q2=e>=0?u[e]:0,X2=e>=0?I[e]:0,S(L,q2),D(P),K2=-1,H=!1,m()},l=()=>{if(!H)return;D(P),K2=-1,H=!1,m()},s=!!b,t=()=>{if(g)return;if(g=!0,s)L.style.visibility="";else L.style.display=""},M=()=>{if(!g)return;if(g=!1,s)L.style.visibility="hidden";else L.style.display="none";D(W),e=-1,q2=0,X2=0,l()},v=(E)=>{if(n===0){M();return}if(E<z[0]){M();return}let X=0,T=n-1;while(X<T){let p=X+T+1>>>1;if(z[p]+I[p]<=E)X=p;else T=p-1}if(!g)t();U(X);let R=X+1;if(R<n){let p=z[R]-E;if(p<=0&&p>-X2){if(K2!==R||!H)K2=R,_(P,R),H=!0;let f=X2>0?p/X2*q2:p;w(f)}else if(p<=-X2){if(H)i()}else if(H)l()}else if(H)l()},A=()=>{r();let E=e;if(e=-1,q2=0,X2=0,E>=0)U(E)},h=()=>{L.remove(),e=-1,q2=0,X2=0,K2=-1,g=!1,H=!1};if(!b)L.style.display="none";return{update:v,refresh:A,show:t,hide:M,destroy:h}};var s2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.isHeaderFn,q={row:0,col:0},j=(Z)=>{if(Z<=0)return 0;if(!$)return Math.ceil(Z/Q);let V=0,K=0,W=0;for(let P=0;P<Z;P++)if($(P)){if(W++,K>0)V++,K=0;V++,K=0}else if(K++,K>=Q)V++,K=0;if(K>0)V++;return V},B=(Z)=>{return q.row=G(Z),q.col=b(Z),q},G=(Z)=>{if(!$)return Math.floor(Z/Q);let V=0,K=0;for(let W=0;W<=Z;W++)if($(W)){if(K>0)V++,K=0;if(W===Z)return V;V++,K=0}else{if(W===Z)return V;if(K++,K>=Q)V++,K=0}return console.warn(`⚠️ getRow(${Z}) fell through - returning ${V}`),V},b=(Z)=>{if(!$)return Z%Q;if($(Z))return 0;let V=0;for(let K=0;K<=Z;K++)if($(K))V=0;else{if(K===Z)return V;if(V++,V>=Q)V=0}return V},O=(Z,V,K)=>{if(K<=0)return{start:0,end:-1};if(!$){let u=Math.max(0,Z*Q),I=Math.min(K-1,(V+1)*Q-1);return{start:u,end:I}}let W=-1,P=-1,k=0,z=0;for(let u=0;u<K;u++){if($(u)){if(z>0)k++,z=0;if(k>=Z&&k<=V){if(W===-1)W=u;P=u}k++,z=0}else{if(k>=Z&&k<=V){if(W===-1)W=u;P=u}if(z++,z>=Q)k++,z=0}if(k>V&&z===0)break}if(W===-1)return{start:0,end:-1};return{start:W,end:P}},N=(Z,V,K)=>{if(V<0||V>=Q)return-1;let W=Z*Q+V;if(W<0||W>=K)return-1;return W},y=(Z)=>{let V=(Q-1)*Y;return Math.max(0,(Z-V)/Q)};return{get columns(){return Q},get gap(){return Y},update:(Z)=>{if(Z.columns!==void 0)Q=Math.max(1,Math.floor(Z.columns));if(Z.gap!==void 0)Y=Z.gap;if(Z.isHeaderFn!==void 0)$=Z.isHeaderFn},getTotalRows:j,getPosition:B,getRow:G,getCol:b,getItemRange:O,getItemIndex:N,getColumnWidth:y,getColumnOffset:(Z,V)=>{let K=y(V);return Z*(K+Y)}}};var M2=16000000;var n2="x",o2=20,S2="_isPlaceholder",O2="__placeholder_";var F2=(J,Q,Y)=>{if(String(Y).startsWith(O2))return!1;let $=O2+Q;if(J.has($))return J.delete($),J.add(Y),!0;return!1},i2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),I2=(J,Q,Y)=>{if(Y==="none")return J;let $=new Set(J.selected);if(Y==="single"){if($.clear(),Q.length>0)$.add(Q[0])}else for(let q of Q)$.add(q);return{...J,selected:$}},p2=(J,Q)=>{let Y=new Set(J.selected);for(let $ of Q)Y.delete($);return{...J,selected:Y}},t2=(J,Q,Y)=>{if(Y==="none")return J;if(J.selected.has(Q))return p2(J,[Q]);else return I2(J,[Q],Y)},e2=(J,Q,Y)=>{if(Y!=="multiple")return J;return{...J,selected:new Set(Q.map(($)=>$.id))}},JJ=(J)=>({...J,selected:new Set});var QJ=(J,Q)=>{return J.selected.has(Q)},$J=(J)=>{return Array.from(J.selected)},YJ=(J,Q)=>{let Y=[];for(let $ of J.selected){let q=Q($);if(q)Y.push(q)}return Y};var IJ=(J,Q)=>{let Y=Q;return{getOffset:($)=>$*J,getSize:($)=>J,indexAtOffset:($)=>{if(Y===0||J===0)return 0;return Math.max(0,Math.min(Math.floor($/J),Y-1))},getTotalSize:()=>Y*J,getTotal:()=>Y,rebuild:($)=>{Y=$},isVariable:()=>!1}},pJ=(J,Q)=>{let Y=Q,$=new Float64Array(0),q=(B)=>{Y=B,$=new Float64Array(B+1),$[0]=0;for(let G=0;G<B;G++)$[G+1]=$[G]+J(G)};q(Q);let j=(B)=>{if(Y===0)return 0;if(B<=0)return 0;if(B>=$[Y])return Y-1;let G=0,b=Y-1;while(G<b){let O=G+b+1>>>1;if($[O]<=B)G=O;else b=O-1}return G};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=Y)return $[Y];return $[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>j(B),getTotalSize:()=>$[Y]??0,getTotal:()=>Y,rebuild:(B)=>q(B),isVariable:()=>!0}},T2=(J,Q)=>{if(typeof J==="number")return IJ(J,Q);return pJ(J,Q)},h2=(J,Q,Y,$)=>{if($===0)return 0;if(!J.isVariable())return Math.ceil(Y/J.getSize(0));let q=0,j=0,B=Q;while(B<$&&j<Y)j+=J.getSize(B),q++,B++;return Math.max(1,q)};var R2=(J,Q,Y)=>{let $=Q.getTotalSize(),q=Y===!0||$>M2,j=$>M2?M2:$,B=$>0?j/$:1;return{isCompressed:q,actualSize:$,virtualSize:j,ratio:B}},jJ=(J,Q,Y,$,q,j)=>{if($===0||Q===0)return j.start=0,j.end=-1,j;if(!q.isCompressed||q.ratio===1){let L=Y.indexAtOffset(J),Z=Y.indexAtOffset(J+Q);if(Z<$-1)Z++;return j.start=Math.max(0,L),j.end=Math.min($-1,Math.max(0,Z)),j}let{virtualSize:B}=q,G=J/B,b=Y.getTotalSize(),O=G*b,N=Y.indexAtOffset(O),y=h2(Y,Math.max(0,N),Q,$),S=N+y;return j.start=Math.max(0,N),j.end=Math.min($-1,Math.max(0,S)),j},qJ=(J,Q,Y,$)=>{if(Y===0)return $.start=0,$.end=-1,$;return $.start=Math.max(0,J.start-Q),$.end=Math.min(Y-1,J.end+Q),$},H2=(J,Q,Y,$,q,j,B)=>{if(!j.isCompressed||$===0)return Y.getOffset(J);if(j.ratio===1)return Y.getOffset(J)-Q;let{virtualSize:G}=j,b=Q/G,O=Y.getTotalSize(),N=b*O;return Y.getOffset(J)-N},BJ=(J,Q,Y,$,q,j="start")=>{if($===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/$*q.virtualSize;let N=Q.getSize(J);switch(j){case"center":B-=(Y-N)/2*q.ratio;break;case"end":B-=(Y-N)*q.ratio;break}return Math.max(0,B)}B=Q.getOffset(J);let G=Q.getSize(J);switch(j){case"center":B-=(Y-G)/2;break;case"end":B-=Y-G;break}let b=q.virtualSize-Y;return Math.max(0,Math.min(B,b))},KJ=(J,Q,Y,$)=>{if(Y===0)return 0;if($.isCompressed&&$.ratio!==1){let q=J/$.virtualSize;return Math.floor(q*Y)}return Q.indexAtOffset(J)},XJ=(J,Q)=>{if(typeof Q==="number")return J*Q>M2;return Q.getTotalSize()>M2},UJ=(J)=>{if(J<=0)return 0;return Math.floor(M2/J)},NJ=(J,Q,Y)=>{let $=R2(J,Q,Y);if(!$.isCompressed)return`No compression needed (${J} items, ${($.actualSize/1e6).toFixed(2)}M px)`;return`Compressed to ${($.ratio*100).toFixed(1)}% (${J} items, ${($.actualSize/1e6).toFixed(1)}M px → ${($.virtualSize/1e6).toFixed(1)}M px virtual)`};var P2=(J,Q,Y)=>{let $=Array.from(Q).sort((B,G)=>B-G);if($.length<=1)return;let q=[];for(let B=0;B<$.length;B++){let G=Y($[B]);if(G)q.push(G)}if(q.length<=1)return;let j=J.firstChild;for(let B=0;B<q.length;B++){let G=q[B];if(G===j)j=j.nextSibling;else J.insertBefore(G,j)}};var hJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-row"),j.removeAttribute("data-col"),Q.push(j)},clear:()=>{Q.length=0}}},xJ=1,ZJ=(J,Q,Y,$,q,j,B,G,b=!1,O)=>{let N=hJ(),y=new Map,S=j,L=!1,Z=0,V="",K=-1,W={selected:!1,focused:!1},P=(M,v)=>{return W.selected=M,W.focused=v,W},k=`${q}-item ${q}-grid-item`,z=`${q}-group-header`,u=`${q}-item--selected`,I=`${q}-item--focused`,n=`${q}-item--placeholder`,r=`${q}-item--replaced`,e=(M,v)=>{if(typeof v==="string")M.innerHTML=v;else M.replaceChildren(v)},q2=(M,v,A)=>{M.classList.toggle(u,v),M.classList.toggle(I,A)},X2=(M,v)=>{let A=$.getRow(M);if(v?.compression?.isCompressed)return H2(A,v.scrollPosition,Y,v.totalItems,v.containerSize,v.compression,v.rangeStart);return Y.getOffset(A)},K2=(M,v)=>{let A=L&&$.getCol(M)===0,h=A?0:$.getCol(M),E=A?0:$.getColumnOffset(h,S),X;if(L){let T=$.getRow(M),R=0,p=new Set;for(let f=0;f<M;f++){let d=$.getRow(f);if(d<T&&!p.has(d)){let o=Y.getSize(f);R+=o,p.add(d)}}X=R}else X=X2(M,v);if(b)return`translate(${Math.round(X)}px, ${Math.round(E)}px)`;return`translate(${Math.round(E)}px, ${Math.round(X)}px)`},g=(M,v)=>{M.style.transform=v},c=(M,v)=>{let A=M.classList.contains(z),h=A?S:$.getColumnWidth(S),E;if(L||A)E=Y.getSize(v)-$.gap;else{let X=$.getRow(v);E=Y.getSize(X)-$.gap}if(b)M.style.width=`${E}px`,M.style.height=`${h}px`;else M.style.width=`${h}px`,M.style.height=`${E}px`},H=(M,v,A,h,E)=>{let X=N.acquire(),T=!!v.__groupHeader,R=P(A,h);if(X.className=T?z:k,X.dataset.index=String(M),X.dataset.id=String(v.id),X.dataset.row=String($.getRow(M)),X.dataset.col=String($.getCol(M)),T)X.setAttribute("role","presentation"),X.removeAttribute("aria-selected"),X.removeAttribute("aria-setsize"),X.removeAttribute("aria-posinset"),X.removeAttribute("id");else{if(X.setAttribute("role","option"),X.ariaSelected=String(A),G)X.id=`${G}-item-${M}`;if(B){let d=B();if(d!==K)K=d,V=String(d);X.setAttribute("aria-setsize",V);let o=O?O(M):M+1;X.setAttribute("aria-posinset",String(o))}}c(X,M);let p=Q(v,M,R);if(e(X,p),String(v.id).startsWith(O2))X.classList.add(n);return q2(X,A,h),g(X,E),{element:X,lastItemId:v.id,lastSelected:A,lastFocused:h,lastTransform:E,lastSeenFrame:Z}},_=(M,v,A,h,E)=>{if(Z++,v.start===0&&M.length>0)L=y2(M[0]);for(let[R,p]of y)if(R>=v.start&&R<=v.end)p.lastSeenFrame=Z;else if(Z-p.lastSeenFrame>xJ)N.release(p.element),y.delete(R);let X=!1;if(B){let R=B();if(R!==K)K=R,V=String(R),X=!0}let T=null;for(let R=v.start;R<=v.end;R++){let p=R-v.start,f=M[p];if(!f){console.warn(`⚠️ RENDER: Missing item at index ${R} (range: ${v.start}-${v.end}, items.length: ${M.length})`);continue}let d=A.has(f.id),o=R===h,F=y.get(R);if(F){let C=F.lastItemId!==f.id,x=F.lastSelected!==d,$2=F.lastFocused!==o;if(C){let B2=String(F.lastItemId),U2=String(f.id),_2=B2.startsWith(O2),a=U2.startsWith(O2);if(!a&&F2(A,R,f.id))d=!0;let Y2=P(d,o),N2=Q(f,R,Y2);if(e(F.element,N2),F.element.dataset.id=U2,F.element.dataset.row=String($.getRow(R)),F.element.dataset.col=String($.getCol(R)),c(F.element,R),F.element.classList.toggle(n,a),_2&&!a)F.element.classList.add(r),setTimeout(()=>F.element.classList.remove(r),300);if(F.lastItemId=f.id,!f.__groupHeader){let Z2=O?O(R):R+1;F.element.setAttribute("aria-posinset",String(Z2))}}if(C||x||$2)q2(F.element,d,o),F.element.ariaSelected=String(d),F.lastSelected=d,F.lastFocused=o;let J2=K2(R,E);if(F.lastTransform!==J2)g(F.element,J2),F.lastTransform=J2;if(X&&!f.__groupHeader)F.element.setAttribute("aria-setsize",V)}else{if(F2(A,R,f.id))d=!0;let C=K2(R,E),x=H(R,f,d,o,C);if(!T)T=document.createDocumentFragment();T.appendChild(x.element),y.set(R,x)}}if(T)J.appendChild(T)},D=(M)=>{for(let[v,A]of y){let h=K2(v,M);if(A.lastTransform!==h)g(A.element,h),A.lastTransform=h}},U=(M,v,A,h)=>{let E=y.get(M);if(!E)return;let X=P(A,h),T=Q(v,M,X);e(E.element,T),q2(E.element,A,h),E.element.dataset.id=String(v.id),E.element.ariaSelected=String(A),c(E.element,M),E.lastItemId=v.id,E.lastSelected=A,E.lastFocused=h},w=(M,v,A)=>{let h=y.get(M);if(!h)return;let E=h.lastSelected!==v,X=h.lastFocused!==A;if(E||X)q2(h.element,v,A),h.lastSelected=v,h.lastFocused=A},m=(M)=>{return y.get(M)?.element},i=(M)=>{if(Math.abs(M-S)<1)return;S=M;for(let[v,A]of y){c(A.element,v);let h=K2(v);g(A.element,h),A.lastTransform=h}},l=()=>{P2(J,y.keys(),(M)=>y.get(M)?.element)},s=()=>{for(let[,M]of y)N.release(M.element);y.clear()};return{render:_,updatePositions:D,updateItem:U,updateItemClasses:w,getElement:m,sortDOM:l,updateContainerWidth:i,clear:s,destroy:()=>{s(),N.clear()}}};var _J=(J,Q=50,Y=1/0,$=!0)=>{let q=J,j=[],B=0,G=()=>{j=q.map((K,W)=>({def:K,index:W,width:0,minWidth:gJ(K.minWidth??Q,1),maxWidth:K.maxWidth??Y,resizable:K.resizable??$,offset:0}))},b=(K)=>{if(j.length===0){B=0;return}let W=0,P=0;for(let k=0;k<j.length;k++){let z=j[k],u=z.def;if(u.width!==void 0)z.width=x2(u.width,z.minWidth,z.maxWidth),W+=z.width;else P++}if(P>0){let z=Math.max(0,K-W)/P;for(let u=0;u<j.length;u++){let I=j[u];if(I.def.width===void 0)I.width=x2(z,I.minWidth,I.maxWidth)}}O()},O=()=>{let K=0;for(let W=0;W<j.length;W++){let P=j[W];P.offset=K,K+=P.width}B=K},N=(K,W)=>{if(K<0||K>=j.length)return 0;let P=j[K];if(!P.resizable)return P.width;let k=x2(W,P.minWidth,P.maxWidth);return P.width=k,O(),k},y=(K)=>{return j[K]},S=(K)=>{if(j.length===0)return;if(K<0)return j[0];if(K>=B)return j[j.length-1];let W=0,P=j.length-1;while(W<P){let k=W+P>>>1,z=j[k];if(K<z.offset)P=k-1;else if(K>=z.offset+z.width)W=k+1;else return z}return j[W]},L=(K)=>{if(K<0||K>=j.length)return 0;return j[K].offset},Z=(K)=>{if(K<0||K>=j.length)return 0;return j[K].width},V=(K)=>{q=K,G()};return G(),{get columns(){return j},get totalWidth(){return B},resolve:b,updateColumns:V,resizeColumn:N,getColumn:y,getColumnAtX:S,getColumnOffset:L,getColumnWidth:Z}},x2=(J,Q,Y)=>Math.min(Y,Math.max(Q,J)),gJ=(J,Q)=>Math.max(Q,J);var DJ=(J,Q,Y,$,q,j)=>{let B=document.createElement("div");B.setAttribute("role","rowgroup");let G=document.createElement("div");G.className=`${Y}-table-header`,G.setAttribute("role","row"),G.setAttribute("aria-rowindex","1"),G.style.height=`${Q}px`;let b=document.createElement("div");b.className=`${Y}-table-header-scroll`,b.setAttribute("role","presentation"),G.appendChild(b),B.appendChild(G),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let O=[],N=[],y=[],S=!0,L=null,Z="asc",V=null,K=!1,W=-1,P=0,k=0,z=(_,D)=>{let U=document.createElement("div");U.className=`${Y}-table-header-cell`,U.setAttribute("role","columnheader"),U.setAttribute("aria-colindex",String(D+1)),U.dataset.columnKey=_.def.key;let w=_.def.align;if(w==="center")U.classList.add(`${Y}-table-header-cell--center`);else if(w==="right")U.classList.add(`${Y}-table-header-cell--right`);let m=document.createElement("div");m.className=`${Y}-table-header-content`;let i=_.def.header?_.def.header(_.def):_.def.label;if(typeof i==="string")m.textContent=i;else m.appendChild(i);if(U.appendChild(m),_.def.sortable){let l=document.createElement("span");l.className=`${Y}-table-header-sort`,l.setAttribute("aria-hidden","true"),U.appendChild(l),y.push(l),U.classList.add(`${Y}-table-header-cell--sortable`)}else y.push(null);if(_.resizable){let l=document.createElement("div");l.className=`${Y}-table-header-resize`,l.dataset.resizeIndex=String(D),U.appendChild(l),N.push(l)}return U},u=(_)=>{V=_,b.textContent="",O=[],N=[],y=[];let D=_.columns;for(let U=0;U<D.length;U++){let w=D[U],m=z(w,U);O.push(m),b.appendChild(m)}if(I(_),L)n(L,Z)},I=(_)=>{V=_;let D=_.columns;b.style.width=`${_.totalWidth}px`;for(let U=0;U<O.length&&U<D.length;U++){let w=O[U],m=D[U];w.style.width=`${m.width}px`}},n=(_,D)=>{if(L=_,Z=D,!V)return;let U=V.columns;for(let w=0;w<y.length&&w<U.length;w++){let m=y[w];if(!m)continue;if(U[w].def.key===_&&_!==null)m.textContent=D==="asc"?"▲":"▼",m.style.opacity="0.7",O[w].setAttribute("aria-sort",D==="asc"?"ascending":"descending");else m.textContent="",m.style.opacity="0",O[w].removeAttribute("aria-sort")}},r=(_)=>{b.style.transform=`translateX(${-_}px)`},e=(_)=>{let D=_.target;if(!D.dataset.resizeIndex)return;if(_.preventDefault(),_.stopPropagation(),W=parseInt(D.dataset.resizeIndex,10),!V)return;let U=V.getColumn(W);if(!U||!U.resizable)return;K=!0,P=_.clientX,k=U.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",D.classList.add(`${Y}-table-header-resize--active`),D.setPointerCapture(_.pointerId),D.addEventListener("pointermove",q2),D.addEventListener("pointerup",X2),D.addEventListener("pointercancel",X2)},q2=(_)=>{if(!K||!V)return;let D=_.clientX-P;if(Math.abs(D)<1)return;let U=Math.max(0,k+D);$(W,U)},X2=(_)=>{if(!K)return;let D=_.target;D.removeEventListener("pointermove",q2),D.removeEventListener("pointerup",X2),D.removeEventListener("pointercancel",X2);try{D.releasePointerCapture(_.pointerId)}catch{}D.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",K=!1,W=-1},K2=(_)=>{let D=_.target;if(D.dataset.resizeIndex!==void 0)return;if(K)return;let U=D;while(U&&!U.dataset.columnKey)if(U=U.parentElement,U===G||U===null)return;if(!U||!U.dataset.columnKey)return;let w=U.dataset.columnKey;if(!V)return;let m=V.columns,i=-1;for(let s=0;s<m.length;s++)if(m[s].def.key===w){i=s;break}if(i===-1)return;let l=m[i];if(j)j({key:w,index:i,event:_});if(l.def.sortable&&q){let s;if(L===w)if(Z==="asc")s="desc";else s=null;else s="asc";q({key:w,index:i,direction:s})}};return G.addEventListener("pointerdown",e),G.addEventListener("click",K2),{element:G,update:I,updateSort:n,rebuild:u,show:()=>{if(S)return;S=!0,G.style.display=""},hide:()=>{if(!S)return;S=!1,G.style.display="none"},destroy:()=>{G.removeEventListener("pointerdown",e),G.removeEventListener("click",K2),J.style.removeProperty("--vlist-table-header-height"),B.remove(),O=[],N=[],y=[],V=null,S=!1},syncScroll:r}};var uJ=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Q)=>{if(Q.parentNode?.removeChild(Q),J.length<200)Q.className="",Q.removeAttribute("data-id"),Q.removeAttribute("data-index"),Q.removeAttribute("aria-selected"),Q.removeAttribute("aria-rowindex"),Q.removeAttribute("role"),Q.style.cssText="",Q.textContent="",J.push(Q)},clear:()=>{J.length=0}}},GJ=(J,Q,Y,$,q,j,B,G,b)=>{let O=uJ(),N=new Map,y=-1,S=Y,L=null,Z=null,V=null,K=(X,T)=>{Z=X,V=T},W=(X,T)=>{if(T)X.setAttribute("aria-selected","true");else X.removeAttribute("aria-selected")},P=(X,T,R,p)=>{X.setAttribute("role",T),X.setAttribute("data-id",String(R)),X.setAttribute("data-index",String(p))},k=(X)=>String(X).startsWith("__placeholder_"),z=`${q}-item ${q}-table-row`,u=`${q}-item--selected`,I=`${q}-item--focused`,n=`${q}-table-cell`,r=`${q}-table-cell--center`,e=`${q}-table-cell--right`,q2=`${q}-item--odd`,X2=`${q}-item--placeholder`,K2=`${q}-item--replaced`,g=`${q}-item ${q}-table-row ${q}-table-group-header`,c=`${q}-table-group-header-content`,H=(X,T,R,p,f=!1)=>{if(R.def.cell){let d=R.def.cell(T,R.def,p);if(typeof d==="string")X.innerHTML=d;else X.replaceChildren(d)}else{let d=T[R.def.key],o=d!=null?String(d):"";if(f&&o)X.innerHTML=`<span>${o}</span>`;else X.textContent=o}},_=(X,T,R,p,f=!1)=>{let d=z;if(G){if(L){let o=L(T);if(o>=0&&(o&1)===1)d+=` ${q2}`}else if((T&1)===1)d+=` ${q2}`}if(f)d+=` ${X2}`;if(R)d+=` ${u}`;if(p)d+=` ${I}`;X.className=d},D=(X,T,R)=>{if(R?.compression?.isCompressed)return Math.round(H2(X,R.scrollPosition,T,R.totalItems,R.containerSize,R.compression,R.rangeStart));return T.getOffset(X)},U=(X,T)=>{let R=T.def.align;if(R==="center")X.classList.add(r),X.classList.remove(e);else if(R==="right")X.classList.add(e),X.classList.remove(r);else X.classList.remove(r,e)},w=(X,T)=>{let p=S.columns.length;if(T.length===p)return T;let f=[];for(let d=0;d<p;d++){let o;if(d<T.length)o=T[d];else o=document.createElement("div"),o.className=n,X.appendChild(o);f.push(o)}for(let d=p;d<T.length;d++)T[d].remove();return f},m=(X,T,R,p)=>{let f=O.acquire(),d=X,o=R.getSize(T),F=D(T,R,p);f.style.cssText=`width:${S.totalWidth}px;height:${o}px;transform:translateY(${F}px)`,f.className=g,P(f,"presentation",X.id,T),f.removeAttribute("aria-selected"),f.removeAttribute("aria-rowindex"),f.replaceChildren();let C=document.createElement("div");if(C.className=c,V){let x=V(d.groupKey,d.groupIndex);if(typeof x==="string")C.innerHTML=x;else C.appendChild(x)}return f.appendChild(C),{element:f,cells:[],index:T,isGroupHeader:!0,lastItemId:X.id,lastSelected:!1,lastFocused:!1,lastOffset:F,lastHeight:o}},i=(X,T,R,p,f,d)=>{let o=O.acquire(),F=f.getSize(T),C=D(T,f,d),x=k(X.id);o.style.cssText=`width:${S.totalWidth}px;height:${F}px;transform:translateY(${C}px)`,_(o,T,R,p,x),P(o,"row",X.id,T),o.id=`${j}-${T}`,o.setAttribute("aria-rowindex",String(T+2)),W(o,R);let $2=w(o,[]),J2=S.columns;for(let B2=0;B2<$2.length&&B2<J2.length;B2++){let U2=$2[B2],_2=J2[B2];U2.style.cssText=`left:${_2.offset}px;width:${_2.width}px`,U2.setAttribute("role","gridcell"),U2.setAttribute("aria-colindex",String(B2+1)),U(U2,_2),H(U2,X,_2,T,x)}return{element:o,cells:$2,index:T,isGroupHeader:!1,lastItemId:X.id,lastSelected:R,lastFocused:p,lastOffset:C,lastHeight:F}},l=(X,T,R,p,f)=>{for(let[x,$2]of N)if(x<T.start||x>T.end)O.release($2.element),N.delete(x);let d=!1,o=B();if(o!==y)y=o,d=!0;let F=null,C=Q();L=typeof G==="string"&&b?b():null;for(let x=T.start;x<=T.end;x++){let $2=x-T.start,J2=X[$2];if(!J2)continue;let B2=R.has(J2.id),U2=x===p,_2=Z?Z(J2):!1,a=N.get(x);if(a){if(a.isGroupHeader!==_2){O.release(a.element),N.delete(x);let Y2=_2?m(J2,x,C,f):i(J2,x,B2,U2,C,f);if(N.set(x,Y2),!F)F=document.createDocumentFragment();F.appendChild(Y2.element);continue}if(_2){if(a.lastItemId!==J2.id){let Z2=J2,D2=a.element.firstElementChild;if(D2&&V){let Q2=V(Z2.groupKey,Z2.groupIndex);if(typeof Q2==="string")D2.innerHTML=Q2;else D2.replaceChildren(Q2)}a.element.setAttribute("data-id",String(J2.id)),a.lastItemId=J2.id}let N2=D(x,C,f);if(a.lastOffset!==N2)a.lastOffset=N2,a.element.style.transform=`translateY(${N2}px)`;let V2=C.getSize(x);if(a.lastHeight!==V2)a.lastHeight=V2,a.element.style.height=`${V2}px`}else{let Y2=a.lastItemId!==J2.id,N2=a.lastSelected!==B2,V2=a.lastFocused!==U2;if(Y2){let Q2=a.lastItemId!=null&&k(a.lastItemId),j2=k(J2.id);if(!j2&&F2(R,x,J2.id))B2=!0;let G2=S.columns;for(let W2=0;W2<a.cells.length&&W2<G2.length;W2++)H(a.cells[W2],J2,G2[W2],x,j2);if(_(a.element,x,B2,U2,j2),a.element.setAttribute("data-id",String(J2.id)),W(a.element,B2),Q2&&!j2)a.element.classList.add(K2),setTimeout(()=>{a.element.classList.remove(K2)},300);a.lastItemId=J2.id,a.lastSelected=B2,a.lastFocused=U2}else if(N2||V2)_(a.element,x,B2,U2,k(J2.id)),W(a.element,B2),a.lastSelected=B2,a.lastFocused=U2;let Z2=D(x,C,f);if(a.lastOffset!==Z2)a.lastOffset=Z2,a.element.style.transform=`translateY(${Z2}px)`;let D2=C.getSize(x);if(a.lastHeight!==D2)a.lastHeight=D2,a.element.style.height=`${D2}px`;if(d)a.element.setAttribute("aria-rowindex",String(x+2))}}else{if(F2(R,x,J2.id))B2=!0;let Y2=_2?m(J2,x,C,f):i(J2,x,B2,U2,C,f);if(N.set(x,Y2),!F)F=document.createDocumentFragment();F.appendChild(Y2.element)}}if(F)J.appendChild(F)},s=(X)=>{let T=Q();for(let[R,p]of N){let f=D(R,T,X);if(p.lastOffset!==f)p.lastOffset=f,p.element.style.transform=`translateY(${f}px)`}},t=(X,T,R,p)=>{let f=N.get(X);if(!f)return;if(f.isGroupHeader)return;let d=S.columns;for(let o=0;o<f.cells.length&&o<d.length;o++)H(f.cells[o],T,d[o],X);f.element.setAttribute("data-id",String(T.id)),f.lastItemId=T.id,_(f.element,X,R,p),W(f.element,R),f.lastSelected=R,f.lastFocused=p},M=(X,T,R)=>{let p=N.get(X);if(!p)return;if(p.isGroupHeader)return;let f=p.lastSelected!==T,d=p.lastFocused!==R;if(f||d)_(p.element,X,T,R),W(p.element,T),p.lastSelected=T,p.lastFocused=R},v=(X)=>{S=X;let T=X.columns;for(let[,R]of N)if(R.element.style.width=`${X.totalWidth}px`,R.cells.length>0)for(let p=0;p<R.cells.length&&p<T.length;p++){let f=R.cells[p],d=T[p];f.style.left=`${d.offset}px`,f.style.width=`${d.width}px`}},A=(X)=>{return N.get(X)?.element},h=()=>{for(let[,X]of N)O.release(X.element);N.clear(),y=-1};return{render:l,updatePositions:s,updateItem:t,updateItemClasses:M,getElement:A,updateColumnLayout:v,setGroupHeaderFn:K,clear:h,destroy:()=>{h(),O.clear()}}};var VJ=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.containerSize,q=0,j=[],B=()=>{let K=(Q-1)*Y;q=Math.max(0,($-K)/Q),j=Array(Q);let W=q+Y;for(let P=0;P<Q;P++)j[P]=P*W};B();let G=[],b=0,O=[],N=(K)=>{let W=0,P=K[0];for(let k=1;k<K.length;k++){let z=K[k];if(z<P)P=z,W=k}return W},y=(K,W)=>{if(K<=0)return b=0,G=[],[];let P=Array(Q).fill(0),k=Array(Q);for(let I=0;I<Q;I++)k[I]=[];let z=Array(K);for(let I=0;I<K;I++){let n=N(P),r=W(I),e=P[n];z[I]={index:I,x:j[n],y:e,lane:n,size:r,crossSize:q},k[n].push(I),P[n]=e+r+Y}G=k;let u=0;for(let I=0;I<Q;I++){let n=P[I],r=n>0?n-Y:0;if(r>u)u=r}return b=u,z},S=(K)=>{if(K.length===0)return b>0?b:0;if(b>0)return b;let W=Array(Q).fill(0);for(let k of K){let z=k.y+k.size,u=W[k.lane];if(z>u)W[k.lane]=z}let P=0;for(let k=0;k<Q;k++)if(W[k]>P)P=W[k];return P},L=(K,W,P)=>{if(K.length===0||P<=W)return O.length=0,O;if(G.length===0||G.length!==Q)return Z(K,W,P);O.length=0;for(let k=0;k<Q;k++){let z=G[k],u=z.length;if(u===0)continue;let I=0,n=u;while(I<n){let r=I+n>>>1,e=K[z[r]];if(e.y+e.size<=W)I=r+1;else n=r}for(let r=I;r<u;r++){let e=K[z[r]];if(e.y>=P)break;O.push(e)}}return O},Z=(K,W,P)=>{let k=[];for(let z of K)if(z.y+z.size>W&&z.y<P)k.push(z);return k};return{get columns(){return Q},get gap(){return Y},get containerSize(){return $},update:(K)=>{let W=!1;if(K.columns!==void 0){let P=Math.max(1,Math.floor(K.columns));if(P!==Q)Q=P,W=!0}if(K.gap!==void 0&&K.gap!==Y)Y=K.gap,W=!0;if(K.containerSize!==void 0&&K.containerSize!==$)$=K.containerSize,W=!0;if(W)B()},calculateLayout:y,getTotalSize:S,getVisibleItems:L}};var mJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-lane"),Q.push(j)},clear:()=>{Q.length=0}}},dJ=1,WJ=(J,Q,Y,$=!1,q,j,B)=>{let G=mJ(),b=new Map,O=new Set,N=0,y="",S=-1,L={selected:!1,focused:!1},Z=(g,c)=>{return L.selected=g,L.focused=c,L},V=`${Y}-item ${Y}-masonry-item`,K=`${Y}-group-header`,W=`${Y}-item--selected`,P=`${Y}-item--focused`,k=(g,c)=>{if(typeof c==="string")g.innerHTML=c;else g.replaceChildren(c)},z=(g,c,H)=>{g.classList.toggle(W,c),g.classList.toggle(P,H)},u=(g,c)=>{if($)g.style.transform=`translate(${Math.round(c.y)}px, ${Math.round(c.x)}px)`;else g.style.transform=`translate(${Math.round(c.x)}px, ${Math.round(c.y)}px)`},I=(g,c)=>{if($)g.style.width=`${c.size}px`,g.style.height=`${c.crossSize}px`;else g.style.width=`${c.crossSize}px`,g.style.height=`${c.size}px`},n=(g,c,H,_,D)=>{let U=G.acquire(),w=!!c.__groupHeader,m=Z(_,D);if(U.className=w?K:V,U.dataset.index=String(g),U.dataset.id=String(c.id),U.dataset.lane=String(H.lane),w)U.setAttribute("role","presentation"),U.removeAttribute("aria-selected"),U.removeAttribute("aria-setsize"),U.removeAttribute("aria-posinset"),U.removeAttribute("id");else{if(U.setAttribute("role","option"),U.ariaSelected=String(_),j)U.id=`${j}-item-${g}`;if(q){let l=q();if(l!==S)S=l,y=String(l);U.setAttribute("aria-setsize",y);let s=B?B(g):g+1;U.setAttribute("aria-posinset",String(s))}}I(U,H);let i=Q(c,g,m);return k(U,i),z(U,_,D),u(U,H),{element:U,lastItemId:c.id,lastSelected:_,lastFocused:D,lastY:H.y,lastX:H.x,lastSize:H.size,lastCrossSize:H.crossSize,lastSeenFrame:N}},r=(g,c,H,_)=>{N++,O.clear();for(let U=0;U<c.length;U++)O.add(c[U].index);for(let[U,w]of b)if(O.has(U))w.lastSeenFrame=N;else if(N-w.lastSeenFrame>dJ)G.release(w.element),b.delete(U);let D=null;for(let U=0;U<c.length;U++){let w=c[U],m=w.index,i=g(m);if(!i)continue;let l=H.has(i.id),s=m===_,t=b.get(m);if(t){let M=t.lastItemId!==i.id,v=t.lastSelected!==l,A=t.lastFocused!==s,h=t.lastY!==w.y||t.lastX!==w.x,E=t.lastSize!==w.size||t.lastCrossSize!==w.crossSize;if(M){let X=Z(l,s),T=Q(i,m,X);if(k(t.element,T),t.element.dataset.id=String(i.id),t.lastItemId=i.id,!i.__groupHeader){let p=B?B(m):m+1;t.element.setAttribute("aria-posinset",String(p))}}if(M||v||A)z(t.element,l,s),t.element.ariaSelected=String(l),t.lastSelected=l,t.lastFocused=s;if(E)I(t.element,w),t.lastSize=w.size,t.lastCrossSize=w.crossSize;if(h)u(t.element,w),t.lastY=w.y,t.lastX=w.x}else{let M=n(m,i,w,l,s);if(!D)D=document.createDocumentFragment();D.appendChild(M.element),b.set(m,M)}}if(D)J.appendChild(D)},e=()=>{for(let{element:g}of b.values())G.release(g);b.clear(),J.innerHTML=""};return{render:r,getElement:(g)=>b.get(g)?.element,updateItemClasses:(g,c,H)=>{let _=b.get(g);if(!_)return;let D=_.lastSelected!==c,U=_.lastFocused!==H;if(D||U)z(_.element,c,H),_.lastSelected=c,_.lastFocused=H},sortDOM:()=>{P2(J,b.keys(),(g)=>b.get(g)?.element)},clear:e,destroy:()=>{e(),G.clear()}}};var MJ=(J,Q)=>{let Y=new Map,$=(j)=>{let B=Y.get(j);return B!==void 0?B:J},q=T2($,Q);return{getOffset(j){return q.getOffset(j)},getSize(j){return $(j)},indexAtOffset(j){return q.indexAtOffset(j)},getTotalSize(){return q.getTotalSize()},getTotal(){return q.getTotal()},rebuild(j){if(j<q.getTotal()){for(let B of Y.keys())if(B>=j)Y.delete(B)}q=T2($,j)},isVariable(){return!0},setMeasuredSize(j,B){Y.set(j,B)},isMeasured(j){return Y.has(j)},getEstimatedSize(){return J},measuredCount(){return Y.size}}};var OJ=(J,Q,Y,$,q,j)=>{if($===0||Q===0)return j.start=0,j.end=-1,j;let B=Y.indexAtOffset(J),G=Y.indexAtOffset(J+Q);if(G<$-1)G++;return j.start=Math.max(0,B),j.end=Math.min($-1,Math.max(0,G)),j},AJ=(J,Q,Y,$)=>{if(Y===0)return $.start=0,$.end=-1,$;return $.start=Math.max(0,J.start-Q),$.end=Math.min(Y-1,J.end+Q),$},EJ=(J,Q,Y,$,q,j)=>{if($===0)return 0;let B=Math.max(0,Math.min(J,$-1)),G=Q.getOffset(B),b=Q.getSize(B),O=Q.getTotalSize(),N=Math.max(0,O-Y),y;switch(j){case"center":y=G-Y/2+b/2;break;case"end":y=G-Y+b;break;case"start":default:y=G;break}return Math.max(0,Math.min(y,N))},FJ=(J,Q,Y)=>{if(Y&&Y.isCompressed)return Y.virtualSize;return Q.getTotalSize()},LJ=(J,Q)=>{return Q.getTotalSize()},HJ=(J,Q)=>{return Q.getOffset(J)},bJ=(J,Q,Y)=>{let $=Math.max(0,Q-Y);return Math.max(0,Math.min(J,$))};var TJ=(J,Q,Y,$,q="start",j,B=EJ)=>{return B(J,Q,Y,$,j,q)},RJ=(J,Q)=>{return J.start===Q.start&&J.end===Q.end},yJ=(J,Q)=>{return J>=Q.start&&J<=Q.end},PJ=(J)=>{if(J.end<J.start)return 0;return J.end-J.start+1};var kJ=(J,Q)=>{let Y=[],$=[];for(let q=J.start;q<=J.end;q++)if(q<Q.start||q>Q.end)$.push(q);for(let q=Q.start;q<=Q.end;q++)if(q<J.start||q>J.end)Y.push(q);return{add:Y,remove:$}};var zJ=()=>{let J={},Q=(j,B)=>{if(!J[j])J[j]=new Set;return J[j].add(B),()=>Y(j,B)},Y=(j,B)=>{J[j]?.delete(B)};return{on:Q,off:Y,emit:(j,B)=>{J[j]?.forEach((G)=>{try{G(B)}catch(b){console.error(`[vlist] Error in event handler for "${String(j)}":`,b)}})},clear:(j)=>{if(j)delete J[j];else for(let B in J)delete J[B]}}};var k2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:Y=5000,evictionBuffer:$=200,onEvict:q}=J,j=new Map,B=0,G=0,b=(H)=>{let _=j.get(H);if(!_)_={items:Array(Q),count:0,lastAccess:Date.now()},j.set(H,_);else _.lastAccess=Date.now();return _},O=(H)=>{return Math.floor(H/Q)},N=(H)=>{return H%Q},y=()=>B,S=(H)=>{B=H},L=(H)=>{if(H<0||H>=B)return;let _=O(H),D=j.get(_);if(!D)return;return D.items[N(H)]},Z=(H)=>{if(H<0||H>=B)return!1;let _=O(H),D=j.get(_);if(!D)return!1;return D.items[N(H)]!==void 0},V=(H,_)=>{let D=O(H),U=b(D),w=N(H),m=U.items[w]===void 0;if(U.items[w]=_,m)U.count++,G++;if(H>=B)B=H+1},K=(H,_)=>{for(let D=0;D<_.length;D++){let U=_[D];if(U!==void 0)V(H+D,U)}},W=(H)=>{if(H<0||H>=B)return!1;let _=O(H),D=j.get(_),U=N(H);if(!(D!==void 0&&D.items[U]!==void 0))return!1;let m=_,i=Array.from(j.keys()).filter((s)=>s>=m).sort((s,t)=>s-t),l=[];for(let s of i){let t=j.get(s),M=s*Q;for(let v=0;v<Q;v++){if(t.items[v]===void 0)continue;let A=M+v;if(A<=H)continue;l.push({oldIndex:A,item:t.items[v]})}}if(D.items[U]=void 0,D.count--,G--,D.count===0)j.delete(_);for(let{oldIndex:s}of l){let t=O(s),M=j.get(t);if(!M)continue;let v=N(s);if(M.items[v]!==void 0){if(M.items[v]=void 0,M.count--,G--,M.count===0)j.delete(t)}}for(let{oldIndex:s,item:t}of l){let M=s-1,v=O(M),A=b(v),h=N(M);A.items[h]=t,A.count++,G++}return B--,!0},P=(H,_)=>{let D=[];for(let U=H;U<=_&&U<B;U++)D.push(L(U));return D},k=(H,_)=>{for(let D=H;D<=_&&D<B;D++)if(!Z(D))return!1;return!0},z=()=>{let H=[],_=null,D=Array.from(j.keys()).sort((U,w)=>U-w);for(let U of D){let w=j.get(U);if(!w)continue;let m=U*Q;for(let i=0;i<Q;i++){let l=m+i;if(l>=B)break;if(w.items[i]!==void 0)if(_===null)_={start:l,end:l};else if(l===_.end+1)_.end=l;else H.push(_),_={start:l,end:l};else if(_!==null)H.push(_),_=null}}if(_!==null)H.push(_);return H},u=(H,_)=>{let D=[],U=null;for(let w=H;w<=_&&w<B;w++)if(!Z(w))if(U===null)U={start:w,end:w};else U.end=w;else if(U!==null)D.push(U),U=null;if(U!==null)D.push(U);return D},I=(H)=>{return j.has(H)},n=(H)=>{let _=j.get(H);if(_)_.lastAccess=Date.now()},r=(H,_)=>{if(H>_||j.size===0)return;let D=Date.now(),U=O(Math.max(0,H)),w=O(Math.min(B-1,_));for(let m=U;m<=w;m++){let i=j.get(m);if(i)i.lastAccess=D}},e=(H,_)=>{if(G<=Y)return 0;let D=Math.max(0,H-$),U=Math.min(B-1,_+$),w=O(D),m=O(U),i=0,l=[];for(let[s,t]of j)if(s<w||s>m)i+=t.count,l.push(s),G-=t.count,j.delete(s);if(i>0&&q)q(i,l);return i},q2=()=>{if(G<=Y)return 0;let H=Array.from(j.entries()).sort(([,U],[,w])=>U.lastAccess-w.lastAccess),_=0,D=[];for(let[U,w]of H){if(G<=Y)break;_+=w.count,G-=w.count,D.push(U),j.delete(U)}if(_>0&&q)q(_,D);return _},X2=()=>{return{totalItems:B,cachedItems:G,cachedChunks:j.size,chunkSize:Q,maxCachedItems:Y,memoryEfficiency:B>0?1-G/B:1}},K2=()=>G,g=()=>{j.clear(),G=0};return{chunkSize:Q,maxCachedItems:Y,getTotal:y,setTotal:S,get:L,has:Z,set:V,setRange:K,delete:W,getRange:P,isRangeLoaded:k,getLoadedRanges:z,findUnloadedRanges:u,getChunkIndex:O,isChunkLoaded:I,touchChunk:n,touchChunksForRange:r,evictDistant:e,evictToLimit:q2,getStats:X2,getCachedCount:K2,clear:g,reset:()=>{g(),B=0}}},z2=(J)=>{if(J.length===0)return[];let Q=[...J].sort(($,q)=>$.start-q.start),Y=[{...Q[0]}];for(let $=1;$<Q.length;$++){let q=Q[$],j=Y[Y.length-1];if(q.start<=j.end+1)j.end=Math.max(j.end,q.end);else Y.push({...q})}return Y},g2=(J,Q,Y)=>{let $=Math.floor(J.start/Y)*Y,q=Math.ceil((J.end+1)/Y)*Y-1,j={start:$,end:q};if(Q.length===0)return[j];let B=[],G=z2(Q),b=j.start;for(let O of G){if(O.end<b)continue;if(O.start>j.end)break;if(O.start>b)B.push({start:b,end:Math.min(O.start-1,j.end)});if(b=O.end+1,b>j.end)break}if(b<=j.end)B.push({start:b,end:j.end});return B};var w2=(J={})=>{let{maskCharacter:Q=n2,maxSampleSize:Y=o2}=J,$=[],q=!1,j=(N)=>{if(q||N.length===0)return;let y=Math.min(N.length,Y);for(let S=0;S<y;S++){let L=N[S];if(!L||typeof L!=="object")continue;let Z={};for(let[V,K]of Object.entries(L)){if(V.startsWith("_")||V==="id")continue;Z[V]=String(K??"").length}if(Object.keys(Z).length>0)$.push(Z)}q=!0},B=()=>q,G=(N)=>{let y={id:`${O2}${N}`,[S2]:!0,_index:N};if($.length===0)return y.label=Q.repeat(12),y;let S=$[N%$.length];for(let[L,Z]of Object.entries(S))y[L]=Q.repeat(Math.max(1,Z));return y};return{analyzeStructure:j,hasAnalyzedStructure:B,generate:G,generateRange:(N,y)=>{let S=[];for(let L=N;L<=y;L++)S.push(G(L));return S},clear:()=>{$=[],q=!1}}},A2=(J)=>{if(!J||typeof J!=="object")return!1;return J[S2]===!0},u2=(J)=>{return J.filter((Q)=>!A2(Q))};var rJ=50,wJ=(J={})=>{let{adapter:Q,initialItems:Y,initialTotal:$,storage:q,placeholder:j,pageSize:B=rJ,onStateChange:G,onItemsLoaded:b,onItemsEvicted:O}=J,N=k2({...q,onEvict:(F,C)=>{O?.(F),r()}}),y=null,S=()=>{if(!y)y=w2(j);return y},L=new Map,Z=!1,V,K=!0,W,P,k=[],z=0,u=new Map,I=new Map,n=()=>{for(let F of I.values())F.abort();I.clear(),u.clear()},r=()=>{G?.(D())},e=()=>{L.clear();let F=N.getLoadedRanges();for(let C of F)for(let x=C.start;x<=C.end;x++){let $2=N.get(x);if($2&&!A2($2))L.set($2.id,x)}},q2=(F,C)=>{if(!A2(C))L.set(C.id,F)},X2=(F)=>{L.delete(F)},K2=(F,C)=>{return`${F}-${C}`},g=()=>N.getTotal(),c=()=>N.getCachedCount(),H=()=>Z,_=()=>K,D=()=>({total:N.getTotal(),cached:N.getCachedCount(),isLoading:Z,pendingRanges:k,error:V,hasMore:K,cursor:W}),U=()=>N,w=()=>S(),m=(F)=>{let C=N.get(F);if(C!==void 0)return C;if(F>=0&&F<N.getTotal())return S().generate(F);return},i=(F)=>{let C=L.get(F);if(C===void 0)return;return N.get(C)},l=(F)=>{return L.get(F)??-1},s=(F)=>{let C=N.get(F);return C!==void 0&&!A2(C)},t=(F,C)=>{let x=[],$2=N.getTotal(),J2=0,B2=0;N.touchChunksForRange(F,Math.min(C,$2-1));for(let U2=F;U2<=C&&U2<$2;U2++){let _2=N.get(U2);if(_2!==void 0)x.push(_2),J2++;else x.push(S().generate(U2)),B2++}return x},M=(F)=>{N.setTotal(F),K=N.getCachedCount()<F,r()},v=(F,C=0,x)=>{if(Q&&F.length>0){let $2=S();if(!$2.hasAnalyzedStructure())$2.analyzeStructure(F)}for(let $2=0;$2<F.length;$2++){let J2=F[$2];if(J2!==void 0){let B2=C+$2;N.set(B2,J2),q2(B2,J2)}}if(x!==void 0)N.setTotal(x);else if(C+F.length>N.getTotal())N.setTotal(C+F.length);if(N.getCachedCount()>=N.getTotal()&&N.getTotal()>0)K=!1;r(),b?.(F,C,N.getTotal())},A=(F,C)=>{let x=N.get(F);if(!x)return!1;let $2=x.id,J2={...x,...C};if(N.set(F,J2),C.id!==void 0&&C.id!==$2)X2($2);return q2(F,J2),r(),!0},h=(F)=>{let C=L.get(F);if(C===void 0)return!1;if(!N.delete(C))return!1;return e(),n(),r(),!0},E=async(F,C)=>{if(!Q)return;let x=K2(F,C);if(u.has(x))return;let $2=N.chunkSize,J2=Math.floor(F/$2),B2=Math.floor(C/$2),U2=$2*2;for(let[Y2,N2]of I){let V2=Y2.indexOf("-"),Z2=parseInt(Y2.slice(0,V2),10);if(Math.abs(Z2-F)>U2)N2.abort(),I.delete(Y2),u.delete(Y2)}let _2=[];for(let Y2=J2;Y2<=B2;Y2++){let N2=Y2*$2,V2=N2+$2-1,Z2=K2(N2,V2);if(!N.isChunkLoaded(Y2)&&!u.has(Z2))_2.push({start:N2,end:V2})}if(_2.length===0)return;let a=[];for(let Y2=J2;Y2<=B2;Y2++){let N2=Y2*$2,V2=N2+$2-1,Z2=K2(N2,V2);if(u.has(Z2)){let D2=u.get(Z2);if(!a.includes(D2))a.push(D2)}}for(let Y2 of _2){let N2=K2(Y2.start,Y2.end),V2=new AbortController;I.set(N2,V2);let Z2=(async()=>{k.push(Y2),Z=!0,V=void 0,r();try{let D2=Y2.end-Y2.start+1,Q2={offset:Y2.start,limit:D2,cursor:Y2.start===P?W:void 0,signal:V2.signal},j2=await Q.read(Q2);if(v(j2.items,Y2.start,j2.total),j2.cursor)W=j2.cursor,P=Y2.start+j2.items.length;let G2=Y2.start+j2.items.length;if(G2>=z){if(z=G2,j2.hasMore!==void 0)K=j2.hasMore;else if(j2.total!==void 0)K=G2<j2.total}}catch(D2){if(D2?.name==="AbortError")return;V=D2 instanceof Error?D2:Error(String(D2))}finally{u.delete(N2),I.delete(N2),k=k.filter((D2)=>D2.start!==Y2.start||D2.end!==Y2.end),Z=u.size>0,r()}})();u.set(N2,Z2),a.push(Z2)}await Promise.all(a)},X=async(F,C)=>{if(N.isRangeLoaded(F,C))return;await E(F,C)},T=async()=>{if(!Q)return;await E(0,B-1)},R=async()=>{if(!Q||Z||!K)return!1;let F=N.getCachedCount(),C=N.getTotal(),x=F,$2=Math.min(x+B-1,C>0?C-1:x+B-1);if(x>=C&&C>0)return K=!1,!1;return await E(x,$2),N.getCachedCount()>F},p=async()=>{if(N.clear(),N.setTotal(0),L.clear(),y)y.clear();n(),k=[],Z=!1,W=void 0,P=void 0,K=!0,z=0,V=void 0,r()},f=(F,C)=>{if(N.evictDistant(F,C)>0)e()},d=()=>{N.clear(),L.clear(),W=void 0,P=void 0,V=void 0,k=[],Z=!1,r()},o=()=>{if(N.reset(),L.clear(),y)y.clear();W=void 0,P=void 0,K=!0,z=0,V=void 0,k=[],Z=!1,r()};if(Y&&Y.length>0)v(Y,0,$??Y.length);else if($!==void 0)N.setTotal($),r();return{getState:D,getTotal:g,getCached:c,getIsLoading:H,getHasMore:_,getStorage:U,getPlaceholders:w,getItem:m,getItemById:i,getIndexById:l,isItemLoaded:s,getItemsInRange:t,setTotal:M,setItems:v,updateItem:A,removeItem:h,loadRange:E,ensureRange:X,loadInitial:T,loadMore:R,reload:p,evictDistant:f,clear:d,reset:o}};var vJ=(J=0)=>{let Q=[,,,,,,,,];for(let Y=0;Y<8;Y++)Q[Y]={position:0,time:0};return{velocity:0,lastPosition:J,lastTime:performance.now(),samples:Q,sampleIndex:0,sampleCount:0}},v2=(J,Q)=>{let Y=performance.now(),$=Y-J.lastTime;if($===0)return J;if($>100){J.sampleCount=0,J.sampleIndex=0,J.velocity=0;let j=J.samples[0];return j.position=Q,j.time=Y,J.sampleIndex=1,J.sampleCount=1,J.lastPosition=Q,J.lastTime=Y,J}let q=J.samples[J.sampleIndex];if(q.position=Q,q.time=Y,J.sampleIndex=(J.sampleIndex+1)%8,J.sampleCount=Math.min(J.sampleCount+1,8),J.sampleCount>=2){let j=(J.sampleIndex-J.sampleCount+8)%8,B=J.samples[j],G=Q-B.position,b=Y-B.time;J.velocity=b>0?G/b:0}return J.lastPosition=Q,J.lastTime=Y,J},lJ=(J)=>J.sampleCount>=3,CJ=(J,Q={})=>{let{wheel:Y=!0,sensitivity:$=1,smoothing:q=!1,idleTimeout:j=150,onScroll:B,onIdle:G,scrollElement:b,horizontal:O=!1}=Q,N=!!b,y=0,S=0,L=N?O?window.innerWidth:window.innerHeight:O?J.clientWidth:J.clientHeight,Z=Q.compressed??!1,V=Q.compression,K=vJ(),W=!1,P=null,z=C2(()=>{let A=O?J.scrollLeft:J.scrollTop,h=A>=y?"down":"up";if(K=v2(K,A),y=A,B)B({scrollTop:y,direction:h,velocity:K.velocity});q2()}),I=C2(()=>{let A=J.getBoundingClientRect(),h=O?Math.max(0,-A.left):Math.max(0,-A.top),E=h>=y?"down":"up";if(K=v2(K,h),y=h,!W)W=!0;if(B)B({scrollTop:y,direction:E,velocity:K.velocity});q2()}),n=(A)=>{A.preventDefault()},r=(A)=>{if(A.deltaX)return;A.preventDefault(),J.scrollLeft+=A.deltaY},e=(A)=>{if(!Z)return;A.preventDefault();let h=(O?A.deltaX||A.deltaY:A.deltaY)*$,E=y+h;if(q)E=y+h*0.3;if(E=Math.max(0,Math.min(E,S)),E!==y){let T=E>=y?"down":"up";if(K=v2(K,E),y=E,!W)W=!0;if(B)B({scrollTop:y,direction:T,velocity:K.velocity});q2()}},q2=()=>{if(P)clearTimeout(P);P=setTimeout(()=>{if(W=!1,K=vJ(y),G)G()},j)},X2=(A)=>{if(Z)return;if(Z=!0,V=A,S=A.virtualSize-L,N)return;if(z.cancel(),J.removeEventListener("scroll",z),!Y)J.removeEventListener("wheel",n);else if(O)J.removeEventListener("wheel",r);if(O)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",e,{passive:!1});let h=O?J.scrollLeft:J.scrollTop;if(h>0){let E=O?V?.actualSize??J.scrollWidth:V?.actualSize??J.scrollHeight;y=h/E*S}if(O)J.scrollLeft=0;else J.scrollTop=0},K2=()=>{if(!Z)return;if(Z=!1,N){V=void 0;return}if(J.removeEventListener("wheel",e),O)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",z,{passive:!0}),!Y)J.addEventListener("wheel",n,{passive:!1});else if(O)J.addEventListener("wheel",r,{passive:!1});if(V&&y>0){let h=y/S*(V.actualSize-L);if(O)J.scrollLeft=h;else J.scrollTop=h}V=void 0},g=()=>{if(N||Z)return y;return O?J.scrollLeft:J.scrollTop},c=(A,h=!1)=>{let E=Math.max(0,Math.min(A,S||1/0));if(N){let X=J.getBoundingClientRect();if(O){let T=X.left+window.scrollX;window.scrollTo({left:T+E,behavior:h?"smooth":"auto"})}else{let T=X.top+window.scrollY;window.scrollTo({top:T+E,behavior:h?"smooth":"auto"})}}else if(Z){if(E===y)return;let T=E>=y?"down":"up";if(K=v2(K,E),y=E,!W)W=!0;if(B)B({scrollTop:y,direction:T,velocity:K.velocity});q2()}else if(O)J.scrollTo({left:E,behavior:h?"smooth":"auto"});else J.scrollTo({top:E,behavior:h?"smooth":"auto"})},H=(A)=>{c(g()+A)},_=()=>{return g()<=0},D=(A=0)=>{let h=g(),E=N||Z?S:O?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return h>=E-A},U=()=>{let A=g(),h=N||Z?S:O?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(h<=0)return 0;return Math.min(1,Math.max(0,A/h))},w=(A)=>{if(A.compression)V=A.compression,S=V.virtualSize-L},m=()=>Z,i=()=>Math.abs(K.velocity),l=()=>lJ(K),s=()=>W,t=()=>N,M=(A)=>{if(L=A,V)S=V.virtualSize-L},v=()=>{if(P)clearTimeout(P);if(N)I.cancel(),window.removeEventListener("scroll",I);else z.cancel(),J.removeEventListener("scroll",z),J.removeEventListener("wheel",e),J.removeEventListener("wheel",n),J.removeEventListener("wheel",r)};if(N){if(Z&&V)S=V.virtualSize-L;window.addEventListener("scroll",I,{passive:!0})}else if(Z&&V){if(S=V.virtualSize-L,O)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",e,{passive:!1})}else{if(O)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",z,{passive:!0}),!Y)J.addEventListener("wheel",n,{passive:!1});else if(O)J.addEventListener("wheel",r,{passive:!1})}return{getScrollTop:g,scrollTo:c,scrollBy:H,isAtTop:_,isAtBottom:D,getScrollPercentage:U,getVelocity:i,isTracking:l,isScrolling:s,updateConfig:w,enableCompression:X2,disableCompression:K2,isCompressed:m,isWindowMode:t,updateContainerHeight:M,destroy:v}},C2=(J)=>{let Q=null,Y=null,$=(...q)=>{if(Y=q,Q===null)Q=requestAnimationFrame(()=>{if(Q=null,Y)J(...Y)})};return $.cancel=()=>{if(Q!==null)cancelAnimationFrame(Q),Q=null},$};var aJ=(J)=>{if(typeof J!=="object"){let Q=J??2;return{top:Q,right:Q,bottom:Q,left:Q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},fJ=(J,Q,Y={},$="vlist",q=!1,j)=>{let{autoHide:B=!0,autoHideDelay:G=1000,minThumbSize:b=15,showOnHover:O=!0,showOnViewportEnter:N=!0,clickBehavior:y="scroll"}=Y,S=y==="page"?"scroll":y,L=j??J,Z=aJ(Y.padding),V=q?Z.left:Z.top,K=q?Z.right:Z.bottom,W=q?Z.bottom:Z.right,P=Y.hoverZoneWidth??W+16,k=0,z=0,u=0,I=0,n=!1,r=!1,e=0,q2=0,X2=0,K2=null,g=!1,c=null,H=null,_=0,D=0,U=null,w=null,m=null,i=q?"width":"height",l=q?"translateX":"translateY",s=q?(Q2)=>Q2.clientX:(Q2)=>Q2.clientY,t=q?"left":"top",M=document.createElement("div"),v=document.createElement("div"),A=document.createElement("div"),h=()=>{if(L===J)return;let Q2=J.offsetTop,j2=q?Z.left:Z.top;M.style[q?"left":"top"]=`${Q2+j2}px`,A.style[q?"left":"top"]=`${Q2}px`},E=()=>{if(M.className=`${$}-scrollbar`,v.className=`${$}-scrollbar-thumb`,q)M.classList.add(`${$}-scrollbar--horizontal`);if(Y.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${Z.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${Z.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${Z.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${Z.left}px`);if(Y.minThumbSize!==void 0)M.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${b}px`);if(M.appendChild(v),L.appendChild(M),A.className=`${$}-scrollbar-hover`,q)A.classList.add(`${$}-scrollbar-hover--horizontal`),A.style.height=`${P}px`;else A.style.width=`${P}px`;if(L.appendChild(A),L!==J)h()},X=()=>{if(K2)clearTimeout(K2),K2=null},T=()=>{if(!B)return;X(),K2=setTimeout(p,G)},R=()=>{if(k<=z)return;if(X(),!g)M.classList.add(`${$}-scrollbar--visible`),g=!0;if(B&&!n&&!r)T()},p=()=>{if(n||r)return;M.classList.remove(`${$}-scrollbar--visible`),g=!1},f=(Q2,j2)=>{k=Q2,z=j2,h();let G2=k>z;if(M.style.display=G2?"":"none",!G2){p();return}let W2=Math.max(0,z-V-K),E2=z/k;if(u=Math.max(b,E2*W2),v.style[i]=`${u}px`,I=W2-u,d(X2),!B)R()},d=(Q2)=>{if(X2=Q2,k<=z||I<=0)return;let j2=k-z,W2=Math.min(1,Math.max(0,Q2/j2))*I;v.style.transform=`${l}(${W2}px)`},o=(Q2)=>{if(Q2.target===v||S!=="jump"||I<=0)return;let j2=k-z,G2=M.getBoundingClientRect(),W2=s(Q2)-G2[t],E2=Math.max(0,Math.min(W2-u/2,I));Q(E2/I*j2),R()},F=()=>{if(U!==null)clearTimeout(U),U=null;if(w!==null)cancelAnimationFrame(w),w=null;m=null},C=(Q2)=>{let j2=I>0?D/Q2*I:0;if(_<j2)return-1;if(_>=j2+u)return 1;return 0},x=()=>{let Q2=k-z,j2=C(Q2);if(j2===0){F();return}if(j2===-1){if(D<=0){F();return}let G2=Math.max(0,D-z);D=G2,Q(G2)}else{if(D>=Q2){F();return}let G2=Math.min(Q2,D+z);D=G2,Q(G2)}R()},$2=(Q2)=>{if(m===null){m=Q2,w=requestAnimationFrame($2);return}let j2=k-z,G2=Q2-m;m=Q2;let W2=C(j2);if(W2===0){F();return}let E2=12*z/1000,b2=Math.min(E2*G2,z);if(W2===-1){if(D<=0){F();return}let L2=Math.max(0,D-b2);D=L2,Q(L2)}else{if(D>=j2){F();return}let L2=Math.min(j2,D+b2);D=L2,Q(L2)}X(),w=requestAnimationFrame($2)},J2=()=>{F(),T(),document.removeEventListener("mouseup",J2)},B2=(Q2)=>{if(Q2.target===v||S!=="scroll")return;Q2.preventDefault();let j2=M.getBoundingClientRect();_=s(Q2)-j2[t],D=X2,x(),U=setTimeout(()=>{w=requestAnimationFrame($2)},350),document.addEventListener("mouseup",J2)},U2=(Q2)=>{Q2.preventDefault(),Q2.stopPropagation(),n=!0,e=s(Q2),q2=X2,X(),M.classList.add(`${$}-scrollbar--dragging`),document.addEventListener("mousemove",_2),document.addEventListener("mouseup",a)},_2=(Q2)=>{if(!n)return;let j2=s(Q2)-e,G2=I>0?j2/I:0,W2=k-z,E2=G2*W2,b2=Math.max(0,Math.min(q2+E2,W2)),SJ=b2/W2*I;if(v.style.transform=`${l}(${SJ}px)`,H=b2,c===null)c=requestAnimationFrame(()=>{if(H!==null)Q(H);c=null})},a=()=>{if(n=!1,c!==null)cancelAnimationFrame(c),c=null;if(H!==null)Q(H),H=null;if(M.classList.remove(`${$}-scrollbar--dragging`),B&&!r)T();document.removeEventListener("mousemove",_2),document.removeEventListener("mouseup",a)},Y2=()=>{if(N)R()},N2=()=>{if(!n){if(r=!1,B)T()}},V2=()=>{r=!0,X(),R()},Z2=()=>{if(r=!1,!n&&B)T()},D2=()=>{if(X(),F(),c!==null)cancelAnimationFrame(c),c=null;if(M.removeEventListener("click",o),M.removeEventListener("mousedown",B2),M.removeEventListener("mouseenter",V2),document.removeEventListener("mouseup",J2),M.removeEventListener("mouseleave",Z2),v.removeEventListener("mousedown",U2),J.removeEventListener("mouseenter",Y2),J.removeEventListener("mouseleave",N2),document.removeEventListener("mousemove",_2),document.removeEventListener("mouseup",a),A.removeEventListener("click",o),A.removeEventListener("mousedown",B2),O)A.removeEventListener("mouseenter",V2),A.removeEventListener("mouseleave",Z2);if(A.parentNode)A.parentNode.removeChild(A);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),M.parentNode)M.parentNode.removeChild(M)};if(E(),M.addEventListener("click",o),M.addEventListener("mousedown",B2),M.addEventListener("mouseenter",V2),M.addEventListener("mouseleave",Z2),v.addEventListener("mousedown",U2),J.addEventListener("mouseenter",Y2),J.addEventListener("mouseleave",N2),A.addEventListener("click",o),A.addEventListener("mousedown",B2),O)A.addEventListener("mouseenter",V2),A.addEventListener("mouseleave",Z2);return{show:R,hide:p,updateBounds:f,updatePosition:d,isVisible:()=>g,destroy:D2}};var sJ=50,nJ=0.1;function oJ(J){let Q=0,Y=0,$=0;function q(){return $>0?Y/$:0}function j(b){if(Q=b,b>nJ&&b<sJ)Y+=b,$++}function B(){let b=J.getTotal();if(b===0)return 0;let O=J.getItemSize();if(O<=0)return 0;let N=J.getContainerSize();if(N<=0)return 0;let y=J.getScrollPosition(),S=typeof J.getColumns==="function"?J.getColumns():1,Z=Math.ceil(b/S)*O,K=Math.min(Z,M2)-N,W=Z-N,P=K>0?W/K:1,k=y*P,z=Math.ceil((k+N)/O);return Math.min(z*S,b)}function G(){let b=J.getTotal(),O=B();return{progress:b>0?Math.min(100,Math.max(0,O/b*100)):0,velocity:Q,velocityAvg:q(),itemCount:O,total:b}}return{getState:G,onVelocity:j}}export{t2 as toggleSelection,OJ as simpleVisibleRange,I2 as selectItems,e2 as selectAll,RJ as rangesEqual,C2 as rafThrottle,XJ as needsScaling,z2 as mergeRanges,QJ as isSelected,A2 as isPlaceholderItem,yJ as isInRange,y2 as isGroupHeader,YJ as getSelectedItems,$J as getSelectedIds,R2 as getScaleState,NJ as getScaleInfo,R2 as getScale,PJ as getRangeCount,UJ as getMaxItemsWithoutScaling,u2 as filterPlaceholders,kJ as diffRanges,p2 as deselectItems,GJ as createTableRenderer,_J as createTableLayout,DJ as createTableHeader,a2 as createStickyHeader,oJ as createStats,k2 as createSparseStorage,T2 as createSizeCache,i2 as createSelectionState,fJ as createScrollbar,CJ as createScrollController,w2 as createPlaceholderManager,MJ as createMeasuredSizeCache,WJ as createMasonryRenderer,VJ as createMasonryLayout,r2 as createGroupedSizeFn,l2 as createGroupLayout,ZJ as createGridRenderer,s2 as createGridLayout,zJ as createEmitter,wJ as createAsyncManager,JJ as clearSelection,bJ as clampScrollPosition,FJ as calculateTotalSize,TJ as calculateScrollToIndex,jJ as calculateScaledVisibleRange,BJ as calculateScaledScrollToIndex,qJ as calculateScaledRenderRange,H2 as calculateScaledItemPosition,AJ as calculateRenderRange,g2 as calculateMissingRanges,HJ as calculateItemOffset,KJ as calculateIndexFromScrollPosition,LJ as calculateActualSize,c2 as buildLayoutItems,M2 as MAX_VIRTUAL_SIZE};
1
+ var y2=(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},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 V=1;V<J;V++){let T=Q(V,Y?.(V));if(T!==q){let E=V-j;$.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:E}),B=B+1+E,q=T,j=V}}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:(F)=>{if($.length===0)return{type:"item",dataIndex:F,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let U=S2($,F),Z=$[U];if(F===Z.headerLayoutIndex)return{type:"header",group:Z};let K=F-Z.headerLayoutIndex-1;return{type:"item",dataIndex:Z.firstDataIndex+K,group:Z}},layoutToDataIndex:(F)=>{if($.length===0)return F;let U=S2($,F),Z=$[U];if(F===Z.headerLayoutIndex)return-1;let K=F-Z.headerLayoutIndex-1;return Z.firstDataIndex+K},dataToLayoutIndex:(F)=>{if($.length===0)return F;let U=m2($,F),Z=$[U],K=F-Z.firstDataIndex;return Z.headerLayoutIndex+1+K},getGroupAtLayoutIndex:(F)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let U=S2($,F);return $[U]},getGroupAtDataIndex:(F)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let U=m2($,F);return $[U]},getHeaderHeight:typeof j==="number"?(F)=>j:(F)=>{let U=$[F];if(!U)return 0;return j(U.key,F)},rebuild:(F,U)=>{$=d2(F,Q.getGroupForIndex,U??Y),q=F+$.length}}};var fJ=(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,V,T)=>{let E=j?"width":"height",N=j?"height":"width",y=j?"X":"Y",p=(L,M)=>{L.style[E]=`${M}px`},F=T??fJ(J,q,j,0,B),U=()=>{let L=document.createElement("div");return L.className="sticky-group",L.style.position="absolute",L.style.willChange="transform",L.style[N]="100%",L},Z=U(),K=U();F.append(Z,K);let O=Z,P=K,S=Q.groups,z=[],f=[],d=[],u=0,J2=()=>{S=Q.groups,u=S.length,z=Array(u),f=Array(u),d=Array(u);let L=V?V():1;for(let M=0;M<u;M++)z[M]=Y.getOffset(S[M].headerLayoutIndex)*L,f[M]=Q.getHeaderHeight(M),d[M]=f[M]*L};J2();let t=-1,e=0,j2=0,K2=-1,g=!1,c=0,X=!1,D=(L,M)=>{$(L,M);let W=f[M];return p(L,W),W},_=(L)=>{L.replaceChildren(),L.style.transform=""},A=(L)=>{if(L===t)return;if(t=L,e=0,j2=0,L<0||L>=u){_(O);return}e=D(O,L),j2=d[L],p(F,e),O.style.transform=""},k=(L)=>{if(L===c)return;c=L;let M=Math.round(L);O.style.transform=`translate${y}(${M}px)`,P.style.transform=`translate${y}(${M+e}px)`},s=()=>{c=0,O.style.transform="",P.style.transform=""},o=()=>{if(!X)return;let L=O;O=P,P=L,t=K2,e=t>=0?f[t]:0,j2=t>=0?d[t]:0,p(F,e),_(P),K2=-1,X=!1,s()},n=()=>{if(!X)return;_(P),K2=-1,X=!1,s()},Q2=!!T,b=()=>{if(g)return;if(g=!0,Q2)F.style.visibility="";else F.style.display=""},H=()=>{if(!g)return;if(g=!1,Q2)F.style.visibility="hidden";else F.style.display="none";_(O),t=-1,e=0,j2=0,n()},h=(L)=>{if(u===0){H();return}if(L<z[0]){H();return}let M=0,W=u-1;while(M<W){let v=M+W+1>>>1;if(z[v]+d[v]<=L)M=v;else W=v-1}if(!g)b();A(M);let C=M+1;if(C<u){let v=z[C]-L;if(v<=0&&v>-j2){if(K2!==C||!X)K2=C,D(P,C),X=!0;let I=j2>0?v/j2*e:v;k(I)}else if(v<=-j2){if(X)o()}else if(X)n()}else if(X)n()},R=()=>{J2();let L=t;if(t=-1,e=0,j2=0,L>=0)A(L)},x=()=>{F.remove(),t=-1,e=0,j2=0,K2=-1,g=!1,X=!1};if(!T)F.style.display="none";return{update:h,refresh:R,show:b,hide:H,destroy:x}};var s2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.isHeaderFn,q={row:0,col:0},j=(U)=>{if(U<=0)return 0;if(!$)return Math.ceil(U/Q);let Z=0,K=0,O=0;for(let P=0;P<U;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=(U)=>{return q.row=V(U),q.col=T(U),q},V=(U)=>{if(!$)return Math.floor(U/Q);let Z=0,K=0;for(let O=0;O<=U;O++)if($(O)){if(K)Z++,K=0;if(O===U)return Z;Z++,K=0}else{if(O===U)return Z;if(K++,K>=Q)Z++,K=0}return console.warn(`⚠️ getRow(${U}) fell through - returning ${Z}`),Z},T=(U)=>{if(!$)return U%Q;if($(U))return 0;let Z=0;for(let K=0;K<=U;K++)if($(K))Z=0;else{if(K===U)return Z;if(Z++,Z>=Q)Z=0}return Z},E=(U,Z,K)=>{if(K<=0)return{start:0,end:-1};if(!$){let f=Math.max(0,U*Q),d=Math.min(K-1,(Z+1)*Q-1);return{start:f,end:d}}let O=-1,P=-1,S=0,z=0;for(let f=0;f<K;f++){if($(f)){if(z)S++,z=0;if(S>=U&&S<=Z){if(O<0)O=f;P=f}S++,z=0}else{if(S>=U&&S<=Z){if(O<0)O=f;P=f}if(z++,z>=Q)S++,z=0}if(S>Z&&!z)break}if(O<0)return{start:0,end:-1};return{start:O,end:P}},N=(U,Z,K)=>{if(Z<0||Z>=Q)return-1;let O=U*Q+Z;if(O<0||O>=K)return-1;return O},y=(U)=>{let Z=(Q-1)*Y;return Math.max(0,(U-Z)/Q)};return{get columns(){return Q},get gap(){return Y},update:(U)=>{if(U.columns!==void 0)Q=Math.max(1,Math.floor(U.columns));if(U.gap!==void 0)Y=U.gap;if(U.isHeaderFn!==void 0)$=U.isHeaderFn},getTotalRows:j,getPosition:B,getRow:V,getCol:T,getItemRange:E,getItemIndex:N,getColumnWidth:y,getColumnOffset:(U,Z)=>{let K=y(Z);return U*(K+Y)}}};var M2=16000000;var n2="x",o2=20,f2="_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 V=0;V<B;V++)$[V+1]=$[V]+J(V)};q(Q);let j=(B)=>{if(Y===0)return 0;if(B<=0)return 0;if(B>=$[Y])return Y-1;let V=0,T=Y-1;while(V<T){let E=V+T+1>>>1;if($[E]<=B)V=E;else T=E-1}return V};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=Y)return $[Y];return $[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>j(B),getTotalSize:()=>$[Y]??0,getTotal:()=>Y,rebuild:(B)=>q(B),isVariable:()=>!0}},T2=(J,Q)=>{if(typeof J==="number")return IJ(J,Q);return pJ(J,Q)},h2=(J,Q,Y,$)=>{if($===0)return 0;if(!J.isVariable())return Math.ceil(Y/J.getSize(0));let q=0,j=0,B=Q;while(B<$&&j<Y)j+=J.getSize(B),q++,B++;return Math.max(1,q)};var R2=(J,Q,Y)=>{let $=Q.getTotalSize(),q=Y===!0||$>M2,j=$>M2?M2:$,B=$>0?j/$:1;return{isCompressed:q,actualSize:$,virtualSize:j,ratio:B}},jJ=(J,Q,Y,$,q,j)=>{if($===0||Q===0)return j.start=0,j.end=-1,j;if(!q.isCompressed||q.ratio===1){let F=Y.indexAtOffset(J),U=Y.indexAtOffset(J+Q);if(U<$-1)U++;return j.start=Math.max(0,F),j.end=Math.min($-1,Math.max(0,U)),j}let{virtualSize:B}=q,V=J/B,T=Y.getTotalSize(),E=V*T,N=Y.indexAtOffset(E),y=h2(Y,Math.max(0,N),Q,$),p=N+y;return j.start=Math.max(0,N),j.end=Math.min($-1,Math.max(0,p)),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:V}=j,T=Q/V,E=Y.getTotalSize(),N=T*E;return Y.getOffset(J)-N},BJ=(J,Q,Y,$,q,j="start")=>{if($===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/$*q.virtualSize;let N=Q.getSize(J);switch(j){case"center":B-=(Y-N)/2*q.ratio;break;case"end":B-=(Y-N)*q.ratio;break}return Math.max(0,B)}B=Q.getOffset(J);let V=Q.getSize(J);switch(j){case"center":B-=(Y-V)/2;break;case"end":B-=Y-V;break}let T=q.virtualSize-Y;return Math.max(0,Math.min(B,T))},KJ=(J,Q,Y,$)=>{if(Y===0)return 0;if($.isCompressed&&$.ratio!==1){let q=J/$.virtualSize;return Math.floor(q*Y)}return Q.indexAtOffset(J)},XJ=(J,Q)=>{if(typeof Q==="number")return J*Q>M2;return Q.getTotalSize()>M2},UJ=(J)=>{if(J<=0)return 0;return Math.floor(M2/J)},NJ=(J,Q,Y)=>{let $=R2(J,Q,Y);if(!$.isCompressed)return`No compression needed (${J} items, ${($.actualSize/1e6).toFixed(2)}M px)`;return`Compressed to ${($.ratio*100).toFixed(1)}% (${J} items, ${($.actualSize/1e6).toFixed(1)}M px → ${($.virtualSize/1e6).toFixed(1)}M px virtual)`};var P2=(J,Q,Y)=>{let $=Array.from(Q).sort((B,V)=>B-V);if($.length<=1)return;let q=[];for(let B=0;B<$.length;B++){let V=Y($[B]);if(V)q.push(V)}if(q.length<=1)return;let j=J.firstChild;for(let B=0;B<q.length;B++){let V=q[B];if(V===j)j=j.nextSibling;else J.insertBefore(V,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,V,T=!1,E)=>{let N=hJ(),y=new Map,p=j,F=!1,U=0,Z="",K=-1,O={selected:!1,focused:!1},P=(b,H)=>{return O.selected=b,O.focused=H,O},S=`${q}-item ${q}-grid-item`,z=`${q}-group-header`,f=`${q}-item--selected`,d=`${q}-item--focused`,u=`${q}-item--placeholder`,J2=`${q}-item--replaced`,t=(b,H)=>{if(typeof H==="string")b.innerHTML=H;else b.replaceChildren(H)},e=(b,H,h)=>{b.classList.toggle(f,H),b.classList.toggle(d,h)},j2=(b,H)=>{let h=$.getRow(b);if(H?.compression?.isCompressed)return F2(h,H.scrollPosition,Y,H.totalItems,H.containerSize,H.compression,H.rangeStart);return Y.getOffset(h)},K2=(b,H)=>{let h=$.getCol(b),x=F&&h===0?0:$.getColumnOffset(h,p),L;if(F){let M=$.getRow(b),W=0,C=-1;for(let v=0;v<b;v++){let I=$.getRow(v);if(I<M&&I!==C){let l=Y.getSize(v);W+=l,C=I}}L=W}else L=j2(b,H);if(T)return`translate(${Math.round(L)}px, ${Math.round(x)}px)`;return`translate(${Math.round(x)}px, ${Math.round(L)}px)`},g=(b,H)=>{let h=b.classList.contains(z),R=h?p:$.getColumnWidth(p),x;if(F||h)x=Y.getSize(H)-$.gap;else{let L=$.getRow(H);x=Y.getSize(L)-$.gap}if(T)b.style.width=`${x}px`,b.style.height=`${R}px`;else b.style.width=`${R}px`,b.style.height=`${x}px`},c=(b,H,h,R,x)=>{let L=N.acquire(),M=!!H.__groupHeader,W=P(h,R);if(L.className=M?z:S,L.dataset.index=String(b),L.dataset.id=String(H.id),L.dataset.row=String($.getRow(b)),L.dataset.col=String($.getCol(b)),M)L.setAttribute("role","presentation"),L.removeAttribute("aria-selected"),L.removeAttribute("aria-setsize"),L.removeAttribute("aria-posinset"),L.removeAttribute("id");else{if(L.setAttribute("role","option"),L.ariaSelected=String(h),V)L.id=`${V}-item-${b}`;if(B){let I=B();if(I!==K)K=I,Z=String(I);L.setAttribute("aria-setsize",Z);let l=E?E(b):b+1;L.setAttribute("aria-posinset",String(l))}}g(L,b);let C=Q(H,b,W);if(t(L,C),String(H.id).startsWith(O2))L.classList.add(u);return e(L,h,R),L.style.transform=x,{element:L,lastItemId:H.id,lastSelected:h,lastFocused:R,lastTransform:x,lastSeenFrame:U}},X=(b,H,h,R,x)=>{if(U++,H.start===0&&b.length)F=y2(b[0]);for(let[W,C]of y)if(W>=H.start&&W<=H.end)C.lastSeenFrame=U;else if(U-C.lastSeenFrame>xJ)N.release(C.element),y.delete(W);let L=!1;if(B){let W=B();if(W!==K)K=W,Z=String(W),L=!0}let M=null;for(let W=H.start;W<=H.end;W++){let C=W-H.start,v=b[C];if(!v){console.warn(`⚠️ RENDER: Missing item at index ${W} (range: ${H.start}-${H.end}, items.length: ${b.length})`);continue}let I=h.has(v.id),l=W===R,G=y.get(W);if(G){let w=G.lastItemId!==v.id,a=G.lastSelected!==I,m=G.lastFocused!==l;if(w){let Y2=String(G.lastItemId),B2=String(v.id),N2=Y2.startsWith(O2),$2=B2.startsWith(O2);if(!$2&&A2(h,W,v.id))I=!0;let r=P(I,l),Z2=Q(v,W,r);if(t(G.element,Z2),G.element.dataset.id=B2,G.element.dataset.row=String($.getRow(W)),G.element.dataset.col=String($.getCol(W)),g(G.element,W),G.element.classList.toggle(u,$2),N2&&!$2)G.element.classList.add(J2),setTimeout(()=>G.element.classList.remove(J2),300);if(G.lastItemId=v.id,!v.__groupHeader){let U2=E?E(W):W+1;G.element.setAttribute("aria-posinset",String(U2))}}if(w||a||m)e(G.element,I,l),G.element.ariaSelected=String(I),G.lastSelected=I,G.lastFocused=l;let q2=K2(W,x);if(G.lastTransform!==q2)G.element.style.transform=q2,G.lastTransform=q2;if(L&&!v.__groupHeader)G.element.setAttribute("aria-setsize",Z)}else{if(A2(h,W,v.id))I=!0;let w=K2(W,x),a=c(W,v,I,l,w);if(!M)M=document.createDocumentFragment();M.appendChild(a.element),y.set(W,a)}}if(M)J.appendChild(M)},D=(b)=>{for(let[H,h]of y){let R=K2(H,b);if(h.lastTransform!==R)h.element.style.transform=R,h.lastTransform=R}},_=(b,H,h,R)=>{let x=y.get(b);if(!x)return;let L=P(h,R),M=Q(H,b,L);t(x.element,M),e(x.element,h,R),x.element.dataset.id=String(H.id),x.element.ariaSelected=String(h),g(x.element,b),x.lastItemId=H.id,x.lastSelected=h,x.lastFocused=R},A=(b,H,h)=>{let R=y.get(b);if(!R)return;let x=R.lastSelected!==H,L=R.lastFocused!==h;if(x||L)e(R.element,H,h),R.lastSelected=H,R.lastFocused=h},k=(b)=>{return y.get(b)?.element},s=(b)=>{if(Math.abs(b-p)<1)return;p=b;for(let[H,h]of y){g(h.element,H);let R=K2(H);h.element.style.transform=R,h.lastTransform=R}},o=()=>{P2(J,y.keys(),(b)=>y.get(b)?.element)},n=()=>{for(let[,b]of y)N.release(b.element);y.clear()};return{render:X,updatePositions:D,updateItem:_,updateItemClasses:A,getElement:k,sortDOM:o,updateContainerWidth:s,clear:n,destroy:()=>{n(),N.clear()}}};var _J=(J,Q=50,Y=1/0,$=!0)=>{let q=J,j=[],B=0,V=()=>{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}))},T=(K)=>{if(j.length===0){B=0;return}let O=0,P=0;for(let S=0;S<j.length;S++){let z=j[S],f=z.def;if(f.width!==void 0)z.width=x2(f.width,z.minWidth,z.maxWidth),O+=z.width;else P++}if(P){let z=Math.max(0,K-O)/P;for(let f=0;f<j.length;f++){let d=j[f];if(d.def.width===void 0)d.width=x2(z,d.minWidth,d.maxWidth)}}E()},E=()=>{let K=0;for(let O=0;O<j.length;O++){let P=j[O];P.offset=K,K+=P.width}B=K},N=(K,O)=>{if(K<0||K>=j.length)return 0;let P=j[K];if(!P.resizable)return P.width;let S=x2(O,P.minWidth,P.maxWidth);return P.width=S,E(),S},y=(K)=>{return j[K]},p=(K)=>{if(j.length===0)return;if(K<0)return j[0];if(K>=B)return j[j.length-1];let O=0,P=j.length-1;while(O<P){let S=O+P>>>1,z=j[S];if(K<z.offset)P=S-1;else if(K>=z.offset+z.width)O=S+1;else return z}return j[O]},F=(K)=>{if(K<0||K>=j.length)return 0;return j[K].offset},U=(K)=>{if(K<0||K>=j.length)return 0;return j[K].width},Z=(K)=>{q=K,V()};return V(),{get columns(){return j},get totalWidth(){return B},resolve:T,updateColumns:Z,resizeColumn:N,getColumn:y,getColumnAtX:p,getColumnOffset:F,getColumnWidth:U}},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 V=document.createElement("div");V.className=`${Y}-table-header`,V.setAttribute("role","row"),V.setAttribute("aria-rowindex","1"),V.style.height=`${Q}px`;let T=document.createElement("div");T.className=`${Y}-table-header-scroll`,T.setAttribute("role","presentation"),V.appendChild(T),B.appendChild(V),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let E=[],N=[],y=!0,p=null,F="asc",U=null,Z=!1,K=-1,O=0,P=0,S=(X,D)=>{let _=document.createElement("div");_.className=`${Y}-table-header-cell`,_.setAttribute("role","columnheader"),_.setAttribute("aria-colindex",String(D+1)),_.dataset.columnKey=X.def.key;let A=X.def.align;if(A==="center")_.classList.add(`${Y}-table-header-cell--center`);else if(A==="right")_.classList.add(`${Y}-table-header-cell--right`);let k=document.createElement("div");k.className=`${Y}-table-header-content`;let s=X.def.header?X.def.header(X.def):X.def.label;if(typeof s==="string")k.textContent=s;else k.appendChild(s);if(_.appendChild(k),X.def.sortable){let o=document.createElement("span");o.className=`${Y}-table-header-sort`,o.setAttribute("aria-hidden","true"),_.appendChild(o),N.push(o),_.classList.add(`${Y}-table-header-cell--sortable`)}else N.push(null);if(X.resizable){let o=document.createElement("div");o.className=`${Y}-table-header-resize`,o.dataset.resizeIndex=String(D),_.appendChild(o)}return _},z=(X)=>{U=X,T.textContent="",E=[],N=[];let D=X.columns;for(let _=0;_<D.length;_++){let A=D[_],k=S(A,_);E.push(k),T.appendChild(k)}if(f(X),p)d(p,F)},f=(X)=>{U=X;let D=X.columns;T.style.width=`${X.totalWidth}px`;for(let _=0;_<E.length&&_<D.length;_++){let A=E[_],k=D[_];A.style.width=`${k.width}px`}},d=(X,D)=>{if(p=X,F=D,!U)return;let _=U.columns;for(let A=0;A<N.length&&A<_.length;A++){let k=N[A];if(!k)continue;if(_[A].def.key===X)k.textContent=D==="asc"?"▲":"▼",k.style.opacity="0.7",E[A].setAttribute("aria-sort",D==="asc"?"ascending":"descending");else k.textContent="",k.style.opacity="0",E[A].removeAttribute("aria-sort")}},u=(X)=>{T.style.transform=`translateX(${-X}px)`},J2=(X)=>{let D=X.target;if(!D.dataset.resizeIndex)return;if(X.preventDefault(),X.stopPropagation(),K=+D.dataset.resizeIndex,!U)return;let _=U.getColumn(K);if(!_?.resizable)return;Z=!0,O=X.clientX,P=_.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",D.classList.add(`${Y}-table-header-resize--active`),D.setPointerCapture(X.pointerId),D.addEventListener("pointermove",t),D.addEventListener("pointerup",e),D.addEventListener("pointercancel",e)},t=(X)=>{if(!Z||!U)return;let D=X.clientX-O;if(Math.abs(D)<1)return;let _=Math.max(0,P+D);$(K,_)},e=(X)=>{if(!Z)return;let D=X.target;D.removeEventListener("pointermove",t),D.removeEventListener("pointerup",e),D.removeEventListener("pointercancel",e);try{D.releasePointerCapture(X.pointerId)}catch{}D.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",Z=!1,K=-1},j2=(X)=>{let D=X.target;if(D.dataset.resizeIndex)return;if(Z)return;let _=D;while(_&&!_.dataset.columnKey)if(_=_.parentElement,_===V||_===null)return;let A=_.dataset.columnKey;if(!U)return;let k=U.columns,s=-1;for(let n=0;n<k.length;n++)if(k[n].def.key===A){s=n;break}if(s===-1)return;let o=k[s];if(j)j({key:A,index:s,event:X});if(o.def.sortable&&q){let n;if(p===A)n=F==="asc"?"desc":null;else n="asc";q({key:A,index:s,direction:n})}};return V.addEventListener("pointerdown",J2),V.addEventListener("click",j2),{element:V,update:f,updateSort:d,rebuild:z,show:()=>{if(y)return;y=!0,V.style.display=""},hide:()=>{if(!y)return;y=!1,V.style.display="none"},destroy:()=>{V.removeEventListener("pointerdown",J2),V.removeEventListener("click",j2),J.style.removeProperty("--vlist-table-header-height"),B.remove(),E=[],N=[],U=null,y=!1},syncScroll:u}};var uJ=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Q)=>{if(Q.parentNode?.removeChild(Q),J.length<200)Q.className="",Q.removeAttribute("data-id"),Q.removeAttribute("data-index"),Q.removeAttribute("aria-selected"),Q.removeAttribute("aria-rowindex"),Q.removeAttribute("role"),Q.style.cssText="",Q.textContent="",J.push(Q)},clear:()=>{J.length=0}}},GJ=(J,Q,Y,$,q,j,B,V,T)=>{let E=uJ(),N=new Map,y=-1,p=Y,F=null,U=null,Z=null,K=(M,W)=>{U=M,Z=W},O=(M,W)=>{W?M.setAttribute("aria-selected","true"):M.removeAttribute("aria-selected")},P=(M,W,C,v)=>{M.setAttribute("role",W),M.setAttribute("data-id",String(C)),M.setAttribute("data-index",String(v))},S=(M)=>String(M).startsWith("__placeholder_"),z=`${q}-item ${q}-table-row`,f=`${q}-item--selected`,d=`${q}-item--focused`,u=`${q}-table-cell`,J2=`${q}-table-cell--center`,t=`${q}-table-cell--right`,e=`${q}-item--odd`,j2=`${q}-item--placeholder`,K2=`${q}-item--replaced`,g=`${q}-item ${q}-table-row ${q}-table-group-header`,c=`${q}-table-group-header-content`,X=(M,W,C,v,I=!1)=>{if(C.def.cell){let l=C.def.cell(W,C.def,v);if(typeof l==="string")M.innerHTML=l;else M.replaceChildren(l)}else{let l=W[C.def.key],G=l!=null?String(l):"";if(I&&G)M.innerHTML=`<span>${G}</span>`;else M.textContent=G}},D=(M,W,C,v,I=!1)=>{let l=z;if(V){if(F){let G=F(W);if(G>=0&&(G&1)===1)l+=` ${e}`}else if((W&1)===1)l+=` ${e}`}if(I)l+=` ${j2}`;if(C)l+=` ${f}`;if(v)l+=` ${d}`;M.className=l},_=(M,W,C)=>{if(C?.compression?.isCompressed)return Math.round(F2(M,C.scrollPosition,W,C.totalItems,C.containerSize,C.compression,C.rangeStart));return W.getOffset(M)},A=(M,W)=>{let C=W.def.align;if(C==="center")M.classList.add(J2),M.classList.remove(t);else if(C==="right")M.classList.add(t),M.classList.remove(J2);else M.classList.remove(J2,t)},k=(M,W)=>{let v=p.columns.length;if(W.length===v)return W;let I=[];for(let l=0;l<v;l++){let G;if(l<W.length)G=W[l];else G=document.createElement("div"),G.className=u,M.appendChild(G);I.push(G)}for(let l=v;l<W.length;l++)W[l].remove();return I},s=(M,W,C,v)=>{let I=E.acquire(),l=M,G=C.getSize(W),w=_(W,C,v);I.style.cssText=`width:${p.totalWidth}px;height:${G}px;transform:translateY(${w}px)`,I.className=g,P(I,"presentation",M.id,W),I.removeAttribute("aria-selected"),I.removeAttribute("aria-rowindex"),I.replaceChildren();let a=document.createElement("div");if(a.className=c,Z){let m=Z(l.groupKey,l.groupIndex);if(typeof m==="string")a.innerHTML=m;else a.appendChild(m)}return I.appendChild(a),{element:I,cells:[],index:W,isGroupHeader:!0,lastItemId:M.id,lastSelected:!1,lastFocused:!1,lastOffset:w,lastHeight:G}},o=(M,W,C,v,I,l)=>{let G=E.acquire(),w=I.getSize(W),a=_(W,I,l),m=S(M.id);G.style.cssText=`width:${p.totalWidth}px;height:${w}px;transform:translateY(${a}px)`,D(G,W,C,v,m),P(G,"row",M.id,W),G.id=`${j}-${W}`,G.setAttribute("aria-rowindex",String(W+2)),O(G,C);let q2=k(G,[]),Y2=p.columns;for(let B2=0;B2<q2.length&&B2<Y2.length;B2++){let N2=q2[B2],$2=Y2[B2];N2.style.cssText=`left:${$2.offset}px;width:${$2.width}px`,N2.setAttribute("role","gridcell"),N2.setAttribute("aria-colindex",String(B2+1)),A(N2,$2),X(N2,M,$2,W,m)}return{element:G,cells:q2,index:W,isGroupHeader:!1,lastItemId:M.id,lastSelected:C,lastFocused:v,lastOffset:a,lastHeight:w}},n=(M,W,C,v,I)=>{for(let[m,q2]of N)if(m<W.start||m>W.end)E.release(q2.element),N.delete(m);let l=!1,G=B();if(G!==y)y=G,l=!0;let w=null,a=Q();F=typeof V==="string"&&T?T():null;for(let m=W.start;m<=W.end;m++){let q2=m-W.start,Y2=M[q2];if(!Y2)continue;let B2=C.has(Y2.id),N2=m===v,$2=U?U(Y2):!1,r=N.get(m);if(r){if(r.isGroupHeader!==$2){E.release(r.element),N.delete(m);let Z2=$2?s(Y2,m,a,I):o(Y2,m,B2,N2,a,I);if(N.set(m,Z2),!w)w=document.createDocumentFragment();w.appendChild(Z2.element);continue}if($2){if(r.lastItemId!==Y2.id){let W2=Y2,_2=r.element.firstElementChild;if(_2&&Z){let i=Z(W2.groupKey,W2.groupIndex);if(typeof i==="string")_2.innerHTML=i;else _2.replaceChildren(i)}r.element.setAttribute("data-id",String(Y2.id)),r.lastItemId=Y2.id}let G2=_(m,a,I);if(r.lastOffset!==G2)r.lastOffset=G2,r.element.style.transform=`translateY(${G2}px)`;let U2=a.getSize(m);if(r.lastHeight!==U2)r.lastHeight=U2,r.element.style.height=`${U2}px`}else{let Z2=r.lastItemId!==Y2.id,G2=r.lastSelected!==B2,U2=r.lastFocused!==N2;if(Z2){let i=r.lastItemId!=null&&S(r.lastItemId),X2=S(Y2.id);if(!X2&&A2(C,m,Y2.id))B2=!0;let D2=p.columns;for(let V2=0;V2<r.cells.length&&V2<D2.length;V2++)X(r.cells[V2],Y2,D2[V2],m,X2);if(D(r.element,m,B2,N2,X2),r.element.setAttribute("data-id",String(Y2.id)),O(r.element,B2),i&&!X2)r.element.classList.add(K2),setTimeout(()=>{r.element.classList.remove(K2)},300);r.lastItemId=Y2.id,r.lastSelected=B2,r.lastFocused=N2}else if(G2||U2)D(r.element,m,B2,N2,S(Y2.id)),O(r.element,B2),r.lastSelected=B2,r.lastFocused=N2;let W2=_(m,a,I);if(r.lastOffset!==W2)r.lastOffset=W2,r.element.style.transform=`translateY(${W2}px)`;let _2=a.getSize(m);if(r.lastHeight!==_2)r.lastHeight=_2,r.element.style.height=`${_2}px`;if(l)r.element.setAttribute("aria-rowindex",String(m+2))}}else{if(A2(C,m,Y2.id))B2=!0;let Z2=$2?s(Y2,m,a,I):o(Y2,m,B2,N2,a,I);if(N.set(m,Z2),!w)w=document.createDocumentFragment();w.appendChild(Z2.element)}}if(w)J.appendChild(w)},Q2=(M)=>{let W=Q();for(let[C,v]of N){let I=_(C,W,M);if(v.lastOffset!==I)v.lastOffset=I,v.element.style.transform=`translateY(${I}px)`}},b=(M,W,C,v)=>{let I=N.get(M);if(!I)return;if(I.isGroupHeader)return;let l=p.columns;for(let G=0;G<I.cells.length&&G<l.length;G++)X(I.cells[G],W,l[G],M);I.element.setAttribute("data-id",String(W.id)),I.lastItemId=W.id,D(I.element,M,C,v),O(I.element,C),I.lastSelected=C,I.lastFocused=v},H=(M,W,C)=>{let v=N.get(M);if(!v)return;if(v.isGroupHeader)return;let I=v.lastSelected!==W,l=v.lastFocused!==C;if(I||l)D(v.element,M,W,C),O(v.element,W),v.lastSelected=W,v.lastFocused=C},h=(M)=>{p=M;let W=M.columns;for(let[,C]of N)if(C.element.style.width=`${M.totalWidth}px`,C.cells.length>0)for(let v=0;v<C.cells.length&&v<W.length;v++){let I=C.cells[v],l=W[v];I.style.left=`${l.offset}px`,I.style.width=`${l.width}px`}},R=(M)=>{return N.get(M)?.element},x=()=>{for(let[,M]of N)E.release(M.element);N.clear(),y=-1};return{render:n,updatePositions:Q2,updateItem:b,updateItemClasses:H,getElement:R,updateColumnLayout:h,setGroupHeaderFn:K,clear:x,destroy:()=>{x(),E.clear()}}};var VJ=(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 V=[],T=0,E=[],N=(Z,K)=>{if(Z<=0)return T=0,V=[],[];let O=Array(Q).fill(0),P=Array(Q);for(let f=0;f<Q;f++)P[f]=[];let S=Array(Z);for(let f=0;f<Z;f++){let d=0,u=O[0];for(let e=1;e<Q;e++){let j2=O[e];if(j2<u)u=j2,d=e}let J2=K(f),t=O[d];S[f]={index:f,x:j[d],y:t,lane:d,size:J2,crossSize:q},P[d].push(f),O[d]=t+J2+Y}V=P;let z=0;for(let f=0;f<Q;f++){let d=O[f],u=d>0?d-Y:0;if(u>z)z=u}return T=z,S},y=(Z)=>{if(Z.length===0)return T;if(T)return T;let K=Array(Q).fill(0);for(let P of Z){let S=P.y+P.size,z=K[P.lane];if(S>z)K[P.lane]=S}let O=0;for(let P=0;P<Q;P++)if(K[P]>O)O=K[P];return O},p=(Z,K,O)=>{if(Z.length===0||O<=K)return E.length=0,E;if(V.length===0||V.length!==Q)return F(Z,K,O);E.length=0;for(let P=0;P<Q;P++){let S=V[P],z=S.length;if(!z)continue;let f=0,d=z;while(f<d){let u=f+d>>>1,J2=Z[S[u]];if(J2.y+J2.size<=K)f=u+1;else d=u}for(let u=f;u<z;u++){let J2=Z[S[u]];if(J2.y>=O)break;E.push(J2)}}return E},F=(Z,K,O)=>{E.length=0;for(let P of Z)if(P.y+P.size>K&&P.y<O)E.push(P);return E};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:N,getTotalSize:y,getVisibleItems:p}};var mJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-lane"),Q.push(j)},clear:()=>{Q.length=0}}},dJ=1,WJ=(J,Q,Y,$=!1,q,j,B)=>{let V=mJ(),T=new Map,E=new Set,N=0,y="",p=-1,F={selected:!1,focused:!1},U=(g,c)=>{return F.selected=g,F.focused=c,F},Z=`${Y}-item ${Y}-masonry-item`,K=`${Y}-group-header`,O=`${Y}-item--selected`,P=`${Y}-item--focused`,S=(g,c)=>{if(typeof c==="string")g.innerHTML=c;else g.replaceChildren(c)},z=(g,c,X)=>{g.classList.toggle(O,c),g.classList.toggle(P,X)},f=(g,c)=>{if($)g.style.transform=`translate(${Math.round(c.y)}px, ${Math.round(c.x)}px)`;else g.style.transform=`translate(${Math.round(c.x)}px, ${Math.round(c.y)}px)`},d=(g,c)=>{if($)g.style.width=`${c.size}px`,g.style.height=`${c.crossSize}px`;else g.style.width=`${c.crossSize}px`,g.style.height=`${c.size}px`},u=(g,c,X,D,_)=>{let A=V.acquire(),k=c.__groupHeader,s=U(D,_);if(A.className=k?K:Z,A.dataset.index=String(g),A.dataset.id=String(c.id),A.dataset.lane=String(X.lane),k)A.setAttribute("role","presentation"),A.removeAttribute("aria-selected"),A.removeAttribute("aria-setsize"),A.removeAttribute("aria-posinset"),A.removeAttribute("id");else{if(A.setAttribute("role","option"),A.ariaSelected=String(D),j)A.id=`${j}-item-${g}`;if(q){let n=q();if(n!==p)p=n,y=String(n);A.setAttribute("aria-setsize",y);let Q2=B?B(g):g+1;A.setAttribute("aria-posinset",String(Q2))}}d(A,X);let o=Q(c,g,s);return S(A,o),z(A,D,_),f(A,X),{element:A,lastItemId:c.id,lastSelected:D,lastFocused:_,lastY:X.y,lastX:X.x,lastSize:X.size,lastCrossSize:X.crossSize,lastSeenFrame:N}},J2=(g,c,X,D)=>{N++,E.clear();for(let A=0;A<c.length;A++)E.add(c[A].index);for(let[A,k]of T)if(E.has(A))k.lastSeenFrame=N;else if(N-k.lastSeenFrame>dJ)V.release(k.element),T.delete(A);let _=null;for(let A=0;A<c.length;A++){let k=c[A],s=k.index,o=g(s);if(!o)continue;let n=X.has(o.id),Q2=s===D,b=T.get(s);if(b){let H=b.lastItemId!==o.id,h=b.lastSelected!==n,R=b.lastFocused!==Q2,x=b.lastY!==k.y||b.lastX!==k.x,L=b.lastSize!==k.size||b.lastCrossSize!==k.crossSize;if(H){let M=U(n,Q2),W=Q(o,s,M);if(S(b.element,W),b.element.dataset.id=String(o.id),b.lastItemId=o.id,!o.__groupHeader){let v=B?B(s):s+1;b.element.setAttribute("aria-posinset",String(v))}}if(H||h||R)z(b.element,n,Q2),b.element.ariaSelected=String(n),b.lastSelected=n,b.lastFocused=Q2;if(L)d(b.element,k),b.lastSize=k.size,b.lastCrossSize=k.crossSize;if(x)f(b.element,k),b.lastY=k.y,b.lastX=k.x}else{let H=u(s,o,k,n,Q2);if(!_)_=document.createDocumentFragment();_.appendChild(H.element),T.set(s,H)}}if(_)J.appendChild(_)},t=()=>{for(let g of T.values())V.release(g.element);T.clear(),J.innerHTML=""};return{render:J2,getElement:(g)=>T.get(g)?.element,updateItemClasses:(g,c,X)=>{let D=T.get(g);if(!D)return;let _=D.lastSelected!==c,A=D.lastFocused!==X;if(_||A)z(D.element,c,X),D.lastSelected=c,D.lastFocused=X},sortDOM:()=>{P2(J,T.keys(),(g)=>T.get(g)?.element)},clear:t,destroy:()=>{t(),V.clear()}}};var MJ=(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),V=Y.indexAtOffset(J+Q);if(V<$-1)V++;return j.start=Math.max(0,B),j.end=Math.min($-1,Math.max(0,V)),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)),V=Q.getOffset(B),T=Q.getSize(B),E=Q.getTotalSize(),N=Math.max(0,E-Y),y;switch(j){case"center":y=V-Y/2+T/2;break;case"end":y=V-Y+T;break;case"start":default:y=V;break}return Math.max(0,Math.min(y,N))},FJ=(J,Q,Y)=>{if(Y&&Y.isCompressed)return Y.virtualSize;return Q.getTotalSize()},LJ=(J,Q)=>{return Q.getTotalSize()},HJ=(J,Q)=>{return Q.getOffset(J)},bJ=(J,Q,Y)=>{let $=Math.max(0,Q-Y);return Math.max(0,Math.min(J,$))};var TJ=(J,Q,Y,$,q="start",j,B=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((V)=>{try{V(B)}catch(T){console.error(`[vlist] Error in event handler for "${String(j)}":`,T)}})},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,V=0,T=(X)=>{let D=j.get(X);if(!D)D={items:Array(Q),count:0,lastAccess:Date.now()},j.set(X,D);else D.lastAccess=Date.now();return D},E=(X)=>{return Math.floor(X/Q)},N=(X)=>{return X%Q},y=()=>B,p=(X)=>{B=X},F=(X)=>{if(X<0||X>=B)return;let D=E(X),_=j.get(D);if(!_)return;return _.items[N(X)]},U=(X)=>{if(X<0||X>=B)return!1;let D=E(X),_=j.get(D);if(!_)return!1;return _.items[N(X)]!==void 0},Z=(X,D)=>{let _=E(X),A=T(_),k=N(X),s=A.items[k]===void 0;if(A.items[k]=D,s)A.count++,V++;if(X>=B)B=X+1},K=(X,D)=>{for(let _=0;_<D.length;_++){let A=D[_];if(A!==void 0)Z(X+_,A)}},O=(X)=>{if(X<0||X>=B)return!1;let D=E(X),_=j.get(D),A=N(X);if(!(_!==void 0&&_.items[A]!==void 0))return!1;let s=D,o=Array.from(j.keys()).filter((Q2)=>Q2>=s).sort((Q2,b)=>Q2-b),n=[];for(let Q2 of o){let b=j.get(Q2),H=Q2*Q;for(let h=0;h<Q;h++){if(b.items[h]===void 0)continue;let R=H+h;if(R<=X)continue;n.push({oldIndex:R,item:b.items[h]})}}if(_.items[A]=void 0,_.count--,V--,_.count===0)j.delete(D);for(let{oldIndex:Q2}of n){let b=E(Q2),H=j.get(b);if(!H)continue;let h=N(Q2);if(H.items[h]!==void 0){if(H.items[h]=void 0,H.count--,V--,H.count===0)j.delete(b)}}for(let{oldIndex:Q2,item:b}of n){let H=Q2-1,h=E(H),R=T(h),x=N(H);R.items[x]=b,R.count++,V++}return B--,!0},P=(X,D)=>{let _=[];for(let A=X;A<=D&&A<B;A++)_.push(F(A));return _},S=(X,D)=>{for(let _=X;_<=D&&_<B;_++)if(!U(_))return!1;return!0},z=()=>{let X=[],D=null,_=Array.from(j.keys()).sort((A,k)=>A-k);for(let A of _){let k=j.get(A);if(!k)continue;let s=A*Q;for(let o=0;o<Q;o++){let n=s+o;if(n>=B)break;if(k.items[o]!==void 0)if(D===null)D={start:n,end:n};else if(n===D.end+1)D.end=n;else X.push(D),D={start:n,end:n};else if(D!==null)X.push(D),D=null}}if(D!==null)X.push(D);return X},f=(X,D)=>{let _=[],A=null;for(let k=X;k<=D&&k<B;k++)if(!U(k))if(A===null)A={start:k,end:k};else A.end=k;else if(A!==null)_.push(A),A=null;if(A!==null)_.push(A);return _},d=(X)=>{return j.has(X)},u=(X)=>{let D=j.get(X);if(D)D.lastAccess=Date.now()},J2=(X,D)=>{if(X>D||j.size===0)return;let _=Date.now(),A=E(Math.max(0,X)),k=E(Math.min(B-1,D));for(let s=A;s<=k;s++){let o=j.get(s);if(o)o.lastAccess=_}},t=(X,D)=>{if(V<=Y)return 0;let _=Math.max(0,X-$),A=Math.min(B-1,D+$),k=E(_),s=E(A),o=0,n=[];for(let[Q2,b]of j)if(Q2<k||Q2>s)o+=b.count,n.push(Q2),V-=b.count,j.delete(Q2);if(o>0&&q)q(o,n);return o},e=()=>{if(V<=Y)return 0;let X=Array.from(j.entries()).sort(([,A],[,k])=>A.lastAccess-k.lastAccess),D=0,_=[];for(let[A,k]of X){if(V<=Y)break;D+=k.count,V-=k.count,_.push(A),j.delete(A)}if(D>0&&q)q(D,_);return D},j2=()=>{return{totalItems:B,cachedItems:V,cachedChunks:j.size,chunkSize:Q,maxCachedItems:Y,memoryEfficiency:B>0?1-V/B:1}},K2=()=>V,g=()=>{j.clear(),V=0};return{chunkSize:Q,maxCachedItems:Y,getTotal:y,setTotal:p,get:F,has:U,set:Z,setRange:K,delete:O,getRange:P,isRangeLoaded:S,getLoadedRanges:z,findUnloadedRanges:f,getChunkIndex:E,isChunkLoaded:d,touchChunk:u,touchChunksForRange:J2,evictDistant:t,evictToLimit:e,getStats:j2,getCachedCount:K2,clear:g,reset:()=>{g(),B=0}}},z2=(J)=>{if(J.length===0)return[];let Q=[...J].sort(($,q)=>$.start-q.start),Y=[{...Q[0]}];for(let $=1;$<Q.length;$++){let q=Q[$],j=Y[Y.length-1];if(q.start<=j.end+1)j.end=Math.max(j.end,q.end);else Y.push({...q})}return Y},g2=(J,Q,Y)=>{let $=Math.floor(J.start/Y)*Y,q=Math.ceil((J.end+1)/Y)*Y-1,j={start:$,end:q};if(Q.length===0)return[j];let B=[],V=z2(Q),T=j.start;for(let E of V){if(E.end<T)continue;if(E.start>j.end)break;if(E.start>T)B.push({start:T,end:Math.min(E.start-1,j.end)});if(T=E.end+1,T>j.end)break}if(T<=j.end)B.push({start:T,end:j.end});return B};var v2=(J={})=>{let{maskCharacter:Q=n2,maxSampleSize:Y=o2}=J,$=[],q=!1,j=(N)=>{if(q||N.length===0)return;let y=Math.min(N.length,Y);for(let p=0;p<y;p++){let F=N[p];if(!F||typeof F!=="object")continue;let U={},Z=!1;for(let[K,O]of Object.entries(F)){if(K.startsWith("_")||K==="id")continue;U[K]=String(O??"").length,Z=!0}if(Z)$.push(U)}q=!0},B=()=>q,V=(N)=>{let y={id:`${O2}${N}`,[f2]:!0,_index:N};if($.length===0)return y.label=Q.repeat(12),y;let p=$[N%$.length];for(let[F,U]of Object.entries(p))y[F]=Q.repeat(Math.max(1,U));return y};return{analyzeStructure:j,hasAnalyzedStructure:B,generate:V,generateRange:(N,y)=>{let p=[];for(let F=N;F<=y;F++)p.push(V(F));return p},clear:()=>{$=[],q=!1}}},E2=(J)=>{if(!J||typeof J!=="object")return!1;return J[f2]===!0},u2=(J)=>{return J.filter((Q)=>!E2(Q))};var rJ=50,vJ=(J={})=>{let{adapter:Q,initialItems:Y,initialTotal:$,storage:q,placeholder:j,pageSize:B=rJ,onStateChange:V,onItemsLoaded:T,onItemsEvicted:E}=J,N=k2({...q,onEvict:(G,w)=>{E?.(G),u()}}),y=null,p=()=>{if(!y)y=v2(j);return y},F=new Map,U=!1,Z,K=!0,O,P,S=[],z=0,f=new Map,d=()=>{for(let G of f.values())G[1].abort();f.clear()},u=()=>{V?.(D())},J2=()=>{F.clear();let G=N.getLoadedRanges();for(let w of G)for(let a=w.start;a<=w.end;a++){let m=N.get(a);if(m&&!E2(m))F.set(m.id,a)}},t=(G,w)=>{if(!E2(w))F.set(w.id,G)},e=(G)=>{F.delete(G)},j2=(G,w)=>{return`${G}-${w}`},K2=()=>N.getTotal(),g=()=>N.getCachedCount(),c=()=>U,X=()=>K,D=()=>({total:N.getTotal(),cached:N.getCachedCount(),isLoading:U,pendingRanges:S,error:Z,hasMore:K,cursor:O}),_=()=>N,A=()=>p(),k=(G)=>{let w=N.get(G);if(w!==void 0)return w;if(G>=0&&G<N.getTotal())return p().generate(G);return},s=(G)=>{let w=F.get(G);if(w===void 0)return;return N.get(w)},o=(G)=>{return F.get(G)??-1},n=(G)=>{let w=N.get(G);return w!==void 0&&!E2(w)},Q2=(G,w)=>{let a=[],m=N.getTotal();N.touchChunksForRange(G,Math.min(w,m-1));for(let q2=G;q2<=w&&q2<m;q2++){let Y2=N.get(q2);if(Y2!==void 0)a.push(Y2);else a.push(p().generate(q2))}return a},b=(G)=>{N.setTotal(G),K=N.getCachedCount()<G,u()},H=(G,w=0,a)=>{if(Q&&G.length>0){let m=p();if(!m.hasAnalyzedStructure())m.analyzeStructure(G)}for(let m=0;m<G.length;m++){let q2=G[m];if(q2!==void 0){let Y2=w+m;N.set(Y2,q2),t(Y2,q2)}}if(a!==void 0)N.setTotal(a);else if(w+G.length>N.getTotal())N.setTotal(w+G.length);if(N.getCachedCount()>=N.getTotal()&&N.getTotal()>0)K=!1;u(),T?.(G,w,N.getTotal())},h=(G,w)=>{let a=N.get(G);if(!a)return!1;let m=a.id,q2={...a,...w};if(N.set(G,q2),w.id!==void 0&&w.id!==m)e(m);return t(G,q2),u(),!0},R=(G)=>{let w=F.get(G);if(w===void 0)return!1;if(!N.delete(w))return!1;return J2(),d(),u(),!0},x=async(G,w)=>{if(!Q)return;let a=N.chunkSize,m=Math.floor(G/a),q2=Math.floor(w/a),Y2=a*2;for(let[$2,r]of f){let Z2=$2.indexOf("-"),G2=parseInt($2.slice(0,Z2),10);if(Math.abs(G2-G)>Y2)r[1].abort(),f.delete($2)}let B2=[],N2=[];for(let $2=m;$2<=q2;$2++){let r=$2*a,Z2=r+a-1,G2=j2(r,Z2);if(N.isChunkLoaded($2))continue;let U2=f.get(G2);if(U2)N2.push(U2[0]);else B2.push({start:r,end:Z2})}if(B2.length===0)return;for(let $2 of B2){let r=j2($2.start,$2.end),Z2=new AbortController,G2=(async()=>{S.push($2),U=!0,Z=void 0,u();try{let U2=$2.end-$2.start+1,W2={offset:$2.start,limit:U2,cursor:$2.start===P?O:void 0,signal:Z2.signal},_2=await Q.read(W2);if(H(_2.items,$2.start,_2.total),_2.cursor)O=_2.cursor,P=$2.start+_2.items.length;let i=$2.start+_2.items.length;if(i>=z){if(z=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{f.delete(r),S=S.filter((U2)=>U2.start!==$2.start||U2.end!==$2.end),U=f.size>0,u()}})();f.set(r,[G2,Z2]),N2.push(G2)}await Promise.all(N2)},L=async(G,w)=>{if(N.isRangeLoaded(G,w))return;await x(G,w)},M=async()=>{if(!Q)return;await x(0,B-1)},W=async()=>{if(!Q||U||!K)return!1;let G=N.getCachedCount(),w=N.getTotal(),a=G,m=Math.min(a+B-1,w>0?w-1:a+B-1);if(a>=w&&w>0)return K=!1,!1;return await x(a,m),N.getCachedCount()>G},C=async()=>{if(N.clear(),N.setTotal(0),F.clear(),y)y.clear();d(),S=[],U=!1,O=void 0,P=void 0,K=!0,z=0,Z=void 0,u()},v=(G,w)=>{if(N.evictDistant(G,w)>0)J2()},I=()=>{N.clear(),F.clear(),O=void 0,P=void 0,Z=void 0,S=[],U=!1,u()},l=()=>{if(N.reset(),F.clear(),y)y.clear();O=void 0,P=void 0,K=!0,z=0,Z=void 0,S=[],U=!1,u()};if(Y&&Y.length>0)H(Y,0,$??Y.length);else if($!==void 0)N.setTotal($),u();return{getState:D,getTotal:K2,getCached:g,getIsLoading:c,getHasMore:X,getStorage:_,getPlaceholders:A,getItem:k,getItemById:s,getIndexById:o,isItemLoaded:n,getItemsInRange:Q2,setTotal:b,setItems:H,updateItem:h,removeItem:R,loadRange:x,ensureRange:L,loadInitial:M,loadMore:W,reload:C,evictDistant:v,clear:I,reset:l}};var wJ=(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}},w2=(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],V=Q-B.position,T=Y-B.time;J.velocity=T>0?V/T: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:V,scrollElement:T,horizontal:E=!1}=Q,N=!!T,y=0,p=0,F=N?E?window.innerWidth:window.innerHeight:E?J.clientWidth:J.clientHeight,U=Q.compressed??!1,Z=Q.compression,K=wJ(),O=!1,P=null,z=C2(()=>{let R=E?J.scrollLeft:J.scrollTop,x=R>=y?"down":"up";if(K=w2(K,R),y=R,B)B({scrollTop:y,direction:x,velocity:K.velocity});e()}),d=C2(()=>{let R=J.getBoundingClientRect(),x=E?Math.max(0,-R.left):Math.max(0,-R.top),L=x>=y?"down":"up";if(K=w2(K,x),y=x,!O)O=!0;if(B)B({scrollTop:y,direction:L,velocity:K.velocity});e()}),u=(R)=>{R.preventDefault()},J2=(R)=>{if(R.deltaX)return;R.preventDefault(),J.scrollLeft+=R.deltaY},t=(R)=>{if(!U)return;R.preventDefault();let x=(E?R.deltaX||R.deltaY:R.deltaY)*$,L=y+x;if(q)L=y+x*0.3;if(L=Math.max(0,Math.min(L,p)),L!==y){let W=L>=y?"down":"up";if(K=w2(K,L),y=L,!O)O=!0;if(B)B({scrollTop:y,direction:W,velocity:K.velocity});e()}},e=()=>{if(P)clearTimeout(P);P=setTimeout(()=>{if(O=!1,K=wJ(y),V)V()},j)},j2=(R)=>{if(U)return;if(U=!0,Z=R,p=R.virtualSize-F,N)return;if(z.cancel(),J.removeEventListener("scroll",z),!Y)J.removeEventListener("wheel",u);else if(E)J.removeEventListener("wheel",J2);if(E)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",t,{passive:!1});let x=E?J.scrollLeft:J.scrollTop;if(x>0){let L=E?Z?.actualSize??J.scrollWidth:Z?.actualSize??J.scrollHeight;y=x/L*p}if(E)J.scrollLeft=0;else J.scrollTop=0},K2=()=>{if(!U)return;if(U=!1,N){Z=void 0;return}if(J.removeEventListener("wheel",t),E)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",z,{passive:!0}),!Y)J.addEventListener("wheel",u,{passive:!1});else if(E)J.addEventListener("wheel",J2,{passive:!1});if(Z&&y>0){let x=y/p*(Z.actualSize-F);if(E)J.scrollLeft=x;else J.scrollTop=x}Z=void 0},g=()=>{if(N||U)return y;return E?J.scrollLeft:J.scrollTop},c=(R,x=!1)=>{let L=Math.max(0,Math.min(R,p||1/0));if(N){let M=J.getBoundingClientRect();if(E){let W=M.left+window.scrollX;window.scrollTo({left:W+L,behavior:x?"smooth":"auto"})}else{let W=M.top+window.scrollY;window.scrollTo({top:W+L,behavior:x?"smooth":"auto"})}}else if(U){if(L===y)return;let W=L>=y?"down":"up";if(K=w2(K,L),y=L,!O)O=!0;if(B)B({scrollTop:y,direction:W,velocity:K.velocity});e()}else if(E)J.scrollTo({left:L,behavior:x?"smooth":"auto"});else J.scrollTo({top:L,behavior:x?"smooth":"auto"})},X=(R)=>{c(g()+R)},D=()=>{return g()<=0},_=(R=0)=>{let x=g(),L=N||U?p:E?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return x>=L-R},A=()=>{let R=g(),x=N||U?p:E?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(x<=0)return 0;return Math.min(1,Math.max(0,R/x))},k=(R)=>{if(R.compression)Z=R.compression,p=Z.virtualSize-F},s=()=>U,o=()=>Math.abs(K.velocity),n=()=>lJ(K),Q2=()=>O,b=()=>N,H=(R)=>{if(F=R,Z)p=Z.virtualSize-F},h=()=>{if(P)clearTimeout(P);if(N)d.cancel(),window.removeEventListener("scroll",d);else z.cancel(),J.removeEventListener("scroll",z),J.removeEventListener("wheel",t),J.removeEventListener("wheel",u),J.removeEventListener("wheel",J2)};if(N){if(U&&Z)p=Z.virtualSize-F;window.addEventListener("scroll",d,{passive:!0})}else if(U&&Z){if(p=Z.virtualSize-F,E)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",t,{passive:!1})}else{if(E)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",z,{passive:!0}),!Y)J.addEventListener("wheel",u,{passive:!1});else if(E)J.addEventListener("wheel",J2,{passive:!1})}return{getScrollTop:g,scrollTo:c,scrollBy:X,isAtTop:D,isAtBottom:_,getScrollPercentage:A,getVelocity:o,isTracking:n,isScrolling:Q2,updateConfig:k,enableCompression:j2,disableCompression:K2,isCompressed:s,isWindowMode:b,updateContainerHeight:H,destroy:h}},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}},SJ=(J,Q,Y={},$="vlist",q=!1,j)=>{let{autoHide:B=!0,autoHideDelay:V=1000,minThumbSize:T=15,showOnHover:E=!0,showOnViewportEnter:N=!0,clickBehavior:y="scroll"}=Y,p=y==="page"?"scroll":y,F=j??J,U=aJ(Y.padding),Z=q?U.left:U.top,K=q?U.right:U.bottom,O=q?U.bottom:U.right,P=Y.hoverZoneWidth??O+16,S=0,z=0,f=0,d=0,u=!1,J2=!1,t=0,e=0,j2=0,K2=null,g=!1,c=null,X=null,D=0,_=0,A=null,k=null,s=null,o=q?"width":"height",n=q?"translateX":"translateY",Q2=q?(i)=>i.clientX:(i)=>i.clientY,b=q?"left":"top",H=document.createElement("div"),h=document.createElement("div"),R=document.createElement("div"),x=()=>{if(F===J)return;let i=J.offsetTop,X2=q?U.left:U.top;H.style[q?"left":"top"]=`${i+X2}px`,R.style[q?"left":"top"]=`${i}px`},L=()=>{if(H.className=`${$}-scrollbar`,h.className=`${$}-scrollbar-thumb`,q)H.classList.add(`${$}-scrollbar--horizontal`);if(Y.padding!==void 0)F.style.setProperty("--vlist-custom-scrollbar-padding-top",`${U.top}px`),F.style.setProperty("--vlist-custom-scrollbar-padding-right",`${U.right}px`),F.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${U.bottom}px`),F.style.setProperty("--vlist-custom-scrollbar-padding-left",`${U.left}px`);if(Y.minThumbSize!==void 0)H.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${T}px`);if(H.appendChild(h),F.appendChild(H),R.className=`${$}-scrollbar-hover`,q)R.classList.add(`${$}-scrollbar-hover--horizontal`),R.style.height=`${P}px`;else R.style.width=`${P}px`;if(F.appendChild(R),F!==J)x()},M=()=>{if(K2)clearTimeout(K2),K2=null},W=()=>{if(!B)return;M(),K2=setTimeout(v,V)},C=()=>{if(S<=z)return;if(M(),!g)H.classList.add(`${$}-scrollbar--visible`),g=!0;if(B&&!u&&!J2)W()},v=()=>{if(u||J2)return;H.classList.remove(`${$}-scrollbar--visible`),g=!1},I=(i,X2)=>{if(S=i,z=X2,x(),S<=z){H.style.display="none",v();return}H.style.display="";let D2=Math.max(0,z-Z-K),V2=z/S;if(f=Math.max(T,V2*D2),h.style[o]=`${f}px`,d=D2-f,l(j2),!B)C()},l=(i)=>{if(j2=i,S<=z||d<=0)return;let X2=S-z,D2=Math.min(1,Math.max(0,i/X2));h.style.transform=`${n}(${D2*d}px)`},G=(i)=>{if(i.target===h||p!=="jump"||d<=0)return;let X2=S-z,D2=H.getBoundingClientRect(),V2=Q2(i)-D2[b],L2=Math.max(0,Math.min(V2-f/2,d));Q(L2/d*X2),C()},w=()=>{if(A!==null)clearTimeout(A),A=null;if(k!==null)cancelAnimationFrame(k),k=null;s=null},a=(i)=>{let X2=d>0?_/i*d:0;if(D<X2)return-1;if(D>=X2+f)return 1;return 0},m=()=>{let i=S-z,X2=a(i);if(X2===0){w();return}if(X2===-1){if(_<=0){w();return}let D2=Math.max(0,_-z);_=D2,Q(D2)}else{if(_>=i){w();return}let D2=Math.min(i,_+z);_=D2,Q(D2)}C()},q2=(i)=>{if(s===null){s=i,k=requestAnimationFrame(q2);return}let X2=S-z,D2=i-s;s=i;let V2=a(X2);if(V2===0){w();return}let L2=12*z/1000,H2=Math.min(L2*D2,z);if(V2===-1){if(_<=0){w();return}let b2=Math.max(0,_-H2);_=b2,Q(b2)}else{if(_>=X2){w();return}let b2=Math.min(X2,_+H2);_=b2,Q(b2)}M(),k=requestAnimationFrame(q2)},Y2=()=>{w(),W(),document.removeEventListener("mouseup",Y2)},B2=(i)=>{if(i.target===h||p!=="scroll")return;i.preventDefault();let X2=H.getBoundingClientRect();D=Q2(i)-X2[b],_=j2,m(),A=setTimeout(()=>{k=requestAnimationFrame(q2)},350),document.addEventListener("mouseup",Y2)},N2=(i)=>{i.preventDefault(),i.stopPropagation(),u=!0,t=Q2(i),e=j2,M(),H.classList.add(`${$}-scrollbar--dragging`),document.addEventListener("mousemove",$2),document.addEventListener("mouseup",r)},$2=(i)=>{if(!u)return;let X2=Q2(i)-t,D2=d>0?X2/d:0,V2=S-z,L2=D2*V2,H2=Math.max(0,Math.min(e+L2,V2));if(h.style.transform=`${n}(${H2/V2*d}px)`,X=H2,c===null)c=requestAnimationFrame(()=>{if(X!==null)Q(X);c=null})},r=()=>{if(u=!1,c!==null)cancelAnimationFrame(c),c=null;if(X!==null)Q(X),X=null;if(H.classList.remove(`${$}-scrollbar--dragging`),B&&!J2)W();document.removeEventListener("mousemove",$2),document.removeEventListener("mouseup",r)},Z2=()=>{if(N)C()},G2=()=>{if(!u){if(J2=!1,B)W()}},U2=()=>{J2=!0,M(),C()},W2=()=>{if(J2=!1,!u&&B)W()},_2=()=>{if(M(),w(),c!==null)cancelAnimationFrame(c),c=null;H.removeEventListener("click",G),H.removeEventListener("mousedown",B2),H.removeEventListener("mouseenter",U2),document.removeEventListener("mouseup",Y2),H.removeEventListener("mouseleave",W2),h.removeEventListener("mousedown",N2),J.removeEventListener("mouseenter",Z2),J.removeEventListener("mouseleave",G2),document.removeEventListener("mousemove",$2),document.removeEventListener("mouseup",r),R.removeEventListener("click",G),R.removeEventListener("mousedown",B2),R.removeEventListener("mouseenter",U2),R.removeEventListener("mouseleave",W2),R.remove(),F.style.removeProperty("--vlist-custom-scrollbar-padding-top"),F.style.removeProperty("--vlist-custom-scrollbar-padding-right"),F.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),F.style.removeProperty("--vlist-custom-scrollbar-padding-left"),H.remove()};if(L(),H.addEventListener("click",G),H.addEventListener("mousedown",B2),H.addEventListener("mouseenter",U2),H.addEventListener("mouseleave",W2),h.addEventListener("mousedown",N2),J.addEventListener("mouseenter",Z2),J.addEventListener("mouseleave",G2),R.addEventListener("click",G),R.addEventListener("mousedown",B2),E)R.addEventListener("mouseenter",U2),R.addEventListener("mouseleave",W2);return{show:C,hide:v,updateBounds:I,updatePosition:l,isVisible:()=>g,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(T){if(Q=T,T>nJ&&T<sJ)Y+=T,$++}function B(){let T=J.getTotal();if(T===0)return 0;let E=J.getItemSize();if(E<=0)return 0;let N=J.getContainerSize();if(N<=0)return 0;let y=J.getScrollPosition(),p=typeof J.getColumns==="function"?J.getColumns():1,U=Math.ceil(T/p)*E,K=Math.min(U,M2)-N,O=U-N,P=K>0?O/K:1,S=y*P,z=Math.ceil((S+N)/E);return Math.min(z*p,T)}function V(){let T=J.getTotal(),E=B();return{progress:T>0?Math.min(100,Math.max(0,E/T*100)):0,velocity:Q,velocityAvg:q(),itemCount:E,total:T}}return{getState:V,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,GJ as createTableRenderer,_J as createTableLayout,DJ as createTableHeader,a2 as createStickyHeader,oJ as createStats,k2 as createSparseStorage,T2 as createSizeCache,i2 as createSelectionState,SJ as createScrollbar,CJ as createScrollController,v2 as createPlaceholderManager,MJ as createMeasuredSizeCache,WJ as createMasonryRenderer,VJ as createMasonryLayout,r2 as createGroupedSizeFn,l2 as createGroupLayout,ZJ as createGridRenderer,s2 as createGridLayout,zJ as createEmitter,vJ 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,M2 as MAX_VIRTUAL_SIZE};
package/dist/size.json CHANGED
@@ -1 +1 @@
1
- {"base":{"minified":"29.5","gzipped":"11.3","minBytes":30233,"gzBytes":11578},"withGrid":{"minified":"42.0","gzipped":"15.3","minBytes":43054,"gzBytes":15646},"withMasonry":{"minified":"39.6","gzipped":"14.8","minBytes":40509,"gzBytes":15169},"withGroups":{"minified":"45.3","gzipped":"16.1","minBytes":46420,"gzBytes":16461},"withAsync":{"minified":"42.2","gzipped":"15.8","minBytes":43249,"gzBytes":16215},"withSelection":{"minified":"41.2","gzipped":"14.6","minBytes":42206,"gzBytes":14962},"withScale":{"minified":"42.9","gzipped":"15.1","minBytes":43886,"gzBytes":15423},"withScrollbar":{"minified":"36.0","gzipped":"13.2","minBytes":36878,"gzBytes":13533},"withPage":{"minified":"31.9","gzipped":"12.1","minBytes":32625,"gzBytes":12357},"withSnapshots":{"minified":"33.3","gzipped":"12.6","minBytes":34127,"gzBytes":12866},"withTable":{"minified":"47.1","gzipped":"16.8","minBytes":48204,"gzBytes":17231},"withSortable":{"minified":"39.4","gzipped":"14.3","minBytes":40396,"gzBytes":14666},"withAutoSize":{"minified":"32.3","gzipped":"12.2","minBytes":33109,"gzBytes":12511}}
1
+ {"base":{"minified":"28.2","gzipped":"10.8","minBytes":28918,"gzBytes":11031},"withGrid":{"minified":"40.7","gzipped":"14.8","minBytes":41724,"gzBytes":15171},"withMasonry":{"minified":"38.1","gzipped":"14.2","minBytes":39049,"gzBytes":14580},"withGroups":{"minified":"42.7","gzipped":"15.2","minBytes":43677,"gzBytes":15568},"withAsync":{"minified":"40.4","gzipped":"15.2","minBytes":41351,"gzBytes":15602},"withSelection":{"minified":"39.2","gzipped":"13.8","minBytes":40129,"gzBytes":14102},"withScale":{"minified":"40.4","gzipped":"14.4","minBytes":41407,"gzBytes":14748},"withScrollbar":{"minified":"34.3","gzipped":"12.6","minBytes":35153,"gzBytes":12893},"withPage":{"minified":"30.3","gzipped":"11.5","minBytes":31043,"gzBytes":11750},"withSnapshots":{"minified":"31.9","gzipped":"12.0","minBytes":32706,"gzBytes":12275},"withTable":{"minified":"45.7","gzipped":"16.3","minBytes":46797,"gzBytes":16695},"withSortable":{"minified":"37.4","gzipped":"13.7","minBytes":38311,"gzBytes":14017},"withAutoSize":{"minified":"30.8","gzipped":"11.7","minBytes":31526,"gzBytes":11938}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vlist",
3
- "version": "1.7.7",
3
+ "version": "1.7.8",
4
4
  "description": "Lightweight, high-performance virtual list with zero dependencies",
5
5
  "author": {
6
6
  "name": "Floor IO",