vlist 2.6.0 → 2.6.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.github.md CHANGED
@@ -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.6.0** — [Changelog](./CHANGELOG.md) · New `vlist/config` resolver shared by the framework adapters (fixes #119); adapter feature-field types realigned, and `scroll.scrollbar: "native"` honored in the config layer.
5
+ **v2.6.3** — [Changelog](./CHANGELOG.md) · Grid PageUp/PageDown now preserve the column at the top/bottom row instead of jumping to the corner (#60).
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/vlist.svg)](https://www.npmjs.com/package/vlist)
8
8
  [![bundle size](https://img.shields.io/bundlephobia/minzip/vlist)](https://bundlephobia.com/package/vlist)
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.6.0** — [Changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md) · New `vlist/config` resolver shared by the framework adapters (fixes #119); adapter feature-field types realigned, and `scroll.scrollbar: "native"` honored in the config layer.
5
+ **v2.6.1** — [Changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md) · Grid PageUp/PageDown now preserve the column at the top/bottom row instead of jumping to the corner (#60).
6
6
 
7
7
  [![npm version](https://img.shields.io/npm/v/vlist.svg)](https://www.npmjs.com/package/vlist)
8
8
  [![bundle size](https://img.shields.io/bundlephobia/minzip/vlist)](https://bundlephobia.com/package/vlist)
package/dist/config.js CHANGED
@@ -1 +1 @@
1
- var i2=3,F0="vlist";var a2=50;var R0=50,T0=2,P0=15,k0=6,Z0=2000,y0=30000,q0=16000000,h2=150,r2=1,n2=(J)=>J<0.5?2*J*J:1-(-2*J+2)**2/2,w0=300,z0=2,v0=1.5,C0=0.25,f0=0.75;var I0="x",S0=20,U0="_isPlaceholder",C2="__placeholder_";var t2={top:0,right:0,bottom:0,left:0},h0=(J)=>{if(J==null)return t2;if(typeof J==="number")return J===0?t2:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[Q,q]=J;return Q===0&&q===0?t2:{top:Q,right:q,bottom:Q,left:q}}let[$,K,j,Z]=J;return $===0&&K===0&&j===0&&Z===0?t2:{top:$,right:K,bottom:j,left:Z}},p0=(J,$)=>$?J.left+J.right:J.top+J.bottom,u0=(J,$)=>$?J.top+J.bottom:J.left+J.right;function x0(J){let $={visibleIndices:new Int32Array(J),visibleOffsets:new Float64Array(J),visibleSizes:new Float64Array(J),visibleCount:0,startIndex:0,totalSize:0,capacity:J,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,prevAriaTotal:-1,resizeCapacity(K,j,Z=i2){if(j<=0||K<=0)return;let Q=Math.ceil(K/j)+Z*2;if(Q<=$.capacity)return;let q=Q+8,V=new Int32Array(q),R=new Float64Array(q),D=new Float64Array(q);V.set($.visibleIndices),R.set($.visibleOffsets),D.set($.visibleSizes),$.visibleIndices=V,$.visibleOffsets=R,$.visibleSizes=D,$.capacity=q},clear(){$.visibleCount=0,$.startIndex=0}};return $}var E4=(J,$)=>{let K=$;return{getOffset:(j)=>j*J,getSize:(j)=>J,indexAtOffset:(j)=>{if(K===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(j/J),K-1))},getTotalSize:()=>K*J,getTotal:()=>K,rebuild:(j)=>{K=j},isVariable:()=>!1}},b4=(J,$)=>{let K=$,j=new Float64Array(0),Z=(q)=>{K=q,j=new Float64Array(q+1),j[0]=0;for(let V=0;V<q;V++)j[V+1]=j[V]+J(V)};Z($);let Q=(q)=>{if(K===0)return 0;if(q<=0)return 0;if(q>=j[K])return K-1;let V=0,R=K-1;while(V<R){let D=V+R+1>>>1;if(j[D]<=q)V=D;else R=D-1}return V};return{getOffset:(q)=>{if(q<=0)return 0;if(q>=K)return j[K];return j[q]},getSize:(q)=>J(q),indexAtOffset:(q)=>Q(q),getTotalSize:()=>j[K]??0,getTotal:()=>K,rebuild:(q)=>Z(q),isVariable:()=>!0}},e2=(J,$)=>{if(typeof J==="number")return E4(J,$);return b4(J,$)};function g0(J){let $=[],K=`${J}-item`,j=document.createElement("div");return j.className=K,{acquire(){if($.length>0)return $.pop();return j.cloneNode(!1)},release(Z){if(Z.className=K,Z.removeAttribute("style"),Z.removeAttribute("id"),Z.removeAttribute("role"),Z.removeAttribute("aria-selected"),Z.removeAttribute("aria-posinset"),Z.removeAttribute("aria-setsize"),Z.removeAttribute("data-index"),Z.removeAttribute("data-id"),Z.textContent="",$.length<100)$.push(Z)},get size(){return $.length},clear(){$.length=0}}}function c2(J){let $=J.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let K=0;K<$.length;K++)$[K].setAttribute("tabindex","-1")}function m0(J){if(typeof J==="string"){let $=document.querySelector(J);if(!$)throw Error(`[vlist] Container not found: ${J}`);return $}return J}function c0(J,$,K,j){let Z=K?`${$} ${$}--horizontal`:$,Q=K?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",q=K?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",V=' role="list"';if(j)V+=` aria-label="${j.replace(/"/g,"&quot;")}"`;if(K)V+=' aria-orientation="horizontal"';J.insertAdjacentHTML("beforeend",`<div class="${Z}"><div class="${$}-viewport" style="${Q}" tabindex="-1"><div class="${$}-content" style="${q}"${V}></div></div></div>`);let R=J.lastElementChild,D=R.firstElementChild,M=D.firstElementChild,z=document.createElement("div");return z.className=`${$}-live`,z.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",z.setAttribute("aria-live","polite"),z.setAttribute("aria-atomic","true"),z.setAttribute("role","status"),R.appendChild(z),{root:R,viewport:D,content:M,liveRegion:z}}function d0(J){let{state:$,viewport:K,isX:j,wheelEnabled:Z,onFrame:Q,onIdle:q}=J,V=J.idleTimeout||h2,R=J.scrollTarget??K,D=null,M=null;function z(){let H=j?K.scrollLeft:K.scrollTop;if(Math.abs(H-$.scrollPosition)<0.5)return;$.prevScrollPosition=$.scrollPosition,$.scrollPosition=H,$.scrollDirection=H>$.prevScrollPosition?1:H<$.prevScrollPosition?-1:0,Q(),X()}function I(H){let Y;if(j){if(Math.abs(H.deltaX)>Math.abs(H.deltaY))return;let G=K.scrollLeft,w=K.scrollWidth-K.clientWidth;if(Y=Math.max(0,Math.min(G+H.deltaY*r2,w)),Math.abs(Y-G)<1)return;H.preventDefault(),K.scrollLeft=Y}else{let G=K.scrollWidth>K.clientWidth;if(G&&Math.abs(H.deltaX)>Math.abs(H.deltaY))return;if(G&&H.deltaX!==0)H.preventDefault(),K.scrollLeft+=H.deltaX;let w=K.scrollTop,U=K.scrollHeight-K.clientHeight;if(Y=Math.max(0,Math.min(w+H.deltaY*r2,U)),Math.abs(Y-w)<1)return;H.preventDefault(),K.scrollTop=Y}$.prevScrollPosition=$.scrollPosition,$.scrollPosition=Y,$.scrollDirection=Y>$.prevScrollPosition?1:-1,Q(),X()}function X(){if(D!==null)clearTimeout(D);D=setTimeout(()=>{D=null,$.scrollDirection=0,q()},V)}function h(){if(M!==null)cancelAnimationFrame(M),M=null}function A(H,Y,G,w=n2,U){h();let b=$.scrollPosition,S=typeof H==="function"?H:()=>H,T=S();if(Math.abs(T-b)<1){if(G)G(T);else if(j)K.scrollLeft=T;else K.scrollTop=T;U?.();return}let g=performance.now();function u(p){T=S();let i=p-g,t=Math.min(i/Y,1),Z2=b+(T-b)*w(t);if(G)G(Z2);else if(j)K.scrollLeft=Z2;else K.scrollTop=Z2;if(!G)$.scrollPosition=Z2;if(Q(),t<1)M=requestAnimationFrame(u);else M=null,X(),U?.()}M=requestAnimationFrame(u)}return{attach(){if(R.addEventListener("scroll",z,{passive:!0}),Z)R.addEventListener("wheel",I,{passive:!1})},detach(){if(R.removeEventListener("scroll",z),Z)R.removeEventListener("wheel",I);if(h(),D!==null)clearTimeout(D),D=null},cancelScroll:h,smoothScrollTo:A}}function d2(J,$,K){if(J<$)return $;if(J>K)return K;return J}function l0(J){let{state:$,viewport:K,content:j,isX:Z,wheelEnabled:Q,onFrame:q,onIdle:V,mainAxisPadding:R}=J,D=J.idleTimeout||h2,M=J.runwayFactor??z0,z=J.wrap??null,I=z!==null,X=J.scrollTarget??K,h=0,A=0,H=0,Y=null,G=null;function w(){return Z?K.scrollLeft:K.scrollTop}function U(y){if(Z)K.scrollLeft=y;else K.scrollTop=y}function b(y){let f=I?y:d2(y,0,A);$.prevScrollPosition=$.scrollPosition,$.scrollPosition=f,$.scrollDirection=f>$.prevScrollPosition?1:f<$.prevScrollPosition?-1:0;let P=h/2;if(I){$.baseOffset=f-P,U(P);return}let v=d2(f-P,0,H);$.baseOffset=v,U(d2(f-v,0,h))}function S(y){b(y),q(),i()}function T(){let y=w(),f=$.baseOffset+y;if(Math.abs(f-$.scrollPosition)<0.5)return;if($.prevScrollPosition=$.scrollPosition,$.scrollPosition=f,$.scrollDirection=f>$.prevScrollPosition?1:f<$.prevScrollPosition?-1:0,g(y),I)u();q(),i()}function g(y){let f=h*C0,P=h*f0,v=h/2;if(I){if(y>=f&&y<=P)return;$.baseOffset=$.scrollPosition-v,U(v);return}if(H<=0)return;let m=$.baseOffset,B=y<f&&m>0,N=y>P&&m<H;if(!B&&!N)return;let l=$.scrollPosition,x=d2(l-v,0,H);if(x===m)return;$.baseOffset=x,U(d2(l-x,0,h))}function u(){let y=z.lapSize();if(y<=0)return;let f=$.scrollPosition-z.home(),P=Math.trunc(f/y);if(Math.abs(P)<z.thresholdLaps)return;let v=P*y;$.scrollPosition-=v,$.prevScrollPosition-=v,$.baseOffset-=v}function p(y){let f;if(Z)if(Math.abs(y.deltaX)>Math.abs(y.deltaY)){if(!I)return;f=y.deltaX}else f=y.deltaY;else{let B=K.scrollWidth>K.clientWidth;if(B&&Math.abs(y.deltaX)>Math.abs(y.deltaY))return;if(B&&y.deltaX!==0)y.preventDefault(),K.scrollLeft+=y.deltaX;f=y.deltaY}let P=$.scrollPosition,v=P+f*r2,m=I?v:d2(v,0,A);if(Math.abs(m-P)<1)return;if(y.preventDefault(),S(m),I)u()}function i(){if(Y!==null)clearTimeout(Y);Y=setTimeout(()=>{Y=null,$.scrollDirection=0,V()},D)}function t(){if(G!==null)cancelAnimationFrame(G),G=null}function Z2(y,f,P,v=n2,m){t();let B=$.scrollPosition,N=typeof y==="function"?y:()=>y,l=N();if(Math.abs(l-B)<1){S(l),m?.();return}let x=performance.now();function C(L){l=N();let c=Math.min((L-x)/f,1);if(b(B+(l-B)*v(c)),q(),c<1)G=requestAnimationFrame(C);else G=null,i(),m?.()}G=requestAnimationFrame(C)}function W2(y){let f=$.containerSize,P=y+R,v=f*M,m=I?v:Math.min(P,v);h=Math.max(0,m-f),A=Math.max(0,P-f),H=Math.max(0,P-m),$.totalSize=y,j.style[Z?"width":"height"]=m+"px",b($.scrollPosition)}return{attach(){if(X.addEventListener("scroll",T,{passive:!0}),Q)X.addEventListener("wheel",p,{passive:!1})},detach(){if(X.removeEventListener("scroll",T),Q)X.removeEventListener("wheel",p);if(t(),Y!==null)clearTimeout(Y),Y=null},cancelScroll:t,smoothScrollTo:Z2,setLogical:S,getLogical(){return $.scrollPosition},getMaxLogical(){return A},refresh:W2}}function F4(J,$){if(J.getTotal()<=0)return{index:0,offsetPx:0};let j=$<=0?0:$,Z=J.indexAtOffset(j),Q=j-J.getOffset(Z);return{index:Z,offsetPx:Q>0?Q:0}}function R4(J,$){let K=T4(J,$);return J.getOffset(K.index)+K.offsetPx}function T4(J,$){let K=J.getTotal();if(K<=0)return{index:0,offsetPx:0};let{index:j,offsetPx:Z}=$;if(j<0)return{index:0,offsetPx:0};if(j>K-1)j=K-1;while(Z>0&&j<K-1){let Q=J.getSize(j);if(Z<Q)break;Z-=Q,j++}while(Z<0&&j>0)j--,Z+=J.getSize(j);if(Z<0)Z=0;return{index:j,offsetPx:Z}}function r0(J){let{sizeCache:$,getPixel:K,setPixel:j,getContainerSize:Z}=J;function Q(){let V=$.getTotalSize()-Z();return V>0?V:0}function q(V){if(V<=0)return 0;let R=Q();return V>R?R:V}return{getLogical(){return F4($,K())},setLogical(V){j(q(R4($,V)))},getPixelEquivalent(){return K()},setPixelEquivalent(V){j(q(V))},getMaxPixelEquivalent:Q,scrollByPx(V){j(q(K()+V))}}}var s2=[],P4={calculate:s2,commit:s2,afterScroll:s2,idle:s2,resize:s2};function s0(J){if(J.length===0)return P4;let $=[],K=[],j=[],Z=[],Q=[];for(let q=0;q<J.length;q++){let V=J[q].hooks;if(V===void 0)continue;if(V.onCalculate!==void 0)$.push(V.onCalculate);if(V.onCommit!==void 0)K.push(V.onCommit);if(V.onAfterScroll!==void 0)j.push(V.onAfterScroll);if(V.onIdle!==void 0)Z.push(V.onIdle);if(V.onResize!==void 0)Q.push(V.onResize)}return{calculate:$,commit:K,afterScroll:j,idle:Z,resize:Q}}function o0(J,$){for(let K=0;K<J.length;K++)J[K]($)}function i0(J,$){for(let K=0;K<J.length;K++)J[K]($)}function Y0(J,$,K){for(let j=0;j<J.length;j++)J[j]($,K)}function a0(J){for(let $=0;$<J.length;$++)J[$]()}function n0(J,$,K){for(let j=0;j<J.length;j++)J[j]($,K)}function t0(J,$,K,j,Z,Q,q,V){let R=j!==0||Z!==0;return{prefix:J,selectedClass:`${J}-item--selected`,focusedClass:`${J}-item--focused`,placeholderClass:`${J}-item--placeholder`,replacedClass:`${J}-item--replaced`,translateProp:$?"translateX(":"translateY(",sizeProp:$?"width":"height",itemRole:"listitem",interactive:!1,startPadding:K,gap:q,hasCrossPad:R,crossStartProp:R?$?"top":"left":"",crossEndProp:R?$?"bottom":"right":"",crossStartVal:R?j+"px":"",crossEndVal:R?Z+"px":"",oddClass:Q,emitter:V??null,indexMap:null,ariaTotalFn:null}}function k4(J,$,K,j,Z){if(J.containerSize<=0||J.totalItems===0)return J.clear(),!0;let{scrollPosition:Q,containerSize:q,totalItems:V}=J,R=Z??0;J.totalSize=$.getTotalSize();let D=$.indexAtOffset(R>0?Math.max(0,Q-R):Q),M=$.indexAtOffset(Q+q);if(M<V-1)M++;D=Math.max(0,D),M=Math.min(V-1,Math.max(0,M));let z=Math.max(0,D-K),I=Math.min(V-1,M+K),X=Math.ceil(q/1)+K*2+10,h=I-z+1,A=Math.min(h,J.capacity,X);if(z===J.prevRangeStart&&I===J.prevRangeEnd&&!J.renderPending)return!1;J.visibleCount=A,J.startIndex=z;for(let H=0;H<A;H++){let Y=z+H;J.visibleIndices[H]=Y,J.visibleOffsets[H]=$.getOffset(Y),J.visibleSizes[H]=$.getSize(Y)}return o0(j.calculate,J),J.prevRangeStart=z,J.prevRangeEnd=I,J.renderPending=!1,!0}var w2={selected:!1,focused:!1};function y4(J,$,K){for(let j=0;j<$;j++)if(J[j]===K)return!0;return!1}function w4(J,$){if($<=1)return!0;let K=J[0];for(let j=1;j<$;j++){let Z=J[j];if(Z!==K+1)return!1;K=Z}return!0}function z4(J,$,K,j,Z,Q,q,V,R,D){let M=R?null:Z(),z=J.visibleCount,I=J.visibleIndices,X=q.ariaTotalFn?q.ariaTotalFn():J.totalItems,h=q.interactive?String(X):"",A=q.interactive&&X!==J.prevAriaTotal,H=null,Y=q.indexMap;for(let G=0;G<z;G++){let w=I[G],U=Y?Y(w):w,b=J.visibleOffsets[G],S=J.visibleSizes[G],T=R?R(w):M[w];if(D)D(U,w2);else w2.selected=!1,w2.focused=!1;let g=Q.get(w),u=g;if(g===void 0){let p=$.acquire();if(T!==void 0){let Z2;try{Z2=j(T,U,w2)}catch(W2){if(q.emitter)q.emitter.emit("error",{error:W2 instanceof Error?W2:Error(String(W2)),context:`template:render:${U}`});$.release(p);continue}if(typeof Z2==="string")p.innerHTML=Z2;else p.textContent="",p.appendChild(Z2);c2(p)}if(p.setAttribute("role",q.itemRole),p.setAttribute("data-index",String(U)),q.interactive)p.id=q.prefix+"-item-"+w,p.setAttribute("aria-posinset",String(U+1)),p.setAttribute("aria-setsize",h);if(T!==void 0){let Z2=String(T.id);if(p.setAttribute("data-id",Z2),Z2.startsWith(C2))p.classList.add(q.placeholderClass)}if(q.hasCrossPad)p.style.setProperty(q.crossStartProp,q.crossStartVal),p.style.setProperty(q.crossEndProp,q.crossEndVal);if(D){if(p.classList.toggle(q.selectedClass,w2.selected),p.classList.toggle(q.focusedClass,w2.focused),w2.selected)p.setAttribute("aria-selected","true");else p.removeAttribute("aria-selected");p._lastSelected=w2.selected,p._lastFocused=w2.focused}if(q.oddClass)p.classList.toggle(q.oddClass,(w&1)===1);let i=b-J.baseOffset+q.startPadding;p.style.transform=q.translateProp+i+"px)",p._lastOffset=i;let t=S-q.gap;if(p.style[q.sizeProp]=t+"px",p._lastSize=t,p._lastItem=T,Q.set(w,p),H===null)H=document.createDocumentFragment();H.appendChild(p)}else{if(A)g.setAttribute("aria-setsize",h);if(T!==void 0&&u._lastItem!==T){let t=g.getAttribute("data-id"),Z2=String(T.id),W2;try{W2=j(T,U,w2)}catch(y){if(q.emitter)q.emitter.emit("error",{error:y instanceof Error?y:Error(String(y)),context:`template:render:${U}`});continue}if(typeof W2==="string")g.innerHTML=W2;else g.textContent="",g.appendChild(W2);if(c2(g),g.setAttribute("data-id",Z2),u._lastItem=T,t!==Z2){let y=t!==null&&t.startsWith(C2),f=Z2.startsWith(C2);if(y!==f)g.classList.toggle(q.placeholderClass,f);if(y&&!f)g.classList.add(q.replacedClass),setTimeout(()=>{g.classList.remove(q.replacedClass)},300)}}if(D){if(u._lastSelected!==w2.selected){if(g.classList.toggle(q.selectedClass,w2.selected),w2.selected)g.setAttribute("aria-selected","true");else g.removeAttribute("aria-selected");u._lastSelected=w2.selected}if(u._lastFocused!==w2.focused)g.classList.toggle(q.focusedClass,w2.focused),u._lastFocused=w2.focused}let p=b-J.baseOffset+q.startPadding;if(u._lastOffset!==p)g.style.transform=q.translateProp+p+"px)",u._lastOffset=p;let i=S-q.gap;if(u._lastSize!==i)g.style[q.sizeProp]=i+"px",u._lastSize=i}}if(H!==null)K.appendChild(H);if(z>0&&w4(I,z)){let G=I[0],w=I[z-1];for(let[U,b]of Q)if(U<G||U>w)b.remove(),$.release(b),Q.delete(U)}else for(let[G,w]of Q)if(!y4(I,z,G))w.remove(),$.release(w),Q.delete(G);if(q.interactive)J.prevAriaTotal=J.totalItems;i0(V.commit,J)}function V0(J,$,K,j,Z,Q,q,V,R,D,M,z){if(k4(J,$,K,D,R.startPadding))z4(J,j,Z,Q,q,V,R,D,M,z)}var N0=()=>{let J={},$=(Q,q)=>{if(!J[Q])J[Q]=new Set;return J[Q].add(q),()=>K(Q,q)},K=(Q,q)=>{J[Q]?.delete(q)};return{on:$,off:K,emit:(Q,q)=>{J[Q]?.forEach((V)=>{try{V(q)}catch(R){console.error(`[vlist] Error in event handler for "${String(Q)}":`,R)}})},clear:(Q)=>{if(Q)delete J[Q];else for(let q in J)delete J[q]}}};var e0=2,$4=(J=0)=>({velocity:0,sampleCount:0}),J4=(J,$)=>{let K=performance.now(),j=J._lt??K,Z=J._lp??$,Q=K-j;if(J._lp=$,J._lt=K,Q===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(Q>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs($-Z)/Q,J.sampleCount=Math.min(J.sampleCount+1,5),J};function v4(J){let{item:$}=J;if($.height!==void 0&&typeof $.height==="number"){if(!Number.isFinite($.height)||$.height<=0)throw Error(`vlist: item.height must be a positive number, got ${$.height}`)}if($.width!==void 0&&typeof $.width==="number"){if(!Number.isFinite($.width)||$.width<=0)throw Error(`vlist: item.width must be a positive number, got ${$.width}`)}if($.estimatedHeight!==void 0){if(!Number.isFinite($.estimatedHeight)||$.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${$.estimatedHeight}`)}if($.estimatedWidth!==void 0){if(!Number.isFinite($.estimatedWidth)||$.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${$.estimatedWidth}`)}if($.gap!==void 0){if(typeof $.gap!=="number"||!Number.isFinite($.gap)||$.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${$.gap}`)}if(J.overscan!==void 0){if(typeof J.overscan!=="number"||!Number.isFinite(J.overscan)||J.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${J.overscan}`)}if(J.scroll?.runway!==void 0){if(typeof J.scroll.runway!=="number"||!Number.isFinite(J.scroll.runway)||J.scroll.runway<=0)throw Error(`vlist: scroll.runway must be a positive number, got ${J.scroll.runway}`)}}function C4(J,$){let K=J==="horizontal"?"x":"y";if($.some((Z)=>Z.name==="grid"))return{primary:K,cross:K==="x"?"y":"x"};return{primary:K}}function f4(J,$){let K=C4(J.orientation,$),j=K.primary==="x",Z=h0(J.padding);return{axis:K,hasCrossAxis:K.cross!==void 0,overscan:J.overscan??i2,reverse:J.reverse??!1,classPrefix:J.classPrefix??F0,mainAxisPadding:p0(Z,j),crossAxisPadding:u0(Z,j),startPadding:j?Z.left:Z.top,endPadding:j?Z.right:Z.bottom,crossPadStart:j?Z.top:Z.left,crossPadEnd:j?Z.bottom:Z.right,striped:J.item.striped||!1,gap:J.item.gap??0}}function I4(J,$){if($)return J.item.width??J.item.estimatedWidth??100;return J.item.height??J.item.estimatedHeight??40}function S4(J){let $=[...J];return $.sort((K,j)=>(K.priority??50)-(j.priority??50)),$}function h4(J){let $=new Set;for(let K of J){if($.has(K.name))throw Error(`[vlist] Duplicate plugin: ${K.name}`);$.add(K.name)}for(let K of J)if(K.conflicts){for(let j of K.conflicts)if($.has(j))throw Error(`[vlist] Plugin "${K.name}" conflicts with "${j}"`)}}function Q4(J,$=[]){v4(J);let K=f4(J,$),j=K.axis.primary==="x",Z=J.scroll?.mode==="bounded",Q=I4(J,j),q=K.gap,V=q>0?typeof Q==="function"?(a)=>Q(a)+q:Q+q:Q,R=typeof Q==="number"?Q:20,D=J.items?.length??0,M=K.striped?`${K.classPrefix}-item--odd`:"",z=N0(),I=t0(K.classPrefix,j,K.startPadding,K.crossPadStart,K.crossPadEnd,M,q,z),X=$.length>0?S4($):$;if($.length>0)h4(X);let h=m0(J.container),A=c0(h,K.classPrefix,j,J.ariaLabel);if(J.scroll?.scrollbar==="none")A.viewport.classList.add(`${K.classPrefix}-viewport--no-scrollbar`);if(J.scroll?.gutter==="stable")A.viewport.classList.add(`${K.classPrefix}-viewport--gutter-stable`);let Y=e2(V,D);if(q>0){let a=Y.getTotalSize;Y.getTotalSize=()=>{let F=a();return F>0?F-q:0}}let G=g0(K.classPrefix),w=Math.ceil(4096/R)+K.overscan*2+8,U=x0(w);U.totalItems=D;let b=J.items??[],S=()=>b,T=new Map,g=$4(),u={velocity:0,reliable:!1},p={range:{start:0,end:-1}},i={scrollPosition:0,direction:"down"},t={scrollPosition:0},Z2=-1,W2=-1,y=-1,f=null,P=s0(X),v=new Map,m=[],B=[],N=[],l=null,x=null,C=null,L=null,c=null,$2=null,n=null,_=null,k=null,E=null,O=null,d=!1,Q2=!1,O2=null,Y2=0,K2=0,V2=null,B2=null,X2=null,j2=null,W=null,o=null,e=null,N2=null;U.containerSize=j?A.viewport.clientWidth:A.viewport.clientHeight,U.crossSize=j?A.viewport.clientHeight:A.viewport.clientWidth;let b2=r0({sizeCache:Y,getPixel:()=>x?x():U.scrollPosition,setPixel:(a)=>{if(C)C(a);else if(j)A.viewport.scrollLeft=a;else A.viewport.scrollTop=a},getContainerSize:()=>U.containerSize});if($.length>0){let a={dom:A,sizeCache:Y,scroll:b2,pool:G,config:K,emitter:z,template:J.item.template,registerMethod(F,M2){v.set(F,M2)},getMethod(F){return v.get(F)},registerClickHandler(F){m.push(F)},registerKeydownHandler(F){B.push(F)},registerDestroyHandler(F){N.push(F)},enableListboxRole(){let F=A.content.getAttribute("role");if(!F||F==="list")A.content.setAttribute("role","listbox"),A.content.setAttribute("tabindex","0");I.itemRole="option",I.interactive=!0},setSizeConfig(F){let M2=e2(F,U.totalItems),P2=v.get("_setSizeCacheBase");if(P2){let k2=Y.rebuild;Object.assign(Y,M2),Y.rebuild=k2,P2(M2.rebuild)}else Object.assign(Y,M2)},setScrollFns(F,M2){x=F,C=M2},setBoundedWrap(F){N2=F},cancelScroll(){r?.cancelScroll()},setVirtualTotalFn(F){l=F,I.ariaTotalFn=F},setIndexMapFn(F){I.indexMap=F},getItems:S,getItem(F){return $2?$2(F):b[F]},getState(){return U},rebuildSizeCache(){Y.rebuild(U.totalItems)},updateContentSize(F){if(e){e.refresh(F);return}U.totalSize=F,A.content.style[j?"width":"height"]=F+K.mainAxisPadding+"px"},setRenderFn(F,M2){L=F,c=M2},renderIfNeeded(){L2()},forceRender(){s()},setGetItemFn(F){$2=F},setItemStateFn(F){n=F},getItemStateFn(){return n},get rawSizeSpec(){return Q},scrollTo(F){if(C)C(F);else if(j)A.viewport.scrollLeft=F;else A.viewport.scrollTop=F},smoothScrollTo(F,M2,P2,k2){if(j2)j2(F,M2,C??void 0,P2,k2);else a.scrollTo(typeof F==="function"?F():F)},disableDefaultScroll(){d=!0},disableDefaultResize(){Q2=!0},setScrollTarget(F){O2=F},setScrollToPosFn(F){W=F},setScrollToIndexFn(F){o=F},onScrollFrame:J2,onScrollIdle:q2,removeItemById(F){if(_)return _(F);let M2=b.findIndex((P2)=>P2.id===F);if(M2===-1)return-1;return b.splice(M2,1),U.totalItems=b.length,Y.rebuild(U.totalItems),D2(),M2},insertItemAt(F,M2){if(k){k(F,M2);return}b.splice(M2,0,F),U.totalItems=b.length,Y.rebuild(U.totalItems),D2()},setRemoveItemFn(F){_=F},setInsertItemFn(F){k=F},setUpdateItemFn(F){E=F},setGetIndexByIdFn(F){O=F},getRenderedElement(F){let M2=v.get("_getRenderedElement");if(M2)return M2(F);return T.get(F)??null},setNavConfig(F){if(F.ud!==void 0)Y2=F.ud;if(F.lr!==void 0)K2=F.lr;if(F.scrollIndex)V2=F.scrollIndex;if(F.navigate)B2=F.navigate;if(F.total)X2=F.total},getNavConfig:(()=>{let F={ud:0,lr:0,scrollIndex:null,navigate:null,total:null};return()=>{return F.ud=Y2,F.lr=K2,F.scrollIndex=V2,F.navigate=B2,F.total=X2,F}})()};for(let F of X)if(F.setup)try{F.setup(a)}catch(M2){z.emit("error",{error:M2 instanceof Error?M2:Error(String(M2)),context:`plugin:setup:${F.name}`})}}let H2=K.classPrefix+"--scrolling",G2=!1,_2=J.scroll?.idleTimeout??h2;function A2(){if(i.scrollPosition=b2.getPixelEquivalent(),j)i.direction=U.scrollDirection>0?"right":"left";else i.direction=U.scrollDirection>0?"down":"up";if(z.emit("scroll",i),J4(g,U.scrollPosition),u.velocity=g.velocity,u.reliable=g.sampleCount>=e0,z.emit("velocity:change",u),U.startIndex!==Z2||U.prevRangeEnd!==W2)Z2=U.startIndex,W2=U.prevRangeEnd,p.range.start=U.startIndex,p.range.end=U.prevRangeEnd,z.emit("range:change",p)}let R2=!1;function D2(){if(L)return;let a=Y.getTotalSize();if(e){e.refresh(a);return}if(A.content.style[j?"width":"height"]=a+K.mainAxisPadding+"px",!R2&&a>q0)R2=!0,z.emit("error",{error:Error(`Content size (${a}px) exceeds browser limit (${q0}px). Enable bounded scroll (scroll: { mode: "bounded" }) for large datasets.`),context:"content:size:overflow"})}function L2(){if(L)L();else V0(U,Y,K.overscan,G,A.content,J.item.template,S,T,I,P,$2,n)}function J2(){if(!G2)G2=!0,A.root.classList.add(H2);if(L2(),Y0(P.afterScroll,U.scrollPosition,U.scrollDirection),U.scrollPosition!==y)y=U.scrollPosition,A2()}function q2(){if(G2)G2=!1,A.root.classList.remove(H2);U.scrollDirection=0,a0(P.idle),u.velocity=0,u.reliable=!1,z.emit("velocity:change",u),t.scrollPosition=b2.getPixelEquivalent(),z.emit("scroll:idle",t)}function s(){if(U.renderPending=!0,c)c();else V0(U,Y,K.overscan,G,A.content,J.item.template,S,T,I,P,$2,n);if(Y0(P.afterScroll,U.scrollPosition,U.scrollDirection),U.scrollPosition!==y){if(y=U.scrollPosition,A2(),f!==null)clearTimeout(f);f=setTimeout(q2,_2)}}let E2=d?!1:J.scroll?.wheel!==!1,r;if(d&&(Z||N2))throw Error(`vlist: page() is not compatible with ${N2?"the carousel plugin":'scroll: { mode: "bounded" }'} — bounded page-mode scrolling is not implemented yet.`);if(Z||N2)e=l0({state:U,viewport:A.viewport,content:A.content,isX:j,wheelEnabled:E2,idleTimeout:J.scroll?.idleTimeout??h2,...O2?{scrollTarget:O2}:{},mainAxisPadding:K.mainAxisPadding,...J.scroll?.runway!==void 0?{runwayFactor:Math.max(v0,J.scroll.runway)}:{},...N2?{wrap:N2}:{},onFrame:J2,onIdle:q2}),r=e,x=()=>U.scrollPosition,C=(a)=>e.setLogical(a);else r=d0({state:U,viewport:A.viewport,isX:j,wheelEnabled:E2,idleTimeout:J.scroll?.idleTimeout??h2,...O2?{scrollTarget:O2}:{},onFrame:J2,onIdle:q2});j2=r.smoothScrollTo;function U2(a){let M2=a.target.closest("[data-index]");if(!M2)return null;let P2=parseInt(M2.getAttribute("data-index"),10);if(Number.isNaN(P2))return null;let k2=v.get("_layoutToDataIndex"),v2;if(k2){let f2=k2(P2);if(f2<0)return null;let l2=v.get("_getItem");v2=l2?l2(f2):$2?$2(f2):b[f2]}else v2=$2?$2(P2):b[P2];if(v2===void 0)return null;return{item:v2,index:P2}}function T2(a){for(let M2=0;M2<m.length;M2++)m[M2](a);let F=U2(a);if(F)z.emit("item:click",{item:F.item,index:F.index,event:a})}function F2(a){let F=U2(a);if(F)z.emit("item:dblclick",{item:F.item,index:F.index,event:a})}function y2(a){let F=U2(a);if(F)z.emit("item:contextmenu",{item:F.item,index:F.index,event:a})}function g2(a){let F=a.target?.tagName;if((F==="INPUT"||F==="TEXTAREA"||F==="SELECT")&&!((a.ctrlKey||a.metaKey)&&(a.key==="f"||a.key==="F")))return;for(let M2=0;M2<B.length;M2++)B[M2](a)}if(A.content.addEventListener("click",T2),A.content.addEventListener("dblclick",F2),A.content.addEventListener("contextmenu",y2),B.length>0)A.root.addEventListener("keydown",g2);let z2=null;if(!Q2)setTimeout(()=>{if(U.destroyed)return;z2=new ResizeObserver((F)=>{for(let M2 of F){let{width:P2,height:k2}=M2.contentRect,v2=j?P2:k2,f2=j?k2:P2;if(Math.abs(v2-U.containerSize)<1&&Math.abs(f2-U.crossSize)<1)continue;if(U.containerSize=v2,U.crossSize=f2,U.resizeCapacity(v2,R,K.overscan),e)e.refresh(Y.getTotalSize());s(),n0(P.resize,P2,k2),z.emit("resize",{width:P2,height:k2})}}),z2.observe(A.viewport)},0);U.resizeCapacity(U.containerSize,R,K.overscan),D2(),U.initialized=!0;let S2=null;if(J.defer)S2=requestAnimationFrame(()=>{if(S2=null,!U.destroyed)L2()});else L2();if(!d)r.attach();let m2={get element(){return A.root},get items(){return b},get total(){return l?l():b.length},setItems(a){b=[...a],U.totalItems=b.length,Y.rebuild(U.totalItems),D2(),s()},appendItems(a){b.push(...a),U.totalItems=b.length,Y.rebuild(U.totalItems),D2(),s()},prependItems(a){b.unshift(...a),U.totalItems=b.length,Y.rebuild(U.totalItems),D2(),s()},updateItem(a,F){if(E){if(!E(a,F))return}else{let M2=b.findIndex((P2)=>P2.id===a);if(M2===-1)return;b[M2]={...b[M2],...F}}s()},insertItem(a,F){if(k)k(a,F??U.totalItems);else{if(F===void 0)b.push(a);else b.splice(F,0,a);U.totalItems=b.length,Y.rebuild(U.totalItems),D2()}s()},removeItem(a){if(_){if(_(a)<0)return}else{let F=b.findIndex((M2)=>M2.id===a);if(F===-1)return;b.splice(F,1),U.totalItems=b.length,Y.rebuild(U.totalItems),D2()}s()},removeItems(a){if(_){let k2=0;for(let v2 of a)if(_(v2)>=0)k2++;if(k2>0)s();return k2}let F=new Set(a),M2=b.length;b=b.filter((k2)=>!F.has(k2.id));let P2=M2-b.length;if(P2>0)U.totalItems=b.length,Y.rebuild(U.totalItems),D2(),U.renderPending=!0,L2();return P2},getItemAt(a){if(I.indexMap)return b[a];return $2?$2(a):b[a]},getIndexById(a){if(O)return O(a);return b.findIndex((F)=>F.id===a)},scrollToIndex(a,F="start"){let M2=l?l():b.length;if(M2===0)return;let P2=Math.max(0,Math.min(a,M2-1)),k2=typeof F==="string"?F:F.align??"start",v2=typeof F==="object"?F.behavior:void 0,f2=typeof F==="object"?F.duration:void 0,l2=typeof F==="object"?F.easing:void 0;if(o&&o(P2,k2,v2,f2,l2)!==!1)return;let K0=Y.getOffset(P2),E0=Y.getSize(P2),o2=U.containerSize,H4=Y.getTotalSize(),b0=K.mainAxisPadding,L4=Math.max(0,H4+b0-o2),I2;if(W)I2=W(P2,Y,o2,M2,k2);else{let O4=K.startPadding;switch(k2){case"center":I2=O4+K0-(o2-E0)/2;break;case"end":I2=K0+E0+b0-o2;break;default:I2=K0}I2=Math.max(0,Math.min(I2,L4))}if(v2==="smooth")r.smoothScrollTo(I2,f2??w0,C??void 0,l2);else if(C)C(I2);else if(j)A.viewport.scrollLeft=I2;else A.viewport.scrollTop=I2},getScrollPosition(){return b2.getPixelEquivalent()},on:z.on.bind(z),off:z.off.bind(z),destroy(){if(U.destroyed)return;if(U.destroyed=!0,G2)G2=!1,A.root.classList.remove(H2);if(S2!==null)cancelAnimationFrame(S2),S2=null;if(f!==null)clearTimeout(f),f=null;r.detach(),z2?.disconnect(),A.content.removeEventListener("click",T2),A.content.removeEventListener("dblclick",F2),A.content.removeEventListener("contextmenu",y2),A.root.removeEventListener("keydown",g2);let a=[];for(let F of N)try{F()}catch(M2){a.push(M2 instanceof Error?M2:Error(String(M2)))}for(let F of X)if(F.destroy)try{F.destroy()}catch(M2){a.push(M2 instanceof Error?M2:Error(String(M2)))}for(let[,F]of T)F.remove();if(T.clear(),G.clear(),A.root.remove(),z.emit("destroy",void 0),z.clear(),a.length>0)for(let F of a)console.error("vlist: error during destroy:",F)}};for(let[a,F]of v)m2[a]=F;return m2}var $0=(J)=>J==null?0:typeof J==="function"?J():J;function W0(J){let $=J?.scrollPadding,K,j;return{name:"page",priority:5,setup(Z){let{dom:Q,sizeCache:q,config:V,emitter:R}=Z,D=V.axis.primary==="x",M=window,z=Z.getState();if(Z.disableDefaultScroll(),Z.disableDefaultResize(),Q.root.style.overflow="visible",Q.root.style.height="auto",D)Q.viewport.style.overflowX="visible",Q.viewport.style.overflowY="visible";else Q.viewport.style.overflow="visible";Q.viewport.classList.remove(`${V.classPrefix}-viewport--custom-scrollbar`),Z.setScrollFns(()=>{let Y=Q.viewport.getBoundingClientRect();return Math.max(0,D?-Y.left:-Y.top)},(Y)=>{let G=Q.viewport.getBoundingClientRect(),w=(D?G.left+M.scrollX:G.top+M.scrollY)+Y;if(D)M.scrollTo({left:w,top:M.scrollY,behavior:"instant"});else M.scrollTo({left:M.scrollX,top:w,behavior:"instant"})}),z.containerSize=D?M.innerWidth:M.innerHeight,z.crossSize=D?M.innerHeight:M.innerWidth;let I=null,X=()=>{let Y=Q.viewport.getBoundingClientRect(),G=Math.max(0,D?-Y.left:-Y.top);if(z.prevScrollPosition=z.scrollPosition,z.scrollPosition=G,z.scrollDirection=G>z.prevScrollPosition?1:G<z.prevScrollPosition?-1:0,Z.onScrollFrame(),I!==null)clearTimeout(I);I=setTimeout(()=>{I=null,Z.onScrollIdle()},150)};M.addEventListener("scroll",X,{passive:!0}),j=()=>M.removeEventListener("scroll",X);let{innerWidth:h,innerHeight:A}=M,H=()=>{let{innerWidth:Y,innerHeight:G}=M;if((D?Math.abs(Y-h):Math.abs(G-A))<1)return;h=Y,A=G,z.containerSize=D?Y:G,z.crossSize=D?G:Y,Z.forceRender(),R.emit("resize",{width:Y,height:G})};if(M.addEventListener("resize",H),K=()=>M.removeEventListener("resize",H),$)Z.setScrollToPosFn((Y,G,w,U,b)=>{let S=$0(D?$.left:$.top),T=$0(D?$.right:$.bottom);if(U===0)return 0;let g=Math.max(0,Math.min(Y,U-1)),u=G.getOffset(g),p=G.getSize(g),i=G.getTotalSize(),t=Math.max(0,i-w+T),Z2;switch(b){case"center":Z2=u-S-(w-S-T-p)/2;break;case"end":Z2=u-w+p+T;break;default:Z2=u-S}return Math.max(-S,Math.min(Z2,t))}),Z.registerMethod("_scrollItemIntoView",(Y)=>{let G=D?M.innerWidth:M.innerHeight,w=$0(D?$.left:$.top),U=$0(D?$.right:$.bottom),b=Q.viewport.getBoundingClientRect(),S=D?M.scrollX:M.scrollY,T=D?b.left:b.top,g=T+S,u=q.getOffset(Y),p=q.getSize(Y),i=T+u,t=G-U,Z2=S;if(i<w)Z2=g+u-w;else if(i+p>t)Z2=g+u+p-t;if(Z2!==S)if(D)M.scrollTo({left:Z2,top:M.scrollY,behavior:"instant"});else M.scrollTo({left:M.scrollX,top:Z2,behavior:"instant"})});Z.registerDestroyHandler(()=>{if(j?.(),K?.(),I!==null)clearTimeout(I)})},destroy(){j?.(),K?.(),j=void 0,K=void 0}}}function B0(J){let $=J?.gap??0,K=null,j=null,Z,Q,q,V,R=new Map,D=new WeakMap,M=0,z=!1,I=!1,X=!1,h=2;function A(U){return R.get(U)??V}function H(){return Math.max(0,j.sizeCache.getTotalSize()+j.config.mainAxisPadding-Z.containerSize)}function Y(){let U=H();return U>0&&Z.scrollPosition>=U-h}function G(){let U=H();if(U>Z.scrollPosition)j.scrollTo(U)}function w(){j.updateContentSize(j.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(U){if(j=U,Z=U.getState(),Q=U.config.axis.primary==="x",q=Q?"width":"height",$===0)$=U.config.gap;if(V=typeof U.rawSizeSpec==="function"?U.rawSizeSpec(0)+$:U.rawSizeSpec+$,U.setSizeConfig(A),$>0){let T=U.sizeCache.getTotalSize;U.sizeCache.getTotalSize=()=>{let g=T();return g>0?g-$:0}}K=new ResizeObserver((T)=>{if(Z.destroyed||!j)return;let g=!1,u=U.sizeCache.indexAtOffset(Z.scrollPosition);for(let W2 of T){let y=W2.target,f=D.get(y);if(f===void 0)continue;if(y.getAttribute("data-index")!==String(f)){K.unobserve(y);continue}if(R.has(f))continue;let P=W2.borderBoxSize[0];if(!P)continue;let v=Q?P.inlineSize:P.blockSize;if(v<=0)continue;let m=v+$,B=V;if(R.set(f,m),g=!0,f<u&&m!==B)M+=m-B;K.unobserve(y),y.style[q]=`${v}px`}if(!g)return;let p=Y();if(U.rebuildSizeCache(),M)U.scrollTo(Z.scrollPosition+M),M=0;let i=Z.scrollDirection!==0,t=Z.totalItems>0&&Z.prevRangeEnd>=Z.totalItems-1,Z2=I&&!X;if(Z2||p||t||!i){if(w(),z=!1,Z2||p)G()}else z=!0;U.forceRender()}),U.setScrollToIndexFn((T,g,u,p,i)=>{let t=T>=Z.totalItems-1&&g==="end";if(I=t,X=!1,!t)return!1;let Z2=U.config.mainAxisPadding,W2=()=>{let y=U.sizeCache.getTotalSize();return Math.max(0,y+Z2-Z.containerSize)};if(u==="smooth")X=!0,U.smoothScrollTo(W2,p??300,i,()=>{X=!1});else U.scrollTo(W2())});let b=()=>{I=!1},S=U.dom.viewport;S.addEventListener("wheel",b,{passive:!0}),S.addEventListener("touchstart",b,{passive:!0}),U.registerDestroyHandler(()=>{S.removeEventListener("wheel",b),S.removeEventListener("touchstart",b)}),U.registerMethod("isMeasured",(T)=>R.has(T)),U.registerMethod("setMeasuredSize",(T,g)=>{R.set(T,g)}),U.registerMethod("getMeasuredCount",()=>R.size),U.registerDestroyHandler(()=>{if(K)K.disconnect(),K=null})},hooks:{onCommit(U){if(!K||!j)return;for(let b=0;b<U.visibleCount;b++){let S=U.visibleIndices[b];if(R.has(S))continue;let T=j.getRenderedElement(S);if(!T)continue;T.style[q]="",D.set(T,S),K.observe(T)}},onIdle(){if(!j||!z)return;let U=Y();if(w(),z=!1,U)G(),j.forceRender()}},destroy(){if(K)K.disconnect(),K=null;R.clear(),I=!1,X=!1,j=null}}}var j4=(J={})=>{let{chunkSize:$=100,maxCachedItems:K=5000,evictionBuffer:j=200,onEvict:Z}=J,Q=new Map,q=0,V=0,R=(P)=>{let v=Q.get(P);if(!v)v={items:Array($),count:0,lastAccess:Date.now()},Q.set(P,v);else v.lastAccess=Date.now();return v},D=(P)=>{return Math.floor(P/$)},M=(P)=>{return P%$},z=()=>q,I=(P)=>{q=P},X=(P)=>{if(P<0||P>=q)return;let v=D(P),m=Q.get(v);if(!m)return;return m.items[M(P)]},h=(P)=>{if(P<0||P>=q)return!1;let v=D(P),m=Q.get(v);if(!m)return!1;return m.items[M(P)]!==void 0},A=(P,v)=>{let m=D(P),B=R(m),N=M(P),l=B.items[N]===void 0;if(B.items[N]=v,l)B.count++,V++;if(P>=q)q=P+1},H=(P,v)=>{for(let m=0;m<v.length;m++){let B=v[m];if(B!==void 0)A(P+m,B)}},Y=(P,v)=>{if(P<0||P>q)return;let m=D(P),B=Array.from(Q.keys()).filter((L)=>L>=m).sort((L,c)=>L-c),N=[];for(let L of B){let c=Q.get(L),$2=L*$;for(let n=0;n<$;n++){if(c.items[n]===void 0)continue;let _=$2+n;if(_<P)continue;N.push({oldIndex:_,item:c.items[n]})}}for(let{oldIndex:L}of N){let c=D(L),$2=Q.get(c);if(!$2)continue;let n=M(L);if($2.items[n]!==void 0){if($2.items[n]=void 0,$2.count--,V--,$2.count===0)Q.delete(c)}}q++;for(let{oldIndex:L,item:c}of N){let $2=L+1,n=D($2),_=R(n),k=M($2);_.items[k]=c,_.count++,V++}let l=D(P),x=R(l),C=M(P);x.items[C]=v,x.count++,V++},G=(P)=>{if(P<0||P>=q)return!1;let v=D(P),m=Q.get(v),B=M(P);if(!(m!==void 0&&m.items[B]!==void 0))return!1;let l=v,x=Array.from(Q.keys()).filter((L)=>L>=l).sort((L,c)=>L-c),C=[];for(let L of x){let c=Q.get(L),$2=L*$;for(let n=0;n<$;n++){if(c.items[n]===void 0)continue;let _=$2+n;if(_<=P)continue;C.push({oldIndex:_,item:c.items[n]})}}if(m.items[B]=void 0,m.count--,V--,m.count===0)Q.delete(v);for(let{oldIndex:L}of C){let c=D(L),$2=Q.get(c);if(!$2)continue;let n=M(L);if($2.items[n]!==void 0){if($2.items[n]=void 0,$2.count--,V--,$2.count===0)Q.delete(c)}}for(let{oldIndex:L,item:c}of C){let $2=L-1,n=D($2),_=R(n),k=M($2);_.items[k]=c,_.count++,V++}return q--,!0},w=(P,v)=>{let m=[];for(let B=P;B<=v&&B<q;B++)m.push(X(B));return m},U=(P,v)=>{for(let m=P;m<=v&&m<q;m++)if(!h(m))return!1;return!0},b=()=>{let P=[],v=null,m=Array.from(Q.keys()).sort((B,N)=>B-N);for(let B of m){let N=Q.get(B);if(!N)continue;let l=B*$;for(let x=0;x<$;x++){let C=l+x;if(C>=q)break;if(N.items[x]!==void 0)if(v===null)v={start:C,end:C};else if(C===v.end+1)v.end=C;else P.push(v),v={start:C,end:C};else if(v!==null)P.push(v),v=null}}if(v!==null)P.push(v);return P},S=(P,v)=>{let m=[],B=null;for(let N=P;N<=v&&N<q;N++)if(!h(N))if(B===null)B={start:N,end:N};else B.end=N;else if(B!==null)m.push(B),B=null;if(B!==null)m.push(B);return m},T=(P)=>{return Q.has(P)},g=(P)=>{let v=Q.get(P);if(!v)return!1;let m=P*$,B=Math.min($,q-m);return v.count>=B},u=(P)=>{let v=Q.get(P);if(v)v.lastAccess=Date.now()},p=(P,v)=>{if(P>v||Q.size===0)return;let m=Date.now(),B=D(Math.max(0,P)),N=D(Math.min(q-1,v));for(let l=B;l<=N;l++){let x=Q.get(l);if(x)x.lastAccess=m}},i=(P,v)=>{if(V<=K)return 0;let m=Math.max(0,P-j),B=Math.min(q-1,v+j),N=D(m),l=D(B),x=0,C=[];for(let[L,c]of Q)if(L<N||L>l)x+=c.count,C.push(L),V-=c.count,Q.delete(L);if(x>0&&Z)Z(x,C);return x},t=()=>{if(V<=K)return 0;let P=Array.from(Q.entries()).sort(([,B],[,N])=>B.lastAccess-N.lastAccess),v=0,m=[];for(let[B,N]of P){if(V<=K)break;v+=N.count,V-=N.count,m.push(B),Q.delete(B)}if(v>0&&Z)Z(v,m);return v},Z2=()=>{return{totalItems:q,cachedItems:V,cachedChunks:Q.size,chunkSize:$,maxCachedItems:K,memoryEfficiency:q>0?1-V/q:1}},W2=()=>V,y=()=>{Q.clear(),V=0};return{chunkSize:$,maxCachedItems:K,getTotal:z,setTotal:I,get:X,has:h,set:A,setRange:H,insert:Y,delete:G,getRange:w,isRangeLoaded:U,getLoadedRanges:b,findUnloadedRanges:S,getChunkIndex:D,isChunkLoaded:T,isChunkFullyLoaded:g,touchChunk:u,touchChunksForRange:p,evictDistant:i,evictToLimit:t,getStats:Z2,getCachedCount:W2,clear:y,reset:()=>{y(),q=0}}};var K4=(J={})=>{let{maskCharacter:$=I0,maxSampleSize:K=S0}=J,j=[],Z=!1,Q=(M)=>{if(Z||M.length===0)return;let z=Math.min(M.length,K);for(let I=0;I<z;I++){let X=M[I];if(!X||typeof X!=="object")continue;let h={},A=!1;for(let[H,Y]of Object.entries(X)){if(H.startsWith("_")||H==="id")continue;h[H]=String(Y??"").length,A=!0}if(A)j.push(h)}Z=!0},q=()=>Z,V=(M)=>{let z={id:`${C2}${M}`,[U0]:!0,_index:M};if(j.length===0)return z.label=$.repeat(12),z;let I=j[M%j.length];for(let[X,h]of Object.entries(I))z[X]=$.repeat(Math.max(1,h));return z};return{analyzeStructure:Q,hasAnalyzedStructure:q,generate:V,generateRange:(M,z)=>{let I=[];for(let X=M;X<=z;X++)I.push(V(X));return I},clear:()=>{j=[],Z=!1}}},J0=(J)=>{if(!J||typeof J!=="object")return!1;return J[U0]===!0};var p4=50,Z4=(J={})=>{let{adapter:$,initialItems:K,initialTotal:j,storage:Z,placeholder:Q,pageSize:q=p4,maxConcurrent:V=0,onStateChange:R,onDataChange:D,onItemsLoaded:M,onItemsEvicted:z,onLoadError:I}=J,X=j4({...Z,onEvict:(j2,W)=>{z?.(j2),i(),p()}}),h=null,A=()=>{if(!h)h=K4(Q);return h},H=new Map,Y=!1,G,w=!0,U,b,S=[],T=0,g=new Map,u=()=>{for(let j2 of g.values())j2[1].abort();g.clear()},p=()=>{R?.(B())},i=()=>{D?.()},t=()=>{H.clear();let j2=X.getLoadedRanges();for(let W of j2)for(let o=W.start;o<=W.end;o++){let e=X.get(o);if(e&&!J0(e))H.set(e.id,o)}},Z2=(j2,W)=>{if(!J0(W))H.set(W.id,j2)},W2=(j2)=>{H.delete(j2)},y=(j2,W)=>{return`${j2}-${W}`},f=()=>X.getTotal(),P=()=>X.getCachedCount(),v=()=>Y,m=()=>w,B=()=>({total:X.getTotal(),cached:X.getCachedCount(),isLoading:Y,pendingRanges:S,error:G,hasMore:w,cursor:U}),N=()=>X,l=()=>A(),x=(j2)=>{let W=X.get(j2);if(W!==void 0)return W;if(j2>=0&&j2<X.getTotal())return A().generate(j2);return},C=(j2)=>{let W=H.get(j2);if(W===void 0)return;return X.get(W)},L=(j2)=>{return H.get(j2)??-1},c=(j2)=>{let W=X.get(j2);return W!==void 0&&!J0(W)},$2=(j2,W)=>{let o=[],e=X.getTotal();X.touchChunksForRange(j2,Math.min(W,e-1));for(let N2=j2;N2<=W&&N2<e;N2++){let b2=X.get(N2);if(b2!==void 0)o.push(b2);else o.push(A().generate(N2))}return o},n=(j2)=>{X.setTotal(j2),w=X.getCachedCount()<j2,i(),p()},_=(j2,W=0,o)=>{if($&&j2.length>0){let e=A();if(!e.hasAnalyzedStructure())e.analyzeStructure(j2)}for(let e=0;e<j2.length;e++){let N2=j2[e];if(N2!==void 0){let b2=W+e;X.set(b2,N2),Z2(b2,N2)}}if(o!==void 0)X.setTotal(o);else if(W+j2.length>X.getTotal())X.setTotal(W+j2.length);if(X.getCachedCount()>=X.getTotal()&&X.getTotal()>0)w=!1;i(),p(),M?.(j2,W,X.getTotal())},k=(j2,W)=>{let o=X.get(j2);if(!o)return!1;let e=o.id,N2={...o,...W};if(X.set(j2,N2),W.id!==void 0&&W.id!==e)W2(e);return Z2(j2,N2),i(),p(),!0},E=(j2,W)=>{X.insert(W,j2),t(),u(),i(),p()},O=(j2)=>{let W=H.get(j2);if(W===void 0)return!1;if(!X.delete(W))return!1;return t(),u(),i(),p(),!0},d=async(j2,W)=>{if(!$)return;let o=X.chunkSize,e=Math.floor(j2/o),N2=Math.floor(W/o),b2=o*2;for(let[_2,A2]of g){let R2=_2.indexOf("-"),D2=parseInt(_2.slice(0,R2),10);if(Math.abs(D2-j2)>b2)A2[1].abort(),g.delete(_2)}let H2=[],G2=[];for(let _2=e;_2<=N2;_2++){let A2=_2*o,R2=A2+o-1,D2=y(A2,R2);if(X.isChunkFullyLoaded(_2))continue;let J2=g.get(D2);if(J2)G2.push(J2[0]);else H2.push({start:A2,end:R2})}if(H2.length===0){if(G2.length>0)await Promise.all(G2);return}if(V>0){let _2=g.size+H2.length;if(_2>V){let A2=(j2+W)/2,R2=Math.min(_2-V,g.size);while(R2>0){let L2=null,J2=-1,q2=null;for(let[s,E2]of g){let r=s.indexOf("-"),U2=parseInt(s.slice(0,r),10),T2=parseInt(s.slice(r+1),10),F2=Math.abs((U2+T2)/2-A2);if(F2>J2)J2=F2,L2=s,q2=E2[1]}if(L2)q2.abort(),g.delete(L2);R2--}let D2=V-g.size;if(H2.length>D2)H2.sort((L2,J2)=>{let q2=Math.abs((L2.start+L2.end)/2-A2),s=Math.abs((J2.start+J2.end)/2-A2);return q2-s}),H2.length=Math.max(0,D2)}}if(H2.length===0){if(G2.length>0)await Promise.all(G2);return}for(let _2 of H2){let A2=y(_2.start,_2.end),R2=new AbortController,D2=(async()=>{S.push(_2),Y=!0,G=void 0,p();try{let L2=_2.end-_2.start+1,J2={offset:_2.start,limit:L2,cursor:_2.start===b?U:void 0,signal:R2.signal},q2=await $.read(J2);if(_(q2.items,_2.start,q2.total),q2.cursor)U=q2.cursor,b=_2.start+q2.items.length;let s=_2.start+q2.items.length;if(s>=T){if(T=s,q2.hasMore!==void 0)w=q2.hasMore;else if(q2.total!==void 0)w=s<q2.total}}catch(L2){if(L2?.name==="AbortError")return;G=L2 instanceof Error?L2:Error(String(L2)),I?.(G,_2)}finally{g.delete(A2);let L2=S.findIndex((J2)=>J2.start===_2.start&&J2.end===_2.end);if(L2>=0)S.splice(L2,1);Y=g.size>0,p()}})();g.set(A2,[D2,R2]),G2.push(D2)}await Promise.all(G2)},Q2=async(j2,W)=>{if(X.isRangeLoaded(j2,W))return;await d(j2,W)},O2=async()=>{if(!$)return;await d(0,q-1)},Y2=async()=>{if(!$||Y||!w)return!1;let j2=X.getCachedCount(),W=X.getTotal(),o=j2,e=Math.min(o+q-1,W>0?W-1:o+q-1);if(o>=W&&W>0)return w=!1,!1;return await d(o,e),X.getCachedCount()>j2},K2=async()=>{if(X.clear(),H.clear(),h)h.clear();u(),S=[],Y=!1,U=void 0,b=void 0,w=!0,T=0,G=void 0,i(),p()},V2=(j2,W)=>{if(X.evictDistant(j2,W)>0)t()},B2=()=>{X.clear(),H.clear(),U=void 0,b=void 0,G=void 0,S=[],Y=!1,i(),p()},X2=()=>{if(X.reset(),H.clear(),h)h.clear();U=void 0,b=void 0,w=!0,T=0,G=void 0,S=[],Y=!1,i(),p()};if(K&&K.length>0)_(K,0,j??K.length);else if(j!==void 0)X.setTotal(j),i(),p();return{getState:B,getTotal:f,getCached:P,getIsLoading:v,getHasMore:m,getStorage:N,getPlaceholders:l,getItem:x,getItemById:C,getIndexById:L,isItemLoaded:c,getItemsInRange:$2,setTotal:n,setItems:_,updateItem:k,insertItem:E,removeItem:O,loadRange:d,ensureRange:Q2,loadInitial:O2,loadMore:Y2,reload:K2,evictDistant:V2,clear:B2,reset:X2}};function _0(J){let{adapter:$,total:K,autoLoad:j=!0,storage:Z}=J,Q=J.loading?.cancelThreshold??P0,q=J.loading?.preloadThreshold??T0,V=J.loading?.preloadAhead??R0,R=J.loading?.maxConcurrent??k0,D,M,z,I,X,h,A=null,H=null,Y=null,G=0,w=!1,U=null,b=Z0,S=-1,T=-1,g=-1,u=-1,p=Z?.chunkSize??a2,i=()=>{if(A=null,H!==null)clearTimeout(H),H=null},t=(B,N)=>{return D.ensureRange(B,N)},Z2=(B,N=a2)=>{I.emit("load:start",{offset:B,limit:N})},W2=(B)=>{I.emit("error",{error:B,context:"ensureRange"})},y=()=>{A=null;let B={start:M.startIndex,end:M.startIndex+Math.max(0,M.visibleCount-1)};if(B.end<B.start)return;t(B.start,B.end).catch(W2)},f=()=>{if(U!==null)clearTimeout(U),U=null},P=()=>{if(M.destroyed)return;let B=D.getTotal();if(M.visibleCount<=0||M.startIndex>=B)return;let N=Math.min(M.startIndex+M.visibleCount-1,B-1);if(N<M.startIndex)return;t(M.startIndex,N).catch(W2)},v=()=>{if(U!==null||M.destroyed)return;U=setTimeout(()=>{U=null,P()},b),b=Math.min(b*2,y0)},m=()=>{f(),b=Z0};return{name:"data",priority:20,setup(B){M=B.getState(),z=B.sizeCache,I=B.emitter,X=B.dom,h=B.forceRender.bind(B);let N=null;B.setVirtualTotalFn(()=>N?.getTotal()??0),B.setGetIndexByIdFn((x)=>N?.getIndexById(x)??-1),D=N=Z4({adapter:$,...K!==void 0&&{initialTotal:K},pageSize:Z?.chunkSize??a2,maxConcurrent:R,...Z&&{storage:{...Z.chunkSize!==void 0&&{chunkSize:Z.chunkSize},...Z.maxCachedItems!==void 0&&{maxCachedItems:Z.maxCachedItems},...Z.evictionBuffer!==void 0&&{evictionBuffer:Z.evictionBuffer}}},onDataChange:()=>{if(M.initialized){let x=D.getTotal(),C=D.getCached();if(M.totalItems=x,x!==S||C!==T)S=x,T=C,z.rebuild(x);B.updateContentSize(z.getTotalSize()),B.renderIfNeeded()}},onItemsLoaded:(x)=>{if(m(),M.initialized)B.updateContentSize(z.getTotalSize()),h(),I.emit("load:end",{items:x,total:D.getTotal()})},onLoadError:(x)=>{if(I.emit("error",{error:x,context:"load"}),M.initialized)B.renderIfNeeded();v()}}),B.setGetItemFn((x)=>D.getItem(x)),B.setRemoveItemFn((x)=>{let C=D.getIndexById(x);if(C<0)return-1;if(!D.removeItem(x))return-1;return C}),B.setInsertItemFn((x,C)=>{D.insertItem(x,C)}),B.setUpdateItemFn((x,C)=>{let L=D.getIndexById(x);if(L<0)return!1;return D.updateItem(L,C)}),B.registerMethod("reload",async()=>{if(A=null,g=-1,u=-1,m(),B.forceRender(),await D.reload(),B.scrollTo(0),j)Z2(0),await D.loadInitial(),B.forceRender()}),B.registerMethod("loadVisibleRange",async()=>{A=null,B.forceRender();let x=D.getTotal();if(M.visibleCount>0&&M.startIndex<x){let C=Math.min(M.startIndex+M.visibleCount-1,x-1);Z2(M.startIndex,C-M.startIndex+1),await t(M.startIndex,C)}}),B.registerMethod("loadInitial",async()=>{Z2(0),await D.loadInitial(),B.forceRender()}),B.registerMethod("getTotal",()=>{return D.getTotal()}),B.registerMethod("setTotal",(x)=>{D.setTotal(x)}),B.registerMethod("_getTotal",()=>D.getTotal()),B.registerMethod("_setTotal",(x)=>{D.setTotal(x)}),B.registerMethod("_cancelAutoLoad",()=>{w=!0}),B.registerMethod("_getLoadedItem",(x)=>{return D.getStorage().get(x)}),B.registerMethod("_getItem",(x)=>{return D.getItem(x)}),B.registerMethod("_getLoadedCount",()=>D.getCached()),I.on("load:start",()=>{X.root.setAttribute("aria-busy","true")}),I.on("load:end",()=>{X.root.removeAttribute("aria-busy")}),B.registerDestroyHandler(()=>{if(Y!==null)clearTimeout(Y),Y=null;i(),f()}),I.on("velocity:change",({velocity:x})=>{G=Math.abs(x)});let l=()=>{if(M.destroyed)return;m(),P(),y()};if(window.addEventListener("online",l),B.registerDestroyHandler(()=>{window.removeEventListener("online",l)}),j)queueMicrotask(()=>{if(w)return;Z2(0),D.loadInitial().catch((x)=>{I.emit("error",{error:x,context:"loadInitial"})})});else if(K!==void 0)D.setTotal(K)},hooks:{onAfterScroll(){if(M.destroyed)return;let B=M.startIndex+Math.max(0,M.visibleCount-1);if(G>Q){if(H!==null)clearTimeout(H),H=null;A={start:M.startIndex,end:B};return}if(G>q){let x=Math.floor(M.startIndex/p),C=Math.floor(B/p);if(x!==g||C!==u){if(g=x,u=C,B>=M.startIndex)t(M.startIndex,B).catch(W2)}let L=M.startIndex,c=B,$2=M.scrollDirection;if($2>0)c=Math.min(c+V,D.getTotal()-1);else if($2<0)L=Math.max(0,L-V);if(A={start:L,end:c},H!==null)clearTimeout(H);H=setTimeout(()=>{if(H=null,M.destroyed||!A)return;let{start:n,end:_}=A;if(A=null,_>=n)t(n,_).catch(W2)},100);return}i();let N=Math.floor(M.startIndex/p),l=Math.floor(B/p);if(N!==g||l!==u){if(g=N,u=l,B>=M.startIndex)t(M.startIndex,B).catch(W2)}},onIdle(){if(M.destroyed)return;G=0,g=-1,u=-1,y(),i()},onResize(){if(M.destroyed)return;let B=D.getTotal();if(B<=0)return;if(M.visibleCount<=0||M.startIndex>=B)return;let N=Math.min(M.startIndex+M.visibleCount-1,B-1);if(N<M.startIndex)return;Z2(M.startIndex,N-M.startIndex+1),t(M.startIndex,N).catch(W2)}},destroy(){if(Y!==null)clearTimeout(Y);i(),f()}}}var q4=(J)=>{let $=Math.max(1,Math.floor(J.columns)),K=J.gap??0,j=J.isHeaderFn,Z={row:0,col:0},Q=(A)=>{if(A<=0)return 0;if(!j)return Math.ceil(A/$);let H=0,Y=0,G=0;for(let w=0;w<A;w++)if(j(w)){if(G++,Y)H++,Y=0;H++,Y=0}else if(Y++,Y>=$)H++,Y=0;if(Y)H++;return H},q=(A)=>{return Z.row=V(A),Z.col=R(A),Z},V=(A)=>{if(!j)return Math.floor(A/$);let H=0,Y=0;for(let G=0;G<=A;G++)if(j(G)){if(Y)H++,Y=0;if(G===A)return H;H++,Y=0}else{if(G===A)return H;if(Y++,Y>=$)H++,Y=0}return console.warn(`⚠️ getRow(${A}) fell through - returning ${H}`),H},R=(A)=>{if(!j)return A%$;if(j(A))return 0;let H=0;for(let Y=0;Y<=A;Y++)if(j(Y))H=0;else{if(Y===A)return H;if(H++,H>=$)H=0}return H},D=(A,H,Y,G)=>{if(Y<=0){G.start=0,G.end=-1;return}if(!j){G.start=Math.max(0,A*$),G.end=Math.min(Y-1,(H+1)*$-1);return}let w=M(A,H,Y);G.start=w.start,G.end=w.end},M=(A,H,Y)=>{if(Y<=0)return{start:0,end:-1};if(!j){let S=Math.max(0,A*$),T=Math.min(Y-1,(H+1)*$-1);return{start:S,end:T}}let G=-1,w=-1,U=0,b=0;for(let S=0;S<Y;S++){if(j(S)){if(b)U++,b=0;if(U>=A&&U<=H){if(G<0)G=S;w=S}U++,b=0}else{if(U>=A&&U<=H){if(G<0)G=S;w=S}if(b++,b>=$)U++,b=0}if(U>H&&!b)break}if(G<0)return{start:0,end:-1};return{start:G,end:w}},z=(A,H,Y)=>{if(H<0||H>=$)return-1;let G=A*$+H;if(G<0||G>=Y)return-1;return G},I=(A)=>{let H=($-1)*K;return Math.max(0,(A-H)/$)};return{get columns(){return $},get gap(){return K},update:(A)=>{if(A.columns!==void 0)$=Math.max(1,Math.floor(A.columns));if(A.gap!==void 0)K=A.gap;if(A.isHeaderFn!==void 0)j=A.isHeaderFn},getTotalRows:Q,getPosition:q,getRow:V,getCol:R,getItemRange:M,fillItemRange:D,getItemIndex:z,getColumnWidth:I,getColumnOffset:(A,H)=>{let Y=I(H);return A*(Y+K)}}};var p2={selected:!1,focused:!1};function M0(J){if(!J.columns||J.columns<1)throw Error("[vlist] grid: columns must be >= 1");let $,K,j,Z,Q=null,q,V,R,D,M,z,I=null,X=0,h=0,A=0,H=0,Y=new Map,G=0,w=0,U=0,b=0,S=null,T=!1,g="",u="",p="",i={start:0,end:-1},t=-1,Z2=-1,W2=-1,y=!0,f=(L)=>K.rebuild(L);function P(){let L=(w-1)*U;b=Math.max(0,(G-L)/w)}function v(){if(T)return;T=!0,S=I?.()??null}function m(){return $.getTotalRows(j.totalItems)}function B(L){let c=L/w|0,n=(L-c*w)*(b+U)+X,_=K.getOffset(c)-j.baseOffset+A;if(D)return`translate(${Math.round(_)}px, ${Math.round(n)}px)`;return`translate(${Math.round(n)}px, ${Math.round(_)}px)`}function N(L,c){let $2=K.getSize(c)-U;if(D)L.style.width=`${$2}px`,L.style.height=`${b}px`;else L.style.width=`${b}px`,L.style.height=`${$2}px`}function l(L,c,$2){if(S)S($2,p2);else p2.selected=!1,p2.focused=!1;let n=V(c,$2,p2);if(typeof n==="string")L.innerHTML=n;else L.innerHTML="",L.appendChild(n)}function x(){if(j.destroyed)return;let{scrollPosition:L,containerSize:c}=j;if(!y&&L===t&&c===Z2)return;t=L,Z2=c,y=!1;let $2=m();if(c<=0||$2===0)return;v();let n=K.indexAtOffset(L),_=K.indexAtOffset(L+c);if(_<$2-1)_++;n=Math.max(0,n),_=Math.min($2-1,Math.max(0,_));let k=Math.max(0,n-z),E=Math.min($2-1,_+z);if(k===j.prevRangeStart&&E===j.prevRangeEnd&&!j.renderPending)return;$.fillItemRange(k,E,j.totalItems,i);let{start:O,end:d}=i;for(let[Y2,K2]of Y)if(Y2<O||Y2>d)K2.el.remove(),Z.release(K2.el),Y.delete(Y2);for(let Y2=O;Y2<=d;Y2++){let K2=R(Y2);if(!K2)continue;let V2=Y2/w|0,B2=Y2-V2*w,X2=Y.get(Y2);if(X2===void 0){let o=Z.acquire();o.className=g,o.setAttribute("data-index",String(Y2)),o.setAttribute("data-id",String(K2.id)),l(o,K2,Y2),X2={el:o,lastItem:K2},Y.set(Y2,X2),q.appendChild(o)}else if(X2.lastItem!==K2)X2.el.setAttribute("data-id",String(K2.id)),X2.lastItem=K2,l(X2.el,K2,Y2);else if(S)S(Y2,p2);if(S)if(X2.el.classList.toggle(u,p2.selected),X2.el.classList.toggle(p,p2.focused),p2.selected)X2.el.setAttribute("aria-selected","true");else X2.el.removeAttribute("aria-selected");N(X2.el,V2);let j2=B2*(b+U)+X,W=K.getOffset(V2)-j.baseOffset+A;X2.el.style.transform=D?`translate(${Math.round(W)}px, ${Math.round(j2)}px)`:`translate(${Math.round(j2)}px, ${Math.round(W)}px)`}let Q2=K.getTotalSize();if(Q2!==W2)W2=Q2,Q?.updateContentSize(Q2);j.prevRangeStart=k,j.prevRangeEnd=E,j.renderPending=!1;let O2=d-O+1;j.visibleCount=Math.min(O2,j.capacity),j.startIndex=O;for(let Y2=0;Y2<j.visibleCount;Y2++){let K2=O+Y2,V2=K2/w|0;j.visibleIndices[Y2]=K2,j.visibleOffsets[Y2]=K.getOffset(V2),j.visibleSizes[Y2]=K.getSize(V2)}}function C(){if(j.destroyed)return;f(m()),W2=-1,j.prevRangeStart=-1,j.prevRangeEnd=-1,j.renderPending=!0,y=!0,x()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(L){w=Math.max(1,Math.floor(J.columns)),U=J.gap??0,$=q4({columns:J.columns,gap:U}),K=L.sizeCache,j=L.getState(),Z=L.pool,Q=L,q=L.dom.content,V=L.template,D=L.config.axis.primary==="x",M=L.config.classPrefix,z=L.config.overscan,R=L.getItem.bind(L),I=()=>L.getItemStateFn(),g=`${M}-item ${M}-grid-item`,u=`${M}-item--selected`,p=`${M}-item--focused`,X=L.config.crossPadStart,h=L.config.crossAxisPadding,A=L.config.startPadding,H=L.config.mainAxisPadding,G=j.crossSize-h,P();let c=L.rawSizeSpec,$2;if(typeof c==="function"){let O={columnWidth:$.getColumnWidth(G),columns:J.columns,gap:U};$2=c(0,O),L.setSizeConfig((d)=>{O.columnWidth=$.getColumnWidth(G);let Q2=d*J.columns;return c(Q2,O)+U})}else if($2=c,U>0)L.setSizeConfig($2+U);let n=null,_=K.rebuild;function k(){if(K.rebuild===n)return;_=K.rebuild,f=(E)=>_(E),n=(E)=>{f(Math.ceil(E/w))},K.rebuild=n}if(L.registerMethod("_setSizeCacheBase",(E)=>{_=E,f=(O)=>_(O)}),k(),f(m()),U>0){let E=K.getTotalSize;K.getTotalSize=()=>{let O=E();return O>0?O-U:0}}L.setVirtualTotalFn(()=>m()),L.dom.root.classList.add(`${M}--grid`),L.setRenderFn(x,C),L.registerMethod("getGridLayout",()=>$),L.registerMethod("_getRowGap",()=>$.gap),L.registerMethod("updateGrid",(E)=>{if(E.columns!==void 0){if(!Number.isInteger(E.columns)||E.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(E.gap!==void 0&&E.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if($.update(E),E.columns!==void 0)w=Math.max(1,Math.floor(E.columns));if(E.gap!==void 0)U=E.gap;if(E.gap!==void 0||E.columns!==void 0){let O=$.gap;if(typeof c==="function"){let d={columnWidth:$.getColumnWidth(G),columns:$.columns,gap:O};L.setSizeConfig((Q2)=>{d.columnWidth=$.getColumnWidth(G);let O2=Q2*$.columns;return c(O2,d)+O})}else L.setSizeConfig($2+O);k(),f(m())}if(E.columns!==void 0)L.setNavConfig({ud:$.columns});G=j.crossSize-h,P(),C()}),L.registerMethod("scrollToIndex",(E,O="start")=>{let d=$.getRow(E),Q2=m();if(Q2===0)return;let O2=Math.max(0,Math.min(d,Q2-1)),Y2=K.getOffset(O2)+A,K2=K.getSize(O2),V2=j.containerSize,B2=K.getTotalSize()+H,X2=Math.max(0,B2-V2),j2=typeof O==="string"?O:O.align??"start",W=typeof O==="object"?O.behavior:void 0,o=typeof O==="object"?O.duration:void 0,e;switch(j2){case"center":e=Y2-(V2-K2)/2;break;case"end":e=Y2-V2+K2;break;default:e=Y2}if(e=Math.max(0,Math.min(e,X2)),W==="smooth"&&o&&o>0)L.smoothScrollTo(e,o);else L.scrollTo(e)}),L.setNavConfig({total:()=>j.totalItems,ud:J.columns,lr:1,scrollIndex:(E)=>$.getRow(E)}),L.registerDestroyHandler(()=>{for(let[,E]of Y)E.el.remove();Y.clear(),L.dom.root.classList.remove(`${M}--grid`)})},hooks:{onResize(L,c){let $2=j.crossSize-h;if(Math.abs($2-G)<1)return;G=$2,P();for(let[n,_]of Y){let k=n/w|0;N(_.el,k),_.el.style.transform=B(n)}}},destroy(){Y.clear()}}}var U4=(J)=>{let $=Math.max(1,Math.floor(J.columns)),K=J.gap??0,j=J.containerSize,Z=J.crossOffset??0,Q=J.mainOffset??0,q=0,V=[],R=()=>{let Y=($-1)*K;q=Math.max(0,(j-Y)/$),V=Array($);let G=q+K;for(let w=0;w<$;w++)V[w]=Z+w*G};R();let D=[],M=0,z=[],I=(Y,G)=>{if(Y<=0)return M=0,D=[],[];let w=Array($).fill(Q),U=Array($);for(let T=0;T<$;T++)U[T]=[];let b=Array(Y);for(let T=0;T<Y;T++){let g=0,u=w[0];for(let t=1;t<$;t++){let Z2=w[t];if(Z2<u)u=Z2,g=t}let p=G(T),i=w[g];b[T]={index:T,x:V[g],y:i,lane:g,size:p,crossSize:q},U[g].push(T),w[g]=i+p+K}D=U;let S=0;for(let T=0;T<$;T++){let g=w[T],u=g>0?g-K:0;if(u>S)S=u}return M=S,b},X=(Y)=>{if(Y.length===0)return M;if(M)return M;let G=Array($).fill(0);for(let U of Y){let b=U.y+U.size,S=G[U.lane];if(b>S)G[U.lane]=b}let w=0;for(let U=0;U<$;U++)if(G[U]>w)w=G[U];return w},h=(Y,G,w)=>{if(Y.length===0||w<=G)return z.length=0,z;if(D.length===0||D.length!==$)return A(Y,G,w);z.length=0;for(let U=0;U<$;U++){let b=D[U],S=b.length;if(!S)continue;let T=0,g=S;while(T<g){let u=T+g>>>1,p=Y[b[u]];if(p.y+p.size<=G)T=u+1;else g=u}for(let u=T;u<S;u++){let p=Y[b[u]];if(p.y>=w)break;z.push(p)}}return z},A=(Y,G,w)=>{z.length=0;for(let U of Y)if(U.y+U.size>G&&U.y<w)z.push(U);return z};return{get columns(){return $},get gap(){return K},get containerSize(){return j},update:(Y)=>{let G=!1;if(Y.columns!==void 0){let w=Math.max(1,Math.floor(Y.columns));if(w!==$)$=w,G=!0}if(Y.gap!==void 0&&Y.gap!==K)K=Y.gap,G=!0;if(Y.containerSize!==void 0&&Y.containerSize!==j)j=Y.containerSize,G=!0;if(Y.crossOffset!==void 0&&Y.crossOffset!==Z)Z=Y.crossOffset,G=!0;if(Y.mainOffset!==void 0&&Y.mainOffset!==Q)Q=Y.mainOffset,G=!0;if(G)R()},calculateLayout:I,getTotalSize:X,getVisibleItems:h}};var Y4=(J,$,K)=>{let j=Array.from($).sort((q,V)=>q-V);if(j.length<=1)return;let Z=[];for(let q=0;q<j.length;q++){let V=K(j[q]);if(V)Z.push(V)}if(Z.length<=1)return;let Q=J.firstChild;for(let q=0;q<Z.length;q++){let V=Z[q];if(V===Q)Q=Q.nextSibling;else J.insertBefore(V,Q)}};var u4=(J=200)=>{let $=[];return{acquire:()=>{let Q=$.pop();if(Q)return Q;let q=document.createElement("div");return q.setAttribute("role","option"),q},release:(Q)=>{if(Q.remove(),$.length<J)Q.className="",Q.textContent="",Q.removeAttribute("style"),Q.removeAttribute("data-index"),Q.removeAttribute("data-id"),Q.removeAttribute("data-lane"),$.push(Q)},clear:()=>{$.length=0}}},x4=1,V4=(J,$,K,j=!1,Z,Q,q,V,R=()=>0)=>{let D=u4(),M=new Map,z=new Set,I=0,X="",h=-1,A={selected:!1,focused:!1},H=(y,f)=>{return A.selected=y,A.focused=f,A},Y=`${K}-item ${K}-masonry-item`,G=`${K}-group-header`,w=`${K}-item--selected`,U=`${K}-item--focused`,b=(y,f)=>{if(typeof f==="string")y.innerHTML=f;else y.replaceChildren(f);c2(y)},S=(y,f,P)=>{y.classList.toggle(w,f),y.classList.toggle(U,P)},T=(y,f)=>{let P=Math.round(f.y-R());if(j)y.style.transform=`translate(${P}px, ${Math.round(f.x)}px)`;else y.style.transform=`translate(${Math.round(f.x)}px, ${P}px)`},g=(y,f)=>{if(j)y.style.width=`${f.size}px`,y.style.height=`${f.crossSize}px`;else y.style.width=`${f.crossSize}px`,y.style.height=`${f.size}px`},u=(y,f,P,v,m)=>{let B=D.acquire(),N=f.__groupHeader,l=H(v,m);if(B.className=N?G:Y,B.dataset.index=String(y),B.dataset.id=String(f.id),B.dataset.lane=String(P.lane),N)B.setAttribute("role","presentation"),B.removeAttribute("aria-selected"),B.removeAttribute("aria-setsize"),B.removeAttribute("aria-posinset"),B.removeAttribute("id");else if(V===!0){if(B.setAttribute("role","option"),B.ariaSelected=String(v),Q)B.id=`${Q}-item-${y}`;if(Z){let C=Z();if(C!==h)h=C,X=String(C);B.setAttribute("aria-setsize",X);let L=q?q(y):y+1;B.setAttribute("aria-posinset",String(L))}}else if(B.setAttribute("role","listitem"),B.removeAttribute("aria-selected"),Z){let C=Z();if(C!==h)h=C,X=String(C);B.setAttribute("aria-setsize",X);let L=q?q(y):y+1;B.setAttribute("aria-posinset",String(L))}g(B,P);let x=$(f,y,l);return b(B,x),S(B,v,m),T(B,P),{element:B,lastItem:f,lastSelected:v,lastFocused:m,lastY:P.y-R(),lastX:P.x,lastSize:P.size,lastCrossSize:P.crossSize,lastSeenFrame:I}},p=(y,f,P,v)=>{I++,z.clear();for(let B=0;B<f.length;B++)z.add(f[B].index);let m=null;for(let B=0;B<f.length;B++){let N=f[B],l=N.index,x=y(l);if(!x)continue;let C=P.has(x.id),L=l===v,c=M.get(l);if(c){let $2=c.lastItem!==x,n=c.lastSelected!==C,_=c.lastFocused!==L,k=c.lastY!==N.y-R()||c.lastX!==N.x,E=c.lastSize!==N.size||c.lastCrossSize!==N.crossSize;if($2){let O=H(C,L),d=$(x,l,O);if(b(c.element,d),c.element.dataset.id=String(x.id),c.lastItem=x,!x.__groupHeader){let O2=q?q(l):l+1;c.element.setAttribute("aria-posinset",String(O2))}}if($2||n||_)S(c.element,C,L),c.element.ariaSelected=String(C),c.lastSelected=C,c.lastFocused=L;if(E)g(c.element,N),c.lastSize=N.size,c.lastCrossSize=N.crossSize;if(k)T(c.element,N),c.lastY=N.y-R(),c.lastX=N.x}else{let $2=u(l,x,N,C,L);if(!m)m=document.createDocumentFragment();m.appendChild($2.element),M.set(l,$2)}}if(m)J.appendChild(m);for(let[B,N]of M)if(z.has(B))N.lastSeenFrame=I;else if(I-N.lastSeenFrame>x4)D.release(N.element),M.delete(B)},i=()=>{for(let y of M.values())D.release(y.element);M.clear(),J.innerHTML=""};return{render:p,getElement:(y)=>M.get(y)?.element,updateItemClasses:(y,f,P)=>{let v=M.get(y);if(!v)return;let m=v.lastSelected!==f,B=v.lastFocused!==P;if(m||B)S(v.element,f,P),v.lastSelected=f,v.lastFocused=P},sortDOM:()=>{Y4(J,M.keys(),(y)=>M.get(y)?.element)},clear:i,destroy:()=>{i(),D.clear()}}};var g4=100,m4=new Set;function X0(J){if(!J.columns||J.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let $,K=null,j,Z=null,Q,q,V,R=[],D=-1,M=-1,z=!0,I=-1,X=-1,h=0,A=0,H=0,Y=0,G={columnWidth:0,columns:0,gap:0,containerWidth:0},w=[],U=(_)=>w[_],b=null,S=null,T=!1;function g(){if(T||!Z)return;T=!0,b=Z.getMethod("_getSelectedIds")??null,S=Z.getMethod("_getFocusedIndex")??null}let u=[],p=new Int32Array(0),i=[],t=null,Z2=null,W2=null,y=null,f=!1,P=!0;function v(){if(f||!Z)return;if(t=Z.getMethod("_getItemLane")??null,Z2=Z.getMethod("_getItemY")??null,W2=Z.getMethod("_getItemH")??null,y=Z.getMethod("_isGroupHeader")??null,t||y)f=!0}function m(){v();let _=$.columns,k=!!t;if(k){let E=j.totalItems;u=Array(_);for(let O=0;O<_;O++)u[O]=[];if(p.length<E)p=new Int32Array(E);for(let O=0;O<E;O++){if(y?.(O))continue;let d=t(O);if(d<0||d>=_)continue;p[O]=u[d].length,u[d].push(O)}}else{let E=R.length;u=Array(_);for(let O=0;O<_;O++)u[O]=[];if(p.length<E)p=new Int32Array(E);for(let O=0;O<E;O++){let d=R[O];p[O]=u[d.lane].length,u[d.lane].push(O)}}i=Array(_);for(let E=0;E<_;E++){let O=u[E],d=new Float64Array(O.length);for(let Q2=0;Q2<O.length;Q2++){let O2=O[Q2];if(k&&Z2&&W2){let Y2=Z2(O2),K2=W2(O2);d[Q2]=Y2>=0?Y2+(K2>0?K2*0.5:0):0}else{let Y2=R[O2];d[Q2]=Y2.y+Y2.size*0.5}}i[E]=d}}function B(_,k){let E=_.length;if(!E)return-1;let O=0,d=E-1;while(O<d){let Q2=O+d>>1;if(_[Q2]<k)O=Q2+1;else d=Q2}if(O>0&&Math.abs(_[O-1]-k)<=Math.abs(_[O]-k))return O-1;return O}function N(_,k,E){if(P)m(),P=!1;let O=!!t,d,Q2;if(O){if(y?.(_))return _;if(d=t(_),d<0)return _;Q2=p[_]}else{let V2=R[_];if(!V2)return _;d=V2.lane,Q2=p[_]}let O2=$.columns,Y2=u[d];switch(Q?k==="ArrowDown"?"ArrowRight":k==="ArrowUp"?"ArrowLeft":k==="ArrowRight"?"ArrowDown":k==="ArrowLeft"?"ArrowUp":k:k){case"ArrowDown":if(Q2+1<Y2.length)return Y2[Q2+1];return _;case"ArrowUp":if(Q2>0)return Y2[Q2-1];return _;case"ArrowRight":{if(d>=O2-1)return _;let V2=d+1,B2=u[V2];if(!B2.length)return _;let X2=B(i[V2],i[d]?.[Q2]??0);return X2>=0?B2[X2]:_}case"ArrowLeft":{if(d<=0)return _;let V2=d-1,B2=u[V2];if(!B2.length)return _;let X2=B(i[V2],i[d]?.[Q2]??0);return X2>=0?B2[X2]:_}case"Home":return 0;case"End":{let V2=u[O2-1];return V2.length>0?V2[V2.length-1]:_}case"PageDown":{let V2=j.containerSize,B2=O?null:R[_],X2=B2&&B2.size>0?B2.size:150,j2=Math.max(1,Math.floor(V2/X2)),W=Math.min(Q2+j2,Y2.length-1);return Y2[W]}case"PageUp":{let V2=j.containerSize,B2=O?null:R[_],X2=B2&&B2.size>0?B2.size:150,j2=Math.max(1,Math.floor(V2/X2)),W=Math.max(0,Q2-j2);return Y2[W]}}return _}let l=null;function x(){if(J.size)return(_)=>J.size(_,G);if(l!==null&&typeof l==="function")return(_)=>l(_,G);return(_)=>Z.sizeCache.getSize(_)}function C(){let{columns:_,gap:k}=$;G.containerWidth=$.containerSize,G.columns=_,G.gap=k,G.columnWidth=Math.max(0,($.containerSize-(_-1)*k)/_)}function L(){if(!Z)return;C();let _=j.totalItems;R=$.calculateLayout(_,x()),I=_,P=!0,c()}function c(){if(!Z)return;let _=$.getTotalSize(R)+Y;if(_===X)return;X=_,Z.updateContentSize(_)}function $2(){if(j.destroyed||!Z||!K)return;if(j.totalItems!==I)L();if(z)X=-1,c();g();let{scrollPosition:_,containerSize:k}=j;if(!z&&_===D&&k===M)return;if(D=_,M=k,z=!1,k<=0||R.length===0)return;let E=Math.max(0,_-V),O=_+k+V,d=$.getVisibleItems(R,E,O),Q2=b?.()??m4,O2=S?.()??-1;w=Z.getItems(),K.render(U,d,Q2,O2);let Y2=d.length,K2=Y2>0?d[0].index:0,V2=Y2>0?d[Y2-1].index:0;j.prevRangeStart=K2,j.prevRangeEnd=V2,j.renderPending=!1;let B2=Math.min(Y2,j.capacity);j.visibleCount=B2,j.startIndex=K2;for(let X2=0;X2<B2;X2++){let j2=d[X2];j.visibleIndices[X2]=j2.index,j.visibleOffsets[X2]=j2.y,j.visibleSizes[X2]=j2.size}}function n(){if(j.destroyed)return;X=-1,L(),j.prevRangeStart=-1,j.prevRangeEnd=-1,j.renderPending=!0,z=!0,$2()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(_){if(Z=_,j=_.getState(),l=_.rawSizeSpec,Q=_.config.axis.primary==="x",q=_.config.classPrefix,V=_.config.overscan*g4,_.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");h=_.config.crossAxisPadding,A=_.config.crossPadStart,H=_.config.startPadding,Y=_.config.endPadding;let k=j.crossSize-h;$=U4({columns:J.columns,gap:J.gap??0,containerSize:k,crossOffset:A,mainOffset:H}),K=V4(_.dom.content,_.template,q,Q,()=>j.totalItems,void 0,void 0,void 0,()=>j.baseOffset),_.dom.root.classList.add(`${q}--masonry`),_.setRenderFn($2,n),L(),_.registerMethod("getMasonryLayout",()=>$),_.registerMethod("updateMasonry",(E)=>{if(E.columns!==void 0&&E.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(E.gap!==void 0&&E.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let O={};if(E.columns!==void 0)O.columns=E.columns;if(E.gap!==void 0)O.gap=E.gap;$.update(O),K?.clear(),n()}),_.registerMethod("scrollToIndex",(E,O="start")=>{let d=R[E];if(!d)return;let Q2=typeof O==="string"?O:O.align??"start",O2=typeof O==="object"?O.behavior:void 0,Y2=typeof O==="object"?O.duration:void 0,K2=j.containerSize,V2=$.getTotalSize(R)+Y,B2=Math.max(0,V2-K2),X2=d.y;if(Q2==="center")X2=d.y-K2/2+d.size/2;else if(Q2==="end"){if(X2=d.y-K2+d.size,E>=j.totalItems-1&&d.y+d.size>B2)X2=B2}if(X2=Math.max(0,Math.min(X2,B2)),O2==="smooth"&&Y2&&Y2>0)_.smoothScrollTo(X2,Y2);else _.scrollTo(X2)}),_.registerMethod("_scrollItemIntoView",(E)=>{let O=R[E];if(!O)return;let{scrollPosition:d,containerSize:Q2}=j,O2=$.getTotalSize(R)+Y,Y2=Math.max(0,O2-Q2),K2=O.y,V2=K2+O.size;if(K2-H<d)_.scrollTo(Math.max(0,K2-H));else if(V2+Y>d+Q2){let B2=u[$.columns-1];if(B2&&B2.length>0&&E===B2[B2.length-1]&&K2>=Y2)_.scrollTo(Y2);else _.scrollTo(Math.min(V2+Y-Q2,Y2))}}),_.setNavConfig({total:()=>j.totalItems,navigate:N}),_.registerDestroyHandler(()=>{K?.destroy(),K=null,_.dom.root.classList.remove(`${q}--masonry`)})},hooks:{onResize(_,k){if(!$||!Z)return;let E=j.crossSize-h;if(Math.abs(E-$.containerSize)<1)return;$.update({containerSize:E}),K?.clear(),n()},onIdle(){K?.sortDOM()}},destroy(){K?.destroy(),K=null,R=[],Z=null}}}var G0=(J,$)=>{let K=0,j=J.length-1;while(K<j){let Z=K+j+1>>>1;if(J[Z].headerLayoutIndex<=$)K=Z;else j=Z-1}return K},N4=(J,$)=>{let K=0,j=J.length-1;while(K<j){let Z=K+j+1>>>1;if(J[Z].firstDataIndex<=$)K=Z;else j=Z-1}return K},W4=(J,$,K)=>{if(J===0)return[];let j=[],Z=null,Q=0,q=0;for(let V=0;V<J;V++){let R=K?.(V);if(!R)continue;let D=$(V,R);if(Z===null)Z=D,Q=0;else if(D!==Z){let M=V-Q;j.push({key:Z,groupIndex:j.length,headerLayoutIndex:q,firstDataIndex:Q,count:M}),q=q+1+M,Z=D,Q=V}}if(Z!==null)j.push({key:Z,groupIndex:j.length,headerLayoutIndex:q,firstDataIndex:Q,count:J-Q});return j};var B4=(J,$,K)=>{let j=W4(J,$.getGroupForIndex,K),Z=J+j.length,Q=$.header?.height??$.header?.width??$.headerHeight;return{get totalEntries(){return Z},get groupCount(){return j.length},get groups(){return j},getEntry:(X)=>{if(j.length===0)return{type:"item",dataIndex:X,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let h=G0(j,X),A=j[h];if(X===A.headerLayoutIndex)return{type:"header",group:A};let H=X-A.headerLayoutIndex-1;return{type:"item",dataIndex:A.firstDataIndex+H,group:A}},layoutToDataIndex:(X)=>{if(j.length===0)return X;let h=G0(j,X),A=j[h];if(X===A.headerLayoutIndex)return-1;let H=X-A.headerLayoutIndex-1;return A.firstDataIndex+H},dataToLayoutIndex:(X)=>{if(j.length===0)return X;let h=N4(j,X),A=j[h],H=X-A.firstDataIndex;return A.headerLayoutIndex+1+H},getGroupAtLayoutIndex:(X)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let h=G0(j,X);return j[h]},getGroupAtDataIndex:(X)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let h=N4(j,X);return j[h]},getHeaderHeight:typeof Q==="number"?(X)=>Q:(X)=>{let h=j[X];if(!h)return 0;return Q(h.key,X)},rebuild:(X,h)=>{j=W4(X,$.getGroupForIndex,h??K),Z=X+j.length}}};var A0=(J,$,K,j,Z=0)=>{let Q=K?"width":"height",q=document.createElement("div");return q.className=`${$}-sticky-header`,q.setAttribute("role","presentation"),q.setAttribute("aria-hidden","true"),q.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(K?`position:absolute;top:0;bottom:0;left:${Z||0}px`:`position:relative;top:${Z||0}px`),q.style[Q]=`${j}px`,J.insertBefore(q,J.firstChild),q},_4=(J,$,K,j,Z,Q=!1,q=0,V,R)=>{let D=Q?"width":"height",M=Q?"height":"width",z=Q?"X":"Y",I=(_,k)=>{_.style[D]=`${k}px`},X=V??A0(J,Z,Q,0,q),h=()=>{let _=document.createElement("div");return _.className="sticky-group",_.style.position="absolute",_.style.willChange="transform",_.style[M]="100%",_},A=h(),H=h();X.append(A,H);let Y=A,G=H,w=$.groups,U=[],b=[],S=[],T=0,g=()=>{w=$.groups,T=w.length,U=Array(T),b=Array(T),S=Array(T);for(let _=0;_<T;_++)U[_]=R?R(w[_].headerLayoutIndex):K.getOffset(w[_].headerLayoutIndex),b[_]=$.getHeaderHeight(_),S[_]=b[_]};g();let u=-1,p=0,i=0,t=-1,Z2=!1,W2=0,y=!1,f=(_,k)=>{j(_,k);let E=b[k];return I(_,E),E},P=(_)=>{_.replaceChildren(),_.style.transform=""},v=(_)=>{if(_===u)return;if(u=_,p=0,i=0,_<0||_>=T){P(Y);return}p=f(Y,_),i=S[_],I(X,p),Y.style.transform=""},m=(_)=>{if(_===W2)return;W2=_;let k=Math.round(_);Y.style.transform=`translate${z}(${k}px)`,G.style.transform=`translate${z}(${k+p}px)`},B=()=>{W2=0,Y.style.transform="",G.style.transform=""},N=()=>{if(!y)return;let _=Y;Y=G,G=_,u=t,p=u>=0?b[u]:0,i=u>=0?S[u]:0,I(X,p),P(G),t=-1,y=!1,B()},l=()=>{if(!y)return;P(G),t=-1,y=!1,B()},x=!!V,C=()=>{if(Z2)return;if(Z2=!0,x)X.style.visibility="";else X.style.display=""},L=()=>{if(!Z2)return;if(Z2=!1,x)X.style.visibility="hidden";else X.style.display="none";P(Y),u=-1,p=0,i=0,l()},c=(_)=>{if(T===0){if(y)l();if(!Z2)C();v(-1);return}if(_<U[0]){L();return}let k=0,E=T-1;while(k<E){let d=k+E+1>>>1;if(U[d]+S[d]<=_)k=d;else E=d-1}if(!Z2)C();v(k);let O=k+1;if(O<T){let d=U[O]-_;if(d<=0&&d>-i){if(t!==O||!y)t=O,f(G,O),y=!0;let Q2=i>0?d/i*p:d;m(Q2)}else if(d<=-i){if(y)N()}else if(y)l()}else if(y)l()},$2=()=>{g();let _=u;if(u=-1,p=0,i=0,_>=0)v(_)},n=()=>{X.remove(),u=-1,p=0,i=0,t=-1,Z2=!1,y=!1};if(!V)X.style.display="none";return{update:c,refresh:$2,show:C,hide:L,destroy:n}};var u2={selected:!1,focused:!1},M4=typeof process<"u"&&process.env?.NODE_ENV!=="production";function D0(J){if(!J.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let $=J.header?.height??J.header?.width??J.headerHeight;if($==null||typeof $==="number"&&$<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let K=J.header?.template??J.headerTemplate;if(!K)throw Error("[vlist] groups: header.template is required");let j=K,Z,Q=null,q,V,R,D,M=null,z,I,X,h=null,A,H,Y,G=null,w,U,b=null,S=null,T=0,g=0,u=0,p=0,i=0,t=!1,Z2=null,W2=new Map,y=new Set,f=new Map,P=-1,v=-1,m=0,B=!0,N=-1,l=0,x=null,C;function L(){return Z.totalEntries}function c(){let W=V.totalItems;if(W===N)return;if(M4)console.log(`[groups] syncLayout: ${N} → ${W}`);let o=N>0;N=W,Z.rebuild(W,h??X),C(Z.totalEntries),E();let e=n?O():q.getTotalSize();if(M?.(e),Q)Q.refresh(),Q.update(V.scrollPosition);if(o)O2();let N2=b?.("_scrollbar:getInstance");if(N2)N2()?.updateBounds(e,V.containerSize)}let $2=0,n=null,_=null,k=null;function E(){if(T<=0){n=null,_=null;return}$2=((V.crossSize||D.clientWidth)-p-(T-1)*g)/T,n=new Map;let e=Z.totalEntries,N2=Array(e),b2=0;if(t){let H2=Z2??((D2)=>q.getSize(D2)),G2=new Float64Array(T),_2=[],A2=0,R2=-1;for(let D2=0;D2<e;D2++){let L2=Z.getEntry(D2);if(L2.type==="header"){let J2=0;for(let s=0;s<T;s++)if(G2[s]>J2)J2=G2[s];if(R2>=0)_2[R2]=A2+J2;A2+=J2;let q2=q.getSize(D2);n.set(D2,{col:-1,rowY:A2}),N2[b2++]=[D2,A2,A2+q2],A2+=q2,G2.fill(0),R2=L2.group.groupIndex}else{let J2=0,q2=G2[0];for(let r=1;r<T;r++)if(G2[r]<q2)q2=G2[r],J2=r;let s=H2(L2.dataIndex),E2=A2+G2[J2];n.set(D2,{col:J2,rowY:E2,h:s}),N2[b2++]=[D2,E2,E2+s],G2[J2]=G2[J2]+s+g}}if(R2>=0){let D2=0;for(let L2=0;L2<T;L2++)if(G2[L2]>D2)D2=G2[L2];_2[R2]=A2+D2}k=_2}else{k=null;let H2=0,G2=0,_2=0;for(let A2=0;A2<e;A2++)if(Z.getEntry(A2).type==="header"){if(G2>0&&_2>0)H2+=_2;let D2=q.getSize(A2);n.set(A2,{col:-1,rowY:H2}),N2[b2++]=[A2,H2,H2+D2],H2+=D2,G2=0,_2=0}else{let D2=G2%T,L2=q.getSize(A2);if(D2===0){if(G2>0&&_2>0)H2+=_2+g;_2=L2}else if(L2>_2)_2=L2;n.set(A2,{col:D2,rowY:H2}),N2[b2++]=[A2,H2,H2+L2],G2++}}N2.length=b2,_=N2}function O(){if(!n||n.size===0)return q.getTotalSize();let W=Z.totalEntries;if(t)return k?.[k.length-1]??0;let o=0;for(let e=W-1;e>=0;e--){let N2=n.get(e);if(N2){o=N2.rowY+(N2.h??q.getSize(e));break}if(Z.getEntry(e).type==="header"){o=q.getOffset(e)+q.getSize(e);break}}return o}function d(W){let o=V.baseOffset;if(n){let N2=n.get(W);if(N2){let b2=N2.col<0?0:u+N2.col*($2+g),H2=N2.rowY-o;if(A)return`translate(${Math.round(H2)}px, ${Math.round(b2)}px)`;return`translate(${Math.round(b2)}px, ${Math.round(H2)}px)`}}let e=q.getOffset(W)-o;if(A)return`translate(${Math.round(e)}px, 0)`;return`translate(0, ${Math.round(e)}px)`}function Q2(W,o){let e=n?.get(o);if(e){let b2=e.h??q.getSize(o);if(e.col<0)if(A)W.style.width=`${b2}px`,W.style.height="";else W.style.height=`${b2}px`,W.style.width="100%";else if(A)W.style.width=`${b2}px`,W.style.height=`${$2}px`;else W.style.height=`${b2}px`,W.style.width=`${$2}px`;return}let N2=q.getSize(o);if(A)W.style.width=`${N2}px`;else W.style.height=`${N2}px`}function O2(){W2.forEach((W)=>{W.remove();let o=W.getAttribute("data-id");if(o)f.set(o,W);else R.release(W)}),W2.clear(),y.clear()}function Y2(){if(f.size>0)f.forEach((W)=>R.release(W)),f.clear()}function K2(W,o,e,N2){if(S===null)S=!!b?.("_getSelectedIds");if(o.type==="header"){let R2=`__group_header_${o.group.groupIndex}`;if(W.getAttribute("data-id")===R2)return!0;if(W.className=U,W.setAttribute("role","presentation"),W.removeAttribute("aria-selected"),W.setAttribute("data-id",R2),A&&Q&&o.group.groupIndex===0)W.style.display="none";else{W.style.display="";let D2=j(o.group.key,o.group.groupIndex);if(typeof D2==="string")W.innerHTML=D2;else W.innerHTML="",W.appendChild(D2)}return!0}let b2=o.dataIndex,H2=X(b2);if(!H2)return W.innerHTML="",!1;let G2=H2._isPlaceholder===!0,_2=String(H2.id);if(!G2&&W.getAttribute("data-id")===_2){if(S)W.id=`${H}-item-${N2}`,W.setAttribute("aria-posinset",String(b2+1)),W.setAttribute("aria-setsize",String(V.totalItems));return!0}if(W.className=w,W.setAttribute("role",S?"option":"listitem"),W.setAttribute("data-id",_2),S)W.id=`${H}-item-${N2}`,W.setAttribute("aria-posinset",String(b2+1)),W.setAttribute("aria-setsize",String(V.totalItems));if(G2)W.classList.add(`${H}-item--placeholder`);if(e)e(N2,u2);else u2.selected=!1,u2.focused=!1;let A2=I(H2,b2,u2);if(typeof A2==="string")W.innerHTML=A2;else W.innerHTML="",W.appendChild(A2);return c2(W),!G2}let V2=0;function B2(){if(T<=0)return;let W=V.crossSize;if(W===V2)return;V2=W,E();let o=O();if(M?.(o),Q)Q.refresh(),Q.update(V.scrollPosition);B=!0}function X2(){if(V.destroyed)return;c(),B2();let{scrollPosition:W,containerSize:o,baseOffset:e}=V,N2=e!==m;if(!B&&W===P&&o===v&&!N2)return;P=W,v=o;let b2=B;B=!1;let H2=L();if(o<=0||H2===0){if(W2.size>0)W2.forEach((r)=>{r.remove(),R.release(r)}),W2.clear(),y.clear();return}let G2,_2;if(_){let r=_,U2=r.length,T2=0,F2=U2-1;while(T2<F2){let a=T2+F2>>>1;if(r[a][2]<=W)T2=a+1;else F2=a}let y2=T2;F2=U2-1;while(T2<F2){let a=T2+F2+1>>>1;if(r[a][1]>=W+o)F2=a-1;else T2=a}let g2=T2,z2=r[y2][0],S2=r[g2][0];for(let a=z2-1;a>=0;a--)if(Z.getEntry(a).type==="header"){z2=a;break}let m2=Y*T;G2=Math.max(0,z2-m2),_2=Math.min(H2-1,S2+m2)}else{let r=q.indexAtOffset(W),U2=q.indexAtOffset(W+o);if(U2<H2-1)U2++;r=Math.max(0,r),U2=Math.min(H2-1,Math.max(0,U2)),G2=Math.max(0,r-Y),_2=Math.min(H2-1,U2+Y)}if(G2===V.prevRangeStart&&_2===V.prevRangeEnd&&!V.renderPending&&!N2)return;m=e,W2.forEach((r,U2)=>{if(U2<G2||U2>_2)r.remove(),R.release(r),W2.delete(U2),y.delete(U2)});let A2=G?.()??null,R2=A2?`${H}-item--selected`:"",D2=A2?`${H}-item--focused`:"",L2=null;for(let r=G2;r<=_2;r++){let U2=W2.get(r),T2=!1;if(U2===void 0){let F2=Z.getEntry(r);T2=F2.type==="header";let y2;if(F2.type==="header")y2=`__group_header_${F2.group.groupIndex}`;else{let z2=X(F2.dataIndex);if(z2&&z2._isPlaceholder!==!0)y2=String(z2.id)}if(y2!==void 0){let z2=f.get(y2);if(z2)f.delete(y2),U2=z2}if(!U2)U2=R.acquire();if(U2.setAttribute("data-index",String(r)),K2(U2,F2,A2,r))y.delete(r);else y.add(r);if(Q2(U2,r),U2.style.transform=d(r),W2.set(r,U2),!L2)L2=document.createDocumentFragment();L2.appendChild(U2)}else if(b2&&y.has(r)){let F2=Z.getEntry(r);if(F2.type==="item")if(K2(U2,F2,A2,r))y.delete(r);else y.add(r)}else if(T2=U2.classList.contains(U),b2)Q2(U2,r),U2.style.transform=d(r);else if(N2)U2.style.transform=d(r);if(!T2&&A2)if(A2(r,u2),U2.classList.toggle(R2,u2.selected),U2.classList.toggle(D2,u2.focused),u2.selected)U2.setAttribute("aria-selected","true");else U2.removeAttribute("aria-selected")}if(L2)D.appendChild(L2);Y2();let J2=n?O():q.getTotalSize();M?.(J2),V.prevRangeStart=G2,V.prevRangeEnd=_2,V.renderPending=!1;let q2=0,s=0,E2=!1;for(let r=G2;r<=_2&&q2<V.capacity;r++){let U2=Z.getEntry(r);if(U2.type==="item"){if(!E2)s=U2.dataIndex,E2=!0;V.visibleIndices[q2]=U2.dataIndex,V.visibleOffsets[q2]=q.getOffset(r),V.visibleSizes[q2]=q.getSize(r),q2++}}V.visibleCount=q2,V.startIndex=s}function j2(){if(V.destroyed)return;if(B2(),M4)console.log(`[groups] forceRender, placeholders: ${y.size}, rendered: ${W2.size}`);let W=x?.()??0;if(W!==l){l=W;let o=Z.groups,e=o.length;Z.rebuild(N,h??X);let N2=Z.groups,b2=N2.length!==e;if(!b2){for(let H2=0;H2<e;H2++)if(N2[H2].headerLayoutIndex!==o[H2].headerLayoutIndex){b2=!0;break}}if(b2){C(Z.totalEntries),E();let H2=n?O():q.getTotalSize();if(M?.(H2),Q)Q.refresh(),Q.update(V.scrollPosition);let G2=1/0,_2=Math.min(e,N2.length);for(let R2=0;R2<_2;R2++)if(N2[R2].headerLayoutIndex!==o[R2].headerLayoutIndex){G2=Math.min(N2[R2].headerLayoutIndex,o[R2].headerLayoutIndex);break}if(N2.length>e&&_2<N2.length)G2=Math.min(G2,N2[_2].headerLayoutIndex);else if(e>N2.length&&_2<e)G2=Math.min(G2,o[_2].headerLayoutIndex);if(G2<=V.prevRangeEnd)O2();let A2=b?.("_scrollbar:getInstance");if(A2)A2()?.updateBounds(H2,V.containerSize)}}V.prevRangeStart=-1,V.prevRangeEnd=-1,V.renderPending=!0,B=!0,X2()}return{name:"groups",priority:10,setup(W){q=W.sizeCache,V=W.getState(),R=W.pool,D=W.dom.content,M=W.updateContentSize.bind(W),z=W.dom.root,I=W.template,A=W.config.axis.primary==="x",H=W.config.classPrefix,Y=W.config.overscan,i=W.config.mainAxisPadding,X=W.getItem.bind(W),G=()=>W.getItemStateFn(),b=W.getMethod.bind(W),S=null,w=`${H}-item`,U=`${H}-group-header`;let o=b?.("getGridLayout"),e=b?.("getMasonryLayout");if(o){let J2=o();T=J2.columns,g=J2.gap,u=W.config.crossPadStart,p=W.config.crossAxisPadding}else if(e){let J2=e();T=J2.columns,g=J2.gap,u=W.config.crossPadStart,p=W.config.crossAxisPadding,t=!0;let q2=W.rawSizeSpec;if(typeof q2==="function")Z2=(s)=>{return q2(s,{columnWidth:$2})}}queueMicrotask(()=>{let J2=b?.("_getLoadedItem");if(J2)h=J2;let q2=b?.("_getLoadedCount");if(q2)x=q2});let N2=V.totalItems;Z=B4(N2,J,h??X),N=N2;let b2=typeof $==="number"?(J2)=>$:(J2)=>{let q2=Z.groups[J2];if(!q2)return 0;return $(q2.key,J2)},H2=q.getSize,G2=(J2)=>{let q2=Z.getEntry(J2);if(q2.type==="header"){if(J.sticky!==!1&&q2.group.groupIndex===0)return 0;return b2(q2.group.groupIndex)}return H2(q2.dataIndex)};W.setSizeConfig(G2);let _2=!1,A2=-1;if(W.registerMethod("_setSizeCacheBase",(J2)=>{C=J2}),C=q.rebuild,q.rebuild=(J2)=>{if(_2){if(!x)x=b?.("_getLoadedCount")??null;let q2=x?.()??0;if(J2!==N||q2!==A2){if(N=J2,A2=q2,!h)h=b?.("_getLoadedItem")??null;if(Z.rebuild(J2,h??((s)=>W.getItems()[s])),V.totalItems=Z.totalEntries,Q)Q.refresh(),Q.update(V.scrollPosition)}}C(Z.totalEntries)},q.rebuild(Z.totalEntries),E(),W.setVirtualTotalFn(()=>Z.totalEntries),z.classList.add(`${H}--grouped`),J.sticky!==!1){let J2=(r,U2)=>{let T2=Z.groups[U2];if(!T2)return;let F2=j(T2.key,U2);if(typeof F2==="string")r.innerHTML=F2;else r.replaceChildren(F2)},q2=Z.getHeaderHeight(0),s=A0(z,H,A,q2),E2=T>0?(r)=>{let U2=n?.get(r);return U2?U2.rowY:q.getOffset(r)}:void 0;if(Q=_4(z,Z,q,J2,H,A,0,s,E2),Q.update(V.scrollPosition),!A)W.dom.viewport.style.height=`calc(100% - ${q2}px)`;else W.dom.viewport.style.width=`calc(100% - ${q2}px)`,W.dom.viewport.style.marginLeft=`${q2}px`}let R2=!!b?.("_updateTableForGroups");if(_2=R2,R2)queueMicrotask(()=>{let J2=b?.("_getItem")??null,q2=W.getItems.bind(W);W.setGetItemFn((E2)=>{let r=Z.getEntry(E2);if(r.type==="header")return{id:`__group_header_${r.group.groupIndex}`,__groupHeader:!0,groupKey:r.group.key,groupIndex:r.group.groupIndex};return J2?J2(r.dataIndex):q2()[r.dataIndex]});let s=b?.("_updateTableForGroups");if(s)s((E2)=>!!E2.__groupHeader,j)});else W.setRenderFn(X2,j2);W.registerMethod("getGroupLayout",()=>Z),W.registerMethod("_dataToLayoutIndex",(J2)=>Z.dataToLayoutIndex(J2)),W.registerMethod("_layoutToDataIndex",(J2)=>Z.layoutToDataIndex(J2)),W.registerMethod("_getRenderedElement",(J2)=>W2.get(J2)??null),W.registerMethod("_isGroupHeader",(J2)=>{return Z.getEntry(J2).type==="header"}),W.registerMethod("_getItemLane",(J2)=>{let q2=n?.get(J2);return q2?q2.col:-1}),W.registerMethod("_getItemY",(J2)=>{let q2=n?.get(J2);return q2?q2.rowY:-1}),W.registerMethod("_getItemH",(J2)=>{return n?.get(J2)?.h??-1});let D2=W.config.startPadding,L2=i-D2;W.registerMethod("_scrollItemIntoView",(J2)=>{if(J2<0)return;let q2=n?.get(J2),s=q2?q2.rowY:q.getOffset(J2),E2=q2?.h??q.getSize(J2),r=V.containerSize,U2=V.scrollPosition;if(s<U2+D2)W.scrollTo(Math.max(0,s-D2));else if(s+E2+L2>U2+r)W.scrollTo(s+E2+L2-r)}),W.registerMethod("scrollToIndex",(J2,q2="start")=>{let s=Z.dataToLayoutIndex(J2),E2=Z.totalEntries;if(E2===0)return;let r=Math.max(0,Math.min(s,E2-1)),U2=V.containerSize,T2=n?.get(r),F2=T2?T2.rowY:q.getOffset(r),y2=T2?T2.h??q.getSize(r):q.getSize(r),g2=n?O()+i:q.getTotalSize(),z2=Math.max(0,g2-U2),S2=typeof q2==="string"?q2:q2.align??"start",m2=typeof q2==="object"?q2.behavior:void 0,a=typeof q2==="object"?q2.duration:void 0,F=n?i:0,M2=F2+y2;if(t&&k){let k2=Z.getEntry(r).group.groupIndex,v2=k[k2];if(v2!==void 0)M2=v2}let P2;switch(S2){case"center":P2=F2-(U2-y2)/2;break;case"end":P2=M2-U2+F;break;default:P2=F2}if(P2=Math.max(0,Math.min(P2,z2)),m2==="smooth"&&a&&a>0)W.smoothScrollTo(P2,a);else W.scrollTo(P2)}),W.registerDestroyHandler(()=>{for(let[,J2]of W2)J2.remove();if(W2.clear(),y.clear(),Q)Q.destroy(),Q=null;z.classList.remove(`${H}--grouped`)})},hooks:{onAfterScroll(W,o){if(Q)Q.update(W)},onResize(W,o){if(T<=0)return;C(Z.totalEntries),V2=V.crossSize,E();let e=O();if(M?.(e),Q)Q.refresh(),Q.update(V.scrollPosition);B=!0,X2()}},destroy(){if(Q)Q.destroy(),Q=null;W2.clear(),y.clear(),f.clear()}}}var X4=(J,$,K)=>{if(String(K).startsWith(C2))return!1;let j=C2+$;if(J.has(j))return J.delete(j),J.add(K),!0;return!1},G4=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1});function x2(J,$,K,j){if(K===0)return;let Z=j?-$:$,Q=J.focusedIndex+Z;if(Q<0)Q=0;if(Q>=K)Q=K-1;J.focusedIndex=Q}function Q0(J){return Array.from(J)}var c4={preventScroll:!0};function j0(J){let $=J?.mode??"single",K=J?.followFocus??!1,j=J?.focusOnClick??!1,Z=J?.keyboard??!0,Q,q,V,R,D,M,z,I,X=-1,h=new Map,A=null,H=null,Y=null,G=null,w,U=!1;function b(N){if(U)return;U=!0,A=N.getMethod("_layoutToDataIndex")??null,H=N.getMethod("_dataToLayoutIndex")??null,Y=N.getMethod("_isGroupHeader")??null,G=N.getMethod("_scrollItemIntoView")??null,T=N.getMethod("_getLoadedItem")??null;let l=N.getMethod("getGroupLayout");if(l){let x=l();w=()=>x.totalEntries}}let S=(N)=>A?A(N):N,T=null,g=(N)=>{if(T)return T(N);return q()[N]},u=(N)=>{let l=S(N);return l>=0?g(l):void 0},p=(N,l,x)=>{if(!Y)return N;let C=N;while(C>=0&&C<x){if(!Y(C))return C;C+=l}C=N-l;while(C>=0&&C<x){if(!Y(C))return C;C-=l}return N};function i(N,l){if($==="single")Q.selected.clear(),h.clear();if(Q.selected.add(N),l)h.set(N,l)}function t(N,l){if(Q.selected.has(N))Q.selected.delete(N),h.delete(N);else i(N,l)}function Z2(){Q.selected.clear(),h.clear()}function W2(N){Q.selected.delete(N),h.delete(N)}function y(N,l){let x=Math.min(N,l),C=Math.max(N,l);for(let L=x;L<=C;L++){if(Y?.(L))continue;let c=u(L);if(c)Q.selected.add(c.id),h.set(c.id,c);else if(T){let $2=S(L);if($2>=0)Q.selected.add(C2+$2)}}}function f(){let N=z.totalItems;for(let l=0;l<N;l++){if(Y?.(l))continue;let x=u(l);if(x)Q.selected.add(x.id),h.set(x.id,x);else if(T){let C=S(l);if(C>=0)Q.selected.add(C2+C)}}}function P(){if(Q.selected.size===0)return[];if(h.size>=Q.selected.size){let C=[];for(let L of Q.selected){let c=h.get(L);if(c)C.push(c)}if(C.length===Q.selected.size)return C}let N=[],l=new Set(Q.selected),x=z.totalItems;for(let C=0;C<x&&l.size>0;C++){if(Y?.(C))continue;let L=u(C);if(L&&l.has(L.id))N.push(L),h.set(L.id,L),l.delete(L.id)}return N}function v(){V(),R.emit("selection:change",{selected:Q0(Q.selected),items:P()})}let m=null,B=-1;return{name:"selection",priority:50,setup(N){N.enableListboxRole(),Q=G4(J?.initial),q=N.getItems.bind(N),V=N.forceRender.bind(N),R=N.emitter,D=N.dom;let l=N.config;if(M=N.sizeCache,z=N.getState(),I=N.scrollTo.bind(N),w=()=>z.totalItems,$==="none"){N.registerMethod("select",()=>{}),N.registerMethod("deselect",()=>{}),N.registerMethod("toggleSelect",()=>{}),N.registerMethod("selectAll",()=>{}),N.registerMethod("clearSelection",()=>{}),N.registerMethod("getSelected",()=>[]),N.registerMethod("getSelectedItems",()=>[]),N.registerMethod("selectNext",()=>{}),N.registerMethod("selectPrevious",()=>{}),N.registerMethod("_seedSelection",()=>{}),N.registerMethod("_getFocusedId",()=>{return}),N.registerMethod("_focusById",()=>{});return}let x=l.classPrefix;N.setItemStateFn((k,E)=>{if(b(N),Q.selected.size>0){let O=S(k),d=O>=0?u(k):void 0,Q2=d?.id;if(Q2!==void 0)if(Q.selected.has(Q2))E.selected=!0;else if(X4(Q.selected,O,Q2))E.selected=!0,h.delete(C2+O),h.set(Q2,d);else E.selected=!1;else E.selected=T!==null&&O>=0&&Q.selected.has(C2+O)}else E.selected=!1;E.focused=Q.focusVisible&&Q.focusedIndex===k}),N.registerMethod("_getSelectedIds",()=>Q.selected),N.registerMethod("_getFocusedIndex",()=>Q.focusVisible?Q.focusedIndex:-1),D.root.classList.add(`${x}--selectable`);let C=(k)=>{m=null,B=-1;let E=k.target.closest("[data-index]");if(!E)return!1;let O=parseInt(E.dataset.index??"-1",10);if(O<0)return!1;if(Y?.(O))return!1;if(S(O)<0)return!1;let Q2=u(O);if(!Q2)return!1;return m=Q2,B=O,!0},L=0,c=(k)=>{if(k<0)return;if(G){G(k);return}if(!L){let B2=N.getMethod("_getRowGap");L=B2?B2():0}let E=N.getNavConfig(),O=E.scrollIndex?E.scrollIndex(k):k,d=M.getOffset(O),Q2=M.getSize(O)-L,O2=z.containerSize,Y2=z.scrollPosition,K2=l.startPadding,V2=l.endPadding;if(d<Y2)I(d);else if(K2+d+Q2+V2>Y2+O2)I(K2+d+Q2+V2-O2)},$2=(k)=>{let E=D.content.querySelectorAll(`[data-index="${k}"]`),O=null;for(let d=0;d<E.length;d++){let Q2=E[d];if(Q2.style.display!=="none"){O=Q2;break}}if(!O&&E.length>0)O=E[0];D.content.setAttribute("aria-activedescendant",O?.id??`${x}-item-${k}`)},n=()=>{if(z.destroyed)return;if(b(N),!D.content.matches(":focus-visible")&&!D.root.matches(":focus-visible"))return;let k=w();if(k===0)return;let E=Q.focusedIndex>=0?Math.min(Q.focusedIndex,k-1):0;E=p(E,1,k),Q.focusedIndex=E,Q.focusVisible=!0,$2(E),c(E),V()};D.root.addEventListener("focusin",n);let _=(k)=>{if(z.destroyed)return;let E=k.relatedTarget;if(E&&D.root.contains(E))return;Q.focusVisible=!1,V(),D.content.removeAttribute("aria-activedescendant")};if(D.root.addEventListener("focusout",_),N.registerDestroyHandler(()=>{D.root.removeEventListener("focusin",n),D.root.removeEventListener("focusout",_)}),N.registerClickHandler((k)=>{if(b(N),!C(k))return;if($==="multiple"&&k.shiftKey&&Q.focusedIndex>=0){let O=X>=0?X:Q.focusedIndex,d=S(O),Q2=S(B);if(d>=0&&Q2>=0)y(O,B);Q.focusedIndex=B,Q.focusVisible=j,X=B,v();return}if(Q.focusedIndex=B,Q.focusVisible=j,X=B,(D.content.getAttribute("tabindex")!==null?D.content:D.root).focus(c4),$==="single")i(m.id,m);else t(m.id,m);v()}),Z)N.registerKeydownHandler((k)=>{b(N);let E=w();if(E===0)return;let O=N.getNavConfig(),d=Q.focusedIndex,Q2=!1,O2=!1;if(O.navigate&&(k.key==="ArrowUp"||k.key==="ArrowDown"||k.key==="ArrowLeft"||k.key==="ArrowRight"||k.key==="PageUp"||k.key==="PageDown"||k.key==="Home"||k.key==="End")){let K2=O.total?O.total():E,V2=O.navigate(Q.focusedIndex,k.key,K2);if(V2!==Q.focusedIndex)Q.focusedIndex=Math.max(0,Math.min(V2,K2-1));Q.focusVisible=!0,Q2=!0}else switch(k.key){case"ArrowUp":{let K2=O.ud||1,V2=O.lr,B2=l.axis.primary==="x";if(B2&&!V2)break;x2(Q,-(B2?V2:K2),E,l.reverse),Q.focusVisible=!0,Q2=!0;break}case"ArrowDown":{let K2=O.ud||1,V2=O.lr,B2=l.axis.primary==="x";if(B2&&!V2)break;x2(Q,B2?V2:K2,E,l.reverse),Q.focusVisible=!0,Q2=!0;break}case"ArrowLeft":{let K2=O.ud||1,V2=O.lr,B2=l.axis.primary==="x";if(!B2&&!V2)break;x2(Q,-(B2?K2:V2),E,l.reverse),Q.focusVisible=!0,Q2=!0;break}case"ArrowRight":{let K2=O.ud||1,V2=O.lr,B2=l.axis.primary==="x";if(!B2&&!V2)break;x2(Q,B2?K2:V2,E,l.reverse),Q.focusVisible=!0,Q2=!0;break}case"Home":if(E>0)Q.focusedIndex=0;Q.focusVisible=!0,Q2=!0;break;case"End":if(E>0)Q.focusedIndex=E-1;Q.focusVisible=!0,Q2=!0;break;case"PageUp":case"PageDown":{let K2=O.ud||1,V2=Math.max(0,Q.focusedIndex),B2=O.scrollIndex?O.scrollIndex(V2):V2,X2=M.getSize(B2),j2=z.containerSize,o=(X2>0?Math.max(1,Math.floor(j2/X2)):10)*K2;if(A&&H){let e=A(Q.focusedIndex),N2=k.key==="PageUp"?-o:o,b2=z.totalItems-1;Q.focusedIndex=H(Math.max(0,Math.min(b2,e+N2)))}else x2(Q,k.key==="PageUp"?-o:o,E);Q.focusVisible=!0,Q2=!0;break}case" ":case"Enter":if(k.key===" "&&k.shiftKey&&$==="multiple"&&Q.focusedIndex>=0){if(X>=0){let K2=S(X),V2=S(Q.focusedIndex);if(K2>=0&&V2>=0)y(X,Q.focusedIndex)}Q.focusVisible=!0,O2=!0,Q2=!0;break}if(Q.focusedIndex>=0){let K2=u(Q.focusedIndex);if(K2)t(K2.id,K2),X=Q.focusedIndex;Q.focusVisible=!0,O2=!0,Q2=!0}break;case"a":if((k.ctrlKey||k.metaKey)&&$==="multiple"){if(Q.selected.size===z.totalItems)Z2();else f();Q.focusVisible=!0,O2=!0,Q2=!0}break;case"Delete":case"Backspace":if(Q.selected.size>0)R.emit("delete",{selected:Q0(Q.selected),items:P()}),Q2=!0;break}if(Q.focusedIndex!==d&&Y){let K2=Q.focusedIndex>d?1:-1;Q.focusedIndex=p(Q.focusedIndex,K2,E)}let Y2=Q.focusedIndex!==d;if(k.shiftKey&&$==="multiple"&&!O2&&Y2){if(k.key==="ArrowUp"||k.key==="ArrowDown"||k.key==="ArrowLeft"||k.key==="ArrowRight"){let B2=u(Q.focusedIndex);if(B2)t(B2.id,B2);X=Q.focusedIndex,O2=!0}if((k.ctrlKey||k.metaKey)&&(k.key==="Home"||k.key==="End")){let B2=d>=0?d:Q.focusedIndex,X2=S(B2),j2=S(Q.focusedIndex);if(X2>=0&&j2>=0)y(B2,Q.focusedIndex);X=Q.focusedIndex,O2=!0}}if(K&&$==="single"&&!O2&&Y2&&Q.focusedIndex>=0){let K2=u(Q.focusedIndex);if(K2)i(K2.id,K2);O2=!0}if(Q2){if(k.preventDefault(),Y2&&Q.focusedIndex>=0){if(G||!O.navigate)c(Q.focusedIndex);$2(Q.focusedIndex)}if(O2)v();else if(Y2){if(V(),Q.focusedIndex>=0){let K2=u(Q.focusedIndex);if(K2)R.emit("focus:change",{id:K2.id,index:Q.focusedIndex})}}}});N.registerMethod("select",(...k)=>{for(let E of k)i(E);v()}),N.registerMethod("deselect",(...k)=>{for(let E of k)W2(E);v()}),N.registerMethod("toggleSelect",(k)=>{t(k),v()}),N.registerMethod("selectAll",()=>{if($!=="multiple")return;b(N),f(),v()}),N.registerMethod("clearSelection",()=>{Z2(),v()}),N.registerMethod("getSelected",()=>{return Q0(Q.selected)}),N.registerMethod("getSelectedItems",()=>{return P()}),N.registerMethod("selectNext",()=>{b(N);let k=w();if(k===0)return;if(x2(Q,1,k,l.reverse),Y)Q.focusedIndex=p(Q.focusedIndex,1,k);let E=u(Q.focusedIndex);if(E)i(E.id,E);v()}),N.registerMethod("selectPrevious",()=>{b(N);let k=w();if(k===0)return;if(x2(Q,-1,k,l.reverse),Y)Q.focusedIndex=p(Q.focusedIndex,-1,k);let E=u(Q.focusedIndex);if(E)i(E.id,E);v()}),N.registerMethod("_seedSelection",(k)=>{if($==="single"){if(k.length===1)Q.selected.add(k[0])}else for(let E of k)Q.selected.add(E)}),N.registerMethod("_isFollowFocus",()=>K),N.registerMethod("_getFocusedId",()=>{if(Q.focusedIndex<0)return;return u(Q.focusedIndex)?.id}),N.registerMethod("_focusById",(k)=>{let E=z.totalItems;for(let O=0;O<E;O++){if(Y?.(O))continue;let d=u(O);if(d&&d.id===k){Q.focusedIndex=O,Q.focusVisible=j,R.emit("focus:change",{id:k,index:O});return}}})},destroy(){h.clear()}}}var A4=!1;function H0(J){return{name:"scale",priority:20,setup(){if(!A4)A4=!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 d4=(J)=>{if(typeof J!=="object"){let $=J??2;return{top:$,right:$,bottom:$,left:$}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},D4=(J,$,K={},j="vlist",Z=!1,Q)=>{let{autoHide:q=!0,autoHideDelay:V=1000,minThumbSize:R=15,showOnHover:D=!0,showOnViewportEnter:M=!0,clickBehavior:z="scroll"}=K,I=z==="page"?"scroll":z,X=Q??J,h=d4(K.padding),A=Z?h.left:h.top,H=Z?h.right:h.bottom,Y=Z?h.bottom:h.right,G=K.hoverZoneWidth??Y+16,w=0,U=0,b=0,S=0,T=!1,g=!1,u=0,p=0,i=0,t=null,Z2=!1,W2=null,y=0,f=0,P=null,v=null,m=null,B=Z?"width":"height",N=Z?"translateX":"translateY",l=Z?(s)=>s.clientX:(s)=>s.clientY,x=Z?"left":"top",C=document.createElement("div"),L=document.createElement("div"),c=document.createElement("div"),$2=Z?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",n=()=>{if(X===J)return;let s=J.offsetTop;C.style[Z?"left":"top"]=s?`calc(var(${$2}) + ${s}px)`:`var(${$2})`,c.style[Z?"left":"top"]=`${s}px`},_=()=>{if(C.className=`${j}-scrollbar`,L.className=`${j}-scrollbar__thumb`,Z)C.classList.add(`${j}-scrollbar--horizontal`);if(K.padding!==void 0)X.style.setProperty("--vlist-custom-scrollbar-padding-top",`${h.top}px`),X.style.setProperty("--vlist-custom-scrollbar-padding-right",`${h.right}px`),X.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${h.bottom}px`),X.style.setProperty("--vlist-custom-scrollbar-padding-left",`${h.left}px`);if(K.minThumbSize!==void 0)C.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${R}px`);if(C.appendChild(L),X.appendChild(C),c.className=`${j}-scrollbar__hover`,Z)c.classList.add(`${j}-scrollbar__hover--horizontal`),c.style.height=`${G}px`;else c.style.width=`${G}px`;if(X.appendChild(c),X!==J)n()},k=()=>{if(t)clearTimeout(t),t=null},E=()=>{if(!q)return;k(),t=setTimeout(d,V)},O=()=>{if(w<=U)return;if(k(),!Z2)C.classList.add(`${j}-scrollbar--visible`),Z2=!0;if(q&&!T&&!g)E()},d=()=>{if(T||g)return;C.classList.remove(`${j}-scrollbar--visible`),Z2=!1},Q2=(s,E2)=>{if(w=s,U=E2,n(),w<=U){C.style.display="none",d();return}C.style.display="";let r=Math.max(0,U-A-H),U2=U/w;if(b=Math.max(R,U2*r),L.style[B]=`${b}px`,S=r-b,O2(i),!q)O()},O2=(s)=>{if(i=s,w<=U||S<=0)return;let E2=w-U,r=Math.min(1,Math.max(0,s/E2));L.style.transform=`${N}(${r*S}px)`},Y2=(s)=>{if(s.target===L||I!=="jump"||S<=0)return;let E2=w-U,r=C.getBoundingClientRect(),U2=l(s)-r[x],T2=Math.max(0,Math.min(U2-b/2,S));$(T2/S*E2),O()},K2=()=>{if(P!==null)clearTimeout(P),P=null;if(v!==null)cancelAnimationFrame(v),v=null;m=null},V2=(s)=>{let E2=S>0?f/s*S:0;if(y<E2)return-1;if(y>=E2+b)return 1;return 0},B2=()=>{let s=w-U,E2=V2(s);if(E2===0){K2();return}if(E2===-1){if(f<=0){K2();return}let r=Math.max(0,f-U);f=r,$(r)}else{if(f>=s){K2();return}let r=Math.min(s,f+U);f=r,$(r)}O()},X2=(s)=>{if(m===null){m=s,v=requestAnimationFrame(X2);return}let E2=w-U,r=s-m;m=s;let U2=V2(E2);if(U2===0){K2();return}let T2=12*U/1000,F2=Math.min(T2*r,U);if(U2===-1){if(f<=0){K2();return}let y2=Math.max(0,f-F2);f=y2,$(y2)}else{if(f>=E2){K2();return}let y2=Math.min(E2,f+F2);f=y2,$(y2)}k(),v=requestAnimationFrame(X2)},j2=()=>{K2(),E(),document.removeEventListener("mouseup",j2)},W=(s)=>{if(s.target===L||I!=="scroll")return;s.preventDefault();let E2=C.getBoundingClientRect();y=l(s)-E2[x],f=i,B2(),P=setTimeout(()=>{v=requestAnimationFrame(X2)},350),document.addEventListener("mouseup",j2)},o=(s)=>{s.preventDefault(),s.stopPropagation(),T=!0,u=l(s),p=i,k(),C.classList.add(`${j}-scrollbar--dragging`),document.addEventListener("mousemove",e),document.addEventListener("mouseup",N2)},e=(s)=>{if(!T)return;let E2=l(s)-u,r=S>0?E2/S:0,U2=w-U,T2=r*U2,F2=Math.max(0,Math.min(p+T2,U2));L.style.transform=`${N}(${F2/U2*S}px)`,$(F2)},N2=()=>{if(T=!1,C.classList.remove(`${j}-scrollbar--dragging`),q&&!g)E();document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",N2)},b2=Z?(s)=>s.touches[0].clientX:(s)=>s.touches[0].clientY,H2=(s)=>{s.stopPropagation(),T=!0,u=b2(s),p=i,k(),C.classList.add(`${j}-scrollbar--dragging`)},G2=(s)=>{if(!T)return;s.preventDefault();let E2=b2(s)-u,r=S>0?E2/S:0,U2=w-U,T2=r*U2,F2=Math.max(0,Math.min(p+T2,U2));L.style.transform=`${N}(${F2/U2*S}px)`,$(F2)},_2=()=>{if(T=!1,C.classList.remove(`${j}-scrollbar--dragging`),q)E()},A2=(s)=>{if(s.target===L)return;if(S<=0)return;let E2=s.touches[0],r=C.getBoundingClientRect(),U2=(Z?E2.clientX:E2.clientY)-r[x];if(I==="jump"){let T2=w-U,F2=Math.max(0,Math.min(U2-b/2,S));$(F2/S*T2)}else y=U2,f=i,B2();O()},R2=()=>{if(M)O()},D2=()=>{if(!T){if(g=!1,q)E()}},L2=()=>{g=!0,k(),O()},J2=()=>{if(g=!1,!T&&q)E()},q2=()=>{if(k(),K2(),W2!==null)cancelAnimationFrame(W2),W2=null;C.removeEventListener("click",Y2),C.removeEventListener("mousedown",W),C.removeEventListener("mouseenter",L2),document.removeEventListener("mouseup",j2),C.removeEventListener("mouseleave",J2),C.removeEventListener("touchstart",A2),L.removeEventListener("mousedown",o),L.removeEventListener("touchstart",H2),L.removeEventListener("touchmove",G2),L.removeEventListener("touchend",_2),J.removeEventListener("mouseenter",R2),J.removeEventListener("mouseleave",D2),document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",N2),c.removeEventListener("click",Y2),c.removeEventListener("mousedown",W),c.removeEventListener("mouseenter",L2),c.removeEventListener("mouseleave",J2),c.remove(),X.style.removeProperty("--vlist-custom-scrollbar-padding-top"),X.style.removeProperty("--vlist-custom-scrollbar-padding-right"),X.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),X.style.removeProperty("--vlist-custom-scrollbar-padding-left"),C.remove()};if(_(),C.addEventListener("click",Y2),C.addEventListener("mousedown",W),C.addEventListener("mouseenter",L2),C.addEventListener("mouseleave",J2),C.addEventListener("touchstart",A2,{passive:!0}),L.addEventListener("mousedown",o),L.addEventListener("touchstart",H2,{passive:!0}),L.addEventListener("touchmove",G2,{passive:!1}),L.addEventListener("touchend",_2,{passive:!0}),J.addEventListener("mouseenter",R2),J.addEventListener("mouseleave",D2),c.addEventListener("click",Y2),c.addEventListener("mousedown",W),D)c.addEventListener("mouseenter",L2),c.addEventListener("mouseleave",J2);return{show:O,hide:d,updateBounds:Q2,updatePosition:O2,isVisible:()=>Z2,destroy:q2}};function L0(J){let $=null,K,j=0,Z=0,Q=0;return{name:"scrollbar",priority:15,setup(q){let{dom:V,config:R}=q,{classPrefix:D}=R,M=R.axis.primary==="x";K=q.getState(),j=R.mainAxisPadding;let z=(I)=>{q.scrollTo(I)};if(q.registerMethod("_scrollbar:setCallback",(I)=>{z=I}),$=D4(V.viewport,(I)=>{z(I)},J,D,M,V.root),V.viewport.classList.add(`${D}-viewport--custom-scrollbar`),J?.gutter)V.viewport.classList.add(`${D}-viewport--gutter`);queueMicrotask(()=>{$?.updateBounds(K.totalSize+j,K.containerSize)}),q.registerMethod("_scrollbar:getInstance",()=>$),q.registerDestroyHandler(()=>{if($?.destroy(),$=null,V.viewport.classList.remove(`${D}-viewport--custom-scrollbar`),J?.gutter)V.viewport.classList.remove(`${D}-viewport--gutter`)})},hooks:{onAfterScroll(q){let V=K.totalSize+j,R=K.containerSize;if(V!==Z||R!==Q)Z=V,Q=R,$?.updateBounds(V,R);$?.updatePosition(q),$?.show()},onResize(){let q=K.totalSize+j,V=K.containerSize;Z=q,Q=V,$?.updateBounds(q,V)}},destroy(){$?.destroy(),$=null}}}var l4=(J)=>{try{let $=sessionStorage.getItem(J);if(!$)return;return JSON.parse($)}catch{return}};function O0(J){let $=J?.autoSave,K=J?.restore??($?l4($):void 0),j=!1,Z=null;return{name:"snapshots",priority:50,setup(Q){let{sizeCache:q,emitter:V}=Q,R=Q.getState(),D=()=>{let{scrollPosition:I,totalItems:X}=R,A=Q.getMethod("getSelected")?.();if(X===0){let T={index:0,offsetInItem:0,total:0};if(A?.length)T.selectedIds=A;return T}let H=q.indexAtOffset(I),Y=I-q.getOffset(H);Y=Math.max(0,Y);let G={index:H,offsetInItem:Y,total:X,scrollTop:I},w=q.getSize(H);if(w)G.offsetRatio=Y/w;let U=Q.getMethod("_layoutToDataIndex");if(U){let T=U(H);if(T<0){for(let g=H+1;g<X;g++)if(T=U(g),T>=0)break}if(T>=0)G.dataIndex=T}let b=Q.getMethod("_getTotal");if(b)G.dataTotal=b();if(A?.length)G.selectedIds=A;let S=Q.getMethod("_getFocusedId");if(S){let T=S();if(T!==void 0)G.focusedId=T}return G};Q.registerMethod("getScrollSnapshot",D);let M=(I,X=!0)=>{let{index:h,offsetInItem:A,selectedIds:H,focusedId:Y}=I,G=R.totalItems,w=I.dataTotal??I.total;if(G===0&&w&&w>0){let f=Q.getMethod("_setTotal");if(f)f(w),G=R.totalItems;q.rebuild(G),Q.updateContentSize(q.getTotalSize()),R.totalSize=q.getTotalSize()}if(G===0)return Promise.resolve();if(!Number.isFinite(h)||!Number.isFinite(A))return Promise.resolve();if(q.getTotal()===0)q.rebuild(G),Q.updateContentSize(q.getTotalSize()),R.totalSize=q.getTotalSize();let b=Q.getMethod("_dataToLayoutIndex"),S=h;if(I.dataIndex!==void 0&&I.dataIndex>=0)S=b?b(I.dataIndex):I.dataIndex;else if(b)S=b(h);let T=Math.max(0,Math.min(S,G-1)),g=q.getSize(T),u=I.offsetRatio!==void 0?I.offsetRatio*g:Math.min(A,g),p=Q.getMethod("_getTotal")?.(),i=I.total===G||p!==void 0&&I.dataTotal===p,t;if(I.scrollTop!==void 0&&i)t=I.scrollTop;else t=q.getOffset(T)+u;let Z2=Math.max(0,R.totalSize-R.containerSize);if(t=Math.max(0,Math.min(t,Z2)),Q.scrollTo(t),X&&H?.length){let f=Q.getMethod("select");if(f)f(...H)}let W2=Q.getMethod("loadVisibleRange"),y=()=>{if(Y===void 0)return;let f=Q.getMethod("_focusById");if(f)f(Y)};return new Promise((f)=>{let P=(v)=>{if(v)y();f()};if(W2){let v=0,m=()=>{if(R.containerSize>0){if(Math.abs(R.scrollPosition-t)>1)Q.scrollTo(t);W2().then(()=>P(!0),()=>P(!1))}else if(++v<10)requestAnimationFrame(m);else P(!1)};requestAnimationFrame(m)}else{let v=Q.getMethod("reload");if(v)requestAnimationFrame(()=>{v().then(()=>P(!0),()=>P(!1))});else requestAnimationFrame(()=>P(!0))}})};Q.registerMethod("restoreScroll",M);let z=!!(K&&$);if(Q.registerDestroyHandler(()=>{j=!0}),$){Z=()=>{if(j||z)return;let G=D();try{sessionStorage.setItem($,JSON.stringify(G))}catch{}},Q.registerMethod("_saveSnapshot",Z);let I=0,X=()=>{if(I)return;I=requestAnimationFrame(()=>{if(I=0,Z)Z()})};V.on("selection:change",X),V.on("focus:change",X);let h=0,A=()=>{if(h=0,Z)Z()},H=()=>{if(h)clearTimeout(h);h=setTimeout(A,300)};V.on("scroll",H);let Y=()=>{Z?.()};if(window.addEventListener("beforeunload",Y),Q.registerDestroyHandler(()=>{if(I)cancelAnimationFrame(I);if(h)clearTimeout(h);window.removeEventListener("beforeunload",Y)}),K&&K.total&&K.total>0){let G=Q.getMethod("_cancelAutoLoad");if(G)G();let w=Q.getMethod("_setTotal");if(w)w(K.total)}}if(K){let I=!0;if(K.selectedIds?.length){let X=Q.getMethod("_seedSelection");if(X)X(K.selectedIds),I=!1}queueMicrotask(()=>{if(M(K,I),z=!1,Z)Z()})}},hooks:{onIdle(){if(Z&&!j)Z()}},destroy(){j=!0,Z=null}}}function r4(J){let $=[];if(typeof window<"u"&&J.scroll?.element===window)$.push(W0());let K=J.item,j=J.orientation==="horizontal",Z=j?K.width!=null:K.height!=null,Q=j?K.estimatedWidth!=null:K.estimatedHeight!=null;if(!Z&&Q)$.push(B0());if(J.adapter)$.push(_0({adapter:J.adapter,...J.loading&&{loading:J.loading}}));if(J.layout==="grid"&&J.grid)$.push(M0(J.grid));if(J.layout==="masonry"&&J.masonry)$.push(X0(J.masonry));if(J.groups){let R=J.groups,D=typeof R.headerHeight==="function"?R.headerHeight("",0):R.headerHeight;$.push(D0({getGroupForIndex:R.getGroupForIndex,...D!==void 0&&{headerHeight:D},...R.headerTemplate!==void 0&&{headerTemplate:R.headerTemplate},...R.sticky!==void 0&&{sticky:R.sticky}}))}if((J.selection?.mode||"none")!=="none")$.push(j0(J.selection));else $.push(j0({mode:"none"}));$.push(H0());let V=J.scroll?.scrollbar||J.scrollbar;if(V!=="none"&&V!=="native"){let R=V&&typeof V==="object"?V:{};$.push(L0(R))}if($.push(O0()),J.plugins&&J.plugins.length>0){let R=new Set(J.plugins.map((M)=>M.name));return[...$.filter((M)=>!R.has(M.name)),...J.plugins]}return $}function nJ(J){return Q4(J,r4(J))}export{r4 as resolvePlugins,nJ as createVListFromConfig};
1
+ var Je=3,Pt="vlist";var Qe=50;var zt=50,At=2,wt=15,Rt=6,at=2000,Ht=30000,dt=16000000,Oe=150,qe=1,et=(t)=>t<0.5?2*t*t:1-(-2*t+2)**2/2,_t=300,kt=2,Ft=1.5,Dt=0.25,Vt=0.75;var Ot="x",Gt=20,ut="_isPlaceholder",_e="__placeholder_";var tt={top:0,right:0,bottom:0,left:0},$t=(t)=>{if(t==null)return tt;if(typeof t==="number")return t===0?tt:{top:t,right:t,bottom:t,left:t};if(t.length===2){let[n,s]=t;return n===0&&s===0?tt:{top:n,right:s,bottom:n,left:s}}let[e,r,o,i]=t;return e===0&&r===0&&o===0&&i===0?tt:{top:e,right:r,bottom:o,left:i}},Bt=(t,e)=>e?t.left+t.right:t.top+t.bottom,Nt=(t,e)=>e?t.top+t.bottom:t.left+t.right;function Wt(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,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,prevAriaTotal:-1,resizeCapacity(r,o,i=Je){if(o<=0||r<=0)return;let n=Math.ceil(r/o)+i*2;if(n<=e.capacity)return;let s=n+8,d=new Int32Array(s),E=new Float64Array(s),v=new Float64Array(s);d.set(e.visibleIndices),E.set(e.visibleOffsets),v.set(e.visibleSizes),e.visibleIndices=d,e.visibleOffsets=E,e.visibleSizes=v,e.capacity=s},clear(){e.visibleCount=0,e.startIndex=0}};return e}var Cn=(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}},Pn=(t,e)=>{let r=e,o=new Float64Array(0),i=(s)=>{r=s,o=new Float64Array(s+1),o[0]=0;for(let d=0;d<s;d++)o[d+1]=o[d]+t(d)};i(e);let n=(s)=>{if(r===0)return 0;if(s<=0)return 0;if(s>=o[r])return r-1;let d=0,E=r-1;while(d<E){let v=d+E+1>>>1;if(o[v]<=s)d=v;else E=v-1}return d};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}},nt=(t,e)=>{if(typeof t==="number")return Cn(t,e);return Pn(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 Ne(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 Yt(t){if(typeof t==="string"){let e=document.querySelector(t);if(!e)throw Error(`[vlist] Container not found: ${t}`);return e}return t}function Kt(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",d=' role="list"';if(o)d+=` aria-label="${o.replace(/"/g,"&quot;")}"`;if(r)d+=' aria-orientation="horizontal"';t.insertAdjacentHTML("beforeend",`<div class="${i}"><div class="${e}-viewport" style="${n}" tabindex="-1"><div class="${e}-content" style="${s}"${d}></div></div></div>`);let E=t.lastElementChild,v=E.firstElementChild,g=v.firstElementChild,w=document.createElement("div");return w.className=`${e}-live`,w.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",w.setAttribute("aria-live","polite"),w.setAttribute("aria-atomic","true"),w.setAttribute("role","status"),E.appendChild(w),{root:E,viewport:v,content:g,liveRegion:w}}function Xt(t){let{state:e,viewport:r,isX:o,wheelEnabled:i,onFrame:n,onIdle:s}=t,d=t.idleTimeout||Oe,E=t.scrollTarget??r,v=null,g=null;function w(){let S=o?r.scrollLeft:r.scrollTop;if(Math.abs(S-e.scrollPosition)<0.5)return;e.prevScrollPosition=e.scrollPosition,e.scrollPosition=S,e.scrollDirection=S>e.prevScrollPosition?1:S<e.prevScrollPosition?-1:0,n(),p()}function k(S){let a;if(o){if(Math.abs(S.deltaX)>Math.abs(S.deltaY))return;let b=r.scrollLeft,A=r.scrollWidth-r.clientWidth;if(a=Math.max(0,Math.min(b+S.deltaY*qe,A)),Math.abs(a-b)<1)return;S.preventDefault(),r.scrollLeft=a}else{let b=r.scrollWidth>r.clientWidth;if(b&&Math.abs(S.deltaX)>Math.abs(S.deltaY))return;if(b&&S.deltaX!==0)S.preventDefault(),r.scrollLeft+=S.deltaX;let A=r.scrollTop,l=r.scrollHeight-r.clientHeight;if(a=Math.max(0,Math.min(A+S.deltaY*qe,l)),Math.abs(a-A)<1)return;S.preventDefault(),r.scrollTop=a}e.prevScrollPosition=e.scrollPosition,e.scrollPosition=a,e.scrollDirection=a>e.prevScrollPosition?1:-1,n(),p()}function p(){if(v!==null)clearTimeout(v);v=setTimeout(()=>{v=null,e.scrollDirection=0,s()},d)}function D(){if(g!==null)cancelAnimationFrame(g),g=null}function h(S,a,b,A=et,l){D();let L=e.scrollPosition,F=typeof S==="function"?S:()=>S,M=F();if(Math.abs(M-L)<1){if(b)b(M);else if(o)r.scrollLeft=M;else r.scrollTop=M;l?.();return}let B=performance.now();function O(V){M=F();let q=V-B,J=Math.min(q/a,1),ie=L+(M-L)*A(J);if(b)b(ie);else if(o)r.scrollLeft=ie;else r.scrollTop=ie;if(!b)e.scrollPosition=ie;if(n(),J<1)g=requestAnimationFrame(O);else g=null,p(),l?.()}g=requestAnimationFrame(O)}return{attach(){if(E.addEventListener("scroll",w,{passive:!0}),i)E.addEventListener("wheel",k,{passive:!1})},detach(){if(E.removeEventListener("scroll",w),i)E.removeEventListener("wheel",k);if(D(),v!==null)clearTimeout(v),v=null},cancelScroll:D,smoothScrollTo:h}}function Ye(t,e,r){if(t<e)return e;if(t>r)return r;return t}function qt(t){let{state:e,viewport:r,content:o,isX:i,wheelEnabled:n,onFrame:s,onIdle:d,mainAxisPadding:E}=t,v=t.idleTimeout||Oe,g=t.runwayFactor??kt,w=t.wrap??null,k=w!==null,p=t.scrollTarget??r,D=0,h=0,S=0,a=null,b=null;function A(){return i?r.scrollLeft:r.scrollTop}function l(z){if(i)r.scrollLeft=z;else r.scrollTop=z}function L(z){let _=k?z:Ye(z,0,h);e.prevScrollPosition=e.scrollPosition,e.scrollPosition=_,e.scrollDirection=_>e.prevScrollPosition?1:_<e.prevScrollPosition?-1:0;let C=D/2;if(k){e.baseOffset=_-C,l(C);return}let R=Ye(_-C,0,S);e.baseOffset=R,l(Ye(_-R,0,D))}function F(z){L(z),s(),q()}function M(){let z=A(),_=e.baseOffset+z;if(Math.abs(_-e.scrollPosition)<0.5)return;if(e.prevScrollPosition=e.scrollPosition,e.scrollPosition=_,e.scrollDirection=_>e.prevScrollPosition?1:_<e.prevScrollPosition?-1:0,B(z),k)O();s(),q()}function B(z){let _=D*Dt,C=D*Vt,R=D/2;if(k){if(z>=_&&z<=C)return;e.baseOffset=e.scrollPosition-R,l(R);return}if(S<=0)return;let N=e.baseOffset,m=z<_&&N>0,u=z>C&&N<S;if(!m&&!u)return;let U=e.scrollPosition,G=Ye(U-R,0,S);if(G===N)return;e.baseOffset=G,l(Ye(U-G,0,D))}function O(){let z=w.lapSize();if(z<=0)return;let _=e.scrollPosition-w.home(),C=Math.trunc(_/z);if(Math.abs(C)<w.thresholdLaps)return;let R=C*z;e.scrollPosition-=R,e.prevScrollPosition-=R,e.baseOffset-=R}function V(z){let _;if(i)if(Math.abs(z.deltaX)>Math.abs(z.deltaY)){if(!k)return;_=z.deltaX}else _=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;_=z.deltaY}let C=e.scrollPosition,R=C+_*qe,N=k?R:Ye(R,0,h);if(Math.abs(N-C)<1)return;if(z.preventDefault(),F(N),k)O()}function q(){if(a!==null)clearTimeout(a);a=setTimeout(()=>{a=null,e.scrollDirection=0,d()},v)}function J(){if(b!==null)cancelAnimationFrame(b),b=null}function ie(z,_,C,R=et,N){J();let m=e.scrollPosition,u=typeof z==="function"?z:()=>z,U=u();if(Math.abs(U-m)<1){F(U),N?.();return}let G=performance.now();function H(y){U=u();let W=Math.min((y-G)/_,1);if(L(m+(U-m)*R(W)),s(),W<1)b=requestAnimationFrame(H);else b=null,q(),N?.()}b=requestAnimationFrame(H)}function fe(z){let _=e.containerSize,C=z+E,R=_*g,N=k?R:Math.min(C,R);D=Math.max(0,N-_),h=Math.max(0,C-_),S=Math.max(0,C-N),e.totalSize=z,o.style[i?"width":"height"]=N+"px",L(e.scrollPosition)}return{attach(){if(p.addEventListener("scroll",M,{passive:!0}),n)p.addEventListener("wheel",V,{passive:!1})},detach(){if(p.removeEventListener("scroll",M),n)p.removeEventListener("wheel",V);if(J(),a!==null)clearTimeout(a),a=null},cancelScroll:J,smoothScrollTo:ie,setLogical:F,getLogical(){return e.scrollPosition},getMaxLogical(){return h},refresh:fe}}function zn(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 An(t,e){let r=wn(t,e);return t.getOffset(r.index)+r.offsetPx}function wn(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 jt(t){let{sizeCache:e,getPixel:r,setPixel:o,getContainerSize:i}=t;function n(){let d=e.getTotalSize()-i();return d>0?d:0}function s(d){if(d<=0)return 0;let E=n();return d>E?E:d}return{getLogical(){return zn(e,r())},setLogical(d){o(s(An(e,d)))},getPixelEquivalent(){return r()},setPixelEquivalent(d){o(s(d))},getMaxPixelEquivalent:n,scrollByPx(d){o(s(r()+d))}}}var je=[],Rn={calculate:je,commit:je,afterScroll:je,idle:je,resize:je};function Zt(t){if(t.length===0)return Rn;let e=[],r=[],o=[],i=[],n=[];for(let s=0;s<t.length;s++){let d=t[s].hooks;if(d===void 0)continue;if(d.onCalculate!==void 0)e.push(d.onCalculate);if(d.onCommit!==void 0)r.push(d.onCommit);if(d.onAfterScroll!==void 0)o.push(d.onAfterScroll);if(d.onIdle!==void 0)i.push(d.onIdle);if(d.onResize!==void 0)n.push(d.onResize)}return{calculate:e,commit:r,afterScroll:o,idle:i,resize:n}}function Jt(t,e){for(let r=0;r<t.length;r++)t[r](e)}function Qt(t,e){for(let r=0;r<t.length;r++)t[r](e)}function ct(t,e,r){for(let o=0;o<t.length;o++)t[o](e,r)}function en(t){for(let e=0;e<t.length;e++)t[e]()}function tn(t,e,r){for(let o=0;o<t.length;o++)t[o](e,r)}function nn(t,e,r,o,i,n,s,d){let E=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:E,crossStartProp:E?e?"top":"left":"",crossEndProp:E?e?"bottom":"right":"",crossStartVal:E?o+"px":"",crossEndVal:E?i+"px":"",oddClass:n,emitter:d??null,indexMap:null,ariaTotalFn:null}}function Hn(t,e,r,o,i){if(t.containerSize<=0||t.totalItems===0)return t.clear(),!0;let{scrollPosition:n,containerSize:s,totalItems:d}=t,E=i??0;t.totalSize=e.getTotalSize();let v=e.indexAtOffset(E>0?Math.max(0,n-E):n),g=e.indexAtOffset(n+s);if(g<d-1)g++;v=Math.max(0,v),g=Math.min(d-1,Math.max(0,g));let w=Math.max(0,v-r),k=Math.min(d-1,g+r),p=Math.ceil(s/1)+r*2+10,D=k-w+1,h=Math.min(D,t.capacity,p);if(w===t.prevRangeStart&&k===t.prevRangeEnd&&!t.renderPending)return!1;t.visibleCount=h,t.startIndex=w;for(let S=0;S<h;S++){let a=w+S;t.visibleIndices[S]=a,t.visibleOffsets[S]=e.getOffset(a),t.visibleSizes[S]=e.getSize(a)}return Jt(o.calculate,t),t.prevRangeStart=w,t.prevRangeEnd=k,t.renderPending=!1,!0}var Re={selected:!1,focused:!1};function _n(t,e,r){for(let o=0;o<e;o++)if(t[o]===r)return!0;return!1}function kn(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 Fn(t,e,r,o,i,n,s,d,E,v){let g=E?null:i(),{visibleCount:w,visibleIndices:k}=t,p=s.ariaTotalFn?s.ariaTotalFn():t.totalItems,D=s.interactive?String(p):"",h=s.interactive&&p!==t.prevAriaTotal,S=null,a=s.indexMap;for(let b=0;b<w;b++){let A=k[b],l=a?a(A):A,L=t.visibleOffsets[b],F=t.visibleSizes[b],M=E?E(A):g[A];if(v)v(l,Re);else Re.selected=!1,Re.focused=!1;let B=n.get(A),O=B;if(B===void 0){let V=e.acquire();if(M!==void 0){let ie;try{ie=o(M,l,Re)}catch(fe){if(s.emitter)s.emitter.emit("error",{error:fe instanceof Error?fe:Error(String(fe)),context:`template:render:${l}`});e.release(V);continue}if(typeof ie==="string")V.innerHTML=ie;else V.textContent="",V.appendChild(ie);Ne(V)}if(V.setAttribute("role",s.itemRole),V.setAttribute("data-index",String(l)),s.interactive)V.id=s.prefix+"-item-"+A,V.setAttribute("aria-posinset",String(l+1)),V.setAttribute("aria-setsize",D);if(M!==void 0){let ie=String(M.id);if(V.setAttribute("data-id",ie),ie.startsWith(_e))V.classList.add(s.placeholderClass)}if(s.hasCrossPad)V.style.setProperty(s.crossStartProp,s.crossStartVal),V.style.setProperty(s.crossEndProp,s.crossEndVal);if(v){if(V.classList.toggle(s.selectedClass,Re.selected),V.classList.toggle(s.focusedClass,Re.focused),Re.selected)V.setAttribute("aria-selected","true");else V.removeAttribute("aria-selected");V._lastSelected=Re.selected,V._lastFocused=Re.focused}if(s.oddClass)V.classList.toggle(s.oddClass,(A&1)===1);let q=L-t.baseOffset+s.startPadding;V.style.transform=s.translateProp+q+"px)",V._lastOffset=q;let J=F-s.gap;if(V.style[s.sizeProp]=J+"px",V._lastSize=J,V._lastItem=M,n.set(A,V),S===null)S=document.createDocumentFragment();S.appendChild(V)}else{if(h)B.setAttribute("aria-setsize",D);if(M!==void 0&&O._lastItem!==M){let J=B.getAttribute("data-id"),ie=String(M.id),fe;try{fe=o(M,l,Re)}catch(z){if(s.emitter)s.emitter.emit("error",{error:z instanceof Error?z:Error(String(z)),context:`template:render:${l}`});continue}if(typeof fe==="string")B.innerHTML=fe;else B.textContent="",B.appendChild(fe);if(Ne(B),B.setAttribute("data-id",ie),O._lastItem=M,J!==ie){let z=J!==null&&J.startsWith(_e),_=ie.startsWith(_e);if(z!==_)B.classList.toggle(s.placeholderClass,_);if(z&&!_)B.classList.add(s.replacedClass),setTimeout(()=>{B.classList.remove(s.replacedClass)},300)}}if(v){if(O._lastSelected!==Re.selected){if(B.classList.toggle(s.selectedClass,Re.selected),Re.selected)B.setAttribute("aria-selected","true");else B.removeAttribute("aria-selected");O._lastSelected=Re.selected}if(O._lastFocused!==Re.focused)B.classList.toggle(s.focusedClass,Re.focused),O._lastFocused=Re.focused}let V=L-t.baseOffset+s.startPadding;if(O._lastOffset!==V)B.style.transform=s.translateProp+V+"px)",O._lastOffset=V;let q=F-s.gap;if(O._lastSize!==q)B.style[s.sizeProp]=q+"px",O._lastSize=q}}if(S!==null)r.appendChild(S);if(w>0&&kn(k,w)){let b=k[0],A=k[w-1];for(let[l,L]of n)if(l<b||l>A)L.remove(),e.release(L),n.delete(l)}else for(let[b,A]of n)if(!_n(k,w,b))A.remove(),e.release(A),n.delete(b);if(s.interactive)t.prevAriaTotal=t.totalItems;Qt(d.commit,t)}function mt(t,e,r,o,i,n,s,d,E,v,g,w){if(Hn(t,e,r,v,E.startPadding))Fn(t,o,i,n,s,d,E,v,g,w)}var ft=()=>{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((d)=>{try{d(s)}catch(E){console.error(`[vlist] Error in event handler for "${String(n)}":`,E)}})},clear:(n)=>{if(n)delete t[n];else for(let s in t)delete t[s]}}};var on=2,rn=(t=0)=>({velocity:0,sampleCount:0}),sn=(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 Dn(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 Vn(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 On(t,e){let r=Vn(t.orientation,e),o=r.primary==="x",i=$t(t.padding);return{axis:r,hasCrossAxis:r.cross!==void 0,overscan:t.overscan??Je,reverse:t.reverse??!1,classPrefix:t.classPrefix??Pt,mainAxisPadding:Bt(i,o),crossAxisPadding:Nt(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 $n(t){let e=[...t];return e.sort((r,o)=>(r.priority??50)-(o.priority??50)),e}function Bn(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 ln(t,e=[]){Dn(t);let r=On(t,e),o=r.axis.primary==="x",i=t.scroll?.mode==="bounded",n=Gn(t,o),s=r.gap,d=s>0?typeof n==="function"?(le)=>n(le)+s:n+s:n,E=typeof n==="number"?n:20,v=t.items?.length??0,g=r.striped?`${r.classPrefix}-item--odd`:"",w=ft(),k=nn(r.classPrefix,o,r.startPadding,r.crossPadStart,r.crossPadEnd,g,s,w),p=e.length>0?$n(e):e;if(e.length>0)Bn(p);let D=Yt(t.container),h=Kt(D,r.classPrefix,o,t.ariaLabel);if(t.scroll?.scrollbar==="none")h.viewport.classList.add(`${r.classPrefix}-viewport--no-scrollbar`);if(t.scroll?.gutter==="stable")h.viewport.classList.add(`${r.classPrefix}-viewport--gutter-stable`);let a=nt(d,v);if(s>0){let le=a.getTotalSize;a.getTotalSize=()=>{let I=le();return I>0?I-s:0}}let b=Ut(r.classPrefix),A=Math.ceil(4096/E)+r.overscan*2+8,l=Wt(A);l.totalItems=v;let L=t.items??[],F=()=>L,M=new Map,B=rn(),O={velocity:0,reliable:!1},V={range:{start:0,end:-1}},q={scrollPosition:0,direction:"down"},J={scrollPosition:0},ie=-1,fe=-1,z=-1,_=null,C=Zt(p),R=new Map,N=[],m=[],u=[],U=null,G=null,H=null,y=null,W=null,Q=null,Z=null,f=null,P=null,x=null,T=null,Y=!1,ne=!1,xe=null,ue=0,ee=0,ce=null,ge=null,be=null,oe=null,c=null,X=null,te=null,ae=null,Te=null;l.containerSize=o?h.viewport.clientWidth:h.viewport.clientHeight,l.crossSize=o?h.viewport.clientHeight:h.viewport.clientWidth;let ye=jt({sizeCache:a,getPixel:()=>G?G():l.scrollPosition,setPixel:(le)=>{if(H)H(le);else if(o)h.viewport.scrollLeft=le;else h.viewport.scrollTop=le},getContainerSize:()=>l.containerSize});if(e.length>0){let le={dom:h,sizeCache:a,scroll:ye,pool:b,config:r,emitter:w,template:t.item.template,registerMethod(I,pe){R.set(I,pe)},getMethod(I){return R.get(I)},registerClickHandler(I){N.push(I)},registerKeydownHandler(I){m.push(I)},registerDestroyHandler(I){u.push(I)},enableListboxRole(){let I=h.content.getAttribute("role");if(!I||I==="list")h.content.setAttribute("role","listbox"),h.content.setAttribute("tabindex","0");k.itemRole="option",k.interactive=!0},setSizeConfig(I){let pe=nt(I,l.totalItems),Pe=R.get("_setSizeCacheBase");if(Pe){let Ae=a.rebuild;Object.assign(a,pe),a.rebuild=Ae,Pe(pe.rebuild)}else Object.assign(a,pe)},setScrollFns(I,pe){G=I,H=pe},setBoundedWrap(I){Te=I},cancelScroll(){Me?.cancelScroll()},setVirtualTotalFn(I){U=I,k.ariaTotalFn=I},setIndexMapFn(I){k.indexMap=I},getItems:F,getItem(I){return Q?Q(I):L[I]},getState(){return l},rebuildSizeCache(){a.rebuild(l.totalItems)},updateContentSize(I){if(ae){ae.refresh(I);return}l.totalSize=I,h.content.style[o?"width":"height"]=I+r.mainAxisPadding+"px"},setRenderFn(I,pe){y=I,W=pe},renderIfNeeded(){se()},forceRender(){K()},setGetItemFn(I){Q=I},setItemStateFn(I){Z=I},getItemStateFn(){return Z},get rawSizeSpec(){return n},scrollTo(I){if(H)H(I);else if(o)h.viewport.scrollLeft=I;else h.viewport.scrollTop=I},smoothScrollTo(I,pe,Pe,Ae){if(oe)oe(I,pe,H??void 0,Pe,Ae);else le.scrollTo(typeof I==="function"?I():I)},disableDefaultScroll(){Y=!0},disableDefaultResize(){ne=!0},setScrollTarget(I){xe=I},setScrollToPosFn(I){c=I},setScrollToIndexFn(I){X=I},onScrollFrame:j,onScrollIdle:Ie,removeItemById(I){if(f)return f(I);let pe=L.findIndex((Pe)=>Pe.id===I);if(pe===-1)return-1;return L.splice(pe,1),l.totalItems=L.length,a.rebuild(l.totalItems),he(),pe},insertItemAt(I,pe){if(P){P(I,pe);return}L.splice(pe,0,I),l.totalItems=L.length,a.rebuild(l.totalItems),he()},setRemoveItemFn(I){f=I},setInsertItemFn(I){P=I},setUpdateItemFn(I){x=I},setGetIndexByIdFn(I){T=I},getRenderedElement(I){let pe=R.get("_getRenderedElement");if(pe)return pe(I);return M.get(I)??null},setNavConfig(I){if(I.ud!==void 0)ue=I.ud;if(I.lr!==void 0)ee=I.lr;if(I.scrollIndex)ce=I.scrollIndex;if(I.navigate)ge=I.navigate;if(I.total)be=I.total},getNavConfig:(()=>{let I={ud:0,lr:0,scrollIndex:null,navigate:null,total:null};return()=>(I.ud=ue,I.lr=ee,I.scrollIndex=ce,I.navigate=ge,I.total=be,I)})()};for(let I of p)if(I.setup)try{I.setup(le)}catch(pe){w.emit("error",{error:pe instanceof Error?pe:Error(String(pe)),context:`plugin:setup:${I.name}`})}}let ve=r.classPrefix+"--scrolling",me=!1,Se=t.scroll?.idleTimeout??Oe;function Ce(){if(q.scrollPosition=ye.getPixelEquivalent(),o)q.direction=l.scrollDirection>0?"right":"left";else q.direction=l.scrollDirection>0?"down":"up";if(w.emit("scroll",q),sn(B,l.scrollPosition),O.velocity=B.velocity,O.reliable=B.sampleCount>=on,w.emit("velocity:change",O),l.startIndex!==ie||l.prevRangeEnd!==fe)ie=l.startIndex,fe=l.prevRangeEnd,V.range.start=l.startIndex,V.range.end=l.prevRangeEnd,w.emit("range:change",V)}let Le=!1;function he(){if(y)return;let le=a.getTotalSize();if(ae){ae.refresh(le);return}if(h.content.style[o?"width":"height"]=le+r.mainAxisPadding+"px",!Le&&le>dt)Le=!0,w.emit("error",{error:Error(`Content size (${le}px) exceeds browser limit (${dt}px). Enable bounded scroll (scroll: { mode: "bounded" }) for large datasets.`),context:"content:size:overflow"})}function re(){if(!te)return;if((U?U():L.length)===0)return;let I=te;te=null,Ke.scrollToIndex(I.index,I.alignOrOptions)}function se(){if(re(),y)y();else mt(l,a,r.overscan,b,h.content,t.item.template,F,M,k,C,Q,Z)}function j(){if(!me)me=!0,h.root.classList.add(ve);if(se(),ct(C.afterScroll,l.scrollPosition,l.scrollDirection),l.scrollPosition!==z)z=l.scrollPosition,Ce()}function Ie(){if(me)me=!1,h.root.classList.remove(ve);l.scrollDirection=0,en(C.idle),O.velocity=0,O.reliable=!1,w.emit("velocity:change",O),J.scrollPosition=ye.getPixelEquivalent(),w.emit("scroll:idle",J)}function K(){if(re(),l.renderPending=!0,W)W();else mt(l,a,r.overscan,b,h.content,t.item.template,F,M,k,C,Q,Z);if(ct(C.afterScroll,l.scrollPosition,l.scrollDirection),l.scrollPosition!==z){if(z=l.scrollPosition,Ce(),_!==null)clearTimeout(_);_=setTimeout(Ie,Se)}}let de=Y?!1:t.scroll?.wheel!==!1,Me;if(Y&&(i||Te))throw Error(`vlist: page() is not compatible with ${Te?"the carousel plugin":'scroll: { mode: "bounded" }'} — bounded page-mode scrolling is not implemented yet.`);if(i||Te)ae=qt({state:l,viewport:h.viewport,content:h.content,isX:o,wheelEnabled:de,idleTimeout:t.scroll?.idleTimeout??Oe,...xe?{scrollTarget:xe}:{},mainAxisPadding:r.mainAxisPadding,...t.scroll?.runway!==void 0?{runwayFactor:Math.max(Ft,t.scroll.runway)}:{},...Te?{wrap:Te}:{},onFrame:j,onIdle:Ie}),Me=ae,G=()=>l.scrollPosition,H=(le)=>ae.setLogical(le);else Me=Xt({state:l,viewport:h.viewport,isX:o,wheelEnabled:de,idleTimeout:t.scroll?.idleTimeout??Oe,...xe?{scrollTarget:xe}:{},onFrame:j,onIdle:Ie});oe=Me.smoothScrollTo;function Ee(le){let pe=le.target.closest("[data-index]");if(!pe)return null;let Pe=parseInt(pe.getAttribute("data-index"),10);if(Number.isNaN(Pe))return null;let Ae=R.get("_layoutToDataIndex"),ke;if(Ae){let Fe=Ae(Pe);if(Fe<0)return null;let Xe=R.get("_getItem");ke=Xe?Xe(Fe):Q?Q(Fe):L[Fe]}else ke=Q?Q(Pe):L[Pe];if(ke===void 0)return null;return{item:ke,index:Pe}}function we(le){for(let pe=0;pe<N.length;pe++)N[pe](le);let I=Ee(le);if(I)w.emit("item:click",{item:I.item,index:I.index,event:le})}function Be(le){let I=Ee(le);if(I)w.emit("item:dblclick",{item:I.item,index:I.index,event:le})}function He(le){let I=Ee(le);if(I)w.emit("item:contextmenu",{item:I.item,index:I.index,event:le})}function Ue(le){let I=le.target?.tagName;if((I==="INPUT"||I==="TEXTAREA"||I==="SELECT")&&!((le.ctrlKey||le.metaKey)&&(le.key==="f"||le.key==="F")))return;for(let pe=0;pe<m.length;pe++)m[pe](le)}if(h.content.addEventListener("click",we),h.content.addEventListener("dblclick",Be),h.content.addEventListener("contextmenu",He),m.length>0)h.root.addEventListener("keydown",Ue);let Ve=null;if(!ne)setTimeout(()=>{if(l.destroyed)return;Ve=new ResizeObserver((I)=>{for(let pe of I){let{width:Pe,height:Ae}=pe.contentRect,ke=o?Pe:Ae,Fe=o?Ae:Pe;if(Math.abs(ke-l.containerSize)<1&&Math.abs(Fe-l.crossSize)<1)continue;if(l.containerSize=ke,l.crossSize=Fe,l.resizeCapacity(ke,E,r.overscan),ae)ae.refresh(a.getTotalSize());K(),tn(C.resize,Pe,Ae),w.emit("resize",{width:Pe,height:Ae})}}),Ve.observe(h.viewport)},0);l.resizeCapacity(l.containerSize,E,r.overscan),he(),l.initialized=!0;let ze=null;if(t.defer)ze=requestAnimationFrame(()=>{if(ze=null,!l.destroyed)se()});else se();if(!Y)Me.attach();let Ke={get element(){return h.root},get items(){return L},get total(){return U?U():L.length},setItems(le){L=[...le],l.totalItems=L.length,a.rebuild(l.totalItems),he(),K()},appendItems(le){L.push(...le),l.totalItems=L.length,a.rebuild(l.totalItems),he(),K()},prependItems(le){L.unshift(...le),l.totalItems=L.length,a.rebuild(l.totalItems),he(),K()},updateItem(le,I){if(x){if(!x(le,I))return}else{let pe=L.findIndex((Pe)=>Pe.id===le);if(pe===-1)return;L[pe]={...L[pe],...I}}K()},insertItem(le,I){if(P)P(le,I??l.totalItems);else{if(I===void 0)L.push(le);else L.splice(I,0,le);l.totalItems=L.length,a.rebuild(l.totalItems),he()}K()},removeItem(le){if(f){if(f(le)<0)return}else{let I=L.findIndex((pe)=>pe.id===le);if(I===-1)return;L.splice(I,1),l.totalItems=L.length,a.rebuild(l.totalItems),he()}K()},removeItems(le){if(f){let Ae=0;for(let ke of le)if(f(ke)>=0)Ae++;if(Ae>0)K();return Ae}let I=new Set(le),pe=L.length;L=L.filter((Ae)=>!I.has(Ae.id));let Pe=pe-L.length;if(Pe>0)l.totalItems=L.length,a.rebuild(l.totalItems),he(),l.renderPending=!0,se();return Pe},getItemAt(le){if(k.indexMap)return L[le];return Q?Q(le):L[le]},getIndexById(le){if(T)return T(le);return L.findIndex((I)=>I.id===le)},scrollToIndex(le,I="start"){let pe=U?U():L.length;if(pe===0){te={index:le,alignOrOptions:I};return}let Pe=Math.max(0,Math.min(le,pe-1)),Ae=typeof I==="string"?I:I.align??"start",ke=typeof I==="object"?I.behavior:void 0,Fe=typeof I==="object"?I.duration:void 0,Xe=typeof I==="object"?I.easing:void 0;if(X&&X(Pe,Ae,ke,Fe,Xe)!==!1)return;let lt=a.getOffset(Pe),Mt=a.getSize(Pe),Ze=l.containerSize,Ln=a.getTotalSize(),Ct=r.mainAxisPadding,En=Math.max(0,Ln+Ct-Ze),De;if(c)De=c(Pe,a,Ze,pe,Ae);else{let Mn=r.startPadding;switch(Ae){case"center":De=Mn+lt-(Ze-Mt)/2;break;case"end":De=lt+Mt+Ct-Ze;break;default:De=lt}De=Math.max(0,Math.min(De,En))}if(ke==="smooth")Me.smoothScrollTo(De,Fe??_t,H??void 0,Xe);else if(H)H(De);else if(o)h.viewport.scrollLeft=De;else h.viewport.scrollTop=De},getScrollPosition(){return ye.getPixelEquivalent()},on:w.on.bind(w),off:w.off.bind(w),destroy(){if(l.destroyed)return;if(l.destroyed=!0,me)me=!1,h.root.classList.remove(ve);if(ze!==null)cancelAnimationFrame(ze),ze=null;if(_!==null)clearTimeout(_),_=null;Me.detach(),Ve?.disconnect(),h.content.removeEventListener("click",we),h.content.removeEventListener("dblclick",Be),h.content.removeEventListener("contextmenu",He),h.root.removeEventListener("keydown",Ue);let le=[];for(let I of u)try{I()}catch(pe){le.push(pe instanceof Error?pe:Error(String(pe)))}for(let I of p)if(I.destroy)try{I.destroy()}catch(pe){le.push(pe instanceof Error?pe:Error(String(pe)))}for(let[,I]of M)I.remove();if(M.clear(),b.clear(),h.root.remove(),w.emit("destroy",void 0),w.clear(),le.length>0)for(let I of le)console.error("vlist: error during destroy:",I)}};for(let[le,I]of R)Ke[le]=I;return Ke}var ot=(t)=>t==null?0:typeof t==="function"?t():t;function gt(t){let e=t?.scrollPadding,r,o;return{name:"page",priority:5,setup(i){let{dom:n,sizeCache:s,config:d,emitter:E}=i,v=d.axis.primary==="x",g=window,w=i.getState();if(i.disableDefaultScroll(),i.disableDefaultResize(),n.root.style.overflow="visible",n.root.style.height="auto",v)n.viewport.style.overflowX="visible",n.viewport.style.overflowY="visible";else n.viewport.style.overflow="visible";n.viewport.classList.remove(`${d.classPrefix}-viewport--custom-scrollbar`),i.setScrollFns(()=>{let a=n.viewport.getBoundingClientRect();return Math.max(0,v?-a.left:-a.top)},(a)=>{let b=n.viewport.getBoundingClientRect(),A=(v?b.left+g.scrollX:b.top+g.scrollY)+a;if(v)g.scrollTo({left:A,top:g.scrollY,behavior:"instant"});else g.scrollTo({left:g.scrollX,top:A,behavior:"instant"})}),w.containerSize=v?g.innerWidth:g.innerHeight,w.crossSize=v?g.innerHeight:g.innerWidth;let k=null,p=()=>{let a=n.viewport.getBoundingClientRect(),b=Math.max(0,v?-a.left:-a.top);if(w.prevScrollPosition=w.scrollPosition,w.scrollPosition=b,w.scrollDirection=b>w.prevScrollPosition?1:b<w.prevScrollPosition?-1:0,i.onScrollFrame(),k!==null)clearTimeout(k);k=setTimeout(()=>{k=null,i.onScrollIdle()},150)};g.addEventListener("scroll",p,{passive:!0}),o=()=>g.removeEventListener("scroll",p);let{innerWidth:D,innerHeight:h}=g,S=()=>{let{innerWidth:a,innerHeight:b}=g;if((v?Math.abs(a-D):Math.abs(b-h))<1)return;D=a,h=b,w.containerSize=v?a:b,w.crossSize=v?b:a,i.forceRender(),E.emit("resize",{width:a,height:b})};if(g.addEventListener("resize",S),r=()=>g.removeEventListener("resize",S),e)i.setScrollToPosFn((a,b,A,l,L)=>{let F=ot(v?e.left:e.top),M=ot(v?e.right:e.bottom);if(l===0)return 0;let B=Math.max(0,Math.min(a,l-1)),O=b.getOffset(B),V=b.getSize(B),q=b.getTotalSize(),J=Math.max(0,q-A+M),ie;switch(L){case"center":ie=O-F-(A-F-M-V)/2;break;case"end":ie=O-A+V+M;break;default:ie=O-F}return Math.max(-F,Math.min(ie,J))}),i.registerMethod("_scrollItemIntoView",(a)=>{let b=v?g.innerWidth:g.innerHeight,A=ot(v?e.left:e.top),l=ot(v?e.right:e.bottom),L=n.viewport.getBoundingClientRect(),F=v?g.scrollX:g.scrollY,M=v?L.left:L.top,B=M+F,O=s.getOffset(a),V=s.getSize(a),q=M+O,J=b-l,ie=F;if(q<A)ie=B+O-A;else if(q+V>J)ie=B+O+V-J;if(ie!==F)if(v)g.scrollTo({left:ie,top:g.scrollY,behavior:"instant"});else g.scrollTo({left:g.scrollX,top:ie,behavior:"instant"})});i.registerDestroyHandler(()=>{if(o?.(),r?.(),k!==null)clearTimeout(k)})},destroy(){o?.(),r?.(),o=void 0,r=void 0}}}function pt(t){let e=t?.gap??0,r=null,o=null,i,n,s,d,E=new Map,v=new WeakMap,g=0,w=!1,k=!1,p=!1,D=2;function h(l){return E.get(l)??d}function S(){return Math.max(0,o.sizeCache.getTotalSize()+o.config.mainAxisPadding-i.containerSize)}function a(){let l=S();return l>0&&i.scrollPosition>=l-D}function b(){let l=S();if(l>i.scrollPosition)o.scrollTo(l)}function A(){o.updateContentSize(o.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(l){if(o=l,i=l.getState(),n=l.config.axis.primary==="x",s=n?"width":"height",e===0)e=l.config.gap;if(d=typeof l.rawSizeSpec==="function"?l.rawSizeSpec(0)+e:l.rawSizeSpec+e,l.setSizeConfig(h),e>0){let M=l.sizeCache.getTotalSize;l.sizeCache.getTotalSize=()=>{let B=M();return B>0?B-e:0}}r=new ResizeObserver((M)=>{if(i.destroyed||!o)return;let B=!1,O=l.sizeCache.indexAtOffset(i.scrollPosition);for(let fe of M){let z=fe.target,_=v.get(z);if(_===void 0)continue;if(z.getAttribute("data-index")!==String(_)){r.unobserve(z);continue}if(E.has(_))continue;let C=fe.borderBoxSize[0];if(!C)continue;let R=n?C.inlineSize:C.blockSize;if(R<=0)continue;let N=R+e,m=d;if(E.set(_,N),B=!0,_<O&&N!==m)g+=N-m;r.unobserve(z),z.style[s]=`${R}px`}if(!B)return;let V=a();if(l.rebuildSizeCache(),g)l.scrollTo(i.scrollPosition+g),g=0;let q=i.scrollDirection!==0,J=i.totalItems>0&&i.prevRangeEnd>=i.totalItems-1,ie=k&&!p;if(ie||V||J||!q){if(A(),w=!1,ie||V)b()}else w=!0;l.forceRender()}),l.setScrollToIndexFn((M,B,O,V,q)=>{let J=M>=i.totalItems-1&&B==="end";if(k=J,p=!1,!J)return!1;let ie=l.config.mainAxisPadding,fe=()=>{let z=l.sizeCache.getTotalSize();return Math.max(0,z+ie-i.containerSize)};if(O==="smooth")p=!0,l.smoothScrollTo(fe,V??300,q,()=>{p=!1});else l.scrollTo(fe())});let L=()=>{k=!1},F=l.dom.viewport;F.addEventListener("wheel",L,{passive:!0}),F.addEventListener("touchstart",L,{passive:!0}),l.registerDestroyHandler(()=>{F.removeEventListener("wheel",L),F.removeEventListener("touchstart",L)}),l.registerMethod("isMeasured",(M)=>E.has(M)),l.registerMethod("setMeasuredSize",(M,B)=>{E.set(M,B)}),l.registerMethod("getMeasuredCount",()=>E.size),l.registerDestroyHandler(()=>{if(r)r.disconnect(),r=null})},hooks:{onCommit(l){if(!r||!o)return;for(let L=0;L<l.visibleCount;L++){let F=l.visibleIndices[L];if(E.has(F))continue;let M=o.getRenderedElement(F);if(!M)continue;M.style[s]="",v.set(M,F),r.observe(M)}},onIdle(){if(!o||!w)return;let l=a();if(A(),w=!1,l)b(),o.forceRender()}},destroy(){if(r)r.disconnect(),r=null;E.clear(),k=!1,p=!1,o=null}}}var an=(t={})=>{let{chunkSize:e=100,maxCachedItems:r=5000,evictionBuffer:o=200,onEvict:i}=t,n=new Map,s=0,d=0,E=(C)=>{let R=n.get(C);if(!R)R={items:Array(e),count:0,lastAccess:Date.now()},n.set(C,R);else R.lastAccess=Date.now();return R},v=(C)=>Math.floor(C/e),g=(C)=>C%e,w=()=>s,k=(C)=>{s=C},p=(C)=>{if(C<0||C>=s)return;let R=v(C),N=n.get(R);if(!N)return;return N.items[g(C)]},D=(C)=>{if(C<0||C>=s)return!1;let R=v(C),N=n.get(R);if(!N)return!1;return N.items[g(C)]!==void 0},h=(C,R)=>{let N=v(C),m=E(N),u=g(C),U=m.items[u]===void 0;if(m.items[u]=R,U)m.count++,d++;if(C>=s)s=C+1},S=(C,R)=>{for(let N=0;N<R.length;N++){let m=R[N];if(m!==void 0)h(C+N,m)}},a=(C,R)=>{if(C<0||C>s)return;let N=v(C),m=Array.from(n.keys()).filter((y)=>y>=N).sort((y,W)=>y-W),u=[];for(let y of m){let W=n.get(y),Q=y*e;for(let Z=0;Z<e;Z++){if(W.items[Z]===void 0)continue;let f=Q+Z;if(f<C)continue;u.push({oldIndex:f,item:W.items[Z]})}}for(let{oldIndex:y}of u){let W=v(y),Q=n.get(W);if(!Q)continue;let Z=g(y);if(Q.items[Z]!==void 0){if(Q.items[Z]=void 0,Q.count--,d--,Q.count===0)n.delete(W)}}s++;for(let{oldIndex:y,item:W}of u){let Q=y+1,Z=v(Q),f=E(Z),P=g(Q);f.items[P]=W,f.count++,d++}let U=v(C),G=E(U),H=g(C);G.items[H]=R,G.count++,d++},b=(C)=>{if(C<0||C>=s)return!1;let R=v(C),N=n.get(R),m=g(C);if(!(N!==void 0&&N.items[m]!==void 0))return!1;let U=R,G=Array.from(n.keys()).filter((y)=>y>=U).sort((y,W)=>y-W),H=[];for(let y of G){let W=n.get(y),Q=y*e;for(let Z=0;Z<e;Z++){if(W.items[Z]===void 0)continue;let f=Q+Z;if(f<=C)continue;H.push({oldIndex:f,item:W.items[Z]})}}if(N.items[m]=void 0,N.count--,d--,N.count===0)n.delete(R);for(let{oldIndex:y}of H){let W=v(y),Q=n.get(W);if(!Q)continue;let Z=g(y);if(Q.items[Z]!==void 0){if(Q.items[Z]=void 0,Q.count--,d--,Q.count===0)n.delete(W)}}for(let{oldIndex:y,item:W}of H){let Q=y-1,Z=v(Q),f=E(Z),P=g(Q);f.items[P]=W,f.count++,d++}return s--,!0},A=(C,R)=>{let N=[];for(let m=C;m<=R&&m<s;m++)N.push(p(m));return N},l=(C,R)=>{for(let N=C;N<=R&&N<s;N++)if(!D(N))return!1;return!0},L=()=>{let C=[],R=null,N=Array.from(n.keys()).sort((m,u)=>m-u);for(let m of N){let u=n.get(m);if(!u)continue;let U=m*e;for(let G=0;G<e;G++){let H=U+G;if(H>=s)break;if(u.items[G]!==void 0)if(R===null)R={start:H,end:H};else if(H===R.end+1)R.end=H;else C.push(R),R={start:H,end:H};else if(R!==null)C.push(R),R=null}}if(R!==null)C.push(R);return C},F=(C,R)=>{let N=[],m=null;for(let u=C;u<=R&&u<s;u++)if(!D(u))if(m===null)m={start:u,end:u};else m.end=u;else if(m!==null)N.push(m),m=null;if(m!==null)N.push(m);return N},M=(C)=>n.has(C),B=(C)=>{let R=n.get(C);if(!R)return!1;let N=C*e,m=Math.min(e,s-N);return R.count>=m},O=(C)=>{let R=n.get(C);if(R)R.lastAccess=Date.now()},V=(C,R)=>{if(C>R||n.size===0)return;let N=Date.now(),m=v(Math.max(0,C)),u=v(Math.min(s-1,R));for(let U=m;U<=u;U++){let G=n.get(U);if(G)G.lastAccess=N}},q=(C,R)=>{if(d<=r)return 0;let N=Math.max(0,C-o),m=Math.min(s-1,R+o),u=v(N),U=v(m),G=0,H=[];for(let[y,W]of n)if(y<u||y>U)G+=W.count,H.push(y),d-=W.count,n.delete(y);if(G>0&&i)i(G,H);return G},J=()=>{if(d<=r)return 0;let C=Array.from(n.entries()).sort(([,m],[,u])=>m.lastAccess-u.lastAccess),R=0,N=[];for(let[m,u]of C){if(d<=r)break;R+=u.count,d-=u.count,N.push(m),n.delete(m)}if(R>0&&i)i(R,N);return R},ie=()=>({totalItems:s,cachedItems:d,cachedChunks:n.size,chunkSize:e,maxCachedItems:r,memoryEfficiency:s>0?1-d/s:1}),fe=()=>d,z=()=>{n.clear(),d=0};return{chunkSize:e,maxCachedItems:r,getTotal:w,setTotal:k,get:p,has:D,set:h,setRange:S,insert:a,delete:b,getRange:A,isRangeLoaded:l,getLoadedRanges:L,findUnloadedRanges:F,getChunkIndex:v,isChunkLoaded:M,isChunkFullyLoaded:B,touchChunk:O,touchChunksForRange:V,evictDistant:q,evictToLimit:J,getStats:ie,getCachedCount:fe,clear:z,reset:()=>{z(),s=0}}};var dn=(t={})=>{let{maskCharacter:e=Ot,maxSampleSize:r=Gt}=t,o=[],i=!1,n=(g)=>{if(i||g.length===0)return;let w=Math.min(g.length,r);for(let k=0;k<w;k++){let p=g[k];if(!p||typeof p!=="object")continue;let D={},h=!1;for(let[S,a]of Object.entries(p)){if(S.startsWith("_")||S==="id")continue;D[S]=String(a??"").length,h=!0}if(h)o.push(D)}i=!0},s=()=>i,d=(g)=>{let w={id:`${_e}${g}`,[ut]:!0,_index:g};if(o.length===0)return w.label=e.repeat(12),w;let k=o[g%o.length];for(let[p,D]of Object.entries(k))w[p]=e.repeat(Math.max(1,D));return w};return{analyzeStructure:n,hasAnalyzedStructure:s,generate:d,generateRange:(g,w)=>{let k=[];for(let p=g;p<=w;p++)k.push(d(p));return k},clear:()=>{o=[],i=!1}}},rt=(t)=>{if(!t||typeof t!=="object")return!1;return t[ut]===!0};var Nn=50,un=(t={})=>{let{adapter:e,initialItems:r,initialTotal:o,storage:i,placeholder:n,pageSize:s=Nn,maxConcurrent:d=0,onStateChange:E,onDataChange:v,onItemsLoaded:g,onItemsEvicted:w,onLoadError:k}=t,p=an({...i,onEvict:(oe,c)=>{w?.(oe),q(),V()}}),D=null,h=()=>{if(!D)D=dn(n);return D},S=new Map,a=!1,b,A=!0,l,L,F=[],M=0,B=new Map,O=()=>{for(let oe of B.values())oe[1].abort();B.clear()},V=()=>{E?.(m())},q=()=>{v?.()},J=()=>{S.clear();let oe=p.getLoadedRanges();for(let c of oe)for(let X=c.start;X<=c.end;X++){let te=p.get(X);if(te&&!rt(te))S.set(te.id,X)}},ie=(oe,c)=>{if(!rt(c))S.set(c.id,oe)},fe=(oe)=>{S.delete(oe)},z=(oe,c)=>`${oe}-${c}`,_=()=>p.getTotal(),C=()=>p.getCachedCount(),R=()=>a,N=()=>A,m=()=>({total:p.getTotal(),cached:p.getCachedCount(),isLoading:a,pendingRanges:F,error:b,hasMore:A,cursor:l}),u=()=>p,U=()=>h(),G=(oe)=>{let c=p.get(oe);if(c!==void 0)return c;if(oe>=0&&oe<p.getTotal())return h().generate(oe);return},H=(oe)=>{let c=S.get(oe);if(c===void 0)return;return p.get(c)},y=(oe)=>S.get(oe)??-1,W=(oe)=>{let c=p.get(oe);return c!==void 0&&!rt(c)},Q=(oe,c)=>{let X=[],te=p.getTotal();p.touchChunksForRange(oe,Math.min(c,te-1));for(let ae=oe;ae<=c&&ae<te;ae++){let Te=p.get(ae);if(Te!==void 0)X.push(Te);else X.push(h().generate(ae))}return X},Z=(oe)=>{p.setTotal(oe),A=p.getCachedCount()<oe,q(),V()},f=(oe,c=0,X)=>{if(e&&oe.length>0){let te=h();if(!te.hasAnalyzedStructure())te.analyzeStructure(oe)}for(let te=0;te<oe.length;te++){let ae=oe[te];if(ae!==void 0){let Te=c+te;p.set(Te,ae),ie(Te,ae)}}if(X!==void 0)p.setTotal(X);else if(c+oe.length>p.getTotal())p.setTotal(c+oe.length);if(p.getCachedCount()>=p.getTotal()&&p.getTotal()>0)A=!1;q(),V(),g?.(oe,c,p.getTotal())},P=(oe,c)=>{let X=p.get(oe);if(!X)return!1;let te=X.id,ae={...X,...c};if(p.set(oe,ae),c.id!==void 0&&c.id!==te)fe(te);return ie(oe,ae),q(),V(),!0},x=(oe,c)=>{p.insert(c,oe),J(),O(),q(),V()},T=(oe)=>{let c=S.get(oe);if(c===void 0)return!1;if(!p.delete(c))return!1;return J(),O(),q(),V(),!0},Y=async(oe,c)=>{if(!e)return;let X=p.chunkSize,te=Math.floor(oe/X),ae=Math.floor(c/X),Te=X*2;for(let[me,Se]of B){let Ce=me.indexOf("-"),Le=parseInt(me.slice(0,Ce),10);if(Math.abs(Le-oe)>Te)Se[1].abort(),B.delete(me)}let ye=[],ve=[];for(let me=te;me<=ae;me++){let Se=me*X,Ce=Se+X-1,Le=z(Se,Ce);if(p.isChunkFullyLoaded(me))continue;let re=B.get(Le);if(re)ve.push(re[0]);else ye.push({start:Se,end:Ce})}if(ye.length===0){if(ve.length>0)await Promise.all(ve);return}if(d>0){let me=B.size+ye.length;if(me>d){let Se=(oe+c)/2,Ce=Math.min(me-d,B.size);while(Ce>0){let he=null,re=-1,se=null;for(let[j,Ie]of B){let K=j.indexOf("-"),de=parseInt(j.slice(0,K),10),Me=parseInt(j.slice(K+1),10),Ee=Math.abs((de+Me)/2-Se);if(Ee>re)re=Ee,he=j,se=Ie[1]}if(he)se.abort(),B.delete(he);Ce--}let Le=d-B.size;if(ye.length>Le)ye.sort((he,re)=>{let se=Math.abs((he.start+he.end)/2-Se),j=Math.abs((re.start+re.end)/2-Se);return se-j}),ye.length=Math.max(0,Le)}}if(ye.length===0){if(ve.length>0)await Promise.all(ve);return}for(let me of ye){let Se=z(me.start,me.end),Ce=new AbortController,Le=(async()=>{F.push(me),a=!0,b=void 0,V();try{let he=me.end-me.start+1,re={offset:me.start,limit:he,cursor:me.start===L?l:void 0,signal:Ce.signal},se=await e.read(re);if(f(se.items,me.start,se.total),se.cursor)l=se.cursor,L=me.start+se.items.length;let j=me.start+se.items.length;if(j>=M){if(M=j,se.hasMore!==void 0)A=se.hasMore;else if(se.total!==void 0)A=j<se.total}}catch(he){if(he?.name==="AbortError")return;b=he instanceof Error?he:Error(String(he)),k?.(b,me)}finally{B.delete(Se);let he=F.findIndex((re)=>re.start===me.start&&re.end===me.end);if(he>=0)F.splice(he,1);a=B.size>0,V()}})();B.set(Se,[Le,Ce]),ve.push(Le)}await Promise.all(ve)},ne=async(oe,c)=>{if(p.isRangeLoaded(oe,c))return;await Y(oe,c)},xe=async()=>{if(!e)return;await Y(0,s-1)},ue=async()=>{if(!e||a||!A)return!1;let oe=p.getCachedCount(),c=p.getTotal(),X=oe,te=Math.min(X+s-1,c>0?c-1:X+s-1);if(X>=c&&c>0)return A=!1,!1;return await Y(X,te),p.getCachedCount()>oe},ee=async()=>{if(p.clear(),S.clear(),D)D.clear();O(),F=[],a=!1,l=void 0,L=void 0,A=!0,M=0,b=void 0,q(),V()},ce=(oe,c)=>{if(p.evictDistant(oe,c)>0)J()},ge=()=>{p.clear(),S.clear(),l=void 0,L=void 0,b=void 0,F=[],a=!1,q(),V()},be=()=>{if(p.reset(),S.clear(),D)D.clear();l=void 0,L=void 0,A=!0,M=0,b=void 0,F=[],a=!1,q(),V()};if(r&&r.length>0)f(r,0,o??r.length);else if(o!==void 0)p.setTotal(o),q(),V();return{getState:m,getTotal:_,getCached:C,getIsLoading:R,getHasMore:N,getStorage:u,getPlaceholders:U,getItem:G,getItemById:H,getIndexById:y,isItemLoaded:W,getItemsInRange:Q,setTotal:Z,setItems:f,updateItem:P,insertItem:x,removeItem:T,loadRange:Y,ensureRange:ne,loadInitial:xe,loadMore:ue,reload:ee,evictDistant:ce,clear:ge,reset:be}};function bt(t){let{adapter:e,total:r,autoLoad:o=!0,storage:i}=t,n=t.loading?.cancelThreshold??wt,s=t.loading?.preloadThreshold??At,d=t.loading?.preloadAhead??zt,E=t.loading?.maxConcurrent??Rt,v,g,w,k,p,D,h=null,S=null,a=null,b=0,A=!1,l=null,L=at,F=-1,M=-1,B=-1,O=-1,V=i?.chunkSize??Qe,q=()=>{if(h=null,S!==null)clearTimeout(S),S=null},J=(m,u)=>v.ensureRange(m,u),ie=(m,u=Qe)=>{k.emit("load:start",{offset:m,limit:u})},fe=(m)=>{k.emit("error",{error:m,context:"ensureRange"})},z=()=>{h=null;let m={start:g.startIndex,end:g.startIndex+Math.max(0,g.visibleCount-1)};if(m.end<m.start)return;J(m.start,m.end).catch(fe)},_=()=>{if(l!==null)clearTimeout(l),l=null},C=()=>{if(g.destroyed)return;let m=v.getTotal();if(g.visibleCount<=0||g.startIndex>=m)return;let u=Math.min(g.startIndex+g.visibleCount-1,m-1);if(u<g.startIndex)return;J(g.startIndex,u).catch(fe)},R=()=>{if(l!==null||g.destroyed)return;l=setTimeout(()=>{l=null,C()},L),L=Math.min(L*2,Ht)},N=()=>{_(),L=at};return{name:"data",priority:20,setup(m){g=m.getState(),w=m.sizeCache,k=m.emitter,p=m.dom,D=m.forceRender.bind(m);let u=null;m.setVirtualTotalFn(()=>u?.getTotal()??0),m.setGetIndexByIdFn((G)=>u?.getIndexById(G)??-1),v=u=un({adapter:e,...r!==void 0&&{initialTotal:r},pageSize:i?.chunkSize??Qe,maxConcurrent:E,...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=v.getTotal(),H=v.getCached();if(g.totalItems=G,G!==F||H!==M)F=G,M=H,w.rebuild(G);m.updateContentSize(w.getTotalSize()),m.renderIfNeeded()}},onItemsLoaded:(G)=>{if(N(),g.initialized)m.updateContentSize(w.getTotalSize()),D(),k.emit("load:end",{items:G,total:v.getTotal()})},onLoadError:(G)=>{if(k.emit("error",{error:G,context:"load"}),g.initialized)m.renderIfNeeded();R()}}),m.setGetItemFn((G)=>v.getItem(G)),m.setRemoveItemFn((G)=>{let H=v.getIndexById(G);if(H<0)return-1;if(!v.removeItem(G))return-1;return H}),m.setInsertItemFn((G,H)=>{v.insertItem(G,H)}),m.setUpdateItemFn((G,H)=>{let y=v.getIndexById(G);if(y<0)return!1;return v.updateItem(y,H)}),m.registerMethod("reload",async()=>{if(h=null,B=-1,O=-1,N(),m.forceRender(),await v.reload(),m.scrollTo(0),o)ie(0),await v.loadInitial(),m.forceRender()}),m.registerMethod("loadVisibleRange",async()=>{h=null,m.forceRender();let G=v.getTotal();if(g.visibleCount>0&&g.startIndex<G){let H=Math.min(g.startIndex+g.visibleCount-1,G-1);ie(g.startIndex,H-g.startIndex+1),await J(g.startIndex,H)}}),m.registerMethod("loadInitial",async()=>{ie(0),await v.loadInitial(),m.forceRender()}),m.registerMethod("getTotal",()=>v.getTotal()),m.registerMethod("setTotal",(G)=>{v.setTotal(G)}),m.registerMethod("_getTotal",()=>v.getTotal()),m.registerMethod("_setTotal",(G)=>{v.setTotal(G)}),m.registerMethod("_cancelAutoLoad",()=>{A=!0}),m.registerMethod("_getLoadedItem",(G)=>v.getStorage().get(G)),m.registerMethod("_getItem",(G)=>v.getItem(G)),m.registerMethod("_getLoadedCount",()=>v.getCached()),k.on("load:start",()=>{p.root.setAttribute("aria-busy","true")}),k.on("load:end",()=>{p.root.removeAttribute("aria-busy")}),m.registerDestroyHandler(()=>{if(a!==null)clearTimeout(a),a=null;q(),_()}),k.on("velocity:change",({velocity:G})=>{b=Math.abs(G)});let U=()=>{if(g.destroyed)return;N(),C(),z()};if(window.addEventListener("online",U),m.registerDestroyHandler(()=>{window.removeEventListener("online",U)}),o)queueMicrotask(()=>{if(A)return;ie(0),v.loadInitial().catch((G)=>{k.emit("error",{error:G,context:"loadInitial"})})});else if(r!==void 0)v.setTotal(r)},hooks:{onAfterScroll(){if(g.destroyed)return;let m=g.startIndex+Math.max(0,g.visibleCount-1);if(b>n){if(S!==null)clearTimeout(S),S=null;h={start:g.startIndex,end:m};return}if(b>s){let G=Math.floor(g.startIndex/V),H=Math.floor(m/V);if(G!==B||H!==O){if(B=G,O=H,m>=g.startIndex)J(g.startIndex,m).catch(fe)}let y=g.startIndex,W=m,Q=g.scrollDirection;if(Q>0)W=Math.min(W+d,v.getTotal()-1);else if(Q<0)y=Math.max(0,y-d);if(h={start:y,end:W},S!==null)clearTimeout(S);S=setTimeout(()=>{if(S=null,g.destroyed||!h)return;let{start:Z,end:f}=h;if(h=null,f>=Z)J(Z,f).catch(fe)},100);return}q();let u=Math.floor(g.startIndex/V),U=Math.floor(m/V);if(u!==B||U!==O){if(B=u,O=U,m>=g.startIndex)J(g.startIndex,m).catch(fe)}},onIdle(){if(g.destroyed)return;b=0,B=-1,O=-1,z(),q()},onResize(){if(g.destroyed)return;let m=v.getTotal();if(m<=0)return;if(g.visibleCount<=0||g.startIndex>=m)return;let u=Math.min(g.startIndex+g.visibleCount-1,m-1);if(u<g.startIndex)return;ie(g.startIndex,u-g.startIndex+1),J(g.startIndex,u).catch(fe)}},destroy(){if(a!==null)clearTimeout(a);q(),_()}}}var cn=(t)=>{let e=Math.max(1,Math.floor(t.columns)),r=t.gap??0,o=t.isHeaderFn,i={row:0,col:0},n=(h)=>{if(h<=0)return 0;if(!o)return Math.ceil(h/e);let S=0,a=0,b=0;for(let A=0;A<h;A++)if(o(A)){if(b++,a)S++,a=0;S++,a=0}else if(a++,a>=e)S++,a=0;if(a)S++;return S},s=(h)=>(i.row=d(h),i.col=E(h),i),d=(h)=>{if(!o)return Math.floor(h/e);let S=0,a=0;for(let b=0;b<=h;b++)if(o(b)){if(a)S++,a=0;if(b===h)return S;S++,a=0}else{if(b===h)return S;if(a++,a>=e)S++,a=0}return console.warn(`⚠️ getRow(${h}) fell through - returning ${S}`),S},E=(h)=>{if(!o)return h%e;if(o(h))return 0;let S=0;for(let a=0;a<=h;a++)if(o(a))S=0;else{if(a===h)return S;if(S++,S>=e)S=0}return S},v=(h,S,a,b)=>{if(a<=0){b.start=0,b.end=-1;return}if(!o){b.start=Math.max(0,h*e),b.end=Math.min(a-1,(S+1)*e-1);return}let A=g(h,S,a);b.start=A.start,b.end=A.end},g=(h,S,a)=>{if(a<=0)return{start:0,end:-1};if(!o){let F=Math.max(0,h*e),M=Math.min(a-1,(S+1)*e-1);return{start:F,end:M}}let b=-1,A=-1,l=0,L=0;for(let F=0;F<a;F++){if(o(F)){if(L)l++,L=0;if(l>=h&&l<=S){if(b<0)b=F;A=F}l++,L=0}else{if(l>=h&&l<=S){if(b<0)b=F;A=F}if(L++,L>=e)l++,L=0}if(l>S&&!L)break}if(b<0)return{start:0,end:-1};return{start:b,end:A}},w=(h,S,a)=>{if(S<0||S>=e)return-1;let b=h*e+S;if(b<0||b>=a)return-1;return b},k=(h)=>{let S=(e-1)*r;return Math.max(0,(h-S)/e)};return{get columns(){return e},get gap(){return r},update:(h)=>{if(h.columns!==void 0)e=Math.max(1,Math.floor(h.columns));if(h.gap!==void 0)r=h.gap;if(h.isHeaderFn!==void 0)o=h.isHeaderFn},getTotalRows:n,getPosition:s,getRow:d,getCol:E,getItemRange:g,fillItemRange:v,getItemIndex:w,getColumnWidth:k,getColumnOffset:(h,S)=>{let a=k(S);return h*(a+r)}}};var Ge={selected:!1,focused:!1};function ht(t){if(!t.columns||t.columns<1)throw Error("[vlist] grid: columns must be >= 1");let e,r,o,i,n=null,s,d,E,v,g,w,k=null,p=0,D=0,h=0,S=0,a=new Map,b=0,A=0,l=0,L=0,F=null,M=!1,B="",O="",V="",q={start:0,end:-1},J=-1,ie=-1,fe=-1,z=!0,_=(y)=>r.rebuild(y);function C(){let y=(A-1)*l;L=Math.max(0,(b-y)/A)}function R(){if(M)return;M=!0,F=k?.()??null}function N(){return e.getTotalRows(o.totalItems)}function m(y){let W=y/A|0,Z=(y-W*A)*(L+l)+p,f=r.getOffset(W)-o.baseOffset+h;if(v)return`translate(${Math.round(f)}px, ${Math.round(Z)}px)`;return`translate(${Math.round(Z)}px, ${Math.round(f)}px)`}function u(y,W){let Q=r.getSize(W)-l;if(v)y.style.width=`${Q}px`,y.style.height=`${L}px`;else y.style.width=`${L}px`,y.style.height=`${Q}px`}function U(y,W,Q){if(F)F(Q,Ge);else Ge.selected=!1,Ge.focused=!1;let Z=d(W,Q,Ge);if(typeof Z==="string")y.innerHTML=Z;else y.innerHTML="",y.appendChild(Z)}function G(){if(o.destroyed)return;let y=o.scrollPosition,W=o.containerSize;if(!z&&y===J&&W===ie)return;J=y,ie=W,z=!1;let Q=N();if(W<=0||Q===0)return;R();let Z=r.indexAtOffset(y),f=r.indexAtOffset(y+W);if(f<Q-1)f++;Z=Math.max(0,Z),f=Math.min(Q-1,Math.max(0,f));let P=Math.max(0,Z-w),x=Math.min(Q-1,f+w);if(P===o.prevRangeStart&&x===o.prevRangeEnd&&!o.renderPending)return;e.fillItemRange(P,x,o.totalItems,q);let{start:T,end:Y}=q;for(let[ue,ee]of a)if(ue<T||ue>Y)ee.el.remove(),i.release(ee.el),a.delete(ue);for(let ue=T;ue<=Y;ue++){let ee=E(ue);if(!ee)continue;let ce=ue/A|0,ge=ue-ce*A,be=a.get(ue);if(be===void 0){let X=i.acquire();X.className=B,X.setAttribute("data-index",String(ue)),X.setAttribute("data-id",String(ee.id)),U(X,ee,ue),be={el:X,lastItem:ee},a.set(ue,be),s.appendChild(X)}else if(be.lastItem!==ee)be.el.setAttribute("data-id",String(ee.id)),be.lastItem=ee,U(be.el,ee,ue);else if(F)F(ue,Ge);if(F)if(be.el.classList.toggle(O,Ge.selected),be.el.classList.toggle(V,Ge.focused),Ge.selected)be.el.setAttribute("aria-selected","true");else be.el.removeAttribute("aria-selected");u(be.el,ce);let oe=ge*(L+l)+p,c=r.getOffset(ce)-o.baseOffset+h;be.el.style.transform=v?`translate(${Math.round(c)}px, ${Math.round(oe)}px)`:`translate(${Math.round(oe)}px, ${Math.round(c)}px)`}let ne=r.getTotalSize();if(ne!==fe)fe=ne,n?.updateContentSize(ne);o.prevRangeStart=P,o.prevRangeEnd=x,o.renderPending=!1;let xe=Y-T+1;o.visibleCount=Math.min(xe,o.capacity),o.startIndex=T;for(let ue=0;ue<o.visibleCount;ue++){let ee=T+ue,ce=ee/A|0;o.visibleIndices[ue]=ee,o.visibleOffsets[ue]=r.getOffset(ce),o.visibleSizes[ue]=r.getSize(ce)}}function H(){if(o.destroyed)return;_(N()),fe=-1,o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,z=!0,G()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(y){A=Math.max(1,Math.floor(t.columns)),l=t.gap??0,e=cn({columns:t.columns,gap:l}),r=y.sizeCache,o=y.getState(),i=y.pool,n=y,s=y.dom.content,d=y.template,v=y.config.axis.primary==="x",g=y.config.classPrefix,w=y.config.overscan,E=y.getItem.bind(y),k=()=>y.getItemStateFn(),B=`${g}-item ${g}-grid-item`,O=`${g}-item--selected`,V=`${g}-item--focused`,p=y.config.crossPadStart,D=y.config.crossAxisPadding,h=y.config.startPadding,S=y.config.mainAxisPadding,b=o.crossSize-D,C();let W=y.rawSizeSpec,Q;if(typeof W==="function"){let T={columnWidth:e.getColumnWidth(b),columns:t.columns,gap:l};Q=W(0,T),y.setSizeConfig((Y)=>{T.columnWidth=e.getColumnWidth(b);let ne=Y*t.columns;return W(ne,T)+l})}else if(Q=W,l>0)y.setSizeConfig(Q+l);let Z=null,f=r.rebuild;function P(){if(r.rebuild===Z)return;f=r.rebuild,_=(x)=>f(x),Z=(x)=>{_(Math.ceil(x/A))},r.rebuild=Z}if(y.registerMethod("_setSizeCacheBase",(x)=>{f=x,_=(T)=>f(T)}),P(),_(N()),l>0){let x=r.getTotalSize;r.getTotalSize=()=>{let T=x();return T>0?T-l:0}}y.setVirtualTotalFn(()=>N()),y.dom.root.classList.add(`${g}--grid`),y.setRenderFn(G,H),y.registerMethod("getGridLayout",()=>e),y.registerMethod("_getRowGap",()=>e.gap),y.registerMethod("updateGrid",(x)=>{if(x.columns!==void 0){if(!Number.isInteger(x.columns)||x.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(x.gap!==void 0&&x.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if(e.update(x),x.columns!==void 0)A=Math.max(1,Math.floor(x.columns));if(x.gap!==void 0)l=x.gap;if(x.gap!==void 0||x.columns!==void 0){let T=e.gap;if(typeof W==="function"){let Y={columnWidth:e.getColumnWidth(b),columns:e.columns,gap:T};y.setSizeConfig((ne)=>{Y.columnWidth=e.getColumnWidth(b);let xe=ne*e.columns;return W(xe,Y)+T})}else y.setSizeConfig(Q+T);P(),_(N())}if(x.columns!==void 0)y.setNavConfig({ud:e.columns});b=o.crossSize-D,C(),H()}),y.registerMethod("scrollToIndex",(x,T="start")=>{let Y=e.getRow(x),ne=N();if(ne===0)return;let xe=Math.max(0,Math.min(Y,ne-1)),ue=r.getOffset(xe)+h,ee=r.getSize(xe),ce=o.containerSize,ge=r.getTotalSize()+S,be=Math.max(0,ge-ce),oe=typeof T==="string"?T:T.align??"start",c=typeof T==="object"?T.behavior:void 0,X=typeof T==="object"?T.duration:void 0,te;switch(oe){case"center":te=ue-(ce-ee)/2;break;case"end":te=ue-ce+ee;break;default:te=ue}if(te=Math.max(0,Math.min(te,be)),c==="smooth"&&X&&X>0)y.smoothScrollTo(te,X);else y.scrollTo(te)}),y.setNavConfig({total:()=>o.totalItems,ud:t.columns,lr:1,scrollIndex:(x)=>e.getRow(x)}),y.registerDestroyHandler(()=>{for(let[,x]of a)x.el.remove();a.clear(),y.dom.root.classList.remove(`${g}--grid`)})},hooks:{onResize(y,W){let Q=o.crossSize-D;if(Math.abs(Q-b)<1)return;b=Q,C();for(let[Z,f]of a){let P=Z/A|0;u(f.el,P),f.el.style.transform=m(Z)}}},destroy(){a.clear()}}}var mn=(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,d=[],E=()=>{let a=(e-1)*r;s=Math.max(0,(o-a)/e),d=Array(e);let b=s+r;for(let A=0;A<e;A++)d[A]=i+A*b};E();let v=[],g=0,w=[],k=(a,b)=>{if(a<=0)return g=0,v=[],[];let A=Array(e).fill(n),l=Array(e);for(let M=0;M<e;M++)l[M]=[];let L=Array(a);for(let M=0;M<a;M++){let B=0,O=A[0];for(let J=1;J<e;J++){let ie=A[J];if(ie<O)O=ie,B=J}let V=b(M),q=A[B];L[M]={index:M,x:d[B],y:q,lane:B,size:V,crossSize:s},l[B].push(M),A[B]=q+V+r}v=l;let F=0;for(let M=0;M<e;M++){let B=A[M],O=B>0?B-r:0;if(O>F)F=O}return g=F,L},p=(a)=>{if(a.length===0)return g;if(g)return g;let b=Array(e).fill(0);for(let l of a){let L=l.y+l.size,F=b[l.lane];if(L>F)b[l.lane]=L}let A=0;for(let l=0;l<e;l++)if(b[l]>A)A=b[l];return A},D=(a,b,A)=>{if(a.length===0||A<=b)return w.length=0,w;if(v.length===0||v.length!==e)return h(a,b,A);w.length=0;for(let l=0;l<e;l++){let L=v[l],F=L.length;if(!F)continue;let M=0,B=F;while(M<B){let O=M+B>>>1,V=a[L[O]];if(V.y+V.size<=b)M=O+1;else B=O}for(let O=M;O<F;O++){let V=a[L[O]];if(V.y>=A)break;w.push(V)}}return w},h=(a,b,A)=>{w.length=0;for(let l of a)if(l.y+l.size>b&&l.y<A)w.push(l);return w};return{get columns(){return e},get gap(){return r},get containerSize(){return o},update:(a)=>{let b=!1;if(a.columns!==void 0){let A=Math.max(1,Math.floor(a.columns));if(A!==e)e=A,b=!0}if(a.gap!==void 0&&a.gap!==r)r=a.gap,b=!0;if(a.containerSize!==void 0&&a.containerSize!==o)o=a.containerSize,b=!0;if(a.crossOffset!==void 0&&a.crossOffset!==i)i=a.crossOffset,b=!0;if(a.mainOffset!==void 0&&a.mainOffset!==n)n=a.mainOffset,b=!0;if(b)E()},calculateLayout:k,getTotalSize:p,getVisibleItems:D}};var fn=(t,e,r)=>{let o=Array.from(e).sort((s,d)=>s-d);if(o.length<=1)return;let i=[];for(let s=0;s<o.length;s++){let d=r(o[s]);if(d)i.push(d)}if(i.length<=1)return;let n=t.firstChild;for(let s=0;s<i.length;s++){let d=i[s];if(d===n)n=n.nextSibling;else t.insertBefore(d,n)}};var Wn=(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,gn=(t,e,r,o=!1,i,n,s,d,E=()=>0)=>{let v=Wn(),g=new Map,w=new Set,k=0,p="",D=-1,h={selected:!1,focused:!1},S=(z,_)=>(h.selected=z,h.focused=_,h),a=`${r}-item ${r}-masonry-item`,b=`${r}-group-header`,A=`${r}-item--selected`,l=`${r}-item--focused`,L=(z,_)=>{if(typeof _==="string")z.innerHTML=_;else z.replaceChildren(_);Ne(z)},F=(z,_,C)=>{z.classList.toggle(A,_),z.classList.toggle(l,C)},M=(z,_)=>{let C=Math.round(_.y-E());if(o)z.style.transform=`translate(${C}px, ${Math.round(_.x)}px)`;else z.style.transform=`translate(${Math.round(_.x)}px, ${C}px)`},B=(z,_)=>{if(o)z.style.width=`${_.size}px`,z.style.height=`${_.crossSize}px`;else z.style.width=`${_.crossSize}px`,z.style.height=`${_.size}px`},O=(z,_,C,R,N)=>{let m=v.acquire(),u=_.__groupHeader,U=S(R,N);if(m.className=u?b:a,m.dataset.index=String(z),m.dataset.id=String(_.id),m.dataset.lane=String(C.lane),u)m.setAttribute("role","presentation"),m.removeAttribute("aria-selected"),m.removeAttribute("aria-setsize"),m.removeAttribute("aria-posinset"),m.removeAttribute("id");else if(d===!0){if(m.setAttribute("role","option"),m.ariaSelected=String(R),n)m.id=`${n}-item-${z}`;if(i){let H=i();if(H!==D)D=H,p=String(H);m.setAttribute("aria-setsize",p);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!==D)D=H,p=String(H);m.setAttribute("aria-setsize",p);let y=s?s(z):z+1;m.setAttribute("aria-posinset",String(y))}B(m,C);let G=e(_,z,U);return L(m,G),F(m,R,N),M(m,C),{element:m,lastItem:_,lastSelected:R,lastFocused:N,lastY:C.y-E(),lastX:C.x,lastSize:C.size,lastCrossSize:C.crossSize,lastSeenFrame:k}},V=(z,_,C,R)=>{k++,w.clear();for(let m=0;m<_.length;m++)w.add(_[m].index);let N=null;for(let m=0;m<_.length;m++){let u=_[m],U=u.index,G=z(U);if(!G)continue;let H=C.has(G.id),y=U===R,W=g.get(U);if(W){let Q=W.lastItem!==G,Z=W.lastSelected!==H,f=W.lastFocused!==y,P=W.lastY!==u.y-E()||W.lastX!==u.x,x=W.lastSize!==u.size||W.lastCrossSize!==u.crossSize;if(Q){let T=S(H,y),Y=e(G,U,T);if(L(W.element,Y),W.element.dataset.id=String(G.id),W.lastItem=G,!G.__groupHeader){let xe=s?s(U):U+1;W.element.setAttribute("aria-posinset",String(xe))}}if(Q||Z||f)F(W.element,H,y),W.element.ariaSelected=String(H),W.lastSelected=H,W.lastFocused=y;if(x)B(W.element,u),W.lastSize=u.size,W.lastCrossSize=u.crossSize;if(P)M(W.element,u),W.lastY=u.y-E(),W.lastX=u.x}else{let Q=O(U,G,u,H,y);if(!N)N=document.createDocumentFragment();N.appendChild(Q.element),g.set(U,Q)}}if(N)t.appendChild(N);for(let[m,u]of g)if(w.has(m))u.lastSeenFrame=k;else if(k-u.lastSeenFrame>Un)v.release(u.element),g.delete(m)},q=()=>{for(let z of g.values())v.release(z.element);g.clear(),t.innerHTML=""};return{render:V,getElement:(z)=>g.get(z)?.element,updateItemClasses:(z,_,C)=>{let R=g.get(z);if(!R)return;let N=R.lastSelected!==_,m=R.lastFocused!==C;if(N||m)F(R.element,_,C),R.lastSelected=_,R.lastFocused=C},sortDOM:()=>{fn(t,g.keys(),(z)=>g.get(z)?.element)},clear:q,destroy:()=>{q(),v.clear()}}};var Yn=100,Kn=new Set;function vt(t){if(!t.columns||t.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let e,r=null,o,i=null,n,s,d,E=[],v=-1,g=-1,w=!0,k=-1,p=-1,D=0,h=0,S=0,a=0,b={columnWidth:0,columns:0,gap:0,containerWidth:0},A=[],l=(f)=>A[f],L=null,F=null,M=!1;function B(){if(M||!i)return;M=!0,L=i.getMethod("_getSelectedIds")??null,F=i.getMethod("_getFocusedIndex")??null}let O=[],V=new Int32Array(0),q=[],J=null,ie=null,fe=null,z=null,_=!1,C=!0;function R(){if(_||!i)return;if(J=i.getMethod("_getItemLane")??null,ie=i.getMethod("_getItemY")??null,fe=i.getMethod("_getItemH")??null,z=i.getMethod("_isGroupHeader")??null,J||z)_=!0}function N(){R();let f=e.columns,P=!!J;if(P){let x=o.totalItems;O=Array(f);for(let T=0;T<f;T++)O[T]=[];if(V.length<x)V=new Int32Array(x);for(let T=0;T<x;T++){if(z?.(T))continue;let Y=J(T);if(Y<0||Y>=f)continue;V[T]=O[Y].length,O[Y].push(T)}}else{let x=E.length;O=Array(f);for(let T=0;T<f;T++)O[T]=[];if(V.length<x)V=new Int32Array(x);for(let T=0;T<x;T++){let Y=E[T];V[T]=O[Y.lane].length,O[Y.lane].push(T)}}q=Array(f);for(let x=0;x<f;x++){let T=O[x],Y=new Float64Array(T.length);for(let ne=0;ne<T.length;ne++){let xe=T[ne];if(P&&ie&&fe){let ue=ie(xe),ee=fe(xe);Y[ne]=ue>=0?ue+(ee>0?ee*0.5:0):0}else{let ue=E[xe];Y[ne]=ue.y+ue.size*0.5}}q[x]=Y}}function m(f,P){let x=f.length;if(!x)return-1;let T=0,Y=x-1;while(T<Y){let ne=T+Y>>1;if(f[ne]<P)T=ne+1;else Y=ne}if(T>0&&Math.abs(f[T-1]-P)<=Math.abs(f[T]-P))return T-1;return T}function u(f,P,x){if(C)N(),C=!1;let T=!!J,Y,ne;if(T){if(z?.(f))return f;if(Y=J(f),Y<0)return f;ne=V[f]}else{let ce=E[f];if(!ce)return f;Y=ce.lane,ne=V[f]}let xe=e.columns,ue=O[Y];switch(n?P==="ArrowDown"?"ArrowRight":P==="ArrowUp"?"ArrowLeft":P==="ArrowRight"?"ArrowDown":P==="ArrowLeft"?"ArrowUp":P:P){case"ArrowDown":if(ne+1<ue.length)return ue[ne+1];return f;case"ArrowUp":if(ne>0)return ue[ne-1];return f;case"ArrowRight":{if(Y>=xe-1)return f;let ce=Y+1,ge=O[ce];if(!ge.length)return f;let be=m(q[ce],q[Y]?.[ne]??0);return be>=0?ge[be]:f}case"ArrowLeft":{if(Y<=0)return f;let ce=Y-1,ge=O[ce];if(!ge.length)return f;let be=m(q[ce],q[Y]?.[ne]??0);return be>=0?ge[be]:f}case"Home":return 0;case"End":{let ce=O[xe-1];return ce.length>0?ce[ce.length-1]:f}case"PageDown":{let ce=o.containerSize,ge=T?null:E[f],be=ge&&ge.size>0?ge.size:150,oe=Math.max(1,Math.floor(ce/be)),c=Math.min(ne+oe,ue.length-1);return ue[c]}case"PageUp":{let ce=o.containerSize,ge=T?null:E[f],be=ge&&ge.size>0?ge.size:150,oe=Math.max(1,Math.floor(ce/be)),c=Math.max(0,ne-oe);return ue[c]}}return f}let U=null;function G(){if(t.size)return(f)=>t.size(f,b);if(U!==null&&typeof U==="function")return(f)=>U(f,b);return(f)=>i.sizeCache.getSize(f)}function H(){let f=e.columns,P=e.gap;b.containerWidth=e.containerSize,b.columns=f,b.gap=P,b.columnWidth=Math.max(0,(e.containerSize-(f-1)*P)/f)}function y(){if(!i)return;H();let f=o.totalItems;E=e.calculateLayout(f,G()),k=f,C=!0,W()}function W(){if(!i)return;let f=e.getTotalSize(E)+a;if(f===p)return;p=f,i.updateContentSize(f)}function Q(){if(o.destroyed||!i||!r)return;if(o.totalItems!==k)y();if(w)p=-1,W();B();let f=o.scrollPosition,P=o.containerSize;if(!w&&f===v&&P===g)return;if(v=f,g=P,w=!1,P<=0||E.length===0)return;let x=Math.max(0,f-d),T=f+P+d,Y=e.getVisibleItems(E,x,T),ne=L?.()??Kn,xe=F?.()??-1;A=i.getItems(),r.render(l,Y,ne,xe);let ue=Y.length,ee=ue>0?Y[0].index:0,ce=ue>0?Y[ue-1].index:0;o.prevRangeStart=ee,o.prevRangeEnd=ce,o.renderPending=!1;let ge=Math.min(ue,o.capacity);o.visibleCount=ge,o.startIndex=ee;for(let be=0;be<ge;be++){let oe=Y[be];o.visibleIndices[be]=oe.index,o.visibleOffsets[be]=oe.y,o.visibleSizes[be]=oe.size}}function Z(){if(o.destroyed)return;p=-1,y(),o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,w=!0,Q()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(f){if(i=f,o=f.getState(),U=f.rawSizeSpec,n=f.config.axis.primary==="x",s=f.config.classPrefix,d=f.config.overscan*Yn,f.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");D=f.config.crossAxisPadding,h=f.config.crossPadStart,S=f.config.startPadding,a=f.config.endPadding;let P=o.crossSize-D;e=mn({columns:t.columns,gap:t.gap??0,containerSize:P,crossOffset:h,mainOffset:S}),r=gn(f.dom.content,f.template,s,n,()=>o.totalItems,void 0,void 0,void 0,()=>o.baseOffset),f.dom.root.classList.add(`${s}--masonry`),f.setRenderFn(Q,Z),y(),f.registerMethod("getMasonryLayout",()=>e),f.registerMethod("updateMasonry",(x)=>{if(x.columns!==void 0&&x.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(x.gap!==void 0&&x.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let T={};if(x.columns!==void 0)T.columns=x.columns;if(x.gap!==void 0)T.gap=x.gap;e.update(T),r?.clear(),Z()}),f.registerMethod("scrollToIndex",(x,T="start")=>{let Y=E[x];if(!Y)return;let ne=typeof T==="string"?T:T.align??"start",xe=typeof T==="object"?T.behavior:void 0,ue=typeof T==="object"?T.duration:void 0,ee=o.containerSize,ce=e.getTotalSize(E)+a,ge=Math.max(0,ce-ee),be=Y.y;if(ne==="center")be=Y.y-ee/2+Y.size/2;else if(ne==="end"){if(be=Y.y-ee+Y.size,x>=o.totalItems-1&&Y.y+Y.size>ge)be=ge}if(be=Math.max(0,Math.min(be,ge)),xe==="smooth"&&ue&&ue>0)f.smoothScrollTo(be,ue);else f.scrollTo(be)}),f.registerMethod("_scrollItemIntoView",(x)=>{let T=E[x];if(!T)return;let Y=o.scrollPosition,ne=o.containerSize,xe=e.getTotalSize(E)+a,ue=Math.max(0,xe-ne),ee=T.y,ce=ee+T.size;if(ee-S<Y)f.scrollTo(Math.max(0,ee-S));else if(ce+a>Y+ne){let ge=O[e.columns-1];if(ge&&ge.length>0&&x===ge[ge.length-1]&&ee>=ue)f.scrollTo(ue);else f.scrollTo(Math.min(ce+a-ne,ue))}}),f.setNavConfig({total:()=>o.totalItems,navigate:u}),f.registerDestroyHandler(()=>{r?.destroy(),r=null,f.dom.root.classList.remove(`${s}--masonry`)})},hooks:{onResize(f,P){if(!e||!i)return;let x=o.crossSize-D;if(Math.abs(x-e.containerSize)<1)return;e.update({containerSize:x}),r?.clear(),Z()},onIdle(){r?.sortDOM()}},destroy(){r?.destroy(),r=null,E=[],i=null}}}var St=(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},pn=(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},bn=(t,e,r)=>{if(t===0)return[];let o=[],i=null,n=0,s=0;for(let d=0;d<t;d++){let E=r?.(d);if(!E)continue;let v=e(d,E);if(i===null)i=v,n=0;else if(v!==i){let g=d-n;o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:g}),s=s+1+g,i=v,n=d}}if(i!==null)o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:t-n});return o};var hn=(t,e,r)=>{let o=bn(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:(p)=>{if(o.length===0)return{type:"item",dataIndex:p,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let D=St(o,p),h=o[D];if(p===h.headerLayoutIndex)return{type:"header",group:h};let S=p-h.headerLayoutIndex-1;return{type:"item",dataIndex:h.firstDataIndex+S,group:h}},layoutToDataIndex:(p)=>{if(o.length===0)return p;let D=St(o,p),h=o[D];if(p===h.headerLayoutIndex)return-1;let S=p-h.headerLayoutIndex-1;return h.firstDataIndex+S},dataToLayoutIndex:(p)=>{if(o.length===0)return p;let D=pn(o,p),h=o[D],S=p-h.firstDataIndex;return h.headerLayoutIndex+1+S},getGroupAtLayoutIndex:(p)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=St(o,p);return o[D]},getGroupAtDataIndex:(p)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=pn(o,p);return o[D]},getHeaderHeight:typeof n==="number"?(p)=>n:(p)=>{let D=o[p];if(!D)return 0;return n(D.key,p)},rebuild:(p,D)=>{o=bn(p,e.getGroupForIndex,D??r),i=p+o.length}}};var yt=(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},vn=(t,e,r,o,i,n=!1,s=0,d,E)=>{let v=n?"width":"height",g=n?"height":"width",w=n?"X":"Y",k=(f,P)=>{f.style[v]=`${P}px`},p=d??yt(t,i,n,0,s),D=()=>{let f=document.createElement("div");return f.className="sticky-group",f.style.position="absolute",f.style.willChange="transform",f.style[g]="100%",f},h=D(),S=D();p.append(h,S);let a=h,b=S,A=e.groups,l=[],L=[],F=[],M=0,B=()=>{A=e.groups,M=A.length,l=Array(M),L=Array(M),F=Array(M);for(let f=0;f<M;f++)l[f]=E?E(A[f].headerLayoutIndex):r.getOffset(A[f].headerLayoutIndex),L[f]=e.getHeaderHeight(f),F[f]=L[f]};B();let O=-1,V=0,q=0,J=-1,ie=!1,fe=0,z=!1,_=(f,P)=>{o(f,P);let x=L[P];return k(f,x),x},C=(f)=>{f.replaceChildren(),f.style.transform=""},R=(f)=>{if(f===O)return;if(O=f,V=0,q=0,f<0||f>=M){C(a);return}V=_(a,f),q=F[f],k(p,V),a.style.transform=""},N=(f)=>{if(f===fe)return;fe=f;let P=Math.round(f);a.style.transform=`translate${w}(${P}px)`,b.style.transform=`translate${w}(${P+V}px)`},m=()=>{fe=0,a.style.transform="",b.style.transform=""},u=()=>{if(!z)return;let f=a;a=b,b=f,O=J,V=O>=0?L[O]:0,q=O>=0?F[O]:0,k(p,V),C(b),J=-1,z=!1,m()},U=()=>{if(!z)return;C(b),J=-1,z=!1,m()},G=!!d,H=()=>{if(ie)return;if(ie=!0,G)p.style.visibility="";else p.style.display=""},y=()=>{if(!ie)return;if(ie=!1,G)p.style.visibility="hidden";else p.style.display="none";C(a),O=-1,V=0,q=0,U()},W=(f)=>{if(M===0){if(z)U();if(!ie)H();R(-1);return}if(f<l[0]){y();return}let P=0,x=M-1;while(P<x){let Y=P+x+1>>>1;if(l[Y]+F[Y]<=f)P=Y;else x=Y-1}if(!ie)H();R(P);let T=P+1;if(T<M){let Y=l[T]-f;if(Y<=0&&Y>-q){if(J!==T||!z)J=T,_(b,T),z=!0;let ne=q>0?Y/q*V:Y;N(ne)}else if(Y<=-q){if(z)u()}else if(z)U()}else if(z)U()},Q=()=>{B();let f=O;if(O=-1,V=0,q=0,f>=0)R(f)},Z=()=>{p.remove(),O=-1,V=0,q=0,J=-1,ie=!1,z=!1};if(!d)p.style.display="none";return{update:W,refresh:Q,show:H,hide:y,destroy:Z}};var $e={selected:!1,focused:!1},Sn=typeof process<"u"&&process.env?.NODE_ENV!=="production";function It(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,d,E,v,g=null,w,k,p,D=null,h,S,a,b=null,A,l,L=null,F=null,M=0,B=0,O=0,V=0,q=0,J=!1,ie=null,fe=new Map,z=new Set,_=new Map,C=-1,R=-1,N=0,m=!0,u=-1,U=0,G=null,H;function y(){return i.totalEntries}function W(){let c=d.totalItems;if(c===u)return;if(Sn)console.log(`[groups] syncLayout: ${u} → ${c}`);let X=u>0;u=c,i.rebuild(c,D??p),H(i.totalEntries),x();let te=Z?T():s.getTotalSize();if(g?.(te),n)n.refresh(),n.update(d.scrollPosition);if(X)xe();let ae=L?.("_scrollbar:getInstance");if(ae)ae()?.updateBounds(te,d.containerSize)}let Q=0,Z=null,f=null,P=null;function x(){if(M<=0){Z=null,f=null;return}Q=((d.crossSize||v.clientWidth)-V-(M-1)*B)/M,Z=new Map;let te=i.totalEntries,ae=Array(te),Te=0;if(J){let ye=ie??((Le)=>s.getSize(Le)),ve=new Float64Array(M),me=[],Se=0,Ce=-1;for(let Le=0;Le<te;Le++){let he=i.getEntry(Le);if(he.type==="header"){let re=0;for(let j=0;j<M;j++)if(ve[j]>re)re=ve[j];if(Ce>=0)me[Ce]=Se+re;Se+=re;let se=s.getSize(Le);Z.set(Le,{col:-1,rowY:Se}),ae[Te++]=[Le,Se,Se+se],Se+=se,ve.fill(0),Ce=he.group.groupIndex}else{let re=0,se=ve[0];for(let K=1;K<M;K++)if(ve[K]<se)se=ve[K],re=K;let j=ye(he.dataIndex),Ie=Se+ve[re];Z.set(Le,{col:re,rowY:Ie,h:j}),ae[Te++]=[Le,Ie,Ie+j],ve[re]=ve[re]+j+B}}if(Ce>=0){let Le=0;for(let he=0;he<M;he++)if(ve[he]>Le)Le=ve[he];me[Ce]=Se+Le}P=me}else{P=null;let ye=0,ve=0,me=0;for(let Se=0;Se<te;Se++)if(i.getEntry(Se).type==="header"){if(ve>0&&me>0)ye+=me;let Le=s.getSize(Se);Z.set(Se,{col:-1,rowY:ye}),ae[Te++]=[Se,ye,ye+Le],ye+=Le,ve=0,me=0}else{let Le=ve%M,he=s.getSize(Se);if(Le===0){if(ve>0&&me>0)ye+=me+B;me=he}else if(he>me)me=he;Z.set(Se,{col:Le,rowY:ye}),ae[Te++]=[Se,ye,ye+he],ve++}}ae.length=Te,f=ae}function T(){if(!Z||Z.size===0)return s.getTotalSize();let c=i.totalEntries;if(J)return P?.[P.length-1]??0;let X=0;for(let te=c-1;te>=0;te--){let ae=Z.get(te);if(ae){X=ae.rowY+(ae.h??s.getSize(te));break}if(i.getEntry(te).type==="header"){X=s.getOffset(te)+s.getSize(te);break}}return X}function Y(c){let X=d.baseOffset;if(Z){let ae=Z.get(c);if(ae){let Te=ae.col<0?0:O+ae.col*(Q+B),ye=ae.rowY-X;if(h)return`translate(${Math.round(ye)}px, ${Math.round(Te)}px)`;return`translate(${Math.round(Te)}px, ${Math.round(ye)}px)`}}let te=s.getOffset(c)-X;if(h)return`translate(${Math.round(te)}px, 0)`;return`translate(0, ${Math.round(te)}px)`}function ne(c,X){let te=Z?.get(X);if(te){let Te=te.h??s.getSize(X);if(te.col<0)if(h)c.style.width=`${Te}px`,c.style.height="";else c.style.height=`${Te}px`,c.style.width="100%";else if(h)c.style.width=`${Te}px`,c.style.height=`${Q}px`;else c.style.height=`${Te}px`,c.style.width=`${Q}px`;return}let ae=s.getSize(X);if(h)c.style.width=`${ae}px`;else c.style.height=`${ae}px`}function xe(){fe.forEach((c)=>{c.remove();let X=c.getAttribute("data-id");if(X)_.set(X,c);else E.release(c)}),fe.clear(),z.clear()}function ue(){if(_.size>0)_.forEach((c)=>E.release(c)),_.clear()}function ee(c,X,te,ae){if(F===null)F=!!L?.("_getSelectedIds");if(X.type==="header"){let Ce=`__group_header_${X.group.groupIndex}`;if(c.getAttribute("data-id")===Ce)return!0;if(c.className=l,c.setAttribute("role","presentation"),c.removeAttribute("aria-selected"),c.setAttribute("data-id",Ce),h&&n&&X.group.groupIndex===0)c.style.display="none";else{c.style.display="";let Le=o(X.group.key,X.group.groupIndex);if(typeof Le==="string")c.innerHTML=Le;else c.innerHTML="",c.appendChild(Le)}return!0}let Te=X.dataIndex,ye=p(Te);if(!ye)return c.innerHTML="",!1;let ve=ye._isPlaceholder===!0,me=String(ye.id);if(!ve&&c.getAttribute("data-id")===me){if(F)c.id=`${S}-item-${ae}`,c.setAttribute("aria-posinset",String(Te+1)),c.setAttribute("aria-setsize",String(d.totalItems));return!0}if(c.className=A,c.setAttribute("role",F?"option":"listitem"),c.setAttribute("data-id",me),F)c.id=`${S}-item-${ae}`,c.setAttribute("aria-posinset",String(Te+1)),c.setAttribute("aria-setsize",String(d.totalItems));if(ve)c.classList.add(`${S}-item--placeholder`);if(te)te(ae,$e);else $e.selected=!1,$e.focused=!1;let Se=k(ye,Te,$e);if(typeof Se==="string")c.innerHTML=Se;else c.innerHTML="",c.appendChild(Se);return Ne(c),!ve}let ce=0;function ge(){if(M<=0)return;let c=d.crossSize;if(c===ce)return;ce=c,x();let X=T();if(g?.(X),n)n.refresh(),n.update(d.scrollPosition);m=!0}function be(){if(d.destroyed)return;W(),ge();let c=d.scrollPosition,X=d.containerSize,te=d.baseOffset,ae=te!==N;if(!m&&c===C&&X===R&&!ae)return;C=c,R=X;let Te=m;m=!1;let ye=y();if(X<=0||ye===0){if(fe.size>0)fe.forEach((K)=>{K.remove(),E.release(K)}),fe.clear(),z.clear();return}let ve,me;if(f){let K=f,de=K.length,Me=0,Ee=de-1;while(Me<Ee){let ze=Me+Ee>>>1;if(K[ze][2]<=c)Me=ze+1;else Ee=ze}let we=Me;Ee=de-1;while(Me<Ee){let ze=Me+Ee+1>>>1;if(K[ze][1]>=c+X)Ee=ze-1;else Me=ze}let Be=Me,He=K[we][0],Ue=K[Be][0];for(let ze=He-1;ze>=0;ze--)if(i.getEntry(ze).type==="header"){He=ze;break}let Ve=a*M;ve=Math.max(0,He-Ve),me=Math.min(ye-1,Ue+Ve)}else{let K=s.indexAtOffset(c),de=s.indexAtOffset(c+X);if(de<ye-1)de++;K=Math.max(0,K),de=Math.min(ye-1,Math.max(0,de)),ve=Math.max(0,K-a),me=Math.min(ye-1,de+a)}if(ve===d.prevRangeStart&&me===d.prevRangeEnd&&!d.renderPending&&!ae)return;N=te,fe.forEach((K,de)=>{if(de<ve||de>me)K.remove(),E.release(K),fe.delete(de),z.delete(de)});let Se=b?.()??null,Ce=Se?`${S}-item--selected`:"",Le=Se?`${S}-item--focused`:"",he=null;for(let K=ve;K<=me;K++){let de=fe.get(K),Me=!1;if(de===void 0){let Ee=i.getEntry(K);Me=Ee.type==="header";let we;if(Ee.type==="header")we=`__group_header_${Ee.group.groupIndex}`;else{let He=p(Ee.dataIndex);if(He&&He._isPlaceholder!==!0)we=String(He.id)}if(we!==void 0){let He=_.get(we);if(He)_.delete(we),de=He}if(!de)de=E.acquire();if(de.setAttribute("data-index",String(K)),ee(de,Ee,Se,K))z.delete(K);else z.add(K);if(ne(de,K),de.style.transform=Y(K),fe.set(K,de),!he)he=document.createDocumentFragment();he.appendChild(de)}else if(Te&&z.has(K)){let Ee=i.getEntry(K);if(Ee.type==="item")if(ee(de,Ee,Se,K))z.delete(K);else z.add(K)}else if(Me=de.classList.contains(l),Te)ne(de,K),de.style.transform=Y(K);else if(ae)de.style.transform=Y(K);if(!Me&&Se)if(Se(K,$e),de.classList.toggle(Ce,$e.selected),de.classList.toggle(Le,$e.focused),$e.selected)de.setAttribute("aria-selected","true");else de.removeAttribute("aria-selected")}if(he)v.appendChild(he);ue();let re=Z?T():s.getTotalSize();g?.(re),d.prevRangeStart=ve,d.prevRangeEnd=me,d.renderPending=!1;let se=0,j=0,Ie=!1;for(let K=ve;K<=me&&se<d.capacity;K++){let de=i.getEntry(K);if(de.type==="item"){if(!Ie)j=de.dataIndex,Ie=!0;d.visibleIndices[se]=de.dataIndex,d.visibleOffsets[se]=s.getOffset(K),d.visibleSizes[se]=s.getSize(K),se++}}d.visibleCount=se,d.startIndex=j}function oe(){if(d.destroyed)return;if(ge(),Sn)console.log(`[groups] forceRender, placeholders: ${z.size}, rendered: ${fe.size}`);let c=G?.()??0;if(c!==U){U=c;let X=i.groups,te=X.length;i.rebuild(u,D??p);let ae=i.groups,Te=ae.length!==te;if(!Te){for(let ye=0;ye<te;ye++)if(ae[ye].headerLayoutIndex!==X[ye].headerLayoutIndex){Te=!0;break}}if(Te){H(i.totalEntries),x();let ye=Z?T():s.getTotalSize();if(g?.(ye),n)n.refresh(),n.update(d.scrollPosition);let ve=1/0,me=Math.min(te,ae.length);for(let Ce=0;Ce<me;Ce++)if(ae[Ce].headerLayoutIndex!==X[Ce].headerLayoutIndex){ve=Math.min(ae[Ce].headerLayoutIndex,X[Ce].headerLayoutIndex);break}if(ae.length>te&&me<ae.length)ve=Math.min(ve,ae[me].headerLayoutIndex);else if(te>ae.length&&me<te)ve=Math.min(ve,X[me].headerLayoutIndex);if(ve<=d.prevRangeEnd)xe();let Se=L?.("_scrollbar:getInstance");if(Se)Se()?.updateBounds(ye,d.containerSize)}}d.prevRangeStart=-1,d.prevRangeEnd=-1,d.renderPending=!0,m=!0,be()}return{name:"groups",priority:10,setup(c){s=c.sizeCache,d=c.getState(),E=c.pool,v=c.dom.content,g=c.updateContentSize.bind(c),w=c.dom.root,k=c.template,h=c.config.axis.primary==="x",S=c.config.classPrefix,a=c.config.overscan,q=c.config.mainAxisPadding,p=c.getItem.bind(c),b=()=>c.getItemStateFn(),L=c.getMethod.bind(c),F=null,A=`${S}-item`,l=`${S}-group-header`;let X=L?.("getGridLayout"),te=L?.("getMasonryLayout");if(X){let re=X();M=re.columns,B=re.gap,O=c.config.crossPadStart,V=c.config.crossAxisPadding}else if(te){let re=te();M=re.columns,B=re.gap,O=c.config.crossPadStart,V=c.config.crossAxisPadding,J=!0;let se=c.rawSizeSpec;if(typeof se==="function")ie=(j)=>se(j,{columnWidth:Q})}queueMicrotask(()=>{let re=L?.("_getLoadedItem");if(re)D=re;let se=L?.("_getLoadedCount");if(se)G=se});let ae=d.totalItems;i=hn(ae,t,D??p),u=ae;let Te=typeof e==="number"?(re)=>e:(re)=>{let se=i.groups[re];if(!se)return 0;return e(se.key,re)},ye=s.getSize,ve=(re)=>{let se=i.getEntry(re);if(se.type==="header"){if(t.sticky!==!1&&se.group.groupIndex===0)return 0;return Te(se.group.groupIndex)}return ye(se.dataIndex)};c.setSizeConfig(ve);let me=!1,Se=-1;if(c.registerMethod("_setSizeCacheBase",(re)=>{H=re}),H=s.rebuild,s.rebuild=(re)=>{if(me){if(!G)G=L?.("_getLoadedCount")??null;let se=G?.()??0;if(re!==u||se!==Se){if(u=re,Se=se,!D)D=L?.("_getLoadedItem")??null;if(i.rebuild(re,D??((j)=>c.getItems()[j])),d.totalItems=i.totalEntries,n)n.refresh(),n.update(d.scrollPosition)}}H(i.totalEntries)},s.rebuild(i.totalEntries),x(),c.setVirtualTotalFn(()=>i.totalEntries),w.classList.add(`${S}--grouped`),t.sticky!==!1){let re=(K,de)=>{let Me=i.groups[de];if(!Me)return;let Ee=o(Me.key,de);if(typeof Ee==="string")K.innerHTML=Ee;else K.replaceChildren(Ee)},se=i.getHeaderHeight(0),j=yt(w,S,h,se),Ie=M>0?(K)=>{let de=Z?.get(K);return de?de.rowY:s.getOffset(K)}:void 0;if(n=vn(w,i,s,re,S,h,0,j,Ie),n.update(d.scrollPosition),!h)c.dom.viewport.style.height=`calc(100% - ${se}px)`;else c.dom.viewport.style.width=`calc(100% - ${se}px)`,c.dom.viewport.style.marginLeft=`${se}px`}let Ce=!!L?.("_updateTableForGroups");if(me=Ce,Ce)queueMicrotask(()=>{let re=L?.("_getItem")??null,se=c.getItems.bind(c);c.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 re?re(K.dataIndex):se()[K.dataIndex]});let j=L?.("_updateTableForGroups");if(j)j((Ie)=>!!Ie.__groupHeader,o)});else c.setRenderFn(be,oe);c.registerMethod("getGroupLayout",()=>i),c.registerMethod("_dataToLayoutIndex",(re)=>i.dataToLayoutIndex(re)),c.registerMethod("_layoutToDataIndex",(re)=>i.layoutToDataIndex(re)),c.registerMethod("_getRenderedElement",(re)=>fe.get(re)??null),c.registerMethod("_isGroupHeader",(re)=>i.getEntry(re).type==="header"),c.registerMethod("_getItemLane",(re)=>{let se=Z?.get(re);return se?se.col:-1}),c.registerMethod("_getItemY",(re)=>{let se=Z?.get(re);return se?se.rowY:-1}),c.registerMethod("_getItemH",(re)=>Z?.get(re)?.h??-1);let Le=c.config.startPadding,he=q-Le;c.registerMethod("_scrollItemIntoView",(re)=>{if(re<0)return;let se=Z?.get(re),j=se?se.rowY:s.getOffset(re),Ie=se?.h??s.getSize(re),K=d.containerSize,de=d.scrollPosition;if(j<de+Le)c.scrollTo(Math.max(0,j-Le));else if(j+Ie+he>de+K)c.scrollTo(j+Ie+he-K)}),c.registerMethod("scrollToIndex",(re,se="start")=>{let j=i.dataToLayoutIndex(re),Ie=i.totalEntries;if(Ie===0)return;let K=Math.max(0,Math.min(j,Ie-1)),de=d.containerSize,Me=Z?.get(K),Ee=Me?Me.rowY:s.getOffset(K),we=Me?Me.h??s.getSize(K):s.getSize(K),Be=Z?T()+q:s.getTotalSize(),He=Math.max(0,Be-de),Ue=typeof se==="string"?se:se.align??"start",Ve=typeof se==="object"?se.behavior:void 0,ze=typeof se==="object"?se.duration:void 0,Ke=Z?q:0,le=Ee+we;if(J&&P){let pe=i.getEntry(K).group.groupIndex,Pe=P[pe];if(Pe!==void 0)le=Pe}let I;switch(Ue){case"center":I=Ee-(de-we)/2;break;case"end":I=le-de+Ke;break;default:I=Ee}if(I=Math.max(0,Math.min(I,He)),Ve==="smooth"&&ze&&ze>0)c.smoothScrollTo(I,ze);else c.scrollTo(I)}),c.registerDestroyHandler(()=>{for(let[,re]of fe)re.remove();if(fe.clear(),z.clear(),n)n.destroy(),n=null;w.classList.remove(`${S}--grouped`)})},hooks:{onAfterScroll(c,X){if(n)n.update(c)},onResize(c,X){if(M<=0)return;H(i.totalEntries),ce=d.crossSize,x();let te=T();if(g?.(te),n)n.refresh(),n.update(d.scrollPosition);m=!0,be()}},destroy(){if(n)n.destroy(),n=null;fe.clear(),z.clear(),_.clear()}}}var yn=(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},In=(t)=>({selected:new Set(t??[]),focusedIndex:-1,focusVisible:!1});function We(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 it(t){return Array.from(t)}function Tt(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 Xn={preventScroll:!0};function st(t){let e=t?.mode??"single",r=t?.followFocus??!1,o=t?.focusOnClick??!1,i=t?.keyboard??!0,n,s,d,E,v,g,w,k,p=-1,D=new Map,h=null,S=null,a=null,b=null,A,l=!1;function L(u){if(l)return;l=!0,h=u.getMethod("_layoutToDataIndex")??null,S=u.getMethod("_dataToLayoutIndex")??null,a=u.getMethod("_isGroupHeader")??null,b=u.getMethod("_scrollItemIntoView")??null,M=u.getMethod("_getLoadedItem")??null;let U=u.getMethod("getGroupLayout");if(U){let G=U();A=()=>G.totalEntries}}let F=(u)=>h?h(u):u,M=null,B=(u)=>{if(M)return M(u);return s()[u]},O=(u)=>{let U=F(u);return U>=0?B(U):void 0},V=(u,U,G)=>{if(!a)return u;let H=u;while(H>=0&&H<G){if(!a(H))return H;H+=U}H=u-U;while(H>=0&&H<G){if(!a(H))return H;H-=U}return u};function q(u,U){if(e==="single")n.selected.clear(),D.clear();if(n.selected.add(u),U)D.set(u,U)}function J(u,U){if(n.selected.has(u))n.selected.delete(u),D.delete(u);else q(u,U)}function ie(){n.selected.clear(),D.clear()}function fe(u){n.selected.delete(u),D.delete(u)}function z(u,U){let G=Math.min(u,U),H=Math.max(u,U);for(let y=G;y<=H;y++){if(a?.(y))continue;let W=O(y);if(W)n.selected.add(W.id),D.set(W.id,W);else if(M){let Q=F(y);if(Q>=0)n.selected.add(_e+Q)}}}function _(){let u=w.totalItems;for(let U=0;U<u;U++){if(a?.(U))continue;let G=O(U);if(G)n.selected.add(G.id),D.set(G.id,G);else if(M){let H=F(U);if(H>=0)n.selected.add(_e+H)}}}function C(){if(n.selected.size===0)return[];if(D.size>=n.selected.size){let H=[];for(let y of n.selected){let W=D.get(y);if(W)H.push(W)}if(H.length===n.selected.size)return H}let u=[],U=new Set(n.selected),G=w.totalItems;for(let H=0;H<G&&U.size>0;H++){if(a?.(H))continue;let y=O(H);if(y&&U.has(y.id))u.push(y),D.set(y.id,y),U.delete(y.id)}return u}function R(){d(),E.emit("selection:change",{selected:it(n.selected),items:C()})}let N=null,m=-1;return{name:"selection",priority:50,setup(u){u.enableListboxRole(),n=In(t?.initial),s=u.getItems.bind(u),d=u.forceRender.bind(u),E=u.emitter,v=u.dom;let U=u.config;if(g=u.sizeCache,w=u.getState(),k=u.scrollTo.bind(u),A=()=>w.totalItems,e==="none"){u.registerMethod("select",()=>{}),u.registerMethod("deselect",()=>{}),u.registerMethod("toggleSelect",()=>{}),u.registerMethod("selectAll",()=>{}),u.registerMethod("clearSelection",()=>{}),u.registerMethod("getSelected",()=>[]),u.registerMethod("getSelectedItems",()=>[]),u.registerMethod("selectNext",()=>{}),u.registerMethod("selectPrevious",()=>{}),u.registerMethod("_seedSelection",()=>{}),u.registerMethod("_getFocusedId",()=>{return}),u.registerMethod("_focusById",()=>{});return}let G=U.classPrefix;u.setItemStateFn((P,x)=>{if(L(u),n.selected.size>0){let T=F(P),Y=T>=0?O(P):void 0,ne=Y?.id;if(ne!==void 0)if(n.selected.has(ne))x.selected=!0;else if(yn(n.selected,T,ne))x.selected=!0,D.delete(_e+T),D.set(ne,Y);else x.selected=!1;else x.selected=M!==null&&T>=0&&n.selected.has(_e+T)}else x.selected=!1;x.focused=n.focusVisible&&n.focusedIndex===P}),u.registerMethod("_getSelectedIds",()=>n.selected),u.registerMethod("_getFocusedIndex",()=>n.focusVisible?n.focusedIndex:-1),v.root.classList.add(`${G}--selectable`);let H=(P)=>{N=null,m=-1;let x=P.target.closest("[data-index]");if(!x)return!1;let T=parseInt(x.dataset.index??"-1",10);if(T<0)return!1;if(a?.(T))return!1;if(F(T)<0)return!1;let ne=O(T);if(!ne)return!1;return N=ne,m=T,!0},y=0,W=(P)=>{if(P<0)return;if(b){b(P);return}if(!y){let ge=u.getMethod("_getRowGap");y=ge?ge():0}let x=u.getNavConfig(),T=x.scrollIndex?x.scrollIndex(P):P,Y=g.getOffset(T),ne=g.getSize(T)-y,xe=w.containerSize,ue=w.scrollPosition,{startPadding:ee,endPadding:ce}=U;if(Y<ue)k(Y);else if(ee+Y+ne+ce>ue+xe)k(ee+Y+ne+ce-xe)},Q=(P)=>{let x=v.content.querySelectorAll(`[data-index="${P}"]`),T=null;for(let Y=0;Y<x.length;Y++){let ne=x[Y];if(ne.style.display!=="none"){T=ne;break}}if(!T&&x.length>0)T=x[0];v.content.setAttribute("aria-activedescendant",T?.id??`${G}-item-${P}`)},Z=()=>{if(w.destroyed)return;if(L(u),!v.content.matches(":focus-visible")&&!v.root.matches(":focus-visible"))return;let P=A();if(P===0)return;let x=n.focusedIndex>=0?Math.min(n.focusedIndex,P-1):0;x=V(x,1,P),n.focusedIndex=x,n.focusVisible=!0,Q(x),W(x),d()};v.root.addEventListener("focusin",Z);let f=(P)=>{if(w.destroyed)return;let x=P.relatedTarget;if(x&&v.root.contains(x))return;n.focusVisible=!1,d(),v.content.removeAttribute("aria-activedescendant")};if(v.root.addEventListener("focusout",f),u.registerDestroyHandler(()=>{v.root.removeEventListener("focusin",Z),v.root.removeEventListener("focusout",f)}),u.registerClickHandler((P)=>{if(L(u),!H(P))return;if(e==="multiple"&&P.shiftKey&&n.focusedIndex>=0){let T=p>=0?p:n.focusedIndex,Y=F(T),ne=F(m);if(Y>=0&&ne>=0)z(T,m);n.focusedIndex=m,n.focusVisible=o,p=m,R();return}if(n.focusedIndex=m,n.focusVisible=o,p=m,(v.content.getAttribute("tabindex")!==null?v.content:v.root).focus(Xn),e==="single")q(N.id,N);else J(N.id,N);R()}),i)u.registerKeydownHandler((P)=>{L(u);let x=A();if(x===0)return;let T=u.getNavConfig(),Y=n.focusedIndex,ne=!1,xe=!1;if(T.navigate&&(P.key==="ArrowUp"||P.key==="ArrowDown"||P.key==="ArrowLeft"||P.key==="ArrowRight"||P.key==="PageUp"||P.key==="PageDown"||P.key==="Home"||P.key==="End")){let ee=T.total?T.total():x,ce=T.navigate(n.focusedIndex,P.key,ee);if(ce!==n.focusedIndex)n.focusedIndex=Math.max(0,Math.min(ce,ee-1));n.focusVisible=!0,ne=!0}else switch(P.key){case"ArrowUp":{let ee=T.ud||1,ce=T.lr,ge=U.axis.primary==="x";if(ge&&!ce)break;We(n,-(ge?ce:ee),x,U.reverse),n.focusVisible=!0,ne=!0;break}case"ArrowDown":{let ee=T.ud||1,ce=T.lr,ge=U.axis.primary==="x";if(ge&&!ce)break;We(n,ge?ce:ee,x,U.reverse),n.focusVisible=!0,ne=!0;break}case"ArrowLeft":{let ee=T.ud||1,ce=T.lr,ge=U.axis.primary==="x";if(!ge&&!ce)break;We(n,-(ge?ee:ce),x,U.reverse),n.focusVisible=!0,ne=!0;break}case"ArrowRight":{let ee=T.ud||1,ce=T.lr,ge=U.axis.primary==="x";if(!ge&&!ce)break;We(n,ge?ee:ce,x,U.reverse),n.focusVisible=!0,ne=!0;break}case"Home":if(x>0)n.focusedIndex=0;n.focusVisible=!0,ne=!0;break;case"End":if(x>0)n.focusedIndex=x-1;n.focusVisible=!0,ne=!0;break;case"PageUp":case"PageDown":{let ee=T.ud||1,ce=Math.max(0,n.focusedIndex),ge=T.scrollIndex?T.scrollIndex(ce):ce,be=g.getSize(ge),oe=w.containerSize,X=(be>0?Math.max(1,Math.floor(oe/be)):10)*ee;if(h&&S){let te=h(n.focusedIndex),ae=P.key==="PageUp"?-X:X,Te=w.totalItems-1;n.focusedIndex=S(Tt(te+ae,te,ee,Te+1))}else{let te=P.key==="PageUp"?n.focusedIndex-X:n.focusedIndex+X;n.focusedIndex=Tt(te,n.focusedIndex,ee,x)}n.focusVisible=!0,ne=!0;break}case" ":case"Enter":if(P.key===" "&&P.shiftKey&&e==="multiple"&&n.focusedIndex>=0){if(p>=0){let ee=F(p),ce=F(n.focusedIndex);if(ee>=0&&ce>=0)z(p,n.focusedIndex)}n.focusVisible=!0,xe=!0,ne=!0;break}if(n.focusedIndex>=0){let ee=O(n.focusedIndex);if(ee)J(ee.id,ee),p=n.focusedIndex;n.focusVisible=!0,xe=!0,ne=!0}break;case"a":if((P.ctrlKey||P.metaKey)&&e==="multiple"){if(n.selected.size===w.totalItems)ie();else _();n.focusVisible=!0,xe=!0,ne=!0}break;case"Delete":case"Backspace":if(n.selected.size>0)E.emit("delete",{selected:it(n.selected),items:C()}),ne=!0;break}if(n.focusedIndex!==Y&&a){let ee=n.focusedIndex>Y?1:-1;n.focusedIndex=V(n.focusedIndex,ee,x)}let ue=n.focusedIndex!==Y;if(P.shiftKey&&e==="multiple"&&!xe&&ue){if(P.key==="ArrowUp"||P.key==="ArrowDown"||P.key==="ArrowLeft"||P.key==="ArrowRight"){let ge=O(n.focusedIndex);if(ge)J(ge.id,ge);p=n.focusedIndex,xe=!0}if((P.ctrlKey||P.metaKey)&&(P.key==="Home"||P.key==="End")){let ge=Y>=0?Y:n.focusedIndex,be=F(ge),oe=F(n.focusedIndex);if(be>=0&&oe>=0)z(ge,n.focusedIndex);p=n.focusedIndex,xe=!0}}if(r&&e==="single"&&!xe&&ue&&n.focusedIndex>=0){let ee=O(n.focusedIndex);if(ee)q(ee.id,ee);xe=!0}if(ne){if(P.preventDefault(),ue&&n.focusedIndex>=0){if(b||!T.navigate)W(n.focusedIndex);Q(n.focusedIndex)}if(xe)R();else if(ue){if(d(),n.focusedIndex>=0){let ee=O(n.focusedIndex);if(ee)E.emit("focus:change",{id:ee.id,index:n.focusedIndex})}}}});u.registerMethod("select",(...P)=>{for(let x of P)q(x);R()}),u.registerMethod("deselect",(...P)=>{for(let x of P)fe(x);R()}),u.registerMethod("toggleSelect",(P)=>{J(P),R()}),u.registerMethod("selectAll",()=>{if(e!=="multiple")return;L(u),_(),R()}),u.registerMethod("clearSelection",()=>{ie(),R()}),u.registerMethod("getSelected",()=>it(n.selected)),u.registerMethod("getSelectedItems",()=>C()),u.registerMethod("selectNext",()=>{L(u);let P=A();if(P===0)return;if(We(n,1,P,U.reverse),a)n.focusedIndex=V(n.focusedIndex,1,P);let x=O(n.focusedIndex);if(x)q(x.id,x);R()}),u.registerMethod("selectPrevious",()=>{L(u);let P=A();if(P===0)return;if(We(n,-1,P,U.reverse),a)n.focusedIndex=V(n.focusedIndex,-1,P);let x=O(n.focusedIndex);if(x)q(x.id,x);R()}),u.registerMethod("_seedSelection",(P)=>{if(e==="single"){if(P.length===1)n.selected.add(P[0])}else for(let x of P)n.selected.add(x)}),u.registerMethod("_isFollowFocus",()=>r),u.registerMethod("_getFocusedId",()=>{if(n.focusedIndex<0)return;return O(n.focusedIndex)?.id}),u.registerMethod("_focusById",(P)=>{let x=w.totalItems;for(let T=0;T<x;T++){if(a?.(T))continue;let Y=O(T);if(Y&&Y.id===P){n.focusedIndex=T,n.focusVisible=o,E.emit("focus:change",{id:P,index:T});return}}})},destroy(){D.clear()}}}var Tn=!1;function xt(t){return{name:"scale",priority:20,setup(){if(!Tn)Tn=!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 qn=(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}},xn=(t,e,r={},o="vlist",i=!1,n)=>{let{autoHide:s=!0,autoHideDelay:d=1000,minThumbSize:E=15,showOnHover:v=!0,showOnViewportEnter:g=!0,clickBehavior:w="scroll"}=r,k=w==="page"?"scroll":w,p=n??t,D=qn(r.padding),h=i?D.left:D.top,S=i?D.right:D.bottom,a=i?D.bottom:D.right,b=r.hoverZoneWidth??a+16,A=0,l=0,L=0,F=0,M=!1,B=!1,O=0,V=0,q=0,J=null,ie=!1,fe=null,z=0,_=0,C=null,R=null,N=null,m=i?"width":"height",u=i?"translateX":"translateY",U=i?(j)=>j.clientX:(j)=>j.clientY,G=i?"left":"top",H=document.createElement("div"),y=document.createElement("div"),W=document.createElement("div"),Q=i?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",Z=()=>{if(p===t)return;let j=t.offsetTop;H.style[i?"left":"top"]=j?`calc(var(${Q}) + ${j}px)`:`var(${Q})`,W.style[i?"left":"top"]=`${j}px`},f=()=>{if(H.className=`${o}-scrollbar`,y.className=`${o}-scrollbar__thumb`,i)H.classList.add(`${o}-scrollbar--horizontal`);if(r.padding!==void 0)p.style.setProperty("--vlist-custom-scrollbar-padding-top",`${D.top}px`),p.style.setProperty("--vlist-custom-scrollbar-padding-right",`${D.right}px`),p.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${D.bottom}px`),p.style.setProperty("--vlist-custom-scrollbar-padding-left",`${D.left}px`);if(r.minThumbSize!==void 0)H.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${E}px`);if(H.appendChild(y),p.appendChild(H),W.className=`${o}-scrollbar__hover`,i)W.classList.add(`${o}-scrollbar__hover--horizontal`),W.style.height=`${b}px`;else W.style.width=`${b}px`;if(p.appendChild(W),p!==t)Z()},P=()=>{if(J)clearTimeout(J),J=null},x=()=>{if(!s)return;P(),J=setTimeout(Y,d)},T=()=>{if(A<=l)return;if(P(),!ie)H.classList.add(`${o}-scrollbar--visible`),ie=!0;if(s&&!M&&!B)x()},Y=()=>{if(M||B)return;H.classList.remove(`${o}-scrollbar--visible`),ie=!1},ne=(j,Ie)=>{if(A=j,l=Ie,Z(),A<=l){H.style.display="none",Y();return}H.style.display="";let K=Math.max(0,l-h-S),de=l/A;if(L=Math.max(E,de*K),y.style[m]=`${L}px`,F=K-L,xe(q),!s)T()},xe=(j)=>{if(q=j,A<=l||F<=0)return;let Ie=A-l,K=Math.min(1,Math.max(0,j/Ie));y.style.transform=`${u}(${K*F}px)`},ue=(j)=>{if(j.target===y||k!=="jump"||F<=0)return;let Ie=A-l,K=H.getBoundingClientRect(),de=U(j)-K[G],Me=Math.max(0,Math.min(de-L/2,F));e(Me/F*Ie),T()},ee=()=>{if(C!==null)clearTimeout(C),C=null;if(R!==null)cancelAnimationFrame(R),R=null;N=null},ce=(j)=>{let Ie=F>0?_/j*F:0;if(z<Ie)return-1;if(z>=Ie+L)return 1;return 0},ge=()=>{let j=A-l,Ie=ce(j);if(Ie===0){ee();return}if(Ie===-1){if(_<=0){ee();return}let K=Math.max(0,_-l);_=K,e(K)}else{if(_>=j){ee();return}let K=Math.min(j,_+l);_=K,e(K)}T()},be=(j)=>{if(N===null){N=j,R=requestAnimationFrame(be);return}let Ie=A-l,K=j-N;N=j;let de=ce(Ie);if(de===0){ee();return}let Me=12*l/1000,Ee=Math.min(Me*K,l);if(de===-1){if(_<=0){ee();return}let we=Math.max(0,_-Ee);_=we,e(we)}else{if(_>=Ie){ee();return}let we=Math.min(Ie,_+Ee);_=we,e(we)}P(),R=requestAnimationFrame(be)},oe=()=>{ee(),x(),document.removeEventListener("mouseup",oe)},c=(j)=>{if(j.target===y||k!=="scroll")return;j.preventDefault();let Ie=H.getBoundingClientRect();z=U(j)-Ie[G],_=q,ge(),C=setTimeout(()=>{R=requestAnimationFrame(be)},350),document.addEventListener("mouseup",oe)},X=(j)=>{j.preventDefault(),j.stopPropagation(),M=!0,O=U(j),V=q,P(),H.classList.add(`${o}-scrollbar--dragging`),document.addEventListener("mousemove",te),document.addEventListener("mouseup",ae)},te=(j)=>{if(!M)return;let Ie=U(j)-O,K=F>0?Ie/F:0,de=A-l,Me=K*de,Ee=Math.max(0,Math.min(V+Me,de));y.style.transform=`${u}(${Ee/de*F}px)`,e(Ee)},ae=()=>{if(M=!1,H.classList.remove(`${o}-scrollbar--dragging`),s&&!B)x();document.removeEventListener("mousemove",te),document.removeEventListener("mouseup",ae)},Te=i?(j)=>j.touches[0].clientX:(j)=>j.touches[0].clientY,ye=(j)=>{j.stopPropagation(),M=!0,O=Te(j),V=q,P(),H.classList.add(`${o}-scrollbar--dragging`)},ve=(j)=>{if(!M)return;j.preventDefault();let Ie=Te(j)-O,K=F>0?Ie/F:0,de=A-l,Me=K*de,Ee=Math.max(0,Math.min(V+Me,de));y.style.transform=`${u}(${Ee/de*F}px)`,e(Ee)},me=()=>{if(M=!1,H.classList.remove(`${o}-scrollbar--dragging`),s)x()},Se=(j)=>{if(j.target===y)return;if(F<=0)return;let Ie=j.touches[0],K=H.getBoundingClientRect(),de=(i?Ie.clientX:Ie.clientY)-K[G];if(k==="jump"){let Me=A-l,Ee=Math.max(0,Math.min(de-L/2,F));e(Ee/F*Me)}else z=de,_=q,ge();T()},Ce=()=>{if(g)T()},Le=()=>{if(!M){if(B=!1,s)x()}},he=()=>{B=!0,P(),T()},re=()=>{if(B=!1,!M&&s)x()},se=()=>{if(P(),ee(),fe!==null)cancelAnimationFrame(fe),fe=null;H.removeEventListener("click",ue),H.removeEventListener("mousedown",c),H.removeEventListener("mouseenter",he),document.removeEventListener("mouseup",oe),H.removeEventListener("mouseleave",re),H.removeEventListener("touchstart",Se),y.removeEventListener("mousedown",X),y.removeEventListener("touchstart",ye),y.removeEventListener("touchmove",ve),y.removeEventListener("touchend",me),t.removeEventListener("mouseenter",Ce),t.removeEventListener("mouseleave",Le),document.removeEventListener("mousemove",te),document.removeEventListener("mouseup",ae),W.removeEventListener("click",ue),W.removeEventListener("mousedown",c),W.removeEventListener("mouseenter",he),W.removeEventListener("mouseleave",re),W.remove(),p.style.removeProperty("--vlist-custom-scrollbar-padding-top"),p.style.removeProperty("--vlist-custom-scrollbar-padding-right"),p.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),p.style.removeProperty("--vlist-custom-scrollbar-padding-left"),H.remove()};if(f(),H.addEventListener("click",ue),H.addEventListener("mousedown",c),H.addEventListener("mouseenter",he),H.addEventListener("mouseleave",re),H.addEventListener("touchstart",Se,{passive:!0}),y.addEventListener("mousedown",X),y.addEventListener("touchstart",ye,{passive:!0}),y.addEventListener("touchmove",ve,{passive:!1}),y.addEventListener("touchend",me,{passive:!0}),t.addEventListener("mouseenter",Ce),t.addEventListener("mouseleave",Le),W.addEventListener("click",ue),W.addEventListener("mousedown",c),v)W.addEventListener("mouseenter",he),W.addEventListener("mouseleave",re);return{show:T,hide:Y,updateBounds:ne,updatePosition:xe,isVisible:()=>ie,destroy:se}};function Lt(t){let e=null,r,o=0,i=0,n=0;return{name:"scrollbar",priority:15,setup(s){let{dom:d,config:E}=s,{classPrefix:v}=E,g=E.axis.primary==="x";r=s.getState(),o=E.mainAxisPadding;let w=(k)=>{s.scrollTo(k)};if(s.registerMethod("_scrollbar:setCallback",(k)=>{w=k}),e=xn(d.viewport,(k)=>{w(k)},t,v,g,d.root),d.viewport.classList.add(`${v}-viewport--custom-scrollbar`),t?.gutter)d.viewport.classList.add(`${v}-viewport--gutter`);queueMicrotask(()=>{e?.updateBounds(r.totalSize+o,r.containerSize)}),s.registerMethod("_scrollbar:getInstance",()=>e),s.registerDestroyHandler(()=>{if(e?.destroy(),e=null,d.viewport.classList.remove(`${v}-viewport--custom-scrollbar`),t?.gutter)d.viewport.classList.remove(`${v}-viewport--gutter`)})},hooks:{onAfterScroll(s){let d=r.totalSize+o,E=r.containerSize;if(d!==i||E!==n)i=d,n=E,e?.updateBounds(d,E);e?.updatePosition(s),e?.show()},onResize(){let s=r.totalSize+o,d=r.containerSize;i=s,n=d,e?.updateBounds(s,d)}},destroy(){e?.destroy(),e=null}}}var jn=(t)=>{try{let e=sessionStorage.getItem(t);if(!e)return;return JSON.parse(e)}catch{return}};function Et(t){let e=t?.autoSave,r=t?.restore??(e?jn(e):void 0),o=!1,i=null;return{name:"snapshots",priority:50,setup(n){let{sizeCache:s,emitter:d}=n,E=n.getState(),v=()=>{let{scrollPosition:k,totalItems:p}=E,h=n.getMethod("getSelected")?.();if(p===0){let M={index:0,offsetInItem:0,total:0};if(h?.length)M.selectedIds=h;return M}let S=s.indexAtOffset(k),a=k-s.getOffset(S);a=Math.max(0,a);let b={index:S,offsetInItem:a,total:p,scrollTop:k},A=s.getSize(S);if(A)b.offsetRatio=a/A;let l=n.getMethod("_layoutToDataIndex");if(l){let M=l(S);if(M<0){for(let B=S+1;B<p;B++)if(M=l(B),M>=0)break}if(M>=0)b.dataIndex=M}let L=n.getMethod("_getTotal");if(L)b.dataTotal=L();if(h?.length)b.selectedIds=h;let F=n.getMethod("_getFocusedId");if(F){let M=F();if(M!==void 0)b.focusedId=M}return b};n.registerMethod("getScrollSnapshot",v);let g=(k,p=!0)=>{let{index:D,offsetInItem:h,selectedIds:S,focusedId:a}=k,b=E.totalItems,A=k.dataTotal??k.total;if(b===0&&A&&A>0){let _=n.getMethod("_setTotal");if(_)_(A),b=E.totalItems;s.rebuild(b),n.updateContentSize(s.getTotalSize()),E.totalSize=s.getTotalSize()}if(b===0)return Promise.resolve();if(!Number.isFinite(D)||!Number.isFinite(h))return Promise.resolve();if(s.getTotal()===0)s.rebuild(b),n.updateContentSize(s.getTotalSize()),E.totalSize=s.getTotalSize();let L=n.getMethod("_dataToLayoutIndex"),F=D;if(k.dataIndex!==void 0&&k.dataIndex>=0)F=L?L(k.dataIndex):k.dataIndex;else if(L)F=L(D);let M=Math.max(0,Math.min(F,b-1)),B=s.getSize(M),O=k.offsetRatio!==void 0?k.offsetRatio*B:Math.min(h,B),V=n.getMethod("_getTotal")?.(),q=k.total===b||V!==void 0&&k.dataTotal===V,J;if(k.scrollTop!==void 0&&q)J=k.scrollTop;else J=s.getOffset(M)+O;let ie=Math.max(0,E.totalSize-E.containerSize);if(J=Math.max(0,Math.min(J,ie)),n.scrollTo(J),p&&S?.length){let _=n.getMethod("select");if(_)_(...S)}let fe=n.getMethod("loadVisibleRange"),z=()=>{if(a===void 0)return;let _=n.getMethod("_focusById");if(_)_(a)};return new Promise((_)=>{let C=(R)=>{if(R)z();_()};if(fe){let R=0,N=()=>{if(E.containerSize>0){if(Math.abs(E.scrollPosition-J)>1)n.scrollTo(J);fe().then(()=>C(!0),()=>C(!1))}else if(++R<10)requestAnimationFrame(N);else C(!1)};requestAnimationFrame(N)}else{let R=n.getMethod("reload");if(R)requestAnimationFrame(()=>{R().then(()=>C(!0),()=>C(!1))});else requestAnimationFrame(()=>C(!0))}})};n.registerMethod("restoreScroll",g);let w=!!(r&&e);if(n.registerDestroyHandler(()=>{o=!0}),e){i=()=>{if(o||w)return;let b=v();try{sessionStorage.setItem(e,JSON.stringify(b))}catch{}},n.registerMethod("_saveSnapshot",i);let k=0,p=()=>{if(k)return;k=requestAnimationFrame(()=>{if(k=0,i)i()})};d.on("selection:change",p),d.on("focus:change",p);let D=0,h=()=>{if(D=0,i)i()},S=()=>{if(D)clearTimeout(D);D=setTimeout(h,300)};d.on("scroll",S);let a=()=>{i?.()};if(window.addEventListener("beforeunload",a),n.registerDestroyHandler(()=>{if(k)cancelAnimationFrame(k);if(D)clearTimeout(D);window.removeEventListener("beforeunload",a)}),r&&r.total&&r.total>0){let b=n.getMethod("_cancelAutoLoad");if(b)b();let A=n.getMethod("_setTotal");if(A)A(r.total)}}if(r){let k=!0;if(r.selectedIds?.length){let p=n.getMethod("_seedSelection");if(p)p(r.selectedIds),k=!1}queueMicrotask(()=>{if(g(r,k),w=!1,i)i()})}},hooks:{onIdle(){if(i&&!o)i()}},destroy(){o=!0,i=null}}}function Zn(t){let e=[];if(typeof window<"u"&&t.scroll?.element===window)e.push(gt());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(pt());if(t.adapter)e.push(bt({adapter:t.adapter,...t.loading&&{loading:t.loading}}));if(t.layout==="grid"&&t.grid)e.push(ht(t.grid));if(t.layout==="masonry"&&t.masonry)e.push(vt(t.masonry));if(t.groups){let E=t.groups,v=typeof E.headerHeight==="function"?E.headerHeight("",0):E.headerHeight;e.push(It({getGroupForIndex:E.getGroupForIndex,...v!==void 0&&{headerHeight:v},...E.headerTemplate!==void 0&&{headerTemplate:E.headerTemplate},...E.sticky!==void 0&&{sticky:E.sticky}}))}if((t.selection?.mode||"none")!=="none")e.push(st(t.selection));else e.push(st({mode:"none"}));e.push(xt());let d=t.scroll?.scrollbar||t.scrollbar;if(d!=="none"&&d!=="native"){let E=d&&typeof d==="object"?d:{};e.push(Lt(E))}if(e.push(Et()),t.plugins&&t.plugins.length>0){let E=new Set(t.plugins.map((g)=>g.name));return[...e.filter((g)=>!E.has(g.name)),...t.plugins]}return e}function ni(t){return ln(t,Zn(t))}export{ni as createVListFromConfig,Zn as resolvePlugins};