vlist 2.8.1 → 3.0.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/config.js CHANGED
@@ -1 +1 @@
1
- var Qe=3,Pt="vlist";var et=50;var zt=50,At=2,wt=15,Rt=6,dt=2000,Ht=30000,ut=16000000,Ve=150,je=1,tt=(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",$t=20,ct="_isPlaceholder",_e="__placeholder_";var nt={top:0,right:0,bottom:0,left:0},Gt=(t)=>{if(t==null)return nt;if(typeof t==="number")return t===0?nt:{top:t,right:t,bottom:t,left:t};if(t.length===2){let[n,s]=t;return n===0&&s===0?nt:{top:n,right:s,bottom:n,left:s}}let[e,r,o,i]=t;return e===0&&r===0&&o===0&&i===0?nt:{top:e,right:r,bottom:o,left:i}},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,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,prevAriaTotal:-1,resizeCapacity(r,o,i=Qe){if(o<=0||r<=0)return;let n=Math.ceil(r/o)+i*2;if(n<=e.capacity)return;let s=n+8,l=new Int32Array(s),E=new Float64Array(s),S=new Float64Array(s);l.set(e.visibleIndices),E.set(e.visibleOffsets),S.set(e.visibleSizes),e.visibleIndices=l,e.visibleOffsets=E,e.visibleSizes=S,e.capacity=s},clear(){e.visibleCount=0,e.startIndex=0}};return e}var Pn=(t,e)=>{let r=e;return{getOffset:(o)=>o*t,getSize:(o)=>t,indexAtOffset:(o)=>{if(r===0||t===0)return 0;return Math.max(0,Math.min(Math.floor(o/t),r-1))},getTotalSize:()=>r*t,getTotal:()=>r,rebuild:(o)=>{r=o},isVariable:()=>!1}},zn=(t,e)=>{let r=e,o=new Float64Array(0),i=(s)=>{r=s,o=new Float64Array(s+1),o[0]=0;for(let l=0;l<s;l++)o[l+1]=o[l]+t(l)};i(e);let n=(s)=>{if(r===0)return 0;if(s<=0)return 0;if(s>=o[r])return r-1;let l=0,E=r-1;while(l<E){let S=l+E+1>>>1;if(o[S]<=s)l=S;else E=S-1}return l};return{getOffset:(s)=>{if(s<=0)return 0;if(s>=r)return o[r];return o[s]},getSize:(s)=>t(s),indexAtOffset:(s)=>n(s),getTotalSize:()=>o[r]??0,getTotal:()=>r,rebuild:(s)=>i(s),isVariable:()=>!0}},ot=(t,e)=>{if(typeof t==="number")return Pn(t,e);return zn(t,e)};function Yt(t){let e=[],r=`${t}-item`,o=document.createElement("div");return o.className=r,{acquire(){if(e.length>0)return e.pop();return o.cloneNode(!1)},release(i){if(i.className=r,i.removeAttribute("style"),i.removeAttribute("id"),i.removeAttribute("role"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-posinset"),i.removeAttribute("aria-setsize"),i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.textContent="",e.length<100)e.push(i)},get size(){return e.length},clear(){e.length=0}}}function We(t){let e=t.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let r=0;r<e.length;r++)e[r].setAttribute("tabindex","-1")}function Ut(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",l=' role="list"';if(o)l+=` aria-label="${o.replace(/"/g,"&quot;")}"`;if(r)l+=' aria-orientation="horizontal"';t.insertAdjacentHTML("beforeend",`<div class="${i}"><div class="${e}-viewport" style="${n}" tabindex="-1"><div class="${e}-content" style="${s}"${l}></div></div></div>`);let E=t.lastElementChild,S=E.firstElementChild,g=S.firstElementChild,O=document.createElement("div");return O.className=`${e}-live`,O.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",O.setAttribute("aria-live","polite"),O.setAttribute("aria-atomic","true"),O.setAttribute("role","status"),E.appendChild(O),{root:E,viewport:S,content:g,liveRegion:O}}function Xt(t){let{state:e,viewport:r,isX:o,wheelEnabled:i,onFrame:n,onIdle:s}=t,l=t.idleTimeout||Ve,E=t.scrollTarget??r,S=null,g=null;function O(){let u=o?r.scrollLeft:r.scrollTop;if(Math.abs(u-e.scrollPosition)<0.5)return;e.prevScrollPosition=e.scrollPosition,e.scrollPosition=u,e.scrollDirection=u>e.prevScrollPosition?1:u<e.prevScrollPosition?-1:0,n(),b()}function A(u){let c;if(o){if(Math.abs(u.deltaX)>Math.abs(u.deltaY))return;let d=r.scrollLeft,P=r.scrollWidth-r.clientWidth;if(c=Math.max(0,Math.min(d+u.deltaY*je,P)),Math.abs(c-d)<1)return;u.preventDefault(),r.scrollLeft=c}else{let d=r.scrollWidth>r.clientWidth;if(d&&Math.abs(u.deltaX)>Math.abs(u.deltaY))return;if(d&&u.deltaX!==0)u.preventDefault(),r.scrollLeft+=u.deltaX;let P=r.scrollTop,_=r.scrollHeight-r.clientHeight;if(c=Math.max(0,Math.min(P+u.deltaY*je,_)),Math.abs(c-P)<1)return;u.preventDefault(),r.scrollTop=c}e.prevScrollPosition=e.scrollPosition,e.scrollPosition=c,e.scrollDirection=c>e.prevScrollPosition?1:-1,n(),b()}function b(){if(S!==null)clearTimeout(S);S=setTimeout(()=>{S=null,e.scrollDirection=0,s()},l)}function F(){if(g!==null)cancelAnimationFrame(g),g=null}function R(u,c,d,P=tt,_){F();let v=e.scrollPosition,T=typeof u==="function"?u:()=>u,h=T();if(Math.abs(h-v)<1){if(d)d(h);else if(o)r.scrollLeft=h;else r.scrollTop=h;_?.();return}let Y=performance.now();function G(k){h=T();let j=k-Y,Z=Math.min(j/c,1),ee=v+(h-v)*P(Z);if(d)d(ee);else if(o)r.scrollLeft=ee;else r.scrollTop=ee;if(!d)e.scrollPosition=ee;if(n(),Z<1)g=requestAnimationFrame(G);else g=null,b(),_?.()}g=requestAnimationFrame(G)}return{attach(){if(E.addEventListener("scroll",O,{passive:!0}),i)E.addEventListener("wheel",A,{passive:!1})},detach(){if(E.removeEventListener("scroll",O),i)E.removeEventListener("wheel",A);if(F(),S!==null)clearTimeout(S),S=null},cancelScroll:F,smoothScrollTo:R}}function Xe(t,e,r){if(t<e)return e;if(t>r)return r;return t}function qt(t){let{state:e,viewport:r,content:o,isX:i,wheelEnabled:n,onFrame:s,onIdle:l,mainAxisPadding:E}=t,S=t.idleTimeout||Ve,g=t.runwayFactor??kt,O=t.wrap??null,A=O!==null,b=t.scrollTarget??r,F=0,R=0,u=0,c=null,d=null;function P(){return i?r.scrollLeft:r.scrollTop}function _(z){if(i)r.scrollLeft=z;else r.scrollTop=z}function v(z){let D=A?z:Xe(z,0,R);e.prevScrollPosition=e.scrollPosition,e.scrollPosition=D,e.scrollDirection=D>e.prevScrollPosition?1:D<e.prevScrollPosition?-1:0;let M=F/2;if(A){e.baseOffset=D-M,_(M);return}let w=Xe(D-M,0,u);e.baseOffset=w,_(Xe(D-w,0,F))}function T(z){v(z),s(),j()}function h(){let z=P(),D=e.baseOffset+z;if(Math.abs(D-e.scrollPosition)<0.5)return;if(e.prevScrollPosition=e.scrollPosition,e.scrollPosition=D,e.scrollDirection=D>e.prevScrollPosition?1:D<e.prevScrollPosition?-1:0,Y(z),A)G();s(),j()}function Y(z){let D=F*Dt,M=F*Vt,w=F/2;if(A){if(z>=D&&z<=M)return;e.baseOffset=e.scrollPosition-w,_(w);return}if(u<=0)return;let B=e.baseOffset,m=z<D&&B>0,a=z>M&&B<u;if(!m&&!a)return;let W=e.scrollPosition,V=Xe(W-w,0,u);if(V===B)return;e.baseOffset=V,_(Xe(W-V,0,F))}function G(){let z=O.lapSize();if(z<=0)return;let D=e.scrollPosition-O.home(),M=Math.trunc(D/z);if(Math.abs(M)<O.thresholdLaps)return;let w=M*z;e.scrollPosition-=w,e.prevScrollPosition-=w,e.baseOffset-=w}function k(z){let D;if(i)if(Math.abs(z.deltaX)>Math.abs(z.deltaY)){if(!A)return;D=z.deltaX}else D=z.deltaY;else{let m=r.scrollWidth>r.clientWidth;if(m&&Math.abs(z.deltaX)>Math.abs(z.deltaY))return;if(m&&z.deltaX!==0)z.preventDefault(),r.scrollLeft+=z.deltaX;D=z.deltaY}let M=e.scrollPosition,w=M+D*je,B=A?w:Xe(w,0,R);if(Math.abs(B-M)<1)return;if(z.preventDefault(),T(B),A)G()}function j(){if(c!==null)clearTimeout(c);c=setTimeout(()=>{c=null,e.scrollDirection=0,l()},S)}function Z(){if(d!==null)cancelAnimationFrame(d),d=null}function ee(z,D,M,w=tt,B){Z();let m=e.scrollPosition,a=typeof z==="function"?z:()=>z,W=a();if(Math.abs(W-m)<1){T(W),B?.();return}let V=performance.now();function H(y){W=a();let N=Math.min((y-V)/D,1);if(v(m+(W-m)*w(N)),s(),N<1)d=requestAnimationFrame(H);else d=null,j(),B?.()}d=requestAnimationFrame(H)}function ce(z){let D=e.containerSize,M=z+E,w=D*g,B=A?w:Math.min(M,w);F=Math.max(0,B-D),R=Math.max(0,M-D),u=Math.max(0,M-B),e.totalSize=z,o.style[i?"width":"height"]=B+"px",v(e.scrollPosition)}return{attach(){if(b.addEventListener("scroll",h,{passive:!0}),n)b.addEventListener("wheel",k,{passive:!1})},detach(){if(b.removeEventListener("scroll",h),n)b.removeEventListener("wheel",k);if(Z(),c!==null)clearTimeout(c),c=null},cancelScroll:Z,smoothScrollTo:ee,setLogical:T,getLogical(){return e.scrollPosition},getMaxLogical(){return R},refresh:ce}}function An(t,e){if(t.getTotal()<=0)return{index:0,offsetPx:0};let o=e<=0?0:e,i=t.indexAtOffset(o),n=o-t.getOffset(i);return{index:i,offsetPx:n>0?n:0}}function wn(t,e){let r=Rn(t,e);return t.getOffset(r.index)+r.offsetPx}function Rn(t,e){let r=t.getTotal();if(r<=0)return{index:0,offsetPx:0};let{index:o,offsetPx:i}=e;if(o<0)return{index:0,offsetPx:0};if(o>r-1)o=r-1;while(i>0&&o<r-1){let n=t.getSize(o);if(i<n)break;i-=n,o++}while(i<0&&o>0)o--,i+=t.getSize(o);if(i<0)i=0;return{index:o,offsetPx:i}}function jt(t){let{sizeCache:e,getPixel:r,setPixel:o,getContainerSize:i}=t;function n(){let l=e.getTotalSize()-i();return l>0?l:0}function s(l){if(l<=0)return 0;let E=n();return l>E?E:l}return{getLogical(){return An(e,r())},setLogical(l){o(s(wn(e,l)))},getPixelEquivalent(){return r()},setPixelEquivalent(l){o(s(l))},getMaxPixelEquivalent:n,scrollByPx(l){o(s(r()+l))}}}var Ze=[],Hn={calculate:Ze,commit:Ze,afterScroll:Ze,idle:Ze,resize:Ze};function Zt(t){if(t.length===0)return Hn;let e=[],r=[],o=[],i=[],n=[];for(let s=0;s<t.length;s++){let l=t[s].hooks;if(l===void 0)continue;if(l.onCalculate!==void 0)e.push(l.onCalculate);if(l.onCommit!==void 0)r.push(l.onCommit);if(l.onAfterScroll!==void 0)o.push(l.onAfterScroll);if(l.onIdle!==void 0)i.push(l.onIdle);if(l.onResize!==void 0)n.push(l.onResize)}return{calculate:e,commit:r,afterScroll:o,idle:i,resize:n}}function 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 mt(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,l){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:l??null,indexMap:null,ariaTotalFn:null}}function _n(t,e,r,o,i){if(t.containerSize<=0||t.totalItems===0)return t.clear(),!0;let{scrollPosition:n,containerSize:s,totalItems:l}=t,E=i??0;t.totalSize=e.getTotalSize();let S=e.indexAtOffset(E>0?Math.max(0,n-E):n),g=e.indexAtOffset(n+s);if(g<l-1)g++;S=Math.max(0,S),g=Math.min(l-1,Math.max(0,g));let O=Math.max(0,S-r),A=Math.min(l-1,g+r),b=Math.ceil(s/1)+r*2+10,F=A-O+1,R=Math.min(F,t.capacity,b);if(O===t.prevRangeStart&&A===t.prevRangeEnd&&!t.renderPending&&t.baseOffset===t.prevBaseOffset)return!1;t.visibleCount=R,t.startIndex=O;for(let u=0;u<R;u++){let c=O+u;t.visibleIndices[u]=c,t.visibleOffsets[u]=e.getOffset(c),t.visibleSizes[u]=e.getSize(c)}return Jt(o.calculate,t),t.prevRangeStart=O,t.prevRangeEnd=A,t.prevBaseOffset=t.baseOffset,t.renderPending=!1,!0}var Re={selected:!1,focused:!1};function kn(t,e,r){for(let o=0;o<e;o++)if(t[o]===r)return!0;return!1}function Fn(t,e){if(e<=1)return!0;let r=t[0];for(let o=1;o<e;o++){let i=t[o];if(i!==r+1)return!1;r=i}return!0}function Dn(t,e,r,o,i,n,s,l,E,S){let g=E?null:i(),{visibleCount:O,visibleIndices:A}=t,b=s.ariaTotalFn?s.ariaTotalFn():t.totalItems,F=s.interactive?String(b):"",R=s.interactive&&b!==t.prevAriaTotal,u=null,c=s.indexMap;for(let d=0;d<O;d++){let P=A[d],_=c?c(P):P,v=t.visibleOffsets[d],T=t.visibleSizes[d],h=E?E(P):g[P];if(S)S(_,Re);else Re.selected=!1,Re.focused=!1;let Y=n.get(P),G=Y;if(Y===void 0){let k=e.acquire();if(h!==void 0){let ee;try{ee=o(h,_,Re)}catch(ce){if(s.emitter)s.emitter.emit("error",{error:ce instanceof Error?ce:Error(String(ce)),context:`template:render:${_}`});e.release(k);continue}if(typeof ee==="string")k.innerHTML=ee;else k.textContent="",k.appendChild(ee);We(k)}if(k.setAttribute("role",s.itemRole),k.setAttribute("data-index",String(_)),s.interactive)k.id=s.prefix+"-item-"+P,k.setAttribute("aria-posinset",String(_+1)),k.setAttribute("aria-setsize",F);if(h!==void 0){let ee=String(h.id);if(k.setAttribute("data-id",ee),ee.startsWith(_e))k.classList.add(s.placeholderClass)}if(s.hasCrossPad)k.style.setProperty(s.crossStartProp,s.crossStartVal),k.style.setProperty(s.crossEndProp,s.crossEndVal);if(S){if(k.classList.toggle(s.selectedClass,Re.selected),k.classList.toggle(s.focusedClass,Re.focused),Re.selected)k.setAttribute("aria-selected","true");else k.removeAttribute("aria-selected");k._lastSelected=Re.selected,k._lastFocused=Re.focused}if(s.oddClass)k.classList.toggle(s.oddClass,(P&1)===1);let j=v-t.baseOffset+s.startPadding;k.style.transform=s.translateProp+j+"px)",k._lastOffset=j;let Z=T-s.gap;if(k.style[s.sizeProp]=Z+"px",k._lastSize=Z,k._lastItem=h,n.set(P,k),u===null)u=document.createDocumentFragment();u.appendChild(k)}else{if(R)Y.setAttribute("aria-setsize",F);if(h!==void 0&&G._lastItem!==h){let Z=Y.getAttribute("data-id"),ee=String(h.id),ce;try{ce=o(h,_,Re)}catch(z){if(s.emitter)s.emitter.emit("error",{error:z instanceof Error?z:Error(String(z)),context:`template:render:${_}`});continue}if(typeof ce==="string")Y.innerHTML=ce;else Y.textContent="",Y.appendChild(ce);if(We(Y),Y.setAttribute("data-id",ee),G._lastItem=h,Z!==ee){let z=Z!==null&&Z.startsWith(_e),D=ee.startsWith(_e);if(z!==D)Y.classList.toggle(s.placeholderClass,D);if(z&&!D)Y.classList.add(s.replacedClass),setTimeout(()=>{Y.classList.remove(s.replacedClass)},300)}}if(S){if(G._lastSelected!==Re.selected){if(Y.classList.toggle(s.selectedClass,Re.selected),Re.selected)Y.setAttribute("aria-selected","true");else Y.removeAttribute("aria-selected");G._lastSelected=Re.selected}if(G._lastFocused!==Re.focused)Y.classList.toggle(s.focusedClass,Re.focused),G._lastFocused=Re.focused}let k=v-t.baseOffset+s.startPadding;if(G._lastOffset!==k)Y.style.transform=s.translateProp+k+"px)",G._lastOffset=k;let j=T-s.gap;if(G._lastSize!==j)Y.style[s.sizeProp]=j+"px",G._lastSize=j}}if(u!==null)r.appendChild(u);if(O>0&&Fn(A,O)){let d=A[0],P=A[O-1];for(let[_,v]of n)if(_<d||_>P)v.remove(),e.release(v),n.delete(_)}else for(let[d,P]of n)if(!kn(A,O,d))P.remove(),e.release(P),n.delete(d);if(s.interactive)t.prevAriaTotal=t.totalItems;Qt(l.commit,t)}function ft(t,e,r,o,i,n,s,l,E,S,g,O){if(_n(t,e,r,S,E.startPadding))Dn(t,o,i,n,s,l,E,S,g,O)}var gt=()=>{let t={},e=(n,s)=>{if(!t[n])t[n]=new Set;return t[n].add(s),()=>r(n,s)},r=(n,s)=>{t[n]?.delete(s)};return{on:e,off:r,emit:(n,s)=>{t[n]?.forEach((l)=>{try{l(s)}catch(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 Vn(t){let{item:e}=t;if(e.height!==void 0&&typeof e.height==="number"){if(!Number.isFinite(e.height)||e.height<=0)throw Error(`vlist: item.height must be a positive number, got ${e.height}`)}if(e.width!==void 0&&typeof e.width==="number"){if(!Number.isFinite(e.width)||e.width<=0)throw Error(`vlist: item.width must be a positive number, got ${e.width}`)}if(e.estimatedHeight!==void 0){if(!Number.isFinite(e.estimatedHeight)||e.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${e.estimatedHeight}`)}if(e.estimatedWidth!==void 0){if(!Number.isFinite(e.estimatedWidth)||e.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${e.estimatedWidth}`)}if(e.gap!==void 0){if(typeof e.gap!=="number"||!Number.isFinite(e.gap)||e.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${e.gap}`)}if(t.overscan!==void 0){if(typeof t.overscan!=="number"||!Number.isFinite(t.overscan)||t.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${t.overscan}`)}if(t.scroll?.runway!==void 0){if(typeof t.scroll.runway!=="number"||!Number.isFinite(t.scroll.runway)||t.scroll.runway<=0)throw Error(`vlist: scroll.runway must be a positive number, got ${t.scroll.runway}`)}}function On(t,e){let r=t==="horizontal"?"x":"y";if(e.some((i)=>i.name==="grid"))return{primary:r,cross:r==="x"?"y":"x"};return{primary:r}}function $n(t,e){let r=On(t.orientation,e),o=r.primary==="x",i=Gt(t.padding);return{axis:r,hasCrossAxis:r.cross!==void 0,overscan:t.overscan??Qe,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 Bn(t){let e=[...t];return e.sort((r,o)=>(r.priority??50)-(o.priority??50)),e}function Nn(t){let e=new Set;for(let r of t){if(e.has(r.name))throw Error(`[vlist] Duplicate plugin: ${r.name}`);e.add(r.name)}for(let r of t)if(r.conflicts){for(let o of r.conflicts)if(e.has(o))throw Error(`[vlist] Plugin "${r.name}" conflicts with "${o}"`)}}function ln(t,e=[],r){Vn(t);let o=$n(t,e),i=o.axis.primary==="x",n=t.scroll?.mode==="bounded"||!!r,s=Gn(t,i),l=o.gap,E=l>0?typeof s==="function"?(re)=>s(re)+l:s+l:s,S=typeof s==="number"?s:20,g=t.items?.length??0,O=o.striped?`${o.classPrefix}-item--odd`:"",A=gt(),b=nn(o.classPrefix,i,o.startPadding,o.crossPadStart,o.crossPadEnd,O,l,A),F=e.length>0?Bn(e):e;if(e.length>0)Nn(F);let R=Ut(t.container),u=Kt(R,o.classPrefix,i,t.ariaLabel);if(t.scroll?.scrollbar==="none")u.viewport.classList.add(`${o.classPrefix}-viewport--no-scrollbar`);if(t.scroll?.gutter==="stable")u.viewport.classList.add(`${o.classPrefix}-viewport--gutter-stable`);let d=ot(E,g);if(l>0){let re=d.getTotalSize;d.getTotalSize=()=>{let x=re();return x>0?x-l:0}}let P=Yt(o.classPrefix),_=Math.ceil(4096/S)+o.overscan*2+8,v=Wt(_);v.totalItems=g;let T=t.items??[],h=()=>T,Y=new Map,G=rn(),k={velocity:0,reliable:!1},j={range:{start:0,end:-1}},Z={scrollPosition:0,direction:"down"},ee={scrollPosition:0},ce=-1,z=-1,D=-1,M=null,w=Zt(F),B=new Map,m=[],a=[],W=[],V=null,H=null,y=null,N=null,ae=null,q=null,p=null,C=null,L=null,I=null,U=null,te=!1,Ee=!1,de=null,ne=0,ue=0,ge=null,be=null,ie=null,f=null,X=null,oe=null,me=null,ve=null,Se=null;v.containerSize=i?u.viewport.clientWidth:u.viewport.clientHeight,v.crossSize=i?u.viewport.clientHeight:u.viewport.clientWidth;let ye=jt({sizeCache:d,getPixel:()=>H?H():v.scrollPosition,setPixel:(re)=>{if(y)y(re);else if(i)u.viewport.scrollLeft=re;else u.viewport.scrollTop=re},getContainerSize:()=>v.containerSize});if(e.length>0){let re={dom:u,sizeCache:d,scroll:ye,pool:P,config:o,emitter:A,template:t.item.template,registerMethod(x,pe){B.set(x,pe)},getMethod(x){return B.get(x)},registerClickHandler(x){m.push(x)},registerKeydownHandler(x){a.push(x)},registerDestroyHandler(x){W.push(x)},enableListboxRole(){let x=u.content.getAttribute("role");if(!x||x==="list")u.content.setAttribute("role","listbox"),u.content.setAttribute("tabindex","0");b.itemRole="option",b.interactive=!0},setSizeConfig(x){let pe=ot(x,v.totalItems),Pe=B.get("_setSizeCacheBase");if(Pe){let Ae=d.rebuild;Object.assign(d,pe),d.rebuild=Ae,Pe(pe.rebuild)}else Object.assign(d,pe)},setScrollFns(x,pe){H=x,y=pe},setBoundedWrap(x){Se=x},cancelScroll(){Le?.cancelScroll()},setVirtualTotalFn(x){V=x,b.ariaTotalFn=x},setIndexMapFn(x){b.indexMap=x},getItems:h,getItem(x){return q?q(x):T[x]},getState(){return v},rebuildSizeCache(){d.rebuild(v.totalItems)},updateContentSize(x){if(ve){ve.refresh(x);return}v.totalSize=x,u.content.style[i?"width":"height"]=x+o.mainAxisPadding+"px"},setRenderFn(x,pe){N=x,ae=pe},renderIfNeeded(){J()},forceRender(){se()},setGetItemFn(x){q=x},setItemStateFn(x){p=x},getItemStateFn(){return p},get rawSizeSpec(){return s},scrollTo(x){if(y)y(x);else if(i)u.viewport.scrollLeft=x;else u.viewport.scrollTop=x},shiftScroll(x){if(ve?.shiftBy)ve.shiftBy(x);else re.scrollTo(v.scrollPosition+x)},smoothScrollTo(x,pe,Pe,Ae){if(f)f(x,pe,y??void 0,Pe,Ae);else re.scrollTo(typeof x==="function"?x():x)},disableDefaultScroll(){te=!0},disableDefaultResize(){Ee=!0},setScrollTarget(x){de=x},setScrollToPosFn(x){X=x},setScrollToIndexFn(x){oe=x},onScrollFrame:Ie,onScrollIdle:K,removeItemById(x){if(C)return C(x);let pe=T.findIndex((Pe)=>Pe.id===x);if(pe===-1)return-1;return T.splice(pe,1),v.totalItems=T.length,d.rebuild(v.totalItems),Q(),pe},insertItemAt(x,pe){if(L){L(x,pe);return}T.splice(pe,0,x),v.totalItems=T.length,d.rebuild(v.totalItems),Q()},setRemoveItemFn(x){C=x},setInsertItemFn(x){L=x},setUpdateItemFn(x){I=x},setGetIndexByIdFn(x){U=x},getRenderedElement(x){let pe=B.get("_getRenderedElement");if(pe)return pe(x);return Y.get(x)??null},setNavConfig(x){if(x.ud!==void 0)ne=x.ud;if(x.lr!==void 0)ue=x.lr;if(x.scrollIndex)ge=x.scrollIndex;if(x.navigate)be=x.navigate;if(x.total)ie=x.total},getNavConfig:(()=>{let x={ud:0,lr:0,scrollIndex:null,navigate:null,total:null};return()=>(x.ud=ne,x.lr=ue,x.scrollIndex=ge,x.navigate=be,x.total=ie,x)})()};for(let x of F)if(x.setup)try{x.setup(re)}catch(pe){A.emit("error",{error:pe instanceof Error?pe:Error(String(pe)),context:`plugin:setup:${x.name}`})}}let fe=o.classPrefix+"--scrolling",he=!1,Me=t.scroll?.idleTimeout??Ve;function xe(){if(Z.scrollPosition=ye.getPixelEquivalent(),i)Z.direction=v.scrollDirection>0?"right":"left";else Z.direction=v.scrollDirection>0?"down":"up";if(A.emit("scroll",Z),sn(G,v.scrollPosition),k.velocity=G.velocity,k.reliable=G.sampleCount>=on,A.emit("velocity:change",k),v.startIndex!==ce||v.prevRangeEnd!==z)ce=v.startIndex,z=v.prevRangeEnd,j.range.start=v.startIndex,j.range.end=v.prevRangeEnd,A.emit("range:change",j)}let Te=!1;function Q(){if(N)return;let re=d.getTotalSize();if(ve){ve.refresh(re);return}if(u.content.style[i?"width":"height"]=re+o.mainAxisPadding+"px",!Te&&re>ut)Te=!0,A.emit("error",{error:Error(`Content size (${re}px) exceeds browser limit (${ut}px). Enable bounded scroll (scroll: { mode: "bounded" }) for large datasets.`),context:"content:size:overflow"})}function le(){if(!me)return;if((V?V():T.length)===0)return;let x=me;me=null,Ke.scrollToIndex(x.index,x.alignOrOptions)}function J(){if(le(),N)N();else ft(v,d,o.overscan,P,u.content,t.item.template,h,Y,b,w,q,p)}function Ie(){if(!he)he=!0,u.root.classList.add(fe);if(J(),mt(w.afterScroll,v.scrollPosition,v.scrollDirection),v.scrollPosition!==D)D=v.scrollPosition,xe()}function K(){if(he)he=!1,u.root.classList.remove(fe);v.scrollDirection=0,en(w.idle),k.velocity=0,k.reliable=!1,A.emit("velocity:change",k),ee.scrollPosition=ye.getPixelEquivalent(),A.emit("scroll:idle",ee)}function se(){if(le(),v.renderPending=!0,ae)ae();else ft(v,d,o.overscan,P,u.content,t.item.template,h,Y,b,w,q,p);if(mt(w.afterScroll,v.scrollPosition,v.scrollDirection),v.scrollPosition!==D){if(D=v.scrollPosition,xe(),M!==null)clearTimeout(M);M=setTimeout(K,Me)}}let Ce=te?!1:t.scroll?.wheel!==!1,Le;if(te&&(n||Se))throw Error(`vlist: page() is not compatible with ${Se?"the carousel plugin":'scroll: { mode: "bounded" }'} — bounded page-mode scrolling is not implemented yet.`);if(n||Se)ve=(r??qt)({state:v,sizeCache:d,viewport:u.viewport,content:u.content,isX:i,wheelEnabled:Ce,idleTimeout:t.scroll?.idleTimeout??Ve,...de?{scrollTarget:de}:{},mainAxisPadding:o.mainAxisPadding,...t.scroll?.runway!==void 0?{runwayFactor:Math.max(Ft,t.scroll.runway)}:{},...Se?{wrap:Se}:{},onFrame:Ie,onIdle:K}),Le=ve,H=()=>v.scrollPosition,y=(re)=>ve.setLogical(re);else Le=Xt({state:v,viewport:u.viewport,isX:i,wheelEnabled:Ce,idleTimeout:t.scroll?.idleTimeout??Ve,...de?{scrollTarget:de}:{},onFrame:Ie,onIdle:K});f=Le.smoothScrollTo;function ze(re){let pe=re.target.closest("[data-index]");if(!pe)return null;let Pe=parseInt(pe.getAttribute("data-index"),10);if(Number.isNaN(Pe))return null;let Ae=B.get("_layoutToDataIndex"),ke;if(Ae){let Fe=Ae(Pe);if(Fe<0)return null;let qe=B.get("_getItem");ke=qe?qe(Fe):q?q(Fe):T[Fe]}else ke=q?q(Pe):T[Pe];if(ke===void 0)return null;return{item:ke,index:Pe}}function Ge(re){for(let pe=0;pe<m.length;pe++)m[pe](re);let x=ze(re);if(x)A.emit("item:click",{item:x.item,index:x.index,event:re})}function He(re){let x=ze(re);if(x)A.emit("item:dblclick",{item:x.item,index:x.index,event:re})}function Ue(re){let x=ze(re);if(x)A.emit("item:contextmenu",{item:x.item,index:x.index,event:re})}function Be(re){let x=re.target?.tagName;if((x==="INPUT"||x==="TEXTAREA"||x==="SELECT")&&!((re.ctrlKey||re.metaKey)&&(re.key==="f"||re.key==="F")))return;for(let pe=0;pe<a.length;pe++)a[pe](re)}if(u.content.addEventListener("click",Ge),u.content.addEventListener("dblclick",He),u.content.addEventListener("contextmenu",Ue),a.length>0)u.root.addEventListener("keydown",Be);let we=null;if(!Ee)setTimeout(()=>{if(v.destroyed)return;we=new ResizeObserver((x)=>{for(let pe of x){let{width:Pe,height:Ae}=pe.contentRect,ke=i?Pe:Ae,Fe=i?Ae:Pe;if(Math.abs(ke-v.containerSize)<1&&Math.abs(Fe-v.crossSize)<1)continue;if(v.containerSize=ke,v.crossSize=Fe,v.resizeCapacity(ke,S,o.overscan),ve)ve.refresh(d.getTotalSize());se(),tn(w.resize,Pe,Ae),A.emit("resize",{width:Pe,height:Ae})}}),we.observe(u.viewport)},0);v.resizeCapacity(v.containerSize,S,o.overscan),Q(),v.initialized=!0;let Ne=null;if(t.defer)Ne=requestAnimationFrame(()=>{if(Ne=null,!v.destroyed)J()});else J();if(!te)Le.attach();let Ke={get element(){return u.root},get items(){return T},get total(){return V?V():T.length},setItems(re){T=[...re],v.totalItems=T.length,d.rebuild(v.totalItems),Q(),se()},appendItems(re){T.push(...re),v.totalItems=T.length,d.rebuild(v.totalItems),Q(),se()},prependItems(re){T.unshift(...re),v.totalItems=T.length,d.rebuild(v.totalItems),Q(),se()},updateItem(re,x){if(I){if(!I(re,x))return}else{let pe=T.findIndex((Pe)=>Pe.id===re);if(pe===-1)return;T[pe]={...T[pe],...x}}se()},insertItem(re,x){if(L)L(re,x??v.totalItems);else{if(x===void 0)T.push(re);else T.splice(x,0,re);v.totalItems=T.length,d.rebuild(v.totalItems),Q()}se()},removeItem(re){if(C){if(C(re)<0)return}else{let x=T.findIndex((pe)=>pe.id===re);if(x===-1)return;T.splice(x,1),v.totalItems=T.length,d.rebuild(v.totalItems),Q()}se()},removeItems(re){if(C){let Ae=0;for(let ke of re)if(C(ke)>=0)Ae++;if(Ae>0)se();return Ae}let x=new Set(re),pe=T.length;T=T.filter((Ae)=>!x.has(Ae.id));let Pe=pe-T.length;if(Pe>0)v.totalItems=T.length,d.rebuild(v.totalItems),Q(),v.renderPending=!0,J();return Pe},getItemAt(re){if(b.indexMap)return T[re];return q?q(re):T[re]},getIndexById(re){if(U)return U(re);return T.findIndex((x)=>x.id===re)},scrollToIndex(re,x="start"){let pe=V?V():T.length;if(pe===0){me={index:re,alignOrOptions:x};return}let Pe=Math.max(0,Math.min(re,pe-1)),Ae=typeof x==="string"?x:x.align??"start",ke=typeof x==="object"?x.behavior:void 0,Fe=typeof x==="object"?x.duration:void 0,qe=typeof x==="object"?x.easing:void 0;if(oe&&oe(Pe,Ae,ke,Fe,qe)!==!1)return;let at=d.getOffset(Pe),Mt=d.getSize(Pe),Je=v.containerSize,En=d.getTotalSize(),Ct=o.mainAxisPadding,Mn=Math.max(0,En+Ct-Je),De;if(X)De=X(Pe,d,Je,pe,Ae);else{let Cn=o.startPadding;switch(Ae){case"center":De=Cn+at-(Je-Mt)/2;break;case"end":De=at+Mt+Ct-Je;break;default:De=at}De=Math.max(0,Math.min(De,Mn))}if(ke==="smooth")Le.smoothScrollTo(De,Fe??_t,y??void 0,qe);else if(y)y(De);else if(i)u.viewport.scrollLeft=De;else u.viewport.scrollTop=De},getScrollPosition(){return ye.getPixelEquivalent()},on:A.on.bind(A),off:A.off.bind(A),destroy(){if(v.destroyed)return;if(v.destroyed=!0,he)he=!1,u.root.classList.remove(fe);if(Ne!==null)cancelAnimationFrame(Ne),Ne=null;if(M!==null)clearTimeout(M),M=null;Le.detach(),we?.disconnect(),u.content.removeEventListener("click",Ge),u.content.removeEventListener("dblclick",He),u.content.removeEventListener("contextmenu",Ue),u.root.removeEventListener("keydown",Be);let re=[];for(let x of W)try{x()}catch(pe){re.push(pe instanceof Error?pe:Error(String(pe)))}for(let x of F)if(x.destroy)try{x.destroy()}catch(pe){re.push(pe instanceof Error?pe:Error(String(pe)))}for(let[,x]of Y)x.remove();if(Y.clear(),P.clear(),u.root.remove(),A.emit("destroy",void 0),A.clear(),re.length>0)for(let x of re)console.error("vlist: error during destroy:",x)}};for(let[re,x]of B)Ke[re]=x;return Ke}var rt=(t)=>t==null?0:typeof t==="function"?t():t;function pt(t){let e=t?.scrollPadding,r,o;return{name:"page",priority:5,setup(i){let{dom:n,sizeCache:s,config:l,emitter:E}=i,S=l.axis.primary==="x",g=window,O=i.getState();if(i.disableDefaultScroll(),i.disableDefaultResize(),n.root.style.overflow="visible",n.root.style.height="auto",S)n.viewport.style.overflowX="visible",n.viewport.style.overflowY="visible";else n.viewport.style.overflow="visible";n.viewport.classList.remove(`${l.classPrefix}-viewport--custom-scrollbar`),i.setScrollFns(()=>{let c=n.viewport.getBoundingClientRect();return Math.max(0,S?-c.left:-c.top)},(c)=>{let d=n.viewport.getBoundingClientRect(),P=(S?d.left+g.scrollX:d.top+g.scrollY)+c;if(S)g.scrollTo({left:P,top:g.scrollY,behavior:"instant"});else g.scrollTo({left:g.scrollX,top:P,behavior:"instant"})}),O.containerSize=S?g.innerWidth:g.innerHeight,O.crossSize=S?g.innerHeight:g.innerWidth;let A=null,b=()=>{let c=n.viewport.getBoundingClientRect(),d=Math.max(0,S?-c.left:-c.top);if(O.prevScrollPosition=O.scrollPosition,O.scrollPosition=d,O.scrollDirection=d>O.prevScrollPosition?1:d<O.prevScrollPosition?-1:0,i.onScrollFrame(),A!==null)clearTimeout(A);A=setTimeout(()=>{A=null,i.onScrollIdle()},150)};g.addEventListener("scroll",b,{passive:!0}),o=()=>g.removeEventListener("scroll",b);let{innerWidth:F,innerHeight:R}=g,u=()=>{let{innerWidth:c,innerHeight:d}=g;if((S?Math.abs(c-F):Math.abs(d-R))<1)return;F=c,R=d,O.containerSize=S?c:d,O.crossSize=S?d:c,i.forceRender(),E.emit("resize",{width:c,height:d})};if(g.addEventListener("resize",u),r=()=>g.removeEventListener("resize",u),e)i.setScrollToPosFn((c,d,P,_,v)=>{let T=rt(S?e.left:e.top),h=rt(S?e.right:e.bottom);if(_===0)return 0;let Y=Math.max(0,Math.min(c,_-1)),G=d.getOffset(Y),k=d.getSize(Y),j=d.getTotalSize(),Z=Math.max(0,j-P+h),ee;switch(v){case"center":ee=G-T-(P-T-h-k)/2;break;case"end":ee=G-P+k+h;break;default:ee=G-T}return Math.max(-T,Math.min(ee,Z))}),i.registerMethod("_scrollItemIntoView",(c)=>{let d=S?g.innerWidth:g.innerHeight,P=rt(S?e.left:e.top),_=rt(S?e.right:e.bottom),v=n.viewport.getBoundingClientRect(),T=S?g.scrollX:g.scrollY,h=S?v.left:v.top,Y=h+T,G=s.getOffset(c),k=s.getSize(c),j=h+G,Z=d-_,ee=T;if(j<P)ee=Y+G-P;else if(j+k>Z)ee=Y+G+k-Z;if(ee!==T)if(S)g.scrollTo({left:ee,top:g.scrollY,behavior:"instant"});else g.scrollTo({left:g.scrollX,top:ee,behavior:"instant"})});i.registerDestroyHandler(()=>{if(o?.(),r?.(),A!==null)clearTimeout(A)})},destroy(){o?.(),r?.(),o=void 0,r=void 0}}}function bt(t){let e=t?.gap??0,r=null,o=null,i,n,s,l,E=new Map,S=new Set,g=new WeakMap,O=0,A=!1,b=!1,F=!1,R=2;function u(h){return E.get(h)??l}function c(h){return E.has(h)&&!S.has(h)}function d(h){if(!o||i.destroyed)return;if(h===void 0){if(E.size===0)return;E.clear(),S.clear(),o.rebuildSizeCache(),T()}else{if(!E.has(h))return;S.add(h)}o.forceRender()}function P(){return Math.max(0,o.sizeCache.getTotalSize()+o.config.mainAxisPadding-i.containerSize)}function _(){let h=P();return h>0&&i.scrollPosition>=h-R}function v(){let h=P();if(h>i.scrollPosition)o.scrollTo(h)}function T(){o.updateContentSize(o.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(h){if(o=h,i=h.getState(),n=h.config.axis.primary==="x",s=n?"width":"height",e===0)e=h.config.gap;if(l=typeof h.rawSizeSpec==="function"?h.rawSizeSpec(0)+e:h.rawSizeSpec+e,h.setSizeConfig(u),e>0){let Z=h.sizeCache.getTotalSize;h.sizeCache.getTotalSize=()=>{let ee=Z();return ee>0?ee-e:0}}r=new ResizeObserver((Z)=>{if(i.destroyed||!o)return;let ee=!1,ce=h.sizeCache.indexAtOffset(i.scrollPosition);for(let B of Z){let m=B.target,a=g.get(m);if(a===void 0)continue;if(m.getAttribute("data-index")!==String(a)){r.unobserve(m);continue}if(c(a))continue;let W=B.borderBoxSize[0];if(!W)continue;let V=n?W.inlineSize:W.blockSize;if(V<=0)continue;let H=V+e,y=E.has(a),N=E.get(a)??l;if(E.set(a,H),S.delete(a),!y||H!==N)ee=!0;if(a<ce&&H!==N)O+=H-N;r.unobserve(m),m.style[s]=`${V}px`}if(!ee)return;let z=_();if(h.rebuildSizeCache(),O)h.shiftScroll(O),O=0;let D=i.scrollDirection!==0,M=i.totalItems>0&&i.prevRangeEnd>=i.totalItems-1,w=b&&!F;if(w||z||M||!D){if(T(),A=!1,w||z)v()}else A=!0;h.forceRender()}),h.setScrollToIndexFn((Z,ee,ce,z,D)=>{let M=Z>=i.totalItems-1&&ee==="end";if(b=M,F=!1,!M)return!1;let w=h.config.mainAxisPadding,B=()=>{let m=h.sizeCache.getTotalSize();return Math.max(0,m+w-i.containerSize)};if(ce==="smooth")F=!0,h.smoothScrollTo(B,z??300,D,()=>{F=!1});else h.scrollTo(B())});let Y=()=>{b=!1},G=h.dom.viewport;G.addEventListener("wheel",Y,{passive:!0}),G.addEventListener("touchstart",Y,{passive:!0}),h.registerDestroyHandler(()=>{G.removeEventListener("wheel",Y),G.removeEventListener("touchstart",Y)});let k=h.dom.content,j=(Z)=>{let ee=Z.target;if(!ee||ee===k)return;let ce=ee.closest("[data-index]");if(!ce||ce.parentNode!==k)return;let z=Number(ce.getAttribute("data-index"));if(c(z))d(z)};k.addEventListener("load",j,!0),k.addEventListener("error",j,!0),h.registerDestroyHandler(()=>{k.removeEventListener("load",j,!0),k.removeEventListener("error",j,!0)}),h.registerMethod("isMeasured",c),h.registerMethod("remeasure",d),h.registerMethod("setMeasuredSize",(Z,ee)=>{E.set(Z,ee)}),h.registerMethod("getMeasuredCount",()=>E.size),h.registerDestroyHandler(()=>{if(r)r.disconnect(),r=null})},hooks:{onCommit(h){if(!r||!o)return;for(let Y=0;Y<h.visibleCount;Y++){let G=h.visibleIndices[Y];if(c(G))continue;let k=o.getRenderedElement(G);if(!k)continue;k.style[s]="",g.set(k,G),r.observe(k)}},onIdle(){if(!o||!A)return;let h=_();if(T(),A=!1,h)v(),o.forceRender()}},destroy(){if(r)r.disconnect(),r=null;E.clear(),S.clear(),b=!1,F=!1,o=null}}}var an=(t={})=>{let{chunkSize:e=100,maxCachedItems:r=5000,evictionBuffer:o=200,onEvict:i}=t,n=new Map,s=0,l=0,E=(M)=>{let w=n.get(M);if(!w)w={items:Array(e),count:0,lastAccess:Date.now()},n.set(M,w);else w.lastAccess=Date.now();return w},S=(M)=>Math.floor(M/e),g=(M)=>M%e,O=()=>s,A=(M)=>{s=M},b=(M)=>{if(M<0||M>=s)return;let w=S(M),B=n.get(w);if(!B)return;return B.items[g(M)]},F=(M)=>{if(M<0||M>=s)return!1;let w=S(M),B=n.get(w);if(!B)return!1;return B.items[g(M)]!==void 0},R=(M,w)=>{let B=S(M),m=E(B),a=g(M),W=m.items[a]===void 0;if(m.items[a]=w,W)m.count++,l++;if(M>=s)s=M+1},u=(M,w)=>{for(let B=0;B<w.length;B++){let m=w[B];if(m!==void 0)R(M+B,m)}},c=(M,w)=>{if(M<0||M>s)return;let B=S(M),m=Array.from(n.keys()).filter((y)=>y>=B).sort((y,N)=>y-N),a=[];for(let y of m){let N=n.get(y),ae=y*e;for(let q=0;q<e;q++){if(N.items[q]===void 0)continue;let p=ae+q;if(p<M)continue;a.push({oldIndex:p,item:N.items[q]})}}for(let{oldIndex:y}of a){let N=S(y),ae=n.get(N);if(!ae)continue;let q=g(y);if(ae.items[q]!==void 0){if(ae.items[q]=void 0,ae.count--,l--,ae.count===0)n.delete(N)}}s++;for(let{oldIndex:y,item:N}of a){let ae=y+1,q=S(ae),p=E(q),C=g(ae);p.items[C]=N,p.count++,l++}let W=S(M),V=E(W),H=g(M);V.items[H]=w,V.count++,l++},d=(M)=>{if(M<0||M>=s)return!1;let w=S(M),B=n.get(w),m=g(M);if(!(B!==void 0&&B.items[m]!==void 0))return!1;let W=w,V=Array.from(n.keys()).filter((y)=>y>=W).sort((y,N)=>y-N),H=[];for(let y of V){let N=n.get(y),ae=y*e;for(let q=0;q<e;q++){if(N.items[q]===void 0)continue;let p=ae+q;if(p<=M)continue;H.push({oldIndex:p,item:N.items[q]})}}if(B.items[m]=void 0,B.count--,l--,B.count===0)n.delete(w);for(let{oldIndex:y}of H){let N=S(y),ae=n.get(N);if(!ae)continue;let q=g(y);if(ae.items[q]!==void 0){if(ae.items[q]=void 0,ae.count--,l--,ae.count===0)n.delete(N)}}for(let{oldIndex:y,item:N}of H){let ae=y-1,q=S(ae),p=E(q),C=g(ae);p.items[C]=N,p.count++,l++}return s--,!0},P=(M,w)=>{let B=[];for(let m=M;m<=w&&m<s;m++)B.push(b(m));return B},_=(M,w)=>{for(let B=M;B<=w&&B<s;B++)if(!F(B))return!1;return!0},v=()=>{let M=[],w=null,B=Array.from(n.keys()).sort((m,a)=>m-a);for(let m of B){let a=n.get(m);if(!a)continue;let W=m*e;for(let V=0;V<e;V++){let H=W+V;if(H>=s)break;if(a.items[V]!==void 0)if(w===null)w={start:H,end:H};else if(H===w.end+1)w.end=H;else M.push(w),w={start:H,end:H};else if(w!==null)M.push(w),w=null}}if(w!==null)M.push(w);return M},T=(M,w)=>{let B=[],m=null;for(let a=M;a<=w&&a<s;a++)if(!F(a))if(m===null)m={start:a,end:a};else m.end=a;else if(m!==null)B.push(m),m=null;if(m!==null)B.push(m);return B},h=(M)=>n.has(M),Y=(M)=>{let w=n.get(M);if(!w)return!1;let B=M*e,m=Math.min(e,s-B);return w.count>=m},G=(M)=>{let w=n.get(M);if(w)w.lastAccess=Date.now()},k=(M,w)=>{if(M>w||n.size===0)return;let B=Date.now(),m=S(Math.max(0,M)),a=S(Math.min(s-1,w));for(let W=m;W<=a;W++){let V=n.get(W);if(V)V.lastAccess=B}},j=(M,w)=>{if(l<=r)return 0;let B=Math.max(0,M-o),m=Math.min(s-1,w+o),a=S(B),W=S(m),V=0,H=[];for(let[y,N]of n)if(y<a||y>W)V+=N.count,H.push(y),l-=N.count,n.delete(y);if(V>0&&i)i(V,H);return V},Z=()=>{if(l<=r)return 0;let M=Array.from(n.entries()).sort(([,m],[,a])=>m.lastAccess-a.lastAccess),w=0,B=[];for(let[m,a]of M){if(l<=r)break;w+=a.count,l-=a.count,B.push(m),n.delete(m)}if(w>0&&i)i(w,B);return w},ee=()=>({totalItems:s,cachedItems:l,cachedChunks:n.size,chunkSize:e,maxCachedItems:r,memoryEfficiency:s>0?1-l/s:1}),ce=()=>l,z=()=>{n.clear(),l=0};return{chunkSize:e,maxCachedItems:r,getTotal:O,setTotal:A,get:b,has:F,set:R,setRange:u,insert:c,delete:d,getRange:P,isRangeLoaded:_,getLoadedRanges:v,findUnloadedRanges:T,getChunkIndex:S,isChunkLoaded:h,isChunkFullyLoaded:Y,touchChunk:G,touchChunksForRange:k,evictDistant:j,evictToLimit:Z,getStats:ee,getCachedCount:ce,clear:z,reset:()=>{z(),s=0}}};var dn=(t={})=>{let{maskCharacter:e=Ot,maxSampleSize:r=$t}=t,o=[],i=!1,n=(g)=>{if(i||g.length===0)return;let O=Math.min(g.length,r);for(let A=0;A<O;A++){let b=g[A];if(!b||typeof b!=="object")continue;let F={},R=!1;for(let[u,c]of Object.entries(b)){if(u.startsWith("_")||u==="id")continue;F[u]=String(c??"").length,R=!0}if(R)o.push(F)}i=!0},s=()=>i,l=(g)=>{let O={id:`${_e}${g}`,[ct]:!0,_index:g};if(o.length===0)return O.label=e.repeat(12),O;let A=o[g%o.length];for(let[b,F]of Object.entries(A))O[b]=e.repeat(Math.max(1,F));return O};return{analyzeStructure:n,hasAnalyzedStructure:s,generate:l,generateRange:(g,O)=>{let A=[];for(let b=g;b<=O;b++)A.push(l(b));return A},clear:()=>{o=[],i=!1}}},it=(t)=>{if(!t||typeof t!=="object")return!1;return t[ct]===!0};var Wn=50,un=(t={})=>{let{adapter:e,initialItems:r,initialTotal:o,storage:i,placeholder:n,pageSize:s=Wn,maxConcurrent:l=0,onStateChange:E,onDataChange:S,onItemsLoaded:g,onItemsEvicted:O,onLoadError:A}=t,b=an({...i,onEvict:(ie,f)=>{O?.(ie),j(),k()}}),F=null,R=()=>{if(!F)F=dn(n);return F},u=new Map,c=!1,d,P=!0,_,v,T=[],h=0,Y=new Map,G=()=>{for(let ie of Y.values())ie[1].abort();Y.clear()},k=()=>{E?.(m())},j=()=>{S?.()},Z=()=>{u.clear();let ie=b.getLoadedRanges();for(let f of ie)for(let X=f.start;X<=f.end;X++){let oe=b.get(X);if(oe&&!it(oe))u.set(oe.id,X)}},ee=(ie,f)=>{if(!it(f))u.set(f.id,ie)},ce=(ie)=>{u.delete(ie)},z=(ie,f)=>`${ie}-${f}`,D=()=>b.getTotal(),M=()=>b.getCachedCount(),w=()=>c,B=()=>P,m=()=>({total:b.getTotal(),cached:b.getCachedCount(),isLoading:c,pendingRanges:T,error:d,hasMore:P,cursor:_}),a=()=>b,W=()=>R(),V=(ie)=>{let f=b.get(ie);if(f!==void 0)return f;if(ie>=0&&ie<b.getTotal())return R().generate(ie);return},H=(ie)=>{let f=u.get(ie);if(f===void 0)return;return b.get(f)},y=(ie)=>u.get(ie)??-1,N=(ie)=>{let f=b.get(ie);return f!==void 0&&!it(f)},ae=(ie,f)=>{let X=[],oe=b.getTotal();b.touchChunksForRange(ie,Math.min(f,oe-1));for(let me=ie;me<=f&&me<oe;me++){let ve=b.get(me);if(ve!==void 0)X.push(ve);else X.push(R().generate(me))}return X},q=(ie)=>{b.setTotal(ie),P=b.getCachedCount()<ie,j(),k()},p=(ie,f=0,X)=>{if(e&&ie.length>0){let oe=R();if(!oe.hasAnalyzedStructure())oe.analyzeStructure(ie)}for(let oe=0;oe<ie.length;oe++){let me=ie[oe];if(me!==void 0){let ve=f+oe;b.set(ve,me),ee(ve,me)}}if(X!==void 0)b.setTotal(X);else if(f+ie.length>b.getTotal())b.setTotal(f+ie.length);if(b.getCachedCount()>=b.getTotal()&&b.getTotal()>0)P=!1;j(),k(),g?.(ie,f,b.getTotal())},C=(ie,f)=>{let X=b.get(ie);if(!X)return!1;let oe=X.id,me={...X,...f};if(b.set(ie,me),f.id!==void 0&&f.id!==oe)ce(oe);return ee(ie,me),j(),k(),!0},L=(ie,f)=>{b.insert(f,ie),Z(),G(),j(),k()},I=(ie)=>{let f=u.get(ie);if(f===void 0)return!1;if(!b.delete(f))return!1;return Z(),G(),j(),k(),!0},U=async(ie,f)=>{if(!e)return;let X=b.chunkSize,oe=Math.floor(ie/X),me=Math.floor(f/X),ve=X*2;for(let[fe,he]of Y){let Me=fe.indexOf("-"),xe=parseInt(fe.slice(0,Me),10);if(Math.abs(xe-ie)>ve)he[1].abort(),Y.delete(fe)}let Se=[],ye=[];for(let fe=oe;fe<=me;fe++){let he=fe*X,Me=he+X-1,xe=z(he,Me);if(b.isChunkFullyLoaded(fe))continue;let Q=Y.get(xe);if(Q)ye.push(Q[0]);else Se.push({start:he,end:Me})}if(Se.length===0){if(ye.length>0)await Promise.all(ye);return}if(l>0){let fe=Y.size+Se.length;if(fe>l){let he=(ie+f)/2,Me=Math.min(fe-l,Y.size);while(Me>0){let Te=null,Q=-1,le=null;for(let[J,Ie]of Y){let K=J.indexOf("-"),se=parseInt(J.slice(0,K),10),Ce=parseInt(J.slice(K+1),10),Le=Math.abs((se+Ce)/2-he);if(Le>Q)Q=Le,Te=J,le=Ie[1]}if(Te)le.abort(),Y.delete(Te);Me--}let xe=l-Y.size;if(Se.length>xe)Se.sort((Te,Q)=>{let le=Math.abs((Te.start+Te.end)/2-he),J=Math.abs((Q.start+Q.end)/2-he);return le-J}),Se.length=Math.max(0,xe)}}if(Se.length===0){if(ye.length>0)await Promise.all(ye);return}for(let fe of Se){let he=z(fe.start,fe.end),Me=new AbortController,xe=(async()=>{T.push(fe),c=!0,d=void 0,k();try{let Te=fe.end-fe.start+1,Q={offset:fe.start,limit:Te,cursor:fe.start===v?_:void 0,signal:Me.signal},le=await e.read(Q);if(p(le.items,fe.start,le.total),le.cursor)_=le.cursor,v=fe.start+le.items.length;let J=fe.start+le.items.length;if(J>=h){if(h=J,le.hasMore!==void 0)P=le.hasMore;else if(le.total!==void 0)P=J<le.total}}catch(Te){if(Te?.name==="AbortError")return;d=Te instanceof Error?Te:Error(String(Te)),A?.(d,fe)}finally{Y.delete(he);let Te=T.findIndex((Q)=>Q.start===fe.start&&Q.end===fe.end);if(Te>=0)T.splice(Te,1);c=Y.size>0,k()}})();Y.set(he,[xe,Me]),ye.push(xe)}await Promise.all(ye)},te=async(ie,f)=>{if(b.isRangeLoaded(ie,f))return;await U(ie,f)},Ee=async()=>{if(!e)return;await U(0,s-1)},de=async()=>{if(!e||c||!P)return!1;let ie=b.getCachedCount(),f=b.getTotal(),X=ie,oe=Math.min(X+s-1,f>0?f-1:X+s-1);if(X>=f&&f>0)return P=!1,!1;return await U(X,oe),b.getCachedCount()>ie},ne=async()=>{if(b.clear(),u.clear(),F)F.clear();G(),T=[],c=!1,_=void 0,v=void 0,P=!0,h=0,d=void 0,j(),k()},ue=(ie,f)=>{if(b.evictDistant(ie,f)>0)Z()},ge=()=>{b.clear(),u.clear(),_=void 0,v=void 0,d=void 0,T=[],c=!1,j(),k()},be=()=>{if(b.reset(),u.clear(),F)F.clear();_=void 0,v=void 0,P=!0,h=0,d=void 0,T=[],c=!1,j(),k()};if(r&&r.length>0)p(r,0,o??r.length);else if(o!==void 0)b.setTotal(o),j(),k();return{getState:m,getTotal:D,getCached:M,getIsLoading:w,getHasMore:B,getStorage:a,getPlaceholders:W,getItem:V,getItemById:H,getIndexById:y,isItemLoaded:N,getItemsInRange:ae,setTotal:q,setItems:p,updateItem:C,insertItem:L,removeItem:I,loadRange:U,ensureRange:te,loadInitial:Ee,loadMore:de,reload:ne,evictDistant:ue,clear:ge,reset:be}};function ht(t){let{adapter:e,total:r,autoLoad:o=!0,storage:i}=t,n=t.loading?.cancelThreshold??wt,s=t.loading?.preloadThreshold??At,l=t.loading?.preloadAhead??zt,E=t.loading?.maxConcurrent??Rt,S,g,O,A,b,F,R=null,u=null,c=null,d=0,P=!1,_=null,v=dt,T=-1,h=-1,Y=-1,G=-1,k=i?.chunkSize??et,j=()=>{if(R=null,u!==null)clearTimeout(u),u=null},Z=(m,a)=>S.ensureRange(m,a),ee=(m,a=et)=>{A.emit("load:start",{offset:m,limit:a})},ce=(m)=>{A.emit("error",{error:m,context:"ensureRange"})},z=()=>{R=null;let m={start:g.startIndex,end:g.startIndex+Math.max(0,g.visibleCount-1)};if(m.end<m.start)return;Z(m.start,m.end).catch(ce)},D=()=>{if(_!==null)clearTimeout(_),_=null},M=()=>{if(g.destroyed)return;let m=S.getTotal();if(g.visibleCount<=0||g.startIndex>=m)return;let a=Math.min(g.startIndex+g.visibleCount-1,m-1);if(a<g.startIndex)return;Z(g.startIndex,a).catch(ce)},w=()=>{if(_!==null||g.destroyed)return;_=setTimeout(()=>{_=null,M()},v),v=Math.min(v*2,Ht)},B=()=>{D(),v=dt};return{name:"data",priority:20,setup(m){g=m.getState(),O=m.sizeCache,A=m.emitter,b=m.dom,F=m.forceRender.bind(m);let a=null;m.setVirtualTotalFn(()=>a?.getTotal()??0),m.setGetIndexByIdFn((V)=>a?.getIndexById(V)??-1),S=a=un({adapter:e,...r!==void 0&&{initialTotal:r},pageSize:i?.chunkSize??et,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 V=S.getTotal(),H=S.getCached();if(g.totalItems=V,V!==T||H!==h)T=V,h=H,O.rebuild(V);m.updateContentSize(O.getTotalSize()),m.renderIfNeeded()}},onItemsLoaded:(V)=>{if(B(),g.initialized)m.updateContentSize(O.getTotalSize()),F(),A.emit("load:end",{items:V,total:S.getTotal()})},onLoadError:(V)=>{if(A.emit("error",{error:V,context:"load"}),g.initialized)m.renderIfNeeded();w()}}),m.setGetItemFn((V)=>S.getItem(V)),m.setRemoveItemFn((V)=>{let H=S.getIndexById(V);if(H<0)return-1;if(!S.removeItem(V))return-1;return H}),m.setInsertItemFn((V,H)=>{S.insertItem(V,H)}),m.setUpdateItemFn((V,H)=>{let y=S.getIndexById(V);if(y<0)return!1;return S.updateItem(y,H)}),m.registerMethod("reload",async()=>{if(R=null,Y=-1,G=-1,B(),m.forceRender(),await S.reload(),m.scrollTo(0),o)ee(0),await S.loadInitial(),m.forceRender()}),m.registerMethod("loadVisibleRange",async()=>{R=null,m.forceRender();let V=S.getTotal();if(g.visibleCount>0&&g.startIndex<V){let H=Math.min(g.startIndex+g.visibleCount-1,V-1);ee(g.startIndex,H-g.startIndex+1),await Z(g.startIndex,H)}}),m.registerMethod("loadInitial",async()=>{ee(0),await S.loadInitial(),m.forceRender()}),m.registerMethod("getTotal",()=>S.getTotal()),m.registerMethod("setTotal",(V)=>{S.setTotal(V)}),m.registerMethod("_getTotal",()=>S.getTotal()),m.registerMethod("_setTotal",(V)=>{S.setTotal(V)}),m.registerMethod("_cancelAutoLoad",()=>{P=!0}),m.registerMethod("_getLoadedItem",(V)=>S.getStorage().get(V)),m.registerMethod("_getItem",(V)=>S.getItem(V)),m.registerMethod("_getLoadedCount",()=>S.getCached()),A.on("load:start",()=>{b.root.setAttribute("aria-busy","true")}),A.on("load:end",()=>{b.root.removeAttribute("aria-busy")}),m.registerDestroyHandler(()=>{if(c!==null)clearTimeout(c),c=null;j(),D()}),A.on("velocity:change",({velocity:V})=>{d=Math.abs(V)});let W=()=>{if(g.destroyed)return;B(),M(),z()};if(window.addEventListener("online",W),m.registerDestroyHandler(()=>{window.removeEventListener("online",W)}),o)queueMicrotask(()=>{if(P)return;ee(0),S.loadInitial().catch((V)=>{A.emit("error",{error:V,context:"loadInitial"})})});else if(r!==void 0)S.setTotal(r)},hooks:{onAfterScroll(){if(g.destroyed)return;let m=g.startIndex+Math.max(0,g.visibleCount-1);if(d>n){if(u!==null)clearTimeout(u),u=null;R={start:g.startIndex,end:m};return}if(d>s){let V=Math.floor(g.startIndex/k),H=Math.floor(m/k);if(V!==Y||H!==G){if(Y=V,G=H,m>=g.startIndex)Z(g.startIndex,m).catch(ce)}let y=g.startIndex,N=m,ae=g.scrollDirection;if(ae>0)N=Math.min(N+l,S.getTotal()-1);else if(ae<0)y=Math.max(0,y-l);if(R={start:y,end:N},u!==null)clearTimeout(u);u=setTimeout(()=>{if(u=null,g.destroyed||!R)return;let{start:q,end:p}=R;if(R=null,p>=q)Z(q,p).catch(ce)},100);return}j();let a=Math.floor(g.startIndex/k),W=Math.floor(m/k);if(a!==Y||W!==G){if(Y=a,G=W,m>=g.startIndex)Z(g.startIndex,m).catch(ce)}},onIdle(){if(g.destroyed)return;d=0,Y=-1,G=-1,z(),j()},onResize(){if(g.destroyed)return;let m=S.getTotal();if(m<=0)return;if(g.visibleCount<=0||g.startIndex>=m)return;let a=Math.min(g.startIndex+g.visibleCount-1,m-1);if(a<g.startIndex)return;ee(g.startIndex,a-g.startIndex+1),Z(g.startIndex,a).catch(ce)}},destroy(){if(c!==null)clearTimeout(c);j(),D()}}}var cn=(t)=>{let e=Math.max(1,Math.floor(t.columns)),r=t.gap??0,o=t.isHeaderFn,i={row:0,col:0},n=(R)=>{if(R<=0)return 0;if(!o)return Math.ceil(R/e);let u=0,c=0,d=0;for(let P=0;P<R;P++)if(o(P)){if(d++,c)u++,c=0;u++,c=0}else if(c++,c>=e)u++,c=0;if(c)u++;return u},s=(R)=>(i.row=l(R),i.col=E(R),i),l=(R)=>{if(!o)return Math.floor(R/e);let u=0,c=0;for(let d=0;d<=R;d++)if(o(d)){if(c)u++,c=0;if(d===R)return u;u++,c=0}else{if(d===R)return u;if(c++,c>=e)u++,c=0}return console.warn(`⚠️ getRow(${R}) fell through - returning ${u}`),u},E=(R)=>{if(!o)return R%e;if(o(R))return 0;let u=0;for(let c=0;c<=R;c++)if(o(c))u=0;else{if(c===R)return u;if(u++,u>=e)u=0}return u},S=(R,u,c,d)=>{if(c<=0){d.start=0,d.end=-1;return}if(!o){d.start=Math.max(0,R*e),d.end=Math.min(c-1,(u+1)*e-1);return}let P=g(R,u,c);d.start=P.start,d.end=P.end},g=(R,u,c)=>{if(c<=0)return{start:0,end:-1};if(!o){let T=Math.max(0,R*e),h=Math.min(c-1,(u+1)*e-1);return{start:T,end:h}}let d=-1,P=-1,_=0,v=0;for(let T=0;T<c;T++){if(o(T)){if(v)_++,v=0;if(_>=R&&_<=u){if(d<0)d=T;P=T}_++,v=0}else{if(_>=R&&_<=u){if(d<0)d=T;P=T}if(v++,v>=e)_++,v=0}if(_>u&&!v)break}if(d<0)return{start:0,end:-1};return{start:d,end:P}},O=(R,u,c)=>{if(u<0||u>=e)return-1;let d=R*e+u;if(d<0||d>=c)return-1;return d},A=(R)=>{let u=(e-1)*r;return Math.max(0,(R-u)/e)};return{get columns(){return e},get gap(){return r},update:(R)=>{if(R.columns!==void 0)e=Math.max(1,Math.floor(R.columns));if(R.gap!==void 0)r=R.gap;if(R.isHeaderFn!==void 0)o=R.isHeaderFn},getTotalRows:n,getPosition:s,getRow:l,getCol:E,getItemRange:g,fillItemRange:S,getItemIndex:O,getColumnWidth:A,getColumnOffset:(R,u)=>{let c=A(u);return R*(c+r)}}};var Oe={selected:!1,focused:!1};function vt(t){if(!t.columns||t.columns<1)throw Error("[vlist] grid: columns must be >= 1");let e,r,o,i,n=null,s,l,E,S,g,O,A=null,b=0,F=0,R=0,u=0,c=new Map,d=0,P=0,_=0,v=0,T=null,h=!1,Y="",G="",k="",j={start:0,end:-1},Z=-1,ee=-1,ce=-1,z=!0,D=(y)=>r.rebuild(y);function M(){let y=(P-1)*_;v=Math.max(0,(d-y)/P)}function w(){if(h)return;h=!0,T=A?.()??null}function B(){return e.getTotalRows(o.totalItems)}function m(y){let N=y/P|0,q=(y-N*P)*(v+_)+b,p=r.getOffset(N)-o.baseOffset+R;if(S)return`translate(${Math.round(p)}px, ${Math.round(q)}px)`;return`translate(${Math.round(q)}px, ${Math.round(p)}px)`}function a(y,N){let ae=r.getSize(N)-_;if(S)y.style.width=`${ae}px`,y.style.height=`${v}px`;else y.style.width=`${v}px`,y.style.height=`${ae}px`}function W(y,N,ae){if(T)T(ae,Oe);else Oe.selected=!1,Oe.focused=!1;let q=l(N,ae,Oe);if(typeof q==="string")y.innerHTML=q;else y.innerHTML="",y.appendChild(q)}function V(){if(o.destroyed)return;let y=o.scrollPosition,N=o.containerSize;if(!z&&y===Z&&N===ee)return;Z=y,ee=N,z=!1;let ae=B();if(N<=0||ae===0)return;w();let q=r.indexAtOffset(y),p=r.indexAtOffset(y+N);if(p<ae-1)p++;q=Math.max(0,q),p=Math.min(ae-1,Math.max(0,p));let C=Math.max(0,q-O),L=Math.min(ae-1,p+O);if(C===o.prevRangeStart&&L===o.prevRangeEnd&&!o.renderPending&&o.baseOffset===o.prevBaseOffset)return;e.fillItemRange(C,L,o.totalItems,j);let{start:I,end:U}=j;for(let[de,ne]of c)if(de<I||de>U)ne.el.remove(),i.release(ne.el),c.delete(de);for(let de=I;de<=U;de++){let ne=E(de);if(!ne)continue;let ue=de/P|0,ge=de-ue*P,be=c.get(de);if(be===void 0){let X=i.acquire();X.className=Y,X.setAttribute("data-index",String(de)),X.setAttribute("data-id",String(ne.id)),W(X,ne,de),be={el:X,lastItem:ne},c.set(de,be),s.appendChild(X)}else if(be.lastItem!==ne)be.el.setAttribute("data-id",String(ne.id)),be.lastItem=ne,W(be.el,ne,de);else if(T)T(de,Oe);if(T)if(be.el.classList.toggle(G,Oe.selected),be.el.classList.toggle(k,Oe.focused),Oe.selected)be.el.setAttribute("aria-selected","true");else be.el.removeAttribute("aria-selected");a(be.el,ue);let ie=ge*(v+_)+b,f=r.getOffset(ue)-o.baseOffset+R;be.el.style.transform=S?`translate(${Math.round(f)}px, ${Math.round(ie)}px)`:`translate(${Math.round(ie)}px, ${Math.round(f)}px)`}let te=r.getTotalSize();if(te!==ce)ce=te,n?.updateContentSize(te);o.prevRangeStart=C,o.prevRangeEnd=L,o.prevBaseOffset=o.baseOffset,o.renderPending=!1;let Ee=U-I+1;o.visibleCount=Math.min(Ee,o.capacity),o.startIndex=I;for(let de=0;de<o.visibleCount;de++){let ne=I+de,ue=ne/P|0;o.visibleIndices[de]=ne,o.visibleOffsets[de]=r.getOffset(ue),o.visibleSizes[de]=r.getSize(ue)}}function H(){if(o.destroyed)return;D(B()),ce=-1,o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,z=!0,V()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(y){P=Math.max(1,Math.floor(t.columns)),_=t.gap??0,e=cn({columns:t.columns,gap:_}),r=y.sizeCache,o=y.getState(),i=y.pool,n=y,s=y.dom.content,l=y.template,S=y.config.axis.primary==="x",g=y.config.classPrefix,O=y.config.overscan,E=y.getItem.bind(y),A=()=>y.getItemStateFn(),Y=`${g}-item ${g}-grid-item`,G=`${g}-item--selected`,k=`${g}-item--focused`,b=y.config.crossPadStart,F=y.config.crossAxisPadding,R=y.config.startPadding,u=y.config.mainAxisPadding,d=o.crossSize-F,M();let N=y.rawSizeSpec,ae;if(typeof N==="function"){let I={columnWidth:e.getColumnWidth(d),columns:t.columns,gap:_};ae=N(0,I),y.setSizeConfig((U)=>{I.columnWidth=e.getColumnWidth(d);let te=U*t.columns;return N(te,I)+_})}else if(ae=N,_>0)y.setSizeConfig(ae+_);let q=null,p=r.rebuild;function C(){if(r.rebuild===q)return;p=r.rebuild,D=(L)=>p(L),q=(L)=>{D(Math.ceil(L/P))},r.rebuild=q}if(y.registerMethod("_setSizeCacheBase",(L)=>{p=L,D=(I)=>p(I)}),C(),D(B()),_>0){let L=r.getTotalSize;r.getTotalSize=()=>{let I=L();return I>0?I-_:0}}y.setVirtualTotalFn(()=>B()),y.dom.root.classList.add(`${g}--grid`),y.setRenderFn(V,H),y.registerMethod("getGridLayout",()=>e),y.registerMethod("_getRowGap",()=>e.gap),y.registerMethod("updateGrid",(L)=>{if(L.columns!==void 0){if(!Number.isInteger(L.columns)||L.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(L.gap!==void 0&&L.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if(e.update(L),L.columns!==void 0)P=Math.max(1,Math.floor(L.columns));if(L.gap!==void 0)_=L.gap;if(L.gap!==void 0||L.columns!==void 0){let I=e.gap;if(typeof N==="function"){let U={columnWidth:e.getColumnWidth(d),columns:e.columns,gap:I};y.setSizeConfig((te)=>{U.columnWidth=e.getColumnWidth(d);let Ee=te*e.columns;return N(Ee,U)+I})}else y.setSizeConfig(ae+I);C(),D(B())}if(L.columns!==void 0)y.setNavConfig({ud:e.columns});d=o.crossSize-F,M(),H()}),y.registerMethod("scrollToIndex",(L,I="start")=>{let U=e.getRow(L),te=B();if(te===0)return;let Ee=Math.max(0,Math.min(U,te-1)),de=r.getOffset(Ee)+R,ne=r.getSize(Ee),ue=o.containerSize,ge=r.getTotalSize()+u,be=Math.max(0,ge-ue),ie=typeof I==="string"?I:I.align??"start",f=typeof I==="object"?I.behavior:void 0,X=typeof I==="object"?I.duration:void 0,oe;switch(ie){case"center":oe=de-(ue-ne)/2;break;case"end":oe=de-ue+ne;break;default:oe=de}if(oe=Math.max(0,Math.min(oe,be)),f==="smooth"&&X&&X>0)y.smoothScrollTo(oe,X);else y.scrollTo(oe)}),y.setNavConfig({total:()=>o.totalItems,ud:t.columns,lr:1,scrollIndex:(L)=>e.getRow(L)}),y.registerDestroyHandler(()=>{for(let[,L]of c)L.el.remove();c.clear(),y.dom.root.classList.remove(`${g}--grid`)})},hooks:{onResize(y,N){let ae=o.crossSize-F;if(Math.abs(ae-d)<1)return;d=ae,M();for(let[q,p]of c){let C=q/P|0;a(p.el,C),p.el.style.transform=m(q)}}},destroy(){c.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,l=[],E=()=>{let c=(e-1)*r;s=Math.max(0,(o-c)/e),l=Array(e);let d=s+r;for(let P=0;P<e;P++)l[P]=i+P*d};E();let S=[],g=0,O=[],A=(c,d)=>{if(c<=0)return g=0,S=[],[];let P=Array(e).fill(n),_=Array(e);for(let h=0;h<e;h++)_[h]=[];let v=Array(c);for(let h=0;h<c;h++){let Y=0,G=P[0];for(let Z=1;Z<e;Z++){let ee=P[Z];if(ee<G)G=ee,Y=Z}let k=d(h),j=P[Y];v[h]={index:h,x:l[Y],y:j,lane:Y,size:k,crossSize:s},_[Y].push(h),P[Y]=j+k+r}S=_;let T=0;for(let h=0;h<e;h++){let Y=P[h],G=Y>0?Y-r:0;if(G>T)T=G}return g=T,v},b=(c)=>{if(c.length===0)return g;if(g)return g;let d=Array(e).fill(0);for(let _ of c){let v=_.y+_.size,T=d[_.lane];if(v>T)d[_.lane]=v}let P=0;for(let _=0;_<e;_++)if(d[_]>P)P=d[_];return P},F=(c,d,P)=>{if(c.length===0||P<=d)return O.length=0,O;if(S.length===0||S.length!==e)return R(c,d,P);O.length=0;for(let _=0;_<e;_++){let v=S[_],T=v.length;if(!T)continue;let h=0,Y=T;while(h<Y){let G=h+Y>>>1,k=c[v[G]];if(k.y+k.size<=d)h=G+1;else Y=G}for(let G=h;G<T;G++){let k=c[v[G]];if(k.y>=P)break;O.push(k)}}return O},R=(c,d,P)=>{O.length=0;for(let _ of c)if(_.y+_.size>d&&_.y<P)O.push(_);return O};return{get columns(){return e},get gap(){return r},get containerSize(){return o},update:(c)=>{let d=!1;if(c.columns!==void 0){let P=Math.max(1,Math.floor(c.columns));if(P!==e)e=P,d=!0}if(c.gap!==void 0&&c.gap!==r)r=c.gap,d=!0;if(c.containerSize!==void 0&&c.containerSize!==o)o=c.containerSize,d=!0;if(c.crossOffset!==void 0&&c.crossOffset!==i)i=c.crossOffset,d=!0;if(c.mainOffset!==void 0&&c.mainOffset!==n)n=c.mainOffset,d=!0;if(d)E()},calculateLayout:A,getTotalSize:b,getVisibleItems:F}};var fn=(t,e,r)=>{let o=Array.from(e).sort((s,l)=>s-l);if(o.length<=1)return;let i=[];for(let s=0;s<o.length;s++){let l=r(o[s]);if(l)i.push(l)}if(i.length<=1)return;let n=t.firstChild;for(let s=0;s<i.length;s++){let l=i[s];if(l===n)n=n.nextSibling;else t.insertBefore(l,n)}};var Yn=(t=200)=>{let e=[];return{acquire:()=>{let n=e.pop();if(n)return n;let s=document.createElement("div");return s.setAttribute("role","option"),s},release:(n)=>{if(n.remove(),e.length<t)n.className="",n.textContent="",n.removeAttribute("style"),n.removeAttribute("data-index"),n.removeAttribute("data-id"),n.removeAttribute("data-lane"),e.push(n)},clear:()=>{e.length=0}}},Un=1,gn=(t,e,r,o=!1,i,n,s,l,E=()=>0)=>{let S=Yn(),g=new Map,O=new Set,A=0,b="",F=-1,R={selected:!1,focused:!1},u=(z,D)=>(R.selected=z,R.focused=D,R),c=`${r}-item ${r}-masonry-item`,d=`${r}-group-header`,P=`${r}-item--selected`,_=`${r}-item--focused`,v=(z,D)=>{if(typeof D==="string")z.innerHTML=D;else z.replaceChildren(D);We(z)},T=(z,D,M)=>{z.classList.toggle(P,D),z.classList.toggle(_,M)},h=(z,D)=>{let M=Math.round(D.y-E());if(o)z.style.transform=`translate(${M}px, ${Math.round(D.x)}px)`;else z.style.transform=`translate(${Math.round(D.x)}px, ${M}px)`},Y=(z,D)=>{if(o)z.style.width=`${D.size}px`,z.style.height=`${D.crossSize}px`;else z.style.width=`${D.crossSize}px`,z.style.height=`${D.size}px`},G=(z,D,M,w,B)=>{let m=S.acquire(),a=D.__groupHeader,W=u(w,B);if(m.className=a?d:c,m.dataset.index=String(z),m.dataset.id=String(D.id),m.dataset.lane=String(M.lane),a)m.setAttribute("role","presentation"),m.removeAttribute("aria-selected"),m.removeAttribute("aria-setsize"),m.removeAttribute("aria-posinset"),m.removeAttribute("id");else if(l===!0){if(m.setAttribute("role","option"),m.ariaSelected=String(w),n)m.id=`${n}-item-${z}`;if(i){let H=i();if(H!==F)F=H,b=String(H);m.setAttribute("aria-setsize",b);let y=s?s(z):z+1;m.setAttribute("aria-posinset",String(y))}}else if(m.setAttribute("role","listitem"),m.removeAttribute("aria-selected"),i){let H=i();if(H!==F)F=H,b=String(H);m.setAttribute("aria-setsize",b);let y=s?s(z):z+1;m.setAttribute("aria-posinset",String(y))}Y(m,M);let V=e(D,z,W);return v(m,V),T(m,w,B),h(m,M),{element:m,lastItem:D,lastSelected:w,lastFocused:B,lastY:M.y-E(),absY:M.y,lastX:M.x,lastSize:M.size,lastCrossSize:M.crossSize,lastSeenFrame:A}},k=(z,D,M,w)=>{A++,O.clear();for(let m=0;m<D.length;m++)O.add(D[m].index);let B=null;for(let m=0;m<D.length;m++){let a=D[m],W=a.index,V=z(W);if(!V)continue;let H=M.has(V.id),y=W===w,N=g.get(W);if(N){let ae=N.lastItem!==V,q=N.lastSelected!==H,p=N.lastFocused!==y,C=N.lastY!==a.y-E()||N.lastX!==a.x,L=N.lastSize!==a.size||N.lastCrossSize!==a.crossSize;if(ae){let I=u(H,y),U=e(V,W,I);if(v(N.element,U),N.element.dataset.id=String(V.id),N.lastItem=V,!V.__groupHeader){let Ee=s?s(W):W+1;N.element.setAttribute("aria-posinset",String(Ee))}}if(ae||q||p)T(N.element,H,y),N.element.ariaSelected=String(H),N.lastSelected=H,N.lastFocused=y;if(L)Y(N.element,a),N.lastSize=a.size,N.lastCrossSize=a.crossSize;if(C)h(N.element,a),N.lastY=a.y-E(),N.absY=a.y,N.lastX=a.x}else{let ae=G(W,V,a,H,y);if(!B)B=document.createDocumentFragment();B.appendChild(ae.element),g.set(W,ae)}}if(B)t.appendChild(B);for(let[m,a]of g)if(O.has(m))a.lastSeenFrame=A;else if(A-a.lastSeenFrame>Un)S.release(a.element),g.delete(m);else{let W=Math.round(a.absY-E());if(W!==a.lastY){a.lastY=W;let V=Math.round(a.lastX);a.element.style.transform=o?`translate(${W}px, ${V}px)`:`translate(${V}px, ${W}px)`}}},j=()=>{for(let z of g.values())S.release(z.element);g.clear(),t.innerHTML=""};return{render:k,getElement:(z)=>g.get(z)?.element,updateItemClasses:(z,D,M)=>{let w=g.get(z);if(!w)return;let B=w.lastSelected!==D,m=w.lastFocused!==M;if(B||m)T(w.element,D,M),w.lastSelected=D,w.lastFocused=M},sortDOM:()=>{fn(t,g.keys(),(z)=>g.get(z)?.element)},clear:j,destroy:()=>{j(),S.clear()}}};var Kn=100,Xn=new Set;function St(t){if(!t.columns||t.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let e,r=null,o,i=null,n,s,l,E=[],S=-1,g=-1,O=!0,A=-1,b=-1,F=0,R=0,u=0,c=0,d={columnWidth:0,columns:0,gap:0,containerWidth:0},P=[],_=(p)=>P[p],v=null,T=null,h=!1;function Y(){if(h||!i)return;h=!0,v=i.getMethod("_getSelectedIds")??null,T=i.getMethod("_getFocusedIndex")??null}let G=[],k=new Int32Array(0),j=[],Z=null,ee=null,ce=null,z=null,D=!1,M=!0;function w(){if(D||!i)return;if(Z=i.getMethod("_getItemLane")??null,ee=i.getMethod("_getItemY")??null,ce=i.getMethod("_getItemH")??null,z=i.getMethod("_isGroupHeader")??null,Z||z)D=!0}function B(){w();let p=e.columns,C=!!Z;if(C){let L=o.totalItems;G=Array(p);for(let I=0;I<p;I++)G[I]=[];if(k.length<L)k=new Int32Array(L);for(let I=0;I<L;I++){if(z?.(I))continue;let U=Z(I);if(U<0||U>=p)continue;k[I]=G[U].length,G[U].push(I)}}else{let L=E.length;G=Array(p);for(let I=0;I<p;I++)G[I]=[];if(k.length<L)k=new Int32Array(L);for(let I=0;I<L;I++){let U=E[I];k[I]=G[U.lane].length,G[U.lane].push(I)}}j=Array(p);for(let L=0;L<p;L++){let I=G[L],U=new Float64Array(I.length);for(let te=0;te<I.length;te++){let Ee=I[te];if(C&&ee&&ce){let de=ee(Ee),ne=ce(Ee);U[te]=de>=0?de+(ne>0?ne*0.5:0):0}else{let de=E[Ee];U[te]=de.y+de.size*0.5}}j[L]=U}}function m(p,C){let L=p.length;if(!L)return-1;let I=0,U=L-1;while(I<U){let te=I+U>>1;if(p[te]<C)I=te+1;else U=te}if(I>0&&Math.abs(p[I-1]-C)<=Math.abs(p[I]-C))return I-1;return I}function a(p,C,L){if(M)B(),M=!1;let I=!!Z,U,te;if(I){if(z?.(p))return p;if(U=Z(p),U<0)return p;te=k[p]}else{let ue=E[p];if(!ue)return p;U=ue.lane,te=k[p]}let Ee=e.columns,de=G[U];switch(n?C==="ArrowDown"?"ArrowRight":C==="ArrowUp"?"ArrowLeft":C==="ArrowRight"?"ArrowDown":C==="ArrowLeft"?"ArrowUp":C:C){case"ArrowDown":if(te+1<de.length)return de[te+1];return p;case"ArrowUp":if(te>0)return de[te-1];return p;case"ArrowRight":{if(U>=Ee-1)return p;let ue=U+1,ge=G[ue];if(!ge.length)return p;let be=m(j[ue],j[U]?.[te]??0);return be>=0?ge[be]:p}case"ArrowLeft":{if(U<=0)return p;let ue=U-1,ge=G[ue];if(!ge.length)return p;let be=m(j[ue],j[U]?.[te]??0);return be>=0?ge[be]:p}case"Home":return 0;case"End":{let ue=G[Ee-1];return ue.length>0?ue[ue.length-1]:p}case"PageDown":{let ue=o.containerSize,ge=I?null:E[p],be=ge&&ge.size>0?ge.size:150,ie=Math.max(1,Math.floor(ue/be)),f=Math.min(te+ie,de.length-1);return de[f]}case"PageUp":{let ue=o.containerSize,ge=I?null:E[p],be=ge&&ge.size>0?ge.size:150,ie=Math.max(1,Math.floor(ue/be)),f=Math.max(0,te-ie);return de[f]}}return p}let W=null;function V(){if(t.size)return(p)=>t.size(p,d);if(W!==null&&typeof W==="function")return(p)=>W(p,d);return(p)=>i.sizeCache.getSize(p)}function H(){let p=e.columns,C=e.gap;d.containerWidth=e.containerSize,d.columns=p,d.gap=C,d.columnWidth=Math.max(0,(e.containerSize-(p-1)*C)/p)}function y(){if(!i)return;H();let p=o.totalItems;E=e.calculateLayout(p,V()),A=p,M=!0,N()}function N(){if(!i)return;let p=e.getTotalSize(E)+c;if(p===b)return;b=p,i.updateContentSize(p)}function ae(){if(o.destroyed||!i||!r)return;if(o.totalItems!==A)y();if(O)b=-1,N();Y();let p=o.scrollPosition,C=o.containerSize;if(!O&&p===S&&C===g)return;if(S=p,g=C,O=!1,C<=0||E.length===0)return;let L=Math.max(0,p-l),I=p+C+l,U=e.getVisibleItems(E,L,I),te=v?.()??Xn,Ee=T?.()??-1;P=i.getItems(),r.render(_,U,te,Ee);let de=U.length,ne=de>0?U[0].index:0,ue=de>0?U[de-1].index:0;o.prevRangeStart=ne,o.prevRangeEnd=ue,o.renderPending=!1;let ge=Math.min(de,o.capacity);o.visibleCount=ge,o.startIndex=ne;for(let be=0;be<ge;be++){let ie=U[be];o.visibleIndices[be]=ie.index,o.visibleOffsets[be]=ie.y,o.visibleSizes[be]=ie.size}}function q(){if(o.destroyed)return;b=-1,y(),o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,O=!0,ae()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(p){if(i=p,o=p.getState(),W=p.rawSizeSpec,n=p.config.axis.primary==="x",s=p.config.classPrefix,l=p.config.overscan*Kn,p.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");F=p.config.crossAxisPadding,R=p.config.crossPadStart,u=p.config.startPadding,c=p.config.endPadding;let C=o.crossSize-F;e=mn({columns:t.columns,gap:t.gap??0,containerSize:C,crossOffset:R,mainOffset:u}),r=gn(p.dom.content,p.template,s,n,()=>o.totalItems,void 0,void 0,void 0,()=>o.baseOffset),p.dom.root.classList.add(`${s}--masonry`),p.setRenderFn(ae,q),y(),p.registerMethod("getMasonryLayout",()=>e),p.registerMethod("updateMasonry",(L)=>{if(L.columns!==void 0&&L.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(L.gap!==void 0&&L.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let I={};if(L.columns!==void 0)I.columns=L.columns;if(L.gap!==void 0)I.gap=L.gap;e.update(I),r?.clear(),q()}),p.registerMethod("scrollToIndex",(L,I="start")=>{let U=E[L];if(!U)return;let te=typeof I==="string"?I:I.align??"start",Ee=typeof I==="object"?I.behavior:void 0,de=typeof I==="object"?I.duration:void 0,ne=o.containerSize,ue=e.getTotalSize(E)+c,ge=Math.max(0,ue-ne),be=U.y;if(te==="center")be=U.y-ne/2+U.size/2;else if(te==="end"){if(be=U.y-ne+U.size,L>=o.totalItems-1&&U.y+U.size>ge)be=ge}if(be=Math.max(0,Math.min(be,ge)),Ee==="smooth"&&de&&de>0)p.smoothScrollTo(be,de);else p.scrollTo(be)}),p.registerMethod("_scrollItemIntoView",(L)=>{let I=E[L];if(!I)return;let U=o.scrollPosition,te=o.containerSize,Ee=e.getTotalSize(E)+c,de=Math.max(0,Ee-te),ne=I.y,ue=ne+I.size;if(ne-u<U)p.scrollTo(Math.max(0,ne-u));else if(ue+c>U+te){let ge=G[e.columns-1];if(ge&&ge.length>0&&L===ge[ge.length-1]&&ne>=de)p.scrollTo(de);else p.scrollTo(Math.min(ue+c-te,de))}}),p.setNavConfig({total:()=>o.totalItems,navigate:a}),p.registerDestroyHandler(()=>{r?.destroy(),r=null,p.dom.root.classList.remove(`${s}--masonry`)})},hooks:{onResize(p,C){if(!e||!i)return;let L=o.crossSize-F;if(Math.abs(L-e.containerSize)<1)return;e.update({containerSize:L}),r?.clear(),q()},onIdle(){r?.sortDOM()}},destroy(){r?.destroy(),r=null,E=[],i=null}}}var yt=(t,e)=>{let r=0,o=t.length-1;while(r<o){let i=r+o+1>>>1;if(t[i].headerLayoutIndex<=e)r=i;else o=i-1}return r},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 l=0;l<t;l++){let E=r?.(l);if(!E)continue;let S=e(l,E);if(i===null)i=S,n=0;else if(S!==i){let g=l-n;o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:g}),s=s+1+g,i=S,n=l}}if(i!==null)o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:t-n});return o};var 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:(b)=>{if(o.length===0)return{type:"item",dataIndex:b,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let F=yt(o,b),R=o[F];if(b===R.headerLayoutIndex)return{type:"header",group:R};let u=b-R.headerLayoutIndex-1;return{type:"item",dataIndex:R.firstDataIndex+u,group:R}},layoutToDataIndex:(b)=>{if(o.length===0)return b;let F=yt(o,b),R=o[F];if(b===R.headerLayoutIndex)return-1;let u=b-R.headerLayoutIndex-1;return R.firstDataIndex+u},dataToLayoutIndex:(b)=>{if(o.length===0)return b;let F=pn(o,b),R=o[F],u=b-R.firstDataIndex;return R.headerLayoutIndex+1+u},getGroupAtLayoutIndex:(b)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=yt(o,b);return o[F]},getGroupAtDataIndex:(b)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let F=pn(o,b);return o[F]},getHeaderHeight:typeof n==="number"?(b)=>n:(b)=>{let F=o[b];if(!F)return 0;return n(F.key,b)},rebuild:(b,F)=>{o=bn(b,e.getGroupForIndex,F??r),i=b+o.length}}};var It=(t,e,r,o,i=0)=>{let n=r?"width":"height",s=document.createElement("div");return s.className=`${e}-sticky-header`,s.setAttribute("role","presentation"),s.setAttribute("aria-hidden","true"),s.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(r?`position:absolute;top:0;bottom:0;left:${i||0}px`:`position:relative;top:${i||0}px`),s.style[n]=`${o}px`,t.insertBefore(s,t.firstChild),s},vn=(t,e,r,o,i,n=!1,s=0,l,E)=>{let S=n?"width":"height",g=n?"height":"width",O=n?"X":"Y",A=(p,C)=>{p.style[S]=`${C}px`},b=l??It(t,i,n,0,s),F=()=>{let p=document.createElement("div");return p.className="sticky-group",p.style.position="absolute",p.style.willChange="transform",p.style[g]="100%",p},R=F(),u=F();b.append(R,u);let c=R,d=u,P=e.groups,_=[],v=[],T=[],h=0,Y=()=>{P=e.groups,h=P.length,_=Array(h),v=Array(h),T=Array(h);for(let p=0;p<h;p++)_[p]=E?E(P[p].headerLayoutIndex):r.getOffset(P[p].headerLayoutIndex),v[p]=e.getHeaderHeight(p),T[p]=v[p]};Y();let G=-1,k=0,j=0,Z=-1,ee=!1,ce=0,z=!1,D=(p,C)=>{o(p,C);let L=v[C];return A(p,L),L},M=(p)=>{p.replaceChildren(),p.style.transform=""},w=(p)=>{if(p===G)return;if(G=p,k=0,j=0,p<0||p>=h){M(c);return}k=D(c,p),j=T[p],A(b,k),c.style.transform=""},B=(p)=>{if(p===ce)return;ce=p;let C=Math.round(p);c.style.transform=`translate${O}(${C}px)`,d.style.transform=`translate${O}(${C+k}px)`},m=()=>{ce=0,c.style.transform="",d.style.transform=""},a=()=>{if(!z)return;let p=c;c=d,d=p,G=Z,k=G>=0?v[G]:0,j=G>=0?T[G]:0,A(b,k),M(d),Z=-1,z=!1,m()},W=()=>{if(!z)return;M(d),Z=-1,z=!1,m()},V=!!l,H=()=>{if(ee)return;if(ee=!0,V)b.style.visibility="";else b.style.display=""},y=()=>{if(!ee)return;if(ee=!1,V)b.style.visibility="hidden";else b.style.display="none";M(c),G=-1,k=0,j=0,W()},N=(p)=>{if(h===0){if(z)W();if(!ee)H();w(-1);return}if(p<_[0]){y();return}let C=0,L=h-1;while(C<L){let U=C+L+1>>>1;if(_[U]+T[U]<=p)C=U;else L=U-1}if(!ee)H();w(C);let I=C+1;if(I<h){let U=_[I]-p;if(U<=0&&U>-j){if(Z!==I||!z)Z=I,D(d,I),z=!0;let te=j>0?U/j*k:U;B(te)}else if(U<=-j){if(z)a()}else if(z)W()}else if(z)W()},ae=()=>{Y();let p=G;if(G=-1,k=0,j=0,p>=0)w(p)},q=()=>{b.remove(),G=-1,k=0,j=0,Z=-1,ee=!1,z=!1};if(!l)b.style.display="none";return{update:N,refresh:ae,show:H,hide:y,destroy:q}};var $e={selected:!1,focused:!1},Sn=typeof process<"u"&&process.env?.NODE_ENV!=="production";function Tt(t){if(!t.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let e=t.header?.height??t.header?.width??t.headerHeight;if(e==null||typeof e==="number"&&e<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let r=t.header?.template??t.headerTemplate;if(!r)throw Error("[vlist] groups: header.template is required");let o=r,i,n=null,s,l,E,S,g=null,O,A,b,F=null,R,u,c,d=null,P,_,v=null,T=null,h=0,Y=0,G=0,k=0,j=0,Z=!1,ee=null,ce=new Map,z=new Set,D=new Map,M=-1,w=-1,B=0,m=!0,a=-1,W=0,V=null,H;function y(){return i.totalEntries}function N(){let f=l.totalItems;if(f===a)return;if(Sn)console.log(`[groups] syncLayout: ${a} → ${f}`);let X=a>0;a=f,i.rebuild(f,F??b),H(i.totalEntries),L();let oe=q?I():s.getTotalSize();if(g?.(oe),n)n.refresh(),n.update(l.scrollPosition);if(X)Ee();let me=v?.("_scrollbar:getInstance");if(me)me()?.updateBounds(oe,l.containerSize)}let ae=0,q=null,p=null,C=null;function L(){if(h<=0){q=null,p=null;return}ae=((l.crossSize||S.clientWidth)-k-(h-1)*Y)/h,q=new Map;let oe=i.totalEntries,me=Array(oe),ve=0;if(Z){let Se=ee??((xe)=>s.getSize(xe)),ye=new Float64Array(h),fe=[],he=0,Me=-1;for(let xe=0;xe<oe;xe++){let Te=i.getEntry(xe);if(Te.type==="header"){let Q=0;for(let J=0;J<h;J++)if(ye[J]>Q)Q=ye[J];if(Me>=0)fe[Me]=he+Q;he+=Q;let le=s.getSize(xe);q.set(xe,{col:-1,rowY:he}),me[ve++]=[xe,he,he+le],he+=le,ye.fill(0),Me=Te.group.groupIndex}else{let Q=0,le=ye[0];for(let K=1;K<h;K++)if(ye[K]<le)le=ye[K],Q=K;let J=Se(Te.dataIndex),Ie=he+ye[Q];q.set(xe,{col:Q,rowY:Ie,h:J}),me[ve++]=[xe,Ie,Ie+J],ye[Q]=ye[Q]+J+Y}}if(Me>=0){let xe=0;for(let Te=0;Te<h;Te++)if(ye[Te]>xe)xe=ye[Te];fe[Me]=he+xe}C=fe}else{C=null;let Se=0,ye=0,fe=0;for(let he=0;he<oe;he++)if(i.getEntry(he).type==="header"){if(ye>0&&fe>0)Se+=fe;let xe=s.getSize(he);q.set(he,{col:-1,rowY:Se}),me[ve++]=[he,Se,Se+xe],Se+=xe,ye=0,fe=0}else{let xe=ye%h,Te=s.getSize(he);if(xe===0){if(ye>0&&fe>0)Se+=fe+Y;fe=Te}else if(Te>fe)fe=Te;q.set(he,{col:xe,rowY:Se}),me[ve++]=[he,Se,Se+Te],ye++}}me.length=ve,p=me}function I(){if(!q||q.size===0)return s.getTotalSize();let f=i.totalEntries;if(Z)return C?.[C.length-1]??0;let X=0;for(let oe=f-1;oe>=0;oe--){let me=q.get(oe);if(me){X=me.rowY+(me.h??s.getSize(oe));break}if(i.getEntry(oe).type==="header"){X=s.getOffset(oe)+s.getSize(oe);break}}return X}function U(f){let X=l.baseOffset;if(q){let me=q.get(f);if(me){let ve=me.col<0?0:G+me.col*(ae+Y),Se=me.rowY-X;if(R)return`translate(${Math.round(Se)}px, ${Math.round(ve)}px)`;return`translate(${Math.round(ve)}px, ${Math.round(Se)}px)`}}let oe=s.getOffset(f)-X;if(R)return`translate(${Math.round(oe)}px, 0)`;return`translate(0, ${Math.round(oe)}px)`}function te(f,X){let oe=q?.get(X);if(oe){let ve=oe.h??s.getSize(X);if(oe.col<0)if(R)f.style.width=`${ve}px`,f.style.height="";else f.style.height=`${ve}px`,f.style.width="100%";else if(R)f.style.width=`${ve}px`,f.style.height=`${ae}px`;else f.style.height=`${ve}px`,f.style.width=`${ae}px`;return}let me=s.getSize(X);if(R)f.style.width=`${me}px`;else f.style.height=`${me}px`}function Ee(){ce.forEach((f)=>{f.remove();let X=f.getAttribute("data-id");if(X)D.set(X,f);else E.release(f)}),ce.clear(),z.clear()}function de(){if(D.size>0)D.forEach((f)=>E.release(f)),D.clear()}function ne(f,X,oe,me){if(T===null)T=!!v?.("_getSelectedIds");if(X.type==="header"){let Me=`__group_header_${X.group.groupIndex}`;if(f.getAttribute("data-id")===Me)return!0;if(f.className=_,f.setAttribute("role","presentation"),f.removeAttribute("aria-selected"),f.setAttribute("data-id",Me),R&&n&&X.group.groupIndex===0)f.style.display="none";else{f.style.display="";let xe=o(X.group.key,X.group.groupIndex);if(typeof xe==="string")f.innerHTML=xe;else f.innerHTML="",f.appendChild(xe)}return!0}let ve=X.dataIndex,Se=b(ve);if(!Se)return f.innerHTML="",!1;let ye=Se._isPlaceholder===!0,fe=String(Se.id);if(!ye&&f.getAttribute("data-id")===fe){if(T)f.id=`${u}-item-${me}`,f.setAttribute("aria-posinset",String(ve+1)),f.setAttribute("aria-setsize",String(l.totalItems));return!0}if(f.className=P,f.setAttribute("role",T?"option":"listitem"),f.setAttribute("data-id",fe),T)f.id=`${u}-item-${me}`,f.setAttribute("aria-posinset",String(ve+1)),f.setAttribute("aria-setsize",String(l.totalItems));if(ye)f.classList.add(`${u}-item--placeholder`);if(oe)oe(me,$e);else $e.selected=!1,$e.focused=!1;let he=A(Se,ve,$e);if(typeof he==="string")f.innerHTML=he;else f.innerHTML="",f.appendChild(he);return We(f),!ye}let ue=0;function ge(){if(h<=0)return;let f=l.crossSize;if(f===ue)return;ue=f,L();let X=I();if(g?.(X),n)n.refresh(),n.update(l.scrollPosition);m=!0}function be(){if(l.destroyed)return;N(),ge();let f=l.scrollPosition,X=l.containerSize,oe=l.baseOffset,me=oe!==B;if(!m&&f===M&&X===w&&!me)return;M=f,w=X;let ve=m;m=!1;let Se=y();if(X<=0||Se===0){if(ce.size>0)ce.forEach((K)=>{K.remove(),E.release(K)}),ce.clear(),z.clear();return}let ye,fe;if(p){let K=p,se=K.length,Ce=0,Le=se-1;while(Ce<Le){let we=Ce+Le>>>1;if(K[we][2]<=f)Ce=we+1;else Le=we}let ze=Ce;Le=se-1;while(Ce<Le){let we=Ce+Le+1>>>1;if(K[we][1]>=f+X)Le=we-1;else Ce=we}let Ge=Ce,He=K[ze][0],Ue=K[Ge][0];for(let we=He-1;we>=0;we--)if(i.getEntry(we).type==="header"){He=we;break}let Be=c*h;ye=Math.max(0,He-Be),fe=Math.min(Se-1,Ue+Be)}else{let K=s.indexAtOffset(f),se=s.indexAtOffset(f+X);if(se<Se-1)se++;K=Math.max(0,K),se=Math.min(Se-1,Math.max(0,se)),ye=Math.max(0,K-c),fe=Math.min(Se-1,se+c)}if(ye===l.prevRangeStart&&fe===l.prevRangeEnd&&!l.renderPending&&!me)return;B=oe,ce.forEach((K,se)=>{if(se<ye||se>fe)K.remove(),E.release(K),ce.delete(se),z.delete(se)});let he=d?.()??null,Me=he?`${u}-item--selected`:"",xe=he?`${u}-item--focused`:"",Te=null;for(let K=ye;K<=fe;K++){let se=ce.get(K),Ce=!1;if(se===void 0){let Le=i.getEntry(K);Ce=Le.type==="header";let ze;if(Le.type==="header")ze=`__group_header_${Le.group.groupIndex}`;else{let He=b(Le.dataIndex);if(He&&He._isPlaceholder!==!0)ze=String(He.id)}if(ze!==void 0){let He=D.get(ze);if(He)D.delete(ze),se=He}if(!se)se=E.acquire();if(se.setAttribute("data-index",String(K)),ne(se,Le,he,K))z.delete(K);else z.add(K);if(te(se,K),se.style.transform=U(K),ce.set(K,se),!Te)Te=document.createDocumentFragment();Te.appendChild(se)}else if(ve&&z.has(K)){let Le=i.getEntry(K);if(Le.type==="item")if(ne(se,Le,he,K))z.delete(K);else z.add(K)}else if(Ce=se.classList.contains(_),ve)te(se,K),se.style.transform=U(K);else if(me)se.style.transform=U(K);if(!Ce&&he)if(he(K,$e),se.classList.toggle(Me,$e.selected),se.classList.toggle(xe,$e.focused),$e.selected)se.setAttribute("aria-selected","true");else se.removeAttribute("aria-selected")}if(Te)S.appendChild(Te);de();let Q=q?I():s.getTotalSize();g?.(Q),l.prevRangeStart=ye,l.prevRangeEnd=fe,l.renderPending=!1;let le=0,J=0,Ie=!1;for(let K=ye;K<=fe&&le<l.capacity;K++){let se=i.getEntry(K);if(se.type==="item"){if(!Ie)J=se.dataIndex,Ie=!0;l.visibleIndices[le]=se.dataIndex,l.visibleOffsets[le]=s.getOffset(K),l.visibleSizes[le]=s.getSize(K),le++}}l.visibleCount=le,l.startIndex=J}function ie(){if(l.destroyed)return;if(ge(),Sn)console.log(`[groups] forceRender, placeholders: ${z.size}, rendered: ${ce.size}`);let f=V?.()??0;if(f!==W){W=f;let X=i.groups,oe=X.length;i.rebuild(a,F??b);let me=i.groups,ve=me.length!==oe;if(!ve){for(let Se=0;Se<oe;Se++)if(me[Se].headerLayoutIndex!==X[Se].headerLayoutIndex){ve=!0;break}}if(ve){H(i.totalEntries),L();let Se=q?I():s.getTotalSize();if(g?.(Se),n)n.refresh(),n.update(l.scrollPosition);let ye=1/0,fe=Math.min(oe,me.length);for(let Me=0;Me<fe;Me++)if(me[Me].headerLayoutIndex!==X[Me].headerLayoutIndex){ye=Math.min(me[Me].headerLayoutIndex,X[Me].headerLayoutIndex);break}if(me.length>oe&&fe<me.length)ye=Math.min(ye,me[fe].headerLayoutIndex);else if(oe>me.length&&fe<oe)ye=Math.min(ye,X[fe].headerLayoutIndex);if(ye<=l.prevRangeEnd)Ee();let he=v?.("_scrollbar:getInstance");if(he)he()?.updateBounds(Se,l.containerSize)}}l.prevRangeStart=-1,l.prevRangeEnd=-1,l.renderPending=!0,m=!0,be()}return{name:"groups",priority:10,setup(f){s=f.sizeCache,l=f.getState(),E=f.pool,S=f.dom.content,g=f.updateContentSize.bind(f),O=f.dom.root,A=f.template,R=f.config.axis.primary==="x",u=f.config.classPrefix,c=f.config.overscan,j=f.config.mainAxisPadding,b=f.getItem.bind(f),d=()=>f.getItemStateFn(),v=f.getMethod.bind(f),T=null,P=`${u}-item`,_=`${u}-group-header`;let X=v?.("getGridLayout"),oe=v?.("getMasonryLayout");if(X){let Q=X();h=Q.columns,Y=Q.gap,G=f.config.crossPadStart,k=f.config.crossAxisPadding}else if(oe){let Q=oe();h=Q.columns,Y=Q.gap,G=f.config.crossPadStart,k=f.config.crossAxisPadding,Z=!0;let le=f.rawSizeSpec;if(typeof le==="function")ee=(J)=>le(J,{columnWidth:ae})}queueMicrotask(()=>{let Q=v?.("_getLoadedItem");if(Q)F=Q;let le=v?.("_getLoadedCount");if(le)V=le});let me=l.totalItems;i=hn(me,t,F??b),a=me;let ve=typeof e==="number"?(Q)=>e:(Q)=>{let le=i.groups[Q];if(!le)return 0;return e(le.key,Q)},Se=s.getSize,ye=(Q)=>{let le=i.getEntry(Q);if(le.type==="header"){if(t.sticky!==!1&&le.group.groupIndex===0)return 0;return ve(le.group.groupIndex)}return Se(le.dataIndex)};f.setSizeConfig(ye);let fe=!1,he=-1;if(f.registerMethod("_setSizeCacheBase",(Q)=>{H=Q}),H=s.rebuild,s.rebuild=(Q)=>{if(fe){if(!V)V=v?.("_getLoadedCount")??null;let le=V?.()??0;if(Q!==a||le!==he){if(a=Q,he=le,!F)F=v?.("_getLoadedItem")??null;if(i.rebuild(Q,F??((J)=>f.getItems()[J])),l.totalItems=i.totalEntries,n)n.refresh(),n.update(l.scrollPosition)}}H(i.totalEntries)},s.rebuild(i.totalEntries),L(),f.setVirtualTotalFn(()=>i.totalEntries),O.classList.add(`${u}--grouped`),t.sticky!==!1){let Q=(K,se)=>{let Ce=i.groups[se];if(!Ce)return;let Le=o(Ce.key,se);if(typeof Le==="string")K.innerHTML=Le;else K.replaceChildren(Le)},le=i.getHeaderHeight(0),J=It(O,u,R,le),Ie=h>0?(K)=>{let se=q?.get(K);return se?se.rowY:s.getOffset(K)}:void 0;if(n=vn(O,i,s,Q,u,R,0,J,Ie),n.update(l.scrollPosition),!R)f.dom.viewport.style.height=`calc(100% - ${le}px)`;else f.dom.viewport.style.width=`calc(100% - ${le}px)`,f.dom.viewport.style.marginLeft=`${le}px`}let Me=!!v?.("_updateTableForGroups");if(fe=Me,Me)queueMicrotask(()=>{let Q=v?.("_getItem")??null,le=f.getItems.bind(f);f.setGetItemFn((Ie)=>{let K=i.getEntry(Ie);if(K.type==="header")return{id:`__group_header_${K.group.groupIndex}`,__groupHeader:!0,groupKey:K.group.key,groupIndex:K.group.groupIndex};return Q?Q(K.dataIndex):le()[K.dataIndex]});let J=v?.("_updateTableForGroups");if(J)J((Ie)=>!!Ie.__groupHeader,o)});else f.setRenderFn(be,ie);f.registerMethod("getGroupLayout",()=>i),f.registerMethod("_dataToLayoutIndex",(Q)=>i.dataToLayoutIndex(Q)),f.registerMethod("_layoutToDataIndex",(Q)=>i.layoutToDataIndex(Q)),f.registerMethod("_getRenderedElement",(Q)=>ce.get(Q)??null),f.registerMethod("_isGroupHeader",(Q)=>i.getEntry(Q).type==="header"),f.registerMethod("_getItemLane",(Q)=>{let le=q?.get(Q);return le?le.col:-1}),f.registerMethod("_getItemY",(Q)=>{let le=q?.get(Q);return le?le.rowY:-1}),f.registerMethod("_getItemH",(Q)=>q?.get(Q)?.h??-1);let xe=f.config.startPadding,Te=j-xe;f.registerMethod("_scrollItemIntoView",(Q)=>{if(Q<0)return;let le=q?.get(Q),J=le?le.rowY:s.getOffset(Q),Ie=le?.h??s.getSize(Q),K=l.containerSize,se=l.scrollPosition;if(J<se+xe)f.scrollTo(Math.max(0,J-xe));else if(J+Ie+Te>se+K)f.scrollTo(J+Ie+Te-K)}),f.registerMethod("scrollToIndex",(Q,le="start")=>{let J=i.dataToLayoutIndex(Q),Ie=i.totalEntries;if(Ie===0)return;let K=Math.max(0,Math.min(J,Ie-1)),se=l.containerSize,Ce=q?.get(K),Le=Ce?Ce.rowY:s.getOffset(K),ze=Ce?Ce.h??s.getSize(K):s.getSize(K),Ge=q?I()+j:s.getTotalSize(),He=Math.max(0,Ge-se),Ue=typeof le==="string"?le:le.align??"start",Be=typeof le==="object"?le.behavior:void 0,we=typeof le==="object"?le.duration:void 0,Ne=q?j:0,Ke=Le+ze;if(Z&&C){let x=i.getEntry(K).group.groupIndex,pe=C[x];if(pe!==void 0)Ke=pe}let re;switch(Ue){case"center":re=Le-(se-ze)/2;break;case"end":re=Ke-se+Ne;break;default:re=Le}if(re=Math.max(0,Math.min(re,He)),Be==="smooth"&&we&&we>0)f.smoothScrollTo(re,we);else f.scrollTo(re)}),f.registerDestroyHandler(()=>{for(let[,Q]of ce)Q.remove();if(ce.clear(),z.clear(),n)n.destroy(),n=null;O.classList.remove(`${u}--grouped`)})},hooks:{onAfterScroll(f,X){if(n)n.update(f)},onResize(f,X){if(h<=0)return;H(i.totalEntries),ue=l.crossSize,L();let oe=I();if(g?.(oe),n)n.refresh(),n.update(l.scrollPosition);m=!0,be()}},destroy(){if(n)n.destroy(),n=null;ce.clear(),z.clear(),D.clear()}}}var 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 Ye(t,e,r,o){if(r===0)return;let i=o?-e:e,n=t.focusedIndex+i;if(n<0)n=0;if(n>=r)n=r-1;t.focusedIndex=n}function st(t){return Array.from(t)}function xt(t,e,r,o){if(o<=0)return 0;let i=o-1;if(r<=1)return t<0?0:t>i?i:t;let n=(e%r+r)%r;if(t<0)return n;if(t>i){let s=Math.floor(i/r)*r;return Math.min(s+n,i)}return t}var qn={preventScroll:!0};function lt(t){let e=t?.mode??"single",r=t?.followFocus??!1,o=t?.focusOnClick??!1,i=t?.keyboard??!0,n,s,l,E,S,g,O,A,b=-1,F=new Map,R=null,u=null,c=null,d=null,P,_=!1;function v(a){if(_)return;_=!0,R=a.getMethod("_layoutToDataIndex")??null,u=a.getMethod("_dataToLayoutIndex")??null,c=a.getMethod("_isGroupHeader")??null,d=a.getMethod("_scrollItemIntoView")??null,h=a.getMethod("_getLoadedItem")??null;let W=a.getMethod("getGroupLayout");if(W){let V=W();P=()=>V.totalEntries}}let T=(a)=>R?R(a):a,h=null,Y=(a)=>{if(h)return h(a);return s()[a]},G=(a)=>{let W=T(a);return W>=0?Y(W):void 0},k=(a,W,V)=>{if(!c)return a;let H=a;while(H>=0&&H<V){if(!c(H))return H;H+=W}H=a-W;while(H>=0&&H<V){if(!c(H))return H;H-=W}return a};function j(a,W){if(e==="single")n.selected.clear(),F.clear();if(n.selected.add(a),W)F.set(a,W)}function Z(a,W){if(n.selected.has(a))n.selected.delete(a),F.delete(a);else j(a,W)}function ee(){n.selected.clear(),F.clear()}function ce(a){n.selected.delete(a),F.delete(a)}function z(a,W){let V=Math.min(a,W),H=Math.max(a,W);for(let y=V;y<=H;y++){if(c?.(y))continue;let N=G(y);if(N)n.selected.add(N.id),F.set(N.id,N);else if(h){let ae=T(y);if(ae>=0)n.selected.add(_e+ae)}}}function D(){let a=O.totalItems;for(let W=0;W<a;W++){if(c?.(W))continue;let V=G(W);if(V)n.selected.add(V.id),F.set(V.id,V);else if(h){let H=T(W);if(H>=0)n.selected.add(_e+H)}}}function M(){if(n.selected.size===0)return[];if(F.size>=n.selected.size){let H=[];for(let y of n.selected){let N=F.get(y);if(N)H.push(N)}if(H.length===n.selected.size)return H}let a=[],W=new Set(n.selected),V=O.totalItems;for(let H=0;H<V&&W.size>0;H++){if(c?.(H))continue;let y=G(H);if(y&&W.has(y.id))a.push(y),F.set(y.id,y),W.delete(y.id)}return a}function w(){l(),E.emit("selection:change",{selected:st(n.selected),items:M()})}let B=null,m=-1;return{name:"selection",priority:50,setup(a){a.enableListboxRole(),n=In(t?.initial),s=a.getItems.bind(a),l=a.forceRender.bind(a),E=a.emitter,S=a.dom;let W=a.config;if(g=a.sizeCache,O=a.getState(),A=a.scrollTo.bind(a),P=()=>O.totalItems,e==="none"){a.registerMethod("select",()=>{}),a.registerMethod("deselect",()=>{}),a.registerMethod("toggleSelect",()=>{}),a.registerMethod("selectAll",()=>{}),a.registerMethod("clearSelection",()=>{}),a.registerMethod("getSelected",()=>[]),a.registerMethod("getSelectedItems",()=>[]),a.registerMethod("selectNext",()=>{}),a.registerMethod("selectPrevious",()=>{}),a.registerMethod("_seedSelection",()=>{}),a.registerMethod("_getFocusedId",()=>{return}),a.registerMethod("_focusById",()=>{});return}let V=W.classPrefix;a.setItemStateFn((C,L)=>{if(v(a),n.selected.size>0){let I=T(C),U=I>=0?G(C):void 0,te=U?.id;if(te!==void 0)if(n.selected.has(te))L.selected=!0;else if(yn(n.selected,I,te))L.selected=!0,F.delete(_e+I),F.set(te,U);else L.selected=!1;else L.selected=h!==null&&I>=0&&n.selected.has(_e+I)}else L.selected=!1;L.focused=n.focusVisible&&n.focusedIndex===C}),a.registerMethod("_getSelectedIds",()=>n.selected),a.registerMethod("_getFocusedIndex",()=>n.focusVisible?n.focusedIndex:-1),S.root.classList.add(`${V}--selectable`);let H=(C)=>{B=null,m=-1;let L=C.target.closest("[data-index]");if(!L)return!1;let I=parseInt(L.dataset.index??"-1",10);if(I<0)return!1;if(c?.(I))return!1;if(T(I)<0)return!1;let te=G(I);if(!te)return!1;return B=te,m=I,!0},y=0,N=(C)=>{if(C<0)return;if(d){d(C);return}if(!y){let ge=a.getMethod("_getRowGap");y=ge?ge():0}let L=a.getNavConfig(),I=L.scrollIndex?L.scrollIndex(C):C,U=g.getOffset(I),te=g.getSize(I)-y,Ee=O.containerSize,de=O.scrollPosition,{startPadding:ne,endPadding:ue}=W;if(U<de)A(U);else if(ne+U+te+ue>de+Ee)A(ne+U+te+ue-Ee)},ae=(C)=>{let L=S.content.querySelectorAll(`[data-index="${C}"]`),I=null;for(let U=0;U<L.length;U++){let te=L[U];if(te.style.display!=="none"){I=te;break}}if(!I&&L.length>0)I=L[0];S.content.setAttribute("aria-activedescendant",I?.id??`${V}-item-${C}`)},q=()=>{if(O.destroyed)return;if(v(a),!S.content.matches(":focus-visible")&&!S.root.matches(":focus-visible"))return;let C=P();if(C===0)return;let L=n.focusedIndex>=0?Math.min(n.focusedIndex,C-1):0;L=k(L,1,C),n.focusedIndex=L,n.focusVisible=!0,ae(L),N(L),l()};S.root.addEventListener("focusin",q);let p=(C)=>{if(O.destroyed)return;let L=C.relatedTarget;if(L&&S.root.contains(L))return;n.focusVisible=!1,l(),S.content.removeAttribute("aria-activedescendant")};if(S.root.addEventListener("focusout",p),a.registerDestroyHandler(()=>{S.root.removeEventListener("focusin",q),S.root.removeEventListener("focusout",p)}),a.registerClickHandler((C)=>{if(v(a),!H(C))return;if(e==="multiple"&&C.shiftKey&&n.focusedIndex>=0){let I=b>=0?b:n.focusedIndex,U=T(I),te=T(m);if(U>=0&&te>=0)z(I,m);n.focusedIndex=m,n.focusVisible=o,b=m,w();return}if(n.focusedIndex=m,n.focusVisible=o,b=m,(S.content.getAttribute("tabindex")!==null?S.content:S.root).focus(qn),e==="single")j(B.id,B);else Z(B.id,B);w()}),i)a.registerKeydownHandler((C)=>{v(a);let L=P();if(L===0)return;let I=a.getNavConfig(),U=n.focusedIndex,te=!1,Ee=!1;if(I.navigate&&(C.key==="ArrowUp"||C.key==="ArrowDown"||C.key==="ArrowLeft"||C.key==="ArrowRight"||C.key==="PageUp"||C.key==="PageDown"||C.key==="Home"||C.key==="End")){let ne=I.total?I.total():L,ue=I.navigate(n.focusedIndex,C.key,ne);if(ue!==n.focusedIndex)n.focusedIndex=Math.max(0,Math.min(ue,ne-1));n.focusVisible=!0,te=!0}else switch(C.key){case"ArrowUp":{let ne=I.ud||1,ue=I.lr,ge=W.axis.primary==="x";if(ge&&!ue)break;Ye(n,-(ge?ue:ne),L,W.reverse),n.focusVisible=!0,te=!0;break}case"ArrowDown":{let ne=I.ud||1,ue=I.lr,ge=W.axis.primary==="x";if(ge&&!ue)break;Ye(n,ge?ue:ne,L,W.reverse),n.focusVisible=!0,te=!0;break}case"ArrowLeft":{let ne=I.ud||1,ue=I.lr,ge=W.axis.primary==="x";if(!ge&&!ue)break;Ye(n,-(ge?ne:ue),L,W.reverse),n.focusVisible=!0,te=!0;break}case"ArrowRight":{let ne=I.ud||1,ue=I.lr,ge=W.axis.primary==="x";if(!ge&&!ue)break;Ye(n,ge?ne:ue,L,W.reverse),n.focusVisible=!0,te=!0;break}case"Home":if(L>0)n.focusedIndex=0;n.focusVisible=!0,te=!0;break;case"End":if(L>0)n.focusedIndex=L-1;n.focusVisible=!0,te=!0;break;case"PageUp":case"PageDown":{let ne=I.ud||1,ue=Math.max(0,n.focusedIndex),ge=I.scrollIndex?I.scrollIndex(ue):ue,be=g.getSize(ge),ie=O.containerSize,X=(be>0?Math.max(1,Math.floor(ie/be)):10)*ne;if(R&&u){let oe=R(n.focusedIndex),me=C.key==="PageUp"?-X:X,ve=O.totalItems-1;n.focusedIndex=u(xt(oe+me,oe,ne,ve+1))}else{let oe=C.key==="PageUp"?n.focusedIndex-X:n.focusedIndex+X;n.focusedIndex=xt(oe,n.focusedIndex,ne,L)}n.focusVisible=!0,te=!0;break}case" ":case"Enter":if(C.key===" "&&C.shiftKey&&e==="multiple"&&n.focusedIndex>=0){if(b>=0){let ne=T(b),ue=T(n.focusedIndex);if(ne>=0&&ue>=0)z(b,n.focusedIndex)}n.focusVisible=!0,Ee=!0,te=!0;break}if(n.focusedIndex>=0){let ne=G(n.focusedIndex);if(ne)Z(ne.id,ne),b=n.focusedIndex;n.focusVisible=!0,Ee=!0,te=!0}break;case"a":if((C.ctrlKey||C.metaKey)&&e==="multiple"){if(n.selected.size===O.totalItems)ee();else D();n.focusVisible=!0,Ee=!0,te=!0}break;case"Delete":case"Backspace":if(n.selected.size>0)E.emit("delete",{selected:st(n.selected),items:M()}),te=!0;break}if(n.focusedIndex!==U&&c){let ne=n.focusedIndex>U?1:-1;n.focusedIndex=k(n.focusedIndex,ne,L)}let de=n.focusedIndex!==U;if(C.shiftKey&&e==="multiple"&&!Ee&&de){if(C.key==="ArrowUp"||C.key==="ArrowDown"||C.key==="ArrowLeft"||C.key==="ArrowRight"){let ge=G(n.focusedIndex);if(ge)Z(ge.id,ge);b=n.focusedIndex,Ee=!0}if((C.ctrlKey||C.metaKey)&&(C.key==="Home"||C.key==="End")){let ge=U>=0?U:n.focusedIndex,be=T(ge),ie=T(n.focusedIndex);if(be>=0&&ie>=0)z(ge,n.focusedIndex);b=n.focusedIndex,Ee=!0}}if(r&&e==="single"&&!Ee&&de&&n.focusedIndex>=0){let ne=G(n.focusedIndex);if(ne)j(ne.id,ne);Ee=!0}if(te){if(C.preventDefault(),de&&n.focusedIndex>=0){if(d||!I.navigate)N(n.focusedIndex);ae(n.focusedIndex)}if(Ee)w();else if(de){if(l(),n.focusedIndex>=0){let ne=G(n.focusedIndex);if(ne)E.emit("focus:change",{id:ne.id,index:n.focusedIndex})}}}});a.registerMethod("select",(...C)=>{for(let L of C)j(L);w()}),a.registerMethod("deselect",(...C)=>{for(let L of C)ce(L);w()}),a.registerMethod("toggleSelect",(C)=>{Z(C),w()}),a.registerMethod("selectAll",()=>{if(e!=="multiple")return;v(a),D(),w()}),a.registerMethod("clearSelection",()=>{ee(),w()}),a.registerMethod("getSelected",()=>st(n.selected)),a.registerMethod("getSelectedItems",()=>M()),a.registerMethod("selectNext",()=>{v(a);let C=P();if(C===0)return;if(Ye(n,1,C,W.reverse),c)n.focusedIndex=k(n.focusedIndex,1,C);let L=G(n.focusedIndex);if(L)j(L.id,L);w()}),a.registerMethod("selectPrevious",()=>{v(a);let C=P();if(C===0)return;if(Ye(n,-1,C,W.reverse),c)n.focusedIndex=k(n.focusedIndex,-1,C);let L=G(n.focusedIndex);if(L)j(L.id,L);w()}),a.registerMethod("_seedSelection",(C)=>{if(e==="single"){if(C.length===1)n.selected.add(C[0])}else for(let L of C)n.selected.add(L)}),a.registerMethod("_isFollowFocus",()=>r),a.registerMethod("_getFocusedId",()=>{if(n.focusedIndex<0)return;return G(n.focusedIndex)?.id}),a.registerMethod("_focusById",(C)=>{let L=O.totalItems;for(let I=0;I<L;I++){if(c?.(I))continue;let U=G(I);if(U&&U.id===C){n.focusedIndex=I,n.focusVisible=o,E.emit("focus:change",{id:C,index:I});return}}})},destroy(){F.clear()}}}var Tn=!1;function xn(t){return{name:"scale",priority:20,setup(){if(t&&!Tn)Tn=!0,console.warn('[vlist] scale() is deprecated and will be removed in vlist 3.0. Use scroll: { mode: "synthetic" } from the vlist/synthetic entry (bounded remains available in 2.x). See https://vlist.io/docs/rfcs/RFC-014-Scroll-Input-Model')}}}var jn=(t)=>{if(typeof t!=="object"){let e=t??2;return{top:e,right:e,bottom:e,left:e}}return{top:t.top??2,right:t.right??2,bottom:t.bottom??2,left:t.left??2}},Ln=(t,e,r={},o="vlist",i=!1,n)=>{let{autoHide:s=!0,autoHideDelay:l=1000,minThumbSize:E=15,showOnHover:S=!0,showOnViewportEnter:g=!0,clickBehavior:O="scroll"}=r,A=O==="page"?"scroll":O,b=n??t,F=jn(r.padding),R=i?F.left:F.top,u=i?F.right:F.bottom,c=i?F.bottom:F.right,d=r.hoverZoneWidth??c+16,P=0,_=0,v=0,T=0,h=!1,Y=!1,G=0,k=0,j=0,Z=null,ee=!1,ce=null,z=0,D=0,M=null,w=null,B=null,m=i?"width":"height",a=i?"translateX":"translateY",W=i?(J)=>J.clientX:(J)=>J.clientY,V=i?"left":"top",H=document.createElement("div"),y=document.createElement("div"),N=document.createElement("div"),ae=i?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",q=()=>{if(b===t)return;let J=t.offsetTop;H.style[i?"left":"top"]=J?`calc(var(${ae}) + ${J}px)`:`var(${ae})`,N.style[i?"left":"top"]=`${J}px`},p=()=>{if(H.className=`${o}-scrollbar`,y.className=`${o}-scrollbar__thumb`,i)H.classList.add(`${o}-scrollbar--horizontal`);if(r.padding!==void 0)b.style.setProperty("--vlist-custom-scrollbar-padding-top",`${F.top}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-right",`${F.right}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${F.bottom}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-left",`${F.left}px`);if(r.minThumbSize!==void 0)H.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${E}px`);if(H.appendChild(y),b.appendChild(H),N.className=`${o}-scrollbar__hover`,i)N.classList.add(`${o}-scrollbar__hover--horizontal`),N.style.height=`${d}px`;else N.style.width=`${d}px`;if(b.appendChild(N),b!==t)q()},C=()=>{if(Z)clearTimeout(Z),Z=null},L=()=>{if(!s)return;C(),Z=setTimeout(U,l)},I=()=>{if(P<=_)return;if(C(),!ee)H.classList.add(`${o}-scrollbar--visible`),ee=!0;if(s&&!h&&!Y)L()},U=()=>{if(h||Y)return;H.classList.remove(`${o}-scrollbar--visible`),ee=!1},te=(J,Ie)=>{if(P=J,_=Ie,q(),P<=_){H.style.display="none",U();return}H.style.display="";let K=Math.max(0,_-R-u),se=_/P;if(v=Math.max(E,se*K),y.style[m]=`${v}px`,T=K-v,Ee(j),!s)I()},Ee=(J)=>{if(j=J,P<=_||T<=0)return;let Ie=P-_,K=Math.min(1,Math.max(0,J/Ie));y.style.transform=`${a}(${K*T}px)`},de=(J)=>{if(J.target===y||A!=="jump"||T<=0)return;let Ie=P-_,K=H.getBoundingClientRect(),se=W(J)-K[V],Ce=Math.max(0,Math.min(se-v/2,T));e(Ce/T*Ie),I()},ne=()=>{if(M!==null)clearTimeout(M),M=null;if(w!==null)cancelAnimationFrame(w),w=null;B=null},ue=(J)=>{let Ie=T>0?D/J*T:0;if(z<Ie)return-1;if(z>=Ie+v)return 1;return 0},ge=()=>{let J=P-_,Ie=ue(J);if(Ie===0){ne();return}if(Ie===-1){if(D<=0){ne();return}let K=Math.max(0,D-_);D=K,e(K)}else{if(D>=J){ne();return}let K=Math.min(J,D+_);D=K,e(K)}I()},be=(J)=>{if(B===null){B=J,w=requestAnimationFrame(be);return}let Ie=P-_,K=J-B;B=J;let se=ue(Ie);if(se===0){ne();return}let Ce=12*_/1000,Le=Math.min(Ce*K,_);if(se===-1){if(D<=0){ne();return}let ze=Math.max(0,D-Le);D=ze,e(ze)}else{if(D>=Ie){ne();return}let ze=Math.min(Ie,D+Le);D=ze,e(ze)}C(),w=requestAnimationFrame(be)},ie=()=>{ne(),L(),document.removeEventListener("mouseup",ie)},f=(J)=>{if(J.target===y||A!=="scroll")return;J.preventDefault();let Ie=H.getBoundingClientRect();z=W(J)-Ie[V],D=j,ge(),M=setTimeout(()=>{w=requestAnimationFrame(be)},350),document.addEventListener("mouseup",ie)},X=(J)=>{J.preventDefault(),J.stopPropagation(),h=!0,G=W(J),k=j,C(),H.classList.add(`${o}-scrollbar--dragging`),document.addEventListener("mousemove",oe),document.addEventListener("mouseup",me)},oe=(J)=>{if(!h)return;let Ie=W(J)-G,K=T>0?Ie/T:0,se=P-_,Ce=K*se,Le=Math.max(0,Math.min(k+Ce,se));y.style.transform=`${a}(${Le/se*T}px)`,e(Le)},me=()=>{if(h=!1,H.classList.remove(`${o}-scrollbar--dragging`),s&&!Y)L();document.removeEventListener("mousemove",oe),document.removeEventListener("mouseup",me)},ve=i?(J)=>J.touches[0].clientX:(J)=>J.touches[0].clientY,Se=(J)=>{J.stopPropagation(),h=!0,G=ve(J),k=j,C(),H.classList.add(`${o}-scrollbar--dragging`)},ye=(J)=>{if(!h)return;J.preventDefault();let Ie=ve(J)-G,K=T>0?Ie/T:0,se=P-_,Ce=K*se,Le=Math.max(0,Math.min(k+Ce,se));y.style.transform=`${a}(${Le/se*T}px)`,e(Le)},fe=()=>{if(h=!1,H.classList.remove(`${o}-scrollbar--dragging`),s)L()},he=(J)=>{if(J.target===y)return;if(T<=0)return;let Ie=J.touches[0],K=H.getBoundingClientRect(),se=(i?Ie.clientX:Ie.clientY)-K[V];if(A==="jump"){let Ce=P-_,Le=Math.max(0,Math.min(se-v/2,T));e(Le/T*Ce)}else z=se,D=j,ge();I()},Me=()=>{if(g)I()},xe=()=>{if(!h){if(Y=!1,s)L()}},Te=()=>{Y=!0,C(),I()},Q=()=>{if(Y=!1,!h&&s)L()},le=()=>{if(C(),ne(),ce!==null)cancelAnimationFrame(ce),ce=null;H.removeEventListener("click",de),H.removeEventListener("mousedown",f),H.removeEventListener("mouseenter",Te),document.removeEventListener("mouseup",ie),H.removeEventListener("mouseleave",Q),H.removeEventListener("touchstart",he),y.removeEventListener("mousedown",X),y.removeEventListener("touchstart",Se),y.removeEventListener("touchmove",ye),y.removeEventListener("touchend",fe),t.removeEventListener("mouseenter",Me),t.removeEventListener("mouseleave",xe),document.removeEventListener("mousemove",oe),document.removeEventListener("mouseup",me),N.removeEventListener("click",de),N.removeEventListener("mousedown",f),N.removeEventListener("mouseenter",Te),N.removeEventListener("mouseleave",Q),N.remove(),b.style.removeProperty("--vlist-custom-scrollbar-padding-top"),b.style.removeProperty("--vlist-custom-scrollbar-padding-right"),b.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),b.style.removeProperty("--vlist-custom-scrollbar-padding-left"),H.remove()};if(p(),H.addEventListener("click",de),H.addEventListener("mousedown",f),H.addEventListener("mouseenter",Te),H.addEventListener("mouseleave",Q),H.addEventListener("touchstart",he,{passive:!0}),y.addEventListener("mousedown",X),y.addEventListener("touchstart",Se,{passive:!0}),y.addEventListener("touchmove",ye,{passive:!1}),y.addEventListener("touchend",fe,{passive:!0}),t.addEventListener("mouseenter",Me),t.addEventListener("mouseleave",xe),N.addEventListener("click",de),N.addEventListener("mousedown",f),S)N.addEventListener("mouseenter",Te),N.addEventListener("mouseleave",Q);return{show:I,hide:U,updateBounds:te,updatePosition:Ee,isVisible:()=>ee,destroy:le}};function Lt(t){let e=null,r,o=0,i=0,n=0;return{name:"scrollbar",priority:15,setup(s){let{dom:l,config:E}=s,{classPrefix:S}=E,g=E.axis.primary==="x";r=s.getState(),o=E.mainAxisPadding;let O=(A)=>{s.scrollTo(A)};if(s.registerMethod("_scrollbar:setCallback",(A)=>{O=A}),e=Ln(l.viewport,(A)=>{O(A)},t,S,g,l.root),l.viewport.classList.add(`${S}-viewport--custom-scrollbar`),t?.gutter)l.viewport.classList.add(`${S}-viewport--gutter`);queueMicrotask(()=>{e?.updateBounds(r.totalSize+o,r.containerSize)}),s.registerMethod("_scrollbar:getInstance",()=>e),s.registerDestroyHandler(()=>{if(e?.destroy(),e=null,l.viewport.classList.remove(`${S}-viewport--custom-scrollbar`),t?.gutter)l.viewport.classList.remove(`${S}-viewport--gutter`)})},hooks:{onAfterScroll(s){let l=r.totalSize+o,E=r.containerSize;if(l!==i||E!==n)i=l,n=E,e?.updateBounds(l,E);e?.updatePosition(s),e?.show()},onResize(){let s=r.totalSize+o,l=r.containerSize;i=s,n=l,e?.updateBounds(s,l)}},destroy(){e?.destroy(),e=null}}}var Zn=(t)=>{try{let e=sessionStorage.getItem(t);if(!e)return;return JSON.parse(e)}catch{return}};function Et(t){let e=t?.autoSave,r=t?.restore??(e?Zn(e):void 0),o=!1,i=null;return{name:"snapshots",priority:50,setup(n){let{sizeCache:s,emitter:l}=n,E=n.getState(),S=()=>{let{scrollPosition:A,totalItems:b}=E,R=n.getMethod("getSelected")?.();if(b===0){let h={index:0,offsetInItem:0,total:0};if(R?.length)h.selectedIds=R;return h}let u=s.indexAtOffset(A),c=A-s.getOffset(u);c=Math.max(0,c);let d={index:u,offsetInItem:c,total:b,scrollTop:A},P=s.getSize(u);if(P)d.offsetRatio=c/P;let _=n.getMethod("_layoutToDataIndex");if(_){let h=_(u);if(h<0){for(let Y=u+1;Y<b;Y++)if(h=_(Y),h>=0)break}if(h>=0)d.dataIndex=h}let v=n.getMethod("_getTotal");if(v)d.dataTotal=v();if(R?.length)d.selectedIds=R;let T=n.getMethod("_getFocusedId");if(T){let h=T();if(h!==void 0)d.focusedId=h}return d};n.registerMethod("getScrollSnapshot",S);let g=(A,b=!0)=>{let{index:F,offsetInItem:R,selectedIds:u,focusedId:c}=A,d=E.totalItems,P=A.dataTotal??A.total;if(d===0&&P&&P>0){let D=n.getMethod("_setTotal");if(D)D(P),d=E.totalItems;s.rebuild(d),n.updateContentSize(s.getTotalSize()),E.totalSize=s.getTotalSize()}if(d===0)return Promise.resolve();if(!Number.isFinite(F)||!Number.isFinite(R))return Promise.resolve();if(s.getTotal()===0)s.rebuild(d),n.updateContentSize(s.getTotalSize()),E.totalSize=s.getTotalSize();let v=n.getMethod("_dataToLayoutIndex"),T=F;if(A.dataIndex!==void 0&&A.dataIndex>=0)T=v?v(A.dataIndex):A.dataIndex;else if(v)T=v(F);let h=Math.max(0,Math.min(T,d-1)),Y=s.getSize(h),G=A.offsetRatio!==void 0?A.offsetRatio*Y:Math.min(R,Y),k=n.getMethod("_getTotal")?.(),j=A.total===d||k!==void 0&&A.dataTotal===k,Z;if(A.scrollTop!==void 0&&j)Z=A.scrollTop;else Z=s.getOffset(h)+G;let ee=Math.max(0,E.totalSize-E.containerSize);if(Z=Math.max(0,Math.min(Z,ee)),n.scrollTo(Z),b&&u?.length){let D=n.getMethod("select");if(D)D(...u)}let ce=n.getMethod("loadVisibleRange"),z=()=>{if(c===void 0)return;let D=n.getMethod("_focusById");if(D)D(c)};return new Promise((D)=>{let M=(w)=>{if(w)z();D()};if(ce){let w=0,B=()=>{if(E.containerSize>0){if(Math.abs(E.scrollPosition-Z)>1)n.scrollTo(Z);ce().then(()=>M(!0),()=>M(!1))}else if(++w<10)requestAnimationFrame(B);else M(!1)};requestAnimationFrame(B)}else{let w=n.getMethod("reload");if(w)requestAnimationFrame(()=>{w().then(()=>M(!0),()=>M(!1))});else requestAnimationFrame(()=>M(!0))}})};n.registerMethod("restoreScroll",g);let O=!!(r&&e);if(n.registerDestroyHandler(()=>{o=!0}),e){i=()=>{if(o||O)return;let d=S();try{sessionStorage.setItem(e,JSON.stringify(d))}catch{}},n.registerMethod("_saveSnapshot",i);let A=0,b=()=>{if(A)return;A=requestAnimationFrame(()=>{if(A=0,i)i()})};l.on("selection:change",b),l.on("focus:change",b);let F=0,R=()=>{if(F=0,i)i()},u=()=>{if(F)clearTimeout(F);F=setTimeout(R,300)};l.on("scroll",u);let c=()=>{i?.()};if(window.addEventListener("beforeunload",c),n.registerDestroyHandler(()=>{if(A)cancelAnimationFrame(A);if(F)clearTimeout(F);window.removeEventListener("beforeunload",c)}),r&&r.total&&r.total>0){let d=n.getMethod("_cancelAutoLoad");if(d)d();let P=n.getMethod("_setTotal");if(P)P(r.total)}}if(r){let A=!0;if(r.selectedIds?.length){let b=n.getMethod("_seedSelection");if(b)b(r.selectedIds),A=!1}queueMicrotask(()=>{if(g(r,A),O=!1,i)i()})}},hooks:{onIdle(){if(i&&!o)i()}},destroy(){o=!0,i=null}}}function Jn(t){let e=[];if(typeof window<"u"&&t.scroll?.element===window)e.push(pt());let r=t.item,o=t.orientation==="horizontal",i=o?r.width!=null:r.height!=null,n=o?r.estimatedWidth!=null:r.estimatedHeight!=null;if(!i&&n)e.push(bt());if(t.adapter)e.push(ht({adapter:t.adapter,...t.loading&&{loading:t.loading}}));if(t.layout==="grid"&&t.grid)e.push(vt(t.grid));if(t.layout==="masonry"&&t.masonry)e.push(St(t.masonry));if(t.groups){let E=t.groups,S=typeof E.headerHeight==="function"?E.headerHeight("",0):E.headerHeight;e.push(Tt({getGroupForIndex:E.getGroupForIndex,...S!==void 0&&{headerHeight:S},...E.headerTemplate!==void 0&&{headerTemplate:E.headerTemplate},...E.sticky!==void 0&&{sticky:E.sticky}}))}if((t.selection?.mode||"none")!=="none")e.push(lt(t.selection));else e.push(lt({mode:"none"}));e.push(xn(!1));let l=t.scroll?.scrollbar||t.scrollbar;if(l!=="none"&&l!=="native"){let E=l&&typeof l==="object"?l:{};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 ti(t){let{factory:e,...r}=t;if(r.scroll?.mode==="synthetic"&&!e)throw Error('vlist/config: synthetic mode requires a factory. Import { createVList } from "vlist/synthetic" and pass it as factory.');return(e??ln)(r,Jn(t))}export{ti as createVListFromConfig,Jn as resolvePlugins};
1
+ var ct=16777216,et=3,Ht="vlist";var tt=50;var kt=50,_t=2,Ft=15,Vt=6,mt=2000,Dt=30000,ft=16000000,nt=150,gt=1,Ot=(e)=>e<0.5?2*e*e:1-(-2*e+2)**2/2,$t=300;var Gt="x",Bt=20,pt="_isPlaceholder",$e="__placeholder_";function ot(e){let{state:t,viewport:r,isX:o,onFrame:i,onIdle:n}=e,s=e.idleTimeout||nt,a=null,R=null;function g(m=o?r.scrollLeft:r.scrollTop){t.prevScrollPosition=t.scrollPosition,t.scrollPosition=m,t.scrollDirection=m>t.prevScrollPosition?1:m<t.prevScrollPosition?-1:0,i(),d()}function d(){if(a!==null)clearTimeout(a);a=setTimeout(()=>{a=null,t.scrollDirection=0,n()},s)}function V(){if(R!==null)cancelAnimationFrame(R),R=null}function F(m,Y,L,S=Ot,h){V();let p=t.scrollPosition,y=typeof m==="function"?m:()=>m,H=y();if(Math.abs(H-p)<1){if(L)L(H);else if(o)r.scrollLeft=H;else r.scrollTop=H;h?.();return}let v=performance.now();function x(D){H=y();let f=D-v,w=Math.min(f/Y,1),M=p+(H-p)*S(w);if(L)L(M);else if(o)r.scrollLeft=M;else r.scrollTop=M;if(!L)g(M);if(w<1)R=requestAnimationFrame(x);else R=null,h?.()}R=requestAnimationFrame(x)}return{attach(){},detach(){if(V(),a!==null)clearTimeout(a),a=null},cancelScroll:V,smoothScrollTo:F,commitScroll:g}}function Nt(e){let{state:t,viewport:r,isX:o,wheelEnabled:i}=e,n=e.scrollTarget??r,s=ot(e),a=s.commitScroll;function R(){let d=o?r.scrollLeft:r.scrollTop;if(Math.abs(d-t.scrollPosition)<0.5)return;a(d)}function g(d){let V;if(o){if(Math.abs(d.deltaX)>Math.abs(d.deltaY))return;let F=r.scrollLeft,m=r.scrollWidth-r.clientWidth;if(V=Math.max(0,Math.min(F+d.deltaY*gt,m)),Math.abs(V-F)<1)return;d.preventDefault(),r.scrollLeft=V}else{let F=r.scrollWidth>r.clientWidth;if(F&&Math.abs(d.deltaX)>Math.abs(d.deltaY))return;if(F&&d.deltaX!==0)d.preventDefault(),r.scrollLeft+=d.deltaX;let m=r.scrollTop,Y=r.scrollHeight-r.clientHeight;if(V=Math.max(0,Math.min(m+d.deltaY*gt,Y)),Math.abs(V-m)<1)return;d.preventDefault(),r.scrollTop=V}a(V)}return{...s,attach(){if(n.addEventListener("scroll",R,{passive:!0}),i)n.addEventListener("wheel",g,{passive:!1})},detach(){if(n.removeEventListener("scroll",R),i)n.removeEventListener("wheel",g);s.detach()}}}var rt={top:0,right:0,bottom:0,left:0},Wt=(e)=>{if(e==null)return rt;if(typeof e==="number")return e===0?rt:{top:e,right:e,bottom:e,left:e};if(e.length===2){let[n,s]=e;return n===0&&s===0?rt:{top:n,right:s,bottom:n,left:s}}let[t,r,o,i]=e;return t===0&&r===0&&o===0&&i===0?rt:{top:t,right:r,bottom:o,left:i}},Yt=(e,t)=>t?e.left+e.right:e.top+e.bottom,qt=(e,t)=>t?e.top+e.bottom:e.left+e.right;function Ut(e){let t={visibleIndices:new Int32Array(e),visibleOffsets:new Float64Array(e),visibleSizes:new Float64Array(e),visibleCount:0,startIndex:0,totalSize:0,capacity:e,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,prevAriaTotal:-1,resizeCapacity(r,o,i=et){if(o<=0||r<=0)return;let n=Math.ceil(r/o)+i*2;if(n<=t.capacity)return;let s=n+8,a=new Int32Array(s),R=new Float64Array(s),g=new Float64Array(s);a.set(t.visibleIndices),R.set(t.visibleOffsets),g.set(t.visibleSizes),t.visibleIndices=a,t.visibleOffsets=R,t.visibleSizes=g,t.capacity=s},clear(){t.visibleCount=0,t.startIndex=0}};return t}var Cn=(e,t)=>{let r=t;return{getOffset:(o)=>o*e,getSize:(o)=>e,indexAtOffset:(o)=>{if(r===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(o/e),r-1))},getTotalSize:()=>r*e,getTotal:()=>r,rebuild:(o)=>{r=o},isVariable:()=>!1}},Mn=(e,t)=>{let r=t,o=new Float64Array(0),i=(s)=>{r=s,o=new Float64Array(s+1),o[0]=0;for(let a=0;a<s;a++)o[a+1]=o[a]+e(a)};i(t);let n=(s)=>{if(r===0)return 0;if(s<=0)return 0;if(s>=o[r])return r-1;let a=0,R=r-1;while(a<R){let g=a+R+1>>>1;if(o[g]<=s)a=g;else R=g-1}return a};return{getOffset:(s)=>{if(s<=0)return 0;if(s>=r)return o[r];return o[s]},getSize:(s)=>e(s),indexAtOffset:(s)=>n(s),getTotalSize:()=>o[r]??0,getTotal:()=>r,rebuild:(s)=>i(s),isVariable:()=>!0}},it=(e,t)=>{if(typeof e==="number")return Cn(e,t);return Mn(e,t)};function Kt(e){let t=[],r=`${e}-item`,o=document.createElement("div");return o.className=r,{acquire(){if(t.length>0)return t.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="",t.length<100)t.push(i)},get size(){return t.length},clear(){t.length=0}}}function Ke(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let r=0;r<t.length;r++)t[r].setAttribute("tabindex","-1")}function bt(e){if(typeof e==="string"){let t=document.querySelector(e);if(!t)throw Error(`[vlist] Container not found: ${e}`);return t}return e}function Xt(e,t,r,o){let i=r?`${t} ${t}--horizontal`:t,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",a=' role="list"';if(o)a+=` aria-label="${o.replace(/"/g,"&quot;")}"`;if(r)a+=' aria-orientation="horizontal"';e.insertAdjacentHTML("beforeend",`<div class="${i}"><div class="${t}-viewport" style="${n}" tabindex="-1"><div class="${t}-content" style="${s}"${a}></div></div></div>`);let R=e.lastElementChild,g=R.firstElementChild,d=g.firstElementChild,V=document.createElement("div");return V.className=`${t}-live`,V.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",V.setAttribute("aria-live","polite"),V.setAttribute("aria-atomic","true"),V.setAttribute("role","status"),R.appendChild(V),{root:R,viewport:g,content:d,liveRegion:V}}function Pn(e,t){if(e.getTotal()<=0)return{index:0,offsetPx:0};let o=t<=0?0:t,i=e.indexAtOffset(o),n=o-e.getOffset(i);return{index:i,offsetPx:n>0?n:0}}function zn(e,t){let r=An(e,t);return e.getOffset(r.index)+r.offsetPx}function An(e,t){let r=e.getTotal();if(r<=0)return{index:0,offsetPx:0};let{index:o,offsetPx:i}=t;if(o<0)return{index:0,offsetPx:0};if(o>r-1)o=r-1;while(i>0&&o<r-1){let n=e.getSize(o);if(i<n)break;i-=n,o++}while(i<0&&o>0)o--,i+=e.getSize(o);if(i<0)i=0;return{index:o,offsetPx:i}}function jt(e){let{sizeCache:t,getPixel:r,setPixel:o,getContainerSize:i}=e;function n(){let a=t.getTotalSize()+e.padding-i();return a>0?a:0}function s(a){if(a<=0)return 0;let R=n();return a>R?R:a}return{getLogical(){return Pn(t,r())},setLogical(a){o(s(zn(t,a)))},getPixelEquivalent(){return r()},setPixelEquivalent(a){o(s(a))},getMaxPixelEquivalent:n,getRenderOrigin:e.getRenderOrigin,scrollByPx(a){o(s(r()+a))}}}var Ze=[],wn={calculate:Ze,commit:Ze,afterScroll:Ze,idle:Ze,resize:Ze};function Zt(e){if(e.length===0)return wn;let t=[],r=[],o=[],i=[],n=[];for(let s=0;s<e.length;s++){let a=e[s].hooks;if(a===void 0)continue;if(a.onCalculate!==void 0)t.push(a.onCalculate);if(a.onCommit!==void 0)r.push(a.onCommit);if(a.onAfterScroll!==void 0)o.push(a.onAfterScroll);if(a.onIdle!==void 0)i.push(a.onIdle);if(a.onResize!==void 0)n.push(a.onResize)}return{calculate:t,commit:r,afterScroll:o,idle:i,resize:n}}function Jt(e,t){for(let r=0;r<e.length;r++)e[r](t)}function Qt(e,t){for(let r=0;r<e.length;r++)e[r](t)}function ht(e,t,r){for(let o=0;o<e.length;o++)e[o](t,r)}function en(e){for(let t=0;t<e.length;t++)e[t]()}function tn(e,t,r){for(let o=0;o<e.length;o++)e[o](t,r)}function nn(e,t,r,o,i,n,s,a){let R=o!==0||i!==0;return{prefix:e,selectedClass:`${e}-item--selected`,focusedClass:`${e}-item--focused`,placeholderClass:`${e}-item--placeholder`,replacedClass:`${e}-item--replaced`,translateProp:t?"translateX(":"translateY(",sizeProp:t?"width":"height",itemRole:"listitem",interactive:!1,startPadding:r,gap:s,hasCrossPad:R,crossStartProp:R?t?"top":"left":"",crossEndProp:R?t?"bottom":"right":"",crossStartVal:R?o+"px":"",crossEndVal:R?i+"px":"",oddClass:n,emitter:a??null,indexMap:null,ariaTotalFn:null}}function Rn(e,t,r,o,i){if(e.containerSize<=0||e.totalItems===0)return e.clear(),!0;let{scrollPosition:n,containerSize:s,totalItems:a}=e,R=i??0;e.totalSize=t.getTotalSize();let g=t.indexAtOffset(R>0?Math.max(0,n-R):n),d=t.indexAtOffset(n+s);if(d<a-1)d++;g=Math.max(0,g),d=Math.min(a-1,Math.max(0,d));let V=Math.max(0,g-r),F=Math.min(a-1,d+r),m=Math.ceil(s/1)+r*2+10,Y=F-V+1,L=Math.min(Y,e.capacity,m);if(V===e.prevRangeStart&&F===e.prevRangeEnd&&!e.renderPending&&e.baseOffset===e.prevBaseOffset)return!1;e.visibleCount=L,e.startIndex=V;for(let S=0;S<L;S++){let h=V+S;e.visibleIndices[S]=h,e.visibleOffsets[S]=t.getOffset(h),e.visibleSizes[S]=t.getSize(h)}return Jt(o.calculate,e),e.prevRangeStart=V,e.prevRangeEnd=F,e.prevBaseOffset=e.baseOffset,e.renderPending=!1,!0}var De={selected:!1,focused:!1};function Hn(e,t,r){for(let o=0;o<t;o++)if(e[o]===r)return!0;return!1}function kn(e,t){if(t<=1)return!0;let r=e[0];for(let o=1;o<t;o++){let i=e[o];if(i!==r+1)return!1;r=i}return!0}function _n(e,t,r,o,i,n,s,a,R,g){let d=R?null:i(),{visibleCount:V,visibleIndices:F}=e,m=s.ariaTotalFn?s.ariaTotalFn():e.totalItems,Y=s.interactive?String(m):"",L=s.interactive&&m!==e.prevAriaTotal,S=null,h=s.indexMap;for(let p=0;p<V;p++){let y=F[p],H=h?h(y):y,v=e.visibleOffsets[p],x=e.visibleSizes[p],D=R?R(y):d[y];if(g)g(H,De);else De.selected=!1,De.focused=!1;let f=n.get(y),w=f;if(f===void 0){let M=t.acquire();if(D!==void 0){let te;try{te=o(D,H,De)}catch(ue){if(s.emitter)s.emitter.emit("error",{error:ue instanceof Error?ue:Error(String(ue)),context:`template:render:${H}`});t.release(M);continue}if(typeof te==="string")M.innerHTML=te;else M.textContent="",M.appendChild(te);Ke(M)}if(M.setAttribute("role",s.itemRole),M.setAttribute("data-index",String(H)),s.interactive)M.id=s.prefix+"-item-"+y,M.setAttribute("aria-posinset",String(H+1)),M.setAttribute("aria-setsize",Y);if(D!==void 0){let te=String(D.id);if(M.setAttribute("data-id",te),te.startsWith($e))M.classList.add(s.placeholderClass)}if(s.hasCrossPad)M.style.setProperty(s.crossStartProp,s.crossStartVal),M.style.setProperty(s.crossEndProp,s.crossEndVal);if(g){if(M.classList.toggle(s.selectedClass,De.selected),M.classList.toggle(s.focusedClass,De.focused),De.selected)M.setAttribute("aria-selected","true");else M.removeAttribute("aria-selected");M._lastSelected=De.selected,M._lastFocused=De.focused}if(s.oddClass)M.classList.toggle(s.oddClass,(y&1)===1);let q=v-e.baseOffset+s.startPadding;M.style.transform=s.translateProp+q+"px)",M._lastOffset=q;let ne=x-s.gap;if(M.style[s.sizeProp]=ne+"px",M._lastSize=ne,M._lastItem=D,n.set(y,M),S===null)S=document.createDocumentFragment();S.appendChild(M)}else{if(L)f.setAttribute("aria-setsize",Y);if(D!==void 0&&w._lastItem!==D){let ne=f.getAttribute("data-id"),te=String(D.id),ue;try{ue=o(D,H,De)}catch(fe){if(s.emitter)s.emitter.emit("error",{error:fe instanceof Error?fe:Error(String(fe)),context:`template:render:${H}`});continue}if(typeof ue==="string")f.innerHTML=ue;else f.textContent="",f.appendChild(ue);if(Ke(f),f.setAttribute("data-id",te),w._lastItem=D,ne!==te){let fe=ne!==null&&ne.startsWith($e),j=te.startsWith($e);if(fe!==j)f.classList.toggle(s.placeholderClass,j);if(fe&&!j)f.classList.add(s.replacedClass),setTimeout(()=>{f.classList.remove(s.replacedClass)},300)}}if(g){if(w._lastSelected!==De.selected){if(f.classList.toggle(s.selectedClass,De.selected),De.selected)f.setAttribute("aria-selected","true");else f.removeAttribute("aria-selected");w._lastSelected=De.selected}if(w._lastFocused!==De.focused)f.classList.toggle(s.focusedClass,De.focused),w._lastFocused=De.focused}let M=v-e.baseOffset+s.startPadding;if(w._lastOffset!==M)f.style.transform=s.translateProp+M+"px)",w._lastOffset=M;let q=x-s.gap;if(w._lastSize!==q)f.style[s.sizeProp]=q+"px",w._lastSize=q}}if(S!==null)r.appendChild(S);if(V>0&&kn(F,V)){let p=F[0],y=F[V-1];for(let[H,v]of n)if(H<p||H>y)v.remove(),t.release(v),n.delete(H)}else for(let[p,y]of n)if(!Hn(F,V,p))y.remove(),t.release(y),n.delete(p);if(s.interactive)e.prevAriaTotal=e.totalItems;Qt(a.commit,e)}function St(e,t,r,o,i,n,s,a,R,g,d,V){if(Rn(e,t,r,g,R.startPadding))_n(e,o,i,n,s,a,R,g,d,V)}var vt=()=>{let e={},t=(n,s)=>{if(!e[n])e[n]=new Set;return e[n].add(s),()=>r(n,s)},r=(n,s)=>{e[n]?.delete(s)};return{on:t,off:r,emit:(n,s)=>{e[n]?.forEach((a)=>{try{a(s)}catch(R){console.error(`[vlist] Error in event handler for "${String(n)}":`,R)}})},clear:(n)=>{if(n)delete e[n];else for(let s in e)delete e[s]}}};var on=2,rn=(e=0)=>({velocity:0,sampleCount:0}),sn=(e,t)=>{let r=performance.now(),o=e._lt??r,i=e._lp??t,n=r-o;if(e._lp=t,e._lt=r,n===0)return e.sampleCount=Math.min(e.sampleCount+1,5),e;if(n>100)return e.velocity=0,e.sampleCount=1,e;return e.velocity=Math.abs(t-i)/n,e.sampleCount=Math.min(e.sampleCount+1,5),e};function Fn(e){let{item:t}=e;if(t.height!==void 0&&typeof t.height==="number"){if(!Number.isFinite(t.height)||t.height<=0)throw Error(`vlist: item.height must be a positive number, got ${t.height}`)}if(t.width!==void 0&&typeof t.width==="number"){if(!Number.isFinite(t.width)||t.width<=0)throw Error(`vlist: item.width must be a positive number, got ${t.width}`)}if(t.estimatedHeight!==void 0){if(!Number.isFinite(t.estimatedHeight)||t.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${t.estimatedHeight}`)}if(t.estimatedWidth!==void 0){if(!Number.isFinite(t.estimatedWidth)||t.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${t.estimatedWidth}`)}if(t.gap!==void 0){if(typeof t.gap!=="number"||!Number.isFinite(t.gap)||t.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${t.gap}`)}if(e.overscan!==void 0){if(typeof e.overscan!=="number"||!Number.isFinite(e.overscan)||e.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${e.overscan}`)}let r=e.scroll;if(r?.mode!==void 0||r?.runway!==void 0)throw Error('vlist 3.0: scroll.mode and scroll.runway were removed; bounded mode is gone. Use "vlist/synthetic" for huge lists or "vlist" for native scrolling.')}function Vn(e,t){let r=e==="horizontal"?"x":"y";if(t.some((i)=>i.name==="grid"))return{primary:r,cross:r==="x"?"y":"x"};return{primary:r}}function Dn(e,t){let r=Vn(e.orientation,t),o=r.primary==="x",i=Wt(e.padding);return{axis:r,hasCrossAxis:r.cross!==void 0,overscan:e.overscan??et,reverse:e.reverse??!1,classPrefix:e.classPrefix??Ht,mainAxisPadding:Yt(i,o),crossAxisPadding:qt(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:e.item.striped||!1,gap:e.item.gap??0}}function On(e,t){if(t)return e.item.width??e.item.estimatedWidth??100;return e.item.height??e.item.estimatedHeight??40}function $n(e){let t=[...e];return t.sort((r,o)=>(r.priority??50)-(o.priority??50)),t}function Gn(e){let t=new Set;for(let r of e){if(t.has(r.name))throw Error(`[vlist] Duplicate plugin: ${r.name}`);t.add(r.name)}for(let r of e)if(r.conflicts){for(let o of r.conflicts)if(t.has(o))throw Error(`[vlist] Plugin "${r.name}" conflicts with "${o}"`)}}function ln(e,t=[]){let r=!1;return Bn(e,t,void 0,{native:Nt,onContentSize(o,i){if(!r&&o>ft)r=!0,i.emit("error",{error:Error(`Content size (${o}px) exceeds browser limit (${ft}px). Use "vlist/synthetic" for large datasets.`),context:"content:size:overflow"})}})}function Bn(e,t=[],r,o){if(Fn(e),r){if(typeof e.scroll?.scrollbar==="string")throw Error('vlist 3.0: scroll.scrollbar strings require "vlist"; use the scrollbar() plugin with "vlist/synthetic".');if(e.orientation==="horizontal"&&getComputedStyle(bt(e.container)).direction==="rtl")throw Error('vlist: RTL horizontal lists require createVList from "vlist"');for(let O of t)if(O.name==="carousel"||O.name==="sortable")throw Error(`vlist: ${O.name} requires createVList from "vlist"`)}let i=Dn(e,t),n=i.axis.primary==="x",s=On(e,n),a=i.gap,R=a>0?typeof s==="function"?(O)=>s(O)+a:s+a:s,g=typeof s==="number"?s:20,d=e.items?.length??0,V=i.striped?`${i.classPrefix}-item--odd`:"",F=vt(),m=nn(i.classPrefix,n,i.startPadding,i.crossPadStart,i.crossPadEnd,V,a,F),Y=t.length>0?$n(t):t;if(t.length>0)Gn(Y);let L=bt(e.container),S=Xt(L,i.classPrefix,n,e.ariaLabel);if(e.scroll?.scrollbar==="none")S.viewport.classList.add(`${i.classPrefix}-viewport--no-scrollbar`);if(e.scroll?.gutter==="stable")S.viewport.classList.add(`${i.classPrefix}-viewport--gutter-stable`);let p=it(R,d);if(a>0){let O=p.getTotalSize;p.getTotalSize=()=>{let b=O();return b>0?b-a:0}}let y=Kt(i.classPrefix),H=Math.ceil(4096/g)+i.overscan*2+8,v=Ut(H);v.totalItems=d;let x=e.items??[],D=()=>x,f=new Map,w=rn(),M={velocity:0,reliable:!1},q={range:{start:0,end:-1}},ne={scrollPosition:0,direction:"down"},te={scrollPosition:0},ue=-1,fe=-1,j=-1,I=null,C=Zt(Y),G=new Map,T=[],l=[],B=[],k=null,N=null,U,be,_=null,X=null,E=null,P=null,c=null,W=null,z=null,A=null,oe=!1,Z=!1,le=null,ce=0,se=0,he=null,K=null,Q=null,u=null,J=null,de=null,ae=null,Ie=null,xe=null,pe=null;v.containerSize=n?S.viewport.clientWidth:S.viewport.clientHeight,v.crossSize=n?S.viewport.clientHeight:S.viewport.clientWidth;function ye(O){if(N)N(O);else{if(n)S.viewport.scrollLeft=O;else S.viewport.scrollTop=O;be?.()}}let Te=jt({sizeCache:p,getPixel:()=>v.scrollPosition,setPixel:ye,getRenderOrigin:()=>v.baseOffset,getContainerSize:()=>v.containerSize,padding:i.mainAxisPadding});if(t.length>0){let O={dom:S,sizeCache:p,scroll:Te,pool:y,config:i,emitter:F,template:e.item.template,registerMethod(b,ge){G.set(b,ge)},getMethod(b){return G.get(b)},registerClickHandler(b){T.push(b)},registerKeydownHandler(b){l.push(b)},registerDestroyHandler(b){B.push(b)},enableListboxRole(){let b=S.content.getAttribute("role");if(!b||b==="list")S.content.setAttribute("role","listbox"),S.content.setAttribute("tabindex","0");m.itemRole="option",m.interactive=!0},setSizeConfig(b){let ge=it(b,v.totalItems),Ae=G.get("_setSizeCacheBase");if(Ae){let ke=p.rebuild;Object.assign(p,ge),p.rebuild=ke,Ae(ge.rebuild)}else Object.assign(p,ge)},setScrollSource(b){N=b.write,U=b.onContentSize,oe=!0},commitScroll(b){be(b)},setBoundedWrap(b,ge){xe=b,pe=ge},cancelScroll(){Oe?.cancelScroll()},setVirtualTotalFn(b){k=b,m.ariaTotalFn=b},setIndexMapFn(b){m.indexMap=b},getItems:D,getItem(b){return E?E(b):x[b]},getState(){return v},rebuildSizeCache(){p.rebuild(v.totalItems)},updateContentSize:me,setRenderFn(b,ge){_=b,X=ge},renderIfNeeded(){ie()},forceRender(){Pe()},setGetItemFn(b){E=b},setItemStateFn(b){P=b},getItemStateFn(){return P},get rawSizeSpec(){return s},scrollTo:ye,shiftScroll(b){if(Ie?.shiftBy)Ie.shiftBy(b);else O.scrollTo(v.scrollPosition+b)},smoothScrollTo(b,ge,Ae,ke){if(u)u(b,ge,N??void 0,Ae,ke);else O.scrollTo(typeof b==="function"?b():b)},disableDefaultResize(){Z=!0},setScrollTarget(b){le=b},setScrollToPosFn(b){J=b},setScrollToIndexFn(b){de=b},onScrollFrame:ve,onScrollIdle:we,removeItemById(b){if(c)return c(b);let ge=x.findIndex((Ae)=>Ae.id===b);if(ge===-1)return-1;return x.splice(ge,1),v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),ge},insertItemAt(b,ge){if(W){W(b,ge);return}x.splice(ge,0,b),v.totalItems=x.length,p.rebuild(v.totalItems),Ce()},setRemoveItemFn(b){c=b},setInsertItemFn(b){W=b},setUpdateItemFn(b){z=b},setGetIndexByIdFn(b){A=b},getRenderedElement(b){let ge=G.get("_getRenderedElement");if(ge)return ge(b);return f.get(b)??null},setNavConfig(b){if(b.ud!==void 0)ce=b.ud;if(b.lr!==void 0)se=b.lr;if(b.scrollIndex)he=b.scrollIndex;if(b.navigate)K=b.navigate;if(b.total)Q=b.total},getNavConfig:(()=>{let b={ud:0,lr:0,scrollIndex:null,navigate:null,total:null};return()=>(b.ud=ce,b.lr=se,b.scrollIndex=he,b.navigate=K,b.total=Q,b)})()};for(let b of Y)if(b.setup)try{b.setup(O)}catch(ge){F.emit("error",{error:ge instanceof Error?ge:Error(String(ge)),context:`plugin:setup:${b.name}`})}}let Me=i.classPrefix+"--scrolling",Se=!1,Ee=e.scroll?.idleTimeout??nt;function re(){if(ne.scrollPosition=v.scrollPosition,n)ne.direction=v.scrollDirection>0?"right":"left";else ne.direction=v.scrollDirection>0?"down":"up";if(F.emit("scroll",ne),sn(w,v.scrollPosition),M.velocity=w.velocity,M.reliable=w.sampleCount>=on,F.emit("velocity:change",M),v.startIndex!==ue||v.prevRangeEnd!==fe)ue=v.startIndex,fe=v.prevRangeEnd,q.range.start=v.startIndex,q.range.end=v.prevRangeEnd,F.emit("range:change",q)}function me(O,b=!0){if(Ie){if(b)Ie.refresh(O);return}v.totalSize=O;let ge=O+i.mainAxisPadding;if(U?.(ge),b)S.content.style[n?"width":"height"]=ge+"px"}function Ce(){let O=_?v.totalSize:p.getTotalSize();if(me(O,!_),Ie||_)return;o?.onContentSize(O,F)}function Re(){if(!ae)return;if((k?k():x.length)===0)return;let b=ae;ae=null,ze.scrollToIndex(b.index,b.alignOrOptions)}function ie(){if(Re(),_)_();else St(v,p,i.overscan,y,S.content,e.item.template,D,f,m,C,E,P)}function ve(){if(!Se)Se=!0,S.root.classList.add(Me);if(ie(),ht(C.afterScroll,v.scrollPosition,v.scrollDirection),v.scrollPosition!==j)j=v.scrollPosition,re()}function we(){if(Se)Se=!1,S.root.classList.remove(Me);v.scrollDirection=0,en(C.idle),M.velocity=0,M.reliable=!1,F.emit("velocity:change",M),te.scrollPosition=v.scrollPosition,F.emit("scroll:idle",te)}function Pe(){if(Re(),v.renderPending=!0,X)X();else St(v,p,i.overscan,y,S.content,e.item.template,D,f,m,C,E,P);if(ht(C.afterScroll,v.scrollPosition,v.scrollDirection),v.scrollPosition!==j){if(j=v.scrollPosition,re(),I!==null)clearTimeout(I);I=setTimeout(we,Ee)}}let _e=oe?!1:e.scroll?.wheel!==!1,Oe;if(oe&&xe)throw Error("vlist: page() is not compatible with the carousel plugin — bounded page-mode scrolling is not implemented yet.");if(!oe&&(r||xe))Ie=(r??pe)({state:v,sizeCache:p,viewport:S.viewport,content:S.content,isX:n,wheelEnabled:_e,idleTimeout:Ee,...le?{scrollTarget:le}:{},mainAxisPadding:i.mainAxisPadding,...xe?{wrap:xe}:{},onFrame:ve,onIdle:we}),Oe=Ie,N=(O)=>Ie.setLogical(O);else{let O=(oe?ot:o.native)({state:v,viewport:S.viewport,isX:n,wheelEnabled:_e,idleTimeout:Ee,...le?{scrollTarget:le}:{},onFrame:ve,onIdle:we});Oe=O,be=O.commitScroll}u=Oe.smoothScrollTo;function Fe(O){let ge=O.target.closest("[data-index]");if(!ge)return null;let Ae=parseInt(ge.getAttribute("data-index"),10);if(Number.isNaN(Ae))return null;let ke=G.get("_layoutToDataIndex"),Ge;if(ke){let Be=ke(Ae);if(Be<0)return null;let je=G.get("_getItem");Ge=je?je(Be):E?E(Be):x[Be]}else Ge=E?E(Ae):x[Ae];if(Ge===void 0)return null;return{item:Ge,index:Ae}}function Ne(O){for(let ge=0;ge<T.length;ge++)T[ge](O);let b=Fe(O);if(b)F.emit("item:click",{item:b.item,index:b.index,event:O})}function We(O){let b=Fe(O);if(b)F.emit("item:dblclick",{item:b.item,index:b.index,event:O})}function He(O){let b=Fe(O);if(b)F.emit("item:contextmenu",{item:b.item,index:b.index,event:O})}function Ve(O){let b=O.target?.tagName;if((b==="INPUT"||b==="TEXTAREA"||b==="SELECT")&&!((O.ctrlKey||O.metaKey)&&(O.key==="f"||O.key==="F")))return;for(let ge=0;ge<l.length;ge++)l[ge](O)}if(S.content.addEventListener("click",Ne),S.content.addEventListener("dblclick",We),S.content.addEventListener("contextmenu",He),l.length>0)S.root.addEventListener("keydown",Ve);let ee=null;if(!Z)setTimeout(()=>{if(v.destroyed)return;ee=new ResizeObserver((b)=>{for(let ge of b){let{width:Ae,height:ke}=ge.contentRect,Ge=n?Ae:ke,Be=n?ke:Ae;if(Math.abs(Ge-v.containerSize)<1&&Math.abs(Be-v.crossSize)<1)continue;if(v.containerSize=Ge,v.crossSize=Be,v.resizeCapacity(Ge,g,i.overscan),Ie)Ie.refresh(p.getTotalSize());Pe(),tn(C.resize,Ae,ke),F.emit("resize",{width:Ae,height:ke})}}),ee.observe(S.viewport)},0);v.resizeCapacity(v.containerSize,g,i.overscan),Ce(),v.initialized=!0;let Le=null;if(e.defer)Le=requestAnimationFrame(()=>{if(Le=null,!v.destroyed)ie()});else ie();if(!oe)Oe.attach();let ze={get element(){return S.root},get items(){return x},get total(){return k?k():x.length},setItems(O){x=[...O],v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),Pe()},appendItems(O){x.push(...O),v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),Pe()},prependItems(O){x.unshift(...O),v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),Pe()},updateItem(O,b){if(z){if(!z(O,b))return}else{let ge=x.findIndex((Ae)=>Ae.id===O);if(ge===-1)return;x[ge]={...x[ge],...b}}Pe()},insertItem(O,b){if(W)W(O,b??v.totalItems);else{if(b===void 0)x.push(O);else x.splice(b,0,O);v.totalItems=x.length,p.rebuild(v.totalItems),Ce()}Pe()},removeItem(O){if(c){if(c(O)<0)return}else{let b=x.findIndex((ge)=>ge.id===O);if(b===-1)return;x.splice(b,1),v.totalItems=x.length,p.rebuild(v.totalItems),Ce()}Pe()},removeItems(O){if(c){let ke=0;for(let Ge of O)if(c(Ge)>=0)ke++;if(ke>0)Pe();return ke}let b=new Set(O),ge=x.length;x=x.filter((ke)=>!b.has(ke.id));let Ae=ge-x.length;if(Ae>0)v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),v.renderPending=!0,ie();return Ae},getItemAt(O){if(m.indexMap)return x[O];return E?E(O):x[O]},getIndexById(O){if(A)return A(O);return x.findIndex((b)=>b.id===O)},scrollToIndex(O,b="start"){let ge=k?k():x.length;if(ge===0){ae={index:O,alignOrOptions:b};return}let Ae=Math.max(0,Math.min(O,ge-1)),ke=typeof b==="string"?b:b.align??"start",Ge=typeof b==="object"?b.behavior:void 0,Be=typeof b==="object"?b.duration:void 0,je=typeof b==="object"?b.easing:void 0;if(de&&de(Ae,ke,Ge,Be,je)!==!1)return;let ut=p.getOffset(Ae),wt=p.getSize(Ae),Qe=v.containerSize,xn=p.getTotalSize(),Rt=i.mainAxisPadding,Ln=Math.max(0,xn+Rt-Qe),Ye;if(J)Ye=J(Ae,p,Qe,ge,ke);else{let En=i.startPadding;switch(ke){case"center":Ye=En+ut-(Qe-wt)/2;break;case"end":Ye=ut+wt+Rt-Qe;break;default:Ye=ut}Ye=Math.max(0,Math.min(Ye,Ln))}if(Ge==="smooth")Oe.smoothScrollTo(Ye,Be??$t,N??void 0,je);else ye(Ye)},getScrollPosition(){return Te.getPixelEquivalent()},on:F.on.bind(F),off:F.off.bind(F),destroy(){if(v.destroyed)return;if(v.destroyed=!0,Se)Se=!1,S.root.classList.remove(Me);if(Le!==null)cancelAnimationFrame(Le),Le=null;if(I!==null)clearTimeout(I),I=null;Oe.detach(),ee?.disconnect(),S.content.removeEventListener("click",Ne),S.content.removeEventListener("dblclick",We),S.content.removeEventListener("contextmenu",He),S.root.removeEventListener("keydown",Ve);let O=[];for(let b of B)try{b()}catch(ge){O.push(ge instanceof Error?ge:Error(String(ge)))}for(let b of Y)if(b.destroy)try{b.destroy()}catch(ge){O.push(ge instanceof Error?ge:Error(String(ge)))}for(let[,b]of f)b.remove();if(f.clear(),y.clear(),S.root.remove(),F.emit("destroy",void 0),F.clear(),O.length>0)for(let b of O)console.error("vlist: error during destroy:",b)}};for(let[O,b]of G)ze[O]=b;return ze}var st=(e)=>e==null?0:typeof e==="function"?e():e;function yt(e){let t=e?.scrollPadding,r,o;return{name:"page",priority:5,setup(i){let{dom:n,sizeCache:s,config:a,emitter:R}=i,g=a.axis.primary==="x",d=window,V=i.getState();if(i.disableDefaultResize(),n.root.style.overflow="visible",n.root.style.height="auto",g)n.viewport.style.overflowX="visible",n.viewport.style.overflowY="visible";else n.viewport.style.overflow="visible";n.viewport.classList.remove(`${a.classPrefix}-viewport--custom-scrollbar`);let F=!1,m=!1;i.setScrollSource({onContentSize(p){if(p>ct&&!m){let y=`vlist: page() native document size ${p}px exceeds the ${ct}px limit. Use the viewport-scrolled default for larger lists. See https://vlist.io/docs/rfcs/RFC-014-Scroll-Input-Model`;if(!F)throw o?.(),r?.(),n.root.remove(),Error(y);m=!0,console.warn(y)}F=!0},write(p){let y=n.viewport.getBoundingClientRect(),H=(g?y.left+d.scrollX:y.top+d.scrollY)+p;if(g)d.scrollTo({left:H,top:d.scrollY,behavior:"instant"});else d.scrollTo({left:d.scrollX,top:H,behavior:"instant"});i.commitScroll(p)}}),V.containerSize=g?d.innerWidth:d.innerHeight,V.crossSize=g?d.innerHeight:d.innerWidth;let Y=()=>{let p=n.viewport.getBoundingClientRect(),y=Math.max(0,g?-p.left:-p.top);if(Math.abs(y-i.scroll.getPixelEquivalent())<0.5)return;i.commitScroll(y)};d.addEventListener("scroll",Y,{passive:!0}),o=()=>d.removeEventListener("scroll",Y);let{innerWidth:L,innerHeight:S}=d,h=()=>{let{innerWidth:p,innerHeight:y}=d;if((g?Math.abs(p-L):Math.abs(y-S))<1)return;L=p,S=y,V.containerSize=g?p:y,V.crossSize=g?y:p,i.forceRender(),R.emit("resize",{width:p,height:y})};if(d.addEventListener("resize",h),r=()=>d.removeEventListener("resize",h),t)i.setScrollToPosFn((p,y,H,v,x)=>{let D=st(g?t.left:t.top),f=st(g?t.right:t.bottom);if(v===0)return 0;let w=Math.max(0,Math.min(p,v-1)),M=y.getOffset(w),q=y.getSize(w),ne=y.getTotalSize(),te=Math.max(0,ne-H+f),ue;switch(x){case"center":ue=M-D-(H-D-f-q)/2;break;case"end":ue=M-H+q+f;break;default:ue=M-D}return Math.max(-D,Math.min(ue,te))}),i.registerMethod("_scrollItemIntoView",(p)=>{let y=g?d.innerWidth:d.innerHeight,H=st(g?t.left:t.top),v=st(g?t.right:t.bottom),x=n.viewport.getBoundingClientRect(),D=g?d.scrollX:d.scrollY,f=g?x.left:x.top,w=f+D,M=s.getOffset(p),q=s.getSize(p),ne=f+M,te=y-v,ue=D;if(ne<H)ue=w+M-H;else if(ne+q>te)ue=w+M+q-te;if(ue!==D)if(g)d.scrollTo({left:ue,top:d.scrollY,behavior:"instant"});else d.scrollTo({left:d.scrollX,top:ue,behavior:"instant"})});i.registerDestroyHandler(()=>{o?.(),r?.()})},destroy(){o?.(),r?.(),o=void 0,r=void 0}}}function It(e){let t=e?.gap??0,r=null,o=null,i,n,s,a,R,g=new Map,d=new Set,V=new WeakMap,F=0,m=!1,Y=!1,L=!1,S=2;function h(f){return g.get(f)??R}function p(f){return g.has(f)&&!d.has(f)}function y(f){if(!o||i.destroyed)return;if(f===void 0){if(g.size===0)return;g.clear(),d.clear(),o.rebuildSizeCache(),D()}else{if(!g.has(f))return;d.add(f)}o.forceRender()}function H(){return Math.max(0,o.sizeCache.getTotalSize()+o.config.mainAxisPadding-i.containerSize)}function v(){let f=H();return f>0&&n.getPixelEquivalent()>=f-S}function x(){let f=H();if(f>n.getPixelEquivalent())o.scrollTo(f)}function D(){o.updateContentSize(o.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(f){if(n=f.scroll,o=f,i=f.getState(),s=f.config.axis.primary==="x",a=s?"width":"height",t===0)t=f.config.gap;if(R=typeof f.rawSizeSpec==="function"?f.rawSizeSpec(0)+t:f.rawSizeSpec+t,f.setSizeConfig(h),t>0){let te=f.sizeCache.getTotalSize;f.sizeCache.getTotalSize=()=>{let ue=te();return ue>0?ue-t:0}}r=new ResizeObserver((te)=>{if(i.destroyed||!o)return;let ue=!1,fe=f.sizeCache.indexAtOffset(n.getPixelEquivalent());for(let T of te){let l=T.target,B=V.get(l);if(B===void 0)continue;if(l.getAttribute("data-index")!==String(B)){r.unobserve(l);continue}if(p(B))continue;let k=T.borderBoxSize[0];if(!k)continue;let N=s?k.inlineSize:k.blockSize;if(N<=0)continue;let U=N+t,be=g.has(B),_=g.get(B)??R;if(g.set(B,U),d.delete(B),!be||U!==_)ue=!0;if(B<fe&&U!==_)F+=U-_;r.unobserve(l),l.style[a]=`${N}px`}if(!ue)return;let j=v();if(f.rebuildSizeCache(),F)f.shiftScroll(F),F=0;let I=i.scrollDirection!==0,C=i.totalItems>0&&i.prevRangeEnd>=i.totalItems-1,G=Y&&!L;if(G||j||C||!I){if(D(),m=!1,G||j)x()}else m=!0;f.forceRender()}),f.setScrollToIndexFn((te,ue,fe,j,I)=>{let C=te>=i.totalItems-1&&ue==="end";if(Y=C,L=!1,!C)return!1;let G=f.config.mainAxisPadding,T=()=>{let l=f.sizeCache.getTotalSize();return Math.max(0,l+G-i.containerSize)};if(fe==="smooth")L=!0,f.smoothScrollTo(T,j??300,I,()=>{L=!1});else f.scrollTo(T())});let w=()=>{Y=!1},M=f.dom.viewport;M.addEventListener("wheel",w,{passive:!0}),M.addEventListener("touchstart",w,{passive:!0}),f.registerDestroyHandler(()=>{M.removeEventListener("wheel",w),M.removeEventListener("touchstart",w)});let q=f.dom.content,ne=(te)=>{let ue=te.target;if(!ue||ue===q)return;let fe=ue.closest("[data-index]");if(!fe||fe.parentNode!==q)return;let j=Number(fe.getAttribute("data-index"));if(p(j))y(j)};q.addEventListener("load",ne,!0),q.addEventListener("error",ne,!0),f.registerDestroyHandler(()=>{q.removeEventListener("load",ne,!0),q.removeEventListener("error",ne,!0)}),f.registerMethod("isMeasured",p),f.registerMethod("remeasure",y),f.registerMethod("setMeasuredSize",(te,ue)=>{g.set(te,ue)}),f.registerMethod("getMeasuredCount",()=>g.size),f.registerDestroyHandler(()=>{if(r)r.disconnect(),r=null})},hooks:{onCommit(f){if(!r||!o)return;for(let w=0;w<f.visibleCount;w++){let M=f.visibleIndices[w];if(p(M))continue;let q=o.getRenderedElement(M);if(!q)continue;q.style[a]="",V.set(q,M),r.observe(q)}},onIdle(){if(!o||!m)return;let f=v();if(D(),m=!1,f)x(),o.forceRender()}},destroy(){if(r)r.disconnect(),r=null;g.clear(),d.clear(),Y=!1,L=!1,o=null}}}var an=(e={})=>{let{chunkSize:t=100,maxCachedItems:r=5000,evictionBuffer:o=200,onEvict:i}=e,n=new Map,s=0,a=0,R=(I)=>{let C=n.get(I);if(!C)C={items:Array(t),count:0,lastAccess:Date.now()},n.set(I,C);else C.lastAccess=Date.now();return C},g=(I)=>Math.floor(I/t),d=(I)=>I%t,V=()=>s,F=(I)=>{s=I},m=(I)=>{if(I<0||I>=s)return;let C=g(I),G=n.get(C);if(!G)return;return G.items[d(I)]},Y=(I)=>{if(I<0||I>=s)return!1;let C=g(I),G=n.get(C);if(!G)return!1;return G.items[d(I)]!==void 0},L=(I,C)=>{let G=g(I),T=R(G),l=d(I),B=T.items[l]===void 0;if(T.items[l]=C,B)T.count++,a++;if(I>=s)s=I+1},S=(I,C)=>{for(let G=0;G<C.length;G++){let T=C[G];if(T!==void 0)L(I+G,T)}},h=(I,C)=>{if(I<0||I>s)return;let G=g(I),T=Array.from(n.keys()).filter((U)=>U>=G).sort((U,be)=>U-be),l=[];for(let U of T){let be=n.get(U),_=U*t;for(let X=0;X<t;X++){if(be.items[X]===void 0)continue;let E=_+X;if(E<I)continue;l.push({oldIndex:E,item:be.items[X]})}}for(let{oldIndex:U}of l){let be=g(U),_=n.get(be);if(!_)continue;let X=d(U);if(_.items[X]!==void 0){if(_.items[X]=void 0,_.count--,a--,_.count===0)n.delete(be)}}s++;for(let{oldIndex:U,item:be}of l){let _=U+1,X=g(_),E=R(X),P=d(_);E.items[P]=be,E.count++,a++}let B=g(I),k=R(B),N=d(I);k.items[N]=C,k.count++,a++},p=(I)=>{if(I<0||I>=s)return!1;let C=g(I),G=n.get(C),T=d(I);if(!(G!==void 0&&G.items[T]!==void 0))return!1;let B=C,k=Array.from(n.keys()).filter((U)=>U>=B).sort((U,be)=>U-be),N=[];for(let U of k){let be=n.get(U),_=U*t;for(let X=0;X<t;X++){if(be.items[X]===void 0)continue;let E=_+X;if(E<=I)continue;N.push({oldIndex:E,item:be.items[X]})}}if(G.items[T]=void 0,G.count--,a--,G.count===0)n.delete(C);for(let{oldIndex:U}of N){let be=g(U),_=n.get(be);if(!_)continue;let X=d(U);if(_.items[X]!==void 0){if(_.items[X]=void 0,_.count--,a--,_.count===0)n.delete(be)}}for(let{oldIndex:U,item:be}of N){let _=U-1,X=g(_),E=R(X),P=d(_);E.items[P]=be,E.count++,a++}return s--,!0},y=(I,C)=>{let G=[];for(let T=I;T<=C&&T<s;T++)G.push(m(T));return G},H=(I,C)=>{for(let G=I;G<=C&&G<s;G++)if(!Y(G))return!1;return!0},v=()=>{let I=[],C=null,G=Array.from(n.keys()).sort((T,l)=>T-l);for(let T of G){let l=n.get(T);if(!l)continue;let B=T*t;for(let k=0;k<t;k++){let N=B+k;if(N>=s)break;if(l.items[k]!==void 0)if(C===null)C={start:N,end:N};else if(N===C.end+1)C.end=N;else I.push(C),C={start:N,end:N};else if(C!==null)I.push(C),C=null}}if(C!==null)I.push(C);return I},x=(I,C)=>{let G=[],T=null;for(let l=I;l<=C&&l<s;l++)if(!Y(l))if(T===null)T={start:l,end:l};else T.end=l;else if(T!==null)G.push(T),T=null;if(T!==null)G.push(T);return G},D=(I)=>n.has(I),f=(I)=>{let C=n.get(I);if(!C)return!1;let G=I*t,T=Math.min(t,s-G);return C.count>=T},w=(I)=>{let C=n.get(I);if(C)C.lastAccess=Date.now()},M=(I,C)=>{if(I>C||n.size===0)return;let G=Date.now(),T=g(Math.max(0,I)),l=g(Math.min(s-1,C));for(let B=T;B<=l;B++){let k=n.get(B);if(k)k.lastAccess=G}},q=(I,C)=>{if(a<=r)return 0;let G=Math.max(0,I-o),T=Math.min(s-1,C+o),l=g(G),B=g(T),k=0,N=[];for(let[U,be]of n)if(U<l||U>B)k+=be.count,N.push(U),a-=be.count,n.delete(U);if(k>0&&i)i(k,N);return k},ne=()=>{if(a<=r)return 0;let I=Array.from(n.entries()).sort(([,T],[,l])=>T.lastAccess-l.lastAccess),C=0,G=[];for(let[T,l]of I){if(a<=r)break;C+=l.count,a-=l.count,G.push(T),n.delete(T)}if(C>0&&i)i(C,G);return C},te=()=>({totalItems:s,cachedItems:a,cachedChunks:n.size,chunkSize:t,maxCachedItems:r,memoryEfficiency:s>0?1-a/s:1}),ue=()=>a,fe=()=>{n.clear(),a=0};return{chunkSize:t,maxCachedItems:r,getTotal:V,setTotal:F,get:m,has:Y,set:L,setRange:S,insert:h,delete:p,getRange:y,isRangeLoaded:H,getLoadedRanges:v,findUnloadedRanges:x,getChunkIndex:g,isChunkLoaded:D,isChunkFullyLoaded:f,touchChunk:w,touchChunksForRange:M,evictDistant:q,evictToLimit:ne,getStats:te,getCachedCount:ue,clear:fe,reset:()=>{fe(),s=0}}};var dn=(e={})=>{let{maskCharacter:t=Gt,maxSampleSize:r=Bt}=e,o=[],i=!1,n=(d)=>{if(i||d.length===0)return;let V=Math.min(d.length,r);for(let F=0;F<V;F++){let m=d[F];if(!m||typeof m!=="object")continue;let Y={},L=!1;for(let[S,h]of Object.entries(m)){if(S.startsWith("_")||S==="id")continue;Y[S]=String(h??"").length,L=!0}if(L)o.push(Y)}i=!0},s=()=>i,a=(d)=>{let V={id:`${$e}${d}`,[pt]:!0,_index:d};if(o.length===0)return V.label=t.repeat(12),V;let F=o[d%o.length];for(let[m,Y]of Object.entries(F))V[m]=t.repeat(Math.max(1,Y));return V};return{analyzeStructure:n,hasAnalyzedStructure:s,generate:a,generateRange:(d,V)=>{let F=[];for(let m=d;m<=V;m++)F.push(a(m));return F},clear:()=>{o=[],i=!1}}},lt=(e)=>{if(!e||typeof e!=="object")return!1;return e[pt]===!0};var Nn=50,un=(e={})=>{let{adapter:t,initialItems:r,initialTotal:o,storage:i,placeholder:n,pageSize:s=Nn,maxConcurrent:a=0,onStateChange:R,onDataChange:g,onItemsLoaded:d,onItemsEvicted:V,onLoadError:F}=e,m=an({...i,onEvict:(K,Q)=>{V?.(K),q(),M()}}),Y=null,L=()=>{if(!Y)Y=dn(n);return Y},S=new Map,h=!1,p,y=!0,H,v,x=[],D=0,f=new Map,w=()=>{for(let K of f.values())K[1].abort();f.clear()},M=()=>{R?.(T())},q=()=>{g?.()},ne=()=>{S.clear();let K=m.getLoadedRanges();for(let Q of K)for(let u=Q.start;u<=Q.end;u++){let J=m.get(u);if(J&&!lt(J))S.set(J.id,u)}},te=(K,Q)=>{if(!lt(Q))S.set(Q.id,K)},ue=(K)=>{S.delete(K)},fe=(K,Q)=>`${K}-${Q}`,j=()=>m.getTotal(),I=()=>m.getCachedCount(),C=()=>h,G=()=>y,T=()=>({total:m.getTotal(),cached:m.getCachedCount(),isLoading:h,pendingRanges:x,error:p,hasMore:y,cursor:H}),l=()=>m,B=()=>L(),k=(K)=>{let Q=m.get(K);if(Q!==void 0)return Q;if(K>=0&&K<m.getTotal())return L().generate(K);return},N=(K)=>{let Q=S.get(K);if(Q===void 0)return;return m.get(Q)},U=(K)=>S.get(K)??-1,be=(K)=>{let Q=m.get(K);return Q!==void 0&&!lt(Q)},_=(K,Q)=>{let u=[],J=m.getTotal();m.touchChunksForRange(K,Math.min(Q,J-1));for(let de=K;de<=Q&&de<J;de++){let ae=m.get(de);if(ae!==void 0)u.push(ae);else u.push(L().generate(de))}return u},X=(K)=>{m.setTotal(K),y=m.getCachedCount()<K,q(),M()},E=(K,Q=0,u)=>{if(t&&K.length>0){let J=L();if(!J.hasAnalyzedStructure())J.analyzeStructure(K)}for(let J=0;J<K.length;J++){let de=K[J];if(de!==void 0){let ae=Q+J;m.set(ae,de),te(ae,de)}}if(u!==void 0)m.setTotal(u);else if(Q+K.length>m.getTotal())m.setTotal(Q+K.length);if(m.getCachedCount()>=m.getTotal()&&m.getTotal()>0)y=!1;q(),M(),d?.(K,Q,m.getTotal())},P=(K,Q)=>{let u=m.get(K);if(!u)return!1;let J=u.id,de={...u,...Q};if(m.set(K,de),Q.id!==void 0&&Q.id!==J)ue(J);return te(K,de),q(),M(),!0},c=(K,Q)=>{m.insert(Q,K),ne(),w(),q(),M()},W=(K)=>{let Q=S.get(K);if(Q===void 0)return!1;if(!m.delete(Q))return!1;return ne(),w(),q(),M(),!0},z=async(K,Q)=>{if(!t)return;let u=m.chunkSize,J=Math.floor(K/u),de=Math.floor(Q/u),ae=u*2;for(let[pe,ye]of f){let Te=pe.indexOf("-"),Me=parseInt(pe.slice(0,Te),10);if(Math.abs(Me-K)>ae)ye[1].abort(),f.delete(pe)}let Ie=[],xe=[];for(let pe=J;pe<=de;pe++){let ye=pe*u,Te=ye+u-1,Me=fe(ye,Te);if(m.isChunkFullyLoaded(pe))continue;let Ee=f.get(Me);if(Ee)xe.push(Ee[0]);else Ie.push({start:ye,end:Te})}if(Ie.length===0){if(xe.length>0)await Promise.all(xe);return}if(a>0){let pe=f.size+Ie.length;if(pe>a){let ye=(K+Q)/2,Te=Math.min(pe-a,f.size);while(Te>0){let Se=null,Ee=-1,re=null;for(let[me,Ce]of f){let Re=me.indexOf("-"),ie=parseInt(me.slice(0,Re),10),ve=parseInt(me.slice(Re+1),10),we=Math.abs((ie+ve)/2-ye);if(we>Ee)Ee=we,Se=me,re=Ce[1]}if(Se)re.abort(),f.delete(Se);Te--}let Me=a-f.size;if(Ie.length>Me)Ie.sort((Se,Ee)=>{let re=Math.abs((Se.start+Se.end)/2-ye),me=Math.abs((Ee.start+Ee.end)/2-ye);return re-me}),Ie.length=Math.max(0,Me)}}if(Ie.length===0){if(xe.length>0)await Promise.all(xe);return}for(let pe of Ie){let ye=fe(pe.start,pe.end),Te=new AbortController,Me=(async()=>{x.push(pe),h=!0,p=void 0,M();try{let Se=pe.end-pe.start+1,Ee={offset:pe.start,limit:Se,cursor:pe.start===v?H:void 0,signal:Te.signal},re=await t.read(Ee);if(E(re.items,pe.start,re.total),re.cursor)H=re.cursor,v=pe.start+re.items.length;let me=pe.start+re.items.length;if(me>=D){if(D=me,re.hasMore!==void 0)y=re.hasMore;else if(re.total!==void 0)y=me<re.total}}catch(Se){if(Se?.name==="AbortError")return;p=Se instanceof Error?Se:Error(String(Se)),F?.(p,pe)}finally{f.delete(ye);let Se=x.findIndex((Ee)=>Ee.start===pe.start&&Ee.end===pe.end);if(Se>=0)x.splice(Se,1);h=f.size>0,M()}})();f.set(ye,[Me,Te]),xe.push(Me)}await Promise.all(xe)},A=async(K,Q)=>{if(m.isRangeLoaded(K,Q))return;await z(K,Q)},oe=async()=>{if(!t)return;await z(0,s-1)},Z=async()=>{if(!t||h||!y)return!1;let K=m.getCachedCount(),Q=m.getTotal(),u=K,J=Math.min(u+s-1,Q>0?Q-1:u+s-1);if(u>=Q&&Q>0)return y=!1,!1;return await z(u,J),m.getCachedCount()>K},le=async()=>{if(m.clear(),S.clear(),Y)Y.clear();w(),x=[],h=!1,H=void 0,v=void 0,y=!0,D=0,p=void 0,q(),M()},ce=(K,Q)=>{if(m.evictDistant(K,Q)>0)ne()},se=()=>{m.clear(),S.clear(),H=void 0,v=void 0,p=void 0,x=[],h=!1,q(),M()},he=()=>{if(m.reset(),S.clear(),Y)Y.clear();H=void 0,v=void 0,y=!0,D=0,p=void 0,x=[],h=!1,q(),M()};if(r&&r.length>0)E(r,0,o??r.length);else if(o!==void 0)m.setTotal(o),q(),M();return{getState:T,getTotal:j,getCached:I,getIsLoading:C,getHasMore:G,getStorage:l,getPlaceholders:B,getItem:k,getItemById:N,getIndexById:U,isItemLoaded:be,getItemsInRange:_,setTotal:X,setItems:E,updateItem:P,insertItem:c,removeItem:W,loadRange:z,ensureRange:A,loadInitial:oe,loadMore:Z,reload:le,evictDistant:ce,clear:se,reset:he}};function Tt(e){let{adapter:t,total:r,autoLoad:o=!0,storage:i}=e,n=e.loading?.cancelThreshold??Ft,s=e.loading?.preloadThreshold??_t,a=e.loading?.preloadAhead??kt,R=e.loading?.maxConcurrent??Vt,g,d,V,F,m,Y,L=null,S=null,h=null,p=0,y=!1,H=null,v=mt,x=-1,D=-1,f=-1,w=-1,M=i?.chunkSize??tt,q=()=>{if(L=null,S!==null)clearTimeout(S),S=null},ne=(T,l)=>g.ensureRange(T,l),te=(T,l=tt)=>{F.emit("load:start",{offset:T,limit:l})},ue=(T)=>{F.emit("error",{error:T,context:"ensureRange"})},fe=()=>{L=null;let T={start:d.startIndex,end:d.startIndex+Math.max(0,d.visibleCount-1)};if(T.end<T.start)return;ne(T.start,T.end).catch(ue)},j=()=>{if(H!==null)clearTimeout(H),H=null},I=()=>{if(d.destroyed)return;let T=g.getTotal();if(d.visibleCount<=0||d.startIndex>=T)return;let l=Math.min(d.startIndex+d.visibleCount-1,T-1);if(l<d.startIndex)return;ne(d.startIndex,l).catch(ue)},C=()=>{if(H!==null||d.destroyed)return;H=setTimeout(()=>{H=null,I()},v),v=Math.min(v*2,Dt)},G=()=>{j(),v=mt};return{name:"data",priority:20,setup(T){d=T.getState(),V=T.sizeCache,F=T.emitter,m=T.dom,Y=T.forceRender.bind(T);let l=null;T.setVirtualTotalFn(()=>l?.getTotal()??0),T.setGetIndexByIdFn((k)=>l?.getIndexById(k)??-1),g=l=un({adapter:t,...r!==void 0&&{initialTotal:r},pageSize:i?.chunkSize??tt,maxConcurrent:R,...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(d.initialized){let k=g.getTotal(),N=g.getCached();if(d.totalItems=k,k!==x||N!==D)x=k,D=N,V.rebuild(k);T.updateContentSize(V.getTotalSize()),T.renderIfNeeded()}},onItemsLoaded:(k)=>{if(G(),d.initialized)T.updateContentSize(V.getTotalSize()),Y(),F.emit("load:end",{items:k,total:g.getTotal()})},onLoadError:(k)=>{if(F.emit("error",{error:k,context:"load"}),d.initialized)T.renderIfNeeded();C()}}),T.setGetItemFn((k)=>g.getItem(k)),T.setRemoveItemFn((k)=>{let N=g.getIndexById(k);if(N<0)return-1;if(!g.removeItem(k))return-1;return N}),T.setInsertItemFn((k,N)=>{g.insertItem(k,N)}),T.setUpdateItemFn((k,N)=>{let U=g.getIndexById(k);if(U<0)return!1;return g.updateItem(U,N)}),T.registerMethod("reload",async()=>{if(L=null,f=-1,w=-1,G(),T.forceRender(),await g.reload(),T.scrollTo(0),o)te(0),await g.loadInitial(),T.forceRender()}),T.registerMethod("loadVisibleRange",async()=>{L=null,T.forceRender();let k=g.getTotal();if(d.visibleCount>0&&d.startIndex<k){let N=Math.min(d.startIndex+d.visibleCount-1,k-1);te(d.startIndex,N-d.startIndex+1),await ne(d.startIndex,N)}}),T.registerMethod("loadInitial",async()=>{te(0),await g.loadInitial(),T.forceRender()}),T.registerMethod("getTotal",()=>g.getTotal()),T.registerMethod("setTotal",(k)=>{g.setTotal(k)}),T.registerMethod("_getTotal",()=>g.getTotal()),T.registerMethod("_setTotal",(k)=>{g.setTotal(k)}),T.registerMethod("_cancelAutoLoad",()=>{y=!0}),T.registerMethod("_getLoadedItem",(k)=>g.getStorage().get(k)),T.registerMethod("_getItem",(k)=>g.getItem(k)),T.registerMethod("_getLoadedCount",()=>g.getCached()),F.on("load:start",()=>{m.root.setAttribute("aria-busy","true")}),F.on("load:end",()=>{m.root.removeAttribute("aria-busy")}),T.registerDestroyHandler(()=>{if(h!==null)clearTimeout(h),h=null;q(),j()}),F.on("velocity:change",({velocity:k})=>{p=Math.abs(k)});let B=()=>{if(d.destroyed)return;G(),I(),fe()};if(window.addEventListener("online",B),T.registerDestroyHandler(()=>{window.removeEventListener("online",B)}),o)queueMicrotask(()=>{if(y)return;te(0),g.loadInitial().catch((k)=>{F.emit("error",{error:k,context:"loadInitial"})})});else if(r!==void 0)g.setTotal(r)},hooks:{onAfterScroll(){if(d.destroyed)return;let T=d.startIndex+Math.max(0,d.visibleCount-1);if(p>n){if(S!==null)clearTimeout(S),S=null;L={start:d.startIndex,end:T};return}if(p>s){let k=Math.floor(d.startIndex/M),N=Math.floor(T/M);if(k!==f||N!==w){if(f=k,w=N,T>=d.startIndex)ne(d.startIndex,T).catch(ue)}let U=d.startIndex,be=T,_=d.scrollDirection;if(_>0)be=Math.min(be+a,g.getTotal()-1);else if(_<0)U=Math.max(0,U-a);if(L={start:U,end:be},S!==null)clearTimeout(S);S=setTimeout(()=>{if(S=null,d.destroyed||!L)return;let{start:X,end:E}=L;if(L=null,E>=X)ne(X,E).catch(ue)},100);return}q();let l=Math.floor(d.startIndex/M),B=Math.floor(T/M);if(l!==f||B!==w){if(f=l,w=B,T>=d.startIndex)ne(d.startIndex,T).catch(ue)}},onIdle(){if(d.destroyed)return;p=0,f=-1,w=-1,fe(),q()},onResize(){if(d.destroyed)return;let T=g.getTotal();if(T<=0)return;if(d.visibleCount<=0||d.startIndex>=T)return;let l=Math.min(d.startIndex+d.visibleCount-1,T-1);if(l<d.startIndex)return;te(d.startIndex,l-d.startIndex+1),ne(d.startIndex,l).catch(ue)}},destroy(){if(h!==null)clearTimeout(h);q(),j()}}}var cn=(e)=>{let t=Math.max(1,Math.floor(e.columns)),r=e.gap??0,o=e.isHeaderFn,i={row:0,col:0},n=(L)=>{if(L<=0)return 0;if(!o)return Math.ceil(L/t);let S=0,h=0,p=0;for(let y=0;y<L;y++)if(o(y)){if(p++,h)S++,h=0;S++,h=0}else if(h++,h>=t)S++,h=0;if(h)S++;return S},s=(L)=>(i.row=a(L),i.col=R(L),i),a=(L)=>{if(!o)return Math.floor(L/t);let S=0,h=0;for(let p=0;p<=L;p++)if(o(p)){if(h)S++,h=0;if(p===L)return S;S++,h=0}else{if(p===L)return S;if(h++,h>=t)S++,h=0}return console.warn(`⚠️ getRow(${L}) fell through - returning ${S}`),S},R=(L)=>{if(!o)return L%t;if(o(L))return 0;let S=0;for(let h=0;h<=L;h++)if(o(h))S=0;else{if(h===L)return S;if(S++,S>=t)S=0}return S},g=(L,S,h,p)=>{if(h<=0){p.start=0,p.end=-1;return}if(!o){p.start=Math.max(0,L*t),p.end=Math.min(h-1,(S+1)*t-1);return}let y=d(L,S,h);p.start=y.start,p.end=y.end},d=(L,S,h)=>{if(h<=0)return{start:0,end:-1};if(!o){let x=Math.max(0,L*t),D=Math.min(h-1,(S+1)*t-1);return{start:x,end:D}}let p=-1,y=-1,H=0,v=0;for(let x=0;x<h;x++){if(o(x)){if(v)H++,v=0;if(H>=L&&H<=S){if(p<0)p=x;y=x}H++,v=0}else{if(H>=L&&H<=S){if(p<0)p=x;y=x}if(v++,v>=t)H++,v=0}if(H>S&&!v)break}if(p<0)return{start:0,end:-1};return{start:p,end:y}},V=(L,S,h)=>{if(S<0||S>=t)return-1;let p=L*t+S;if(p<0||p>=h)return-1;return p},F=(L)=>{let S=(t-1)*r;return Math.max(0,(L-S)/t)};return{get columns(){return t},get gap(){return r},update:(L)=>{if(L.columns!==void 0)t=Math.max(1,Math.floor(L.columns));if(L.gap!==void 0)r=L.gap;if(L.isHeaderFn!==void 0)o=L.isHeaderFn},getTotalRows:n,getPosition:s,getRow:a,getCol:R,getItemRange:d,fillItemRange:g,getItemIndex:V,getColumnWidth:F,getColumnOffset:(L,S)=>{let h=F(S);return L*(h+r)}}};var qe={selected:!1,focused:!1};function xt(e){if(!e.columns||e.columns<1)throw Error("[vlist] grid: columns must be >= 1");let t,r,o,i,n=0,s,a=null,R,g,d,V,F,m,Y=null,L=0,S=0,h=0,p=0,y=new Map,H=0,v=0,x=0,D=0,f=null,w=!1,M="",q="",ne="",te={start:0,end:-1},ue=-1,fe=-1,j=-1,I=!0,C=(_)=>r.rebuild(_);function G(){let _=(v-1)*x;D=Math.max(0,(H-_)/v)}function T(){if(w)return;w=!0,f=Y?.()??null}function l(){return t.getTotalRows(o.totalItems)}function B(_,X){let E=_/v|0,c=(_-E*v)*(D+x)+L,W=r.getOffset(E)-X+h;if(V)return`translate(${Math.round(W)}px, ${Math.round(c)}px)`;return`translate(${Math.round(c)}px, ${Math.round(W)}px)`}function k(_,X){let E=r.getSize(X)-x;if(V)_.style.width=`${E}px`,_.style.height=`${D}px`;else _.style.width=`${D}px`,_.style.height=`${E}px`}function N(_,X,E){if(f)f(E,qe);else qe.selected=!1,qe.focused=!1;let P=g(X,E,qe);if(typeof P==="string")_.innerHTML=P;else _.innerHTML="",_.appendChild(P)}function U(){if(o.destroyed)return;let _=i.getRenderOrigin(),X=i.getPixelEquivalent(),E=o.containerSize;if(!I&&X===ue&&E===fe&&_===n)return;ue=X,fe=E,I=!1;let P=l();if(E<=0||P===0)return;T();let c=r.indexAtOffset(X),W=r.indexAtOffset(X+E);if(W<P-1)W++;c=Math.max(0,c),W=Math.min(P-1,Math.max(0,W));let z=Math.max(0,c-m),A=Math.min(P-1,W+m);if(z===o.prevRangeStart&&A===o.prevRangeEnd&&!o.renderPending&&_===n)return;t.fillItemRange(z,A,o.totalItems,te);let{start:oe,end:Z}=te;for(let[se,he]of y)if(se<oe||se>Z)he.el.remove(),s.release(he.el),y.delete(se);for(let se=oe;se<=Z;se++){let he=d(se);if(!he)continue;let K=se/v|0,Q=se-K*v,u=y.get(se);if(u===void 0){let ae=s.acquire();ae.className=M,ae.setAttribute("data-index",String(se)),ae.setAttribute("data-id",String(he.id)),N(ae,he,se),u={el:ae,lastItem:he},y.set(se,u),R.appendChild(ae)}else if(u.lastItem!==he)u.el.setAttribute("data-id",String(he.id)),u.lastItem=he,N(u.el,he,se);else if(f)f(se,qe);if(f)if(u.el.classList.toggle(q,qe.selected),u.el.classList.toggle(ne,qe.focused),qe.selected)u.el.setAttribute("aria-selected","true");else u.el.removeAttribute("aria-selected");k(u.el,K);let J=Q*(D+x)+L,de=r.getOffset(K)-_+h;u.el.style.transform=V?`translate(${Math.round(de)}px, ${Math.round(J)}px)`:`translate(${Math.round(J)}px, ${Math.round(de)}px)`}let le=r.getTotalSize();if(le!==j)j=le,a?.updateContentSize(le);o.prevRangeStart=z,o.prevRangeEnd=A,n=_,o.renderPending=!1;let ce=Z-oe+1;o.visibleCount=Math.min(ce,o.capacity),o.startIndex=oe;for(let se=0;se<o.visibleCount;se++){let he=oe+se,K=he/v|0;o.visibleIndices[se]=he,o.visibleOffsets[se]=r.getOffset(K),o.visibleSizes[se]=r.getSize(K)}}function be(){if(o.destroyed)return;C(l()),j=-1,o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,I=!0,U()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(_){i=_.scroll,v=Math.max(1,Math.floor(e.columns)),x=e.gap??0,t=cn({columns:e.columns,gap:x}),r=_.sizeCache,o=_.getState(),s=_.pool,a=_,R=_.dom.content,g=_.template,V=_.config.axis.primary==="x",F=_.config.classPrefix,m=_.config.overscan,d=_.getItem.bind(_),Y=()=>_.getItemStateFn(),M=`${F}-item ${F}-grid-item`,q=`${F}-item--selected`,ne=`${F}-item--focused`,L=_.config.crossPadStart,S=_.config.crossAxisPadding,h=_.config.startPadding,p=_.config.mainAxisPadding,H=o.crossSize-S,G();let X=_.rawSizeSpec,E;if(typeof X==="function"){let A={columnWidth:t.getColumnWidth(H),columns:e.columns,gap:x};E=X(0,A),_.setSizeConfig((oe)=>{A.columnWidth=t.getColumnWidth(H);let Z=oe*e.columns;return X(Z,A)+x})}else if(E=X,x>0)_.setSizeConfig(E+x);let P=null,c=r.rebuild;function W(){if(r.rebuild===P)return;c=r.rebuild,C=(z)=>c(z),P=(z)=>{C(Math.ceil(z/v))},r.rebuild=P}if(_.registerMethod("_setSizeCacheBase",(z)=>{c=z,C=(A)=>c(A)}),W(),C(l()),x>0){let z=r.getTotalSize;r.getTotalSize=()=>{let A=z();return A>0?A-x:0}}_.setVirtualTotalFn(()=>l()),_.dom.root.classList.add(`${F}--grid`),_.setRenderFn(U,be),_.registerMethod("getGridLayout",()=>t),_.registerMethod("_getRowGap",()=>t.gap),_.registerMethod("updateGrid",(z)=>{if(z.columns!==void 0){if(!Number.isInteger(z.columns)||z.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(z.gap!==void 0&&z.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if(t.update(z),z.columns!==void 0)v=Math.max(1,Math.floor(z.columns));if(z.gap!==void 0)x=z.gap;if(z.gap!==void 0||z.columns!==void 0){let A=t.gap;if(typeof X==="function"){let oe={columnWidth:t.getColumnWidth(H),columns:t.columns,gap:A};_.setSizeConfig((Z)=>{oe.columnWidth=t.getColumnWidth(H);let le=Z*t.columns;return X(le,oe)+A})}else _.setSizeConfig(E+A);W(),C(l())}if(z.columns!==void 0)_.setNavConfig({ud:t.columns});H=o.crossSize-S,G(),be()}),_.registerMethod("scrollToIndex",(z,A="start")=>{let oe=t.getRow(z),Z=l();if(Z===0)return;let le=Math.max(0,Math.min(oe,Z-1)),ce=r.getOffset(le)+h,se=r.getSize(le),he=o.containerSize,K=r.getTotalSize()+p,Q=Math.max(0,K-he),u=typeof A==="string"?A:A.align??"start",J=typeof A==="object"?A.behavior:void 0,de=typeof A==="object"?A.duration:void 0,ae;switch(u){case"center":ae=ce-(he-se)/2;break;case"end":ae=ce-he+se;break;default:ae=ce}if(ae=Math.max(0,Math.min(ae,Q)),J==="smooth"&&de&&de>0)_.smoothScrollTo(ae,de);else _.scrollTo(ae)}),_.setNavConfig({total:()=>o.totalItems,ud:e.columns,lr:1,scrollIndex:(z)=>t.getRow(z)}),_.registerDestroyHandler(()=>{for(let[,z]of y)z.el.remove();y.clear(),_.dom.root.classList.remove(`${F}--grid`)})},hooks:{onResize(_,X){let E=o.crossSize-S;if(Math.abs(E-H)<1)return;H=E,G();let P=i.getRenderOrigin();for(let[c,W]of y){let z=c/v|0;k(W.el,z),W.el.style.transform=B(c,P)}}},destroy(){y.clear()}}}var mn=(e)=>{let t=Math.max(1,Math.floor(e.columns)),r=e.gap??0,o=e.containerSize,i=e.crossOffset??0,n=e.mainOffset??0,s=0,a=[],R=()=>{let h=(t-1)*r;s=Math.max(0,(o-h)/t),a=Array(t);let p=s+r;for(let y=0;y<t;y++)a[y]=i+y*p};R();let g=[],d=0,V=[],F=(h,p)=>{if(h<=0)return d=0,g=[],[];let y=Array(t).fill(n),H=Array(t);for(let D=0;D<t;D++)H[D]=[];let v=Array(h);for(let D=0;D<h;D++){let f=0,w=y[0];for(let ne=1;ne<t;ne++){let te=y[ne];if(te<w)w=te,f=ne}let M=p(D),q=y[f];v[D]={index:D,x:a[f],y:q,lane:f,size:M,crossSize:s},H[f].push(D),y[f]=q+M+r}g=H;let x=0;for(let D=0;D<t;D++){let f=y[D],w=f>0?f-r:0;if(w>x)x=w}return d=x,v},m=(h)=>{if(h.length===0)return d;if(d)return d;let p=Array(t).fill(0);for(let H of h){let v=H.y+H.size,x=p[H.lane];if(v>x)p[H.lane]=v}let y=0;for(let H=0;H<t;H++)if(p[H]>y)y=p[H];return y},Y=(h,p,y)=>{if(h.length===0||y<=p)return V.length=0,V;if(g.length===0||g.length!==t)return L(h,p,y);V.length=0;for(let H=0;H<t;H++){let v=g[H],x=v.length;if(!x)continue;let D=0,f=x;while(D<f){let w=D+f>>>1,M=h[v[w]];if(M.y+M.size<=p)D=w+1;else f=w}for(let w=D;w<x;w++){let M=h[v[w]];if(M.y>=y)break;V.push(M)}}return V},L=(h,p,y)=>{V.length=0;for(let H of h)if(H.y+H.size>p&&H.y<y)V.push(H);return V};return{get columns(){return t},get gap(){return r},get containerSize(){return o},update:(h)=>{let p=!1;if(h.columns!==void 0){let y=Math.max(1,Math.floor(h.columns));if(y!==t)t=y,p=!0}if(h.gap!==void 0&&h.gap!==r)r=h.gap,p=!0;if(h.containerSize!==void 0&&h.containerSize!==o)o=h.containerSize,p=!0;if(h.crossOffset!==void 0&&h.crossOffset!==i)i=h.crossOffset,p=!0;if(h.mainOffset!==void 0&&h.mainOffset!==n)n=h.mainOffset,p=!0;if(p)R()},calculateLayout:F,getTotalSize:m,getVisibleItems:Y}};var fn=(e,t,r)=>{let o=Array.from(t).sort((s,a)=>s-a);if(o.length<=1)return;let i=[];for(let s=0;s<o.length;s++){let a=r(o[s]);if(a)i.push(a)}if(i.length<=1)return;let n=e.firstChild;for(let s=0;s<i.length;s++){let a=i[s];if(a===n)n=n.nextSibling;else e.insertBefore(a,n)}};var Wn=(e=200)=>{let t=[];return{acquire:()=>{let n=t.pop();if(n)return n;let s=document.createElement("div");return s.setAttribute("role","option"),s},release:(n)=>{if(n.remove(),t.length<e)n.className="",n.textContent="",n.removeAttribute("style"),n.removeAttribute("data-index"),n.removeAttribute("data-id"),n.removeAttribute("data-lane"),t.push(n)},clear:()=>{t.length=0}}},Yn=1,gn=(e,t,r,o=!1,i,n,s,a,R=()=>0)=>{let g=Wn(),d=new Map,V=new Set,F=0,m="",Y=-1,L={selected:!1,focused:!1},S=(j,I)=>(L.selected=j,L.focused=I,L),h=`${r}-item ${r}-masonry-item`,p=`${r}-group-header`,y=`${r}-item--selected`,H=`${r}-item--focused`,v=(j,I)=>{if(typeof I==="string")j.innerHTML=I;else j.replaceChildren(I);Ke(j)},x=(j,I,C)=>{j.classList.toggle(y,I),j.classList.toggle(H,C)},D=(j,I)=>{let C=Math.round(I.y-M);if(o)j.style.transform=`translate(${C}px, ${Math.round(I.x)}px)`;else j.style.transform=`translate(${Math.round(I.x)}px, ${C}px)`},f=(j,I)=>{if(o)j.style.width=`${I.size}px`,j.style.height=`${I.crossSize}px`;else j.style.width=`${I.crossSize}px`,j.style.height=`${I.size}px`},w=(j,I,C,G,T)=>{let l=g.acquire(),B=I.__groupHeader,k=S(G,T);if(l.className=B?p:h,l.dataset.index=String(j),l.dataset.id=String(I.id),l.dataset.lane=String(C.lane),B)l.setAttribute("role","presentation"),l.removeAttribute("aria-selected"),l.removeAttribute("aria-setsize"),l.removeAttribute("aria-posinset"),l.removeAttribute("id");else if(a===!0){if(l.setAttribute("role","option"),l.ariaSelected=String(G),n)l.id=`${n}-item-${j}`;if(i){let U=i();if(U!==Y)Y=U,m=String(U);l.setAttribute("aria-setsize",m);let be=s?s(j):j+1;l.setAttribute("aria-posinset",String(be))}}else if(l.setAttribute("role","listitem"),l.removeAttribute("aria-selected"),i){let U=i();if(U!==Y)Y=U,m=String(U);l.setAttribute("aria-setsize",m);let be=s?s(j):j+1;l.setAttribute("aria-posinset",String(be))}f(l,C);let N=t(I,j,k);return v(l,N),x(l,G,T),D(l,C),{element:l,lastItem:I,lastSelected:G,lastFocused:T,lastY:C.y-M,absY:C.y,lastX:C.x,lastSize:C.size,lastCrossSize:C.crossSize,lastSeenFrame:F}},M=0,q=(j,I,C,G,T=R())=>{M=T,F++,V.clear();for(let B=0;B<I.length;B++)V.add(I[B].index);let l=null;for(let B=0;B<I.length;B++){let k=I[B],N=k.index,U=j(N);if(!U)continue;let be=C.has(U.id),_=N===G,X=d.get(N);if(X){let E=X.lastItem!==U,P=X.lastSelected!==be,c=X.lastFocused!==_,W=X.lastY!==k.y-M||X.lastX!==k.x,z=X.lastSize!==k.size||X.lastCrossSize!==k.crossSize;if(E){let A=S(be,_),oe=t(U,N,A);if(v(X.element,oe),X.element.dataset.id=String(U.id),X.lastItem=U,!U.__groupHeader){let le=s?s(N):N+1;X.element.setAttribute("aria-posinset",String(le))}}if(E||P||c)x(X.element,be,_),X.element.ariaSelected=String(be),X.lastSelected=be,X.lastFocused=_;if(z)f(X.element,k),X.lastSize=k.size,X.lastCrossSize=k.crossSize;if(W)D(X.element,k),X.lastY=k.y-M,X.absY=k.y,X.lastX=k.x}else{let E=w(N,U,k,be,_);if(!l)l=document.createDocumentFragment();l.appendChild(E.element),d.set(N,E)}}if(l)e.appendChild(l);for(let[B,k]of d)if(V.has(B))k.lastSeenFrame=F;else if(F-k.lastSeenFrame>Yn)g.release(k.element),d.delete(B);else{let N=Math.round(k.absY-M);if(N!==k.lastY){k.lastY=N;let U=Math.round(k.lastX);k.element.style.transform=o?`translate(${N}px, ${U}px)`:`translate(${U}px, ${N}px)`}}},ne=()=>{for(let j of d.values())g.release(j.element);d.clear(),e.innerHTML=""};return{render:q,getElement:(j)=>d.get(j)?.element,updateItemClasses:(j,I,C)=>{let G=d.get(j);if(!G)return;let T=G.lastSelected!==I,l=G.lastFocused!==C;if(T||l)x(G.element,I,C),G.lastSelected=I,G.lastFocused=C},sortDOM:()=>{fn(e,d.keys(),(j)=>d.get(j)?.element)},clear:ne,destroy:()=>{ne(),g.clear()}}};var qn=100,Un=new Set;function Lt(e){if(!e.columns||e.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let t,r=null,o,i,n=0,s=null,a,R,g,d=[],V=-1,F=-1,m=!0,Y=-1,L=-1,S=0,h=0,p=0,y=0,H={columnWidth:0,columns:0,gap:0,containerWidth:0},v=[],x=(c)=>v[c],D=null,f=null,w=!1;function M(){if(w||!s)return;w=!0,D=s.getMethod("_getSelectedIds")??null,f=s.getMethod("_getFocusedIndex")??null}let q=[],ne=new Int32Array(0),te=[],ue=null,fe=null,j=null,I=null,C=!1,G=!0;function T(){if(C||!s)return;if(ue=s.getMethod("_getItemLane")??null,fe=s.getMethod("_getItemY")??null,j=s.getMethod("_getItemH")??null,I=s.getMethod("_isGroupHeader")??null,ue||I)C=!0}function l(){T();let c=t.columns,W=!!ue;if(W){let z=o.totalItems;q=Array(c);for(let A=0;A<c;A++)q[A]=[];if(ne.length<z)ne=new Int32Array(z);for(let A=0;A<z;A++){if(I?.(A))continue;let oe=ue(A);if(oe<0||oe>=c)continue;ne[A]=q[oe].length,q[oe].push(A)}}else{let z=d.length;q=Array(c);for(let A=0;A<c;A++)q[A]=[];if(ne.length<z)ne=new Int32Array(z);for(let A=0;A<z;A++){let oe=d[A];ne[A]=q[oe.lane].length,q[oe.lane].push(A)}}te=Array(c);for(let z=0;z<c;z++){let A=q[z],oe=new Float64Array(A.length);for(let Z=0;Z<A.length;Z++){let le=A[Z];if(W&&fe&&j){let ce=fe(le),se=j(le);oe[Z]=ce>=0?ce+(se>0?se*0.5:0):0}else{let ce=d[le];oe[Z]=ce.y+ce.size*0.5}}te[z]=oe}}function B(c,W){let z=c.length;if(!z)return-1;let A=0,oe=z-1;while(A<oe){let Z=A+oe>>1;if(c[Z]<W)A=Z+1;else oe=Z}if(A>0&&Math.abs(c[A-1]-W)<=Math.abs(c[A]-W))return A-1;return A}function k(c,W,z){if(G)l(),G=!1;let A=!!ue,oe,Z;if(A){if(I?.(c))return c;if(oe=ue(c),oe<0)return c;Z=ne[c]}else{let he=d[c];if(!he)return c;oe=he.lane,Z=ne[c]}let le=t.columns,ce=q[oe];switch(a?W==="ArrowDown"?"ArrowRight":W==="ArrowUp"?"ArrowLeft":W==="ArrowRight"?"ArrowDown":W==="ArrowLeft"?"ArrowUp":W:W){case"ArrowDown":if(Z+1<ce.length)return ce[Z+1];return c;case"ArrowUp":if(Z>0)return ce[Z-1];return c;case"ArrowRight":{if(oe>=le-1)return c;let he=oe+1,K=q[he];if(!K.length)return c;let Q=B(te[he],te[oe]?.[Z]??0);return Q>=0?K[Q]:c}case"ArrowLeft":{if(oe<=0)return c;let he=oe-1,K=q[he];if(!K.length)return c;let Q=B(te[he],te[oe]?.[Z]??0);return Q>=0?K[Q]:c}case"Home":return 0;case"End":{let he=q[le-1];return he.length>0?he[he.length-1]:c}case"PageDown":{let he=o.containerSize,K=A?null:d[c],Q=K&&K.size>0?K.size:150,u=Math.max(1,Math.floor(he/Q)),J=Math.min(Z+u,ce.length-1);return ce[J]}case"PageUp":{let he=o.containerSize,K=A?null:d[c],Q=K&&K.size>0?K.size:150,u=Math.max(1,Math.floor(he/Q)),J=Math.max(0,Z-u);return ce[J]}}return c}let N=null;function U(){if(e.size)return(c)=>e.size(c,H);if(N!==null&&typeof N==="function")return(c)=>N(c,H);return(c)=>s.sizeCache.getSize(c)}function be(){let c=t.columns,W=t.gap;H.containerWidth=t.containerSize,H.columns=c,H.gap=W,H.columnWidth=Math.max(0,(t.containerSize-(c-1)*W)/c)}function _(){if(!s)return;be();let c=o.totalItems;d=t.calculateLayout(c,U()),Y=c,G=!0,X()}function X(){if(!s)return;let c=t.getTotalSize(d)+y;if(c===L)return;L=c,s.updateContentSize(c)}function E(){if(o.destroyed||!s||!r)return;if(o.totalItems!==Y)_();if(m)L=-1,X();M();let c=i.getRenderOrigin(),W=i.getPixelEquivalent(),z=o.containerSize;if(!m&&W===V&&z===F&&c===n)return;if(V=W,F=z,m=!1,z<=0||d.length===0)return;let A=Math.max(0,W-g),oe=W+z+g,Z=t.getVisibleItems(d,A,oe),le=D?.()??Un,ce=f?.()??-1;v=s.getItems(),r.render(x,Z,le,ce,c),n=c;let se=Z.length,he=se>0?Z[0].index:0,K=se>0?Z[se-1].index:0;o.prevRangeStart=he,o.prevRangeEnd=K,o.renderPending=!1;let Q=Math.min(se,o.capacity);o.visibleCount=Q,o.startIndex=he;for(let u=0;u<Q;u++){let J=Z[u];o.visibleIndices[u]=J.index,o.visibleOffsets[u]=J.y,o.visibleSizes[u]=J.size}}function P(){if(o.destroyed)return;L=-1,_(),o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,m=!0,E()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(c){if(i=c.scroll,s=c,o=c.getState(),N=c.rawSizeSpec,a=c.config.axis.primary==="x",R=c.config.classPrefix,g=c.config.overscan*qn,c.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");S=c.config.crossAxisPadding,h=c.config.crossPadStart,p=c.config.startPadding,y=c.config.endPadding;let W=o.crossSize-S;t=mn({columns:e.columns,gap:e.gap??0,containerSize:W,crossOffset:h,mainOffset:p}),r=gn(c.dom.content,c.template,R,a,()=>o.totalItems,void 0,void 0,void 0,i.getRenderOrigin),c.dom.root.classList.add(`${R}--masonry`),c.setRenderFn(E,P),_(),c.registerMethod("getMasonryLayout",()=>t),c.registerMethod("updateMasonry",(z)=>{if(z.columns!==void 0&&z.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(z.gap!==void 0&&z.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let A={};if(z.columns!==void 0)A.columns=z.columns;if(z.gap!==void 0)A.gap=z.gap;t.update(A),r?.clear(),P()}),c.registerMethod("scrollToIndex",(z,A="start")=>{let oe=d[z];if(!oe)return;let Z=typeof A==="string"?A:A.align??"start",le=typeof A==="object"?A.behavior:void 0,ce=typeof A==="object"?A.duration:void 0,se=o.containerSize,he=t.getTotalSize(d)+y,K=Math.max(0,he-se),Q=oe.y;if(Z==="center")Q=oe.y-se/2+oe.size/2;else if(Z==="end"){if(Q=oe.y-se+oe.size,z>=o.totalItems-1&&oe.y+oe.size>K)Q=K}if(Q=Math.max(0,Math.min(Q,K)),le==="smooth"&&ce&&ce>0)c.smoothScrollTo(Q,ce);else c.scrollTo(Q)}),c.registerMethod("_scrollItemIntoView",(z)=>{let A=d[z];if(!A)return;let oe=i.getPixelEquivalent(),Z=o.containerSize,le=t.getTotalSize(d)+y,ce=Math.max(0,le-Z),se=A.y,he=se+A.size;if(se-p<oe)c.scrollTo(Math.max(0,se-p));else if(he+y>oe+Z){let K=q[t.columns-1];if(K&&K.length>0&&z===K[K.length-1]&&se>=ce)c.scrollTo(ce);else c.scrollTo(Math.min(he+y-Z,ce))}}),c.setNavConfig({total:()=>o.totalItems,navigate:k}),c.registerDestroyHandler(()=>{r?.destroy(),r=null,c.dom.root.classList.remove(`${R}--masonry`)})},hooks:{onResize(c,W){if(!t||!s)return;let z=o.crossSize-S;if(Math.abs(z-t.containerSize)<1)return;t.update({containerSize:z}),r?.clear(),P()},onIdle(){r?.sortDOM()}},destroy(){r?.destroy(),r=null,d=[],s=null}}}var Et=(e,t)=>{let r=0,o=e.length-1;while(r<o){let i=r+o+1>>>1;if(e[i].headerLayoutIndex<=t)r=i;else o=i-1}return r},pn=(e,t)=>{let r=0,o=e.length-1;while(r<o){let i=r+o+1>>>1;if(e[i].firstDataIndex<=t)r=i;else o=i-1}return r},bn=(e,t,r)=>{if(e===0)return[];let o=[],i=null,n=0,s=0;for(let a=0;a<e;a++){let R=r?.(a);if(!R)continue;let g=t(a,R);if(i===null)i=g,n=0;else if(g!==i){let d=a-n;o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:d}),s=s+1+d,i=g,n=a}}if(i!==null)o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:e-n});return o};var hn=(e,t,r)=>{let o=bn(e,t.getGroupForIndex,r),i=e+o.length,n=t.header?.height??t.header?.width??t.headerHeight;return{get totalEntries(){return i},get groupCount(){return o.length},get groups(){return o},getEntry:(m)=>{if(o.length===0)return{type:"item",dataIndex:m,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let Y=Et(o,m),L=o[Y];if(m===L.headerLayoutIndex)return{type:"header",group:L};let S=m-L.headerLayoutIndex-1;return{type:"item",dataIndex:L.firstDataIndex+S,group:L}},layoutToDataIndex:(m)=>{if(o.length===0)return m;let Y=Et(o,m),L=o[Y];if(m===L.headerLayoutIndex)return-1;let S=m-L.headerLayoutIndex-1;return L.firstDataIndex+S},dataToLayoutIndex:(m)=>{if(o.length===0)return m;let Y=pn(o,m),L=o[Y],S=m-L.firstDataIndex;return L.headerLayoutIndex+1+S},getGroupAtLayoutIndex:(m)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let Y=Et(o,m);return o[Y]},getGroupAtDataIndex:(m)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let Y=pn(o,m);return o[Y]},getHeaderHeight:typeof n==="number"?(m)=>n:(m)=>{let Y=o[m];if(!Y)return 0;return n(Y.key,m)},rebuild:(m,Y)=>{o=bn(m,t.getGroupForIndex,Y??r),i=m+o.length}}};var Ct=(e,t,r,o,i=0)=>{let n=r?"width":"height",s=document.createElement("div");return s.className=`${t}-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`,e.insertBefore(s,e.firstChild),s},Sn=(e,t,r,o,i,n=!1,s=0,a,R)=>{let g=n?"width":"height",d=n?"height":"width",V=n?"X":"Y",F=(E,P)=>{E.style[g]=`${P}px`},m=a??Ct(e,i,n,0,s),Y=()=>{let E=document.createElement("div");return E.className="sticky-group",E.style.position="absolute",E.style.willChange="transform",E.style[d]="100%",E},L=Y(),S=Y();m.append(L,S);let h=L,p=S,y=t.groups,H=[],v=[],x=[],D=0,f=()=>{y=t.groups,D=y.length,H=Array(D),v=Array(D),x=Array(D);for(let E=0;E<D;E++)H[E]=R?R(y[E].headerLayoutIndex):r.getOffset(y[E].headerLayoutIndex),v[E]=t.getHeaderHeight(E),x[E]=v[E]};f();let w=-1,M=0,q=0,ne=-1,te=!1,ue=0,fe=!1,j=(E,P)=>{o(E,P);let c=v[P];return F(E,c),c},I=(E)=>{E.replaceChildren(),E.style.transform=""},C=(E)=>{if(E===w)return;if(w=E,M=0,q=0,E<0||E>=D){I(h);return}M=j(h,E),q=x[E],F(m,M),h.style.transform=""},G=(E)=>{if(E===ue)return;ue=E;let P=Math.round(E);h.style.transform=`translate${V}(${P}px)`,p.style.transform=`translate${V}(${P+M}px)`},T=()=>{ue=0,h.style.transform="",p.style.transform=""},l=()=>{if(!fe)return;let E=h;h=p,p=E,w=ne,M=w>=0?v[w]:0,q=w>=0?x[w]:0,F(m,M),I(p),ne=-1,fe=!1,T()},B=()=>{if(!fe)return;I(p),ne=-1,fe=!1,T()},k=!!a,N=()=>{if(te)return;if(te=!0,k)m.style.visibility="";else m.style.display=""},U=()=>{if(!te)return;if(te=!1,k)m.style.visibility="hidden";else m.style.display="none";I(h),w=-1,M=0,q=0,B()},be=(E)=>{if(D===0){if(fe)B();if(!te)N();C(-1);return}if(E<H[0]){U();return}let P=0,c=D-1;while(P<c){let z=P+c+1>>>1;if(H[z]+x[z]<=E)P=z;else c=z-1}if(!te)N();C(P);let W=P+1;if(W<D){let z=H[W]-E;if(z<=0&&z>-q){if(ne!==W||!fe)ne=W,j(p,W),fe=!0;let A=q>0?z/q*M:z;G(A)}else if(z<=-q){if(fe)l()}else if(fe)B()}else if(fe)B()},_=()=>{f();let E=w;if(w=-1,M=0,q=0,E>=0)C(E)},X=()=>{m.remove(),w=-1,M=0,q=0,ne=-1,te=!1,fe=!1};if(!a)m.style.display="none";return{update:be,refresh:_,show:N,hide:U,destroy:X}};var Ue={selected:!1,focused:!1},vn=typeof process<"u"&&process.env?.NODE_ENV!=="production";function Mt(e){if(!e.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let t=e.header?.height??e.header?.width??e.headerHeight;if(t==null||typeof t==="number"&&t<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let r=e.header?.template??e.headerTemplate;if(!r)throw Error("[vlist] groups: header.template is required");let o=r,i,n=null,s,a,R,g,d,V=null,F,m,Y,L=null,S,h,p,y=null,H,v,x=null,D=null,f=0,w=0,M=0,q=0,ne=0,te=!1,ue=null,fe=new Map,j=new Set,I=new Map,C=-1,G=-1,T=0,l=!0,B=-1,k=0,N=null,U;function be(){return i.totalEntries}function _(){let u=a.totalItems;if(u===B)return;if(vn)console.log(`[groups] syncLayout: ${B} → ${u}`);let J=B>0;B=u,i.rebuild(u,L??Y),U(i.totalEntries),W();let de=E?z():s.getTotalSize();if(V?.(de),n)n.refresh(),n.update(R.getPixelEquivalent());if(J)Z();let ae=x?.("_scrollbar:getInstance");if(ae)ae()?.updateBounds(de,a.containerSize)}let X=0,E=null,P=null,c=null;function W(){if(f<=0){E=null,P=null;return}X=((a.crossSize||d.clientWidth)-q-(f-1)*w)/f,E=new Map;let de=i.totalEntries,ae=Array(de),Ie=0;if(te){let xe=ue??((Se)=>s.getSize(Se)),pe=new Float64Array(f),ye=[],Te=0,Me=-1;for(let Se=0;Se<de;Se++){let Ee=i.getEntry(Se);if(Ee.type==="header"){let re=0;for(let Ce=0;Ce<f;Ce++)if(pe[Ce]>re)re=pe[Ce];if(Me>=0)ye[Me]=Te+re;Te+=re;let me=s.getSize(Se);E.set(Se,{col:-1,rowY:Te}),ae[Ie++]=[Se,Te,Te+me],Te+=me,pe.fill(0),Me=Ee.group.groupIndex}else{let re=0,me=pe[0];for(let ie=1;ie<f;ie++)if(pe[ie]<me)me=pe[ie],re=ie;let Ce=xe(Ee.dataIndex),Re=Te+pe[re];E.set(Se,{col:re,rowY:Re,h:Ce}),ae[Ie++]=[Se,Re,Re+Ce],pe[re]=pe[re]+Ce+w}}if(Me>=0){let Se=0;for(let Ee=0;Ee<f;Ee++)if(pe[Ee]>Se)Se=pe[Ee];ye[Me]=Te+Se}c=ye}else{c=null;let xe=0,pe=0,ye=0;for(let Te=0;Te<de;Te++)if(i.getEntry(Te).type==="header"){if(pe>0&&ye>0)xe+=ye;let Se=s.getSize(Te);E.set(Te,{col:-1,rowY:xe}),ae[Ie++]=[Te,xe,xe+Se],xe+=Se,pe=0,ye=0}else{let Se=pe%f,Ee=s.getSize(Te);if(Se===0){if(pe>0&&ye>0)xe+=ye+w;ye=Ee}else if(Ee>ye)ye=Ee;E.set(Te,{col:Se,rowY:xe}),ae[Ie++]=[Te,xe,xe+Ee],pe++}}ae.length=Ie,P=ae}function z(){if(!E||E.size===0)return s.getTotalSize();let u=i.totalEntries;if(te)return c?.[c.length-1]??0;let J=0;for(let de=u-1;de>=0;de--){let ae=E.get(de);if(ae){J=ae.rowY+(ae.h??s.getSize(de));break}if(i.getEntry(de).type==="header"){J=s.getOffset(de)+s.getSize(de);break}}return J}function A(u,J){if(E){let ae=E.get(u);if(ae){let Ie=ae.col<0?0:M+ae.col*(X+w),xe=ae.rowY-J;if(S)return`translate(${Math.round(xe)}px, ${Math.round(Ie)}px)`;return`translate(${Math.round(Ie)}px, ${Math.round(xe)}px)`}}let de=s.getOffset(u)-J;if(S)return`translate(${Math.round(de)}px, 0)`;return`translate(0, ${Math.round(de)}px)`}function oe(u,J){let de=E?.get(J);if(de){let Ie=de.h??s.getSize(J);if(de.col<0)if(S)u.style.width=`${Ie}px`,u.style.height="";else u.style.height=`${Ie}px`,u.style.width="100%";else if(S)u.style.width=`${Ie}px`,u.style.height=`${X}px`;else u.style.height=`${Ie}px`,u.style.width=`${X}px`;return}let ae=s.getSize(J);if(S)u.style.width=`${ae}px`;else u.style.height=`${ae}px`}function Z(){fe.forEach((u)=>{u.remove();let J=u.getAttribute("data-id");if(J)I.set(J,u);else g.release(u)}),fe.clear(),j.clear()}function le(){if(I.size>0)I.forEach((u)=>g.release(u)),I.clear()}function ce(u,J,de,ae){if(D===null)D=!!x?.("_getSelectedIds");if(J.type==="header"){let Me=`__group_header_${J.group.groupIndex}`;if(u.getAttribute("data-id")===Me)return!0;if(u.className=v,u.setAttribute("role","presentation"),u.removeAttribute("aria-selected"),u.setAttribute("data-id",Me),S&&n&&J.group.groupIndex===0)u.style.display="none";else{u.style.display="";let Se=o(J.group.key,J.group.groupIndex);if(typeof Se==="string")u.innerHTML=Se;else u.innerHTML="",u.appendChild(Se)}return!0}let Ie=J.dataIndex,xe=Y(Ie);if(!xe)return u.innerHTML="",!1;let pe=xe._isPlaceholder===!0,ye=String(xe.id);if(!pe&&u.getAttribute("data-id")===ye){if(D)u.id=`${h}-item-${ae}`,u.setAttribute("aria-posinset",String(Ie+1)),u.setAttribute("aria-setsize",String(a.totalItems));return!0}if(u.className=H,u.setAttribute("role",D?"option":"listitem"),u.setAttribute("data-id",ye),D)u.id=`${h}-item-${ae}`,u.setAttribute("aria-posinset",String(Ie+1)),u.setAttribute("aria-setsize",String(a.totalItems));if(pe)u.classList.add(`${h}-item--placeholder`);if(de)de(ae,Ue);else Ue.selected=!1,Ue.focused=!1;let Te=m(xe,Ie,Ue);if(typeof Te==="string")u.innerHTML=Te;else u.innerHTML="",u.appendChild(Te);return Ke(u),!pe}let se=0;function he(){if(f<=0)return;let u=a.crossSize;if(u===se)return;se=u,W();let J=z();if(V?.(J),n)n.refresh(),n.update(R.getPixelEquivalent());l=!0}function K(){if(a.destroyed)return;_(),he();let u=R.getPixelEquivalent(),J=a.containerSize,de=R.getRenderOrigin(),ae=de!==T;if(!l&&u===C&&J===G&&!ae)return;C=u,G=J;let Ie=l;l=!1;let xe=be();if(J<=0||xe===0){if(fe.size>0)fe.forEach((ie)=>{ie.remove(),g.release(ie)}),fe.clear(),j.clear();return}let pe,ye;if(P){let ie=P,ve=ie.length,we=0,Pe=ve-1;while(we<Pe){let He=we+Pe>>>1;if(ie[He][2]<=u)we=He+1;else Pe=He}let _e=we;Pe=ve-1;while(we<Pe){let He=we+Pe+1>>>1;if(ie[He][1]>=u+J)Pe=He-1;else we=He}let Oe=we,Fe=ie[_e][0],Ne=ie[Oe][0];for(let He=Fe-1;He>=0;He--)if(i.getEntry(He).type==="header"){Fe=He;break}let We=p*f;pe=Math.max(0,Fe-We),ye=Math.min(xe-1,Ne+We)}else{let ie=s.indexAtOffset(u),ve=s.indexAtOffset(u+J);if(ve<xe-1)ve++;ie=Math.max(0,ie),ve=Math.min(xe-1,Math.max(0,ve)),pe=Math.max(0,ie-p),ye=Math.min(xe-1,ve+p)}if(pe===a.prevRangeStart&&ye===a.prevRangeEnd&&!a.renderPending&&!ae)return;T=de,fe.forEach((ie,ve)=>{if(ve<pe||ve>ye)ie.remove(),g.release(ie),fe.delete(ve),j.delete(ve)});let Te=y?.()??null,Me=Te?`${h}-item--selected`:"",Se=Te?`${h}-item--focused`:"",Ee=null;for(let ie=pe;ie<=ye;ie++){let ve=fe.get(ie),we=!1;if(ve===void 0){let Pe=i.getEntry(ie);we=Pe.type==="header";let _e;if(Pe.type==="header")_e=`__group_header_${Pe.group.groupIndex}`;else{let Fe=Y(Pe.dataIndex);if(Fe&&Fe._isPlaceholder!==!0)_e=String(Fe.id)}if(_e!==void 0){let Fe=I.get(_e);if(Fe)I.delete(_e),ve=Fe}if(!ve)ve=g.acquire();if(ve.setAttribute("data-index",String(ie)),ce(ve,Pe,Te,ie))j.delete(ie);else j.add(ie);if(oe(ve,ie),ve.style.transform=A(ie,de),fe.set(ie,ve),!Ee)Ee=document.createDocumentFragment();Ee.appendChild(ve)}else if(Ie&&j.has(ie)){let Pe=i.getEntry(ie);if(Pe.type==="item")if(ce(ve,Pe,Te,ie))j.delete(ie);else j.add(ie)}else if(we=ve.classList.contains(v),Ie)oe(ve,ie),ve.style.transform=A(ie,de);else if(ae)ve.style.transform=A(ie,de);if(!we&&Te)if(Te(ie,Ue),ve.classList.toggle(Me,Ue.selected),ve.classList.toggle(Se,Ue.focused),Ue.selected)ve.setAttribute("aria-selected","true");else ve.removeAttribute("aria-selected")}if(Ee)d.appendChild(Ee);le();let re=E?z():s.getTotalSize();V?.(re),a.prevRangeStart=pe,a.prevRangeEnd=ye,a.renderPending=!1;let me=0,Ce=0,Re=!1;for(let ie=pe;ie<=ye&&me<a.capacity;ie++){let ve=i.getEntry(ie);if(ve.type==="item"){if(!Re)Ce=ve.dataIndex,Re=!0;a.visibleIndices[me]=ve.dataIndex,a.visibleOffsets[me]=s.getOffset(ie),a.visibleSizes[me]=s.getSize(ie),me++}}a.visibleCount=me,a.startIndex=Ce}function Q(){if(a.destroyed)return;if(he(),vn)console.log(`[groups] forceRender, placeholders: ${j.size}, rendered: ${fe.size}`);let u=N?.()??0;if(u!==k){k=u;let J=i.groups,de=J.length;i.rebuild(B,L??Y);let ae=i.groups,Ie=ae.length!==de;if(!Ie){for(let xe=0;xe<de;xe++)if(ae[xe].headerLayoutIndex!==J[xe].headerLayoutIndex){Ie=!0;break}}if(Ie){U(i.totalEntries),W();let xe=E?z():s.getTotalSize();if(V?.(xe),n)n.refresh(),n.update(R.getPixelEquivalent());let pe=1/0,ye=Math.min(de,ae.length);for(let Me=0;Me<ye;Me++)if(ae[Me].headerLayoutIndex!==J[Me].headerLayoutIndex){pe=Math.min(ae[Me].headerLayoutIndex,J[Me].headerLayoutIndex);break}if(ae.length>de&&ye<ae.length)pe=Math.min(pe,ae[ye].headerLayoutIndex);else if(de>ae.length&&ye<de)pe=Math.min(pe,J[ye].headerLayoutIndex);if(pe<=a.prevRangeEnd)Z();let Te=x?.("_scrollbar:getInstance");if(Te)Te()?.updateBounds(xe,a.containerSize)}}a.prevRangeStart=-1,a.prevRangeEnd=-1,a.renderPending=!0,l=!0,K()}return{name:"groups",priority:10,setup(u){R=u.scroll,s=u.sizeCache,a=u.getState(),g=u.pool,d=u.dom.content,V=u.updateContentSize.bind(u),F=u.dom.root,m=u.template,S=u.config.axis.primary==="x",h=u.config.classPrefix,p=u.config.overscan,ne=u.config.mainAxisPadding,Y=u.getItem.bind(u),y=()=>u.getItemStateFn(),x=u.getMethod.bind(u),D=null,H=`${h}-item`,v=`${h}-group-header`;let J=x?.("getGridLayout"),de=x?.("getMasonryLayout");if(J){let re=J();f=re.columns,w=re.gap,M=u.config.crossPadStart,q=u.config.crossAxisPadding}else if(de){let re=de();f=re.columns,w=re.gap,M=u.config.crossPadStart,q=u.config.crossAxisPadding,te=!0;let me=u.rawSizeSpec;if(typeof me==="function")ue=(Ce)=>me(Ce,{columnWidth:X})}queueMicrotask(()=>{let re=x?.("_getLoadedItem");if(re)L=re;let me=x?.("_getLoadedCount");if(me)N=me});let ae=a.totalItems;i=hn(ae,e,L??Y),B=ae;let Ie=typeof t==="number"?(re)=>t:(re)=>{let me=i.groups[re];if(!me)return 0;return t(me.key,re)},xe=s.getSize,pe=(re)=>{let me=i.getEntry(re);if(me.type==="header"){if(e.sticky!==!1&&me.group.groupIndex===0)return 0;return Ie(me.group.groupIndex)}return xe(me.dataIndex)};u.setSizeConfig(pe);let ye=!1,Te=-1;if(u.registerMethod("_setSizeCacheBase",(re)=>{U=re}),U=s.rebuild,s.rebuild=(re)=>{if(ye){if(!N)N=x?.("_getLoadedCount")??null;let me=N?.()??0;if(re!==B||me!==Te){if(B=re,Te=me,!L)L=x?.("_getLoadedItem")??null;if(i.rebuild(re,L??((Ce)=>u.getItems()[Ce])),a.totalItems=i.totalEntries,n)n.refresh(),n.update(R.getPixelEquivalent())}}U(i.totalEntries)},s.rebuild(i.totalEntries),W(),u.setVirtualTotalFn(()=>i.totalEntries),F.classList.add(`${h}--grouped`),e.sticky!==!1){let re=(ie,ve)=>{let we=i.groups[ve];if(!we)return;let Pe=o(we.key,ve);if(typeof Pe==="string")ie.innerHTML=Pe;else ie.replaceChildren(Pe)},me=i.getHeaderHeight(0),Ce=Ct(F,h,S,me),Re=f>0?(ie)=>{let ve=E?.get(ie);return ve?ve.rowY:s.getOffset(ie)}:void 0;if(n=Sn(F,i,s,re,h,S,0,Ce,Re),n.update(R.getPixelEquivalent()),!S)u.dom.viewport.style.height=`calc(100% - ${me}px)`;else u.dom.viewport.style.width=`calc(100% - ${me}px)`,u.dom.viewport.style.marginLeft=`${me}px`}let Me=!!x?.("_updateTableForGroups");if(ye=Me,Me)queueMicrotask(()=>{let re=x?.("_getItem")??null,me=u.getItems.bind(u);u.setGetItemFn((Re)=>{let ie=i.getEntry(Re);if(ie.type==="header")return{id:`__group_header_${ie.group.groupIndex}`,__groupHeader:!0,groupKey:ie.group.key,groupIndex:ie.group.groupIndex};return re?re(ie.dataIndex):me()[ie.dataIndex]});let Ce=x?.("_updateTableForGroups");if(Ce)Ce((Re)=>!!Re.__groupHeader,o)});else u.setRenderFn(K,Q);u.registerMethod("getGroupLayout",()=>i),u.registerMethod("_dataToLayoutIndex",(re)=>i.dataToLayoutIndex(re)),u.registerMethod("_layoutToDataIndex",(re)=>i.layoutToDataIndex(re)),u.registerMethod("_getRenderedElement",(re)=>fe.get(re)??null),u.registerMethod("_isGroupHeader",(re)=>i.getEntry(re).type==="header"),u.registerMethod("_getItemLane",(re)=>{let me=E?.get(re);return me?me.col:-1}),u.registerMethod("_getItemY",(re)=>{let me=E?.get(re);return me?me.rowY:-1}),u.registerMethod("_getItemH",(re)=>E?.get(re)?.h??-1);let Se=u.config.startPadding,Ee=ne-Se;u.registerMethod("_scrollItemIntoView",(re)=>{if(re<0)return;let me=E?.get(re),Ce=me?me.rowY:s.getOffset(re),Re=me?.h??s.getSize(re),ie=a.containerSize,ve=R.getPixelEquivalent();if(Ce<ve+Se)u.scrollTo(Math.max(0,Ce-Se));else if(Ce+Re+Ee>ve+ie)u.scrollTo(Ce+Re+Ee-ie)}),u.registerMethod("scrollToIndex",(re,me="start")=>{let Ce=i.dataToLayoutIndex(re),Re=i.totalEntries;if(Re===0)return;let ie=Math.max(0,Math.min(Ce,Re-1)),ve=a.containerSize,we=E?.get(ie),Pe=we?we.rowY:s.getOffset(ie),_e=we?we.h??s.getSize(ie):s.getSize(ie),Oe=E?z()+ne:s.getTotalSize(),Fe=Math.max(0,Oe-ve),Ne=typeof me==="string"?me:me.align??"start",We=typeof me==="object"?me.behavior:void 0,He=typeof me==="object"?me.duration:void 0,Ve=E?ne:0,ee=Pe+_e;if(te&&c){let ze=i.getEntry(ie).group.groupIndex,O=c[ze];if(O!==void 0)ee=O}let Le;switch(Ne){case"center":Le=Pe-(ve-_e)/2;break;case"end":Le=ee-ve+Ve;break;default:Le=Pe}if(Le=Math.max(0,Math.min(Le,Fe)),We==="smooth"&&He&&He>0)u.smoothScrollTo(Le,He);else u.scrollTo(Le)}),u.registerDestroyHandler(()=>{for(let[,re]of fe)re.remove();if(fe.clear(),j.clear(),n)n.destroy(),n=null;F.classList.remove(`${h}--grouped`)})},hooks:{onAfterScroll(u,J){if(n)n.update(u)},onResize(u,J){if(f<=0)return;U(i.totalEntries),se=a.crossSize,W();let de=z();if(V?.(de),n)n.refresh(),n.update(R.getPixelEquivalent());l=!0,K()}},destroy(){if(n)n.destroy(),n=null;fe.clear(),j.clear(),I.clear()}}}var yn=(e,t,r)=>{if(String(r).startsWith($e))return!1;let o=$e+t;if(e.has(o))return e.delete(o),e.add(r),!0;return!1},In=(e)=>({selected:new Set(e??[]),focusedIndex:-1,focusVisible:!1});function Xe(e,t,r,o){if(r===0)return;let i=o?-t:t,n=e.focusedIndex+i;if(n<0)n=0;if(n>=r)n=r-1;e.focusedIndex=n}function at(e){return Array.from(e)}function Pt(e,t,r,o){if(o<=0)return 0;let i=o-1;if(r<=1)return e<0?0:e>i?i:e;let n=(t%r+r)%r;if(e<0)return n;if(e>i){let s=Math.floor(i/r)*r;return Math.min(s+n,i)}return e}var Kn={preventScroll:!0};function dt(e){let t=e?.mode??"single",r=e?.followFocus??!1,o=e?.focusOnClick??!1,i=e?.keyboard??!0,n,s,a,R,g,d,V,F,m=-1,Y=new Map,L=null,S=null,h=null,p=null,y,H=!1;function v(l){if(H)return;H=!0,L=l.getMethod("_layoutToDataIndex")??null,S=l.getMethod("_dataToLayoutIndex")??null,h=l.getMethod("_isGroupHeader")??null,p=l.getMethod("_scrollItemIntoView")??null,D=l.getMethod("_getLoadedItem")??null;let B=l.getMethod("getGroupLayout");if(B){let k=B();y=()=>k.totalEntries}}let x=(l)=>L?L(l):l,D=null,f=(l)=>{if(D)return D(l);return s()[l]},w=(l)=>{let B=x(l);return B>=0?f(B):void 0},M=(l,B,k)=>{if(!h)return l;let N=l;while(N>=0&&N<k){if(!h(N))return N;N+=B}N=l-B;while(N>=0&&N<k){if(!h(N))return N;N-=B}return l};function q(l,B){if(t==="single")n.selected.clear(),Y.clear();if(n.selected.add(l),B)Y.set(l,B)}function ne(l,B){if(n.selected.has(l))n.selected.delete(l),Y.delete(l);else q(l,B)}function te(){n.selected.clear(),Y.clear()}function ue(l){n.selected.delete(l),Y.delete(l)}function fe(l,B){let k=Math.min(l,B),N=Math.max(l,B);for(let U=k;U<=N;U++){if(h?.(U))continue;let be=w(U);if(be)n.selected.add(be.id),Y.set(be.id,be);else if(D){let _=x(U);if(_>=0)n.selected.add($e+_)}}}function j(){let l=V.totalItems;for(let B=0;B<l;B++){if(h?.(B))continue;let k=w(B);if(k)n.selected.add(k.id),Y.set(k.id,k);else if(D){let N=x(B);if(N>=0)n.selected.add($e+N)}}}function I(){if(n.selected.size===0)return[];if(Y.size>=n.selected.size){let N=[];for(let U of n.selected){let be=Y.get(U);if(be)N.push(be)}if(N.length===n.selected.size)return N}let l=[],B=new Set(n.selected),k=V.totalItems;for(let N=0;N<k&&B.size>0;N++){if(h?.(N))continue;let U=w(N);if(U&&B.has(U.id))l.push(U),Y.set(U.id,U),B.delete(U.id)}return l}function C(){a(),R.emit("selection:change",{selected:at(n.selected),items:I()})}let G=null,T=-1;return{name:"selection",priority:50,setup(l){l.enableListboxRole(),n=In(e?.initial),s=l.getItems.bind(l),a=l.forceRender.bind(l),R=l.emitter,g=l.dom;let B=l.config;if(d=l.sizeCache,V=l.getState(),F=l.scrollTo.bind(l),y=()=>V.totalItems,t==="none"){l.registerMethod("select",()=>{}),l.registerMethod("deselect",()=>{}),l.registerMethod("toggleSelect",()=>{}),l.registerMethod("selectAll",()=>{}),l.registerMethod("clearSelection",()=>{}),l.registerMethod("getSelected",()=>[]),l.registerMethod("getSelectedItems",()=>[]),l.registerMethod("selectNext",()=>{}),l.registerMethod("selectPrevious",()=>{}),l.registerMethod("_seedSelection",()=>{}),l.registerMethod("_getFocusedId",()=>{return}),l.registerMethod("_focusById",()=>{});return}let k=B.classPrefix;l.setItemStateFn((P,c)=>{if(v(l),n.selected.size>0){let W=x(P),z=W>=0?w(P):void 0,A=z?.id;if(A!==void 0)if(n.selected.has(A))c.selected=!0;else if(yn(n.selected,W,A))c.selected=!0,Y.delete($e+W),Y.set(A,z);else c.selected=!1;else c.selected=D!==null&&W>=0&&n.selected.has($e+W)}else c.selected=!1;c.focused=n.focusVisible&&n.focusedIndex===P}),l.registerMethod("_getSelectedIds",()=>n.selected),l.registerMethod("_getFocusedIndex",()=>n.focusVisible?n.focusedIndex:-1),g.root.classList.add(`${k}--selectable`);let N=(P)=>{G=null,T=-1;let c=P.target.closest("[data-index]");if(!c)return!1;let W=parseInt(c.dataset.index??"-1",10);if(W<0)return!1;if(h?.(W))return!1;if(x(W)<0)return!1;let A=w(W);if(!A)return!1;return G=A,T=W,!0},U=0,be=(P)=>{if(P<0)return;if(p){p(P);return}if(!U){let se=l.getMethod("_getRowGap");U=se?se():0}let c=l.getNavConfig(),W=c.scrollIndex?c.scrollIndex(P):P,z=d.getOffset(W),A=d.getSize(W)-U,oe=V.containerSize,Z=l.scroll.getPixelEquivalent(),{startPadding:le,endPadding:ce}=B;if(z<Z)F(z);else if(le+z+A+ce>Z+oe)F(le+z+A+ce-oe)},_=(P)=>{let c=g.content.querySelectorAll(`[data-index="${P}"]`),W=null;for(let z=0;z<c.length;z++){let A=c[z];if(A.style.display!=="none"){W=A;break}}if(!W&&c.length>0)W=c[0];g.content.setAttribute("aria-activedescendant",W?.id??`${k}-item-${P}`)},X=()=>{if(V.destroyed)return;if(v(l),!g.content.matches(":focus-visible")&&!g.root.matches(":focus-visible"))return;let P=y();if(P===0)return;let c=n.focusedIndex>=0?Math.min(n.focusedIndex,P-1):0;c=M(c,1,P),n.focusedIndex=c,n.focusVisible=!0,_(c),be(c),a()};g.root.addEventListener("focusin",X);let E=(P)=>{if(V.destroyed)return;let c=P.relatedTarget;if(c&&g.root.contains(c))return;n.focusVisible=!1,a(),g.content.removeAttribute("aria-activedescendant")};if(g.root.addEventListener("focusout",E),l.registerDestroyHandler(()=>{g.root.removeEventListener("focusin",X),g.root.removeEventListener("focusout",E)}),l.registerClickHandler((P)=>{if(v(l),!N(P))return;if(t==="multiple"&&P.shiftKey&&n.focusedIndex>=0){let W=m>=0?m:n.focusedIndex,z=x(W),A=x(T);if(z>=0&&A>=0)fe(W,T);n.focusedIndex=T,n.focusVisible=o,m=T,C();return}if(n.focusedIndex=T,n.focusVisible=o,m=T,(g.content.getAttribute("tabindex")!==null?g.content:g.root).focus(Kn),t==="single")q(G.id,G);else ne(G.id,G);C()}),i)l.registerKeydownHandler((P)=>{v(l);let c=y();if(c===0)return;let W=l.getNavConfig(),z=n.focusedIndex,A=!1,oe=!1;if(W.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 le=W.total?W.total():c,ce=W.navigate(n.focusedIndex,P.key,le);if(ce!==n.focusedIndex)n.focusedIndex=Math.max(0,Math.min(ce,le-1));n.focusVisible=!0,A=!0}else switch(P.key){case"ArrowUp":{let le=W.ud||1,ce=W.lr,se=B.axis.primary==="x";if(se&&!ce)break;Xe(n,-(se?ce:le),c,B.reverse),n.focusVisible=!0,A=!0;break}case"ArrowDown":{let le=W.ud||1,ce=W.lr,se=B.axis.primary==="x";if(se&&!ce)break;Xe(n,se?ce:le,c,B.reverse),n.focusVisible=!0,A=!0;break}case"ArrowLeft":{let le=W.ud||1,ce=W.lr,se=B.axis.primary==="x";if(!se&&!ce)break;Xe(n,-(se?le:ce),c,B.reverse),n.focusVisible=!0,A=!0;break}case"ArrowRight":{let le=W.ud||1,ce=W.lr,se=B.axis.primary==="x";if(!se&&!ce)break;Xe(n,se?le:ce,c,B.reverse),n.focusVisible=!0,A=!0;break}case"Home":if(c>0)n.focusedIndex=0;n.focusVisible=!0,A=!0;break;case"End":if(c>0)n.focusedIndex=c-1;n.focusVisible=!0,A=!0;break;case"PageUp":case"PageDown":{let le=W.ud||1,ce=Math.max(0,n.focusedIndex),se=W.scrollIndex?W.scrollIndex(ce):ce,he=d.getSize(se),K=V.containerSize,u=(he>0?Math.max(1,Math.floor(K/he)):10)*le;if(L&&S){let J=L(n.focusedIndex),de=P.key==="PageUp"?-u:u,ae=V.totalItems-1;n.focusedIndex=S(Pt(J+de,J,le,ae+1))}else{let J=P.key==="PageUp"?n.focusedIndex-u:n.focusedIndex+u;n.focusedIndex=Pt(J,n.focusedIndex,le,c)}n.focusVisible=!0,A=!0;break}case" ":case"Enter":if(P.key===" "&&P.shiftKey&&t==="multiple"&&n.focusedIndex>=0){if(m>=0){let le=x(m),ce=x(n.focusedIndex);if(le>=0&&ce>=0)fe(m,n.focusedIndex)}n.focusVisible=!0,oe=!0,A=!0;break}if(n.focusedIndex>=0){let le=w(n.focusedIndex);if(le)ne(le.id,le),m=n.focusedIndex;n.focusVisible=!0,oe=!0,A=!0}break;case"a":if((P.ctrlKey||P.metaKey)&&t==="multiple"){if(n.selected.size===V.totalItems)te();else j();n.focusVisible=!0,oe=!0,A=!0}break;case"Delete":case"Backspace":if(n.selected.size>0)R.emit("delete",{selected:at(n.selected),items:I()}),A=!0;break}if(n.focusedIndex!==z&&h){let le=n.focusedIndex>z?1:-1;n.focusedIndex=M(n.focusedIndex,le,c)}let Z=n.focusedIndex!==z;if(P.shiftKey&&t==="multiple"&&!oe&&Z){if(P.key==="ArrowUp"||P.key==="ArrowDown"||P.key==="ArrowLeft"||P.key==="ArrowRight"){let se=w(n.focusedIndex);if(se)ne(se.id,se);m=n.focusedIndex,oe=!0}if((P.ctrlKey||P.metaKey)&&(P.key==="Home"||P.key==="End")){let se=z>=0?z:n.focusedIndex,he=x(se),K=x(n.focusedIndex);if(he>=0&&K>=0)fe(se,n.focusedIndex);m=n.focusedIndex,oe=!0}}if(r&&t==="single"&&!oe&&Z&&n.focusedIndex>=0){let le=w(n.focusedIndex);if(le)q(le.id,le);oe=!0}if(A){if(P.preventDefault(),Z&&n.focusedIndex>=0){if(p||!W.navigate)be(n.focusedIndex);_(n.focusedIndex)}if(oe)C();else if(Z){if(a(),n.focusedIndex>=0){let le=w(n.focusedIndex);if(le)R.emit("focus:change",{id:le.id,index:n.focusedIndex})}}}});l.registerMethod("select",(...P)=>{for(let c of P)q(c);C()}),l.registerMethod("deselect",(...P)=>{for(let c of P)ue(c);C()}),l.registerMethod("toggleSelect",(P)=>{ne(P),C()}),l.registerMethod("selectAll",()=>{if(t!=="multiple")return;v(l),j(),C()}),l.registerMethod("clearSelection",()=>{te(),C()}),l.registerMethod("getSelected",()=>at(n.selected)),l.registerMethod("getSelectedItems",()=>I()),l.registerMethod("selectNext",()=>{v(l);let P=y();if(P===0)return;if(Xe(n,1,P,B.reverse),h)n.focusedIndex=M(n.focusedIndex,1,P);let c=w(n.focusedIndex);if(c)q(c.id,c);C()}),l.registerMethod("selectPrevious",()=>{v(l);let P=y();if(P===0)return;if(Xe(n,-1,P,B.reverse),h)n.focusedIndex=M(n.focusedIndex,-1,P);let c=w(n.focusedIndex);if(c)q(c.id,c);C()}),l.registerMethod("_seedSelection",(P)=>{if(t==="single"){if(P.length===1)n.selected.add(P[0])}else for(let c of P)n.selected.add(c)}),l.registerMethod("_isFollowFocus",()=>r),l.registerMethod("_getFocusedId",()=>{if(n.focusedIndex<0)return;return w(n.focusedIndex)?.id}),l.registerMethod("_focusById",(P)=>{let c=V.totalItems;for(let W=0;W<c;W++){if(h?.(W))continue;let z=w(W);if(z&&z.id===P){n.focusedIndex=W,n.focusVisible=o,R.emit("focus:change",{id:P,index:W});return}}})},destroy(){Y.clear()}}}var Xn=0,jn=1000,Zn=15,Jn=!0,Qn=16,eo=!0,Je=2,to="scroll",no=350,oo=12,ro=(e)=>{if(typeof e!=="object"){let t=e??Je;return{top:t,right:t,bottom:t,left:t}}return{top:e.top??Je,right:e.right??Je,bottom:e.bottom??Je,left:e.left??Je}},Tn=(e,t,r={},o="vlist",i=!1,n,s,a)=>{let R=navigator.userAgentData?.platform||navigator.platform+navigator.userAgent,g=r.platform?r.platform==="windows":!/Mac|Android/i.test(R),{autoHide:d=!g,autoHideDelay:V=jn,minThumbSize:F=Zn,showOnHover:m=Jn,showOnViewportEnter:Y=eo,clickBehavior:L=to}=r,S=L==="page"?"scroll":L,h=n??e,p=ro(r.padding),y=i?p.left:p.top,H=i?p.right:p.bottom,v=i?p.bottom:p.right,x=r.hoverZoneWidth??v+Qn,D=!0,f=0,w=0,M=0,q=0,ne=!1,te=!1,ue=0,fe=0,j=0,I=null,C=!1,G=null,T=null,l=-1,B=-1,k=-1,N=-1,U=-1,be=e.id?"":(()=>{let ee;do ee=`${o}-scrollport-${++Xn}`;while(document.getElementById(ee));return e.id=ee,ee})(),_=0,X=0,E=null,P=null,c=null,W=i?"width":"height",z=i?"translateX":"translateY",A=i?(ee)=>ee.clientX:(ee)=>ee.clientY,oe=i?"left":"top",Z=document.createElement("div"),le=document.createElement("div"),ce=document.createElement("div"),se=i?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",he=()=>{if(h===e)return;let ee=e.offsetTop;Z.style[i?"left":"top"]=ee?`calc(var(${se}) + ${ee}px)`:`var(${se})`,ce.style[i?"left":"top"]=`${ee}px`},K=()=>{if(Z.className=`${o}-scrollbar`,Z.setAttribute("role","scrollbar"),Z.setAttribute("aria-controls",e.id),Z.setAttribute("aria-orientation",i?"horizontal":"vertical"),Z.setAttribute("aria-label",e.getAttribute("aria-label")||"Scroll"),Z.setAttribute("aria-valuemin","0"),Z.tabIndex=0,le.className=`${o}-scrollbar__thumb`,i)Z.classList.add(`${o}-scrollbar--horizontal`);if(r.padding!==void 0)h.style.setProperty("--vlist-custom-scrollbar-padding-top",`${p.top}px`),h.style.setProperty("--vlist-custom-scrollbar-padding-right",`${p.right}px`),h.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${p.bottom}px`),h.style.setProperty("--vlist-custom-scrollbar-padding-left",`${p.left}px`);if(r.minThumbSize!==void 0)Z.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${F}px`);if(Z.appendChild(le),h.appendChild(Z),ce.className=`${o}-scrollbar__hover`,i)ce.classList.add(`${o}-scrollbar__hover--horizontal`),ce.style.height=`${x}px`;else ce.style.width=`${x}px`;if(h.appendChild(ce),h!==e)he()},Q=()=>{if(I)clearTimeout(I),I=null},u=()=>{if(!d)return;Q(),I=setTimeout(de,V)},J=()=>{if(!D||f<=w)return;if(Q(),!C)Z.classList.add(`${o}-scrollbar--visible`),C=!0;if(d&&!ne&&!te&&document.activeElement!==Z)u()},de=()=>{if(ne||te||document.activeElement===Z)return;Z.classList.remove(`${o}-scrollbar--visible`),C=!1},ae=(ee,Le)=>{if(f=ee,w=Le,he(),Ie(j),!D||f<=w){Z.style.display="none",Z.classList.remove(`${o}-scrollbar--visible`),C=!1;return}Z.style.display="";let ze=Math.max(0,w-y-H),O=w/f;if(M=Math.max(F,O*ze),le.style[W]=`${M}px`,q=ze-M,Ie(j),!d)J()},Ie=(ee)=>{let Le=Math.max(0,f-w);if(j=Math.max(0,Math.min(ee,Le)),l!==Le)l=Le,Z.setAttribute("aria-valuemax",String(Le));if(B!==j)B=j,Z.setAttribute("aria-valuenow",String(j));let ze=s?.(),O=ze?.getTotal()??0,b=O?ze.indexAtOffset(j)+1:0;if(b!==k||O!==N)k=b,N=O,Z.setAttribute("aria-valuetext",`Row ${b} of ${O}`);if(Le<=0||q<=0)return;let ge=j/Le*q;if(ge!==U)U=ge,le.style.transform=`${z}(${ge}px)`},xe=(ee)=>{if(!D||ee.target!==Z||document.activeElement!==Z)return;if(ee.stopPropagation(),ee.altKey||ee.ctrlKey||ee.metaKey)return;let Le=s?.(),ze=Le?.getSize(Le.indexAtOffset(j))??40,O=j;switch(ee.key){case(i?"ArrowLeft":"ArrowUp"):O-=ze;break;case(i?"ArrowRight":"ArrowDown"):O+=ze;break;case"PageUp":O-=w;break;case"PageDown":O+=w;break;case"Home":O=0;break;case"End":O=f;break;default:return}ee.preventDefault(),t(Math.max(0,Math.min(O,Math.max(0,f-w)))),J()},pe=(ee)=>{if(ee.target===le||S!=="jump"||q<=0)return;let Le=f-w,ze=Z.getBoundingClientRect(),O=A(ee)-ze[oe],b=Math.max(0,Math.min(O-M/2,q));t(b/q*Le),J()},ye=()=>{if(E!==null)clearTimeout(E),E=null;if(P!==null)cancelAnimationFrame(P),P=null;c=null},Te=(ee)=>{let Le=q>0?X/ee*q:0;if(_<Le)return-1;if(_>=Le+M)return 1;return 0},Me=()=>{let ee=f-w,Le=Te(ee);if(Le===0){ye();return}if(Le===-1){if(X<=0){ye();return}let ze=Math.max(0,X-w);X=ze,t(ze)}else{if(X>=ee){ye();return}let ze=Math.min(ee,X+w);X=ze,t(ze)}J()},Se=(ee)=>{if(c===null){c=ee,P=requestAnimationFrame(Se);return}let Le=f-w,ze=ee-c;c=ee;let O=Te(Le);if(O===0){ye();return}let b=oo*w/1000,ge=Math.min(b*ze,w);if(O===-1){if(X<=0){ye();return}let Ae=Math.max(0,X-ge);X=Ae,t(Ae)}else{if(X>=Le){ye();return}let Ae=Math.min(Le,X+ge);X=Ae,t(Ae)}Q(),P=requestAnimationFrame(Se)},Ee=(ee)=>{if(ee&&ee.pointerId!==G)return;let Le=G,ze=T;if(G=null,T=null,ne=!1,Z.classList.remove(`${o}-scrollbar--dragging`),ye(),Le!==null&&ze?.hasPointerCapture(Le))ze.releasePointerCapture(Le);u()},re=(ee)=>{if(!D||ee.button!==0||G!==null||q<=0)return;if(ee.preventDefault(),ee.stopPropagation(),G=ee.pointerId,ne=ee.target===le,T=ne?le:ee.currentTarget,T.setPointerCapture(G),Q(),ne)ue=A(ee),fe=j,Z.classList.add(`${o}-scrollbar--dragging`);else if(S==="jump")pe(ee);else _=A(ee)-Z.getBoundingClientRect()[oe],X=j,Me(),E=setTimeout(()=>{P=requestAnimationFrame(Se)},no);J()},me=(ee)=>{if(!ne||ee.pointerId!==G)return;ee.stopPropagation();let Le=A(ee)-ue,ze=Math.max(0,f-w),O=Math.max(0,Math.min(fe+Le/q*ze,ze));Ie(O),t(O)},Ce=()=>{if(Y)J()},Re=()=>{if(!ne){if(te=!1,d)u()}},ie=()=>{te=!0,Q(),J()},ve=()=>{if(te=!1,!ne&&d)u()},we=["width","radius","thumb-color","track-color"],Pe=(ee,Le)=>h.style.setProperty(`--vlist-custom-scrollbar-${ee}`,Le),_e=we.map((ee)=>h.style.getPropertyValue(`--vlist-custom-scrollbar-${ee}`)),Oe=_e.slice(0,2),Fe=[],Ne=()=>{for(let b=0;b<2;b++){let ge=we[b],Ae=h.style.getPropertyValue(`--vlist-custom-scrollbar-${ge}`);if(Ae!==Fe[b])Oe[b]=Ae;Pe(ge,Oe[b])}let ee=getComputedStyle(a??h),Le=r.width??ee.getPropertyValue("scrollbar-width"),ze=ee.getPropertyValue("scrollbar-color").match(/[\w-]+\([^)]*\)|\S+/g);D=r.enabled!==!1&&Le!=="none";let O=[typeof r.width==="number"?`${r.width}px`:ee.getPropertyValue("--vlist-custom-scrollbar-width").trim()||(Le==="thin"||!g?"6px":"14px"),typeof r.radius==="number"?`${r.radius}px`:ee.getPropertyValue("--vlist-custom-scrollbar-radius").trim()||(g?"0px":"4px"),r.thumbColor??(ze?.length===2?ze[0]:_e[2]),r.trackColor??(ze?.length===2?ze[1]:_e[3])];for(let b=0;b<we.length;b++)Pe(we[b],O[b]);if(Fe=O.slice(0,2),ce.style.display=D?"":"none",e.classList.toggle(`${o}-viewport--gutter`,D&&!!r.gutter),!D)Ee();ae(f,w)},We=()=>{Q(),ye(),Ee(),Q();for(let ee of He)ee();for(let ee=0;ee<we.length;ee++)Pe(we[ee],_e[ee]);if(e.classList.remove(`${o}-viewport--gutter`),ce.remove(),h.style.removeProperty("--vlist-custom-scrollbar-padding-top"),h.style.removeProperty("--vlist-custom-scrollbar-padding-right"),h.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),h.style.removeProperty("--vlist-custom-scrollbar-padding-left"),Z.remove(),be&&e.id===be)e.removeAttribute("id")};K();let He=[],Ve=(ee,Le,ze)=>{ee.addEventListener(Le,ze),He.push(()=>ee.removeEventListener(Le,ze))};for(let ee of[Z,le,ce])Ve(ee,"pointerdown",re),Ve(ee,"pointermove",me),Ve(ee,"pointerup",Ee),Ve(ee,"pointercancel",Ee),Ve(ee,"lostpointercapture",Ee);if(Ve(Z,"keydown",xe),Ve(Z,"focus",J),Ve(Z,"blur",u),Ve(e,"mouseenter",Ce),Ve(e,"mouseleave",Re),Ve(Z,"mouseenter",ie),Ve(Z,"mouseleave",ve),m)Ve(ce,"mouseenter",ie),Ve(ce,"mouseleave",ve);return Ne(),{refresh:Ne,show:J,hide:de,updateBounds:ae,updatePosition:Ie,isVisible:()=>C,destroy:We}};function zt(e){let t=null,r,o=0,i=0,n=0;return{name:"scrollbar",priority:15,setup(s){let{dom:a,config:R}=s,{classPrefix:g}=R,d=R.axis.primary==="x";r=s.getState(),o=R.mainAxisPadding;let V=(F)=>{s.scrollTo(F)};s.registerMethod("_scrollbar:setCallback",(F)=>{V=F}),t=Tn(a.viewport,(F)=>{V(F)},e,g,d,a.root,()=>s.sizeCache,a.root.parentElement),a.viewport.classList.add(`${g}-viewport--custom-scrollbar`),s.registerMethod("refreshScrollbar",()=>t?.refresh()),queueMicrotask(()=>{t?.updateBounds(r.totalSize+o,r.containerSize)}),s.registerMethod("_scrollbar:getInstance",()=>t),s.registerDestroyHandler(()=>{if(t?.destroy(),t=null,a.viewport.classList.remove(`${g}-viewport--custom-scrollbar`),e?.gutter)a.viewport.classList.remove(`${g}-viewport--gutter`)})},hooks:{onAfterScroll(s){let a=r.totalSize+o,R=r.containerSize;if(a!==i||R!==n)i=a,n=R,t?.updateBounds(a,R);t?.updatePosition(s),t?.show()},onResize(){let s=r.totalSize+o,a=r.containerSize;i=s,n=a,t?.updateBounds(s,a)}},destroy(){t?.destroy(),t=null}}}var io=(e)=>{try{let t=sessionStorage.getItem(e);if(!t)return;return JSON.parse(t)}catch{return}};function At(e){let t=e?.autoSave,r=e?.restore??(t?io(t):void 0),o=!1,i=null;return{name:"snapshots",priority:50,setup(n){let{sizeCache:s,emitter:a,scroll:R}=n,g=n.getState(),d=()=>{let m=R.getPixelEquivalent(),Y=g.totalItems,S=n.getMethod("getSelected")?.();if(Y===0){let f={index:0,offsetInItem:0,total:0};if(S?.length)f.selectedIds=S;return f}let h=s.indexAtOffset(m),p=m-s.getOffset(h);p=Math.max(0,p);let y={index:h,offsetInItem:p,total:Y,scrollTop:m},H=s.getSize(h);if(H)y.offsetRatio=p/H;let v=n.getMethod("_layoutToDataIndex");if(v){let f=v(h);if(f<0){for(let w=h+1;w<Y;w++)if(f=v(w),f>=0)break}if(f>=0)y.dataIndex=f}let x=n.getMethod("_getTotal");if(x)y.dataTotal=x();if(S?.length)y.selectedIds=S;let D=n.getMethod("_getFocusedId");if(D){let f=D();if(f!==void 0)y.focusedId=f}return y};n.registerMethod("getScrollSnapshot",d);let V=(m,Y=!0)=>{let{index:L,offsetInItem:S,selectedIds:h,focusedId:p}=m,y=g.totalItems,H=m.dataTotal??m.total;if(y===0&&H&&H>0){let I=n.getMethod("_setTotal");if(I)I(H),y=g.totalItems;s.rebuild(y),n.updateContentSize(s.getTotalSize()),g.totalSize=s.getTotalSize()}if(y===0)return Promise.resolve();if(!Number.isFinite(L)||!Number.isFinite(S))return Promise.resolve();if(s.getTotal()===0)s.rebuild(y),n.updateContentSize(s.getTotalSize()),g.totalSize=s.getTotalSize();let x=n.getMethod("_dataToLayoutIndex"),D=L;if(m.dataIndex!==void 0&&m.dataIndex>=0)D=x?x(m.dataIndex):m.dataIndex;else if(x)D=x(L);let f=Math.max(0,Math.min(D,y-1)),w=s.getSize(f),M=m.offsetRatio!==void 0?m.offsetRatio*w:Math.min(S,w),q=n.getMethod("_getTotal")?.(),ne=m.total===y||q!==void 0&&m.dataTotal===q,te;if(m.scrollTop!==void 0&&ne)te=m.scrollTop;else te=s.getOffset(f)+M;let ue=Math.max(0,g.totalSize-g.containerSize);if(te=Math.max(0,Math.min(te,ue)),n.scrollTo(te),Y&&h?.length){let I=n.getMethod("select");if(I)I(...h)}let fe=n.getMethod("loadVisibleRange"),j=()=>{if(p===void 0)return;let I=n.getMethod("_focusById");if(I)I(p)};return new Promise((I)=>{let C=(G)=>{if(G)j();I()};if(fe){let G=0,T=()=>{if(g.containerSize>0){if(Math.abs(R.getPixelEquivalent()-te)>1)n.scrollTo(te);fe().then(()=>C(!0),()=>C(!1))}else if(++G<10)requestAnimationFrame(T);else C(!1)};requestAnimationFrame(T)}else{let G=n.getMethod("reload");if(G)requestAnimationFrame(()=>{G().then(()=>C(!0),()=>C(!1))});else requestAnimationFrame(()=>C(!0))}})};n.registerMethod("restoreScroll",V);let F=!!(r&&t);if(n.registerDestroyHandler(()=>{o=!0}),t){i=()=>{if(o||F)return;let y=d();try{sessionStorage.setItem(t,JSON.stringify(y))}catch{}},n.registerMethod("_saveSnapshot",i);let m=0,Y=()=>{if(m)return;m=requestAnimationFrame(()=>{if(m=0,i)i()})};a.on("selection:change",Y),a.on("focus:change",Y);let L=0,S=()=>{if(L=0,i)i()},h=()=>{if(L)clearTimeout(L);L=setTimeout(S,300)};a.on("scroll",h);let p=()=>{i?.()};if(window.addEventListener("beforeunload",p),n.registerDestroyHandler(()=>{if(m)cancelAnimationFrame(m);if(L)clearTimeout(L);window.removeEventListener("beforeunload",p)}),r&&r.total&&r.total>0){let y=n.getMethod("_cancelAutoLoad");if(y)y();let H=n.getMethod("_setTotal");if(H)H(r.total)}}if(r){let m=!0;if(r.selectedIds?.length){let Y=n.getMethod("_seedSelection");if(Y)Y(r.selectedIds),m=!1}queueMicrotask(()=>{if(V(r,m),F=!1,i)i()})}},hooks:{onIdle(){if(i&&!o)i()}},destroy(){o=!0,i=null}}}function so(e){let t=[];if(typeof window<"u"&&e.scroll?.element===window)t.push(yt());let r=e.item,o=e.orientation==="horizontal",i=o?r.width!=null:r.height!=null,n=o?r.estimatedWidth!=null:r.estimatedHeight!=null;if(!i&&n)t.push(It());if(e.adapter)t.push(Tt({adapter:e.adapter,...e.loading&&{loading:e.loading}}));if(e.layout==="grid"&&e.grid)t.push(xt(e.grid));if(e.layout==="masonry"&&e.masonry)t.push(Lt(e.masonry));if(e.groups){let R=e.groups,g=typeof R.headerHeight==="function"?R.headerHeight("",0):R.headerHeight;t.push(Mt({getGroupForIndex:R.getGroupForIndex,...g!==void 0&&{headerHeight:g},...R.headerTemplate!==void 0&&{headerTemplate:R.headerTemplate},...R.sticky!==void 0&&{sticky:R.sticky}}))}if((e.selection?.mode||"none")!=="none")t.push(dt(e.selection));else t.push(dt({mode:"none"}));let a=e.scroll?.scrollbar||e.scrollbar;if(a!=="none"&&a!=="native"){let R=a&&typeof a==="object"?a:{};t.push(zt(R))}if(t.push(At()),e.plugins&&e.plugins.length>0){let R=new Set(e.plugins.map((d)=>d.name));return[...t.filter((d)=>!R.has(d.name)),...e.plugins]}return t}function di(e){let{factory:t,...r}=e;return(t??ln)(r,so(e))}export{di as createVListFromConfig,so as resolvePlugins};
@@ -2,6 +2,8 @@
2
2
  * vlist - Constants
3
3
  * All default values and magic numbers in one place
4
4
  */
5
+ /** Conservative native document element size limit, in CSS pixels. */
6
+ export declare const MAX_ELEMENT_SIZE = 16777216;
5
7
  /** Default number of extra items to render outside viewport */
6
8
  export declare const OVERSCAN = 3;
7
9
  /** Default CSS class prefix */
@@ -51,18 +53,6 @@ export declare const SCROLL_DURATION = 300;
51
53
  * scrollbar room to move before a rebase shifts the logical origin.
52
54
  */
53
55
  export declare const BOUNDED_RUNWAY_FACTOR = 2;
54
- /**
55
- * Minimum runway multiple. The runway must exceed the viewport so native scroll
56
- * and touch/trackpad momentum have room before a rebase; below this there would
57
- * be little-to-no native scrollable range. User-supplied `scroll.runway` values
58
- * are clamped up to this floor.
59
- *
60
- * 1.5 keeps a half-viewport of native scroll travel — enough for the native
61
- * scrollbar and most touch gestures. The wheel/trackpad path is already fully
62
- * synthetic (driven in logical space), so it is unaffected by the runway size;
63
- * a small runway only risks interrupting native touch momentum at the edges.
64
- */
65
- export declare const BOUNDED_RUNWAY_MIN = 1.5;
66
56
  /**
67
57
  * Lower rebase trigger: when native scrollTop drops below this fraction of the
68
58
  * runway (and we are not already at the logical start), shift the origin back.
@@ -45,9 +45,11 @@ export interface ScrollAdapter {
45
45
  setLogical(pos: LogicalScrollPosition): void;
46
46
  /** Pixel-equivalent of the current position (for public API / events). */
47
47
  getPixelEquivalent(): number;
48
+ /** Origin subtracted from logical item offsets when positioning content. */
49
+ getRenderOrigin(): number;
48
50
  /** Move to a pixel-equivalent position. Out-of-range input is clamped. */
49
51
  setPixelEquivalent(px: number): void;
50
- /** Maximum scrollable pixel-equivalent (`totalSize - containerSize`, >= 0). */
52
+ /** Maximum scrollable pixel-equivalent (`totalSize + padding - containerSize`, >= 0). */
51
53
  getMaxPixelEquivalent(): number;
52
54
  /** Advance the position by a pixel delta (used by native/wheel input). */
53
55
  scrollByPx(delta: number): void;
@@ -58,10 +60,14 @@ export interface ScrollAdapterConfig {
58
60
  readonly sizeCache: SizeCache;
59
61
  /** Read the current pixel-equivalent position from the active scroll source. */
60
62
  readonly getPixel: () => number;
63
+ /** Read the origin owned by the active scroll source. */
64
+ readonly getRenderOrigin: () => number;
61
65
  /** Write a (clamped) pixel-equivalent position to the active scroll source. */
62
66
  readonly setPixel: (px: number) => void;
63
67
  /** Current viewport size along the main axis. */
64
68
  readonly getContainerSize: () => number;
69
+ /** Total start and end padding along the main axis. */
70
+ readonly padding: number;
65
71
  }
66
72
  /**
67
73
  * Convert a pixel offset into a logical position. The returned position is