vlist 1.6.0 → 1.6.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 b2=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var w2=(J,Q)=>{let $=0,Y=J.length-1;while($<Y){let q=$+Y+1>>>1;if(J[q].headerLayoutIndex<=Q)$=q;else Y=q-1}return $},x2=(J,Q)=>{let $=0,Y=J.length-1;while($<Y){let q=$+Y+1>>>1;if(J[q].firstDataIndex<=Q)$=q;else Y=q-1}return $},g2=(J,Q)=>{if(J===0)return[];let $=[],Y=Q(0),q=0,j=0;for(let B=1;B<J;B++){let V=Q(B);if(V!==Y){let R=B-q;$.push({key:Y,groupIndex:$.length,headerLayoutIndex:j,firstDataIndex:q,count:R}),j=j+1+R,Y=V,q=B}}return $.push({key:Y,groupIndex:$.length,headerLayoutIndex:j,firstDataIndex:q,count:J-q}),$},u2=(J,Q)=>{if(J.length===0||Q.length===0)return[];let $=J.length+Q.length,Y=Array($),q=0;for(let j of Q){Y[q]={id:`__group_header_${j.groupIndex}`,__groupHeader:!0,groupKey:j.key,groupIndex:j.groupIndex},q++;for(let B=0;B<j.count;B++)Y[q]=J[j.firstDataIndex+B],q++}return Y},m2=(J,Q,$=!1)=>{let Y=typeof Q==="number"?(q)=>Q:Q;return(q)=>{let j=J.getEntry(q);if(j.type==="header"){if($&&j.group.groupIndex===0)return 0;return J.getHeaderHeight(j.group.groupIndex)}return Y(j.dataIndex)}},d2=(J,Q)=>{let $=g2(J,Q.getGroupForIndex),Y=J+$.length,q=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return Y},get groupCount(){return $.length},get groups(){return $},getEntry:(A)=>{if($.length===0)return{type:"item",dataIndex:A,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let z=w2($,A),N=$[z];if(A===N.headerLayoutIndex)return{type:"header",group:N};let _=A-N.headerLayoutIndex-1;return{type:"item",dataIndex:N.firstDataIndex+_,group:N}},layoutToDataIndex:(A)=>{if($.length===0)return A;let z=w2($,A),N=$[z];if(A===N.headerLayoutIndex)return-1;let _=A-N.headerLayoutIndex-1;return N.firstDataIndex+_},dataToLayoutIndex:(A)=>{if($.length===0)return A;let z=x2($,A),N=$[z],_=A-N.firstDataIndex;return N.headerLayoutIndex+1+_},getGroupAtLayoutIndex:(A)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let z=w2($,A);return $[z]},getGroupAtDataIndex:(A)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let z=x2($,A);return $[z]},getHeaderHeight:typeof q==="number"?(A)=>q:(A)=>{let z=$[A];if(!z)return 0;return q(z.key,A)},rebuild:(A)=>{$=g2(A,Q.getGroupForIndex),Y=A+$.length}}};var c2=(J,Q,$,Y,q,j=!1,B=0)=>{let V=j?"width":"height",R=j?"height":"width",W=j?"X":"Y",U=(X,f)=>{X.style[V]=`${f}px`},F=document.createElement("div");F.className=`${q}-sticky-header`,F.setAttribute("role","presentation"),F.setAttribute("aria-hidden","true"),F.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${B||0}px`:`top:${B||0}px`);let A=()=>{let X=document.createElement("div");return X.className="sticky-group",X.style.position="absolute",X.style.willChange="transform",X.style[R]="100%",X},z=A(),N=A();F.append(z,N),J.insertBefore(F,J.firstChild);let _=z,K=N,M=Q.groups,y=[],v=[],P=0,u=()=>{M=Q.groups,P=M.length,y=Array(P),v=Array(P);for(let X=0;X<P;X++)y[X]=$.getOffset(M[X].headerLayoutIndex),v[X]=Q.getHeaderHeight(X)};u();let h=-1,l=0,n=-1,J2=!1,j2=0,m=!1,I=(X,f)=>{Y(X,f);let x=v[f];return U(X,x),x},o=(X)=>{X.replaceChildren(),X.style.transform=""},i=(X)=>{if(X===h)return;if(h=X,l=0,X<0||X>=P){o(_);return}l=I(_,X),U(F,l),_.style.transform=""},w=(X)=>{if(X===j2)return;j2=X;let f=Math.round(X);_.style.transform=`translate${W}(${f}px)`,K.style.transform=`translate${W}(${f+l}px)`},E=()=>{j2=0,_.style.transform="",K.style.transform=""},Z=()=>{if(!m)return;let X=_;_=K,K=X,h=n,l=h>=0?v[h]:0,U(F,l),o(K),n=-1,m=!1,E()},L=()=>{if(!m)return;o(K),n=-1,m=!1,E()},T=()=>{if(J2)return;J2=!0,F.style.display=""},a=()=>{if(!J2)return;J2=!1,F.style.display="none",o(_),h=-1,l=0,L()},r=(X)=>{if(P===0){a();return}if(X<y[0]){a();return}let f=0,x=P-1;while(f<x){let C=f+x+1>>>1;if(y[C]+v[C]<=X)f=C;else x=C-1}if(!J2)T();i(f);let k=f+1;if(k<P){let C=y[k]-X;if(C<=0&&C>-l){if(n!==k||!m)n=k,I(K,k),m=!0;w(C)}else if(C<=-l){if(m)Z()}else if(m)L()}else if(m)L()},d=()=>{u();let X=h;if(h=-1,l=0,X>=0)i(X)},O=()=>{F.remove(),h=-1,l=0,n=-1,J2=!1,m=!1};return F.style.display="none",{update:r,refresh:d,show:T,hide:a,destroy:O}};var r2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),$=J.gap??0,Y=J.isHeaderFn,q={row:0,col:0},j=(N)=>{if(N<=0)return 0;if(!Y)return Math.ceil(N/Q);let _=0,K=0,M=0;for(let y=0;y<N;y++)if(Y(y)){if(M++,K>0)_++,K=0;_++,K=0}else if(K++,K>=Q)_++,K=0;if(K>0)_++;return _},B=(N)=>{return q.row=V(N),q.col=R(N),q},V=(N)=>{if(!Y)return Math.floor(N/Q);let _=0,K=0;for(let M=0;M<=N;M++)if(Y(M)){if(K>0)_++,K=0;if(M===N)return _;_++,K=0}else{if(M===N)return _;if(K++,K>=Q)_++,K=0}return console.warn(`⚠️ getRow(${N}) fell through - returning ${_}`),_},R=(N)=>{if(!Y)return N%Q;if(Y(N))return 0;let _=0;for(let K=0;K<=N;K++)if(Y(K))_=0;else{if(K===N)return _;if(_++,_>=Q)_=0}return _},W=(N,_,K)=>{if(K<=0)return{start:0,end:-1};if(!Y){let u=Math.max(0,N*Q),h=Math.min(K-1,(_+1)*Q-1);return{start:u,end:h}}let M=-1,y=-1,v=0,P=0;for(let u=0;u<K;u++){if(Y(u)){if(P>0)v++,P=0;if(v>=N&&v<=_){if(M===-1)M=u;y=u}v++,P=0}else{if(v>=N&&v<=_){if(M===-1)M=u;y=u}if(P++,P>=Q)v++,P=0}if(v>_&&P===0)break}if(M===-1)return{start:0,end:-1};return{start:M,end:y}},U=(N,_,K)=>{if(_<0||_>=Q)return-1;let M=N*Q+_;if(M<0||M>=K)return-1;return M},F=(N)=>{let _=(Q-1)*$;return Math.max(0,(N-_)/Q)};return{get columns(){return Q},get gap(){return $},update:(N)=>{if(N.columns!==void 0)Q=Math.max(1,Math.floor(N.columns));if(N.gap!==void 0)$=N.gap;if(N.isHeaderFn!==void 0)Y=N.isHeaderFn},getTotalRows:j,getPosition:B,getRow:V,getCol:R,getItemRange:W,getItemIndex:U,getColumnWidth:F,getColumnOffset:(N,_)=>{let K=F(_);return N*(K+$)}}};var G2=16000000;var l2="x",a2=20,v2="_isPlaceholder",D2="__placeholder_";var W2=(J,Q,$)=>{if(String($).startsWith(D2))return!1;let Y=D2+Q;if(J.has(Y))return J.delete(Y),J.add($),!0;return!1},s2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),C2=(J,Q,$)=>{if($==="none")return J;let Y=new Set(J.selected);if($==="single"){if(Y.clear(),Q.length>0)Y.add(Q[0])}else for(let q of Q)Y.add(q);return{...J,selected:Y}},S2=(J,Q)=>{let $=new Set(J.selected);for(let Y of Q)$.delete(Y);return{...J,selected:$}},o2=(J,Q,$)=>{if($==="none")return J;if(J.selected.has(Q))return S2(J,[Q]);else return C2(J,[Q],$)},n2=(J,Q,$)=>{if($!=="multiple")return J;return{...J,selected:new Set(Q.map((Y)=>Y.id))}},i2=(J)=>({...J,selected:new Set});var t2=(J,Q)=>{return J.selected.has(Q)},e2=(J)=>{return Array.from(J.selected)},JJ=(J,Q)=>{let $=[];for(let Y of J.selected){let q=Q(Y);if(q)$.push(q)}return $};var vJ=(J,Q)=>{let $=Q;return{getOffset:(Y)=>Y*J,getSize:(Y)=>J,indexAtOffset:(Y)=>{if($===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(Y/J),$-1))},getTotalSize:()=>$*J,getTotal:()=>$,rebuild:(Y)=>{$=Y},isVariable:()=>!1}},CJ=(J,Q)=>{let $=Q,Y=new Float64Array(0),q=(B)=>{$=B,Y=new Float64Array(B+1),Y[0]=0;for(let V=0;V<B;V++)Y[V+1]=Y[V]+J(V)};q(Q);let j=(B)=>{if($===0)return 0;if(B<=0)return 0;if(B>=Y[$])return $-1;let V=0,R=$-1;while(V<R){let W=V+R+1>>>1;if(Y[W]<=B)V=W;else R=W-1}return V};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=$)return Y[$];return Y[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>j(B),getTotalSize:()=>Y[$]??0,getTotal:()=>$,rebuild:(B)=>q(B),isVariable:()=>!0}},E2=(J,Q)=>{if(typeof J==="number")return vJ(J,Q);return CJ(J,Q)},f2=(J,Q,$,Y)=>{if(Y===0)return 0;if(!J.isVariable())return Math.ceil($/J.getSize(0));let q=0,j=0,B=Q;while(B<Y&&j<$)j+=J.getSize(B),q++,B++;return Math.max(1,q)};var F2=(J,Q,$)=>{let Y=Q.getTotalSize(),q=$===!0||Y>G2,j=Y>G2?G2:Y,B=Y>0?j/Y:1;return{isCompressed:q,actualSize:Y,virtualSize:j,ratio:B}},QJ=(J,Q,$,Y,q,j)=>{if(Y===0||Q===0)return j.start=0,j.end=-1,j;if(!q.isCompressed||q.ratio===1){let A=$.indexAtOffset(J),z=$.indexAtOffset(J+Q);if(z<Y-1)z++;return j.start=Math.max(0,A),j.end=Math.min(Y-1,Math.max(0,z)),j}let{virtualSize:B}=q,R=J/B*Y,W=Math.floor(R),U=f2($,Math.max(0,W),Q,Y),F=Math.ceil(R)+U;return j.start=Math.max(0,W),j.end=Math.min(Y-1,Math.max(0,F)),j},$J=(J,Q,$,Y)=>{if($===0)return Y.start=0,Y.end=-1,Y;return Y.start=Math.max(0,J.start-Q),Y.end=Math.min($-1,J.end+Q),Y},M2=(J,Q,$,Y,q,j,B)=>{if(!j.isCompressed||Y===0)return $.getOffset(J);if(j.ratio===1)return $.getOffset(J)-Q;let{virtualSize:V}=j,R=Q/V,W=$.getTotalSize(),U=R*W;return $.getOffset(J)-U},YJ=(J,Q,$,Y,q,j="start")=>{if(Y===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/Y*q.virtualSize;let U=Q.getSize(J);switch(j){case"center":B-=($-U)/2*q.ratio;break;case"end":B-=($-U)*q.ratio;break}return Math.max(0,B)}B=Q.getOffset(J);let V=Q.getSize(J);switch(j){case"center":B-=($-V)/2;break;case"end":B-=$-V;break}let R=q.virtualSize-$;return Math.max(0,Math.min(B,R))},jJ=(J,Q,$,Y)=>{if($===0)return 0;if(Y.isCompressed&&Y.ratio!==1){let q=J/Y.virtualSize;return Math.floor(q*$)}return Q.indexAtOffset(J)},qJ=(J,Q)=>{if(typeof Q==="number")return J*Q>G2;return Q.getTotalSize()>G2},BJ=(J)=>{if(J<=0)return 0;return Math.floor(G2/J)},KJ=(J,Q,$)=>{let Y=F2(J,Q,$);if(!Y.isCompressed)return`No compression needed (${J} items, ${(Y.actualSize/1e6).toFixed(2)}M px)`;return`Compressed to ${(Y.ratio*100).toFixed(1)}% (${J} items, ${(Y.actualSize/1e6).toFixed(1)}M px → ${(Y.virtualSize/1e6).toFixed(1)}M px virtual)`};var T2=(J,Q,$)=>{let Y=Array.from(Q).sort((B,V)=>B-V);if(Y.length<=1)return;let q=[];for(let B=0;B<Y.length;B++){let V=$(Y[B]);if(V)q.push(V)}if(q.length<=1)return;let j=J.firstChild;for(let B=0;B<q.length;B++){let V=q[B];if(V===j)j=j.nextSibling;else J.insertBefore(V,j)}};var SJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-row"),j.removeAttribute("data-col"),Q.push(j)},clear:()=>{Q.length=0}}},fJ=1,UJ=(J,Q,$,Y,q,j,B,V,R=!1)=>{let W=SJ(),U=new Map,F=j,A=!1,z=0,N="",_=-1,K={selected:!1,focused:!1},M=(O,X)=>{return K.selected=O,K.focused=X,K},y=`${q}-item ${q}-grid-item`,v=`${q}-item--selected`,P=`${q}-item--focused`,u=`${q}-item--placeholder`,h=`${q}-item--replaced`,l=(O,X)=>{if(typeof X==="string")O.innerHTML=X;else O.replaceChildren(X)},n=(O,X,f)=>{O.classList.toggle(v,X),O.classList.toggle(P,f)},J2=(O,X)=>{let f=Y.getRow(O);if(X?.compression?.isCompressed)return M2(f,X.scrollPosition,$,X.totalItems,X.containerSize,X.compression,X.rangeStart);return $.getOffset(f)},j2=(O,X)=>{let f=A&&Y.getCol(O)===0,x=f?0:Y.getCol(O),k=f?0:Y.getColumnOffset(x,F),C;if(A){let t=Y.getRow(O),H=0,b=new Set;for(let S=0;S<O;S++){let g=Y.getRow(S);if(g<t&&!b.has(g)){let G=$.getSize(S);H+=G,b.add(g)}}C=H}else C=J2(O,X);if(R)return`translate(${Math.round(C)}px, ${Math.round(k)}px)`;return`translate(${Math.round(k)}px, ${Math.round(C)}px)`},m=(O,X)=>{O.style.transform=X},I=(O,X)=>{let f=O.dataset.id?.startsWith("__group_header"),x=f?F:Y.getColumnWidth(F),k;if(A||f)k=$.getSize(X)-Y.gap;else{let C=Y.getRow(X);k=$.getSize(C)-Y.gap}if(R)O.style.width=`${k}px`,O.style.height=`${x}px`;else O.style.width=`${x}px`,O.style.height=`${k}px`},o=(O,X,f,x,k)=>{let C=W.acquire(),t=M(f,x);if(C.className=y,C.dataset.index=String(O),C.dataset.id=String(X.id),C.dataset.row=String(Y.getRow(O)),C.dataset.col=String(Y.getCol(O)),C.ariaSelected=String(f),V)C.id=`${V}-item-${O}`;if(B){let S=B();if(S!==_)_=S,N=String(S);C.setAttribute("aria-setsize",N),C.setAttribute("aria-posinset",String(O+1))}I(C,O);let H=Q(X,O,t);if(l(C,H),String(X.id).startsWith(D2))C.classList.add(u);return n(C,f,x),m(C,k),{element:C,lastItemId:X.id,lastSelected:f,lastFocused:x,lastTransform:k,lastSeenFrame:z}},i=(O,X,f,x,k)=>{if(z++,X.start===0&&O.length>0)A=b2(O[0]);for(let[H,b]of U)if(H>=X.start&&H<=X.end)b.lastSeenFrame=z;else if(z-b.lastSeenFrame>fJ)W.release(b.element),U.delete(H);let C=!1;if(B){let H=B();if(H!==_)_=H,N=String(H),C=!0}let t=null;for(let H=X.start;H<=X.end;H++){let b=H-X.start,S=O[b];if(!S){console.warn(`⚠️ RENDER: Missing item at index ${H} (range: ${X.start}-${X.end}, items.length: ${O.length})`);continue}let g=f.has(S.id),G=H===x,D=U.get(H);if(D){let p=D.lastItemId!==S.id,e=D.lastSelected!==g,$2=D.lastFocused!==G;if(p){let K2=String(D.lastItemId),Y2=String(S.id),Q2=K2.startsWith(D2),q2=Y2.startsWith(D2);if(!q2&&W2(f,H,S.id))g=!0;let U2=M(g,G),c=Q(S,H,U2);if(l(D.element,c),D.element.dataset.id=Y2,D.element.dataset.row=String(Y.getRow(H)),D.element.dataset.col=String(Y.getCol(H)),I(D.element,H),D.element.classList.toggle(u,q2),Q2&&!q2)D.element.classList.add(h),setTimeout(()=>D.element.classList.remove(h),300);D.lastItemId=S.id}if(p||e||$2)n(D.element,g,G),D.element.ariaSelected=String(g),D.lastSelected=g,D.lastFocused=G;let s=j2(H,k);if(D.lastTransform!==s)m(D.element,s),D.lastTransform=s;if(C)D.element.setAttribute("aria-setsize",N)}else{if(W2(f,H,S.id))g=!0;let p=j2(H,k),e=o(H,S,g,G,p);if(!t)t=document.createDocumentFragment();t.appendChild(e.element),U.set(H,e)}}if(t)J.appendChild(t)},w=(O)=>{for(let[X,f]of U){let x=j2(X,O);if(f.lastTransform!==x)m(f.element,x),f.lastTransform=x}},E=(O,X,f,x)=>{let k=U.get(O);if(!k)return;let C=M(f,x),t=Q(X,O,C);l(k.element,t),n(k.element,f,x),k.element.dataset.id=String(X.id),k.element.ariaSelected=String(f),I(k.element,O),k.lastItemId=X.id,k.lastSelected=f,k.lastFocused=x},Z=(O,X,f)=>{let x=U.get(O);if(!x)return;let k=x.lastSelected!==X,C=x.lastFocused!==f;if(k||C)n(x.element,X,f),x.lastSelected=X,x.lastFocused=f},L=(O)=>{return U.get(O)?.element},T=(O)=>{if(Math.abs(O-F)<1)return;F=O;for(let[X,f]of U){I(f.element,X);let x=j2(X);m(f.element,x),f.lastTransform=x}},a=()=>{T2(J,U.keys(),(O)=>U.get(O)?.element)},r=()=>{for(let[,O]of U)W.release(O.element);U.clear()};return{render:i,updatePositions:w,updateItem:E,updateItemClasses:Z,getElement:L,sortDOM:a,updateContainerWidth:T,clear:r,destroy:()=>{r(),W.clear()}}};var XJ=(J,Q=50,$=1/0,Y=!0)=>{let q=J,j=[],B=0,V=()=>{j=q.map((K,M)=>({def:K,index:M,width:0,minWidth:IJ(K.minWidth??Q,1),maxWidth:K.maxWidth??$,resizable:K.resizable??Y,offset:0}))},R=(K)=>{if(j.length===0){B=0;return}let M=0,y=0;for(let v=0;v<j.length;v++){let P=j[v],u=P.def;if(u.width!==void 0)P.width=I2(u.width,P.minWidth,P.maxWidth),M+=P.width;else y++}if(y>0){let P=Math.max(0,K-M)/y;for(let u=0;u<j.length;u++){let h=j[u];if(h.def.width===void 0)h.width=I2(P,h.minWidth,h.maxWidth)}}W()},W=()=>{let K=0;for(let M=0;M<j.length;M++){let y=j[M];y.offset=K,K+=y.width}B=K},U=(K,M)=>{if(K<0||K>=j.length)return 0;let y=j[K];if(!y.resizable)return y.width;let v=I2(M,y.minWidth,y.maxWidth);return y.width=v,W(),v},F=(K)=>{return j[K]},A=(K)=>{if(j.length===0)return;if(K<0)return j[0];if(K>=B)return j[j.length-1];let M=0,y=j.length-1;while(M<y){let v=M+y>>>1,P=j[v];if(K<P.offset)y=v-1;else if(K>=P.offset+P.width)M=v+1;else return P}return j[M]},z=(K)=>{if(K<0||K>=j.length)return 0;return j[K].offset},N=(K)=>{if(K<0||K>=j.length)return 0;return j[K].width},_=(K)=>{q=K,V()};return V(),{get columns(){return j},get totalWidth(){return B},resolve:R,updateColumns:_,resizeColumn:U,getColumn:F,getColumnAtX:A,getColumnOffset:z,getColumnWidth:N}},I2=(J,Q,$)=>Math.min($,Math.max(Q,J)),IJ=(J,Q)=>Math.max(Q,J);var NJ=(J,Q,$,Y,q,j,B)=>{let V=document.createElement("div");V.setAttribute("role","rowgroup");let R=document.createElement("div");R.className=`${Y}-table-header`,R.setAttribute("role","row"),R.setAttribute("aria-rowindex","1"),R.style.height=`${$}px`;let W=document.createElement("div");W.className=`${Y}-table-header-scroll`,W.setAttribute("role","presentation"),R.appendChild(W),V.appendChild(R),J.insertBefore(V,J.firstChild),Q.style.cssText=`position:absolute;top:${$}px;left:0px;right:0px;bottom:0px;height:auto`;let U=[],F=[],A=[],z=!0,N=null,_="asc",K=null,M=!1,y=-1,v=0,P=0,u=(Z,L)=>{let T=document.createElement("div");T.className=`${Y}-table-header-cell`,T.setAttribute("role","columnheader"),T.setAttribute("aria-colindex",String(L+1)),T.dataset.columnKey=Z.def.key;let a=Z.def.align;if(a==="center")T.classList.add(`${Y}-table-header-cell--center`);else if(a==="right")T.classList.add(`${Y}-table-header-cell--right`);let r=document.createElement("div");r.className=`${Y}-table-header-content`;let d=Z.def.header?Z.def.header(Z.def):Z.def.label;if(typeof d==="string")r.textContent=d;else r.appendChild(d);if(T.appendChild(r),Z.def.sortable){let O=document.createElement("span");O.className=`${Y}-table-header-sort`,O.setAttribute("aria-hidden","true"),T.appendChild(O),A.push(O),T.classList.add(`${Y}-table-header-cell--sortable`)}else A.push(null);if(Z.resizable){let O=document.createElement("div");O.className=`${Y}-table-header-resize`,O.dataset.resizeIndex=String(L),T.appendChild(O),F.push(O)}return T},h=(Z)=>{K=Z,W.textContent="",U=[],F=[],A=[];let L=Z.columns;for(let T=0;T<L.length;T++){let a=L[T],r=u(a,T);U.push(r),W.appendChild(r)}if(l(Z),N)n(N,_)},l=(Z)=>{K=Z;let L=Z.columns;W.style.width=`${Z.totalWidth}px`;for(let T=0;T<U.length&&T<L.length;T++){let a=U[T],r=L[T];a.style.width=`${r.width}px`}},n=(Z,L)=>{if(N=Z,_=L,!K)return;let T=K.columns;for(let a=0;a<A.length&&a<T.length;a++){let r=A[a];if(!r)continue;if(T[a].def.key===Z&&Z!==null)r.textContent=L==="asc"?"▲":"▼",r.style.opacity="0.7",U[a].setAttribute("aria-sort",L==="asc"?"ascending":"descending");else r.textContent="",r.style.opacity="0",U[a].removeAttribute("aria-sort")}},J2=(Z)=>{W.style.transform=`translateX(${-Z}px)`},j2=(Z)=>{let L=Z.target;if(!L.dataset.resizeIndex)return;if(Z.preventDefault(),Z.stopPropagation(),y=parseInt(L.dataset.resizeIndex,10),!K)return;let T=K.getColumn(y);if(!T||!T.resizable)return;M=!0,v=Z.clientX,P=T.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",L.classList.add(`${Y}-table-header-resize--active`),L.setPointerCapture(Z.pointerId),L.addEventListener("pointermove",m),L.addEventListener("pointerup",I),L.addEventListener("pointercancel",I)},m=(Z)=>{if(!M||!K)return;let L=Z.clientX-v;if(Math.abs(L)<1)return;let T=Math.max(0,P+L);q(y,T)},I=(Z)=>{if(!M)return;let L=Z.target;L.removeEventListener("pointermove",m),L.removeEventListener("pointerup",I),L.removeEventListener("pointercancel",I);try{L.releasePointerCapture(Z.pointerId)}catch{}L.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",M=!1,y=-1},o=(Z)=>{let L=Z.target;if(L.dataset.resizeIndex!==void 0)return;if(M)return;let T=L;while(T&&!T.dataset.columnKey)if(T=T.parentElement,T===R||T===null)return;if(!T||!T.dataset.columnKey)return;let a=T.dataset.columnKey;if(!K)return;let r=K.columns,d=-1;for(let X=0;X<r.length;X++)if(r[X].def.key===a){d=X;break}if(d===-1)return;let O=r[d];if(B)B({key:a,index:d,event:Z});if(O.def.sortable&&j){let X;if(N===a)if(_==="asc")X="desc";else X=null;else X="asc";j({key:a,index:d,direction:X})}};return R.addEventListener("pointerdown",j2),R.addEventListener("click",o),{element:R,update:l,updateSort:n,rebuild:h,show:()=>{if(z)return;z=!0,R.style.display=""},hide:()=>{if(!z)return;z=!1,R.style.display="none"},destroy:()=>{R.removeEventListener("pointerdown",j2),R.removeEventListener("click",o),Q.style.cssText="",V.remove(),U=[],F=[],A=[],K=null,z=!1},syncScroll:J2}};var pJ=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Q)=>{if(Q.parentNode?.removeChild(Q),J.length<200)Q.className="",Q.removeAttribute("data-id"),Q.removeAttribute("data-index"),Q.removeAttribute("aria-selected"),Q.removeAttribute("aria-rowindex"),Q.removeAttribute("role"),Q.style.cssText="",Q.textContent="",J.push(Q)},clear:()=>{J.length=0}}},ZJ=(J,Q,$,Y,q,j,B,V,R)=>{let W=pJ(),U=new Map,F=-1,A=$,z=null,N=null,_=null,K=(H,b)=>{N=H,_=b},M=(H,b)=>{if(b)H.setAttribute("aria-selected","true");else H.removeAttribute("aria-selected")},y=(H,b,S,g)=>{H.setAttribute("role",b),H.setAttribute("data-id",String(S)),H.setAttribute("data-index",String(g))},v=(H)=>String(H).startsWith("__placeholder_"),P=`${q}-item ${q}-table-row`,u=`${q}-item--selected`,h=`${q}-item--focused`,l=`${q}-table-cell`,n=`${q}-table-cell--center`,J2=`${q}-table-cell--right`,j2=`${q}-item--odd`,m=`${q}-item--placeholder`,I=`${q}-item--replaced`,o=`${q}-item ${q}-table-row ${q}-table-group-header`,i=`${q}-table-group-header-content`,w=(H,b,S,g,G=!1)=>{if(S.def.cell){let D=S.def.cell(b,S.def,g);if(typeof D==="string")H.innerHTML=D;else H.replaceChildren(D)}else{let D=b[S.def.key],p=D!=null?String(D):"";if(G&&p)H.innerHTML=`<span>${p}</span>`;else H.textContent=p}},E=(H,b,S,g,G=!1)=>{let D=P;if(V){if(z){let p=z(b);if(p>=0&&(p&1)===1)D+=` ${j2}`}else if((b&1)===1)D+=` ${j2}`}if(G)D+=` ${m}`;if(S)D+=` ${u}`;if(g)D+=` ${h}`;H.className=D},Z=(H,b,S)=>{if(S?.compression?.isCompressed)return Math.round(M2(H,S.scrollPosition,b,S.totalItems,S.containerSize,S.compression,S.rangeStart));return b.getOffset(H)},L=(H,b)=>{let S=b.def.align;if(S==="center")H.classList.add(n),H.classList.remove(J2);else if(S==="right")H.classList.add(J2),H.classList.remove(n);else H.classList.remove(n,J2)},T=(H,b)=>{let g=A.columns.length;if(b.length===g)return b;let G=[];for(let D=0;D<g;D++){let p;if(D<b.length)p=b[D];else p=document.createElement("div"),p.className=l,H.appendChild(p);G.push(p)}for(let D=g;D<b.length;D++)b[D].remove();return G},a=(H,b,S,g)=>{let G=W.acquire(),D=H,p=S.getSize(b),e=Z(b,S,g);G.style.cssText=`width:${A.totalWidth}px;height:${p}px;transform:translateY(${e}px)`,G.className=o,y(G,"presentation",H.id,b),G.removeAttribute("aria-selected"),G.removeAttribute("aria-rowindex"),G.replaceChildren();let $2=document.createElement("div");if($2.className=i,_){let s=_(D.groupKey,D.groupIndex);if(typeof s==="string")$2.innerHTML=s;else $2.appendChild(s)}return G.appendChild($2),{element:G,cells:[],index:b,isGroupHeader:!0,lastItemId:H.id,lastSelected:!1,lastFocused:!1,lastOffset:e,lastHeight:p}},r=(H,b,S,g,G,D)=>{let p=W.acquire(),e=G.getSize(b),$2=Z(b,G,D),s=v(H.id);p.style.cssText=`width:${A.totalWidth}px;height:${e}px;transform:translateY(${$2}px)`,E(p,b,S,g,s),y(p,"row",H.id,b),p.id=`${j}-${b}`,p.setAttribute("aria-rowindex",String(b+2)),M(p,S);let K2=T(p,[]),Y2=A.columns;for(let Q2=0;Q2<K2.length&&Q2<Y2.length;Q2++){let q2=K2[Q2],U2=Y2[Q2];q2.style.cssText=`left:${U2.offset}px;width:${U2.width}px`,q2.setAttribute("role","gridcell"),q2.setAttribute("aria-colindex",String(Q2+1)),L(q2,U2),w(q2,H,U2,b,s)}return{element:p,cells:K2,index:b,isGroupHeader:!1,lastItemId:H.id,lastSelected:S,lastFocused:g,lastOffset:$2,lastHeight:e}},d=(H,b,S,g,G)=>{for(let[s,K2]of U)if(s<b.start||s>b.end)W.release(K2.element),U.delete(s);let D=!1,p=B();if(p!==F)F=p,D=!0;let e=null,$2=Q();z=typeof V==="string"&&R?R():null;for(let s=b.start;s<=b.end;s++){let K2=s-b.start,Y2=H[K2];if(!Y2)continue;let Q2=S.has(Y2.id),q2=s===g,U2=N?N(Y2):!1,c=U.get(s);if(c){if(c.isGroupHeader!==U2){W.release(c.element),U.delete(s);let X2=U2?a(Y2,s,$2,G):r(Y2,s,Q2,q2,$2,G);if(U.set(s,X2),!e)e=document.createDocumentFragment();e.appendChild(X2.element);continue}if(U2){if(c.lastItemId!==Y2.id){let Z2=Y2,V2=c.element.firstElementChild;if(V2&&_){let O2=_(Z2.groupKey,Z2.groupIndex);if(typeof O2==="string")V2.innerHTML=O2;else V2.replaceChildren(O2)}c.element.setAttribute("data-id",String(Y2.id)),c.lastItemId=Y2.id}let B2=Z(s,$2,G);if(c.lastOffset!==B2)c.lastOffset=B2,c.element.style.transform=`translateY(${B2}px)`;let N2=$2.getSize(s);if(c.lastHeight!==N2)c.lastHeight=N2,c.element.style.height=`${N2}px`}else{let X2=c.lastItemId!==Y2.id,B2=c.lastSelected!==Q2,N2=c.lastFocused!==q2;if(X2){let O2=c.lastItemId!=null&&v(c.lastItemId),H2=v(Y2.id);if(!H2&&W2(S,s,Y2.id))Q2=!0;let h2=A.columns;for(let A2=0;A2<c.cells.length&&A2<h2.length;A2++)w(c.cells[A2],Y2,h2[A2],s,H2);if(E(c.element,s,Q2,q2,H2),c.element.setAttribute("data-id",String(Y2.id)),M(c.element,Q2),O2&&!H2)c.element.classList.add(I),setTimeout(()=>{c.element.classList.remove(I)},300);c.lastItemId=Y2.id,c.lastSelected=Q2,c.lastFocused=q2}else if(B2||N2)E(c.element,s,Q2,q2,v(Y2.id)),M(c.element,Q2),c.lastSelected=Q2,c.lastFocused=q2;let Z2=Z(s,$2,G);if(c.lastOffset!==Z2)c.lastOffset=Z2,c.element.style.transform=`translateY(${Z2}px)`;let V2=$2.getSize(s);if(c.lastHeight!==V2)c.lastHeight=V2,c.element.style.height=`${V2}px`;if(D)c.element.setAttribute("aria-rowindex",String(s+2))}}else{if(W2(S,s,Y2.id))Q2=!0;let X2=U2?a(Y2,s,$2,G):r(Y2,s,Q2,q2,$2,G);if(U.set(s,X2),!e)e=document.createDocumentFragment();e.appendChild(X2.element)}}if(e)J.appendChild(e)},O=(H)=>{let b=Q();for(let[S,g]of U){let G=Z(S,b,H);if(g.lastOffset!==G)g.lastOffset=G,g.element.style.transform=`translateY(${G}px)`}},X=(H,b,S,g)=>{let G=U.get(H);if(!G)return;if(G.isGroupHeader)return;let D=A.columns;for(let p=0;p<G.cells.length&&p<D.length;p++)w(G.cells[p],b,D[p],H);G.element.setAttribute("data-id",String(b.id)),G.lastItemId=b.id,E(G.element,H,S,g),M(G.element,S),G.lastSelected=S,G.lastFocused=g},f=(H,b,S)=>{let g=U.get(H);if(!g)return;if(g.isGroupHeader)return;let G=g.lastSelected!==b,D=g.lastFocused!==S;if(G||D)E(g.element,H,b,S),M(g.element,b),g.lastSelected=b,g.lastFocused=S},x=(H)=>{A=H;let b=H.columns;for(let[,S]of U)if(S.element.style.width=`${H.totalWidth}px`,S.cells.length>0)for(let g=0;g<S.cells.length&&g<b.length;g++){let G=S.cells[g],D=b[g];G.style.left=`${D.offset}px`,G.style.width=`${D.width}px`}},k=(H)=>{return U.get(H)?.element},C=()=>{for(let[,H]of U)W.release(H.element);U.clear(),F=-1};return{render:d,updatePositions:O,updateItem:X,updateItemClasses:f,getElement:k,updateColumnLayout:x,setGroupHeaderFn:K,clear:C,destroy:()=>{C(),W.clear()}}};var GJ=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),$=J.gap??0,Y=J.containerSize,q=0,j=[],B=()=>{let K=(Q-1)*$;q=Math.max(0,(Y-K)/Q),j=Array(Q);let M=q+$;for(let y=0;y<Q;y++)j[y]=y*M};B();let V=[],R=0,W=[],U=(K)=>{let M=0,y=K[0];for(let v=1;v<K.length;v++){let P=K[v];if(P<y)y=P,M=v}return M},F=(K,M)=>{if(K<=0)return R=0,V=[],[];let y=Array(Q).fill(0),v=Array(Q);for(let h=0;h<Q;h++)v[h]=[];let P=Array(K);for(let h=0;h<K;h++){let l=U(y),n=M(h),J2=y[l];P[h]={index:h,x:j[l],y:J2,lane:l,size:n,crossSize:q},v[l].push(h),y[l]=J2+n+$}V=v;let u=0;for(let h=0;h<Q;h++){let l=y[h],n=l>0?l-$:0;if(n>u)u=n}return R=u,P},A=(K)=>{if(K.length===0)return R>0?R:0;if(R>0)return R;let M=Array(Q).fill(0);for(let v of K){let P=v.y+v.size,u=M[v.lane];if(P>u)M[v.lane]=P}let y=0;for(let v=0;v<Q;v++)if(M[v]>y)y=M[v];return y},z=(K,M,y)=>{if(K.length===0||y<=M)return W.length=0,W;if(V.length===0||V.length!==Q)return N(K,M,y);W.length=0;for(let v=0;v<Q;v++){let P=V[v],u=P.length;if(u===0)continue;let h=0,l=u;while(h<l){let n=h+l>>>1,J2=K[P[n]];if(J2.y+J2.size<=M)h=n+1;else l=n}for(let n=h;n<u;n++){let J2=K[P[n]];if(J2.y>=y)break;W.push(J2)}}return W},N=(K,M,y)=>{let v=[];for(let P of K)if(P.y+P.size>M&&P.y<y)v.push(P);return v};return{get columns(){return Q},get gap(){return $},get containerSize(){return Y},update:(K)=>{let M=!1;if(K.columns!==void 0){let y=Math.max(1,Math.floor(K.columns));if(y!==Q)Q=y,M=!0}if(K.gap!==void 0&&K.gap!==$)$=K.gap,M=!0;if(K.containerSize!==void 0&&K.containerSize!==Y)Y=K.containerSize,M=!0;if(M)B()},calculateLayout:F,getTotalSize:A,getVisibleItems:z}};var hJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-lane"),Q.push(j)},clear:()=>{Q.length=0}}},xJ=1,DJ=(J,Q,$,Y=!1,q,j)=>{let B=hJ(),V=new Map,R=new Set,W=0,U="",F=-1,A={selected:!1,focused:!1},z=(m,I)=>{return A.selected=m,A.focused=I,A},N=`${$}-item ${$}-masonry-item`,_=`${$}-item--selected`,K=`${$}-item--focused`,M=(m,I)=>{if(typeof I==="string")m.innerHTML=I;else m.replaceChildren(I)},y=(m,I,o)=>{m.classList.toggle(_,I),m.classList.toggle(K,o)},v=(m,I)=>{if(Y)m.style.transform=`translate(${Math.round(I.y)}px, ${Math.round(I.x)}px)`;else m.style.transform=`translate(${Math.round(I.x)}px, ${Math.round(I.y)}px)`},P=(m,I)=>{if(Y)m.style.width=`${I.size}px`,m.style.height=`${I.crossSize}px`;else m.style.width=`${I.crossSize}px`,m.style.height=`${I.size}px`},u=(m,I,o,i,w)=>{let E=B.acquire(),Z=z(i,w);if(E.className=N,E.dataset.index=String(m),E.dataset.id=String(I.id),E.dataset.lane=String(o.lane),E.ariaSelected=String(i),j)E.id=`${j}-item-${m}`;if(q){let T=q();if(T!==F)F=T,U=String(T);E.setAttribute("aria-setsize",U),E.setAttribute("aria-posinset",String(m+1))}P(E,o);let L=Q(I,m,Z);return M(E,L),y(E,i,w),v(E,o),{element:E,lastItemId:I.id,lastSelected:i,lastFocused:w,lastY:o.y,lastX:o.x,lastSize:o.size,lastCrossSize:o.crossSize,lastSeenFrame:W}},h=(m,I,o,i)=>{W++,R.clear();for(let E=0;E<I.length;E++)R.add(I[E].index);for(let[E,Z]of V)if(R.has(E))Z.lastSeenFrame=W;else if(W-Z.lastSeenFrame>xJ)B.release(Z.element),V.delete(E);let w=null;for(let E=0;E<I.length;E++){let Z=I[E],L=Z.index,T=m(L);if(!T)continue;let a=o.has(T.id),r=L===i,d=V.get(L);if(d){let O=d.lastItemId!==T.id,X=d.lastSelected!==a,f=d.lastFocused!==r,x=d.lastY!==Z.y||d.lastX!==Z.x,k=d.lastSize!==Z.size||d.lastCrossSize!==Z.crossSize;if(O){let C=z(a,r),t=Q(T,L,C);M(d.element,t),d.element.dataset.id=String(T.id),d.lastItemId=T.id}if(O||X||f)y(d.element,a,r),d.element.ariaSelected=String(a),d.lastSelected=a,d.lastFocused=r;if(k)P(d.element,Z),d.lastSize=Z.size,d.lastCrossSize=Z.crossSize;if(x)v(d.element,Z),d.lastY=Z.y,d.lastX=Z.x}else{let O=u(L,T,Z,a,r);if(!w)w=document.createDocumentFragment();w.appendChild(O.element),V.set(L,O)}}if(w)J.appendChild(w)},l=()=>{for(let{element:m}of V.values())B.release(m);V.clear(),J.innerHTML=""};return{render:h,getElement:(m)=>V.get(m)?.element,updateItemClasses:(m,I,o)=>{let i=V.get(m);if(!i)return;let w=i.lastSelected!==I,E=i.lastFocused!==o;if(w||E)y(i.element,I,o),i.lastSelected=I,i.lastFocused=o},sortDOM:()=>{T2(J,V.keys(),(m)=>V.get(m)?.element)},clear:l,destroy:()=>{l(),B.clear()}}};var _J=(J,Q)=>{let $=new Map,Y=(j)=>{let B=$.get(j);return B!==void 0?B:J},q=E2(Y,Q);return{getOffset(j){return q.getOffset(j)},getSize(j){return Y(j)},indexAtOffset(j){return q.indexAtOffset(j)},getTotalSize(){return q.getTotalSize()},getTotal(){return q.getTotal()},rebuild(j){if(j<q.getTotal()){for(let B of $.keys())if(B>=j)$.delete(B)}q=E2(Y,j)},isVariable(){return!0},setMeasuredSize(j,B){$.set(j,B)},isMeasured(j){return $.has(j)},getEstimatedSize(){return J},measuredCount(){return $.size}}};var VJ=(J,Q,$,Y,q,j)=>{if(Y===0||Q===0)return j.start=0,j.end=-1,j;let B=$.indexAtOffset(J),V=$.indexAtOffset(J+Q);if(V<Y-1)V++;return j.start=Math.max(0,B),j.end=Math.min(Y-1,Math.max(0,V)),j},WJ=(J,Q,$,Y)=>{if($===0)return Y.start=0,Y.end=-1,Y;return Y.start=Math.max(0,J.start-Q),Y.end=Math.min($-1,J.end+Q),Y},MJ=(J,Q,$,Y,q,j)=>{if(Y===0)return 0;let B=Math.max(0,Math.min(J,Y-1)),V=Q.getOffset(B),R=Q.getSize(B),W=Q.getTotalSize(),U=Math.max(0,W-$),F;switch(j){case"center":F=V-$/2+R/2;break;case"end":F=V-$+R;break;case"start":default:F=V;break}return Math.max(0,Math.min(F,U))},OJ=(J,Q,$)=>{if($&&$.isCompressed)return $.virtualSize;return Q.getTotalSize()},AJ=(J,Q)=>{return Q.getTotalSize()},EJ=(J,Q)=>{return Q.getOffset(J)},FJ=(J,Q,$)=>{let Y=Math.max(0,Q-$);return Math.max(0,Math.min(J,Y))};var LJ=(J,Q,$,Y,q="start",j,B=MJ)=>{return B(J,Q,$,Y,j,q)},HJ=(J,Q)=>{return J.start===Q.start&&J.end===Q.end},bJ=(J,Q)=>{return J>=Q.start&&J<=Q.end},TJ=(J)=>{if(J.end<J.start)return 0;return J.end-J.start+1};var RJ=(J,Q)=>{let $=[],Y=[];for(let q=J.start;q<=J.end;q++)if(q<Q.start||q>Q.end)Y.push(q);for(let q=Q.start;q<=Q.end;q++)if(q<J.start||q>J.end)$.push(q);return{add:$,remove:Y}};var yJ=()=>{let J={},Q=(j,B)=>{if(!J[j])J[j]=new Set;return J[j].add(B),()=>$(j,B)},$=(j,B)=>{J[j]?.delete(B)};return{on:Q,off:$,emit:(j,B)=>{J[j]?.forEach((V)=>{try{V(B)}catch(R){console.error(`[vlist] Error in event handler for "${String(j)}":`,R)}})},clear:(j)=>{if(j)delete J[j];else for(let B in J)delete J[B]}}};var R2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:$=5000,evictionBuffer:Y=200,onEvict:q}=J,j=new Map,B=0,V=0,R=(w)=>{let E=j.get(w);if(!E)E={items:Array(Q),count:0,lastAccess:Date.now()},j.set(w,E);else E.lastAccess=Date.now();return E},W=(w)=>{return Math.floor(w/Q)},U=(w)=>{return w%Q},F=()=>B,A=(w)=>{B=w},z=(w)=>{if(w<0||w>=B)return;let E=W(w),Z=j.get(E);if(!Z)return;return Z.items[U(w)]},N=(w)=>{if(w<0||w>=B)return!1;let E=W(w),Z=j.get(E);if(!Z)return!1;return Z.items[U(w)]!==void 0},_=(w,E)=>{let Z=W(w),L=R(Z),T=U(w),a=L.items[T]===void 0;if(L.items[T]=E,a)L.count++,V++;if(w>=B)B=w+1},K=(w,E)=>{for(let Z=0;Z<E.length;Z++){let L=E[Z];if(L!==void 0)_(w+Z,L)}},M=(w)=>{if(w<0||w>=B)return!1;let E=W(w),Z=j.get(E),L=U(w);if(!(Z!==void 0&&Z.items[L]!==void 0))return!1;let a=E,r=Array.from(j.keys()).filter((O)=>O>=a).sort((O,X)=>O-X),d=[];for(let O of r){let X=j.get(O),f=O*Q;for(let x=0;x<Q;x++){if(X.items[x]===void 0)continue;let k=f+x;if(k<=w)continue;d.push({oldIndex:k,item:X.items[x]})}}if(Z.items[L]=void 0,Z.count--,V--,Z.count===0)j.delete(E);for(let{oldIndex:O}of d){let X=W(O),f=j.get(X);if(!f)continue;let x=U(O);if(f.items[x]!==void 0){if(f.items[x]=void 0,f.count--,V--,f.count===0)j.delete(X)}}for(let{oldIndex:O,item:X}of d){let f=O-1,x=W(f),k=R(x),C=U(f);k.items[C]=X,k.count++,V++}return B--,!0},y=(w,E)=>{let Z=[];for(let L=w;L<=E&&L<B;L++)Z.push(z(L));return Z},v=(w,E)=>{for(let Z=w;Z<=E&&Z<B;Z++)if(!N(Z))return!1;return!0},P=()=>{let w=[],E=null,Z=Array.from(j.keys()).sort((L,T)=>L-T);for(let L of Z){let T=j.get(L);if(!T)continue;let a=L*Q;for(let r=0;r<Q;r++){let d=a+r;if(d>=B)break;if(T.items[r]!==void 0)if(E===null)E={start:d,end:d};else if(d===E.end+1)E.end=d;else w.push(E),E={start:d,end:d};else if(E!==null)w.push(E),E=null}}if(E!==null)w.push(E);return w},u=(w,E)=>{let Z=[],L=null;for(let T=w;T<=E&&T<B;T++)if(!N(T))if(L===null)L={start:T,end:T};else L.end=T;else if(L!==null)Z.push(L),L=null;if(L!==null)Z.push(L);return Z},h=(w)=>{return j.has(w)},l=(w)=>{let E=j.get(w);if(E)E.lastAccess=Date.now()},n=(w,E)=>{if(w>E||j.size===0)return;let Z=Date.now(),L=W(Math.max(0,w)),T=W(Math.min(B-1,E));for(let a=L;a<=T;a++){let r=j.get(a);if(r)r.lastAccess=Z}},J2=(w,E)=>{if(V<=$)return 0;let Z=Math.max(0,w-Y),L=Math.min(B-1,E+Y),T=W(Z),a=W(L),r=0,d=[];for(let[O,X]of j)if(O<T||O>a)r+=X.count,d.push(O),V-=X.count,j.delete(O);if(r>0&&q)q(r,d);return r},j2=()=>{if(V<=$)return 0;let w=Array.from(j.entries()).sort(([,L],[,T])=>L.lastAccess-T.lastAccess),E=0,Z=[];for(let[L,T]of w){if(V<=$)break;E+=T.count,V-=T.count,Z.push(L),j.delete(L)}if(E>0&&q)q(E,Z);return E},m=()=>{return{totalItems:B,cachedItems:V,cachedChunks:j.size,chunkSize:Q,maxCachedItems:$,memoryEfficiency:B>0?1-V/B:1}},I=()=>V,o=()=>{j.clear(),V=0};return{chunkSize:Q,maxCachedItems:$,getTotal:F,setTotal:A,get:z,has:N,set:_,setRange:K,delete:M,getRange:y,isRangeLoaded:v,getLoadedRanges:P,findUnloadedRanges:u,getChunkIndex:W,isChunkLoaded:h,touchChunk:l,touchChunksForRange:n,evictDistant:J2,evictToLimit:j2,getStats:m,getCachedCount:I,clear:o,reset:()=>{o(),B=0}}},y2=(J)=>{if(J.length===0)return[];let Q=[...J].sort((Y,q)=>Y.start-q.start),$=[{...Q[0]}];for(let Y=1;Y<Q.length;Y++){let q=Q[Y],j=$[$.length-1];if(q.start<=j.end+1)j.end=Math.max(j.end,q.end);else $.push({...q})}return $},L2=(J,Q,$)=>{let Y=Math.floor(J.start/$)*$,q=Math.ceil((J.end+1)/$)*$-1,j={start:Y,end:q};if(Q.length===0)return[j];let B=[],V=y2(Q),R=j.start;for(let W of V){if(W.end<R)continue;if(W.start>j.end)break;if(W.start>R)B.push({start:R,end:Math.min(W.start-1,j.end)});if(R=W.end+1,R>j.end)break}if(R<=j.end)B.push({start:R,end:j.end});return B};var P2=(J={})=>{let{maskCharacter:Q=l2,maxSampleSize:$=a2}=J,Y=[],q=!1,j=(U)=>{if(q||U.length===0)return;let F=Math.min(U.length,$);for(let A=0;A<F;A++){let z=U[A];if(!z||typeof z!=="object")continue;let N={};for(let[_,K]of Object.entries(z)){if(_.startsWith("_")||_==="id")continue;N[_]=String(K??"").length}if(Object.keys(N).length>0)Y.push(N)}q=!0},B=()=>q,V=(U)=>{let F={id:`${D2}${U}`,[v2]:!0,_index:U};if(Y.length===0)return F.label=Q.repeat(12),F;let A=Y[U%Y.length];for(let[z,N]of Object.entries(A))F[z]=Q.repeat(Math.max(1,N));return F};return{analyzeStructure:j,hasAnalyzedStructure:B,generate:V,generateRange:(U,F)=>{let A=[];for(let z=U;z<=F;z++)A.push(V(z));return A},clear:()=>{Y=[],q=!1}}},_2=(J)=>{if(!J||typeof J!=="object")return!1;return J[v2]===!0},p2=(J)=>{return J.filter((Q)=>!_2(Q))};var uJ=50,PJ=(J={})=>{let{adapter:Q,initialItems:$,initialTotal:Y,storage:q,placeholder:j,pageSize:B=uJ,onStateChange:V,onItemsLoaded:R,onItemsEvicted:W}=J,U=R2({...q,onEvict:(G,D)=>{W?.(G),u()}}),F=null,A=()=>{if(!F)F=P2(j);return F},z=new Map,N=!1,_,K=!0,M,y=[],v=0,P=new Map,u=()=>{V?.(i())},h=()=>{z.clear();let G=U.getLoadedRanges();for(let D of G)for(let p=D.start;p<=D.end;p++){let e=U.get(p);if(e&&!_2(e))z.set(e.id,p)}},l=(G,D)=>{if(!_2(D))z.set(D.id,G)},n=(G)=>{z.delete(G)},J2=(G,D)=>{return`${G}-${D}`},j2=()=>U.getTotal(),m=()=>U.getCachedCount(),I=()=>N,o=()=>K,i=()=>({total:U.getTotal(),cached:U.getCachedCount(),isLoading:N,pendingRanges:y,error:_,hasMore:K,cursor:M}),w=()=>U,E=()=>A(),Z=(G)=>{let D=U.get(G);if(D!==void 0)return D;if(G>=0&&G<U.getTotal())return A().generate(G);return},L=(G)=>{let D=z.get(G);if(D===void 0)return;return U.get(D)},T=(G)=>{return z.get(G)??-1},a=(G)=>{let D=U.get(G);return D!==void 0&&!_2(D)},r=(G,D)=>{let p=[],e=U.getTotal(),$2=0,s=0;U.touchChunksForRange(G,Math.min(D,e-1));for(let K2=G;K2<=D&&K2<e;K2++){let Y2=U.get(K2);if(Y2!==void 0)p.push(Y2),$2++;else p.push(A().generate(K2)),s++}return p},d=(G)=>{U.setTotal(G),K=U.getCachedCount()<G,u()},O=(G,D=0,p)=>{if(Q&&G.length>0){let e=A();if(!e.hasAnalyzedStructure())e.analyzeStructure(G)}for(let e=0;e<G.length;e++){let $2=G[e];if($2!==void 0){let s=D+e;U.set(s,$2),l(s,$2)}}if(p!==void 0)U.setTotal(p);else if(D+G.length>U.getTotal())U.setTotal(D+G.length);if(U.getCachedCount()>=U.getTotal()&&U.getTotal()>0)K=!1;u(),R?.(G,D,U.getTotal())},X=(G,D)=>{let p=U.get(G);if(!p)return!1;let e=p.id,$2={...p,...D};if(U.set(G,$2),D.id!==void 0&&D.id!==e)n(e);return l(G,$2),u(),!0},f=(G)=>{let D=z.get(G);if(D===void 0)return!1;if(!U.delete(D))return!1;return h(),P.clear(),u(),!0},x=async(G,D)=>{if(!Q)return;let p=J2(G,D);if(P.has(p))return;let e=U.getLoadedRanges(),$2=L2({start:G,end:D},e,U.chunkSize);if($2.length===0)return;let s=U.chunkSize,K2=[];for(let Q2 of $2){let q2=Math.floor(Q2.start/s),U2=Math.floor(Q2.end/s);for(let c=q2;c<=U2;c++){let X2=c*s,B2=X2+s-1,N2=J2(X2,B2);if(!K2.some((Z2)=>Z2.start===X2)&&!P.has(N2))K2.push({start:X2,end:B2})}}let Y2=[];for(let Q2 of $2){let q2=Math.floor(Q2.start/s),U2=Math.floor(Q2.end/s);for(let c=q2;c<=U2;c++){let X2=c*s,B2=X2+s-1,N2=J2(X2,B2);if(P.has(N2)){let Z2=P.get(N2);if(!Y2.includes(Z2))Y2.push(Z2)}}}for(let Q2 of K2){let q2=J2(Q2.start,Q2.end),U2=(async()=>{y.push(Q2),N=!0,_=void 0,u();try{let c=Q2.end-Q2.start+1,X2={offset:Q2.start,limit:c,cursor:void 0},B2=await Q.read(X2);if(O(B2.items,Q2.start,B2.total),B2.cursor)M=B2.cursor;let N2=Q2.start+B2.items.length;if(N2>=v){if(v=N2,B2.hasMore!==void 0)K=B2.hasMore;else if(B2.total!==void 0)K=N2<B2.total}}catch(c){_=c instanceof Error?c:Error(String(c))}finally{P.delete(q2),y=y.filter((c)=>c.start!==Q2.start||c.end!==Q2.end),N=P.size>0,u()}})();P.set(q2,U2),Y2.push(U2)}await Promise.all(Y2)},k=async(G,D)=>{if(U.isRangeLoaded(G,D))return;await x(G,D)},C=async()=>{if(!Q)return;await x(0,B-1)},t=async()=>{if(!Q||N||!K)return!1;let G=U.getCachedCount(),D=U.getTotal(),p=G,e=Math.min(p+B-1,D>0?D-1:p+B-1);if(p>=D&&D>0)return K=!1,!1;return await x(p,e),U.getCachedCount()>G},H=async()=>{if(U.clear(),U.setTotal(0),z.clear(),F)F.clear();P.clear(),y=[],N=!1,M=void 0,K=!0,v=0,_=void 0,u()},b=(G,D)=>{if(U.evictDistant(G,D)>0)h()},S=()=>{U.clear(),z.clear(),M=void 0,_=void 0,y=[],N=!1,u()},g=()=>{if(U.reset(),z.clear(),F)F.clear();M=void 0,K=!0,v=0,_=void 0,y=[],N=!1,u()};if($&&$.length>0)O($,0,Y??$.length);else if(Y!==void 0)U.setTotal(Y),u();return{getState:i,getTotal:j2,getCached:m,getIsLoading:I,getHasMore:o,getStorage:w,getPlaceholders:E,getItem:Z,getItemById:L,getIndexById:T,isItemLoaded:a,getItemsInRange:r,setTotal:d,setItems:O,updateItem:X,removeItem:f,loadRange:x,ensureRange:k,loadInitial:C,loadMore:t,reload:H,evictDistant:b,clear:S,reset:g}};var kJ=(J=0)=>{let Q=[,,,,,,,,];for(let $=0;$<8;$++)Q[$]={position:0,time:0};return{velocity:0,lastPosition:J,lastTime:performance.now(),samples:Q,sampleIndex:0,sampleCount:0}},k2=(J,Q)=>{let $=performance.now(),Y=$-J.lastTime;if(Y===0)return J;if(Y>100){J.sampleCount=0,J.sampleIndex=0,J.velocity=0;let j=J.samples[0];return j.position=Q,j.time=$,J.sampleIndex=1,J.sampleCount=1,J.lastPosition=Q,J.lastTime=$,J}let q=J.samples[J.sampleIndex];if(q.position=Q,q.time=$,J.sampleIndex=(J.sampleIndex+1)%8,J.sampleCount=Math.min(J.sampleCount+1,8),J.sampleCount>=2){let j=(J.sampleIndex-J.sampleCount+8)%8,B=J.samples[j],V=Q-B.position,R=$-B.time;J.velocity=R>0?V/R:0}return J.lastPosition=Q,J.lastTime=$,J},mJ=(J)=>J.sampleCount>=3,zJ=(J,Q={})=>{let{wheel:$=!0,sensitivity:Y=1,smoothing:q=!1,idleTimeout:j=150,onScroll:B,onIdle:V,scrollElement:R,horizontal:W=!1}=Q,U=!!R,F=0,A=0,z=U?W?window.innerWidth:window.innerHeight:W?J.clientWidth:J.clientHeight,N=Q.compressed??!1,_=Q.compression,K=kJ(),M=!1,y=null,P=z2(()=>{let k=W?J.scrollLeft:J.scrollTop,C=k>=F?"down":"up";if(K=k2(K,k),F=k,B)B({scrollTop:F,direction:C,velocity:K.velocity});j2()}),h=z2(()=>{let k=J.getBoundingClientRect(),C=W?Math.max(0,-k.left):Math.max(0,-k.top),t=C>=F?"down":"up";if(K=k2(K,C),F=C,!M)M=!0;if(B)B({scrollTop:F,direction:t,velocity:K.velocity});j2()}),l=(k)=>{k.preventDefault()},n=(k)=>{if(k.deltaX)return;k.preventDefault(),J.scrollLeft+=k.deltaY},J2=(k)=>{if(!N)return;k.preventDefault();let C=(W?k.deltaX||k.deltaY:k.deltaY)*Y,t=F+C;if(q)t=F+C*0.3;if(t=Math.max(0,Math.min(t,A)),t!==F){let b=t>=F?"down":"up";if(K=k2(K,t),F=t,!M)M=!0;if(B)B({scrollTop:F,direction:b,velocity:K.velocity});j2()}},j2=()=>{if(y)clearTimeout(y);y=setTimeout(()=>{if(M=!1,K=kJ(F),V)V()},j)},m=(k)=>{if(N)return;if(N=!0,_=k,A=k.virtualSize-z,U)return;if(P.cancel(),J.removeEventListener("scroll",P),!$)J.removeEventListener("wheel",l);else if(W)J.removeEventListener("wheel",n);if(W)J.style.overflowX="hidden";else J.style.overflow="hidden";if($)J.addEventListener("wheel",J2,{passive:!1});let C=W?J.scrollLeft:J.scrollTop;if(C>0){let t=W?_?.actualSize??J.scrollWidth:_?.actualSize??J.scrollHeight;F=C/t*A}if(W)J.scrollLeft=0;else J.scrollTop=0},I=()=>{if(!N)return;if(N=!1,U){_=void 0;return}if(J.removeEventListener("wheel",J2),W)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",P,{passive:!0}),!$)J.addEventListener("wheel",l,{passive:!1});else if(W)J.addEventListener("wheel",n,{passive:!1});if(_&&F>0){let C=F/A*(_.actualSize-z);if(W)J.scrollLeft=C;else J.scrollTop=C}_=void 0},o=()=>{if(U||N)return F;return W?J.scrollLeft:J.scrollTop},i=(k,C=!1)=>{let t=Math.max(0,Math.min(k,A||1/0));if(U){let H=J.getBoundingClientRect();if(W){let b=H.left+window.scrollX;window.scrollTo({left:b+t,behavior:C?"smooth":"auto"})}else{let b=H.top+window.scrollY;window.scrollTo({top:b+t,behavior:C?"smooth":"auto"})}}else if(N){if(t===F)return;let b=t>=F?"down":"up";if(K=k2(K,t),F=t,!M)M=!0;if(B)B({scrollTop:F,direction:b,velocity:K.velocity});j2()}else if(W)J.scrollTo({left:t,behavior:C?"smooth":"auto"});else J.scrollTo({top:t,behavior:C?"smooth":"auto"})},w=(k)=>{i(o()+k)},E=()=>{return o()<=0},Z=(k=0)=>{let C=o(),t=U||N?A:W?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return C>=t-k},L=()=>{let k=o(),C=U||N?A:W?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(C<=0)return 0;return Math.min(1,Math.max(0,k/C))},T=(k)=>{if(k.compression)_=k.compression,A=_.virtualSize-z},a=()=>N,r=()=>Math.abs(K.velocity),d=()=>mJ(K),O=()=>M,X=()=>U,f=(k)=>{if(z=k,_)A=_.virtualSize-z},x=()=>{if(y)clearTimeout(y);if(U)h.cancel(),window.removeEventListener("scroll",h);else P.cancel(),J.removeEventListener("scroll",P),J.removeEventListener("wheel",J2),J.removeEventListener("wheel",l),J.removeEventListener("wheel",n)};if(U){if(N&&_)A=_.virtualSize-z;window.addEventListener("scroll",h,{passive:!0})}else if(N&&_){if(A=_.virtualSize-z,W)J.style.overflowX="hidden";else J.style.overflow="hidden";if($)J.addEventListener("wheel",J2,{passive:!1})}else{if(W)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",P,{passive:!0}),!$)J.addEventListener("wheel",l,{passive:!1});else if(W)J.addEventListener("wheel",n,{passive:!1})}return{getScrollTop:o,scrollTo:i,scrollBy:w,isAtTop:E,isAtBottom:Z,getScrollPercentage:L,getVelocity:r,isTracking:d,isScrolling:O,updateConfig:T,enableCompression:m,disableCompression:I,isCompressed:a,isWindowMode:X,updateContainerHeight:f,destroy:x}},z2=(J)=>{let Q=null,$=null,Y=(...q)=>{if($=q,Q===null)Q=requestAnimationFrame(()=>{if(Q=null,$)J(...$)})};return Y.cancel=()=>{if(Q!==null)cancelAnimationFrame(Q),Q=null},Y};var wJ=(J,Q,$={},Y="vlist",q=!1)=>{let{autoHide:j=!0,autoHideDelay:B=1000,minThumbSize:V=30,showOnHover:R=!0,hoverZoneWidth:W=16,showOnViewportEnter:U=!0}=$,F=0,A=0,z=0,N=0,_=!1,K=!1,M=0,y=0,v=0,P=null,u=!1,h=null,l=null,n=q?"width":"height",J2=q?"translateX":"translateY",j2=q?(b)=>b.clientX:(b)=>b.clientY,m=q?"left":"top",I=document.createElement("div"),o=document.createElement("div"),i=R?document.createElement("div"):null,w=()=>{if(I.className=`${Y}-scrollbar`,o.className=`${Y}-scrollbar-thumb`,q)I.classList.add(`${Y}-scrollbar--horizontal`);if(I.appendChild(o),J.appendChild(I),i){if(i.className=`${Y}-scrollbar-hover`,q)i.classList.add(`${Y}-scrollbar-hover--horizontal`),i.style.height=`${W}px`;else i.style.width=`${W}px`;J.appendChild(i)}},E=()=>{if(P)clearTimeout(P),P=null},Z=()=>{if(!j)return;E(),P=setTimeout(T,B)},L=()=>{if(F<=A)return;if(E(),!u)I.classList.add(`${Y}-scrollbar--visible`),u=!0;if(j&&!_&&!K)Z()},T=()=>{if(_||K)return;I.classList.remove(`${Y}-scrollbar--visible`),u=!1},a=(b,S)=>{F=b,A=S;let g=F>A;if(I.style.display=g?"":"none",!g){T();return}let G=A/F;z=Math.max(V,G*A),o.style[n]=`${z}px`,N=A-z,r(v)},r=(b)=>{if(v=b,F<=A||N<=0)return;let S=F-A,G=Math.min(1,Math.max(0,b/S))*N;o.style.transform=`${J2}(${G}px)`},d=(b)=>{if(b.target===o)return;let S=I.getBoundingClientRect(),D=j2(b)-S[m]-z/2,e=Math.max(0,Math.min(D,N))/N,$2=F-A,s=e*$2;Q(s),L()},O=(b)=>{b.preventDefault(),b.stopPropagation(),_=!0,M=j2(b),y=v,E(),I.classList.add(`${Y}-scrollbar--dragging`),document.addEventListener("mousemove",X),document.addEventListener("mouseup",f)},X=(b)=>{if(!_)return;let S=j2(b)-M,g=N>0?S/N:0,G=F-A,D=g*G,p=Math.max(0,Math.min(y+D,G)),$2=p/G*N;if(o.style.transform=`${J2}(${$2}px)`,l=p,h===null)h=requestAnimationFrame(()=>{if(l!==null)Q(l);h=null})},f=()=>{if(_=!1,h!==null)cancelAnimationFrame(h),h=null;if(l!==null)Q(l),l=null;if(I.classList.remove(`${Y}-scrollbar--dragging`),j&&!K)Z();document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",f)},x=()=>{if(U)L()},k=()=>{if(!_){if(K=!1,j)Z()}},C=()=>{K=!0,E(),L()},t=()=>{if(K=!1,!_&&j)Z()},H=()=>{if(E(),h!==null)cancelAnimationFrame(h),h=null;if(I.removeEventListener("click",d),I.removeEventListener("mouseenter",C),I.removeEventListener("mouseleave",t),o.removeEventListener("mousedown",O),J.removeEventListener("mouseenter",x),J.removeEventListener("mouseleave",k),document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",f),i){if(i.removeEventListener("mouseenter",C),i.removeEventListener("mouseleave",t),i.parentNode)i.parentNode.removeChild(i)}if(I.parentNode)I.parentNode.removeChild(I)};if(w(),I.addEventListener("click",d),I.addEventListener("mouseenter",C),I.addEventListener("mouseleave",t),o.addEventListener("mousedown",O),J.addEventListener("mouseenter",x),J.addEventListener("mouseleave",k),i)i.addEventListener("mouseenter",C),i.addEventListener("mouseleave",t);return{show:L,hide:T,updateBounds:a,updatePosition:r,isVisible:()=>u,destroy:H}};var dJ=50,cJ=0.1;function rJ(J){let Q=0,$=0,Y=0;function q(){return Y>0?$/Y:0}function j(R){if(Q=R,R>cJ&&R<dJ)$+=R,Y++}function B(){let R=J.getTotal();if(R===0)return 0;let W=J.getItemSize();if(W<=0)return 0;let U=J.getContainerSize();if(U<=0)return 0;let F=J.getScrollPosition(),A=typeof J.getColumns==="function"?J.getColumns():1,N=Math.ceil(R/A)*W,K=Math.min(N,G2)-U,M=N-U,y=K>0?M/K:1,v=F*y,P=Math.ceil((v+U)/W);return Math.min(P*A,R)}function V(){let R=J.getTotal(),W=B();return{progress:R>0?Math.min(100,Math.max(0,W/R*100)):0,velocity:Q,velocityAvg:q(),itemCount:W,total:R}}return{getState:V,onVelocity:j}}export{o2 as toggleSelection,VJ as simpleVisibleRange,C2 as selectItems,n2 as selectAll,HJ as rangesEqual,z2 as rafThrottle,qJ as needsScaling,y2 as mergeRanges,t2 as isSelected,_2 as isPlaceholderItem,bJ as isInRange,b2 as isGroupHeader,JJ as getSelectedItems,e2 as getSelectedIds,F2 as getScaleState,KJ as getScaleInfo,F2 as getScale,TJ as getRangeCount,BJ as getMaxItemsWithoutScaling,p2 as filterPlaceholders,RJ as diffRanges,S2 as deselectItems,ZJ as createTableRenderer,XJ as createTableLayout,NJ as createTableHeader,c2 as createStickyHeader,rJ as createStats,R2 as createSparseStorage,E2 as createSizeCache,s2 as createSelectionState,wJ as createScrollbar,zJ as createScrollController,P2 as createPlaceholderManager,_J as createMeasuredSizeCache,DJ as createMasonryRenderer,GJ as createMasonryLayout,m2 as createGroupedSizeFn,d2 as createGroupLayout,UJ as createGridRenderer,r2 as createGridLayout,yJ as createEmitter,PJ as createAsyncManager,i2 as clearSelection,FJ as clampScrollPosition,OJ as calculateTotalSize,LJ as calculateScrollToIndex,QJ as calculateScaledVisibleRange,YJ as calculateScaledScrollToIndex,$J as calculateScaledRenderRange,M2 as calculateScaledItemPosition,WJ as calculateRenderRange,L2 as calculateMissingRanges,EJ as calculateItemOffset,jJ as calculateIndexFromScrollPosition,AJ as calculateActualSize,u2 as buildLayoutItems,G2 as MAX_VIRTUAL_SIZE};
1
+ var b2=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var w2=(J,Q)=>{let $=0,Y=J.length-1;while($<Y){let q=$+Y+1>>>1;if(J[q].headerLayoutIndex<=Q)$=q;else Y=q-1}return $},x2=(J,Q)=>{let $=0,Y=J.length-1;while($<Y){let q=$+Y+1>>>1;if(J[q].firstDataIndex<=Q)$=q;else Y=q-1}return $},g2=(J,Q)=>{if(J===0)return[];let $=[],Y=Q(0),q=0,j=0;for(let B=1;B<J;B++){let D=Q(B);if(D!==Y){let T=B-q;$.push({key:Y,groupIndex:$.length,headerLayoutIndex:j,firstDataIndex:q,count:T}),j=j+1+T,Y=D,q=B}}return $.push({key:Y,groupIndex:$.length,headerLayoutIndex:j,firstDataIndex:q,count:J-q}),$},u2=(J,Q)=>{if(J.length===0||Q.length===0)return[];let $=J.length+Q.length,Y=Array($),q=0;for(let j of Q){Y[q]={id:`__group_header_${j.groupIndex}`,__groupHeader:!0,groupKey:j.key,groupIndex:j.groupIndex},q++;for(let B=0;B<j.count;B++)Y[q]=J[j.firstDataIndex+B],q++}return Y},m2=(J,Q,$=!1)=>{let Y=typeof Q==="number"?(q)=>Q:Q;return(q)=>{let j=J.getEntry(q);if(j.type==="header"){if($&&j.group.groupIndex===0)return 0;return J.getHeaderHeight(j.group.groupIndex)}return Y(j.dataIndex)}},d2=(J,Q)=>{let $=g2(J,Q.getGroupForIndex),Y=J+$.length,q=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return Y},get groupCount(){return $.length},get groups(){return $},getEntry:(W)=>{if($.length===0)return{type:"item",dataIndex:W,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let z=w2($,W),N=$[z];if(W===N.headerLayoutIndex)return{type:"header",group:N};let G=W-N.headerLayoutIndex-1;return{type:"item",dataIndex:N.firstDataIndex+G,group:N}},layoutToDataIndex:(W)=>{if($.length===0)return W;let z=w2($,W),N=$[z];if(W===N.headerLayoutIndex)return-1;let G=W-N.headerLayoutIndex-1;return N.firstDataIndex+G},dataToLayoutIndex:(W)=>{if($.length===0)return W;let z=x2($,W),N=$[z],G=W-N.firstDataIndex;return N.headerLayoutIndex+1+G},getGroupAtLayoutIndex:(W)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let z=w2($,W);return $[z]},getGroupAtDataIndex:(W)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let z=x2($,W);return $[z]},getHeaderHeight:typeof q==="number"?(W)=>q:(W)=>{let z=$[W];if(!z)return 0;return q(z.key,W)},rebuild:(W)=>{$=g2(W,Q.getGroupForIndex),Y=W+$.length}}};var c2=(J,Q,$,Y,q,j=!1,B=0)=>{let D=j?"width":"height",T=j?"height":"width",_=j?"X":"Y",K=(X,C)=>{X.style[D]=`${C}px`},A=document.createElement("div");A.className=`${q}-sticky-header`,A.setAttribute("role","presentation"),A.setAttribute("aria-hidden","true"),A.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${B||0}px`:`top:${B||0}px`);let W=()=>{let X=document.createElement("div");return X.className="sticky-group",X.style.position="absolute",X.style.willChange="transform",X.style[T]="100%",X},z=W(),N=W();A.append(z,N),J.insertBefore(A,J.firstChild);let G=z,U=N,V=Q.groups,R=[],v=[],y=0,s=()=>{V=Q.groups,y=V.length,R=Array(y),v=Array(y);for(let X=0;X<y;X++)R[X]=$.getOffset(V[X].headerLayoutIndex),v[X]=Q.getHeaderHeight(X)};s();let h=-1,u=0,t=-1,$2=!1,Y2=0,m=!1,f=(X,C)=>{Y(X,C);let l=v[C];return K(X,l),l},n=(X)=>{X.replaceChildren(),X.style.transform=""},J2=(X)=>{if(X===h)return;if(h=X,u=0,X<0||X>=y){n(G);return}u=f(G,X),K(A,u),G.style.transform=""},w=(X)=>{if(X===Y2)return;Y2=X;let C=Math.round(X);G.style.transform=`translate${_}(${C}px)`,U.style.transform=`translate${_}(${C+u}px)`},M=()=>{Y2=0,G.style.transform="",U.style.transform=""},Z=()=>{if(!m)return;let X=G;G=U,U=X,h=t,u=h>=0?v[h]:0,K(A,u),n(U),t=-1,m=!1,M()},F=()=>{if(!m)return;n(U),t=-1,m=!1,M()},b=()=>{if($2)return;$2=!0,A.style.display=""},o=()=>{if(!$2)return;$2=!1,A.style.display="none",n(G),h=-1,u=0,F()},a=(X)=>{if(y===0){o();return}if(X<R[0]){o();return}let C=0,l=y-1;while(C<l){let k=C+l+1>>>1;if(R[k]+v[k]<=X)C=k;else l=k-1}if(!$2)b();J2(C);let P=C+1;if(P<y){let k=R[P]-X;if(k<=0&&k>-u){if(t!==P||!m)t=P,f(U,P),m=!0;w(k)}else if(k<=-u){if(m)Z()}else if(m)F()}else if(m)F()},r=()=>{s();let X=h;if(h=-1,u=0,X>=0)J2(X)},O=()=>{A.remove(),h=-1,u=0,t=-1,$2=!1,m=!1};return A.style.display="none",{update:a,refresh:r,show:b,hide:o,destroy:O}};var r2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),$=J.gap??0,Y=J.isHeaderFn,q={row:0,col:0},j=(N)=>{if(N<=0)return 0;if(!Y)return Math.ceil(N/Q);let G=0,U=0,V=0;for(let R=0;R<N;R++)if(Y(R)){if(V++,U>0)G++,U=0;G++,U=0}else if(U++,U>=Q)G++,U=0;if(U>0)G++;return G},B=(N)=>{return q.row=D(N),q.col=T(N),q},D=(N)=>{if(!Y)return Math.floor(N/Q);let G=0,U=0;for(let V=0;V<=N;V++)if(Y(V)){if(U>0)G++,U=0;if(V===N)return G;G++,U=0}else{if(V===N)return G;if(U++,U>=Q)G++,U=0}return console.warn(`⚠️ getRow(${N}) fell through - returning ${G}`),G},T=(N)=>{if(!Y)return N%Q;if(Y(N))return 0;let G=0;for(let U=0;U<=N;U++)if(Y(U))G=0;else{if(U===N)return G;if(G++,G>=Q)G=0}return G},_=(N,G,U)=>{if(U<=0)return{start:0,end:-1};if(!Y){let s=Math.max(0,N*Q),h=Math.min(U-1,(G+1)*Q-1);return{start:s,end:h}}let V=-1,R=-1,v=0,y=0;for(let s=0;s<U;s++){if(Y(s)){if(y>0)v++,y=0;if(v>=N&&v<=G){if(V===-1)V=s;R=s}v++,y=0}else{if(v>=N&&v<=G){if(V===-1)V=s;R=s}if(y++,y>=Q)v++,y=0}if(v>G&&y===0)break}if(V===-1)return{start:0,end:-1};return{start:V,end:R}},K=(N,G,U)=>{if(G<0||G>=Q)return-1;let V=N*Q+G;if(V<0||V>=U)return-1;return V},A=(N)=>{let G=(Q-1)*$;return Math.max(0,(N-G)/Q)};return{get columns(){return Q},get gap(){return $},update:(N)=>{if(N.columns!==void 0)Q=Math.max(1,Math.floor(N.columns));if(N.gap!==void 0)$=N.gap;if(N.isHeaderFn!==void 0)Y=N.isHeaderFn},getTotalRows:j,getPosition:B,getRow:D,getCol:T,getItemRange:_,getItemIndex:K,getColumnWidth:A,getColumnOffset:(N,G)=>{let U=A(G);return N*(U+$)}}};var V2=16000000;var l2="x",a2=20,v2="_isPlaceholder",W2="__placeholder_";var O2=(J,Q,$)=>{if(String($).startsWith(W2))return!1;let Y=W2+Q;if(J.has(Y))return J.delete(Y),J.add($),!0;return!1},s2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),C2=(J,Q,$)=>{if($==="none")return J;let Y=new Set(J.selected);if($==="single"){if(Y.clear(),Q.length>0)Y.add(Q[0])}else for(let q of Q)Y.add(q);return{...J,selected:Y}},S2=(J,Q)=>{let $=new Set(J.selected);for(let Y of Q)$.delete(Y);return{...J,selected:$}},o2=(J,Q,$)=>{if($==="none")return J;if(J.selected.has(Q))return S2(J,[Q]);else return C2(J,[Q],$)},n2=(J,Q,$)=>{if($!=="multiple")return J;return{...J,selected:new Set(Q.map((Y)=>Y.id))}},i2=(J)=>({...J,selected:new Set});var t2=(J,Q)=>{return J.selected.has(Q)},e2=(J)=>{return Array.from(J.selected)},JJ=(J,Q)=>{let $=[];for(let Y of J.selected){let q=Q(Y);if(q)$.push(q)}return $};var vJ=(J,Q)=>{let $=Q;return{getOffset:(Y)=>Y*J,getSize:(Y)=>J,indexAtOffset:(Y)=>{if($===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(Y/J),$-1))},getTotalSize:()=>$*J,getTotal:()=>$,rebuild:(Y)=>{$=Y},isVariable:()=>!1}},CJ=(J,Q)=>{let $=Q,Y=new Float64Array(0),q=(B)=>{$=B,Y=new Float64Array(B+1),Y[0]=0;for(let D=0;D<B;D++)Y[D+1]=Y[D]+J(D)};q(Q);let j=(B)=>{if($===0)return 0;if(B<=0)return 0;if(B>=Y[$])return $-1;let D=0,T=$-1;while(D<T){let _=D+T+1>>>1;if(Y[_]<=B)D=_;else T=_-1}return D};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=$)return Y[$];return Y[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>j(B),getTotalSize:()=>Y[$]??0,getTotal:()=>$,rebuild:(B)=>q(B),isVariable:()=>!0}},F2=(J,Q)=>{if(typeof J==="number")return vJ(J,Q);return CJ(J,Q)},f2=(J,Q,$,Y)=>{if(Y===0)return 0;if(!J.isVariable())return Math.ceil($/J.getSize(0));let q=0,j=0,B=Q;while(B<Y&&j<$)j+=J.getSize(B),q++,B++;return Math.max(1,q)};var L2=(J,Q,$)=>{let Y=Q.getTotalSize(),q=$===!0||Y>V2,j=Y>V2?V2:Y,B=Y>0?j/Y:1;return{isCompressed:q,actualSize:Y,virtualSize:j,ratio:B}},QJ=(J,Q,$,Y,q,j)=>{if(Y===0||Q===0)return j.start=0,j.end=-1,j;if(!q.isCompressed||q.ratio===1){let W=$.indexAtOffset(J),z=$.indexAtOffset(J+Q);if(z<Y-1)z++;return j.start=Math.max(0,W),j.end=Math.min(Y-1,Math.max(0,z)),j}let{virtualSize:B}=q,T=J/B*Y,_=Math.floor(T),K=f2($,Math.max(0,_),Q,Y),A=Math.ceil(T)+K;return j.start=Math.max(0,_),j.end=Math.min(Y-1,Math.max(0,A)),j},$J=(J,Q,$,Y)=>{if($===0)return Y.start=0,Y.end=-1,Y;return Y.start=Math.max(0,J.start-Q),Y.end=Math.min($-1,J.end+Q),Y},E2=(J,Q,$,Y,q,j,B)=>{if(!j.isCompressed||Y===0)return $.getOffset(J);if(j.ratio===1)return $.getOffset(J)-Q;let{virtualSize:D}=j,T=Q/D,_=$.getTotalSize(),K=T*_;return $.getOffset(J)-K},YJ=(J,Q,$,Y,q,j="start")=>{if(Y===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/Y*q.virtualSize;let K=Q.getSize(J);switch(j){case"center":B-=($-K)/2*q.ratio;break;case"end":B-=($-K)*q.ratio;break}return Math.max(0,B)}B=Q.getOffset(J);let D=Q.getSize(J);switch(j){case"center":B-=($-D)/2;break;case"end":B-=$-D;break}let T=q.virtualSize-$;return Math.max(0,Math.min(B,T))},jJ=(J,Q,$,Y)=>{if($===0)return 0;if(Y.isCompressed&&Y.ratio!==1){let q=J/Y.virtualSize;return Math.floor(q*$)}return Q.indexAtOffset(J)},qJ=(J,Q)=>{if(typeof Q==="number")return J*Q>V2;return Q.getTotalSize()>V2},BJ=(J)=>{if(J<=0)return 0;return Math.floor(V2/J)},UJ=(J,Q,$)=>{let Y=L2(J,Q,$);if(!Y.isCompressed)return`No compression needed (${J} items, ${(Y.actualSize/1e6).toFixed(2)}M px)`;return`Compressed to ${(Y.ratio*100).toFixed(1)}% (${J} items, ${(Y.actualSize/1e6).toFixed(1)}M px → ${(Y.virtualSize/1e6).toFixed(1)}M px virtual)`};var T2=(J,Q,$)=>{let Y=Array.from(Q).sort((B,D)=>B-D);if(Y.length<=1)return;let q=[];for(let B=0;B<Y.length;B++){let D=$(Y[B]);if(D)q.push(D)}if(q.length<=1)return;let j=J.firstChild;for(let B=0;B<q.length;B++){let D=q[B];if(D===j)j=j.nextSibling;else J.insertBefore(D,j)}};var SJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-row"),j.removeAttribute("data-col"),Q.push(j)},clear:()=>{Q.length=0}}},fJ=1,KJ=(J,Q,$,Y,q,j,B,D,T=!1)=>{let _=SJ(),K=new Map,A=j,W=!1,z=0,N="",G=-1,U={selected:!1,focused:!1},V=(O,X)=>{return U.selected=O,U.focused=X,U},R=`${q}-item ${q}-grid-item`,v=`${q}-item--selected`,y=`${q}-item--focused`,s=`${q}-item--placeholder`,h=`${q}-item--replaced`,u=(O,X)=>{if(typeof X==="string")O.innerHTML=X;else O.replaceChildren(X)},t=(O,X,C)=>{O.classList.toggle(v,X),O.classList.toggle(y,C)},$2=(O,X)=>{let C=Y.getRow(O);if(X?.compression?.isCompressed)return E2(C,X.scrollPosition,$,X.totalItems,X.containerSize,X.compression,X.rangeStart);return $.getOffset(C)},Y2=(O,X)=>{let C=W&&Y.getCol(O)===0,l=C?0:Y.getCol(O),P=C?0:Y.getColumnOffset(l,A),k;if(W){let e=Y.getRow(O),L=0,H=new Set;for(let S=0;S<O;S++){let c=Y.getRow(S);if(c<e&&!H.has(c)){let x=$.getSize(S);L+=x,H.add(c)}}k=L}else k=$2(O,X);if(T)return`translate(${Math.round(k)}px, ${Math.round(P)}px)`;return`translate(${Math.round(P)}px, ${Math.round(k)}px)`},m=(O,X)=>{O.style.transform=X},f=(O,X)=>{let C=O.dataset.id?.startsWith("__group_header"),l=C?A:Y.getColumnWidth(A),P;if(W||C)P=$.getSize(X)-Y.gap;else{let k=Y.getRow(X);P=$.getSize(k)-Y.gap}if(T)O.style.width=`${P}px`,O.style.height=`${l}px`;else O.style.width=`${l}px`,O.style.height=`${P}px`},n=(O,X,C,l,P)=>{let k=_.acquire(),e=V(C,l);if(k.className=R,k.dataset.index=String(O),k.dataset.id=String(X.id),k.dataset.row=String(Y.getRow(O)),k.dataset.col=String(Y.getCol(O)),k.ariaSelected=String(C),D)k.id=`${D}-item-${O}`;if(B){let S=B();if(S!==G)G=S,N=String(S);k.setAttribute("aria-setsize",N),k.setAttribute("aria-posinset",String(O+1))}f(k,O);let L=Q(X,O,e);if(u(k,L),String(X.id).startsWith(W2))k.classList.add(s);return t(k,C,l),m(k,P),{element:k,lastItemId:X.id,lastSelected:C,lastFocused:l,lastTransform:P,lastSeenFrame:z}},J2=(O,X,C,l,P)=>{if(z++,X.start===0&&O.length>0)W=b2(O[0]);for(let[L,H]of K)if(L>=X.start&&L<=X.end)H.lastSeenFrame=z;else if(z-H.lastSeenFrame>fJ)_.release(H.element),K.delete(L);let k=!1;if(B){let L=B();if(L!==G)G=L,N=String(L),k=!0}let e=null;for(let L=X.start;L<=X.end;L++){let H=L-X.start,S=O[H];if(!S){console.warn(`⚠️ RENDER: Missing item at index ${L} (range: ${X.start}-${X.end}, items.length: ${O.length})`);continue}let c=C.has(S.id),x=L===l,p=K.get(L);if(p){let E=p.lastItemId!==S.id,I=p.lastSelected!==c,i=p.lastFocused!==x;if(E){let U2=String(p.lastItemId),Q2=String(S.id),j2=U2.startsWith(W2),q2=Q2.startsWith(W2);if(!q2&&O2(C,L,S.id))c=!0;let Z2=V(c,x),g=Q(S,L,Z2);if(u(p.element,g),p.element.dataset.id=Q2,p.element.dataset.row=String(Y.getRow(L)),p.element.dataset.col=String(Y.getCol(L)),f(p.element,L),p.element.classList.toggle(s,q2),j2&&!q2)p.element.classList.add(h),setTimeout(()=>p.element.classList.remove(h),300);p.lastItemId=S.id}if(E||I||i)t(p.element,c,x),p.element.ariaSelected=String(c),p.lastSelected=c,p.lastFocused=x;let d=Y2(L,P);if(p.lastTransform!==d)m(p.element,d),p.lastTransform=d;if(k)p.element.setAttribute("aria-setsize",N)}else{if(O2(C,L,S.id))c=!0;let E=Y2(L,P),I=n(L,S,c,x,E);if(!e)e=document.createDocumentFragment();e.appendChild(I.element),K.set(L,I)}}if(e)J.appendChild(e)},w=(O)=>{for(let[X,C]of K){let l=Y2(X,O);if(C.lastTransform!==l)m(C.element,l),C.lastTransform=l}},M=(O,X,C,l)=>{let P=K.get(O);if(!P)return;let k=V(C,l),e=Q(X,O,k);u(P.element,e),t(P.element,C,l),P.element.dataset.id=String(X.id),P.element.ariaSelected=String(C),f(P.element,O),P.lastItemId=X.id,P.lastSelected=C,P.lastFocused=l},Z=(O,X,C)=>{let l=K.get(O);if(!l)return;let P=l.lastSelected!==X,k=l.lastFocused!==C;if(P||k)t(l.element,X,C),l.lastSelected=X,l.lastFocused=C},F=(O)=>{return K.get(O)?.element},b=(O)=>{if(Math.abs(O-A)<1)return;A=O;for(let[X,C]of K){f(C.element,X);let l=Y2(X);m(C.element,l),C.lastTransform=l}},o=()=>{T2(J,K.keys(),(O)=>K.get(O)?.element)},a=()=>{for(let[,O]of K)_.release(O.element);K.clear()};return{render:J2,updatePositions:w,updateItem:M,updateItemClasses:Z,getElement:F,sortDOM:o,updateContainerWidth:b,clear:a,destroy:()=>{a(),_.clear()}}};var XJ=(J,Q=50,$=1/0,Y=!0)=>{let q=J,j=[],B=0,D=()=>{j=q.map((U,V)=>({def:U,index:V,width:0,minWidth:IJ(U.minWidth??Q,1),maxWidth:U.maxWidth??$,resizable:U.resizable??Y,offset:0}))},T=(U)=>{if(j.length===0){B=0;return}let V=0,R=0;for(let v=0;v<j.length;v++){let y=j[v],s=y.def;if(s.width!==void 0)y.width=I2(s.width,y.minWidth,y.maxWidth),V+=y.width;else R++}if(R>0){let y=Math.max(0,U-V)/R;for(let s=0;s<j.length;s++){let h=j[s];if(h.def.width===void 0)h.width=I2(y,h.minWidth,h.maxWidth)}}_()},_=()=>{let U=0;for(let V=0;V<j.length;V++){let R=j[V];R.offset=U,U+=R.width}B=U},K=(U,V)=>{if(U<0||U>=j.length)return 0;let R=j[U];if(!R.resizable)return R.width;let v=I2(V,R.minWidth,R.maxWidth);return R.width=v,_(),v},A=(U)=>{return j[U]},W=(U)=>{if(j.length===0)return;if(U<0)return j[0];if(U>=B)return j[j.length-1];let V=0,R=j.length-1;while(V<R){let v=V+R>>>1,y=j[v];if(U<y.offset)R=v-1;else if(U>=y.offset+y.width)V=v+1;else return y}return j[V]},z=(U)=>{if(U<0||U>=j.length)return 0;return j[U].offset},N=(U)=>{if(U<0||U>=j.length)return 0;return j[U].width},G=(U)=>{q=U,D()};return D(),{get columns(){return j},get totalWidth(){return B},resolve:T,updateColumns:G,resizeColumn:K,getColumn:A,getColumnAtX:W,getColumnOffset:z,getColumnWidth:N}},I2=(J,Q,$)=>Math.min($,Math.max(Q,J)),IJ=(J,Q)=>Math.max(Q,J);var NJ=(J,Q,$,Y,q,j,B)=>{let D=document.createElement("div");D.setAttribute("role","rowgroup");let T=document.createElement("div");T.className=`${Y}-table-header`,T.setAttribute("role","row"),T.setAttribute("aria-rowindex","1"),T.style.height=`${$}px`;let _=document.createElement("div");_.className=`${Y}-table-header-scroll`,_.setAttribute("role","presentation"),T.appendChild(_),D.appendChild(T),J.insertBefore(D,J.firstChild),Q.style.cssText=`position:absolute;top:${$}px;left:0px;right:0px;bottom:0px;height:auto`;let K=[],A=[],W=[],z=!0,N=null,G="asc",U=null,V=!1,R=-1,v=0,y=0,s=(Z,F)=>{let b=document.createElement("div");b.className=`${Y}-table-header-cell`,b.setAttribute("role","columnheader"),b.setAttribute("aria-colindex",String(F+1)),b.dataset.columnKey=Z.def.key;let o=Z.def.align;if(o==="center")b.classList.add(`${Y}-table-header-cell--center`);else if(o==="right")b.classList.add(`${Y}-table-header-cell--right`);let a=document.createElement("div");a.className=`${Y}-table-header-content`;let r=Z.def.header?Z.def.header(Z.def):Z.def.label;if(typeof r==="string")a.textContent=r;else a.appendChild(r);if(b.appendChild(a),Z.def.sortable){let O=document.createElement("span");O.className=`${Y}-table-header-sort`,O.setAttribute("aria-hidden","true"),b.appendChild(O),W.push(O),b.classList.add(`${Y}-table-header-cell--sortable`)}else W.push(null);if(Z.resizable){let O=document.createElement("div");O.className=`${Y}-table-header-resize`,O.dataset.resizeIndex=String(F),b.appendChild(O),A.push(O)}return b},h=(Z)=>{U=Z,_.textContent="",K=[],A=[],W=[];let F=Z.columns;for(let b=0;b<F.length;b++){let o=F[b],a=s(o,b);K.push(a),_.appendChild(a)}if(u(Z),N)t(N,G)},u=(Z)=>{U=Z;let F=Z.columns;_.style.width=`${Z.totalWidth}px`;for(let b=0;b<K.length&&b<F.length;b++){let o=K[b],a=F[b];o.style.width=`${a.width}px`}},t=(Z,F)=>{if(N=Z,G=F,!U)return;let b=U.columns;for(let o=0;o<W.length&&o<b.length;o++){let a=W[o];if(!a)continue;if(b[o].def.key===Z&&Z!==null)a.textContent=F==="asc"?"▲":"▼",a.style.opacity="0.7",K[o].setAttribute("aria-sort",F==="asc"?"ascending":"descending");else a.textContent="",a.style.opacity="0",K[o].removeAttribute("aria-sort")}},$2=(Z)=>{_.style.transform=`translateX(${-Z}px)`},Y2=(Z)=>{let F=Z.target;if(!F.dataset.resizeIndex)return;if(Z.preventDefault(),Z.stopPropagation(),R=parseInt(F.dataset.resizeIndex,10),!U)return;let b=U.getColumn(R);if(!b||!b.resizable)return;V=!0,v=Z.clientX,y=b.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",F.classList.add(`${Y}-table-header-resize--active`),F.setPointerCapture(Z.pointerId),F.addEventListener("pointermove",m),F.addEventListener("pointerup",f),F.addEventListener("pointercancel",f)},m=(Z)=>{if(!V||!U)return;let F=Z.clientX-v;if(Math.abs(F)<1)return;let b=Math.max(0,y+F);q(R,b)},f=(Z)=>{if(!V)return;let F=Z.target;F.removeEventListener("pointermove",m),F.removeEventListener("pointerup",f),F.removeEventListener("pointercancel",f);try{F.releasePointerCapture(Z.pointerId)}catch{}F.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",V=!1,R=-1},n=(Z)=>{let F=Z.target;if(F.dataset.resizeIndex!==void 0)return;if(V)return;let b=F;while(b&&!b.dataset.columnKey)if(b=b.parentElement,b===T||b===null)return;if(!b||!b.dataset.columnKey)return;let o=b.dataset.columnKey;if(!U)return;let a=U.columns,r=-1;for(let X=0;X<a.length;X++)if(a[X].def.key===o){r=X;break}if(r===-1)return;let O=a[r];if(B)B({key:o,index:r,event:Z});if(O.def.sortable&&j){let X;if(N===o)if(G==="asc")X="desc";else X=null;else X="asc";j({key:o,index:r,direction:X})}};return T.addEventListener("pointerdown",Y2),T.addEventListener("click",n),{element:T,update:u,updateSort:t,rebuild:h,show:()=>{if(z)return;z=!0,T.style.display=""},hide:()=>{if(!z)return;z=!1,T.style.display="none"},destroy:()=>{T.removeEventListener("pointerdown",Y2),T.removeEventListener("click",n),Q.style.cssText="",D.remove(),K=[],A=[],W=[],U=null,z=!1},syncScroll:$2}};var pJ=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Q)=>{if(Q.parentNode?.removeChild(Q),J.length<200)Q.className="",Q.removeAttribute("data-id"),Q.removeAttribute("data-index"),Q.removeAttribute("aria-selected"),Q.removeAttribute("aria-rowindex"),Q.removeAttribute("role"),Q.style.cssText="",Q.textContent="",J.push(Q)},clear:()=>{J.length=0}}},ZJ=(J,Q,$,Y,q,j,B,D,T)=>{let _=pJ(),K=new Map,A=-1,W=$,z=null,N=null,G=null,U=(L,H)=>{N=L,G=H},V=(L,H)=>{if(H)L.setAttribute("aria-selected","true");else L.removeAttribute("aria-selected")},R=(L,H,S,c)=>{L.setAttribute("role",H),L.setAttribute("data-id",String(S)),L.setAttribute("data-index",String(c))},v=(L)=>String(L).startsWith("__placeholder_"),y=`${q}-item ${q}-table-row`,s=`${q}-item--selected`,h=`${q}-item--focused`,u=`${q}-table-cell`,t=`${q}-table-cell--center`,$2=`${q}-table-cell--right`,Y2=`${q}-item--odd`,m=`${q}-item--placeholder`,f=`${q}-item--replaced`,n=`${q}-item ${q}-table-row ${q}-table-group-header`,J2=`${q}-table-group-header-content`,w=(L,H,S,c,x=!1)=>{if(S.def.cell){let p=S.def.cell(H,S.def,c);if(typeof p==="string")L.innerHTML=p;else L.replaceChildren(p)}else{let p=H[S.def.key],E=p!=null?String(p):"";if(x&&E)L.innerHTML=`<span>${E}</span>`;else L.textContent=E}},M=(L,H,S,c,x=!1)=>{let p=y;if(D){if(z){let E=z(H);if(E>=0&&(E&1)===1)p+=` ${Y2}`}else if((H&1)===1)p+=` ${Y2}`}if(x)p+=` ${m}`;if(S)p+=` ${s}`;if(c)p+=` ${h}`;L.className=p},Z=(L,H,S)=>{if(S?.compression?.isCompressed)return Math.round(E2(L,S.scrollPosition,H,S.totalItems,S.containerSize,S.compression,S.rangeStart));return H.getOffset(L)},F=(L,H)=>{let S=H.def.align;if(S==="center")L.classList.add(t),L.classList.remove($2);else if(S==="right")L.classList.add($2),L.classList.remove(t);else L.classList.remove(t,$2)},b=(L,H)=>{let c=W.columns.length;if(H.length===c)return H;let x=[];for(let p=0;p<c;p++){let E;if(p<H.length)E=H[p];else E=document.createElement("div"),E.className=u,L.appendChild(E);x.push(E)}for(let p=c;p<H.length;p++)H[p].remove();return x},o=(L,H,S,c)=>{let x=_.acquire(),p=L,E=S.getSize(H),I=Z(H,S,c);x.style.cssText=`width:${W.totalWidth}px;height:${E}px;transform:translateY(${I}px)`,x.className=n,R(x,"presentation",L.id,H),x.removeAttribute("aria-selected"),x.removeAttribute("aria-rowindex"),x.replaceChildren();let i=document.createElement("div");if(i.className=J2,G){let d=G(p.groupKey,p.groupIndex);if(typeof d==="string")i.innerHTML=d;else i.appendChild(d)}return x.appendChild(i),{element:x,cells:[],index:H,isGroupHeader:!0,lastItemId:L.id,lastSelected:!1,lastFocused:!1,lastOffset:I,lastHeight:E}},a=(L,H,S,c,x,p)=>{let E=_.acquire(),I=x.getSize(H),i=Z(H,x,p),d=v(L.id);E.style.cssText=`width:${W.totalWidth}px;height:${I}px;transform:translateY(${i}px)`,M(E,H,S,c,d),R(E,"row",L.id,H),E.id=`${j}-${H}`,E.setAttribute("aria-rowindex",String(H+2)),V(E,S);let U2=b(E,[]),Q2=W.columns;for(let j2=0;j2<U2.length&&j2<Q2.length;j2++){let q2=U2[j2],Z2=Q2[j2];q2.style.cssText=`left:${Z2.offset}px;width:${Z2.width}px`,q2.setAttribute("role","gridcell"),q2.setAttribute("aria-colindex",String(j2+1)),F(q2,Z2),w(q2,L,Z2,H,d)}return{element:E,cells:U2,index:H,isGroupHeader:!1,lastItemId:L.id,lastSelected:S,lastFocused:c,lastOffset:i,lastHeight:I}},r=(L,H,S,c,x)=>{for(let[d,U2]of K)if(d<H.start||d>H.end)_.release(U2.element),K.delete(d);let p=!1,E=B();if(E!==A)A=E,p=!0;let I=null,i=Q();z=typeof D==="string"&&T?T():null;for(let d=H.start;d<=H.end;d++){let U2=d-H.start,Q2=L[U2];if(!Q2)continue;let j2=S.has(Q2.id),q2=d===c,Z2=N?N(Q2):!1,g=K.get(d);if(g){if(g.isGroupHeader!==Z2){_.release(g.element),K.delete(d);let X2=Z2?o(Q2,d,i,x):a(Q2,d,j2,q2,i,x);if(K.set(d,X2),!I)I=document.createDocumentFragment();I.appendChild(X2.element);continue}if(Z2){if(g.lastItemId!==Q2.id){let B2=Q2,D2=g.element.firstElementChild;if(D2&&G){let K2=G(B2.groupKey,B2.groupIndex);if(typeof K2==="string")D2.innerHTML=K2;else D2.replaceChildren(K2)}g.element.setAttribute("data-id",String(Q2.id)),g.lastItemId=Q2.id}let G2=Z(d,i,x);if(g.lastOffset!==G2)g.lastOffset=G2,g.element.style.transform=`translateY(${G2}px)`;let N2=i.getSize(d);if(g.lastHeight!==N2)g.lastHeight=N2,g.element.style.height=`${N2}px`}else{let X2=g.lastItemId!==Q2.id,G2=g.lastSelected!==j2,N2=g.lastFocused!==q2;if(X2){let K2=g.lastItemId!=null&&v(g.lastItemId),_2=v(Q2.id);if(!_2&&O2(S,d,Q2.id))j2=!0;let h2=W.columns;for(let A2=0;A2<g.cells.length&&A2<h2.length;A2++)w(g.cells[A2],Q2,h2[A2],d,_2);if(M(g.element,d,j2,q2,_2),g.element.setAttribute("data-id",String(Q2.id)),V(g.element,j2),K2&&!_2)g.element.classList.add(f),setTimeout(()=>{g.element.classList.remove(f)},300);g.lastItemId=Q2.id,g.lastSelected=j2,g.lastFocused=q2}else if(G2||N2)M(g.element,d,j2,q2,v(Q2.id)),V(g.element,j2),g.lastSelected=j2,g.lastFocused=q2;let B2=Z(d,i,x);if(g.lastOffset!==B2)g.lastOffset=B2,g.element.style.transform=`translateY(${B2}px)`;let D2=i.getSize(d);if(g.lastHeight!==D2)g.lastHeight=D2,g.element.style.height=`${D2}px`;if(p)g.element.setAttribute("aria-rowindex",String(d+2))}}else{if(O2(S,d,Q2.id))j2=!0;let X2=Z2?o(Q2,d,i,x):a(Q2,d,j2,q2,i,x);if(K.set(d,X2),!I)I=document.createDocumentFragment();I.appendChild(X2.element)}}if(I)J.appendChild(I)},O=(L)=>{let H=Q();for(let[S,c]of K){let x=Z(S,H,L);if(c.lastOffset!==x)c.lastOffset=x,c.element.style.transform=`translateY(${x}px)`}},X=(L,H,S,c)=>{let x=K.get(L);if(!x)return;if(x.isGroupHeader)return;let p=W.columns;for(let E=0;E<x.cells.length&&E<p.length;E++)w(x.cells[E],H,p[E],L);x.element.setAttribute("data-id",String(H.id)),x.lastItemId=H.id,M(x.element,L,S,c),V(x.element,S),x.lastSelected=S,x.lastFocused=c},C=(L,H,S)=>{let c=K.get(L);if(!c)return;if(c.isGroupHeader)return;let x=c.lastSelected!==H,p=c.lastFocused!==S;if(x||p)M(c.element,L,H,S),V(c.element,H),c.lastSelected=H,c.lastFocused=S},l=(L)=>{W=L;let H=L.columns;for(let[,S]of K)if(S.element.style.width=`${L.totalWidth}px`,S.cells.length>0)for(let c=0;c<S.cells.length&&c<H.length;c++){let x=S.cells[c],p=H[c];x.style.left=`${p.offset}px`,x.style.width=`${p.width}px`}},P=(L)=>{return K.get(L)?.element},k=()=>{for(let[,L]of K)_.release(L.element);K.clear(),A=-1};return{render:r,updatePositions:O,updateItem:X,updateItemClasses:C,getElement:P,updateColumnLayout:l,setGroupHeaderFn:U,clear:k,destroy:()=>{k(),_.clear()}}};var GJ=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),$=J.gap??0,Y=J.containerSize,q=0,j=[],B=()=>{let U=(Q-1)*$;q=Math.max(0,(Y-U)/Q),j=Array(Q);let V=q+$;for(let R=0;R<Q;R++)j[R]=R*V};B();let D=[],T=0,_=[],K=(U)=>{let V=0,R=U[0];for(let v=1;v<U.length;v++){let y=U[v];if(y<R)R=y,V=v}return V},A=(U,V)=>{if(U<=0)return T=0,D=[],[];let R=Array(Q).fill(0),v=Array(Q);for(let h=0;h<Q;h++)v[h]=[];let y=Array(U);for(let h=0;h<U;h++){let u=K(R),t=V(h),$2=R[u];y[h]={index:h,x:j[u],y:$2,lane:u,size:t,crossSize:q},v[u].push(h),R[u]=$2+t+$}D=v;let s=0;for(let h=0;h<Q;h++){let u=R[h],t=u>0?u-$:0;if(t>s)s=t}return T=s,y},W=(U)=>{if(U.length===0)return T>0?T:0;if(T>0)return T;let V=Array(Q).fill(0);for(let v of U){let y=v.y+v.size,s=V[v.lane];if(y>s)V[v.lane]=y}let R=0;for(let v=0;v<Q;v++)if(V[v]>R)R=V[v];return R},z=(U,V,R)=>{if(U.length===0||R<=V)return _.length=0,_;if(D.length===0||D.length!==Q)return N(U,V,R);_.length=0;for(let v=0;v<Q;v++){let y=D[v],s=y.length;if(s===0)continue;let h=0,u=s;while(h<u){let t=h+u>>>1,$2=U[y[t]];if($2.y+$2.size<=V)h=t+1;else u=t}for(let t=h;t<s;t++){let $2=U[y[t]];if($2.y>=R)break;_.push($2)}}return _},N=(U,V,R)=>{let v=[];for(let y of U)if(y.y+y.size>V&&y.y<R)v.push(y);return v};return{get columns(){return Q},get gap(){return $},get containerSize(){return Y},update:(U)=>{let V=!1;if(U.columns!==void 0){let R=Math.max(1,Math.floor(U.columns));if(R!==Q)Q=R,V=!0}if(U.gap!==void 0&&U.gap!==$)$=U.gap,V=!0;if(U.containerSize!==void 0&&U.containerSize!==Y)Y=U.containerSize,V=!0;if(V)B()},calculateLayout:A,getTotalSize:W,getVisibleItems:z}};var hJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(j)=>{if(j.remove(),Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-lane"),Q.push(j)},clear:()=>{Q.length=0}}},xJ=1,DJ=(J,Q,$,Y=!1,q,j)=>{let B=hJ(),D=new Map,T=new Set,_=0,K="",A=-1,W={selected:!1,focused:!1},z=(m,f)=>{return W.selected=m,W.focused=f,W},N=`${$}-item ${$}-masonry-item`,G=`${$}-item--selected`,U=`${$}-item--focused`,V=(m,f)=>{if(typeof f==="string")m.innerHTML=f;else m.replaceChildren(f)},R=(m,f,n)=>{m.classList.toggle(G,f),m.classList.toggle(U,n)},v=(m,f)=>{if(Y)m.style.transform=`translate(${Math.round(f.y)}px, ${Math.round(f.x)}px)`;else m.style.transform=`translate(${Math.round(f.x)}px, ${Math.round(f.y)}px)`},y=(m,f)=>{if(Y)m.style.width=`${f.size}px`,m.style.height=`${f.crossSize}px`;else m.style.width=`${f.crossSize}px`,m.style.height=`${f.size}px`},s=(m,f,n,J2,w)=>{let M=B.acquire(),Z=z(J2,w);if(M.className=N,M.dataset.index=String(m),M.dataset.id=String(f.id),M.dataset.lane=String(n.lane),M.ariaSelected=String(J2),j)M.id=`${j}-item-${m}`;if(q){let b=q();if(b!==A)A=b,K=String(b);M.setAttribute("aria-setsize",K),M.setAttribute("aria-posinset",String(m+1))}y(M,n);let F=Q(f,m,Z);return V(M,F),R(M,J2,w),v(M,n),{element:M,lastItemId:f.id,lastSelected:J2,lastFocused:w,lastY:n.y,lastX:n.x,lastSize:n.size,lastCrossSize:n.crossSize,lastSeenFrame:_}},h=(m,f,n,J2)=>{_++,T.clear();for(let M=0;M<f.length;M++)T.add(f[M].index);for(let[M,Z]of D)if(T.has(M))Z.lastSeenFrame=_;else if(_-Z.lastSeenFrame>xJ)B.release(Z.element),D.delete(M);let w=null;for(let M=0;M<f.length;M++){let Z=f[M],F=Z.index,b=m(F);if(!b)continue;let o=n.has(b.id),a=F===J2,r=D.get(F);if(r){let O=r.lastItemId!==b.id,X=r.lastSelected!==o,C=r.lastFocused!==a,l=r.lastY!==Z.y||r.lastX!==Z.x,P=r.lastSize!==Z.size||r.lastCrossSize!==Z.crossSize;if(O){let k=z(o,a),e=Q(b,F,k);V(r.element,e),r.element.dataset.id=String(b.id),r.lastItemId=b.id}if(O||X||C)R(r.element,o,a),r.element.ariaSelected=String(o),r.lastSelected=o,r.lastFocused=a;if(P)y(r.element,Z),r.lastSize=Z.size,r.lastCrossSize=Z.crossSize;if(l)v(r.element,Z),r.lastY=Z.y,r.lastX=Z.x}else{let O=s(F,b,Z,o,a);if(!w)w=document.createDocumentFragment();w.appendChild(O.element),D.set(F,O)}}if(w)J.appendChild(w)},u=()=>{for(let{element:m}of D.values())B.release(m);D.clear(),J.innerHTML=""};return{render:h,getElement:(m)=>D.get(m)?.element,updateItemClasses:(m,f,n)=>{let J2=D.get(m);if(!J2)return;let w=J2.lastSelected!==f,M=J2.lastFocused!==n;if(w||M)R(J2.element,f,n),J2.lastSelected=f,J2.lastFocused=n},sortDOM:()=>{T2(J,D.keys(),(m)=>D.get(m)?.element)},clear:u,destroy:()=>{u(),B.clear()}}};var _J=(J,Q)=>{let $=new Map,Y=(j)=>{let B=$.get(j);return B!==void 0?B:J},q=F2(Y,Q);return{getOffset(j){return q.getOffset(j)},getSize(j){return Y(j)},indexAtOffset(j){return q.indexAtOffset(j)},getTotalSize(){return q.getTotalSize()},getTotal(){return q.getTotal()},rebuild(j){if(j<q.getTotal()){for(let B of $.keys())if(B>=j)$.delete(B)}q=F2(Y,j)},isVariable(){return!0},setMeasuredSize(j,B){$.set(j,B)},isMeasured(j){return $.has(j)},getEstimatedSize(){return J},measuredCount(){return $.size}}};var VJ=(J,Q,$,Y,q,j)=>{if(Y===0||Q===0)return j.start=0,j.end=-1,j;let B=$.indexAtOffset(J),D=$.indexAtOffset(J+Q);if(D<Y-1)D++;return j.start=Math.max(0,B),j.end=Math.min(Y-1,Math.max(0,D)),j},WJ=(J,Q,$,Y)=>{if($===0)return Y.start=0,Y.end=-1,Y;return Y.start=Math.max(0,J.start-Q),Y.end=Math.min($-1,J.end+Q),Y},MJ=(J,Q,$,Y,q,j)=>{if(Y===0)return 0;let B=Math.max(0,Math.min(J,Y-1)),D=Q.getOffset(B),T=Q.getSize(B),_=Q.getTotalSize(),K=Math.max(0,_-$),A;switch(j){case"center":A=D-$/2+T/2;break;case"end":A=D-$+T;break;case"start":default:A=D;break}return Math.max(0,Math.min(A,K))},OJ=(J,Q,$)=>{if($&&$.isCompressed)return $.virtualSize;return Q.getTotalSize()},EJ=(J,Q)=>{return Q.getTotalSize()},AJ=(J,Q)=>{return Q.getOffset(J)},FJ=(J,Q,$)=>{let Y=Math.max(0,Q-$);return Math.max(0,Math.min(J,Y))};var LJ=(J,Q,$,Y,q="start",j,B=MJ)=>{return B(J,Q,$,Y,j,q)},HJ=(J,Q)=>{return J.start===Q.start&&J.end===Q.end},bJ=(J,Q)=>{return J>=Q.start&&J<=Q.end},TJ=(J)=>{if(J.end<J.start)return 0;return J.end-J.start+1};var RJ=(J,Q)=>{let $=[],Y=[];for(let q=J.start;q<=J.end;q++)if(q<Q.start||q>Q.end)Y.push(q);for(let q=Q.start;q<=Q.end;q++)if(q<J.start||q>J.end)$.push(q);return{add:$,remove:Y}};var yJ=()=>{let J={},Q=(j,B)=>{if(!J[j])J[j]=new Set;return J[j].add(B),()=>$(j,B)},$=(j,B)=>{J[j]?.delete(B)};return{on:Q,off:$,emit:(j,B)=>{J[j]?.forEach((D)=>{try{D(B)}catch(T){console.error(`[vlist] Error in event handler for "${String(j)}":`,T)}})},clear:(j)=>{if(j)delete J[j];else for(let B in J)delete J[B]}}};var R2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:$=5000,evictionBuffer:Y=200,onEvict:q}=J,j=new Map,B=0,D=0,T=(w)=>{let M=j.get(w);if(!M)M={items:Array(Q),count:0,lastAccess:Date.now()},j.set(w,M);else M.lastAccess=Date.now();return M},_=(w)=>{return Math.floor(w/Q)},K=(w)=>{return w%Q},A=()=>B,W=(w)=>{B=w},z=(w)=>{if(w<0||w>=B)return;let M=_(w),Z=j.get(M);if(!Z)return;return Z.items[K(w)]},N=(w)=>{if(w<0||w>=B)return!1;let M=_(w),Z=j.get(M);if(!Z)return!1;return Z.items[K(w)]!==void 0},G=(w,M)=>{let Z=_(w),F=T(Z),b=K(w),o=F.items[b]===void 0;if(F.items[b]=M,o)F.count++,D++;if(w>=B)B=w+1},U=(w,M)=>{for(let Z=0;Z<M.length;Z++){let F=M[Z];if(F!==void 0)G(w+Z,F)}},V=(w)=>{if(w<0||w>=B)return!1;let M=_(w),Z=j.get(M),F=K(w);if(!(Z!==void 0&&Z.items[F]!==void 0))return!1;let o=M,a=Array.from(j.keys()).filter((O)=>O>=o).sort((O,X)=>O-X),r=[];for(let O of a){let X=j.get(O),C=O*Q;for(let l=0;l<Q;l++){if(X.items[l]===void 0)continue;let P=C+l;if(P<=w)continue;r.push({oldIndex:P,item:X.items[l]})}}if(Z.items[F]=void 0,Z.count--,D--,Z.count===0)j.delete(M);for(let{oldIndex:O}of r){let X=_(O),C=j.get(X);if(!C)continue;let l=K(O);if(C.items[l]!==void 0){if(C.items[l]=void 0,C.count--,D--,C.count===0)j.delete(X)}}for(let{oldIndex:O,item:X}of r){let C=O-1,l=_(C),P=T(l),k=K(C);P.items[k]=X,P.count++,D++}return B--,!0},R=(w,M)=>{let Z=[];for(let F=w;F<=M&&F<B;F++)Z.push(z(F));return Z},v=(w,M)=>{for(let Z=w;Z<=M&&Z<B;Z++)if(!N(Z))return!1;return!0},y=()=>{let w=[],M=null,Z=Array.from(j.keys()).sort((F,b)=>F-b);for(let F of Z){let b=j.get(F);if(!b)continue;let o=F*Q;for(let a=0;a<Q;a++){let r=o+a;if(r>=B)break;if(b.items[a]!==void 0)if(M===null)M={start:r,end:r};else if(r===M.end+1)M.end=r;else w.push(M),M={start:r,end:r};else if(M!==null)w.push(M),M=null}}if(M!==null)w.push(M);return w},s=(w,M)=>{let Z=[],F=null;for(let b=w;b<=M&&b<B;b++)if(!N(b))if(F===null)F={start:b,end:b};else F.end=b;else if(F!==null)Z.push(F),F=null;if(F!==null)Z.push(F);return Z},h=(w)=>{return j.has(w)},u=(w)=>{let M=j.get(w);if(M)M.lastAccess=Date.now()},t=(w,M)=>{if(w>M||j.size===0)return;let Z=Date.now(),F=_(Math.max(0,w)),b=_(Math.min(B-1,M));for(let o=F;o<=b;o++){let a=j.get(o);if(a)a.lastAccess=Z}},$2=(w,M)=>{if(D<=$)return 0;let Z=Math.max(0,w-Y),F=Math.min(B-1,M+Y),b=_(Z),o=_(F),a=0,r=[];for(let[O,X]of j)if(O<b||O>o)a+=X.count,r.push(O),D-=X.count,j.delete(O);if(a>0&&q)q(a,r);return a},Y2=()=>{if(D<=$)return 0;let w=Array.from(j.entries()).sort(([,F],[,b])=>F.lastAccess-b.lastAccess),M=0,Z=[];for(let[F,b]of w){if(D<=$)break;M+=b.count,D-=b.count,Z.push(F),j.delete(F)}if(M>0&&q)q(M,Z);return M},m=()=>{return{totalItems:B,cachedItems:D,cachedChunks:j.size,chunkSize:Q,maxCachedItems:$,memoryEfficiency:B>0?1-D/B:1}},f=()=>D,n=()=>{j.clear(),D=0};return{chunkSize:Q,maxCachedItems:$,getTotal:A,setTotal:W,get:z,has:N,set:G,setRange:U,delete:V,getRange:R,isRangeLoaded:v,getLoadedRanges:y,findUnloadedRanges:s,getChunkIndex:_,isChunkLoaded:h,touchChunk:u,touchChunksForRange:t,evictDistant:$2,evictToLimit:Y2,getStats:m,getCachedCount:f,clear:n,reset:()=>{n(),B=0}}},y2=(J)=>{if(J.length===0)return[];let Q=[...J].sort((Y,q)=>Y.start-q.start),$=[{...Q[0]}];for(let Y=1;Y<Q.length;Y++){let q=Q[Y],j=$[$.length-1];if(q.start<=j.end+1)j.end=Math.max(j.end,q.end);else $.push({...q})}return $},H2=(J,Q,$)=>{let Y=Math.floor(J.start/$)*$,q=Math.ceil((J.end+1)/$)*$-1,j={start:Y,end:q};if(Q.length===0)return[j];let B=[],D=y2(Q),T=j.start;for(let _ of D){if(_.end<T)continue;if(_.start>j.end)break;if(_.start>T)B.push({start:T,end:Math.min(_.start-1,j.end)});if(T=_.end+1,T>j.end)break}if(T<=j.end)B.push({start:T,end:j.end});return B};var P2=(J={})=>{let{maskCharacter:Q=l2,maxSampleSize:$=a2}=J,Y=[],q=!1,j=(K)=>{if(q||K.length===0)return;let A=Math.min(K.length,$);for(let W=0;W<A;W++){let z=K[W];if(!z||typeof z!=="object")continue;let N={};for(let[G,U]of Object.entries(z)){if(G.startsWith("_")||G==="id")continue;N[G]=String(U??"").length}if(Object.keys(N).length>0)Y.push(N)}q=!0},B=()=>q,D=(K)=>{let A={id:`${W2}${K}`,[v2]:!0,_index:K};if(Y.length===0)return A.label=Q.repeat(12),A;let W=Y[K%Y.length];for(let[z,N]of Object.entries(W))A[z]=Q.repeat(Math.max(1,N));return A};return{analyzeStructure:j,hasAnalyzedStructure:B,generate:D,generateRange:(K,A)=>{let W=[];for(let z=K;z<=A;z++)W.push(D(z));return W},clear:()=>{Y=[],q=!1}}},M2=(J)=>{if(!J||typeof J!=="object")return!1;return J[v2]===!0},p2=(J)=>{return J.filter((Q)=>!M2(Q))};var uJ=50,PJ=(J={})=>{let{adapter:Q,initialItems:$,initialTotal:Y,storage:q,placeholder:j,pageSize:B=uJ,onStateChange:D,onItemsLoaded:T,onItemsEvicted:_}=J,K=R2({...q,onEvict:(E,I)=>{_?.(E),u()}}),A=null,W=()=>{if(!A)A=P2(j);return A},z=new Map,N=!1,G,U=!0,V,R=[],v=0,y=new Map,s=new Map,h=()=>{for(let E of s.values())E.abort();s.clear(),y.clear()},u=()=>{D?.(M())},t=()=>{z.clear();let E=K.getLoadedRanges();for(let I of E)for(let i=I.start;i<=I.end;i++){let d=K.get(i);if(d&&!M2(d))z.set(d.id,i)}},$2=(E,I)=>{if(!M2(I))z.set(I.id,E)},Y2=(E)=>{z.delete(E)},m=(E,I)=>{return`${E}-${I}`},f=()=>K.getTotal(),n=()=>K.getCachedCount(),J2=()=>N,w=()=>U,M=()=>({total:K.getTotal(),cached:K.getCachedCount(),isLoading:N,pendingRanges:R,error:G,hasMore:U,cursor:V}),Z=()=>K,F=()=>W(),b=(E)=>{let I=K.get(E);if(I!==void 0)return I;if(E>=0&&E<K.getTotal())return W().generate(E);return},o=(E)=>{let I=z.get(E);if(I===void 0)return;return K.get(I)},a=(E)=>{return z.get(E)??-1},r=(E)=>{let I=K.get(E);return I!==void 0&&!M2(I)},O=(E,I)=>{let i=[],d=K.getTotal(),U2=0,Q2=0;K.touchChunksForRange(E,Math.min(I,d-1));for(let j2=E;j2<=I&&j2<d;j2++){let q2=K.get(j2);if(q2!==void 0)i.push(q2),U2++;else i.push(W().generate(j2)),Q2++}return i},X=(E)=>{K.setTotal(E),U=K.getCachedCount()<E,u()},C=(E,I=0,i)=>{if(Q&&E.length>0){let d=W();if(!d.hasAnalyzedStructure())d.analyzeStructure(E)}for(let d=0;d<E.length;d++){let U2=E[d];if(U2!==void 0){let Q2=I+d;K.set(Q2,U2),$2(Q2,U2)}}if(i!==void 0)K.setTotal(i);else if(I+E.length>K.getTotal())K.setTotal(I+E.length);if(K.getCachedCount()>=K.getTotal()&&K.getTotal()>0)U=!1;u(),T?.(E,I,K.getTotal())},l=(E,I)=>{let i=K.get(E);if(!i)return!1;let d=i.id,U2={...i,...I};if(K.set(E,U2),I.id!==void 0&&I.id!==d)Y2(d);return $2(E,U2),u(),!0},P=(E)=>{let I=z.get(E);if(I===void 0)return!1;if(!K.delete(I))return!1;return t(),h(),u(),!0},k=async(E,I)=>{if(!Q)return;let i=m(E,I);if(y.has(i))return;let d=K.getLoadedRanges(),U2=H2({start:E,end:I},d,K.chunkSize);if(U2.length===0)return;let Q2=K.chunkSize,j2=Q2*2;for(let[g,X2]of s){let G2=g.indexOf("-"),N2=parseInt(g.slice(0,G2),10);if(Math.abs(N2-E)>j2)X2.abort(),s.delete(g),y.delete(g)}let q2=[];for(let g of U2){let X2=Math.floor(g.start/Q2),G2=Math.floor(g.end/Q2);for(let N2=X2;N2<=G2;N2++){let B2=N2*Q2,D2=B2+Q2-1,K2=m(B2,D2);if(!q2.some((_2)=>_2.start===B2)&&!y.has(K2))q2.push({start:B2,end:D2})}}let Z2=[];for(let g of U2){let X2=Math.floor(g.start/Q2),G2=Math.floor(g.end/Q2);for(let N2=X2;N2<=G2;N2++){let B2=N2*Q2,D2=B2+Q2-1,K2=m(B2,D2);if(y.has(K2)){let _2=y.get(K2);if(!Z2.includes(_2))Z2.push(_2)}}}for(let g of q2){let X2=m(g.start,g.end),G2=new AbortController;s.set(X2,G2);let N2=(async()=>{R.push(g),N=!0,G=void 0,u();try{let B2=g.end-g.start+1,D2={offset:g.start,limit:B2,cursor:void 0,signal:G2.signal},K2=await Q.read(D2);if(C(K2.items,g.start,K2.total),K2.cursor)V=K2.cursor;let _2=g.start+K2.items.length;if(_2>=v){if(v=_2,K2.hasMore!==void 0)U=K2.hasMore;else if(K2.total!==void 0)U=_2<K2.total}}catch(B2){if(B2?.name==="AbortError")return;G=B2 instanceof Error?B2:Error(String(B2))}finally{y.delete(X2),s.delete(X2),R=R.filter((B2)=>B2.start!==g.start||B2.end!==g.end),N=y.size>0,u()}})();y.set(X2,N2),Z2.push(N2)}await Promise.all(Z2)},e=async(E,I)=>{if(K.isRangeLoaded(E,I))return;await k(E,I)},L=async()=>{if(!Q)return;await k(0,B-1)},H=async()=>{if(!Q||N||!U)return!1;let E=K.getCachedCount(),I=K.getTotal(),i=E,d=Math.min(i+B-1,I>0?I-1:i+B-1);if(i>=I&&I>0)return U=!1,!1;return await k(i,d),K.getCachedCount()>E},S=async()=>{if(K.clear(),K.setTotal(0),z.clear(),A)A.clear();h(),R=[],N=!1,V=void 0,U=!0,v=0,G=void 0,u()},c=(E,I)=>{if(K.evictDistant(E,I)>0)t()},x=()=>{K.clear(),z.clear(),V=void 0,G=void 0,R=[],N=!1,u()},p=()=>{if(K.reset(),z.clear(),A)A.clear();V=void 0,U=!0,v=0,G=void 0,R=[],N=!1,u()};if($&&$.length>0)C($,0,Y??$.length);else if(Y!==void 0)K.setTotal(Y),u();return{getState:M,getTotal:f,getCached:n,getIsLoading:J2,getHasMore:w,getStorage:Z,getPlaceholders:F,getItem:b,getItemById:o,getIndexById:a,isItemLoaded:r,getItemsInRange:O,setTotal:X,setItems:C,updateItem:l,removeItem:P,loadRange:k,ensureRange:e,loadInitial:L,loadMore:H,reload:S,evictDistant:c,clear:x,reset:p}};var kJ=(J=0)=>{let Q=[,,,,,,,,];for(let $=0;$<8;$++)Q[$]={position:0,time:0};return{velocity:0,lastPosition:J,lastTime:performance.now(),samples:Q,sampleIndex:0,sampleCount:0}},k2=(J,Q)=>{let $=performance.now(),Y=$-J.lastTime;if(Y===0)return J;if(Y>100){J.sampleCount=0,J.sampleIndex=0,J.velocity=0;let j=J.samples[0];return j.position=Q,j.time=$,J.sampleIndex=1,J.sampleCount=1,J.lastPosition=Q,J.lastTime=$,J}let q=J.samples[J.sampleIndex];if(q.position=Q,q.time=$,J.sampleIndex=(J.sampleIndex+1)%8,J.sampleCount=Math.min(J.sampleCount+1,8),J.sampleCount>=2){let j=(J.sampleIndex-J.sampleCount+8)%8,B=J.samples[j],D=Q-B.position,T=$-B.time;J.velocity=T>0?D/T:0}return J.lastPosition=Q,J.lastTime=$,J},mJ=(J)=>J.sampleCount>=3,zJ=(J,Q={})=>{let{wheel:$=!0,sensitivity:Y=1,smoothing:q=!1,idleTimeout:j=150,onScroll:B,onIdle:D,scrollElement:T,horizontal:_=!1}=Q,K=!!T,A=0,W=0,z=K?_?window.innerWidth:window.innerHeight:_?J.clientWidth:J.clientHeight,N=Q.compressed??!1,G=Q.compression,U=kJ(),V=!1,R=null,y=z2(()=>{let P=_?J.scrollLeft:J.scrollTop,k=P>=A?"down":"up";if(U=k2(U,P),A=P,B)B({scrollTop:A,direction:k,velocity:U.velocity});Y2()}),h=z2(()=>{let P=J.getBoundingClientRect(),k=_?Math.max(0,-P.left):Math.max(0,-P.top),e=k>=A?"down":"up";if(U=k2(U,k),A=k,!V)V=!0;if(B)B({scrollTop:A,direction:e,velocity:U.velocity});Y2()}),u=(P)=>{P.preventDefault()},t=(P)=>{if(P.deltaX)return;P.preventDefault(),J.scrollLeft+=P.deltaY},$2=(P)=>{if(!N)return;P.preventDefault();let k=(_?P.deltaX||P.deltaY:P.deltaY)*Y,e=A+k;if(q)e=A+k*0.3;if(e=Math.max(0,Math.min(e,W)),e!==A){let H=e>=A?"down":"up";if(U=k2(U,e),A=e,!V)V=!0;if(B)B({scrollTop:A,direction:H,velocity:U.velocity});Y2()}},Y2=()=>{if(R)clearTimeout(R);R=setTimeout(()=>{if(V=!1,U=kJ(A),D)D()},j)},m=(P)=>{if(N)return;if(N=!0,G=P,W=P.virtualSize-z,K)return;if(y.cancel(),J.removeEventListener("scroll",y),!$)J.removeEventListener("wheel",u);else if(_)J.removeEventListener("wheel",t);if(_)J.style.overflowX="hidden";else J.style.overflow="hidden";if($)J.addEventListener("wheel",$2,{passive:!1});let k=_?J.scrollLeft:J.scrollTop;if(k>0){let e=_?G?.actualSize??J.scrollWidth:G?.actualSize??J.scrollHeight;A=k/e*W}if(_)J.scrollLeft=0;else J.scrollTop=0},f=()=>{if(!N)return;if(N=!1,K){G=void 0;return}if(J.removeEventListener("wheel",$2),_)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",y,{passive:!0}),!$)J.addEventListener("wheel",u,{passive:!1});else if(_)J.addEventListener("wheel",t,{passive:!1});if(G&&A>0){let k=A/W*(G.actualSize-z);if(_)J.scrollLeft=k;else J.scrollTop=k}G=void 0},n=()=>{if(K||N)return A;return _?J.scrollLeft:J.scrollTop},J2=(P,k=!1)=>{let e=Math.max(0,Math.min(P,W||1/0));if(K){let L=J.getBoundingClientRect();if(_){let H=L.left+window.scrollX;window.scrollTo({left:H+e,behavior:k?"smooth":"auto"})}else{let H=L.top+window.scrollY;window.scrollTo({top:H+e,behavior:k?"smooth":"auto"})}}else if(N){if(e===A)return;let H=e>=A?"down":"up";if(U=k2(U,e),A=e,!V)V=!0;if(B)B({scrollTop:A,direction:H,velocity:U.velocity});Y2()}else if(_)J.scrollTo({left:e,behavior:k?"smooth":"auto"});else J.scrollTo({top:e,behavior:k?"smooth":"auto"})},w=(P)=>{J2(n()+P)},M=()=>{return n()<=0},Z=(P=0)=>{let k=n(),e=K||N?W:_?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return k>=e-P},F=()=>{let P=n(),k=K||N?W:_?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(k<=0)return 0;return Math.min(1,Math.max(0,P/k))},b=(P)=>{if(P.compression)G=P.compression,W=G.virtualSize-z},o=()=>N,a=()=>Math.abs(U.velocity),r=()=>mJ(U),O=()=>V,X=()=>K,C=(P)=>{if(z=P,G)W=G.virtualSize-z},l=()=>{if(R)clearTimeout(R);if(K)h.cancel(),window.removeEventListener("scroll",h);else y.cancel(),J.removeEventListener("scroll",y),J.removeEventListener("wheel",$2),J.removeEventListener("wheel",u),J.removeEventListener("wheel",t)};if(K){if(N&&G)W=G.virtualSize-z;window.addEventListener("scroll",h,{passive:!0})}else if(N&&G){if(W=G.virtualSize-z,_)J.style.overflowX="hidden";else J.style.overflow="hidden";if($)J.addEventListener("wheel",$2,{passive:!1})}else{if(_)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",y,{passive:!0}),!$)J.addEventListener("wheel",u,{passive:!1});else if(_)J.addEventListener("wheel",t,{passive:!1})}return{getScrollTop:n,scrollTo:J2,scrollBy:w,isAtTop:M,isAtBottom:Z,getScrollPercentage:F,getVelocity:a,isTracking:r,isScrolling:O,updateConfig:b,enableCompression:m,disableCompression:f,isCompressed:o,isWindowMode:X,updateContainerHeight:C,destroy:l}},z2=(J)=>{let Q=null,$=null,Y=(...q)=>{if($=q,Q===null)Q=requestAnimationFrame(()=>{if(Q=null,$)J(...$)})};return Y.cancel=()=>{if(Q!==null)cancelAnimationFrame(Q),Q=null},Y};var wJ=(J,Q,$={},Y="vlist",q=!1)=>{let{autoHide:j=!0,autoHideDelay:B=1000,minThumbSize:D=30,showOnHover:T=!0,hoverZoneWidth:_=16,showOnViewportEnter:K=!0}=$,A=0,W=0,z=0,N=0,G=!1,U=!1,V=0,R=0,v=0,y=null,s=!1,h=null,u=null,t=q?"width":"height",$2=q?"translateX":"translateY",Y2=q?(H)=>H.clientX:(H)=>H.clientY,m=q?"left":"top",f=document.createElement("div"),n=document.createElement("div"),J2=T?document.createElement("div"):null,w=()=>{if(f.className=`${Y}-scrollbar`,n.className=`${Y}-scrollbar-thumb`,q)f.classList.add(`${Y}-scrollbar--horizontal`);if(f.appendChild(n),J.appendChild(f),J2){if(J2.className=`${Y}-scrollbar-hover`,q)J2.classList.add(`${Y}-scrollbar-hover--horizontal`),J2.style.height=`${_}px`;else J2.style.width=`${_}px`;J.appendChild(J2)}},M=()=>{if(y)clearTimeout(y),y=null},Z=()=>{if(!j)return;M(),y=setTimeout(b,B)},F=()=>{if(A<=W)return;if(M(),!s)f.classList.add(`${Y}-scrollbar--visible`),s=!0;if(j&&!G&&!U)Z()},b=()=>{if(G||U)return;f.classList.remove(`${Y}-scrollbar--visible`),s=!1},o=(H,S)=>{A=H,W=S;let c=A>W;if(f.style.display=c?"":"none",!c){b();return}let x=W/A;z=Math.max(D,x*W),n.style[t]=`${z}px`,N=W-z,a(v)},a=(H)=>{if(v=H,A<=W||N<=0)return;let S=A-W,x=Math.min(1,Math.max(0,H/S))*N;n.style.transform=`${$2}(${x}px)`},r=(H)=>{if(H.target===n)return;let S=f.getBoundingClientRect(),p=Y2(H)-S[m]-z/2,I=Math.max(0,Math.min(p,N))/N,i=A-W,d=I*i;Q(d),F()},O=(H)=>{H.preventDefault(),H.stopPropagation(),G=!0,V=Y2(H),R=v,M(),f.classList.add(`${Y}-scrollbar--dragging`),document.addEventListener("mousemove",X),document.addEventListener("mouseup",C)},X=(H)=>{if(!G)return;let S=Y2(H)-V,c=N>0?S/N:0,x=A-W,p=c*x,E=Math.max(0,Math.min(R+p,x)),i=E/x*N;if(n.style.transform=`${$2}(${i}px)`,u=E,h===null)h=requestAnimationFrame(()=>{if(u!==null)Q(u);h=null})},C=()=>{if(G=!1,h!==null)cancelAnimationFrame(h),h=null;if(u!==null)Q(u),u=null;if(f.classList.remove(`${Y}-scrollbar--dragging`),j&&!U)Z();document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",C)},l=()=>{if(K)F()},P=()=>{if(!G){if(U=!1,j)Z()}},k=()=>{U=!0,M(),F()},e=()=>{if(U=!1,!G&&j)Z()},L=()=>{if(M(),h!==null)cancelAnimationFrame(h),h=null;if(f.removeEventListener("click",r),f.removeEventListener("mouseenter",k),f.removeEventListener("mouseleave",e),n.removeEventListener("mousedown",O),J.removeEventListener("mouseenter",l),J.removeEventListener("mouseleave",P),document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",C),J2){if(J2.removeEventListener("mouseenter",k),J2.removeEventListener("mouseleave",e),J2.parentNode)J2.parentNode.removeChild(J2)}if(f.parentNode)f.parentNode.removeChild(f)};if(w(),f.addEventListener("click",r),f.addEventListener("mouseenter",k),f.addEventListener("mouseleave",e),n.addEventListener("mousedown",O),J.addEventListener("mouseenter",l),J.addEventListener("mouseleave",P),J2)J2.addEventListener("mouseenter",k),J2.addEventListener("mouseleave",e);return{show:F,hide:b,updateBounds:o,updatePosition:a,isVisible:()=>s,destroy:L}};var dJ=50,cJ=0.1;function rJ(J){let Q=0,$=0,Y=0;function q(){return Y>0?$/Y:0}function j(T){if(Q=T,T>cJ&&T<dJ)$+=T,Y++}function B(){let T=J.getTotal();if(T===0)return 0;let _=J.getItemSize();if(_<=0)return 0;let K=J.getContainerSize();if(K<=0)return 0;let A=J.getScrollPosition(),W=typeof J.getColumns==="function"?J.getColumns():1,N=Math.ceil(T/W)*_,U=Math.min(N,V2)-K,V=N-K,R=U>0?V/U:1,v=A*R,y=Math.ceil((v+K)/_);return Math.min(y*W,T)}function D(){let T=J.getTotal(),_=B();return{progress:T>0?Math.min(100,Math.max(0,_/T*100)):0,velocity:Q,velocityAvg:q(),itemCount:_,total:T}}return{getState:D,onVelocity:j}}export{o2 as toggleSelection,VJ as simpleVisibleRange,C2 as selectItems,n2 as selectAll,HJ as rangesEqual,z2 as rafThrottle,qJ as needsScaling,y2 as mergeRanges,t2 as isSelected,M2 as isPlaceholderItem,bJ as isInRange,b2 as isGroupHeader,JJ as getSelectedItems,e2 as getSelectedIds,L2 as getScaleState,UJ as getScaleInfo,L2 as getScale,TJ as getRangeCount,BJ as getMaxItemsWithoutScaling,p2 as filterPlaceholders,RJ as diffRanges,S2 as deselectItems,ZJ as createTableRenderer,XJ as createTableLayout,NJ as createTableHeader,c2 as createStickyHeader,rJ as createStats,R2 as createSparseStorage,F2 as createSizeCache,s2 as createSelectionState,wJ as createScrollbar,zJ as createScrollController,P2 as createPlaceholderManager,_J as createMeasuredSizeCache,DJ as createMasonryRenderer,GJ as createMasonryLayout,m2 as createGroupedSizeFn,d2 as createGroupLayout,KJ as createGridRenderer,r2 as createGridLayout,yJ as createEmitter,PJ as createAsyncManager,i2 as clearSelection,FJ as clampScrollPosition,OJ as calculateTotalSize,LJ as calculateScrollToIndex,QJ as calculateScaledVisibleRange,YJ as calculateScaledScrollToIndex,$J as calculateScaledRenderRange,E2 as calculateScaledItemPosition,WJ as calculateRenderRange,H2 as calculateMissingRanges,AJ as calculateItemOffset,jJ as calculateIndexFromScrollPosition,EJ as calculateActualSize,u2 as buildLayoutItems,V2 as MAX_VIRTUAL_SIZE};
package/dist/size.json CHANGED
@@ -1 +1 @@
1
- {"base":{"minified":"27.1","gzipped":"10.5"},"withGrid":{"minified":"39.1","gzipped":"14.3"},"withMasonry":{"minified":"36.7","gzipped":"13.8"},"withGroups":{"minified":"35.5","gzipped":"13.2"},"withAsync":{"minified":"39.7","gzipped":"14.8"},"withSelection":{"minified":"37.1","gzipped":"13.2"},"withScale":{"minified":"37.9","gzipped":"13.5"},"withScrollbar":{"minified":"30.9","gzipped":"11.6"},"withPage":{"minified":"28.5","gzipped":"10.9"},"withSnapshots":{"minified":"29.5","gzipped":"11.2"},"withTable":{"minified":"44.7","gzipped":"15.9"},"withAutoSize":{"minified":"29.9","gzipped":"11.4"}}
1
+ {"base":{"minified":"27.1","gzipped":"10.5"},"withGrid":{"minified":"39.1","gzipped":"14.3"},"withMasonry":{"minified":"36.8","gzipped":"13.8"},"withGroups":{"minified":"35.5","gzipped":"13.2"},"withAsync":{"minified":"40.0","gzipped":"15.0"},"withSelection":{"minified":"37.1","gzipped":"13.2"},"withScale":{"minified":"38.0","gzipped":"13.5"},"withScrollbar":{"minified":"31.0","gzipped":"11.6"},"withPage":{"minified":"28.5","gzipped":"10.9"},"withSnapshots":{"minified":"29.5","gzipped":"11.2"},"withTable":{"minified":"44.7","gzipped":"16.0"},"withAutoSize":{"minified":"30.0","gzipped":"11.4"}}
package/dist/types.d.ts CHANGED
@@ -359,6 +359,13 @@ export interface AdapterParams {
359
359
  limit: number;
360
360
  /** Optional cursor for cursor-based pagination */
361
361
  cursor: string | undefined;
362
+ /**
363
+ * Abort signal tied to this chunk's lifecycle.
364
+ * Aborted when the chunk is no longer needed — reload, reset, or item
365
+ * removal invalidating the offset map. Pass directly to fetch() or any
366
+ * other cancellable async operation in the adapter.
367
+ */
368
+ signal: AbortSignal;
362
369
  }
363
370
  /** Response from adapter.read */
364
371
  export interface AdapterResponse<T extends VListItem = VListItem> {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vlist",
3
- "version": "1.6.0",
3
+ "version": "1.6.1",
4
4
  "description": "Lightweight, high-performance virtual list with zero dependencies",
5
5
  "author": {
6
6
  "name": "Floor IO",
@@ -61,9 +61,11 @@
61
61
  "build": "bun run build.ts",
62
62
  "dev": "bun run build.ts --watch",
63
63
  "test": "bun test",
64
+ "test:changed": "bun test --changed",
64
65
  "typecheck": "tsc --noEmit && tsc --noEmit -p tsconfig.test.json",
65
66
  "size": "bun run scripts/measure-size.ts",
66
- "prepublishOnly": "bun run build --types"
67
+ "prepublishOnly": "bun run build --types && cp README.md README.github.md && cp npm-readme.md README.md",
68
+ "postpublish": "cp README.github.md README.md && rm README.github.md"
67
69
  },
68
70
  "bugs": {
69
71
  "url": "https://github.com/floor/vlist/issues"