vlist 1.6.0 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/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 T2=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var v2=(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 b=B-q;$.push({key:Y,groupIndex:$.length,headerLayoutIndex:j,firstDataIndex:q,count:b}),j=j+1+b,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 P=v2($,W),Z=$[P];if(W===Z.headerLayoutIndex)return{type:"header",group:Z};let G=W-Z.headerLayoutIndex-1;return{type:"item",dataIndex:Z.firstDataIndex+G,group:Z}},layoutToDataIndex:(W)=>{if($.length===0)return W;let P=v2($,W),Z=$[P];if(W===Z.headerLayoutIndex)return-1;let G=W-Z.headerLayoutIndex-1;return Z.firstDataIndex+G},dataToLayoutIndex:(W)=>{if($.length===0)return W;let P=x2($,W),Z=$[P],G=W-Z.firstDataIndex;return Z.headerLayoutIndex+1+G},getGroupAtLayoutIndex:(W)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let P=v2($,W);return $[P]},getGroupAtDataIndex:(W)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let P=x2($,W);return $[P]},getHeaderHeight:typeof q==="number"?(W)=>q:(W)=>{let P=$[W];if(!P)return 0;return q(P.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",b=j?"height":"width",_=j?"X":"Y",K=(X,f)=>{X.style[D]=`${f}px`},E=document.createElement("div");E.className=`${q}-sticky-header`,E.setAttribute("role","presentation"),E.setAttribute("aria-hidden","true"),E.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[b]="100%",X},P=W(),Z=W();E.append(P,Z),J.insertBefore(E,J.firstChild);let G=P,U=Z,V=Q.groups,T=[],R=[],z=0,r=()=>{V=Q.groups,z=V.length,T=Array(z),R=Array(z);for(let X=0;X<z;X++)T[X]=$.getOffset(V[X].headerLayoutIndex),R[X]=Q.getHeaderHeight(X)};r();let I=-1,s=0,a=-1,$2=!1,B2=0,m=!1,C=(X,f)=>{Y(X,f);let c=R[f];return K(X,c),c},o=(X)=>{X.replaceChildren(),X.style.transform=""},J2=(X)=>{if(X===I)return;if(I=X,s=0,X<0||X>=z){o(G);return}s=C(G,X),K(E,s),G.style.transform=""},k=(X)=>{if(X===B2)return;B2=X;let f=Math.round(X);G.style.transform=`translate${_}(${f}px)`,U.style.transform=`translate${_}(${f+s}px)`},O=()=>{B2=0,G.style.transform="",U.style.transform=""},N=()=>{if(!m)return;let X=G;G=U,U=X,I=a,s=I>=0?R[I]:0,K(E,s),o(U),a=-1,m=!1,O()},A=()=>{if(!m)return;o(U),a=-1,m=!1,O()},H=()=>{if($2)return;$2=!0,E.style.display=""},n=()=>{if(!$2)return;$2=!1,E.style.display="none",o(G),I=-1,s=0,A()},l=(X)=>{if(z===0){n();return}if(X<T[0]){n();return}let f=0,c=z-1;while(f<c){let w=f+c+1>>>1;if(T[w]+R[w]<=X)f=w;else c=w-1}if(!$2)H();J2(f);let y=f+1;if(y<z){let w=T[y]-X;if(w<=0&&w>-s){if(a!==y||!m)a=y,C(U,y),m=!0;k(w)}else if(w<=-s){if(m)N()}else if(m)A()}else if(m)A()},d=()=>{r();let X=I;if(I=-1,s=0,X>=0)J2(X)},M=()=>{E.remove(),I=-1,s=0,a=-1,$2=!1,m=!1};return E.style.display="none",{update:l,refresh:d,show:H,hide:n,destroy:M}};var r2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),$=J.gap??0,Y=J.isHeaderFn,q={row:0,col:0},j=(Z)=>{if(Z<=0)return 0;if(!Y)return Math.ceil(Z/Q);let G=0,U=0,V=0;for(let T=0;T<Z;T++)if(Y(T)){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=(Z)=>{return q.row=D(Z),q.col=b(Z),q},D=(Z)=>{if(!Y)return Math.floor(Z/Q);let G=0,U=0;for(let V=0;V<=Z;V++)if(Y(V)){if(U>0)G++,U=0;if(V===Z)return G;G++,U=0}else{if(V===Z)return G;if(U++,U>=Q)G++,U=0}return console.warn(`⚠️ getRow(${Z}) fell through - returning ${G}`),G},b=(Z)=>{if(!Y)return Z%Q;if(Y(Z))return 0;let G=0;for(let U=0;U<=Z;U++)if(Y(U))G=0;else{if(U===Z)return G;if(G++,G>=Q)G=0}return G},_=(Z,G,U)=>{if(U<=0)return{start:0,end:-1};if(!Y){let r=Math.max(0,Z*Q),I=Math.min(U-1,(G+1)*Q-1);return{start:r,end:I}}let V=-1,T=-1,R=0,z=0;for(let r=0;r<U;r++){if(Y(r)){if(z>0)R++,z=0;if(R>=Z&&R<=G){if(V===-1)V=r;T=r}R++,z=0}else{if(R>=Z&&R<=G){if(V===-1)V=r;T=r}if(z++,z>=Q)R++,z=0}if(R>G&&z===0)break}if(V===-1)return{start:0,end:-1};return{start:V,end:T}},K=(Z,G,U)=>{if(G<0||G>=Q)return-1;let V=Z*Q+G;if(V<0||V>=U)return-1;return V},E=(Z)=>{let G=(Q-1)*$;return Math.max(0,(Z-G)/Q)};return{get columns(){return Q},get gap(){return $},update:(Z)=>{if(Z.columns!==void 0)Q=Math.max(1,Math.floor(Z.columns));if(Z.gap!==void 0)$=Z.gap;if(Z.isHeaderFn!==void 0)Y=Z.isHeaderFn},getTotalRows:j,getPosition:B,getRow:D,getCol:b,getItemRange:_,getItemIndex:K,getColumnWidth:E,getColumnOffset:(Z,G)=>{let U=E(G);return Z*(U+$)}}};var W2=16000000;var l2="x",a2=20,C2="_isPlaceholder",M2="__placeholder_";var E2=(J,Q,$)=>{if(String($).startsWith(M2))return!1;let Y=M2+Q;if(J.has(Y))return J.delete(Y),J.add($),!0;return!1},s2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),S2=(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}},f2=(J,Q)=>{let $=new Set(J.selected);for(let Y of Q)$.delete(Y);return{...J,selected:$}},n2=(J,Q,$)=>{if($==="none")return J;if(J.selected.has(Q))return f2(J,[Q]);else return S2(J,[Q],$)},o2=(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,b=$-1;while(D<b){let _=D+b+1>>>1;if(Y[_]<=B)D=_;else b=_-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)},I2=(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 H2=(J,Q,$)=>{let Y=Q.getTotalSize(),q=$===!0||Y>W2,j=Y>W2?W2: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),P=$.indexAtOffset(J+Q);if(P<Y-1)P++;return j.start=Math.max(0,W),j.end=Math.min(Y-1,Math.max(0,P)),j}let{virtualSize:B}=q,b=J/B*Y,_=Math.floor(b),K=I2($,Math.max(0,_),Q,Y),E=Math.ceil(b)+K;return j.start=Math.max(0,_),j.end=Math.min(Y-1,Math.max(0,E)),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},A2=(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,b=Q/D,_=$.getTotalSize(),K=b*_;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 b=q.virtualSize-$;return Math.max(0,Math.min(B,b))},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>W2;return Q.getTotalSize()>W2},BJ=(J)=>{if(J<=0)return 0;return Math.floor(W2/J)},UJ=(J,Q,$)=>{let Y=H2(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 R2=(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,b=!1)=>{let _=SJ(),K=new Map,E=j,W=!1,P=0,Z="",G=-1,U={selected:!1,focused:!1},V=(M,X)=>{return U.selected=M,U.focused=X,U},T=`${q}-item ${q}-grid-item`,R=`${q}-item--selected`,z=`${q}-item--focused`,r=`${q}-item--placeholder`,I=`${q}-item--replaced`,s=(M,X)=>{if(typeof X==="string")M.innerHTML=X;else M.replaceChildren(X)},a=(M,X,f)=>{M.classList.toggle(R,X),M.classList.toggle(z,f)},$2=(M,X)=>{let f=Y.getRow(M);if(X?.compression?.isCompressed)return A2(f,X.scrollPosition,$,X.totalItems,X.containerSize,X.compression,X.rangeStart);return $.getOffset(f)},B2=(M,X)=>{let f=W&&Y.getCol(M)===0,c=f?0:Y.getCol(M),y=f?0:Y.getColumnOffset(c,E),w;if(W){let i=Y.getRow(M),L=0,F=new Set;for(let S=0;S<M;S++){let u=Y.getRow(S);if(u<i&&!F.has(u)){let x=$.getSize(S);L+=x,F.add(u)}}w=L}else w=$2(M,X);if(b)return`translate(${Math.round(w)}px, ${Math.round(y)}px)`;return`translate(${Math.round(y)}px, ${Math.round(w)}px)`},m=(M,X)=>{M.style.transform=X},C=(M,X)=>{let f=M.dataset.id?.startsWith("__group_header"),c=f?E:Y.getColumnWidth(E),y;if(W||f)y=$.getSize(X)-Y.gap;else{let w=Y.getRow(X);y=$.getSize(w)-Y.gap}if(b)M.style.width=`${y}px`,M.style.height=`${c}px`;else M.style.width=`${c}px`,M.style.height=`${y}px`},o=(M,X,f,c,y)=>{let w=_.acquire(),i=V(f,c);if(w.className=T,w.dataset.index=String(M),w.dataset.id=String(X.id),w.dataset.row=String(Y.getRow(M)),w.dataset.col=String(Y.getCol(M)),w.ariaSelected=String(f),D)w.id=`${D}-item-${M}`;if(B){let S=B();if(S!==G)G=S,Z=String(S);w.setAttribute("aria-setsize",Z),w.setAttribute("aria-posinset",String(M+1))}C(w,M);let L=Q(X,M,i);if(s(w,L),String(X.id).startsWith(M2))w.classList.add(r);return a(w,f,c),m(w,y),{element:w,lastItemId:X.id,lastSelected:f,lastFocused:c,lastTransform:y,lastSeenFrame:P}},J2=(M,X,f,c,y)=>{if(P++,X.start===0&&M.length>0)W=T2(M[0]);for(let[L,F]of K)if(L>=X.start&&L<=X.end)F.lastSeenFrame=P;else if(P-F.lastSeenFrame>fJ)_.release(F.element),K.delete(L);let w=!1;if(B){let L=B();if(L!==G)G=L,Z=String(L),w=!0}let i=null;for(let L=X.start;L<=X.end;L++){let F=L-X.start,S=M[F];if(!S){console.warn(`⚠️ RENDER: Missing item at index ${L} (range: ${X.start}-${X.end}, items.length: ${M.length})`);continue}let u=f.has(S.id),x=L===c,h=K.get(L);if(h){let e=h.lastItemId!==S.id,v=h.lastSelected!==u,p=h.lastFocused!==x;if(e){let q2=String(h.lastItemId),Q2=String(S.id),Y2=q2.startsWith(M2),U2=Q2.startsWith(M2);if(!U2&&E2(f,L,S.id))u=!0;let Z2=V(u,x),t=Q(S,L,Z2);if(s(h.element,t),h.element.dataset.id=Q2,h.element.dataset.row=String(Y.getRow(L)),h.element.dataset.col=String(Y.getCol(L)),C(h.element,L),h.element.classList.toggle(r,U2),Y2&&!U2)h.element.classList.add(I),setTimeout(()=>h.element.classList.remove(I),300);h.lastItemId=S.id}if(e||v||p)a(h.element,u,x),h.element.ariaSelected=String(u),h.lastSelected=u,h.lastFocused=x;let g=B2(L,y);if(h.lastTransform!==g)m(h.element,g),h.lastTransform=g;if(w)h.element.setAttribute("aria-setsize",Z)}else{if(E2(f,L,S.id))u=!0;let e=B2(L,y),v=o(L,S,u,x,e);if(!i)i=document.createDocumentFragment();i.appendChild(v.element),K.set(L,v)}}if(i)J.appendChild(i)},k=(M)=>{for(let[X,f]of K){let c=B2(X,M);if(f.lastTransform!==c)m(f.element,c),f.lastTransform=c}},O=(M,X,f,c)=>{let y=K.get(M);if(!y)return;let w=V(f,c),i=Q(X,M,w);s(y.element,i),a(y.element,f,c),y.element.dataset.id=String(X.id),y.element.ariaSelected=String(f),C(y.element,M),y.lastItemId=X.id,y.lastSelected=f,y.lastFocused=c},N=(M,X,f)=>{let c=K.get(M);if(!c)return;let y=c.lastSelected!==X,w=c.lastFocused!==f;if(y||w)a(c.element,X,f),c.lastSelected=X,c.lastFocused=f},A=(M)=>{return K.get(M)?.element},H=(M)=>{if(Math.abs(M-E)<1)return;E=M;for(let[X,f]of K){C(f.element,X);let c=B2(X);m(f.element,c),f.lastTransform=c}},n=()=>{R2(J,K.keys(),(M)=>K.get(M)?.element)},l=()=>{for(let[,M]of K)_.release(M.element);K.clear()};return{render:J2,updatePositions:k,updateItem:O,updateItemClasses:N,getElement:A,sortDOM:n,updateContainerWidth:H,clear:l,destroy:()=>{l(),_.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}))},b=(U)=>{if(j.length===0){B=0;return}let V=0,T=0;for(let R=0;R<j.length;R++){let z=j[R],r=z.def;if(r.width!==void 0)z.width=p2(r.width,z.minWidth,z.maxWidth),V+=z.width;else T++}if(T>0){let z=Math.max(0,U-V)/T;for(let r=0;r<j.length;r++){let I=j[r];if(I.def.width===void 0)I.width=p2(z,I.minWidth,I.maxWidth)}}_()},_=()=>{let U=0;for(let V=0;V<j.length;V++){let T=j[V];T.offset=U,U+=T.width}B=U},K=(U,V)=>{if(U<0||U>=j.length)return 0;let T=j[U];if(!T.resizable)return T.width;let R=p2(V,T.minWidth,T.maxWidth);return T.width=R,_(),R},E=(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,T=j.length-1;while(V<T){let R=V+T>>>1,z=j[R];if(U<z.offset)T=R-1;else if(U>=z.offset+z.width)V=R+1;else return z}return j[V]},P=(U)=>{if(U<0||U>=j.length)return 0;return j[U].offset},Z=(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:b,updateColumns:G,resizeColumn:K,getColumn:E,getColumnAtX:W,getColumnOffset:P,getColumnWidth:Z}},p2=(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 b=document.createElement("div");b.className=`${Y}-table-header`,b.setAttribute("role","row"),b.setAttribute("aria-rowindex","1"),b.style.height=`${$}px`;let _=document.createElement("div");_.className=`${Y}-table-header-scroll`,_.setAttribute("role","presentation"),b.appendChild(_),D.appendChild(b),J.insertBefore(D,J.firstChild),Q.style.cssText=`position:absolute;top:${$}px;left:0px;right:0px;bottom:0px;height:auto`;let K=[],E=[],W=[],P=!0,Z=null,G="asc",U=null,V=!1,T=-1,R=0,z=0,r=(N,A)=>{let H=document.createElement("div");H.className=`${Y}-table-header-cell`,H.setAttribute("role","columnheader"),H.setAttribute("aria-colindex",String(A+1)),H.dataset.columnKey=N.def.key;let n=N.def.align;if(n==="center")H.classList.add(`${Y}-table-header-cell--center`);else if(n==="right")H.classList.add(`${Y}-table-header-cell--right`);let l=document.createElement("div");l.className=`${Y}-table-header-content`;let d=N.def.header?N.def.header(N.def):N.def.label;if(typeof d==="string")l.textContent=d;else l.appendChild(d);if(H.appendChild(l),N.def.sortable){let M=document.createElement("span");M.className=`${Y}-table-header-sort`,M.setAttribute("aria-hidden","true"),H.appendChild(M),W.push(M),H.classList.add(`${Y}-table-header-cell--sortable`)}else W.push(null);if(N.resizable){let M=document.createElement("div");M.className=`${Y}-table-header-resize`,M.dataset.resizeIndex=String(A),H.appendChild(M),E.push(M)}return H},I=(N)=>{U=N,_.textContent="",K=[],E=[],W=[];let A=N.columns;for(let H=0;H<A.length;H++){let n=A[H],l=r(n,H);K.push(l),_.appendChild(l)}if(s(N),Z)a(Z,G)},s=(N)=>{U=N;let A=N.columns;_.style.width=`${N.totalWidth}px`;for(let H=0;H<K.length&&H<A.length;H++){let n=K[H],l=A[H];n.style.width=`${l.width}px`}},a=(N,A)=>{if(Z=N,G=A,!U)return;let H=U.columns;for(let n=0;n<W.length&&n<H.length;n++){let l=W[n];if(!l)continue;if(H[n].def.key===N&&N!==null)l.textContent=A==="asc"?"▲":"▼",l.style.opacity="0.7",K[n].setAttribute("aria-sort",A==="asc"?"ascending":"descending");else l.textContent="",l.style.opacity="0",K[n].removeAttribute("aria-sort")}},$2=(N)=>{_.style.transform=`translateX(${-N}px)`},B2=(N)=>{let A=N.target;if(!A.dataset.resizeIndex)return;if(N.preventDefault(),N.stopPropagation(),T=parseInt(A.dataset.resizeIndex,10),!U)return;let H=U.getColumn(T);if(!H||!H.resizable)return;V=!0,R=N.clientX,z=H.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",A.classList.add(`${Y}-table-header-resize--active`),A.setPointerCapture(N.pointerId),A.addEventListener("pointermove",m),A.addEventListener("pointerup",C),A.addEventListener("pointercancel",C)},m=(N)=>{if(!V||!U)return;let A=N.clientX-R;if(Math.abs(A)<1)return;let H=Math.max(0,z+A);q(T,H)},C=(N)=>{if(!V)return;let A=N.target;A.removeEventListener("pointermove",m),A.removeEventListener("pointerup",C),A.removeEventListener("pointercancel",C);try{A.releasePointerCapture(N.pointerId)}catch{}A.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",V=!1,T=-1},o=(N)=>{let A=N.target;if(A.dataset.resizeIndex!==void 0)return;if(V)return;let H=A;while(H&&!H.dataset.columnKey)if(H=H.parentElement,H===b||H===null)return;if(!H||!H.dataset.columnKey)return;let n=H.dataset.columnKey;if(!U)return;let l=U.columns,d=-1;for(let X=0;X<l.length;X++)if(l[X].def.key===n){d=X;break}if(d===-1)return;let M=l[d];if(B)B({key:n,index:d,event:N});if(M.def.sortable&&j){let X;if(Z===n)if(G==="asc")X="desc";else X=null;else X="asc";j({key:n,index:d,direction:X})}};return b.addEventListener("pointerdown",B2),b.addEventListener("click",o),{element:b,update:s,updateSort:a,rebuild:I,show:()=>{if(P)return;P=!0,b.style.display=""},hide:()=>{if(!P)return;P=!1,b.style.display="none"},destroy:()=>{b.removeEventListener("pointerdown",B2),b.removeEventListener("click",o),Q.style.cssText="",D.remove(),K=[],E=[],W=[],U=null,P=!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,b)=>{let _=pJ(),K=new Map,E=-1,W=$,P=null,Z=null,G=null,U=(L,F)=>{Z=L,G=F},V=(L,F)=>{if(F)L.setAttribute("aria-selected","true");else L.removeAttribute("aria-selected")},T=(L,F,S,u)=>{L.setAttribute("role",F),L.setAttribute("data-id",String(S)),L.setAttribute("data-index",String(u))},R=(L)=>String(L).startsWith("__placeholder_"),z=`${q}-item ${q}-table-row`,r=`${q}-item--selected`,I=`${q}-item--focused`,s=`${q}-table-cell`,a=`${q}-table-cell--center`,$2=`${q}-table-cell--right`,B2=`${q}-item--odd`,m=`${q}-item--placeholder`,C=`${q}-item--replaced`,o=`${q}-item ${q}-table-row ${q}-table-group-header`,J2=`${q}-table-group-header-content`,k=(L,F,S,u,x=!1)=>{if(S.def.cell){let h=S.def.cell(F,S.def,u);if(typeof h==="string")L.innerHTML=h;else L.replaceChildren(h)}else{let h=F[S.def.key],e=h!=null?String(h):"";if(x&&e)L.innerHTML=`<span>${e}</span>`;else L.textContent=e}},O=(L,F,S,u,x=!1)=>{let h=z;if(D){if(P){let e=P(F);if(e>=0&&(e&1)===1)h+=` ${B2}`}else if((F&1)===1)h+=` ${B2}`}if(x)h+=` ${m}`;if(S)h+=` ${r}`;if(u)h+=` ${I}`;L.className=h},N=(L,F,S)=>{if(S?.compression?.isCompressed)return Math.round(A2(L,S.scrollPosition,F,S.totalItems,S.containerSize,S.compression,S.rangeStart));return F.getOffset(L)},A=(L,F)=>{let S=F.def.align;if(S==="center")L.classList.add(a),L.classList.remove($2);else if(S==="right")L.classList.add($2),L.classList.remove(a);else L.classList.remove(a,$2)},H=(L,F)=>{let u=W.columns.length;if(F.length===u)return F;let x=[];for(let h=0;h<u;h++){let e;if(h<F.length)e=F[h];else e=document.createElement("div"),e.className=s,L.appendChild(e);x.push(e)}for(let h=u;h<F.length;h++)F[h].remove();return x},n=(L,F,S,u)=>{let x=_.acquire(),h=L,e=S.getSize(F),v=N(F,S,u);x.style.cssText=`width:${W.totalWidth}px;height:${e}px;transform:translateY(${v}px)`,x.className=o,T(x,"presentation",L.id,F),x.removeAttribute("aria-selected"),x.removeAttribute("aria-rowindex"),x.replaceChildren();let p=document.createElement("div");if(p.className=J2,G){let g=G(h.groupKey,h.groupIndex);if(typeof g==="string")p.innerHTML=g;else p.appendChild(g)}return x.appendChild(p),{element:x,cells:[],index:F,isGroupHeader:!0,lastItemId:L.id,lastSelected:!1,lastFocused:!1,lastOffset:v,lastHeight:e}},l=(L,F,S,u,x,h)=>{let e=_.acquire(),v=x.getSize(F),p=N(F,x,h),g=R(L.id);e.style.cssText=`width:${W.totalWidth}px;height:${v}px;transform:translateY(${p}px)`,O(e,F,S,u,g),T(e,"row",L.id,F),e.id=`${j}-${F}`,e.setAttribute("aria-rowindex",String(F+2)),V(e,S);let q2=H(e,[]),Q2=W.columns;for(let Y2=0;Y2<q2.length&&Y2<Q2.length;Y2++){let U2=q2[Y2],Z2=Q2[Y2];U2.style.cssText=`left:${Z2.offset}px;width:${Z2.width}px`,U2.setAttribute("role","gridcell"),U2.setAttribute("aria-colindex",String(Y2+1)),A(U2,Z2),k(U2,L,Z2,F,g)}return{element:e,cells:q2,index:F,isGroupHeader:!1,lastItemId:L.id,lastSelected:S,lastFocused:u,lastOffset:p,lastHeight:v}},d=(L,F,S,u,x)=>{for(let[g,q2]of K)if(g<F.start||g>F.end)_.release(q2.element),K.delete(g);let h=!1,e=B();if(e!==E)E=e,h=!0;let v=null,p=Q();P=typeof D==="string"&&b?b():null;for(let g=F.start;g<=F.end;g++){let q2=g-F.start,Q2=L[q2];if(!Q2)continue;let Y2=S.has(Q2.id),U2=g===u,Z2=Z?Z(Q2):!1,t=K.get(g);if(t){if(t.isGroupHeader!==Z2){_.release(t.element),K.delete(g);let j2=Z2?n(Q2,g,p,x):l(Q2,g,Y2,U2,p,x);if(K.set(g,j2),!v)v=document.createDocumentFragment();v.appendChild(j2.element);continue}if(Z2){if(t.lastItemId!==Q2.id){let N2=Q2,K2=t.element.firstElementChild;if(K2&&G){let _2=G(N2.groupKey,N2.groupIndex);if(typeof _2==="string")K2.innerHTML=_2;else K2.replaceChildren(_2)}t.element.setAttribute("data-id",String(Q2.id)),t.lastItemId=Q2.id}let G2=N(g,p,x);if(t.lastOffset!==G2)t.lastOffset=G2,t.element.style.transform=`translateY(${G2}px)`;let D2=p.getSize(g);if(t.lastHeight!==D2)t.lastHeight=D2,t.element.style.height=`${D2}px`}else{let j2=t.lastItemId!==Q2.id,G2=t.lastSelected!==Y2,D2=t.lastFocused!==U2;if(j2){let _2=t.lastItemId!=null&&R(t.lastItemId),X2=R(Q2.id);if(!X2&&E2(S,g,Q2.id))Y2=!0;let V2=W.columns;for(let L2=0;L2<t.cells.length&&L2<V2.length;L2++)k(t.cells[L2],Q2,V2[L2],g,X2);if(O(t.element,g,Y2,U2,X2),t.element.setAttribute("data-id",String(Q2.id)),V(t.element,Y2),_2&&!X2)t.element.classList.add(C),setTimeout(()=>{t.element.classList.remove(C)},300);t.lastItemId=Q2.id,t.lastSelected=Y2,t.lastFocused=U2}else if(G2||D2)O(t.element,g,Y2,U2,R(Q2.id)),V(t.element,Y2),t.lastSelected=Y2,t.lastFocused=U2;let N2=N(g,p,x);if(t.lastOffset!==N2)t.lastOffset=N2,t.element.style.transform=`translateY(${N2}px)`;let K2=p.getSize(g);if(t.lastHeight!==K2)t.lastHeight=K2,t.element.style.height=`${K2}px`;if(h)t.element.setAttribute("aria-rowindex",String(g+2))}}else{if(E2(S,g,Q2.id))Y2=!0;let j2=Z2?n(Q2,g,p,x):l(Q2,g,Y2,U2,p,x);if(K.set(g,j2),!v)v=document.createDocumentFragment();v.appendChild(j2.element)}}if(v)J.appendChild(v)},M=(L)=>{let F=Q();for(let[S,u]of K){let x=N(S,F,L);if(u.lastOffset!==x)u.lastOffset=x,u.element.style.transform=`translateY(${x}px)`}},X=(L,F,S,u)=>{let x=K.get(L);if(!x)return;if(x.isGroupHeader)return;let h=W.columns;for(let e=0;e<x.cells.length&&e<h.length;e++)k(x.cells[e],F,h[e],L);x.element.setAttribute("data-id",String(F.id)),x.lastItemId=F.id,O(x.element,L,S,u),V(x.element,S),x.lastSelected=S,x.lastFocused=u},f=(L,F,S)=>{let u=K.get(L);if(!u)return;if(u.isGroupHeader)return;let x=u.lastSelected!==F,h=u.lastFocused!==S;if(x||h)O(u.element,L,F,S),V(u.element,F),u.lastSelected=F,u.lastFocused=S},c=(L)=>{W=L;let F=L.columns;for(let[,S]of K)if(S.element.style.width=`${L.totalWidth}px`,S.cells.length>0)for(let u=0;u<S.cells.length&&u<F.length;u++){let x=S.cells[u],h=F[u];x.style.left=`${h.offset}px`,x.style.width=`${h.width}px`}},y=(L)=>{return K.get(L)?.element},w=()=>{for(let[,L]of K)_.release(L.element);K.clear(),E=-1};return{render:d,updatePositions:M,updateItem:X,updateItemClasses:f,getElement:y,updateColumnLayout:c,setGroupHeaderFn:U,clear:w,destroy:()=>{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 U=(Q-1)*$;q=Math.max(0,(Y-U)/Q),j=Array(Q);let V=q+$;for(let T=0;T<Q;T++)j[T]=T*V};B();let D=[],b=0,_=[],K=(U)=>{let V=0,T=U[0];for(let R=1;R<U.length;R++){let z=U[R];if(z<T)T=z,V=R}return V},E=(U,V)=>{if(U<=0)return b=0,D=[],[];let T=Array(Q).fill(0),R=Array(Q);for(let I=0;I<Q;I++)R[I]=[];let z=Array(U);for(let I=0;I<U;I++){let s=K(T),a=V(I),$2=T[s];z[I]={index:I,x:j[s],y:$2,lane:s,size:a,crossSize:q},R[s].push(I),T[s]=$2+a+$}D=R;let r=0;for(let I=0;I<Q;I++){let s=T[I],a=s>0?s-$:0;if(a>r)r=a}return b=r,z},W=(U)=>{if(U.length===0)return b>0?b:0;if(b>0)return b;let V=Array(Q).fill(0);for(let R of U){let z=R.y+R.size,r=V[R.lane];if(z>r)V[R.lane]=z}let T=0;for(let R=0;R<Q;R++)if(V[R]>T)T=V[R];return T},P=(U,V,T)=>{if(U.length===0||T<=V)return _.length=0,_;if(D.length===0||D.length!==Q)return Z(U,V,T);_.length=0;for(let R=0;R<Q;R++){let z=D[R],r=z.length;if(r===0)continue;let I=0,s=r;while(I<s){let a=I+s>>>1,$2=U[z[a]];if($2.y+$2.size<=V)I=a+1;else s=a}for(let a=I;a<r;a++){let $2=U[z[a]];if($2.y>=T)break;_.push($2)}}return _},Z=(U,V,T)=>{let R=[];for(let z of U)if(z.y+z.size>V&&z.y<T)R.push(z);return R};return{get columns(){return Q},get gap(){return $},get containerSize(){return Y},update:(U)=>{let V=!1;if(U.columns!==void 0){let T=Math.max(1,Math.floor(U.columns));if(T!==Q)Q=T,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:E,getTotalSize:W,getVisibleItems:P}};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,b=new Set,_=0,K="",E=-1,W={selected:!1,focused:!1},P=(m,C)=>{return W.selected=m,W.focused=C,W},Z=`${$}-item ${$}-masonry-item`,G=`${$}-item--selected`,U=`${$}-item--focused`,V=(m,C)=>{if(typeof C==="string")m.innerHTML=C;else m.replaceChildren(C)},T=(m,C,o)=>{m.classList.toggle(G,C),m.classList.toggle(U,o)},R=(m,C)=>{if(Y)m.style.transform=`translate(${Math.round(C.y)}px, ${Math.round(C.x)}px)`;else m.style.transform=`translate(${Math.round(C.x)}px, ${Math.round(C.y)}px)`},z=(m,C)=>{if(Y)m.style.width=`${C.size}px`,m.style.height=`${C.crossSize}px`;else m.style.width=`${C.crossSize}px`,m.style.height=`${C.size}px`},r=(m,C,o,J2,k)=>{let O=B.acquire(),N=P(J2,k);if(O.className=Z,O.dataset.index=String(m),O.dataset.id=String(C.id),O.dataset.lane=String(o.lane),O.ariaSelected=String(J2),j)O.id=`${j}-item-${m}`;if(q){let H=q();if(H!==E)E=H,K=String(H);O.setAttribute("aria-setsize",K),O.setAttribute("aria-posinset",String(m+1))}z(O,o);let A=Q(C,m,N);return V(O,A),T(O,J2,k),R(O,o),{element:O,lastItemId:C.id,lastSelected:J2,lastFocused:k,lastY:o.y,lastX:o.x,lastSize:o.size,lastCrossSize:o.crossSize,lastSeenFrame:_}},I=(m,C,o,J2)=>{_++,b.clear();for(let O=0;O<C.length;O++)b.add(C[O].index);for(let[O,N]of D)if(b.has(O))N.lastSeenFrame=_;else if(_-N.lastSeenFrame>xJ)B.release(N.element),D.delete(O);let k=null;for(let O=0;O<C.length;O++){let N=C[O],A=N.index,H=m(A);if(!H)continue;let n=o.has(H.id),l=A===J2,d=D.get(A);if(d){let M=d.lastItemId!==H.id,X=d.lastSelected!==n,f=d.lastFocused!==l,c=d.lastY!==N.y||d.lastX!==N.x,y=d.lastSize!==N.size||d.lastCrossSize!==N.crossSize;if(M){let w=P(n,l),i=Q(H,A,w);V(d.element,i),d.element.dataset.id=String(H.id),d.lastItemId=H.id}if(M||X||f)T(d.element,n,l),d.element.ariaSelected=String(n),d.lastSelected=n,d.lastFocused=l;if(y)z(d.element,N),d.lastSize=N.size,d.lastCrossSize=N.crossSize;if(c)R(d.element,N),d.lastY=N.y,d.lastX=N.x}else{let M=r(A,H,N,n,l);if(!k)k=document.createDocumentFragment();k.appendChild(M.element),D.set(A,M)}}if(k)J.appendChild(k)},s=()=>{for(let{element:m}of D.values())B.release(m);D.clear(),J.innerHTML=""};return{render:I,getElement:(m)=>D.get(m)?.element,updateItemClasses:(m,C,o)=>{let J2=D.get(m);if(!J2)return;let k=J2.lastSelected!==C,O=J2.lastFocused!==o;if(k||O)T(J2.element,C,o),J2.lastSelected=C,J2.lastFocused=o},sortDOM:()=>{R2(J,D.keys(),(m)=>D.get(m)?.element)},clear:s,destroy:()=>{s(),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),b=Q.getSize(B),_=Q.getTotalSize(),K=Math.max(0,_-$),E;switch(j){case"center":E=D-$/2+b/2;break;case"end":E=D-$+b;break;case"start":default:E=D;break}return Math.max(0,Math.min(E,K))},OJ=(J,Q,$)=>{if($&&$.isCompressed)return $.virtualSize;return Q.getTotalSize()},EJ=(J,Q)=>{return Q.getTotalSize()},AJ=(J,Q)=>{return Q.getOffset(J)},LJ=(J,Q,$)=>{let Y=Math.max(0,Q-$);return Math.max(0,Math.min(J,Y))};var FJ=(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(b){console.error(`[vlist] Error in event handler for "${String(j)}":`,b)}})},clear:(j)=>{if(j)delete J[j];else for(let B in J)delete J[B]}}};var y2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:$=5000,evictionBuffer:Y=200,onEvict:q}=J,j=new Map,B=0,D=0,b=(k)=>{let O=j.get(k);if(!O)O={items:Array(Q),count:0,lastAccess:Date.now()},j.set(k,O);else O.lastAccess=Date.now();return O},_=(k)=>{return Math.floor(k/Q)},K=(k)=>{return k%Q},E=()=>B,W=(k)=>{B=k},P=(k)=>{if(k<0||k>=B)return;let O=_(k),N=j.get(O);if(!N)return;return N.items[K(k)]},Z=(k)=>{if(k<0||k>=B)return!1;let O=_(k),N=j.get(O);if(!N)return!1;return N.items[K(k)]!==void 0},G=(k,O)=>{let N=_(k),A=b(N),H=K(k),n=A.items[H]===void 0;if(A.items[H]=O,n)A.count++,D++;if(k>=B)B=k+1},U=(k,O)=>{for(let N=0;N<O.length;N++){let A=O[N];if(A!==void 0)G(k+N,A)}},V=(k)=>{if(k<0||k>=B)return!1;let O=_(k),N=j.get(O),A=K(k);if(!(N!==void 0&&N.items[A]!==void 0))return!1;let n=O,l=Array.from(j.keys()).filter((M)=>M>=n).sort((M,X)=>M-X),d=[];for(let M of l){let X=j.get(M),f=M*Q;for(let c=0;c<Q;c++){if(X.items[c]===void 0)continue;let y=f+c;if(y<=k)continue;d.push({oldIndex:y,item:X.items[c]})}}if(N.items[A]=void 0,N.count--,D--,N.count===0)j.delete(O);for(let{oldIndex:M}of d){let X=_(M),f=j.get(X);if(!f)continue;let c=K(M);if(f.items[c]!==void 0){if(f.items[c]=void 0,f.count--,D--,f.count===0)j.delete(X)}}for(let{oldIndex:M,item:X}of d){let f=M-1,c=_(f),y=b(c),w=K(f);y.items[w]=X,y.count++,D++}return B--,!0},T=(k,O)=>{let N=[];for(let A=k;A<=O&&A<B;A++)N.push(P(A));return N},R=(k,O)=>{for(let N=k;N<=O&&N<B;N++)if(!Z(N))return!1;return!0},z=()=>{let k=[],O=null,N=Array.from(j.keys()).sort((A,H)=>A-H);for(let A of N){let H=j.get(A);if(!H)continue;let n=A*Q;for(let l=0;l<Q;l++){let d=n+l;if(d>=B)break;if(H.items[l]!==void 0)if(O===null)O={start:d,end:d};else if(d===O.end+1)O.end=d;else k.push(O),O={start:d,end:d};else if(O!==null)k.push(O),O=null}}if(O!==null)k.push(O);return k},r=(k,O)=>{let N=[],A=null;for(let H=k;H<=O&&H<B;H++)if(!Z(H))if(A===null)A={start:H,end:H};else A.end=H;else if(A!==null)N.push(A),A=null;if(A!==null)N.push(A);return N},I=(k)=>{return j.has(k)},s=(k)=>{let O=j.get(k);if(O)O.lastAccess=Date.now()},a=(k,O)=>{if(k>O||j.size===0)return;let N=Date.now(),A=_(Math.max(0,k)),H=_(Math.min(B-1,O));for(let n=A;n<=H;n++){let l=j.get(n);if(l)l.lastAccess=N}},$2=(k,O)=>{if(D<=$)return 0;let N=Math.max(0,k-Y),A=Math.min(B-1,O+Y),H=_(N),n=_(A),l=0,d=[];for(let[M,X]of j)if(M<H||M>n)l+=X.count,d.push(M),D-=X.count,j.delete(M);if(l>0&&q)q(l,d);return l},B2=()=>{if(D<=$)return 0;let k=Array.from(j.entries()).sort(([,A],[,H])=>A.lastAccess-H.lastAccess),O=0,N=[];for(let[A,H]of k){if(D<=$)break;O+=H.count,D-=H.count,N.push(A),j.delete(A)}if(O>0&&q)q(O,N);return O},m=()=>{return{totalItems:B,cachedItems:D,cachedChunks:j.size,chunkSize:Q,maxCachedItems:$,memoryEfficiency:B>0?1-D/B:1}},C=()=>D,o=()=>{j.clear(),D=0};return{chunkSize:Q,maxCachedItems:$,getTotal:E,setTotal:W,get:P,has:Z,set:G,setRange:U,delete:V,getRange:T,isRangeLoaded:R,getLoadedRanges:z,findUnloadedRanges:r,getChunkIndex:_,isChunkLoaded:I,touchChunk:s,touchChunksForRange:a,evictDistant:$2,evictToLimit:B2,getStats:m,getCachedCount:C,clear:o,reset:()=>{o(),B=0}}},P2=(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 $},b2=(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=P2(Q),b=j.start;for(let _ of D){if(_.end<b)continue;if(_.start>j.end)break;if(_.start>b)B.push({start:b,end:Math.min(_.start-1,j.end)});if(b=_.end+1,b>j.end)break}if(b<=j.end)B.push({start:b,end:j.end});return B};var k2=(J={})=>{let{maskCharacter:Q=l2,maxSampleSize:$=a2}=J,Y=[],q=!1,j=(K)=>{if(q||K.length===0)return;let E=Math.min(K.length,$);for(let W=0;W<E;W++){let P=K[W];if(!P||typeof P!=="object")continue;let Z={};for(let[G,U]of Object.entries(P)){if(G.startsWith("_")||G==="id")continue;Z[G]=String(U??"").length}if(Object.keys(Z).length>0)Y.push(Z)}q=!0},B=()=>q,D=(K)=>{let E={id:`${M2}${K}`,[C2]:!0,_index:K};if(Y.length===0)return E.label=Q.repeat(12),E;let W=Y[K%Y.length];for(let[P,Z]of Object.entries(W))E[P]=Q.repeat(Math.max(1,Z));return E};return{analyzeStructure:j,hasAnalyzedStructure:B,generate:D,generateRange:(K,E)=>{let W=[];for(let P=K;P<=E;P++)W.push(D(P));return W},clear:()=>{Y=[],q=!1}}},O2=(J)=>{if(!J||typeof J!=="object")return!1;return J[C2]===!0},h2=(J)=>{return J.filter((Q)=>!O2(Q))};var uJ=50,PJ=(J={})=>{let{adapter:Q,initialItems:$,initialTotal:Y,storage:q,placeholder:j,pageSize:B=uJ,onStateChange:D,onItemsLoaded:b,onItemsEvicted:_}=J,K=y2({...q,onEvict:(v,p)=>{_?.(v),a()}}),E=null,W=()=>{if(!E)E=k2(j);return E},P=new Map,Z=!1,G,U=!0,V,T,R=[],z=0,r=new Map,I=new Map,s=()=>{for(let v of I.values())v.abort();I.clear(),r.clear()},a=()=>{D?.(N())},$2=()=>{P.clear();let v=K.getLoadedRanges();for(let p of v)for(let g=p.start;g<=p.end;g++){let q2=K.get(g);if(q2&&!O2(q2))P.set(q2.id,g)}},B2=(v,p)=>{if(!O2(p))P.set(p.id,v)},m=(v)=>{P.delete(v)},C=(v,p)=>{return`${v}-${p}`},o=()=>K.getTotal(),J2=()=>K.getCachedCount(),k=()=>Z,O=()=>U,N=()=>({total:K.getTotal(),cached:K.getCachedCount(),isLoading:Z,pendingRanges:R,error:G,hasMore:U,cursor:V}),A=()=>K,H=()=>W(),n=(v)=>{let p=K.get(v);if(p!==void 0)return p;if(v>=0&&v<K.getTotal())return W().generate(v);return},l=(v)=>{let p=P.get(v);if(p===void 0)return;return K.get(p)},d=(v)=>{return P.get(v)??-1},M=(v)=>{let p=K.get(v);return p!==void 0&&!O2(p)},X=(v,p)=>{let g=[],q2=K.getTotal(),Q2=0,Y2=0;K.touchChunksForRange(v,Math.min(p,q2-1));for(let U2=v;U2<=p&&U2<q2;U2++){let Z2=K.get(U2);if(Z2!==void 0)g.push(Z2),Q2++;else g.push(W().generate(U2)),Y2++}return g},f=(v)=>{K.setTotal(v),U=K.getCachedCount()<v,a()},c=(v,p=0,g)=>{if(Q&&v.length>0){let q2=W();if(!q2.hasAnalyzedStructure())q2.analyzeStructure(v)}for(let q2=0;q2<v.length;q2++){let Q2=v[q2];if(Q2!==void 0){let Y2=p+q2;K.set(Y2,Q2),B2(Y2,Q2)}}if(g!==void 0)K.setTotal(g);else if(p+v.length>K.getTotal())K.setTotal(p+v.length);if(K.getCachedCount()>=K.getTotal()&&K.getTotal()>0)U=!1;a(),b?.(v,p,K.getTotal())},y=(v,p)=>{let g=K.get(v);if(!g)return!1;let q2=g.id,Q2={...g,...p};if(K.set(v,Q2),p.id!==void 0&&p.id!==q2)m(q2);return B2(v,Q2),a(),!0},w=(v)=>{let p=P.get(v);if(p===void 0)return!1;if(!K.delete(p))return!1;return $2(),s(),a(),!0},i=async(v,p)=>{if(!Q)return;let g=C(v,p);if(r.has(g))return;let q2=K.getLoadedRanges(),Q2=b2({start:v,end:p},q2,K.chunkSize);if(Q2.length===0)return;let Y2=K.chunkSize,U2=Y2*2;for(let[j2,G2]of I){let D2=j2.indexOf("-"),N2=parseInt(j2.slice(0,D2),10);if(Math.abs(N2-v)>U2)G2.abort(),I.delete(j2),r.delete(j2)}let Z2=[];for(let j2 of Q2){let G2=Math.floor(j2.start/Y2),D2=Math.floor(j2.end/Y2);for(let N2=G2;N2<=D2;N2++){let K2=N2*Y2,_2=K2+Y2-1,X2=C(K2,_2);if(!Z2.some((V2)=>V2.start===K2)&&!r.has(X2))Z2.push({start:K2,end:_2})}}let t=[];for(let j2 of Q2){let G2=Math.floor(j2.start/Y2),D2=Math.floor(j2.end/Y2);for(let N2=G2;N2<=D2;N2++){let K2=N2*Y2,_2=K2+Y2-1,X2=C(K2,_2);if(r.has(X2)){let V2=r.get(X2);if(!t.includes(V2))t.push(V2)}}}for(let j2 of Z2){let G2=C(j2.start,j2.end),D2=new AbortController;I.set(G2,D2);let N2=(async()=>{R.push(j2),Z=!0,G=void 0,a();try{let K2=j2.end-j2.start+1,_2={offset:j2.start,limit:K2,cursor:j2.start===T?V:void 0,signal:D2.signal},X2=await Q.read(_2);if(c(X2.items,j2.start,X2.total),X2.cursor)V=X2.cursor,T=j2.start+X2.items.length;let V2=j2.start+X2.items.length;if(V2>=z){if(z=V2,X2.hasMore!==void 0)U=X2.hasMore;else if(X2.total!==void 0)U=V2<X2.total}}catch(K2){if(K2?.name==="AbortError")return;G=K2 instanceof Error?K2:Error(String(K2))}finally{r.delete(G2),I.delete(G2),R=R.filter((K2)=>K2.start!==j2.start||K2.end!==j2.end),Z=r.size>0,a()}})();r.set(G2,N2),t.push(N2)}await Promise.all(t)},L=async(v,p)=>{if(K.isRangeLoaded(v,p))return;await i(v,p)},F=async()=>{if(!Q)return;await i(0,B-1)},S=async()=>{if(!Q||Z||!U)return!1;let v=K.getCachedCount(),p=K.getTotal(),g=v,q2=Math.min(g+B-1,p>0?p-1:g+B-1);if(g>=p&&p>0)return U=!1,!1;return await i(g,q2),K.getCachedCount()>v},u=async()=>{if(K.clear(),K.setTotal(0),P.clear(),E)E.clear();s(),R=[],Z=!1,V=void 0,T=void 0,U=!0,z=0,G=void 0,a()},x=(v,p)=>{if(K.evictDistant(v,p)>0)$2()},h=()=>{K.clear(),P.clear(),V=void 0,T=void 0,G=void 0,R=[],Z=!1,a()},e=()=>{if(K.reset(),P.clear(),E)E.clear();V=void 0,T=void 0,U=!0,z=0,G=void 0,R=[],Z=!1,a()};if($&&$.length>0)c($,0,Y??$.length);else if(Y!==void 0)K.setTotal(Y),a();return{getState:N,getTotal:o,getCached:J2,getIsLoading:k,getHasMore:O,getStorage:A,getPlaceholders:H,getItem:n,getItemById:l,getIndexById:d,isItemLoaded:M,getItemsInRange:X,setTotal:f,setItems:c,updateItem:y,removeItem:w,loadRange:i,ensureRange:L,loadInitial:F,loadMore:S,reload:u,evictDistant:x,clear:h,reset:e}};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}},z2=(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,b=$-B.time;J.velocity=b>0?D/b: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:b,horizontal:_=!1}=Q,K=!!b,E=0,W=0,P=K?_?window.innerWidth:window.innerHeight:_?J.clientWidth:J.clientHeight,Z=Q.compressed??!1,G=Q.compression,U=kJ(),V=!1,T=null,z=w2(()=>{let y=_?J.scrollLeft:J.scrollTop,w=y>=E?"down":"up";if(U=z2(U,y),E=y,B)B({scrollTop:E,direction:w,velocity:U.velocity});B2()}),I=w2(()=>{let y=J.getBoundingClientRect(),w=_?Math.max(0,-y.left):Math.max(0,-y.top),i=w>=E?"down":"up";if(U=z2(U,w),E=w,!V)V=!0;if(B)B({scrollTop:E,direction:i,velocity:U.velocity});B2()}),s=(y)=>{y.preventDefault()},a=(y)=>{if(y.deltaX)return;y.preventDefault(),J.scrollLeft+=y.deltaY},$2=(y)=>{if(!Z)return;y.preventDefault();let w=(_?y.deltaX||y.deltaY:y.deltaY)*Y,i=E+w;if(q)i=E+w*0.3;if(i=Math.max(0,Math.min(i,W)),i!==E){let F=i>=E?"down":"up";if(U=z2(U,i),E=i,!V)V=!0;if(B)B({scrollTop:E,direction:F,velocity:U.velocity});B2()}},B2=()=>{if(T)clearTimeout(T);T=setTimeout(()=>{if(V=!1,U=kJ(E),D)D()},j)},m=(y)=>{if(Z)return;if(Z=!0,G=y,W=y.virtualSize-P,K)return;if(z.cancel(),J.removeEventListener("scroll",z),!$)J.removeEventListener("wheel",s);else if(_)J.removeEventListener("wheel",a);if(_)J.style.overflowX="hidden";else J.style.overflow="hidden";if($)J.addEventListener("wheel",$2,{passive:!1});let w=_?J.scrollLeft:J.scrollTop;if(w>0){let i=_?G?.actualSize??J.scrollWidth:G?.actualSize??J.scrollHeight;E=w/i*W}if(_)J.scrollLeft=0;else J.scrollTop=0},C=()=>{if(!Z)return;if(Z=!1,K){G=void 0;return}if(J.removeEventListener("wheel",$2),_)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",z,{passive:!0}),!$)J.addEventListener("wheel",s,{passive:!1});else if(_)J.addEventListener("wheel",a,{passive:!1});if(G&&E>0){let w=E/W*(G.actualSize-P);if(_)J.scrollLeft=w;else J.scrollTop=w}G=void 0},o=()=>{if(K||Z)return E;return _?J.scrollLeft:J.scrollTop},J2=(y,w=!1)=>{let i=Math.max(0,Math.min(y,W||1/0));if(K){let L=J.getBoundingClientRect();if(_){let F=L.left+window.scrollX;window.scrollTo({left:F+i,behavior:w?"smooth":"auto"})}else{let F=L.top+window.scrollY;window.scrollTo({top:F+i,behavior:w?"smooth":"auto"})}}else if(Z){if(i===E)return;let F=i>=E?"down":"up";if(U=z2(U,i),E=i,!V)V=!0;if(B)B({scrollTop:E,direction:F,velocity:U.velocity});B2()}else if(_)J.scrollTo({left:i,behavior:w?"smooth":"auto"});else J.scrollTo({top:i,behavior:w?"smooth":"auto"})},k=(y)=>{J2(o()+y)},O=()=>{return o()<=0},N=(y=0)=>{let w=o(),i=K||Z?W:_?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return w>=i-y},A=()=>{let y=o(),w=K||Z?W:_?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(w<=0)return 0;return Math.min(1,Math.max(0,y/w))},H=(y)=>{if(y.compression)G=y.compression,W=G.virtualSize-P},n=()=>Z,l=()=>Math.abs(U.velocity),d=()=>mJ(U),M=()=>V,X=()=>K,f=(y)=>{if(P=y,G)W=G.virtualSize-P},c=()=>{if(T)clearTimeout(T);if(K)I.cancel(),window.removeEventListener("scroll",I);else z.cancel(),J.removeEventListener("scroll",z),J.removeEventListener("wheel",$2),J.removeEventListener("wheel",s),J.removeEventListener("wheel",a)};if(K){if(Z&&G)W=G.virtualSize-P;window.addEventListener("scroll",I,{passive:!0})}else if(Z&&G){if(W=G.virtualSize-P,_)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",z,{passive:!0}),!$)J.addEventListener("wheel",s,{passive:!1});else if(_)J.addEventListener("wheel",a,{passive:!1})}return{getScrollTop:o,scrollTo:J2,scrollBy:k,isAtTop:O,isAtBottom:N,getScrollPercentage:A,getVelocity:l,isTracking:d,isScrolling:M,updateConfig:H,enableCompression:m,disableCompression:C,isCompressed:n,isWindowMode:X,updateContainerHeight:f,destroy:c}},w2=(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:b=!0,hoverZoneWidth:_=16,showOnViewportEnter:K=!0}=$,E=0,W=0,P=0,Z=0,G=!1,U=!1,V=0,T=0,R=0,z=null,r=!1,I=null,s=null,a=q?"width":"height",$2=q?"translateX":"translateY",B2=q?(F)=>F.clientX:(F)=>F.clientY,m=q?"left":"top",C=document.createElement("div"),o=document.createElement("div"),J2=b?document.createElement("div"):null,k=()=>{if(C.className=`${Y}-scrollbar`,o.className=`${Y}-scrollbar-thumb`,q)C.classList.add(`${Y}-scrollbar--horizontal`);if(C.appendChild(o),J.appendChild(C),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)}},O=()=>{if(z)clearTimeout(z),z=null},N=()=>{if(!j)return;O(),z=setTimeout(H,B)},A=()=>{if(E<=W)return;if(O(),!r)C.classList.add(`${Y}-scrollbar--visible`),r=!0;if(j&&!G&&!U)N()},H=()=>{if(G||U)return;C.classList.remove(`${Y}-scrollbar--visible`),r=!1},n=(F,S)=>{E=F,W=S;let u=E>W;if(C.style.display=u?"":"none",!u){H();return}let x=W/E;P=Math.max(D,x*W),o.style[a]=`${P}px`,Z=W-P,l(R)},l=(F)=>{if(R=F,E<=W||Z<=0)return;let S=E-W,x=Math.min(1,Math.max(0,F/S))*Z;o.style.transform=`${$2}(${x}px)`},d=(F)=>{if(F.target===o)return;let S=C.getBoundingClientRect(),h=B2(F)-S[m]-P/2,v=Math.max(0,Math.min(h,Z))/Z,p=E-W,g=v*p;Q(g),A()},M=(F)=>{F.preventDefault(),F.stopPropagation(),G=!0,V=B2(F),T=R,O(),C.classList.add(`${Y}-scrollbar--dragging`),document.addEventListener("mousemove",X),document.addEventListener("mouseup",f)},X=(F)=>{if(!G)return;let S=B2(F)-V,u=Z>0?S/Z:0,x=E-W,h=u*x,e=Math.max(0,Math.min(T+h,x)),p=e/x*Z;if(o.style.transform=`${$2}(${p}px)`,s=e,I===null)I=requestAnimationFrame(()=>{if(s!==null)Q(s);I=null})},f=()=>{if(G=!1,I!==null)cancelAnimationFrame(I),I=null;if(s!==null)Q(s),s=null;if(C.classList.remove(`${Y}-scrollbar--dragging`),j&&!U)N();document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",f)},c=()=>{if(K)A()},y=()=>{if(!G){if(U=!1,j)N()}},w=()=>{U=!0,O(),A()},i=()=>{if(U=!1,!G&&j)N()},L=()=>{if(O(),I!==null)cancelAnimationFrame(I),I=null;if(C.removeEventListener("click",d),C.removeEventListener("mouseenter",w),C.removeEventListener("mouseleave",i),o.removeEventListener("mousedown",M),J.removeEventListener("mouseenter",c),J.removeEventListener("mouseleave",y),document.removeEventListener("mousemove",X),document.removeEventListener("mouseup",f),J2){if(J2.removeEventListener("mouseenter",w),J2.removeEventListener("mouseleave",i),J2.parentNode)J2.parentNode.removeChild(J2)}if(C.parentNode)C.parentNode.removeChild(C)};if(k(),C.addEventListener("click",d),C.addEventListener("mouseenter",w),C.addEventListener("mouseleave",i),o.addEventListener("mousedown",M),J.addEventListener("mouseenter",c),J.addEventListener("mouseleave",y),J2)J2.addEventListener("mouseenter",w),J2.addEventListener("mouseleave",i);return{show:A,hide:H,updateBounds:n,updatePosition:l,isVisible:()=>r,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(b){if(Q=b,b>cJ&&b<dJ)$+=b,Y++}function B(){let b=J.getTotal();if(b===0)return 0;let _=J.getItemSize();if(_<=0)return 0;let K=J.getContainerSize();if(K<=0)return 0;let E=J.getScrollPosition(),W=typeof J.getColumns==="function"?J.getColumns():1,Z=Math.ceil(b/W)*_,U=Math.min(Z,W2)-K,V=Z-K,T=U>0?V/U:1,R=E*T,z=Math.ceil((R+K)/_);return Math.min(z*W,b)}function D(){let b=J.getTotal(),_=B();return{progress:b>0?Math.min(100,Math.max(0,_/b*100)):0,velocity:Q,velocityAvg:q(),itemCount:_,total:b}}return{getState:D,onVelocity:j}}export{n2 as toggleSelection,VJ as simpleVisibleRange,S2 as selectItems,o2 as selectAll,HJ as rangesEqual,w2 as rafThrottle,qJ as needsScaling,P2 as mergeRanges,t2 as isSelected,O2 as isPlaceholderItem,bJ as isInRange,T2 as isGroupHeader,JJ as getSelectedItems,e2 as getSelectedIds,H2 as getScaleState,UJ as getScaleInfo,H2 as getScale,TJ as getRangeCount,BJ as getMaxItemsWithoutScaling,h2 as filterPlaceholders,RJ as diffRanges,f2 as deselectItems,ZJ as createTableRenderer,XJ as createTableLayout,NJ as createTableHeader,c2 as createStickyHeader,rJ as createStats,y2 as createSparseStorage,F2 as createSizeCache,s2 as createSelectionState,wJ as createScrollbar,zJ as createScrollController,k2 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,LJ as clampScrollPosition,OJ as calculateTotalSize,FJ as calculateScrollToIndex,QJ as calculateScaledVisibleRange,YJ as calculateScaledScrollToIndex,$J as calculateScaledRenderRange,A2 as calculateScaledItemPosition,WJ as calculateRenderRange,b2 as calculateMissingRanges,AJ as calculateItemOffset,jJ as calculateIndexFromScrollPosition,EJ as calculateActualSize,u2 as buildLayoutItems,W2 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.2","gzipped":"10.5"},"withGrid":{"minified":"39.1","gzipped":"14.3"},"withMasonry":{"minified":"36.8","gzipped":"13.8"},"withGroups":{"minified":"35.6","gzipped":"13.2"},"withAsync":{"minified":"40.1","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":"29.5","gzipped":"11.2"},"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.2",
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"