vlist 2.7.0 → 2.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.github.md +4 -2
- package/README.md +4 -2
- package/dist/config.js +1 -1
- package/dist/index.js +1 -1
- package/dist/internals.js +1 -1
- package/dist/size.json +1 -1
- package/package.json +1 -1
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 9.7 KB.
|
|
4
4
|
|
|
5
|
-
**v2.7.
|
|
5
|
+
**v2.7.2** — [Changelog](./CHANGELOG.md) · Tree keeps the bounded runway for large trees; the scale() deprecation link works; bounded-mode touch limitation documented.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/vlist)
|
|
8
8
|
[](https://bundlephobia.com/package/vlist)
|
|
@@ -93,6 +93,8 @@ const list = createVList({
|
|
|
93
93
|
## Synthetic scroll input
|
|
94
94
|
|
|
95
95
|
The opt-in `vlist/synthetic` entry adds `scroll.mode: 'synthetic'` alongside native and bounded modes. Native remains the default. Import the factory from this entry and plugins from `vlist`:
|
|
96
|
+
Bounded mode note: on touch devices a long native fling can outrun the 2x runway and stall at its edge (measured at 145-226% of a 16x runway on an iPhone SE and a Pixel 8a). Prefer synthetic mode for touch-heavy lists; bounded remains the right choice for wheel and keyboard driven lists.
|
|
97
|
+
|
|
96
98
|
|
|
97
99
|
```typescript
|
|
98
100
|
import { createVList } from 'vlist/synthetic'
|
|
@@ -132,7 +134,7 @@ Measurement corrections from autosize preserve ongoing motion. Synthetic input a
|
|
|
132
134
|
| `autosize()` | +1.0 KB | Auto-measure items via ResizeObserver |
|
|
133
135
|
| `scrollbar()` | +2.0 KB | Custom scrollbar UI |
|
|
134
136
|
| `grid()` | +2.5 KB | 2D grid layout |
|
|
135
|
-
| `masonry()` | +4.
|
|
137
|
+
| `masonry()` | +4.1 KB | Pinterest-style masonry with lane-aware keyboard nav |
|
|
136
138
|
| `carousel()` | +3.5 KB | Paged horizontal carousel with snap and keyboard nav |
|
|
137
139
|
| `table()` | +5.8 KB | Data table with columns, resize, sort |
|
|
138
140
|
| `tree()` | +5.0 KB | Collapsible tree with async loading and indent guides |
|
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 9.7 KB.
|
|
4
4
|
|
|
5
|
-
**v2.7.
|
|
5
|
+
**v2.7.2** — [Changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md) · Tree keeps the bounded runway for large trees; the scale() deprecation link works; bounded-mode touch limitation documented.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/vlist)
|
|
8
8
|
[](https://bundlephobia.com/package/vlist)
|
|
@@ -55,6 +55,8 @@ const list = createVList({ container: '#app', items, item: { height: 200, templa
|
|
|
55
55
|
## Synthetic scroll input
|
|
56
56
|
|
|
57
57
|
The opt-in `vlist/synthetic` entry adds `scroll.mode: 'synthetic'` alongside native and bounded modes. Native remains the default. Import the factory from this entry and plugins from `vlist`:
|
|
58
|
+
Bounded mode note: on touch devices a long native fling can outrun the 2x runway and stall at its edge (measured at 145-226% of a 16x runway on an iPhone SE and a Pixel 8a). Prefer synthetic mode for touch-heavy lists; bounded remains the right choice for wheel and keyboard driven lists.
|
|
59
|
+
|
|
58
60
|
|
|
59
61
|
```typescript
|
|
60
62
|
import { createVList } from 'vlist/synthetic'
|
|
@@ -94,7 +96,7 @@ Measurement corrections from autosize preserve ongoing motion. Synthetic input a
|
|
|
94
96
|
| `autosize()` | +1.0 KB | Auto-measure items via ResizeObserver |
|
|
95
97
|
| `scrollbar()` | +2.0 KB | Custom scrollbar UI |
|
|
96
98
|
| `grid()` | +2.5 KB | 2D grid layout |
|
|
97
|
-
| `masonry()` | +4.
|
|
99
|
+
| `masonry()` | +4.1 KB | Pinterest-style masonry with lane-aware keyboard nav |
|
|
98
100
|
| `carousel()` | +3.5 KB | Paged horizontal carousel with snap and keyboard nav |
|
|
99
101
|
| `table()` | +5.8 KB | Data table with columns, resize, sort |
|
|
100
102
|
| `tree()` | +5.0 KB | Collapsible tree with async loading and indent guides |
|
package/dist/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Qe=3,zt="vlist";var et=50;var At=50,wt=2,Rt=15,Ht=6,dt=2000,_t=30000,ut=16000000,Ve=150,je=1,tt=(t)=>t<0.5?2*t*t:1-(-2*t+2)**2/2,kt=300,Ft=2,Dt=1.5,Vt=0.25,Ot=0.75;var Gt="x",$t=20,ct="_isPlaceholder",_e="__placeholder_";var nt={top:0,right:0,bottom:0,left:0},Bt=(t)=>{if(t==null)return nt;if(typeof t==="number")return t===0?nt:{top:t,right:t,bottom:t,left:t};if(t.length===2){let[n,s]=t;return n===0&&s===0?nt:{top:n,right:s,bottom:n,left:s}}let[e,r,o,i]=t;return e===0&&r===0&&o===0&&i===0?nt:{top:e,right:r,bottom:o,left:i}},Nt=(t,e)=>e?t.left+t.right:t.top+t.bottom,Wt=(t,e)=>e?t.top+t.bottom:t.left+t.right;function Ut(t){let e={visibleIndices:new Int32Array(t),visibleOffsets:new Float64Array(t),visibleSizes:new Float64Array(t),visibleCount:0,startIndex:0,totalSize:0,capacity:t,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,prevAriaTotal:-1,resizeCapacity(r,o,i=Qe){if(o<=0||r<=0)return;let n=Math.ceil(r/o)+i*2;if(n<=e.capacity)return;let s=n+8,l=new Int32Array(s),P=new Float64Array(s),S=new Float64Array(s);l.set(e.visibleIndices),P.set(e.visibleOffsets),S.set(e.visibleSizes),e.visibleIndices=l,e.visibleOffsets=P,e.visibleSizes=S,e.capacity=s},clear(){e.visibleCount=0,e.startIndex=0}};return e}var Pn=(t,e)=>{let r=e;return{getOffset:(o)=>o*t,getSize:(o)=>t,indexAtOffset:(o)=>{if(r===0||t===0)return 0;return Math.max(0,Math.min(Math.floor(o/t),r-1))},getTotalSize:()=>r*t,getTotal:()=>r,rebuild:(o)=>{r=o},isVariable:()=>!1}},zn=(t,e)=>{let r=e,o=new Float64Array(0),i=(s)=>{r=s,o=new Float64Array(s+1),o[0]=0;for(let l=0;l<s;l++)o[l+1]=o[l]+t(l)};i(e);let n=(s)=>{if(r===0)return 0;if(s<=0)return 0;if(s>=o[r])return r-1;let l=0,P=r-1;while(l<P){let S=l+P+1>>>1;if(o[S]<=s)l=S;else P=S-1}return l};return{getOffset:(s)=>{if(s<=0)return 0;if(s>=r)return o[r];return o[s]},getSize:(s)=>t(s),indexAtOffset:(s)=>n(s),getTotalSize:()=>o[r]??0,getTotal:()=>r,rebuild:(s)=>i(s),isVariable:()=>!0}},ot=(t,e)=>{if(typeof t==="number")return Pn(t,e);return zn(t,e)};function Yt(t){let e=[],r=`${t}-item`,o=document.createElement("div");return o.className=r,{acquire(){if(e.length>0)return e.pop();return o.cloneNode(!1)},release(i){if(i.className=r,i.removeAttribute("style"),i.removeAttribute("id"),i.removeAttribute("role"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-posinset"),i.removeAttribute("aria-setsize"),i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.textContent="",e.length<100)e.push(i)},get size(){return e.length},clear(){e.length=0}}}function We(t){let e=t.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let r=0;r<e.length;r++)e[r].setAttribute("tabindex","-1")}function Kt(t){if(typeof t==="string"){let e=document.querySelector(t);if(!e)throw Error(`[vlist] Container not found: ${t}`);return e}return t}function Xt(t,e,r,o){let i=r?`${e} ${e}--horizontal`:e,n=r?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",s=r?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",l=' role="list"';if(o)l+=` aria-label="${o.replace(/"/g,""")}"`;if(r)l+=' aria-orientation="horizontal"';t.insertAdjacentHTML("beforeend",`<div class="${i}"><div class="${e}-viewport" style="${n}" tabindex="-1"><div class="${e}-content" style="${s}"${l}></div></div></div>`);let P=t.lastElementChild,S=P.firstElementChild,g=S.firstElementChild,V=document.createElement("div");return V.className=`${e}-live`,V.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",V.setAttribute("aria-live","polite"),V.setAttribute("aria-atomic","true"),V.setAttribute("role","status"),P.appendChild(V),{root:P,viewport:S,content:g,liveRegion:V}}function qt(t){let{state:e,viewport:r,isX:o,wheelEnabled:i,onFrame:n,onIdle:s}=t,l=t.idleTimeout||Ve,P=t.scrollTarget??r,S=null,g=null;function V(){let u=o?r.scrollLeft:r.scrollTop;if(Math.abs(u-e.scrollPosition)<0.5)return;e.prevScrollPosition=e.scrollPosition,e.scrollPosition=u,e.scrollDirection=u>e.prevScrollPosition?1:u<e.prevScrollPosition?-1:0,n(),b()}function A(u){let c;if(o){if(Math.abs(u.deltaX)>Math.abs(u.deltaY))return;let d=r.scrollLeft,C=r.scrollWidth-r.clientWidth;if(c=Math.max(0,Math.min(d+u.deltaY*je,C)),Math.abs(c-d)<1)return;u.preventDefault(),r.scrollLeft=c}else{let d=r.scrollWidth>r.clientWidth;if(d&&Math.abs(u.deltaX)>Math.abs(u.deltaY))return;if(d&&u.deltaX!==0)u.preventDefault(),r.scrollLeft+=u.deltaX;let C=r.scrollTop,_=r.scrollHeight-r.clientHeight;if(c=Math.max(0,Math.min(C+u.deltaY*je,_)),Math.abs(c-C)<1)return;u.preventDefault(),r.scrollTop=c}e.prevScrollPosition=e.scrollPosition,e.scrollPosition=c,e.scrollDirection=c>e.prevScrollPosition?1:-1,n(),b()}function b(){if(S!==null)clearTimeout(S);S=setTimeout(()=>{S=null,e.scrollDirection=0,s()},l)}function F(){if(g!==null)cancelAnimationFrame(g),g=null}function R(u,c,d,C=tt,_){F();let v=e.scrollPosition,x=typeof u==="function"?u:()=>u,h=x();if(Math.abs(h-v)<1){if(d)d(h);else if(o)r.scrollLeft=h;else r.scrollTop=h;_?.();return}let W=performance.now();function O(k){h=x();let j=k-W,Z=Math.min(j/c,1),ee=v+(h-v)*C(Z);if(d)d(ee);else if(o)r.scrollLeft=ee;else r.scrollTop=ee;if(!d)e.scrollPosition=ee;if(n(),Z<1)g=requestAnimationFrame(O);else g=null,b(),_?.()}g=requestAnimationFrame(O)}return{attach(){if(P.addEventListener("scroll",V,{passive:!0}),i)P.addEventListener("wheel",A,{passive:!1})},detach(){if(P.removeEventListener("scroll",V),i)P.removeEventListener("wheel",A);if(F(),S!==null)clearTimeout(S),S=null},cancelScroll:F,smoothScrollTo:R}}function Xe(t,e,r){if(t<e)return e;if(t>r)return r;return t}function jt(t){let{state:e,viewport:r,content:o,isX:i,wheelEnabled:n,onFrame:s,onIdle:l,mainAxisPadding:P}=t,S=t.idleTimeout||Ve,g=t.runwayFactor??Ft,V=t.wrap??null,A=V!==null,b=t.scrollTarget??r,F=0,R=0,u=0,c=null,d=null;function C(){return i?r.scrollLeft:r.scrollTop}function _(z){if(i)r.scrollLeft=z;else r.scrollTop=z}function v(z){let D=A?z:Xe(z,0,R);e.prevScrollPosition=e.scrollPosition,e.scrollPosition=D,e.scrollDirection=D>e.prevScrollPosition?1:D<e.prevScrollPosition?-1:0;let E=F/2;if(A){e.baseOffset=D-E,_(E);return}let w=Xe(D-E,0,u);e.baseOffset=w,_(Xe(D-w,0,F))}function x(z){v(z),s(),j()}function h(){let z=C(),D=e.baseOffset+z;if(Math.abs(D-e.scrollPosition)<0.5)return;if(e.prevScrollPosition=e.scrollPosition,e.scrollPosition=D,e.scrollDirection=D>e.prevScrollPosition?1:D<e.prevScrollPosition?-1:0,W(z),A)O();s(),j()}function W(z){let D=F*Vt,E=F*Ot,w=F/2;if(A){if(z>=D&&z<=E)return;e.baseOffset=e.scrollPosition-w,_(w);return}if(u<=0)return;let B=e.baseOffset,m=z<D&&B>0,a=z>E&&B<u;if(!m&&!a)return;let U=e.scrollPosition,G=Xe(U-w,0,u);if(G===B)return;e.baseOffset=G,_(Xe(U-G,0,F))}function O(){let z=V.lapSize();if(z<=0)return;let D=e.scrollPosition-V.home(),E=Math.trunc(D/z);if(Math.abs(E)<V.thresholdLaps)return;let w=E*z;e.scrollPosition-=w,e.prevScrollPosition-=w,e.baseOffset-=w}function k(z){let D;if(i)if(Math.abs(z.deltaX)>Math.abs(z.deltaY)){if(!A)return;D=z.deltaX}else D=z.deltaY;else{let m=r.scrollWidth>r.clientWidth;if(m&&Math.abs(z.deltaX)>Math.abs(z.deltaY))return;if(m&&z.deltaX!==0)z.preventDefault(),r.scrollLeft+=z.deltaX;D=z.deltaY}let E=e.scrollPosition,w=E+D*je,B=A?w:Xe(w,0,R);if(Math.abs(B-E)<1)return;if(z.preventDefault(),x(B),A)O()}function j(){if(c!==null)clearTimeout(c);c=setTimeout(()=>{c=null,e.scrollDirection=0,l()},S)}function Z(){if(d!==null)cancelAnimationFrame(d),d=null}function ee(z,D,E,w=tt,B){Z();let m=e.scrollPosition,a=typeof z==="function"?z:()=>z,U=a();if(Math.abs(U-m)<1){x(U),B?.();return}let G=performance.now();function H(y){U=a();let N=Math.min((y-G)/D,1);if(v(m+(U-m)*w(N)),s(),N<1)d=requestAnimationFrame(H);else d=null,j(),B?.()}d=requestAnimationFrame(H)}function ce(z){let D=e.containerSize,E=z+P,w=D*g,B=A?w:Math.min(E,w);F=Math.max(0,B-D),R=Math.max(0,E-D),u=Math.max(0,E-B),e.totalSize=z,o.style[i?"width":"height"]=B+"px",v(e.scrollPosition)}return{attach(){if(b.addEventListener("scroll",h,{passive:!0}),n)b.addEventListener("wheel",k,{passive:!1})},detach(){if(b.removeEventListener("scroll",h),n)b.removeEventListener("wheel",k);if(Z(),c!==null)clearTimeout(c),c=null},cancelScroll:Z,smoothScrollTo:ee,setLogical:x,getLogical(){return e.scrollPosition},getMaxLogical(){return R},refresh:ce}}function An(t,e){if(t.getTotal()<=0)return{index:0,offsetPx:0};let o=e<=0?0:e,i=t.indexAtOffset(o),n=o-t.getOffset(i);return{index:i,offsetPx:n>0?n:0}}function wn(t,e){let r=Rn(t,e);return t.getOffset(r.index)+r.offsetPx}function Rn(t,e){let r=t.getTotal();if(r<=0)return{index:0,offsetPx:0};let{index:o,offsetPx:i}=e;if(o<0)return{index:0,offsetPx:0};if(o>r-1)o=r-1;while(i>0&&o<r-1){let n=t.getSize(o);if(i<n)break;i-=n,o++}while(i<0&&o>0)o--,i+=t.getSize(o);if(i<0)i=0;return{index:o,offsetPx:i}}function Zt(t){let{sizeCache:e,getPixel:r,setPixel:o,getContainerSize:i}=t;function n(){let l=e.getTotalSize()-i();return l>0?l:0}function s(l){if(l<=0)return 0;let P=n();return l>P?P:l}return{getLogical(){return An(e,r())},setLogical(l){o(s(wn(e,l)))},getPixelEquivalent(){return r()},setPixelEquivalent(l){o(s(l))},getMaxPixelEquivalent:n,scrollByPx(l){o(s(r()+l))}}}var Ze=[],Hn={calculate:Ze,commit:Ze,afterScroll:Ze,idle:Ze,resize:Ze};function Jt(t){if(t.length===0)return Hn;let e=[],r=[],o=[],i=[],n=[];for(let s=0;s<t.length;s++){let l=t[s].hooks;if(l===void 0)continue;if(l.onCalculate!==void 0)e.push(l.onCalculate);if(l.onCommit!==void 0)r.push(l.onCommit);if(l.onAfterScroll!==void 0)o.push(l.onAfterScroll);if(l.onIdle!==void 0)i.push(l.onIdle);if(l.onResize!==void 0)n.push(l.onResize)}return{calculate:e,commit:r,afterScroll:o,idle:i,resize:n}}function Qt(t,e){for(let r=0;r<t.length;r++)t[r](e)}function en(t,e){for(let r=0;r<t.length;r++)t[r](e)}function mt(t,e,r){for(let o=0;o<t.length;o++)t[o](e,r)}function tn(t){for(let e=0;e<t.length;e++)t[e]()}function nn(t,e,r){for(let o=0;o<t.length;o++)t[o](e,r)}function on(t,e,r,o,i,n,s,l){let P=o!==0||i!==0;return{prefix:t,selectedClass:`${t}-item--selected`,focusedClass:`${t}-item--focused`,placeholderClass:`${t}-item--placeholder`,replacedClass:`${t}-item--replaced`,translateProp:e?"translateX(":"translateY(",sizeProp:e?"width":"height",itemRole:"listitem",interactive:!1,startPadding:r,gap:s,hasCrossPad:P,crossStartProp:P?e?"top":"left":"",crossEndProp:P?e?"bottom":"right":"",crossStartVal:P?o+"px":"",crossEndVal:P?i+"px":"",oddClass:n,emitter:l??null,indexMap:null,ariaTotalFn:null}}function _n(t,e,r,o,i){if(t.containerSize<=0||t.totalItems===0)return t.clear(),!0;let{scrollPosition:n,containerSize:s,totalItems:l}=t,P=i??0;t.totalSize=e.getTotalSize();let S=e.indexAtOffset(P>0?Math.max(0,n-P):n),g=e.indexAtOffset(n+s);if(g<l-1)g++;S=Math.max(0,S),g=Math.min(l-1,Math.max(0,g));let V=Math.max(0,S-r),A=Math.min(l-1,g+r),b=Math.ceil(s/1)+r*2+10,F=A-V+1,R=Math.min(F,t.capacity,b);if(V===t.prevRangeStart&&A===t.prevRangeEnd&&!t.renderPending&&t.baseOffset===t.prevBaseOffset)return!1;t.visibleCount=R,t.startIndex=V;for(let u=0;u<R;u++){let c=V+u;t.visibleIndices[u]=c,t.visibleOffsets[u]=e.getOffset(c),t.visibleSizes[u]=e.getSize(c)}return Qt(o.calculate,t),t.prevRangeStart=V,t.prevRangeEnd=A,t.prevBaseOffset=t.baseOffset,t.renderPending=!1,!0}var Re={selected:!1,focused:!1};function kn(t,e,r){for(let o=0;o<e;o++)if(t[o]===r)return!0;return!1}function Fn(t,e){if(e<=1)return!0;let r=t[0];for(let o=1;o<e;o++){let i=t[o];if(i!==r+1)return!1;r=i}return!0}function Dn(t,e,r,o,i,n,s,l,P,S){let g=P?null:i(),{visibleCount:V,visibleIndices:A}=t,b=s.ariaTotalFn?s.ariaTotalFn():t.totalItems,F=s.interactive?String(b):"",R=s.interactive&&b!==t.prevAriaTotal,u=null,c=s.indexMap;for(let d=0;d<V;d++){let C=A[d],_=c?c(C):C,v=t.visibleOffsets[d],x=t.visibleSizes[d],h=P?P(C):g[C];if(S)S(_,Re);else Re.selected=!1,Re.focused=!1;let W=n.get(C),O=W;if(W===void 0){let k=e.acquire();if(h!==void 0){let ee;try{ee=o(h,_,Re)}catch(ce){if(s.emitter)s.emitter.emit("error",{error:ce instanceof Error?ce:Error(String(ce)),context:`template:render:${_}`});e.release(k);continue}if(typeof ee==="string")k.innerHTML=ee;else k.textContent="",k.appendChild(ee);We(k)}if(k.setAttribute("role",s.itemRole),k.setAttribute("data-index",String(_)),s.interactive)k.id=s.prefix+"-item-"+C,k.setAttribute("aria-posinset",String(_+1)),k.setAttribute("aria-setsize",F);if(h!==void 0){let ee=String(h.id);if(k.setAttribute("data-id",ee),ee.startsWith(_e))k.classList.add(s.placeholderClass)}if(s.hasCrossPad)k.style.setProperty(s.crossStartProp,s.crossStartVal),k.style.setProperty(s.crossEndProp,s.crossEndVal);if(S){if(k.classList.toggle(s.selectedClass,Re.selected),k.classList.toggle(s.focusedClass,Re.focused),Re.selected)k.setAttribute("aria-selected","true");else k.removeAttribute("aria-selected");k._lastSelected=Re.selected,k._lastFocused=Re.focused}if(s.oddClass)k.classList.toggle(s.oddClass,(C&1)===1);let j=v-t.baseOffset+s.startPadding;k.style.transform=s.translateProp+j+"px)",k._lastOffset=j;let Z=x-s.gap;if(k.style[s.sizeProp]=Z+"px",k._lastSize=Z,k._lastItem=h,n.set(C,k),u===null)u=document.createDocumentFragment();u.appendChild(k)}else{if(R)W.setAttribute("aria-setsize",F);if(h!==void 0&&O._lastItem!==h){let Z=W.getAttribute("data-id"),ee=String(h.id),ce;try{ce=o(h,_,Re)}catch(z){if(s.emitter)s.emitter.emit("error",{error:z instanceof Error?z:Error(String(z)),context:`template:render:${_}`});continue}if(typeof ce==="string")W.innerHTML=ce;else W.textContent="",W.appendChild(ce);if(We(W),W.setAttribute("data-id",ee),O._lastItem=h,Z!==ee){let z=Z!==null&&Z.startsWith(_e),D=ee.startsWith(_e);if(z!==D)W.classList.toggle(s.placeholderClass,D);if(z&&!D)W.classList.add(s.replacedClass),setTimeout(()=>{W.classList.remove(s.replacedClass)},300)}}if(S){if(O._lastSelected!==Re.selected){if(W.classList.toggle(s.selectedClass,Re.selected),Re.selected)W.setAttribute("aria-selected","true");else W.removeAttribute("aria-selected");O._lastSelected=Re.selected}if(O._lastFocused!==Re.focused)W.classList.toggle(s.focusedClass,Re.focused),O._lastFocused=Re.focused}let k=v-t.baseOffset+s.startPadding;if(O._lastOffset!==k)W.style.transform=s.translateProp+k+"px)",O._lastOffset=k;let j=x-s.gap;if(O._lastSize!==j)W.style[s.sizeProp]=j+"px",O._lastSize=j}}if(u!==null)r.appendChild(u);if(V>0&&Fn(A,V)){let d=A[0],C=A[V-1];for(let[_,v]of n)if(_<d||_>C)v.remove(),e.release(v),n.delete(_)}else for(let[d,C]of n)if(!kn(A,V,d))C.remove(),e.release(C),n.delete(d);if(s.interactive)t.prevAriaTotal=t.totalItems;en(l.commit,t)}function ft(t,e,r,o,i,n,s,l,P,S,g,V){if(_n(t,e,r,S,P.startPadding))Dn(t,o,i,n,s,l,P,S,g,V)}var gt=()=>{let t={},e=(n,s)=>{if(!t[n])t[n]=new Set;return t[n].add(s),()=>r(n,s)},r=(n,s)=>{t[n]?.delete(s)};return{on:e,off:r,emit:(n,s)=>{t[n]?.forEach((l)=>{try{l(s)}catch(P){console.error(`[vlist] Error in event handler for "${String(n)}":`,P)}})},clear:(n)=>{if(n)delete t[n];else for(let s in t)delete t[s]}}};var rn=2,sn=(t=0)=>({velocity:0,sampleCount:0}),ln=(t,e)=>{let r=performance.now(),o=t._lt??r,i=t._lp??e,n=r-o;if(t._lp=e,t._lt=r,n===0)return t.sampleCount=Math.min(t.sampleCount+1,5),t;if(n>100)return t.velocity=0,t.sampleCount=1,t;return t.velocity=Math.abs(e-i)/n,t.sampleCount=Math.min(t.sampleCount+1,5),t};function Vn(t){let{item:e}=t;if(e.height!==void 0&&typeof e.height==="number"){if(!Number.isFinite(e.height)||e.height<=0)throw Error(`vlist: item.height must be a positive number, got ${e.height}`)}if(e.width!==void 0&&typeof e.width==="number"){if(!Number.isFinite(e.width)||e.width<=0)throw Error(`vlist: item.width must be a positive number, got ${e.width}`)}if(e.estimatedHeight!==void 0){if(!Number.isFinite(e.estimatedHeight)||e.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${e.estimatedHeight}`)}if(e.estimatedWidth!==void 0){if(!Number.isFinite(e.estimatedWidth)||e.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${e.estimatedWidth}`)}if(e.gap!==void 0){if(typeof e.gap!=="number"||!Number.isFinite(e.gap)||e.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${e.gap}`)}if(t.overscan!==void 0){if(typeof t.overscan!=="number"||!Number.isFinite(t.overscan)||t.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${t.overscan}`)}if(t.scroll?.runway!==void 0){if(typeof t.scroll.runway!=="number"||!Number.isFinite(t.scroll.runway)||t.scroll.runway<=0)throw Error(`vlist: scroll.runway must be a positive number, got ${t.scroll.runway}`)}}function On(t,e){let r=t==="horizontal"?"x":"y";if(e.some((i)=>i.name==="grid"))return{primary:r,cross:r==="x"?"y":"x"};return{primary:r}}function Gn(t,e){let r=On(t.orientation,e),o=r.primary==="x",i=Bt(t.padding);return{axis:r,hasCrossAxis:r.cross!==void 0,overscan:t.overscan??Qe,reverse:t.reverse??!1,classPrefix:t.classPrefix??zt,mainAxisPadding:Nt(i,o),crossAxisPadding:Wt(i,o),startPadding:o?i.left:i.top,endPadding:o?i.right:i.bottom,crossPadStart:o?i.top:i.left,crossPadEnd:o?i.bottom:i.right,striped:t.item.striped||!1,gap:t.item.gap??0}}function $n(t,e){if(e)return t.item.width??t.item.estimatedWidth??100;return t.item.height??t.item.estimatedHeight??40}function Bn(t){let e=[...t];return e.sort((r,o)=>(r.priority??50)-(o.priority??50)),e}function Nn(t){let e=new Set;for(let r of t){if(e.has(r.name))throw Error(`[vlist] Duplicate plugin: ${r.name}`);e.add(r.name)}for(let r of t)if(r.conflicts){for(let o of r.conflicts)if(e.has(o))throw Error(`[vlist] Plugin "${r.name}" conflicts with "${o}"`)}}function an(t,e=[],r){Vn(t);let o=Gn(t,e),i=o.axis.primary==="x",n=t.scroll?.mode==="bounded"||!!r,s=$n(t,i),l=o.gap,P=l>0?typeof s==="function"?(re)=>s(re)+l:s+l:s,S=typeof s==="number"?s:20,g=t.items?.length??0,V=o.striped?`${o.classPrefix}-item--odd`:"",A=gt(),b=on(o.classPrefix,i,o.startPadding,o.crossPadStart,o.crossPadEnd,V,l,A),F=e.length>0?Bn(e):e;if(e.length>0)Nn(F);let R=Kt(t.container),u=Xt(R,o.classPrefix,i,t.ariaLabel);if(t.scroll?.scrollbar==="none")u.viewport.classList.add(`${o.classPrefix}-viewport--no-scrollbar`);if(t.scroll?.gutter==="stable")u.viewport.classList.add(`${o.classPrefix}-viewport--gutter-stable`);let d=ot(P,g);if(l>0){let re=d.getTotalSize;d.getTotalSize=()=>{let T=re();return T>0?T-l:0}}let C=Yt(o.classPrefix),_=Math.ceil(4096/S)+o.overscan*2+8,v=Ut(_);v.totalItems=g;let x=t.items??[],h=()=>x,W=new Map,O=sn(),k={velocity:0,reliable:!1},j={range:{start:0,end:-1}},Z={scrollPosition:0,direction:"down"},ee={scrollPosition:0},ce=-1,z=-1,D=-1,E=null,w=Jt(F),B=new Map,m=[],a=[],U=[],G=null,H=null,y=null,N=null,ae=null,q=null,p=null,M=null,L=null,I=null,Y=null,te=!1,Ee=!1,de=null,ne=0,ue=0,ge=null,be=null,ie=null,f=null,X=null,oe=null,me=null,ve=null,Se=null;v.containerSize=i?u.viewport.clientWidth:u.viewport.clientHeight,v.crossSize=i?u.viewport.clientHeight:u.viewport.clientWidth;let ye=Zt({sizeCache:d,getPixel:()=>H?H():v.scrollPosition,setPixel:(re)=>{if(y)y(re);else if(i)u.viewport.scrollLeft=re;else u.viewport.scrollTop=re},getContainerSize:()=>v.containerSize});if(e.length>0){let re={dom:u,sizeCache:d,scroll:ye,pool:C,config:o,emitter:A,template:t.item.template,registerMethod(T,pe){B.set(T,pe)},getMethod(T){return B.get(T)},registerClickHandler(T){m.push(T)},registerKeydownHandler(T){a.push(T)},registerDestroyHandler(T){U.push(T)},enableListboxRole(){let T=u.content.getAttribute("role");if(!T||T==="list")u.content.setAttribute("role","listbox"),u.content.setAttribute("tabindex","0");b.itemRole="option",b.interactive=!0},setSizeConfig(T){let pe=ot(T,v.totalItems),Pe=B.get("_setSizeCacheBase");if(Pe){let Ae=d.rebuild;Object.assign(d,pe),d.rebuild=Ae,Pe(pe.rebuild)}else Object.assign(d,pe)},setScrollFns(T,pe){H=T,y=pe},setBoundedWrap(T){Se=T},cancelScroll(){Le?.cancelScroll()},setVirtualTotalFn(T){G=T,b.ariaTotalFn=T},setIndexMapFn(T){b.indexMap=T},getItems:h,getItem(T){return q?q(T):x[T]},getState(){return v},rebuildSizeCache(){d.rebuild(v.totalItems)},updateContentSize(T){if(ve){ve.refresh(T);return}v.totalSize=T,u.content.style[i?"width":"height"]=T+o.mainAxisPadding+"px"},setRenderFn(T,pe){N=T,ae=pe},renderIfNeeded(){J()},forceRender(){se()},setGetItemFn(T){q=T},setItemStateFn(T){p=T},getItemStateFn(){return p},get rawSizeSpec(){return s},scrollTo(T){if(y)y(T);else if(i)u.viewport.scrollLeft=T;else u.viewport.scrollTop=T},shiftScroll(T){if(ve?.shiftBy)ve.shiftBy(T);else re.scrollTo(v.scrollPosition+T)},smoothScrollTo(T,pe,Pe,Ae){if(f)f(T,pe,y??void 0,Pe,Ae);else re.scrollTo(typeof T==="function"?T():T)},disableDefaultScroll(){te=!0},disableDefaultResize(){Ee=!0},setScrollTarget(T){de=T},setScrollToPosFn(T){X=T},setScrollToIndexFn(T){oe=T},onScrollFrame:Ie,onScrollIdle:K,removeItemById(T){if(M)return M(T);let pe=x.findIndex((Pe)=>Pe.id===T);if(pe===-1)return-1;return x.splice(pe,1),v.totalItems=x.length,d.rebuild(v.totalItems),Q(),pe},insertItemAt(T,pe){if(L){L(T,pe);return}x.splice(pe,0,T),v.totalItems=x.length,d.rebuild(v.totalItems),Q()},setRemoveItemFn(T){M=T},setInsertItemFn(T){L=T},setUpdateItemFn(T){I=T},setGetIndexByIdFn(T){Y=T},getRenderedElement(T){let pe=B.get("_getRenderedElement");if(pe)return pe(T);return W.get(T)??null},setNavConfig(T){if(T.ud!==void 0)ne=T.ud;if(T.lr!==void 0)ue=T.lr;if(T.scrollIndex)ge=T.scrollIndex;if(T.navigate)be=T.navigate;if(T.total)ie=T.total},getNavConfig:(()=>{let T={ud:0,lr:0,scrollIndex:null,navigate:null,total:null};return()=>(T.ud=ne,T.lr=ue,T.scrollIndex=ge,T.navigate=be,T.total=ie,T)})()};for(let T of F)if(T.setup)try{T.setup(re)}catch(pe){A.emit("error",{error:pe instanceof Error?pe:Error(String(pe)),context:`plugin:setup:${T.name}`})}}let fe=o.classPrefix+"--scrolling",he=!1,Me=t.scroll?.idleTimeout??Ve;function xe(){if(Z.scrollPosition=ye.getPixelEquivalent(),i)Z.direction=v.scrollDirection>0?"right":"left";else Z.direction=v.scrollDirection>0?"down":"up";if(A.emit("scroll",Z),ln(O,v.scrollPosition),k.velocity=O.velocity,k.reliable=O.sampleCount>=rn,A.emit("velocity:change",k),v.startIndex!==ce||v.prevRangeEnd!==z)ce=v.startIndex,z=v.prevRangeEnd,j.range.start=v.startIndex,j.range.end=v.prevRangeEnd,A.emit("range:change",j)}let Te=!1;function Q(){if(N)return;let re=d.getTotalSize();if(ve){ve.refresh(re);return}if(u.content.style[i?"width":"height"]=re+o.mainAxisPadding+"px",!Te&&re>ut)Te=!0,A.emit("error",{error:Error(`Content size (${re}px) exceeds browser limit (${ut}px). Enable bounded scroll (scroll: { mode: "bounded" }) for large datasets.`),context:"content:size:overflow"})}function le(){if(!me)return;if((G?G():x.length)===0)return;let T=me;me=null,Ke.scrollToIndex(T.index,T.alignOrOptions)}function J(){if(le(),N)N();else ft(v,d,o.overscan,C,u.content,t.item.template,h,W,b,w,q,p)}function Ie(){if(!he)he=!0,u.root.classList.add(fe);if(J(),mt(w.afterScroll,v.scrollPosition,v.scrollDirection),v.scrollPosition!==D)D=v.scrollPosition,xe()}function K(){if(he)he=!1,u.root.classList.remove(fe);v.scrollDirection=0,tn(w.idle),k.velocity=0,k.reliable=!1,A.emit("velocity:change",k),ee.scrollPosition=ye.getPixelEquivalent(),A.emit("scroll:idle",ee)}function se(){if(le(),v.renderPending=!0,ae)ae();else ft(v,d,o.overscan,C,u.content,t.item.template,h,W,b,w,q,p);if(mt(w.afterScroll,v.scrollPosition,v.scrollDirection),v.scrollPosition!==D){if(D=v.scrollPosition,xe(),E!==null)clearTimeout(E);E=setTimeout(K,Me)}}let Ce=te?!1:t.scroll?.wheel!==!1,Le;if(te&&(n||Se))throw Error(`vlist: page() is not compatible with ${Se?"the carousel plugin":'scroll: { mode: "bounded" }'} — bounded page-mode scrolling is not implemented yet.`);if(n||Se)ve=(r??jt)({state:v,sizeCache:d,viewport:u.viewport,content:u.content,isX:i,wheelEnabled:Ce,idleTimeout:t.scroll?.idleTimeout??Ve,...de?{scrollTarget:de}:{},mainAxisPadding:o.mainAxisPadding,...t.scroll?.runway!==void 0?{runwayFactor:Math.max(Dt,t.scroll.runway)}:{},...Se?{wrap:Se}:{},onFrame:Ie,onIdle:K}),Le=ve,H=()=>v.scrollPosition,y=(re)=>ve.setLogical(re);else Le=qt({state:v,viewport:u.viewport,isX:i,wheelEnabled:Ce,idleTimeout:t.scroll?.idleTimeout??Ve,...de?{scrollTarget:de}:{},onFrame:Ie,onIdle:K});f=Le.smoothScrollTo;function ze(re){let pe=re.target.closest("[data-index]");if(!pe)return null;let Pe=parseInt(pe.getAttribute("data-index"),10);if(Number.isNaN(Pe))return null;let Ae=B.get("_layoutToDataIndex"),ke;if(Ae){let Fe=Ae(Pe);if(Fe<0)return null;let qe=B.get("_getItem");ke=qe?qe(Fe):q?q(Fe):x[Fe]}else ke=q?q(Pe):x[Pe];if(ke===void 0)return null;return{item:ke,index:Pe}}function $e(re){for(let pe=0;pe<m.length;pe++)m[pe](re);let T=ze(re);if(T)A.emit("item:click",{item:T.item,index:T.index,event:re})}function He(re){let T=ze(re);if(T)A.emit("item:dblclick",{item:T.item,index:T.index,event:re})}function Ye(re){let T=ze(re);if(T)A.emit("item:contextmenu",{item:T.item,index:T.index,event:re})}function Be(re){let T=re.target?.tagName;if((T==="INPUT"||T==="TEXTAREA"||T==="SELECT")&&!((re.ctrlKey||re.metaKey)&&(re.key==="f"||re.key==="F")))return;for(let pe=0;pe<a.length;pe++)a[pe](re)}if(u.content.addEventListener("click",$e),u.content.addEventListener("dblclick",He),u.content.addEventListener("contextmenu",Ye),a.length>0)u.root.addEventListener("keydown",Be);let we=null;if(!Ee)setTimeout(()=>{if(v.destroyed)return;we=new ResizeObserver((T)=>{for(let pe of T){let{width:Pe,height:Ae}=pe.contentRect,ke=i?Pe:Ae,Fe=i?Ae:Pe;if(Math.abs(ke-v.containerSize)<1&&Math.abs(Fe-v.crossSize)<1)continue;if(v.containerSize=ke,v.crossSize=Fe,v.resizeCapacity(ke,S,o.overscan),ve)ve.refresh(d.getTotalSize());se(),nn(w.resize,Pe,Ae),A.emit("resize",{width:Pe,height:Ae})}}),we.observe(u.viewport)},0);v.resizeCapacity(v.containerSize,S,o.overscan),Q(),v.initialized=!0;let Ne=null;if(t.defer)Ne=requestAnimationFrame(()=>{if(Ne=null,!v.destroyed)J()});else J();if(!te)Le.attach();let Ke={get element(){return u.root},get items(){return x},get total(){return G?G():x.length},setItems(re){x=[...re],v.totalItems=x.length,d.rebuild(v.totalItems),Q(),se()},appendItems(re){x.push(...re),v.totalItems=x.length,d.rebuild(v.totalItems),Q(),se()},prependItems(re){x.unshift(...re),v.totalItems=x.length,d.rebuild(v.totalItems),Q(),se()},updateItem(re,T){if(I){if(!I(re,T))return}else{let pe=x.findIndex((Pe)=>Pe.id===re);if(pe===-1)return;x[pe]={...x[pe],...T}}se()},insertItem(re,T){if(L)L(re,T??v.totalItems);else{if(T===void 0)x.push(re);else x.splice(T,0,re);v.totalItems=x.length,d.rebuild(v.totalItems),Q()}se()},removeItem(re){if(M){if(M(re)<0)return}else{let T=x.findIndex((pe)=>pe.id===re);if(T===-1)return;x.splice(T,1),v.totalItems=x.length,d.rebuild(v.totalItems),Q()}se()},removeItems(re){if(M){let Ae=0;for(let ke of re)if(M(ke)>=0)Ae++;if(Ae>0)se();return Ae}let T=new Set(re),pe=x.length;x=x.filter((Ae)=>!T.has(Ae.id));let Pe=pe-x.length;if(Pe>0)v.totalItems=x.length,d.rebuild(v.totalItems),Q(),v.renderPending=!0,J();return Pe},getItemAt(re){if(b.indexMap)return x[re];return q?q(re):x[re]},getIndexById(re){if(Y)return Y(re);return x.findIndex((T)=>T.id===re)},scrollToIndex(re,T="start"){let pe=G?G():x.length;if(pe===0){me={index:re,alignOrOptions:T};return}let Pe=Math.max(0,Math.min(re,pe-1)),Ae=typeof T==="string"?T:T.align??"start",ke=typeof T==="object"?T.behavior:void 0,Fe=typeof T==="object"?T.duration:void 0,qe=typeof T==="object"?T.easing:void 0;if(oe&&oe(Pe,Ae,ke,Fe,qe)!==!1)return;let at=d.getOffset(Pe),Ct=d.getSize(Pe),Je=v.containerSize,En=d.getTotalSize(),Pt=o.mainAxisPadding,Mn=Math.max(0,En+Pt-Je),De;if(X)De=X(Pe,d,Je,pe,Ae);else{let Cn=o.startPadding;switch(Ae){case"center":De=Cn+at-(Je-Ct)/2;break;case"end":De=at+Ct+Pt-Je;break;default:De=at}De=Math.max(0,Math.min(De,Mn))}if(ke==="smooth")Le.smoothScrollTo(De,Fe??kt,y??void 0,qe);else if(y)y(De);else if(i)u.viewport.scrollLeft=De;else u.viewport.scrollTop=De},getScrollPosition(){return ye.getPixelEquivalent()},on:A.on.bind(A),off:A.off.bind(A),destroy(){if(v.destroyed)return;if(v.destroyed=!0,he)he=!1,u.root.classList.remove(fe);if(Ne!==null)cancelAnimationFrame(Ne),Ne=null;if(E!==null)clearTimeout(E),E=null;Le.detach(),we?.disconnect(),u.content.removeEventListener("click",$e),u.content.removeEventListener("dblclick",He),u.content.removeEventListener("contextmenu",Ye),u.root.removeEventListener("keydown",Be);let re=[];for(let T of U)try{T()}catch(pe){re.push(pe instanceof Error?pe:Error(String(pe)))}for(let T of F)if(T.destroy)try{T.destroy()}catch(pe){re.push(pe instanceof Error?pe:Error(String(pe)))}for(let[,T]of W)T.remove();if(W.clear(),C.clear(),u.root.remove(),A.emit("destroy",void 0),A.clear(),re.length>0)for(let T of re)console.error("vlist: error during destroy:",T)}};for(let[re,T]of B)Ke[re]=T;return Ke}var rt=(t)=>t==null?0:typeof t==="function"?t():t;function pt(t){let e=t?.scrollPadding,r,o;return{name:"page",priority:5,setup(i){let{dom:n,sizeCache:s,config:l,emitter:P}=i,S=l.axis.primary==="x",g=window,V=i.getState();if(i.disableDefaultScroll(),i.disableDefaultResize(),n.root.style.overflow="visible",n.root.style.height="auto",S)n.viewport.style.overflowX="visible",n.viewport.style.overflowY="visible";else n.viewport.style.overflow="visible";n.viewport.classList.remove(`${l.classPrefix}-viewport--custom-scrollbar`),i.setScrollFns(()=>{let c=n.viewport.getBoundingClientRect();return Math.max(0,S?-c.left:-c.top)},(c)=>{let d=n.viewport.getBoundingClientRect(),C=(S?d.left+g.scrollX:d.top+g.scrollY)+c;if(S)g.scrollTo({left:C,top:g.scrollY,behavior:"instant"});else g.scrollTo({left:g.scrollX,top:C,behavior:"instant"})}),V.containerSize=S?g.innerWidth:g.innerHeight,V.crossSize=S?g.innerHeight:g.innerWidth;let A=null,b=()=>{let c=n.viewport.getBoundingClientRect(),d=Math.max(0,S?-c.left:-c.top);if(V.prevScrollPosition=V.scrollPosition,V.scrollPosition=d,V.scrollDirection=d>V.prevScrollPosition?1:d<V.prevScrollPosition?-1:0,i.onScrollFrame(),A!==null)clearTimeout(A);A=setTimeout(()=>{A=null,i.onScrollIdle()},150)};g.addEventListener("scroll",b,{passive:!0}),o=()=>g.removeEventListener("scroll",b);let{innerWidth:F,innerHeight:R}=g,u=()=>{let{innerWidth:c,innerHeight:d}=g;if((S?Math.abs(c-F):Math.abs(d-R))<1)return;F=c,R=d,V.containerSize=S?c:d,V.crossSize=S?d:c,i.forceRender(),P.emit("resize",{width:c,height:d})};if(g.addEventListener("resize",u),r=()=>g.removeEventListener("resize",u),e)i.setScrollToPosFn((c,d,C,_,v)=>{let x=rt(S?e.left:e.top),h=rt(S?e.right:e.bottom);if(_===0)return 0;let W=Math.max(0,Math.min(c,_-1)),O=d.getOffset(W),k=d.getSize(W),j=d.getTotalSize(),Z=Math.max(0,j-C+h),ee;switch(v){case"center":ee=O-x-(C-x-h-k)/2;break;case"end":ee=O-C+k+h;break;default:ee=O-x}return Math.max(-x,Math.min(ee,Z))}),i.registerMethod("_scrollItemIntoView",(c)=>{let d=S?g.innerWidth:g.innerHeight,C=rt(S?e.left:e.top),_=rt(S?e.right:e.bottom),v=n.viewport.getBoundingClientRect(),x=S?g.scrollX:g.scrollY,h=S?v.left:v.top,W=h+x,O=s.getOffset(c),k=s.getSize(c),j=h+O,Z=d-_,ee=x;if(j<C)ee=W+O-C;else if(j+k>Z)ee=W+O+k-Z;if(ee!==x)if(S)g.scrollTo({left:ee,top:g.scrollY,behavior:"instant"});else g.scrollTo({left:g.scrollX,top:ee,behavior:"instant"})});i.registerDestroyHandler(()=>{if(o?.(),r?.(),A!==null)clearTimeout(A)})},destroy(){o?.(),r?.(),o=void 0,r=void 0}}}function bt(t){let e=t?.gap??0,r=null,o=null,i,n,s,l,P=new Map,S=new Set,g=new WeakMap,V=0,A=!1,b=!1,F=!1,R=2;function u(h){return P.get(h)??l}function c(h){return P.has(h)&&!S.has(h)}function d(h){if(!o||i.destroyed)return;if(!P.has(h))return;S.add(h),o.forceRender()}function C(){return Math.max(0,o.sizeCache.getTotalSize()+o.config.mainAxisPadding-i.containerSize)}function _(){let h=C();return h>0&&i.scrollPosition>=h-R}function v(){let h=C();if(h>i.scrollPosition)o.scrollTo(h)}function x(){o.updateContentSize(o.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(h){if(o=h,i=h.getState(),n=h.config.axis.primary==="x",s=n?"width":"height",e===0)e=h.config.gap;if(l=typeof h.rawSizeSpec==="function"?h.rawSizeSpec(0)+e:h.rawSizeSpec+e,h.setSizeConfig(u),e>0){let Z=h.sizeCache.getTotalSize;h.sizeCache.getTotalSize=()=>{let ee=Z();return ee>0?ee-e:0}}r=new ResizeObserver((Z)=>{if(i.destroyed||!o)return;let ee=!1,ce=h.sizeCache.indexAtOffset(i.scrollPosition);for(let B of Z){let m=B.target,a=g.get(m);if(a===void 0)continue;if(m.getAttribute("data-index")!==String(a)){r.unobserve(m);continue}if(c(a))continue;let U=B.borderBoxSize[0];if(!U)continue;let G=n?U.inlineSize:U.blockSize;if(G<=0)continue;let H=G+e,y=P.has(a),N=P.get(a)??l;if(P.set(a,H),S.delete(a),!y||H!==N)ee=!0;if(a<ce&&H!==N)V+=H-N;r.unobserve(m),m.style[s]=`${G}px`}if(!ee)return;let z=_();if(h.rebuildSizeCache(),V)h.shiftScroll(V),V=0;let D=i.scrollDirection!==0,E=i.totalItems>0&&i.prevRangeEnd>=i.totalItems-1,w=b&&!F;if(w||z||E||!D){if(x(),A=!1,w||z)v()}else A=!0;h.forceRender()}),h.setScrollToIndexFn((Z,ee,ce,z,D)=>{let E=Z>=i.totalItems-1&&ee==="end";if(b=E,F=!1,!E)return!1;let w=h.config.mainAxisPadding,B=()=>{let m=h.sizeCache.getTotalSize();return Math.max(0,m+w-i.containerSize)};if(ce==="smooth")F=!0,h.smoothScrollTo(B,z??300,D,()=>{F=!1});else h.scrollTo(B())});let W=()=>{b=!1},O=h.dom.viewport;O.addEventListener("wheel",W,{passive:!0}),O.addEventListener("touchstart",W,{passive:!0}),h.registerDestroyHandler(()=>{O.removeEventListener("wheel",W),O.removeEventListener("touchstart",W)});let k=h.dom.content,j=(Z)=>{let ee=Z.target;if(!ee||ee===k)return;let ce=ee.closest("[data-index]");if(!ce||ce.parentNode!==k)return;let z=Number(ce.getAttribute("data-index"));if(c(z))d(z)};k.addEventListener("load",j,!0),k.addEventListener("error",j,!0),h.registerDestroyHandler(()=>{k.removeEventListener("load",j,!0),k.removeEventListener("error",j,!0)}),h.registerMethod("isMeasured",c),h.registerMethod("setMeasuredSize",(Z,ee)=>{P.set(Z,ee)}),h.registerMethod("getMeasuredCount",()=>P.size),h.registerDestroyHandler(()=>{if(r)r.disconnect(),r=null})},hooks:{onCommit(h){if(!r||!o)return;for(let W=0;W<h.visibleCount;W++){let O=h.visibleIndices[W];if(c(O))continue;let k=o.getRenderedElement(O);if(!k)continue;k.style[s]="",g.set(k,O),r.observe(k)}},onIdle(){if(!o||!A)return;let h=_();if(x(),A=!1,h)v(),o.forceRender()}},destroy(){if(r)r.disconnect(),r=null;P.clear(),S.clear(),b=!1,F=!1,o=null}}}var dn=(t={})=>{let{chunkSize:e=100,maxCachedItems:r=5000,evictionBuffer:o=200,onEvict:i}=t,n=new Map,s=0,l=0,P=(E)=>{let w=n.get(E);if(!w)w={items:Array(e),count:0,lastAccess:Date.now()},n.set(E,w);else w.lastAccess=Date.now();return w},S=(E)=>Math.floor(E/e),g=(E)=>E%e,V=()=>s,A=(E)=>{s=E},b=(E)=>{if(E<0||E>=s)return;let w=S(E),B=n.get(w);if(!B)return;return B.items[g(E)]},F=(E)=>{if(E<0||E>=s)return!1;let w=S(E),B=n.get(w);if(!B)return!1;return B.items[g(E)]!==void 0},R=(E,w)=>{let B=S(E),m=P(B),a=g(E),U=m.items[a]===void 0;if(m.items[a]=w,U)m.count++,l++;if(E>=s)s=E+1},u=(E,w)=>{for(let B=0;B<w.length;B++){let m=w[B];if(m!==void 0)R(E+B,m)}},c=(E,w)=>{if(E<0||E>s)return;let B=S(E),m=Array.from(n.keys()).filter((y)=>y>=B).sort((y,N)=>y-N),a=[];for(let y of m){let N=n.get(y),ae=y*e;for(let q=0;q<e;q++){if(N.items[q]===void 0)continue;let p=ae+q;if(p<E)continue;a.push({oldIndex:p,item:N.items[q]})}}for(let{oldIndex:y}of a){let N=S(y),ae=n.get(N);if(!ae)continue;let q=g(y);if(ae.items[q]!==void 0){if(ae.items[q]=void 0,ae.count--,l--,ae.count===0)n.delete(N)}}s++;for(let{oldIndex:y,item:N}of a){let ae=y+1,q=S(ae),p=P(q),M=g(ae);p.items[M]=N,p.count++,l++}let U=S(E),G=P(U),H=g(E);G.items[H]=w,G.count++,l++},d=(E)=>{if(E<0||E>=s)return!1;let w=S(E),B=n.get(w),m=g(E);if(!(B!==void 0&&B.items[m]!==void 0))return!1;let U=w,G=Array.from(n.keys()).filter((y)=>y>=U).sort((y,N)=>y-N),H=[];for(let y of G){let N=n.get(y),ae=y*e;for(let q=0;q<e;q++){if(N.items[q]===void 0)continue;let p=ae+q;if(p<=E)continue;H.push({oldIndex:p,item:N.items[q]})}}if(B.items[m]=void 0,B.count--,l--,B.count===0)n.delete(w);for(let{oldIndex:y}of H){let N=S(y),ae=n.get(N);if(!ae)continue;let q=g(y);if(ae.items[q]!==void 0){if(ae.items[q]=void 0,ae.count--,l--,ae.count===0)n.delete(N)}}for(let{oldIndex:y,item:N}of H){let ae=y-1,q=S(ae),p=P(q),M=g(ae);p.items[M]=N,p.count++,l++}return s--,!0},C=(E,w)=>{let B=[];for(let m=E;m<=w&&m<s;m++)B.push(b(m));return B},_=(E,w)=>{for(let B=E;B<=w&&B<s;B++)if(!F(B))return!1;return!0},v=()=>{let E=[],w=null,B=Array.from(n.keys()).sort((m,a)=>m-a);for(let m of B){let a=n.get(m);if(!a)continue;let U=m*e;for(let G=0;G<e;G++){let H=U+G;if(H>=s)break;if(a.items[G]!==void 0)if(w===null)w={start:H,end:H};else if(H===w.end+1)w.end=H;else E.push(w),w={start:H,end:H};else if(w!==null)E.push(w),w=null}}if(w!==null)E.push(w);return E},x=(E,w)=>{let B=[],m=null;for(let a=E;a<=w&&a<s;a++)if(!F(a))if(m===null)m={start:a,end:a};else m.end=a;else if(m!==null)B.push(m),m=null;if(m!==null)B.push(m);return B},h=(E)=>n.has(E),W=(E)=>{let w=n.get(E);if(!w)return!1;let B=E*e,m=Math.min(e,s-B);return w.count>=m},O=(E)=>{let w=n.get(E);if(w)w.lastAccess=Date.now()},k=(E,w)=>{if(E>w||n.size===0)return;let B=Date.now(),m=S(Math.max(0,E)),a=S(Math.min(s-1,w));for(let U=m;U<=a;U++){let G=n.get(U);if(G)G.lastAccess=B}},j=(E,w)=>{if(l<=r)return 0;let B=Math.max(0,E-o),m=Math.min(s-1,w+o),a=S(B),U=S(m),G=0,H=[];for(let[y,N]of n)if(y<a||y>U)G+=N.count,H.push(y),l-=N.count,n.delete(y);if(G>0&&i)i(G,H);return G},Z=()=>{if(l<=r)return 0;let E=Array.from(n.entries()).sort(([,m],[,a])=>m.lastAccess-a.lastAccess),w=0,B=[];for(let[m,a]of E){if(l<=r)break;w+=a.count,l-=a.count,B.push(m),n.delete(m)}if(w>0&&i)i(w,B);return w},ee=()=>({totalItems:s,cachedItems:l,cachedChunks:n.size,chunkSize:e,maxCachedItems:r,memoryEfficiency:s>0?1-l/s:1}),ce=()=>l,z=()=>{n.clear(),l=0};return{chunkSize:e,maxCachedItems:r,getTotal:V,setTotal:A,get:b,has:F,set:R,setRange:u,insert:c,delete:d,getRange:C,isRangeLoaded:_,getLoadedRanges:v,findUnloadedRanges:x,getChunkIndex:S,isChunkLoaded:h,isChunkFullyLoaded:W,touchChunk:O,touchChunksForRange:k,evictDistant:j,evictToLimit:Z,getStats:ee,getCachedCount:ce,clear:z,reset:()=>{z(),s=0}}};var un=(t={})=>{let{maskCharacter:e=Gt,maxSampleSize:r=$t}=t,o=[],i=!1,n=(g)=>{if(i||g.length===0)return;let V=Math.min(g.length,r);for(let A=0;A<V;A++){let b=g[A];if(!b||typeof b!=="object")continue;let F={},R=!1;for(let[u,c]of Object.entries(b)){if(u.startsWith("_")||u==="id")continue;F[u]=String(c??"").length,R=!0}if(R)o.push(F)}i=!0},s=()=>i,l=(g)=>{let V={id:`${_e}${g}`,[ct]:!0,_index:g};if(o.length===0)return V.label=e.repeat(12),V;let A=o[g%o.length];for(let[b,F]of Object.entries(A))V[b]=e.repeat(Math.max(1,F));return V};return{analyzeStructure:n,hasAnalyzedStructure:s,generate:l,generateRange:(g,V)=>{let A=[];for(let b=g;b<=V;b++)A.push(l(b));return A},clear:()=>{o=[],i=!1}}},it=(t)=>{if(!t||typeof t!=="object")return!1;return t[ct]===!0};var Wn=50,cn=(t={})=>{let{adapter:e,initialItems:r,initialTotal:o,storage:i,placeholder:n,pageSize:s=Wn,maxConcurrent:l=0,onStateChange:P,onDataChange:S,onItemsLoaded:g,onItemsEvicted:V,onLoadError:A}=t,b=dn({...i,onEvict:(ie,f)=>{V?.(ie),j(),k()}}),F=null,R=()=>{if(!F)F=un(n);return F},u=new Map,c=!1,d,C=!0,_,v,x=[],h=0,W=new Map,O=()=>{for(let ie of W.values())ie[1].abort();W.clear()},k=()=>{P?.(m())},j=()=>{S?.()},Z=()=>{u.clear();let ie=b.getLoadedRanges();for(let f of ie)for(let X=f.start;X<=f.end;X++){let oe=b.get(X);if(oe&&!it(oe))u.set(oe.id,X)}},ee=(ie,f)=>{if(!it(f))u.set(f.id,ie)},ce=(ie)=>{u.delete(ie)},z=(ie,f)=>`${ie}-${f}`,D=()=>b.getTotal(),E=()=>b.getCachedCount(),w=()=>c,B=()=>C,m=()=>({total:b.getTotal(),cached:b.getCachedCount(),isLoading:c,pendingRanges:x,error:d,hasMore:C,cursor:_}),a=()=>b,U=()=>R(),G=(ie)=>{let f=b.get(ie);if(f!==void 0)return f;if(ie>=0&&ie<b.getTotal())return R().generate(ie);return},H=(ie)=>{let f=u.get(ie);if(f===void 0)return;return b.get(f)},y=(ie)=>u.get(ie)??-1,N=(ie)=>{let f=b.get(ie);return f!==void 0&&!it(f)},ae=(ie,f)=>{let X=[],oe=b.getTotal();b.touchChunksForRange(ie,Math.min(f,oe-1));for(let me=ie;me<=f&&me<oe;me++){let ve=b.get(me);if(ve!==void 0)X.push(ve);else X.push(R().generate(me))}return X},q=(ie)=>{b.setTotal(ie),C=b.getCachedCount()<ie,j(),k()},p=(ie,f=0,X)=>{if(e&&ie.length>0){let oe=R();if(!oe.hasAnalyzedStructure())oe.analyzeStructure(ie)}for(let oe=0;oe<ie.length;oe++){let me=ie[oe];if(me!==void 0){let ve=f+oe;b.set(ve,me),ee(ve,me)}}if(X!==void 0)b.setTotal(X);else if(f+ie.length>b.getTotal())b.setTotal(f+ie.length);if(b.getCachedCount()>=b.getTotal()&&b.getTotal()>0)C=!1;j(),k(),g?.(ie,f,b.getTotal())},M=(ie,f)=>{let X=b.get(ie);if(!X)return!1;let oe=X.id,me={...X,...f};if(b.set(ie,me),f.id!==void 0&&f.id!==oe)ce(oe);return ee(ie,me),j(),k(),!0},L=(ie,f)=>{b.insert(f,ie),Z(),O(),j(),k()},I=(ie)=>{let f=u.get(ie);if(f===void 0)return!1;if(!b.delete(f))return!1;return Z(),O(),j(),k(),!0},Y=async(ie,f)=>{if(!e)return;let X=b.chunkSize,oe=Math.floor(ie/X),me=Math.floor(f/X),ve=X*2;for(let[fe,he]of W){let Me=fe.indexOf("-"),xe=parseInt(fe.slice(0,Me),10);if(Math.abs(xe-ie)>ve)he[1].abort(),W.delete(fe)}let Se=[],ye=[];for(let fe=oe;fe<=me;fe++){let he=fe*X,Me=he+X-1,xe=z(he,Me);if(b.isChunkFullyLoaded(fe))continue;let Q=W.get(xe);if(Q)ye.push(Q[0]);else Se.push({start:he,end:Me})}if(Se.length===0){if(ye.length>0)await Promise.all(ye);return}if(l>0){let fe=W.size+Se.length;if(fe>l){let he=(ie+f)/2,Me=Math.min(fe-l,W.size);while(Me>0){let Te=null,Q=-1,le=null;for(let[J,Ie]of W){let K=J.indexOf("-"),se=parseInt(J.slice(0,K),10),Ce=parseInt(J.slice(K+1),10),Le=Math.abs((se+Ce)/2-he);if(Le>Q)Q=Le,Te=J,le=Ie[1]}if(Te)le.abort(),W.delete(Te);Me--}let xe=l-W.size;if(Se.length>xe)Se.sort((Te,Q)=>{let le=Math.abs((Te.start+Te.end)/2-he),J=Math.abs((Q.start+Q.end)/2-he);return le-J}),Se.length=Math.max(0,xe)}}if(Se.length===0){if(ye.length>0)await Promise.all(ye);return}for(let fe of Se){let he=z(fe.start,fe.end),Me=new AbortController,xe=(async()=>{x.push(fe),c=!0,d=void 0,k();try{let Te=fe.end-fe.start+1,Q={offset:fe.start,limit:Te,cursor:fe.start===v?_:void 0,signal:Me.signal},le=await e.read(Q);if(p(le.items,fe.start,le.total),le.cursor)_=le.cursor,v=fe.start+le.items.length;let J=fe.start+le.items.length;if(J>=h){if(h=J,le.hasMore!==void 0)C=le.hasMore;else if(le.total!==void 0)C=J<le.total}}catch(Te){if(Te?.name==="AbortError")return;d=Te instanceof Error?Te:Error(String(Te)),A?.(d,fe)}finally{W.delete(he);let Te=x.findIndex((Q)=>Q.start===fe.start&&Q.end===fe.end);if(Te>=0)x.splice(Te,1);c=W.size>0,k()}})();W.set(he,[xe,Me]),ye.push(xe)}await Promise.all(ye)},te=async(ie,f)=>{if(b.isRangeLoaded(ie,f))return;await Y(ie,f)},Ee=async()=>{if(!e)return;await Y(0,s-1)},de=async()=>{if(!e||c||!C)return!1;let ie=b.getCachedCount(),f=b.getTotal(),X=ie,oe=Math.min(X+s-1,f>0?f-1:X+s-1);if(X>=f&&f>0)return C=!1,!1;return await Y(X,oe),b.getCachedCount()>ie},ne=async()=>{if(b.clear(),u.clear(),F)F.clear();O(),x=[],c=!1,_=void 0,v=void 0,C=!0,h=0,d=void 0,j(),k()},ue=(ie,f)=>{if(b.evictDistant(ie,f)>0)Z()},ge=()=>{b.clear(),u.clear(),_=void 0,v=void 0,d=void 0,x=[],c=!1,j(),k()},be=()=>{if(b.reset(),u.clear(),F)F.clear();_=void 0,v=void 0,C=!0,h=0,d=void 0,x=[],c=!1,j(),k()};if(r&&r.length>0)p(r,0,o??r.length);else if(o!==void 0)b.setTotal(o),j(),k();return{getState:m,getTotal:D,getCached:E,getIsLoading:w,getHasMore:B,getStorage:a,getPlaceholders:U,getItem:G,getItemById:H,getIndexById:y,isItemLoaded:N,getItemsInRange:ae,setTotal:q,setItems:p,updateItem:M,insertItem:L,removeItem:I,loadRange:Y,ensureRange:te,loadInitial:Ee,loadMore:de,reload:ne,evictDistant:ue,clear:ge,reset:be}};function ht(t){let{adapter:e,total:r,autoLoad:o=!0,storage:i}=t,n=t.loading?.cancelThreshold??Rt,s=t.loading?.preloadThreshold??wt,l=t.loading?.preloadAhead??At,P=t.loading?.maxConcurrent??Ht,S,g,V,A,b,F,R=null,u=null,c=null,d=0,C=!1,_=null,v=dt,x=-1,h=-1,W=-1,O=-1,k=i?.chunkSize??et,j=()=>{if(R=null,u!==null)clearTimeout(u),u=null},Z=(m,a)=>S.ensureRange(m,a),ee=(m,a=et)=>{A.emit("load:start",{offset:m,limit:a})},ce=(m)=>{A.emit("error",{error:m,context:"ensureRange"})},z=()=>{R=null;let m={start:g.startIndex,end:g.startIndex+Math.max(0,g.visibleCount-1)};if(m.end<m.start)return;Z(m.start,m.end).catch(ce)},D=()=>{if(_!==null)clearTimeout(_),_=null},E=()=>{if(g.destroyed)return;let m=S.getTotal();if(g.visibleCount<=0||g.startIndex>=m)return;let a=Math.min(g.startIndex+g.visibleCount-1,m-1);if(a<g.startIndex)return;Z(g.startIndex,a).catch(ce)},w=()=>{if(_!==null||g.destroyed)return;_=setTimeout(()=>{_=null,E()},v),v=Math.min(v*2,_t)},B=()=>{D(),v=dt};return{name:"data",priority:20,setup(m){g=m.getState(),V=m.sizeCache,A=m.emitter,b=m.dom,F=m.forceRender.bind(m);let a=null;m.setVirtualTotalFn(()=>a?.getTotal()??0),m.setGetIndexByIdFn((G)=>a?.getIndexById(G)??-1),S=a=cn({adapter:e,...r!==void 0&&{initialTotal:r},pageSize:i?.chunkSize??et,maxConcurrent:P,...i&&{storage:{...i.chunkSize!==void 0&&{chunkSize:i.chunkSize},...i.maxCachedItems!==void 0&&{maxCachedItems:i.maxCachedItems},...i.evictionBuffer!==void 0&&{evictionBuffer:i.evictionBuffer}}},onDataChange:()=>{if(g.initialized){let G=S.getTotal(),H=S.getCached();if(g.totalItems=G,G!==x||H!==h)x=G,h=H,V.rebuild(G);m.updateContentSize(V.getTotalSize()),m.renderIfNeeded()}},onItemsLoaded:(G)=>{if(B(),g.initialized)m.updateContentSize(V.getTotalSize()),F(),A.emit("load:end",{items:G,total:S.getTotal()})},onLoadError:(G)=>{if(A.emit("error",{error:G,context:"load"}),g.initialized)m.renderIfNeeded();w()}}),m.setGetItemFn((G)=>S.getItem(G)),m.setRemoveItemFn((G)=>{let H=S.getIndexById(G);if(H<0)return-1;if(!S.removeItem(G))return-1;return H}),m.setInsertItemFn((G,H)=>{S.insertItem(G,H)}),m.setUpdateItemFn((G,H)=>{let y=S.getIndexById(G);if(y<0)return!1;return S.updateItem(y,H)}),m.registerMethod("reload",async()=>{if(R=null,W=-1,O=-1,B(),m.forceRender(),await S.reload(),m.scrollTo(0),o)ee(0),await S.loadInitial(),m.forceRender()}),m.registerMethod("loadVisibleRange",async()=>{R=null,m.forceRender();let G=S.getTotal();if(g.visibleCount>0&&g.startIndex<G){let H=Math.min(g.startIndex+g.visibleCount-1,G-1);ee(g.startIndex,H-g.startIndex+1),await Z(g.startIndex,H)}}),m.registerMethod("loadInitial",async()=>{ee(0),await S.loadInitial(),m.forceRender()}),m.registerMethod("getTotal",()=>S.getTotal()),m.registerMethod("setTotal",(G)=>{S.setTotal(G)}),m.registerMethod("_getTotal",()=>S.getTotal()),m.registerMethod("_setTotal",(G)=>{S.setTotal(G)}),m.registerMethod("_cancelAutoLoad",()=>{C=!0}),m.registerMethod("_getLoadedItem",(G)=>S.getStorage().get(G)),m.registerMethod("_getItem",(G)=>S.getItem(G)),m.registerMethod("_getLoadedCount",()=>S.getCached()),A.on("load:start",()=>{b.root.setAttribute("aria-busy","true")}),A.on("load:end",()=>{b.root.removeAttribute("aria-busy")}),m.registerDestroyHandler(()=>{if(c!==null)clearTimeout(c),c=null;j(),D()}),A.on("velocity:change",({velocity:G})=>{d=Math.abs(G)});let U=()=>{if(g.destroyed)return;B(),E(),z()};if(window.addEventListener("online",U),m.registerDestroyHandler(()=>{window.removeEventListener("online",U)}),o)queueMicrotask(()=>{if(C)return;ee(0),S.loadInitial().catch((G)=>{A.emit("error",{error:G,context:"loadInitial"})})});else if(r!==void 0)S.setTotal(r)},hooks:{onAfterScroll(){if(g.destroyed)return;let m=g.startIndex+Math.max(0,g.visibleCount-1);if(d>n){if(u!==null)clearTimeout(u),u=null;R={start:g.startIndex,end:m};return}if(d>s){let G=Math.floor(g.startIndex/k),H=Math.floor(m/k);if(G!==W||H!==O){if(W=G,O=H,m>=g.startIndex)Z(g.startIndex,m).catch(ce)}let y=g.startIndex,N=m,ae=g.scrollDirection;if(ae>0)N=Math.min(N+l,S.getTotal()-1);else if(ae<0)y=Math.max(0,y-l);if(R={start:y,end:N},u!==null)clearTimeout(u);u=setTimeout(()=>{if(u=null,g.destroyed||!R)return;let{start:q,end:p}=R;if(R=null,p>=q)Z(q,p).catch(ce)},100);return}j();let a=Math.floor(g.startIndex/k),U=Math.floor(m/k);if(a!==W||U!==O){if(W=a,O=U,m>=g.startIndex)Z(g.startIndex,m).catch(ce)}},onIdle(){if(g.destroyed)return;d=0,W=-1,O=-1,z(),j()},onResize(){if(g.destroyed)return;let m=S.getTotal();if(m<=0)return;if(g.visibleCount<=0||g.startIndex>=m)return;let a=Math.min(g.startIndex+g.visibleCount-1,m-1);if(a<g.startIndex)return;ee(g.startIndex,a-g.startIndex+1),Z(g.startIndex,a).catch(ce)}},destroy(){if(c!==null)clearTimeout(c);j(),D()}}}var mn=(t)=>{let e=Math.max(1,Math.floor(t.columns)),r=t.gap??0,o=t.isHeaderFn,i={row:0,col:0},n=(R)=>{if(R<=0)return 0;if(!o)return Math.ceil(R/e);let u=0,c=0,d=0;for(let C=0;C<R;C++)if(o(C)){if(d++,c)u++,c=0;u++,c=0}else if(c++,c>=e)u++,c=0;if(c)u++;return u},s=(R)=>(i.row=l(R),i.col=P(R),i),l=(R)=>{if(!o)return Math.floor(R/e);let u=0,c=0;for(let d=0;d<=R;d++)if(o(d)){if(c)u++,c=0;if(d===R)return u;u++,c=0}else{if(d===R)return u;if(c++,c>=e)u++,c=0}return console.warn(`⚠️ getRow(${R}) fell through - returning ${u}`),u},P=(R)=>{if(!o)return R%e;if(o(R))return 0;let u=0;for(let c=0;c<=R;c++)if(o(c))u=0;else{if(c===R)return u;if(u++,u>=e)u=0}return u},S=(R,u,c,d)=>{if(c<=0){d.start=0,d.end=-1;return}if(!o){d.start=Math.max(0,R*e),d.end=Math.min(c-1,(u+1)*e-1);return}let C=g(R,u,c);d.start=C.start,d.end=C.end},g=(R,u,c)=>{if(c<=0)return{start:0,end:-1};if(!o){let x=Math.max(0,R*e),h=Math.min(c-1,(u+1)*e-1);return{start:x,end:h}}let d=-1,C=-1,_=0,v=0;for(let x=0;x<c;x++){if(o(x)){if(v)_++,v=0;if(_>=R&&_<=u){if(d<0)d=x;C=x}_++,v=0}else{if(_>=R&&_<=u){if(d<0)d=x;C=x}if(v++,v>=e)_++,v=0}if(_>u&&!v)break}if(d<0)return{start:0,end:-1};return{start:d,end:C}},V=(R,u,c)=>{if(u<0||u>=e)return-1;let d=R*e+u;if(d<0||d>=c)return-1;return d},A=(R)=>{let u=(e-1)*r;return Math.max(0,(R-u)/e)};return{get columns(){return e},get gap(){return r},update:(R)=>{if(R.columns!==void 0)e=Math.max(1,Math.floor(R.columns));if(R.gap!==void 0)r=R.gap;if(R.isHeaderFn!==void 0)o=R.isHeaderFn},getTotalRows:n,getPosition:s,getRow:l,getCol:P,getItemRange:g,fillItemRange:S,getItemIndex:V,getColumnWidth:A,getColumnOffset:(R,u)=>{let c=A(u);return R*(c+r)}}};var Oe={selected:!1,focused:!1};function vt(t){if(!t.columns||t.columns<1)throw Error("[vlist] grid: columns must be >= 1");let e,r,o,i,n=null,s,l,P,S,g,V,A=null,b=0,F=0,R=0,u=0,c=new Map,d=0,C=0,_=0,v=0,x=null,h=!1,W="",O="",k="",j={start:0,end:-1},Z=-1,ee=-1,ce=-1,z=!0,D=(y)=>r.rebuild(y);function E(){let y=(C-1)*_;v=Math.max(0,(d-y)/C)}function w(){if(h)return;h=!0,x=A?.()??null}function B(){return e.getTotalRows(o.totalItems)}function m(y){let N=y/C|0,q=(y-N*C)*(v+_)+b,p=r.getOffset(N)-o.baseOffset+R;if(S)return`translate(${Math.round(p)}px, ${Math.round(q)}px)`;return`translate(${Math.round(q)}px, ${Math.round(p)}px)`}function a(y,N){let ae=r.getSize(N)-_;if(S)y.style.width=`${ae}px`,y.style.height=`${v}px`;else y.style.width=`${v}px`,y.style.height=`${ae}px`}function U(y,N,ae){if(x)x(ae,Oe);else Oe.selected=!1,Oe.focused=!1;let q=l(N,ae,Oe);if(typeof q==="string")y.innerHTML=q;else y.innerHTML="",y.appendChild(q)}function G(){if(o.destroyed)return;let y=o.scrollPosition,N=o.containerSize;if(!z&&y===Z&&N===ee)return;Z=y,ee=N,z=!1;let ae=B();if(N<=0||ae===0)return;w();let q=r.indexAtOffset(y),p=r.indexAtOffset(y+N);if(p<ae-1)p++;q=Math.max(0,q),p=Math.min(ae-1,Math.max(0,p));let M=Math.max(0,q-V),L=Math.min(ae-1,p+V);if(M===o.prevRangeStart&&L===o.prevRangeEnd&&!o.renderPending)return;e.fillItemRange(M,L,o.totalItems,j);let{start:I,end:Y}=j;for(let[de,ne]of c)if(de<I||de>Y)ne.el.remove(),i.release(ne.el),c.delete(de);for(let de=I;de<=Y;de++){let ne=P(de);if(!ne)continue;let ue=de/C|0,ge=de-ue*C,be=c.get(de);if(be===void 0){let X=i.acquire();X.className=W,X.setAttribute("data-index",String(de)),X.setAttribute("data-id",String(ne.id)),U(X,ne,de),be={el:X,lastItem:ne},c.set(de,be),s.appendChild(X)}else if(be.lastItem!==ne)be.el.setAttribute("data-id",String(ne.id)),be.lastItem=ne,U(be.el,ne,de);else if(x)x(de,Oe);if(x)if(be.el.classList.toggle(O,Oe.selected),be.el.classList.toggle(k,Oe.focused),Oe.selected)be.el.setAttribute("aria-selected","true");else be.el.removeAttribute("aria-selected");a(be.el,ue);let ie=ge*(v+_)+b,f=r.getOffset(ue)-o.baseOffset+R;be.el.style.transform=S?`translate(${Math.round(f)}px, ${Math.round(ie)}px)`:`translate(${Math.round(ie)}px, ${Math.round(f)}px)`}let te=r.getTotalSize();if(te!==ce)ce=te,n?.updateContentSize(te);o.prevRangeStart=M,o.prevRangeEnd=L,o.renderPending=!1;let Ee=Y-I+1;o.visibleCount=Math.min(Ee,o.capacity),o.startIndex=I;for(let de=0;de<o.visibleCount;de++){let ne=I+de,ue=ne/C|0;o.visibleIndices[de]=ne,o.visibleOffsets[de]=r.getOffset(ue),o.visibleSizes[de]=r.getSize(ue)}}function H(){if(o.destroyed)return;D(B()),ce=-1,o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,z=!0,G()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(y){C=Math.max(1,Math.floor(t.columns)),_=t.gap??0,e=mn({columns:t.columns,gap:_}),r=y.sizeCache,o=y.getState(),i=y.pool,n=y,s=y.dom.content,l=y.template,S=y.config.axis.primary==="x",g=y.config.classPrefix,V=y.config.overscan,P=y.getItem.bind(y),A=()=>y.getItemStateFn(),W=`${g}-item ${g}-grid-item`,O=`${g}-item--selected`,k=`${g}-item--focused`,b=y.config.crossPadStart,F=y.config.crossAxisPadding,R=y.config.startPadding,u=y.config.mainAxisPadding,d=o.crossSize-F,E();let N=y.rawSizeSpec,ae;if(typeof N==="function"){let I={columnWidth:e.getColumnWidth(d),columns:t.columns,gap:_};ae=N(0,I),y.setSizeConfig((Y)=>{I.columnWidth=e.getColumnWidth(d);let te=Y*t.columns;return N(te,I)+_})}else if(ae=N,_>0)y.setSizeConfig(ae+_);let q=null,p=r.rebuild;function M(){if(r.rebuild===q)return;p=r.rebuild,D=(L)=>p(L),q=(L)=>{D(Math.ceil(L/C))},r.rebuild=q}if(y.registerMethod("_setSizeCacheBase",(L)=>{p=L,D=(I)=>p(I)}),M(),D(B()),_>0){let L=r.getTotalSize;r.getTotalSize=()=>{let I=L();return I>0?I-_:0}}y.setVirtualTotalFn(()=>B()),y.dom.root.classList.add(`${g}--grid`),y.setRenderFn(G,H),y.registerMethod("getGridLayout",()=>e),y.registerMethod("_getRowGap",()=>e.gap),y.registerMethod("updateGrid",(L)=>{if(L.columns!==void 0){if(!Number.isInteger(L.columns)||L.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(L.gap!==void 0&&L.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if(e.update(L),L.columns!==void 0)C=Math.max(1,Math.floor(L.columns));if(L.gap!==void 0)_=L.gap;if(L.gap!==void 0||L.columns!==void 0){let I=e.gap;if(typeof N==="function"){let Y={columnWidth:e.getColumnWidth(d),columns:e.columns,gap:I};y.setSizeConfig((te)=>{Y.columnWidth=e.getColumnWidth(d);let Ee=te*e.columns;return N(Ee,Y)+I})}else y.setSizeConfig(ae+I);M(),D(B())}if(L.columns!==void 0)y.setNavConfig({ud:e.columns});d=o.crossSize-F,E(),H()}),y.registerMethod("scrollToIndex",(L,I="start")=>{let Y=e.getRow(L),te=B();if(te===0)return;let Ee=Math.max(0,Math.min(Y,te-1)),de=r.getOffset(Ee)+R,ne=r.getSize(Ee),ue=o.containerSize,ge=r.getTotalSize()+u,be=Math.max(0,ge-ue),ie=typeof I==="string"?I:I.align??"start",f=typeof I==="object"?I.behavior:void 0,X=typeof I==="object"?I.duration:void 0,oe;switch(ie){case"center":oe=de-(ue-ne)/2;break;case"end":oe=de-ue+ne;break;default:oe=de}if(oe=Math.max(0,Math.min(oe,be)),f==="smooth"&&X&&X>0)y.smoothScrollTo(oe,X);else y.scrollTo(oe)}),y.setNavConfig({total:()=>o.totalItems,ud:t.columns,lr:1,scrollIndex:(L)=>e.getRow(L)}),y.registerDestroyHandler(()=>{for(let[,L]of c)L.el.remove();c.clear(),y.dom.root.classList.remove(`${g}--grid`)})},hooks:{onResize(y,N){let ae=o.crossSize-F;if(Math.abs(ae-d)<1)return;d=ae,E();for(let[q,p]of c){let M=q/C|0;a(p.el,M),p.el.style.transform=m(q)}}},destroy(){c.clear()}}}var fn=(t)=>{let e=Math.max(1,Math.floor(t.columns)),r=t.gap??0,o=t.containerSize,i=t.crossOffset??0,n=t.mainOffset??0,s=0,l=[],P=()=>{let c=(e-1)*r;s=Math.max(0,(o-c)/e),l=Array(e);let d=s+r;for(let C=0;C<e;C++)l[C]=i+C*d};P();let S=[],g=0,V=[],A=(c,d)=>{if(c<=0)return g=0,S=[],[];let C=Array(e).fill(n),_=Array(e);for(let h=0;h<e;h++)_[h]=[];let v=Array(c);for(let h=0;h<c;h++){let W=0,O=C[0];for(let Z=1;Z<e;Z++){let ee=C[Z];if(ee<O)O=ee,W=Z}let k=d(h),j=C[W];v[h]={index:h,x:l[W],y:j,lane:W,size:k,crossSize:s},_[W].push(h),C[W]=j+k+r}S=_;let x=0;for(let h=0;h<e;h++){let W=C[h],O=W>0?W-r:0;if(O>x)x=O}return g=x,v},b=(c)=>{if(c.length===0)return g;if(g)return g;let d=Array(e).fill(0);for(let _ of c){let v=_.y+_.size,x=d[_.lane];if(v>x)d[_.lane]=v}let C=0;for(let _=0;_<e;_++)if(d[_]>C)C=d[_];return C},F=(c,d,C)=>{if(c.length===0||C<=d)return V.length=0,V;if(S.length===0||S.length!==e)return R(c,d,C);V.length=0;for(let _=0;_<e;_++){let v=S[_],x=v.length;if(!x)continue;let h=0,W=x;while(h<W){let O=h+W>>>1,k=c[v[O]];if(k.y+k.size<=d)h=O+1;else W=O}for(let O=h;O<x;O++){let k=c[v[O]];if(k.y>=C)break;V.push(k)}}return V},R=(c,d,C)=>{V.length=0;for(let _ of c)if(_.y+_.size>d&&_.y<C)V.push(_);return V};return{get columns(){return e},get gap(){return r},get containerSize(){return o},update:(c)=>{let d=!1;if(c.columns!==void 0){let C=Math.max(1,Math.floor(c.columns));if(C!==e)e=C,d=!0}if(c.gap!==void 0&&c.gap!==r)r=c.gap,d=!0;if(c.containerSize!==void 0&&c.containerSize!==o)o=c.containerSize,d=!0;if(c.crossOffset!==void 0&&c.crossOffset!==i)i=c.crossOffset,d=!0;if(c.mainOffset!==void 0&&c.mainOffset!==n)n=c.mainOffset,d=!0;if(d)P()},calculateLayout:A,getTotalSize:b,getVisibleItems:F}};var gn=(t,e,r)=>{let o=Array.from(e).sort((s,l)=>s-l);if(o.length<=1)return;let i=[];for(let s=0;s<o.length;s++){let l=r(o[s]);if(l)i.push(l)}if(i.length<=1)return;let n=t.firstChild;for(let s=0;s<i.length;s++){let l=i[s];if(l===n)n=n.nextSibling;else t.insertBefore(l,n)}};var Un=(t=200)=>{let e=[];return{acquire:()=>{let n=e.pop();if(n)return n;let s=document.createElement("div");return s.setAttribute("role","option"),s},release:(n)=>{if(n.remove(),e.length<t)n.className="",n.textContent="",n.removeAttribute("style"),n.removeAttribute("data-index"),n.removeAttribute("data-id"),n.removeAttribute("data-lane"),e.push(n)},clear:()=>{e.length=0}}},Yn=1,pn=(t,e,r,o=!1,i,n,s,l,P=()=>0)=>{let S=Un(),g=new Map,V=new Set,A=0,b="",F=-1,R={selected:!1,focused:!1},u=(z,D)=>(R.selected=z,R.focused=D,R),c=`${r}-item ${r}-masonry-item`,d=`${r}-group-header`,C=`${r}-item--selected`,_=`${r}-item--focused`,v=(z,D)=>{if(typeof D==="string")z.innerHTML=D;else z.replaceChildren(D);We(z)},x=(z,D,E)=>{z.classList.toggle(C,D),z.classList.toggle(_,E)},h=(z,D)=>{let E=Math.round(D.y-P());if(o)z.style.transform=`translate(${E}px, ${Math.round(D.x)}px)`;else z.style.transform=`translate(${Math.round(D.x)}px, ${E}px)`},W=(z,D)=>{if(o)z.style.width=`${D.size}px`,z.style.height=`${D.crossSize}px`;else z.style.width=`${D.crossSize}px`,z.style.height=`${D.size}px`},O=(z,D,E,w,B)=>{let m=S.acquire(),a=D.__groupHeader,U=u(w,B);if(m.className=a?d:c,m.dataset.index=String(z),m.dataset.id=String(D.id),m.dataset.lane=String(E.lane),a)m.setAttribute("role","presentation"),m.removeAttribute("aria-selected"),m.removeAttribute("aria-setsize"),m.removeAttribute("aria-posinset"),m.removeAttribute("id");else if(l===!0){if(m.setAttribute("role","option"),m.ariaSelected=String(w),n)m.id=`${n}-item-${z}`;if(i){let H=i();if(H!==F)F=H,b=String(H);m.setAttribute("aria-setsize",b);let y=s?s(z):z+1;m.setAttribute("aria-posinset",String(y))}}else if(m.setAttribute("role","listitem"),m.removeAttribute("aria-selected"),i){let H=i();if(H!==F)F=H,b=String(H);m.setAttribute("aria-setsize",b);let y=s?s(z):z+1;m.setAttribute("aria-posinset",String(y))}W(m,E);let G=e(D,z,U);return v(m,G),x(m,w,B),h(m,E),{element:m,lastItem:D,lastSelected:w,lastFocused:B,lastY:E.y-P(),lastX:E.x,lastSize:E.size,lastCrossSize:E.crossSize,lastSeenFrame:A}},k=(z,D,E,w)=>{A++,V.clear();for(let m=0;m<D.length;m++)V.add(D[m].index);let B=null;for(let m=0;m<D.length;m++){let a=D[m],U=a.index,G=z(U);if(!G)continue;let H=E.has(G.id),y=U===w,N=g.get(U);if(N){let ae=N.lastItem!==G,q=N.lastSelected!==H,p=N.lastFocused!==y,M=N.lastY!==a.y-P()||N.lastX!==a.x,L=N.lastSize!==a.size||N.lastCrossSize!==a.crossSize;if(ae){let I=u(H,y),Y=e(G,U,I);if(v(N.element,Y),N.element.dataset.id=String(G.id),N.lastItem=G,!G.__groupHeader){let Ee=s?s(U):U+1;N.element.setAttribute("aria-posinset",String(Ee))}}if(ae||q||p)x(N.element,H,y),N.element.ariaSelected=String(H),N.lastSelected=H,N.lastFocused=y;if(L)W(N.element,a),N.lastSize=a.size,N.lastCrossSize=a.crossSize;if(M)h(N.element,a),N.lastY=a.y-P(),N.lastX=a.x}else{let ae=O(U,G,a,H,y);if(!B)B=document.createDocumentFragment();B.appendChild(ae.element),g.set(U,ae)}}if(B)t.appendChild(B);for(let[m,a]of g)if(V.has(m))a.lastSeenFrame=A;else if(A-a.lastSeenFrame>Yn)S.release(a.element),g.delete(m)},j=()=>{for(let z of g.values())S.release(z.element);g.clear(),t.innerHTML=""};return{render:k,getElement:(z)=>g.get(z)?.element,updateItemClasses:(z,D,E)=>{let w=g.get(z);if(!w)return;let B=w.lastSelected!==D,m=w.lastFocused!==E;if(B||m)x(w.element,D,E),w.lastSelected=D,w.lastFocused=E},sortDOM:()=>{gn(t,g.keys(),(z)=>g.get(z)?.element)},clear:j,destroy:()=>{j(),S.clear()}}};var Kn=100,Xn=new Set;function St(t){if(!t.columns||t.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let e,r=null,o,i=null,n,s,l,P=[],S=-1,g=-1,V=!0,A=-1,b=-1,F=0,R=0,u=0,c=0,d={columnWidth:0,columns:0,gap:0,containerWidth:0},C=[],_=(p)=>C[p],v=null,x=null,h=!1;function W(){if(h||!i)return;h=!0,v=i.getMethod("_getSelectedIds")??null,x=i.getMethod("_getFocusedIndex")??null}let O=[],k=new Int32Array(0),j=[],Z=null,ee=null,ce=null,z=null,D=!1,E=!0;function w(){if(D||!i)return;if(Z=i.getMethod("_getItemLane")??null,ee=i.getMethod("_getItemY")??null,ce=i.getMethod("_getItemH")??null,z=i.getMethod("_isGroupHeader")??null,Z||z)D=!0}function B(){w();let p=e.columns,M=!!Z;if(M){let L=o.totalItems;O=Array(p);for(let I=0;I<p;I++)O[I]=[];if(k.length<L)k=new Int32Array(L);for(let I=0;I<L;I++){if(z?.(I))continue;let Y=Z(I);if(Y<0||Y>=p)continue;k[I]=O[Y].length,O[Y].push(I)}}else{let L=P.length;O=Array(p);for(let I=0;I<p;I++)O[I]=[];if(k.length<L)k=new Int32Array(L);for(let I=0;I<L;I++){let Y=P[I];k[I]=O[Y.lane].length,O[Y.lane].push(I)}}j=Array(p);for(let L=0;L<p;L++){let I=O[L],Y=new Float64Array(I.length);for(let te=0;te<I.length;te++){let Ee=I[te];if(M&&ee&&ce){let de=ee(Ee),ne=ce(Ee);Y[te]=de>=0?de+(ne>0?ne*0.5:0):0}else{let de=P[Ee];Y[te]=de.y+de.size*0.5}}j[L]=Y}}function m(p,M){let L=p.length;if(!L)return-1;let I=0,Y=L-1;while(I<Y){let te=I+Y>>1;if(p[te]<M)I=te+1;else Y=te}if(I>0&&Math.abs(p[I-1]-M)<=Math.abs(p[I]-M))return I-1;return I}function a(p,M,L){if(E)B(),E=!1;let I=!!Z,Y,te;if(I){if(z?.(p))return p;if(Y=Z(p),Y<0)return p;te=k[p]}else{let ue=P[p];if(!ue)return p;Y=ue.lane,te=k[p]}let Ee=e.columns,de=O[Y];switch(n?M==="ArrowDown"?"ArrowRight":M==="ArrowUp"?"ArrowLeft":M==="ArrowRight"?"ArrowDown":M==="ArrowLeft"?"ArrowUp":M:M){case"ArrowDown":if(te+1<de.length)return de[te+1];return p;case"ArrowUp":if(te>0)return de[te-1];return p;case"ArrowRight":{if(Y>=Ee-1)return p;let ue=Y+1,ge=O[ue];if(!ge.length)return p;let be=m(j[ue],j[Y]?.[te]??0);return be>=0?ge[be]:p}case"ArrowLeft":{if(Y<=0)return p;let ue=Y-1,ge=O[ue];if(!ge.length)return p;let be=m(j[ue],j[Y]?.[te]??0);return be>=0?ge[be]:p}case"Home":return 0;case"End":{let ue=O[Ee-1];return ue.length>0?ue[ue.length-1]:p}case"PageDown":{let ue=o.containerSize,ge=I?null:P[p],be=ge&&ge.size>0?ge.size:150,ie=Math.max(1,Math.floor(ue/be)),f=Math.min(te+ie,de.length-1);return de[f]}case"PageUp":{let ue=o.containerSize,ge=I?null:P[p],be=ge&&ge.size>0?ge.size:150,ie=Math.max(1,Math.floor(ue/be)),f=Math.max(0,te-ie);return de[f]}}return p}let U=null;function G(){if(t.size)return(p)=>t.size(p,d);if(U!==null&&typeof U==="function")return(p)=>U(p,d);return(p)=>i.sizeCache.getSize(p)}function H(){let p=e.columns,M=e.gap;d.containerWidth=e.containerSize,d.columns=p,d.gap=M,d.columnWidth=Math.max(0,(e.containerSize-(p-1)*M)/p)}function y(){if(!i)return;H();let p=o.totalItems;P=e.calculateLayout(p,G()),A=p,E=!0,N()}function N(){if(!i)return;let p=e.getTotalSize(P)+c;if(p===b)return;b=p,i.updateContentSize(p)}function ae(){if(o.destroyed||!i||!r)return;if(o.totalItems!==A)y();if(V)b=-1,N();W();let p=o.scrollPosition,M=o.containerSize;if(!V&&p===S&&M===g)return;if(S=p,g=M,V=!1,M<=0||P.length===0)return;let L=Math.max(0,p-l),I=p+M+l,Y=e.getVisibleItems(P,L,I),te=v?.()??Xn,Ee=x?.()??-1;C=i.getItems(),r.render(_,Y,te,Ee);let de=Y.length,ne=de>0?Y[0].index:0,ue=de>0?Y[de-1].index:0;o.prevRangeStart=ne,o.prevRangeEnd=ue,o.renderPending=!1;let ge=Math.min(de,o.capacity);o.visibleCount=ge,o.startIndex=ne;for(let be=0;be<ge;be++){let ie=Y[be];o.visibleIndices[be]=ie.index,o.visibleOffsets[be]=ie.y,o.visibleSizes[be]=ie.size}}function q(){if(o.destroyed)return;b=-1,y(),o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,V=!0,ae()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(p){if(i=p,o=p.getState(),U=p.rawSizeSpec,n=p.config.axis.primary==="x",s=p.config.classPrefix,l=p.config.overscan*Kn,p.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");F=p.config.crossAxisPadding,R=p.config.crossPadStart,u=p.config.startPadding,c=p.config.endPadding;let M=o.crossSize-F;e=fn({columns:t.columns,gap:t.gap??0,containerSize:M,crossOffset:R,mainOffset:u}),r=pn(p.dom.content,p.template,s,n,()=>o.totalItems,void 0,void 0,void 0,()=>o.baseOffset),p.dom.root.classList.add(`${s}--masonry`),p.setRenderFn(ae,q),y(),p.registerMethod("getMasonryLayout",()=>e),p.registerMethod("updateMasonry",(L)=>{if(L.columns!==void 0&&L.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(L.gap!==void 0&&L.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let I={};if(L.columns!==void 0)I.columns=L.columns;if(L.gap!==void 0)I.gap=L.gap;e.update(I),r?.clear(),q()}),p.registerMethod("scrollToIndex",(L,I="start")=>{let Y=P[L];if(!Y)return;let te=typeof I==="string"?I:I.align??"start",Ee=typeof I==="object"?I.behavior:void 0,de=typeof I==="object"?I.duration:void 0,ne=o.containerSize,ue=e.getTotalSize(P)+c,ge=Math.max(0,ue-ne),be=Y.y;if(te==="center")be=Y.y-ne/2+Y.size/2;else if(te==="end"){if(be=Y.y-ne+Y.size,L>=o.totalItems-1&&Y.y+Y.size>ge)be=ge}if(be=Math.max(0,Math.min(be,ge)),Ee==="smooth"&&de&&de>0)p.smoothScrollTo(be,de);else p.scrollTo(be)}),p.registerMethod("_scrollItemIntoView",(L)=>{let I=P[L];if(!I)return;let Y=o.scrollPosition,te=o.containerSize,Ee=e.getTotalSize(P)+c,de=Math.max(0,Ee-te),ne=I.y,ue=ne+I.size;if(ne-u<Y)p.scrollTo(Math.max(0,ne-u));else if(ue+c>Y+te){let ge=O[e.columns-1];if(ge&&ge.length>0&&L===ge[ge.length-1]&&ne>=de)p.scrollTo(de);else p.scrollTo(Math.min(ue+c-te,de))}}),p.setNavConfig({total:()=>o.totalItems,navigate:a}),p.registerDestroyHandler(()=>{r?.destroy(),r=null,p.dom.root.classList.remove(`${s}--masonry`)})},hooks:{onResize(p,M){if(!e||!i)return;let L=o.crossSize-F;if(Math.abs(L-e.containerSize)<1)return;e.update({containerSize:L}),r?.clear(),q()},onIdle(){r?.sortDOM()}},destroy(){r?.destroy(),r=null,P=[],i=null}}}var yt=(t,e)=>{let r=0,o=t.length-1;while(r<o){let i=r+o+1>>>1;if(t[i].headerLayoutIndex<=e)r=i;else o=i-1}return r},bn=(t,e)=>{let r=0,o=t.length-1;while(r<o){let i=r+o+1>>>1;if(t[i].firstDataIndex<=e)r=i;else o=i-1}return r},hn=(t,e,r)=>{if(t===0)return[];let o=[],i=null,n=0,s=0;for(let l=0;l<t;l++){let P=r?.(l);if(!P)continue;let S=e(l,P);if(i===null)i=S,n=0;else if(S!==i){let g=l-n;o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:g}),s=s+1+g,i=S,n=l}}if(i!==null)o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:t-n});return o};var vn=(t,e,r)=>{let o=hn(t,e.getGroupForIndex,r),i=t+o.length,n=e.header?.height??e.header?.width??e.headerHeight;return{get totalEntries(){return i},get groupCount(){return o.length},get groups(){return o},getEntry:(b)=>{if(o.length===0)return{type:"item",dataIndex:b,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let F=yt(o,b),R=o[F];if(b===R.headerLayoutIndex)return{type:"header",group:R};let u=b-R.headerLayoutIndex-1;return{type:"item",dataIndex:R.firstDataIndex+u,group:R}},layoutToDataIndex:(b)=>{if(o.length===0)return b;let F=yt(o,b),R=o[F];if(b===R.headerLayoutIndex)return-1;let u=b-R.headerLayoutIndex-1;return R.firstDataIndex+u},dataToLayoutIndex:(b)=>{if(o.length===0)return b;let F=bn(o,b),R=o[F],u=b-R.firstDataIndex;return R.headerLayoutIndex+1+u},getGroupAtLayoutIndex:(b)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=yt(o,b);return o[F]},getGroupAtDataIndex:(b)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=bn(o,b);return o[F]},getHeaderHeight:typeof n==="number"?(b)=>n:(b)=>{let F=o[b];if(!F)return 0;return n(F.key,b)},rebuild:(b,F)=>{o=hn(b,e.getGroupForIndex,F??r),i=b+o.length}}};var It=(t,e,r,o,i=0)=>{let n=r?"width":"height",s=document.createElement("div");return s.className=`${e}-sticky-header`,s.setAttribute("role","presentation"),s.setAttribute("aria-hidden","true"),s.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(r?`position:absolute;top:0;bottom:0;left:${i||0}px`:`position:relative;top:${i||0}px`),s.style[n]=`${o}px`,t.insertBefore(s,t.firstChild),s},Sn=(t,e,r,o,i,n=!1,s=0,l,P)=>{let S=n?"width":"height",g=n?"height":"width",V=n?"X":"Y",A=(p,M)=>{p.style[S]=`${M}px`},b=l??It(t,i,n,0,s),F=()=>{let p=document.createElement("div");return p.className="sticky-group",p.style.position="absolute",p.style.willChange="transform",p.style[g]="100%",p},R=F(),u=F();b.append(R,u);let c=R,d=u,C=e.groups,_=[],v=[],x=[],h=0,W=()=>{C=e.groups,h=C.length,_=Array(h),v=Array(h),x=Array(h);for(let p=0;p<h;p++)_[p]=P?P(C[p].headerLayoutIndex):r.getOffset(C[p].headerLayoutIndex),v[p]=e.getHeaderHeight(p),x[p]=v[p]};W();let O=-1,k=0,j=0,Z=-1,ee=!1,ce=0,z=!1,D=(p,M)=>{o(p,M);let L=v[M];return A(p,L),L},E=(p)=>{p.replaceChildren(),p.style.transform=""},w=(p)=>{if(p===O)return;if(O=p,k=0,j=0,p<0||p>=h){E(c);return}k=D(c,p),j=x[p],A(b,k),c.style.transform=""},B=(p)=>{if(p===ce)return;ce=p;let M=Math.round(p);c.style.transform=`translate${V}(${M}px)`,d.style.transform=`translate${V}(${M+k}px)`},m=()=>{ce=0,c.style.transform="",d.style.transform=""},a=()=>{if(!z)return;let p=c;c=d,d=p,O=Z,k=O>=0?v[O]:0,j=O>=0?x[O]:0,A(b,k),E(d),Z=-1,z=!1,m()},U=()=>{if(!z)return;E(d),Z=-1,z=!1,m()},G=!!l,H=()=>{if(ee)return;if(ee=!0,G)b.style.visibility="";else b.style.display=""},y=()=>{if(!ee)return;if(ee=!1,G)b.style.visibility="hidden";else b.style.display="none";E(c),O=-1,k=0,j=0,U()},N=(p)=>{if(h===0){if(z)U();if(!ee)H();w(-1);return}if(p<_[0]){y();return}let M=0,L=h-1;while(M<L){let Y=M+L+1>>>1;if(_[Y]+x[Y]<=p)M=Y;else L=Y-1}if(!ee)H();w(M);let I=M+1;if(I<h){let Y=_[I]-p;if(Y<=0&&Y>-j){if(Z!==I||!z)Z=I,D(d,I),z=!0;let te=j>0?Y/j*k:Y;B(te)}else if(Y<=-j){if(z)a()}else if(z)U()}else if(z)U()},ae=()=>{W();let p=O;if(O=-1,k=0,j=0,p>=0)w(p)},q=()=>{b.remove(),O=-1,k=0,j=0,Z=-1,ee=!1,z=!1};if(!l)b.style.display="none";return{update:N,refresh:ae,show:H,hide:y,destroy:q}};var Ge={selected:!1,focused:!1},yn=typeof process<"u"&&process.env?.NODE_ENV!=="production";function Tt(t){if(!t.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let e=t.header?.height??t.header?.width??t.headerHeight;if(e==null||typeof e==="number"&&e<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let r=t.header?.template??t.headerTemplate;if(!r)throw Error("[vlist] groups: header.template is required");let o=r,i,n=null,s,l,P,S,g=null,V,A,b,F=null,R,u,c,d=null,C,_,v=null,x=null,h=0,W=0,O=0,k=0,j=0,Z=!1,ee=null,ce=new Map,z=new Set,D=new Map,E=-1,w=-1,B=0,m=!0,a=-1,U=0,G=null,H;function y(){return i.totalEntries}function N(){let f=l.totalItems;if(f===a)return;if(yn)console.log(`[groups] syncLayout: ${a} → ${f}`);let X=a>0;a=f,i.rebuild(f,F??b),H(i.totalEntries),L();let oe=q?I():s.getTotalSize();if(g?.(oe),n)n.refresh(),n.update(l.scrollPosition);if(X)Ee();let me=v?.("_scrollbar:getInstance");if(me)me()?.updateBounds(oe,l.containerSize)}let ae=0,q=null,p=null,M=null;function L(){if(h<=0){q=null,p=null;return}ae=((l.crossSize||S.clientWidth)-k-(h-1)*W)/h,q=new Map;let oe=i.totalEntries,me=Array(oe),ve=0;if(Z){let Se=ee??((xe)=>s.getSize(xe)),ye=new Float64Array(h),fe=[],he=0,Me=-1;for(let xe=0;xe<oe;xe++){let Te=i.getEntry(xe);if(Te.type==="header"){let Q=0;for(let J=0;J<h;J++)if(ye[J]>Q)Q=ye[J];if(Me>=0)fe[Me]=he+Q;he+=Q;let le=s.getSize(xe);q.set(xe,{col:-1,rowY:he}),me[ve++]=[xe,he,he+le],he+=le,ye.fill(0),Me=Te.group.groupIndex}else{let Q=0,le=ye[0];for(let K=1;K<h;K++)if(ye[K]<le)le=ye[K],Q=K;let J=Se(Te.dataIndex),Ie=he+ye[Q];q.set(xe,{col:Q,rowY:Ie,h:J}),me[ve++]=[xe,Ie,Ie+J],ye[Q]=ye[Q]+J+W}}if(Me>=0){let xe=0;for(let Te=0;Te<h;Te++)if(ye[Te]>xe)xe=ye[Te];fe[Me]=he+xe}M=fe}else{M=null;let Se=0,ye=0,fe=0;for(let he=0;he<oe;he++)if(i.getEntry(he).type==="header"){if(ye>0&&fe>0)Se+=fe;let xe=s.getSize(he);q.set(he,{col:-1,rowY:Se}),me[ve++]=[he,Se,Se+xe],Se+=xe,ye=0,fe=0}else{let xe=ye%h,Te=s.getSize(he);if(xe===0){if(ye>0&&fe>0)Se+=fe+W;fe=Te}else if(Te>fe)fe=Te;q.set(he,{col:xe,rowY:Se}),me[ve++]=[he,Se,Se+Te],ye++}}me.length=ve,p=me}function I(){if(!q||q.size===0)return s.getTotalSize();let f=i.totalEntries;if(Z)return M?.[M.length-1]??0;let X=0;for(let oe=f-1;oe>=0;oe--){let me=q.get(oe);if(me){X=me.rowY+(me.h??s.getSize(oe));break}if(i.getEntry(oe).type==="header"){X=s.getOffset(oe)+s.getSize(oe);break}}return X}function Y(f){let X=l.baseOffset;if(q){let me=q.get(f);if(me){let ve=me.col<0?0:O+me.col*(ae+W),Se=me.rowY-X;if(R)return`translate(${Math.round(Se)}px, ${Math.round(ve)}px)`;return`translate(${Math.round(ve)}px, ${Math.round(Se)}px)`}}let oe=s.getOffset(f)-X;if(R)return`translate(${Math.round(oe)}px, 0)`;return`translate(0, ${Math.round(oe)}px)`}function te(f,X){let oe=q?.get(X);if(oe){let ve=oe.h??s.getSize(X);if(oe.col<0)if(R)f.style.width=`${ve}px`,f.style.height="";else f.style.height=`${ve}px`,f.style.width="100%";else if(R)f.style.width=`${ve}px`,f.style.height=`${ae}px`;else f.style.height=`${ve}px`,f.style.width=`${ae}px`;return}let me=s.getSize(X);if(R)f.style.width=`${me}px`;else f.style.height=`${me}px`}function Ee(){ce.forEach((f)=>{f.remove();let X=f.getAttribute("data-id");if(X)D.set(X,f);else P.release(f)}),ce.clear(),z.clear()}function de(){if(D.size>0)D.forEach((f)=>P.release(f)),D.clear()}function ne(f,X,oe,me){if(x===null)x=!!v?.("_getSelectedIds");if(X.type==="header"){let Me=`__group_header_${X.group.groupIndex}`;if(f.getAttribute("data-id")===Me)return!0;if(f.className=_,f.setAttribute("role","presentation"),f.removeAttribute("aria-selected"),f.setAttribute("data-id",Me),R&&n&&X.group.groupIndex===0)f.style.display="none";else{f.style.display="";let xe=o(X.group.key,X.group.groupIndex);if(typeof xe==="string")f.innerHTML=xe;else f.innerHTML="",f.appendChild(xe)}return!0}let ve=X.dataIndex,Se=b(ve);if(!Se)return f.innerHTML="",!1;let ye=Se._isPlaceholder===!0,fe=String(Se.id);if(!ye&&f.getAttribute("data-id")===fe){if(x)f.id=`${u}-item-${me}`,f.setAttribute("aria-posinset",String(ve+1)),f.setAttribute("aria-setsize",String(l.totalItems));return!0}if(f.className=C,f.setAttribute("role",x?"option":"listitem"),f.setAttribute("data-id",fe),x)f.id=`${u}-item-${me}`,f.setAttribute("aria-posinset",String(ve+1)),f.setAttribute("aria-setsize",String(l.totalItems));if(ye)f.classList.add(`${u}-item--placeholder`);if(oe)oe(me,Ge);else Ge.selected=!1,Ge.focused=!1;let he=A(Se,ve,Ge);if(typeof he==="string")f.innerHTML=he;else f.innerHTML="",f.appendChild(he);return We(f),!ye}let ue=0;function ge(){if(h<=0)return;let f=l.crossSize;if(f===ue)return;ue=f,L();let X=I();if(g?.(X),n)n.refresh(),n.update(l.scrollPosition);m=!0}function be(){if(l.destroyed)return;N(),ge();let f=l.scrollPosition,X=l.containerSize,oe=l.baseOffset,me=oe!==B;if(!m&&f===E&&X===w&&!me)return;E=f,w=X;let ve=m;m=!1;let Se=y();if(X<=0||Se===0){if(ce.size>0)ce.forEach((K)=>{K.remove(),P.release(K)}),ce.clear(),z.clear();return}let ye,fe;if(p){let K=p,se=K.length,Ce=0,Le=se-1;while(Ce<Le){let we=Ce+Le>>>1;if(K[we][2]<=f)Ce=we+1;else Le=we}let ze=Ce;Le=se-1;while(Ce<Le){let we=Ce+Le+1>>>1;if(K[we][1]>=f+X)Le=we-1;else Ce=we}let $e=Ce,He=K[ze][0],Ye=K[$e][0];for(let we=He-1;we>=0;we--)if(i.getEntry(we).type==="header"){He=we;break}let Be=c*h;ye=Math.max(0,He-Be),fe=Math.min(Se-1,Ye+Be)}else{let K=s.indexAtOffset(f),se=s.indexAtOffset(f+X);if(se<Se-1)se++;K=Math.max(0,K),se=Math.min(Se-1,Math.max(0,se)),ye=Math.max(0,K-c),fe=Math.min(Se-1,se+c)}if(ye===l.prevRangeStart&&fe===l.prevRangeEnd&&!l.renderPending&&!me)return;B=oe,ce.forEach((K,se)=>{if(se<ye||se>fe)K.remove(),P.release(K),ce.delete(se),z.delete(se)});let he=d?.()??null,Me=he?`${u}-item--selected`:"",xe=he?`${u}-item--focused`:"",Te=null;for(let K=ye;K<=fe;K++){let se=ce.get(K),Ce=!1;if(se===void 0){let Le=i.getEntry(K);Ce=Le.type==="header";let ze;if(Le.type==="header")ze=`__group_header_${Le.group.groupIndex}`;else{let He=b(Le.dataIndex);if(He&&He._isPlaceholder!==!0)ze=String(He.id)}if(ze!==void 0){let He=D.get(ze);if(He)D.delete(ze),se=He}if(!se)se=P.acquire();if(se.setAttribute("data-index",String(K)),ne(se,Le,he,K))z.delete(K);else z.add(K);if(te(se,K),se.style.transform=Y(K),ce.set(K,se),!Te)Te=document.createDocumentFragment();Te.appendChild(se)}else if(ve&&z.has(K)){let Le=i.getEntry(K);if(Le.type==="item")if(ne(se,Le,he,K))z.delete(K);else z.add(K)}else if(Ce=se.classList.contains(_),ve)te(se,K),se.style.transform=Y(K);else if(me)se.style.transform=Y(K);if(!Ce&&he)if(he(K,Ge),se.classList.toggle(Me,Ge.selected),se.classList.toggle(xe,Ge.focused),Ge.selected)se.setAttribute("aria-selected","true");else se.removeAttribute("aria-selected")}if(Te)S.appendChild(Te);de();let Q=q?I():s.getTotalSize();g?.(Q),l.prevRangeStart=ye,l.prevRangeEnd=fe,l.renderPending=!1;let le=0,J=0,Ie=!1;for(let K=ye;K<=fe&&le<l.capacity;K++){let se=i.getEntry(K);if(se.type==="item"){if(!Ie)J=se.dataIndex,Ie=!0;l.visibleIndices[le]=se.dataIndex,l.visibleOffsets[le]=s.getOffset(K),l.visibleSizes[le]=s.getSize(K),le++}}l.visibleCount=le,l.startIndex=J}function ie(){if(l.destroyed)return;if(ge(),yn)console.log(`[groups] forceRender, placeholders: ${z.size}, rendered: ${ce.size}`);let f=G?.()??0;if(f!==U){U=f;let X=i.groups,oe=X.length;i.rebuild(a,F??b);let me=i.groups,ve=me.length!==oe;if(!ve){for(let Se=0;Se<oe;Se++)if(me[Se].headerLayoutIndex!==X[Se].headerLayoutIndex){ve=!0;break}}if(ve){H(i.totalEntries),L();let Se=q?I():s.getTotalSize();if(g?.(Se),n)n.refresh(),n.update(l.scrollPosition);let ye=1/0,fe=Math.min(oe,me.length);for(let Me=0;Me<fe;Me++)if(me[Me].headerLayoutIndex!==X[Me].headerLayoutIndex){ye=Math.min(me[Me].headerLayoutIndex,X[Me].headerLayoutIndex);break}if(me.length>oe&&fe<me.length)ye=Math.min(ye,me[fe].headerLayoutIndex);else if(oe>me.length&&fe<oe)ye=Math.min(ye,X[fe].headerLayoutIndex);if(ye<=l.prevRangeEnd)Ee();let he=v?.("_scrollbar:getInstance");if(he)he()?.updateBounds(Se,l.containerSize)}}l.prevRangeStart=-1,l.prevRangeEnd=-1,l.renderPending=!0,m=!0,be()}return{name:"groups",priority:10,setup(f){s=f.sizeCache,l=f.getState(),P=f.pool,S=f.dom.content,g=f.updateContentSize.bind(f),V=f.dom.root,A=f.template,R=f.config.axis.primary==="x",u=f.config.classPrefix,c=f.config.overscan,j=f.config.mainAxisPadding,b=f.getItem.bind(f),d=()=>f.getItemStateFn(),v=f.getMethod.bind(f),x=null,C=`${u}-item`,_=`${u}-group-header`;let X=v?.("getGridLayout"),oe=v?.("getMasonryLayout");if(X){let Q=X();h=Q.columns,W=Q.gap,O=f.config.crossPadStart,k=f.config.crossAxisPadding}else if(oe){let Q=oe();h=Q.columns,W=Q.gap,O=f.config.crossPadStart,k=f.config.crossAxisPadding,Z=!0;let le=f.rawSizeSpec;if(typeof le==="function")ee=(J)=>le(J,{columnWidth:ae})}queueMicrotask(()=>{let Q=v?.("_getLoadedItem");if(Q)F=Q;let le=v?.("_getLoadedCount");if(le)G=le});let me=l.totalItems;i=vn(me,t,F??b),a=me;let ve=typeof e==="number"?(Q)=>e:(Q)=>{let le=i.groups[Q];if(!le)return 0;return e(le.key,Q)},Se=s.getSize,ye=(Q)=>{let le=i.getEntry(Q);if(le.type==="header"){if(t.sticky!==!1&&le.group.groupIndex===0)return 0;return ve(le.group.groupIndex)}return Se(le.dataIndex)};f.setSizeConfig(ye);let fe=!1,he=-1;if(f.registerMethod("_setSizeCacheBase",(Q)=>{H=Q}),H=s.rebuild,s.rebuild=(Q)=>{if(fe){if(!G)G=v?.("_getLoadedCount")??null;let le=G?.()??0;if(Q!==a||le!==he){if(a=Q,he=le,!F)F=v?.("_getLoadedItem")??null;if(i.rebuild(Q,F??((J)=>f.getItems()[J])),l.totalItems=i.totalEntries,n)n.refresh(),n.update(l.scrollPosition)}}H(i.totalEntries)},s.rebuild(i.totalEntries),L(),f.setVirtualTotalFn(()=>i.totalEntries),V.classList.add(`${u}--grouped`),t.sticky!==!1){let Q=(K,se)=>{let Ce=i.groups[se];if(!Ce)return;let Le=o(Ce.key,se);if(typeof Le==="string")K.innerHTML=Le;else K.replaceChildren(Le)},le=i.getHeaderHeight(0),J=It(V,u,R,le),Ie=h>0?(K)=>{let se=q?.get(K);return se?se.rowY:s.getOffset(K)}:void 0;if(n=Sn(V,i,s,Q,u,R,0,J,Ie),n.update(l.scrollPosition),!R)f.dom.viewport.style.height=`calc(100% - ${le}px)`;else f.dom.viewport.style.width=`calc(100% - ${le}px)`,f.dom.viewport.style.marginLeft=`${le}px`}let Me=!!v?.("_updateTableForGroups");if(fe=Me,Me)queueMicrotask(()=>{let Q=v?.("_getItem")??null,le=f.getItems.bind(f);f.setGetItemFn((Ie)=>{let K=i.getEntry(Ie);if(K.type==="header")return{id:`__group_header_${K.group.groupIndex}`,__groupHeader:!0,groupKey:K.group.key,groupIndex:K.group.groupIndex};return Q?Q(K.dataIndex):le()[K.dataIndex]});let J=v?.("_updateTableForGroups");if(J)J((Ie)=>!!Ie.__groupHeader,o)});else f.setRenderFn(be,ie);f.registerMethod("getGroupLayout",()=>i),f.registerMethod("_dataToLayoutIndex",(Q)=>i.dataToLayoutIndex(Q)),f.registerMethod("_layoutToDataIndex",(Q)=>i.layoutToDataIndex(Q)),f.registerMethod("_getRenderedElement",(Q)=>ce.get(Q)??null),f.registerMethod("_isGroupHeader",(Q)=>i.getEntry(Q).type==="header"),f.registerMethod("_getItemLane",(Q)=>{let le=q?.get(Q);return le?le.col:-1}),f.registerMethod("_getItemY",(Q)=>{let le=q?.get(Q);return le?le.rowY:-1}),f.registerMethod("_getItemH",(Q)=>q?.get(Q)?.h??-1);let xe=f.config.startPadding,Te=j-xe;f.registerMethod("_scrollItemIntoView",(Q)=>{if(Q<0)return;let le=q?.get(Q),J=le?le.rowY:s.getOffset(Q),Ie=le?.h??s.getSize(Q),K=l.containerSize,se=l.scrollPosition;if(J<se+xe)f.scrollTo(Math.max(0,J-xe));else if(J+Ie+Te>se+K)f.scrollTo(J+Ie+Te-K)}),f.registerMethod("scrollToIndex",(Q,le="start")=>{let J=i.dataToLayoutIndex(Q),Ie=i.totalEntries;if(Ie===0)return;let K=Math.max(0,Math.min(J,Ie-1)),se=l.containerSize,Ce=q?.get(K),Le=Ce?Ce.rowY:s.getOffset(K),ze=Ce?Ce.h??s.getSize(K):s.getSize(K),$e=q?I()+j:s.getTotalSize(),He=Math.max(0,$e-se),Ye=typeof le==="string"?le:le.align??"start",Be=typeof le==="object"?le.behavior:void 0,we=typeof le==="object"?le.duration:void 0,Ne=q?j:0,Ke=Le+ze;if(Z&&M){let T=i.getEntry(K).group.groupIndex,pe=M[T];if(pe!==void 0)Ke=pe}let re;switch(Ye){case"center":re=Le-(se-ze)/2;break;case"end":re=Ke-se+Ne;break;default:re=Le}if(re=Math.max(0,Math.min(re,He)),Be==="smooth"&&we&&we>0)f.smoothScrollTo(re,we);else f.scrollTo(re)}),f.registerDestroyHandler(()=>{for(let[,Q]of ce)Q.remove();if(ce.clear(),z.clear(),n)n.destroy(),n=null;V.classList.remove(`${u}--grouped`)})},hooks:{onAfterScroll(f,X){if(n)n.update(f)},onResize(f,X){if(h<=0)return;H(i.totalEntries),ue=l.crossSize,L();let oe=I();if(g?.(oe),n)n.refresh(),n.update(l.scrollPosition);m=!0,be()}},destroy(){if(n)n.destroy(),n=null;ce.clear(),z.clear(),D.clear()}}}var In=(t,e,r)=>{if(String(r).startsWith(_e))return!1;let o=_e+e;if(t.has(o))return t.delete(o),t.add(r),!0;return!1},Tn=(t)=>({selected:new Set(t??[]),focusedIndex:-1,focusVisible:!1});function Ue(t,e,r,o){if(r===0)return;let i=o?-e:e,n=t.focusedIndex+i;if(n<0)n=0;if(n>=r)n=r-1;t.focusedIndex=n}function st(t){return Array.from(t)}function xt(t,e,r,o){if(o<=0)return 0;let i=o-1;if(r<=1)return t<0?0:t>i?i:t;let n=(e%r+r)%r;if(t<0)return n;if(t>i){let s=Math.floor(i/r)*r;return Math.min(s+n,i)}return t}var qn={preventScroll:!0};function lt(t){let e=t?.mode??"single",r=t?.followFocus??!1,o=t?.focusOnClick??!1,i=t?.keyboard??!0,n,s,l,P,S,g,V,A,b=-1,F=new Map,R=null,u=null,c=null,d=null,C,_=!1;function v(a){if(_)return;_=!0,R=a.getMethod("_layoutToDataIndex")??null,u=a.getMethod("_dataToLayoutIndex")??null,c=a.getMethod("_isGroupHeader")??null,d=a.getMethod("_scrollItemIntoView")??null,h=a.getMethod("_getLoadedItem")??null;let U=a.getMethod("getGroupLayout");if(U){let G=U();C=()=>G.totalEntries}}let x=(a)=>R?R(a):a,h=null,W=(a)=>{if(h)return h(a);return s()[a]},O=(a)=>{let U=x(a);return U>=0?W(U):void 0},k=(a,U,G)=>{if(!c)return a;let H=a;while(H>=0&&H<G){if(!c(H))return H;H+=U}H=a-U;while(H>=0&&H<G){if(!c(H))return H;H-=U}return a};function j(a,U){if(e==="single")n.selected.clear(),F.clear();if(n.selected.add(a),U)F.set(a,U)}function Z(a,U){if(n.selected.has(a))n.selected.delete(a),F.delete(a);else j(a,U)}function ee(){n.selected.clear(),F.clear()}function ce(a){n.selected.delete(a),F.delete(a)}function z(a,U){let G=Math.min(a,U),H=Math.max(a,U);for(let y=G;y<=H;y++){if(c?.(y))continue;let N=O(y);if(N)n.selected.add(N.id),F.set(N.id,N);else if(h){let ae=x(y);if(ae>=0)n.selected.add(_e+ae)}}}function D(){let a=V.totalItems;for(let U=0;U<a;U++){if(c?.(U))continue;let G=O(U);if(G)n.selected.add(G.id),F.set(G.id,G);else if(h){let H=x(U);if(H>=0)n.selected.add(_e+H)}}}function E(){if(n.selected.size===0)return[];if(F.size>=n.selected.size){let H=[];for(let y of n.selected){let N=F.get(y);if(N)H.push(N)}if(H.length===n.selected.size)return H}let a=[],U=new Set(n.selected),G=V.totalItems;for(let H=0;H<G&&U.size>0;H++){if(c?.(H))continue;let y=O(H);if(y&&U.has(y.id))a.push(y),F.set(y.id,y),U.delete(y.id)}return a}function w(){l(),P.emit("selection:change",{selected:st(n.selected),items:E()})}let B=null,m=-1;return{name:"selection",priority:50,setup(a){a.enableListboxRole(),n=Tn(t?.initial),s=a.getItems.bind(a),l=a.forceRender.bind(a),P=a.emitter,S=a.dom;let U=a.config;if(g=a.sizeCache,V=a.getState(),A=a.scrollTo.bind(a),C=()=>V.totalItems,e==="none"){a.registerMethod("select",()=>{}),a.registerMethod("deselect",()=>{}),a.registerMethod("toggleSelect",()=>{}),a.registerMethod("selectAll",()=>{}),a.registerMethod("clearSelection",()=>{}),a.registerMethod("getSelected",()=>[]),a.registerMethod("getSelectedItems",()=>[]),a.registerMethod("selectNext",()=>{}),a.registerMethod("selectPrevious",()=>{}),a.registerMethod("_seedSelection",()=>{}),a.registerMethod("_getFocusedId",()=>{return}),a.registerMethod("_focusById",()=>{});return}let G=U.classPrefix;a.setItemStateFn((M,L)=>{if(v(a),n.selected.size>0){let I=x(M),Y=I>=0?O(M):void 0,te=Y?.id;if(te!==void 0)if(n.selected.has(te))L.selected=!0;else if(In(n.selected,I,te))L.selected=!0,F.delete(_e+I),F.set(te,Y);else L.selected=!1;else L.selected=h!==null&&I>=0&&n.selected.has(_e+I)}else L.selected=!1;L.focused=n.focusVisible&&n.focusedIndex===M}),a.registerMethod("_getSelectedIds",()=>n.selected),a.registerMethod("_getFocusedIndex",()=>n.focusVisible?n.focusedIndex:-1),S.root.classList.add(`${G}--selectable`);let H=(M)=>{B=null,m=-1;let L=M.target.closest("[data-index]");if(!L)return!1;let I=parseInt(L.dataset.index??"-1",10);if(I<0)return!1;if(c?.(I))return!1;if(x(I)<0)return!1;let te=O(I);if(!te)return!1;return B=te,m=I,!0},y=0,N=(M)=>{if(M<0)return;if(d){d(M);return}if(!y){let ge=a.getMethod("_getRowGap");y=ge?ge():0}let L=a.getNavConfig(),I=L.scrollIndex?L.scrollIndex(M):M,Y=g.getOffset(I),te=g.getSize(I)-y,Ee=V.containerSize,de=V.scrollPosition,{startPadding:ne,endPadding:ue}=U;if(Y<de)A(Y);else if(ne+Y+te+ue>de+Ee)A(ne+Y+te+ue-Ee)},ae=(M)=>{let L=S.content.querySelectorAll(`[data-index="${M}"]`),I=null;for(let Y=0;Y<L.length;Y++){let te=L[Y];if(te.style.display!=="none"){I=te;break}}if(!I&&L.length>0)I=L[0];S.content.setAttribute("aria-activedescendant",I?.id??`${G}-item-${M}`)},q=()=>{if(V.destroyed)return;if(v(a),!S.content.matches(":focus-visible")&&!S.root.matches(":focus-visible"))return;let M=C();if(M===0)return;let L=n.focusedIndex>=0?Math.min(n.focusedIndex,M-1):0;L=k(L,1,M),n.focusedIndex=L,n.focusVisible=!0,ae(L),N(L),l()};S.root.addEventListener("focusin",q);let p=(M)=>{if(V.destroyed)return;let L=M.relatedTarget;if(L&&S.root.contains(L))return;n.focusVisible=!1,l(),S.content.removeAttribute("aria-activedescendant")};if(S.root.addEventListener("focusout",p),a.registerDestroyHandler(()=>{S.root.removeEventListener("focusin",q),S.root.removeEventListener("focusout",p)}),a.registerClickHandler((M)=>{if(v(a),!H(M))return;if(e==="multiple"&&M.shiftKey&&n.focusedIndex>=0){let I=b>=0?b:n.focusedIndex,Y=x(I),te=x(m);if(Y>=0&&te>=0)z(I,m);n.focusedIndex=m,n.focusVisible=o,b=m,w();return}if(n.focusedIndex=m,n.focusVisible=o,b=m,(S.content.getAttribute("tabindex")!==null?S.content:S.root).focus(qn),e==="single")j(B.id,B);else Z(B.id,B);w()}),i)a.registerKeydownHandler((M)=>{v(a);let L=C();if(L===0)return;let I=a.getNavConfig(),Y=n.focusedIndex,te=!1,Ee=!1;if(I.navigate&&(M.key==="ArrowUp"||M.key==="ArrowDown"||M.key==="ArrowLeft"||M.key==="ArrowRight"||M.key==="PageUp"||M.key==="PageDown"||M.key==="Home"||M.key==="End")){let ne=I.total?I.total():L,ue=I.navigate(n.focusedIndex,M.key,ne);if(ue!==n.focusedIndex)n.focusedIndex=Math.max(0,Math.min(ue,ne-1));n.focusVisible=!0,te=!0}else switch(M.key){case"ArrowUp":{let ne=I.ud||1,ue=I.lr,ge=U.axis.primary==="x";if(ge&&!ue)break;Ue(n,-(ge?ue:ne),L,U.reverse),n.focusVisible=!0,te=!0;break}case"ArrowDown":{let ne=I.ud||1,ue=I.lr,ge=U.axis.primary==="x";if(ge&&!ue)break;Ue(n,ge?ue:ne,L,U.reverse),n.focusVisible=!0,te=!0;break}case"ArrowLeft":{let ne=I.ud||1,ue=I.lr,ge=U.axis.primary==="x";if(!ge&&!ue)break;Ue(n,-(ge?ne:ue),L,U.reverse),n.focusVisible=!0,te=!0;break}case"ArrowRight":{let ne=I.ud||1,ue=I.lr,ge=U.axis.primary==="x";if(!ge&&!ue)break;Ue(n,ge?ne:ue,L,U.reverse),n.focusVisible=!0,te=!0;break}case"Home":if(L>0)n.focusedIndex=0;n.focusVisible=!0,te=!0;break;case"End":if(L>0)n.focusedIndex=L-1;n.focusVisible=!0,te=!0;break;case"PageUp":case"PageDown":{let ne=I.ud||1,ue=Math.max(0,n.focusedIndex),ge=I.scrollIndex?I.scrollIndex(ue):ue,be=g.getSize(ge),ie=V.containerSize,X=(be>0?Math.max(1,Math.floor(ie/be)):10)*ne;if(R&&u){let oe=R(n.focusedIndex),me=M.key==="PageUp"?-X:X,ve=V.totalItems-1;n.focusedIndex=u(xt(oe+me,oe,ne,ve+1))}else{let oe=M.key==="PageUp"?n.focusedIndex-X:n.focusedIndex+X;n.focusedIndex=xt(oe,n.focusedIndex,ne,L)}n.focusVisible=!0,te=!0;break}case" ":case"Enter":if(M.key===" "&&M.shiftKey&&e==="multiple"&&n.focusedIndex>=0){if(b>=0){let ne=x(b),ue=x(n.focusedIndex);if(ne>=0&&ue>=0)z(b,n.focusedIndex)}n.focusVisible=!0,Ee=!0,te=!0;break}if(n.focusedIndex>=0){let ne=O(n.focusedIndex);if(ne)Z(ne.id,ne),b=n.focusedIndex;n.focusVisible=!0,Ee=!0,te=!0}break;case"a":if((M.ctrlKey||M.metaKey)&&e==="multiple"){if(n.selected.size===V.totalItems)ee();else D();n.focusVisible=!0,Ee=!0,te=!0}break;case"Delete":case"Backspace":if(n.selected.size>0)P.emit("delete",{selected:st(n.selected),items:E()}),te=!0;break}if(n.focusedIndex!==Y&&c){let ne=n.focusedIndex>Y?1:-1;n.focusedIndex=k(n.focusedIndex,ne,L)}let de=n.focusedIndex!==Y;if(M.shiftKey&&e==="multiple"&&!Ee&&de){if(M.key==="ArrowUp"||M.key==="ArrowDown"||M.key==="ArrowLeft"||M.key==="ArrowRight"){let ge=O(n.focusedIndex);if(ge)Z(ge.id,ge);b=n.focusedIndex,Ee=!0}if((M.ctrlKey||M.metaKey)&&(M.key==="Home"||M.key==="End")){let ge=Y>=0?Y:n.focusedIndex,be=x(ge),ie=x(n.focusedIndex);if(be>=0&&ie>=0)z(ge,n.focusedIndex);b=n.focusedIndex,Ee=!0}}if(r&&e==="single"&&!Ee&&de&&n.focusedIndex>=0){let ne=O(n.focusedIndex);if(ne)j(ne.id,ne);Ee=!0}if(te){if(M.preventDefault(),de&&n.focusedIndex>=0){if(d||!I.navigate)N(n.focusedIndex);ae(n.focusedIndex)}if(Ee)w();else if(de){if(l(),n.focusedIndex>=0){let ne=O(n.focusedIndex);if(ne)P.emit("focus:change",{id:ne.id,index:n.focusedIndex})}}}});a.registerMethod("select",(...M)=>{for(let L of M)j(L);w()}),a.registerMethod("deselect",(...M)=>{for(let L of M)ce(L);w()}),a.registerMethod("toggleSelect",(M)=>{Z(M),w()}),a.registerMethod("selectAll",()=>{if(e!=="multiple")return;v(a),D(),w()}),a.registerMethod("clearSelection",()=>{ee(),w()}),a.registerMethod("getSelected",()=>st(n.selected)),a.registerMethod("getSelectedItems",()=>E()),a.registerMethod("selectNext",()=>{v(a);let M=C();if(M===0)return;if(Ue(n,1,M,U.reverse),c)n.focusedIndex=k(n.focusedIndex,1,M);let L=O(n.focusedIndex);if(L)j(L.id,L);w()}),a.registerMethod("selectPrevious",()=>{v(a);let M=C();if(M===0)return;if(Ue(n,-1,M,U.reverse),c)n.focusedIndex=k(n.focusedIndex,-1,M);let L=O(n.focusedIndex);if(L)j(L.id,L);w()}),a.registerMethod("_seedSelection",(M)=>{if(e==="single"){if(M.length===1)n.selected.add(M[0])}else for(let L of M)n.selected.add(L)}),a.registerMethod("_isFollowFocus",()=>r),a.registerMethod("_getFocusedId",()=>{if(n.focusedIndex<0)return;return O(n.focusedIndex)?.id}),a.registerMethod("_focusById",(M)=>{let L=V.totalItems;for(let I=0;I<L;I++){if(c?.(I))continue;let Y=O(I);if(Y&&Y.id===M){n.focusedIndex=I,n.focusVisible=o,P.emit("focus:change",{id:M,index:I});return}}})},destroy(){F.clear()}}}var xn=!1;function Lt(t){return{name:"scale",priority:20,setup(){if(!xn)xn=!0,console.warn("[vlist] scale() is deprecated and will be removed in vlist 3.0. "+'Use scroll: { mode: "bounded" } instead — it handles lists of any size '+"without coordinate compression. See https://vlist.io/docs/logical-scroll")}}}var jn=(t)=>{if(typeof t!=="object"){let e=t??2;return{top:e,right:e,bottom:e,left:e}}return{top:t.top??2,right:t.right??2,bottom:t.bottom??2,left:t.left??2}},Ln=(t,e,r={},o="vlist",i=!1,n)=>{let{autoHide:s=!0,autoHideDelay:l=1000,minThumbSize:P=15,showOnHover:S=!0,showOnViewportEnter:g=!0,clickBehavior:V="scroll"}=r,A=V==="page"?"scroll":V,b=n??t,F=jn(r.padding),R=i?F.left:F.top,u=i?F.right:F.bottom,c=i?F.bottom:F.right,d=r.hoverZoneWidth??c+16,C=0,_=0,v=0,x=0,h=!1,W=!1,O=0,k=0,j=0,Z=null,ee=!1,ce=null,z=0,D=0,E=null,w=null,B=null,m=i?"width":"height",a=i?"translateX":"translateY",U=i?(J)=>J.clientX:(J)=>J.clientY,G=i?"left":"top",H=document.createElement("div"),y=document.createElement("div"),N=document.createElement("div"),ae=i?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",q=()=>{if(b===t)return;let J=t.offsetTop;H.style[i?"left":"top"]=J?`calc(var(${ae}) + ${J}px)`:`var(${ae})`,N.style[i?"left":"top"]=`${J}px`},p=()=>{if(H.className=`${o}-scrollbar`,y.className=`${o}-scrollbar__thumb`,i)H.classList.add(`${o}-scrollbar--horizontal`);if(r.padding!==void 0)b.style.setProperty("--vlist-custom-scrollbar-padding-top",`${F.top}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-right",`${F.right}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${F.bottom}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-left",`${F.left}px`);if(r.minThumbSize!==void 0)H.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${P}px`);if(H.appendChild(y),b.appendChild(H),N.className=`${o}-scrollbar__hover`,i)N.classList.add(`${o}-scrollbar__hover--horizontal`),N.style.height=`${d}px`;else N.style.width=`${d}px`;if(b.appendChild(N),b!==t)q()},M=()=>{if(Z)clearTimeout(Z),Z=null},L=()=>{if(!s)return;M(),Z=setTimeout(Y,l)},I=()=>{if(C<=_)return;if(M(),!ee)H.classList.add(`${o}-scrollbar--visible`),ee=!0;if(s&&!h&&!W)L()},Y=()=>{if(h||W)return;H.classList.remove(`${o}-scrollbar--visible`),ee=!1},te=(J,Ie)=>{if(C=J,_=Ie,q(),C<=_){H.style.display="none",Y();return}H.style.display="";let K=Math.max(0,_-R-u),se=_/C;if(v=Math.max(P,se*K),y.style[m]=`${v}px`,x=K-v,Ee(j),!s)I()},Ee=(J)=>{if(j=J,C<=_||x<=0)return;let Ie=C-_,K=Math.min(1,Math.max(0,J/Ie));y.style.transform=`${a}(${K*x}px)`},de=(J)=>{if(J.target===y||A!=="jump"||x<=0)return;let Ie=C-_,K=H.getBoundingClientRect(),se=U(J)-K[G],Ce=Math.max(0,Math.min(se-v/2,x));e(Ce/x*Ie),I()},ne=()=>{if(E!==null)clearTimeout(E),E=null;if(w!==null)cancelAnimationFrame(w),w=null;B=null},ue=(J)=>{let Ie=x>0?D/J*x:0;if(z<Ie)return-1;if(z>=Ie+v)return 1;return 0},ge=()=>{let J=C-_,Ie=ue(J);if(Ie===0){ne();return}if(Ie===-1){if(D<=0){ne();return}let K=Math.max(0,D-_);D=K,e(K)}else{if(D>=J){ne();return}let K=Math.min(J,D+_);D=K,e(K)}I()},be=(J)=>{if(B===null){B=J,w=requestAnimationFrame(be);return}let Ie=C-_,K=J-B;B=J;let se=ue(Ie);if(se===0){ne();return}let Ce=12*_/1000,Le=Math.min(Ce*K,_);if(se===-1){if(D<=0){ne();return}let ze=Math.max(0,D-Le);D=ze,e(ze)}else{if(D>=Ie){ne();return}let ze=Math.min(Ie,D+Le);D=ze,e(ze)}M(),w=requestAnimationFrame(be)},ie=()=>{ne(),L(),document.removeEventListener("mouseup",ie)},f=(J)=>{if(J.target===y||A!=="scroll")return;J.preventDefault();let Ie=H.getBoundingClientRect();z=U(J)-Ie[G],D=j,ge(),E=setTimeout(()=>{w=requestAnimationFrame(be)},350),document.addEventListener("mouseup",ie)},X=(J)=>{J.preventDefault(),J.stopPropagation(),h=!0,O=U(J),k=j,M(),H.classList.add(`${o}-scrollbar--dragging`),document.addEventListener("mousemove",oe),document.addEventListener("mouseup",me)},oe=(J)=>{if(!h)return;let Ie=U(J)-O,K=x>0?Ie/x:0,se=C-_,Ce=K*se,Le=Math.max(0,Math.min(k+Ce,se));y.style.transform=`${a}(${Le/se*x}px)`,e(Le)},me=()=>{if(h=!1,H.classList.remove(`${o}-scrollbar--dragging`),s&&!W)L();document.removeEventListener("mousemove",oe),document.removeEventListener("mouseup",me)},ve=i?(J)=>J.touches[0].clientX:(J)=>J.touches[0].clientY,Se=(J)=>{J.stopPropagation(),h=!0,O=ve(J),k=j,M(),H.classList.add(`${o}-scrollbar--dragging`)},ye=(J)=>{if(!h)return;J.preventDefault();let Ie=ve(J)-O,K=x>0?Ie/x:0,se=C-_,Ce=K*se,Le=Math.max(0,Math.min(k+Ce,se));y.style.transform=`${a}(${Le/se*x}px)`,e(Le)},fe=()=>{if(h=!1,H.classList.remove(`${o}-scrollbar--dragging`),s)L()},he=(J)=>{if(J.target===y)return;if(x<=0)return;let Ie=J.touches[0],K=H.getBoundingClientRect(),se=(i?Ie.clientX:Ie.clientY)-K[G];if(A==="jump"){let Ce=C-_,Le=Math.max(0,Math.min(se-v/2,x));e(Le/x*Ce)}else z=se,D=j,ge();I()},Me=()=>{if(g)I()},xe=()=>{if(!h){if(W=!1,s)L()}},Te=()=>{W=!0,M(),I()},Q=()=>{if(W=!1,!h&&s)L()},le=()=>{if(M(),ne(),ce!==null)cancelAnimationFrame(ce),ce=null;H.removeEventListener("click",de),H.removeEventListener("mousedown",f),H.removeEventListener("mouseenter",Te),document.removeEventListener("mouseup",ie),H.removeEventListener("mouseleave",Q),H.removeEventListener("touchstart",he),y.removeEventListener("mousedown",X),y.removeEventListener("touchstart",Se),y.removeEventListener("touchmove",ye),y.removeEventListener("touchend",fe),t.removeEventListener("mouseenter",Me),t.removeEventListener("mouseleave",xe),document.removeEventListener("mousemove",oe),document.removeEventListener("mouseup",me),N.removeEventListener("click",de),N.removeEventListener("mousedown",f),N.removeEventListener("mouseenter",Te),N.removeEventListener("mouseleave",Q),N.remove(),b.style.removeProperty("--vlist-custom-scrollbar-padding-top"),b.style.removeProperty("--vlist-custom-scrollbar-padding-right"),b.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),b.style.removeProperty("--vlist-custom-scrollbar-padding-left"),H.remove()};if(p(),H.addEventListener("click",de),H.addEventListener("mousedown",f),H.addEventListener("mouseenter",Te),H.addEventListener("mouseleave",Q),H.addEventListener("touchstart",he,{passive:!0}),y.addEventListener("mousedown",X),y.addEventListener("touchstart",Se,{passive:!0}),y.addEventListener("touchmove",ye,{passive:!1}),y.addEventListener("touchend",fe,{passive:!0}),t.addEventListener("mouseenter",Me),t.addEventListener("mouseleave",xe),N.addEventListener("click",de),N.addEventListener("mousedown",f),S)N.addEventListener("mouseenter",Te),N.addEventListener("mouseleave",Q);return{show:I,hide:Y,updateBounds:te,updatePosition:Ee,isVisible:()=>ee,destroy:le}};function Et(t){let e=null,r,o=0,i=0,n=0;return{name:"scrollbar",priority:15,setup(s){let{dom:l,config:P}=s,{classPrefix:S}=P,g=P.axis.primary==="x";r=s.getState(),o=P.mainAxisPadding;let V=(A)=>{s.scrollTo(A)};if(s.registerMethod("_scrollbar:setCallback",(A)=>{V=A}),e=Ln(l.viewport,(A)=>{V(A)},t,S,g,l.root),l.viewport.classList.add(`${S}-viewport--custom-scrollbar`),t?.gutter)l.viewport.classList.add(`${S}-viewport--gutter`);queueMicrotask(()=>{e?.updateBounds(r.totalSize+o,r.containerSize)}),s.registerMethod("_scrollbar:getInstance",()=>e),s.registerDestroyHandler(()=>{if(e?.destroy(),e=null,l.viewport.classList.remove(`${S}-viewport--custom-scrollbar`),t?.gutter)l.viewport.classList.remove(`${S}-viewport--gutter`)})},hooks:{onAfterScroll(s){let l=r.totalSize+o,P=r.containerSize;if(l!==i||P!==n)i=l,n=P,e?.updateBounds(l,P);e?.updatePosition(s),e?.show()},onResize(){let s=r.totalSize+o,l=r.containerSize;i=s,n=l,e?.updateBounds(s,l)}},destroy(){e?.destroy(),e=null}}}var Zn=(t)=>{try{let e=sessionStorage.getItem(t);if(!e)return;return JSON.parse(e)}catch{return}};function Mt(t){let e=t?.autoSave,r=t?.restore??(e?Zn(e):void 0),o=!1,i=null;return{name:"snapshots",priority:50,setup(n){let{sizeCache:s,emitter:l}=n,P=n.getState(),S=()=>{let{scrollPosition:A,totalItems:b}=P,R=n.getMethod("getSelected")?.();if(b===0){let h={index:0,offsetInItem:0,total:0};if(R?.length)h.selectedIds=R;return h}let u=s.indexAtOffset(A),c=A-s.getOffset(u);c=Math.max(0,c);let d={index:u,offsetInItem:c,total:b,scrollTop:A},C=s.getSize(u);if(C)d.offsetRatio=c/C;let _=n.getMethod("_layoutToDataIndex");if(_){let h=_(u);if(h<0){for(let W=u+1;W<b;W++)if(h=_(W),h>=0)break}if(h>=0)d.dataIndex=h}let v=n.getMethod("_getTotal");if(v)d.dataTotal=v();if(R?.length)d.selectedIds=R;let x=n.getMethod("_getFocusedId");if(x){let h=x();if(h!==void 0)d.focusedId=h}return d};n.registerMethod("getScrollSnapshot",S);let g=(A,b=!0)=>{let{index:F,offsetInItem:R,selectedIds:u,focusedId:c}=A,d=P.totalItems,C=A.dataTotal??A.total;if(d===0&&C&&C>0){let D=n.getMethod("_setTotal");if(D)D(C),d=P.totalItems;s.rebuild(d),n.updateContentSize(s.getTotalSize()),P.totalSize=s.getTotalSize()}if(d===0)return Promise.resolve();if(!Number.isFinite(F)||!Number.isFinite(R))return Promise.resolve();if(s.getTotal()===0)s.rebuild(d),n.updateContentSize(s.getTotalSize()),P.totalSize=s.getTotalSize();let v=n.getMethod("_dataToLayoutIndex"),x=F;if(A.dataIndex!==void 0&&A.dataIndex>=0)x=v?v(A.dataIndex):A.dataIndex;else if(v)x=v(F);let h=Math.max(0,Math.min(x,d-1)),W=s.getSize(h),O=A.offsetRatio!==void 0?A.offsetRatio*W:Math.min(R,W),k=n.getMethod("_getTotal")?.(),j=A.total===d||k!==void 0&&A.dataTotal===k,Z;if(A.scrollTop!==void 0&&j)Z=A.scrollTop;else Z=s.getOffset(h)+O;let ee=Math.max(0,P.totalSize-P.containerSize);if(Z=Math.max(0,Math.min(Z,ee)),n.scrollTo(Z),b&&u?.length){let D=n.getMethod("select");if(D)D(...u)}let ce=n.getMethod("loadVisibleRange"),z=()=>{if(c===void 0)return;let D=n.getMethod("_focusById");if(D)D(c)};return new Promise((D)=>{let E=(w)=>{if(w)z();D()};if(ce){let w=0,B=()=>{if(P.containerSize>0){if(Math.abs(P.scrollPosition-Z)>1)n.scrollTo(Z);ce().then(()=>E(!0),()=>E(!1))}else if(++w<10)requestAnimationFrame(B);else E(!1)};requestAnimationFrame(B)}else{let w=n.getMethod("reload");if(w)requestAnimationFrame(()=>{w().then(()=>E(!0),()=>E(!1))});else requestAnimationFrame(()=>E(!0))}})};n.registerMethod("restoreScroll",g);let V=!!(r&&e);if(n.registerDestroyHandler(()=>{o=!0}),e){i=()=>{if(o||V)return;let d=S();try{sessionStorage.setItem(e,JSON.stringify(d))}catch{}},n.registerMethod("_saveSnapshot",i);let A=0,b=()=>{if(A)return;A=requestAnimationFrame(()=>{if(A=0,i)i()})};l.on("selection:change",b),l.on("focus:change",b);let F=0,R=()=>{if(F=0,i)i()},u=()=>{if(F)clearTimeout(F);F=setTimeout(R,300)};l.on("scroll",u);let c=()=>{i?.()};if(window.addEventListener("beforeunload",c),n.registerDestroyHandler(()=>{if(A)cancelAnimationFrame(A);if(F)clearTimeout(F);window.removeEventListener("beforeunload",c)}),r&&r.total&&r.total>0){let d=n.getMethod("_cancelAutoLoad");if(d)d();let C=n.getMethod("_setTotal");if(C)C(r.total)}}if(r){let A=!0;if(r.selectedIds?.length){let b=n.getMethod("_seedSelection");if(b)b(r.selectedIds),A=!1}queueMicrotask(()=>{if(g(r,A),V=!1,i)i()})}},hooks:{onIdle(){if(i&&!o)i()}},destroy(){o=!0,i=null}}}function Jn(t){let e=[];if(typeof window<"u"&&t.scroll?.element===window)e.push(pt());let r=t.item,o=t.orientation==="horizontal",i=o?r.width!=null:r.height!=null,n=o?r.estimatedWidth!=null:r.estimatedHeight!=null;if(!i&&n)e.push(bt());if(t.adapter)e.push(ht({adapter:t.adapter,...t.loading&&{loading:t.loading}}));if(t.layout==="grid"&&t.grid)e.push(vt(t.grid));if(t.layout==="masonry"&&t.masonry)e.push(St(t.masonry));if(t.groups){let P=t.groups,S=typeof P.headerHeight==="function"?P.headerHeight("",0):P.headerHeight;e.push(Tt({getGroupForIndex:P.getGroupForIndex,...S!==void 0&&{headerHeight:S},...P.headerTemplate!==void 0&&{headerTemplate:P.headerTemplate},...P.sticky!==void 0&&{sticky:P.sticky}}))}if((t.selection?.mode||"none")!=="none")e.push(lt(t.selection));else e.push(lt({mode:"none"}));e.push(Lt());let l=t.scroll?.scrollbar||t.scrollbar;if(l!=="none"&&l!=="native"){let P=l&&typeof l==="object"?l:{};e.push(Et(P))}if(e.push(Mt()),t.plugins&&t.plugins.length>0){let P=new Set(t.plugins.map((g)=>g.name));return[...e.filter((g)=>!P.has(g.name)),...t.plugins]}return e}function oi(t){return an(t,Jn(t))}export{oi as createVListFromConfig,Jn as resolvePlugins};
|
|
1
|
+
var Qe=3,zt="vlist";var et=50;var At=50,wt=2,Rt=15,Ht=6,dt=2000,_t=30000,ut=16000000,Ve=150,je=1,tt=(t)=>t<0.5?2*t*t:1-(-2*t+2)**2/2,kt=300,Ft=2,Dt=1.5,Vt=0.25,Ot=0.75;var $t="x",Gt=20,ct="_isPlaceholder",_e="__placeholder_";var nt={top:0,right:0,bottom:0,left:0},Bt=(t)=>{if(t==null)return nt;if(typeof t==="number")return t===0?nt:{top:t,right:t,bottom:t,left:t};if(t.length===2){let[n,s]=t;return n===0&&s===0?nt:{top:n,right:s,bottom:n,left:s}}let[e,r,o,i]=t;return e===0&&r===0&&o===0&&i===0?nt:{top:e,right:r,bottom:o,left:i}},Nt=(t,e)=>e?t.left+t.right:t.top+t.bottom,Wt=(t,e)=>e?t.top+t.bottom:t.left+t.right;function Yt(t){let e={visibleIndices:new Int32Array(t),visibleOffsets:new Float64Array(t),visibleSizes:new Float64Array(t),visibleCount:0,startIndex:0,totalSize:0,capacity:t,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,prevAriaTotal:-1,resizeCapacity(r,o,i=Qe){if(o<=0||r<=0)return;let n=Math.ceil(r/o)+i*2;if(n<=e.capacity)return;let s=n+8,l=new Int32Array(s),C=new Float64Array(s),S=new Float64Array(s);l.set(e.visibleIndices),C.set(e.visibleOffsets),S.set(e.visibleSizes),e.visibleIndices=l,e.visibleOffsets=C,e.visibleSizes=S,e.capacity=s},clear(){e.visibleCount=0,e.startIndex=0}};return e}var Pn=(t,e)=>{let r=e;return{getOffset:(o)=>o*t,getSize:(o)=>t,indexAtOffset:(o)=>{if(r===0||t===0)return 0;return Math.max(0,Math.min(Math.floor(o/t),r-1))},getTotalSize:()=>r*t,getTotal:()=>r,rebuild:(o)=>{r=o},isVariable:()=>!1}},zn=(t,e)=>{let r=e,o=new Float64Array(0),i=(s)=>{r=s,o=new Float64Array(s+1),o[0]=0;for(let l=0;l<s;l++)o[l+1]=o[l]+t(l)};i(e);let n=(s)=>{if(r===0)return 0;if(s<=0)return 0;if(s>=o[r])return r-1;let l=0,C=r-1;while(l<C){let S=l+C+1>>>1;if(o[S]<=s)l=S;else C=S-1}return l};return{getOffset:(s)=>{if(s<=0)return 0;if(s>=r)return o[r];return o[s]},getSize:(s)=>t(s),indexAtOffset:(s)=>n(s),getTotalSize:()=>o[r]??0,getTotal:()=>r,rebuild:(s)=>i(s),isVariable:()=>!0}},ot=(t,e)=>{if(typeof t==="number")return Pn(t,e);return zn(t,e)};function Ut(t){let e=[],r=`${t}-item`,o=document.createElement("div");return o.className=r,{acquire(){if(e.length>0)return e.pop();return o.cloneNode(!1)},release(i){if(i.className=r,i.removeAttribute("style"),i.removeAttribute("id"),i.removeAttribute("role"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-posinset"),i.removeAttribute("aria-setsize"),i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.textContent="",e.length<100)e.push(i)},get size(){return e.length},clear(){e.length=0}}}function We(t){let e=t.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let r=0;r<e.length;r++)e[r].setAttribute("tabindex","-1")}function Kt(t){if(typeof t==="string"){let e=document.querySelector(t);if(!e)throw Error(`[vlist] Container not found: ${t}`);return e}return t}function Xt(t,e,r,o){let i=r?`${e} ${e}--horizontal`:e,n=r?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",s=r?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",l=' role="list"';if(o)l+=` aria-label="${o.replace(/"/g,""")}"`;if(r)l+=' aria-orientation="horizontal"';t.insertAdjacentHTML("beforeend",`<div class="${i}"><div class="${e}-viewport" style="${n}" tabindex="-1"><div class="${e}-content" style="${s}"${l}></div></div></div>`);let C=t.lastElementChild,S=C.firstElementChild,g=S.firstElementChild,O=document.createElement("div");return O.className=`${e}-live`,O.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",O.setAttribute("aria-live","polite"),O.setAttribute("aria-atomic","true"),O.setAttribute("role","status"),C.appendChild(O),{root:C,viewport:S,content:g,liveRegion:O}}function qt(t){let{state:e,viewport:r,isX:o,wheelEnabled:i,onFrame:n,onIdle:s}=t,l=t.idleTimeout||Ve,C=t.scrollTarget??r,S=null,g=null;function O(){let u=o?r.scrollLeft:r.scrollTop;if(Math.abs(u-e.scrollPosition)<0.5)return;e.prevScrollPosition=e.scrollPosition,e.scrollPosition=u,e.scrollDirection=u>e.prevScrollPosition?1:u<e.prevScrollPosition?-1:0,n(),b()}function A(u){let c;if(o){if(Math.abs(u.deltaX)>Math.abs(u.deltaY))return;let d=r.scrollLeft,P=r.scrollWidth-r.clientWidth;if(c=Math.max(0,Math.min(d+u.deltaY*je,P)),Math.abs(c-d)<1)return;u.preventDefault(),r.scrollLeft=c}else{let d=r.scrollWidth>r.clientWidth;if(d&&Math.abs(u.deltaX)>Math.abs(u.deltaY))return;if(d&&u.deltaX!==0)u.preventDefault(),r.scrollLeft+=u.deltaX;let P=r.scrollTop,_=r.scrollHeight-r.clientHeight;if(c=Math.max(0,Math.min(P+u.deltaY*je,_)),Math.abs(c-P)<1)return;u.preventDefault(),r.scrollTop=c}e.prevScrollPosition=e.scrollPosition,e.scrollPosition=c,e.scrollDirection=c>e.prevScrollPosition?1:-1,n(),b()}function b(){if(S!==null)clearTimeout(S);S=setTimeout(()=>{S=null,e.scrollDirection=0,s()},l)}function F(){if(g!==null)cancelAnimationFrame(g),g=null}function R(u,c,d,P=tt,_){F();let v=e.scrollPosition,x=typeof u==="function"?u:()=>u,h=x();if(Math.abs(h-v)<1){if(d)d(h);else if(o)r.scrollLeft=h;else r.scrollTop=h;_?.();return}let Y=performance.now();function G(k){h=x();let j=k-Y,Z=Math.min(j/c,1),ee=v+(h-v)*P(Z);if(d)d(ee);else if(o)r.scrollLeft=ee;else r.scrollTop=ee;if(!d)e.scrollPosition=ee;if(n(),Z<1)g=requestAnimationFrame(G);else g=null,b(),_?.()}g=requestAnimationFrame(G)}return{attach(){if(C.addEventListener("scroll",O,{passive:!0}),i)C.addEventListener("wheel",A,{passive:!1})},detach(){if(C.removeEventListener("scroll",O),i)C.removeEventListener("wheel",A);if(F(),S!==null)clearTimeout(S),S=null},cancelScroll:F,smoothScrollTo:R}}function Xe(t,e,r){if(t<e)return e;if(t>r)return r;return t}function jt(t){let{state:e,viewport:r,content:o,isX:i,wheelEnabled:n,onFrame:s,onIdle:l,mainAxisPadding:C}=t,S=t.idleTimeout||Ve,g=t.runwayFactor??Ft,O=t.wrap??null,A=O!==null,b=t.scrollTarget??r,F=0,R=0,u=0,c=null,d=null;function P(){return i?r.scrollLeft:r.scrollTop}function _(z){if(i)r.scrollLeft=z;else r.scrollTop=z}function v(z){let D=A?z:Xe(z,0,R);e.prevScrollPosition=e.scrollPosition,e.scrollPosition=D,e.scrollDirection=D>e.prevScrollPosition?1:D<e.prevScrollPosition?-1:0;let E=F/2;if(A){e.baseOffset=D-E,_(E);return}let w=Xe(D-E,0,u);e.baseOffset=w,_(Xe(D-w,0,F))}function x(z){v(z),s(),j()}function h(){let z=P(),D=e.baseOffset+z;if(Math.abs(D-e.scrollPosition)<0.5)return;if(e.prevScrollPosition=e.scrollPosition,e.scrollPosition=D,e.scrollDirection=D>e.prevScrollPosition?1:D<e.prevScrollPosition?-1:0,Y(z),A)G();s(),j()}function Y(z){let D=F*Vt,E=F*Ot,w=F/2;if(A){if(z>=D&&z<=E)return;e.baseOffset=e.scrollPosition-w,_(w);return}if(u<=0)return;let B=e.baseOffset,m=z<D&&B>0,a=z>E&&B<u;if(!m&&!a)return;let W=e.scrollPosition,V=Xe(W-w,0,u);if(V===B)return;e.baseOffset=V,_(Xe(W-V,0,F))}function G(){let z=O.lapSize();if(z<=0)return;let D=e.scrollPosition-O.home(),E=Math.trunc(D/z);if(Math.abs(E)<O.thresholdLaps)return;let w=E*z;e.scrollPosition-=w,e.prevScrollPosition-=w,e.baseOffset-=w}function k(z){let D;if(i)if(Math.abs(z.deltaX)>Math.abs(z.deltaY)){if(!A)return;D=z.deltaX}else D=z.deltaY;else{let m=r.scrollWidth>r.clientWidth;if(m&&Math.abs(z.deltaX)>Math.abs(z.deltaY))return;if(m&&z.deltaX!==0)z.preventDefault(),r.scrollLeft+=z.deltaX;D=z.deltaY}let E=e.scrollPosition,w=E+D*je,B=A?w:Xe(w,0,R);if(Math.abs(B-E)<1)return;if(z.preventDefault(),x(B),A)G()}function j(){if(c!==null)clearTimeout(c);c=setTimeout(()=>{c=null,e.scrollDirection=0,l()},S)}function Z(){if(d!==null)cancelAnimationFrame(d),d=null}function ee(z,D,E,w=tt,B){Z();let m=e.scrollPosition,a=typeof z==="function"?z:()=>z,W=a();if(Math.abs(W-m)<1){x(W),B?.();return}let V=performance.now();function H(y){W=a();let N=Math.min((y-V)/D,1);if(v(m+(W-m)*w(N)),s(),N<1)d=requestAnimationFrame(H);else d=null,j(),B?.()}d=requestAnimationFrame(H)}function ce(z){let D=e.containerSize,E=z+C,w=D*g,B=A?w:Math.min(E,w);F=Math.max(0,B-D),R=Math.max(0,E-D),u=Math.max(0,E-B),e.totalSize=z,o.style[i?"width":"height"]=B+"px",v(e.scrollPosition)}return{attach(){if(b.addEventListener("scroll",h,{passive:!0}),n)b.addEventListener("wheel",k,{passive:!1})},detach(){if(b.removeEventListener("scroll",h),n)b.removeEventListener("wheel",k);if(Z(),c!==null)clearTimeout(c),c=null},cancelScroll:Z,smoothScrollTo:ee,setLogical:x,getLogical(){return e.scrollPosition},getMaxLogical(){return R},refresh:ce}}function An(t,e){if(t.getTotal()<=0)return{index:0,offsetPx:0};let o=e<=0?0:e,i=t.indexAtOffset(o),n=o-t.getOffset(i);return{index:i,offsetPx:n>0?n:0}}function wn(t,e){let r=Rn(t,e);return t.getOffset(r.index)+r.offsetPx}function Rn(t,e){let r=t.getTotal();if(r<=0)return{index:0,offsetPx:0};let{index:o,offsetPx:i}=e;if(o<0)return{index:0,offsetPx:0};if(o>r-1)o=r-1;while(i>0&&o<r-1){let n=t.getSize(o);if(i<n)break;i-=n,o++}while(i<0&&o>0)o--,i+=t.getSize(o);if(i<0)i=0;return{index:o,offsetPx:i}}function Zt(t){let{sizeCache:e,getPixel:r,setPixel:o,getContainerSize:i}=t;function n(){let l=e.getTotalSize()-i();return l>0?l:0}function s(l){if(l<=0)return 0;let C=n();return l>C?C:l}return{getLogical(){return An(e,r())},setLogical(l){o(s(wn(e,l)))},getPixelEquivalent(){return r()},setPixelEquivalent(l){o(s(l))},getMaxPixelEquivalent:n,scrollByPx(l){o(s(r()+l))}}}var Ze=[],Hn={calculate:Ze,commit:Ze,afterScroll:Ze,idle:Ze,resize:Ze};function Jt(t){if(t.length===0)return Hn;let e=[],r=[],o=[],i=[],n=[];for(let s=0;s<t.length;s++){let l=t[s].hooks;if(l===void 0)continue;if(l.onCalculate!==void 0)e.push(l.onCalculate);if(l.onCommit!==void 0)r.push(l.onCommit);if(l.onAfterScroll!==void 0)o.push(l.onAfterScroll);if(l.onIdle!==void 0)i.push(l.onIdle);if(l.onResize!==void 0)n.push(l.onResize)}return{calculate:e,commit:r,afterScroll:o,idle:i,resize:n}}function Qt(t,e){for(let r=0;r<t.length;r++)t[r](e)}function en(t,e){for(let r=0;r<t.length;r++)t[r](e)}function mt(t,e,r){for(let o=0;o<t.length;o++)t[o](e,r)}function tn(t){for(let e=0;e<t.length;e++)t[e]()}function nn(t,e,r){for(let o=0;o<t.length;o++)t[o](e,r)}function on(t,e,r,o,i,n,s,l){let C=o!==0||i!==0;return{prefix:t,selectedClass:`${t}-item--selected`,focusedClass:`${t}-item--focused`,placeholderClass:`${t}-item--placeholder`,replacedClass:`${t}-item--replaced`,translateProp:e?"translateX(":"translateY(",sizeProp:e?"width":"height",itemRole:"listitem",interactive:!1,startPadding:r,gap:s,hasCrossPad:C,crossStartProp:C?e?"top":"left":"",crossEndProp:C?e?"bottom":"right":"",crossStartVal:C?o+"px":"",crossEndVal:C?i+"px":"",oddClass:n,emitter:l??null,indexMap:null,ariaTotalFn:null}}function _n(t,e,r,o,i){if(t.containerSize<=0||t.totalItems===0)return t.clear(),!0;let{scrollPosition:n,containerSize:s,totalItems:l}=t,C=i??0;t.totalSize=e.getTotalSize();let S=e.indexAtOffset(C>0?Math.max(0,n-C):n),g=e.indexAtOffset(n+s);if(g<l-1)g++;S=Math.max(0,S),g=Math.min(l-1,Math.max(0,g));let O=Math.max(0,S-r),A=Math.min(l-1,g+r),b=Math.ceil(s/1)+r*2+10,F=A-O+1,R=Math.min(F,t.capacity,b);if(O===t.prevRangeStart&&A===t.prevRangeEnd&&!t.renderPending&&t.baseOffset===t.prevBaseOffset)return!1;t.visibleCount=R,t.startIndex=O;for(let u=0;u<R;u++){let c=O+u;t.visibleIndices[u]=c,t.visibleOffsets[u]=e.getOffset(c),t.visibleSizes[u]=e.getSize(c)}return Qt(o.calculate,t),t.prevRangeStart=O,t.prevRangeEnd=A,t.prevBaseOffset=t.baseOffset,t.renderPending=!1,!0}var Re={selected:!1,focused:!1};function kn(t,e,r){for(let o=0;o<e;o++)if(t[o]===r)return!0;return!1}function Fn(t,e){if(e<=1)return!0;let r=t[0];for(let o=1;o<e;o++){let i=t[o];if(i!==r+1)return!1;r=i}return!0}function Dn(t,e,r,o,i,n,s,l,C,S){let g=C?null:i(),{visibleCount:O,visibleIndices:A}=t,b=s.ariaTotalFn?s.ariaTotalFn():t.totalItems,F=s.interactive?String(b):"",R=s.interactive&&b!==t.prevAriaTotal,u=null,c=s.indexMap;for(let d=0;d<O;d++){let P=A[d],_=c?c(P):P,v=t.visibleOffsets[d],x=t.visibleSizes[d],h=C?C(P):g[P];if(S)S(_,Re);else Re.selected=!1,Re.focused=!1;let Y=n.get(P),G=Y;if(Y===void 0){let k=e.acquire();if(h!==void 0){let ee;try{ee=o(h,_,Re)}catch(ce){if(s.emitter)s.emitter.emit("error",{error:ce instanceof Error?ce:Error(String(ce)),context:`template:render:${_}`});e.release(k);continue}if(typeof ee==="string")k.innerHTML=ee;else k.textContent="",k.appendChild(ee);We(k)}if(k.setAttribute("role",s.itemRole),k.setAttribute("data-index",String(_)),s.interactive)k.id=s.prefix+"-item-"+P,k.setAttribute("aria-posinset",String(_+1)),k.setAttribute("aria-setsize",F);if(h!==void 0){let ee=String(h.id);if(k.setAttribute("data-id",ee),ee.startsWith(_e))k.classList.add(s.placeholderClass)}if(s.hasCrossPad)k.style.setProperty(s.crossStartProp,s.crossStartVal),k.style.setProperty(s.crossEndProp,s.crossEndVal);if(S){if(k.classList.toggle(s.selectedClass,Re.selected),k.classList.toggle(s.focusedClass,Re.focused),Re.selected)k.setAttribute("aria-selected","true");else k.removeAttribute("aria-selected");k._lastSelected=Re.selected,k._lastFocused=Re.focused}if(s.oddClass)k.classList.toggle(s.oddClass,(P&1)===1);let j=v-t.baseOffset+s.startPadding;k.style.transform=s.translateProp+j+"px)",k._lastOffset=j;let Z=x-s.gap;if(k.style[s.sizeProp]=Z+"px",k._lastSize=Z,k._lastItem=h,n.set(P,k),u===null)u=document.createDocumentFragment();u.appendChild(k)}else{if(R)Y.setAttribute("aria-setsize",F);if(h!==void 0&&G._lastItem!==h){let Z=Y.getAttribute("data-id"),ee=String(h.id),ce;try{ce=o(h,_,Re)}catch(z){if(s.emitter)s.emitter.emit("error",{error:z instanceof Error?z:Error(String(z)),context:`template:render:${_}`});continue}if(typeof ce==="string")Y.innerHTML=ce;else Y.textContent="",Y.appendChild(ce);if(We(Y),Y.setAttribute("data-id",ee),G._lastItem=h,Z!==ee){let z=Z!==null&&Z.startsWith(_e),D=ee.startsWith(_e);if(z!==D)Y.classList.toggle(s.placeholderClass,D);if(z&&!D)Y.classList.add(s.replacedClass),setTimeout(()=>{Y.classList.remove(s.replacedClass)},300)}}if(S){if(G._lastSelected!==Re.selected){if(Y.classList.toggle(s.selectedClass,Re.selected),Re.selected)Y.setAttribute("aria-selected","true");else Y.removeAttribute("aria-selected");G._lastSelected=Re.selected}if(G._lastFocused!==Re.focused)Y.classList.toggle(s.focusedClass,Re.focused),G._lastFocused=Re.focused}let k=v-t.baseOffset+s.startPadding;if(G._lastOffset!==k)Y.style.transform=s.translateProp+k+"px)",G._lastOffset=k;let j=x-s.gap;if(G._lastSize!==j)Y.style[s.sizeProp]=j+"px",G._lastSize=j}}if(u!==null)r.appendChild(u);if(O>0&&Fn(A,O)){let d=A[0],P=A[O-1];for(let[_,v]of n)if(_<d||_>P)v.remove(),e.release(v),n.delete(_)}else for(let[d,P]of n)if(!kn(A,O,d))P.remove(),e.release(P),n.delete(d);if(s.interactive)t.prevAriaTotal=t.totalItems;en(l.commit,t)}function ft(t,e,r,o,i,n,s,l,C,S,g,O){if(_n(t,e,r,S,C.startPadding))Dn(t,o,i,n,s,l,C,S,g,O)}var gt=()=>{let t={},e=(n,s)=>{if(!t[n])t[n]=new Set;return t[n].add(s),()=>r(n,s)},r=(n,s)=>{t[n]?.delete(s)};return{on:e,off:r,emit:(n,s)=>{t[n]?.forEach((l)=>{try{l(s)}catch(C){console.error(`[vlist] Error in event handler for "${String(n)}":`,C)}})},clear:(n)=>{if(n)delete t[n];else for(let s in t)delete t[s]}}};var rn=2,sn=(t=0)=>({velocity:0,sampleCount:0}),ln=(t,e)=>{let r=performance.now(),o=t._lt??r,i=t._lp??e,n=r-o;if(t._lp=e,t._lt=r,n===0)return t.sampleCount=Math.min(t.sampleCount+1,5),t;if(n>100)return t.velocity=0,t.sampleCount=1,t;return t.velocity=Math.abs(e-i)/n,t.sampleCount=Math.min(t.sampleCount+1,5),t};function Vn(t){let{item:e}=t;if(e.height!==void 0&&typeof e.height==="number"){if(!Number.isFinite(e.height)||e.height<=0)throw Error(`vlist: item.height must be a positive number, got ${e.height}`)}if(e.width!==void 0&&typeof e.width==="number"){if(!Number.isFinite(e.width)||e.width<=0)throw Error(`vlist: item.width must be a positive number, got ${e.width}`)}if(e.estimatedHeight!==void 0){if(!Number.isFinite(e.estimatedHeight)||e.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${e.estimatedHeight}`)}if(e.estimatedWidth!==void 0){if(!Number.isFinite(e.estimatedWidth)||e.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${e.estimatedWidth}`)}if(e.gap!==void 0){if(typeof e.gap!=="number"||!Number.isFinite(e.gap)||e.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${e.gap}`)}if(t.overscan!==void 0){if(typeof t.overscan!=="number"||!Number.isFinite(t.overscan)||t.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${t.overscan}`)}if(t.scroll?.runway!==void 0){if(typeof t.scroll.runway!=="number"||!Number.isFinite(t.scroll.runway)||t.scroll.runway<=0)throw Error(`vlist: scroll.runway must be a positive number, got ${t.scroll.runway}`)}}function On(t,e){let r=t==="horizontal"?"x":"y";if(e.some((i)=>i.name==="grid"))return{primary:r,cross:r==="x"?"y":"x"};return{primary:r}}function $n(t,e){let r=On(t.orientation,e),o=r.primary==="x",i=Bt(t.padding);return{axis:r,hasCrossAxis:r.cross!==void 0,overscan:t.overscan??Qe,reverse:t.reverse??!1,classPrefix:t.classPrefix??zt,mainAxisPadding:Nt(i,o),crossAxisPadding:Wt(i,o),startPadding:o?i.left:i.top,endPadding:o?i.right:i.bottom,crossPadStart:o?i.top:i.left,crossPadEnd:o?i.bottom:i.right,striped:t.item.striped||!1,gap:t.item.gap??0}}function Gn(t,e){if(e)return t.item.width??t.item.estimatedWidth??100;return t.item.height??t.item.estimatedHeight??40}function Bn(t){let e=[...t];return e.sort((r,o)=>(r.priority??50)-(o.priority??50)),e}function Nn(t){let e=new Set;for(let r of t){if(e.has(r.name))throw Error(`[vlist] Duplicate plugin: ${r.name}`);e.add(r.name)}for(let r of t)if(r.conflicts){for(let o of r.conflicts)if(e.has(o))throw Error(`[vlist] Plugin "${r.name}" conflicts with "${o}"`)}}function an(t,e=[],r){Vn(t);let o=$n(t,e),i=o.axis.primary==="x",n=t.scroll?.mode==="bounded"||!!r,s=Gn(t,i),l=o.gap,C=l>0?typeof s==="function"?(re)=>s(re)+l:s+l:s,S=typeof s==="number"?s:20,g=t.items?.length??0,O=o.striped?`${o.classPrefix}-item--odd`:"",A=gt(),b=on(o.classPrefix,i,o.startPadding,o.crossPadStart,o.crossPadEnd,O,l,A),F=e.length>0?Bn(e):e;if(e.length>0)Nn(F);let R=Kt(t.container),u=Xt(R,o.classPrefix,i,t.ariaLabel);if(t.scroll?.scrollbar==="none")u.viewport.classList.add(`${o.classPrefix}-viewport--no-scrollbar`);if(t.scroll?.gutter==="stable")u.viewport.classList.add(`${o.classPrefix}-viewport--gutter-stable`);let d=ot(C,g);if(l>0){let re=d.getTotalSize;d.getTotalSize=()=>{let T=re();return T>0?T-l:0}}let P=Ut(o.classPrefix),_=Math.ceil(4096/S)+o.overscan*2+8,v=Yt(_);v.totalItems=g;let x=t.items??[],h=()=>x,Y=new Map,G=sn(),k={velocity:0,reliable:!1},j={range:{start:0,end:-1}},Z={scrollPosition:0,direction:"down"},ee={scrollPosition:0},ce=-1,z=-1,D=-1,E=null,w=Jt(F),B=new Map,m=[],a=[],W=[],V=null,H=null,y=null,N=null,ae=null,q=null,p=null,M=null,L=null,I=null,U=null,te=!1,Ee=!1,de=null,ne=0,ue=0,ge=null,be=null,ie=null,f=null,X=null,oe=null,me=null,ve=null,Se=null;v.containerSize=i?u.viewport.clientWidth:u.viewport.clientHeight,v.crossSize=i?u.viewport.clientHeight:u.viewport.clientWidth;let ye=Zt({sizeCache:d,getPixel:()=>H?H():v.scrollPosition,setPixel:(re)=>{if(y)y(re);else if(i)u.viewport.scrollLeft=re;else u.viewport.scrollTop=re},getContainerSize:()=>v.containerSize});if(e.length>0){let re={dom:u,sizeCache:d,scroll:ye,pool:P,config:o,emitter:A,template:t.item.template,registerMethod(T,pe){B.set(T,pe)},getMethod(T){return B.get(T)},registerClickHandler(T){m.push(T)},registerKeydownHandler(T){a.push(T)},registerDestroyHandler(T){W.push(T)},enableListboxRole(){let T=u.content.getAttribute("role");if(!T||T==="list")u.content.setAttribute("role","listbox"),u.content.setAttribute("tabindex","0");b.itemRole="option",b.interactive=!0},setSizeConfig(T){let pe=ot(T,v.totalItems),Pe=B.get("_setSizeCacheBase");if(Pe){let Ae=d.rebuild;Object.assign(d,pe),d.rebuild=Ae,Pe(pe.rebuild)}else Object.assign(d,pe)},setScrollFns(T,pe){H=T,y=pe},setBoundedWrap(T){Se=T},cancelScroll(){Le?.cancelScroll()},setVirtualTotalFn(T){V=T,b.ariaTotalFn=T},setIndexMapFn(T){b.indexMap=T},getItems:h,getItem(T){return q?q(T):x[T]},getState(){return v},rebuildSizeCache(){d.rebuild(v.totalItems)},updateContentSize(T){if(ve){ve.refresh(T);return}v.totalSize=T,u.content.style[i?"width":"height"]=T+o.mainAxisPadding+"px"},setRenderFn(T,pe){N=T,ae=pe},renderIfNeeded(){J()},forceRender(){se()},setGetItemFn(T){q=T},setItemStateFn(T){p=T},getItemStateFn(){return p},get rawSizeSpec(){return s},scrollTo(T){if(y)y(T);else if(i)u.viewport.scrollLeft=T;else u.viewport.scrollTop=T},shiftScroll(T){if(ve?.shiftBy)ve.shiftBy(T);else re.scrollTo(v.scrollPosition+T)},smoothScrollTo(T,pe,Pe,Ae){if(f)f(T,pe,y??void 0,Pe,Ae);else re.scrollTo(typeof T==="function"?T():T)},disableDefaultScroll(){te=!0},disableDefaultResize(){Ee=!0},setScrollTarget(T){de=T},setScrollToPosFn(T){X=T},setScrollToIndexFn(T){oe=T},onScrollFrame:Ie,onScrollIdle:K,removeItemById(T){if(M)return M(T);let pe=x.findIndex((Pe)=>Pe.id===T);if(pe===-1)return-1;return x.splice(pe,1),v.totalItems=x.length,d.rebuild(v.totalItems),Q(),pe},insertItemAt(T,pe){if(L){L(T,pe);return}x.splice(pe,0,T),v.totalItems=x.length,d.rebuild(v.totalItems),Q()},setRemoveItemFn(T){M=T},setInsertItemFn(T){L=T},setUpdateItemFn(T){I=T},setGetIndexByIdFn(T){U=T},getRenderedElement(T){let pe=B.get("_getRenderedElement");if(pe)return pe(T);return Y.get(T)??null},setNavConfig(T){if(T.ud!==void 0)ne=T.ud;if(T.lr!==void 0)ue=T.lr;if(T.scrollIndex)ge=T.scrollIndex;if(T.navigate)be=T.navigate;if(T.total)ie=T.total},getNavConfig:(()=>{let T={ud:0,lr:0,scrollIndex:null,navigate:null,total:null};return()=>(T.ud=ne,T.lr=ue,T.scrollIndex=ge,T.navigate=be,T.total=ie,T)})()};for(let T of F)if(T.setup)try{T.setup(re)}catch(pe){A.emit("error",{error:pe instanceof Error?pe:Error(String(pe)),context:`plugin:setup:${T.name}`})}}let fe=o.classPrefix+"--scrolling",he=!1,Me=t.scroll?.idleTimeout??Ve;function xe(){if(Z.scrollPosition=ye.getPixelEquivalent(),i)Z.direction=v.scrollDirection>0?"right":"left";else Z.direction=v.scrollDirection>0?"down":"up";if(A.emit("scroll",Z),ln(G,v.scrollPosition),k.velocity=G.velocity,k.reliable=G.sampleCount>=rn,A.emit("velocity:change",k),v.startIndex!==ce||v.prevRangeEnd!==z)ce=v.startIndex,z=v.prevRangeEnd,j.range.start=v.startIndex,j.range.end=v.prevRangeEnd,A.emit("range:change",j)}let Te=!1;function Q(){if(N)return;let re=d.getTotalSize();if(ve){ve.refresh(re);return}if(u.content.style[i?"width":"height"]=re+o.mainAxisPadding+"px",!Te&&re>ut)Te=!0,A.emit("error",{error:Error(`Content size (${re}px) exceeds browser limit (${ut}px). Enable bounded scroll (scroll: { mode: "bounded" }) for large datasets.`),context:"content:size:overflow"})}function le(){if(!me)return;if((V?V():x.length)===0)return;let T=me;me=null,Ke.scrollToIndex(T.index,T.alignOrOptions)}function J(){if(le(),N)N();else ft(v,d,o.overscan,P,u.content,t.item.template,h,Y,b,w,q,p)}function Ie(){if(!he)he=!0,u.root.classList.add(fe);if(J(),mt(w.afterScroll,v.scrollPosition,v.scrollDirection),v.scrollPosition!==D)D=v.scrollPosition,xe()}function K(){if(he)he=!1,u.root.classList.remove(fe);v.scrollDirection=0,tn(w.idle),k.velocity=0,k.reliable=!1,A.emit("velocity:change",k),ee.scrollPosition=ye.getPixelEquivalent(),A.emit("scroll:idle",ee)}function se(){if(le(),v.renderPending=!0,ae)ae();else ft(v,d,o.overscan,P,u.content,t.item.template,h,Y,b,w,q,p);if(mt(w.afterScroll,v.scrollPosition,v.scrollDirection),v.scrollPosition!==D){if(D=v.scrollPosition,xe(),E!==null)clearTimeout(E);E=setTimeout(K,Me)}}let Ce=te?!1:t.scroll?.wheel!==!1,Le;if(te&&(n||Se))throw Error(`vlist: page() is not compatible with ${Se?"the carousel plugin":'scroll: { mode: "bounded" }'} — bounded page-mode scrolling is not implemented yet.`);if(n||Se)ve=(r??jt)({state:v,sizeCache:d,viewport:u.viewport,content:u.content,isX:i,wheelEnabled:Ce,idleTimeout:t.scroll?.idleTimeout??Ve,...de?{scrollTarget:de}:{},mainAxisPadding:o.mainAxisPadding,...t.scroll?.runway!==void 0?{runwayFactor:Math.max(Dt,t.scroll.runway)}:{},...Se?{wrap:Se}:{},onFrame:Ie,onIdle:K}),Le=ve,H=()=>v.scrollPosition,y=(re)=>ve.setLogical(re);else Le=qt({state:v,viewport:u.viewport,isX:i,wheelEnabled:Ce,idleTimeout:t.scroll?.idleTimeout??Ve,...de?{scrollTarget:de}:{},onFrame:Ie,onIdle:K});f=Le.smoothScrollTo;function ze(re){let pe=re.target.closest("[data-index]");if(!pe)return null;let Pe=parseInt(pe.getAttribute("data-index"),10);if(Number.isNaN(Pe))return null;let Ae=B.get("_layoutToDataIndex"),ke;if(Ae){let Fe=Ae(Pe);if(Fe<0)return null;let qe=B.get("_getItem");ke=qe?qe(Fe):q?q(Fe):x[Fe]}else ke=q?q(Pe):x[Pe];if(ke===void 0)return null;return{item:ke,index:Pe}}function Ge(re){for(let pe=0;pe<m.length;pe++)m[pe](re);let T=ze(re);if(T)A.emit("item:click",{item:T.item,index:T.index,event:re})}function He(re){let T=ze(re);if(T)A.emit("item:dblclick",{item:T.item,index:T.index,event:re})}function Ue(re){let T=ze(re);if(T)A.emit("item:contextmenu",{item:T.item,index:T.index,event:re})}function Be(re){let T=re.target?.tagName;if((T==="INPUT"||T==="TEXTAREA"||T==="SELECT")&&!((re.ctrlKey||re.metaKey)&&(re.key==="f"||re.key==="F")))return;for(let pe=0;pe<a.length;pe++)a[pe](re)}if(u.content.addEventListener("click",Ge),u.content.addEventListener("dblclick",He),u.content.addEventListener("contextmenu",Ue),a.length>0)u.root.addEventListener("keydown",Be);let we=null;if(!Ee)setTimeout(()=>{if(v.destroyed)return;we=new ResizeObserver((T)=>{for(let pe of T){let{width:Pe,height:Ae}=pe.contentRect,ke=i?Pe:Ae,Fe=i?Ae:Pe;if(Math.abs(ke-v.containerSize)<1&&Math.abs(Fe-v.crossSize)<1)continue;if(v.containerSize=ke,v.crossSize=Fe,v.resizeCapacity(ke,S,o.overscan),ve)ve.refresh(d.getTotalSize());se(),nn(w.resize,Pe,Ae),A.emit("resize",{width:Pe,height:Ae})}}),we.observe(u.viewport)},0);v.resizeCapacity(v.containerSize,S,o.overscan),Q(),v.initialized=!0;let Ne=null;if(t.defer)Ne=requestAnimationFrame(()=>{if(Ne=null,!v.destroyed)J()});else J();if(!te)Le.attach();let Ke={get element(){return u.root},get items(){return x},get total(){return V?V():x.length},setItems(re){x=[...re],v.totalItems=x.length,d.rebuild(v.totalItems),Q(),se()},appendItems(re){x.push(...re),v.totalItems=x.length,d.rebuild(v.totalItems),Q(),se()},prependItems(re){x.unshift(...re),v.totalItems=x.length,d.rebuild(v.totalItems),Q(),se()},updateItem(re,T){if(I){if(!I(re,T))return}else{let pe=x.findIndex((Pe)=>Pe.id===re);if(pe===-1)return;x[pe]={...x[pe],...T}}se()},insertItem(re,T){if(L)L(re,T??v.totalItems);else{if(T===void 0)x.push(re);else x.splice(T,0,re);v.totalItems=x.length,d.rebuild(v.totalItems),Q()}se()},removeItem(re){if(M){if(M(re)<0)return}else{let T=x.findIndex((pe)=>pe.id===re);if(T===-1)return;x.splice(T,1),v.totalItems=x.length,d.rebuild(v.totalItems),Q()}se()},removeItems(re){if(M){let Ae=0;for(let ke of re)if(M(ke)>=0)Ae++;if(Ae>0)se();return Ae}let T=new Set(re),pe=x.length;x=x.filter((Ae)=>!T.has(Ae.id));let Pe=pe-x.length;if(Pe>0)v.totalItems=x.length,d.rebuild(v.totalItems),Q(),v.renderPending=!0,J();return Pe},getItemAt(re){if(b.indexMap)return x[re];return q?q(re):x[re]},getIndexById(re){if(U)return U(re);return x.findIndex((T)=>T.id===re)},scrollToIndex(re,T="start"){let pe=V?V():x.length;if(pe===0){me={index:re,alignOrOptions:T};return}let Pe=Math.max(0,Math.min(re,pe-1)),Ae=typeof T==="string"?T:T.align??"start",ke=typeof T==="object"?T.behavior:void 0,Fe=typeof T==="object"?T.duration:void 0,qe=typeof T==="object"?T.easing:void 0;if(oe&&oe(Pe,Ae,ke,Fe,qe)!==!1)return;let at=d.getOffset(Pe),Ct=d.getSize(Pe),Je=v.containerSize,En=d.getTotalSize(),Pt=o.mainAxisPadding,Mn=Math.max(0,En+Pt-Je),De;if(X)De=X(Pe,d,Je,pe,Ae);else{let Cn=o.startPadding;switch(Ae){case"center":De=Cn+at-(Je-Ct)/2;break;case"end":De=at+Ct+Pt-Je;break;default:De=at}De=Math.max(0,Math.min(De,Mn))}if(ke==="smooth")Le.smoothScrollTo(De,Fe??kt,y??void 0,qe);else if(y)y(De);else if(i)u.viewport.scrollLeft=De;else u.viewport.scrollTop=De},getScrollPosition(){return ye.getPixelEquivalent()},on:A.on.bind(A),off:A.off.bind(A),destroy(){if(v.destroyed)return;if(v.destroyed=!0,he)he=!1,u.root.classList.remove(fe);if(Ne!==null)cancelAnimationFrame(Ne),Ne=null;if(E!==null)clearTimeout(E),E=null;Le.detach(),we?.disconnect(),u.content.removeEventListener("click",Ge),u.content.removeEventListener("dblclick",He),u.content.removeEventListener("contextmenu",Ue),u.root.removeEventListener("keydown",Be);let re=[];for(let T of W)try{T()}catch(pe){re.push(pe instanceof Error?pe:Error(String(pe)))}for(let T of F)if(T.destroy)try{T.destroy()}catch(pe){re.push(pe instanceof Error?pe:Error(String(pe)))}for(let[,T]of Y)T.remove();if(Y.clear(),P.clear(),u.root.remove(),A.emit("destroy",void 0),A.clear(),re.length>0)for(let T of re)console.error("vlist: error during destroy:",T)}};for(let[re,T]of B)Ke[re]=T;return Ke}var rt=(t)=>t==null?0:typeof t==="function"?t():t;function pt(t){let e=t?.scrollPadding,r,o;return{name:"page",priority:5,setup(i){let{dom:n,sizeCache:s,config:l,emitter:C}=i,S=l.axis.primary==="x",g=window,O=i.getState();if(i.disableDefaultScroll(),i.disableDefaultResize(),n.root.style.overflow="visible",n.root.style.height="auto",S)n.viewport.style.overflowX="visible",n.viewport.style.overflowY="visible";else n.viewport.style.overflow="visible";n.viewport.classList.remove(`${l.classPrefix}-viewport--custom-scrollbar`),i.setScrollFns(()=>{let c=n.viewport.getBoundingClientRect();return Math.max(0,S?-c.left:-c.top)},(c)=>{let d=n.viewport.getBoundingClientRect(),P=(S?d.left+g.scrollX:d.top+g.scrollY)+c;if(S)g.scrollTo({left:P,top:g.scrollY,behavior:"instant"});else g.scrollTo({left:g.scrollX,top:P,behavior:"instant"})}),O.containerSize=S?g.innerWidth:g.innerHeight,O.crossSize=S?g.innerHeight:g.innerWidth;let A=null,b=()=>{let c=n.viewport.getBoundingClientRect(),d=Math.max(0,S?-c.left:-c.top);if(O.prevScrollPosition=O.scrollPosition,O.scrollPosition=d,O.scrollDirection=d>O.prevScrollPosition?1:d<O.prevScrollPosition?-1:0,i.onScrollFrame(),A!==null)clearTimeout(A);A=setTimeout(()=>{A=null,i.onScrollIdle()},150)};g.addEventListener("scroll",b,{passive:!0}),o=()=>g.removeEventListener("scroll",b);let{innerWidth:F,innerHeight:R}=g,u=()=>{let{innerWidth:c,innerHeight:d}=g;if((S?Math.abs(c-F):Math.abs(d-R))<1)return;F=c,R=d,O.containerSize=S?c:d,O.crossSize=S?d:c,i.forceRender(),C.emit("resize",{width:c,height:d})};if(g.addEventListener("resize",u),r=()=>g.removeEventListener("resize",u),e)i.setScrollToPosFn((c,d,P,_,v)=>{let x=rt(S?e.left:e.top),h=rt(S?e.right:e.bottom);if(_===0)return 0;let Y=Math.max(0,Math.min(c,_-1)),G=d.getOffset(Y),k=d.getSize(Y),j=d.getTotalSize(),Z=Math.max(0,j-P+h),ee;switch(v){case"center":ee=G-x-(P-x-h-k)/2;break;case"end":ee=G-P+k+h;break;default:ee=G-x}return Math.max(-x,Math.min(ee,Z))}),i.registerMethod("_scrollItemIntoView",(c)=>{let d=S?g.innerWidth:g.innerHeight,P=rt(S?e.left:e.top),_=rt(S?e.right:e.bottom),v=n.viewport.getBoundingClientRect(),x=S?g.scrollX:g.scrollY,h=S?v.left:v.top,Y=h+x,G=s.getOffset(c),k=s.getSize(c),j=h+G,Z=d-_,ee=x;if(j<P)ee=Y+G-P;else if(j+k>Z)ee=Y+G+k-Z;if(ee!==x)if(S)g.scrollTo({left:ee,top:g.scrollY,behavior:"instant"});else g.scrollTo({left:g.scrollX,top:ee,behavior:"instant"})});i.registerDestroyHandler(()=>{if(o?.(),r?.(),A!==null)clearTimeout(A)})},destroy(){o?.(),r?.(),o=void 0,r=void 0}}}function bt(t){let e=t?.gap??0,r=null,o=null,i,n,s,l,C=new Map,S=new Set,g=new WeakMap,O=0,A=!1,b=!1,F=!1,R=2;function u(h){return C.get(h)??l}function c(h){return C.has(h)&&!S.has(h)}function d(h){if(!o||i.destroyed)return;if(!C.has(h))return;S.add(h),o.forceRender()}function P(){return Math.max(0,o.sizeCache.getTotalSize()+o.config.mainAxisPadding-i.containerSize)}function _(){let h=P();return h>0&&i.scrollPosition>=h-R}function v(){let h=P();if(h>i.scrollPosition)o.scrollTo(h)}function x(){o.updateContentSize(o.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(h){if(o=h,i=h.getState(),n=h.config.axis.primary==="x",s=n?"width":"height",e===0)e=h.config.gap;if(l=typeof h.rawSizeSpec==="function"?h.rawSizeSpec(0)+e:h.rawSizeSpec+e,h.setSizeConfig(u),e>0){let Z=h.sizeCache.getTotalSize;h.sizeCache.getTotalSize=()=>{let ee=Z();return ee>0?ee-e:0}}r=new ResizeObserver((Z)=>{if(i.destroyed||!o)return;let ee=!1,ce=h.sizeCache.indexAtOffset(i.scrollPosition);for(let B of Z){let m=B.target,a=g.get(m);if(a===void 0)continue;if(m.getAttribute("data-index")!==String(a)){r.unobserve(m);continue}if(c(a))continue;let W=B.borderBoxSize[0];if(!W)continue;let V=n?W.inlineSize:W.blockSize;if(V<=0)continue;let H=V+e,y=C.has(a),N=C.get(a)??l;if(C.set(a,H),S.delete(a),!y||H!==N)ee=!0;if(a<ce&&H!==N)O+=H-N;r.unobserve(m),m.style[s]=`${V}px`}if(!ee)return;let z=_();if(h.rebuildSizeCache(),O)h.shiftScroll(O),O=0;let D=i.scrollDirection!==0,E=i.totalItems>0&&i.prevRangeEnd>=i.totalItems-1,w=b&&!F;if(w||z||E||!D){if(x(),A=!1,w||z)v()}else A=!0;h.forceRender()}),h.setScrollToIndexFn((Z,ee,ce,z,D)=>{let E=Z>=i.totalItems-1&&ee==="end";if(b=E,F=!1,!E)return!1;let w=h.config.mainAxisPadding,B=()=>{let m=h.sizeCache.getTotalSize();return Math.max(0,m+w-i.containerSize)};if(ce==="smooth")F=!0,h.smoothScrollTo(B,z??300,D,()=>{F=!1});else h.scrollTo(B())});let Y=()=>{b=!1},G=h.dom.viewport;G.addEventListener("wheel",Y,{passive:!0}),G.addEventListener("touchstart",Y,{passive:!0}),h.registerDestroyHandler(()=>{G.removeEventListener("wheel",Y),G.removeEventListener("touchstart",Y)});let k=h.dom.content,j=(Z)=>{let ee=Z.target;if(!ee||ee===k)return;let ce=ee.closest("[data-index]");if(!ce||ce.parentNode!==k)return;let z=Number(ce.getAttribute("data-index"));if(c(z))d(z)};k.addEventListener("load",j,!0),k.addEventListener("error",j,!0),h.registerDestroyHandler(()=>{k.removeEventListener("load",j,!0),k.removeEventListener("error",j,!0)}),h.registerMethod("isMeasured",c),h.registerMethod("setMeasuredSize",(Z,ee)=>{C.set(Z,ee)}),h.registerMethod("getMeasuredCount",()=>C.size),h.registerDestroyHandler(()=>{if(r)r.disconnect(),r=null})},hooks:{onCommit(h){if(!r||!o)return;for(let Y=0;Y<h.visibleCount;Y++){let G=h.visibleIndices[Y];if(c(G))continue;let k=o.getRenderedElement(G);if(!k)continue;k.style[s]="",g.set(k,G),r.observe(k)}},onIdle(){if(!o||!A)return;let h=_();if(x(),A=!1,h)v(),o.forceRender()}},destroy(){if(r)r.disconnect(),r=null;C.clear(),S.clear(),b=!1,F=!1,o=null}}}var dn=(t={})=>{let{chunkSize:e=100,maxCachedItems:r=5000,evictionBuffer:o=200,onEvict:i}=t,n=new Map,s=0,l=0,C=(E)=>{let w=n.get(E);if(!w)w={items:Array(e),count:0,lastAccess:Date.now()},n.set(E,w);else w.lastAccess=Date.now();return w},S=(E)=>Math.floor(E/e),g=(E)=>E%e,O=()=>s,A=(E)=>{s=E},b=(E)=>{if(E<0||E>=s)return;let w=S(E),B=n.get(w);if(!B)return;return B.items[g(E)]},F=(E)=>{if(E<0||E>=s)return!1;let w=S(E),B=n.get(w);if(!B)return!1;return B.items[g(E)]!==void 0},R=(E,w)=>{let B=S(E),m=C(B),a=g(E),W=m.items[a]===void 0;if(m.items[a]=w,W)m.count++,l++;if(E>=s)s=E+1},u=(E,w)=>{for(let B=0;B<w.length;B++){let m=w[B];if(m!==void 0)R(E+B,m)}},c=(E,w)=>{if(E<0||E>s)return;let B=S(E),m=Array.from(n.keys()).filter((y)=>y>=B).sort((y,N)=>y-N),a=[];for(let y of m){let N=n.get(y),ae=y*e;for(let q=0;q<e;q++){if(N.items[q]===void 0)continue;let p=ae+q;if(p<E)continue;a.push({oldIndex:p,item:N.items[q]})}}for(let{oldIndex:y}of a){let N=S(y),ae=n.get(N);if(!ae)continue;let q=g(y);if(ae.items[q]!==void 0){if(ae.items[q]=void 0,ae.count--,l--,ae.count===0)n.delete(N)}}s++;for(let{oldIndex:y,item:N}of a){let ae=y+1,q=S(ae),p=C(q),M=g(ae);p.items[M]=N,p.count++,l++}let W=S(E),V=C(W),H=g(E);V.items[H]=w,V.count++,l++},d=(E)=>{if(E<0||E>=s)return!1;let w=S(E),B=n.get(w),m=g(E);if(!(B!==void 0&&B.items[m]!==void 0))return!1;let W=w,V=Array.from(n.keys()).filter((y)=>y>=W).sort((y,N)=>y-N),H=[];for(let y of V){let N=n.get(y),ae=y*e;for(let q=0;q<e;q++){if(N.items[q]===void 0)continue;let p=ae+q;if(p<=E)continue;H.push({oldIndex:p,item:N.items[q]})}}if(B.items[m]=void 0,B.count--,l--,B.count===0)n.delete(w);for(let{oldIndex:y}of H){let N=S(y),ae=n.get(N);if(!ae)continue;let q=g(y);if(ae.items[q]!==void 0){if(ae.items[q]=void 0,ae.count--,l--,ae.count===0)n.delete(N)}}for(let{oldIndex:y,item:N}of H){let ae=y-1,q=S(ae),p=C(q),M=g(ae);p.items[M]=N,p.count++,l++}return s--,!0},P=(E,w)=>{let B=[];for(let m=E;m<=w&&m<s;m++)B.push(b(m));return B},_=(E,w)=>{for(let B=E;B<=w&&B<s;B++)if(!F(B))return!1;return!0},v=()=>{let E=[],w=null,B=Array.from(n.keys()).sort((m,a)=>m-a);for(let m of B){let a=n.get(m);if(!a)continue;let W=m*e;for(let V=0;V<e;V++){let H=W+V;if(H>=s)break;if(a.items[V]!==void 0)if(w===null)w={start:H,end:H};else if(H===w.end+1)w.end=H;else E.push(w),w={start:H,end:H};else if(w!==null)E.push(w),w=null}}if(w!==null)E.push(w);return E},x=(E,w)=>{let B=[],m=null;for(let a=E;a<=w&&a<s;a++)if(!F(a))if(m===null)m={start:a,end:a};else m.end=a;else if(m!==null)B.push(m),m=null;if(m!==null)B.push(m);return B},h=(E)=>n.has(E),Y=(E)=>{let w=n.get(E);if(!w)return!1;let B=E*e,m=Math.min(e,s-B);return w.count>=m},G=(E)=>{let w=n.get(E);if(w)w.lastAccess=Date.now()},k=(E,w)=>{if(E>w||n.size===0)return;let B=Date.now(),m=S(Math.max(0,E)),a=S(Math.min(s-1,w));for(let W=m;W<=a;W++){let V=n.get(W);if(V)V.lastAccess=B}},j=(E,w)=>{if(l<=r)return 0;let B=Math.max(0,E-o),m=Math.min(s-1,w+o),a=S(B),W=S(m),V=0,H=[];for(let[y,N]of n)if(y<a||y>W)V+=N.count,H.push(y),l-=N.count,n.delete(y);if(V>0&&i)i(V,H);return V},Z=()=>{if(l<=r)return 0;let E=Array.from(n.entries()).sort(([,m],[,a])=>m.lastAccess-a.lastAccess),w=0,B=[];for(let[m,a]of E){if(l<=r)break;w+=a.count,l-=a.count,B.push(m),n.delete(m)}if(w>0&&i)i(w,B);return w},ee=()=>({totalItems:s,cachedItems:l,cachedChunks:n.size,chunkSize:e,maxCachedItems:r,memoryEfficiency:s>0?1-l/s:1}),ce=()=>l,z=()=>{n.clear(),l=0};return{chunkSize:e,maxCachedItems:r,getTotal:O,setTotal:A,get:b,has:F,set:R,setRange:u,insert:c,delete:d,getRange:P,isRangeLoaded:_,getLoadedRanges:v,findUnloadedRanges:x,getChunkIndex:S,isChunkLoaded:h,isChunkFullyLoaded:Y,touchChunk:G,touchChunksForRange:k,evictDistant:j,evictToLimit:Z,getStats:ee,getCachedCount:ce,clear:z,reset:()=>{z(),s=0}}};var un=(t={})=>{let{maskCharacter:e=$t,maxSampleSize:r=Gt}=t,o=[],i=!1,n=(g)=>{if(i||g.length===0)return;let O=Math.min(g.length,r);for(let A=0;A<O;A++){let b=g[A];if(!b||typeof b!=="object")continue;let F={},R=!1;for(let[u,c]of Object.entries(b)){if(u.startsWith("_")||u==="id")continue;F[u]=String(c??"").length,R=!0}if(R)o.push(F)}i=!0},s=()=>i,l=(g)=>{let O={id:`${_e}${g}`,[ct]:!0,_index:g};if(o.length===0)return O.label=e.repeat(12),O;let A=o[g%o.length];for(let[b,F]of Object.entries(A))O[b]=e.repeat(Math.max(1,F));return O};return{analyzeStructure:n,hasAnalyzedStructure:s,generate:l,generateRange:(g,O)=>{let A=[];for(let b=g;b<=O;b++)A.push(l(b));return A},clear:()=>{o=[],i=!1}}},it=(t)=>{if(!t||typeof t!=="object")return!1;return t[ct]===!0};var Wn=50,cn=(t={})=>{let{adapter:e,initialItems:r,initialTotal:o,storage:i,placeholder:n,pageSize:s=Wn,maxConcurrent:l=0,onStateChange:C,onDataChange:S,onItemsLoaded:g,onItemsEvicted:O,onLoadError:A}=t,b=dn({...i,onEvict:(ie,f)=>{O?.(ie),j(),k()}}),F=null,R=()=>{if(!F)F=un(n);return F},u=new Map,c=!1,d,P=!0,_,v,x=[],h=0,Y=new Map,G=()=>{for(let ie of Y.values())ie[1].abort();Y.clear()},k=()=>{C?.(m())},j=()=>{S?.()},Z=()=>{u.clear();let ie=b.getLoadedRanges();for(let f of ie)for(let X=f.start;X<=f.end;X++){let oe=b.get(X);if(oe&&!it(oe))u.set(oe.id,X)}},ee=(ie,f)=>{if(!it(f))u.set(f.id,ie)},ce=(ie)=>{u.delete(ie)},z=(ie,f)=>`${ie}-${f}`,D=()=>b.getTotal(),E=()=>b.getCachedCount(),w=()=>c,B=()=>P,m=()=>({total:b.getTotal(),cached:b.getCachedCount(),isLoading:c,pendingRanges:x,error:d,hasMore:P,cursor:_}),a=()=>b,W=()=>R(),V=(ie)=>{let f=b.get(ie);if(f!==void 0)return f;if(ie>=0&&ie<b.getTotal())return R().generate(ie);return},H=(ie)=>{let f=u.get(ie);if(f===void 0)return;return b.get(f)},y=(ie)=>u.get(ie)??-1,N=(ie)=>{let f=b.get(ie);return f!==void 0&&!it(f)},ae=(ie,f)=>{let X=[],oe=b.getTotal();b.touchChunksForRange(ie,Math.min(f,oe-1));for(let me=ie;me<=f&&me<oe;me++){let ve=b.get(me);if(ve!==void 0)X.push(ve);else X.push(R().generate(me))}return X},q=(ie)=>{b.setTotal(ie),P=b.getCachedCount()<ie,j(),k()},p=(ie,f=0,X)=>{if(e&&ie.length>0){let oe=R();if(!oe.hasAnalyzedStructure())oe.analyzeStructure(ie)}for(let oe=0;oe<ie.length;oe++){let me=ie[oe];if(me!==void 0){let ve=f+oe;b.set(ve,me),ee(ve,me)}}if(X!==void 0)b.setTotal(X);else if(f+ie.length>b.getTotal())b.setTotal(f+ie.length);if(b.getCachedCount()>=b.getTotal()&&b.getTotal()>0)P=!1;j(),k(),g?.(ie,f,b.getTotal())},M=(ie,f)=>{let X=b.get(ie);if(!X)return!1;let oe=X.id,me={...X,...f};if(b.set(ie,me),f.id!==void 0&&f.id!==oe)ce(oe);return ee(ie,me),j(),k(),!0},L=(ie,f)=>{b.insert(f,ie),Z(),G(),j(),k()},I=(ie)=>{let f=u.get(ie);if(f===void 0)return!1;if(!b.delete(f))return!1;return Z(),G(),j(),k(),!0},U=async(ie,f)=>{if(!e)return;let X=b.chunkSize,oe=Math.floor(ie/X),me=Math.floor(f/X),ve=X*2;for(let[fe,he]of Y){let Me=fe.indexOf("-"),xe=parseInt(fe.slice(0,Me),10);if(Math.abs(xe-ie)>ve)he[1].abort(),Y.delete(fe)}let Se=[],ye=[];for(let fe=oe;fe<=me;fe++){let he=fe*X,Me=he+X-1,xe=z(he,Me);if(b.isChunkFullyLoaded(fe))continue;let Q=Y.get(xe);if(Q)ye.push(Q[0]);else Se.push({start:he,end:Me})}if(Se.length===0){if(ye.length>0)await Promise.all(ye);return}if(l>0){let fe=Y.size+Se.length;if(fe>l){let he=(ie+f)/2,Me=Math.min(fe-l,Y.size);while(Me>0){let Te=null,Q=-1,le=null;for(let[J,Ie]of Y){let K=J.indexOf("-"),se=parseInt(J.slice(0,K),10),Ce=parseInt(J.slice(K+1),10),Le=Math.abs((se+Ce)/2-he);if(Le>Q)Q=Le,Te=J,le=Ie[1]}if(Te)le.abort(),Y.delete(Te);Me--}let xe=l-Y.size;if(Se.length>xe)Se.sort((Te,Q)=>{let le=Math.abs((Te.start+Te.end)/2-he),J=Math.abs((Q.start+Q.end)/2-he);return le-J}),Se.length=Math.max(0,xe)}}if(Se.length===0){if(ye.length>0)await Promise.all(ye);return}for(let fe of Se){let he=z(fe.start,fe.end),Me=new AbortController,xe=(async()=>{x.push(fe),c=!0,d=void 0,k();try{let Te=fe.end-fe.start+1,Q={offset:fe.start,limit:Te,cursor:fe.start===v?_:void 0,signal:Me.signal},le=await e.read(Q);if(p(le.items,fe.start,le.total),le.cursor)_=le.cursor,v=fe.start+le.items.length;let J=fe.start+le.items.length;if(J>=h){if(h=J,le.hasMore!==void 0)P=le.hasMore;else if(le.total!==void 0)P=J<le.total}}catch(Te){if(Te?.name==="AbortError")return;d=Te instanceof Error?Te:Error(String(Te)),A?.(d,fe)}finally{Y.delete(he);let Te=x.findIndex((Q)=>Q.start===fe.start&&Q.end===fe.end);if(Te>=0)x.splice(Te,1);c=Y.size>0,k()}})();Y.set(he,[xe,Me]),ye.push(xe)}await Promise.all(ye)},te=async(ie,f)=>{if(b.isRangeLoaded(ie,f))return;await U(ie,f)},Ee=async()=>{if(!e)return;await U(0,s-1)},de=async()=>{if(!e||c||!P)return!1;let ie=b.getCachedCount(),f=b.getTotal(),X=ie,oe=Math.min(X+s-1,f>0?f-1:X+s-1);if(X>=f&&f>0)return P=!1,!1;return await U(X,oe),b.getCachedCount()>ie},ne=async()=>{if(b.clear(),u.clear(),F)F.clear();G(),x=[],c=!1,_=void 0,v=void 0,P=!0,h=0,d=void 0,j(),k()},ue=(ie,f)=>{if(b.evictDistant(ie,f)>0)Z()},ge=()=>{b.clear(),u.clear(),_=void 0,v=void 0,d=void 0,x=[],c=!1,j(),k()},be=()=>{if(b.reset(),u.clear(),F)F.clear();_=void 0,v=void 0,P=!0,h=0,d=void 0,x=[],c=!1,j(),k()};if(r&&r.length>0)p(r,0,o??r.length);else if(o!==void 0)b.setTotal(o),j(),k();return{getState:m,getTotal:D,getCached:E,getIsLoading:w,getHasMore:B,getStorage:a,getPlaceholders:W,getItem:V,getItemById:H,getIndexById:y,isItemLoaded:N,getItemsInRange:ae,setTotal:q,setItems:p,updateItem:M,insertItem:L,removeItem:I,loadRange:U,ensureRange:te,loadInitial:Ee,loadMore:de,reload:ne,evictDistant:ue,clear:ge,reset:be}};function ht(t){let{adapter:e,total:r,autoLoad:o=!0,storage:i}=t,n=t.loading?.cancelThreshold??Rt,s=t.loading?.preloadThreshold??wt,l=t.loading?.preloadAhead??At,C=t.loading?.maxConcurrent??Ht,S,g,O,A,b,F,R=null,u=null,c=null,d=0,P=!1,_=null,v=dt,x=-1,h=-1,Y=-1,G=-1,k=i?.chunkSize??et,j=()=>{if(R=null,u!==null)clearTimeout(u),u=null},Z=(m,a)=>S.ensureRange(m,a),ee=(m,a=et)=>{A.emit("load:start",{offset:m,limit:a})},ce=(m)=>{A.emit("error",{error:m,context:"ensureRange"})},z=()=>{R=null;let m={start:g.startIndex,end:g.startIndex+Math.max(0,g.visibleCount-1)};if(m.end<m.start)return;Z(m.start,m.end).catch(ce)},D=()=>{if(_!==null)clearTimeout(_),_=null},E=()=>{if(g.destroyed)return;let m=S.getTotal();if(g.visibleCount<=0||g.startIndex>=m)return;let a=Math.min(g.startIndex+g.visibleCount-1,m-1);if(a<g.startIndex)return;Z(g.startIndex,a).catch(ce)},w=()=>{if(_!==null||g.destroyed)return;_=setTimeout(()=>{_=null,E()},v),v=Math.min(v*2,_t)},B=()=>{D(),v=dt};return{name:"data",priority:20,setup(m){g=m.getState(),O=m.sizeCache,A=m.emitter,b=m.dom,F=m.forceRender.bind(m);let a=null;m.setVirtualTotalFn(()=>a?.getTotal()??0),m.setGetIndexByIdFn((V)=>a?.getIndexById(V)??-1),S=a=cn({adapter:e,...r!==void 0&&{initialTotal:r},pageSize:i?.chunkSize??et,maxConcurrent:C,...i&&{storage:{...i.chunkSize!==void 0&&{chunkSize:i.chunkSize},...i.maxCachedItems!==void 0&&{maxCachedItems:i.maxCachedItems},...i.evictionBuffer!==void 0&&{evictionBuffer:i.evictionBuffer}}},onDataChange:()=>{if(g.initialized){let V=S.getTotal(),H=S.getCached();if(g.totalItems=V,V!==x||H!==h)x=V,h=H,O.rebuild(V);m.updateContentSize(O.getTotalSize()),m.renderIfNeeded()}},onItemsLoaded:(V)=>{if(B(),g.initialized)m.updateContentSize(O.getTotalSize()),F(),A.emit("load:end",{items:V,total:S.getTotal()})},onLoadError:(V)=>{if(A.emit("error",{error:V,context:"load"}),g.initialized)m.renderIfNeeded();w()}}),m.setGetItemFn((V)=>S.getItem(V)),m.setRemoveItemFn((V)=>{let H=S.getIndexById(V);if(H<0)return-1;if(!S.removeItem(V))return-1;return H}),m.setInsertItemFn((V,H)=>{S.insertItem(V,H)}),m.setUpdateItemFn((V,H)=>{let y=S.getIndexById(V);if(y<0)return!1;return S.updateItem(y,H)}),m.registerMethod("reload",async()=>{if(R=null,Y=-1,G=-1,B(),m.forceRender(),await S.reload(),m.scrollTo(0),o)ee(0),await S.loadInitial(),m.forceRender()}),m.registerMethod("loadVisibleRange",async()=>{R=null,m.forceRender();let V=S.getTotal();if(g.visibleCount>0&&g.startIndex<V){let H=Math.min(g.startIndex+g.visibleCount-1,V-1);ee(g.startIndex,H-g.startIndex+1),await Z(g.startIndex,H)}}),m.registerMethod("loadInitial",async()=>{ee(0),await S.loadInitial(),m.forceRender()}),m.registerMethod("getTotal",()=>S.getTotal()),m.registerMethod("setTotal",(V)=>{S.setTotal(V)}),m.registerMethod("_getTotal",()=>S.getTotal()),m.registerMethod("_setTotal",(V)=>{S.setTotal(V)}),m.registerMethod("_cancelAutoLoad",()=>{P=!0}),m.registerMethod("_getLoadedItem",(V)=>S.getStorage().get(V)),m.registerMethod("_getItem",(V)=>S.getItem(V)),m.registerMethod("_getLoadedCount",()=>S.getCached()),A.on("load:start",()=>{b.root.setAttribute("aria-busy","true")}),A.on("load:end",()=>{b.root.removeAttribute("aria-busy")}),m.registerDestroyHandler(()=>{if(c!==null)clearTimeout(c),c=null;j(),D()}),A.on("velocity:change",({velocity:V})=>{d=Math.abs(V)});let W=()=>{if(g.destroyed)return;B(),E(),z()};if(window.addEventListener("online",W),m.registerDestroyHandler(()=>{window.removeEventListener("online",W)}),o)queueMicrotask(()=>{if(P)return;ee(0),S.loadInitial().catch((V)=>{A.emit("error",{error:V,context:"loadInitial"})})});else if(r!==void 0)S.setTotal(r)},hooks:{onAfterScroll(){if(g.destroyed)return;let m=g.startIndex+Math.max(0,g.visibleCount-1);if(d>n){if(u!==null)clearTimeout(u),u=null;R={start:g.startIndex,end:m};return}if(d>s){let V=Math.floor(g.startIndex/k),H=Math.floor(m/k);if(V!==Y||H!==G){if(Y=V,G=H,m>=g.startIndex)Z(g.startIndex,m).catch(ce)}let y=g.startIndex,N=m,ae=g.scrollDirection;if(ae>0)N=Math.min(N+l,S.getTotal()-1);else if(ae<0)y=Math.max(0,y-l);if(R={start:y,end:N},u!==null)clearTimeout(u);u=setTimeout(()=>{if(u=null,g.destroyed||!R)return;let{start:q,end:p}=R;if(R=null,p>=q)Z(q,p).catch(ce)},100);return}j();let a=Math.floor(g.startIndex/k),W=Math.floor(m/k);if(a!==Y||W!==G){if(Y=a,G=W,m>=g.startIndex)Z(g.startIndex,m).catch(ce)}},onIdle(){if(g.destroyed)return;d=0,Y=-1,G=-1,z(),j()},onResize(){if(g.destroyed)return;let m=S.getTotal();if(m<=0)return;if(g.visibleCount<=0||g.startIndex>=m)return;let a=Math.min(g.startIndex+g.visibleCount-1,m-1);if(a<g.startIndex)return;ee(g.startIndex,a-g.startIndex+1),Z(g.startIndex,a).catch(ce)}},destroy(){if(c!==null)clearTimeout(c);j(),D()}}}var mn=(t)=>{let e=Math.max(1,Math.floor(t.columns)),r=t.gap??0,o=t.isHeaderFn,i={row:0,col:0},n=(R)=>{if(R<=0)return 0;if(!o)return Math.ceil(R/e);let u=0,c=0,d=0;for(let P=0;P<R;P++)if(o(P)){if(d++,c)u++,c=0;u++,c=0}else if(c++,c>=e)u++,c=0;if(c)u++;return u},s=(R)=>(i.row=l(R),i.col=C(R),i),l=(R)=>{if(!o)return Math.floor(R/e);let u=0,c=0;for(let d=0;d<=R;d++)if(o(d)){if(c)u++,c=0;if(d===R)return u;u++,c=0}else{if(d===R)return u;if(c++,c>=e)u++,c=0}return console.warn(`⚠️ getRow(${R}) fell through - returning ${u}`),u},C=(R)=>{if(!o)return R%e;if(o(R))return 0;let u=0;for(let c=0;c<=R;c++)if(o(c))u=0;else{if(c===R)return u;if(u++,u>=e)u=0}return u},S=(R,u,c,d)=>{if(c<=0){d.start=0,d.end=-1;return}if(!o){d.start=Math.max(0,R*e),d.end=Math.min(c-1,(u+1)*e-1);return}let P=g(R,u,c);d.start=P.start,d.end=P.end},g=(R,u,c)=>{if(c<=0)return{start:0,end:-1};if(!o){let x=Math.max(0,R*e),h=Math.min(c-1,(u+1)*e-1);return{start:x,end:h}}let d=-1,P=-1,_=0,v=0;for(let x=0;x<c;x++){if(o(x)){if(v)_++,v=0;if(_>=R&&_<=u){if(d<0)d=x;P=x}_++,v=0}else{if(_>=R&&_<=u){if(d<0)d=x;P=x}if(v++,v>=e)_++,v=0}if(_>u&&!v)break}if(d<0)return{start:0,end:-1};return{start:d,end:P}},O=(R,u,c)=>{if(u<0||u>=e)return-1;let d=R*e+u;if(d<0||d>=c)return-1;return d},A=(R)=>{let u=(e-1)*r;return Math.max(0,(R-u)/e)};return{get columns(){return e},get gap(){return r},update:(R)=>{if(R.columns!==void 0)e=Math.max(1,Math.floor(R.columns));if(R.gap!==void 0)r=R.gap;if(R.isHeaderFn!==void 0)o=R.isHeaderFn},getTotalRows:n,getPosition:s,getRow:l,getCol:C,getItemRange:g,fillItemRange:S,getItemIndex:O,getColumnWidth:A,getColumnOffset:(R,u)=>{let c=A(u);return R*(c+r)}}};var Oe={selected:!1,focused:!1};function vt(t){if(!t.columns||t.columns<1)throw Error("[vlist] grid: columns must be >= 1");let e,r,o,i,n=null,s,l,C,S,g,O,A=null,b=0,F=0,R=0,u=0,c=new Map,d=0,P=0,_=0,v=0,x=null,h=!1,Y="",G="",k="",j={start:0,end:-1},Z=-1,ee=-1,ce=-1,z=!0,D=(y)=>r.rebuild(y);function E(){let y=(P-1)*_;v=Math.max(0,(d-y)/P)}function w(){if(h)return;h=!0,x=A?.()??null}function B(){return e.getTotalRows(o.totalItems)}function m(y){let N=y/P|0,q=(y-N*P)*(v+_)+b,p=r.getOffset(N)-o.baseOffset+R;if(S)return`translate(${Math.round(p)}px, ${Math.round(q)}px)`;return`translate(${Math.round(q)}px, ${Math.round(p)}px)`}function a(y,N){let ae=r.getSize(N)-_;if(S)y.style.width=`${ae}px`,y.style.height=`${v}px`;else y.style.width=`${v}px`,y.style.height=`${ae}px`}function W(y,N,ae){if(x)x(ae,Oe);else Oe.selected=!1,Oe.focused=!1;let q=l(N,ae,Oe);if(typeof q==="string")y.innerHTML=q;else y.innerHTML="",y.appendChild(q)}function V(){if(o.destroyed)return;let y=o.scrollPosition,N=o.containerSize;if(!z&&y===Z&&N===ee)return;Z=y,ee=N,z=!1;let ae=B();if(N<=0||ae===0)return;w();let q=r.indexAtOffset(y),p=r.indexAtOffset(y+N);if(p<ae-1)p++;q=Math.max(0,q),p=Math.min(ae-1,Math.max(0,p));let M=Math.max(0,q-O),L=Math.min(ae-1,p+O);if(M===o.prevRangeStart&&L===o.prevRangeEnd&&!o.renderPending&&o.baseOffset===o.prevBaseOffset)return;e.fillItemRange(M,L,o.totalItems,j);let{start:I,end:U}=j;for(let[de,ne]of c)if(de<I||de>U)ne.el.remove(),i.release(ne.el),c.delete(de);for(let de=I;de<=U;de++){let ne=C(de);if(!ne)continue;let ue=de/P|0,ge=de-ue*P,be=c.get(de);if(be===void 0){let X=i.acquire();X.className=Y,X.setAttribute("data-index",String(de)),X.setAttribute("data-id",String(ne.id)),W(X,ne,de),be={el:X,lastItem:ne},c.set(de,be),s.appendChild(X)}else if(be.lastItem!==ne)be.el.setAttribute("data-id",String(ne.id)),be.lastItem=ne,W(be.el,ne,de);else if(x)x(de,Oe);if(x)if(be.el.classList.toggle(G,Oe.selected),be.el.classList.toggle(k,Oe.focused),Oe.selected)be.el.setAttribute("aria-selected","true");else be.el.removeAttribute("aria-selected");a(be.el,ue);let ie=ge*(v+_)+b,f=r.getOffset(ue)-o.baseOffset+R;be.el.style.transform=S?`translate(${Math.round(f)}px, ${Math.round(ie)}px)`:`translate(${Math.round(ie)}px, ${Math.round(f)}px)`}let te=r.getTotalSize();if(te!==ce)ce=te,n?.updateContentSize(te);o.prevRangeStart=M,o.prevRangeEnd=L,o.prevBaseOffset=o.baseOffset,o.renderPending=!1;let Ee=U-I+1;o.visibleCount=Math.min(Ee,o.capacity),o.startIndex=I;for(let de=0;de<o.visibleCount;de++){let ne=I+de,ue=ne/P|0;o.visibleIndices[de]=ne,o.visibleOffsets[de]=r.getOffset(ue),o.visibleSizes[de]=r.getSize(ue)}}function H(){if(o.destroyed)return;D(B()),ce=-1,o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,z=!0,V()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(y){P=Math.max(1,Math.floor(t.columns)),_=t.gap??0,e=mn({columns:t.columns,gap:_}),r=y.sizeCache,o=y.getState(),i=y.pool,n=y,s=y.dom.content,l=y.template,S=y.config.axis.primary==="x",g=y.config.classPrefix,O=y.config.overscan,C=y.getItem.bind(y),A=()=>y.getItemStateFn(),Y=`${g}-item ${g}-grid-item`,G=`${g}-item--selected`,k=`${g}-item--focused`,b=y.config.crossPadStart,F=y.config.crossAxisPadding,R=y.config.startPadding,u=y.config.mainAxisPadding,d=o.crossSize-F,E();let N=y.rawSizeSpec,ae;if(typeof N==="function"){let I={columnWidth:e.getColumnWidth(d),columns:t.columns,gap:_};ae=N(0,I),y.setSizeConfig((U)=>{I.columnWidth=e.getColumnWidth(d);let te=U*t.columns;return N(te,I)+_})}else if(ae=N,_>0)y.setSizeConfig(ae+_);let q=null,p=r.rebuild;function M(){if(r.rebuild===q)return;p=r.rebuild,D=(L)=>p(L),q=(L)=>{D(Math.ceil(L/P))},r.rebuild=q}if(y.registerMethod("_setSizeCacheBase",(L)=>{p=L,D=(I)=>p(I)}),M(),D(B()),_>0){let L=r.getTotalSize;r.getTotalSize=()=>{let I=L();return I>0?I-_:0}}y.setVirtualTotalFn(()=>B()),y.dom.root.classList.add(`${g}--grid`),y.setRenderFn(V,H),y.registerMethod("getGridLayout",()=>e),y.registerMethod("_getRowGap",()=>e.gap),y.registerMethod("updateGrid",(L)=>{if(L.columns!==void 0){if(!Number.isInteger(L.columns)||L.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(L.gap!==void 0&&L.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if(e.update(L),L.columns!==void 0)P=Math.max(1,Math.floor(L.columns));if(L.gap!==void 0)_=L.gap;if(L.gap!==void 0||L.columns!==void 0){let I=e.gap;if(typeof N==="function"){let U={columnWidth:e.getColumnWidth(d),columns:e.columns,gap:I};y.setSizeConfig((te)=>{U.columnWidth=e.getColumnWidth(d);let Ee=te*e.columns;return N(Ee,U)+I})}else y.setSizeConfig(ae+I);M(),D(B())}if(L.columns!==void 0)y.setNavConfig({ud:e.columns});d=o.crossSize-F,E(),H()}),y.registerMethod("scrollToIndex",(L,I="start")=>{let U=e.getRow(L),te=B();if(te===0)return;let Ee=Math.max(0,Math.min(U,te-1)),de=r.getOffset(Ee)+R,ne=r.getSize(Ee),ue=o.containerSize,ge=r.getTotalSize()+u,be=Math.max(0,ge-ue),ie=typeof I==="string"?I:I.align??"start",f=typeof I==="object"?I.behavior:void 0,X=typeof I==="object"?I.duration:void 0,oe;switch(ie){case"center":oe=de-(ue-ne)/2;break;case"end":oe=de-ue+ne;break;default:oe=de}if(oe=Math.max(0,Math.min(oe,be)),f==="smooth"&&X&&X>0)y.smoothScrollTo(oe,X);else y.scrollTo(oe)}),y.setNavConfig({total:()=>o.totalItems,ud:t.columns,lr:1,scrollIndex:(L)=>e.getRow(L)}),y.registerDestroyHandler(()=>{for(let[,L]of c)L.el.remove();c.clear(),y.dom.root.classList.remove(`${g}--grid`)})},hooks:{onResize(y,N){let ae=o.crossSize-F;if(Math.abs(ae-d)<1)return;d=ae,E();for(let[q,p]of c){let M=q/P|0;a(p.el,M),p.el.style.transform=m(q)}}},destroy(){c.clear()}}}var fn=(t)=>{let e=Math.max(1,Math.floor(t.columns)),r=t.gap??0,o=t.containerSize,i=t.crossOffset??0,n=t.mainOffset??0,s=0,l=[],C=()=>{let c=(e-1)*r;s=Math.max(0,(o-c)/e),l=Array(e);let d=s+r;for(let P=0;P<e;P++)l[P]=i+P*d};C();let S=[],g=0,O=[],A=(c,d)=>{if(c<=0)return g=0,S=[],[];let P=Array(e).fill(n),_=Array(e);for(let h=0;h<e;h++)_[h]=[];let v=Array(c);for(let h=0;h<c;h++){let Y=0,G=P[0];for(let Z=1;Z<e;Z++){let ee=P[Z];if(ee<G)G=ee,Y=Z}let k=d(h),j=P[Y];v[h]={index:h,x:l[Y],y:j,lane:Y,size:k,crossSize:s},_[Y].push(h),P[Y]=j+k+r}S=_;let x=0;for(let h=0;h<e;h++){let Y=P[h],G=Y>0?Y-r:0;if(G>x)x=G}return g=x,v},b=(c)=>{if(c.length===0)return g;if(g)return g;let d=Array(e).fill(0);for(let _ of c){let v=_.y+_.size,x=d[_.lane];if(v>x)d[_.lane]=v}let P=0;for(let _=0;_<e;_++)if(d[_]>P)P=d[_];return P},F=(c,d,P)=>{if(c.length===0||P<=d)return O.length=0,O;if(S.length===0||S.length!==e)return R(c,d,P);O.length=0;for(let _=0;_<e;_++){let v=S[_],x=v.length;if(!x)continue;let h=0,Y=x;while(h<Y){let G=h+Y>>>1,k=c[v[G]];if(k.y+k.size<=d)h=G+1;else Y=G}for(let G=h;G<x;G++){let k=c[v[G]];if(k.y>=P)break;O.push(k)}}return O},R=(c,d,P)=>{O.length=0;for(let _ of c)if(_.y+_.size>d&&_.y<P)O.push(_);return O};return{get columns(){return e},get gap(){return r},get containerSize(){return o},update:(c)=>{let d=!1;if(c.columns!==void 0){let P=Math.max(1,Math.floor(c.columns));if(P!==e)e=P,d=!0}if(c.gap!==void 0&&c.gap!==r)r=c.gap,d=!0;if(c.containerSize!==void 0&&c.containerSize!==o)o=c.containerSize,d=!0;if(c.crossOffset!==void 0&&c.crossOffset!==i)i=c.crossOffset,d=!0;if(c.mainOffset!==void 0&&c.mainOffset!==n)n=c.mainOffset,d=!0;if(d)C()},calculateLayout:A,getTotalSize:b,getVisibleItems:F}};var gn=(t,e,r)=>{let o=Array.from(e).sort((s,l)=>s-l);if(o.length<=1)return;let i=[];for(let s=0;s<o.length;s++){let l=r(o[s]);if(l)i.push(l)}if(i.length<=1)return;let n=t.firstChild;for(let s=0;s<i.length;s++){let l=i[s];if(l===n)n=n.nextSibling;else t.insertBefore(l,n)}};var Yn=(t=200)=>{let e=[];return{acquire:()=>{let n=e.pop();if(n)return n;let s=document.createElement("div");return s.setAttribute("role","option"),s},release:(n)=>{if(n.remove(),e.length<t)n.className="",n.textContent="",n.removeAttribute("style"),n.removeAttribute("data-index"),n.removeAttribute("data-id"),n.removeAttribute("data-lane"),e.push(n)},clear:()=>{e.length=0}}},Un=1,pn=(t,e,r,o=!1,i,n,s,l,C=()=>0)=>{let S=Yn(),g=new Map,O=new Set,A=0,b="",F=-1,R={selected:!1,focused:!1},u=(z,D)=>(R.selected=z,R.focused=D,R),c=`${r}-item ${r}-masonry-item`,d=`${r}-group-header`,P=`${r}-item--selected`,_=`${r}-item--focused`,v=(z,D)=>{if(typeof D==="string")z.innerHTML=D;else z.replaceChildren(D);We(z)},x=(z,D,E)=>{z.classList.toggle(P,D),z.classList.toggle(_,E)},h=(z,D)=>{let E=Math.round(D.y-C());if(o)z.style.transform=`translate(${E}px, ${Math.round(D.x)}px)`;else z.style.transform=`translate(${Math.round(D.x)}px, ${E}px)`},Y=(z,D)=>{if(o)z.style.width=`${D.size}px`,z.style.height=`${D.crossSize}px`;else z.style.width=`${D.crossSize}px`,z.style.height=`${D.size}px`},G=(z,D,E,w,B)=>{let m=S.acquire(),a=D.__groupHeader,W=u(w,B);if(m.className=a?d:c,m.dataset.index=String(z),m.dataset.id=String(D.id),m.dataset.lane=String(E.lane),a)m.setAttribute("role","presentation"),m.removeAttribute("aria-selected"),m.removeAttribute("aria-setsize"),m.removeAttribute("aria-posinset"),m.removeAttribute("id");else if(l===!0){if(m.setAttribute("role","option"),m.ariaSelected=String(w),n)m.id=`${n}-item-${z}`;if(i){let H=i();if(H!==F)F=H,b=String(H);m.setAttribute("aria-setsize",b);let y=s?s(z):z+1;m.setAttribute("aria-posinset",String(y))}}else if(m.setAttribute("role","listitem"),m.removeAttribute("aria-selected"),i){let H=i();if(H!==F)F=H,b=String(H);m.setAttribute("aria-setsize",b);let y=s?s(z):z+1;m.setAttribute("aria-posinset",String(y))}Y(m,E);let V=e(D,z,W);return v(m,V),x(m,w,B),h(m,E),{element:m,lastItem:D,lastSelected:w,lastFocused:B,lastY:E.y-C(),absY:E.y,lastX:E.x,lastSize:E.size,lastCrossSize:E.crossSize,lastSeenFrame:A}},k=(z,D,E,w)=>{A++,O.clear();for(let m=0;m<D.length;m++)O.add(D[m].index);let B=null;for(let m=0;m<D.length;m++){let a=D[m],W=a.index,V=z(W);if(!V)continue;let H=E.has(V.id),y=W===w,N=g.get(W);if(N){let ae=N.lastItem!==V,q=N.lastSelected!==H,p=N.lastFocused!==y,M=N.lastY!==a.y-C()||N.lastX!==a.x,L=N.lastSize!==a.size||N.lastCrossSize!==a.crossSize;if(ae){let I=u(H,y),U=e(V,W,I);if(v(N.element,U),N.element.dataset.id=String(V.id),N.lastItem=V,!V.__groupHeader){let Ee=s?s(W):W+1;N.element.setAttribute("aria-posinset",String(Ee))}}if(ae||q||p)x(N.element,H,y),N.element.ariaSelected=String(H),N.lastSelected=H,N.lastFocused=y;if(L)Y(N.element,a),N.lastSize=a.size,N.lastCrossSize=a.crossSize;if(M)h(N.element,a),N.lastY=a.y-C(),N.absY=a.y,N.lastX=a.x}else{let ae=G(W,V,a,H,y);if(!B)B=document.createDocumentFragment();B.appendChild(ae.element),g.set(W,ae)}}if(B)t.appendChild(B);for(let[m,a]of g)if(O.has(m))a.lastSeenFrame=A;else if(A-a.lastSeenFrame>Un)S.release(a.element),g.delete(m);else{let W=Math.round(a.absY-C());if(W!==a.lastY){a.lastY=W;let V=Math.round(a.lastX);a.element.style.transform=o?`translate(${W}px, ${V}px)`:`translate(${V}px, ${W}px)`}}},j=()=>{for(let z of g.values())S.release(z.element);g.clear(),t.innerHTML=""};return{render:k,getElement:(z)=>g.get(z)?.element,updateItemClasses:(z,D,E)=>{let w=g.get(z);if(!w)return;let B=w.lastSelected!==D,m=w.lastFocused!==E;if(B||m)x(w.element,D,E),w.lastSelected=D,w.lastFocused=E},sortDOM:()=>{gn(t,g.keys(),(z)=>g.get(z)?.element)},clear:j,destroy:()=>{j(),S.clear()}}};var Kn=100,Xn=new Set;function St(t){if(!t.columns||t.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let e,r=null,o,i=null,n,s,l,C=[],S=-1,g=-1,O=!0,A=-1,b=-1,F=0,R=0,u=0,c=0,d={columnWidth:0,columns:0,gap:0,containerWidth:0},P=[],_=(p)=>P[p],v=null,x=null,h=!1;function Y(){if(h||!i)return;h=!0,v=i.getMethod("_getSelectedIds")??null,x=i.getMethod("_getFocusedIndex")??null}let G=[],k=new Int32Array(0),j=[],Z=null,ee=null,ce=null,z=null,D=!1,E=!0;function w(){if(D||!i)return;if(Z=i.getMethod("_getItemLane")??null,ee=i.getMethod("_getItemY")??null,ce=i.getMethod("_getItemH")??null,z=i.getMethod("_isGroupHeader")??null,Z||z)D=!0}function B(){w();let p=e.columns,M=!!Z;if(M){let L=o.totalItems;G=Array(p);for(let I=0;I<p;I++)G[I]=[];if(k.length<L)k=new Int32Array(L);for(let I=0;I<L;I++){if(z?.(I))continue;let U=Z(I);if(U<0||U>=p)continue;k[I]=G[U].length,G[U].push(I)}}else{let L=C.length;G=Array(p);for(let I=0;I<p;I++)G[I]=[];if(k.length<L)k=new Int32Array(L);for(let I=0;I<L;I++){let U=C[I];k[I]=G[U.lane].length,G[U.lane].push(I)}}j=Array(p);for(let L=0;L<p;L++){let I=G[L],U=new Float64Array(I.length);for(let te=0;te<I.length;te++){let Ee=I[te];if(M&&ee&&ce){let de=ee(Ee),ne=ce(Ee);U[te]=de>=0?de+(ne>0?ne*0.5:0):0}else{let de=C[Ee];U[te]=de.y+de.size*0.5}}j[L]=U}}function m(p,M){let L=p.length;if(!L)return-1;let I=0,U=L-1;while(I<U){let te=I+U>>1;if(p[te]<M)I=te+1;else U=te}if(I>0&&Math.abs(p[I-1]-M)<=Math.abs(p[I]-M))return I-1;return I}function a(p,M,L){if(E)B(),E=!1;let I=!!Z,U,te;if(I){if(z?.(p))return p;if(U=Z(p),U<0)return p;te=k[p]}else{let ue=C[p];if(!ue)return p;U=ue.lane,te=k[p]}let Ee=e.columns,de=G[U];switch(n?M==="ArrowDown"?"ArrowRight":M==="ArrowUp"?"ArrowLeft":M==="ArrowRight"?"ArrowDown":M==="ArrowLeft"?"ArrowUp":M:M){case"ArrowDown":if(te+1<de.length)return de[te+1];return p;case"ArrowUp":if(te>0)return de[te-1];return p;case"ArrowRight":{if(U>=Ee-1)return p;let ue=U+1,ge=G[ue];if(!ge.length)return p;let be=m(j[ue],j[U]?.[te]??0);return be>=0?ge[be]:p}case"ArrowLeft":{if(U<=0)return p;let ue=U-1,ge=G[ue];if(!ge.length)return p;let be=m(j[ue],j[U]?.[te]??0);return be>=0?ge[be]:p}case"Home":return 0;case"End":{let ue=G[Ee-1];return ue.length>0?ue[ue.length-1]:p}case"PageDown":{let ue=o.containerSize,ge=I?null:C[p],be=ge&&ge.size>0?ge.size:150,ie=Math.max(1,Math.floor(ue/be)),f=Math.min(te+ie,de.length-1);return de[f]}case"PageUp":{let ue=o.containerSize,ge=I?null:C[p],be=ge&&ge.size>0?ge.size:150,ie=Math.max(1,Math.floor(ue/be)),f=Math.max(0,te-ie);return de[f]}}return p}let W=null;function V(){if(t.size)return(p)=>t.size(p,d);if(W!==null&&typeof W==="function")return(p)=>W(p,d);return(p)=>i.sizeCache.getSize(p)}function H(){let p=e.columns,M=e.gap;d.containerWidth=e.containerSize,d.columns=p,d.gap=M,d.columnWidth=Math.max(0,(e.containerSize-(p-1)*M)/p)}function y(){if(!i)return;H();let p=o.totalItems;C=e.calculateLayout(p,V()),A=p,E=!0,N()}function N(){if(!i)return;let p=e.getTotalSize(C)+c;if(p===b)return;b=p,i.updateContentSize(p)}function ae(){if(o.destroyed||!i||!r)return;if(o.totalItems!==A)y();if(O)b=-1,N();Y();let p=o.scrollPosition,M=o.containerSize;if(!O&&p===S&&M===g)return;if(S=p,g=M,O=!1,M<=0||C.length===0)return;let L=Math.max(0,p-l),I=p+M+l,U=e.getVisibleItems(C,L,I),te=v?.()??Xn,Ee=x?.()??-1;P=i.getItems(),r.render(_,U,te,Ee);let de=U.length,ne=de>0?U[0].index:0,ue=de>0?U[de-1].index:0;o.prevRangeStart=ne,o.prevRangeEnd=ue,o.renderPending=!1;let ge=Math.min(de,o.capacity);o.visibleCount=ge,o.startIndex=ne;for(let be=0;be<ge;be++){let ie=U[be];o.visibleIndices[be]=ie.index,o.visibleOffsets[be]=ie.y,o.visibleSizes[be]=ie.size}}function q(){if(o.destroyed)return;b=-1,y(),o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,O=!0,ae()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(p){if(i=p,o=p.getState(),W=p.rawSizeSpec,n=p.config.axis.primary==="x",s=p.config.classPrefix,l=p.config.overscan*Kn,p.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");F=p.config.crossAxisPadding,R=p.config.crossPadStart,u=p.config.startPadding,c=p.config.endPadding;let M=o.crossSize-F;e=fn({columns:t.columns,gap:t.gap??0,containerSize:M,crossOffset:R,mainOffset:u}),r=pn(p.dom.content,p.template,s,n,()=>o.totalItems,void 0,void 0,void 0,()=>o.baseOffset),p.dom.root.classList.add(`${s}--masonry`),p.setRenderFn(ae,q),y(),p.registerMethod("getMasonryLayout",()=>e),p.registerMethod("updateMasonry",(L)=>{if(L.columns!==void 0&&L.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(L.gap!==void 0&&L.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let I={};if(L.columns!==void 0)I.columns=L.columns;if(L.gap!==void 0)I.gap=L.gap;e.update(I),r?.clear(),q()}),p.registerMethod("scrollToIndex",(L,I="start")=>{let U=C[L];if(!U)return;let te=typeof I==="string"?I:I.align??"start",Ee=typeof I==="object"?I.behavior:void 0,de=typeof I==="object"?I.duration:void 0,ne=o.containerSize,ue=e.getTotalSize(C)+c,ge=Math.max(0,ue-ne),be=U.y;if(te==="center")be=U.y-ne/2+U.size/2;else if(te==="end"){if(be=U.y-ne+U.size,L>=o.totalItems-1&&U.y+U.size>ge)be=ge}if(be=Math.max(0,Math.min(be,ge)),Ee==="smooth"&&de&&de>0)p.smoothScrollTo(be,de);else p.scrollTo(be)}),p.registerMethod("_scrollItemIntoView",(L)=>{let I=C[L];if(!I)return;let U=o.scrollPosition,te=o.containerSize,Ee=e.getTotalSize(C)+c,de=Math.max(0,Ee-te),ne=I.y,ue=ne+I.size;if(ne-u<U)p.scrollTo(Math.max(0,ne-u));else if(ue+c>U+te){let ge=G[e.columns-1];if(ge&&ge.length>0&&L===ge[ge.length-1]&&ne>=de)p.scrollTo(de);else p.scrollTo(Math.min(ue+c-te,de))}}),p.setNavConfig({total:()=>o.totalItems,navigate:a}),p.registerDestroyHandler(()=>{r?.destroy(),r=null,p.dom.root.classList.remove(`${s}--masonry`)})},hooks:{onResize(p,M){if(!e||!i)return;let L=o.crossSize-F;if(Math.abs(L-e.containerSize)<1)return;e.update({containerSize:L}),r?.clear(),q()},onIdle(){r?.sortDOM()}},destroy(){r?.destroy(),r=null,C=[],i=null}}}var yt=(t,e)=>{let r=0,o=t.length-1;while(r<o){let i=r+o+1>>>1;if(t[i].headerLayoutIndex<=e)r=i;else o=i-1}return r},bn=(t,e)=>{let r=0,o=t.length-1;while(r<o){let i=r+o+1>>>1;if(t[i].firstDataIndex<=e)r=i;else o=i-1}return r},hn=(t,e,r)=>{if(t===0)return[];let o=[],i=null,n=0,s=0;for(let l=0;l<t;l++){let C=r?.(l);if(!C)continue;let S=e(l,C);if(i===null)i=S,n=0;else if(S!==i){let g=l-n;o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:g}),s=s+1+g,i=S,n=l}}if(i!==null)o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:t-n});return o};var vn=(t,e,r)=>{let o=hn(t,e.getGroupForIndex,r),i=t+o.length,n=e.header?.height??e.header?.width??e.headerHeight;return{get totalEntries(){return i},get groupCount(){return o.length},get groups(){return o},getEntry:(b)=>{if(o.length===0)return{type:"item",dataIndex:b,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let F=yt(o,b),R=o[F];if(b===R.headerLayoutIndex)return{type:"header",group:R};let u=b-R.headerLayoutIndex-1;return{type:"item",dataIndex:R.firstDataIndex+u,group:R}},layoutToDataIndex:(b)=>{if(o.length===0)return b;let F=yt(o,b),R=o[F];if(b===R.headerLayoutIndex)return-1;let u=b-R.headerLayoutIndex-1;return R.firstDataIndex+u},dataToLayoutIndex:(b)=>{if(o.length===0)return b;let F=bn(o,b),R=o[F],u=b-R.firstDataIndex;return R.headerLayoutIndex+1+u},getGroupAtLayoutIndex:(b)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=yt(o,b);return o[F]},getGroupAtDataIndex:(b)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=bn(o,b);return o[F]},getHeaderHeight:typeof n==="number"?(b)=>n:(b)=>{let F=o[b];if(!F)return 0;return n(F.key,b)},rebuild:(b,F)=>{o=hn(b,e.getGroupForIndex,F??r),i=b+o.length}}};var It=(t,e,r,o,i=0)=>{let n=r?"width":"height",s=document.createElement("div");return s.className=`${e}-sticky-header`,s.setAttribute("role","presentation"),s.setAttribute("aria-hidden","true"),s.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(r?`position:absolute;top:0;bottom:0;left:${i||0}px`:`position:relative;top:${i||0}px`),s.style[n]=`${o}px`,t.insertBefore(s,t.firstChild),s},Sn=(t,e,r,o,i,n=!1,s=0,l,C)=>{let S=n?"width":"height",g=n?"height":"width",O=n?"X":"Y",A=(p,M)=>{p.style[S]=`${M}px`},b=l??It(t,i,n,0,s),F=()=>{let p=document.createElement("div");return p.className="sticky-group",p.style.position="absolute",p.style.willChange="transform",p.style[g]="100%",p},R=F(),u=F();b.append(R,u);let c=R,d=u,P=e.groups,_=[],v=[],x=[],h=0,Y=()=>{P=e.groups,h=P.length,_=Array(h),v=Array(h),x=Array(h);for(let p=0;p<h;p++)_[p]=C?C(P[p].headerLayoutIndex):r.getOffset(P[p].headerLayoutIndex),v[p]=e.getHeaderHeight(p),x[p]=v[p]};Y();let G=-1,k=0,j=0,Z=-1,ee=!1,ce=0,z=!1,D=(p,M)=>{o(p,M);let L=v[M];return A(p,L),L},E=(p)=>{p.replaceChildren(),p.style.transform=""},w=(p)=>{if(p===G)return;if(G=p,k=0,j=0,p<0||p>=h){E(c);return}k=D(c,p),j=x[p],A(b,k),c.style.transform=""},B=(p)=>{if(p===ce)return;ce=p;let M=Math.round(p);c.style.transform=`translate${O}(${M}px)`,d.style.transform=`translate${O}(${M+k}px)`},m=()=>{ce=0,c.style.transform="",d.style.transform=""},a=()=>{if(!z)return;let p=c;c=d,d=p,G=Z,k=G>=0?v[G]:0,j=G>=0?x[G]:0,A(b,k),E(d),Z=-1,z=!1,m()},W=()=>{if(!z)return;E(d),Z=-1,z=!1,m()},V=!!l,H=()=>{if(ee)return;if(ee=!0,V)b.style.visibility="";else b.style.display=""},y=()=>{if(!ee)return;if(ee=!1,V)b.style.visibility="hidden";else b.style.display="none";E(c),G=-1,k=0,j=0,W()},N=(p)=>{if(h===0){if(z)W();if(!ee)H();w(-1);return}if(p<_[0]){y();return}let M=0,L=h-1;while(M<L){let U=M+L+1>>>1;if(_[U]+x[U]<=p)M=U;else L=U-1}if(!ee)H();w(M);let I=M+1;if(I<h){let U=_[I]-p;if(U<=0&&U>-j){if(Z!==I||!z)Z=I,D(d,I),z=!0;let te=j>0?U/j*k:U;B(te)}else if(U<=-j){if(z)a()}else if(z)W()}else if(z)W()},ae=()=>{Y();let p=G;if(G=-1,k=0,j=0,p>=0)w(p)},q=()=>{b.remove(),G=-1,k=0,j=0,Z=-1,ee=!1,z=!1};if(!l)b.style.display="none";return{update:N,refresh:ae,show:H,hide:y,destroy:q}};var $e={selected:!1,focused:!1},yn=typeof process<"u"&&process.env?.NODE_ENV!=="production";function Tt(t){if(!t.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let e=t.header?.height??t.header?.width??t.headerHeight;if(e==null||typeof e==="number"&&e<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let r=t.header?.template??t.headerTemplate;if(!r)throw Error("[vlist] groups: header.template is required");let o=r,i,n=null,s,l,C,S,g=null,O,A,b,F=null,R,u,c,d=null,P,_,v=null,x=null,h=0,Y=0,G=0,k=0,j=0,Z=!1,ee=null,ce=new Map,z=new Set,D=new Map,E=-1,w=-1,B=0,m=!0,a=-1,W=0,V=null,H;function y(){return i.totalEntries}function N(){let f=l.totalItems;if(f===a)return;if(yn)console.log(`[groups] syncLayout: ${a} → ${f}`);let X=a>0;a=f,i.rebuild(f,F??b),H(i.totalEntries),L();let oe=q?I():s.getTotalSize();if(g?.(oe),n)n.refresh(),n.update(l.scrollPosition);if(X)Ee();let me=v?.("_scrollbar:getInstance");if(me)me()?.updateBounds(oe,l.containerSize)}let ae=0,q=null,p=null,M=null;function L(){if(h<=0){q=null,p=null;return}ae=((l.crossSize||S.clientWidth)-k-(h-1)*Y)/h,q=new Map;let oe=i.totalEntries,me=Array(oe),ve=0;if(Z){let Se=ee??((xe)=>s.getSize(xe)),ye=new Float64Array(h),fe=[],he=0,Me=-1;for(let xe=0;xe<oe;xe++){let Te=i.getEntry(xe);if(Te.type==="header"){let Q=0;for(let J=0;J<h;J++)if(ye[J]>Q)Q=ye[J];if(Me>=0)fe[Me]=he+Q;he+=Q;let le=s.getSize(xe);q.set(xe,{col:-1,rowY:he}),me[ve++]=[xe,he,he+le],he+=le,ye.fill(0),Me=Te.group.groupIndex}else{let Q=0,le=ye[0];for(let K=1;K<h;K++)if(ye[K]<le)le=ye[K],Q=K;let J=Se(Te.dataIndex),Ie=he+ye[Q];q.set(xe,{col:Q,rowY:Ie,h:J}),me[ve++]=[xe,Ie,Ie+J],ye[Q]=ye[Q]+J+Y}}if(Me>=0){let xe=0;for(let Te=0;Te<h;Te++)if(ye[Te]>xe)xe=ye[Te];fe[Me]=he+xe}M=fe}else{M=null;let Se=0,ye=0,fe=0;for(let he=0;he<oe;he++)if(i.getEntry(he).type==="header"){if(ye>0&&fe>0)Se+=fe;let xe=s.getSize(he);q.set(he,{col:-1,rowY:Se}),me[ve++]=[he,Se,Se+xe],Se+=xe,ye=0,fe=0}else{let xe=ye%h,Te=s.getSize(he);if(xe===0){if(ye>0&&fe>0)Se+=fe+Y;fe=Te}else if(Te>fe)fe=Te;q.set(he,{col:xe,rowY:Se}),me[ve++]=[he,Se,Se+Te],ye++}}me.length=ve,p=me}function I(){if(!q||q.size===0)return s.getTotalSize();let f=i.totalEntries;if(Z)return M?.[M.length-1]??0;let X=0;for(let oe=f-1;oe>=0;oe--){let me=q.get(oe);if(me){X=me.rowY+(me.h??s.getSize(oe));break}if(i.getEntry(oe).type==="header"){X=s.getOffset(oe)+s.getSize(oe);break}}return X}function U(f){let X=l.baseOffset;if(q){let me=q.get(f);if(me){let ve=me.col<0?0:G+me.col*(ae+Y),Se=me.rowY-X;if(R)return`translate(${Math.round(Se)}px, ${Math.round(ve)}px)`;return`translate(${Math.round(ve)}px, ${Math.round(Se)}px)`}}let oe=s.getOffset(f)-X;if(R)return`translate(${Math.round(oe)}px, 0)`;return`translate(0, ${Math.round(oe)}px)`}function te(f,X){let oe=q?.get(X);if(oe){let ve=oe.h??s.getSize(X);if(oe.col<0)if(R)f.style.width=`${ve}px`,f.style.height="";else f.style.height=`${ve}px`,f.style.width="100%";else if(R)f.style.width=`${ve}px`,f.style.height=`${ae}px`;else f.style.height=`${ve}px`,f.style.width=`${ae}px`;return}let me=s.getSize(X);if(R)f.style.width=`${me}px`;else f.style.height=`${me}px`}function Ee(){ce.forEach((f)=>{f.remove();let X=f.getAttribute("data-id");if(X)D.set(X,f);else C.release(f)}),ce.clear(),z.clear()}function de(){if(D.size>0)D.forEach((f)=>C.release(f)),D.clear()}function ne(f,X,oe,me){if(x===null)x=!!v?.("_getSelectedIds");if(X.type==="header"){let Me=`__group_header_${X.group.groupIndex}`;if(f.getAttribute("data-id")===Me)return!0;if(f.className=_,f.setAttribute("role","presentation"),f.removeAttribute("aria-selected"),f.setAttribute("data-id",Me),R&&n&&X.group.groupIndex===0)f.style.display="none";else{f.style.display="";let xe=o(X.group.key,X.group.groupIndex);if(typeof xe==="string")f.innerHTML=xe;else f.innerHTML="",f.appendChild(xe)}return!0}let ve=X.dataIndex,Se=b(ve);if(!Se)return f.innerHTML="",!1;let ye=Se._isPlaceholder===!0,fe=String(Se.id);if(!ye&&f.getAttribute("data-id")===fe){if(x)f.id=`${u}-item-${me}`,f.setAttribute("aria-posinset",String(ve+1)),f.setAttribute("aria-setsize",String(l.totalItems));return!0}if(f.className=P,f.setAttribute("role",x?"option":"listitem"),f.setAttribute("data-id",fe),x)f.id=`${u}-item-${me}`,f.setAttribute("aria-posinset",String(ve+1)),f.setAttribute("aria-setsize",String(l.totalItems));if(ye)f.classList.add(`${u}-item--placeholder`);if(oe)oe(me,$e);else $e.selected=!1,$e.focused=!1;let he=A(Se,ve,$e);if(typeof he==="string")f.innerHTML=he;else f.innerHTML="",f.appendChild(he);return We(f),!ye}let ue=0;function ge(){if(h<=0)return;let f=l.crossSize;if(f===ue)return;ue=f,L();let X=I();if(g?.(X),n)n.refresh(),n.update(l.scrollPosition);m=!0}function be(){if(l.destroyed)return;N(),ge();let f=l.scrollPosition,X=l.containerSize,oe=l.baseOffset,me=oe!==B;if(!m&&f===E&&X===w&&!me)return;E=f,w=X;let ve=m;m=!1;let Se=y();if(X<=0||Se===0){if(ce.size>0)ce.forEach((K)=>{K.remove(),C.release(K)}),ce.clear(),z.clear();return}let ye,fe;if(p){let K=p,se=K.length,Ce=0,Le=se-1;while(Ce<Le){let we=Ce+Le>>>1;if(K[we][2]<=f)Ce=we+1;else Le=we}let ze=Ce;Le=se-1;while(Ce<Le){let we=Ce+Le+1>>>1;if(K[we][1]>=f+X)Le=we-1;else Ce=we}let Ge=Ce,He=K[ze][0],Ue=K[Ge][0];for(let we=He-1;we>=0;we--)if(i.getEntry(we).type==="header"){He=we;break}let Be=c*h;ye=Math.max(0,He-Be),fe=Math.min(Se-1,Ue+Be)}else{let K=s.indexAtOffset(f),se=s.indexAtOffset(f+X);if(se<Se-1)se++;K=Math.max(0,K),se=Math.min(Se-1,Math.max(0,se)),ye=Math.max(0,K-c),fe=Math.min(Se-1,se+c)}if(ye===l.prevRangeStart&&fe===l.prevRangeEnd&&!l.renderPending&&!me)return;B=oe,ce.forEach((K,se)=>{if(se<ye||se>fe)K.remove(),C.release(K),ce.delete(se),z.delete(se)});let he=d?.()??null,Me=he?`${u}-item--selected`:"",xe=he?`${u}-item--focused`:"",Te=null;for(let K=ye;K<=fe;K++){let se=ce.get(K),Ce=!1;if(se===void 0){let Le=i.getEntry(K);Ce=Le.type==="header";let ze;if(Le.type==="header")ze=`__group_header_${Le.group.groupIndex}`;else{let He=b(Le.dataIndex);if(He&&He._isPlaceholder!==!0)ze=String(He.id)}if(ze!==void 0){let He=D.get(ze);if(He)D.delete(ze),se=He}if(!se)se=C.acquire();if(se.setAttribute("data-index",String(K)),ne(se,Le,he,K))z.delete(K);else z.add(K);if(te(se,K),se.style.transform=U(K),ce.set(K,se),!Te)Te=document.createDocumentFragment();Te.appendChild(se)}else if(ve&&z.has(K)){let Le=i.getEntry(K);if(Le.type==="item")if(ne(se,Le,he,K))z.delete(K);else z.add(K)}else if(Ce=se.classList.contains(_),ve)te(se,K),se.style.transform=U(K);else if(me)se.style.transform=U(K);if(!Ce&&he)if(he(K,$e),se.classList.toggle(Me,$e.selected),se.classList.toggle(xe,$e.focused),$e.selected)se.setAttribute("aria-selected","true");else se.removeAttribute("aria-selected")}if(Te)S.appendChild(Te);de();let Q=q?I():s.getTotalSize();g?.(Q),l.prevRangeStart=ye,l.prevRangeEnd=fe,l.renderPending=!1;let le=0,J=0,Ie=!1;for(let K=ye;K<=fe&&le<l.capacity;K++){let se=i.getEntry(K);if(se.type==="item"){if(!Ie)J=se.dataIndex,Ie=!0;l.visibleIndices[le]=se.dataIndex,l.visibleOffsets[le]=s.getOffset(K),l.visibleSizes[le]=s.getSize(K),le++}}l.visibleCount=le,l.startIndex=J}function ie(){if(l.destroyed)return;if(ge(),yn)console.log(`[groups] forceRender, placeholders: ${z.size}, rendered: ${ce.size}`);let f=V?.()??0;if(f!==W){W=f;let X=i.groups,oe=X.length;i.rebuild(a,F??b);let me=i.groups,ve=me.length!==oe;if(!ve){for(let Se=0;Se<oe;Se++)if(me[Se].headerLayoutIndex!==X[Se].headerLayoutIndex){ve=!0;break}}if(ve){H(i.totalEntries),L();let Se=q?I():s.getTotalSize();if(g?.(Se),n)n.refresh(),n.update(l.scrollPosition);let ye=1/0,fe=Math.min(oe,me.length);for(let Me=0;Me<fe;Me++)if(me[Me].headerLayoutIndex!==X[Me].headerLayoutIndex){ye=Math.min(me[Me].headerLayoutIndex,X[Me].headerLayoutIndex);break}if(me.length>oe&&fe<me.length)ye=Math.min(ye,me[fe].headerLayoutIndex);else if(oe>me.length&&fe<oe)ye=Math.min(ye,X[fe].headerLayoutIndex);if(ye<=l.prevRangeEnd)Ee();let he=v?.("_scrollbar:getInstance");if(he)he()?.updateBounds(Se,l.containerSize)}}l.prevRangeStart=-1,l.prevRangeEnd=-1,l.renderPending=!0,m=!0,be()}return{name:"groups",priority:10,setup(f){s=f.sizeCache,l=f.getState(),C=f.pool,S=f.dom.content,g=f.updateContentSize.bind(f),O=f.dom.root,A=f.template,R=f.config.axis.primary==="x",u=f.config.classPrefix,c=f.config.overscan,j=f.config.mainAxisPadding,b=f.getItem.bind(f),d=()=>f.getItemStateFn(),v=f.getMethod.bind(f),x=null,P=`${u}-item`,_=`${u}-group-header`;let X=v?.("getGridLayout"),oe=v?.("getMasonryLayout");if(X){let Q=X();h=Q.columns,Y=Q.gap,G=f.config.crossPadStart,k=f.config.crossAxisPadding}else if(oe){let Q=oe();h=Q.columns,Y=Q.gap,G=f.config.crossPadStart,k=f.config.crossAxisPadding,Z=!0;let le=f.rawSizeSpec;if(typeof le==="function")ee=(J)=>le(J,{columnWidth:ae})}queueMicrotask(()=>{let Q=v?.("_getLoadedItem");if(Q)F=Q;let le=v?.("_getLoadedCount");if(le)V=le});let me=l.totalItems;i=vn(me,t,F??b),a=me;let ve=typeof e==="number"?(Q)=>e:(Q)=>{let le=i.groups[Q];if(!le)return 0;return e(le.key,Q)},Se=s.getSize,ye=(Q)=>{let le=i.getEntry(Q);if(le.type==="header"){if(t.sticky!==!1&&le.group.groupIndex===0)return 0;return ve(le.group.groupIndex)}return Se(le.dataIndex)};f.setSizeConfig(ye);let fe=!1,he=-1;if(f.registerMethod("_setSizeCacheBase",(Q)=>{H=Q}),H=s.rebuild,s.rebuild=(Q)=>{if(fe){if(!V)V=v?.("_getLoadedCount")??null;let le=V?.()??0;if(Q!==a||le!==he){if(a=Q,he=le,!F)F=v?.("_getLoadedItem")??null;if(i.rebuild(Q,F??((J)=>f.getItems()[J])),l.totalItems=i.totalEntries,n)n.refresh(),n.update(l.scrollPosition)}}H(i.totalEntries)},s.rebuild(i.totalEntries),L(),f.setVirtualTotalFn(()=>i.totalEntries),O.classList.add(`${u}--grouped`),t.sticky!==!1){let Q=(K,se)=>{let Ce=i.groups[se];if(!Ce)return;let Le=o(Ce.key,se);if(typeof Le==="string")K.innerHTML=Le;else K.replaceChildren(Le)},le=i.getHeaderHeight(0),J=It(O,u,R,le),Ie=h>0?(K)=>{let se=q?.get(K);return se?se.rowY:s.getOffset(K)}:void 0;if(n=Sn(O,i,s,Q,u,R,0,J,Ie),n.update(l.scrollPosition),!R)f.dom.viewport.style.height=`calc(100% - ${le}px)`;else f.dom.viewport.style.width=`calc(100% - ${le}px)`,f.dom.viewport.style.marginLeft=`${le}px`}let Me=!!v?.("_updateTableForGroups");if(fe=Me,Me)queueMicrotask(()=>{let Q=v?.("_getItem")??null,le=f.getItems.bind(f);f.setGetItemFn((Ie)=>{let K=i.getEntry(Ie);if(K.type==="header")return{id:`__group_header_${K.group.groupIndex}`,__groupHeader:!0,groupKey:K.group.key,groupIndex:K.group.groupIndex};return Q?Q(K.dataIndex):le()[K.dataIndex]});let J=v?.("_updateTableForGroups");if(J)J((Ie)=>!!Ie.__groupHeader,o)});else f.setRenderFn(be,ie);f.registerMethod("getGroupLayout",()=>i),f.registerMethod("_dataToLayoutIndex",(Q)=>i.dataToLayoutIndex(Q)),f.registerMethod("_layoutToDataIndex",(Q)=>i.layoutToDataIndex(Q)),f.registerMethod("_getRenderedElement",(Q)=>ce.get(Q)??null),f.registerMethod("_isGroupHeader",(Q)=>i.getEntry(Q).type==="header"),f.registerMethod("_getItemLane",(Q)=>{let le=q?.get(Q);return le?le.col:-1}),f.registerMethod("_getItemY",(Q)=>{let le=q?.get(Q);return le?le.rowY:-1}),f.registerMethod("_getItemH",(Q)=>q?.get(Q)?.h??-1);let xe=f.config.startPadding,Te=j-xe;f.registerMethod("_scrollItemIntoView",(Q)=>{if(Q<0)return;let le=q?.get(Q),J=le?le.rowY:s.getOffset(Q),Ie=le?.h??s.getSize(Q),K=l.containerSize,se=l.scrollPosition;if(J<se+xe)f.scrollTo(Math.max(0,J-xe));else if(J+Ie+Te>se+K)f.scrollTo(J+Ie+Te-K)}),f.registerMethod("scrollToIndex",(Q,le="start")=>{let J=i.dataToLayoutIndex(Q),Ie=i.totalEntries;if(Ie===0)return;let K=Math.max(0,Math.min(J,Ie-1)),se=l.containerSize,Ce=q?.get(K),Le=Ce?Ce.rowY:s.getOffset(K),ze=Ce?Ce.h??s.getSize(K):s.getSize(K),Ge=q?I()+j:s.getTotalSize(),He=Math.max(0,Ge-se),Ue=typeof le==="string"?le:le.align??"start",Be=typeof le==="object"?le.behavior:void 0,we=typeof le==="object"?le.duration:void 0,Ne=q?j:0,Ke=Le+ze;if(Z&&M){let T=i.getEntry(K).group.groupIndex,pe=M[T];if(pe!==void 0)Ke=pe}let re;switch(Ue){case"center":re=Le-(se-ze)/2;break;case"end":re=Ke-se+Ne;break;default:re=Le}if(re=Math.max(0,Math.min(re,He)),Be==="smooth"&&we&&we>0)f.smoothScrollTo(re,we);else f.scrollTo(re)}),f.registerDestroyHandler(()=>{for(let[,Q]of ce)Q.remove();if(ce.clear(),z.clear(),n)n.destroy(),n=null;O.classList.remove(`${u}--grouped`)})},hooks:{onAfterScroll(f,X){if(n)n.update(f)},onResize(f,X){if(h<=0)return;H(i.totalEntries),ue=l.crossSize,L();let oe=I();if(g?.(oe),n)n.refresh(),n.update(l.scrollPosition);m=!0,be()}},destroy(){if(n)n.destroy(),n=null;ce.clear(),z.clear(),D.clear()}}}var In=(t,e,r)=>{if(String(r).startsWith(_e))return!1;let o=_e+e;if(t.has(o))return t.delete(o),t.add(r),!0;return!1},Tn=(t)=>({selected:new Set(t??[]),focusedIndex:-1,focusVisible:!1});function Ye(t,e,r,o){if(r===0)return;let i=o?-e:e,n=t.focusedIndex+i;if(n<0)n=0;if(n>=r)n=r-1;t.focusedIndex=n}function st(t){return Array.from(t)}function xt(t,e,r,o){if(o<=0)return 0;let i=o-1;if(r<=1)return t<0?0:t>i?i:t;let n=(e%r+r)%r;if(t<0)return n;if(t>i){let s=Math.floor(i/r)*r;return Math.min(s+n,i)}return t}var qn={preventScroll:!0};function lt(t){let e=t?.mode??"single",r=t?.followFocus??!1,o=t?.focusOnClick??!1,i=t?.keyboard??!0,n,s,l,C,S,g,O,A,b=-1,F=new Map,R=null,u=null,c=null,d=null,P,_=!1;function v(a){if(_)return;_=!0,R=a.getMethod("_layoutToDataIndex")??null,u=a.getMethod("_dataToLayoutIndex")??null,c=a.getMethod("_isGroupHeader")??null,d=a.getMethod("_scrollItemIntoView")??null,h=a.getMethod("_getLoadedItem")??null;let W=a.getMethod("getGroupLayout");if(W){let V=W();P=()=>V.totalEntries}}let x=(a)=>R?R(a):a,h=null,Y=(a)=>{if(h)return h(a);return s()[a]},G=(a)=>{let W=x(a);return W>=0?Y(W):void 0},k=(a,W,V)=>{if(!c)return a;let H=a;while(H>=0&&H<V){if(!c(H))return H;H+=W}H=a-W;while(H>=0&&H<V){if(!c(H))return H;H-=W}return a};function j(a,W){if(e==="single")n.selected.clear(),F.clear();if(n.selected.add(a),W)F.set(a,W)}function Z(a,W){if(n.selected.has(a))n.selected.delete(a),F.delete(a);else j(a,W)}function ee(){n.selected.clear(),F.clear()}function ce(a){n.selected.delete(a),F.delete(a)}function z(a,W){let V=Math.min(a,W),H=Math.max(a,W);for(let y=V;y<=H;y++){if(c?.(y))continue;let N=G(y);if(N)n.selected.add(N.id),F.set(N.id,N);else if(h){let ae=x(y);if(ae>=0)n.selected.add(_e+ae)}}}function D(){let a=O.totalItems;for(let W=0;W<a;W++){if(c?.(W))continue;let V=G(W);if(V)n.selected.add(V.id),F.set(V.id,V);else if(h){let H=x(W);if(H>=0)n.selected.add(_e+H)}}}function E(){if(n.selected.size===0)return[];if(F.size>=n.selected.size){let H=[];for(let y of n.selected){let N=F.get(y);if(N)H.push(N)}if(H.length===n.selected.size)return H}let a=[],W=new Set(n.selected),V=O.totalItems;for(let H=0;H<V&&W.size>0;H++){if(c?.(H))continue;let y=G(H);if(y&&W.has(y.id))a.push(y),F.set(y.id,y),W.delete(y.id)}return a}function w(){l(),C.emit("selection:change",{selected:st(n.selected),items:E()})}let B=null,m=-1;return{name:"selection",priority:50,setup(a){a.enableListboxRole(),n=Tn(t?.initial),s=a.getItems.bind(a),l=a.forceRender.bind(a),C=a.emitter,S=a.dom;let W=a.config;if(g=a.sizeCache,O=a.getState(),A=a.scrollTo.bind(a),P=()=>O.totalItems,e==="none"){a.registerMethod("select",()=>{}),a.registerMethod("deselect",()=>{}),a.registerMethod("toggleSelect",()=>{}),a.registerMethod("selectAll",()=>{}),a.registerMethod("clearSelection",()=>{}),a.registerMethod("getSelected",()=>[]),a.registerMethod("getSelectedItems",()=>[]),a.registerMethod("selectNext",()=>{}),a.registerMethod("selectPrevious",()=>{}),a.registerMethod("_seedSelection",()=>{}),a.registerMethod("_getFocusedId",()=>{return}),a.registerMethod("_focusById",()=>{});return}let V=W.classPrefix;a.setItemStateFn((M,L)=>{if(v(a),n.selected.size>0){let I=x(M),U=I>=0?G(M):void 0,te=U?.id;if(te!==void 0)if(n.selected.has(te))L.selected=!0;else if(In(n.selected,I,te))L.selected=!0,F.delete(_e+I),F.set(te,U);else L.selected=!1;else L.selected=h!==null&&I>=0&&n.selected.has(_e+I)}else L.selected=!1;L.focused=n.focusVisible&&n.focusedIndex===M}),a.registerMethod("_getSelectedIds",()=>n.selected),a.registerMethod("_getFocusedIndex",()=>n.focusVisible?n.focusedIndex:-1),S.root.classList.add(`${V}--selectable`);let H=(M)=>{B=null,m=-1;let L=M.target.closest("[data-index]");if(!L)return!1;let I=parseInt(L.dataset.index??"-1",10);if(I<0)return!1;if(c?.(I))return!1;if(x(I)<0)return!1;let te=G(I);if(!te)return!1;return B=te,m=I,!0},y=0,N=(M)=>{if(M<0)return;if(d){d(M);return}if(!y){let ge=a.getMethod("_getRowGap");y=ge?ge():0}let L=a.getNavConfig(),I=L.scrollIndex?L.scrollIndex(M):M,U=g.getOffset(I),te=g.getSize(I)-y,Ee=O.containerSize,de=O.scrollPosition,{startPadding:ne,endPadding:ue}=W;if(U<de)A(U);else if(ne+U+te+ue>de+Ee)A(ne+U+te+ue-Ee)},ae=(M)=>{let L=S.content.querySelectorAll(`[data-index="${M}"]`),I=null;for(let U=0;U<L.length;U++){let te=L[U];if(te.style.display!=="none"){I=te;break}}if(!I&&L.length>0)I=L[0];S.content.setAttribute("aria-activedescendant",I?.id??`${V}-item-${M}`)},q=()=>{if(O.destroyed)return;if(v(a),!S.content.matches(":focus-visible")&&!S.root.matches(":focus-visible"))return;let M=P();if(M===0)return;let L=n.focusedIndex>=0?Math.min(n.focusedIndex,M-1):0;L=k(L,1,M),n.focusedIndex=L,n.focusVisible=!0,ae(L),N(L),l()};S.root.addEventListener("focusin",q);let p=(M)=>{if(O.destroyed)return;let L=M.relatedTarget;if(L&&S.root.contains(L))return;n.focusVisible=!1,l(),S.content.removeAttribute("aria-activedescendant")};if(S.root.addEventListener("focusout",p),a.registerDestroyHandler(()=>{S.root.removeEventListener("focusin",q),S.root.removeEventListener("focusout",p)}),a.registerClickHandler((M)=>{if(v(a),!H(M))return;if(e==="multiple"&&M.shiftKey&&n.focusedIndex>=0){let I=b>=0?b:n.focusedIndex,U=x(I),te=x(m);if(U>=0&&te>=0)z(I,m);n.focusedIndex=m,n.focusVisible=o,b=m,w();return}if(n.focusedIndex=m,n.focusVisible=o,b=m,(S.content.getAttribute("tabindex")!==null?S.content:S.root).focus(qn),e==="single")j(B.id,B);else Z(B.id,B);w()}),i)a.registerKeydownHandler((M)=>{v(a);let L=P();if(L===0)return;let I=a.getNavConfig(),U=n.focusedIndex,te=!1,Ee=!1;if(I.navigate&&(M.key==="ArrowUp"||M.key==="ArrowDown"||M.key==="ArrowLeft"||M.key==="ArrowRight"||M.key==="PageUp"||M.key==="PageDown"||M.key==="Home"||M.key==="End")){let ne=I.total?I.total():L,ue=I.navigate(n.focusedIndex,M.key,ne);if(ue!==n.focusedIndex)n.focusedIndex=Math.max(0,Math.min(ue,ne-1));n.focusVisible=!0,te=!0}else switch(M.key){case"ArrowUp":{let ne=I.ud||1,ue=I.lr,ge=W.axis.primary==="x";if(ge&&!ue)break;Ye(n,-(ge?ue:ne),L,W.reverse),n.focusVisible=!0,te=!0;break}case"ArrowDown":{let ne=I.ud||1,ue=I.lr,ge=W.axis.primary==="x";if(ge&&!ue)break;Ye(n,ge?ue:ne,L,W.reverse),n.focusVisible=!0,te=!0;break}case"ArrowLeft":{let ne=I.ud||1,ue=I.lr,ge=W.axis.primary==="x";if(!ge&&!ue)break;Ye(n,-(ge?ne:ue),L,W.reverse),n.focusVisible=!0,te=!0;break}case"ArrowRight":{let ne=I.ud||1,ue=I.lr,ge=W.axis.primary==="x";if(!ge&&!ue)break;Ye(n,ge?ne:ue,L,W.reverse),n.focusVisible=!0,te=!0;break}case"Home":if(L>0)n.focusedIndex=0;n.focusVisible=!0,te=!0;break;case"End":if(L>0)n.focusedIndex=L-1;n.focusVisible=!0,te=!0;break;case"PageUp":case"PageDown":{let ne=I.ud||1,ue=Math.max(0,n.focusedIndex),ge=I.scrollIndex?I.scrollIndex(ue):ue,be=g.getSize(ge),ie=O.containerSize,X=(be>0?Math.max(1,Math.floor(ie/be)):10)*ne;if(R&&u){let oe=R(n.focusedIndex),me=M.key==="PageUp"?-X:X,ve=O.totalItems-1;n.focusedIndex=u(xt(oe+me,oe,ne,ve+1))}else{let oe=M.key==="PageUp"?n.focusedIndex-X:n.focusedIndex+X;n.focusedIndex=xt(oe,n.focusedIndex,ne,L)}n.focusVisible=!0,te=!0;break}case" ":case"Enter":if(M.key===" "&&M.shiftKey&&e==="multiple"&&n.focusedIndex>=0){if(b>=0){let ne=x(b),ue=x(n.focusedIndex);if(ne>=0&&ue>=0)z(b,n.focusedIndex)}n.focusVisible=!0,Ee=!0,te=!0;break}if(n.focusedIndex>=0){let ne=G(n.focusedIndex);if(ne)Z(ne.id,ne),b=n.focusedIndex;n.focusVisible=!0,Ee=!0,te=!0}break;case"a":if((M.ctrlKey||M.metaKey)&&e==="multiple"){if(n.selected.size===O.totalItems)ee();else D();n.focusVisible=!0,Ee=!0,te=!0}break;case"Delete":case"Backspace":if(n.selected.size>0)C.emit("delete",{selected:st(n.selected),items:E()}),te=!0;break}if(n.focusedIndex!==U&&c){let ne=n.focusedIndex>U?1:-1;n.focusedIndex=k(n.focusedIndex,ne,L)}let de=n.focusedIndex!==U;if(M.shiftKey&&e==="multiple"&&!Ee&&de){if(M.key==="ArrowUp"||M.key==="ArrowDown"||M.key==="ArrowLeft"||M.key==="ArrowRight"){let ge=G(n.focusedIndex);if(ge)Z(ge.id,ge);b=n.focusedIndex,Ee=!0}if((M.ctrlKey||M.metaKey)&&(M.key==="Home"||M.key==="End")){let ge=U>=0?U:n.focusedIndex,be=x(ge),ie=x(n.focusedIndex);if(be>=0&&ie>=0)z(ge,n.focusedIndex);b=n.focusedIndex,Ee=!0}}if(r&&e==="single"&&!Ee&&de&&n.focusedIndex>=0){let ne=G(n.focusedIndex);if(ne)j(ne.id,ne);Ee=!0}if(te){if(M.preventDefault(),de&&n.focusedIndex>=0){if(d||!I.navigate)N(n.focusedIndex);ae(n.focusedIndex)}if(Ee)w();else if(de){if(l(),n.focusedIndex>=0){let ne=G(n.focusedIndex);if(ne)C.emit("focus:change",{id:ne.id,index:n.focusedIndex})}}}});a.registerMethod("select",(...M)=>{for(let L of M)j(L);w()}),a.registerMethod("deselect",(...M)=>{for(let L of M)ce(L);w()}),a.registerMethod("toggleSelect",(M)=>{Z(M),w()}),a.registerMethod("selectAll",()=>{if(e!=="multiple")return;v(a),D(),w()}),a.registerMethod("clearSelection",()=>{ee(),w()}),a.registerMethod("getSelected",()=>st(n.selected)),a.registerMethod("getSelectedItems",()=>E()),a.registerMethod("selectNext",()=>{v(a);let M=P();if(M===0)return;if(Ye(n,1,M,W.reverse),c)n.focusedIndex=k(n.focusedIndex,1,M);let L=G(n.focusedIndex);if(L)j(L.id,L);w()}),a.registerMethod("selectPrevious",()=>{v(a);let M=P();if(M===0)return;if(Ye(n,-1,M,W.reverse),c)n.focusedIndex=k(n.focusedIndex,-1,M);let L=G(n.focusedIndex);if(L)j(L.id,L);w()}),a.registerMethod("_seedSelection",(M)=>{if(e==="single"){if(M.length===1)n.selected.add(M[0])}else for(let L of M)n.selected.add(L)}),a.registerMethod("_isFollowFocus",()=>r),a.registerMethod("_getFocusedId",()=>{if(n.focusedIndex<0)return;return G(n.focusedIndex)?.id}),a.registerMethod("_focusById",(M)=>{let L=O.totalItems;for(let I=0;I<L;I++){if(c?.(I))continue;let U=G(I);if(U&&U.id===M){n.focusedIndex=I,n.focusVisible=o,C.emit("focus:change",{id:M,index:I});return}}})},destroy(){F.clear()}}}var xn=!1;function Lt(t){return{name:"scale",priority:20,setup(){if(!xn)xn=!0,console.warn("[vlist] scale() is deprecated and will be removed in vlist 3.0. "+'Use scroll: { mode: "bounded" } instead — it handles lists of any size '+"without coordinate compression. See https://vlist.io/docs/rfcs/RFC-012-Logical-Scroll-Model")}}}var jn=(t)=>{if(typeof t!=="object"){let e=t??2;return{top:e,right:e,bottom:e,left:e}}return{top:t.top??2,right:t.right??2,bottom:t.bottom??2,left:t.left??2}},Ln=(t,e,r={},o="vlist",i=!1,n)=>{let{autoHide:s=!0,autoHideDelay:l=1000,minThumbSize:C=15,showOnHover:S=!0,showOnViewportEnter:g=!0,clickBehavior:O="scroll"}=r,A=O==="page"?"scroll":O,b=n??t,F=jn(r.padding),R=i?F.left:F.top,u=i?F.right:F.bottom,c=i?F.bottom:F.right,d=r.hoverZoneWidth??c+16,P=0,_=0,v=0,x=0,h=!1,Y=!1,G=0,k=0,j=0,Z=null,ee=!1,ce=null,z=0,D=0,E=null,w=null,B=null,m=i?"width":"height",a=i?"translateX":"translateY",W=i?(J)=>J.clientX:(J)=>J.clientY,V=i?"left":"top",H=document.createElement("div"),y=document.createElement("div"),N=document.createElement("div"),ae=i?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",q=()=>{if(b===t)return;let J=t.offsetTop;H.style[i?"left":"top"]=J?`calc(var(${ae}) + ${J}px)`:`var(${ae})`,N.style[i?"left":"top"]=`${J}px`},p=()=>{if(H.className=`${o}-scrollbar`,y.className=`${o}-scrollbar__thumb`,i)H.classList.add(`${o}-scrollbar--horizontal`);if(r.padding!==void 0)b.style.setProperty("--vlist-custom-scrollbar-padding-top",`${F.top}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-right",`${F.right}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${F.bottom}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-left",`${F.left}px`);if(r.minThumbSize!==void 0)H.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${C}px`);if(H.appendChild(y),b.appendChild(H),N.className=`${o}-scrollbar__hover`,i)N.classList.add(`${o}-scrollbar__hover--horizontal`),N.style.height=`${d}px`;else N.style.width=`${d}px`;if(b.appendChild(N),b!==t)q()},M=()=>{if(Z)clearTimeout(Z),Z=null},L=()=>{if(!s)return;M(),Z=setTimeout(U,l)},I=()=>{if(P<=_)return;if(M(),!ee)H.classList.add(`${o}-scrollbar--visible`),ee=!0;if(s&&!h&&!Y)L()},U=()=>{if(h||Y)return;H.classList.remove(`${o}-scrollbar--visible`),ee=!1},te=(J,Ie)=>{if(P=J,_=Ie,q(),P<=_){H.style.display="none",U();return}H.style.display="";let K=Math.max(0,_-R-u),se=_/P;if(v=Math.max(C,se*K),y.style[m]=`${v}px`,x=K-v,Ee(j),!s)I()},Ee=(J)=>{if(j=J,P<=_||x<=0)return;let Ie=P-_,K=Math.min(1,Math.max(0,J/Ie));y.style.transform=`${a}(${K*x}px)`},de=(J)=>{if(J.target===y||A!=="jump"||x<=0)return;let Ie=P-_,K=H.getBoundingClientRect(),se=W(J)-K[V],Ce=Math.max(0,Math.min(se-v/2,x));e(Ce/x*Ie),I()},ne=()=>{if(E!==null)clearTimeout(E),E=null;if(w!==null)cancelAnimationFrame(w),w=null;B=null},ue=(J)=>{let Ie=x>0?D/J*x:0;if(z<Ie)return-1;if(z>=Ie+v)return 1;return 0},ge=()=>{let J=P-_,Ie=ue(J);if(Ie===0){ne();return}if(Ie===-1){if(D<=0){ne();return}let K=Math.max(0,D-_);D=K,e(K)}else{if(D>=J){ne();return}let K=Math.min(J,D+_);D=K,e(K)}I()},be=(J)=>{if(B===null){B=J,w=requestAnimationFrame(be);return}let Ie=P-_,K=J-B;B=J;let se=ue(Ie);if(se===0){ne();return}let Ce=12*_/1000,Le=Math.min(Ce*K,_);if(se===-1){if(D<=0){ne();return}let ze=Math.max(0,D-Le);D=ze,e(ze)}else{if(D>=Ie){ne();return}let ze=Math.min(Ie,D+Le);D=ze,e(ze)}M(),w=requestAnimationFrame(be)},ie=()=>{ne(),L(),document.removeEventListener("mouseup",ie)},f=(J)=>{if(J.target===y||A!=="scroll")return;J.preventDefault();let Ie=H.getBoundingClientRect();z=W(J)-Ie[V],D=j,ge(),E=setTimeout(()=>{w=requestAnimationFrame(be)},350),document.addEventListener("mouseup",ie)},X=(J)=>{J.preventDefault(),J.stopPropagation(),h=!0,G=W(J),k=j,M(),H.classList.add(`${o}-scrollbar--dragging`),document.addEventListener("mousemove",oe),document.addEventListener("mouseup",me)},oe=(J)=>{if(!h)return;let Ie=W(J)-G,K=x>0?Ie/x:0,se=P-_,Ce=K*se,Le=Math.max(0,Math.min(k+Ce,se));y.style.transform=`${a}(${Le/se*x}px)`,e(Le)},me=()=>{if(h=!1,H.classList.remove(`${o}-scrollbar--dragging`),s&&!Y)L();document.removeEventListener("mousemove",oe),document.removeEventListener("mouseup",me)},ve=i?(J)=>J.touches[0].clientX:(J)=>J.touches[0].clientY,Se=(J)=>{J.stopPropagation(),h=!0,G=ve(J),k=j,M(),H.classList.add(`${o}-scrollbar--dragging`)},ye=(J)=>{if(!h)return;J.preventDefault();let Ie=ve(J)-G,K=x>0?Ie/x:0,se=P-_,Ce=K*se,Le=Math.max(0,Math.min(k+Ce,se));y.style.transform=`${a}(${Le/se*x}px)`,e(Le)},fe=()=>{if(h=!1,H.classList.remove(`${o}-scrollbar--dragging`),s)L()},he=(J)=>{if(J.target===y)return;if(x<=0)return;let Ie=J.touches[0],K=H.getBoundingClientRect(),se=(i?Ie.clientX:Ie.clientY)-K[V];if(A==="jump"){let Ce=P-_,Le=Math.max(0,Math.min(se-v/2,x));e(Le/x*Ce)}else z=se,D=j,ge();I()},Me=()=>{if(g)I()},xe=()=>{if(!h){if(Y=!1,s)L()}},Te=()=>{Y=!0,M(),I()},Q=()=>{if(Y=!1,!h&&s)L()},le=()=>{if(M(),ne(),ce!==null)cancelAnimationFrame(ce),ce=null;H.removeEventListener("click",de),H.removeEventListener("mousedown",f),H.removeEventListener("mouseenter",Te),document.removeEventListener("mouseup",ie),H.removeEventListener("mouseleave",Q),H.removeEventListener("touchstart",he),y.removeEventListener("mousedown",X),y.removeEventListener("touchstart",Se),y.removeEventListener("touchmove",ye),y.removeEventListener("touchend",fe),t.removeEventListener("mouseenter",Me),t.removeEventListener("mouseleave",xe),document.removeEventListener("mousemove",oe),document.removeEventListener("mouseup",me),N.removeEventListener("click",de),N.removeEventListener("mousedown",f),N.removeEventListener("mouseenter",Te),N.removeEventListener("mouseleave",Q),N.remove(),b.style.removeProperty("--vlist-custom-scrollbar-padding-top"),b.style.removeProperty("--vlist-custom-scrollbar-padding-right"),b.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),b.style.removeProperty("--vlist-custom-scrollbar-padding-left"),H.remove()};if(p(),H.addEventListener("click",de),H.addEventListener("mousedown",f),H.addEventListener("mouseenter",Te),H.addEventListener("mouseleave",Q),H.addEventListener("touchstart",he,{passive:!0}),y.addEventListener("mousedown",X),y.addEventListener("touchstart",Se,{passive:!0}),y.addEventListener("touchmove",ye,{passive:!1}),y.addEventListener("touchend",fe,{passive:!0}),t.addEventListener("mouseenter",Me),t.addEventListener("mouseleave",xe),N.addEventListener("click",de),N.addEventListener("mousedown",f),S)N.addEventListener("mouseenter",Te),N.addEventListener("mouseleave",Q);return{show:I,hide:U,updateBounds:te,updatePosition:Ee,isVisible:()=>ee,destroy:le}};function Et(t){let e=null,r,o=0,i=0,n=0;return{name:"scrollbar",priority:15,setup(s){let{dom:l,config:C}=s,{classPrefix:S}=C,g=C.axis.primary==="x";r=s.getState(),o=C.mainAxisPadding;let O=(A)=>{s.scrollTo(A)};if(s.registerMethod("_scrollbar:setCallback",(A)=>{O=A}),e=Ln(l.viewport,(A)=>{O(A)},t,S,g,l.root),l.viewport.classList.add(`${S}-viewport--custom-scrollbar`),t?.gutter)l.viewport.classList.add(`${S}-viewport--gutter`);queueMicrotask(()=>{e?.updateBounds(r.totalSize+o,r.containerSize)}),s.registerMethod("_scrollbar:getInstance",()=>e),s.registerDestroyHandler(()=>{if(e?.destroy(),e=null,l.viewport.classList.remove(`${S}-viewport--custom-scrollbar`),t?.gutter)l.viewport.classList.remove(`${S}-viewport--gutter`)})},hooks:{onAfterScroll(s){let l=r.totalSize+o,C=r.containerSize;if(l!==i||C!==n)i=l,n=C,e?.updateBounds(l,C);e?.updatePosition(s),e?.show()},onResize(){let s=r.totalSize+o,l=r.containerSize;i=s,n=l,e?.updateBounds(s,l)}},destroy(){e?.destroy(),e=null}}}var Zn=(t)=>{try{let e=sessionStorage.getItem(t);if(!e)return;return JSON.parse(e)}catch{return}};function Mt(t){let e=t?.autoSave,r=t?.restore??(e?Zn(e):void 0),o=!1,i=null;return{name:"snapshots",priority:50,setup(n){let{sizeCache:s,emitter:l}=n,C=n.getState(),S=()=>{let{scrollPosition:A,totalItems:b}=C,R=n.getMethod("getSelected")?.();if(b===0){let h={index:0,offsetInItem:0,total:0};if(R?.length)h.selectedIds=R;return h}let u=s.indexAtOffset(A),c=A-s.getOffset(u);c=Math.max(0,c);let d={index:u,offsetInItem:c,total:b,scrollTop:A},P=s.getSize(u);if(P)d.offsetRatio=c/P;let _=n.getMethod("_layoutToDataIndex");if(_){let h=_(u);if(h<0){for(let Y=u+1;Y<b;Y++)if(h=_(Y),h>=0)break}if(h>=0)d.dataIndex=h}let v=n.getMethod("_getTotal");if(v)d.dataTotal=v();if(R?.length)d.selectedIds=R;let x=n.getMethod("_getFocusedId");if(x){let h=x();if(h!==void 0)d.focusedId=h}return d};n.registerMethod("getScrollSnapshot",S);let g=(A,b=!0)=>{let{index:F,offsetInItem:R,selectedIds:u,focusedId:c}=A,d=C.totalItems,P=A.dataTotal??A.total;if(d===0&&P&&P>0){let D=n.getMethod("_setTotal");if(D)D(P),d=C.totalItems;s.rebuild(d),n.updateContentSize(s.getTotalSize()),C.totalSize=s.getTotalSize()}if(d===0)return Promise.resolve();if(!Number.isFinite(F)||!Number.isFinite(R))return Promise.resolve();if(s.getTotal()===0)s.rebuild(d),n.updateContentSize(s.getTotalSize()),C.totalSize=s.getTotalSize();let v=n.getMethod("_dataToLayoutIndex"),x=F;if(A.dataIndex!==void 0&&A.dataIndex>=0)x=v?v(A.dataIndex):A.dataIndex;else if(v)x=v(F);let h=Math.max(0,Math.min(x,d-1)),Y=s.getSize(h),G=A.offsetRatio!==void 0?A.offsetRatio*Y:Math.min(R,Y),k=n.getMethod("_getTotal")?.(),j=A.total===d||k!==void 0&&A.dataTotal===k,Z;if(A.scrollTop!==void 0&&j)Z=A.scrollTop;else Z=s.getOffset(h)+G;let ee=Math.max(0,C.totalSize-C.containerSize);if(Z=Math.max(0,Math.min(Z,ee)),n.scrollTo(Z),b&&u?.length){let D=n.getMethod("select");if(D)D(...u)}let ce=n.getMethod("loadVisibleRange"),z=()=>{if(c===void 0)return;let D=n.getMethod("_focusById");if(D)D(c)};return new Promise((D)=>{let E=(w)=>{if(w)z();D()};if(ce){let w=0,B=()=>{if(C.containerSize>0){if(Math.abs(C.scrollPosition-Z)>1)n.scrollTo(Z);ce().then(()=>E(!0),()=>E(!1))}else if(++w<10)requestAnimationFrame(B);else E(!1)};requestAnimationFrame(B)}else{let w=n.getMethod("reload");if(w)requestAnimationFrame(()=>{w().then(()=>E(!0),()=>E(!1))});else requestAnimationFrame(()=>E(!0))}})};n.registerMethod("restoreScroll",g);let O=!!(r&&e);if(n.registerDestroyHandler(()=>{o=!0}),e){i=()=>{if(o||O)return;let d=S();try{sessionStorage.setItem(e,JSON.stringify(d))}catch{}},n.registerMethod("_saveSnapshot",i);let A=0,b=()=>{if(A)return;A=requestAnimationFrame(()=>{if(A=0,i)i()})};l.on("selection:change",b),l.on("focus:change",b);let F=0,R=()=>{if(F=0,i)i()},u=()=>{if(F)clearTimeout(F);F=setTimeout(R,300)};l.on("scroll",u);let c=()=>{i?.()};if(window.addEventListener("beforeunload",c),n.registerDestroyHandler(()=>{if(A)cancelAnimationFrame(A);if(F)clearTimeout(F);window.removeEventListener("beforeunload",c)}),r&&r.total&&r.total>0){let d=n.getMethod("_cancelAutoLoad");if(d)d();let P=n.getMethod("_setTotal");if(P)P(r.total)}}if(r){let A=!0;if(r.selectedIds?.length){let b=n.getMethod("_seedSelection");if(b)b(r.selectedIds),A=!1}queueMicrotask(()=>{if(g(r,A),O=!1,i)i()})}},hooks:{onIdle(){if(i&&!o)i()}},destroy(){o=!0,i=null}}}function Jn(t){let e=[];if(typeof window<"u"&&t.scroll?.element===window)e.push(pt());let r=t.item,o=t.orientation==="horizontal",i=o?r.width!=null:r.height!=null,n=o?r.estimatedWidth!=null:r.estimatedHeight!=null;if(!i&&n)e.push(bt());if(t.adapter)e.push(ht({adapter:t.adapter,...t.loading&&{loading:t.loading}}));if(t.layout==="grid"&&t.grid)e.push(vt(t.grid));if(t.layout==="masonry"&&t.masonry)e.push(St(t.masonry));if(t.groups){let C=t.groups,S=typeof C.headerHeight==="function"?C.headerHeight("",0):C.headerHeight;e.push(Tt({getGroupForIndex:C.getGroupForIndex,...S!==void 0&&{headerHeight:S},...C.headerTemplate!==void 0&&{headerTemplate:C.headerTemplate},...C.sticky!==void 0&&{sticky:C.sticky}}))}if((t.selection?.mode||"none")!=="none")e.push(lt(t.selection));else e.push(lt({mode:"none"}));e.push(Lt());let l=t.scroll?.scrollbar||t.scrollbar;if(l!=="none"&&l!=="native"){let C=l&&typeof l==="object"?l:{};e.push(Et(C))}if(e.push(Mt()),t.plugins&&t.plugins.length>0){let C=new Set(t.plugins.map((g)=>g.name));return[...e.filter((g)=>!C.has(g.name)),...t.plugins]}return e}function oi(t){return an(t,Jn(t))}export{oi as createVListFromConfig,Jn as resolvePlugins};
|