vlist 2.0.5 → 2.1.0
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 +6 -5
- package/README.md +3 -3
- package/dist/core/types.d.ts +1 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.js +1 -1
- package/dist/internals.d.ts +1 -1
- package/dist/plugins/tree/index.d.ts +3 -0
- package/dist/plugins/tree/layout.d.ts +28 -0
- package/dist/plugins/tree/plugin.d.ts +18 -0
- package/dist/plugins/tree/types.d.ts +38 -0
- package/dist/size.json +1 -1
- package/dist/types.d.ts +34 -0
- package/dist/vlist-tree.css +1 -0
- package/package.json +3 -2
- /package/dist/plugins/{async → data}/index.d.ts +0 -0
- /package/dist/plugins/{async → data}/manager.d.ts +0 -0
- /package/dist/plugins/{async → data}/placeholder.d.ts +0 -0
- /package/dist/plugins/{async → data}/plugin.d.ts +0 -0
- /package/dist/plugins/{async → data}/sparse.d.ts +0 -0
package/README.github.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# vlist
|
|
2
2
|
|
|
3
|
-
The virtual list library for every framework. Ultra efficient, batteries-included, and accessible with composable plugins — in
|
|
3
|
+
The virtual list library for every framework. Ultra efficient, batteries-included, and accessible with composable plugins — in 8.0 KB.
|
|
4
4
|
|
|
5
|
-
**v2.0
|
|
5
|
+
**v2.1.0** — [Changelog](./CHANGELOG.md) · **New:** [`tree()`](https://vlist.io/docs/plugins/tree) plugin — virtualized collapsible trees with async loading, indent guides, and WAI-ARIA treeview keyboard nav.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/vlist)
|
|
8
8
|
[](https://bundlephobia.com/package/vlist)
|
|
@@ -11,9 +11,9 @@ The virtual list library for every framework. Ultra efficient, batteries-include
|
|
|
11
11
|
|
|
12
12
|
- **Accessible** — WAI-ARIA, 2D keyboard navigation, focus recovery, screen-reader DOM ordering
|
|
13
13
|
- **Zero dependencies** — framework-agnostic core with tiny adapters for Vue, Svelte, Solid, React
|
|
14
|
-
- **
|
|
14
|
+
- **8.0 KB gzipped** — composable plugins with perfect tree-shaking
|
|
15
15
|
- **Constant memory** — ~0.1 MB overhead at any scale, from 10K to 1M+ items
|
|
16
|
-
- **
|
|
16
|
+
- **Tree, grid, masonry, table, groups, data, selection, sortable, transition, scale** — all opt-in
|
|
17
17
|
- **Axis-neutral** — vertical and horizontal scrolling through a single code path, all plugins work in both orientations
|
|
18
18
|
|
|
19
19
|
**18 interactive examples, docs & benchmarks → [vlist.io](https://vlist.io)**
|
|
@@ -94,7 +94,7 @@ const list = createVList({
|
|
|
94
94
|
|
|
95
95
|
| Plugin | Size | Description |
|
|
96
96
|
|--------|------|-------------|
|
|
97
|
-
| **Base** |
|
|
97
|
+
| **Base** | 8.0 KB | Virtualization, ARIA, keyboard nav, gap, padding |
|
|
98
98
|
| `data()` | +4.6 KB | Lazy loading with velocity-aware fetching |
|
|
99
99
|
| `selection()` | +2.4 KB | Single/multiple selection with 2D keyboard nav |
|
|
100
100
|
| `scale()` | +3.9 KB | 1M+ items via scroll compression |
|
|
@@ -104,6 +104,7 @@ const list = createVList({
|
|
|
104
104
|
| `grid()` | +2.7 KB | 2D grid layout |
|
|
105
105
|
| `masonry()` | +3.6 KB | Pinterest-style masonry with lane-aware keyboard nav |
|
|
106
106
|
| `table()` | +6.1 KB | Data table with columns, resize, sort |
|
|
107
|
+
| `tree()` | +5.3 KB | Collapsible tree with async loading and indent guides |
|
|
107
108
|
| `page()` | +0.8 KB | Window-level scrolling |
|
|
108
109
|
| `sortable()` | +2.9 KB | Drag-and-drop reordering with auto-scroll |
|
|
109
110
|
| `snapshots()` | +1.3 KB | Scroll position save/restore |
|
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# vlist
|
|
2
2
|
|
|
3
|
-
The virtual list library for every framework. Ultra efficient, batteries-included, and accessible with composable plugins — in
|
|
3
|
+
The virtual list library for every framework. Ultra efficient, batteries-included, and accessible with composable plugins — in 8.0 KB.
|
|
4
4
|
|
|
5
|
-
**v2.0
|
|
5
|
+
**v2.1.0** — [Changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md) · **New:** [`tree()`](https://vlist.io/docs/plugins/tree) plugin — virtualized collapsible trees with async loading, indent guides, and WAI-ARIA treeview keyboard nav.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/vlist)
|
|
8
8
|
[](https://bundlephobia.com/package/vlist)
|
|
@@ -11,7 +11,7 @@ The virtual list library for every framework. Ultra efficient, batteries-include
|
|
|
11
11
|
|
|
12
12
|
- **Accessible** — WAI-ARIA, 2D keyboard navigation, focus recovery, screen-reader DOM ordering
|
|
13
13
|
- **Zero dependencies** — framework-agnostic core, tiny adapters for Vue, Svelte, Solid, React
|
|
14
|
-
- **
|
|
14
|
+
- **8.0 KB gzipped** — composable plugins with perfect tree-shaking
|
|
15
15
|
- **Constant memory** — ~0.1 MB overhead at any scale, from 10K to 1M+ items
|
|
16
16
|
- **Axis-neutral** — vertical and horizontal scrolling through a single code path, all plugins work in both orientations
|
|
17
17
|
|
package/dist/core/types.d.ts
CHANGED
|
@@ -99,6 +99,7 @@ export interface PluginContext<T extends VListItem = VListItem> {
|
|
|
99
99
|
setRemoveItemFn(fn: (id: string | number) => number): void;
|
|
100
100
|
setInsertItemFn(fn: (item: T, index: number) => void): void;
|
|
101
101
|
setUpdateItemFn(fn: (id: string | number, updates: Partial<T>) => boolean): void;
|
|
102
|
+
setGetIndexByIdFn(fn: (id: string | number) => number): void;
|
|
102
103
|
getRenderedElement(index: number): HTMLElement | null;
|
|
103
104
|
setNavConfig(config: {
|
|
104
105
|
total?: () => number;
|
package/dist/index.d.ts
CHANGED
|
@@ -27,18 +27,20 @@ export { autosize } from "./plugins/autosize";
|
|
|
27
27
|
export type { AutosizePluginConfig } from "./plugins/autosize";
|
|
28
28
|
export { masonry } from "./plugins/masonry";
|
|
29
29
|
export type { MasonryPluginConfig } from "./plugins/masonry";
|
|
30
|
-
export { data } from "./plugins/
|
|
31
|
-
export type { DataPluginConfig } from "./plugins/
|
|
30
|
+
export { data } from "./plugins/data";
|
|
31
|
+
export type { DataPluginConfig } from "./plugins/data";
|
|
32
32
|
export { groups } from "./plugins/groups";
|
|
33
33
|
export type { GroupsPluginConfig } from "./plugins/groups";
|
|
34
34
|
export { table } from "./plugins/table";
|
|
35
35
|
export type { TablePluginConfig } from "./plugins/table";
|
|
36
36
|
export { sortable } from "./plugins/sortable";
|
|
37
37
|
export type { SortablePluginConfig } from "./plugins/sortable";
|
|
38
|
+
export { tree } from "./plugins/tree";
|
|
39
|
+
export type { TreePluginConfig, FlatNode } from "./plugins/tree";
|
|
38
40
|
export { createStats } from "./utils/stats";
|
|
39
41
|
export type { Stats, StatsConfig, StatsState } from "./utils/stats";
|
|
40
42
|
export { rebuild } from "./utils/rebuild";
|
|
41
43
|
export type { RebuildOptions } from "./utils/rebuild";
|
|
42
|
-
export type { VListItem, VListEvents, ItemConfig, ItemTemplate, ItemState, SelectionMode, SelectionConfig, SelectionState, ScrollbarConfig, ScrollbarPadding, ScrollbarOptions, ScrollConfig, ScrollToOptions, ScrollSnapshot, VListAdapter, AdapterParams, AdapterResponse, Range, ViewportState, EventHandler, Unsubscribe, GridConfig, MasonryConfig, GroupsConfig, GroupHeaderConfig, GridSizeContext, GridHeightContext, } from "./types";
|
|
44
|
+
export type { VListItem, VListEvents, ItemConfig, ItemTemplate, ItemState, SelectionMode, SelectionConfig, SelectionState, ScrollbarConfig, ScrollbarPadding, ScrollbarOptions, ScrollConfig, ScrollToOptions, ScrollSnapshot, VListAdapter, AdapterParams, AdapterResponse, Range, ViewportState, EventHandler, Unsubscribe, GridConfig, MasonryConfig, GroupsConfig, GroupHeaderConfig, GridSizeContext, GridHeightContext, TreeState, } from "./types";
|
|
43
45
|
export type { Axis, AxisConfig, VList, VListPlugin, PluginContext, CreateVListConfig, CompiledHooks, ResolvedConfig, DOMStructure, ElementPool, } from "./core/types";
|
|
44
46
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var a2=3,z0="vlist";var o2=50;var P0=50,w0=2,v0=15,C0=6,S2=16000000,l2=150,Y0=1,i2=(j)=>j<0.5?2*j*j:1-(-2*j+2)**2/2,n2=300;var f0="x",I0=20,Z0="_isPlaceholder",f2="__placeholder_";var t2={top:0,right:0,bottom:0,left:0},h0=(j)=>{if(j==null)return t2;if(typeof j==="number")return j===0?t2:{top:j,right:j,bottom:j,left:j};if(j.length===2){let[Z,B]=j;return Z===0&&B===0?t2:{top:Z,right:B,bottom:Z,left:B}}let[$,q,Y,J]=j;return $===0&&q===0&&Y===0&&J===0?t2:{top:$,right:q,bottom:Y,left:J}},S0=(j,$)=>$?j.left+j.right:j.top+j.bottom,p0=(j,$)=>$?j.top+j.bottom:j.left+j.right;function u0(j){let $={visibleIndices:new Int32Array(j),visibleOffsets:new Float64Array(j),visibleSizes:new Float64Array(j),visibleCount:0,startIndex:0,totalSize:0,capacity:j,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,isCompressed:!1,compressionRatio:1,prevAriaTotal:-1,resizeCapacity(q,Y,J=a2){if(Y<=0||q<=0)return;let Z=Math.ceil(q/Y)+J*2;if(Z<=$.capacity)return;let B=Z+8,X=new Int32Array(B),L=new Float64Array(B),A=new Float64Array(B);X.set($.visibleIndices),L.set($.visibleOffsets),A.set($.visibleSizes),$.visibleIndices=X,$.visibleOffsets=L,$.visibleSizes=A,$.capacity=B},clear(){$.visibleCount=0,$.startIndex=0}};return $}var E1=(j,$)=>{let q=$;return{getOffset:(Y)=>Y*j,getSize:(Y)=>j,indexAtOffset:(Y)=>{if(q===0||j===0)return 0;return Math.max(0,Math.min(Math.floor(Y/j),q-1))},getTotalSize:()=>q*j,getTotal:()=>q,rebuild:(Y)=>{q=Y},isVariable:()=>!1}},R1=(j,$)=>{let q=$,Y=new Float64Array(0),J=(B)=>{q=B,Y=new Float64Array(B+1),Y[0]=0;for(let X=0;X<B;X++)Y[X+1]=Y[X]+j(X)};J($);let Z=(B)=>{if(q===0)return 0;if(B<=0)return 0;if(B>=Y[q])return q-1;let X=0,L=q-1;while(X<L){let A=X+L+1>>>1;if(Y[A]<=B)X=A;else L=A-1}return X};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=q)return Y[q];return Y[B]},getSize:(B)=>j(B),indexAtOffset:(B)=>Z(B),getTotalSize:()=>Y[q]??0,getTotal:()=>q,rebuild:(B)=>J(B),isVariable:()=>!0}},e2=(j,$)=>{if(typeof j==="number")return E1(j,$);return R1(j,$)},K0=(j,$,q,Y)=>{if(Y===0)return 0;if(!j.isVariable())return Math.ceil(q/j.getSize(0));let J=0,Z=0,B=$;while(B<Y&&Z<q)Z+=j.getSize(B),J++,B++;return Math.max(1,J)};function g0(j){let $=[],q=`${j}-item`,Y=document.createElement("div");return Y.className=q,{acquire(){if($.length>0)return $.pop();return Y.cloneNode(!1)},release(J){if(J.className=q,J.removeAttribute("style"),J.removeAttribute("id"),J.removeAttribute("role"),J.removeAttribute("aria-selected"),J.removeAttribute("aria-posinset"),J.removeAttribute("aria-setsize"),J.removeAttribute("data-index"),J.removeAttribute("data-id"),J.textContent="",$.length<100)$.push(J)},get size(){return $.length},clear(){$.length=0}}}function x2(j){let $=j.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let q=0;q<$.length;q++)$[q].setAttribute("tabindex","-1")}function x0(j){if(typeof j==="string"){let $=document.querySelector(j);if(!$)throw Error(`[vlist] Container not found: ${j}`);return $}return j}function m0(j,$,q,Y){let J=q?`${$} ${$}--horizontal`:$,Z=q?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",B=q?"position:relative;height:100%":"position:relative;width:100%",X=' role="list"';if(Y)X+=` aria-label="${Y.replace(/"/g,""")}"`;if(q)X+=' aria-orientation="horizontal"';j.insertAdjacentHTML("beforeend",`<div class="${J}"><div class="${$}-viewport" style="${Z}" tabindex="-1"><div class="${$}-content" style="${B}"${X}></div></div></div>`);let L=j.lastElementChild,A=L.firstElementChild,U=A.firstElementChild,c=document.createElement("div");return c.className=`${$}-live`,c.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",c.setAttribute("aria-live","polite"),c.setAttribute("aria-atomic","true"),c.setAttribute("role","status"),L.appendChild(c),{root:L,viewport:A,content:U,liveRegion:c}}function d0(j){let{state:$,viewport:q,isX:Y,wheelEnabled:J,onFrame:Z,onIdle:B}=j,X=j.idleTimeout||l2,L=j.scrollTarget??q,A=null,U=null;function c(){let H=Y?q.scrollLeft:q.scrollTop;if(Math.abs(H-$.scrollPosition)<0.5)return;$.prevScrollPosition=$.scrollPosition,$.scrollPosition=H,$.scrollDirection=H>$.prevScrollPosition?1:H<$.prevScrollPosition?-1:0,Z(),z()}function M(H){if($.isCompressed)return;let O;if(Y){if(Math.abs(H.deltaX)>Math.abs(H.deltaY))return;let P=q.scrollLeft,W=q.scrollWidth-q.clientWidth;if(O=Math.max(0,Math.min(P+H.deltaY*Y0,W)),Math.abs(O-P)<1)return;H.preventDefault(),q.scrollLeft=O}else{let P=q.scrollWidth>q.clientWidth;if(P&&Math.abs(H.deltaX)>Math.abs(H.deltaY))return;if(P&&H.deltaX!==0)H.preventDefault(),q.scrollLeft+=H.deltaX;let W=q.scrollTop,G=q.scrollHeight-q.clientHeight;if(O=Math.max(0,Math.min(W+H.deltaY*Y0,G)),Math.abs(O-W)<1)return;H.preventDefault(),q.scrollTop=O}$.prevScrollPosition=$.scrollPosition,$.scrollPosition=O,$.scrollDirection=O>$.prevScrollPosition?1:-1,Z(),z()}function z(){if(A!==null)clearTimeout(A);A=setTimeout(()=>{A=null,$.scrollDirection=0,B()},X)}function D(){if(U!==null)cancelAnimationFrame(U),U=null}function y(H,O,P,W=i2,G){D();let E=$.scrollPosition,T=typeof H==="function"?H:()=>H,R=T();if(Math.abs(R-E)<1){if(P)P(R);else if(Y)q.scrollLeft=R;else q.scrollTop=R;G?.();return}let w=performance.now();function g(C){R=T();let a=C-w,d=Math.min(a/O,1),o=E+(R-E)*W(d);if(P)P(o);else if(Y)q.scrollLeft=o;else q.scrollTop=o;if(!P)$.scrollPosition=o;if(Z(),d<1)U=requestAnimationFrame(g);else U=null,G?.()}U=requestAnimationFrame(g)}return{attach(){if(L.addEventListener("scroll",c,{passive:!0}),J)L.addEventListener("wheel",M,{passive:!1})},detach(){if(L.removeEventListener("scroll",c),J)L.removeEventListener("wheel",M);if(D(),A!==null)clearTimeout(A),A=null},cancelScroll:D,smoothScrollTo:y}}var r2=[],T1={calculate:r2,commit:r2,afterScroll:r2,idle:r2,resize:r2};function c0(j){if(j.length===0)return T1;let $=[],q=[],Y=[],J=[],Z=[];for(let B=0;B<j.length;B++){let X=j[B].hooks;if(X===void 0)continue;if(X.onCalculate!==void 0)$.push(X.onCalculate);if(X.onCommit!==void 0)q.push(X.onCommit);if(X.onAfterScroll!==void 0)Y.push(X.onAfterScroll);if(X.onIdle!==void 0)J.push(X.onIdle);if(X.onResize!==void 0)Z.push(X.onResize)}return{calculate:$,commit:q,afterScroll:Y,idle:J,resize:Z}}function l0(j,$){for(let q=0;q<j.length;q++)j[q]($)}function r0(j,$){for(let q=0;q<j.length;q++)j[q]($)}function B0(j,$,q){for(let Y=0;Y<j.length;Y++)j[Y]($,q)}function s0(j){for(let $=0;$<j.length;$++)j[$]()}function a0(j,$,q){for(let Y=0;Y<j.length;Y++)j[Y]($,q)}function o0(j,$,q,Y,J,Z,B,X){let L=Y!==0||J!==0;return{prefix:j,selectedClass:`${j}-item--selected`,focusedClass:`${j}-item--focused`,placeholderClass:`${j}-item--placeholder`,replacedClass:`${j}-item--replaced`,translateProp:$?"translateX(":"translateY(",sizeProp:$?"width":"height",itemRole:"listitem",interactive:!1,startPadding:q,gap:B,hasCrossPad:L,crossStartProp:L?$?"top":"left":"",crossEndProp:L?$?"bottom":"right":"",crossStartVal:L?Y+"px":"",crossEndVal:L?J+"px":"",oddClass:Z,emitter:X??null}}function b1(j,$,q,Y,J){if(j.containerSize<=0||j.totalItems===0)return j.clear(),!0;let{scrollPosition:Z,containerSize:B,totalItems:X}=j,L=J??0;j.totalSize=$.getTotalSize();let A=$.indexAtOffset(L>0?Math.max(0,Z-L):Z),U=$.indexAtOffset(Z+B);if(U<X-1)U++;A=Math.max(0,A),U=Math.min(X-1,Math.max(0,U));let c=Math.max(0,A-q),M=Math.min(X-1,U+q),z=Math.ceil(B/1)+q*2+10,D=M-c+1,y=Math.min(D,j.capacity,z);if(c===j.prevRangeStart&&M===j.prevRangeEnd&&!j.renderPending)return!1;j.visibleCount=y,j.startIndex=c;for(let H=0;H<y;H++){let O=c+H;j.visibleIndices[H]=O,j.visibleOffsets[H]=$.getOffset(O),j.visibleSizes[H]=$.getSize(O)}return l0(Y.calculate,j),j.prevRangeStart=c,j.prevRangeEnd=M,j.renderPending=!1,!0}var v2={selected:!1,focused:!1};function y1(j,$,q){for(let Y=0;Y<$;Y++)if(j[Y]===q)return!0;return!1}function k1(j,$){if($<=1)return!0;let q=j[0];for(let Y=1;Y<$;Y++){let J=j[Y];if(J!==q+1)return!1;q=J}return!0}function z1(j,$,q,Y,J,Z,B,X,L,A){let U=L?null:J(),c=j.visibleCount,M=j.visibleIndices,z=B.interactive?String(j.totalItems):"",D=B.interactive&&j.totalItems!==j.prevAriaTotal,y=null;for(let H=0;H<c;H++){let O=M[H],P=j.visibleOffsets[H],W=j.visibleSizes[H],G=L?L(O):U[O];if(A)A(O,v2);else v2.selected=!1,v2.focused=!1;let E=Z.get(O),T=E;if(E===void 0){let R=$.acquire();if(G!==void 0){let C;try{C=Y(G,O,v2)}catch(a){if(B.emitter)B.emitter.emit("error",{error:a instanceof Error?a:Error(String(a)),context:`template:render:${O}`});$.release(R);continue}if(typeof C==="string")R.innerHTML=C;else R.textContent="",R.appendChild(C);x2(R)}if(R.setAttribute("role",B.itemRole),R.setAttribute("data-index",String(O)),B.interactive)R.id=B.prefix+"-item-"+O,R.setAttribute("aria-posinset",String(O+1)),R.setAttribute("aria-setsize",z);if(G!==void 0){let C=String(G.id);if(R.setAttribute("data-id",C),C.startsWith(f2))R.classList.add(B.placeholderClass)}if(B.hasCrossPad)R.style.setProperty(B.crossStartProp,B.crossStartVal),R.style.setProperty(B.crossEndProp,B.crossEndVal);if(A){if(R.classList.toggle(B.selectedClass,v2.selected),R.classList.toggle(B.focusedClass,v2.focused),v2.selected)R.setAttribute("aria-selected","true");else R.removeAttribute("aria-selected");R._lastSelected=v2.selected,R._lastFocused=v2.focused}if(B.oddClass)R.classList.toggle(B.oddClass,(O&1)===1);let w=P+B.startPadding;R.style.transform=B.translateProp+w+"px)",R._lastOffset=w;let g=W-B.gap;if(R.style[B.sizeProp]=g+"px",R._lastSize=g,R._lastItem=G,Z.set(O,R),y===null)y=document.createDocumentFragment();y.appendChild(R)}else{if(D)E.setAttribute("aria-setsize",z);if(G!==void 0&&T._lastItem!==G){let g=E.getAttribute("data-id"),C=String(G.id),a;try{a=Y(G,O,v2)}catch(d){if(B.emitter)B.emitter.emit("error",{error:d instanceof Error?d:Error(String(d)),context:`template:render:${O}`});continue}if(typeof a==="string")E.innerHTML=a;else E.textContent="",E.appendChild(a);if(x2(E),E.setAttribute("data-id",C),T._lastItem=G,g!==C){let d=g!==null&&g.startsWith(f2),o=C.startsWith(f2);if(d!==o)E.classList.toggle(B.placeholderClass,o);if(d&&!o)E.classList.add(B.replacedClass),setTimeout(()=>{E.classList.remove(B.replacedClass)},300)}}if(A){if(T._lastSelected!==v2.selected){if(E.classList.toggle(B.selectedClass,v2.selected),v2.selected)E.setAttribute("aria-selected","true");else E.removeAttribute("aria-selected");T._lastSelected=v2.selected}if(T._lastFocused!==v2.focused)E.classList.toggle(B.focusedClass,v2.focused),T._lastFocused=v2.focused}let R=P+B.startPadding;if(T._lastOffset!==R)E.style.transform=B.translateProp+R+"px)",T._lastOffset=R;let w=W-B.gap;if(T._lastSize!==w)E.style[B.sizeProp]=w+"px",T._lastSize=w}}if(y!==null)q.appendChild(y);if(c>0&&k1(M,c)){let H=M[0],O=M[c-1];for(let[P,W]of Z)if(P<H||P>O)W.remove(),$.release(W),Z.delete(P)}else for(let[H,O]of Z)if(!y1(M,c,H))O.remove(),$.release(O),Z.delete(H);if(B.interactive)j.prevAriaTotal=j.totalItems;r0(X.commit,j)}function U0(j,$,q,Y,J,Z,B,X,L,A,U,c){if(b1(j,$,q,A,L.startPadding))z1(j,Y,J,Z,B,X,L,A,U,c)}var N0=()=>{let j={},$=(Z,B)=>{if(!j[Z])j[Z]=new Set;return j[Z].add(B),()=>q(Z,B)},q=(Z,B)=>{j[Z]?.delete(B)};return{on:$,off:q,emit:(Z,B)=>{j[Z]?.forEach((X)=>{try{X(B)}catch(L){console.error(`[vlist] Error in event handler for "${String(Z)}":`,L)}})},clear:(Z)=>{if(Z)delete j[Z];else for(let B in j)delete j[B]}}};var i0=2,n0=(j=0)=>({velocity:0,sampleCount:0}),t0=(j,$)=>{let q=performance.now(),Y=j._lt??q,J=j._lp??$,Z=q-Y;if(j._lp=$,j._lt=q,Z===0)return j.sampleCount=Math.min(j.sampleCount+1,5),j;if(Z>100)return j.velocity=0,j.sampleCount=1,j;return j.velocity=Math.abs($-J)/Z,j.sampleCount=Math.min(j.sampleCount+1,5),j};function P1(j){let{item:$}=j;if($.height!==void 0&&typeof $.height==="number"){if(!Number.isFinite($.height)||$.height<=0)throw Error(`vlist: item.height must be a positive number, got ${$.height}`)}if($.width!==void 0&&typeof $.width==="number"){if(!Number.isFinite($.width)||$.width<=0)throw Error(`vlist: item.width must be a positive number, got ${$.width}`)}if($.estimatedHeight!==void 0){if(!Number.isFinite($.estimatedHeight)||$.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${$.estimatedHeight}`)}if($.estimatedWidth!==void 0){if(!Number.isFinite($.estimatedWidth)||$.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${$.estimatedWidth}`)}if($.gap!==void 0){if(typeof $.gap!=="number"||!Number.isFinite($.gap)||$.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${$.gap}`)}if(j.overscan!==void 0){if(typeof j.overscan!=="number"||!Number.isFinite(j.overscan)||j.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${j.overscan}`)}}function w1(j,$){let q=j==="horizontal"?"x":"y";if($.some((J)=>J.name==="grid"))return{primary:q,cross:q==="x"?"y":"x"};return{primary:q}}function v1(j,$){let q=w1(j.orientation,$),Y=q.primary==="x",J=h0(j.padding);return{axis:q,hasCrossAxis:q.cross!==void 0,overscan:j.overscan??a2,reverse:j.reverse??!1,classPrefix:j.classPrefix??z0,mainAxisPadding:S0(J,Y),crossAxisPadding:p0(J,Y),startPadding:Y?J.left:J.top,endPadding:Y?J.right:J.bottom,crossPadStart:Y?J.top:J.left,crossPadEnd:Y?J.bottom:J.right,striped:j.item.striped||!1,gap:j.item.gap??0}}function C1(j,$){if($)return j.item.width??j.item.estimatedWidth??100;return j.item.height??j.item.estimatedHeight??40}function f1(j){let $=[...j];return $.sort((q,Y)=>(q.priority??50)-(Y.priority??50)),$}function I1(j){let $=new Set;for(let q of j){if($.has(q.name))throw Error(`[vlist] Duplicate plugin: ${q.name}`);$.add(q.name)}for(let q of j)if(q.conflicts){for(let Y of q.conflicts)if($.has(Y))throw Error(`[vlist] Plugin "${q.name}" conflicts with "${Y}"`)}}function e0(j,$=[]){P1(j);let q=v1(j,$),Y=q.axis.primary==="x",J=C1(j,Y),Z=q.gap,B=Z>0?typeof J==="function"?(K2)=>J(K2)+Z:J+Z:J,X=typeof J==="number"?J:20,L=j.items?.length??0,A=q.striped?`${q.classPrefix}-item--odd`:"",U=N0(),c=o0(q.classPrefix,Y,q.startPadding,q.crossPadStart,q.crossPadEnd,A,Z,U),M=$.length>0?f1($):$;if($.length>0)I1(M);let z=x0(j.container),D=m0(z,q.classPrefix,Y,j.ariaLabel);if(j.scroll?.scrollbar==="none")D.viewport.classList.add(`${q.classPrefix}-viewport--no-scrollbar`);if(j.scroll?.gutter==="stable")D.viewport.classList.add(`${q.classPrefix}-viewport--gutter-stable`);let H=e2(B,L);if(Z>0){let K2=H.getTotalSize;H.getTotalSize=()=>{let r=K2();return r>0?r-Z:0}}let O=g0(q.classPrefix),P=Math.ceil(4096/X)+q.overscan*2+8,W=u0(P);W.totalItems=L;let G=j.items??[],E=()=>G,T=new Map,R=n0(),w={velocity:0,reliable:!1},g={range:{start:0,end:-1}},C={scrollPosition:0,direction:"down"},a={scrollPosition:0},d=-1,o=-1,i=-1,k=null,S=c0(M),u=new Map,K=[],V=[],N=[],v=null,s=null,l=null,I=null,Q=null,_=null,h=null,x=null,f=null,F=null,b=!1,m=!1,e=null,n=0,Q2=0,Z2=null,G2=null,M2=null,N2=null,J2=null;if(W.containerSize=Y?D.viewport.clientWidth:D.viewport.clientHeight,W.crossSize=Y?D.viewport.clientHeight:D.viewport.clientWidth,$.length>0){let K2={dom:D,sizeCache:H,pool:O,config:q,emitter:U,template:j.item.template,registerMethod(r,p){u.set(r,p)},getMethod(r){return u.get(r)},registerClickHandler(r){K.push(r)},registerKeydownHandler(r){V.push(r)},registerDestroyHandler(r){N.push(r)},enableListboxRole(){let r=D.content.getAttribute("role");if(!r||r==="list")D.content.setAttribute("role","listbox"),D.content.setAttribute("tabindex","0");c.itemRole="option",c.interactive=!0},setSizeConfig(r){let p=e2(r,W.totalItems);Object.assign(H,p)},setScrollFns(r,p){s=r,l=p},setVirtualTotalFn(r){v=r},getItems:E,getItem(r){return _?_(r):G[r]},getState(){return W},rebuildSizeCache(){H.rebuild(W.totalItems)},updateContentSize(r){W.totalSize=r,D.content.style[Y?"width":"height"]=r+q.mainAxisPadding+"px"},setRenderFn(r,p){I=r,Q=p},renderIfNeeded(){L2()},forceRender(){F2()},setGetItemFn(r){_=r},setItemStateFn(r){h=r},getItemStateFn(){return h},get rawSizeSpec(){return J},scrollTo(r){if(l)l(r);else if(Y)D.viewport.scrollLeft=r;else D.viewport.scrollTop=r},smoothScrollTo(r,p,j2,q2){if(M2)M2(r,p,l??void 0,j2,q2);else K2.scrollTo(typeof r==="function"?r():r)},disableDefaultScroll(){b=!0},disableDefaultResize(){m=!0},setScrollTarget(r){e=r},setScrollToPosFn(r){N2=r},setScrollToIndexFn(r){J2=r},onScrollFrame:X2,onScrollIdle:b2,removeItemById(r){if(x)return x(r);let p=G.findIndex((j2)=>j2.id===r);if(p===-1)return-1;return G.splice(p,1),W.totalItems=G.length,H.rebuild(W.totalItems),A2(),p},insertItemAt(r,p){if(f){f(r,p);return}G.splice(p,0,r),W.totalItems=G.length,H.rebuild(W.totalItems),A2()},setRemoveItemFn(r){x=r},setInsertItemFn(r){f=r},setUpdateItemFn(r){F=r},getRenderedElement(r){let p=u.get("_getRenderedElement");if(p)return p(r);return T.get(r)??null},setNavConfig(r){if(r.ud!==void 0)n=r.ud;if(r.lr!==void 0)Q2=r.lr;if(r.scrollIndex)Z2=r.scrollIndex;if(r.navigate)G2=r.navigate},getNavConfig:(()=>{let r={ud:0,lr:0,scrollIndex:null,navigate:null};return()=>{return r.ud=n,r.lr=Q2,r.scrollIndex=Z2,r.navigate=G2,r}})()};for(let r of M)if(r.setup)try{r.setup(K2)}catch(p){U.emit("error",{error:p instanceof Error?p:Error(String(p)),context:`plugin:setup:${r.name}`})}}let t=q.classPrefix+"--scrolling",$2=!1,B2=j.scroll?.idleTimeout??l2;function U2(){if(C.scrollPosition=W.scrollPosition,Y)C.direction=W.scrollDirection>0?"right":"left";else C.direction=W.scrollDirection>0?"down":"up";if(U.emit("scroll",C),t0(R,W.scrollPosition),w.velocity=R.velocity,w.reliable=R.sampleCount>=i0,U.emit("velocity:change",w),W.startIndex!==d||W.prevRangeEnd!==o)d=W.startIndex,o=W.prevRangeEnd,g.range.start=W.startIndex,g.range.end=W.prevRangeEnd,U.emit("range:change",g)}let Y2=!1;function A2(){if(I)return;let K2=H.getTotalSize();if(D.content.style[Y?"width":"height"]=K2+q.mainAxisPadding+"px",!Y2&&K2>S2)Y2=!0,U.emit("error",{error:Error(`Content size (${K2}px) exceeds browser limit (${S2}px). Use the scale() plugin for large datasets.`),context:"content:size:overflow"})}function L2(){if(I)I();else U0(W,H,q.overscan,O,D.content,j.item.template,E,T,c,S,_,h)}function X2(){if(!$2)$2=!0,D.root.classList.add(t);if(L2(),B0(S.afterScroll,W.scrollPosition,W.scrollDirection),W.scrollPosition!==i)i=W.scrollPosition,U2()}function b2(){if($2)$2=!1,D.root.classList.remove(t);W.scrollDirection=0,s0(S.idle),w.velocity=0,w.reliable=!1,U.emit("velocity:change",w),a.scrollPosition=W.scrollPosition,U.emit("scroll:idle",a)}function F2(){if(W.renderPending=!0,Q)Q();else U0(W,H,q.overscan,O,D.content,j.item.template,E,T,c,S,_,h);if(B0(S.afterScroll,W.scrollPosition,W.scrollDirection),W.scrollPosition!==i){if(i=W.scrollPosition,U2(),k!==null)clearTimeout(k);k=setTimeout(b2,B2)}}let y2=d0({state:W,viewport:D.viewport,isX:Y,wheelEnabled:b?!1:j.scroll?.wheel!==!1,idleTimeout:j.scroll?.idleTimeout??l2,...e?{scrollTarget:e}:{},onFrame:X2,onIdle:b2});M2=y2.smoothScrollTo;function D2(K2){let p=K2.target.closest("[data-index]");if(!p)return null;let j2=parseInt(p.getAttribute("data-index"),10);if(Number.isNaN(j2))return null;let q2=G[j2];if(q2===void 0)return null;return{item:q2,index:j2}}function k2(K2){for(let p=0;p<K.length;p++)K[p](K2);let r=D2(K2);if(r)U.emit("item:click",{item:r.item,index:r.index,event:K2})}function H2(K2){let r=D2(K2);if(r)U.emit("item:dblclick",{item:r.item,index:r.index,event:K2})}function P2(K2){let r=D2(K2);if(r)U.emit("item:contextmenu",{item:r.item,index:r.index,event:K2})}function W2(K2){for(let r=0;r<V.length;r++)V[r](K2)}if(D.content.addEventListener("click",k2),D.content.addEventListener("dblclick",H2),D.content.addEventListener("contextmenu",P2),V.length>0)D.content.addEventListener("keydown",W2);let O2=null;if(!m)setTimeout(()=>{if(W.destroyed)return;O2=new ResizeObserver((r)=>{for(let p of r){let{width:j2,height:q2}=p.contentRect,V2=Y?j2:q2,_2=Y?q2:j2;if(Math.abs(V2-W.containerSize)<1&&Math.abs(_2-W.crossSize)<1)continue;W.containerSize=V2,W.crossSize=_2,W.resizeCapacity(V2,X,q.overscan),F2(),a0(S.resize,j2,q2),U.emit("resize",{width:j2,height:q2})}}),O2.observe(D.viewport)},0);W.resizeCapacity(W.containerSize,X,q.overscan),A2(),W.initialized=!0;let R2=null;if(j.defer)R2=requestAnimationFrame(()=>{if(R2=null,!W.destroyed)L2()});else L2();if(!b)y2.attach();let z2={get element(){return D.root},get items(){return G},get total(){return v?v():G.length},setItems(K2){G=[...K2],W.totalItems=G.length,H.rebuild(W.totalItems),A2(),F2()},appendItems(K2){G.push(...K2),W.totalItems=G.length,H.rebuild(W.totalItems),A2(),F2()},prependItems(K2){G.unshift(...K2),W.totalItems=G.length,H.rebuild(W.totalItems),A2(),F2()},updateItem(K2,r){if(F){if(!F(K2,r))return}else{let p=G.findIndex((j2)=>j2.id===K2);if(p===-1)return;G[p]={...G[p],...r}}F2()},insertItem(K2,r){if(f)f(K2,r??W.totalItems);else{if(r===void 0)G.push(K2);else G.splice(r,0,K2);W.totalItems=G.length,H.rebuild(W.totalItems),A2()}F2()},removeItem(K2){if(x){if(x(K2)<0)return}else{let r=G.findIndex((p)=>p.id===K2);if(r===-1)return;G.splice(r,1),W.totalItems=G.length,H.rebuild(W.totalItems),A2()}F2()},removeItems(K2){if(x){let q2=0;for(let V2 of K2)if(x(V2)>=0)q2++;if(q2>0)F2();return q2}let r=new Set(K2),p=G.length;G=G.filter((q2)=>!r.has(q2.id));let j2=p-G.length;if(j2>0)W.totalItems=G.length,H.rebuild(W.totalItems),A2(),W.renderPending=!0,L2();return j2},getItemAt(K2){return G[K2]},getIndexById(K2){return G.findIndex((r)=>r.id===K2)},scrollToIndex(K2,r="start"){let p=v?v():G.length;if(p===0)return;let j2=Math.max(0,Math.min(K2,p-1)),q2=typeof r==="string"?r:r.align??"start",V2=typeof r==="object"?r.behavior:void 0,_2=typeof r==="object"?r.duration:void 0,T2=typeof r==="object"?r.easing:void 0;if(J2&&J2(j2,q2,V2,_2,T2)!==!1)return;let w2=H.getOffset(j2),E2=H.getSize(j2),C2=W.containerSize,h2=H.getTotalSize(),k0=q.mainAxisPadding,F1=Math.max(0,h2+k0-C2),I2;if(N2)I2=N2(j2,H,C2,p,q2);else{let O1=q.startPadding;switch(q2){case"center":I2=O1+w2-(C2-E2)/2;break;case"end":I2=w2+E2+k0-C2;break;default:I2=w2}I2=Math.max(0,Math.min(I2,F1))}if(V2==="smooth")y2.smoothScrollTo(I2,_2??n2,l??void 0,T2);else if(l)l(I2);else if(Y)D.viewport.scrollLeft=I2;else D.viewport.scrollTop=I2},getScrollPosition(){return s?s():W.scrollPosition},on:U.on.bind(U),off:U.off.bind(U),destroy(){if(W.destroyed)return;if(W.destroyed=!0,$2)$2=!1,D.root.classList.remove(t);if(R2!==null)cancelAnimationFrame(R2),R2=null;if(k!==null)clearTimeout(k),k=null;y2.detach(),O2?.disconnect(),D.content.removeEventListener("click",k2),D.content.removeEventListener("dblclick",H2),D.content.removeEventListener("contextmenu",P2),D.content.removeEventListener("keydown",W2);let K2=[];for(let r of N)try{r()}catch(p){K2.push(p instanceof Error?p:Error(String(p)))}for(let r of M)if(r.destroy)try{r.destroy()}catch(p){K2.push(p instanceof Error?p:Error(String(p)))}for(let[,r]of T)r.remove();if(T.clear(),O.clear(),D.root.remove(),U.emit("destroy",void 0),U.clear(),K2.length>0)for(let r of K2)console.error("vlist: error during destroy:",r)}};for(let[K2,r]of u)z2[K2]=r;return z2}var $1=(j,$,q)=>{let Y=$.getTotalSize(),J=q===!0||Y>S2,Z=Y>S2?S2:Y,B=Y>0?Z/Y:1;return{isCompressed:J,actualSize:Y,virtualSize:Z,ratio:B}},d2=(j,$,q,Y,J,Z)=>{if(Y===0||$===0)return Z.start=0,Z.end=-1,Z;if(!J.isCompressed||J.ratio===1){let z=q.indexAtOffset(j),D=q.indexAtOffset(j+$);if(D<Y-1)D++;return Z.start=Math.max(0,z),Z.end=Math.min(Y-1,Math.max(0,D)),Z}let{virtualSize:B}=J,X=j/B,L=q.getTotalSize(),A=X*L,U=q.indexAtOffset(A),c=K0(q,Math.max(0,U),$,Y),M=U+c;return Z.start=Math.max(0,U),Z.end=Math.min(Y-1,Math.max(0,M)),Z};var m2=(j,$,q,Y,J,Z,B)=>{if(!Z.isCompressed||Y===0)return q.getOffset(j);if(Z.ratio===1)return q.getOffset(j)-$;let{virtualSize:X}=Z,L=$/X,A=q.getTotalSize(),U=L*A;return q.getOffset(j)-U},$0=(j,$,q,Y,J,Z="start")=>{if(Y===0)return 0;let B;if(J.isCompressed&&J.ratio!==1){B=j/Y*J.virtualSize;let U=$.getSize(j);switch(Z){case"center":B-=(q-U)/2*J.ratio;break;case"end":B-=(q-U)*J.ratio;break}return Math.max(0,B)}B=$.getOffset(j);let X=$.getSize(j);switch(Z){case"center":B-=(q-X)/2;break;case"end":B-=q-X;break}let L=J.virtualSize-q;return Math.max(0,Math.min(B,L))};var h1=(j)=>{if(typeof j!=="object"){let $=j??2;return{top:$,right:$,bottom:$,left:$}}return{top:j.top??2,right:j.right??2,bottom:j.bottom??2,left:j.left??2}},J0=(j,$,q={},Y="vlist",J=!1,Z)=>{let{autoHide:B=!0,autoHideDelay:X=1000,minThumbSize:L=15,showOnHover:A=!0,showOnViewportEnter:U=!0,clickBehavior:c="scroll"}=q,M=c==="page"?"scroll":c,z=Z??j,D=h1(q.padding),y=J?D.left:D.top,H=J?D.right:D.bottom,O=J?D.bottom:D.right,P=q.hoverZoneWidth??O+16,W=0,G=0,E=0,T=0,R=!1,w=!1,g=0,C=0,a=0,d=null,o=!1,i=null,k=0,S=0,u=null,K=null,V=null,N=J?"width":"height",v=J?"translateX":"translateY",s=J?(W2)=>W2.clientX:(W2)=>W2.clientY,l=J?"left":"top",I=document.createElement("div"),Q=document.createElement("div"),_=document.createElement("div"),h=J?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",x=()=>{if(z===j)return;let W2=j.offsetTop;I.style[J?"left":"top"]=W2?`calc(var(${h}) + ${W2}px)`:`var(${h})`,_.style[J?"left":"top"]=`${W2}px`},f=()=>{if(I.className=`${Y}-scrollbar`,Q.className=`${Y}-scrollbar__thumb`,J)I.classList.add(`${Y}-scrollbar--horizontal`);if(q.padding!==void 0)z.style.setProperty("--vlist-custom-scrollbar-padding-top",`${D.top}px`),z.style.setProperty("--vlist-custom-scrollbar-padding-right",`${D.right}px`),z.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${D.bottom}px`),z.style.setProperty("--vlist-custom-scrollbar-padding-left",`${D.left}px`);if(q.minThumbSize!==void 0)I.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${L}px`);if(I.appendChild(Q),z.appendChild(I),_.className=`${Y}-scrollbar__hover`,J)_.classList.add(`${Y}-scrollbar__hover--horizontal`),_.style.height=`${P}px`;else _.style.width=`${P}px`;if(z.appendChild(_),z!==j)x()},F=()=>{if(d)clearTimeout(d),d=null},b=()=>{if(!B)return;F(),d=setTimeout(e,X)},m=()=>{if(W<=G)return;if(F(),!o)I.classList.add(`${Y}-scrollbar--visible`),o=!0;if(B&&!R&&!w)b()},e=()=>{if(R||w)return;I.classList.remove(`${Y}-scrollbar--visible`),o=!1},n=(W2,O2)=>{if(W=W2,G=O2,x(),W<=G){I.style.display="none",e();return}I.style.display="";let R2=Math.max(0,G-y-H),z2=G/W;if(E=Math.max(L,z2*R2),Q.style[N]=`${E}px`,T=R2-E,Q2(a),!B)m()},Q2=(W2)=>{if(a=W2,W<=G||T<=0)return;let O2=W-G,R2=Math.min(1,Math.max(0,W2/O2));Q.style.transform=`${v}(${R2*T}px)`},Z2=(W2)=>{if(W2.target===Q||M!=="jump"||T<=0)return;let O2=W-G,R2=I.getBoundingClientRect(),z2=s(W2)-R2[l],K2=Math.max(0,Math.min(z2-E/2,T));$(K2/T*O2),m()},G2=()=>{if(u!==null)clearTimeout(u),u=null;if(K!==null)cancelAnimationFrame(K),K=null;V=null},M2=(W2)=>{let O2=T>0?S/W2*T:0;if(k<O2)return-1;if(k>=O2+E)return 1;return 0},N2=()=>{let W2=W-G,O2=M2(W2);if(O2===0){G2();return}if(O2===-1){if(S<=0){G2();return}let R2=Math.max(0,S-G);S=R2,$(R2)}else{if(S>=W2){G2();return}let R2=Math.min(W2,S+G);S=R2,$(R2)}m()},J2=(W2)=>{if(V===null){V=W2,K=requestAnimationFrame(J2);return}let O2=W-G,R2=W2-V;V=W2;let z2=M2(O2);if(z2===0){G2();return}let K2=12*G/1000,r=Math.min(K2*R2,G);if(z2===-1){if(S<=0){G2();return}let p=Math.max(0,S-r);S=p,$(p)}else{if(S>=O2){G2();return}let p=Math.min(O2,S+r);S=p,$(p)}F(),K=requestAnimationFrame(J2)},t=()=>{G2(),b(),document.removeEventListener("mouseup",t)},$2=(W2)=>{if(W2.target===Q||M!=="scroll")return;W2.preventDefault();let O2=I.getBoundingClientRect();k=s(W2)-O2[l],S=a,N2(),u=setTimeout(()=>{K=requestAnimationFrame(J2)},350),document.addEventListener("mouseup",t)},B2=(W2)=>{W2.preventDefault(),W2.stopPropagation(),R=!0,g=s(W2),C=a,F(),I.classList.add(`${Y}-scrollbar--dragging`),document.addEventListener("mousemove",U2),document.addEventListener("mouseup",Y2)},U2=(W2)=>{if(!R)return;let O2=s(W2)-g,R2=T>0?O2/T:0,z2=W-G,K2=R2*z2,r=Math.max(0,Math.min(C+K2,z2));Q.style.transform=`${v}(${r/z2*T}px)`,$(r)},Y2=()=>{if(R=!1,I.classList.remove(`${Y}-scrollbar--dragging`),B&&!w)b();document.removeEventListener("mousemove",U2),document.removeEventListener("mouseup",Y2)},A2=J?(W2)=>W2.touches[0].clientX:(W2)=>W2.touches[0].clientY,L2=(W2)=>{W2.stopPropagation(),R=!0,g=A2(W2),C=a,F(),I.classList.add(`${Y}-scrollbar--dragging`)},X2=(W2)=>{if(!R)return;W2.preventDefault();let O2=A2(W2)-g,R2=T>0?O2/T:0,z2=W-G,K2=R2*z2,r=Math.max(0,Math.min(C+K2,z2));Q.style.transform=`${v}(${r/z2*T}px)`,$(r)},b2=()=>{if(R=!1,I.classList.remove(`${Y}-scrollbar--dragging`),B)b()},F2=(W2)=>{if(W2.target===Q)return;if(T<=0)return;let O2=W2.touches[0],R2=I.getBoundingClientRect(),z2=(J?O2.clientX:O2.clientY)-R2[l];if(M==="jump"){let K2=W-G,r=Math.max(0,Math.min(z2-E/2,T));$(r/T*K2)}else k=z2,S=a,N2();m()},y2=()=>{if(U)m()},D2=()=>{if(!R){if(w=!1,B)b()}},k2=()=>{w=!0,F(),m()},H2=()=>{if(w=!1,!R&&B)b()},P2=()=>{if(F(),G2(),i!==null)cancelAnimationFrame(i),i=null;I.removeEventListener("click",Z2),I.removeEventListener("mousedown",$2),I.removeEventListener("mouseenter",k2),document.removeEventListener("mouseup",t),I.removeEventListener("mouseleave",H2),I.removeEventListener("touchstart",F2),Q.removeEventListener("mousedown",B2),Q.removeEventListener("touchstart",L2),Q.removeEventListener("touchmove",X2),Q.removeEventListener("touchend",b2),j.removeEventListener("mouseenter",y2),j.removeEventListener("mouseleave",D2),document.removeEventListener("mousemove",U2),document.removeEventListener("mouseup",Y2),_.removeEventListener("click",Z2),_.removeEventListener("mousedown",$2),_.removeEventListener("mouseenter",k2),_.removeEventListener("mouseleave",H2),_.remove(),z.style.removeProperty("--vlist-custom-scrollbar-padding-top"),z.style.removeProperty("--vlist-custom-scrollbar-padding-right"),z.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),z.style.removeProperty("--vlist-custom-scrollbar-padding-left"),I.remove()};if(f(),I.addEventListener("click",Z2),I.addEventListener("mousedown",$2),I.addEventListener("mouseenter",k2),I.addEventListener("mouseleave",H2),I.addEventListener("touchstart",F2,{passive:!0}),Q.addEventListener("mousedown",B2),Q.addEventListener("touchstart",L2,{passive:!0}),Q.addEventListener("touchmove",X2,{passive:!1}),Q.addEventListener("touchend",b2,{passive:!0}),j.addEventListener("mouseenter",y2),j.addEventListener("mouseleave",D2),_.addEventListener("click",Z2),_.addEventListener("mousedown",$2),A)_.addEventListener("mouseenter",k2),_.addEventListener("mouseleave",H2);return{show:m,hide:e,updateBounds:n,updatePosition:Q2,isVisible:()=>o,destroy:P2}};var S1=0.65,J1=0.5,Q1=1.7,p1=0.95,u1=0.1,c2=5,g1=100;function W0(j){let $=j?.force??!1,q,Y,J,Z,B,X={isCompressed:!1,actualSize:0,virtualSize:0,ratio:1},L=!1,A=0,U=null,c=!1,M=0,z=0,D=null,y=null,H=0,O=0,P=null,W=new Float64Array(c2),G=new Float64Array(c2),E=0,T=0,R={start:0,end:-1},w=-1,g=null;function C(){return Math.max(0,X.virtualSize+A-q.containerSize)}function a(){if(X.virtualSize<=0)return 0;return Math.max(0,q.containerSize*(1-X.ratio))}function d(Q){let _=q.totalItems;if(X=$1(_,Y,$),X.isCompressed&&!L)s(Q);else if(!X.isCompressed&&L)l(Q);if(X.isCompressed){if(A=a(),q.isCompressed=!0,q.compressionRatio=X.ratio,Q.updateContentSize(X.virtualSize+A),U)U.updateBounds(X.virtualSize+A,q.containerSize)}}let o=null,i=null,k=null,S=null,u=null;function K(Q){M=Q,z=Q,q.prevScrollPosition=q.scrollPosition,q.scrollPosition=Q,q.scrollDirection=Q>q.prevScrollPosition?1:-1,g.forceRender()}function V(){if(D!==null)cancelAnimationFrame(D),D=null;if(y!==null)cancelAnimationFrame(y),y=null}function N(Q){V(),K(Math.max(0,Math.min(Q,C())))}function v(Q,_,h=i2){V();let x=Math.max(0,Math.min(Q,C())),f=M;if(Math.abs(x-f)<J1){K(x);return}let F=performance.now(),b=(m)=>{let e=Math.min((m-F)/_,1);if(K(f+(x-f)*h(e)),e<1)y=requestAnimationFrame(b);else y=null};y=requestAnimationFrame(b)}function s(Q){L=!0,q.isCompressed=!0;let _=Z?"scrollLeft":"scrollTop",h=Z?"overflowX":"overflow",x=J[_];if(J.style[h]="hidden",J[_]=0,x>0)M=x,z=x,q.scrollPosition=x;A=a();let f=()=>{let n=z-M,Q2=C();if(Math.abs(n)<J1)M=Math.max(0,Math.min(z,Q2)),z=M,D=null;else M+=n*S1,M=Math.max(0,Math.min(M,Q2)),D=requestAnimationFrame(f);q.prevScrollPosition=q.scrollPosition,q.scrollPosition=M,q.scrollDirection=M>q.prevScrollPosition?1:-1,Q.forceRender()};o=(n)=>{n.preventDefault();let Q2=C();if(z=Math.max(0,Math.min(z+n.deltaY*X.ratio*Q1,Q2)),D===null)D=requestAnimationFrame(f)},J.addEventListener("wheel",o,{passive:!1});let F=()=>{if(P!==null)cancelAnimationFrame(P),P=null};i=(n)=>{if(F(),D!==null)cancelAnimationFrame(D),D=null;let Q2=n.touches[0];if(!Q2)return;let Z2=Z?Q2.clientX:Q2.clientY;H=Z2,O=M,E=1,T=0,W[0]=performance.now(),G[0]=Z2},k=(n)=>{n.preventDefault();let Q2=n.touches[0];if(!Q2)return;let Z2=Z?Q2.clientX:Q2.clientY,G2=performance.now(),M2=E<c2?E:T;if(W[M2]=G2,G[M2]=Z2,E<c2)E++;else T=(T+1)%c2;let N2=H-Z2,J2=C(),t=Math.max(0,Math.min(O+N2*X.ratio*Q1,J2));M=t,z=t,q.prevScrollPosition=q.scrollPosition,q.scrollPosition=t,q.scrollDirection=t>q.prevScrollPosition?1:-1,Q.forceRender()},S=()=>{let n=performance.now(),Q2=1/0,Z2=0,G2=-1,M2=0,N2=0;for(let B2=0;B2<E;B2++){let U2=(T+B2)%c2,Y2=W[U2];if(n-Y2>=g1)continue;N2++;let A2=G[U2];if(Y2<Q2)Q2=Y2,Z2=A2;if(Y2>G2)G2=Y2,M2=A2}let J2=0;if(N2>=2){let B2=G2-Q2;if(B2>0)J2=(Z2-M2)/B2}if(E=0,T=0,Math.abs(J2)<u1)return;let t=J2*16,$2=()=>{if(t*=p1,Math.abs(t)<0.5){P=null;return}let B2=C(),U2=M+t;if(U2=Math.max(0,Math.min(U2,B2)),U2<=0&&t<0||U2>=B2&&t>0){M=U2,z=U2,q.scrollPosition=U2,Q.forceRender(),P=null;return}M=U2,z=U2,q.prevScrollPosition=q.scrollPosition,q.scrollPosition=U2,q.scrollDirection=U2>q.prevScrollPosition?1:-1,Q.forceRender(),P=requestAnimationFrame($2)};P=requestAnimationFrame($2)},J.addEventListener("touchstart",i,{passive:!0}),J.addEventListener("touchmove",k,{passive:!1}),J.addEventListener("touchend",S,{passive:!0}),J.addEventListener("touchcancel",S,{passive:!0}),u=()=>{if(J[_]!==0)J[_]=0},J.addEventListener("scroll",u,{passive:!0});let b=(n)=>{if(M=n,z=n,D!==null)cancelAnimationFrame(D),D=null;q.prevScrollPosition=q.scrollPosition,q.scrollPosition=n,q.scrollDirection=n>q.prevScrollPosition?1:-1,Q.forceRender()},m=Q.getMethod("_scrollbar:setCallback"),e=Q.getMethod("_scrollbar:getInstance");if(m&&e){m(b);let n=e();if(n)U=n,c=!1,U.updateBounds(X.virtualSize+A,q.containerSize)}else if(!U){let n=Q.config.classPrefix;if(U=J0(J,b,{},n,Z,Q.dom.root),c=!0,!J.classList.contains(`${n}-viewport--custom-scrollbar`))J.classList.add(`${n}-viewport--custom-scrollbar`);U.updateBounds(X.virtualSize+A,q.containerSize)}}function l(Q){L=!1,q.isCompressed=!1,q.compressionRatio=1,M=0,z=0,E=0,T=0,I();let _=Z?"overflowX":"overflow";J.style[_]="auto",A=0,Q.updateContentSize(Y.getTotalSize())}function I(){if(D!==null)cancelAnimationFrame(D),D=null;if(y!==null)cancelAnimationFrame(y),y=null;if(P!==null)cancelAnimationFrame(P),P=null;if(o)J.removeEventListener("wheel",o),o=null;if(i)J.removeEventListener("touchstart",i),i=null;if(k)J.removeEventListener("touchmove",k),k=null;if(S)J.removeEventListener("touchend",S),J.removeEventListener("touchcancel",S),S=null;if(u)J.removeEventListener("scroll",u),u=null;if(U&&c)U.destroy();U=null,c=!1;let Q=Z?"scrollLeft":"scrollTop";if(J&&J[Q]!==0)J[Q]=0}return{name:"scale",priority:20,setup(Q){q=Q.getState(),Y=Q.sizeCache,J=Q.dom.viewport,Z=Q.config.axis.primary==="x",B=Q.config.overscan,g=Q,Q.registerMethod("_updateCompressionMode",()=>d(Q)),Q.registerMethod("_scale:getCompression",()=>X),Q.registerMethod("_scale:easedScrollTo",(_,h)=>v(_,h)),Q.setScrollFns(()=>M,(_)=>{if(!X.isCompressed||!L){let x=Z?"scrollLeft":"scrollTop";J[x]=_;return}if(V(),P!==null)cancelAnimationFrame(P),P=null;let h=_*X.ratio;K(Math.max(0,Math.min(h,C())))}),Q.setScrollToIndexFn((_,h,x,f,F)=>{if(!X.isCompressed||!L)return!1;let b=$0(_,Y,q.containerSize,q.totalItems,X,h);if(x==="smooth")v(b,f??n2,F);else N(b)}),d(Q),w=q.totalItems,Q.registerDestroyHandler(I)},hooks:{onCalculate(Q){if(Q.totalItems!==w&&g)w=Q.totalItems,d(g);if(!X.isCompressed||!L)return;let _=Q.totalItems;if(_===0||Q.containerSize<=0){Q.visibleCount=0;return}d2(Q.scrollPosition,Q.containerSize,Y,_,X,R);let h=Math.max(0,R.start-B),x=Math.min(_-1,R.end+B),f=Math.min(x-h+1,Q.capacity);Q.visibleCount=f,Q.startIndex=h;for(let F=0;F<f;F++){let b=h+F;Q.visibleIndices[F]=b,Q.visibleOffsets[F]=m2(b,Q.scrollPosition,Y,_,Q.containerSize,X),Q.visibleSizes[F]=Y.getSize(b)}Q.prevRangeStart=h,Q.prevRangeEnd=x},onAfterScroll(Q){if(U&&L)U.updatePosition(Q),U.show()},onResize(){if(L){if(A=a(),U)U.updateBounds(X.virtualSize+A,q.containerSize);let Q=C();if(M>Q)M=Q,z=Q,q.scrollPosition=Q}}},destroy(){I()}}}function V0(j){let $=null,q,Y=0,J=0;return{name:"scrollbar",priority:15,setup(Z){let{dom:B,config:X}=Z,{classPrefix:L}=X,A=X.axis.primary==="x";q=Z.getState();let U=(c)=>{if(A)B.viewport.scrollLeft=c;else B.viewport.scrollTop=c};if(Z.registerMethod("_scrollbar:setCallback",(c)=>{U=c}),$=J0(B.viewport,(c)=>{U(c)},j,L,A,B.root),B.viewport.classList.add(`${L}-viewport--custom-scrollbar`),j?.gutter)B.viewport.classList.add(`${L}-viewport--gutter`);queueMicrotask(()=>{if(!q.isCompressed)$?.updateBounds(q.totalSize,q.containerSize)}),Z.registerMethod("_scrollbar:getInstance",()=>$),Z.registerDestroyHandler(()=>{if($?.destroy(),$=null,B.viewport.classList.remove(`${L}-viewport--custom-scrollbar`),j?.gutter)B.viewport.classList.remove(`${L}-viewport--gutter`)})},hooks:{onAfterScroll(Z){if(!q.isCompressed){let{totalSize:B,containerSize:X}=q;if(B!==Y||X!==J)Y=B,J=X,$?.updateBounds(B,X)}$?.updatePosition(Z),$?.show()},onResize(){if(!q.isCompressed){let{totalSize:Z,containerSize:B}=q;Y=Z,J=B,$?.updateBounds(Z,B)}}},destroy(){$?.destroy(),$=null}}}var j1=(j)=>{let $=Math.max(1,Math.floor(j.columns)),q=j.gap??0,Y=j.isHeaderFn,J={row:0,col:0},Z=(D)=>{if(D<=0)return 0;if(!Y)return Math.ceil(D/$);let y=0,H=0,O=0;for(let P=0;P<D;P++)if(Y(P)){if(O++,H)y++,H=0;y++,H=0}else if(H++,H>=$)y++,H=0;if(H)y++;return y},B=(D)=>{return J.row=X(D),J.col=L(D),J},X=(D)=>{if(!Y)return Math.floor(D/$);let y=0,H=0;for(let O=0;O<=D;O++)if(Y(O)){if(H)y++,H=0;if(O===D)return y;y++,H=0}else{if(O===D)return y;if(H++,H>=$)y++,H=0}return console.warn(`⚠️ getRow(${D}) fell through - returning ${y}`),y},L=(D)=>{if(!Y)return D%$;if(Y(D))return 0;let y=0;for(let H=0;H<=D;H++)if(Y(H))y=0;else{if(H===D)return y;if(y++,y>=$)y=0}return y},A=(D,y,H)=>{if(H<=0)return{start:0,end:-1};if(!Y){let E=Math.max(0,D*$),T=Math.min(H-1,(y+1)*$-1);return{start:E,end:T}}let O=-1,P=-1,W=0,G=0;for(let E=0;E<H;E++){if(Y(E)){if(G)W++,G=0;if(W>=D&&W<=y){if(O<0)O=E;P=E}W++,G=0}else{if(W>=D&&W<=y){if(O<0)O=E;P=E}if(G++,G>=$)W++,G=0}if(W>y&&!G)break}if(O<0)return{start:0,end:-1};return{start:O,end:P}},U=(D,y,H)=>{if(y<0||y>=$)return-1;let O=D*$+y;if(O<0||O>=H)return-1;return O},c=(D)=>{let y=($-1)*q;return Math.max(0,(D-y)/$)};return{get columns(){return $},get gap(){return q},update:(D)=>{if(D.columns!==void 0)$=Math.max(1,Math.floor(D.columns));if(D.gap!==void 0)q=D.gap;if(D.isHeaderFn!==void 0)Y=D.isHeaderFn},getTotalRows:Z,getPosition:B,getRow:X,getCol:L,getItemRange:A,getItemIndex:U,getColumnWidth:c,getColumnOffset:(D,y)=>{let H=c(y);return D*(H+q)}}};var p2={selected:!1,focused:!1};function _0(j){if(!j.columns||j.columns<1)throw Error("[vlist] grid: columns must be >= 1");let $,q,Y,J,Z,B,X,L,A,U,c=null,M=null,z=!1,D=null,y=0,H=0,O=0,P=0,W=new Map,G=0,E={start:0,end:-1},T=-1,R=-1,w=!0;function g(){if(z||!D)return;z=!0,M=D("_scale:getCompression")??null}function C(){return $.getTotalRows(Y.totalItems)}function a(S){let u=$.getRow(S),K=$.getCol(S),V=$.getColumnOffset(K,G)+y,N=q.getOffset(u)+O;if(L)return`translate(${Math.round(N)}px, ${Math.round(V)}px)`;return`translate(${Math.round(V)}px, ${Math.round(N)}px)`}function d(S,u){let K=$.getRow(u),V=$.getColumnWidth(G),N=q.getSize(K)-$.gap;if(L)S.style.width=`${N}px`,S.style.height=`${V}px`;else S.style.width=`${V}px`,S.style.height=`${N}px`}function o(S,u,K,V){if(V)V(K,p2);else p2.selected=!1,p2.focused=!1;let N=B(u,K,p2);if(typeof N==="string")S.innerHTML=N;else S.innerHTML="",S.appendChild(N)}function i(){if(Y.destroyed)return;let{scrollPosition:S,containerSize:u}=Y;if(!w&&S===T&&u===R)return;T=S,R=u,w=!1;let K=C();if(u<=0||K===0)return;g();let V=M?.()??null,N=V!==null&&V.isCompressed,v,s;if(N)d2(S,u,q,K,V,E),v=Math.max(0,E.start-U),s=Math.min(K-1,E.end+U);else{let f=q.indexAtOffset(S),F=q.indexAtOffset(S+u);if(F<K-1)F++;f=Math.max(0,f),F=Math.min(K-1,Math.max(0,F)),v=Math.max(0,f-U),s=Math.min(K-1,F+U)}if(v===Y.prevRangeStart&&s===Y.prevRangeEnd&&!Y.renderPending)return;let l=$.getItemRange(v,s,Y.totalItems);W.forEach((f,F)=>{if(F<l.start||F>l.end)f.el.remove(),J.release(f.el),W.delete(F)});let I=`${A}-item ${A}-grid-item`,Q=c?.()??null,_=Q?`${A}-item--selected`:"",h=Q?`${A}-item--focused`:"";for(let f=l.start;f<=l.end;f++){let F=X(f);if(!F)continue;let b=W.get(f);if(b===void 0){let m=J.acquire();m.className=I,m.setAttribute("data-index",String(f)),m.setAttribute("data-id",String(F.id)),o(m,F,f,Q),b={el:m,lastItem:F},W.set(f,b),Z.appendChild(m)}else if(b.lastItem!==F)b.el.setAttribute("data-id",String(F.id)),b.lastItem=F,o(b.el,F,f,Q);if(Q)if(Q(f,p2),b.el.classList.toggle(_,p2.selected),b.el.classList.toggle(h,p2.focused),p2.selected)b.el.setAttribute("aria-selected","true");else b.el.removeAttribute("aria-selected");if(d(b.el,f),N){let m=$.getRow(f),e=$.getCol(f),n=$.getColumnOffset(e,G)+y,Q2=m2(m,S,q,K,u,V)+O;b.el.style.transform=L?`translate(${Math.round(Q2)}px, ${Math.round(n)}px)`:`translate(${Math.round(n)}px, ${Math.round(Q2)}px)`}else b.el.style.transform=a(f)}if(!N){let f=q.getTotalSize()+P;Z.style[L?"width":"height"]=f+"px"}Y.totalSize=q.getTotalSize()+P,Y.prevRangeStart=v,Y.prevRangeEnd=s,Y.renderPending=!1;let x=l.end-l.start+1;Y.visibleCount=Math.min(x,Y.capacity),Y.startIndex=l.start;for(let f=0;f<Y.visibleCount;f++){let F=l.start+f,b=$.getRow(F);Y.visibleIndices[f]=F,Y.visibleOffsets[f]=N?m2(b,S,q,K,u,V):q.getOffset(b),Y.visibleSizes[f]=q.getSize(b)}}function k(){if(Y.destroyed)return;q.rebuild(C()),Y.prevRangeStart=-1,Y.prevRangeEnd=-1,Y.renderPending=!0,w=!0,i()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(S){let u=j.gap??0;$=j1({columns:j.columns,gap:u}),q=S.sizeCache,Y=S.getState(),J=S.pool,Z=S.dom.content,B=S.template,L=S.config.axis.primary==="x",A=S.config.classPrefix,U=S.config.overscan,X=S.getItem.bind(S),c=()=>S.getItemStateFn(),D=S.getMethod.bind(S),y=S.config.crossPadStart,H=S.config.crossAxisPadding,O=S.config.startPadding,P=S.config.mainAxisPadding,G=Y.crossSize-H;let K=S.rawSizeSpec,V;if(typeof K==="function"){let v={columnWidth:$.getColumnWidth(G),columns:j.columns,gap:u};V=K(0,v),S.setSizeConfig((s)=>{v.columnWidth=$.getColumnWidth(G);let l=s*j.columns;return K(l,v)+u})}else if(V=K,u>0)S.setSizeConfig(V+u);if(q.rebuild(C()),u>0){let N=q.getTotalSize;q.getTotalSize=()=>{let v=N();return v>0?v-u:0}}S.setVirtualTotalFn(()=>C()),S.dom.root.classList.add(`${A}--grid`),S.setRenderFn(i,k),S.registerMethod("getGridLayout",()=>$),S.registerMethod("updateGrid",(N)=>{if(N.columns!==void 0){if(!Number.isInteger(N.columns)||N.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(N.gap!==void 0&&N.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if($.update(N),N.gap!==void 0||N.columns!==void 0){let v=$.gap;if(typeof K==="function"){let s={columnWidth:$.getColumnWidth(G),columns:$.columns,gap:v};S.setSizeConfig((l)=>{s.columnWidth=$.getColumnWidth(G);let I=l*$.columns;return K(I,s)+v})}else S.setSizeConfig(V+v);q.rebuild(C())}if(N.columns!==void 0)S.setNavConfig({ud:$.columns});G=Y.crossSize-H,k()}),S.registerMethod("scrollToIndex",(N,v="start")=>{let s=$.getRow(N),l=C();if(l===0)return;let I=Math.max(0,Math.min(s,l-1)),Q=q.getOffset(I)+O,_=q.getSize(I),h=Y.containerSize,x=q.getTotalSize()+P,f=Math.max(0,x-h),F=typeof v==="string"?v:v.align??"start",b=typeof v==="object"?v.behavior:void 0,m=typeof v==="object"?v.duration:void 0,e;switch(F){case"center":e=Q-(h-_)/2;break;case"end":e=Q-h+_;break;default:e=Q}e=Math.max(0,Math.min(e,f)),g();let n=M?.()??null;if(n?.isCompressed&&b==="smooth"&&m&&m>0){let Q2=$0(I,q,h,l,n,F),Z2=D?.("_scale:easedScrollTo");if(Z2)Z2(Q2,m);else S.scrollTo(e)}else if(b==="smooth"&&m&&m>0)S.smoothScrollTo(e,m);else S.scrollTo(e)}),S.setNavConfig({total:()=>Y.totalItems,ud:j.columns,lr:1,scrollIndex:(N)=>$.getRow(N)}),S.registerDestroyHandler(()=>{for(let[,N]of W)N.el.remove();W.clear(),S.dom.root.classList.remove(`${A}--grid`)})},hooks:{onResize(S,u){let K=Y.crossSize-H;if(Math.abs(K-G)<1)return;if(G=K,(M?.()??null)?.isCompressed)k();else W.forEach((N,v)=>{d(N.el,v),N.el.style.transform=a(v)})}},destroy(){W.clear()}}}function M0(){return{name:"a11y",priority:55,setup(j){if(j.getItemStateFn())return;j.enableListboxRole();let{dom:$,config:q,sizeCache:Y}=j,J=j.getState(),Z=j.emitter,B=q.classPrefix,X=$.liveRegion,L=-1,A=!1,U,c=-1,M=(w)=>j.getItem(w),z=()=>J.totalItems,D={id:0,index:0},y={selected:[],items:[]};j.setItemStateFn((w,g)=>{g.selected=c===w,g.focused=A&&L===w});function H(w){X.textContent="",X.textContent=w}let O=(w,g,C)=>{let a=w;while(a>=0&&a<C){let d=M(a);if(!d||!d.__groupHeader)return a;a+=g}a=w-g;while(a>=0&&a<C){let d=M(a);if(!d||!d.__groupHeader)return a;a-=g}return w},P=(w)=>{let g=j.getNavConfig(),C=g.scrollIndex?g.scrollIndex(w):w,a=Y.getOffset(C),d=Y.getSize(C),o=J.scrollPosition,i=J.containerSize,k=q.startPadding,S=q.endPadding,u=a+k,K=u+d,V=o;if(u<o)V=Math.max(0,a);else if(K>o+i)V=K+S-i;if(V!==o)J.scrollPosition=V,j.scrollTo(V)},W=(w,g)=>{if($.content.setAttribute("aria-activedescendant",`${B}-item-${w}`),g)P(w);j.forceRender()},G=(w)=>{L=w,A=!0,W(w,!0);let g=M(w);if(g)D.id=g.id,D.index=w,Z.emit("focus:change",D),H(`Item ${w+1} of ${z()}`)},E=(w,g)=>{if(L=w,g)A=!0;let C=M(w);if(C&&U===C.id)U=void 0,c=-1;else U=C?.id,c=C?w:-1;if(W(w,g),U!==void 0&&C&&U===C.id)y.selected[0]=U,y.selected.length=1,y.items[0]=C,y.items.length=1,H(`Selected, item ${w+1} of ${z()}`);else y.selected.length=0,y.items.length=0,H("Deselected");Z.emit("selection:change",y)},T=()=>{if(J.destroyed)return;if(!$.content.matches(":focus-visible"))return;let w=z();if(w===0)return;let g=L>=0?Math.min(L,w-1):0;g=O(g,1,w),G(g)},R=(w)=>{if(J.destroyed)return;let g=w.relatedTarget;if(g&&$.root.contains(g))return;A=!1,$.content.removeAttribute("aria-activedescendant"),j.forceRender()};$.content.addEventListener("focusin",T),$.content.addEventListener("focusout",R),j.registerKeydownHandler((w)=>{if(J.destroyed)return;let g=z();if(g===0)return;let C=L,a=C;if(w.key===" "||w.key==="Enter"){if(C>=0){let o=M(C);if(o&&!o.__groupHeader)E(C,!0)}w.preventDefault();return}let d=j.getNavConfig();if(d.navigate)switch(w.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":a=d.navigate(C,w.key,g);break;default:return}else{let o=d.ud||1,i=d.lr,k=q.axis.primary==="x";switch(w.key){case"ArrowUp":if(k&&!i)return;a=C-(k?i:o);break;case"ArrowDown":if(k&&!i)return;a=C+(k?i:o);break;case"ArrowLeft":if(!k&&!i)return;a=C-(k?o:i);break;case"ArrowRight":if(!k&&!i)return;a=C+(k?o:i);break;case"PageUp":case"PageDown":{let S=Y.getSize(Math.max(0,d.scrollIndex?d.scrollIndex(C):C)),K=Math.max(1,Math.floor(J.containerSize/S))*o;a=w.key==="PageUp"?C-K:C+K;break}case"Home":a=0;break;case"End":a=g-1;break;default:return}}if(a<0)a=0;else if(a>=g)a=g-1;if(w.preventDefault(),a=O(a,a>=C?1:-1,g),a!==C)G(a)}),j.registerClickHandler((w)=>{if(J.destroyed)return;let g=w.target.closest("[data-index]");if(!g)return;let C=parseInt(g.dataset.index??"-1",10);if(C<0)return;let a=M(C);if(!a||a.__groupHeader)return;A=!1,$.content.focus({preventScroll:!0}),E(C,!1)}),j.registerDestroyHandler(()=>{$.content.removeEventListener("focusin",T),$.content.removeEventListener("focusout",R)})}}}var s2=(j,$,q)=>{if(String(q).startsWith(f2))return!1;let Y=f2+$;if(j.has(Y))return j.delete(Y),j.add(q),!0;return!1},q1=(j)=>({selected:new Set(j??[]),focusedIndex:-1,focusVisible:!1});function u2(j,$,q,Y){if(q===0)return;let J=Y?-$:$,Z=j.focusedIndex+J;if(Z<0)Z=0;if(Z>=q)Z=q-1;j.focusedIndex=Z}function Q0(j){return Array.from(j)}var x1={preventScroll:!0};function G0(j){let $=j?.mode??"single",q=j?.followFocus??!1,Y=j?.focusOnClick??!1,J,Z,B,X,L,A,U,c,M=-1,z=new Map,D=null,y=null,H=null,O=null,P,W=!1;function G(K){if(W)return;W=!0,D=K.getMethod("_layoutToDataIndex")??null,y=K.getMethod("_dataToLayoutIndex")??null,H=K.getMethod("_isGroupHeader")??null,O=K.getMethod("_scrollItemIntoView")??null;let V=K.getMethod("getGroupLayout");if(V){let N=V();P=()=>N.totalEntries}}let E=(K)=>D?D(K):K,T=(K)=>{let V=E(K);return V>=0?Z(V):void 0},R=(K,V,N)=>{if(!H)return K;let v=K;while(v>=0&&v<N){if(!H(v))return v;v+=V}v=K-V;while(v>=0&&v<N){if(!H(v))return v;v-=V}return K};function w(K,V){if($==="single")J.selected.clear(),z.clear();if(J.selected.add(K),V)z.set(K,V)}function g(K,V){if(J.selected.has(K))J.selected.delete(K),z.delete(K);else w(K,V)}function C(){J.selected.clear(),z.clear()}function a(K){J.selected.delete(K),z.delete(K)}function d(K,V){let N=Math.min(K,V),v=Math.max(K,V);for(let s=N;s<=v;s++){let l=Z(s);if(l)J.selected.add(l.id),z.set(l.id,l)}}function o(){let K=U.totalItems;for(let V=0;V<K;V++){let N=Z(V);if(N)J.selected.add(N.id),z.set(N.id,N)}}function i(){if(J.selected.size===0)return[];if(z.size>=J.selected.size){let v=[];for(let s of J.selected){let l=z.get(s);if(l)v.push(l)}if(v.length===J.selected.size)return v}let K=[],V=new Set(J.selected),N=U.totalItems;for(let v=0;v<N&&V.size>0;v++){let s=Z(v);if(s&&V.has(s.id))K.push(s),z.set(s.id,s),V.delete(s.id)}return K}function k(){B(),X.emit("selection:change",{selected:Q0(J.selected),items:i()})}let S=null,u=-1;return{name:"selection",priority:50,setup(K){K.enableListboxRole(),J=q1(j?.initial),Z=K.getItem.bind(K),B=K.forceRender.bind(K),X=K.emitter,L=K.dom;let V=K.config;if(A=K.sizeCache,U=K.getState(),c=K.scrollTo.bind(K),P=()=>U.totalItems,$==="none"){K.registerMethod("select",()=>{}),K.registerMethod("deselect",()=>{}),K.registerMethod("toggleSelect",()=>{}),K.registerMethod("selectAll",()=>{}),K.registerMethod("clearSelection",()=>{}),K.registerMethod("getSelected",()=>[]),K.registerMethod("getSelectedItems",()=>[]),K.registerMethod("selectNext",()=>{}),K.registerMethod("selectPrevious",()=>{}),K.registerMethod("_seedSelection",()=>{}),K.registerMethod("_getFocusedId",()=>{return}),K.registerMethod("_focusById",()=>{});return}let N=V.classPrefix;K.setItemStateFn((Q,_)=>{if(G(K),J.selected.size>0){let h=E(Q),x=h>=0?Z(h):void 0,f=x?.id;if(f!==void 0)if(J.selected.has(f))_.selected=!0;else if(s2(J.selected,h,f))_.selected=!0,z.delete(f2+h),z.set(f,x);else _.selected=!1;else _.selected=!1}else _.selected=!1;_.focused=J.focusVisible&&J.focusedIndex===Q}),K.registerMethod("_getSelectedIds",()=>J.selected),K.registerMethod("_getFocusedIndex",()=>J.focusVisible?J.focusedIndex:-1),L.root.classList.add(`${N}--selectable`);let v=(Q)=>{S=null,u=-1;let _=Q.target.closest("[data-index]");if(!_)return!1;let h=parseInt(_.dataset.index??"-1",10);if(h<0)return!1;let x=E(h);if(x<0)return!1;let f=Z(x);if(!f)return!1;return S=f,u=h,!0},s=(Q)=>{if(Q<0)return;if(O){O(Q);return}let _=K.getNavConfig(),h=_.scrollIndex?_.scrollIndex(Q):Q,x=A.getOffset(h),f=A.getSize(h),F=U.containerSize,b=U.scrollPosition;if(x<b)c(x);else if(x+f>b+F)c(x-F+f)},l=()=>{if(U.destroyed)return;if(G(K),!L.content.matches(":focus-visible")&&!L.root.matches(":focus-visible"))return;let Q=P();if(Q===0)return;let _=J.focusedIndex>=0?Math.min(J.focusedIndex,Q-1):0;_=R(_,1,Q),J.focusedIndex=_,J.focusVisible=!0,L.content.setAttribute("aria-activedescendant",`${N}-item-${_}`),s(_),B()};L.root.addEventListener("focusin",l);let I=(Q)=>{if(U.destroyed)return;let _=Q.relatedTarget;if(_&&L.root.contains(_))return;J.focusVisible=!1,B(),L.content.removeAttribute("aria-activedescendant")};L.root.addEventListener("focusout",I),K.registerDestroyHandler(()=>{L.root.removeEventListener("focusin",l),L.root.removeEventListener("focusout",I)}),K.registerClickHandler((Q)=>{if(G(K),!v(Q))return;if($==="multiple"&&Q.shiftKey&&J.focusedIndex>=0){let _=M>=0?M:J.focusedIndex,h=E(_),x=E(u);if(h>=0&&x>=0)d(h,x);J.focusedIndex=u,J.focusVisible=Y,M=u,k();return}J.focusedIndex=u,J.focusVisible=Y,M=u,L.content.focus(x1),g(S.id,S),k()}),K.registerKeydownHandler((Q)=>{G(K);let _=P();if(_===0)return;let h=K.getNavConfig(),x=J.focusedIndex,f=!1,F=!1;if(h.navigate&&(Q.key==="ArrowUp"||Q.key==="ArrowDown"||Q.key==="ArrowLeft"||Q.key==="ArrowRight"||Q.key==="PageUp"||Q.key==="PageDown"||Q.key==="Home"||Q.key==="End")){let m=h.navigate(J.focusedIndex,Q.key,_);if(m!==J.focusedIndex)J.focusedIndex=Math.max(0,Math.min(m,_-1));J.focusVisible=!0,f=!0}else switch(Q.key){case"ArrowUp":{let m=h.ud||1,e=h.lr,n=V.axis.primary==="x";if(n&&!e)break;u2(J,-(n?e:m),_,V.reverse),J.focusVisible=!0,f=!0;break}case"ArrowDown":{let m=h.ud||1,e=h.lr,n=V.axis.primary==="x";if(n&&!e)break;u2(J,n?e:m,_,V.reverse),J.focusVisible=!0,f=!0;break}case"ArrowLeft":{let m=h.ud||1,e=h.lr,n=V.axis.primary==="x";if(!n&&!e)break;u2(J,-(n?m:e),_,V.reverse),J.focusVisible=!0,f=!0;break}case"ArrowRight":{let m=h.ud||1,e=h.lr,n=V.axis.primary==="x";if(!n&&!e)break;u2(J,n?m:e,_,V.reverse),J.focusVisible=!0,f=!0;break}case"Home":if(_>0)J.focusedIndex=0;J.focusVisible=!0,f=!0;break;case"End":if(_>0)J.focusedIndex=_-1;J.focusVisible=!0,f=!0;break;case"PageUp":case"PageDown":{let m=h.ud||1,e=Math.max(0,J.focusedIndex),n=h.scrollIndex?h.scrollIndex(e):e,Q2=A.getSize(n),Z2=U.containerSize,M2=(Q2>0?Math.max(1,Math.floor(Z2/Q2)):10)*m;if(D&&y){let N2=D(J.focusedIndex),J2=Q.key==="PageUp"?-M2:M2,t=U.totalItems-1;J.focusedIndex=y(Math.max(0,Math.min(t,N2+J2)))}else u2(J,Q.key==="PageUp"?-M2:M2,_);J.focusVisible=!0,f=!0;break}case" ":case"Enter":if(Q.key===" "&&Q.shiftKey&&$==="multiple"&&J.focusedIndex>=0){if(M>=0){let m=E(M),e=E(J.focusedIndex);if(m>=0&&e>=0)d(m,e)}J.focusVisible=!0,F=!0,f=!0;break}if(J.focusedIndex>=0){let m=T(J.focusedIndex);if(m)g(m.id,m),M=J.focusedIndex;J.focusVisible=!0,F=!0,f=!0}break;case"a":if((Q.ctrlKey||Q.metaKey)&&$==="multiple"){if(J.selected.size===U.totalItems)C();else o();J.focusVisible=!0,F=!0,f=!0}break;case"Delete":case"Backspace":if(J.selected.size>0)X.emit("delete",{selected:Q0(J.selected),items:i()}),f=!0;break}if(J.focusedIndex!==x&&H){let m=J.focusedIndex>x?1:-1;J.focusedIndex=R(J.focusedIndex,m,_)}let b=J.focusedIndex!==x;if(Q.shiftKey&&$==="multiple"&&!F&&b){if(Q.key==="ArrowUp"||Q.key==="ArrowDown"||Q.key==="ArrowLeft"||Q.key==="ArrowRight"){let n=T(J.focusedIndex);if(n)g(n.id,n);M=J.focusedIndex,F=!0}if((Q.ctrlKey||Q.metaKey)&&(Q.key==="Home"||Q.key==="End")){let n=E(x>=0?x:J.focusedIndex),Q2=E(J.focusedIndex);if(n>=0&&Q2>=0)d(n,Q2);M=J.focusedIndex,F=!0}}if(q&&$==="single"&&!F&&b&&J.focusedIndex>=0){let m=T(J.focusedIndex);if(m)w(m.id,m);F=!0}if(f){if(Q.preventDefault(),b&&J.focusedIndex>=0)s(J.focusedIndex),L.content.setAttribute("aria-activedescendant",`${N}-item-${J.focusedIndex}`);if(F)k();else if(b){if(B(),J.focusedIndex>=0){let m=T(J.focusedIndex);if(m)X.emit("focus:change",{id:m.id,index:J.focusedIndex})}}}}),K.registerMethod("select",(...Q)=>{for(let _ of Q)w(_);k()}),K.registerMethod("deselect",(...Q)=>{for(let _ of Q)a(_);k()}),K.registerMethod("toggleSelect",(Q)=>{g(Q),k()}),K.registerMethod("selectAll",()=>{if($!=="multiple")return;o(),k()}),K.registerMethod("clearSelection",()=>{C(),k()}),K.registerMethod("getSelected",()=>{return Q0(J.selected)}),K.registerMethod("getSelectedItems",()=>{return i()}),K.registerMethod("selectNext",()=>{G(K);let Q=P();if(Q===0)return;if(u2(J,1,Q,V.reverse),H)J.focusedIndex=R(J.focusedIndex,1,Q);let _=T(J.focusedIndex);if(_)w(_.id,_);k()}),K.registerMethod("selectPrevious",()=>{G(K);let Q=P();if(Q===0)return;if(u2(J,-1,Q,V.reverse),H)J.focusedIndex=R(J.focusedIndex,-1,Q);let _=T(J.focusedIndex);if(_)w(_.id,_);k()}),K.registerMethod("_seedSelection",(Q)=>{for(let _ of Q)J.selected.add(_)}),K.registerMethod("_getFocusedId",()=>{if(J.focusedIndex<0)return;return T(J.focusedIndex)?.id}),K.registerMethod("_focusById",(Q)=>{let _=U.totalItems;for(let h=0;h<_;h++){let x=Z(h);if(x&&x.id===Q){let f=y?y(h):h;J.focusedIndex=f,X.emit("focus:change",{id:Q,index:f});return}}})},destroy(){z.clear()}}}var j0=(j)=>j==null?0:typeof j==="function"?j():j;function X0(j){let $=j?.scrollPadding,q,Y;return{name:"page",priority:5,setup(J){let{dom:Z,sizeCache:B,config:X,emitter:L}=J,A=X.axis.primary==="x",U=window,c=J.getState();if(J.disableDefaultScroll(),J.disableDefaultResize(),Z.root.style.overflow="visible",Z.root.style.height="auto",A)Z.viewport.style.overflowX="visible",Z.viewport.style.overflowY="visible";else Z.viewport.style.overflow="visible";Z.viewport.classList.remove(`${X.classPrefix}-viewport--custom-scrollbar`),J.setScrollFns(()=>{let O=Z.viewport.getBoundingClientRect();return Math.max(0,A?-O.left:-O.top)},(O)=>{let P=Z.viewport.getBoundingClientRect(),W=(A?P.left+U.scrollX:P.top+U.scrollY)+O;if(A)U.scrollTo({left:W,top:U.scrollY,behavior:"instant"});else U.scrollTo({left:U.scrollX,top:W,behavior:"instant"})}),c.containerSize=A?U.innerWidth:U.innerHeight,c.crossSize=A?U.innerHeight:U.innerWidth;let M=null,z=()=>{let O=Z.viewport.getBoundingClientRect(),P=Math.max(0,A?-O.left:-O.top);if(c.prevScrollPosition=c.scrollPosition,c.scrollPosition=P,c.scrollDirection=P>c.prevScrollPosition?1:P<c.prevScrollPosition?-1:0,J.onScrollFrame(),M!==null)clearTimeout(M);M=setTimeout(()=>{M=null,J.onScrollIdle()},150)};U.addEventListener("scroll",z,{passive:!0}),Y=()=>U.removeEventListener("scroll",z);let{innerWidth:D,innerHeight:y}=U,H=()=>{let{innerWidth:O,innerHeight:P}=U;if((A?Math.abs(O-D):Math.abs(P-y))<1)return;D=O,y=P,c.containerSize=A?O:P,c.crossSize=A?P:O,J.forceRender(),L.emit("resize",{width:O,height:P})};if(U.addEventListener("resize",H),q=()=>U.removeEventListener("resize",H),$)J.setScrollToPosFn((O,P,W,G,E)=>{let T=j0(A?$.left:$.top),R=j0(A?$.right:$.bottom);if(G===0)return 0;let w=Math.max(0,Math.min(O,G-1)),g=P.getOffset(w),C=P.getSize(w),a=P.getTotalSize(),d=Math.max(0,a-W+R),o;switch(E){case"center":o=g-T-(W-T-R-C)/2;break;case"end":o=g-W+C+R;break;default:o=g-T}return Math.max(-T,Math.min(o,d))}),J.registerMethod("_scrollItemIntoView",(O)=>{let P=A?U.innerWidth:U.innerHeight,W=j0(A?$.left:$.top),G=j0(A?$.right:$.bottom),E=Z.viewport.getBoundingClientRect(),T=A?U.scrollX:U.scrollY,R=A?E.left:E.top,w=R+T,g=B.getOffset(O),C=B.getSize(O),a=R+g,d=P-G,o=T;if(a<W)o=w+g-W;else if(a+C>d)o=w+g+C-d;if(o!==T)if(A)U.scrollTo({left:o,top:U.scrollY,behavior:"instant"});else U.scrollTo({left:U.scrollX,top:o,behavior:"instant"})});J.registerDestroyHandler(()=>{if(Y?.(),q?.(),M!==null)clearTimeout(M)})},destroy(){Y?.(),q?.(),Y=void 0,q=void 0}}}var m1=(j)=>{try{let $=sessionStorage.getItem(j);if(!$)return;return JSON.parse($)}catch{return}};function A0(j){let $=j?.autoSave,q=$?m1($):j?.restore,Y=!1,J=null;return{name:"snapshots",priority:50,setup(Z){let{sizeCache:B,emitter:X}=Z,L=Z.getState(),A=()=>{let{scrollPosition:M,totalItems:z}=L,y=Z.getMethod("getSelected")?.();if(z===0){let R={index:0,offsetInItem:0,total:0};if(y?.length)R.selectedIds=y;return R}let H,O;if(L.isCompressed&&L.compressionRatio!==1){let R=L.totalSize,g=M/R*z;H=Math.max(0,Math.min(Math.floor(g),z-1)),O=(g-H)*B.getSize(H)}else H=B.indexAtOffset(M),O=M-B.getOffset(H);O=Math.max(0,O);let P={index:H,offsetInItem:O,total:z,scrollTop:M},W=B.getSize(H);if(W)P.offsetRatio=O/W;let G=Z.getMethod("_layoutToDataIndex");if(G){let R=G(H);if(R<0){for(let w=H+1;w<z;w++)if(R=G(w),R>=0)break}if(R>=0)P.dataIndex=R}let E=Z.getMethod("_getTotal");if(E)P.dataTotal=E();if(y?.length)P.selectedIds=y;let T=Z.getMethod("_getFocusedId");if(T){let R=T();if(R!==void 0)P.focusedId=R}return P};Z.registerMethod("getScrollSnapshot",A);let U=(M,z=!0)=>{let{index:D,offsetInItem:y,selectedIds:H,focusedId:O}=M,P=L.totalItems,W=M.dataTotal??M.total;if(P===0&&W&&W>0){let k=Z.getMethod("_setTotal");if(k)k(W),P=L.totalItems;B.rebuild(P);let S=Z.getMethod("_updateCompressionMode");if(S)S();if(!L.isCompressed)Z.updateContentSize(B.getTotalSize()),L.totalSize=B.getTotalSize()}if(P===0)return;if(!Number.isFinite(D)||!Number.isFinite(y))return;if(B.getTotal()===0){B.rebuild(P);let k=Z.getMethod("_updateCompressionMode");if(k)k();if(!L.isCompressed)Z.updateContentSize(B.getTotalSize()),L.totalSize=B.getTotalSize()}let E=Z.getMethod("_dataToLayoutIndex"),T=D;if(M.dataIndex!==void 0&&M.dataIndex>=0)T=E?E(M.dataIndex):M.dataIndex;else if(E)T=E(D);let R=Math.max(0,Math.min(T,P-1)),w=B.getSize(R),g=M.offsetRatio!==void 0?M.offsetRatio*w:Math.min(y,w),C;if(L.isCompressed&&L.compressionRatio!==1){let k=Z.getMethod("_getTotal")?.(),S=k!==void 0&&M.dataTotal===k;if(M.scrollTop!==void 0&&(M.total===P||S))C=M.scrollTop;else{let u=w?g/w:0;C=(R+u)/P*L.totalSize}}else C=B.getOffset(R)+g;let a=Math.max(0,L.totalSize-L.containerSize);C=Math.max(0,Math.min(C,a));let d=C===M.scrollTop;if(M.dataIndex!==void 0&&M.dataIndex>=0){let k=w?g/w:0;Z.registerMethod("_restoreAnchor",{dataIndex:M.dataIndex,fraction:k,skipAdjust:d}),Z.registerMethod("_suppressSave",1)}if(Z.scrollTo(C),z&&H?.length){let k=Z.getMethod("select");if(k)k(...H)}let o=Z.getMethod("loadVisibleRange"),i=()=>{if(O===void 0)return;let k=Z.getMethod("_focusById");if(k)k(O)};if(o){let k=0,S=()=>{if(L.containerSize>0){if(Math.abs(L.scrollPosition-C)>1)Z.scrollTo(C);o().then(i)}else if(++k<10)requestAnimationFrame(S)};requestAnimationFrame(S)}else{let k=Z.getMethod("reload");if(k)requestAnimationFrame(()=>{k().then(i)});else requestAnimationFrame(i)}};Z.registerMethod("restoreScroll",U);let c=!!(q&&$);if(Z.registerDestroyHandler(()=>{Y=!0}),$){J=()=>{if(Y||c||Z.getMethod("_suppressSave"))return;let P=A();try{sessionStorage.setItem($,JSON.stringify(P))}catch{}},Z.registerMethod("_saveSnapshot",J);let M=0,z=()=>{if(M)return;M=requestAnimationFrame(()=>{if(M=0,J)J()})};X.on("selection:change",z),X.on("focus:change",z);let D=0,y=()=>{if(D=0,J)J()},H=()=>{if(D)clearTimeout(D);D=setTimeout(y,300)};X.on("scroll",H);let O=()=>{J?.()};if(window.addEventListener("beforeunload",O),Z.registerDestroyHandler(()=>{if(M)cancelAnimationFrame(M);if(D)clearTimeout(D);window.removeEventListener("beforeunload",O)}),q&&q.total&&q.total>0){let P=Z.getMethod("_cancelAutoLoad");if(P)P();let W=Z.getMethod("_setTotal");if(W)W(q.total)}}if(q){let M=!0;if(q.selectedIds?.length){let z=Z.getMethod("_seedSelection");if(z)z(q.selectedIds),M=!1}queueMicrotask(()=>{if(U(q,M),c=!1,J)J()})}},hooks:{onIdle(){if(J&&!Y)J()}},destroy(){Y=!0,J=null}}}function Y1(j,$){if($===!1)return null;return{duration:Math.min($?.duration??j.duration,1000),easing:$?.easing??j.easing}}function D0(j){let $=j?.duration??200,q=j?.easing??"cubic-bezier(0.2, 0, 0, 1)",Y={duration:$,easing:q},J=Y1(Y,j?.remove),Z=Y1(Y,j?.insert),B=null,X=null;return{name:"transition",conflicts:["grid","table","masonry"],priority:45,setup(L){let{sizeCache:A,emitter:U}=L,c=L.config,M=L.dom,z=L.getState(),D=c.reverse?"bottom center":"top center",y=c.axis.primary==="x"?"translateX":"translateY",H=L.getMethod("_dataToLayoutIndex")??null,O=(G)=>H?H(G):G,P=(G)=>{let E=String(G).replace(/"/g,"\\\""),T=M.content.querySelector(`[data-id="${E}"]`),R=T?parseInt(T.dataset.index??"-1",10):-1;return{el:T,layoutIndex:R}},W=()=>{let G=M.content.children;for(let E=0;E<G.length;E++)G[E].style.transition="none";M.content.offsetHeight;for(let E=0;E<G.length;E++)G[E].style.transition=""};if(J){let G=(T)=>{if(B)B();let R=typeof document<"u"?document.activeElement:null,w=R&&M.content.contains(R)?parseInt(R.dataset?.index??"-1",10):-1,g=P(T),C=g.layoutIndex,a=g.el,d=C>=0?A.getSize(C):0,o=C>=0?A.getOffset(C):0;if(!a||C<0){if(L.removeItemById(T)<0)return!1;if(L.forceRender(),W(),U.emit("data:change",{type:"remove",id:T}),w>=0){let x=z.totalItems;if(x>0)L.getRenderedElement(Math.min(w,x-1))?.focus()}return U.emit("remove:end",{id:T}),!0}let i=a.cloneNode(!0);i.style.pointerEvents="none",i.style.overflow="hidden",i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.removeAttribute("id"),i.removeAttribute("aria-selected"),i.classList.remove(`${c.classPrefix}-item--selected`);let k=c.axis.primary==="x"?"scrollLeft":"scrollTop",S=M.viewport[k];if(L.removeItemById(T)<0)return!1;L.forceRender(),W(),U.emit("data:change",{type:"remove",id:T});let K=S-M.viewport[k];i.style.zIndex="1",M.content.appendChild(i);let V=J,N={duration:V.duration,easing:V.easing},v=[],s=Math.round(o-K);v.push(i.animate([{transform:`${y}(${s}px) scaleY(1)`,opacity:1,transformOrigin:D},{transform:`${y}(${Math.round(o)}px) scaleY(0)`,opacity:0,transformOrigin:D}],N));let l=K>0,I=M.content.children;for(let h=0;h<I.length;h++){let x=I[h];if(x===i)continue;let f=parseInt(x.dataset?.index??"-1",10);if(f<0||!l&&f<C)continue;let F=A.getOffset(f),b=f>=C?Math.round(F+d-K):Math.round(F-K),m=Math.round(F);if(b===m)continue;v.push(x.animate([{transform:`${y}(${b}px)`},{transform:`${y}(${m}px)`}],N))}let Q=!1,_=()=>{if(Q)return;Q=!0,B=null,i.remove();for(let h of v)if(h.playState!=="finished")h.cancel();if(w>=0){let h=z.totalItems;if(h>0)L.getRenderedElement(Math.min(w,h-1))?.focus()}U.emit("remove:end",{id:T})};return B=_,Promise.all(v.map((h)=>h.finished)).then(_,_),setTimeout(_,V.duration+50),!0},E=(T)=>{if(T.length===0)return 0;if(T.length===1)return G(T[0])?1:0;if(B)B();if(X)X();let R=typeof document<"u"?document.activeElement:null,w=R&&M.content.contains(R)?parseInt(R.dataset?.index??"-1",10):-1,g=[];for(let Q of T){let _=P(Q);g.push({id:Q,layoutIndex:_.layoutIndex,el:_.el,size:_.layoutIndex>=0?A.getSize(_.layoutIndex):0,offset:_.layoutIndex>=0?A.getOffset(_.layoutIndex):0})}g.sort((Q,_)=>_.layoutIndex-Q.layoutIndex);let C=[];for(let Q of g){if(!Q.el||Q.layoutIndex<0)continue;let _=Q.el.cloneNode(!0);_.style.pointerEvents="none",_.style.overflow="hidden",_.removeAttribute("data-index"),_.removeAttribute("data-id"),_.removeAttribute("id"),_.removeAttribute("aria-selected"),_.classList.remove(`${c.classPrefix}-item--selected`),C.push({clone:_,offset:Q.offset,size:Q.size,layoutIndex:Q.layoutIndex})}let a=new Map,d=M.content.children;for(let Q=0;Q<d.length;Q++){let _=d[Q],h=_.dataset?.id,x=parseInt(_.dataset?.index??"-1",10);if(h&&x>=0)a.set(h,A.getOffset(x))}let o=c.axis.primary==="x"?"scrollLeft":"scrollTop",i=M.viewport[o],k=[];for(let Q of g)if(L.removeItemById(Q.id)>=0)k.push(Q.id);if(k.length===0)return 0;L.forceRender(),W();for(let Q of k)U.emit("data:change",{type:"remove",id:Q});if(C.length===0){if(w>=0){let Q=z.totalItems;if(Q>0)L.getRenderedElement(Math.min(w,Q-1))?.focus()}for(let Q of k)U.emit("remove:end",{id:Q});return k.length}let S=i-M.viewport[o],u=J,K={duration:u.duration,easing:u.easing},V=[];C.sort((Q,_)=>Q.layoutIndex-_.layoutIndex);let N=0;for(let Q of C){Q.clone.style.zIndex="1",M.content.appendChild(Q.clone);let _=Math.round(Q.offset-S),h=Math.round(Q.offset-N);V.push(Q.clone.animate([{transform:`${y}(${_}px) scaleY(1)`,opacity:1,transformOrigin:D},{transform:`${y}(${h}px) scaleY(0)`,opacity:0,transformOrigin:D}],K)),N+=Q.size}let v=new Set(C.map((Q)=>Q.clone)),s=M.content.children;for(let Q=0;Q<s.length;Q++){let _=s[Q];if(v.has(_))continue;let h=_.dataset?.id,x=parseInt(_.dataset?.index??"-1",10);if(!h||x<0)continue;let f=a.get(h);if(f===void 0)continue;let F=A.getOffset(x),b=Math.round(f-S),m=Math.round(F);if(b===m)continue;V.push(_.animate([{transform:`${y}(${b}px)`},{transform:`${y}(${m}px)`}],K))}let l=!1,I=()=>{if(l)return;l=!0,B=null;for(let{clone:Q}of C)Q.remove();for(let Q of V)if(Q.playState!=="finished")Q.cancel();if(w>=0){let Q=z.totalItems;if(Q>0)L.getRenderedElement(Math.min(w,Q-1))?.focus()}for(let Q of k)U.emit("remove:end",{id:Q})};return B=I,Promise.all(V.map((Q)=>Q.finished)).then(I,I),setTimeout(I,u.duration+50),k.length};L.registerMethod("removeItem",G),L.registerMethod("removeItems",E)}if(Z){let G=(E,T)=>{if(X)X();if(B)B();let R=T??0,w=new Map,g=M.content.children;for(let Q=0;Q<g.length;Q++){let _=g[Q],h=_.dataset?.id,x=parseInt(_.dataset?.index??"-1",10);if(h&&x>=0)w.set(h,A.getOffset(x))}let C=c.axis.primary==="x"?"scrollLeft":"scrollTop",a=c.axis.primary==="x"?"scrollWidth":"scrollHeight",d=c.axis.primary==="x"?"clientWidth":"clientHeight",o=M.viewport[C],i=M.viewport[a]-M.viewport[d],k=o>=i-1;L.insertItemAt(E,R),L.forceRender(),W(),U.emit("data:change",{type:"insert",id:E.id});let S=M.viewport[C]-o,u=O(R);if(c.reverse&&S===0&&k){M.viewport[C]=M.viewport[a]-M.viewport[d];let Q=M.viewport[C];if(z.prevScrollPosition=z.scrollPosition,z.scrollPosition=Q,S=Q-o,S>0)L.forceRender(),W()}let K=L.getRenderedElement(u),V=Z,N={duration:V.duration,easing:V.easing},v=[];if(K){let Q=A.getOffset(u);v.push(K.animate([{transform:`${y}(${Math.round(Q)}px) scaleY(0)`,opacity:0,transformOrigin:D},{transform:`${y}(${Math.round(Q)}px) scaleY(1)`,opacity:1,transformOrigin:D}],N))}let s=M.content.children;for(let Q=0;Q<s.length;Q++){let _=s[Q];if(_===K)continue;let h=_.dataset?.id,x=parseInt(_.dataset?.index??"-1",10);if(!h||x<0)continue;let f=w.get(h);if(f===void 0)continue;let F=A.getOffset(x),b=Math.round(f+S),m=Math.round(F);if(b===m)continue;v.push(_.animate([{transform:`${y}(${b}px)`},{transform:`${y}(${m}px)`}],N))}if(v.length===0)return;let l=!1,I=()=>{if(l)return;l=!0,X=null;for(let Q of v)if(Q.playState!=="finished")Q.cancel()};X=I,Promise.all(v.map((Q)=>Q.finished)).then(I,I),setTimeout(I,V.duration+50)};L.registerMethod("insertItem",G)}},destroy(){if(B)B();if(X)X()}}}function H0(j){let $=j?.gap??0,q=null,Y=null,J,Z,B,X,L=new Map,A=new WeakMap,U=0,c=!1,M=!1,z=!1,D=2;function y(W){return L.get(W)??X}function H(){let W=Y.dom.viewport,G=W.scrollHeight-W.clientHeight;return G>0&&J.scrollPosition>=G-D}function O(){let W=Y.dom.viewport;W.scrollHeight;let G=W.scrollHeight-W.clientHeight;if(G>J.scrollPosition)Y.scrollTo(G)}function P(){Y.updateContentSize(Y.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(W){if(Y=W,J=W.getState(),Z=W.config.axis.primary==="x",B=Z?"width":"height",$===0)$=W.config.gap;if(X=typeof W.rawSizeSpec==="function"?W.rawSizeSpec(0)+$:W.rawSizeSpec+$,W.setSizeConfig(y),$>0){let T=W.sizeCache.getTotalSize;W.sizeCache.getTotalSize=()=>{let R=T();return R>0?R-$:0}}q=new ResizeObserver((T)=>{if(J.destroyed||!Y)return;let R=!1,w=W.sizeCache.indexAtOffset(J.scrollPosition);for(let o of T){let i=o.target,k=A.get(i);if(k===void 0)continue;if(i.getAttribute("data-index")!==String(k)){q.unobserve(i);continue}if(L.has(k))continue;let S=o.borderBoxSize[0];if(!S)continue;let u=Z?S.inlineSize:S.blockSize;if(u<=0)continue;let K=u+$,V=X;if(L.set(k,K),R=!0,k<w&&K!==V)U+=K-V;q.unobserve(i),i.style[B]=`${u}px`}if(!R)return;let g=H();if(W.rebuildSizeCache(),U)W.scrollTo(J.scrollPosition+U),U=0;let C=J.scrollDirection!==0,a=J.totalItems>0&&J.prevRangeEnd>=J.totalItems-1,d=M&&!z;if(d||g||a||!C){if(P(),c=!1,d||g)O()}else c=!0;W.forceRender()}),W.setScrollToIndexFn((T,R,w,g,C)=>{let a=T>=J.totalItems-1&&R==="end";if(M=a,z=!1,!a)return!1;let d=W.config.mainAxisPadding,o=()=>{let i=W.sizeCache.getTotalSize();return Math.max(0,i+d-J.containerSize)};if(w==="smooth")z=!0,W.smoothScrollTo(o,g??300,C,()=>{z=!1});else W.scrollTo(o())});let G=()=>{M=!1},E=W.dom.viewport;E.addEventListener("wheel",G,{passive:!0}),E.addEventListener("touchstart",G,{passive:!0}),W.registerDestroyHandler(()=>{E.removeEventListener("wheel",G),E.removeEventListener("touchstart",G)}),W.registerMethod("isMeasured",(T)=>L.has(T)),W.registerMethod("setMeasuredSize",(T,R)=>{L.set(T,R)}),W.registerMethod("getMeasuredCount",()=>L.size),W.registerDestroyHandler(()=>{if(q)q.disconnect(),q=null})},hooks:{onCommit(W){if(!q||!Y)return;for(let G=0;G<W.visibleCount;G++){let E=W.visibleIndices[G];if(L.has(E))continue;let T=Y.getRenderedElement(E);if(!T)continue;T.style[B]="",A.set(T,E),q.observe(T)}},onIdle(){if(!Y||!c)return;let W=H();if(P(),c=!1,W)O(),Y.forceRender()}},destroy(){if(q)q.disconnect(),q=null;L.clear(),M=!1,z=!1,Y=null}}}var Z1=(j)=>{let $=Math.max(1,Math.floor(j.columns)),q=j.gap??0,Y=j.containerSize,J=j.crossOffset??0,Z=j.mainOffset??0,B=0,X=[],L=()=>{let O=($-1)*q;B=Math.max(0,(Y-O)/$),X=Array($);let P=B+q;for(let W=0;W<$;W++)X[W]=J+W*P};L();let A=[],U=0,c=[],M=(O,P)=>{if(O<=0)return U=0,A=[],[];let W=Array($).fill(Z),G=Array($);for(let R=0;R<$;R++)G[R]=[];let E=Array(O);for(let R=0;R<O;R++){let w=0,g=W[0];for(let d=1;d<$;d++){let o=W[d];if(o<g)g=o,w=d}let C=P(R),a=W[w];E[R]={index:R,x:X[w],y:a,lane:w,size:C,crossSize:B},G[w].push(R),W[w]=a+C+q}A=G;let T=0;for(let R=0;R<$;R++){let w=W[R],g=w>0?w-q:0;if(g>T)T=g}return U=T,E},z=(O)=>{if(O.length===0)return U;if(U)return U;let P=Array($).fill(0);for(let G of O){let E=G.y+G.size,T=P[G.lane];if(E>T)P[G.lane]=E}let W=0;for(let G=0;G<$;G++)if(P[G]>W)W=P[G];return W},D=(O,P,W)=>{if(O.length===0||W<=P)return c.length=0,c;if(A.length===0||A.length!==$)return y(O,P,W);c.length=0;for(let G=0;G<$;G++){let E=A[G],T=E.length;if(!T)continue;let R=0,w=T;while(R<w){let g=R+w>>>1,C=O[E[g]];if(C.y+C.size<=P)R=g+1;else w=g}for(let g=R;g<T;g++){let C=O[E[g]];if(C.y>=W)break;c.push(C)}}return c},y=(O,P,W)=>{c.length=0;for(let G of O)if(G.y+G.size>P&&G.y<W)c.push(G);return c};return{get columns(){return $},get gap(){return q},get containerSize(){return Y},update:(O)=>{let P=!1;if(O.columns!==void 0){let W=Math.max(1,Math.floor(O.columns));if(W!==$)$=W,P=!0}if(O.gap!==void 0&&O.gap!==q)q=O.gap,P=!0;if(O.containerSize!==void 0&&O.containerSize!==Y)Y=O.containerSize,P=!0;if(O.crossOffset!==void 0&&O.crossOffset!==J)J=O.crossOffset,P=!0;if(O.mainOffset!==void 0&&O.mainOffset!==Z)Z=O.mainOffset,P=!0;if(P)L()},calculateLayout:M,getTotalSize:z,getVisibleItems:D}};var K1=(j,$,q)=>{let Y=Array.from($).sort((B,X)=>B-X);if(Y.length<=1)return;let J=[];for(let B=0;B<Y.length;B++){let X=q(Y[B]);if(X)J.push(X)}if(J.length<=1)return;let Z=j.firstChild;for(let B=0;B<J.length;B++){let X=J[B];if(X===Z)Z=Z.nextSibling;else j.insertBefore(X,Z)}};var d1=(j=200)=>{let $=[];return{acquire:()=>{let Z=$.pop();if(Z)return Z;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(Z)=>{if(Z.remove(),$.length<j)Z.className="",Z.textContent="",Z.removeAttribute("style"),Z.removeAttribute("data-index"),Z.removeAttribute("data-id"),Z.removeAttribute("data-lane"),$.push(Z)},clear:()=>{$.length=0}}},c1=1,B1=(j,$,q,Y=!1,J,Z,B,X)=>{let L=d1(),A=new Map,U=new Set,c=0,M="",z=-1,D={selected:!1,focused:!1},y=(i,k)=>{return D.selected=i,D.focused=k,D},H=`${q}-item ${q}-masonry-item`,O=`${q}-group-header`,P=`${q}-item--selected`,W=`${q}-item--focused`,G=(i,k)=>{if(typeof k==="string")i.innerHTML=k;else i.replaceChildren(k);x2(i)},E=(i,k,S)=>{i.classList.toggle(P,k),i.classList.toggle(W,S)},T=(i,k)=>{if(Y)i.style.transform=`translate(${Math.round(k.y)}px, ${Math.round(k.x)}px)`;else i.style.transform=`translate(${Math.round(k.x)}px, ${Math.round(k.y)}px)`},R=(i,k)=>{if(Y)i.style.width=`${k.size}px`,i.style.height=`${k.crossSize}px`;else i.style.width=`${k.crossSize}px`,i.style.height=`${k.size}px`},w=(i,k,S,u,K)=>{let V=L.acquire(),N=k.__groupHeader,v=y(u,K);if(V.className=N?O:H,V.dataset.index=String(i),V.dataset.id=String(k.id),V.dataset.lane=String(S.lane),N)V.setAttribute("role","presentation"),V.removeAttribute("aria-selected"),V.removeAttribute("aria-setsize"),V.removeAttribute("aria-posinset"),V.removeAttribute("id");else if(X===!0){if(V.setAttribute("role","option"),V.ariaSelected=String(u),Z)V.id=`${Z}-item-${i}`;if(J){let l=J();if(l!==z)z=l,M=String(l);V.setAttribute("aria-setsize",M);let I=B?B(i):i+1;V.setAttribute("aria-posinset",String(I))}}else if(V.setAttribute("role","listitem"),V.removeAttribute("aria-selected"),J){let l=J();if(l!==z)z=l,M=String(l);V.setAttribute("aria-setsize",M);let I=B?B(i):i+1;V.setAttribute("aria-posinset",String(I))}R(V,S);let s=$(k,i,v);return G(V,s),E(V,u,K),T(V,S),{element:V,lastItem:k,lastSelected:u,lastFocused:K,lastY:S.y,lastX:S.x,lastSize:S.size,lastCrossSize:S.crossSize,lastSeenFrame:c}},g=(i,k,S,u)=>{c++,U.clear();for(let V=0;V<k.length;V++)U.add(k[V].index);let K=null;for(let V=0;V<k.length;V++){let N=k[V],v=N.index,s=i(v);if(!s)continue;let l=S.has(s.id),I=v===u,Q=A.get(v);if(Q){let _=Q.lastItem!==s,h=Q.lastSelected!==l,x=Q.lastFocused!==I,f=Q.lastY!==N.y||Q.lastX!==N.x,F=Q.lastSize!==N.size||Q.lastCrossSize!==N.crossSize;if(_){let b=y(l,I),m=$(s,v,b);if(G(Q.element,m),Q.element.dataset.id=String(s.id),Q.lastItem=s,!s.__groupHeader){let n=B?B(v):v+1;Q.element.setAttribute("aria-posinset",String(n))}}if(_||h||x)E(Q.element,l,I),Q.element.ariaSelected=String(l),Q.lastSelected=l,Q.lastFocused=I;if(F)R(Q.element,N),Q.lastSize=N.size,Q.lastCrossSize=N.crossSize;if(f)T(Q.element,N),Q.lastY=N.y,Q.lastX=N.x}else{let _=w(v,s,N,l,I);if(!K)K=document.createDocumentFragment();K.appendChild(_.element),A.set(v,_)}}if(K)j.appendChild(K);for(let[V,N]of A)if(U.has(V))N.lastSeenFrame=c;else if(c-N.lastSeenFrame>c1)L.release(N.element),A.delete(V)},C=()=>{for(let i of A.values())L.release(i.element);A.clear(),j.innerHTML=""};return{render:g,getElement:(i)=>A.get(i)?.element,updateItemClasses:(i,k,S)=>{let u=A.get(i);if(!u)return;let K=u.lastSelected!==k,V=u.lastFocused!==S;if(K||V)E(u.element,k,S),u.lastSelected=k,u.lastFocused=S},sortDOM:()=>{K1(j,A.keys(),(i)=>A.get(i)?.element)},clear:C,destroy:()=>{C(),L.clear()}}};var l1=100,r1=new Set;function L0(j){if(!j.columns||j.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let $,q=null,Y,J=null,Z,B,X,L=[],A=-1,U=-1,c=!0,M=-1,z=0,D=0,y=0,H=0,O={columnWidth:0,columns:0,gap:0,containerWidth:0},P=[],W=(N)=>P[N],G=null,E=null,T=!1;function R(){if(T||!J)return;T=!0,G=J.getMethod("_getSelectedIds")??null,E=J.getMethod("_getFocusedIndex")??null}let w=[],g=new Int32Array(0),C=[];function a(){let N=$.columns,v=L.length;w=Array(N);for(let s=0;s<N;s++)w[s]=[];if(g.length<v)g=new Int32Array(v);for(let s=0;s<v;s++){let l=L[s],I=w[l.lane].length;w[l.lane].push(s),g[s]=I}C=Array(N);for(let s=0;s<N;s++){let l=w[s],I=new Float64Array(l.length);for(let Q=0;Q<l.length;Q++){let _=L[l[Q]];I[Q]=_.y+_.size*0.5}C[s]=I}}function d(N,v){let s=N.length;if(!s)return-1;let l=0,I=s-1;while(l<I){let Q=l+I>>1;if(N[Q]<v)l=Q+1;else I=Q}if(l>0&&Math.abs(N[l-1]-v)<=Math.abs(N[l]-v))return l-1;return l}function o(N,v,s){let l=L[N];if(!l)return N;let I=l.lane,Q=$.columns,_=g[N],h=w[I];switch(Z?v==="ArrowDown"?"ArrowRight":v==="ArrowUp"?"ArrowLeft":v==="ArrowRight"?"ArrowDown":v==="ArrowLeft"?"ArrowUp":v:v){case"ArrowDown":if(_+1<h.length)return h[_+1];return N;case"ArrowUp":if(_>0)return h[_-1];return N;case"ArrowRight":{if(I>=Q-1)return N;let f=I+1,F=l.y+l.size*0.5,b=w[f];if(!b.length)return N;let m=d(C[f],F);return m>=0?b[m]:N}case"ArrowLeft":{if(I<=0)return N;let f=I-1,F=l.y+l.size*0.5,b=w[f];if(!b.length)return N;let m=d(C[f],F);return m>=0?b[m]:N}case"Home":return 0;case"End":{let f=w[Q-1];return f.length>0?f[f.length-1]:s-1}case"PageDown":{let f=Y.containerSize,F=l.size>0?l.size:150,b=Math.max(1,Math.floor(f/F)),m=Math.min(_+b,h.length-1);return h[m]}case"PageUp":{let f=Y.containerSize,F=l.size>0?l.size:150,b=Math.max(1,Math.floor(f/F)),m=Math.max(0,_-b);return h[m]}}return N}let i=null;function k(){if(j.size)return(N)=>j.size(N,O);if(i!==null&&typeof i==="function")return(N)=>i(N,O);return(N)=>J.sizeCache.getSize(N)}function S(){let{columns:N,gap:v}=$;O.containerWidth=$.containerSize,O.columns=N,O.gap=v,O.columnWidth=Math.max(0,($.containerSize-(N-1)*v)/N)}function u(){if(!J)return;S();let N=Y.totalItems;L=$.calculateLayout(N,k()),M=N,a();let v=$.getTotalSize(L)+H;J.updateContentSize(v)}function K(){if(Y.destroyed||!J||!q)return;if(Y.totalItems!==M)u();R();let{scrollPosition:N,containerSize:v}=Y;if(!c&&N===A&&v===U)return;if(A=N,U=v,c=!1,v<=0||L.length===0)return;let s=Math.max(0,N-X),l=N+v+X,I=$.getVisibleItems(L,s,l),Q=G?.()??r1,_=E?.()??-1;P=J.getItems(),q.render(W,I,Q,_);let h=I.length,x=h>0?I[0].index:0,f=h>0?I[h-1].index:0;Y.prevRangeStart=x,Y.prevRangeEnd=f,Y.renderPending=!1;let F=Math.min(h,Y.capacity);Y.visibleCount=F,Y.startIndex=x;for(let b=0;b<F;b++){let m=I[b];Y.visibleIndices[b]=m.index,Y.visibleOffsets[b]=m.y,Y.visibleSizes[b]=m.size}}function V(){if(Y.destroyed)return;u(),Y.prevRangeStart=-1,Y.prevRangeEnd=-1,Y.renderPending=!0,c=!0,K()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(N){if(J=N,Y=N.getState(),i=N.rawSizeSpec,Z=N.config.axis.primary==="x",B=N.config.classPrefix,X=N.config.overscan*l1,N.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");z=N.config.crossAxisPadding,D=N.config.crossPadStart,y=N.config.startPadding,H=N.config.endPadding;let v=Y.crossSize-z;$=Z1({columns:j.columns,gap:j.gap??0,containerSize:v,crossOffset:D,mainOffset:y}),q=B1(N.dom.content,N.template,B,Z,()=>Y.totalItems),N.dom.root.classList.add(`${B}--masonry`),N.setRenderFn(K,V),u(),N.registerMethod("getMasonryLayout",()=>$),N.registerMethod("updateMasonry",(s)=>{if(s.columns!==void 0&&s.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(s.gap!==void 0&&s.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let l={};if(s.columns!==void 0)l.columns=s.columns;if(s.gap!==void 0)l.gap=s.gap;$.update(l),q?.clear(),V()}),N.registerMethod("scrollToIndex",(s,l="start")=>{let I=L[s];if(!I)return;let Q=typeof l==="string"?l:l.align??"start",_=typeof l==="object"?l.behavior:void 0,h=typeof l==="object"?l.duration:void 0,x=Y.containerSize,f=$.getTotalSize(L)+H,F=Math.max(0,f-x),b=I.y;if(Q==="center")b=I.y-x/2+I.size/2;else if(Q==="end"){if(b=I.y-x+I.size,s>=Y.totalItems-1&&I.y+I.size>F)b=F}if(b=Math.max(0,Math.min(b,F)),_==="smooth"&&h&&h>0)N.smoothScrollTo(b,h);else N.scrollTo(b)}),N.registerMethod("_scrollItemIntoView",(s)=>{let l=L[s];if(!l)return;let{scrollPosition:I,containerSize:Q}=Y,_=$.getTotalSize(L)+H,h=Math.max(0,_-Q),x=l.y,f=x+l.size;if(x-y<I)N.scrollTo(Math.max(0,x-y));else if(f+H>I+Q){let F=w[$.columns-1];if(F&&F.length>0&&s===F[F.length-1]&&x>=h)N.scrollTo(h);else N.scrollTo(Math.min(f+H-Q,h))}}),N.setNavConfig({total:()=>Y.totalItems,navigate:o}),N.registerDestroyHandler(()=>{q?.destroy(),q=null,N.dom.root.classList.remove(`${B}--masonry`)})},hooks:{onResize(N,v){if(!$||!J)return;let s=Y.crossSize-z;if(Math.abs(s-$.containerSize)<1)return;$.update({containerSize:s}),q?.clear(),V()},onIdle(){q?.sortDOM()}},destroy(){q?.destroy(),q=null,L=[],J=null}}}var U1=(j={})=>{let{chunkSize:$=100,maxCachedItems:q=5000,evictionBuffer:Y=200,onEvict:J}=j,Z=new Map,B=0,X=0,L=(u)=>{let K=Z.get(u);if(!K)K={items:Array($),count:0,lastAccess:Date.now()},Z.set(u,K);else K.lastAccess=Date.now();return K},A=(u)=>{return Math.floor(u/$)},U=(u)=>{return u%$},c=()=>B,M=(u)=>{B=u},z=(u)=>{if(u<0||u>=B)return;let K=A(u),V=Z.get(K);if(!V)return;return V.items[U(u)]},D=(u)=>{if(u<0||u>=B)return!1;let K=A(u),V=Z.get(K);if(!V)return!1;return V.items[U(u)]!==void 0},y=(u,K)=>{let V=A(u),N=L(V),v=U(u),s=N.items[v]===void 0;if(N.items[v]=K,s)N.count++,X++;if(u>=B)B=u+1},H=(u,K)=>{for(let V=0;V<K.length;V++){let N=K[V];if(N!==void 0)y(u+V,N)}},O=(u,K)=>{if(u<0||u>B)return;let V=A(u),N=Array.from(Z.keys()).filter((Q)=>Q>=V).sort((Q,_)=>Q-_),v=[];for(let Q of N){let _=Z.get(Q),h=Q*$;for(let x=0;x<$;x++){if(_.items[x]===void 0)continue;let f=h+x;if(f<u)continue;v.push({oldIndex:f,item:_.items[x]})}}for(let{oldIndex:Q}of v){let _=A(Q),h=Z.get(_);if(!h)continue;let x=U(Q);if(h.items[x]!==void 0){if(h.items[x]=void 0,h.count--,X--,h.count===0)Z.delete(_)}}B++;for(let{oldIndex:Q,item:_}of v){let h=Q+1,x=A(h),f=L(x),F=U(h);f.items[F]=_,f.count++,X++}let s=A(u),l=L(s),I=U(u);l.items[I]=K,l.count++,X++},P=(u)=>{if(u<0||u>=B)return!1;let K=A(u),V=Z.get(K),N=U(u);if(!(V!==void 0&&V.items[N]!==void 0))return!1;let s=K,l=Array.from(Z.keys()).filter((Q)=>Q>=s).sort((Q,_)=>Q-_),I=[];for(let Q of l){let _=Z.get(Q),h=Q*$;for(let x=0;x<$;x++){if(_.items[x]===void 0)continue;let f=h+x;if(f<=u)continue;I.push({oldIndex:f,item:_.items[x]})}}if(V.items[N]=void 0,V.count--,X--,V.count===0)Z.delete(K);for(let{oldIndex:Q}of I){let _=A(Q),h=Z.get(_);if(!h)continue;let x=U(Q);if(h.items[x]!==void 0){if(h.items[x]=void 0,h.count--,X--,h.count===0)Z.delete(_)}}for(let{oldIndex:Q,item:_}of I){let h=Q-1,x=A(h),f=L(x),F=U(h);f.items[F]=_,f.count++,X++}return B--,!0},W=(u,K)=>{let V=[];for(let N=u;N<=K&&N<B;N++)V.push(z(N));return V},G=(u,K)=>{for(let V=u;V<=K&&V<B;V++)if(!D(V))return!1;return!0},E=()=>{let u=[],K=null,V=Array.from(Z.keys()).sort((N,v)=>N-v);for(let N of V){let v=Z.get(N);if(!v)continue;let s=N*$;for(let l=0;l<$;l++){let I=s+l;if(I>=B)break;if(v.items[l]!==void 0)if(K===null)K={start:I,end:I};else if(I===K.end+1)K.end=I;else u.push(K),K={start:I,end:I};else if(K!==null)u.push(K),K=null}}if(K!==null)u.push(K);return u},T=(u,K)=>{let V=[],N=null;for(let v=u;v<=K&&v<B;v++)if(!D(v))if(N===null)N={start:v,end:v};else N.end=v;else if(N!==null)V.push(N),N=null;if(N!==null)V.push(N);return V},R=(u)=>{return Z.has(u)},w=(u)=>{let K=Z.get(u);if(!K)return!1;let V=u*$,N=Math.min($,B-V);return K.count>=N},g=(u)=>{let K=Z.get(u);if(K)K.lastAccess=Date.now()},C=(u,K)=>{if(u>K||Z.size===0)return;let V=Date.now(),N=A(Math.max(0,u)),v=A(Math.min(B-1,K));for(let s=N;s<=v;s++){let l=Z.get(s);if(l)l.lastAccess=V}},a=(u,K)=>{if(X<=q)return 0;let V=Math.max(0,u-Y),N=Math.min(B-1,K+Y),v=A(V),s=A(N),l=0,I=[];for(let[Q,_]of Z)if(Q<v||Q>s)l+=_.count,I.push(Q),X-=_.count,Z.delete(Q);if(l>0&&J)J(l,I);return l},d=()=>{if(X<=q)return 0;let u=Array.from(Z.entries()).sort(([,N],[,v])=>N.lastAccess-v.lastAccess),K=0,V=[];for(let[N,v]of u){if(X<=q)break;K+=v.count,X-=v.count,V.push(N),Z.delete(N)}if(K>0&&J)J(K,V);return K},o=()=>{return{totalItems:B,cachedItems:X,cachedChunks:Z.size,chunkSize:$,maxCachedItems:q,memoryEfficiency:B>0?1-X/B:1}},i=()=>X,k=()=>{Z.clear(),X=0};return{chunkSize:$,maxCachedItems:q,getTotal:c,setTotal:M,get:z,has:D,set:y,setRange:H,insert:O,delete:P,getRange:W,isRangeLoaded:G,getLoadedRanges:E,findUnloadedRanges:T,getChunkIndex:A,isChunkLoaded:R,isChunkFullyLoaded:w,touchChunk:g,touchChunksForRange:C,evictDistant:a,evictToLimit:d,getStats:o,getCachedCount:i,clear:k,reset:()=>{k(),B=0}}};var N1=(j={})=>{let{maskCharacter:$=f0,maxSampleSize:q=I0}=j,Y=[],J=!1,Z=(U)=>{if(J||U.length===0)return;let c=Math.min(U.length,q);for(let M=0;M<c;M++){let z=U[M];if(!z||typeof z!=="object")continue;let D={},y=!1;for(let[H,O]of Object.entries(z)){if(H.startsWith("_")||H==="id")continue;D[H]=String(O??"").length,y=!0}if(y)Y.push(D)}J=!0},B=()=>J,X=(U)=>{let c={id:`${f2}${U}`,[Z0]:!0,_index:U};if(Y.length===0)return c.label=$.repeat(12),c;let M=Y[U%Y.length];for(let[z,D]of Object.entries(M))c[z]=$.repeat(Math.max(1,D));return c};return{analyzeStructure:Z,hasAnalyzedStructure:B,generate:X,generateRange:(U,c)=>{let M=[];for(let z=U;z<=c;z++)M.push(X(z));return M},clear:()=>{Y=[],J=!1}}},q0=(j)=>{if(!j||typeof j!=="object")return!1;return j[Z0]===!0};var s1=50,W1=(j={})=>{let{adapter:$,initialItems:q,initialTotal:Y,storage:J,placeholder:Z,pageSize:B=s1,maxConcurrent:X=0,onStateChange:L,onDataChange:A,onItemsLoaded:U,onItemsEvicted:c}=j,M=U1({...J,onEvict:(J2,t)=>{c?.(J2),C(),g()}}),z=null,D=()=>{if(!z)z=N1(Z);return z},y=new Map,H=!1,O,P=!0,W,G,E=[],T=0,R=new Map,w=()=>{for(let J2 of R.values())J2[1].abort();R.clear()},g=()=>{L?.(V())},C=()=>{A?.()},a=()=>{y.clear();let J2=M.getLoadedRanges();for(let t of J2)for(let $2=t.start;$2<=t.end;$2++){let B2=M.get($2);if(B2&&!q0(B2))y.set(B2.id,$2)}},d=(J2,t)=>{if(!q0(t))y.set(t.id,J2)},o=(J2)=>{y.delete(J2)},i=(J2,t)=>{return`${J2}-${t}`},k=()=>M.getTotal(),S=()=>M.getCachedCount(),u=()=>H,K=()=>P,V=()=>({total:M.getTotal(),cached:M.getCachedCount(),isLoading:H,pendingRanges:E,error:O,hasMore:P,cursor:W}),N=()=>M,v=()=>D(),s=(J2)=>{let t=M.get(J2);if(t!==void 0)return t;if(J2>=0&&J2<M.getTotal())return D().generate(J2);return},l=(J2)=>{let t=y.get(J2);if(t===void 0)return;return M.get(t)},I=(J2)=>{return y.get(J2)??-1},Q=(J2)=>{let t=M.get(J2);return t!==void 0&&!q0(t)},_=(J2,t)=>{let $2=[],B2=M.getTotal();M.touchChunksForRange(J2,Math.min(t,B2-1));for(let U2=J2;U2<=t&&U2<B2;U2++){let Y2=M.get(U2);if(Y2!==void 0)$2.push(Y2);else $2.push(D().generate(U2))}return $2},h=(J2)=>{M.setTotal(J2),P=M.getCachedCount()<J2,C(),g()},x=(J2,t=0,$2)=>{if($&&J2.length>0){let B2=D();if(!B2.hasAnalyzedStructure())B2.analyzeStructure(J2)}for(let B2=0;B2<J2.length;B2++){let U2=J2[B2];if(U2!==void 0){let Y2=t+B2;M.set(Y2,U2),d(Y2,U2)}}if($2!==void 0)M.setTotal($2);else if(t+J2.length>M.getTotal())M.setTotal(t+J2.length);if(M.getCachedCount()>=M.getTotal()&&M.getTotal()>0)P=!1;C(),g(),U?.(J2,t,M.getTotal())},f=(J2,t)=>{let $2=M.get(J2);if(!$2)return!1;let B2=$2.id,U2={...$2,...t};if(M.set(J2,U2),t.id!==void 0&&t.id!==B2)o(B2);return d(J2,U2),C(),g(),!0},F=(J2,t)=>{M.insert(t,J2),a(),w(),C(),g()},b=(J2)=>{let t=y.get(J2);if(t===void 0)return!1;if(!M.delete(t))return!1;return a(),w(),C(),g(),!0},m=async(J2,t)=>{if(!$)return;let $2=M.chunkSize,B2=Math.floor(J2/$2),U2=Math.floor(t/$2),Y2=$2*2;for(let[X2,b2]of R){let F2=X2.indexOf("-"),y2=parseInt(X2.slice(0,F2),10);if(Math.abs(y2-J2)>Y2)b2[1].abort(),R.delete(X2)}let A2=[],L2=[];for(let X2=B2;X2<=U2;X2++){let b2=X2*$2,F2=b2+$2-1,y2=i(b2,F2);if(M.isChunkFullyLoaded(X2))continue;let k2=R.get(y2);if(k2)L2.push(k2[0]);else A2.push({start:b2,end:F2})}if(A2.length===0){if(L2.length>0)await Promise.all(L2);return}if(X>0){let X2=R.size+A2.length;if(X2>X){let b2=(J2+t)/2,F2=Math.min(X2-X,R.size);while(F2>0){let D2=null,k2=-1,H2=null;for(let[P2,W2]of R){let O2=P2.indexOf("-"),R2=parseInt(P2.slice(0,O2),10),z2=parseInt(P2.slice(O2+1),10),K2=Math.abs((R2+z2)/2-b2);if(K2>k2)k2=K2,D2=P2,H2=W2[1]}if(D2)H2.abort(),R.delete(D2);F2--}let y2=X-R.size;if(A2.length>y2)A2.sort((D2,k2)=>{let H2=Math.abs((D2.start+D2.end)/2-b2),P2=Math.abs((k2.start+k2.end)/2-b2);return H2-P2}),A2.length=Math.max(0,y2)}}if(A2.length===0){if(L2.length>0)await Promise.all(L2);return}for(let X2 of A2){let b2=i(X2.start,X2.end),F2=new AbortController,y2=(async()=>{E.push(X2),H=!0,O=void 0,g();try{let D2=X2.end-X2.start+1,k2={offset:X2.start,limit:D2,cursor:X2.start===G?W:void 0,signal:F2.signal},H2=await $.read(k2);if(x(H2.items,X2.start,H2.total),H2.cursor)W=H2.cursor,G=X2.start+H2.items.length;let P2=X2.start+H2.items.length;if(P2>=T){if(T=P2,H2.hasMore!==void 0)P=H2.hasMore;else if(H2.total!==void 0)P=P2<H2.total}}catch(D2){if(D2?.name==="AbortError")return;O=D2 instanceof Error?D2:Error(String(D2))}finally{R.delete(b2);let D2=E.findIndex((k2)=>k2.start===X2.start&&k2.end===X2.end);if(D2>=0)E.splice(D2,1);H=R.size>0,g()}})();R.set(b2,[y2,F2]),L2.push(y2)}await Promise.all(L2)},e=async(J2,t)=>{if(M.isRangeLoaded(J2,t))return;await m(J2,t)},n=async()=>{if(!$)return;await m(0,B-1)},Q2=async()=>{if(!$||H||!P)return!1;let J2=M.getCachedCount(),t=M.getTotal(),$2=J2,B2=Math.min($2+B-1,t>0?t-1:$2+B-1);if($2>=t&&t>0)return P=!1,!1;return await m($2,B2),M.getCachedCount()>J2},Z2=async()=>{if(M.clear(),M.setTotal(0),y.clear(),z)z.clear();w(),E=[],H=!1,W=void 0,G=void 0,P=!0,T=0,O=void 0,C(),g()},G2=(J2,t)=>{if(M.evictDistant(J2,t)>0)a()},M2=()=>{M.clear(),y.clear(),W=void 0,G=void 0,O=void 0,E=[],H=!1,C(),g()},N2=()=>{if(M.reset(),y.clear(),z)z.clear();W=void 0,G=void 0,P=!0,T=0,O=void 0,E=[],H=!1,C(),g()};if(q&&q.length>0)x(q,0,Y??q.length);else if(Y!==void 0)M.setTotal(Y),C(),g();return{getState:V,getTotal:k,getCached:S,getIsLoading:u,getHasMore:K,getStorage:N,getPlaceholders:v,getItem:s,getItemById:l,getIndexById:I,isItemLoaded:Q,getItemsInRange:_,setTotal:h,setItems:x,updateItem:f,insertItem:F,removeItem:b,loadRange:m,ensureRange:e,loadInitial:n,loadMore:Q2,reload:Z2,evictDistant:G2,clear:M2,reset:N2}};function F0(j){let{adapter:$,total:q,autoLoad:Y=!0,storage:J}=j,Z=j.loading?.cancelThreshold??v0,B=j.loading?.preloadThreshold??w0,X=j.loading?.preloadAhead??P0,L=j.loading?.maxConcurrent??C0,A,U,c,M,z,D,y=null,H=null,O=null,P=0,W=!1,G=-1,E=-1,T=J?.chunkSize??o2,R=()=>{if(y=null,H!==null)clearTimeout(H),H=null},w=(d,o)=>{return A.ensureRange(d,o)},g=(d,o=o2)=>{M.emit("load:start",{offset:d,limit:o})},C=(d)=>{M.emit("error",{error:d,context:"ensureRange"})},a=()=>{if(!y)return;y=null;let d={start:U.startIndex,end:U.startIndex+Math.max(0,U.visibleCount-1)};if(d.end<d.start)return;w(d.start,d.end).catch(C)};return{name:"data",priority:20,setup(d){U=d.getState(),c=d.sizeCache,M=d.emitter,z=d.dom,D=d.forceRender.bind(d);let o=null;d.setVirtualTotalFn(()=>o?.getTotal()??0),A=o=W1({adapter:$,...q!==void 0&&{initialTotal:q},pageSize:J?.chunkSize??o2,maxConcurrent:L,...J&&{storage:{...J.chunkSize!==void 0&&{chunkSize:J.chunkSize},...J.maxCachedItems!==void 0&&{maxCachedItems:J.maxCachedItems},...J.evictionBuffer!==void 0&&{evictionBuffer:J.evictionBuffer}}},onDataChange:()=>{if(U.initialized){let k=A.getTotal();U.totalItems=k;let S=c.getTotal();if(k!==S)c.rebuild(k);d.updateContentSize(c.getTotalSize()),d.renderIfNeeded()}},onItemsLoaded:(k)=>{if(U.initialized)D(),M.emit("load:end",{items:k,total:A.getTotal()})}}),d.setGetItemFn((k)=>A.getItem(k)),d.setRemoveItemFn((k)=>{let S=A.getIndexById(k);if(S<0)return-1;if(!A.removeItem(k))return-1;return S}),d.setInsertItemFn((k,S)=>{A.insertItem(k,S)}),d.setUpdateItemFn((k,S)=>{let u=A.getIndexById(k);if(u<0)return!1;return A.updateItem(u,S)}),d.registerMethod("reload",async()=>{if(y=null,G=-1,E=-1,d.forceRender(),await A.reload(),d.scrollTo(0),Y)g(0),await A.loadInitial(),d.forceRender()}),d.registerMethod("loadVisibleRange",async()=>{y=null,d.forceRender();let k=A.getTotal();if(U.visibleCount>0&&U.startIndex<k){let S=Math.min(U.startIndex+U.visibleCount-1,k-1);g(U.startIndex,S-U.startIndex+1),await w(U.startIndex,S)}}),d.registerMethod("getTotal",()=>{return A.getTotal()}),d.registerMethod("setTotal",(k)=>{A.setTotal(k)}),d.registerMethod("_getTotal",()=>A.getTotal()),d.registerMethod("_setTotal",(k)=>{A.setTotal(k)}),d.registerMethod("_cancelAutoLoad",()=>{W=!0}),d.registerMethod("_getLoadedItem",(k)=>{return A.getStorage().get(k)}),d.registerMethod("_getLoadedCount",()=>A.getCached()),M.on("load:start",()=>{z.root.setAttribute("aria-busy","true")}),M.on("load:end",()=>{z.root.removeAttribute("aria-busy")}),d.registerDestroyHandler(()=>{if(O!==null)clearTimeout(O),O=null;R()}),M.on("velocity:change",({velocity:k})=>{P=Math.abs(k)});let i=()=>{if(U.destroyed)return;if(U.visibleCount>0&&U.startIndex<A.getTotal()){let k=Math.min(U.startIndex+U.visibleCount-1,A.getTotal()-1);w(U.startIndex,k).catch(C)}a()};if(window.addEventListener("online",i),d.registerDestroyHandler(()=>{window.removeEventListener("online",i)}),Y)queueMicrotask(()=>{if(W)return;g(0),A.loadInitial().catch((k)=>{M.emit("error",{error:k,context:"loadInitial"})})});else if(q!==void 0)A.setTotal(q)},hooks:{onAfterScroll(){if(U.destroyed)return;let d=U.startIndex+Math.max(0,U.visibleCount-1);if(P>Z){if(H!==null)clearTimeout(H),H=null;y={start:U.startIndex,end:d};return}if(P>B){let k=Math.floor(U.startIndex/T),S=Math.floor(d/T);if(k!==G||S!==E){if(G=k,E=S,d>=U.startIndex)w(U.startIndex,d).catch(C)}let u=U.startIndex,K=d,V=U.scrollDirection;if(V>0)K=Math.min(K+X,A.getTotal()-1);else if(V<0)u=Math.max(0,u-X);if(y={start:u,end:K},H!==null)clearTimeout(H);H=setTimeout(()=>{if(H=null,U.destroyed||!y)return;let{start:N,end:v}=y;if(y=null,v>=N)w(N,v).catch(C)},100);return}R();let o=Math.floor(U.startIndex/T),i=Math.floor(d/T);if(o!==G||i!==E){if(G=o,E=i,d>=U.startIndex)w(U.startIndex,d).catch(C)}},onIdle(){if(U.destroyed)return;P=0,G=-1,E=-1,a(),R()}},destroy(){if(O!==null)clearTimeout(O);R()}}}var O0=(j,$)=>{let q=0,Y=j.length-1;while(q<Y){let J=q+Y+1>>>1;if(j[J].headerLayoutIndex<=$)q=J;else Y=J-1}return q},V1=(j,$)=>{let q=0,Y=j.length-1;while(q<Y){let J=q+Y+1>>>1;if(j[J].firstDataIndex<=$)q=J;else Y=J-1}return q},_1=(j,$,q)=>{if(j===0)return[];let Y=[],J=null,Z=0,B=0;for(let X=0;X<j;X++){let L=q?.(X);if(!L)continue;let A=$(X,L);if(J===null)J=A,Z=0;else if(A!==J){let U=X-Z;Y.push({key:J,groupIndex:Y.length,headerLayoutIndex:B,firstDataIndex:Z,count:U}),B=B+1+U,J=A,Z=X}}if(J!==null)Y.push({key:J,groupIndex:Y.length,headerLayoutIndex:B,firstDataIndex:Z,count:j-Z});return Y};var M1=(j,$,q)=>{let Y=_1(j,$.getGroupForIndex,q),J=j+Y.length,Z=$.header?.height??$.header?.width??$.headerHeight;return{get totalEntries(){return J},get groupCount(){return Y.length},get groups(){return Y},getEntry:(z)=>{if(Y.length===0)return{type:"item",dataIndex:z,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let D=O0(Y,z),y=Y[D];if(z===y.headerLayoutIndex)return{type:"header",group:y};let H=z-y.headerLayoutIndex-1;return{type:"item",dataIndex:y.firstDataIndex+H,group:y}},layoutToDataIndex:(z)=>{if(Y.length===0)return z;let D=O0(Y,z),y=Y[D];if(z===y.headerLayoutIndex)return-1;let H=z-y.headerLayoutIndex-1;return y.firstDataIndex+H},dataToLayoutIndex:(z)=>{if(Y.length===0)return z;let D=V1(Y,z),y=Y[D],H=z-y.firstDataIndex;return y.headerLayoutIndex+1+H},getGroupAtLayoutIndex:(z)=>{if(Y.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=O0(Y,z);return Y[D]},getGroupAtDataIndex:(z)=>{if(Y.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=V1(Y,z);return Y[D]},getHeaderHeight:typeof Z==="number"?(z)=>Z:(z)=>{let D=Y[z];if(!D)return 0;return Z(D.key,z)},rebuild:(z,D)=>{Y=_1(z,$.getGroupForIndex,D??q),J=z+Y.length}}};var E0=(j,$,q,Y,J=0)=>{let Z=q?"width":"height",B=document.createElement("div");return B.className=`${$}-sticky-header`,B.setAttribute("role","presentation"),B.setAttribute("aria-hidden","true"),B.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(q?`top:0;bottom:0;left:${J||0}px`:`top:${J||0}px`),B.style[Z]=`${Y}px`,j.insertBefore(B,j.firstChild),B},G1=(j,$,q,Y,J,Z=!1,B=0,X,L)=>{let A=Z?"width":"height",U=Z?"height":"width",c=Z?"X":"Y",M=(f,F)=>{f.style[A]=`${F}px`},z=L??E0(j,J,Z,0,B),D=()=>{let f=document.createElement("div");return f.className="sticky-group",f.style.position="absolute",f.style.willChange="transform",f.style[U]="100%",f},y=D(),H=D();z.append(y,H);let O=y,P=H,W=$.groups,G=[],E=[],T=[],R=0,w=()=>{W=$.groups,R=W.length,G=Array(R),E=Array(R),T=Array(R);let f=X?X():1;for(let F=0;F<R;F++)G[F]=q.getOffset(W[F].headerLayoutIndex)*f,E[F]=$.getHeaderHeight(F),T[F]=E[F]*f};w();let g=-1,C=0,a=0,d=-1,o=!1,i=0,k=!1,S=(f,F)=>{Y(f,F);let b=E[F];return M(f,b),b},u=(f)=>{f.replaceChildren(),f.style.transform=""},K=(f)=>{if(f===g)return;if(g=f,C=0,a=0,f<0||f>=R){u(O);return}C=S(O,f),a=T[f],M(z,C),O.style.transform=""},V=(f)=>{if(f===i)return;i=f;let F=Math.round(f);O.style.transform=`translate${c}(${F}px)`,P.style.transform=`translate${c}(${F+C}px)`},N=()=>{i=0,O.style.transform="",P.style.transform=""},v=()=>{if(!k)return;let f=O;O=P,P=f,g=d,C=g>=0?E[g]:0,a=g>=0?T[g]:0,M(z,C),u(P),d=-1,k=!1,N()},s=()=>{if(!k)return;u(P),d=-1,k=!1,N()},l=!!L,I=()=>{if(o)return;if(o=!0,l)z.style.visibility="";else z.style.display=""},Q=()=>{if(!o)return;if(o=!1,l)z.style.visibility="hidden";else z.style.display="none";u(O),g=-1,C=0,a=0,s()},_=(f)=>{if(R===0){Q();return}if(f<G[0]){Q();return}let F=0,b=R-1;while(F<b){let e=F+b+1>>>1;if(G[e]+T[e]<=f)F=e;else b=e-1}if(!o)I();K(F);let m=F+1;if(m<R){let e=G[m]-f;if(e<=0&&e>-a){if(d!==m||!k)d=m,S(P,m),k=!0;let n=a>0?e/a*C:e;V(n)}else if(e<=-a){if(k)v()}else if(k)s()}else if(k)s()},h=()=>{w();let f=g;if(g=-1,C=0,a=0,f>=0)K(f)},x=()=>{z.remove(),g=-1,C=0,a=0,d=-1,o=!1,k=!1};if(!L)z.style.display="none";return{update:_,refresh:h,show:I,hide:Q,destroy:x}};var g2={selected:!1,focused:!1},X1=typeof process<"u"&&process.env?.NODE_ENV!=="production";function R0(j){if(!j.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let $=j.header?.height??j.header?.width??j.headerHeight;if($==null||typeof $==="number"&&$<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let q=j.header?.template??j.headerTemplate;if(!q)throw Error("[vlist] groups: header.template is required");let Y=q,J,Z=null,B,X,L,A,U,c,M,z=null,D,y,H,O=null,P,W,G=null,E=null,T=new Map,R=new Set,w=new Map,g=-1,C=-1,a=!0,d=-1,o=0,i=null,k;function S(){return J.totalEntries}function u(){let Q=X.totalItems;if(Q===d)return;if(X1)console.log(`[groups] syncLayout: ${d} → ${Q}`);let _=d>0;d=Q,J.rebuild(Q,z??M),k(J.totalEntries);let h=B.getTotalSize();if(A.style[D?"width":"height"]=h+"px",Z)Z.refresh(),Z.update(X.scrollPosition);if(_)N();let x=G?.("_scrollbar:getInstance");if(x)x()?.updateBounds(h,X.containerSize)}function K(Q){let _=B.getOffset(Q);if(D)return`translate(${Math.round(_)}px, 0)`;return`translate(0, ${Math.round(_)}px)`}function V(Q,_){let h=B.getSize(_);if(D)Q.style.width=`${h}px`;else Q.style.height=`${h}px`}function N(){T.forEach((Q)=>{Q.remove();let _=Q.getAttribute("data-id");if(_)w.set(_,Q);else L.release(Q)}),T.clear(),R.clear()}function v(){if(w.size>0)w.forEach((Q)=>L.release(Q)),w.clear()}function s(Q,_,h,x){if(E===null)E=!!G?.("_getSelectedIds");if(_.type==="header"){let n=`__group_header_${_.group.groupIndex}`;if(Q.getAttribute("data-id")===n)return!0;Q.className=W,Q.setAttribute("role","presentation"),Q.removeAttribute("aria-selected"),Q.setAttribute("data-id",n);let Q2=Y(_.group.key,_.group.groupIndex);if(typeof Q2==="string")Q.innerHTML=Q2;else Q.innerHTML="",Q.appendChild(Q2);return!0}let f=_.dataIndex,F=M(f);if(!F)return Q.innerHTML="",!1;let b=F._isPlaceholder===!0,m=String(F.id);if(!b&&Q.getAttribute("data-id")===m){if(E)Q.id=`${y}-item-${x}`,Q.setAttribute("aria-posinset",String(f+1)),Q.setAttribute("aria-setsize",String(X.totalItems));return!0}if(Q.className=P,Q.setAttribute("role",E?"option":"listitem"),Q.setAttribute("data-id",m),E)Q.id=`${y}-item-${x}`,Q.setAttribute("aria-posinset",String(f+1)),Q.setAttribute("aria-setsize",String(X.totalItems));if(b)Q.classList.add(`${y}-item--placeholder`);if(h)h(x,g2);else g2.selected=!1,g2.focused=!1;let e=c(F,f,g2);if(typeof e==="string")Q.innerHTML=e;else Q.innerHTML="",Q.appendChild(e);return x2(Q),!b}function l(){if(X.destroyed)return;u();let{scrollPosition:Q,containerSize:_}=X;if(!a&&Q===g&&_===C)return;g=Q,C=_;let h=a;a=!1;let x=S();if(_<=0||x===0){if(T.size>0)T.forEach((t)=>{t.remove(),L.release(t)}),T.clear(),R.clear();return}let f=B.indexAtOffset(Q),F=B.indexAtOffset(Q+_);if(F<x-1)F++;f=Math.max(0,f),F=Math.min(x-1,Math.max(0,F));let b=Math.max(0,f-H),m=Math.min(x-1,F+H);if(b===X.prevRangeStart&&m===X.prevRangeEnd&&!X.renderPending)return;T.forEach((t,$2)=>{if($2<b||$2>m)t.remove(),L.release(t),T.delete($2),R.delete($2)});let e=O?.()??null,n=e?`${y}-item--selected`:"",Q2=e?`${y}-item--focused`:"",Z2=null;for(let t=b;t<=m;t++){let $2=T.get(t),B2=!1;if($2===void 0){let U2=J.getEntry(t);B2=U2.type==="header";let Y2;if(U2.type==="header")Y2=`__group_header_${U2.group.groupIndex}`;else{let L2=M(U2.dataIndex);if(L2&&L2._isPlaceholder!==!0)Y2=String(L2.id)}if(Y2!==void 0){let L2=w.get(Y2);if(L2)w.delete(Y2),$2=L2}if(!$2)$2=L.acquire();if($2.setAttribute("data-index",String(t)),s($2,U2,e,t))R.delete(t);else R.add(t);if(V($2,t),$2.style.transform=K(t),T.set(t,$2),!Z2)Z2=document.createDocumentFragment();Z2.appendChild($2)}else if(h&&R.has(t)){let U2=J.getEntry(t);if(U2.type==="item")if(s($2,U2,e,t))R.delete(t);else R.add(t)}else B2=$2.classList.contains(W);if(!B2&&e)if(e(t,g2),$2.classList.toggle(n,g2.selected),$2.classList.toggle(Q2,g2.focused),g2.selected)$2.setAttribute("aria-selected","true");else $2.removeAttribute("aria-selected")}if(Z2)A.appendChild(Z2);v();let G2=B.getTotalSize();A.style[D?"width":"height"]=G2+"px",X.prevRangeStart=b,X.prevRangeEnd=m,X.renderPending=!1;let M2=0,N2=0,J2=!1;for(let t=b;t<=m&&M2<X.capacity;t++){let $2=J.getEntry(t);if($2.type==="item"){if(!J2)N2=$2.dataIndex,J2=!0;X.visibleIndices[M2]=$2.dataIndex,X.visibleOffsets[M2]=B.getOffset(t),X.visibleSizes[M2]=B.getSize(t),M2++}}X.visibleCount=M2,X.startIndex=N2}function I(){if(X.destroyed)return;if(X1)console.log(`[groups] forceRender, placeholders: ${R.size}, rendered: ${T.size}`);let Q=i?.()??0;if(Q!==o){o=Q;let _=J.groups,h=_.length;J.rebuild(d,z??M);let x=J.groups,f=x.length!==h;if(!f){for(let F=0;F<h;F++)if(x[F].headerLayoutIndex!==_[F].headerLayoutIndex){f=!0;break}}if(f){k(J.totalEntries);let F=B.getTotalSize();if(A.style[D?"width":"height"]=F+"px",Z)Z.refresh(),Z.update(X.scrollPosition);let b=1/0,m=Math.min(h,x.length);for(let n=0;n<m;n++)if(x[n].headerLayoutIndex!==_[n].headerLayoutIndex){b=Math.min(x[n].headerLayoutIndex,_[n].headerLayoutIndex);break}if(x.length>h&&m<x.length)b=Math.min(b,x[m].headerLayoutIndex);else if(h>x.length&&m<h)b=Math.min(b,_[m].headerLayoutIndex);if(b<=X.prevRangeEnd)N();let e=G?.("_scrollbar:getInstance");if(e)e()?.updateBounds(F,X.containerSize)}}X.prevRangeStart=-1,X.prevRangeEnd=-1,X.renderPending=!0,a=!0,l()}return{name:"groups",priority:10,setup(Q){B=Q.sizeCache,X=Q.getState(),L=Q.pool,A=Q.dom.content,U=Q.dom.root,c=Q.template,D=Q.config.axis.primary==="x",y=Q.config.classPrefix,H=Q.config.overscan,M=Q.getItem.bind(Q),O=()=>Q.getItemStateFn(),G=Q.getMethod.bind(Q),E=null,P=`${y}-item`,W=`${y}-group-header`,queueMicrotask(()=>{let F=G?.("_getLoadedItem");if(F)z=F;let b=G?.("_getLoadedCount");if(b)i=b});let _=X.totalItems;J=M1(_,j,z??M),d=_;let h=typeof $==="number"?(F)=>$:(F)=>{let b=J.groups[F];if(!b)return 0;return $(b.key,F)},x=B.getSize,f=(F)=>{let b=J.getEntry(F);if(b.type==="header"){if(j.sticky!==!1&&b.group.groupIndex===0)return 0;return h(b.group.groupIndex)}return x(b.dataIndex)};if(Q.setSizeConfig(f),k=B.rebuild,B.rebuild=(F)=>{k(J.totalEntries)},B.rebuild(J.totalEntries),Q.setVirtualTotalFn(()=>J.totalEntries),U.classList.add(`${y}--grouped`),j.sticky!==!1){let F=(e,n)=>{let Q2=J.groups[n];if(!Q2)return;let Z2=Y(Q2.key,n);if(typeof Z2==="string")e.innerHTML=Z2;else e.replaceChildren(Z2)},b=J.getHeaderHeight(0),m=E0(U,y,D,b);if(Z=G1(U,J,B,F,y,D,0,void 0,m),Z.update(X.scrollPosition),!D)Q.dom.viewport.style.height=`calc(100% - ${b}px)`;else Q.dom.viewport.style.width=`calc(100% - ${b}px)`}Q.setRenderFn(l,I),Q.registerMethod("getGroupLayout",()=>J),Q.registerMethod("_dataToLayoutIndex",(F)=>J.dataToLayoutIndex(F)),Q.registerMethod("_layoutToDataIndex",(F)=>J.layoutToDataIndex(F)),Q.registerMethod("_getRenderedElement",(F)=>T.get(F)??null),Q.registerMethod("_isGroupHeader",(F)=>{return J.getEntry(F).type==="header"}),Q.registerMethod("scrollToIndex",(F,b="start")=>{let m=J.dataToLayoutIndex(F),e=J.totalEntries;if(e===0)return;let n=Math.max(0,Math.min(m,e-1)),Q2=B.getOffset(n),Z2=B.getSize(n),G2=X.containerSize,M2=B.getTotalSize(),N2=Math.max(0,M2-G2),J2=typeof b==="string"?b:b.align??"start",t=typeof b==="object"?b.behavior:void 0,$2=typeof b==="object"?b.duration:void 0,B2;switch(J2){case"center":B2=Q2-(G2-Z2)/2;break;case"end":B2=Q2-G2+Z2;break;default:B2=Q2}if(B2=Math.max(0,Math.min(B2,N2)),t==="smooth"&&$2&&$2>0)Q.smoothScrollTo(B2,$2);else Q.scrollTo(B2)}),Q.registerDestroyHandler(()=>{for(let[,F]of T)F.remove();if(T.clear(),R.clear(),Z)Z.destroy(),Z=null;U.classList.remove(`${y}--grouped`)})},hooks:{onAfterScroll(Q,_){if(Z)Z.update(Q)}},destroy(){if(Z)Z.destroy(),Z=null;T.clear(),R.clear(),w.clear()}}}var A1=(j,$=50,q=1/0,Y=!0)=>{let J=j,Z=[],B=0,X=()=>{Z=J.map((H,O)=>({def:H,index:O,width:0,minWidth:a1(H.minWidth??$,1),maxWidth:H.maxWidth??q,resizable:H.resizable??Y,offset:0}))},L=(H)=>{if(Z.length===0){B=0;return}let O=0,P=0;for(let W=0;W<Z.length;W++){let G=Z[W],E=G.def;if(E.width!==void 0)G.width=T0(E.width,G.minWidth,G.maxWidth),O+=G.width;else P++}if(P){let G=Math.max(0,H-O)/P;for(let E=0;E<Z.length;E++){let T=Z[E];if(T.def.width===void 0)T.width=T0(G,T.minWidth,T.maxWidth)}}A()},A=()=>{let H=0;for(let O=0;O<Z.length;O++){let P=Z[O];P.offset=H,H+=P.width}B=H},U=(H,O)=>{if(H<0||H>=Z.length)return 0;let P=Z[H];if(!P.resizable)return P.width;let W=T0(O,P.minWidth,P.maxWidth);return P.width=W,A(),W},c=(H)=>{return Z[H]},M=(H)=>{if(Z.length===0)return;if(H<0)return Z[0];if(H>=B)return Z[Z.length-1];let O=0,P=Z.length-1;while(O<P){let W=O+P>>>1,G=Z[W];if(H<G.offset)P=W-1;else if(H>=G.offset+G.width)O=W+1;else return G}return Z[O]},z=(H)=>{if(H<0||H>=Z.length)return 0;return Z[H].offset},D=(H)=>{if(H<0||H>=Z.length)return 0;return Z[H].width},y=(H)=>{J=H,X()};return X(),{get columns(){return Z},get totalWidth(){return B},resolve:L,updateColumns:y,resizeColumn:U,getColumn:c,getColumnAtX:M,getColumnOffset:z,getColumnWidth:D}},T0=(j,$,q)=>Math.min(q,Math.max($,j)),a1=(j,$)=>Math.max($,j);var D1=(j,$,q,Y,J,Z)=>{let B=document.createElement("div");B.setAttribute("role","rowgroup");let X=document.createElement("div");X.className=`${q}-table-header`,X.setAttribute("role","row"),X.setAttribute("aria-rowindex","1"),X.style.height=`${$}px`;let L=document.createElement("div");L.className=`${q}-table-header-scroll`,L.setAttribute("role","presentation"),X.appendChild(L),B.appendChild(X),j.insertBefore(B,j.firstChild),j.style.setProperty("--vlist-table-header-height",`${$}px`);let A=[],U=[],c=!0,M=null,z="asc",D=null,y=!1,H=-1,O=0,P=0,W=0,G=(K,V)=>{let N=document.createElement("div");N.className=`${q}-table-header-cell`,N.setAttribute("role","columnheader"),N.setAttribute("aria-colindex",String(V+1)),N.setAttribute("tabindex",V===0?"0":"-1"),N.dataset.columnKey=K.def.key;let v=K.def.align;if(v==="center")N.classList.add(`${q}-table-header-cell--center`);else if(v==="right")N.classList.add(`${q}-table-header-cell--right`);let s=document.createElement("div");s.className=`${q}-table-header-content`;let l=K.def.header?K.def.header(K.def):K.def.label;if(typeof l==="string")s.textContent=l;else s.appendChild(l);if(N.appendChild(s),K.def.sortable){let I=document.createElement("span");I.className=`${q}-table-header-sort`,I.setAttribute("aria-hidden","true"),N.appendChild(I),U.push(I),N.classList.add(`${q}-table-header-cell--sortable`)}else U.push(null);if(K.resizable){let I=document.createElement("div");I.className=`${q}-table-header-resize`,I.dataset.resizeIndex=String(V),N.appendChild(I)}return N},E=(K)=>{D=K,L.textContent="",A=[],U=[];let V=K.columns;for(let N=0;N<V.length;N++){let v=V[N],s=G(v,N);A.push(s),L.appendChild(s)}if(T(K),M)R(M,z)},T=(K)=>{D=K;let V=K.columns;L.style.width=`${K.totalWidth}px`;for(let N=0;N<A.length&&N<V.length;N++){let v=A[N],s=V[N];v.style.width=`${s.width}px`}},R=(K,V)=>{if(M=K,z=V,!D)return;let N=D.columns;for(let v=0;v<U.length&&v<N.length;v++){let s=U[v];if(!s)continue;if(N[v].def.key===K)s.textContent=V==="asc"?"▲":"▼",s.style.opacity="0.7",A[v].setAttribute("aria-sort",V==="asc"?"ascending":"descending");else s.textContent="",s.style.opacity="0",A[v].removeAttribute("aria-sort")}},w=(K)=>{L.style.transform=`translateX(${-K}px)`},g=(K)=>{let V=K.target;if(!V.dataset.resizeIndex)return;if(K.preventDefault(),K.stopPropagation(),H=+V.dataset.resizeIndex,!D)return;let N=D.getColumn(H);if(!N?.resizable)return;y=!0,O=K.clientX,P=N.width,j.classList.add(`${q}--col-resizing`),j.style.cursor="col-resize",V.classList.add(`${q}-table-header-resize--active`),V.setPointerCapture(K.pointerId),V.addEventListener("pointermove",C),V.addEventListener("pointerup",a),V.addEventListener("pointercancel",a)},C=(K)=>{if(!y||!D)return;let V=K.clientX-O;if(Math.abs(V)<1)return;let N=Math.max(0,P+V);Y(H,N)},a=(K)=>{if(!y)return;let V=K.target;V.removeEventListener("pointermove",C),V.removeEventListener("pointerup",a),V.removeEventListener("pointercancel",a);try{V.releasePointerCapture(K.pointerId)}catch{}V.classList.remove(`${q}-table-header-resize--active`),j.classList.remove(`${q}--col-resizing`),j.style.cursor="",y=!1,H=-1},d=(K)=>{let V=K.target;if(V.dataset.resizeIndex)return;if(y)return;let N=V;while(N&&!N.dataset.columnKey)if(N=N.parentElement,N===X||N===null)return;let v=N.dataset.columnKey;if(!D)return;let s=D.columns,l=-1;for(let Q=0;Q<s.length;Q++)if(s[Q].def.key===v){l=Q;break}if(l===-1)return;let I=s[l];if(Z)Z({key:v,index:l,event:K});if(I.def.sortable&&J){let Q;if(M===v)Q=z==="asc"?"desc":null;else Q="asc";J({key:v,index:l,direction:Q})}},o=(K)=>{if(K<0||K>=A.length)return;A[W]?.setAttribute("tabindex","-1"),W=K;let V=A[W];V.setAttribute("tabindex","0"),V.focus()},i=(K)=>{let V=K.key;if(V==="ArrowRight"){if(K.ctrlKey||K.metaKey){if(!D)return;let N=D.getColumn(W);if(N?.resizable)Y(W,N.width+10),K.preventDefault()}else if(W<A.length-1)o(W+1),K.preventDefault();K.stopPropagation();return}if(V==="ArrowLeft"){if(K.ctrlKey||K.metaKey){if(!D)return;let N=D.getColumn(W);if(N?.resizable)Y(W,N.width-10),K.preventDefault()}else if(W>0)o(W-1),K.preventDefault();K.stopPropagation();return}if(V==="Home"){o(0),K.preventDefault(),K.stopPropagation();return}if(V==="End"){o(A.length-1),K.preventDefault(),K.stopPropagation();return}if(V==="Enter"||V===" "){if(!D)return;let N=D.getColumn(W);if(N?.def.sortable&&J){let v;if(M===N.def.key)v=z==="asc"?"desc":null;else v="asc";J({key:N.def.key,index:W,direction:v}),K.preventDefault()}K.stopPropagation();return}if(V==="ArrowDown"){j.focus(),K.preventDefault(),K.stopPropagation();return}};return X.addEventListener("pointerdown",g),X.addEventListener("click",d),X.addEventListener("keydown",i),{element:X,update:T,updateSort:R,rebuild:E,show:()=>{if(c)return;c=!0,X.style.display=""},hide:()=>{if(!c)return;c=!1,X.style.display="none"},destroy:()=>{X.removeEventListener("pointerdown",g),X.removeEventListener("click",d),X.removeEventListener("keydown",i),j.style.removeProperty("--vlist-table-header-height"),B.remove(),A=[],U=[],D=null,c=!1},syncScroll:w}};var o1=()=>{let j=[];return{acquire:()=>j.pop()||document.createElement("div"),release:($)=>{if($.parentNode?.removeChild($),j.length<200)$.className="",$.removeAttribute("data-id"),$.removeAttribute("data-index"),$.removeAttribute("aria-selected"),$.removeAttribute("aria-rowindex"),$.removeAttribute("role"),$.style.cssText="",$.textContent="",j.push($)},clear:()=>{j.length=0}}},H1=(j,$,q,Y,J,Z,B,X,L)=>{let A=o1(),U=new Map,c=-1,M=q,z=null,D=null,y=null,H=(F,b)=>{D=F,y=b},O=(F,b)=>{b?F.setAttribute("aria-selected","true"):F.removeAttribute("aria-selected")},P=(F,b,m,e)=>{F.setAttribute("role",b),F.setAttribute("data-id",String(m)),F.setAttribute("data-index",String(e))},W=(F)=>String(F).startsWith("__placeholder_"),G=`${J}-item ${J}-table-row`,E=`${J}-item--selected`,T=`${J}-item--focused`,R=`${J}-table-cell`,w=`${J}-table-cell--center`,g=`${J}-table-cell--right`,C=`${J}-item--odd`,a=`${J}-item--placeholder`,d=`${J}-item--replaced`,o=`${J}-item ${J}-table-row ${J}-table-group-header`,i=`${J}-table-group-header-content`,k=(F,b,m,e,n=!1)=>{if(m.def.cell){let Q2=m.def.cell(b,m.def,e);if(typeof Q2==="string")F.innerHTML=Q2;else F.replaceChildren(Q2)}else{let Q2=b[m.def.key],Z2=Q2!=null?String(Q2):"";if(n&&Z2)F.innerHTML=`<span>${Z2}</span>`;else F.textContent=Z2}},S=(F,b,m,e,n=!1)=>{let Q2=G;if(X){if(z){let Z2=z(b);if(Z2>=0&&(Z2&1)===1)Q2+=` ${C}`}else if((b&1)===1)Q2+=` ${C}`}if(n)Q2+=` ${a}`;if(m)Q2+=` ${E}`;if(e)Q2+=` ${T}`;F.className=Q2},u=(F,b,m)=>{if(m?.compression?.isCompressed)return Math.round(m2(F,m.scrollPosition,b,m.totalItems,m.containerSize,m.compression,m.rangeStart));return b.getOffset(F)},K=(F,b)=>{let m=b.def.align;if(m==="center")F.classList.add(w),F.classList.remove(g);else if(m==="right")F.classList.add(g),F.classList.remove(w);else F.classList.remove(w,g)},V=(F,b)=>{let e=M.columns.length;if(b.length===e)return b;let n=[];for(let Q2=0;Q2<e;Q2++){let Z2;if(Q2<b.length)Z2=b[Q2];else Z2=document.createElement("div"),Z2.className=R,F.appendChild(Z2);n.push(Z2)}for(let Q2=e;Q2<b.length;Q2++)b[Q2].remove();return n},N=(F,b,m,e)=>{let n=A.acquire(),Q2=F,Z2=m.getSize(b),G2=u(b,m,e);n.style.cssText=`width:${M.totalWidth}px;height:${Z2}px;transform:translateY(${G2}px)`,n.className=o,P(n,"presentation",F.id,b),n.removeAttribute("aria-selected"),n.removeAttribute("aria-rowindex"),n.replaceChildren();let M2=document.createElement("div");if(M2.className=i,y){let N2=y(Q2.groupKey,Q2.groupIndex);if(typeof N2==="string")M2.innerHTML=N2;else M2.appendChild(N2)}return n.appendChild(M2),{element:n,cells:[],index:b,isGroupHeader:!0,_lastItem:F,lastItemId:F.id,lastSelected:!1,lastFocused:!1,lastOffset:G2,lastHeight:Z2}},v=(F,b,m,e,n,Q2)=>{let Z2=A.acquire(),G2=n.getSize(b),M2=u(b,n,Q2),N2=W(F.id);Z2.style.cssText=`width:${M.totalWidth}px;height:${G2}px;transform:translateY(${M2}px)`,S(Z2,b,m,e,N2),P(Z2,"row",F.id,b),Z2.id=`${Z}-item-${b}`,Z2.setAttribute("aria-rowindex",String(b+2)),O(Z2,m);let J2=V(Z2,[]),t=M.columns;for(let $2=0;$2<J2.length&&$2<t.length;$2++){let B2=J2[$2],U2=t[$2];B2.style.cssText=`left:${U2.offset}px;width:${U2.width}px`,B2.setAttribute("role","gridcell"),B2.setAttribute("aria-colindex",String($2+1)),K(B2,U2),k(B2,F,U2,b,N2)}return{element:Z2,cells:J2,index:b,isGroupHeader:!1,_lastItem:F,lastItemId:F.id,lastSelected:m,lastFocused:e,lastOffset:M2,lastHeight:G2}},s=(F,b,m,e,n)=>{let Q2=!1,Z2=B();if(Z2!==c)c=Z2,Q2=!0;let G2=null,M2=$();z=typeof X==="string"&&L?L():null;for(let N2=b.start;N2<=b.end;N2++){let J2=N2-b.start,t=F[J2];if(!t)continue;let $2=m.has(t.id),B2=N2===e,U2=D?D(t):!1,Y2=U.get(N2);if(Y2){if(Y2.isGroupHeader!==U2){A.release(Y2.element),U.delete(N2);let A2=U2?N(t,N2,M2,n):v(t,N2,$2,B2,M2,n);if(U.set(N2,A2),!G2)G2=document.createDocumentFragment();G2.appendChild(A2.element);continue}if(U2){if(Y2._lastItem!==t){let b2=t,F2=Y2.element.firstElementChild;if(F2&&y){let y2=y(b2.groupKey,b2.groupIndex);if(typeof y2==="string")F2.innerHTML=y2;else F2.replaceChildren(y2)}Y2.element.setAttribute("data-id",String(t.id)),Y2._lastItem=t,Y2.lastItemId=t.id}let L2=u(N2,M2,n);if(Y2.lastOffset!==L2)Y2.lastOffset=L2,Y2.element.style.transform=`translateY(${L2}px)`;let X2=M2.getSize(N2);if(Y2.lastHeight!==X2)Y2.lastHeight=X2,Y2.element.style.height=`${X2}px`}else{let A2=Y2._lastItem!==t,L2=Y2.lastSelected!==$2,X2=Y2.lastFocused!==B2;if(A2){let y2=Y2.lastItemId!=null&&W(Y2.lastItemId),D2=W(t.id);if(!D2&&s2(m,N2,t.id))$2=!0;let k2=M.columns;for(let H2=0;H2<Y2.cells.length&&H2<k2.length;H2++)k(Y2.cells[H2],t,k2[H2],N2,D2);if(S(Y2.element,N2,$2,B2,D2),Y2.element.setAttribute("data-id",String(t.id)),O(Y2.element,$2),y2&&!D2)Y2.element.classList.add(d),setTimeout(()=>{Y2.element.classList.remove(d)},300);Y2._lastItem=t,Y2.lastItemId=t.id,Y2.lastSelected=$2,Y2.lastFocused=B2}else if(L2||X2)S(Y2.element,N2,$2,B2,W(t.id)),O(Y2.element,$2),Y2.lastSelected=$2,Y2.lastFocused=B2;let b2=u(N2,M2,n);if(Y2.lastOffset!==b2)Y2.lastOffset=b2,Y2.element.style.transform=`translateY(${b2}px)`;let F2=M2.getSize(N2);if(Y2.lastHeight!==F2)Y2.lastHeight=F2,Y2.element.style.height=`${F2}px`;if(Q2)Y2.element.setAttribute("aria-rowindex",String(N2+2))}}else{if(s2(m,N2,t.id))$2=!0;let A2=U2?N(t,N2,M2,n):v(t,N2,$2,B2,M2,n);if(U.set(N2,A2),!G2)G2=document.createDocumentFragment();G2.appendChild(A2.element)}}if(G2)j.appendChild(G2);for(let[N2,J2]of U)if(N2<b.start||N2>b.end)A.release(J2.element),U.delete(N2)},l=(F)=>{let b=$();for(let[m,e]of U){let n=u(m,b,F);if(e.lastOffset!==n)e.lastOffset=n,e.element.style.transform=`translateY(${n}px)`}},I=(F,b,m,e)=>{let n=U.get(F);if(!n)return;if(n.isGroupHeader)return;let Q2=M.columns;for(let Z2=0;Z2<n.cells.length&&Z2<Q2.length;Z2++)k(n.cells[Z2],b,Q2[Z2],F);n.element.setAttribute("data-id",String(b.id)),n._lastItem=b,n.lastItemId=b.id,S(n.element,F,m,e),O(n.element,m),n.lastSelected=m,n.lastFocused=e},Q=(F,b,m)=>{let e=U.get(F);if(!e)return;if(e.isGroupHeader)return;let n=e.lastSelected!==b,Q2=e.lastFocused!==m;if(n||Q2)S(e.element,F,b,m),O(e.element,b),e.lastSelected=b,e.lastFocused=m},_=(F)=>{M=F;let b=F.columns;for(let[,m]of U)if(m.element.style.width=`${F.totalWidth}px`,m.cells.length>0)for(let e=0;e<m.cells.length&&e<b.length;e++){let n=m.cells[e],Q2=b[e];n.style.left=`${Q2.offset}px`,n.style.width=`${Q2.width}px`}},h=(F)=>{return U.get(F)?.element},x=()=>{for(let[,F]of U)A.release(F.element);U.clear(),c=-1};return{render:s,updatePositions:l,updateItem:I,updateItemClasses:Q,getElement:h,updateColumnLayout:_,setGroupHeaderFn:H,clear:x,destroy:()=>{x(),A.clear()}}};var i1=new Set;function b0(j){if(!j.columns?.length)throw Error("[vlist] table: columns must be a non-empty array");if(j.rowHeight===void 0&&j.estimatedRowHeight===void 0)throw Error("[vlist] table: either rowHeight or estimatedRowHeight is required");let $=null,q=null,Y=null,J,Z,B=null,X=null,L=null,A=!1,U=-1,c=null,M=!1;function z(){if(A||!B)return;A=!0,X=B.getMethod("_getSelectedIds")??null,L=B.getMethod("_getFocusedIndex")??null}function D(){if(M||!B)return;M=!0,c=B.getMethod("_scale:getCompression")??null}let y=[],H={start:0,end:0},O={start:0,end:-1};function P(){if(J.destroyed||!B||!Y||!$)return;let{containerSize:G,totalItems:E}=J;if(G<=0||E===0)return;let T=E+1;if(T!==U)U=T,B.dom.root.setAttribute("aria-rowcount",`${T}`);D();let R=J.scrollPosition,w=c?.()??null,g=w!==null&&w.isCompressed,C=B.config.overscan,a,d;if(g)d2(R,G,Z,E,w,O),a=Math.max(0,O.start-C),d=Math.min(E-1,O.end+C);else{let K=Z.indexAtOffset(R),V=Z.indexAtOffset(R+G);if(V<E-1)V++;K=Math.max(0,K),V=Math.min(E-1,V),a=Math.max(0,K-C),d=Math.min(E-1,V+C)}if(a===J.prevRangeStart&&d===J.prevRangeEnd&&!J.renderPending)return;z();let o=X?.()??i1,i=L?.()??-1;y.length=0;for(let K=a;K<=d;K++){let V=B.getItem(K);if(V)y.push(V)}H.start=a,H.end=d;let k;if(g)k={scrollPosition:R,totalItems:E,containerSize:G,rangeStart:a,compression:w};Y.render(y,H,o,i,k),J.prevRangeStart=a,J.prevRangeEnd=d,J.renderPending=!1;let S=d-a+1;J.visibleCount=Math.min(S,J.capacity),J.startIndex=a;for(let K=0;K<J.visibleCount;K++){let V=a+K;J.visibleIndices[K]=V,J.visibleOffsets[K]=Z.getOffset(V),J.visibleSizes[K]=Z.getSize(V)}let u=Z.getTotalSize();J.totalSize=u,B.dom.content.style.height=u+"px"}function W(){if(J.destroyed)return;J.prevRangeStart=-1,J.prevRangeEnd=-1,J.renderPending=!0,P()}return{name:"table",priority:10,conflicts:["grid","masonry"],setup(G){B=G,J=G.getState(),Z=G.sizeCache;let{dom:E,config:T,emitter:R}=G,{classPrefix:w}=T;if(T.axis.primary==="x")throw Error("[vlist] table: cannot be used with horizontal orientation");if(T.reverse)throw Error("[vlist] table: cannot be used with reverse mode");let g=j.resizable??!0,C=j.minColumnWidth??50,a=j.maxColumnWidth??1/0,d=j.rowBorders??!0,o=j.rowHeight,i=j.headerHeight??(typeof o==="number"?o:40),k=j.sort?.key??null,S=j.sort?.direction??"asc";if($=A1(j.columns,C,a,g),typeof o==="function"||typeof o==="number")G.setSizeConfig(o);if(G.rebuildSizeCache(),E.root.classList.add(`${w}--table`),d)E.root.classList.add(`${w}--table-row-borders`);if(j.columnBorders)E.root.classList.add(`${w}--table-col-borders`);queueMicrotask(()=>{if(G.getMethod("_getSelectedIds"))E.root.setAttribute("tabindex","0")}),E.root.setAttribute("role","grid"),E.root.setAttribute("aria-colcount",`${j.columns.length}`),E.viewport.setAttribute("role","none"),E.content.setAttribute("role","rowgroup");let u=J.crossSize;$.resolve(u);let K=()=>{if(!$)return;E.content.style.minWidth=`${$.totalWidth}px`},V=(I,Q)=>{if(!$)return;let _=$.getColumn(I);if(!_)return;let h=_.width,x=$.resizeColumn(I,Q);q?.update($),Y?.updateColumnLayout($),K(),R.emit("column:resize",{key:_.def.key,index:I,previousWidth:h,width:x})},N=(I)=>{k=I.direction===null?null:I.key,S=I.direction??"asc",q?.updateSort(k,S),R.emit("column:sort",I)};if(q=D1(E.root,i,w,V,N),q.rebuild($),k)q.updateSort(k,S);K(),Y=H1(E.content,()=>Z,$,j.columns,w,w,()=>J.totalItems,T.striped||void 0),G.setRenderFn(P,W);let v=q,s=-1,l=()=>{let I=E.viewport.scrollLeft;if(I!==s)s=I,v?.syncScroll?.(I)};E.viewport.addEventListener("scroll",l,{passive:!0}),G.registerMethod("updateColumns",(I)=>{if(!$||!q)return;if($.updateColumns(I),$.resolve(J.crossSize),q.rebuild($),k)q.updateSort(k,S);K(),Y?.updateColumnLayout($),Y?.clear(),G.forceRender()}),G.registerMethod("resizeColumn",(I,Q)=>{if(!$)return;let _;if(typeof I==="string"){let h=$.columns;_=-1;for(let x=0;x<h.length;x++)if(h[x].def.key===I){_=x;break}if(_===-1)return}else _=I;V(_,Q)}),G.registerMethod("getColumnWidths",()=>{if(!$)return{};let I={},Q=$.columns;for(let _=0;_<Q.length;_++)I[Q[_].def.key]=Q[_].width;return I}),G.registerMethod("setSort",(I,Q)=>{k=I,S=Q??"asc",q?.updateSort(k,S)}),G.registerMethod("getSort",()=>{return{key:k,direction:S}}),G.registerMethod("_getTableLayout",()=>$),G.registerMethod("_getTableHeaderHeight",()=>i),G.registerMethod("_updateRenderedItem",(I,Q,_,h)=>{Y?.updateItem(I,Q,_,h)}),G.registerMethod("_replaceTableRenderer",(I)=>{Y=I}),G.registerMethod("_updateTableForGroups",(I,Q)=>{Y?.setGroupHeaderFn(I,Q)}),G.registerMethod("_updateItemClasses",(I,Q,_)=>{Y?.updateItemClasses(I,Q,_)}),G.registerKeydownHandler((I)=>{if(I.key!=="ArrowLeft"&&I.key!=="ArrowRight")return;if(!$)return;let Q=$.columns;if(Q.length===0)return;let _=E.viewport.clientWidth;if($.totalWidth<=_)return;let h=E.viewport.scrollLeft;if(I.key==="ArrowRight"){for(let x=0;x<Q.length;x++)if(Q[x].offset>h+1){E.viewport.scrollLeft=Q[x].offset,I.preventDefault();return}}else{for(let x=Q.length-1;x>=0;x--)if(Q[x].offset<h-1){E.viewport.scrollLeft=Q[x].offset,I.preventDefault();return}if(h>0)E.viewport.scrollLeft=0,I.preventDefault()}}),G.registerDestroyHandler(()=>{E.viewport.removeEventListener("scroll",l),q?.destroy(),q=null,Y?.destroy(),Y=null,E.content.style.minWidth="",E.root.classList.remove(`${w}--table`),E.root.classList.remove(`${w}--table-row-borders`),E.root.classList.remove(`${w}--table-col-borders`),E.root.removeAttribute("role"),E.root.removeAttribute("aria-colcount"),E.root.removeAttribute("aria-rowcount"),E.root.removeAttribute("tabindex"),E.viewport.removeAttribute("role"),E.content.removeAttribute("role")})},hooks:{onResize(G,E){if(!$||!B)return;let T=J.crossSize;if($.resolve(T),q?.update($),Y?.updateColumnLayout($),$)B.dom.content.style.minWidth=`${$.totalWidth}px`},onAfterScroll(){if(!B||!q)return;q?.syncScroll?.(B.dom.viewport.scrollLeft)}},destroy(){q?.destroy(),q=null,Y?.destroy(),Y=null,B=null}}}function y0(j){let $=j?.handle??null,q=j?.ghostClass??"vlist-sort-ghost",Y=j?.shiftDuration??150,J=j?.edgeScrollZone??40,Z=j?.edgeScrollSpeed??20,B=j?.dragThreshold??5,X=j?.ghostContainer??null,L,A,U=null,c,M,z,D,y,H,O,P,W,G,E=!1,T=-1,R=-1,w=0,g=0,C=0,a=0,d=!1,o=null,i=0,k=null,S=0,u=0,K=0,V=null,N=!1,v="",s=-1,l=-1,I=[],Q="",_=null,h=null,x="",f=!1,F=(p)=>{return p.closest("[data-index]")},b=(p)=>{let j2=p.dataset.index;return j2===void 0?-1:+j2},m=(p)=>{let j2=p.getBoundingClientRect(),q2=p.cloneNode(!0);return q2.className=`${D}-item ${q}`,q2.removeAttribute("data-index"),q2.style.cssText=`position:fixed;pointer-events:none;z-index:10000;width:${j2.width}px;height:${j2.height}px;left:${j2.left}px;top:${j2.top}px;transition:none;will-change:transform`,(X||document.body).appendChild(q2),q2},e=()=>{if(!o)return;o.style.left=`${C-u}px`,o.style.top=`${a-K}px`},n=()=>{let p=L.totalItems;if(p===0)return 0;let j2=M.getBoundingClientRect(),q2=L.scrollPosition,V2=y?C-u-j2.left+M.scrollLeft+q2:a-K-j2.top+q2,_2=V2+S,T2=A.getOffset(T)+A.getSize(T);if(_2>T2){let E2=A.indexAtOffset(_2),C2=A.getOffset(E2)+A.getSize(E2)/2,h2=_2>C2?E2:E2-1;return Math.min(Math.max(h2,T),p-1)}let w2=A.getOffset(T);if(V2<w2){let E2=A.indexAtOffset(V2),C2=A.getOffset(E2)+A.getSize(E2)/2,h2=V2<C2?E2:E2+1;return Math.max(Math.min(h2,T),0)}return T},Q2=()=>{let p=c.children,j2=S;for(let q2=0;q2<p.length;q2++){let V2=p[q2],_2=b(V2);if(_2<0||_2===T)continue;let T2=0;if(R>T){if(_2>T&&_2<=R)T2=-j2}else if(R<T){if(_2>=R&&_2<T)T2=j2}let w2=A.getOffset(_2),E2=Math.round(w2+T2);V2.style.transition=O,V2.style.transform=`${H}(${E2}px)`}},Z2=()=>{let p=c.children;for(let j2=0;j2<p.length;j2++){let q2=p[j2],V2=b(q2);if(V2>=0)q2.style.transform=`${H}(${Math.round(A.getOffset(V2))}px)`;q2.style.transition=""}},G2=()=>{if(!U)return;let p=n();if(p===R)return;R=p,Q2(),U.emitter.emit("sort:move",{fromIndex:T,currentIndex:R})},M2=()=>{let p=M.getBoundingClientRect();if(y)return C<p.left||C>p.right;return a<p.top||a>p.bottom},N2=()=>{let p=U?.getMethod("_getFocusedIndex");return p?p():-1},J2=(p)=>{let j2=U?.getMethod("_focusById");if(j2)j2(p)},t=(p)=>{if(!U)return;let j2=y?M.clientWidth:M.clientHeight,q2=L.scrollPosition,V2=A.getOffset(p),_2=V2+A.getSize(p);if(V2<q2)U.scrollTo(Math.max(0,V2));else if(_2>q2+j2)U.scrollTo(_2-j2)},$2=(p)=>{if(!h)return;h.textContent="",h.offsetHeight,h.textContent=p},B2=(p)=>{if(!U)return"";let q2=U.getItems()[p];if(!q2)return"";return c.querySelector(`[data-index="${p}"]`)?.textContent?.trim()||String(q2.id)},U2=()=>String(L.totalItems),Y2=(p)=>{let j2=c.children;for(let q2=0;q2<j2.length;q2++)j2[q2].style.transition=p},A2=()=>{let p=()=>{if(!E||!U)return;let j2=M.getBoundingClientRect(),q2=0,V2=3;if(y){let T2=C-j2.left,w2=j2.right-C;if(T2<J){let E2=Math.min(V2,1-T2/J);q2=-Z*E2*E2}else if(w2<J){let E2=Math.min(V2,1-w2/J);q2=Z*E2*E2}}else{let T2=a-j2.top,w2=j2.bottom-a;if(T2<J){let E2=Math.min(V2,1-T2/J);q2=-Z*E2*E2}else if(w2<J){let E2=Math.min(V2,1-w2/J);q2=Z*E2*E2}}let _2=M2();if(q2!==0){let T2=L.scrollPosition,w2=A.getTotalSize()-(y?M.clientWidth:M.clientHeight);if(q2<0&&T2<=0||q2>0&&T2>=w2)f=_2;else f=!0,U.scrollTo(T2+q2)}else f=_2;i=requestAnimationFrame(p)};i=requestAnimationFrame(p)},L2=()=>{if(i)cancelAnimationFrame(i),i=0},X2=(p=!1)=>{if(E=!1,d=!1,o&&o.parentNode)o.remove();o=null,k=null;let j2=c.children;for(let V2=0;V2<j2.length;V2++){let _2=j2[V2];_2.classList.remove(G);let T2=b(_2);if(T2>=0)_2.style.transform=`${H}(${Math.round(A.getOffset(T2))}px)`;_2.style.transition=""}L2(),z.classList.remove(P),document.body.style.cursor="";let q2=window.getSelection();if(q2)q2.removeAllRanges();if(document.removeEventListener("pointermove",y2),document.removeEventListener("pointerup",D2),document.removeEventListener("pointercancel",H2),!p&&U)U.forceRender()},b2=(p,j2)=>{if(!U)return;let q2=p!==j2&&p>=0&&j2>=0,V2=()=>{if(!U)return;if(E=!1,q2){if(z.classList.add(W),U.emitter.emit("sort:end",{fromIndex:p,toIndex:j2}),V!==null)J2(V);X2(!0),requestAnimationFrame(()=>z.classList.remove(W))}else z.classList.add(W),U.emitter.emit("sort:cancel",{originalItems:[...U.getItems()]}),X2(!1),requestAnimationFrame(()=>z.classList.remove(W))};if(!o){V2();return}let _2=M.getBoundingClientRect(),T2=L.scrollPosition,w2=A.getOffset(j2),E2=Y>0?Y:150;if(o.style.transition=`left ${E2}ms ease, top ${E2}ms ease`,y)o.style.left=`${_2.left-M.scrollLeft+w2-T2}px`,o.style.top=`${_2.top}px`;else o.style.left=`${_2.left}px`,o.style.top=`${_2.top+w2-T2}px`;let C2=!1,h2=()=>{if(C2)return;C2=!0,o?.removeEventListener("transitionend",h2),V2()};o.addEventListener("transitionend",h2),setTimeout(h2,E2+50)},F2=(p)=>{if(L.destroyed||!U)return;if(E)return;if(N)z2();if(p.button!==0)return;let j2=p.target;if($){if(!j2.closest($))return}let q2=F(j2);if(!q2)return;let V2=b(q2);if(V2<0)return;w=p.clientX,g=p.clientY,C=p.clientX,a=p.clientY,T=V2,d=!1,k=q2;let _2=q2.getBoundingClientRect();u=p.clientX-_2.left,K=p.clientY-_2.top,document.addEventListener("pointermove",y2),document.addEventListener("pointerup",D2),document.addEventListener("pointercancel",H2)};function y2(p){if(!U)return;if(C=p.clientX,a=p.clientY,!d){let j2=C-w,q2=a-g;if(Math.sqrt(j2*j2+q2*q2)<B)return;if(d=!0,E=!0,R=T,z.classList.add(P),document.body.style.cursor="grabbing",S=A.getSize(T),k)o=m(k),k.classList.add(G);let V2=N2();if(V2>=0){let T2=U.getItems()[V2];V=T2?T2.id:null}else V=null;U.emitter.emit("sort:start",{index:T}),A2()}if(E){if(p.preventDefault(),e(),!f)G2();else if(M2()){if(R!==T)R=T,Z2()}}}function D2(p){if(!d){document.removeEventListener("pointermove",y2),document.removeEventListener("pointerup",D2),document.removeEventListener("pointercancel",H2),k=null;return}p.preventDefault(),document.removeEventListener("pointermove",y2),document.removeEventListener("pointerup",D2),document.removeEventListener("pointercancel",H2),L2(),b2(T,R)}let k2=()=>{if(!d)return;document.removeEventListener("pointermove",y2),document.removeEventListener("pointerup",D2),document.removeEventListener("pointercancel",H2),L2(),Z2(),b2(T,T)};function H2(){k2()}let P2=()=>{let p=c.querySelectorAll(`.${x}`);for(let j2=0;j2<p.length;j2++)p[j2].classList.remove(x)},W2=()=>{P2();let p=c.querySelector(`[data-id="${v}"]`);if(p)p.classList.add(x)},O2=(p)=>{if(!U)return;let j2=U.getItems(),q2=j2[p];if(!q2)return;N=!0,v=q2.id,s=p,l=p,I=[...j2],z.classList.add(P),U.emitter.emit("sort:start",{index:p}),W2(),$2(`Grabbed ${B2(p)}. Current position ${p+1} of ${U2()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},R2=()=>{if(!N||!U)return;N=!1;let p=l,j2=B2(p);Y2("none"),z.classList.remove(P),P2(),J2(v),U.forceRender(),$2(`${j2} dropped. Final position ${p+1} of ${U2()}.`),I=[],requestAnimationFrame(()=>Y2(""))},z2=()=>{if(!N||!U)return;N=!1;let p=s;if(Y2("none"),z.classList.remove(P),P2(),l!==p)U.emitter.emit("sort:cancel",{originalItems:I});J2(v),U.forceRender(),t(p),$2(`Reorder cancelled. Returned to position ${p+1} of ${U2()}.`),I=[],requestAnimationFrame(()=>Y2(""))},K2=(p)=>{if(!N||!U)return;let j2=L.totalItems,q2=l+p;if(q2<0||q2>=j2)return;let V2=l,_2=q2;Y2("none"),U.emitter.emit("sort:end",{fromIndex:V2,toIndex:_2}),l=_2,J2(v),U.forceRender(),t(_2),W2(),$2(`${B2(_2)} moved. New position ${_2+1} of ${U2()}.`),requestAnimationFrame(()=>Y2(""))},r=(p)=>{if(L.destroyed)return;if(E){if(p.key==="Escape")p.preventDefault(),p.stopImmediatePropagation(),k2();return}if(N)switch(p.key){case" ":case"Enter":p.preventDefault(),p.stopImmediatePropagation(),R2();return;case"Escape":p.preventDefault(),p.stopImmediatePropagation(),z2();return;case"ArrowUp":case"ArrowLeft":p.preventDefault(),p.stopImmediatePropagation(),K2(-1);return;case"ArrowDown":case"ArrowRight":p.preventDefault(),p.stopImmediatePropagation(),K2(1);return;default:if(!p.key.startsWith("F")&&p.key!=="Tab")p.preventDefault(),p.stopImmediatePropagation();return}if(p.key===" "&&!p.shiftKey&&!p.ctrlKey&&!p.metaKey){let j2=N2();if(j2>=0)p.preventDefault(),p.stopImmediatePropagation(),O2(j2)}};return{name:"sortable",priority:30,conflicts:["grid","masonry","table","scale"],setup(p){U=p,L=p.getState(),A=p.sizeCache,c=p.dom.content,M=p.dom.viewport,z=p.dom.root,D=p.config.classPrefix,y=p.config.axis.primary==="x",H=y?"translateX":"translateY",O=Y>0?`transform ${Y}ms ease`:"none",P=`${D}--sorting`,W=`${D}--settling`,G=`${D}-item--drag-source`,x=`${D}-item--kb-sorting`,p.registerMethod("isSorting",()=>E||N),c.addEventListener("pointerdown",F2),z.addEventListener("keydown",r),Q=`${D}-sort-instructions`,_=document.createElement("div"),_.id=Q,_.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",_.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",z.appendChild(_),h=document.createElement("div"),h.setAttribute("role","status"),h.setAttribute("aria-live","assertive"),h.setAttribute("aria-atomic","true"),h.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",z.appendChild(h),p.registerDestroyHandler(()=>{if(N)z2();X2(),c.removeEventListener("pointerdown",F2),z.removeEventListener("keydown",r),_?.remove(),h?.remove()})},hooks:{onCommit(){if(!U)return;let p=c.children;for(let j2=0;j2<p.length;j2++){let q2=p[j2],V2=b(q2);if(V2<0)continue;if(q2.setAttribute("aria-roledescription","sortable item"),q2.setAttribute("aria-describedby",Q),N)if(q2.getAttribute("data-id")===String(v))q2.classList.add(x);else q2.classList.remove(x);if(E)if(V2===T)q2.classList.add(G),k=q2;else{q2.classList.remove(G);let _2=0;if(R>T){if(V2>T&&V2<=R)_2=-S}else if(R<T){if(V2>=R&&V2<T)_2=S}let T2=Math.round(A.getOffset(V2)+_2);q2.style.transform=`${H}(${T2}px)`}}}},destroy(){if(o&&o.parentNode)o.remove();o=null,L2(),_?.remove(),h?.remove(),U=null}}}var n1=50,t1=0.1;function L1(j){let $=0,q=0,Y=0;function J(){return Y>0?q/Y:0}function Z(L){if($=L,L>t1&&L<n1)q+=L,Y++}function B(){let L=j.getTotal();if(L===0)return 0;let A=j.getItemSize();if(A<=0)return 0;let U=j.getContainerSize();if(U<=0)return 0;let c=j.getScrollPosition(),M=typeof j.getColumns==="function"?j.getColumns():1,D=Math.ceil(L/M)*A,H=Math.min(D,S2)-U,O=D-U,P=H>0?O/H:1,W=c*P,G=Math.ceil((W+U)/A);return Math.min(G*M,L)}function X(){let L=j.getTotal(),A=B();return{progress:L>0?Math.min(100,Math.max(0,A/L*100)):0,velocity:$,velocityAvg:J(),itemCount:A,total:L}}return{getState:X,onVelocity:Z}}export{D0 as transition,b0 as table,y0 as sortable,A0 as snapshots,G0 as selection,V0 as scrollbar,W0 as scale,X0 as page,L0 as masonry,R0 as groups,_0 as grid,F0 as data,e0 as createVList,L1 as createStats,H0 as autosize,M0 as a11y};
|
|
1
|
+
var n2=3,C0="vlist";var t2=50;var S0=50,f0=2,h0=15,I0=6,I2=16000000,s2=150,U0=1,e2=(Q)=>Q<0.5?2*Q*Q:1-(-2*Q+2)**2/2,$0=300;var p0="x",u0=20,B0="_isPlaceholder",f2="__placeholder_";var J0={top:0,right:0,bottom:0,left:0},g0=(Q)=>{if(Q==null)return J0;if(typeof Q==="number")return Q===0?J0:{top:Q,right:Q,bottom:Q,left:Q};if(Q.length===2){let[Z,U]=Q;return Z===0&&U===0?J0:{top:Z,right:U,bottom:Z,left:U}}let[$,j,Y,J]=Q;return $===0&&j===0&&Y===0&&J===0?J0:{top:$,right:j,bottom:Y,left:J}},x0=(Q,$)=>$?Q.left+Q.right:Q.top+Q.bottom,m0=(Q,$)=>$?Q.top+Q.bottom:Q.left+Q.right;function c0(Q){let $={visibleIndices:new Int32Array(Q),visibleOffsets:new Float64Array(Q),visibleSizes:new Float64Array(Q),visibleCount:0,startIndex:0,totalSize:0,capacity:Q,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,isCompressed:!1,compressionRatio:1,prevAriaTotal:-1,resizeCapacity(j,Y,J=n2){if(Y<=0||j<=0)return;let Z=Math.ceil(j/Y)+J*2;if(Z<=$.capacity)return;let U=Z+8,K=new Int32Array(U),M=new Float64Array(U),V=new Float64Array(U);K.set($.visibleIndices),M.set($.visibleOffsets),V.set($.visibleSizes),$.visibleIndices=K,$.visibleOffsets=M,$.visibleSizes=V,$.capacity=U},clear(){$.visibleCount=0,$.startIndex=0}};return $}var P1=(Q,$)=>{let j=$;return{getOffset:(Y)=>Y*Q,getSize:(Y)=>Q,indexAtOffset:(Y)=>{if(j===0||Q===0)return 0;return Math.max(0,Math.min(Math.floor(Y/Q),j-1))},getTotalSize:()=>j*Q,getTotal:()=>j,rebuild:(Y)=>{j=Y},isVariable:()=>!1}},w1=(Q,$)=>{let j=$,Y=new Float64Array(0),J=(U)=>{j=U,Y=new Float64Array(U+1),Y[0]=0;for(let K=0;K<U;K++)Y[K+1]=Y[K]+Q(K)};J($);let Z=(U)=>{if(j===0)return 0;if(U<=0)return 0;if(U>=Y[j])return j-1;let K=0,M=j-1;while(K<M){let V=K+M+1>>>1;if(Y[V]<=U)K=V;else M=V-1}return K};return{getOffset:(U)=>{if(U<=0)return 0;if(U>=j)return Y[j];return Y[U]},getSize:(U)=>Q(U),indexAtOffset:(U)=>Z(U),getTotalSize:()=>Y[j]??0,getTotal:()=>j,rebuild:(U)=>J(U),isVariable:()=>!0}},Q0=(Q,$)=>{if(typeof Q==="number")return P1(Q,$);return w1(Q,$)},W0=(Q,$,j,Y)=>{if(Y===0)return 0;if(!Q.isVariable())return Math.ceil(j/Q.getSize(0));let J=0,Z=0,U=$;while(U<Y&&Z<j)Z+=Q.getSize(U),J++,U++;return Math.max(1,J)};function d0(Q){let $=[],j=`${Q}-item`,Y=document.createElement("div");return Y.className=j,{acquire(){if($.length>0)return $.pop();return Y.cloneNode(!1)},release(J){if(J.className=j,J.removeAttribute("style"),J.removeAttribute("id"),J.removeAttribute("role"),J.removeAttribute("aria-selected"),J.removeAttribute("aria-posinset"),J.removeAttribute("aria-setsize"),J.removeAttribute("data-index"),J.removeAttribute("data-id"),J.textContent="",$.length<100)$.push(J)},get size(){return $.length},clear(){$.length=0}}}function p2(Q){let $=Q.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let j=0;j<$.length;j++)$[j].setAttribute("tabindex","-1")}function l0(Q){if(typeof Q==="string"){let $=document.querySelector(Q);if(!$)throw Error(`[vlist] Container not found: ${Q}`);return $}return Q}function r0(Q,$,j,Y){let J=j?`${$} ${$}--horizontal`:$,Z=j?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",U=j?"position:relative;height:100%":"position:relative;width:100%",K=' role="list"';if(Y)K+=` aria-label="${Y.replace(/"/g,""")}"`;if(j)K+=' aria-orientation="horizontal"';Q.insertAdjacentHTML("beforeend",`<div class="${J}"><div class="${$}-viewport" style="${Z}" tabindex="-1"><div class="${$}-content" style="${U}"${K}></div></div></div>`);let M=Q.lastElementChild,V=M.firstElementChild,W=V.firstElementChild,c=document.createElement("div");return c.className=`${$}-live`,c.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",c.setAttribute("aria-live","polite"),c.setAttribute("aria-atomic","true"),c.setAttribute("role","status"),M.appendChild(c),{root:M,viewport:V,content:W,liveRegion:c}}function s0(Q){let{state:$,viewport:j,isX:Y,wheelEnabled:J,onFrame:Z,onIdle:U}=Q,K=Q.idleTimeout||s2,M=Q.scrollTarget??j,V=null,W=null;function c(){let E=Y?j.scrollLeft:j.scrollTop;if(Math.abs(E-$.scrollPosition)<0.5)return;$.prevScrollPosition=$.scrollPosition,$.scrollPosition=E,$.scrollDirection=E>$.prevScrollPosition?1:E<$.prevScrollPosition?-1:0,Z(),P()}function X(E){if($.isCompressed)return;let k;if(Y){if(Math.abs(E.deltaX)>Math.abs(E.deltaY))return;let v=j.scrollLeft,N=j.scrollWidth-j.clientWidth;if(k=Math.max(0,Math.min(v+E.deltaY*U0,N)),Math.abs(k-v)<1)return;E.preventDefault(),j.scrollLeft=k}else{let v=j.scrollWidth>j.clientWidth;if(v&&Math.abs(E.deltaX)>Math.abs(E.deltaY))return;if(v&&E.deltaX!==0)E.preventDefault(),j.scrollLeft+=E.deltaX;let N=j.scrollTop,O=j.scrollHeight-j.clientHeight;if(k=Math.max(0,Math.min(N+E.deltaY*U0,O)),Math.abs(k-N)<1)return;E.preventDefault(),j.scrollTop=k}$.prevScrollPosition=$.scrollPosition,$.scrollPosition=k,$.scrollDirection=k>$.prevScrollPosition?1:-1,Z(),P()}function P(){if(V!==null)clearTimeout(V);V=setTimeout(()=>{V=null,$.scrollDirection=0,U()},K)}function F(){if(W!==null)cancelAnimationFrame(W),W=null}function y(E,k,v,N=e2,O){F();let z=$.scrollPosition,H=typeof E==="function"?E:()=>E,D=H();if(Math.abs(D-z)<1){if(v)v(D);else if(Y)j.scrollLeft=D;else j.scrollTop=D;O?.();return}let R=performance.now();function S(b){D=H();let l=b-R,m=Math.min(l/k,1),d=z+(D-z)*N(m);if(v)v(d);else if(Y)j.scrollLeft=d;else j.scrollTop=d;if(!v)$.scrollPosition=d;if(Z(),m<1)W=requestAnimationFrame(S);else W=null,O?.()}W=requestAnimationFrame(S)}return{attach(){if(M.addEventListener("scroll",c,{passive:!0}),J)M.addEventListener("wheel",X,{passive:!1})},detach(){if(M.removeEventListener("scroll",c),J)M.removeEventListener("wheel",X);if(F(),V!==null)clearTimeout(V),V=null},cancelScroll:F,smoothScrollTo:y}}var a2=[],v1={calculate:a2,commit:a2,afterScroll:a2,idle:a2,resize:a2};function a0(Q){if(Q.length===0)return v1;let $=[],j=[],Y=[],J=[],Z=[];for(let U=0;U<Q.length;U++){let K=Q[U].hooks;if(K===void 0)continue;if(K.onCalculate!==void 0)$.push(K.onCalculate);if(K.onCommit!==void 0)j.push(K.onCommit);if(K.onAfterScroll!==void 0)Y.push(K.onAfterScroll);if(K.onIdle!==void 0)J.push(K.onIdle);if(K.onResize!==void 0)Z.push(K.onResize)}return{calculate:$,commit:j,afterScroll:Y,idle:J,resize:Z}}function o0(Q,$){for(let j=0;j<Q.length;j++)Q[j]($)}function i0(Q,$){for(let j=0;j<Q.length;j++)Q[j]($)}function V0(Q,$,j){for(let Y=0;Y<Q.length;Y++)Q[Y]($,j)}function n0(Q){for(let $=0;$<Q.length;$++)Q[$]()}function t0(Q,$,j){for(let Y=0;Y<Q.length;Y++)Q[Y]($,j)}function e0(Q,$,j,Y,J,Z,U,K){let M=Y!==0||J!==0;return{prefix:Q,selectedClass:`${Q}-item--selected`,focusedClass:`${Q}-item--focused`,placeholderClass:`${Q}-item--placeholder`,replacedClass:`${Q}-item--replaced`,translateProp:$?"translateX(":"translateY(",sizeProp:$?"width":"height",itemRole:"listitem",interactive:!1,startPadding:j,gap:U,hasCrossPad:M,crossStartProp:M?$?"top":"left":"",crossEndProp:M?$?"bottom":"right":"",crossStartVal:M?Y+"px":"",crossEndVal:M?J+"px":"",oddClass:Z,emitter:K??null}}function C1(Q,$,j,Y,J){if(Q.containerSize<=0||Q.totalItems===0)return Q.clear(),!0;let{scrollPosition:Z,containerSize:U,totalItems:K}=Q,M=J??0;Q.totalSize=$.getTotalSize();let V=$.indexAtOffset(M>0?Math.max(0,Z-M):Z),W=$.indexAtOffset(Z+U);if(W<K-1)W++;V=Math.max(0,V),W=Math.min(K-1,Math.max(0,W));let c=Math.max(0,V-j),X=Math.min(K-1,W+j),P=Math.ceil(U/1)+j*2+10,F=X-c+1,y=Math.min(F,Q.capacity,P);if(c===Q.prevRangeStart&&X===Q.prevRangeEnd&&!Q.renderPending)return!1;Q.visibleCount=y,Q.startIndex=c;for(let E=0;E<y;E++){let k=c+E;Q.visibleIndices[E]=k,Q.visibleOffsets[E]=$.getOffset(k),Q.visibleSizes[E]=$.getSize(k)}return o0(Y.calculate,Q),Q.prevRangeStart=c,Q.prevRangeEnd=X,Q.renderPending=!1,!0}var C2={selected:!1,focused:!1};function S1(Q,$,j){for(let Y=0;Y<$;Y++)if(Q[Y]===j)return!0;return!1}function f1(Q,$){if($<=1)return!0;let j=Q[0];for(let Y=1;Y<$;Y++){let J=Q[Y];if(J!==j+1)return!1;j=J}return!0}function h1(Q,$,j,Y,J,Z,U,K,M,V){let W=M?null:J(),c=Q.visibleCount,X=Q.visibleIndices,P=U.interactive?String(Q.totalItems):"",F=U.interactive&&Q.totalItems!==Q.prevAriaTotal,y=null;for(let E=0;E<c;E++){let k=X[E],v=Q.visibleOffsets[E],N=Q.visibleSizes[E],O=M?M(k):W[k];if(V)V(k,C2);else C2.selected=!1,C2.focused=!1;let z=Z.get(k),H=z;if(z===void 0){let D=$.acquire();if(O!==void 0){let b;try{b=Y(O,k,C2)}catch(l){if(U.emitter)U.emitter.emit("error",{error:l instanceof Error?l:Error(String(l)),context:`template:render:${k}`});$.release(D);continue}if(typeof b==="string")D.innerHTML=b;else D.textContent="",D.appendChild(b);p2(D)}if(D.setAttribute("role",U.itemRole),D.setAttribute("data-index",String(k)),U.interactive)D.id=U.prefix+"-item-"+k,D.setAttribute("aria-posinset",String(k+1)),D.setAttribute("aria-setsize",P);if(O!==void 0){let b=String(O.id);if(D.setAttribute("data-id",b),b.startsWith(f2))D.classList.add(U.placeholderClass)}if(U.hasCrossPad)D.style.setProperty(U.crossStartProp,U.crossStartVal),D.style.setProperty(U.crossEndProp,U.crossEndVal);if(V){if(D.classList.toggle(U.selectedClass,C2.selected),D.classList.toggle(U.focusedClass,C2.focused),C2.selected)D.setAttribute("aria-selected","true");else D.removeAttribute("aria-selected");D._lastSelected=C2.selected,D._lastFocused=C2.focused}if(U.oddClass)D.classList.toggle(U.oddClass,(k&1)===1);let R=v+U.startPadding;D.style.transform=U.translateProp+R+"px)",D._lastOffset=R;let S=N-U.gap;if(D.style[U.sizeProp]=S+"px",D._lastSize=S,D._lastItem=O,Z.set(k,D),y===null)y=document.createDocumentFragment();y.appendChild(D)}else{if(F)z.setAttribute("aria-setsize",P);if(O!==void 0&&H._lastItem!==O){let S=z.getAttribute("data-id"),b=String(O.id),l;try{l=Y(O,k,C2)}catch(m){if(U.emitter)U.emitter.emit("error",{error:m instanceof Error?m:Error(String(m)),context:`template:render:${k}`});continue}if(typeof l==="string")z.innerHTML=l;else z.textContent="",z.appendChild(l);if(p2(z),z.setAttribute("data-id",b),H._lastItem=O,S!==b){let m=S!==null&&S.startsWith(f2),d=b.startsWith(f2);if(m!==d)z.classList.toggle(U.placeholderClass,d);if(m&&!d)z.classList.add(U.replacedClass),setTimeout(()=>{z.classList.remove(U.replacedClass)},300)}}if(V){if(H._lastSelected!==C2.selected){if(z.classList.toggle(U.selectedClass,C2.selected),C2.selected)z.setAttribute("aria-selected","true");else z.removeAttribute("aria-selected");H._lastSelected=C2.selected}if(H._lastFocused!==C2.focused)z.classList.toggle(U.focusedClass,C2.focused),H._lastFocused=C2.focused}let D=v+U.startPadding;if(H._lastOffset!==D)z.style.transform=U.translateProp+D+"px)",H._lastOffset=D;let R=N-U.gap;if(H._lastSize!==R)z.style[U.sizeProp]=R+"px",H._lastSize=R}}if(y!==null)j.appendChild(y);if(c>0&&f1(X,c)){let E=X[0],k=X[c-1];for(let[v,N]of Z)if(v<E||v>k)N.remove(),$.release(N),Z.delete(v)}else for(let[E,k]of Z)if(!S1(X,c,E))k.remove(),$.release(k),Z.delete(E);if(U.interactive)Q.prevAriaTotal=Q.totalItems;i0(K.commit,Q)}function N0(Q,$,j,Y,J,Z,U,K,M,V,W,c){if(C1(Q,$,j,V,M.startPadding))h1(Q,Y,J,Z,U,K,M,V,W,c)}var _0=()=>{let Q={},$=(Z,U)=>{if(!Q[Z])Q[Z]=new Set;return Q[Z].add(U),()=>j(Z,U)},j=(Z,U)=>{Q[Z]?.delete(U)};return{on:$,off:j,emit:(Z,U)=>{Q[Z]?.forEach((K)=>{try{K(U)}catch(M){console.error(`[vlist] Error in event handler for "${String(Z)}":`,M)}})},clear:(Z)=>{if(Z)delete Q[Z];else for(let U in Q)delete Q[U]}}};var $1=2,J1=(Q=0)=>({velocity:0,sampleCount:0}),Q1=(Q,$)=>{let j=performance.now(),Y=Q._lt??j,J=Q._lp??$,Z=j-Y;if(Q._lp=$,Q._lt=j,Z===0)return Q.sampleCount=Math.min(Q.sampleCount+1,5),Q;if(Z>100)return Q.velocity=0,Q.sampleCount=1,Q;return Q.velocity=Math.abs($-J)/Z,Q.sampleCount=Math.min(Q.sampleCount+1,5),Q};function I1(Q){let{item:$}=Q;if($.height!==void 0&&typeof $.height==="number"){if(!Number.isFinite($.height)||$.height<=0)throw Error(`vlist: item.height must be a positive number, got ${$.height}`)}if($.width!==void 0&&typeof $.width==="number"){if(!Number.isFinite($.width)||$.width<=0)throw Error(`vlist: item.width must be a positive number, got ${$.width}`)}if($.estimatedHeight!==void 0){if(!Number.isFinite($.estimatedHeight)||$.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${$.estimatedHeight}`)}if($.estimatedWidth!==void 0){if(!Number.isFinite($.estimatedWidth)||$.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${$.estimatedWidth}`)}if($.gap!==void 0){if(typeof $.gap!=="number"||!Number.isFinite($.gap)||$.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${$.gap}`)}if(Q.overscan!==void 0){if(typeof Q.overscan!=="number"||!Number.isFinite(Q.overscan)||Q.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${Q.overscan}`)}}function p1(Q,$){let j=Q==="horizontal"?"x":"y";if($.some((J)=>J.name==="grid"))return{primary:j,cross:j==="x"?"y":"x"};return{primary:j}}function u1(Q,$){let j=p1(Q.orientation,$),Y=j.primary==="x",J=g0(Q.padding);return{axis:j,hasCrossAxis:j.cross!==void 0,overscan:Q.overscan??n2,reverse:Q.reverse??!1,classPrefix:Q.classPrefix??C0,mainAxisPadding:x0(J,Y),crossAxisPadding:m0(J,Y),startPadding:Y?J.left:J.top,endPadding:Y?J.right:J.bottom,crossPadStart:Y?J.top:J.left,crossPadEnd:Y?J.bottom:J.right,striped:Q.item.striped||!1,gap:Q.item.gap??0}}function g1(Q,$){if($)return Q.item.width??Q.item.estimatedWidth??100;return Q.item.height??Q.item.estimatedHeight??40}function x1(Q){let $=[...Q];return $.sort((j,Y)=>(j.priority??50)-(Y.priority??50)),$}function m1(Q){let $=new Set;for(let j of Q){if($.has(j.name))throw Error(`[vlist] Duplicate plugin: ${j.name}`);$.add(j.name)}for(let j of Q)if(j.conflicts){for(let Y of j.conflicts)if($.has(Y))throw Error(`[vlist] Plugin "${j.name}" conflicts with "${Y}"`)}}function j1(Q,$=[]){I1(Q);let j=u1(Q,$),Y=j.axis.primary==="x",J=g1(Q,Y),Z=j.gap,U=Z>0?typeof J==="function"?(Y2)=>J(Y2)+Z:J+Z:J,K=typeof J==="number"?J:20,M=Q.items?.length??0,V=j.striped?`${j.classPrefix}-item--odd`:"",W=_0(),c=e0(j.classPrefix,Y,j.startPadding,j.crossPadStart,j.crossPadEnd,V,Z,W),X=$.length>0?x1($):$;if($.length>0)m1(X);let P=l0(Q.container),F=r0(P,j.classPrefix,Y,Q.ariaLabel);if(Q.scroll?.scrollbar==="none")F.viewport.classList.add(`${j.classPrefix}-viewport--no-scrollbar`);if(Q.scroll?.gutter==="stable")F.viewport.classList.add(`${j.classPrefix}-viewport--gutter-stable`);let E=Q0(U,M);if(Z>0){let Y2=E.getTotalSize;E.getTotalSize=()=>{let G=Y2();return G>0?G-Z:0}}let k=d0(j.classPrefix),v=Math.ceil(4096/K)+j.overscan*2+8,N=c0(v);N.totalItems=M;let O=Q.items??[],z=()=>O,H=new Map,D=J1(),R={velocity:0,reliable:!1},S={range:{start:0,end:-1}},b={scrollPosition:0,direction:"down"},l={scrollPosition:0},m=-1,d=-1,i=-1,C=null,g=a0(X),x=new Map,B=[],L=[],_=[],h=null,a=null,o=null,f=null,q=null,A=null,p=null,r=null,u=null,T=null,w=null,s=!1,J2=!1,t=null,Z2=0,V2=0,L2=null,A2=null,D2=null,K2=null,e=null;if(N.containerSize=Y?F.viewport.clientWidth:F.viewport.clientHeight,N.crossSize=Y?F.viewport.clientHeight:F.viewport.clientWidth,$.length>0){let Y2={dom:F,sizeCache:E,pool:k,config:j,emitter:W,template:Q.item.template,registerMethod(G,$2){x.set(G,$2)},getMethod(G){return x.get(G)},registerClickHandler(G){B.push(G)},registerKeydownHandler(G){L.push(G)},registerDestroyHandler(G){_.push(G)},enableListboxRole(){let G=F.content.getAttribute("role");if(!G||G==="list")F.content.setAttribute("role","listbox"),F.content.setAttribute("tabindex","0");c.itemRole="option",c.interactive=!0},setSizeConfig(G){let $2=Q0(G,N.totalItems);Object.assign(E,$2)},setScrollFns(G,$2){a=G,o=$2},setVirtualTotalFn(G){h=G},getItems:z,getItem(G){return A?A(G):O[G]},getState(){return N},rebuildSizeCache(){E.rebuild(N.totalItems)},updateContentSize(G){N.totalSize=G,F.content.style[Y?"width":"height"]=G+j.mainAxisPadding+"px"},setRenderFn(G,$2){f=G,q=$2},renderIfNeeded(){O2()},forceRender(){T2()},setGetItemFn(G){A=G},setItemStateFn(G){p=G},getItemStateFn(){return p},get rawSizeSpec(){return J},scrollTo(G){if(o)o(G);else if(Y)F.viewport.scrollLeft=G;else F.viewport.scrollTop=G},smoothScrollTo(G,$2,j2,n){if(D2)D2(G,$2,o??void 0,j2,n);else Y2.scrollTo(typeof G==="function"?G():G)},disableDefaultScroll(){s=!0},disableDefaultResize(){J2=!0},setScrollTarget(G){t=G},setScrollToPosFn(G){K2=G},setScrollToIndexFn(G){e=G},onScrollFrame:y2,onScrollIdle:z2,removeItemById(G){if(r)return r(G);let $2=O.findIndex((j2)=>j2.id===G);if($2===-1)return-1;return O.splice($2,1),N.totalItems=O.length,E.rebuild(N.totalItems),E2(),$2},insertItemAt(G,$2){if(u){u(G,$2);return}O.splice($2,0,G),N.totalItems=O.length,E.rebuild(N.totalItems),E2()},setRemoveItemFn(G){r=G},setInsertItemFn(G){u=G},setUpdateItemFn(G){T=G},setGetIndexByIdFn(G){w=G},getRenderedElement(G){let $2=x.get("_getRenderedElement");if($2)return $2(G);return H.get(G)??null},setNavConfig(G){if(G.ud!==void 0)Z2=G.ud;if(G.lr!==void 0)V2=G.lr;if(G.scrollIndex)L2=G.scrollIndex;if(G.navigate)A2=G.navigate},getNavConfig:(()=>{let G={ud:0,lr:0,scrollIndex:null,navigate:null};return()=>{return G.ud=Z2,G.lr=V2,G.scrollIndex=L2,G.navigate=A2,G}})()};for(let G of X)if(G.setup)try{G.setup(Y2)}catch($2){W.emit("error",{error:$2 instanceof Error?$2:Error(String($2)),context:`plugin:setup:${G.name}`})}}let q2=j.classPrefix+"--scrolling",N2=!1,X2=Q.scroll?.idleTimeout??s2;function U2(){if(b.scrollPosition=N.scrollPosition,Y)b.direction=N.scrollDirection>0?"right":"left";else b.direction=N.scrollDirection>0?"down":"up";if(W.emit("scroll",b),Q1(D,N.scrollPosition),R.velocity=D.velocity,R.reliable=D.sampleCount>=$1,W.emit("velocity:change",R),N.startIndex!==m||N.prevRangeEnd!==d)m=N.startIndex,d=N.prevRangeEnd,S.range.start=N.startIndex,S.range.end=N.prevRangeEnd,W.emit("range:change",S)}let k2=!1;function E2(){if(f)return;let Y2=E.getTotalSize();if(F.content.style[Y?"width":"height"]=Y2+j.mainAxisPadding+"px",!k2&&Y2>I2)k2=!0,W.emit("error",{error:Error(`Content size (${Y2}px) exceeds browser limit (${I2}px). Use the scale() plugin for large datasets.`),context:"content:size:overflow"})}function O2(){if(f)f();else N0(N,E,j.overscan,k,F.content,Q.item.template,z,H,c,g,A,p)}function y2(){if(!N2)N2=!0,F.root.classList.add(q2);if(O2(),V0(g.afterScroll,N.scrollPosition,N.scrollDirection),N.scrollPosition!==i)i=N.scrollPosition,U2()}function z2(){if(N2)N2=!1,F.root.classList.remove(q2);N.scrollDirection=0,n0(g.idle),R.velocity=0,R.reliable=!1,W.emit("velocity:change",R),l.scrollPosition=N.scrollPosition,W.emit("scroll:idle",l)}function T2(){if(N.renderPending=!0,q)q();else N0(N,E,j.overscan,k,F.content,Q.item.template,z,H,c,g,A,p);if(V0(g.afterScroll,N.scrollPosition,N.scrollDirection),N.scrollPosition!==i){if(i=N.scrollPosition,U2(),C!==null)clearTimeout(C);C=setTimeout(z2,X2)}}let R2=s0({state:N,viewport:F.viewport,isX:Y,wheelEnabled:s?!1:Q.scroll?.wheel!==!1,idleTimeout:Q.scroll?.idleTimeout??s2,...t?{scrollTarget:t}:{},onFrame:y2,onIdle:z2});D2=R2.smoothScrollTo;function P2(Y2){let $2=Y2.target.closest("[data-index]");if(!$2)return null;let j2=parseInt($2.getAttribute("data-index"),10);if(Number.isNaN(j2))return null;let n=A?A(j2):O[j2];if(n===void 0)return null;return{item:n,index:j2}}function b2(Y2){for(let $2=0;$2<B.length;$2++)B[$2](Y2);let G=P2(Y2);if(G)W.emit("item:click",{item:G.item,index:G.index,event:Y2})}function w2(Y2){let G=P2(Y2);if(G)W.emit("item:dblclick",{item:G.item,index:G.index,event:Y2})}function I(Y2){let G=P2(Y2);if(G)W.emit("item:contextmenu",{item:G.item,index:G.index,event:Y2})}function W2(Y2){for(let G=0;G<L.length;G++)L[G](Y2)}if(F.content.addEventListener("click",b2),F.content.addEventListener("dblclick",w2),F.content.addEventListener("contextmenu",I),L.length>0)F.content.addEventListener("keydown",W2);let _2=null;if(!J2)setTimeout(()=>{if(N.destroyed)return;_2=new ResizeObserver((G)=>{for(let $2 of G){let{width:j2,height:n}=$2.contentRect,Q2=Y?j2:n,B2=Y?n:j2;if(Math.abs(Q2-N.containerSize)<1&&Math.abs(B2-N.crossSize)<1)continue;N.containerSize=Q2,N.crossSize=B2,N.resizeCapacity(Q2,K,j.overscan),T2(),t0(g.resize,j2,n),W.emit("resize",{width:j2,height:n})}}),_2.observe(F.viewport)},0);N.resizeCapacity(N.containerSize,K,j.overscan),E2(),N.initialized=!0;let M2=null;if(Q.defer)M2=requestAnimationFrame(()=>{if(M2=null,!N.destroyed)O2()});else O2();if(!s)R2.attach();let F2={get element(){return F.root},get items(){return O},get total(){return h?h():O.length},setItems(Y2){O=[...Y2],N.totalItems=O.length,E.rebuild(N.totalItems),E2(),T2()},appendItems(Y2){O.push(...Y2),N.totalItems=O.length,E.rebuild(N.totalItems),E2(),T2()},prependItems(Y2){O.unshift(...Y2),N.totalItems=O.length,E.rebuild(N.totalItems),E2(),T2()},updateItem(Y2,G){if(T){if(!T(Y2,G))return}else{let $2=O.findIndex((j2)=>j2.id===Y2);if($2===-1)return;O[$2]={...O[$2],...G}}T2()},insertItem(Y2,G){if(u)u(Y2,G??N.totalItems);else{if(G===void 0)O.push(Y2);else O.splice(G,0,Y2);N.totalItems=O.length,E.rebuild(N.totalItems),E2()}T2()},removeItem(Y2){if(r){if(r(Y2)<0)return}else{let G=O.findIndex(($2)=>$2.id===Y2);if(G===-1)return;O.splice(G,1),N.totalItems=O.length,E.rebuild(N.totalItems),E2()}T2()},removeItems(Y2){if(r){let n=0;for(let Q2 of Y2)if(r(Q2)>=0)n++;if(n>0)T2();return n}let G=new Set(Y2),$2=O.length;O=O.filter((n)=>!G.has(n.id));let j2=$2-O.length;if(j2>0)N.totalItems=O.length,E.rebuild(N.totalItems),E2(),N.renderPending=!0,O2();return j2},getItemAt(Y2){return A?A(Y2):O[Y2]},getIndexById(Y2){if(w)return w(Y2);return O.findIndex((G)=>G.id===Y2)},scrollToIndex(Y2,G="start"){let $2=h?h():O.length;if($2===0)return;let j2=Math.max(0,Math.min(Y2,$2-1)),n=typeof G==="string"?G:G.align??"start",Q2=typeof G==="object"?G.behavior:void 0,B2=typeof G==="object"?G.duration:void 0,G2=typeof G==="object"?G.easing:void 0;if(e&&e(j2,n,Q2,B2,G2)!==!1)return;let H2=E.getOffset(j2),v2=E.getSize(j2),S2=N.containerSize,k1=E.getTotalSize(),v0=j.mainAxisPadding,y1=Math.max(0,k1+v0-S2),h2;if(K2)h2=K2(j2,E,S2,$2,n);else{let z1=j.startPadding;switch(n){case"center":h2=z1+H2-(S2-v2)/2;break;case"end":h2=H2+v2+v0-S2;break;default:h2=H2}h2=Math.max(0,Math.min(h2,y1))}if(Q2==="smooth")R2.smoothScrollTo(h2,B2??$0,o??void 0,G2);else if(o)o(h2);else if(Y)F.viewport.scrollLeft=h2;else F.viewport.scrollTop=h2},getScrollPosition(){return a?a():N.scrollPosition},on:W.on.bind(W),off:W.off.bind(W),destroy(){if(N.destroyed)return;if(N.destroyed=!0,N2)N2=!1,F.root.classList.remove(q2);if(M2!==null)cancelAnimationFrame(M2),M2=null;if(C!==null)clearTimeout(C),C=null;R2.detach(),_2?.disconnect(),F.content.removeEventListener("click",b2),F.content.removeEventListener("dblclick",w2),F.content.removeEventListener("contextmenu",I),F.content.removeEventListener("keydown",W2);let Y2=[];for(let G of _)try{G()}catch($2){Y2.push($2 instanceof Error?$2:Error(String($2)))}for(let G of X)if(G.destroy)try{G.destroy()}catch($2){Y2.push($2 instanceof Error?$2:Error(String($2)))}for(let[,G]of H)G.remove();if(H.clear(),k.clear(),F.root.remove(),W.emit("destroy",void 0),W.clear(),Y2.length>0)for(let G of Y2)console.error("vlist: error during destroy:",G)}};for(let[Y2,G]of x)F2[Y2]=G;return F2}var q1=(Q,$,j)=>{let Y=$.getTotalSize(),J=j===!0||Y>I2,Z=Y>I2?I2:Y,U=Y>0?Z/Y:1;return{isCompressed:J,actualSize:Y,virtualSize:Z,ratio:U}},x2=(Q,$,j,Y,J,Z)=>{if(Y===0||$===0)return Z.start=0,Z.end=-1,Z;if(!J.isCompressed||J.ratio===1){let P=j.indexAtOffset(Q),F=j.indexAtOffset(Q+$);if(F<Y-1)F++;return Z.start=Math.max(0,P),Z.end=Math.min(Y-1,Math.max(0,F)),Z}let{virtualSize:U}=J,K=Q/U,M=j.getTotalSize(),V=K*M,W=j.indexAtOffset(V),c=W0(j,Math.max(0,W),$,Y),X=W+c;return Z.start=Math.max(0,W),Z.end=Math.min(Y-1,Math.max(0,X)),Z};var u2=(Q,$,j,Y,J,Z,U)=>{if(!Z.isCompressed||Y===0)return j.getOffset(Q);if(Z.ratio===1)return j.getOffset(Q)-$;let{virtualSize:K}=Z,M=$/K,V=j.getTotalSize(),W=M*V;return j.getOffset(Q)-W},j0=(Q,$,j,Y,J,Z="start")=>{if(Y===0)return 0;let U;if(J.isCompressed&&J.ratio!==1){U=Q/Y*J.virtualSize;let W=$.getSize(Q);switch(Z){case"center":U-=(j-W)/2*J.ratio;break;case"end":U-=(j-W)*J.ratio;break}return Math.max(0,U)}U=$.getOffset(Q);let K=$.getSize(Q);switch(Z){case"center":U-=(j-K)/2;break;case"end":U-=j-K;break}let M=J.virtualSize-j;return Math.max(0,Math.min(U,M))};var c1=(Q)=>{if(typeof Q!=="object"){let $=Q??2;return{top:$,right:$,bottom:$,left:$}}return{top:Q.top??2,right:Q.right??2,bottom:Q.bottom??2,left:Q.left??2}},q0=(Q,$,j={},Y="vlist",J=!1,Z)=>{let{autoHide:U=!0,autoHideDelay:K=1000,minThumbSize:M=15,showOnHover:V=!0,showOnViewportEnter:W=!0,clickBehavior:c="scroll"}=j,X=c==="page"?"scroll":c,P=Z??Q,F=c1(j.padding),y=J?F.left:F.top,E=J?F.right:F.bottom,k=J?F.bottom:F.right,v=j.hoverZoneWidth??k+16,N=0,O=0,z=0,H=0,D=!1,R=!1,S=0,b=0,l=0,m=null,d=!1,i=null,C=0,g=0,x=null,B=null,L=null,_=J?"width":"height",h=J?"translateX":"translateY",a=J?(I)=>I.clientX:(I)=>I.clientY,o=J?"left":"top",f=document.createElement("div"),q=document.createElement("div"),A=document.createElement("div"),p=J?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",r=()=>{if(P===Q)return;let I=Q.offsetTop;f.style[J?"left":"top"]=I?`calc(var(${p}) + ${I}px)`:`var(${p})`,A.style[J?"left":"top"]=`${I}px`},u=()=>{if(f.className=`${Y}-scrollbar`,q.className=`${Y}-scrollbar__thumb`,J)f.classList.add(`${Y}-scrollbar--horizontal`);if(j.padding!==void 0)P.style.setProperty("--vlist-custom-scrollbar-padding-top",`${F.top}px`),P.style.setProperty("--vlist-custom-scrollbar-padding-right",`${F.right}px`),P.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${F.bottom}px`),P.style.setProperty("--vlist-custom-scrollbar-padding-left",`${F.left}px`);if(j.minThumbSize!==void 0)f.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${M}px`);if(f.appendChild(q),P.appendChild(f),A.className=`${Y}-scrollbar__hover`,J)A.classList.add(`${Y}-scrollbar__hover--horizontal`),A.style.height=`${v}px`;else A.style.width=`${v}px`;if(P.appendChild(A),P!==Q)r()},T=()=>{if(m)clearTimeout(m),m=null},w=()=>{if(!U)return;T(),m=setTimeout(J2,K)},s=()=>{if(N<=O)return;if(T(),!d)f.classList.add(`${Y}-scrollbar--visible`),d=!0;if(U&&!D&&!R)w()},J2=()=>{if(D||R)return;f.classList.remove(`${Y}-scrollbar--visible`),d=!1},t=(I,W2)=>{if(N=I,O=W2,r(),N<=O){f.style.display="none",J2();return}f.style.display="";let _2=Math.max(0,O-y-E),M2=O/N;if(z=Math.max(M,M2*_2),q.style[_]=`${z}px`,H=_2-z,Z2(l),!U)s()},Z2=(I)=>{if(l=I,N<=O||H<=0)return;let W2=N-O,_2=Math.min(1,Math.max(0,I/W2));q.style.transform=`${h}(${_2*H}px)`},V2=(I)=>{if(I.target===q||X!=="jump"||H<=0)return;let W2=N-O,_2=f.getBoundingClientRect(),M2=a(I)-_2[o],F2=Math.max(0,Math.min(M2-z/2,H));$(F2/H*W2),s()},L2=()=>{if(x!==null)clearTimeout(x),x=null;if(B!==null)cancelAnimationFrame(B),B=null;L=null},A2=(I)=>{let W2=H>0?g/I*H:0;if(C<W2)return-1;if(C>=W2+z)return 1;return 0},D2=()=>{let I=N-O,W2=A2(I);if(W2===0){L2();return}if(W2===-1){if(g<=0){L2();return}let _2=Math.max(0,g-O);g=_2,$(_2)}else{if(g>=I){L2();return}let _2=Math.min(I,g+O);g=_2,$(_2)}s()},K2=(I)=>{if(L===null){L=I,B=requestAnimationFrame(K2);return}let W2=N-O,_2=I-L;L=I;let M2=A2(W2);if(M2===0){L2();return}let F2=12*O/1000,Y2=Math.min(F2*_2,O);if(M2===-1){if(g<=0){L2();return}let G=Math.max(0,g-Y2);g=G,$(G)}else{if(g>=W2){L2();return}let G=Math.min(W2,g+Y2);g=G,$(G)}T(),B=requestAnimationFrame(K2)},e=()=>{L2(),w(),document.removeEventListener("mouseup",e)},q2=(I)=>{if(I.target===q||X!=="scroll")return;I.preventDefault();let W2=f.getBoundingClientRect();C=a(I)-W2[o],g=l,D2(),x=setTimeout(()=>{B=requestAnimationFrame(K2)},350),document.addEventListener("mouseup",e)},N2=(I)=>{I.preventDefault(),I.stopPropagation(),D=!0,S=a(I),b=l,T(),f.classList.add(`${Y}-scrollbar--dragging`),document.addEventListener("mousemove",X2),document.addEventListener("mouseup",U2)},X2=(I)=>{if(!D)return;let W2=a(I)-S,_2=H>0?W2/H:0,M2=N-O,F2=_2*M2,Y2=Math.max(0,Math.min(b+F2,M2));q.style.transform=`${h}(${Y2/M2*H}px)`,$(Y2)},U2=()=>{if(D=!1,f.classList.remove(`${Y}-scrollbar--dragging`),U&&!R)w();document.removeEventListener("mousemove",X2),document.removeEventListener("mouseup",U2)},k2=J?(I)=>I.touches[0].clientX:(I)=>I.touches[0].clientY,E2=(I)=>{I.stopPropagation(),D=!0,S=k2(I),b=l,T(),f.classList.add(`${Y}-scrollbar--dragging`)},O2=(I)=>{if(!D)return;I.preventDefault();let W2=k2(I)-S,_2=H>0?W2/H:0,M2=N-O,F2=_2*M2,Y2=Math.max(0,Math.min(b+F2,M2));q.style.transform=`${h}(${Y2/M2*H}px)`,$(Y2)},y2=()=>{if(D=!1,f.classList.remove(`${Y}-scrollbar--dragging`),U)w()},z2=(I)=>{if(I.target===q)return;if(H<=0)return;let W2=I.touches[0],_2=f.getBoundingClientRect(),M2=(J?W2.clientX:W2.clientY)-_2[o];if(X==="jump"){let F2=N-O,Y2=Math.max(0,Math.min(M2-z/2,H));$(Y2/H*F2)}else C=M2,g=l,D2();s()},T2=()=>{if(W)s()},R2=()=>{if(!D){if(R=!1,U)w()}},P2=()=>{R=!0,T(),s()},b2=()=>{if(R=!1,!D&&U)w()},w2=()=>{if(T(),L2(),i!==null)cancelAnimationFrame(i),i=null;f.removeEventListener("click",V2),f.removeEventListener("mousedown",q2),f.removeEventListener("mouseenter",P2),document.removeEventListener("mouseup",e),f.removeEventListener("mouseleave",b2),f.removeEventListener("touchstart",z2),q.removeEventListener("mousedown",N2),q.removeEventListener("touchstart",E2),q.removeEventListener("touchmove",O2),q.removeEventListener("touchend",y2),Q.removeEventListener("mouseenter",T2),Q.removeEventListener("mouseleave",R2),document.removeEventListener("mousemove",X2),document.removeEventListener("mouseup",U2),A.removeEventListener("click",V2),A.removeEventListener("mousedown",q2),A.removeEventListener("mouseenter",P2),A.removeEventListener("mouseleave",b2),A.remove(),P.style.removeProperty("--vlist-custom-scrollbar-padding-top"),P.style.removeProperty("--vlist-custom-scrollbar-padding-right"),P.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),P.style.removeProperty("--vlist-custom-scrollbar-padding-left"),f.remove()};if(u(),f.addEventListener("click",V2),f.addEventListener("mousedown",q2),f.addEventListener("mouseenter",P2),f.addEventListener("mouseleave",b2),f.addEventListener("touchstart",z2,{passive:!0}),q.addEventListener("mousedown",N2),q.addEventListener("touchstart",E2,{passive:!0}),q.addEventListener("touchmove",O2,{passive:!1}),q.addEventListener("touchend",y2,{passive:!0}),Q.addEventListener("mouseenter",T2),Q.addEventListener("mouseleave",R2),A.addEventListener("click",V2),A.addEventListener("mousedown",q2),V)A.addEventListener("mouseenter",P2),A.addEventListener("mouseleave",b2);return{show:s,hide:J2,updateBounds:t,updatePosition:Z2,isVisible:()=>d,destroy:w2}};var d1=0.65,Y1=0.5,Z1=1.7,l1=0.95,r1=0.1,r2=5,s1=100;function G0(Q){let $=Q?.force??!1,j,Y,J,Z,U,K={isCompressed:!1,actualSize:0,virtualSize:0,ratio:1},M=!1,V=0,W=null,c=!1,X=0,P=0,F=null,y=null,E=0,k=0,v=null,N=new Float64Array(r2),O=new Float64Array(r2),z=0,H=0,D={start:0,end:-1},R=-1,S=null;function b(){return Math.max(0,K.virtualSize+V-j.containerSize)}function l(){if(K.virtualSize<=0)return 0;return Math.max(0,j.containerSize*(1-K.ratio))}function m(q){let A=j.totalItems;if(K=q1(A,Y,$),K.isCompressed&&!M)a(q);else if(!K.isCompressed&&M)o(q);if(K.isCompressed){if(V=l(),j.isCompressed=!0,j.compressionRatio=K.ratio,q.updateContentSize(K.virtualSize+V),W)W.updateBounds(K.virtualSize+V,j.containerSize)}}let d=null,i=null,C=null,g=null,x=null;function B(q){X=q,P=q,j.prevScrollPosition=j.scrollPosition,j.scrollPosition=q,j.scrollDirection=q>j.prevScrollPosition?1:-1,S.forceRender()}function L(){if(F!==null)cancelAnimationFrame(F),F=null;if(y!==null)cancelAnimationFrame(y),y=null}function _(q){L(),B(Math.max(0,Math.min(q,b())))}function h(q,A,p=e2){L();let r=Math.max(0,Math.min(q,b())),u=X;if(Math.abs(r-u)<Y1){B(r);return}let T=performance.now(),w=(s)=>{let J2=Math.min((s-T)/A,1);if(B(u+(r-u)*p(J2)),J2<1)y=requestAnimationFrame(w);else y=null};y=requestAnimationFrame(w)}function a(q){M=!0,j.isCompressed=!0;let A=Z?"scrollLeft":"scrollTop",p=Z?"overflowX":"overflow",r=J[A];if(J.style[p]="hidden",J[A]=0,r>0)X=r,P=r,j.scrollPosition=r;V=l();let u=()=>{let t=P-X,Z2=b();if(Math.abs(t)<Y1)X=Math.max(0,Math.min(P,Z2)),P=X,F=null;else X+=t*d1,X=Math.max(0,Math.min(X,Z2)),F=requestAnimationFrame(u);j.prevScrollPosition=j.scrollPosition,j.scrollPosition=X,j.scrollDirection=X>j.prevScrollPosition?1:-1,q.forceRender()};d=(t)=>{t.preventDefault();let Z2=b();if(P=Math.max(0,Math.min(P+t.deltaY*K.ratio*Z1,Z2)),F===null)F=requestAnimationFrame(u)},J.addEventListener("wheel",d,{passive:!1});let T=()=>{if(v!==null)cancelAnimationFrame(v),v=null};i=(t)=>{if(T(),F!==null)cancelAnimationFrame(F),F=null;let Z2=t.touches[0];if(!Z2)return;let V2=Z?Z2.clientX:Z2.clientY;E=V2,k=X,z=1,H=0,N[0]=performance.now(),O[0]=V2},C=(t)=>{t.preventDefault();let Z2=t.touches[0];if(!Z2)return;let V2=Z?Z2.clientX:Z2.clientY,L2=performance.now(),A2=z<r2?z:H;if(N[A2]=L2,O[A2]=V2,z<r2)z++;else H=(H+1)%r2;let D2=E-V2,K2=b(),e=Math.max(0,Math.min(k+D2*K.ratio*Z1,K2));X=e,P=e,j.prevScrollPosition=j.scrollPosition,j.scrollPosition=e,j.scrollDirection=e>j.prevScrollPosition?1:-1,q.forceRender()},g=()=>{let t=performance.now(),Z2=1/0,V2=0,L2=-1,A2=0,D2=0;for(let N2=0;N2<z;N2++){let X2=(H+N2)%r2,U2=N[X2];if(t-U2>=s1)continue;D2++;let k2=O[X2];if(U2<Z2)Z2=U2,V2=k2;if(U2>L2)L2=U2,A2=k2}let K2=0;if(D2>=2){let N2=L2-Z2;if(N2>0)K2=(V2-A2)/N2}if(z=0,H=0,Math.abs(K2)<r1)return;let e=K2*16,q2=()=>{if(e*=l1,Math.abs(e)<0.5){v=null;return}let N2=b(),X2=X+e;if(X2=Math.max(0,Math.min(X2,N2)),X2<=0&&e<0||X2>=N2&&e>0){X=X2,P=X2,j.scrollPosition=X2,q.forceRender(),v=null;return}X=X2,P=X2,j.prevScrollPosition=j.scrollPosition,j.scrollPosition=X2,j.scrollDirection=X2>j.prevScrollPosition?1:-1,q.forceRender(),v=requestAnimationFrame(q2)};v=requestAnimationFrame(q2)},J.addEventListener("touchstart",i,{passive:!0}),J.addEventListener("touchmove",C,{passive:!1}),J.addEventListener("touchend",g,{passive:!0}),J.addEventListener("touchcancel",g,{passive:!0}),x=()=>{if(J[A]!==0)J[A]=0},J.addEventListener("scroll",x,{passive:!0});let w=(t)=>{if(X=t,P=t,F!==null)cancelAnimationFrame(F),F=null;j.prevScrollPosition=j.scrollPosition,j.scrollPosition=t,j.scrollDirection=t>j.prevScrollPosition?1:-1,q.forceRender()},s=q.getMethod("_scrollbar:setCallback"),J2=q.getMethod("_scrollbar:getInstance");if(s&&J2){s(w);let t=J2();if(t)W=t,c=!1,W.updateBounds(K.virtualSize+V,j.containerSize)}else if(!W){let t=q.config.classPrefix;if(W=q0(J,w,{},t,Z,q.dom.root),c=!0,!J.classList.contains(`${t}-viewport--custom-scrollbar`))J.classList.add(`${t}-viewport--custom-scrollbar`);W.updateBounds(K.virtualSize+V,j.containerSize)}}function o(q){M=!1,j.isCompressed=!1,j.compressionRatio=1,X=0,P=0,z=0,H=0,f();let A=Z?"overflowX":"overflow";J.style[A]="auto",V=0,q.updateContentSize(Y.getTotalSize())}function f(){if(F!==null)cancelAnimationFrame(F),F=null;if(y!==null)cancelAnimationFrame(y),y=null;if(v!==null)cancelAnimationFrame(v),v=null;if(d)J.removeEventListener("wheel",d),d=null;if(i)J.removeEventListener("touchstart",i),i=null;if(C)J.removeEventListener("touchmove",C),C=null;if(g)J.removeEventListener("touchend",g),J.removeEventListener("touchcancel",g),g=null;if(x)J.removeEventListener("scroll",x),x=null;if(W&&c)W.destroy();W=null,c=!1;let q=Z?"scrollLeft":"scrollTop";if(J&&J[q]!==0)J[q]=0}return{name:"scale",priority:20,setup(q){j=q.getState(),Y=q.sizeCache,J=q.dom.viewport,Z=q.config.axis.primary==="x",U=q.config.overscan,S=q,q.registerMethod("_updateCompressionMode",()=>m(q)),q.registerMethod("_scale:getCompression",()=>K),q.registerMethod("_scale:easedScrollTo",(A,p)=>h(A,p)),q.setScrollFns(()=>X,(A)=>{if(!K.isCompressed||!M){let r=Z?"scrollLeft":"scrollTop";J[r]=A;return}if(L(),v!==null)cancelAnimationFrame(v),v=null;let p=A*K.ratio;B(Math.max(0,Math.min(p,b())))}),q.setScrollToIndexFn((A,p,r,u,T)=>{if(!K.isCompressed||!M)return!1;let w=j0(A,Y,j.containerSize,j.totalItems,K,p);if(r==="smooth")h(w,u??$0,T);else _(w)}),m(q),R=j.totalItems,q.registerDestroyHandler(f)},hooks:{onCalculate(q){if(q.totalItems!==R&&S)R=q.totalItems,m(S);if(!K.isCompressed||!M)return;let A=q.totalItems;if(A===0||q.containerSize<=0){q.visibleCount=0;return}x2(q.scrollPosition,q.containerSize,Y,A,K,D);let p=Math.max(0,D.start-U),r=Math.min(A-1,D.end+U),u=Math.min(r-p+1,q.capacity);q.visibleCount=u,q.startIndex=p;for(let T=0;T<u;T++){let w=p+T;q.visibleIndices[T]=w,q.visibleOffsets[T]=u2(w,q.scrollPosition,Y,A,q.containerSize,K),q.visibleSizes[T]=Y.getSize(w)}q.prevRangeStart=p,q.prevRangeEnd=r},onAfterScroll(q){if(W&&M)W.updatePosition(q),W.show()},onResize(){if(M){if(V=l(),W)W.updateBounds(K.virtualSize+V,j.containerSize);let q=b();if(X>q)X=q,P=q,j.scrollPosition=q}}},destroy(){f()}}}function M0(Q){let $=null,j,Y=0,J=0;return{name:"scrollbar",priority:15,setup(Z){let{dom:U,config:K}=Z,{classPrefix:M}=K,V=K.axis.primary==="x";j=Z.getState();let W=(c)=>{if(V)U.viewport.scrollLeft=c;else U.viewport.scrollTop=c};if(Z.registerMethod("_scrollbar:setCallback",(c)=>{W=c}),$=q0(U.viewport,(c)=>{W(c)},Q,M,V,U.root),U.viewport.classList.add(`${M}-viewport--custom-scrollbar`),Q?.gutter)U.viewport.classList.add(`${M}-viewport--gutter`);queueMicrotask(()=>{if(!j.isCompressed)$?.updateBounds(j.totalSize,j.containerSize)}),Z.registerMethod("_scrollbar:getInstance",()=>$),Z.registerDestroyHandler(()=>{if($?.destroy(),$=null,U.viewport.classList.remove(`${M}-viewport--custom-scrollbar`),Q?.gutter)U.viewport.classList.remove(`${M}-viewport--gutter`)})},hooks:{onAfterScroll(Z){if(!j.isCompressed){let{totalSize:U,containerSize:K}=j;if(U!==Y||K!==J)Y=U,J=K,$?.updateBounds(U,K)}$?.updatePosition(Z),$?.show()},onResize(){if(!j.isCompressed){let{totalSize:Z,containerSize:U}=j;Y=Z,J=U,$?.updateBounds(Z,U)}}},destroy(){$?.destroy(),$=null}}}var K1=(Q)=>{let $=Math.max(1,Math.floor(Q.columns)),j=Q.gap??0,Y=Q.isHeaderFn,J={row:0,col:0},Z=(F)=>{if(F<=0)return 0;if(!Y)return Math.ceil(F/$);let y=0,E=0,k=0;for(let v=0;v<F;v++)if(Y(v)){if(k++,E)y++,E=0;y++,E=0}else if(E++,E>=$)y++,E=0;if(E)y++;return y},U=(F)=>{return J.row=K(F),J.col=M(F),J},K=(F)=>{if(!Y)return Math.floor(F/$);let y=0,E=0;for(let k=0;k<=F;k++)if(Y(k)){if(E)y++,E=0;if(k===F)return y;y++,E=0}else{if(k===F)return y;if(E++,E>=$)y++,E=0}return console.warn(`⚠️ getRow(${F}) fell through - returning ${y}`),y},M=(F)=>{if(!Y)return F%$;if(Y(F))return 0;let y=0;for(let E=0;E<=F;E++)if(Y(E))y=0;else{if(E===F)return y;if(y++,y>=$)y=0}return y},V=(F,y,E)=>{if(E<=0)return{start:0,end:-1};if(!Y){let z=Math.max(0,F*$),H=Math.min(E-1,(y+1)*$-1);return{start:z,end:H}}let k=-1,v=-1,N=0,O=0;for(let z=0;z<E;z++){if(Y(z)){if(O)N++,O=0;if(N>=F&&N<=y){if(k<0)k=z;v=z}N++,O=0}else{if(N>=F&&N<=y){if(k<0)k=z;v=z}if(O++,O>=$)N++,O=0}if(N>y&&!O)break}if(k<0)return{start:0,end:-1};return{start:k,end:v}},W=(F,y,E)=>{if(y<0||y>=$)return-1;let k=F*$+y;if(k<0||k>=E)return-1;return k},c=(F)=>{let y=($-1)*j;return Math.max(0,(F-y)/$)};return{get columns(){return $},get gap(){return j},update:(F)=>{if(F.columns!==void 0)$=Math.max(1,Math.floor(F.columns));if(F.gap!==void 0)j=F.gap;if(F.isHeaderFn!==void 0)Y=F.isHeaderFn},getTotalRows:Z,getPosition:U,getRow:K,getCol:M,getItemRange:V,getItemIndex:W,getColumnWidth:c,getColumnOffset:(F,y)=>{let E=c(y);return F*(E+j)}}};var m2={selected:!1,focused:!1};function X0(Q){if(!Q.columns||Q.columns<1)throw Error("[vlist] grid: columns must be >= 1");let $,j,Y,J,Z,U,K,M,V,W,c=null,X=null,P=!1,F=null,y=0,E=0,k=0,v=0,N=new Map,O=0,z={start:0,end:-1},H=-1,D=-1,R=!0;function S(){if(P||!F)return;P=!0,X=F("_scale:getCompression")??null}function b(){return $.getTotalRows(Y.totalItems)}function l(g){let x=$.getRow(g),B=$.getCol(g),L=$.getColumnOffset(B,O)+y,_=j.getOffset(x)+k;if(M)return`translate(${Math.round(_)}px, ${Math.round(L)}px)`;return`translate(${Math.round(L)}px, ${Math.round(_)}px)`}function m(g,x){let B=$.getRow(x),L=$.getColumnWidth(O),_=j.getSize(B)-$.gap;if(M)g.style.width=`${_}px`,g.style.height=`${L}px`;else g.style.width=`${L}px`,g.style.height=`${_}px`}function d(g,x,B,L){if(L)L(B,m2);else m2.selected=!1,m2.focused=!1;let _=U(x,B,m2);if(typeof _==="string")g.innerHTML=_;else g.innerHTML="",g.appendChild(_)}function i(){if(Y.destroyed)return;let{scrollPosition:g,containerSize:x}=Y;if(!R&&g===H&&x===D)return;H=g,D=x,R=!1;let B=b();if(x<=0||B===0)return;S();let L=X?.()??null,_=L!==null&&L.isCompressed,h,a;if(_)x2(g,x,j,B,L,z),h=Math.max(0,z.start-W),a=Math.min(B-1,z.end+W);else{let u=j.indexAtOffset(g),T=j.indexAtOffset(g+x);if(T<B-1)T++;u=Math.max(0,u),T=Math.min(B-1,Math.max(0,T)),h=Math.max(0,u-W),a=Math.min(B-1,T+W)}if(h===Y.prevRangeStart&&a===Y.prevRangeEnd&&!Y.renderPending)return;let o=$.getItemRange(h,a,Y.totalItems);N.forEach((u,T)=>{if(T<o.start||T>o.end)u.el.remove(),J.release(u.el),N.delete(T)});let f=`${V}-item ${V}-grid-item`,q=c?.()??null,A=q?`${V}-item--selected`:"",p=q?`${V}-item--focused`:"";for(let u=o.start;u<=o.end;u++){let T=K(u);if(!T)continue;let w=N.get(u);if(w===void 0){let s=J.acquire();s.className=f,s.setAttribute("data-index",String(u)),s.setAttribute("data-id",String(T.id)),d(s,T,u,q),w={el:s,lastItem:T},N.set(u,w),Z.appendChild(s)}else if(w.lastItem!==T)w.el.setAttribute("data-id",String(T.id)),w.lastItem=T,d(w.el,T,u,q);if(q)if(q(u,m2),w.el.classList.toggle(A,m2.selected),w.el.classList.toggle(p,m2.focused),m2.selected)w.el.setAttribute("aria-selected","true");else w.el.removeAttribute("aria-selected");if(m(w.el,u),_){let s=$.getRow(u),J2=$.getCol(u),t=$.getColumnOffset(J2,O)+y,Z2=u2(s,g,j,B,x,L)+k;w.el.style.transform=M?`translate(${Math.round(Z2)}px, ${Math.round(t)}px)`:`translate(${Math.round(t)}px, ${Math.round(Z2)}px)`}else w.el.style.transform=l(u)}if(!_){let u=j.getTotalSize()+v;Z.style[M?"width":"height"]=u+"px"}Y.totalSize=j.getTotalSize()+v,Y.prevRangeStart=h,Y.prevRangeEnd=a,Y.renderPending=!1;let r=o.end-o.start+1;Y.visibleCount=Math.min(r,Y.capacity),Y.startIndex=o.start;for(let u=0;u<Y.visibleCount;u++){let T=o.start+u,w=$.getRow(T);Y.visibleIndices[u]=T,Y.visibleOffsets[u]=_?u2(w,g,j,B,x,L):j.getOffset(w),Y.visibleSizes[u]=j.getSize(w)}}function C(){if(Y.destroyed)return;j.rebuild(b()),Y.prevRangeStart=-1,Y.prevRangeEnd=-1,Y.renderPending=!0,R=!0,i()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(g){let x=Q.gap??0;$=K1({columns:Q.columns,gap:x}),j=g.sizeCache,Y=g.getState(),J=g.pool,Z=g.dom.content,U=g.template,M=g.config.axis.primary==="x",V=g.config.classPrefix,W=g.config.overscan,K=g.getItem.bind(g),c=()=>g.getItemStateFn(),F=g.getMethod.bind(g),y=g.config.crossPadStart,E=g.config.crossAxisPadding,k=g.config.startPadding,v=g.config.mainAxisPadding,O=Y.crossSize-E;let B=g.rawSizeSpec,L;if(typeof B==="function"){let h={columnWidth:$.getColumnWidth(O),columns:Q.columns,gap:x};L=B(0,h),g.setSizeConfig((a)=>{h.columnWidth=$.getColumnWidth(O);let o=a*Q.columns;return B(o,h)+x})}else if(L=B,x>0)g.setSizeConfig(L+x);if(j.rebuild(b()),x>0){let _=j.getTotalSize;j.getTotalSize=()=>{let h=_();return h>0?h-x:0}}g.setVirtualTotalFn(()=>b()),g.dom.root.classList.add(`${V}--grid`),g.setRenderFn(i,C),g.registerMethod("getGridLayout",()=>$),g.registerMethod("updateGrid",(_)=>{if(_.columns!==void 0){if(!Number.isInteger(_.columns)||_.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(_.gap!==void 0&&_.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if($.update(_),_.gap!==void 0||_.columns!==void 0){let h=$.gap;if(typeof B==="function"){let a={columnWidth:$.getColumnWidth(O),columns:$.columns,gap:h};g.setSizeConfig((o)=>{a.columnWidth=$.getColumnWidth(O);let f=o*$.columns;return B(f,a)+h})}else g.setSizeConfig(L+h);j.rebuild(b())}if(_.columns!==void 0)g.setNavConfig({ud:$.columns});O=Y.crossSize-E,C()}),g.registerMethod("scrollToIndex",(_,h="start")=>{let a=$.getRow(_),o=b();if(o===0)return;let f=Math.max(0,Math.min(a,o-1)),q=j.getOffset(f)+k,A=j.getSize(f),p=Y.containerSize,r=j.getTotalSize()+v,u=Math.max(0,r-p),T=typeof h==="string"?h:h.align??"start",w=typeof h==="object"?h.behavior:void 0,s=typeof h==="object"?h.duration:void 0,J2;switch(T){case"center":J2=q-(p-A)/2;break;case"end":J2=q-p+A;break;default:J2=q}J2=Math.max(0,Math.min(J2,u)),S();let t=X?.()??null;if(t?.isCompressed&&w==="smooth"&&s&&s>0){let Z2=j0(f,j,p,o,t,T),V2=F?.("_scale:easedScrollTo");if(V2)V2(Z2,s);else g.scrollTo(J2)}else if(w==="smooth"&&s&&s>0)g.smoothScrollTo(J2,s);else g.scrollTo(J2)}),g.setNavConfig({total:()=>Y.totalItems,ud:Q.columns,lr:1,scrollIndex:(_)=>$.getRow(_)}),g.registerDestroyHandler(()=>{for(let[,_]of N)_.el.remove();N.clear(),g.dom.root.classList.remove(`${V}--grid`)})},hooks:{onResize(g,x){let B=Y.crossSize-E;if(Math.abs(B-O)<1)return;if(O=B,(X?.()??null)?.isCompressed)C();else N.forEach((_,h)=>{m(_.el,h),_.el.style.transform=l(h)})}},destroy(){N.clear()}}}function D0(){return{name:"a11y",priority:55,setup(Q){if(Q.getItemStateFn())return;Q.enableListboxRole();let{dom:$,config:j,sizeCache:Y}=Q,J=Q.getState(),Z=Q.emitter,U=j.classPrefix,K=$.liveRegion,M=-1,V=!1,W,c=-1,X=(R)=>Q.getItem(R),P=()=>J.totalItems,F={id:0,index:0},y={selected:[],items:[]};Q.setItemStateFn((R,S)=>{S.selected=c===R,S.focused=V&&M===R});function E(R){K.textContent="",K.textContent=R}let k=(R,S,b)=>{let l=R;while(l>=0&&l<b){let m=X(l);if(!m||!m.__groupHeader)return l;l+=S}l=R-S;while(l>=0&&l<b){let m=X(l);if(!m||!m.__groupHeader)return l;l-=S}return R},v=(R)=>{let S=Q.getNavConfig(),b=S.scrollIndex?S.scrollIndex(R):R,l=Y.getOffset(b),m=Y.getSize(b),d=J.scrollPosition,i=J.containerSize,C=j.startPadding,g=j.endPadding,x=l+C,B=x+m,L=d;if(x<d)L=Math.max(0,l);else if(B>d+i)L=B+g-i;if(L!==d)J.scrollPosition=L,Q.scrollTo(L)},N=(R,S)=>{if($.content.setAttribute("aria-activedescendant",`${U}-item-${R}`),S)v(R);Q.forceRender()},O=(R)=>{M=R,V=!0,N(R,!0);let S=X(R);if(S)F.id=S.id,F.index=R,Z.emit("focus:change",F),E(`Item ${R+1} of ${P()}`)},z=(R,S)=>{if(M=R,S)V=!0;let b=X(R);if(b&&W===b.id)W=void 0,c=-1;else W=b?.id,c=b?R:-1;if(N(R,S),W!==void 0&&b&&W===b.id)y.selected[0]=W,y.selected.length=1,y.items[0]=b,y.items.length=1,E(`Selected, item ${R+1} of ${P()}`);else y.selected.length=0,y.items.length=0,E("Deselected");Z.emit("selection:change",y)},H=()=>{if(J.destroyed)return;if(!$.content.matches(":focus-visible"))return;let R=P();if(R===0)return;let S=M>=0?Math.min(M,R-1):0;S=k(S,1,R),O(S)},D=(R)=>{if(J.destroyed)return;let S=R.relatedTarget;if(S&&$.root.contains(S))return;V=!1,$.content.removeAttribute("aria-activedescendant"),Q.forceRender()};$.content.addEventListener("focusin",H),$.content.addEventListener("focusout",D),Q.registerKeydownHandler((R)=>{if(J.destroyed)return;let S=P();if(S===0)return;let b=M,l=b;if(R.key===" "||R.key==="Enter"){if(b>=0){let d=X(b);if(d&&!d.__groupHeader)z(b,!0)}R.preventDefault();return}let m=Q.getNavConfig();if(m.navigate)switch(R.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":l=m.navigate(b,R.key,S);break;default:return}else{let d=m.ud||1,i=m.lr,C=j.axis.primary==="x";switch(R.key){case"ArrowUp":if(C&&!i)return;l=b-(C?i:d);break;case"ArrowDown":if(C&&!i)return;l=b+(C?i:d);break;case"ArrowLeft":if(!C&&!i)return;l=b-(C?d:i);break;case"ArrowRight":if(!C&&!i)return;l=b+(C?d:i);break;case"PageUp":case"PageDown":{let g=Y.getSize(Math.max(0,m.scrollIndex?m.scrollIndex(b):b)),B=Math.max(1,Math.floor(J.containerSize/g))*d;l=R.key==="PageUp"?b-B:b+B;break}case"Home":l=0;break;case"End":l=S-1;break;default:return}}if(l<0)l=0;else if(l>=S)l=S-1;if(R.preventDefault(),l=k(l,l>=b?1:-1,S),l!==b)O(l)}),Q.registerClickHandler((R)=>{if(J.destroyed)return;let S=R.target.closest("[data-index]");if(!S)return;let b=parseInt(S.dataset.index??"-1",10);if(b<0)return;let l=X(b);if(!l||l.__groupHeader)return;V=!1,$.content.focus({preventScroll:!0}),z(b,!1)}),Q.registerDestroyHandler(()=>{$.content.removeEventListener("focusin",H),$.content.removeEventListener("focusout",D)})}}}var o2=(Q,$,j)=>{if(String(j).startsWith(f2))return!1;let Y=f2+$;if(Q.has(Y))return Q.delete(Y),Q.add(j),!0;return!1},U1=(Q)=>({selected:new Set(Q??[]),focusedIndex:-1,focusVisible:!1});function c2(Q,$,j,Y){if(j===0)return;let J=Y?-$:$,Z=Q.focusedIndex+J;if(Z<0)Z=0;if(Z>=j)Z=j-1;Q.focusedIndex=Z}function Y0(Q){return Array.from(Q)}var a1={preventScroll:!0};function A0(Q){let $=Q?.mode??"single",j=Q?.followFocus??!1,Y=Q?.focusOnClick??!1,J,Z,U,K,M,V,W,c,X=-1,P=new Map,F=null,y=null,E=null,k=null,v,N=!1;function O(B){if(N)return;N=!0,F=B.getMethod("_layoutToDataIndex")??null,y=B.getMethod("_dataToLayoutIndex")??null,E=B.getMethod("_isGroupHeader")??null,k=B.getMethod("_scrollItemIntoView")??null;let L=B.getMethod("getGroupLayout");if(L){let _=L();v=()=>_.totalEntries}}let z=(B)=>F?F(B):B,H=(B)=>{let L=z(B);return L>=0?Z(L):void 0},D=(B,L,_)=>{if(!E)return B;let h=B;while(h>=0&&h<_){if(!E(h))return h;h+=L}h=B-L;while(h>=0&&h<_){if(!E(h))return h;h-=L}return B};function R(B,L){if($==="single")J.selected.clear(),P.clear();if(J.selected.add(B),L)P.set(B,L)}function S(B,L){if(J.selected.has(B))J.selected.delete(B),P.delete(B);else R(B,L)}function b(){J.selected.clear(),P.clear()}function l(B){J.selected.delete(B),P.delete(B)}function m(B,L){let _=Math.min(B,L),h=Math.max(B,L);for(let a=_;a<=h;a++){let o=Z(a);if(o)J.selected.add(o.id),P.set(o.id,o)}}function d(){let B=W.totalItems;for(let L=0;L<B;L++){let _=Z(L);if(_)J.selected.add(_.id),P.set(_.id,_)}}function i(){if(J.selected.size===0)return[];if(P.size>=J.selected.size){let h=[];for(let a of J.selected){let o=P.get(a);if(o)h.push(o)}if(h.length===J.selected.size)return h}let B=[],L=new Set(J.selected),_=W.totalItems;for(let h=0;h<_&&L.size>0;h++){let a=Z(h);if(a&&L.has(a.id))B.push(a),P.set(a.id,a),L.delete(a.id)}return B}function C(){U(),K.emit("selection:change",{selected:Y0(J.selected),items:i()})}let g=null,x=-1;return{name:"selection",priority:50,setup(B){B.enableListboxRole(),J=U1(Q?.initial),Z=B.getItem.bind(B),U=B.forceRender.bind(B),K=B.emitter,M=B.dom;let L=B.config;if(V=B.sizeCache,W=B.getState(),c=B.scrollTo.bind(B),v=()=>W.totalItems,$==="none"){B.registerMethod("select",()=>{}),B.registerMethod("deselect",()=>{}),B.registerMethod("toggleSelect",()=>{}),B.registerMethod("selectAll",()=>{}),B.registerMethod("clearSelection",()=>{}),B.registerMethod("getSelected",()=>[]),B.registerMethod("getSelectedItems",()=>[]),B.registerMethod("selectNext",()=>{}),B.registerMethod("selectPrevious",()=>{}),B.registerMethod("_seedSelection",()=>{}),B.registerMethod("_getFocusedId",()=>{return}),B.registerMethod("_focusById",()=>{});return}let _=L.classPrefix;B.setItemStateFn((q,A)=>{if(O(B),J.selected.size>0){let p=z(q),r=p>=0?Z(p):void 0,u=r?.id;if(u!==void 0)if(J.selected.has(u))A.selected=!0;else if(o2(J.selected,p,u))A.selected=!0,P.delete(f2+p),P.set(u,r);else A.selected=!1;else A.selected=!1}else A.selected=!1;A.focused=J.focusVisible&&J.focusedIndex===q}),B.registerMethod("_getSelectedIds",()=>J.selected),B.registerMethod("_getFocusedIndex",()=>J.focusVisible?J.focusedIndex:-1),M.root.classList.add(`${_}--selectable`);let h=(q)=>{g=null,x=-1;let A=q.target.closest("[data-index]");if(!A)return!1;let p=parseInt(A.dataset.index??"-1",10);if(p<0)return!1;let r=z(p);if(r<0)return!1;let u=Z(r);if(!u)return!1;return g=u,x=p,!0},a=(q)=>{if(q<0)return;if(k){k(q);return}let A=B.getNavConfig(),p=A.scrollIndex?A.scrollIndex(q):q,r=V.getOffset(p),u=V.getSize(p),T=W.containerSize,w=W.scrollPosition;if(r<w)c(r);else if(r+u>w+T)c(r-T+u)},o=()=>{if(W.destroyed)return;if(O(B),!M.content.matches(":focus-visible")&&!M.root.matches(":focus-visible"))return;let q=v();if(q===0)return;let A=J.focusedIndex>=0?Math.min(J.focusedIndex,q-1):0;A=D(A,1,q),J.focusedIndex=A,J.focusVisible=!0,M.content.setAttribute("aria-activedescendant",`${_}-item-${A}`),a(A),U()};M.root.addEventListener("focusin",o);let f=(q)=>{if(W.destroyed)return;let A=q.relatedTarget;if(A&&M.root.contains(A))return;J.focusVisible=!1,U(),M.content.removeAttribute("aria-activedescendant")};M.root.addEventListener("focusout",f),B.registerDestroyHandler(()=>{M.root.removeEventListener("focusin",o),M.root.removeEventListener("focusout",f)}),B.registerClickHandler((q)=>{if(O(B),!h(q))return;if($==="multiple"&&q.shiftKey&&J.focusedIndex>=0){let A=X>=0?X:J.focusedIndex,p=z(A),r=z(x);if(p>=0&&r>=0)m(p,r);J.focusedIndex=x,J.focusVisible=Y,X=x,C();return}J.focusedIndex=x,J.focusVisible=Y,X=x,M.content.focus(a1),S(g.id,g),C()}),B.registerKeydownHandler((q)=>{O(B);let A=v();if(A===0)return;let p=B.getNavConfig(),r=J.focusedIndex,u=!1,T=!1;if(p.navigate&&(q.key==="ArrowUp"||q.key==="ArrowDown"||q.key==="ArrowLeft"||q.key==="ArrowRight"||q.key==="PageUp"||q.key==="PageDown"||q.key==="Home"||q.key==="End")){let s=p.navigate(J.focusedIndex,q.key,A);if(s!==J.focusedIndex)J.focusedIndex=Math.max(0,Math.min(s,A-1));J.focusVisible=!0,u=!0}else switch(q.key){case"ArrowUp":{let s=p.ud||1,J2=p.lr,t=L.axis.primary==="x";if(t&&!J2)break;c2(J,-(t?J2:s),A,L.reverse),J.focusVisible=!0,u=!0;break}case"ArrowDown":{let s=p.ud||1,J2=p.lr,t=L.axis.primary==="x";if(t&&!J2)break;c2(J,t?J2:s,A,L.reverse),J.focusVisible=!0,u=!0;break}case"ArrowLeft":{let s=p.ud||1,J2=p.lr,t=L.axis.primary==="x";if(!t&&!J2)break;c2(J,-(t?s:J2),A,L.reverse),J.focusVisible=!0,u=!0;break}case"ArrowRight":{let s=p.ud||1,J2=p.lr,t=L.axis.primary==="x";if(!t&&!J2)break;c2(J,t?s:J2,A,L.reverse),J.focusVisible=!0,u=!0;break}case"Home":if(A>0)J.focusedIndex=0;J.focusVisible=!0,u=!0;break;case"End":if(A>0)J.focusedIndex=A-1;J.focusVisible=!0,u=!0;break;case"PageUp":case"PageDown":{let s=p.ud||1,J2=Math.max(0,J.focusedIndex),t=p.scrollIndex?p.scrollIndex(J2):J2,Z2=V.getSize(t),V2=W.containerSize,A2=(Z2>0?Math.max(1,Math.floor(V2/Z2)):10)*s;if(F&&y){let D2=F(J.focusedIndex),K2=q.key==="PageUp"?-A2:A2,e=W.totalItems-1;J.focusedIndex=y(Math.max(0,Math.min(e,D2+K2)))}else c2(J,q.key==="PageUp"?-A2:A2,A);J.focusVisible=!0,u=!0;break}case" ":case"Enter":if(q.key===" "&&q.shiftKey&&$==="multiple"&&J.focusedIndex>=0){if(X>=0){let s=z(X),J2=z(J.focusedIndex);if(s>=0&&J2>=0)m(s,J2)}J.focusVisible=!0,T=!0,u=!0;break}if(J.focusedIndex>=0){let s=H(J.focusedIndex);if(s)S(s.id,s),X=J.focusedIndex;J.focusVisible=!0,T=!0,u=!0}break;case"a":if((q.ctrlKey||q.metaKey)&&$==="multiple"){if(J.selected.size===W.totalItems)b();else d();J.focusVisible=!0,T=!0,u=!0}break;case"Delete":case"Backspace":if(J.selected.size>0)K.emit("delete",{selected:Y0(J.selected),items:i()}),u=!0;break}if(J.focusedIndex!==r&&E){let s=J.focusedIndex>r?1:-1;J.focusedIndex=D(J.focusedIndex,s,A)}let w=J.focusedIndex!==r;if(q.shiftKey&&$==="multiple"&&!T&&w){if(q.key==="ArrowUp"||q.key==="ArrowDown"||q.key==="ArrowLeft"||q.key==="ArrowRight"){let t=H(J.focusedIndex);if(t)S(t.id,t);X=J.focusedIndex,T=!0}if((q.ctrlKey||q.metaKey)&&(q.key==="Home"||q.key==="End")){let t=z(r>=0?r:J.focusedIndex),Z2=z(J.focusedIndex);if(t>=0&&Z2>=0)m(t,Z2);X=J.focusedIndex,T=!0}}if(j&&$==="single"&&!T&&w&&J.focusedIndex>=0){let s=H(J.focusedIndex);if(s)R(s.id,s);T=!0}if(u){if(q.preventDefault(),w&&J.focusedIndex>=0)a(J.focusedIndex),M.content.setAttribute("aria-activedescendant",`${_}-item-${J.focusedIndex}`);if(T)C();else if(w){if(U(),J.focusedIndex>=0){let s=H(J.focusedIndex);if(s)K.emit("focus:change",{id:s.id,index:J.focusedIndex})}}}}),B.registerMethod("select",(...q)=>{for(let A of q)R(A);C()}),B.registerMethod("deselect",(...q)=>{for(let A of q)l(A);C()}),B.registerMethod("toggleSelect",(q)=>{S(q),C()}),B.registerMethod("selectAll",()=>{if($!=="multiple")return;d(),C()}),B.registerMethod("clearSelection",()=>{b(),C()}),B.registerMethod("getSelected",()=>{return Y0(J.selected)}),B.registerMethod("getSelectedItems",()=>{return i()}),B.registerMethod("selectNext",()=>{O(B);let q=v();if(q===0)return;if(c2(J,1,q,L.reverse),E)J.focusedIndex=D(J.focusedIndex,1,q);let A=H(J.focusedIndex);if(A)R(A.id,A);C()}),B.registerMethod("selectPrevious",()=>{O(B);let q=v();if(q===0)return;if(c2(J,-1,q,L.reverse),E)J.focusedIndex=D(J.focusedIndex,-1,q);let A=H(J.focusedIndex);if(A)R(A.id,A);C()}),B.registerMethod("_seedSelection",(q)=>{for(let A of q)J.selected.add(A)}),B.registerMethod("_isFollowFocus",()=>j),B.registerMethod("_getFocusedId",()=>{if(J.focusedIndex<0)return;return H(J.focusedIndex)?.id}),B.registerMethod("_focusById",(q)=>{let A=W.totalItems;for(let p=0;p<A;p++){let r=Z(p);if(r&&r.id===q){let u=y?y(p):p;J.focusedIndex=u,K.emit("focus:change",{id:q,index:u});return}}})},destroy(){P.clear()}}}var Z0=(Q)=>Q==null?0:typeof Q==="function"?Q():Q;function H0(Q){let $=Q?.scrollPadding,j,Y;return{name:"page",priority:5,setup(J){let{dom:Z,sizeCache:U,config:K,emitter:M}=J,V=K.axis.primary==="x",W=window,c=J.getState();if(J.disableDefaultScroll(),J.disableDefaultResize(),Z.root.style.overflow="visible",Z.root.style.height="auto",V)Z.viewport.style.overflowX="visible",Z.viewport.style.overflowY="visible";else Z.viewport.style.overflow="visible";Z.viewport.classList.remove(`${K.classPrefix}-viewport--custom-scrollbar`),J.setScrollFns(()=>{let k=Z.viewport.getBoundingClientRect();return Math.max(0,V?-k.left:-k.top)},(k)=>{let v=Z.viewport.getBoundingClientRect(),N=(V?v.left+W.scrollX:v.top+W.scrollY)+k;if(V)W.scrollTo({left:N,top:W.scrollY,behavior:"instant"});else W.scrollTo({left:W.scrollX,top:N,behavior:"instant"})}),c.containerSize=V?W.innerWidth:W.innerHeight,c.crossSize=V?W.innerHeight:W.innerWidth;let X=null,P=()=>{let k=Z.viewport.getBoundingClientRect(),v=Math.max(0,V?-k.left:-k.top);if(c.prevScrollPosition=c.scrollPosition,c.scrollPosition=v,c.scrollDirection=v>c.prevScrollPosition?1:v<c.prevScrollPosition?-1:0,J.onScrollFrame(),X!==null)clearTimeout(X);X=setTimeout(()=>{X=null,J.onScrollIdle()},150)};W.addEventListener("scroll",P,{passive:!0}),Y=()=>W.removeEventListener("scroll",P);let{innerWidth:F,innerHeight:y}=W,E=()=>{let{innerWidth:k,innerHeight:v}=W;if((V?Math.abs(k-F):Math.abs(v-y))<1)return;F=k,y=v,c.containerSize=V?k:v,c.crossSize=V?v:k,J.forceRender(),M.emit("resize",{width:k,height:v})};if(W.addEventListener("resize",E),j=()=>W.removeEventListener("resize",E),$)J.setScrollToPosFn((k,v,N,O,z)=>{let H=Z0(V?$.left:$.top),D=Z0(V?$.right:$.bottom);if(O===0)return 0;let R=Math.max(0,Math.min(k,O-1)),S=v.getOffset(R),b=v.getSize(R),l=v.getTotalSize(),m=Math.max(0,l-N+D),d;switch(z){case"center":d=S-H-(N-H-D-b)/2;break;case"end":d=S-N+b+D;break;default:d=S-H}return Math.max(-H,Math.min(d,m))}),J.registerMethod("_scrollItemIntoView",(k)=>{let v=V?W.innerWidth:W.innerHeight,N=Z0(V?$.left:$.top),O=Z0(V?$.right:$.bottom),z=Z.viewport.getBoundingClientRect(),H=V?W.scrollX:W.scrollY,D=V?z.left:z.top,R=D+H,S=U.getOffset(k),b=U.getSize(k),l=D+S,m=v-O,d=H;if(l<N)d=R+S-N;else if(l+b>m)d=R+S+b-m;if(d!==H)if(V)W.scrollTo({left:d,top:W.scrollY,behavior:"instant"});else W.scrollTo({left:W.scrollX,top:d,behavior:"instant"})});J.registerDestroyHandler(()=>{if(Y?.(),j?.(),X!==null)clearTimeout(X)})},destroy(){Y?.(),j?.(),Y=void 0,j=void 0}}}var o1=(Q)=>{try{let $=sessionStorage.getItem(Q);if(!$)return;return JSON.parse($)}catch{return}};function i2(Q){let $=Q?.autoSave,j=$?o1($):Q?.restore,Y=!1,J=null;return{name:"snapshots",priority:50,setup(Z){let{sizeCache:U,emitter:K}=Z,M=Z.getState(),V=()=>{let{scrollPosition:X,totalItems:P}=M,y=Z.getMethod("getSelected")?.();if(P===0){let D={index:0,offsetInItem:0,total:0};if(y?.length)D.selectedIds=y;return D}let E,k;if(M.isCompressed&&M.compressionRatio!==1){let D=M.totalSize,S=X/D*P;E=Math.max(0,Math.min(Math.floor(S),P-1)),k=(S-E)*U.getSize(E)}else E=U.indexAtOffset(X),k=X-U.getOffset(E);k=Math.max(0,k);let v={index:E,offsetInItem:k,total:P,scrollTop:X},N=U.getSize(E);if(N)v.offsetRatio=k/N;let O=Z.getMethod("_layoutToDataIndex");if(O){let D=O(E);if(D<0){for(let R=E+1;R<P;R++)if(D=O(R),D>=0)break}if(D>=0)v.dataIndex=D}let z=Z.getMethod("_getTotal");if(z)v.dataTotal=z();if(y?.length)v.selectedIds=y;let H=Z.getMethod("_getFocusedId");if(H){let D=H();if(D!==void 0)v.focusedId=D}return v};Z.registerMethod("getScrollSnapshot",V);let W=(X,P=!0)=>{let{index:F,offsetInItem:y,selectedIds:E,focusedId:k}=X,v=M.totalItems,N=X.dataTotal??X.total;if(v===0&&N&&N>0){let C=Z.getMethod("_setTotal");if(C)C(N),v=M.totalItems;U.rebuild(v);let g=Z.getMethod("_updateCompressionMode");if(g)g();if(!M.isCompressed)Z.updateContentSize(U.getTotalSize()),M.totalSize=U.getTotalSize()}if(v===0)return;if(!Number.isFinite(F)||!Number.isFinite(y))return;if(U.getTotal()===0){U.rebuild(v);let C=Z.getMethod("_updateCompressionMode");if(C)C();if(!M.isCompressed)Z.updateContentSize(U.getTotalSize()),M.totalSize=U.getTotalSize()}let z=Z.getMethod("_dataToLayoutIndex"),H=F;if(X.dataIndex!==void 0&&X.dataIndex>=0)H=z?z(X.dataIndex):X.dataIndex;else if(z)H=z(F);let D=Math.max(0,Math.min(H,v-1)),R=U.getSize(D),S=X.offsetRatio!==void 0?X.offsetRatio*R:Math.min(y,R),b;if(M.isCompressed&&M.compressionRatio!==1){let C=Z.getMethod("_getTotal")?.(),g=C!==void 0&&X.dataTotal===C;if(X.scrollTop!==void 0&&(X.total===v||g))b=X.scrollTop;else{let x=R?S/R:0;b=(D+x)/v*M.totalSize}}else b=U.getOffset(D)+S;let l=Math.max(0,M.totalSize-M.containerSize);b=Math.max(0,Math.min(b,l));let m=b===X.scrollTop;if(X.dataIndex!==void 0&&X.dataIndex>=0){let C=R?S/R:0;Z.registerMethod("_restoreAnchor",{dataIndex:X.dataIndex,fraction:C,skipAdjust:m}),Z.registerMethod("_suppressSave",1)}if(Z.scrollTo(b),P&&E?.length){let C=Z.getMethod("select");if(C)C(...E)}let d=Z.getMethod("loadVisibleRange"),i=()=>{if(k===void 0)return;let C=Z.getMethod("_focusById");if(C)C(k)};if(d){let C=0,g=()=>{if(M.containerSize>0){if(Math.abs(M.scrollPosition-b)>1)Z.scrollTo(b);d().then(i)}else if(++C<10)requestAnimationFrame(g)};requestAnimationFrame(g)}else{let C=Z.getMethod("reload");if(C)requestAnimationFrame(()=>{C().then(i)});else requestAnimationFrame(i)}};Z.registerMethod("restoreScroll",W);let c=!!(j&&$);if(Z.registerDestroyHandler(()=>{Y=!0}),$){J=()=>{if(Y||c||Z.getMethod("_suppressSave"))return;let v=V();try{sessionStorage.setItem($,JSON.stringify(v))}catch{}},Z.registerMethod("_saveSnapshot",J);let X=0,P=()=>{if(X)return;X=requestAnimationFrame(()=>{if(X=0,J)J()})};K.on("selection:change",P),K.on("focus:change",P);let F=0,y=()=>{if(F=0,J)J()},E=()=>{if(F)clearTimeout(F);F=setTimeout(y,300)};K.on("scroll",E);let k=()=>{J?.()};if(window.addEventListener("beforeunload",k),Z.registerDestroyHandler(()=>{if(X)cancelAnimationFrame(X);if(F)clearTimeout(F);window.removeEventListener("beforeunload",k)}),j&&j.total&&j.total>0){let v=Z.getMethod("_cancelAutoLoad");if(v)v();let N=Z.getMethod("_setTotal");if(N)N(j.total)}}if(j){let X=!0;if(j.selectedIds?.length){let P=Z.getMethod("_seedSelection");if(P)P(j.selectedIds),X=!1}queueMicrotask(()=>{if(W(j,X),c=!1,J)J()})}},hooks:{onIdle(){if(J&&!Y)J()}},destroy(){Y=!0,J=null}}}function B1(Q,$){if($===!1)return null;return{duration:Math.min($?.duration??Q.duration,1000),easing:$?.easing??Q.easing}}function L0(Q){let $=Q?.duration??200,j=Q?.easing??"cubic-bezier(0.2, 0, 0, 1)",Y={duration:$,easing:j},J=B1(Y,Q?.remove),Z=B1(Y,Q?.insert),U=null,K=null;return{name:"transition",conflicts:["grid","table","masonry"],priority:45,setup(M){let{sizeCache:V,emitter:W}=M,c=M.config,X=M.dom,P=M.getState(),F=c.reverse?"bottom center":"top center",y=c.axis.primary==="x"?"translateX":"translateY",E=M.getMethod("_dataToLayoutIndex")??null,k=(O)=>E?E(O):O,v=(O)=>{let z=String(O).replace(/"/g,"\\\""),H=X.content.querySelector(`[data-id="${z}"]`),D=H?parseInt(H.dataset.index??"-1",10):-1;return{el:H,layoutIndex:D}},N=()=>{let O=X.content.children;for(let z=0;z<O.length;z++)O[z].style.transition="none";X.content.offsetHeight;for(let z=0;z<O.length;z++)O[z].style.transition=""};if(J){let O=(H)=>{if(U)U();let D=typeof document<"u"?document.activeElement:null,R=D&&X.content.contains(D)?parseInt(D.dataset?.index??"-1",10):-1,S=v(H),b=S.layoutIndex,l=S.el,m=b>=0?V.getSize(b):0,d=b>=0?V.getOffset(b):0;if(!l||b<0){if(M.removeItemById(H)<0)return!1;if(M.forceRender(),N(),W.emit("data:change",{type:"remove",id:H}),R>=0){let r=P.totalItems;if(r>0)M.getRenderedElement(Math.min(R,r-1))?.focus()}return W.emit("remove:end",{id:H}),!0}let i=l.cloneNode(!0);i.style.pointerEvents="none",i.style.overflow="hidden",i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.removeAttribute("id"),i.removeAttribute("aria-selected"),i.classList.remove(`${c.classPrefix}-item--selected`);let C=c.axis.primary==="x"?"scrollLeft":"scrollTop",g=X.viewport[C];if(M.removeItemById(H)<0)return!1;M.forceRender(),N(),W.emit("data:change",{type:"remove",id:H});let B=g-X.viewport[C];i.style.zIndex="1",X.content.appendChild(i);let L=J,_={duration:L.duration,easing:L.easing},h=[],a=Math.round(d-B);h.push(i.animate([{transform:`${y}(${a}px) scaleY(1)`,opacity:1,transformOrigin:F},{transform:`${y}(${Math.round(d)}px) scaleY(0)`,opacity:0,transformOrigin:F}],_));let o=B>0,f=X.content.children;for(let p=0;p<f.length;p++){let r=f[p];if(r===i)continue;let u=parseInt(r.dataset?.index??"-1",10);if(u<0||!o&&u<b)continue;let T=V.getOffset(u),w=u>=b?Math.round(T+m-B):Math.round(T-B),s=Math.round(T);if(w===s)continue;h.push(r.animate([{transform:`${y}(${w}px)`},{transform:`${y}(${s}px)`}],_))}let q=!1,A=()=>{if(q)return;q=!0,U=null,i.remove();for(let p of h)if(p.playState!=="finished")p.cancel();if(R>=0){let p=P.totalItems;if(p>0)M.getRenderedElement(Math.min(R,p-1))?.focus()}W.emit("remove:end",{id:H})};return U=A,Promise.all(h.map((p)=>p.finished)).then(A,A),setTimeout(A,L.duration+50),!0},z=(H)=>{if(H.length===0)return 0;if(H.length===1)return O(H[0])?1:0;if(U)U();if(K)K();let D=typeof document<"u"?document.activeElement:null,R=D&&X.content.contains(D)?parseInt(D.dataset?.index??"-1",10):-1,S=[];for(let q of H){let A=v(q);S.push({id:q,layoutIndex:A.layoutIndex,el:A.el,size:A.layoutIndex>=0?V.getSize(A.layoutIndex):0,offset:A.layoutIndex>=0?V.getOffset(A.layoutIndex):0})}S.sort((q,A)=>A.layoutIndex-q.layoutIndex);let b=[];for(let q of S){if(!q.el||q.layoutIndex<0)continue;let A=q.el.cloneNode(!0);A.style.pointerEvents="none",A.style.overflow="hidden",A.removeAttribute("data-index"),A.removeAttribute("data-id"),A.removeAttribute("id"),A.removeAttribute("aria-selected"),A.classList.remove(`${c.classPrefix}-item--selected`),b.push({clone:A,offset:q.offset,size:q.size,layoutIndex:q.layoutIndex})}let l=new Map,m=X.content.children;for(let q=0;q<m.length;q++){let A=m[q],p=A.dataset?.id,r=parseInt(A.dataset?.index??"-1",10);if(p&&r>=0)l.set(p,V.getOffset(r))}let d=c.axis.primary==="x"?"scrollLeft":"scrollTop",i=X.viewport[d],C=[];for(let q of S)if(M.removeItemById(q.id)>=0)C.push(q.id);if(C.length===0)return 0;M.forceRender(),N();for(let q of C)W.emit("data:change",{type:"remove",id:q});if(b.length===0){if(R>=0){let q=P.totalItems;if(q>0)M.getRenderedElement(Math.min(R,q-1))?.focus()}for(let q of C)W.emit("remove:end",{id:q});return C.length}let g=i-X.viewport[d],x=J,B={duration:x.duration,easing:x.easing},L=[];b.sort((q,A)=>q.layoutIndex-A.layoutIndex);let _=0;for(let q of b){q.clone.style.zIndex="1",X.content.appendChild(q.clone);let A=Math.round(q.offset-g),p=Math.round(q.offset-_);L.push(q.clone.animate([{transform:`${y}(${A}px) scaleY(1)`,opacity:1,transformOrigin:F},{transform:`${y}(${p}px) scaleY(0)`,opacity:0,transformOrigin:F}],B)),_+=q.size}let h=new Set(b.map((q)=>q.clone)),a=X.content.children;for(let q=0;q<a.length;q++){let A=a[q];if(h.has(A))continue;let p=A.dataset?.id,r=parseInt(A.dataset?.index??"-1",10);if(!p||r<0)continue;let u=l.get(p);if(u===void 0)continue;let T=V.getOffset(r),w=Math.round(u-g),s=Math.round(T);if(w===s)continue;L.push(A.animate([{transform:`${y}(${w}px)`},{transform:`${y}(${s}px)`}],B))}let o=!1,f=()=>{if(o)return;o=!0,U=null;for(let{clone:q}of b)q.remove();for(let q of L)if(q.playState!=="finished")q.cancel();if(R>=0){let q=P.totalItems;if(q>0)M.getRenderedElement(Math.min(R,q-1))?.focus()}for(let q of C)W.emit("remove:end",{id:q})};return U=f,Promise.all(L.map((q)=>q.finished)).then(f,f),setTimeout(f,x.duration+50),C.length};M.registerMethod("removeItem",O),M.registerMethod("removeItems",z)}if(Z){let O=(z,H)=>{if(K)K();if(U)U();let D=H??0,R=new Map,S=X.content.children;for(let q=0;q<S.length;q++){let A=S[q],p=A.dataset?.id,r=parseInt(A.dataset?.index??"-1",10);if(p&&r>=0)R.set(p,V.getOffset(r))}let b=c.axis.primary==="x"?"scrollLeft":"scrollTop",l=c.axis.primary==="x"?"scrollWidth":"scrollHeight",m=c.axis.primary==="x"?"clientWidth":"clientHeight",d=X.viewport[b],i=X.viewport[l]-X.viewport[m],C=d>=i-1;M.insertItemAt(z,D),M.forceRender(),N(),W.emit("data:change",{type:"insert",id:z.id});let g=X.viewport[b]-d,x=k(D);if(c.reverse&&g===0&&C){X.viewport[b]=X.viewport[l]-X.viewport[m];let q=X.viewport[b];if(P.prevScrollPosition=P.scrollPosition,P.scrollPosition=q,g=q-d,g>0)M.forceRender(),N()}let B=M.getRenderedElement(x),L=Z,_={duration:L.duration,easing:L.easing},h=[];if(B){let q=V.getOffset(x);h.push(B.animate([{transform:`${y}(${Math.round(q)}px) scaleY(0)`,opacity:0,transformOrigin:F},{transform:`${y}(${Math.round(q)}px) scaleY(1)`,opacity:1,transformOrigin:F}],_))}let a=X.content.children;for(let q=0;q<a.length;q++){let A=a[q];if(A===B)continue;let p=A.dataset?.id,r=parseInt(A.dataset?.index??"-1",10);if(!p||r<0)continue;let u=R.get(p);if(u===void 0)continue;let T=V.getOffset(r),w=Math.round(u+g),s=Math.round(T);if(w===s)continue;h.push(A.animate([{transform:`${y}(${w}px)`},{transform:`${y}(${s}px)`}],_))}if(h.length===0)return;let o=!1,f=()=>{if(o)return;o=!0,K=null;for(let q of h)if(q.playState!=="finished")q.cancel()};K=f,Promise.all(h.map((q)=>q.finished)).then(f,f),setTimeout(f,L.duration+50)};M.registerMethod("insertItem",O)}},destroy(){if(U)U();if(K)K()}}}function O0(Q){let $=Q?.gap??0,j=null,Y=null,J,Z,U,K,M=new Map,V=new WeakMap,W=0,c=!1,X=!1,P=!1,F=2;function y(N){return M.get(N)??K}function E(){let N=Y.dom.viewport,O=N.scrollHeight-N.clientHeight;return O>0&&J.scrollPosition>=O-F}function k(){let N=Y.dom.viewport;N.scrollHeight;let O=N.scrollHeight-N.clientHeight;if(O>J.scrollPosition)Y.scrollTo(O)}function v(){Y.updateContentSize(Y.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(N){if(Y=N,J=N.getState(),Z=N.config.axis.primary==="x",U=Z?"width":"height",$===0)$=N.config.gap;if(K=typeof N.rawSizeSpec==="function"?N.rawSizeSpec(0)+$:N.rawSizeSpec+$,N.setSizeConfig(y),$>0){let H=N.sizeCache.getTotalSize;N.sizeCache.getTotalSize=()=>{let D=H();return D>0?D-$:0}}j=new ResizeObserver((H)=>{if(J.destroyed||!Y)return;let D=!1,R=N.sizeCache.indexAtOffset(J.scrollPosition);for(let d of H){let i=d.target,C=V.get(i);if(C===void 0)continue;if(i.getAttribute("data-index")!==String(C)){j.unobserve(i);continue}if(M.has(C))continue;let g=d.borderBoxSize[0];if(!g)continue;let x=Z?g.inlineSize:g.blockSize;if(x<=0)continue;let B=x+$,L=K;if(M.set(C,B),D=!0,C<R&&B!==L)W+=B-L;j.unobserve(i),i.style[U]=`${x}px`}if(!D)return;let S=E();if(N.rebuildSizeCache(),W)N.scrollTo(J.scrollPosition+W),W=0;let b=J.scrollDirection!==0,l=J.totalItems>0&&J.prevRangeEnd>=J.totalItems-1,m=X&&!P;if(m||S||l||!b){if(v(),c=!1,m||S)k()}else c=!0;N.forceRender()}),N.setScrollToIndexFn((H,D,R,S,b)=>{let l=H>=J.totalItems-1&&D==="end";if(X=l,P=!1,!l)return!1;let m=N.config.mainAxisPadding,d=()=>{let i=N.sizeCache.getTotalSize();return Math.max(0,i+m-J.containerSize)};if(R==="smooth")P=!0,N.smoothScrollTo(d,S??300,b,()=>{P=!1});else N.scrollTo(d())});let O=()=>{X=!1},z=N.dom.viewport;z.addEventListener("wheel",O,{passive:!0}),z.addEventListener("touchstart",O,{passive:!0}),N.registerDestroyHandler(()=>{z.removeEventListener("wheel",O),z.removeEventListener("touchstart",O)}),N.registerMethod("isMeasured",(H)=>M.has(H)),N.registerMethod("setMeasuredSize",(H,D)=>{M.set(H,D)}),N.registerMethod("getMeasuredCount",()=>M.size),N.registerDestroyHandler(()=>{if(j)j.disconnect(),j=null})},hooks:{onCommit(N){if(!j||!Y)return;for(let O=0;O<N.visibleCount;O++){let z=N.visibleIndices[O];if(M.has(z))continue;let H=Y.getRenderedElement(z);if(!H)continue;H.style[U]="",V.set(H,z),j.observe(H)}},onIdle(){if(!Y||!c)return;let N=E();if(v(),c=!1,N)k(),Y.forceRender()}},destroy(){if(j)j.disconnect(),j=null;M.clear(),X=!1,P=!1,Y=null}}}var W1=(Q)=>{let $=Math.max(1,Math.floor(Q.columns)),j=Q.gap??0,Y=Q.containerSize,J=Q.crossOffset??0,Z=Q.mainOffset??0,U=0,K=[],M=()=>{let k=($-1)*j;U=Math.max(0,(Y-k)/$),K=Array($);let v=U+j;for(let N=0;N<$;N++)K[N]=J+N*v};M();let V=[],W=0,c=[],X=(k,v)=>{if(k<=0)return W=0,V=[],[];let N=Array($).fill(Z),O=Array($);for(let D=0;D<$;D++)O[D]=[];let z=Array(k);for(let D=0;D<k;D++){let R=0,S=N[0];for(let m=1;m<$;m++){let d=N[m];if(d<S)S=d,R=m}let b=v(D),l=N[R];z[D]={index:D,x:K[R],y:l,lane:R,size:b,crossSize:U},O[R].push(D),N[R]=l+b+j}V=O;let H=0;for(let D=0;D<$;D++){let R=N[D],S=R>0?R-j:0;if(S>H)H=S}return W=H,z},P=(k)=>{if(k.length===0)return W;if(W)return W;let v=Array($).fill(0);for(let O of k){let z=O.y+O.size,H=v[O.lane];if(z>H)v[O.lane]=z}let N=0;for(let O=0;O<$;O++)if(v[O]>N)N=v[O];return N},F=(k,v,N)=>{if(k.length===0||N<=v)return c.length=0,c;if(V.length===0||V.length!==$)return y(k,v,N);c.length=0;for(let O=0;O<$;O++){let z=V[O],H=z.length;if(!H)continue;let D=0,R=H;while(D<R){let S=D+R>>>1,b=k[z[S]];if(b.y+b.size<=v)D=S+1;else R=S}for(let S=D;S<H;S++){let b=k[z[S]];if(b.y>=N)break;c.push(b)}}return c},y=(k,v,N)=>{c.length=0;for(let O of k)if(O.y+O.size>v&&O.y<N)c.push(O);return c};return{get columns(){return $},get gap(){return j},get containerSize(){return Y},update:(k)=>{let v=!1;if(k.columns!==void 0){let N=Math.max(1,Math.floor(k.columns));if(N!==$)$=N,v=!0}if(k.gap!==void 0&&k.gap!==j)j=k.gap,v=!0;if(k.containerSize!==void 0&&k.containerSize!==Y)Y=k.containerSize,v=!0;if(k.crossOffset!==void 0&&k.crossOffset!==J)J=k.crossOffset,v=!0;if(k.mainOffset!==void 0&&k.mainOffset!==Z)Z=k.mainOffset,v=!0;if(v)M()},calculateLayout:X,getTotalSize:P,getVisibleItems:F}};var V1=(Q,$,j)=>{let Y=Array.from($).sort((U,K)=>U-K);if(Y.length<=1)return;let J=[];for(let U=0;U<Y.length;U++){let K=j(Y[U]);if(K)J.push(K)}if(J.length<=1)return;let Z=Q.firstChild;for(let U=0;U<J.length;U++){let K=J[U];if(K===Z)Z=Z.nextSibling;else Q.insertBefore(K,Z)}};var i1=(Q=200)=>{let $=[];return{acquire:()=>{let Z=$.pop();if(Z)return Z;let U=document.createElement("div");return U.setAttribute("role","option"),U},release:(Z)=>{if(Z.remove(),$.length<Q)Z.className="",Z.textContent="",Z.removeAttribute("style"),Z.removeAttribute("data-index"),Z.removeAttribute("data-id"),Z.removeAttribute("data-lane"),$.push(Z)},clear:()=>{$.length=0}}},n1=1,N1=(Q,$,j,Y=!1,J,Z,U,K)=>{let M=i1(),V=new Map,W=new Set,c=0,X="",P=-1,F={selected:!1,focused:!1},y=(i,C)=>{return F.selected=i,F.focused=C,F},E=`${j}-item ${j}-masonry-item`,k=`${j}-group-header`,v=`${j}-item--selected`,N=`${j}-item--focused`,O=(i,C)=>{if(typeof C==="string")i.innerHTML=C;else i.replaceChildren(C);p2(i)},z=(i,C,g)=>{i.classList.toggle(v,C),i.classList.toggle(N,g)},H=(i,C)=>{if(Y)i.style.transform=`translate(${Math.round(C.y)}px, ${Math.round(C.x)}px)`;else i.style.transform=`translate(${Math.round(C.x)}px, ${Math.round(C.y)}px)`},D=(i,C)=>{if(Y)i.style.width=`${C.size}px`,i.style.height=`${C.crossSize}px`;else i.style.width=`${C.crossSize}px`,i.style.height=`${C.size}px`},R=(i,C,g,x,B)=>{let L=M.acquire(),_=C.__groupHeader,h=y(x,B);if(L.className=_?k:E,L.dataset.index=String(i),L.dataset.id=String(C.id),L.dataset.lane=String(g.lane),_)L.setAttribute("role","presentation"),L.removeAttribute("aria-selected"),L.removeAttribute("aria-setsize"),L.removeAttribute("aria-posinset"),L.removeAttribute("id");else if(K===!0){if(L.setAttribute("role","option"),L.ariaSelected=String(x),Z)L.id=`${Z}-item-${i}`;if(J){let o=J();if(o!==P)P=o,X=String(o);L.setAttribute("aria-setsize",X);let f=U?U(i):i+1;L.setAttribute("aria-posinset",String(f))}}else if(L.setAttribute("role","listitem"),L.removeAttribute("aria-selected"),J){let o=J();if(o!==P)P=o,X=String(o);L.setAttribute("aria-setsize",X);let f=U?U(i):i+1;L.setAttribute("aria-posinset",String(f))}D(L,g);let a=$(C,i,h);return O(L,a),z(L,x,B),H(L,g),{element:L,lastItem:C,lastSelected:x,lastFocused:B,lastY:g.y,lastX:g.x,lastSize:g.size,lastCrossSize:g.crossSize,lastSeenFrame:c}},S=(i,C,g,x)=>{c++,W.clear();for(let L=0;L<C.length;L++)W.add(C[L].index);let B=null;for(let L=0;L<C.length;L++){let _=C[L],h=_.index,a=i(h);if(!a)continue;let o=g.has(a.id),f=h===x,q=V.get(h);if(q){let A=q.lastItem!==a,p=q.lastSelected!==o,r=q.lastFocused!==f,u=q.lastY!==_.y||q.lastX!==_.x,T=q.lastSize!==_.size||q.lastCrossSize!==_.crossSize;if(A){let w=y(o,f),s=$(a,h,w);if(O(q.element,s),q.element.dataset.id=String(a.id),q.lastItem=a,!a.__groupHeader){let t=U?U(h):h+1;q.element.setAttribute("aria-posinset",String(t))}}if(A||p||r)z(q.element,o,f),q.element.ariaSelected=String(o),q.lastSelected=o,q.lastFocused=f;if(T)D(q.element,_),q.lastSize=_.size,q.lastCrossSize=_.crossSize;if(u)H(q.element,_),q.lastY=_.y,q.lastX=_.x}else{let A=R(h,a,_,o,f);if(!B)B=document.createDocumentFragment();B.appendChild(A.element),V.set(h,A)}}if(B)Q.appendChild(B);for(let[L,_]of V)if(W.has(L))_.lastSeenFrame=c;else if(c-_.lastSeenFrame>n1)M.release(_.element),V.delete(L)},b=()=>{for(let i of V.values())M.release(i.element);V.clear(),Q.innerHTML=""};return{render:S,getElement:(i)=>V.get(i)?.element,updateItemClasses:(i,C,g)=>{let x=V.get(i);if(!x)return;let B=x.lastSelected!==C,L=x.lastFocused!==g;if(B||L)z(x.element,C,g),x.lastSelected=C,x.lastFocused=g},sortDOM:()=>{V1(Q,V.keys(),(i)=>V.get(i)?.element)},clear:b,destroy:()=>{b(),M.clear()}}};var t1=100,e1=new Set;function F0(Q){if(!Q.columns||Q.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let $,j=null,Y,J=null,Z,U,K,M=[],V=-1,W=-1,c=!0,X=-1,P=0,F=0,y=0,E=0,k={columnWidth:0,columns:0,gap:0,containerWidth:0},v=[],N=(_)=>v[_],O=null,z=null,H=!1;function D(){if(H||!J)return;H=!0,O=J.getMethod("_getSelectedIds")??null,z=J.getMethod("_getFocusedIndex")??null}let R=[],S=new Int32Array(0),b=[];function l(){let _=$.columns,h=M.length;R=Array(_);for(let a=0;a<_;a++)R[a]=[];if(S.length<h)S=new Int32Array(h);for(let a=0;a<h;a++){let o=M[a],f=R[o.lane].length;R[o.lane].push(a),S[a]=f}b=Array(_);for(let a=0;a<_;a++){let o=R[a],f=new Float64Array(o.length);for(let q=0;q<o.length;q++){let A=M[o[q]];f[q]=A.y+A.size*0.5}b[a]=f}}function m(_,h){let a=_.length;if(!a)return-1;let o=0,f=a-1;while(o<f){let q=o+f>>1;if(_[q]<h)o=q+1;else f=q}if(o>0&&Math.abs(_[o-1]-h)<=Math.abs(_[o]-h))return o-1;return o}function d(_,h,a){let o=M[_];if(!o)return _;let f=o.lane,q=$.columns,A=S[_],p=R[f];switch(Z?h==="ArrowDown"?"ArrowRight":h==="ArrowUp"?"ArrowLeft":h==="ArrowRight"?"ArrowDown":h==="ArrowLeft"?"ArrowUp":h:h){case"ArrowDown":if(A+1<p.length)return p[A+1];return _;case"ArrowUp":if(A>0)return p[A-1];return _;case"ArrowRight":{if(f>=q-1)return _;let u=f+1,T=o.y+o.size*0.5,w=R[u];if(!w.length)return _;let s=m(b[u],T);return s>=0?w[s]:_}case"ArrowLeft":{if(f<=0)return _;let u=f-1,T=o.y+o.size*0.5,w=R[u];if(!w.length)return _;let s=m(b[u],T);return s>=0?w[s]:_}case"Home":return 0;case"End":{let u=R[q-1];return u.length>0?u[u.length-1]:a-1}case"PageDown":{let u=Y.containerSize,T=o.size>0?o.size:150,w=Math.max(1,Math.floor(u/T)),s=Math.min(A+w,p.length-1);return p[s]}case"PageUp":{let u=Y.containerSize,T=o.size>0?o.size:150,w=Math.max(1,Math.floor(u/T)),s=Math.max(0,A-w);return p[s]}}return _}let i=null;function C(){if(Q.size)return(_)=>Q.size(_,k);if(i!==null&&typeof i==="function")return(_)=>i(_,k);return(_)=>J.sizeCache.getSize(_)}function g(){let{columns:_,gap:h}=$;k.containerWidth=$.containerSize,k.columns=_,k.gap=h,k.columnWidth=Math.max(0,($.containerSize-(_-1)*h)/_)}function x(){if(!J)return;g();let _=Y.totalItems;M=$.calculateLayout(_,C()),X=_,l();let h=$.getTotalSize(M)+E;J.updateContentSize(h)}function B(){if(Y.destroyed||!J||!j)return;if(Y.totalItems!==X)x();D();let{scrollPosition:_,containerSize:h}=Y;if(!c&&_===V&&h===W)return;if(V=_,W=h,c=!1,h<=0||M.length===0)return;let a=Math.max(0,_-K),o=_+h+K,f=$.getVisibleItems(M,a,o),q=O?.()??e1,A=z?.()??-1;v=J.getItems(),j.render(N,f,q,A);let p=f.length,r=p>0?f[0].index:0,u=p>0?f[p-1].index:0;Y.prevRangeStart=r,Y.prevRangeEnd=u,Y.renderPending=!1;let T=Math.min(p,Y.capacity);Y.visibleCount=T,Y.startIndex=r;for(let w=0;w<T;w++){let s=f[w];Y.visibleIndices[w]=s.index,Y.visibleOffsets[w]=s.y,Y.visibleSizes[w]=s.size}}function L(){if(Y.destroyed)return;x(),Y.prevRangeStart=-1,Y.prevRangeEnd=-1,Y.renderPending=!0,c=!0,B()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(_){if(J=_,Y=_.getState(),i=_.rawSizeSpec,Z=_.config.axis.primary==="x",U=_.config.classPrefix,K=_.config.overscan*t1,_.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");P=_.config.crossAxisPadding,F=_.config.crossPadStart,y=_.config.startPadding,E=_.config.endPadding;let h=Y.crossSize-P;$=W1({columns:Q.columns,gap:Q.gap??0,containerSize:h,crossOffset:F,mainOffset:y}),j=N1(_.dom.content,_.template,U,Z,()=>Y.totalItems),_.dom.root.classList.add(`${U}--masonry`),_.setRenderFn(B,L),x(),_.registerMethod("getMasonryLayout",()=>$),_.registerMethod("updateMasonry",(a)=>{if(a.columns!==void 0&&a.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(a.gap!==void 0&&a.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let o={};if(a.columns!==void 0)o.columns=a.columns;if(a.gap!==void 0)o.gap=a.gap;$.update(o),j?.clear(),L()}),_.registerMethod("scrollToIndex",(a,o="start")=>{let f=M[a];if(!f)return;let q=typeof o==="string"?o:o.align??"start",A=typeof o==="object"?o.behavior:void 0,p=typeof o==="object"?o.duration:void 0,r=Y.containerSize,u=$.getTotalSize(M)+E,T=Math.max(0,u-r),w=f.y;if(q==="center")w=f.y-r/2+f.size/2;else if(q==="end"){if(w=f.y-r+f.size,a>=Y.totalItems-1&&f.y+f.size>T)w=T}if(w=Math.max(0,Math.min(w,T)),A==="smooth"&&p&&p>0)_.smoothScrollTo(w,p);else _.scrollTo(w)}),_.registerMethod("_scrollItemIntoView",(a)=>{let o=M[a];if(!o)return;let{scrollPosition:f,containerSize:q}=Y,A=$.getTotalSize(M)+E,p=Math.max(0,A-q),r=o.y,u=r+o.size;if(r-y<f)_.scrollTo(Math.max(0,r-y));else if(u+E>f+q){let T=R[$.columns-1];if(T&&T.length>0&&a===T[T.length-1]&&r>=p)_.scrollTo(p);else _.scrollTo(Math.min(u+E-q,p))}}),_.setNavConfig({total:()=>Y.totalItems,navigate:d}),_.registerDestroyHandler(()=>{j?.destroy(),j=null,_.dom.root.classList.remove(`${U}--masonry`)})},hooks:{onResize(_,h){if(!$||!J)return;let a=Y.crossSize-P;if(Math.abs(a-$.containerSize)<1)return;$.update({containerSize:a}),j?.clear(),L()},onIdle(){j?.sortDOM()}},destroy(){j?.destroy(),j=null,M=[],J=null}}}var _1=(Q={})=>{let{chunkSize:$=100,maxCachedItems:j=5000,evictionBuffer:Y=200,onEvict:J}=Q,Z=new Map,U=0,K=0,M=(x)=>{let B=Z.get(x);if(!B)B={items:Array($),count:0,lastAccess:Date.now()},Z.set(x,B);else B.lastAccess=Date.now();return B},V=(x)=>{return Math.floor(x/$)},W=(x)=>{return x%$},c=()=>U,X=(x)=>{U=x},P=(x)=>{if(x<0||x>=U)return;let B=V(x),L=Z.get(B);if(!L)return;return L.items[W(x)]},F=(x)=>{if(x<0||x>=U)return!1;let B=V(x),L=Z.get(B);if(!L)return!1;return L.items[W(x)]!==void 0},y=(x,B)=>{let L=V(x),_=M(L),h=W(x),a=_.items[h]===void 0;if(_.items[h]=B,a)_.count++,K++;if(x>=U)U=x+1},E=(x,B)=>{for(let L=0;L<B.length;L++){let _=B[L];if(_!==void 0)y(x+L,_)}},k=(x,B)=>{if(x<0||x>U)return;let L=V(x),_=Array.from(Z.keys()).filter((q)=>q>=L).sort((q,A)=>q-A),h=[];for(let q of _){let A=Z.get(q),p=q*$;for(let r=0;r<$;r++){if(A.items[r]===void 0)continue;let u=p+r;if(u<x)continue;h.push({oldIndex:u,item:A.items[r]})}}for(let{oldIndex:q}of h){let A=V(q),p=Z.get(A);if(!p)continue;let r=W(q);if(p.items[r]!==void 0){if(p.items[r]=void 0,p.count--,K--,p.count===0)Z.delete(A)}}U++;for(let{oldIndex:q,item:A}of h){let p=q+1,r=V(p),u=M(r),T=W(p);u.items[T]=A,u.count++,K++}let a=V(x),o=M(a),f=W(x);o.items[f]=B,o.count++,K++},v=(x)=>{if(x<0||x>=U)return!1;let B=V(x),L=Z.get(B),_=W(x);if(!(L!==void 0&&L.items[_]!==void 0))return!1;let a=B,o=Array.from(Z.keys()).filter((q)=>q>=a).sort((q,A)=>q-A),f=[];for(let q of o){let A=Z.get(q),p=q*$;for(let r=0;r<$;r++){if(A.items[r]===void 0)continue;let u=p+r;if(u<=x)continue;f.push({oldIndex:u,item:A.items[r]})}}if(L.items[_]=void 0,L.count--,K--,L.count===0)Z.delete(B);for(let{oldIndex:q}of f){let A=V(q),p=Z.get(A);if(!p)continue;let r=W(q);if(p.items[r]!==void 0){if(p.items[r]=void 0,p.count--,K--,p.count===0)Z.delete(A)}}for(let{oldIndex:q,item:A}of f){let p=q-1,r=V(p),u=M(r),T=W(p);u.items[T]=A,u.count++,K++}return U--,!0},N=(x,B)=>{let L=[];for(let _=x;_<=B&&_<U;_++)L.push(P(_));return L},O=(x,B)=>{for(let L=x;L<=B&&L<U;L++)if(!F(L))return!1;return!0},z=()=>{let x=[],B=null,L=Array.from(Z.keys()).sort((_,h)=>_-h);for(let _ of L){let h=Z.get(_);if(!h)continue;let a=_*$;for(let o=0;o<$;o++){let f=a+o;if(f>=U)break;if(h.items[o]!==void 0)if(B===null)B={start:f,end:f};else if(f===B.end+1)B.end=f;else x.push(B),B={start:f,end:f};else if(B!==null)x.push(B),B=null}}if(B!==null)x.push(B);return x},H=(x,B)=>{let L=[],_=null;for(let h=x;h<=B&&h<U;h++)if(!F(h))if(_===null)_={start:h,end:h};else _.end=h;else if(_!==null)L.push(_),_=null;if(_!==null)L.push(_);return L},D=(x)=>{return Z.has(x)},R=(x)=>{let B=Z.get(x);if(!B)return!1;let L=x*$,_=Math.min($,U-L);return B.count>=_},S=(x)=>{let B=Z.get(x);if(B)B.lastAccess=Date.now()},b=(x,B)=>{if(x>B||Z.size===0)return;let L=Date.now(),_=V(Math.max(0,x)),h=V(Math.min(U-1,B));for(let a=_;a<=h;a++){let o=Z.get(a);if(o)o.lastAccess=L}},l=(x,B)=>{if(K<=j)return 0;let L=Math.max(0,x-Y),_=Math.min(U-1,B+Y),h=V(L),a=V(_),o=0,f=[];for(let[q,A]of Z)if(q<h||q>a)o+=A.count,f.push(q),K-=A.count,Z.delete(q);if(o>0&&J)J(o,f);return o},m=()=>{if(K<=j)return 0;let x=Array.from(Z.entries()).sort(([,_],[,h])=>_.lastAccess-h.lastAccess),B=0,L=[];for(let[_,h]of x){if(K<=j)break;B+=h.count,K-=h.count,L.push(_),Z.delete(_)}if(B>0&&J)J(B,L);return B},d=()=>{return{totalItems:U,cachedItems:K,cachedChunks:Z.size,chunkSize:$,maxCachedItems:j,memoryEfficiency:U>0?1-K/U:1}},i=()=>K,C=()=>{Z.clear(),K=0};return{chunkSize:$,maxCachedItems:j,getTotal:c,setTotal:X,get:P,has:F,set:y,setRange:E,insert:k,delete:v,getRange:N,isRangeLoaded:O,getLoadedRanges:z,findUnloadedRanges:H,getChunkIndex:V,isChunkLoaded:D,isChunkFullyLoaded:R,touchChunk:S,touchChunksForRange:b,evictDistant:l,evictToLimit:m,getStats:d,getCachedCount:i,clear:C,reset:()=>{C(),U=0}}};var G1=(Q={})=>{let{maskCharacter:$=p0,maxSampleSize:j=u0}=Q,Y=[],J=!1,Z=(W)=>{if(J||W.length===0)return;let c=Math.min(W.length,j);for(let X=0;X<c;X++){let P=W[X];if(!P||typeof P!=="object")continue;let F={},y=!1;for(let[E,k]of Object.entries(P)){if(E.startsWith("_")||E==="id")continue;F[E]=String(k??"").length,y=!0}if(y)Y.push(F)}J=!0},U=()=>J,K=(W)=>{let c={id:`${f2}${W}`,[B0]:!0,_index:W};if(Y.length===0)return c.label=$.repeat(12),c;let X=Y[W%Y.length];for(let[P,F]of Object.entries(X))c[P]=$.repeat(Math.max(1,F));return c};return{analyzeStructure:Z,hasAnalyzedStructure:U,generate:K,generateRange:(W,c)=>{let X=[];for(let P=W;P<=c;P++)X.push(K(P));return X},clear:()=>{Y=[],J=!1}}},K0=(Q)=>{if(!Q||typeof Q!=="object")return!1;return Q[B0]===!0};var $4=50,M1=(Q={})=>{let{adapter:$,initialItems:j,initialTotal:Y,storage:J,placeholder:Z,pageSize:U=$4,maxConcurrent:K=0,onStateChange:M,onDataChange:V,onItemsLoaded:W,onItemsEvicted:c}=Q,X=_1({...J,onEvict:(K2,e)=>{c?.(K2),b(),S()}}),P=null,F=()=>{if(!P)P=G1(Z);return P},y=new Map,E=!1,k,v=!0,N,O,z=[],H=0,D=new Map,R=()=>{for(let K2 of D.values())K2[1].abort();D.clear()},S=()=>{M?.(L())},b=()=>{V?.()},l=()=>{y.clear();let K2=X.getLoadedRanges();for(let e of K2)for(let q2=e.start;q2<=e.end;q2++){let N2=X.get(q2);if(N2&&!K0(N2))y.set(N2.id,q2)}},m=(K2,e)=>{if(!K0(e))y.set(e.id,K2)},d=(K2)=>{y.delete(K2)},i=(K2,e)=>{return`${K2}-${e}`},C=()=>X.getTotal(),g=()=>X.getCachedCount(),x=()=>E,B=()=>v,L=()=>({total:X.getTotal(),cached:X.getCachedCount(),isLoading:E,pendingRanges:z,error:k,hasMore:v,cursor:N}),_=()=>X,h=()=>F(),a=(K2)=>{let e=X.get(K2);if(e!==void 0)return e;if(K2>=0&&K2<X.getTotal())return F().generate(K2);return},o=(K2)=>{let e=y.get(K2);if(e===void 0)return;return X.get(e)},f=(K2)=>{return y.get(K2)??-1},q=(K2)=>{let e=X.get(K2);return e!==void 0&&!K0(e)},A=(K2,e)=>{let q2=[],N2=X.getTotal();X.touchChunksForRange(K2,Math.min(e,N2-1));for(let X2=K2;X2<=e&&X2<N2;X2++){let U2=X.get(X2);if(U2!==void 0)q2.push(U2);else q2.push(F().generate(X2))}return q2},p=(K2)=>{X.setTotal(K2),v=X.getCachedCount()<K2,b(),S()},r=(K2,e=0,q2)=>{if($&&K2.length>0){let N2=F();if(!N2.hasAnalyzedStructure())N2.analyzeStructure(K2)}for(let N2=0;N2<K2.length;N2++){let X2=K2[N2];if(X2!==void 0){let U2=e+N2;X.set(U2,X2),m(U2,X2)}}if(q2!==void 0)X.setTotal(q2);else if(e+K2.length>X.getTotal())X.setTotal(e+K2.length);if(X.getCachedCount()>=X.getTotal()&&X.getTotal()>0)v=!1;b(),S(),W?.(K2,e,X.getTotal())},u=(K2,e)=>{let q2=X.get(K2);if(!q2)return!1;let N2=q2.id,X2={...q2,...e};if(X.set(K2,X2),e.id!==void 0&&e.id!==N2)d(N2);return m(K2,X2),b(),S(),!0},T=(K2,e)=>{X.insert(e,K2),l(),R(),b(),S()},w=(K2)=>{let e=y.get(K2);if(e===void 0)return!1;if(!X.delete(e))return!1;return l(),R(),b(),S(),!0},s=async(K2,e)=>{if(!$)return;let q2=X.chunkSize,N2=Math.floor(K2/q2),X2=Math.floor(e/q2),U2=q2*2;for(let[O2,y2]of D){let z2=O2.indexOf("-"),T2=parseInt(O2.slice(0,z2),10);if(Math.abs(T2-K2)>U2)y2[1].abort(),D.delete(O2)}let k2=[],E2=[];for(let O2=N2;O2<=X2;O2++){let y2=O2*q2,z2=y2+q2-1,T2=i(y2,z2);if(X.isChunkFullyLoaded(O2))continue;let P2=D.get(T2);if(P2)E2.push(P2[0]);else k2.push({start:y2,end:z2})}if(k2.length===0){if(E2.length>0)await Promise.all(E2);return}if(K>0){let O2=D.size+k2.length;if(O2>K){let y2=(K2+e)/2,z2=Math.min(O2-K,D.size);while(z2>0){let R2=null,P2=-1,b2=null;for(let[w2,I]of D){let W2=w2.indexOf("-"),_2=parseInt(w2.slice(0,W2),10),M2=parseInt(w2.slice(W2+1),10),F2=Math.abs((_2+M2)/2-y2);if(F2>P2)P2=F2,R2=w2,b2=I[1]}if(R2)b2.abort(),D.delete(R2);z2--}let T2=K-D.size;if(k2.length>T2)k2.sort((R2,P2)=>{let b2=Math.abs((R2.start+R2.end)/2-y2),w2=Math.abs((P2.start+P2.end)/2-y2);return b2-w2}),k2.length=Math.max(0,T2)}}if(k2.length===0){if(E2.length>0)await Promise.all(E2);return}for(let O2 of k2){let y2=i(O2.start,O2.end),z2=new AbortController,T2=(async()=>{z.push(O2),E=!0,k=void 0,S();try{let R2=O2.end-O2.start+1,P2={offset:O2.start,limit:R2,cursor:O2.start===O?N:void 0,signal:z2.signal},b2=await $.read(P2);if(r(b2.items,O2.start,b2.total),b2.cursor)N=b2.cursor,O=O2.start+b2.items.length;let w2=O2.start+b2.items.length;if(w2>=H){if(H=w2,b2.hasMore!==void 0)v=b2.hasMore;else if(b2.total!==void 0)v=w2<b2.total}}catch(R2){if(R2?.name==="AbortError")return;k=R2 instanceof Error?R2:Error(String(R2))}finally{D.delete(y2);let R2=z.findIndex((P2)=>P2.start===O2.start&&P2.end===O2.end);if(R2>=0)z.splice(R2,1);E=D.size>0,S()}})();D.set(y2,[T2,z2]),E2.push(T2)}await Promise.all(E2)},J2=async(K2,e)=>{if(X.isRangeLoaded(K2,e))return;await s(K2,e)},t=async()=>{if(!$)return;await s(0,U-1)},Z2=async()=>{if(!$||E||!v)return!1;let K2=X.getCachedCount(),e=X.getTotal(),q2=K2,N2=Math.min(q2+U-1,e>0?e-1:q2+U-1);if(q2>=e&&e>0)return v=!1,!1;return await s(q2,N2),X.getCachedCount()>K2},V2=async()=>{if(X.clear(),X.setTotal(0),y.clear(),P)P.clear();R(),z=[],E=!1,N=void 0,O=void 0,v=!0,H=0,k=void 0,b(),S()},L2=(K2,e)=>{if(X.evictDistant(K2,e)>0)l()},A2=()=>{X.clear(),y.clear(),N=void 0,O=void 0,k=void 0,z=[],E=!1,b(),S()},D2=()=>{if(X.reset(),y.clear(),P)P.clear();N=void 0,O=void 0,v=!0,H=0,k=void 0,z=[],E=!1,b(),S()};if(j&&j.length>0)r(j,0,Y??j.length);else if(Y!==void 0)X.setTotal(Y),b(),S();return{getState:L,getTotal:C,getCached:g,getIsLoading:x,getHasMore:B,getStorage:_,getPlaceholders:h,getItem:a,getItemById:o,getIndexById:f,isItemLoaded:q,getItemsInRange:A,setTotal:p,setItems:r,updateItem:u,insertItem:T,removeItem:w,loadRange:s,ensureRange:J2,loadInitial:t,loadMore:Z2,reload:V2,evictDistant:L2,clear:A2,reset:D2}};function E0(Q){let{adapter:$,total:j,autoLoad:Y=!0,storage:J}=Q,Z=Q.loading?.cancelThreshold??h0,U=Q.loading?.preloadThreshold??f0,K=Q.loading?.preloadAhead??S0,M=Q.loading?.maxConcurrent??I0,V,W,c,X,P,F,y=null,E=null,k=null,v=0,N=!1,O=-1,z=-1,H=J?.chunkSize??t2,D=()=>{if(y=null,E!==null)clearTimeout(E),E=null},R=(m,d)=>{return V.ensureRange(m,d)},S=(m,d=t2)=>{X.emit("load:start",{offset:m,limit:d})},b=(m)=>{X.emit("error",{error:m,context:"ensureRange"})},l=()=>{if(!y)return;y=null;let m={start:W.startIndex,end:W.startIndex+Math.max(0,W.visibleCount-1)};if(m.end<m.start)return;R(m.start,m.end).catch(b)};return{name:"data",priority:20,setup(m){W=m.getState(),c=m.sizeCache,X=m.emitter,P=m.dom,F=m.forceRender.bind(m);let d=null;m.setVirtualTotalFn(()=>d?.getTotal()??0),V=d=M1({adapter:$,...j!==void 0&&{initialTotal:j},pageSize:J?.chunkSize??t2,maxConcurrent:M,...J&&{storage:{...J.chunkSize!==void 0&&{chunkSize:J.chunkSize},...J.maxCachedItems!==void 0&&{maxCachedItems:J.maxCachedItems},...J.evictionBuffer!==void 0&&{evictionBuffer:J.evictionBuffer}}},onDataChange:()=>{if(W.initialized){let C=V.getTotal();W.totalItems=C;let g=c.getTotal();if(C!==g)c.rebuild(C);m.updateContentSize(c.getTotalSize()),m.renderIfNeeded()}},onItemsLoaded:(C)=>{if(W.initialized)F(),X.emit("load:end",{items:C,total:V.getTotal()})}}),m.setGetItemFn((C)=>V.getItem(C)),m.setRemoveItemFn((C)=>{let g=V.getIndexById(C);if(g<0)return-1;if(!V.removeItem(C))return-1;return g}),m.setInsertItemFn((C,g)=>{V.insertItem(C,g)}),m.setUpdateItemFn((C,g)=>{let x=V.getIndexById(C);if(x<0)return!1;return V.updateItem(x,g)}),m.registerMethod("reload",async()=>{if(y=null,O=-1,z=-1,m.forceRender(),await V.reload(),m.scrollTo(0),Y)S(0),await V.loadInitial(),m.forceRender()}),m.registerMethod("loadVisibleRange",async()=>{y=null,m.forceRender();let C=V.getTotal();if(W.visibleCount>0&&W.startIndex<C){let g=Math.min(W.startIndex+W.visibleCount-1,C-1);S(W.startIndex,g-W.startIndex+1),await R(W.startIndex,g)}}),m.registerMethod("getTotal",()=>{return V.getTotal()}),m.registerMethod("setTotal",(C)=>{V.setTotal(C)}),m.registerMethod("_getTotal",()=>V.getTotal()),m.registerMethod("_setTotal",(C)=>{V.setTotal(C)}),m.registerMethod("_cancelAutoLoad",()=>{N=!0}),m.registerMethod("_getLoadedItem",(C)=>{return V.getStorage().get(C)}),m.registerMethod("_getLoadedCount",()=>V.getCached()),X.on("load:start",()=>{P.root.setAttribute("aria-busy","true")}),X.on("load:end",()=>{P.root.removeAttribute("aria-busy")}),m.registerDestroyHandler(()=>{if(k!==null)clearTimeout(k),k=null;D()}),X.on("velocity:change",({velocity:C})=>{v=Math.abs(C)});let i=()=>{if(W.destroyed)return;if(W.visibleCount>0&&W.startIndex<V.getTotal()){let C=Math.min(W.startIndex+W.visibleCount-1,V.getTotal()-1);R(W.startIndex,C).catch(b)}l()};if(window.addEventListener("online",i),m.registerDestroyHandler(()=>{window.removeEventListener("online",i)}),Y)queueMicrotask(()=>{if(N)return;S(0),V.loadInitial().catch((C)=>{X.emit("error",{error:C,context:"loadInitial"})})});else if(j!==void 0)V.setTotal(j)},hooks:{onAfterScroll(){if(W.destroyed)return;let m=W.startIndex+Math.max(0,W.visibleCount-1);if(v>Z){if(E!==null)clearTimeout(E),E=null;y={start:W.startIndex,end:m};return}if(v>U){let C=Math.floor(W.startIndex/H),g=Math.floor(m/H);if(C!==O||g!==z){if(O=C,z=g,m>=W.startIndex)R(W.startIndex,m).catch(b)}let x=W.startIndex,B=m,L=W.scrollDirection;if(L>0)B=Math.min(B+K,V.getTotal()-1);else if(L<0)x=Math.max(0,x-K);if(y={start:x,end:B},E!==null)clearTimeout(E);E=setTimeout(()=>{if(E=null,W.destroyed||!y)return;let{start:_,end:h}=y;if(y=null,h>=_)R(_,h).catch(b)},100);return}D();let d=Math.floor(W.startIndex/H),i=Math.floor(m/H);if(d!==O||i!==z){if(O=d,z=i,m>=W.startIndex)R(W.startIndex,m).catch(b)}},onIdle(){if(W.destroyed)return;v=0,O=-1,z=-1,l(),D()}},destroy(){if(k!==null)clearTimeout(k);D()}}}var R0=(Q,$)=>{let j=0,Y=Q.length-1;while(j<Y){let J=j+Y+1>>>1;if(Q[J].headerLayoutIndex<=$)j=J;else Y=J-1}return j},X1=(Q,$)=>{let j=0,Y=Q.length-1;while(j<Y){let J=j+Y+1>>>1;if(Q[J].firstDataIndex<=$)j=J;else Y=J-1}return j},D1=(Q,$,j)=>{if(Q===0)return[];let Y=[],J=null,Z=0,U=0;for(let K=0;K<Q;K++){let M=j?.(K);if(!M)continue;let V=$(K,M);if(J===null)J=V,Z=0;else if(V!==J){let W=K-Z;Y.push({key:J,groupIndex:Y.length,headerLayoutIndex:U,firstDataIndex:Z,count:W}),U=U+1+W,J=V,Z=K}}if(J!==null)Y.push({key:J,groupIndex:Y.length,headerLayoutIndex:U,firstDataIndex:Z,count:Q-Z});return Y};var A1=(Q,$,j)=>{let Y=D1(Q,$.getGroupForIndex,j),J=Q+Y.length,Z=$.header?.height??$.header?.width??$.headerHeight;return{get totalEntries(){return J},get groupCount(){return Y.length},get groups(){return Y},getEntry:(P)=>{if(Y.length===0)return{type:"item",dataIndex:P,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let F=R0(Y,P),y=Y[F];if(P===y.headerLayoutIndex)return{type:"header",group:y};let E=P-y.headerLayoutIndex-1;return{type:"item",dataIndex:y.firstDataIndex+E,group:y}},layoutToDataIndex:(P)=>{if(Y.length===0)return P;let F=R0(Y,P),y=Y[F];if(P===y.headerLayoutIndex)return-1;let E=P-y.headerLayoutIndex-1;return y.firstDataIndex+E},dataToLayoutIndex:(P)=>{if(Y.length===0)return P;let F=X1(Y,P),y=Y[F],E=P-y.firstDataIndex;return y.headerLayoutIndex+1+E},getGroupAtLayoutIndex:(P)=>{if(Y.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=R0(Y,P);return Y[F]},getGroupAtDataIndex:(P)=>{if(Y.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=X1(Y,P);return Y[F]},getHeaderHeight:typeof Z==="number"?(P)=>Z:(P)=>{let F=Y[P];if(!F)return 0;return Z(F.key,P)},rebuild:(P,F)=>{Y=D1(P,$.getGroupForIndex,F??j),J=P+Y.length}}};var T0=(Q,$,j,Y,J=0)=>{let Z=j?"width":"height",U=document.createElement("div");return U.className=`${$}-sticky-header`,U.setAttribute("role","presentation"),U.setAttribute("aria-hidden","true"),U.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${J||0}px`:`top:${J||0}px`),U.style[Z]=`${Y}px`,Q.insertBefore(U,Q.firstChild),U},H1=(Q,$,j,Y,J,Z=!1,U=0,K,M)=>{let V=Z?"width":"height",W=Z?"height":"width",c=Z?"X":"Y",X=(u,T)=>{u.style[V]=`${T}px`},P=M??T0(Q,J,Z,0,U),F=()=>{let u=document.createElement("div");return u.className="sticky-group",u.style.position="absolute",u.style.willChange="transform",u.style[W]="100%",u},y=F(),E=F();P.append(y,E);let k=y,v=E,N=$.groups,O=[],z=[],H=[],D=0,R=()=>{N=$.groups,D=N.length,O=Array(D),z=Array(D),H=Array(D);let u=K?K():1;for(let T=0;T<D;T++)O[T]=j.getOffset(N[T].headerLayoutIndex)*u,z[T]=$.getHeaderHeight(T),H[T]=z[T]*u};R();let S=-1,b=0,l=0,m=-1,d=!1,i=0,C=!1,g=(u,T)=>{Y(u,T);let w=z[T];return X(u,w),w},x=(u)=>{u.replaceChildren(),u.style.transform=""},B=(u)=>{if(u===S)return;if(S=u,b=0,l=0,u<0||u>=D){x(k);return}b=g(k,u),l=H[u],X(P,b),k.style.transform=""},L=(u)=>{if(u===i)return;i=u;let T=Math.round(u);k.style.transform=`translate${c}(${T}px)`,v.style.transform=`translate${c}(${T+b}px)`},_=()=>{i=0,k.style.transform="",v.style.transform=""},h=()=>{if(!C)return;let u=k;k=v,v=u,S=m,b=S>=0?z[S]:0,l=S>=0?H[S]:0,X(P,b),x(v),m=-1,C=!1,_()},a=()=>{if(!C)return;x(v),m=-1,C=!1,_()},o=!!M,f=()=>{if(d)return;if(d=!0,o)P.style.visibility="";else P.style.display=""},q=()=>{if(!d)return;if(d=!1,o)P.style.visibility="hidden";else P.style.display="none";x(k),S=-1,b=0,l=0,a()},A=(u)=>{if(D===0){q();return}if(u<O[0]){q();return}let T=0,w=D-1;while(T<w){let J2=T+w+1>>>1;if(O[J2]+H[J2]<=u)T=J2;else w=J2-1}if(!d)f();B(T);let s=T+1;if(s<D){let J2=O[s]-u;if(J2<=0&&J2>-l){if(m!==s||!C)m=s,g(v,s),C=!0;let t=l>0?J2/l*b:J2;L(t)}else if(J2<=-l){if(C)h()}else if(C)a()}else if(C)a()},p=()=>{R();let u=S;if(S=-1,b=0,l=0,u>=0)B(u)},r=()=>{P.remove(),S=-1,b=0,l=0,m=-1,d=!1,C=!1};if(!M)P.style.display="none";return{update:A,refresh:p,show:f,hide:q,destroy:r}};var d2={selected:!1,focused:!1},L1=typeof process<"u"&&process.env?.NODE_ENV!=="production";function b0(Q){if(!Q.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let $=Q.header?.height??Q.header?.width??Q.headerHeight;if($==null||typeof $==="number"&&$<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let j=Q.header?.template??Q.headerTemplate;if(!j)throw Error("[vlist] groups: header.template is required");let Y=j,J,Z=null,U,K,M,V,W,c,X,P=null,F,y,E,k=null,v,N,O=null,z=null,H=new Map,D=new Set,R=new Map,S=-1,b=-1,l=!0,m=-1,d=0,i=null,C;function g(){return J.totalEntries}function x(){let q=K.totalItems;if(q===m)return;if(L1)console.log(`[groups] syncLayout: ${m} → ${q}`);let A=m>0;m=q,J.rebuild(q,P??X),C(J.totalEntries);let p=U.getTotalSize();if(V.style[F?"width":"height"]=p+"px",Z)Z.refresh(),Z.update(K.scrollPosition);if(A)_();let r=O?.("_scrollbar:getInstance");if(r)r()?.updateBounds(p,K.containerSize)}function B(q){let A=U.getOffset(q);if(F)return`translate(${Math.round(A)}px, 0)`;return`translate(0, ${Math.round(A)}px)`}function L(q,A){let p=U.getSize(A);if(F)q.style.width=`${p}px`;else q.style.height=`${p}px`}function _(){H.forEach((q)=>{q.remove();let A=q.getAttribute("data-id");if(A)R.set(A,q);else M.release(q)}),H.clear(),D.clear()}function h(){if(R.size>0)R.forEach((q)=>M.release(q)),R.clear()}function a(q,A,p,r){if(z===null)z=!!O?.("_getSelectedIds");if(A.type==="header"){let t=`__group_header_${A.group.groupIndex}`;if(q.getAttribute("data-id")===t)return!0;q.className=N,q.setAttribute("role","presentation"),q.removeAttribute("aria-selected"),q.setAttribute("data-id",t);let Z2=Y(A.group.key,A.group.groupIndex);if(typeof Z2==="string")q.innerHTML=Z2;else q.innerHTML="",q.appendChild(Z2);return!0}let u=A.dataIndex,T=X(u);if(!T)return q.innerHTML="",!1;let w=T._isPlaceholder===!0,s=String(T.id);if(!w&&q.getAttribute("data-id")===s){if(z)q.id=`${y}-item-${r}`,q.setAttribute("aria-posinset",String(u+1)),q.setAttribute("aria-setsize",String(K.totalItems));return!0}if(q.className=v,q.setAttribute("role",z?"option":"listitem"),q.setAttribute("data-id",s),z)q.id=`${y}-item-${r}`,q.setAttribute("aria-posinset",String(u+1)),q.setAttribute("aria-setsize",String(K.totalItems));if(w)q.classList.add(`${y}-item--placeholder`);if(p)p(r,d2);else d2.selected=!1,d2.focused=!1;let J2=c(T,u,d2);if(typeof J2==="string")q.innerHTML=J2;else q.innerHTML="",q.appendChild(J2);return p2(q),!w}function o(){if(K.destroyed)return;x();let{scrollPosition:q,containerSize:A}=K;if(!l&&q===S&&A===b)return;S=q,b=A;let p=l;l=!1;let r=g();if(A<=0||r===0){if(H.size>0)H.forEach((e)=>{e.remove(),M.release(e)}),H.clear(),D.clear();return}let u=U.indexAtOffset(q),T=U.indexAtOffset(q+A);if(T<r-1)T++;u=Math.max(0,u),T=Math.min(r-1,Math.max(0,T));let w=Math.max(0,u-E),s=Math.min(r-1,T+E);if(w===K.prevRangeStart&&s===K.prevRangeEnd&&!K.renderPending)return;H.forEach((e,q2)=>{if(q2<w||q2>s)e.remove(),M.release(e),H.delete(q2),D.delete(q2)});let J2=k?.()??null,t=J2?`${y}-item--selected`:"",Z2=J2?`${y}-item--focused`:"",V2=null;for(let e=w;e<=s;e++){let q2=H.get(e),N2=!1;if(q2===void 0){let X2=J.getEntry(e);N2=X2.type==="header";let U2;if(X2.type==="header")U2=`__group_header_${X2.group.groupIndex}`;else{let E2=X(X2.dataIndex);if(E2&&E2._isPlaceholder!==!0)U2=String(E2.id)}if(U2!==void 0){let E2=R.get(U2);if(E2)R.delete(U2),q2=E2}if(!q2)q2=M.acquire();if(q2.setAttribute("data-index",String(e)),a(q2,X2,J2,e))D.delete(e);else D.add(e);if(L(q2,e),q2.style.transform=B(e),H.set(e,q2),!V2)V2=document.createDocumentFragment();V2.appendChild(q2)}else if(p&&D.has(e)){let X2=J.getEntry(e);if(X2.type==="item")if(a(q2,X2,J2,e))D.delete(e);else D.add(e)}else N2=q2.classList.contains(N);if(!N2&&J2)if(J2(e,d2),q2.classList.toggle(t,d2.selected),q2.classList.toggle(Z2,d2.focused),d2.selected)q2.setAttribute("aria-selected","true");else q2.removeAttribute("aria-selected")}if(V2)V.appendChild(V2);h();let L2=U.getTotalSize();V.style[F?"width":"height"]=L2+"px",K.prevRangeStart=w,K.prevRangeEnd=s,K.renderPending=!1;let A2=0,D2=0,K2=!1;for(let e=w;e<=s&&A2<K.capacity;e++){let q2=J.getEntry(e);if(q2.type==="item"){if(!K2)D2=q2.dataIndex,K2=!0;K.visibleIndices[A2]=q2.dataIndex,K.visibleOffsets[A2]=U.getOffset(e),K.visibleSizes[A2]=U.getSize(e),A2++}}K.visibleCount=A2,K.startIndex=D2}function f(){if(K.destroyed)return;if(L1)console.log(`[groups] forceRender, placeholders: ${D.size}, rendered: ${H.size}`);let q=i?.()??0;if(q!==d){d=q;let A=J.groups,p=A.length;J.rebuild(m,P??X);let r=J.groups,u=r.length!==p;if(!u){for(let T=0;T<p;T++)if(r[T].headerLayoutIndex!==A[T].headerLayoutIndex){u=!0;break}}if(u){C(J.totalEntries);let T=U.getTotalSize();if(V.style[F?"width":"height"]=T+"px",Z)Z.refresh(),Z.update(K.scrollPosition);let w=1/0,s=Math.min(p,r.length);for(let t=0;t<s;t++)if(r[t].headerLayoutIndex!==A[t].headerLayoutIndex){w=Math.min(r[t].headerLayoutIndex,A[t].headerLayoutIndex);break}if(r.length>p&&s<r.length)w=Math.min(w,r[s].headerLayoutIndex);else if(p>r.length&&s<p)w=Math.min(w,A[s].headerLayoutIndex);if(w<=K.prevRangeEnd)_();let J2=O?.("_scrollbar:getInstance");if(J2)J2()?.updateBounds(T,K.containerSize)}}K.prevRangeStart=-1,K.prevRangeEnd=-1,K.renderPending=!0,l=!0,o()}return{name:"groups",priority:10,setup(q){U=q.sizeCache,K=q.getState(),M=q.pool,V=q.dom.content,W=q.dom.root,c=q.template,F=q.config.axis.primary==="x",y=q.config.classPrefix,E=q.config.overscan,X=q.getItem.bind(q),k=()=>q.getItemStateFn(),O=q.getMethod.bind(q),z=null,v=`${y}-item`,N=`${y}-group-header`,queueMicrotask(()=>{let T=O?.("_getLoadedItem");if(T)P=T;let w=O?.("_getLoadedCount");if(w)i=w});let A=K.totalItems;J=A1(A,Q,P??X),m=A;let p=typeof $==="number"?(T)=>$:(T)=>{let w=J.groups[T];if(!w)return 0;return $(w.key,T)},r=U.getSize,u=(T)=>{let w=J.getEntry(T);if(w.type==="header"){if(Q.sticky!==!1&&w.group.groupIndex===0)return 0;return p(w.group.groupIndex)}return r(w.dataIndex)};if(q.setSizeConfig(u),C=U.rebuild,U.rebuild=(T)=>{C(J.totalEntries)},U.rebuild(J.totalEntries),q.setVirtualTotalFn(()=>J.totalEntries),W.classList.add(`${y}--grouped`),Q.sticky!==!1){let T=(J2,t)=>{let Z2=J.groups[t];if(!Z2)return;let V2=Y(Z2.key,t);if(typeof V2==="string")J2.innerHTML=V2;else J2.replaceChildren(V2)},w=J.getHeaderHeight(0),s=T0(W,y,F,w);if(Z=H1(W,J,U,T,y,F,0,void 0,s),Z.update(K.scrollPosition),!F)q.dom.viewport.style.height=`calc(100% - ${w}px)`;else q.dom.viewport.style.width=`calc(100% - ${w}px)`}q.setRenderFn(o,f),q.registerMethod("getGroupLayout",()=>J),q.registerMethod("_dataToLayoutIndex",(T)=>J.dataToLayoutIndex(T)),q.registerMethod("_layoutToDataIndex",(T)=>J.layoutToDataIndex(T)),q.registerMethod("_getRenderedElement",(T)=>H.get(T)??null),q.registerMethod("_isGroupHeader",(T)=>{return J.getEntry(T).type==="header"}),q.registerMethod("scrollToIndex",(T,w="start")=>{let s=J.dataToLayoutIndex(T),J2=J.totalEntries;if(J2===0)return;let t=Math.max(0,Math.min(s,J2-1)),Z2=U.getOffset(t),V2=U.getSize(t),L2=K.containerSize,A2=U.getTotalSize(),D2=Math.max(0,A2-L2),K2=typeof w==="string"?w:w.align??"start",e=typeof w==="object"?w.behavior:void 0,q2=typeof w==="object"?w.duration:void 0,N2;switch(K2){case"center":N2=Z2-(L2-V2)/2;break;case"end":N2=Z2-L2+V2;break;default:N2=Z2}if(N2=Math.max(0,Math.min(N2,D2)),e==="smooth"&&q2&&q2>0)q.smoothScrollTo(N2,q2);else q.scrollTo(N2)}),q.registerDestroyHandler(()=>{for(let[,T]of H)T.remove();if(H.clear(),D.clear(),Z)Z.destroy(),Z=null;W.classList.remove(`${y}--grouped`)})},hooks:{onAfterScroll(q,A){if(Z)Z.update(q)}},destroy(){if(Z)Z.destroy(),Z=null;H.clear(),D.clear(),R.clear()}}}var O1=(Q,$=50,j=1/0,Y=!0)=>{let J=Q,Z=[],U=0,K=()=>{Z=J.map((E,k)=>({def:E,index:k,width:0,minWidth:J4(E.minWidth??$,1),maxWidth:E.maxWidth??j,resizable:E.resizable??Y,offset:0}))},M=(E)=>{if(Z.length===0){U=0;return}let k=0,v=0;for(let N=0;N<Z.length;N++){let O=Z[N],z=O.def;if(z.width!==void 0)O.width=k0(z.width,O.minWidth,O.maxWidth),k+=O.width;else v++}if(v){let O=Math.max(0,E-k)/v;for(let z=0;z<Z.length;z++){let H=Z[z];if(H.def.width===void 0)H.width=k0(O,H.minWidth,H.maxWidth)}}V()},V=()=>{let E=0;for(let k=0;k<Z.length;k++){let v=Z[k];v.offset=E,E+=v.width}U=E},W=(E,k)=>{if(E<0||E>=Z.length)return 0;let v=Z[E];if(!v.resizable)return v.width;let N=k0(k,v.minWidth,v.maxWidth);return v.width=N,V(),N},c=(E)=>{return Z[E]},X=(E)=>{if(Z.length===0)return;if(E<0)return Z[0];if(E>=U)return Z[Z.length-1];let k=0,v=Z.length-1;while(k<v){let N=k+v>>>1,O=Z[N];if(E<O.offset)v=N-1;else if(E>=O.offset+O.width)k=N+1;else return O}return Z[k]},P=(E)=>{if(E<0||E>=Z.length)return 0;return Z[E].offset},F=(E)=>{if(E<0||E>=Z.length)return 0;return Z[E].width},y=(E)=>{J=E,K()};return K(),{get columns(){return Z},get totalWidth(){return U},resolve:M,updateColumns:y,resizeColumn:W,getColumn:c,getColumnAtX:X,getColumnOffset:P,getColumnWidth:F}},k0=(Q,$,j)=>Math.min(j,Math.max($,Q)),J4=(Q,$)=>Math.max($,Q);var F1=(Q,$,j,Y,J,Z)=>{let U=document.createElement("div");U.setAttribute("role","rowgroup");let K=document.createElement("div");K.className=`${j}-table-header`,K.setAttribute("role","row"),K.setAttribute("aria-rowindex","1"),K.style.height=`${$}px`;let M=document.createElement("div");M.className=`${j}-table-header-scroll`,M.setAttribute("role","presentation"),K.appendChild(M),U.appendChild(K),Q.insertBefore(U,Q.firstChild),Q.style.setProperty("--vlist-table-header-height",`${$}px`);let V=[],W=[],c=!0,X=null,P="asc",F=null,y=!1,E=-1,k=0,v=0,N=0,O=(B,L)=>{let _=document.createElement("div");_.className=`${j}-table-header-cell`,_.setAttribute("role","columnheader"),_.setAttribute("aria-colindex",String(L+1)),_.setAttribute("tabindex",L===0?"0":"-1"),_.dataset.columnKey=B.def.key;let h=B.def.align;if(h==="center")_.classList.add(`${j}-table-header-cell--center`);else if(h==="right")_.classList.add(`${j}-table-header-cell--right`);let a=document.createElement("div");a.className=`${j}-table-header-content`;let o=B.def.header?B.def.header(B.def):B.def.label;if(typeof o==="string")a.textContent=o;else a.appendChild(o);if(_.appendChild(a),B.def.sortable){let f=document.createElement("span");f.className=`${j}-table-header-sort`,f.setAttribute("aria-hidden","true"),_.appendChild(f),W.push(f),_.classList.add(`${j}-table-header-cell--sortable`)}else W.push(null);if(B.resizable){let f=document.createElement("div");f.className=`${j}-table-header-resize`,f.dataset.resizeIndex=String(L),_.appendChild(f)}return _},z=(B)=>{F=B,M.textContent="",V=[],W=[];let L=B.columns;for(let _=0;_<L.length;_++){let h=L[_],a=O(h,_);V.push(a),M.appendChild(a)}if(H(B),X)D(X,P)},H=(B)=>{F=B;let L=B.columns;M.style.width=`${B.totalWidth}px`;for(let _=0;_<V.length&&_<L.length;_++){let h=V[_],a=L[_];h.style.width=`${a.width}px`}},D=(B,L)=>{if(X=B,P=L,!F)return;let _=F.columns;for(let h=0;h<W.length&&h<_.length;h++){let a=W[h];if(!a)continue;if(_[h].def.key===B)a.textContent=L==="asc"?"▲":"▼",a.style.opacity="0.7",V[h].setAttribute("aria-sort",L==="asc"?"ascending":"descending");else a.textContent="",a.style.opacity="0",V[h].removeAttribute("aria-sort")}},R=(B)=>{M.style.transform=`translateX(${-B}px)`},S=(B)=>{let L=B.target;if(!L.dataset.resizeIndex)return;if(B.preventDefault(),B.stopPropagation(),E=+L.dataset.resizeIndex,!F)return;let _=F.getColumn(E);if(!_?.resizable)return;y=!0,k=B.clientX,v=_.width,Q.classList.add(`${j}--col-resizing`),Q.style.cursor="col-resize",L.classList.add(`${j}-table-header-resize--active`),L.setPointerCapture(B.pointerId),L.addEventListener("pointermove",b),L.addEventListener("pointerup",l),L.addEventListener("pointercancel",l)},b=(B)=>{if(!y||!F)return;let L=B.clientX-k;if(Math.abs(L)<1)return;let _=Math.max(0,v+L);Y(E,_)},l=(B)=>{if(!y)return;let L=B.target;L.removeEventListener("pointermove",b),L.removeEventListener("pointerup",l),L.removeEventListener("pointercancel",l);try{L.releasePointerCapture(B.pointerId)}catch{}L.classList.remove(`${j}-table-header-resize--active`),Q.classList.remove(`${j}--col-resizing`),Q.style.cursor="",y=!1,E=-1},m=(B)=>{let L=B.target;if(L.dataset.resizeIndex)return;if(y)return;let _=L;while(_&&!_.dataset.columnKey)if(_=_.parentElement,_===K||_===null)return;let h=_.dataset.columnKey;if(!F)return;let a=F.columns,o=-1;for(let q=0;q<a.length;q++)if(a[q].def.key===h){o=q;break}if(o===-1)return;let f=a[o];if(Z)Z({key:h,index:o,event:B});if(f.def.sortable&&J){let q;if(X===h)q=P==="asc"?"desc":null;else q="asc";J({key:h,index:o,direction:q})}},d=(B)=>{if(B<0||B>=V.length)return;V[N]?.setAttribute("tabindex","-1"),N=B;let L=V[N];L.setAttribute("tabindex","0"),L.focus()},i=(B)=>{let L=B.key;if(L==="ArrowRight"){if(B.ctrlKey||B.metaKey){if(!F)return;let _=F.getColumn(N);if(_?.resizable)Y(N,_.width+10),B.preventDefault()}else if(N<V.length-1)d(N+1),B.preventDefault();B.stopPropagation();return}if(L==="ArrowLeft"){if(B.ctrlKey||B.metaKey){if(!F)return;let _=F.getColumn(N);if(_?.resizable)Y(N,_.width-10),B.preventDefault()}else if(N>0)d(N-1),B.preventDefault();B.stopPropagation();return}if(L==="Home"){d(0),B.preventDefault(),B.stopPropagation();return}if(L==="End"){d(V.length-1),B.preventDefault(),B.stopPropagation();return}if(L==="Enter"||L===" "){if(!F)return;let _=F.getColumn(N);if(_?.def.sortable&&J){let h;if(X===_.def.key)h=P==="asc"?"desc":null;else h="asc";J({key:_.def.key,index:N,direction:h}),B.preventDefault()}B.stopPropagation();return}if(L==="ArrowDown"){Q.focus(),B.preventDefault(),B.stopPropagation();return}};return K.addEventListener("pointerdown",S),K.addEventListener("click",m),K.addEventListener("keydown",i),{element:K,update:H,updateSort:D,rebuild:z,show:()=>{if(c)return;c=!0,K.style.display=""},hide:()=>{if(!c)return;c=!1,K.style.display="none"},destroy:()=>{K.removeEventListener("pointerdown",S),K.removeEventListener("click",m),K.removeEventListener("keydown",i),Q.style.removeProperty("--vlist-table-header-height"),U.remove(),V=[],W=[],F=null,c=!1},syncScroll:R}};var Q4=()=>{let Q=[];return{acquire:()=>Q.pop()||document.createElement("div"),release:($)=>{if($.parentNode?.removeChild($),Q.length<200)$.className="",$.removeAttribute("data-id"),$.removeAttribute("data-index"),$.removeAttribute("aria-selected"),$.removeAttribute("aria-rowindex"),$.removeAttribute("role"),$.style.cssText="",$.textContent="",Q.push($)},clear:()=>{Q.length=0}}},E1=(Q,$,j,Y,J,Z,U,K,M)=>{let V=Q4(),W=new Map,c=-1,X=j,P=null,F=null,y=null,E=(T,w)=>{F=T,y=w},k=(T,w)=>{w?T.setAttribute("aria-selected","true"):T.removeAttribute("aria-selected")},v=(T,w,s,J2)=>{T.setAttribute("role",w),T.setAttribute("data-id",String(s)),T.setAttribute("data-index",String(J2))},N=(T)=>String(T).startsWith("__placeholder_"),O=`${J}-item ${J}-table-row`,z=`${J}-item--selected`,H=`${J}-item--focused`,D=`${J}-table-cell`,R=`${J}-table-cell--center`,S=`${J}-table-cell--right`,b=`${J}-item--odd`,l=`${J}-item--placeholder`,m=`${J}-item--replaced`,d=`${J}-item ${J}-table-row ${J}-table-group-header`,i=`${J}-table-group-header-content`,C=(T,w,s,J2,t=!1)=>{if(s.def.cell){let Z2=s.def.cell(w,s.def,J2);if(typeof Z2==="string")T.innerHTML=Z2;else T.replaceChildren(Z2)}else{let Z2=w[s.def.key],V2=Z2!=null?String(Z2):"";if(t&&V2)T.innerHTML=`<span>${V2}</span>`;else T.textContent=V2}},g=(T,w,s,J2,t=!1)=>{let Z2=O;if(K){if(P){let V2=P(w);if(V2>=0&&(V2&1)===1)Z2+=` ${b}`}else if((w&1)===1)Z2+=` ${b}`}if(t)Z2+=` ${l}`;if(s)Z2+=` ${z}`;if(J2)Z2+=` ${H}`;T.className=Z2},x=(T,w,s)=>{if(s?.compression?.isCompressed)return Math.round(u2(T,s.scrollPosition,w,s.totalItems,s.containerSize,s.compression,s.rangeStart));return w.getOffset(T)},B=(T,w)=>{let s=w.def.align;if(s==="center")T.classList.add(R),T.classList.remove(S);else if(s==="right")T.classList.add(S),T.classList.remove(R);else T.classList.remove(R,S)},L=(T,w)=>{let J2=X.columns.length;if(w.length===J2)return w;let t=[];for(let Z2=0;Z2<J2;Z2++){let V2;if(Z2<w.length)V2=w[Z2];else V2=document.createElement("div"),V2.className=D,T.appendChild(V2);t.push(V2)}for(let Z2=J2;Z2<w.length;Z2++)w[Z2].remove();return t},_=(T,w,s,J2)=>{let t=V.acquire(),Z2=T,V2=s.getSize(w),L2=x(w,s,J2);t.style.cssText=`width:${X.totalWidth}px;height:${V2}px;transform:translateY(${L2}px)`,t.className=d,v(t,"presentation",T.id,w),t.removeAttribute("aria-selected"),t.removeAttribute("aria-rowindex"),t.replaceChildren();let A2=document.createElement("div");if(A2.className=i,y){let D2=y(Z2.groupKey,Z2.groupIndex);if(typeof D2==="string")A2.innerHTML=D2;else A2.appendChild(D2)}return t.appendChild(A2),{element:t,cells:[],index:w,isGroupHeader:!0,_lastItem:T,lastItemId:T.id,lastSelected:!1,lastFocused:!1,lastOffset:L2,lastHeight:V2}},h=(T,w,s,J2,t,Z2)=>{let V2=V.acquire(),L2=t.getSize(w),A2=x(w,t,Z2),D2=N(T.id);V2.style.cssText=`width:${X.totalWidth}px;height:${L2}px;transform:translateY(${A2}px)`,g(V2,w,s,J2,D2),v(V2,"row",T.id,w),V2.id=`${Z}-item-${w}`,V2.setAttribute("aria-rowindex",String(w+2)),k(V2,s);let K2=L(V2,[]),e=X.columns;for(let q2=0;q2<K2.length&&q2<e.length;q2++){let N2=K2[q2],X2=e[q2];N2.style.cssText=`left:${X2.offset}px;width:${X2.width}px`,N2.setAttribute("role","gridcell"),N2.setAttribute("aria-colindex",String(q2+1)),B(N2,X2),C(N2,T,X2,w,D2)}return{element:V2,cells:K2,index:w,isGroupHeader:!1,_lastItem:T,lastItemId:T.id,lastSelected:s,lastFocused:J2,lastOffset:A2,lastHeight:L2}},a=(T,w,s,J2,t)=>{let Z2=!1,V2=U();if(V2!==c)c=V2,Z2=!0;let L2=null,A2=$();P=typeof K==="string"&&M?M():null;for(let D2=w.start;D2<=w.end;D2++){let K2=D2-w.start,e=T[K2];if(!e)continue;let q2=s.has(e.id),N2=D2===J2,X2=F?F(e):!1,U2=W.get(D2);if(U2){if(U2.isGroupHeader!==X2){V.release(U2.element),W.delete(D2);let k2=X2?_(e,D2,A2,t):h(e,D2,q2,N2,A2,t);if(W.set(D2,k2),!L2)L2=document.createDocumentFragment();L2.appendChild(k2.element);continue}if(X2){if(U2._lastItem!==e){let y2=e,z2=U2.element.firstElementChild;if(z2&&y){let T2=y(y2.groupKey,y2.groupIndex);if(typeof T2==="string")z2.innerHTML=T2;else z2.replaceChildren(T2)}U2.element.setAttribute("data-id",String(e.id)),U2._lastItem=e,U2.lastItemId=e.id}let E2=x(D2,A2,t);if(U2.lastOffset!==E2)U2.lastOffset=E2,U2.element.style.transform=`translateY(${E2}px)`;let O2=A2.getSize(D2);if(U2.lastHeight!==O2)U2.lastHeight=O2,U2.element.style.height=`${O2}px`}else{let k2=U2._lastItem!==e,E2=U2.lastSelected!==q2,O2=U2.lastFocused!==N2;if(k2){let T2=U2.lastItemId!=null&&N(U2.lastItemId),R2=N(e.id);if(!R2&&o2(s,D2,e.id))q2=!0;let P2=X.columns;for(let b2=0;b2<U2.cells.length&&b2<P2.length;b2++)C(U2.cells[b2],e,P2[b2],D2,R2);if(g(U2.element,D2,q2,N2,R2),U2.element.setAttribute("data-id",String(e.id)),k(U2.element,q2),T2&&!R2)U2.element.classList.add(m),setTimeout(()=>{U2.element.classList.remove(m)},300);U2._lastItem=e,U2.lastItemId=e.id,U2.lastSelected=q2,U2.lastFocused=N2}else if(E2||O2)g(U2.element,D2,q2,N2,N(e.id)),k(U2.element,q2),U2.lastSelected=q2,U2.lastFocused=N2;let y2=x(D2,A2,t);if(U2.lastOffset!==y2)U2.lastOffset=y2,U2.element.style.transform=`translateY(${y2}px)`;let z2=A2.getSize(D2);if(U2.lastHeight!==z2)U2.lastHeight=z2,U2.element.style.height=`${z2}px`;if(Z2)U2.element.setAttribute("aria-rowindex",String(D2+2))}}else{if(o2(s,D2,e.id))q2=!0;let k2=X2?_(e,D2,A2,t):h(e,D2,q2,N2,A2,t);if(W.set(D2,k2),!L2)L2=document.createDocumentFragment();L2.appendChild(k2.element)}}if(L2)Q.appendChild(L2);for(let[D2,K2]of W)if(D2<w.start||D2>w.end)V.release(K2.element),W.delete(D2)},o=(T)=>{let w=$();for(let[s,J2]of W){let t=x(s,w,T);if(J2.lastOffset!==t)J2.lastOffset=t,J2.element.style.transform=`translateY(${t}px)`}},f=(T,w,s,J2)=>{let t=W.get(T);if(!t)return;if(t.isGroupHeader)return;let Z2=X.columns;for(let V2=0;V2<t.cells.length&&V2<Z2.length;V2++)C(t.cells[V2],w,Z2[V2],T);t.element.setAttribute("data-id",String(w.id)),t._lastItem=w,t.lastItemId=w.id,g(t.element,T,s,J2),k(t.element,s),t.lastSelected=s,t.lastFocused=J2},q=(T,w,s)=>{let J2=W.get(T);if(!J2)return;if(J2.isGroupHeader)return;let t=J2.lastSelected!==w,Z2=J2.lastFocused!==s;if(t||Z2)g(J2.element,T,w,s),k(J2.element,w),J2.lastSelected=w,J2.lastFocused=s},A=(T)=>{X=T;let w=T.columns;for(let[,s]of W)if(s.element.style.width=`${T.totalWidth}px`,s.cells.length>0)for(let J2=0;J2<s.cells.length&&J2<w.length;J2++){let t=s.cells[J2],Z2=w[J2];t.style.left=`${Z2.offset}px`,t.style.width=`${Z2.width}px`}},p=(T)=>{return W.get(T)?.element},r=()=>{for(let[,T]of W)V.release(T.element);W.clear(),c=-1};return{render:a,updatePositions:o,updateItem:f,updateItemClasses:q,getElement:p,updateColumnLayout:A,setGroupHeaderFn:E,clear:r,destroy:()=>{r(),V.clear()}}};var j4=new Set;function y0(Q){if(!Q.columns?.length)throw Error("[vlist] table: columns must be a non-empty array");if(Q.rowHeight===void 0&&Q.estimatedRowHeight===void 0)throw Error("[vlist] table: either rowHeight or estimatedRowHeight is required");let $=null,j=null,Y=null,J,Z,U=null,K=null,M=null,V=!1,W=-1,c=null,X=!1;function P(){if(V||!U)return;V=!0,K=U.getMethod("_getSelectedIds")??null,M=U.getMethod("_getFocusedIndex")??null}function F(){if(X||!U)return;X=!0,c=U.getMethod("_scale:getCompression")??null}let y=[],E={start:0,end:0},k={start:0,end:-1};function v(){if(J.destroyed||!U||!Y||!$)return;let{containerSize:O,totalItems:z}=J;if(O<=0||z===0)return;let H=z+1;if(H!==W)W=H,U.dom.root.setAttribute("aria-rowcount",`${H}`);F();let D=J.scrollPosition,R=c?.()??null,S=R!==null&&R.isCompressed,b=U.config.overscan,l,m;if(S)x2(D,O,Z,z,R,k),l=Math.max(0,k.start-b),m=Math.min(z-1,k.end+b);else{let B=Z.indexAtOffset(D),L=Z.indexAtOffset(D+O);if(L<z-1)L++;B=Math.max(0,B),L=Math.min(z-1,L),l=Math.max(0,B-b),m=Math.min(z-1,L+b)}if(l===J.prevRangeStart&&m===J.prevRangeEnd&&!J.renderPending)return;P();let d=K?.()??j4,i=M?.()??-1;y.length=0;for(let B=l;B<=m;B++){let L=U.getItem(B);if(L)y.push(L)}E.start=l,E.end=m;let C;if(S)C={scrollPosition:D,totalItems:z,containerSize:O,rangeStart:l,compression:R};Y.render(y,E,d,i,C),J.prevRangeStart=l,J.prevRangeEnd=m,J.renderPending=!1;let g=m-l+1;J.visibleCount=Math.min(g,J.capacity),J.startIndex=l;for(let B=0;B<J.visibleCount;B++){let L=l+B;J.visibleIndices[B]=L,J.visibleOffsets[B]=Z.getOffset(L),J.visibleSizes[B]=Z.getSize(L)}let x=Z.getTotalSize();J.totalSize=x,U.dom.content.style.height=x+"px"}function N(){if(J.destroyed)return;J.prevRangeStart=-1,J.prevRangeEnd=-1,J.renderPending=!0,v()}return{name:"table",priority:10,conflicts:["grid","masonry"],setup(O){U=O,J=O.getState(),Z=O.sizeCache;let{dom:z,config:H,emitter:D}=O,{classPrefix:R}=H;if(H.axis.primary==="x")throw Error("[vlist] table: cannot be used with horizontal orientation");if(H.reverse)throw Error("[vlist] table: cannot be used with reverse mode");let S=Q.resizable??!0,b=Q.minColumnWidth??50,l=Q.maxColumnWidth??1/0,m=Q.rowBorders??!0,d=Q.rowHeight,i=Q.headerHeight??(typeof d==="number"?d:40),C=Q.sort?.key??null,g=Q.sort?.direction??"asc";if($=O1(Q.columns,b,l,S),typeof d==="function"||typeof d==="number")O.setSizeConfig(d);if(O.rebuildSizeCache(),z.root.classList.add(`${R}--table`),m)z.root.classList.add(`${R}--table-row-borders`);if(Q.columnBorders)z.root.classList.add(`${R}--table-col-borders`);queueMicrotask(()=>{if(O.getMethod("_getSelectedIds"))z.root.setAttribute("tabindex","0")}),z.root.setAttribute("role","grid"),z.root.setAttribute("aria-colcount",`${Q.columns.length}`),z.viewport.setAttribute("role","none"),z.content.setAttribute("role","rowgroup");let x=J.crossSize;$.resolve(x);let B=()=>{if(!$)return;z.content.style.minWidth=`${$.totalWidth}px`},L=(f,q)=>{if(!$)return;let A=$.getColumn(f);if(!A)return;let p=A.width,r=$.resizeColumn(f,q);j?.update($),Y?.updateColumnLayout($),B(),D.emit("column:resize",{key:A.def.key,index:f,previousWidth:p,width:r})},_=(f)=>{C=f.direction===null?null:f.key,g=f.direction??"asc",j?.updateSort(C,g),D.emit("column:sort",f)};if(j=F1(z.root,i,R,L,_),j.rebuild($),C)j.updateSort(C,g);B(),Y=E1(z.content,()=>Z,$,Q.columns,R,R,()=>J.totalItems,H.striped||void 0),O.setRenderFn(v,N);let h=j,a=-1,o=()=>{let f=z.viewport.scrollLeft;if(f!==a)a=f,h?.syncScroll?.(f)};z.viewport.addEventListener("scroll",o,{passive:!0}),O.registerMethod("updateColumns",(f)=>{if(!$||!j)return;if($.updateColumns(f),$.resolve(J.crossSize),j.rebuild($),C)j.updateSort(C,g);B(),Y?.updateColumnLayout($),Y?.clear(),O.forceRender()}),O.registerMethod("resizeColumn",(f,q)=>{if(!$)return;let A;if(typeof f==="string"){let p=$.columns;A=-1;for(let r=0;r<p.length;r++)if(p[r].def.key===f){A=r;break}if(A===-1)return}else A=f;L(A,q)}),O.registerMethod("getColumnWidths",()=>{if(!$)return{};let f={},q=$.columns;for(let A=0;A<q.length;A++)f[q[A].def.key]=q[A].width;return f}),O.registerMethod("setSort",(f,q)=>{C=f,g=q??"asc",j?.updateSort(C,g)}),O.registerMethod("getSort",()=>{return{key:C,direction:g}}),O.registerMethod("_getTableLayout",()=>$),O.registerMethod("_getTableHeaderHeight",()=>i),O.registerMethod("_updateRenderedItem",(f,q,A,p)=>{Y?.updateItem(f,q,A,p)}),O.registerMethod("_replaceTableRenderer",(f)=>{Y=f}),O.registerMethod("_updateTableForGroups",(f,q)=>{Y?.setGroupHeaderFn(f,q)}),O.registerMethod("_updateItemClasses",(f,q,A)=>{Y?.updateItemClasses(f,q,A)}),O.registerKeydownHandler((f)=>{if(f.key!=="ArrowLeft"&&f.key!=="ArrowRight")return;if(!$)return;let q=$.columns;if(q.length===0)return;let A=z.viewport.clientWidth;if($.totalWidth<=A)return;let p=z.viewport.scrollLeft;if(f.key==="ArrowRight"){for(let r=0;r<q.length;r++)if(q[r].offset>p+1){z.viewport.scrollLeft=q[r].offset,f.preventDefault();return}}else{for(let r=q.length-1;r>=0;r--)if(q[r].offset<p-1){z.viewport.scrollLeft=q[r].offset,f.preventDefault();return}if(p>0)z.viewport.scrollLeft=0,f.preventDefault()}}),O.registerDestroyHandler(()=>{z.viewport.removeEventListener("scroll",o),j?.destroy(),j=null,Y?.destroy(),Y=null,z.content.style.minWidth="",z.root.classList.remove(`${R}--table`),z.root.classList.remove(`${R}--table-row-borders`),z.root.classList.remove(`${R}--table-col-borders`),z.root.removeAttribute("role"),z.root.removeAttribute("aria-colcount"),z.root.removeAttribute("aria-rowcount"),z.root.removeAttribute("tabindex"),z.viewport.removeAttribute("role"),z.content.removeAttribute("role")})},hooks:{onResize(O,z){if(!$||!U)return;let H=J.crossSize;if($.resolve(H),j?.update($),Y?.updateColumnLayout($),$)U.dom.content.style.minWidth=`${$.totalWidth}px`},onAfterScroll(){if(!U||!j)return;j?.syncScroll?.(U.dom.viewport.scrollLeft)}},destroy(){j?.destroy(),j=null,Y?.destroy(),Y=null,U=null}}}function z0(Q){let $=Q?.handle??null,j=Q?.ghostClass??"vlist-sort-ghost",Y=Q?.shiftDuration??150,J=Q?.edgeScrollZone??40,Z=Q?.edgeScrollSpeed??20,U=Q?.dragThreshold??5,K=Q?.ghostContainer??null,M,V,W=null,c,X,P,F,y,E,k,v,N,O,z=!1,H=-1,D=-1,R=0,S=0,b=0,l=0,m=!1,d=null,i=0,C=null,g=0,x=0,B=0,L=null,_=!1,h="",a=-1,o=-1,f=[],q="",A=null,p=null,r="",u=!1,T=(G)=>{return G.closest("[data-index]")},w=(G)=>{let $2=G.dataset.index;return $2===void 0?-1:+$2},s=(G)=>{let $2=G.getBoundingClientRect(),j2=G.cloneNode(!0);return j2.className=`${F}-item ${j}`,j2.removeAttribute("data-index"),j2.style.cssText=`position:fixed;pointer-events:none;z-index:10000;width:${$2.width}px;height:${$2.height}px;left:${$2.left}px;top:${$2.top}px;transition:none;will-change:transform`,(K||document.body).appendChild(j2),j2},J2=()=>{if(!d)return;d.style.left=`${b-x}px`,d.style.top=`${l-B}px`},t=()=>{let G=M.totalItems;if(G===0)return 0;let $2=X.getBoundingClientRect(),j2=M.scrollPosition,n=y?b-x-$2.left+X.scrollLeft+j2:l-B-$2.top+j2,Q2=n+g,B2=V.getOffset(H)+V.getSize(H);if(Q2>B2){let H2=V.indexAtOffset(Q2),v2=V.getOffset(H2)+V.getSize(H2)/2,S2=Q2>v2?H2:H2-1;return Math.min(Math.max(S2,H),G-1)}let G2=V.getOffset(H);if(n<G2){let H2=V.indexAtOffset(n),v2=V.getOffset(H2)+V.getSize(H2)/2,S2=n<v2?H2:H2+1;return Math.max(Math.min(S2,H),0)}return H},Z2=()=>{let G=c.children,$2=g;for(let j2=0;j2<G.length;j2++){let n=G[j2],Q2=w(n);if(Q2<0||Q2===H)continue;let B2=0;if(D>H){if(Q2>H&&Q2<=D)B2=-$2}else if(D<H){if(Q2>=D&&Q2<H)B2=$2}let G2=V.getOffset(Q2),H2=Math.round(G2+B2);n.style.transition=k,n.style.transform=`${E}(${H2}px)`}},V2=()=>{let G=c.children;for(let $2=0;$2<G.length;$2++){let j2=G[$2],n=w(j2);if(n>=0)j2.style.transform=`${E}(${Math.round(V.getOffset(n))}px)`;j2.style.transition=""}},L2=()=>{if(!W)return;let G=t();if(G===D)return;D=G,Z2(),W.emitter.emit("sort:move",{fromIndex:H,currentIndex:D})},A2=()=>{let G=X.getBoundingClientRect();if(y)return b<G.left||b>G.right;return l<G.top||l>G.bottom},D2=()=>{let G=W?.getMethod("_getFocusedIndex");return G?G():-1},K2=(G)=>{let $2=W?.getMethod("_focusById");if($2)$2(G)},e=(G)=>{if(!W)return;let $2=y?X.clientWidth:X.clientHeight,j2=M.scrollPosition,n=V.getOffset(G),Q2=n+V.getSize(G);if(n<j2)W.scrollTo(Math.max(0,n));else if(Q2>j2+$2)W.scrollTo(Q2-$2)},q2=(G)=>{if(!p)return;p.textContent="",p.offsetHeight,p.textContent=G},N2=(G)=>{if(!W)return"";let j2=W.getItems()[G];if(!j2)return"";return c.querySelector(`[data-index="${G}"]`)?.textContent?.trim()||String(j2.id)},X2=()=>String(M.totalItems),U2=(G)=>{let $2=c.children;for(let j2=0;j2<$2.length;j2++)$2[j2].style.transition=G},k2=()=>{let G=()=>{if(!z||!W)return;let $2=X.getBoundingClientRect(),j2=0,n=3;if(y){let B2=b-$2.left,G2=$2.right-b;if(B2<J){let H2=Math.min(n,1-B2/J);j2=-Z*H2*H2}else if(G2<J){let H2=Math.min(n,1-G2/J);j2=Z*H2*H2}}else{let B2=l-$2.top,G2=$2.bottom-l;if(B2<J){let H2=Math.min(n,1-B2/J);j2=-Z*H2*H2}else if(G2<J){let H2=Math.min(n,1-G2/J);j2=Z*H2*H2}}let Q2=A2();if(j2!==0){let B2=M.scrollPosition,G2=V.getTotalSize()-(y?X.clientWidth:X.clientHeight);if(j2<0&&B2<=0||j2>0&&B2>=G2)u=Q2;else u=!0,W.scrollTo(B2+j2)}else u=Q2;i=requestAnimationFrame(G)};i=requestAnimationFrame(G)},E2=()=>{if(i)cancelAnimationFrame(i),i=0},O2=(G=!1)=>{if(z=!1,m=!1,d&&d.parentNode)d.remove();d=null,C=null;let $2=c.children;for(let n=0;n<$2.length;n++){let Q2=$2[n];Q2.classList.remove(O);let B2=w(Q2);if(B2>=0)Q2.style.transform=`${E}(${Math.round(V.getOffset(B2))}px)`;Q2.style.transition=""}E2(),P.classList.remove(v),document.body.style.cursor="";let j2=window.getSelection();if(j2)j2.removeAllRanges();if(document.removeEventListener("pointermove",T2),document.removeEventListener("pointerup",R2),document.removeEventListener("pointercancel",b2),!G&&W)W.forceRender()},y2=(G,$2)=>{if(!W)return;let j2=G!==$2&&G>=0&&$2>=0,n=()=>{if(!W)return;if(z=!1,j2){if(P.classList.add(N),W.emitter.emit("sort:end",{fromIndex:G,toIndex:$2}),L!==null)K2(L);O2(!0),requestAnimationFrame(()=>P.classList.remove(N))}else P.classList.add(N),W.emitter.emit("sort:cancel",{originalItems:[...W.getItems()]}),O2(!1),requestAnimationFrame(()=>P.classList.remove(N))};if(!d){n();return}let Q2=X.getBoundingClientRect(),B2=M.scrollPosition,G2=V.getOffset($2),H2=Y>0?Y:150;if(d.style.transition=`left ${H2}ms ease, top ${H2}ms ease`,y)d.style.left=`${Q2.left-X.scrollLeft+G2-B2}px`,d.style.top=`${Q2.top}px`;else d.style.left=`${Q2.left}px`,d.style.top=`${Q2.top+G2-B2}px`;let v2=!1,S2=()=>{if(v2)return;v2=!0,d?.removeEventListener("transitionend",S2),n()};d.addEventListener("transitionend",S2),setTimeout(S2,H2+50)},z2=(G)=>{if(M.destroyed||!W)return;if(z)return;if(_)M2();if(G.button!==0)return;let $2=G.target;if($){if(!$2.closest($))return}let j2=T($2);if(!j2)return;let n=w(j2);if(n<0)return;R=G.clientX,S=G.clientY,b=G.clientX,l=G.clientY,H=n,m=!1,C=j2;let Q2=j2.getBoundingClientRect();x=G.clientX-Q2.left,B=G.clientY-Q2.top,document.addEventListener("pointermove",T2),document.addEventListener("pointerup",R2),document.addEventListener("pointercancel",b2)};function T2(G){if(!W)return;if(b=G.clientX,l=G.clientY,!m){let $2=b-R,j2=l-S;if(Math.sqrt($2*$2+j2*j2)<U)return;if(m=!0,z=!0,D=H,P.classList.add(v),document.body.style.cursor="grabbing",g=V.getSize(H),C)d=s(C),C.classList.add(O);let n=D2();if(n>=0){let B2=W.getItems()[n];L=B2?B2.id:null}else L=null;W.emitter.emit("sort:start",{index:H}),k2()}if(z){if(G.preventDefault(),J2(),!u)L2();else if(A2()){if(D!==H)D=H,V2()}}}function R2(G){if(!m){document.removeEventListener("pointermove",T2),document.removeEventListener("pointerup",R2),document.removeEventListener("pointercancel",b2),C=null;return}G.preventDefault(),document.removeEventListener("pointermove",T2),document.removeEventListener("pointerup",R2),document.removeEventListener("pointercancel",b2),E2(),y2(H,D)}let P2=()=>{if(!m)return;document.removeEventListener("pointermove",T2),document.removeEventListener("pointerup",R2),document.removeEventListener("pointercancel",b2),E2(),V2(),y2(H,H)};function b2(){P2()}let w2=()=>{let G=c.querySelectorAll(`.${r}`);for(let $2=0;$2<G.length;$2++)G[$2].classList.remove(r)},I=()=>{w2();let G=c.querySelector(`[data-id="${h}"]`);if(G)G.classList.add(r)},W2=(G)=>{if(!W)return;let $2=W.getItems(),j2=$2[G];if(!j2)return;_=!0,h=j2.id,a=G,o=G,f=[...$2],P.classList.add(v),W.emitter.emit("sort:start",{index:G}),I(),q2(`Grabbed ${N2(G)}. Current position ${G+1} of ${X2()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},_2=()=>{if(!_||!W)return;_=!1;let G=o,$2=N2(G);U2("none"),P.classList.remove(v),w2(),K2(h),W.forceRender(),q2(`${$2} dropped. Final position ${G+1} of ${X2()}.`),f=[],requestAnimationFrame(()=>U2(""))},M2=()=>{if(!_||!W)return;_=!1;let G=a;if(U2("none"),P.classList.remove(v),w2(),o!==G)W.emitter.emit("sort:cancel",{originalItems:f});K2(h),W.forceRender(),e(G),q2(`Reorder cancelled. Returned to position ${G+1} of ${X2()}.`),f=[],requestAnimationFrame(()=>U2(""))},F2=(G)=>{if(!_||!W)return;let $2=M.totalItems,j2=o+G;if(j2<0||j2>=$2)return;let n=o,Q2=j2;U2("none"),W.emitter.emit("sort:end",{fromIndex:n,toIndex:Q2}),o=Q2,K2(h),W.forceRender(),e(Q2),I(),q2(`${N2(Q2)} moved. New position ${Q2+1} of ${X2()}.`),requestAnimationFrame(()=>U2(""))},Y2=(G)=>{if(M.destroyed)return;if(z){if(G.key==="Escape")G.preventDefault(),G.stopImmediatePropagation(),P2();return}if(_)switch(G.key){case" ":case"Enter":G.preventDefault(),G.stopImmediatePropagation(),_2();return;case"Escape":G.preventDefault(),G.stopImmediatePropagation(),M2();return;case"ArrowUp":case"ArrowLeft":G.preventDefault(),G.stopImmediatePropagation(),F2(-1);return;case"ArrowDown":case"ArrowRight":G.preventDefault(),G.stopImmediatePropagation(),F2(1);return;default:if(!G.key.startsWith("F")&&G.key!=="Tab")G.preventDefault(),G.stopImmediatePropagation();return}if(G.key===" "&&!G.shiftKey&&!G.ctrlKey&&!G.metaKey){let $2=D2();if($2>=0)G.preventDefault(),G.stopImmediatePropagation(),W2($2)}};return{name:"sortable",priority:30,conflicts:["grid","masonry","table","scale"],setup(G){W=G,M=G.getState(),V=G.sizeCache,c=G.dom.content,X=G.dom.viewport,P=G.dom.root,F=G.config.classPrefix,y=G.config.axis.primary==="x",E=y?"translateX":"translateY",k=Y>0?`transform ${Y}ms ease`:"none",v=`${F}--sorting`,N=`${F}--settling`,O=`${F}-item--drag-source`,r=`${F}-item--kb-sorting`,G.registerMethod("isSorting",()=>z||_),c.addEventListener("pointerdown",z2),P.addEventListener("keydown",Y2),q=`${F}-sort-instructions`,A=document.createElement("div"),A.id=q,A.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",A.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",P.appendChild(A),p=document.createElement("div"),p.setAttribute("role","status"),p.setAttribute("aria-live","assertive"),p.setAttribute("aria-atomic","true"),p.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",P.appendChild(p),G.registerDestroyHandler(()=>{if(_)M2();O2(),c.removeEventListener("pointerdown",z2),P.removeEventListener("keydown",Y2),A?.remove(),p?.remove()})},hooks:{onCommit(){if(!W)return;let G=c.children;for(let $2=0;$2<G.length;$2++){let j2=G[$2],n=w(j2);if(n<0)continue;if(j2.setAttribute("aria-roledescription","sortable item"),j2.setAttribute("aria-describedby",q),_)if(j2.getAttribute("data-id")===String(h))j2.classList.add(r);else j2.classList.remove(r);if(z)if(n===H)j2.classList.add(O),C=j2;else{j2.classList.remove(O);let Q2=0;if(D>H){if(n>H&&n<=D)Q2=-g}else if(D<H){if(n>=D&&n<H)Q2=g}let B2=Math.round(V.getOffset(n)+Q2);j2.style.transform=`${E}(${B2}px)`}}}},destroy(){if(d&&d.parentNode)d.remove();d=null,E2(),A?.remove(),p?.remove(),W=null}}}function P0(Q,$){let j=[],Y=$,J=new Map,Z=[];function U(){J.clear();for(let H=0;H<j.length;H++)J.set(j[H].id,H)}function K(H){let D=j[H].depth,R=0;for(let S=H+1;S<j.length;S++){if(j[S].depth<=D)break;R++}return R}function M(H,D,R,S){for(let b=0;b<H.length;b++){let l=H[b],m=l.id,d=Q(l),i=d.length>0,C=i&&Y.has(m);if(S.push({item:l,id:m,depth:R,parentId:D,hasChildren:i,expanded:C,childCount:d.length,siblingCount:H.length,positionInSiblings:b,isLastChild:b===H.length-1,loading:!1}),C)M(d,m,R+1,S)}}function V(H,D,R){for(let S of H){if(S.id===D)return S;let b=Q(S);if(b.length>0){R?.push(S.id);let l=V(b,D,R);if(l)return l;R?.pop()}}return}function W(H,D){if(D===null)return Z;let R=V(Z,D);return R?Q(R):[]}function c(H,D){let R=V(Z,D);if(!R)return!1;return V(Q(R),H)!==void 0}function X(H){let D=new Set;function R(S){for(let b of S){if(D.has(b.id))throw Error(`[vlist] tree: duplicate id "${b.id}"`);D.add(b.id);let l=Q(b);if(l.length>0)R(l)}}R(H)}function P(H,D){if(Z=H,!D)X(H);j.length=0,M(H,null,0,j),U()}function F(H){let D=J.get(H);if(D===void 0)return 0;let R=j[D];if(!R.hasChildren||R.expanded)return 0;let S=[],b=Q(R.item);if(M(b,H,R.depth+1,S),S.length===0)return 0;R.expanded=!0,Y.add(H);let l=D+1,m=j.splice(l);for(let d=0;d<S.length;d++)j.push(S[d]);for(let d=0;d<m.length;d++)j.push(m[d]);return U(),S.length}function y(H){let D=J.get(H);if(D===void 0)return 0;let R=j[D];if(!R.hasChildren||!R.expanded)return 0;R.expanded=!1,Y.delete(H);let S=K(D);if(S>0)j.splice(D+1,S),U();return S}function E(H){function D(R){for(let S of R){let b=Q(S);if(b.length>0)Y.add(S.id),D(b)}}D(H),P(H)}function k(){Y.clear(),P(Z,!0)}function v(H){let D=[];if(!V(Z,H,D))return;for(let R of D)Y.add(R);P(Z,!0)}function N(H,D,R){if(J.has(D.id)||V(Z,D.id))throw Error(`[vlist] tree: duplicate id "${D.id}"`);if(H===null){let d=Z,i=R??d.length;d.splice(i,0,D),P(Z,!0);return}let S=J.get(H);if(S===void 0)throw Error(`[vlist] tree: parent "${H}" not found`);let b=j[S],l=Q(b.item),m=R??l.length;if(l.splice(m,0,D),!b.hasChildren)b.hasChildren=!0,b.childCount=1,b.expanded=!1;else b.childCount=l.length;if(b.expanded)P(Z,!0);else U()}function O(H){let D=J.get(H);if(D===void 0)return 0;let R=j[D],b=K(D)+1;for(let d=D;d<D+b;d++)Y.delete(j[d].id);if(j.splice(D,b),R.parentId!==null){let d=J.get(R.parentId);if(d!==void 0){let i=j[d];if(i.childCount--,i.childCount===0)i.hasChildren=!1,i.expanded=!1,Y.delete(i.id)}}let l=W(H,R.parentId),m=l.findIndex((d)=>d.id===H);if(m>=0)l.splice(m,1);return P(Z,!0),b}function z(H,D,R){if(D!==null&&c(D,H))throw Error(`[vlist] tree: cannot move "${H}" to its own descendant "${D}"`);if(H===D)throw Error(`[vlist] tree: cannot move "${H}" to itself`);let S=J.get(H);if(S===void 0)return;let b=j[S],l=W(H,b.parentId),m=l.findIndex((d)=>d.id===H);if(m>=0)l.splice(m,1);if(D===null){let d=Z,i=R??d.length;d.splice(i,0,b.item)}else{let d=V(Z,D);if(!d)throw Error(`[vlist] tree: new parent "${D}" not found`);let i=Q(d),C=R??i.length;i.splice(C,0,b.item)}P(Z,!0)}return{flatNodes:j,expandedIds:Y,idToIndex:J,rebuild:P,expand:F,collapse:y,expandAll:E,collapseAll:k,expandTo:v,getSubtreeSize:K,addChild:N,removeNode:O,moveNode:z,get totalVisible(){return j.length},get rootItems(){return Z}}}var q4=()=>[];function Y4(Q){let{children:$,parentId:j}=Q;if(j!==void 0)return q4;if($===void 0||$==="children")return(Y)=>Y.children??[];if(typeof $==="string"){let Y=$;return(J)=>J[Y]??[]}return $}function Z4(Q){let{label:$}=Q;if($===void 0)return(j)=>{let Y=j;return String(Y.name??Y.label??Y.title??j.id)};if(typeof $==="string"){let j=$;return(Y)=>String(Y[j]??Y.id)}return $}function K4(Q,$,j){let{expanded:Y}=Q,J=new Set;if(Y===void 0||Y===!1)return J;if(Array.isArray(Y)){for(let K of Y)J.add(K);return J}let Z=Y===!0?null:Y;function U(K){for(let M of K){let V=j(M);if(V.length>0){if(!Z||Z(M))J.add(M.id);U(V)}}}return U($),J}function R1(Q,$){let{parentId:j}=$;if(j===void 0)throw Error("[vlist] tree: parentId not set");let Y=typeof j==="string"?(K)=>K[j]??null:j,J=(K)=>Y(K)??null,Z=new Map,U=new Map;for(let K of Q){U.set(K.id,K);let M=J(K),V=Z.get(M);if(!V)V=[],Z.set(M,V);V.push(K)}for(let K of Q){let M=J(K);if(M!==null&&M!==void 0&&!U.has(M))console.warn(`[vlist] tree: orphaned node "${K.id}" — parentId "${M}" not found`)}return{roots:Z.get(null)??[],getChildren:(K)=>{let M=Z.get(K.id);if(!M)M=[],Z.set(K.id,M);return M}}}var g2={selected:!1,focused:!1},l2={depth:0,expanded:!1,hasChildren:!1,isLeaf:!0,isLastChild:!1,loading:!1};g2.tree=l2;function w0(Q){let $=Q??{},j=$.indent??24,Y=$.paddingStart??0,J=$.expandOnClick??!1,Z=$.connectorLines??!1,U=$.parentId!==void 0,K,M,V,W,c,X,P,F,y,E,k=null,v,N,O,z=null,H=!1,D,R,S,b,l,m,d,i=new Map,C=-1,g=-1,x=-1,B=!0,L=null,_=!1,h,a=-1,o=!1,f=!1,q="",A=null,p={start:0,end:-1};function r(){if(H)return;H=!0,z=v("_scale:getCompression")??null}function u(){if(f){let I=v("_getFocusedIndex");return I?I():-1}return o?a:-1}let T,w,s;function J2(){if(w!==void 0)return;T=v("select")??null,w=v("_focusById")??null,s=v("_isFollowFocus")??null}function t(I){if(I<0||I>=K.totalVisible)return;let W2=K.flatNodes[I];if(!W2)return;if(f){if(J2(),w)w(W2.id);if(s?.()&&T)T(W2.id);else L2();Z2(I)}else a=I,o=!0,c.setAttribute("aria-activedescendant",`${y}-item-${I}`),Z2(I),L2()}function Z2(I){let W2=M.getOffset(I),_2=M.getSize(I),M2=V.scrollPosition,F2=V.containerSize;if(W2<M2)V2(W2);else if(W2+_2>M2+F2)V2(W2-F2+_2)}let V2,L2,A2;function D2(I){return F?`translate(${Math.round(I)}px, 0)`:`translate(0, ${Math.round(I)}px)`}function K2(I){if(I===x)return;x=I,c.style[F?"width":"height"]=I+"px"}function e(){i.forEach((I)=>{I.remove(),W.release(I)}),i.clear()}let q2=0;function N2(){let I=A2();if(I===L&&I.length===q2)return;if(L=I,q2=I.length,U){let{roots:W2,getChildren:_2}=R1(I,$),M2=$.loadChildren?(F2)=>k2.get(F2.id)??_2(F2):_2;K=P0(M2,K.expandedIds),K.rebuild(W2,!0)}else K.rebuild(I,!0);X2(),e()}function X2(){V.totalItems=K.totalVisible,h(K.totalVisible);let I=M.getTotalSize();K2(I);let W2=v("_scrollbar:getInstance");if(W2)W2()?.updateBounds(I,V.containerSize)}function U2(){X2(),e(),L2()}let k2=new Map,E2=new Set;async function O2(I){if(!$.loadChildren||E2.has(I))return;let W2=K.idToIndex.get(I);if(W2===void 0)return;let _2=K.flatNodes[W2];E2.add(I),_2.loading=!0,queueMicrotask(()=>L2());try{let M2=await $.loadChildren(_2.item);E2.delete(I);let F2=K.idToIndex.get(I);if(F2===void 0)return;let Y2=K.flatNodes[F2];if(Y2.loading=!1,k2.set(I,M2),Y2.hasChildren=M2.length>0,Y2.childCount=M2.length,M2.length>0)Y2.expanded=!0,K.expandedIds.add(I),K.rebuild(K.rootItems);U2(),N.emit("tree:load",{id:I,item:Y2.item,children:M2})}catch(M2){E2.delete(I),k2.set(I,[]);let F2=K.idToIndex.get(I);if(F2!==void 0)K.flatNodes[F2].loading=!1;L2(),N.emit("tree:load:error",{id:I,item:_2.item,error:M2})}}function y2(I){let W2=K.idToIndex.get(I);if(W2===void 0)return;let _2=K.flatNodes[W2];if($.loadChildren&&!_2.hasChildren&&!_2.loading){if(!k2.has(I)){O2(I);return}}if(K.expand(I)===0)return;U2(),N.emit("tree:expand",{id:I,item:_2.item,depth:_2.depth})}function z2(I){let W2=K.idToIndex.get(I);if(W2===void 0)return;let _2=K.flatNodes[W2],M2=K.collapse(I);if(M2===0)return;if(!f&&a>W2){if(a<=W2+M2)a=W2;else a-=M2;if(o)c.setAttribute("aria-activedescendant",`${y}-item-${a}`)}U2(),N.emit("tree:collapse",{id:I,item:_2.item,depth:_2.depth})}function T2(I,W2,_2,M2){let{depth:F2,expanded:Y2,hasChildren:G,loading:$2,siblingCount:j2,positionInSiblings:n,isLastChild:Q2,id:B2}=W2;if(I.className=D,Y2)I.classList.add(R);if(!G)I.classList.add(S);if($2)I.classList.add(b);if(Z&&Q2)I.classList.add(l);if(I.setAttribute("role","treeitem"),I.setAttribute("data-index",String(_2)),I.setAttribute("data-id",String(B2)),I.id=`${y}-item-${_2}`,I.setAttribute("aria-level",String(F2+1)),I.setAttribute("aria-setsize",String(j2)),I.setAttribute("aria-posinset",String(n+1)),G)I.setAttribute("aria-expanded",String(Y2));else I.removeAttribute("aria-expanded");if(I.style.paddingLeft=`${Y+F2*j}px`,I.style.setProperty("--vlist-tree-depth",String(F2)),Z)I.style.setProperty("--vlist-tree-indent",`${j}px`),I.style.setProperty("--vlist-tree-pad",`${Y}px`);if(M2)M2(_2,g2);else g2.selected=!1,g2.focused=!1;l2.depth=F2,l2.expanded=Y2,l2.hasChildren=G,l2.isLeaf=!G,l2.isLastChild=Q2,l2.loading=$2;let G2=P(W2.item,_2,g2);if(typeof G2==="string")I.innerHTML=G2;else I.innerHTML="",I.appendChild(G2);p2(I)}function R2(){if(V.destroyed)return;if(N2(),!_){if(_=!0,c.setAttribute("role","tree"),c.setAttribute("tabindex","0"),X.classList.add(`${y}--tree`),Z)X.classList.add(`${y}--tree-lines`)}let{scrollPosition:I,containerSize:W2}=V;if(!B&&I===C&&W2===g)return;C=I,g=W2,B=!1;let _2=K.totalVisible;if(W2<=0||_2===0){if(i.size>0)e();return}r();let M2=z?.()??null,F2=M2!==null&&M2.isCompressed,Y2,G;if(F2)x2(I,W2,M,_2,M2,p),Y2=Math.max(0,p.start-E),G=Math.min(_2-1,p.end+E);else{let Q2=M.indexAtOffset(I),B2=M.indexAtOffset(I+W2);if(B2<_2-1)B2++;Q2=Math.max(0,Q2),B2=Math.min(_2-1,Math.max(0,B2)),Y2=Math.max(0,Q2-E),G=Math.min(_2-1,B2+E)}if(Y2===V.prevRangeStart&&G===V.prevRangeEnd&&!V.renderPending)return;i.forEach((Q2,B2)=>{if(B2<Y2||B2>G)Q2.remove(),W.release(Q2),i.delete(B2)});let $2=k?.()??null,j2=null;for(let Q2=Y2;Q2<=G;Q2++){let B2=K.flatNodes[Q2],G2=i.get(Q2);if(G2===void 0){if(G2=W.acquire(),T2(G2,B2,Q2,$2),G2.style[F?"width":"height"]=`${M.getSize(Q2)}px`,i.set(Q2,G2),!j2)j2=document.createDocumentFragment();j2.appendChild(G2)}else if(G2.getAttribute("data-id")!==String(B2.id)||G2.classList.contains(b)!==B2.loading)T2(G2,B2,Q2,$2);if(G2.style.transform=F2?D2(u2(Q2,I,M,_2,W2,M2)):D2(M.getOffset(Q2)),$2)if($2(Q2,g2),G2.classList.toggle(m,g2.selected),G2.classList.toggle(d,g2.focused),g2.selected)G2.setAttribute("aria-selected","true");else G2.removeAttribute("aria-selected");else if(!f){let H2=o&&a===Q2;G2.classList.toggle(d,H2)}}if(j2)c.appendChild(j2);K2(M.getTotalSize()),V.prevRangeStart=Y2,V.prevRangeEnd=G,V.renderPending=!1;let n=0;for(let Q2=Y2;Q2<=G&&n<V.capacity;Q2++)V.visibleIndices[n]=Q2,V.visibleOffsets[n]=M.getOffset(Q2),V.visibleSizes[n]=M.getSize(Q2),n++;V.visibleCount=n,V.startIndex=Y2}function P2(){if(V.destroyed)return;V.prevRangeStart=-1,V.prevRangeEnd=-1,V.renderPending=!0,B=!0,R2()}function b2(I,W2){if(q+=I.toLowerCase(),A!==null)clearTimeout(A);A=setTimeout(()=>{q="",A=null},500);let _2=K.totalVisible;for(let M2=1;M2<=_2;M2++){let F2=(W2+M2)%_2,Y2=K.flatNodes[F2];if(O(Y2.item).toLowerCase().startsWith(q)){t(F2);return}}}function w2(I){let W2=!1;for(let _2 of K.flatNodes)if(_2.parentId===I.parentId&&_2.hasChildren&&!_2.expanded)K.expandedIds.add(_2.id),W2=!0;if(!W2)return;K.rebuild(K.rootItems,!0),U2()}return{name:"tree",priority:10,conflicts:["groups","grid","masonry","table"],setup(I){M=I.sizeCache,V=I.getState(),W=I.pool,c=I.dom.content,X=I.dom.root,P=I.template,F=I.config.axis.primary==="x",y=I.config.classPrefix,E=I.config.overscan,N=I.emitter,k=I.getItemStateFn.bind(I),v=I.getMethod.bind(I),V2=I.scrollTo.bind(I),L2=I.forceRender.bind(I),A2=I.getItems.bind(I),D=`${y}-item ${y}-tree-node`,R=`${y}-tree-node--expanded`,S=`${y}-tree-node--leaf`,b=`${y}-tree-node--loading`,l=`${y}-tree-node--last`,m=`${y}-item--selected`,d=`${y}-item--focused`;let W2=I.getItems();L=W2,q2=W2.length;let _2,M2;if(U){let n=R1(W2,$);_2=n.getChildren,M2=n.roots}else _2=Y4($),M2=W2;let F2=$.loadChildren?(n)=>k2.get(n.id)??_2(n):_2;O=Z4($);let Y2=K4($,M2,F2);K=P0(F2,Y2),K.rebuild(M2),h=M.rebuild,M.rebuild=(n)=>{h(K.totalVisible)},M.rebuild(K.totalVisible),V.totalItems=K.totalVisible,I.setVirtualTotalFn(()=>K.totalVisible),I.setGetItemFn((n)=>{let Q2=K.flatNodes[n];return Q2?Q2.item:void 0}),I.setGetIndexByIdFn((n)=>{return K.idToIndex.get(n)??-1}),I.setRenderFn(R2,P2),I.registerMethod("_layoutToDataIndex",(n)=>n),I.registerMethod("_dataToLayoutIndex",(n)=>n),I.registerMethod("_getRenderedElement",(n)=>i.get(n)??null),queueMicrotask(()=>{f=!!(v("_getFocusedIndex")||I.getItemStateFn())}),I.setInsertItemFn((n,Q2)=>{let B2=A2(),G2=Math.min(Q2,B2.length);B2.splice(G2,0,n),q2=B2.length,K.rebuild(B2),U2()}),I.setRemoveItemFn((n)=>{let Q2=K.idToIndex.get(n),B2=null;if(U&&Q2!==void 0){B2=new Set,B2.add(n);let H2=K.getSubtreeSize(Q2);for(let v2=Q2+1;v2<=Q2+H2;v2++)B2.add(K.flatNodes[v2].id)}let G2=K.removeNode(n);if(G2===0)return-1;if(!f&&Q2!==void 0&&a>=Q2)a=Math.max(0,Math.min(a-G2,K.totalVisible-1));if(U&&B2){let H2=A2();for(let v2=H2.length-1;v2>=0;v2--)if(B2.has(H2[v2].id))H2.splice(v2,1)}return q2=A2().length,U2(),N.emit("data:change",{type:"remove",id:n}),G2}),I.setUpdateItemFn((n,Q2)=>{let B2=K.idToIndex.get(n);if(B2===void 0)return!1;let G2=K.flatNodes[B2];Object.assign(G2.item,Q2);let H2=i.get(B2);if(H2)T2(H2,G2,B2,k?.()??null);return N.emit("data:change",{type:"update",id:n}),!0}),I.registerClickHandler((n)=>{let Q2=n.target.closest("[data-index]");if(!Q2)return;let B2=parseInt(Q2.dataset.index??"-1",10);if(B2<0)return;let G2=K.flatNodes[B2];if(!G2)return;let H2=G2.id,v2=!1;if(J&&(G2.hasChildren||$.loadChildren&&!G2.loading&&!k2.has(H2))){let S2=K.totalVisible;if(G2.expanded)z2(H2);else y2(H2);v2=K.totalVisible!==S2}if(f&&v2){if(J2(),w)w(H2);if(T)T(H2)}else if(!f)a=K.idToIndex.get(H2)??B2,o=!1,c.focus({preventScroll:!0})});let G=()=>{if(V.destroyed||f)return;if(!c.matches(":focus-visible")&&!X.matches(":focus-visible"))return;let n=K.totalVisible;if(n===0)return;a=a>=0?Math.min(a,n-1):0,o=!0,c.setAttribute("aria-activedescendant",`${y}-item-${a}`),Z2(a),P2()};X.addEventListener("focusin",G);let $2=(n)=>{if(V.destroyed||f)return;let Q2=n.relatedTarget;if(Q2&&X.contains(Q2))return;o=!1,c.removeAttribute("aria-activedescendant"),P2()};X.addEventListener("focusout",$2),I.registerKeydownHandler((n)=>{if(V.destroyed)return;let Q2=K.totalVisible;if(Q2===0)return;let B2=u();if(B2<0&&!f&&(n.key==="ArrowDown"||n.key==="Home")){t(0),n.preventDefault();return}if(B2<0)return;let G2=K.flatNodes[B2];if(!G2)return;switch(n.key){case"ArrowRight":{if(G2.hasChildren||$.loadChildren&&!G2.loading)if(!G2.expanded)y2(G2.id);else t(B2+1);n.preventDefault();break}case"ArrowLeft":{if(G2.hasChildren&&G2.expanded)z2(G2.id);else if(G2.parentId!==null){let H2=K.idToIndex.get(G2.parentId);if(H2!==void 0)t(H2)}n.preventDefault();break}case"*":{w2(G2),n.preventDefault();break}default:{if(!f){if(n.key==="ArrowDown"){if(B2<Q2-1)t(B2+1);n.preventDefault();break}if(n.key==="ArrowUp"){if(B2>0)t(B2-1);n.preventDefault();break}if(n.key==="Home"){t(0),n.preventDefault();break}if(n.key==="End"){t(Q2-1),n.preventDefault();break}if(n.key==="Enter"){N.emit("item:click",{item:G2.item,index:B2,event:n}),n.preventDefault();break}}if(n.key.length===1&&!n.ctrlKey&&!n.altKey&&!n.metaKey)b2(n.key,B2),n.preventDefault()}}}),I.registerMethod("expand",y2),I.registerMethod("collapse",z2),I.registerMethod("toggle",(n)=>{let Q2=K.idToIndex.get(n);if(Q2===void 0)return;if(K.flatNodes[Q2].expanded)z2(n);else y2(n)}),I.registerMethod("expandAll",()=>{K.expandAll(K.rootItems),U2()}),I.registerMethod("collapseAll",()=>{K.collapseAll(),U2()}),I.registerMethod("expandTo",(n)=>{K.expandTo(n),U2();let Q2=K.idToIndex.get(n);if(Q2!==void 0)Z2(Q2)}),I.registerMethod("getExpanded",()=>Array.from(K.expandedIds)),I.registerMethod("isExpanded",(n)=>K.expandedIds.has(n));let j2=U&&typeof $.parentId==="string"?$.parentId:null;I.registerMethod("addChild",(n,Q2,B2)=>{if(j2)Q2[j2]=n;if(U){let G2=A2();G2.push(Q2),q2=G2.length}K.addChild(n,Q2,B2),U2(),N.emit("data:change",{type:"add",id:Q2.id})}),I.registerMethod("moveNode",(n,Q2,B2)=>{if(j2){let G2=K.idToIndex.get(n);if(G2!==void 0)K.flatNodes[G2].item[j2]=Q2}K.moveNode(n,Q2,B2),U2()}),I.registerMethod("getTreeLayout",()=>({totalVisible:K.totalVisible,flatNodes:K.flatNodes})),I.registerDestroyHandler(()=>{if(X.removeEventListener("focusin",G),X.removeEventListener("focusout",$2),e(),X.classList.remove(`${y}--tree`),X.classList.remove(`${y}--tree-lines`),A!==null)clearTimeout(A)})},destroy(){if(i.clear(),A!==null)clearTimeout(A)}}}var U4=50,B4=0.1;function T1(Q){let $=0,j=0,Y=0;function J(){return Y>0?j/Y:0}function Z(M){if($=M,M>B4&&M<U4)j+=M,Y++}function U(){let M=Q.getTotal();if(M===0)return 0;let V=Q.getItemSize();if(V<=0)return 0;let W=Q.getContainerSize();if(W<=0)return 0;let c=Q.getScrollPosition(),X=typeof Q.getColumns==="function"?Q.getColumns():1,F=Math.ceil(M/X)*V,E=Math.min(F,I2)-W,k=F-W,v=E>0?k/E:1,N=c*v,O=Math.ceil((N+W)/V);return Math.min(O*X,M)}function K(){let M=Q.getTotal(),V=U();return{progress:M>0?Math.min(100,Math.max(0,V/M*100)):0,velocity:$,velocityAvg:J(),itemCount:V,total:M}}return{getState:K,onVelocity:Z}}async function b1(Q,$,j){let Y=j?.key,J;if(Q){let F=Q.getScrollSnapshot;if(typeof F==="function")J=F()}if(J&&Y)try{sessionStorage.setItem(Y,JSON.stringify(J))}catch{}let Z=i2(Y?{autoSave:Y}:J?{restore:J}:void 0),U=$(Z),K=U.element;if(K.style.position="absolute",K.style.inset="0",K.style.visibility="hidden",j?.ready)await j.ready(U);else await new Promise((F)=>requestAnimationFrame(()=>F()));let M=j?.delay;if(M&&M>0)await new Promise((F)=>setTimeout(F,M));let V=j?.transition,W=typeof V==="number"?V:V?.fadeIn??0,c=typeof V==="number"?V:V?.fadeOut??0,X=typeof V==="object"?V?.fadeOutDelay??0:0,P=Math.max(W,c+X);if(P>0&&Q){let F=Q.element;K.style.visibility="",K.style.opacity="0",K.offsetHeight,K.style.transition=`opacity ${W}ms ease`,F.style.transition=`opacity ${c}ms ease ${X}ms`,K.style.opacity="1",F.style.opacity="0",await new Promise((y)=>{setTimeout(y,P+50)}),K.style.transition="",K.style.opacity="",F.style.transition="",F.style.opacity=""}else K.style.visibility="";if(K.style.position="",K.style.inset="",Q)Q.destroy();return U}export{w0 as tree,L0 as transition,y0 as table,z0 as sortable,i2 as snapshots,A0 as selection,M0 as scrollbar,G0 as scale,b1 as rebuild,H0 as page,F0 as masonry,b0 as groups,X0 as grid,E0 as data,j1 as createVList,T1 as createStats,O0 as autosize,D0 as a11y};
|
package/dist/internals.d.ts
CHANGED
|
@@ -18,7 +18,7 @@ export { createSizeCache, type SizeCache, createMeasuredSizeCache, type Measured
|
|
|
18
18
|
export { createSelectionState, selectItems, deselectItems, toggleSelection, selectAll, clearSelection, isSelected, getSelectedIds, } from "./plugins/selection";
|
|
19
19
|
export { getSelectedItemsImmutable as getSelectedItems } from "./plugins/selection/state";
|
|
20
20
|
export { createEmitter, type Emitter } from "./events";
|
|
21
|
-
export { createDataManager as createAsyncManager, createSparseStorage, createPlaceholderManager, isPlaceholderItem, filterPlaceholders, mergeRanges, calculateMissingRanges, type DataManager as AsyncManager, type SparseStorage, type PlaceholderManager, } from "./plugins/
|
|
21
|
+
export { createDataManager as createAsyncManager, createSparseStorage, createPlaceholderManager, isPlaceholderItem, filterPlaceholders, mergeRanges, calculateMissingRanges, type DataManager as AsyncManager, type SparseStorage, type PlaceholderManager, } from "./plugins/data";
|
|
22
22
|
export { createScrollController, createScrollbar, rafThrottle, type ScrollController, type Scrollbar, } from "./plugins/scrollbar";
|
|
23
23
|
export type { ScrollbarConfig } from "./plugins/scrollbar/scrollbar";
|
|
24
24
|
export { createStats, type StatsConfig, type StatsState, type Stats, } from "./utils/stats";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vlist v2 — Tree Layout
|
|
3
|
+
*
|
|
4
|
+
* Manages the flat representation of a tree: DFS traversal, expand/collapse,
|
|
5
|
+
* surgical splice, and index lookups. All mutations target the flatNodes array
|
|
6
|
+
* directly — only setItems/expandAll/collapseAll trigger a full rebuild.
|
|
7
|
+
*/
|
|
8
|
+
import type { VListItem } from "../../types";
|
|
9
|
+
import type { FlatNode } from "./types";
|
|
10
|
+
export interface TreeLayout<T extends VListItem> {
|
|
11
|
+
flatNodes: FlatNode<T>[];
|
|
12
|
+
readonly expandedIds: Set<string | number>;
|
|
13
|
+
readonly idToIndex: Map<string | number, number>;
|
|
14
|
+
rebuild(items: readonly T[], skipValidation?: boolean): void;
|
|
15
|
+
expand(id: string | number): number;
|
|
16
|
+
collapse(id: string | number): number;
|
|
17
|
+
expandAll(items: readonly T[]): void;
|
|
18
|
+
collapseAll(): void;
|
|
19
|
+
expandTo(id: string | number): void;
|
|
20
|
+
getSubtreeSize(index: number): number;
|
|
21
|
+
addChild(parentId: string | number | null, item: T, index?: number): void;
|
|
22
|
+
removeNode(id: string | number): number;
|
|
23
|
+
moveNode(id: string | number, newParentId: string | number | null, index?: number): void;
|
|
24
|
+
readonly totalVisible: number;
|
|
25
|
+
readonly rootItems: readonly T[];
|
|
26
|
+
}
|
|
27
|
+
export declare function createTreeLayout<T extends VListItem>(getChildren: (item: T) => T[], initialExpandedIds: Set<string | number>): TreeLayout<T>;
|
|
28
|
+
//# sourceMappingURL=layout.d.ts.map
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vlist v2 — Tree Plugin
|
|
3
|
+
*
|
|
4
|
+
* Renders hierarchical data as a virtualized, collapsible tree view with
|
|
5
|
+
* WAI-ARIA treeview keyboard navigation. Owns the tree→flat conversion
|
|
6
|
+
* internally — users work with their original tree structure while the
|
|
7
|
+
* core pipeline sees a flat list.
|
|
8
|
+
*
|
|
9
|
+
* Priority 10 — runs before selection (50).
|
|
10
|
+
*
|
|
11
|
+
* Replaces the render pipeline (like groups/grid/table) to maintain full
|
|
12
|
+
* control over tree-specific ARIA, CSS classes, indent, and expand/collapse.
|
|
13
|
+
*/
|
|
14
|
+
import type { VListItem } from "../../types";
|
|
15
|
+
import type { VListPlugin } from "../../core/types";
|
|
16
|
+
import type { TreePluginConfig } from "./types";
|
|
17
|
+
export declare function tree<T extends VListItem = VListItem>(config?: TreePluginConfig<T>): VListPlugin<T>;
|
|
18
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vlist v2 — Tree Plugin Types
|
|
3
|
+
*/
|
|
4
|
+
import type { VListItem } from "../../types";
|
|
5
|
+
export interface TreePluginConfig<T extends VListItem = VListItem> {
|
|
6
|
+
/** Property name or accessor returning child items (nested mode). Default: "children". */
|
|
7
|
+
children?: string | ((item: T) => T[]);
|
|
8
|
+
/** Property name or accessor returning parent ID (flat mode). */
|
|
9
|
+
parentId?: string | ((item: T) => string | number | null);
|
|
10
|
+
/** Property name or accessor returning a text label for type-ahead and ARIA. */
|
|
11
|
+
label?: string | ((item: T) => string);
|
|
12
|
+
/** Indent per depth level in pixels. Default: 24. */
|
|
13
|
+
indent?: number;
|
|
14
|
+
/** Base left padding in pixels applied to all items (including root). Default: 0. */
|
|
15
|
+
paddingStart?: number;
|
|
16
|
+
/** Initial expand state: false (all collapsed), true (all expanded), ID array, or predicate. */
|
|
17
|
+
expanded?: boolean | (string | number)[] | ((item: T) => boolean);
|
|
18
|
+
/** Toggle expand/collapse on item click. Default: false. */
|
|
19
|
+
expandOnClick?: boolean;
|
|
20
|
+
/** Show tree connector lines. Requires vlist-tree.css. Default: false. */
|
|
21
|
+
connectorLines?: boolean;
|
|
22
|
+
/** Async child loader — called when expanding a node with no loaded children. */
|
|
23
|
+
loadChildren?: (item: T) => Promise<T[]>;
|
|
24
|
+
}
|
|
25
|
+
export interface FlatNode<T> {
|
|
26
|
+
item: T;
|
|
27
|
+
id: string | number;
|
|
28
|
+
depth: number;
|
|
29
|
+
parentId: string | number | null;
|
|
30
|
+
hasChildren: boolean;
|
|
31
|
+
expanded: boolean;
|
|
32
|
+
childCount: number;
|
|
33
|
+
siblingCount: number;
|
|
34
|
+
positionInSiblings: number;
|
|
35
|
+
isLastChild: boolean;
|
|
36
|
+
loading: boolean;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=types.d.ts.map
|
package/dist/size.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"base":{"minified":"22.
|
|
1
|
+
{"base":{"minified":"22.1","gzipped":"8.1","minBytes":22646,"gzBytes":8314},"a11y":{"minified":"25.2","gzipped":"9.2","minBytes":25769,"gzBytes":9442},"selection":{"minified":"30.5","gzipped":"10.5","minBytes":31191,"gzBytes":10797},"data":{"minified":"35.0","gzipped":"12.8","minBytes":35791,"gzBytes":13068},"scrollbar":{"minified":"29.3","gzipped":"10.1","minBytes":29953,"gzBytes":10382},"sortable":{"minified":"31.5","gzipped":"11.0","minBytes":32246,"gzBytes":11271},"groups":{"minified":"33.5","gzipped":"11.9","minBytes":34255,"gzBytes":12161},"scale":{"minified":"35.4","gzipped":"12.0","minBytes":36270,"gzBytes":12331},"page":{"minified":"24.5","gzipped":"8.9","minBytes":25132,"gzBytes":9101},"snapshots":{"minified":"25.8","gzipped":"9.4","minBytes":26450,"gzBytes":9637},"transition":{"minified":"28.9","gzipped":"9.9","minBytes":29575,"gzBytes":10187},"autosize":{"minified":"24.5","gzipped":"9.0","minBytes":25129,"gzBytes":9192},"grid":{"minified":"30.1","gzipped":"10.9","minBytes":30816,"gzBytes":11124},"table":{"minified":"41.2","gzipped":"14.2","minBytes":42174,"gzBytes":14534},"masonry":{"minified":"32.3","gzipped":"11.8","minBytes":33086,"gzBytes":12094},"tree":{"minified":"38.0","gzipped":"13.5","minBytes":38948,"gzBytes":13825}}
|
package/dist/types.d.ts
CHANGED
|
@@ -361,10 +361,20 @@ export interface ScrollbarConfig {
|
|
|
361
361
|
}
|
|
362
362
|
/** Item template function */
|
|
363
363
|
export type ItemTemplate<T = VListItem> = (item: T, index: number, state: ItemState) => string | HTMLElement;
|
|
364
|
+
/** Tree-specific state available in templates when the tree plugin is active */
|
|
365
|
+
export interface TreeState {
|
|
366
|
+
depth: number;
|
|
367
|
+
expanded: boolean;
|
|
368
|
+
hasChildren: boolean;
|
|
369
|
+
isLeaf: boolean;
|
|
370
|
+
isLastChild: boolean;
|
|
371
|
+
loading: boolean;
|
|
372
|
+
}
|
|
364
373
|
/** State passed to template */
|
|
365
374
|
export interface ItemState {
|
|
366
375
|
selected: boolean;
|
|
367
376
|
focused: boolean;
|
|
377
|
+
tree?: TreeState;
|
|
368
378
|
}
|
|
369
379
|
/** Selection mode */
|
|
370
380
|
export type SelectionMode = "none" | "single" | "multiple";
|
|
@@ -567,6 +577,30 @@ export interface VListEvents<T extends VListItem = VListItem> extends EventMap {
|
|
|
567
577
|
"sort:cancel": {
|
|
568
578
|
originalItems: unknown[];
|
|
569
579
|
};
|
|
580
|
+
/** Tree node expanded */
|
|
581
|
+
"tree:expand": {
|
|
582
|
+
id: string | number;
|
|
583
|
+
item: T;
|
|
584
|
+
depth: number;
|
|
585
|
+
};
|
|
586
|
+
/** Tree node collapsed */
|
|
587
|
+
"tree:collapse": {
|
|
588
|
+
id: string | number;
|
|
589
|
+
item: T;
|
|
590
|
+
depth: number;
|
|
591
|
+
};
|
|
592
|
+
/** Async tree children loaded */
|
|
593
|
+
"tree:load": {
|
|
594
|
+
id: string | number;
|
|
595
|
+
item: T;
|
|
596
|
+
children: T[];
|
|
597
|
+
};
|
|
598
|
+
/** Async tree children load failed */
|
|
599
|
+
"tree:load:error": {
|
|
600
|
+
id: string | number;
|
|
601
|
+
item: T;
|
|
602
|
+
error: unknown;
|
|
603
|
+
};
|
|
570
604
|
/** Destroy — fired just before the instance is torn down */
|
|
571
605
|
destroy: undefined;
|
|
572
606
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.vlist--tree{--vlist-item-padding-x:0;--vlist-item-padding-y:0;--vlist-transition-duration:0ms}.vlist--tree .vlist-item{border-bottom:none}.vlist-tree-node--loading .vlist-tree-chevron,.vlist-tree-node--loading [class*="chevron"]{animation:vlist-tree-spin 0.8s linear infinite}@keyframes vlist-tree-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.vlist--tree-lines .vlist-tree-node::before{content:"";position:absolute;top:0;bottom:0;left:var(--vlist-tree-guide-start,calc(var(--vlist-tree-indent) / 2));width:calc(var(--vlist-tree-depth) * var(--vlist-tree-indent));background-image:repeating-linear-gradient( to right,var(--vlist-tree-line,currentColor) 0,var(--vlist-tree-line,currentColor) 1px,transparent 1px,transparent var(--vlist-tree-indent) );opacity:0.12;pointer-events:none}.vlist--tree-lines .vlist-tree-node::after{content:"";position:absolute;top:50%;left:calc(var(--vlist-tree-guide-start,calc(var(--vlist-tree-indent) / 2)) + (var(--vlist-tree-depth) - 1) * var(--vlist-tree-indent));width:calc(var(--vlist-tree-indent) / 2 - 2px);height:1px;background:var(--vlist-tree-line,currentColor);opacity:0.12;pointer-events:none}.vlist--tree-lines .vlist-tree-node[style*="--vlist-tree-depth:0"]::after,.vlist--tree-lines .vlist-tree-node[style*="--vlist-tree-depth:0"]::after{display:none}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vlist",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0",
|
|
4
4
|
"description": "Lightweight, high-performance virtual list with zero dependencies",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Floor IO",
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"./styles/masonry": "./dist/vlist-masonry.css",
|
|
45
45
|
"./styles/table": "./dist/vlist-table.css",
|
|
46
46
|
"./styles/extras": "./dist/vlist-extras.css",
|
|
47
|
+
"./styles/tree": "./dist/vlist-tree.css",
|
|
47
48
|
"./package.json": "./package.json"
|
|
48
49
|
},
|
|
49
50
|
"files": [
|
|
@@ -66,7 +67,7 @@
|
|
|
66
67
|
"bench:quick": "bun run scripts/bench.ts --quick",
|
|
67
68
|
"bench:full": "bun run scripts/bench.ts --full",
|
|
68
69
|
"bench:compare": "bun run scripts/bench.ts --quick --compare",
|
|
69
|
-
"size": "bun run scripts/
|
|
70
|
+
"size": "bun run scripts/size.ts",
|
|
70
71
|
"release": "bun run scripts/release.ts",
|
|
71
72
|
"prepublishOnly": "bun run build -- --types && cp README.md README.github.md && cp npm-readme.md README.md",
|
|
72
73
|
"postpublish": "cp README.github.md README.md && rm README.github.md"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|