vlist 3.0.0-next.1 → 3.0.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.github.md +53 -54
- package/README.md +53 -54
- package/dist/config.d.ts +3 -4
- package/dist/config.js +1 -1
- package/dist/core/create.d.ts +1 -2
- package/dist/core/types.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/native.d.ts +6 -10
- package/dist/native.js +1 -1
- package/dist/size.json +1 -1
- package/dist/synthetic.d.ts +3 -3
- package/dist/synthetic.js +1 -1
- package/dist/types.d.ts +5 -2
- package/package.json +1 -1
package/dist/config.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var ct=16777216,et=3,Rt="vlist";var tt=50;var kt=50,Ht=2,_t=15,Ft=6,mt=2000,Vt=30000;var Xe=150;var nt=(e)=>e<0.5?2*e*e:1-(-2*e+2)**2/2,Dt=300;var Ot="x",Gt=20,ft="_isPlaceholder",De="__placeholder_";var Nt=1,Bt=2;var $t=(e)=>1-(1-e)**3;function Wt({getMax:e,onChange:t=()=>{},onFinish:o,axis:r="y",reducedMotion:s}){let n=0,i=0,a=null,_=0,p=0,c=0,K=0,H=0,m=null,N=0,M=0,S=0,v=0,b=400,T=$t,A=()=>S,y=0.006,L=(B)=>Math.max(0,Math.min(e(),B)),D=(B,W)=>r==="y"?W:B,g=(B,W)=>r==="y"?B:W;function z(B){let W=L(B);if(W!==n)n=W,t(n);return W!==B}function C(){H=0,i=a===null?0:5}function X(B){C(),z(B)}return{get position(){return n},get state(){return i},get velocity(){return H},get active(){return i===3||i===4},begin(B,W,te,se){if(a!==null){C();return}C(),a=B,_=c=D(W,te),p=g(W,te),K=se,i=1},move(B,W,te,se){if(B!==a||i!==1&&i!==2)return!1;let w=D(W,te);if(i===1){let G=Math.abs(w-_),x=Math.abs(g(W,te)-p);if(Math.max(G,x)<6)return!1;if(x>G*1.2)return C(),!1;if(G<x*1.2)return!1;i=2}let I=c-w,P=se-K;if(P>0){let G=Math.max(-3,Math.min(3,I/P));H=P>80?0:G*H<0?G:0.65*G+0.35*H}if(c=w,K=se,z(n+I))H=0;return!0},end(B,W){if(B!==a)return;if(a=null,i===2&&!s()&&W-K<=80&&Math.abs(H)>=0.02)m=null,i=3;else H=0,i=0},cancel:C,reset(){a=null,C()},jump:X,shiftBy(B){M+=B,v+=B,z(n+B)},by(B){C();let W=n;return z(n+B),n!==W},smooth(B,W=400,te=$t){if(C(),v=0,A=typeof B==="function"?B:()=>B,a!==null||s()||W<=0){z(A());return}b=W,T=te,M=n,S=L(A()+v),m=null,i=4},resize(){C(),z(n)},tick(B){if(i!==3&&i!==4)return;if(m===null){if(m=B,i===4)N=B;return}let W=B-m;if(W<=0)return;if(m=B,W>100){if(i===4)z(L(A()+v)),i=0,o?.();else C();return}if(i===4){S=L(A()+v);let w=Math.min(1,(B-N)/b);if(z(M+(S-M)*T(w)),w===1)i=0,o?.();return}let te=Math.exp(-y*W),se=z(n+H*(1-te)/y);if(H*=te,se||Math.abs(H)<0.02)H=0,i=0}}}var ot=(e)=>e.pointerType==="touch"||e.pointerType==="pen";function gt(e){if(e.closest("textarea,select,[contenteditable]:not([contenteditable=false])"))return!0;let t=e.closest("input");return!!t&&!/^(button|submit|reset|checkbox|radio|image)$/.test(t.type)}function Yt(e){let{state:t,viewport:o,content:r,isX:s,onFrame:n,onIdle:i,mainAxisPadding:a}=e,_=o.parentElement??o,p=o.ownerDocument.defaultView,c=o.ownerDocument,K=p.matchMedia("(prefers-reduced-motion: reduce)"),H=0,m=null,N=null,M=!1,S=!1,v=-1,b=-1,T=null,A=null,y=!1,L=!1,D=!1,g=!1,z,C=new Set;function X(l){let E=t.scrollPosition;if(t.prevScrollPosition=E,t.scrollPosition=t.baseOffset=l,t.scrollDirection=l>E?1:l<E?-1:0,!S)n()}function B(){if(N=null,w.active||w.state===Bt||w.state===Nt)return;t.scrollDirection=0,i()}function W(){if(!M)return;if(N!==null)clearTimeout(N);N=setTimeout(B,e.idleTimeout||Xe)}function te(){if(M&&m===null&&w.active)m=requestAnimationFrame(se)}function se(l){if(m=null,w.tick(l),w.active)te();else W()}let w=Wt({axis:s?"x":"y",getMax:()=>H,reducedMotion:()=>K.matches,onChange:X,onFinish(){let l=z;z=void 0,l?.()}});function I(){if(z=void 0,m!==null)cancelAnimationFrame(m),m=null;if(w.cancel(),N!==null)clearTimeout(N),N=null}function P(){if(I(),w.reset(),g&&T!==null&&o.hasPointerCapture(T))o.releasePointerCapture(T);g=!1,C.clear(),T=A=null,y=L=D=!1,W()}function G(l){if(!ot(l))return;if(l.isPrimary){if(C.size)P();C.clear()}if(C.add(l.pointerId),C.size>1){D=!0,I();return}if(!(l.target instanceof Element)||gt(l.target)){I();return}T=l.pointerId,y=!1,L=w.active,A=null,I(),w.begin(l.pointerId,l.clientX,l.clientY,l.timeStamp)}function x(l){if(!ot(l)||l.target instanceof Node&&o.contains(l.target))return;if(l.isPrimary&&C.size)P();else if(C.size)C.add(l.pointerId),D=!0,I()}function u(l){if(!ot(l)||D)return;if(w.move(l.pointerId,l.clientX,l.clientY,l.timeStamp)){if(y=!0,!g)o.setPointerCapture(l.pointerId),g=!0;if(l.cancelable)l.preventDefault()}}function q(l){if(!ot(l)||!C.has(l.pointerId))return;let E=l.type==="pointercancel";if(E)I();if(T===l.pointerId){if(!E&&!D&&(y||L))A=l.pointerId;if(g&&o.hasPointerCapture(l.pointerId))o.releasePointerCapture(l.pointerId);g=!1,T=null,y=L=!1}if(w.end(l.pointerId,l.timeStamp),C.delete(l.pointerId),!C.size){if(D||E)w.reset();D=!1}te(),W()}function F(l){let E=l.pointerId;if(l.detail!==0&&A!==null&&(E===A||E===void 0))A=null,l.preventDefault(),l.stopImmediatePropagation()}function U(l){if(l.ctrlKey||l.defaultPrevented||!(l.target instanceof Element)||gt(l.target))return;let E=l.deltaMode===1?16:l.deltaMode===2?t.containerSize:1,d=s?l.deltaX:l.deltaY,V=s?l.deltaY:l.deltaX,R=s?o.scrollHeight>o.clientHeight:o.scrollWidth>o.clientWidth;if(R&&Math.abs(V)>Math.abs(d))return;if(R&&V!==0)if(l.preventDefault(),s)o.scrollTop+=V*E;else o.scrollLeft+=V*E;let k=s&&!R&&d===0?V:d;if(I(),w.by(k*E))l.preventDefault();W()}function j(l){if(l.defaultPrevented||l.ctrlKey||l.metaKey||l.altKey||!(l.target instanceof Element)||gt(l.target))return;if((l.key===" "||l.key==="Enter")&&l.target.closest("button,summary,a,input"))return;let E=e.sizeCache,d=E.getSize(E.indexAtOffset(w.position)),V;if(l.key===(s?"ArrowRight":"ArrowDown"))V=w.position+d;if(l.key===(s?"ArrowLeft":"ArrowUp"))V=w.position-d;if(l.key==="PageDown"||l.key===" ")V=w.position+t.containerSize*(l.shiftKey&&l.key===" "?-1:1);if(l.key==="PageUp")V=w.position-t.containerSize;if(l.key==="Home")V=0;if(l.key==="End")V=H;if(V!==void 0)l.preventDefault(),O(V)}function pe(){if(c.hidden)P()}function O(l){let E=w.position;if(I(),w.jump(l),E===w.position)X(w.position);W()}function Z(l){let E=v!==t.containerSize||b!==t.crossSize,d=l!==t.totalSize||E;if(v=t.containerSize,b=t.crossSize,t.totalSize=l,H=Math.max(0,l+a-t.containerSize),d){if(S=!0,E)I(),w.resize();else w.shiftBy(0);X(w.position),S=!1}}return{setLogical:O,refresh:Z,shiftBy(l){if(t.totalSize=e.sizeCache.getTotalSize(),H=Math.max(0,t.totalSize+a-t.containerSize),w.shiftBy(l),!w.active)W()},cancelScroll(){I(),W()},getLogical:()=>t.scrollPosition,getMaxLogical:()=>H,smoothScrollTo(l,E,d,V=nt,R){if(I(),w.smooth(l,E,V),z=R,!w.active)z=void 0,R?.(),W();else te()},attach(){if(M)return;if(M=!0,o.style.overflowX=s?"hidden":"auto",o.style.overflowY=s?"auto":"hidden",o.style.touchAction=s?"pan-y pinch-zoom":"pan-x pinch-zoom",o.style.overflowAnchor="none",r.style[s?"width":"height"]="100%",r.style.overflow="clip",r.style.overflowAnchor="none",o.addEventListener("pointerdown",G),p.addEventListener("pointerdown",x),o.addEventListener("pointermove",u,{passive:!1}),p.addEventListener("pointerup",q),p.addEventListener("pointercancel",q),o.addEventListener("click",F,!0),e.wheelEnabled)o.addEventListener("wheel",U,{passive:!1});_.addEventListener("keydown",j),p.addEventListener("blur",P),c.addEventListener("visibilitychange",pe),K.addEventListener("change",P),te()},detach(){if(M=!1,P(),N!==null)clearTimeout(N),N=null;o.removeEventListener("pointerdown",G),p.removeEventListener("pointerdown",x),o.removeEventListener("pointermove",u),p.removeEventListener("pointerup",q),p.removeEventListener("pointercancel",q),o.removeEventListener("click",F,!0),o.removeEventListener("wheel",U),_.removeEventListener("keydown",j),p.removeEventListener("blur",P),c.removeEventListener("visibilitychange",pe),K.removeEventListener("change",P),o.style.overflowX=o.style.overflowY=o.style.touchAction=o.style.overflowAnchor="",r.style.overflow=r.style.overflowAnchor=""}}}var rt={top:0,right:0,bottom:0,left:0},Kt=(e)=>{if(e==null)return rt;if(typeof e==="number")return e===0?rt:{top:e,right:e,bottom:e,left:e};if(e.length===2){let[n,i]=e;return n===0&&i===0?rt:{top:n,right:i,bottom:n,left:i}}let[t,o,r,s]=e;return t===0&&o===0&&r===0&&s===0?rt:{top:t,right:o,bottom:r,left:s}},qt=(e,t)=>t?e.left+e.right:e.top+e.bottom,Ut=(e,t)=>t?e.top+e.bottom:e.left+e.right;function Xt(e){let t={visibleIndices:new Int32Array(e),visibleOffsets:new Float64Array(e),visibleSizes:new Float64Array(e),visibleCount:0,startIndex:0,totalSize:0,capacity:e,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,prevAriaTotal:-1,resizeCapacity(o,r,s=et){if(r<=0||o<=0)return;let n=Math.ceil(o/r)+s*2;if(n<=t.capacity)return;let i=n+8,a=new Int32Array(i),_=new Float64Array(i),p=new Float64Array(i);a.set(t.visibleIndices),_.set(t.visibleOffsets),p.set(t.visibleSizes),t.visibleIndices=a,t.visibleOffsets=_,t.visibleSizes=p,t.capacity=i},clear(){t.visibleCount=0,t.startIndex=0}};return t}var zn=(e,t)=>{let o=t;return{getOffset:(r)=>r*e,getSize:(r)=>e,indexAtOffset:(r)=>{if(o===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(r/e),o-1))},getTotalSize:()=>o*e,getTotal:()=>o,rebuild:(r)=>{o=r},isVariable:()=>!1}},An=(e,t)=>{let o=t,r=new Float64Array(0),s=(i)=>{o=i,r=new Float64Array(i+1),r[0]=0;for(let a=0;a<i;a++)r[a+1]=r[a]+e(a)};s(t);let n=(i)=>{if(o===0)return 0;if(i<=0)return 0;if(i>=r[o])return o-1;let a=0,_=o-1;while(a<_){let p=a+_+1>>>1;if(r[p]<=i)a=p;else _=p-1}return a};return{getOffset:(i)=>{if(i<=0)return 0;if(i>=o)return r[o];return r[i]},getSize:(i)=>e(i),indexAtOffset:(i)=>n(i),getTotalSize:()=>r[o]??0,getTotal:()=>o,rebuild:(i)=>s(i),isVariable:()=>!0}},it=(e,t)=>{if(typeof e==="number")return zn(e,t);return An(e,t)};function jt(e){let t=[],o=`${e}-item`,r=document.createElement("div");return r.className=o,{acquire(){if(t.length>0)return t.pop();return r.cloneNode(!1)},release(s){if(s.className=o,s.removeAttribute("style"),s.removeAttribute("id"),s.removeAttribute("role"),s.removeAttribute("aria-selected"),s.removeAttribute("aria-posinset"),s.removeAttribute("aria-setsize"),s.removeAttribute("data-index"),s.removeAttribute("data-id"),s.textContent="",t.length<100)t.push(s)},get size(){return t.length},clear(){t.length=0}}}function qe(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let o=0;o<t.length;o++)t[o].setAttribute("tabindex","-1")}function pt(e){if(typeof e==="string"){let t=document.querySelector(e);if(!t)throw Error(`[vlist] Container not found: ${e}`);return t}return e}function Zt(e,t,o,r){let s=o?`${t} ${t}--horizontal`:t,n=o?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",i=o?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",a=' role="list"';if(r)a+=` aria-label="${r.replace(/"/g,""")}"`;if(o)a+=' aria-orientation="horizontal"';e.insertAdjacentHTML("beforeend",`<div class="${s}"><div class="${t}-viewport" style="${n}" tabindex="-1"><div class="${t}-content" style="${i}"${a}></div></div></div>`);let _=e.lastElementChild,p=_.firstElementChild,c=p.firstElementChild,K=document.createElement("div");return K.className=`${t}-live`,K.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",K.setAttribute("aria-live","polite"),K.setAttribute("aria-atomic","true"),K.setAttribute("role","status"),_.appendChild(K),{root:_,viewport:p,content:c,liveRegion:K}}function Jt(e){let{state:t,viewport:o,isX:r,onFrame:s,onIdle:n}=e,i=e.idleTimeout||Xe,a=null,_=null;function p(m=r?o.scrollLeft:o.scrollTop){t.prevScrollPosition=t.scrollPosition,t.scrollPosition=m,t.scrollDirection=m>t.prevScrollPosition?1:m<t.prevScrollPosition?-1:0,s(),c()}function c(){if(a!==null)clearTimeout(a);a=setTimeout(()=>{a=null,t.scrollDirection=0,n()},i)}function K(){if(_!==null)cancelAnimationFrame(_),_=null}function H(m,N,M,S=nt,v){K();let b=t.scrollPosition,T=typeof m==="function"?m:()=>m,A=T();if(Math.abs(A-b)<1){if(M)M(A);else if(r)o.scrollLeft=A;else o.scrollTop=A;v?.();return}let y=performance.now();function L(D){A=T();let g=D-y,z=Math.min(g/N,1),C=b+(A-b)*S(z);if(M)M(C);else if(r)o.scrollLeft=C;else o.scrollTop=C;if(!M)p(C);if(z<1)_=requestAnimationFrame(L);else _=null,v?.()}_=requestAnimationFrame(L)}return{attach(){},detach(){if(K(),a!==null)clearTimeout(a),a=null},cancelScroll:K,smoothScrollTo:H,commitScroll:p}}function wn(e,t){if(e.getTotal()<=0)return{index:0,offsetPx:0};let r=t<=0?0:t,s=e.indexAtOffset(r),n=r-e.getOffset(s);return{index:s,offsetPx:n>0?n:0}}function Rn(e,t){let o=kn(e,t);return e.getOffset(o.index)+o.offsetPx}function kn(e,t){let o=e.getTotal();if(o<=0)return{index:0,offsetPx:0};let{index:r,offsetPx:s}=t;if(r<0)return{index:0,offsetPx:0};if(r>o-1)r=o-1;while(s>0&&r<o-1){let n=e.getSize(r);if(s<n)break;s-=n,r++}while(s<0&&r>0)r--,s+=e.getSize(r);if(s<0)s=0;return{index:r,offsetPx:s}}function Qt(e){let{sizeCache:t,getPixel:o,setPixel:r,getContainerSize:s}=e;function n(){let a=t.getTotalSize()+e.padding-s();return a>0?a:0}function i(a){if(a<=0)return 0;let _=n();return a>_?_:a}return{getLogical(){return wn(t,o())},setLogical(a){r(i(Rn(t,a)))},getPixelEquivalent(){return o()},setPixelEquivalent(a){r(i(a))},getMaxPixelEquivalent:n,getRenderOrigin:e.getRenderOrigin,scrollByPx(a){r(i(o()+a))}}}var Ze=[],Hn={calculate:Ze,commit:Ze,afterScroll:Ze,idle:Ze,resize:Ze};function en(e){if(e.length===0)return Hn;let t=[],o=[],r=[],s=[],n=[];for(let i=0;i<e.length;i++){let a=e[i].hooks;if(a===void 0)continue;if(a.onCalculate!==void 0)t.push(a.onCalculate);if(a.onCommit!==void 0)o.push(a.onCommit);if(a.onAfterScroll!==void 0)r.push(a.onAfterScroll);if(a.onIdle!==void 0)s.push(a.onIdle);if(a.onResize!==void 0)n.push(a.onResize)}return{calculate:t,commit:o,afterScroll:r,idle:s,resize:n}}function tn(e,t){for(let o=0;o<e.length;o++)e[o](t)}function nn(e,t){for(let o=0;o<e.length;o++)e[o](t)}function bt(e,t,o){for(let r=0;r<e.length;r++)e[r](t,o)}function on(e){for(let t=0;t<e.length;t++)e[t]()}function rn(e,t,o){for(let r=0;r<e.length;r++)e[r](t,o)}function sn(e,t,o,r,s,n,i,a){let _=r!==0||s!==0;return{prefix:e,selectedClass:`${e}-item--selected`,focusedClass:`${e}-item--focused`,placeholderClass:`${e}-item--placeholder`,replacedClass:`${e}-item--replaced`,translateProp:t?"translateX(":"translateY(",sizeProp:t?"width":"height",itemRole:"listitem",interactive:!1,startPadding:o,gap:i,hasCrossPad:_,crossStartProp:_?t?"top":"left":"",crossEndProp:_?t?"bottom":"right":"",crossStartVal:_?r+"px":"",crossEndVal:_?s+"px":"",oddClass:n,emitter:a??null,indexMap:null,ariaTotalFn:null}}function _n(e,t,o,r,s){if(e.containerSize<=0||e.totalItems===0)return e.clear(),!0;let{scrollPosition:n,containerSize:i,totalItems:a}=e,_=s??0;e.totalSize=t.getTotalSize();let p=t.indexAtOffset(_>0?Math.max(0,n-_):n),c=t.indexAtOffset(n+i);if(c<a-1)c++;p=Math.max(0,p),c=Math.min(a-1,Math.max(0,c));let K=Math.max(0,p-o),H=Math.min(a-1,c+o),m=Math.ceil(i/1)+o*2+10,N=H-K+1,M=Math.min(N,e.capacity,m);if(K===e.prevRangeStart&&H===e.prevRangeEnd&&!e.renderPending&&e.baseOffset===e.prevBaseOffset)return!1;e.visibleCount=M,e.startIndex=K;for(let S=0;S<M;S++){let v=K+S;e.visibleIndices[S]=v,e.visibleOffsets[S]=t.getOffset(v),e.visibleSizes[S]=t.getSize(v)}return tn(r.calculate,e),e.prevRangeStart=K,e.prevRangeEnd=H,e.prevBaseOffset=e.baseOffset,e.renderPending=!1,!0}var Ve={selected:!1,focused:!1};function Fn(e,t,o){for(let r=0;r<t;r++)if(e[r]===o)return!0;return!1}function Vn(e,t){if(t<=1)return!0;let o=e[0];for(let r=1;r<t;r++){let s=e[r];if(s!==o+1)return!1;o=s}return!0}function Dn(e,t,o,r,s,n,i,a,_,p){let c=_?null:s(),{visibleCount:K,visibleIndices:H}=e,m=i.ariaTotalFn?i.ariaTotalFn():e.totalItems,N=i.interactive?String(m):"",M=i.interactive&&m!==e.prevAriaTotal,S=null,v=i.indexMap;for(let b=0;b<K;b++){let T=H[b],A=v?v(T):T,y=e.visibleOffsets[b],L=e.visibleSizes[b],D=_?_(T):c[T];if(p)p(A,Ve);else Ve.selected=!1,Ve.focused=!1;let g=n.get(T),z=g;if(g===void 0){let C=t.acquire();if(D!==void 0){let W;try{W=r(D,A,Ve)}catch(te){if(i.emitter)i.emitter.emit("error",{error:te instanceof Error?te:Error(String(te)),context:`template:render:${A}`});t.release(C);continue}if(typeof W==="string")C.innerHTML=W;else C.textContent="",C.appendChild(W);qe(C)}if(C.setAttribute("role",i.itemRole),C.setAttribute("data-index",String(A)),i.interactive)C.id=i.prefix+"-item-"+T,C.setAttribute("aria-posinset",String(A+1)),C.setAttribute("aria-setsize",N);if(D!==void 0){let W=String(D.id);if(C.setAttribute("data-id",W),W.startsWith(De))C.classList.add(i.placeholderClass)}if(i.hasCrossPad)C.style.setProperty(i.crossStartProp,i.crossStartVal),C.style.setProperty(i.crossEndProp,i.crossEndVal);if(p){if(C.classList.toggle(i.selectedClass,Ve.selected),C.classList.toggle(i.focusedClass,Ve.focused),Ve.selected)C.setAttribute("aria-selected","true");else C.removeAttribute("aria-selected");C._lastSelected=Ve.selected,C._lastFocused=Ve.focused}if(i.oddClass)C.classList.toggle(i.oddClass,(T&1)===1);let X=y-e.baseOffset+i.startPadding;C.style.transform=i.translateProp+X+"px)",C._lastOffset=X;let B=L-i.gap;if(C.style[i.sizeProp]=B+"px",C._lastSize=B,C._lastItem=D,n.set(T,C),S===null)S=document.createDocumentFragment();S.appendChild(C)}else{if(M)g.setAttribute("aria-setsize",N);if(D!==void 0&&z._lastItem!==D){let B=g.getAttribute("data-id"),W=String(D.id),te;try{te=r(D,A,Ve)}catch(se){if(i.emitter)i.emitter.emit("error",{error:se instanceof Error?se:Error(String(se)),context:`template:render:${A}`});continue}if(typeof te==="string")g.innerHTML=te;else g.textContent="",g.appendChild(te);if(qe(g),g.setAttribute("data-id",W),z._lastItem=D,B!==W){let se=B!==null&&B.startsWith(De),w=W.startsWith(De);if(se!==w)g.classList.toggle(i.placeholderClass,w);if(se&&!w)g.classList.add(i.replacedClass),setTimeout(()=>{g.classList.remove(i.replacedClass)},300)}}if(p){if(z._lastSelected!==Ve.selected){if(g.classList.toggle(i.selectedClass,Ve.selected),Ve.selected)g.setAttribute("aria-selected","true");else g.removeAttribute("aria-selected");z._lastSelected=Ve.selected}if(z._lastFocused!==Ve.focused)g.classList.toggle(i.focusedClass,Ve.focused),z._lastFocused=Ve.focused}let C=y-e.baseOffset+i.startPadding;if(z._lastOffset!==C)g.style.transform=i.translateProp+C+"px)",z._lastOffset=C;let X=L-i.gap;if(z._lastSize!==X)g.style[i.sizeProp]=X+"px",z._lastSize=X}}if(S!==null)o.appendChild(S);if(K>0&&Vn(H,K)){let b=H[0],T=H[K-1];for(let[A,y]of n)if(A<b||A>T)y.remove(),t.release(y),n.delete(A)}else for(let[b,T]of n)if(!Fn(H,K,b))T.remove(),t.release(T),n.delete(b);if(i.interactive)e.prevAriaTotal=e.totalItems;nn(a.commit,e)}function ht(e,t,o,r,s,n,i,a,_,p,c,K){if(_n(e,t,o,p,_.startPadding))Dn(e,r,s,n,i,a,_,p,c,K)}var vt=()=>{let e={},t=(n,i)=>{if(!e[n])e[n]=new Set;return e[n].add(i),()=>o(n,i)},o=(n,i)=>{e[n]?.delete(i)};return{on:t,off:o,emit:(n,i)=>{e[n]?.forEach((a)=>{try{a(i)}catch(_){console.error(`[vlist] Error in event handler for "${String(n)}":`,_)}})},clear:(n)=>{if(n)delete e[n];else for(let i in e)delete e[i]}}};var ln=2,an=(e=0)=>({velocity:0,sampleCount:0}),un=(e,t)=>{let o=performance.now(),r=e._lt??o,s=e._lp??t,n=o-r;if(e._lp=t,e._lt=o,n===0)return e.sampleCount=Math.min(e.sampleCount+1,5),e;if(n>100)return e.velocity=0,e.sampleCount=1,e;return e.velocity=Math.abs(t-s)/n,e.sampleCount=Math.min(e.sampleCount+1,5),e};function On(e){let{item:t}=e;if(t.height!==void 0&&typeof t.height==="number"){if(!Number.isFinite(t.height)||t.height<=0)throw Error(`vlist: item.height must be a positive number, got ${t.height}`)}if(t.width!==void 0&&typeof t.width==="number"){if(!Number.isFinite(t.width)||t.width<=0)throw Error(`vlist: item.width must be a positive number, got ${t.width}`)}if(t.estimatedHeight!==void 0){if(!Number.isFinite(t.estimatedHeight)||t.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${t.estimatedHeight}`)}if(t.estimatedWidth!==void 0){if(!Number.isFinite(t.estimatedWidth)||t.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${t.estimatedWidth}`)}if(t.gap!==void 0){if(typeof t.gap!=="number"||!Number.isFinite(t.gap)||t.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${t.gap}`)}if(e.overscan!==void 0){if(typeof e.overscan!=="number"||!Number.isFinite(e.overscan)||e.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${e.overscan}`)}let o=e.scroll;if(o?.mode!==void 0||o?.runway!==void 0)throw Error('vlist 3.0: scroll.mode and scroll.runway were removed; bounded mode is gone. Use "vlist" for huge lists or "vlist/native" for native scrolling.')}function Gn(e,t){let o=e==="horizontal"?"x":"y";if(t.some((s)=>s.name==="grid"))return{primary:o,cross:o==="x"?"y":"x"};return{primary:o}}function $n(e,t){let o=Gn(e.orientation,t),r=o.primary==="x",s=Kt(e.padding);return{axis:o,hasCrossAxis:o.cross!==void 0,overscan:e.overscan??et,reverse:e.reverse??!1,classPrefix:e.classPrefix??Rt,mainAxisPadding:qt(s,r),crossAxisPadding:Ut(s,r),startPadding:r?s.left:s.top,endPadding:r?s.right:s.bottom,crossPadStart:r?s.top:s.left,crossPadEnd:r?s.bottom:s.right,striped:e.item.striped||!1,gap:e.item.gap??0}}function Nn(e,t){if(t)return e.item.width??e.item.estimatedWidth??100;return e.item.height??e.item.estimatedHeight??40}function Bn(e){let t=[...e];return t.sort((o,r)=>(o.priority??50)-(r.priority??50)),t}function Wn(e){let t=new Set;for(let o of e){if(t.has(o.name))throw Error(`[vlist] Duplicate plugin: ${o.name}`);t.add(o.name)}for(let o of e)if(o.conflicts){for(let r of o.conflicts)if(t.has(r))throw Error(`[vlist] Plugin "${o.name}" conflicts with "${r}"`)}}function dn(e,t=[]){return Yn(e,t,Yt)}function Yn(e,t=[],o,r){if(On(e),o){if(typeof e.scroll?.scrollbar==="string")throw Error('vlist 3.0: scroll.scrollbar strings require "vlist/native"; use the scrollbar() plugin with "vlist".');if(e.orientation==="horizontal"&&getComputedStyle(pt(e.container)).direction==="rtl")throw Error('vlist: RTL horizontal lists require createVList from "vlist/native"');for(let Y of t)if(Y.name==="carousel"||Y.name==="sortable")throw Error(`vlist: ${Y.name} requires createVList from "vlist/native"`)}let s=$n(e,t),n=s.axis.primary==="x",i=Nn(e,n),a=s.gap,_=a>0?typeof i==="function"?(Y)=>i(Y)+a:i+a:i,p=typeof i==="number"?i:20,c=e.items?.length??0,K=s.striped?`${s.classPrefix}-item--odd`:"",H=vt(),m=sn(s.classPrefix,n,s.startPadding,s.crossPadStart,s.crossPadEnd,K,a,H),N=t.length>0?Bn(t):t;if(t.length>0)Wn(N);let M=pt(e.container),S=Zt(M,s.classPrefix,n,e.ariaLabel);if(e.scroll?.scrollbar==="none")S.viewport.classList.add(`${s.classPrefix}-viewport--no-scrollbar`);if(e.scroll?.gutter==="stable")S.viewport.classList.add(`${s.classPrefix}-viewport--gutter-stable`);let b=it(_,c);if(a>0){let Y=b.getTotalSize;b.getTotalSize=()=>{let h=Y();return h>0?h-a:0}}let T=jt(s.classPrefix),A=Math.ceil(4096/p)+s.overscan*2+8,y=Xt(A);y.totalItems=c;let L=e.items??[],D=()=>L,g=new Map,z=an(),C={velocity:0,reliable:!1},X={range:{start:0,end:-1}},B={scrollPosition:0,direction:"down"},W={scrollPosition:0},te=-1,se=-1,w=-1,I=null,P=en(N),G=new Map,x=[],u=[],q=[],F=null,U=null,j,pe,O=null,Z=null,l=null,E=null,d=null,V=null,R=null,k=null,re=!1,Q=!1,ce=null,ge=0,le=0,ve=null,J=null,oe=null,f=null,ee=null,fe=null,me=null,Ie=null,xe=null;y.containerSize=n?S.viewport.clientWidth:S.viewport.clientHeight,y.crossSize=n?S.viewport.clientHeight:S.viewport.clientWidth;function be(Y){if(U)U(Y);else{if(n)S.viewport.scrollLeft=Y;else S.viewport.scrollTop=Y;pe?.()}}let Se=Qt({sizeCache:b,getPixel:()=>y.scrollPosition,setPixel:be,getRenderOrigin:()=>y.baseOffset,getContainerSize:()=>y.containerSize,padding:s.mainAxisPadding});if(t.length>0){let Y={dom:S,sizeCache:b,scroll:Se,pool:T,config:s,emitter:H,template:e.item.template,registerMethod(h,de){G.set(h,de)},getMethod(h){return G.get(h)},registerClickHandler(h){x.push(h)},registerKeydownHandler(h){u.push(h)},registerDestroyHandler(h){q.push(h)},enableListboxRole(){let h=S.content.getAttribute("role");if(!h||h==="list")S.content.setAttribute("role","listbox"),S.content.setAttribute("tabindex","0");m.itemRole="option",m.interactive=!0},setSizeConfig(h){let de=it(h,y.totalItems),Pe=G.get("_setSizeCacheBase");if(Pe){let we=b.rebuild;Object.assign(b,de),b.rebuild=we,Pe(de.rebuild)}else Object.assign(b,de)},setScrollSource(h){U=h.write,j=h.onContentSize,re=!0},commitScroll(h){pe(h)},setBoundedWrap(h){xe=h},cancelScroll(){ke?.cancelScroll()},setVirtualTotalFn(h){F=h,m.ariaTotalFn=h},setIndexMapFn(h){m.indexMap=h},getItems:D,getItem(h){return l?l(h):L[h]},getState(){return y},rebuildSizeCache(){b.rebuild(y.totalItems)},updateContentSize:ie,setRenderFn(h,de){O=h,Z=de},renderIfNeeded(){Re()},forceRender(){Me()},setGetItemFn(h){l=h},setItemStateFn(h){E=h},getItemStateFn(){return E},get rawSizeSpec(){return i},scrollTo:be,shiftScroll(h){if(Ie?.shiftBy)Ie.shiftBy(h);else Y.scrollTo(y.scrollPosition+h)},smoothScrollTo(h,de,Pe,we){if(f)f(h,de,U??void 0,Pe,we);else Y.scrollTo(typeof h==="function"?h():h)},disableDefaultResize(){Q=!0},setScrollTarget(h){ce=h},setScrollToPosFn(h){ee=h},setScrollToIndexFn(h){fe=h},onScrollFrame:ue,onScrollIdle:he,removeItemById(h){if(d)return d(h);let de=L.findIndex((Pe)=>Pe.id===h);if(de===-1)return-1;return L.splice(de,1),y.totalItems=L.length,b.rebuild(y.totalItems),ae(),de},insertItemAt(h,de){if(V){V(h,de);return}L.splice(de,0,h),y.totalItems=L.length,b.rebuild(y.totalItems),ae()},setRemoveItemFn(h){d=h},setInsertItemFn(h){V=h},setUpdateItemFn(h){R=h},setGetIndexByIdFn(h){k=h},getRenderedElement(h){let de=G.get("_getRenderedElement");if(de)return de(h);return g.get(h)??null},setNavConfig(h){if(h.ud!==void 0)ge=h.ud;if(h.lr!==void 0)le=h.lr;if(h.scrollIndex)ve=h.scrollIndex;if(h.navigate)J=h.navigate;if(h.total)oe=h.total},getNavConfig:(()=>{let h={ud:0,lr:0,scrollIndex:null,navigate:null,total:null};return()=>(h.ud=ge,h.lr=le,h.scrollIndex=ve,h.navigate=J,h.total=oe,h)})()};for(let h of N)if(h.setup)try{h.setup(Y)}catch(de){H.emit("error",{error:de instanceof Error?de:Error(String(de)),context:`plugin:setup:${h.name}`})}}let Te=s.classPrefix+"--scrolling",Ce=!1,ye=e.scroll?.idleTimeout??Xe;function Ee(){if(B.scrollPosition=y.scrollPosition,n)B.direction=y.scrollDirection>0?"right":"left";else B.direction=y.scrollDirection>0?"down":"up";if(H.emit("scroll",B),un(z,y.scrollPosition),C.velocity=z.velocity,C.reliable=z.sampleCount>=ln,H.emit("velocity:change",C),y.startIndex!==te||y.prevRangeEnd!==se)te=y.startIndex,se=y.prevRangeEnd,X.range.start=y.startIndex,X.range.end=y.prevRangeEnd,H.emit("range:change",X)}function ie(Y,h=!0){if(Ie){if(h)Ie.refresh(Y);return}y.totalSize=Y;let de=Y+s.mainAxisPadding;if(j?.(de),h)S.content.style[n?"width":"height"]=de+"px"}function ae(){let Y=O?y.totalSize:b.getTotalSize();if(ie(Y,!O),Ie||O)return;r?.onContentSize(Y,H)}function ze(){if(!me)return;if((F?F():L.length)===0)return;let h=me;me=null,Le.scrollToIndex(h.index,h.alignOrOptions)}function Re(){if(ze(),O)O();else ht(y,b,s.overscan,T,S.content,e.item.template,D,g,m,P,l,E)}function ue(){if(!Ce)Ce=!0,S.root.classList.add(Te);if(Re(),bt(P.afterScroll,y.scrollPosition,y.scrollDirection),y.scrollPosition!==w)w=y.scrollPosition,Ee()}function he(){if(Ce)Ce=!1,S.root.classList.remove(Te);y.scrollDirection=0,on(P.idle),C.velocity=0,C.reliable=!1,H.emit("velocity:change",C),W.scrollPosition=y.scrollPosition,H.emit("scroll:idle",W)}function Me(){if(ze(),y.renderPending=!0,Z)Z();else ht(y,b,s.overscan,T,S.content,e.item.template,D,g,m,P,l,E);if(bt(P.afterScroll,y.scrollPosition,y.scrollDirection),y.scrollPosition!==w){if(w=y.scrollPosition,Ee(),I!==null)clearTimeout(I);I=setTimeout(he,ye)}}let Ae=re?!1:e.scroll?.wheel!==!1,ke;if(re&&xe)throw Error("vlist: page() is not compatible with the carousel plugin — bounded page-mode scrolling is not implemented yet.");if(!re&&(o||xe))Ie=(o??r.wrap)({state:y,sizeCache:b,viewport:S.viewport,content:S.content,isX:n,wheelEnabled:Ae,idleTimeout:ye,...ce?{scrollTarget:ce}:{},mainAxisPadding:s.mainAxisPadding,...xe?{wrap:xe}:{},onFrame:ue,onIdle:he}),ke=Ie,U=(Y)=>Ie.setLogical(Y);else{let Y=(re?Jt:r.native)({state:y,viewport:S.viewport,isX:n,wheelEnabled:Ae,idleTimeout:ye,...ce?{scrollTarget:ce}:{},onFrame:ue,onIdle:he});ke=Y,pe=Y.commitScroll}f=ke.smoothScrollTo;function Ge(Y){let de=Y.target.closest("[data-index]");if(!de)return null;let Pe=parseInt(de.getAttribute("data-index"),10);if(Number.isNaN(Pe))return null;let we=G.get("_layoutToDataIndex"),Oe;if(we){let $e=we(Pe);if($e<0)return null;let je=G.get("_getItem");Oe=je?je($e):l?l($e):L[$e]}else Oe=l?l(Pe):L[Pe];if(Oe===void 0)return null;return{item:Oe,index:Pe}}function Fe(Y){for(let de=0;de<x.length;de++)x[de](Y);let h=Ge(Y);if(h)H.emit("item:click",{item:h.item,index:h.index,event:Y})}function Ne(Y){let h=Ge(Y);if(h)H.emit("item:dblclick",{item:h.item,index:h.index,event:Y})}function Be(Y){let h=Ge(Y);if(h)H.emit("item:contextmenu",{item:h.item,index:h.index,event:Y})}function He(Y){let h=Y.target?.tagName;if((h==="INPUT"||h==="TEXTAREA"||h==="SELECT")&&!((Y.ctrlKey||Y.metaKey)&&(Y.key==="f"||Y.key==="F")))return;for(let de=0;de<u.length;de++)u[de](Y)}if(S.content.addEventListener("click",Fe),S.content.addEventListener("dblclick",Ne),S.content.addEventListener("contextmenu",Be),u.length>0)S.root.addEventListener("keydown",He);let _e=null;if(!Q)setTimeout(()=>{if(y.destroyed)return;_e=new ResizeObserver((h)=>{for(let de of h){let{width:Pe,height:we}=de.contentRect,Oe=n?Pe:we,$e=n?we:Pe;if(Math.abs(Oe-y.containerSize)<1&&Math.abs($e-y.crossSize)<1)continue;if(y.containerSize=Oe,y.crossSize=$e,y.resizeCapacity(Oe,p,s.overscan),Ie)Ie.refresh(b.getTotalSize());Me(),rn(P.resize,Pe,we),H.emit("resize",{width:Pe,height:we})}}),_e.observe(S.viewport)},0);y.resizeCapacity(y.containerSize,p,s.overscan),ae(),y.initialized=!0;let ne=null;if(e.defer)ne=requestAnimationFrame(()=>{if(ne=null,!y.destroyed)Re()});else Re();if(!re)ke.attach();let Le={get element(){return S.root},get items(){return L},get total(){return F?F():L.length},setItems(Y){L=[...Y],y.totalItems=L.length,b.rebuild(y.totalItems),ae(),Me()},appendItems(Y){L.push(...Y),y.totalItems=L.length,b.rebuild(y.totalItems),ae(),Me()},prependItems(Y){L.unshift(...Y),y.totalItems=L.length,b.rebuild(y.totalItems),ae(),Me()},updateItem(Y,h){if(R){if(!R(Y,h))return}else{let de=L.findIndex((Pe)=>Pe.id===Y);if(de===-1)return;L[de]={...L[de],...h}}Me()},insertItem(Y,h){if(V)V(Y,h??y.totalItems);else{if(h===void 0)L.push(Y);else L.splice(h,0,Y);y.totalItems=L.length,b.rebuild(y.totalItems),ae()}Me()},removeItem(Y){if(d){if(d(Y)<0)return}else{let h=L.findIndex((de)=>de.id===Y);if(h===-1)return;L.splice(h,1),y.totalItems=L.length,b.rebuild(y.totalItems),ae()}Me()},removeItems(Y){if(d){let we=0;for(let Oe of Y)if(d(Oe)>=0)we++;if(we>0)Me();return we}let h=new Set(Y),de=L.length;L=L.filter((we)=>!h.has(we.id));let Pe=de-L.length;if(Pe>0)y.totalItems=L.length,b.rebuild(y.totalItems),ae(),y.renderPending=!0,Re();return Pe},getItemAt(Y){if(m.indexMap)return L[Y];return l?l(Y):L[Y]},getIndexById(Y){if(k)return k(Y);return L.findIndex((h)=>h.id===Y)},scrollToIndex(Y,h="start"){let de=F?F():L.length;if(de===0){me={index:Y,alignOrOptions:h};return}let Pe=Math.max(0,Math.min(Y,de-1)),we=typeof h==="string"?h:h.align??"start",Oe=typeof h==="object"?h.behavior:void 0,$e=typeof h==="object"?h.duration:void 0,je=typeof h==="object"?h.easing:void 0;if(fe&&fe(Pe,we,Oe,$e,je)!==!1)return;let dt=b.getOffset(Pe),At=b.getSize(Pe),Qe=y.containerSize,Cn=b.getTotalSize(),wt=s.mainAxisPadding,Mn=Math.max(0,Cn+wt-Qe),We;if(ee)We=ee(Pe,b,Qe,de,we);else{let Pn=s.startPadding;switch(we){case"center":We=Pn+dt-(Qe-At)/2;break;case"end":We=dt+At+wt-Qe;break;default:We=dt}We=Math.max(0,Math.min(We,Mn))}if(Oe==="smooth")ke.smoothScrollTo(We,$e??Dt,U??void 0,je);else be(We)},getScrollPosition(){return Se.getPixelEquivalent()},on:H.on.bind(H),off:H.off.bind(H),destroy(){if(y.destroyed)return;if(y.destroyed=!0,Ce)Ce=!1,S.root.classList.remove(Te);if(ne!==null)cancelAnimationFrame(ne),ne=null;if(I!==null)clearTimeout(I),I=null;ke.detach(),_e?.disconnect(),S.content.removeEventListener("click",Fe),S.content.removeEventListener("dblclick",Ne),S.content.removeEventListener("contextmenu",Be),S.root.removeEventListener("keydown",He);let Y=[];for(let h of q)try{h()}catch(de){Y.push(de instanceof Error?de:Error(String(de)))}for(let h of N)if(h.destroy)try{h.destroy()}catch(de){Y.push(de instanceof Error?de:Error(String(de)))}for(let[,h]of g)h.remove();if(g.clear(),T.clear(),S.root.remove(),H.emit("destroy",void 0),H.clear(),Y.length>0)for(let h of Y)console.error("vlist: error during destroy:",h)}};for(let[Y,h]of G)Le[Y]=h;return Le}var st=(e)=>e==null?0:typeof e==="function"?e():e;function St(e){let t=e?.scrollPadding,o,r;return{name:"page",priority:5,setup(s){let{dom:n,sizeCache:i,config:a,emitter:_}=s,p=a.axis.primary==="x",c=window,K=s.getState();if(s.disableDefaultResize(),n.root.style.overflow="visible",n.root.style.height="auto",p)n.viewport.style.overflowX="visible",n.viewport.style.overflowY="visible";else n.viewport.style.overflow="visible";n.viewport.classList.remove(`${a.classPrefix}-viewport--custom-scrollbar`);let H=!1,m=!1;s.setScrollSource({onContentSize(b){if(b>ct&&!m){let T=`vlist: page() native document size ${b}px exceeds the ${ct}px limit. Use the viewport-scrolled default for larger lists. See https://vlist.io/docs/rfcs/RFC-014-Scroll-Input-Model`;if(!H)throw r?.(),o?.(),n.root.remove(),Error(T);m=!0,console.warn(T)}H=!0},write(b){let T=n.viewport.getBoundingClientRect(),A=(p?T.left+c.scrollX:T.top+c.scrollY)+b;if(p)c.scrollTo({left:A,top:c.scrollY,behavior:"instant"});else c.scrollTo({left:c.scrollX,top:A,behavior:"instant"});s.commitScroll(b)}}),K.containerSize=p?c.innerWidth:c.innerHeight,K.crossSize=p?c.innerHeight:c.innerWidth;let N=()=>{let b=n.viewport.getBoundingClientRect(),T=Math.max(0,p?-b.left:-b.top);if(Math.abs(T-s.scroll.getPixelEquivalent())<0.5)return;s.commitScroll(T)};c.addEventListener("scroll",N,{passive:!0}),r=()=>c.removeEventListener("scroll",N);let{innerWidth:M,innerHeight:S}=c,v=()=>{let{innerWidth:b,innerHeight:T}=c;if((p?Math.abs(b-M):Math.abs(T-S))<1)return;M=b,S=T,K.containerSize=p?b:T,K.crossSize=p?T:b,s.forceRender(),_.emit("resize",{width:b,height:T})};if(c.addEventListener("resize",v),o=()=>c.removeEventListener("resize",v),t)s.setScrollToPosFn((b,T,A,y,L)=>{let D=st(p?t.left:t.top),g=st(p?t.right:t.bottom);if(y===0)return 0;let z=Math.max(0,Math.min(b,y-1)),C=T.getOffset(z),X=T.getSize(z),B=T.getTotalSize(),W=Math.max(0,B-A+g),te;switch(L){case"center":te=C-D-(A-D-g-X)/2;break;case"end":te=C-A+X+g;break;default:te=C-D}return Math.max(-D,Math.min(te,W))}),s.registerMethod("_scrollItemIntoView",(b)=>{let T=p?c.innerWidth:c.innerHeight,A=st(p?t.left:t.top),y=st(p?t.right:t.bottom),L=n.viewport.getBoundingClientRect(),D=p?c.scrollX:c.scrollY,g=p?L.left:L.top,z=g+D,C=i.getOffset(b),X=i.getSize(b),B=g+C,W=T-y,te=D;if(B<A)te=z+C-A;else if(B+X>W)te=z+C+X-W;if(te!==D)if(p)c.scrollTo({left:te,top:c.scrollY,behavior:"instant"});else c.scrollTo({left:c.scrollX,top:te,behavior:"instant"})});s.registerDestroyHandler(()=>{r?.(),o?.()})},destroy(){r?.(),o?.(),r=void 0,o=void 0}}}function yt(e){let t=e?.gap??0,o=null,r=null,s,n,i,a,_,p=new Map,c=new Set,K=new WeakMap,H=0,m=!1,N=!1,M=!1,S=2;function v(g){return p.get(g)??_}function b(g){return p.has(g)&&!c.has(g)}function T(g){if(!r||s.destroyed)return;if(g===void 0){if(p.size===0)return;p.clear(),c.clear(),r.rebuildSizeCache(),D()}else{if(!p.has(g))return;c.add(g)}r.forceRender()}function A(){return Math.max(0,r.sizeCache.getTotalSize()+r.config.mainAxisPadding-s.containerSize)}function y(){let g=A();return g>0&&n.getPixelEquivalent()>=g-S}function L(){let g=A();if(g>n.getPixelEquivalent())r.scrollTo(g)}function D(){r.updateContentSize(r.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(g){if(n=g.scroll,r=g,s=g.getState(),i=g.config.axis.primary==="x",a=i?"width":"height",t===0)t=g.config.gap;if(_=typeof g.rawSizeSpec==="function"?g.rawSizeSpec(0)+t:g.rawSizeSpec+t,g.setSizeConfig(v),t>0){let W=g.sizeCache.getTotalSize;g.sizeCache.getTotalSize=()=>{let te=W();return te>0?te-t:0}}o=new ResizeObserver((W)=>{if(s.destroyed||!r)return;let te=!1,se=g.sizeCache.indexAtOffset(n.getPixelEquivalent());for(let x of W){let u=x.target,q=K.get(u);if(q===void 0)continue;if(u.getAttribute("data-index")!==String(q)){o.unobserve(u);continue}if(b(q))continue;let F=x.borderBoxSize[0];if(!F)continue;let U=i?F.inlineSize:F.blockSize;if(U<=0)continue;let j=U+t,pe=p.has(q),O=p.get(q)??_;if(p.set(q,j),c.delete(q),!pe||j!==O)te=!0;if(q<se&&j!==O)H+=j-O;o.unobserve(u),u.style[a]=`${U}px`}if(!te)return;let w=y();if(g.rebuildSizeCache(),H)g.shiftScroll(H),H=0;let I=s.scrollDirection!==0,P=s.totalItems>0&&s.prevRangeEnd>=s.totalItems-1,G=N&&!M;if(G||w||P||!I){if(D(),m=!1,G||w)L()}else m=!0;g.forceRender()}),g.setScrollToIndexFn((W,te,se,w,I)=>{let P=W>=s.totalItems-1&&te==="end";if(N=P,M=!1,!P)return!1;let G=g.config.mainAxisPadding,x=()=>{let u=g.sizeCache.getTotalSize();return Math.max(0,u+G-s.containerSize)};if(se==="smooth")M=!0,g.smoothScrollTo(x,w??300,I,()=>{M=!1});else g.scrollTo(x())});let z=()=>{N=!1},C=g.dom.viewport;C.addEventListener("wheel",z,{passive:!0}),C.addEventListener("touchstart",z,{passive:!0}),g.registerDestroyHandler(()=>{C.removeEventListener("wheel",z),C.removeEventListener("touchstart",z)});let X=g.dom.content,B=(W)=>{let te=W.target;if(!te||te===X)return;let se=te.closest("[data-index]");if(!se||se.parentNode!==X)return;let w=Number(se.getAttribute("data-index"));if(b(w))T(w)};X.addEventListener("load",B,!0),X.addEventListener("error",B,!0),g.registerDestroyHandler(()=>{X.removeEventListener("load",B,!0),X.removeEventListener("error",B,!0)}),g.registerMethod("isMeasured",b),g.registerMethod("remeasure",T),g.registerMethod("setMeasuredSize",(W,te)=>{p.set(W,te)}),g.registerMethod("getMeasuredCount",()=>p.size),g.registerDestroyHandler(()=>{if(o)o.disconnect(),o=null})},hooks:{onCommit(g){if(!o||!r)return;for(let z=0;z<g.visibleCount;z++){let C=g.visibleIndices[z];if(b(C))continue;let X=r.getRenderedElement(C);if(!X)continue;X.style[a]="",K.set(X,C),o.observe(X)}},onIdle(){if(!r||!m)return;let g=y();if(D(),m=!1,g)L(),r.forceRender()}},destroy(){if(o)o.disconnect(),o=null;p.clear(),c.clear(),N=!1,M=!1,r=null}}}var cn=(e={})=>{let{chunkSize:t=100,maxCachedItems:o=5000,evictionBuffer:r=200,onEvict:s}=e,n=new Map,i=0,a=0,_=(I)=>{let P=n.get(I);if(!P)P={items:Array(t),count:0,lastAccess:Date.now()},n.set(I,P);else P.lastAccess=Date.now();return P},p=(I)=>Math.floor(I/t),c=(I)=>I%t,K=()=>i,H=(I)=>{i=I},m=(I)=>{if(I<0||I>=i)return;let P=p(I),G=n.get(P);if(!G)return;return G.items[c(I)]},N=(I)=>{if(I<0||I>=i)return!1;let P=p(I),G=n.get(P);if(!G)return!1;return G.items[c(I)]!==void 0},M=(I,P)=>{let G=p(I),x=_(G),u=c(I),q=x.items[u]===void 0;if(x.items[u]=P,q)x.count++,a++;if(I>=i)i=I+1},S=(I,P)=>{for(let G=0;G<P.length;G++){let x=P[G];if(x!==void 0)M(I+G,x)}},v=(I,P)=>{if(I<0||I>i)return;let G=p(I),x=Array.from(n.keys()).filter((j)=>j>=G).sort((j,pe)=>j-pe),u=[];for(let j of x){let pe=n.get(j),O=j*t;for(let Z=0;Z<t;Z++){if(pe.items[Z]===void 0)continue;let l=O+Z;if(l<I)continue;u.push({oldIndex:l,item:pe.items[Z]})}}for(let{oldIndex:j}of u){let pe=p(j),O=n.get(pe);if(!O)continue;let Z=c(j);if(O.items[Z]!==void 0){if(O.items[Z]=void 0,O.count--,a--,O.count===0)n.delete(pe)}}i++;for(let{oldIndex:j,item:pe}of u){let O=j+1,Z=p(O),l=_(Z),E=c(O);l.items[E]=pe,l.count++,a++}let q=p(I),F=_(q),U=c(I);F.items[U]=P,F.count++,a++},b=(I)=>{if(I<0||I>=i)return!1;let P=p(I),G=n.get(P),x=c(I);if(!(G!==void 0&&G.items[x]!==void 0))return!1;let q=P,F=Array.from(n.keys()).filter((j)=>j>=q).sort((j,pe)=>j-pe),U=[];for(let j of F){let pe=n.get(j),O=j*t;for(let Z=0;Z<t;Z++){if(pe.items[Z]===void 0)continue;let l=O+Z;if(l<=I)continue;U.push({oldIndex:l,item:pe.items[Z]})}}if(G.items[x]=void 0,G.count--,a--,G.count===0)n.delete(P);for(let{oldIndex:j}of U){let pe=p(j),O=n.get(pe);if(!O)continue;let Z=c(j);if(O.items[Z]!==void 0){if(O.items[Z]=void 0,O.count--,a--,O.count===0)n.delete(pe)}}for(let{oldIndex:j,item:pe}of U){let O=j-1,Z=p(O),l=_(Z),E=c(O);l.items[E]=pe,l.count++,a++}return i--,!0},T=(I,P)=>{let G=[];for(let x=I;x<=P&&x<i;x++)G.push(m(x));return G},A=(I,P)=>{for(let G=I;G<=P&&G<i;G++)if(!N(G))return!1;return!0},y=()=>{let I=[],P=null,G=Array.from(n.keys()).sort((x,u)=>x-u);for(let x of G){let u=n.get(x);if(!u)continue;let q=x*t;for(let F=0;F<t;F++){let U=q+F;if(U>=i)break;if(u.items[F]!==void 0)if(P===null)P={start:U,end:U};else if(U===P.end+1)P.end=U;else I.push(P),P={start:U,end:U};else if(P!==null)I.push(P),P=null}}if(P!==null)I.push(P);return I},L=(I,P)=>{let G=[],x=null;for(let u=I;u<=P&&u<i;u++)if(!N(u))if(x===null)x={start:u,end:u};else x.end=u;else if(x!==null)G.push(x),x=null;if(x!==null)G.push(x);return G},D=(I)=>n.has(I),g=(I)=>{let P=n.get(I);if(!P)return!1;let G=I*t,x=Math.min(t,i-G);return P.count>=x},z=(I)=>{let P=n.get(I);if(P)P.lastAccess=Date.now()},C=(I,P)=>{if(I>P||n.size===0)return;let G=Date.now(),x=p(Math.max(0,I)),u=p(Math.min(i-1,P));for(let q=x;q<=u;q++){let F=n.get(q);if(F)F.lastAccess=G}},X=(I,P)=>{if(a<=o)return 0;let G=Math.max(0,I-r),x=Math.min(i-1,P+r),u=p(G),q=p(x),F=0,U=[];for(let[j,pe]of n)if(j<u||j>q)F+=pe.count,U.push(j),a-=pe.count,n.delete(j);if(F>0&&s)s(F,U);return F},B=()=>{if(a<=o)return 0;let I=Array.from(n.entries()).sort(([,x],[,u])=>x.lastAccess-u.lastAccess),P=0,G=[];for(let[x,u]of I){if(a<=o)break;P+=u.count,a-=u.count,G.push(x),n.delete(x)}if(P>0&&s)s(P,G);return P},W=()=>({totalItems:i,cachedItems:a,cachedChunks:n.size,chunkSize:t,maxCachedItems:o,memoryEfficiency:i>0?1-a/i:1}),te=()=>a,se=()=>{n.clear(),a=0};return{chunkSize:t,maxCachedItems:o,getTotal:K,setTotal:H,get:m,has:N,set:M,setRange:S,insert:v,delete:b,getRange:T,isRangeLoaded:A,getLoadedRanges:y,findUnloadedRanges:L,getChunkIndex:p,isChunkLoaded:D,isChunkFullyLoaded:g,touchChunk:z,touchChunksForRange:C,evictDistant:X,evictToLimit:B,getStats:W,getCachedCount:te,clear:se,reset:()=>{se(),i=0}}};var mn=(e={})=>{let{maskCharacter:t=Ot,maxSampleSize:o=Gt}=e,r=[],s=!1,n=(c)=>{if(s||c.length===0)return;let K=Math.min(c.length,o);for(let H=0;H<K;H++){let m=c[H];if(!m||typeof m!=="object")continue;let N={},M=!1;for(let[S,v]of Object.entries(m)){if(S.startsWith("_")||S==="id")continue;N[S]=String(v??"").length,M=!0}if(M)r.push(N)}s=!0},i=()=>s,a=(c)=>{let K={id:`${De}${c}`,[ft]:!0,_index:c};if(r.length===0)return K.label=t.repeat(12),K;let H=r[c%r.length];for(let[m,N]of Object.entries(H))K[m]=t.repeat(Math.max(1,N));return K};return{analyzeStructure:n,hasAnalyzedStructure:i,generate:a,generateRange:(c,K)=>{let H=[];for(let m=c;m<=K;m++)H.push(a(m));return H},clear:()=>{r=[],s=!1}}},lt=(e)=>{if(!e||typeof e!=="object")return!1;return e[ft]===!0};var Kn=50,fn=(e={})=>{let{adapter:t,initialItems:o,initialTotal:r,storage:s,placeholder:n,pageSize:i=Kn,maxConcurrent:a=0,onStateChange:_,onDataChange:p,onItemsLoaded:c,onItemsEvicted:K,onLoadError:H}=e,m=cn({...s,onEvict:(J,oe)=>{K?.(J),X(),C()}}),N=null,M=()=>{if(!N)N=mn(n);return N},S=new Map,v=!1,b,T=!0,A,y,L=[],D=0,g=new Map,z=()=>{for(let J of g.values())J[1].abort();g.clear()},C=()=>{_?.(x())},X=()=>{p?.()},B=()=>{S.clear();let J=m.getLoadedRanges();for(let oe of J)for(let f=oe.start;f<=oe.end;f++){let ee=m.get(f);if(ee&&!lt(ee))S.set(ee.id,f)}},W=(J,oe)=>{if(!lt(oe))S.set(oe.id,J)},te=(J)=>{S.delete(J)},se=(J,oe)=>`${J}-${oe}`,w=()=>m.getTotal(),I=()=>m.getCachedCount(),P=()=>v,G=()=>T,x=()=>({total:m.getTotal(),cached:m.getCachedCount(),isLoading:v,pendingRanges:L,error:b,hasMore:T,cursor:A}),u=()=>m,q=()=>M(),F=(J)=>{let oe=m.get(J);if(oe!==void 0)return oe;if(J>=0&&J<m.getTotal())return M().generate(J);return},U=(J)=>{let oe=S.get(J);if(oe===void 0)return;return m.get(oe)},j=(J)=>S.get(J)??-1,pe=(J)=>{let oe=m.get(J);return oe!==void 0&&!lt(oe)},O=(J,oe)=>{let f=[],ee=m.getTotal();m.touchChunksForRange(J,Math.min(oe,ee-1));for(let fe=J;fe<=oe&&fe<ee;fe++){let me=m.get(fe);if(me!==void 0)f.push(me);else f.push(M().generate(fe))}return f},Z=(J)=>{m.setTotal(J),T=m.getCachedCount()<J,X(),C()},l=(J,oe=0,f)=>{if(t&&J.length>0){let ee=M();if(!ee.hasAnalyzedStructure())ee.analyzeStructure(J)}for(let ee=0;ee<J.length;ee++){let fe=J[ee];if(fe!==void 0){let me=oe+ee;m.set(me,fe),W(me,fe)}}if(f!==void 0)m.setTotal(f);else if(oe+J.length>m.getTotal())m.setTotal(oe+J.length);if(m.getCachedCount()>=m.getTotal()&&m.getTotal()>0)T=!1;X(),C(),c?.(J,oe,m.getTotal())},E=(J,oe)=>{let f=m.get(J);if(!f)return!1;let ee=f.id,fe={...f,...oe};if(m.set(J,fe),oe.id!==void 0&&oe.id!==ee)te(ee);return W(J,fe),X(),C(),!0},d=(J,oe)=>{m.insert(oe,J),B(),z(),X(),C()},V=(J)=>{let oe=S.get(J);if(oe===void 0)return!1;if(!m.delete(oe))return!1;return B(),z(),X(),C(),!0},R=async(J,oe)=>{if(!t)return;let f=m.chunkSize,ee=Math.floor(J/f),fe=Math.floor(oe/f),me=f*2;for(let[be,Se]of g){let Te=be.indexOf("-"),Ce=parseInt(be.slice(0,Te),10);if(Math.abs(Ce-J)>me)Se[1].abort(),g.delete(be)}let Ie=[],xe=[];for(let be=ee;be<=fe;be++){let Se=be*f,Te=Se+f-1,Ce=se(Se,Te);if(m.isChunkFullyLoaded(be))continue;let Ee=g.get(Ce);if(Ee)xe.push(Ee[0]);else Ie.push({start:Se,end:Te})}if(Ie.length===0){if(xe.length>0)await Promise.all(xe);return}if(a>0){let be=g.size+Ie.length;if(be>a){let Se=(J+oe)/2,Te=Math.min(be-a,g.size);while(Te>0){let ye=null,Ee=-1,ie=null;for(let[ae,ze]of g){let Re=ae.indexOf("-"),ue=parseInt(ae.slice(0,Re),10),he=parseInt(ae.slice(Re+1),10),Me=Math.abs((ue+he)/2-Se);if(Me>Ee)Ee=Me,ye=ae,ie=ze[1]}if(ye)ie.abort(),g.delete(ye);Te--}let Ce=a-g.size;if(Ie.length>Ce)Ie.sort((ye,Ee)=>{let ie=Math.abs((ye.start+ye.end)/2-Se),ae=Math.abs((Ee.start+Ee.end)/2-Se);return ie-ae}),Ie.length=Math.max(0,Ce)}}if(Ie.length===0){if(xe.length>0)await Promise.all(xe);return}for(let be of Ie){let Se=se(be.start,be.end),Te=new AbortController,Ce=(async()=>{L.push(be),v=!0,b=void 0,C();try{let ye=be.end-be.start+1,Ee={offset:be.start,limit:ye,cursor:be.start===y?A:void 0,signal:Te.signal},ie=await t.read(Ee);if(l(ie.items,be.start,ie.total),ie.cursor)A=ie.cursor,y=be.start+ie.items.length;let ae=be.start+ie.items.length;if(ae>=D){if(D=ae,ie.hasMore!==void 0)T=ie.hasMore;else if(ie.total!==void 0)T=ae<ie.total}}catch(ye){if(ye?.name==="AbortError")return;b=ye instanceof Error?ye:Error(String(ye)),H?.(b,be)}finally{g.delete(Se);let ye=L.findIndex((Ee)=>Ee.start===be.start&&Ee.end===be.end);if(ye>=0)L.splice(ye,1);v=g.size>0,C()}})();g.set(Se,[Ce,Te]),xe.push(Ce)}await Promise.all(xe)},k=async(J,oe)=>{if(m.isRangeLoaded(J,oe))return;await R(J,oe)},re=async()=>{if(!t)return;await R(0,i-1)},Q=async()=>{if(!t||v||!T)return!1;let J=m.getCachedCount(),oe=m.getTotal(),f=J,ee=Math.min(f+i-1,oe>0?oe-1:f+i-1);if(f>=oe&&oe>0)return T=!1,!1;return await R(f,ee),m.getCachedCount()>J},ce=async()=>{if(m.clear(),S.clear(),N)N.clear();z(),L=[],v=!1,A=void 0,y=void 0,T=!0,D=0,b=void 0,X(),C()},ge=(J,oe)=>{if(m.evictDistant(J,oe)>0)B()},le=()=>{m.clear(),S.clear(),A=void 0,y=void 0,b=void 0,L=[],v=!1,X(),C()},ve=()=>{if(m.reset(),S.clear(),N)N.clear();A=void 0,y=void 0,T=!0,D=0,b=void 0,L=[],v=!1,X(),C()};if(o&&o.length>0)l(o,0,r??o.length);else if(r!==void 0)m.setTotal(r),X(),C();return{getState:x,getTotal:w,getCached:I,getIsLoading:P,getHasMore:G,getStorage:u,getPlaceholders:q,getItem:F,getItemById:U,getIndexById:j,isItemLoaded:pe,getItemsInRange:O,setTotal:Z,setItems:l,updateItem:E,insertItem:d,removeItem:V,loadRange:R,ensureRange:k,loadInitial:re,loadMore:Q,reload:ce,evictDistant:ge,clear:le,reset:ve}};function It(e){let{adapter:t,total:o,autoLoad:r=!0,storage:s}=e,n=e.loading?.cancelThreshold??_t,i=e.loading?.preloadThreshold??Ht,a=e.loading?.preloadAhead??kt,_=e.loading?.maxConcurrent??Ft,p,c,K,H,m,N,M=null,S=null,v=null,b=0,T=!1,A=null,y=mt,L=-1,D=-1,g=-1,z=-1,C=s?.chunkSize??tt,X=()=>{if(M=null,S!==null)clearTimeout(S),S=null},B=(x,u)=>p.ensureRange(x,u),W=(x,u=tt)=>{H.emit("load:start",{offset:x,limit:u})},te=(x)=>{H.emit("error",{error:x,context:"ensureRange"})},se=()=>{M=null;let x={start:c.startIndex,end:c.startIndex+Math.max(0,c.visibleCount-1)};if(x.end<x.start)return;B(x.start,x.end).catch(te)},w=()=>{if(A!==null)clearTimeout(A),A=null},I=()=>{if(c.destroyed)return;let x=p.getTotal();if(c.visibleCount<=0||c.startIndex>=x)return;let u=Math.min(c.startIndex+c.visibleCount-1,x-1);if(u<c.startIndex)return;B(c.startIndex,u).catch(te)},P=()=>{if(A!==null||c.destroyed)return;A=setTimeout(()=>{A=null,I()},y),y=Math.min(y*2,Vt)},G=()=>{w(),y=mt};return{name:"data",priority:20,setup(x){c=x.getState(),K=x.sizeCache,H=x.emitter,m=x.dom,N=x.forceRender.bind(x);let u=null;x.setVirtualTotalFn(()=>u?.getTotal()??0),x.setGetIndexByIdFn((F)=>u?.getIndexById(F)??-1),p=u=fn({adapter:t,...o!==void 0&&{initialTotal:o},pageSize:s?.chunkSize??tt,maxConcurrent:_,...s&&{storage:{...s.chunkSize!==void 0&&{chunkSize:s.chunkSize},...s.maxCachedItems!==void 0&&{maxCachedItems:s.maxCachedItems},...s.evictionBuffer!==void 0&&{evictionBuffer:s.evictionBuffer}}},onDataChange:()=>{if(c.initialized){let F=p.getTotal(),U=p.getCached();if(c.totalItems=F,F!==L||U!==D)L=F,D=U,K.rebuild(F);x.updateContentSize(K.getTotalSize()),x.renderIfNeeded()}},onItemsLoaded:(F)=>{if(G(),c.initialized)x.updateContentSize(K.getTotalSize()),N(),H.emit("load:end",{items:F,total:p.getTotal()})},onLoadError:(F)=>{if(H.emit("error",{error:F,context:"load"}),c.initialized)x.renderIfNeeded();P()}}),x.setGetItemFn((F)=>p.getItem(F)),x.setRemoveItemFn((F)=>{let U=p.getIndexById(F);if(U<0)return-1;if(!p.removeItem(F))return-1;return U}),x.setInsertItemFn((F,U)=>{p.insertItem(F,U)}),x.setUpdateItemFn((F,U)=>{let j=p.getIndexById(F);if(j<0)return!1;return p.updateItem(j,U)}),x.registerMethod("reload",async()=>{if(M=null,g=-1,z=-1,G(),x.forceRender(),await p.reload(),x.scrollTo(0),r)W(0),await p.loadInitial(),x.forceRender()}),x.registerMethod("loadVisibleRange",async()=>{M=null,x.forceRender();let F=p.getTotal();if(c.visibleCount>0&&c.startIndex<F){let U=Math.min(c.startIndex+c.visibleCount-1,F-1);W(c.startIndex,U-c.startIndex+1),await B(c.startIndex,U)}}),x.registerMethod("loadInitial",async()=>{W(0),await p.loadInitial(),x.forceRender()}),x.registerMethod("getTotal",()=>p.getTotal()),x.registerMethod("setTotal",(F)=>{p.setTotal(F)}),x.registerMethod("_getTotal",()=>p.getTotal()),x.registerMethod("_setTotal",(F)=>{p.setTotal(F)}),x.registerMethod("_cancelAutoLoad",()=>{T=!0}),x.registerMethod("_getLoadedItem",(F)=>p.getStorage().get(F)),x.registerMethod("_getItem",(F)=>p.getItem(F)),x.registerMethod("_getLoadedCount",()=>p.getCached()),H.on("load:start",()=>{m.root.setAttribute("aria-busy","true")}),H.on("load:end",()=>{m.root.removeAttribute("aria-busy")}),x.registerDestroyHandler(()=>{if(v!==null)clearTimeout(v),v=null;X(),w()}),H.on("velocity:change",({velocity:F})=>{b=Math.abs(F)});let q=()=>{if(c.destroyed)return;G(),I(),se()};if(window.addEventListener("online",q),x.registerDestroyHandler(()=>{window.removeEventListener("online",q)}),r)queueMicrotask(()=>{if(T)return;W(0),p.loadInitial().catch((F)=>{H.emit("error",{error:F,context:"loadInitial"})})});else if(o!==void 0)p.setTotal(o)},hooks:{onAfterScroll(){if(c.destroyed)return;let x=c.startIndex+Math.max(0,c.visibleCount-1);if(b>n){if(S!==null)clearTimeout(S),S=null;M={start:c.startIndex,end:x};return}if(b>i){let F=Math.floor(c.startIndex/C),U=Math.floor(x/C);if(F!==g||U!==z){if(g=F,z=U,x>=c.startIndex)B(c.startIndex,x).catch(te)}let j=c.startIndex,pe=x,O=c.scrollDirection;if(O>0)pe=Math.min(pe+a,p.getTotal()-1);else if(O<0)j=Math.max(0,j-a);if(M={start:j,end:pe},S!==null)clearTimeout(S);S=setTimeout(()=>{if(S=null,c.destroyed||!M)return;let{start:Z,end:l}=M;if(M=null,l>=Z)B(Z,l).catch(te)},100);return}X();let u=Math.floor(c.startIndex/C),q=Math.floor(x/C);if(u!==g||q!==z){if(g=u,z=q,x>=c.startIndex)B(c.startIndex,x).catch(te)}},onIdle(){if(c.destroyed)return;b=0,g=-1,z=-1,se(),X()},onResize(){if(c.destroyed)return;let x=p.getTotal();if(x<=0)return;if(c.visibleCount<=0||c.startIndex>=x)return;let u=Math.min(c.startIndex+c.visibleCount-1,x-1);if(u<c.startIndex)return;W(c.startIndex,u-c.startIndex+1),B(c.startIndex,u).catch(te)}},destroy(){if(v!==null)clearTimeout(v);X(),w()}}}var gn=(e)=>{let t=Math.max(1,Math.floor(e.columns)),o=e.gap??0,r=e.isHeaderFn,s={row:0,col:0},n=(M)=>{if(M<=0)return 0;if(!r)return Math.ceil(M/t);let S=0,v=0,b=0;for(let T=0;T<M;T++)if(r(T)){if(b++,v)S++,v=0;S++,v=0}else if(v++,v>=t)S++,v=0;if(v)S++;return S},i=(M)=>(s.row=a(M),s.col=_(M),s),a=(M)=>{if(!r)return Math.floor(M/t);let S=0,v=0;for(let b=0;b<=M;b++)if(r(b)){if(v)S++,v=0;if(b===M)return S;S++,v=0}else{if(b===M)return S;if(v++,v>=t)S++,v=0}return console.warn(`⚠️ getRow(${M}) fell through - returning ${S}`),S},_=(M)=>{if(!r)return M%t;if(r(M))return 0;let S=0;for(let v=0;v<=M;v++)if(r(v))S=0;else{if(v===M)return S;if(S++,S>=t)S=0}return S},p=(M,S,v,b)=>{if(v<=0){b.start=0,b.end=-1;return}if(!r){b.start=Math.max(0,M*t),b.end=Math.min(v-1,(S+1)*t-1);return}let T=c(M,S,v);b.start=T.start,b.end=T.end},c=(M,S,v)=>{if(v<=0)return{start:0,end:-1};if(!r){let L=Math.max(0,M*t),D=Math.min(v-1,(S+1)*t-1);return{start:L,end:D}}let b=-1,T=-1,A=0,y=0;for(let L=0;L<v;L++){if(r(L)){if(y)A++,y=0;if(A>=M&&A<=S){if(b<0)b=L;T=L}A++,y=0}else{if(A>=M&&A<=S){if(b<0)b=L;T=L}if(y++,y>=t)A++,y=0}if(A>S&&!y)break}if(b<0)return{start:0,end:-1};return{start:b,end:T}},K=(M,S,v)=>{if(S<0||S>=t)return-1;let b=M*t+S;if(b<0||b>=v)return-1;return b},H=(M)=>{let S=(t-1)*o;return Math.max(0,(M-S)/t)};return{get columns(){return t},get gap(){return o},update:(M)=>{if(M.columns!==void 0)t=Math.max(1,Math.floor(M.columns));if(M.gap!==void 0)o=M.gap;if(M.isHeaderFn!==void 0)r=M.isHeaderFn},getTotalRows:n,getPosition:i,getRow:a,getCol:_,getItemRange:c,fillItemRange:p,getItemIndex:K,getColumnWidth:H,getColumnOffset:(M,S)=>{let v=H(S);return M*(v+o)}}};var Ye={selected:!1,focused:!1};function Tt(e){if(!e.columns||e.columns<1)throw Error("[vlist] grid: columns must be >= 1");let t,o,r,s,n=0,i,a=null,_,p,c,K,H,m,N=null,M=0,S=0,v=0,b=0,T=new Map,A=0,y=0,L=0,D=0,g=null,z=!1,C="",X="",B="",W={start:0,end:-1},te=-1,se=-1,w=-1,I=!0,P=(O)=>o.rebuild(O);function G(){let O=(y-1)*L;D=Math.max(0,(A-O)/y)}function x(){if(z)return;z=!0,g=N?.()??null}function u(){return t.getTotalRows(r.totalItems)}function q(O,Z){let l=O/y|0,d=(O-l*y)*(D+L)+M,V=o.getOffset(l)-Z+v;if(K)return`translate(${Math.round(V)}px, ${Math.round(d)}px)`;return`translate(${Math.round(d)}px, ${Math.round(V)}px)`}function F(O,Z){let l=o.getSize(Z)-L;if(K)O.style.width=`${l}px`,O.style.height=`${D}px`;else O.style.width=`${D}px`,O.style.height=`${l}px`}function U(O,Z,l){if(g)g(l,Ye);else Ye.selected=!1,Ye.focused=!1;let E=p(Z,l,Ye);if(typeof E==="string")O.innerHTML=E;else O.innerHTML="",O.appendChild(E)}function j(){if(r.destroyed)return;let O=s.getRenderOrigin(),Z=s.getPixelEquivalent(),l=r.containerSize;if(!I&&Z===te&&l===se&&O===n)return;te=Z,se=l,I=!1;let E=u();if(l<=0||E===0)return;x();let d=o.indexAtOffset(Z),V=o.indexAtOffset(Z+l);if(V<E-1)V++;d=Math.max(0,d),V=Math.min(E-1,Math.max(0,V));let R=Math.max(0,d-m),k=Math.min(E-1,V+m);if(R===r.prevRangeStart&&k===r.prevRangeEnd&&!r.renderPending&&O===n)return;t.fillItemRange(R,k,r.totalItems,W);let{start:re,end:Q}=W;for(let[le,ve]of T)if(le<re||le>Q)ve.el.remove(),i.release(ve.el),T.delete(le);for(let le=re;le<=Q;le++){let ve=c(le);if(!ve)continue;let J=le/y|0,oe=le-J*y,f=T.get(le);if(f===void 0){let me=i.acquire();me.className=C,me.setAttribute("data-index",String(le)),me.setAttribute("data-id",String(ve.id)),U(me,ve,le),f={el:me,lastItem:ve},T.set(le,f),_.appendChild(me)}else if(f.lastItem!==ve)f.el.setAttribute("data-id",String(ve.id)),f.lastItem=ve,U(f.el,ve,le);else if(g)g(le,Ye);if(g)if(f.el.classList.toggle(X,Ye.selected),f.el.classList.toggle(B,Ye.focused),Ye.selected)f.el.setAttribute("aria-selected","true");else f.el.removeAttribute("aria-selected");F(f.el,J);let ee=oe*(D+L)+M,fe=o.getOffset(J)-O+v;f.el.style.transform=K?`translate(${Math.round(fe)}px, ${Math.round(ee)}px)`:`translate(${Math.round(ee)}px, ${Math.round(fe)}px)`}let ce=o.getTotalSize();if(ce!==w)w=ce,a?.updateContentSize(ce);r.prevRangeStart=R,r.prevRangeEnd=k,n=O,r.renderPending=!1;let ge=Q-re+1;r.visibleCount=Math.min(ge,r.capacity),r.startIndex=re;for(let le=0;le<r.visibleCount;le++){let ve=re+le,J=ve/y|0;r.visibleIndices[le]=ve,r.visibleOffsets[le]=o.getOffset(J),r.visibleSizes[le]=o.getSize(J)}}function pe(){if(r.destroyed)return;P(u()),w=-1,r.prevRangeStart=-1,r.prevRangeEnd=-1,r.renderPending=!0,I=!0,j()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(O){s=O.scroll,y=Math.max(1,Math.floor(e.columns)),L=e.gap??0,t=gn({columns:e.columns,gap:L}),o=O.sizeCache,r=O.getState(),i=O.pool,a=O,_=O.dom.content,p=O.template,K=O.config.axis.primary==="x",H=O.config.classPrefix,m=O.config.overscan,c=O.getItem.bind(O),N=()=>O.getItemStateFn(),C=`${H}-item ${H}-grid-item`,X=`${H}-item--selected`,B=`${H}-item--focused`,M=O.config.crossPadStart,S=O.config.crossAxisPadding,v=O.config.startPadding,b=O.config.mainAxisPadding,A=r.crossSize-S,G();let Z=O.rawSizeSpec,l;if(typeof Z==="function"){let k={columnWidth:t.getColumnWidth(A),columns:e.columns,gap:L};l=Z(0,k),O.setSizeConfig((re)=>{k.columnWidth=t.getColumnWidth(A);let Q=re*e.columns;return Z(Q,k)+L})}else if(l=Z,L>0)O.setSizeConfig(l+L);let E=null,d=o.rebuild;function V(){if(o.rebuild===E)return;d=o.rebuild,P=(R)=>d(R),E=(R)=>{P(Math.ceil(R/y))},o.rebuild=E}if(O.registerMethod("_setSizeCacheBase",(R)=>{d=R,P=(k)=>d(k)}),V(),P(u()),L>0){let R=o.getTotalSize;o.getTotalSize=()=>{let k=R();return k>0?k-L:0}}O.setVirtualTotalFn(()=>u()),O.dom.root.classList.add(`${H}--grid`),O.setRenderFn(j,pe),O.registerMethod("getGridLayout",()=>t),O.registerMethod("_getRowGap",()=>t.gap),O.registerMethod("updateGrid",(R)=>{if(R.columns!==void 0){if(!Number.isInteger(R.columns)||R.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(R.gap!==void 0&&R.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if(t.update(R),R.columns!==void 0)y=Math.max(1,Math.floor(R.columns));if(R.gap!==void 0)L=R.gap;if(R.gap!==void 0||R.columns!==void 0){let k=t.gap;if(typeof Z==="function"){let re={columnWidth:t.getColumnWidth(A),columns:t.columns,gap:k};O.setSizeConfig((Q)=>{re.columnWidth=t.getColumnWidth(A);let ce=Q*t.columns;return Z(ce,re)+k})}else O.setSizeConfig(l+k);V(),P(u())}if(R.columns!==void 0)O.setNavConfig({ud:t.columns});A=r.crossSize-S,G(),pe()}),O.registerMethod("scrollToIndex",(R,k="start")=>{let re=t.getRow(R),Q=u();if(Q===0)return;let ce=Math.max(0,Math.min(re,Q-1)),ge=o.getOffset(ce)+v,le=o.getSize(ce),ve=r.containerSize,J=o.getTotalSize()+b,oe=Math.max(0,J-ve),f=typeof k==="string"?k:k.align??"start",ee=typeof k==="object"?k.behavior:void 0,fe=typeof k==="object"?k.duration:void 0,me;switch(f){case"center":me=ge-(ve-le)/2;break;case"end":me=ge-ve+le;break;default:me=ge}if(me=Math.max(0,Math.min(me,oe)),ee==="smooth"&&fe&&fe>0)O.smoothScrollTo(me,fe);else O.scrollTo(me)}),O.setNavConfig({total:()=>r.totalItems,ud:e.columns,lr:1,scrollIndex:(R)=>t.getRow(R)}),O.registerDestroyHandler(()=>{for(let[,R]of T)R.el.remove();T.clear(),O.dom.root.classList.remove(`${H}--grid`)})},hooks:{onResize(O,Z){let l=r.crossSize-S;if(Math.abs(l-A)<1)return;A=l,G();let E=s.getRenderOrigin();for(let[d,V]of T){let R=d/y|0;F(V.el,R),V.el.style.transform=q(d,E)}}},destroy(){T.clear()}}}var pn=(e)=>{let t=Math.max(1,Math.floor(e.columns)),o=e.gap??0,r=e.containerSize,s=e.crossOffset??0,n=e.mainOffset??0,i=0,a=[],_=()=>{let v=(t-1)*o;i=Math.max(0,(r-v)/t),a=Array(t);let b=i+o;for(let T=0;T<t;T++)a[T]=s+T*b};_();let p=[],c=0,K=[],H=(v,b)=>{if(v<=0)return c=0,p=[],[];let T=Array(t).fill(n),A=Array(t);for(let D=0;D<t;D++)A[D]=[];let y=Array(v);for(let D=0;D<v;D++){let g=0,z=T[0];for(let B=1;B<t;B++){let W=T[B];if(W<z)z=W,g=B}let C=b(D),X=T[g];y[D]={index:D,x:a[g],y:X,lane:g,size:C,crossSize:i},A[g].push(D),T[g]=X+C+o}p=A;let L=0;for(let D=0;D<t;D++){let g=T[D],z=g>0?g-o:0;if(z>L)L=z}return c=L,y},m=(v)=>{if(v.length===0)return c;if(c)return c;let b=Array(t).fill(0);for(let A of v){let y=A.y+A.size,L=b[A.lane];if(y>L)b[A.lane]=y}let T=0;for(let A=0;A<t;A++)if(b[A]>T)T=b[A];return T},N=(v,b,T)=>{if(v.length===0||T<=b)return K.length=0,K;if(p.length===0||p.length!==t)return M(v,b,T);K.length=0;for(let A=0;A<t;A++){let y=p[A],L=y.length;if(!L)continue;let D=0,g=L;while(D<g){let z=D+g>>>1,C=v[y[z]];if(C.y+C.size<=b)D=z+1;else g=z}for(let z=D;z<L;z++){let C=v[y[z]];if(C.y>=T)break;K.push(C)}}return K},M=(v,b,T)=>{K.length=0;for(let A of v)if(A.y+A.size>b&&A.y<T)K.push(A);return K};return{get columns(){return t},get gap(){return o},get containerSize(){return r},update:(v)=>{let b=!1;if(v.columns!==void 0){let T=Math.max(1,Math.floor(v.columns));if(T!==t)t=T,b=!0}if(v.gap!==void 0&&v.gap!==o)o=v.gap,b=!0;if(v.containerSize!==void 0&&v.containerSize!==r)r=v.containerSize,b=!0;if(v.crossOffset!==void 0&&v.crossOffset!==s)s=v.crossOffset,b=!0;if(v.mainOffset!==void 0&&v.mainOffset!==n)n=v.mainOffset,b=!0;if(b)_()},calculateLayout:H,getTotalSize:m,getVisibleItems:N}};var bn=(e,t,o)=>{let r=Array.from(t).sort((i,a)=>i-a);if(r.length<=1)return;let s=[];for(let i=0;i<r.length;i++){let a=o(r[i]);if(a)s.push(a)}if(s.length<=1)return;let n=e.firstChild;for(let i=0;i<s.length;i++){let a=s[i];if(a===n)n=n.nextSibling;else e.insertBefore(a,n)}};var qn=(e=200)=>{let t=[];return{acquire:()=>{let n=t.pop();if(n)return n;let i=document.createElement("div");return i.setAttribute("role","option"),i},release:(n)=>{if(n.remove(),t.length<e)n.className="",n.textContent="",n.removeAttribute("style"),n.removeAttribute("data-index"),n.removeAttribute("data-id"),n.removeAttribute("data-lane"),t.push(n)},clear:()=>{t.length=0}}},Un=1,hn=(e,t,o,r=!1,s,n,i,a,_=()=>0)=>{let p=qn(),c=new Map,K=new Set,H=0,m="",N=-1,M={selected:!1,focused:!1},S=(w,I)=>(M.selected=w,M.focused=I,M),v=`${o}-item ${o}-masonry-item`,b=`${o}-group-header`,T=`${o}-item--selected`,A=`${o}-item--focused`,y=(w,I)=>{if(typeof I==="string")w.innerHTML=I;else w.replaceChildren(I);qe(w)},L=(w,I,P)=>{w.classList.toggle(T,I),w.classList.toggle(A,P)},D=(w,I)=>{let P=Math.round(I.y-C);if(r)w.style.transform=`translate(${P}px, ${Math.round(I.x)}px)`;else w.style.transform=`translate(${Math.round(I.x)}px, ${P}px)`},g=(w,I)=>{if(r)w.style.width=`${I.size}px`,w.style.height=`${I.crossSize}px`;else w.style.width=`${I.crossSize}px`,w.style.height=`${I.size}px`},z=(w,I,P,G,x)=>{let u=p.acquire(),q=I.__groupHeader,F=S(G,x);if(u.className=q?b:v,u.dataset.index=String(w),u.dataset.id=String(I.id),u.dataset.lane=String(P.lane),q)u.setAttribute("role","presentation"),u.removeAttribute("aria-selected"),u.removeAttribute("aria-setsize"),u.removeAttribute("aria-posinset"),u.removeAttribute("id");else if(a===!0){if(u.setAttribute("role","option"),u.ariaSelected=String(G),n)u.id=`${n}-item-${w}`;if(s){let j=s();if(j!==N)N=j,m=String(j);u.setAttribute("aria-setsize",m);let pe=i?i(w):w+1;u.setAttribute("aria-posinset",String(pe))}}else if(u.setAttribute("role","listitem"),u.removeAttribute("aria-selected"),s){let j=s();if(j!==N)N=j,m=String(j);u.setAttribute("aria-setsize",m);let pe=i?i(w):w+1;u.setAttribute("aria-posinset",String(pe))}g(u,P);let U=t(I,w,F);return y(u,U),L(u,G,x),D(u,P),{element:u,lastItem:I,lastSelected:G,lastFocused:x,lastY:P.y-C,absY:P.y,lastX:P.x,lastSize:P.size,lastCrossSize:P.crossSize,lastSeenFrame:H}},C=0,X=(w,I,P,G,x=_())=>{C=x,H++,K.clear();for(let q=0;q<I.length;q++)K.add(I[q].index);let u=null;for(let q=0;q<I.length;q++){let F=I[q],U=F.index,j=w(U);if(!j)continue;let pe=P.has(j.id),O=U===G,Z=c.get(U);if(Z){let l=Z.lastItem!==j,E=Z.lastSelected!==pe,d=Z.lastFocused!==O,V=Z.lastY!==F.y-C||Z.lastX!==F.x,R=Z.lastSize!==F.size||Z.lastCrossSize!==F.crossSize;if(l){let k=S(pe,O),re=t(j,U,k);if(y(Z.element,re),Z.element.dataset.id=String(j.id),Z.lastItem=j,!j.__groupHeader){let ce=i?i(U):U+1;Z.element.setAttribute("aria-posinset",String(ce))}}if(l||E||d)L(Z.element,pe,O),Z.element.ariaSelected=String(pe),Z.lastSelected=pe,Z.lastFocused=O;if(R)g(Z.element,F),Z.lastSize=F.size,Z.lastCrossSize=F.crossSize;if(V)D(Z.element,F),Z.lastY=F.y-C,Z.absY=F.y,Z.lastX=F.x}else{let l=z(U,j,F,pe,O);if(!u)u=document.createDocumentFragment();u.appendChild(l.element),c.set(U,l)}}if(u)e.appendChild(u);for(let[q,F]of c)if(K.has(q))F.lastSeenFrame=H;else if(H-F.lastSeenFrame>Un)p.release(F.element),c.delete(q);else{let U=Math.round(F.absY-C);if(U!==F.lastY){F.lastY=U;let j=Math.round(F.lastX);F.element.style.transform=r?`translate(${U}px, ${j}px)`:`translate(${j}px, ${U}px)`}}},B=()=>{for(let w of c.values())p.release(w.element);c.clear(),e.innerHTML=""};return{render:X,getElement:(w)=>c.get(w)?.element,updateItemClasses:(w,I,P)=>{let G=c.get(w);if(!G)return;let x=G.lastSelected!==I,u=G.lastFocused!==P;if(x||u)L(G.element,I,P),G.lastSelected=I,G.lastFocused=P},sortDOM:()=>{bn(e,c.keys(),(w)=>c.get(w)?.element)},clear:B,destroy:()=>{B(),p.clear()}}};var Xn=100,jn=new Set;function xt(e){if(!e.columns||e.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let t,o=null,r,s,n=0,i=null,a,_,p,c=[],K=-1,H=-1,m=!0,N=-1,M=-1,S=0,v=0,b=0,T=0,A={columnWidth:0,columns:0,gap:0,containerWidth:0},y=[],L=(d)=>y[d],D=null,g=null,z=!1;function C(){if(z||!i)return;z=!0,D=i.getMethod("_getSelectedIds")??null,g=i.getMethod("_getFocusedIndex")??null}let X=[],B=new Int32Array(0),W=[],te=null,se=null,w=null,I=null,P=!1,G=!0;function x(){if(P||!i)return;if(te=i.getMethod("_getItemLane")??null,se=i.getMethod("_getItemY")??null,w=i.getMethod("_getItemH")??null,I=i.getMethod("_isGroupHeader")??null,te||I)P=!0}function u(){x();let d=t.columns,V=!!te;if(V){let R=r.totalItems;X=Array(d);for(let k=0;k<d;k++)X[k]=[];if(B.length<R)B=new Int32Array(R);for(let k=0;k<R;k++){if(I?.(k))continue;let re=te(k);if(re<0||re>=d)continue;B[k]=X[re].length,X[re].push(k)}}else{let R=c.length;X=Array(d);for(let k=0;k<d;k++)X[k]=[];if(B.length<R)B=new Int32Array(R);for(let k=0;k<R;k++){let re=c[k];B[k]=X[re.lane].length,X[re.lane].push(k)}}W=Array(d);for(let R=0;R<d;R++){let k=X[R],re=new Float64Array(k.length);for(let Q=0;Q<k.length;Q++){let ce=k[Q];if(V&&se&&w){let ge=se(ce),le=w(ce);re[Q]=ge>=0?ge+(le>0?le*0.5:0):0}else{let ge=c[ce];re[Q]=ge.y+ge.size*0.5}}W[R]=re}}function q(d,V){let R=d.length;if(!R)return-1;let k=0,re=R-1;while(k<re){let Q=k+re>>1;if(d[Q]<V)k=Q+1;else re=Q}if(k>0&&Math.abs(d[k-1]-V)<=Math.abs(d[k]-V))return k-1;return k}function F(d,V,R){if(G)u(),G=!1;let k=!!te,re,Q;if(k){if(I?.(d))return d;if(re=te(d),re<0)return d;Q=B[d]}else{let ve=c[d];if(!ve)return d;re=ve.lane,Q=B[d]}let ce=t.columns,ge=X[re];switch(a?V==="ArrowDown"?"ArrowRight":V==="ArrowUp"?"ArrowLeft":V==="ArrowRight"?"ArrowDown":V==="ArrowLeft"?"ArrowUp":V:V){case"ArrowDown":if(Q+1<ge.length)return ge[Q+1];return d;case"ArrowUp":if(Q>0)return ge[Q-1];return d;case"ArrowRight":{if(re>=ce-1)return d;let ve=re+1,J=X[ve];if(!J.length)return d;let oe=q(W[ve],W[re]?.[Q]??0);return oe>=0?J[oe]:d}case"ArrowLeft":{if(re<=0)return d;let ve=re-1,J=X[ve];if(!J.length)return d;let oe=q(W[ve],W[re]?.[Q]??0);return oe>=0?J[oe]:d}case"Home":return 0;case"End":{let ve=X[ce-1];return ve.length>0?ve[ve.length-1]:d}case"PageDown":{let ve=r.containerSize,J=k?null:c[d],oe=J&&J.size>0?J.size:150,f=Math.max(1,Math.floor(ve/oe)),ee=Math.min(Q+f,ge.length-1);return ge[ee]}case"PageUp":{let ve=r.containerSize,J=k?null:c[d],oe=J&&J.size>0?J.size:150,f=Math.max(1,Math.floor(ve/oe)),ee=Math.max(0,Q-f);return ge[ee]}}return d}let U=null;function j(){if(e.size)return(d)=>e.size(d,A);if(U!==null&&typeof U==="function")return(d)=>U(d,A);return(d)=>i.sizeCache.getSize(d)}function pe(){let d=t.columns,V=t.gap;A.containerWidth=t.containerSize,A.columns=d,A.gap=V,A.columnWidth=Math.max(0,(t.containerSize-(d-1)*V)/d)}function O(){if(!i)return;pe();let d=r.totalItems;c=t.calculateLayout(d,j()),N=d,G=!0,Z()}function Z(){if(!i)return;let d=t.getTotalSize(c)+T;if(d===M)return;M=d,i.updateContentSize(d)}function l(){if(r.destroyed||!i||!o)return;if(r.totalItems!==N)O();if(m)M=-1,Z();C();let d=s.getRenderOrigin(),V=s.getPixelEquivalent(),R=r.containerSize;if(!m&&V===K&&R===H&&d===n)return;if(K=V,H=R,m=!1,R<=0||c.length===0)return;let k=Math.max(0,V-p),re=V+R+p,Q=t.getVisibleItems(c,k,re),ce=D?.()??jn,ge=g?.()??-1;y=i.getItems(),o.render(L,Q,ce,ge,d),n=d;let le=Q.length,ve=le>0?Q[0].index:0,J=le>0?Q[le-1].index:0;r.prevRangeStart=ve,r.prevRangeEnd=J,r.renderPending=!1;let oe=Math.min(le,r.capacity);r.visibleCount=oe,r.startIndex=ve;for(let f=0;f<oe;f++){let ee=Q[f];r.visibleIndices[f]=ee.index,r.visibleOffsets[f]=ee.y,r.visibleSizes[f]=ee.size}}function E(){if(r.destroyed)return;M=-1,O(),r.prevRangeStart=-1,r.prevRangeEnd=-1,r.renderPending=!0,m=!0,l()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(d){if(s=d.scroll,i=d,r=d.getState(),U=d.rawSizeSpec,a=d.config.axis.primary==="x",_=d.config.classPrefix,p=d.config.overscan*Xn,d.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");S=d.config.crossAxisPadding,v=d.config.crossPadStart,b=d.config.startPadding,T=d.config.endPadding;let V=r.crossSize-S;t=pn({columns:e.columns,gap:e.gap??0,containerSize:V,crossOffset:v,mainOffset:b}),o=hn(d.dom.content,d.template,_,a,()=>r.totalItems,void 0,void 0,void 0,s.getRenderOrigin),d.dom.root.classList.add(`${_}--masonry`),d.setRenderFn(l,E),O(),d.registerMethod("getMasonryLayout",()=>t),d.registerMethod("updateMasonry",(R)=>{if(R.columns!==void 0&&R.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(R.gap!==void 0&&R.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let k={};if(R.columns!==void 0)k.columns=R.columns;if(R.gap!==void 0)k.gap=R.gap;t.update(k),o?.clear(),E()}),d.registerMethod("scrollToIndex",(R,k="start")=>{let re=c[R];if(!re)return;let Q=typeof k==="string"?k:k.align??"start",ce=typeof k==="object"?k.behavior:void 0,ge=typeof k==="object"?k.duration:void 0,le=r.containerSize,ve=t.getTotalSize(c)+T,J=Math.max(0,ve-le),oe=re.y;if(Q==="center")oe=re.y-le/2+re.size/2;else if(Q==="end"){if(oe=re.y-le+re.size,R>=r.totalItems-1&&re.y+re.size>J)oe=J}if(oe=Math.max(0,Math.min(oe,J)),ce==="smooth"&&ge&&ge>0)d.smoothScrollTo(oe,ge);else d.scrollTo(oe)}),d.registerMethod("_scrollItemIntoView",(R)=>{let k=c[R];if(!k)return;let re=s.getPixelEquivalent(),Q=r.containerSize,ce=t.getTotalSize(c)+T,ge=Math.max(0,ce-Q),le=k.y,ve=le+k.size;if(le-b<re)d.scrollTo(Math.max(0,le-b));else if(ve+T>re+Q){let J=X[t.columns-1];if(J&&J.length>0&&R===J[J.length-1]&&le>=ge)d.scrollTo(ge);else d.scrollTo(Math.min(ve+T-Q,ge))}}),d.setNavConfig({total:()=>r.totalItems,navigate:F}),d.registerDestroyHandler(()=>{o?.destroy(),o=null,d.dom.root.classList.remove(`${_}--masonry`)})},hooks:{onResize(d,V){if(!t||!i)return;let R=r.crossSize-S;if(Math.abs(R-t.containerSize)<1)return;t.update({containerSize:R}),o?.clear(),E()},onIdle(){o?.sortDOM()}},destroy(){o?.destroy(),o=null,c=[],i=null}}}var Lt=(e,t)=>{let o=0,r=e.length-1;while(o<r){let s=o+r+1>>>1;if(e[s].headerLayoutIndex<=t)o=s;else r=s-1}return o},vn=(e,t)=>{let o=0,r=e.length-1;while(o<r){let s=o+r+1>>>1;if(e[s].firstDataIndex<=t)o=s;else r=s-1}return o},Sn=(e,t,o)=>{if(e===0)return[];let r=[],s=null,n=0,i=0;for(let a=0;a<e;a++){let _=o?.(a);if(!_)continue;let p=t(a,_);if(s===null)s=p,n=0;else if(p!==s){let c=a-n;r.push({key:s,groupIndex:r.length,headerLayoutIndex:i,firstDataIndex:n,count:c}),i=i+1+c,s=p,n=a}}if(s!==null)r.push({key:s,groupIndex:r.length,headerLayoutIndex:i,firstDataIndex:n,count:e-n});return r};var yn=(e,t,o)=>{let r=Sn(e,t.getGroupForIndex,o),s=e+r.length,n=t.header?.height??t.header?.width??t.headerHeight;return{get totalEntries(){return s},get groupCount(){return r.length},get groups(){return r},getEntry:(m)=>{if(r.length===0)return{type:"item",dataIndex:m,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let N=Lt(r,m),M=r[N];if(m===M.headerLayoutIndex)return{type:"header",group:M};let S=m-M.headerLayoutIndex-1;return{type:"item",dataIndex:M.firstDataIndex+S,group:M}},layoutToDataIndex:(m)=>{if(r.length===0)return m;let N=Lt(r,m),M=r[N];if(m===M.headerLayoutIndex)return-1;let S=m-M.headerLayoutIndex-1;return M.firstDataIndex+S},dataToLayoutIndex:(m)=>{if(r.length===0)return m;let N=vn(r,m),M=r[N],S=m-M.firstDataIndex;return M.headerLayoutIndex+1+S},getGroupAtLayoutIndex:(m)=>{if(r.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let N=Lt(r,m);return r[N]},getGroupAtDataIndex:(m)=>{if(r.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let N=vn(r,m);return r[N]},getHeaderHeight:typeof n==="number"?(m)=>n:(m)=>{let N=r[m];if(!N)return 0;return n(N.key,m)},rebuild:(m,N)=>{r=Sn(m,t.getGroupForIndex,N??o),s=m+r.length}}};var Et=(e,t,o,r,s=0)=>{let n=o?"width":"height",i=document.createElement("div");return i.className=`${t}-sticky-header`,i.setAttribute("role","presentation"),i.setAttribute("aria-hidden","true"),i.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(o?`position:absolute;top:0;bottom:0;left:${s||0}px`:`position:relative;top:${s||0}px`),i.style[n]=`${r}px`,e.insertBefore(i,e.firstChild),i},In=(e,t,o,r,s,n=!1,i=0,a,_)=>{let p=n?"width":"height",c=n?"height":"width",K=n?"X":"Y",H=(l,E)=>{l.style[p]=`${E}px`},m=a??Et(e,s,n,0,i),N=()=>{let l=document.createElement("div");return l.className="sticky-group",l.style.position="absolute",l.style.willChange="transform",l.style[c]="100%",l},M=N(),S=N();m.append(M,S);let v=M,b=S,T=t.groups,A=[],y=[],L=[],D=0,g=()=>{T=t.groups,D=T.length,A=Array(D),y=Array(D),L=Array(D);for(let l=0;l<D;l++)A[l]=_?_(T[l].headerLayoutIndex):o.getOffset(T[l].headerLayoutIndex),y[l]=t.getHeaderHeight(l),L[l]=y[l]};g();let z=-1,C=0,X=0,B=-1,W=!1,te=0,se=!1,w=(l,E)=>{r(l,E);let d=y[E];return H(l,d),d},I=(l)=>{l.replaceChildren(),l.style.transform=""},P=(l)=>{if(l===z)return;if(z=l,C=0,X=0,l<0||l>=D){I(v);return}C=w(v,l),X=L[l],H(m,C),v.style.transform=""},G=(l)=>{if(l===te)return;te=l;let E=Math.round(l);v.style.transform=`translate${K}(${E}px)`,b.style.transform=`translate${K}(${E+C}px)`},x=()=>{te=0,v.style.transform="",b.style.transform=""},u=()=>{if(!se)return;let l=v;v=b,b=l,z=B,C=z>=0?y[z]:0,X=z>=0?L[z]:0,H(m,C),I(b),B=-1,se=!1,x()},q=()=>{if(!se)return;I(b),B=-1,se=!1,x()},F=!!a,U=()=>{if(W)return;if(W=!0,F)m.style.visibility="";else m.style.display=""},j=()=>{if(!W)return;if(W=!1,F)m.style.visibility="hidden";else m.style.display="none";I(v),z=-1,C=0,X=0,q()},pe=(l)=>{if(D===0){if(se)q();if(!W)U();P(-1);return}if(l<A[0]){j();return}let E=0,d=D-1;while(E<d){let R=E+d+1>>>1;if(A[R]+L[R]<=l)E=R;else d=R-1}if(!W)U();P(E);let V=E+1;if(V<D){let R=A[V]-l;if(R<=0&&R>-X){if(B!==V||!se)B=V,w(b,V),se=!0;let k=X>0?R/X*C:R;G(k)}else if(R<=-X){if(se)u()}else if(se)q()}else if(se)q()},O=()=>{g();let l=z;if(z=-1,C=0,X=0,l>=0)P(l)},Z=()=>{m.remove(),z=-1,C=0,X=0,B=-1,W=!1,se=!1};if(!a)m.style.display="none";return{update:pe,refresh:O,show:U,hide:j,destroy:Z}};var Ke={selected:!1,focused:!1},Tn=typeof process<"u"&&process.env?.NODE_ENV!=="production";function Ct(e){if(!e.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let t=e.header?.height??e.header?.width??e.headerHeight;if(t==null||typeof t==="number"&&t<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let o=e.header?.template??e.headerTemplate;if(!o)throw Error("[vlist] groups: header.template is required");let r=o,s,n=null,i,a,_,p,c,K=null,H,m,N,M=null,S,v,b,T=null,A,y,L=null,D=null,g=0,z=0,C=0,X=0,B=0,W=!1,te=null,se=new Map,w=new Set,I=new Map,P=-1,G=-1,x=0,u=!0,q=-1,F=0,U=null,j;function pe(){return s.totalEntries}function O(){let f=a.totalItems;if(f===q)return;if(Tn)console.log(`[groups] syncLayout: ${q} → ${f}`);let ee=q>0;q=f,s.rebuild(f,M??N),j(s.totalEntries),V();let fe=l?R():i.getTotalSize();if(K?.(fe),n)n.refresh(),n.update(_.getPixelEquivalent());if(ee)Q();let me=L?.("_scrollbar:getInstance");if(me)me()?.updateBounds(fe,a.containerSize)}let Z=0,l=null,E=null,d=null;function V(){if(g<=0){l=null,E=null;return}Z=((a.crossSize||c.clientWidth)-X-(g-1)*z)/g,l=new Map;let fe=s.totalEntries,me=Array(fe),Ie=0;if(W){let xe=te??((ye)=>i.getSize(ye)),be=new Float64Array(g),Se=[],Te=0,Ce=-1;for(let ye=0;ye<fe;ye++){let Ee=s.getEntry(ye);if(Ee.type==="header"){let ie=0;for(let ze=0;ze<g;ze++)if(be[ze]>ie)ie=be[ze];if(Ce>=0)Se[Ce]=Te+ie;Te+=ie;let ae=i.getSize(ye);l.set(ye,{col:-1,rowY:Te}),me[Ie++]=[ye,Te,Te+ae],Te+=ae,be.fill(0),Ce=Ee.group.groupIndex}else{let ie=0,ae=be[0];for(let ue=1;ue<g;ue++)if(be[ue]<ae)ae=be[ue],ie=ue;let ze=xe(Ee.dataIndex),Re=Te+be[ie];l.set(ye,{col:ie,rowY:Re,h:ze}),me[Ie++]=[ye,Re,Re+ze],be[ie]=be[ie]+ze+z}}if(Ce>=0){let ye=0;for(let Ee=0;Ee<g;Ee++)if(be[Ee]>ye)ye=be[Ee];Se[Ce]=Te+ye}d=Se}else{d=null;let xe=0,be=0,Se=0;for(let Te=0;Te<fe;Te++)if(s.getEntry(Te).type==="header"){if(be>0&&Se>0)xe+=Se;let ye=i.getSize(Te);l.set(Te,{col:-1,rowY:xe}),me[Ie++]=[Te,xe,xe+ye],xe+=ye,be=0,Se=0}else{let ye=be%g,Ee=i.getSize(Te);if(ye===0){if(be>0&&Se>0)xe+=Se+z;Se=Ee}else if(Ee>Se)Se=Ee;l.set(Te,{col:ye,rowY:xe}),me[Ie++]=[Te,xe,xe+Ee],be++}}me.length=Ie,E=me}function R(){if(!l||l.size===0)return i.getTotalSize();let f=s.totalEntries;if(W)return d?.[d.length-1]??0;let ee=0;for(let fe=f-1;fe>=0;fe--){let me=l.get(fe);if(me){ee=me.rowY+(me.h??i.getSize(fe));break}if(s.getEntry(fe).type==="header"){ee=i.getOffset(fe)+i.getSize(fe);break}}return ee}function k(f,ee){if(l){let me=l.get(f);if(me){let Ie=me.col<0?0:C+me.col*(Z+z),xe=me.rowY-ee;if(S)return`translate(${Math.round(xe)}px, ${Math.round(Ie)}px)`;return`translate(${Math.round(Ie)}px, ${Math.round(xe)}px)`}}let fe=i.getOffset(f)-ee;if(S)return`translate(${Math.round(fe)}px, 0)`;return`translate(0, ${Math.round(fe)}px)`}function re(f,ee){let fe=l?.get(ee);if(fe){let Ie=fe.h??i.getSize(ee);if(fe.col<0)if(S)f.style.width=`${Ie}px`,f.style.height="";else f.style.height=`${Ie}px`,f.style.width="100%";else if(S)f.style.width=`${Ie}px`,f.style.height=`${Z}px`;else f.style.height=`${Ie}px`,f.style.width=`${Z}px`;return}let me=i.getSize(ee);if(S)f.style.width=`${me}px`;else f.style.height=`${me}px`}function Q(){se.forEach((f)=>{f.remove();let ee=f.getAttribute("data-id");if(ee)I.set(ee,f);else p.release(f)}),se.clear(),w.clear()}function ce(){if(I.size>0)I.forEach((f)=>p.release(f)),I.clear()}function ge(f,ee,fe,me){if(D===null)D=!!L?.("_getSelectedIds");if(ee.type==="header"){let Ce=`__group_header_${ee.group.groupIndex}`;if(f.getAttribute("data-id")===Ce)return!0;if(f.className=y,f.setAttribute("role","presentation"),f.removeAttribute("aria-selected"),f.setAttribute("data-id",Ce),S&&n&&ee.group.groupIndex===0)f.style.display="none";else{f.style.display="";let ye=r(ee.group.key,ee.group.groupIndex);if(typeof ye==="string")f.innerHTML=ye;else f.innerHTML="",f.appendChild(ye)}return!0}let Ie=ee.dataIndex,xe=N(Ie);if(!xe)return f.innerHTML="",!1;let be=xe._isPlaceholder===!0,Se=String(xe.id);if(!be&&f.getAttribute("data-id")===Se){if(D)f.id=`${v}-item-${me}`,f.setAttribute("aria-posinset",String(Ie+1)),f.setAttribute("aria-setsize",String(a.totalItems));return!0}if(f.className=A,f.setAttribute("role",D?"option":"listitem"),f.setAttribute("data-id",Se),D)f.id=`${v}-item-${me}`,f.setAttribute("aria-posinset",String(Ie+1)),f.setAttribute("aria-setsize",String(a.totalItems));if(be)f.classList.add(`${v}-item--placeholder`);if(fe)fe(me,Ke);else Ke.selected=!1,Ke.focused=!1;let Te=m(xe,Ie,Ke);if(typeof Te==="string")f.innerHTML=Te;else f.innerHTML="",f.appendChild(Te);return qe(f),!be}let le=0;function ve(){if(g<=0)return;let f=a.crossSize;if(f===le)return;le=f,V();let ee=R();if(K?.(ee),n)n.refresh(),n.update(_.getPixelEquivalent());u=!0}function J(){if(a.destroyed)return;O(),ve();let f=_.getPixelEquivalent(),ee=a.containerSize,fe=_.getRenderOrigin(),me=fe!==x;if(!u&&f===P&&ee===G&&!me)return;P=f,G=ee;let Ie=u;u=!1;let xe=pe();if(ee<=0||xe===0){if(se.size>0)se.forEach((ue)=>{ue.remove(),p.release(ue)}),se.clear(),w.clear();return}let be,Se;if(E){let ue=E,he=ue.length,Me=0,Ae=he-1;while(Me<Ae){let He=Me+Ae>>>1;if(ue[He][2]<=f)Me=He+1;else Ae=He}let ke=Me;Ae=he-1;while(Me<Ae){let He=Me+Ae+1>>>1;if(ue[He][1]>=f+ee)Ae=He-1;else Me=He}let Ge=Me,Fe=ue[ke][0],Ne=ue[Ge][0];for(let He=Fe-1;He>=0;He--)if(s.getEntry(He).type==="header"){Fe=He;break}let Be=b*g;be=Math.max(0,Fe-Be),Se=Math.min(xe-1,Ne+Be)}else{let ue=i.indexAtOffset(f),he=i.indexAtOffset(f+ee);if(he<xe-1)he++;ue=Math.max(0,ue),he=Math.min(xe-1,Math.max(0,he)),be=Math.max(0,ue-b),Se=Math.min(xe-1,he+b)}if(be===a.prevRangeStart&&Se===a.prevRangeEnd&&!a.renderPending&&!me)return;x=fe,se.forEach((ue,he)=>{if(he<be||he>Se)ue.remove(),p.release(ue),se.delete(he),w.delete(he)});let Te=T?.()??null,Ce=Te?`${v}-item--selected`:"",ye=Te?`${v}-item--focused`:"",Ee=null;for(let ue=be;ue<=Se;ue++){let he=se.get(ue),Me=!1;if(he===void 0){let Ae=s.getEntry(ue);Me=Ae.type==="header";let ke;if(Ae.type==="header")ke=`__group_header_${Ae.group.groupIndex}`;else{let Fe=N(Ae.dataIndex);if(Fe&&Fe._isPlaceholder!==!0)ke=String(Fe.id)}if(ke!==void 0){let Fe=I.get(ke);if(Fe)I.delete(ke),he=Fe}if(!he)he=p.acquire();if(he.setAttribute("data-index",String(ue)),ge(he,Ae,Te,ue))w.delete(ue);else w.add(ue);if(re(he,ue),he.style.transform=k(ue,fe),se.set(ue,he),!Ee)Ee=document.createDocumentFragment();Ee.appendChild(he)}else if(Ie&&w.has(ue)){let Ae=s.getEntry(ue);if(Ae.type==="item")if(ge(he,Ae,Te,ue))w.delete(ue);else w.add(ue)}else if(Me=he.classList.contains(y),Ie)re(he,ue),he.style.transform=k(ue,fe);else if(me)he.style.transform=k(ue,fe);if(!Me&&Te)if(Te(ue,Ke),he.classList.toggle(Ce,Ke.selected),he.classList.toggle(ye,Ke.focused),Ke.selected)he.setAttribute("aria-selected","true");else he.removeAttribute("aria-selected")}if(Ee)c.appendChild(Ee);ce();let ie=l?R():i.getTotalSize();K?.(ie),a.prevRangeStart=be,a.prevRangeEnd=Se,a.renderPending=!1;let ae=0,ze=0,Re=!1;for(let ue=be;ue<=Se&&ae<a.capacity;ue++){let he=s.getEntry(ue);if(he.type==="item"){if(!Re)ze=he.dataIndex,Re=!0;a.visibleIndices[ae]=he.dataIndex,a.visibleOffsets[ae]=i.getOffset(ue),a.visibleSizes[ae]=i.getSize(ue),ae++}}a.visibleCount=ae,a.startIndex=ze}function oe(){if(a.destroyed)return;if(ve(),Tn)console.log(`[groups] forceRender, placeholders: ${w.size}, rendered: ${se.size}`);let f=U?.()??0;if(f!==F){F=f;let ee=s.groups,fe=ee.length;s.rebuild(q,M??N);let me=s.groups,Ie=me.length!==fe;if(!Ie){for(let xe=0;xe<fe;xe++)if(me[xe].headerLayoutIndex!==ee[xe].headerLayoutIndex){Ie=!0;break}}if(Ie){j(s.totalEntries),V();let xe=l?R():i.getTotalSize();if(K?.(xe),n)n.refresh(),n.update(_.getPixelEquivalent());let be=1/0,Se=Math.min(fe,me.length);for(let Ce=0;Ce<Se;Ce++)if(me[Ce].headerLayoutIndex!==ee[Ce].headerLayoutIndex){be=Math.min(me[Ce].headerLayoutIndex,ee[Ce].headerLayoutIndex);break}if(me.length>fe&&Se<me.length)be=Math.min(be,me[Se].headerLayoutIndex);else if(fe>me.length&&Se<fe)be=Math.min(be,ee[Se].headerLayoutIndex);if(be<=a.prevRangeEnd)Q();let Te=L?.("_scrollbar:getInstance");if(Te)Te()?.updateBounds(xe,a.containerSize)}}a.prevRangeStart=-1,a.prevRangeEnd=-1,a.renderPending=!0,u=!0,J()}return{name:"groups",priority:10,setup(f){_=f.scroll,i=f.sizeCache,a=f.getState(),p=f.pool,c=f.dom.content,K=f.updateContentSize.bind(f),H=f.dom.root,m=f.template,S=f.config.axis.primary==="x",v=f.config.classPrefix,b=f.config.overscan,B=f.config.mainAxisPadding,N=f.getItem.bind(f),T=()=>f.getItemStateFn(),L=f.getMethod.bind(f),D=null,A=`${v}-item`,y=`${v}-group-header`;let ee=L?.("getGridLayout"),fe=L?.("getMasonryLayout");if(ee){let ie=ee();g=ie.columns,z=ie.gap,C=f.config.crossPadStart,X=f.config.crossAxisPadding}else if(fe){let ie=fe();g=ie.columns,z=ie.gap,C=f.config.crossPadStart,X=f.config.crossAxisPadding,W=!0;let ae=f.rawSizeSpec;if(typeof ae==="function")te=(ze)=>ae(ze,{columnWidth:Z})}queueMicrotask(()=>{let ie=L?.("_getLoadedItem");if(ie)M=ie;let ae=L?.("_getLoadedCount");if(ae)U=ae});let me=a.totalItems;s=yn(me,e,M??N),q=me;let Ie=typeof t==="number"?(ie)=>t:(ie)=>{let ae=s.groups[ie];if(!ae)return 0;return t(ae.key,ie)},xe=i.getSize,be=(ie)=>{let ae=s.getEntry(ie);if(ae.type==="header"){if(e.sticky!==!1&&ae.group.groupIndex===0)return 0;return Ie(ae.group.groupIndex)}return xe(ae.dataIndex)};f.setSizeConfig(be);let Se=!1,Te=-1;if(f.registerMethod("_setSizeCacheBase",(ie)=>{j=ie}),j=i.rebuild,i.rebuild=(ie)=>{if(Se){if(!U)U=L?.("_getLoadedCount")??null;let ae=U?.()??0;if(ie!==q||ae!==Te){if(q=ie,Te=ae,!M)M=L?.("_getLoadedItem")??null;if(s.rebuild(ie,M??((ze)=>f.getItems()[ze])),a.totalItems=s.totalEntries,n)n.refresh(),n.update(_.getPixelEquivalent())}}j(s.totalEntries)},i.rebuild(s.totalEntries),V(),f.setVirtualTotalFn(()=>s.totalEntries),H.classList.add(`${v}--grouped`),e.sticky!==!1){let ie=(ue,he)=>{let Me=s.groups[he];if(!Me)return;let Ae=r(Me.key,he);if(typeof Ae==="string")ue.innerHTML=Ae;else ue.replaceChildren(Ae)},ae=s.getHeaderHeight(0),ze=Et(H,v,S,ae),Re=g>0?(ue)=>{let he=l?.get(ue);return he?he.rowY:i.getOffset(ue)}:void 0;if(n=In(H,s,i,ie,v,S,0,ze,Re),n.update(_.getPixelEquivalent()),!S)f.dom.viewport.style.height=`calc(100% - ${ae}px)`;else f.dom.viewport.style.width=`calc(100% - ${ae}px)`,f.dom.viewport.style.marginLeft=`${ae}px`}let Ce=!!L?.("_updateTableForGroups");if(Se=Ce,Ce)queueMicrotask(()=>{let ie=L?.("_getItem")??null,ae=f.getItems.bind(f);f.setGetItemFn((Re)=>{let ue=s.getEntry(Re);if(ue.type==="header")return{id:`__group_header_${ue.group.groupIndex}`,__groupHeader:!0,groupKey:ue.group.key,groupIndex:ue.group.groupIndex};return ie?ie(ue.dataIndex):ae()[ue.dataIndex]});let ze=L?.("_updateTableForGroups");if(ze)ze((Re)=>!!Re.__groupHeader,r)});else f.setRenderFn(J,oe);f.registerMethod("getGroupLayout",()=>s),f.registerMethod("_dataToLayoutIndex",(ie)=>s.dataToLayoutIndex(ie)),f.registerMethod("_layoutToDataIndex",(ie)=>s.layoutToDataIndex(ie)),f.registerMethod("_getRenderedElement",(ie)=>se.get(ie)??null),f.registerMethod("_isGroupHeader",(ie)=>s.getEntry(ie).type==="header"),f.registerMethod("_getItemLane",(ie)=>{let ae=l?.get(ie);return ae?ae.col:-1}),f.registerMethod("_getItemY",(ie)=>{let ae=l?.get(ie);return ae?ae.rowY:-1}),f.registerMethod("_getItemH",(ie)=>l?.get(ie)?.h??-1);let ye=f.config.startPadding,Ee=B-ye;f.registerMethod("_scrollItemIntoView",(ie)=>{if(ie<0)return;let ae=l?.get(ie),ze=ae?ae.rowY:i.getOffset(ie),Re=ae?.h??i.getSize(ie),ue=a.containerSize,he=_.getPixelEquivalent();if(ze<he+ye)f.scrollTo(Math.max(0,ze-ye));else if(ze+Re+Ee>he+ue)f.scrollTo(ze+Re+Ee-ue)}),f.registerMethod("scrollToIndex",(ie,ae="start")=>{let ze=s.dataToLayoutIndex(ie),Re=s.totalEntries;if(Re===0)return;let ue=Math.max(0,Math.min(ze,Re-1)),he=a.containerSize,Me=l?.get(ue),Ae=Me?Me.rowY:i.getOffset(ue),ke=Me?Me.h??i.getSize(ue):i.getSize(ue),Ge=l?R()+B:i.getTotalSize(),Fe=Math.max(0,Ge-he),Ne=typeof ae==="string"?ae:ae.align??"start",Be=typeof ae==="object"?ae.behavior:void 0,He=typeof ae==="object"?ae.duration:void 0,_e=l?B:0,ne=Ae+ke;if(W&&d){let Y=s.getEntry(ue).group.groupIndex,h=d[Y];if(h!==void 0)ne=h}let Le;switch(Ne){case"center":Le=Ae-(he-ke)/2;break;case"end":Le=ne-he+_e;break;default:Le=Ae}if(Le=Math.max(0,Math.min(Le,Fe)),Be==="smooth"&&He&&He>0)f.smoothScrollTo(Le,He);else f.scrollTo(Le)}),f.registerDestroyHandler(()=>{for(let[,ie]of se)ie.remove();if(se.clear(),w.clear(),n)n.destroy(),n=null;H.classList.remove(`${v}--grouped`)})},hooks:{onAfterScroll(f,ee){if(n)n.update(f)},onResize(f,ee){if(g<=0)return;j(s.totalEntries),le=a.crossSize,V();let fe=R();if(K?.(fe),n)n.refresh(),n.update(_.getPixelEquivalent());u=!0,J()}},destroy(){if(n)n.destroy(),n=null;se.clear(),w.clear(),I.clear()}}}var xn=(e,t,o)=>{if(String(o).startsWith(De))return!1;let r=De+t;if(e.has(r))return e.delete(r),e.add(o),!0;return!1},Ln=(e)=>({selected:new Set(e??[]),focusedIndex:-1,focusVisible:!1});function Ue(e,t,o,r){if(o===0)return;let s=r?-t:t,n=e.focusedIndex+s;if(n<0)n=0;if(n>=o)n=o-1;e.focusedIndex=n}function at(e){return Array.from(e)}function Mt(e,t,o,r){if(r<=0)return 0;let s=r-1;if(o<=1)return e<0?0:e>s?s:e;let n=(t%o+o)%o;if(e<0)return n;if(e>s){let i=Math.floor(s/o)*o;return Math.min(i+n,s)}return e}var Zn={preventScroll:!0};function ut(e){let t=e?.mode??"single",o=e?.followFocus??!1,r=e?.focusOnClick??!1,s=e?.keyboard??!0,n,i,a,_,p,c,K,H,m=-1,N=new Map,M=null,S=null,v=null,b=null,T,A=!1;function y(u){if(A)return;A=!0,M=u.getMethod("_layoutToDataIndex")??null,S=u.getMethod("_dataToLayoutIndex")??null,v=u.getMethod("_isGroupHeader")??null,b=u.getMethod("_scrollItemIntoView")??null,D=u.getMethod("_getLoadedItem")??null;let q=u.getMethod("getGroupLayout");if(q){let F=q();T=()=>F.totalEntries}}let L=(u)=>M?M(u):u,D=null,g=(u)=>{if(D)return D(u);return i()[u]},z=(u)=>{let q=L(u);return q>=0?g(q):void 0},C=(u,q,F)=>{if(!v)return u;let U=u;while(U>=0&&U<F){if(!v(U))return U;U+=q}U=u-q;while(U>=0&&U<F){if(!v(U))return U;U-=q}return u};function X(u,q){if(t==="single")n.selected.clear(),N.clear();if(n.selected.add(u),q)N.set(u,q)}function B(u,q){if(n.selected.has(u))n.selected.delete(u),N.delete(u);else X(u,q)}function W(){n.selected.clear(),N.clear()}function te(u){n.selected.delete(u),N.delete(u)}function se(u,q){let F=Math.min(u,q),U=Math.max(u,q);for(let j=F;j<=U;j++){if(v?.(j))continue;let pe=z(j);if(pe)n.selected.add(pe.id),N.set(pe.id,pe);else if(D){let O=L(j);if(O>=0)n.selected.add(De+O)}}}function w(){let u=K.totalItems;for(let q=0;q<u;q++){if(v?.(q))continue;let F=z(q);if(F)n.selected.add(F.id),N.set(F.id,F);else if(D){let U=L(q);if(U>=0)n.selected.add(De+U)}}}function I(){if(n.selected.size===0)return[];if(N.size>=n.selected.size){let U=[];for(let j of n.selected){let pe=N.get(j);if(pe)U.push(pe)}if(U.length===n.selected.size)return U}let u=[],q=new Set(n.selected),F=K.totalItems;for(let U=0;U<F&&q.size>0;U++){if(v?.(U))continue;let j=z(U);if(j&&q.has(j.id))u.push(j),N.set(j.id,j),q.delete(j.id)}return u}function P(){a(),_.emit("selection:change",{selected:at(n.selected),items:I()})}let G=null,x=-1;return{name:"selection",priority:50,setup(u){u.enableListboxRole(),n=Ln(e?.initial),i=u.getItems.bind(u),a=u.forceRender.bind(u),_=u.emitter,p=u.dom;let q=u.config;if(c=u.sizeCache,K=u.getState(),H=u.scrollTo.bind(u),T=()=>K.totalItems,t==="none"){u.registerMethod("select",()=>{}),u.registerMethod("deselect",()=>{}),u.registerMethod("toggleSelect",()=>{}),u.registerMethod("selectAll",()=>{}),u.registerMethod("clearSelection",()=>{}),u.registerMethod("getSelected",()=>[]),u.registerMethod("getSelectedItems",()=>[]),u.registerMethod("selectNext",()=>{}),u.registerMethod("selectPrevious",()=>{}),u.registerMethod("_seedSelection",()=>{}),u.registerMethod("_getFocusedId",()=>{return}),u.registerMethod("_focusById",()=>{});return}let F=q.classPrefix;u.setItemStateFn((E,d)=>{if(y(u),n.selected.size>0){let V=L(E),R=V>=0?z(E):void 0,k=R?.id;if(k!==void 0)if(n.selected.has(k))d.selected=!0;else if(xn(n.selected,V,k))d.selected=!0,N.delete(De+V),N.set(k,R);else d.selected=!1;else d.selected=D!==null&&V>=0&&n.selected.has(De+V)}else d.selected=!1;d.focused=n.focusVisible&&n.focusedIndex===E}),u.registerMethod("_getSelectedIds",()=>n.selected),u.registerMethod("_getFocusedIndex",()=>n.focusVisible?n.focusedIndex:-1),p.root.classList.add(`${F}--selectable`);let U=(E)=>{G=null,x=-1;let d=E.target.closest("[data-index]");if(!d)return!1;let V=parseInt(d.dataset.index??"-1",10);if(V<0)return!1;if(v?.(V))return!1;if(L(V)<0)return!1;let k=z(V);if(!k)return!1;return G=k,x=V,!0},j=0,pe=(E)=>{if(E<0)return;if(b){b(E);return}if(!j){let le=u.getMethod("_getRowGap");j=le?le():0}let d=u.getNavConfig(),V=d.scrollIndex?d.scrollIndex(E):E,R=c.getOffset(V),k=c.getSize(V)-j,re=K.containerSize,Q=u.scroll.getPixelEquivalent(),{startPadding:ce,endPadding:ge}=q;if(R<Q)H(R);else if(ce+R+k+ge>Q+re)H(ce+R+k+ge-re)},O=(E)=>{let d=p.content.querySelectorAll(`[data-index="${E}"]`),V=null;for(let R=0;R<d.length;R++){let k=d[R];if(k.style.display!=="none"){V=k;break}}if(!V&&d.length>0)V=d[0];p.content.setAttribute("aria-activedescendant",V?.id??`${F}-item-${E}`)},Z=()=>{if(K.destroyed)return;if(y(u),!p.content.matches(":focus-visible")&&!p.root.matches(":focus-visible"))return;let E=T();if(E===0)return;let d=n.focusedIndex>=0?Math.min(n.focusedIndex,E-1):0;d=C(d,1,E),n.focusedIndex=d,n.focusVisible=!0,O(d),pe(d),a()};p.root.addEventListener("focusin",Z);let l=(E)=>{if(K.destroyed)return;let d=E.relatedTarget;if(d&&p.root.contains(d))return;n.focusVisible=!1,a(),p.content.removeAttribute("aria-activedescendant")};if(p.root.addEventListener("focusout",l),u.registerDestroyHandler(()=>{p.root.removeEventListener("focusin",Z),p.root.removeEventListener("focusout",l)}),u.registerClickHandler((E)=>{if(y(u),!U(E))return;if(t==="multiple"&&E.shiftKey&&n.focusedIndex>=0){let V=m>=0?m:n.focusedIndex,R=L(V),k=L(x);if(R>=0&&k>=0)se(V,x);n.focusedIndex=x,n.focusVisible=r,m=x,P();return}if(n.focusedIndex=x,n.focusVisible=r,m=x,(p.content.getAttribute("tabindex")!==null?p.content:p.root).focus(Zn),t==="single")X(G.id,G);else B(G.id,G);P()}),s)u.registerKeydownHandler((E)=>{y(u);let d=T();if(d===0)return;let V=u.getNavConfig(),R=n.focusedIndex,k=!1,re=!1;if(V.navigate&&(E.key==="ArrowUp"||E.key==="ArrowDown"||E.key==="ArrowLeft"||E.key==="ArrowRight"||E.key==="PageUp"||E.key==="PageDown"||E.key==="Home"||E.key==="End")){let ce=V.total?V.total():d,ge=V.navigate(n.focusedIndex,E.key,ce);if(ge!==n.focusedIndex)n.focusedIndex=Math.max(0,Math.min(ge,ce-1));n.focusVisible=!0,k=!0}else switch(E.key){case"ArrowUp":{let ce=V.ud||1,ge=V.lr,le=q.axis.primary==="x";if(le&&!ge)break;Ue(n,-(le?ge:ce),d,q.reverse),n.focusVisible=!0,k=!0;break}case"ArrowDown":{let ce=V.ud||1,ge=V.lr,le=q.axis.primary==="x";if(le&&!ge)break;Ue(n,le?ge:ce,d,q.reverse),n.focusVisible=!0,k=!0;break}case"ArrowLeft":{let ce=V.ud||1,ge=V.lr,le=q.axis.primary==="x";if(!le&&!ge)break;Ue(n,-(le?ce:ge),d,q.reverse),n.focusVisible=!0,k=!0;break}case"ArrowRight":{let ce=V.ud||1,ge=V.lr,le=q.axis.primary==="x";if(!le&&!ge)break;Ue(n,le?ce:ge,d,q.reverse),n.focusVisible=!0,k=!0;break}case"Home":if(d>0)n.focusedIndex=0;n.focusVisible=!0,k=!0;break;case"End":if(d>0)n.focusedIndex=d-1;n.focusVisible=!0,k=!0;break;case"PageUp":case"PageDown":{let ce=V.ud||1,ge=Math.max(0,n.focusedIndex),le=V.scrollIndex?V.scrollIndex(ge):ge,ve=c.getSize(le),J=K.containerSize,f=(ve>0?Math.max(1,Math.floor(J/ve)):10)*ce;if(M&&S){let ee=M(n.focusedIndex),fe=E.key==="PageUp"?-f:f,me=K.totalItems-1;n.focusedIndex=S(Mt(ee+fe,ee,ce,me+1))}else{let ee=E.key==="PageUp"?n.focusedIndex-f:n.focusedIndex+f;n.focusedIndex=Mt(ee,n.focusedIndex,ce,d)}n.focusVisible=!0,k=!0;break}case" ":case"Enter":if(E.key===" "&&E.shiftKey&&t==="multiple"&&n.focusedIndex>=0){if(m>=0){let ce=L(m),ge=L(n.focusedIndex);if(ce>=0&&ge>=0)se(m,n.focusedIndex)}n.focusVisible=!0,re=!0,k=!0;break}if(n.focusedIndex>=0){let ce=z(n.focusedIndex);if(ce)B(ce.id,ce),m=n.focusedIndex;n.focusVisible=!0,re=!0,k=!0}break;case"a":if((E.ctrlKey||E.metaKey)&&t==="multiple"){if(n.selected.size===K.totalItems)W();else w();n.focusVisible=!0,re=!0,k=!0}break;case"Delete":case"Backspace":if(n.selected.size>0)_.emit("delete",{selected:at(n.selected),items:I()}),k=!0;break}if(n.focusedIndex!==R&&v){let ce=n.focusedIndex>R?1:-1;n.focusedIndex=C(n.focusedIndex,ce,d)}let Q=n.focusedIndex!==R;if(E.shiftKey&&t==="multiple"&&!re&&Q){if(E.key==="ArrowUp"||E.key==="ArrowDown"||E.key==="ArrowLeft"||E.key==="ArrowRight"){let le=z(n.focusedIndex);if(le)B(le.id,le);m=n.focusedIndex,re=!0}if((E.ctrlKey||E.metaKey)&&(E.key==="Home"||E.key==="End")){let le=R>=0?R:n.focusedIndex,ve=L(le),J=L(n.focusedIndex);if(ve>=0&&J>=0)se(le,n.focusedIndex);m=n.focusedIndex,re=!0}}if(o&&t==="single"&&!re&&Q&&n.focusedIndex>=0){let ce=z(n.focusedIndex);if(ce)X(ce.id,ce);re=!0}if(k){if(E.preventDefault(),Q&&n.focusedIndex>=0){if(b||!V.navigate)pe(n.focusedIndex);O(n.focusedIndex)}if(re)P();else if(Q){if(a(),n.focusedIndex>=0){let ce=z(n.focusedIndex);if(ce)_.emit("focus:change",{id:ce.id,index:n.focusedIndex})}}}});u.registerMethod("select",(...E)=>{for(let d of E)X(d);P()}),u.registerMethod("deselect",(...E)=>{for(let d of E)te(d);P()}),u.registerMethod("toggleSelect",(E)=>{B(E),P()}),u.registerMethod("selectAll",()=>{if(t!=="multiple")return;y(u),w(),P()}),u.registerMethod("clearSelection",()=>{W(),P()}),u.registerMethod("getSelected",()=>at(n.selected)),u.registerMethod("getSelectedItems",()=>I()),u.registerMethod("selectNext",()=>{y(u);let E=T();if(E===0)return;if(Ue(n,1,E,q.reverse),v)n.focusedIndex=C(n.focusedIndex,1,E);let d=z(n.focusedIndex);if(d)X(d.id,d);P()}),u.registerMethod("selectPrevious",()=>{y(u);let E=T();if(E===0)return;if(Ue(n,-1,E,q.reverse),v)n.focusedIndex=C(n.focusedIndex,-1,E);let d=z(n.focusedIndex);if(d)X(d.id,d);P()}),u.registerMethod("_seedSelection",(E)=>{if(t==="single"){if(E.length===1)n.selected.add(E[0])}else for(let d of E)n.selected.add(d)}),u.registerMethod("_isFollowFocus",()=>o),u.registerMethod("_getFocusedId",()=>{if(n.focusedIndex<0)return;return z(n.focusedIndex)?.id}),u.registerMethod("_focusById",(E)=>{let d=K.totalItems;for(let V=0;V<d;V++){if(v?.(V))continue;let R=z(V);if(R&&R.id===E){n.focusedIndex=V,n.focusVisible=r,_.emit("focus:change",{id:E,index:V});return}}})},destroy(){N.clear()}}}var Jn=0,Qn=1000,eo=15,to=!0,no=16,oo=!0,Je=2,ro="scroll",io=350,so=12,lo=(e)=>{if(typeof e!=="object"){let t=e??Je;return{top:t,right:t,bottom:t,left:t}}return{top:e.top??Je,right:e.right??Je,bottom:e.bottom??Je,left:e.left??Je}},En=(e,t,o={},r="vlist",s=!1,n,i,a)=>{let _=navigator.userAgentData?.platform||navigator.platform+navigator.userAgent,p=o.platform?o.platform==="windows":!/Mac|Android/i.test(_),{autoHide:c=!p,autoHideDelay:K=Qn,minThumbSize:H=eo,showOnHover:m=to,showOnViewportEnter:N=oo,clickBehavior:M=ro}=o,S=M==="page"?"scroll":M,v=n??e,b=lo(o.padding),T=s?b.left:b.top,A=s?b.right:b.bottom,y=s?b.bottom:b.right,L=o.hoverZoneWidth??y+no,D=!0,g=0,z=0,C=0,X=0,B=!1,W=!1,te=0,se=0,w=0,I=null,P=!1,G=null,x=null,u=-1,q=-1,F=-1,U=-1,j=-1,pe=e.id?"":(()=>{let ne;do ne=`${r}-scrollport-${++Jn}`;while(document.getElementById(ne));return e.id=ne,ne})(),O=0,Z=0,l=null,E=null,d=null,V=s?"width":"height",R=s?"translateX":"translateY",k=s?(ne)=>ne.clientX:(ne)=>ne.clientY,re=s?"left":"top",Q=document.createElement("div"),ce=document.createElement("div"),ge=document.createElement("div"),le=s?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",ve=()=>{if(v===e)return;let ne=e.offsetTop;Q.style[s?"left":"top"]=ne?`calc(var(${le}) + ${ne}px)`:`var(${le})`,ge.style[s?"left":"top"]=`${ne}px`},J=()=>{if(Q.className=`${r}-scrollbar`,Q.setAttribute("role","scrollbar"),Q.setAttribute("aria-controls",e.id),Q.setAttribute("aria-orientation",s?"horizontal":"vertical"),Q.setAttribute("aria-label",e.getAttribute("aria-label")||"Scroll"),Q.setAttribute("aria-valuemin","0"),Q.tabIndex=0,ce.className=`${r}-scrollbar__thumb`,s)Q.classList.add(`${r}-scrollbar--horizontal`);if(o.padding!==void 0)v.style.setProperty("--vlist-custom-scrollbar-padding-top",`${b.top}px`),v.style.setProperty("--vlist-custom-scrollbar-padding-right",`${b.right}px`),v.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${b.bottom}px`),v.style.setProperty("--vlist-custom-scrollbar-padding-left",`${b.left}px`);if(o.minThumbSize!==void 0)Q.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${H}px`);if(Q.appendChild(ce),v.appendChild(Q),ge.className=`${r}-scrollbar__hover`,s)ge.classList.add(`${r}-scrollbar__hover--horizontal`),ge.style.height=`${L}px`;else ge.style.width=`${L}px`;if(v.appendChild(ge),v!==e)ve()},oe=()=>{if(I)clearTimeout(I),I=null},f=()=>{if(!c)return;oe(),I=setTimeout(fe,K)},ee=()=>{if(!D||g<=z)return;if(oe(),!P)Q.classList.add(`${r}-scrollbar--visible`),P=!0;if(c&&!B&&!W&&document.activeElement!==Q)f()},fe=()=>{if(B||W||document.activeElement===Q)return;Q.classList.remove(`${r}-scrollbar--visible`),P=!1},me=(ne,Le)=>{if(g=ne,z=Le,ve(),Ie(w),!D||g<=z){Q.style.display="none",Q.classList.remove(`${r}-scrollbar--visible`),P=!1;return}Q.style.display="";let Y=Math.max(0,z-T-A),h=z/g;if(C=Math.max(H,h*Y),ce.style[V]=`${C}px`,X=Y-C,Ie(w),!c)ee()},Ie=(ne)=>{let Le=Math.max(0,g-z);if(w=Math.max(0,Math.min(ne,Le)),u!==Le)u=Le,Q.setAttribute("aria-valuemax",String(Le));if(q!==w)q=w,Q.setAttribute("aria-valuenow",String(w));let Y=i?.(),h=Y?.getTotal()??0,de=h?Y.indexAtOffset(w)+1:0;if(de!==F||h!==U)F=de,U=h,Q.setAttribute("aria-valuetext",`Row ${de} of ${h}`);if(Le<=0||X<=0)return;let Pe=w/Le*X;if(Pe!==j)j=Pe,ce.style.transform=`${R}(${Pe}px)`},xe=(ne)=>{if(!D||ne.target!==Q||document.activeElement!==Q)return;if(ne.stopPropagation(),ne.altKey||ne.ctrlKey||ne.metaKey)return;let Le=i?.(),Y=Le?.getSize(Le.indexAtOffset(w))??40,h=w;switch(ne.key){case(s?"ArrowLeft":"ArrowUp"):h-=Y;break;case(s?"ArrowRight":"ArrowDown"):h+=Y;break;case"PageUp":h-=z;break;case"PageDown":h+=z;break;case"Home":h=0;break;case"End":h=g;break;default:return}ne.preventDefault(),t(Math.max(0,Math.min(h,Math.max(0,g-z)))),ee()},be=(ne)=>{if(ne.target===ce||S!=="jump"||X<=0)return;let Le=g-z,Y=Q.getBoundingClientRect(),h=k(ne)-Y[re],de=Math.max(0,Math.min(h-C/2,X));t(de/X*Le),ee()},Se=()=>{if(l!==null)clearTimeout(l),l=null;if(E!==null)cancelAnimationFrame(E),E=null;d=null},Te=(ne)=>{let Le=X>0?Z/ne*X:0;if(O<Le)return-1;if(O>=Le+C)return 1;return 0},Ce=()=>{let ne=g-z,Le=Te(ne);if(Le===0){Se();return}if(Le===-1){if(Z<=0){Se();return}let Y=Math.max(0,Z-z);Z=Y,t(Y)}else{if(Z>=ne){Se();return}let Y=Math.min(ne,Z+z);Z=Y,t(Y)}ee()},ye=(ne)=>{if(d===null){d=ne,E=requestAnimationFrame(ye);return}let Le=g-z,Y=ne-d;d=ne;let h=Te(Le);if(h===0){Se();return}let de=so*z/1000,Pe=Math.min(de*Y,z);if(h===-1){if(Z<=0){Se();return}let we=Math.max(0,Z-Pe);Z=we,t(we)}else{if(Z>=Le){Se();return}let we=Math.min(Le,Z+Pe);Z=we,t(we)}oe(),E=requestAnimationFrame(ye)},Ee=(ne)=>{if(ne&&ne.pointerId!==G)return;let Le=G,Y=x;if(G=null,x=null,B=!1,Q.classList.remove(`${r}-scrollbar--dragging`),Se(),Le!==null&&Y?.hasPointerCapture(Le))Y.releasePointerCapture(Le);f()},ie=(ne)=>{if(!D||ne.button!==0||G!==null||X<=0)return;if(ne.preventDefault(),ne.stopPropagation(),G=ne.pointerId,B=ne.target===ce,x=B?ce:ne.currentTarget,x.setPointerCapture(G),oe(),B)te=k(ne),se=w,Q.classList.add(`${r}-scrollbar--dragging`);else if(S==="jump")be(ne);else O=k(ne)-Q.getBoundingClientRect()[re],Z=w,Ce(),l=setTimeout(()=>{E=requestAnimationFrame(ye)},io);ee()},ae=(ne)=>{if(!B||ne.pointerId!==G)return;ne.stopPropagation();let Le=k(ne)-te,Y=Math.max(0,g-z),h=Math.max(0,Math.min(se+Le/X*Y,Y));Ie(h),t(h)},ze=()=>{if(N)ee()},Re=()=>{if(!B){if(W=!1,c)f()}},ue=()=>{W=!0,oe(),ee()},he=()=>{if(W=!1,!B&&c)f()},Me=["width","radius","thumb-color","track-color"],Ae=(ne,Le)=>v.style.setProperty(`--vlist-custom-scrollbar-${ne}`,Le),ke=Me.map((ne)=>v.style.getPropertyValue(`--vlist-custom-scrollbar-${ne}`)),Ge=ke.slice(0,2),Fe=[],Ne=()=>{for(let de=0;de<2;de++){let Pe=Me[de],we=v.style.getPropertyValue(`--vlist-custom-scrollbar-${Pe}`);if(we!==Fe[de])Ge[de]=we;Ae(Pe,Ge[de])}let ne=getComputedStyle(a??v),Le=o.width??ne.getPropertyValue("scrollbar-width"),Y=ne.getPropertyValue("scrollbar-color").match(/[\w-]+\([^)]*\)|\S+/g);D=o.enabled!==!1&&Le!=="none";let h=[typeof o.width==="number"?`${o.width}px`:ne.getPropertyValue("--vlist-custom-scrollbar-width").trim()||(Le==="thin"||!p?"6px":"14px"),typeof o.radius==="number"?`${o.radius}px`:ne.getPropertyValue("--vlist-custom-scrollbar-radius").trim()||(p?"0px":"4px"),o.thumbColor??(Y?.length===2?Y[0]:ke[2]),o.trackColor??(Y?.length===2?Y[1]:ke[3])];for(let de=0;de<Me.length;de++)Ae(Me[de],h[de]);if(Fe=h.slice(0,2),ge.style.display=D?"":"none",e.classList.toggle(`${r}-viewport--gutter`,D&&!!o.gutter),!D)Ee();me(g,z)},Be=()=>{oe(),Se(),Ee(),oe();for(let ne of He)ne();for(let ne=0;ne<Me.length;ne++)Ae(Me[ne],ke[ne]);if(e.classList.remove(`${r}-viewport--gutter`),ge.remove(),v.style.removeProperty("--vlist-custom-scrollbar-padding-top"),v.style.removeProperty("--vlist-custom-scrollbar-padding-right"),v.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),v.style.removeProperty("--vlist-custom-scrollbar-padding-left"),Q.remove(),pe&&e.id===pe)e.removeAttribute("id")};J();let He=[],_e=(ne,Le,Y)=>{ne.addEventListener(Le,Y),He.push(()=>ne.removeEventListener(Le,Y))};for(let ne of[Q,ce,ge])_e(ne,"pointerdown",ie),_e(ne,"pointermove",ae),_e(ne,"pointerup",Ee),_e(ne,"pointercancel",Ee),_e(ne,"lostpointercapture",Ee);if(_e(Q,"keydown",xe),_e(Q,"focus",ee),_e(Q,"blur",f),_e(e,"mouseenter",ze),_e(e,"mouseleave",Re),_e(Q,"mouseenter",ue),_e(Q,"mouseleave",he),m)_e(ge,"mouseenter",ue),_e(ge,"mouseleave",he);return Ne(),{refresh:Ne,show:ee,hide:fe,updateBounds:me,updatePosition:Ie,isVisible:()=>P,destroy:Be}};function Pt(e){let t=null,o,r=0,s=0,n=0;return{name:"scrollbar",priority:15,setup(i){let{dom:a,config:_}=i,{classPrefix:p}=_,c=_.axis.primary==="x";o=i.getState(),r=_.mainAxisPadding;let K=(H)=>{i.scrollTo(H)};i.registerMethod("_scrollbar:setCallback",(H)=>{K=H}),t=En(a.viewport,(H)=>{K(H)},e,p,c,a.root,()=>i.sizeCache,a.root.parentElement),a.viewport.classList.add(`${p}-viewport--custom-scrollbar`),i.registerMethod("refreshScrollbar",()=>t?.refresh()),queueMicrotask(()=>{t?.updateBounds(o.totalSize+r,o.containerSize)}),i.registerMethod("_scrollbar:getInstance",()=>t),i.registerDestroyHandler(()=>{if(t?.destroy(),t=null,a.viewport.classList.remove(`${p}-viewport--custom-scrollbar`),e?.gutter)a.viewport.classList.remove(`${p}-viewport--gutter`)})},hooks:{onAfterScroll(i){let a=o.totalSize+r,_=o.containerSize;if(a!==s||_!==n)s=a,n=_,t?.updateBounds(a,_);t?.updatePosition(i),t?.show()},onResize(){let i=o.totalSize+r,a=o.containerSize;s=i,n=a,t?.updateBounds(i,a)}},destroy(){t?.destroy(),t=null}}}var ao=(e)=>{try{let t=sessionStorage.getItem(e);if(!t)return;return JSON.parse(t)}catch{return}};function zt(e){let t=e?.autoSave,o=e?.restore??(t?ao(t):void 0),r=!1,s=null;return{name:"snapshots",priority:50,setup(n){let{sizeCache:i,emitter:a,scroll:_}=n,p=n.getState(),c=()=>{let m=_.getPixelEquivalent(),N=p.totalItems,S=n.getMethod("getSelected")?.();if(N===0){let g={index:0,offsetInItem:0,total:0};if(S?.length)g.selectedIds=S;return g}let v=i.indexAtOffset(m),b=m-i.getOffset(v);b=Math.max(0,b);let T={index:v,offsetInItem:b,total:N,scrollTop:m},A=i.getSize(v);if(A)T.offsetRatio=b/A;let y=n.getMethod("_layoutToDataIndex");if(y){let g=y(v);if(g<0){for(let z=v+1;z<N;z++)if(g=y(z),g>=0)break}if(g>=0)T.dataIndex=g}let L=n.getMethod("_getTotal");if(L)T.dataTotal=L();if(S?.length)T.selectedIds=S;let D=n.getMethod("_getFocusedId");if(D){let g=D();if(g!==void 0)T.focusedId=g}return T};n.registerMethod("getScrollSnapshot",c);let K=(m,N=!0)=>{let{index:M,offsetInItem:S,selectedIds:v,focusedId:b}=m,T=p.totalItems,A=m.dataTotal??m.total;if(T===0&&A&&A>0){let I=n.getMethod("_setTotal");if(I)I(A),T=p.totalItems;i.rebuild(T),n.updateContentSize(i.getTotalSize()),p.totalSize=i.getTotalSize()}if(T===0)return Promise.resolve();if(!Number.isFinite(M)||!Number.isFinite(S))return Promise.resolve();if(i.getTotal()===0)i.rebuild(T),n.updateContentSize(i.getTotalSize()),p.totalSize=i.getTotalSize();let L=n.getMethod("_dataToLayoutIndex"),D=M;if(m.dataIndex!==void 0&&m.dataIndex>=0)D=L?L(m.dataIndex):m.dataIndex;else if(L)D=L(M);let g=Math.max(0,Math.min(D,T-1)),z=i.getSize(g),C=m.offsetRatio!==void 0?m.offsetRatio*z:Math.min(S,z),X=n.getMethod("_getTotal")?.(),B=m.total===T||X!==void 0&&m.dataTotal===X,W;if(m.scrollTop!==void 0&&B)W=m.scrollTop;else W=i.getOffset(g)+C;let te=Math.max(0,p.totalSize-p.containerSize);if(W=Math.max(0,Math.min(W,te)),n.scrollTo(W),N&&v?.length){let I=n.getMethod("select");if(I)I(...v)}let se=n.getMethod("loadVisibleRange"),w=()=>{if(b===void 0)return;let I=n.getMethod("_focusById");if(I)I(b)};return new Promise((I)=>{let P=(G)=>{if(G)w();I()};if(se){let G=0,x=()=>{if(p.containerSize>0){if(Math.abs(_.getPixelEquivalent()-W)>1)n.scrollTo(W);se().then(()=>P(!0),()=>P(!1))}else if(++G<10)requestAnimationFrame(x);else P(!1)};requestAnimationFrame(x)}else{let G=n.getMethod("reload");if(G)requestAnimationFrame(()=>{G().then(()=>P(!0),()=>P(!1))});else requestAnimationFrame(()=>P(!0))}})};n.registerMethod("restoreScroll",K);let H=!!(o&&t);if(n.registerDestroyHandler(()=>{r=!0}),t){s=()=>{if(r||H)return;let T=c();try{sessionStorage.setItem(t,JSON.stringify(T))}catch{}},n.registerMethod("_saveSnapshot",s);let m=0,N=()=>{if(m)return;m=requestAnimationFrame(()=>{if(m=0,s)s()})};a.on("selection:change",N),a.on("focus:change",N);let M=0,S=()=>{if(M=0,s)s()},v=()=>{if(M)clearTimeout(M);M=setTimeout(S,300)};a.on("scroll",v);let b=()=>{s?.()};if(window.addEventListener("beforeunload",b),n.registerDestroyHandler(()=>{if(m)cancelAnimationFrame(m);if(M)clearTimeout(M);window.removeEventListener("beforeunload",b)}),o&&o.total&&o.total>0){let T=n.getMethod("_cancelAutoLoad");if(T)T();let A=n.getMethod("_setTotal");if(A)A(o.total)}}if(o){let m=!0;if(o.selectedIds?.length){let N=n.getMethod("_seedSelection");if(N)N(o.selectedIds),m=!1}queueMicrotask(()=>{if(K(o,m),H=!1,s)s()})}},hooks:{onIdle(){if(s&&!r)s()}},destroy(){r=!0,s=null}}}function uo(e){let t=[];if(typeof window<"u"&&e.scroll?.element===window)t.push(St());let o=e.item,r=e.orientation==="horizontal",s=r?o.width!=null:o.height!=null,n=r?o.estimatedWidth!=null:o.estimatedHeight!=null;if(!s&&n)t.push(yt());if(e.adapter)t.push(It({adapter:e.adapter,...e.loading&&{loading:e.loading}}));if(e.layout==="grid"&&e.grid)t.push(Tt(e.grid));if(e.layout==="masonry"&&e.masonry)t.push(xt(e.masonry));if(e.groups){let _=e.groups,p=typeof _.headerHeight==="function"?_.headerHeight("",0):_.headerHeight;t.push(Ct({getGroupForIndex:_.getGroupForIndex,...p!==void 0&&{headerHeight:p},..._.headerTemplate!==void 0&&{headerTemplate:_.headerTemplate},..._.sticky!==void 0&&{sticky:_.sticky}}))}if((e.selection?.mode||"none")!=="none")t.push(ut(e.selection));else t.push(ut({mode:"none"}));let a=e.scroll?.scrollbar||e.scrollbar;if(a!=="none"&&a!=="native"){let _=a&&typeof a==="object"?a:{};t.push(Pt(_))}if(t.push(zt()),e.plugins&&e.plugins.length>0){let _=new Set(e.plugins.map((c)=>c.name));return[...t.filter((c)=>!_.has(c.name)),...e.plugins]}return t}function fi(e){let{factory:t,...o}=e;return(t??dn)(o,uo(e))}export{fi as createVListFromConfig,uo as resolvePlugins};
|
|
1
|
+
var ct=16777216,et=3,Ht="vlist";var tt=50;var kt=50,_t=2,Ft=15,Vt=6,mt=2000,Dt=30000,ft=16000000,nt=150,gt=1,Ot=(e)=>e<0.5?2*e*e:1-(-2*e+2)**2/2,$t=300;var Gt="x",Bt=20,pt="_isPlaceholder",$e="__placeholder_";function ot(e){let{state:t,viewport:r,isX:o,onFrame:i,onIdle:n}=e,s=e.idleTimeout||nt,a=null,R=null;function g(m=o?r.scrollLeft:r.scrollTop){t.prevScrollPosition=t.scrollPosition,t.scrollPosition=m,t.scrollDirection=m>t.prevScrollPosition?1:m<t.prevScrollPosition?-1:0,i(),d()}function d(){if(a!==null)clearTimeout(a);a=setTimeout(()=>{a=null,t.scrollDirection=0,n()},s)}function V(){if(R!==null)cancelAnimationFrame(R),R=null}function F(m,Y,L,S=Ot,h){V();let p=t.scrollPosition,y=typeof m==="function"?m:()=>m,H=y();if(Math.abs(H-p)<1){if(L)L(H);else if(o)r.scrollLeft=H;else r.scrollTop=H;h?.();return}let v=performance.now();function x(D){H=y();let f=D-v,w=Math.min(f/Y,1),M=p+(H-p)*S(w);if(L)L(M);else if(o)r.scrollLeft=M;else r.scrollTop=M;if(!L)g(M);if(w<1)R=requestAnimationFrame(x);else R=null,h?.()}R=requestAnimationFrame(x)}return{attach(){},detach(){if(V(),a!==null)clearTimeout(a),a=null},cancelScroll:V,smoothScrollTo:F,commitScroll:g}}function Nt(e){let{state:t,viewport:r,isX:o,wheelEnabled:i}=e,n=e.scrollTarget??r,s=ot(e),a=s.commitScroll;function R(){let d=o?r.scrollLeft:r.scrollTop;if(Math.abs(d-t.scrollPosition)<0.5)return;a(d)}function g(d){let V;if(o){if(Math.abs(d.deltaX)>Math.abs(d.deltaY))return;let F=r.scrollLeft,m=r.scrollWidth-r.clientWidth;if(V=Math.max(0,Math.min(F+d.deltaY*gt,m)),Math.abs(V-F)<1)return;d.preventDefault(),r.scrollLeft=V}else{let F=r.scrollWidth>r.clientWidth;if(F&&Math.abs(d.deltaX)>Math.abs(d.deltaY))return;if(F&&d.deltaX!==0)d.preventDefault(),r.scrollLeft+=d.deltaX;let m=r.scrollTop,Y=r.scrollHeight-r.clientHeight;if(V=Math.max(0,Math.min(m+d.deltaY*gt,Y)),Math.abs(V-m)<1)return;d.preventDefault(),r.scrollTop=V}a(V)}return{...s,attach(){if(n.addEventListener("scroll",R,{passive:!0}),i)n.addEventListener("wheel",g,{passive:!1})},detach(){if(n.removeEventListener("scroll",R),i)n.removeEventListener("wheel",g);s.detach()}}}var rt={top:0,right:0,bottom:0,left:0},Wt=(e)=>{if(e==null)return rt;if(typeof e==="number")return e===0?rt:{top:e,right:e,bottom:e,left:e};if(e.length===2){let[n,s]=e;return n===0&&s===0?rt:{top:n,right:s,bottom:n,left:s}}let[t,r,o,i]=e;return t===0&&r===0&&o===0&&i===0?rt:{top:t,right:r,bottom:o,left:i}},Yt=(e,t)=>t?e.left+e.right:e.top+e.bottom,qt=(e,t)=>t?e.top+e.bottom:e.left+e.right;function Ut(e){let t={visibleIndices:new Int32Array(e),visibleOffsets:new Float64Array(e),visibleSizes:new Float64Array(e),visibleCount:0,startIndex:0,totalSize:0,capacity:e,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,prevAriaTotal:-1,resizeCapacity(r,o,i=et){if(o<=0||r<=0)return;let n=Math.ceil(r/o)+i*2;if(n<=t.capacity)return;let s=n+8,a=new Int32Array(s),R=new Float64Array(s),g=new Float64Array(s);a.set(t.visibleIndices),R.set(t.visibleOffsets),g.set(t.visibleSizes),t.visibleIndices=a,t.visibleOffsets=R,t.visibleSizes=g,t.capacity=s},clear(){t.visibleCount=0,t.startIndex=0}};return t}var Cn=(e,t)=>{let r=t;return{getOffset:(o)=>o*e,getSize:(o)=>e,indexAtOffset:(o)=>{if(r===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(o/e),r-1))},getTotalSize:()=>r*e,getTotal:()=>r,rebuild:(o)=>{r=o},isVariable:()=>!1}},Mn=(e,t)=>{let r=t,o=new Float64Array(0),i=(s)=>{r=s,o=new Float64Array(s+1),o[0]=0;for(let a=0;a<s;a++)o[a+1]=o[a]+e(a)};i(t);let n=(s)=>{if(r===0)return 0;if(s<=0)return 0;if(s>=o[r])return r-1;let a=0,R=r-1;while(a<R){let g=a+R+1>>>1;if(o[g]<=s)a=g;else R=g-1}return a};return{getOffset:(s)=>{if(s<=0)return 0;if(s>=r)return o[r];return o[s]},getSize:(s)=>e(s),indexAtOffset:(s)=>n(s),getTotalSize:()=>o[r]??0,getTotal:()=>r,rebuild:(s)=>i(s),isVariable:()=>!0}},it=(e,t)=>{if(typeof e==="number")return Cn(e,t);return Mn(e,t)};function Kt(e){let t=[],r=`${e}-item`,o=document.createElement("div");return o.className=r,{acquire(){if(t.length>0)return t.pop();return o.cloneNode(!1)},release(i){if(i.className=r,i.removeAttribute("style"),i.removeAttribute("id"),i.removeAttribute("role"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-posinset"),i.removeAttribute("aria-setsize"),i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.textContent="",t.length<100)t.push(i)},get size(){return t.length},clear(){t.length=0}}}function Ke(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let r=0;r<t.length;r++)t[r].setAttribute("tabindex","-1")}function bt(e){if(typeof e==="string"){let t=document.querySelector(e);if(!t)throw Error(`[vlist] Container not found: ${e}`);return t}return e}function Xt(e,t,r,o){let i=r?`${t} ${t}--horizontal`:t,n=r?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",s=r?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",a=' role="list"';if(o)a+=` aria-label="${o.replace(/"/g,""")}"`;if(r)a+=' aria-orientation="horizontal"';e.insertAdjacentHTML("beforeend",`<div class="${i}"><div class="${t}-viewport" style="${n}" tabindex="-1"><div class="${t}-content" style="${s}"${a}></div></div></div>`);let R=e.lastElementChild,g=R.firstElementChild,d=g.firstElementChild,V=document.createElement("div");return V.className=`${t}-live`,V.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",V.setAttribute("aria-live","polite"),V.setAttribute("aria-atomic","true"),V.setAttribute("role","status"),R.appendChild(V),{root:R,viewport:g,content:d,liveRegion:V}}function Pn(e,t){if(e.getTotal()<=0)return{index:0,offsetPx:0};let o=t<=0?0:t,i=e.indexAtOffset(o),n=o-e.getOffset(i);return{index:i,offsetPx:n>0?n:0}}function zn(e,t){let r=An(e,t);return e.getOffset(r.index)+r.offsetPx}function An(e,t){let r=e.getTotal();if(r<=0)return{index:0,offsetPx:0};let{index:o,offsetPx:i}=t;if(o<0)return{index:0,offsetPx:0};if(o>r-1)o=r-1;while(i>0&&o<r-1){let n=e.getSize(o);if(i<n)break;i-=n,o++}while(i<0&&o>0)o--,i+=e.getSize(o);if(i<0)i=0;return{index:o,offsetPx:i}}function jt(e){let{sizeCache:t,getPixel:r,setPixel:o,getContainerSize:i}=e;function n(){let a=t.getTotalSize()+e.padding-i();return a>0?a:0}function s(a){if(a<=0)return 0;let R=n();return a>R?R:a}return{getLogical(){return Pn(t,r())},setLogical(a){o(s(zn(t,a)))},getPixelEquivalent(){return r()},setPixelEquivalent(a){o(s(a))},getMaxPixelEquivalent:n,getRenderOrigin:e.getRenderOrigin,scrollByPx(a){o(s(r()+a))}}}var Ze=[],wn={calculate:Ze,commit:Ze,afterScroll:Ze,idle:Ze,resize:Ze};function Zt(e){if(e.length===0)return wn;let t=[],r=[],o=[],i=[],n=[];for(let s=0;s<e.length;s++){let a=e[s].hooks;if(a===void 0)continue;if(a.onCalculate!==void 0)t.push(a.onCalculate);if(a.onCommit!==void 0)r.push(a.onCommit);if(a.onAfterScroll!==void 0)o.push(a.onAfterScroll);if(a.onIdle!==void 0)i.push(a.onIdle);if(a.onResize!==void 0)n.push(a.onResize)}return{calculate:t,commit:r,afterScroll:o,idle:i,resize:n}}function Jt(e,t){for(let r=0;r<e.length;r++)e[r](t)}function Qt(e,t){for(let r=0;r<e.length;r++)e[r](t)}function ht(e,t,r){for(let o=0;o<e.length;o++)e[o](t,r)}function en(e){for(let t=0;t<e.length;t++)e[t]()}function tn(e,t,r){for(let o=0;o<e.length;o++)e[o](t,r)}function nn(e,t,r,o,i,n,s,a){let R=o!==0||i!==0;return{prefix:e,selectedClass:`${e}-item--selected`,focusedClass:`${e}-item--focused`,placeholderClass:`${e}-item--placeholder`,replacedClass:`${e}-item--replaced`,translateProp:t?"translateX(":"translateY(",sizeProp:t?"width":"height",itemRole:"listitem",interactive:!1,startPadding:r,gap:s,hasCrossPad:R,crossStartProp:R?t?"top":"left":"",crossEndProp:R?t?"bottom":"right":"",crossStartVal:R?o+"px":"",crossEndVal:R?i+"px":"",oddClass:n,emitter:a??null,indexMap:null,ariaTotalFn:null}}function Rn(e,t,r,o,i){if(e.containerSize<=0||e.totalItems===0)return e.clear(),!0;let{scrollPosition:n,containerSize:s,totalItems:a}=e,R=i??0;e.totalSize=t.getTotalSize();let g=t.indexAtOffset(R>0?Math.max(0,n-R):n),d=t.indexAtOffset(n+s);if(d<a-1)d++;g=Math.max(0,g),d=Math.min(a-1,Math.max(0,d));let V=Math.max(0,g-r),F=Math.min(a-1,d+r),m=Math.ceil(s/1)+r*2+10,Y=F-V+1,L=Math.min(Y,e.capacity,m);if(V===e.prevRangeStart&&F===e.prevRangeEnd&&!e.renderPending&&e.baseOffset===e.prevBaseOffset)return!1;e.visibleCount=L,e.startIndex=V;for(let S=0;S<L;S++){let h=V+S;e.visibleIndices[S]=h,e.visibleOffsets[S]=t.getOffset(h),e.visibleSizes[S]=t.getSize(h)}return Jt(o.calculate,e),e.prevRangeStart=V,e.prevRangeEnd=F,e.prevBaseOffset=e.baseOffset,e.renderPending=!1,!0}var De={selected:!1,focused:!1};function Hn(e,t,r){for(let o=0;o<t;o++)if(e[o]===r)return!0;return!1}function kn(e,t){if(t<=1)return!0;let r=e[0];for(let o=1;o<t;o++){let i=e[o];if(i!==r+1)return!1;r=i}return!0}function _n(e,t,r,o,i,n,s,a,R,g){let d=R?null:i(),{visibleCount:V,visibleIndices:F}=e,m=s.ariaTotalFn?s.ariaTotalFn():e.totalItems,Y=s.interactive?String(m):"",L=s.interactive&&m!==e.prevAriaTotal,S=null,h=s.indexMap;for(let p=0;p<V;p++){let y=F[p],H=h?h(y):y,v=e.visibleOffsets[p],x=e.visibleSizes[p],D=R?R(y):d[y];if(g)g(H,De);else De.selected=!1,De.focused=!1;let f=n.get(y),w=f;if(f===void 0){let M=t.acquire();if(D!==void 0){let te;try{te=o(D,H,De)}catch(ue){if(s.emitter)s.emitter.emit("error",{error:ue instanceof Error?ue:Error(String(ue)),context:`template:render:${H}`});t.release(M);continue}if(typeof te==="string")M.innerHTML=te;else M.textContent="",M.appendChild(te);Ke(M)}if(M.setAttribute("role",s.itemRole),M.setAttribute("data-index",String(H)),s.interactive)M.id=s.prefix+"-item-"+y,M.setAttribute("aria-posinset",String(H+1)),M.setAttribute("aria-setsize",Y);if(D!==void 0){let te=String(D.id);if(M.setAttribute("data-id",te),te.startsWith($e))M.classList.add(s.placeholderClass)}if(s.hasCrossPad)M.style.setProperty(s.crossStartProp,s.crossStartVal),M.style.setProperty(s.crossEndProp,s.crossEndVal);if(g){if(M.classList.toggle(s.selectedClass,De.selected),M.classList.toggle(s.focusedClass,De.focused),De.selected)M.setAttribute("aria-selected","true");else M.removeAttribute("aria-selected");M._lastSelected=De.selected,M._lastFocused=De.focused}if(s.oddClass)M.classList.toggle(s.oddClass,(y&1)===1);let q=v-e.baseOffset+s.startPadding;M.style.transform=s.translateProp+q+"px)",M._lastOffset=q;let ne=x-s.gap;if(M.style[s.sizeProp]=ne+"px",M._lastSize=ne,M._lastItem=D,n.set(y,M),S===null)S=document.createDocumentFragment();S.appendChild(M)}else{if(L)f.setAttribute("aria-setsize",Y);if(D!==void 0&&w._lastItem!==D){let ne=f.getAttribute("data-id"),te=String(D.id),ue;try{ue=o(D,H,De)}catch(fe){if(s.emitter)s.emitter.emit("error",{error:fe instanceof Error?fe:Error(String(fe)),context:`template:render:${H}`});continue}if(typeof ue==="string")f.innerHTML=ue;else f.textContent="",f.appendChild(ue);if(Ke(f),f.setAttribute("data-id",te),w._lastItem=D,ne!==te){let fe=ne!==null&&ne.startsWith($e),j=te.startsWith($e);if(fe!==j)f.classList.toggle(s.placeholderClass,j);if(fe&&!j)f.classList.add(s.replacedClass),setTimeout(()=>{f.classList.remove(s.replacedClass)},300)}}if(g){if(w._lastSelected!==De.selected){if(f.classList.toggle(s.selectedClass,De.selected),De.selected)f.setAttribute("aria-selected","true");else f.removeAttribute("aria-selected");w._lastSelected=De.selected}if(w._lastFocused!==De.focused)f.classList.toggle(s.focusedClass,De.focused),w._lastFocused=De.focused}let M=v-e.baseOffset+s.startPadding;if(w._lastOffset!==M)f.style.transform=s.translateProp+M+"px)",w._lastOffset=M;let q=x-s.gap;if(w._lastSize!==q)f.style[s.sizeProp]=q+"px",w._lastSize=q}}if(S!==null)r.appendChild(S);if(V>0&&kn(F,V)){let p=F[0],y=F[V-1];for(let[H,v]of n)if(H<p||H>y)v.remove(),t.release(v),n.delete(H)}else for(let[p,y]of n)if(!Hn(F,V,p))y.remove(),t.release(y),n.delete(p);if(s.interactive)e.prevAriaTotal=e.totalItems;Qt(a.commit,e)}function St(e,t,r,o,i,n,s,a,R,g,d,V){if(Rn(e,t,r,g,R.startPadding))_n(e,o,i,n,s,a,R,g,d,V)}var vt=()=>{let e={},t=(n,s)=>{if(!e[n])e[n]=new Set;return e[n].add(s),()=>r(n,s)},r=(n,s)=>{e[n]?.delete(s)};return{on:t,off:r,emit:(n,s)=>{e[n]?.forEach((a)=>{try{a(s)}catch(R){console.error(`[vlist] Error in event handler for "${String(n)}":`,R)}})},clear:(n)=>{if(n)delete e[n];else for(let s in e)delete e[s]}}};var on=2,rn=(e=0)=>({velocity:0,sampleCount:0}),sn=(e,t)=>{let r=performance.now(),o=e._lt??r,i=e._lp??t,n=r-o;if(e._lp=t,e._lt=r,n===0)return e.sampleCount=Math.min(e.sampleCount+1,5),e;if(n>100)return e.velocity=0,e.sampleCount=1,e;return e.velocity=Math.abs(t-i)/n,e.sampleCount=Math.min(e.sampleCount+1,5),e};function Fn(e){let{item:t}=e;if(t.height!==void 0&&typeof t.height==="number"){if(!Number.isFinite(t.height)||t.height<=0)throw Error(`vlist: item.height must be a positive number, got ${t.height}`)}if(t.width!==void 0&&typeof t.width==="number"){if(!Number.isFinite(t.width)||t.width<=0)throw Error(`vlist: item.width must be a positive number, got ${t.width}`)}if(t.estimatedHeight!==void 0){if(!Number.isFinite(t.estimatedHeight)||t.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${t.estimatedHeight}`)}if(t.estimatedWidth!==void 0){if(!Number.isFinite(t.estimatedWidth)||t.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${t.estimatedWidth}`)}if(t.gap!==void 0){if(typeof t.gap!=="number"||!Number.isFinite(t.gap)||t.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${t.gap}`)}if(e.overscan!==void 0){if(typeof e.overscan!=="number"||!Number.isFinite(e.overscan)||e.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${e.overscan}`)}let r=e.scroll;if(r?.mode!==void 0||r?.runway!==void 0)throw Error('vlist 3.0: scroll.mode and scroll.runway were removed; bounded mode is gone. Use "vlist/synthetic" for huge lists or "vlist" for native scrolling.')}function Vn(e,t){let r=e==="horizontal"?"x":"y";if(t.some((i)=>i.name==="grid"))return{primary:r,cross:r==="x"?"y":"x"};return{primary:r}}function Dn(e,t){let r=Vn(e.orientation,t),o=r.primary==="x",i=Wt(e.padding);return{axis:r,hasCrossAxis:r.cross!==void 0,overscan:e.overscan??et,reverse:e.reverse??!1,classPrefix:e.classPrefix??Ht,mainAxisPadding:Yt(i,o),crossAxisPadding:qt(i,o),startPadding:o?i.left:i.top,endPadding:o?i.right:i.bottom,crossPadStart:o?i.top:i.left,crossPadEnd:o?i.bottom:i.right,striped:e.item.striped||!1,gap:e.item.gap??0}}function On(e,t){if(t)return e.item.width??e.item.estimatedWidth??100;return e.item.height??e.item.estimatedHeight??40}function $n(e){let t=[...e];return t.sort((r,o)=>(r.priority??50)-(o.priority??50)),t}function Gn(e){let t=new Set;for(let r of e){if(t.has(r.name))throw Error(`[vlist] Duplicate plugin: ${r.name}`);t.add(r.name)}for(let r of e)if(r.conflicts){for(let o of r.conflicts)if(t.has(o))throw Error(`[vlist] Plugin "${r.name}" conflicts with "${o}"`)}}function ln(e,t=[]){let r=!1;return Bn(e,t,void 0,{native:Nt,onContentSize(o,i){if(!r&&o>ft)r=!0,i.emit("error",{error:Error(`Content size (${o}px) exceeds browser limit (${ft}px). Use "vlist/synthetic" for large datasets.`),context:"content:size:overflow"})}})}function Bn(e,t=[],r,o){if(Fn(e),r){if(typeof e.scroll?.scrollbar==="string")throw Error('vlist 3.0: scroll.scrollbar strings require "vlist"; use the scrollbar() plugin with "vlist/synthetic".');if(e.orientation==="horizontal"&&getComputedStyle(bt(e.container)).direction==="rtl")throw Error('vlist: RTL horizontal lists require createVList from "vlist"');for(let O of t)if(O.name==="carousel"||O.name==="sortable")throw Error(`vlist: ${O.name} requires createVList from "vlist"`)}let i=Dn(e,t),n=i.axis.primary==="x",s=On(e,n),a=i.gap,R=a>0?typeof s==="function"?(O)=>s(O)+a:s+a:s,g=typeof s==="number"?s:20,d=e.items?.length??0,V=i.striped?`${i.classPrefix}-item--odd`:"",F=vt(),m=nn(i.classPrefix,n,i.startPadding,i.crossPadStart,i.crossPadEnd,V,a,F),Y=t.length>0?$n(t):t;if(t.length>0)Gn(Y);let L=bt(e.container),S=Xt(L,i.classPrefix,n,e.ariaLabel);if(e.scroll?.scrollbar==="none")S.viewport.classList.add(`${i.classPrefix}-viewport--no-scrollbar`);if(e.scroll?.gutter==="stable")S.viewport.classList.add(`${i.classPrefix}-viewport--gutter-stable`);let p=it(R,d);if(a>0){let O=p.getTotalSize;p.getTotalSize=()=>{let b=O();return b>0?b-a:0}}let y=Kt(i.classPrefix),H=Math.ceil(4096/g)+i.overscan*2+8,v=Ut(H);v.totalItems=d;let x=e.items??[],D=()=>x,f=new Map,w=rn(),M={velocity:0,reliable:!1},q={range:{start:0,end:-1}},ne={scrollPosition:0,direction:"down"},te={scrollPosition:0},ue=-1,fe=-1,j=-1,I=null,C=Zt(Y),G=new Map,T=[],l=[],B=[],k=null,N=null,U,be,_=null,X=null,E=null,P=null,c=null,W=null,z=null,A=null,oe=!1,Z=!1,le=null,ce=0,se=0,he=null,K=null,Q=null,u=null,J=null,de=null,ae=null,Ie=null,xe=null,pe=null;v.containerSize=n?S.viewport.clientWidth:S.viewport.clientHeight,v.crossSize=n?S.viewport.clientHeight:S.viewport.clientWidth;function ye(O){if(N)N(O);else{if(n)S.viewport.scrollLeft=O;else S.viewport.scrollTop=O;be?.()}}let Te=jt({sizeCache:p,getPixel:()=>v.scrollPosition,setPixel:ye,getRenderOrigin:()=>v.baseOffset,getContainerSize:()=>v.containerSize,padding:i.mainAxisPadding});if(t.length>0){let O={dom:S,sizeCache:p,scroll:Te,pool:y,config:i,emitter:F,template:e.item.template,registerMethod(b,ge){G.set(b,ge)},getMethod(b){return G.get(b)},registerClickHandler(b){T.push(b)},registerKeydownHandler(b){l.push(b)},registerDestroyHandler(b){B.push(b)},enableListboxRole(){let b=S.content.getAttribute("role");if(!b||b==="list")S.content.setAttribute("role","listbox"),S.content.setAttribute("tabindex","0");m.itemRole="option",m.interactive=!0},setSizeConfig(b){let ge=it(b,v.totalItems),Ae=G.get("_setSizeCacheBase");if(Ae){let ke=p.rebuild;Object.assign(p,ge),p.rebuild=ke,Ae(ge.rebuild)}else Object.assign(p,ge)},setScrollSource(b){N=b.write,U=b.onContentSize,oe=!0},commitScroll(b){be(b)},setBoundedWrap(b,ge){xe=b,pe=ge},cancelScroll(){Oe?.cancelScroll()},setVirtualTotalFn(b){k=b,m.ariaTotalFn=b},setIndexMapFn(b){m.indexMap=b},getItems:D,getItem(b){return E?E(b):x[b]},getState(){return v},rebuildSizeCache(){p.rebuild(v.totalItems)},updateContentSize:me,setRenderFn(b,ge){_=b,X=ge},renderIfNeeded(){ie()},forceRender(){Pe()},setGetItemFn(b){E=b},setItemStateFn(b){P=b},getItemStateFn(){return P},get rawSizeSpec(){return s},scrollTo:ye,shiftScroll(b){if(Ie?.shiftBy)Ie.shiftBy(b);else O.scrollTo(v.scrollPosition+b)},smoothScrollTo(b,ge,Ae,ke){if(u)u(b,ge,N??void 0,Ae,ke);else O.scrollTo(typeof b==="function"?b():b)},disableDefaultResize(){Z=!0},setScrollTarget(b){le=b},setScrollToPosFn(b){J=b},setScrollToIndexFn(b){de=b},onScrollFrame:ve,onScrollIdle:we,removeItemById(b){if(c)return c(b);let ge=x.findIndex((Ae)=>Ae.id===b);if(ge===-1)return-1;return x.splice(ge,1),v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),ge},insertItemAt(b,ge){if(W){W(b,ge);return}x.splice(ge,0,b),v.totalItems=x.length,p.rebuild(v.totalItems),Ce()},setRemoveItemFn(b){c=b},setInsertItemFn(b){W=b},setUpdateItemFn(b){z=b},setGetIndexByIdFn(b){A=b},getRenderedElement(b){let ge=G.get("_getRenderedElement");if(ge)return ge(b);return f.get(b)??null},setNavConfig(b){if(b.ud!==void 0)ce=b.ud;if(b.lr!==void 0)se=b.lr;if(b.scrollIndex)he=b.scrollIndex;if(b.navigate)K=b.navigate;if(b.total)Q=b.total},getNavConfig:(()=>{let b={ud:0,lr:0,scrollIndex:null,navigate:null,total:null};return()=>(b.ud=ce,b.lr=se,b.scrollIndex=he,b.navigate=K,b.total=Q,b)})()};for(let b of Y)if(b.setup)try{b.setup(O)}catch(ge){F.emit("error",{error:ge instanceof Error?ge:Error(String(ge)),context:`plugin:setup:${b.name}`})}}let Me=i.classPrefix+"--scrolling",Se=!1,Ee=e.scroll?.idleTimeout??nt;function re(){if(ne.scrollPosition=v.scrollPosition,n)ne.direction=v.scrollDirection>0?"right":"left";else ne.direction=v.scrollDirection>0?"down":"up";if(F.emit("scroll",ne),sn(w,v.scrollPosition),M.velocity=w.velocity,M.reliable=w.sampleCount>=on,F.emit("velocity:change",M),v.startIndex!==ue||v.prevRangeEnd!==fe)ue=v.startIndex,fe=v.prevRangeEnd,q.range.start=v.startIndex,q.range.end=v.prevRangeEnd,F.emit("range:change",q)}function me(O,b=!0){if(Ie){if(b)Ie.refresh(O);return}v.totalSize=O;let ge=O+i.mainAxisPadding;if(U?.(ge),b)S.content.style[n?"width":"height"]=ge+"px"}function Ce(){let O=_?v.totalSize:p.getTotalSize();if(me(O,!_),Ie||_)return;o?.onContentSize(O,F)}function Re(){if(!ae)return;if((k?k():x.length)===0)return;let b=ae;ae=null,ze.scrollToIndex(b.index,b.alignOrOptions)}function ie(){if(Re(),_)_();else St(v,p,i.overscan,y,S.content,e.item.template,D,f,m,C,E,P)}function ve(){if(!Se)Se=!0,S.root.classList.add(Me);if(ie(),ht(C.afterScroll,v.scrollPosition,v.scrollDirection),v.scrollPosition!==j)j=v.scrollPosition,re()}function we(){if(Se)Se=!1,S.root.classList.remove(Me);v.scrollDirection=0,en(C.idle),M.velocity=0,M.reliable=!1,F.emit("velocity:change",M),te.scrollPosition=v.scrollPosition,F.emit("scroll:idle",te)}function Pe(){if(Re(),v.renderPending=!0,X)X();else St(v,p,i.overscan,y,S.content,e.item.template,D,f,m,C,E,P);if(ht(C.afterScroll,v.scrollPosition,v.scrollDirection),v.scrollPosition!==j){if(j=v.scrollPosition,re(),I!==null)clearTimeout(I);I=setTimeout(we,Ee)}}let _e=oe?!1:e.scroll?.wheel!==!1,Oe;if(oe&&xe)throw Error("vlist: page() is not compatible with the carousel plugin — bounded page-mode scrolling is not implemented yet.");if(!oe&&(r||xe))Ie=(r??pe)({state:v,sizeCache:p,viewport:S.viewport,content:S.content,isX:n,wheelEnabled:_e,idleTimeout:Ee,...le?{scrollTarget:le}:{},mainAxisPadding:i.mainAxisPadding,...xe?{wrap:xe}:{},onFrame:ve,onIdle:we}),Oe=Ie,N=(O)=>Ie.setLogical(O);else{let O=(oe?ot:o.native)({state:v,viewport:S.viewport,isX:n,wheelEnabled:_e,idleTimeout:Ee,...le?{scrollTarget:le}:{},onFrame:ve,onIdle:we});Oe=O,be=O.commitScroll}u=Oe.smoothScrollTo;function Fe(O){let ge=O.target.closest("[data-index]");if(!ge)return null;let Ae=parseInt(ge.getAttribute("data-index"),10);if(Number.isNaN(Ae))return null;let ke=G.get("_layoutToDataIndex"),Ge;if(ke){let Be=ke(Ae);if(Be<0)return null;let je=G.get("_getItem");Ge=je?je(Be):E?E(Be):x[Be]}else Ge=E?E(Ae):x[Ae];if(Ge===void 0)return null;return{item:Ge,index:Ae}}function Ne(O){for(let ge=0;ge<T.length;ge++)T[ge](O);let b=Fe(O);if(b)F.emit("item:click",{item:b.item,index:b.index,event:O})}function We(O){let b=Fe(O);if(b)F.emit("item:dblclick",{item:b.item,index:b.index,event:O})}function He(O){let b=Fe(O);if(b)F.emit("item:contextmenu",{item:b.item,index:b.index,event:O})}function Ve(O){let b=O.target?.tagName;if((b==="INPUT"||b==="TEXTAREA"||b==="SELECT")&&!((O.ctrlKey||O.metaKey)&&(O.key==="f"||O.key==="F")))return;for(let ge=0;ge<l.length;ge++)l[ge](O)}if(S.content.addEventListener("click",Ne),S.content.addEventListener("dblclick",We),S.content.addEventListener("contextmenu",He),l.length>0)S.root.addEventListener("keydown",Ve);let ee=null;if(!Z)setTimeout(()=>{if(v.destroyed)return;ee=new ResizeObserver((b)=>{for(let ge of b){let{width:Ae,height:ke}=ge.contentRect,Ge=n?Ae:ke,Be=n?ke:Ae;if(Math.abs(Ge-v.containerSize)<1&&Math.abs(Be-v.crossSize)<1)continue;if(v.containerSize=Ge,v.crossSize=Be,v.resizeCapacity(Ge,g,i.overscan),Ie)Ie.refresh(p.getTotalSize());Pe(),tn(C.resize,Ae,ke),F.emit("resize",{width:Ae,height:ke})}}),ee.observe(S.viewport)},0);v.resizeCapacity(v.containerSize,g,i.overscan),Ce(),v.initialized=!0;let Le=null;if(e.defer)Le=requestAnimationFrame(()=>{if(Le=null,!v.destroyed)ie()});else ie();if(!oe)Oe.attach();let ze={get element(){return S.root},get items(){return x},get total(){return k?k():x.length},setItems(O){x=[...O],v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),Pe()},appendItems(O){x.push(...O),v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),Pe()},prependItems(O){x.unshift(...O),v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),Pe()},updateItem(O,b){if(z){if(!z(O,b))return}else{let ge=x.findIndex((Ae)=>Ae.id===O);if(ge===-1)return;x[ge]={...x[ge],...b}}Pe()},insertItem(O,b){if(W)W(O,b??v.totalItems);else{if(b===void 0)x.push(O);else x.splice(b,0,O);v.totalItems=x.length,p.rebuild(v.totalItems),Ce()}Pe()},removeItem(O){if(c){if(c(O)<0)return}else{let b=x.findIndex((ge)=>ge.id===O);if(b===-1)return;x.splice(b,1),v.totalItems=x.length,p.rebuild(v.totalItems),Ce()}Pe()},removeItems(O){if(c){let ke=0;for(let Ge of O)if(c(Ge)>=0)ke++;if(ke>0)Pe();return ke}let b=new Set(O),ge=x.length;x=x.filter((ke)=>!b.has(ke.id));let Ae=ge-x.length;if(Ae>0)v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),v.renderPending=!0,ie();return Ae},getItemAt(O){if(m.indexMap)return x[O];return E?E(O):x[O]},getIndexById(O){if(A)return A(O);return x.findIndex((b)=>b.id===O)},scrollToIndex(O,b="start"){let ge=k?k():x.length;if(ge===0){ae={index:O,alignOrOptions:b};return}let Ae=Math.max(0,Math.min(O,ge-1)),ke=typeof b==="string"?b:b.align??"start",Ge=typeof b==="object"?b.behavior:void 0,Be=typeof b==="object"?b.duration:void 0,je=typeof b==="object"?b.easing:void 0;if(de&&de(Ae,ke,Ge,Be,je)!==!1)return;let ut=p.getOffset(Ae),wt=p.getSize(Ae),Qe=v.containerSize,xn=p.getTotalSize(),Rt=i.mainAxisPadding,Ln=Math.max(0,xn+Rt-Qe),Ye;if(J)Ye=J(Ae,p,Qe,ge,ke);else{let En=i.startPadding;switch(ke){case"center":Ye=En+ut-(Qe-wt)/2;break;case"end":Ye=ut+wt+Rt-Qe;break;default:Ye=ut}Ye=Math.max(0,Math.min(Ye,Ln))}if(Ge==="smooth")Oe.smoothScrollTo(Ye,Be??$t,N??void 0,je);else ye(Ye)},getScrollPosition(){return Te.getPixelEquivalent()},on:F.on.bind(F),off:F.off.bind(F),destroy(){if(v.destroyed)return;if(v.destroyed=!0,Se)Se=!1,S.root.classList.remove(Me);if(Le!==null)cancelAnimationFrame(Le),Le=null;if(I!==null)clearTimeout(I),I=null;Oe.detach(),ee?.disconnect(),S.content.removeEventListener("click",Ne),S.content.removeEventListener("dblclick",We),S.content.removeEventListener("contextmenu",He),S.root.removeEventListener("keydown",Ve);let O=[];for(let b of B)try{b()}catch(ge){O.push(ge instanceof Error?ge:Error(String(ge)))}for(let b of Y)if(b.destroy)try{b.destroy()}catch(ge){O.push(ge instanceof Error?ge:Error(String(ge)))}for(let[,b]of f)b.remove();if(f.clear(),y.clear(),S.root.remove(),F.emit("destroy",void 0),F.clear(),O.length>0)for(let b of O)console.error("vlist: error during destroy:",b)}};for(let[O,b]of G)ze[O]=b;return ze}var st=(e)=>e==null?0:typeof e==="function"?e():e;function yt(e){let t=e?.scrollPadding,r,o;return{name:"page",priority:5,setup(i){let{dom:n,sizeCache:s,config:a,emitter:R}=i,g=a.axis.primary==="x",d=window,V=i.getState();if(i.disableDefaultResize(),n.root.style.overflow="visible",n.root.style.height="auto",g)n.viewport.style.overflowX="visible",n.viewport.style.overflowY="visible";else n.viewport.style.overflow="visible";n.viewport.classList.remove(`${a.classPrefix}-viewport--custom-scrollbar`);let F=!1,m=!1;i.setScrollSource({onContentSize(p){if(p>ct&&!m){let y=`vlist: page() native document size ${p}px exceeds the ${ct}px limit. Use the viewport-scrolled default for larger lists. See https://vlist.io/docs/rfcs/RFC-014-Scroll-Input-Model`;if(!F)throw o?.(),r?.(),n.root.remove(),Error(y);m=!0,console.warn(y)}F=!0},write(p){let y=n.viewport.getBoundingClientRect(),H=(g?y.left+d.scrollX:y.top+d.scrollY)+p;if(g)d.scrollTo({left:H,top:d.scrollY,behavior:"instant"});else d.scrollTo({left:d.scrollX,top:H,behavior:"instant"});i.commitScroll(p)}}),V.containerSize=g?d.innerWidth:d.innerHeight,V.crossSize=g?d.innerHeight:d.innerWidth;let Y=()=>{let p=n.viewport.getBoundingClientRect(),y=Math.max(0,g?-p.left:-p.top);if(Math.abs(y-i.scroll.getPixelEquivalent())<0.5)return;i.commitScroll(y)};d.addEventListener("scroll",Y,{passive:!0}),o=()=>d.removeEventListener("scroll",Y);let{innerWidth:L,innerHeight:S}=d,h=()=>{let{innerWidth:p,innerHeight:y}=d;if((g?Math.abs(p-L):Math.abs(y-S))<1)return;L=p,S=y,V.containerSize=g?p:y,V.crossSize=g?y:p,i.forceRender(),R.emit("resize",{width:p,height:y})};if(d.addEventListener("resize",h),r=()=>d.removeEventListener("resize",h),t)i.setScrollToPosFn((p,y,H,v,x)=>{let D=st(g?t.left:t.top),f=st(g?t.right:t.bottom);if(v===0)return 0;let w=Math.max(0,Math.min(p,v-1)),M=y.getOffset(w),q=y.getSize(w),ne=y.getTotalSize(),te=Math.max(0,ne-H+f),ue;switch(x){case"center":ue=M-D-(H-D-f-q)/2;break;case"end":ue=M-H+q+f;break;default:ue=M-D}return Math.max(-D,Math.min(ue,te))}),i.registerMethod("_scrollItemIntoView",(p)=>{let y=g?d.innerWidth:d.innerHeight,H=st(g?t.left:t.top),v=st(g?t.right:t.bottom),x=n.viewport.getBoundingClientRect(),D=g?d.scrollX:d.scrollY,f=g?x.left:x.top,w=f+D,M=s.getOffset(p),q=s.getSize(p),ne=f+M,te=y-v,ue=D;if(ne<H)ue=w+M-H;else if(ne+q>te)ue=w+M+q-te;if(ue!==D)if(g)d.scrollTo({left:ue,top:d.scrollY,behavior:"instant"});else d.scrollTo({left:d.scrollX,top:ue,behavior:"instant"})});i.registerDestroyHandler(()=>{o?.(),r?.()})},destroy(){o?.(),r?.(),o=void 0,r=void 0}}}function It(e){let t=e?.gap??0,r=null,o=null,i,n,s,a,R,g=new Map,d=new Set,V=new WeakMap,F=0,m=!1,Y=!1,L=!1,S=2;function h(f){return g.get(f)??R}function p(f){return g.has(f)&&!d.has(f)}function y(f){if(!o||i.destroyed)return;if(f===void 0){if(g.size===0)return;g.clear(),d.clear(),o.rebuildSizeCache(),D()}else{if(!g.has(f))return;d.add(f)}o.forceRender()}function H(){return Math.max(0,o.sizeCache.getTotalSize()+o.config.mainAxisPadding-i.containerSize)}function v(){let f=H();return f>0&&n.getPixelEquivalent()>=f-S}function x(){let f=H();if(f>n.getPixelEquivalent())o.scrollTo(f)}function D(){o.updateContentSize(o.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(f){if(n=f.scroll,o=f,i=f.getState(),s=f.config.axis.primary==="x",a=s?"width":"height",t===0)t=f.config.gap;if(R=typeof f.rawSizeSpec==="function"?f.rawSizeSpec(0)+t:f.rawSizeSpec+t,f.setSizeConfig(h),t>0){let te=f.sizeCache.getTotalSize;f.sizeCache.getTotalSize=()=>{let ue=te();return ue>0?ue-t:0}}r=new ResizeObserver((te)=>{if(i.destroyed||!o)return;let ue=!1,fe=f.sizeCache.indexAtOffset(n.getPixelEquivalent());for(let T of te){let l=T.target,B=V.get(l);if(B===void 0)continue;if(l.getAttribute("data-index")!==String(B)){r.unobserve(l);continue}if(p(B))continue;let k=T.borderBoxSize[0];if(!k)continue;let N=s?k.inlineSize:k.blockSize;if(N<=0)continue;let U=N+t,be=g.has(B),_=g.get(B)??R;if(g.set(B,U),d.delete(B),!be||U!==_)ue=!0;if(B<fe&&U!==_)F+=U-_;r.unobserve(l),l.style[a]=`${N}px`}if(!ue)return;let j=v();if(f.rebuildSizeCache(),F)f.shiftScroll(F),F=0;let I=i.scrollDirection!==0,C=i.totalItems>0&&i.prevRangeEnd>=i.totalItems-1,G=Y&&!L;if(G||j||C||!I){if(D(),m=!1,G||j)x()}else m=!0;f.forceRender()}),f.setScrollToIndexFn((te,ue,fe,j,I)=>{let C=te>=i.totalItems-1&&ue==="end";if(Y=C,L=!1,!C)return!1;let G=f.config.mainAxisPadding,T=()=>{let l=f.sizeCache.getTotalSize();return Math.max(0,l+G-i.containerSize)};if(fe==="smooth")L=!0,f.smoothScrollTo(T,j??300,I,()=>{L=!1});else f.scrollTo(T())});let w=()=>{Y=!1},M=f.dom.viewport;M.addEventListener("wheel",w,{passive:!0}),M.addEventListener("touchstart",w,{passive:!0}),f.registerDestroyHandler(()=>{M.removeEventListener("wheel",w),M.removeEventListener("touchstart",w)});let q=f.dom.content,ne=(te)=>{let ue=te.target;if(!ue||ue===q)return;let fe=ue.closest("[data-index]");if(!fe||fe.parentNode!==q)return;let j=Number(fe.getAttribute("data-index"));if(p(j))y(j)};q.addEventListener("load",ne,!0),q.addEventListener("error",ne,!0),f.registerDestroyHandler(()=>{q.removeEventListener("load",ne,!0),q.removeEventListener("error",ne,!0)}),f.registerMethod("isMeasured",p),f.registerMethod("remeasure",y),f.registerMethod("setMeasuredSize",(te,ue)=>{g.set(te,ue)}),f.registerMethod("getMeasuredCount",()=>g.size),f.registerDestroyHandler(()=>{if(r)r.disconnect(),r=null})},hooks:{onCommit(f){if(!r||!o)return;for(let w=0;w<f.visibleCount;w++){let M=f.visibleIndices[w];if(p(M))continue;let q=o.getRenderedElement(M);if(!q)continue;q.style[a]="",V.set(q,M),r.observe(q)}},onIdle(){if(!o||!m)return;let f=v();if(D(),m=!1,f)x(),o.forceRender()}},destroy(){if(r)r.disconnect(),r=null;g.clear(),d.clear(),Y=!1,L=!1,o=null}}}var an=(e={})=>{let{chunkSize:t=100,maxCachedItems:r=5000,evictionBuffer:o=200,onEvict:i}=e,n=new Map,s=0,a=0,R=(I)=>{let C=n.get(I);if(!C)C={items:Array(t),count:0,lastAccess:Date.now()},n.set(I,C);else C.lastAccess=Date.now();return C},g=(I)=>Math.floor(I/t),d=(I)=>I%t,V=()=>s,F=(I)=>{s=I},m=(I)=>{if(I<0||I>=s)return;let C=g(I),G=n.get(C);if(!G)return;return G.items[d(I)]},Y=(I)=>{if(I<0||I>=s)return!1;let C=g(I),G=n.get(C);if(!G)return!1;return G.items[d(I)]!==void 0},L=(I,C)=>{let G=g(I),T=R(G),l=d(I),B=T.items[l]===void 0;if(T.items[l]=C,B)T.count++,a++;if(I>=s)s=I+1},S=(I,C)=>{for(let G=0;G<C.length;G++){let T=C[G];if(T!==void 0)L(I+G,T)}},h=(I,C)=>{if(I<0||I>s)return;let G=g(I),T=Array.from(n.keys()).filter((U)=>U>=G).sort((U,be)=>U-be),l=[];for(let U of T){let be=n.get(U),_=U*t;for(let X=0;X<t;X++){if(be.items[X]===void 0)continue;let E=_+X;if(E<I)continue;l.push({oldIndex:E,item:be.items[X]})}}for(let{oldIndex:U}of l){let be=g(U),_=n.get(be);if(!_)continue;let X=d(U);if(_.items[X]!==void 0){if(_.items[X]=void 0,_.count--,a--,_.count===0)n.delete(be)}}s++;for(let{oldIndex:U,item:be}of l){let _=U+1,X=g(_),E=R(X),P=d(_);E.items[P]=be,E.count++,a++}let B=g(I),k=R(B),N=d(I);k.items[N]=C,k.count++,a++},p=(I)=>{if(I<0||I>=s)return!1;let C=g(I),G=n.get(C),T=d(I);if(!(G!==void 0&&G.items[T]!==void 0))return!1;let B=C,k=Array.from(n.keys()).filter((U)=>U>=B).sort((U,be)=>U-be),N=[];for(let U of k){let be=n.get(U),_=U*t;for(let X=0;X<t;X++){if(be.items[X]===void 0)continue;let E=_+X;if(E<=I)continue;N.push({oldIndex:E,item:be.items[X]})}}if(G.items[T]=void 0,G.count--,a--,G.count===0)n.delete(C);for(let{oldIndex:U}of N){let be=g(U),_=n.get(be);if(!_)continue;let X=d(U);if(_.items[X]!==void 0){if(_.items[X]=void 0,_.count--,a--,_.count===0)n.delete(be)}}for(let{oldIndex:U,item:be}of N){let _=U-1,X=g(_),E=R(X),P=d(_);E.items[P]=be,E.count++,a++}return s--,!0},y=(I,C)=>{let G=[];for(let T=I;T<=C&&T<s;T++)G.push(m(T));return G},H=(I,C)=>{for(let G=I;G<=C&&G<s;G++)if(!Y(G))return!1;return!0},v=()=>{let I=[],C=null,G=Array.from(n.keys()).sort((T,l)=>T-l);for(let T of G){let l=n.get(T);if(!l)continue;let B=T*t;for(let k=0;k<t;k++){let N=B+k;if(N>=s)break;if(l.items[k]!==void 0)if(C===null)C={start:N,end:N};else if(N===C.end+1)C.end=N;else I.push(C),C={start:N,end:N};else if(C!==null)I.push(C),C=null}}if(C!==null)I.push(C);return I},x=(I,C)=>{let G=[],T=null;for(let l=I;l<=C&&l<s;l++)if(!Y(l))if(T===null)T={start:l,end:l};else T.end=l;else if(T!==null)G.push(T),T=null;if(T!==null)G.push(T);return G},D=(I)=>n.has(I),f=(I)=>{let C=n.get(I);if(!C)return!1;let G=I*t,T=Math.min(t,s-G);return C.count>=T},w=(I)=>{let C=n.get(I);if(C)C.lastAccess=Date.now()},M=(I,C)=>{if(I>C||n.size===0)return;let G=Date.now(),T=g(Math.max(0,I)),l=g(Math.min(s-1,C));for(let B=T;B<=l;B++){let k=n.get(B);if(k)k.lastAccess=G}},q=(I,C)=>{if(a<=r)return 0;let G=Math.max(0,I-o),T=Math.min(s-1,C+o),l=g(G),B=g(T),k=0,N=[];for(let[U,be]of n)if(U<l||U>B)k+=be.count,N.push(U),a-=be.count,n.delete(U);if(k>0&&i)i(k,N);return k},ne=()=>{if(a<=r)return 0;let I=Array.from(n.entries()).sort(([,T],[,l])=>T.lastAccess-l.lastAccess),C=0,G=[];for(let[T,l]of I){if(a<=r)break;C+=l.count,a-=l.count,G.push(T),n.delete(T)}if(C>0&&i)i(C,G);return C},te=()=>({totalItems:s,cachedItems:a,cachedChunks:n.size,chunkSize:t,maxCachedItems:r,memoryEfficiency:s>0?1-a/s:1}),ue=()=>a,fe=()=>{n.clear(),a=0};return{chunkSize:t,maxCachedItems:r,getTotal:V,setTotal:F,get:m,has:Y,set:L,setRange:S,insert:h,delete:p,getRange:y,isRangeLoaded:H,getLoadedRanges:v,findUnloadedRanges:x,getChunkIndex:g,isChunkLoaded:D,isChunkFullyLoaded:f,touchChunk:w,touchChunksForRange:M,evictDistant:q,evictToLimit:ne,getStats:te,getCachedCount:ue,clear:fe,reset:()=>{fe(),s=0}}};var dn=(e={})=>{let{maskCharacter:t=Gt,maxSampleSize:r=Bt}=e,o=[],i=!1,n=(d)=>{if(i||d.length===0)return;let V=Math.min(d.length,r);for(let F=0;F<V;F++){let m=d[F];if(!m||typeof m!=="object")continue;let Y={},L=!1;for(let[S,h]of Object.entries(m)){if(S.startsWith("_")||S==="id")continue;Y[S]=String(h??"").length,L=!0}if(L)o.push(Y)}i=!0},s=()=>i,a=(d)=>{let V={id:`${$e}${d}`,[pt]:!0,_index:d};if(o.length===0)return V.label=t.repeat(12),V;let F=o[d%o.length];for(let[m,Y]of Object.entries(F))V[m]=t.repeat(Math.max(1,Y));return V};return{analyzeStructure:n,hasAnalyzedStructure:s,generate:a,generateRange:(d,V)=>{let F=[];for(let m=d;m<=V;m++)F.push(a(m));return F},clear:()=>{o=[],i=!1}}},lt=(e)=>{if(!e||typeof e!=="object")return!1;return e[pt]===!0};var Nn=50,un=(e={})=>{let{adapter:t,initialItems:r,initialTotal:o,storage:i,placeholder:n,pageSize:s=Nn,maxConcurrent:a=0,onStateChange:R,onDataChange:g,onItemsLoaded:d,onItemsEvicted:V,onLoadError:F}=e,m=an({...i,onEvict:(K,Q)=>{V?.(K),q(),M()}}),Y=null,L=()=>{if(!Y)Y=dn(n);return Y},S=new Map,h=!1,p,y=!0,H,v,x=[],D=0,f=new Map,w=()=>{for(let K of f.values())K[1].abort();f.clear()},M=()=>{R?.(T())},q=()=>{g?.()},ne=()=>{S.clear();let K=m.getLoadedRanges();for(let Q of K)for(let u=Q.start;u<=Q.end;u++){let J=m.get(u);if(J&&!lt(J))S.set(J.id,u)}},te=(K,Q)=>{if(!lt(Q))S.set(Q.id,K)},ue=(K)=>{S.delete(K)},fe=(K,Q)=>`${K}-${Q}`,j=()=>m.getTotal(),I=()=>m.getCachedCount(),C=()=>h,G=()=>y,T=()=>({total:m.getTotal(),cached:m.getCachedCount(),isLoading:h,pendingRanges:x,error:p,hasMore:y,cursor:H}),l=()=>m,B=()=>L(),k=(K)=>{let Q=m.get(K);if(Q!==void 0)return Q;if(K>=0&&K<m.getTotal())return L().generate(K);return},N=(K)=>{let Q=S.get(K);if(Q===void 0)return;return m.get(Q)},U=(K)=>S.get(K)??-1,be=(K)=>{let Q=m.get(K);return Q!==void 0&&!lt(Q)},_=(K,Q)=>{let u=[],J=m.getTotal();m.touchChunksForRange(K,Math.min(Q,J-1));for(let de=K;de<=Q&&de<J;de++){let ae=m.get(de);if(ae!==void 0)u.push(ae);else u.push(L().generate(de))}return u},X=(K)=>{m.setTotal(K),y=m.getCachedCount()<K,q(),M()},E=(K,Q=0,u)=>{if(t&&K.length>0){let J=L();if(!J.hasAnalyzedStructure())J.analyzeStructure(K)}for(let J=0;J<K.length;J++){let de=K[J];if(de!==void 0){let ae=Q+J;m.set(ae,de),te(ae,de)}}if(u!==void 0)m.setTotal(u);else if(Q+K.length>m.getTotal())m.setTotal(Q+K.length);if(m.getCachedCount()>=m.getTotal()&&m.getTotal()>0)y=!1;q(),M(),d?.(K,Q,m.getTotal())},P=(K,Q)=>{let u=m.get(K);if(!u)return!1;let J=u.id,de={...u,...Q};if(m.set(K,de),Q.id!==void 0&&Q.id!==J)ue(J);return te(K,de),q(),M(),!0},c=(K,Q)=>{m.insert(Q,K),ne(),w(),q(),M()},W=(K)=>{let Q=S.get(K);if(Q===void 0)return!1;if(!m.delete(Q))return!1;return ne(),w(),q(),M(),!0},z=async(K,Q)=>{if(!t)return;let u=m.chunkSize,J=Math.floor(K/u),de=Math.floor(Q/u),ae=u*2;for(let[pe,ye]of f){let Te=pe.indexOf("-"),Me=parseInt(pe.slice(0,Te),10);if(Math.abs(Me-K)>ae)ye[1].abort(),f.delete(pe)}let Ie=[],xe=[];for(let pe=J;pe<=de;pe++){let ye=pe*u,Te=ye+u-1,Me=fe(ye,Te);if(m.isChunkFullyLoaded(pe))continue;let Ee=f.get(Me);if(Ee)xe.push(Ee[0]);else Ie.push({start:ye,end:Te})}if(Ie.length===0){if(xe.length>0)await Promise.all(xe);return}if(a>0){let pe=f.size+Ie.length;if(pe>a){let ye=(K+Q)/2,Te=Math.min(pe-a,f.size);while(Te>0){let Se=null,Ee=-1,re=null;for(let[me,Ce]of f){let Re=me.indexOf("-"),ie=parseInt(me.slice(0,Re),10),ve=parseInt(me.slice(Re+1),10),we=Math.abs((ie+ve)/2-ye);if(we>Ee)Ee=we,Se=me,re=Ce[1]}if(Se)re.abort(),f.delete(Se);Te--}let Me=a-f.size;if(Ie.length>Me)Ie.sort((Se,Ee)=>{let re=Math.abs((Se.start+Se.end)/2-ye),me=Math.abs((Ee.start+Ee.end)/2-ye);return re-me}),Ie.length=Math.max(0,Me)}}if(Ie.length===0){if(xe.length>0)await Promise.all(xe);return}for(let pe of Ie){let ye=fe(pe.start,pe.end),Te=new AbortController,Me=(async()=>{x.push(pe),h=!0,p=void 0,M();try{let Se=pe.end-pe.start+1,Ee={offset:pe.start,limit:Se,cursor:pe.start===v?H:void 0,signal:Te.signal},re=await t.read(Ee);if(E(re.items,pe.start,re.total),re.cursor)H=re.cursor,v=pe.start+re.items.length;let me=pe.start+re.items.length;if(me>=D){if(D=me,re.hasMore!==void 0)y=re.hasMore;else if(re.total!==void 0)y=me<re.total}}catch(Se){if(Se?.name==="AbortError")return;p=Se instanceof Error?Se:Error(String(Se)),F?.(p,pe)}finally{f.delete(ye);let Se=x.findIndex((Ee)=>Ee.start===pe.start&&Ee.end===pe.end);if(Se>=0)x.splice(Se,1);h=f.size>0,M()}})();f.set(ye,[Me,Te]),xe.push(Me)}await Promise.all(xe)},A=async(K,Q)=>{if(m.isRangeLoaded(K,Q))return;await z(K,Q)},oe=async()=>{if(!t)return;await z(0,s-1)},Z=async()=>{if(!t||h||!y)return!1;let K=m.getCachedCount(),Q=m.getTotal(),u=K,J=Math.min(u+s-1,Q>0?Q-1:u+s-1);if(u>=Q&&Q>0)return y=!1,!1;return await z(u,J),m.getCachedCount()>K},le=async()=>{if(m.clear(),S.clear(),Y)Y.clear();w(),x=[],h=!1,H=void 0,v=void 0,y=!0,D=0,p=void 0,q(),M()},ce=(K,Q)=>{if(m.evictDistant(K,Q)>0)ne()},se=()=>{m.clear(),S.clear(),H=void 0,v=void 0,p=void 0,x=[],h=!1,q(),M()},he=()=>{if(m.reset(),S.clear(),Y)Y.clear();H=void 0,v=void 0,y=!0,D=0,p=void 0,x=[],h=!1,q(),M()};if(r&&r.length>0)E(r,0,o??r.length);else if(o!==void 0)m.setTotal(o),q(),M();return{getState:T,getTotal:j,getCached:I,getIsLoading:C,getHasMore:G,getStorage:l,getPlaceholders:B,getItem:k,getItemById:N,getIndexById:U,isItemLoaded:be,getItemsInRange:_,setTotal:X,setItems:E,updateItem:P,insertItem:c,removeItem:W,loadRange:z,ensureRange:A,loadInitial:oe,loadMore:Z,reload:le,evictDistant:ce,clear:se,reset:he}};function Tt(e){let{adapter:t,total:r,autoLoad:o=!0,storage:i}=e,n=e.loading?.cancelThreshold??Ft,s=e.loading?.preloadThreshold??_t,a=e.loading?.preloadAhead??kt,R=e.loading?.maxConcurrent??Vt,g,d,V,F,m,Y,L=null,S=null,h=null,p=0,y=!1,H=null,v=mt,x=-1,D=-1,f=-1,w=-1,M=i?.chunkSize??tt,q=()=>{if(L=null,S!==null)clearTimeout(S),S=null},ne=(T,l)=>g.ensureRange(T,l),te=(T,l=tt)=>{F.emit("load:start",{offset:T,limit:l})},ue=(T)=>{F.emit("error",{error:T,context:"ensureRange"})},fe=()=>{L=null;let T={start:d.startIndex,end:d.startIndex+Math.max(0,d.visibleCount-1)};if(T.end<T.start)return;ne(T.start,T.end).catch(ue)},j=()=>{if(H!==null)clearTimeout(H),H=null},I=()=>{if(d.destroyed)return;let T=g.getTotal();if(d.visibleCount<=0||d.startIndex>=T)return;let l=Math.min(d.startIndex+d.visibleCount-1,T-1);if(l<d.startIndex)return;ne(d.startIndex,l).catch(ue)},C=()=>{if(H!==null||d.destroyed)return;H=setTimeout(()=>{H=null,I()},v),v=Math.min(v*2,Dt)},G=()=>{j(),v=mt};return{name:"data",priority:20,setup(T){d=T.getState(),V=T.sizeCache,F=T.emitter,m=T.dom,Y=T.forceRender.bind(T);let l=null;T.setVirtualTotalFn(()=>l?.getTotal()??0),T.setGetIndexByIdFn((k)=>l?.getIndexById(k)??-1),g=l=un({adapter:t,...r!==void 0&&{initialTotal:r},pageSize:i?.chunkSize??tt,maxConcurrent:R,...i&&{storage:{...i.chunkSize!==void 0&&{chunkSize:i.chunkSize},...i.maxCachedItems!==void 0&&{maxCachedItems:i.maxCachedItems},...i.evictionBuffer!==void 0&&{evictionBuffer:i.evictionBuffer}}},onDataChange:()=>{if(d.initialized){let k=g.getTotal(),N=g.getCached();if(d.totalItems=k,k!==x||N!==D)x=k,D=N,V.rebuild(k);T.updateContentSize(V.getTotalSize()),T.renderIfNeeded()}},onItemsLoaded:(k)=>{if(G(),d.initialized)T.updateContentSize(V.getTotalSize()),Y(),F.emit("load:end",{items:k,total:g.getTotal()})},onLoadError:(k)=>{if(F.emit("error",{error:k,context:"load"}),d.initialized)T.renderIfNeeded();C()}}),T.setGetItemFn((k)=>g.getItem(k)),T.setRemoveItemFn((k)=>{let N=g.getIndexById(k);if(N<0)return-1;if(!g.removeItem(k))return-1;return N}),T.setInsertItemFn((k,N)=>{g.insertItem(k,N)}),T.setUpdateItemFn((k,N)=>{let U=g.getIndexById(k);if(U<0)return!1;return g.updateItem(U,N)}),T.registerMethod("reload",async()=>{if(L=null,f=-1,w=-1,G(),T.forceRender(),await g.reload(),T.scrollTo(0),o)te(0),await g.loadInitial(),T.forceRender()}),T.registerMethod("loadVisibleRange",async()=>{L=null,T.forceRender();let k=g.getTotal();if(d.visibleCount>0&&d.startIndex<k){let N=Math.min(d.startIndex+d.visibleCount-1,k-1);te(d.startIndex,N-d.startIndex+1),await ne(d.startIndex,N)}}),T.registerMethod("loadInitial",async()=>{te(0),await g.loadInitial(),T.forceRender()}),T.registerMethod("getTotal",()=>g.getTotal()),T.registerMethod("setTotal",(k)=>{g.setTotal(k)}),T.registerMethod("_getTotal",()=>g.getTotal()),T.registerMethod("_setTotal",(k)=>{g.setTotal(k)}),T.registerMethod("_cancelAutoLoad",()=>{y=!0}),T.registerMethod("_getLoadedItem",(k)=>g.getStorage().get(k)),T.registerMethod("_getItem",(k)=>g.getItem(k)),T.registerMethod("_getLoadedCount",()=>g.getCached()),F.on("load:start",()=>{m.root.setAttribute("aria-busy","true")}),F.on("load:end",()=>{m.root.removeAttribute("aria-busy")}),T.registerDestroyHandler(()=>{if(h!==null)clearTimeout(h),h=null;q(),j()}),F.on("velocity:change",({velocity:k})=>{p=Math.abs(k)});let B=()=>{if(d.destroyed)return;G(),I(),fe()};if(window.addEventListener("online",B),T.registerDestroyHandler(()=>{window.removeEventListener("online",B)}),o)queueMicrotask(()=>{if(y)return;te(0),g.loadInitial().catch((k)=>{F.emit("error",{error:k,context:"loadInitial"})})});else if(r!==void 0)g.setTotal(r)},hooks:{onAfterScroll(){if(d.destroyed)return;let T=d.startIndex+Math.max(0,d.visibleCount-1);if(p>n){if(S!==null)clearTimeout(S),S=null;L={start:d.startIndex,end:T};return}if(p>s){let k=Math.floor(d.startIndex/M),N=Math.floor(T/M);if(k!==f||N!==w){if(f=k,w=N,T>=d.startIndex)ne(d.startIndex,T).catch(ue)}let U=d.startIndex,be=T,_=d.scrollDirection;if(_>0)be=Math.min(be+a,g.getTotal()-1);else if(_<0)U=Math.max(0,U-a);if(L={start:U,end:be},S!==null)clearTimeout(S);S=setTimeout(()=>{if(S=null,d.destroyed||!L)return;let{start:X,end:E}=L;if(L=null,E>=X)ne(X,E).catch(ue)},100);return}q();let l=Math.floor(d.startIndex/M),B=Math.floor(T/M);if(l!==f||B!==w){if(f=l,w=B,T>=d.startIndex)ne(d.startIndex,T).catch(ue)}},onIdle(){if(d.destroyed)return;p=0,f=-1,w=-1,fe(),q()},onResize(){if(d.destroyed)return;let T=g.getTotal();if(T<=0)return;if(d.visibleCount<=0||d.startIndex>=T)return;let l=Math.min(d.startIndex+d.visibleCount-1,T-1);if(l<d.startIndex)return;te(d.startIndex,l-d.startIndex+1),ne(d.startIndex,l).catch(ue)}},destroy(){if(h!==null)clearTimeout(h);q(),j()}}}var cn=(e)=>{let t=Math.max(1,Math.floor(e.columns)),r=e.gap??0,o=e.isHeaderFn,i={row:0,col:0},n=(L)=>{if(L<=0)return 0;if(!o)return Math.ceil(L/t);let S=0,h=0,p=0;for(let y=0;y<L;y++)if(o(y)){if(p++,h)S++,h=0;S++,h=0}else if(h++,h>=t)S++,h=0;if(h)S++;return S},s=(L)=>(i.row=a(L),i.col=R(L),i),a=(L)=>{if(!o)return Math.floor(L/t);let S=0,h=0;for(let p=0;p<=L;p++)if(o(p)){if(h)S++,h=0;if(p===L)return S;S++,h=0}else{if(p===L)return S;if(h++,h>=t)S++,h=0}return console.warn(`⚠️ getRow(${L}) fell through - returning ${S}`),S},R=(L)=>{if(!o)return L%t;if(o(L))return 0;let S=0;for(let h=0;h<=L;h++)if(o(h))S=0;else{if(h===L)return S;if(S++,S>=t)S=0}return S},g=(L,S,h,p)=>{if(h<=0){p.start=0,p.end=-1;return}if(!o){p.start=Math.max(0,L*t),p.end=Math.min(h-1,(S+1)*t-1);return}let y=d(L,S,h);p.start=y.start,p.end=y.end},d=(L,S,h)=>{if(h<=0)return{start:0,end:-1};if(!o){let x=Math.max(0,L*t),D=Math.min(h-1,(S+1)*t-1);return{start:x,end:D}}let p=-1,y=-1,H=0,v=0;for(let x=0;x<h;x++){if(o(x)){if(v)H++,v=0;if(H>=L&&H<=S){if(p<0)p=x;y=x}H++,v=0}else{if(H>=L&&H<=S){if(p<0)p=x;y=x}if(v++,v>=t)H++,v=0}if(H>S&&!v)break}if(p<0)return{start:0,end:-1};return{start:p,end:y}},V=(L,S,h)=>{if(S<0||S>=t)return-1;let p=L*t+S;if(p<0||p>=h)return-1;return p},F=(L)=>{let S=(t-1)*r;return Math.max(0,(L-S)/t)};return{get columns(){return t},get gap(){return r},update:(L)=>{if(L.columns!==void 0)t=Math.max(1,Math.floor(L.columns));if(L.gap!==void 0)r=L.gap;if(L.isHeaderFn!==void 0)o=L.isHeaderFn},getTotalRows:n,getPosition:s,getRow:a,getCol:R,getItemRange:d,fillItemRange:g,getItemIndex:V,getColumnWidth:F,getColumnOffset:(L,S)=>{let h=F(S);return L*(h+r)}}};var qe={selected:!1,focused:!1};function xt(e){if(!e.columns||e.columns<1)throw Error("[vlist] grid: columns must be >= 1");let t,r,o,i,n=0,s,a=null,R,g,d,V,F,m,Y=null,L=0,S=0,h=0,p=0,y=new Map,H=0,v=0,x=0,D=0,f=null,w=!1,M="",q="",ne="",te={start:0,end:-1},ue=-1,fe=-1,j=-1,I=!0,C=(_)=>r.rebuild(_);function G(){let _=(v-1)*x;D=Math.max(0,(H-_)/v)}function T(){if(w)return;w=!0,f=Y?.()??null}function l(){return t.getTotalRows(o.totalItems)}function B(_,X){let E=_/v|0,c=(_-E*v)*(D+x)+L,W=r.getOffset(E)-X+h;if(V)return`translate(${Math.round(W)}px, ${Math.round(c)}px)`;return`translate(${Math.round(c)}px, ${Math.round(W)}px)`}function k(_,X){let E=r.getSize(X)-x;if(V)_.style.width=`${E}px`,_.style.height=`${D}px`;else _.style.width=`${D}px`,_.style.height=`${E}px`}function N(_,X,E){if(f)f(E,qe);else qe.selected=!1,qe.focused=!1;let P=g(X,E,qe);if(typeof P==="string")_.innerHTML=P;else _.innerHTML="",_.appendChild(P)}function U(){if(o.destroyed)return;let _=i.getRenderOrigin(),X=i.getPixelEquivalent(),E=o.containerSize;if(!I&&X===ue&&E===fe&&_===n)return;ue=X,fe=E,I=!1;let P=l();if(E<=0||P===0)return;T();let c=r.indexAtOffset(X),W=r.indexAtOffset(X+E);if(W<P-1)W++;c=Math.max(0,c),W=Math.min(P-1,Math.max(0,W));let z=Math.max(0,c-m),A=Math.min(P-1,W+m);if(z===o.prevRangeStart&&A===o.prevRangeEnd&&!o.renderPending&&_===n)return;t.fillItemRange(z,A,o.totalItems,te);let{start:oe,end:Z}=te;for(let[se,he]of y)if(se<oe||se>Z)he.el.remove(),s.release(he.el),y.delete(se);for(let se=oe;se<=Z;se++){let he=d(se);if(!he)continue;let K=se/v|0,Q=se-K*v,u=y.get(se);if(u===void 0){let ae=s.acquire();ae.className=M,ae.setAttribute("data-index",String(se)),ae.setAttribute("data-id",String(he.id)),N(ae,he,se),u={el:ae,lastItem:he},y.set(se,u),R.appendChild(ae)}else if(u.lastItem!==he)u.el.setAttribute("data-id",String(he.id)),u.lastItem=he,N(u.el,he,se);else if(f)f(se,qe);if(f)if(u.el.classList.toggle(q,qe.selected),u.el.classList.toggle(ne,qe.focused),qe.selected)u.el.setAttribute("aria-selected","true");else u.el.removeAttribute("aria-selected");k(u.el,K);let J=Q*(D+x)+L,de=r.getOffset(K)-_+h;u.el.style.transform=V?`translate(${Math.round(de)}px, ${Math.round(J)}px)`:`translate(${Math.round(J)}px, ${Math.round(de)}px)`}let le=r.getTotalSize();if(le!==j)j=le,a?.updateContentSize(le);o.prevRangeStart=z,o.prevRangeEnd=A,n=_,o.renderPending=!1;let ce=Z-oe+1;o.visibleCount=Math.min(ce,o.capacity),o.startIndex=oe;for(let se=0;se<o.visibleCount;se++){let he=oe+se,K=he/v|0;o.visibleIndices[se]=he,o.visibleOffsets[se]=r.getOffset(K),o.visibleSizes[se]=r.getSize(K)}}function be(){if(o.destroyed)return;C(l()),j=-1,o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,I=!0,U()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(_){i=_.scroll,v=Math.max(1,Math.floor(e.columns)),x=e.gap??0,t=cn({columns:e.columns,gap:x}),r=_.sizeCache,o=_.getState(),s=_.pool,a=_,R=_.dom.content,g=_.template,V=_.config.axis.primary==="x",F=_.config.classPrefix,m=_.config.overscan,d=_.getItem.bind(_),Y=()=>_.getItemStateFn(),M=`${F}-item ${F}-grid-item`,q=`${F}-item--selected`,ne=`${F}-item--focused`,L=_.config.crossPadStart,S=_.config.crossAxisPadding,h=_.config.startPadding,p=_.config.mainAxisPadding,H=o.crossSize-S,G();let X=_.rawSizeSpec,E;if(typeof X==="function"){let A={columnWidth:t.getColumnWidth(H),columns:e.columns,gap:x};E=X(0,A),_.setSizeConfig((oe)=>{A.columnWidth=t.getColumnWidth(H);let Z=oe*e.columns;return X(Z,A)+x})}else if(E=X,x>0)_.setSizeConfig(E+x);let P=null,c=r.rebuild;function W(){if(r.rebuild===P)return;c=r.rebuild,C=(z)=>c(z),P=(z)=>{C(Math.ceil(z/v))},r.rebuild=P}if(_.registerMethod("_setSizeCacheBase",(z)=>{c=z,C=(A)=>c(A)}),W(),C(l()),x>0){let z=r.getTotalSize;r.getTotalSize=()=>{let A=z();return A>0?A-x:0}}_.setVirtualTotalFn(()=>l()),_.dom.root.classList.add(`${F}--grid`),_.setRenderFn(U,be),_.registerMethod("getGridLayout",()=>t),_.registerMethod("_getRowGap",()=>t.gap),_.registerMethod("updateGrid",(z)=>{if(z.columns!==void 0){if(!Number.isInteger(z.columns)||z.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(z.gap!==void 0&&z.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if(t.update(z),z.columns!==void 0)v=Math.max(1,Math.floor(z.columns));if(z.gap!==void 0)x=z.gap;if(z.gap!==void 0||z.columns!==void 0){let A=t.gap;if(typeof X==="function"){let oe={columnWidth:t.getColumnWidth(H),columns:t.columns,gap:A};_.setSizeConfig((Z)=>{oe.columnWidth=t.getColumnWidth(H);let le=Z*t.columns;return X(le,oe)+A})}else _.setSizeConfig(E+A);W(),C(l())}if(z.columns!==void 0)_.setNavConfig({ud:t.columns});H=o.crossSize-S,G(),be()}),_.registerMethod("scrollToIndex",(z,A="start")=>{let oe=t.getRow(z),Z=l();if(Z===0)return;let le=Math.max(0,Math.min(oe,Z-1)),ce=r.getOffset(le)+h,se=r.getSize(le),he=o.containerSize,K=r.getTotalSize()+p,Q=Math.max(0,K-he),u=typeof A==="string"?A:A.align??"start",J=typeof A==="object"?A.behavior:void 0,de=typeof A==="object"?A.duration:void 0,ae;switch(u){case"center":ae=ce-(he-se)/2;break;case"end":ae=ce-he+se;break;default:ae=ce}if(ae=Math.max(0,Math.min(ae,Q)),J==="smooth"&&de&&de>0)_.smoothScrollTo(ae,de);else _.scrollTo(ae)}),_.setNavConfig({total:()=>o.totalItems,ud:e.columns,lr:1,scrollIndex:(z)=>t.getRow(z)}),_.registerDestroyHandler(()=>{for(let[,z]of y)z.el.remove();y.clear(),_.dom.root.classList.remove(`${F}--grid`)})},hooks:{onResize(_,X){let E=o.crossSize-S;if(Math.abs(E-H)<1)return;H=E,G();let P=i.getRenderOrigin();for(let[c,W]of y){let z=c/v|0;k(W.el,z),W.el.style.transform=B(c,P)}}},destroy(){y.clear()}}}var mn=(e)=>{let t=Math.max(1,Math.floor(e.columns)),r=e.gap??0,o=e.containerSize,i=e.crossOffset??0,n=e.mainOffset??0,s=0,a=[],R=()=>{let h=(t-1)*r;s=Math.max(0,(o-h)/t),a=Array(t);let p=s+r;for(let y=0;y<t;y++)a[y]=i+y*p};R();let g=[],d=0,V=[],F=(h,p)=>{if(h<=0)return d=0,g=[],[];let y=Array(t).fill(n),H=Array(t);for(let D=0;D<t;D++)H[D]=[];let v=Array(h);for(let D=0;D<h;D++){let f=0,w=y[0];for(let ne=1;ne<t;ne++){let te=y[ne];if(te<w)w=te,f=ne}let M=p(D),q=y[f];v[D]={index:D,x:a[f],y:q,lane:f,size:M,crossSize:s},H[f].push(D),y[f]=q+M+r}g=H;let x=0;for(let D=0;D<t;D++){let f=y[D],w=f>0?f-r:0;if(w>x)x=w}return d=x,v},m=(h)=>{if(h.length===0)return d;if(d)return d;let p=Array(t).fill(0);for(let H of h){let v=H.y+H.size,x=p[H.lane];if(v>x)p[H.lane]=v}let y=0;for(let H=0;H<t;H++)if(p[H]>y)y=p[H];return y},Y=(h,p,y)=>{if(h.length===0||y<=p)return V.length=0,V;if(g.length===0||g.length!==t)return L(h,p,y);V.length=0;for(let H=0;H<t;H++){let v=g[H],x=v.length;if(!x)continue;let D=0,f=x;while(D<f){let w=D+f>>>1,M=h[v[w]];if(M.y+M.size<=p)D=w+1;else f=w}for(let w=D;w<x;w++){let M=h[v[w]];if(M.y>=y)break;V.push(M)}}return V},L=(h,p,y)=>{V.length=0;for(let H of h)if(H.y+H.size>p&&H.y<y)V.push(H);return V};return{get columns(){return t},get gap(){return r},get containerSize(){return o},update:(h)=>{let p=!1;if(h.columns!==void 0){let y=Math.max(1,Math.floor(h.columns));if(y!==t)t=y,p=!0}if(h.gap!==void 0&&h.gap!==r)r=h.gap,p=!0;if(h.containerSize!==void 0&&h.containerSize!==o)o=h.containerSize,p=!0;if(h.crossOffset!==void 0&&h.crossOffset!==i)i=h.crossOffset,p=!0;if(h.mainOffset!==void 0&&h.mainOffset!==n)n=h.mainOffset,p=!0;if(p)R()},calculateLayout:F,getTotalSize:m,getVisibleItems:Y}};var fn=(e,t,r)=>{let o=Array.from(t).sort((s,a)=>s-a);if(o.length<=1)return;let i=[];for(let s=0;s<o.length;s++){let a=r(o[s]);if(a)i.push(a)}if(i.length<=1)return;let n=e.firstChild;for(let s=0;s<i.length;s++){let a=i[s];if(a===n)n=n.nextSibling;else e.insertBefore(a,n)}};var Wn=(e=200)=>{let t=[];return{acquire:()=>{let n=t.pop();if(n)return n;let s=document.createElement("div");return s.setAttribute("role","option"),s},release:(n)=>{if(n.remove(),t.length<e)n.className="",n.textContent="",n.removeAttribute("style"),n.removeAttribute("data-index"),n.removeAttribute("data-id"),n.removeAttribute("data-lane"),t.push(n)},clear:()=>{t.length=0}}},Yn=1,gn=(e,t,r,o=!1,i,n,s,a,R=()=>0)=>{let g=Wn(),d=new Map,V=new Set,F=0,m="",Y=-1,L={selected:!1,focused:!1},S=(j,I)=>(L.selected=j,L.focused=I,L),h=`${r}-item ${r}-masonry-item`,p=`${r}-group-header`,y=`${r}-item--selected`,H=`${r}-item--focused`,v=(j,I)=>{if(typeof I==="string")j.innerHTML=I;else j.replaceChildren(I);Ke(j)},x=(j,I,C)=>{j.classList.toggle(y,I),j.classList.toggle(H,C)},D=(j,I)=>{let C=Math.round(I.y-M);if(o)j.style.transform=`translate(${C}px, ${Math.round(I.x)}px)`;else j.style.transform=`translate(${Math.round(I.x)}px, ${C}px)`},f=(j,I)=>{if(o)j.style.width=`${I.size}px`,j.style.height=`${I.crossSize}px`;else j.style.width=`${I.crossSize}px`,j.style.height=`${I.size}px`},w=(j,I,C,G,T)=>{let l=g.acquire(),B=I.__groupHeader,k=S(G,T);if(l.className=B?p:h,l.dataset.index=String(j),l.dataset.id=String(I.id),l.dataset.lane=String(C.lane),B)l.setAttribute("role","presentation"),l.removeAttribute("aria-selected"),l.removeAttribute("aria-setsize"),l.removeAttribute("aria-posinset"),l.removeAttribute("id");else if(a===!0){if(l.setAttribute("role","option"),l.ariaSelected=String(G),n)l.id=`${n}-item-${j}`;if(i){let U=i();if(U!==Y)Y=U,m=String(U);l.setAttribute("aria-setsize",m);let be=s?s(j):j+1;l.setAttribute("aria-posinset",String(be))}}else if(l.setAttribute("role","listitem"),l.removeAttribute("aria-selected"),i){let U=i();if(U!==Y)Y=U,m=String(U);l.setAttribute("aria-setsize",m);let be=s?s(j):j+1;l.setAttribute("aria-posinset",String(be))}f(l,C);let N=t(I,j,k);return v(l,N),x(l,G,T),D(l,C),{element:l,lastItem:I,lastSelected:G,lastFocused:T,lastY:C.y-M,absY:C.y,lastX:C.x,lastSize:C.size,lastCrossSize:C.crossSize,lastSeenFrame:F}},M=0,q=(j,I,C,G,T=R())=>{M=T,F++,V.clear();for(let B=0;B<I.length;B++)V.add(I[B].index);let l=null;for(let B=0;B<I.length;B++){let k=I[B],N=k.index,U=j(N);if(!U)continue;let be=C.has(U.id),_=N===G,X=d.get(N);if(X){let E=X.lastItem!==U,P=X.lastSelected!==be,c=X.lastFocused!==_,W=X.lastY!==k.y-M||X.lastX!==k.x,z=X.lastSize!==k.size||X.lastCrossSize!==k.crossSize;if(E){let A=S(be,_),oe=t(U,N,A);if(v(X.element,oe),X.element.dataset.id=String(U.id),X.lastItem=U,!U.__groupHeader){let le=s?s(N):N+1;X.element.setAttribute("aria-posinset",String(le))}}if(E||P||c)x(X.element,be,_),X.element.ariaSelected=String(be),X.lastSelected=be,X.lastFocused=_;if(z)f(X.element,k),X.lastSize=k.size,X.lastCrossSize=k.crossSize;if(W)D(X.element,k),X.lastY=k.y-M,X.absY=k.y,X.lastX=k.x}else{let E=w(N,U,k,be,_);if(!l)l=document.createDocumentFragment();l.appendChild(E.element),d.set(N,E)}}if(l)e.appendChild(l);for(let[B,k]of d)if(V.has(B))k.lastSeenFrame=F;else if(F-k.lastSeenFrame>Yn)g.release(k.element),d.delete(B);else{let N=Math.round(k.absY-M);if(N!==k.lastY){k.lastY=N;let U=Math.round(k.lastX);k.element.style.transform=o?`translate(${N}px, ${U}px)`:`translate(${U}px, ${N}px)`}}},ne=()=>{for(let j of d.values())g.release(j.element);d.clear(),e.innerHTML=""};return{render:q,getElement:(j)=>d.get(j)?.element,updateItemClasses:(j,I,C)=>{let G=d.get(j);if(!G)return;let T=G.lastSelected!==I,l=G.lastFocused!==C;if(T||l)x(G.element,I,C),G.lastSelected=I,G.lastFocused=C},sortDOM:()=>{fn(e,d.keys(),(j)=>d.get(j)?.element)},clear:ne,destroy:()=>{ne(),g.clear()}}};var qn=100,Un=new Set;function Lt(e){if(!e.columns||e.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let t,r=null,o,i,n=0,s=null,a,R,g,d=[],V=-1,F=-1,m=!0,Y=-1,L=-1,S=0,h=0,p=0,y=0,H={columnWidth:0,columns:0,gap:0,containerWidth:0},v=[],x=(c)=>v[c],D=null,f=null,w=!1;function M(){if(w||!s)return;w=!0,D=s.getMethod("_getSelectedIds")??null,f=s.getMethod("_getFocusedIndex")??null}let q=[],ne=new Int32Array(0),te=[],ue=null,fe=null,j=null,I=null,C=!1,G=!0;function T(){if(C||!s)return;if(ue=s.getMethod("_getItemLane")??null,fe=s.getMethod("_getItemY")??null,j=s.getMethod("_getItemH")??null,I=s.getMethod("_isGroupHeader")??null,ue||I)C=!0}function l(){T();let c=t.columns,W=!!ue;if(W){let z=o.totalItems;q=Array(c);for(let A=0;A<c;A++)q[A]=[];if(ne.length<z)ne=new Int32Array(z);for(let A=0;A<z;A++){if(I?.(A))continue;let oe=ue(A);if(oe<0||oe>=c)continue;ne[A]=q[oe].length,q[oe].push(A)}}else{let z=d.length;q=Array(c);for(let A=0;A<c;A++)q[A]=[];if(ne.length<z)ne=new Int32Array(z);for(let A=0;A<z;A++){let oe=d[A];ne[A]=q[oe.lane].length,q[oe.lane].push(A)}}te=Array(c);for(let z=0;z<c;z++){let A=q[z],oe=new Float64Array(A.length);for(let Z=0;Z<A.length;Z++){let le=A[Z];if(W&&fe&&j){let ce=fe(le),se=j(le);oe[Z]=ce>=0?ce+(se>0?se*0.5:0):0}else{let ce=d[le];oe[Z]=ce.y+ce.size*0.5}}te[z]=oe}}function B(c,W){let z=c.length;if(!z)return-1;let A=0,oe=z-1;while(A<oe){let Z=A+oe>>1;if(c[Z]<W)A=Z+1;else oe=Z}if(A>0&&Math.abs(c[A-1]-W)<=Math.abs(c[A]-W))return A-1;return A}function k(c,W,z){if(G)l(),G=!1;let A=!!ue,oe,Z;if(A){if(I?.(c))return c;if(oe=ue(c),oe<0)return c;Z=ne[c]}else{let he=d[c];if(!he)return c;oe=he.lane,Z=ne[c]}let le=t.columns,ce=q[oe];switch(a?W==="ArrowDown"?"ArrowRight":W==="ArrowUp"?"ArrowLeft":W==="ArrowRight"?"ArrowDown":W==="ArrowLeft"?"ArrowUp":W:W){case"ArrowDown":if(Z+1<ce.length)return ce[Z+1];return c;case"ArrowUp":if(Z>0)return ce[Z-1];return c;case"ArrowRight":{if(oe>=le-1)return c;let he=oe+1,K=q[he];if(!K.length)return c;let Q=B(te[he],te[oe]?.[Z]??0);return Q>=0?K[Q]:c}case"ArrowLeft":{if(oe<=0)return c;let he=oe-1,K=q[he];if(!K.length)return c;let Q=B(te[he],te[oe]?.[Z]??0);return Q>=0?K[Q]:c}case"Home":return 0;case"End":{let he=q[le-1];return he.length>0?he[he.length-1]:c}case"PageDown":{let he=o.containerSize,K=A?null:d[c],Q=K&&K.size>0?K.size:150,u=Math.max(1,Math.floor(he/Q)),J=Math.min(Z+u,ce.length-1);return ce[J]}case"PageUp":{let he=o.containerSize,K=A?null:d[c],Q=K&&K.size>0?K.size:150,u=Math.max(1,Math.floor(he/Q)),J=Math.max(0,Z-u);return ce[J]}}return c}let N=null;function U(){if(e.size)return(c)=>e.size(c,H);if(N!==null&&typeof N==="function")return(c)=>N(c,H);return(c)=>s.sizeCache.getSize(c)}function be(){let c=t.columns,W=t.gap;H.containerWidth=t.containerSize,H.columns=c,H.gap=W,H.columnWidth=Math.max(0,(t.containerSize-(c-1)*W)/c)}function _(){if(!s)return;be();let c=o.totalItems;d=t.calculateLayout(c,U()),Y=c,G=!0,X()}function X(){if(!s)return;let c=t.getTotalSize(d)+y;if(c===L)return;L=c,s.updateContentSize(c)}function E(){if(o.destroyed||!s||!r)return;if(o.totalItems!==Y)_();if(m)L=-1,X();M();let c=i.getRenderOrigin(),W=i.getPixelEquivalent(),z=o.containerSize;if(!m&&W===V&&z===F&&c===n)return;if(V=W,F=z,m=!1,z<=0||d.length===0)return;let A=Math.max(0,W-g),oe=W+z+g,Z=t.getVisibleItems(d,A,oe),le=D?.()??Un,ce=f?.()??-1;v=s.getItems(),r.render(x,Z,le,ce,c),n=c;let se=Z.length,he=se>0?Z[0].index:0,K=se>0?Z[se-1].index:0;o.prevRangeStart=he,o.prevRangeEnd=K,o.renderPending=!1;let Q=Math.min(se,o.capacity);o.visibleCount=Q,o.startIndex=he;for(let u=0;u<Q;u++){let J=Z[u];o.visibleIndices[u]=J.index,o.visibleOffsets[u]=J.y,o.visibleSizes[u]=J.size}}function P(){if(o.destroyed)return;L=-1,_(),o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,m=!0,E()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(c){if(i=c.scroll,s=c,o=c.getState(),N=c.rawSizeSpec,a=c.config.axis.primary==="x",R=c.config.classPrefix,g=c.config.overscan*qn,c.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");S=c.config.crossAxisPadding,h=c.config.crossPadStart,p=c.config.startPadding,y=c.config.endPadding;let W=o.crossSize-S;t=mn({columns:e.columns,gap:e.gap??0,containerSize:W,crossOffset:h,mainOffset:p}),r=gn(c.dom.content,c.template,R,a,()=>o.totalItems,void 0,void 0,void 0,i.getRenderOrigin),c.dom.root.classList.add(`${R}--masonry`),c.setRenderFn(E,P),_(),c.registerMethod("getMasonryLayout",()=>t),c.registerMethod("updateMasonry",(z)=>{if(z.columns!==void 0&&z.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(z.gap!==void 0&&z.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let A={};if(z.columns!==void 0)A.columns=z.columns;if(z.gap!==void 0)A.gap=z.gap;t.update(A),r?.clear(),P()}),c.registerMethod("scrollToIndex",(z,A="start")=>{let oe=d[z];if(!oe)return;let Z=typeof A==="string"?A:A.align??"start",le=typeof A==="object"?A.behavior:void 0,ce=typeof A==="object"?A.duration:void 0,se=o.containerSize,he=t.getTotalSize(d)+y,K=Math.max(0,he-se),Q=oe.y;if(Z==="center")Q=oe.y-se/2+oe.size/2;else if(Z==="end"){if(Q=oe.y-se+oe.size,z>=o.totalItems-1&&oe.y+oe.size>K)Q=K}if(Q=Math.max(0,Math.min(Q,K)),le==="smooth"&&ce&&ce>0)c.smoothScrollTo(Q,ce);else c.scrollTo(Q)}),c.registerMethod("_scrollItemIntoView",(z)=>{let A=d[z];if(!A)return;let oe=i.getPixelEquivalent(),Z=o.containerSize,le=t.getTotalSize(d)+y,ce=Math.max(0,le-Z),se=A.y,he=se+A.size;if(se-p<oe)c.scrollTo(Math.max(0,se-p));else if(he+y>oe+Z){let K=q[t.columns-1];if(K&&K.length>0&&z===K[K.length-1]&&se>=ce)c.scrollTo(ce);else c.scrollTo(Math.min(he+y-Z,ce))}}),c.setNavConfig({total:()=>o.totalItems,navigate:k}),c.registerDestroyHandler(()=>{r?.destroy(),r=null,c.dom.root.classList.remove(`${R}--masonry`)})},hooks:{onResize(c,W){if(!t||!s)return;let z=o.crossSize-S;if(Math.abs(z-t.containerSize)<1)return;t.update({containerSize:z}),r?.clear(),P()},onIdle(){r?.sortDOM()}},destroy(){r?.destroy(),r=null,d=[],s=null}}}var Et=(e,t)=>{let r=0,o=e.length-1;while(r<o){let i=r+o+1>>>1;if(e[i].headerLayoutIndex<=t)r=i;else o=i-1}return r},pn=(e,t)=>{let r=0,o=e.length-1;while(r<o){let i=r+o+1>>>1;if(e[i].firstDataIndex<=t)r=i;else o=i-1}return r},bn=(e,t,r)=>{if(e===0)return[];let o=[],i=null,n=0,s=0;for(let a=0;a<e;a++){let R=r?.(a);if(!R)continue;let g=t(a,R);if(i===null)i=g,n=0;else if(g!==i){let d=a-n;o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:d}),s=s+1+d,i=g,n=a}}if(i!==null)o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:e-n});return o};var hn=(e,t,r)=>{let o=bn(e,t.getGroupForIndex,r),i=e+o.length,n=t.header?.height??t.header?.width??t.headerHeight;return{get totalEntries(){return i},get groupCount(){return o.length},get groups(){return o},getEntry:(m)=>{if(o.length===0)return{type:"item",dataIndex:m,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let Y=Et(o,m),L=o[Y];if(m===L.headerLayoutIndex)return{type:"header",group:L};let S=m-L.headerLayoutIndex-1;return{type:"item",dataIndex:L.firstDataIndex+S,group:L}},layoutToDataIndex:(m)=>{if(o.length===0)return m;let Y=Et(o,m),L=o[Y];if(m===L.headerLayoutIndex)return-1;let S=m-L.headerLayoutIndex-1;return L.firstDataIndex+S},dataToLayoutIndex:(m)=>{if(o.length===0)return m;let Y=pn(o,m),L=o[Y],S=m-L.firstDataIndex;return L.headerLayoutIndex+1+S},getGroupAtLayoutIndex:(m)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let Y=Et(o,m);return o[Y]},getGroupAtDataIndex:(m)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let Y=pn(o,m);return o[Y]},getHeaderHeight:typeof n==="number"?(m)=>n:(m)=>{let Y=o[m];if(!Y)return 0;return n(Y.key,m)},rebuild:(m,Y)=>{o=bn(m,t.getGroupForIndex,Y??r),i=m+o.length}}};var Ct=(e,t,r,o,i=0)=>{let n=r?"width":"height",s=document.createElement("div");return s.className=`${t}-sticky-header`,s.setAttribute("role","presentation"),s.setAttribute("aria-hidden","true"),s.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(r?`position:absolute;top:0;bottom:0;left:${i||0}px`:`position:relative;top:${i||0}px`),s.style[n]=`${o}px`,e.insertBefore(s,e.firstChild),s},Sn=(e,t,r,o,i,n=!1,s=0,a,R)=>{let g=n?"width":"height",d=n?"height":"width",V=n?"X":"Y",F=(E,P)=>{E.style[g]=`${P}px`},m=a??Ct(e,i,n,0,s),Y=()=>{let E=document.createElement("div");return E.className="sticky-group",E.style.position="absolute",E.style.willChange="transform",E.style[d]="100%",E},L=Y(),S=Y();m.append(L,S);let h=L,p=S,y=t.groups,H=[],v=[],x=[],D=0,f=()=>{y=t.groups,D=y.length,H=Array(D),v=Array(D),x=Array(D);for(let E=0;E<D;E++)H[E]=R?R(y[E].headerLayoutIndex):r.getOffset(y[E].headerLayoutIndex),v[E]=t.getHeaderHeight(E),x[E]=v[E]};f();let w=-1,M=0,q=0,ne=-1,te=!1,ue=0,fe=!1,j=(E,P)=>{o(E,P);let c=v[P];return F(E,c),c},I=(E)=>{E.replaceChildren(),E.style.transform=""},C=(E)=>{if(E===w)return;if(w=E,M=0,q=0,E<0||E>=D){I(h);return}M=j(h,E),q=x[E],F(m,M),h.style.transform=""},G=(E)=>{if(E===ue)return;ue=E;let P=Math.round(E);h.style.transform=`translate${V}(${P}px)`,p.style.transform=`translate${V}(${P+M}px)`},T=()=>{ue=0,h.style.transform="",p.style.transform=""},l=()=>{if(!fe)return;let E=h;h=p,p=E,w=ne,M=w>=0?v[w]:0,q=w>=0?x[w]:0,F(m,M),I(p),ne=-1,fe=!1,T()},B=()=>{if(!fe)return;I(p),ne=-1,fe=!1,T()},k=!!a,N=()=>{if(te)return;if(te=!0,k)m.style.visibility="";else m.style.display=""},U=()=>{if(!te)return;if(te=!1,k)m.style.visibility="hidden";else m.style.display="none";I(h),w=-1,M=0,q=0,B()},be=(E)=>{if(D===0){if(fe)B();if(!te)N();C(-1);return}if(E<H[0]){U();return}let P=0,c=D-1;while(P<c){let z=P+c+1>>>1;if(H[z]+x[z]<=E)P=z;else c=z-1}if(!te)N();C(P);let W=P+1;if(W<D){let z=H[W]-E;if(z<=0&&z>-q){if(ne!==W||!fe)ne=W,j(p,W),fe=!0;let A=q>0?z/q*M:z;G(A)}else if(z<=-q){if(fe)l()}else if(fe)B()}else if(fe)B()},_=()=>{f();let E=w;if(w=-1,M=0,q=0,E>=0)C(E)},X=()=>{m.remove(),w=-1,M=0,q=0,ne=-1,te=!1,fe=!1};if(!a)m.style.display="none";return{update:be,refresh:_,show:N,hide:U,destroy:X}};var Ue={selected:!1,focused:!1},vn=typeof process<"u"&&process.env?.NODE_ENV!=="production";function Mt(e){if(!e.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let t=e.header?.height??e.header?.width??e.headerHeight;if(t==null||typeof t==="number"&&t<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let r=e.header?.template??e.headerTemplate;if(!r)throw Error("[vlist] groups: header.template is required");let o=r,i,n=null,s,a,R,g,d,V=null,F,m,Y,L=null,S,h,p,y=null,H,v,x=null,D=null,f=0,w=0,M=0,q=0,ne=0,te=!1,ue=null,fe=new Map,j=new Set,I=new Map,C=-1,G=-1,T=0,l=!0,B=-1,k=0,N=null,U;function be(){return i.totalEntries}function _(){let u=a.totalItems;if(u===B)return;if(vn)console.log(`[groups] syncLayout: ${B} → ${u}`);let J=B>0;B=u,i.rebuild(u,L??Y),U(i.totalEntries),W();let de=E?z():s.getTotalSize();if(V?.(de),n)n.refresh(),n.update(R.getPixelEquivalent());if(J)Z();let ae=x?.("_scrollbar:getInstance");if(ae)ae()?.updateBounds(de,a.containerSize)}let X=0,E=null,P=null,c=null;function W(){if(f<=0){E=null,P=null;return}X=((a.crossSize||d.clientWidth)-q-(f-1)*w)/f,E=new Map;let de=i.totalEntries,ae=Array(de),Ie=0;if(te){let xe=ue??((Se)=>s.getSize(Se)),pe=new Float64Array(f),ye=[],Te=0,Me=-1;for(let Se=0;Se<de;Se++){let Ee=i.getEntry(Se);if(Ee.type==="header"){let re=0;for(let Ce=0;Ce<f;Ce++)if(pe[Ce]>re)re=pe[Ce];if(Me>=0)ye[Me]=Te+re;Te+=re;let me=s.getSize(Se);E.set(Se,{col:-1,rowY:Te}),ae[Ie++]=[Se,Te,Te+me],Te+=me,pe.fill(0),Me=Ee.group.groupIndex}else{let re=0,me=pe[0];for(let ie=1;ie<f;ie++)if(pe[ie]<me)me=pe[ie],re=ie;let Ce=xe(Ee.dataIndex),Re=Te+pe[re];E.set(Se,{col:re,rowY:Re,h:Ce}),ae[Ie++]=[Se,Re,Re+Ce],pe[re]=pe[re]+Ce+w}}if(Me>=0){let Se=0;for(let Ee=0;Ee<f;Ee++)if(pe[Ee]>Se)Se=pe[Ee];ye[Me]=Te+Se}c=ye}else{c=null;let xe=0,pe=0,ye=0;for(let Te=0;Te<de;Te++)if(i.getEntry(Te).type==="header"){if(pe>0&&ye>0)xe+=ye;let Se=s.getSize(Te);E.set(Te,{col:-1,rowY:xe}),ae[Ie++]=[Te,xe,xe+Se],xe+=Se,pe=0,ye=0}else{let Se=pe%f,Ee=s.getSize(Te);if(Se===0){if(pe>0&&ye>0)xe+=ye+w;ye=Ee}else if(Ee>ye)ye=Ee;E.set(Te,{col:Se,rowY:xe}),ae[Ie++]=[Te,xe,xe+Ee],pe++}}ae.length=Ie,P=ae}function z(){if(!E||E.size===0)return s.getTotalSize();let u=i.totalEntries;if(te)return c?.[c.length-1]??0;let J=0;for(let de=u-1;de>=0;de--){let ae=E.get(de);if(ae){J=ae.rowY+(ae.h??s.getSize(de));break}if(i.getEntry(de).type==="header"){J=s.getOffset(de)+s.getSize(de);break}}return J}function A(u,J){if(E){let ae=E.get(u);if(ae){let Ie=ae.col<0?0:M+ae.col*(X+w),xe=ae.rowY-J;if(S)return`translate(${Math.round(xe)}px, ${Math.round(Ie)}px)`;return`translate(${Math.round(Ie)}px, ${Math.round(xe)}px)`}}let de=s.getOffset(u)-J;if(S)return`translate(${Math.round(de)}px, 0)`;return`translate(0, ${Math.round(de)}px)`}function oe(u,J){let de=E?.get(J);if(de){let Ie=de.h??s.getSize(J);if(de.col<0)if(S)u.style.width=`${Ie}px`,u.style.height="";else u.style.height=`${Ie}px`,u.style.width="100%";else if(S)u.style.width=`${Ie}px`,u.style.height=`${X}px`;else u.style.height=`${Ie}px`,u.style.width=`${X}px`;return}let ae=s.getSize(J);if(S)u.style.width=`${ae}px`;else u.style.height=`${ae}px`}function Z(){fe.forEach((u)=>{u.remove();let J=u.getAttribute("data-id");if(J)I.set(J,u);else g.release(u)}),fe.clear(),j.clear()}function le(){if(I.size>0)I.forEach((u)=>g.release(u)),I.clear()}function ce(u,J,de,ae){if(D===null)D=!!x?.("_getSelectedIds");if(J.type==="header"){let Me=`__group_header_${J.group.groupIndex}`;if(u.getAttribute("data-id")===Me)return!0;if(u.className=v,u.setAttribute("role","presentation"),u.removeAttribute("aria-selected"),u.setAttribute("data-id",Me),S&&n&&J.group.groupIndex===0)u.style.display="none";else{u.style.display="";let Se=o(J.group.key,J.group.groupIndex);if(typeof Se==="string")u.innerHTML=Se;else u.innerHTML="",u.appendChild(Se)}return!0}let Ie=J.dataIndex,xe=Y(Ie);if(!xe)return u.innerHTML="",!1;let pe=xe._isPlaceholder===!0,ye=String(xe.id);if(!pe&&u.getAttribute("data-id")===ye){if(D)u.id=`${h}-item-${ae}`,u.setAttribute("aria-posinset",String(Ie+1)),u.setAttribute("aria-setsize",String(a.totalItems));return!0}if(u.className=H,u.setAttribute("role",D?"option":"listitem"),u.setAttribute("data-id",ye),D)u.id=`${h}-item-${ae}`,u.setAttribute("aria-posinset",String(Ie+1)),u.setAttribute("aria-setsize",String(a.totalItems));if(pe)u.classList.add(`${h}-item--placeholder`);if(de)de(ae,Ue);else Ue.selected=!1,Ue.focused=!1;let Te=m(xe,Ie,Ue);if(typeof Te==="string")u.innerHTML=Te;else u.innerHTML="",u.appendChild(Te);return Ke(u),!pe}let se=0;function he(){if(f<=0)return;let u=a.crossSize;if(u===se)return;se=u,W();let J=z();if(V?.(J),n)n.refresh(),n.update(R.getPixelEquivalent());l=!0}function K(){if(a.destroyed)return;_(),he();let u=R.getPixelEquivalent(),J=a.containerSize,de=R.getRenderOrigin(),ae=de!==T;if(!l&&u===C&&J===G&&!ae)return;C=u,G=J;let Ie=l;l=!1;let xe=be();if(J<=0||xe===0){if(fe.size>0)fe.forEach((ie)=>{ie.remove(),g.release(ie)}),fe.clear(),j.clear();return}let pe,ye;if(P){let ie=P,ve=ie.length,we=0,Pe=ve-1;while(we<Pe){let He=we+Pe>>>1;if(ie[He][2]<=u)we=He+1;else Pe=He}let _e=we;Pe=ve-1;while(we<Pe){let He=we+Pe+1>>>1;if(ie[He][1]>=u+J)Pe=He-1;else we=He}let Oe=we,Fe=ie[_e][0],Ne=ie[Oe][0];for(let He=Fe-1;He>=0;He--)if(i.getEntry(He).type==="header"){Fe=He;break}let We=p*f;pe=Math.max(0,Fe-We),ye=Math.min(xe-1,Ne+We)}else{let ie=s.indexAtOffset(u),ve=s.indexAtOffset(u+J);if(ve<xe-1)ve++;ie=Math.max(0,ie),ve=Math.min(xe-1,Math.max(0,ve)),pe=Math.max(0,ie-p),ye=Math.min(xe-1,ve+p)}if(pe===a.prevRangeStart&&ye===a.prevRangeEnd&&!a.renderPending&&!ae)return;T=de,fe.forEach((ie,ve)=>{if(ve<pe||ve>ye)ie.remove(),g.release(ie),fe.delete(ve),j.delete(ve)});let Te=y?.()??null,Me=Te?`${h}-item--selected`:"",Se=Te?`${h}-item--focused`:"",Ee=null;for(let ie=pe;ie<=ye;ie++){let ve=fe.get(ie),we=!1;if(ve===void 0){let Pe=i.getEntry(ie);we=Pe.type==="header";let _e;if(Pe.type==="header")_e=`__group_header_${Pe.group.groupIndex}`;else{let Fe=Y(Pe.dataIndex);if(Fe&&Fe._isPlaceholder!==!0)_e=String(Fe.id)}if(_e!==void 0){let Fe=I.get(_e);if(Fe)I.delete(_e),ve=Fe}if(!ve)ve=g.acquire();if(ve.setAttribute("data-index",String(ie)),ce(ve,Pe,Te,ie))j.delete(ie);else j.add(ie);if(oe(ve,ie),ve.style.transform=A(ie,de),fe.set(ie,ve),!Ee)Ee=document.createDocumentFragment();Ee.appendChild(ve)}else if(Ie&&j.has(ie)){let Pe=i.getEntry(ie);if(Pe.type==="item")if(ce(ve,Pe,Te,ie))j.delete(ie);else j.add(ie)}else if(we=ve.classList.contains(v),Ie)oe(ve,ie),ve.style.transform=A(ie,de);else if(ae)ve.style.transform=A(ie,de);if(!we&&Te)if(Te(ie,Ue),ve.classList.toggle(Me,Ue.selected),ve.classList.toggle(Se,Ue.focused),Ue.selected)ve.setAttribute("aria-selected","true");else ve.removeAttribute("aria-selected")}if(Ee)d.appendChild(Ee);le();let re=E?z():s.getTotalSize();V?.(re),a.prevRangeStart=pe,a.prevRangeEnd=ye,a.renderPending=!1;let me=0,Ce=0,Re=!1;for(let ie=pe;ie<=ye&&me<a.capacity;ie++){let ve=i.getEntry(ie);if(ve.type==="item"){if(!Re)Ce=ve.dataIndex,Re=!0;a.visibleIndices[me]=ve.dataIndex,a.visibleOffsets[me]=s.getOffset(ie),a.visibleSizes[me]=s.getSize(ie),me++}}a.visibleCount=me,a.startIndex=Ce}function Q(){if(a.destroyed)return;if(he(),vn)console.log(`[groups] forceRender, placeholders: ${j.size}, rendered: ${fe.size}`);let u=N?.()??0;if(u!==k){k=u;let J=i.groups,de=J.length;i.rebuild(B,L??Y);let ae=i.groups,Ie=ae.length!==de;if(!Ie){for(let xe=0;xe<de;xe++)if(ae[xe].headerLayoutIndex!==J[xe].headerLayoutIndex){Ie=!0;break}}if(Ie){U(i.totalEntries),W();let xe=E?z():s.getTotalSize();if(V?.(xe),n)n.refresh(),n.update(R.getPixelEquivalent());let pe=1/0,ye=Math.min(de,ae.length);for(let Me=0;Me<ye;Me++)if(ae[Me].headerLayoutIndex!==J[Me].headerLayoutIndex){pe=Math.min(ae[Me].headerLayoutIndex,J[Me].headerLayoutIndex);break}if(ae.length>de&&ye<ae.length)pe=Math.min(pe,ae[ye].headerLayoutIndex);else if(de>ae.length&&ye<de)pe=Math.min(pe,J[ye].headerLayoutIndex);if(pe<=a.prevRangeEnd)Z();let Te=x?.("_scrollbar:getInstance");if(Te)Te()?.updateBounds(xe,a.containerSize)}}a.prevRangeStart=-1,a.prevRangeEnd=-1,a.renderPending=!0,l=!0,K()}return{name:"groups",priority:10,setup(u){R=u.scroll,s=u.sizeCache,a=u.getState(),g=u.pool,d=u.dom.content,V=u.updateContentSize.bind(u),F=u.dom.root,m=u.template,S=u.config.axis.primary==="x",h=u.config.classPrefix,p=u.config.overscan,ne=u.config.mainAxisPadding,Y=u.getItem.bind(u),y=()=>u.getItemStateFn(),x=u.getMethod.bind(u),D=null,H=`${h}-item`,v=`${h}-group-header`;let J=x?.("getGridLayout"),de=x?.("getMasonryLayout");if(J){let re=J();f=re.columns,w=re.gap,M=u.config.crossPadStart,q=u.config.crossAxisPadding}else if(de){let re=de();f=re.columns,w=re.gap,M=u.config.crossPadStart,q=u.config.crossAxisPadding,te=!0;let me=u.rawSizeSpec;if(typeof me==="function")ue=(Ce)=>me(Ce,{columnWidth:X})}queueMicrotask(()=>{let re=x?.("_getLoadedItem");if(re)L=re;let me=x?.("_getLoadedCount");if(me)N=me});let ae=a.totalItems;i=hn(ae,e,L??Y),B=ae;let Ie=typeof t==="number"?(re)=>t:(re)=>{let me=i.groups[re];if(!me)return 0;return t(me.key,re)},xe=s.getSize,pe=(re)=>{let me=i.getEntry(re);if(me.type==="header"){if(e.sticky!==!1&&me.group.groupIndex===0)return 0;return Ie(me.group.groupIndex)}return xe(me.dataIndex)};u.setSizeConfig(pe);let ye=!1,Te=-1;if(u.registerMethod("_setSizeCacheBase",(re)=>{U=re}),U=s.rebuild,s.rebuild=(re)=>{if(ye){if(!N)N=x?.("_getLoadedCount")??null;let me=N?.()??0;if(re!==B||me!==Te){if(B=re,Te=me,!L)L=x?.("_getLoadedItem")??null;if(i.rebuild(re,L??((Ce)=>u.getItems()[Ce])),a.totalItems=i.totalEntries,n)n.refresh(),n.update(R.getPixelEquivalent())}}U(i.totalEntries)},s.rebuild(i.totalEntries),W(),u.setVirtualTotalFn(()=>i.totalEntries),F.classList.add(`${h}--grouped`),e.sticky!==!1){let re=(ie,ve)=>{let we=i.groups[ve];if(!we)return;let Pe=o(we.key,ve);if(typeof Pe==="string")ie.innerHTML=Pe;else ie.replaceChildren(Pe)},me=i.getHeaderHeight(0),Ce=Ct(F,h,S,me),Re=f>0?(ie)=>{let ve=E?.get(ie);return ve?ve.rowY:s.getOffset(ie)}:void 0;if(n=Sn(F,i,s,re,h,S,0,Ce,Re),n.update(R.getPixelEquivalent()),!S)u.dom.viewport.style.height=`calc(100% - ${me}px)`;else u.dom.viewport.style.width=`calc(100% - ${me}px)`,u.dom.viewport.style.marginLeft=`${me}px`}let Me=!!x?.("_updateTableForGroups");if(ye=Me,Me)queueMicrotask(()=>{let re=x?.("_getItem")??null,me=u.getItems.bind(u);u.setGetItemFn((Re)=>{let ie=i.getEntry(Re);if(ie.type==="header")return{id:`__group_header_${ie.group.groupIndex}`,__groupHeader:!0,groupKey:ie.group.key,groupIndex:ie.group.groupIndex};return re?re(ie.dataIndex):me()[ie.dataIndex]});let Ce=x?.("_updateTableForGroups");if(Ce)Ce((Re)=>!!Re.__groupHeader,o)});else u.setRenderFn(K,Q);u.registerMethod("getGroupLayout",()=>i),u.registerMethod("_dataToLayoutIndex",(re)=>i.dataToLayoutIndex(re)),u.registerMethod("_layoutToDataIndex",(re)=>i.layoutToDataIndex(re)),u.registerMethod("_getRenderedElement",(re)=>fe.get(re)??null),u.registerMethod("_isGroupHeader",(re)=>i.getEntry(re).type==="header"),u.registerMethod("_getItemLane",(re)=>{let me=E?.get(re);return me?me.col:-1}),u.registerMethod("_getItemY",(re)=>{let me=E?.get(re);return me?me.rowY:-1}),u.registerMethod("_getItemH",(re)=>E?.get(re)?.h??-1);let Se=u.config.startPadding,Ee=ne-Se;u.registerMethod("_scrollItemIntoView",(re)=>{if(re<0)return;let me=E?.get(re),Ce=me?me.rowY:s.getOffset(re),Re=me?.h??s.getSize(re),ie=a.containerSize,ve=R.getPixelEquivalent();if(Ce<ve+Se)u.scrollTo(Math.max(0,Ce-Se));else if(Ce+Re+Ee>ve+ie)u.scrollTo(Ce+Re+Ee-ie)}),u.registerMethod("scrollToIndex",(re,me="start")=>{let Ce=i.dataToLayoutIndex(re),Re=i.totalEntries;if(Re===0)return;let ie=Math.max(0,Math.min(Ce,Re-1)),ve=a.containerSize,we=E?.get(ie),Pe=we?we.rowY:s.getOffset(ie),_e=we?we.h??s.getSize(ie):s.getSize(ie),Oe=E?z()+ne:s.getTotalSize(),Fe=Math.max(0,Oe-ve),Ne=typeof me==="string"?me:me.align??"start",We=typeof me==="object"?me.behavior:void 0,He=typeof me==="object"?me.duration:void 0,Ve=E?ne:0,ee=Pe+_e;if(te&&c){let ze=i.getEntry(ie).group.groupIndex,O=c[ze];if(O!==void 0)ee=O}let Le;switch(Ne){case"center":Le=Pe-(ve-_e)/2;break;case"end":Le=ee-ve+Ve;break;default:Le=Pe}if(Le=Math.max(0,Math.min(Le,Fe)),We==="smooth"&&He&&He>0)u.smoothScrollTo(Le,He);else u.scrollTo(Le)}),u.registerDestroyHandler(()=>{for(let[,re]of fe)re.remove();if(fe.clear(),j.clear(),n)n.destroy(),n=null;F.classList.remove(`${h}--grouped`)})},hooks:{onAfterScroll(u,J){if(n)n.update(u)},onResize(u,J){if(f<=0)return;U(i.totalEntries),se=a.crossSize,W();let de=z();if(V?.(de),n)n.refresh(),n.update(R.getPixelEquivalent());l=!0,K()}},destroy(){if(n)n.destroy(),n=null;fe.clear(),j.clear(),I.clear()}}}var yn=(e,t,r)=>{if(String(r).startsWith($e))return!1;let o=$e+t;if(e.has(o))return e.delete(o),e.add(r),!0;return!1},In=(e)=>({selected:new Set(e??[]),focusedIndex:-1,focusVisible:!1});function Xe(e,t,r,o){if(r===0)return;let i=o?-t:t,n=e.focusedIndex+i;if(n<0)n=0;if(n>=r)n=r-1;e.focusedIndex=n}function at(e){return Array.from(e)}function Pt(e,t,r,o){if(o<=0)return 0;let i=o-1;if(r<=1)return e<0?0:e>i?i:e;let n=(t%r+r)%r;if(e<0)return n;if(e>i){let s=Math.floor(i/r)*r;return Math.min(s+n,i)}return e}var Kn={preventScroll:!0};function dt(e){let t=e?.mode??"single",r=e?.followFocus??!1,o=e?.focusOnClick??!1,i=e?.keyboard??!0,n,s,a,R,g,d,V,F,m=-1,Y=new Map,L=null,S=null,h=null,p=null,y,H=!1;function v(l){if(H)return;H=!0,L=l.getMethod("_layoutToDataIndex")??null,S=l.getMethod("_dataToLayoutIndex")??null,h=l.getMethod("_isGroupHeader")??null,p=l.getMethod("_scrollItemIntoView")??null,D=l.getMethod("_getLoadedItem")??null;let B=l.getMethod("getGroupLayout");if(B){let k=B();y=()=>k.totalEntries}}let x=(l)=>L?L(l):l,D=null,f=(l)=>{if(D)return D(l);return s()[l]},w=(l)=>{let B=x(l);return B>=0?f(B):void 0},M=(l,B,k)=>{if(!h)return l;let N=l;while(N>=0&&N<k){if(!h(N))return N;N+=B}N=l-B;while(N>=0&&N<k){if(!h(N))return N;N-=B}return l};function q(l,B){if(t==="single")n.selected.clear(),Y.clear();if(n.selected.add(l),B)Y.set(l,B)}function ne(l,B){if(n.selected.has(l))n.selected.delete(l),Y.delete(l);else q(l,B)}function te(){n.selected.clear(),Y.clear()}function ue(l){n.selected.delete(l),Y.delete(l)}function fe(l,B){let k=Math.min(l,B),N=Math.max(l,B);for(let U=k;U<=N;U++){if(h?.(U))continue;let be=w(U);if(be)n.selected.add(be.id),Y.set(be.id,be);else if(D){let _=x(U);if(_>=0)n.selected.add($e+_)}}}function j(){let l=V.totalItems;for(let B=0;B<l;B++){if(h?.(B))continue;let k=w(B);if(k)n.selected.add(k.id),Y.set(k.id,k);else if(D){let N=x(B);if(N>=0)n.selected.add($e+N)}}}function I(){if(n.selected.size===0)return[];if(Y.size>=n.selected.size){let N=[];for(let U of n.selected){let be=Y.get(U);if(be)N.push(be)}if(N.length===n.selected.size)return N}let l=[],B=new Set(n.selected),k=V.totalItems;for(let N=0;N<k&&B.size>0;N++){if(h?.(N))continue;let U=w(N);if(U&&B.has(U.id))l.push(U),Y.set(U.id,U),B.delete(U.id)}return l}function C(){a(),R.emit("selection:change",{selected:at(n.selected),items:I()})}let G=null,T=-1;return{name:"selection",priority:50,setup(l){l.enableListboxRole(),n=In(e?.initial),s=l.getItems.bind(l),a=l.forceRender.bind(l),R=l.emitter,g=l.dom;let B=l.config;if(d=l.sizeCache,V=l.getState(),F=l.scrollTo.bind(l),y=()=>V.totalItems,t==="none"){l.registerMethod("select",()=>{}),l.registerMethod("deselect",()=>{}),l.registerMethod("toggleSelect",()=>{}),l.registerMethod("selectAll",()=>{}),l.registerMethod("clearSelection",()=>{}),l.registerMethod("getSelected",()=>[]),l.registerMethod("getSelectedItems",()=>[]),l.registerMethod("selectNext",()=>{}),l.registerMethod("selectPrevious",()=>{}),l.registerMethod("_seedSelection",()=>{}),l.registerMethod("_getFocusedId",()=>{return}),l.registerMethod("_focusById",()=>{});return}let k=B.classPrefix;l.setItemStateFn((P,c)=>{if(v(l),n.selected.size>0){let W=x(P),z=W>=0?w(P):void 0,A=z?.id;if(A!==void 0)if(n.selected.has(A))c.selected=!0;else if(yn(n.selected,W,A))c.selected=!0,Y.delete($e+W),Y.set(A,z);else c.selected=!1;else c.selected=D!==null&&W>=0&&n.selected.has($e+W)}else c.selected=!1;c.focused=n.focusVisible&&n.focusedIndex===P}),l.registerMethod("_getSelectedIds",()=>n.selected),l.registerMethod("_getFocusedIndex",()=>n.focusVisible?n.focusedIndex:-1),g.root.classList.add(`${k}--selectable`);let N=(P)=>{G=null,T=-1;let c=P.target.closest("[data-index]");if(!c)return!1;let W=parseInt(c.dataset.index??"-1",10);if(W<0)return!1;if(h?.(W))return!1;if(x(W)<0)return!1;let A=w(W);if(!A)return!1;return G=A,T=W,!0},U=0,be=(P)=>{if(P<0)return;if(p){p(P);return}if(!U){let se=l.getMethod("_getRowGap");U=se?se():0}let c=l.getNavConfig(),W=c.scrollIndex?c.scrollIndex(P):P,z=d.getOffset(W),A=d.getSize(W)-U,oe=V.containerSize,Z=l.scroll.getPixelEquivalent(),{startPadding:le,endPadding:ce}=B;if(z<Z)F(z);else if(le+z+A+ce>Z+oe)F(le+z+A+ce-oe)},_=(P)=>{let c=g.content.querySelectorAll(`[data-index="${P}"]`),W=null;for(let z=0;z<c.length;z++){let A=c[z];if(A.style.display!=="none"){W=A;break}}if(!W&&c.length>0)W=c[0];g.content.setAttribute("aria-activedescendant",W?.id??`${k}-item-${P}`)},X=()=>{if(V.destroyed)return;if(v(l),!g.content.matches(":focus-visible")&&!g.root.matches(":focus-visible"))return;let P=y();if(P===0)return;let c=n.focusedIndex>=0?Math.min(n.focusedIndex,P-1):0;c=M(c,1,P),n.focusedIndex=c,n.focusVisible=!0,_(c),be(c),a()};g.root.addEventListener("focusin",X);let E=(P)=>{if(V.destroyed)return;let c=P.relatedTarget;if(c&&g.root.contains(c))return;n.focusVisible=!1,a(),g.content.removeAttribute("aria-activedescendant")};if(g.root.addEventListener("focusout",E),l.registerDestroyHandler(()=>{g.root.removeEventListener("focusin",X),g.root.removeEventListener("focusout",E)}),l.registerClickHandler((P)=>{if(v(l),!N(P))return;if(t==="multiple"&&P.shiftKey&&n.focusedIndex>=0){let W=m>=0?m:n.focusedIndex,z=x(W),A=x(T);if(z>=0&&A>=0)fe(W,T);n.focusedIndex=T,n.focusVisible=o,m=T,C();return}if(n.focusedIndex=T,n.focusVisible=o,m=T,(g.content.getAttribute("tabindex")!==null?g.content:g.root).focus(Kn),t==="single")q(G.id,G);else ne(G.id,G);C()}),i)l.registerKeydownHandler((P)=>{v(l);let c=y();if(c===0)return;let W=l.getNavConfig(),z=n.focusedIndex,A=!1,oe=!1;if(W.navigate&&(P.key==="ArrowUp"||P.key==="ArrowDown"||P.key==="ArrowLeft"||P.key==="ArrowRight"||P.key==="PageUp"||P.key==="PageDown"||P.key==="Home"||P.key==="End")){let le=W.total?W.total():c,ce=W.navigate(n.focusedIndex,P.key,le);if(ce!==n.focusedIndex)n.focusedIndex=Math.max(0,Math.min(ce,le-1));n.focusVisible=!0,A=!0}else switch(P.key){case"ArrowUp":{let le=W.ud||1,ce=W.lr,se=B.axis.primary==="x";if(se&&!ce)break;Xe(n,-(se?ce:le),c,B.reverse),n.focusVisible=!0,A=!0;break}case"ArrowDown":{let le=W.ud||1,ce=W.lr,se=B.axis.primary==="x";if(se&&!ce)break;Xe(n,se?ce:le,c,B.reverse),n.focusVisible=!0,A=!0;break}case"ArrowLeft":{let le=W.ud||1,ce=W.lr,se=B.axis.primary==="x";if(!se&&!ce)break;Xe(n,-(se?le:ce),c,B.reverse),n.focusVisible=!0,A=!0;break}case"ArrowRight":{let le=W.ud||1,ce=W.lr,se=B.axis.primary==="x";if(!se&&!ce)break;Xe(n,se?le:ce,c,B.reverse),n.focusVisible=!0,A=!0;break}case"Home":if(c>0)n.focusedIndex=0;n.focusVisible=!0,A=!0;break;case"End":if(c>0)n.focusedIndex=c-1;n.focusVisible=!0,A=!0;break;case"PageUp":case"PageDown":{let le=W.ud||1,ce=Math.max(0,n.focusedIndex),se=W.scrollIndex?W.scrollIndex(ce):ce,he=d.getSize(se),K=V.containerSize,u=(he>0?Math.max(1,Math.floor(K/he)):10)*le;if(L&&S){let J=L(n.focusedIndex),de=P.key==="PageUp"?-u:u,ae=V.totalItems-1;n.focusedIndex=S(Pt(J+de,J,le,ae+1))}else{let J=P.key==="PageUp"?n.focusedIndex-u:n.focusedIndex+u;n.focusedIndex=Pt(J,n.focusedIndex,le,c)}n.focusVisible=!0,A=!0;break}case" ":case"Enter":if(P.key===" "&&P.shiftKey&&t==="multiple"&&n.focusedIndex>=0){if(m>=0){let le=x(m),ce=x(n.focusedIndex);if(le>=0&&ce>=0)fe(m,n.focusedIndex)}n.focusVisible=!0,oe=!0,A=!0;break}if(n.focusedIndex>=0){let le=w(n.focusedIndex);if(le)ne(le.id,le),m=n.focusedIndex;n.focusVisible=!0,oe=!0,A=!0}break;case"a":if((P.ctrlKey||P.metaKey)&&t==="multiple"){if(n.selected.size===V.totalItems)te();else j();n.focusVisible=!0,oe=!0,A=!0}break;case"Delete":case"Backspace":if(n.selected.size>0)R.emit("delete",{selected:at(n.selected),items:I()}),A=!0;break}if(n.focusedIndex!==z&&h){let le=n.focusedIndex>z?1:-1;n.focusedIndex=M(n.focusedIndex,le,c)}let Z=n.focusedIndex!==z;if(P.shiftKey&&t==="multiple"&&!oe&&Z){if(P.key==="ArrowUp"||P.key==="ArrowDown"||P.key==="ArrowLeft"||P.key==="ArrowRight"){let se=w(n.focusedIndex);if(se)ne(se.id,se);m=n.focusedIndex,oe=!0}if((P.ctrlKey||P.metaKey)&&(P.key==="Home"||P.key==="End")){let se=z>=0?z:n.focusedIndex,he=x(se),K=x(n.focusedIndex);if(he>=0&&K>=0)fe(se,n.focusedIndex);m=n.focusedIndex,oe=!0}}if(r&&t==="single"&&!oe&&Z&&n.focusedIndex>=0){let le=w(n.focusedIndex);if(le)q(le.id,le);oe=!0}if(A){if(P.preventDefault(),Z&&n.focusedIndex>=0){if(p||!W.navigate)be(n.focusedIndex);_(n.focusedIndex)}if(oe)C();else if(Z){if(a(),n.focusedIndex>=0){let le=w(n.focusedIndex);if(le)R.emit("focus:change",{id:le.id,index:n.focusedIndex})}}}});l.registerMethod("select",(...P)=>{for(let c of P)q(c);C()}),l.registerMethod("deselect",(...P)=>{for(let c of P)ue(c);C()}),l.registerMethod("toggleSelect",(P)=>{ne(P),C()}),l.registerMethod("selectAll",()=>{if(t!=="multiple")return;v(l),j(),C()}),l.registerMethod("clearSelection",()=>{te(),C()}),l.registerMethod("getSelected",()=>at(n.selected)),l.registerMethod("getSelectedItems",()=>I()),l.registerMethod("selectNext",()=>{v(l);let P=y();if(P===0)return;if(Xe(n,1,P,B.reverse),h)n.focusedIndex=M(n.focusedIndex,1,P);let c=w(n.focusedIndex);if(c)q(c.id,c);C()}),l.registerMethod("selectPrevious",()=>{v(l);let P=y();if(P===0)return;if(Xe(n,-1,P,B.reverse),h)n.focusedIndex=M(n.focusedIndex,-1,P);let c=w(n.focusedIndex);if(c)q(c.id,c);C()}),l.registerMethod("_seedSelection",(P)=>{if(t==="single"){if(P.length===1)n.selected.add(P[0])}else for(let c of P)n.selected.add(c)}),l.registerMethod("_isFollowFocus",()=>r),l.registerMethod("_getFocusedId",()=>{if(n.focusedIndex<0)return;return w(n.focusedIndex)?.id}),l.registerMethod("_focusById",(P)=>{let c=V.totalItems;for(let W=0;W<c;W++){if(h?.(W))continue;let z=w(W);if(z&&z.id===P){n.focusedIndex=W,n.focusVisible=o,R.emit("focus:change",{id:P,index:W});return}}})},destroy(){Y.clear()}}}var Xn=0,jn=1000,Zn=15,Jn=!0,Qn=16,eo=!0,Je=2,to="scroll",no=350,oo=12,ro=(e)=>{if(typeof e!=="object"){let t=e??Je;return{top:t,right:t,bottom:t,left:t}}return{top:e.top??Je,right:e.right??Je,bottom:e.bottom??Je,left:e.left??Je}},Tn=(e,t,r={},o="vlist",i=!1,n,s,a)=>{let R=navigator.userAgentData?.platform||navigator.platform+navigator.userAgent,g=r.platform?r.platform==="windows":!/Mac|Android/i.test(R),{autoHide:d=!g,autoHideDelay:V=jn,minThumbSize:F=Zn,showOnHover:m=Jn,showOnViewportEnter:Y=eo,clickBehavior:L=to}=r,S=L==="page"?"scroll":L,h=n??e,p=ro(r.padding),y=i?p.left:p.top,H=i?p.right:p.bottom,v=i?p.bottom:p.right,x=r.hoverZoneWidth??v+Qn,D=!0,f=0,w=0,M=0,q=0,ne=!1,te=!1,ue=0,fe=0,j=0,I=null,C=!1,G=null,T=null,l=-1,B=-1,k=-1,N=-1,U=-1,be=e.id?"":(()=>{let ee;do ee=`${o}-scrollport-${++Xn}`;while(document.getElementById(ee));return e.id=ee,ee})(),_=0,X=0,E=null,P=null,c=null,W=i?"width":"height",z=i?"translateX":"translateY",A=i?(ee)=>ee.clientX:(ee)=>ee.clientY,oe=i?"left":"top",Z=document.createElement("div"),le=document.createElement("div"),ce=document.createElement("div"),se=i?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",he=()=>{if(h===e)return;let ee=e.offsetTop;Z.style[i?"left":"top"]=ee?`calc(var(${se}) + ${ee}px)`:`var(${se})`,ce.style[i?"left":"top"]=`${ee}px`},K=()=>{if(Z.className=`${o}-scrollbar`,Z.setAttribute("role","scrollbar"),Z.setAttribute("aria-controls",e.id),Z.setAttribute("aria-orientation",i?"horizontal":"vertical"),Z.setAttribute("aria-label",e.getAttribute("aria-label")||"Scroll"),Z.setAttribute("aria-valuemin","0"),Z.tabIndex=0,le.className=`${o}-scrollbar__thumb`,i)Z.classList.add(`${o}-scrollbar--horizontal`);if(r.padding!==void 0)h.style.setProperty("--vlist-custom-scrollbar-padding-top",`${p.top}px`),h.style.setProperty("--vlist-custom-scrollbar-padding-right",`${p.right}px`),h.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${p.bottom}px`),h.style.setProperty("--vlist-custom-scrollbar-padding-left",`${p.left}px`);if(r.minThumbSize!==void 0)Z.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${F}px`);if(Z.appendChild(le),h.appendChild(Z),ce.className=`${o}-scrollbar__hover`,i)ce.classList.add(`${o}-scrollbar__hover--horizontal`),ce.style.height=`${x}px`;else ce.style.width=`${x}px`;if(h.appendChild(ce),h!==e)he()},Q=()=>{if(I)clearTimeout(I),I=null},u=()=>{if(!d)return;Q(),I=setTimeout(de,V)},J=()=>{if(!D||f<=w)return;if(Q(),!C)Z.classList.add(`${o}-scrollbar--visible`),C=!0;if(d&&!ne&&!te&&document.activeElement!==Z)u()},de=()=>{if(ne||te||document.activeElement===Z)return;Z.classList.remove(`${o}-scrollbar--visible`),C=!1},ae=(ee,Le)=>{if(f=ee,w=Le,he(),Ie(j),!D||f<=w){Z.style.display="none",Z.classList.remove(`${o}-scrollbar--visible`),C=!1;return}Z.style.display="";let ze=Math.max(0,w-y-H),O=w/f;if(M=Math.max(F,O*ze),le.style[W]=`${M}px`,q=ze-M,Ie(j),!d)J()},Ie=(ee)=>{let Le=Math.max(0,f-w);if(j=Math.max(0,Math.min(ee,Le)),l!==Le)l=Le,Z.setAttribute("aria-valuemax",String(Le));if(B!==j)B=j,Z.setAttribute("aria-valuenow",String(j));let ze=s?.(),O=ze?.getTotal()??0,b=O?ze.indexAtOffset(j)+1:0;if(b!==k||O!==N)k=b,N=O,Z.setAttribute("aria-valuetext",`Row ${b} of ${O}`);if(Le<=0||q<=0)return;let ge=j/Le*q;if(ge!==U)U=ge,le.style.transform=`${z}(${ge}px)`},xe=(ee)=>{if(!D||ee.target!==Z||document.activeElement!==Z)return;if(ee.stopPropagation(),ee.altKey||ee.ctrlKey||ee.metaKey)return;let Le=s?.(),ze=Le?.getSize(Le.indexAtOffset(j))??40,O=j;switch(ee.key){case(i?"ArrowLeft":"ArrowUp"):O-=ze;break;case(i?"ArrowRight":"ArrowDown"):O+=ze;break;case"PageUp":O-=w;break;case"PageDown":O+=w;break;case"Home":O=0;break;case"End":O=f;break;default:return}ee.preventDefault(),t(Math.max(0,Math.min(O,Math.max(0,f-w)))),J()},pe=(ee)=>{if(ee.target===le||S!=="jump"||q<=0)return;let Le=f-w,ze=Z.getBoundingClientRect(),O=A(ee)-ze[oe],b=Math.max(0,Math.min(O-M/2,q));t(b/q*Le),J()},ye=()=>{if(E!==null)clearTimeout(E),E=null;if(P!==null)cancelAnimationFrame(P),P=null;c=null},Te=(ee)=>{let Le=q>0?X/ee*q:0;if(_<Le)return-1;if(_>=Le+M)return 1;return 0},Me=()=>{let ee=f-w,Le=Te(ee);if(Le===0){ye();return}if(Le===-1){if(X<=0){ye();return}let ze=Math.max(0,X-w);X=ze,t(ze)}else{if(X>=ee){ye();return}let ze=Math.min(ee,X+w);X=ze,t(ze)}J()},Se=(ee)=>{if(c===null){c=ee,P=requestAnimationFrame(Se);return}let Le=f-w,ze=ee-c;c=ee;let O=Te(Le);if(O===0){ye();return}let b=oo*w/1000,ge=Math.min(b*ze,w);if(O===-1){if(X<=0){ye();return}let Ae=Math.max(0,X-ge);X=Ae,t(Ae)}else{if(X>=Le){ye();return}let Ae=Math.min(Le,X+ge);X=Ae,t(Ae)}Q(),P=requestAnimationFrame(Se)},Ee=(ee)=>{if(ee&&ee.pointerId!==G)return;let Le=G,ze=T;if(G=null,T=null,ne=!1,Z.classList.remove(`${o}-scrollbar--dragging`),ye(),Le!==null&&ze?.hasPointerCapture(Le))ze.releasePointerCapture(Le);u()},re=(ee)=>{if(!D||ee.button!==0||G!==null||q<=0)return;if(ee.preventDefault(),ee.stopPropagation(),G=ee.pointerId,ne=ee.target===le,T=ne?le:ee.currentTarget,T.setPointerCapture(G),Q(),ne)ue=A(ee),fe=j,Z.classList.add(`${o}-scrollbar--dragging`);else if(S==="jump")pe(ee);else _=A(ee)-Z.getBoundingClientRect()[oe],X=j,Me(),E=setTimeout(()=>{P=requestAnimationFrame(Se)},no);J()},me=(ee)=>{if(!ne||ee.pointerId!==G)return;ee.stopPropagation();let Le=A(ee)-ue,ze=Math.max(0,f-w),O=Math.max(0,Math.min(fe+Le/q*ze,ze));Ie(O),t(O)},Ce=()=>{if(Y)J()},Re=()=>{if(!ne){if(te=!1,d)u()}},ie=()=>{te=!0,Q(),J()},ve=()=>{if(te=!1,!ne&&d)u()},we=["width","radius","thumb-color","track-color"],Pe=(ee,Le)=>h.style.setProperty(`--vlist-custom-scrollbar-${ee}`,Le),_e=we.map((ee)=>h.style.getPropertyValue(`--vlist-custom-scrollbar-${ee}`)),Oe=_e.slice(0,2),Fe=[],Ne=()=>{for(let b=0;b<2;b++){let ge=we[b],Ae=h.style.getPropertyValue(`--vlist-custom-scrollbar-${ge}`);if(Ae!==Fe[b])Oe[b]=Ae;Pe(ge,Oe[b])}let ee=getComputedStyle(a??h),Le=r.width??ee.getPropertyValue("scrollbar-width"),ze=ee.getPropertyValue("scrollbar-color").match(/[\w-]+\([^)]*\)|\S+/g);D=r.enabled!==!1&&Le!=="none";let O=[typeof r.width==="number"?`${r.width}px`:ee.getPropertyValue("--vlist-custom-scrollbar-width").trim()||(Le==="thin"||!g?"6px":"14px"),typeof r.radius==="number"?`${r.radius}px`:ee.getPropertyValue("--vlist-custom-scrollbar-radius").trim()||(g?"0px":"4px"),r.thumbColor??(ze?.length===2?ze[0]:_e[2]),r.trackColor??(ze?.length===2?ze[1]:_e[3])];for(let b=0;b<we.length;b++)Pe(we[b],O[b]);if(Fe=O.slice(0,2),ce.style.display=D?"":"none",e.classList.toggle(`${o}-viewport--gutter`,D&&!!r.gutter),!D)Ee();ae(f,w)},We=()=>{Q(),ye(),Ee(),Q();for(let ee of He)ee();for(let ee=0;ee<we.length;ee++)Pe(we[ee],_e[ee]);if(e.classList.remove(`${o}-viewport--gutter`),ce.remove(),h.style.removeProperty("--vlist-custom-scrollbar-padding-top"),h.style.removeProperty("--vlist-custom-scrollbar-padding-right"),h.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),h.style.removeProperty("--vlist-custom-scrollbar-padding-left"),Z.remove(),be&&e.id===be)e.removeAttribute("id")};K();let He=[],Ve=(ee,Le,ze)=>{ee.addEventListener(Le,ze),He.push(()=>ee.removeEventListener(Le,ze))};for(let ee of[Z,le,ce])Ve(ee,"pointerdown",re),Ve(ee,"pointermove",me),Ve(ee,"pointerup",Ee),Ve(ee,"pointercancel",Ee),Ve(ee,"lostpointercapture",Ee);if(Ve(Z,"keydown",xe),Ve(Z,"focus",J),Ve(Z,"blur",u),Ve(e,"mouseenter",Ce),Ve(e,"mouseleave",Re),Ve(Z,"mouseenter",ie),Ve(Z,"mouseleave",ve),m)Ve(ce,"mouseenter",ie),Ve(ce,"mouseleave",ve);return Ne(),{refresh:Ne,show:J,hide:de,updateBounds:ae,updatePosition:Ie,isVisible:()=>C,destroy:We}};function zt(e){let t=null,r,o=0,i=0,n=0;return{name:"scrollbar",priority:15,setup(s){let{dom:a,config:R}=s,{classPrefix:g}=R,d=R.axis.primary==="x";r=s.getState(),o=R.mainAxisPadding;let V=(F)=>{s.scrollTo(F)};s.registerMethod("_scrollbar:setCallback",(F)=>{V=F}),t=Tn(a.viewport,(F)=>{V(F)},e,g,d,a.root,()=>s.sizeCache,a.root.parentElement),a.viewport.classList.add(`${g}-viewport--custom-scrollbar`),s.registerMethod("refreshScrollbar",()=>t?.refresh()),queueMicrotask(()=>{t?.updateBounds(r.totalSize+o,r.containerSize)}),s.registerMethod("_scrollbar:getInstance",()=>t),s.registerDestroyHandler(()=>{if(t?.destroy(),t=null,a.viewport.classList.remove(`${g}-viewport--custom-scrollbar`),e?.gutter)a.viewport.classList.remove(`${g}-viewport--gutter`)})},hooks:{onAfterScroll(s){let a=r.totalSize+o,R=r.containerSize;if(a!==i||R!==n)i=a,n=R,t?.updateBounds(a,R);t?.updatePosition(s),t?.show()},onResize(){let s=r.totalSize+o,a=r.containerSize;i=s,n=a,t?.updateBounds(s,a)}},destroy(){t?.destroy(),t=null}}}var io=(e)=>{try{let t=sessionStorage.getItem(e);if(!t)return;return JSON.parse(t)}catch{return}};function At(e){let t=e?.autoSave,r=e?.restore??(t?io(t):void 0),o=!1,i=null;return{name:"snapshots",priority:50,setup(n){let{sizeCache:s,emitter:a,scroll:R}=n,g=n.getState(),d=()=>{let m=R.getPixelEquivalent(),Y=g.totalItems,S=n.getMethod("getSelected")?.();if(Y===0){let f={index:0,offsetInItem:0,total:0};if(S?.length)f.selectedIds=S;return f}let h=s.indexAtOffset(m),p=m-s.getOffset(h);p=Math.max(0,p);let y={index:h,offsetInItem:p,total:Y,scrollTop:m},H=s.getSize(h);if(H)y.offsetRatio=p/H;let v=n.getMethod("_layoutToDataIndex");if(v){let f=v(h);if(f<0){for(let w=h+1;w<Y;w++)if(f=v(w),f>=0)break}if(f>=0)y.dataIndex=f}let x=n.getMethod("_getTotal");if(x)y.dataTotal=x();if(S?.length)y.selectedIds=S;let D=n.getMethod("_getFocusedId");if(D){let f=D();if(f!==void 0)y.focusedId=f}return y};n.registerMethod("getScrollSnapshot",d);let V=(m,Y=!0)=>{let{index:L,offsetInItem:S,selectedIds:h,focusedId:p}=m,y=g.totalItems,H=m.dataTotal??m.total;if(y===0&&H&&H>0){let I=n.getMethod("_setTotal");if(I)I(H),y=g.totalItems;s.rebuild(y),n.updateContentSize(s.getTotalSize()),g.totalSize=s.getTotalSize()}if(y===0)return Promise.resolve();if(!Number.isFinite(L)||!Number.isFinite(S))return Promise.resolve();if(s.getTotal()===0)s.rebuild(y),n.updateContentSize(s.getTotalSize()),g.totalSize=s.getTotalSize();let x=n.getMethod("_dataToLayoutIndex"),D=L;if(m.dataIndex!==void 0&&m.dataIndex>=0)D=x?x(m.dataIndex):m.dataIndex;else if(x)D=x(L);let f=Math.max(0,Math.min(D,y-1)),w=s.getSize(f),M=m.offsetRatio!==void 0?m.offsetRatio*w:Math.min(S,w),q=n.getMethod("_getTotal")?.(),ne=m.total===y||q!==void 0&&m.dataTotal===q,te;if(m.scrollTop!==void 0&&ne)te=m.scrollTop;else te=s.getOffset(f)+M;let ue=Math.max(0,g.totalSize-g.containerSize);if(te=Math.max(0,Math.min(te,ue)),n.scrollTo(te),Y&&h?.length){let I=n.getMethod("select");if(I)I(...h)}let fe=n.getMethod("loadVisibleRange"),j=()=>{if(p===void 0)return;let I=n.getMethod("_focusById");if(I)I(p)};return new Promise((I)=>{let C=(G)=>{if(G)j();I()};if(fe){let G=0,T=()=>{if(g.containerSize>0){if(Math.abs(R.getPixelEquivalent()-te)>1)n.scrollTo(te);fe().then(()=>C(!0),()=>C(!1))}else if(++G<10)requestAnimationFrame(T);else C(!1)};requestAnimationFrame(T)}else{let G=n.getMethod("reload");if(G)requestAnimationFrame(()=>{G().then(()=>C(!0),()=>C(!1))});else requestAnimationFrame(()=>C(!0))}})};n.registerMethod("restoreScroll",V);let F=!!(r&&t);if(n.registerDestroyHandler(()=>{o=!0}),t){i=()=>{if(o||F)return;let y=d();try{sessionStorage.setItem(t,JSON.stringify(y))}catch{}},n.registerMethod("_saveSnapshot",i);let m=0,Y=()=>{if(m)return;m=requestAnimationFrame(()=>{if(m=0,i)i()})};a.on("selection:change",Y),a.on("focus:change",Y);let L=0,S=()=>{if(L=0,i)i()},h=()=>{if(L)clearTimeout(L);L=setTimeout(S,300)};a.on("scroll",h);let p=()=>{i?.()};if(window.addEventListener("beforeunload",p),n.registerDestroyHandler(()=>{if(m)cancelAnimationFrame(m);if(L)clearTimeout(L);window.removeEventListener("beforeunload",p)}),r&&r.total&&r.total>0){let y=n.getMethod("_cancelAutoLoad");if(y)y();let H=n.getMethod("_setTotal");if(H)H(r.total)}}if(r){let m=!0;if(r.selectedIds?.length){let Y=n.getMethod("_seedSelection");if(Y)Y(r.selectedIds),m=!1}queueMicrotask(()=>{if(V(r,m),F=!1,i)i()})}},hooks:{onIdle(){if(i&&!o)i()}},destroy(){o=!0,i=null}}}function so(e){let t=[];if(typeof window<"u"&&e.scroll?.element===window)t.push(yt());let r=e.item,o=e.orientation==="horizontal",i=o?r.width!=null:r.height!=null,n=o?r.estimatedWidth!=null:r.estimatedHeight!=null;if(!i&&n)t.push(It());if(e.adapter)t.push(Tt({adapter:e.adapter,...e.loading&&{loading:e.loading}}));if(e.layout==="grid"&&e.grid)t.push(xt(e.grid));if(e.layout==="masonry"&&e.masonry)t.push(Lt(e.masonry));if(e.groups){let R=e.groups,g=typeof R.headerHeight==="function"?R.headerHeight("",0):R.headerHeight;t.push(Mt({getGroupForIndex:R.getGroupForIndex,...g!==void 0&&{headerHeight:g},...R.headerTemplate!==void 0&&{headerTemplate:R.headerTemplate},...R.sticky!==void 0&&{sticky:R.sticky}}))}if((e.selection?.mode||"none")!=="none")t.push(dt(e.selection));else t.push(dt({mode:"none"}));let a=e.scroll?.scrollbar||e.scrollbar;if(a!=="none"&&a!=="native"){let R=a&&typeof a==="object"?a:{};t.push(zt(R))}if(t.push(At()),e.plugins&&e.plugins.length>0){let R=new Set(e.plugins.map((d)=>d.name));return[...t.filter((d)=>!R.has(d.name)),...e.plugins]}return t}function di(e){let{factory:t,...r}=e;return(t??ln)(r,so(e))}export{di as createVListFromConfig,so as resolvePlugins};
|
package/dist/core/create.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type { BoundedScrollHandler, BoundedScrollConfig } from "./runway";
|
|
|
11
11
|
import type { ScrollHandler, ScrollHandlerConfig } from "./scroll";
|
|
12
12
|
import { type Emitter } from "../events";
|
|
13
13
|
import type { VListEvents } from "../types";
|
|
14
|
-
/** Create a list with
|
|
14
|
+
/** Create a list with native scrolling. Opt into synthetic input via vlist/synthetic. */
|
|
15
15
|
export declare function createVList<T extends VListItem = VListItem>(config: CreateVListConfig<T>, plugins?: VListPlugin<T>[]): VList<T>;
|
|
16
16
|
/** @internal Shared factory; entries select the input handler. */
|
|
17
17
|
export declare function createCore<T extends VListItem = VListItem>(rawConfig: CreateVListConfig<T>, plugins?: VListPlugin<T>[],
|
|
@@ -22,7 +22,6 @@ logicalHandlerFactory?: (config: BoundedScrollConfig & {
|
|
|
22
22
|
native: (config: ScrollHandlerConfig) => ScrollHandler & {
|
|
23
23
|
commitScroll(pos?: number): void;
|
|
24
24
|
};
|
|
25
|
-
wrap: (config: BoundedScrollConfig) => BoundedScrollHandler;
|
|
26
25
|
onContentSize: (size: number, emitter: Emitter<VListEvents<T>>) => void;
|
|
27
26
|
}): VList<T>;
|
|
28
27
|
//# sourceMappingURL=create.d.ts.map
|
package/dist/core/types.d.ts
CHANGED
|
@@ -87,7 +87,7 @@ export interface PluginContext<T extends VListItem = VListItem> {
|
|
|
87
87
|
/** Commit an external position, render synchronously and schedule configured idle. */
|
|
88
88
|
commitScroll(px: number): void;
|
|
89
89
|
/** Request the bounded scroll handler in infinite-loop (wrap) mode (carousel). */
|
|
90
|
-
setBoundedWrap(config: import("./runway").WrapConfig): void;
|
|
90
|
+
setBoundedWrap(config: import("./runway").WrapConfig, createHandler: (config: import("./runway").BoundedScrollConfig) => import("./runway").BoundedScrollHandler): void;
|
|
91
91
|
setVirtualTotalFn(fn: () => number): void;
|
|
92
92
|
setIndexMapFn(fn: (renderIndex: number) => number): void;
|
|
93
93
|
getItems(): readonly T[];
|