vlist 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/README.github.md +2 -2
  2. package/README.md +2 -2
  3. package/dist/core/dom.d.ts +1 -1
  4. package/dist/core/index.d.ts +1 -1
  5. package/dist/core/pipeline.d.ts +2 -2
  6. package/dist/core/scroll.d.ts +1 -1
  7. package/dist/core/types.d.ts +7 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/index.js +1 -28
  10. package/dist/internals.js +1 -60
  11. package/dist/plugins/scrollbar/controller.d.ts +3 -3
  12. package/dist/plugins/scrollbar/scrollbar.d.ts +2 -2
  13. package/dist/rendering/renderer.d.ts +2 -2
  14. package/dist/rendering/viewport.d.ts +1 -1
  15. package/dist/size.json +1 -1
  16. package/dist/types.d.ts +1 -1
  17. package/package.json +1 -1
  18. package/dist/constants.js +0 -83
  19. package/dist/core/create.js +0 -740
  20. package/dist/core/dom.js +0 -47
  21. package/dist/core/hooks.js +0 -67
  22. package/dist/core/index.js +0 -13
  23. package/dist/core/pipeline.js +0 -307
  24. package/dist/core/pool.js +0 -42
  25. package/dist/core/scroll.js +0 -137
  26. package/dist/core/sizes.js +0 -6
  27. package/dist/core/state.js +0 -56
  28. package/dist/core/types.js +0 -7
  29. package/dist/core/velocity.js +0 -33
  30. package/dist/events/emitter.js +0 -60
  31. package/dist/events/index.js +0 -6
  32. package/dist/plugins/a11y/index.js +0 -1
  33. package/dist/plugins/a11y/plugin.js +0 -259
  34. package/dist/plugins/async/index.js +0 -12
  35. package/dist/plugins/async/manager.js +0 -568
  36. package/dist/plugins/async/placeholder.js +0 -154
  37. package/dist/plugins/async/plugin.js +0 -311
  38. package/dist/plugins/async/sparse.js +0 -540
  39. package/dist/plugins/autosize/index.js +0 -4
  40. package/dist/plugins/autosize/plugin.js +0 -185
  41. package/dist/plugins/grid/index.js +0 -5
  42. package/dist/plugins/grid/layout.js +0 -275
  43. package/dist/plugins/grid/plugin.js +0 -347
  44. package/dist/plugins/grid/renderer.js +0 -525
  45. package/dist/plugins/grid/types.js +0 -11
  46. package/dist/plugins/groups/async-bridge.js +0 -246
  47. package/dist/plugins/groups/index.js +0 -13
  48. package/dist/plugins/groups/layout.js +0 -294
  49. package/dist/plugins/groups/plugin.js +0 -571
  50. package/dist/plugins/groups/sticky.js +0 -255
  51. package/dist/plugins/groups/types.js +0 -12
  52. package/dist/plugins/masonry/index.js +0 -6
  53. package/dist/plugins/masonry/layout.js +0 -261
  54. package/dist/plugins/masonry/plugin.js +0 -381
  55. package/dist/plugins/masonry/renderer.js +0 -354
  56. package/dist/plugins/masonry/types.js +0 -9
  57. package/dist/plugins/page/index.js +0 -5
  58. package/dist/plugins/page/plugin.js +0 -166
  59. package/dist/plugins/scale/index.js +0 -4
  60. package/dist/plugins/scale/plugin.js +0 -507
  61. package/dist/plugins/scrollbar/controller.js +0 -574
  62. package/dist/plugins/scrollbar/index.js +0 -6
  63. package/dist/plugins/scrollbar/plugin.js +0 -93
  64. package/dist/plugins/scrollbar/scrollbar.js +0 -556
  65. package/dist/plugins/selection/index.js +0 -7
  66. package/dist/plugins/selection/plugin.js +0 -601
  67. package/dist/plugins/selection/state.js +0 -332
  68. package/dist/plugins/snapshots/index.js +0 -5
  69. package/dist/plugins/snapshots/plugin.js +0 -301
  70. package/dist/plugins/sortable/index.js +0 -6
  71. package/dist/plugins/sortable/plugin.js +0 -753
  72. package/dist/plugins/table/header.js +0 -501
  73. package/dist/plugins/table/index.js +0 -12
  74. package/dist/plugins/table/layout.js +0 -211
  75. package/dist/plugins/table/plugin.js +0 -391
  76. package/dist/plugins/table/renderer.js +0 -625
  77. package/dist/plugins/table/types.js +0 -12
  78. package/dist/plugins/transition/index.js +0 -5
  79. package/dist/plugins/transition/plugin.js +0 -405
  80. package/dist/rendering/aria.js +0 -23
  81. package/dist/rendering/index.js +0 -18
  82. package/dist/rendering/measured.js +0 -98
  83. package/dist/rendering/renderer.js +0 -586
  84. package/dist/rendering/scale.js +0 -267
  85. package/dist/rendering/scroll.js +0 -71
  86. package/dist/rendering/sizes.js +0 -193
  87. package/dist/rendering/sort.js +0 -65
  88. package/dist/rendering/viewport.js +0 -268
  89. package/dist/types.js +0 -5
  90. package/dist/utils/padding.js +0 -49
  91. package/dist/utils/stats.js +0 -124
package/README.github.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  The virtual list library for every framework. Ultra efficient, batteries-included, and accessible with composable plugins — in 7.7 KB.
4
4
 
