vlist 3.1.0-next.3 → 3.1.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
- var tt="x",nt=20,We="_isPlaceholder",we="__placeholder_";function Re(t){let e=t.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let o=0;o<e.length;o++)e[o].setAttribute("tabindex","-1");t._stamp=0}var ke={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},Ye=(t,e)=>{let o=0,r=t.length-1;while(o<r){let s=o+r+1>>>1;if(t[s].headerLayoutIndex<=e)o=s;else r=s-1}return o},rt=(t,e)=>{let o=0,r=t.length-1;while(o<r){let s=o+r+1>>>1;if(t[s].firstDataIndex<=e)o=s;else r=s-1}return o},ot=(t,e,o)=>{if(t===0)return[];let r=[],s=null,a=0,i=0;for(let f=0;f<t;f++){let A=o?.(f);if(!A)continue;let C=e(f,A);if(s===null)s=C,a=0;else if(C!==s){let b=f-a;r.push({key:s,groupIndex:r.length,headerLayoutIndex:i,firstDataIndex:a,count:b}),i=i+1+b,s=C,a=f}}if(s!==null)r.push({key:s,groupIndex:r.length,headerLayoutIndex:i,firstDataIndex:a,count:t-a});return r},st=(t,e)=>{if(t.length===0||e.length===0)return[];let o=t.length+e.length,r=Array(o),s=0;for(let a of e){r[s]={id:`__group_header_${a.groupIndex}`,__groupHeader:!0,groupKey:a.key,groupIndex:a.groupIndex},s++;for(let i=0;i<a.count;i++)r[s]=t[a.firstDataIndex+i],s++}return r},at=(t,e,o=!1)=>{let r=typeof e==="number"?(s)=>e:e;return(s)=>{let a=t.getEntry(s);if(a.type==="header"){if(o&&a.group.groupIndex===0)return 0;return t.getHeaderHeight(a.group.groupIndex)}return r(a.dataIndex)}},it=(t,e,o)=>{let r=ot(t,e.getGroupForIndex,o),s=t+r.length,a=e.header?.height??e.header?.width??e.headerHeight,i=typeof a==="number"?(p)=>a:(p)=>{let g=r[p];if(!g)return 0;return a(g.key,p)},f={type:"header",group:ke},A={type:"item",dataIndex:0,group:ke};return{get totalEntries(){return s},get groupCount(){return r.length},get groups(){return r},getEntry:(p)=>{if(r.length===0)return A.dataIndex=p,A.group=ke,A;let g=Ye(r,p),l=r[g];if(p===l.headerLayoutIndex)return f.group=l,f;let h=p-l.headerLayoutIndex-1;return A.dataIndex=l.firstDataIndex+h,A.group=l,A},layoutToDataIndex:(p)=>{if(r.length===0)return p;let g=Ye(r,p),l=r[g];if(p===l.headerLayoutIndex)return-1;let h=p-l.headerLayoutIndex-1;return l.firstDataIndex+h},dataToLayoutIndex:(p)=>{if(r.length===0)return p;let g=rt(r,p),l=r[g],h=p-l.firstDataIndex;return l.headerLayoutIndex+1+h},getGroupAtLayoutIndex:(p)=>{if(r.length===0)return ke;let g=Ye(r,p);return r[g]},getGroupAtDataIndex:(p)=>{if(r.length===0)return ke;let g=rt(r,p);return r[g]},getHeaderHeight:i,rebuild:(p,g)=>{r=ot(p,e.getGroupForIndex,g??o),s=p+r.length}}};var Rt=(t,e,o,r,s=0)=>{let a=o?"width":"height",i=document.createElement("div");return i.className=`${e}-sticky-header`,i.setAttribute("role","presentation"),i.setAttribute("aria-hidden","true"),i.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(o?`position:absolute;top:0;bottom:0;left:${s||0}px`:`position:relative;top:${s||0}px`),i.style[a]=`${r}px`,t.insertBefore(i,t.firstChild),i},lt=(t,e,o,r,s,a=!1,i=0,f,A)=>{let C=a?"width":"height",b=a?"height":"width",P=a?"X":"Y",F=(v,S)=>{v.style[C]=`${S}px`},y=f??Rt(t,s,a,0,i),B=()=>{let v=document.createElement("div");return v.className="sticky-group",v.style.position="absolute",v.style.willChange="transform",v.style[b]="100%",v},p=B(),g=B();y.append(p,g);let l=p,h=g,m=e.groups,E=[],z=[],O=[],R=0,V=()=>{m=e.groups,R=m.length,E=Array(R),z=Array(R),O=Array(R);for(let v=0;v<R;v++)E[v]=A?A(m[v].headerLayoutIndex):o.getOffset(m[v].headerLayoutIndex),z[v]=e.getHeaderHeight(v),O[v]=z[v]};V();let _=-1,U=0,Y=0,re=-1,ie=!1,Se=0,me=!1,pe=(v,S)=>{r(v,S);let w=z[S];return F(v,w),w},d=(v)=>{v.replaceChildren(),v.style.transform=""},n=(v)=>{if(v===_)return;if(_=v,U=0,Y=0,v<0||v>=R){d(l);return}U=pe(l,v),Y=O[v],F(y,U),l.style.transform=""},u=(v)=>{if(v===Se)return;Se=v;let S=Math.round(v);l.style.transform=`translate${P}(${S}px)`,h.style.transform=`translate${P}(${S+U}px)`},c=()=>{Se=0,l.style.transform="",h.style.transform=""},H=()=>{if(!me)return;let v=l;l=h,h=v,_=re,U=_>=0?z[_]:0,Y=_>=0?O[_]:0,F(y,U),d(h),re=-1,me=!1,c()},T=()=>{if(!me)return;d(h),re=-1,me=!1,c()},N=!!f,k=()=>{if(ie)return;if(ie=!0,N)y.style.visibility="";else y.style.display=""},D=()=>{if(!ie)return;if(ie=!1,N)y.style.visibility="hidden";else y.style.display="none";d(l),_=-1,U=0,Y=0,T()},j=(v)=>{if(R===0){if(me)T();if(!ie)k();n(-1);return}if(v<E[0]){D();return}let S=0,w=R-1;while(S<w){let W=S+w+1>>>1;if(E[W]+O[W]<=v)S=W;else w=W-1}if(!ie)k();n(S);let X=S+1;if(X<R){let W=E[X]-v;if(W<=0&&W>-Y){if(re!==X||!me)re=X,pe(h,X),me=!0;let K=Y>0?W/Y*U:W;u(K)}else if(W<=-Y){if(me)H()}else if(me)T()}else if(me)T()},ee=()=>{V();let v=_;if(_=-1,U=0,Y=0,v>=0)n(v)},Z=()=>{y.remove(),_=-1,U=0,Y=0,re=-1,ie=!1,me=!1};if(!f)y.style.display="none";return{update:j,refresh:ee,show:k,hide:D,destroy:Z}};var ut=(t)=>t!==null&&typeof t==="object"&&t.__groupHeader===!0;var ct=(t)=>{let e=Math.max(1,Math.floor(t.columns)),o=t.gap??0,r=t.isHeaderFn,s={row:0,col:0},a=(p)=>{if(p<=0)return 0;if(!r)return Math.ceil(p/e);let g=0,l=0,h=0;for(let m=0;m<p;m++)if(r(m)){if(h++,l)g++,l=0;g++,l=0}else if(l++,l>=e)g++,l=0;if(l)g++;return g},i=(p)=>(s.row=f(p),s.col=A(p),s),f=(p)=>{if(!r)return Math.floor(p/e);let g=0,l=0;for(let h=0;h<=p;h++)if(r(h)){if(l)g++,l=0;if(h===p)return g;g++,l=0}else{if(h===p)return g;if(l++,l>=e)g++,l=0}return g},A=(p)=>{if(!r)return p%e;if(r(p))return 0;let g=0;for(let l=0;l<=p;l++)if(r(l))g=0;else{if(l===p)return g;if(g++,g>=e)g=0}return g},C=(p,g,l,h)=>{if(l<=0){h.start=0,h.end=-1;return}if(!r){h.start=Math.max(0,p*e),h.end=Math.min(l-1,(g+1)*e-1);return}let m=b(p,g,l);h.start=m.start,h.end=m.end},b=(p,g,l)=>{if(l<=0)return{start:0,end:-1};if(!r){let O=Math.max(0,p*e),R=Math.min(l-1,(g+1)*e-1);return{start:O,end:R}}let h=-1,m=-1,E=0,z=0;for(let O=0;O<l;O++){if(r(O)){if(z)E++,z=0;if(E>=p&&E<=g){if(h<0)h=O;m=O}E++,z=0}else{if(E>=p&&E<=g){if(h<0)h=O;m=O}if(z++,z>=e)E++,z=0}if(E>g&&!z)break}if(h<0)return{start:0,end:-1};return{start:h,end:m}},P=(p,g,l)=>{if(g<0||g>=e)return-1;let h=p*e+g;if(h<0||h>=l)return-1;return h},F=(p)=>{let g=(e-1)*o;return Math.max(0,(p-g)/e)};return{get columns(){return e},get gap(){return o},update:(p)=>{if(p.columns!==void 0)e=Math.max(1,Math.floor(p.columns));if(p.gap!==void 0)o=p.gap;if(p.isHeaderFn!==void 0)r=p.isHeaderFn},getTotalRows:a,getPosition:i,getRow:f,getCol:A,getItemRange:b,fillItemRange:C,getItemIndex:P,getColumnWidth:F,getColumnOffset:(p,g)=>{let l=F(g);return p*(l+o)}}};var dt=(t,e=50,o=1/0,r=!0,s="none")=>{let a=t,i=[],f=0,A=0,C=()=>{i=a.map((m,E)=>({def:m,index:E,width:0,minWidth:wt(m.minWidth??e,1),maxWidth:m.maxWidth??o,resizable:m.resizable??r,offset:0}))},b=()=>{if(s==="none"||f<=0||f>=A)return;if(s==="spacer"){f=A;return}let m=A-f,E=f;for(let z=0;z<i.length;z++){let O=i[z];O.width=$e(O.width+m*(O.width/E),O.minWidth,O.maxWidth)}F()},P=(m)=>{if(A=m,i.length===0){f=0;return}let E=0,z=0;for(let O=0;O<i.length;O++){let R=i[O],V=R.def;if(V.width!==void 0)R.width=$e(V.width,R.minWidth,R.maxWidth),E+=R.width;else z++}if(z){let R=Math.max(0,m-E)/z;for(let V=0;V<i.length;V++){let _=i[V];if(_.def.width===void 0)_.width=$e(R,_.minWidth,_.maxWidth)}}F(),b()},F=()=>{let m=0;for(let E=0;E<i.length;E++){let z=i[E];z.offset=m,m+=z.width}f=m},y=(m,E)=>{if(m<0||m>=i.length)return 0;let z=i[m];if(!z.resizable)return z.width;let O=$e(E,z.minWidth,z.maxWidth);if(z.width=O,F(),s==="spacer")b();return O},B=(m)=>i[m],p=(m)=>{if(i.length===0)return;if(m<0)return i[0];if(m>=f)return i[i.length-1];let E=0,z=i.length-1;while(E<z){let O=E+z>>>1,R=i[O];if(m<R.offset)z=O-1;else if(m>=R.offset+R.width)E=O+1;else return R}return i[E]},g=(m)=>{if(m<0||m>=i.length)return 0;return i[m].offset},l=(m)=>{if(m<0||m>=i.length)return 0;return i[m].width},h=(m)=>{a=m,C()};return C(),{get columns(){return i},get totalWidth(){return f},resolve:P,updateColumns:h,resizeColumn:y,getColumn:B,getColumnAtX:p,getColumnOffset:g,getColumnWidth:l}},$e=(t,e,o)=>Math.min(o,Math.max(e,t)),wt=(t,e)=>Math.max(e,t);var mt=(t,e,o,r,s,a)=>{let i=document.createElement("div");i.setAttribute("role","rowgroup");let f=document.createElement("div");f.className=`${o}-table-header`,f.setAttribute("role","row"),f.setAttribute("aria-rowindex","1"),f.style.height=`${e}px`;let A=document.createElement("div");A.className=`${o}-table-header-scroll`,A.setAttribute("role","presentation"),f.appendChild(A),i.appendChild(f),t.insertBefore(i,t.firstChild),t.style.setProperty("--vlist-table-header-height",`${e}px`);let C=[],b=[],P=!0,F=null,y="asc",B=null,p=!1,g=-1,l=0,h=0,m=0,E=(n,u)=>{let c=document.createElement("div");c.className=`${o}-table-header-cell`,c.setAttribute("role","columnheader"),c.setAttribute("aria-colindex",String(u+1)),c.setAttribute("tabindex",u===0?"0":"-1"),c.dataset.columnKey=n.def.key;let H=n.def.align;if(H==="center")c.classList.add(`${o}-table-header-cell--center`);else if(H==="right")c.classList.add(`${o}-table-header-cell--right`);let T=document.createElement("div");T.className=`${o}-table-header-content`;let N=n.def.header?n.def.header(n.def):n.def.label;if(typeof N==="string")T.textContent=N;else T.appendChild(N);if(c.appendChild(T),n.def.sortable){let k=document.createElement("span");k.className=`${o}-table-header-sort`,k.setAttribute("aria-hidden","true"),c.appendChild(k),b.push(k),c.classList.add(`${o}-table-header-cell--sortable`)}else b.push(null);if(n.resizable){let k=document.createElement("div");k.className=`${o}-table-header-resize`,k.dataset.resizeIndex=String(u),c.appendChild(k)}return c},z=(n)=>{B=n,A.textContent="",C=[],b=[];let u=n.columns;for(let c=0;c<u.length;c++){let H=u[c],T=E(H,c);C.push(T),A.appendChild(T)}if(O(n),F)R(F,y)},O=(n)=>{B=n;let u=n.columns;A.style.width=`${n.totalWidth}px`;for(let c=0;c<C.length&&c<u.length;c++){let H=C[c],T=u[c];H.style.width=`${T.width}px`}},R=(n,u)=>{if(F=n,y=u,!B)return;let c=B.columns;for(let H=0;H<b.length&&H<c.length;H++){let T=b[H];if(!T)continue;if(c[H].def.key===n)T.textContent=u==="asc"?"▲":"▼",T.style.opacity="0.7",C[H].setAttribute("aria-sort",u==="asc"?"ascending":"descending");else T.textContent="",T.style.opacity="0",C[H].removeAttribute("aria-sort")}},V=(n)=>{A.style.transform=`translateX(${-n}px)`},_=(n)=>{let u=n.target;if(!u.dataset.resizeIndex)return;if(n.preventDefault(),n.stopPropagation(),g=+u.dataset.resizeIndex,!B)return;let c=B.getColumn(g);if(!c?.resizable)return;p=!0,l=n.clientX,h=c.width,t.classList.add(`${o}--col-resizing`),t.style.cursor="col-resize",u.classList.add(`${o}-table-header-resize--active`),u.setPointerCapture(n.pointerId),u.addEventListener("pointermove",U),u.addEventListener("pointerup",Y),u.addEventListener("pointercancel",Y)},U=(n)=>{if(!p||!B)return;let u=n.clientX-l;if(Math.abs(u)<1)return;let c=Math.max(0,h+u);r(g,c)},Y=(n)=>{if(!p)return;let u=n.target;u.removeEventListener("pointermove",U),u.removeEventListener("pointerup",Y),u.removeEventListener("pointercancel",Y);try{u.releasePointerCapture(n.pointerId)}catch{}u.classList.remove(`${o}-table-header-resize--active`),t.classList.remove(`${o}--col-resizing`),t.style.cursor="",p=!1,g=-1},re=(n)=>{let u=n.target;if(u.dataset.resizeIndex)return;if(p)return;let c=u;while(c&&!c.dataset.columnKey)if(c=c.parentElement,c===f||c===null)return;let H=c.dataset.columnKey;if(!B)return;let T=B.columns,N=-1;for(let D=0;D<T.length;D++)if(T[D].def.key===H){N=D;break}if(N===-1)return;let k=T[N];if(a)a({key:H,index:N,event:n});if(k.def.sortable&&s){let D;if(F===H)D=y==="asc"?"desc":null;else D="asc";s({key:H,index:N,direction:D})}},ie=(n)=>{if(n<0||n>=C.length)return;C[m]?.setAttribute("tabindex","-1"),m=n;let u=C[m];u.setAttribute("tabindex","0"),u.focus()},Se=(n)=>{let u=n.key;if(u==="ArrowRight"){if(n.ctrlKey||n.metaKey){if(!B)return;let c=B.getColumn(m);if(c?.resizable)r(m,c.width+10),n.preventDefault()}else if(m<C.length-1)ie(m+1),n.preventDefault();n.stopPropagation();return}if(u==="ArrowLeft"){if(n.ctrlKey||n.metaKey){if(!B)return;let c=B.getColumn(m);if(c?.resizable)r(m,c.width-10),n.preventDefault()}else if(m>0)ie(m-1),n.preventDefault();n.stopPropagation();return}if(u==="Home"){ie(0),n.preventDefault(),n.stopPropagation();return}if(u==="End"){ie(C.length-1),n.preventDefault(),n.stopPropagation();return}if(u==="Enter"||u===" "){if(!B)return;let c=B.getColumn(m);if(c?.def.sortable&&s){let H;if(F===c.def.key)H=y==="asc"?"desc":null;else H="asc";s({key:c.def.key,index:m,direction:H}),n.preventDefault()}n.stopPropagation();return}if(u==="ArrowDown"){t.focus(),n.preventDefault(),n.stopPropagation();return}};return f.addEventListener("pointerdown",_),f.addEventListener("click",re),f.addEventListener("keydown",Se),{element:f,update:O,updateSort:R,rebuild:z,show:()=>{if(P)return;P=!0,f.style.display=""},hide:()=>{if(!P)return;P=!1,f.style.display="none"},destroy:()=>{f.removeEventListener("pointerdown",_),f.removeEventListener("click",re),f.removeEventListener("keydown",Se),t.style.removeProperty("--vlist-table-header-height"),i.remove(),C=[],b=[],B=null,P=!1},syncScroll:V}};var Ge=(t,e,o)=>{if(String(o).startsWith(we))return!1;let r=we+e;if(t.has(r))return t.delete(r),t.add(o),!0;return!1},ft=(t)=>({selected:new Set(t??[]),focusedIndex:-1,focusVisible:!1}),Ue=(t,e,o)=>{if(o==="none")return t;let r=new Set(t.selected);if(o==="single"){if(r.clear(),e.length>0)r.add(e[0])}else for(let s of e)r.add(s);return{...t,selected:r}},Ze=(t,e)=>{let o=new Set(t.selected);for(let r of e)o.delete(r);return{...t,selected:o}},pt=(t,e,o)=>{if(o==="none")return t;if(t.selected.has(e))return Ze(t,[e]);else return Ue(t,[e],o)},bt=(t,e,o)=>{if(o!=="multiple")return t;return{...t,selected:new Set(e.map((r)=>r.id))}},gt=(t)=>({...t,selected:new Set});var ht=(t,e)=>t.selected.has(e),yt=(t)=>Array.from(t.selected),St=(t,e)=>{let o=[];for(let r of t.selected){let s=e(r);if(s)o.push(s)}return o};var kt=()=>{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}}},vt=(t,e,o,r,s,a,i,f,A,C=()=>0)=>{let b=kt(),P=new Map,F=-1,y=o,B=null,p=null,g=null,l=(S,w)=>{p=S,g=w},h=(S,w)=>{w?S.setAttribute("aria-selected","true"):S.removeAttribute("aria-selected")},m=(S,w,X,W)=>{S.setAttribute("role",w),S.setAttribute("data-id",String(X)),S.setAttribute("data-index",String(W))},E=(S)=>String(S).startsWith("__placeholder_"),z=`${s}-item ${s}-table-row`,O=`${s}-item--selected`,R=`${s}-item--focused`,V=`${s}-table-cell`,_=`${s}-table-cell--center`,U=`${s}-table-cell--right`,Y=`${s}-table-cell-skeleton`,re=`${s}-item--odd`,ie=`${s}-item--placeholder`,Se=`${s}-item--replaced`,me=`${s}-table-row ${s}-table-group-header`,pe=`${s}-table-group-header-content`,d=(S,w,X,W,K=!1)=>{if(X.def.cell){let I=X.def.cell(w,X.def,W);if(typeof I==="string")S.innerHTML=I;else S.replaceChildren(I)}else{let I=w[X.def.key],le=I!=null?String(I):"";if(K&&le)S.innerHTML=`<span>${le}</span>`;else S.textContent=le}if(K&&S.firstElementChild===null){S.replaceChildren();let I=document.createElement("span");I.className=Y,S.appendChild(I)}Re(S);let J=S.parentElement;if(J)J._stamp=0},n=(S,w,X,W,K=!1)=>{let J=z;if(f){if(B){let I=B(w);if(I>=0&&(I&1)===1)J+=` ${re}`}else if((w&1)===1)J+=` ${re}`}if(K)J+=` ${ie}`;if(X)J+=` ${O}`;if(W)J+=` ${R}`;S.className=J},u=(S,w)=>{let X=w.def.align;if(X==="center")S.classList.add(_),S.classList.remove(U);else if(X==="right")S.classList.add(U),S.classList.remove(_);else S.classList.remove(_,U)},c=(S,w)=>{let W=y.columns.length;if(w.length===W)return w;let K=[];for(let J=0;J<W;J++){let I;if(J<w.length)I=w[J];else I=document.createElement("div"),I.className=V,S.appendChild(I);K.push(I)}for(let J=W;J<w.length;J++)w[J].remove();return K},H=(S,w,X,W)=>{let K=b.acquire(),J=S,I=X.getSize(w),le=X.getOffset(w)-W;K.style.cssText=`width:${y.totalWidth}px;height:${I}px;transform:translateY(${le}px)`,K.className=me,m(K,"presentation",S.id,w),K.removeAttribute("aria-selected"),K.removeAttribute("aria-rowindex"),K.replaceChildren();let se=document.createElement("div");if(se.className=pe,g){let te=g(J.groupKey,J.groupIndex);if(typeof te==="string")se.innerHTML=te;else se.appendChild(te)}return K.appendChild(se),Re(K),{element:K,cells:[],index:w,isGroupHeader:!0,_lastItem:S,lastItemId:S.id,lastSelected:!1,lastFocused:!1,lastOffset:le,lastHeight:I}},T=(S,w,X,W,K,J)=>{let I=b.acquire(),le=K.getSize(w),se=K.getOffset(w)-J,te=E(S.id);I.style.cssText=`width:${y.totalWidth}px;height:${le}px;transform:translateY(${se}px)`,n(I,w,X,W,te),m(I,"row",S.id,w),I.id=`${a}-item-${w}`,I.setAttribute("aria-rowindex",String(w+2)),h(I,X);let Le=c(I,[]),x=y.columns;for(let M=0;M<Le.length&&M<x.length;M++){let q=Le[M],Q=x[M];q.style.cssText=`left:${Q.offset}px;width:${Q.width}px`,q.setAttribute("role","gridcell"),q.setAttribute("aria-colindex",String(M+1)),u(q,Q),d(q,S,Q,w,te)}return{element:I,cells:Le,index:w,isGroupHeader:!1,_lastItem:S,lastItemId:S.id,lastSelected:X,lastFocused:W,lastOffset:se,lastHeight:le}},N=(S,w,X,W,K=C())=>{let J=!1,I=i();if(I!==F)F=I,J=!0;let le=null,se=e();B=typeof f==="string"&&A?A():null;for(let te=w.start;te<=w.end;te++){let Le=te-w.start,x=S[Le];if(!x)continue;let M=X.has(x.id),q=te===W,Q=p?p(x):!1,G=P.get(te);if(G){if(G.isGroupHeader!==Q){b.release(G.element),P.delete(te);let be=Q?H(x,te,se,K):T(x,te,M,q,se,K);if(P.set(te,be),!le)le=document.createDocumentFragment();le.appendChild(be.element);continue}if(Q){if(G._lastItem!==x){let oe=x,ue=G.element.firstElementChild;if(ue&&g){let he=g(oe.groupKey,oe.groupIndex);if(typeof he==="string")ue.innerHTML=he;else ue.replaceChildren(he);Re(G.element)}G.element.setAttribute("data-id",String(x.id)),G._lastItem=x,G.lastItemId=x.id}let ge=se.getOffset(te)-K;if(G.lastOffset!==ge)G.lastOffset=ge,G.element.style.transform=`translateY(${ge}px)`;let Te=se.getSize(te);if(G.lastHeight!==Te)G.lastHeight=Te,G.element.style.height=`${Te}px`}else{let be=G._lastItem!==x,ge=G.lastSelected!==M,Te=G.lastFocused!==q;if(be){let he=G.lastItemId!=null&&E(G.lastItemId),xe=E(x.id);if(!xe&&Ge(X,te,x.id))M=!0;let fe=y.columns;for(let ce=0;ce<G.cells.length&&ce<fe.length;ce++)d(G.cells[ce],x,fe[ce],te,xe);if(n(G.element,te,M,q,xe),G.element.setAttribute("data-id",String(x.id)),h(G.element,M),he&&!xe)G.element.classList.add(Se),setTimeout(()=>{G.element.classList.remove(Se)},300);G._lastItem=x,G.lastItemId=x.id,G.lastSelected=M,G.lastFocused=q}else if(ge||Te)n(G.element,te,M,q,E(x.id)),h(G.element,M),G.lastSelected=M,G.lastFocused=q;let oe=se.getOffset(te)-K;if(G.lastOffset!==oe)G.lastOffset=oe,G.element.style.transform=`translateY(${oe}px)`;let ue=se.getSize(te);if(G.lastHeight!==ue)G.lastHeight=ue,G.element.style.height=`${ue}px`;if(J)G.element.setAttribute("aria-rowindex",String(te+2))}}else{if(Ge(X,te,x.id))M=!0;let be=Q?H(x,te,se,K):T(x,te,M,q,se,K);if(P.set(te,be),!le)le=document.createDocumentFragment();le.appendChild(be.element)}}if(le)t.appendChild(le);for(let[te,Le]of P)if(te<w.start||te>w.end)b.release(Le.element),P.delete(te)},k=(S,w,X,W)=>{let K=P.get(S);if(!K)return;if(K.isGroupHeader)return;let J=y.columns;for(let I=0;I<K.cells.length&&I<J.length;I++)d(K.cells[I],w,J[I],S);K.element.setAttribute("data-id",String(w.id)),K._lastItem=w,K.lastItemId=w.id,n(K.element,S,X,W),h(K.element,X),K.lastSelected=X,K.lastFocused=W},D=(S,w,X)=>{let W=P.get(S);if(!W)return;if(W.isGroupHeader)return;let K=W.lastSelected!==w,J=W.lastFocused!==X;if(K||J)n(W.element,S,w,X),h(W.element,w),W.lastSelected=w,W.lastFocused=X},j=(S)=>{y=S;let w=S.columns;for(let[,X]of P)if(X.element.style.width=`${S.totalWidth}px`,X.cells.length>0)for(let W=0;W<X.cells.length&&W<w.length;W++){let K=X.cells[W],J=w[W];K.style.left=`${J.offset}px`,K.style.width=`${J.width}px`}},ee=(S)=>P.get(S)?.element,Z=()=>{for(let[,S]of P)b.release(S.element);P.clear(),F=-1};return{render:N,updateItem:k,updateItemClasses:D,getElement:ee,updateColumnLayout:j,setGroupHeaderFn:l,clear:Z,destroy:()=>{Z(),b.clear()}}};var xt=(t)=>{let e=Math.max(1,Math.floor(t.columns)),o=t.gap??0,r=t.containerSize,s=t.crossOffset??0,a=t.mainOffset??0,i=0,f=[],A=()=>{let l=(e-1)*o;i=Math.max(0,(r-l)/e),f=Array(e);let h=i+o;for(let m=0;m<e;m++)f[m]=s+m*h};A();let C=[],b=0,P=[],F=(l,h)=>{if(l<=0)return b=0,C=[],[];let m=Array(e).fill(a),E=Array(e);for(let R=0;R<e;R++)E[R]=[];let z=Array(l);for(let R=0;R<l;R++){let V=0,_=m[0];for(let re=1;re<e;re++){let ie=m[re];if(ie<_)_=ie,V=re}let U=h(R),Y=m[V];z[R]={index:R,x:f[V],y:Y,lane:V,size:U,crossSize:i},E[V].push(R),m[V]=Y+U+o}C=E;let O=0;for(let R=0;R<e;R++){let V=m[R],_=V>0?V-o:0;if(_>O)O=_}return b=O,z},y=(l)=>{if(l.length===0)return b;if(b)return b;let h=Array(e).fill(0);for(let E of l){let z=E.y+E.size,O=h[E.lane];if(z>O)h[E.lane]=z}let m=0;for(let E=0;E<e;E++)if(h[E]>m)m=h[E];return m},B=(l,h,m)=>{if(l.length===0||m<=h)return P.length=0,P;if(C.length===0||C.length!==e)return p(l,h,m);P.length=0;for(let E=0;E<e;E++){let z=C[E],O=z.length;if(!O)continue;let R=0,V=O;while(R<V){let _=R+V>>>1,U=l[z[_]];if(U.y+U.size<=h)R=_+1;else V=_}for(let _=R;_<O;_++){let U=l[z[_]];if(U.y>=m)break;P.push(U)}}return P},p=(l,h,m)=>{P.length=0;for(let E of l)if(E.y+E.size>h&&E.y<m)P.push(E);return P};return{get columns(){return e},get gap(){return o},get containerSize(){return r},update:(l)=>{let h=!1;if(l.columns!==void 0){let m=Math.max(1,Math.floor(l.columns));if(m!==e)e=m,h=!0}if(l.gap!==void 0&&l.gap!==o)o=l.gap,h=!0;if(l.containerSize!==void 0&&l.containerSize!==r)r=l.containerSize,h=!0;if(l.crossOffset!==void 0&&l.crossOffset!==s)s=l.crossOffset,h=!0;if(l.mainOffset!==void 0&&l.mainOffset!==a)a=l.mainOffset,h=!0;if(h)A()},calculateLayout:F,getTotalSize:y,getVisibleItems:B}};var Tt=(t,e,o)=>{let r=Array.from(e).sort((i,f)=>i-f);if(r.length<=1)return;let s=[];for(let i=0;i<r.length;i++){let f=o(r[i]);if(f)s.push(f)}if(s.length<=1)return;let a=t.firstChild;for(let i=0;i<s.length;i++){let f=s[i];if(f===a)a=a.nextSibling;else t.insertBefore(f,a)}};var _t=(t=200)=>{let e=[];return{acquire:()=>{let a=e.pop();if(a)return a;let i=document.createElement("div");return i.setAttribute("role","option"),i},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}}},Pt=1,It=(t,e,o,r=!1,s,a,i,f,A=()=>0)=>{let C=_t(),b=new Map,P=new Set,F=0,y="",B=-1,p=!1,g={selected:!1,focused:!1},l=(d,n)=>(g.selected=d,g.focused=n,g),h=`${o}-item ${o}-masonry-item`,m=`${o}-group-header`,E=`${o}-item--selected`,z=`${o}-item--focused`,O=(d,n)=>{if(typeof n==="string")d.innerHTML=n;else d.replaceChildren(n);Re(d)},R=(d,n,u)=>{d.classList.toggle(E,n),d.classList.toggle(z,u)},V=(d,n)=>{let u=Math.round(n.y-Y);if(r)d.style.transform=`translate(${u}px, ${Math.round(n.x)}px)`;else d.style.transform=`translate(${Math.round(n.x)}px, ${u}px)`},_=(d,n)=>{if(r)d.style.width=`${n.size}px`,d.style.height=`${n.crossSize}px`;else d.style.width=`${n.crossSize}px`,d.style.height=`${n.size}px`},U=(d,n,u,c,H)=>{let T=C.acquire(),N=n.__groupHeader,k=l(c,H);if(T.className=N?m:h,T.dataset.index=String(d),T.dataset.id=String(n.id),T.dataset.lane=String(u.lane),N)T.setAttribute("role","presentation"),T.removeAttribute("aria-selected"),T.removeAttribute("aria-setsize"),T.removeAttribute("aria-posinset"),T.removeAttribute("id");else if(p){if(T.setAttribute("role","option"),T.ariaSelected=String(c),a)T.id=`${a}-item-${d}`;if(s){let j=s();if(j!==B)B=j,y=String(j);T.setAttribute("aria-setsize",y);let ee=i?i(d):d+1;T.setAttribute("aria-posinset",String(ee))}}else T.setAttribute("role","listitem"),T.removeAttribute("aria-selected"),T.removeAttribute("aria-setsize"),T.removeAttribute("aria-posinset"),T.removeAttribute("id");_(T,u);let D=e(n,d,k);return O(T,D),R(T,c,H),V(T,u),{element:T,lastItem:n,lastSelected:c,lastFocused:H,lastY:u.y-Y,absY:u.y,lastX:u.x,lastSize:u.size,lastCrossSize:u.crossSize,lastSeenFrame:F}},Y=0,re=(d,n,u,c,H=A())=>{if(Y=H,F++,p=typeof f==="function"?f():f===!0,p&&s){let N=s();if(N!==B){B=N,y=String(N);for(let k of b.values())if(k.element.getAttribute("role")==="option")k.element.setAttribute("aria-setsize",y)}}P.clear();for(let N=0;N<n.length;N++)P.add(n[N].index);let T=null;for(let N=0;N<n.length;N++){let k=n[N],D=k.index,j=d(D);if(!j)continue;let ee=u.has(j.id),Z=D===c,v=b.get(D);if(v){let S=v.lastItem!==j,w=v.lastSelected!==ee,X=v.lastFocused!==Z,W=v.lastY!==k.y-Y||v.lastX!==k.x,K=v.lastSize!==k.size||v.lastCrossSize!==k.crossSize;if(S){let J=l(ee,Z),I=e(j,D,J);if(O(v.element,I),v.element.dataset.id=String(j.id),v.lastItem=j,!j.__groupHeader&&p){let se=i?i(D):D+1;v.element.setAttribute("aria-posinset",String(se))}}if(S||w||X){if(R(v.element,ee,Z),p)v.element.ariaSelected=String(ee);else v.element.removeAttribute("aria-selected");v.lastSelected=ee,v.lastFocused=Z}if(K)_(v.element,k),v.lastSize=k.size,v.lastCrossSize=k.crossSize;if(W)V(v.element,k),v.lastY=k.y-Y,v.absY=k.y,v.lastX=k.x}else{let S=U(D,j,k,ee,Z);if(!T)T=document.createDocumentFragment();T.appendChild(S.element),b.set(D,S)}}if(T)t.appendChild(T);for(let[N,k]of b)if(P.has(N))k.lastSeenFrame=F;else if(F-k.lastSeenFrame>Pt)C.release(k.element),b.delete(N);else{let D=Math.round(k.absY-Y);if(D!==k.lastY){k.lastY=D;let j=Math.round(k.lastX);k.element.style.transform=r?`translate(${D}px, ${j}px)`:`translate(${j}px, ${D}px)`}}},ie=()=>{for(let d of b.values())C.release(d.element);b.clear(),t.innerHTML=""};return{render:re,getElement:(d)=>b.get(d)?.element,updateItemClasses:(d,n,u)=>{let c=b.get(d);if(!c)return;let H=c.lastSelected!==n,T=c.lastFocused!==u;if(H||T)R(c.element,n,u),c.lastSelected=n,c.lastFocused=u},sortDOM:()=>{Tt(t,b.keys(),(d)=>b.get(d)?.element)},clear:ie,destroy:()=>{ie(),C.clear()}}};var Ot=(t,e,o)=>{let r=e;return{getOffset:(s)=>s*t,getSize:(s)=>t,indexAtOffset:(s)=>{if(r===0||t===0)return 0;return Math.max(0,Math.min(Math.floor(s/t),r-1))},getTotalSize:()=>{let s=r*t;return s>0?s-o:0},getTotal:()=>r,rebuild:(s)=>{r=s},invalidate:()=>{},isVariable:()=>!1}};var Lt=(t,e,o,r)=>{while(e<o){let s=e+o+1>>>1;if(t[s]<=r)e=s;else o=s-1}return e},Dt=(t,e,o)=>{let r=0,s=0,a=new Float64Array(0),i=new Float64Array(0),f=new Float64Array(1),A=(b,P)=>{for(let F=b;F<s;F++){if(F<=P){let y=F<<9,B=Math.min(y+512,r),p=0;for(let g=y;g<B;g++)a[g]=p,p+=t(g);i[F]=p}f[F+1]=f[F]+i[F]}},C=(b)=>{r=b,s=Math.ceil(b/512),a=new Float64Array(b),i=new Float64Array(s),f=new Float64Array(s+1),A(0,s-1)};return C(e),{getOffset:(b)=>{if(b<=0)return 0;if(b>=r)return f[s];return f[b>>>9]+a[b]},getSize:(b)=>t(b),indexAtOffset:(b)=>{if(r===0||b<=0)return 0;if(b>=f[s])return r-1;let P=Lt(f,0,s-1,b),F=P<<9;return Lt(a,F,Math.min(F+512,r)-1,b-f[P])},getTotalSize:()=>{let b=f[s];return b>0?b-o:0},getTotal:()=>r,rebuild:(b)=>C(b),invalidate:(b,P=b)=>{if(b>=0&&P<r)A(b>>>9,P>>>9)},isVariable:()=>!0}},Ct=(t,e,o=0)=>{if(typeof t==="number")return Ot(t,e,o);return Dt(t,e,o)};var Et=()=>{let t={},e=(a,i)=>{if(!t[a])t[a]=new Set;return t[a].add(i),()=>o(a,i)},o=(a,i)=>{t[a]?.delete(i)};return{on:e,off:o,emit:(a,i)=>{t[a]?.forEach((f)=>{try{f(i)}catch(A){}})},clear:(a)=>{if(a)delete t[a];else for(let i in t)delete t[i]}}};var Fe=(t={})=>{let{chunkSize:e=100,maxCachedItems:o=5000,evictionBuffer:r=200,onEvict:s}=t,a=new Map,i=0,f=0,A=(d)=>{let n=a.get(d);if(!n)n={items:Array(e),count:0,lastAccess:Date.now()},a.set(d,n);else n.lastAccess=Date.now();return n},C=(d)=>Math.floor(d/e),b=(d)=>d%e,P=()=>i,F=(d)=>{i=d},y=(d)=>{if(d<0||d>=i)return;let n=C(d),u=a.get(n);if(!u)return;return u.items[b(d)]},B=(d)=>{if(d<0||d>=i)return!1;let n=C(d),u=a.get(n);if(!u)return!1;return u.items[b(d)]!==void 0},p=(d,n)=>{let u=C(d),c=A(u),H=b(d),T=c.items[H]===void 0;if(c.items[H]=n,T)c.count++,f++;if(d>=i)i=d+1},g=(d,n)=>{for(let u=0;u<n.length;u++){let c=n[u];if(c!==void 0)p(d+u,c)}},l=(d,n)=>{if(d<0||d>i)return;let u=C(d),c=Array.from(a.keys()).filter((D)=>D>=u).sort((D,j)=>D-j),H=[];for(let D of c){let j=a.get(D),ee=D*e;for(let Z=0;Z<e;Z++){if(j.items[Z]===void 0)continue;let v=ee+Z;if(v<d)continue;H.push({oldIndex:v,item:j.items[Z]})}}for(let{oldIndex:D}of H){let j=C(D),ee=a.get(j);if(!ee)continue;let Z=b(D);if(ee.items[Z]!==void 0){if(ee.items[Z]=void 0,ee.count--,f--,ee.count===0)a.delete(j)}}i++;for(let{oldIndex:D,item:j}of H){let ee=D+1,Z=C(ee),v=A(Z),S=b(ee);v.items[S]=j,v.count++,f++}let T=C(d),N=A(T),k=b(d);N.items[k]=n,N.count++,f++},h=(d)=>{if(d<0||d>=i)return!1;let n=C(d),u=a.get(n),c=b(d);if(!(u!==void 0&&u.items[c]!==void 0))return!1;let T=n,N=Array.from(a.keys()).filter((D)=>D>=T).sort((D,j)=>D-j),k=[];for(let D of N){let j=a.get(D),ee=D*e;for(let Z=0;Z<e;Z++){if(j.items[Z]===void 0)continue;let v=ee+Z;if(v<=d)continue;k.push({oldIndex:v,item:j.items[Z]})}}if(u.items[c]=void 0,u.count--,f--,u.count===0)a.delete(n);for(let{oldIndex:D}of k){let j=C(D),ee=a.get(j);if(!ee)continue;let Z=b(D);if(ee.items[Z]!==void 0){if(ee.items[Z]=void 0,ee.count--,f--,ee.count===0)a.delete(j)}}for(let{oldIndex:D,item:j}of k){let ee=D-1,Z=C(ee),v=A(Z),S=b(ee);v.items[S]=j,v.count++,f++}return i--,!0},m=(d,n)=>{let u=[];for(let c=d;c<=n&&c<i;c++)u.push(y(c));return u},E=(d,n)=>{for(let u=d;u<=n&&u<i;u++)if(!B(u))return!1;return!0},z=()=>{let d=[],n=null,u=Array.from(a.keys()).sort((c,H)=>c-H);for(let c of u){let H=a.get(c);if(!H)continue;let T=c*e;for(let N=0;N<e;N++){let k=T+N;if(k>=i)break;if(H.items[N]!==void 0)if(n===null)n={start:k,end:k};else if(k===n.end+1)n.end=k;else d.push(n),n={start:k,end:k};else if(n!==null)d.push(n),n=null}}if(n!==null)d.push(n);return d},O=(d,n)=>{let u=[],c=null;for(let H=d;H<=n&&H<i;H++)if(!B(H))if(c===null)c={start:H,end:H};else c.end=H;else if(c!==null)u.push(c),c=null;if(c!==null)u.push(c);return u},R=(d)=>a.has(d),V=(d)=>{let n=a.get(d);if(!n)return!1;let u=d*e,c=Math.min(e,i-u);return n.count>=c},_=(d)=>{let n=a.get(d);if(n)n.lastAccess=Date.now()},U=(d,n)=>{if(d>n||a.size===0)return;let u=Date.now(),c=C(Math.max(0,d)),H=C(Math.min(i-1,n));for(let T=c;T<=H;T++){let N=a.get(T);if(N)N.lastAccess=u}},Y=(d,n)=>{if(f<=o)return 0;let u=Math.max(0,d-r),c=Math.min(i-1,n+r),H=C(u),T=C(c),N=0,k=[];for(let[D,j]of a)if(D<H||D>T)N+=j.count,k.push(D),f-=j.count,a.delete(D);if(N>0&&s)s(N,k);return N},re=()=>{if(f<=o)return 0;let d=Array.from(a.entries()).sort(([,c],[,H])=>c.lastAccess-H.lastAccess),n=0,u=[];for(let[c,H]of d){if(f<=o)break;n+=H.count,f-=H.count,u.push(c),a.delete(c)}if(n>0&&s)s(n,u);return n},ie=()=>({totalItems:i,cachedItems:f,cachedChunks:a.size,chunkSize:e,maxCachedItems:o,memoryEfficiency:i>0?1-f/i:1}),Se=()=>f,me=()=>{a.clear(),f=0};return{chunkSize:e,maxCachedItems:o,getTotal:P,setTotal:F,get:y,has:B,set:p,setRange:g,insert:l,delete:h,getRange:m,isRangeLoaded:E,getLoadedRanges:z,findUnloadedRanges:O,getChunkIndex:C,isChunkLoaded:R,isChunkFullyLoaded:V,touchChunk:_,touchChunksForRange:U,evictDistant:Y,evictToLimit:re,getStats:ie,getCachedCount:Se,clear:me,reset:()=>{me(),i=0}}},Ve=(t)=>{if(t.length===0)return[];let e=[...t].sort((r,s)=>r.start-s.start),o=[{...e[0]}];for(let r=1;r<e.length;r++){let s=e[r],a=o[o.length-1];if(s.start<=a.end+1)a.end=Math.max(a.end,s.end);else o.push({...s})}return o},qe=(t,e,o)=>{let r=Math.floor(t.start/o)*o,s=Math.ceil((t.end+1)/o)*o-1,a={start:r,end:s};if(e.length===0)return[a];let i=[],f=Ve(e),A=a.start;for(let C of f){if(C.end<A)continue;if(C.start>a.end)break;if(C.start>A)i.push({start:A,end:Math.min(C.start-1,a.end)});if(A=C.end+1,A>a.end)break}if(A<=a.end)i.push({start:A,end:a.end});return i};var Be=(t={})=>{let{maskCharacter:e=tt,maxSampleSize:o=nt}=t,r=[],s=!1,a=(b)=>{if(s||b.length===0)return;let P=Math.min(b.length,o);for(let F=0;F<P;F++){let y=b[F];if(!y||typeof y!=="object")continue;let B={},p=!1;for(let[g,l]of Object.entries(y)){if(g.startsWith("_")||g==="id")continue;B[g]=String(l??"").length,p=!0}if(p)r.push(B)}s=!0},i=()=>s,f=(b)=>{let P={id:`${we}${b}`,[We]:!0,_index:b};if(r.length===0)return P.label=e.repeat(12),P;let F=r[b%r.length];for(let[y,B]of Object.entries(F))P[y]=e.repeat(Math.max(1,B));return P};return{analyzeStructure:a,hasAnalyzedStructure:i,generate:f,generateRange:(b,P)=>{let F=[];for(let y=b;y<=P;y++)F.push(f(y));return F},clear:()=>{r=[],s=!1}}},He=(t)=>{if(!t||typeof t!=="object")return!1;return t[We]===!0},Xe=(t)=>t.filter((e)=>!He(e));var $t=50,Mt=(t={})=>{let{adapter:e,initialItems:o,initialTotal:r,storage:s,placeholder:a,pageSize:i=$t,maxConcurrent:f=0,onStateChange:A,onDataChange:C,onItemsLoaded:b,onItemsEvicted:P,onLoadError:F}=t,y=Fe({...s,onEvict:(x,M)=>{P?.(x),Y(),U()}}),B=null,p=()=>{if(!B)B=Be(a);return B},g=new Map,l=!1,h,m=!0,E,z,O=[],R=0,V=new Map,_=()=>{for(let x of V.values())x[1].abort();V.clear()},U=()=>{A?.(c())},Y=()=>{C?.()},re=()=>{g.clear();let x=y.getLoadedRanges();for(let M of x)for(let q=M.start;q<=M.end;q++){let Q=y.get(q);if(Q&&!He(Q))g.set(Q.id,q)}},ie=(x,M)=>{if(!He(M))g.set(M.id,x)},Se=(x)=>{g.delete(x)},me=(x,M)=>`${x}-${M}`,pe=()=>y.getTotal(),d=()=>y.getCachedCount(),n=()=>l,u=()=>m,c=()=>({total:y.getTotal(),cached:y.getCachedCount(),isLoading:l,pendingRanges:O,error:h,hasMore:m,cursor:E}),H=()=>y,T=()=>p(),N=(x)=>{let M=y.get(x);if(M!==void 0)return M;if(x>=0&&x<y.getTotal())return p().generate(x);return},k=(x)=>{let M=g.get(x);if(M===void 0)return;return y.get(M)},D=(x)=>g.get(x)??-1,j=(x)=>{let M=y.get(x);return M!==void 0&&!He(M)},ee=(x,M)=>{let q=[],Q=y.getTotal();y.touchChunksForRange(x,Math.min(M,Q-1));for(let G=x;G<=M&&G<Q;G++){let be=y.get(G);if(be!==void 0)q.push(be);else q.push(p().generate(G))}return q},Z=(x)=>{y.setTotal(x),m=y.getCachedCount()<x,Y(),U()},v=(x,M=0,q)=>{if(e&&x.length>0){let Q=p();if(!Q.hasAnalyzedStructure())Q.analyzeStructure(x)}for(let Q=0;Q<x.length;Q++){let G=x[Q];if(G!==void 0){let be=M+Q;y.set(be,G),ie(be,G)}}if(q!==void 0)y.setTotal(q);else if(M+x.length>y.getTotal())y.setTotal(M+x.length);if(y.getCachedCount()>=y.getTotal()&&y.getTotal()>0)m=!1;Y(),U(),b?.(x,M,y.getTotal())},S=(x,M)=>{let q=y.get(x);if(!q)return!1;let Q=q.id,G={...q,...M};if(y.set(x,G),M.id!==void 0&&M.id!==Q)Se(Q);return ie(x,G),Y(),U(),!0},w=(x,M)=>{y.insert(M,x),re(),_(),Y(),U()},X=(x)=>{let M=g.get(x);if(M===void 0)return!1;if(!y.delete(M))return!1;return re(),_(),Y(),U(),!0},W=async(x,M)=>{if(!e)return;let q=y.chunkSize,Q=Math.floor(x/q),G=Math.floor(M/q),be=q*2;for(let[oe,ue]of V){let he=oe.indexOf("-"),xe=parseInt(oe.slice(0,he),10);if(Math.abs(xe-x)>be)ue[1].abort(),V.delete(oe)}let ge=[],Te=[];for(let oe=Q;oe<=G;oe++){let ue=oe*q,he=ue+q-1,xe=me(ue,he);if(y.isChunkFullyLoaded(oe))continue;let ce=V.get(xe);if(ce)Te.push(ce[0]);else ge.push({start:ue,end:he})}if(ge.length===0){if(Te.length>0)await Promise.all(Te);return}if(f>0){let oe=V.size+ge.length;if(oe>f){let ue=(x+M)/2,he=Math.min(oe-f,V.size);while(he>0){let fe=null,ce=-1,ve=null;for(let[Ce,Ne]of V){let Pe=Ce.indexOf("-"),Oe=parseInt(Ce.slice(0,Pe),10),De=parseInt(Ce.slice(Pe+1),10),Ee=Math.abs((Oe+De)/2-ue);if(Ee>ce)ce=Ee,fe=Ce,ve=Ne[1]}if(fe)ve.abort(),V.delete(fe);he--}let xe=f-V.size;if(ge.length>xe)ge.sort((fe,ce)=>{let ve=Math.abs((fe.start+fe.end)/2-ue),Ce=Math.abs((ce.start+ce.end)/2-ue);return ve-Ce}),ge.length=Math.max(0,xe)}}if(ge.length===0){if(Te.length>0)await Promise.all(Te);return}for(let oe of ge){let ue=me(oe.start,oe.end),he=new AbortController,xe=(async()=>{O.push(oe),l=!0,h=void 0,U();try{let fe=oe.end-oe.start+1,ce={offset:oe.start,limit:fe,cursor:oe.start===z?E:void 0,signal:he.signal},ve=await e.read(ce);if(v(ve.items,oe.start,ve.total),ve.cursor)E=ve.cursor,z=oe.start+ve.items.length;let Ce=oe.start+ve.items.length;if(Ce>=R){if(R=Ce,ve.hasMore!==void 0)m=ve.hasMore;else if(ve.total!==void 0)m=Ce<ve.total}}catch(fe){if(fe?.name==="AbortError")return;h=fe instanceof Error?fe:Error(String(fe)),F?.(h,oe)}finally{V.delete(ue);let fe=O.findIndex((ce)=>ce.start===oe.start&&ce.end===oe.end);if(fe>=0)O.splice(fe,1);l=V.size>0,U()}})();V.set(ue,[xe,he]),Te.push(xe)}await Promise.all(Te)},K=async(x,M)=>{if(y.isRangeLoaded(x,M))return;await W(x,M)},J=async()=>{if(!e)return;await W(0,i-1)},I=async()=>{if(!e||l||!m)return!1;let x=y.getCachedCount(),M=y.getTotal(),q=x,Q=Math.min(q+i-1,M>0?M-1:q+i-1);if(q>=M&&M>0)return m=!1,!1;return await W(q,Q),y.getCachedCount()>x},le=async()=>{if(y.clear(),g.clear(),B)B.clear();_(),O=[],l=!1,E=void 0,z=void 0,m=!0,R=0,h=void 0,Y(),U()},se=(x,M)=>{if(y.evictDistant(x,M)>0)re()},te=()=>{y.clear(),g.clear(),E=void 0,z=void 0,h=void 0,O=[],l=!1,Y(),U()},Le=()=>{if(y.reset(),g.clear(),B)B.clear();E=void 0,z=void 0,m=!0,R=0,h=void 0,O=[],l=!1,Y(),U()};if(o&&o.length>0)v(o,0,r??o.length);else if(r!==void 0)y.setTotal(r),Y(),U();return{getState:c,getTotal:pe,getCached:d,getIsLoading:n,getHasMore:u,getStorage:H,getPlaceholders:T,getItem:N,getItemById:k,getIndexById:D,isItemLoaded:j,getItemsInRange:ee,setTotal:Z,setItems:v,updateItem:S,insertItem:w,removeItem:X,loadRange:W,ensureRange:K,loadInitial:J,loadMore:I,reload:le,evictDistant:se,clear:te,reset:Le}};var Gt=0,Ft=1000,Vt=15,Bt=!0,Nt=16,Kt=!0,_e=2,Wt="scroll",Yt=350,Ut=12,Zt=(t)=>{if(typeof t!=="object"){let e=t??_e;return{top:e,right:e,bottom:e,left:e}}return{top:t.top??_e,right:t.right??_e,bottom:t.bottom??_e,left:t.left??_e}},At=(t,e,o={},r="vlist",s=!1,a,i,f)=>{let A=navigator.userAgentData?.platform||navigator.platform+navigator.userAgent,C=o.platform?o.platform==="windows":!/Mac|Android/i.test(A),{autoHide:b=!C,autoHideDelay:P=Ft,minThumbSize:F=Vt,showOnHover:y=Bt,showOnViewportEnter:B=Kt,clickBehavior:p=Wt}=o,g=p==="page"?"scroll":p,l=a??t,h=Zt(o.padding),m=s?h.left:h.top,E=s?h.right:h.bottom,z=s?h.bottom:h.right,O=o.hoverZoneWidth??z+Nt,R=!0,V=0,_=0,U=0,Y=0,re=!1,ie=!1,Se=0,me=0,pe=0,d=null,n=!1,u=null,c=null,H=-1,T=-1,N=-1,k=-1,D=-1,j=t.id?"":(()=>{let L;do L=`${r}-scrollport-${++Gt}`;while(document.getElementById(L));return t.id=L,L})(),ee=0,Z=0,v=null,S=null,w=null,X=s?"width":"height",W=s?"translateX":"translateY",K=s?(L)=>L.clientX:(L)=>L.clientY,J=s?"left":"top",I=document.createElement("div"),le=document.createElement("div"),se=document.createElement("div"),te=s?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",Le=()=>{if(l===t)return;let L=t.offsetTop;I.style[s?"left":"top"]=L?`calc(var(${te}) + ${L}px)`:`var(${te})`,se.style[s?"left":"top"]=`${L}px`},x=()=>{if(I.className=`${r}-scrollbar`,I.setAttribute("role","scrollbar"),I.setAttribute("aria-controls",t.id),I.setAttribute("aria-orientation",s?"horizontal":"vertical"),I.setAttribute("aria-label",t.getAttribute("aria-label")||"Scroll"),I.setAttribute("aria-valuemin","0"),I.tabIndex=0,le.className=`${r}-scrollbar__thumb`,s)I.classList.add(`${r}-scrollbar--horizontal`);if(o.padding!==void 0)l.style.setProperty("--vlist-custom-scrollbar-padding-top",`${h.top}px`),l.style.setProperty("--vlist-custom-scrollbar-padding-right",`${h.right}px`),l.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${h.bottom}px`),l.style.setProperty("--vlist-custom-scrollbar-padding-left",`${h.left}px`);if(o.minThumbSize!==void 0)I.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${F}px`);if(I.appendChild(le),l.appendChild(I),se.className=`${r}-scrollbar__hover`,s)se.classList.add(`${r}-scrollbar__hover--horizontal`),se.style.height=`${O}px`;else se.style.width=`${O}px`;if(l.appendChild(se),l!==t)Le()},M=()=>{if(d)clearTimeout(d),d=null},q=()=>{if(!b)return;M(),d=setTimeout(G,P)},Q=()=>{if(!R||V<=_)return;if(M(),!n)I.classList.add(`${r}-scrollbar--visible`),n=!0;if(b&&!re&&!ie&&document.activeElement!==I)q()},G=()=>{if(re||ie||document.activeElement===I)return;I.classList.remove(`${r}-scrollbar--visible`),n=!1},be=(L,ne)=>{if(V=L,_=ne,Le(),ge(pe),!R||V<=_){I.style.display="none",I.classList.remove(`${r}-scrollbar--visible`),n=!1;return}I.style.display="";let ae=Math.max(0,_-m-E),de=_/V;if(U=Math.max(F,de*ae),le.style[X]=`${U}px`,Y=ae-U,ge(pe),!b)Q()},ge=(L)=>{let ne=Math.max(0,V-_);if(pe=Math.max(0,Math.min(L,ne)),H!==ne)H=ne,I.setAttribute("aria-valuemax",String(ne));if(T!==pe)T=pe,I.setAttribute("aria-valuenow",String(pe));let ae=i?.(),de=ae?.getTotal()??0,ye=de?ae.indexAtOffset(pe)+1:0;if(ye!==N||de!==k)N=ye,k=de,I.setAttribute("aria-valuetext",`Row ${ye} of ${de}`);if(ne<=0||Y<=0)return;let Me=pe/ne*Y;if(Me!==D)D=Me,le.style.transform=`${W}(${Me}px)`},Te=(L)=>{if(!R||L.target!==I||document.activeElement!==I)return;if(L.stopPropagation(),L.altKey||L.ctrlKey||L.metaKey)return;let ne=i?.(),ae=ne?.getSize(ne.indexAtOffset(pe))??40,de=pe;switch(L.key){case(s?"ArrowLeft":"ArrowUp"):de-=ae;break;case(s?"ArrowRight":"ArrowDown"):de+=ae;break;case"PageUp":de-=_;break;case"PageDown":de+=_;break;case"Home":de=0;break;case"End":de=V;break;default:return}L.preventDefault(),e(Math.max(0,Math.min(de,Math.max(0,V-_)))),Q()},oe=(L)=>{if(L.target===le||g!=="jump"||Y<=0)return;let ne=V-_,ae=I.getBoundingClientRect(),de=K(L)-ae[J],ye=Math.max(0,Math.min(de-U/2,Y));e(ye/Y*ne),Q()},ue=()=>{if(v!==null)clearTimeout(v),v=null;if(S!==null)cancelAnimationFrame(S),S=null;w=null},he=(L)=>{let ne=Y>0?Z/L*Y:0;if(ee<ne)return-1;if(ee>=ne+U)return 1;return 0},xe=()=>{let L=V-_,ne=he(L);if(ne===0){ue();return}if(ne===-1){if(Z<=0){ue();return}let ae=Math.max(0,Z-_);Z=ae,e(ae)}else{if(Z>=L){ue();return}let ae=Math.min(L,Z+_);Z=ae,e(ae)}Q()},fe=(L)=>{if(w===null){w=L,S=requestAnimationFrame(fe);return}let ne=V-_,ae=L-w;w=L;let de=he(ne);if(de===0){ue();return}let ye=Ut*_/1000,Me=Math.min(ye*ae,_);if(de===-1){if(Z<=0){ue();return}let Ae=Math.max(0,Z-Me);Z=Ae,e(Ae)}else{if(Z>=ne){ue();return}let Ae=Math.min(ne,Z+Me);Z=Ae,e(Ae)}M(),S=requestAnimationFrame(fe)},ce=(L)=>{if(L&&L.pointerId!==u)return;let ne=u,ae=c;if(u=null,c=null,re=!1,I.classList.remove(`${r}-scrollbar--dragging`),ue(),ne!==null&&ae?.hasPointerCapture(ne))ae.releasePointerCapture(ne);q()},ve=(L)=>{if(!R||L.button!==0||u!==null||Y<=0)return;if(L.preventDefault(),L.stopPropagation(),u=L.pointerId,re=L.target===le,c=re?le:L.currentTarget,c.setPointerCapture(u),M(),re)Se=K(L),me=pe,I.classList.add(`${r}-scrollbar--dragging`);else if(g==="jump")oe(L);else ee=K(L)-I.getBoundingClientRect()[J],Z=pe,xe(),v=setTimeout(()=>{S=requestAnimationFrame(fe)},Yt);Q()},Ce=(L)=>{if(!re||L.pointerId!==u)return;L.stopPropagation();let ne=K(L)-Se,ae=Math.max(0,V-_),de=Math.max(0,Math.min(me+ne/Y*ae,ae));ge(de),e(de)},Ne=()=>{if(B)Q()},Pe=()=>{if(!re){if(ie=!1,b)q()}},Oe=()=>{ie=!0,M(),Q()},De=()=>{if(ie=!1,!re&&b)q()},Ee=["width","radius","thumb-color","track-color"],Ke=(L,ne)=>l.style.setProperty(`--vlist-custom-scrollbar-${L}`,ne),ze=Ee.map((L)=>l.style.getPropertyValue(`--vlist-custom-scrollbar-${L}`)),je=ze.slice(0,2),Je=[],Qe=()=>{for(let ye=0;ye<2;ye++){let Me=Ee[ye],Ae=l.style.getPropertyValue(`--vlist-custom-scrollbar-${Me}`);if(Ae!==Je[ye])je[ye]=Ae;Ke(Me,je[ye])}let L=getComputedStyle(f??l),ne=o.width??L.getPropertyValue("scrollbar-width"),ae=L.getPropertyValue("scrollbar-color").match(/[\w-]+\([^)]*\)|\S+/g);R=o.enabled!==!1&&ne!=="none";let de=[typeof o.width==="number"?`${o.width}px`:L.getPropertyValue("--vlist-custom-scrollbar-width").trim()||(ne==="thin"||!C?"6px":"14px"),typeof o.radius==="number"?`${o.radius}px`:L.getPropertyValue("--vlist-custom-scrollbar-radius").trim()||(C?"0px":"4px"),o.thumbColor??(ae?.length===2?ae[0]:ze[2]),o.trackColor??(ae?.length===2?ae[1]:ze[3])];for(let ye=0;ye<Ee.length;ye++)Ke(Ee[ye],de[ye]);if(Je=de.slice(0,2),se.style.display=R?"":"none",t.classList.toggle(`${r}-viewport--gutter`,R&&!!o.gutter),!R)ce();be(V,_)},Ht=()=>{M(),ue(),ce(),M();for(let L of et)L();for(let L=0;L<Ee.length;L++)Ke(Ee[L],ze[L]);if(t.classList.remove(`${r}-viewport--gutter`),se.remove(),l.style.removeProperty("--vlist-custom-scrollbar-padding-top"),l.style.removeProperty("--vlist-custom-scrollbar-padding-right"),l.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),l.style.removeProperty("--vlist-custom-scrollbar-padding-left"),I.remove(),j&&t.id===j)t.removeAttribute("id")};x();let et=[],Ie=(L,ne,ae)=>{L.addEventListener(ne,ae),et.push(()=>L.removeEventListener(ne,ae))};for(let L of[I,le,se])Ie(L,"pointerdown",ve),Ie(L,"pointermove",Ce),Ie(L,"pointerup",ce),Ie(L,"pointercancel",ce),Ie(L,"lostpointercapture",ce);if(Ie(I,"keydown",Te),Ie(I,"focus",Q),Ie(I,"blur",q),Ie(t,"mouseenter",Ne),Ie(t,"mouseleave",Pe),Ie(I,"mouseenter",Oe),Ie(I,"mouseleave",De),y)Ie(se,"mouseenter",Oe),Ie(se,"mouseleave",De);return Qe(),{refresh:Qe,show:Q,hide:G,updateBounds:be,updatePosition:ge,isVisible:()=>n,destroy:Ht}};function qt(t){let e=0,o=0,r=0;function s(){return r>0?o/r:0}function a(A){if(e=A,A>0.1&&A<50)o+=A,r++}function i(){let A=t.getTotal();if(A===0)return 0;let C=t.getItemSize();if(C<=0)return 0;let b=t.getContainerSize();if(b<=0)return 0;let P=t.getScrollPosition(),F=typeof t.getColumns==="function"?t.getColumns():1,y=Math.ceil(A/F),B=Math.max(0,y*C-b),p=Math.max(0,Math.min(P,B)),g=Math.ceil((p+b)/C);return Math.min(g*F,A)}function f(){let A=t.getTotal(),C=i();return{progress:A>0?Math.min(100,Math.max(0,C/A*100)):0,velocity:e,velocityAvg:s(),itemCount:C,total:A}}return{getState:f,onVelocity:a}}export{st as buildLayoutItems,qe as calculateMissingRanges,gt as clearSelection,Mt as createAsyncManager,Et as createEmitter,ct as createGridLayout,it as createGroupLayout,at as createGroupedSizeFn,xt as createMasonryLayout,It as createMasonryRenderer,Be as createPlaceholderManager,At as createScrollbar,ft as createSelectionState,Ct as createSizeCache,Fe as createSparseStorage,qt as createStats,lt as createStickyHeader,mt as createTableHeader,dt as createTableLayout,vt as createTableRenderer,Ze as deselectItems,Xe as filterPlaceholders,yt as getSelectedIds,St as getSelectedItems,ut as isGroupHeader,He as isPlaceholderItem,ht as isSelected,Ve as mergeRanges,bt as selectAll,Ue as selectItems,pt as toggleSelection};
1
+ var tt="x",nt=20,We="_isPlaceholder",we="__placeholder_";function Re(t){let e=t.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let o=0;o<e.length;o++)e[o].setAttribute("tabindex","-1");t._stamp=0}var ke={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},Ye=(t,e)=>{let o=0,r=t.length-1;while(o<r){let s=o+r+1>>>1;if(t[s].headerLayoutIndex<=e)o=s;else r=s-1}return o},rt=(t,e)=>{let o=0,r=t.length-1;while(o<r){let s=o+r+1>>>1;if(t[s].firstDataIndex<=e)o=s;else r=s-1}return o},ot=(t,e,o)=>{if(t===0)return[];let r=[],s=null,a=0,i=0;for(let f=0;f<t;f++){let H=o?.(f);if(!H)continue;let C=e(f,H);if(s===null)s=C,a=0;else if(C!==s){let b=f-a;r.push({key:s,groupIndex:r.length,headerLayoutIndex:i,firstDataIndex:a,count:b}),i=i+1+b,s=C,a=f}}if(s!==null)r.push({key:s,groupIndex:r.length,headerLayoutIndex:i,firstDataIndex:a,count:t-a});return r},st=(t,e)=>{if(t.length===0||e.length===0)return[];let o=t.length+e.length,r=Array(o),s=0;for(let a of e){r[s]={id:`__group_header_${a.groupIndex}`,__groupHeader:!0,groupKey:a.key,groupIndex:a.groupIndex},s++;for(let i=0;i<a.count;i++)r[s]=t[a.firstDataIndex+i],s++}return r},at=(t,e,o=!1)=>{let r=typeof e==="number"?(s)=>e:e;return(s)=>{let a=t.getEntry(s);if(a.type==="header"){if(o&&a.group.groupIndex===0)return 0;return t.getHeaderHeight(a.group.groupIndex)}return r(a.dataIndex)}},it=(t,e,o)=>{let r=ot(t,e.getGroupForIndex,o),s=t+r.length,a=e.header?.height??e.header?.width??e.headerHeight,i=typeof a==="number"?(p)=>a:(p)=>{let g=r[p];if(!g)return 0;return a(g.key,p)},f={type:"header",group:ke},H={type:"item",dataIndex:0,group:ke};return{get totalEntries(){return s},get groupCount(){return r.length},get groups(){return r},getEntry:(p)=>{if(r.length===0)return H.dataIndex=p,H.group=ke,H;let g=Ye(r,p),l=r[g];if(p===l.headerLayoutIndex)return f.group=l,f;let h=p-l.headerLayoutIndex-1;return H.dataIndex=l.firstDataIndex+h,H.group=l,H},layoutToDataIndex:(p)=>{if(r.length===0)return p;let g=Ye(r,p),l=r[g];if(p===l.headerLayoutIndex)return-1;let h=p-l.headerLayoutIndex-1;return l.firstDataIndex+h},dataToLayoutIndex:(p)=>{if(r.length===0)return p;let g=rt(r,p),l=r[g],h=p-l.firstDataIndex;return l.headerLayoutIndex+1+h},getGroupAtLayoutIndex:(p)=>{if(r.length===0)return ke;let g=Ye(r,p);return r[g]},getGroupAtDataIndex:(p)=>{if(r.length===0)return ke;let g=rt(r,p);return r[g]},getHeaderHeight:i,rebuild:(p,g)=>{r=ot(p,e.getGroupForIndex,g??o),s=p+r.length}}};var Rt=(t,e,o,r,s=0)=>{let a=o?"width":"height",i=document.createElement("div");return i.className=`${e}-sticky-header`,i.setAttribute("role","presentation"),i.setAttribute("aria-hidden","true"),i.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(o?`position:absolute;top:0;bottom:0;left:${s||0}px`:`position:relative;top:${s||0}px`),i.style[a]=`${r}px`,t.insertBefore(i,t.firstChild),i},lt=(t,e,o,r,s,a=!1,i=0,f,H)=>{let C=a?"width":"height",b=a?"height":"width",P=a?"X":"Y",G=(v,S)=>{v.style[C]=`${S}px`},y=f??Rt(t,s,a,0,i),F=()=>{let v=document.createElement("div");return v.className="sticky-group",v.style.position="absolute",v.style.willChange="transform",v.style[b]="100%",v},p=F(),g=F();y.append(p,g);let l=p,h=g,m=e.groups,M=[],D=[],O=[],R=0,V=()=>{m=e.groups,R=m.length,M=Array(R),D=Array(R),O=Array(R);for(let v=0;v<R;v++)M[v]=H?H(m[v].headerLayoutIndex):o.getOffset(m[v].headerLayoutIndex),D[v]=e.getHeaderHeight(v),O[v]=D[v]};V();let _=-1,Z=0,U=0,re=-1,ie=!1,Se=0,me=!1,pe=(v,S)=>{r(v,S);let w=D[S];return G(v,w),w},d=(v)=>{v.replaceChildren(),v.style.transform=""},n=(v)=>{if(v===_)return;if(_=v,Z=0,U=0,v<0||v>=R){d(l);return}Z=pe(l,v),U=O[v],G(y,Z),l.style.transform=""},u=(v)=>{if(v===Se)return;Se=v;let S=Math.round(v);l.style.transform=`translate${P}(${S}px)`,h.style.transform=`translate${P}(${S+Z}px)`},c=()=>{Se=0,l.style.transform="",h.style.transform=""},E=()=>{if(!me)return;let v=l;l=h,h=v,_=re,Z=_>=0?D[_]:0,U=_>=0?O[_]:0,G(y,Z),d(h),re=-1,me=!1,c()},x=()=>{if(!me)return;d(h),re=-1,me=!1,c()},B=!!f,k=()=>{if(ie)return;if(ie=!0,B)y.style.visibility="";else y.style.display=""},N=()=>{if(!ie)return;if(ie=!1,B)y.style.visibility="hidden";else y.style.display="none";d(l),_=-1,Z=0,U=0,x()},K=(v)=>{if(R===0){if(me)x();if(!ie)k();n(-1);return}if(v<M[0]){N();return}let S=0,w=R-1;while(S<w){let Y=S+w+1>>>1;if(M[Y]+O[Y]<=v)S=Y;else w=Y-1}if(!ie)k();n(S);let j=S+1;if(j<R){let Y=M[j]-v;if(Y<=0&&Y>-U){if(re!==j||!me)re=j,pe(h,j),me=!0;let W=U>0?Y/U*Z:Y;u(W)}else if(Y<=-U){if(me)E()}else if(me)x()}else if(me)x()},ee=()=>{V();let v=_;if(_=-1,Z=0,U=0,v>=0)n(v)},q=()=>{y.remove(),_=-1,Z=0,U=0,re=-1,ie=!1,me=!1};if(!f)y.style.display="none";return{update:K,refresh:ee,show:k,hide:N,destroy:q}};var ut=(t)=>t!==null&&typeof t==="object"&&t.__groupHeader===!0;var ct=(t)=>{let e=Math.max(1,Math.floor(t.columns)),o=t.gap??0,r=t.isHeaderFn,s={row:0,col:0},a=(p)=>{if(p<=0)return 0;if(!r)return Math.ceil(p/e);let g=0,l=0,h=0;for(let m=0;m<p;m++)if(r(m)){if(h++,l)g++,l=0;g++,l=0}else if(l++,l>=e)g++,l=0;if(l)g++;return g},i=(p)=>(s.row=f(p),s.col=H(p),s),f=(p)=>{if(!r)return Math.floor(p/e);let g=0,l=0;for(let h=0;h<=p;h++)if(r(h)){if(l)g++,l=0;if(h===p)return g;g++,l=0}else{if(h===p)return g;if(l++,l>=e)g++,l=0}return g},H=(p)=>{if(!r)return p%e;if(r(p))return 0;let g=0;for(let l=0;l<=p;l++)if(r(l))g=0;else{if(l===p)return g;if(g++,g>=e)g=0}return g},C=(p,g,l,h)=>{if(l<=0){h.start=0,h.end=-1;return}if(!r){h.start=Math.max(0,p*e),h.end=Math.min(l-1,(g+1)*e-1);return}let m=b(p,g,l);h.start=m.start,h.end=m.end},b=(p,g,l)=>{if(l<=0)return{start:0,end:-1};if(!r){let O=Math.max(0,p*e),R=Math.min(l-1,(g+1)*e-1);return{start:O,end:R}}let h=-1,m=-1,M=0,D=0;for(let O=0;O<l;O++){if(r(O)){if(D)M++,D=0;if(M>=p&&M<=g){if(h<0)h=O;m=O}M++,D=0}else{if(M>=p&&M<=g){if(h<0)h=O;m=O}if(D++,D>=e)M++,D=0}if(M>g&&!D)break}if(h<0)return{start:0,end:-1};return{start:h,end:m}},P=(p,g,l)=>{if(g<0||g>=e)return-1;let h=p*e+g;if(h<0||h>=l)return-1;return h},G=(p)=>{let g=(e-1)*o;return Math.max(0,(p-g)/e)};return{get columns(){return e},get gap(){return o},update:(p)=>{if(p.columns!==void 0)e=Math.max(1,Math.floor(p.columns));if(p.gap!==void 0)o=p.gap;if(p.isHeaderFn!==void 0)r=p.isHeaderFn},getTotalRows:a,getPosition:i,getRow:f,getCol:H,getItemRange:b,fillItemRange:C,getItemIndex:P,getColumnWidth:G,getColumnOffset:(p,g)=>{let l=G(g);return p*(l+o)}}};var dt=(t,e=50,o=1/0,r=!0,s="none")=>{let a=t,i=[],f=0,H=0,C=()=>{i=a.map((m,M)=>({def:m,index:M,width:0,minWidth:wt(m.minWidth??e,1),maxWidth:m.maxWidth??o,resizable:m.resizable??r,offset:0}))},b=()=>{if(s==="none"||f<=0||f>=H)return;if(s==="spacer"){f=H;return}let m=H-f,M=f;for(let D=0;D<i.length;D++){let O=i[D];O.width=$e(O.width+m*(O.width/M),O.minWidth,O.maxWidth)}G()},P=(m)=>{if(H=m,i.length===0){f=0;return}let M=0,D=0;for(let O=0;O<i.length;O++){let R=i[O],V=R.def;if(V.width!==void 0)R.width=$e(V.width,R.minWidth,R.maxWidth),M+=R.width;else D++}if(D){let R=Math.max(0,m-M)/D;for(let V=0;V<i.length;V++){let _=i[V];if(_.def.width===void 0)_.width=$e(R,_.minWidth,_.maxWidth)}}G(),b()},G=()=>{let m=0;for(let M=0;M<i.length;M++){let D=i[M];D.offset=m,m+=D.width}f=m},y=(m,M)=>{if(m<0||m>=i.length)return 0;let D=i[m];if(!D.resizable)return D.width;let O=$e(M,D.minWidth,D.maxWidth);if(D.width=O,G(),s==="spacer")b();return O},F=(m)=>i[m],p=(m)=>{if(i.length===0)return;if(m<0)return i[0];if(m>=f)return i[i.length-1];let M=0,D=i.length-1;while(M<D){let O=M+D>>>1,R=i[O];if(m<R.offset)D=O-1;else if(m>=R.offset+R.width)M=O+1;else return R}return i[M]},g=(m)=>{if(m<0||m>=i.length)return 0;return i[m].offset},l=(m)=>{if(m<0||m>=i.length)return 0;return i[m].width},h=(m)=>{a=m,C()};return C(),{get columns(){return i},get totalWidth(){return f},resolve:P,updateColumns:h,resizeColumn:y,getColumn:F,getColumnAtX:p,getColumnOffset:g,getColumnWidth:l}},$e=(t,e,o)=>Math.min(o,Math.max(e,t)),wt=(t,e)=>Math.max(e,t);var mt=(t,e,o,r,s,a)=>{let i=document.createElement("div");i.setAttribute("role","rowgroup");let f=document.createElement("div");f.className=`${o}-table-header`,f.setAttribute("role","row"),f.setAttribute("aria-rowindex","1"),f.style.height=`${e}px`;let H=document.createElement("div");H.className=`${o}-table-header-scroll`,H.setAttribute("role","presentation"),f.appendChild(H),i.appendChild(f),t.insertBefore(i,t.firstChild),t.style.setProperty("--vlist-table-header-height",`${e}px`);let C=[],b=[],P=!0,G=null,y="asc",F=null,p=!1,g=-1,l=0,h=0,m=0,M=(n,u)=>{let c=document.createElement("div");c.className=`${o}-table-header-cell`,c.setAttribute("role","columnheader"),c.setAttribute("aria-colindex",String(u+1)),c.tabIndex=u?-1:0,c.dataset.columnKey=n.def.key,c.addEventListener("focusin",()=>{C[m]?.setAttribute("tabindex","-1"),m=u,c.tabIndex=0});let E=n.def.align;if(E==="center")c.classList.add(`${o}-table-header-cell--center`);else if(E==="right")c.classList.add(`${o}-table-header-cell--right`);let x=document.createElement("div");x.className=`${o}-table-header-content`;let B=n.def.header?n.def.header(n.def):n.def.label;if(typeof B==="string")x.textContent=B;else x.appendChild(B);if(c.appendChild(x),n.def.sortable){let k=document.createElement("span");k.className=`${o}-table-header-sort`,k.setAttribute("aria-hidden","true"),c.appendChild(k),b.push(k),c.classList.add(`${o}-table-header-cell--sortable`)}else b.push(null);if(n.resizable){let k=document.createElement("div");k.className=`${o}-table-header-resize`,k.dataset.resizeIndex=String(u),c.appendChild(k)}return c},D=(n)=>{F=n,H.textContent="",C=[],b=[],m=0;let u=n.columns;for(let c=0;c<u.length;c++){let E=u[c],x=M(E,c);C.push(x),H.appendChild(x)}if(O(n),G)R(G,y)},O=(n)=>{F=n;let u=n.columns;H.style.width=`${n.totalWidth}px`;for(let c=0;c<C.length&&c<u.length;c++){let E=C[c],x=u[c];E.style.width=`${x.width}px`}},R=(n,u)=>{if(G=n,y=u,!F)return;let c=F.columns;for(let E=0;E<b.length&&E<c.length;E++){let x=b[E];if(!x)continue;if(c[E].def.key===n)x.textContent=u==="asc"?"▲":"▼",x.style.opacity="0.7",C[E].setAttribute("aria-sort",u==="asc"?"ascending":"descending");else x.textContent="",x.style.opacity="0",C[E].removeAttribute("aria-sort")}},V=(n)=>{H.style.transform=`translateX(${-n}px)`},_=(n)=>{let u=n.target;if(!u.dataset.resizeIndex)return;if(n.preventDefault(),n.stopPropagation(),g=+u.dataset.resizeIndex,!F)return;let c=F.getColumn(g);if(!c?.resizable)return;p=!0,l=n.clientX,h=c.width,t.classList.add(`${o}--col-resizing`),t.style.cursor="col-resize",u.classList.add(`${o}-table-header-resize--active`),u.setPointerCapture(n.pointerId),u.addEventListener("pointermove",Z),u.addEventListener("pointerup",U),u.addEventListener("pointercancel",U)},Z=(n)=>{if(!p||!F)return;let u=n.clientX-l;if(Math.abs(u)<1)return;let c=Math.max(0,h+u);r(g,c)},U=(n)=>{if(!p)return;let u=n.target;u.removeEventListener("pointermove",Z),u.removeEventListener("pointerup",U),u.removeEventListener("pointercancel",U);try{u.releasePointerCapture(n.pointerId)}catch{}u.classList.remove(`${o}-table-header-resize--active`),t.classList.remove(`${o}--col-resizing`),t.style.cursor="",p=!1,g=-1},re=(n)=>{let u=n.target;if(u.dataset.resizeIndex)return;if(p)return;let c=u;while(c&&!c.dataset.columnKey)if(c=c.parentElement,c===f||c===null)return;let E=c.dataset.columnKey;if(!F)return;let x=F.columns,B=-1;for(let K=0;K<x.length;K++)if(x[K].def.key===E){B=K;break}if(B===-1)return;let k=u.closest("a[href],button,input,select,textarea,[tabindex]");if(k&&k!==c)return;let N=x[B];if(a)a({key:E,index:B,event:n});if(N.def.sortable&&s){let K;if(G===E)K=y==="asc"?"desc":null;else K="asc";s({key:E,index:B,direction:K})}},ie=(n)=>{if(n<0||n>=C.length)return;C[m]?.setAttribute("tabindex","-1"),m=n;let u=C[m];u.tabIndex=0,u.focus()},Se=(n)=>{let u=n.key,c=n.target.closest("a[href],button,input,select,textarea,[tabindex]");if(c&&!c.hasAttribute("data-column-key"))return;if(u==="ArrowRight"){if(n.ctrlKey||n.metaKey){if(!F)return;let E=F.getColumn(m);if(E?.resizable)r(m,E.width+10),n.preventDefault()}else if(m<C.length-1)ie(m+1),n.preventDefault();n.stopPropagation();return}if(u==="ArrowLeft"){if(n.ctrlKey||n.metaKey){if(!F)return;let E=F.getColumn(m);if(E?.resizable)r(m,E.width-10),n.preventDefault()}else if(m>0)ie(m-1),n.preventDefault();n.stopPropagation();return}if(u==="Home"){ie(0),n.preventDefault(),n.stopPropagation();return}if(u==="End"){ie(C.length-1),n.preventDefault(),n.stopPropagation();return}if(u==="Enter"||u===" "){if(!F)return;let E=F.getColumn(m);if(E?.def.sortable&&s){let x;if(G===E.def.key)x=y==="asc"?"desc":null;else x="asc";s({key:E.def.key,index:m,direction:x}),n.preventDefault()}n.stopPropagation();return}if(u==="ArrowDown"){t.focus(),n.preventDefault(),n.stopPropagation();return}};return f.addEventListener("pointerdown",_),f.addEventListener("click",re),f.addEventListener("keydown",Se),{element:f,update:O,updateSort:R,rebuild:D,show:()=>{if(P)return;P=!0,f.style.display=""},hide:()=>{if(!P)return;P=!1,f.style.display="none"},destroy:()=>{f.removeEventListener("pointerdown",_),f.removeEventListener("click",re),f.removeEventListener("keydown",Se),t.style.removeProperty("--vlist-table-header-height"),i.remove(),C=[],b=[],F=null,P=!1},syncScroll:V}};var Ge=(t,e,o)=>{if(String(o).startsWith(we))return!1;let r=we+e;if(t.has(r))return t.delete(r),t.add(o),!0;return!1},ft=(t)=>({selected:new Set(t??[]),focusedIndex:-1,focusVisible:!1}),Ue=(t,e,o)=>{if(o==="none")return t;let r=new Set(t.selected);if(o==="single"){if(r.clear(),e.length>0)r.add(e[0])}else for(let s of e)r.add(s);return{...t,selected:r}},Ze=(t,e)=>{let o=new Set(t.selected);for(let r of e)o.delete(r);return{...t,selected:o}},pt=(t,e,o)=>{if(o==="none")return t;if(t.selected.has(e))return Ze(t,[e]);else return Ue(t,[e],o)},bt=(t,e,o)=>{if(o!=="multiple")return t;return{...t,selected:new Set(e.map((r)=>r.id))}},gt=(t)=>({...t,selected:new Set});var ht=(t,e)=>t.selected.has(e),yt=(t)=>Array.from(t.selected),St=(t,e)=>{let o=[];for(let r of t.selected){let s=e(r);if(s)o.push(s)}return o};var kt=()=>{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}}},vt=(t,e,o,r,s,a,i,f,H,C=()=>0)=>{let b=kt(),P=new Map,G=-1,y=o,F=null,p=null,g=null,l=(S,w)=>{p=S,g=w},h=(S,w)=>{w?S.setAttribute("aria-selected","true"):S.removeAttribute("aria-selected")},m=(S,w,j,Y)=>{S.setAttribute("role",w),S.setAttribute("data-id",String(j)),S.setAttribute("data-index",String(Y))},M=(S)=>String(S).startsWith("__placeholder_"),D=`${s}-item ${s}-table-row`,O=`${s}-item--selected`,R=`${s}-item--focused`,V=`${s}-table-cell`,_=`${s}-table-cell--center`,Z=`${s}-table-cell--right`,U=`${s}-table-cell-skeleton`,re=`${s}-item--odd`,ie=`${s}-item--placeholder`,Se=`${s}-item--replaced`,me=`${s}-table-row ${s}-table-group-header`,pe=`${s}-table-group-header-content`,d=(S,w,j,Y,W=!1)=>{if(j.def.cell){let I=j.def.cell(w,j.def,Y);if(typeof I==="string")S.innerHTML=I;else S.replaceChildren(I)}else{let I=w[j.def.key],le=I!=null?String(I):"";if(W&&le)S.innerHTML=`<span>${le}</span>`;else S.textContent=le}if(W&&S.firstElementChild===null){S.replaceChildren();let I=document.createElement("span");I.className=U,S.appendChild(I)}Re(S);let J=S.parentElement;if(J)J._stamp=0},n=(S,w,j,Y,W=!1)=>{let J=D;if(f){if(F){let I=F(w);if(I>=0&&(I&1)===1)J+=` ${re}`}else if((w&1)===1)J+=` ${re}`}if(W)J+=` ${ie}`;if(j)J+=` ${O}`;if(Y)J+=` ${R}`;S.className=J},u=(S,w)=>{let j=w.def.align;if(j==="center")S.classList.add(_),S.classList.remove(Z);else if(j==="right")S.classList.add(Z),S.classList.remove(_);else S.classList.remove(_,Z)},c=(S,w)=>{let Y=y.columns.length;if(w.length===Y)return w;let W=[];for(let J=0;J<Y;J++){let I;if(J<w.length)I=w[J];else I=document.createElement("div"),I.className=V,S.appendChild(I);W.push(I)}for(let J=Y;J<w.length;J++)w[J].remove();return W},E=(S,w,j,Y)=>{let W=b.acquire(),J=S,I=j.getSize(w),le=j.getOffset(w)-Y;W.style.cssText=`width:${y.totalWidth}px;height:${I}px;transform:translateY(${le}px)`,W.className=me,m(W,"presentation",S.id,w),W.removeAttribute("aria-selected"),W.removeAttribute("aria-rowindex"),W.replaceChildren();let se=document.createElement("div");if(se.className=pe,g){let te=g(J.groupKey,J.groupIndex);if(typeof te==="string")se.innerHTML=te;else se.appendChild(te)}return W.appendChild(se),Re(W),{element:W,cells:[],index:w,isGroupHeader:!0,_lastItem:S,lastItemId:S.id,lastSelected:!1,lastFocused:!1,lastOffset:le,lastHeight:I}},x=(S,w,j,Y,W,J)=>{let I=b.acquire(),le=W.getSize(w),se=W.getOffset(w)-J,te=M(S.id);I.style.cssText=`width:${y.totalWidth}px;height:${le}px;transform:translateY(${se}px)`,n(I,w,j,Y,te),m(I,"row",S.id,w),I.id=`${a}-item-${w}`,I.setAttribute("aria-rowindex",String(w+2)),h(I,j);let Le=c(I,[]),T=y.columns;for(let A=0;A<Le.length&&A<T.length;A++){let X=Le[A],Q=T[A];X.style.cssText=`left:${Q.offset}px;width:${Q.width}px`,X.setAttribute("role","gridcell"),X.setAttribute("aria-colindex",String(A+1)),u(X,Q),d(X,S,Q,w,te)}return{element:I,cells:Le,index:w,isGroupHeader:!1,_lastItem:S,lastItemId:S.id,lastSelected:j,lastFocused:Y,lastOffset:se,lastHeight:le}},B=(S,w,j,Y,W=C())=>{let J=!1,I=i();if(I!==G)G=I,J=!0;let le=null,se=e();F=typeof f==="string"&&H?H():null;for(let te=w.start;te<=w.end;te++){let Le=te-w.start,T=S[Le];if(!T)continue;let A=j.has(T.id),X=te===Y,Q=p?p(T):!1,z=P.get(te);if(z){if(z.isGroupHeader!==Q){b.release(z.element),P.delete(te);let be=Q?E(T,te,se,W):x(T,te,A,X,se,W);if(P.set(te,be),!le)le=document.createDocumentFragment();le.appendChild(be.element);continue}if(Q){if(z._lastItem!==T){let oe=T,ue=z.element.firstElementChild;if(ue&&g){let he=g(oe.groupKey,oe.groupIndex);if(typeof he==="string")ue.innerHTML=he;else ue.replaceChildren(he);Re(z.element)}z.element.setAttribute("data-id",String(T.id)),z._lastItem=T,z.lastItemId=T.id}let ge=se.getOffset(te)-W;if(z.lastOffset!==ge)z.lastOffset=ge,z.element.style.transform=`translateY(${ge}px)`;let Te=se.getSize(te);if(z.lastHeight!==Te)z.lastHeight=Te,z.element.style.height=`${Te}px`}else{let be=z._lastItem!==T,ge=z.lastSelected!==A,Te=z.lastFocused!==X;if(be){let he=z.lastItemId!=null&&M(z.lastItemId),xe=M(T.id);if(!xe&&Ge(j,te,T.id))A=!0;let fe=y.columns;for(let ce=0;ce<z.cells.length&&ce<fe.length;ce++)d(z.cells[ce],T,fe[ce],te,xe);if(n(z.element,te,A,X,xe),z.element.setAttribute("data-id",String(T.id)),h(z.element,A),he&&!xe)z.element.classList.add(Se),setTimeout(()=>{z.element.classList.remove(Se)},300);z._lastItem=T,z.lastItemId=T.id,z.lastSelected=A,z.lastFocused=X}else if(ge||Te)n(z.element,te,A,X,M(T.id)),h(z.element,A),z.lastSelected=A,z.lastFocused=X;let oe=se.getOffset(te)-W;if(z.lastOffset!==oe)z.lastOffset=oe,z.element.style.transform=`translateY(${oe}px)`;let ue=se.getSize(te);if(z.lastHeight!==ue)z.lastHeight=ue,z.element.style.height=`${ue}px`;if(J)z.element.setAttribute("aria-rowindex",String(te+2))}}else{if(Ge(j,te,T.id))A=!0;let be=Q?E(T,te,se,W):x(T,te,A,X,se,W);if(P.set(te,be),!le)le=document.createDocumentFragment();le.appendChild(be.element)}}if(le)t.appendChild(le);for(let[te,Le]of P)if(te<w.start||te>w.end)b.release(Le.element),P.delete(te)},k=(S,w,j,Y)=>{let W=P.get(S);if(!W)return;if(W.isGroupHeader)return;let J=y.columns;for(let I=0;I<W.cells.length&&I<J.length;I++)d(W.cells[I],w,J[I],S);W.element.setAttribute("data-id",String(w.id)),W._lastItem=w,W.lastItemId=w.id,n(W.element,S,j,Y),h(W.element,j),W.lastSelected=j,W.lastFocused=Y},N=(S,w,j)=>{let Y=P.get(S);if(!Y)return;if(Y.isGroupHeader)return;let W=Y.lastSelected!==w,J=Y.lastFocused!==j;if(W||J)n(Y.element,S,w,j),h(Y.element,w),Y.lastSelected=w,Y.lastFocused=j},K=(S)=>{y=S;let w=S.columns;for(let[,j]of P)if(j.element.style.width=`${S.totalWidth}px`,j.cells.length>0)for(let Y=0;Y<j.cells.length&&Y<w.length;Y++){let W=j.cells[Y],J=w[Y];W.style.left=`${J.offset}px`,W.style.width=`${J.width}px`}},ee=(S)=>P.get(S)?.element,q=()=>{for(let[,S]of P)b.release(S.element);P.clear(),G=-1};return{render:B,updateItem:k,updateItemClasses:N,getElement:ee,updateColumnLayout:K,setGroupHeaderFn:l,clear:q,destroy:()=>{q(),b.clear()}}};var xt=(t)=>{let e=Math.max(1,Math.floor(t.columns)),o=t.gap??0,r=t.containerSize,s=t.crossOffset??0,a=t.mainOffset??0,i=0,f=[],H=()=>{let l=(e-1)*o;i=Math.max(0,(r-l)/e),f=Array(e);let h=i+o;for(let m=0;m<e;m++)f[m]=s+m*h};H();let C=[],b=0,P=[],G=(l,h)=>{if(l<=0)return b=0,C=[],[];let m=Array(e).fill(a),M=Array(e);for(let R=0;R<e;R++)M[R]=[];let D=Array(l);for(let R=0;R<l;R++){let V=0,_=m[0];for(let re=1;re<e;re++){let ie=m[re];if(ie<_)_=ie,V=re}let Z=h(R),U=m[V];D[R]={index:R,x:f[V],y:U,lane:V,size:Z,crossSize:i},M[V].push(R),m[V]=U+Z+o}C=M;let O=0;for(let R=0;R<e;R++){let V=m[R],_=V>0?V-o:0;if(_>O)O=_}return b=O,D},y=(l)=>{if(l.length===0)return b;if(b)return b;let h=Array(e).fill(0);for(let M of l){let D=M.y+M.size,O=h[M.lane];if(D>O)h[M.lane]=D}let m=0;for(let M=0;M<e;M++)if(h[M]>m)m=h[M];return m},F=(l,h,m)=>{if(l.length===0||m<=h)return P.length=0,P;if(C.length===0||C.length!==e)return p(l,h,m);P.length=0;for(let M=0;M<e;M++){let D=C[M],O=D.length;if(!O)continue;let R=0,V=O;while(R<V){let _=R+V>>>1,Z=l[D[_]];if(Z.y+Z.size<=h)R=_+1;else V=_}for(let _=R;_<O;_++){let Z=l[D[_]];if(Z.y>=m)break;P.push(Z)}}return P},p=(l,h,m)=>{P.length=0;for(let M of l)if(M.y+M.size>h&&M.y<m)P.push(M);return P};return{get columns(){return e},get gap(){return o},get containerSize(){return r},update:(l)=>{let h=!1;if(l.columns!==void 0){let m=Math.max(1,Math.floor(l.columns));if(m!==e)e=m,h=!0}if(l.gap!==void 0&&l.gap!==o)o=l.gap,h=!0;if(l.containerSize!==void 0&&l.containerSize!==r)r=l.containerSize,h=!0;if(l.crossOffset!==void 0&&l.crossOffset!==s)s=l.crossOffset,h=!0;if(l.mainOffset!==void 0&&l.mainOffset!==a)a=l.mainOffset,h=!0;if(h)H()},calculateLayout:G,getTotalSize:y,getVisibleItems:F}};var Tt=(t,e,o)=>{let r=Array.from(e).sort((i,f)=>i-f);if(r.length<=1)return;let s=[];for(let i=0;i<r.length;i++){let f=o(r[i]);if(f)s.push(f)}if(s.length<=1)return;let a=t.firstChild;for(let i=0;i<s.length;i++){let f=s[i];if(f===a)a=a.nextSibling;else t.insertBefore(f,a)}};var _t=(t=200)=>{let e=[];return{acquire:()=>{let a=e.pop();if(a)return a;let i=document.createElement("div");return i.setAttribute("role","option"),i},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}}},Pt=1,It=(t,e,o,r=!1,s,a,i,f,H=()=>0)=>{let C=_t(),b=new Map,P=new Set,G=0,y="",F=-1,p=!1,g={selected:!1,focused:!1},l=(d,n)=>(g.selected=d,g.focused=n,g),h=`${o}-item ${o}-masonry-item`,m=`${o}-group-header`,M=`${o}-item--selected`,D=`${o}-item--focused`,O=(d,n)=>{if(typeof n==="string")d.innerHTML=n;else d.replaceChildren(n);Re(d)},R=(d,n,u)=>{d.classList.toggle(M,n),d.classList.toggle(D,u)},V=(d,n)=>{let u=Math.round(n.y-U);if(r)d.style.transform=`translate(${u}px, ${Math.round(n.x)}px)`;else d.style.transform=`translate(${Math.round(n.x)}px, ${u}px)`},_=(d,n)=>{if(r)d.style.width=`${n.size}px`,d.style.height=`${n.crossSize}px`;else d.style.width=`${n.crossSize}px`,d.style.height=`${n.size}px`},Z=(d,n,u,c,E)=>{let x=C.acquire(),B=n.__groupHeader,k=l(c,E);if(x.className=B?m:h,x.dataset.index=String(d),x.dataset.id=String(n.id),x.dataset.lane=String(u.lane),B)x.setAttribute("role","presentation"),x.removeAttribute("aria-selected"),x.removeAttribute("aria-setsize"),x.removeAttribute("aria-posinset"),x.removeAttribute("id");else if(p){if(x.setAttribute("role","option"),x.ariaSelected=String(c),a)x.id=`${a}-item-${d}`;if(s){let K=s();if(K!==F)F=K,y=String(K);x.setAttribute("aria-setsize",y);let ee=i?i(d):d+1;x.setAttribute("aria-posinset",String(ee))}}else x.setAttribute("role","listitem"),x.removeAttribute("aria-selected"),x.removeAttribute("aria-setsize"),x.removeAttribute("aria-posinset"),x.removeAttribute("id");_(x,u);let N=e(n,d,k);return O(x,N),R(x,c,E),V(x,u),{element:x,lastItem:n,lastSelected:c,lastFocused:E,lastY:u.y-U,absY:u.y,lastX:u.x,lastSize:u.size,lastCrossSize:u.crossSize,lastSeenFrame:G}},U=0,re=(d,n,u,c,E=H())=>{if(U=E,G++,p=typeof f==="function"?f():f===!0,p&&s){let B=s();if(B!==F){F=B,y=String(B);for(let k of b.values())if(k.element.getAttribute("role")==="option")k.element.setAttribute("aria-setsize",y)}}P.clear();for(let B=0;B<n.length;B++)P.add(n[B].index);let x=null;for(let B=0;B<n.length;B++){let k=n[B],N=k.index,K=d(N);if(!K)continue;let ee=u.has(K.id),q=N===c,v=b.get(N);if(v){let S=v.lastItem!==K,w=v.lastSelected!==ee,j=v.lastFocused!==q,Y=v.lastY!==k.y-U||v.lastX!==k.x,W=v.lastSize!==k.size||v.lastCrossSize!==k.crossSize;if(S){let J=l(ee,q),I=e(K,N,J);if(O(v.element,I),v.element.dataset.id=String(K.id),v.lastItem=K,!K.__groupHeader&&p){let se=i?i(N):N+1;v.element.setAttribute("aria-posinset",String(se))}}if(S||w||j){if(R(v.element,ee,q),p)v.element.ariaSelected=String(ee);else v.element.removeAttribute("aria-selected");v.lastSelected=ee,v.lastFocused=q}if(W)_(v.element,k),v.lastSize=k.size,v.lastCrossSize=k.crossSize;if(Y)V(v.element,k),v.lastY=k.y-U,v.absY=k.y,v.lastX=k.x}else{let S=Z(N,K,k,ee,q);if(!x)x=document.createDocumentFragment();x.appendChild(S.element),b.set(N,S)}}if(x)t.appendChild(x);for(let[B,k]of b)if(P.has(B))k.lastSeenFrame=G;else if(G-k.lastSeenFrame>Pt)C.release(k.element),b.delete(B);else{let N=Math.round(k.absY-U);if(N!==k.lastY){k.lastY=N;let K=Math.round(k.lastX);k.element.style.transform=r?`translate(${N}px, ${K}px)`:`translate(${K}px, ${N}px)`}}},ie=()=>{for(let d of b.values())C.release(d.element);b.clear(),t.innerHTML=""};return{render:re,getElement:(d)=>b.get(d)?.element,updateItemClasses:(d,n,u)=>{let c=b.get(d);if(!c)return;let E=c.lastSelected!==n,x=c.lastFocused!==u;if(E||x)R(c.element,n,u),c.lastSelected=n,c.lastFocused=u},sortDOM:()=>{Tt(t,b.keys(),(d)=>b.get(d)?.element)},clear:ie,destroy:()=>{ie(),C.clear()}}};var Ot=(t,e,o)=>{let r=e;return{getOffset:(s)=>s*t,getSize:(s)=>t,indexAtOffset:(s)=>{if(r===0||t===0)return 0;return Math.max(0,Math.min(Math.floor(s/t),r-1))},getTotalSize:()=>{let s=r*t;return s>0?s-o:0},getTotal:()=>r,rebuild:(s)=>{r=s},invalidate:()=>{},isVariable:()=>!1}};var Lt=(t,e,o,r)=>{while(e<o){let s=e+o+1>>>1;if(t[s]<=r)e=s;else o=s-1}return e},Dt=(t,e,o)=>{let r=0,s=0,a=new Float64Array(0),i=new Float64Array(0),f=new Float64Array(1),H=(b,P)=>{for(let G=b;G<s;G++){if(G<=P){let y=G<<9,F=Math.min(y+512,r),p=0;for(let g=y;g<F;g++)a[g]=p,p+=t(g);i[G]=p}f[G+1]=f[G]+i[G]}},C=(b)=>{r=b,s=Math.ceil(b/512),a=new Float64Array(b),i=new Float64Array(s),f=new Float64Array(s+1),H(0,s-1)};return C(e),{getOffset:(b)=>{if(b<=0)return 0;if(b>=r)return f[s];return f[b>>>9]+a[b]},getSize:(b)=>t(b),indexAtOffset:(b)=>{if(r===0||b<=0)return 0;if(b>=f[s])return r-1;let P=Lt(f,0,s-1,b),G=P<<9;return Lt(a,G,Math.min(G+512,r)-1,b-f[P])},getTotalSize:()=>{let b=f[s];return b>0?b-o:0},getTotal:()=>r,rebuild:(b)=>C(b),invalidate:(b,P=b)=>{if(b>=0&&P<r)H(b>>>9,P>>>9)},isVariable:()=>!0}},Ct=(t,e,o=0)=>{if(typeof t==="number")return Ot(t,e,o);return Dt(t,e,o)};var Et=()=>{let t={},e=(a,i)=>{if(!t[a])t[a]=new Set;return t[a].add(i),()=>o(a,i)},o=(a,i)=>{t[a]?.delete(i)};return{on:e,off:o,emit:(a,i)=>{t[a]?.forEach((f)=>{try{f(i)}catch(H){}})},clear:(a)=>{if(a)delete t[a];else for(let i in t)delete t[i]}}};var Ve=(t={})=>{let{chunkSize:e=100,maxCachedItems:o=5000,evictionBuffer:r=200,onEvict:s}=t,a=new Map,i=0,f=0,H=(d)=>{let n=a.get(d);if(!n)n={items:Array(e),count:0,lastAccess:Date.now()},a.set(d,n);else n.lastAccess=Date.now();return n},C=(d)=>Math.floor(d/e),b=(d)=>d%e,P=()=>i,G=(d)=>{i=d},y=(d)=>{if(d<0||d>=i)return;let n=C(d),u=a.get(n);if(!u)return;return u.items[b(d)]},F=(d)=>{if(d<0||d>=i)return!1;let n=C(d),u=a.get(n);if(!u)return!1;return u.items[b(d)]!==void 0},p=(d,n)=>{let u=C(d),c=H(u),E=b(d),x=c.items[E]===void 0;if(c.items[E]=n,x)c.count++,f++;if(d>=i)i=d+1},g=(d,n)=>{for(let u=0;u<n.length;u++){let c=n[u];if(c!==void 0)p(d+u,c)}},l=(d,n)=>{if(d<0||d>i)return;let u=C(d),c=Array.from(a.keys()).filter((N)=>N>=u).sort((N,K)=>N-K),E=[];for(let N of c){let K=a.get(N),ee=N*e;for(let q=0;q<e;q++){if(K.items[q]===void 0)continue;let v=ee+q;if(v<d)continue;E.push({oldIndex:v,item:K.items[q]})}}for(let{oldIndex:N}of E){let K=C(N),ee=a.get(K);if(!ee)continue;let q=b(N);if(ee.items[q]!==void 0){if(ee.items[q]=void 0,ee.count--,f--,ee.count===0)a.delete(K)}}i++;for(let{oldIndex:N,item:K}of E){let ee=N+1,q=C(ee),v=H(q),S=b(ee);v.items[S]=K,v.count++,f++}let x=C(d),B=H(x),k=b(d);B.items[k]=n,B.count++,f++},h=(d)=>{if(d<0||d>=i)return!1;let n=C(d),u=a.get(n),c=b(d);if(!(u!==void 0&&u.items[c]!==void 0))return!1;let x=n,B=Array.from(a.keys()).filter((N)=>N>=x).sort((N,K)=>N-K),k=[];for(let N of B){let K=a.get(N),ee=N*e;for(let q=0;q<e;q++){if(K.items[q]===void 0)continue;let v=ee+q;if(v<=d)continue;k.push({oldIndex:v,item:K.items[q]})}}if(u.items[c]=void 0,u.count--,f--,u.count===0)a.delete(n);for(let{oldIndex:N}of k){let K=C(N),ee=a.get(K);if(!ee)continue;let q=b(N);if(ee.items[q]!==void 0){if(ee.items[q]=void 0,ee.count--,f--,ee.count===0)a.delete(K)}}for(let{oldIndex:N,item:K}of k){let ee=N-1,q=C(ee),v=H(q),S=b(ee);v.items[S]=K,v.count++,f++}return i--,!0},m=(d,n)=>{let u=[];for(let c=d;c<=n&&c<i;c++)u.push(y(c));return u},M=(d,n)=>{for(let u=d;u<=n&&u<i;u++)if(!F(u))return!1;return!0},D=()=>{let d=[],n=null,u=Array.from(a.keys()).sort((c,E)=>c-E);for(let c of u){let E=a.get(c);if(!E)continue;let x=c*e;for(let B=0;B<e;B++){let k=x+B;if(k>=i)break;if(E.items[B]!==void 0)if(n===null)n={start:k,end:k};else if(k===n.end+1)n.end=k;else d.push(n),n={start:k,end:k};else if(n!==null)d.push(n),n=null}}if(n!==null)d.push(n);return d},O=(d,n)=>{let u=[],c=null;for(let E=d;E<=n&&E<i;E++)if(!F(E))if(c===null)c={start:E,end:E};else c.end=E;else if(c!==null)u.push(c),c=null;if(c!==null)u.push(c);return u},R=(d)=>a.has(d),V=(d)=>{let n=a.get(d);if(!n)return!1;let u=d*e,c=Math.min(e,i-u);return n.count>=c},_=(d)=>{let n=a.get(d);if(n)n.lastAccess=Date.now()},Z=(d,n)=>{if(d>n||a.size===0)return;let u=Date.now(),c=C(Math.max(0,d)),E=C(Math.min(i-1,n));for(let x=c;x<=E;x++){let B=a.get(x);if(B)B.lastAccess=u}},U=(d,n)=>{if(f<=o)return 0;let u=Math.max(0,d-r),c=Math.min(i-1,n+r),E=C(u),x=C(c),B=0,k=[];for(let[N,K]of a)if(N<E||N>x)B+=K.count,k.push(N),f-=K.count,a.delete(N);if(B>0&&s)s(B,k);return B},re=()=>{if(f<=o)return 0;let d=Array.from(a.entries()).sort(([,c],[,E])=>c.lastAccess-E.lastAccess),n=0,u=[];for(let[c,E]of d){if(f<=o)break;n+=E.count,f-=E.count,u.push(c),a.delete(c)}if(n>0&&s)s(n,u);return n},ie=()=>({totalItems:i,cachedItems:f,cachedChunks:a.size,chunkSize:e,maxCachedItems:o,memoryEfficiency:i>0?1-f/i:1}),Se=()=>f,me=()=>{a.clear(),f=0};return{chunkSize:e,maxCachedItems:o,getTotal:P,setTotal:G,get:y,has:F,set:p,setRange:g,insert:l,delete:h,getRange:m,isRangeLoaded:M,getLoadedRanges:D,findUnloadedRanges:O,getChunkIndex:C,isChunkLoaded:R,isChunkFullyLoaded:V,touchChunk:_,touchChunksForRange:Z,evictDistant:U,evictToLimit:re,getStats:ie,getCachedCount:Se,clear:me,reset:()=>{me(),i=0}}},Fe=(t)=>{if(t.length===0)return[];let e=[...t].sort((r,s)=>r.start-s.start),o=[{...e[0]}];for(let r=1;r<e.length;r++){let s=e[r],a=o[o.length-1];if(s.start<=a.end+1)a.end=Math.max(a.end,s.end);else o.push({...s})}return o},qe=(t,e,o)=>{let r=Math.floor(t.start/o)*o,s=Math.ceil((t.end+1)/o)*o-1,a={start:r,end:s};if(e.length===0)return[a];let i=[],f=Fe(e),H=a.start;for(let C of f){if(C.end<H)continue;if(C.start>a.end)break;if(C.start>H)i.push({start:H,end:Math.min(C.start-1,a.end)});if(H=C.end+1,H>a.end)break}if(H<=a.end)i.push({start:H,end:a.end});return i};var Be=(t={})=>{let{maskCharacter:e=tt,maxSampleSize:o=nt}=t,r=[],s=!1,a=(b)=>{if(s||b.length===0)return;let P=Math.min(b.length,o);for(let G=0;G<P;G++){let y=b[G];if(!y||typeof y!=="object")continue;let F={},p=!1;for(let[g,l]of Object.entries(y)){if(g.startsWith("_")||g==="id")continue;F[g]=String(l??"").length,p=!0}if(p)r.push(F)}s=!0},i=()=>s,f=(b)=>{let P={id:`${we}${b}`,[We]:!0,_index:b};if(r.length===0)return P.label=e.repeat(12),P;let G=r[b%r.length];for(let[y,F]of Object.entries(G))P[y]=e.repeat(Math.max(1,F));return P};return{analyzeStructure:a,hasAnalyzedStructure:i,generate:f,generateRange:(b,P)=>{let G=[];for(let y=b;y<=P;y++)G.push(f(y));return G},clear:()=>{r=[],s=!1}}},He=(t)=>{if(!t||typeof t!=="object")return!1;return t[We]===!0},Xe=(t)=>t.filter((e)=>!He(e));var $t=50,Mt=(t={})=>{let{adapter:e,initialItems:o,initialTotal:r,storage:s,placeholder:a,pageSize:i=$t,maxConcurrent:f=0,onStateChange:H,onDataChange:C,onItemsLoaded:b,onItemsEvicted:P,onLoadError:G}=t,y=Ve({...s,onEvict:(T,A)=>{P?.(T),U(),Z()}}),F=null,p=()=>{if(!F)F=Be(a);return F},g=new Map,l=!1,h,m=!0,M,D,O=[],R=0,V=new Map,_=()=>{for(let T of V.values())T[1].abort();V.clear()},Z=()=>{H?.(c())},U=()=>{C?.()},re=()=>{g.clear();let T=y.getLoadedRanges();for(let A of T)for(let X=A.start;X<=A.end;X++){let Q=y.get(X);if(Q&&!He(Q))g.set(Q.id,X)}},ie=(T,A)=>{if(!He(A))g.set(A.id,T)},Se=(T)=>{g.delete(T)},me=(T,A)=>`${T}-${A}`,pe=()=>y.getTotal(),d=()=>y.getCachedCount(),n=()=>l,u=()=>m,c=()=>({total:y.getTotal(),cached:y.getCachedCount(),isLoading:l,pendingRanges:O,error:h,hasMore:m,cursor:M}),E=()=>y,x=()=>p(),B=(T)=>{let A=y.get(T);if(A!==void 0)return A;if(T>=0&&T<y.getTotal())return p().generate(T);return},k=(T)=>{let A=g.get(T);if(A===void 0)return;return y.get(A)},N=(T)=>g.get(T)??-1,K=(T)=>{let A=y.get(T);return A!==void 0&&!He(A)},ee=(T,A)=>{let X=[],Q=y.getTotal();y.touchChunksForRange(T,Math.min(A,Q-1));for(let z=T;z<=A&&z<Q;z++){let be=y.get(z);if(be!==void 0)X.push(be);else X.push(p().generate(z))}return X},q=(T)=>{y.setTotal(T),m=y.getCachedCount()<T,U(),Z()},v=(T,A=0,X)=>{if(e&&T.length>0){let Q=p();if(!Q.hasAnalyzedStructure())Q.analyzeStructure(T)}for(let Q=0;Q<T.length;Q++){let z=T[Q];if(z!==void 0){let be=A+Q;y.set(be,z),ie(be,z)}}if(X!==void 0)y.setTotal(X);else if(A+T.length>y.getTotal())y.setTotal(A+T.length);if(y.getCachedCount()>=y.getTotal()&&y.getTotal()>0)m=!1;U(),Z(),b?.(T,A,y.getTotal())},S=(T,A)=>{let X=y.get(T);if(!X)return!1;let Q=X.id,z={...X,...A};if(y.set(T,z),A.id!==void 0&&A.id!==Q)Se(Q);return ie(T,z),U(),Z(),!0},w=(T,A)=>{y.insert(A,T),re(),_(),U(),Z()},j=(T)=>{let A=g.get(T);if(A===void 0)return!1;if(!y.delete(A))return!1;return re(),_(),U(),Z(),!0},Y=async(T,A)=>{if(!e)return;let X=y.chunkSize,Q=Math.floor(T/X),z=Math.floor(A/X),be=X*2;for(let[oe,ue]of V){let he=oe.indexOf("-"),xe=parseInt(oe.slice(0,he),10);if(Math.abs(xe-T)>be)ue[1].abort(),V.delete(oe)}let ge=[],Te=[];for(let oe=Q;oe<=z;oe++){let ue=oe*X,he=ue+X-1,xe=me(ue,he);if(y.isChunkFullyLoaded(oe))continue;let ce=V.get(xe);if(ce)Te.push(ce[0]);else ge.push({start:ue,end:he})}if(ge.length===0){if(Te.length>0)await Promise.all(Te);return}if(f>0){let oe=V.size+ge.length;if(oe>f){let ue=(T+A)/2,he=Math.min(oe-f,V.size);while(he>0){let fe=null,ce=-1,ve=null;for(let[Ce,Ne]of V){let Pe=Ce.indexOf("-"),Oe=parseInt(Ce.slice(0,Pe),10),De=parseInt(Ce.slice(Pe+1),10),Ee=Math.abs((Oe+De)/2-ue);if(Ee>ce)ce=Ee,fe=Ce,ve=Ne[1]}if(fe)ve.abort(),V.delete(fe);he--}let xe=f-V.size;if(ge.length>xe)ge.sort((fe,ce)=>{let ve=Math.abs((fe.start+fe.end)/2-ue),Ce=Math.abs((ce.start+ce.end)/2-ue);return ve-Ce}),ge.length=Math.max(0,xe)}}if(ge.length===0){if(Te.length>0)await Promise.all(Te);return}for(let oe of ge){let ue=me(oe.start,oe.end),he=new AbortController,xe=(async()=>{O.push(oe),l=!0,h=void 0,Z();try{let fe=oe.end-oe.start+1,ce={offset:oe.start,limit:fe,cursor:oe.start===D?M:void 0,signal:he.signal},ve=await e.read(ce);if(v(ve.items,oe.start,ve.total),ve.cursor)M=ve.cursor,D=oe.start+ve.items.length;let Ce=oe.start+ve.items.length;if(Ce>=R){if(R=Ce,ve.hasMore!==void 0)m=ve.hasMore;else if(ve.total!==void 0)m=Ce<ve.total}}catch(fe){if(fe?.name==="AbortError")return;h=fe instanceof Error?fe:Error(String(fe)),G?.(h,oe)}finally{V.delete(ue);let fe=O.findIndex((ce)=>ce.start===oe.start&&ce.end===oe.end);if(fe>=0)O.splice(fe,1);l=V.size>0,Z()}})();V.set(ue,[xe,he]),Te.push(xe)}await Promise.all(Te)},W=async(T,A)=>{if(y.isRangeLoaded(T,A))return;await Y(T,A)},J=async()=>{if(!e)return;await Y(0,i-1)},I=async()=>{if(!e||l||!m)return!1;let T=y.getCachedCount(),A=y.getTotal(),X=T,Q=Math.min(X+i-1,A>0?A-1:X+i-1);if(X>=A&&A>0)return m=!1,!1;return await Y(X,Q),y.getCachedCount()>T},le=async()=>{if(y.clear(),g.clear(),F)F.clear();_(),O=[],l=!1,M=void 0,D=void 0,m=!0,R=0,h=void 0,U(),Z()},se=(T,A)=>{if(y.evictDistant(T,A)>0)re()},te=()=>{y.clear(),g.clear(),M=void 0,D=void 0,h=void 0,O=[],l=!1,U(),Z()},Le=()=>{if(y.reset(),g.clear(),F)F.clear();M=void 0,D=void 0,m=!0,R=0,h=void 0,O=[],l=!1,U(),Z()};if(o&&o.length>0)v(o,0,r??o.length);else if(r!==void 0)y.setTotal(r),U(),Z();return{getState:c,getTotal:pe,getCached:d,getIsLoading:n,getHasMore:u,getStorage:E,getPlaceholders:x,getItem:B,getItemById:k,getIndexById:N,isItemLoaded:K,getItemsInRange:ee,setTotal:q,setItems:v,updateItem:S,insertItem:w,removeItem:j,loadRange:Y,ensureRange:W,loadInitial:J,loadMore:I,reload:le,evictDistant:se,clear:te,reset:Le}};var Gt=0,Vt=1000,Ft=15,Bt=!0,Nt=16,Kt=!0,_e=2,Wt="scroll",Yt=350,Ut=12,Zt=(t)=>{if(typeof t!=="object"){let e=t??_e;return{top:e,right:e,bottom:e,left:e}}return{top:t.top??_e,right:t.right??_e,bottom:t.bottom??_e,left:t.left??_e}},At=(t,e,o={},r="vlist",s=!1,a,i,f)=>{let H=navigator.userAgentData?.platform||navigator.platform+navigator.userAgent,C=o.platform?o.platform==="windows":!/Mac|Android/i.test(H),{autoHide:b=!C,autoHideDelay:P=Vt,minThumbSize:G=Ft,showOnHover:y=Bt,showOnViewportEnter:F=Kt,clickBehavior:p=Wt}=o,g=p==="page"?"scroll":p,l=a??t,h=Zt(o.padding),m=s?h.left:h.top,M=s?h.right:h.bottom,D=s?h.bottom:h.right,O=o.hoverZoneWidth??D+Nt,R=!0,V=0,_=0,Z=0,U=0,re=!1,ie=!1,Se=0,me=0,pe=0,d=null,n=!1,u=null,c=null,E=-1,x=-1,B=-1,k=-1,N=-1,K=t.id?"":(()=>{let L;do L=`${r}-scrollport-${++Gt}`;while(document.getElementById(L));return t.id=L,L})(),ee=0,q=0,v=null,S=null,w=null,j=s?"width":"height",Y=s?"translateX":"translateY",W=s?(L)=>L.clientX:(L)=>L.clientY,J=s?"left":"top",I=document.createElement("div"),le=document.createElement("div"),se=document.createElement("div"),te=s?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",Le=()=>{if(l===t)return;let L=t.offsetTop;I.style[s?"left":"top"]=L?`calc(var(${te}) + ${L}px)`:`var(${te})`,se.style[s?"left":"top"]=`${L}px`},T=()=>{if(I.className=`${r}-scrollbar`,I.setAttribute("role","scrollbar"),I.setAttribute("aria-controls",t.id),I.setAttribute("aria-orientation",s?"horizontal":"vertical"),I.setAttribute("aria-label",t.getAttribute("aria-label")||"Scroll"),I.setAttribute("aria-valuemin","0"),I.tabIndex=0,le.className=`${r}-scrollbar__thumb`,s)I.classList.add(`${r}-scrollbar--horizontal`);if(o.padding!==void 0)l.style.setProperty("--vlist-custom-scrollbar-padding-top",`${h.top}px`),l.style.setProperty("--vlist-custom-scrollbar-padding-right",`${h.right}px`),l.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${h.bottom}px`),l.style.setProperty("--vlist-custom-scrollbar-padding-left",`${h.left}px`);if(o.minThumbSize!==void 0)I.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${G}px`);if(I.appendChild(le),l.appendChild(I),se.className=`${r}-scrollbar__hover`,s)se.classList.add(`${r}-scrollbar__hover--horizontal`),se.style.height=`${O}px`;else se.style.width=`${O}px`;if(l.appendChild(se),l!==t)Le()},A=()=>{if(d)clearTimeout(d),d=null},X=()=>{if(!b)return;A(),d=setTimeout(z,P)},Q=()=>{if(!R||V<=_)return;if(A(),!n)I.classList.add(`${r}-scrollbar--visible`),n=!0;if(b&&!re&&!ie&&document.activeElement!==I)X()},z=()=>{if(re||ie||document.activeElement===I)return;I.classList.remove(`${r}-scrollbar--visible`),n=!1},be=(L,ne)=>{if(V=L,_=ne,Le(),ge(pe),!R||V<=_){I.style.display="none",I.classList.remove(`${r}-scrollbar--visible`),n=!1;return}I.style.display="";let ae=Math.max(0,_-m-M),de=_/V;if(Z=Math.max(G,de*ae),le.style[j]=`${Z}px`,U=ae-Z,ge(pe),!b)Q()},ge=(L)=>{let ne=Math.max(0,V-_);if(pe=Math.max(0,Math.min(L,ne)),E!==ne)E=ne,I.setAttribute("aria-valuemax",String(ne));if(x!==pe)x=pe,I.setAttribute("aria-valuenow",String(pe));let ae=i?.(),de=ae?.getTotal()??0,ye=de?ae.indexAtOffset(pe)+1:0;if(ye!==B||de!==k)B=ye,k=de,I.setAttribute("aria-valuetext",`Row ${ye} of ${de}`);if(ne<=0||U<=0)return;let Me=pe/ne*U;if(Me!==N)N=Me,le.style.transform=`${Y}(${Me}px)`},Te=(L)=>{if(!R||L.target!==I||document.activeElement!==I)return;if(L.stopPropagation(),L.altKey||L.ctrlKey||L.metaKey)return;let ne=i?.(),ae=ne?.getSize(ne.indexAtOffset(pe))??40,de=pe;switch(L.key){case(s?"ArrowLeft":"ArrowUp"):de-=ae;break;case(s?"ArrowRight":"ArrowDown"):de+=ae;break;case"PageUp":de-=_;break;case"PageDown":de+=_;break;case"Home":de=0;break;case"End":de=V;break;default:return}L.preventDefault(),e(Math.max(0,Math.min(de,Math.max(0,V-_)))),Q()},oe=(L)=>{if(L.target===le||g!=="jump"||U<=0)return;let ne=V-_,ae=I.getBoundingClientRect(),de=W(L)-ae[J],ye=Math.max(0,Math.min(de-Z/2,U));e(ye/U*ne),Q()},ue=()=>{if(v!==null)clearTimeout(v),v=null;if(S!==null)cancelAnimationFrame(S),S=null;w=null},he=(L)=>{let ne=U>0?q/L*U:0;if(ee<ne)return-1;if(ee>=ne+Z)return 1;return 0},xe=()=>{let L=V-_,ne=he(L);if(ne===0){ue();return}if(ne===-1){if(q<=0){ue();return}let ae=Math.max(0,q-_);q=ae,e(ae)}else{if(q>=L){ue();return}let ae=Math.min(L,q+_);q=ae,e(ae)}Q()},fe=(L)=>{if(w===null){w=L,S=requestAnimationFrame(fe);return}let ne=V-_,ae=L-w;w=L;let de=he(ne);if(de===0){ue();return}let ye=Ut*_/1000,Me=Math.min(ye*ae,_);if(de===-1){if(q<=0){ue();return}let Ae=Math.max(0,q-Me);q=Ae,e(Ae)}else{if(q>=ne){ue();return}let Ae=Math.min(ne,q+Me);q=Ae,e(Ae)}A(),S=requestAnimationFrame(fe)},ce=(L)=>{if(L&&L.pointerId!==u)return;let ne=u,ae=c;if(u=null,c=null,re=!1,I.classList.remove(`${r}-scrollbar--dragging`),ue(),ne!==null&&ae?.hasPointerCapture(ne))ae.releasePointerCapture(ne);X()},ve=(L)=>{if(!R||L.button!==0||u!==null||U<=0)return;if(L.preventDefault(),L.stopPropagation(),u=L.pointerId,re=L.target===le,c=re?le:L.currentTarget,c.setPointerCapture(u),A(),re)Se=W(L),me=pe,I.classList.add(`${r}-scrollbar--dragging`);else if(g==="jump")oe(L);else ee=W(L)-I.getBoundingClientRect()[J],q=pe,xe(),v=setTimeout(()=>{S=requestAnimationFrame(fe)},Yt);Q()},Ce=(L)=>{if(!re||L.pointerId!==u)return;L.stopPropagation();let ne=W(L)-Se,ae=Math.max(0,V-_),de=Math.max(0,Math.min(me+ne/U*ae,ae));ge(de),e(de)},Ne=()=>{if(F)Q()},Pe=()=>{if(!re){if(ie=!1,b)X()}},Oe=()=>{ie=!0,A(),Q()},De=()=>{if(ie=!1,!re&&b)X()},Ee=["width","radius","thumb-color","track-color"],Ke=(L,ne)=>l.style.setProperty(`--vlist-custom-scrollbar-${L}`,ne),ze=Ee.map((L)=>l.style.getPropertyValue(`--vlist-custom-scrollbar-${L}`)),je=ze.slice(0,2),Je=[],Qe=()=>{for(let ye=0;ye<2;ye++){let Me=Ee[ye],Ae=l.style.getPropertyValue(`--vlist-custom-scrollbar-${Me}`);if(Ae!==Je[ye])je[ye]=Ae;Ke(Me,je[ye])}let L=getComputedStyle(f??l),ne=o.width??L.getPropertyValue("scrollbar-width"),ae=L.getPropertyValue("scrollbar-color").match(/[\w-]+\([^)]*\)|\S+/g);R=o.enabled!==!1&&ne!=="none";let de=[typeof o.width==="number"?`${o.width}px`:L.getPropertyValue("--vlist-custom-scrollbar-width").trim()||(ne==="thin"||!C?"6px":"14px"),typeof o.radius==="number"?`${o.radius}px`:L.getPropertyValue("--vlist-custom-scrollbar-radius").trim()||(C?"0px":"4px"),o.thumbColor??(ae?.length===2?ae[0]:ze[2]),o.trackColor??(ae?.length===2?ae[1]:ze[3])];for(let ye=0;ye<Ee.length;ye++)Ke(Ee[ye],de[ye]);if(Je=de.slice(0,2),se.style.display=R?"":"none",t.classList.toggle(`${r}-viewport--gutter`,R&&!!o.gutter),!R)ce();be(V,_)},Ht=()=>{A(),ue(),ce(),A();for(let L of et)L();for(let L=0;L<Ee.length;L++)Ke(Ee[L],ze[L]);if(t.classList.remove(`${r}-viewport--gutter`),se.remove(),l.style.removeProperty("--vlist-custom-scrollbar-padding-top"),l.style.removeProperty("--vlist-custom-scrollbar-padding-right"),l.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),l.style.removeProperty("--vlist-custom-scrollbar-padding-left"),I.remove(),K&&t.id===K)t.removeAttribute("id")};T();let et=[],Ie=(L,ne,ae)=>{L.addEventListener(ne,ae),et.push(()=>L.removeEventListener(ne,ae))};for(let L of[I,le,se])Ie(L,"pointerdown",ve),Ie(L,"pointermove",Ce),Ie(L,"pointerup",ce),Ie(L,"pointercancel",ce),Ie(L,"lostpointercapture",ce);if(Ie(I,"keydown",Te),Ie(I,"focus",Q),Ie(I,"blur",X),Ie(t,"mouseenter",Ne),Ie(t,"mouseleave",Pe),Ie(I,"mouseenter",Oe),Ie(I,"mouseleave",De),y)Ie(se,"mouseenter",Oe),Ie(se,"mouseleave",De);return Qe(),{refresh:Qe,show:Q,hide:z,updateBounds:be,updatePosition:ge,isVisible:()=>n,destroy:Ht}};function qt(t){let e=0,o=0,r=0;function s(){return r>0?o/r:0}function a(H){if(e=H,H>0.1&&H<50)o+=H,r++}function i(){let H=t.getTotal();if(H===0)return 0;let C=t.getItemSize();if(C<=0)return 0;let b=t.getContainerSize();if(b<=0)return 0;let P=t.getScrollPosition(),G=typeof t.getColumns==="function"?t.getColumns():1,y=Math.ceil(H/G),F=Math.max(0,y*C-b),p=Math.max(0,Math.min(P,F)),g=Math.ceil((p+b)/C);return Math.min(g*G,H)}function f(){let H=t.getTotal(),C=i();return{progress:H>0?Math.min(100,Math.max(0,C/H*100)):0,velocity:e,velocityAvg:s(),itemCount:C,total:H}}return{getState:f,onVelocity:a}}export{st as buildLayoutItems,qe as calculateMissingRanges,gt as clearSelection,Mt as createAsyncManager,Et as createEmitter,ct as createGridLayout,it as createGroupLayout,at as createGroupedSizeFn,xt as createMasonryLayout,It as createMasonryRenderer,Be as createPlaceholderManager,At as createScrollbar,ft as createSelectionState,Ct as createSizeCache,Ve as createSparseStorage,qt as createStats,lt as createStickyHeader,mt as createTableHeader,dt as createTableLayout,vt as createTableRenderer,Ze as deselectItems,Xe as filterPlaceholders,yt as getSelectedIds,St as getSelectedItems,ut as isGroupHeader,He as isPlaceholderItem,ht as isSelected,Fe as mergeRanges,bt as selectAll,Ue as selectItems,pt as toggleSelection};
@@ -0,0 +1,5 @@
1
+ import type { VListItem } from "../../types";
2
+ import type { PluginContext } from "../../core/types";
3
+ /** Only focus owners import this: removal recovery costs no core/layout bytes. */
4
+ export declare function retainFocus<T extends VListItem>(ctx: PluginContext<T>, blur: () => void): () => boolean;
5
+ //# sourceMappingURL=focus.d.ts.map
@@ -22,7 +22,16 @@ export type TableFillMode = "stretch" | "spacer";
22
22
  export interface TableColumn<T extends VListItem = VListItem> {
23
23
  /** Unique column key — used for identification and as default item property accessor */
24
24
  key: string;
25
- /** Header label — string or DOM element */
25
+ /**
26
+ * Header label — string or DOM element.
27
+ *
28
+ * A supplied control outside the focusable set (`a[href]`, `button`, `input`,
29
+ * `select`, `textarea`, `[tabindex]`) — a custom element with a button in its
30
+ * shadow root, or a `div` with `role="button"` and no `tabindex` — runs its
31
+ * own handler and the click still reaches the cell, which sorts the column
32
+ * when it is sortable: give it `tabindex`, or call `stopPropagation()` in its
33
+ * handler. For an action a keyboard user must reach, supply a `button`.
34
+ */
26
35
  label: string | HTMLElement;
27
36
  /**
28
37
  * Initial column width in pixels.
@@ -251,7 +260,15 @@ export interface ColumnSortEvent {
251
260
  /** Current sort direction (toggles on each click: null → asc → desc → null) */
252
261
  direction: "asc" | "desc" | null;
253
262
  }
254
- /** Payload for column:click event */
263
+ /**
264
+ * Payload for column:click event.
265
+ *
266
+ * Emitted when a header cell is clicked — before `column:sort` for a sortable
267
+ * column. A click on interactive content the caller supplied inside the cell (a
268
+ * button in the label) is left to that content and emits neither. A pointer
269
+ * click or tap only: Enter and Space emit `column:sort` on a sortable header
270
+ * and never this event.
271
+ */
255
272
  export interface ColumnClickEvent {
256
273
  /** Column key */
257
274
  key: string;
package/dist/size.json CHANGED
@@ -1 +1 @@
1
- {"base":{"minified":"27.3","gzipped":"10.3","minBytes":27986,"gzBytes":10539},"synthetic":{"minified":"34.2","gzipped":"12.9","minBytes":35039,"gzBytes":13192},"synthetic + carousel":{"minified":"49.3","gzipped":"18.1","minBytes":50498,"gzBytes":18513},"synthetic + sortable":{"minified":"46.1","gzipped":"16.5","minBytes":47232,"gzBytes":16885},"createStats":{"minified":"27.9","gzipped":"10.5","minBytes":28588,"gzBytes":10770},"synthetic + createStats":{"minified":"34.8","gzipped":"13.1","minBytes":35641,"gzBytes":13422},"native":{"minified":"27.3","gzipped":"10.3","minBytes":27986,"gzBytes":10536},"vue":{"minified":"27.7","gzipped":"10.5","minBytes":28376,"gzBytes":10722},"svelte":{"minified":"27.5","gzipped":"10.4","minBytes":28171,"gzBytes":10626},"solid":{"minified":"27.6","gzipped":"10.4","minBytes":28283,"gzBytes":10688},"react":{"minified":"27.8","gzipped":"10.5","minBytes":28423,"gzBytes":10717},"react + grid":{"minified":"35.2","gzipped":"13.1","minBytes":36010,"gzBytes":13373},"a11y":{"minified":"31.2","gzipped":"11.7","minBytes":31938,"gzBytes":11988},"selection":{"minified":"36.9","gzipped":"13.3","minBytes":37809,"gzBytes":13568},"data":{"minified":"41.0","gzipped":"15.1","minBytes":41945,"gzBytes":15449},"scrollbar":{"minified":"35.5","gzipped":"13.2","minBytes":36335,"gzBytes":13499},"sortable":{"minified":"39.2","gzipped":"13.9","minBytes":40170,"gzBytes":14245},"groups":{"minified":"43.4","gzipped":"15.7","minBytes":44439,"gzBytes":16060},"page":{"minified":"29.9","gzipped":"11.2","minBytes":30588,"gzBytes":11478},"snapshots":{"minified":"30.6","gzipped":"11.4","minBytes":31366,"gzBytes":11697},"transition":{"minified":"34.1","gzipped":"12.3","minBytes":34883,"gzBytes":12570},"autosize":{"minified":"30.6","gzipped":"11.5","minBytes":31336,"gzBytes":11739},"grid":{"minified":"34.7","gzipped":"12.9","minBytes":35573,"gzBytes":13179},"table":{"minified":"45.8","gzipped":"16.2","minBytes":46881,"gzBytes":16634},"masonry":{"minified":"39.4","gzipped":"14.7","minBytes":40373,"gzBytes":15056},"tree":{"minified":"43.5","gzipped":"15.7","minBytes":44581,"gzBytes":16050},"search":{"minified":"36.9","gzipped":"13.6","minBytes":37750,"gzBytes":13912},"carousel":{"minified":"43.2","gzipped":"15.8","minBytes":44286,"gzBytes":16154}}
1
+ {"base":{"minified":"27.3","gzipped":"10.3","minBytes":27986,"gzBytes":10539},"synthetic":{"minified":"34.2","gzipped":"12.9","minBytes":35039,"gzBytes":13192},"synthetic + carousel":{"minified":"49.3","gzipped":"18.1","minBytes":50498,"gzBytes":18513},"synthetic + sortable":{"minified":"46.1","gzipped":"16.5","minBytes":47232,"gzBytes":16885},"createStats":{"minified":"27.9","gzipped":"10.5","minBytes":28588,"gzBytes":10770},"synthetic + createStats":{"minified":"34.8","gzipped":"13.1","minBytes":35641,"gzBytes":13422},"native":{"minified":"27.3","gzipped":"10.3","minBytes":27986,"gzBytes":10536},"vue":{"minified":"27.7","gzipped":"10.5","minBytes":28376,"gzBytes":10722},"svelte":{"minified":"27.5","gzipped":"10.4","minBytes":28171,"gzBytes":10626},"solid":{"minified":"27.6","gzipped":"10.4","minBytes":28283,"gzBytes":10688},"react":{"minified":"27.8","gzipped":"10.5","minBytes":28423,"gzBytes":10717},"react + grid":{"minified":"35.2","gzipped":"13.1","minBytes":36010,"gzBytes":13373},"a11y":{"minified":"32.0","gzipped":"12.0","minBytes":32776,"gzBytes":12299},"selection":{"minified":"37.8","gzipped":"13.6","minBytes":38670,"gzBytes":13892},"data":{"minified":"41.0","gzipped":"15.1","minBytes":41945,"gzBytes":15449},"scrollbar":{"minified":"35.5","gzipped":"13.2","minBytes":36335,"gzBytes":13499},"sortable":{"minified":"39.2","gzipped":"13.9","minBytes":40170,"gzBytes":14245},"groups":{"minified":"43.4","gzipped":"15.7","minBytes":44439,"gzBytes":16060},"page":{"minified":"29.9","gzipped":"11.2","minBytes":30588,"gzBytes":11478},"snapshots":{"minified":"30.6","gzipped":"11.4","minBytes":31366,"gzBytes":11697},"transition":{"minified":"34.1","gzipped":"12.3","minBytes":34883,"gzBytes":12570},"autosize":{"minified":"30.6","gzipped":"11.5","minBytes":31336,"gzBytes":11739},"grid":{"minified":"34.7","gzipped":"12.9","minBytes":35573,"gzBytes":13179},"table":{"minified":"46.3","gzipped":"16.4","minBytes":47392,"gzBytes":16744},"masonry":{"minified":"39.4","gzipped":"14.7","minBytes":40373,"gzBytes":15056},"tree":{"minified":"43.1","gzipped":"15.6","minBytes":44160,"gzBytes":15933},"search":{"minified":"36.9","gzipped":"13.6","minBytes":37750,"gzBytes":13912},"carousel":{"minified":"43.2","gzipped":"15.8","minBytes":44286,"gzBytes":16154}}
package/dist/version.json CHANGED
@@ -1 +1 @@
1
- {"version":"3.1.0-next.3","commit":"b458229","builtAt":"2026-10-01T07:42:43.065Z","released":true}
1
+ {"version":"3.1.1","commit":"b626354","builtAt":"2026-10-02T22:57:25.524Z","released":true}
@@ -1 +1 @@
1
- .vlist--table{display:flex;flex-direction:column;overflow:hidden;min-height:inherit}.vlist--table .vlist-viewport{flex:1;min-height:0;height:auto;overflow:auto}.vlist--table .vlist-table-header{position:static}.vlist--table .vlist-scrollbar__hover{top:var(--vlist-table-header-height,0px);height:calc(100% - var(--vlist-table-header-height,0px))}.vlist--table .vlist-viewport--custom-scrollbar::-webkit-scrollbar{display:block;width:0}.vlist--table .vlist-content{contain:layout style}.vlist-table-header{position:absolute;top:0;left:0;right:0;z-index:5;overflow:hidden;display:flex;align-items:stretch;box-sizing:border-box;will-change:scroll-position;contain:layout style;background-color:var(--vlist-bg,#ffffff);border-bottom:1px solid var(--vlist-border,#e5e7eb);font-weight:600;font-size:0.8125rem;letter-spacing:0.01em;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-scroll{position:relative;display:flex;align-items:stretch;height:100%;min-width:100%;flex-shrink:0}.vlist-table-header-scroll:dir(rtl){flex-direction:row-reverse}.vlist-table-header-cell{position:relative;display:flex;align-items:center;height:100%;box-sizing:border-box;flex-shrink:0;user-select:none;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);border-right:1px solid transparent;transition:background-color 0.15s ease}.vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-header-cell--sortable{cursor:pointer}.vlist-table-header-cell--sortable:active{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-header-cell--center{justify-content:center}.vlist-table-header-cell--right{justify-content:flex-end}.vlist-table-header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;pointer-events:none}.vlist-table-header-sort{margin-left:4px;flex-shrink:0;opacity:0;font-size:0.7em;transition:opacity 0.15s ease;pointer-events:none;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-resize{position:absolute;top:0;right:-3px;bottom:0;width:5px;cursor:col-resize;z-index:2;touch-action:none;opacity:0;transition:opacity 0.15s ease}.vlist-table-header-resize::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background-color:var(--vlist-border,#e5e7eb);transition:background-color 0.15s ease}.vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}.vlist-table-header-cell:hover .vlist-table-header-resize{opacity:1}.vlist-table-header-resize--active{opacity:1}.vlist-table-header-resize--active::after{background-color:var(--vlist-border-selected,#3b82f6)}.vlist--col-resizing,.vlist--col-resizing *{cursor:col-resize !important;user-select:none !important}.vlist-table-row{position:absolute;top:0;left:0;display:flex;box-sizing:border-box;contain:content;border-bottom:none;background-color:var(--vlist-bg,#ffffff);cursor:default;user-select:none;transition:background-color var(--vlist-transition-duration,150ms) var(--vlist-transition-timing,ease-in-out);will-change:transform}.vlist--scrolling .vlist-table-row{transition:none}.vlist-table-row.vlist-item--odd{background:var( --vlist-bg-striped,var(--vlist-bg-hover,rgba(0,0,0,0.02)) )}.vlist--selectable .vlist-table-row{cursor:pointer}.vlist--selectable .vlist-table-row:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-row.vlist-item--selected{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-row.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist--selectable .vlist-table-row.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist--selectable .vlist-table-row.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist-table-row.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-table-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);font-size:0.875rem;color:var(--vlist-text,#111827)}.vlist-table-cell--center{text-align:center;justify-content:center}.vlist-table-cell--right{text-align:right;justify-content:flex-end}.vlist--table-row-borders .vlist-table-row{border-bottom:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-cell{border-right:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-header-cell{border-right-color:var(--vlist-border,#e5e7eb)}.vlist-table-group-header{display:flex;align-items:center;background-color:var(--vlist-group-header-bg,#f3f4f6);cursor:default}.vlist-table-group-header-content{display:flex;align-items:center;gap:12px;padding:0 16px;height:100%;background:var(--vlist-group-header-bg,#f3f4f6)}.vlist--table-row-borders .vlist-table-group-header{border-bottom:1px solid var(--vlist-border)}.vlist--table.vlist--grouped .vlist-sticky-header{order:1;z-index:4;border-bottom:none}.vlist--table.vlist--grouped .vlist-sticky-header .sticky-group{display:flex;font-size:0.8125rem;padding:0 16px;align-items:center;gap:12px;height:100%;color:var(--vlist-text-muted,#9ca3af)}.vlist--table.vlist--grouped .vlist-viewport{order:2}[data-theme-mode="dark"] .vlist-table-header,.dark .vlist-table-header{background-color:var(--vlist-bg,#111827);color:var(--vlist-text-muted,#9ca3af);border-bottom-color:var(--vlist-border,#374151)}[data-theme-mode="dark"] .vlist-table-header-cell:hover,.dark .vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(255,255,255,0.06))}[data-theme-mode="dark"] .vlist-table-header-resize::after,.dark .vlist-table-header-resize::after{background-color:var(--vlist-border,#374151)}[data-theme-mode="dark"] .vlist-table-header-resize:hover::after,.dark .vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}[data-theme-mode="dark"] .vlist-table-group-header,.dark .vlist-table-group-header{background-color:var(--vlist-group-header-bg,#1f2937)}[data-theme-mode="dark"] .vlist-table-group-header-content,.dark .vlist-table-group-header-content{color:var(--vlist-text-muted,#9ca3af)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header{background-color:var(--vlist-bg,#111827);color:var(--vlist-text-muted,#9ca3af);border-bottom-color:var(--vlist-border,#374151)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(255,255,255,0.06))}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-resize::after{background-color:var(--vlist-border,#374151)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-group-header{background-color:var(--vlist-group-header-bg,#1f2937)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-group-header-content{color:var(--vlist-text-muted,#9ca3af)}}.vlist-table-row.vlist-item--placeholder .vlist-table-cell{color:transparent}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*{color:transparent;background-color:var(--vlist-border,#e5e7eb);border-radius:4px;animation:vlist-placeholder-pulse 2s ease-in-out infinite;line-height:1;min-width:1em}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>.vlist-table-cell-skeleton{display:inline-block;width:60%;height:0.8em}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*>*{visibility:hidden}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*[style]{background:var(--vlist-border,#e5e7eb) !important;color:transparent !important}[data-theme-mode="dark"] .vlist--table-row-borders .vlist-table-group-header,.dark .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}}
1
+ .vlist--table{display:flex;flex-direction:column;overflow:hidden;min-height:inherit}.vlist--table .vlist-viewport{flex:1;min-height:0;height:auto;overflow:auto}.vlist--table .vlist-table-header{position:static}.vlist--table .vlist-scrollbar__hover{top:var(--vlist-table-header-height,0px);height:calc(100% - var(--vlist-table-header-height,0px))}.vlist--table .vlist-viewport--custom-scrollbar::-webkit-scrollbar{display:block;width:0}.vlist--table .vlist-content{contain:layout style}.vlist-table-header{position:absolute;top:0;left:0;right:0;z-index:5;overflow:hidden;display:flex;align-items:stretch;box-sizing:border-box;will-change:scroll-position;contain:layout style;background-color:var(--vlist-bg,#ffffff);border-bottom:1px solid var(--vlist-border,#e5e7eb);font-weight:600;font-size:0.8125rem;letter-spacing:0.01em;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-scroll{position:relative;display:flex;align-items:stretch;height:100%;min-width:100%;flex-shrink:0}.vlist-table-header-scroll:dir(rtl){flex-direction:row-reverse}.vlist-table-header-cell{position:relative;display:flex;align-items:center;height:100%;box-sizing:border-box;flex-shrink:0;user-select:none;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);border-right:1px solid transparent;transition:background-color 0.15s ease}.vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-header-cell--sortable{cursor:pointer}.vlist-table-header-cell--sortable:active{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-header-cell--center{justify-content:center}.vlist-table-header-cell--right{justify-content:flex-end}.vlist-table-header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.vlist-table-header-sort{margin-left:4px;flex-shrink:0;opacity:0;font-size:0.7em;transition:opacity 0.15s ease;pointer-events:none;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-resize{position:absolute;top:0;right:-3px;bottom:0;width:5px;cursor:col-resize;z-index:2;touch-action:none;opacity:0;transition:opacity 0.15s ease}.vlist-table-header-resize::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background-color:var(--vlist-border,#e5e7eb);transition:background-color 0.15s ease}.vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}.vlist-table-header-cell:hover .vlist-table-header-resize{opacity:1}.vlist-table-header-resize--active{opacity:1}.vlist-table-header-resize--active::after{background-color:var(--vlist-border-selected,#3b82f6)}.vlist--col-resizing,.vlist--col-resizing *{cursor:col-resize !important;user-select:none !important}.vlist-table-row{position:absolute;top:0;left:0;display:flex;box-sizing:border-box;contain:content;border-bottom:none;background-color:var(--vlist-bg,#ffffff);cursor:default;user-select:none;transition:background-color var(--vlist-transition-duration,150ms) var(--vlist-transition-timing,ease-in-out);will-change:transform}.vlist--scrolling .vlist-table-row{transition:none}.vlist-table-row.vlist-item--odd{background:var( --vlist-bg-striped,var(--vlist-bg-hover,rgba(0,0,0,0.02)) )}.vlist--selectable .vlist-table-row{cursor:pointer}.vlist--selectable .vlist-table-row:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-row.vlist-item--selected{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-row.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist--selectable .vlist-table-row.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist--selectable .vlist-table-row.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist-table-row.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-table-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);font-size:0.875rem;color:var(--vlist-text,#111827)}.vlist-table-cell--center{text-align:center;justify-content:center}.vlist-table-cell--right{text-align:right;justify-content:flex-end}.vlist--table-row-borders .vlist-table-row{border-bottom:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-cell{border-right:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-header-cell{border-right-color:var(--vlist-border,#e5e7eb)}.vlist-table-group-header{display:flex;align-items:center;background-color:var(--vlist-group-header-bg,#f3f4f6);cursor:default}.vlist-table-group-header-content{display:flex;align-items:center;gap:12px;padding:0 16px;height:100%;background:var(--vlist-group-header-bg,#f3f4f6)}.vlist--table-row-borders .vlist-table-group-header{border-bottom:1px solid var(--vlist-border)}.vlist--table.vlist--grouped .vlist-sticky-header{order:1;z-index:4;border-bottom:none}.vlist--table.vlist--grouped .vlist-sticky-header .sticky-group{display:flex;font-size:0.8125rem;padding:0 16px;align-items:center;gap:12px;height:100%;color:var(--vlist-text-muted,#9ca3af)}.vlist--table.vlist--grouped .vlist-viewport{order:2}[data-theme-mode="dark"] .vlist-table-header,.dark .vlist-table-header{background-color:var(--vlist-bg,#111827);color:var(--vlist-text-muted,#9ca3af);border-bottom-color:var(--vlist-border,#374151)}[data-theme-mode="dark"] .vlist-table-header-cell:hover,.dark .vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(255,255,255,0.06))}[data-theme-mode="dark"] .vlist-table-header-resize::after,.dark .vlist-table-header-resize::after{background-color:var(--vlist-border,#374151)}[data-theme-mode="dark"] .vlist-table-header-resize:hover::after,.dark .vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}[data-theme-mode="dark"] .vlist-table-group-header,.dark .vlist-table-group-header{background-color:var(--vlist-group-header-bg,#1f2937)}[data-theme-mode="dark"] .vlist-table-group-header-content,.dark .vlist-table-group-header-content{color:var(--vlist-text-muted,#9ca3af)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header{background-color:var(--vlist-bg,#111827);color:var(--vlist-text-muted,#9ca3af);border-bottom-color:var(--vlist-border,#374151)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(255,255,255,0.06))}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-resize::after{background-color:var(--vlist-border,#374151)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-group-header{background-color:var(--vlist-group-header-bg,#1f2937)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-group-header-content{color:var(--vlist-text-muted,#9ca3af)}}.vlist-table-row.vlist-item--placeholder .vlist-table-cell{color:transparent}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*{color:transparent;background-color:var(--vlist-border,#e5e7eb);border-radius:4px;animation:vlist-placeholder-pulse 2s ease-in-out infinite;line-height:1;min-width:1em}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>.vlist-table-cell-skeleton{display:inline-block;width:60%;height:0.8em}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*>*{visibility:hidden}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*[style]{background:var(--vlist-border,#e5e7eb) !important;color:transparent !important}[data-theme-mode="dark"] .vlist--table-row-borders .vlist-table-group-header,.dark .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}}
@@ -1 +1 @@
1
- .vlist--tree{--vlist-item-padding-x:0;--vlist-item-padding-y:0;--vlist-transition-duration:0ms}.vlist--tree .vlist-item{border-bottom:none}.vlist-tree-node--loading .vlist-tree-chevron,.vlist-tree-node--loading [class*="chevron"]{animation:vlist-tree-spin 0.8s linear infinite}@keyframes vlist-tree-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.vlist--tree-lines .vlist-tree-node::before{content:"";position:absolute;top:0;bottom:0;left:var(--vlist-tree-guide-start,calc(var(--vlist-tree-indent) / 2));width:calc(var(--vlist-tree-depth) * var(--vlist-tree-indent));background-image:var(--vlist-tree-guides,none),var(--vlist-tree-elbow,none);background-repeat:no-repeat;background-size:100% 100%,1px 50%;background-position:left top,calc((var(--vlist-tree-depth) - 1) * var(--vlist-tree-indent)) top;opacity:0.12;pointer-events:none}.vlist--tree-lines .vlist-tree-node::after{content:"";position:absolute;top:50%;left:calc(var(--vlist-tree-guide-start,calc(var(--vlist-tree-indent) / 2)) + (var(--vlist-tree-depth) - 1) * var(--vlist-tree-indent));width:calc(var(--vlist-tree-indent) / 2 - 2px);height:1px;background:var(--vlist-tree-line,currentColor);opacity:0.12;pointer-events:none}.vlist--tree-lines .vlist-tree-node[style*="--vlist-tree-depth:0"]::after,.vlist--tree-lines .vlist-tree-node[style*="--vlist-tree-depth:0"]::after{display:none}
1
+ .vlist--tree{--vlist-item-padding-x:0;--vlist-item-padding-y:0;--vlist-transition-duration:0ms}.vlist--tree .vlist-item{border-bottom:none}.vlist-tree-node--loading .vlist-tree-chevron,.vlist-tree-node--loading [class*="chevron"]{animation:vlist-tree-spin 0.8s linear infinite}@keyframes vlist-tree-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.vlist--tree-lines .vlist-tree-node::before{content:"";position:absolute;top:0;bottom:0;left:var(--vlist-tree-guide-start,calc(var(--vlist-tree-indent) / 2));width:calc(var(--vlist-tree-depth) * var(--vlist-tree-indent));background-image:var(--vlist-tree-guides,none);background-repeat:no-repeat;background-size:100% 100%,1px 50%;background-position:left top,calc((var(--vlist-tree-depth) - 1) * var(--vlist-tree-indent)) top;opacity:0.12;pointer-events:none}.vlist--tree-lines .vlist-tree-node--last::before{background-image:var(--vlist-tree-guides,none),var(--vlist-tree-elbow,linear-gradient(var(--vlist-tree-line,currentColor),var(--vlist-tree-line,currentColor)))}.vlist--tree-lines .vlist-tree-node::after{content:"";position:absolute;top:50%;left:calc(var(--vlist-tree-guide-start,calc(var(--vlist-tree-indent) / 2)) + (var(--vlist-tree-depth) - 1) * var(--vlist-tree-indent));width:calc(var(--vlist-tree-indent) / 2 - 2px);height:1px;background:var(--vlist-tree-line,currentColor);opacity:0.12;pointer-events:none}.vlist--tree-lines .vlist-tree-node[style*="--vlist-tree-depth:0"]::after,.vlist--tree-lines .vlist-tree-node[style*="--vlist-tree-depth:0"]::after{display:none}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vlist",
3
- "version": "3.1.0-next.3",
3
+ "version": "3.1.1",
4
4
  "description": "Lightweight, high-performance virtual list with zero dependencies",
5
5
  "author": {
6
6
  "name": "Floor IO",
@@ -100,7 +100,7 @@
100
100
  "dev": "bun run build.ts --watch",
101
101
  "test": "bun test",
102
102
  "test:changed": "bun test --changed",
103
- "test:browser": "bun scripts/rtl-cross-axis-browser.mjs && bun scripts/synthetic-browser.mjs && bun scripts/synthetic-carousel-browser.mjs && bun scripts/synthetic-sortable-browser.mjs && bun scripts/select-next-browser.mjs && bun scripts/item-fill-browser.mjs && bun scripts/scroll-mode-browser.mjs && bun scripts/native-cap-browser.mjs",
103
+ "test:browser": "bun scripts/rtl-cross-axis-browser.mjs && bun scripts/synthetic-browser.mjs && bun scripts/synthetic-carousel-browser.mjs && bun scripts/synthetic-sortable-browser.mjs && bun scripts/select-next-browser.mjs && bun scripts/item-fill-browser.mjs && bun scripts/scroll-mode-browser.mjs && bun scripts/native-cap-browser.mjs && bun scripts/tree-guides-browser.mjs && bun scripts/table-header-browser.mjs && bun scripts/focus-removal-browser.mjs",
104
104
  "typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.types.json && tsc --noEmit -p tsconfig.test.json",
105
105
  "bench": "bun run scripts/bench.ts",
106
106
  "bench:quick": "bun run scripts/bench.ts --quick",