vlist 2.6.4 → 2.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.github.md +1 -1
- package/README.md +1 -1
- package/dist/config.js +1 -1
- package/dist/core/state.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/size.json +1 -1
- package/package.json +1 -1
package/README.github.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The virtual list library for every framework. Ultra efficient, batteries-included, and accessible with composable plugins — in 9.7 KB.
|
|
4
4
|
|
|
5
|
-
**v2.6.
|
|
5
|
+
**v2.6.5** — [Changelog](./CHANGELOG.md) · Bounded mode no longer judders on wheel: rows now move on every step, not only when the visible range crosses a row boundary.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/vlist)
|
|
8
8
|
[](https://bundlephobia.com/package/vlist)
|
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
The virtual list library for every framework. Ultra efficient, batteries-included, and accessible with composable plugins — in 9.7 KB.
|
|
4
4
|
|
|
5
|
-
**v2.6.
|
|
5
|
+
**v2.6.5** — [Changelog](https://github.com/floor/vlist/blob/main/CHANGELOG.md) · Bounded mode no longer judders on wheel: rows now move on every step, not only when the visible range crosses a row boundary.
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/vlist)
|
|
8
8
|
[](https://bundlephobia.com/package/vlist)
|
package/dist/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var Je=3,Pt="vlist";var Qe=50;var zt=50,At=2,wt=15,Rt=6,at=2000,Ht=30000,dt=16000000,Oe=150,qe=1,et=(t)=>t<0.5?2*t*t:1-(-2*t+2)**2/2,_t=300,kt=2,Ft=1.5,Dt=0.25,Vt=0.75;var Ot="x",Gt=20,ut="_isPlaceholder",_e="__placeholder_";var tt={top:0,right:0,bottom:0,left:0},$t=(t)=>{if(t==null)return tt;if(typeof t==="number")return t===0?tt:{top:t,right:t,bottom:t,left:t};if(t.length===2){let[n,s]=t;return n===0&&s===0?tt:{top:n,right:s,bottom:n,left:s}}let[e,r,o,i]=t;return e===0&&r===0&&o===0&&i===0?tt:{top:e,right:r,bottom:o,left:i}},Nt=(t,e)=>e?t.left+t.right:t.top+t.bottom,Bt=(t,e)=>e?t.top+t.bottom:t.left+t.right;function Wt(t){let e={visibleIndices:new Int32Array(t),visibleOffsets:new Float64Array(t),visibleSizes:new Float64Array(t),visibleCount:0,startIndex:0,totalSize:0,capacity:t,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,prevAriaTotal:-1,resizeCapacity(r,o,i=Je){if(o<=0||r<=0)return;let n=Math.ceil(r/o)+i*2;if(n<=e.capacity)return;let s=n+8,a=new Int32Array(s),E=new Float64Array(s),S=new Float64Array(s);a.set(e.visibleIndices),E.set(e.visibleOffsets),S.set(e.visibleSizes),e.visibleIndices=a,e.visibleOffsets=E,e.visibleSizes=S,e.capacity=s},clear(){e.visibleCount=0,e.startIndex=0}};return e}var Cn=(t,e)=>{let r=e;return{getOffset:(o)=>o*t,getSize:(o)=>t,indexAtOffset:(o)=>{if(r===0||t===0)return 0;return Math.max(0,Math.min(Math.floor(o/t),r-1))},getTotalSize:()=>r*t,getTotal:()=>r,rebuild:(o)=>{r=o},isVariable:()=>!1}},Pn=(t,e)=>{let r=e,o=new Float64Array(0),i=(s)=>{r=s,o=new Float64Array(s+1),o[0]=0;for(let a=0;a<s;a++)o[a+1]=o[a]+t(a)};i(e);let n=(s)=>{if(r===0)return 0;if(s<=0)return 0;if(s>=o[r])return r-1;let a=0,E=r-1;while(a<E){let S=a+E+1>>>1;if(o[S]<=s)a=S;else E=S-1}return a};return{getOffset:(s)=>{if(s<=0)return 0;if(s>=r)return o[r];return o[s]},getSize:(s)=>t(s),indexAtOffset:(s)=>n(s),getTotalSize:()=>o[r]??0,getTotal:()=>r,rebuild:(s)=>i(s),isVariable:()=>!0}},nt=(t,e)=>{if(typeof t==="number")return Cn(t,e);return Pn(t,e)};function Ut(t){let e=[],r=`${t}-item`,o=document.createElement("div");return o.className=r,{acquire(){if(e.length>0)return e.pop();return o.cloneNode(!1)},release(i){if(i.className=r,i.removeAttribute("style"),i.removeAttribute("id"),i.removeAttribute("role"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-posinset"),i.removeAttribute("aria-setsize"),i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.textContent="",e.length<100)e.push(i)},get size(){return e.length},clear(){e.length=0}}}function Be(t){let e=t.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let r=0;r<e.length;r++)e[r].setAttribute("tabindex","-1")}function Yt(t){if(typeof t==="string"){let e=document.querySelector(t);if(!e)throw Error(`[vlist] Container not found: ${t}`);return e}return t}function Kt(t,e,r,o){let i=r?`${e} ${e}--horizontal`:e,n=r?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",s=r?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",a=' role="list"';if(o)a+=` aria-label="${o.replace(/"/g,""")}"`;if(r)a+=' aria-orientation="horizontal"';t.insertAdjacentHTML("beforeend",`<div class="${i}"><div class="${e}-viewport" style="${n}" tabindex="-1"><div class="${e}-content" style="${s}"${a}></div></div></div>`);let E=t.lastElementChild,S=E.firstElementChild,g=S.firstElementChild,H=document.createElement("div");return H.className=`${e}-live`,H.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",H.setAttribute("aria-live","polite"),H.setAttribute("aria-atomic","true"),H.setAttribute("role","status"),E.appendChild(H),{root:E,viewport:S,content:g,liveRegion:H}}function Xt(t){let{state:e,viewport:r,isX:o,wheelEnabled:i,onFrame:n,onIdle:s}=t,a=t.idleTimeout||Oe,E=t.scrollTarget??r,S=null,g=null;function H(){let y=o?r.scrollLeft:r.scrollTop;if(Math.abs(y-e.scrollPosition)<0.5)return;e.prevScrollPosition=e.scrollPosition,e.scrollPosition=y,e.scrollDirection=y>e.prevScrollPosition?1:y<e.prevScrollPosition?-1:0,n(),b()}function k(y){let l;if(o){if(Math.abs(y.deltaX)>Math.abs(y.deltaY))return;let h=r.scrollLeft,z=r.scrollWidth-r.clientWidth;if(l=Math.max(0,Math.min(h+y.deltaY*qe,z)),Math.abs(l-h)<1)return;y.preventDefault(),r.scrollLeft=l}else{let h=r.scrollWidth>r.clientWidth;if(h&&Math.abs(y.deltaX)>Math.abs(y.deltaY))return;if(h&&y.deltaX!==0)y.preventDefault(),r.scrollLeft+=y.deltaX;let z=r.scrollTop,u=r.scrollHeight-r.clientHeight;if(l=Math.max(0,Math.min(z+y.deltaY*qe,u)),Math.abs(l-z)<1)return;y.preventDefault(),r.scrollTop=l}e.prevScrollPosition=e.scrollPosition,e.scrollPosition=l,e.scrollDirection=l>e.prevScrollPosition?1:-1,n(),b()}function b(){if(S!==null)clearTimeout(S);S=setTimeout(()=>{S=null,e.scrollDirection=0,s()},a)}function D(){if(g!==null)cancelAnimationFrame(g),g=null}function v(y,l,h,z=et,u){D();let A=e.scrollPosition,O=typeof y==="function"?y:()=>y,p=O();if(Math.abs(p-A)<1){if(h)h(p);else if(o)r.scrollLeft=p;else r.scrollTop=p;u?.();return}let U=performance.now();function V(F){p=O();let q=F-U,j=Math.min(q/l,1),J=A+(p-A)*z(j);if(h)h(J);else if(o)r.scrollLeft=J;else r.scrollTop=J;if(!h)e.scrollPosition=J;if(n(),j<1)g=requestAnimationFrame(V);else g=null,b(),u?.()}g=requestAnimationFrame(V)}return{attach(){if(E.addEventListener("scroll",H,{passive:!0}),i)E.addEventListener("wheel",k,{passive:!1})},detach(){if(E.removeEventListener("scroll",H),i)E.removeEventListener("wheel",k);if(D(),S!==null)clearTimeout(S),S=null},cancelScroll:D,smoothScrollTo:v}}function Ye(t,e,r){if(t<e)return e;if(t>r)return r;return t}function qt(t){let{state:e,viewport:r,content:o,isX:i,wheelEnabled:n,onFrame:s,onIdle:a,mainAxisPadding:E}=t,S=t.idleTimeout||Oe,g=t.runwayFactor??kt,H=t.wrap??null,k=H!==null,b=t.scrollTarget??r,D=0,v=0,y=0,l=null,h=null;function z(){return i?r.scrollLeft:r.scrollTop}function u(P){if(i)r.scrollLeft=P;else r.scrollTop=P}function A(P){let _=k?P:Ye(P,0,v);e.prevScrollPosition=e.scrollPosition,e.scrollPosition=_,e.scrollDirection=_>e.prevScrollPosition?1:_<e.prevScrollPosition?-1:0;let M=D/2;if(k){e.baseOffset=_-M,u(M);return}let R=Ye(_-M,0,y);e.baseOffset=R,u(Ye(_-R,0,D))}function O(P){A(P),s(),q()}function p(){let P=z(),_=e.baseOffset+P;if(Math.abs(_-e.scrollPosition)<0.5)return;if(e.prevScrollPosition=e.scrollPosition,e.scrollPosition=_,e.scrollDirection=_>e.prevScrollPosition?1:_<e.prevScrollPosition?-1:0,U(P),k)V();s(),q()}function U(P){let _=D*Dt,M=D*Vt,R=D/2;if(k){if(P>=_&&P<=M)return;e.baseOffset=e.scrollPosition-R,u(R);return}if(y<=0)return;let B=e.baseOffset,c=P<_&&B>0,d=P>M&&B<y;if(!c&&!d)return;let W=e.scrollPosition,G=Ye(W-R,0,y);if(G===B)return;e.baseOffset=G,u(Ye(W-G,0,D))}function V(){let P=H.lapSize();if(P<=0)return;let _=e.scrollPosition-H.home(),M=Math.trunc(_/P);if(Math.abs(M)<H.thresholdLaps)return;let R=M*P;e.scrollPosition-=R,e.prevScrollPosition-=R,e.baseOffset-=R}function F(P){let _;if(i)if(Math.abs(P.deltaX)>Math.abs(P.deltaY)){if(!k)return;_=P.deltaX}else _=P.deltaY;else{let c=r.scrollWidth>r.clientWidth;if(c&&Math.abs(P.deltaX)>Math.abs(P.deltaY))return;if(c&&P.deltaX!==0)P.preventDefault(),r.scrollLeft+=P.deltaX;_=P.deltaY}let M=e.scrollPosition,R=M+_*qe,B=k?R:Ye(R,0,v);if(Math.abs(B-M)<1)return;if(P.preventDefault(),O(B),k)V()}function q(){if(l!==null)clearTimeout(l);l=setTimeout(()=>{l=null,e.scrollDirection=0,a()},S)}function j(){if(h!==null)cancelAnimationFrame(h),h=null}function J(P,_,M,R=et,B){j();let c=e.scrollPosition,d=typeof P==="function"?P:()=>P,W=d();if(Math.abs(W-c)<1){O(W),B?.();return}let G=performance.now();function w(I){W=d();let N=Math.min((I-G)/_,1);if(A(c+(W-c)*R(N)),s(),N<1)h=requestAnimationFrame(w);else h=null,q(),B?.()}h=requestAnimationFrame(w)}function me(P){let _=e.containerSize,M=P+E,R=_*g,B=k?R:Math.min(M,R);D=Math.max(0,B-_),v=Math.max(0,M-_),y=Math.max(0,M-B),e.totalSize=P,o.style[i?"width":"height"]=B+"px",A(e.scrollPosition)}return{attach(){if(b.addEventListener("scroll",p,{passive:!0}),n)b.addEventListener("wheel",F,{passive:!1})},detach(){if(b.removeEventListener("scroll",p),n)b.removeEventListener("wheel",F);if(j(),l!==null)clearTimeout(l),l=null},cancelScroll:j,smoothScrollTo:J,setLogical:O,getLogical(){return e.scrollPosition},getMaxLogical(){return v},refresh:me}}function zn(t,e){if(t.getTotal()<=0)return{index:0,offsetPx:0};let o=e<=0?0:e,i=t.indexAtOffset(o),n=o-t.getOffset(i);return{index:i,offsetPx:n>0?n:0}}function An(t,e){let r=wn(t,e);return t.getOffset(r.index)+r.offsetPx}function wn(t,e){let r=t.getTotal();if(r<=0)return{index:0,offsetPx:0};let{index:o,offsetPx:i}=e;if(o<0)return{index:0,offsetPx:0};if(o>r-1)o=r-1;while(i>0&&o<r-1){let n=t.getSize(o);if(i<n)break;i-=n,o++}while(i<0&&o>0)o--,i+=t.getSize(o);if(i<0)i=0;return{index:o,offsetPx:i}}function jt(t){let{sizeCache:e,getPixel:r,setPixel:o,getContainerSize:i}=t;function n(){let a=e.getTotalSize()-i();return a>0?a:0}function s(a){if(a<=0)return 0;let E=n();return a>E?E:a}return{getLogical(){return zn(e,r())},setLogical(a){o(s(An(e,a)))},getPixelEquivalent(){return r()},setPixelEquivalent(a){o(s(a))},getMaxPixelEquivalent:n,scrollByPx(a){o(s(r()+a))}}}var je=[],Rn={calculate:je,commit:je,afterScroll:je,idle:je,resize:je};function Zt(t){if(t.length===0)return Rn;let e=[],r=[],o=[],i=[],n=[];for(let s=0;s<t.length;s++){let a=t[s].hooks;if(a===void 0)continue;if(a.onCalculate!==void 0)e.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:e,commit:r,afterScroll:o,idle:i,resize:n}}function Jt(t,e){for(let r=0;r<t.length;r++)t[r](e)}function Qt(t,e){for(let r=0;r<t.length;r++)t[r](e)}function ct(t,e,r){for(let o=0;o<t.length;o++)t[o](e,r)}function en(t){for(let e=0;e<t.length;e++)t[e]()}function tn(t,e,r){for(let o=0;o<t.length;o++)t[o](e,r)}function nn(t,e,r,o,i,n,s,a){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:a??null,indexMap:null,ariaTotalFn:null}}function Hn(t,e,r,o,i){if(t.containerSize<=0||t.totalItems===0)return t.clear(),!0;let{scrollPosition:n,containerSize:s,totalItems:a}=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<a-1)g++;S=Math.max(0,S),g=Math.min(a-1,Math.max(0,g));let H=Math.max(0,S-r),k=Math.min(a-1,g+r),b=Math.ceil(s/1)+r*2+10,D=k-H+1,v=Math.min(D,t.capacity,b);if(H===t.prevRangeStart&&k===t.prevRangeEnd&&!t.renderPending)return!1;t.visibleCount=v,t.startIndex=H;for(let y=0;y<v;y++){let l=H+y;t.visibleIndices[y]=l,t.visibleOffsets[y]=e.getOffset(l),t.visibleSizes[y]=e.getSize(l)}return Jt(o.calculate,t),t.prevRangeStart=H,t.prevRangeEnd=k,t.renderPending=!1,!0}var Re={selected:!1,focused:!1};function _n(t,e,r){for(let o=0;o<e;o++)if(t[o]===r)return!0;return!1}function kn(t,e){if(e<=1)return!0;let r=t[0];for(let o=1;o<e;o++){let i=t[o];if(i!==r+1)return!1;r=i}return!0}function Fn(t,e,r,o,i,n,s,a,E,S){let g=E?null:i(),{visibleCount:H,visibleIndices:k}=t,b=s.ariaTotalFn?s.ariaTotalFn():t.totalItems,D=s.interactive?String(b):"",v=s.interactive&&b!==t.prevAriaTotal,y=null,l=s.indexMap;for(let h=0;h<H;h++){let z=k[h],u=l?l(z):z,A=t.visibleOffsets[h],O=t.visibleSizes[h],p=E?E(z):g[z];if(S)S(u,Re);else Re.selected=!1,Re.focused=!1;let U=n.get(z),V=U;if(U===void 0){let F=e.acquire();if(p!==void 0){let J;try{J=o(p,u,Re)}catch(me){if(s.emitter)s.emitter.emit("error",{error:me instanceof Error?me:Error(String(me)),context:`template:render:${u}`});e.release(F);continue}if(typeof J==="string")F.innerHTML=J;else F.textContent="",F.appendChild(J);Be(F)}if(F.setAttribute("role",s.itemRole),F.setAttribute("data-index",String(u)),s.interactive)F.id=s.prefix+"-item-"+z,F.setAttribute("aria-posinset",String(u+1)),F.setAttribute("aria-setsize",D);if(p!==void 0){let J=String(p.id);if(F.setAttribute("data-id",J),J.startsWith(_e))F.classList.add(s.placeholderClass)}if(s.hasCrossPad)F.style.setProperty(s.crossStartProp,s.crossStartVal),F.style.setProperty(s.crossEndProp,s.crossEndVal);if(S){if(F.classList.toggle(s.selectedClass,Re.selected),F.classList.toggle(s.focusedClass,Re.focused),Re.selected)F.setAttribute("aria-selected","true");else F.removeAttribute("aria-selected");F._lastSelected=Re.selected,F._lastFocused=Re.focused}if(s.oddClass)F.classList.toggle(s.oddClass,(z&1)===1);let q=A-t.baseOffset+s.startPadding;F.style.transform=s.translateProp+q+"px)",F._lastOffset=q;let j=O-s.gap;if(F.style[s.sizeProp]=j+"px",F._lastSize=j,F._lastItem=p,n.set(z,F),y===null)y=document.createDocumentFragment();y.appendChild(F)}else{if(v)U.setAttribute("aria-setsize",D);if(p!==void 0&&V._lastItem!==p){let j=U.getAttribute("data-id"),J=String(p.id),me;try{me=o(p,u,Re)}catch(P){if(s.emitter)s.emitter.emit("error",{error:P instanceof Error?P:Error(String(P)),context:`template:render:${u}`});continue}if(typeof me==="string")U.innerHTML=me;else U.textContent="",U.appendChild(me);if(Be(U),U.setAttribute("data-id",J),V._lastItem=p,j!==J){let P=j!==null&&j.startsWith(_e),_=J.startsWith(_e);if(P!==_)U.classList.toggle(s.placeholderClass,_);if(P&&!_)U.classList.add(s.replacedClass),setTimeout(()=>{U.classList.remove(s.replacedClass)},300)}}if(S){if(V._lastSelected!==Re.selected){if(U.classList.toggle(s.selectedClass,Re.selected),Re.selected)U.setAttribute("aria-selected","true");else U.removeAttribute("aria-selected");V._lastSelected=Re.selected}if(V._lastFocused!==Re.focused)U.classList.toggle(s.focusedClass,Re.focused),V._lastFocused=Re.focused}let F=A-t.baseOffset+s.startPadding;if(V._lastOffset!==F)U.style.transform=s.translateProp+F+"px)",V._lastOffset=F;let q=O-s.gap;if(V._lastSize!==q)U.style[s.sizeProp]=q+"px",V._lastSize=q}}if(y!==null)r.appendChild(y);if(H>0&&kn(k,H)){let h=k[0],z=k[H-1];for(let[u,A]of n)if(u<h||u>z)A.remove(),e.release(A),n.delete(u)}else for(let[h,z]of n)if(!_n(k,H,h))z.remove(),e.release(z),n.delete(h);if(s.interactive)t.prevAriaTotal=t.totalItems;Qt(a.commit,t)}function mt(t,e,r,o,i,n,s,a,E,S,g,H){if(Hn(t,e,r,S,E.startPadding))Fn(t,o,i,n,s,a,E,S,g,H)}var ft=()=>{let t={},e=(n,s)=>{if(!t[n])t[n]=new Set;return t[n].add(s),()=>r(n,s)},r=(n,s)=>{t[n]?.delete(s)};return{on:e,off:r,emit:(n,s)=>{t[n]?.forEach((a)=>{try{a(s)}catch(E){console.error(`[vlist] Error in event handler for "${String(n)}":`,E)}})},clear:(n)=>{if(n)delete t[n];else for(let s in t)delete t[s]}}};var on=2,rn=(t=0)=>({velocity:0,sampleCount:0}),sn=(t,e)=>{let r=performance.now(),o=t._lt??r,i=t._lp??e,n=r-o;if(t._lp=e,t._lt=r,n===0)return t.sampleCount=Math.min(t.sampleCount+1,5),t;if(n>100)return t.velocity=0,t.sampleCount=1,t;return t.velocity=Math.abs(e-i)/n,t.sampleCount=Math.min(t.sampleCount+1,5),t};function Dn(t){let{item:e}=t;if(e.height!==void 0&&typeof e.height==="number"){if(!Number.isFinite(e.height)||e.height<=0)throw Error(`vlist: item.height must be a positive number, got ${e.height}`)}if(e.width!==void 0&&typeof e.width==="number"){if(!Number.isFinite(e.width)||e.width<=0)throw Error(`vlist: item.width must be a positive number, got ${e.width}`)}if(e.estimatedHeight!==void 0){if(!Number.isFinite(e.estimatedHeight)||e.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${e.estimatedHeight}`)}if(e.estimatedWidth!==void 0){if(!Number.isFinite(e.estimatedWidth)||e.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${e.estimatedWidth}`)}if(e.gap!==void 0){if(typeof e.gap!=="number"||!Number.isFinite(e.gap)||e.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${e.gap}`)}if(t.overscan!==void 0){if(typeof t.overscan!=="number"||!Number.isFinite(t.overscan)||t.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${t.overscan}`)}if(t.scroll?.runway!==void 0){if(typeof t.scroll.runway!=="number"||!Number.isFinite(t.scroll.runway)||t.scroll.runway<=0)throw Error(`vlist: scroll.runway must be a positive number, got ${t.scroll.runway}`)}}function Vn(t,e){let r=t==="horizontal"?"x":"y";if(e.some((i)=>i.name==="grid"))return{primary:r,cross:r==="x"?"y":"x"};return{primary:r}}function On(t,e){let r=Vn(t.orientation,e),o=r.primary==="x",i=$t(t.padding);return{axis:r,hasCrossAxis:r.cross!==void 0,overscan:t.overscan??Je,reverse:t.reverse??!1,classPrefix:t.classPrefix??Pt,mainAxisPadding:Nt(i,o),crossAxisPadding:Bt(i,o),startPadding:o?i.left:i.top,endPadding:o?i.right:i.bottom,crossPadStart:o?i.top:i.left,crossPadEnd:o?i.bottom:i.right,striped:t.item.striped||!1,gap:t.item.gap??0}}function Gn(t,e){if(e)return t.item.width??t.item.estimatedWidth??100;return t.item.height??t.item.estimatedHeight??40}function $n(t){let e=[...t];return e.sort((r,o)=>(r.priority??50)-(o.priority??50)),e}function 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=[]){Dn(t);let r=On(t,e),o=r.axis.primary==="x",i=t.scroll?.mode==="bounded",n=Gn(t,o),s=r.gap,a=s>0?typeof n==="function"?(le)=>n(le)+s:n+s:n,E=typeof n==="number"?n:20,S=t.items?.length??0,g=r.striped?`${r.classPrefix}-item--odd`:"",H=ft(),k=nn(r.classPrefix,o,r.startPadding,r.crossPadStart,r.crossPadEnd,g,s,H),b=e.length>0?$n(e):e;if(e.length>0)Nn(b);let D=Yt(t.container),v=Kt(D,r.classPrefix,o,t.ariaLabel);if(t.scroll?.scrollbar==="none")v.viewport.classList.add(`${r.classPrefix}-viewport--no-scrollbar`);if(t.scroll?.gutter==="stable")v.viewport.classList.add(`${r.classPrefix}-viewport--gutter-stable`);let l=nt(a,S);if(s>0){let le=l.getTotalSize;l.getTotalSize=()=>{let T=le();return T>0?T-s:0}}let h=Ut(r.classPrefix),z=Math.ceil(4096/E)+r.overscan*2+8,u=Wt(z);u.totalItems=S;let A=t.items??[],O=()=>A,p=new Map,U=rn(),V={velocity:0,reliable:!1},F={range:{start:0,end:-1}},q={scrollPosition:0,direction:"down"},j={scrollPosition:0},J=-1,me=-1,P=-1,_=null,M=Zt(b),R=new Map,B=[],c=[],d=[],W=null,G=null,w=null,I=null,N=null,ee=null,Q=null,f=null,C=null,L=null,x=null,Y=!1,oe=!1,xe=null,ue=0,te=0,ce=null,ge=null,be=null,re=null,m=null,X=null,ne=null,ae=null,Te=null;u.containerSize=o?v.viewport.clientWidth:v.viewport.clientHeight,u.crossSize=o?v.viewport.clientHeight:v.viewport.clientWidth;let ye=jt({sizeCache:l,getPixel:()=>G?G():u.scrollPosition,setPixel:(le)=>{if(w)w(le);else if(o)v.viewport.scrollLeft=le;else v.viewport.scrollTop=le},getContainerSize:()=>u.containerSize});if(e.length>0){let le={dom:v,sizeCache:l,scroll:ye,pool:h,config:r,emitter:H,template:t.item.template,registerMethod(T,pe){R.set(T,pe)},getMethod(T){return R.get(T)},registerClickHandler(T){B.push(T)},registerKeydownHandler(T){c.push(T)},registerDestroyHandler(T){d.push(T)},enableListboxRole(){let T=v.content.getAttribute("role");if(!T||T==="list")v.content.setAttribute("role","listbox"),v.content.setAttribute("tabindex","0");k.itemRole="option",k.interactive=!0},setSizeConfig(T){let pe=nt(T,u.totalItems),Pe=R.get("_setSizeCacheBase");if(Pe){let Ae=l.rebuild;Object.assign(l,pe),l.rebuild=Ae,Pe(pe.rebuild)}else Object.assign(l,pe)},setScrollFns(T,pe){G=T,w=pe},setBoundedWrap(T){Te=T},cancelScroll(){Me?.cancelScroll()},setVirtualTotalFn(T){W=T,k.ariaTotalFn=T},setIndexMapFn(T){k.indexMap=T},getItems:O,getItem(T){return ee?ee(T):A[T]},getState(){return u},rebuildSizeCache(){l.rebuild(u.totalItems)},updateContentSize(T){if(ae){ae.refresh(T);return}u.totalSize=T,v.content.style[o?"width":"height"]=T+r.mainAxisPadding+"px"},setRenderFn(T,pe){I=T,N=pe},renderIfNeeded(){se()},forceRender(){K()},setGetItemFn(T){ee=T},setItemStateFn(T){Q=T},getItemStateFn(){return Q},get rawSizeSpec(){return n},scrollTo(T){if(w)w(T);else if(o)v.viewport.scrollLeft=T;else v.viewport.scrollTop=T},smoothScrollTo(T,pe,Pe,Ae){if(re)re(T,pe,w??void 0,Pe,Ae);else le.scrollTo(typeof T==="function"?T():T)},disableDefaultScroll(){Y=!0},disableDefaultResize(){oe=!0},setScrollTarget(T){xe=T},setScrollToPosFn(T){m=T},setScrollToIndexFn(T){X=T},onScrollFrame:Z,onScrollIdle:Ie,removeItemById(T){if(f)return f(T);let pe=A.findIndex((Pe)=>Pe.id===T);if(pe===-1)return-1;return A.splice(pe,1),u.totalItems=A.length,l.rebuild(u.totalItems),he(),pe},insertItemAt(T,pe){if(C){C(T,pe);return}A.splice(pe,0,T),u.totalItems=A.length,l.rebuild(u.totalItems),he()},setRemoveItemFn(T){f=T},setInsertItemFn(T){C=T},setUpdateItemFn(T){L=T},setGetIndexByIdFn(T){x=T},getRenderedElement(T){let pe=R.get("_getRenderedElement");if(pe)return pe(T);return p.get(T)??null},setNavConfig(T){if(T.ud!==void 0)ue=T.ud;if(T.lr!==void 0)te=T.lr;if(T.scrollIndex)ce=T.scrollIndex;if(T.navigate)ge=T.navigate;if(T.total)be=T.total},getNavConfig:(()=>{let T={ud:0,lr:0,scrollIndex:null,navigate:null,total:null};return()=>(T.ud=ue,T.lr=te,T.scrollIndex=ce,T.navigate=ge,T.total=be,T)})()};for(let T of b)if(T.setup)try{T.setup(le)}catch(pe){H.emit("error",{error:pe instanceof Error?pe:Error(String(pe)),context:`plugin:setup:${T.name}`})}}let ve=r.classPrefix+"--scrolling",fe=!1,Se=t.scroll?.idleTimeout??Oe;function Ce(){if(q.scrollPosition=ye.getPixelEquivalent(),o)q.direction=u.scrollDirection>0?"right":"left";else q.direction=u.scrollDirection>0?"down":"up";if(H.emit("scroll",q),sn(U,u.scrollPosition),V.velocity=U.velocity,V.reliable=U.sampleCount>=on,H.emit("velocity:change",V),u.startIndex!==J||u.prevRangeEnd!==me)J=u.startIndex,me=u.prevRangeEnd,F.range.start=u.startIndex,F.range.end=u.prevRangeEnd,H.emit("range:change",F)}let Le=!1;function he(){if(I)return;let le=l.getTotalSize();if(ae){ae.refresh(le);return}if(v.content.style[o?"width":"height"]=le+r.mainAxisPadding+"px",!Le&&le>dt)Le=!0,H.emit("error",{error:Error(`Content size (${le}px) exceeds browser limit (${dt}px). Enable bounded scroll (scroll: { mode: "bounded" }) for large datasets.`),context:"content:size:overflow"})}function ie(){if(!ne)return;if((W?W():A.length)===0)return;let T=ne;ne=null,Ke.scrollToIndex(T.index,T.alignOrOptions)}function se(){if(ie(),I)I();else mt(u,l,r.overscan,h,v.content,t.item.template,O,p,k,M,ee,Q)}function Z(){if(!fe)fe=!0,v.root.classList.add(ve);if(se(),ct(M.afterScroll,u.scrollPosition,u.scrollDirection),u.scrollPosition!==P)P=u.scrollPosition,Ce()}function Ie(){if(fe)fe=!1,v.root.classList.remove(ve);u.scrollDirection=0,en(M.idle),V.velocity=0,V.reliable=!1,H.emit("velocity:change",V),j.scrollPosition=ye.getPixelEquivalent(),H.emit("scroll:idle",j)}function K(){if(ie(),u.renderPending=!0,N)N();else mt(u,l,r.overscan,h,v.content,t.item.template,O,p,k,M,ee,Q);if(ct(M.afterScroll,u.scrollPosition,u.scrollDirection),u.scrollPosition!==P){if(P=u.scrollPosition,Ce(),_!==null)clearTimeout(_);_=setTimeout(Ie,Se)}}let de=Y?!1:t.scroll?.wheel!==!1,Me;if(Y&&(i||Te))throw Error(`vlist: page() is not compatible with ${Te?"the carousel plugin":'scroll: { mode: "bounded" }'} — bounded page-mode scrolling is not implemented yet.`);if(i||Te)ae=qt({state:u,viewport:v.viewport,content:v.content,isX:o,wheelEnabled:de,idleTimeout:t.scroll?.idleTimeout??Oe,...xe?{scrollTarget:xe}:{},mainAxisPadding:r.mainAxisPadding,...t.scroll?.runway!==void 0?{runwayFactor:Math.max(Ft,t.scroll.runway)}:{},...Te?{wrap:Te}:{},onFrame:Z,onIdle:Ie}),Me=ae,G=()=>u.scrollPosition,w=(le)=>ae.setLogical(le);else Me=Xt({state:u,viewport:v.viewport,isX:o,wheelEnabled:de,idleTimeout:t.scroll?.idleTimeout??Oe,...xe?{scrollTarget:xe}:{},onFrame:Z,onIdle:Ie});re=Me.smoothScrollTo;function Ee(le){let pe=le.target.closest("[data-index]");if(!pe)return null;let Pe=parseInt(pe.getAttribute("data-index"),10);if(Number.isNaN(Pe))return null;let Ae=R.get("_layoutToDataIndex"),ke;if(Ae){let Fe=Ae(Pe);if(Fe<0)return null;let Xe=R.get("_getItem");ke=Xe?Xe(Fe):ee?ee(Fe):A[Fe]}else ke=ee?ee(Pe):A[Pe];if(ke===void 0)return null;return{item:ke,index:Pe}}function we(le){for(let pe=0;pe<B.length;pe++)B[pe](le);let T=Ee(le);if(T)H.emit("item:click",{item:T.item,index:T.index,event:le})}function Ne(le){let T=Ee(le);if(T)H.emit("item:dblclick",{item:T.item,index:T.index,event:le})}function He(le){let T=Ee(le);if(T)H.emit("item:contextmenu",{item:T.item,index:T.index,event:le})}function Ue(le){let T=le.target?.tagName;if((T==="INPUT"||T==="TEXTAREA"||T==="SELECT")&&!((le.ctrlKey||le.metaKey)&&(le.key==="f"||le.key==="F")))return;for(let pe=0;pe<c.length;pe++)c[pe](le)}if(v.content.addEventListener("click",we),v.content.addEventListener("dblclick",Ne),v.content.addEventListener("contextmenu",He),c.length>0)v.root.addEventListener("keydown",Ue);let Ve=null;if(!oe)setTimeout(()=>{if(u.destroyed)return;Ve=new ResizeObserver((T)=>{for(let pe of T){let{width:Pe,height:Ae}=pe.contentRect,ke=o?Pe:Ae,Fe=o?Ae:Pe;if(Math.abs(ke-u.containerSize)<1&&Math.abs(Fe-u.crossSize)<1)continue;if(u.containerSize=ke,u.crossSize=Fe,u.resizeCapacity(ke,E,r.overscan),ae)ae.refresh(l.getTotalSize());K(),tn(M.resize,Pe,Ae),H.emit("resize",{width:Pe,height:Ae})}}),Ve.observe(v.viewport)},0);u.resizeCapacity(u.containerSize,E,r.overscan),he(),u.initialized=!0;let ze=null;if(t.defer)ze=requestAnimationFrame(()=>{if(ze=null,!u.destroyed)se()});else se();if(!Y)Me.attach();let Ke={get element(){return v.root},get items(){return A},get total(){return W?W():A.length},setItems(le){A=[...le],u.totalItems=A.length,l.rebuild(u.totalItems),he(),K()},appendItems(le){A.push(...le),u.totalItems=A.length,l.rebuild(u.totalItems),he(),K()},prependItems(le){A.unshift(...le),u.totalItems=A.length,l.rebuild(u.totalItems),he(),K()},updateItem(le,T){if(L){if(!L(le,T))return}else{let pe=A.findIndex((Pe)=>Pe.id===le);if(pe===-1)return;A[pe]={...A[pe],...T}}K()},insertItem(le,T){if(C)C(le,T??u.totalItems);else{if(T===void 0)A.push(le);else A.splice(T,0,le);u.totalItems=A.length,l.rebuild(u.totalItems),he()}K()},removeItem(le){if(f){if(f(le)<0)return}else{let T=A.findIndex((pe)=>pe.id===le);if(T===-1)return;A.splice(T,1),u.totalItems=A.length,l.rebuild(u.totalItems),he()}K()},removeItems(le){if(f){let Ae=0;for(let ke of le)if(f(ke)>=0)Ae++;if(Ae>0)K();return Ae}let T=new Set(le),pe=A.length;A=A.filter((Ae)=>!T.has(Ae.id));let Pe=pe-A.length;if(Pe>0)u.totalItems=A.length,l.rebuild(u.totalItems),he(),u.renderPending=!0,se();return Pe},getItemAt(le){if(k.indexMap)return A[le];return ee?ee(le):A[le]},getIndexById(le){if(x)return x(le);return A.findIndex((T)=>T.id===le)},scrollToIndex(le,T="start"){let pe=W?W():A.length;if(pe===0){ne={index:le,alignOrOptions:T};return}let Pe=Math.max(0,Math.min(le,pe-1)),Ae=typeof T==="string"?T:T.align??"start",ke=typeof T==="object"?T.behavior:void 0,Fe=typeof T==="object"?T.duration:void 0,Xe=typeof T==="object"?T.easing:void 0;if(X&&X(Pe,Ae,ke,Fe,Xe)!==!1)return;let lt=l.getOffset(Pe),Mt=l.getSize(Pe),Ze=u.containerSize,Ln=l.getTotalSize(),Ct=r.mainAxisPadding,En=Math.max(0,Ln+Ct-Ze),De;if(m)De=m(Pe,l,Ze,pe,Ae);else{let Mn=r.startPadding;switch(Ae){case"center":De=Mn+lt-(Ze-Mt)/2;break;case"end":De=lt+Mt+Ct-Ze;break;default:De=lt}De=Math.max(0,Math.min(De,En))}if(ke==="smooth")Me.smoothScrollTo(De,Fe??_t,w??void 0,Xe);else if(w)w(De);else if(o)v.viewport.scrollLeft=De;else v.viewport.scrollTop=De},getScrollPosition(){return ye.getPixelEquivalent()},on:H.on.bind(H),off:H.off.bind(H),destroy(){if(u.destroyed)return;if(u.destroyed=!0,fe)fe=!1,v.root.classList.remove(ve);if(ze!==null)cancelAnimationFrame(ze),ze=null;if(_!==null)clearTimeout(_),_=null;Me.detach(),Ve?.disconnect(),v.content.removeEventListener("click",we),v.content.removeEventListener("dblclick",Ne),v.content.removeEventListener("contextmenu",He),v.root.removeEventListener("keydown",Ue);let le=[];for(let T of d)try{T()}catch(pe){le.push(pe instanceof Error?pe:Error(String(pe)))}for(let T of b)if(T.destroy)try{T.destroy()}catch(pe){le.push(pe instanceof Error?pe:Error(String(pe)))}for(let[,T]of p)T.remove();if(p.clear(),h.clear(),v.root.remove(),H.emit("destroy",void 0),H.clear(),le.length>0)for(let T of le)console.error("vlist: error during destroy:",T)}};for(let[le,T]of R)Ke[le]=T;return Ke}var ot=(t)=>t==null?0:typeof t==="function"?t():t;function gt(t){let e=t?.scrollPadding,r,o;return{name:"page",priority:5,setup(i){let{dom:n,sizeCache:s,config:a,emitter:E}=i,S=a.axis.primary==="x",g=window,H=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(`${a.classPrefix}-viewport--custom-scrollbar`),i.setScrollFns(()=>{let l=n.viewport.getBoundingClientRect();return Math.max(0,S?-l.left:-l.top)},(l)=>{let h=n.viewport.getBoundingClientRect(),z=(S?h.left+g.scrollX:h.top+g.scrollY)+l;if(S)g.scrollTo({left:z,top:g.scrollY,behavior:"instant"});else g.scrollTo({left:g.scrollX,top:z,behavior:"instant"})}),H.containerSize=S?g.innerWidth:g.innerHeight,H.crossSize=S?g.innerHeight:g.innerWidth;let k=null,b=()=>{let l=n.viewport.getBoundingClientRect(),h=Math.max(0,S?-l.left:-l.top);if(H.prevScrollPosition=H.scrollPosition,H.scrollPosition=h,H.scrollDirection=h>H.prevScrollPosition?1:h<H.prevScrollPosition?-1:0,i.onScrollFrame(),k!==null)clearTimeout(k);k=setTimeout(()=>{k=null,i.onScrollIdle()},150)};g.addEventListener("scroll",b,{passive:!0}),o=()=>g.removeEventListener("scroll",b);let{innerWidth:D,innerHeight:v}=g,y=()=>{let{innerWidth:l,innerHeight:h}=g;if((S?Math.abs(l-D):Math.abs(h-v))<1)return;D=l,v=h,H.containerSize=S?l:h,H.crossSize=S?h:l,i.forceRender(),E.emit("resize",{width:l,height:h})};if(g.addEventListener("resize",y),r=()=>g.removeEventListener("resize",y),e)i.setScrollToPosFn((l,h,z,u,A)=>{let O=ot(S?e.left:e.top),p=ot(S?e.right:e.bottom);if(u===0)return 0;let U=Math.max(0,Math.min(l,u-1)),V=h.getOffset(U),F=h.getSize(U),q=h.getTotalSize(),j=Math.max(0,q-z+p),J;switch(A){case"center":J=V-O-(z-O-p-F)/2;break;case"end":J=V-z+F+p;break;default:J=V-O}return Math.max(-O,Math.min(J,j))}),i.registerMethod("_scrollItemIntoView",(l)=>{let h=S?g.innerWidth:g.innerHeight,z=ot(S?e.left:e.top),u=ot(S?e.right:e.bottom),A=n.viewport.getBoundingClientRect(),O=S?g.scrollX:g.scrollY,p=S?A.left:A.top,U=p+O,V=s.getOffset(l),F=s.getSize(l),q=p+V,j=h-u,J=O;if(q<z)J=U+V-z;else if(q+F>j)J=U+V+F-j;if(J!==O)if(S)g.scrollTo({left:J,top:g.scrollY,behavior:"instant"});else g.scrollTo({left:g.scrollX,top:J,behavior:"instant"})});i.registerDestroyHandler(()=>{if(o?.(),r?.(),k!==null)clearTimeout(k)})},destroy(){o?.(),r?.(),o=void 0,r=void 0}}}function pt(t){let e=t?.gap??0,r=null,o=null,i,n,s,a,E=new Map,S=new Set,g=new WeakMap,H=0,k=!1,b=!1,D=!1,v=2;function y(p){return E.get(p)??a}function l(p){return E.has(p)&&!S.has(p)}function h(p){if(!o||i.destroyed)return;if(!E.has(p))return;S.add(p),o.forceRender()}function z(){return Math.max(0,o.sizeCache.getTotalSize()+o.config.mainAxisPadding-i.containerSize)}function u(){let p=z();return p>0&&i.scrollPosition>=p-v}function A(){let p=z();if(p>i.scrollPosition)o.scrollTo(p)}function O(){o.updateContentSize(o.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(p){if(o=p,i=p.getState(),n=p.config.axis.primary==="x",s=n?"width":"height",e===0)e=p.config.gap;if(a=typeof p.rawSizeSpec==="function"?p.rawSizeSpec(0)+e:p.rawSizeSpec+e,p.setSizeConfig(y),e>0){let j=p.sizeCache.getTotalSize;p.sizeCache.getTotalSize=()=>{let J=j();return J>0?J-e:0}}r=new ResizeObserver((j)=>{if(i.destroyed||!o)return;let J=!1,me=p.sizeCache.indexAtOffset(i.scrollPosition);for(let B of j){let c=B.target,d=g.get(c);if(d===void 0)continue;if(c.getAttribute("data-index")!==String(d)){r.unobserve(c);continue}if(l(d))continue;let W=B.borderBoxSize[0];if(!W)continue;let G=n?W.inlineSize:W.blockSize;if(G<=0)continue;let w=G+e,I=E.has(d),N=E.get(d)??a;if(E.set(d,w),S.delete(d),!I||w!==N)J=!0;if(d<me&&w!==N)H+=w-N;r.unobserve(c),c.style[s]=`${G}px`}if(!J)return;let P=u();if(p.rebuildSizeCache(),H)p.scrollTo(i.scrollPosition+H),H=0;let _=i.scrollDirection!==0,M=i.totalItems>0&&i.prevRangeEnd>=i.totalItems-1,R=b&&!D;if(R||P||M||!_){if(O(),k=!1,R||P)A()}else k=!0;p.forceRender()}),p.setScrollToIndexFn((j,J,me,P,_)=>{let M=j>=i.totalItems-1&&J==="end";if(b=M,D=!1,!M)return!1;let R=p.config.mainAxisPadding,B=()=>{let c=p.sizeCache.getTotalSize();return Math.max(0,c+R-i.containerSize)};if(me==="smooth")D=!0,p.smoothScrollTo(B,P??300,_,()=>{D=!1});else p.scrollTo(B())});let U=()=>{b=!1},V=p.dom.viewport;V.addEventListener("wheel",U,{passive:!0}),V.addEventListener("touchstart",U,{passive:!0}),p.registerDestroyHandler(()=>{V.removeEventListener("wheel",U),V.removeEventListener("touchstart",U)});let F=p.dom.content,q=(j)=>{let J=j.target;if(!J||J===F)return;let me=J.closest("[data-index]");if(!me||me.parentNode!==F)return;let P=Number(me.getAttribute("data-index"));if(l(P))h(P)};F.addEventListener("load",q,!0),F.addEventListener("error",q,!0),p.registerDestroyHandler(()=>{F.removeEventListener("load",q,!0),F.removeEventListener("error",q,!0)}),p.registerMethod("isMeasured",l),p.registerMethod("setMeasuredSize",(j,J)=>{E.set(j,J)}),p.registerMethod("getMeasuredCount",()=>E.size),p.registerDestroyHandler(()=>{if(r)r.disconnect(),r=null})},hooks:{onCommit(p){if(!r||!o)return;for(let U=0;U<p.visibleCount;U++){let V=p.visibleIndices[U];if(l(V))continue;let F=o.getRenderedElement(V);if(!F)continue;F.style[s]="",g.set(F,V),r.observe(F)}},onIdle(){if(!o||!k)return;let p=u();if(O(),k=!1,p)A(),o.forceRender()}},destroy(){if(r)r.disconnect(),r=null;E.clear(),S.clear(),b=!1,D=!1,o=null}}}var an=(t={})=>{let{chunkSize:e=100,maxCachedItems:r=5000,evictionBuffer:o=200,onEvict:i}=t,n=new Map,s=0,a=0,E=(M)=>{let R=n.get(M);if(!R)R={items:Array(e),count:0,lastAccess:Date.now()},n.set(M,R);else R.lastAccess=Date.now();return R},S=(M)=>Math.floor(M/e),g=(M)=>M%e,H=()=>s,k=(M)=>{s=M},b=(M)=>{if(M<0||M>=s)return;let R=S(M),B=n.get(R);if(!B)return;return B.items[g(M)]},D=(M)=>{if(M<0||M>=s)return!1;let R=S(M),B=n.get(R);if(!B)return!1;return B.items[g(M)]!==void 0},v=(M,R)=>{let B=S(M),c=E(B),d=g(M),W=c.items[d]===void 0;if(c.items[d]=R,W)c.count++,a++;if(M>=s)s=M+1},y=(M,R)=>{for(let B=0;B<R.length;B++){let c=R[B];if(c!==void 0)v(M+B,c)}},l=(M,R)=>{if(M<0||M>s)return;let B=S(M),c=Array.from(n.keys()).filter((I)=>I>=B).sort((I,N)=>I-N),d=[];for(let I of c){let N=n.get(I),ee=I*e;for(let Q=0;Q<e;Q++){if(N.items[Q]===void 0)continue;let f=ee+Q;if(f<M)continue;d.push({oldIndex:f,item:N.items[Q]})}}for(let{oldIndex:I}of d){let N=S(I),ee=n.get(N);if(!ee)continue;let Q=g(I);if(ee.items[Q]!==void 0){if(ee.items[Q]=void 0,ee.count--,a--,ee.count===0)n.delete(N)}}s++;for(let{oldIndex:I,item:N}of d){let ee=I+1,Q=S(ee),f=E(Q),C=g(ee);f.items[C]=N,f.count++,a++}let W=S(M),G=E(W),w=g(M);G.items[w]=R,G.count++,a++},h=(M)=>{if(M<0||M>=s)return!1;let R=S(M),B=n.get(R),c=g(M);if(!(B!==void 0&&B.items[c]!==void 0))return!1;let W=R,G=Array.from(n.keys()).filter((I)=>I>=W).sort((I,N)=>I-N),w=[];for(let I of G){let N=n.get(I),ee=I*e;for(let Q=0;Q<e;Q++){if(N.items[Q]===void 0)continue;let f=ee+Q;if(f<=M)continue;w.push({oldIndex:f,item:N.items[Q]})}}if(B.items[c]=void 0,B.count--,a--,B.count===0)n.delete(R);for(let{oldIndex:I}of w){let N=S(I),ee=n.get(N);if(!ee)continue;let Q=g(I);if(ee.items[Q]!==void 0){if(ee.items[Q]=void 0,ee.count--,a--,ee.count===0)n.delete(N)}}for(let{oldIndex:I,item:N}of w){let ee=I-1,Q=S(ee),f=E(Q),C=g(ee);f.items[C]=N,f.count++,a++}return s--,!0},z=(M,R)=>{let B=[];for(let c=M;c<=R&&c<s;c++)B.push(b(c));return B},u=(M,R)=>{for(let B=M;B<=R&&B<s;B++)if(!D(B))return!1;return!0},A=()=>{let M=[],R=null,B=Array.from(n.keys()).sort((c,d)=>c-d);for(let c of B){let d=n.get(c);if(!d)continue;let W=c*e;for(let G=0;G<e;G++){let w=W+G;if(w>=s)break;if(d.items[G]!==void 0)if(R===null)R={start:w,end:w};else if(w===R.end+1)R.end=w;else M.push(R),R={start:w,end:w};else if(R!==null)M.push(R),R=null}}if(R!==null)M.push(R);return M},O=(M,R)=>{let B=[],c=null;for(let d=M;d<=R&&d<s;d++)if(!D(d))if(c===null)c={start:d,end:d};else c.end=d;else if(c!==null)B.push(c),c=null;if(c!==null)B.push(c);return B},p=(M)=>n.has(M),U=(M)=>{let R=n.get(M);if(!R)return!1;let B=M*e,c=Math.min(e,s-B);return R.count>=c},V=(M)=>{let R=n.get(M);if(R)R.lastAccess=Date.now()},F=(M,R)=>{if(M>R||n.size===0)return;let B=Date.now(),c=S(Math.max(0,M)),d=S(Math.min(s-1,R));for(let W=c;W<=d;W++){let G=n.get(W);if(G)G.lastAccess=B}},q=(M,R)=>{if(a<=r)return 0;let B=Math.max(0,M-o),c=Math.min(s-1,R+o),d=S(B),W=S(c),G=0,w=[];for(let[I,N]of n)if(I<d||I>W)G+=N.count,w.push(I),a-=N.count,n.delete(I);if(G>0&&i)i(G,w);return G},j=()=>{if(a<=r)return 0;let M=Array.from(n.entries()).sort(([,c],[,d])=>c.lastAccess-d.lastAccess),R=0,B=[];for(let[c,d]of M){if(a<=r)break;R+=d.count,a-=d.count,B.push(c),n.delete(c)}if(R>0&&i)i(R,B);return R},J=()=>({totalItems:s,cachedItems:a,cachedChunks:n.size,chunkSize:e,maxCachedItems:r,memoryEfficiency:s>0?1-a/s:1}),me=()=>a,P=()=>{n.clear(),a=0};return{chunkSize:e,maxCachedItems:r,getTotal:H,setTotal:k,get:b,has:D,set:v,setRange:y,insert:l,delete:h,getRange:z,isRangeLoaded:u,getLoadedRanges:A,findUnloadedRanges:O,getChunkIndex:S,isChunkLoaded:p,isChunkFullyLoaded:U,touchChunk:V,touchChunksForRange:F,evictDistant:q,evictToLimit:j,getStats:J,getCachedCount:me,clear:P,reset:()=>{P(),s=0}}};var dn=(t={})=>{let{maskCharacter:e=Ot,maxSampleSize:r=Gt}=t,o=[],i=!1,n=(g)=>{if(i||g.length===0)return;let H=Math.min(g.length,r);for(let k=0;k<H;k++){let b=g[k];if(!b||typeof b!=="object")continue;let D={},v=!1;for(let[y,l]of Object.entries(b)){if(y.startsWith("_")||y==="id")continue;D[y]=String(l??"").length,v=!0}if(v)o.push(D)}i=!0},s=()=>i,a=(g)=>{let H={id:`${_e}${g}`,[ut]:!0,_index:g};if(o.length===0)return H.label=e.repeat(12),H;let k=o[g%o.length];for(let[b,D]of Object.entries(k))H[b]=e.repeat(Math.max(1,D));return H};return{analyzeStructure:n,hasAnalyzedStructure:s,generate:a,generateRange:(g,H)=>{let k=[];for(let b=g;b<=H;b++)k.push(a(b));return k},clear:()=>{o=[],i=!1}}},rt=(t)=>{if(!t||typeof t!=="object")return!1;return t[ut]===!0};var Bn=50,un=(t={})=>{let{adapter:e,initialItems:r,initialTotal:o,storage:i,placeholder:n,pageSize:s=Bn,maxConcurrent:a=0,onStateChange:E,onDataChange:S,onItemsLoaded:g,onItemsEvicted:H,onLoadError:k}=t,b=an({...i,onEvict:(re,m)=>{H?.(re),q(),F()}}),D=null,v=()=>{if(!D)D=dn(n);return D},y=new Map,l=!1,h,z=!0,u,A,O=[],p=0,U=new Map,V=()=>{for(let re of U.values())re[1].abort();U.clear()},F=()=>{E?.(c())},q=()=>{S?.()},j=()=>{y.clear();let re=b.getLoadedRanges();for(let m of re)for(let X=m.start;X<=m.end;X++){let ne=b.get(X);if(ne&&!rt(ne))y.set(ne.id,X)}},J=(re,m)=>{if(!rt(m))y.set(m.id,re)},me=(re)=>{y.delete(re)},P=(re,m)=>`${re}-${m}`,_=()=>b.getTotal(),M=()=>b.getCachedCount(),R=()=>l,B=()=>z,c=()=>({total:b.getTotal(),cached:b.getCachedCount(),isLoading:l,pendingRanges:O,error:h,hasMore:z,cursor:u}),d=()=>b,W=()=>v(),G=(re)=>{let m=b.get(re);if(m!==void 0)return m;if(re>=0&&re<b.getTotal())return v().generate(re);return},w=(re)=>{let m=y.get(re);if(m===void 0)return;return b.get(m)},I=(re)=>y.get(re)??-1,N=(re)=>{let m=b.get(re);return m!==void 0&&!rt(m)},ee=(re,m)=>{let X=[],ne=b.getTotal();b.touchChunksForRange(re,Math.min(m,ne-1));for(let ae=re;ae<=m&&ae<ne;ae++){let Te=b.get(ae);if(Te!==void 0)X.push(Te);else X.push(v().generate(ae))}return X},Q=(re)=>{b.setTotal(re),z=b.getCachedCount()<re,q(),F()},f=(re,m=0,X)=>{if(e&&re.length>0){let ne=v();if(!ne.hasAnalyzedStructure())ne.analyzeStructure(re)}for(let ne=0;ne<re.length;ne++){let ae=re[ne];if(ae!==void 0){let Te=m+ne;b.set(Te,ae),J(Te,ae)}}if(X!==void 0)b.setTotal(X);else if(m+re.length>b.getTotal())b.setTotal(m+re.length);if(b.getCachedCount()>=b.getTotal()&&b.getTotal()>0)z=!1;q(),F(),g?.(re,m,b.getTotal())},C=(re,m)=>{let X=b.get(re);if(!X)return!1;let ne=X.id,ae={...X,...m};if(b.set(re,ae),m.id!==void 0&&m.id!==ne)me(ne);return J(re,ae),q(),F(),!0},L=(re,m)=>{b.insert(m,re),j(),V(),q(),F()},x=(re)=>{let m=y.get(re);if(m===void 0)return!1;if(!b.delete(m))return!1;return j(),V(),q(),F(),!0},Y=async(re,m)=>{if(!e)return;let X=b.chunkSize,ne=Math.floor(re/X),ae=Math.floor(m/X),Te=X*2;for(let[fe,Se]of U){let Ce=fe.indexOf("-"),Le=parseInt(fe.slice(0,Ce),10);if(Math.abs(Le-re)>Te)Se[1].abort(),U.delete(fe)}let ye=[],ve=[];for(let fe=ne;fe<=ae;fe++){let Se=fe*X,Ce=Se+X-1,Le=P(Se,Ce);if(b.isChunkFullyLoaded(fe))continue;let ie=U.get(Le);if(ie)ve.push(ie[0]);else ye.push({start:Se,end:Ce})}if(ye.length===0){if(ve.length>0)await Promise.all(ve);return}if(a>0){let fe=U.size+ye.length;if(fe>a){let Se=(re+m)/2,Ce=Math.min(fe-a,U.size);while(Ce>0){let he=null,ie=-1,se=null;for(let[Z,Ie]of U){let K=Z.indexOf("-"),de=parseInt(Z.slice(0,K),10),Me=parseInt(Z.slice(K+1),10),Ee=Math.abs((de+Me)/2-Se);if(Ee>ie)ie=Ee,he=Z,se=Ie[1]}if(he)se.abort(),U.delete(he);Ce--}let Le=a-U.size;if(ye.length>Le)ye.sort((he,ie)=>{let se=Math.abs((he.start+he.end)/2-Se),Z=Math.abs((ie.start+ie.end)/2-Se);return se-Z}),ye.length=Math.max(0,Le)}}if(ye.length===0){if(ve.length>0)await Promise.all(ve);return}for(let fe of ye){let Se=P(fe.start,fe.end),Ce=new AbortController,Le=(async()=>{O.push(fe),l=!0,h=void 0,F();try{let he=fe.end-fe.start+1,ie={offset:fe.start,limit:he,cursor:fe.start===A?u:void 0,signal:Ce.signal},se=await e.read(ie);if(f(se.items,fe.start,se.total),se.cursor)u=se.cursor,A=fe.start+se.items.length;let Z=fe.start+se.items.length;if(Z>=p){if(p=Z,se.hasMore!==void 0)z=se.hasMore;else if(se.total!==void 0)z=Z<se.total}}catch(he){if(he?.name==="AbortError")return;h=he instanceof Error?he:Error(String(he)),k?.(h,fe)}finally{U.delete(Se);let he=O.findIndex((ie)=>ie.start===fe.start&&ie.end===fe.end);if(he>=0)O.splice(he,1);l=U.size>0,F()}})();U.set(Se,[Le,Ce]),ve.push(Le)}await Promise.all(ve)},oe=async(re,m)=>{if(b.isRangeLoaded(re,m))return;await Y(re,m)},xe=async()=>{if(!e)return;await Y(0,s-1)},ue=async()=>{if(!e||l||!z)return!1;let re=b.getCachedCount(),m=b.getTotal(),X=re,ne=Math.min(X+s-1,m>0?m-1:X+s-1);if(X>=m&&m>0)return z=!1,!1;return await Y(X,ne),b.getCachedCount()>re},te=async()=>{if(b.clear(),y.clear(),D)D.clear();V(),O=[],l=!1,u=void 0,A=void 0,z=!0,p=0,h=void 0,q(),F()},ce=(re,m)=>{if(b.evictDistant(re,m)>0)j()},ge=()=>{b.clear(),y.clear(),u=void 0,A=void 0,h=void 0,O=[],l=!1,q(),F()},be=()=>{if(b.reset(),y.clear(),D)D.clear();u=void 0,A=void 0,z=!0,p=0,h=void 0,O=[],l=!1,q(),F()};if(r&&r.length>0)f(r,0,o??r.length);else if(o!==void 0)b.setTotal(o),q(),F();return{getState:c,getTotal:_,getCached:M,getIsLoading:R,getHasMore:B,getStorage:d,getPlaceholders:W,getItem:G,getItemById:w,getIndexById:I,isItemLoaded:N,getItemsInRange:ee,setTotal:Q,setItems:f,updateItem:C,insertItem:L,removeItem:x,loadRange:Y,ensureRange:oe,loadInitial:xe,loadMore:ue,reload:te,evictDistant:ce,clear:ge,reset:be}};function bt(t){let{adapter:e,total:r,autoLoad:o=!0,storage:i}=t,n=t.loading?.cancelThreshold??wt,s=t.loading?.preloadThreshold??At,a=t.loading?.preloadAhead??zt,E=t.loading?.maxConcurrent??Rt,S,g,H,k,b,D,v=null,y=null,l=null,h=0,z=!1,u=null,A=at,O=-1,p=-1,U=-1,V=-1,F=i?.chunkSize??Qe,q=()=>{if(v=null,y!==null)clearTimeout(y),y=null},j=(c,d)=>S.ensureRange(c,d),J=(c,d=Qe)=>{k.emit("load:start",{offset:c,limit:d})},me=(c)=>{k.emit("error",{error:c,context:"ensureRange"})},P=()=>{v=null;let c={start:g.startIndex,end:g.startIndex+Math.max(0,g.visibleCount-1)};if(c.end<c.start)return;j(c.start,c.end).catch(me)},_=()=>{if(u!==null)clearTimeout(u),u=null},M=()=>{if(g.destroyed)return;let c=S.getTotal();if(g.visibleCount<=0||g.startIndex>=c)return;let d=Math.min(g.startIndex+g.visibleCount-1,c-1);if(d<g.startIndex)return;j(g.startIndex,d).catch(me)},R=()=>{if(u!==null||g.destroyed)return;u=setTimeout(()=>{u=null,M()},A),A=Math.min(A*2,Ht)},B=()=>{_(),A=at};return{name:"data",priority:20,setup(c){g=c.getState(),H=c.sizeCache,k=c.emitter,b=c.dom,D=c.forceRender.bind(c);let d=null;c.setVirtualTotalFn(()=>d?.getTotal()??0),c.setGetIndexByIdFn((G)=>d?.getIndexById(G)??-1),S=d=un({adapter:e,...r!==void 0&&{initialTotal:r},pageSize:i?.chunkSize??Qe,maxConcurrent:E,...i&&{storage:{...i.chunkSize!==void 0&&{chunkSize:i.chunkSize},...i.maxCachedItems!==void 0&&{maxCachedItems:i.maxCachedItems},...i.evictionBuffer!==void 0&&{evictionBuffer:i.evictionBuffer}}},onDataChange:()=>{if(g.initialized){let G=S.getTotal(),w=S.getCached();if(g.totalItems=G,G!==O||w!==p)O=G,p=w,H.rebuild(G);c.updateContentSize(H.getTotalSize()),c.renderIfNeeded()}},onItemsLoaded:(G)=>{if(B(),g.initialized)c.updateContentSize(H.getTotalSize()),D(),k.emit("load:end",{items:G,total:S.getTotal()})},onLoadError:(G)=>{if(k.emit("error",{error:G,context:"load"}),g.initialized)c.renderIfNeeded();R()}}),c.setGetItemFn((G)=>S.getItem(G)),c.setRemoveItemFn((G)=>{let w=S.getIndexById(G);if(w<0)return-1;if(!S.removeItem(G))return-1;return w}),c.setInsertItemFn((G,w)=>{S.insertItem(G,w)}),c.setUpdateItemFn((G,w)=>{let I=S.getIndexById(G);if(I<0)return!1;return S.updateItem(I,w)}),c.registerMethod("reload",async()=>{if(v=null,U=-1,V=-1,B(),c.forceRender(),await S.reload(),c.scrollTo(0),o)J(0),await S.loadInitial(),c.forceRender()}),c.registerMethod("loadVisibleRange",async()=>{v=null,c.forceRender();let G=S.getTotal();if(g.visibleCount>0&&g.startIndex<G){let w=Math.min(g.startIndex+g.visibleCount-1,G-1);J(g.startIndex,w-g.startIndex+1),await j(g.startIndex,w)}}),c.registerMethod("loadInitial",async()=>{J(0),await S.loadInitial(),c.forceRender()}),c.registerMethod("getTotal",()=>S.getTotal()),c.registerMethod("setTotal",(G)=>{S.setTotal(G)}),c.registerMethod("_getTotal",()=>S.getTotal()),c.registerMethod("_setTotal",(G)=>{S.setTotal(G)}),c.registerMethod("_cancelAutoLoad",()=>{z=!0}),c.registerMethod("_getLoadedItem",(G)=>S.getStorage().get(G)),c.registerMethod("_getItem",(G)=>S.getItem(G)),c.registerMethod("_getLoadedCount",()=>S.getCached()),k.on("load:start",()=>{b.root.setAttribute("aria-busy","true")}),k.on("load:end",()=>{b.root.removeAttribute("aria-busy")}),c.registerDestroyHandler(()=>{if(l!==null)clearTimeout(l),l=null;q(),_()}),k.on("velocity:change",({velocity:G})=>{h=Math.abs(G)});let W=()=>{if(g.destroyed)return;B(),M(),P()};if(window.addEventListener("online",W),c.registerDestroyHandler(()=>{window.removeEventListener("online",W)}),o)queueMicrotask(()=>{if(z)return;J(0),S.loadInitial().catch((G)=>{k.emit("error",{error:G,context:"loadInitial"})})});else if(r!==void 0)S.setTotal(r)},hooks:{onAfterScroll(){if(g.destroyed)return;let c=g.startIndex+Math.max(0,g.visibleCount-1);if(h>n){if(y!==null)clearTimeout(y),y=null;v={start:g.startIndex,end:c};return}if(h>s){let G=Math.floor(g.startIndex/F),w=Math.floor(c/F);if(G!==U||w!==V){if(U=G,V=w,c>=g.startIndex)j(g.startIndex,c).catch(me)}let I=g.startIndex,N=c,ee=g.scrollDirection;if(ee>0)N=Math.min(N+a,S.getTotal()-1);else if(ee<0)I=Math.max(0,I-a);if(v={start:I,end:N},y!==null)clearTimeout(y);y=setTimeout(()=>{if(y=null,g.destroyed||!v)return;let{start:Q,end:f}=v;if(v=null,f>=Q)j(Q,f).catch(me)},100);return}q();let d=Math.floor(g.startIndex/F),W=Math.floor(c/F);if(d!==U||W!==V){if(U=d,V=W,c>=g.startIndex)j(g.startIndex,c).catch(me)}},onIdle(){if(g.destroyed)return;h=0,U=-1,V=-1,P(),q()},onResize(){if(g.destroyed)return;let c=S.getTotal();if(c<=0)return;if(g.visibleCount<=0||g.startIndex>=c)return;let d=Math.min(g.startIndex+g.visibleCount-1,c-1);if(d<g.startIndex)return;J(g.startIndex,d-g.startIndex+1),j(g.startIndex,d).catch(me)}},destroy(){if(l!==null)clearTimeout(l);q(),_()}}}var cn=(t)=>{let e=Math.max(1,Math.floor(t.columns)),r=t.gap??0,o=t.isHeaderFn,i={row:0,col:0},n=(v)=>{if(v<=0)return 0;if(!o)return Math.ceil(v/e);let y=0,l=0,h=0;for(let z=0;z<v;z++)if(o(z)){if(h++,l)y++,l=0;y++,l=0}else if(l++,l>=e)y++,l=0;if(l)y++;return y},s=(v)=>(i.row=a(v),i.col=E(v),i),a=(v)=>{if(!o)return Math.floor(v/e);let y=0,l=0;for(let h=0;h<=v;h++)if(o(h)){if(l)y++,l=0;if(h===v)return y;y++,l=0}else{if(h===v)return y;if(l++,l>=e)y++,l=0}return console.warn(`⚠️ getRow(${v}) fell through - returning ${y}`),y},E=(v)=>{if(!o)return v%e;if(o(v))return 0;let y=0;for(let l=0;l<=v;l++)if(o(l))y=0;else{if(l===v)return y;if(y++,y>=e)y=0}return y},S=(v,y,l,h)=>{if(l<=0){h.start=0,h.end=-1;return}if(!o){h.start=Math.max(0,v*e),h.end=Math.min(l-1,(y+1)*e-1);return}let z=g(v,y,l);h.start=z.start,h.end=z.end},g=(v,y,l)=>{if(l<=0)return{start:0,end:-1};if(!o){let O=Math.max(0,v*e),p=Math.min(l-1,(y+1)*e-1);return{start:O,end:p}}let h=-1,z=-1,u=0,A=0;for(let O=0;O<l;O++){if(o(O)){if(A)u++,A=0;if(u>=v&&u<=y){if(h<0)h=O;z=O}u++,A=0}else{if(u>=v&&u<=y){if(h<0)h=O;z=O}if(A++,A>=e)u++,A=0}if(u>y&&!A)break}if(h<0)return{start:0,end:-1};return{start:h,end:z}},H=(v,y,l)=>{if(y<0||y>=e)return-1;let h=v*e+y;if(h<0||h>=l)return-1;return h},k=(v)=>{let y=(e-1)*r;return Math.max(0,(v-y)/e)};return{get columns(){return e},get gap(){return r},update:(v)=>{if(v.columns!==void 0)e=Math.max(1,Math.floor(v.columns));if(v.gap!==void 0)r=v.gap;if(v.isHeaderFn!==void 0)o=v.isHeaderFn},getTotalRows:n,getPosition:s,getRow:a,getCol:E,getItemRange:g,fillItemRange:S,getItemIndex:H,getColumnWidth:k,getColumnOffset:(v,y)=>{let l=k(y);return v*(l+r)}}};var Ge={selected:!1,focused:!1};function ht(t){if(!t.columns||t.columns<1)throw Error("[vlist] grid: columns must be >= 1");let e,r,o,i,n=null,s,a,E,S,g,H,k=null,b=0,D=0,v=0,y=0,l=new Map,h=0,z=0,u=0,A=0,O=null,p=!1,U="",V="",F="",q={start:0,end:-1},j=-1,J=-1,me=-1,P=!0,_=(I)=>r.rebuild(I);function M(){let I=(z-1)*u;A=Math.max(0,(h-I)/z)}function R(){if(p)return;p=!0,O=k?.()??null}function B(){return e.getTotalRows(o.totalItems)}function c(I){let N=I/z|0,Q=(I-N*z)*(A+u)+b,f=r.getOffset(N)-o.baseOffset+v;if(S)return`translate(${Math.round(f)}px, ${Math.round(Q)}px)`;return`translate(${Math.round(Q)}px, ${Math.round(f)}px)`}function d(I,N){let ee=r.getSize(N)-u;if(S)I.style.width=`${ee}px`,I.style.height=`${A}px`;else I.style.width=`${A}px`,I.style.height=`${ee}px`}function W(I,N,ee){if(O)O(ee,Ge);else Ge.selected=!1,Ge.focused=!1;let Q=a(N,ee,Ge);if(typeof Q==="string")I.innerHTML=Q;else I.innerHTML="",I.appendChild(Q)}function G(){if(o.destroyed)return;let I=o.scrollPosition,N=o.containerSize;if(!P&&I===j&&N===J)return;j=I,J=N,P=!1;let ee=B();if(N<=0||ee===0)return;R();let Q=r.indexAtOffset(I),f=r.indexAtOffset(I+N);if(f<ee-1)f++;Q=Math.max(0,Q),f=Math.min(ee-1,Math.max(0,f));let C=Math.max(0,Q-H),L=Math.min(ee-1,f+H);if(C===o.prevRangeStart&&L===o.prevRangeEnd&&!o.renderPending)return;e.fillItemRange(C,L,o.totalItems,q);let{start:x,end:Y}=q;for(let[ue,te]of l)if(ue<x||ue>Y)te.el.remove(),i.release(te.el),l.delete(ue);for(let ue=x;ue<=Y;ue++){let te=E(ue);if(!te)continue;let ce=ue/z|0,ge=ue-ce*z,be=l.get(ue);if(be===void 0){let X=i.acquire();X.className=U,X.setAttribute("data-index",String(ue)),X.setAttribute("data-id",String(te.id)),W(X,te,ue),be={el:X,lastItem:te},l.set(ue,be),s.appendChild(X)}else if(be.lastItem!==te)be.el.setAttribute("data-id",String(te.id)),be.lastItem=te,W(be.el,te,ue);else if(O)O(ue,Ge);if(O)if(be.el.classList.toggle(V,Ge.selected),be.el.classList.toggle(F,Ge.focused),Ge.selected)be.el.setAttribute("aria-selected","true");else be.el.removeAttribute("aria-selected");d(be.el,ce);let re=ge*(A+u)+b,m=r.getOffset(ce)-o.baseOffset+v;be.el.style.transform=S?`translate(${Math.round(m)}px, ${Math.round(re)}px)`:`translate(${Math.round(re)}px, ${Math.round(m)}px)`}let oe=r.getTotalSize();if(oe!==me)me=oe,n?.updateContentSize(oe);o.prevRangeStart=C,o.prevRangeEnd=L,o.renderPending=!1;let xe=Y-x+1;o.visibleCount=Math.min(xe,o.capacity),o.startIndex=x;for(let ue=0;ue<o.visibleCount;ue++){let te=x+ue,ce=te/z|0;o.visibleIndices[ue]=te,o.visibleOffsets[ue]=r.getOffset(ce),o.visibleSizes[ue]=r.getSize(ce)}}function w(){if(o.destroyed)return;_(B()),me=-1,o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,P=!0,G()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(I){z=Math.max(1,Math.floor(t.columns)),u=t.gap??0,e=cn({columns:t.columns,gap:u}),r=I.sizeCache,o=I.getState(),i=I.pool,n=I,s=I.dom.content,a=I.template,S=I.config.axis.primary==="x",g=I.config.classPrefix,H=I.config.overscan,E=I.getItem.bind(I),k=()=>I.getItemStateFn(),U=`${g}-item ${g}-grid-item`,V=`${g}-item--selected`,F=`${g}-item--focused`,b=I.config.crossPadStart,D=I.config.crossAxisPadding,v=I.config.startPadding,y=I.config.mainAxisPadding,h=o.crossSize-D,M();let N=I.rawSizeSpec,ee;if(typeof N==="function"){let x={columnWidth:e.getColumnWidth(h),columns:t.columns,gap:u};ee=N(0,x),I.setSizeConfig((Y)=>{x.columnWidth=e.getColumnWidth(h);let oe=Y*t.columns;return N(oe,x)+u})}else if(ee=N,u>0)I.setSizeConfig(ee+u);let Q=null,f=r.rebuild;function C(){if(r.rebuild===Q)return;f=r.rebuild,_=(L)=>f(L),Q=(L)=>{_(Math.ceil(L/z))},r.rebuild=Q}if(I.registerMethod("_setSizeCacheBase",(L)=>{f=L,_=(x)=>f(x)}),C(),_(B()),u>0){let L=r.getTotalSize;r.getTotalSize=()=>{let x=L();return x>0?x-u:0}}I.setVirtualTotalFn(()=>B()),I.dom.root.classList.add(`${g}--grid`),I.setRenderFn(G,w),I.registerMethod("getGridLayout",()=>e),I.registerMethod("_getRowGap",()=>e.gap),I.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)z=Math.max(1,Math.floor(L.columns));if(L.gap!==void 0)u=L.gap;if(L.gap!==void 0||L.columns!==void 0){let x=e.gap;if(typeof N==="function"){let Y={columnWidth:e.getColumnWidth(h),columns:e.columns,gap:x};I.setSizeConfig((oe)=>{Y.columnWidth=e.getColumnWidth(h);let xe=oe*e.columns;return N(xe,Y)+x})}else I.setSizeConfig(ee+x);C(),_(B())}if(L.columns!==void 0)I.setNavConfig({ud:e.columns});h=o.crossSize-D,M(),w()}),I.registerMethod("scrollToIndex",(L,x="start")=>{let Y=e.getRow(L),oe=B();if(oe===0)return;let xe=Math.max(0,Math.min(Y,oe-1)),ue=r.getOffset(xe)+v,te=r.getSize(xe),ce=o.containerSize,ge=r.getTotalSize()+y,be=Math.max(0,ge-ce),re=typeof x==="string"?x:x.align??"start",m=typeof x==="object"?x.behavior:void 0,X=typeof x==="object"?x.duration:void 0,ne;switch(re){case"center":ne=ue-(ce-te)/2;break;case"end":ne=ue-ce+te;break;default:ne=ue}if(ne=Math.max(0,Math.min(ne,be)),m==="smooth"&&X&&X>0)I.smoothScrollTo(ne,X);else I.scrollTo(ne)}),I.setNavConfig({total:()=>o.totalItems,ud:t.columns,lr:1,scrollIndex:(L)=>e.getRow(L)}),I.registerDestroyHandler(()=>{for(let[,L]of l)L.el.remove();l.clear(),I.dom.root.classList.remove(`${g}--grid`)})},hooks:{onResize(I,N){let ee=o.crossSize-D;if(Math.abs(ee-h)<1)return;h=ee,M();for(let[Q,f]of l){let C=Q/z|0;d(f.el,C),f.el.style.transform=c(Q)}}},destroy(){l.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,a=[],E=()=>{let l=(e-1)*r;s=Math.max(0,(o-l)/e),a=Array(e);let h=s+r;for(let z=0;z<e;z++)a[z]=i+z*h};E();let S=[],g=0,H=[],k=(l,h)=>{if(l<=0)return g=0,S=[],[];let z=Array(e).fill(n),u=Array(e);for(let p=0;p<e;p++)u[p]=[];let A=Array(l);for(let p=0;p<l;p++){let U=0,V=z[0];for(let j=1;j<e;j++){let J=z[j];if(J<V)V=J,U=j}let F=h(p),q=z[U];A[p]={index:p,x:a[U],y:q,lane:U,size:F,crossSize:s},u[U].push(p),z[U]=q+F+r}S=u;let O=0;for(let p=0;p<e;p++){let U=z[p],V=U>0?U-r:0;if(V>O)O=V}return g=O,A},b=(l)=>{if(l.length===0)return g;if(g)return g;let h=Array(e).fill(0);for(let u of l){let A=u.y+u.size,O=h[u.lane];if(A>O)h[u.lane]=A}let z=0;for(let u=0;u<e;u++)if(h[u]>z)z=h[u];return z},D=(l,h,z)=>{if(l.length===0||z<=h)return H.length=0,H;if(S.length===0||S.length!==e)return v(l,h,z);H.length=0;for(let u=0;u<e;u++){let A=S[u],O=A.length;if(!O)continue;let p=0,U=O;while(p<U){let V=p+U>>>1,F=l[A[V]];if(F.y+F.size<=h)p=V+1;else U=V}for(let V=p;V<O;V++){let F=l[A[V]];if(F.y>=z)break;H.push(F)}}return H},v=(l,h,z)=>{H.length=0;for(let u of l)if(u.y+u.size>h&&u.y<z)H.push(u);return H};return{get columns(){return e},get gap(){return r},get containerSize(){return o},update:(l)=>{let h=!1;if(l.columns!==void 0){let z=Math.max(1,Math.floor(l.columns));if(z!==e)e=z,h=!0}if(l.gap!==void 0&&l.gap!==r)r=l.gap,h=!0;if(l.containerSize!==void 0&&l.containerSize!==o)o=l.containerSize,h=!0;if(l.crossOffset!==void 0&&l.crossOffset!==i)i=l.crossOffset,h=!0;if(l.mainOffset!==void 0&&l.mainOffset!==n)n=l.mainOffset,h=!0;if(h)E()},calculateLayout:k,getTotalSize:b,getVisibleItems:D}};var fn=(t,e,r)=>{let o=Array.from(e).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=t.firstChild;for(let s=0;s<i.length;s++){let a=i[s];if(a===n)n=n.nextSibling;else t.insertBefore(a,n)}};var Wn=(t=200)=>{let e=[];return{acquire:()=>{let n=e.pop();if(n)return n;let s=document.createElement("div");return s.setAttribute("role","option"),s},release:(n)=>{if(n.remove(),e.length<t)n.className="",n.textContent="",n.removeAttribute("style"),n.removeAttribute("data-index"),n.removeAttribute("data-id"),n.removeAttribute("data-lane"),e.push(n)},clear:()=>{e.length=0}}},Un=1,gn=(t,e,r,o=!1,i,n,s,a,E=()=>0)=>{let S=Wn(),g=new Map,H=new Set,k=0,b="",D=-1,v={selected:!1,focused:!1},y=(P,_)=>(v.selected=P,v.focused=_,v),l=`${r}-item ${r}-masonry-item`,h=`${r}-group-header`,z=`${r}-item--selected`,u=`${r}-item--focused`,A=(P,_)=>{if(typeof _==="string")P.innerHTML=_;else P.replaceChildren(_);Be(P)},O=(P,_,M)=>{P.classList.toggle(z,_),P.classList.toggle(u,M)},p=(P,_)=>{let M=Math.round(_.y-E());if(o)P.style.transform=`translate(${M}px, ${Math.round(_.x)}px)`;else P.style.transform=`translate(${Math.round(_.x)}px, ${M}px)`},U=(P,_)=>{if(o)P.style.width=`${_.size}px`,P.style.height=`${_.crossSize}px`;else P.style.width=`${_.crossSize}px`,P.style.height=`${_.size}px`},V=(P,_,M,R,B)=>{let c=S.acquire(),d=_.__groupHeader,W=y(R,B);if(c.className=d?h:l,c.dataset.index=String(P),c.dataset.id=String(_.id),c.dataset.lane=String(M.lane),d)c.setAttribute("role","presentation"),c.removeAttribute("aria-selected"),c.removeAttribute("aria-setsize"),c.removeAttribute("aria-posinset"),c.removeAttribute("id");else if(a===!0){if(c.setAttribute("role","option"),c.ariaSelected=String(R),n)c.id=`${n}-item-${P}`;if(i){let w=i();if(w!==D)D=w,b=String(w);c.setAttribute("aria-setsize",b);let I=s?s(P):P+1;c.setAttribute("aria-posinset",String(I))}}else if(c.setAttribute("role","listitem"),c.removeAttribute("aria-selected"),i){let w=i();if(w!==D)D=w,b=String(w);c.setAttribute("aria-setsize",b);let I=s?s(P):P+1;c.setAttribute("aria-posinset",String(I))}U(c,M);let G=e(_,P,W);return A(c,G),O(c,R,B),p(c,M),{element:c,lastItem:_,lastSelected:R,lastFocused:B,lastY:M.y-E(),lastX:M.x,lastSize:M.size,lastCrossSize:M.crossSize,lastSeenFrame:k}},F=(P,_,M,R)=>{k++,H.clear();for(let c=0;c<_.length;c++)H.add(_[c].index);let B=null;for(let c=0;c<_.length;c++){let d=_[c],W=d.index,G=P(W);if(!G)continue;let w=M.has(G.id),I=W===R,N=g.get(W);if(N){let ee=N.lastItem!==G,Q=N.lastSelected!==w,f=N.lastFocused!==I,C=N.lastY!==d.y-E()||N.lastX!==d.x,L=N.lastSize!==d.size||N.lastCrossSize!==d.crossSize;if(ee){let x=y(w,I),Y=e(G,W,x);if(A(N.element,Y),N.element.dataset.id=String(G.id),N.lastItem=G,!G.__groupHeader){let xe=s?s(W):W+1;N.element.setAttribute("aria-posinset",String(xe))}}if(ee||Q||f)O(N.element,w,I),N.element.ariaSelected=String(w),N.lastSelected=w,N.lastFocused=I;if(L)U(N.element,d),N.lastSize=d.size,N.lastCrossSize=d.crossSize;if(C)p(N.element,d),N.lastY=d.y-E(),N.lastX=d.x}else{let ee=V(W,G,d,w,I);if(!B)B=document.createDocumentFragment();B.appendChild(ee.element),g.set(W,ee)}}if(B)t.appendChild(B);for(let[c,d]of g)if(H.has(c))d.lastSeenFrame=k;else if(k-d.lastSeenFrame>Un)S.release(d.element),g.delete(c)},q=()=>{for(let P of g.values())S.release(P.element);g.clear(),t.innerHTML=""};return{render:F,getElement:(P)=>g.get(P)?.element,updateItemClasses:(P,_,M)=>{let R=g.get(P);if(!R)return;let B=R.lastSelected!==_,c=R.lastFocused!==M;if(B||c)O(R.element,_,M),R.lastSelected=_,R.lastFocused=M},sortDOM:()=>{fn(t,g.keys(),(P)=>g.get(P)?.element)},clear:q,destroy:()=>{q(),S.clear()}}};var Yn=100,Kn=new Set;function vt(t){if(!t.columns||t.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let e,r=null,o,i=null,n,s,a,E=[],S=-1,g=-1,H=!0,k=-1,b=-1,D=0,v=0,y=0,l=0,h={columnWidth:0,columns:0,gap:0,containerWidth:0},z=[],u=(f)=>z[f],A=null,O=null,p=!1;function U(){if(p||!i)return;p=!0,A=i.getMethod("_getSelectedIds")??null,O=i.getMethod("_getFocusedIndex")??null}let V=[],F=new Int32Array(0),q=[],j=null,J=null,me=null,P=null,_=!1,M=!0;function R(){if(_||!i)return;if(j=i.getMethod("_getItemLane")??null,J=i.getMethod("_getItemY")??null,me=i.getMethod("_getItemH")??null,P=i.getMethod("_isGroupHeader")??null,j||P)_=!0}function B(){R();let f=e.columns,C=!!j;if(C){let L=o.totalItems;V=Array(f);for(let x=0;x<f;x++)V[x]=[];if(F.length<L)F=new Int32Array(L);for(let x=0;x<L;x++){if(P?.(x))continue;let Y=j(x);if(Y<0||Y>=f)continue;F[x]=V[Y].length,V[Y].push(x)}}else{let L=E.length;V=Array(f);for(let x=0;x<f;x++)V[x]=[];if(F.length<L)F=new Int32Array(L);for(let x=0;x<L;x++){let Y=E[x];F[x]=V[Y.lane].length,V[Y.lane].push(x)}}q=Array(f);for(let L=0;L<f;L++){let x=V[L],Y=new Float64Array(x.length);for(let oe=0;oe<x.length;oe++){let xe=x[oe];if(C&&J&&me){let ue=J(xe),te=me(xe);Y[oe]=ue>=0?ue+(te>0?te*0.5:0):0}else{let ue=E[xe];Y[oe]=ue.y+ue.size*0.5}}q[L]=Y}}function c(f,C){let L=f.length;if(!L)return-1;let x=0,Y=L-1;while(x<Y){let oe=x+Y>>1;if(f[oe]<C)x=oe+1;else Y=oe}if(x>0&&Math.abs(f[x-1]-C)<=Math.abs(f[x]-C))return x-1;return x}function d(f,C,L){if(M)B(),M=!1;let x=!!j,Y,oe;if(x){if(P?.(f))return f;if(Y=j(f),Y<0)return f;oe=F[f]}else{let ce=E[f];if(!ce)return f;Y=ce.lane,oe=F[f]}let xe=e.columns,ue=V[Y];switch(n?C==="ArrowDown"?"ArrowRight":C==="ArrowUp"?"ArrowLeft":C==="ArrowRight"?"ArrowDown":C==="ArrowLeft"?"ArrowUp":C:C){case"ArrowDown":if(oe+1<ue.length)return ue[oe+1];return f;case"ArrowUp":if(oe>0)return ue[oe-1];return f;case"ArrowRight":{if(Y>=xe-1)return f;let ce=Y+1,ge=V[ce];if(!ge.length)return f;let be=c(q[ce],q[Y]?.[oe]??0);return be>=0?ge[be]:f}case"ArrowLeft":{if(Y<=0)return f;let ce=Y-1,ge=V[ce];if(!ge.length)return f;let be=c(q[ce],q[Y]?.[oe]??0);return be>=0?ge[be]:f}case"Home":return 0;case"End":{let ce=V[xe-1];return ce.length>0?ce[ce.length-1]:f}case"PageDown":{let ce=o.containerSize,ge=x?null:E[f],be=ge&&ge.size>0?ge.size:150,re=Math.max(1,Math.floor(ce/be)),m=Math.min(oe+re,ue.length-1);return ue[m]}case"PageUp":{let ce=o.containerSize,ge=x?null:E[f],be=ge&&ge.size>0?ge.size:150,re=Math.max(1,Math.floor(ce/be)),m=Math.max(0,oe-re);return ue[m]}}return f}let W=null;function G(){if(t.size)return(f)=>t.size(f,h);if(W!==null&&typeof W==="function")return(f)=>W(f,h);return(f)=>i.sizeCache.getSize(f)}function w(){let f=e.columns,C=e.gap;h.containerWidth=e.containerSize,h.columns=f,h.gap=C,h.columnWidth=Math.max(0,(e.containerSize-(f-1)*C)/f)}function I(){if(!i)return;w();let f=o.totalItems;E=e.calculateLayout(f,G()),k=f,M=!0,N()}function N(){if(!i)return;let f=e.getTotalSize(E)+l;if(f===b)return;b=f,i.updateContentSize(f)}function ee(){if(o.destroyed||!i||!r)return;if(o.totalItems!==k)I();if(H)b=-1,N();U();let f=o.scrollPosition,C=o.containerSize;if(!H&&f===S&&C===g)return;if(S=f,g=C,H=!1,C<=0||E.length===0)return;let L=Math.max(0,f-a),x=f+C+a,Y=e.getVisibleItems(E,L,x),oe=A?.()??Kn,xe=O?.()??-1;z=i.getItems(),r.render(u,Y,oe,xe);let ue=Y.length,te=ue>0?Y[0].index:0,ce=ue>0?Y[ue-1].index:0;o.prevRangeStart=te,o.prevRangeEnd=ce,o.renderPending=!1;let ge=Math.min(ue,o.capacity);o.visibleCount=ge,o.startIndex=te;for(let be=0;be<ge;be++){let re=Y[be];o.visibleIndices[be]=re.index,o.visibleOffsets[be]=re.y,o.visibleSizes[be]=re.size}}function Q(){if(o.destroyed)return;b=-1,I(),o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,H=!0,ee()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(f){if(i=f,o=f.getState(),W=f.rawSizeSpec,n=f.config.axis.primary==="x",s=f.config.classPrefix,a=f.config.overscan*Yn,f.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");D=f.config.crossAxisPadding,v=f.config.crossPadStart,y=f.config.startPadding,l=f.config.endPadding;let C=o.crossSize-D;e=mn({columns:t.columns,gap:t.gap??0,containerSize:C,crossOffset:v,mainOffset:y}),r=gn(f.dom.content,f.template,s,n,()=>o.totalItems,void 0,void 0,void 0,()=>o.baseOffset),f.dom.root.classList.add(`${s}--masonry`),f.setRenderFn(ee,Q),I(),f.registerMethod("getMasonryLayout",()=>e),f.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 x={};if(L.columns!==void 0)x.columns=L.columns;if(L.gap!==void 0)x.gap=L.gap;e.update(x),r?.clear(),Q()}),f.registerMethod("scrollToIndex",(L,x="start")=>{let Y=E[L];if(!Y)return;let oe=typeof x==="string"?x:x.align??"start",xe=typeof x==="object"?x.behavior:void 0,ue=typeof x==="object"?x.duration:void 0,te=o.containerSize,ce=e.getTotalSize(E)+l,ge=Math.max(0,ce-te),be=Y.y;if(oe==="center")be=Y.y-te/2+Y.size/2;else if(oe==="end"){if(be=Y.y-te+Y.size,L>=o.totalItems-1&&Y.y+Y.size>ge)be=ge}if(be=Math.max(0,Math.min(be,ge)),xe==="smooth"&&ue&&ue>0)f.smoothScrollTo(be,ue);else f.scrollTo(be)}),f.registerMethod("_scrollItemIntoView",(L)=>{let x=E[L];if(!x)return;let Y=o.scrollPosition,oe=o.containerSize,xe=e.getTotalSize(E)+l,ue=Math.max(0,xe-oe),te=x.y,ce=te+x.size;if(te-y<Y)f.scrollTo(Math.max(0,te-y));else if(ce+l>Y+oe){let ge=V[e.columns-1];if(ge&&ge.length>0&&L===ge[ge.length-1]&&te>=ue)f.scrollTo(ue);else f.scrollTo(Math.min(ce+l-oe,ue))}}),f.setNavConfig({total:()=>o.totalItems,navigate:d}),f.registerDestroyHandler(()=>{r?.destroy(),r=null,f.dom.root.classList.remove(`${s}--masonry`)})},hooks:{onResize(f,C){if(!e||!i)return;let L=o.crossSize-D;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 St=(t,e)=>{let r=0,o=t.length-1;while(r<o){let i=r+o+1>>>1;if(t[i].headerLayoutIndex<=e)r=i;else o=i-1}return r},pn=(t,e)=>{let r=0,o=t.length-1;while(r<o){let i=r+o+1>>>1;if(t[i].firstDataIndex<=e)r=i;else o=i-1}return r},bn=(t,e,r)=>{if(t===0)return[];let o=[],i=null,n=0,s=0;for(let a=0;a<t;a++){let E=r?.(a);if(!E)continue;let S=e(a,E);if(i===null)i=S,n=0;else if(S!==i){let g=a-n;o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:g}),s=s+1+g,i=S,n=a}}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 D=St(o,b),v=o[D];if(b===v.headerLayoutIndex)return{type:"header",group:v};let y=b-v.headerLayoutIndex-1;return{type:"item",dataIndex:v.firstDataIndex+y,group:v}},layoutToDataIndex:(b)=>{if(o.length===0)return b;let D=St(o,b),v=o[D];if(b===v.headerLayoutIndex)return-1;let y=b-v.headerLayoutIndex-1;return v.firstDataIndex+y},dataToLayoutIndex:(b)=>{if(o.length===0)return b;let D=pn(o,b),v=o[D],y=b-v.firstDataIndex;return v.headerLayoutIndex+1+y},getGroupAtLayoutIndex:(b)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=St(o,b);return o[D]},getGroupAtDataIndex:(b)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=pn(o,b);return o[D]},getHeaderHeight:typeof n==="number"?(b)=>n:(b)=>{let D=o[b];if(!D)return 0;return n(D.key,b)},rebuild:(b,D)=>{o=bn(b,e.getGroupForIndex,D??r),i=b+o.length}}};var yt=(t,e,r,o,i=0)=>{let n=r?"width":"height",s=document.createElement("div");return s.className=`${e}-sticky-header`,s.setAttribute("role","presentation"),s.setAttribute("aria-hidden","true"),s.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(r?`position:absolute;top:0;bottom:0;left:${i||0}px`:`position:relative;top:${i||0}px`),s.style[n]=`${o}px`,t.insertBefore(s,t.firstChild),s},vn=(t,e,r,o,i,n=!1,s=0,a,E)=>{let S=n?"width":"height",g=n?"height":"width",H=n?"X":"Y",k=(f,C)=>{f.style[S]=`${C}px`},b=a??yt(t,i,n,0,s),D=()=>{let f=document.createElement("div");return f.className="sticky-group",f.style.position="absolute",f.style.willChange="transform",f.style[g]="100%",f},v=D(),y=D();b.append(v,y);let l=v,h=y,z=e.groups,u=[],A=[],O=[],p=0,U=()=>{z=e.groups,p=z.length,u=Array(p),A=Array(p),O=Array(p);for(let f=0;f<p;f++)u[f]=E?E(z[f].headerLayoutIndex):r.getOffset(z[f].headerLayoutIndex),A[f]=e.getHeaderHeight(f),O[f]=A[f]};U();let V=-1,F=0,q=0,j=-1,J=!1,me=0,P=!1,_=(f,C)=>{o(f,C);let L=A[C];return k(f,L),L},M=(f)=>{f.replaceChildren(),f.style.transform=""},R=(f)=>{if(f===V)return;if(V=f,F=0,q=0,f<0||f>=p){M(l);return}F=_(l,f),q=O[f],k(b,F),l.style.transform=""},B=(f)=>{if(f===me)return;me=f;let C=Math.round(f);l.style.transform=`translate${H}(${C}px)`,h.style.transform=`translate${H}(${C+F}px)`},c=()=>{me=0,l.style.transform="",h.style.transform=""},d=()=>{if(!P)return;let f=l;l=h,h=f,V=j,F=V>=0?A[V]:0,q=V>=0?O[V]:0,k(b,F),M(h),j=-1,P=!1,c()},W=()=>{if(!P)return;M(h),j=-1,P=!1,c()},G=!!a,w=()=>{if(J)return;if(J=!0,G)b.style.visibility="";else b.style.display=""},I=()=>{if(!J)return;if(J=!1,G)b.style.visibility="hidden";else b.style.display="none";M(l),V=-1,F=0,q=0,W()},N=(f)=>{if(p===0){if(P)W();if(!J)w();R(-1);return}if(f<u[0]){I();return}let C=0,L=p-1;while(C<L){let Y=C+L+1>>>1;if(u[Y]+O[Y]<=f)C=Y;else L=Y-1}if(!J)w();R(C);let x=C+1;if(x<p){let Y=u[x]-f;if(Y<=0&&Y>-q){if(j!==x||!P)j=x,_(h,x),P=!0;let oe=q>0?Y/q*F:Y;B(oe)}else if(Y<=-q){if(P)d()}else if(P)W()}else if(P)W()},ee=()=>{U();let f=V;if(V=-1,F=0,q=0,f>=0)R(f)},Q=()=>{b.remove(),V=-1,F=0,q=0,j=-1,J=!1,P=!1};if(!a)b.style.display="none";return{update:N,refresh:ee,show:w,hide:I,destroy:Q}};var $e={selected:!1,focused:!1},Sn=typeof process<"u"&&process.env?.NODE_ENV!=="production";function It(t){if(!t.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let e=t.header?.height??t.header?.width??t.headerHeight;if(e==null||typeof e==="number"&&e<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let r=t.header?.template??t.headerTemplate;if(!r)throw Error("[vlist] groups: header.template is required");let o=r,i,n=null,s,a,E,S,g=null,H,k,b,D=null,v,y,l,h=null,z,u,A=null,O=null,p=0,U=0,V=0,F=0,q=0,j=!1,J=null,me=new Map,P=new Set,_=new Map,M=-1,R=-1,B=0,c=!0,d=-1,W=0,G=null,w;function I(){return i.totalEntries}function N(){let m=a.totalItems;if(m===d)return;if(Sn)console.log(`[groups] syncLayout: ${d} → ${m}`);let X=d>0;d=m,i.rebuild(m,D??b),w(i.totalEntries),L();let ne=Q?x():s.getTotalSize();if(g?.(ne),n)n.refresh(),n.update(a.scrollPosition);if(X)xe();let ae=A?.("_scrollbar:getInstance");if(ae)ae()?.updateBounds(ne,a.containerSize)}let ee=0,Q=null,f=null,C=null;function L(){if(p<=0){Q=null,f=null;return}ee=((a.crossSize||S.clientWidth)-F-(p-1)*U)/p,Q=new Map;let ne=i.totalEntries,ae=Array(ne),Te=0;if(j){let ye=J??((Le)=>s.getSize(Le)),ve=new Float64Array(p),fe=[],Se=0,Ce=-1;for(let Le=0;Le<ne;Le++){let he=i.getEntry(Le);if(he.type==="header"){let ie=0;for(let Z=0;Z<p;Z++)if(ve[Z]>ie)ie=ve[Z];if(Ce>=0)fe[Ce]=Se+ie;Se+=ie;let se=s.getSize(Le);Q.set(Le,{col:-1,rowY:Se}),ae[Te++]=[Le,Se,Se+se],Se+=se,ve.fill(0),Ce=he.group.groupIndex}else{let ie=0,se=ve[0];for(let K=1;K<p;K++)if(ve[K]<se)se=ve[K],ie=K;let Z=ye(he.dataIndex),Ie=Se+ve[ie];Q.set(Le,{col:ie,rowY:Ie,h:Z}),ae[Te++]=[Le,Ie,Ie+Z],ve[ie]=ve[ie]+Z+U}}if(Ce>=0){let Le=0;for(let he=0;he<p;he++)if(ve[he]>Le)Le=ve[he];fe[Ce]=Se+Le}C=fe}else{C=null;let ye=0,ve=0,fe=0;for(let Se=0;Se<ne;Se++)if(i.getEntry(Se).type==="header"){if(ve>0&&fe>0)ye+=fe;let Le=s.getSize(Se);Q.set(Se,{col:-1,rowY:ye}),ae[Te++]=[Se,ye,ye+Le],ye+=Le,ve=0,fe=0}else{let Le=ve%p,he=s.getSize(Se);if(Le===0){if(ve>0&&fe>0)ye+=fe+U;fe=he}else if(he>fe)fe=he;Q.set(Se,{col:Le,rowY:ye}),ae[Te++]=[Se,ye,ye+he],ve++}}ae.length=Te,f=ae}function x(){if(!Q||Q.size===0)return s.getTotalSize();let m=i.totalEntries;if(j)return C?.[C.length-1]??0;let X=0;for(let ne=m-1;ne>=0;ne--){let ae=Q.get(ne);if(ae){X=ae.rowY+(ae.h??s.getSize(ne));break}if(i.getEntry(ne).type==="header"){X=s.getOffset(ne)+s.getSize(ne);break}}return X}function Y(m){let X=a.baseOffset;if(Q){let ae=Q.get(m);if(ae){let Te=ae.col<0?0:V+ae.col*(ee+U),ye=ae.rowY-X;if(v)return`translate(${Math.round(ye)}px, ${Math.round(Te)}px)`;return`translate(${Math.round(Te)}px, ${Math.round(ye)}px)`}}let ne=s.getOffset(m)-X;if(v)return`translate(${Math.round(ne)}px, 0)`;return`translate(0, ${Math.round(ne)}px)`}function oe(m,X){let ne=Q?.get(X);if(ne){let Te=ne.h??s.getSize(X);if(ne.col<0)if(v)m.style.width=`${Te}px`,m.style.height="";else m.style.height=`${Te}px`,m.style.width="100%";else if(v)m.style.width=`${Te}px`,m.style.height=`${ee}px`;else m.style.height=`${Te}px`,m.style.width=`${ee}px`;return}let ae=s.getSize(X);if(v)m.style.width=`${ae}px`;else m.style.height=`${ae}px`}function xe(){me.forEach((m)=>{m.remove();let X=m.getAttribute("data-id");if(X)_.set(X,m);else E.release(m)}),me.clear(),P.clear()}function ue(){if(_.size>0)_.forEach((m)=>E.release(m)),_.clear()}function te(m,X,ne,ae){if(O===null)O=!!A?.("_getSelectedIds");if(X.type==="header"){let Ce=`__group_header_${X.group.groupIndex}`;if(m.getAttribute("data-id")===Ce)return!0;if(m.className=u,m.setAttribute("role","presentation"),m.removeAttribute("aria-selected"),m.setAttribute("data-id",Ce),v&&n&&X.group.groupIndex===0)m.style.display="none";else{m.style.display="";let Le=o(X.group.key,X.group.groupIndex);if(typeof Le==="string")m.innerHTML=Le;else m.innerHTML="",m.appendChild(Le)}return!0}let Te=X.dataIndex,ye=b(Te);if(!ye)return m.innerHTML="",!1;let ve=ye._isPlaceholder===!0,fe=String(ye.id);if(!ve&&m.getAttribute("data-id")===fe){if(O)m.id=`${y}-item-${ae}`,m.setAttribute("aria-posinset",String(Te+1)),m.setAttribute("aria-setsize",String(a.totalItems));return!0}if(m.className=z,m.setAttribute("role",O?"option":"listitem"),m.setAttribute("data-id",fe),O)m.id=`${y}-item-${ae}`,m.setAttribute("aria-posinset",String(Te+1)),m.setAttribute("aria-setsize",String(a.totalItems));if(ve)m.classList.add(`${y}-item--placeholder`);if(ne)ne(ae,$e);else $e.selected=!1,$e.focused=!1;let Se=k(ye,Te,$e);if(typeof Se==="string")m.innerHTML=Se;else m.innerHTML="",m.appendChild(Se);return Be(m),!ve}let ce=0;function ge(){if(p<=0)return;let m=a.crossSize;if(m===ce)return;ce=m,L();let X=x();if(g?.(X),n)n.refresh(),n.update(a.scrollPosition);c=!0}function be(){if(a.destroyed)return;N(),ge();let m=a.scrollPosition,X=a.containerSize,ne=a.baseOffset,ae=ne!==B;if(!c&&m===M&&X===R&&!ae)return;M=m,R=X;let Te=c;c=!1;let ye=I();if(X<=0||ye===0){if(me.size>0)me.forEach((K)=>{K.remove(),E.release(K)}),me.clear(),P.clear();return}let ve,fe;if(f){let K=f,de=K.length,Me=0,Ee=de-1;while(Me<Ee){let ze=Me+Ee>>>1;if(K[ze][2]<=m)Me=ze+1;else Ee=ze}let we=Me;Ee=de-1;while(Me<Ee){let ze=Me+Ee+1>>>1;if(K[ze][1]>=m+X)Ee=ze-1;else Me=ze}let Ne=Me,He=K[we][0],Ue=K[Ne][0];for(let ze=He-1;ze>=0;ze--)if(i.getEntry(ze).type==="header"){He=ze;break}let Ve=l*p;ve=Math.max(0,He-Ve),fe=Math.min(ye-1,Ue+Ve)}else{let K=s.indexAtOffset(m),de=s.indexAtOffset(m+X);if(de<ye-1)de++;K=Math.max(0,K),de=Math.min(ye-1,Math.max(0,de)),ve=Math.max(0,K-l),fe=Math.min(ye-1,de+l)}if(ve===a.prevRangeStart&&fe===a.prevRangeEnd&&!a.renderPending&&!ae)return;B=ne,me.forEach((K,de)=>{if(de<ve||de>fe)K.remove(),E.release(K),me.delete(de),P.delete(de)});let Se=h?.()??null,Ce=Se?`${y}-item--selected`:"",Le=Se?`${y}-item--focused`:"",he=null;for(let K=ve;K<=fe;K++){let de=me.get(K),Me=!1;if(de===void 0){let Ee=i.getEntry(K);Me=Ee.type==="header";let we;if(Ee.type==="header")we=`__group_header_${Ee.group.groupIndex}`;else{let He=b(Ee.dataIndex);if(He&&He._isPlaceholder!==!0)we=String(He.id)}if(we!==void 0){let He=_.get(we);if(He)_.delete(we),de=He}if(!de)de=E.acquire();if(de.setAttribute("data-index",String(K)),te(de,Ee,Se,K))P.delete(K);else P.add(K);if(oe(de,K),de.style.transform=Y(K),me.set(K,de),!he)he=document.createDocumentFragment();he.appendChild(de)}else if(Te&&P.has(K)){let Ee=i.getEntry(K);if(Ee.type==="item")if(te(de,Ee,Se,K))P.delete(K);else P.add(K)}else if(Me=de.classList.contains(u),Te)oe(de,K),de.style.transform=Y(K);else if(ae)de.style.transform=Y(K);if(!Me&&Se)if(Se(K,$e),de.classList.toggle(Ce,$e.selected),de.classList.toggle(Le,$e.focused),$e.selected)de.setAttribute("aria-selected","true");else de.removeAttribute("aria-selected")}if(he)S.appendChild(he);ue();let ie=Q?x():s.getTotalSize();g?.(ie),a.prevRangeStart=ve,a.prevRangeEnd=fe,a.renderPending=!1;let se=0,Z=0,Ie=!1;for(let K=ve;K<=fe&&se<a.capacity;K++){let de=i.getEntry(K);if(de.type==="item"){if(!Ie)Z=de.dataIndex,Ie=!0;a.visibleIndices[se]=de.dataIndex,a.visibleOffsets[se]=s.getOffset(K),a.visibleSizes[se]=s.getSize(K),se++}}a.visibleCount=se,a.startIndex=Z}function re(){if(a.destroyed)return;if(ge(),Sn)console.log(`[groups] forceRender, placeholders: ${P.size}, rendered: ${me.size}`);let m=G?.()??0;if(m!==W){W=m;let X=i.groups,ne=X.length;i.rebuild(d,D??b);let ae=i.groups,Te=ae.length!==ne;if(!Te){for(let ye=0;ye<ne;ye++)if(ae[ye].headerLayoutIndex!==X[ye].headerLayoutIndex){Te=!0;break}}if(Te){w(i.totalEntries),L();let ye=Q?x():s.getTotalSize();if(g?.(ye),n)n.refresh(),n.update(a.scrollPosition);let ve=1/0,fe=Math.min(ne,ae.length);for(let Ce=0;Ce<fe;Ce++)if(ae[Ce].headerLayoutIndex!==X[Ce].headerLayoutIndex){ve=Math.min(ae[Ce].headerLayoutIndex,X[Ce].headerLayoutIndex);break}if(ae.length>ne&&fe<ae.length)ve=Math.min(ve,ae[fe].headerLayoutIndex);else if(ne>ae.length&&fe<ne)ve=Math.min(ve,X[fe].headerLayoutIndex);if(ve<=a.prevRangeEnd)xe();let Se=A?.("_scrollbar:getInstance");if(Se)Se()?.updateBounds(ye,a.containerSize)}}a.prevRangeStart=-1,a.prevRangeEnd=-1,a.renderPending=!0,c=!0,be()}return{name:"groups",priority:10,setup(m){s=m.sizeCache,a=m.getState(),E=m.pool,S=m.dom.content,g=m.updateContentSize.bind(m),H=m.dom.root,k=m.template,v=m.config.axis.primary==="x",y=m.config.classPrefix,l=m.config.overscan,q=m.config.mainAxisPadding,b=m.getItem.bind(m),h=()=>m.getItemStateFn(),A=m.getMethod.bind(m),O=null,z=`${y}-item`,u=`${y}-group-header`;let X=A?.("getGridLayout"),ne=A?.("getMasonryLayout");if(X){let ie=X();p=ie.columns,U=ie.gap,V=m.config.crossPadStart,F=m.config.crossAxisPadding}else if(ne){let ie=ne();p=ie.columns,U=ie.gap,V=m.config.crossPadStart,F=m.config.crossAxisPadding,j=!0;let se=m.rawSizeSpec;if(typeof se==="function")J=(Z)=>se(Z,{columnWidth:ee})}queueMicrotask(()=>{let ie=A?.("_getLoadedItem");if(ie)D=ie;let se=A?.("_getLoadedCount");if(se)G=se});let ae=a.totalItems;i=hn(ae,t,D??b),d=ae;let Te=typeof e==="number"?(ie)=>e:(ie)=>{let se=i.groups[ie];if(!se)return 0;return e(se.key,ie)},ye=s.getSize,ve=(ie)=>{let se=i.getEntry(ie);if(se.type==="header"){if(t.sticky!==!1&&se.group.groupIndex===0)return 0;return Te(se.group.groupIndex)}return ye(se.dataIndex)};m.setSizeConfig(ve);let fe=!1,Se=-1;if(m.registerMethod("_setSizeCacheBase",(ie)=>{w=ie}),w=s.rebuild,s.rebuild=(ie)=>{if(fe){if(!G)G=A?.("_getLoadedCount")??null;let se=G?.()??0;if(ie!==d||se!==Se){if(d=ie,Se=se,!D)D=A?.("_getLoadedItem")??null;if(i.rebuild(ie,D??((Z)=>m.getItems()[Z])),a.totalItems=i.totalEntries,n)n.refresh(),n.update(a.scrollPosition)}}w(i.totalEntries)},s.rebuild(i.totalEntries),L(),m.setVirtualTotalFn(()=>i.totalEntries),H.classList.add(`${y}--grouped`),t.sticky!==!1){let ie=(K,de)=>{let Me=i.groups[de];if(!Me)return;let Ee=o(Me.key,de);if(typeof Ee==="string")K.innerHTML=Ee;else K.replaceChildren(Ee)},se=i.getHeaderHeight(0),Z=yt(H,y,v,se),Ie=p>0?(K)=>{let de=Q?.get(K);return de?de.rowY:s.getOffset(K)}:void 0;if(n=vn(H,i,s,ie,y,v,0,Z,Ie),n.update(a.scrollPosition),!v)m.dom.viewport.style.height=`calc(100% - ${se}px)`;else m.dom.viewport.style.width=`calc(100% - ${se}px)`,m.dom.viewport.style.marginLeft=`${se}px`}let Ce=!!A?.("_updateTableForGroups");if(fe=Ce,Ce)queueMicrotask(()=>{let ie=A?.("_getItem")??null,se=m.getItems.bind(m);m.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 ie?ie(K.dataIndex):se()[K.dataIndex]});let Z=A?.("_updateTableForGroups");if(Z)Z((Ie)=>!!Ie.__groupHeader,o)});else m.setRenderFn(be,re);m.registerMethod("getGroupLayout",()=>i),m.registerMethod("_dataToLayoutIndex",(ie)=>i.dataToLayoutIndex(ie)),m.registerMethod("_layoutToDataIndex",(ie)=>i.layoutToDataIndex(ie)),m.registerMethod("_getRenderedElement",(ie)=>me.get(ie)??null),m.registerMethod("_isGroupHeader",(ie)=>i.getEntry(ie).type==="header"),m.registerMethod("_getItemLane",(ie)=>{let se=Q?.get(ie);return se?se.col:-1}),m.registerMethod("_getItemY",(ie)=>{let se=Q?.get(ie);return se?se.rowY:-1}),m.registerMethod("_getItemH",(ie)=>Q?.get(ie)?.h??-1);let Le=m.config.startPadding,he=q-Le;m.registerMethod("_scrollItemIntoView",(ie)=>{if(ie<0)return;let se=Q?.get(ie),Z=se?se.rowY:s.getOffset(ie),Ie=se?.h??s.getSize(ie),K=a.containerSize,de=a.scrollPosition;if(Z<de+Le)m.scrollTo(Math.max(0,Z-Le));else if(Z+Ie+he>de+K)m.scrollTo(Z+Ie+he-K)}),m.registerMethod("scrollToIndex",(ie,se="start")=>{let Z=i.dataToLayoutIndex(ie),Ie=i.totalEntries;if(Ie===0)return;let K=Math.max(0,Math.min(Z,Ie-1)),de=a.containerSize,Me=Q?.get(K),Ee=Me?Me.rowY:s.getOffset(K),we=Me?Me.h??s.getSize(K):s.getSize(K),Ne=Q?x()+q:s.getTotalSize(),He=Math.max(0,Ne-de),Ue=typeof se==="string"?se:se.align??"start",Ve=typeof se==="object"?se.behavior:void 0,ze=typeof se==="object"?se.duration:void 0,Ke=Q?q:0,le=Ee+we;if(j&&C){let pe=i.getEntry(K).group.groupIndex,Pe=C[pe];if(Pe!==void 0)le=Pe}let T;switch(Ue){case"center":T=Ee-(de-we)/2;break;case"end":T=le-de+Ke;break;default:T=Ee}if(T=Math.max(0,Math.min(T,He)),Ve==="smooth"&&ze&&ze>0)m.smoothScrollTo(T,ze);else m.scrollTo(T)}),m.registerDestroyHandler(()=>{for(let[,ie]of me)ie.remove();if(me.clear(),P.clear(),n)n.destroy(),n=null;H.classList.remove(`${y}--grouped`)})},hooks:{onAfterScroll(m,X){if(n)n.update(m)},onResize(m,X){if(p<=0)return;w(i.totalEntries),ce=a.crossSize,L();let ne=x();if(g?.(ne),n)n.refresh(),n.update(a.scrollPosition);c=!0,be()}},destroy(){if(n)n.destroy(),n=null;me.clear(),P.clear(),_.clear()}}}var yn=(t,e,r)=>{if(String(r).startsWith(_e))return!1;let o=_e+e;if(t.has(o))return t.delete(o),t.add(r),!0;return!1},In=(t)=>({selected:new Set(t??[]),focusedIndex:-1,focusVisible:!1});function We(t,e,r,o){if(r===0)return;let i=o?-e:e,n=t.focusedIndex+i;if(n<0)n=0;if(n>=r)n=r-1;t.focusedIndex=n}function it(t){return Array.from(t)}function Tt(t,e,r,o){if(o<=0)return 0;let i=o-1;if(r<=1)return t<0?0:t>i?i:t;let n=(e%r+r)%r;if(t<0)return n;if(t>i){let s=Math.floor(i/r)*r;return Math.min(s+n,i)}return t}var Xn={preventScroll:!0};function st(t){let e=t?.mode??"single",r=t?.followFocus??!1,o=t?.focusOnClick??!1,i=t?.keyboard??!0,n,s,a,E,S,g,H,k,b=-1,D=new Map,v=null,y=null,l=null,h=null,z,u=!1;function A(d){if(u)return;u=!0,v=d.getMethod("_layoutToDataIndex")??null,y=d.getMethod("_dataToLayoutIndex")??null,l=d.getMethod("_isGroupHeader")??null,h=d.getMethod("_scrollItemIntoView")??null,p=d.getMethod("_getLoadedItem")??null;let W=d.getMethod("getGroupLayout");if(W){let G=W();z=()=>G.totalEntries}}let O=(d)=>v?v(d):d,p=null,U=(d)=>{if(p)return p(d);return s()[d]},V=(d)=>{let W=O(d);return W>=0?U(W):void 0},F=(d,W,G)=>{if(!l)return d;let w=d;while(w>=0&&w<G){if(!l(w))return w;w+=W}w=d-W;while(w>=0&&w<G){if(!l(w))return w;w-=W}return d};function q(d,W){if(e==="single")n.selected.clear(),D.clear();if(n.selected.add(d),W)D.set(d,W)}function j(d,W){if(n.selected.has(d))n.selected.delete(d),D.delete(d);else q(d,W)}function J(){n.selected.clear(),D.clear()}function me(d){n.selected.delete(d),D.delete(d)}function P(d,W){let G=Math.min(d,W),w=Math.max(d,W);for(let I=G;I<=w;I++){if(l?.(I))continue;let N=V(I);if(N)n.selected.add(N.id),D.set(N.id,N);else if(p){let ee=O(I);if(ee>=0)n.selected.add(_e+ee)}}}function _(){let d=H.totalItems;for(let W=0;W<d;W++){if(l?.(W))continue;let G=V(W);if(G)n.selected.add(G.id),D.set(G.id,G);else if(p){let w=O(W);if(w>=0)n.selected.add(_e+w)}}}function M(){if(n.selected.size===0)return[];if(D.size>=n.selected.size){let w=[];for(let I of n.selected){let N=D.get(I);if(N)w.push(N)}if(w.length===n.selected.size)return w}let d=[],W=new Set(n.selected),G=H.totalItems;for(let w=0;w<G&&W.size>0;w++){if(l?.(w))continue;let I=V(w);if(I&&W.has(I.id))d.push(I),D.set(I.id,I),W.delete(I.id)}return d}function R(){a(),E.emit("selection:change",{selected:it(n.selected),items:M()})}let B=null,c=-1;return{name:"selection",priority:50,setup(d){d.enableListboxRole(),n=In(t?.initial),s=d.getItems.bind(d),a=d.forceRender.bind(d),E=d.emitter,S=d.dom;let W=d.config;if(g=d.sizeCache,H=d.getState(),k=d.scrollTo.bind(d),z=()=>H.totalItems,e==="none"){d.registerMethod("select",()=>{}),d.registerMethod("deselect",()=>{}),d.registerMethod("toggleSelect",()=>{}),d.registerMethod("selectAll",()=>{}),d.registerMethod("clearSelection",()=>{}),d.registerMethod("getSelected",()=>[]),d.registerMethod("getSelectedItems",()=>[]),d.registerMethod("selectNext",()=>{}),d.registerMethod("selectPrevious",()=>{}),d.registerMethod("_seedSelection",()=>{}),d.registerMethod("_getFocusedId",()=>{return}),d.registerMethod("_focusById",()=>{});return}let G=W.classPrefix;d.setItemStateFn((C,L)=>{if(A(d),n.selected.size>0){let x=O(C),Y=x>=0?V(C):void 0,oe=Y?.id;if(oe!==void 0)if(n.selected.has(oe))L.selected=!0;else if(yn(n.selected,x,oe))L.selected=!0,D.delete(_e+x),D.set(oe,Y);else L.selected=!1;else L.selected=p!==null&&x>=0&&n.selected.has(_e+x)}else L.selected=!1;L.focused=n.focusVisible&&n.focusedIndex===C}),d.registerMethod("_getSelectedIds",()=>n.selected),d.registerMethod("_getFocusedIndex",()=>n.focusVisible?n.focusedIndex:-1),S.root.classList.add(`${G}--selectable`);let w=(C)=>{B=null,c=-1;let L=C.target.closest("[data-index]");if(!L)return!1;let x=parseInt(L.dataset.index??"-1",10);if(x<0)return!1;if(l?.(x))return!1;if(O(x)<0)return!1;let oe=V(x);if(!oe)return!1;return B=oe,c=x,!0},I=0,N=(C)=>{if(C<0)return;if(h){h(C);return}if(!I){let ge=d.getMethod("_getRowGap");I=ge?ge():0}let L=d.getNavConfig(),x=L.scrollIndex?L.scrollIndex(C):C,Y=g.getOffset(x),oe=g.getSize(x)-I,xe=H.containerSize,ue=H.scrollPosition,{startPadding:te,endPadding:ce}=W;if(Y<ue)k(Y);else if(te+Y+oe+ce>ue+xe)k(te+Y+oe+ce-xe)},ee=(C)=>{let L=S.content.querySelectorAll(`[data-index="${C}"]`),x=null;for(let Y=0;Y<L.length;Y++){let oe=L[Y];if(oe.style.display!=="none"){x=oe;break}}if(!x&&L.length>0)x=L[0];S.content.setAttribute("aria-activedescendant",x?.id??`${G}-item-${C}`)},Q=()=>{if(H.destroyed)return;if(A(d),!S.content.matches(":focus-visible")&&!S.root.matches(":focus-visible"))return;let C=z();if(C===0)return;let L=n.focusedIndex>=0?Math.min(n.focusedIndex,C-1):0;L=F(L,1,C),n.focusedIndex=L,n.focusVisible=!0,ee(L),N(L),a()};S.root.addEventListener("focusin",Q);let f=(C)=>{if(H.destroyed)return;let L=C.relatedTarget;if(L&&S.root.contains(L))return;n.focusVisible=!1,a(),S.content.removeAttribute("aria-activedescendant")};if(S.root.addEventListener("focusout",f),d.registerDestroyHandler(()=>{S.root.removeEventListener("focusin",Q),S.root.removeEventListener("focusout",f)}),d.registerClickHandler((C)=>{if(A(d),!w(C))return;if(e==="multiple"&&C.shiftKey&&n.focusedIndex>=0){let x=b>=0?b:n.focusedIndex,Y=O(x),oe=O(c);if(Y>=0&&oe>=0)P(x,c);n.focusedIndex=c,n.focusVisible=o,b=c,R();return}if(n.focusedIndex=c,n.focusVisible=o,b=c,(S.content.getAttribute("tabindex")!==null?S.content:S.root).focus(Xn),e==="single")q(B.id,B);else j(B.id,B);R()}),i)d.registerKeydownHandler((C)=>{A(d);let L=z();if(L===0)return;let x=d.getNavConfig(),Y=n.focusedIndex,oe=!1,xe=!1;if(x.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 te=x.total?x.total():L,ce=x.navigate(n.focusedIndex,C.key,te);if(ce!==n.focusedIndex)n.focusedIndex=Math.max(0,Math.min(ce,te-1));n.focusVisible=!0,oe=!0}else switch(C.key){case"ArrowUp":{let te=x.ud||1,ce=x.lr,ge=W.axis.primary==="x";if(ge&&!ce)break;We(n,-(ge?ce:te),L,W.reverse),n.focusVisible=!0,oe=!0;break}case"ArrowDown":{let te=x.ud||1,ce=x.lr,ge=W.axis.primary==="x";if(ge&&!ce)break;We(n,ge?ce:te,L,W.reverse),n.focusVisible=!0,oe=!0;break}case"ArrowLeft":{let te=x.ud||1,ce=x.lr,ge=W.axis.primary==="x";if(!ge&&!ce)break;We(n,-(ge?te:ce),L,W.reverse),n.focusVisible=!0,oe=!0;break}case"ArrowRight":{let te=x.ud||1,ce=x.lr,ge=W.axis.primary==="x";if(!ge&&!ce)break;We(n,ge?te:ce,L,W.reverse),n.focusVisible=!0,oe=!0;break}case"Home":if(L>0)n.focusedIndex=0;n.focusVisible=!0,oe=!0;break;case"End":if(L>0)n.focusedIndex=L-1;n.focusVisible=!0,oe=!0;break;case"PageUp":case"PageDown":{let te=x.ud||1,ce=Math.max(0,n.focusedIndex),ge=x.scrollIndex?x.scrollIndex(ce):ce,be=g.getSize(ge),re=H.containerSize,X=(be>0?Math.max(1,Math.floor(re/be)):10)*te;if(v&&y){let ne=v(n.focusedIndex),ae=C.key==="PageUp"?-X:X,Te=H.totalItems-1;n.focusedIndex=y(Tt(ne+ae,ne,te,Te+1))}else{let ne=C.key==="PageUp"?n.focusedIndex-X:n.focusedIndex+X;n.focusedIndex=Tt(ne,n.focusedIndex,te,L)}n.focusVisible=!0,oe=!0;break}case" ":case"Enter":if(C.key===" "&&C.shiftKey&&e==="multiple"&&n.focusedIndex>=0){if(b>=0){let te=O(b),ce=O(n.focusedIndex);if(te>=0&&ce>=0)P(b,n.focusedIndex)}n.focusVisible=!0,xe=!0,oe=!0;break}if(n.focusedIndex>=0){let te=V(n.focusedIndex);if(te)j(te.id,te),b=n.focusedIndex;n.focusVisible=!0,xe=!0,oe=!0}break;case"a":if((C.ctrlKey||C.metaKey)&&e==="multiple"){if(n.selected.size===H.totalItems)J();else _();n.focusVisible=!0,xe=!0,oe=!0}break;case"Delete":case"Backspace":if(n.selected.size>0)E.emit("delete",{selected:it(n.selected),items:M()}),oe=!0;break}if(n.focusedIndex!==Y&&l){let te=n.focusedIndex>Y?1:-1;n.focusedIndex=F(n.focusedIndex,te,L)}let ue=n.focusedIndex!==Y;if(C.shiftKey&&e==="multiple"&&!xe&&ue){if(C.key==="ArrowUp"||C.key==="ArrowDown"||C.key==="ArrowLeft"||C.key==="ArrowRight"){let ge=V(n.focusedIndex);if(ge)j(ge.id,ge);b=n.focusedIndex,xe=!0}if((C.ctrlKey||C.metaKey)&&(C.key==="Home"||C.key==="End")){let ge=Y>=0?Y:n.focusedIndex,be=O(ge),re=O(n.focusedIndex);if(be>=0&&re>=0)P(ge,n.focusedIndex);b=n.focusedIndex,xe=!0}}if(r&&e==="single"&&!xe&&ue&&n.focusedIndex>=0){let te=V(n.focusedIndex);if(te)q(te.id,te);xe=!0}if(oe){if(C.preventDefault(),ue&&n.focusedIndex>=0){if(h||!x.navigate)N(n.focusedIndex);ee(n.focusedIndex)}if(xe)R();else if(ue){if(a(),n.focusedIndex>=0){let te=V(n.focusedIndex);if(te)E.emit("focus:change",{id:te.id,index:n.focusedIndex})}}}});d.registerMethod("select",(...C)=>{for(let L of C)q(L);R()}),d.registerMethod("deselect",(...C)=>{for(let L of C)me(L);R()}),d.registerMethod("toggleSelect",(C)=>{j(C),R()}),d.registerMethod("selectAll",()=>{if(e!=="multiple")return;A(d),_(),R()}),d.registerMethod("clearSelection",()=>{J(),R()}),d.registerMethod("getSelected",()=>it(n.selected)),d.registerMethod("getSelectedItems",()=>M()),d.registerMethod("selectNext",()=>{A(d);let C=z();if(C===0)return;if(We(n,1,C,W.reverse),l)n.focusedIndex=F(n.focusedIndex,1,C);let L=V(n.focusedIndex);if(L)q(L.id,L);R()}),d.registerMethod("selectPrevious",()=>{A(d);let C=z();if(C===0)return;if(We(n,-1,C,W.reverse),l)n.focusedIndex=F(n.focusedIndex,-1,C);let L=V(n.focusedIndex);if(L)q(L.id,L);R()}),d.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)}),d.registerMethod("_isFollowFocus",()=>r),d.registerMethod("_getFocusedId",()=>{if(n.focusedIndex<0)return;return V(n.focusedIndex)?.id}),d.registerMethod("_focusById",(C)=>{let L=H.totalItems;for(let x=0;x<L;x++){if(l?.(x))continue;let Y=V(x);if(Y&&Y.id===C){n.focusedIndex=x,n.focusVisible=o,E.emit("focus:change",{id:C,index:x});return}}})},destroy(){D.clear()}}}var Tn=!1;function xt(t){return{name:"scale",priority:20,setup(){if(!Tn)Tn=!0,console.warn("[vlist] scale() is deprecated and will be removed in vlist 3.0. "+'Use scroll: { mode: "bounded" } instead — it handles lists of any size '+"without coordinate compression. See https://vlist.io/docs/logical-scroll")}}}var qn=(t)=>{if(typeof t!=="object"){let e=t??2;return{top:e,right:e,bottom:e,left:e}}return{top:t.top??2,right:t.right??2,bottom:t.bottom??2,left:t.left??2}},xn=(t,e,r={},o="vlist",i=!1,n)=>{let{autoHide:s=!0,autoHideDelay:a=1000,minThumbSize:E=15,showOnHover:S=!0,showOnViewportEnter:g=!0,clickBehavior:H="scroll"}=r,k=H==="page"?"scroll":H,b=n??t,D=qn(r.padding),v=i?D.left:D.top,y=i?D.right:D.bottom,l=i?D.bottom:D.right,h=r.hoverZoneWidth??l+16,z=0,u=0,A=0,O=0,p=!1,U=!1,V=0,F=0,q=0,j=null,J=!1,me=null,P=0,_=0,M=null,R=null,B=null,c=i?"width":"height",d=i?"translateX":"translateY",W=i?(Z)=>Z.clientX:(Z)=>Z.clientY,G=i?"left":"top",w=document.createElement("div"),I=document.createElement("div"),N=document.createElement("div"),ee=i?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",Q=()=>{if(b===t)return;let Z=t.offsetTop;w.style[i?"left":"top"]=Z?`calc(var(${ee}) + ${Z}px)`:`var(${ee})`,N.style[i?"left":"top"]=`${Z}px`},f=()=>{if(w.className=`${o}-scrollbar`,I.className=`${o}-scrollbar__thumb`,i)w.classList.add(`${o}-scrollbar--horizontal`);if(r.padding!==void 0)b.style.setProperty("--vlist-custom-scrollbar-padding-top",`${D.top}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-right",`${D.right}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${D.bottom}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-left",`${D.left}px`);if(r.minThumbSize!==void 0)w.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${E}px`);if(w.appendChild(I),b.appendChild(w),N.className=`${o}-scrollbar__hover`,i)N.classList.add(`${o}-scrollbar__hover--horizontal`),N.style.height=`${h}px`;else N.style.width=`${h}px`;if(b.appendChild(N),b!==t)Q()},C=()=>{if(j)clearTimeout(j),j=null},L=()=>{if(!s)return;C(),j=setTimeout(Y,a)},x=()=>{if(z<=u)return;if(C(),!J)w.classList.add(`${o}-scrollbar--visible`),J=!0;if(s&&!p&&!U)L()},Y=()=>{if(p||U)return;w.classList.remove(`${o}-scrollbar--visible`),J=!1},oe=(Z,Ie)=>{if(z=Z,u=Ie,Q(),z<=u){w.style.display="none",Y();return}w.style.display="";let K=Math.max(0,u-v-y),de=u/z;if(A=Math.max(E,de*K),I.style[c]=`${A}px`,O=K-A,xe(q),!s)x()},xe=(Z)=>{if(q=Z,z<=u||O<=0)return;let Ie=z-u,K=Math.min(1,Math.max(0,Z/Ie));I.style.transform=`${d}(${K*O}px)`},ue=(Z)=>{if(Z.target===I||k!=="jump"||O<=0)return;let Ie=z-u,K=w.getBoundingClientRect(),de=W(Z)-K[G],Me=Math.max(0,Math.min(de-A/2,O));e(Me/O*Ie),x()},te=()=>{if(M!==null)clearTimeout(M),M=null;if(R!==null)cancelAnimationFrame(R),R=null;B=null},ce=(Z)=>{let Ie=O>0?_/Z*O:0;if(P<Ie)return-1;if(P>=Ie+A)return 1;return 0},ge=()=>{let Z=z-u,Ie=ce(Z);if(Ie===0){te();return}if(Ie===-1){if(_<=0){te();return}let K=Math.max(0,_-u);_=K,e(K)}else{if(_>=Z){te();return}let K=Math.min(Z,_+u);_=K,e(K)}x()},be=(Z)=>{if(B===null){B=Z,R=requestAnimationFrame(be);return}let Ie=z-u,K=Z-B;B=Z;let de=ce(Ie);if(de===0){te();return}let Me=12*u/1000,Ee=Math.min(Me*K,u);if(de===-1){if(_<=0){te();return}let we=Math.max(0,_-Ee);_=we,e(we)}else{if(_>=Ie){te();return}let we=Math.min(Ie,_+Ee);_=we,e(we)}C(),R=requestAnimationFrame(be)},re=()=>{te(),L(),document.removeEventListener("mouseup",re)},m=(Z)=>{if(Z.target===I||k!=="scroll")return;Z.preventDefault();let Ie=w.getBoundingClientRect();P=W(Z)-Ie[G],_=q,ge(),M=setTimeout(()=>{R=requestAnimationFrame(be)},350),document.addEventListener("mouseup",re)},X=(Z)=>{Z.preventDefault(),Z.stopPropagation(),p=!0,V=W(Z),F=q,C(),w.classList.add(`${o}-scrollbar--dragging`),document.addEventListener("mousemove",ne),document.addEventListener("mouseup",ae)},ne=(Z)=>{if(!p)return;let Ie=W(Z)-V,K=O>0?Ie/O:0,de=z-u,Me=K*de,Ee=Math.max(0,Math.min(F+Me,de));I.style.transform=`${d}(${Ee/de*O}px)`,e(Ee)},ae=()=>{if(p=!1,w.classList.remove(`${o}-scrollbar--dragging`),s&&!U)L();document.removeEventListener("mousemove",ne),document.removeEventListener("mouseup",ae)},Te=i?(Z)=>Z.touches[0].clientX:(Z)=>Z.touches[0].clientY,ye=(Z)=>{Z.stopPropagation(),p=!0,V=Te(Z),F=q,C(),w.classList.add(`${o}-scrollbar--dragging`)},ve=(Z)=>{if(!p)return;Z.preventDefault();let Ie=Te(Z)-V,K=O>0?Ie/O:0,de=z-u,Me=K*de,Ee=Math.max(0,Math.min(F+Me,de));I.style.transform=`${d}(${Ee/de*O}px)`,e(Ee)},fe=()=>{if(p=!1,w.classList.remove(`${o}-scrollbar--dragging`),s)L()},Se=(Z)=>{if(Z.target===I)return;if(O<=0)return;let Ie=Z.touches[0],K=w.getBoundingClientRect(),de=(i?Ie.clientX:Ie.clientY)-K[G];if(k==="jump"){let Me=z-u,Ee=Math.max(0,Math.min(de-A/2,O));e(Ee/O*Me)}else P=de,_=q,ge();x()},Ce=()=>{if(g)x()},Le=()=>{if(!p){if(U=!1,s)L()}},he=()=>{U=!0,C(),x()},ie=()=>{if(U=!1,!p&&s)L()},se=()=>{if(C(),te(),me!==null)cancelAnimationFrame(me),me=null;w.removeEventListener("click",ue),w.removeEventListener("mousedown",m),w.removeEventListener("mouseenter",he),document.removeEventListener("mouseup",re),w.removeEventListener("mouseleave",ie),w.removeEventListener("touchstart",Se),I.removeEventListener("mousedown",X),I.removeEventListener("touchstart",ye),I.removeEventListener("touchmove",ve),I.removeEventListener("touchend",fe),t.removeEventListener("mouseenter",Ce),t.removeEventListener("mouseleave",Le),document.removeEventListener("mousemove",ne),document.removeEventListener("mouseup",ae),N.removeEventListener("click",ue),N.removeEventListener("mousedown",m),N.removeEventListener("mouseenter",he),N.removeEventListener("mouseleave",ie),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"),w.remove()};if(f(),w.addEventListener("click",ue),w.addEventListener("mousedown",m),w.addEventListener("mouseenter",he),w.addEventListener("mouseleave",ie),w.addEventListener("touchstart",Se,{passive:!0}),I.addEventListener("mousedown",X),I.addEventListener("touchstart",ye,{passive:!0}),I.addEventListener("touchmove",ve,{passive:!1}),I.addEventListener("touchend",fe,{passive:!0}),t.addEventListener("mouseenter",Ce),t.addEventListener("mouseleave",Le),N.addEventListener("click",ue),N.addEventListener("mousedown",m),S)N.addEventListener("mouseenter",he),N.addEventListener("mouseleave",ie);return{show:x,hide:Y,updateBounds:oe,updatePosition:xe,isVisible:()=>J,destroy:se}};function Lt(t){let e=null,r,o=0,i=0,n=0;return{name:"scrollbar",priority:15,setup(s){let{dom:a,config:E}=s,{classPrefix:S}=E,g=E.axis.primary==="x";r=s.getState(),o=E.mainAxisPadding;let H=(k)=>{s.scrollTo(k)};if(s.registerMethod("_scrollbar:setCallback",(k)=>{H=k}),e=xn(a.viewport,(k)=>{H(k)},t,S,g,a.root),a.viewport.classList.add(`${S}-viewport--custom-scrollbar`),t?.gutter)a.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,a.viewport.classList.remove(`${S}-viewport--custom-scrollbar`),t?.gutter)a.viewport.classList.remove(`${S}-viewport--gutter`)})},hooks:{onAfterScroll(s){let a=r.totalSize+o,E=r.containerSize;if(a!==i||E!==n)i=a,n=E,e?.updateBounds(a,E);e?.updatePosition(s),e?.show()},onResize(){let s=r.totalSize+o,a=r.containerSize;i=s,n=a,e?.updateBounds(s,a)}},destroy(){e?.destroy(),e=null}}}var jn=(t)=>{try{let e=sessionStorage.getItem(t);if(!e)return;return JSON.parse(e)}catch{return}};function Et(t){let e=t?.autoSave,r=t?.restore??(e?jn(e):void 0),o=!1,i=null;return{name:"snapshots",priority:50,setup(n){let{sizeCache:s,emitter:a}=n,E=n.getState(),S=()=>{let{scrollPosition:k,totalItems:b}=E,v=n.getMethod("getSelected")?.();if(b===0){let p={index:0,offsetInItem:0,total:0};if(v?.length)p.selectedIds=v;return p}let y=s.indexAtOffset(k),l=k-s.getOffset(y);l=Math.max(0,l);let h={index:y,offsetInItem:l,total:b,scrollTop:k},z=s.getSize(y);if(z)h.offsetRatio=l/z;let u=n.getMethod("_layoutToDataIndex");if(u){let p=u(y);if(p<0){for(let U=y+1;U<b;U++)if(p=u(U),p>=0)break}if(p>=0)h.dataIndex=p}let A=n.getMethod("_getTotal");if(A)h.dataTotal=A();if(v?.length)h.selectedIds=v;let O=n.getMethod("_getFocusedId");if(O){let p=O();if(p!==void 0)h.focusedId=p}return h};n.registerMethod("getScrollSnapshot",S);let g=(k,b=!0)=>{let{index:D,offsetInItem:v,selectedIds:y,focusedId:l}=k,h=E.totalItems,z=k.dataTotal??k.total;if(h===0&&z&&z>0){let _=n.getMethod("_setTotal");if(_)_(z),h=E.totalItems;s.rebuild(h),n.updateContentSize(s.getTotalSize()),E.totalSize=s.getTotalSize()}if(h===0)return Promise.resolve();if(!Number.isFinite(D)||!Number.isFinite(v))return Promise.resolve();if(s.getTotal()===0)s.rebuild(h),n.updateContentSize(s.getTotalSize()),E.totalSize=s.getTotalSize();let A=n.getMethod("_dataToLayoutIndex"),O=D;if(k.dataIndex!==void 0&&k.dataIndex>=0)O=A?A(k.dataIndex):k.dataIndex;else if(A)O=A(D);let p=Math.max(0,Math.min(O,h-1)),U=s.getSize(p),V=k.offsetRatio!==void 0?k.offsetRatio*U:Math.min(v,U),F=n.getMethod("_getTotal")?.(),q=k.total===h||F!==void 0&&k.dataTotal===F,j;if(k.scrollTop!==void 0&&q)j=k.scrollTop;else j=s.getOffset(p)+V;let J=Math.max(0,E.totalSize-E.containerSize);if(j=Math.max(0,Math.min(j,J)),n.scrollTo(j),b&&y?.length){let _=n.getMethod("select");if(_)_(...y)}let me=n.getMethod("loadVisibleRange"),P=()=>{if(l===void 0)return;let _=n.getMethod("_focusById");if(_)_(l)};return new Promise((_)=>{let M=(R)=>{if(R)P();_()};if(me){let R=0,B=()=>{if(E.containerSize>0){if(Math.abs(E.scrollPosition-j)>1)n.scrollTo(j);me().then(()=>M(!0),()=>M(!1))}else if(++R<10)requestAnimationFrame(B);else M(!1)};requestAnimationFrame(B)}else{let R=n.getMethod("reload");if(R)requestAnimationFrame(()=>{R().then(()=>M(!0),()=>M(!1))});else requestAnimationFrame(()=>M(!0))}})};n.registerMethod("restoreScroll",g);let H=!!(r&&e);if(n.registerDestroyHandler(()=>{o=!0}),e){i=()=>{if(o||H)return;let h=S();try{sessionStorage.setItem(e,JSON.stringify(h))}catch{}},n.registerMethod("_saveSnapshot",i);let k=0,b=()=>{if(k)return;k=requestAnimationFrame(()=>{if(k=0,i)i()})};a.on("selection:change",b),a.on("focus:change",b);let D=0,v=()=>{if(D=0,i)i()},y=()=>{if(D)clearTimeout(D);D=setTimeout(v,300)};a.on("scroll",y);let l=()=>{i?.()};if(window.addEventListener("beforeunload",l),n.registerDestroyHandler(()=>{if(k)cancelAnimationFrame(k);if(D)clearTimeout(D);window.removeEventListener("beforeunload",l)}),r&&r.total&&r.total>0){let h=n.getMethod("_cancelAutoLoad");if(h)h();let z=n.getMethod("_setTotal");if(z)z(r.total)}}if(r){let k=!0;if(r.selectedIds?.length){let b=n.getMethod("_seedSelection");if(b)b(r.selectedIds),k=!1}queueMicrotask(()=>{if(g(r,k),H=!1,i)i()})}},hooks:{onIdle(){if(i&&!o)i()}},destroy(){o=!0,i=null}}}function Zn(t){let e=[];if(typeof window<"u"&&t.scroll?.element===window)e.push(gt());let r=t.item,o=t.orientation==="horizontal",i=o?r.width!=null:r.height!=null,n=o?r.estimatedWidth!=null:r.estimatedHeight!=null;if(!i&&n)e.push(pt());if(t.adapter)e.push(bt({adapter:t.adapter,...t.loading&&{loading:t.loading}}));if(t.layout==="grid"&&t.grid)e.push(ht(t.grid));if(t.layout==="masonry"&&t.masonry)e.push(vt(t.masonry));if(t.groups){let E=t.groups,S=typeof E.headerHeight==="function"?E.headerHeight("",0):E.headerHeight;e.push(It({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(st(t.selection));else e.push(st({mode:"none"}));e.push(xt());let a=t.scroll?.scrollbar||t.scrollbar;if(a!=="none"&&a!=="native"){let E=a&&typeof a==="object"?a:{};e.push(Lt(E))}if(e.push(Et()),t.plugins&&t.plugins.length>0){let E=new Set(t.plugins.map((g)=>g.name));return[...e.filter((g)=>!E.has(g.name)),...t.plugins]}return e}function ni(t){return ln(t,Zn(t))}export{ni as createVListFromConfig,Zn as resolvePlugins};
|
|
1
|
+
var Je=3,Pt="vlist";var Qe=50;var zt=50,At=2,wt=15,Rt=6,at=2000,Ht=30000,dt=16000000,Oe=150,qe=1,et=(t)=>t<0.5?2*t*t:1-(-2*t+2)**2/2,_t=300,kt=2,Ft=1.5,Dt=0.25,Vt=0.75;var Ot="x",Gt=20,ut="_isPlaceholder",_e="__placeholder_";var tt={top:0,right:0,bottom:0,left:0},$t=(t)=>{if(t==null)return tt;if(typeof t==="number")return t===0?tt:{top:t,right:t,bottom:t,left:t};if(t.length===2){let[n,s]=t;return n===0&&s===0?tt:{top:n,right:s,bottom:n,left:s}}let[e,r,o,i]=t;return e===0&&r===0&&o===0&&i===0?tt:{top:e,right:r,bottom:o,left:i}},Bt=(t,e)=>e?t.left+t.right:t.top+t.bottom,Nt=(t,e)=>e?t.top+t.bottom:t.left+t.right;function Wt(t){let e={visibleIndices:new Int32Array(t),visibleOffsets:new Float64Array(t),visibleSizes:new Float64Array(t),visibleCount:0,startIndex:0,totalSize:0,capacity:t,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,prevAriaTotal:-1,resizeCapacity(r,o,i=Je){if(o<=0||r<=0)return;let n=Math.ceil(r/o)+i*2;if(n<=e.capacity)return;let s=n+8,a=new Int32Array(s),E=new Float64Array(s),S=new Float64Array(s);a.set(e.visibleIndices),E.set(e.visibleOffsets),S.set(e.visibleSizes),e.visibleIndices=a,e.visibleOffsets=E,e.visibleSizes=S,e.capacity=s},clear(){e.visibleCount=0,e.startIndex=0}};return e}var Cn=(t,e)=>{let r=e;return{getOffset:(o)=>o*t,getSize:(o)=>t,indexAtOffset:(o)=>{if(r===0||t===0)return 0;return Math.max(0,Math.min(Math.floor(o/t),r-1))},getTotalSize:()=>r*t,getTotal:()=>r,rebuild:(o)=>{r=o},isVariable:()=>!1}},Pn=(t,e)=>{let r=e,o=new Float64Array(0),i=(s)=>{r=s,o=new Float64Array(s+1),o[0]=0;for(let a=0;a<s;a++)o[a+1]=o[a]+t(a)};i(e);let n=(s)=>{if(r===0)return 0;if(s<=0)return 0;if(s>=o[r])return r-1;let a=0,E=r-1;while(a<E){let S=a+E+1>>>1;if(o[S]<=s)a=S;else E=S-1}return a};return{getOffset:(s)=>{if(s<=0)return 0;if(s>=r)return o[r];return o[s]},getSize:(s)=>t(s),indexAtOffset:(s)=>n(s),getTotalSize:()=>o[r]??0,getTotal:()=>r,rebuild:(s)=>i(s),isVariable:()=>!0}},nt=(t,e)=>{if(typeof t==="number")return Cn(t,e);return Pn(t,e)};function Ut(t){let e=[],r=`${t}-item`,o=document.createElement("div");return o.className=r,{acquire(){if(e.length>0)return e.pop();return o.cloneNode(!1)},release(i){if(i.className=r,i.removeAttribute("style"),i.removeAttribute("id"),i.removeAttribute("role"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-posinset"),i.removeAttribute("aria-setsize"),i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.textContent="",e.length<100)e.push(i)},get size(){return e.length},clear(){e.length=0}}}function Ne(t){let e=t.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let r=0;r<e.length;r++)e[r].setAttribute("tabindex","-1")}function Yt(t){if(typeof t==="string"){let e=document.querySelector(t);if(!e)throw Error(`[vlist] Container not found: ${t}`);return e}return t}function Kt(t,e,r,o){let i=r?`${e} ${e}--horizontal`:e,n=r?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",s=r?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",a=' role="list"';if(o)a+=` aria-label="${o.replace(/"/g,""")}"`;if(r)a+=' aria-orientation="horizontal"';t.insertAdjacentHTML("beforeend",`<div class="${i}"><div class="${e}-viewport" style="${n}" tabindex="-1"><div class="${e}-content" style="${s}"${a}></div></div></div>`);let E=t.lastElementChild,S=E.firstElementChild,g=S.firstElementChild,H=document.createElement("div");return H.className=`${e}-live`,H.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",H.setAttribute("aria-live","polite"),H.setAttribute("aria-atomic","true"),H.setAttribute("role","status"),E.appendChild(H),{root:E,viewport:S,content:g,liveRegion:H}}function Xt(t){let{state:e,viewport:r,isX:o,wheelEnabled:i,onFrame:n,onIdle:s}=t,a=t.idleTimeout||Oe,E=t.scrollTarget??r,S=null,g=null;function H(){let y=o?r.scrollLeft:r.scrollTop;if(Math.abs(y-e.scrollPosition)<0.5)return;e.prevScrollPosition=e.scrollPosition,e.scrollPosition=y,e.scrollDirection=y>e.prevScrollPosition?1:y<e.prevScrollPosition?-1:0,n(),b()}function k(y){let l;if(o){if(Math.abs(y.deltaX)>Math.abs(y.deltaY))return;let h=r.scrollLeft,z=r.scrollWidth-r.clientWidth;if(l=Math.max(0,Math.min(h+y.deltaY*qe,z)),Math.abs(l-h)<1)return;y.preventDefault(),r.scrollLeft=l}else{let h=r.scrollWidth>r.clientWidth;if(h&&Math.abs(y.deltaX)>Math.abs(y.deltaY))return;if(h&&y.deltaX!==0)y.preventDefault(),r.scrollLeft+=y.deltaX;let z=r.scrollTop,u=r.scrollHeight-r.clientHeight;if(l=Math.max(0,Math.min(z+y.deltaY*qe,u)),Math.abs(l-z)<1)return;y.preventDefault(),r.scrollTop=l}e.prevScrollPosition=e.scrollPosition,e.scrollPosition=l,e.scrollDirection=l>e.prevScrollPosition?1:-1,n(),b()}function b(){if(S!==null)clearTimeout(S);S=setTimeout(()=>{S=null,e.scrollDirection=0,s()},a)}function D(){if(g!==null)cancelAnimationFrame(g),g=null}function v(y,l,h,z=et,u){D();let A=e.scrollPosition,O=typeof y==="function"?y:()=>y,p=O();if(Math.abs(p-A)<1){if(h)h(p);else if(o)r.scrollLeft=p;else r.scrollTop=p;u?.();return}let U=performance.now();function V(F){p=O();let q=F-U,j=Math.min(q/l,1),J=A+(p-A)*z(j);if(h)h(J);else if(o)r.scrollLeft=J;else r.scrollTop=J;if(!h)e.scrollPosition=J;if(n(),j<1)g=requestAnimationFrame(V);else g=null,b(),u?.()}g=requestAnimationFrame(V)}return{attach(){if(E.addEventListener("scroll",H,{passive:!0}),i)E.addEventListener("wheel",k,{passive:!1})},detach(){if(E.removeEventListener("scroll",H),i)E.removeEventListener("wheel",k);if(D(),S!==null)clearTimeout(S),S=null},cancelScroll:D,smoothScrollTo:v}}function Ye(t,e,r){if(t<e)return e;if(t>r)return r;return t}function qt(t){let{state:e,viewport:r,content:o,isX:i,wheelEnabled:n,onFrame:s,onIdle:a,mainAxisPadding:E}=t,S=t.idleTimeout||Oe,g=t.runwayFactor??kt,H=t.wrap??null,k=H!==null,b=t.scrollTarget??r,D=0,v=0,y=0,l=null,h=null;function z(){return i?r.scrollLeft:r.scrollTop}function u(P){if(i)r.scrollLeft=P;else r.scrollTop=P}function A(P){let _=k?P:Ye(P,0,v);e.prevScrollPosition=e.scrollPosition,e.scrollPosition=_,e.scrollDirection=_>e.prevScrollPosition?1:_<e.prevScrollPosition?-1:0;let M=D/2;if(k){e.baseOffset=_-M,u(M);return}let R=Ye(_-M,0,y);e.baseOffset=R,u(Ye(_-R,0,D))}function O(P){A(P),s(),q()}function p(){let P=z(),_=e.baseOffset+P;if(Math.abs(_-e.scrollPosition)<0.5)return;if(e.prevScrollPosition=e.scrollPosition,e.scrollPosition=_,e.scrollDirection=_>e.prevScrollPosition?1:_<e.prevScrollPosition?-1:0,U(P),k)V();s(),q()}function U(P){let _=D*Dt,M=D*Vt,R=D/2;if(k){if(P>=_&&P<=M)return;e.baseOffset=e.scrollPosition-R,u(R);return}if(y<=0)return;let N=e.baseOffset,c=P<_&&N>0,d=P>M&&N<y;if(!c&&!d)return;let W=e.scrollPosition,G=Ye(W-R,0,y);if(G===N)return;e.baseOffset=G,u(Ye(W-G,0,D))}function V(){let P=H.lapSize();if(P<=0)return;let _=e.scrollPosition-H.home(),M=Math.trunc(_/P);if(Math.abs(M)<H.thresholdLaps)return;let R=M*P;e.scrollPosition-=R,e.prevScrollPosition-=R,e.baseOffset-=R}function F(P){let _;if(i)if(Math.abs(P.deltaX)>Math.abs(P.deltaY)){if(!k)return;_=P.deltaX}else _=P.deltaY;else{let c=r.scrollWidth>r.clientWidth;if(c&&Math.abs(P.deltaX)>Math.abs(P.deltaY))return;if(c&&P.deltaX!==0)P.preventDefault(),r.scrollLeft+=P.deltaX;_=P.deltaY}let M=e.scrollPosition,R=M+_*qe,N=k?R:Ye(R,0,v);if(Math.abs(N-M)<1)return;if(P.preventDefault(),O(N),k)V()}function q(){if(l!==null)clearTimeout(l);l=setTimeout(()=>{l=null,e.scrollDirection=0,a()},S)}function j(){if(h!==null)cancelAnimationFrame(h),h=null}function J(P,_,M,R=et,N){j();let c=e.scrollPosition,d=typeof P==="function"?P:()=>P,W=d();if(Math.abs(W-c)<1){O(W),N?.();return}let G=performance.now();function w(I){W=d();let B=Math.min((I-G)/_,1);if(A(c+(W-c)*R(B)),s(),B<1)h=requestAnimationFrame(w);else h=null,q(),N?.()}h=requestAnimationFrame(w)}function me(P){let _=e.containerSize,M=P+E,R=_*g,N=k?R:Math.min(M,R);D=Math.max(0,N-_),v=Math.max(0,M-_),y=Math.max(0,M-N),e.totalSize=P,o.style[i?"width":"height"]=N+"px",A(e.scrollPosition)}return{attach(){if(b.addEventListener("scroll",p,{passive:!0}),n)b.addEventListener("wheel",F,{passive:!1})},detach(){if(b.removeEventListener("scroll",p),n)b.removeEventListener("wheel",F);if(j(),l!==null)clearTimeout(l),l=null},cancelScroll:j,smoothScrollTo:J,setLogical:O,getLogical(){return e.scrollPosition},getMaxLogical(){return v},refresh:me}}function zn(t,e){if(t.getTotal()<=0)return{index:0,offsetPx:0};let o=e<=0?0:e,i=t.indexAtOffset(o),n=o-t.getOffset(i);return{index:i,offsetPx:n>0?n:0}}function An(t,e){let r=wn(t,e);return t.getOffset(r.index)+r.offsetPx}function wn(t,e){let r=t.getTotal();if(r<=0)return{index:0,offsetPx:0};let{index:o,offsetPx:i}=e;if(o<0)return{index:0,offsetPx:0};if(o>r-1)o=r-1;while(i>0&&o<r-1){let n=t.getSize(o);if(i<n)break;i-=n,o++}while(i<0&&o>0)o--,i+=t.getSize(o);if(i<0)i=0;return{index:o,offsetPx:i}}function jt(t){let{sizeCache:e,getPixel:r,setPixel:o,getContainerSize:i}=t;function n(){let a=e.getTotalSize()-i();return a>0?a:0}function s(a){if(a<=0)return 0;let E=n();return a>E?E:a}return{getLogical(){return zn(e,r())},setLogical(a){o(s(An(e,a)))},getPixelEquivalent(){return r()},setPixelEquivalent(a){o(s(a))},getMaxPixelEquivalent:n,scrollByPx(a){o(s(r()+a))}}}var je=[],Rn={calculate:je,commit:je,afterScroll:je,idle:je,resize:je};function Zt(t){if(t.length===0)return Rn;let e=[],r=[],o=[],i=[],n=[];for(let s=0;s<t.length;s++){let a=t[s].hooks;if(a===void 0)continue;if(a.onCalculate!==void 0)e.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:e,commit:r,afterScroll:o,idle:i,resize:n}}function Jt(t,e){for(let r=0;r<t.length;r++)t[r](e)}function Qt(t,e){for(let r=0;r<t.length;r++)t[r](e)}function ct(t,e,r){for(let o=0;o<t.length;o++)t[o](e,r)}function en(t){for(let e=0;e<t.length;e++)t[e]()}function tn(t,e,r){for(let o=0;o<t.length;o++)t[o](e,r)}function nn(t,e,r,o,i,n,s,a){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:a??null,indexMap:null,ariaTotalFn:null}}function Hn(t,e,r,o,i){if(t.containerSize<=0||t.totalItems===0)return t.clear(),!0;let{scrollPosition:n,containerSize:s,totalItems:a}=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<a-1)g++;S=Math.max(0,S),g=Math.min(a-1,Math.max(0,g));let H=Math.max(0,S-r),k=Math.min(a-1,g+r),b=Math.ceil(s/1)+r*2+10,D=k-H+1,v=Math.min(D,t.capacity,b);if(H===t.prevRangeStart&&k===t.prevRangeEnd&&!t.renderPending&&t.baseOffset===t.prevBaseOffset)return!1;t.visibleCount=v,t.startIndex=H;for(let y=0;y<v;y++){let l=H+y;t.visibleIndices[y]=l,t.visibleOffsets[y]=e.getOffset(l),t.visibleSizes[y]=e.getSize(l)}return Jt(o.calculate,t),t.prevRangeStart=H,t.prevRangeEnd=k,t.prevBaseOffset=t.baseOffset,t.renderPending=!1,!0}var Re={selected:!1,focused:!1};function _n(t,e,r){for(let o=0;o<e;o++)if(t[o]===r)return!0;return!1}function kn(t,e){if(e<=1)return!0;let r=t[0];for(let o=1;o<e;o++){let i=t[o];if(i!==r+1)return!1;r=i}return!0}function Fn(t,e,r,o,i,n,s,a,E,S){let g=E?null:i(),{visibleCount:H,visibleIndices:k}=t,b=s.ariaTotalFn?s.ariaTotalFn():t.totalItems,D=s.interactive?String(b):"",v=s.interactive&&b!==t.prevAriaTotal,y=null,l=s.indexMap;for(let h=0;h<H;h++){let z=k[h],u=l?l(z):z,A=t.visibleOffsets[h],O=t.visibleSizes[h],p=E?E(z):g[z];if(S)S(u,Re);else Re.selected=!1,Re.focused=!1;let U=n.get(z),V=U;if(U===void 0){let F=e.acquire();if(p!==void 0){let J;try{J=o(p,u,Re)}catch(me){if(s.emitter)s.emitter.emit("error",{error:me instanceof Error?me:Error(String(me)),context:`template:render:${u}`});e.release(F);continue}if(typeof J==="string")F.innerHTML=J;else F.textContent="",F.appendChild(J);Ne(F)}if(F.setAttribute("role",s.itemRole),F.setAttribute("data-index",String(u)),s.interactive)F.id=s.prefix+"-item-"+z,F.setAttribute("aria-posinset",String(u+1)),F.setAttribute("aria-setsize",D);if(p!==void 0){let J=String(p.id);if(F.setAttribute("data-id",J),J.startsWith(_e))F.classList.add(s.placeholderClass)}if(s.hasCrossPad)F.style.setProperty(s.crossStartProp,s.crossStartVal),F.style.setProperty(s.crossEndProp,s.crossEndVal);if(S){if(F.classList.toggle(s.selectedClass,Re.selected),F.classList.toggle(s.focusedClass,Re.focused),Re.selected)F.setAttribute("aria-selected","true");else F.removeAttribute("aria-selected");F._lastSelected=Re.selected,F._lastFocused=Re.focused}if(s.oddClass)F.classList.toggle(s.oddClass,(z&1)===1);let q=A-t.baseOffset+s.startPadding;F.style.transform=s.translateProp+q+"px)",F._lastOffset=q;let j=O-s.gap;if(F.style[s.sizeProp]=j+"px",F._lastSize=j,F._lastItem=p,n.set(z,F),y===null)y=document.createDocumentFragment();y.appendChild(F)}else{if(v)U.setAttribute("aria-setsize",D);if(p!==void 0&&V._lastItem!==p){let j=U.getAttribute("data-id"),J=String(p.id),me;try{me=o(p,u,Re)}catch(P){if(s.emitter)s.emitter.emit("error",{error:P instanceof Error?P:Error(String(P)),context:`template:render:${u}`});continue}if(typeof me==="string")U.innerHTML=me;else U.textContent="",U.appendChild(me);if(Ne(U),U.setAttribute("data-id",J),V._lastItem=p,j!==J){let P=j!==null&&j.startsWith(_e),_=J.startsWith(_e);if(P!==_)U.classList.toggle(s.placeholderClass,_);if(P&&!_)U.classList.add(s.replacedClass),setTimeout(()=>{U.classList.remove(s.replacedClass)},300)}}if(S){if(V._lastSelected!==Re.selected){if(U.classList.toggle(s.selectedClass,Re.selected),Re.selected)U.setAttribute("aria-selected","true");else U.removeAttribute("aria-selected");V._lastSelected=Re.selected}if(V._lastFocused!==Re.focused)U.classList.toggle(s.focusedClass,Re.focused),V._lastFocused=Re.focused}let F=A-t.baseOffset+s.startPadding;if(V._lastOffset!==F)U.style.transform=s.translateProp+F+"px)",V._lastOffset=F;let q=O-s.gap;if(V._lastSize!==q)U.style[s.sizeProp]=q+"px",V._lastSize=q}}if(y!==null)r.appendChild(y);if(H>0&&kn(k,H)){let h=k[0],z=k[H-1];for(let[u,A]of n)if(u<h||u>z)A.remove(),e.release(A),n.delete(u)}else for(let[h,z]of n)if(!_n(k,H,h))z.remove(),e.release(z),n.delete(h);if(s.interactive)t.prevAriaTotal=t.totalItems;Qt(a.commit,t)}function mt(t,e,r,o,i,n,s,a,E,S,g,H){if(Hn(t,e,r,S,E.startPadding))Fn(t,o,i,n,s,a,E,S,g,H)}var ft=()=>{let t={},e=(n,s)=>{if(!t[n])t[n]=new Set;return t[n].add(s),()=>r(n,s)},r=(n,s)=>{t[n]?.delete(s)};return{on:e,off:r,emit:(n,s)=>{t[n]?.forEach((a)=>{try{a(s)}catch(E){console.error(`[vlist] Error in event handler for "${String(n)}":`,E)}})},clear:(n)=>{if(n)delete t[n];else for(let s in t)delete t[s]}}};var on=2,rn=(t=0)=>({velocity:0,sampleCount:0}),sn=(t,e)=>{let r=performance.now(),o=t._lt??r,i=t._lp??e,n=r-o;if(t._lp=e,t._lt=r,n===0)return t.sampleCount=Math.min(t.sampleCount+1,5),t;if(n>100)return t.velocity=0,t.sampleCount=1,t;return t.velocity=Math.abs(e-i)/n,t.sampleCount=Math.min(t.sampleCount+1,5),t};function Dn(t){let{item:e}=t;if(e.height!==void 0&&typeof e.height==="number"){if(!Number.isFinite(e.height)||e.height<=0)throw Error(`vlist: item.height must be a positive number, got ${e.height}`)}if(e.width!==void 0&&typeof e.width==="number"){if(!Number.isFinite(e.width)||e.width<=0)throw Error(`vlist: item.width must be a positive number, got ${e.width}`)}if(e.estimatedHeight!==void 0){if(!Number.isFinite(e.estimatedHeight)||e.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${e.estimatedHeight}`)}if(e.estimatedWidth!==void 0){if(!Number.isFinite(e.estimatedWidth)||e.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${e.estimatedWidth}`)}if(e.gap!==void 0){if(typeof e.gap!=="number"||!Number.isFinite(e.gap)||e.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${e.gap}`)}if(t.overscan!==void 0){if(typeof t.overscan!=="number"||!Number.isFinite(t.overscan)||t.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${t.overscan}`)}if(t.scroll?.runway!==void 0){if(typeof t.scroll.runway!=="number"||!Number.isFinite(t.scroll.runway)||t.scroll.runway<=0)throw Error(`vlist: scroll.runway must be a positive number, got ${t.scroll.runway}`)}}function Vn(t,e){let r=t==="horizontal"?"x":"y";if(e.some((i)=>i.name==="grid"))return{primary:r,cross:r==="x"?"y":"x"};return{primary:r}}function On(t,e){let r=Vn(t.orientation,e),o=r.primary==="x",i=$t(t.padding);return{axis:r,hasCrossAxis:r.cross!==void 0,overscan:t.overscan??Je,reverse:t.reverse??!1,classPrefix:t.classPrefix??Pt,mainAxisPadding:Bt(i,o),crossAxisPadding:Nt(i,o),startPadding:o?i.left:i.top,endPadding:o?i.right:i.bottom,crossPadStart:o?i.top:i.left,crossPadEnd:o?i.bottom:i.right,striped:t.item.striped||!1,gap:t.item.gap??0}}function Gn(t,e){if(e)return t.item.width??t.item.estimatedWidth??100;return t.item.height??t.item.estimatedHeight??40}function $n(t){let e=[...t];return e.sort((r,o)=>(r.priority??50)-(o.priority??50)),e}function Bn(t){let e=new Set;for(let r of t){if(e.has(r.name))throw Error(`[vlist] Duplicate plugin: ${r.name}`);e.add(r.name)}for(let r of t)if(r.conflicts){for(let o of r.conflicts)if(e.has(o))throw Error(`[vlist] Plugin "${r.name}" conflicts with "${o}"`)}}function ln(t,e=[]){Dn(t);let r=On(t,e),o=r.axis.primary==="x",i=t.scroll?.mode==="bounded",n=Gn(t,o),s=r.gap,a=s>0?typeof n==="function"?(le)=>n(le)+s:n+s:n,E=typeof n==="number"?n:20,S=t.items?.length??0,g=r.striped?`${r.classPrefix}-item--odd`:"",H=ft(),k=nn(r.classPrefix,o,r.startPadding,r.crossPadStart,r.crossPadEnd,g,s,H),b=e.length>0?$n(e):e;if(e.length>0)Bn(b);let D=Yt(t.container),v=Kt(D,r.classPrefix,o,t.ariaLabel);if(t.scroll?.scrollbar==="none")v.viewport.classList.add(`${r.classPrefix}-viewport--no-scrollbar`);if(t.scroll?.gutter==="stable")v.viewport.classList.add(`${r.classPrefix}-viewport--gutter-stable`);let l=nt(a,S);if(s>0){let le=l.getTotalSize;l.getTotalSize=()=>{let T=le();return T>0?T-s:0}}let h=Ut(r.classPrefix),z=Math.ceil(4096/E)+r.overscan*2+8,u=Wt(z);u.totalItems=S;let A=t.items??[],O=()=>A,p=new Map,U=rn(),V={velocity:0,reliable:!1},F={range:{start:0,end:-1}},q={scrollPosition:0,direction:"down"},j={scrollPosition:0},J=-1,me=-1,P=-1,_=null,M=Zt(b),R=new Map,N=[],c=[],d=[],W=null,G=null,w=null,I=null,B=null,ee=null,Q=null,f=null,C=null,L=null,x=null,Y=!1,oe=!1,xe=null,ue=0,te=0,ce=null,ge=null,be=null,re=null,m=null,X=null,ne=null,ae=null,Te=null;u.containerSize=o?v.viewport.clientWidth:v.viewport.clientHeight,u.crossSize=o?v.viewport.clientHeight:v.viewport.clientWidth;let ye=jt({sizeCache:l,getPixel:()=>G?G():u.scrollPosition,setPixel:(le)=>{if(w)w(le);else if(o)v.viewport.scrollLeft=le;else v.viewport.scrollTop=le},getContainerSize:()=>u.containerSize});if(e.length>0){let le={dom:v,sizeCache:l,scroll:ye,pool:h,config:r,emitter:H,template:t.item.template,registerMethod(T,pe){R.set(T,pe)},getMethod(T){return R.get(T)},registerClickHandler(T){N.push(T)},registerKeydownHandler(T){c.push(T)},registerDestroyHandler(T){d.push(T)},enableListboxRole(){let T=v.content.getAttribute("role");if(!T||T==="list")v.content.setAttribute("role","listbox"),v.content.setAttribute("tabindex","0");k.itemRole="option",k.interactive=!0},setSizeConfig(T){let pe=nt(T,u.totalItems),Pe=R.get("_setSizeCacheBase");if(Pe){let Ae=l.rebuild;Object.assign(l,pe),l.rebuild=Ae,Pe(pe.rebuild)}else Object.assign(l,pe)},setScrollFns(T,pe){G=T,w=pe},setBoundedWrap(T){Te=T},cancelScroll(){Me?.cancelScroll()},setVirtualTotalFn(T){W=T,k.ariaTotalFn=T},setIndexMapFn(T){k.indexMap=T},getItems:O,getItem(T){return ee?ee(T):A[T]},getState(){return u},rebuildSizeCache(){l.rebuild(u.totalItems)},updateContentSize(T){if(ae){ae.refresh(T);return}u.totalSize=T,v.content.style[o?"width":"height"]=T+r.mainAxisPadding+"px"},setRenderFn(T,pe){I=T,B=pe},renderIfNeeded(){se()},forceRender(){K()},setGetItemFn(T){ee=T},setItemStateFn(T){Q=T},getItemStateFn(){return Q},get rawSizeSpec(){return n},scrollTo(T){if(w)w(T);else if(o)v.viewport.scrollLeft=T;else v.viewport.scrollTop=T},smoothScrollTo(T,pe,Pe,Ae){if(re)re(T,pe,w??void 0,Pe,Ae);else le.scrollTo(typeof T==="function"?T():T)},disableDefaultScroll(){Y=!0},disableDefaultResize(){oe=!0},setScrollTarget(T){xe=T},setScrollToPosFn(T){m=T},setScrollToIndexFn(T){X=T},onScrollFrame:Z,onScrollIdle:Ie,removeItemById(T){if(f)return f(T);let pe=A.findIndex((Pe)=>Pe.id===T);if(pe===-1)return-1;return A.splice(pe,1),u.totalItems=A.length,l.rebuild(u.totalItems),he(),pe},insertItemAt(T,pe){if(C){C(T,pe);return}A.splice(pe,0,T),u.totalItems=A.length,l.rebuild(u.totalItems),he()},setRemoveItemFn(T){f=T},setInsertItemFn(T){C=T},setUpdateItemFn(T){L=T},setGetIndexByIdFn(T){x=T},getRenderedElement(T){let pe=R.get("_getRenderedElement");if(pe)return pe(T);return p.get(T)??null},setNavConfig(T){if(T.ud!==void 0)ue=T.ud;if(T.lr!==void 0)te=T.lr;if(T.scrollIndex)ce=T.scrollIndex;if(T.navigate)ge=T.navigate;if(T.total)be=T.total},getNavConfig:(()=>{let T={ud:0,lr:0,scrollIndex:null,navigate:null,total:null};return()=>(T.ud=ue,T.lr=te,T.scrollIndex=ce,T.navigate=ge,T.total=be,T)})()};for(let T of b)if(T.setup)try{T.setup(le)}catch(pe){H.emit("error",{error:pe instanceof Error?pe:Error(String(pe)),context:`plugin:setup:${T.name}`})}}let ve=r.classPrefix+"--scrolling",fe=!1,Se=t.scroll?.idleTimeout??Oe;function Ce(){if(q.scrollPosition=ye.getPixelEquivalent(),o)q.direction=u.scrollDirection>0?"right":"left";else q.direction=u.scrollDirection>0?"down":"up";if(H.emit("scroll",q),sn(U,u.scrollPosition),V.velocity=U.velocity,V.reliable=U.sampleCount>=on,H.emit("velocity:change",V),u.startIndex!==J||u.prevRangeEnd!==me)J=u.startIndex,me=u.prevRangeEnd,F.range.start=u.startIndex,F.range.end=u.prevRangeEnd,H.emit("range:change",F)}let Le=!1;function he(){if(I)return;let le=l.getTotalSize();if(ae){ae.refresh(le);return}if(v.content.style[o?"width":"height"]=le+r.mainAxisPadding+"px",!Le&&le>dt)Le=!0,H.emit("error",{error:Error(`Content size (${le}px) exceeds browser limit (${dt}px). Enable bounded scroll (scroll: { mode: "bounded" }) for large datasets.`),context:"content:size:overflow"})}function ie(){if(!ne)return;if((W?W():A.length)===0)return;let T=ne;ne=null,Ke.scrollToIndex(T.index,T.alignOrOptions)}function se(){if(ie(),I)I();else mt(u,l,r.overscan,h,v.content,t.item.template,O,p,k,M,ee,Q)}function Z(){if(!fe)fe=!0,v.root.classList.add(ve);if(se(),ct(M.afterScroll,u.scrollPosition,u.scrollDirection),u.scrollPosition!==P)P=u.scrollPosition,Ce()}function Ie(){if(fe)fe=!1,v.root.classList.remove(ve);u.scrollDirection=0,en(M.idle),V.velocity=0,V.reliable=!1,H.emit("velocity:change",V),j.scrollPosition=ye.getPixelEquivalent(),H.emit("scroll:idle",j)}function K(){if(ie(),u.renderPending=!0,B)B();else mt(u,l,r.overscan,h,v.content,t.item.template,O,p,k,M,ee,Q);if(ct(M.afterScroll,u.scrollPosition,u.scrollDirection),u.scrollPosition!==P){if(P=u.scrollPosition,Ce(),_!==null)clearTimeout(_);_=setTimeout(Ie,Se)}}let de=Y?!1:t.scroll?.wheel!==!1,Me;if(Y&&(i||Te))throw Error(`vlist: page() is not compatible with ${Te?"the carousel plugin":'scroll: { mode: "bounded" }'} — bounded page-mode scrolling is not implemented yet.`);if(i||Te)ae=qt({state:u,viewport:v.viewport,content:v.content,isX:o,wheelEnabled:de,idleTimeout:t.scroll?.idleTimeout??Oe,...xe?{scrollTarget:xe}:{},mainAxisPadding:r.mainAxisPadding,...t.scroll?.runway!==void 0?{runwayFactor:Math.max(Ft,t.scroll.runway)}:{},...Te?{wrap:Te}:{},onFrame:Z,onIdle:Ie}),Me=ae,G=()=>u.scrollPosition,w=(le)=>ae.setLogical(le);else Me=Xt({state:u,viewport:v.viewport,isX:o,wheelEnabled:de,idleTimeout:t.scroll?.idleTimeout??Oe,...xe?{scrollTarget:xe}:{},onFrame:Z,onIdle:Ie});re=Me.smoothScrollTo;function Ee(le){let pe=le.target.closest("[data-index]");if(!pe)return null;let Pe=parseInt(pe.getAttribute("data-index"),10);if(Number.isNaN(Pe))return null;let Ae=R.get("_layoutToDataIndex"),ke;if(Ae){let Fe=Ae(Pe);if(Fe<0)return null;let Xe=R.get("_getItem");ke=Xe?Xe(Fe):ee?ee(Fe):A[Fe]}else ke=ee?ee(Pe):A[Pe];if(ke===void 0)return null;return{item:ke,index:Pe}}function we(le){for(let pe=0;pe<N.length;pe++)N[pe](le);let T=Ee(le);if(T)H.emit("item:click",{item:T.item,index:T.index,event:le})}function Be(le){let T=Ee(le);if(T)H.emit("item:dblclick",{item:T.item,index:T.index,event:le})}function He(le){let T=Ee(le);if(T)H.emit("item:contextmenu",{item:T.item,index:T.index,event:le})}function Ue(le){let T=le.target?.tagName;if((T==="INPUT"||T==="TEXTAREA"||T==="SELECT")&&!((le.ctrlKey||le.metaKey)&&(le.key==="f"||le.key==="F")))return;for(let pe=0;pe<c.length;pe++)c[pe](le)}if(v.content.addEventListener("click",we),v.content.addEventListener("dblclick",Be),v.content.addEventListener("contextmenu",He),c.length>0)v.root.addEventListener("keydown",Ue);let Ve=null;if(!oe)setTimeout(()=>{if(u.destroyed)return;Ve=new ResizeObserver((T)=>{for(let pe of T){let{width:Pe,height:Ae}=pe.contentRect,ke=o?Pe:Ae,Fe=o?Ae:Pe;if(Math.abs(ke-u.containerSize)<1&&Math.abs(Fe-u.crossSize)<1)continue;if(u.containerSize=ke,u.crossSize=Fe,u.resizeCapacity(ke,E,r.overscan),ae)ae.refresh(l.getTotalSize());K(),tn(M.resize,Pe,Ae),H.emit("resize",{width:Pe,height:Ae})}}),Ve.observe(v.viewport)},0);u.resizeCapacity(u.containerSize,E,r.overscan),he(),u.initialized=!0;let ze=null;if(t.defer)ze=requestAnimationFrame(()=>{if(ze=null,!u.destroyed)se()});else se();if(!Y)Me.attach();let Ke={get element(){return v.root},get items(){return A},get total(){return W?W():A.length},setItems(le){A=[...le],u.totalItems=A.length,l.rebuild(u.totalItems),he(),K()},appendItems(le){A.push(...le),u.totalItems=A.length,l.rebuild(u.totalItems),he(),K()},prependItems(le){A.unshift(...le),u.totalItems=A.length,l.rebuild(u.totalItems),he(),K()},updateItem(le,T){if(L){if(!L(le,T))return}else{let pe=A.findIndex((Pe)=>Pe.id===le);if(pe===-1)return;A[pe]={...A[pe],...T}}K()},insertItem(le,T){if(C)C(le,T??u.totalItems);else{if(T===void 0)A.push(le);else A.splice(T,0,le);u.totalItems=A.length,l.rebuild(u.totalItems),he()}K()},removeItem(le){if(f){if(f(le)<0)return}else{let T=A.findIndex((pe)=>pe.id===le);if(T===-1)return;A.splice(T,1),u.totalItems=A.length,l.rebuild(u.totalItems),he()}K()},removeItems(le){if(f){let Ae=0;for(let ke of le)if(f(ke)>=0)Ae++;if(Ae>0)K();return Ae}let T=new Set(le),pe=A.length;A=A.filter((Ae)=>!T.has(Ae.id));let Pe=pe-A.length;if(Pe>0)u.totalItems=A.length,l.rebuild(u.totalItems),he(),u.renderPending=!0,se();return Pe},getItemAt(le){if(k.indexMap)return A[le];return ee?ee(le):A[le]},getIndexById(le){if(x)return x(le);return A.findIndex((T)=>T.id===le)},scrollToIndex(le,T="start"){let pe=W?W():A.length;if(pe===0){ne={index:le,alignOrOptions:T};return}let Pe=Math.max(0,Math.min(le,pe-1)),Ae=typeof T==="string"?T:T.align??"start",ke=typeof T==="object"?T.behavior:void 0,Fe=typeof T==="object"?T.duration:void 0,Xe=typeof T==="object"?T.easing:void 0;if(X&&X(Pe,Ae,ke,Fe,Xe)!==!1)return;let lt=l.getOffset(Pe),Mt=l.getSize(Pe),Ze=u.containerSize,Ln=l.getTotalSize(),Ct=r.mainAxisPadding,En=Math.max(0,Ln+Ct-Ze),De;if(m)De=m(Pe,l,Ze,pe,Ae);else{let Mn=r.startPadding;switch(Ae){case"center":De=Mn+lt-(Ze-Mt)/2;break;case"end":De=lt+Mt+Ct-Ze;break;default:De=lt}De=Math.max(0,Math.min(De,En))}if(ke==="smooth")Me.smoothScrollTo(De,Fe??_t,w??void 0,Xe);else if(w)w(De);else if(o)v.viewport.scrollLeft=De;else v.viewport.scrollTop=De},getScrollPosition(){return ye.getPixelEquivalent()},on:H.on.bind(H),off:H.off.bind(H),destroy(){if(u.destroyed)return;if(u.destroyed=!0,fe)fe=!1,v.root.classList.remove(ve);if(ze!==null)cancelAnimationFrame(ze),ze=null;if(_!==null)clearTimeout(_),_=null;Me.detach(),Ve?.disconnect(),v.content.removeEventListener("click",we),v.content.removeEventListener("dblclick",Be),v.content.removeEventListener("contextmenu",He),v.root.removeEventListener("keydown",Ue);let le=[];for(let T of d)try{T()}catch(pe){le.push(pe instanceof Error?pe:Error(String(pe)))}for(let T of b)if(T.destroy)try{T.destroy()}catch(pe){le.push(pe instanceof Error?pe:Error(String(pe)))}for(let[,T]of p)T.remove();if(p.clear(),h.clear(),v.root.remove(),H.emit("destroy",void 0),H.clear(),le.length>0)for(let T of le)console.error("vlist: error during destroy:",T)}};for(let[le,T]of R)Ke[le]=T;return Ke}var ot=(t)=>t==null?0:typeof t==="function"?t():t;function gt(t){let e=t?.scrollPadding,r,o;return{name:"page",priority:5,setup(i){let{dom:n,sizeCache:s,config:a,emitter:E}=i,S=a.axis.primary==="x",g=window,H=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(`${a.classPrefix}-viewport--custom-scrollbar`),i.setScrollFns(()=>{let l=n.viewport.getBoundingClientRect();return Math.max(0,S?-l.left:-l.top)},(l)=>{let h=n.viewport.getBoundingClientRect(),z=(S?h.left+g.scrollX:h.top+g.scrollY)+l;if(S)g.scrollTo({left:z,top:g.scrollY,behavior:"instant"});else g.scrollTo({left:g.scrollX,top:z,behavior:"instant"})}),H.containerSize=S?g.innerWidth:g.innerHeight,H.crossSize=S?g.innerHeight:g.innerWidth;let k=null,b=()=>{let l=n.viewport.getBoundingClientRect(),h=Math.max(0,S?-l.left:-l.top);if(H.prevScrollPosition=H.scrollPosition,H.scrollPosition=h,H.scrollDirection=h>H.prevScrollPosition?1:h<H.prevScrollPosition?-1:0,i.onScrollFrame(),k!==null)clearTimeout(k);k=setTimeout(()=>{k=null,i.onScrollIdle()},150)};g.addEventListener("scroll",b,{passive:!0}),o=()=>g.removeEventListener("scroll",b);let{innerWidth:D,innerHeight:v}=g,y=()=>{let{innerWidth:l,innerHeight:h}=g;if((S?Math.abs(l-D):Math.abs(h-v))<1)return;D=l,v=h,H.containerSize=S?l:h,H.crossSize=S?h:l,i.forceRender(),E.emit("resize",{width:l,height:h})};if(g.addEventListener("resize",y),r=()=>g.removeEventListener("resize",y),e)i.setScrollToPosFn((l,h,z,u,A)=>{let O=ot(S?e.left:e.top),p=ot(S?e.right:e.bottom);if(u===0)return 0;let U=Math.max(0,Math.min(l,u-1)),V=h.getOffset(U),F=h.getSize(U),q=h.getTotalSize(),j=Math.max(0,q-z+p),J;switch(A){case"center":J=V-O-(z-O-p-F)/2;break;case"end":J=V-z+F+p;break;default:J=V-O}return Math.max(-O,Math.min(J,j))}),i.registerMethod("_scrollItemIntoView",(l)=>{let h=S?g.innerWidth:g.innerHeight,z=ot(S?e.left:e.top),u=ot(S?e.right:e.bottom),A=n.viewport.getBoundingClientRect(),O=S?g.scrollX:g.scrollY,p=S?A.left:A.top,U=p+O,V=s.getOffset(l),F=s.getSize(l),q=p+V,j=h-u,J=O;if(q<z)J=U+V-z;else if(q+F>j)J=U+V+F-j;if(J!==O)if(S)g.scrollTo({left:J,top:g.scrollY,behavior:"instant"});else g.scrollTo({left:g.scrollX,top:J,behavior:"instant"})});i.registerDestroyHandler(()=>{if(o?.(),r?.(),k!==null)clearTimeout(k)})},destroy(){o?.(),r?.(),o=void 0,r=void 0}}}function pt(t){let e=t?.gap??0,r=null,o=null,i,n,s,a,E=new Map,S=new Set,g=new WeakMap,H=0,k=!1,b=!1,D=!1,v=2;function y(p){return E.get(p)??a}function l(p){return E.has(p)&&!S.has(p)}function h(p){if(!o||i.destroyed)return;if(!E.has(p))return;S.add(p),o.forceRender()}function z(){return Math.max(0,o.sizeCache.getTotalSize()+o.config.mainAxisPadding-i.containerSize)}function u(){let p=z();return p>0&&i.scrollPosition>=p-v}function A(){let p=z();if(p>i.scrollPosition)o.scrollTo(p)}function O(){o.updateContentSize(o.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(p){if(o=p,i=p.getState(),n=p.config.axis.primary==="x",s=n?"width":"height",e===0)e=p.config.gap;if(a=typeof p.rawSizeSpec==="function"?p.rawSizeSpec(0)+e:p.rawSizeSpec+e,p.setSizeConfig(y),e>0){let j=p.sizeCache.getTotalSize;p.sizeCache.getTotalSize=()=>{let J=j();return J>0?J-e:0}}r=new ResizeObserver((j)=>{if(i.destroyed||!o)return;let J=!1,me=p.sizeCache.indexAtOffset(i.scrollPosition);for(let N of j){let c=N.target,d=g.get(c);if(d===void 0)continue;if(c.getAttribute("data-index")!==String(d)){r.unobserve(c);continue}if(l(d))continue;let W=N.borderBoxSize[0];if(!W)continue;let G=n?W.inlineSize:W.blockSize;if(G<=0)continue;let w=G+e,I=E.has(d),B=E.get(d)??a;if(E.set(d,w),S.delete(d),!I||w!==B)J=!0;if(d<me&&w!==B)H+=w-B;r.unobserve(c),c.style[s]=`${G}px`}if(!J)return;let P=u();if(p.rebuildSizeCache(),H)p.scrollTo(i.scrollPosition+H),H=0;let _=i.scrollDirection!==0,M=i.totalItems>0&&i.prevRangeEnd>=i.totalItems-1,R=b&&!D;if(R||P||M||!_){if(O(),k=!1,R||P)A()}else k=!0;p.forceRender()}),p.setScrollToIndexFn((j,J,me,P,_)=>{let M=j>=i.totalItems-1&&J==="end";if(b=M,D=!1,!M)return!1;let R=p.config.mainAxisPadding,N=()=>{let c=p.sizeCache.getTotalSize();return Math.max(0,c+R-i.containerSize)};if(me==="smooth")D=!0,p.smoothScrollTo(N,P??300,_,()=>{D=!1});else p.scrollTo(N())});let U=()=>{b=!1},V=p.dom.viewport;V.addEventListener("wheel",U,{passive:!0}),V.addEventListener("touchstart",U,{passive:!0}),p.registerDestroyHandler(()=>{V.removeEventListener("wheel",U),V.removeEventListener("touchstart",U)});let F=p.dom.content,q=(j)=>{let J=j.target;if(!J||J===F)return;let me=J.closest("[data-index]");if(!me||me.parentNode!==F)return;let P=Number(me.getAttribute("data-index"));if(l(P))h(P)};F.addEventListener("load",q,!0),F.addEventListener("error",q,!0),p.registerDestroyHandler(()=>{F.removeEventListener("load",q,!0),F.removeEventListener("error",q,!0)}),p.registerMethod("isMeasured",l),p.registerMethod("setMeasuredSize",(j,J)=>{E.set(j,J)}),p.registerMethod("getMeasuredCount",()=>E.size),p.registerDestroyHandler(()=>{if(r)r.disconnect(),r=null})},hooks:{onCommit(p){if(!r||!o)return;for(let U=0;U<p.visibleCount;U++){let V=p.visibleIndices[U];if(l(V))continue;let F=o.getRenderedElement(V);if(!F)continue;F.style[s]="",g.set(F,V),r.observe(F)}},onIdle(){if(!o||!k)return;let p=u();if(O(),k=!1,p)A(),o.forceRender()}},destroy(){if(r)r.disconnect(),r=null;E.clear(),S.clear(),b=!1,D=!1,o=null}}}var an=(t={})=>{let{chunkSize:e=100,maxCachedItems:r=5000,evictionBuffer:o=200,onEvict:i}=t,n=new Map,s=0,a=0,E=(M)=>{let R=n.get(M);if(!R)R={items:Array(e),count:0,lastAccess:Date.now()},n.set(M,R);else R.lastAccess=Date.now();return R},S=(M)=>Math.floor(M/e),g=(M)=>M%e,H=()=>s,k=(M)=>{s=M},b=(M)=>{if(M<0||M>=s)return;let R=S(M),N=n.get(R);if(!N)return;return N.items[g(M)]},D=(M)=>{if(M<0||M>=s)return!1;let R=S(M),N=n.get(R);if(!N)return!1;return N.items[g(M)]!==void 0},v=(M,R)=>{let N=S(M),c=E(N),d=g(M),W=c.items[d]===void 0;if(c.items[d]=R,W)c.count++,a++;if(M>=s)s=M+1},y=(M,R)=>{for(let N=0;N<R.length;N++){let c=R[N];if(c!==void 0)v(M+N,c)}},l=(M,R)=>{if(M<0||M>s)return;let N=S(M),c=Array.from(n.keys()).filter((I)=>I>=N).sort((I,B)=>I-B),d=[];for(let I of c){let B=n.get(I),ee=I*e;for(let Q=0;Q<e;Q++){if(B.items[Q]===void 0)continue;let f=ee+Q;if(f<M)continue;d.push({oldIndex:f,item:B.items[Q]})}}for(let{oldIndex:I}of d){let B=S(I),ee=n.get(B);if(!ee)continue;let Q=g(I);if(ee.items[Q]!==void 0){if(ee.items[Q]=void 0,ee.count--,a--,ee.count===0)n.delete(B)}}s++;for(let{oldIndex:I,item:B}of d){let ee=I+1,Q=S(ee),f=E(Q),C=g(ee);f.items[C]=B,f.count++,a++}let W=S(M),G=E(W),w=g(M);G.items[w]=R,G.count++,a++},h=(M)=>{if(M<0||M>=s)return!1;let R=S(M),N=n.get(R),c=g(M);if(!(N!==void 0&&N.items[c]!==void 0))return!1;let W=R,G=Array.from(n.keys()).filter((I)=>I>=W).sort((I,B)=>I-B),w=[];for(let I of G){let B=n.get(I),ee=I*e;for(let Q=0;Q<e;Q++){if(B.items[Q]===void 0)continue;let f=ee+Q;if(f<=M)continue;w.push({oldIndex:f,item:B.items[Q]})}}if(N.items[c]=void 0,N.count--,a--,N.count===0)n.delete(R);for(let{oldIndex:I}of w){let B=S(I),ee=n.get(B);if(!ee)continue;let Q=g(I);if(ee.items[Q]!==void 0){if(ee.items[Q]=void 0,ee.count--,a--,ee.count===0)n.delete(B)}}for(let{oldIndex:I,item:B}of w){let ee=I-1,Q=S(ee),f=E(Q),C=g(ee);f.items[C]=B,f.count++,a++}return s--,!0},z=(M,R)=>{let N=[];for(let c=M;c<=R&&c<s;c++)N.push(b(c));return N},u=(M,R)=>{for(let N=M;N<=R&&N<s;N++)if(!D(N))return!1;return!0},A=()=>{let M=[],R=null,N=Array.from(n.keys()).sort((c,d)=>c-d);for(let c of N){let d=n.get(c);if(!d)continue;let W=c*e;for(let G=0;G<e;G++){let w=W+G;if(w>=s)break;if(d.items[G]!==void 0)if(R===null)R={start:w,end:w};else if(w===R.end+1)R.end=w;else M.push(R),R={start:w,end:w};else if(R!==null)M.push(R),R=null}}if(R!==null)M.push(R);return M},O=(M,R)=>{let N=[],c=null;for(let d=M;d<=R&&d<s;d++)if(!D(d))if(c===null)c={start:d,end:d};else c.end=d;else if(c!==null)N.push(c),c=null;if(c!==null)N.push(c);return N},p=(M)=>n.has(M),U=(M)=>{let R=n.get(M);if(!R)return!1;let N=M*e,c=Math.min(e,s-N);return R.count>=c},V=(M)=>{let R=n.get(M);if(R)R.lastAccess=Date.now()},F=(M,R)=>{if(M>R||n.size===0)return;let N=Date.now(),c=S(Math.max(0,M)),d=S(Math.min(s-1,R));for(let W=c;W<=d;W++){let G=n.get(W);if(G)G.lastAccess=N}},q=(M,R)=>{if(a<=r)return 0;let N=Math.max(0,M-o),c=Math.min(s-1,R+o),d=S(N),W=S(c),G=0,w=[];for(let[I,B]of n)if(I<d||I>W)G+=B.count,w.push(I),a-=B.count,n.delete(I);if(G>0&&i)i(G,w);return G},j=()=>{if(a<=r)return 0;let M=Array.from(n.entries()).sort(([,c],[,d])=>c.lastAccess-d.lastAccess),R=0,N=[];for(let[c,d]of M){if(a<=r)break;R+=d.count,a-=d.count,N.push(c),n.delete(c)}if(R>0&&i)i(R,N);return R},J=()=>({totalItems:s,cachedItems:a,cachedChunks:n.size,chunkSize:e,maxCachedItems:r,memoryEfficiency:s>0?1-a/s:1}),me=()=>a,P=()=>{n.clear(),a=0};return{chunkSize:e,maxCachedItems:r,getTotal:H,setTotal:k,get:b,has:D,set:v,setRange:y,insert:l,delete:h,getRange:z,isRangeLoaded:u,getLoadedRanges:A,findUnloadedRanges:O,getChunkIndex:S,isChunkLoaded:p,isChunkFullyLoaded:U,touchChunk:V,touchChunksForRange:F,evictDistant:q,evictToLimit:j,getStats:J,getCachedCount:me,clear:P,reset:()=>{P(),s=0}}};var dn=(t={})=>{let{maskCharacter:e=Ot,maxSampleSize:r=Gt}=t,o=[],i=!1,n=(g)=>{if(i||g.length===0)return;let H=Math.min(g.length,r);for(let k=0;k<H;k++){let b=g[k];if(!b||typeof b!=="object")continue;let D={},v=!1;for(let[y,l]of Object.entries(b)){if(y.startsWith("_")||y==="id")continue;D[y]=String(l??"").length,v=!0}if(v)o.push(D)}i=!0},s=()=>i,a=(g)=>{let H={id:`${_e}${g}`,[ut]:!0,_index:g};if(o.length===0)return H.label=e.repeat(12),H;let k=o[g%o.length];for(let[b,D]of Object.entries(k))H[b]=e.repeat(Math.max(1,D));return H};return{analyzeStructure:n,hasAnalyzedStructure:s,generate:a,generateRange:(g,H)=>{let k=[];for(let b=g;b<=H;b++)k.push(a(b));return k},clear:()=>{o=[],i=!1}}},rt=(t)=>{if(!t||typeof t!=="object")return!1;return t[ut]===!0};var Nn=50,un=(t={})=>{let{adapter:e,initialItems:r,initialTotal:o,storage:i,placeholder:n,pageSize:s=Nn,maxConcurrent:a=0,onStateChange:E,onDataChange:S,onItemsLoaded:g,onItemsEvicted:H,onLoadError:k}=t,b=an({...i,onEvict:(re,m)=>{H?.(re),q(),F()}}),D=null,v=()=>{if(!D)D=dn(n);return D},y=new Map,l=!1,h,z=!0,u,A,O=[],p=0,U=new Map,V=()=>{for(let re of U.values())re[1].abort();U.clear()},F=()=>{E?.(c())},q=()=>{S?.()},j=()=>{y.clear();let re=b.getLoadedRanges();for(let m of re)for(let X=m.start;X<=m.end;X++){let ne=b.get(X);if(ne&&!rt(ne))y.set(ne.id,X)}},J=(re,m)=>{if(!rt(m))y.set(m.id,re)},me=(re)=>{y.delete(re)},P=(re,m)=>`${re}-${m}`,_=()=>b.getTotal(),M=()=>b.getCachedCount(),R=()=>l,N=()=>z,c=()=>({total:b.getTotal(),cached:b.getCachedCount(),isLoading:l,pendingRanges:O,error:h,hasMore:z,cursor:u}),d=()=>b,W=()=>v(),G=(re)=>{let m=b.get(re);if(m!==void 0)return m;if(re>=0&&re<b.getTotal())return v().generate(re);return},w=(re)=>{let m=y.get(re);if(m===void 0)return;return b.get(m)},I=(re)=>y.get(re)??-1,B=(re)=>{let m=b.get(re);return m!==void 0&&!rt(m)},ee=(re,m)=>{let X=[],ne=b.getTotal();b.touchChunksForRange(re,Math.min(m,ne-1));for(let ae=re;ae<=m&&ae<ne;ae++){let Te=b.get(ae);if(Te!==void 0)X.push(Te);else X.push(v().generate(ae))}return X},Q=(re)=>{b.setTotal(re),z=b.getCachedCount()<re,q(),F()},f=(re,m=0,X)=>{if(e&&re.length>0){let ne=v();if(!ne.hasAnalyzedStructure())ne.analyzeStructure(re)}for(let ne=0;ne<re.length;ne++){let ae=re[ne];if(ae!==void 0){let Te=m+ne;b.set(Te,ae),J(Te,ae)}}if(X!==void 0)b.setTotal(X);else if(m+re.length>b.getTotal())b.setTotal(m+re.length);if(b.getCachedCount()>=b.getTotal()&&b.getTotal()>0)z=!1;q(),F(),g?.(re,m,b.getTotal())},C=(re,m)=>{let X=b.get(re);if(!X)return!1;let ne=X.id,ae={...X,...m};if(b.set(re,ae),m.id!==void 0&&m.id!==ne)me(ne);return J(re,ae),q(),F(),!0},L=(re,m)=>{b.insert(m,re),j(),V(),q(),F()},x=(re)=>{let m=y.get(re);if(m===void 0)return!1;if(!b.delete(m))return!1;return j(),V(),q(),F(),!0},Y=async(re,m)=>{if(!e)return;let X=b.chunkSize,ne=Math.floor(re/X),ae=Math.floor(m/X),Te=X*2;for(let[fe,Se]of U){let Ce=fe.indexOf("-"),Le=parseInt(fe.slice(0,Ce),10);if(Math.abs(Le-re)>Te)Se[1].abort(),U.delete(fe)}let ye=[],ve=[];for(let fe=ne;fe<=ae;fe++){let Se=fe*X,Ce=Se+X-1,Le=P(Se,Ce);if(b.isChunkFullyLoaded(fe))continue;let ie=U.get(Le);if(ie)ve.push(ie[0]);else ye.push({start:Se,end:Ce})}if(ye.length===0){if(ve.length>0)await Promise.all(ve);return}if(a>0){let fe=U.size+ye.length;if(fe>a){let Se=(re+m)/2,Ce=Math.min(fe-a,U.size);while(Ce>0){let he=null,ie=-1,se=null;for(let[Z,Ie]of U){let K=Z.indexOf("-"),de=parseInt(Z.slice(0,K),10),Me=parseInt(Z.slice(K+1),10),Ee=Math.abs((de+Me)/2-Se);if(Ee>ie)ie=Ee,he=Z,se=Ie[1]}if(he)se.abort(),U.delete(he);Ce--}let Le=a-U.size;if(ye.length>Le)ye.sort((he,ie)=>{let se=Math.abs((he.start+he.end)/2-Se),Z=Math.abs((ie.start+ie.end)/2-Se);return se-Z}),ye.length=Math.max(0,Le)}}if(ye.length===0){if(ve.length>0)await Promise.all(ve);return}for(let fe of ye){let Se=P(fe.start,fe.end),Ce=new AbortController,Le=(async()=>{O.push(fe),l=!0,h=void 0,F();try{let he=fe.end-fe.start+1,ie={offset:fe.start,limit:he,cursor:fe.start===A?u:void 0,signal:Ce.signal},se=await e.read(ie);if(f(se.items,fe.start,se.total),se.cursor)u=se.cursor,A=fe.start+se.items.length;let Z=fe.start+se.items.length;if(Z>=p){if(p=Z,se.hasMore!==void 0)z=se.hasMore;else if(se.total!==void 0)z=Z<se.total}}catch(he){if(he?.name==="AbortError")return;h=he instanceof Error?he:Error(String(he)),k?.(h,fe)}finally{U.delete(Se);let he=O.findIndex((ie)=>ie.start===fe.start&&ie.end===fe.end);if(he>=0)O.splice(he,1);l=U.size>0,F()}})();U.set(Se,[Le,Ce]),ve.push(Le)}await Promise.all(ve)},oe=async(re,m)=>{if(b.isRangeLoaded(re,m))return;await Y(re,m)},xe=async()=>{if(!e)return;await Y(0,s-1)},ue=async()=>{if(!e||l||!z)return!1;let re=b.getCachedCount(),m=b.getTotal(),X=re,ne=Math.min(X+s-1,m>0?m-1:X+s-1);if(X>=m&&m>0)return z=!1,!1;return await Y(X,ne),b.getCachedCount()>re},te=async()=>{if(b.clear(),y.clear(),D)D.clear();V(),O=[],l=!1,u=void 0,A=void 0,z=!0,p=0,h=void 0,q(),F()},ce=(re,m)=>{if(b.evictDistant(re,m)>0)j()},ge=()=>{b.clear(),y.clear(),u=void 0,A=void 0,h=void 0,O=[],l=!1,q(),F()},be=()=>{if(b.reset(),y.clear(),D)D.clear();u=void 0,A=void 0,z=!0,p=0,h=void 0,O=[],l=!1,q(),F()};if(r&&r.length>0)f(r,0,o??r.length);else if(o!==void 0)b.setTotal(o),q(),F();return{getState:c,getTotal:_,getCached:M,getIsLoading:R,getHasMore:N,getStorage:d,getPlaceholders:W,getItem:G,getItemById:w,getIndexById:I,isItemLoaded:B,getItemsInRange:ee,setTotal:Q,setItems:f,updateItem:C,insertItem:L,removeItem:x,loadRange:Y,ensureRange:oe,loadInitial:xe,loadMore:ue,reload:te,evictDistant:ce,clear:ge,reset:be}};function bt(t){let{adapter:e,total:r,autoLoad:o=!0,storage:i}=t,n=t.loading?.cancelThreshold??wt,s=t.loading?.preloadThreshold??At,a=t.loading?.preloadAhead??zt,E=t.loading?.maxConcurrent??Rt,S,g,H,k,b,D,v=null,y=null,l=null,h=0,z=!1,u=null,A=at,O=-1,p=-1,U=-1,V=-1,F=i?.chunkSize??Qe,q=()=>{if(v=null,y!==null)clearTimeout(y),y=null},j=(c,d)=>S.ensureRange(c,d),J=(c,d=Qe)=>{k.emit("load:start",{offset:c,limit:d})},me=(c)=>{k.emit("error",{error:c,context:"ensureRange"})},P=()=>{v=null;let c={start:g.startIndex,end:g.startIndex+Math.max(0,g.visibleCount-1)};if(c.end<c.start)return;j(c.start,c.end).catch(me)},_=()=>{if(u!==null)clearTimeout(u),u=null},M=()=>{if(g.destroyed)return;let c=S.getTotal();if(g.visibleCount<=0||g.startIndex>=c)return;let d=Math.min(g.startIndex+g.visibleCount-1,c-1);if(d<g.startIndex)return;j(g.startIndex,d).catch(me)},R=()=>{if(u!==null||g.destroyed)return;u=setTimeout(()=>{u=null,M()},A),A=Math.min(A*2,Ht)},N=()=>{_(),A=at};return{name:"data",priority:20,setup(c){g=c.getState(),H=c.sizeCache,k=c.emitter,b=c.dom,D=c.forceRender.bind(c);let d=null;c.setVirtualTotalFn(()=>d?.getTotal()??0),c.setGetIndexByIdFn((G)=>d?.getIndexById(G)??-1),S=d=un({adapter:e,...r!==void 0&&{initialTotal:r},pageSize:i?.chunkSize??Qe,maxConcurrent:E,...i&&{storage:{...i.chunkSize!==void 0&&{chunkSize:i.chunkSize},...i.maxCachedItems!==void 0&&{maxCachedItems:i.maxCachedItems},...i.evictionBuffer!==void 0&&{evictionBuffer:i.evictionBuffer}}},onDataChange:()=>{if(g.initialized){let G=S.getTotal(),w=S.getCached();if(g.totalItems=G,G!==O||w!==p)O=G,p=w,H.rebuild(G);c.updateContentSize(H.getTotalSize()),c.renderIfNeeded()}},onItemsLoaded:(G)=>{if(N(),g.initialized)c.updateContentSize(H.getTotalSize()),D(),k.emit("load:end",{items:G,total:S.getTotal()})},onLoadError:(G)=>{if(k.emit("error",{error:G,context:"load"}),g.initialized)c.renderIfNeeded();R()}}),c.setGetItemFn((G)=>S.getItem(G)),c.setRemoveItemFn((G)=>{let w=S.getIndexById(G);if(w<0)return-1;if(!S.removeItem(G))return-1;return w}),c.setInsertItemFn((G,w)=>{S.insertItem(G,w)}),c.setUpdateItemFn((G,w)=>{let I=S.getIndexById(G);if(I<0)return!1;return S.updateItem(I,w)}),c.registerMethod("reload",async()=>{if(v=null,U=-1,V=-1,N(),c.forceRender(),await S.reload(),c.scrollTo(0),o)J(0),await S.loadInitial(),c.forceRender()}),c.registerMethod("loadVisibleRange",async()=>{v=null,c.forceRender();let G=S.getTotal();if(g.visibleCount>0&&g.startIndex<G){let w=Math.min(g.startIndex+g.visibleCount-1,G-1);J(g.startIndex,w-g.startIndex+1),await j(g.startIndex,w)}}),c.registerMethod("loadInitial",async()=>{J(0),await S.loadInitial(),c.forceRender()}),c.registerMethod("getTotal",()=>S.getTotal()),c.registerMethod("setTotal",(G)=>{S.setTotal(G)}),c.registerMethod("_getTotal",()=>S.getTotal()),c.registerMethod("_setTotal",(G)=>{S.setTotal(G)}),c.registerMethod("_cancelAutoLoad",()=>{z=!0}),c.registerMethod("_getLoadedItem",(G)=>S.getStorage().get(G)),c.registerMethod("_getItem",(G)=>S.getItem(G)),c.registerMethod("_getLoadedCount",()=>S.getCached()),k.on("load:start",()=>{b.root.setAttribute("aria-busy","true")}),k.on("load:end",()=>{b.root.removeAttribute("aria-busy")}),c.registerDestroyHandler(()=>{if(l!==null)clearTimeout(l),l=null;q(),_()}),k.on("velocity:change",({velocity:G})=>{h=Math.abs(G)});let W=()=>{if(g.destroyed)return;N(),M(),P()};if(window.addEventListener("online",W),c.registerDestroyHandler(()=>{window.removeEventListener("online",W)}),o)queueMicrotask(()=>{if(z)return;J(0),S.loadInitial().catch((G)=>{k.emit("error",{error:G,context:"loadInitial"})})});else if(r!==void 0)S.setTotal(r)},hooks:{onAfterScroll(){if(g.destroyed)return;let c=g.startIndex+Math.max(0,g.visibleCount-1);if(h>n){if(y!==null)clearTimeout(y),y=null;v={start:g.startIndex,end:c};return}if(h>s){let G=Math.floor(g.startIndex/F),w=Math.floor(c/F);if(G!==U||w!==V){if(U=G,V=w,c>=g.startIndex)j(g.startIndex,c).catch(me)}let I=g.startIndex,B=c,ee=g.scrollDirection;if(ee>0)B=Math.min(B+a,S.getTotal()-1);else if(ee<0)I=Math.max(0,I-a);if(v={start:I,end:B},y!==null)clearTimeout(y);y=setTimeout(()=>{if(y=null,g.destroyed||!v)return;let{start:Q,end:f}=v;if(v=null,f>=Q)j(Q,f).catch(me)},100);return}q();let d=Math.floor(g.startIndex/F),W=Math.floor(c/F);if(d!==U||W!==V){if(U=d,V=W,c>=g.startIndex)j(g.startIndex,c).catch(me)}},onIdle(){if(g.destroyed)return;h=0,U=-1,V=-1,P(),q()},onResize(){if(g.destroyed)return;let c=S.getTotal();if(c<=0)return;if(g.visibleCount<=0||g.startIndex>=c)return;let d=Math.min(g.startIndex+g.visibleCount-1,c-1);if(d<g.startIndex)return;J(g.startIndex,d-g.startIndex+1),j(g.startIndex,d).catch(me)}},destroy(){if(l!==null)clearTimeout(l);q(),_()}}}var cn=(t)=>{let e=Math.max(1,Math.floor(t.columns)),r=t.gap??0,o=t.isHeaderFn,i={row:0,col:0},n=(v)=>{if(v<=0)return 0;if(!o)return Math.ceil(v/e);let y=0,l=0,h=0;for(let z=0;z<v;z++)if(o(z)){if(h++,l)y++,l=0;y++,l=0}else if(l++,l>=e)y++,l=0;if(l)y++;return y},s=(v)=>(i.row=a(v),i.col=E(v),i),a=(v)=>{if(!o)return Math.floor(v/e);let y=0,l=0;for(let h=0;h<=v;h++)if(o(h)){if(l)y++,l=0;if(h===v)return y;y++,l=0}else{if(h===v)return y;if(l++,l>=e)y++,l=0}return console.warn(`⚠️ getRow(${v}) fell through - returning ${y}`),y},E=(v)=>{if(!o)return v%e;if(o(v))return 0;let y=0;for(let l=0;l<=v;l++)if(o(l))y=0;else{if(l===v)return y;if(y++,y>=e)y=0}return y},S=(v,y,l,h)=>{if(l<=0){h.start=0,h.end=-1;return}if(!o){h.start=Math.max(0,v*e),h.end=Math.min(l-1,(y+1)*e-1);return}let z=g(v,y,l);h.start=z.start,h.end=z.end},g=(v,y,l)=>{if(l<=0)return{start:0,end:-1};if(!o){let O=Math.max(0,v*e),p=Math.min(l-1,(y+1)*e-1);return{start:O,end:p}}let h=-1,z=-1,u=0,A=0;for(let O=0;O<l;O++){if(o(O)){if(A)u++,A=0;if(u>=v&&u<=y){if(h<0)h=O;z=O}u++,A=0}else{if(u>=v&&u<=y){if(h<0)h=O;z=O}if(A++,A>=e)u++,A=0}if(u>y&&!A)break}if(h<0)return{start:0,end:-1};return{start:h,end:z}},H=(v,y,l)=>{if(y<0||y>=e)return-1;let h=v*e+y;if(h<0||h>=l)return-1;return h},k=(v)=>{let y=(e-1)*r;return Math.max(0,(v-y)/e)};return{get columns(){return e},get gap(){return r},update:(v)=>{if(v.columns!==void 0)e=Math.max(1,Math.floor(v.columns));if(v.gap!==void 0)r=v.gap;if(v.isHeaderFn!==void 0)o=v.isHeaderFn},getTotalRows:n,getPosition:s,getRow:a,getCol:E,getItemRange:g,fillItemRange:S,getItemIndex:H,getColumnWidth:k,getColumnOffset:(v,y)=>{let l=k(y);return v*(l+r)}}};var Ge={selected:!1,focused:!1};function ht(t){if(!t.columns||t.columns<1)throw Error("[vlist] grid: columns must be >= 1");let e,r,o,i,n=null,s,a,E,S,g,H,k=null,b=0,D=0,v=0,y=0,l=new Map,h=0,z=0,u=0,A=0,O=null,p=!1,U="",V="",F="",q={start:0,end:-1},j=-1,J=-1,me=-1,P=!0,_=(I)=>r.rebuild(I);function M(){let I=(z-1)*u;A=Math.max(0,(h-I)/z)}function R(){if(p)return;p=!0,O=k?.()??null}function N(){return e.getTotalRows(o.totalItems)}function c(I){let B=I/z|0,Q=(I-B*z)*(A+u)+b,f=r.getOffset(B)-o.baseOffset+v;if(S)return`translate(${Math.round(f)}px, ${Math.round(Q)}px)`;return`translate(${Math.round(Q)}px, ${Math.round(f)}px)`}function d(I,B){let ee=r.getSize(B)-u;if(S)I.style.width=`${ee}px`,I.style.height=`${A}px`;else I.style.width=`${A}px`,I.style.height=`${ee}px`}function W(I,B,ee){if(O)O(ee,Ge);else Ge.selected=!1,Ge.focused=!1;let Q=a(B,ee,Ge);if(typeof Q==="string")I.innerHTML=Q;else I.innerHTML="",I.appendChild(Q)}function G(){if(o.destroyed)return;let I=o.scrollPosition,B=o.containerSize;if(!P&&I===j&&B===J)return;j=I,J=B,P=!1;let ee=N();if(B<=0||ee===0)return;R();let Q=r.indexAtOffset(I),f=r.indexAtOffset(I+B);if(f<ee-1)f++;Q=Math.max(0,Q),f=Math.min(ee-1,Math.max(0,f));let C=Math.max(0,Q-H),L=Math.min(ee-1,f+H);if(C===o.prevRangeStart&&L===o.prevRangeEnd&&!o.renderPending)return;e.fillItemRange(C,L,o.totalItems,q);let{start:x,end:Y}=q;for(let[ue,te]of l)if(ue<x||ue>Y)te.el.remove(),i.release(te.el),l.delete(ue);for(let ue=x;ue<=Y;ue++){let te=E(ue);if(!te)continue;let ce=ue/z|0,ge=ue-ce*z,be=l.get(ue);if(be===void 0){let X=i.acquire();X.className=U,X.setAttribute("data-index",String(ue)),X.setAttribute("data-id",String(te.id)),W(X,te,ue),be={el:X,lastItem:te},l.set(ue,be),s.appendChild(X)}else if(be.lastItem!==te)be.el.setAttribute("data-id",String(te.id)),be.lastItem=te,W(be.el,te,ue);else if(O)O(ue,Ge);if(O)if(be.el.classList.toggle(V,Ge.selected),be.el.classList.toggle(F,Ge.focused),Ge.selected)be.el.setAttribute("aria-selected","true");else be.el.removeAttribute("aria-selected");d(be.el,ce);let re=ge*(A+u)+b,m=r.getOffset(ce)-o.baseOffset+v;be.el.style.transform=S?`translate(${Math.round(m)}px, ${Math.round(re)}px)`:`translate(${Math.round(re)}px, ${Math.round(m)}px)`}let oe=r.getTotalSize();if(oe!==me)me=oe,n?.updateContentSize(oe);o.prevRangeStart=C,o.prevRangeEnd=L,o.renderPending=!1;let xe=Y-x+1;o.visibleCount=Math.min(xe,o.capacity),o.startIndex=x;for(let ue=0;ue<o.visibleCount;ue++){let te=x+ue,ce=te/z|0;o.visibleIndices[ue]=te,o.visibleOffsets[ue]=r.getOffset(ce),o.visibleSizes[ue]=r.getSize(ce)}}function w(){if(o.destroyed)return;_(N()),me=-1,o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,P=!0,G()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(I){z=Math.max(1,Math.floor(t.columns)),u=t.gap??0,e=cn({columns:t.columns,gap:u}),r=I.sizeCache,o=I.getState(),i=I.pool,n=I,s=I.dom.content,a=I.template,S=I.config.axis.primary==="x",g=I.config.classPrefix,H=I.config.overscan,E=I.getItem.bind(I),k=()=>I.getItemStateFn(),U=`${g}-item ${g}-grid-item`,V=`${g}-item--selected`,F=`${g}-item--focused`,b=I.config.crossPadStart,D=I.config.crossAxisPadding,v=I.config.startPadding,y=I.config.mainAxisPadding,h=o.crossSize-D,M();let B=I.rawSizeSpec,ee;if(typeof B==="function"){let x={columnWidth:e.getColumnWidth(h),columns:t.columns,gap:u};ee=B(0,x),I.setSizeConfig((Y)=>{x.columnWidth=e.getColumnWidth(h);let oe=Y*t.columns;return B(oe,x)+u})}else if(ee=B,u>0)I.setSizeConfig(ee+u);let Q=null,f=r.rebuild;function C(){if(r.rebuild===Q)return;f=r.rebuild,_=(L)=>f(L),Q=(L)=>{_(Math.ceil(L/z))},r.rebuild=Q}if(I.registerMethod("_setSizeCacheBase",(L)=>{f=L,_=(x)=>f(x)}),C(),_(N()),u>0){let L=r.getTotalSize;r.getTotalSize=()=>{let x=L();return x>0?x-u:0}}I.setVirtualTotalFn(()=>N()),I.dom.root.classList.add(`${g}--grid`),I.setRenderFn(G,w),I.registerMethod("getGridLayout",()=>e),I.registerMethod("_getRowGap",()=>e.gap),I.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)z=Math.max(1,Math.floor(L.columns));if(L.gap!==void 0)u=L.gap;if(L.gap!==void 0||L.columns!==void 0){let x=e.gap;if(typeof B==="function"){let Y={columnWidth:e.getColumnWidth(h),columns:e.columns,gap:x};I.setSizeConfig((oe)=>{Y.columnWidth=e.getColumnWidth(h);let xe=oe*e.columns;return B(xe,Y)+x})}else I.setSizeConfig(ee+x);C(),_(N())}if(L.columns!==void 0)I.setNavConfig({ud:e.columns});h=o.crossSize-D,M(),w()}),I.registerMethod("scrollToIndex",(L,x="start")=>{let Y=e.getRow(L),oe=N();if(oe===0)return;let xe=Math.max(0,Math.min(Y,oe-1)),ue=r.getOffset(xe)+v,te=r.getSize(xe),ce=o.containerSize,ge=r.getTotalSize()+y,be=Math.max(0,ge-ce),re=typeof x==="string"?x:x.align??"start",m=typeof x==="object"?x.behavior:void 0,X=typeof x==="object"?x.duration:void 0,ne;switch(re){case"center":ne=ue-(ce-te)/2;break;case"end":ne=ue-ce+te;break;default:ne=ue}if(ne=Math.max(0,Math.min(ne,be)),m==="smooth"&&X&&X>0)I.smoothScrollTo(ne,X);else I.scrollTo(ne)}),I.setNavConfig({total:()=>o.totalItems,ud:t.columns,lr:1,scrollIndex:(L)=>e.getRow(L)}),I.registerDestroyHandler(()=>{for(let[,L]of l)L.el.remove();l.clear(),I.dom.root.classList.remove(`${g}--grid`)})},hooks:{onResize(I,B){let ee=o.crossSize-D;if(Math.abs(ee-h)<1)return;h=ee,M();for(let[Q,f]of l){let C=Q/z|0;d(f.el,C),f.el.style.transform=c(Q)}}},destroy(){l.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,a=[],E=()=>{let l=(e-1)*r;s=Math.max(0,(o-l)/e),a=Array(e);let h=s+r;for(let z=0;z<e;z++)a[z]=i+z*h};E();let S=[],g=0,H=[],k=(l,h)=>{if(l<=0)return g=0,S=[],[];let z=Array(e).fill(n),u=Array(e);for(let p=0;p<e;p++)u[p]=[];let A=Array(l);for(let p=0;p<l;p++){let U=0,V=z[0];for(let j=1;j<e;j++){let J=z[j];if(J<V)V=J,U=j}let F=h(p),q=z[U];A[p]={index:p,x:a[U],y:q,lane:U,size:F,crossSize:s},u[U].push(p),z[U]=q+F+r}S=u;let O=0;for(let p=0;p<e;p++){let U=z[p],V=U>0?U-r:0;if(V>O)O=V}return g=O,A},b=(l)=>{if(l.length===0)return g;if(g)return g;let h=Array(e).fill(0);for(let u of l){let A=u.y+u.size,O=h[u.lane];if(A>O)h[u.lane]=A}let z=0;for(let u=0;u<e;u++)if(h[u]>z)z=h[u];return z},D=(l,h,z)=>{if(l.length===0||z<=h)return H.length=0,H;if(S.length===0||S.length!==e)return v(l,h,z);H.length=0;for(let u=0;u<e;u++){let A=S[u],O=A.length;if(!O)continue;let p=0,U=O;while(p<U){let V=p+U>>>1,F=l[A[V]];if(F.y+F.size<=h)p=V+1;else U=V}for(let V=p;V<O;V++){let F=l[A[V]];if(F.y>=z)break;H.push(F)}}return H},v=(l,h,z)=>{H.length=0;for(let u of l)if(u.y+u.size>h&&u.y<z)H.push(u);return H};return{get columns(){return e},get gap(){return r},get containerSize(){return o},update:(l)=>{let h=!1;if(l.columns!==void 0){let z=Math.max(1,Math.floor(l.columns));if(z!==e)e=z,h=!0}if(l.gap!==void 0&&l.gap!==r)r=l.gap,h=!0;if(l.containerSize!==void 0&&l.containerSize!==o)o=l.containerSize,h=!0;if(l.crossOffset!==void 0&&l.crossOffset!==i)i=l.crossOffset,h=!0;if(l.mainOffset!==void 0&&l.mainOffset!==n)n=l.mainOffset,h=!0;if(h)E()},calculateLayout:k,getTotalSize:b,getVisibleItems:D}};var fn=(t,e,r)=>{let o=Array.from(e).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=t.firstChild;for(let s=0;s<i.length;s++){let a=i[s];if(a===n)n=n.nextSibling;else t.insertBefore(a,n)}};var Wn=(t=200)=>{let e=[];return{acquire:()=>{let n=e.pop();if(n)return n;let s=document.createElement("div");return s.setAttribute("role","option"),s},release:(n)=>{if(n.remove(),e.length<t)n.className="",n.textContent="",n.removeAttribute("style"),n.removeAttribute("data-index"),n.removeAttribute("data-id"),n.removeAttribute("data-lane"),e.push(n)},clear:()=>{e.length=0}}},Un=1,gn=(t,e,r,o=!1,i,n,s,a,E=()=>0)=>{let S=Wn(),g=new Map,H=new Set,k=0,b="",D=-1,v={selected:!1,focused:!1},y=(P,_)=>(v.selected=P,v.focused=_,v),l=`${r}-item ${r}-masonry-item`,h=`${r}-group-header`,z=`${r}-item--selected`,u=`${r}-item--focused`,A=(P,_)=>{if(typeof _==="string")P.innerHTML=_;else P.replaceChildren(_);Ne(P)},O=(P,_,M)=>{P.classList.toggle(z,_),P.classList.toggle(u,M)},p=(P,_)=>{let M=Math.round(_.y-E());if(o)P.style.transform=`translate(${M}px, ${Math.round(_.x)}px)`;else P.style.transform=`translate(${Math.round(_.x)}px, ${M}px)`},U=(P,_)=>{if(o)P.style.width=`${_.size}px`,P.style.height=`${_.crossSize}px`;else P.style.width=`${_.crossSize}px`,P.style.height=`${_.size}px`},V=(P,_,M,R,N)=>{let c=S.acquire(),d=_.__groupHeader,W=y(R,N);if(c.className=d?h:l,c.dataset.index=String(P),c.dataset.id=String(_.id),c.dataset.lane=String(M.lane),d)c.setAttribute("role","presentation"),c.removeAttribute("aria-selected"),c.removeAttribute("aria-setsize"),c.removeAttribute("aria-posinset"),c.removeAttribute("id");else if(a===!0){if(c.setAttribute("role","option"),c.ariaSelected=String(R),n)c.id=`${n}-item-${P}`;if(i){let w=i();if(w!==D)D=w,b=String(w);c.setAttribute("aria-setsize",b);let I=s?s(P):P+1;c.setAttribute("aria-posinset",String(I))}}else if(c.setAttribute("role","listitem"),c.removeAttribute("aria-selected"),i){let w=i();if(w!==D)D=w,b=String(w);c.setAttribute("aria-setsize",b);let I=s?s(P):P+1;c.setAttribute("aria-posinset",String(I))}U(c,M);let G=e(_,P,W);return A(c,G),O(c,R,N),p(c,M),{element:c,lastItem:_,lastSelected:R,lastFocused:N,lastY:M.y-E(),lastX:M.x,lastSize:M.size,lastCrossSize:M.crossSize,lastSeenFrame:k}},F=(P,_,M,R)=>{k++,H.clear();for(let c=0;c<_.length;c++)H.add(_[c].index);let N=null;for(let c=0;c<_.length;c++){let d=_[c],W=d.index,G=P(W);if(!G)continue;let w=M.has(G.id),I=W===R,B=g.get(W);if(B){let ee=B.lastItem!==G,Q=B.lastSelected!==w,f=B.lastFocused!==I,C=B.lastY!==d.y-E()||B.lastX!==d.x,L=B.lastSize!==d.size||B.lastCrossSize!==d.crossSize;if(ee){let x=y(w,I),Y=e(G,W,x);if(A(B.element,Y),B.element.dataset.id=String(G.id),B.lastItem=G,!G.__groupHeader){let xe=s?s(W):W+1;B.element.setAttribute("aria-posinset",String(xe))}}if(ee||Q||f)O(B.element,w,I),B.element.ariaSelected=String(w),B.lastSelected=w,B.lastFocused=I;if(L)U(B.element,d),B.lastSize=d.size,B.lastCrossSize=d.crossSize;if(C)p(B.element,d),B.lastY=d.y-E(),B.lastX=d.x}else{let ee=V(W,G,d,w,I);if(!N)N=document.createDocumentFragment();N.appendChild(ee.element),g.set(W,ee)}}if(N)t.appendChild(N);for(let[c,d]of g)if(H.has(c))d.lastSeenFrame=k;else if(k-d.lastSeenFrame>Un)S.release(d.element),g.delete(c)},q=()=>{for(let P of g.values())S.release(P.element);g.clear(),t.innerHTML=""};return{render:F,getElement:(P)=>g.get(P)?.element,updateItemClasses:(P,_,M)=>{let R=g.get(P);if(!R)return;let N=R.lastSelected!==_,c=R.lastFocused!==M;if(N||c)O(R.element,_,M),R.lastSelected=_,R.lastFocused=M},sortDOM:()=>{fn(t,g.keys(),(P)=>g.get(P)?.element)},clear:q,destroy:()=>{q(),S.clear()}}};var Yn=100,Kn=new Set;function vt(t){if(!t.columns||t.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let e,r=null,o,i=null,n,s,a,E=[],S=-1,g=-1,H=!0,k=-1,b=-1,D=0,v=0,y=0,l=0,h={columnWidth:0,columns:0,gap:0,containerWidth:0},z=[],u=(f)=>z[f],A=null,O=null,p=!1;function U(){if(p||!i)return;p=!0,A=i.getMethod("_getSelectedIds")??null,O=i.getMethod("_getFocusedIndex")??null}let V=[],F=new Int32Array(0),q=[],j=null,J=null,me=null,P=null,_=!1,M=!0;function R(){if(_||!i)return;if(j=i.getMethod("_getItemLane")??null,J=i.getMethod("_getItemY")??null,me=i.getMethod("_getItemH")??null,P=i.getMethod("_isGroupHeader")??null,j||P)_=!0}function N(){R();let f=e.columns,C=!!j;if(C){let L=o.totalItems;V=Array(f);for(let x=0;x<f;x++)V[x]=[];if(F.length<L)F=new Int32Array(L);for(let x=0;x<L;x++){if(P?.(x))continue;let Y=j(x);if(Y<0||Y>=f)continue;F[x]=V[Y].length,V[Y].push(x)}}else{let L=E.length;V=Array(f);for(let x=0;x<f;x++)V[x]=[];if(F.length<L)F=new Int32Array(L);for(let x=0;x<L;x++){let Y=E[x];F[x]=V[Y.lane].length,V[Y.lane].push(x)}}q=Array(f);for(let L=0;L<f;L++){let x=V[L],Y=new Float64Array(x.length);for(let oe=0;oe<x.length;oe++){let xe=x[oe];if(C&&J&&me){let ue=J(xe),te=me(xe);Y[oe]=ue>=0?ue+(te>0?te*0.5:0):0}else{let ue=E[xe];Y[oe]=ue.y+ue.size*0.5}}q[L]=Y}}function c(f,C){let L=f.length;if(!L)return-1;let x=0,Y=L-1;while(x<Y){let oe=x+Y>>1;if(f[oe]<C)x=oe+1;else Y=oe}if(x>0&&Math.abs(f[x-1]-C)<=Math.abs(f[x]-C))return x-1;return x}function d(f,C,L){if(M)N(),M=!1;let x=!!j,Y,oe;if(x){if(P?.(f))return f;if(Y=j(f),Y<0)return f;oe=F[f]}else{let ce=E[f];if(!ce)return f;Y=ce.lane,oe=F[f]}let xe=e.columns,ue=V[Y];switch(n?C==="ArrowDown"?"ArrowRight":C==="ArrowUp"?"ArrowLeft":C==="ArrowRight"?"ArrowDown":C==="ArrowLeft"?"ArrowUp":C:C){case"ArrowDown":if(oe+1<ue.length)return ue[oe+1];return f;case"ArrowUp":if(oe>0)return ue[oe-1];return f;case"ArrowRight":{if(Y>=xe-1)return f;let ce=Y+1,ge=V[ce];if(!ge.length)return f;let be=c(q[ce],q[Y]?.[oe]??0);return be>=0?ge[be]:f}case"ArrowLeft":{if(Y<=0)return f;let ce=Y-1,ge=V[ce];if(!ge.length)return f;let be=c(q[ce],q[Y]?.[oe]??0);return be>=0?ge[be]:f}case"Home":return 0;case"End":{let ce=V[xe-1];return ce.length>0?ce[ce.length-1]:f}case"PageDown":{let ce=o.containerSize,ge=x?null:E[f],be=ge&&ge.size>0?ge.size:150,re=Math.max(1,Math.floor(ce/be)),m=Math.min(oe+re,ue.length-1);return ue[m]}case"PageUp":{let ce=o.containerSize,ge=x?null:E[f],be=ge&&ge.size>0?ge.size:150,re=Math.max(1,Math.floor(ce/be)),m=Math.max(0,oe-re);return ue[m]}}return f}let W=null;function G(){if(t.size)return(f)=>t.size(f,h);if(W!==null&&typeof W==="function")return(f)=>W(f,h);return(f)=>i.sizeCache.getSize(f)}function w(){let f=e.columns,C=e.gap;h.containerWidth=e.containerSize,h.columns=f,h.gap=C,h.columnWidth=Math.max(0,(e.containerSize-(f-1)*C)/f)}function I(){if(!i)return;w();let f=o.totalItems;E=e.calculateLayout(f,G()),k=f,M=!0,B()}function B(){if(!i)return;let f=e.getTotalSize(E)+l;if(f===b)return;b=f,i.updateContentSize(f)}function ee(){if(o.destroyed||!i||!r)return;if(o.totalItems!==k)I();if(H)b=-1,B();U();let f=o.scrollPosition,C=o.containerSize;if(!H&&f===S&&C===g)return;if(S=f,g=C,H=!1,C<=0||E.length===0)return;let L=Math.max(0,f-a),x=f+C+a,Y=e.getVisibleItems(E,L,x),oe=A?.()??Kn,xe=O?.()??-1;z=i.getItems(),r.render(u,Y,oe,xe);let ue=Y.length,te=ue>0?Y[0].index:0,ce=ue>0?Y[ue-1].index:0;o.prevRangeStart=te,o.prevRangeEnd=ce,o.renderPending=!1;let ge=Math.min(ue,o.capacity);o.visibleCount=ge,o.startIndex=te;for(let be=0;be<ge;be++){let re=Y[be];o.visibleIndices[be]=re.index,o.visibleOffsets[be]=re.y,o.visibleSizes[be]=re.size}}function Q(){if(o.destroyed)return;b=-1,I(),o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,H=!0,ee()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(f){if(i=f,o=f.getState(),W=f.rawSizeSpec,n=f.config.axis.primary==="x",s=f.config.classPrefix,a=f.config.overscan*Yn,f.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");D=f.config.crossAxisPadding,v=f.config.crossPadStart,y=f.config.startPadding,l=f.config.endPadding;let C=o.crossSize-D;e=mn({columns:t.columns,gap:t.gap??0,containerSize:C,crossOffset:v,mainOffset:y}),r=gn(f.dom.content,f.template,s,n,()=>o.totalItems,void 0,void 0,void 0,()=>o.baseOffset),f.dom.root.classList.add(`${s}--masonry`),f.setRenderFn(ee,Q),I(),f.registerMethod("getMasonryLayout",()=>e),f.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 x={};if(L.columns!==void 0)x.columns=L.columns;if(L.gap!==void 0)x.gap=L.gap;e.update(x),r?.clear(),Q()}),f.registerMethod("scrollToIndex",(L,x="start")=>{let Y=E[L];if(!Y)return;let oe=typeof x==="string"?x:x.align??"start",xe=typeof x==="object"?x.behavior:void 0,ue=typeof x==="object"?x.duration:void 0,te=o.containerSize,ce=e.getTotalSize(E)+l,ge=Math.max(0,ce-te),be=Y.y;if(oe==="center")be=Y.y-te/2+Y.size/2;else if(oe==="end"){if(be=Y.y-te+Y.size,L>=o.totalItems-1&&Y.y+Y.size>ge)be=ge}if(be=Math.max(0,Math.min(be,ge)),xe==="smooth"&&ue&&ue>0)f.smoothScrollTo(be,ue);else f.scrollTo(be)}),f.registerMethod("_scrollItemIntoView",(L)=>{let x=E[L];if(!x)return;let Y=o.scrollPosition,oe=o.containerSize,xe=e.getTotalSize(E)+l,ue=Math.max(0,xe-oe),te=x.y,ce=te+x.size;if(te-y<Y)f.scrollTo(Math.max(0,te-y));else if(ce+l>Y+oe){let ge=V[e.columns-1];if(ge&&ge.length>0&&L===ge[ge.length-1]&&te>=ue)f.scrollTo(ue);else f.scrollTo(Math.min(ce+l-oe,ue))}}),f.setNavConfig({total:()=>o.totalItems,navigate:d}),f.registerDestroyHandler(()=>{r?.destroy(),r=null,f.dom.root.classList.remove(`${s}--masonry`)})},hooks:{onResize(f,C){if(!e||!i)return;let L=o.crossSize-D;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 St=(t,e)=>{let r=0,o=t.length-1;while(r<o){let i=r+o+1>>>1;if(t[i].headerLayoutIndex<=e)r=i;else o=i-1}return r},pn=(t,e)=>{let r=0,o=t.length-1;while(r<o){let i=r+o+1>>>1;if(t[i].firstDataIndex<=e)r=i;else o=i-1}return r},bn=(t,e,r)=>{if(t===0)return[];let o=[],i=null,n=0,s=0;for(let a=0;a<t;a++){let E=r?.(a);if(!E)continue;let S=e(a,E);if(i===null)i=S,n=0;else if(S!==i){let g=a-n;o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:g}),s=s+1+g,i=S,n=a}}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 D=St(o,b),v=o[D];if(b===v.headerLayoutIndex)return{type:"header",group:v};let y=b-v.headerLayoutIndex-1;return{type:"item",dataIndex:v.firstDataIndex+y,group:v}},layoutToDataIndex:(b)=>{if(o.length===0)return b;let D=St(o,b),v=o[D];if(b===v.headerLayoutIndex)return-1;let y=b-v.headerLayoutIndex-1;return v.firstDataIndex+y},dataToLayoutIndex:(b)=>{if(o.length===0)return b;let D=pn(o,b),v=o[D],y=b-v.firstDataIndex;return v.headerLayoutIndex+1+y},getGroupAtLayoutIndex:(b)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=St(o,b);return o[D]},getGroupAtDataIndex:(b)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=pn(o,b);return o[D]},getHeaderHeight:typeof n==="number"?(b)=>n:(b)=>{let D=o[b];if(!D)return 0;return n(D.key,b)},rebuild:(b,D)=>{o=bn(b,e.getGroupForIndex,D??r),i=b+o.length}}};var yt=(t,e,r,o,i=0)=>{let n=r?"width":"height",s=document.createElement("div");return s.className=`${e}-sticky-header`,s.setAttribute("role","presentation"),s.setAttribute("aria-hidden","true"),s.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(r?`position:absolute;top:0;bottom:0;left:${i||0}px`:`position:relative;top:${i||0}px`),s.style[n]=`${o}px`,t.insertBefore(s,t.firstChild),s},vn=(t,e,r,o,i,n=!1,s=0,a,E)=>{let S=n?"width":"height",g=n?"height":"width",H=n?"X":"Y",k=(f,C)=>{f.style[S]=`${C}px`},b=a??yt(t,i,n,0,s),D=()=>{let f=document.createElement("div");return f.className="sticky-group",f.style.position="absolute",f.style.willChange="transform",f.style[g]="100%",f},v=D(),y=D();b.append(v,y);let l=v,h=y,z=e.groups,u=[],A=[],O=[],p=0,U=()=>{z=e.groups,p=z.length,u=Array(p),A=Array(p),O=Array(p);for(let f=0;f<p;f++)u[f]=E?E(z[f].headerLayoutIndex):r.getOffset(z[f].headerLayoutIndex),A[f]=e.getHeaderHeight(f),O[f]=A[f]};U();let V=-1,F=0,q=0,j=-1,J=!1,me=0,P=!1,_=(f,C)=>{o(f,C);let L=A[C];return k(f,L),L},M=(f)=>{f.replaceChildren(),f.style.transform=""},R=(f)=>{if(f===V)return;if(V=f,F=0,q=0,f<0||f>=p){M(l);return}F=_(l,f),q=O[f],k(b,F),l.style.transform=""},N=(f)=>{if(f===me)return;me=f;let C=Math.round(f);l.style.transform=`translate${H}(${C}px)`,h.style.transform=`translate${H}(${C+F}px)`},c=()=>{me=0,l.style.transform="",h.style.transform=""},d=()=>{if(!P)return;let f=l;l=h,h=f,V=j,F=V>=0?A[V]:0,q=V>=0?O[V]:0,k(b,F),M(h),j=-1,P=!1,c()},W=()=>{if(!P)return;M(h),j=-1,P=!1,c()},G=!!a,w=()=>{if(J)return;if(J=!0,G)b.style.visibility="";else b.style.display=""},I=()=>{if(!J)return;if(J=!1,G)b.style.visibility="hidden";else b.style.display="none";M(l),V=-1,F=0,q=0,W()},B=(f)=>{if(p===0){if(P)W();if(!J)w();R(-1);return}if(f<u[0]){I();return}let C=0,L=p-1;while(C<L){let Y=C+L+1>>>1;if(u[Y]+O[Y]<=f)C=Y;else L=Y-1}if(!J)w();R(C);let x=C+1;if(x<p){let Y=u[x]-f;if(Y<=0&&Y>-q){if(j!==x||!P)j=x,_(h,x),P=!0;let oe=q>0?Y/q*F:Y;N(oe)}else if(Y<=-q){if(P)d()}else if(P)W()}else if(P)W()},ee=()=>{U();let f=V;if(V=-1,F=0,q=0,f>=0)R(f)},Q=()=>{b.remove(),V=-1,F=0,q=0,j=-1,J=!1,P=!1};if(!a)b.style.display="none";return{update:B,refresh:ee,show:w,hide:I,destroy:Q}};var $e={selected:!1,focused:!1},Sn=typeof process<"u"&&process.env?.NODE_ENV!=="production";function It(t){if(!t.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let e=t.header?.height??t.header?.width??t.headerHeight;if(e==null||typeof e==="number"&&e<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let r=t.header?.template??t.headerTemplate;if(!r)throw Error("[vlist] groups: header.template is required");let o=r,i,n=null,s,a,E,S,g=null,H,k,b,D=null,v,y,l,h=null,z,u,A=null,O=null,p=0,U=0,V=0,F=0,q=0,j=!1,J=null,me=new Map,P=new Set,_=new Map,M=-1,R=-1,N=0,c=!0,d=-1,W=0,G=null,w;function I(){return i.totalEntries}function B(){let m=a.totalItems;if(m===d)return;if(Sn)console.log(`[groups] syncLayout: ${d} → ${m}`);let X=d>0;d=m,i.rebuild(m,D??b),w(i.totalEntries),L();let ne=Q?x():s.getTotalSize();if(g?.(ne),n)n.refresh(),n.update(a.scrollPosition);if(X)xe();let ae=A?.("_scrollbar:getInstance");if(ae)ae()?.updateBounds(ne,a.containerSize)}let ee=0,Q=null,f=null,C=null;function L(){if(p<=0){Q=null,f=null;return}ee=((a.crossSize||S.clientWidth)-F-(p-1)*U)/p,Q=new Map;let ne=i.totalEntries,ae=Array(ne),Te=0;if(j){let ye=J??((Le)=>s.getSize(Le)),ve=new Float64Array(p),fe=[],Se=0,Ce=-1;for(let Le=0;Le<ne;Le++){let he=i.getEntry(Le);if(he.type==="header"){let ie=0;for(let Z=0;Z<p;Z++)if(ve[Z]>ie)ie=ve[Z];if(Ce>=0)fe[Ce]=Se+ie;Se+=ie;let se=s.getSize(Le);Q.set(Le,{col:-1,rowY:Se}),ae[Te++]=[Le,Se,Se+se],Se+=se,ve.fill(0),Ce=he.group.groupIndex}else{let ie=0,se=ve[0];for(let K=1;K<p;K++)if(ve[K]<se)se=ve[K],ie=K;let Z=ye(he.dataIndex),Ie=Se+ve[ie];Q.set(Le,{col:ie,rowY:Ie,h:Z}),ae[Te++]=[Le,Ie,Ie+Z],ve[ie]=ve[ie]+Z+U}}if(Ce>=0){let Le=0;for(let he=0;he<p;he++)if(ve[he]>Le)Le=ve[he];fe[Ce]=Se+Le}C=fe}else{C=null;let ye=0,ve=0,fe=0;for(let Se=0;Se<ne;Se++)if(i.getEntry(Se).type==="header"){if(ve>0&&fe>0)ye+=fe;let Le=s.getSize(Se);Q.set(Se,{col:-1,rowY:ye}),ae[Te++]=[Se,ye,ye+Le],ye+=Le,ve=0,fe=0}else{let Le=ve%p,he=s.getSize(Se);if(Le===0){if(ve>0&&fe>0)ye+=fe+U;fe=he}else if(he>fe)fe=he;Q.set(Se,{col:Le,rowY:ye}),ae[Te++]=[Se,ye,ye+he],ve++}}ae.length=Te,f=ae}function x(){if(!Q||Q.size===0)return s.getTotalSize();let m=i.totalEntries;if(j)return C?.[C.length-1]??0;let X=0;for(let ne=m-1;ne>=0;ne--){let ae=Q.get(ne);if(ae){X=ae.rowY+(ae.h??s.getSize(ne));break}if(i.getEntry(ne).type==="header"){X=s.getOffset(ne)+s.getSize(ne);break}}return X}function Y(m){let X=a.baseOffset;if(Q){let ae=Q.get(m);if(ae){let Te=ae.col<0?0:V+ae.col*(ee+U),ye=ae.rowY-X;if(v)return`translate(${Math.round(ye)}px, ${Math.round(Te)}px)`;return`translate(${Math.round(Te)}px, ${Math.round(ye)}px)`}}let ne=s.getOffset(m)-X;if(v)return`translate(${Math.round(ne)}px, 0)`;return`translate(0, ${Math.round(ne)}px)`}function oe(m,X){let ne=Q?.get(X);if(ne){let Te=ne.h??s.getSize(X);if(ne.col<0)if(v)m.style.width=`${Te}px`,m.style.height="";else m.style.height=`${Te}px`,m.style.width="100%";else if(v)m.style.width=`${Te}px`,m.style.height=`${ee}px`;else m.style.height=`${Te}px`,m.style.width=`${ee}px`;return}let ae=s.getSize(X);if(v)m.style.width=`${ae}px`;else m.style.height=`${ae}px`}function xe(){me.forEach((m)=>{m.remove();let X=m.getAttribute("data-id");if(X)_.set(X,m);else E.release(m)}),me.clear(),P.clear()}function ue(){if(_.size>0)_.forEach((m)=>E.release(m)),_.clear()}function te(m,X,ne,ae){if(O===null)O=!!A?.("_getSelectedIds");if(X.type==="header"){let Ce=`__group_header_${X.group.groupIndex}`;if(m.getAttribute("data-id")===Ce)return!0;if(m.className=u,m.setAttribute("role","presentation"),m.removeAttribute("aria-selected"),m.setAttribute("data-id",Ce),v&&n&&X.group.groupIndex===0)m.style.display="none";else{m.style.display="";let Le=o(X.group.key,X.group.groupIndex);if(typeof Le==="string")m.innerHTML=Le;else m.innerHTML="",m.appendChild(Le)}return!0}let Te=X.dataIndex,ye=b(Te);if(!ye)return m.innerHTML="",!1;let ve=ye._isPlaceholder===!0,fe=String(ye.id);if(!ve&&m.getAttribute("data-id")===fe){if(O)m.id=`${y}-item-${ae}`,m.setAttribute("aria-posinset",String(Te+1)),m.setAttribute("aria-setsize",String(a.totalItems));return!0}if(m.className=z,m.setAttribute("role",O?"option":"listitem"),m.setAttribute("data-id",fe),O)m.id=`${y}-item-${ae}`,m.setAttribute("aria-posinset",String(Te+1)),m.setAttribute("aria-setsize",String(a.totalItems));if(ve)m.classList.add(`${y}-item--placeholder`);if(ne)ne(ae,$e);else $e.selected=!1,$e.focused=!1;let Se=k(ye,Te,$e);if(typeof Se==="string")m.innerHTML=Se;else m.innerHTML="",m.appendChild(Se);return Ne(m),!ve}let ce=0;function ge(){if(p<=0)return;let m=a.crossSize;if(m===ce)return;ce=m,L();let X=x();if(g?.(X),n)n.refresh(),n.update(a.scrollPosition);c=!0}function be(){if(a.destroyed)return;B(),ge();let m=a.scrollPosition,X=a.containerSize,ne=a.baseOffset,ae=ne!==N;if(!c&&m===M&&X===R&&!ae)return;M=m,R=X;let Te=c;c=!1;let ye=I();if(X<=0||ye===0){if(me.size>0)me.forEach((K)=>{K.remove(),E.release(K)}),me.clear(),P.clear();return}let ve,fe;if(f){let K=f,de=K.length,Me=0,Ee=de-1;while(Me<Ee){let ze=Me+Ee>>>1;if(K[ze][2]<=m)Me=ze+1;else Ee=ze}let we=Me;Ee=de-1;while(Me<Ee){let ze=Me+Ee+1>>>1;if(K[ze][1]>=m+X)Ee=ze-1;else Me=ze}let Be=Me,He=K[we][0],Ue=K[Be][0];for(let ze=He-1;ze>=0;ze--)if(i.getEntry(ze).type==="header"){He=ze;break}let Ve=l*p;ve=Math.max(0,He-Ve),fe=Math.min(ye-1,Ue+Ve)}else{let K=s.indexAtOffset(m),de=s.indexAtOffset(m+X);if(de<ye-1)de++;K=Math.max(0,K),de=Math.min(ye-1,Math.max(0,de)),ve=Math.max(0,K-l),fe=Math.min(ye-1,de+l)}if(ve===a.prevRangeStart&&fe===a.prevRangeEnd&&!a.renderPending&&!ae)return;N=ne,me.forEach((K,de)=>{if(de<ve||de>fe)K.remove(),E.release(K),me.delete(de),P.delete(de)});let Se=h?.()??null,Ce=Se?`${y}-item--selected`:"",Le=Se?`${y}-item--focused`:"",he=null;for(let K=ve;K<=fe;K++){let de=me.get(K),Me=!1;if(de===void 0){let Ee=i.getEntry(K);Me=Ee.type==="header";let we;if(Ee.type==="header")we=`__group_header_${Ee.group.groupIndex}`;else{let He=b(Ee.dataIndex);if(He&&He._isPlaceholder!==!0)we=String(He.id)}if(we!==void 0){let He=_.get(we);if(He)_.delete(we),de=He}if(!de)de=E.acquire();if(de.setAttribute("data-index",String(K)),te(de,Ee,Se,K))P.delete(K);else P.add(K);if(oe(de,K),de.style.transform=Y(K),me.set(K,de),!he)he=document.createDocumentFragment();he.appendChild(de)}else if(Te&&P.has(K)){let Ee=i.getEntry(K);if(Ee.type==="item")if(te(de,Ee,Se,K))P.delete(K);else P.add(K)}else if(Me=de.classList.contains(u),Te)oe(de,K),de.style.transform=Y(K);else if(ae)de.style.transform=Y(K);if(!Me&&Se)if(Se(K,$e),de.classList.toggle(Ce,$e.selected),de.classList.toggle(Le,$e.focused),$e.selected)de.setAttribute("aria-selected","true");else de.removeAttribute("aria-selected")}if(he)S.appendChild(he);ue();let ie=Q?x():s.getTotalSize();g?.(ie),a.prevRangeStart=ve,a.prevRangeEnd=fe,a.renderPending=!1;let se=0,Z=0,Ie=!1;for(let K=ve;K<=fe&&se<a.capacity;K++){let de=i.getEntry(K);if(de.type==="item"){if(!Ie)Z=de.dataIndex,Ie=!0;a.visibleIndices[se]=de.dataIndex,a.visibleOffsets[se]=s.getOffset(K),a.visibleSizes[se]=s.getSize(K),se++}}a.visibleCount=se,a.startIndex=Z}function re(){if(a.destroyed)return;if(ge(),Sn)console.log(`[groups] forceRender, placeholders: ${P.size}, rendered: ${me.size}`);let m=G?.()??0;if(m!==W){W=m;let X=i.groups,ne=X.length;i.rebuild(d,D??b);let ae=i.groups,Te=ae.length!==ne;if(!Te){for(let ye=0;ye<ne;ye++)if(ae[ye].headerLayoutIndex!==X[ye].headerLayoutIndex){Te=!0;break}}if(Te){w(i.totalEntries),L();let ye=Q?x():s.getTotalSize();if(g?.(ye),n)n.refresh(),n.update(a.scrollPosition);let ve=1/0,fe=Math.min(ne,ae.length);for(let Ce=0;Ce<fe;Ce++)if(ae[Ce].headerLayoutIndex!==X[Ce].headerLayoutIndex){ve=Math.min(ae[Ce].headerLayoutIndex,X[Ce].headerLayoutIndex);break}if(ae.length>ne&&fe<ae.length)ve=Math.min(ve,ae[fe].headerLayoutIndex);else if(ne>ae.length&&fe<ne)ve=Math.min(ve,X[fe].headerLayoutIndex);if(ve<=a.prevRangeEnd)xe();let Se=A?.("_scrollbar:getInstance");if(Se)Se()?.updateBounds(ye,a.containerSize)}}a.prevRangeStart=-1,a.prevRangeEnd=-1,a.renderPending=!0,c=!0,be()}return{name:"groups",priority:10,setup(m){s=m.sizeCache,a=m.getState(),E=m.pool,S=m.dom.content,g=m.updateContentSize.bind(m),H=m.dom.root,k=m.template,v=m.config.axis.primary==="x",y=m.config.classPrefix,l=m.config.overscan,q=m.config.mainAxisPadding,b=m.getItem.bind(m),h=()=>m.getItemStateFn(),A=m.getMethod.bind(m),O=null,z=`${y}-item`,u=`${y}-group-header`;let X=A?.("getGridLayout"),ne=A?.("getMasonryLayout");if(X){let ie=X();p=ie.columns,U=ie.gap,V=m.config.crossPadStart,F=m.config.crossAxisPadding}else if(ne){let ie=ne();p=ie.columns,U=ie.gap,V=m.config.crossPadStart,F=m.config.crossAxisPadding,j=!0;let se=m.rawSizeSpec;if(typeof se==="function")J=(Z)=>se(Z,{columnWidth:ee})}queueMicrotask(()=>{let ie=A?.("_getLoadedItem");if(ie)D=ie;let se=A?.("_getLoadedCount");if(se)G=se});let ae=a.totalItems;i=hn(ae,t,D??b),d=ae;let Te=typeof e==="number"?(ie)=>e:(ie)=>{let se=i.groups[ie];if(!se)return 0;return e(se.key,ie)},ye=s.getSize,ve=(ie)=>{let se=i.getEntry(ie);if(se.type==="header"){if(t.sticky!==!1&&se.group.groupIndex===0)return 0;return Te(se.group.groupIndex)}return ye(se.dataIndex)};m.setSizeConfig(ve);let fe=!1,Se=-1;if(m.registerMethod("_setSizeCacheBase",(ie)=>{w=ie}),w=s.rebuild,s.rebuild=(ie)=>{if(fe){if(!G)G=A?.("_getLoadedCount")??null;let se=G?.()??0;if(ie!==d||se!==Se){if(d=ie,Se=se,!D)D=A?.("_getLoadedItem")??null;if(i.rebuild(ie,D??((Z)=>m.getItems()[Z])),a.totalItems=i.totalEntries,n)n.refresh(),n.update(a.scrollPosition)}}w(i.totalEntries)},s.rebuild(i.totalEntries),L(),m.setVirtualTotalFn(()=>i.totalEntries),H.classList.add(`${y}--grouped`),t.sticky!==!1){let ie=(K,de)=>{let Me=i.groups[de];if(!Me)return;let Ee=o(Me.key,de);if(typeof Ee==="string")K.innerHTML=Ee;else K.replaceChildren(Ee)},se=i.getHeaderHeight(0),Z=yt(H,y,v,se),Ie=p>0?(K)=>{let de=Q?.get(K);return de?de.rowY:s.getOffset(K)}:void 0;if(n=vn(H,i,s,ie,y,v,0,Z,Ie),n.update(a.scrollPosition),!v)m.dom.viewport.style.height=`calc(100% - ${se}px)`;else m.dom.viewport.style.width=`calc(100% - ${se}px)`,m.dom.viewport.style.marginLeft=`${se}px`}let Ce=!!A?.("_updateTableForGroups");if(fe=Ce,Ce)queueMicrotask(()=>{let ie=A?.("_getItem")??null,se=m.getItems.bind(m);m.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 ie?ie(K.dataIndex):se()[K.dataIndex]});let Z=A?.("_updateTableForGroups");if(Z)Z((Ie)=>!!Ie.__groupHeader,o)});else m.setRenderFn(be,re);m.registerMethod("getGroupLayout",()=>i),m.registerMethod("_dataToLayoutIndex",(ie)=>i.dataToLayoutIndex(ie)),m.registerMethod("_layoutToDataIndex",(ie)=>i.layoutToDataIndex(ie)),m.registerMethod("_getRenderedElement",(ie)=>me.get(ie)??null),m.registerMethod("_isGroupHeader",(ie)=>i.getEntry(ie).type==="header"),m.registerMethod("_getItemLane",(ie)=>{let se=Q?.get(ie);return se?se.col:-1}),m.registerMethod("_getItemY",(ie)=>{let se=Q?.get(ie);return se?se.rowY:-1}),m.registerMethod("_getItemH",(ie)=>Q?.get(ie)?.h??-1);let Le=m.config.startPadding,he=q-Le;m.registerMethod("_scrollItemIntoView",(ie)=>{if(ie<0)return;let se=Q?.get(ie),Z=se?se.rowY:s.getOffset(ie),Ie=se?.h??s.getSize(ie),K=a.containerSize,de=a.scrollPosition;if(Z<de+Le)m.scrollTo(Math.max(0,Z-Le));else if(Z+Ie+he>de+K)m.scrollTo(Z+Ie+he-K)}),m.registerMethod("scrollToIndex",(ie,se="start")=>{let Z=i.dataToLayoutIndex(ie),Ie=i.totalEntries;if(Ie===0)return;let K=Math.max(0,Math.min(Z,Ie-1)),de=a.containerSize,Me=Q?.get(K),Ee=Me?Me.rowY:s.getOffset(K),we=Me?Me.h??s.getSize(K):s.getSize(K),Be=Q?x()+q:s.getTotalSize(),He=Math.max(0,Be-de),Ue=typeof se==="string"?se:se.align??"start",Ve=typeof se==="object"?se.behavior:void 0,ze=typeof se==="object"?se.duration:void 0,Ke=Q?q:0,le=Ee+we;if(j&&C){let pe=i.getEntry(K).group.groupIndex,Pe=C[pe];if(Pe!==void 0)le=Pe}let T;switch(Ue){case"center":T=Ee-(de-we)/2;break;case"end":T=le-de+Ke;break;default:T=Ee}if(T=Math.max(0,Math.min(T,He)),Ve==="smooth"&&ze&&ze>0)m.smoothScrollTo(T,ze);else m.scrollTo(T)}),m.registerDestroyHandler(()=>{for(let[,ie]of me)ie.remove();if(me.clear(),P.clear(),n)n.destroy(),n=null;H.classList.remove(`${y}--grouped`)})},hooks:{onAfterScroll(m,X){if(n)n.update(m)},onResize(m,X){if(p<=0)return;w(i.totalEntries),ce=a.crossSize,L();let ne=x();if(g?.(ne),n)n.refresh(),n.update(a.scrollPosition);c=!0,be()}},destroy(){if(n)n.destroy(),n=null;me.clear(),P.clear(),_.clear()}}}var yn=(t,e,r)=>{if(String(r).startsWith(_e))return!1;let o=_e+e;if(t.has(o))return t.delete(o),t.add(r),!0;return!1},In=(t)=>({selected:new Set(t??[]),focusedIndex:-1,focusVisible:!1});function We(t,e,r,o){if(r===0)return;let i=o?-e:e,n=t.focusedIndex+i;if(n<0)n=0;if(n>=r)n=r-1;t.focusedIndex=n}function it(t){return Array.from(t)}function Tt(t,e,r,o){if(o<=0)return 0;let i=o-1;if(r<=1)return t<0?0:t>i?i:t;let n=(e%r+r)%r;if(t<0)return n;if(t>i){let s=Math.floor(i/r)*r;return Math.min(s+n,i)}return t}var Xn={preventScroll:!0};function st(t){let e=t?.mode??"single",r=t?.followFocus??!1,o=t?.focusOnClick??!1,i=t?.keyboard??!0,n,s,a,E,S,g,H,k,b=-1,D=new Map,v=null,y=null,l=null,h=null,z,u=!1;function A(d){if(u)return;u=!0,v=d.getMethod("_layoutToDataIndex")??null,y=d.getMethod("_dataToLayoutIndex")??null,l=d.getMethod("_isGroupHeader")??null,h=d.getMethod("_scrollItemIntoView")??null,p=d.getMethod("_getLoadedItem")??null;let W=d.getMethod("getGroupLayout");if(W){let G=W();z=()=>G.totalEntries}}let O=(d)=>v?v(d):d,p=null,U=(d)=>{if(p)return p(d);return s()[d]},V=(d)=>{let W=O(d);return W>=0?U(W):void 0},F=(d,W,G)=>{if(!l)return d;let w=d;while(w>=0&&w<G){if(!l(w))return w;w+=W}w=d-W;while(w>=0&&w<G){if(!l(w))return w;w-=W}return d};function q(d,W){if(e==="single")n.selected.clear(),D.clear();if(n.selected.add(d),W)D.set(d,W)}function j(d,W){if(n.selected.has(d))n.selected.delete(d),D.delete(d);else q(d,W)}function J(){n.selected.clear(),D.clear()}function me(d){n.selected.delete(d),D.delete(d)}function P(d,W){let G=Math.min(d,W),w=Math.max(d,W);for(let I=G;I<=w;I++){if(l?.(I))continue;let B=V(I);if(B)n.selected.add(B.id),D.set(B.id,B);else if(p){let ee=O(I);if(ee>=0)n.selected.add(_e+ee)}}}function _(){let d=H.totalItems;for(let W=0;W<d;W++){if(l?.(W))continue;let G=V(W);if(G)n.selected.add(G.id),D.set(G.id,G);else if(p){let w=O(W);if(w>=0)n.selected.add(_e+w)}}}function M(){if(n.selected.size===0)return[];if(D.size>=n.selected.size){let w=[];for(let I of n.selected){let B=D.get(I);if(B)w.push(B)}if(w.length===n.selected.size)return w}let d=[],W=new Set(n.selected),G=H.totalItems;for(let w=0;w<G&&W.size>0;w++){if(l?.(w))continue;let I=V(w);if(I&&W.has(I.id))d.push(I),D.set(I.id,I),W.delete(I.id)}return d}function R(){a(),E.emit("selection:change",{selected:it(n.selected),items:M()})}let N=null,c=-1;return{name:"selection",priority:50,setup(d){d.enableListboxRole(),n=In(t?.initial),s=d.getItems.bind(d),a=d.forceRender.bind(d),E=d.emitter,S=d.dom;let W=d.config;if(g=d.sizeCache,H=d.getState(),k=d.scrollTo.bind(d),z=()=>H.totalItems,e==="none"){d.registerMethod("select",()=>{}),d.registerMethod("deselect",()=>{}),d.registerMethod("toggleSelect",()=>{}),d.registerMethod("selectAll",()=>{}),d.registerMethod("clearSelection",()=>{}),d.registerMethod("getSelected",()=>[]),d.registerMethod("getSelectedItems",()=>[]),d.registerMethod("selectNext",()=>{}),d.registerMethod("selectPrevious",()=>{}),d.registerMethod("_seedSelection",()=>{}),d.registerMethod("_getFocusedId",()=>{return}),d.registerMethod("_focusById",()=>{});return}let G=W.classPrefix;d.setItemStateFn((C,L)=>{if(A(d),n.selected.size>0){let x=O(C),Y=x>=0?V(C):void 0,oe=Y?.id;if(oe!==void 0)if(n.selected.has(oe))L.selected=!0;else if(yn(n.selected,x,oe))L.selected=!0,D.delete(_e+x),D.set(oe,Y);else L.selected=!1;else L.selected=p!==null&&x>=0&&n.selected.has(_e+x)}else L.selected=!1;L.focused=n.focusVisible&&n.focusedIndex===C}),d.registerMethod("_getSelectedIds",()=>n.selected),d.registerMethod("_getFocusedIndex",()=>n.focusVisible?n.focusedIndex:-1),S.root.classList.add(`${G}--selectable`);let w=(C)=>{N=null,c=-1;let L=C.target.closest("[data-index]");if(!L)return!1;let x=parseInt(L.dataset.index??"-1",10);if(x<0)return!1;if(l?.(x))return!1;if(O(x)<0)return!1;let oe=V(x);if(!oe)return!1;return N=oe,c=x,!0},I=0,B=(C)=>{if(C<0)return;if(h){h(C);return}if(!I){let ge=d.getMethod("_getRowGap");I=ge?ge():0}let L=d.getNavConfig(),x=L.scrollIndex?L.scrollIndex(C):C,Y=g.getOffset(x),oe=g.getSize(x)-I,xe=H.containerSize,ue=H.scrollPosition,{startPadding:te,endPadding:ce}=W;if(Y<ue)k(Y);else if(te+Y+oe+ce>ue+xe)k(te+Y+oe+ce-xe)},ee=(C)=>{let L=S.content.querySelectorAll(`[data-index="${C}"]`),x=null;for(let Y=0;Y<L.length;Y++){let oe=L[Y];if(oe.style.display!=="none"){x=oe;break}}if(!x&&L.length>0)x=L[0];S.content.setAttribute("aria-activedescendant",x?.id??`${G}-item-${C}`)},Q=()=>{if(H.destroyed)return;if(A(d),!S.content.matches(":focus-visible")&&!S.root.matches(":focus-visible"))return;let C=z();if(C===0)return;let L=n.focusedIndex>=0?Math.min(n.focusedIndex,C-1):0;L=F(L,1,C),n.focusedIndex=L,n.focusVisible=!0,ee(L),B(L),a()};S.root.addEventListener("focusin",Q);let f=(C)=>{if(H.destroyed)return;let L=C.relatedTarget;if(L&&S.root.contains(L))return;n.focusVisible=!1,a(),S.content.removeAttribute("aria-activedescendant")};if(S.root.addEventListener("focusout",f),d.registerDestroyHandler(()=>{S.root.removeEventListener("focusin",Q),S.root.removeEventListener("focusout",f)}),d.registerClickHandler((C)=>{if(A(d),!w(C))return;if(e==="multiple"&&C.shiftKey&&n.focusedIndex>=0){let x=b>=0?b:n.focusedIndex,Y=O(x),oe=O(c);if(Y>=0&&oe>=0)P(x,c);n.focusedIndex=c,n.focusVisible=o,b=c,R();return}if(n.focusedIndex=c,n.focusVisible=o,b=c,(S.content.getAttribute("tabindex")!==null?S.content:S.root).focus(Xn),e==="single")q(N.id,N);else j(N.id,N);R()}),i)d.registerKeydownHandler((C)=>{A(d);let L=z();if(L===0)return;let x=d.getNavConfig(),Y=n.focusedIndex,oe=!1,xe=!1;if(x.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 te=x.total?x.total():L,ce=x.navigate(n.focusedIndex,C.key,te);if(ce!==n.focusedIndex)n.focusedIndex=Math.max(0,Math.min(ce,te-1));n.focusVisible=!0,oe=!0}else switch(C.key){case"ArrowUp":{let te=x.ud||1,ce=x.lr,ge=W.axis.primary==="x";if(ge&&!ce)break;We(n,-(ge?ce:te),L,W.reverse),n.focusVisible=!0,oe=!0;break}case"ArrowDown":{let te=x.ud||1,ce=x.lr,ge=W.axis.primary==="x";if(ge&&!ce)break;We(n,ge?ce:te,L,W.reverse),n.focusVisible=!0,oe=!0;break}case"ArrowLeft":{let te=x.ud||1,ce=x.lr,ge=W.axis.primary==="x";if(!ge&&!ce)break;We(n,-(ge?te:ce),L,W.reverse),n.focusVisible=!0,oe=!0;break}case"ArrowRight":{let te=x.ud||1,ce=x.lr,ge=W.axis.primary==="x";if(!ge&&!ce)break;We(n,ge?te:ce,L,W.reverse),n.focusVisible=!0,oe=!0;break}case"Home":if(L>0)n.focusedIndex=0;n.focusVisible=!0,oe=!0;break;case"End":if(L>0)n.focusedIndex=L-1;n.focusVisible=!0,oe=!0;break;case"PageUp":case"PageDown":{let te=x.ud||1,ce=Math.max(0,n.focusedIndex),ge=x.scrollIndex?x.scrollIndex(ce):ce,be=g.getSize(ge),re=H.containerSize,X=(be>0?Math.max(1,Math.floor(re/be)):10)*te;if(v&&y){let ne=v(n.focusedIndex),ae=C.key==="PageUp"?-X:X,Te=H.totalItems-1;n.focusedIndex=y(Tt(ne+ae,ne,te,Te+1))}else{let ne=C.key==="PageUp"?n.focusedIndex-X:n.focusedIndex+X;n.focusedIndex=Tt(ne,n.focusedIndex,te,L)}n.focusVisible=!0,oe=!0;break}case" ":case"Enter":if(C.key===" "&&C.shiftKey&&e==="multiple"&&n.focusedIndex>=0){if(b>=0){let te=O(b),ce=O(n.focusedIndex);if(te>=0&&ce>=0)P(b,n.focusedIndex)}n.focusVisible=!0,xe=!0,oe=!0;break}if(n.focusedIndex>=0){let te=V(n.focusedIndex);if(te)j(te.id,te),b=n.focusedIndex;n.focusVisible=!0,xe=!0,oe=!0}break;case"a":if((C.ctrlKey||C.metaKey)&&e==="multiple"){if(n.selected.size===H.totalItems)J();else _();n.focusVisible=!0,xe=!0,oe=!0}break;case"Delete":case"Backspace":if(n.selected.size>0)E.emit("delete",{selected:it(n.selected),items:M()}),oe=!0;break}if(n.focusedIndex!==Y&&l){let te=n.focusedIndex>Y?1:-1;n.focusedIndex=F(n.focusedIndex,te,L)}let ue=n.focusedIndex!==Y;if(C.shiftKey&&e==="multiple"&&!xe&&ue){if(C.key==="ArrowUp"||C.key==="ArrowDown"||C.key==="ArrowLeft"||C.key==="ArrowRight"){let ge=V(n.focusedIndex);if(ge)j(ge.id,ge);b=n.focusedIndex,xe=!0}if((C.ctrlKey||C.metaKey)&&(C.key==="Home"||C.key==="End")){let ge=Y>=0?Y:n.focusedIndex,be=O(ge),re=O(n.focusedIndex);if(be>=0&&re>=0)P(ge,n.focusedIndex);b=n.focusedIndex,xe=!0}}if(r&&e==="single"&&!xe&&ue&&n.focusedIndex>=0){let te=V(n.focusedIndex);if(te)q(te.id,te);xe=!0}if(oe){if(C.preventDefault(),ue&&n.focusedIndex>=0){if(h||!x.navigate)B(n.focusedIndex);ee(n.focusedIndex)}if(xe)R();else if(ue){if(a(),n.focusedIndex>=0){let te=V(n.focusedIndex);if(te)E.emit("focus:change",{id:te.id,index:n.focusedIndex})}}}});d.registerMethod("select",(...C)=>{for(let L of C)q(L);R()}),d.registerMethod("deselect",(...C)=>{for(let L of C)me(L);R()}),d.registerMethod("toggleSelect",(C)=>{j(C),R()}),d.registerMethod("selectAll",()=>{if(e!=="multiple")return;A(d),_(),R()}),d.registerMethod("clearSelection",()=>{J(),R()}),d.registerMethod("getSelected",()=>it(n.selected)),d.registerMethod("getSelectedItems",()=>M()),d.registerMethod("selectNext",()=>{A(d);let C=z();if(C===0)return;if(We(n,1,C,W.reverse),l)n.focusedIndex=F(n.focusedIndex,1,C);let L=V(n.focusedIndex);if(L)q(L.id,L);R()}),d.registerMethod("selectPrevious",()=>{A(d);let C=z();if(C===0)return;if(We(n,-1,C,W.reverse),l)n.focusedIndex=F(n.focusedIndex,-1,C);let L=V(n.focusedIndex);if(L)q(L.id,L);R()}),d.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)}),d.registerMethod("_isFollowFocus",()=>r),d.registerMethod("_getFocusedId",()=>{if(n.focusedIndex<0)return;return V(n.focusedIndex)?.id}),d.registerMethod("_focusById",(C)=>{let L=H.totalItems;for(let x=0;x<L;x++){if(l?.(x))continue;let Y=V(x);if(Y&&Y.id===C){n.focusedIndex=x,n.focusVisible=o,E.emit("focus:change",{id:C,index:x});return}}})},destroy(){D.clear()}}}var Tn=!1;function xt(t){return{name:"scale",priority:20,setup(){if(!Tn)Tn=!0,console.warn("[vlist] scale() is deprecated and will be removed in vlist 3.0. "+'Use scroll: { mode: "bounded" } instead — it handles lists of any size '+"without coordinate compression. See https://vlist.io/docs/logical-scroll")}}}var qn=(t)=>{if(typeof t!=="object"){let e=t??2;return{top:e,right:e,bottom:e,left:e}}return{top:t.top??2,right:t.right??2,bottom:t.bottom??2,left:t.left??2}},xn=(t,e,r={},o="vlist",i=!1,n)=>{let{autoHide:s=!0,autoHideDelay:a=1000,minThumbSize:E=15,showOnHover:S=!0,showOnViewportEnter:g=!0,clickBehavior:H="scroll"}=r,k=H==="page"?"scroll":H,b=n??t,D=qn(r.padding),v=i?D.left:D.top,y=i?D.right:D.bottom,l=i?D.bottom:D.right,h=r.hoverZoneWidth??l+16,z=0,u=0,A=0,O=0,p=!1,U=!1,V=0,F=0,q=0,j=null,J=!1,me=null,P=0,_=0,M=null,R=null,N=null,c=i?"width":"height",d=i?"translateX":"translateY",W=i?(Z)=>Z.clientX:(Z)=>Z.clientY,G=i?"left":"top",w=document.createElement("div"),I=document.createElement("div"),B=document.createElement("div"),ee=i?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",Q=()=>{if(b===t)return;let Z=t.offsetTop;w.style[i?"left":"top"]=Z?`calc(var(${ee}) + ${Z}px)`:`var(${ee})`,B.style[i?"left":"top"]=`${Z}px`},f=()=>{if(w.className=`${o}-scrollbar`,I.className=`${o}-scrollbar__thumb`,i)w.classList.add(`${o}-scrollbar--horizontal`);if(r.padding!==void 0)b.style.setProperty("--vlist-custom-scrollbar-padding-top",`${D.top}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-right",`${D.right}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${D.bottom}px`),b.style.setProperty("--vlist-custom-scrollbar-padding-left",`${D.left}px`);if(r.minThumbSize!==void 0)w.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${E}px`);if(w.appendChild(I),b.appendChild(w),B.className=`${o}-scrollbar__hover`,i)B.classList.add(`${o}-scrollbar__hover--horizontal`),B.style.height=`${h}px`;else B.style.width=`${h}px`;if(b.appendChild(B),b!==t)Q()},C=()=>{if(j)clearTimeout(j),j=null},L=()=>{if(!s)return;C(),j=setTimeout(Y,a)},x=()=>{if(z<=u)return;if(C(),!J)w.classList.add(`${o}-scrollbar--visible`),J=!0;if(s&&!p&&!U)L()},Y=()=>{if(p||U)return;w.classList.remove(`${o}-scrollbar--visible`),J=!1},oe=(Z,Ie)=>{if(z=Z,u=Ie,Q(),z<=u){w.style.display="none",Y();return}w.style.display="";let K=Math.max(0,u-v-y),de=u/z;if(A=Math.max(E,de*K),I.style[c]=`${A}px`,O=K-A,xe(q),!s)x()},xe=(Z)=>{if(q=Z,z<=u||O<=0)return;let Ie=z-u,K=Math.min(1,Math.max(0,Z/Ie));I.style.transform=`${d}(${K*O}px)`},ue=(Z)=>{if(Z.target===I||k!=="jump"||O<=0)return;let Ie=z-u,K=w.getBoundingClientRect(),de=W(Z)-K[G],Me=Math.max(0,Math.min(de-A/2,O));e(Me/O*Ie),x()},te=()=>{if(M!==null)clearTimeout(M),M=null;if(R!==null)cancelAnimationFrame(R),R=null;N=null},ce=(Z)=>{let Ie=O>0?_/Z*O:0;if(P<Ie)return-1;if(P>=Ie+A)return 1;return 0},ge=()=>{let Z=z-u,Ie=ce(Z);if(Ie===0){te();return}if(Ie===-1){if(_<=0){te();return}let K=Math.max(0,_-u);_=K,e(K)}else{if(_>=Z){te();return}let K=Math.min(Z,_+u);_=K,e(K)}x()},be=(Z)=>{if(N===null){N=Z,R=requestAnimationFrame(be);return}let Ie=z-u,K=Z-N;N=Z;let de=ce(Ie);if(de===0){te();return}let Me=12*u/1000,Ee=Math.min(Me*K,u);if(de===-1){if(_<=0){te();return}let we=Math.max(0,_-Ee);_=we,e(we)}else{if(_>=Ie){te();return}let we=Math.min(Ie,_+Ee);_=we,e(we)}C(),R=requestAnimationFrame(be)},re=()=>{te(),L(),document.removeEventListener("mouseup",re)},m=(Z)=>{if(Z.target===I||k!=="scroll")return;Z.preventDefault();let Ie=w.getBoundingClientRect();P=W(Z)-Ie[G],_=q,ge(),M=setTimeout(()=>{R=requestAnimationFrame(be)},350),document.addEventListener("mouseup",re)},X=(Z)=>{Z.preventDefault(),Z.stopPropagation(),p=!0,V=W(Z),F=q,C(),w.classList.add(`${o}-scrollbar--dragging`),document.addEventListener("mousemove",ne),document.addEventListener("mouseup",ae)},ne=(Z)=>{if(!p)return;let Ie=W(Z)-V,K=O>0?Ie/O:0,de=z-u,Me=K*de,Ee=Math.max(0,Math.min(F+Me,de));I.style.transform=`${d}(${Ee/de*O}px)`,e(Ee)},ae=()=>{if(p=!1,w.classList.remove(`${o}-scrollbar--dragging`),s&&!U)L();document.removeEventListener("mousemove",ne),document.removeEventListener("mouseup",ae)},Te=i?(Z)=>Z.touches[0].clientX:(Z)=>Z.touches[0].clientY,ye=(Z)=>{Z.stopPropagation(),p=!0,V=Te(Z),F=q,C(),w.classList.add(`${o}-scrollbar--dragging`)},ve=(Z)=>{if(!p)return;Z.preventDefault();let Ie=Te(Z)-V,K=O>0?Ie/O:0,de=z-u,Me=K*de,Ee=Math.max(0,Math.min(F+Me,de));I.style.transform=`${d}(${Ee/de*O}px)`,e(Ee)},fe=()=>{if(p=!1,w.classList.remove(`${o}-scrollbar--dragging`),s)L()},Se=(Z)=>{if(Z.target===I)return;if(O<=0)return;let Ie=Z.touches[0],K=w.getBoundingClientRect(),de=(i?Ie.clientX:Ie.clientY)-K[G];if(k==="jump"){let Me=z-u,Ee=Math.max(0,Math.min(de-A/2,O));e(Ee/O*Me)}else P=de,_=q,ge();x()},Ce=()=>{if(g)x()},Le=()=>{if(!p){if(U=!1,s)L()}},he=()=>{U=!0,C(),x()},ie=()=>{if(U=!1,!p&&s)L()},se=()=>{if(C(),te(),me!==null)cancelAnimationFrame(me),me=null;w.removeEventListener("click",ue),w.removeEventListener("mousedown",m),w.removeEventListener("mouseenter",he),document.removeEventListener("mouseup",re),w.removeEventListener("mouseleave",ie),w.removeEventListener("touchstart",Se),I.removeEventListener("mousedown",X),I.removeEventListener("touchstart",ye),I.removeEventListener("touchmove",ve),I.removeEventListener("touchend",fe),t.removeEventListener("mouseenter",Ce),t.removeEventListener("mouseleave",Le),document.removeEventListener("mousemove",ne),document.removeEventListener("mouseup",ae),B.removeEventListener("click",ue),B.removeEventListener("mousedown",m),B.removeEventListener("mouseenter",he),B.removeEventListener("mouseleave",ie),B.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"),w.remove()};if(f(),w.addEventListener("click",ue),w.addEventListener("mousedown",m),w.addEventListener("mouseenter",he),w.addEventListener("mouseleave",ie),w.addEventListener("touchstart",Se,{passive:!0}),I.addEventListener("mousedown",X),I.addEventListener("touchstart",ye,{passive:!0}),I.addEventListener("touchmove",ve,{passive:!1}),I.addEventListener("touchend",fe,{passive:!0}),t.addEventListener("mouseenter",Ce),t.addEventListener("mouseleave",Le),B.addEventListener("click",ue),B.addEventListener("mousedown",m),S)B.addEventListener("mouseenter",he),B.addEventListener("mouseleave",ie);return{show:x,hide:Y,updateBounds:oe,updatePosition:xe,isVisible:()=>J,destroy:se}};function Lt(t){let e=null,r,o=0,i=0,n=0;return{name:"scrollbar",priority:15,setup(s){let{dom:a,config:E}=s,{classPrefix:S}=E,g=E.axis.primary==="x";r=s.getState(),o=E.mainAxisPadding;let H=(k)=>{s.scrollTo(k)};if(s.registerMethod("_scrollbar:setCallback",(k)=>{H=k}),e=xn(a.viewport,(k)=>{H(k)},t,S,g,a.root),a.viewport.classList.add(`${S}-viewport--custom-scrollbar`),t?.gutter)a.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,a.viewport.classList.remove(`${S}-viewport--custom-scrollbar`),t?.gutter)a.viewport.classList.remove(`${S}-viewport--gutter`)})},hooks:{onAfterScroll(s){let a=r.totalSize+o,E=r.containerSize;if(a!==i||E!==n)i=a,n=E,e?.updateBounds(a,E);e?.updatePosition(s),e?.show()},onResize(){let s=r.totalSize+o,a=r.containerSize;i=s,n=a,e?.updateBounds(s,a)}},destroy(){e?.destroy(),e=null}}}var jn=(t)=>{try{let e=sessionStorage.getItem(t);if(!e)return;return JSON.parse(e)}catch{return}};function Et(t){let e=t?.autoSave,r=t?.restore??(e?jn(e):void 0),o=!1,i=null;return{name:"snapshots",priority:50,setup(n){let{sizeCache:s,emitter:a}=n,E=n.getState(),S=()=>{let{scrollPosition:k,totalItems:b}=E,v=n.getMethod("getSelected")?.();if(b===0){let p={index:0,offsetInItem:0,total:0};if(v?.length)p.selectedIds=v;return p}let y=s.indexAtOffset(k),l=k-s.getOffset(y);l=Math.max(0,l);let h={index:y,offsetInItem:l,total:b,scrollTop:k},z=s.getSize(y);if(z)h.offsetRatio=l/z;let u=n.getMethod("_layoutToDataIndex");if(u){let p=u(y);if(p<0){for(let U=y+1;U<b;U++)if(p=u(U),p>=0)break}if(p>=0)h.dataIndex=p}let A=n.getMethod("_getTotal");if(A)h.dataTotal=A();if(v?.length)h.selectedIds=v;let O=n.getMethod("_getFocusedId");if(O){let p=O();if(p!==void 0)h.focusedId=p}return h};n.registerMethod("getScrollSnapshot",S);let g=(k,b=!0)=>{let{index:D,offsetInItem:v,selectedIds:y,focusedId:l}=k,h=E.totalItems,z=k.dataTotal??k.total;if(h===0&&z&&z>0){let _=n.getMethod("_setTotal");if(_)_(z),h=E.totalItems;s.rebuild(h),n.updateContentSize(s.getTotalSize()),E.totalSize=s.getTotalSize()}if(h===0)return Promise.resolve();if(!Number.isFinite(D)||!Number.isFinite(v))return Promise.resolve();if(s.getTotal()===0)s.rebuild(h),n.updateContentSize(s.getTotalSize()),E.totalSize=s.getTotalSize();let A=n.getMethod("_dataToLayoutIndex"),O=D;if(k.dataIndex!==void 0&&k.dataIndex>=0)O=A?A(k.dataIndex):k.dataIndex;else if(A)O=A(D);let p=Math.max(0,Math.min(O,h-1)),U=s.getSize(p),V=k.offsetRatio!==void 0?k.offsetRatio*U:Math.min(v,U),F=n.getMethod("_getTotal")?.(),q=k.total===h||F!==void 0&&k.dataTotal===F,j;if(k.scrollTop!==void 0&&q)j=k.scrollTop;else j=s.getOffset(p)+V;let J=Math.max(0,E.totalSize-E.containerSize);if(j=Math.max(0,Math.min(j,J)),n.scrollTo(j),b&&y?.length){let _=n.getMethod("select");if(_)_(...y)}let me=n.getMethod("loadVisibleRange"),P=()=>{if(l===void 0)return;let _=n.getMethod("_focusById");if(_)_(l)};return new Promise((_)=>{let M=(R)=>{if(R)P();_()};if(me){let R=0,N=()=>{if(E.containerSize>0){if(Math.abs(E.scrollPosition-j)>1)n.scrollTo(j);me().then(()=>M(!0),()=>M(!1))}else if(++R<10)requestAnimationFrame(N);else M(!1)};requestAnimationFrame(N)}else{let R=n.getMethod("reload");if(R)requestAnimationFrame(()=>{R().then(()=>M(!0),()=>M(!1))});else requestAnimationFrame(()=>M(!0))}})};n.registerMethod("restoreScroll",g);let H=!!(r&&e);if(n.registerDestroyHandler(()=>{o=!0}),e){i=()=>{if(o||H)return;let h=S();try{sessionStorage.setItem(e,JSON.stringify(h))}catch{}},n.registerMethod("_saveSnapshot",i);let k=0,b=()=>{if(k)return;k=requestAnimationFrame(()=>{if(k=0,i)i()})};a.on("selection:change",b),a.on("focus:change",b);let D=0,v=()=>{if(D=0,i)i()},y=()=>{if(D)clearTimeout(D);D=setTimeout(v,300)};a.on("scroll",y);let l=()=>{i?.()};if(window.addEventListener("beforeunload",l),n.registerDestroyHandler(()=>{if(k)cancelAnimationFrame(k);if(D)clearTimeout(D);window.removeEventListener("beforeunload",l)}),r&&r.total&&r.total>0){let h=n.getMethod("_cancelAutoLoad");if(h)h();let z=n.getMethod("_setTotal");if(z)z(r.total)}}if(r){let k=!0;if(r.selectedIds?.length){let b=n.getMethod("_seedSelection");if(b)b(r.selectedIds),k=!1}queueMicrotask(()=>{if(g(r,k),H=!1,i)i()})}},hooks:{onIdle(){if(i&&!o)i()}},destroy(){o=!0,i=null}}}function Zn(t){let e=[];if(typeof window<"u"&&t.scroll?.element===window)e.push(gt());let r=t.item,o=t.orientation==="horizontal",i=o?r.width!=null:r.height!=null,n=o?r.estimatedWidth!=null:r.estimatedHeight!=null;if(!i&&n)e.push(pt());if(t.adapter)e.push(bt({adapter:t.adapter,...t.loading&&{loading:t.loading}}));if(t.layout==="grid"&&t.grid)e.push(ht(t.grid));if(t.layout==="masonry"&&t.masonry)e.push(vt(t.masonry));if(t.groups){let E=t.groups,S=typeof E.headerHeight==="function"?E.headerHeight("",0):E.headerHeight;e.push(It({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(st(t.selection));else e.push(st({mode:"none"}));e.push(xt());let a=t.scroll?.scrollbar||t.scrollbar;if(a!=="none"&&a!=="native"){let E=a&&typeof a==="object"?a:{};e.push(Lt(E))}if(e.push(Et()),t.plugins&&t.plugins.length>0){let E=new Set(t.plugins.map((g)=>g.name));return[...e.filter((g)=>!E.has(g.name)),...t.plugins]}return e}function ni(t){return ln(t,Zn(t))}export{ni as createVListFromConfig,Zn as resolvePlugins};
|
package/dist/core/state.d.ts
CHANGED
|
@@ -30,6 +30,8 @@ export interface EngineState {
|
|
|
30
30
|
* Defaults to 0, which makes native mode byte-identical (`offset - 0`).
|
|
31
31
|
*/
|
|
32
32
|
baseOffset: number;
|
|
33
|
+
/** baseOffset at the last phase-1 commit; a change forces phase 2 even when the range is unchanged. */
|
|
34
|
+
prevBaseOffset: number;
|
|
33
35
|
containerSize: number;
|
|
34
36
|
crossSize: number;
|
|
35
37
|
totalItems: number;
|