vlist 2.6.5 → 2.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/internals.js CHANGED
@@ -1 +1 @@
1
- function He(t){let e=t.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let s=0;s<e.length;s++)e[s].setAttribute("tabindex","-1")}var Oe=(t,e)=>{let s=0,n=t.length-1;while(s<n){let u=s+n+1>>>1;if(t[u].headerLayoutIndex<=e)s=u;else n=u-1}return s},Ne=(t,e)=>{let s=0,n=t.length-1;while(s<n){let u=s+n+1>>>1;if(t[u].firstDataIndex<=e)s=u;else n=u-1}return s},Be=(t,e,s)=>{if(t===0)return[];let n=[],u=null,a=0,r=0;for(let g=0;g<t;g++){let w=s?.(g);if(!w)continue;let E=e(g,w);if(u===null)u=E,a=0;else if(E!==u){let _=g-a;n.push({key:u,groupIndex:n.length,headerLayoutIndex:r,firstDataIndex:a,count:_}),r=r+1+_,u=E,a=g}}if(u!==null)n.push({key:u,groupIndex:n.length,headerLayoutIndex:r,firstDataIndex:a,count:t-a});return n},We=(t,e)=>{if(t.length===0||e.length===0)return[];let s=t.length+e.length,n=Array(s),u=0;for(let a of e){n[u]={id:`__group_header_${a.groupIndex}`,__groupHeader:!0,groupKey:a.key,groupIndex:a.groupIndex},u++;for(let r=0;r<a.count;r++)n[u]=t[a.firstDataIndex+r],u++}return n},Ke=(t,e,s=!1)=>{let n=typeof e==="number"?(u)=>e:e;return(u)=>{let a=t.getEntry(u);if(a.type==="header"){if(s&&a.group.groupIndex===0)return 0;return t.getHeaderHeight(a.group.groupIndex)}return n(a.dataIndex)}},Ue=(t,e,s)=>{let n=Be(t,e.getGroupForIndex,s),u=t+n.length,a=e.header?.height??e.header?.width??e.headerHeight;return{get totalEntries(){return u},get groupCount(){return n.length},get groups(){return n},getEntry:(c)=>{if(n.length===0)return{type:"item",dataIndex:c,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let C=Oe(n,c),x=n[C];if(c===x.headerLayoutIndex)return{type:"header",group:x};let T=c-x.headerLayoutIndex-1;return{type:"item",dataIndex:x.firstDataIndex+T,group:x}},layoutToDataIndex:(c)=>{if(n.length===0)return c;let C=Oe(n,c),x=n[C];if(c===x.headerLayoutIndex)return-1;let T=c-x.headerLayoutIndex-1;return x.firstDataIndex+T},dataToLayoutIndex:(c)=>{if(n.length===0)return c;let C=Ne(n,c),x=n[C],T=c-x.firstDataIndex;return x.headerLayoutIndex+1+T},getGroupAtLayoutIndex:(c)=>{if(n.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let C=Oe(n,c);return n[C]},getGroupAtDataIndex:(c)=>{if(n.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let C=Ne(n,c);return n[C]},getHeaderHeight:typeof a==="number"?(c)=>a:(c)=>{let C=n[c];if(!C)return 0;return a(C.key,c)},rebuild:(c,C)=>{n=Be(c,e.getGroupForIndex,C??s),u=c+n.length}}};var pt=(t,e,s,n,u=0)=>{let a=s?"width":"height",r=document.createElement("div");return r.className=`${e}-sticky-header`,r.setAttribute("role","presentation"),r.setAttribute("aria-hidden","true"),r.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(s?`position:absolute;top:0;bottom:0;left:${u||0}px`:`position:relative;top:${u||0}px`),r.style[a]=`${n}px`,t.insertBefore(r,t.firstChild),r},Ye=(t,e,s,n,u,a=!1,r=0,g,w)=>{let E=a?"width":"height",_=a?"height":"width",F=a?"X":"Y",W=(h,m)=>{h.style[E]=`${m}px`},c=g??pt(t,u,a,0,r),C=()=>{let h=document.createElement("div");return h.className="sticky-group",h.style.position="absolute",h.style.willChange="transform",h.style[_]="100%",h},x=C(),T=C();c.append(x,T);let b=x,I=T,d=e.groups,v=[],O=[],A=[],D=0,Z=()=>{d=e.groups,D=d.length,v=Array(D),O=Array(D),A=Array(D);for(let h=0;h<D;h++)v[h]=w?w(d[h].headerLayoutIndex):s.getOffset(d[h].headerLayoutIndex),O[h]=e.getHeaderHeight(h),A[h]=O[h]};Z();let X=-1,j=0,Q=0,ie=-1,oe=!1,de=0,V=!1,Y=(h,m)=>{n(h,m);let H=O[m];return W(h,H),H},y=(h)=>{h.replaceChildren(),h.style.transform=""},o=(h)=>{if(h===X)return;if(X=h,j=0,Q=0,h<0||h>=D){y(b);return}j=Y(b,h),Q=A[h],W(c,j),b.style.transform=""},f=(h)=>{if(h===de)return;de=h;let m=Math.round(h);b.style.transform=`translate${F}(${m}px)`,I.style.transform=`translate${F}(${m+j}px)`},i=()=>{de=0,b.style.transform="",I.style.transform=""},L=()=>{if(!V)return;let h=b;b=I,I=h,X=ie,j=X>=0?O[X]:0,Q=X>=0?A[X]:0,W(c,j),y(I),ie=-1,V=!1,i()},N=()=>{if(!V)return;y(I),ie=-1,V=!1,i()},J=!!g,l=()=>{if(oe)return;if(oe=!0,J)c.style.visibility="";else c.style.display=""},p=()=>{if(!oe)return;if(oe=!1,J)c.style.visibility="hidden";else c.style.display="none";y(b),X=-1,j=0,Q=0,N()},S=(h)=>{if(D===0){if(V)N();if(!oe)l();o(-1);return}if(h<v[0]){p();return}let m=0,H=D-1;while(m<H){let k=m+H+1>>>1;if(v[k]+A[k]<=h)m=k;else H=k-1}if(!oe)l();o(m);let P=m+1;if(P<D){let k=v[P]-h;if(k<=0&&k>-Q){if(ie!==P||!V)ie=P,Y(I,P),V=!0;let q=Q>0?k/Q*j:k;f(q)}else if(k<=-Q){if(V)L()}else if(V)N()}else if(V)N()},B=()=>{Z();let h=X;if(X=-1,j=0,Q=0,h>=0)o(h)},K=()=>{c.remove(),X=-1,j=0,Q=0,ie=-1,oe=!1,V=!1};if(!g)c.style.display="none";return{update:S,refresh:B,show:l,hide:p,destroy:K}};var Re=(t)=>t!==null&&typeof t==="object"&&t.__groupHeader===!0;var Ze=(t)=>{let e=Math.max(1,Math.floor(t.columns)),s=t.gap??0,n=t.isHeaderFn,u={row:0,col:0},a=(x)=>{if(x<=0)return 0;if(!n)return Math.ceil(x/e);let T=0,b=0,I=0;for(let d=0;d<x;d++)if(n(d)){if(I++,b)T++,b=0;T++,b=0}else if(b++,b>=e)T++,b=0;if(b)T++;return T},r=(x)=>(u.row=g(x),u.col=w(x),u),g=(x)=>{if(!n)return Math.floor(x/e);let T=0,b=0;for(let I=0;I<=x;I++)if(n(I)){if(b)T++,b=0;if(I===x)return T;T++,b=0}else{if(I===x)return T;if(b++,b>=e)T++,b=0}return console.warn(`⚠️ getRow(${x}) fell through - returning ${T}`),T},w=(x)=>{if(!n)return x%e;if(n(x))return 0;let T=0;for(let b=0;b<=x;b++)if(n(b))T=0;else{if(b===x)return T;if(T++,T>=e)T=0}return T},E=(x,T,b,I)=>{if(b<=0){I.start=0,I.end=-1;return}if(!n){I.start=Math.max(0,x*e),I.end=Math.min(b-1,(T+1)*e-1);return}let d=_(x,T,b);I.start=d.start,I.end=d.end},_=(x,T,b)=>{if(b<=0)return{start:0,end:-1};if(!n){let A=Math.max(0,x*e),D=Math.min(b-1,(T+1)*e-1);return{start:A,end:D}}let I=-1,d=-1,v=0,O=0;for(let A=0;A<b;A++){if(n(A)){if(O)v++,O=0;if(v>=x&&v<=T){if(I<0)I=A;d=A}v++,O=0}else{if(v>=x&&v<=T){if(I<0)I=A;d=A}if(O++,O>=e)v++,O=0}if(v>T&&!O)break}if(I<0)return{start:0,end:-1};return{start:I,end:d}},F=(x,T,b)=>{if(T<0||T>=e)return-1;let I=x*e+T;if(I<0||I>=b)return-1;return I},W=(x)=>{let T=(e-1)*s;return Math.max(0,(x-T)/e)};return{get columns(){return e},get gap(){return s},update:(x)=>{if(x.columns!==void 0)e=Math.max(1,Math.floor(x.columns));if(x.gap!==void 0)s=x.gap;if(x.isHeaderFn!==void 0)n=x.isHeaderFn},getTotalRows:a,getPosition:r,getRow:g,getCol:w,getItemRange:_,fillItemRange:E,getItemIndex:F,getColumnWidth:W,getColumnOffset:(x,T)=>{let b=W(T);return x*(b+s)}}};var qe=16000000;var Xe="x",je=20,ze="_isPlaceholder",Ee="__placeholder_";var Me=(t,e,s)=>{if(String(s).startsWith(Ee))return!1;let n=Ee+e;if(t.has(n))return t.delete(n),t.add(s),!0;return!1},Je=(t)=>({selected:new Set(t??[]),focusedIndex:-1,focusVisible:!1}),$e=(t,e,s)=>{if(s==="none")return t;let n=new Set(t.selected);if(s==="single"){if(n.clear(),e.length>0)n.add(e[0])}else for(let u of e)n.add(u);return{...t,selected:n}},Ge=(t,e)=>{let s=new Set(t.selected);for(let n of e)s.delete(n);return{...t,selected:s}},Qe=(t,e,s)=>{if(s==="none")return t;if(t.selected.has(e))return Ge(t,[e]);else return $e(t,[e],s)},et=(t,e,s)=>{if(s!=="multiple")return t;return{...t,selected:new Set(e.map((n)=>n.id))}},tt=(t)=>({...t,selected:new Set});var nt=(t,e)=>t.selected.has(e),rt=(t)=>Array.from(t.selected),ot=(t,e)=>{let s=[];for(let n of t.selected){let u=e(n);if(u)s.push(u)}return s};var ke=(t,e,s)=>{let n=Array.from(e).sort((r,g)=>r-g);if(n.length<=1)return;let u=[];for(let r=0;r<n.length;r++){let g=s(n[r]);if(g)u.push(g)}if(u.length<=1)return;let a=t.firstChild;for(let r=0;r<u.length;r++){let g=u[r];if(g===a)a=a.nextSibling;else t.insertBefore(g,a)}};var gt=(t=200)=>{let e=[];return{acquire:()=>{let a=e.pop();if(a)return a;let r=document.createElement("div");return r.setAttribute("role","option"),r},release:(a)=>{if(a.remove(),e.length<t)a.className="",a.textContent="",a.removeAttribute("style"),a.removeAttribute("data-index"),a.removeAttribute("data-id"),a.removeAttribute("data-row"),a.removeAttribute("data-col"),e.push(a)},clear:()=>{e.length=0}}},bt=1,ht=(t,e,s,n,u,a,r,g,w=!1,E,_)=>{let F=gt(),W=new Map,c=a,C=!1,x=0,T="",b=-1,I={selected:!1,focused:!1},d=(l,p)=>(I.selected=l,I.focused=p,I),v=`${u}-item ${u}-grid-item`,O=`${u}-group-header`,A=`${u}-item--selected`,D=`${u}-item--focused`,Z=`${u}-item--placeholder`,X=`${u}-item--replaced`,j=(l,p)=>{if(typeof p==="string")l.innerHTML=p;else l.replaceChildren(p);He(l)},Q=(l,p,S)=>{l.classList.toggle(A,p),l.classList.toggle(D,S)},ie=(l)=>{let p=n.getRow(l);return s.getOffset(p)},oe=(l)=>{let p=n.getCol(l),B=C&&p===0?0:n.getColumnOffset(p,c),K;if(C){let h=n.getRow(l),m=0,H=-1;for(let P=0;P<l;P++){let k=n.getRow(P);if(k<h&&k!==H){let q=s.getSize(P);m+=q,H=k}}K=m}else K=ie(l);if(w)return`translate(${Math.round(K)}px, ${Math.round(B)}px)`;return`translate(${Math.round(B)}px, ${Math.round(K)}px)`},de=(l,p)=>{let S=l.classList.contains(O),B=S?c:n.getColumnWidth(c),K;if(C||S)K=s.getSize(p)-n.gap;else{let h=n.getRow(p);K=s.getSize(h)-n.gap}if(w)l.style.width=`${K}px`,l.style.height=`${B}px`;else l.style.width=`${B}px`,l.style.height=`${K}px`},V=(l,p,S,B,K)=>{let h=F.acquire(),m=!!p.__groupHeader,H=d(S,B);if(h.className=m?O:v,h.dataset.index=String(l),h.dataset.id=String(p.id),h.dataset.row=String(n.getRow(l)),h.dataset.col=String(n.getCol(l)),m)h.setAttribute("role","presentation"),h.removeAttribute("aria-selected"),h.removeAttribute("aria-setsize"),h.removeAttribute("aria-posinset"),h.removeAttribute("id");else if(_===!0){if(h.setAttribute("role","option"),h.ariaSelected=String(S),g)h.id=`${g}-item-${l}`;if(r){let q=r();if(q!==b)b=q,T=String(q);h.setAttribute("aria-setsize",T);let M=E?E(l):l+1;h.setAttribute("aria-posinset",String(M))}}else if(h.setAttribute("role","listitem"),h.removeAttribute("aria-selected"),r){let q=r();if(q!==b)b=q,T=String(q);h.setAttribute("aria-setsize",T);let M=E?E(l):l+1;h.setAttribute("aria-posinset",String(M))}de(h,l);let P=e(p,l,H);if(j(h,P),String(p.id).startsWith(Ee))h.classList.add(Z);return Q(h,S,B),h.style.transform=K,{element:h,lastItem:p,lastSelected:S,lastFocused:B,lastTransform:K,lastSeenFrame:x}},Y=(l,p,S,B)=>{if(x++,p.start===0&&l.length)C=Re(l[0]);let K=!1;if(r){let m=r();if(m!==b)b=m,T=String(m),K=!0}let h=null;for(let m=p.start;m<=p.end;m++){let H=m-p.start,P=l[H];if(!P)continue;let k=S.has(P.id),q=m===B,M=W.get(m);if(M){let te=M.lastItem!==P,se=M.lastSelected!==k,ne=M.lastFocused!==q;if(te){let ae=M.element.dataset.id??"",R=String(P.id),G=ae.startsWith(Ee),ee=R.startsWith(Ee);if(!ee&&Me(S,m,P.id))k=!0;let z=d(k,q),le=e(P,m,z);if(j(M.element,le),M.element.dataset.id=R,M.element.dataset.row=String(n.getRow(m)),M.element.dataset.col=String(n.getCol(m)),de(M.element,m),M.element.classList.toggle(Z,ee),G&&!ee)M.element.classList.add(X),setTimeout(()=>M.element.classList.remove(X),300);if(M.lastItem=P,!P.__groupHeader){let pe=E?E(m):m+1;M.element.setAttribute("aria-posinset",String(pe))}}if(te||se||ne)Q(M.element,k,q),M.element.ariaSelected=String(k),M.lastSelected=k,M.lastFocused=q;let Te=oe(m);if(M.lastTransform!==Te)M.element.style.transform=Te,M.lastTransform=Te;if(K&&!P.__groupHeader)M.element.setAttribute("aria-setsize",T)}else{if(Me(S,m,P.id))k=!0;let te=oe(m),se=V(m,P,k,q,te);if(!h)h=document.createDocumentFragment();h.appendChild(se.element),W.set(m,se)}}if(h)t.appendChild(h);for(let[m,H]of W)if(m>=p.start&&m<=p.end)H.lastSeenFrame=x;else if(x-H.lastSeenFrame>bt)F.release(H.element),W.delete(m)},y=(l,p,S,B)=>{let K=W.get(l);if(!K)return;let h=d(S,B),m=e(p,l,h);j(K.element,m),Q(K.element,S,B),K.element.dataset.id=String(p.id),K.element.ariaSelected=String(S),de(K.element,l),K.lastItem=p,K.lastSelected=S,K.lastFocused=B},o=(l,p,S)=>{let B=W.get(l);if(!B)return;let K=B.lastSelected!==p,h=B.lastFocused!==S;if(K||h)Q(B.element,p,S),B.lastSelected=p,B.lastFocused=S},f=(l)=>W.get(l)?.element,i=(l)=>{if(Math.abs(l-c)<1)return;c=l;for(let[p,S]of W){de(S.element,p);let B=oe(p);S.element.style.transform=B,S.lastTransform=B}},L=()=>{ke(t,W.keys(),(l)=>W.get(l)?.element)},N=()=>{for(let[,l]of W)F.release(l.element);W.clear()};return{render:Y,updateItem:y,updateItemClasses:o,getElement:f,sortDOM:L,updateContainerWidth:i,clear:N,destroy:()=>{N(),F.clear()}}};var st=(t,e=50,s=1/0,n=!0,u="none")=>{let a=t,r=[],g=0,w=0,E=()=>{r=a.map((d,v)=>({def:d,index:v,width:0,minWidth:yt(d.minWidth??e,1),maxWidth:d.maxWidth??s,resizable:d.resizable??n,offset:0}))},_=()=>{if(u==="none"||g<=0||g>=w)return;if(u==="spacer"){g=w;return}let d=w-g,v=g;for(let O=0;O<r.length;O++){let A=r[O];A.width=we(A.width+d*(A.width/v),A.minWidth,A.maxWidth)}W()},F=(d)=>{if(w=d,r.length===0){g=0;return}let v=0,O=0;for(let A=0;A<r.length;A++){let D=r[A],Z=D.def;if(Z.width!==void 0)D.width=we(Z.width,D.minWidth,D.maxWidth),v+=D.width;else O++}if(O){let D=Math.max(0,d-v)/O;for(let Z=0;Z<r.length;Z++){let X=r[Z];if(X.def.width===void 0)X.width=we(D,X.minWidth,X.maxWidth)}}W(),_()},W=()=>{let d=0;for(let v=0;v<r.length;v++){let O=r[v];O.offset=d,d+=O.width}g=d},c=(d,v)=>{if(d<0||d>=r.length)return 0;let O=r[d];if(!O.resizable)return O.width;let A=we(v,O.minWidth,O.maxWidth);if(O.width=A,W(),u==="spacer")_();return A},C=(d)=>r[d],x=(d)=>{if(r.length===0)return;if(d<0)return r[0];if(d>=g)return r[r.length-1];let v=0,O=r.length-1;while(v<O){let A=v+O>>>1,D=r[A];if(d<D.offset)O=A-1;else if(d>=D.offset+D.width)v=A+1;else return D}return r[v]},T=(d)=>{if(d<0||d>=r.length)return 0;return r[d].offset},b=(d)=>{if(d<0||d>=r.length)return 0;return r[d].width},I=(d)=>{a=d,E()};return E(),{get columns(){return r},get totalWidth(){return g},resolve:F,updateColumns:I,resizeColumn:c,getColumn:C,getColumnAtX:x,getColumnOffset:T,getColumnWidth:b}},we=(t,e,s)=>Math.min(s,Math.max(e,t)),yt=(t,e)=>Math.max(e,t);var at=(t,e,s,n,u,a)=>{let r=document.createElement("div");r.setAttribute("role","rowgroup");let g=document.createElement("div");g.className=`${s}-table-header`,g.setAttribute("role","row"),g.setAttribute("aria-rowindex","1"),g.style.height=`${e}px`;let w=document.createElement("div");w.className=`${s}-table-header-scroll`,w.setAttribute("role","presentation"),g.appendChild(w),r.appendChild(g),t.insertBefore(r,t.firstChild),t.style.setProperty("--vlist-table-header-height",`${e}px`);let E=[],_=[],F=!0,W=null,c="asc",C=null,x=!1,T=-1,b=0,I=0,d=0,v=(o,f)=>{let i=document.createElement("div");i.className=`${s}-table-header-cell`,i.setAttribute("role","columnheader"),i.setAttribute("aria-colindex",String(f+1)),i.setAttribute("tabindex",f===0?"0":"-1"),i.dataset.columnKey=o.def.key;let L=o.def.align;if(L==="center")i.classList.add(`${s}-table-header-cell--center`);else if(L==="right")i.classList.add(`${s}-table-header-cell--right`);let N=document.createElement("div");N.className=`${s}-table-header-content`;let J=o.def.header?o.def.header(o.def):o.def.label;if(typeof J==="string")N.textContent=J;else N.appendChild(J);if(i.appendChild(N),o.def.sortable){let l=document.createElement("span");l.className=`${s}-table-header-sort`,l.setAttribute("aria-hidden","true"),i.appendChild(l),_.push(l),i.classList.add(`${s}-table-header-cell--sortable`)}else _.push(null);if(o.resizable){let l=document.createElement("div");l.className=`${s}-table-header-resize`,l.dataset.resizeIndex=String(f),i.appendChild(l)}return i},O=(o)=>{C=o,w.textContent="",E=[],_=[];let f=o.columns;for(let i=0;i<f.length;i++){let L=f[i],N=v(L,i);E.push(N),w.appendChild(N)}if(A(o),W)D(W,c)},A=(o)=>{C=o;let f=o.columns;w.style.width=`${o.totalWidth}px`;for(let i=0;i<E.length&&i<f.length;i++){let L=E[i],N=f[i];L.style.width=`${N.width}px`}},D=(o,f)=>{if(W=o,c=f,!C)return;let i=C.columns;for(let L=0;L<_.length&&L<i.length;L++){let N=_[L];if(!N)continue;if(i[L].def.key===o)N.textContent=f==="asc"?"▲":"▼",N.style.opacity="0.7",E[L].setAttribute("aria-sort",f==="asc"?"ascending":"descending");else N.textContent="",N.style.opacity="0",E[L].removeAttribute("aria-sort")}},Z=(o)=>{w.style.transform=`translateX(${-o}px)`},X=(o)=>{let f=o.target;if(!f.dataset.resizeIndex)return;if(o.preventDefault(),o.stopPropagation(),T=+f.dataset.resizeIndex,!C)return;let i=C.getColumn(T);if(!i?.resizable)return;x=!0,b=o.clientX,I=i.width,t.classList.add(`${s}--col-resizing`),t.style.cursor="col-resize",f.classList.add(`${s}-table-header-resize--active`),f.setPointerCapture(o.pointerId),f.addEventListener("pointermove",j),f.addEventListener("pointerup",Q),f.addEventListener("pointercancel",Q)},j=(o)=>{if(!x||!C)return;let f=o.clientX-b;if(Math.abs(f)<1)return;let i=Math.max(0,I+f);n(T,i)},Q=(o)=>{if(!x)return;let f=o.target;f.removeEventListener("pointermove",j),f.removeEventListener("pointerup",Q),f.removeEventListener("pointercancel",Q);try{f.releasePointerCapture(o.pointerId)}catch{}f.classList.remove(`${s}-table-header-resize--active`),t.classList.remove(`${s}--col-resizing`),t.style.cursor="",x=!1,T=-1},ie=(o)=>{let f=o.target;if(f.dataset.resizeIndex)return;if(x)return;let i=f;while(i&&!i.dataset.columnKey)if(i=i.parentElement,i===g||i===null)return;let L=i.dataset.columnKey;if(!C)return;let N=C.columns,J=-1;for(let p=0;p<N.length;p++)if(N[p].def.key===L){J=p;break}if(J===-1)return;let l=N[J];if(a)a({key:L,index:J,event:o});if(l.def.sortable&&u){let p;if(W===L)p=c==="asc"?"desc":null;else p="asc";u({key:L,index:J,direction:p})}},oe=(o)=>{if(o<0||o>=E.length)return;E[d]?.setAttribute("tabindex","-1"),d=o;let f=E[d];f.setAttribute("tabindex","0"),f.focus()},de=(o)=>{let f=o.key;if(f==="ArrowRight"){if(o.ctrlKey||o.metaKey){if(!C)return;let i=C.getColumn(d);if(i?.resizable)n(d,i.width+10),o.preventDefault()}else if(d<E.length-1)oe(d+1),o.preventDefault();o.stopPropagation();return}if(f==="ArrowLeft"){if(o.ctrlKey||o.metaKey){if(!C)return;let i=C.getColumn(d);if(i?.resizable)n(d,i.width-10),o.preventDefault()}else if(d>0)oe(d-1),o.preventDefault();o.stopPropagation();return}if(f==="Home"){oe(0),o.preventDefault(),o.stopPropagation();return}if(f==="End"){oe(E.length-1),o.preventDefault(),o.stopPropagation();return}if(f==="Enter"||f===" "){if(!C)return;let i=C.getColumn(d);if(i?.def.sortable&&u){let L;if(W===i.def.key)L=c==="asc"?"desc":null;else L="asc";u({key:i.def.key,index:d,direction:L}),o.preventDefault()}o.stopPropagation();return}if(f==="ArrowDown"){t.focus(),o.preventDefault(),o.stopPropagation();return}};return g.addEventListener("pointerdown",X),g.addEventListener("click",ie),g.addEventListener("keydown",de),{element:g,update:A,updateSort:D,rebuild:O,show:()=>{if(F)return;F=!0,g.style.display=""},hide:()=>{if(!F)return;F=!1,g.style.display="none"},destroy:()=>{g.removeEventListener("pointerdown",X),g.removeEventListener("click",ie),g.removeEventListener("keydown",de),t.style.removeProperty("--vlist-table-header-height"),r.remove(),E=[],_=[],C=null,F=!1},syncScroll:Z}};var vt=()=>{let t=[];return{acquire:()=>t.pop()||document.createElement("div"),release:(e)=>{if(e.parentNode?.removeChild(e),t.length<200)e.className="",e.removeAttribute("data-id"),e.removeAttribute("data-index"),e.removeAttribute("aria-selected"),e.removeAttribute("aria-rowindex"),e.removeAttribute("role"),e.style.cssText="",e.textContent="",t.push(e)},clear:()=>{t.length=0}}},it=(t,e,s,n,u,a,r,g,w,E=()=>0)=>{let _=vt(),F=new Map,W=-1,c=s,C=null,x=null,T=null,b=(m,H)=>{x=m,T=H},I=(m,H)=>{H?m.setAttribute("aria-selected","true"):m.removeAttribute("aria-selected")},d=(m,H,P,k)=>{m.setAttribute("role",H),m.setAttribute("data-id",String(P)),m.setAttribute("data-index",String(k))},v=(m)=>String(m).startsWith("__placeholder_"),O=`${u}-item ${u}-table-row`,A=`${u}-item--selected`,D=`${u}-item--focused`,Z=`${u}-table-cell`,X=`${u}-table-cell--center`,j=`${u}-table-cell--right`,Q=`${u}-table-cell-skeleton`,ie=`${u}-item--odd`,oe=`${u}-item--placeholder`,de=`${u}-item--replaced`,V=`${u}-table-row ${u}-table-group-header`,Y=`${u}-table-group-header-content`,y=(m,H,P,k,q=!1)=>{if(P.def.cell){let M=P.def.cell(H,P.def,k);if(typeof M==="string")m.innerHTML=M;else m.replaceChildren(M)}else{let M=H[P.def.key],te=M!=null?String(M):"";if(q&&te)m.innerHTML=`<span>${te}</span>`;else m.textContent=te}if(q&&m.firstElementChild===null){m.replaceChildren();let M=document.createElement("span");M.className=Q,m.appendChild(M)}},o=(m,H,P,k,q=!1)=>{let M=O;if(g){if(C){let te=C(H);if(te>=0&&(te&1)===1)M+=` ${ie}`}else if((H&1)===1)M+=` ${ie}`}if(q)M+=` ${oe}`;if(P)M+=` ${A}`;if(k)M+=` ${D}`;m.className=M},f=(m,H)=>{let P=H.def.align;if(P==="center")m.classList.add(X),m.classList.remove(j);else if(P==="right")m.classList.add(j),m.classList.remove(X);else m.classList.remove(X,j)},i=(m,H)=>{let k=c.columns.length;if(H.length===k)return H;let q=[];for(let M=0;M<k;M++){let te;if(M<H.length)te=H[M];else te=document.createElement("div"),te.className=Z,m.appendChild(te);q.push(te)}for(let M=k;M<H.length;M++)H[M].remove();return q},L=(m,H,P)=>{let k=_.acquire(),q=m,M=P.getSize(H),te=P.getOffset(H)-E();k.style.cssText=`width:${c.totalWidth}px;height:${M}px;transform:translateY(${te}px)`,k.className=V,d(k,"presentation",m.id,H),k.removeAttribute("aria-selected"),k.removeAttribute("aria-rowindex"),k.replaceChildren();let se=document.createElement("div");if(se.className=Y,T){let ne=T(q.groupKey,q.groupIndex);if(typeof ne==="string")se.innerHTML=ne;else se.appendChild(ne)}return k.appendChild(se),{element:k,cells:[],index:H,isGroupHeader:!0,_lastItem:m,lastItemId:m.id,lastSelected:!1,lastFocused:!1,lastOffset:te,lastHeight:M}},N=(m,H,P,k,q)=>{let M=_.acquire(),te=q.getSize(H),se=q.getOffset(H)-E(),ne=v(m.id);M.style.cssText=`width:${c.totalWidth}px;height:${te}px;transform:translateY(${se}px)`,o(M,H,P,k,ne),d(M,"row",m.id,H),M.id=`${a}-item-${H}`,M.setAttribute("aria-rowindex",String(H+2)),I(M,P);let Te=i(M,[]),ae=c.columns;for(let R=0;R<Te.length&&R<ae.length;R++){let G=Te[R],ee=ae[R];G.style.cssText=`left:${ee.offset}px;width:${ee.width}px`,G.setAttribute("role","gridcell"),G.setAttribute("aria-colindex",String(R+1)),f(G,ee),y(G,m,ee,H,ne)}return{element:M,cells:Te,index:H,isGroupHeader:!1,_lastItem:m,lastItemId:m.id,lastSelected:P,lastFocused:k,lastOffset:se,lastHeight:te}},J=(m,H,P,k)=>{let q=!1,M=r();if(M!==W)W=M,q=!0;let te=null,se=e();C=typeof g==="string"&&w?w():null;for(let ne=H.start;ne<=H.end;ne++){let Te=ne-H.start,ae=m[Te];if(!ae)continue;let R=P.has(ae.id),G=ne===k,ee=x?x(ae):!1,z=F.get(ne);if(z){if(z.isGroupHeader!==ee){_.release(z.element),F.delete(ne);let le=ee?L(ae,ne,se):N(ae,ne,R,G,se);if(F.set(ne,le),!te)te=document.createDocumentFragment();te.appendChild(le.element);continue}if(ee){if(z._lastItem!==ae){let ve=ae,re=z.element.firstElementChild;if(re&&T){let fe=T(ve.groupKey,ve.groupIndex);if(typeof fe==="string")re.innerHTML=fe;else re.replaceChildren(fe)}z.element.setAttribute("data-id",String(ae.id)),z._lastItem=ae,z.lastItemId=ae.id}let ye=se.getOffset(ne)-E();if(z.lastOffset!==ye)z.lastOffset=ye,z.element.style.transform=`translateY(${ye}px)`;let pe=se.getSize(ne);if(z.lastHeight!==pe)z.lastHeight=pe,z.element.style.height=`${pe}px`}else{let le=z._lastItem!==ae,ye=z.lastSelected!==R,pe=z.lastFocused!==G;if(le){let fe=z.lastItemId!=null&&v(z.lastItemId),be=v(ae.id);if(!be&&Me(P,ne,ae.id))R=!0;let xe=c.columns;for(let ce=0;ce<z.cells.length&&ce<xe.length;ce++)y(z.cells[ce],ae,xe[ce],ne,be);if(o(z.element,ne,R,G,be),z.element.setAttribute("data-id",String(ae.id)),I(z.element,R),fe&&!be)z.element.classList.add(de),setTimeout(()=>{z.element.classList.remove(de)},300);z._lastItem=ae,z.lastItemId=ae.id,z.lastSelected=R,z.lastFocused=G}else if(ye||pe)o(z.element,ne,R,G,v(ae.id)),I(z.element,R),z.lastSelected=R,z.lastFocused=G;let ve=se.getOffset(ne)-E();if(z.lastOffset!==ve)z.lastOffset=ve,z.element.style.transform=`translateY(${ve}px)`;let re=se.getSize(ne);if(z.lastHeight!==re)z.lastHeight=re,z.element.style.height=`${re}px`;if(q)z.element.setAttribute("aria-rowindex",String(ne+2))}}else{if(Me(P,ne,ae.id))R=!0;let le=ee?L(ae,ne,se):N(ae,ne,R,G,se);if(F.set(ne,le),!te)te=document.createDocumentFragment();te.appendChild(le.element)}}if(te)t.appendChild(te);for(let[ne,Te]of F)if(ne<H.start||ne>H.end)_.release(Te.element),F.delete(ne)},l=(m,H,P,k)=>{let q=F.get(m);if(!q)return;if(q.isGroupHeader)return;let M=c.columns;for(let te=0;te<q.cells.length&&te<M.length;te++)y(q.cells[te],H,M[te],m);q.element.setAttribute("data-id",String(H.id)),q._lastItem=H,q.lastItemId=H.id,o(q.element,m,P,k),I(q.element,P),q.lastSelected=P,q.lastFocused=k},p=(m,H,P)=>{let k=F.get(m);if(!k)return;if(k.isGroupHeader)return;let q=k.lastSelected!==H,M=k.lastFocused!==P;if(q||M)o(k.element,m,H,P),I(k.element,H),k.lastSelected=H,k.lastFocused=P},S=(m)=>{c=m;let H=m.columns;for(let[,P]of F)if(P.element.style.width=`${m.totalWidth}px`,P.cells.length>0)for(let k=0;k<P.cells.length&&k<H.length;k++){let q=P.cells[k],M=H[k];q.style.left=`${M.offset}px`,q.style.width=`${M.width}px`}},B=(m)=>F.get(m)?.element,K=()=>{for(let[,m]of F)_.release(m.element);F.clear(),W=-1};return{render:J,updateItem:l,updateItemClasses:p,getElement:B,updateColumnLayout:S,setGroupHeaderFn:b,clear:K,destroy:()=>{K(),_.clear()}}};var lt=(t)=>{let e=Math.max(1,Math.floor(t.columns)),s=t.gap??0,n=t.containerSize,u=t.crossOffset??0,a=t.mainOffset??0,r=0,g=[],w=()=>{let b=(e-1)*s;r=Math.max(0,(n-b)/e),g=Array(e);let I=r+s;for(let d=0;d<e;d++)g[d]=u+d*I};w();let E=[],_=0,F=[],W=(b,I)=>{if(b<=0)return _=0,E=[],[];let d=Array(e).fill(a),v=Array(e);for(let D=0;D<e;D++)v[D]=[];let O=Array(b);for(let D=0;D<b;D++){let Z=0,X=d[0];for(let ie=1;ie<e;ie++){let oe=d[ie];if(oe<X)X=oe,Z=ie}let j=I(D),Q=d[Z];O[D]={index:D,x:g[Z],y:Q,lane:Z,size:j,crossSize:r},v[Z].push(D),d[Z]=Q+j+s}E=v;let A=0;for(let D=0;D<e;D++){let Z=d[D],X=Z>0?Z-s:0;if(X>A)A=X}return _=A,O},c=(b)=>{if(b.length===0)return _;if(_)return _;let I=Array(e).fill(0);for(let v of b){let O=v.y+v.size,A=I[v.lane];if(O>A)I[v.lane]=O}let d=0;for(let v=0;v<e;v++)if(I[v]>d)d=I[v];return d},C=(b,I,d)=>{if(b.length===0||d<=I)return F.length=0,F;if(E.length===0||E.length!==e)return x(b,I,d);F.length=0;for(let v=0;v<e;v++){let O=E[v],A=O.length;if(!A)continue;let D=0,Z=A;while(D<Z){let X=D+Z>>>1,j=b[O[X]];if(j.y+j.size<=I)D=X+1;else Z=X}for(let X=D;X<A;X++){let j=b[O[X]];if(j.y>=d)break;F.push(j)}}return F},x=(b,I,d)=>{F.length=0;for(let v of b)if(v.y+v.size>I&&v.y<d)F.push(v);return F};return{get columns(){return e},get gap(){return s},get containerSize(){return n},update:(b)=>{let I=!1;if(b.columns!==void 0){let d=Math.max(1,Math.floor(b.columns));if(d!==e)e=d,I=!0}if(b.gap!==void 0&&b.gap!==s)s=b.gap,I=!0;if(b.containerSize!==void 0&&b.containerSize!==n)n=b.containerSize,I=!0;if(b.crossOffset!==void 0&&b.crossOffset!==u)u=b.crossOffset,I=!0;if(b.mainOffset!==void 0&&b.mainOffset!==a)a=b.mainOffset,I=!0;if(I)w()},calculateLayout:W,getTotalSize:c,getVisibleItems:C}};var St=(t=200)=>{let e=[];return{acquire:()=>{let a=e.pop();if(a)return a;let r=document.createElement("div");return r.setAttribute("role","option"),r},release:(a)=>{if(a.remove(),e.length<t)a.className="",a.textContent="",a.removeAttribute("style"),a.removeAttribute("data-index"),a.removeAttribute("data-id"),a.removeAttribute("data-lane"),e.push(a)},clear:()=>{e.length=0}}},Tt=1,ct=(t,e,s,n=!1,u,a,r,g,w=()=>0)=>{let E=St(),_=new Map,F=new Set,W=0,c="",C=-1,x={selected:!1,focused:!1},T=(V,Y)=>(x.selected=V,x.focused=Y,x),b=`${s}-item ${s}-masonry-item`,I=`${s}-group-header`,d=`${s}-item--selected`,v=`${s}-item--focused`,O=(V,Y)=>{if(typeof Y==="string")V.innerHTML=Y;else V.replaceChildren(Y);He(V)},A=(V,Y,y)=>{V.classList.toggle(d,Y),V.classList.toggle(v,y)},D=(V,Y)=>{let y=Math.round(Y.y-w());if(n)V.style.transform=`translate(${y}px, ${Math.round(Y.x)}px)`;else V.style.transform=`translate(${Math.round(Y.x)}px, ${y}px)`},Z=(V,Y)=>{if(n)V.style.width=`${Y.size}px`,V.style.height=`${Y.crossSize}px`;else V.style.width=`${Y.crossSize}px`,V.style.height=`${Y.size}px`},X=(V,Y,y,o,f)=>{let i=E.acquire(),L=Y.__groupHeader,N=T(o,f);if(i.className=L?I:b,i.dataset.index=String(V),i.dataset.id=String(Y.id),i.dataset.lane=String(y.lane),L)i.setAttribute("role","presentation"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-setsize"),i.removeAttribute("aria-posinset"),i.removeAttribute("id");else if(g===!0){if(i.setAttribute("role","option"),i.ariaSelected=String(o),a)i.id=`${a}-item-${V}`;if(u){let l=u();if(l!==C)C=l,c=String(l);i.setAttribute("aria-setsize",c);let p=r?r(V):V+1;i.setAttribute("aria-posinset",String(p))}}else if(i.setAttribute("role","listitem"),i.removeAttribute("aria-selected"),u){let l=u();if(l!==C)C=l,c=String(l);i.setAttribute("aria-setsize",c);let p=r?r(V):V+1;i.setAttribute("aria-posinset",String(p))}Z(i,y);let J=e(Y,V,N);return O(i,J),A(i,o,f),D(i,y),{element:i,lastItem:Y,lastSelected:o,lastFocused:f,lastY:y.y-w(),lastX:y.x,lastSize:y.size,lastCrossSize:y.crossSize,lastSeenFrame:W}},j=(V,Y,y,o)=>{W++,F.clear();for(let i=0;i<Y.length;i++)F.add(Y[i].index);let f=null;for(let i=0;i<Y.length;i++){let L=Y[i],N=L.index,J=V(N);if(!J)continue;let l=y.has(J.id),p=N===o,S=_.get(N);if(S){let B=S.lastItem!==J,K=S.lastSelected!==l,h=S.lastFocused!==p,m=S.lastY!==L.y-w()||S.lastX!==L.x,H=S.lastSize!==L.size||S.lastCrossSize!==L.crossSize;if(B){let P=T(l,p),k=e(J,N,P);if(O(S.element,k),S.element.dataset.id=String(J.id),S.lastItem=J,!J.__groupHeader){let M=r?r(N):N+1;S.element.setAttribute("aria-posinset",String(M))}}if(B||K||h)A(S.element,l,p),S.element.ariaSelected=String(l),S.lastSelected=l,S.lastFocused=p;if(H)Z(S.element,L),S.lastSize=L.size,S.lastCrossSize=L.crossSize;if(m)D(S.element,L),S.lastY=L.y-w(),S.lastX=L.x}else{let B=X(N,J,L,l,p);if(!f)f=document.createDocumentFragment();f.appendChild(B.element),_.set(N,B)}}if(f)t.appendChild(f);for(let[i,L]of _)if(F.has(i))L.lastSeenFrame=W;else if(W-L.lastSeenFrame>Tt)E.release(L.element),_.delete(i)},Q=()=>{for(let V of _.values())E.release(V.element);_.clear(),t.innerHTML=""};return{render:j,getElement:(V)=>_.get(V)?.element,updateItemClasses:(V,Y,y)=>{let o=_.get(V);if(!o)return;let f=o.lastSelected!==Y,i=o.lastFocused!==y;if(f||i)A(o.element,Y,y),o.lastSelected=Y,o.lastFocused=y},sortDOM:()=>{ke(t,_.keys(),(V)=>_.get(V)?.element)},clear:Q,destroy:()=>{Q(),E.clear()}}};var xt=(t,e)=>{let s=e;return{getOffset:(n)=>n*t,getSize:(n)=>t,indexAtOffset:(n)=>{if(s===0||t===0)return 0;return Math.max(0,Math.min(Math.floor(n/t),s-1))},getTotalSize:()=>s*t,getTotal:()=>s,rebuild:(n)=>{s=n},isVariable:()=>!1}},It=(t,e)=>{let s=e,n=new Float64Array(0),u=(r)=>{s=r,n=new Float64Array(r+1),n[0]=0;for(let g=0;g<r;g++)n[g+1]=n[g]+t(g)};u(e);let a=(r)=>{if(s===0)return 0;if(r<=0)return 0;if(r>=n[s])return s-1;let g=0,w=s-1;while(g<w){let E=g+w+1>>>1;if(n[E]<=r)g=E;else w=E-1}return g};return{getOffset:(r)=>{if(r<=0)return 0;if(r>=s)return n[s];return n[r]},getSize:(r)=>t(r),indexAtOffset:(r)=>a(r),getTotalSize:()=>n[s]??0,getTotal:()=>s,rebuild:(r)=>u(r),isVariable:()=>!0}},ut=(t,e)=>{if(typeof t==="number")return xt(t,e);return It(t,e)};var dt=()=>{let t={},e=(a,r)=>{if(!t[a])t[a]=new Set;return t[a].add(r),()=>s(a,r)},s=(a,r)=>{t[a]?.delete(r)};return{on:e,off:s,emit:(a,r)=>{t[a]?.forEach((g)=>{try{g(r)}catch(w){console.error(`[vlist] Error in event handler for "${String(a)}":`,w)}})},clear:(a)=>{if(a)delete t[a];else for(let r in t)delete t[r]}}};var _e=(t={})=>{let{chunkSize:e=100,maxCachedItems:s=5000,evictionBuffer:n=200,onEvict:u}=t,a=new Map,r=0,g=0,w=(y)=>{let o=a.get(y);if(!o)o={items:Array(e),count:0,lastAccess:Date.now()},a.set(y,o);else o.lastAccess=Date.now();return o},E=(y)=>Math.floor(y/e),_=(y)=>y%e,F=()=>r,W=(y)=>{r=y},c=(y)=>{if(y<0||y>=r)return;let o=E(y),f=a.get(o);if(!f)return;return f.items[_(y)]},C=(y)=>{if(y<0||y>=r)return!1;let o=E(y),f=a.get(o);if(!f)return!1;return f.items[_(y)]!==void 0},x=(y,o)=>{let f=E(y),i=w(f),L=_(y),N=i.items[L]===void 0;if(i.items[L]=o,N)i.count++,g++;if(y>=r)r=y+1},T=(y,o)=>{for(let f=0;f<o.length;f++){let i=o[f];if(i!==void 0)x(y+f,i)}},b=(y,o)=>{if(y<0||y>r)return;let f=E(y),i=Array.from(a.keys()).filter((p)=>p>=f).sort((p,S)=>p-S),L=[];for(let p of i){let S=a.get(p),B=p*e;for(let K=0;K<e;K++){if(S.items[K]===void 0)continue;let h=B+K;if(h<y)continue;L.push({oldIndex:h,item:S.items[K]})}}for(let{oldIndex:p}of L){let S=E(p),B=a.get(S);if(!B)continue;let K=_(p);if(B.items[K]!==void 0){if(B.items[K]=void 0,B.count--,g--,B.count===0)a.delete(S)}}r++;for(let{oldIndex:p,item:S}of L){let B=p+1,K=E(B),h=w(K),m=_(B);h.items[m]=S,h.count++,g++}let N=E(y),J=w(N),l=_(y);J.items[l]=o,J.count++,g++},I=(y)=>{if(y<0||y>=r)return!1;let o=E(y),f=a.get(o),i=_(y);if(!(f!==void 0&&f.items[i]!==void 0))return!1;let N=o,J=Array.from(a.keys()).filter((p)=>p>=N).sort((p,S)=>p-S),l=[];for(let p of J){let S=a.get(p),B=p*e;for(let K=0;K<e;K++){if(S.items[K]===void 0)continue;let h=B+K;if(h<=y)continue;l.push({oldIndex:h,item:S.items[K]})}}if(f.items[i]=void 0,f.count--,g--,f.count===0)a.delete(o);for(let{oldIndex:p}of l){let S=E(p),B=a.get(S);if(!B)continue;let K=_(p);if(B.items[K]!==void 0){if(B.items[K]=void 0,B.count--,g--,B.count===0)a.delete(S)}}for(let{oldIndex:p,item:S}of l){let B=p-1,K=E(B),h=w(K),m=_(B);h.items[m]=S,h.count++,g++}return r--,!0},d=(y,o)=>{let f=[];for(let i=y;i<=o&&i<r;i++)f.push(c(i));return f},v=(y,o)=>{for(let f=y;f<=o&&f<r;f++)if(!C(f))return!1;return!0},O=()=>{let y=[],o=null,f=Array.from(a.keys()).sort((i,L)=>i-L);for(let i of f){let L=a.get(i);if(!L)continue;let N=i*e;for(let J=0;J<e;J++){let l=N+J;if(l>=r)break;if(L.items[J]!==void 0)if(o===null)o={start:l,end:l};else if(l===o.end+1)o.end=l;else y.push(o),o={start:l,end:l};else if(o!==null)y.push(o),o=null}}if(o!==null)y.push(o);return y},A=(y,o)=>{let f=[],i=null;for(let L=y;L<=o&&L<r;L++)if(!C(L))if(i===null)i={start:L,end:L};else i.end=L;else if(i!==null)f.push(i),i=null;if(i!==null)f.push(i);return f},D=(y)=>a.has(y),Z=(y)=>{let o=a.get(y);if(!o)return!1;let f=y*e,i=Math.min(e,r-f);return o.count>=i},X=(y)=>{let o=a.get(y);if(o)o.lastAccess=Date.now()},j=(y,o)=>{if(y>o||a.size===0)return;let f=Date.now(),i=E(Math.max(0,y)),L=E(Math.min(r-1,o));for(let N=i;N<=L;N++){let J=a.get(N);if(J)J.lastAccess=f}},Q=(y,o)=>{if(g<=s)return 0;let f=Math.max(0,y-n),i=Math.min(r-1,o+n),L=E(f),N=E(i),J=0,l=[];for(let[p,S]of a)if(p<L||p>N)J+=S.count,l.push(p),g-=S.count,a.delete(p);if(J>0&&u)u(J,l);return J},ie=()=>{if(g<=s)return 0;let y=Array.from(a.entries()).sort(([,i],[,L])=>i.lastAccess-L.lastAccess),o=0,f=[];for(let[i,L]of y){if(g<=s)break;o+=L.count,g-=L.count,f.push(i),a.delete(i)}if(o>0&&u)u(o,f);return o},oe=()=>({totalItems:r,cachedItems:g,cachedChunks:a.size,chunkSize:e,maxCachedItems:s,memoryEfficiency:r>0?1-g/r:1}),de=()=>g,V=()=>{a.clear(),g=0};return{chunkSize:e,maxCachedItems:s,getTotal:F,setTotal:W,get:c,has:C,set:x,setRange:T,insert:b,delete:I,getRange:d,isRangeLoaded:v,getLoadedRanges:O,findUnloadedRanges:A,getChunkIndex:E,isChunkLoaded:D,isChunkFullyLoaded:Z,touchChunk:X,touchChunksForRange:j,evictDistant:Q,evictToLimit:ie,getStats:oe,getCachedCount:de,clear:V,reset:()=>{V(),r=0}}},De=(t)=>{if(t.length===0)return[];let e=[...t].sort((n,u)=>n.start-u.start),s=[{...e[0]}];for(let n=1;n<e.length;n++){let u=e[n],a=s[s.length-1];if(u.start<=a.end+1)a.end=Math.max(a.end,u.end);else s.push({...u})}return s},Fe=(t,e,s)=>{let n=Math.floor(t.start/s)*s,u=Math.ceil((t.end+1)/s)*s-1,a={start:n,end:u};if(e.length===0)return[a];let r=[],g=De(e),w=a.start;for(let E of g){if(E.end<w)continue;if(E.start>a.end)break;if(E.start>w)r.push({start:w,end:Math.min(E.start-1,a.end)});if(w=E.end+1,w>a.end)break}if(w<=a.end)r.push({start:w,end:a.end});return r};var Pe=(t={})=>{let{maskCharacter:e=Xe,maxSampleSize:s=je}=t,n=[],u=!1,a=(_)=>{if(u||_.length===0)return;let F=Math.min(_.length,s);for(let W=0;W<F;W++){let c=_[W];if(!c||typeof c!=="object")continue;let C={},x=!1;for(let[T,b]of Object.entries(c)){if(T.startsWith("_")||T==="id")continue;C[T]=String(b??"").length,x=!0}if(x)n.push(C)}u=!0},r=()=>u,g=(_)=>{let F={id:`${Ee}${_}`,[ze]:!0,_index:_};if(n.length===0)return F.label=e.repeat(12),F;let W=n[_%n.length];for(let[c,C]of Object.entries(W))F[c]=e.repeat(Math.max(1,C));return F};return{analyzeStructure:a,hasAnalyzedStructure:r,generate:g,generateRange:(_,F)=>{let W=[];for(let c=_;c<=F;c++)W.push(g(c));return W},clear:()=>{n=[],u=!1}}},Ce=(t)=>{if(!t||typeof t!=="object")return!1;return t[ze]===!0},Ve=(t)=>t.filter((e)=>!Ce(e));var Et=50,mt=(t={})=>{let{adapter:e,initialItems:s,initialTotal:n,storage:u,placeholder:a,pageSize:r=Et,maxConcurrent:g=0,onStateChange:w,onDataChange:E,onItemsLoaded:_,onItemsEvicted:F,onLoadError:W}=t,c=_e({...u,onEvict:(R,G)=>{F?.(R),Q(),j()}}),C=null,x=()=>{if(!C)C=Pe(a);return C},T=new Map,b=!1,I,d=!0,v,O,A=[],D=0,Z=new Map,X=()=>{for(let R of Z.values())R[1].abort();Z.clear()},j=()=>{w?.(i())},Q=()=>{E?.()},ie=()=>{T.clear();let R=c.getLoadedRanges();for(let G of R)for(let ee=G.start;ee<=G.end;ee++){let z=c.get(ee);if(z&&!Ce(z))T.set(z.id,ee)}},oe=(R,G)=>{if(!Ce(G))T.set(G.id,R)},de=(R)=>{T.delete(R)},V=(R,G)=>`${R}-${G}`,Y=()=>c.getTotal(),y=()=>c.getCachedCount(),o=()=>b,f=()=>d,i=()=>({total:c.getTotal(),cached:c.getCachedCount(),isLoading:b,pendingRanges:A,error:I,hasMore:d,cursor:v}),L=()=>c,N=()=>x(),J=(R)=>{let G=c.get(R);if(G!==void 0)return G;if(R>=0&&R<c.getTotal())return x().generate(R);return},l=(R)=>{let G=T.get(R);if(G===void 0)return;return c.get(G)},p=(R)=>T.get(R)??-1,S=(R)=>{let G=c.get(R);return G!==void 0&&!Ce(G)},B=(R,G)=>{let ee=[],z=c.getTotal();c.touchChunksForRange(R,Math.min(G,z-1));for(let le=R;le<=G&&le<z;le++){let ye=c.get(le);if(ye!==void 0)ee.push(ye);else ee.push(x().generate(le))}return ee},K=(R)=>{c.setTotal(R),d=c.getCachedCount()<R,Q(),j()},h=(R,G=0,ee)=>{if(e&&R.length>0){let z=x();if(!z.hasAnalyzedStructure())z.analyzeStructure(R)}for(let z=0;z<R.length;z++){let le=R[z];if(le!==void 0){let ye=G+z;c.set(ye,le),oe(ye,le)}}if(ee!==void 0)c.setTotal(ee);else if(G+R.length>c.getTotal())c.setTotal(G+R.length);if(c.getCachedCount()>=c.getTotal()&&c.getTotal()>0)d=!1;Q(),j(),_?.(R,G,c.getTotal())},m=(R,G)=>{let ee=c.get(R);if(!ee)return!1;let z=ee.id,le={...ee,...G};if(c.set(R,le),G.id!==void 0&&G.id!==z)de(z);return oe(R,le),Q(),j(),!0},H=(R,G)=>{c.insert(G,R),ie(),X(),Q(),j()},P=(R)=>{let G=T.get(R);if(G===void 0)return!1;if(!c.delete(G))return!1;return ie(),X(),Q(),j(),!0},k=async(R,G)=>{if(!e)return;let ee=c.chunkSize,z=Math.floor(R/ee),le=Math.floor(G/ee),ye=ee*2;for(let[re,fe]of Z){let be=re.indexOf("-"),xe=parseInt(re.slice(0,be),10);if(Math.abs(xe-R)>ye)fe[1].abort(),Z.delete(re)}let pe=[],ve=[];for(let re=z;re<=le;re++){let fe=re*ee,be=fe+ee-1,xe=V(fe,be);if(c.isChunkFullyLoaded(re))continue;let he=Z.get(xe);if(he)ve.push(he[0]);else pe.push({start:fe,end:be})}if(pe.length===0){if(ve.length>0)await Promise.all(ve);return}if(g>0){let re=Z.size+pe.length;if(re>g){let fe=(R+G)/2,be=Math.min(re-g,Z.size);while(be>0){let ce=null,he=-1,Se=null;for(let[U,ue]of Z){let me=U.indexOf("-"),ge=parseInt(U.slice(0,me),10),Le=parseInt(U.slice(me+1),10),Ie=Math.abs((ge+Le)/2-fe);if(Ie>he)he=Ie,ce=U,Se=ue[1]}if(ce)Se.abort(),Z.delete(ce);be--}let xe=g-Z.size;if(pe.length>xe)pe.sort((ce,he)=>{let Se=Math.abs((ce.start+ce.end)/2-fe),U=Math.abs((he.start+he.end)/2-fe);return Se-U}),pe.length=Math.max(0,xe)}}if(pe.length===0){if(ve.length>0)await Promise.all(ve);return}for(let re of pe){let fe=V(re.start,re.end),be=new AbortController,xe=(async()=>{A.push(re),b=!0,I=void 0,j();try{let ce=re.end-re.start+1,he={offset:re.start,limit:ce,cursor:re.start===O?v:void 0,signal:be.signal},Se=await e.read(he);if(h(Se.items,re.start,Se.total),Se.cursor)v=Se.cursor,O=re.start+Se.items.length;let U=re.start+Se.items.length;if(U>=D){if(D=U,Se.hasMore!==void 0)d=Se.hasMore;else if(Se.total!==void 0)d=U<Se.total}}catch(ce){if(ce?.name==="AbortError")return;I=ce instanceof Error?ce:Error(String(ce)),W?.(I,re)}finally{Z.delete(fe);let ce=A.findIndex((he)=>he.start===re.start&&he.end===re.end);if(ce>=0)A.splice(ce,1);b=Z.size>0,j()}})();Z.set(fe,[xe,be]),ve.push(xe)}await Promise.all(ve)},q=async(R,G)=>{if(c.isRangeLoaded(R,G))return;await k(R,G)},M=async()=>{if(!e)return;await k(0,r-1)},te=async()=>{if(!e||b||!d)return!1;let R=c.getCachedCount(),G=c.getTotal(),ee=R,z=Math.min(ee+r-1,G>0?G-1:ee+r-1);if(ee>=G&&G>0)return d=!1,!1;return await k(ee,z),c.getCachedCount()>R},se=async()=>{if(c.clear(),T.clear(),C)C.clear();X(),A=[],b=!1,v=void 0,O=void 0,d=!0,D=0,I=void 0,Q(),j()},ne=(R,G)=>{if(c.evictDistant(R,G)>0)ie()},Te=()=>{c.clear(),T.clear(),v=void 0,O=void 0,I=void 0,A=[],b=!1,Q(),j()},ae=()=>{if(c.reset(),T.clear(),C)C.clear();v=void 0,O=void 0,d=!0,D=0,I=void 0,A=[],b=!1,Q(),j()};if(s&&s.length>0)h(s,0,n??s.length);else if(n!==void 0)c.setTotal(n),Q(),j();return{getState:i,getTotal:Y,getCached:y,getIsLoading:o,getHasMore:f,getStorage:L,getPlaceholders:N,getItem:J,getItemById:l,getIndexById:p,isItemLoaded:S,getItemsInRange:B,setTotal:K,setItems:h,updateItem:m,insertItem:H,removeItem:P,loadRange:k,ensureRange:q,loadInitial:M,loadMore:te,reload:se,evictDistant:ne,clear:Te,reset:ae}};var Ct=(t)=>{if(typeof t!=="object"){let e=t??2;return{top:e,right:e,bottom:e,left:e}}return{top:t.top??2,right:t.right??2,bottom:t.bottom??2,left:t.left??2}},ft=(t,e,s={},n="vlist",u=!1,a)=>{let{autoHide:r=!0,autoHideDelay:g=1000,minThumbSize:w=15,showOnHover:E=!0,showOnViewportEnter:_=!0,clickBehavior:F="scroll"}=s,W=F==="page"?"scroll":F,c=a??t,C=Ct(s.padding),x=u?C.left:C.top,T=u?C.right:C.bottom,b=u?C.bottom:C.right,I=s.hoverZoneWidth??b+16,d=0,v=0,O=0,A=0,D=!1,Z=!1,X=0,j=0,Q=0,ie=null,oe=!1,de=null,V=0,Y=0,y=null,o=null,f=null,i=u?"width":"height",L=u?"translateX":"translateY",N=u?(U)=>U.clientX:(U)=>U.clientY,J=u?"left":"top",l=document.createElement("div"),p=document.createElement("div"),S=document.createElement("div"),B=u?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",K=()=>{if(c===t)return;let U=t.offsetTop;l.style[u?"left":"top"]=U?`calc(var(${B}) + ${U}px)`:`var(${B})`,S.style[u?"left":"top"]=`${U}px`},h=()=>{if(l.className=`${n}-scrollbar`,p.className=`${n}-scrollbar__thumb`,u)l.classList.add(`${n}-scrollbar--horizontal`);if(s.padding!==void 0)c.style.setProperty("--vlist-custom-scrollbar-padding-top",`${C.top}px`),c.style.setProperty("--vlist-custom-scrollbar-padding-right",`${C.right}px`),c.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${C.bottom}px`),c.style.setProperty("--vlist-custom-scrollbar-padding-left",`${C.left}px`);if(s.minThumbSize!==void 0)l.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${w}px`);if(l.appendChild(p),c.appendChild(l),S.className=`${n}-scrollbar__hover`,u)S.classList.add(`${n}-scrollbar__hover--horizontal`),S.style.height=`${I}px`;else S.style.width=`${I}px`;if(c.appendChild(S),c!==t)K()},m=()=>{if(ie)clearTimeout(ie),ie=null},H=()=>{if(!r)return;m(),ie=setTimeout(k,g)},P=()=>{if(d<=v)return;if(m(),!oe)l.classList.add(`${n}-scrollbar--visible`),oe=!0;if(r&&!D&&!Z)H()},k=()=>{if(D||Z)return;l.classList.remove(`${n}-scrollbar--visible`),oe=!1},q=(U,ue)=>{if(d=U,v=ue,K(),d<=v){l.style.display="none",k();return}l.style.display="";let me=Math.max(0,v-x-T),ge=v/d;if(O=Math.max(w,ge*me),p.style[i]=`${O}px`,A=me-O,M(Q),!r)P()},M=(U)=>{if(Q=U,d<=v||A<=0)return;let ue=d-v,me=Math.min(1,Math.max(0,U/ue));p.style.transform=`${L}(${me*A}px)`},te=(U)=>{if(U.target===p||W!=="jump"||A<=0)return;let ue=d-v,me=l.getBoundingClientRect(),ge=N(U)-me[J],Le=Math.max(0,Math.min(ge-O/2,A));e(Le/A*ue),P()},se=()=>{if(y!==null)clearTimeout(y),y=null;if(o!==null)cancelAnimationFrame(o),o=null;f=null},ne=(U)=>{let ue=A>0?Y/U*A:0;if(V<ue)return-1;if(V>=ue+O)return 1;return 0},Te=()=>{let U=d-v,ue=ne(U);if(ue===0){se();return}if(ue===-1){if(Y<=0){se();return}let me=Math.max(0,Y-v);Y=me,e(me)}else{if(Y>=U){se();return}let me=Math.min(U,Y+v);Y=me,e(me)}P()},ae=(U)=>{if(f===null){f=U,o=requestAnimationFrame(ae);return}let ue=d-v,me=U-f;f=U;let ge=ne(ue);if(ge===0){se();return}let Le=12*v/1000,Ie=Math.min(Le*me,v);if(ge===-1){if(Y<=0){se();return}let Ae=Math.max(0,Y-Ie);Y=Ae,e(Ae)}else{if(Y>=ue){se();return}let Ae=Math.min(ue,Y+Ie);Y=Ae,e(Ae)}m(),o=requestAnimationFrame(ae)},R=()=>{se(),H(),document.removeEventListener("mouseup",R)},G=(U)=>{if(U.target===p||W!=="scroll")return;U.preventDefault();let ue=l.getBoundingClientRect();V=N(U)-ue[J],Y=Q,Te(),y=setTimeout(()=>{o=requestAnimationFrame(ae)},350),document.addEventListener("mouseup",R)},ee=(U)=>{U.preventDefault(),U.stopPropagation(),D=!0,X=N(U),j=Q,m(),l.classList.add(`${n}-scrollbar--dragging`),document.addEventListener("mousemove",z),document.addEventListener("mouseup",le)},z=(U)=>{if(!D)return;let ue=N(U)-X,me=A>0?ue/A:0,ge=d-v,Le=me*ge,Ie=Math.max(0,Math.min(j+Le,ge));p.style.transform=`${L}(${Ie/ge*A}px)`,e(Ie)},le=()=>{if(D=!1,l.classList.remove(`${n}-scrollbar--dragging`),r&&!Z)H();document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",le)},ye=u?(U)=>U.touches[0].clientX:(U)=>U.touches[0].clientY,pe=(U)=>{U.stopPropagation(),D=!0,X=ye(U),j=Q,m(),l.classList.add(`${n}-scrollbar--dragging`)},ve=(U)=>{if(!D)return;U.preventDefault();let ue=ye(U)-X,me=A>0?ue/A:0,ge=d-v,Le=me*ge,Ie=Math.max(0,Math.min(j+Le,ge));p.style.transform=`${L}(${Ie/ge*A}px)`,e(Ie)},re=()=>{if(D=!1,l.classList.remove(`${n}-scrollbar--dragging`),r)H()},fe=(U)=>{if(U.target===p)return;if(A<=0)return;let ue=U.touches[0],me=l.getBoundingClientRect(),ge=(u?ue.clientX:ue.clientY)-me[J];if(W==="jump"){let Le=d-v,Ie=Math.max(0,Math.min(ge-O/2,A));e(Ie/A*Le)}else V=ge,Y=Q,Te();P()},be=()=>{if(_)P()},xe=()=>{if(!D){if(Z=!1,r)H()}},ce=()=>{Z=!0,m(),P()},he=()=>{if(Z=!1,!D&&r)H()},Se=()=>{if(m(),se(),de!==null)cancelAnimationFrame(de),de=null;l.removeEventListener("click",te),l.removeEventListener("mousedown",G),l.removeEventListener("mouseenter",ce),document.removeEventListener("mouseup",R),l.removeEventListener("mouseleave",he),l.removeEventListener("touchstart",fe),p.removeEventListener("mousedown",ee),p.removeEventListener("touchstart",pe),p.removeEventListener("touchmove",ve),p.removeEventListener("touchend",re),t.removeEventListener("mouseenter",be),t.removeEventListener("mouseleave",xe),document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",le),S.removeEventListener("click",te),S.removeEventListener("mousedown",G),S.removeEventListener("mouseenter",ce),S.removeEventListener("mouseleave",he),S.remove(),c.style.removeProperty("--vlist-custom-scrollbar-padding-top"),c.style.removeProperty("--vlist-custom-scrollbar-padding-right"),c.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),c.style.removeProperty("--vlist-custom-scrollbar-padding-left"),l.remove()};if(h(),l.addEventListener("click",te),l.addEventListener("mousedown",G),l.addEventListener("mouseenter",ce),l.addEventListener("mouseleave",he),l.addEventListener("touchstart",fe,{passive:!0}),p.addEventListener("mousedown",ee),p.addEventListener("touchstart",pe,{passive:!0}),p.addEventListener("touchmove",ve,{passive:!1}),p.addEventListener("touchend",re,{passive:!0}),t.addEventListener("mouseenter",be),t.addEventListener("mouseleave",xe),S.addEventListener("click",te),S.addEventListener("mousedown",G),E)S.addEventListener("mouseenter",ce),S.addEventListener("mouseleave",he);return{show:P,hide:k,updateBounds:q,updatePosition:M,isVisible:()=>oe,destroy:Se}};var Mt=50,At=0.1;function Ht(t){let e=0,s=0,n=0;function u(){return n>0?s/n:0}function a(w){if(e=w,w>At&&w<Mt)s+=w,n++}function r(){let w=t.getTotal();if(w===0)return 0;let E=t.getItemSize();if(E<=0)return 0;let _=t.getContainerSize();if(_<=0)return 0;let F=t.getScrollPosition(),W=typeof t.getColumns==="function"?t.getColumns():1,C=Math.ceil(w/W)*E,T=Math.min(C,qe)-_,b=C-_,I=T>0?b/T:1,d=F*I,v=Math.ceil((d+_)/E);return Math.min(v*W,w)}function g(){let w=t.getTotal(),E=r();return{progress:w>0?Math.min(100,Math.max(0,E/w*100)):0,velocity:e,velocityAvg:u(),itemCount:E,total:w}}return{getState:g,onVelocity:a}}export{We as buildLayoutItems,Fe as calculateMissingRanges,tt as clearSelection,mt as createAsyncManager,dt as createEmitter,Ze as createGridLayout,ht as createGridRenderer,Ue as createGroupLayout,Ke as createGroupedSizeFn,lt as createMasonryLayout,ct as createMasonryRenderer,Pe as createPlaceholderManager,ft as createScrollbar,Je as createSelectionState,ut as createSizeCache,_e as createSparseStorage,Ht as createStats,Ye as createStickyHeader,at as createTableHeader,st as createTableLayout,it as createTableRenderer,Ge as deselectItems,Ve as filterPlaceholders,rt as getSelectedIds,ot as getSelectedItems,Re as isGroupHeader,Ce as isPlaceholderItem,nt as isSelected,De as mergeRanges,et as selectAll,$e as selectItems,Qe as toggleSelection};
1
+ function He(t){let e=t.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let s=0;s<e.length;s++)e[s].setAttribute("tabindex","-1")}var Oe=(t,e)=>{let s=0,n=t.length-1;while(s<n){let u=s+n+1>>>1;if(t[u].headerLayoutIndex<=e)s=u;else n=u-1}return s},Ne=(t,e)=>{let s=0,n=t.length-1;while(s<n){let u=s+n+1>>>1;if(t[u].firstDataIndex<=e)s=u;else n=u-1}return s},Be=(t,e,s)=>{if(t===0)return[];let n=[],u=null,a=0,r=0;for(let g=0;g<t;g++){let w=s?.(g);if(!w)continue;let E=e(g,w);if(u===null)u=E,a=0;else if(E!==u){let _=g-a;n.push({key:u,groupIndex:n.length,headerLayoutIndex:r,firstDataIndex:a,count:_}),r=r+1+_,u=E,a=g}}if(u!==null)n.push({key:u,groupIndex:n.length,headerLayoutIndex:r,firstDataIndex:a,count:t-a});return n},We=(t,e)=>{if(t.length===0||e.length===0)return[];let s=t.length+e.length,n=Array(s),u=0;for(let a of e){n[u]={id:`__group_header_${a.groupIndex}`,__groupHeader:!0,groupKey:a.key,groupIndex:a.groupIndex},u++;for(let r=0;r<a.count;r++)n[u]=t[a.firstDataIndex+r],u++}return n},Ke=(t,e,s=!1)=>{let n=typeof e==="number"?(u)=>e:e;return(u)=>{let a=t.getEntry(u);if(a.type==="header"){if(s&&a.group.groupIndex===0)return 0;return t.getHeaderHeight(a.group.groupIndex)}return n(a.dataIndex)}},Ue=(t,e,s)=>{let n=Be(t,e.getGroupForIndex,s),u=t+n.length,a=e.header?.height??e.header?.width??e.headerHeight;return{get totalEntries(){return u},get groupCount(){return n.length},get groups(){return n},getEntry:(c)=>{if(n.length===0)return{type:"item",dataIndex:c,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let C=Oe(n,c),I=n[C];if(c===I.headerLayoutIndex)return{type:"header",group:I};let x=c-I.headerLayoutIndex-1;return{type:"item",dataIndex:I.firstDataIndex+x,group:I}},layoutToDataIndex:(c)=>{if(n.length===0)return c;let C=Oe(n,c),I=n[C];if(c===I.headerLayoutIndex)return-1;let x=c-I.headerLayoutIndex-1;return I.firstDataIndex+x},dataToLayoutIndex:(c)=>{if(n.length===0)return c;let C=Ne(n,c),I=n[C],x=c-I.firstDataIndex;return I.headerLayoutIndex+1+x},getGroupAtLayoutIndex:(c)=>{if(n.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let C=Oe(n,c);return n[C]},getGroupAtDataIndex:(c)=>{if(n.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let C=Ne(n,c);return n[C]},getHeaderHeight:typeof a==="number"?(c)=>a:(c)=>{let C=n[c];if(!C)return 0;return a(C.key,c)},rebuild:(c,C)=>{n=Be(c,e.getGroupForIndex,C??s),u=c+n.length}}};var pt=(t,e,s,n,u=0)=>{let a=s?"width":"height",r=document.createElement("div");return r.className=`${e}-sticky-header`,r.setAttribute("role","presentation"),r.setAttribute("aria-hidden","true"),r.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(s?`position:absolute;top:0;bottom:0;left:${u||0}px`:`position:relative;top:${u||0}px`),r.style[a]=`${n}px`,t.insertBefore(r,t.firstChild),r},Ye=(t,e,s,n,u,a=!1,r=0,g,w)=>{let E=a?"width":"height",_=a?"height":"width",V=a?"X":"Y",W=(h,m)=>{h.style[E]=`${m}px`},c=g??pt(t,u,a,0,r),C=()=>{let h=document.createElement("div");return h.className="sticky-group",h.style.position="absolute",h.style.willChange="transform",h.style[_]="100%",h},I=C(),x=C();c.append(I,x);let b=I,L=x,d=e.groups,S=[],O=[],A=[],D=0,Z=()=>{d=e.groups,D=d.length,S=Array(D),O=Array(D),A=Array(D);for(let h=0;h<D;h++)S[h]=w?w(d[h].headerLayoutIndex):s.getOffset(d[h].headerLayoutIndex),O[h]=e.getHeaderHeight(h),A[h]=O[h]};Z();let j=-1,J=0,Q=0,ie=-1,oe=!1,de=0,N=!1,Y=(h,m)=>{n(h,m);let H=O[m];return W(h,H),H},y=(h)=>{h.replaceChildren(),h.style.transform=""},o=(h)=>{if(h===j)return;if(j=h,J=0,Q=0,h<0||h>=D){y(b);return}J=Y(b,h),Q=A[h],W(c,J),b.style.transform=""},f=(h)=>{if(h===de)return;de=h;let m=Math.round(h);b.style.transform=`translate${V}(${m}px)`,L.style.transform=`translate${V}(${m+J}px)`},i=()=>{de=0,b.style.transform="",L.style.transform=""},T=()=>{if(!N)return;let h=b;b=L,L=h,j=ie,J=j>=0?O[j]:0,Q=j>=0?A[j]:0,W(c,J),y(L),ie=-1,N=!1,i()},F=()=>{if(!N)return;y(L),ie=-1,N=!1,i()},X=!!g,l=()=>{if(oe)return;if(oe=!0,X)c.style.visibility="";else c.style.display=""},p=()=>{if(!oe)return;if(oe=!1,X)c.style.visibility="hidden";else c.style.display="none";y(b),j=-1,J=0,Q=0,F()},v=(h)=>{if(D===0){if(N)F();if(!oe)l();o(-1);return}if(h<S[0]){p();return}let m=0,H=D-1;while(m<H){let k=m+H+1>>>1;if(S[k]+A[k]<=h)m=k;else H=k-1}if(!oe)l();o(m);let P=m+1;if(P<D){let k=S[P]-h;if(k<=0&&k>-Q){if(ie!==P||!N)ie=P,Y(L,P),N=!0;let q=Q>0?k/Q*J:k;f(q)}else if(k<=-Q){if(N)T()}else if(N)F()}else if(N)F()},B=()=>{Z();let h=j;if(j=-1,J=0,Q=0,h>=0)o(h)},K=()=>{c.remove(),j=-1,J=0,Q=0,ie=-1,oe=!1,N=!1};if(!g)c.style.display="none";return{update:v,refresh:B,show:l,hide:p,destroy:K}};var Re=(t)=>t!==null&&typeof t==="object"&&t.__groupHeader===!0;var Ze=(t)=>{let e=Math.max(1,Math.floor(t.columns)),s=t.gap??0,n=t.isHeaderFn,u={row:0,col:0},a=(I)=>{if(I<=0)return 0;if(!n)return Math.ceil(I/e);let x=0,b=0,L=0;for(let d=0;d<I;d++)if(n(d)){if(L++,b)x++,b=0;x++,b=0}else if(b++,b>=e)x++,b=0;if(b)x++;return x},r=(I)=>(u.row=g(I),u.col=w(I),u),g=(I)=>{if(!n)return Math.floor(I/e);let x=0,b=0;for(let L=0;L<=I;L++)if(n(L)){if(b)x++,b=0;if(L===I)return x;x++,b=0}else{if(L===I)return x;if(b++,b>=e)x++,b=0}return console.warn(`⚠️ getRow(${I}) fell through - returning ${x}`),x},w=(I)=>{if(!n)return I%e;if(n(I))return 0;let x=0;for(let b=0;b<=I;b++)if(n(b))x=0;else{if(b===I)return x;if(x++,x>=e)x=0}return x},E=(I,x,b,L)=>{if(b<=0){L.start=0,L.end=-1;return}if(!n){L.start=Math.max(0,I*e),L.end=Math.min(b-1,(x+1)*e-1);return}let d=_(I,x,b);L.start=d.start,L.end=d.end},_=(I,x,b)=>{if(b<=0)return{start:0,end:-1};if(!n){let A=Math.max(0,I*e),D=Math.min(b-1,(x+1)*e-1);return{start:A,end:D}}let L=-1,d=-1,S=0,O=0;for(let A=0;A<b;A++){if(n(A)){if(O)S++,O=0;if(S>=I&&S<=x){if(L<0)L=A;d=A}S++,O=0}else{if(S>=I&&S<=x){if(L<0)L=A;d=A}if(O++,O>=e)S++,O=0}if(S>x&&!O)break}if(L<0)return{start:0,end:-1};return{start:L,end:d}},V=(I,x,b)=>{if(x<0||x>=e)return-1;let L=I*e+x;if(L<0||L>=b)return-1;return L},W=(I)=>{let x=(e-1)*s;return Math.max(0,(I-x)/e)};return{get columns(){return e},get gap(){return s},update:(I)=>{if(I.columns!==void 0)e=Math.max(1,Math.floor(I.columns));if(I.gap!==void 0)s=I.gap;if(I.isHeaderFn!==void 0)n=I.isHeaderFn},getTotalRows:a,getPosition:r,getRow:g,getCol:w,getItemRange:_,fillItemRange:E,getItemIndex:V,getColumnWidth:W,getColumnOffset:(I,x)=>{let b=W(x);return I*(b+s)}}};var qe=16000000;var Xe="x",je=20,$e="_isPlaceholder",Ee="__placeholder_";var Me=(t,e,s)=>{if(String(s).startsWith(Ee))return!1;let n=Ee+e;if(t.has(n))return t.delete(n),t.add(s),!0;return!1},Je=(t)=>({selected:new Set(t??[]),focusedIndex:-1,focusVisible:!1}),ze=(t,e,s)=>{if(s==="none")return t;let n=new Set(t.selected);if(s==="single"){if(n.clear(),e.length>0)n.add(e[0])}else for(let u of e)n.add(u);return{...t,selected:n}},Ge=(t,e)=>{let s=new Set(t.selected);for(let n of e)s.delete(n);return{...t,selected:s}},Qe=(t,e,s)=>{if(s==="none")return t;if(t.selected.has(e))return Ge(t,[e]);else return ze(t,[e],s)},et=(t,e,s)=>{if(s!=="multiple")return t;return{...t,selected:new Set(e.map((n)=>n.id))}},tt=(t)=>({...t,selected:new Set});var nt=(t,e)=>t.selected.has(e),rt=(t)=>Array.from(t.selected),ot=(t,e)=>{let s=[];for(let n of t.selected){let u=e(n);if(u)s.push(u)}return s};var ke=(t,e,s)=>{let n=Array.from(e).sort((r,g)=>r-g);if(n.length<=1)return;let u=[];for(let r=0;r<n.length;r++){let g=s(n[r]);if(g)u.push(g)}if(u.length<=1)return;let a=t.firstChild;for(let r=0;r<u.length;r++){let g=u[r];if(g===a)a=a.nextSibling;else t.insertBefore(g,a)}};var gt=(t=200)=>{let e=[];return{acquire:()=>{let a=e.pop();if(a)return a;let r=document.createElement("div");return r.setAttribute("role","option"),r},release:(a)=>{if(a.remove(),e.length<t)a.className="",a.textContent="",a.removeAttribute("style"),a.removeAttribute("data-index"),a.removeAttribute("data-id"),a.removeAttribute("data-row"),a.removeAttribute("data-col"),e.push(a)},clear:()=>{e.length=0}}},bt=1,ht=(t,e,s,n,u,a,r,g,w=!1,E,_)=>{let V=gt(),W=new Map,c=a,C=!1,I=0,x="",b=-1,L={selected:!1,focused:!1},d=(l,p)=>(L.selected=l,L.focused=p,L),S=`${u}-item ${u}-grid-item`,O=`${u}-group-header`,A=`${u}-item--selected`,D=`${u}-item--focused`,Z=`${u}-item--placeholder`,j=`${u}-item--replaced`,J=(l,p)=>{if(typeof p==="string")l.innerHTML=p;else l.replaceChildren(p);He(l)},Q=(l,p,v)=>{l.classList.toggle(A,p),l.classList.toggle(D,v)},ie=(l)=>{let p=n.getRow(l);return s.getOffset(p)},oe=(l)=>{let p=n.getCol(l),B=C&&p===0?0:n.getColumnOffset(p,c),K;if(C){let h=n.getRow(l),m=0,H=-1;for(let P=0;P<l;P++){let k=n.getRow(P);if(k<h&&k!==H){let q=s.getSize(P);m+=q,H=k}}K=m}else K=ie(l);if(w)return`translate(${Math.round(K)}px, ${Math.round(B)}px)`;return`translate(${Math.round(B)}px, ${Math.round(K)}px)`},de=(l,p)=>{let v=l.classList.contains(O),B=v?c:n.getColumnWidth(c),K;if(C||v)K=s.getSize(p)-n.gap;else{let h=n.getRow(p);K=s.getSize(h)-n.gap}if(w)l.style.width=`${K}px`,l.style.height=`${B}px`;else l.style.width=`${B}px`,l.style.height=`${K}px`},N=(l,p,v,B,K)=>{let h=V.acquire(),m=!!p.__groupHeader,H=d(v,B);if(h.className=m?O:S,h.dataset.index=String(l),h.dataset.id=String(p.id),h.dataset.row=String(n.getRow(l)),h.dataset.col=String(n.getCol(l)),m)h.setAttribute("role","presentation"),h.removeAttribute("aria-selected"),h.removeAttribute("aria-setsize"),h.removeAttribute("aria-posinset"),h.removeAttribute("id");else if(_===!0){if(h.setAttribute("role","option"),h.ariaSelected=String(v),g)h.id=`${g}-item-${l}`;if(r){let q=r();if(q!==b)b=q,x=String(q);h.setAttribute("aria-setsize",x);let M=E?E(l):l+1;h.setAttribute("aria-posinset",String(M))}}else if(h.setAttribute("role","listitem"),h.removeAttribute("aria-selected"),r){let q=r();if(q!==b)b=q,x=String(q);h.setAttribute("aria-setsize",x);let M=E?E(l):l+1;h.setAttribute("aria-posinset",String(M))}de(h,l);let P=e(p,l,H);if(J(h,P),String(p.id).startsWith(Ee))h.classList.add(Z);return Q(h,v,B),h.style.transform=K,{element:h,lastItem:p,lastSelected:v,lastFocused:B,lastTransform:K,lastSeenFrame:I}},Y=(l,p,v,B)=>{if(I++,p.start===0&&l.length)C=Re(l[0]);let K=!1;if(r){let m=r();if(m!==b)b=m,x=String(m),K=!0}let h=null;for(let m=p.start;m<=p.end;m++){let H=m-p.start,P=l[H];if(!P)continue;let k=v.has(P.id),q=m===B,M=W.get(m);if(M){let te=M.lastItem!==P,se=M.lastSelected!==k,ne=M.lastFocused!==q;if(te){let ae=M.element.dataset.id??"",R=String(P.id),G=ae.startsWith(Ee),ee=R.startsWith(Ee);if(!ee&&Me(v,m,P.id))k=!0;let z=d(k,q),le=e(P,m,z);if(J(M.element,le),M.element.dataset.id=R,M.element.dataset.row=String(n.getRow(m)),M.element.dataset.col=String(n.getCol(m)),de(M.element,m),M.element.classList.toggle(Z,ee),G&&!ee)M.element.classList.add(j),setTimeout(()=>M.element.classList.remove(j),300);if(M.lastItem=P,!P.__groupHeader){let pe=E?E(m):m+1;M.element.setAttribute("aria-posinset",String(pe))}}if(te||se||ne)Q(M.element,k,q),M.element.ariaSelected=String(k),M.lastSelected=k,M.lastFocused=q;let Te=oe(m);if(M.lastTransform!==Te)M.element.style.transform=Te,M.lastTransform=Te;if(K&&!P.__groupHeader)M.element.setAttribute("aria-setsize",x)}else{if(Me(v,m,P.id))k=!0;let te=oe(m),se=N(m,P,k,q,te);if(!h)h=document.createDocumentFragment();h.appendChild(se.element),W.set(m,se)}}if(h)t.appendChild(h);for(let[m,H]of W)if(m>=p.start&&m<=p.end)H.lastSeenFrame=I;else if(I-H.lastSeenFrame>bt)V.release(H.element),W.delete(m)},y=(l,p,v,B)=>{let K=W.get(l);if(!K)return;let h=d(v,B),m=e(p,l,h);J(K.element,m),Q(K.element,v,B),K.element.dataset.id=String(p.id),K.element.ariaSelected=String(v),de(K.element,l),K.lastItem=p,K.lastSelected=v,K.lastFocused=B},o=(l,p,v)=>{let B=W.get(l);if(!B)return;let K=B.lastSelected!==p,h=B.lastFocused!==v;if(K||h)Q(B.element,p,v),B.lastSelected=p,B.lastFocused=v},f=(l)=>W.get(l)?.element,i=(l)=>{if(Math.abs(l-c)<1)return;c=l;for(let[p,v]of W){de(v.element,p);let B=oe(p);v.element.style.transform=B,v.lastTransform=B}},T=()=>{ke(t,W.keys(),(l)=>W.get(l)?.element)},F=()=>{for(let[,l]of W)V.release(l.element);W.clear()};return{render:Y,updateItem:y,updateItemClasses:o,getElement:f,sortDOM:T,updateContainerWidth:i,clear:F,destroy:()=>{F(),V.clear()}}};var st=(t,e=50,s=1/0,n=!0,u="none")=>{let a=t,r=[],g=0,w=0,E=()=>{r=a.map((d,S)=>({def:d,index:S,width:0,minWidth:yt(d.minWidth??e,1),maxWidth:d.maxWidth??s,resizable:d.resizable??n,offset:0}))},_=()=>{if(u==="none"||g<=0||g>=w)return;if(u==="spacer"){g=w;return}let d=w-g,S=g;for(let O=0;O<r.length;O++){let A=r[O];A.width=we(A.width+d*(A.width/S),A.minWidth,A.maxWidth)}W()},V=(d)=>{if(w=d,r.length===0){g=0;return}let S=0,O=0;for(let A=0;A<r.length;A++){let D=r[A],Z=D.def;if(Z.width!==void 0)D.width=we(Z.width,D.minWidth,D.maxWidth),S+=D.width;else O++}if(O){let D=Math.max(0,d-S)/O;for(let Z=0;Z<r.length;Z++){let j=r[Z];if(j.def.width===void 0)j.width=we(D,j.minWidth,j.maxWidth)}}W(),_()},W=()=>{let d=0;for(let S=0;S<r.length;S++){let O=r[S];O.offset=d,d+=O.width}g=d},c=(d,S)=>{if(d<0||d>=r.length)return 0;let O=r[d];if(!O.resizable)return O.width;let A=we(S,O.minWidth,O.maxWidth);if(O.width=A,W(),u==="spacer")_();return A},C=(d)=>r[d],I=(d)=>{if(r.length===0)return;if(d<0)return r[0];if(d>=g)return r[r.length-1];let S=0,O=r.length-1;while(S<O){let A=S+O>>>1,D=r[A];if(d<D.offset)O=A-1;else if(d>=D.offset+D.width)S=A+1;else return D}return r[S]},x=(d)=>{if(d<0||d>=r.length)return 0;return r[d].offset},b=(d)=>{if(d<0||d>=r.length)return 0;return r[d].width},L=(d)=>{a=d,E()};return E(),{get columns(){return r},get totalWidth(){return g},resolve:V,updateColumns:L,resizeColumn:c,getColumn:C,getColumnAtX:I,getColumnOffset:x,getColumnWidth:b}},we=(t,e,s)=>Math.min(s,Math.max(e,t)),yt=(t,e)=>Math.max(e,t);var at=(t,e,s,n,u,a)=>{let r=document.createElement("div");r.setAttribute("role","rowgroup");let g=document.createElement("div");g.className=`${s}-table-header`,g.setAttribute("role","row"),g.setAttribute("aria-rowindex","1"),g.style.height=`${e}px`;let w=document.createElement("div");w.className=`${s}-table-header-scroll`,w.setAttribute("role","presentation"),g.appendChild(w),r.appendChild(g),t.insertBefore(r,t.firstChild),t.style.setProperty("--vlist-table-header-height",`${e}px`);let E=[],_=[],V=!0,W=null,c="asc",C=null,I=!1,x=-1,b=0,L=0,d=0,S=(o,f)=>{let i=document.createElement("div");i.className=`${s}-table-header-cell`,i.setAttribute("role","columnheader"),i.setAttribute("aria-colindex",String(f+1)),i.setAttribute("tabindex",f===0?"0":"-1"),i.dataset.columnKey=o.def.key;let T=o.def.align;if(T==="center")i.classList.add(`${s}-table-header-cell--center`);else if(T==="right")i.classList.add(`${s}-table-header-cell--right`);let F=document.createElement("div");F.className=`${s}-table-header-content`;let X=o.def.header?o.def.header(o.def):o.def.label;if(typeof X==="string")F.textContent=X;else F.appendChild(X);if(i.appendChild(F),o.def.sortable){let l=document.createElement("span");l.className=`${s}-table-header-sort`,l.setAttribute("aria-hidden","true"),i.appendChild(l),_.push(l),i.classList.add(`${s}-table-header-cell--sortable`)}else _.push(null);if(o.resizable){let l=document.createElement("div");l.className=`${s}-table-header-resize`,l.dataset.resizeIndex=String(f),i.appendChild(l)}return i},O=(o)=>{C=o,w.textContent="",E=[],_=[];let f=o.columns;for(let i=0;i<f.length;i++){let T=f[i],F=S(T,i);E.push(F),w.appendChild(F)}if(A(o),W)D(W,c)},A=(o)=>{C=o;let f=o.columns;w.style.width=`${o.totalWidth}px`;for(let i=0;i<E.length&&i<f.length;i++){let T=E[i],F=f[i];T.style.width=`${F.width}px`}},D=(o,f)=>{if(W=o,c=f,!C)return;let i=C.columns;for(let T=0;T<_.length&&T<i.length;T++){let F=_[T];if(!F)continue;if(i[T].def.key===o)F.textContent=f==="asc"?"▲":"▼",F.style.opacity="0.7",E[T].setAttribute("aria-sort",f==="asc"?"ascending":"descending");else F.textContent="",F.style.opacity="0",E[T].removeAttribute("aria-sort")}},Z=(o)=>{w.style.transform=`translateX(${-o}px)`},j=(o)=>{let f=o.target;if(!f.dataset.resizeIndex)return;if(o.preventDefault(),o.stopPropagation(),x=+f.dataset.resizeIndex,!C)return;let i=C.getColumn(x);if(!i?.resizable)return;I=!0,b=o.clientX,L=i.width,t.classList.add(`${s}--col-resizing`),t.style.cursor="col-resize",f.classList.add(`${s}-table-header-resize--active`),f.setPointerCapture(o.pointerId),f.addEventListener("pointermove",J),f.addEventListener("pointerup",Q),f.addEventListener("pointercancel",Q)},J=(o)=>{if(!I||!C)return;let f=o.clientX-b;if(Math.abs(f)<1)return;let i=Math.max(0,L+f);n(x,i)},Q=(o)=>{if(!I)return;let f=o.target;f.removeEventListener("pointermove",J),f.removeEventListener("pointerup",Q),f.removeEventListener("pointercancel",Q);try{f.releasePointerCapture(o.pointerId)}catch{}f.classList.remove(`${s}-table-header-resize--active`),t.classList.remove(`${s}--col-resizing`),t.style.cursor="",I=!1,x=-1},ie=(o)=>{let f=o.target;if(f.dataset.resizeIndex)return;if(I)return;let i=f;while(i&&!i.dataset.columnKey)if(i=i.parentElement,i===g||i===null)return;let T=i.dataset.columnKey;if(!C)return;let F=C.columns,X=-1;for(let p=0;p<F.length;p++)if(F[p].def.key===T){X=p;break}if(X===-1)return;let l=F[X];if(a)a({key:T,index:X,event:o});if(l.def.sortable&&u){let p;if(W===T)p=c==="asc"?"desc":null;else p="asc";u({key:T,index:X,direction:p})}},oe=(o)=>{if(o<0||o>=E.length)return;E[d]?.setAttribute("tabindex","-1"),d=o;let f=E[d];f.setAttribute("tabindex","0"),f.focus()},de=(o)=>{let f=o.key;if(f==="ArrowRight"){if(o.ctrlKey||o.metaKey){if(!C)return;let i=C.getColumn(d);if(i?.resizable)n(d,i.width+10),o.preventDefault()}else if(d<E.length-1)oe(d+1),o.preventDefault();o.stopPropagation();return}if(f==="ArrowLeft"){if(o.ctrlKey||o.metaKey){if(!C)return;let i=C.getColumn(d);if(i?.resizable)n(d,i.width-10),o.preventDefault()}else if(d>0)oe(d-1),o.preventDefault();o.stopPropagation();return}if(f==="Home"){oe(0),o.preventDefault(),o.stopPropagation();return}if(f==="End"){oe(E.length-1),o.preventDefault(),o.stopPropagation();return}if(f==="Enter"||f===" "){if(!C)return;let i=C.getColumn(d);if(i?.def.sortable&&u){let T;if(W===i.def.key)T=c==="asc"?"desc":null;else T="asc";u({key:i.def.key,index:d,direction:T}),o.preventDefault()}o.stopPropagation();return}if(f==="ArrowDown"){t.focus(),o.preventDefault(),o.stopPropagation();return}};return g.addEventListener("pointerdown",j),g.addEventListener("click",ie),g.addEventListener("keydown",de),{element:g,update:A,updateSort:D,rebuild:O,show:()=>{if(V)return;V=!0,g.style.display=""},hide:()=>{if(!V)return;V=!1,g.style.display="none"},destroy:()=>{g.removeEventListener("pointerdown",j),g.removeEventListener("click",ie),g.removeEventListener("keydown",de),t.style.removeProperty("--vlist-table-header-height"),r.remove(),E=[],_=[],C=null,V=!1},syncScroll:Z}};var vt=()=>{let t=[];return{acquire:()=>t.pop()||document.createElement("div"),release:(e)=>{if(e.parentNode?.removeChild(e),t.length<200)e.className="",e.removeAttribute("data-id"),e.removeAttribute("data-index"),e.removeAttribute("aria-selected"),e.removeAttribute("aria-rowindex"),e.removeAttribute("role"),e.style.cssText="",e.textContent="",t.push(e)},clear:()=>{t.length=0}}},it=(t,e,s,n,u,a,r,g,w,E=()=>0)=>{let _=vt(),V=new Map,W=-1,c=s,C=null,I=null,x=null,b=(m,H)=>{I=m,x=H},L=(m,H)=>{H?m.setAttribute("aria-selected","true"):m.removeAttribute("aria-selected")},d=(m,H,P,k)=>{m.setAttribute("role",H),m.setAttribute("data-id",String(P)),m.setAttribute("data-index",String(k))},S=(m)=>String(m).startsWith("__placeholder_"),O=`${u}-item ${u}-table-row`,A=`${u}-item--selected`,D=`${u}-item--focused`,Z=`${u}-table-cell`,j=`${u}-table-cell--center`,J=`${u}-table-cell--right`,Q=`${u}-table-cell-skeleton`,ie=`${u}-item--odd`,oe=`${u}-item--placeholder`,de=`${u}-item--replaced`,N=`${u}-table-row ${u}-table-group-header`,Y=`${u}-table-group-header-content`,y=(m,H,P,k,q=!1)=>{if(P.def.cell){let M=P.def.cell(H,P.def,k);if(typeof M==="string")m.innerHTML=M;else m.replaceChildren(M)}else{let M=H[P.def.key],te=M!=null?String(M):"";if(q&&te)m.innerHTML=`<span>${te}</span>`;else m.textContent=te}if(q&&m.firstElementChild===null){m.replaceChildren();let M=document.createElement("span");M.className=Q,m.appendChild(M)}},o=(m,H,P,k,q=!1)=>{let M=O;if(g){if(C){let te=C(H);if(te>=0&&(te&1)===1)M+=` ${ie}`}else if((H&1)===1)M+=` ${ie}`}if(q)M+=` ${oe}`;if(P)M+=` ${A}`;if(k)M+=` ${D}`;m.className=M},f=(m,H)=>{let P=H.def.align;if(P==="center")m.classList.add(j),m.classList.remove(J);else if(P==="right")m.classList.add(J),m.classList.remove(j);else m.classList.remove(j,J)},i=(m,H)=>{let k=c.columns.length;if(H.length===k)return H;let q=[];for(let M=0;M<k;M++){let te;if(M<H.length)te=H[M];else te=document.createElement("div"),te.className=Z,m.appendChild(te);q.push(te)}for(let M=k;M<H.length;M++)H[M].remove();return q},T=(m,H,P)=>{let k=_.acquire(),q=m,M=P.getSize(H),te=P.getOffset(H)-E();k.style.cssText=`width:${c.totalWidth}px;height:${M}px;transform:translateY(${te}px)`,k.className=N,d(k,"presentation",m.id,H),k.removeAttribute("aria-selected"),k.removeAttribute("aria-rowindex"),k.replaceChildren();let se=document.createElement("div");if(se.className=Y,x){let ne=x(q.groupKey,q.groupIndex);if(typeof ne==="string")se.innerHTML=ne;else se.appendChild(ne)}return k.appendChild(se),{element:k,cells:[],index:H,isGroupHeader:!0,_lastItem:m,lastItemId:m.id,lastSelected:!1,lastFocused:!1,lastOffset:te,lastHeight:M}},F=(m,H,P,k,q)=>{let M=_.acquire(),te=q.getSize(H),se=q.getOffset(H)-E(),ne=S(m.id);M.style.cssText=`width:${c.totalWidth}px;height:${te}px;transform:translateY(${se}px)`,o(M,H,P,k,ne),d(M,"row",m.id,H),M.id=`${a}-item-${H}`,M.setAttribute("aria-rowindex",String(H+2)),L(M,P);let Te=i(M,[]),ae=c.columns;for(let R=0;R<Te.length&&R<ae.length;R++){let G=Te[R],ee=ae[R];G.style.cssText=`left:${ee.offset}px;width:${ee.width}px`,G.setAttribute("role","gridcell"),G.setAttribute("aria-colindex",String(R+1)),f(G,ee),y(G,m,ee,H,ne)}return{element:M,cells:Te,index:H,isGroupHeader:!1,_lastItem:m,lastItemId:m.id,lastSelected:P,lastFocused:k,lastOffset:se,lastHeight:te}},X=(m,H,P,k)=>{let q=!1,M=r();if(M!==W)W=M,q=!0;let te=null,se=e();C=typeof g==="string"&&w?w():null;for(let ne=H.start;ne<=H.end;ne++){let Te=ne-H.start,ae=m[Te];if(!ae)continue;let R=P.has(ae.id),G=ne===k,ee=I?I(ae):!1,z=V.get(ne);if(z){if(z.isGroupHeader!==ee){_.release(z.element),V.delete(ne);let le=ee?T(ae,ne,se):F(ae,ne,R,G,se);if(V.set(ne,le),!te)te=document.createDocumentFragment();te.appendChild(le.element);continue}if(ee){if(z._lastItem!==ae){let ve=ae,re=z.element.firstElementChild;if(re&&x){let fe=x(ve.groupKey,ve.groupIndex);if(typeof fe==="string")re.innerHTML=fe;else re.replaceChildren(fe)}z.element.setAttribute("data-id",String(ae.id)),z._lastItem=ae,z.lastItemId=ae.id}let ye=se.getOffset(ne)-E();if(z.lastOffset!==ye)z.lastOffset=ye,z.element.style.transform=`translateY(${ye}px)`;let pe=se.getSize(ne);if(z.lastHeight!==pe)z.lastHeight=pe,z.element.style.height=`${pe}px`}else{let le=z._lastItem!==ae,ye=z.lastSelected!==R,pe=z.lastFocused!==G;if(le){let fe=z.lastItemId!=null&&S(z.lastItemId),be=S(ae.id);if(!be&&Me(P,ne,ae.id))R=!0;let xe=c.columns;for(let ce=0;ce<z.cells.length&&ce<xe.length;ce++)y(z.cells[ce],ae,xe[ce],ne,be);if(o(z.element,ne,R,G,be),z.element.setAttribute("data-id",String(ae.id)),L(z.element,R),fe&&!be)z.element.classList.add(de),setTimeout(()=>{z.element.classList.remove(de)},300);z._lastItem=ae,z.lastItemId=ae.id,z.lastSelected=R,z.lastFocused=G}else if(ye||pe)o(z.element,ne,R,G,S(ae.id)),L(z.element,R),z.lastSelected=R,z.lastFocused=G;let ve=se.getOffset(ne)-E();if(z.lastOffset!==ve)z.lastOffset=ve,z.element.style.transform=`translateY(${ve}px)`;let re=se.getSize(ne);if(z.lastHeight!==re)z.lastHeight=re,z.element.style.height=`${re}px`;if(q)z.element.setAttribute("aria-rowindex",String(ne+2))}}else{if(Me(P,ne,ae.id))R=!0;let le=ee?T(ae,ne,se):F(ae,ne,R,G,se);if(V.set(ne,le),!te)te=document.createDocumentFragment();te.appendChild(le.element)}}if(te)t.appendChild(te);for(let[ne,Te]of V)if(ne<H.start||ne>H.end)_.release(Te.element),V.delete(ne)},l=(m,H,P,k)=>{let q=V.get(m);if(!q)return;if(q.isGroupHeader)return;let M=c.columns;for(let te=0;te<q.cells.length&&te<M.length;te++)y(q.cells[te],H,M[te],m);q.element.setAttribute("data-id",String(H.id)),q._lastItem=H,q.lastItemId=H.id,o(q.element,m,P,k),L(q.element,P),q.lastSelected=P,q.lastFocused=k},p=(m,H,P)=>{let k=V.get(m);if(!k)return;if(k.isGroupHeader)return;let q=k.lastSelected!==H,M=k.lastFocused!==P;if(q||M)o(k.element,m,H,P),L(k.element,H),k.lastSelected=H,k.lastFocused=P},v=(m)=>{c=m;let H=m.columns;for(let[,P]of V)if(P.element.style.width=`${m.totalWidth}px`,P.cells.length>0)for(let k=0;k<P.cells.length&&k<H.length;k++){let q=P.cells[k],M=H[k];q.style.left=`${M.offset}px`,q.style.width=`${M.width}px`}},B=(m)=>V.get(m)?.element,K=()=>{for(let[,m]of V)_.release(m.element);V.clear(),W=-1};return{render:X,updateItem:l,updateItemClasses:p,getElement:B,updateColumnLayout:v,setGroupHeaderFn:b,clear:K,destroy:()=>{K(),_.clear()}}};var lt=(t)=>{let e=Math.max(1,Math.floor(t.columns)),s=t.gap??0,n=t.containerSize,u=t.crossOffset??0,a=t.mainOffset??0,r=0,g=[],w=()=>{let b=(e-1)*s;r=Math.max(0,(n-b)/e),g=Array(e);let L=r+s;for(let d=0;d<e;d++)g[d]=u+d*L};w();let E=[],_=0,V=[],W=(b,L)=>{if(b<=0)return _=0,E=[],[];let d=Array(e).fill(a),S=Array(e);for(let D=0;D<e;D++)S[D]=[];let O=Array(b);for(let D=0;D<b;D++){let Z=0,j=d[0];for(let ie=1;ie<e;ie++){let oe=d[ie];if(oe<j)j=oe,Z=ie}let J=L(D),Q=d[Z];O[D]={index:D,x:g[Z],y:Q,lane:Z,size:J,crossSize:r},S[Z].push(D),d[Z]=Q+J+s}E=S;let A=0;for(let D=0;D<e;D++){let Z=d[D],j=Z>0?Z-s:0;if(j>A)A=j}return _=A,O},c=(b)=>{if(b.length===0)return _;if(_)return _;let L=Array(e).fill(0);for(let S of b){let O=S.y+S.size,A=L[S.lane];if(O>A)L[S.lane]=O}let d=0;for(let S=0;S<e;S++)if(L[S]>d)d=L[S];return d},C=(b,L,d)=>{if(b.length===0||d<=L)return V.length=0,V;if(E.length===0||E.length!==e)return I(b,L,d);V.length=0;for(let S=0;S<e;S++){let O=E[S],A=O.length;if(!A)continue;let D=0,Z=A;while(D<Z){let j=D+Z>>>1,J=b[O[j]];if(J.y+J.size<=L)D=j+1;else Z=j}for(let j=D;j<A;j++){let J=b[O[j]];if(J.y>=d)break;V.push(J)}}return V},I=(b,L,d)=>{V.length=0;for(let S of b)if(S.y+S.size>L&&S.y<d)V.push(S);return V};return{get columns(){return e},get gap(){return s},get containerSize(){return n},update:(b)=>{let L=!1;if(b.columns!==void 0){let d=Math.max(1,Math.floor(b.columns));if(d!==e)e=d,L=!0}if(b.gap!==void 0&&b.gap!==s)s=b.gap,L=!0;if(b.containerSize!==void 0&&b.containerSize!==n)n=b.containerSize,L=!0;if(b.crossOffset!==void 0&&b.crossOffset!==u)u=b.crossOffset,L=!0;if(b.mainOffset!==void 0&&b.mainOffset!==a)a=b.mainOffset,L=!0;if(L)w()},calculateLayout:W,getTotalSize:c,getVisibleItems:C}};var St=(t=200)=>{let e=[];return{acquire:()=>{let a=e.pop();if(a)return a;let r=document.createElement("div");return r.setAttribute("role","option"),r},release:(a)=>{if(a.remove(),e.length<t)a.className="",a.textContent="",a.removeAttribute("style"),a.removeAttribute("data-index"),a.removeAttribute("data-id"),a.removeAttribute("data-lane"),e.push(a)},clear:()=>{e.length=0}}},Tt=1,ct=(t,e,s,n=!1,u,a,r,g,w=()=>0)=>{let E=St(),_=new Map,V=new Set,W=0,c="",C=-1,I={selected:!1,focused:!1},x=(N,Y)=>(I.selected=N,I.focused=Y,I),b=`${s}-item ${s}-masonry-item`,L=`${s}-group-header`,d=`${s}-item--selected`,S=`${s}-item--focused`,O=(N,Y)=>{if(typeof Y==="string")N.innerHTML=Y;else N.replaceChildren(Y);He(N)},A=(N,Y,y)=>{N.classList.toggle(d,Y),N.classList.toggle(S,y)},D=(N,Y)=>{let y=Math.round(Y.y-w());if(n)N.style.transform=`translate(${y}px, ${Math.round(Y.x)}px)`;else N.style.transform=`translate(${Math.round(Y.x)}px, ${y}px)`},Z=(N,Y)=>{if(n)N.style.width=`${Y.size}px`,N.style.height=`${Y.crossSize}px`;else N.style.width=`${Y.crossSize}px`,N.style.height=`${Y.size}px`},j=(N,Y,y,o,f)=>{let i=E.acquire(),T=Y.__groupHeader,F=x(o,f);if(i.className=T?L:b,i.dataset.index=String(N),i.dataset.id=String(Y.id),i.dataset.lane=String(y.lane),T)i.setAttribute("role","presentation"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-setsize"),i.removeAttribute("aria-posinset"),i.removeAttribute("id");else if(g===!0){if(i.setAttribute("role","option"),i.ariaSelected=String(o),a)i.id=`${a}-item-${N}`;if(u){let l=u();if(l!==C)C=l,c=String(l);i.setAttribute("aria-setsize",c);let p=r?r(N):N+1;i.setAttribute("aria-posinset",String(p))}}else if(i.setAttribute("role","listitem"),i.removeAttribute("aria-selected"),u){let l=u();if(l!==C)C=l,c=String(l);i.setAttribute("aria-setsize",c);let p=r?r(N):N+1;i.setAttribute("aria-posinset",String(p))}Z(i,y);let X=e(Y,N,F);return O(i,X),A(i,o,f),D(i,y),{element:i,lastItem:Y,lastSelected:o,lastFocused:f,lastY:y.y-w(),absY:y.y,lastX:y.x,lastSize:y.size,lastCrossSize:y.crossSize,lastSeenFrame:W}},J=(N,Y,y,o)=>{W++,V.clear();for(let i=0;i<Y.length;i++)V.add(Y[i].index);let f=null;for(let i=0;i<Y.length;i++){let T=Y[i],F=T.index,X=N(F);if(!X)continue;let l=y.has(X.id),p=F===o,v=_.get(F);if(v){let B=v.lastItem!==X,K=v.lastSelected!==l,h=v.lastFocused!==p,m=v.lastY!==T.y-w()||v.lastX!==T.x,H=v.lastSize!==T.size||v.lastCrossSize!==T.crossSize;if(B){let P=x(l,p),k=e(X,F,P);if(O(v.element,k),v.element.dataset.id=String(X.id),v.lastItem=X,!X.__groupHeader){let M=r?r(F):F+1;v.element.setAttribute("aria-posinset",String(M))}}if(B||K||h)A(v.element,l,p),v.element.ariaSelected=String(l),v.lastSelected=l,v.lastFocused=p;if(H)Z(v.element,T),v.lastSize=T.size,v.lastCrossSize=T.crossSize;if(m)D(v.element,T),v.lastY=T.y-w(),v.absY=T.y,v.lastX=T.x}else{let B=j(F,X,T,l,p);if(!f)f=document.createDocumentFragment();f.appendChild(B.element),_.set(F,B)}}if(f)t.appendChild(f);for(let[i,T]of _)if(V.has(i))T.lastSeenFrame=W;else if(W-T.lastSeenFrame>Tt)E.release(T.element),_.delete(i);else{let F=Math.round(T.absY-w());if(F!==T.lastY){T.lastY=F;let X=Math.round(T.lastX);T.element.style.transform=n?`translate(${F}px, ${X}px)`:`translate(${X}px, ${F}px)`}}},Q=()=>{for(let N of _.values())E.release(N.element);_.clear(),t.innerHTML=""};return{render:J,getElement:(N)=>_.get(N)?.element,updateItemClasses:(N,Y,y)=>{let o=_.get(N);if(!o)return;let f=o.lastSelected!==Y,i=o.lastFocused!==y;if(f||i)A(o.element,Y,y),o.lastSelected=Y,o.lastFocused=y},sortDOM:()=>{ke(t,_.keys(),(N)=>_.get(N)?.element)},clear:Q,destroy:()=>{Q(),E.clear()}}};var xt=(t,e)=>{let s=e;return{getOffset:(n)=>n*t,getSize:(n)=>t,indexAtOffset:(n)=>{if(s===0||t===0)return 0;return Math.max(0,Math.min(Math.floor(n/t),s-1))},getTotalSize:()=>s*t,getTotal:()=>s,rebuild:(n)=>{s=n},isVariable:()=>!1}},It=(t,e)=>{let s=e,n=new Float64Array(0),u=(r)=>{s=r,n=new Float64Array(r+1),n[0]=0;for(let g=0;g<r;g++)n[g+1]=n[g]+t(g)};u(e);let a=(r)=>{if(s===0)return 0;if(r<=0)return 0;if(r>=n[s])return s-1;let g=0,w=s-1;while(g<w){let E=g+w+1>>>1;if(n[E]<=r)g=E;else w=E-1}return g};return{getOffset:(r)=>{if(r<=0)return 0;if(r>=s)return n[s];return n[r]},getSize:(r)=>t(r),indexAtOffset:(r)=>a(r),getTotalSize:()=>n[s]??0,getTotal:()=>s,rebuild:(r)=>u(r),isVariable:()=>!0}},ut=(t,e)=>{if(typeof t==="number")return xt(t,e);return It(t,e)};var dt=()=>{let t={},e=(a,r)=>{if(!t[a])t[a]=new Set;return t[a].add(r),()=>s(a,r)},s=(a,r)=>{t[a]?.delete(r)};return{on:e,off:s,emit:(a,r)=>{t[a]?.forEach((g)=>{try{g(r)}catch(w){console.error(`[vlist] Error in event handler for "${String(a)}":`,w)}})},clear:(a)=>{if(a)delete t[a];else for(let r in t)delete t[r]}}};var _e=(t={})=>{let{chunkSize:e=100,maxCachedItems:s=5000,evictionBuffer:n=200,onEvict:u}=t,a=new Map,r=0,g=0,w=(y)=>{let o=a.get(y);if(!o)o={items:Array(e),count:0,lastAccess:Date.now()},a.set(y,o);else o.lastAccess=Date.now();return o},E=(y)=>Math.floor(y/e),_=(y)=>y%e,V=()=>r,W=(y)=>{r=y},c=(y)=>{if(y<0||y>=r)return;let o=E(y),f=a.get(o);if(!f)return;return f.items[_(y)]},C=(y)=>{if(y<0||y>=r)return!1;let o=E(y),f=a.get(o);if(!f)return!1;return f.items[_(y)]!==void 0},I=(y,o)=>{let f=E(y),i=w(f),T=_(y),F=i.items[T]===void 0;if(i.items[T]=o,F)i.count++,g++;if(y>=r)r=y+1},x=(y,o)=>{for(let f=0;f<o.length;f++){let i=o[f];if(i!==void 0)I(y+f,i)}},b=(y,o)=>{if(y<0||y>r)return;let f=E(y),i=Array.from(a.keys()).filter((p)=>p>=f).sort((p,v)=>p-v),T=[];for(let p of i){let v=a.get(p),B=p*e;for(let K=0;K<e;K++){if(v.items[K]===void 0)continue;let h=B+K;if(h<y)continue;T.push({oldIndex:h,item:v.items[K]})}}for(let{oldIndex:p}of T){let v=E(p),B=a.get(v);if(!B)continue;let K=_(p);if(B.items[K]!==void 0){if(B.items[K]=void 0,B.count--,g--,B.count===0)a.delete(v)}}r++;for(let{oldIndex:p,item:v}of T){let B=p+1,K=E(B),h=w(K),m=_(B);h.items[m]=v,h.count++,g++}let F=E(y),X=w(F),l=_(y);X.items[l]=o,X.count++,g++},L=(y)=>{if(y<0||y>=r)return!1;let o=E(y),f=a.get(o),i=_(y);if(!(f!==void 0&&f.items[i]!==void 0))return!1;let F=o,X=Array.from(a.keys()).filter((p)=>p>=F).sort((p,v)=>p-v),l=[];for(let p of X){let v=a.get(p),B=p*e;for(let K=0;K<e;K++){if(v.items[K]===void 0)continue;let h=B+K;if(h<=y)continue;l.push({oldIndex:h,item:v.items[K]})}}if(f.items[i]=void 0,f.count--,g--,f.count===0)a.delete(o);for(let{oldIndex:p}of l){let v=E(p),B=a.get(v);if(!B)continue;let K=_(p);if(B.items[K]!==void 0){if(B.items[K]=void 0,B.count--,g--,B.count===0)a.delete(v)}}for(let{oldIndex:p,item:v}of l){let B=p-1,K=E(B),h=w(K),m=_(B);h.items[m]=v,h.count++,g++}return r--,!0},d=(y,o)=>{let f=[];for(let i=y;i<=o&&i<r;i++)f.push(c(i));return f},S=(y,o)=>{for(let f=y;f<=o&&f<r;f++)if(!C(f))return!1;return!0},O=()=>{let y=[],o=null,f=Array.from(a.keys()).sort((i,T)=>i-T);for(let i of f){let T=a.get(i);if(!T)continue;let F=i*e;for(let X=0;X<e;X++){let l=F+X;if(l>=r)break;if(T.items[X]!==void 0)if(o===null)o={start:l,end:l};else if(l===o.end+1)o.end=l;else y.push(o),o={start:l,end:l};else if(o!==null)y.push(o),o=null}}if(o!==null)y.push(o);return y},A=(y,o)=>{let f=[],i=null;for(let T=y;T<=o&&T<r;T++)if(!C(T))if(i===null)i={start:T,end:T};else i.end=T;else if(i!==null)f.push(i),i=null;if(i!==null)f.push(i);return f},D=(y)=>a.has(y),Z=(y)=>{let o=a.get(y);if(!o)return!1;let f=y*e,i=Math.min(e,r-f);return o.count>=i},j=(y)=>{let o=a.get(y);if(o)o.lastAccess=Date.now()},J=(y,o)=>{if(y>o||a.size===0)return;let f=Date.now(),i=E(Math.max(0,y)),T=E(Math.min(r-1,o));for(let F=i;F<=T;F++){let X=a.get(F);if(X)X.lastAccess=f}},Q=(y,o)=>{if(g<=s)return 0;let f=Math.max(0,y-n),i=Math.min(r-1,o+n),T=E(f),F=E(i),X=0,l=[];for(let[p,v]of a)if(p<T||p>F)X+=v.count,l.push(p),g-=v.count,a.delete(p);if(X>0&&u)u(X,l);return X},ie=()=>{if(g<=s)return 0;let y=Array.from(a.entries()).sort(([,i],[,T])=>i.lastAccess-T.lastAccess),o=0,f=[];for(let[i,T]of y){if(g<=s)break;o+=T.count,g-=T.count,f.push(i),a.delete(i)}if(o>0&&u)u(o,f);return o},oe=()=>({totalItems:r,cachedItems:g,cachedChunks:a.size,chunkSize:e,maxCachedItems:s,memoryEfficiency:r>0?1-g/r:1}),de=()=>g,N=()=>{a.clear(),g=0};return{chunkSize:e,maxCachedItems:s,getTotal:V,setTotal:W,get:c,has:C,set:I,setRange:x,insert:b,delete:L,getRange:d,isRangeLoaded:S,getLoadedRanges:O,findUnloadedRanges:A,getChunkIndex:E,isChunkLoaded:D,isChunkFullyLoaded:Z,touchChunk:j,touchChunksForRange:J,evictDistant:Q,evictToLimit:ie,getStats:oe,getCachedCount:de,clear:N,reset:()=>{N(),r=0}}},De=(t)=>{if(t.length===0)return[];let e=[...t].sort((n,u)=>n.start-u.start),s=[{...e[0]}];for(let n=1;n<e.length;n++){let u=e[n],a=s[s.length-1];if(u.start<=a.end+1)a.end=Math.max(a.end,u.end);else s.push({...u})}return s},Fe=(t,e,s)=>{let n=Math.floor(t.start/s)*s,u=Math.ceil((t.end+1)/s)*s-1,a={start:n,end:u};if(e.length===0)return[a];let r=[],g=De(e),w=a.start;for(let E of g){if(E.end<w)continue;if(E.start>a.end)break;if(E.start>w)r.push({start:w,end:Math.min(E.start-1,a.end)});if(w=E.end+1,w>a.end)break}if(w<=a.end)r.push({start:w,end:a.end});return r};var Pe=(t={})=>{let{maskCharacter:e=Xe,maxSampleSize:s=je}=t,n=[],u=!1,a=(_)=>{if(u||_.length===0)return;let V=Math.min(_.length,s);for(let W=0;W<V;W++){let c=_[W];if(!c||typeof c!=="object")continue;let C={},I=!1;for(let[x,b]of Object.entries(c)){if(x.startsWith("_")||x==="id")continue;C[x]=String(b??"").length,I=!0}if(I)n.push(C)}u=!0},r=()=>u,g=(_)=>{let V={id:`${Ee}${_}`,[$e]:!0,_index:_};if(n.length===0)return V.label=e.repeat(12),V;let W=n[_%n.length];for(let[c,C]of Object.entries(W))V[c]=e.repeat(Math.max(1,C));return V};return{analyzeStructure:a,hasAnalyzedStructure:r,generate:g,generateRange:(_,V)=>{let W=[];for(let c=_;c<=V;c++)W.push(g(c));return W},clear:()=>{n=[],u=!1}}},Ce=(t)=>{if(!t||typeof t!=="object")return!1;return t[$e]===!0},Ve=(t)=>t.filter((e)=>!Ce(e));var Et=50,mt=(t={})=>{let{adapter:e,initialItems:s,initialTotal:n,storage:u,placeholder:a,pageSize:r=Et,maxConcurrent:g=0,onStateChange:w,onDataChange:E,onItemsLoaded:_,onItemsEvicted:V,onLoadError:W}=t,c=_e({...u,onEvict:(R,G)=>{V?.(R),Q(),J()}}),C=null,I=()=>{if(!C)C=Pe(a);return C},x=new Map,b=!1,L,d=!0,S,O,A=[],D=0,Z=new Map,j=()=>{for(let R of Z.values())R[1].abort();Z.clear()},J=()=>{w?.(i())},Q=()=>{E?.()},ie=()=>{x.clear();let R=c.getLoadedRanges();for(let G of R)for(let ee=G.start;ee<=G.end;ee++){let z=c.get(ee);if(z&&!Ce(z))x.set(z.id,ee)}},oe=(R,G)=>{if(!Ce(G))x.set(G.id,R)},de=(R)=>{x.delete(R)},N=(R,G)=>`${R}-${G}`,Y=()=>c.getTotal(),y=()=>c.getCachedCount(),o=()=>b,f=()=>d,i=()=>({total:c.getTotal(),cached:c.getCachedCount(),isLoading:b,pendingRanges:A,error:L,hasMore:d,cursor:S}),T=()=>c,F=()=>I(),X=(R)=>{let G=c.get(R);if(G!==void 0)return G;if(R>=0&&R<c.getTotal())return I().generate(R);return},l=(R)=>{let G=x.get(R);if(G===void 0)return;return c.get(G)},p=(R)=>x.get(R)??-1,v=(R)=>{let G=c.get(R);return G!==void 0&&!Ce(G)},B=(R,G)=>{let ee=[],z=c.getTotal();c.touchChunksForRange(R,Math.min(G,z-1));for(let le=R;le<=G&&le<z;le++){let ye=c.get(le);if(ye!==void 0)ee.push(ye);else ee.push(I().generate(le))}return ee},K=(R)=>{c.setTotal(R),d=c.getCachedCount()<R,Q(),J()},h=(R,G=0,ee)=>{if(e&&R.length>0){let z=I();if(!z.hasAnalyzedStructure())z.analyzeStructure(R)}for(let z=0;z<R.length;z++){let le=R[z];if(le!==void 0){let ye=G+z;c.set(ye,le),oe(ye,le)}}if(ee!==void 0)c.setTotal(ee);else if(G+R.length>c.getTotal())c.setTotal(G+R.length);if(c.getCachedCount()>=c.getTotal()&&c.getTotal()>0)d=!1;Q(),J(),_?.(R,G,c.getTotal())},m=(R,G)=>{let ee=c.get(R);if(!ee)return!1;let z=ee.id,le={...ee,...G};if(c.set(R,le),G.id!==void 0&&G.id!==z)de(z);return oe(R,le),Q(),J(),!0},H=(R,G)=>{c.insert(G,R),ie(),j(),Q(),J()},P=(R)=>{let G=x.get(R);if(G===void 0)return!1;if(!c.delete(G))return!1;return ie(),j(),Q(),J(),!0},k=async(R,G)=>{if(!e)return;let ee=c.chunkSize,z=Math.floor(R/ee),le=Math.floor(G/ee),ye=ee*2;for(let[re,fe]of Z){let be=re.indexOf("-"),xe=parseInt(re.slice(0,be),10);if(Math.abs(xe-R)>ye)fe[1].abort(),Z.delete(re)}let pe=[],ve=[];for(let re=z;re<=le;re++){let fe=re*ee,be=fe+ee-1,xe=N(fe,be);if(c.isChunkFullyLoaded(re))continue;let he=Z.get(xe);if(he)ve.push(he[0]);else pe.push({start:fe,end:be})}if(pe.length===0){if(ve.length>0)await Promise.all(ve);return}if(g>0){let re=Z.size+pe.length;if(re>g){let fe=(R+G)/2,be=Math.min(re-g,Z.size);while(be>0){let ce=null,he=-1,Se=null;for(let[U,ue]of Z){let me=U.indexOf("-"),ge=parseInt(U.slice(0,me),10),Le=parseInt(U.slice(me+1),10),Ie=Math.abs((ge+Le)/2-fe);if(Ie>he)he=Ie,ce=U,Se=ue[1]}if(ce)Se.abort(),Z.delete(ce);be--}let xe=g-Z.size;if(pe.length>xe)pe.sort((ce,he)=>{let Se=Math.abs((ce.start+ce.end)/2-fe),U=Math.abs((he.start+he.end)/2-fe);return Se-U}),pe.length=Math.max(0,xe)}}if(pe.length===0){if(ve.length>0)await Promise.all(ve);return}for(let re of pe){let fe=N(re.start,re.end),be=new AbortController,xe=(async()=>{A.push(re),b=!0,L=void 0,J();try{let ce=re.end-re.start+1,he={offset:re.start,limit:ce,cursor:re.start===O?S:void 0,signal:be.signal},Se=await e.read(he);if(h(Se.items,re.start,Se.total),Se.cursor)S=Se.cursor,O=re.start+Se.items.length;let U=re.start+Se.items.length;if(U>=D){if(D=U,Se.hasMore!==void 0)d=Se.hasMore;else if(Se.total!==void 0)d=U<Se.total}}catch(ce){if(ce?.name==="AbortError")return;L=ce instanceof Error?ce:Error(String(ce)),W?.(L,re)}finally{Z.delete(fe);let ce=A.findIndex((he)=>he.start===re.start&&he.end===re.end);if(ce>=0)A.splice(ce,1);b=Z.size>0,J()}})();Z.set(fe,[xe,be]),ve.push(xe)}await Promise.all(ve)},q=async(R,G)=>{if(c.isRangeLoaded(R,G))return;await k(R,G)},M=async()=>{if(!e)return;await k(0,r-1)},te=async()=>{if(!e||b||!d)return!1;let R=c.getCachedCount(),G=c.getTotal(),ee=R,z=Math.min(ee+r-1,G>0?G-1:ee+r-1);if(ee>=G&&G>0)return d=!1,!1;return await k(ee,z),c.getCachedCount()>R},se=async()=>{if(c.clear(),x.clear(),C)C.clear();j(),A=[],b=!1,S=void 0,O=void 0,d=!0,D=0,L=void 0,Q(),J()},ne=(R,G)=>{if(c.evictDistant(R,G)>0)ie()},Te=()=>{c.clear(),x.clear(),S=void 0,O=void 0,L=void 0,A=[],b=!1,Q(),J()},ae=()=>{if(c.reset(),x.clear(),C)C.clear();S=void 0,O=void 0,d=!0,D=0,L=void 0,A=[],b=!1,Q(),J()};if(s&&s.length>0)h(s,0,n??s.length);else if(n!==void 0)c.setTotal(n),Q(),J();return{getState:i,getTotal:Y,getCached:y,getIsLoading:o,getHasMore:f,getStorage:T,getPlaceholders:F,getItem:X,getItemById:l,getIndexById:p,isItemLoaded:v,getItemsInRange:B,setTotal:K,setItems:h,updateItem:m,insertItem:H,removeItem:P,loadRange:k,ensureRange:q,loadInitial:M,loadMore:te,reload:se,evictDistant:ne,clear:Te,reset:ae}};var Ct=(t)=>{if(typeof t!=="object"){let e=t??2;return{top:e,right:e,bottom:e,left:e}}return{top:t.top??2,right:t.right??2,bottom:t.bottom??2,left:t.left??2}},ft=(t,e,s={},n="vlist",u=!1,a)=>{let{autoHide:r=!0,autoHideDelay:g=1000,minThumbSize:w=15,showOnHover:E=!0,showOnViewportEnter:_=!0,clickBehavior:V="scroll"}=s,W=V==="page"?"scroll":V,c=a??t,C=Ct(s.padding),I=u?C.left:C.top,x=u?C.right:C.bottom,b=u?C.bottom:C.right,L=s.hoverZoneWidth??b+16,d=0,S=0,O=0,A=0,D=!1,Z=!1,j=0,J=0,Q=0,ie=null,oe=!1,de=null,N=0,Y=0,y=null,o=null,f=null,i=u?"width":"height",T=u?"translateX":"translateY",F=u?(U)=>U.clientX:(U)=>U.clientY,X=u?"left":"top",l=document.createElement("div"),p=document.createElement("div"),v=document.createElement("div"),B=u?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",K=()=>{if(c===t)return;let U=t.offsetTop;l.style[u?"left":"top"]=U?`calc(var(${B}) + ${U}px)`:`var(${B})`,v.style[u?"left":"top"]=`${U}px`},h=()=>{if(l.className=`${n}-scrollbar`,p.className=`${n}-scrollbar__thumb`,u)l.classList.add(`${n}-scrollbar--horizontal`);if(s.padding!==void 0)c.style.setProperty("--vlist-custom-scrollbar-padding-top",`${C.top}px`),c.style.setProperty("--vlist-custom-scrollbar-padding-right",`${C.right}px`),c.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${C.bottom}px`),c.style.setProperty("--vlist-custom-scrollbar-padding-left",`${C.left}px`);if(s.minThumbSize!==void 0)l.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${w}px`);if(l.appendChild(p),c.appendChild(l),v.className=`${n}-scrollbar__hover`,u)v.classList.add(`${n}-scrollbar__hover--horizontal`),v.style.height=`${L}px`;else v.style.width=`${L}px`;if(c.appendChild(v),c!==t)K()},m=()=>{if(ie)clearTimeout(ie),ie=null},H=()=>{if(!r)return;m(),ie=setTimeout(k,g)},P=()=>{if(d<=S)return;if(m(),!oe)l.classList.add(`${n}-scrollbar--visible`),oe=!0;if(r&&!D&&!Z)H()},k=()=>{if(D||Z)return;l.classList.remove(`${n}-scrollbar--visible`),oe=!1},q=(U,ue)=>{if(d=U,S=ue,K(),d<=S){l.style.display="none",k();return}l.style.display="";let me=Math.max(0,S-I-x),ge=S/d;if(O=Math.max(w,ge*me),p.style[i]=`${O}px`,A=me-O,M(Q),!r)P()},M=(U)=>{if(Q=U,d<=S||A<=0)return;let ue=d-S,me=Math.min(1,Math.max(0,U/ue));p.style.transform=`${T}(${me*A}px)`},te=(U)=>{if(U.target===p||W!=="jump"||A<=0)return;let ue=d-S,me=l.getBoundingClientRect(),ge=F(U)-me[X],Le=Math.max(0,Math.min(ge-O/2,A));e(Le/A*ue),P()},se=()=>{if(y!==null)clearTimeout(y),y=null;if(o!==null)cancelAnimationFrame(o),o=null;f=null},ne=(U)=>{let ue=A>0?Y/U*A:0;if(N<ue)return-1;if(N>=ue+O)return 1;return 0},Te=()=>{let U=d-S,ue=ne(U);if(ue===0){se();return}if(ue===-1){if(Y<=0){se();return}let me=Math.max(0,Y-S);Y=me,e(me)}else{if(Y>=U){se();return}let me=Math.min(U,Y+S);Y=me,e(me)}P()},ae=(U)=>{if(f===null){f=U,o=requestAnimationFrame(ae);return}let ue=d-S,me=U-f;f=U;let ge=ne(ue);if(ge===0){se();return}let Le=12*S/1000,Ie=Math.min(Le*me,S);if(ge===-1){if(Y<=0){se();return}let Ae=Math.max(0,Y-Ie);Y=Ae,e(Ae)}else{if(Y>=ue){se();return}let Ae=Math.min(ue,Y+Ie);Y=Ae,e(Ae)}m(),o=requestAnimationFrame(ae)},R=()=>{se(),H(),document.removeEventListener("mouseup",R)},G=(U)=>{if(U.target===p||W!=="scroll")return;U.preventDefault();let ue=l.getBoundingClientRect();N=F(U)-ue[X],Y=Q,Te(),y=setTimeout(()=>{o=requestAnimationFrame(ae)},350),document.addEventListener("mouseup",R)},ee=(U)=>{U.preventDefault(),U.stopPropagation(),D=!0,j=F(U),J=Q,m(),l.classList.add(`${n}-scrollbar--dragging`),document.addEventListener("mousemove",z),document.addEventListener("mouseup",le)},z=(U)=>{if(!D)return;let ue=F(U)-j,me=A>0?ue/A:0,ge=d-S,Le=me*ge,Ie=Math.max(0,Math.min(J+Le,ge));p.style.transform=`${T}(${Ie/ge*A}px)`,e(Ie)},le=()=>{if(D=!1,l.classList.remove(`${n}-scrollbar--dragging`),r&&!Z)H();document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",le)},ye=u?(U)=>U.touches[0].clientX:(U)=>U.touches[0].clientY,pe=(U)=>{U.stopPropagation(),D=!0,j=ye(U),J=Q,m(),l.classList.add(`${n}-scrollbar--dragging`)},ve=(U)=>{if(!D)return;U.preventDefault();let ue=ye(U)-j,me=A>0?ue/A:0,ge=d-S,Le=me*ge,Ie=Math.max(0,Math.min(J+Le,ge));p.style.transform=`${T}(${Ie/ge*A}px)`,e(Ie)},re=()=>{if(D=!1,l.classList.remove(`${n}-scrollbar--dragging`),r)H()},fe=(U)=>{if(U.target===p)return;if(A<=0)return;let ue=U.touches[0],me=l.getBoundingClientRect(),ge=(u?ue.clientX:ue.clientY)-me[X];if(W==="jump"){let Le=d-S,Ie=Math.max(0,Math.min(ge-O/2,A));e(Ie/A*Le)}else N=ge,Y=Q,Te();P()},be=()=>{if(_)P()},xe=()=>{if(!D){if(Z=!1,r)H()}},ce=()=>{Z=!0,m(),P()},he=()=>{if(Z=!1,!D&&r)H()},Se=()=>{if(m(),se(),de!==null)cancelAnimationFrame(de),de=null;l.removeEventListener("click",te),l.removeEventListener("mousedown",G),l.removeEventListener("mouseenter",ce),document.removeEventListener("mouseup",R),l.removeEventListener("mouseleave",he),l.removeEventListener("touchstart",fe),p.removeEventListener("mousedown",ee),p.removeEventListener("touchstart",pe),p.removeEventListener("touchmove",ve),p.removeEventListener("touchend",re),t.removeEventListener("mouseenter",be),t.removeEventListener("mouseleave",xe),document.removeEventListener("mousemove",z),document.removeEventListener("mouseup",le),v.removeEventListener("click",te),v.removeEventListener("mousedown",G),v.removeEventListener("mouseenter",ce),v.removeEventListener("mouseleave",he),v.remove(),c.style.removeProperty("--vlist-custom-scrollbar-padding-top"),c.style.removeProperty("--vlist-custom-scrollbar-padding-right"),c.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),c.style.removeProperty("--vlist-custom-scrollbar-padding-left"),l.remove()};if(h(),l.addEventListener("click",te),l.addEventListener("mousedown",G),l.addEventListener("mouseenter",ce),l.addEventListener("mouseleave",he),l.addEventListener("touchstart",fe,{passive:!0}),p.addEventListener("mousedown",ee),p.addEventListener("touchstart",pe,{passive:!0}),p.addEventListener("touchmove",ve,{passive:!1}),p.addEventListener("touchend",re,{passive:!0}),t.addEventListener("mouseenter",be),t.addEventListener("mouseleave",xe),v.addEventListener("click",te),v.addEventListener("mousedown",G),E)v.addEventListener("mouseenter",ce),v.addEventListener("mouseleave",he);return{show:P,hide:k,updateBounds:q,updatePosition:M,isVisible:()=>oe,destroy:Se}};var Mt=50,At=0.1;function Ht(t){let e=0,s=0,n=0;function u(){return n>0?s/n:0}function a(w){if(e=w,w>At&&w<Mt)s+=w,n++}function r(){let w=t.getTotal();if(w===0)return 0;let E=t.getItemSize();if(E<=0)return 0;let _=t.getContainerSize();if(_<=0)return 0;let V=t.getScrollPosition(),W=typeof t.getColumns==="function"?t.getColumns():1,C=Math.ceil(w/W)*E,x=Math.min(C,qe)-_,b=C-_,L=x>0?b/x:1,d=V*L,S=Math.ceil((d+_)/E);return Math.min(S*W,w)}function g(){let w=t.getTotal(),E=r();return{progress:w>0?Math.min(100,Math.max(0,E/w*100)):0,velocity:e,velocityAvg:u(),itemCount:E,total:w}}return{getState:g,onVelocity:a}}export{We as buildLayoutItems,Fe as calculateMissingRanges,tt as clearSelection,mt as createAsyncManager,dt as createEmitter,Ze as createGridLayout,ht as createGridRenderer,Ue as createGroupLayout,Ke as createGroupedSizeFn,lt as createMasonryLayout,ct as createMasonryRenderer,Pe as createPlaceholderManager,ft as createScrollbar,Je as createSelectionState,ut as createSizeCache,_e as createSparseStorage,Ht as createStats,Ye as createStickyHeader,at as createTableHeader,st as createTableLayout,it as createTableRenderer,Ge as deselectItems,Ve as filterPlaceholders,rt as getSelectedIds,ot as getSelectedItems,Re as isGroupHeader,Ce as isPlaceholderItem,nt as isSelected,De as mergeRanges,et as selectAll,ze as selectItems,Qe as toggleSelection};
package/dist/size.json CHANGED
@@ -1 +1 @@
1
- {"base":{"minified":"27.6","gzipped":"9.8","minBytes":28310,"gzBytes":10068},"a11y":{"minified":"30.9","gzipped":"11.0","minBytes":31644,"gzBytes":11301},"selection":{"minified":"37.0","gzipped":"12.7","minBytes":37927,"gzBytes":12964},"data":{"minified":"41.3","gzipped":"14.7","minBytes":42263,"gzBytes":15003},"scrollbar":{"minified":"34.7","gzipped":"11.8","minBytes":35580,"gzBytes":12133},"sortable":{"minified":"37.1","gzipped":"12.8","minBytes":37970,"gzBytes":13143},"groups":{"minified":"43.6","gzipped":"15.2","minBytes":44652,"gzBytes":15535},"page":{"minified":"30.1","gzipped":"10.6","minBytes":30796,"gzBytes":10848},"snapshots":{"minified":"30.9","gzipped":"11.0","minBytes":31664,"gzBytes":11242},"transition":{"minified":"34.4","gzipped":"11.7","minBytes":35242,"gzBytes":11954},"autosize":{"minified":"30.6","gzipped":"10.8","minBytes":31316,"gzBytes":11101},"grid":{"minified":"34.7","gzipped":"12.3","minBytes":35499,"gzBytes":12565},"table":{"minified":"45.9","gzipped":"15.7","minBytes":47050,"gzBytes":16032},"masonry":{"minified":"38.7","gzipped":"13.9","minBytes":39648,"gzBytes":14183},"tree":{"minified":"42.8","gzipped":"14.8","minBytes":43816,"gzBytes":15199},"search":{"minified":"36.7","gzipped":"13.0","minBytes":37630,"gzBytes":13307},"carousel":{"minified":"37.1","gzipped":"13.3","minBytes":38019,"gzBytes":13611}}
1
+ {"base":{"minified":"27.8","gzipped":"9.9","minBytes":28421,"gzBytes":10106},"synthetic":{"minified":"35.0","gzipped":"12.5","minBytes":35888,"gzBytes":12764},"a11y":{"minified":"31.0","gzipped":"11.1","minBytes":31753,"gzBytes":11336},"selection":{"minified":"37.1","gzipped":"12.7","minBytes":38030,"gzBytes":12989},"data":{"minified":"41.4","gzipped":"14.7","minBytes":42378,"gzBytes":15034},"scrollbar":{"minified":"34.8","gzipped":"11.9","minBytes":35686,"gzBytes":12164},"sortable":{"minified":"37.2","gzipped":"12.9","minBytes":38099,"gzBytes":13194},"groups":{"minified":"43.7","gzipped":"15.2","minBytes":44759,"gzBytes":15564},"page":{"minified":"30.2","gzipped":"10.6","minBytes":30907,"gzBytes":10881},"snapshots":{"minified":"31.0","gzipped":"11.0","minBytes":31775,"gzBytes":11288},"transition":{"minified":"34.4","gzipped":"11.8","minBytes":35208,"gzBytes":12123},"autosize":{"minified":"30.7","gzipped":"10.9","minBytes":31411,"gzBytes":11143},"grid":{"minified":"34.8","gzipped":"12.3","minBytes":35665,"gzBytes":12628},"table":{"minified":"46.1","gzipped":"15.7","minBytes":47219,"gzBytes":16074},"masonry":{"minified":"39.0","gzipped":"14.0","minBytes":39947,"gzBytes":14298},"tree":{"minified":"43.0","gzipped":"14.9","minBytes":44006,"gzBytes":15252},"search":{"minified":"36.9","gzipped":"13.0","minBytes":37743,"gzBytes":13361},"carousel":{"minified":"37.2","gzipped":"13.3","minBytes":38126,"gzBytes":13644}}
@@ -0,0 +1,8 @@
1
+ /** RFC-014 input provider. No native main-axis scroll position writes. */
2
+ import type { BoundedScrollConfig, BoundedScrollHandler } from "../core/runway";
3
+ type SyntheticScrollConfig = BoundedScrollConfig & {
4
+ readonly sizeCache: NonNullable<BoundedScrollConfig["sizeCache"]>;
5
+ };
6
+ export declare function createSyntheticScrollHandler(config: SyntheticScrollConfig): BoundedScrollHandler;
7
+ export {};
8
+ //# sourceMappingURL=handler.d.ts.map
@@ -0,0 +1,28 @@
1
+ /** RFC-014 signed motion model, ported from the reviewed standalone prototype. */
2
+ export declare const IDLE = 0, PENDING = 1, TRACKING = 2, INERTIA = 3, ANIMATING = 4, CANCELLED = 5;
3
+ export type MotionState = 0 | 1 | 2 | 3 | 4 | 5;
4
+ export interface MotionOptions {
5
+ getMax: () => number;
6
+ onChange?: (position: number) => void;
7
+ onFinish?: () => void;
8
+ axis?: "x" | "y";
9
+ reducedMotion: () => boolean;
10
+ }
11
+ export declare function createMotion({ getMax, onChange, onFinish, axis, reducedMotion }: MotionOptions): {
12
+ readonly position: number;
13
+ readonly state: MotionState;
14
+ readonly velocity: number;
15
+ readonly active: boolean;
16
+ begin(id: number, x: number, y: number, time: number): void;
17
+ move(id: number, x: number, y: number, time: number): boolean;
18
+ end(id: number, time: number): void;
19
+ cancel: () => void;
20
+ reset(): void;
21
+ jump: (value: number) => void;
22
+ shiftBy(delta: number): void;
23
+ by(delta: number): boolean;
24
+ smooth(value: number | (() => number), milliseconds?: number, easing?: (t: number) => number): void;
25
+ resize(): void;
26
+ tick(time: number): void;
27
+ };
28
+ //# sourceMappingURL=motion.d.ts.map
@@ -0,0 +1,9 @@
1
+ import type { CreateVListConfig, VList, VListPlugin } from "./core/types";
2
+ import type { ScrollConfig, VListItem } from "./types";
3
+ export type SyntheticVListConfig<T extends VListItem = VListItem> = Omit<CreateVListConfig<T>, "scroll"> & {
4
+ scroll?: Omit<ScrollConfig, "mode"> & {
5
+ mode?: "native" | "bounded" | "synthetic";
6
+ };
7
+ };
8
+ export declare function createVList<T extends VListItem = VListItem>(config: SyntheticVListConfig<T>, plugins?: VListPlugin<T>[]): VList<T>;
9
+ //# sourceMappingURL=synthetic.d.ts.map
@@ -0,0 +1 @@
1
+ function Be(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let n=0;n<t.length;n++)t[n].setAttribute("tabindex","-1")}function Pe(e){if(typeof e==="string"){let t=document.querySelector(e);if(!t)throw Error(`[vlist] Container not found: ${e}`);return t}return e}function ct(e,t,n,r){let l=n?`${t} ${t}--horizontal`:t,u=n?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",i=n?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",d=' role="list"';if(r)d+=` aria-label="${r.replace(/"/g,"&quot;")}"`;if(n)d+=' aria-orientation="horizontal"';e.insertAdjacentHTML("beforeend",`<div class="${l}"><div class="${t}-viewport" style="${u}" tabindex="-1"><div class="${t}-content" style="${i}"${d}></div></div></div>`);let T=e.lastElementChild,x=T.firstElementChild,F=x.firstElementChild,I=document.createElement("div");return I.className=`${t}-live`,I.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",I.setAttribute("aria-live","polite"),I.setAttribute("aria-atomic","true"),I.setAttribute("role","status"),T.appendChild(I),{root:T,viewport:x,content:F,liveRegion:I}}var Ce=3,ut="vlist";var We=16000000,le=150,Ee=1,pe=(e)=>e<0.5?2*e*e:1-(-2*e+2)**2/2,dt=300,mt=2,ft=1.5,pt=0.25,bt=0.75;var Ae="__placeholder_";var Me={top:0,right:0,bottom:0,left:0},vt=(e)=>{if(e==null)return Me;if(typeof e==="number")return e===0?Me:{top:e,right:e,bottom:e,left:e};if(e.length===2){let[u,i]=e;return u===0&&i===0?Me:{top:u,right:i,bottom:u,left:i}}let[t,n,r,l]=e;return t===0&&n===0&&r===0&&l===0?Me:{top:t,right:n,bottom:r,left:l}},gt=(e,t)=>t?e.left+e.right:e.top+e.bottom,ht=(e,t)=>t?e.top+e.bottom:e.left+e.right;function St(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(n,r,l=Ce){if(r<=0||n<=0)return;let u=Math.ceil(n/r)+l*2;if(u<=t.capacity)return;let i=u+8,d=new Int32Array(i),T=new Float64Array(i),x=new Float64Array(i);d.set(t.visibleIndices),T.set(t.visibleOffsets),x.set(t.visibleSizes),t.visibleIndices=d,t.visibleOffsets=T,t.visibleSizes=x,t.capacity=i},clear(){t.visibleCount=0,t.startIndex=0}};return t}var $t=(e,t)=>{let n=t;return{getOffset:(r)=>r*e,getSize:(r)=>e,indexAtOffset:(r)=>{if(n===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(r/e),n-1))},getTotalSize:()=>n*e,getTotal:()=>n,rebuild:(r)=>{n=r},isVariable:()=>!1}},Ut=(e,t)=>{let n=t,r=new Float64Array(0),l=(i)=>{n=i,r=new Float64Array(i+1),r[0]=0;for(let d=0;d<i;d++)r[d+1]=r[d]+e(d)};l(t);let u=(i)=>{if(n===0)return 0;if(i<=0)return 0;if(i>=r[n])return n-1;let d=0,T=n-1;while(d<T){let x=d+T+1>>>1;if(r[x]<=i)d=x;else T=x-1}return d};return{getOffset:(i)=>{if(i<=0)return 0;if(i>=n)return r[n];return r[i]},getSize:(i)=>e(i),indexAtOffset:(i)=>u(i),getTotalSize:()=>r[n]??0,getTotal:()=>n,rebuild:(i)=>l(i),isVariable:()=>!0}},ze=(e,t)=>{if(typeof e==="number")return $t(e,t);return Ut(e,t)};function Et(e){let t=[],n=`${e}-item`,r=document.createElement("div");return r.className=n,{acquire(){if(t.length>0)return t.pop();return r.cloneNode(!1)},release(l){if(l.className=n,l.removeAttribute("style"),l.removeAttribute("id"),l.removeAttribute("role"),l.removeAttribute("aria-selected"),l.removeAttribute("aria-posinset"),l.removeAttribute("aria-setsize"),l.removeAttribute("data-index"),l.removeAttribute("data-id"),l.textContent="",t.length<100)t.push(l)},get size(){return t.length},clear(){t.length=0}}}function yt(e){let{state:t,viewport:n,isX:r,wheelEnabled:l,onFrame:u,onIdle:i}=e,d=e.idleTimeout||le,T=e.scrollTarget??n,x=null,F=null;function I(){let c=r?n.scrollLeft:n.scrollTop;if(Math.abs(c-t.scrollPosition)<0.5)return;t.prevScrollPosition=t.scrollPosition,t.scrollPosition=c,t.scrollDirection=c>t.prevScrollPosition?1:c<t.prevScrollPosition?-1:0,u(),w()}function v(c){let H;if(r){if(Math.abs(c.deltaX)>Math.abs(c.deltaY))return;let b=n.scrollLeft,P=n.scrollWidth-n.clientWidth;if(H=Math.max(0,Math.min(b+c.deltaY*Ee,P)),Math.abs(H-b)<1)return;c.preventDefault(),n.scrollLeft=H}else{let b=n.scrollWidth>n.clientWidth;if(b&&Math.abs(c.deltaX)>Math.abs(c.deltaY))return;if(b&&c.deltaX!==0)c.preventDefault(),n.scrollLeft+=c.deltaX;let P=n.scrollTop,M=n.scrollHeight-n.clientHeight;if(H=Math.max(0,Math.min(P+c.deltaY*Ee,M)),Math.abs(H-P)<1)return;c.preventDefault(),n.scrollTop=H}t.prevScrollPosition=t.scrollPosition,t.scrollPosition=H,t.scrollDirection=H>t.prevScrollPosition?1:-1,u(),w()}function w(){if(x!==null)clearTimeout(x);x=setTimeout(()=>{x=null,t.scrollDirection=0,i()},d)}function _(){if(F!==null)cancelAnimationFrame(F),F=null}function k(c,H,b,P=pe,M){_();let a=t.scrollPosition,S=typeof c==="function"?c:()=>c,R=S();if(Math.abs(R-a)<1){if(b)b(R);else if(r)n.scrollLeft=R;else n.scrollTop=R;M?.();return}let C=performance.now();function z(p){R=S();let B=p-C,y=Math.min(B/H,1),E=a+(R-a)*P(y);if(b)b(E);else if(r)n.scrollLeft=E;else n.scrollTop=E;if(!b)t.scrollPosition=E;if(u(),y<1)F=requestAnimationFrame(z);else F=null,w(),M?.()}F=requestAnimationFrame(z)}return{attach(){if(T.addEventListener("scroll",I,{passive:!0}),l)T.addEventListener("wheel",v,{passive:!1})},detach(){if(T.removeEventListener("scroll",I),l)T.removeEventListener("wheel",v);if(_(),x!==null)clearTimeout(x),x=null},cancelScroll:_,smoothScrollTo:k}}function be(e,t,n){if(e<t)return t;if(e>n)return n;return e}function xt(e){let{state:t,viewport:n,content:r,isX:l,wheelEnabled:u,onFrame:i,onIdle:d,mainAxisPadding:T}=e,x=e.idleTimeout||le,F=e.runwayFactor??mt,I=e.wrap??null,v=I!==null,w=e.scrollTarget??n,_=0,k=0,c=0,H=null,b=null;function P(){return l?n.scrollLeft:n.scrollTop}function M(h){if(l)n.scrollLeft=h;else n.scrollTop=h}function a(h){let f=v?h:be(h,0,k);t.prevScrollPosition=t.scrollPosition,t.scrollPosition=f,t.scrollDirection=f>t.prevScrollPosition?1:f<t.prevScrollPosition?-1:0;let L=_/2;if(v){t.baseOffset=f-L,M(L);return}let A=be(f-L,0,c);t.baseOffset=A,M(be(f-A,0,_))}function S(h){a(h),i(),B()}function R(){let h=P(),f=t.baseOffset+h;if(Math.abs(f-t.scrollPosition)<0.5)return;if(t.prevScrollPosition=t.scrollPosition,t.scrollPosition=f,t.scrollDirection=f>t.prevScrollPosition?1:f<t.prevScrollPosition?-1:0,C(h),v)z();i(),B()}function C(h){let f=_*pt,L=_*bt,A=_/2;if(v){if(h>=f&&h<=L)return;t.baseOffset=t.scrollPosition-A,M(A);return}if(c<=0)return;let O=t.baseOffset,K=h<f&&O>0,Q=h>L&&O<c;if(!K&&!Q)return;let G=t.scrollPosition,X=be(G-A,0,c);if(X===O)return;t.baseOffset=X,M(be(G-X,0,_))}function z(){let h=I.lapSize();if(h<=0)return;let f=t.scrollPosition-I.home(),L=Math.trunc(f/h);if(Math.abs(L)<I.thresholdLaps)return;let A=L*h;t.scrollPosition-=A,t.prevScrollPosition-=A,t.baseOffset-=A}function p(h){let f;if(l)if(Math.abs(h.deltaX)>Math.abs(h.deltaY)){if(!v)return;f=h.deltaX}else f=h.deltaY;else{let K=n.scrollWidth>n.clientWidth;if(K&&Math.abs(h.deltaX)>Math.abs(h.deltaY))return;if(K&&h.deltaX!==0)h.preventDefault(),n.scrollLeft+=h.deltaX;f=h.deltaY}let L=t.scrollPosition,A=L+f*Ee,O=v?A:be(A,0,k);if(Math.abs(O-L)<1)return;if(h.preventDefault(),S(O),v)z()}function B(){if(H!==null)clearTimeout(H);H=setTimeout(()=>{H=null,t.scrollDirection=0,d()},x)}function y(){if(b!==null)cancelAnimationFrame(b),b=null}function E(h,f,L,A=pe,O){y();let K=t.scrollPosition,Q=typeof h==="function"?h:()=>h,G=Q();if(Math.abs(G-K)<1){S(G),O?.();return}let X=performance.now();function te(q){G=Q();let ne=Math.min((q-X)/f,1);if(a(K+(G-K)*A(ne)),i(),ne<1)b=requestAnimationFrame(te);else b=null,B(),O?.()}b=requestAnimationFrame(te)}function N(h){let f=t.containerSize,L=h+T,A=f*F,O=v?A:Math.min(L,A);_=Math.max(0,O-f),k=Math.max(0,L-f),c=Math.max(0,L-O),t.totalSize=h,r.style[l?"width":"height"]=O+"px",a(t.scrollPosition)}return{attach(){if(w.addEventListener("scroll",R,{passive:!0}),u)w.addEventListener("wheel",p,{passive:!1})},detach(){if(w.removeEventListener("scroll",R),u)w.removeEventListener("wheel",p);if(y(),H!==null)clearTimeout(H),H=null},cancelScroll:y,smoothScrollTo:E,setLogical:S,getLogical(){return t.scrollPosition},getMaxLogical(){return k},refresh:N}}function Kt(e,t){if(e.getTotal()<=0)return{index:0,offsetPx:0};let r=t<=0?0:t,l=e.indexAtOffset(r),u=r-e.getOffset(l);return{index:l,offsetPx:u>0?u:0}}function Yt(e,t){let n=Xt(e,t);return e.getOffset(n.index)+n.offsetPx}function Xt(e,t){let n=e.getTotal();if(n<=0)return{index:0,offsetPx:0};let{index:r,offsetPx:l}=t;if(r<0)return{index:0,offsetPx:0};if(r>n-1)r=n-1;while(l>0&&r<n-1){let u=e.getSize(r);if(l<u)break;l-=u,r++}while(l<0&&r>0)r--,l+=e.getSize(r);if(l<0)l=0;return{index:r,offsetPx:l}}function Tt(e){let{sizeCache:t,getPixel:n,setPixel:r,getContainerSize:l}=e;function u(){let d=t.getTotalSize()-l();return d>0?d:0}function i(d){if(d<=0)return 0;let T=u();return d>T?T:d}return{getLogical(){return Kt(t,n())},setLogical(d){r(i(Yt(t,d)))},getPixelEquivalent(){return n()},setPixelEquivalent(d){r(i(d))},getMaxPixelEquivalent:u,scrollByPx(d){r(i(n()+d))}}}var ye=[],Gt={calculate:ye,commit:ye,afterScroll:ye,idle:ye,resize:ye};function It(e){if(e.length===0)return Gt;let t=[],n=[],r=[],l=[],u=[];for(let i=0;i<e.length;i++){let d=e[i].hooks;if(d===void 0)continue;if(d.onCalculate!==void 0)t.push(d.onCalculate);if(d.onCommit!==void 0)n.push(d.onCommit);if(d.onAfterScroll!==void 0)r.push(d.onAfterScroll);if(d.onIdle!==void 0)l.push(d.onIdle);if(d.onResize!==void 0)u.push(d.onResize)}return{calculate:t,commit:n,afterScroll:r,idle:l,resize:u}}function Lt(e,t){for(let n=0;n<e.length;n++)e[n](t)}function Pt(e,t){for(let n=0;n<e.length;n++)e[n](t)}function $e(e,t,n){for(let r=0;r<e.length;r++)e[r](t,n)}function Ct(e){for(let t=0;t<e.length;t++)e[t]()}function At(e,t,n){for(let r=0;r<e.length;r++)e[r](t,n)}function Mt(e,t,n,r,l,u,i,d){let T=r!==0||l!==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:n,gap:i,hasCrossPad:T,crossStartProp:T?t?"top":"left":"",crossEndProp:T?t?"bottom":"right":"",crossStartVal:T?r+"px":"",crossEndVal:T?l+"px":"",oddClass:u,emitter:d??null,indexMap:null,ariaTotalFn:null}}function qt(e,t,n,r,l){if(e.containerSize<=0||e.totalItems===0)return e.clear(),!0;let{scrollPosition:u,containerSize:i,totalItems:d}=e,T=l??0;e.totalSize=t.getTotalSize();let x=t.indexAtOffset(T>0?Math.max(0,u-T):u),F=t.indexAtOffset(u+i);if(F<d-1)F++;x=Math.max(0,x),F=Math.min(d-1,Math.max(0,F));let I=Math.max(0,x-n),v=Math.min(d-1,F+n),w=Math.ceil(i/1)+n*2+10,_=v-I+1,k=Math.min(_,e.capacity,w);if(I===e.prevRangeStart&&v===e.prevRangeEnd&&!e.renderPending&&e.baseOffset===e.prevBaseOffset)return!1;e.visibleCount=k,e.startIndex=I;for(let c=0;c<k;c++){let H=I+c;e.visibleIndices[c]=H,e.visibleOffsets[c]=t.getOffset(H),e.visibleSizes[c]=t.getSize(H)}return Lt(r.calculate,e),e.prevRangeStart=I,e.prevRangeEnd=v,e.prevBaseOffset=e.baseOffset,e.renderPending=!1,!0}var Y={selected:!1,focused:!1};function Zt(e,t,n){for(let r=0;r<t;r++)if(e[r]===n)return!0;return!1}function jt(e,t){if(t<=1)return!0;let n=e[0];for(let r=1;r<t;r++){let l=e[r];if(l!==n+1)return!1;n=l}return!0}function Jt(e,t,n,r,l,u,i,d,T,x){let F=T?null:l(),{visibleCount:I,visibleIndices:v}=e,w=i.ariaTotalFn?i.ariaTotalFn():e.totalItems,_=i.interactive?String(w):"",k=i.interactive&&w!==e.prevAriaTotal,c=null,H=i.indexMap;for(let b=0;b<I;b++){let P=v[b],M=H?H(P):P,a=e.visibleOffsets[b],S=e.visibleSizes[b],R=T?T(P):F[P];if(x)x(M,Y);else Y.selected=!1,Y.focused=!1;let C=u.get(P),z=C;if(C===void 0){let p=t.acquire();if(R!==void 0){let E;try{E=r(R,M,Y)}catch(N){if(i.emitter)i.emitter.emit("error",{error:N instanceof Error?N:Error(String(N)),context:`template:render:${M}`});t.release(p);continue}if(typeof E==="string")p.innerHTML=E;else p.textContent="",p.appendChild(E);Be(p)}if(p.setAttribute("role",i.itemRole),p.setAttribute("data-index",String(M)),i.interactive)p.id=i.prefix+"-item-"+P,p.setAttribute("aria-posinset",String(M+1)),p.setAttribute("aria-setsize",_);if(R!==void 0){let E=String(R.id);if(p.setAttribute("data-id",E),E.startsWith(Ae))p.classList.add(i.placeholderClass)}if(i.hasCrossPad)p.style.setProperty(i.crossStartProp,i.crossStartVal),p.style.setProperty(i.crossEndProp,i.crossEndVal);if(x){if(p.classList.toggle(i.selectedClass,Y.selected),p.classList.toggle(i.focusedClass,Y.focused),Y.selected)p.setAttribute("aria-selected","true");else p.removeAttribute("aria-selected");p._lastSelected=Y.selected,p._lastFocused=Y.focused}if(i.oddClass)p.classList.toggle(i.oddClass,(P&1)===1);let B=a-e.baseOffset+i.startPadding;p.style.transform=i.translateProp+B+"px)",p._lastOffset=B;let y=S-i.gap;if(p.style[i.sizeProp]=y+"px",p._lastSize=y,p._lastItem=R,u.set(P,p),c===null)c=document.createDocumentFragment();c.appendChild(p)}else{if(k)C.setAttribute("aria-setsize",_);if(R!==void 0&&z._lastItem!==R){let y=C.getAttribute("data-id"),E=String(R.id),N;try{N=r(R,M,Y)}catch(h){if(i.emitter)i.emitter.emit("error",{error:h instanceof Error?h:Error(String(h)),context:`template:render:${M}`});continue}if(typeof N==="string")C.innerHTML=N;else C.textContent="",C.appendChild(N);if(Be(C),C.setAttribute("data-id",E),z._lastItem=R,y!==E){let h=y!==null&&y.startsWith(Ae),f=E.startsWith(Ae);if(h!==f)C.classList.toggle(i.placeholderClass,f);if(h&&!f)C.classList.add(i.replacedClass),setTimeout(()=>{C.classList.remove(i.replacedClass)},300)}}if(x){if(z._lastSelected!==Y.selected){if(C.classList.toggle(i.selectedClass,Y.selected),Y.selected)C.setAttribute("aria-selected","true");else C.removeAttribute("aria-selected");z._lastSelected=Y.selected}if(z._lastFocused!==Y.focused)C.classList.toggle(i.focusedClass,Y.focused),z._lastFocused=Y.focused}let p=a-e.baseOffset+i.startPadding;if(z._lastOffset!==p)C.style.transform=i.translateProp+p+"px)",z._lastOffset=p;let B=S-i.gap;if(z._lastSize!==B)C.style[i.sizeProp]=B+"px",z._lastSize=B}}if(c!==null)n.appendChild(c);if(I>0&&jt(v,I)){let b=v[0],P=v[I-1];for(let[M,a]of u)if(M<b||M>P)a.remove(),t.release(a),u.delete(M)}else for(let[b,P]of u)if(!Zt(v,I,b))P.remove(),t.release(P),u.delete(b);if(i.interactive)e.prevAriaTotal=e.totalItems;Pt(d.commit,e)}function Ue(e,t,n,r,l,u,i,d,T,x,F,I){if(qt(e,t,n,x,T.startPadding))Jt(e,r,l,u,i,d,T,x,F,I)}var Ke=()=>{let e={},t=(u,i)=>{if(!e[u])e[u]=new Set;return e[u].add(i),()=>n(u,i)},n=(u,i)=>{e[u]?.delete(i)};return{on:t,off:n,emit:(u,i)=>{e[u]?.forEach((d)=>{try{d(i)}catch(T){console.error(`[vlist] Error in event handler for "${String(u)}":`,T)}})},clear:(u)=>{if(u)delete e[u];else for(let i in e)delete e[i]}}};var zt=2,wt=(e=0)=>({velocity:0,sampleCount:0}),_t=(e,t)=>{let n=performance.now(),r=e._lt??n,l=e._lp??t,u=n-r;if(e._lp=t,e._lt=n,u===0)return e.sampleCount=Math.min(e.sampleCount+1,5),e;if(u>100)return e.velocity=0,e.sampleCount=1,e;return e.velocity=Math.abs(t-l)/u,e.sampleCount=Math.min(e.sampleCount+1,5),e};function Qt(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}`)}if(e.scroll?.runway!==void 0){if(typeof e.scroll.runway!=="number"||!Number.isFinite(e.scroll.runway)||e.scroll.runway<=0)throw Error(`vlist: scroll.runway must be a positive number, got ${e.scroll.runway}`)}}function en(e,t){let n=e==="horizontal"?"x":"y";if(t.some((l)=>l.name==="grid"))return{primary:n,cross:n==="x"?"y":"x"};return{primary:n}}function tn(e,t){let n=en(e.orientation,t),r=n.primary==="x",l=vt(e.padding);return{axis:n,hasCrossAxis:n.cross!==void 0,overscan:e.overscan??Ce,reverse:e.reverse??!1,classPrefix:e.classPrefix??ut,mainAxisPadding:gt(l,r),crossAxisPadding:ht(l,r),startPadding:r?l.left:l.top,endPadding:r?l.right:l.bottom,crossPadStart:r?l.top:l.left,crossPadEnd:r?l.bottom:l.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 on(e){let t=[...e];return t.sort((n,r)=>(n.priority??50)-(r.priority??50)),t}function rn(e){let t=new Set;for(let n of e){if(t.has(n.name))throw Error(`[vlist] Duplicate plugin: ${n.name}`);t.add(n.name)}for(let n of e)if(n.conflicts){for(let r of n.conflicts)if(t.has(r))throw Error(`[vlist] Plugin "${n.name}" conflicts with "${r}"`)}}function Ht(e,t=[],n){Qt(e);let r=tn(e,t),l=r.axis.primary==="x",u=e.scroll?.mode==="bounded"||!!n,i=nn(e,l),d=r.gap,T=d>0?typeof i==="function"?(m)=>i(m)+d:i+d:i,x=typeof i==="number"?i:20,F=e.items?.length??0,I=r.striped?`${r.classPrefix}-item--odd`:"",v=Ke(),w=Mt(r.classPrefix,l,r.startPadding,r.crossPadStart,r.crossPadEnd,I,d,v),_=t.length>0?on(t):t;if(t.length>0)rn(_);let k=Pe(e.container),c=ct(k,r.classPrefix,l,e.ariaLabel);if(e.scroll?.scrollbar==="none")c.viewport.classList.add(`${r.classPrefix}-viewport--no-scrollbar`);if(e.scroll?.gutter==="stable")c.viewport.classList.add(`${r.classPrefix}-viewport--gutter-stable`);let b=ze(T,F);if(d>0){let m=b.getTotalSize;b.getTotalSize=()=>{let o=m();return o>0?o-d:0}}let P=Et(r.classPrefix),M=Math.ceil(4096/x)+r.overscan*2+8,a=St(M);a.totalItems=F;let S=e.items??[],R=()=>S,C=new Map,z=wt(),p={velocity:0,reliable:!1},B={range:{start:0,end:-1}},y={scrollPosition:0,direction:"down"},E={scrollPosition:0},N=-1,h=-1,f=-1,L=null,A=It(_),O=new Map,K=[],Q=[],G=[],X=null,te=null,q=null,ne=null,ue=null,j=null,s=null,D=null,Z=null,U=null,oe=null,de=!1,Xe=!1,ve=null,Ge=0,qe=0,Ze=null,je=null,Je=null,_e=null,He=null,Re=null,xe=null,ee=null,me=null;a.containerSize=l?c.viewport.clientWidth:c.viewport.clientHeight,a.crossSize=l?c.viewport.clientHeight:c.viewport.clientWidth;let Te=Tt({sizeCache:b,getPixel:()=>te?te():a.scrollPosition,setPixel:(m)=>{if(q)q(m);else if(l)c.viewport.scrollLeft=m;else c.viewport.scrollTop=m},getContainerSize:()=>a.containerSize});if(t.length>0){let m={dom:c,sizeCache:b,scroll:Te,pool:P,config:r,emitter:v,template:e.item.template,registerMethod(o,g){O.set(o,g)},getMethod(o){return O.get(o)},registerClickHandler(o){K.push(o)},registerKeydownHandler(o){Q.push(o)},registerDestroyHandler(o){G.push(o)},enableListboxRole(){let o=c.content.getAttribute("role");if(!o||o==="list")c.content.setAttribute("role","listbox"),c.content.setAttribute("tabindex","0");w.itemRole="option",w.interactive=!0},setSizeConfig(o){let g=ze(o,a.totalItems),V=O.get("_setSizeCacheBase");if(V){let W=b.rebuild;Object.assign(b,g),b.rebuild=W,V(g.rebuild)}else Object.assign(b,g)},setScrollFns(o,g){te=o,q=g},setBoundedWrap(o){me=o},cancelScroll(){ce?.cancelScroll()},setVirtualTotalFn(o){X=o,w.ariaTotalFn=o},setIndexMapFn(o){w.indexMap=o},getItems:R,getItem(o){return j?j(o):S[o]},getState(){return a},rebuildSizeCache(){b.rebuild(a.totalItems)},updateContentSize(o){if(ee){ee.refresh(o);return}a.totalSize=o,c.content.style[l?"width":"height"]=o+r.mainAxisPadding+"px"},setRenderFn(o,g){ne=o,ue=g},renderIfNeeded(){ge()},forceRender(){ae()},setGetItemFn(o){j=o},setItemStateFn(o){s=o},getItemStateFn(){return s},get rawSizeSpec(){return i},scrollTo(o){if(q)q(o);else if(l)c.viewport.scrollLeft=o;else c.viewport.scrollTop=o},shiftScroll(o){if(ee?.shiftBy)ee.shiftBy(o);else m.scrollTo(a.scrollPosition+o)},smoothScrollTo(o,g,V,W){if(_e)_e(o,g,q??void 0,V,W);else m.scrollTo(typeof o==="function"?o():o)},disableDefaultScroll(){de=!0},disableDefaultResize(){Xe=!0},setScrollTarget(o){ve=o},setScrollToPosFn(o){He=o},setScrollToIndexFn(o){Re=o},onScrollFrame:De,onScrollIdle:Ie,removeItemById(o){if(D)return D(o);let g=S.findIndex((V)=>V.id===o);if(g===-1)return-1;return S.splice(g,1),a.totalItems=S.length,b.rebuild(a.totalItems),se(),g},insertItemAt(o,g){if(Z){Z(o,g);return}S.splice(g,0,o),a.totalItems=S.length,b.rebuild(a.totalItems),se()},setRemoveItemFn(o){D=o},setInsertItemFn(o){Z=o},setUpdateItemFn(o){U=o},setGetIndexByIdFn(o){oe=o},getRenderedElement(o){let g=O.get("_getRenderedElement");if(g)return g(o);return C.get(o)??null},setNavConfig(o){if(o.ud!==void 0)Ge=o.ud;if(o.lr!==void 0)qe=o.lr;if(o.scrollIndex)Ze=o.scrollIndex;if(o.navigate)je=o.navigate;if(o.total)Je=o.total},getNavConfig:(()=>{let o={ud:0,lr:0,scrollIndex:null,navigate:null,total:null};return()=>(o.ud=Ge,o.lr=qe,o.scrollIndex=Ze,o.navigate=je,o.total=Je,o)})()};for(let o of _)if(o.setup)try{o.setup(m)}catch(g){v.emit("error",{error:g instanceof Error?g:Error(String(g)),context:`plugin:setup:${o.name}`})}}let Oe=r.classPrefix+"--scrolling",fe=!1,Vt=e.scroll?.idleTimeout??le;function Qe(){if(y.scrollPosition=Te.getPixelEquivalent(),l)y.direction=a.scrollDirection>0?"right":"left";else y.direction=a.scrollDirection>0?"down":"up";if(v.emit("scroll",y),_t(z,a.scrollPosition),p.velocity=z.velocity,p.reliable=z.sampleCount>=zt,v.emit("velocity:change",p),a.startIndex!==N||a.prevRangeEnd!==h)N=a.startIndex,h=a.prevRangeEnd,B.range.start=a.startIndex,B.range.end=a.prevRangeEnd,v.emit("range:change",B)}let et=!1;function se(){if(ne)return;let m=b.getTotalSize();if(ee){ee.refresh(m);return}if(c.content.style[l?"width":"height"]=m+r.mainAxisPadding+"px",!et&&m>We)et=!0,v.emit("error",{error:Error(`Content size (${m}px) exceeds browser limit (${We}px). Enable bounded scroll (scroll: { mode: "bounded" }) for large datasets.`),context:"content:size:overflow"})}function tt(){if(!xe)return;if((X?X():S.length)===0)return;let o=xe;xe=null,Ve.scrollToIndex(o.index,o.alignOrOptions)}function ge(){if(tt(),ne)ne();else Ue(a,b,r.overscan,P,c.content,e.item.template,R,C,w,A,j,s)}function De(){if(!fe)fe=!0,c.root.classList.add(Oe);if(ge(),$e(A.afterScroll,a.scrollPosition,a.scrollDirection),a.scrollPosition!==f)f=a.scrollPosition,Qe()}function Ie(){if(fe)fe=!1,c.root.classList.remove(Oe);a.scrollDirection=0,Ct(A.idle),p.velocity=0,p.reliable=!1,v.emit("velocity:change",p),E.scrollPosition=Te.getPixelEquivalent(),v.emit("scroll:idle",E)}function ae(){if(tt(),a.renderPending=!0,ue)ue();else Ue(a,b,r.overscan,P,c.content,e.item.template,R,C,w,A,j,s);if($e(A.afterScroll,a.scrollPosition,a.scrollDirection),a.scrollPosition!==f){if(f=a.scrollPosition,Qe(),L!==null)clearTimeout(L);L=setTimeout(Ie,Vt)}}let nt=de?!1:e.scroll?.wheel!==!1,ce;if(de&&(u||me))throw Error(`vlist: page() is not compatible with ${me?"the carousel plugin":'scroll: { mode: "bounded" }'} — bounded page-mode scrolling is not implemented yet.`);if(u||me)ee=(n??xt)({state:a,sizeCache:b,viewport:c.viewport,content:c.content,isX:l,wheelEnabled:nt,idleTimeout:e.scroll?.idleTimeout??le,...ve?{scrollTarget:ve}:{},mainAxisPadding:r.mainAxisPadding,...e.scroll?.runway!==void 0?{runwayFactor:Math.max(ft,e.scroll.runway)}:{},...me?{wrap:me}:{},onFrame:De,onIdle:Ie}),ce=ee,te=()=>a.scrollPosition,q=(m)=>ee.setLogical(m);else ce=yt({state:a,viewport:c.viewport,isX:l,wheelEnabled:nt,idleTimeout:e.scroll?.idleTimeout??le,...ve?{scrollTarget:ve}:{},onFrame:De,onIdle:Ie});_e=ce.smoothScrollTo;function Fe(m){let g=m.target.closest("[data-index]");if(!g)return null;let V=parseInt(g.getAttribute("data-index"),10);if(Number.isNaN(V))return null;let W=O.get("_layoutToDataIndex"),J;if(W){let re=W(V);if(re<0)return null;let Se=O.get("_getItem");J=Se?Se(re):j?j(re):S[re]}else J=j?j(V):S[V];if(J===void 0)return null;return{item:J,index:V}}function ot(m){for(let g=0;g<K.length;g++)K[g](m);let o=Fe(m);if(o)v.emit("item:click",{item:o.item,index:o.index,event:m})}function rt(m){let o=Fe(m);if(o)v.emit("item:dblclick",{item:o.item,index:o.index,event:m})}function it(m){let o=Fe(m);if(o)v.emit("item:contextmenu",{item:o.item,index:o.index,event:m})}function lt(m){let o=m.target?.tagName;if((o==="INPUT"||o==="TEXTAREA"||o==="SELECT")&&!((m.ctrlKey||m.metaKey)&&(m.key==="f"||m.key==="F")))return;for(let g=0;g<Q.length;g++)Q[g](m)}if(c.content.addEventListener("click",ot),c.content.addEventListener("dblclick",rt),c.content.addEventListener("contextmenu",it),Q.length>0)c.root.addEventListener("keydown",lt);let Ne=null;if(!Xe)setTimeout(()=>{if(a.destroyed)return;Ne=new ResizeObserver((o)=>{for(let g of o){let{width:V,height:W}=g.contentRect,J=l?V:W,re=l?W:V;if(Math.abs(J-a.containerSize)<1&&Math.abs(re-a.crossSize)<1)continue;if(a.containerSize=J,a.crossSize=re,a.resizeCapacity(J,x,r.overscan),ee)ee.refresh(b.getTotalSize());ae(),At(A.resize,V,W),v.emit("resize",{width:V,height:W})}}),Ne.observe(c.viewport)},0);a.resizeCapacity(a.containerSize,x,r.overscan),se(),a.initialized=!0;let he=null;if(e.defer)he=requestAnimationFrame(()=>{if(he=null,!a.destroyed)ge()});else ge();if(!de)ce.attach();let Ve={get element(){return c.root},get items(){return S},get total(){return X?X():S.length},setItems(m){S=[...m],a.totalItems=S.length,b.rebuild(a.totalItems),se(),ae()},appendItems(m){S.push(...m),a.totalItems=S.length,b.rebuild(a.totalItems),se(),ae()},prependItems(m){S.unshift(...m),a.totalItems=S.length,b.rebuild(a.totalItems),se(),ae()},updateItem(m,o){if(U){if(!U(m,o))return}else{let g=S.findIndex((V)=>V.id===m);if(g===-1)return;S[g]={...S[g],...o}}ae()},insertItem(m,o){if(Z)Z(m,o??a.totalItems);else{if(o===void 0)S.push(m);else S.splice(o,0,m);a.totalItems=S.length,b.rebuild(a.totalItems),se()}ae()},removeItem(m){if(D){if(D(m)<0)return}else{let o=S.findIndex((g)=>g.id===m);if(o===-1)return;S.splice(o,1),a.totalItems=S.length,b.rebuild(a.totalItems),se()}ae()},removeItems(m){if(D){let W=0;for(let J of m)if(D(J)>=0)W++;if(W>0)ae();return W}let o=new Set(m),g=S.length;S=S.filter((W)=>!o.has(W.id));let V=g-S.length;if(V>0)a.totalItems=S.length,b.rebuild(a.totalItems),se(),a.renderPending=!0,ge();return V},getItemAt(m){if(w.indexMap)return S[m];return j?j(m):S[m]},getIndexById(m){if(oe)return oe(m);return S.findIndex((o)=>o.id===m)},scrollToIndex(m,o="start"){let g=X?X():S.length;if(g===0){xe={index:m,alignOrOptions:o};return}let V=Math.max(0,Math.min(m,g-1)),W=typeof o==="string"?o:o.align??"start",J=typeof o==="object"?o.behavior:void 0,re=typeof o==="object"?o.duration:void 0,Se=typeof o==="object"?o.easing:void 0;if(Re&&Re(V,W,J,re,Se)!==!1)return;let ke=b.getOffset(V),st=b.getSize(V),Le=a.containerSize,kt=b.getTotalSize(),at=r.mainAxisPadding,Bt=Math.max(0,kt+at-Le),ie;if(He)ie=He(V,b,Le,g,W);else{let Wt=r.startPadding;switch(W){case"center":ie=Wt+ke-(Le-st)/2;break;case"end":ie=ke+st+at-Le;break;default:ie=ke}ie=Math.max(0,Math.min(ie,Bt))}if(J==="smooth")ce.smoothScrollTo(ie,re??dt,q??void 0,Se);else if(q)q(ie);else if(l)c.viewport.scrollLeft=ie;else c.viewport.scrollTop=ie},getScrollPosition(){return Te.getPixelEquivalent()},on:v.on.bind(v),off:v.off.bind(v),destroy(){if(a.destroyed)return;if(a.destroyed=!0,fe)fe=!1,c.root.classList.remove(Oe);if(he!==null)cancelAnimationFrame(he),he=null;if(L!==null)clearTimeout(L),L=null;ce.detach(),Ne?.disconnect(),c.content.removeEventListener("click",ot),c.content.removeEventListener("dblclick",rt),c.content.removeEventListener("contextmenu",it),c.root.removeEventListener("keydown",lt);let m=[];for(let o of G)try{o()}catch(g){m.push(g instanceof Error?g:Error(String(g)))}for(let o of _)if(o.destroy)try{o.destroy()}catch(g){m.push(g instanceof Error?g:Error(String(g)))}for(let[,o]of C)o.remove();if(C.clear(),P.clear(),c.root.remove(),v.emit("destroy",void 0),v.clear(),m.length>0)for(let o of m)console.error("vlist: error during destroy:",o)}};for(let[m,o]of O)Ve[m]=o;return Ve}var Ot=1,Dt=2;var Rt=(e)=>1-(1-e)**3;function Ft({getMax:e,onChange:t=()=>{},onFinish:n,axis:r="y",reducedMotion:l}){let u=0,i=0,d=null,T=0,x=0,F=0,I=0,v=0,w=null,_=0,k=0,c=0,H=0,b=400,P=Rt,M=()=>c,a=0.006,S=(y)=>Math.max(0,Math.min(e(),y)),R=(y,E)=>r==="y"?E:y,C=(y,E)=>r==="y"?y:E;function z(y){let E=S(y);if(E!==u)u=E,t(u);return E!==y}function p(){v=0,i=d===null?0:5}function B(y){p(),z(y)}return{get position(){return u},get state(){return i},get velocity(){return v},get active(){return i===3||i===4},begin(y,E,N,h){if(d!==null){p();return}p(),d=y,T=F=R(E,N),x=C(E,N),I=h,i=1},move(y,E,N,h){if(y!==d||i!==1&&i!==2)return!1;let f=R(E,N);if(i===1){let O=Math.abs(f-T),K=Math.abs(C(E,N)-x);if(Math.max(O,K)<6)return!1;if(K>O*1.2)return p(),!1;if(O<K*1.2)return!1;i=2}let L=F-f,A=h-I;if(A>0){let O=Math.max(-3,Math.min(3,L/A));v=A>80?0:O*v<0?O:0.65*O+0.35*v}if(F=f,I=h,z(u+L))v=0;return!0},end(y,E){if(y!==d)return;if(d=null,i===2&&!l()&&E-I<=80&&Math.abs(v)>=0.02)w=null,i=3;else v=0,i=0},cancel:p,reset(){d=null,p()},jump:B,shiftBy(y){k+=y,H+=y,z(u+y)},by(y){p();let E=u;return z(u+y),u!==E},smooth(y,E=400,N=Rt){if(p(),H=0,M=typeof y==="function"?y:()=>y,d!==null||l()||E<=0){z(M());return}b=E,P=N,k=u,c=S(M()+H),w=null,i=4},resize(){p(),z(u)},tick(y){if(i!==3&&i!==4)return;if(w===null){if(w=y,i===4)_=y;return}let E=y-w;if(E<=0)return;if(w=y,E>100){if(i===4)z(S(M()+H)),i=0,n?.();else p();return}if(i===4){c=S(M()+H);let f=Math.min(1,(y-_)/b);if(z(k+(c-k)*P(f)),f===1)i=0,n?.();return}let N=Math.exp(-a*E),h=z(u+v*(1-N)/a);if(v*=N,h||Math.abs(v)<0.02)v=0,i=0}}}var we=(e)=>e.pointerType==="touch"||e.pointerType==="pen";function Ye(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 Nt(e){let{state:t,viewport:n,content:r,isX:l,onFrame:u,onIdle:i,mainAxisPadding:d}=e,T=n.parentElement??n,x=n.ownerDocument.defaultView,F=n.ownerDocument,I=x.matchMedia("(prefers-reduced-motion: reduce)"),v=0,w=null,_=null,k=!1,c=!1,H=-1,b=-1,P=null,M=null,a=!1,S=!1,R=!1,C=!1,z,p=new Set;function B(s){let D=t.scrollPosition;if(t.prevScrollPosition=D,t.scrollPosition=t.baseOffset=s,t.scrollDirection=s>D?1:s<D?-1:0,!c)u()}function y(){if(_=null,f.active||f.state===Dt||f.state===Ot)return;t.scrollDirection=0,i()}function E(){if(!k)return;if(_!==null)clearTimeout(_);_=setTimeout(y,e.idleTimeout||le)}function N(){if(k&&w===null&&f.active)w=requestAnimationFrame(h)}function h(s){if(w=null,f.tick(s),f.active)N();else E()}let f=Ft({axis:l?"x":"y",getMax:()=>v,reducedMotion:()=>I.matches,onChange:B,onFinish(){let s=z;z=void 0,s?.()}});function L(){if(z=void 0,w!==null)cancelAnimationFrame(w),w=null;if(f.cancel(),_!==null)clearTimeout(_),_=null}function A(){if(L(),f.reset(),C&&P!==null&&n.hasPointerCapture(P))n.releasePointerCapture(P);C=!1,p.clear(),P=M=null,a=S=R=!1,E()}function O(s){if(!we(s))return;if(s.isPrimary){if(p.size)A();p.clear()}if(p.add(s.pointerId),p.size>1){R=!0,L();return}if(!(s.target instanceof Element)||Ye(s.target)){L();return}P=s.pointerId,a=!1,S=f.active,M=null,L(),f.begin(s.pointerId,s.clientX,s.clientY,s.timeStamp)}function K(s){if(!we(s)||s.target instanceof Node&&n.contains(s.target))return;if(s.isPrimary&&p.size)A();else if(p.size)p.add(s.pointerId),R=!0,L()}function Q(s){if(!we(s)||R)return;if(f.move(s.pointerId,s.clientX,s.clientY,s.timeStamp)){if(a=!0,!C)n.setPointerCapture(s.pointerId),C=!0;if(s.cancelable)s.preventDefault()}}function G(s){if(!we(s)||!p.has(s.pointerId))return;let D=s.type==="pointercancel";if(D)L();if(P===s.pointerId){if(!D&&!R&&(a||S))M=s.pointerId;if(C&&n.hasPointerCapture(s.pointerId))n.releasePointerCapture(s.pointerId);C=!1,P=null,a=S=!1}if(f.end(s.pointerId,s.timeStamp),p.delete(s.pointerId),!p.size){if(R||D)f.reset();R=!1}N(),E()}function X(s){let D=s.pointerId;if(s.detail!==0&&M!==null&&(D===M||D===void 0))M=null,s.preventDefault(),s.stopImmediatePropagation()}function te(s){if(s.ctrlKey||s.defaultPrevented||!(s.target instanceof Element)||Ye(s.target))return;let D=s.deltaMode===1?16:s.deltaMode===2?t.containerSize:1,Z=l?s.deltaX:s.deltaY,U=l?s.deltaY:s.deltaX,oe=l?n.scrollHeight>n.clientHeight:n.scrollWidth>n.clientWidth;if(oe&&Math.abs(U)>Math.abs(Z))return;if(oe&&U!==0)if(s.preventDefault(),l)n.scrollTop+=U*D;else n.scrollLeft+=U*D;let de=l&&!oe&&Z===0?U:Z;if(L(),f.by(de*D))s.preventDefault();E()}function q(s){if(s.defaultPrevented||s.ctrlKey||s.metaKey||s.altKey||!(s.target instanceof Element)||Ye(s.target))return;if((s.key===" "||s.key==="Enter")&&s.target.closest("button,summary,a,input"))return;let D=e.sizeCache,Z=D.getSize(D.indexAtOffset(f.position)),U;if(s.key===(l?"ArrowRight":"ArrowDown"))U=f.position+Z;if(s.key===(l?"ArrowLeft":"ArrowUp"))U=f.position-Z;if(s.key==="PageDown"||s.key===" ")U=f.position+t.containerSize*(s.shiftKey&&s.key===" "?-1:1);if(s.key==="PageUp")U=f.position-t.containerSize;if(s.key==="Home")U=0;if(s.key==="End")U=v;if(U!==void 0)s.preventDefault(),ue(U)}function ne(){if(F.hidden)A()}function ue(s){let D=f.position;if(L(),f.jump(s),D===f.position)B(f.position);E()}function j(s){let D=H!==t.containerSize||b!==t.crossSize,Z=s!==t.totalSize||D;if(H=t.containerSize,b=t.crossSize,t.totalSize=s,v=Math.max(0,s+d-t.containerSize),Z){if(c=!0,D)L(),f.resize();else f.shiftBy(0);B(f.position),c=!1}}return{setLogical:ue,refresh:j,shiftBy(s){if(t.totalSize=e.sizeCache.getTotalSize(),v=Math.max(0,t.totalSize+d-t.containerSize),f.shiftBy(s),!f.active)E()},cancelScroll(){L(),E()},getLogical:()=>t.scrollPosition,getMaxLogical:()=>v,smoothScrollTo(s,D,Z,U=pe,oe){if(L(),f.smooth(s,D,U),z=oe,!f.active)z=void 0,oe?.(),E();else N()},attach(){if(k)return;if(k=!0,n.style.overflowX=l?"hidden":"auto",n.style.overflowY=l?"auto":"hidden",n.style.touchAction=l?"pan-y pinch-zoom":"pan-x pinch-zoom",n.style.overflowAnchor="none",r.style[l?"width":"height"]="100%",r.style.overflow="clip",r.style.overflowAnchor="none",n.addEventListener("pointerdown",O),x.addEventListener("pointerdown",K),n.addEventListener("pointermove",Q,{passive:!1}),x.addEventListener("pointerup",G),x.addEventListener("pointercancel",G),n.addEventListener("click",X,!0),e.wheelEnabled)n.addEventListener("wheel",te,{passive:!1});T.addEventListener("keydown",q),x.addEventListener("blur",A),F.addEventListener("visibilitychange",ne),I.addEventListener("change",A),N()},detach(){if(k=!1,A(),_!==null)clearTimeout(_),_=null;n.removeEventListener("pointerdown",O),x.removeEventListener("pointerdown",K),n.removeEventListener("pointermove",Q),x.removeEventListener("pointerup",G),x.removeEventListener("pointercancel",G),n.removeEventListener("click",X,!0),n.removeEventListener("wheel",te),T.removeEventListener("keydown",q),x.removeEventListener("blur",A),F.removeEventListener("visibilitychange",ne),I.removeEventListener("change",A),n.style.overflowX=n.style.overflowY=n.style.touchAction=n.style.overflowAnchor="",r.style.overflow=r.style.overflowAnchor=""}}}function Qn(e,t=[]){if(e.scroll?.mode==="synthetic"){if(e.orientation==="horizontal"&&getComputedStyle(Pe(e.container)).direction==="rtl")throw Error("RTL horizontal lists are not supported with synthetic mode in this release; use native mode");for(let n of t)if(n.name==="page"||n.name==="carousel"||n.name==="sortable")throw Error(`${n.name} is not supported with synthetic mode in this release`)}return Ht(e,t,e.scroll?.mode==="synthetic"?Nt:void 0)}export{Qn as createVList};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vlist",
3
- "version": "2.6.5",
3
+ "version": "2.7.1",
4
4
  "description": "Lightweight, high-performance virtual list with zero dependencies",
5
5
  "author": {
6
6
  "name": "Floor IO",
@@ -34,6 +34,11 @@
34
34
  "import": "./dist/index.js",
35
35
  "default": "./dist/index.js"
36
36
  },
37
+ "./synthetic": {
38
+ "types": "./dist/synthetic.d.ts",
39
+ "import": "./dist/synthetic.js",
40
+ "default": "./dist/synthetic.js"
41
+ },
37
42
  "./config": {
38
43
  "types": "./dist/config.d.ts",
39
44
  "import": "./dist/config.js",