5
- **v2.0.0** — [Changelog](./CHANGELOG.md) · **v2 is a ground-up rewrite** with a new plugin API. Coming from v1? See [Migration Guide](https://vlist.io/docs/migration).
5
+ **v2.0.2** — [Changelog](./CHANGELOG.md) · **v2 is a ground-up rewrite** with a new plugin API. Coming from v1? See [Migration Guide](https://vlist.io/docs/migration).
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/vlist.svg)](https://www.npmjs.com/package/vlist)
8
8
  [![bundle size](https://img.shields.io/bundlephobia/minzip/vlist)](https://bundlephobia.com/package/vlist)
@@ -14,7 +14,7 @@ The virtual list library for every framework. Ultra efficient, batteries-include
14
14
  - **7.7 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
  - **Grid, masonry, table, groups, data, selection, sortable, transition, scale** — all opt-in
17
- - **Vertical & horizontal** single axis-neutral code path, every plugin works in both orientations
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)**
20
20
 
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  The virtual list library for every framework. Ultra efficient, batteries-included, and accessible with composable plugins — in 7.7 KB.
4
4
 
5
- **v2.0.0** — [Changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md) · **v2 is a ground-up rewrite** with a new plugin API. Coming from v1? See [Migration Guide](https://vlist.io/docs/migration).
5
+ **v2.0.2** — [Changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md) · **v2 is a ground-up rewrite** with a new plugin API. Coming from v1? See [Migration Guide](https://vlist.io/docs/migration).
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/vlist.svg)](https://www.npmjs.com/package/vlist)
8
8
  [![bundle size](https://img.shields.io/bundlephobia/minzip/vlist)](https://bundlephobia.com/package/vlist)
@@ -13,7 +13,7 @@ The virtual list library for every framework. Ultra efficient, batteries-include
13
13
  - **Zero dependencies** — framework-agnostic core, tiny adapters for Vue, Svelte, Solid, React
14
14
  - **7.7 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
- - **Vertical & horizontal** single axis-neutral code path, every plugin works in both orientations
16
+ - **Axis-neutral** vertical and horizontal scrolling through a single code path, all plugins work in both orientations
17
17
 
18
18
  ## Install
19
19
 
@@ -4,5 +4,5 @@
4
4
  */
5
5
  import type { DOMStructure } from "./types";
6
6
  export declare function resolveContainer(container: HTMLElement | string): HTMLElement;
7
- export declare function createDOMStructure(container: HTMLElement, classPrefix: string, horizontal: boolean, interactive: boolean, ariaLabel?: string): DOMStructure;
7
+ export declare function createDOMStructure(container: HTMLElement, classPrefix: string, isX: boolean, interactive: boolean, ariaLabel?: string): DOMStructure;
8
8
  //# sourceMappingURL=dom.d.ts.map
@@ -13,5 +13,5 @@ export { createDOMStructure, resolveContainer } from "./dom";
13
13
  export { createScrollHandler } from "./scroll";
14
14
  export type { SizeCache } from "./sizes";
15
15
  export type { ScrollHandler, ScrollHandlerConfig } from "./scroll";
16
- export type { CalculateHook, CommitHook, AfterScrollHook, IdleHook, ResizeHook, CompiledHooks, ResolvedConfig, DOMStructure, ElementPool, VisibleRangeFn, PluginContext, VListPlugin, VList, CreateVListConfig, } from "./types";
16
+ export type { Axis, AxisConfig, CalculateHook, CommitHook, AfterScrollHook, IdleHook, ResizeHook, CompiledHooks, ResolvedConfig, DOMStructure, ElementPool, VisibleRangeFn, PluginContext, VListPlugin, VList, CreateVListConfig, } from "./types";
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -21,9 +21,9 @@ export interface RenderConfig {
21
21
  readonly placeholderClass: string;
22
22
  readonly replacedClass: string;
23
23
  readonly translateProp: "translateX(" | "translateY(";
24
+ readonly sizeProp: "width" | "height";
24
25
  readonly itemRole: "option" | "listitem";
25
26
  readonly interactive: boolean;
26
- readonly horizontal: boolean;
27
27
  readonly startPadding: number;
28
28
  readonly gap: number;
29
29
  readonly hasCrossPad: boolean;
@@ -34,7 +34,7 @@ export interface RenderConfig {
34
34
  readonly oddClass: string;
35
35
  readonly emitter: Emitter<VListEvents> | null;
36
36
  }
37
- export declare function createRenderConfig(classPrefix: string, horizontal: boolean, interactive: boolean, startPadding: number, crossPadStart: number, crossPadEnd: number, oddClass: string, gap: number, emitter?: Emitter<VListEvents> | null): RenderConfig;
37
+ export declare function createRenderConfig(classPrefix: string, isX: boolean, interactive: boolean, startPadding: number, crossPadStart: number, crossPadEnd: number, oddClass: string, gap: number, emitter?: Emitter<VListEvents> | null): RenderConfig;
38
38
  /**
39
39
  * Calculate visible range and fill EngineState buffers.
40
40
  * Zero allocation — all writes go into pre-allocated TypedArrays.
@@ -18,7 +18,7 @@ export interface ScrollHandler {
18
18
  export interface ScrollHandlerConfig {
19
19
  readonly state: EngineState;
20
20
  readonly viewport: HTMLElement;
21
- readonly horizontal: boolean;
21
+ readonly isX: boolean;
22
22
  readonly wheelEnabled: boolean;
23
23
  readonly idleTimeout: number;
24
24
  /** Override the event target for scroll/wheel listeners (default: viewport) */
@@ -25,9 +25,15 @@ export interface CompiledHooks {
25
25
  readonly idle: readonly IdleHook[];
26
26
  readonly resize: readonly ResizeHook[];
27
27
  }
28
+ export type Axis = "x" | "y";
29
+ export interface AxisConfig {
30
+ readonly primary: Axis;
31
+ readonly cross?: Axis;
32
+ }
28
33
  export interface ResolvedConfig {
34
+ readonly axis: AxisConfig;
35
+ readonly hasCrossAxis: boolean;
29
36
  readonly overscan: number;
30
- readonly horizontal: boolean;
31
37
  readonly reverse: boolean;
32
38
  readonly classPrefix: string;
33
39
  readonly interactive: boolean;
package/dist/index.d.ts CHANGED
@@ -38,5 +38,5 @@ export type { SortablePluginConfig } from "./plugins/sortable";
38
38
  export { createStats } from "./utils/stats";
39
39
  export type { Stats, StatsConfig, StatsState } from "./utils/stats";
40
40
  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";
41
- export type { VList, VListPlugin, PluginContext, CreateVListConfig, CompiledHooks, ResolvedConfig, DOMStructure, ElementPool, } from "./core/types";
41
+ export type { Axis, AxisConfig, VList, VListPlugin, PluginContext, CreateVListConfig, CompiledHooks, ResolvedConfig, DOMStructure, ElementPool, } from "./core/types";
42
42
  //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -1,28 +1 @@
1
- /**
2
- * vlist - Lightweight Virtual List
3
- * High-performance virtual scrolling with zero dependencies
4
- * Builder-only API for optimal tree-shaking
5
- *
6
- * For low-level internals (size cache, renderers, selection state, etc.),
7
- * import from 'vlist/internals' instead.
8
- *
9
- * @packageDocumentation
10
- */
11
- // v2 factory + plugins
12
- export { createVList } from "./core/create";
13
- export { scale } from "./plugins/scale";
14
- export { scrollbar } from "./plugins/scrollbar";
15
- export { grid } from "./plugins/grid";
16
- export { a11y } from "./plugins/a11y";
17
- export { selection } from "./plugins/selection";
18
- export { page } from "./plugins/page";
19
- export { snapshots } from "./plugins/snapshots";
20
- export { transition } from "./plugins/transition";
21
- export { autosize } from "./plugins/autosize";
22
- export { masonry } from "./plugins/masonry";
23
- export { data } from "./plugins/async";
24
- export { groups } from "./plugins/groups";
25
- export { table } from "./plugins/table";
26
- export { sortable } from "./plugins/sortable";
27
- // Utils
28
- export { createStats } from "./utils/stats";
1
+ var l2=3,b0="vlist";var r2=50;var y0=50,k0=2,P0=15,z0=6,S2=16000000,m2=150,Q0=1,s2=(j)=>j<0.5?2*j*j:1-(-2*j+2)**2/2,a2=300;var w0="x",v0=20,j0="_isPlaceholder",f2="__placeholder_";var o2={top:0,right:0,bottom:0,left:0},C0=(j)=>{if(j==null)return o2;if(typeof j==="number")return j===0?o2:{top:j,right:j,bottom:j,left:j};if(j.length===2){let[Z,U]=j;return Z===0&&U===0?o2:{top:Z,right:U,bottom:Z,left:U}}let[J,q,Y,$]=j;return J===0&&q===0&&Y===0&&$===0?o2:{top:J,right:q,bottom:Y,left:$}},f0=(j,J)=>J?j.left+j.right:j.top+j.bottom,h0=(j,J)=>J?j.top+j.bottom:j.left+j.right;function I0(j){let J={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,$=l2){if(Y<=0||q<=0)return;let Z=Math.ceil(q/Y)+$*2;if(Z<=J.capacity)return;let U=Z+8,G=new Int32Array(U),H=new Float64Array(U),V=new Float64Array(U);G.set(J.visibleIndices),H.set(J.visibleOffsets),V.set(J.visibleSizes),J.visibleIndices=G,J.visibleOffsets=H,J.visibleSizes=V,J.capacity=U},clear(){J.visibleCount=0,J.startIndex=0}};return J}var b1=(j,J)=>{let q=J;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}},y1=(j,J)=>{let q=J,Y=new Float64Array(0),$=(U)=>{q=U,Y=new Float64Array(U+1),Y[0]=0;for(let G=0;G<U;G++)Y[G+1]=Y[G]+j(G)};$(J);let Z=(U)=>{if(q===0)return 0;if(U<=0)return 0;if(U>=Y[q])return q-1;let G=0,H=q-1;while(G<H){let V=G+H+1>>>1;if(Y[V]<=U)G=V;else H=V-1}return G};return{getOffset:(U)=>{if(U<=0)return 0;if(U>=q)return Y[q];return Y[U]},getSize:(U)=>j(U),indexAtOffset:(U)=>Z(U),getTotalSize:()=>Y[q]??0,getTotal:()=>q,rebuild:(U)=>$(U),isVariable:()=>!0}},i2=(j,J)=>{if(typeof j==="number")return b1(j,J);return y1(j,J)},q0=(j,J,q,Y)=>{if(Y===0)return 0;if(!j.isVariable())return Math.ceil(q/j.getSize(0));let $=0,Z=0,U=J;while(U<Y&&Z<q)Z+=j.getSize(U),$++,U++;return Math.max(1,$)};function S0(j){let J=[],q=`${j}-item`,Y=document.createElement("div");return Y.className=q,{acquire(){if(J.length>0)return J.pop();return Y.cloneNode(!1)},release($){if($.className=q,$.removeAttribute("style"),$.removeAttribute("id"),$.removeAttribute("role"),$.removeAttribute("aria-selected"),$.removeAttribute("aria-posinset"),$.removeAttribute("aria-setsize"),$.removeAttribute("data-index"),$.removeAttribute("data-id"),$.innerHTML="",J.length<100)J.push($)},get size(){return J.length},clear(){J.length=0}}}function p0(j){if(typeof j==="string"){let J=document.querySelector(j);if(!J)throw Error(`[vlist] Container not found: ${j}`);return J}return j}function u0(j,J,q,Y,$){let Z=q?`${J} ${J}--horizontal`:J,U=q?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",G=q?"position:relative;height:100%":"position:relative;width:100%",H=` role="${Y?"listbox":"list"}"`;if(Y)H+=' tabindex="0"';if($)H+=` aria-label="${$.replace(/"/g,"&quot;")}"`;if(q)H+=' aria-orientation="horizontal"';j.insertAdjacentHTML("beforeend",`<div class="${Z}"><div class="${J}-viewport" style="${U}" tabindex="-1"><div class="${J}-content" style="${G}"${H}></div></div></div>`);let V=j.lastElementChild,B=V.firstElementChild,c=B.firstElementChild,N=document.createElement("div");return N.className=`${J}-live`,N.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",N.setAttribute("aria-live","polite"),N.setAttribute("aria-atomic","true"),N.setAttribute("role","status"),V.appendChild(N),{root:V,viewport:B,content:c,liveRegion:N}}function g0(j){let{state:J,viewport:q,isX:Y,wheelEnabled:$,onFrame:Z,onIdle:U}=j,G=j.idleTimeout||m2,H=j.scrollTarget??q,V=null,B=null;function c(){let _=Y?q.scrollLeft:q.scrollTop;if(Math.abs(_-J.scrollPosition)<0.5)return;J.prevScrollPosition=J.scrollPosition,J.scrollPosition=_,J.scrollDirection=_>J.prevScrollPosition?1:_<J.prevScrollPosition?-1:0,Z(),k()}function N(_){if(J.isCompressed)return;let D;if(Y){if(Math.abs(_.deltaX)>Math.abs(_.deltaY))return;let T=q.scrollLeft,F=q.scrollWidth-q.clientWidth;if(D=Math.max(0,Math.min(T+_.deltaY*Q0,F)),Math.abs(D-T)<1)return;_.preventDefault(),q.scrollLeft=D}else{let T=q.scrollWidth>q.clientWidth;if(T&&Math.abs(_.deltaX)>Math.abs(_.deltaY))return;if(T&&_.deltaX!==0)_.preventDefault(),q.scrollLeft+=_.deltaX;let F=q.scrollTop,L=q.scrollHeight-q.clientHeight;if(D=Math.max(0,Math.min(F+_.deltaY*Q0,L)),Math.abs(D-F)<1)return;_.preventDefault(),q.scrollTop=D}J.prevScrollPosition=J.scrollPosition,J.scrollPosition=D,J.scrollDirection=D>J.prevScrollPosition?1:-1,Z(),k()}function k(){if(V!==null)clearTimeout(V);V=setTimeout(()=>{V=null,J.scrollDirection=0,U()},G)}function A(){if(B!==null)cancelAnimationFrame(B),B=null}function O(_,D,T,F=s2){A();let L=J.scrollPosition;if(Math.abs(_-L)<1){if(T)T(_);else if(Y)q.scrollLeft=_;else q.scrollTop=_;return}let R=performance.now();function b(X){let w=X-R,S=Math.min(w/D,1),P=L+(_-L)*F(S);if(T)T(P);else if(Y)q.scrollLeft=P;else q.scrollTop=P;if(!T)J.scrollPosition=P;if(Z(),S<1)B=requestAnimationFrame(b);else B=null}B=requestAnimationFrame(b)}return{attach(){if(H.addEventListener("scroll",c,{passive:!0}),$)H.addEventListener("wheel",N,{passive:!1})},detach(){if(H.removeEventListener("scroll",c),$)H.removeEventListener("wheel",N);if(A(),V!==null)clearTimeout(V),V=null},cancelScroll:A,smoothScrollTo:O}}var d2=[],k1={calculate:d2,commit:d2,afterScroll:d2,idle:d2,resize:d2};function x0(j){if(j.length===0)return k1;let J=[],q=[],Y=[],$=[],Z=[];for(let U=0;U<j.length;U++){let G=j[U].hooks;if(G===void 0)continue;if(G.onCalculate!==void 0)J.push(G.onCalculate);if(G.onCommit!==void 0)q.push(G.onCommit);if(G.onAfterScroll!==void 0)Y.push(G.onAfterScroll);if(G.onIdle!==void 0)$.push(G.onIdle);if(G.onResize!==void 0)Z.push(G.onResize)}return{calculate:J,commit:q,afterScroll:Y,idle:$,resize:Z}}function m0(j,J){for(let q=0;q<j.length;q++)j[q](J)}function d0(j,J){for(let q=0;q<j.length;q++)j[q](J)}function Y0(j,J,q){for(let Y=0;Y<j.length;Y++)j[Y](J,q)}function c0(j){for(let J=0;J<j.length;J++)j[J]()}function l0(j,J,q){for(let Y=0;Y<j.length;Y++)j[Y](J,q)}function r0(j,J,q,Y,$,Z,U,G,H){let V=$!==0||Z!==0;return{prefix:j,selectedClass:`${j}-item--selected`,focusedClass:`${j}-item--focused`,placeholderClass:`${j}-item--placeholder`,replacedClass:`${j}-item--replaced`,translateProp:J?"translateX(":"translateY(",sizeProp:J?"width":"height",itemRole:q?"option":"listitem",interactive:q,startPadding:Y,gap:G,hasCrossPad:V,crossStartProp:V?J?"top":"left":"",crossEndProp:V?J?"bottom":"right":"",crossStartVal:V?$+"px":"",crossEndVal:V?Z+"px":"",oddClass:U,emitter:H??null}}function P1(j,J,q,Y,$){if(j.containerSize<=0||j.totalItems===0)return j.clear(),!0;let{scrollPosition:Z,containerSize:U,totalItems:G}=j,H=$??0;j.totalSize=J.getTotalSize();let V=J.indexAtOffset(H>0?Math.max(0,Z-H):Z),B=J.indexAtOffset(Z+U);if(B<G-1)B++;V=Math.max(0,V),B=Math.min(G-1,Math.max(0,B));let c=Math.max(0,V-q),N=Math.min(G-1,B+q),k=Math.ceil(U/1)+q*2+10,A=N-c+1,O=Math.min(A,j.capacity,k);if(c===j.prevRangeStart&&N===j.prevRangeEnd&&!j.renderPending)return!1;j.visibleCount=O,j.startIndex=c;for(let _=0;_<O;_++){let D=c+_;j.visibleIndices[_]=D,j.visibleOffsets[_]=J.getOffset(D),j.visibleSizes[_]=J.getSize(D)}return m0(Y.calculate,j),j.prevRangeStart=c,j.prevRangeEnd=N,j.renderPending=!1,!0}var v2={selected:!1,focused:!1};function z1(j,J,q){for(let Y=0;Y<J;Y++)if(j[Y]===q)return!0;return!1}var s0,a0,o0,i0;function w1(j,J){if(!z1(s0,a0,J))j.remove(),o0.release(j),i0.delete(J)}function v1(j,J,q,Y,$,Z,U,G,H,V){let B=H?null:$(),c=j.visibleCount,N=j.visibleIndices,k=U.interactive?String(j.totalItems):"",A=U.interactive&&j.totalItems!==j.prevAriaTotal,O=null;for(let _=0;_<c;_++){let D=N[_],T=j.visibleOffsets[_],F=j.visibleSizes[_],L=H?H(D):B[D];if(V)V(D,v2);else v2.selected=!1,v2.focused=!1;let R=Z.get(D),b=R;if(R===void 0){let X=J.acquire();if(L!==void 0){let P;try{P=Y(L,D,v2)}catch(p){if(U.emitter)U.emitter.emit("error",{error:p instanceof Error?p:Error(String(p)),context:`template:render:${D}`});J.release(X);continue}if(typeof P==="string")X.innerHTML=P;else X.innerHTML="",X.appendChild(P)}if(X.setAttribute("role",U.itemRole),X.setAttribute("data-index",String(D)),U.interactive)X.id=U.prefix+"-item-"+D,X.setAttribute("aria-posinset",String(D+1)),X.setAttribute("aria-setsize",k);if(L!==void 0){let P=String(L.id);if(X.setAttribute("data-id",P),P.startsWith(f2))X.classList.add(U.placeholderClass)}if(U.hasCrossPad)X.style.setProperty(U.crossStartProp,U.crossStartVal),X.style.setProperty(U.crossEndProp,U.crossEndVal);if(V){if(X.classList.toggle(U.selectedClass,v2.selected),X.classList.toggle(U.focusedClass,v2.focused),v2.selected)X.setAttribute("aria-selected","true");else X.removeAttribute("aria-selected");X._lastSelected=v2.selected,X._lastFocused=v2.focused}if(U.oddClass)X.classList.toggle(U.oddClass,(D&1)===1);let w=T+U.startPadding;X.style.transform=U.translateProp+w+"px)",X._lastOffset=w;let S=F-U.gap;if(X.style[U.sizeProp]=S+"px",X._lastSize=S,X._lastItem=L,Z.set(D,X),O===null)O=document.createDocumentFragment();O.appendChild(X)}else{if(A)R.setAttribute("aria-setsize",k);if(L!==void 0&&b._lastItem!==L){let S=R.getAttribute("data-id"),P=String(L.id),p;try{p=Y(L,D,v2)}catch(u){if(U.emitter)U.emitter.emit("error",{error:u instanceof Error?u:Error(String(u)),context:`template:render:${D}`});continue}if(typeof p==="string")R.innerHTML=p;else R.innerHTML="",R.appendChild(p);if(R.setAttribute("data-id",P),b._lastItem=L,S!==P){let u=S!==null&&S.startsWith(f2),r=P.startsWith(f2);if(u!==r)R.classList.toggle(U.placeholderClass,r);if(u&&!r)R.classList.add(U.replacedClass),setTimeout(()=>{R.classList.remove(U.replacedClass)},300)}}if(V){if(b._lastSelected!==v2.selected){if(R.classList.toggle(U.selectedClass,v2.selected),v2.selected)R.setAttribute("aria-selected","true");else R.removeAttribute("aria-selected");b._lastSelected=v2.selected}if(b._lastFocused!==v2.focused)R.classList.toggle(U.focusedClass,v2.focused),b._lastFocused=v2.focused}let X=T+U.startPadding;if(b._lastOffset!==X)R.style.transform=U.translateProp+X+"px)",b._lastOffset=X;let w=F-U.gap;if(b._lastSize!==w)R.style[U.sizeProp]=w+"px",b._lastSize=w}}if(O!==null)q.appendChild(O);if(s0=N,a0=c,o0=J,i0=Z,Z.forEach(w1),U.interactive)j.prevAriaTotal=j.totalItems;d0(G.commit,j)}function Z0(j,J,q,Y,$,Z,U,G,H,V,B,c){if(P1(j,J,q,V,H.startPadding))v1(j,Y,$,Z,U,G,H,V,B,c)}var K0=()=>{let j={},J=(Z,U)=>{if(!j[Z])j[Z]=new Set;return j[Z].add(U),()=>q(Z,U)},q=(Z,U)=>{j[Z]?.delete(U)};return{on:J,off:q,emit:(Z,U)=>{j[Z]?.forEach((G)=>{try{G(U)}catch(H){console.error(`[vlist] Error in event handler for "${String(Z)}":`,H)}})},clear:(Z)=>{if(Z)delete j[Z];else for(let U in j)delete j[U]}}};var n0=2,t0=(j=0)=>({velocity:0,sampleCount:0}),e0=(j,J)=>{let q=performance.now(),Y=j._lt??q,$=j._lp??J,Z=q-Y;if(j._lp=J,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 C1(j){let{item:J}=j;if(J.height!==void 0&&typeof J.height==="number"){if(!Number.isFinite(J.height)||J.height<=0)throw Error(`vlist: item.height must be a positive number, got ${J.height}`)}if(J.width!==void 0&&typeof J.width==="number"){if(!Number.isFinite(J.width)||J.width<=0)throw Error(`vlist: item.width must be a positive number, got ${J.width}`)}if(J.estimatedHeight!==void 0){if(!Number.isFinite(J.estimatedHeight)||J.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${J.estimatedHeight}`)}if(J.estimatedWidth!==void 0){if(!Number.isFinite(J.estimatedWidth)||J.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${J.estimatedWidth}`)}if(J.gap!==void 0){if(typeof J.gap!=="number"||!Number.isFinite(J.gap)||J.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${J.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 f1(j,J){let q=j==="horizontal"?"x":"y";if(J.some(($)=>$.name==="grid"))return{primary:q,cross:q==="x"?"y":"x"};return{primary:q}}function h1(j,J){let q=f1(j.orientation,J),Y=q.primary==="x",$=C0(j.padding);return{axis:q,hasCrossAxis:q.cross!==void 0,overscan:j.overscan??l2,reverse:j.reverse??!1,classPrefix:j.classPrefix??b0,interactive:j.interactive??!0,mainAxisPadding:f0($,Y),crossAxisPadding:h0($,Y),startPadding:Y?$.left:$.top,endPadding:Y?$.right:$.bottom,crossPadStart:Y?$.top:$.left,crossPadEnd:Y?$.bottom:$.right,striped:j.item.striped||!1,gap:j.item.gap??0}}function I1(j,J){if(J)return j.item.width??j.item.estimatedWidth??100;return j.item.height??j.item.estimatedHeight??40}function S1(j){let J=[...j];return J.sort((q,Y)=>(q.priority??50)-(Y.priority??50)),J}function p1(j){let J=new Set;for(let q of j){if(J.has(q.name))throw Error(`[vlist] Duplicate plugin: ${q.name}`);J.add(q.name)}for(let q of j)if(q.conflicts){for(let Y of q.conflicts)if(J.has(Y))throw Error(`[vlist] Plugin "${q.name}" conflicts with "${Y}"`)}}function $1(j,J=[]){C1(j);let q=h1(j,J),Y=q.axis.primary==="x",$=I1(j,Y),Z=q.gap,U=Z>0?typeof $==="function"?(Z2)=>$(Z2)+Z:$+Z:$,G=typeof $==="number"?$:20,H=j.items?.length??0,V=q.striped?`${q.classPrefix}-item--odd`:"",B=K0(),c=r0(q.classPrefix,Y,q.interactive,q.startPadding,q.crossPadStart,q.crossPadEnd,V,Z,B),N=J.length>0?S1(J):J;if(J.length>0)p1(N);let k=p0(j.container),A=u0(k,q.classPrefix,Y,q.interactive,j.ariaLabel);if(j.scroll?.scrollbar==="none")A.viewport.classList.add(`${q.classPrefix}-viewport--no-scrollbar`);if(j.scroll?.gutter==="stable")A.viewport.classList.add(`${q.classPrefix}-viewport--gutter-stable`);let _=i2(U,H);if(Z>0){let Z2=_.getTotalSize;_.getTotalSize=()=>{let d=Z2();return d>0?d-Z:0}}let D=S0(q.classPrefix),T=Math.ceil(4096/G)+q.overscan*2+8,F=I0(T);F.totalItems=H;let L=j.items??[],R=()=>L,b=new Map,X=t0(),w={velocity:0,reliable:!1},S={range:{start:0,end:-1}},P={scrollPosition:0,direction:"down"},p={scrollPosition:0},u=-1,r=-1,l=-1,z=null,y=x0(N),v=new Map,K=[],W=[],E=[],I=null,i=null,s=null,g=null,Q=null,M=null,C=null,x=null,o=null,h=null,m=!1,a=!1,e=null,t=0,j2=0,K2=null,G2=null,_2=null,W2=null,J2=null;if(F.containerSize=Y?A.viewport.clientWidth:A.viewport.clientHeight,F.crossSize=Y?A.viewport.clientHeight:A.viewport.clientWidth,J.length>0){let Z2={dom:A,sizeCache:_,pool:D,config:q,emitter:B,template:j.item.template,registerMethod(d,f){v.set(d,f)},getMethod(d){return v.get(d)},registerClickHandler(d){K.push(d)},registerKeydownHandler(d){W.push(d)},registerDestroyHandler(d){E.push(d)},setSizeConfig(d){let f=i2(d,F.totalItems);Object.assign(_,f)},setVisibleRangeFn(d){},setScrollFns(d,f){i=d,s=f},setVirtualTotalFn(d){I=d},getItems:R,getItem(d){return M?M(d):L[d]},getState(){return F},rebuildSizeCache(){_.rebuild(F.totalItems)},updateContentSize(d){F.totalSize=d,A.content.style[Y?"width":"height"]=d+q.mainAxisPadding+"px"},setRenderFn(d,f){g=d,Q=f},renderIfNeeded(){L2()},forceRender(){F2()},setGetItemFn(d){M=d},setItemStateFn(d){C=d},getItemStateFn(){return C},get rawSizeSpec(){return $},scrollTo(d){if(s)s(d);else if(Y)A.viewport.scrollLeft=d;else A.viewport.scrollTop=d},smoothScrollTo(d,f,Q2){if(_2)_2(d,f,void 0,Q2);else Z2.scrollTo(d)},disableDefaultScroll(){m=!0},disableDefaultResize(){a=!0},setScrollTarget(d){e=d},setScrollToPosFn(d){W2=d},setScrollToIndexFn(d){J2=d},onScrollFrame:X2,onScrollIdle:b2,removeItemById(d){if(x)return x(d);let f=L.findIndex((Q2)=>Q2.id===d);if(f===-1)return-1;return L.splice(f,1),F.totalItems=L.length,_.rebuild(F.totalItems),A2(),f},insertItemAt(d,f){if(o){o(d,f);return}L.splice(f,0,d),F.totalItems=L.length,_.rebuild(F.totalItems),A2()},setRemoveItemFn(d){x=d},setInsertItemFn(d){o=d},setUpdateItemFn(d){h=d},getRenderedElement(d){let f=v.get("_getRenderedElement");if(f)return f(d);return b.get(d)??null},setNavConfig(d){if(d.ud!==void 0)t=d.ud;if(d.lr!==void 0)j2=d.lr;if(d.scrollIndex)K2=d.scrollIndex;if(d.navigate)G2=d.navigate},getNavConfig:(()=>{let d={ud:0,lr:0,scrollIndex:null,navigate:null};return()=>{return d.ud=t,d.lr=j2,d.scrollIndex=K2,d.navigate=G2,d}})()};for(let d of N)if(d.setup)try{d.setup(Z2)}catch(f){B.emit("error",{error:f instanceof Error?f:Error(String(f)),context:`plugin:setup:${d.name}`})}}let n=q.classPrefix+"--scrolling",$2=!1,U2=j.scroll?.idleTimeout??m2;function B2(){if(P.scrollPosition=F.scrollPosition,Y)P.direction=F.scrollDirection>0?"right":"left";else P.direction=F.scrollDirection>0?"down":"up";if(B.emit("scroll",P),e0(X,F.scrollPosition),w.velocity=X.velocity,w.reliable=X.sampleCount>=n0,B.emit("velocity:change",w),F.startIndex!==u||F.prevRangeEnd!==r)u=F.startIndex,r=F.prevRangeEnd,S.range.start=F.startIndex,S.range.end=F.prevRangeEnd,B.emit("range:change",S)}let Y2=!1;function A2(){if(g)return;let Z2=_.getTotalSize();if(A.content.style[Y?"width":"height"]=Z2+q.mainAxisPadding+"px",!Y2&&Z2>S2)Y2=!0,B.emit("error",{error:Error(`Content size (${Z2}px) exceeds browser limit (${S2}px). Use the scale() plugin for large datasets.`),context:"content:size:overflow"})}function L2(){if(g)g();else Z0(F,_,q.overscan,D,A.content,j.item.template,R,b,c,y,M,C)}function X2(){if(!$2)$2=!0,A.root.classList.add(n);if(L2(),Y0(y.afterScroll,F.scrollPosition,F.scrollDirection),F.scrollPosition!==l)l=F.scrollPosition,B2()}function b2(){if($2)$2=!1,A.root.classList.remove(n);F.scrollDirection=0,c0(y.idle),w.velocity=0,w.reliable=!1,B.emit("velocity:change",w),p.scrollPosition=F.scrollPosition,B.emit("scroll:idle",p)}function F2(){if(F.renderPending=!0,Q)Q();else Z0(F,_,q.overscan,D,A.content,j.item.template,R,b,c,y,M,C);if(Y0(y.afterScroll,F.scrollPosition,F.scrollDirection),F.scrollPosition!==l){if(l=F.scrollPosition,B2(),z!==null)clearTimeout(z);z=setTimeout(b2,U2)}}let y2=g0({state:F,viewport:A.viewport,isX:Y,wheelEnabled:m?!1:j.scroll?.wheel!==!1,idleTimeout:j.scroll?.idleTimeout??m2,...e?{scrollTarget:e}:{},onFrame:X2,onIdle:b2});_2=y2.smoothScrollTo;function D2(Z2){let f=Z2.target.closest("[data-index]");if(!f)return null;let Q2=parseInt(f.getAttribute("data-index"),10);if(Number.isNaN(Q2))return null;let q2=L[Q2];if(q2===void 0)return null;return{item:q2,index:Q2}}function k2(Z2){for(let f=0;f<K.length;f++)K[f](Z2);let d=D2(Z2);if(d)B.emit("item:click",{item:d.item,index:d.index,event:Z2})}function H2(Z2){let d=D2(Z2);if(d)B.emit("item:dblclick",{item:d.item,index:d.index,event:Z2})}function z2(Z2){let d=D2(Z2);if(d)B.emit("item:contextmenu",{item:d.item,index:d.index,event:Z2})}function N2(Z2){for(let d=0;d<W.length;d++)W[d](Z2)}if(A.content.addEventListener("click",k2),A.content.addEventListener("dblclick",H2),A.content.addEventListener("contextmenu",z2),W.length>0)A.content.addEventListener("keydown",N2);let O2=null;if(!a)setTimeout(()=>{if(F.destroyed)return;O2=new ResizeObserver((d)=>{for(let f of d){let{width:Q2,height:q2}=f.contentRect,V2=Y?Q2:q2,M2=Y?q2:Q2;if(Math.abs(V2-F.containerSize)<1&&Math.abs(M2-F.crossSize)<1)continue;F.containerSize=V2,F.crossSize=M2,F.resizeCapacity(V2,G,q.overscan),F2(),l0(y.resize,Q2,q2),B.emit("resize",{width:Q2,height:q2})}}),O2.observe(A.viewport)},0);F.resizeCapacity(F.containerSize,G,q.overscan),A2(),F.initialized=!0;let R2=null;if(j.defer)R2=requestAnimationFrame(()=>{if(R2=null,!F.destroyed)L2()});else L2();if(!m)y2.attach();let P2={get element(){return A.root},get items(){return L},get total(){return I?I():L.length},setItems(Z2){L=[...Z2],F.totalItems=L.length,_.rebuild(F.totalItems),A2(),F2()},appendItems(Z2){L.push(...Z2),F.totalItems=L.length,_.rebuild(F.totalItems),A2(),F2()},prependItems(Z2){L.unshift(...Z2),F.totalItems=L.length,_.rebuild(F.totalItems),A2(),F2()},updateItem(Z2,d){if(h){if(!h(Z2,d))return}else{let f=L.findIndex((Q2)=>Q2.id===Z2);if(f===-1)return;L[f]={...L[f],...d}}F2()},insertItem(Z2,d){if(o)o(Z2,d??F.totalItems);else{if(d===void 0)L.push(Z2);else L.splice(d,0,Z2);F.totalItems=L.length,_.rebuild(F.totalItems),A2()}F2()},removeItem(Z2){if(x){if(x(Z2)<0)return}else{let d=L.findIndex((f)=>f.id===Z2);if(d===-1)return;L.splice(d,1),F.totalItems=L.length,_.rebuild(F.totalItems),A2()}F2()},removeItems(Z2){if(x){let q2=0;for(let V2 of Z2)if(x(V2)>=0)q2++;if(q2>0)F2();return q2}let d=new Set(Z2),f=L.length;L=L.filter((q2)=>!d.has(q2.id));let Q2=f-L.length;if(Q2>0)F.totalItems=L.length,_.rebuild(F.totalItems),A2(),F.renderPending=!0,L2();return Q2},getItemAt(Z2){return L[Z2]},getIndexById(Z2){return L.findIndex((d)=>d.id===Z2)},scrollToIndex(Z2,d="start"){let f=I?I():L.length;if(f===0)return;let Q2=Math.max(0,Math.min(Z2,f-1)),q2=typeof d==="string"?d:d.align??"start",V2=typeof d==="object"?d.behavior:void 0,M2=typeof d==="object"?d.duration:void 0,T2=typeof d==="object"?d.easing:void 0;if(J2&&J2(Q2,q2,V2,M2,T2)!==!1)return;let w2=_.getOffset(Q2),E2=_.getSize(Q2),C2=F.containerSize,I2=_.getTotalSize(),T0=q.mainAxisPadding,R1=Math.max(0,I2+T0-C2),h2;if(W2)h2=W2(Q2,_,C2,f,q2);else{let T1=q.startPadding;switch(q2){case"center":h2=T1+w2-(C2-E2)/2;break;case"end":h2=w2+E2+T0-C2;break;default:h2=w2}h2=Math.max(0,Math.min(h2,R1))}if(V2==="smooth")y2.smoothScrollTo(h2,M2??a2,s??void 0,T2);else if(s)s(h2);else if(Y)A.viewport.scrollLeft=h2;else A.viewport.scrollTop=h2},getScrollPosition(){return i?i():F.scrollPosition},on:B.on.bind(B),off:B.off.bind(B),destroy(){if(F.destroyed)return;if(F.destroyed=!0,$2)$2=!1,A.root.classList.remove(n);if(R2!==null)cancelAnimationFrame(R2),R2=null;if(z!==null)clearTimeout(z),z=null;y2.detach(),O2?.disconnect(),A.content.removeEventListener("click",k2),A.content.removeEventListener("dblclick",H2),A.content.removeEventListener("contextmenu",z2),A.content.removeEventListener("keydown",N2);let Z2=[];for(let d of E)try{d()}catch(f){Z2.push(f instanceof Error?f:Error(String(f)))}for(let d of N)if(d.destroy)try{d.destroy()}catch(f){Z2.push(f instanceof Error?f:Error(String(f)))}for(let[,d]of b)d.remove();if(b.clear(),D.clear(),A.root.remove(),B.emit("destroy",void 0),B.clear(),Z2.length>0)for(let d of Z2)console.error("vlist: error during destroy:",d)}};for(let[Z2,d]of v)P2[Z2]=d;return P2}var J1=(j,J,q)=>{let Y=J.getTotalSize(),$=q===!0||Y>S2,Z=Y>S2?S2:Y,U=Y>0?Z/Y:1;return{isCompressed:$,actualSize:Y,virtualSize:Z,ratio:U}},Q1=(j,J,q,Y,$,Z)=>{if(Y===0||J===0)return Z.start=0,Z.end=-1,Z;if(!$.isCompressed||$.ratio===1){let k=q.indexAtOffset(j),A=q.indexAtOffset(j+J);if(A<Y-1)A++;return Z.start=Math.max(0,k),Z.end=Math.min(Y-1,Math.max(0,A)),Z}let{virtualSize:U}=$,G=j/U,H=q.getTotalSize(),V=G*H,B=q.indexAtOffset(V),c=q0(q,Math.max(0,B),J,Y),N=B+c;return Z.start=Math.max(0,B),Z.end=Math.min(Y-1,Math.max(0,N)),Z};var n2=(j,J,q,Y,$,Z,U)=>{if(!Z.isCompressed||Y===0)return q.getOffset(j);if(Z.ratio===1)return q.getOffset(j)-J;let{virtualSize:G}=Z,H=J/G,V=q.getTotalSize(),B=H*V;return q.getOffset(j)-B},j1=(j,J,q,Y,$,Z="start")=>{if(Y===0)return 0;let U;if($.isCompressed&&$.ratio!==1){U=j/Y*$.virtualSize;let B=J.getSize(j);switch(Z){case"center":U-=(q-B)/2*$.ratio;break;case"end":U-=(q-B)*$.ratio;break}return Math.max(0,U)}U=J.getOffset(j);let G=J.getSize(j);switch(Z){case"center":U-=(q-G)/2;break;case"end":U-=q-G;break}let H=$.virtualSize-q;return Math.max(0,Math.min(U,H))};var u1=(j)=>{if(typeof j!=="object"){let J=j??2;return{top:J,right:J,bottom:J,left:J}}return{top:j.top??2,right:j.right??2,bottom:j.bottom??2,left:j.left??2}},t2=(j,J,q={},Y="vlist",$=!1,Z)=>{let{autoHide:U=!0,autoHideDelay:G=1000,minThumbSize:H=15,showOnHover:V=!0,showOnViewportEnter:B=!0,clickBehavior:c="scroll"}=q,N=c==="page"?"scroll":c,k=Z??j,A=u1(q.padding),O=$?A.left:A.top,_=$?A.right:A.bottom,D=$?A.bottom:A.right,T=q.hoverZoneWidth??D+16,F=0,L=0,R=0,b=0,X=!1,w=!1,S=0,P=0,p=0,u=null,r=!1,l=null,z=0,y=0,v=null,K=null,W=null,E=$?"width":"height",I=$?"translateX":"translateY",i=$?(N2)=>N2.clientX:(N2)=>N2.clientY,s=$?"left":"top",g=document.createElement("div"),Q=document.createElement("div"),M=document.createElement("div"),C=$?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",x=()=>{if(k===j)return;let N2=j.offsetTop;g.style[$?"left":"top"]=N2?`calc(var(${C}) + ${N2}px)`:`var(${C})`,M.style[$?"left":"top"]=`${N2}px`},o=()=>{if(g.className=`${Y}-scrollbar`,Q.className=`${Y}-scrollbar__thumb`,$)g.classList.add(`${Y}-scrollbar--horizontal`);if(q.padding!==void 0)k.style.setProperty("--vlist-custom-scrollbar-padding-top",`${A.top}px`),k.style.setProperty("--vlist-custom-scrollbar-padding-right",`${A.right}px`),k.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${A.bottom}px`),k.style.setProperty("--vlist-custom-scrollbar-padding-left",`${A.left}px`);if(q.minThumbSize!==void 0)g.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${H}px`);if(g.appendChild(Q),k.appendChild(g),M.className=`${Y}-scrollbar__hover`,$)M.classList.add(`${Y}-scrollbar__hover--horizontal`),M.style.height=`${T}px`;else M.style.width=`${T}px`;if(k.appendChild(M),k!==j)x()},h=()=>{if(u)clearTimeout(u),u=null},m=()=>{if(!U)return;h(),u=setTimeout(e,G)},a=()=>{if(F<=L)return;if(h(),!r)g.classList.add(`${Y}-scrollbar--visible`),r=!0;if(U&&!X&&!w)m()},e=()=>{if(X||w)return;g.classList.remove(`${Y}-scrollbar--visible`),r=!1},t=(N2,O2)=>{if(F=N2,L=O2,x(),F<=L){g.style.display="none",e();return}g.style.display="";let R2=Math.max(0,L-O-_),P2=L/F;if(R=Math.max(H,P2*R2),Q.style[E]=`${R}px`,b=R2-R,j2(p),!U)a()},j2=(N2)=>{if(p=N2,F<=L||b<=0)return;let O2=F-L,R2=Math.min(1,Math.max(0,N2/O2));Q.style.transform=`${I}(${R2*b}px)`},K2=(N2)=>{if(N2.target===Q||N!=="jump"||b<=0)return;let O2=F-L,R2=g.getBoundingClientRect(),P2=i(N2)-R2[s],Z2=Math.max(0,Math.min(P2-R/2,b));J(Z2/b*O2),a()},G2=()=>{if(v!==null)clearTimeout(v),v=null;if(K!==null)cancelAnimationFrame(K),K=null;W=null},_2=(N2)=>{let O2=b>0?y/N2*b:0;if(z<O2)return-1;if(z>=O2+R)return 1;return 0},W2=()=>{let N2=F-L,O2=_2(N2);if(O2===0){G2();return}if(O2===-1){if(y<=0){G2();return}let R2=Math.max(0,y-L);y=R2,J(R2)}else{if(y>=N2){G2();return}let R2=Math.min(N2,y+L);y=R2,J(R2)}a()},J2=(N2)=>{if(W===null){W=N2,K=requestAnimationFrame(J2);return}let O2=F-L,R2=N2-W;W=N2;let P2=_2(O2);if(P2===0){G2();return}let Z2=12*L/1000,d=Math.min(Z2*R2,L);if(P2===-1){if(y<=0){G2();return}let f=Math.max(0,y-d);y=f,J(f)}else{if(y>=O2){G2();return}let f=Math.min(O2,y+d);y=f,J(f)}h(),K=requestAnimationFrame(J2)},n=()=>{G2(),m(),document.removeEventListener("mouseup",n)},$2=(N2)=>{if(N2.target===Q||N!=="scroll")return;N2.preventDefault();let O2=g.getBoundingClientRect();z=i(N2)-O2[s],y=p,W2(),v=setTimeout(()=>{K=requestAnimationFrame(J2)},350),document.addEventListener("mouseup",n)},U2=(N2)=>{N2.preventDefault(),N2.stopPropagation(),X=!0,S=i(N2),P=p,h(),g.classList.add(`${Y}-scrollbar--dragging`),document.addEventListener("mousemove",B2),document.addEventListener("mouseup",Y2)},B2=(N2)=>{if(!X)return;let O2=i(N2)-S,R2=b>0?O2/b:0,P2=F-L,Z2=R2*P2,d=Math.max(0,Math.min(P+Z2,P2));Q.style.transform=`${I}(${d/P2*b}px)`,J(d)},Y2=()=>{if(X=!1,g.classList.remove(`${Y}-scrollbar--dragging`),U&&!w)m();document.removeEventListener("mousemove",B2),document.removeEventListener("mouseup",Y2)},A2=$?(N2)=>N2.touches[0].clientX:(N2)=>N2.touches[0].clientY,L2=(N2)=>{N2.stopPropagation(),X=!0,S=A2(N2),P=p,h(),g.classList.add(`${Y}-scrollbar--dragging`)},X2=(N2)=>{if(!X)return;N2.preventDefault();let O2=A2(N2)-S,R2=b>0?O2/b:0,P2=F-L,Z2=R2*P2,d=Math.max(0,Math.min(P+Z2,P2));Q.style.transform=`${I}(${d/P2*b}px)`,J(d)},b2=()=>{if(X=!1,g.classList.remove(`${Y}-scrollbar--dragging`),U)m()},F2=(N2)=>{if(N2.target===Q)return;if(b<=0)return;let O2=N2.touches[0],R2=g.getBoundingClientRect(),P2=($?O2.clientX:O2.clientY)-R2[s];if(N==="jump"){let Z2=F-L,d=Math.max(0,Math.min(P2-R/2,b));J(d/b*Z2)}else z=P2,y=p,W2();a()},y2=()=>{if(B)a()},D2=()=>{if(!X){if(w=!1,U)m()}},k2=()=>{w=!0,h(),a()},H2=()=>{if(w=!1,!X&&U)m()},z2=()=>{if(h(),G2(),l!==null)cancelAnimationFrame(l),l=null;g.removeEventListener("click",K2),g.removeEventListener("mousedown",$2),g.removeEventListener("mouseenter",k2),document.removeEventListener("mouseup",n),g.removeEventListener("mouseleave",H2),g.removeEventListener("touchstart",F2),Q.removeEventListener("mousedown",U2),Q.removeEventListener("touchstart",L2),Q.removeEventListener("touchmove",X2),Q.removeEventListener("touchend",b2),j.removeEventListener("mouseenter",y2),j.removeEventListener("mouseleave",D2),document.removeEventListener("mousemove",B2),document.removeEventListener("mouseup",Y2),M.removeEventListener("click",K2),M.removeEventListener("mousedown",$2),M.removeEventListener("mouseenter",k2),M.removeEventListener("mouseleave",H2),M.remove(),k.style.removeProperty("--vlist-custom-scrollbar-padding-top"),k.style.removeProperty("--vlist-custom-scrollbar-padding-right"),k.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),k.style.removeProperty("--vlist-custom-scrollbar-padding-left"),g.remove()};if(o(),g.addEventListener("click",K2),g.addEventListener("mousedown",$2),g.addEventListener("mouseenter",k2),g.addEventListener("mouseleave",H2),g.addEventListener("touchstart",F2,{passive:!0}),Q.addEventListener("mousedown",U2),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),M.addEventListener("click",K2),M.addEventListener("mousedown",$2),V)M.addEventListener("mouseenter",k2),M.addEventListener("mouseleave",H2);return{show:a,hide:e,updateBounds:t,updatePosition:j2,isVisible:()=>r,destroy:z2}};var g1=0.65,q1=0.5,Y1=1.7,x1=0.95,m1=0.1,x2=5,d1=100;function U0(j){let J=j?.force??!1,q,Y,$,Z,U,G={isCompressed:!1,actualSize:0,virtualSize:0,ratio:1},H=!1,V=0,B=null,c=!1,N=0,k=0,A=null,O=null,_=0,D=0,T=null,F=new Float64Array(x2),L=new Float64Array(x2),R=0,b=0,X={start:0,end:-1},w=-1,S=null;function P(){return Math.max(0,G.virtualSize+V-q.containerSize)}function p(){if(G.virtualSize<=0)return 0;return Math.max(0,q.containerSize*(1-G.ratio))}function u(Q){let M=q.totalItems;if(G=J1(M,Y,J),G.isCompressed&&!H)i(Q);else if(!G.isCompressed&&H)s(Q);if(G.isCompressed){if(V=p(),q.isCompressed=!0,q.compressionRatio=G.ratio,Q.updateContentSize(G.virtualSize+V),B)B.updateBounds(G.virtualSize+V,q.containerSize)}}let r=null,l=null,z=null,y=null,v=null;function K(Q){N=Q,k=Q,q.prevScrollPosition=q.scrollPosition,q.scrollPosition=Q,q.scrollDirection=Q>q.prevScrollPosition?1:-1,S.forceRender()}function W(){if(A!==null)cancelAnimationFrame(A),A=null;if(O!==null)cancelAnimationFrame(O),O=null}function E(Q){W(),K(Math.max(0,Math.min(Q,P())))}function I(Q,M,C=s2){W();let x=Math.max(0,Math.min(Q,P())),o=N;if(Math.abs(x-o)<q1){K(x);return}let h=performance.now(),m=(a)=>{let e=Math.min((a-h)/M,1);if(K(o+(x-o)*C(e)),e<1)O=requestAnimationFrame(m);else O=null};O=requestAnimationFrame(m)}function i(Q){H=!0,q.isCompressed=!0;let M=Z?"scrollLeft":"scrollTop",C=Z?"overflowX":"overflow",x=$[M];if($.style[C]="hidden",$[M]=0,x>0)N=x,k=x,q.scrollPosition=x;V=p();let o=()=>{let t=k-N,j2=P();if(Math.abs(t)<q1)N=Math.max(0,Math.min(k,j2)),k=N,A=null;else N+=t*g1,N=Math.max(0,Math.min(N,j2)),A=requestAnimationFrame(o);q.prevScrollPosition=q.scrollPosition,q.scrollPosition=N,q.scrollDirection=N>q.prevScrollPosition?1:-1,Q.forceRender()};r=(t)=>{t.preventDefault();let j2=P();if(k=Math.max(0,Math.min(k+t.deltaY*G.ratio*Y1,j2)),A===null)A=requestAnimationFrame(o)},$.addEventListener("wheel",r,{passive:!1});let h=()=>{if(T!==null)cancelAnimationFrame(T),T=null};l=(t)=>{if(h(),A!==null)cancelAnimationFrame(A),A=null;let j2=t.touches[0];if(!j2)return;let K2=Z?j2.clientX:j2.clientY;_=K2,D=N,R=1,b=0,F[0]=performance.now(),L[0]=K2},z=(t)=>{t.preventDefault();let j2=t.touches[0];if(!j2)return;let K2=Z?j2.clientX:j2.clientY,G2=performance.now(),_2=R<x2?R:b;if(F[_2]=G2,L[_2]=K2,R<x2)R++;else b=(b+1)%x2;let W2=_-K2,J2=P(),n=Math.max(0,Math.min(D+W2*G.ratio*Y1,J2));N=n,k=n,q.prevScrollPosition=q.scrollPosition,q.scrollPosition=n,q.scrollDirection=n>q.prevScrollPosition?1:-1,Q.forceRender()},y=()=>{let t=performance.now(),j2=1/0,K2=0,G2=-1,_2=0,W2=0;for(let U2=0;U2<R;U2++){let B2=(b+U2)%x2,Y2=F[B2];if(t-Y2>=d1)continue;W2++;let A2=L[B2];if(Y2<j2)j2=Y2,K2=A2;if(Y2>G2)G2=Y2,_2=A2}let J2=0;if(W2>=2){let U2=G2-j2;if(U2>0)J2=(K2-_2)/U2}if(R=0,b=0,Math.abs(J2)<m1)return;let n=J2*16,$2=()=>{if(n*=x1,Math.abs(n)<0.5){T=null;return}let U2=P(),B2=N+n;if(B2=Math.max(0,Math.min(B2,U2)),B2<=0&&n<0||B2>=U2&&n>0){N=B2,k=B2,q.scrollPosition=B2,Q.forceRender(),T=null;return}N=B2,k=B2,q.prevScrollPosition=q.scrollPosition,q.scrollPosition=B2,q.scrollDirection=B2>q.prevScrollPosition?1:-1,Q.forceRender(),T=requestAnimationFrame($2)};T=requestAnimationFrame($2)},$.addEventListener("touchstart",l,{passive:!0}),$.addEventListener("touchmove",z,{passive:!1}),$.addEventListener("touchend",y,{passive:!0}),$.addEventListener("touchcancel",y,{passive:!0}),v=()=>{if($[M]!==0)$[M]=0},$.addEventListener("scroll",v,{passive:!0});let m=(t)=>{if(N=t,k=t,A!==null)cancelAnimationFrame(A),A=null;q.prevScrollPosition=q.scrollPosition,q.scrollPosition=t,q.scrollDirection=t>q.prevScrollPosition?1:-1,Q.forceRender()},a=Q.getMethod("_scrollbar:setCallback"),e=Q.getMethod("_scrollbar:getInstance");if(a&&e){a(m);let t=e();if(t)B=t,c=!1,B.updateBounds(G.virtualSize+V,q.containerSize)}else if(!B){let t=Q.config.classPrefix;if(B=t2($,m,{},t,Z,Q.dom.root),c=!0,!$.classList.contains(`${t}-viewport--custom-scrollbar`))$.classList.add(`${t}-viewport--custom-scrollbar`);B.updateBounds(G.virtualSize+V,q.containerSize)}}function s(Q){H=!1,q.isCompressed=!1,q.compressionRatio=1,N=0,k=0,R=0,b=0,g();let M=Z?"overflowX":"overflow";$.style[M]="auto",V=0,Q.updateContentSize(Y.getTotalSize())}function g(){if(A!==null)cancelAnimationFrame(A),A=null;if(O!==null)cancelAnimationFrame(O),O=null;if(T!==null)cancelAnimationFrame(T),T=null;if(r)$.removeEventListener("wheel",r),r=null;if(l)$.removeEventListener("touchstart",l),l=null;if(z)$.removeEventListener("touchmove",z),z=null;if(y)$.removeEventListener("touchend",y),$.removeEventListener("touchcancel",y),y=null;if(v)$.removeEventListener("scroll",v),v=null;if(B&&c)B.destroy();B=null,c=!1;let Q=Z?"scrollLeft":"scrollTop";if($&&$[Q]!==0)$[Q]=0}return{name:"scale",priority:20,setup(Q){q=Q.getState(),Y=Q.sizeCache,$=Q.dom.viewport,Z=Q.config.axis.primary==="x",U=Q.config.overscan,S=Q,Q.registerMethod("_updateCompressionMode",()=>u(Q)),Q.setScrollFns(()=>N,(M)=>{if(!G.isCompressed||!H){let x=Z?"scrollLeft":"scrollTop";$[x]=M;return}if(W(),T!==null)cancelAnimationFrame(T),T=null;let C=M*G.ratio;K(Math.max(0,Math.min(C,P())))}),Q.setScrollToIndexFn((M,C,x,o,h)=>{if(!G.isCompressed||!H)return!1;let m=j1(M,Y,q.containerSize,q.totalItems,G,C);if(x==="smooth")I(m,o??a2,h);else E(m)}),u(Q),w=q.totalItems,Q.registerDestroyHandler(g)},hooks:{onCalculate(Q){if(Q.totalItems!==w&&S)w=Q.totalItems,u(S);if(!G.isCompressed||!H)return;let M=Q.totalItems;if(M===0||Q.containerSize<=0){Q.visibleCount=0;return}Q1(Q.scrollPosition,Q.containerSize,Y,M,G,X);let C=Math.max(0,X.start-U),x=Math.min(M-1,X.end+U),o=Math.min(x-C+1,Q.capacity);Q.visibleCount=o,Q.startIndex=C;for(let h=0;h<o;h++){let m=C+h;Q.visibleIndices[h]=m,Q.visibleOffsets[h]=n2(m,Q.scrollPosition,Y,M,Q.containerSize,G),Q.visibleSizes[h]=Y.getSize(m)}Q.prevRangeStart=C,Q.prevRangeEnd=x},onAfterScroll(Q){if(B&&H)B.updatePosition(Q),B.show()},onResize(){if(H){if(V=p(),B)B.updateBounds(G.virtualSize+V,q.containerSize);let Q=P();if(N>Q)N=Q,k=Q,q.scrollPosition=Q}}},destroy(){g()}}}function B0(j){let J=null,q,Y=0,$=0;return{name:"scrollbar",priority:15,setup(Z){let{dom:U,config:G}=Z,{classPrefix:H}=G,V=G.axis.primary==="x";q=Z.getState();let B=(c)=>{if(V)U.viewport.scrollLeft=c;else U.viewport.scrollTop=c};if(Z.registerMethod("_scrollbar:setCallback",(c)=>{B=c}),J=t2(U.viewport,(c)=>{B(c)},j,H,V,U.root),U.viewport.classList.add(`${H}-viewport--custom-scrollbar`),j?.gutter)U.viewport.classList.add(`${H}-viewport--gutter`);queueMicrotask(()=>{if(!q.isCompressed)J?.updateBounds(q.totalSize,q.containerSize)}),Z.registerMethod("_scrollbar:getInstance",()=>J),Z.registerDestroyHandler(()=>{if(J?.destroy(),J=null,U.viewport.classList.remove(`${H}-viewport--custom-scrollbar`),j?.gutter)U.viewport.classList.remove(`${H}-viewport--gutter`)})},hooks:{onAfterScroll(Z){if(!q.isCompressed){let{totalSize:U,containerSize:G}=q;if(U!==Y||G!==$)Y=U,$=G,J?.updateBounds(U,G)}J?.updatePosition(Z),J?.show()},onResize(){if(!q.isCompressed){let{totalSize:Z,containerSize:U}=q;Y=Z,$=U,J?.updateBounds(Z,U)}}},destroy(){J?.destroy(),J=null}}}var Z1=(j)=>{let J=Math.max(1,Math.floor(j.columns)),q=j.gap??0,Y=j.isHeaderFn,$={row:0,col:0},Z=(A)=>{if(A<=0)return 0;if(!Y)return Math.ceil(A/J);let O=0,_=0,D=0;for(let T=0;T<A;T++)if(Y(T)){if(D++,_)O++,_=0;O++,_=0}else if(_++,_>=J)O++,_=0;if(_)O++;return O},U=(A)=>{return $.row=G(A),$.col=H(A),$},G=(A)=>{if(!Y)return Math.floor(A/J);let O=0,_=0;for(let D=0;D<=A;D++)if(Y(D)){if(_)O++,_=0;if(D===A)return O;O++,_=0}else{if(D===A)return O;if(_++,_>=J)O++,_=0}return console.warn(`⚠️ getRow(${A}) fell through - returning ${O}`),O},H=(A)=>{if(!Y)return A%J;if(Y(A))return 0;let O=0;for(let _=0;_<=A;_++)if(Y(_))O=0;else{if(_===A)return O;if(O++,O>=J)O=0}return O},V=(A,O,_)=>{if(_<=0)return{start:0,end:-1};if(!Y){let R=Math.max(0,A*J),b=Math.min(_-1,(O+1)*J-1);return{start:R,end:b}}let D=-1,T=-1,F=0,L=0;for(let R=0;R<_;R++){if(Y(R)){if(L)F++,L=0;if(F>=A&&F<=O){if(D<0)D=R;T=R}F++,L=0}else{if(F>=A&&F<=O){if(D<0)D=R;T=R}if(L++,L>=J)F++,L=0}if(F>O&&!L)break}if(D<0)return{start:0,end:-1};return{start:D,end:T}},B=(A,O,_)=>{if(O<0||O>=J)return-1;let D=A*J+O;if(D<0||D>=_)return-1;return D},c=(A)=>{let O=(J-1)*q;return Math.max(0,(A-O)/J)};return{get columns(){return J},get gap(){return q},update:(A)=>{if(A.columns!==void 0)J=Math.max(1,Math.floor(A.columns));if(A.gap!==void 0)q=A.gap;if(A.isHeaderFn!==void 0)Y=A.isHeaderFn},getTotalRows:Z,getPosition:U,getRow:G,getCol:H,getItemRange:V,getItemIndex:B,getColumnWidth:c,getColumnOffset:(A,O)=>{let _=c(O);return A*(_+q)}}};var p2={selected:!1,focused:!1};function W0(j){if(!j.columns||j.columns<1)throw Error("[vlist] grid: columns must be >= 1");let J,q,Y,$,Z,U,G,H,V,B,c=null,N=new Map,k=0,A=-1,O=-1,_=!0;function D(){return J.getTotalRows(Y.totalItems)}function T(X){let w=J.getRow(X),S=J.getCol(X),P=J.getColumnOffset(S,k),p=q.getOffset(w);if(H)return`translate(${Math.round(p)}px, ${Math.round(P)}px)`;return`translate(${Math.round(P)}px, ${Math.round(p)}px)`}function F(X,w){let S=J.getRow(w),P=J.getColumnWidth(k),p=q.getSize(S)-J.gap;if(H)X.style.width=`${p}px`,X.style.height=`${P}px`;else X.style.width=`${P}px`,X.style.height=`${p}px`}function L(X,w,S,P){if(P)P(S,p2);else p2.selected=!1,p2.focused=!1;let p=U(w,S,p2);if(typeof p==="string")X.innerHTML=p;else X.innerHTML="",X.appendChild(p)}function R(){if(Y.destroyed)return;let{scrollPosition:X,containerSize:w}=Y;if(!_&&X===A&&w===O)return;A=X,O=w,_=!1;let S=D();if(w<=0||S===0)return;let P=q.indexAtOffset(X),p=q.indexAtOffset(X+w);if(p<S-1)p++;P=Math.max(0,P),p=Math.min(S-1,Math.max(0,p));let u=Math.max(0,P-B),r=Math.min(S-1,p+B);if(u===Y.prevRangeStart&&r===Y.prevRangeEnd&&!Y.renderPending)return;let l=J.getItemRange(u,r,Y.totalItems);N.forEach((I,i)=>{if(i<l.start||i>l.end)I.el.remove(),$.release(I.el),N.delete(i)});let z=`${V}-item ${V}-grid-item`,y=c?.()??null,v=y?`${V}-item--selected`:"",K=y?`${V}-item--focused`:"";for(let I=l.start;I<=l.end;I++){let i=G(I);if(!i)continue;let s=N.get(I);if(s===void 0){let g=$.acquire();g.className=z,g.setAttribute("data-index",String(I)),g.setAttribute("data-id",String(i.id)),L(g,i,I,y),s={el:g,lastId:i.id},N.set(I,s),Z.appendChild(g)}else if(s.lastId!==i.id)s.el.setAttribute("data-id",String(i.id)),s.lastId=i.id,L(s.el,i,I,y);if(y)if(y(I,p2),s.el.classList.toggle(v,p2.selected),s.el.classList.toggle(K,p2.focused),p2.selected)s.el.setAttribute("aria-selected","true");else s.el.removeAttribute("aria-selected");F(s.el,I),s.el.style.transform=T(I)}let W=q.getTotalSize();Z.style[H?"width":"height"]=W+"px",Y.prevRangeStart=u,Y.prevRangeEnd=r,Y.renderPending=!1;let E=l.end-l.start+1;Y.visibleCount=Math.min(E,Y.capacity),Y.startIndex=l.start;for(let I=0;I<Y.visibleCount;I++){let i=l.start+I,s=J.getRow(i);Y.visibleIndices[I]=i,Y.visibleOffsets[I]=q.getOffset(s),Y.visibleSizes[I]=q.getSize(s)}}function b(){if(Y.destroyed)return;q.rebuild(D()),Y.prevRangeStart=-1,Y.prevRangeEnd=-1,Y.renderPending=!0,_=!0,R()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(X){let w=j.gap??0;J=Z1({columns:j.columns,gap:w}),q=X.sizeCache,Y=X.getState(),$=X.pool,Z=X.dom.content,U=X.template,H=X.config.axis.primary==="x",V=X.config.classPrefix,B=X.config.overscan,G=X.getItem.bind(X),c=()=>X.getItemStateFn(),k=Y.crossSize;let S=X.rawSizeSpec,P;if(typeof S==="function"){let u={columnWidth:J.getColumnWidth(k),columns:j.columns,gap:w};P=S(0,u),X.setSizeConfig((r)=>{u.columnWidth=J.getColumnWidth(k);let l=r*j.columns;return S(l,u)+w})}else if(P=S,w>0)X.setSizeConfig(P+w);if(q.rebuild(D()),w>0){let p=q.getTotalSize;q.getTotalSize=()=>{let u=p();return u>0?u-w:0}}X.setVirtualTotalFn(()=>D()),X.dom.root.classList.add(`${V}--grid`),X.setRenderFn(R,b),X.registerMethod("getGridLayout",()=>J),X.registerMethod("updateGrid",(p)=>{if(p.columns!==void 0){if(!Number.isInteger(p.columns)||p.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(p.gap!==void 0&&p.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if(J.update(p),p.gap!==void 0||p.columns!==void 0){let u=J.gap;if(typeof S==="function"){let r={columnWidth:J.getColumnWidth(k),columns:J.columns,gap:u};X.setSizeConfig((l)=>{r.columnWidth=J.getColumnWidth(k);let z=l*J.columns;return S(z,r)+u})}else X.setSizeConfig(P+u);q.rebuild(D())}if(p.columns!==void 0)X.setNavConfig({ud:J.columns});k=Y.crossSize,b()}),X.registerMethod("scrollToIndex",(p,u="start")=>{let r=J.getRow(p),l=D();if(l===0)return;let z=Math.max(0,Math.min(r,l-1)),y=q.getOffset(z),v=q.getSize(z),K=Y.containerSize,W=q.getTotalSize(),E=Math.max(0,W-K),I=typeof u==="string"?u:u.align??"start",i=typeof u==="object"?u.behavior:void 0,s=typeof u==="object"?u.duration:void 0,g;switch(I){case"center":g=y-(K-v)/2;break;case"end":g=y-K+v;break;default:g=y}if(g=Math.max(0,Math.min(g,E)),i==="smooth"&&s&&s>0)X.smoothScrollTo(g,s);else X.scrollTo(g)}),X.setNavConfig({total:()=>Y.totalItems,ud:j.columns,lr:1,scrollIndex:(p)=>J.getRow(p)}),X.registerDestroyHandler(()=>{for(let[,p]of N)p.el.remove();N.clear(),X.dom.root.classList.remove(`${V}--grid`)})},hooks:{onResize(X,w){let S=Y.crossSize;if(Math.abs(S-k)<1)return;k=S,N.forEach((P,p)=>{F(P.el,p),P.el.style.transform=T(p)})}},destroy(){N.clear()}}}function N0(){return{name:"a11y",priority:55,setup(j){if(j.getItemStateFn())return;let{dom:J,config:q,sizeCache:Y}=j,$=j.getState(),Z=j.emitter,U=q.classPrefix,G=J.liveRegion,H=-1,V=!1,B,c=-1,N=(w)=>j.getItem(w),k=()=>$.totalItems,A={id:0,index:0},O={selected:[],items:[]};j.setItemStateFn((w,S)=>{S.selected=c===w,S.focused=V&&H===w});function _(w){G.textContent="",G.textContent=w}let D=(w,S,P)=>{let p=w;while(p>=0&&p<P){let u=N(p);if(!u||!u.__groupHeader)return p;p+=S}p=w-S;while(p>=0&&p<P){let u=N(p);if(!u||!u.__groupHeader)return p;p-=S}return w},T=(w)=>{let S=j.getNavConfig(),P=S.scrollIndex?S.scrollIndex(w):w,p=Y.getOffset(P),u=Y.getSize(P),r=$.scrollPosition,l=$.containerSize,z=q.startPadding,y=q.endPadding,v=p+z,K=v+u,W=r;if(v<r)W=Math.max(0,p);else if(K>r+l)W=K+y-l;if(W!==r)$.scrollPosition=W,j.scrollTo(W)},F=(w,S)=>{if(J.content.setAttribute("aria-activedescendant",`${U}-item-${w}`),S)T(w);j.forceRender()},L=(w)=>{H=w,V=!0,F(w,!0);let S=N(w);if(S)A.id=S.id,A.index=w,Z.emit("focus:change",A),_(`Item ${w+1} of ${k()}`)},R=(w,S)=>{if(H=w,S)V=!0;let P=N(w);if(P&&B===P.id)B=void 0,c=-1;else B=P?.id,c=P?w:-1;if(F(w,S),B!==void 0&&P&&B===P.id)O.selected[0]=B,O.selected.length=1,O.items[0]=P,O.items.length=1,_(`Selected, item ${w+1} of ${k()}`);else O.selected.length=0,O.items.length=0,_("Deselected");Z.emit("selection:change",O)},b=()=>{if($.destroyed)return;if(!J.content.matches(":focus-visible"))return;let w=k();if(w===0)return;let S=H>=0?Math.min(H,w-1):0;S=D(S,1,w),L(S)},X=(w)=>{if($.destroyed)return;let S=w.relatedTarget;if(S&&J.root.contains(S))return;V=!1,J.content.removeAttribute("aria-activedescendant"),j.forceRender()};J.content.addEventListener("focusin",b),J.content.addEventListener("focusout",X),j.registerKeydownHandler((w)=>{if($.destroyed)return;let S=k();if(S===0)return;let P=H,p=P;if(w.key===" "||w.key==="Enter"){if(P>=0){let r=N(P);if(r&&!r.__groupHeader)R(P,!0)}w.preventDefault();return}let u=j.getNavConfig();if(u.navigate)switch(w.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":p=u.navigate(P,w.key,S);break;default:return}else{let r=u.ud||1,l=u.lr,z=q.axis.primary==="x";switch(w.key){case"ArrowUp":if(z&&!l)return;p=P-(z?l:r);break;case"ArrowDown":if(z&&!l)return;p=P+(z?l:r);break;case"ArrowLeft":if(!z&&!l)return;p=P-(z?r:l);break;case"ArrowRight":if(!z&&!l)return;p=P+(z?r:l);break;case"PageUp":case"PageDown":{let y=Y.getSize(Math.max(0,u.scrollIndex?u.scrollIndex(P):P)),K=Math.max(1,Math.floor($.containerSize/y))*r;p=w.key==="PageUp"?P-K:P+K;break}case"Home":p=0;break;case"End":p=S-1;break;default:return}}if(p<0)p=0;else if(p>=S)p=S-1;if(w.preventDefault(),p=D(p,p>=P?1:-1,S),p!==P)L(p)}),j.registerClickHandler((w)=>{if($.destroyed)return;let S=w.target.closest("[data-index]");if(!S)return;let P=parseInt(S.dataset.index??"-1",10);if(P<0)return;let p=N(P);if(!p||p.__groupHeader)return;V=!1,J.content.focus({preventScroll:!0}),R(P,!1)}),j.registerDestroyHandler(()=>{J.content.removeEventListener("focusin",b),J.content.removeEventListener("focusout",X)})}}}var c2=(j,J,q)=>{if(String(q).startsWith(f2))return!1;let Y=f2+J;if(j.has(Y))return j.delete(Y),j.add(q),!0;return!1},K1=(j)=>({selected:new Set(j??[]),focusedIndex:-1,focusVisible:!1});function u2(j,J,q,Y){if(q===0)return;let $=Y?-J:J,Z=j.focusedIndex+$;if(Z<0)Z=0;if(Z>=q)Z=q-1;j.focusedIndex=Z}function e2(j){return Array.from(j)}var c1={preventScroll:!0};function V0(j){let J=j?.mode??"single",q=j?.followFocus??!1,Y=j?.focusOnClick??!1,$,Z,U,G,H,V,B,c,N=-1,k=new Map,A=null,O=null,_=null,D=null,T,F=!1;function L(K){if(F)return;F=!0,A=K.getMethod("_layoutToDataIndex")??null,O=K.getMethod("_dataToLayoutIndex")??null,_=K.getMethod("_isGroupHeader")??null,D=K.getMethod("_scrollItemIntoView")??null;let W=K.getMethod("getGroupLayout");if(W){let E=W();T=()=>E.totalEntries}}let R=(K)=>A?A(K):K,b=(K)=>{let W=R(K);return W>=0?Z(W):void 0},X=(K,W,E)=>{if(!_)return K;let I=K;while(I>=0&&I<E){if(!_(I))return I;I+=W}I=K-W;while(I>=0&&I<E){if(!_(I))return I;I-=W}return K};function w(K,W){if(J==="single")$.selected.clear(),k.clear();if($.selected.add(K),W)k.set(K,W)}function S(K,W){if($.selected.has(K))$.selected.delete(K),k.delete(K);else w(K,W)}function P(){$.selected.clear(),k.clear()}function p(K){$.selected.delete(K),k.delete(K)}function u(K,W){let E=Math.min(K,W),I=Math.max(K,W);for(let i=E;i<=I;i++){let s=Z(i);if(s)$.selected.add(s.id),k.set(s.id,s)}}function r(){let K=B.totalItems;for(let W=0;W<K;W++){let E=Z(W);if(E)$.selected.add(E.id),k.set(E.id,E)}}function l(){if($.selected.size===0)return[];if(k.size>=$.selected.size){let I=[];for(let i of $.selected){let s=k.get(i);if(s)I.push(s)}if(I.length===$.selected.size)return I}let K=[],W=new Set($.selected),E=B.totalItems;for(let I=0;I<E&&W.size>0;I++){let i=Z(I);if(i&&W.has(i.id))K.push(i),k.set(i.id,i),W.delete(i.id)}return K}function z(){U(),G.emit("selection:change",{selected:e2($.selected),items:l()})}let y=null,v=-1;return{name:"selection",priority:50,setup(K){$=K1(j?.initial),Z=K.getItem.bind(K),U=K.forceRender.bind(K),G=K.emitter,H=K.dom;let W=K.config;if(V=K.sizeCache,B=K.getState(),c=K.scrollTo.bind(K),T=()=>B.totalItems,J==="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 E=W.classPrefix;K.setItemStateFn((Q,M)=>{if(L(K),$.selected.size>0){let C=R(Q),x=C>=0?Z(C):void 0,o=x?.id;if(o!==void 0)if($.selected.has(o))M.selected=!0;else if(c2($.selected,C,o))M.selected=!0,k.delete(f2+C),k.set(o,x);else M.selected=!1;else M.selected=!1}else M.selected=!1;M.focused=$.focusVisible&&$.focusedIndex===Q}),K.registerMethod("_getSelectedIds",()=>$.selected),K.registerMethod("_getFocusedIndex",()=>$.focusVisible?$.focusedIndex:-1),H.root.classList.add(`${E}--selectable`);let I=(Q)=>{y=null,v=-1;let M=Q.target.closest("[data-index]");if(!M)return!1;let C=parseInt(M.dataset.index??"-1",10);if(C<0)return!1;let x=R(C);if(x<0)return!1;let o=Z(x);if(!o)return!1;return y=o,v=C,!0},i=(Q)=>{if(Q<0)return;if(D){D(Q);return}let M=K.getNavConfig(),C=M.scrollIndex?M.scrollIndex(Q):Q,x=V.getOffset(C),o=V.getSize(C),h=B.containerSize,m=B.scrollPosition;if(x<m)c(x);else if(x+o>m+h)c(x-h+o)},s=()=>{if(B.destroyed)return;if(L(K),!H.content.matches(":focus-visible")&&!H.root.matches(":focus-visible"))return;let Q=T();if(Q===0)return;let M=$.focusedIndex>=0?Math.min($.focusedIndex,Q-1):0;M=X(M,1,Q),$.focusedIndex=M,$.focusVisible=!0,H.content.setAttribute("aria-activedescendant",`${E}-item-${M}`),i(M),U()};H.root.addEventListener("focusin",s);let g=(Q)=>{if(B.destroyed)return;let M=Q.relatedTarget;if(M&&H.root.contains(M))return;$.focusVisible=!1,U(),H.content.removeAttribute("aria-activedescendant")};if(H.root.addEventListener("focusout",g),K.registerDestroyHandler(()=>{H.root.removeEventListener("focusin",s),H.root.removeEventListener("focusout",g)}),K.registerClickHandler((Q)=>{if(L(K),!I(Q))return;if(J==="multiple"&&Q.shiftKey&&$.focusedIndex>=0){let M=N>=0?N:$.focusedIndex,C=R(M),x=R(v);if(C>=0&&x>=0)u(C,x);$.focusedIndex=v,$.focusVisible=Y,N=v,z();return}$.focusedIndex=v,$.focusVisible=Y,N=v,H.content.focus(c1),S(y.id,y),z()}),W.interactive)K.registerKeydownHandler((Q)=>{L(K);let M=T();if(M===0)return;let C=K.getNavConfig(),x=$.focusedIndex,o=!1,h=!1;if(C.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 a=C.navigate($.focusedIndex,Q.key,M);if(a!==$.focusedIndex)$.focusedIndex=Math.max(0,Math.min(a,M-1));$.focusVisible=!0,o=!0}else switch(Q.key){case"ArrowUp":{let a=C.ud||1,e=C.lr,t=W.axis.primary==="x";if(t&&!e)break;u2($,-(t?e:a),M,W.reverse),$.focusVisible=!0,o=!0;break}case"ArrowDown":{let a=C.ud||1,e=C.lr,t=W.axis.primary==="x";if(t&&!e)break;u2($,t?e:a,M,W.reverse),$.focusVisible=!0,o=!0;break}case"ArrowLeft":{let a=C.ud||1,e=C.lr,t=W.axis.primary==="x";if(!t&&!e)break;u2($,-(t?a:e),M,W.reverse),$.focusVisible=!0,o=!0;break}case"ArrowRight":{let a=C.ud||1,e=C.lr,t=W.axis.primary==="x";if(!t&&!e)break;u2($,t?a:e,M,W.reverse),$.focusVisible=!0,o=!0;break}case"Home":if(M>0)$.focusedIndex=0;$.focusVisible=!0,o=!0;break;case"End":if(M>0)$.focusedIndex=M-1;$.focusVisible=!0,o=!0;break;case"PageUp":case"PageDown":{let a=C.ud||1,e=Math.max(0,$.focusedIndex),t=C.scrollIndex?C.scrollIndex(e):e,j2=V.getSize(t),K2=B.containerSize,_2=(j2>0?Math.max(1,Math.floor(K2/j2)):10)*a;if(A&&O){let W2=A($.focusedIndex),J2=Q.key==="PageUp"?-_2:_2,n=B.totalItems-1;$.focusedIndex=O(Math.max(0,Math.min(n,W2+J2)))}else u2($,Q.key==="PageUp"?-_2:_2,M);$.focusVisible=!0,o=!0;break}case" ":case"Enter":if(Q.key===" "&&Q.shiftKey&&J==="multiple"&&$.focusedIndex>=0){if(N>=0){let a=R(N),e=R($.focusedIndex);if(a>=0&&e>=0)u(a,e)}$.focusVisible=!0,h=!0,o=!0;break}if($.focusedIndex>=0){let a=b($.focusedIndex);if(a)S(a.id,a),N=$.focusedIndex;$.focusVisible=!0,h=!0,o=!0}break;case"a":if((Q.ctrlKey||Q.metaKey)&&J==="multiple"){if($.selected.size===B.totalItems)P();else r();$.focusVisible=!0,h=!0,o=!0}break;case"Delete":case"Backspace":if($.selected.size>0)G.emit("delete",{selected:e2($.selected),items:l()}),o=!0;break}if($.focusedIndex!==x&&_){let a=$.focusedIndex>x?1:-1;$.focusedIndex=X($.focusedIndex,a,M)}let m=$.focusedIndex!==x;if(Q.shiftKey&&J==="multiple"&&!h&&m){if(Q.key==="ArrowUp"||Q.key==="ArrowDown"||Q.key==="ArrowLeft"||Q.key==="ArrowRight"){let t=b($.focusedIndex);if(t)S(t.id,t);N=$.focusedIndex,h=!0}if((Q.ctrlKey||Q.metaKey)&&(Q.key==="Home"||Q.key==="End")){let t=R(x>=0?x:$.focusedIndex),j2=R($.focusedIndex);if(t>=0&&j2>=0)u(t,j2);N=$.focusedIndex,h=!0}}if(q&&J==="single"&&!h&&m&&$.focusedIndex>=0){let a=b($.focusedIndex);if(a)w(a.id,a);h=!0}if(o){if(Q.preventDefault(),m&&$.focusedIndex>=0)i($.focusedIndex),H.content.setAttribute("aria-activedescendant",`${E}-item-${$.focusedIndex}`);if(h)z();else if(m){if(U(),$.focusedIndex>=0){let a=b($.focusedIndex);if(a)G.emit("focus:change",{id:a.id,index:$.focusedIndex})}}}});K.registerMethod("select",(...Q)=>{for(let M of Q)w(M);z()}),K.registerMethod("deselect",(...Q)=>{for(let M of Q)p(M);z()}),K.registerMethod("toggleSelect",(Q)=>{S(Q),z()}),K.registerMethod("selectAll",()=>{if(J!=="multiple")return;r(),z()}),K.registerMethod("clearSelection",()=>{P(),z()}),K.registerMethod("getSelected",()=>{return e2($.selected)}),K.registerMethod("getSelectedItems",()=>{return l()}),K.registerMethod("selectNext",()=>{L(K);let Q=T();if(Q===0)return;if(u2($,1,Q,W.reverse),_)$.focusedIndex=X($.focusedIndex,1,Q);let M=b($.focusedIndex);if(M)w(M.id,M);z()}),K.registerMethod("selectPrevious",()=>{L(K);let Q=T();if(Q===0)return;if(u2($,-1,Q,W.reverse),_)$.focusedIndex=X($.focusedIndex,-1,Q);let M=b($.focusedIndex);if(M)w(M.id,M);z()}),K.registerMethod("_seedSelection",(Q)=>{for(let M of Q)$.selected.add(M)}),K.registerMethod("_getFocusedId",()=>{if($.focusedIndex<0)return;return b($.focusedIndex)?.id}),K.registerMethod("_focusById",(Q)=>{let M=B.totalItems;for(let C=0;C<M;C++){let x=Z(C);if(x&&x.id===Q){let o=O?O(C):C;$.focusedIndex=o,G.emit("focus:change",{id:Q,index:o});return}}})},destroy(){k.clear()}}}var $0=(j)=>j==null?0:typeof j==="function"?j():j;function M0(j){let J=j?.scrollPadding,q,Y;return{name:"page",priority:5,setup($){let{dom:Z,sizeCache:U,config:G,emitter:H}=$,V=G.axis.primary==="x",B=window,c=$.getState();if($.disableDefaultScroll(),$.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(`${G.classPrefix}-viewport--custom-scrollbar`),$.setScrollFns(()=>{let D=Z.viewport.getBoundingClientRect();return Math.max(0,V?-D.left:-D.top)},(D)=>{let T=Z.viewport.getBoundingClientRect(),F=(V?T.left+B.scrollX:T.top+B.scrollY)+D;if(V)B.scrollTo({left:F,top:B.scrollY,behavior:"instant"});else B.scrollTo({left:B.scrollX,top:F,behavior:"instant"})}),c.containerSize=V?B.innerWidth:B.innerHeight,c.crossSize=V?B.innerHeight:B.innerWidth;let N=null,k=()=>{let D=Z.viewport.getBoundingClientRect(),T=Math.max(0,V?-D.left:-D.top);if(c.prevScrollPosition=c.scrollPosition,c.scrollPosition=T,c.scrollDirection=T>c.prevScrollPosition?1:T<c.prevScrollPosition?-1:0,$.onScrollFrame(),N!==null)clearTimeout(N);N=setTimeout(()=>{N=null,$.onScrollIdle()},150)};B.addEventListener("scroll",k,{passive:!0}),Y=()=>B.removeEventListener("scroll",k);let{innerWidth:A,innerHeight:O}=B,_=()=>{let{innerWidth:D,innerHeight:T}=B;if((V?Math.abs(D-A):Math.abs(T-O))<1)return;A=D,O=T,c.containerSize=V?D:T,c.crossSize=V?T:D,$.forceRender(),H.emit("resize",{width:D,height:T})};if(B.addEventListener("resize",_),q=()=>B.removeEventListener("resize",_),J)$.setScrollToPosFn((D,T,F,L,R)=>{let b=$0(V?J.left:J.top),X=$0(V?J.right:J.bottom);if(L===0)return 0;let w=Math.max(0,Math.min(D,L-1)),S=T.getOffset(w),P=T.getSize(w),p=T.getTotalSize(),u=Math.max(0,p-F+X),r;switch(R){case"center":r=S-b-(F-b-X-P)/2;break;case"end":r=S-F+P+X;break;default:r=S-b}return Math.max(-b,Math.min(r,u))}),$.registerMethod("_scrollItemIntoView",(D)=>{let T=V?B.innerWidth:B.innerHeight,F=$0(V?J.left:J.top),L=$0(V?J.right:J.bottom),R=Z.viewport.getBoundingClientRect(),b=V?B.scrollX:B.scrollY,X=V?R.left:R.top,w=X+b,S=U.getOffset(D),P=U.getSize(D),p=X+S,u=T-L,r=b;if(p<F)r=w+S-F;else if(p+P>u)r=w+S+P-u;if(r!==b)if(V)B.scrollTo({left:r,top:B.scrollY,behavior:"instant"});else B.scrollTo({left:B.scrollX,top:r,behavior:"instant"})});$.registerDestroyHandler(()=>{if(Y?.(),q?.(),N!==null)clearTimeout(N)})},destroy(){Y?.(),q?.(),Y=void 0,q=void 0}}}var l1=(j)=>{try{let J=sessionStorage.getItem(j);if(!J)return;return JSON.parse(J)}catch{return}};function _0(j){let J=j?.autoSave,q=J?l1(J):j?.restore,Y=!1,$=null;return{name:"snapshots",priority:50,setup(Z){let{sizeCache:U,emitter:G}=Z,H=Z.getState(),V=()=>{let{scrollPosition:N,totalItems:k}=H,O=Z.getMethod("getSelected")?.();if(k===0){let X={index:0,offsetInItem:0,total:0};if(O?.length)X.selectedIds=O;return X}let _,D;if(H.isCompressed&&H.compressionRatio!==1){let X=H.totalSize,S=N/X*k;_=Math.max(0,Math.min(Math.floor(S),k-1)),D=(S-_)*U.getSize(_)}else _=U.indexAtOffset(N),D=N-U.getOffset(_);D=Math.max(0,D);let T={index:_,offsetInItem:D,total:k,scrollTop:N},F=U.getSize(_);if(F)T.offsetRatio=D/F;let L=Z.getMethod("_layoutToDataIndex");if(L){let X=L(_);if(X<0){for(let w=_+1;w<k;w++)if(X=L(w),X>=0)break}if(X>=0)T.dataIndex=X}let R=Z.getMethod("_getTotal");if(R)T.dataTotal=R();if(O?.length)T.selectedIds=O;let b=Z.getMethod("_getFocusedId");if(b){let X=b();if(X!==void 0)T.focusedId=X}return T};Z.registerMethod("getScrollSnapshot",V);let B=(N,k=!0)=>{let{index:A,offsetInItem:O,selectedIds:_,focusedId:D}=N,T=H.totalItems,F=N.dataTotal??N.total;if(T===0&&F&&F>0){let z=Z.getMethod("_setTotal");if(z)z(F),T=H.totalItems;U.rebuild(T);let y=Z.getMethod("_updateCompressionMode");if(y)y();if(!H.isCompressed)Z.updateContentSize(U.getTotalSize()),H.totalSize=U.getTotalSize()}if(T===0)return;if(!Number.isFinite(A)||!Number.isFinite(O))return;if(U.getTotal()!==T){U.rebuild(T);let z=Z.getMethod("_updateCompressionMode");if(z)z();if(!H.isCompressed)Z.updateContentSize(U.getTotalSize()),H.totalSize=U.getTotalSize()}let R=Z.getMethod("_dataToLayoutIndex"),b=A;if(N.dataIndex!==void 0&&N.dataIndex>=0)b=R?R(N.dataIndex):N.dataIndex;else if(R)b=R(A);let X=Math.max(0,Math.min(b,T-1)),w=U.getSize(X),S=N.offsetRatio!==void 0?N.offsetRatio*w:Math.min(O,w),P;if(H.isCompressed&&H.compressionRatio!==1){let z=Z.getMethod("_getTotal")?.(),y=z!==void 0&&N.dataTotal===z;if(N.scrollTop!==void 0&&(N.total===T||y))P=N.scrollTop;else{let v=w?S/w:0;P=(X+v)/T*H.totalSize}}else P=U.getOffset(X)+S;let p=Math.max(0,H.totalSize-H.containerSize);P=Math.max(0,Math.min(P,p));let u=P===N.scrollTop;if(N.dataIndex!==void 0&&N.dataIndex>=0){let z=w?S/w:0;Z.registerMethod("_restoreAnchor",{dataIndex:N.dataIndex,fraction:z,skipAdjust:u}),Z.registerMethod("_suppressSave",1)}if(Z.scrollTo(P),k&&_?.length){let z=Z.getMethod("select");if(z)z(..._)}let r=Z.getMethod("loadVisibleRange"),l=()=>{if(D===void 0)return;let z=Z.getMethod("_focusById");if(z)z(D)};if(r){let z=0,y=()=>{if(H.containerSize>0){if(Math.abs(H.scrollPosition-P)>1)Z.scrollTo(P);r().then(l)}else if(++z<10)requestAnimationFrame(y)};requestAnimationFrame(y)}else{let z=Z.getMethod("reload");if(z)requestAnimationFrame(()=>{z().then(l)});else requestAnimationFrame(l)}};Z.registerMethod("restoreScroll",B);let c=!!(q&&J);if(Z.registerDestroyHandler(()=>{Y=!0}),J){$=()=>{if(Y||c||Z.getMethod("_suppressSave"))return;let T=V();try{sessionStorage.setItem(J,JSON.stringify(T))}catch{}},Z.registerMethod("_saveSnapshot",$);let N=0,k=()=>{if(N)return;N=requestAnimationFrame(()=>{if(N=0,$)$()})};G.on("selection:change",k),G.on("focus:change",k);let A=0,O=()=>{if(A=0,$)$()},_=()=>{if(A)clearTimeout(A);A=setTimeout(O,300)};G.on("scroll",_);let D=()=>{$?.()};if(window.addEventListener("beforeunload",D),Z.registerDestroyHandler(()=>{if(N)cancelAnimationFrame(N);if(A)clearTimeout(A);window.removeEventListener("beforeunload",D)}),q&&q.total&&q.total>0){let T=Z.getMethod("_cancelAutoLoad");if(T)T();let F=Z.getMethod("_setTotal");if(F)F(q.total)}}if(q){let N=!0;if(q.selectedIds?.length){let k=Z.getMethod("_seedSelection");if(k)k(q.selectedIds),N=!1}queueMicrotask(()=>{if(B(q,N),c=!1,$)$()})}},hooks:{onIdle(){if($&&!Y)$()}},destroy(){Y=!0,$=null}}}function U1(j,J){if(J===!1)return null;return{duration:Math.min(J?.duration??j.duration,1000),easing:J?.easing??j.easing}}function G0(j){let J=j?.duration??200,q=j?.easing??"cubic-bezier(0.2, 0, 0, 1)",Y={duration:J,easing:q},$=U1(Y,j?.remove),Z=U1(Y,j?.insert),U=null,G=null;return{name:"transition",conflicts:["grid","table","masonry"],priority:45,setup(H){let{sizeCache:V,emitter:B}=H,c=H.config,N=H.dom,k=H.getState(),A=c.reverse?"bottom center":"top center",O=c.axis.primary==="x"?"translateX":"translateY",_=H.getMethod("_dataToLayoutIndex")??null,D=(L)=>_?_(L):L,T=(L)=>{let R=String(L).replace(/"/g,"\\\""),b=N.content.querySelector(`[data-id="${R}"]`),X=b?parseInt(b.dataset.index??"-1",10):-1;return{el:b,layoutIndex:X}},F=()=>{let L=N.content.children;for(let R=0;R<L.length;R++)L[R].style.transition="none";N.content.offsetHeight;for(let R=0;R<L.length;R++)L[R].style.transition=""};if($){let L=(b)=>{if(U)U();let X=typeof document<"u"?document.activeElement:null,w=X&&N.content.contains(X)?parseInt(X.dataset?.index??"-1",10):-1,S=T(b),P=S.layoutIndex,p=S.el,u=P>=0?V.getSize(P):0,r=P>=0?V.getOffset(P):0;if(!p||P<0){if(H.removeItemById(b)<0)return!1;if(H.forceRender(),F(),B.emit("data:change",{type:"remove",id:b}),w>=0){let x=k.totalItems;if(x>0)H.getRenderedElement(Math.min(w,x-1))?.focus()}return B.emit("remove:end",{id:b}),!0}let l=p.cloneNode(!0);l.style.pointerEvents="none",l.style.overflow="hidden",l.removeAttribute("data-index"),l.removeAttribute("data-id"),l.removeAttribute("id"),l.removeAttribute("aria-selected"),l.classList.remove(`${c.classPrefix}-item--selected`);let z=c.axis.primary==="x"?"scrollLeft":"scrollTop",y=N.viewport[z];if(H.removeItemById(b)<0)return!1;H.forceRender(),F(),B.emit("data:change",{type:"remove",id:b});let K=y-N.viewport[z];l.style.zIndex="1",N.content.appendChild(l);let W=$,E={duration:W.duration,easing:W.easing},I=[],i=Math.round(r-K);I.push(l.animate([{transform:`${O}(${i}px) scaleY(1)`,opacity:1,transformOrigin:A},{transform:`${O}(${Math.round(r)}px) scaleY(0)`,opacity:0,transformOrigin:A}],E));let s=K>0,g=N.content.children;for(let C=0;C<g.length;C++){let x=g[C];if(x===l)continue;let o=parseInt(x.dataset?.index??"-1",10);if(o<0||!s&&o<P)continue;let h=V.getOffset(o),m=o>=P?Math.round(h+u-K):Math.round(h-K),a=Math.round(h);if(m===a)continue;I.push(x.animate([{transform:`${O}(${m}px)`},{transform:`${O}(${a}px)`}],E))}let Q=!1,M=()=>{if(Q)return;Q=!0,U=null,l.remove();for(let C of I)if(C.playState!=="finished")C.cancel();if(w>=0){let C=k.totalItems;if(C>0)H.getRenderedElement(Math.min(w,C-1))?.focus()}B.emit("remove:end",{id:b})};return U=M,Promise.all(I.map((C)=>C.finished)).then(M,M),setTimeout(M,W.duration+50),!0},R=(b)=>{if(b.length===0)return 0;if(b.length===1)return L(b[0])?1:0;if(U)U();if(G)G();let X=typeof document<"u"?document.activeElement:null,w=X&&N.content.contains(X)?parseInt(X.dataset?.index??"-1",10):-1,S=[];for(let Q of b){let M=T(Q);S.push({id:Q,layoutIndex:M.layoutIndex,el:M.el,size:M.layoutIndex>=0?V.getSize(M.layoutIndex):0,offset:M.layoutIndex>=0?V.getOffset(M.layoutIndex):0})}S.sort((Q,M)=>M.layoutIndex-Q.layoutIndex);let P=[];for(let Q of S){if(!Q.el||Q.layoutIndex<0)continue;let M=Q.el.cloneNode(!0);M.style.pointerEvents="none",M.style.overflow="hidden",M.removeAttribute("data-index"),M.removeAttribute("data-id"),M.removeAttribute("id"),M.removeAttribute("aria-selected"),M.classList.remove(`${c.classPrefix}-item--selected`),P.push({clone:M,offset:Q.offset,size:Q.size,layoutIndex:Q.layoutIndex})}let p=new Map,u=N.content.children;for(let Q=0;Q<u.length;Q++){let M=u[Q],C=M.dataset?.id,x=parseInt(M.dataset?.index??"-1",10);if(C&&x>=0)p.set(C,V.getOffset(x))}let r=c.axis.primary==="x"?"scrollLeft":"scrollTop",l=N.viewport[r],z=[];for(let Q of S)if(H.removeItemById(Q.id)>=0)z.push(Q.id);if(z.length===0)return 0;H.forceRender(),F();for(let Q of z)B.emit("data:change",{type:"remove",id:Q});if(P.length===0){if(w>=0){let Q=k.totalItems;if(Q>0)H.getRenderedElement(Math.min(w,Q-1))?.focus()}for(let Q of z)B.emit("remove:end",{id:Q});return z.length}let y=l-N.viewport[r],v=$,K={duration:v.duration,easing:v.easing},W=[];P.sort((Q,M)=>Q.layoutIndex-M.layoutIndex);let E=0;for(let Q of P){Q.clone.style.zIndex="1",N.content.appendChild(Q.clone);let M=Math.round(Q.offset-y),C=Math.round(Q.offset-E);W.push(Q.clone.animate([{transform:`${O}(${M}px) scaleY(1)`,opacity:1,transformOrigin:A},{transform:`${O}(${C}px) scaleY(0)`,opacity:0,transformOrigin:A}],K)),E+=Q.size}let I=new Set(P.map((Q)=>Q.clone)),i=N.content.children;for(let Q=0;Q<i.length;Q++){let M=i[Q];if(I.has(M))continue;let C=M.dataset?.id,x=parseInt(M.dataset?.index??"-1",10);if(!C||x<0)continue;let o=p.get(C);if(o===void 0)continue;let h=V.getOffset(x),m=Math.round(o-y),a=Math.round(h);if(m===a)continue;W.push(M.animate([{transform:`${O}(${m}px)`},{transform:`${O}(${a}px)`}],K))}let s=!1,g=()=>{if(s)return;s=!0,U=null;for(let{clone:Q}of P)Q.remove();for(let Q of W)if(Q.playState!=="finished")Q.cancel();if(w>=0){let Q=k.totalItems;if(Q>0)H.getRenderedElement(Math.min(w,Q-1))?.focus()}for(let Q of z)B.emit("remove:end",{id:Q})};return U=g,Promise.all(W.map((Q)=>Q.finished)).then(g,g),setTimeout(g,v.duration+50),z.length};H.registerMethod("removeItem",L),H.registerMethod("removeItems",R)}if(Z){let L=(R,b)=>{if(G)G();if(U)U();let X=b??0,w=new Map,S=N.content.children;for(let Q=0;Q<S.length;Q++){let M=S[Q],C=M.dataset?.id,x=parseInt(M.dataset?.index??"-1",10);if(C&&x>=0)w.set(C,V.getOffset(x))}let P=c.axis.primary==="x"?"scrollLeft":"scrollTop",p=c.axis.primary==="x"?"scrollWidth":"scrollHeight",u=c.axis.primary==="x"?"clientWidth":"clientHeight",r=N.viewport[P],l=N.viewport[p]-N.viewport[u],z=r>=l-1;H.insertItemAt(R,X),H.forceRender(),F(),B.emit("data:change",{type:"insert",id:R.id});let y=N.viewport[P]-r,v=D(X);if(c.reverse&&y===0&&z){N.viewport[P]=N.viewport[p]-N.viewport[u];let Q=N.viewport[P];if(k.prevScrollPosition=k.scrollPosition,k.scrollPosition=Q,y=Q-r,y>0)H.forceRender(),F()}let K=H.getRenderedElement(v),W=Z,E={duration:W.duration,easing:W.easing},I=[];if(K){let Q=V.getOffset(v);I.push(K.animate([{transform:`${O}(${Math.round(Q)}px) scaleY(0)`,opacity:0,transformOrigin:A},{transform:`${O}(${Math.round(Q)}px) scaleY(1)`,opacity:1,transformOrigin:A}],E))}let i=N.content.children;for(let Q=0;Q<i.length;Q++){let M=i[Q];if(M===K)continue;let C=M.dataset?.id,x=parseInt(M.dataset?.index??"-1",10);if(!C||x<0)continue;let o=w.get(C);if(o===void 0)continue;let h=V.getOffset(x),m=Math.round(o+y),a=Math.round(h);if(m===a)continue;I.push(M.animate([{transform:`${O}(${m}px)`},{transform:`${O}(${a}px)`}],E))}if(I.length===0)return;let s=!1,g=()=>{if(s)return;s=!0,G=null;for(let Q of I)if(Q.playState!=="finished")Q.cancel()};G=g,Promise.all(I.map((Q)=>Q.finished)).then(g,g),setTimeout(g,W.duration+50)};H.registerMethod("insertItem",L)}},destroy(){if(U)U();if(G)G()}}}function X0(j){let J=j?.gap??0,q=null,Y=null,$,Z,U,G,H=new Map,V=new WeakMap,B=0,c=!1,N=2;function k(D){return H.get(D)??G}function A(){let D=Y.dom.viewport,T=D.scrollHeight-D.clientHeight;return T>0&&$.scrollPosition>=T-N}function O(){let D=Y.dom.viewport;D.scrollHeight;let T=D.scrollHeight-D.clientHeight;if(T>$.scrollPosition)Y.scrollTo(T)}function _(){Y.updateContentSize(Y.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(D){if(Y=D,$=D.getState(),Z=D.config.axis.primary==="x",U=Z?"width":"height",J===0)J=D.config.gap;if(G=typeof D.rawSizeSpec==="function"?D.rawSizeSpec(0)+J:D.rawSizeSpec+J,D.setSizeConfig(k),J>0){let T=D.sizeCache.getTotalSize;D.sizeCache.getTotalSize=()=>{let F=T();return F>0?F-J:0}}q=new ResizeObserver((T)=>{if($.destroyed||!Y)return;let F=!1,L=$.startIndex;for(let w of T){let S=w.target,P=V.get(S);if(P===void 0)continue;if(S.getAttribute("data-index")!==String(P)){q.unobserve(S);continue}if(H.has(P))continue;let p=w.borderBoxSize[0];if(!p)continue;let u=Z?p.inlineSize:p.blockSize;if(u<=0)continue;let r=u+J,l=G;if(H.set(P,r),F=!0,P<L&&r!==l)B+=r-l;q.unobserve(S),S.style[U]=`${u}px`}if(!F)return;let R=A();if(D.rebuildSizeCache(),B)D.scrollTo($.scrollPosition+B),B=0;let b=$.scrollDirection!==0,X=$.totalItems>0&&$.prevRangeEnd>=$.totalItems-1;if(R||X||!b){if(_(),c=!1,R)O()}else c=!0;D.forceRender()}),D.registerMethod("isMeasured",(T)=>H.has(T)),D.registerMethod("setMeasuredSize",(T,F)=>{H.set(T,F)}),D.registerMethod("getMeasuredCount",()=>H.size),D.registerDestroyHandler(()=>{if(q)q.disconnect(),q=null})},hooks:{onCommit(D){if(!q||!Y)return;for(let T=0;T<D.visibleCount;T++){let F=D.visibleIndices[T];if(H.has(F))continue;let L=Y.getRenderedElement(F);if(!L)continue;L.style[U]="",V.set(L,F),q.observe(L)}},onIdle(){if(!c||!Y)return;let D=A();if(_(),c=!1,D)O(),Y.forceRender()}},destroy(){if(q)q.disconnect(),q=null;H.clear(),Y=null}}}var B1=(j)=>{let J=Math.max(1,Math.floor(j.columns)),q=j.gap??0,Y=j.containerSize,$=0,Z=[],U=()=>{let O=(J-1)*q;$=Math.max(0,(Y-O)/J),Z=Array(J);let _=$+q;for(let D=0;D<J;D++)Z[D]=D*_};U();let G=[],H=0,V=[],B=(O,_)=>{if(O<=0)return H=0,G=[],[];let D=Array(J).fill(0),T=Array(J);for(let R=0;R<J;R++)T[R]=[];let F=Array(O);for(let R=0;R<O;R++){let b=0,X=D[0];for(let P=1;P<J;P++){let p=D[P];if(p<X)X=p,b=P}let w=_(R),S=D[b];F[R]={index:R,x:Z[b],y:S,lane:b,size:w,crossSize:$},T[b].push(R),D[b]=S+w+q}G=T;let L=0;for(let R=0;R<J;R++){let b=D[R],X=b>0?b-q:0;if(X>L)L=X}return H=L,F},c=(O)=>{if(O.length===0)return H;if(H)return H;let _=Array(J).fill(0);for(let T of O){let F=T.y+T.size,L=_[T.lane];if(F>L)_[T.lane]=F}let D=0;for(let T=0;T<J;T++)if(_[T]>D)D=_[T];return D},N=(O,_,D)=>{if(O.length===0||D<=_)return V.length=0,V;if(G.length===0||G.length!==J)return k(O,_,D);V.length=0;for(let T=0;T<J;T++){let F=G[T],L=F.length;if(!L)continue;let R=0,b=L;while(R<b){let X=R+b>>>1,w=O[F[X]];if(w.y+w.size<=_)R=X+1;else b=X}for(let X=R;X<L;X++){let w=O[F[X]];if(w.y>=D)break;V.push(w)}}return V},k=(O,_,D)=>{V.length=0;for(let T of O)if(T.y+T.size>_&&T.y<D)V.push(T);return V};return{get columns(){return J},get gap(){return q},get containerSize(){return Y},update:(O)=>{let _=!1;if(O.columns!==void 0){let D=Math.max(1,Math.floor(O.columns));if(D!==J)J=D,_=!0}if(O.gap!==void 0&&O.gap!==q)q=O.gap,_=!0;if(O.containerSize!==void 0&&O.containerSize!==Y)Y=O.containerSize,_=!0;if(_)U()},calculateLayout:B,getTotalSize:c,getVisibleItems:N}};var W1=(j,J,q)=>{let Y=Array.from(J).sort((U,G)=>U-G);if(Y.length<=1)return;let $=[];for(let U=0;U<Y.length;U++){let G=q(Y[U]);if(G)$.push(G)}if($.length<=1)return;let Z=j.firstChild;for(let U=0;U<$.length;U++){let G=$[U];if(G===Z)Z=Z.nextSibling;else j.insertBefore(G,Z)}};var r1=(j=200)=>{let J=[];return{acquire:()=>{let Z=J.pop();if(Z)return Z;let U=document.createElement("div");return U.setAttribute("role","option"),U},release:(Z)=>{if(Z.remove(),J.length<j)Z.className="",Z.textContent="",Z.removeAttribute("style"),Z.removeAttribute("data-index"),Z.removeAttribute("data-id"),Z.removeAttribute("data-lane"),J.push(Z)},clear:()=>{J.length=0}}},s1=1,N1=(j,J,q,Y=!1,$,Z,U,G)=>{let H=r1(),V=new Map,B=new Set,c=0,N="",k=-1,A={selected:!1,focused:!1},O=(l,z)=>{return A.selected=l,A.focused=z,A},_=`${q}-item ${q}-masonry-item`,D=`${q}-group-header`,T=`${q}-item--selected`,F=`${q}-item--focused`,L=(l,z)=>{if(typeof z==="string")l.innerHTML=z;else l.replaceChildren(z)},R=(l,z,y)=>{l.classList.toggle(T,z),l.classList.toggle(F,y)},b=(l,z)=>{if(Y)l.style.transform=`translate(${Math.round(z.y)}px, ${Math.round(z.x)}px)`;else l.style.transform=`translate(${Math.round(z.x)}px, ${Math.round(z.y)}px)`},X=(l,z)=>{if(Y)l.style.width=`${z.size}px`,l.style.height=`${z.crossSize}px`;else l.style.width=`${z.crossSize}px`,l.style.height=`${z.size}px`},w=(l,z,y,v,K)=>{let W=H.acquire(),E=z.__groupHeader,I=O(v,K);if(W.className=E?D:_,W.dataset.index=String(l),W.dataset.id=String(z.id),W.dataset.lane=String(y.lane),E)W.setAttribute("role","presentation"),W.removeAttribute("aria-selected"),W.removeAttribute("aria-setsize"),W.removeAttribute("aria-posinset"),W.removeAttribute("id");else if(G!==!1){if(W.setAttribute("role","option"),W.ariaSelected=String(v),Z)W.id=`${Z}-item-${l}`;if($){let s=$();if(s!==k)k=s,N=String(s);W.setAttribute("aria-setsize",N);let g=U?U(l):l+1;W.setAttribute("aria-posinset",String(g))}}else if(W.setAttribute("role","listitem"),W.removeAttribute("aria-selected"),$){let s=$();if(s!==k)k=s,N=String(s);W.setAttribute("aria-setsize",N);let g=U?U(l):l+1;W.setAttribute("aria-posinset",String(g))}X(W,y);let i=J(z,l,I);return L(W,i),R(W,v,K),b(W,y),{element:W,lastItemId:z.id,lastSelected:v,lastFocused:K,lastY:y.y,lastX:y.x,lastSize:y.size,lastCrossSize:y.crossSize,lastSeenFrame:c}},S=(l,z,y,v)=>{c++,B.clear();for(let W=0;W<z.length;W++)B.add(z[W].index);for(let[W,E]of V)if(B.has(W))E.lastSeenFrame=c;else if(c-E.lastSeenFrame>s1)H.release(E.element),V.delete(W);let K=null;for(let W=0;W<z.length;W++){let E=z[W],I=E.index,i=l(I);if(!i)continue;let s=y.has(i.id),g=I===v,Q=V.get(I);if(Q){let M=Q.lastItemId!==i.id,C=Q.lastSelected!==s,x=Q.lastFocused!==g,o=Q.lastY!==E.y||Q.lastX!==E.x,h=Q.lastSize!==E.size||Q.lastCrossSize!==E.crossSize;if(M){let m=O(s,g),a=J(i,I,m);if(L(Q.element,a),Q.element.dataset.id=String(i.id),Q.lastItemId=i.id,!i.__groupHeader){let t=U?U(I):I+1;Q.element.setAttribute("aria-posinset",String(t))}}if(M||C||x)R(Q.element,s,g),Q.element.ariaSelected=String(s),Q.lastSelected=s,Q.lastFocused=g;if(h)X(Q.element,E),Q.lastSize=E.size,Q.lastCrossSize=E.crossSize;if(o)b(Q.element,E),Q.lastY=E.y,Q.lastX=E.x}else{let M=w(I,i,E,s,g);if(!K)K=document.createDocumentFragment();K.appendChild(M.element),V.set(I,M)}}if(K)j.appendChild(K)},P=()=>{for(let l of V.values())H.release(l.element);V.clear(),j.innerHTML=""};return{render:S,getElement:(l)=>V.get(l)?.element,updateItemClasses:(l,z,y)=>{let v=V.get(l);if(!v)return;let K=v.lastSelected!==z,W=v.lastFocused!==y;if(K||W)R(v.element,z,y),v.lastSelected=z,v.lastFocused=y},sortDOM:()=>{W1(j,V.keys(),(l)=>V.get(l)?.element)},clear:P,destroy:()=>{P(),H.clear()}}};var a1=100,o1=new Set;function A0(j){if(!j.columns||j.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let J,q=null,Y,$=null,Z,U,G,H=[],V=-1,B=-1,c=!0,N=-1,k={columnWidth:0,columns:0,gap:0,containerWidth:0},A=[],O=(y)=>A[y],_=null,D=null,T=!1;function F(){if(T||!$)return;T=!0,_=$.getMethod("_getSelectedIds")??null,D=$.getMethod("_getFocusedIndex")??null}let L=[],R=new Int32Array(0),b=[];function X(){let y=J.columns,v=H.length;L=Array(y);for(let K=0;K<y;K++)L[K]=[];if(R.length<v)R=new Int32Array(v);for(let K=0;K<v;K++){let W=H[K],E=L[W.lane].length;L[W.lane].push(K),R[K]=E}b=Array(y);for(let K=0;K<y;K++){let W=L[K],E=new Float64Array(W.length);for(let I=0;I<W.length;I++){let i=H[W[I]];E[I]=i.y+i.size*0.5}b[K]=E}}function w(y,v){let K=y.length;if(!K)return-1;let W=0,E=K-1;while(W<E){let I=W+E>>1;if(y[I]<v)W=I+1;else E=I}if(W>0&&Math.abs(y[W-1]-v)<=Math.abs(y[W]-v))return W-1;return W}function S(y,v,K){let W=H[y];if(!W)return y;let E=W.lane,I=J.columns,i=R[y],s=L[E];switch(Z?v==="ArrowDown"?"ArrowRight":v==="ArrowUp"?"ArrowLeft":v==="ArrowRight"?"ArrowDown":v==="ArrowLeft"?"ArrowUp":v:v){case"ArrowDown":if(i+1<s.length)return s[i+1];return y;case"ArrowUp":if(i>0)return s[i-1];return y;case"ArrowRight":{if(E>=I-1)return y;let Q=E+1,M=W.y+W.size*0.5,C=L[Q];if(!C.length)return y;let x=w(b[Q],M);return x>=0?C[x]:y}case"ArrowLeft":{if(E<=0)return y;let Q=E-1,M=W.y+W.size*0.5,C=L[Q];if(!C.length)return y;let x=w(b[Q],M);return x>=0?C[x]:y}case"Home":return 0;case"End":return K-1;case"PageDown":{let Q=Y.containerSize,M=W.size>0?W.size:150,C=Math.max(1,Math.floor(Q/M)),x=Math.min(i+C,s.length-1);return s[x]}case"PageUp":{let Q=Y.containerSize,M=W.size>0?W.size:150,C=Math.max(1,Math.floor(Q/M)),x=Math.max(0,i-C);return s[x]}}return y}let P=null;function p(){if(j.size)return(y)=>j.size(y,k);if(P!==null&&typeof P==="function")return(y)=>P(y,k);return(y)=>$.sizeCache.getSize(y)}function u(){let{columns:y,gap:v}=J;k.containerWidth=J.containerSize,k.columns=y,k.gap=v,k.columnWidth=Math.max(0,(J.containerSize-(y-1)*v)/y)}function r(){if(!$)return;u();let y=Y.totalItems;H=J.calculateLayout(y,p()),N=y,X();let v=J.getTotalSize(H);$.updateContentSize(v)}function l(){if(Y.destroyed||!$||!q)return;if(Y.totalItems!==N)r();F();let{scrollPosition:y,containerSize:v}=Y;if(!c&&y===V&&v===B)return;if(V=y,B=v,c=!1,v<=0||H.length===0)return;let K=Math.max(0,y-G),W=y+v+G,E=J.getVisibleItems(H,K,W),I=_?.()??o1,i=D?.()??-1;A=$.getItems(),q.render(O,E,I,i);let s=E.length,g=s>0?E[0].index:0,Q=s>0?E[s-1].index:0;Y.prevRangeStart=g,Y.prevRangeEnd=Q,Y.renderPending=!1;let M=Math.min(s,Y.capacity);Y.visibleCount=M,Y.startIndex=g;for(let C=0;C<M;C++){let x=E[C];Y.visibleIndices[C]=x.index,Y.visibleOffsets[C]=x.y,Y.visibleSizes[C]=x.size}}function z(){if(Y.destroyed)return;r(),Y.prevRangeStart=-1,Y.prevRangeEnd=-1,Y.renderPending=!0,c=!0,l()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(y){if($=y,Y=y.getState(),P=y.rawSizeSpec,Z=y.config.axis.primary==="x",U=y.config.classPrefix,G=y.config.overscan*a1,y.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");let v=Y.crossSize;J=B1({columns:j.columns,gap:j.gap??0,containerSize:v}),q=N1(y.dom.content,y.template,U,Z,()=>Y.totalItems,void 0,void 0,y.config.interactive),y.dom.root.classList.add(`${U}--masonry`),y.setRenderFn(l,z),r(),y.registerMethod("getMasonryLayout",()=>J),y.registerMethod("updateMasonry",(K)=>{if(K.columns!==void 0&&K.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(K.gap!==void 0&&K.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let W={};if(K.columns!==void 0)W.columns=K.columns;if(K.gap!==void 0)W.gap=K.gap;J.update(W),q?.clear(),z()}),y.registerMethod("scrollToIndex",(K,W="start")=>{let E=H[K];if(!E)return;let I=typeof W==="string"?W:W.align??"start",i=typeof W==="object"?W.behavior:void 0,s=typeof W==="object"?W.duration:void 0,g=Y.containerSize,Q=J.getTotalSize(H),M=Math.max(0,Q-g),C=E.y;if(I==="center")C=E.y-g/2+E.size/2;else if(I==="end"){if(C=E.y-g+E.size,K>=Y.totalItems-1&&E.y+E.size>M)C=M}if(C=Math.max(0,Math.min(C,M)),i==="smooth"&&s&&s>0)y.smoothScrollTo(C,s);else y.scrollTo(C)}),y.registerMethod("_scrollItemIntoView",(K)=>{let W=H[K];if(!W)return;let{scrollPosition:E,containerSize:I}=Y,i=W.y,s=i+W.size;if(i<E)y.scrollTo(Math.max(0,i));else if(s>E+I)y.scrollTo(s-I)}),y.setNavConfig({total:()=>Y.totalItems,navigate:S}),y.registerDestroyHandler(()=>{q?.destroy(),q=null,y.dom.root.classList.remove(`${U}--masonry`)})},hooks:{onResize(y,v){if(!J||!$)return;let K=Y.crossSize;if(Math.abs(K-J.containerSize)<1)return;J.update({containerSize:K}),q?.clear(),z()},onIdle(){q?.sortDOM()}},destroy(){q?.destroy(),q=null,H=[],$=null}}}var V1=(j={})=>{let{chunkSize:J=100,maxCachedItems:q=5000,evictionBuffer:Y=200,onEvict:$}=j,Z=new Map,U=0,G=0,H=(v)=>{let K=Z.get(v);if(!K)K={items:Array(J),count:0,lastAccess:Date.now()},Z.set(v,K);else K.lastAccess=Date.now();return K},V=(v)=>{return Math.floor(v/J)},B=(v)=>{return v%J},c=()=>U,N=(v)=>{U=v},k=(v)=>{if(v<0||v>=U)return;let K=V(v),W=Z.get(K);if(!W)return;return W.items[B(v)]},A=(v)=>{if(v<0||v>=U)return!1;let K=V(v),W=Z.get(K);if(!W)return!1;return W.items[B(v)]!==void 0},O=(v,K)=>{let W=V(v),E=H(W),I=B(v),i=E.items[I]===void 0;if(E.items[I]=K,i)E.count++,G++;if(v>=U)U=v+1},_=(v,K)=>{for(let W=0;W<K.length;W++){let E=K[W];if(E!==void 0)O(v+W,E)}},D=(v,K)=>{if(v<0||v>U)return;let W=V(v),E=Array.from(Z.keys()).filter((Q)=>Q>=W).sort((Q,M)=>Q-M),I=[];for(let Q of E){let M=Z.get(Q),C=Q*J;for(let x=0;x<J;x++){if(M.items[x]===void 0)continue;let o=C+x;if(o<v)continue;I.push({oldIndex:o,item:M.items[x]})}}for(let{oldIndex:Q}of I){let M=V(Q),C=Z.get(M);if(!C)continue;let x=B(Q);if(C.items[x]!==void 0){if(C.items[x]=void 0,C.count--,G--,C.count===0)Z.delete(M)}}U++;for(let{oldIndex:Q,item:M}of I){let C=Q+1,x=V(C),o=H(x),h=B(C);o.items[h]=M,o.count++,G++}let i=V(v),s=H(i),g=B(v);s.items[g]=K,s.count++,G++},T=(v)=>{if(v<0||v>=U)return!1;let K=V(v),W=Z.get(K),E=B(v);if(!(W!==void 0&&W.items[E]!==void 0))return!1;let i=K,s=Array.from(Z.keys()).filter((Q)=>Q>=i).sort((Q,M)=>Q-M),g=[];for(let Q of s){let M=Z.get(Q),C=Q*J;for(let x=0;x<J;x++){if(M.items[x]===void 0)continue;let o=C+x;if(o<=v)continue;g.push({oldIndex:o,item:M.items[x]})}}if(W.items[E]=void 0,W.count--,G--,W.count===0)Z.delete(K);for(let{oldIndex:Q}of g){let M=V(Q),C=Z.get(M);if(!C)continue;let x=B(Q);if(C.items[x]!==void 0){if(C.items[x]=void 0,C.count--,G--,C.count===0)Z.delete(M)}}for(let{oldIndex:Q,item:M}of g){let C=Q-1,x=V(C),o=H(x),h=B(C);o.items[h]=M,o.count++,G++}return U--,!0},F=(v,K)=>{let W=[];for(let E=v;E<=K&&E<U;E++)W.push(k(E));return W},L=(v,K)=>{for(let W=v;W<=K&&W<U;W++)if(!A(W))return!1;return!0},R=()=>{let v=[],K=null,W=Array.from(Z.keys()).sort((E,I)=>E-I);for(let E of W){let I=Z.get(E);if(!I)continue;let i=E*J;for(let s=0;s<J;s++){let g=i+s;if(g>=U)break;if(I.items[s]!==void 0)if(K===null)K={start:g,end:g};else if(g===K.end+1)K.end=g;else v.push(K),K={start:g,end:g};else if(K!==null)v.push(K),K=null}}if(K!==null)v.push(K);return v},b=(v,K)=>{let W=[],E=null;for(let I=v;I<=K&&I<U;I++)if(!A(I))if(E===null)E={start:I,end:I};else E.end=I;else if(E!==null)W.push(E),E=null;if(E!==null)W.push(E);return W},X=(v)=>{return Z.has(v)},w=(v)=>{let K=Z.get(v);if(!K)return!1;let W=v*J,E=Math.min(J,U-W);return K.count>=E},S=(v)=>{let K=Z.get(v);if(K)K.lastAccess=Date.now()},P=(v,K)=>{if(v>K||Z.size===0)return;let W=Date.now(),E=V(Math.max(0,v)),I=V(Math.min(U-1,K));for(let i=E;i<=I;i++){let s=Z.get(i);if(s)s.lastAccess=W}},p=(v,K)=>{if(G<=q)return 0;let W=Math.max(0,v-Y),E=Math.min(U-1,K+Y),I=V(W),i=V(E),s=0,g=[];for(let[Q,M]of Z)if(Q<I||Q>i)s+=M.count,g.push(Q),G-=M.count,Z.delete(Q);if(s>0&&$)$(s,g);return s},u=()=>{if(G<=q)return 0;let v=Array.from(Z.entries()).sort(([,E],[,I])=>E.lastAccess-I.lastAccess),K=0,W=[];for(let[E,I]of v){if(G<=q)break;K+=I.count,G-=I.count,W.push(E),Z.delete(E)}if(K>0&&$)$(K,W);return K},r=()=>{return{totalItems:U,cachedItems:G,cachedChunks:Z.size,chunkSize:J,maxCachedItems:q,memoryEfficiency:U>0?1-G/U:1}},l=()=>G,z=()=>{Z.clear(),G=0};return{chunkSize:J,maxCachedItems:q,getTotal:c,setTotal:N,get:k,has:A,set:O,setRange:_,insert:D,delete:T,getRange:F,isRangeLoaded:L,getLoadedRanges:R,findUnloadedRanges:b,getChunkIndex:V,isChunkLoaded:X,isChunkFullyLoaded:w,touchChunk:S,touchChunksForRange:P,evictDistant:p,evictToLimit:u,getStats:r,getCachedCount:l,clear:z,reset:()=>{z(),U=0}}};var M1=(j={})=>{let{maskCharacter:J=w0,maxSampleSize:q=v0}=j,Y=[],$=!1,Z=(B)=>{if($||B.length===0)return;let c=Math.min(B.length,q);for(let N=0;N<c;N++){let k=B[N];if(!k||typeof k!=="object")continue;let A={},O=!1;for(let[_,D]of Object.entries(k)){if(_.startsWith("_")||_==="id")continue;A[_]=String(D??"").length,O=!0}if(O)Y.push(A)}$=!0},U=()=>$,G=(B)=>{let c={id:`${f2}${B}`,[j0]:!0,_index:B};if(Y.length===0)return c.label=J.repeat(12),c;let N=Y[B%Y.length];for(let[k,A]of Object.entries(N))c[k]=J.repeat(Math.max(1,A));return c};return{analyzeStructure:Z,hasAnalyzedStructure:U,generate:G,generateRange:(B,c)=>{let N=[];for(let k=B;k<=c;k++)N.push(G(k));return N},clear:()=>{Y=[],$=!1}}},J0=(j)=>{if(!j||typeof j!=="object")return!1;return j[j0]===!0};var i1=50,_1=(j={})=>{let{adapter:J,initialItems:q,initialTotal:Y,storage:$,placeholder:Z,pageSize:U=i1,maxConcurrent:G=0,onStateChange:H,onDataChange:V,onItemsLoaded:B,onItemsEvicted:c}=j,N=V1({...$,onEvict:(J2,n)=>{c?.(J2),P(),S()}}),k=null,A=()=>{if(!k)k=M1(Z);return k},O=new Map,_=!1,D,T=!0,F,L,R=[],b=0,X=new Map,w=()=>{for(let J2 of X.values())J2[1].abort();X.clear()},S=()=>{H?.(W())},P=()=>{V?.()},p=()=>{O.clear();let J2=N.getLoadedRanges();for(let n of J2)for(let $2=n.start;$2<=n.end;$2++){let U2=N.get($2);if(U2&&!J0(U2))O.set(U2.id,$2)}},u=(J2,n)=>{if(!J0(n))O.set(n.id,J2)},r=(J2)=>{O.delete(J2)},l=(J2,n)=>{return`${J2}-${n}`},z=()=>N.getTotal(),y=()=>N.getCachedCount(),v=()=>_,K=()=>T,W=()=>({total:N.getTotal(),cached:N.getCachedCount(),isLoading:_,pendingRanges:R,error:D,hasMore:T,cursor:F}),E=()=>N,I=()=>A(),i=(J2)=>{let n=N.get(J2);if(n!==void 0)return n;if(J2>=0&&J2<N.getTotal())return A().generate(J2);return},s=(J2)=>{let n=O.get(J2);if(n===void 0)return;return N.get(n)},g=(J2)=>{return O.get(J2)??-1},Q=(J2)=>{let n=N.get(J2);return n!==void 0&&!J0(n)},M=(J2,n)=>{let $2=[],U2=N.getTotal();N.touchChunksForRange(J2,Math.min(n,U2-1));for(let B2=J2;B2<=n&&B2<U2;B2++){let Y2=N.get(B2);if(Y2!==void 0)$2.push(Y2);else $2.push(A().generate(B2))}return $2},C=(J2)=>{N.setTotal(J2),T=N.getCachedCount()<J2,P(),S()},x=(J2,n=0,$2)=>{if(J&&J2.length>0){let U2=A();if(!U2.hasAnalyzedStructure())U2.analyzeStructure(J2)}for(let U2=0;U2<J2.length;U2++){let B2=J2[U2];if(B2!==void 0){let Y2=n+U2;N.set(Y2,B2),u(Y2,B2)}}if($2!==void 0)N.setTotal($2);else if(n+J2.length>N.getTotal())N.setTotal(n+J2.length);if(N.getCachedCount()>=N.getTotal()&&N.getTotal()>0)T=!1;P(),S(),B?.(J2,n,N.getTotal())},o=(J2,n)=>{let $2=N.get(J2);if(!$2)return!1;let U2=$2.id,B2={...$2,...n};if(N.set(J2,B2),n.id!==void 0&&n.id!==U2)r(U2);return u(J2,B2),P(),S(),!0},h=(J2,n)=>{N.insert(n,J2),p(),w(),P(),S()},m=(J2)=>{let n=O.get(J2);if(n===void 0)return!1;if(!N.delete(n))return!1;return p(),w(),P(),S(),!0},a=async(J2,n)=>{if(!J)return;let $2=N.chunkSize,U2=Math.floor(J2/$2),B2=Math.floor(n/$2),Y2=$2*2;for(let[X2,b2]of X){let F2=X2.indexOf("-"),y2=parseInt(X2.slice(0,F2),10);if(Math.abs(y2-J2)>Y2)b2[1].abort(),X.delete(X2)}let A2=[],L2=[];for(let X2=U2;X2<=B2;X2++){let b2=X2*$2,F2=b2+$2-1,y2=l(b2,F2);if(N.isChunkFullyLoaded(X2))continue;let k2=X.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(G>0){let X2=X.size+A2.length;if(X2>G){let b2=(J2+n)/2,F2=Math.min(X2-G,X.size);while(F2>0){let D2=null,k2=-1,H2=null;for(let[z2,N2]of X){let O2=z2.indexOf("-"),R2=parseInt(z2.slice(0,O2),10),P2=parseInt(z2.slice(O2+1),10),Z2=Math.abs((R2+P2)/2-b2);if(Z2>k2)k2=Z2,D2=z2,H2=N2[1]}if(D2)H2.abort(),X.delete(D2);F2--}let y2=G-X.size;if(A2.length>y2)A2.sort((D2,k2)=>{let H2=Math.abs((D2.start+D2.end)/2-b2),z2=Math.abs((k2.start+k2.end)/2-b2);return H2-z2}),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=l(X2.start,X2.end),F2=new AbortController,y2=(async()=>{R.push(X2),_=!0,D=void 0,S();try{let D2=X2.end-X2.start+1,k2={offset:X2.start,limit:D2,cursor:X2.start===L?F:void 0,signal:F2.signal},H2=await J.read(k2);if(x(H2.items,X2.start,H2.total),H2.cursor)F=H2.cursor,L=X2.start+H2.items.length;let z2=X2.start+H2.items.length;if(z2>=b){if(b=z2,H2.hasMore!==void 0)T=H2.hasMore;else if(H2.total!==void 0)T=z2<H2.total}}catch(D2){if(D2?.name==="AbortError")return;D=D2 instanceof Error?D2:Error(String(D2))}finally{X.delete(b2);let D2=R.findIndex((k2)=>k2.start===X2.start&&k2.end===X2.end);if(D2>=0)R.splice(D2,1);_=X.size>0,S()}})();X.set(b2,[y2,F2]),L2.push(y2)}await Promise.all(L2)},e=async(J2,n)=>{if(N.isRangeLoaded(J2,n))return;await a(J2,n)},t=async()=>{if(!J)return;await a(0,U-1)},j2=async()=>{if(!J||_||!T)return!1;let J2=N.getCachedCount(),n=N.getTotal(),$2=J2,U2=Math.min($2+U-1,n>0?n-1:$2+U-1);if($2>=n&&n>0)return T=!1,!1;return await a($2,U2),N.getCachedCount()>J2},K2=async()=>{if(N.clear(),N.setTotal(0),O.clear(),k)k.clear();w(),R=[],_=!1,F=void 0,L=void 0,T=!0,b=0,D=void 0,P(),S()},G2=(J2,n)=>{if(N.evictDistant(J2,n)>0)p()},_2=()=>{N.clear(),O.clear(),F=void 0,L=void 0,D=void 0,R=[],_=!1,P(),S()},W2=()=>{if(N.reset(),O.clear(),k)k.clear();F=void 0,L=void 0,T=!0,b=0,D=void 0,R=[],_=!1,P(),S()};if(q&&q.length>0)x(q,0,Y??q.length);else if(Y!==void 0)N.setTotal(Y),P(),S();return{getState:W,getTotal:z,getCached:y,getIsLoading:v,getHasMore:K,getStorage:E,getPlaceholders:I,getItem:i,getItemById:s,getIndexById:g,isItemLoaded:Q,getItemsInRange:M,setTotal:C,setItems:x,updateItem:o,insertItem:h,removeItem:m,loadRange:a,ensureRange:e,loadInitial:t,loadMore:j2,reload:K2,evictDistant:G2,clear:_2,reset:W2}};function D0(j){let{adapter:J,total:q,autoLoad:Y=!0,storage:$}=j,Z=j.loading?.cancelThreshold??P0,U=j.loading?.preloadThreshold??k0,G=j.loading?.preloadAhead??y0,H=j.loading?.maxConcurrent??z0,V,B,c,N,k,A,O=null,_=null,D=null,T=0,F=!1,L=-1,R=-1,b=$?.chunkSize??r2,X=()=>{if(O=null,_!==null)clearTimeout(_),_=null},w=(u,r)=>{return V.ensureRange(u,r)},S=(u,r=r2)=>{N.emit("load:start",{offset:u,limit:r})},P=(u)=>{N.emit("error",{error:u,context:"ensureRange"})},p=()=>{if(!O)return;O=null;let u={start:B.startIndex,end:B.startIndex+Math.max(0,B.visibleCount-1)};if(u.end<u.start)return;w(u.start,u.end).catch(P)};return{name:"data",priority:20,setup(u){B=u.getState(),c=u.sizeCache,N=u.emitter,k=u.dom,A=u.forceRender.bind(u);let r=null;u.setVirtualTotalFn(()=>r?.getTotal()??0),V=r=_1({adapter:J,...q!==void 0&&{initialTotal:q},pageSize:$?.chunkSize??r2,maxConcurrent:H,...$&&{storage:{...$.chunkSize!==void 0&&{chunkSize:$.chunkSize},...$.maxCachedItems!==void 0&&{maxCachedItems:$.maxCachedItems},...$.evictionBuffer!==void 0&&{evictionBuffer:$.evictionBuffer}}},onDataChange:()=>{if(B.initialized){let z=V.getTotal();B.totalItems=z;let y=c.getTotal();if(z!==y)c.rebuild(z);u.updateContentSize(c.getTotalSize()),u.renderIfNeeded()}},onItemsLoaded:(z)=>{if(B.initialized)A(),N.emit("load:end",{items:z,total:V.getTotal()})}}),u.setGetItemFn((z)=>V.getItem(z)),u.setRemoveItemFn((z)=>{let y=V.getIndexById(z);if(y<0)return-1;if(!V.removeItem(z))return-1;return y}),u.setInsertItemFn((z,y)=>{V.insertItem(z,y)}),u.setUpdateItemFn((z,y)=>{let v=V.getIndexById(z);if(v<0)return!1;return V.updateItem(v,y)}),u.registerMethod("reload",async()=>{if(O=null,L=-1,R=-1,u.forceRender(),await V.reload(),u.scrollTo(0),Y)S(0),await V.loadInitial(),u.forceRender()}),u.registerMethod("loadVisibleRange",async()=>{O=null,u.forceRender();let z=V.getTotal();if(B.visibleCount>0&&B.startIndex<z){let y=Math.min(B.startIndex+B.visibleCount-1,z-1);S(B.startIndex,y-B.startIndex+1),await w(B.startIndex,y)}}),u.registerMethod("getTotal",()=>{return V.getTotal()}),u.registerMethod("setTotal",(z)=>{V.setTotal(z)}),u.registerMethod("_getTotal",()=>V.getTotal()),u.registerMethod("_setTotal",(z)=>{V.setTotal(z)}),u.registerMethod("_cancelAutoLoad",()=>{F=!0}),u.registerMethod("_getLoadedItem",(z)=>{return V.getStorage().get(z)}),u.registerMethod("_getLoadedCount",()=>V.getCached()),N.on("load:start",()=>{k.root.setAttribute("aria-busy","true")}),N.on("load:end",()=>{k.root.removeAttribute("aria-busy")}),u.registerDestroyHandler(()=>{if(D!==null)clearTimeout(D),D=null;X()}),N.on("velocity:change",({velocity:z})=>{T=Math.abs(z)});let l=()=>{if(B.destroyed)return;if(B.visibleCount>0&&B.startIndex<V.getTotal()){let z=Math.min(B.startIndex+B.visibleCount-1,V.getTotal()-1);w(B.startIndex,z).catch(P)}p()};if(window.addEventListener("online",l),u.registerDestroyHandler(()=>{window.removeEventListener("online",l)}),Y)queueMicrotask(()=>{if(F)return;S(0),V.loadInitial().catch((z)=>{N.emit("error",{error:z,context:"loadInitial"})})});else if(q!==void 0)V.setTotal(q)},hooks:{onAfterScroll(){if(B.destroyed)return;let u=B.startIndex+Math.max(0,B.visibleCount-1);if(T>Z){if(_!==null)clearTimeout(_),_=null;O={start:B.startIndex,end:u};return}if(T>U){let z=Math.floor(B.startIndex/b),y=Math.floor(u/b);if(z!==L||y!==R){if(L=z,R=y,u>=B.startIndex)w(B.startIndex,u).catch(P)}let v=B.startIndex,K=u,W=B.scrollDirection;if(W>0)K=Math.min(K+G,V.getTotal()-1);else if(W<0)v=Math.max(0,v-G);if(O={start:v,end:K},_!==null)clearTimeout(_);_=setTimeout(()=>{if(_=null,B.destroyed||!O)return;let{start:E,end:I}=O;if(O=null,I>=E)w(E,I).catch(P)},100);return}X();let r=Math.floor(B.startIndex/b),l=Math.floor(u/b);if(r!==L||l!==R){if(L=r,R=l,u>=B.startIndex)w(B.startIndex,u).catch(P)}},onIdle(){if(B.destroyed)return;T=0,L=-1,R=-1,p(),X()}},destroy(){if(D!==null)clearTimeout(D);X()}}}var H0=(j,J)=>{let q=0,Y=j.length-1;while(q<Y){let $=q+Y+1>>>1;if(j[$].headerLayoutIndex<=J)q=$;else Y=$-1}return q},G1=(j,J)=>{let q=0,Y=j.length-1;while(q<Y){let $=q+Y+1>>>1;if(j[$].firstDataIndex<=J)q=$;else Y=$-1}return q},X1=(j,J,q)=>{if(j===0)return[];let Y=[],$=null,Z=0,U=0;for(let G=0;G<j;G++){let H=q?.(G);if(!H)continue;let V=J(G,H);if($===null)$=V,Z=0;else if(V!==$){let B=G-Z;Y.push({key:$,groupIndex:Y.length,headerLayoutIndex:U,firstDataIndex:Z,count:B}),U=U+1+B,$=V,Z=G}}if($!==null)Y.push({key:$,groupIndex:Y.length,headerLayoutIndex:U,firstDataIndex:Z,count:j-Z});return Y};var A1=(j,J,q)=>{let Y=X1(j,J.getGroupForIndex,q),$=j+Y.length,Z=J.header?.height??J.header?.width??J.headerHeight;return{get totalEntries(){return $},get groupCount(){return Y.length},get groups(){return Y},getEntry:(k)=>{if(Y.length===0)return{type:"item",dataIndex:k,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let A=H0(Y,k),O=Y[A];if(k===O.headerLayoutIndex)return{type:"header",group:O};let _=k-O.headerLayoutIndex-1;return{type:"item",dataIndex:O.firstDataIndex+_,group:O}},layoutToDataIndex:(k)=>{if(Y.length===0)return k;let A=H0(Y,k),O=Y[A];if(k===O.headerLayoutIndex)return-1;let _=k-O.headerLayoutIndex-1;return O.firstDataIndex+_},dataToLayoutIndex:(k)=>{if(Y.length===0)return k;let A=G1(Y,k),O=Y[A],_=k-O.firstDataIndex;return O.headerLayoutIndex+1+_},getGroupAtLayoutIndex:(k)=>{if(Y.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let A=H0(Y,k);return Y[A]},getGroupAtDataIndex:(k)=>{if(Y.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let A=G1(Y,k);return Y[A]},getHeaderHeight:typeof Z==="number"?(k)=>Z:(k)=>{let A=Y[k];if(!A)return 0;return Z(A.key,k)},rebuild:(k,A)=>{Y=X1(k,J.getGroupForIndex,A??q),$=k+Y.length}}};var L0=(j,J,q,Y,$=0)=>{let Z=q?"width":"height",U=document.createElement("div");return U.className=`${J}-sticky-header`,U.setAttribute("role","presentation"),U.setAttribute("aria-hidden","true"),U.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(q?`top:0;bottom:0;left:${$||0}px`:`top:${$||0}px`),U.style[Z]=`${Y}px`,j.insertBefore(U,j.firstChild),U},D1=(j,J,q,Y,$,Z=!1,U=0,G,H)=>{let V=Z?"width":"height",B=Z?"height":"width",c=Z?"X":"Y",N=(o,h)=>{o.style[V]=`${h}px`},k=H??L0(j,$,Z,0,U),A=()=>{let o=document.createElement("div");return o.className="sticky-group",o.style.position="absolute",o.style.willChange="transform",o.style[B]="100%",o},O=A(),_=A();k.append(O,_);let D=O,T=_,F=J.groups,L=[],R=[],b=[],X=0,w=()=>{F=J.groups,X=F.length,L=Array(X),R=Array(X),b=Array(X);let o=G?G():1;for(let h=0;h<X;h++)L[h]=q.getOffset(F[h].headerLayoutIndex)*o,R[h]=J.getHeaderHeight(h),b[h]=R[h]*o};w();let S=-1,P=0,p=0,u=-1,r=!1,l=0,z=!1,y=(o,h)=>{Y(o,h);let m=R[h];return N(o,m),m},v=(o)=>{o.replaceChildren(),o.style.transform=""},K=(o)=>{if(o===S)return;if(S=o,P=0,p=0,o<0||o>=X){v(D);return}P=y(D,o),p=b[o],N(k,P),D.style.transform=""},W=(o)=>{if(o===l)return;l=o;let h=Math.round(o);D.style.transform=`translate${c}(${h}px)`,T.style.transform=`translate${c}(${h+P}px)`},E=()=>{l=0,D.style.transform="",T.style.transform=""},I=()=>{if(!z)return;let o=D;D=T,T=o,S=u,P=S>=0?R[S]:0,p=S>=0?b[S]:0,N(k,P),v(T),u=-1,z=!1,E()},i=()=>{if(!z)return;v(T),u=-1,z=!1,E()},s=!!H,g=()=>{if(r)return;if(r=!0,s)k.style.visibility="";else k.style.display=""},Q=()=>{if(!r)return;if(r=!1,s)k.style.visibility="hidden";else k.style.display="none";v(D),S=-1,P=0,p=0,i()},M=(o)=>{if(X===0){Q();return}if(o<L[0]){Q();return}let h=0,m=X-1;while(h<m){let e=h+m+1>>>1;if(L[e]+b[e]<=o)h=e;else m=e-1}if(!r)g();K(h);let a=h+1;if(a<X){let e=L[a]-o;if(e<=0&&e>-p){if(u!==a||!z)u=a,y(T,a),z=!0;let t=p>0?e/p*P:e;W(t)}else if(e<=-p){if(z)I()}else if(z)i()}else if(z)i()},C=()=>{w();let o=S;if(S=-1,P=0,p=0,o>=0)K(o)},x=()=>{k.remove(),S=-1,P=0,p=0,u=-1,r=!1,z=!1};if(!H)k.style.display="none";return{update:M,refresh:C,show:g,hide:Q,destroy:x}};var g2={selected:!1,focused:!1},H1=typeof process<"u"&&process.env?.NODE_ENV!=="production";function F0(j){if(!j.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let J=j.header?.height??j.header?.width??j.headerHeight;if(J==null||typeof J==="number"&&J<=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,$,Z=null,U,G,H,V,B,c,N,k=null,A,O,_,D=null,T,F,L=null,R,b=new Map,X=new Set,w=new Map,S=-1,P=-1,p=!0,u=-1,r=0,l=null,z;function y(){return $.totalEntries}function v(){let Q=G.totalItems;if(Q===u)return;if(H1)console.log(`[groups] syncLayout: ${u} → ${Q}`);let M=u>0;u=Q,$.rebuild(Q,k??N),z($.totalEntries);let C=U.getTotalSize();if(V.style[A?"width":"height"]=C+"px",Z)Z.refresh(),Z.update(G.scrollPosition);if(M)E();let x=L?.("_scrollbar:getInstance");if(x)x()?.updateBounds(C,G.containerSize)}function K(Q){let M=U.getOffset(Q);if(A)return`translate(${Math.round(M)}px, 0)`;return`translate(0, ${Math.round(M)}px)`}function W(Q,M){let C=U.getSize(M);if(A)Q.style.width=`${C}px`;else Q.style.height=`${C}px`}function E(){b.forEach((Q)=>{Q.remove();let M=Q.getAttribute("data-id");if(M)w.set(M,Q);else H.release(Q)}),b.clear(),X.clear()}function I(){if(w.size>0)w.forEach((Q)=>H.release(Q)),w.clear()}function i(Q,M,C,x){if(M.type==="header"){let t=`__group_header_${M.group.groupIndex}`;if(Q.getAttribute("data-id")===t)return!0;Q.className=F,Q.setAttribute("role","presentation"),Q.removeAttribute("aria-selected"),Q.setAttribute("data-id",t);let j2=Y(M.group.key,M.group.groupIndex);if(typeof j2==="string")Q.innerHTML=j2;else Q.innerHTML="",Q.appendChild(j2);return!0}let o=M.dataIndex,h=N(o);if(!h)return Q.innerHTML="",!1;let m=h._isPlaceholder===!0,a=String(h.id);if(!m&&Q.getAttribute("data-id")===a){if(R)Q.id=`${O}-item-${x}`,Q.setAttribute("aria-posinset",String(o+1)),Q.setAttribute("aria-setsize",String(G.totalItems));return!0}if(Q.className=T,Q.setAttribute("role","option"),Q.setAttribute("data-id",a),R)Q.id=`${O}-item-${x}`,Q.setAttribute("aria-posinset",String(o+1)),Q.setAttribute("aria-setsize",String(G.totalItems));if(m)Q.classList.add(`${O}-item--placeholder`);if(C)C(x,g2);else g2.selected=!1,g2.focused=!1;let e=c(h,o,g2);if(typeof e==="string")Q.innerHTML=e;else Q.innerHTML="",Q.appendChild(e);return!m}function s(){if(G.destroyed)return;v();let{scrollPosition:Q,containerSize:M}=G;if(!p&&Q===S&&M===P)return;S=Q,P=M;let C=p;p=!1;let x=y();if(M<=0||x===0){if(b.size>0)b.forEach((n)=>{n.remove(),H.release(n)}),b.clear(),X.clear();return}let o=U.indexAtOffset(Q),h=U.indexAtOffset(Q+M);if(h<x-1)h++;o=Math.max(0,o),h=Math.min(x-1,Math.max(0,h));let m=Math.max(0,o-_),a=Math.min(x-1,h+_);if(m===G.prevRangeStart&&a===G.prevRangeEnd&&!G.renderPending)return;b.forEach((n,$2)=>{if($2<m||$2>a)n.remove(),H.release(n),b.delete($2),X.delete($2)});let e=D?.()??null,t=e?`${O}-item--selected`:"",j2=e?`${O}-item--focused`:"",K2=null;for(let n=m;n<=a;n++){let $2=b.get(n),U2=!1;if($2===void 0){let B2=$.getEntry(n);U2=B2.type==="header";let Y2;if(B2.type==="header")Y2=`__group_header_${B2.group.groupIndex}`;else{let L2=N(B2.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=H.acquire();if($2.setAttribute("data-index",String(n)),i($2,B2,e,n))X.delete(n);else X.add(n);if(W($2,n),$2.style.transform=K(n),b.set(n,$2),!K2)K2=document.createDocumentFragment();K2.appendChild($2)}else if(C&&X.has(n)){let B2=$.getEntry(n);if(B2.type==="item")if(i($2,B2,e,n))X.delete(n);else X.add(n)}else U2=$2.classList.contains(F);if(!U2&&e)if(e(n,g2),$2.classList.toggle(t,g2.selected),$2.classList.toggle(j2,g2.focused),g2.selected)$2.setAttribute("aria-selected","true");else $2.removeAttribute("aria-selected")}if(K2)V.appendChild(K2);I();let G2=U.getTotalSize();V.style[A?"width":"height"]=G2+"px",G.prevRangeStart=m,G.prevRangeEnd=a,G.renderPending=!1;let _2=0,W2=0,J2=!1;for(let n=m;n<=a&&_2<G.capacity;n++){let $2=$.getEntry(n);if($2.type==="item"){if(!J2)W2=$2.dataIndex,J2=!0;G.visibleIndices[_2]=$2.dataIndex,G.visibleOffsets[_2]=U.getOffset(n),G.visibleSizes[_2]=U.getSize(n),_2++}}G.visibleCount=_2,G.startIndex=W2}function g(){if(G.destroyed)return;if(H1)console.log(`[groups] forceRender, placeholders: ${X.size}, rendered: ${b.size}`);let Q=l?.()??0;if(Q!==r){r=Q;let M=$.groups,C=M.length;$.rebuild(u,k??N);let x=$.groups,o=x.length!==C;if(!o){for(let h=0;h<C;h++)if(x[h].headerLayoutIndex!==M[h].headerLayoutIndex){o=!0;break}}if(o){z($.totalEntries);let h=U.getTotalSize();if(V.style[A?"width":"height"]=h+"px",Z)Z.refresh(),Z.update(G.scrollPosition);let m=1/0,a=Math.min(C,x.length);for(let t=0;t<a;t++)if(x[t].headerLayoutIndex!==M[t].headerLayoutIndex){m=Math.min(x[t].headerLayoutIndex,M[t].headerLayoutIndex);break}if(x.length>C&&a<x.length)m=Math.min(m,x[a].headerLayoutIndex);else if(C>x.length&&a<C)m=Math.min(m,M[a].headerLayoutIndex);if(m<=G.prevRangeEnd)E();let e=L?.("_scrollbar:getInstance");if(e)e()?.updateBounds(h,G.containerSize)}}G.prevRangeStart=-1,G.prevRangeEnd=-1,G.renderPending=!0,p=!0,s()}return{name:"groups",priority:10,setup(Q){U=Q.sizeCache,G=Q.getState(),H=Q.pool,V=Q.dom.content,B=Q.dom.root,c=Q.template,A=Q.config.axis.primary==="x",O=Q.config.classPrefix,_=Q.config.overscan,N=Q.getItem.bind(Q),D=()=>Q.getItemStateFn(),L=Q.getMethod.bind(Q),R=Q.config.interactive,T=`${O}-item`,F=`${O}-group-header`,queueMicrotask(()=>{let h=L?.("_getLoadedItem");if(h)k=h;let m=L?.("_getLoadedCount");if(m)l=m});let M=G.totalItems;$=A1(M,j,k??N),u=M;let C=typeof J==="number"?(h)=>J:(h)=>{let m=$.groups[h];if(!m)return 0;return J(m.key,h)},x=U.getSize,o=(h)=>{let m=$.getEntry(h);if(m.type==="header"){if(j.sticky!==!1&&m.group.groupIndex===0)return 0;return C(m.group.groupIndex)}return x(m.dataIndex)};if(Q.setSizeConfig(o),z=U.rebuild,U.rebuild=(h)=>{z($.totalEntries)},U.rebuild($.totalEntries),Q.setVirtualTotalFn(()=>$.totalEntries),B.classList.add(`${O}--grouped`),j.sticky!==!1){let h=(e,t)=>{let j2=$.groups[t];if(!j2)return;let K2=Y(j2.key,t);if(typeof K2==="string")e.innerHTML=K2;else e.replaceChildren(K2)},m=$.getHeaderHeight(0),a=L0(B,O,A,m);if(Z=D1(B,$,U,h,O,A,0,void 0,a),Z.update(G.scrollPosition),!A)Q.dom.viewport.style.height=`calc(100% - ${m}px)`;else Q.dom.viewport.style.width=`calc(100% - ${m}px)`}Q.setRenderFn(s,g),Q.registerMethod("getGroupLayout",()=>$),Q.registerMethod("_dataToLayoutIndex",(h)=>$.dataToLayoutIndex(h)),Q.registerMethod("_layoutToDataIndex",(h)=>$.layoutToDataIndex(h)),Q.registerMethod("_getRenderedElement",(h)=>b.get(h)??null),Q.registerMethod("_isGroupHeader",(h)=>{return $.getEntry(h).type==="header"}),Q.registerMethod("scrollToIndex",(h,m="start")=>{let a=$.dataToLayoutIndex(h),e=$.totalEntries;if(e===0)return;let t=Math.max(0,Math.min(a,e-1)),j2=U.getOffset(t),K2=U.getSize(t),G2=G.containerSize,_2=U.getTotalSize(),W2=Math.max(0,_2-G2),J2=typeof m==="string"?m:m.align??"start",n=typeof m==="object"?m.behavior:void 0,$2=typeof m==="object"?m.duration:void 0,U2;switch(J2){case"center":U2=j2-(G2-K2)/2;break;case"end":U2=j2-G2+K2;break;default:U2=j2}if(U2=Math.max(0,Math.min(U2,W2)),n==="smooth"&&$2&&$2>0)Q.smoothScrollTo(U2,$2);else Q.scrollTo(U2)}),Q.registerDestroyHandler(()=>{for(let[,h]of b)h.remove();if(b.clear(),X.clear(),Z)Z.destroy(),Z=null;B.classList.remove(`${O}--grouped`)})},hooks:{onAfterScroll(Q,M){if(Z)Z.update(Q)}},destroy(){if(Z)Z.destroy(),Z=null;b.clear(),X.clear(),w.clear()}}}var L1=(j,J=50,q=1/0,Y=!0)=>{let $=j,Z=[],U=0,G=()=>{Z=$.map((_,D)=>({def:_,index:D,width:0,minWidth:n1(_.minWidth??J,1),maxWidth:_.maxWidth??q,resizable:_.resizable??Y,offset:0}))},H=(_)=>{if(Z.length===0){U=0;return}let D=0,T=0;for(let F=0;F<Z.length;F++){let L=Z[F],R=L.def;if(R.width!==void 0)L.width=O0(R.width,L.minWidth,L.maxWidth),D+=L.width;else T++}if(T){let L=Math.max(0,_-D)/T;for(let R=0;R<Z.length;R++){let b=Z[R];if(b.def.width===void 0)b.width=O0(L,b.minWidth,b.maxWidth)}}V()},V=()=>{let _=0;for(let D=0;D<Z.length;D++){let T=Z[D];T.offset=_,_+=T.width}U=_},B=(_,D)=>{if(_<0||_>=Z.length)return 0;let T=Z[_];if(!T.resizable)return T.width;let F=O0(D,T.minWidth,T.maxWidth);return T.width=F,V(),F},c=(_)=>{return Z[_]},N=(_)=>{if(Z.length===0)return;if(_<0)return Z[0];if(_>=U)return Z[Z.length-1];let D=0,T=Z.length-1;while(D<T){let F=D+T>>>1,L=Z[F];if(_<L.offset)T=F-1;else if(_>=L.offset+L.width)D=F+1;else return L}return Z[D]},k=(_)=>{if(_<0||_>=Z.length)return 0;return Z[_].offset},A=(_)=>{if(_<0||_>=Z.length)return 0;return Z[_].width},O=(_)=>{$=_,G()};return G(),{get columns(){return Z},get totalWidth(){return U},resolve:H,updateColumns:O,resizeColumn:B,getColumn:c,getColumnAtX:N,getColumnOffset:k,getColumnWidth:A}},O0=(j,J,q)=>Math.min(q,Math.max(J,j)),n1=(j,J)=>Math.max(J,j);var F1=(j,J,q,Y,$,Z)=>{let U=document.createElement("div");U.setAttribute("role","rowgroup");let G=document.createElement("div");G.className=`${q}-table-header`,G.setAttribute("role","row"),G.setAttribute("aria-rowindex","1"),G.style.height=`${J}px`;let H=document.createElement("div");H.className=`${q}-table-header-scroll`,H.setAttribute("role","presentation"),G.appendChild(H),U.appendChild(G),j.insertBefore(U,j.firstChild),j.style.setProperty("--vlist-table-header-height",`${J}px`);let V=[],B=[],c=!0,N=null,k="asc",A=null,O=!1,_=-1,D=0,T=0,F=0,L=(K,W)=>{let E=document.createElement("div");E.className=`${q}-table-header-cell`,E.setAttribute("role","columnheader"),E.setAttribute("aria-colindex",String(W+1)),E.setAttribute("tabindex",W===0?"0":"-1"),E.dataset.columnKey=K.def.key;let I=K.def.align;if(I==="center")E.classList.add(`${q}-table-header-cell--center`);else if(I==="right")E.classList.add(`${q}-table-header-cell--right`);let i=document.createElement("div");i.className=`${q}-table-header-content`;let s=K.def.header?K.def.header(K.def):K.def.label;if(typeof s==="string")i.textContent=s;else i.appendChild(s);if(E.appendChild(i),K.def.sortable){let g=document.createElement("span");g.className=`${q}-table-header-sort`,g.setAttribute("aria-hidden","true"),E.appendChild(g),B.push(g),E.classList.add(`${q}-table-header-cell--sortable`)}else B.push(null);if(K.resizable){let g=document.createElement("div");g.className=`${q}-table-header-resize`,g.dataset.resizeIndex=String(W),E.appendChild(g)}return E},R=(K)=>{A=K,H.textContent="",V=[],B=[];let W=K.columns;for(let E=0;E<W.length;E++){let I=W[E],i=L(I,E);V.push(i),H.appendChild(i)}if(b(K),N)X(N,k)},b=(K)=>{A=K;let W=K.columns;H.style.width=`${K.totalWidth}px`;for(let E=0;E<V.length&&E<W.length;E++){let I=V[E],i=W[E];I.style.width=`${i.width}px`}},X=(K,W)=>{if(N=K,k=W,!A)return;let E=A.columns;for(let I=0;I<B.length&&I<E.length;I++){let i=B[I];if(!i)continue;if(E[I].def.key===K)i.textContent=W==="asc"?"▲":"▼",i.style.opacity="0.7",V[I].setAttribute("aria-sort",W==="asc"?"ascending":"descending");else i.textContent="",i.style.opacity="0",V[I].removeAttribute("aria-sort")}},w=(K)=>{H.style.transform=`translateX(${-K}px)`},S=(K)=>{let W=K.target;if(!W.dataset.resizeIndex)return;if(K.preventDefault(),K.stopPropagation(),_=+W.dataset.resizeIndex,!A)return;let E=A.getColumn(_);if(!E?.resizable)return;O=!0,D=K.clientX,T=E.width,j.classList.add(`${q}--col-resizing`),j.style.cursor="col-resize",W.classList.add(`${q}-table-header-resize--active`),W.setPointerCapture(K.pointerId),W.addEventListener("pointermove",P),W.addEventListener("pointerup",p),W.addEventListener("pointercancel",p)},P=(K)=>{if(!O||!A)return;let W=K.clientX-D;if(Math.abs(W)<1)return;let E=Math.max(0,T+W);Y(_,E)},p=(K)=>{if(!O)return;let W=K.target;W.removeEventListener("pointermove",P),W.removeEventListener("pointerup",p),W.removeEventListener("pointercancel",p);try{W.releasePointerCapture(K.pointerId)}catch{}W.classList.remove(`${q}-table-header-resize--active`),j.classList.remove(`${q}--col-resizing`),j.style.cursor="",O=!1,_=-1},u=(K)=>{let W=K.target;if(W.dataset.resizeIndex)return;if(O)return;let E=W;while(E&&!E.dataset.columnKey)if(E=E.parentElement,E===G||E===null)return;let I=E.dataset.columnKey;if(!A)return;let i=A.columns,s=-1;for(let Q=0;Q<i.length;Q++)if(i[Q].def.key===I){s=Q;break}if(s===-1)return;let g=i[s];if(Z)Z({key:I,index:s,event:K});if(g.def.sortable&&$){let Q;if(N===I)Q=k==="asc"?"desc":null;else Q="asc";$({key:I,index:s,direction:Q})}},r=(K)=>{if(K<0||K>=V.length)return;V[F]?.setAttribute("tabindex","-1"),F=K;let W=V[F];W.setAttribute("tabindex","0"),W.focus()},l=(K)=>{let W=K.key;if(W==="ArrowRight"){if(K.ctrlKey||K.metaKey){if(!A)return;let E=A.getColumn(F);if(E?.resizable)Y(F,E.width+10),K.preventDefault()}else if(F<V.length-1)r(F+1),K.preventDefault();K.stopPropagation();return}if(W==="ArrowLeft"){if(K.ctrlKey||K.metaKey){if(!A)return;let E=A.getColumn(F);if(E?.resizable)Y(F,E.width-10),K.preventDefault()}else if(F>0)r(F-1),K.preventDefault();K.stopPropagation();return}if(W==="Home"){r(0),K.preventDefault(),K.stopPropagation();return}if(W==="End"){r(V.length-1),K.preventDefault(),K.stopPropagation();return}if(W==="Enter"||W===" "){if(!A)return;let E=A.getColumn(F);if(E?.def.sortable&&$){let I;if(N===E.def.key)I=k==="asc"?"desc":null;else I="asc";$({key:E.def.key,index:F,direction:I}),K.preventDefault()}K.stopPropagation();return}if(W==="ArrowDown"){j.focus(),K.preventDefault(),K.stopPropagation();return}};return G.addEventListener("pointerdown",S),G.addEventListener("click",u),G.addEventListener("keydown",l),{element:G,update:b,updateSort:X,rebuild:R,show:()=>{if(c)return;c=!0,G.style.display=""},hide:()=>{if(!c)return;c=!1,G.style.display="none"},destroy:()=>{G.removeEventListener("pointerdown",S),G.removeEventListener("click",u),G.removeEventListener("keydown",l),j.style.removeProperty("--vlist-table-header-height"),U.remove(),V=[],B=[],A=null,c=!1},syncScroll:w}};var t1=()=>{let j=[];return{acquire:()=>j.pop()||document.createElement("div"),release:(J)=>{if(J.parentNode?.removeChild(J),j.length<200)J.className="",J.removeAttribute("data-id"),J.removeAttribute("data-index"),J.removeAttribute("aria-selected"),J.removeAttribute("aria-rowindex"),J.removeAttribute("role"),J.style.cssText="",J.textContent="",j.push(J)},clear:()=>{j.length=0}}},O1=(j,J,q,Y,$,Z,U,G,H)=>{let V=t1(),B=new Map,c=-1,N=q,k=null,A=null,O=null,_=(h,m)=>{A=h,O=m},D=(h,m)=>{m?h.setAttribute("aria-selected","true"):h.removeAttribute("aria-selected")},T=(h,m,a,e)=>{h.setAttribute("role",m),h.setAttribute("data-id",String(a)),h.setAttribute("data-index",String(e))},F=(h)=>String(h).startsWith("__placeholder_"),L=`${$}-item ${$}-table-row`,R=`${$}-item--selected`,b=`${$}-item--focused`,X=`${$}-table-cell`,w=`${$}-table-cell--center`,S=`${$}-table-cell--right`,P=`${$}-item--odd`,p=`${$}-item--placeholder`,u=`${$}-item--replaced`,r=`${$}-item ${$}-table-row ${$}-table-group-header`,l=`${$}-table-group-header-content`,z=(h,m,a,e,t=!1)=>{if(a.def.cell){let j2=a.def.cell(m,a.def,e);if(typeof j2==="string")h.innerHTML=j2;else h.replaceChildren(j2)}else{let j2=m[a.def.key],K2=j2!=null?String(j2):"";if(t&&K2)h.innerHTML=`<span>${K2}</span>`;else h.textContent=K2}},y=(h,m,a,e,t=!1)=>{let j2=L;if(G){if(k){let K2=k(m);if(K2>=0&&(K2&1)===1)j2+=` ${P}`}else if((m&1)===1)j2+=` ${P}`}if(t)j2+=` ${p}`;if(a)j2+=` ${R}`;if(e)j2+=` ${b}`;h.className=j2},v=(h,m,a)=>{if(a?.compression?.isCompressed)return Math.round(n2(h,a.scrollPosition,m,a.totalItems,a.containerSize,a.compression,a.rangeStart));return m.getOffset(h)},K=(h,m)=>{let a=m.def.align;if(a==="center")h.classList.add(w),h.classList.remove(S);else if(a==="right")h.classList.add(S),h.classList.remove(w);else h.classList.remove(w,S)},W=(h,m)=>{let e=N.columns.length;if(m.length===e)return m;let t=[];for(let j2=0;j2<e;j2++){let K2;if(j2<m.length)K2=m[j2];else K2=document.createElement("div"),K2.className=X,h.appendChild(K2);t.push(K2)}for(let j2=e;j2<m.length;j2++)m[j2].remove();return t},E=(h,m,a,e)=>{let t=V.acquire(),j2=h,K2=a.getSize(m),G2=v(m,a,e);t.style.cssText=`width:${N.totalWidth}px;height:${K2}px;transform:translateY(${G2}px)`,t.className=r,T(t,"presentation",h.id,m),t.removeAttribute("aria-selected"),t.removeAttribute("aria-rowindex"),t.replaceChildren();let _2=document.createElement("div");if(_2.className=l,O){let W2=O(j2.groupKey,j2.groupIndex);if(typeof W2==="string")_2.innerHTML=W2;else _2.appendChild(W2)}return t.appendChild(_2),{element:t,cells:[],index:m,isGroupHeader:!0,lastItemId:h.id,lastSelected:!1,lastFocused:!1,lastOffset:G2,lastHeight:K2}},I=(h,m,a,e,t,j2)=>{let K2=V.acquire(),G2=t.getSize(m),_2=v(m,t,j2),W2=F(h.id);K2.style.cssText=`width:${N.totalWidth}px;height:${G2}px;transform:translateY(${_2}px)`,y(K2,m,a,e,W2),T(K2,"row",h.id,m),K2.id=`${Z}-item-${m}`,K2.setAttribute("aria-rowindex",String(m+2)),D(K2,a);let J2=W(K2,[]),n=N.columns;for(let $2=0;$2<J2.length&&$2<n.length;$2++){let U2=J2[$2],B2=n[$2];U2.style.cssText=`left:${B2.offset}px;width:${B2.width}px`,U2.setAttribute("role","gridcell"),U2.setAttribute("aria-colindex",String($2+1)),K(U2,B2),z(U2,h,B2,m,W2)}return{element:K2,cells:J2,index:m,isGroupHeader:!1,lastItemId:h.id,lastSelected:a,lastFocused:e,lastOffset:_2,lastHeight:G2}},i=(h,m,a,e,t)=>{for(let[W2,J2]of B)if(W2<m.start||W2>m.end)V.release(J2.element),B.delete(W2);let j2=!1,K2=U();if(K2!==c)c=K2,j2=!0;let G2=null,_2=J();k=typeof G==="string"&&H?H():null;for(let W2=m.start;W2<=m.end;W2++){let J2=W2-m.start,n=h[J2];if(!n)continue;let $2=a.has(n.id),U2=W2===e,B2=A?A(n):!1,Y2=B.get(W2);if(Y2){if(Y2.isGroupHeader!==B2){V.release(Y2.element),B.delete(W2);let A2=B2?E(n,W2,_2,t):I(n,W2,$2,U2,_2,t);if(B.set(W2,A2),!G2)G2=document.createDocumentFragment();G2.appendChild(A2.element);continue}if(B2){if(Y2.lastItemId!==n.id){let b2=n,F2=Y2.element.firstElementChild;if(F2&&O){let y2=O(b2.groupKey,b2.groupIndex);if(typeof y2==="string")F2.innerHTML=y2;else F2.replaceChildren(y2)}Y2.element.setAttribute("data-id",String(n.id)),Y2.lastItemId=n.id}let L2=v(W2,_2,t);if(Y2.lastOffset!==L2)Y2.lastOffset=L2,Y2.element.style.transform=`translateY(${L2}px)`;let X2=_2.getSize(W2);if(Y2.lastHeight!==X2)Y2.lastHeight=X2,Y2.element.style.height=`${X2}px`}else{let A2=Y2.lastItemId!==n.id,L2=Y2.lastSelected!==$2,X2=Y2.lastFocused!==U2;if(A2){let y2=Y2.lastItemId!=null&&F(Y2.lastItemId),D2=F(n.id);if(!D2&&c2(a,W2,n.id))$2=!0;let k2=N.columns;for(let H2=0;H2<Y2.cells.length&&H2<k2.length;H2++)z(Y2.cells[H2],n,k2[H2],W2,D2);if(y(Y2.element,W2,$2,U2,D2),Y2.element.setAttribute("data-id",String(n.id)),D(Y2.element,$2),y2&&!D2)Y2.element.classList.add(u),setTimeout(()=>{Y2.element.classList.remove(u)},300);Y2.lastItemId=n.id,Y2.lastSelected=$2,Y2.lastFocused=U2}else if(L2||X2)y(Y2.element,W2,$2,U2,F(n.id)),D(Y2.element,$2),Y2.lastSelected=$2,Y2.lastFocused=U2;let b2=v(W2,_2,t);if(Y2.lastOffset!==b2)Y2.lastOffset=b2,Y2.element.style.transform=`translateY(${b2}px)`;let F2=_2.getSize(W2);if(Y2.lastHeight!==F2)Y2.lastHeight=F2,Y2.element.style.height=`${F2}px`;if(j2)Y2.element.setAttribute("aria-rowindex",String(W2+2))}}else{if(c2(a,W2,n.id))$2=!0;let A2=B2?E(n,W2,_2,t):I(n,W2,$2,U2,_2,t);if(B.set(W2,A2),!G2)G2=document.createDocumentFragment();G2.appendChild(A2.element)}}if(G2)j.appendChild(G2)},s=(h)=>{let m=J();for(let[a,e]of B){let t=v(a,m,h);if(e.lastOffset!==t)e.lastOffset=t,e.element.style.transform=`translateY(${t}px)`}},g=(h,m,a,e)=>{let t=B.get(h);if(!t)return;if(t.isGroupHeader)return;let j2=N.columns;for(let K2=0;K2<t.cells.length&&K2<j2.length;K2++)z(t.cells[K2],m,j2[K2],h);t.element.setAttribute("data-id",String(m.id)),t.lastItemId=m.id,y(t.element,h,a,e),D(t.element,a),t.lastSelected=a,t.lastFocused=e},Q=(h,m,a)=>{let e=B.get(h);if(!e)return;if(e.isGroupHeader)return;let t=e.lastSelected!==m,j2=e.lastFocused!==a;if(t||j2)y(e.element,h,m,a),D(e.element,m),e.lastSelected=m,e.lastFocused=a},M=(h)=>{N=h;let m=h.columns;for(let[,a]of B)if(a.element.style.width=`${h.totalWidth}px`,a.cells.length>0)for(let e=0;e<a.cells.length&&e<m.length;e++){let t=a.cells[e],j2=m[e];t.style.left=`${j2.offset}px`,t.style.width=`${j2.width}px`}},C=(h)=>{return B.get(h)?.element},x=()=>{for(let[,h]of B)V.release(h.element);B.clear(),c=-1};return{render:i,updatePositions:s,updateItem:g,updateItemClasses:Q,getElement:C,updateColumnLayout:M,setGroupHeaderFn:_,clear:x,destroy:()=>{x(),V.clear()}}};var e1=new Set;function E0(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 J=null,q=null,Y=null,$,Z,U=null,G=null,H=null,V=!1,B=-1,c=-1,N=-1,k=!0,A=-1;function O(){if(V||!U)return;V=!0,G=U.getMethod("_getSelectedIds")??null,H=U.getMethod("_getFocusedIndex")??null}let _=[],D={start:0,end:0};function T(){if($.destroyed||!U||!Y||!J)return;let{scrollPosition:L,containerSize:R,totalItems:b}=$;if(!k&&L===B&&R===c&&b===N)return;if(B=L,c=R,N=b,k=!1,R<=0||b===0)return;let X=b+1;if(X!==A)A=X,U.dom.root.setAttribute("aria-rowcount",`${X}`);let w=Z.indexAtOffset(L),S=Z.indexAtOffset(L+R);if(S<b-1)S++;w=Math.max(0,w),S=Math.min(b-1,S);let P=U.config.overscan,p=Math.max(0,w-P),u=Math.min(b-1,S+P);if(p===$.prevRangeStart&&u===$.prevRangeEnd&&!$.renderPending)return;O();let r=G?.()??e1,l=H?.()??-1;_.length=0;for(let y=p;y<=u;y++){let v=U.getItem(y);if(v)_.push(v)}D.start=p,D.end=u,Y.render(_,D,r,l),$.prevRangeStart=p,$.prevRangeEnd=u,$.renderPending=!1;let z=u-p+1;$.visibleCount=Math.min(z,$.capacity),$.startIndex=p;for(let y=0;y<$.visibleCount;y++){let v=p+y;$.visibleIndices[y]=v,$.visibleOffsets[y]=Z.getOffset(v),$.visibleSizes[y]=Z.getSize(v)}U.dom.content.style.height=Z.getTotalSize()+"px"}function F(){if($.destroyed)return;$.prevRangeStart=-1,$.prevRangeEnd=-1,$.renderPending=!0,k=!0,T()}return{name:"table",priority:10,conflicts:["grid","masonry"],setup(L){U=L,$=L.getState(),Z=L.sizeCache;let{dom:R,config:b,emitter:X}=L,{classPrefix:w}=b;if(b.axis.primary==="x")throw Error("[vlist] table: cannot be used with horizontal orientation");if(b.reverse)throw Error("[vlist] table: cannot be used with reverse mode");let S=j.resizable??!0,P=j.minColumnWidth??50,p=j.maxColumnWidth??1/0,u=j.rowBorders??!0,r=j.rowHeight,l=j.headerHeight??(typeof r==="number"?r:40),z=j.sort?.key??null,y=j.sort?.direction??"asc";if(J=L1(j.columns,P,p,S),typeof r==="function"||typeof r==="number")L.setSizeConfig(r);if(L.rebuildSizeCache(),R.root.classList.add(`${w}--table`),u)R.root.classList.add(`${w}--table-row-borders`);if(j.columnBorders)R.root.classList.add(`${w}--table-col-borders`);if(b.interactive)R.root.setAttribute("tabindex","0");R.root.setAttribute("role","grid"),R.root.setAttribute("aria-colcount",`${j.columns.length}`),R.viewport.setAttribute("role","none"),R.content.setAttribute("role","rowgroup");let v=$.crossSize;J.resolve(v);let K=()=>{if(!J)return;R.content.style.minWidth=`${J.totalWidth}px`},W=(g,Q)=>{if(!J)return;let M=J.getColumn(g);if(!M)return;let C=M.width,x=J.resizeColumn(g,Q);q?.update(J),Y?.updateColumnLayout(J),K(),X.emit("column:resize",{key:M.def.key,index:g,previousWidth:C,width:x})},E=(g)=>{z=g.direction===null?null:g.key,y=g.direction??"asc",q?.updateSort(z,y),X.emit("column:sort",g)};if(q=F1(R.root,l,w,W,E),q.rebuild(J),z)q.updateSort(z,y);K(),Y=O1(R.content,()=>Z,J,j.columns,w,w,()=>$.totalItems,b.striped||void 0),L.setRenderFn(T,F);let I=q,i=-1,s=()=>{let g=R.viewport.scrollLeft;if(g!==i)i=g,I?.syncScroll?.(g)};R.viewport.addEventListener("scroll",s,{passive:!0}),L.registerMethod("updateColumns",(g)=>{if(!J||!q)return;if(J.updateColumns(g),J.resolve($.crossSize),q.rebuild(J),z)q.updateSort(z,y);K(),Y?.updateColumnLayout(J),Y?.clear(),L.forceRender()}),L.registerMethod("resizeColumn",(g,Q)=>{if(!J)return;let M;if(typeof g==="string"){let C=J.columns;M=-1;for(let x=0;x<C.length;x++)if(C[x].def.key===g){M=x;break}if(M===-1)return}else M=g;W(M,Q)}),L.registerMethod("getColumnWidths",()=>{if(!J)return{};let g={},Q=J.columns;for(let M=0;M<Q.length;M++)g[Q[M].def.key]=Q[M].width;return g}),L.registerMethod("setSort",(g,Q)=>{z=g,y=Q??"asc",q?.updateSort(z,y)}),L.registerMethod("getSort",()=>{return{key:z,direction:y}}),L.registerMethod("_getTableLayout",()=>J),L.registerMethod("_getTableHeaderHeight",()=>l),L.registerMethod("_updateRenderedItem",(g,Q,M,C)=>{Y?.updateItem(g,Q,M,C)}),L.registerMethod("_replaceTableRenderer",(g)=>{Y=g}),L.registerMethod("_updateTableForGroups",(g,Q)=>{Y?.setGroupHeaderFn(g,Q)}),L.registerMethod("_updateItemClasses",(g,Q,M)=>{Y?.updateItemClasses(g,Q,M)}),L.registerKeydownHandler((g)=>{if(g.key!=="ArrowLeft"&&g.key!=="ArrowRight")return;if(!J)return;let Q=J.columns;if(Q.length===0)return;let M=R.viewport.clientWidth;if(J.totalWidth<=M)return;let C=R.viewport.scrollLeft;if(g.key==="ArrowRight"){for(let x=0;x<Q.length;x++)if(Q[x].offset>C+1){R.viewport.scrollLeft=Q[x].offset,g.preventDefault();return}}else{for(let x=Q.length-1;x>=0;x--)if(Q[x].offset<C-1){R.viewport.scrollLeft=Q[x].offset,g.preventDefault();return}if(C>0)R.viewport.scrollLeft=0,g.preventDefault()}}),L.registerDestroyHandler(()=>{R.viewport.removeEventListener("scroll",s),q?.destroy(),q=null,Y?.destroy(),Y=null,R.content.style.minWidth="",R.root.classList.remove(`${w}--table`),R.root.classList.remove(`${w}--table-row-borders`),R.root.classList.remove(`${w}--table-col-borders`),R.root.removeAttribute("role"),R.root.removeAttribute("aria-colcount"),R.root.removeAttribute("aria-rowcount"),R.root.removeAttribute("tabindex"),R.viewport.removeAttribute("role"),R.content.removeAttribute("role")})},hooks:{onResize(L,R){if(!J||!U)return;let b=$.crossSize;if(J.resolve(b),q?.update(J),Y?.updateColumnLayout(J),J)U.dom.content.style.minWidth=`${J.totalWidth}px`},onAfterScroll(){if(!U||!q)return;q?.syncScroll?.(U.dom.viewport.scrollLeft)}},destroy(){q?.destroy(),q=null,Y?.destroy(),Y=null,U=null}}}function R0(j){let J=j?.handle??null,q=j?.ghostClass??"vlist-sort-ghost",Y=j?.shiftDuration??150,$=j?.edgeScrollZone??40,Z=j?.edgeScrollSpeed??20,U=j?.dragThreshold??5,G=j?.ghostContainer??null,H,V,B=null,c,N,k,A,O,_,D,T,F,L,R=!1,b=-1,X=-1,w=0,S=0,P=0,p=0,u=!1,r=null,l=0,z=null,y=0,v=0,K=0,W=null,E=!1,I="",i=-1,s=-1,g=[],Q="",M=null,C=null,x="",o=!1,h=(f)=>{return f.closest("[data-index]")},m=(f)=>{let Q2=f.dataset.index;return Q2===void 0?-1:+Q2},a=(f)=>{let Q2=f.getBoundingClientRect(),q2=f.cloneNode(!0);return q2.className=`${A}-item ${q}`,q2.removeAttribute("data-index"),q2.style.cssText=`position:fixed;pointer-events:none;z-index:10000;width:${Q2.width}px;height:${Q2.height}px;left:${Q2.left}px;top:${Q2.top}px;transition:none;will-change:transform`,(G||document.body).appendChild(q2),q2},e=()=>{if(!r)return;r.style.left=`${P-v}px`,r.style.top=`${p-K}px`},t=()=>{let f=H.totalItems;if(f===0)return 0;let Q2=N.getBoundingClientRect(),q2=H.scrollPosition,V2=O?P-v-Q2.left+N.scrollLeft+q2:p-K-Q2.top+q2,M2=V2+y,T2=V.getOffset(b)+V.getSize(b);if(M2>T2){let E2=V.indexAtOffset(M2),C2=V.getOffset(E2)+V.getSize(E2)/2,I2=M2>C2?E2:E2-1;return Math.min(Math.max(I2,b),f-1)}let w2=V.getOffset(b);if(V2<w2){let E2=V.indexAtOffset(V2),C2=V.getOffset(E2)+V.getSize(E2)/2,I2=V2<C2?E2:E2+1;return Math.max(Math.min(I2,b),0)}return b},j2=()=>{let f=c.children,Q2=y;for(let q2=0;q2<f.length;q2++){let V2=f[q2],M2=m(V2);if(M2<0||M2===b)continue;let T2=0;if(X>b){if(M2>b&&M2<=X)T2=-Q2}else if(X<b){if(M2>=X&&M2<b)T2=Q2}let w2=V.getOffset(M2),E2=Math.round(w2+T2);V2.style.transition=D,V2.style.transform=`${_}(${E2}px)`}},K2=()=>{let f=c.children;for(let Q2=0;Q2<f.length;Q2++){let q2=f[Q2],V2=m(q2);if(V2>=0)q2.style.transform=`${_}(${Math.round(V.getOffset(V2))}px)`;q2.style.transition=""}},G2=()=>{if(!B)return;let f=t();if(f===X)return;X=f,j2(),B.emitter.emit("sort:move",{fromIndex:b,currentIndex:X})},_2=()=>{let f=N.getBoundingClientRect();if(O)return P<f.left||P>f.right;return p<f.top||p>f.bottom},W2=()=>{let f=B?.getMethod("_getFocusedIndex");return f?f():-1},J2=(f)=>{let Q2=B?.getMethod("_focusById");if(Q2)Q2(f)},n=(f)=>{if(!B)return;let Q2=O?N.clientWidth:N.clientHeight,q2=H.scrollPosition,V2=V.getOffset(f),M2=V2+V.getSize(f);if(V2<q2)B.scrollTo(Math.max(0,V2));else if(M2>q2+Q2)B.scrollTo(M2-Q2)},$2=(f)=>{if(!C)return;C.textContent="",C.offsetHeight,C.textContent=f},U2=(f)=>{if(!B)return"";let q2=B.getItems()[f];if(!q2)return"";return c.querySelector(`[data-index="${f}"]`)?.textContent?.trim()||String(q2.id)},B2=()=>String(H.totalItems),Y2=(f)=>{let Q2=c.children;for(let q2=0;q2<Q2.length;q2++)Q2[q2].style.transition=f},A2=()=>{let f=()=>{if(!R||!B)return;let Q2=N.getBoundingClientRect(),q2=0,V2=3;if(O){let T2=P-Q2.left,w2=Q2.right-P;if(T2<$){let E2=Math.min(V2,1-T2/$);q2=-Z*E2*E2}else if(w2<$){let E2=Math.min(V2,1-w2/$);q2=Z*E2*E2}}else{let T2=p-Q2.top,w2=Q2.bottom-p;if(T2<$){let E2=Math.min(V2,1-T2/$);q2=-Z*E2*E2}else if(w2<$){let E2=Math.min(V2,1-w2/$);q2=Z*E2*E2}}let M2=_2();if(q2!==0){let T2=H.scrollPosition,w2=V.getTotalSize()-(O?N.clientWidth:N.clientHeight);if(q2<0&&T2<=0||q2>0&&T2>=w2)o=M2;else o=!0,B.scrollTo(T2+q2)}else o=M2;l=requestAnimationFrame(f)};l=requestAnimationFrame(f)},L2=()=>{if(l)cancelAnimationFrame(l),l=0},X2=(f=!1)=>{if(R=!1,u=!1,r&&r.parentNode)r.remove();r=null,z=null;let Q2=c.children;for(let V2=0;V2<Q2.length;V2++){let M2=Q2[V2];M2.classList.remove(L);let T2=m(M2);if(T2>=0)M2.style.transform=`${_}(${Math.round(V.getOffset(T2))}px)`;M2.style.transition=""}L2(),k.classList.remove(T),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),!f&&B)B.forceRender()},b2=(f,Q2)=>{if(!B)return;let q2=f!==Q2&&f>=0&&Q2>=0,V2=()=>{if(!B)return;if(R=!1,q2){if(k.classList.add(F),B.emitter.emit("sort:end",{fromIndex:f,toIndex:Q2}),W!==null)J2(W);X2(!0),requestAnimationFrame(()=>k.classList.remove(F))}else k.classList.add(F),B.emitter.emit("sort:cancel",{originalItems:[...B.getItems()]}),X2(!1),requestAnimationFrame(()=>k.classList.remove(F))};if(!r){V2();return}let M2=N.getBoundingClientRect(),T2=H.scrollPosition,w2=V.getOffset(Q2),E2=Y>0?Y:150;if(r.style.transition=`left ${E2}ms ease, top ${E2}ms ease`,O)r.style.left=`${M2.left-N.scrollLeft+w2-T2}px`,r.style.top=`${M2.top}px`;else r.style.left=`${M2.left}px`,r.style.top=`${M2.top+w2-T2}px`;let C2=!1,I2=()=>{if(C2)return;C2=!0,r?.removeEventListener("transitionend",I2),V2()};r.addEventListener("transitionend",I2),setTimeout(I2,E2+50)},F2=(f)=>{if(H.destroyed||!B)return;if(R)return;if(E)P2();if(f.button!==0)return;let Q2=f.target;if(J){if(!Q2.closest(J))return}let q2=h(Q2);if(!q2)return;let V2=m(q2);if(V2<0)return;w=f.clientX,S=f.clientY,P=f.clientX,p=f.clientY,b=V2,u=!1,z=q2;let M2=q2.getBoundingClientRect();v=f.clientX-M2.left,K=f.clientY-M2.top,document.addEventListener("pointermove",y2),document.addEventListener("pointerup",D2),document.addEventListener("pointercancel",H2)};function y2(f){if(!B)return;if(P=f.clientX,p=f.clientY,!u){let Q2=P-w,q2=p-S;if(Math.sqrt(Q2*Q2+q2*q2)<U)return;if(u=!0,R=!0,X=b,k.classList.add(T),document.body.style.cursor="grabbing",y=V.getSize(b),z)r=a(z),z.classList.add(L);let V2=W2();if(V2>=0){let T2=B.getItems()[V2];W=T2?T2.id:null}else W=null;B.emitter.emit("sort:start",{index:b}),A2()}if(R){if(f.preventDefault(),e(),!o)G2();else if(_2()){if(X!==b)X=b,K2()}}}function D2(f){if(!u){document.removeEventListener("pointermove",y2),document.removeEventListener("pointerup",D2),document.removeEventListener("pointercancel",H2),z=null;return}f.preventDefault(),document.removeEventListener("pointermove",y2),document.removeEventListener("pointerup",D2),document.removeEventListener("pointercancel",H2),L2(),b2(b,X)}let k2=()=>{if(!u)return;document.removeEventListener("pointermove",y2),document.removeEventListener("pointerup",D2),document.removeEventListener("pointercancel",H2),L2(),K2(),b2(b,b)};function H2(){k2()}let z2=()=>{let f=c.querySelectorAll(`.${x}`);for(let Q2=0;Q2<f.length;Q2++)f[Q2].classList.remove(x)},N2=()=>{z2();let f=c.querySelector(`[data-id="${I}"]`);if(f)f.classList.add(x)},O2=(f)=>{if(!B)return;let Q2=B.getItems(),q2=Q2[f];if(!q2)return;E=!0,I=q2.id,i=f,s=f,g=[...Q2],k.classList.add(T),B.emitter.emit("sort:start",{index:f}),N2(),$2(`Grabbed ${U2(f)}. Current position ${f+1} of ${B2()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},R2=()=>{if(!E||!B)return;E=!1;let f=s,Q2=U2(f);Y2("none"),k.classList.remove(T),z2(),J2(I),B.forceRender(),$2(`${Q2} dropped. Final position ${f+1} of ${B2()}.`),g=[],requestAnimationFrame(()=>Y2(""))},P2=()=>{if(!E||!B)return;E=!1;let f=i;if(Y2("none"),k.classList.remove(T),z2(),s!==f)B.emitter.emit("sort:cancel",{originalItems:g});J2(I),B.forceRender(),n(f),$2(`Reorder cancelled. Returned to position ${f+1} of ${B2()}.`),g=[],requestAnimationFrame(()=>Y2(""))},Z2=(f)=>{if(!E||!B)return;let Q2=H.totalItems,q2=s+f;if(q2<0||q2>=Q2)return;let V2=s,M2=q2;Y2("none"),B.emitter.emit("sort:end",{fromIndex:V2,toIndex:M2}),s=M2,J2(I),B.forceRender(),n(M2),N2(),$2(`${U2(M2)} moved. New position ${M2+1} of ${B2()}.`),requestAnimationFrame(()=>Y2(""))},d=(f)=>{if(H.destroyed)return;if(R){if(f.key==="Escape")f.preventDefault(),f.stopImmediatePropagation(),k2();return}if(E)switch(f.key){case" ":case"Enter":f.preventDefault(),f.stopImmediatePropagation(),R2();return;case"Escape":f.preventDefault(),f.stopImmediatePropagation(),P2();return;case"ArrowUp":case"ArrowLeft":f.preventDefault(),f.stopImmediatePropagation(),Z2(-1);return;case"ArrowDown":case"ArrowRight":f.preventDefault(),f.stopImmediatePropagation(),Z2(1);return;default:if(!f.key.startsWith("F")&&f.key!=="Tab")f.preventDefault(),f.stopImmediatePropagation();return}if(f.key===" "&&!f.shiftKey&&!f.ctrlKey&&!f.metaKey){let Q2=W2();if(Q2>=0)f.preventDefault(),f.stopImmediatePropagation(),O2(Q2)}};return{name:"sortable",priority:30,conflicts:["grid","masonry","table","scale"],setup(f){B=f,H=f.getState(),V=f.sizeCache,c=f.dom.content,N=f.dom.viewport,k=f.dom.root,A=f.config.classPrefix,O=f.config.axis.primary==="x",_=O?"translateX":"translateY",D=Y>0?`transform ${Y}ms ease`:"none",T=`${A}--sorting`,F=`${A}--settling`,L=`${A}-item--drag-source`,x=`${A}-item--kb-sorting`,f.registerMethod("isSorting",()=>R||E),c.addEventListener("pointerdown",F2),k.addEventListener("keydown",d),Q=`${A}-sort-instructions`,M=document.createElement("div"),M.id=Q,M.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",M.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",k.appendChild(M),C=document.createElement("div"),C.setAttribute("role","status"),C.setAttribute("aria-live","assertive"),C.setAttribute("aria-atomic","true"),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",k.appendChild(C),f.registerDestroyHandler(()=>{if(E)P2();X2(),c.removeEventListener("pointerdown",F2),k.removeEventListener("keydown",d),M?.remove(),C?.remove()})},hooks:{onCommit(){if(!B)return;let f=c.children;for(let Q2=0;Q2<f.length;Q2++){let q2=f[Q2],V2=m(q2);if(V2<0)continue;if(q2.setAttribute("aria-roledescription","sortable item"),q2.setAttribute("aria-describedby",Q),E)if(q2.getAttribute("data-id")===String(I))q2.classList.add(x);else q2.classList.remove(x);if(R)if(V2===b)q2.classList.add(L),z=q2;else{q2.classList.remove(L);let M2=0;if(X>b){if(V2>b&&V2<=X)M2=-y}else if(X<b){if(V2>=X&&V2<b)M2=y}let T2=Math.round(V.getOffset(V2)+M2);q2.style.transform=`${_}(${T2}px)`}}}},destroy(){if(r&&r.parentNode)r.remove();r=null,L2(),M?.remove(),C?.remove(),B=null}}}var $4=50,J4=0.1;function E1(j){let J=0,q=0,Y=0;function $(){return Y>0?q/Y:0}function Z(H){if(J=H,H>J4&&H<$4)q+=H,Y++}function U(){let H=j.getTotal();if(H===0)return 0;let V=j.getItemSize();if(V<=0)return 0;let B=j.getContainerSize();if(B<=0)return 0;let c=j.getScrollPosition(),N=typeof j.getColumns==="function"?j.getColumns():1,A=Math.ceil(H/N)*V,_=Math.min(A,S2)-B,D=A-B,T=_>0?D/_:1,F=c*T,L=Math.ceil((F+B)/V);return Math.min(L*N,H)}function G(){let H=j.getTotal(),V=U();return{progress:H>0?Math.min(100,Math.max(0,V/H*100)):0,velocity:J,velocityAvg:$(),itemCount:V,total:H}}return{getState:G,onVelocity:Z}}export{G0 as transition,E0 as table,R0 as sortable,_0 as snapshots,V0 as selection,B0 as scrollbar,U0 as scale,M0 as page,A0 as masonry,F0 as groups,W0 as grid,D0 as data,$1 as createVList,E1 as createStats,X0 as autosize,N0 as a11y};