vlist 1.7.4 → 1.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.github.md +12 -12
- package/README.md +12 -12
- package/dist/builder/data.d.ts +1 -0
- package/dist/builder/materialize.d.ts +1 -1
- package/dist/builder/types.d.ts +9 -0
- package/dist/features/grid/renderer.d.ts +1 -1
- package/dist/features/groups/async-bridge.d.ts +68 -0
- package/dist/features/groups/feature.d.ts +2 -1
- package/dist/features/groups/index.d.ts +1 -0
- package/dist/features/groups/layout.d.ts +1 -1
- package/dist/features/groups/sticky.d.ts +1 -1
- package/dist/features/groups/types.d.ts +4 -1
- package/dist/features/masonry/renderer.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/internals.js +1 -1
- package/dist/rendering/aria.d.ts +13 -0
- package/dist/rendering/renderer.d.ts +1 -1
- package/dist/size.json +1 -1
- package/dist/types.d.ts +13 -1
- package/dist/vlist-table.css +1 -1
- package/dist/vlist.css +1 -1
- package/package.json +1 -1
package/dist/internals.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var T2=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var w2=(J,Q)=>{let $=0,j=J.length-1;while($<j){let q=$+j+1>>>1;if(J[q].headerLayoutIndex<=Q)$=q;else j=q-1}return $},x2=(J,Q)=>{let $=0,j=J.length-1;while($<j){let q=$+j+1>>>1;if(J[q].firstDataIndex<=Q)$=q;else j=q-1}return $},g2=(J,Q)=>{if(J===0)return[];let $=[],j=Q(0),q=0,Y=0;for(let B=1;B<J;B++){let G=Q(B);if(G!==j){let b=B-q;$.push({key:j,groupIndex:$.length,headerLayoutIndex:Y,firstDataIndex:q,count:b}),Y=Y+1+b,j=G,q=B}}return $.push({key:j,groupIndex:$.length,headerLayoutIndex:Y,firstDataIndex:q,count:J-q}),$},u2=(J,Q)=>{if(J.length===0||Q.length===0)return[];let $=J.length+Q.length,j=Array($),q=0;for(let Y of Q){j[q]={id:`__group_header_${Y.groupIndex}`,__groupHeader:!0,groupKey:Y.key,groupIndex:Y.groupIndex},q++;for(let B=0;B<Y.count;B++)j[q]=J[Y.firstDataIndex+B],q++}return j},m2=(J,Q,$=!1)=>{let j=typeof Q==="number"?(q)=>Q:Q;return(q)=>{let Y=J.getEntry(q);if(Y.type==="header"){if($&&Y.group.groupIndex===0)return 0;return J.getHeaderHeight(Y.group.groupIndex)}return j(Y.dataIndex)}},d2=(J,Q)=>{let $=g2(J,Q.getGroupForIndex),j=J+$.length,q=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return j},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 w=w2($,A),W=$[w];if(A===W.headerLayoutIndex)return{type:"header",group:W};let V=A-W.headerLayoutIndex-1;return{type:"item",dataIndex:W.firstDataIndex+V,group:W}},layoutToDataIndex:(A)=>{if($.length===0)return A;let w=w2($,A),W=$[w];if(A===W.headerLayoutIndex)return-1;let V=A-W.headerLayoutIndex-1;return W.firstDataIndex+V},dataToLayoutIndex:(A)=>{if($.length===0)return A;let w=x2($,A),W=$[w],V=A-W.firstDataIndex;return W.headerLayoutIndex+1+V},getGroupAtLayoutIndex:(A)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let w=w2($,A);return $[w]},getGroupAtDataIndex:(A)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let w=x2($,A);return $[w]},getHeaderHeight:typeof q==="number"?(A)=>q:(A)=>{let w=$[A];if(!w)return 0;return q(w.key,A)},rebuild:(A)=>{$=g2(A,Q.getGroupForIndex),j=A+$.length}}};var c2=(J,Q,$,j,q,Y=!1,B=0)=>{let G=Y?"width":"height",b=Y?"height":"width",O=Y?"X":"Y",X=(N,T)=>{N.style[G]=`${T}px`},L=document.createElement("div");L.className=`${q}-sticky-header`,L.setAttribute("role","presentation"),L.setAttribute("aria-hidden","true"),L.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(Y?`top:0;bottom:0;left:${B||0}px`:`top:${B||0}px`);let A=()=>{let N=document.createElement("div");return N.className="sticky-group",N.style.position="absolute",N.style.willChange="transform",N.style[b]="100%",N},w=A(),W=A();L.append(w,W),J.insertBefore(L,J.firstChild);let V=w,K=W,D=Q.groups,E=[],y=[],P=0,m=()=>{D=Q.groups,P=D.length,E=Array(P),y=Array(P);for(let N=0;N<P;N++)E[N]=$.getOffset(D[N].headerLayoutIndex),y[N]=Q.getHeaderHeight(N)};m();let I=-1,n=0,l=-1,Y2=!1,U2=0,x=!1,u=(N,T)=>{j(N,T);let c=y[T];return X(N,c),c},e=(N)=>{N.replaceChildren(),N.style.transform=""},X2=(N)=>{if(N===I)return;if(I=N,n=0,N<0||N>=P){e(V);return}n=u(V,N),X(L,n),V.style.transform=""},H=(N)=>{if(N===U2)return;U2=N;let T=Math.round(N);V.style.transform=`translate${O}(${T}px)`,K.style.transform=`translate${O}(${T+n}px)`},U=()=>{U2=0,V.style.transform="",K.style.transform=""},_=()=>{if(!x)return;let N=V;V=K,K=N,I=l,n=I>=0?y[I]:0,X(L,n),e(K),l=-1,x=!1,U()},M=()=>{if(!x)return;e(K),l=-1,x=!1,U()},C=()=>{if(Y2)return;Y2=!0,L.style.display=""},a=()=>{if(!Y2)return;Y2=!1,L.style.display="none",e(V),I=-1,n=0,M()},i=(N)=>{if(P===0){a();return}if(N<E[0]){a();return}let T=0,c=P-1;while(T<c){let k=T+c+1>>>1;if(E[k]+y[k]<=N)T=k;else c=k-1}if(!Y2)C();X2(T);let R=T+1;if(R<P){let k=E[R]-N;if(k<=0&&k>-n){if(l!==R||!x)l=R,u(K,R),x=!0;H(k)}else if(k<=-n){if(x)_()}else if(x)M()}else if(x)M()},d=()=>{m();let N=I;if(I=-1,n=0,N>=0)X2(N)},Z=()=>{L.remove(),I=-1,n=0,l=-1,Y2=!1,x=!1};return L.style.display="none",{update:i,refresh:d,show:C,hide:a,destroy:Z}};var r2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),$=J.gap??0,j=J.isHeaderFn,q={row:0,col:0},Y=(W)=>{if(W<=0)return 0;if(!j)return Math.ceil(W/Q);let V=0,K=0,D=0;for(let E=0;E<W;E++)if(j(E)){if(D++,K>0)V++,K=0;V++,K=0}else if(K++,K>=Q)V++,K=0;if(K>0)V++;return V},B=(W)=>{return q.row=G(W),q.col=b(W),q},G=(W)=>{if(!j)return Math.floor(W/Q);let V=0,K=0;for(let D=0;D<=W;D++)if(j(D)){if(K>0)V++,K=0;if(D===W)return V;V++,K=0}else{if(D===W)return V;if(K++,K>=Q)V++,K=0}return console.warn(`⚠️ getRow(${W}) fell through - returning ${V}`),V},b=(W)=>{if(!j)return W%Q;if(j(W))return 0;let V=0;for(let K=0;K<=W;K++)if(j(K))V=0;else{if(K===W)return V;if(V++,V>=Q)V=0}return V},O=(W,V,K)=>{if(K<=0)return{start:0,end:-1};if(!j){let m=Math.max(0,W*Q),I=Math.min(K-1,(V+1)*Q-1);return{start:m,end:I}}let D=-1,E=-1,y=0,P=0;for(let m=0;m<K;m++){if(j(m)){if(P>0)y++,P=0;if(y>=W&&y<=V){if(D===-1)D=m;E=m}y++,P=0}else{if(y>=W&&y<=V){if(D===-1)D=m;E=m}if(P++,P>=Q)y++,P=0}if(y>V&&P===0)break}if(D===-1)return{start:0,end:-1};return{start:D,end:E}},X=(W,V,K)=>{if(V<0||V>=Q)return-1;let D=W*Q+V;if(D<0||D>=K)return-1;return D},L=(W)=>{let V=(Q-1)*$;return Math.max(0,(W-V)/Q)};return{get columns(){return Q},get gap(){return $},update:(W)=>{if(W.columns!==void 0)Q=Math.max(1,Math.floor(W.columns));if(W.gap!==void 0)$=W.gap;if(W.isHeaderFn!==void 0)j=W.isHeaderFn},getTotalRows:Y,getPosition:B,getRow:G,getCol:b,getItemRange:O,getItemIndex:X,getColumnWidth:L,getColumnOffset:(W,V)=>{let K=L(V);return W*(K+$)}}};var M2=16000000;var l2="x",a2=20,C2="_isPlaceholder",O2="__placeholder_";var A2=(J,Q,$)=>{if(String($).startsWith(O2))return!1;let j=O2+Q;if(J.has(j))return J.delete(j),J.add($),!0;return!1},s2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),S2=(J,Q,$)=>{if($==="none")return J;let j=new Set(J.selected);if($==="single"){if(j.clear(),Q.length>0)j.add(Q[0])}else for(let q of Q)j.add(q);return{...J,selected:j}},f2=(J,Q)=>{let $=new Set(J.selected);for(let j of Q)$.delete(j);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((j)=>j.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 j of J.selected){let q=Q(j);if(q)$.push(q)}return $};var CJ=(J,Q)=>{let $=Q;return{getOffset:(j)=>j*J,getSize:(j)=>J,indexAtOffset:(j)=>{if($===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(j/J),$-1))},getTotalSize:()=>$*J,getTotal:()=>$,rebuild:(j)=>{$=j},isVariable:()=>!1}},SJ=(J,Q)=>{let $=Q,j=new Float64Array(0),q=(B)=>{$=B,j=new Float64Array(B+1),j[0]=0;for(let G=0;G<B;G++)j[G+1]=j[G]+J(G)};q(Q);let Y=(B)=>{if($===0)return 0;if(B<=0)return 0;if(B>=j[$])return $-1;let G=0,b=$-1;while(G<b){let O=G+b+1>>>1;if(j[O]<=B)G=O;else b=O-1}return G};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=$)return j[$];return j[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>Y(B),getTotalSize:()=>j[$]??0,getTotal:()=>$,rebuild:(B)=>q(B),isVariable:()=>!0}},L2=(J,Q)=>{if(typeof J==="number")return CJ(J,Q);return SJ(J,Q)},I2=(J,Q,$,j)=>{if(j===0)return 0;if(!J.isVariable())return Math.ceil($/J.getSize(0));let q=0,Y=0,B=Q;while(B<j&&Y<$)Y+=J.getSize(B),q++,B++;return Math.max(1,q)};var H2=(J,Q,$)=>{let j=Q.getTotalSize(),q=$===!0||j>M2,Y=j>M2?M2:j,B=j>0?Y/j:1;return{isCompressed:q,actualSize:j,virtualSize:Y,ratio:B}},QJ=(J,Q,$,j,q,Y)=>{if(j===0||Q===0)return Y.start=0,Y.end=-1,Y;if(!q.isCompressed||q.ratio===1){let A=$.indexAtOffset(J),w=$.indexAtOffset(J+Q);if(w<j-1)w++;return Y.start=Math.max(0,A),Y.end=Math.min(j-1,Math.max(0,w)),Y}let{virtualSize:B}=q,b=J/B*j,O=Math.floor(b),X=I2($,Math.max(0,O),Q,j),L=Math.ceil(b)+X;return Y.start=Math.max(0,O),Y.end=Math.min(j-1,Math.max(0,L)),Y},$J=(J,Q,$,j)=>{if($===0)return j.start=0,j.end=-1,j;return j.start=Math.max(0,J.start-Q),j.end=Math.min($-1,J.end+Q),j},F2=(J,Q,$,j,q,Y,B)=>{if(!Y.isCompressed||j===0)return $.getOffset(J);if(Y.ratio===1)return $.getOffset(J)-Q;let{virtualSize:G}=Y,b=Q/G,O=$.getTotalSize(),X=b*O;return $.getOffset(J)-X},YJ=(J,Q,$,j,q,Y="start")=>{if(j===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/j*q.virtualSize;let X=Q.getSize(J);switch(Y){case"center":B-=($-X)/2*q.ratio;break;case"end":B-=($-X)*q.ratio;break}return Math.max(0,B)}B=Q.getOffset(J);let G=Q.getSize(J);switch(Y){case"center":B-=($-G)/2;break;case"end":B-=$-G;break}let b=q.virtualSize-$;return Math.max(0,Math.min(B,b))},jJ=(J,Q,$,j)=>{if($===0)return 0;if(j.isCompressed&&j.ratio!==1){let q=J/j.virtualSize;return Math.floor(q*$)}return Q.indexAtOffset(J)},qJ=(J,Q)=>{if(typeof Q==="number")return J*Q>M2;return Q.getTotalSize()>M2},BJ=(J)=>{if(J<=0)return 0;return Math.floor(M2/J)},KJ=(J,Q,$)=>{let j=H2(J,Q,$);if(!j.isCompressed)return`No compression needed (${J} items, ${(j.actualSize/1e6).toFixed(2)}M px)`;return`Compressed to ${(j.ratio*100).toFixed(1)}% (${J} items, ${(j.actualSize/1e6).toFixed(1)}M px → ${(j.virtualSize/1e6).toFixed(1)}M px virtual)`};var R2=(J,Q,$)=>{let j=Array.from(Q).sort((B,G)=>B-G);if(j.length<=1)return;let q=[];for(let B=0;B<j.length;B++){let G=$(j[B]);if(G)q.push(G)}if(q.length<=1)return;let Y=J.firstChild;for(let B=0;B<q.length;B++){let G=q[B];if(G===Y)Y=Y.nextSibling;else J.insertBefore(G,Y)}};var fJ=(J=200)=>{let Q=[];return{acquire:()=>{let Y=Q.pop();if(Y)return Y;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(Y)=>{if(Y.remove(),Q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-row"),Y.removeAttribute("data-col"),Q.push(Y)},clear:()=>{Q.length=0}}},IJ=1,XJ=(J,Q,$,j,q,Y,B,G,b=!1)=>{let O=fJ(),X=new Map,L=Y,A=!1,w=0,W="",V=-1,K={selected:!1,focused:!1},D=(Z,N)=>{return K.selected=Z,K.focused=N,K},E=`${q}-item ${q}-grid-item`,y=`${q}-item--selected`,P=`${q}-item--focused`,m=`${q}-item--placeholder`,I=`${q}-item--replaced`,n=(Z,N)=>{if(typeof N==="string")Z.innerHTML=N;else Z.replaceChildren(N)},l=(Z,N,T)=>{Z.classList.toggle(y,N),Z.classList.toggle(P,T)},Y2=(Z,N)=>{let T=j.getRow(Z);if(N?.compression?.isCompressed)return F2(T,N.scrollPosition,$,N.totalItems,N.containerSize,N.compression,N.rangeStart);return $.getOffset(T)},U2=(Z,N)=>{let T=A&&j.getCol(Z)===0,c=T?0:j.getCol(Z),R=T?0:j.getColumnOffset(c,L),k;if(A){let o=j.getRow(Z),F=0,z=new Set;for(let S=0;S<Z;S++){let r=j.getRow(S);if(r<o&&!z.has(r)){let g=$.getSize(S);F+=g,z.add(r)}}k=F}else k=Y2(Z,N);if(b)return`translate(${Math.round(k)}px, ${Math.round(R)}px)`;return`translate(${Math.round(R)}px, ${Math.round(k)}px)`},x=(Z,N)=>{Z.style.transform=N},u=(Z,N)=>{let T=Z.dataset.id?.startsWith("__group_header"),c=T?L:j.getColumnWidth(L),R;if(A||T)R=$.getSize(N)-j.gap;else{let k=j.getRow(N);R=$.getSize(k)-j.gap}if(b)Z.style.width=`${R}px`,Z.style.height=`${c}px`;else Z.style.width=`${c}px`,Z.style.height=`${R}px`},e=(Z,N,T,c,R)=>{let k=O.acquire(),o=D(T,c);if(k.className=E,k.dataset.index=String(Z),k.dataset.id=String(N.id),k.dataset.row=String(j.getRow(Z)),k.dataset.col=String(j.getCol(Z)),k.ariaSelected=String(T),G)k.id=`${G}-item-${Z}`;if(B){let S=B();if(S!==V)V=S,W=String(S);k.setAttribute("aria-setsize",W),k.setAttribute("aria-posinset",String(Z+1))}u(k,Z);let F=Q(N,Z,o);if(n(k,F),String(N.id).startsWith(O2))k.classList.add(m);return l(k,T,c),x(k,R),{element:k,lastItemId:N.id,lastSelected:T,lastFocused:c,lastTransform:R,lastSeenFrame:w}},X2=(Z,N,T,c,R)=>{if(w++,N.start===0&&Z.length>0)A=T2(Z[0]);for(let[F,z]of X)if(F>=N.start&&F<=N.end)z.lastSeenFrame=w;else if(w-z.lastSeenFrame>IJ)O.release(z.element),X.delete(F);let k=!1;if(B){let F=B();if(F!==V)V=F,W=String(F),k=!0}let o=null;for(let F=N.start;F<=N.end;F++){let z=F-N.start,S=Z[z];if(!S){console.warn(`⚠️ RENDER: Missing item at index ${F} (range: ${N.start}-${N.end}, items.length: ${Z.length})`);continue}let r=T.has(S.id),g=F===c,h=X.get(F);if(h){let J2=h.lastItemId!==S.id,v=h.lastSelected!==r,f=h.lastFocused!==g;if(J2){let K2=String(h.lastItemId),Q2=String(S.id),j2=K2.startsWith(O2),N2=Q2.startsWith(O2);if(!N2&&A2(T,F,S.id))r=!0;let _2=D(r,g),s=Q(S,F,_2);if(n(h.element,s),h.element.dataset.id=Q2,h.element.dataset.row=String(j.getRow(F)),h.element.dataset.col=String(j.getCol(F)),u(h.element,F),h.element.classList.toggle(m,N2),j2&&!N2)h.element.classList.add(I),setTimeout(()=>h.element.classList.remove(I),300);h.lastItemId=S.id}if(J2||v||f)l(h.element,r,g),h.element.ariaSelected=String(r),h.lastSelected=r,h.lastFocused=g;let p=U2(F,R);if(h.lastTransform!==p)x(h.element,p),h.lastTransform=p;if(k)h.element.setAttribute("aria-setsize",W)}else{if(A2(T,F,S.id))r=!0;let J2=U2(F,R),v=e(F,S,r,g,J2);if(!o)o=document.createDocumentFragment();o.appendChild(v.element),X.set(F,v)}}if(o)J.appendChild(o)},H=(Z)=>{for(let[N,T]of X){let c=U2(N,Z);if(T.lastTransform!==c)x(T.element,c),T.lastTransform=c}},U=(Z,N,T,c)=>{let R=X.get(Z);if(!R)return;let k=D(T,c),o=Q(N,Z,k);n(R.element,o),l(R.element,T,c),R.element.dataset.id=String(N.id),R.element.ariaSelected=String(T),u(R.element,Z),R.lastItemId=N.id,R.lastSelected=T,R.lastFocused=c},_=(Z,N,T)=>{let c=X.get(Z);if(!c)return;let R=c.lastSelected!==N,k=c.lastFocused!==T;if(R||k)l(c.element,N,T),c.lastSelected=N,c.lastFocused=T},M=(Z)=>{return X.get(Z)?.element},C=(Z)=>{if(Math.abs(Z-L)<1)return;L=Z;for(let[N,T]of X){u(T.element,N);let c=U2(N);x(T.element,c),T.lastTransform=c}},a=()=>{R2(J,X.keys(),(Z)=>X.get(Z)?.element)},i=()=>{for(let[,Z]of X)O.release(Z.element);X.clear()};return{render:X2,updatePositions:H,updateItem:U,updateItemClasses:_,getElement:M,sortDOM:a,updateContainerWidth:C,clear:i,destroy:()=>{i(),O.clear()}}};var UJ=(J,Q=50,$=1/0,j=!0)=>{let q=J,Y=[],B=0,G=()=>{Y=q.map((K,D)=>({def:K,index:D,width:0,minWidth:pJ(K.minWidth??Q,1),maxWidth:K.maxWidth??$,resizable:K.resizable??j,offset:0}))},b=(K)=>{if(Y.length===0){B=0;return}let D=0,E=0;for(let y=0;y<Y.length;y++){let P=Y[y],m=P.def;if(m.width!==void 0)P.width=p2(m.width,P.minWidth,P.maxWidth),D+=P.width;else E++}if(E>0){let P=Math.max(0,K-D)/E;for(let m=0;m<Y.length;m++){let I=Y[m];if(I.def.width===void 0)I.width=p2(P,I.minWidth,I.maxWidth)}}O()},O=()=>{let K=0;for(let D=0;D<Y.length;D++){let E=Y[D];E.offset=K,K+=E.width}B=K},X=(K,D)=>{if(K<0||K>=Y.length)return 0;let E=Y[K];if(!E.resizable)return E.width;let y=p2(D,E.minWidth,E.maxWidth);return E.width=y,O(),y},L=(K)=>{return Y[K]},A=(K)=>{if(Y.length===0)return;if(K<0)return Y[0];if(K>=B)return Y[Y.length-1];let D=0,E=Y.length-1;while(D<E){let y=D+E>>>1,P=Y[y];if(K<P.offset)E=y-1;else if(K>=P.offset+P.width)D=y+1;else return P}return Y[D]},w=(K)=>{if(K<0||K>=Y.length)return 0;return Y[K].offset},W=(K)=>{if(K<0||K>=Y.length)return 0;return Y[K].width},V=(K)=>{q=K,G()};return G(),{get columns(){return Y},get totalWidth(){return B},resolve:b,updateColumns:V,resizeColumn:X,getColumn:L,getColumnAtX:A,getColumnOffset:w,getColumnWidth:W}},p2=(J,Q,$)=>Math.min($,Math.max(Q,J)),pJ=(J,Q)=>Math.max(Q,J);var NJ=(J,Q,$,j,q,Y)=>{let B=document.createElement("div");B.setAttribute("role","rowgroup");let G=document.createElement("div");G.className=`${$}-table-header`,G.setAttribute("role","row"),G.setAttribute("aria-rowindex","1"),G.style.height=`${Q}px`;let b=document.createElement("div");b.className=`${$}-table-header-scroll`,b.setAttribute("role","presentation"),G.appendChild(b),B.appendChild(G),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let O=[],X=[],L=[],A=!0,w=null,W="asc",V=null,K=!1,D=-1,E=0,y=0,P=(U,_)=>{let M=document.createElement("div");M.className=`${$}-table-header-cell`,M.setAttribute("role","columnheader"),M.setAttribute("aria-colindex",String(_+1)),M.dataset.columnKey=U.def.key;let C=U.def.align;if(C==="center")M.classList.add(`${$}-table-header-cell--center`);else if(C==="right")M.classList.add(`${$}-table-header-cell--right`);let a=document.createElement("div");a.className=`${$}-table-header-content`;let i=U.def.header?U.def.header(U.def):U.def.label;if(typeof i==="string")a.textContent=i;else a.appendChild(i);if(M.appendChild(a),U.def.sortable){let d=document.createElement("span");d.className=`${$}-table-header-sort`,d.setAttribute("aria-hidden","true"),M.appendChild(d),L.push(d),M.classList.add(`${$}-table-header-cell--sortable`)}else L.push(null);if(U.resizable){let d=document.createElement("div");d.className=`${$}-table-header-resize`,d.dataset.resizeIndex=String(_),M.appendChild(d),X.push(d)}return M},m=(U)=>{V=U,b.textContent="",O=[],X=[],L=[];let _=U.columns;for(let M=0;M<_.length;M++){let C=_[M],a=P(C,M);O.push(a),b.appendChild(a)}if(I(U),w)n(w,W)},I=(U)=>{V=U;let _=U.columns;b.style.width=`${U.totalWidth}px`;for(let M=0;M<O.length&&M<_.length;M++){let C=O[M],a=_[M];C.style.width=`${a.width}px`}},n=(U,_)=>{if(w=U,W=_,!V)return;let M=V.columns;for(let C=0;C<L.length&&C<M.length;C++){let a=L[C];if(!a)continue;if(M[C].def.key===U&&U!==null)a.textContent=_==="asc"?"▲":"▼",a.style.opacity="0.7",O[C].setAttribute("aria-sort",_==="asc"?"ascending":"descending");else a.textContent="",a.style.opacity="0",O[C].removeAttribute("aria-sort")}},l=(U)=>{b.style.transform=`translateX(${-U}px)`},Y2=(U)=>{let _=U.target;if(!_.dataset.resizeIndex)return;if(U.preventDefault(),U.stopPropagation(),D=parseInt(_.dataset.resizeIndex,10),!V)return;let M=V.getColumn(D);if(!M||!M.resizable)return;K=!0,E=U.clientX,y=M.width,J.classList.add(`${$}--col-resizing`),J.style.cursor="col-resize",_.classList.add(`${$}-table-header-resize--active`),_.setPointerCapture(U.pointerId),_.addEventListener("pointermove",U2),_.addEventListener("pointerup",x),_.addEventListener("pointercancel",x)},U2=(U)=>{if(!K||!V)return;let _=U.clientX-E;if(Math.abs(_)<1)return;let M=Math.max(0,y+_);j(D,M)},x=(U)=>{if(!K)return;let _=U.target;_.removeEventListener("pointermove",U2),_.removeEventListener("pointerup",x),_.removeEventListener("pointercancel",x);try{_.releasePointerCapture(U.pointerId)}catch{}_.classList.remove(`${$}-table-header-resize--active`),J.classList.remove(`${$}--col-resizing`),J.style.cursor="",K=!1,D=-1},u=(U)=>{let _=U.target;if(_.dataset.resizeIndex!==void 0)return;if(K)return;let M=_;while(M&&!M.dataset.columnKey)if(M=M.parentElement,M===G||M===null)return;if(!M||!M.dataset.columnKey)return;let C=M.dataset.columnKey;if(!V)return;let a=V.columns,i=-1;for(let Z=0;Z<a.length;Z++)if(a[Z].def.key===C){i=Z;break}if(i===-1)return;let d=a[i];if(Y)Y({key:C,index:i,event:U});if(d.def.sortable&&q){let Z;if(w===C)if(W==="asc")Z="desc";else Z=null;else Z="asc";q({key:C,index:i,direction:Z})}};return G.addEventListener("pointerdown",Y2),G.addEventListener("click",u),{element:G,update:I,updateSort:n,rebuild:m,show:()=>{if(A)return;A=!0,G.style.display=""},hide:()=>{if(!A)return;A=!1,G.style.display="none"},destroy:()=>{G.removeEventListener("pointerdown",Y2),G.removeEventListener("click",u),J.style.removeProperty("--vlist-table-header-height"),B.remove(),O=[],X=[],L=[],V=null,A=!1},syncScroll:l}};var hJ=()=>{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,$,j,q,Y,B,G,b)=>{let O=hJ(),X=new Map,L=-1,A=$,w=null,W=null,V=null,K=(F,z)=>{W=F,V=z},D=(F,z)=>{if(z)F.setAttribute("aria-selected","true");else F.removeAttribute("aria-selected")},E=(F,z,S,r)=>{F.setAttribute("role",z),F.setAttribute("data-id",String(S)),F.setAttribute("data-index",String(r))},y=(F)=>String(F).startsWith("__placeholder_"),P=`${q}-item ${q}-table-row`,m=`${q}-item--selected`,I=`${q}-item--focused`,n=`${q}-table-cell`,l=`${q}-table-cell--center`,Y2=`${q}-table-cell--right`,U2=`${q}-item--odd`,x=`${q}-item--placeholder`,u=`${q}-item--replaced`,e=`${q}-item ${q}-table-row ${q}-table-group-header`,X2=`${q}-table-group-header-content`,H=(F,z,S,r,g=!1)=>{if(S.def.cell){let h=S.def.cell(z,S.def,r);if(typeof h==="string")F.innerHTML=h;else F.replaceChildren(h)}else{let h=z[S.def.key],J2=h!=null?String(h):"";if(g&&J2)F.innerHTML=`<span>${J2}</span>`;else F.textContent=J2}},U=(F,z,S,r,g=!1)=>{let h=P;if(G){if(w){let J2=w(z);if(J2>=0&&(J2&1)===1)h+=` ${U2}`}else if((z&1)===1)h+=` ${U2}`}if(g)h+=` ${x}`;if(S)h+=` ${m}`;if(r)h+=` ${I}`;F.className=h},_=(F,z,S)=>{if(S?.compression?.isCompressed)return Math.round(F2(F,S.scrollPosition,z,S.totalItems,S.containerSize,S.compression,S.rangeStart));return z.getOffset(F)},M=(F,z)=>{let S=z.def.align;if(S==="center")F.classList.add(l),F.classList.remove(Y2);else if(S==="right")F.classList.add(Y2),F.classList.remove(l);else F.classList.remove(l,Y2)},C=(F,z)=>{let r=A.columns.length;if(z.length===r)return z;let g=[];for(let h=0;h<r;h++){let J2;if(h<z.length)J2=z[h];else J2=document.createElement("div"),J2.className=n,F.appendChild(J2);g.push(J2)}for(let h=r;h<z.length;h++)z[h].remove();return g},a=(F,z,S,r)=>{let g=O.acquire(),h=F,J2=S.getSize(z),v=_(z,S,r);g.style.cssText=`width:${A.totalWidth}px;height:${J2}px;transform:translateY(${v}px)`,g.className=e,E(g,"presentation",F.id,z),g.removeAttribute("aria-selected"),g.removeAttribute("aria-rowindex"),g.replaceChildren();let f=document.createElement("div");if(f.className=X2,V){let p=V(h.groupKey,h.groupIndex);if(typeof p==="string")f.innerHTML=p;else f.appendChild(p)}return g.appendChild(f),{element:g,cells:[],index:z,isGroupHeader:!0,lastItemId:F.id,lastSelected:!1,lastFocused:!1,lastOffset:v,lastHeight:J2}},i=(F,z,S,r,g,h)=>{let J2=O.acquire(),v=g.getSize(z),f=_(z,g,h),p=y(F.id);J2.style.cssText=`width:${A.totalWidth}px;height:${v}px;transform:translateY(${f}px)`,U(J2,z,S,r,p),E(J2,"row",F.id,z),J2.id=`${Y}-${z}`,J2.setAttribute("aria-rowindex",String(z+2)),D(J2,S);let K2=C(J2,[]),Q2=A.columns;for(let j2=0;j2<K2.length&&j2<Q2.length;j2++){let N2=K2[j2],_2=Q2[j2];N2.style.cssText=`left:${_2.offset}px;width:${_2.width}px`,N2.setAttribute("role","gridcell"),N2.setAttribute("aria-colindex",String(j2+1)),M(N2,_2),H(N2,F,_2,z,p)}return{element:J2,cells:K2,index:z,isGroupHeader:!1,lastItemId:F.id,lastSelected:S,lastFocused:r,lastOffset:f,lastHeight:v}},d=(F,z,S,r,g)=>{for(let[p,K2]of X)if(p<z.start||p>z.end)O.release(K2.element),X.delete(p);let h=!1,J2=B();if(J2!==L)L=J2,h=!0;let v=null,f=Q();w=typeof G==="string"&&b?b():null;for(let p=z.start;p<=z.end;p++){let K2=p-z.start,Q2=F[K2];if(!Q2)continue;let j2=S.has(Q2.id),N2=p===r,_2=W?W(Q2):!1,s=X.get(p);if(s){if(s.isGroupHeader!==_2){O.release(s.element),X.delete(p);let B2=_2?a(Q2,p,f,g):i(Q2,p,j2,N2,f,g);if(X.set(p,B2),!v)v=document.createDocumentFragment();v.appendChild(B2.element);continue}if(_2){if(s.lastItemId!==Q2.id){let q2=Q2,$2=s.element.firstElementChild;if($2&&V){let G2=V(q2.groupKey,q2.groupIndex);if(typeof G2==="string")$2.innerHTML=G2;else $2.replaceChildren(G2)}s.element.setAttribute("data-id",String(Q2.id)),s.lastItemId=Q2.id}let D2=_(p,f,g);if(s.lastOffset!==D2)s.lastOffset=D2,s.element.style.transform=`translateY(${D2}px)`;let t=f.getSize(p);if(s.lastHeight!==t)s.lastHeight=t,s.element.style.height=`${t}px`}else{let B2=s.lastItemId!==Q2.id,D2=s.lastSelected!==j2,t=s.lastFocused!==N2;if(B2){let G2=s.lastItemId!=null&&y(s.lastItemId),Z2=y(Q2.id);if(!Z2&&A2(S,p,Q2.id))j2=!0;let V2=A.columns;for(let W2=0;W2<s.cells.length&&W2<V2.length;W2++)H(s.cells[W2],Q2,V2[W2],p,Z2);if(U(s.element,p,j2,N2,Z2),s.element.setAttribute("data-id",String(Q2.id)),D(s.element,j2),G2&&!Z2)s.element.classList.add(u),setTimeout(()=>{s.element.classList.remove(u)},300);s.lastItemId=Q2.id,s.lastSelected=j2,s.lastFocused=N2}else if(D2||t)U(s.element,p,j2,N2,y(Q2.id)),D(s.element,j2),s.lastSelected=j2,s.lastFocused=N2;let q2=_(p,f,g);if(s.lastOffset!==q2)s.lastOffset=q2,s.element.style.transform=`translateY(${q2}px)`;let $2=f.getSize(p);if(s.lastHeight!==$2)s.lastHeight=$2,s.element.style.height=`${$2}px`;if(h)s.element.setAttribute("aria-rowindex",String(p+2))}}else{if(A2(S,p,Q2.id))j2=!0;let B2=_2?a(Q2,p,f,g):i(Q2,p,j2,N2,f,g);if(X.set(p,B2),!v)v=document.createDocumentFragment();v.appendChild(B2.element)}}if(v)J.appendChild(v)},Z=(F)=>{let z=Q();for(let[S,r]of X){let g=_(S,z,F);if(r.lastOffset!==g)r.lastOffset=g,r.element.style.transform=`translateY(${g}px)`}},N=(F,z,S,r)=>{let g=X.get(F);if(!g)return;if(g.isGroupHeader)return;let h=A.columns;for(let J2=0;J2<g.cells.length&&J2<h.length;J2++)H(g.cells[J2],z,h[J2],F);g.element.setAttribute("data-id",String(z.id)),g.lastItemId=z.id,U(g.element,F,S,r),D(g.element,S),g.lastSelected=S,g.lastFocused=r},T=(F,z,S)=>{let r=X.get(F);if(!r)return;if(r.isGroupHeader)return;let g=r.lastSelected!==z,h=r.lastFocused!==S;if(g||h)U(r.element,F,z,S),D(r.element,z),r.lastSelected=z,r.lastFocused=S},c=(F)=>{A=F;let z=F.columns;for(let[,S]of X)if(S.element.style.width=`${F.totalWidth}px`,S.cells.length>0)for(let r=0;r<S.cells.length&&r<z.length;r++){let g=S.cells[r],h=z[r];g.style.left=`${h.offset}px`,g.style.width=`${h.width}px`}},R=(F)=>{return X.get(F)?.element},k=()=>{for(let[,F]of X)O.release(F.element);X.clear(),L=-1};return{render:d,updatePositions:Z,updateItem:N,updateItemClasses:T,getElement:R,updateColumnLayout:c,setGroupHeaderFn:K,clear:k,destroy:()=>{k(),O.clear()}}};var GJ=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),$=J.gap??0,j=J.containerSize,q=0,Y=[],B=()=>{let K=(Q-1)*$;q=Math.max(0,(j-K)/Q),Y=Array(Q);let D=q+$;for(let E=0;E<Q;E++)Y[E]=E*D};B();let G=[],b=0,O=[],X=(K)=>{let D=0,E=K[0];for(let y=1;y<K.length;y++){let P=K[y];if(P<E)E=P,D=y}return D},L=(K,D)=>{if(K<=0)return b=0,G=[],[];let E=Array(Q).fill(0),y=Array(Q);for(let I=0;I<Q;I++)y[I]=[];let P=Array(K);for(let I=0;I<K;I++){let n=X(E),l=D(I),Y2=E[n];P[I]={index:I,x:Y[n],y:Y2,lane:n,size:l,crossSize:q},y[n].push(I),E[n]=Y2+l+$}G=y;let m=0;for(let I=0;I<Q;I++){let n=E[I],l=n>0?n-$:0;if(l>m)m=l}return b=m,P},A=(K)=>{if(K.length===0)return b>0?b:0;if(b>0)return b;let D=Array(Q).fill(0);for(let y of K){let P=y.y+y.size,m=D[y.lane];if(P>m)D[y.lane]=P}let E=0;for(let y=0;y<Q;y++)if(D[y]>E)E=D[y];return E},w=(K,D,E)=>{if(K.length===0||E<=D)return O.length=0,O;if(G.length===0||G.length!==Q)return W(K,D,E);O.length=0;for(let y=0;y<Q;y++){let P=G[y],m=P.length;if(m===0)continue;let I=0,n=m;while(I<n){let l=I+n>>>1,Y2=K[P[l]];if(Y2.y+Y2.size<=D)I=l+1;else n=l}for(let l=I;l<m;l++){let Y2=K[P[l]];if(Y2.y>=E)break;O.push(Y2)}}return O},W=(K,D,E)=>{let y=[];for(let P of K)if(P.y+P.size>D&&P.y<E)y.push(P);return y};return{get columns(){return Q},get gap(){return $},get containerSize(){return j},update:(K)=>{let D=!1;if(K.columns!==void 0){let E=Math.max(1,Math.floor(K.columns));if(E!==Q)Q=E,D=!0}if(K.gap!==void 0&&K.gap!==$)$=K.gap,D=!0;if(K.containerSize!==void 0&&K.containerSize!==j)j=K.containerSize,D=!0;if(D)B()},calculateLayout:L,getTotalSize:A,getVisibleItems:w}};var xJ=(J=200)=>{let Q=[];return{acquire:()=>{let Y=Q.pop();if(Y)return Y;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(Y)=>{if(Y.remove(),Q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-lane"),Q.push(Y)},clear:()=>{Q.length=0}}},gJ=1,_J=(J,Q,$,j=!1,q,Y)=>{let B=xJ(),G=new Map,b=new Set,O=0,X="",L=-1,A={selected:!1,focused:!1},w=(x,u)=>{return A.selected=x,A.focused=u,A},W=`${$}-item ${$}-masonry-item`,V=`${$}-item--selected`,K=`${$}-item--focused`,D=(x,u)=>{if(typeof u==="string")x.innerHTML=u;else x.replaceChildren(u)},E=(x,u,e)=>{x.classList.toggle(V,u),x.classList.toggle(K,e)},y=(x,u)=>{if(j)x.style.transform=`translate(${Math.round(u.y)}px, ${Math.round(u.x)}px)`;else x.style.transform=`translate(${Math.round(u.x)}px, ${Math.round(u.y)}px)`},P=(x,u)=>{if(j)x.style.width=`${u.size}px`,x.style.height=`${u.crossSize}px`;else x.style.width=`${u.crossSize}px`,x.style.height=`${u.size}px`},m=(x,u,e,X2,H)=>{let U=B.acquire(),_=w(X2,H);if(U.className=W,U.dataset.index=String(x),U.dataset.id=String(u.id),U.dataset.lane=String(e.lane),U.ariaSelected=String(X2),Y)U.id=`${Y}-item-${x}`;if(q){let C=q();if(C!==L)L=C,X=String(C);U.setAttribute("aria-setsize",X),U.setAttribute("aria-posinset",String(x+1))}P(U,e);let M=Q(u,x,_);return D(U,M),E(U,X2,H),y(U,e),{element:U,lastItemId:u.id,lastSelected:X2,lastFocused:H,lastY:e.y,lastX:e.x,lastSize:e.size,lastCrossSize:e.crossSize,lastSeenFrame:O}},I=(x,u,e,X2)=>{O++,b.clear();for(let U=0;U<u.length;U++)b.add(u[U].index);for(let[U,_]of G)if(b.has(U))_.lastSeenFrame=O;else if(O-_.lastSeenFrame>gJ)B.release(_.element),G.delete(U);let H=null;for(let U=0;U<u.length;U++){let _=u[U],M=_.index,C=x(M);if(!C)continue;let a=e.has(C.id),i=M===X2,d=G.get(M);if(d){let Z=d.lastItemId!==C.id,N=d.lastSelected!==a,T=d.lastFocused!==i,c=d.lastY!==_.y||d.lastX!==_.x,R=d.lastSize!==_.size||d.lastCrossSize!==_.crossSize;if(Z){let k=w(a,i),o=Q(C,M,k);D(d.element,o),d.element.dataset.id=String(C.id),d.lastItemId=C.id}if(Z||N||T)E(d.element,a,i),d.element.ariaSelected=String(a),d.lastSelected=a,d.lastFocused=i;if(R)P(d.element,_),d.lastSize=_.size,d.lastCrossSize=_.crossSize;if(c)y(d.element,_),d.lastY=_.y,d.lastX=_.x}else{let Z=m(M,C,_,a,i);if(!H)H=document.createDocumentFragment();H.appendChild(Z.element),G.set(M,Z)}}if(H)J.appendChild(H)},n=()=>{for(let{element:x}of G.values())B.release(x);G.clear(),J.innerHTML=""};return{render:I,getElement:(x)=>G.get(x)?.element,updateItemClasses:(x,u,e)=>{let X2=G.get(x);if(!X2)return;let H=X2.lastSelected!==u,U=X2.lastFocused!==e;if(H||U)E(X2.element,u,e),X2.lastSelected=u,X2.lastFocused=e},sortDOM:()=>{R2(J,G.keys(),(x)=>G.get(x)?.element)},clear:n,destroy:()=>{n(),B.clear()}}};var DJ=(J,Q)=>{let $=new Map,j=(Y)=>{let B=$.get(Y);return B!==void 0?B:J},q=L2(j,Q);return{getOffset(Y){return q.getOffset(Y)},getSize(Y){return j(Y)},indexAtOffset(Y){return q.indexAtOffset(Y)},getTotalSize(){return q.getTotalSize()},getTotal(){return q.getTotal()},rebuild(Y){if(Y<q.getTotal()){for(let B of $.keys())if(B>=Y)$.delete(B)}q=L2(j,Y)},isVariable(){return!0},setMeasuredSize(Y,B){$.set(Y,B)},isMeasured(Y){return $.has(Y)},getEstimatedSize(){return J},measuredCount(){return $.size}}};var VJ=(J,Q,$,j,q,Y)=>{if(j===0||Q===0)return Y.start=0,Y.end=-1,Y;let B=$.indexAtOffset(J),G=$.indexAtOffset(J+Q);if(G<j-1)G++;return Y.start=Math.max(0,B),Y.end=Math.min(j-1,Math.max(0,G)),Y},WJ=(J,Q,$,j)=>{if($===0)return j.start=0,j.end=-1,j;return j.start=Math.max(0,J.start-Q),j.end=Math.min($-1,J.end+Q),j},MJ=(J,Q,$,j,q,Y)=>{if(j===0)return 0;let B=Math.max(0,Math.min(J,j-1)),G=Q.getOffset(B),b=Q.getSize(B),O=Q.getTotalSize(),X=Math.max(0,O-$),L;switch(Y){case"center":L=G-$/2+b/2;break;case"end":L=G-$+b;break;case"start":default:L=G;break}return Math.max(0,Math.min(L,X))},OJ=(J,Q,$)=>{if($&&$.isCompressed)return $.virtualSize;return Q.getTotalSize()},EJ=(J,Q)=>{return Q.getTotalSize()},AJ=(J,Q)=>{return Q.getOffset(J)},FJ=(J,Q,$)=>{let j=Math.max(0,Q-$);return Math.max(0,Math.min(J,j))};var LJ=(J,Q,$,j,q="start",Y,B=MJ)=>{return B(J,Q,$,j,Y,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 $=[],j=[];for(let q=J.start;q<=J.end;q++)if(q<Q.start||q>Q.end)j.push(q);for(let q=Q.start;q<=Q.end;q++)if(q<J.start||q>J.end)$.push(q);return{add:$,remove:j}};var yJ=()=>{let J={},Q=(Y,B)=>{if(!J[Y])J[Y]=new Set;return J[Y].add(B),()=>$(Y,B)},$=(Y,B)=>{J[Y]?.delete(B)};return{on:Q,off:$,emit:(Y,B)=>{J[Y]?.forEach((G)=>{try{G(B)}catch(b){console.error(`[vlist] Error in event handler for "${String(Y)}":`,b)}})},clear:(Y)=>{if(Y)delete J[Y];else for(let B in J)delete J[B]}}};var y2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:$=5000,evictionBuffer:j=200,onEvict:q}=J,Y=new Map,B=0,G=0,b=(H)=>{let U=Y.get(H);if(!U)U={items:Array(Q),count:0,lastAccess:Date.now()},Y.set(H,U);else U.lastAccess=Date.now();return U},O=(H)=>{return Math.floor(H/Q)},X=(H)=>{return H%Q},L=()=>B,A=(H)=>{B=H},w=(H)=>{if(H<0||H>=B)return;let U=O(H),_=Y.get(U);if(!_)return;return _.items[X(H)]},W=(H)=>{if(H<0||H>=B)return!1;let U=O(H),_=Y.get(U);if(!_)return!1;return _.items[X(H)]!==void 0},V=(H,U)=>{let _=O(H),M=b(_),C=X(H),a=M.items[C]===void 0;if(M.items[C]=U,a)M.count++,G++;if(H>=B)B=H+1},K=(H,U)=>{for(let _=0;_<U.length;_++){let M=U[_];if(M!==void 0)V(H+_,M)}},D=(H)=>{if(H<0||H>=B)return!1;let U=O(H),_=Y.get(U),M=X(H);if(!(_!==void 0&&_.items[M]!==void 0))return!1;let a=U,i=Array.from(Y.keys()).filter((Z)=>Z>=a).sort((Z,N)=>Z-N),d=[];for(let Z of i){let N=Y.get(Z),T=Z*Q;for(let c=0;c<Q;c++){if(N.items[c]===void 0)continue;let R=T+c;if(R<=H)continue;d.push({oldIndex:R,item:N.items[c]})}}if(_.items[M]=void 0,_.count--,G--,_.count===0)Y.delete(U);for(let{oldIndex:Z}of d){let N=O(Z),T=Y.get(N);if(!T)continue;let c=X(Z);if(T.items[c]!==void 0){if(T.items[c]=void 0,T.count--,G--,T.count===0)Y.delete(N)}}for(let{oldIndex:Z,item:N}of d){let T=Z-1,c=O(T),R=b(c),k=X(T);R.items[k]=N,R.count++,G++}return B--,!0},E=(H,U)=>{let _=[];for(let M=H;M<=U&&M<B;M++)_.push(w(M));return _},y=(H,U)=>{for(let _=H;_<=U&&_<B;_++)if(!W(_))return!1;return!0},P=()=>{let H=[],U=null,_=Array.from(Y.keys()).sort((M,C)=>M-C);for(let M of _){let C=Y.get(M);if(!C)continue;let a=M*Q;for(let i=0;i<Q;i++){let d=a+i;if(d>=B)break;if(C.items[i]!==void 0)if(U===null)U={start:d,end:d};else if(d===U.end+1)U.end=d;else H.push(U),U={start:d,end:d};else if(U!==null)H.push(U),U=null}}if(U!==null)H.push(U);return H},m=(H,U)=>{let _=[],M=null;for(let C=H;C<=U&&C<B;C++)if(!W(C))if(M===null)M={start:C,end:C};else M.end=C;else if(M!==null)_.push(M),M=null;if(M!==null)_.push(M);return _},I=(H)=>{return Y.has(H)},n=(H)=>{let U=Y.get(H);if(U)U.lastAccess=Date.now()},l=(H,U)=>{if(H>U||Y.size===0)return;let _=Date.now(),M=O(Math.max(0,H)),C=O(Math.min(B-1,U));for(let a=M;a<=C;a++){let i=Y.get(a);if(i)i.lastAccess=_}},Y2=(H,U)=>{if(G<=$)return 0;let _=Math.max(0,H-j),M=Math.min(B-1,U+j),C=O(_),a=O(M),i=0,d=[];for(let[Z,N]of Y)if(Z<C||Z>a)i+=N.count,d.push(Z),G-=N.count,Y.delete(Z);if(i>0&&q)q(i,d);return i},U2=()=>{if(G<=$)return 0;let H=Array.from(Y.entries()).sort(([,M],[,C])=>M.lastAccess-C.lastAccess),U=0,_=[];for(let[M,C]of H){if(G<=$)break;U+=C.count,G-=C.count,_.push(M),Y.delete(M)}if(U>0&&q)q(U,_);return U},x=()=>{return{totalItems:B,cachedItems:G,cachedChunks:Y.size,chunkSize:Q,maxCachedItems:$,memoryEfficiency:B>0?1-G/B:1}},u=()=>G,e=()=>{Y.clear(),G=0};return{chunkSize:Q,maxCachedItems:$,getTotal:L,setTotal:A,get:w,has:W,set:V,setRange:K,delete:D,getRange:E,isRangeLoaded:y,getLoadedRanges:P,findUnloadedRanges:m,getChunkIndex:O,isChunkLoaded:I,touchChunk:n,touchChunksForRange:l,evictDistant:Y2,evictToLimit:U2,getStats:x,getCachedCount:u,clear:e,reset:()=>{e(),B=0}}},P2=(J)=>{if(J.length===0)return[];let Q=[...J].sort((j,q)=>j.start-q.start),$=[{...Q[0]}];for(let j=1;j<Q.length;j++){let q=Q[j],Y=$[$.length-1];if(q.start<=Y.end+1)Y.end=Math.max(Y.end,q.end);else $.push({...q})}return $},b2=(J,Q,$)=>{let j=Math.floor(J.start/$)*$,q=Math.ceil((J.end+1)/$)*$-1,Y={start:j,end:q};if(Q.length===0)return[Y];let B=[],G=P2(Q),b=Y.start;for(let O of G){if(O.end<b)continue;if(O.start>Y.end)break;if(O.start>b)B.push({start:b,end:Math.min(O.start-1,Y.end)});if(b=O.end+1,b>Y.end)break}if(b<=Y.end)B.push({start:b,end:Y.end});return B};var k2=(J={})=>{let{maskCharacter:Q=l2,maxSampleSize:$=a2}=J,j=[],q=!1,Y=(X)=>{if(q||X.length===0)return;let L=Math.min(X.length,$);for(let A=0;A<L;A++){let w=X[A];if(!w||typeof w!=="object")continue;let W={};for(let[V,K]of Object.entries(w)){if(V.startsWith("_")||V==="id")continue;W[V]=String(K??"").length}if(Object.keys(W).length>0)j.push(W)}q=!0},B=()=>q,G=(X)=>{let L={id:`${O2}${X}`,[C2]:!0,_index:X};if(j.length===0)return L.label=Q.repeat(12),L;let A=j[X%j.length];for(let[w,W]of Object.entries(A))L[w]=Q.repeat(Math.max(1,W));return L};return{analyzeStructure:Y,hasAnalyzedStructure:B,generate:G,generateRange:(X,L)=>{let A=[];for(let w=X;w<=L;w++)A.push(G(w));return A},clear:()=>{j=[],q=!1}}},E2=(J)=>{if(!J||typeof J!=="object")return!1;return J[C2]===!0},h2=(J)=>{return J.filter((Q)=>!E2(Q))};var mJ=50,PJ=(J={})=>{let{adapter:Q,initialItems:$,initialTotal:j,storage:q,placeholder:Y,pageSize:B=mJ,onStateChange:G,onItemsLoaded:b,onItemsEvicted:O}=J,X=y2({...q,onEvict:(v,f)=>{O?.(v),l()}}),L=null,A=()=>{if(!L)L=k2(Y);return L},w=new Map,W=!1,V,K=!0,D,E,y=[],P=0,m=new Map,I=new Map,n=()=>{for(let v of I.values())v.abort();I.clear(),m.clear()},l=()=>{G?.(_())},Y2=()=>{w.clear();let v=X.getLoadedRanges();for(let f of v)for(let p=f.start;p<=f.end;p++){let K2=X.get(p);if(K2&&!E2(K2))w.set(K2.id,p)}},U2=(v,f)=>{if(!E2(f))w.set(f.id,v)},x=(v)=>{w.delete(v)},u=(v,f)=>{return`${v}-${f}`},e=()=>X.getTotal(),X2=()=>X.getCachedCount(),H=()=>W,U=()=>K,_=()=>({total:X.getTotal(),cached:X.getCachedCount(),isLoading:W,pendingRanges:y,error:V,hasMore:K,cursor:D}),M=()=>X,C=()=>A(),a=(v)=>{let f=X.get(v);if(f!==void 0)return f;if(v>=0&&v<X.getTotal())return A().generate(v);return},i=(v)=>{let f=w.get(v);if(f===void 0)return;return X.get(f)},d=(v)=>{return w.get(v)??-1},Z=(v)=>{let f=X.get(v);return f!==void 0&&!E2(f)},N=(v,f)=>{let p=[],K2=X.getTotal(),Q2=0,j2=0;X.touchChunksForRange(v,Math.min(f,K2-1));for(let N2=v;N2<=f&&N2<K2;N2++){let _2=X.get(N2);if(_2!==void 0)p.push(_2),Q2++;else p.push(A().generate(N2)),j2++}return p},T=(v)=>{X.setTotal(v),K=X.getCachedCount()<v,l()},c=(v,f=0,p)=>{if(Q&&v.length>0){let K2=A();if(!K2.hasAnalyzedStructure())K2.analyzeStructure(v)}for(let K2=0;K2<v.length;K2++){let Q2=v[K2];if(Q2!==void 0){let j2=f+K2;X.set(j2,Q2),U2(j2,Q2)}}if(p!==void 0)X.setTotal(p);else if(f+v.length>X.getTotal())X.setTotal(f+v.length);if(X.getCachedCount()>=X.getTotal()&&X.getTotal()>0)K=!1;l(),b?.(v,f,X.getTotal())},R=(v,f)=>{let p=X.get(v);if(!p)return!1;let K2=p.id,Q2={...p,...f};if(X.set(v,Q2),f.id!==void 0&&f.id!==K2)x(K2);return U2(v,Q2),l(),!0},k=(v)=>{let f=w.get(v);if(f===void 0)return!1;if(!X.delete(f))return!1;return Y2(),n(),l(),!0},o=async(v,f)=>{if(!Q)return;let p=u(v,f);if(m.has(p))return;let K2=X.getLoadedRanges(),Q2=b2({start:v,end:f},K2,X.chunkSize);if(Q2.length===0)return;let j2=X.chunkSize,N2=j2*2;for(let[B2,D2]of I){let t=B2.indexOf("-"),q2=parseInt(B2.slice(0,t),10);if(Math.abs(q2-v)>N2)D2.abort(),I.delete(B2),m.delete(B2)}let _2=[];for(let B2 of Q2){let D2=Math.floor(B2.start/j2),t=Math.floor(B2.end/j2);for(let q2=D2;q2<=t;q2++){let $2=q2*j2,G2=$2+j2-1,Z2=u($2,G2);if(!_2.some((V2)=>V2.start===$2)&&!m.has(Z2))_2.push({start:$2,end:G2})}}let s=[];for(let B2 of Q2){let D2=Math.floor(B2.start/j2),t=Math.floor(B2.end/j2);for(let q2=D2;q2<=t;q2++){let $2=q2*j2,G2=$2+j2-1,Z2=u($2,G2);if(m.has(Z2)){let V2=m.get(Z2);if(!s.includes(V2))s.push(V2)}}}for(let B2 of _2){let D2=u(B2.start,B2.end),t=new AbortController;I.set(D2,t);let q2=(async()=>{y.push(B2),W=!0,V=void 0,l();try{let $2=B2.end-B2.start+1,G2={offset:B2.start,limit:$2,cursor:B2.start===E?D:void 0,signal:t.signal},Z2=await Q.read(G2);if(c(Z2.items,B2.start,Z2.total),Z2.cursor)D=Z2.cursor,E=B2.start+Z2.items.length;let V2=B2.start+Z2.items.length;if(V2>=P){if(P=V2,Z2.hasMore!==void 0)K=Z2.hasMore;else if(Z2.total!==void 0)K=V2<Z2.total}}catch($2){if($2?.name==="AbortError")return;V=$2 instanceof Error?$2:Error(String($2))}finally{m.delete(D2),I.delete(D2),y=y.filter(($2)=>$2.start!==B2.start||$2.end!==B2.end),W=m.size>0,l()}})();m.set(D2,q2),s.push(q2)}await Promise.all(s)},F=async(v,f)=>{if(X.isRangeLoaded(v,f))return;await o(v,f)},z=async()=>{if(!Q)return;await o(0,B-1)},S=async()=>{if(!Q||W||!K)return!1;let v=X.getCachedCount(),f=X.getTotal(),p=v,K2=Math.min(p+B-1,f>0?f-1:p+B-1);if(p>=f&&f>0)return K=!1,!1;return await o(p,K2),X.getCachedCount()>v},r=async()=>{if(X.clear(),X.setTotal(0),w.clear(),L)L.clear();n(),y=[],W=!1,D=void 0,E=void 0,K=!0,P=0,V=void 0,l()},g=(v,f)=>{if(X.evictDistant(v,f)>0)Y2()},h=()=>{X.clear(),w.clear(),D=void 0,E=void 0,V=void 0,y=[],W=!1,l()},J2=()=>{if(X.reset(),w.clear(),L)L.clear();D=void 0,E=void 0,K=!0,P=0,V=void 0,y=[],W=!1,l()};if($&&$.length>0)c($,0,j??$.length);else if(j!==void 0)X.setTotal(j),l();return{getState:_,getTotal:e,getCached:X2,getIsLoading:H,getHasMore:U,getStorage:M,getPlaceholders:C,getItem:a,getItemById:i,getIndexById:d,isItemLoaded:Z,getItemsInRange:N,setTotal:T,setItems:c,updateItem:R,removeItem:k,loadRange:o,ensureRange:F,loadInitial:z,loadMore:S,reload:r,evictDistant:g,clear:h,reset:J2}};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(),j=$-J.lastTime;if(j===0)return J;if(j>100){J.sampleCount=0,J.sampleIndex=0,J.velocity=0;let Y=J.samples[0];return Y.position=Q,Y.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 Y=(J.sampleIndex-J.sampleCount+8)%8,B=J.samples[Y],G=Q-B.position,b=$-B.time;J.velocity=b>0?G/b:0}return J.lastPosition=Q,J.lastTime=$,J},dJ=(J)=>J.sampleCount>=3,zJ=(J,Q={})=>{let{wheel:$=!0,sensitivity:j=1,smoothing:q=!1,idleTimeout:Y=150,onScroll:B,onIdle:G,scrollElement:b,horizontal:O=!1}=Q,X=!!b,L=0,A=0,w=X?O?window.innerWidth:window.innerHeight:O?J.clientWidth:J.clientHeight,W=Q.compressed??!1,V=Q.compression,K=kJ(),D=!1,E=null,P=v2(()=>{let R=O?J.scrollLeft:J.scrollTop,k=R>=L?"down":"up";if(K=z2(K,R),L=R,B)B({scrollTop:L,direction:k,velocity:K.velocity});U2()}),I=v2(()=>{let R=J.getBoundingClientRect(),k=O?Math.max(0,-R.left):Math.max(0,-R.top),o=k>=L?"down":"up";if(K=z2(K,k),L=k,!D)D=!0;if(B)B({scrollTop:L,direction:o,velocity:K.velocity});U2()}),n=(R)=>{R.preventDefault()},l=(R)=>{if(R.deltaX)return;R.preventDefault(),J.scrollLeft+=R.deltaY},Y2=(R)=>{if(!W)return;R.preventDefault();let k=(O?R.deltaX||R.deltaY:R.deltaY)*j,o=L+k;if(q)o=L+k*0.3;if(o=Math.max(0,Math.min(o,A)),o!==L){let z=o>=L?"down":"up";if(K=z2(K,o),L=o,!D)D=!0;if(B)B({scrollTop:L,direction:z,velocity:K.velocity});U2()}},U2=()=>{if(E)clearTimeout(E);E=setTimeout(()=>{if(D=!1,K=kJ(L),G)G()},Y)},x=(R)=>{if(W)return;if(W=!0,V=R,A=R.virtualSize-w,X)return;if(P.cancel(),J.removeEventListener("scroll",P),!$)J.removeEventListener("wheel",n);else if(O)J.removeEventListener("wheel",l);if(O)J.style.overflowX="hidden";else J.style.overflow="hidden";if($)J.addEventListener("wheel",Y2,{passive:!1});let k=O?J.scrollLeft:J.scrollTop;if(k>0){let o=O?V?.actualSize??J.scrollWidth:V?.actualSize??J.scrollHeight;L=k/o*A}if(O)J.scrollLeft=0;else J.scrollTop=0},u=()=>{if(!W)return;if(W=!1,X){V=void 0;return}if(J.removeEventListener("wheel",Y2),O)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",P,{passive:!0}),!$)J.addEventListener("wheel",n,{passive:!1});else if(O)J.addEventListener("wheel",l,{passive:!1});if(V&&L>0){let k=L/A*(V.actualSize-w);if(O)J.scrollLeft=k;else J.scrollTop=k}V=void 0},e=()=>{if(X||W)return L;return O?J.scrollLeft:J.scrollTop},X2=(R,k=!1)=>{let o=Math.max(0,Math.min(R,A||1/0));if(X){let F=J.getBoundingClientRect();if(O){let z=F.left+window.scrollX;window.scrollTo({left:z+o,behavior:k?"smooth":"auto"})}else{let z=F.top+window.scrollY;window.scrollTo({top:z+o,behavior:k?"smooth":"auto"})}}else if(W){if(o===L)return;let z=o>=L?"down":"up";if(K=z2(K,o),L=o,!D)D=!0;if(B)B({scrollTop:L,direction:z,velocity:K.velocity});U2()}else if(O)J.scrollTo({left:o,behavior:k?"smooth":"auto"});else J.scrollTo({top:o,behavior:k?"smooth":"auto"})},H=(R)=>{X2(e()+R)},U=()=>{return e()<=0},_=(R=0)=>{let k=e(),o=X||W?A:O?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return k>=o-R},M=()=>{let R=e(),k=X||W?A:O?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(k<=0)return 0;return Math.min(1,Math.max(0,R/k))},C=(R)=>{if(R.compression)V=R.compression,A=V.virtualSize-w},a=()=>W,i=()=>Math.abs(K.velocity),d=()=>dJ(K),Z=()=>D,N=()=>X,T=(R)=>{if(w=R,V)A=V.virtualSize-w},c=()=>{if(E)clearTimeout(E);if(X)I.cancel(),window.removeEventListener("scroll",I);else P.cancel(),J.removeEventListener("scroll",P),J.removeEventListener("wheel",Y2),J.removeEventListener("wheel",n),J.removeEventListener("wheel",l)};if(X){if(W&&V)A=V.virtualSize-w;window.addEventListener("scroll",I,{passive:!0})}else if(W&&V){if(A=V.virtualSize-w,O)J.style.overflowX="hidden";else J.style.overflow="hidden";if($)J.addEventListener("wheel",Y2,{passive:!1})}else{if(O)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",P,{passive:!0}),!$)J.addEventListener("wheel",n,{passive:!1});else if(O)J.addEventListener("wheel",l,{passive:!1})}return{getScrollTop:e,scrollTo:X2,scrollBy:H,isAtTop:U,isAtBottom:_,getScrollPercentage:M,getVelocity:i,isTracking:d,isScrolling:Z,updateConfig:C,enableCompression:x,disableCompression:u,isCompressed:a,isWindowMode:N,updateContainerHeight:T,destroy:c}},v2=(J)=>{let Q=null,$=null,j=(...q)=>{if($=q,Q===null)Q=requestAnimationFrame(()=>{if(Q=null,$)J(...$)})};return j.cancel=()=>{if(Q!==null)cancelAnimationFrame(Q),Q=null},j};var cJ=(J)=>{if(typeof J!=="object"){let Q=J??2;return{top:Q,right:Q,bottom:Q,left:Q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},vJ=(J,Q,$={},j="vlist",q=!1)=>{let{autoHide:Y=!0,autoHideDelay:B=1000,minThumbSize:G=15,showOnHover:b=!0,showOnViewportEnter:O=!0,clickBehavior:X="scroll"}=$,L=X==="page"?"scroll":X,A=cJ($.padding),w=q?A.left:A.top,W=q?A.right:A.bottom,V=q?A.bottom:A.right,K=$.hoverZoneWidth??V+16,D=0,E=0,y=0,P=0,m=!1,I=!1,n=0,l=0,Y2=0,U2=null,x=!1,u=null,e=null,X2=0,H=0,U=null,_=null,M=null,C=q?"width":"height",a=q?"translateX":"translateY",i=q?(t)=>t.clientX:(t)=>t.clientY,d=q?"left":"top",Z=document.createElement("div"),N=document.createElement("div"),T=document.createElement("div"),c=()=>{if(Z.className=`${j}-scrollbar`,N.className=`${j}-scrollbar-thumb`,q)Z.classList.add(`${j}-scrollbar--horizontal`);if($.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${A.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${A.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${A.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${A.left}px`);if($.minThumbSize!==void 0)Z.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${G}px`);if(Z.appendChild(N),J.appendChild(Z),T.className=`${j}-scrollbar-hover`,q)T.classList.add(`${j}-scrollbar-hover--horizontal`),T.style.height=`${K}px`;else T.style.width=`${K}px`;J.appendChild(T)},R=()=>{if(U2)clearTimeout(U2),U2=null},k=()=>{if(!Y)return;R(),U2=setTimeout(F,B)},o=()=>{if(D<=E)return;if(R(),!x)Z.classList.add(`${j}-scrollbar--visible`),x=!0;if(Y&&!m&&!I)k()},F=()=>{if(m||I)return;Z.classList.remove(`${j}-scrollbar--visible`),x=!1},z=(t,q2)=>{D=t,E=q2;let $2=D>E;if(Z.style.display=$2?"":"none",!$2){F();return}let G2=Math.max(0,E-w-W),Z2=E/D;if(y=Math.max(G,Z2*G2),N.style[C]=`${y}px`,P=G2-y,S(Y2),!Y)o()},S=(t)=>{if(Y2=t,D<=E||P<=0)return;let q2=D-E,G2=Math.min(1,Math.max(0,t/q2))*P;N.style.transform=`${a}(${G2}px)`},r=(t)=>{if(t.target===N||L!=="jump"||P<=0)return;let q2=D-E,$2=Z.getBoundingClientRect(),G2=i(t)-$2[d],Z2=Math.max(0,Math.min(G2-y/2,P));Q(Z2/P*q2),o()},g=()=>{if(U!==null)clearTimeout(U),U=null;if(_!==null)cancelAnimationFrame(_),_=null;M=null},h=(t)=>{let q2=P>0?H/t*P:0;if(X2<q2)return-1;if(X2>=q2+y)return 1;return 0},J2=()=>{let t=D-E,q2=h(t);if(q2===0){g();return}if(q2===-1){if(H<=0){g();return}let $2=Math.max(0,H-E);H=$2,Q($2)}else{if(H>=t){g();return}let $2=Math.min(t,H+E);H=$2,Q($2)}o()},v=(t)=>{if(M===null){M=t,_=requestAnimationFrame(v);return}let q2=D-E,$2=t-M;M=t;let G2=h(q2);if(G2===0){g();return}let Z2=12*E/1000,V2=Math.min(Z2*$2,E);if(G2===-1){if(H<=0){g();return}let W2=Math.max(0,H-V2);H=W2,Q(W2)}else{if(H>=q2){g();return}let W2=Math.min(q2,H+V2);H=W2,Q(W2)}R(),_=requestAnimationFrame(v)},f=()=>{g(),k(),document.removeEventListener("mouseup",f)},p=(t)=>{if(t.target===N||L!=="scroll")return;t.preventDefault();let q2=Z.getBoundingClientRect();X2=i(t)-q2[d],H=Y2,J2(),U=setTimeout(()=>{_=requestAnimationFrame(v)},350),document.addEventListener("mouseup",f)},K2=(t)=>{t.preventDefault(),t.stopPropagation(),m=!0,n=i(t),l=Y2,R(),Z.classList.add(`${j}-scrollbar--dragging`),document.addEventListener("mousemove",Q2),document.addEventListener("mouseup",j2)},Q2=(t)=>{if(!m)return;let q2=i(t)-n,$2=P>0?q2/P:0,G2=D-E,Z2=$2*G2,V2=Math.max(0,Math.min(l+Z2,G2)),wJ=V2/G2*P;if(N.style.transform=`${a}(${wJ}px)`,e=V2,u===null)u=requestAnimationFrame(()=>{if(e!==null)Q(e);u=null})},j2=()=>{if(m=!1,u!==null)cancelAnimationFrame(u),u=null;if(e!==null)Q(e),e=null;if(Z.classList.remove(`${j}-scrollbar--dragging`),Y&&!I)k();document.removeEventListener("mousemove",Q2),document.removeEventListener("mouseup",j2)},N2=()=>{if(O)o()},_2=()=>{if(!m){if(I=!1,Y)k()}},s=()=>{I=!0,R(),o()},B2=()=>{if(I=!1,!m&&Y)k()},D2=()=>{if(R(),g(),u!==null)cancelAnimationFrame(u),u=null;if(Z.removeEventListener("click",r),Z.removeEventListener("mousedown",p),Z.removeEventListener("mouseenter",s),document.removeEventListener("mouseup",f),Z.removeEventListener("mouseleave",B2),N.removeEventListener("mousedown",K2),J.removeEventListener("mouseenter",N2),J.removeEventListener("mouseleave",_2),document.removeEventListener("mousemove",Q2),document.removeEventListener("mouseup",j2),T.removeEventListener("click",r),T.removeEventListener("mousedown",p),b)T.removeEventListener("mouseenter",s),T.removeEventListener("mouseleave",B2);if(T.parentNode)T.parentNode.removeChild(T);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),Z.parentNode)Z.parentNode.removeChild(Z)};if(c(),Z.addEventListener("click",r),Z.addEventListener("mousedown",p),Z.addEventListener("mouseenter",s),Z.addEventListener("mouseleave",B2),N.addEventListener("mousedown",K2),J.addEventListener("mouseenter",N2),J.addEventListener("mouseleave",_2),T.addEventListener("click",r),T.addEventListener("mousedown",p),b)T.addEventListener("mouseenter",s),T.addEventListener("mouseleave",B2);return{show:o,hide:F,updateBounds:z,updatePosition:S,isVisible:()=>x,destroy:D2}};var rJ=50,lJ=0.1;function aJ(J){let Q=0,$=0,j=0;function q(){return j>0?$/j:0}function Y(b){if(Q=b,b>lJ&&b<rJ)$+=b,j++}function B(){let b=J.getTotal();if(b===0)return 0;let O=J.getItemSize();if(O<=0)return 0;let X=J.getContainerSize();if(X<=0)return 0;let L=J.getScrollPosition(),A=typeof J.getColumns==="function"?J.getColumns():1,W=Math.ceil(b/A)*O,K=Math.min(W,M2)-X,D=W-X,E=K>0?D/K:1,y=L*E,P=Math.ceil((y+X)/O);return Math.min(P*A,b)}function G(){let b=J.getTotal(),O=B();return{progress:b>0?Math.min(100,Math.max(0,O/b*100)):0,velocity:Q,velocityAvg:q(),itemCount:O,total:b}}return{getState:G,onVelocity:Y}}export{n2 as toggleSelection,VJ as simpleVisibleRange,S2 as selectItems,o2 as selectAll,HJ as rangesEqual,v2 as rafThrottle,qJ as needsScaling,P2 as mergeRanges,t2 as isSelected,E2 as isPlaceholderItem,bJ as isInRange,T2 as isGroupHeader,JJ as getSelectedItems,e2 as getSelectedIds,H2 as getScaleState,KJ as getScaleInfo,H2 as getScale,TJ as getRangeCount,BJ as getMaxItemsWithoutScaling,h2 as filterPlaceholders,RJ as diffRanges,f2 as deselectItems,ZJ as createTableRenderer,UJ as createTableLayout,NJ as createTableHeader,c2 as createStickyHeader,aJ as createStats,y2 as createSparseStorage,L2 as createSizeCache,s2 as createSelectionState,vJ as createScrollbar,zJ as createScrollController,k2 as createPlaceholderManager,DJ as createMeasuredSizeCache,_J as createMasonryRenderer,GJ as createMasonryLayout,m2 as createGroupedSizeFn,d2 as createGroupLayout,XJ 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,F2 as calculateScaledItemPosition,WJ as calculateRenderRange,b2 as calculateMissingRanges,AJ as calculateItemOffset,jJ as calculateIndexFromScrollPosition,EJ as calculateActualSize,u2 as buildLayoutItems,M2 as MAX_VIRTUAL_SIZE};
|
|
1
|
+
var b2=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var w2=(J,Q)=>{let Y=0,$=J.length-1;while(Y<$){let q=Y+$+1>>>1;if(J[q].headerLayoutIndex<=Q)Y=q;else $=q-1}return Y},x2=(J,Q)=>{let Y=0,$=J.length-1;while(Y<$){let q=Y+$+1>>>1;if(J[q].firstDataIndex<=Q)Y=q;else $=q-1}return Y},g2=(J,Q,Y)=>{if(J===0)return[];let $=[],q=Q(0,Y?.(0)),j=0,B=0;for(let _=1;_<J;_++){let b=Q(_,Y?.(_));if(b!==q){let O=_-j;$.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:O}),B=B+1+O,q=b,j=_}}return $.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:J-j}),$},u2=(J,Q)=>{if(J.length===0||Q.length===0)return[];let Y=J.length+Q.length,$=Array(Y),q=0;for(let j of Q){$[q]={id:`__group_header_${j.groupIndex}`,__groupHeader:!0,groupKey:j.key,groupIndex:j.groupIndex},q++;for(let B=0;B<j.count;B++)$[q]=J[j.firstDataIndex+B],q++}return $},m2=(J,Q,Y=!1)=>{let $=typeof Q==="number"?(q)=>Q:Q;return(q)=>{let j=J.getEntry(q);if(j.type==="header"){if(Y&&j.group.groupIndex===0)return 0;return J.getHeaderHeight(j.group.groupIndex)}return $(j.dataIndex)}},d2=(J,Q,Y)=>{let $=g2(J,Q.getGroupForIndex,Y),q=J+$.length,j=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return q},get groupCount(){return $.length},get groups(){return $},getEntry:(y)=>{if($.length===0)return{type:"item",dataIndex:y,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let G=w2($,y),W=$[G];if(y===W.headerLayoutIndex)return{type:"header",group:W};let K=y-W.headerLayoutIndex-1;return{type:"item",dataIndex:W.firstDataIndex+K,group:W}},layoutToDataIndex:(y)=>{if($.length===0)return y;let G=w2($,y),W=$[G];if(y===W.headerLayoutIndex)return-1;let K=y-W.headerLayoutIndex-1;return W.firstDataIndex+K},dataToLayoutIndex:(y)=>{if($.length===0)return y;let G=x2($,y),W=$[G],K=y-W.firstDataIndex;return W.headerLayoutIndex+1+K},getGroupAtLayoutIndex:(y)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let G=w2($,y);return $[G]},getGroupAtDataIndex:(y)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let G=x2($,y);return $[G]},getHeaderHeight:typeof j==="number"?(y)=>j:(y)=>{let G=$[y];if(!G)return 0;return j(G.key,y)},rebuild:(y,G)=>{$=g2(y,Q.getGroupForIndex,G??Y),q=y+$.length}}};var c2=(J,Q,Y,$,q,j=!1,B=0,_)=>{let b=j?"width":"height",O=j?"height":"width",N=j?"X":"Y",T=(U,R)=>{U.style[b]=`${R}px`},P=document.createElement("div");P.className=`${q}-sticky-header`,P.setAttribute("role","presentation"),P.setAttribute("aria-hidden","true"),P.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 y=()=>{let U=document.createElement("div");return U.className="sticky-group",U.style.position="absolute",U.style.willChange="transform",U.style[O]="100%",U},G=y(),W=y();P.append(G,W),J.insertBefore(P,J.firstChild);let K=G,D=W,A=Q.groups,z=[],w=[],g=[],x=0,Y2=()=>{A=Q.groups,x=A.length,z=Array(x),w=Array(x),g=Array(x);let U=_?_():1;for(let R=0;R<x;R++)z[R]=Y.getOffset(A[R].headerLayoutIndex)*U,w[R]=Q.getHeaderHeight(R),g[R]=w[R]*U};Y2();let c=-1,i=0,q2=0,U2=-1,B2=!1,u=0,m=!1,E=(U,R)=>{$(U,R);let p=w[R];return T(U,p),p},Z=(U)=>{U.replaceChildren(),U.style.transform=""},M=(U)=>{if(U===c)return;if(c=U,i=0,q2=0,U<0||U>=x){Z(K);return}i=E(K,U),q2=g[U],T(P,i),K.style.transform=""},X=(U)=>{if(U===u)return;u=U;let R=Math.round(U);K.style.transform=`translate${N}(${R}px)`,D.style.transform=`translate${N}(${R+i}px)`},v=()=>{u=0,K.style.transform="",D.style.transform=""},l=()=>{if(!m)return;let U=K;K=D,D=U,c=U2,i=c>=0?w[c]:0,q2=c>=0?g[c]:0,T(P,i),Z(D),U2=-1,m=!1,v()},a=()=>{if(!m)return;Z(D),U2=-1,m=!1,v()},o=()=>{if(B2)return;B2=!0,P.style.display=""},S=()=>{if(!B2)return;B2=!1,P.style.display="none",Z(K),c=-1,i=0,q2=0,a()},s=(U)=>{if(x===0){S();return}if(U<z[0]){S();return}let R=0,p=x-1;while(R<p){let H=R+p+1>>>1;if(z[H]+g[H]<=U)R=H;else p=H-1}if(!B2)o();M(R);let V=R+1;if(V<x){let H=z[V]-U;if(H<=0&&H>-q2){if(U2!==V||!m)U2=V,E(D,V),m=!0;let k=q2>0?H/q2*i:H;X(k)}else if(H<=-q2){if(m)l()}else if(m)a()}else if(m)a()},L=()=>{Y2();let U=c;if(c=-1,i=0,q2=0,U>=0)M(U)},C=()=>{P.remove(),c=-1,i=0,q2=0,U2=-1,B2=!1,m=!1};return P.style.display="none",{update:s,refresh:L,show:o,hide:S,destroy:C}};var r2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.isHeaderFn,q={row:0,col:0},j=(G)=>{if(G<=0)return 0;if(!$)return Math.ceil(G/Q);let W=0,K=0,D=0;for(let A=0;A<G;A++)if($(A)){if(D++,K>0)W++,K=0;W++,K=0}else if(K++,K>=Q)W++,K=0;if(K>0)W++;return W},B=(G)=>{return q.row=_(G),q.col=b(G),q},_=(G)=>{if(!$)return Math.floor(G/Q);let W=0,K=0;for(let D=0;D<=G;D++)if($(D)){if(K>0)W++,K=0;if(D===G)return W;W++,K=0}else{if(D===G)return W;if(K++,K>=Q)W++,K=0}return console.warn(`⚠️ getRow(${G}) fell through - returning ${W}`),W},b=(G)=>{if(!$)return G%Q;if($(G))return 0;let W=0;for(let K=0;K<=G;K++)if($(K))W=0;else{if(K===G)return W;if(W++,W>=Q)W=0}return W},O=(G,W,K)=>{if(K<=0)return{start:0,end:-1};if(!$){let g=Math.max(0,G*Q),x=Math.min(K-1,(W+1)*Q-1);return{start:g,end:x}}let D=-1,A=-1,z=0,w=0;for(let g=0;g<K;g++){if($(g)){if(w>0)z++,w=0;if(z>=G&&z<=W){if(D===-1)D=g;A=g}z++,w=0}else{if(z>=G&&z<=W){if(D===-1)D=g;A=g}if(w++,w>=Q)z++,w=0}if(z>W&&w===0)break}if(D===-1)return{start:0,end:-1};return{start:D,end:A}},N=(G,W,K)=>{if(W<0||W>=Q)return-1;let D=G*Q+W;if(D<0||D>=K)return-1;return D},T=(G)=>{let W=(Q-1)*Y;return Math.max(0,(G-W)/Q)};return{get columns(){return Q},get gap(){return Y},update:(G)=>{if(G.columns!==void 0)Q=Math.max(1,Math.floor(G.columns));if(G.gap!==void 0)Y=G.gap;if(G.isHeaderFn!==void 0)$=G.isHeaderFn},getTotalRows:j,getPosition:B,getRow:_,getCol:b,getItemRange:O,getItemIndex:N,getColumnWidth:T,getColumnOffset:(G,W)=>{let K=T(W);return G*(K+Y)}}};var M2=16000000;var l2="x",a2=20,v2="_isPlaceholder",O2="__placeholder_";var E2=(J,Q,Y)=>{if(String(Y).startsWith(O2))return!1;let $=O2+Q;if(J.has($))return J.delete($),J.add(Y),!0;return!1},s2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),C2=(J,Q,Y)=>{if(Y==="none")return J;let $=new Set(J.selected);if(Y==="single"){if($.clear(),Q.length>0)$.add(Q[0])}else for(let q of Q)$.add(q);return{...J,selected:$}},f2=(J,Q)=>{let Y=new Set(J.selected);for(let $ of Q)Y.delete($);return{...J,selected:Y}},n2=(J,Q,Y)=>{if(Y==="none")return J;if(J.selected.has(Q))return f2(J,[Q]);else return C2(J,[Q],Y)},o2=(J,Q,Y)=>{if(Y!=="multiple")return J;return{...J,selected:new Set(Q.map(($)=>$.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 Y=[];for(let $ of J.selected){let q=Q($);if(q)Y.push(q)}return Y};var CJ=(J,Q)=>{let Y=Q;return{getOffset:($)=>$*J,getSize:($)=>J,indexAtOffset:($)=>{if(Y===0||J===0)return 0;return Math.max(0,Math.min(Math.floor($/J),Y-1))},getTotalSize:()=>Y*J,getTotal:()=>Y,rebuild:($)=>{Y=$},isVariable:()=>!1}},fJ=(J,Q)=>{let Y=Q,$=new Float64Array(0),q=(B)=>{Y=B,$=new Float64Array(B+1),$[0]=0;for(let _=0;_<B;_++)$[_+1]=$[_]+J(_)};q(Q);let j=(B)=>{if(Y===0)return 0;if(B<=0)return 0;if(B>=$[Y])return Y-1;let _=0,b=Y-1;while(_<b){let O=_+b+1>>>1;if($[O]<=B)_=O;else b=O-1}return _};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=Y)return $[Y];return $[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>j(B),getTotalSize:()=>$[Y]??0,getTotal:()=>Y,rebuild:(B)=>q(B),isVariable:()=>!0}},L2=(J,Q)=>{if(typeof J==="number")return CJ(J,Q);return fJ(J,Q)},S2=(J,Q,Y,$)=>{if($===0)return 0;if(!J.isVariable())return Math.ceil(Y/J.getSize(0));let q=0,j=0,B=Q;while(B<$&&j<Y)j+=J.getSize(B),q++,B++;return Math.max(1,q)};var H2=(J,Q,Y)=>{let $=Q.getTotalSize(),q=Y===!0||$>M2,j=$>M2?M2:$,B=$>0?j/$:1;return{isCompressed:q,actualSize:$,virtualSize:j,ratio:B}},QJ=(J,Q,Y,$,q,j)=>{if($===0||Q===0)return j.start=0,j.end=-1,j;if(!q.isCompressed||q.ratio===1){let y=Y.indexAtOffset(J),G=Y.indexAtOffset(J+Q);if(G<$-1)G++;return j.start=Math.max(0,y),j.end=Math.min($-1,Math.max(0,G)),j}let{virtualSize:B}=q,_=J/B,b=Y.getTotalSize(),O=_*b,N=Y.indexAtOffset(O),T=S2(Y,Math.max(0,N),Q,$),P=N+T;return j.start=Math.max(0,N),j.end=Math.min($-1,Math.max(0,P)),j},$J=(J,Q,Y,$)=>{if(Y===0)return $.start=0,$.end=-1,$;return $.start=Math.max(0,J.start-Q),$.end=Math.min(Y-1,J.end+Q),$},F2=(J,Q,Y,$,q,j,B)=>{if(!j.isCompressed||$===0)return Y.getOffset(J);if(j.ratio===1)return Y.getOffset(J)-Q;let{virtualSize:_}=j,b=Q/_,O=Y.getTotalSize(),N=b*O;return Y.getOffset(J)-N},YJ=(J,Q,Y,$,q,j="start")=>{if($===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/$*q.virtualSize;let N=Q.getSize(J);switch(j){case"center":B-=(Y-N)/2*q.ratio;break;case"end":B-=(Y-N)*q.ratio;break}return Math.max(0,B)}B=Q.getOffset(J);let _=Q.getSize(J);switch(j){case"center":B-=(Y-_)/2;break;case"end":B-=Y-_;break}let b=q.virtualSize-Y;return Math.max(0,Math.min(B,b))},jJ=(J,Q,Y,$)=>{if(Y===0)return 0;if($.isCompressed&&$.ratio!==1){let q=J/$.virtualSize;return Math.floor(q*Y)}return Q.indexAtOffset(J)},qJ=(J,Q)=>{if(typeof Q==="number")return J*Q>M2;return Q.getTotalSize()>M2},BJ=(J)=>{if(J<=0)return 0;return Math.floor(M2/J)},KJ=(J,Q,Y)=>{let $=H2(J,Q,Y);if(!$.isCompressed)return`No compression needed (${J} items, ${($.actualSize/1e6).toFixed(2)}M px)`;return`Compressed to ${($.ratio*100).toFixed(1)}% (${J} items, ${($.actualSize/1e6).toFixed(1)}M px → ${($.virtualSize/1e6).toFixed(1)}M px virtual)`};var T2=(J,Q,Y)=>{let $=Array.from(Q).sort((B,_)=>B-_);if($.length<=1)return;let q=[];for(let B=0;B<$.length;B++){let _=Y($[B]);if(_)q.push(_)}if(q.length<=1)return;let j=J.firstChild;for(let B=0;B<q.length;B++){let _=q[B];if(_===j)j=j.nextSibling;else J.insertBefore(_,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}}},IJ=1,XJ=(J,Q,Y,$,q,j,B,_,b=!1,O)=>{let N=SJ(),T=new Map,P=j,y=!1,G=0,W="",K=-1,D={selected:!1,focused:!1},A=(L,C)=>{return D.selected=L,D.focused=C,D},z=`${q}-item ${q}-grid-item`,w=`${q}-group-header`,g=`${q}-item--selected`,x=`${q}-item--focused`,Y2=`${q}-item--placeholder`,c=`${q}-item--replaced`,i=(L,C)=>{if(typeof C==="string")L.innerHTML=C;else L.replaceChildren(C)},q2=(L,C,U)=>{L.classList.toggle(g,C),L.classList.toggle(x,U)},U2=(L,C)=>{let U=$.getRow(L);if(C?.compression?.isCompressed)return F2(U,C.scrollPosition,Y,C.totalItems,C.containerSize,C.compression,C.rangeStart);return Y.getOffset(U)},B2=(L,C)=>{let U=y&&$.getCol(L)===0,R=U?0:$.getCol(L),p=U?0:$.getColumnOffset(R,P),V;if(y){let H=$.getRow(L),k=0,r=new Set;for(let f=0;f<L;f++){let d=$.getRow(f);if(d<H&&!r.has(d)){let e=Y.getSize(f);k+=e,r.add(d)}}V=k}else V=U2(L,C);if(b)return`translate(${Math.round(V)}px, ${Math.round(p)}px)`;return`translate(${Math.round(p)}px, ${Math.round(V)}px)`},u=(L,C)=>{L.style.transform=C},m=(L,C)=>{let U=L.classList.contains(w),R=U?P:$.getColumnWidth(P),p;if(y||U)p=Y.getSize(C)-$.gap;else{let V=$.getRow(C);p=Y.getSize(V)-$.gap}if(b)L.style.width=`${p}px`,L.style.height=`${R}px`;else L.style.width=`${R}px`,L.style.height=`${p}px`},E=(L,C,U,R,p)=>{let V=N.acquire(),H=!!C.__groupHeader,k=A(U,R);if(V.className=H?w:z,V.dataset.index=String(L),V.dataset.id=String(C.id),V.dataset.row=String($.getRow(L)),V.dataset.col=String($.getCol(L)),H)V.setAttribute("role","presentation"),V.removeAttribute("aria-selected"),V.removeAttribute("aria-setsize"),V.removeAttribute("aria-posinset"),V.removeAttribute("id");else{if(V.setAttribute("role","option"),V.ariaSelected=String(U),_)V.id=`${_}-item-${L}`;if(B){let d=B();if(d!==K)K=d,W=String(d);V.setAttribute("aria-setsize",W);let e=O?O(L):L+1;V.setAttribute("aria-posinset",String(e))}}m(V,L);let r=Q(C,L,k);if(i(V,r),String(C.id).startsWith(O2))V.classList.add(Y2);return q2(V,U,R),u(V,p),{element:V,lastItemId:C.id,lastSelected:U,lastFocused:R,lastTransform:p,lastSeenFrame:G}},Z=(L,C,U,R,p)=>{if(G++,C.start===0&&L.length>0)y=b2(L[0]);for(let[k,r]of T)if(k>=C.start&&k<=C.end)r.lastSeenFrame=G;else if(G-r.lastSeenFrame>IJ)N.release(r.element),T.delete(k);let V=!1;if(B){let k=B();if(k!==K)K=k,W=String(k),V=!0}let H=null;for(let k=C.start;k<=C.end;k++){let r=k-C.start,f=L[r];if(!f){console.warn(`⚠️ RENDER: Missing item at index ${k} (range: ${C.start}-${C.end}, items.length: ${L.length})`);continue}let d=U.has(f.id),e=k===R,F=T.get(k);if(F){let I=F.lastItemId!==f.id,h=F.lastSelected!==d,$2=F.lastFocused!==e;if(I){let X2=String(F.lastItemId),N2=String(f.id),D2=X2.startsWith(O2),n=N2.startsWith(O2);if(!n&&E2(U,k,f.id))d=!0;let Q2=A(d,e),Z2=Q(f,k,Q2);if(i(F.element,Z2),F.element.dataset.id=N2,F.element.dataset.row=String($.getRow(k)),F.element.dataset.col=String($.getCol(k)),m(F.element,k),F.element.classList.toggle(Y2,n),D2&&!n)F.element.classList.add(c),setTimeout(()=>F.element.classList.remove(c),300);if(F.lastItemId=f.id,!f.__groupHeader){let j2=O?O(k):k+1;F.element.setAttribute("aria-posinset",String(j2))}}if(I||h||$2)q2(F.element,d,e),F.element.ariaSelected=String(d),F.lastSelected=d,F.lastFocused=e;let J2=B2(k,p);if(F.lastTransform!==J2)u(F.element,J2),F.lastTransform=J2;if(V&&!f.__groupHeader)F.element.setAttribute("aria-setsize",W)}else{if(E2(U,k,f.id))d=!0;let I=B2(k,p),h=E(k,f,d,e,I);if(!H)H=document.createDocumentFragment();H.appendChild(h.element),T.set(k,h)}}if(H)J.appendChild(H)},M=(L)=>{for(let[C,U]of T){let R=B2(C,L);if(U.lastTransform!==R)u(U.element,R),U.lastTransform=R}},X=(L,C,U,R)=>{let p=T.get(L);if(!p)return;let V=A(U,R),H=Q(C,L,V);i(p.element,H),q2(p.element,U,R),p.element.dataset.id=String(C.id),p.element.ariaSelected=String(U),m(p.element,L),p.lastItemId=C.id,p.lastSelected=U,p.lastFocused=R},v=(L,C,U)=>{let R=T.get(L);if(!R)return;let p=R.lastSelected!==C,V=R.lastFocused!==U;if(p||V)q2(R.element,C,U),R.lastSelected=C,R.lastFocused=U},l=(L)=>{return T.get(L)?.element},a=(L)=>{if(Math.abs(L-P)<1)return;P=L;for(let[C,U]of T){m(U.element,C);let R=B2(C);u(U.element,R),U.lastTransform=R}},o=()=>{T2(J,T.keys(),(L)=>T.get(L)?.element)},S=()=>{for(let[,L]of T)N.release(L.element);T.clear()};return{render:Z,updatePositions:M,updateItem:X,updateItemClasses:v,getElement:l,sortDOM:o,updateContainerWidth:a,clear:S,destroy:()=>{S(),N.clear()}}};var UJ=(J,Q=50,Y=1/0,$=!0)=>{let q=J,j=[],B=0,_=()=>{j=q.map((K,D)=>({def:K,index:D,width:0,minWidth:pJ(K.minWidth??Q,1),maxWidth:K.maxWidth??Y,resizable:K.resizable??$,offset:0}))},b=(K)=>{if(j.length===0){B=0;return}let D=0,A=0;for(let z=0;z<j.length;z++){let w=j[z],g=w.def;if(g.width!==void 0)w.width=I2(g.width,w.minWidth,w.maxWidth),D+=w.width;else A++}if(A>0){let w=Math.max(0,K-D)/A;for(let g=0;g<j.length;g++){let x=j[g];if(x.def.width===void 0)x.width=I2(w,x.minWidth,x.maxWidth)}}O()},O=()=>{let K=0;for(let D=0;D<j.length;D++){let A=j[D];A.offset=K,K+=A.width}B=K},N=(K,D)=>{if(K<0||K>=j.length)return 0;let A=j[K];if(!A.resizable)return A.width;let z=I2(D,A.minWidth,A.maxWidth);return A.width=z,O(),z},T=(K)=>{return j[K]},P=(K)=>{if(j.length===0)return;if(K<0)return j[0];if(K>=B)return j[j.length-1];let D=0,A=j.length-1;while(D<A){let z=D+A>>>1,w=j[z];if(K<w.offset)A=z-1;else if(K>=w.offset+w.width)D=z+1;else return w}return j[D]},y=(K)=>{if(K<0||K>=j.length)return 0;return j[K].offset},G=(K)=>{if(K<0||K>=j.length)return 0;return j[K].width},W=(K)=>{q=K,_()};return _(),{get columns(){return j},get totalWidth(){return B},resolve:b,updateColumns:W,resizeColumn:N,getColumn:T,getColumnAtX:P,getColumnOffset:y,getColumnWidth:G}},I2=(J,Q,Y)=>Math.min(Y,Math.max(Q,J)),pJ=(J,Q)=>Math.max(Q,J);var NJ=(J,Q,Y,$,q,j)=>{let B=document.createElement("div");B.setAttribute("role","rowgroup");let _=document.createElement("div");_.className=`${Y}-table-header`,_.setAttribute("role","row"),_.setAttribute("aria-rowindex","1"),_.style.height=`${Q}px`;let b=document.createElement("div");b.className=`${Y}-table-header-scroll`,b.setAttribute("role","presentation"),_.appendChild(b),B.appendChild(_),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let O=[],N=[],T=[],P=!0,y=null,G="asc",W=null,K=!1,D=-1,A=0,z=0,w=(Z,M)=>{let X=document.createElement("div");X.className=`${Y}-table-header-cell`,X.setAttribute("role","columnheader"),X.setAttribute("aria-colindex",String(M+1)),X.dataset.columnKey=Z.def.key;let v=Z.def.align;if(v==="center")X.classList.add(`${Y}-table-header-cell--center`);else if(v==="right")X.classList.add(`${Y}-table-header-cell--right`);let l=document.createElement("div");l.className=`${Y}-table-header-content`;let a=Z.def.header?Z.def.header(Z.def):Z.def.label;if(typeof a==="string")l.textContent=a;else l.appendChild(a);if(X.appendChild(l),Z.def.sortable){let o=document.createElement("span");o.className=`${Y}-table-header-sort`,o.setAttribute("aria-hidden","true"),X.appendChild(o),T.push(o),X.classList.add(`${Y}-table-header-cell--sortable`)}else T.push(null);if(Z.resizable){let o=document.createElement("div");o.className=`${Y}-table-header-resize`,o.dataset.resizeIndex=String(M),X.appendChild(o),N.push(o)}return X},g=(Z)=>{W=Z,b.textContent="",O=[],N=[],T=[];let M=Z.columns;for(let X=0;X<M.length;X++){let v=M[X],l=w(v,X);O.push(l),b.appendChild(l)}if(x(Z),y)Y2(y,G)},x=(Z)=>{W=Z;let M=Z.columns;b.style.width=`${Z.totalWidth}px`;for(let X=0;X<O.length&&X<M.length;X++){let v=O[X],l=M[X];v.style.width=`${l.width}px`}},Y2=(Z,M)=>{if(y=Z,G=M,!W)return;let X=W.columns;for(let v=0;v<T.length&&v<X.length;v++){let l=T[v];if(!l)continue;if(X[v].def.key===Z&&Z!==null)l.textContent=M==="asc"?"▲":"▼",l.style.opacity="0.7",O[v].setAttribute("aria-sort",M==="asc"?"ascending":"descending");else l.textContent="",l.style.opacity="0",O[v].removeAttribute("aria-sort")}},c=(Z)=>{b.style.transform=`translateX(${-Z}px)`},i=(Z)=>{let M=Z.target;if(!M.dataset.resizeIndex)return;if(Z.preventDefault(),Z.stopPropagation(),D=parseInt(M.dataset.resizeIndex,10),!W)return;let X=W.getColumn(D);if(!X||!X.resizable)return;K=!0,A=Z.clientX,z=X.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",M.classList.add(`${Y}-table-header-resize--active`),M.setPointerCapture(Z.pointerId),M.addEventListener("pointermove",q2),M.addEventListener("pointerup",U2),M.addEventListener("pointercancel",U2)},q2=(Z)=>{if(!K||!W)return;let M=Z.clientX-A;if(Math.abs(M)<1)return;let X=Math.max(0,z+M);$(D,X)},U2=(Z)=>{if(!K)return;let M=Z.target;M.removeEventListener("pointermove",q2),M.removeEventListener("pointerup",U2),M.removeEventListener("pointercancel",U2);try{M.releasePointerCapture(Z.pointerId)}catch{}M.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",K=!1,D=-1},B2=(Z)=>{let M=Z.target;if(M.dataset.resizeIndex!==void 0)return;if(K)return;let X=M;while(X&&!X.dataset.columnKey)if(X=X.parentElement,X===_||X===null)return;if(!X||!X.dataset.columnKey)return;let v=X.dataset.columnKey;if(!W)return;let l=W.columns,a=-1;for(let S=0;S<l.length;S++)if(l[S].def.key===v){a=S;break}if(a===-1)return;let o=l[a];if(j)j({key:v,index:a,event:Z});if(o.def.sortable&&q){let S;if(y===v)if(G==="asc")S="desc";else S=null;else S="asc";q({key:v,index:a,direction:S})}};return _.addEventListener("pointerdown",i),_.addEventListener("click",B2),{element:_,update:x,updateSort:Y2,rebuild:g,show:()=>{if(P)return;P=!0,_.style.display=""},hide:()=>{if(!P)return;P=!1,_.style.display="none"},destroy:()=>{_.removeEventListener("pointerdown",i),_.removeEventListener("click",B2),J.style.removeProperty("--vlist-table-header-height"),B.remove(),O=[],N=[],T=[],W=null,P=!1},syncScroll:c}};var hJ=()=>{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,_,b)=>{let O=hJ(),N=new Map,T=-1,P=Y,y=null,G=null,W=null,K=(V,H)=>{G=V,W=H},D=(V,H)=>{if(H)V.setAttribute("aria-selected","true");else V.removeAttribute("aria-selected")},A=(V,H,k,r)=>{V.setAttribute("role",H),V.setAttribute("data-id",String(k)),V.setAttribute("data-index",String(r))},z=(V)=>String(V).startsWith("__placeholder_"),w=`${q}-item ${q}-table-row`,g=`${q}-item--selected`,x=`${q}-item--focused`,Y2=`${q}-table-cell`,c=`${q}-table-cell--center`,i=`${q}-table-cell--right`,q2=`${q}-item--odd`,U2=`${q}-item--placeholder`,B2=`${q}-item--replaced`,u=`${q}-item ${q}-table-row ${q}-table-group-header`,m=`${q}-table-group-header-content`,E=(V,H,k,r,f=!1)=>{if(k.def.cell){let d=k.def.cell(H,k.def,r);if(typeof d==="string")V.innerHTML=d;else V.replaceChildren(d)}else{let d=H[k.def.key],e=d!=null?String(d):"";if(f&&e)V.innerHTML=`<span>${e}</span>`;else V.textContent=e}},Z=(V,H,k,r,f=!1)=>{let d=w;if(_){if(y){let e=y(H);if(e>=0&&(e&1)===1)d+=` ${q2}`}else if((H&1)===1)d+=` ${q2}`}if(f)d+=` ${U2}`;if(k)d+=` ${g}`;if(r)d+=` ${x}`;V.className=d},M=(V,H,k)=>{if(k?.compression?.isCompressed)return Math.round(F2(V,k.scrollPosition,H,k.totalItems,k.containerSize,k.compression,k.rangeStart));return H.getOffset(V)},X=(V,H)=>{let k=H.def.align;if(k==="center")V.classList.add(c),V.classList.remove(i);else if(k==="right")V.classList.add(i),V.classList.remove(c);else V.classList.remove(c,i)},v=(V,H)=>{let r=P.columns.length;if(H.length===r)return H;let f=[];for(let d=0;d<r;d++){let e;if(d<H.length)e=H[d];else e=document.createElement("div"),e.className=Y2,V.appendChild(e);f.push(e)}for(let d=r;d<H.length;d++)H[d].remove();return f},l=(V,H,k,r)=>{let f=O.acquire(),d=V,e=k.getSize(H),F=M(H,k,r);f.style.cssText=`width:${P.totalWidth}px;height:${e}px;transform:translateY(${F}px)`,f.className=u,A(f,"presentation",V.id,H),f.removeAttribute("aria-selected"),f.removeAttribute("aria-rowindex"),f.replaceChildren();let I=document.createElement("div");if(I.className=m,W){let h=W(d.groupKey,d.groupIndex);if(typeof h==="string")I.innerHTML=h;else I.appendChild(h)}return f.appendChild(I),{element:f,cells:[],index:H,isGroupHeader:!0,lastItemId:V.id,lastSelected:!1,lastFocused:!1,lastOffset:F,lastHeight:e}},a=(V,H,k,r,f,d)=>{let e=O.acquire(),F=f.getSize(H),I=M(H,f,d),h=z(V.id);e.style.cssText=`width:${P.totalWidth}px;height:${F}px;transform:translateY(${I}px)`,Z(e,H,k,r,h),A(e,"row",V.id,H),e.id=`${j}-${H}`,e.setAttribute("aria-rowindex",String(H+2)),D(e,k);let $2=v(e,[]),J2=P.columns;for(let X2=0;X2<$2.length&&X2<J2.length;X2++){let N2=$2[X2],D2=J2[X2];N2.style.cssText=`left:${D2.offset}px;width:${D2.width}px`,N2.setAttribute("role","gridcell"),N2.setAttribute("aria-colindex",String(X2+1)),X(N2,D2),E(N2,V,D2,H,h)}return{element:e,cells:$2,index:H,isGroupHeader:!1,lastItemId:V.id,lastSelected:k,lastFocused:r,lastOffset:I,lastHeight:F}},o=(V,H,k,r,f)=>{for(let[h,$2]of N)if(h<H.start||h>H.end)O.release($2.element),N.delete(h);let d=!1,e=B();if(e!==T)T=e,d=!0;let F=null,I=Q();y=typeof _==="string"&&b?b():null;for(let h=H.start;h<=H.end;h++){let $2=h-H.start,J2=V[$2];if(!J2)continue;let X2=k.has(J2.id),N2=h===r,D2=G?G(J2):!1,n=N.get(h);if(n){if(n.isGroupHeader!==D2){O.release(n.element),N.delete(h);let Q2=D2?l(J2,h,I,f):a(J2,h,X2,N2,I,f);if(N.set(h,Q2),!F)F=document.createDocumentFragment();F.appendChild(Q2.element);continue}if(D2){if(n.lastItemId!==J2.id){let j2=J2,K2=n.element.firstElementChild;if(K2&&W){let G2=W(j2.groupKey,j2.groupIndex);if(typeof G2==="string")K2.innerHTML=G2;else K2.replaceChildren(G2)}n.element.setAttribute("data-id",String(J2.id)),n.lastItemId=J2.id}let Z2=M(h,I,f);if(n.lastOffset!==Z2)n.lastOffset=Z2,n.element.style.transform=`translateY(${Z2}px)`;let t=I.getSize(h);if(n.lastHeight!==t)n.lastHeight=t,n.element.style.height=`${t}px`}else{let Q2=n.lastItemId!==J2.id,Z2=n.lastSelected!==X2,t=n.lastFocused!==N2;if(Q2){let G2=n.lastItemId!=null&&z(n.lastItemId),_2=z(J2.id);if(!_2&&E2(k,h,J2.id))X2=!0;let V2=P.columns;for(let W2=0;W2<n.cells.length&&W2<V2.length;W2++)E(n.cells[W2],J2,V2[W2],h,_2);if(Z(n.element,h,X2,N2,_2),n.element.setAttribute("data-id",String(J2.id)),D(n.element,X2),G2&&!_2)n.element.classList.add(B2),setTimeout(()=>{n.element.classList.remove(B2)},300);n.lastItemId=J2.id,n.lastSelected=X2,n.lastFocused=N2}else if(Z2||t)Z(n.element,h,X2,N2,z(J2.id)),D(n.element,X2),n.lastSelected=X2,n.lastFocused=N2;let j2=M(h,I,f);if(n.lastOffset!==j2)n.lastOffset=j2,n.element.style.transform=`translateY(${j2}px)`;let K2=I.getSize(h);if(n.lastHeight!==K2)n.lastHeight=K2,n.element.style.height=`${K2}px`;if(d)n.element.setAttribute("aria-rowindex",String(h+2))}}else{if(E2(k,h,J2.id))X2=!0;let Q2=D2?l(J2,h,I,f):a(J2,h,X2,N2,I,f);if(N.set(h,Q2),!F)F=document.createDocumentFragment();F.appendChild(Q2.element)}}if(F)J.appendChild(F)},S=(V)=>{let H=Q();for(let[k,r]of N){let f=M(k,H,V);if(r.lastOffset!==f)r.lastOffset=f,r.element.style.transform=`translateY(${f}px)`}},s=(V,H,k,r)=>{let f=N.get(V);if(!f)return;if(f.isGroupHeader)return;let d=P.columns;for(let e=0;e<f.cells.length&&e<d.length;e++)E(f.cells[e],H,d[e],V);f.element.setAttribute("data-id",String(H.id)),f.lastItemId=H.id,Z(f.element,V,k,r),D(f.element,k),f.lastSelected=k,f.lastFocused=r},L=(V,H,k)=>{let r=N.get(V);if(!r)return;if(r.isGroupHeader)return;let f=r.lastSelected!==H,d=r.lastFocused!==k;if(f||d)Z(r.element,V,H,k),D(r.element,H),r.lastSelected=H,r.lastFocused=k},C=(V)=>{P=V;let H=V.columns;for(let[,k]of N)if(k.element.style.width=`${V.totalWidth}px`,k.cells.length>0)for(let r=0;r<k.cells.length&&r<H.length;r++){let f=k.cells[r],d=H[r];f.style.left=`${d.offset}px`,f.style.width=`${d.width}px`}},U=(V)=>{return N.get(V)?.element},R=()=>{for(let[,V]of N)O.release(V.element);N.clear(),T=-1};return{render:o,updatePositions:S,updateItem:s,updateItemClasses:L,getElement:U,updateColumnLayout:C,setGroupHeaderFn:K,clear:R,destroy:()=>{R(),O.clear()}}};var _J=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.containerSize,q=0,j=[],B=()=>{let K=(Q-1)*Y;q=Math.max(0,($-K)/Q),j=Array(Q);let D=q+Y;for(let A=0;A<Q;A++)j[A]=A*D};B();let _=[],b=0,O=[],N=(K)=>{let D=0,A=K[0];for(let z=1;z<K.length;z++){let w=K[z];if(w<A)A=w,D=z}return D},T=(K,D)=>{if(K<=0)return b=0,_=[],[];let A=Array(Q).fill(0),z=Array(Q);for(let x=0;x<Q;x++)z[x]=[];let w=Array(K);for(let x=0;x<K;x++){let Y2=N(A),c=D(x),i=A[Y2];w[x]={index:x,x:j[Y2],y:i,lane:Y2,size:c,crossSize:q},z[Y2].push(x),A[Y2]=i+c+Y}_=z;let g=0;for(let x=0;x<Q;x++){let Y2=A[x],c=Y2>0?Y2-Y:0;if(c>g)g=c}return b=g,w},P=(K)=>{if(K.length===0)return b>0?b:0;if(b>0)return b;let D=Array(Q).fill(0);for(let z of K){let w=z.y+z.size,g=D[z.lane];if(w>g)D[z.lane]=w}let A=0;for(let z=0;z<Q;z++)if(D[z]>A)A=D[z];return A},y=(K,D,A)=>{if(K.length===0||A<=D)return O.length=0,O;if(_.length===0||_.length!==Q)return G(K,D,A);O.length=0;for(let z=0;z<Q;z++){let w=_[z],g=w.length;if(g===0)continue;let x=0,Y2=g;while(x<Y2){let c=x+Y2>>>1,i=K[w[c]];if(i.y+i.size<=D)x=c+1;else Y2=c}for(let c=x;c<g;c++){let i=K[w[c]];if(i.y>=A)break;O.push(i)}}return O},G=(K,D,A)=>{let z=[];for(let w of K)if(w.y+w.size>D&&w.y<A)z.push(w);return z};return{get columns(){return Q},get gap(){return Y},get containerSize(){return $},update:(K)=>{let D=!1;if(K.columns!==void 0){let A=Math.max(1,Math.floor(K.columns));if(A!==Q)Q=A,D=!0}if(K.gap!==void 0&&K.gap!==Y)Y=K.gap,D=!0;if(K.containerSize!==void 0&&K.containerSize!==$)$=K.containerSize,D=!0;if(D)B()},calculateLayout:T,getTotalSize:P,getVisibleItems:y}};var xJ=(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}}},gJ=1,DJ=(J,Q,Y,$=!1,q,j,B)=>{let _=xJ(),b=new Map,O=new Set,N=0,T="",P=-1,y={selected:!1,focused:!1},G=(u,m)=>{return y.selected=u,y.focused=m,y},W=`${Y}-item ${Y}-masonry-item`,K=`${Y}-group-header`,D=`${Y}-item--selected`,A=`${Y}-item--focused`,z=(u,m)=>{if(typeof m==="string")u.innerHTML=m;else u.replaceChildren(m)},w=(u,m,E)=>{u.classList.toggle(D,m),u.classList.toggle(A,E)},g=(u,m)=>{if($)u.style.transform=`translate(${Math.round(m.y)}px, ${Math.round(m.x)}px)`;else u.style.transform=`translate(${Math.round(m.x)}px, ${Math.round(m.y)}px)`},x=(u,m)=>{if($)u.style.width=`${m.size}px`,u.style.height=`${m.crossSize}px`;else u.style.width=`${m.crossSize}px`,u.style.height=`${m.size}px`},Y2=(u,m,E,Z,M)=>{let X=_.acquire(),v=!!m.__groupHeader,l=G(Z,M);if(X.className=v?K:W,X.dataset.index=String(u),X.dataset.id=String(m.id),X.dataset.lane=String(E.lane),v)X.setAttribute("role","presentation"),X.removeAttribute("aria-selected"),X.removeAttribute("aria-setsize"),X.removeAttribute("aria-posinset"),X.removeAttribute("id");else{if(X.setAttribute("role","option"),X.ariaSelected=String(Z),j)X.id=`${j}-item-${u}`;if(q){let o=q();if(o!==P)P=o,T=String(o);X.setAttribute("aria-setsize",T);let S=B?B(u):u+1;X.setAttribute("aria-posinset",String(S))}}x(X,E);let a=Q(m,u,l);return z(X,a),w(X,Z,M),g(X,E),{element:X,lastItemId:m.id,lastSelected:Z,lastFocused:M,lastY:E.y,lastX:E.x,lastSize:E.size,lastCrossSize:E.crossSize,lastSeenFrame:N}},c=(u,m,E,Z)=>{N++,O.clear();for(let X=0;X<m.length;X++)O.add(m[X].index);for(let[X,v]of b)if(O.has(X))v.lastSeenFrame=N;else if(N-v.lastSeenFrame>gJ)_.release(v.element),b.delete(X);let M=null;for(let X=0;X<m.length;X++){let v=m[X],l=v.index,a=u(l);if(!a)continue;let o=E.has(a.id),S=l===Z,s=b.get(l);if(s){let L=s.lastItemId!==a.id,C=s.lastSelected!==o,U=s.lastFocused!==S,R=s.lastY!==v.y||s.lastX!==v.x,p=s.lastSize!==v.size||s.lastCrossSize!==v.crossSize;if(L){let V=G(o,S),H=Q(a,l,V);if(z(s.element,H),s.element.dataset.id=String(a.id),s.lastItemId=a.id,!a.__groupHeader){let r=B?B(l):l+1;s.element.setAttribute("aria-posinset",String(r))}}if(L||C||U)w(s.element,o,S),s.element.ariaSelected=String(o),s.lastSelected=o,s.lastFocused=S;if(p)x(s.element,v),s.lastSize=v.size,s.lastCrossSize=v.crossSize;if(R)g(s.element,v),s.lastY=v.y,s.lastX=v.x}else{let L=Y2(l,a,v,o,S);if(!M)M=document.createDocumentFragment();M.appendChild(L.element),b.set(l,L)}}if(M)J.appendChild(M)},i=()=>{for(let{element:u}of b.values())_.release(u);b.clear(),J.innerHTML=""};return{render:c,getElement:(u)=>b.get(u)?.element,updateItemClasses:(u,m,E)=>{let Z=b.get(u);if(!Z)return;let M=Z.lastSelected!==m,X=Z.lastFocused!==E;if(M||X)w(Z.element,m,E),Z.lastSelected=m,Z.lastFocused=E},sortDOM:()=>{T2(J,b.keys(),(u)=>b.get(u)?.element)},clear:i,destroy:()=>{i(),_.clear()}}};var GJ=(J,Q)=>{let Y=new Map,$=(j)=>{let B=Y.get(j);return B!==void 0?B:J},q=L2($,Q);return{getOffset(j){return q.getOffset(j)},getSize(j){return $(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 Y.keys())if(B>=j)Y.delete(B)}q=L2($,j)},isVariable(){return!0},setMeasuredSize(j,B){Y.set(j,B)},isMeasured(j){return Y.has(j)},getEstimatedSize(){return J},measuredCount(){return Y.size}}};var VJ=(J,Q,Y,$,q,j)=>{if($===0||Q===0)return j.start=0,j.end=-1,j;let B=Y.indexAtOffset(J),_=Y.indexAtOffset(J+Q);if(_<$-1)_++;return j.start=Math.max(0,B),j.end=Math.min($-1,Math.max(0,_)),j},WJ=(J,Q,Y,$)=>{if(Y===0)return $.start=0,$.end=-1,$;return $.start=Math.max(0,J.start-Q),$.end=Math.min(Y-1,J.end+Q),$},MJ=(J,Q,Y,$,q,j)=>{if($===0)return 0;let B=Math.max(0,Math.min(J,$-1)),_=Q.getOffset(B),b=Q.getSize(B),O=Q.getTotalSize(),N=Math.max(0,O-Y),T;switch(j){case"center":T=_-Y/2+b/2;break;case"end":T=_-Y+b;break;case"start":default:T=_;break}return Math.max(0,Math.min(T,N))},OJ=(J,Q,Y)=>{if(Y&&Y.isCompressed)return Y.virtualSize;return Q.getTotalSize()},AJ=(J,Q)=>{return Q.getTotalSize()},EJ=(J,Q)=>{return Q.getOffset(J)},FJ=(J,Q,Y)=>{let $=Math.max(0,Q-Y);return Math.max(0,Math.min(J,$))};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)$.push(q);for(let q=Q.start;q<=Q.end;q++)if(q<J.start||q>J.end)Y.push(q);return{add:Y,remove:$}};var yJ=()=>{let J={},Q=(j,B)=>{if(!J[j])J[j]=new Set;return J[j].add(B),()=>Y(j,B)},Y=(j,B)=>{J[j]?.delete(B)};return{on:Q,off:Y,emit:(j,B)=>{J[j]?.forEach((_)=>{try{_(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 R2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:Y=5000,evictionBuffer:$=200,onEvict:q}=J,j=new Map,B=0,_=0,b=(E)=>{let Z=j.get(E);if(!Z)Z={items:Array(Q),count:0,lastAccess:Date.now()},j.set(E,Z);else Z.lastAccess=Date.now();return Z},O=(E)=>{return Math.floor(E/Q)},N=(E)=>{return E%Q},T=()=>B,P=(E)=>{B=E},y=(E)=>{if(E<0||E>=B)return;let Z=O(E),M=j.get(Z);if(!M)return;return M.items[N(E)]},G=(E)=>{if(E<0||E>=B)return!1;let Z=O(E),M=j.get(Z);if(!M)return!1;return M.items[N(E)]!==void 0},W=(E,Z)=>{let M=O(E),X=b(M),v=N(E),l=X.items[v]===void 0;if(X.items[v]=Z,l)X.count++,_++;if(E>=B)B=E+1},K=(E,Z)=>{for(let M=0;M<Z.length;M++){let X=Z[M];if(X!==void 0)W(E+M,X)}},D=(E)=>{if(E<0||E>=B)return!1;let Z=O(E),M=j.get(Z),X=N(E);if(!(M!==void 0&&M.items[X]!==void 0))return!1;let l=Z,a=Array.from(j.keys()).filter((S)=>S>=l).sort((S,s)=>S-s),o=[];for(let S of a){let s=j.get(S),L=S*Q;for(let C=0;C<Q;C++){if(s.items[C]===void 0)continue;let U=L+C;if(U<=E)continue;o.push({oldIndex:U,item:s.items[C]})}}if(M.items[X]=void 0,M.count--,_--,M.count===0)j.delete(Z);for(let{oldIndex:S}of o){let s=O(S),L=j.get(s);if(!L)continue;let C=N(S);if(L.items[C]!==void 0){if(L.items[C]=void 0,L.count--,_--,L.count===0)j.delete(s)}}for(let{oldIndex:S,item:s}of o){let L=S-1,C=O(L),U=b(C),R=N(L);U.items[R]=s,U.count++,_++}return B--,!0},A=(E,Z)=>{let M=[];for(let X=E;X<=Z&&X<B;X++)M.push(y(X));return M},z=(E,Z)=>{for(let M=E;M<=Z&&M<B;M++)if(!G(M))return!1;return!0},w=()=>{let E=[],Z=null,M=Array.from(j.keys()).sort((X,v)=>X-v);for(let X of M){let v=j.get(X);if(!v)continue;let l=X*Q;for(let a=0;a<Q;a++){let o=l+a;if(o>=B)break;if(v.items[a]!==void 0)if(Z===null)Z={start:o,end:o};else if(o===Z.end+1)Z.end=o;else E.push(Z),Z={start:o,end:o};else if(Z!==null)E.push(Z),Z=null}}if(Z!==null)E.push(Z);return E},g=(E,Z)=>{let M=[],X=null;for(let v=E;v<=Z&&v<B;v++)if(!G(v))if(X===null)X={start:v,end:v};else X.end=v;else if(X!==null)M.push(X),X=null;if(X!==null)M.push(X);return M},x=(E)=>{return j.has(E)},Y2=(E)=>{let Z=j.get(E);if(Z)Z.lastAccess=Date.now()},c=(E,Z)=>{if(E>Z||j.size===0)return;let M=Date.now(),X=O(Math.max(0,E)),v=O(Math.min(B-1,Z));for(let l=X;l<=v;l++){let a=j.get(l);if(a)a.lastAccess=M}},i=(E,Z)=>{if(_<=Y)return 0;let M=Math.max(0,E-$),X=Math.min(B-1,Z+$),v=O(M),l=O(X),a=0,o=[];for(let[S,s]of j)if(S<v||S>l)a+=s.count,o.push(S),_-=s.count,j.delete(S);if(a>0&&q)q(a,o);return a},q2=()=>{if(_<=Y)return 0;let E=Array.from(j.entries()).sort(([,X],[,v])=>X.lastAccess-v.lastAccess),Z=0,M=[];for(let[X,v]of E){if(_<=Y)break;Z+=v.count,_-=v.count,M.push(X),j.delete(X)}if(Z>0&&q)q(Z,M);return Z},U2=()=>{return{totalItems:B,cachedItems:_,cachedChunks:j.size,chunkSize:Q,maxCachedItems:Y,memoryEfficiency:B>0?1-_/B:1}},B2=()=>_,u=()=>{j.clear(),_=0};return{chunkSize:Q,maxCachedItems:Y,getTotal:T,setTotal:P,get:y,has:G,set:W,setRange:K,delete:D,getRange:A,isRangeLoaded:z,getLoadedRanges:w,findUnloadedRanges:g,getChunkIndex:O,isChunkLoaded:x,touchChunk:Y2,touchChunksForRange:c,evictDistant:i,evictToLimit:q2,getStats:U2,getCachedCount:B2,clear:u,reset:()=>{u(),B=0}}},y2=(J)=>{if(J.length===0)return[];let Q=[...J].sort(($,q)=>$.start-q.start),Y=[{...Q[0]}];for(let $=1;$<Q.length;$++){let q=Q[$],j=Y[Y.length-1];if(q.start<=j.end+1)j.end=Math.max(j.end,q.end);else Y.push({...q})}return Y},p2=(J,Q,Y)=>{let $=Math.floor(J.start/Y)*Y,q=Math.ceil((J.end+1)/Y)*Y-1,j={start:$,end:q};if(Q.length===0)return[j];let B=[],_=y2(Q),b=j.start;for(let O of _){if(O.end<b)continue;if(O.start>j.end)break;if(O.start>b)B.push({start:b,end:Math.min(O.start-1,j.end)});if(b=O.end+1,b>j.end)break}if(b<=j.end)B.push({start:b,end:j.end});return B};var P2=(J={})=>{let{maskCharacter:Q=l2,maxSampleSize:Y=a2}=J,$=[],q=!1,j=(N)=>{if(q||N.length===0)return;let T=Math.min(N.length,Y);for(let P=0;P<T;P++){let y=N[P];if(!y||typeof y!=="object")continue;let G={};for(let[W,K]of Object.entries(y)){if(W.startsWith("_")||W==="id")continue;G[W]=String(K??"").length}if(Object.keys(G).length>0)$.push(G)}q=!0},B=()=>q,_=(N)=>{let T={id:`${O2}${N}`,[v2]:!0,_index:N};if($.length===0)return T.label=Q.repeat(12),T;let P=$[N%$.length];for(let[y,G]of Object.entries(P))T[y]=Q.repeat(Math.max(1,G));return T};return{analyzeStructure:j,hasAnalyzedStructure:B,generate:_,generateRange:(N,T)=>{let P=[];for(let y=N;y<=T;y++)P.push(_(y));return P},clear:()=>{$=[],q=!1}}},A2=(J)=>{if(!J||typeof J!=="object")return!1;return J[v2]===!0},h2=(J)=>{return J.filter((Q)=>!A2(Q))};var mJ=50,PJ=(J={})=>{let{adapter:Q,initialItems:Y,initialTotal:$,storage:q,placeholder:j,pageSize:B=mJ,onStateChange:_,onItemsLoaded:b,onItemsEvicted:O}=J,N=R2({...q,onEvict:(F,I)=>{O?.(F),c()}}),T=null,P=()=>{if(!T)T=P2(j);return T},y=new Map,G=!1,W,K=!0,D,A,z=[],w=0,g=new Map,x=new Map,Y2=()=>{for(let F of x.values())F.abort();x.clear(),g.clear()},c=()=>{_?.(M())},i=()=>{y.clear();let F=N.getLoadedRanges();for(let I of F)for(let h=I.start;h<=I.end;h++){let $2=N.get(h);if($2&&!A2($2))y.set($2.id,h)}},q2=(F,I)=>{if(!A2(I))y.set(I.id,F)},U2=(F)=>{y.delete(F)},B2=(F,I)=>{return`${F}-${I}`},u=()=>N.getTotal(),m=()=>N.getCachedCount(),E=()=>G,Z=()=>K,M=()=>({total:N.getTotal(),cached:N.getCachedCount(),isLoading:G,pendingRanges:z,error:W,hasMore:K,cursor:D}),X=()=>N,v=()=>P(),l=(F)=>{let I=N.get(F);if(I!==void 0)return I;if(F>=0&&F<N.getTotal())return P().generate(F);return},a=(F)=>{let I=y.get(F);if(I===void 0)return;return N.get(I)},o=(F)=>{return y.get(F)??-1},S=(F)=>{let I=N.get(F);return I!==void 0&&!A2(I)},s=(F,I)=>{let h=[],$2=N.getTotal(),J2=0,X2=0;N.touchChunksForRange(F,Math.min(I,$2-1));for(let N2=F;N2<=I&&N2<$2;N2++){let D2=N.get(N2);if(D2!==void 0)h.push(D2),J2++;else h.push(P().generate(N2)),X2++}return h},L=(F)=>{N.setTotal(F),K=N.getCachedCount()<F,c()},C=(F,I=0,h)=>{if(Q&&F.length>0){let $2=P();if(!$2.hasAnalyzedStructure())$2.analyzeStructure(F)}for(let $2=0;$2<F.length;$2++){let J2=F[$2];if(J2!==void 0){let X2=I+$2;N.set(X2,J2),q2(X2,J2)}}if(h!==void 0)N.setTotal(h);else if(I+F.length>N.getTotal())N.setTotal(I+F.length);if(N.getCachedCount()>=N.getTotal()&&N.getTotal()>0)K=!1;c(),b?.(F,I,N.getTotal())},U=(F,I)=>{let h=N.get(F);if(!h)return!1;let $2=h.id,J2={...h,...I};if(N.set(F,J2),I.id!==void 0&&I.id!==$2)U2($2);return q2(F,J2),c(),!0},R=(F)=>{let I=y.get(F);if(I===void 0)return!1;if(!N.delete(I))return!1;return i(),Y2(),c(),!0},p=async(F,I)=>{if(!Q)return;let h=B2(F,I);if(g.has(h))return;let $2=N.chunkSize,J2=Math.floor(F/$2),X2=Math.floor(I/$2),N2=$2*2;for(let[Q2,Z2]of x){let t=Q2.indexOf("-"),j2=parseInt(Q2.slice(0,t),10);if(Math.abs(j2-F)>N2)Z2.abort(),x.delete(Q2),g.delete(Q2)}let D2=[];for(let Q2=J2;Q2<=X2;Q2++){let Z2=Q2*$2,t=Z2+$2-1,j2=B2(Z2,t);if(!N.isChunkLoaded(Q2)&&!g.has(j2))D2.push({start:Z2,end:t})}if(D2.length===0)return;let n=[];for(let Q2=J2;Q2<=X2;Q2++){let Z2=Q2*$2,t=Z2+$2-1,j2=B2(Z2,t);if(g.has(j2)){let K2=g.get(j2);if(!n.includes(K2))n.push(K2)}}for(let Q2 of D2){let Z2=B2(Q2.start,Q2.end),t=new AbortController;x.set(Z2,t);let j2=(async()=>{z.push(Q2),G=!0,W=void 0,c();try{let K2=Q2.end-Q2.start+1,G2={offset:Q2.start,limit:K2,cursor:Q2.start===A?D:void 0,signal:t.signal},_2=await Q.read(G2);if(C(_2.items,Q2.start,_2.total),_2.cursor)D=_2.cursor,A=Q2.start+_2.items.length;let V2=Q2.start+_2.items.length;if(V2>=w){if(w=V2,_2.hasMore!==void 0)K=_2.hasMore;else if(_2.total!==void 0)K=V2<_2.total}}catch(K2){if(K2?.name==="AbortError")return;W=K2 instanceof Error?K2:Error(String(K2))}finally{g.delete(Z2),x.delete(Z2),z=z.filter((K2)=>K2.start!==Q2.start||K2.end!==Q2.end),G=g.size>0,c()}})();g.set(Z2,j2),n.push(j2)}await Promise.all(n)},V=async(F,I)=>{if(N.isRangeLoaded(F,I))return;await p(F,I)},H=async()=>{if(!Q)return;await p(0,B-1)},k=async()=>{if(!Q||G||!K)return!1;let F=N.getCachedCount(),I=N.getTotal(),h=F,$2=Math.min(h+B-1,I>0?I-1:h+B-1);if(h>=I&&I>0)return K=!1,!1;return await p(h,$2),N.getCachedCount()>F},r=async()=>{if(N.clear(),N.setTotal(0),y.clear(),T)T.clear();Y2(),z=[],G=!1,D=void 0,A=void 0,K=!0,w=0,W=void 0,c()},f=(F,I)=>{if(N.evictDistant(F,I)>0)i()},d=()=>{N.clear(),y.clear(),D=void 0,A=void 0,W=void 0,z=[],G=!1,c()},e=()=>{if(N.reset(),y.clear(),T)T.clear();D=void 0,A=void 0,K=!0,w=0,W=void 0,z=[],G=!1,c()};if(Y&&Y.length>0)C(Y,0,$??Y.length);else if($!==void 0)N.setTotal($),c();return{getState:M,getTotal:u,getCached:m,getIsLoading:E,getHasMore:Z,getStorage:X,getPlaceholders:v,getItem:l,getItemById:a,getIndexById:o,isItemLoaded:S,getItemsInRange:s,setTotal:L,setItems:C,updateItem:U,removeItem:R,loadRange:p,ensureRange:V,loadInitial:H,loadMore:k,reload:r,evictDistant:f,clear:d,reset:e}};var kJ=(J=0)=>{let Q=[,,,,,,,,];for(let Y=0;Y<8;Y++)Q[Y]={position:0,time:0};return{velocity:0,lastPosition:J,lastTime:performance.now(),samples:Q,sampleIndex:0,sampleCount:0}},k2=(J,Q)=>{let Y=performance.now(),$=Y-J.lastTime;if($===0)return J;if($>100){J.sampleCount=0,J.sampleIndex=0,J.velocity=0;let j=J.samples[0];return j.position=Q,j.time=Y,J.sampleIndex=1,J.sampleCount=1,J.lastPosition=Q,J.lastTime=Y,J}let q=J.samples[J.sampleIndex];if(q.position=Q,q.time=Y,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],_=Q-B.position,b=Y-B.time;J.velocity=b>0?_/b:0}return J.lastPosition=Q,J.lastTime=Y,J},dJ=(J)=>J.sampleCount>=3,zJ=(J,Q={})=>{let{wheel:Y=!0,sensitivity:$=1,smoothing:q=!1,idleTimeout:j=150,onScroll:B,onIdle:_,scrollElement:b,horizontal:O=!1}=Q,N=!!b,T=0,P=0,y=N?O?window.innerWidth:window.innerHeight:O?J.clientWidth:J.clientHeight,G=Q.compressed??!1,W=Q.compression,K=kJ(),D=!1,A=null,w=z2(()=>{let U=O?J.scrollLeft:J.scrollTop,R=U>=T?"down":"up";if(K=k2(K,U),T=U,B)B({scrollTop:T,direction:R,velocity:K.velocity});q2()}),x=z2(()=>{let U=J.getBoundingClientRect(),R=O?Math.max(0,-U.left):Math.max(0,-U.top),p=R>=T?"down":"up";if(K=k2(K,R),T=R,!D)D=!0;if(B)B({scrollTop:T,direction:p,velocity:K.velocity});q2()}),Y2=(U)=>{U.preventDefault()},c=(U)=>{if(U.deltaX)return;U.preventDefault(),J.scrollLeft+=U.deltaY},i=(U)=>{if(!G)return;U.preventDefault();let R=(O?U.deltaX||U.deltaY:U.deltaY)*$,p=T+R;if(q)p=T+R*0.3;if(p=Math.max(0,Math.min(p,P)),p!==T){let H=p>=T?"down":"up";if(K=k2(K,p),T=p,!D)D=!0;if(B)B({scrollTop:T,direction:H,velocity:K.velocity});q2()}},q2=()=>{if(A)clearTimeout(A);A=setTimeout(()=>{if(D=!1,K=kJ(T),_)_()},j)},U2=(U)=>{if(G)return;if(G=!0,W=U,P=U.virtualSize-y,N)return;if(w.cancel(),J.removeEventListener("scroll",w),!Y)J.removeEventListener("wheel",Y2);else if(O)J.removeEventListener("wheel",c);if(O)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",i,{passive:!1});let R=O?J.scrollLeft:J.scrollTop;if(R>0){let p=O?W?.actualSize??J.scrollWidth:W?.actualSize??J.scrollHeight;T=R/p*P}if(O)J.scrollLeft=0;else J.scrollTop=0},B2=()=>{if(!G)return;if(G=!1,N){W=void 0;return}if(J.removeEventListener("wheel",i),O)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",w,{passive:!0}),!Y)J.addEventListener("wheel",Y2,{passive:!1});else if(O)J.addEventListener("wheel",c,{passive:!1});if(W&&T>0){let R=T/P*(W.actualSize-y);if(O)J.scrollLeft=R;else J.scrollTop=R}W=void 0},u=()=>{if(N||G)return T;return O?J.scrollLeft:J.scrollTop},m=(U,R=!1)=>{let p=Math.max(0,Math.min(U,P||1/0));if(N){let V=J.getBoundingClientRect();if(O){let H=V.left+window.scrollX;window.scrollTo({left:H+p,behavior:R?"smooth":"auto"})}else{let H=V.top+window.scrollY;window.scrollTo({top:H+p,behavior:R?"smooth":"auto"})}}else if(G){if(p===T)return;let H=p>=T?"down":"up";if(K=k2(K,p),T=p,!D)D=!0;if(B)B({scrollTop:T,direction:H,velocity:K.velocity});q2()}else if(O)J.scrollTo({left:p,behavior:R?"smooth":"auto"});else J.scrollTo({top:p,behavior:R?"smooth":"auto"})},E=(U)=>{m(u()+U)},Z=()=>{return u()<=0},M=(U=0)=>{let R=u(),p=N||G?P:O?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return R>=p-U},X=()=>{let U=u(),R=N||G?P:O?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(R<=0)return 0;return Math.min(1,Math.max(0,U/R))},v=(U)=>{if(U.compression)W=U.compression,P=W.virtualSize-y},l=()=>G,a=()=>Math.abs(K.velocity),o=()=>dJ(K),S=()=>D,s=()=>N,L=(U)=>{if(y=U,W)P=W.virtualSize-y},C=()=>{if(A)clearTimeout(A);if(N)x.cancel(),window.removeEventListener("scroll",x);else w.cancel(),J.removeEventListener("scroll",w),J.removeEventListener("wheel",i),J.removeEventListener("wheel",Y2),J.removeEventListener("wheel",c)};if(N){if(G&&W)P=W.virtualSize-y;window.addEventListener("scroll",x,{passive:!0})}else if(G&&W){if(P=W.virtualSize-y,O)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",i,{passive:!1})}else{if(O)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",w,{passive:!0}),!Y)J.addEventListener("wheel",Y2,{passive:!1});else if(O)J.addEventListener("wheel",c,{passive:!1})}return{getScrollTop:u,scrollTo:m,scrollBy:E,isAtTop:Z,isAtBottom:M,getScrollPercentage:X,getVelocity:a,isTracking:o,isScrolling:S,updateConfig:v,enableCompression:U2,disableCompression:B2,isCompressed:l,isWindowMode:s,updateContainerHeight:L,destroy:C}},z2=(J)=>{let Q=null,Y=null,$=(...q)=>{if(Y=q,Q===null)Q=requestAnimationFrame(()=>{if(Q=null,Y)J(...Y)})};return $.cancel=()=>{if(Q!==null)cancelAnimationFrame(Q),Q=null},$};var cJ=(J)=>{if(typeof J!=="object"){let Q=J??2;return{top:Q,right:Q,bottom:Q,left:Q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},wJ=(J,Q,Y={},$="vlist",q=!1)=>{let{autoHide:j=!0,autoHideDelay:B=1000,minThumbSize:_=15,showOnHover:b=!0,showOnViewportEnter:O=!0,clickBehavior:N="scroll"}=Y,T=N==="page"?"scroll":N,P=cJ(Y.padding),y=q?P.left:P.top,G=q?P.right:P.bottom,W=q?P.bottom:P.right,K=Y.hoverZoneWidth??W+16,D=0,A=0,z=0,w=0,g=!1,x=!1,Y2=0,c=0,i=0,q2=null,U2=!1,B2=null,u=null,m=0,E=0,Z=null,M=null,X=null,v=q?"width":"height",l=q?"translateX":"translateY",a=q?(t)=>t.clientX:(t)=>t.clientY,o=q?"left":"top",S=document.createElement("div"),s=document.createElement("div"),L=document.createElement("div"),C=()=>{if(S.className=`${$}-scrollbar`,s.className=`${$}-scrollbar-thumb`,q)S.classList.add(`${$}-scrollbar--horizontal`);if(Y.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${P.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${P.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${P.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${P.left}px`);if(Y.minThumbSize!==void 0)S.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${_}px`);if(S.appendChild(s),J.appendChild(S),L.className=`${$}-scrollbar-hover`,q)L.classList.add(`${$}-scrollbar-hover--horizontal`),L.style.height=`${K}px`;else L.style.width=`${K}px`;J.appendChild(L)},U=()=>{if(q2)clearTimeout(q2),q2=null},R=()=>{if(!j)return;U(),q2=setTimeout(V,B)},p=()=>{if(D<=A)return;if(U(),!U2)S.classList.add(`${$}-scrollbar--visible`),U2=!0;if(j&&!g&&!x)R()},V=()=>{if(g||x)return;S.classList.remove(`${$}-scrollbar--visible`),U2=!1},H=(t,j2)=>{D=t,A=j2;let K2=D>A;if(S.style.display=K2?"":"none",!K2){V();return}let G2=Math.max(0,A-y-G),_2=A/D;if(z=Math.max(_,_2*G2),s.style[v]=`${z}px`,w=G2-z,k(i),!j)p()},k=(t)=>{if(i=t,D<=A||w<=0)return;let j2=D-A,G2=Math.min(1,Math.max(0,t/j2))*w;s.style.transform=`${l}(${G2}px)`},r=(t)=>{if(t.target===s||T!=="jump"||w<=0)return;let j2=D-A,K2=S.getBoundingClientRect(),G2=a(t)-K2[o],_2=Math.max(0,Math.min(G2-z/2,w));Q(_2/w*j2),p()},f=()=>{if(Z!==null)clearTimeout(Z),Z=null;if(M!==null)cancelAnimationFrame(M),M=null;X=null},d=(t)=>{let j2=w>0?E/t*w:0;if(m<j2)return-1;if(m>=j2+z)return 1;return 0},e=()=>{let t=D-A,j2=d(t);if(j2===0){f();return}if(j2===-1){if(E<=0){f();return}let K2=Math.max(0,E-A);E=K2,Q(K2)}else{if(E>=t){f();return}let K2=Math.min(t,E+A);E=K2,Q(K2)}p()},F=(t)=>{if(X===null){X=t,M=requestAnimationFrame(F);return}let j2=D-A,K2=t-X;X=t;let G2=d(j2);if(G2===0){f();return}let _2=12*A/1000,V2=Math.min(_2*K2,A);if(G2===-1){if(E<=0){f();return}let W2=Math.max(0,E-V2);E=W2,Q(W2)}else{if(E>=j2){f();return}let W2=Math.min(j2,E+V2);E=W2,Q(W2)}U(),M=requestAnimationFrame(F)},I=()=>{f(),R(),document.removeEventListener("mouseup",I)},h=(t)=>{if(t.target===s||T!=="scroll")return;t.preventDefault();let j2=S.getBoundingClientRect();m=a(t)-j2[o],E=i,e(),Z=setTimeout(()=>{M=requestAnimationFrame(F)},350),document.addEventListener("mouseup",I)},$2=(t)=>{t.preventDefault(),t.stopPropagation(),g=!0,Y2=a(t),c=i,U(),S.classList.add(`${$}-scrollbar--dragging`),document.addEventListener("mousemove",J2),document.addEventListener("mouseup",X2)},J2=(t)=>{if(!g)return;let j2=a(t)-Y2,K2=w>0?j2/w:0,G2=D-A,_2=K2*G2,V2=Math.max(0,Math.min(c+_2,G2)),vJ=V2/G2*w;if(s.style.transform=`${l}(${vJ}px)`,u=V2,B2===null)B2=requestAnimationFrame(()=>{if(u!==null)Q(u);B2=null})},X2=()=>{if(g=!1,B2!==null)cancelAnimationFrame(B2),B2=null;if(u!==null)Q(u),u=null;if(S.classList.remove(`${$}-scrollbar--dragging`),j&&!x)R();document.removeEventListener("mousemove",J2),document.removeEventListener("mouseup",X2)},N2=()=>{if(O)p()},D2=()=>{if(!g){if(x=!1,j)R()}},n=()=>{x=!0,U(),p()},Q2=()=>{if(x=!1,!g&&j)R()},Z2=()=>{if(U(),f(),B2!==null)cancelAnimationFrame(B2),B2=null;if(S.removeEventListener("click",r),S.removeEventListener("mousedown",h),S.removeEventListener("mouseenter",n),document.removeEventListener("mouseup",I),S.removeEventListener("mouseleave",Q2),s.removeEventListener("mousedown",$2),J.removeEventListener("mouseenter",N2),J.removeEventListener("mouseleave",D2),document.removeEventListener("mousemove",J2),document.removeEventListener("mouseup",X2),L.removeEventListener("click",r),L.removeEventListener("mousedown",h),b)L.removeEventListener("mouseenter",n),L.removeEventListener("mouseleave",Q2);if(L.parentNode)L.parentNode.removeChild(L);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),S.parentNode)S.parentNode.removeChild(S)};if(C(),S.addEventListener("click",r),S.addEventListener("mousedown",h),S.addEventListener("mouseenter",n),S.addEventListener("mouseleave",Q2),s.addEventListener("mousedown",$2),J.addEventListener("mouseenter",N2),J.addEventListener("mouseleave",D2),L.addEventListener("click",r),L.addEventListener("mousedown",h),b)L.addEventListener("mouseenter",n),L.addEventListener("mouseleave",Q2);return{show:p,hide:V,updateBounds:H,updatePosition:k,isVisible:()=>U2,destroy:Z2}};var rJ=50,lJ=0.1;function aJ(J){let Q=0,Y=0,$=0;function q(){return $>0?Y/$:0}function j(b){if(Q=b,b>lJ&&b<rJ)Y+=b,$++}function B(){let b=J.getTotal();if(b===0)return 0;let O=J.getItemSize();if(O<=0)return 0;let N=J.getContainerSize();if(N<=0)return 0;let T=J.getScrollPosition(),P=typeof J.getColumns==="function"?J.getColumns():1,G=Math.ceil(b/P)*O,K=Math.min(G,M2)-N,D=G-N,A=K>0?D/K:1,z=T*A,w=Math.ceil((z+N)/O);return Math.min(w*P,b)}function _(){let b=J.getTotal(),O=B();return{progress:b>0?Math.min(100,Math.max(0,O/b*100)):0,velocity:Q,velocityAvg:q(),itemCount:O,total:b}}return{getState:_,onVelocity:j}}export{n2 as toggleSelection,VJ as simpleVisibleRange,C2 as selectItems,o2 as selectAll,HJ as rangesEqual,z2 as rafThrottle,qJ as needsScaling,y2 as mergeRanges,t2 as isSelected,A2 as isPlaceholderItem,bJ as isInRange,b2 as isGroupHeader,JJ as getSelectedItems,e2 as getSelectedIds,H2 as getScaleState,KJ as getScaleInfo,H2 as getScale,TJ as getRangeCount,BJ as getMaxItemsWithoutScaling,h2 as filterPlaceholders,RJ as diffRanges,f2 as deselectItems,ZJ as createTableRenderer,UJ as createTableLayout,NJ as createTableHeader,c2 as createStickyHeader,aJ as createStats,R2 as createSparseStorage,L2 as createSizeCache,s2 as createSelectionState,wJ as createScrollbar,zJ as createScrollController,P2 as createPlaceholderManager,GJ as createMeasuredSizeCache,DJ as createMasonryRenderer,_J as createMasonryLayout,m2 as createGroupedSizeFn,d2 as createGroupLayout,XJ 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,F2 as calculateScaledItemPosition,WJ as calculateRenderRange,p2 as calculateMissingRanges,EJ as calculateItemOffset,jJ as calculateIndexFromScrollPosition,AJ as calculateActualSize,u2 as buildLayoutItems,M2 as MAX_VIRTUAL_SIZE};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vlist/rendering -- ARIA position resolvers
|
|
3
|
+
*
|
|
4
|
+
* Lazy-resolves _getTotal and _layoutToDataIndex from the methods map
|
|
5
|
+
* so that aria-setsize uses data total (not layout total including
|
|
6
|
+
* group headers) and aria-posinset uses data-space position.
|
|
7
|
+
*/
|
|
8
|
+
export interface AriaResolvers {
|
|
9
|
+
getSetSize: () => number;
|
|
10
|
+
getPosInSet: (layoutIndex: number) => number;
|
|
11
|
+
}
|
|
12
|
+
export declare const createAriaResolvers: (methods: Map<string, Function>, fallbackTotal: () => number) => AriaResolvers;
|
|
13
|
+
//# sourceMappingURL=aria.d.ts.map
|
|
@@ -86,7 +86,7 @@ export declare const createElementPool: (tagName?: string, maxSize?: number) =>
|
|
|
86
86
|
export declare const createRenderer: <T extends VListItem = VListItem>(itemsContainer: HTMLElement, template: ItemTemplate<T>, sizeCache: SizeCache, classPrefix: string, totalItemsGetter?: () => number, ariaIdPrefix?: string, horizontal?: boolean, crossAxisSize?: number, compressionFns?: {
|
|
87
87
|
getState: CompressionStateFn;
|
|
88
88
|
getPosition: CompressedPositionFn;
|
|
89
|
-
}, striped?: boolean | "data" | "even" | "odd", stripeIndexFn?: () => (index: number) => number) => Renderer<T>;
|
|
89
|
+
}, striped?: boolean | "data" | "even" | "odd", stripeIndexFn?: () => (index: number) => number, ariaPosInSetGetter?: (layoutIndex: number) => number) => Renderer<T>;
|
|
90
90
|
/**
|
|
91
91
|
* Create the vlist DOM structure
|
|
92
92
|
*/
|
package/dist/size.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"base":{"minified":"
|
|
1
|
+
{"base":{"minified":"29.4","gzipped":"11.2","minBytes":30070,"gzBytes":11516},"withGrid":{"minified":"41.9","gzipped":"15.2","minBytes":42901,"gzBytes":15586},"withMasonry":{"minified":"39.4","gzipped":"14.8","minBytes":40347,"gzBytes":15114},"withGroups":{"minified":"44.5","gzipped":"15.9","minBytes":45580,"gzBytes":16259},"withAsync":{"minified":"42.1","gzipped":"15.8","minBytes":43095,"gzBytes":16153},"withSelection":{"minified":"40.8","gzipped":"14.5","minBytes":41757,"gzBytes":14818},"withScale":{"minified":"42.4","gzipped":"14.9","minBytes":43451,"gzBytes":15297},"withScrollbar":{"minified":"35.5","gzipped":"13.0","minBytes":36342,"gzBytes":13331},"withPage":{"minified":"31.7","gzipped":"12.0","minBytes":32462,"gzBytes":12288},"withSnapshots":{"minified":"33.2","gzipped":"12.5","minBytes":33964,"gzBytes":12804},"withTable":{"minified":"46.9","gzipped":"16.8","minBytes":48042,"gzBytes":17180},"withSortable":{"minified":"39.3","gzipped":"14.3","minBytes":40232,"gzBytes":14597},"withAutoSize":{"minified":"32.2","gzipped":"12.2","minBytes":32946,"gzBytes":12455}}
|
package/dist/types.d.ts
CHANGED
|
@@ -43,8 +43,15 @@ export interface GroupsConfig {
|
|
|
43
43
|
*
|
|
44
44
|
* Items MUST be pre-sorted by group — the function is called in order
|
|
45
45
|
* and a new header is inserted whenever the return value changes.
|
|
46
|
+
*
|
|
47
|
+
* When used with `withAsync`, the item is passed as the second argument
|
|
48
|
+
* since there is no external array to index into. For static items,
|
|
49
|
+
* the item argument is also provided for convenience but can be ignored.
|
|
50
|
+
*
|
|
51
|
+
* @param index - Data index of the item
|
|
52
|
+
* @param item - The item at this index (always provided; undefined only for unloaded async items)
|
|
46
53
|
*/
|
|
47
|
-
getGroupForIndex: (index: number) => string;
|
|
54
|
+
getGroupForIndex: (index: number, item?: any) => string;
|
|
48
55
|
/**
|
|
49
56
|
* Group header configuration — mirrors the `item` config shape.
|
|
50
57
|
*/
|
|
@@ -241,6 +248,11 @@ export interface ScrollSnapshot {
|
|
|
241
248
|
selectedIds?: Array<string | number>;
|
|
242
249
|
/** Focused item ID (optional, restores keyboard navigation position) */
|
|
243
250
|
focusedId?: string | number;
|
|
251
|
+
/** Raw scroll position at snapshot time. */
|
|
252
|
+
scrollTop?: number;
|
|
253
|
+
/** Scroll position as a fraction of virtual content size (0–1).
|
|
254
|
+
* Used for accurate restore when groups change the layout total. */
|
|
255
|
+
scrollRatio?: number;
|
|
244
256
|
}
|
|
245
257
|
/** Options for scrollToIndex / scrollToItem */
|
|
246
258
|
export interface ScrollToOptions {
|
package/dist/vlist-table.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.vlist--table{display:flex;flex-direction:column;overflow:hidden;min-height:inherit}.vlist--table .vlist-viewport{flex:1;min-height:0;height:auto;overflow:auto}.vlist--table .vlist-table-header{position:static}.vlist--table .vlist-scrollbar
|
|
1
|
+
.vlist--table{display:flex;flex-direction:column;overflow:hidden;min-height:inherit}.vlist--table .vlist-viewport{flex:1;min-height:0;height:auto;overflow:auto}.vlist--table .vlist-table-header{position:static}.vlist--table .vlist-scrollbar-hover{top:var(--vlist-table-header-height,0px);height:calc(100% - var(--vlist-table-header-height,0px))}.vlist--table .vlist-viewport--custom-scrollbar::-webkit-scrollbar{display:block;width:0}.vlist--table .vlist-items{contain:layout style}.vlist-table-header{position:absolute;top:0;left:0;right:0;z-index:5;overflow:hidden;display:flex;align-items:stretch;box-sizing:border-box;will-change:scroll-position;contain:layout style;background-color:var(--vlist-bg,#ffffff);border-bottom:1px solid var(--vlist-border,#e5e7eb);font-weight:600;font-size:0.8125rem;letter-spacing:0.01em;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-scroll{position:relative;display:flex;align-items:stretch;height:100%;min-width:100%;flex-shrink:0}.vlist-table-header-cell{position:relative;display:flex;align-items:center;height:100%;box-sizing:border-box;flex-shrink:0;user-select:none;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);border-right:1px solid transparent;transition:background-color 0.15s ease}.vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-header-cell--sortable{cursor:pointer}.vlist-table-header-cell--sortable:active{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-header-cell--center{justify-content:center}.vlist-table-header-cell--right{justify-content:flex-end}.vlist-table-header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;pointer-events:none}.vlist-table-header-sort{margin-left:4px;flex-shrink:0;opacity:0;font-size:0.7em;transition:opacity 0.15s ease;pointer-events:none;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-resize{position:absolute;top:0;right:-3px;bottom:0;width:5px;cursor:col-resize;z-index:2;touch-action:none;opacity:0;transition:opacity 0.15s ease}.vlist-table-header-resize::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background-color:var(--vlist-border,#e5e7eb);transition:background-color 0.15s ease}.vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}.vlist-table-header-cell:hover .vlist-table-header-resize{opacity:1}.vlist-table-header-resize--active{opacity:1}.vlist-table-header-resize--active::after{background-color:var(--vlist-border-selected,#3b82f6)}.vlist--col-resizing,.vlist--col-resizing *{cursor:col-resize !important;user-select:none !important}.vlist-table-row{position:absolute;top:0;left:0;display:flex;box-sizing:border-box;contain:content;border-bottom:none;background-color:var(--vlist-bg,#ffffff);cursor:default;user-select:none;transition:background-color var(--vlist-transition-duration,150ms) var(--vlist-transition-timing,ease-in-out);will-change:transform}.vlist--scrolling .vlist-table-row{transition:none}.vlist-table-row.vlist-item--odd{background:var( --vlist-bg-striped,var(--vlist-bg-hover,rgba(0,0,0,0.02)) )}.vlist--selectable .vlist-table-row{cursor:pointer}.vlist--selectable .vlist-table-row:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-row.vlist-item--selected{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-row.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist--selectable .vlist-table-row.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist--selectable .vlist-table-row.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist-table-row.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-table-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);font-size:0.875rem;color:var(--vlist-text,#111827)}.vlist-table-cell--center{text-align:center;justify-content:center}.vlist-table-cell--right{text-align:right;justify-content:flex-end}.vlist--table-row-borders .vlist-table-row{border-bottom:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-cell{border-right:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-header-cell{border-right-color:var(--vlist-border,#e5e7eb)}.vlist-table-group-header{display:flex;align-items:center;background-color:var(--vlist-group-header-bg,#f3f4f6);cursor:default}.vlist-table-group-header-content{flex:1;min-width:0;font-size:0.75rem;font-weight:600;letter-spacing:0.03em;text-transform:uppercase;color:var(--vlist-text-muted,#6b7280);border-bottom:1px solid var(--vlist-border)}.vlist--table-row-borders .vlist-table-group-header{border-bottom:1px solid var(--vlist-border)}.vlist--table.vlist--grouped .vlist-sticky-header{order:1;z-index:4;border-bottom:none}.vlist--table.vlist--grouped .vlist-viewport{order:2}[data-theme-mode="dark"] .vlist-table-header,.dark .vlist-table-header{background-color:var(--vlist-bg,#111827);color:var(--vlist-text-muted,#9ca3af);border-bottom-color:var(--vlist-border,#374151)}[data-theme-mode="dark"] .vlist-table-header-cell:hover,.dark .vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(255,255,255,0.06))}[data-theme-mode="dark"] .vlist-table-header-resize::after,.dark .vlist-table-header-resize::after{background-color:var(--vlist-border,#374151)}[data-theme-mode="dark"] .vlist-table-header-resize:hover::after,.dark .vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}[data-theme-mode="dark"] .vlist-table-group-header,.dark .vlist-table-group-header{background-color:var(--vlist-group-header-bg,#1f2937)}[data-theme-mode="dark"] .vlist-table-group-header-content,.dark .vlist-table-group-header-content{color:var(--vlist-text-muted,#9ca3af)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header{background-color:var(--vlist-bg,#111827);color:var(--vlist-text-muted,#9ca3af);border-bottom-color:var(--vlist-border,#374151)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(255,255,255,0.06))}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-resize::after{background-color:var(--vlist-border,#374151)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-group-header{background-color:var(--vlist-group-header-bg,#1f2937)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-group-header-content{color:var(--vlist-text-muted,#9ca3af)}}.vlist-table-row.vlist-item--placeholder .vlist-table-cell{color:transparent}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*{color:transparent;background-color:var(--vlist-border,#e5e7eb);border-radius:4px;animation:vlist-placeholder-pulse 2s ease-in-out infinite;line-height:1;min-width:1em}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*>*{visibility:hidden}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*[style]{background:var(--vlist-border,#e5e7eb) !important;color:transparent !important}[data-theme-mode="dark"] .vlist--table-row-borders .vlist-table-group-header,.dark .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}}
|
package/dist/vlist.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@keyframes vlist-fade-in{from{opacity:0.6}to{opacity:1}}@keyframes vlist-placeholder-pulse{0%,100%{opacity:0.6}50%{opacity:0.4}}:root{--vlist-scrollbar-width:8px;--vlist-scrollbar-track-color:transparent;--vlist-scrollbar-radius:4px;--vlist-custom-scrollbar-width:8px;--vlist-custom-scrollbar-track-color:transparent;--vlist-custom-scrollbar-radius:4px;--vlist-custom-scrollbar-padding-top:2px;--vlist-custom-scrollbar-padding-right:2px;--vlist-custom-scrollbar-padding-bottom:2px;--vlist-custom-scrollbar-padding-left:2px;--vlist-custom-scrollbar-min-thumb-size:15px;--vlist-item-padding-x:1rem;--vlist-item-padding-y:0.75rem;--vlist-border-radius:0.5rem;--vlist-transition-duration:150ms;--vlist-transition-timing:ease-in-out;--vlist-bg:#ffffff;--vlist-bg-hover:rgba(0,0,0,0.04);--vlist-bg-striped:rgba(0,0,0,0.02);--vlist-bg-selected:rgba(59,130,246,0.12);--vlist-bg-selected-hover:rgba(59,130,246,0.18);--vlist-border:#e5e7eb;--vlist-border-selected:#3b82f6;--vlist-text:#111827;--vlist-text-muted:#6b7280;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#f3f4f6;--vlist-scrollbar-thumb-color:#d1d5db;--vlist-scrollbar-thumb-hover-color:#9ca3af;--vlist-custom-scrollbar-thumb-color:rgba(0,0,0,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(0,0,0,0.3);--vlist-placeholder-bg:rgba(0,0,0,0.2)}[data-theme-mode="dark"]{--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]){--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}}.dark{--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}.vlist{position:relative;width:100%;height:100%;overflow:hidden;background-color:var(--vlist-bg);color:var(--vlist-text);color-scheme:light;border:1px solid var(--vlist-border);border-radius:var(--vlist-border-radius);outline:none}[data-theme-mode="dark"] .vlist,.dark .vlist{color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]) .vlist{color-scheme:dark}}.vlist:focus,.vlist:focus-visible{outline:none}.vlist-viewport{width:100%;height:100%;overflow:auto;scrollbar-color:var(--vlist-scrollbar-thumb-color) var(--vlist-scrollbar-track-color)}@supports (-moz-appearance:none) and (scrollbar-width:1px){.vlist-viewport{scrollbar-width:var(--vlist-scrollbar-width)}}.vlist-viewport::-webkit-scrollbar{width:var(--vlist-scrollbar-width);height:var(--vlist-scrollbar-width)}.vlist-viewport::-webkit-scrollbar-track{background:var(--vlist-scrollbar-track-color)}.vlist-viewport::-webkit-scrollbar-thumb{background-color:var(--vlist-scrollbar-thumb-color);border-radius:var(--vlist-scrollbar-radius)}.vlist-viewport::-webkit-scrollbar-thumb:hover{background-color:var(--vlist-scrollbar-thumb-hover-color)}.vlist-content{position:relative;width:100%}.vlist-items{position:relative;width:100%;contain:layout style}.vlist-item{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;background-color:var(--vlist-bg);cursor:default;user-select:none;opacity:1;transition:background-color var(--vlist-transition-duration) var(--vlist-transition-timing),opacity var(--vlist-transition-duration) var(--vlist-transition-timing);contain:content;box-sizing:border-box;will-change:transform}.vlist--scrolling .vlist-item,.vlist--settling .vlist-item{transition:none}.vlist--selectable .vlist-item{cursor:pointer}.vlist--selectable .vlist-item:hover{background-color:var(--vlist-bg-hover)}.vlist-item.vlist-item--odd{background:var(--vlist-bg-striped)}.vlist-item.vlist-item--selected{background-color:var(--vlist-bg-selected)}.vlist-item.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected)}.vlist-item.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover)}.vlist-item.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover)}.vlist-item.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-item--replaced{animation:vlist-fade-in 0.3s ease-out}.vlist-item--placeholder{opacity:0.6;animation:vlist-placeholder-pulse 2s ease-in-out infinite}.vlist-item.vlist-item--selected.vlist-item--focused{outline-color:var(--vlist-border-selected)}.vlist-scrollbar{position:absolute;top:var(--vlist-custom-scrollbar-padding-top);right:var(--vlist-custom-scrollbar-padding-right);bottom:var(--vlist-custom-scrollbar-padding-bottom);width:var(--vlist-custom-scrollbar-width);background-color:var(--vlist-custom-scrollbar-track-color);opacity:0;transition:opacity 0.2s ease-out;z-index:10;pointer-events:none}.vlist-scrollbar-hover{position:absolute;top:0;right:0;height:100%;z-index:9;pointer-events:auto}.vlist-scrollbar-hover--horizontal{top:auto;right:auto;bottom:0;left:0;width:100%;height:auto}.vlist-scrollbar--visible{opacity:1;pointer-events:auto}.vlist-scrollbar-thumb{position:absolute;top:0;left:0;right:0;width:100%;background-color:var(--vlist-custom-scrollbar-thumb-color);border-radius:var(--vlist-custom-scrollbar-radius);cursor:pointer;transition:background-color 0.15s ease-out}.vlist-scrollbar-thumb:hover{background-color:var(--vlist-custom-scrollbar-thumb-hover-color)}.vlist-scrollbar--dragging{opacity:1;pointer-events:auto}.vlist-scrollbar--dragging .vlist-scrollbar-thumb{background-color:var(--vlist-custom-scrollbar-thumb-hover-color)}.vlist
|
|
1
|
+
@keyframes vlist-fade-in{from{opacity:0.6}to{opacity:1}}@keyframes vlist-placeholder-pulse{0%,100%{opacity:0.6}50%{opacity:0.4}}:root{--vlist-scrollbar-width:8px;--vlist-scrollbar-track-color:transparent;--vlist-scrollbar-radius:4px;--vlist-custom-scrollbar-width:8px;--vlist-custom-scrollbar-track-color:transparent;--vlist-custom-scrollbar-radius:4px;--vlist-custom-scrollbar-padding-top:2px;--vlist-custom-scrollbar-padding-right:2px;--vlist-custom-scrollbar-padding-bottom:2px;--vlist-custom-scrollbar-padding-left:2px;--vlist-custom-scrollbar-min-thumb-size:15px;--vlist-item-padding-x:1rem;--vlist-item-padding-y:0.75rem;--vlist-border-radius:0.5rem;--vlist-transition-duration:150ms;--vlist-transition-timing:ease-in-out;--vlist-bg:#ffffff;--vlist-bg-hover:rgba(0,0,0,0.04);--vlist-bg-striped:rgba(0,0,0,0.02);--vlist-bg-selected:rgba(59,130,246,0.12);--vlist-bg-selected-hover:rgba(59,130,246,0.18);--vlist-border:#e5e7eb;--vlist-border-selected:#3b82f6;--vlist-text:#111827;--vlist-text-muted:#6b7280;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#f3f4f6;--vlist-scrollbar-thumb-color:#d1d5db;--vlist-scrollbar-thumb-hover-color:#9ca3af;--vlist-custom-scrollbar-thumb-color:rgba(0,0,0,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(0,0,0,0.3);--vlist-placeholder-bg:rgba(0,0,0,0.2)}[data-theme-mode="dark"]{--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]){--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}}.dark{--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}.vlist{position:relative;width:100%;height:100%;box-sizing:border-box;overflow:hidden;background-color:var(--vlist-bg);color:var(--vlist-text);color-scheme:light;border:1px solid var(--vlist-border);border-radius:var(--vlist-border-radius);outline:none}[data-theme-mode="dark"] .vlist,.dark .vlist{color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]) .vlist{color-scheme:dark}}.vlist:focus,.vlist:focus-visible{outline:none}.vlist-viewport{position:relative;width:100%;height:100%;overflow:auto;scrollbar-color:var(--vlist-scrollbar-thumb-color) var(--vlist-scrollbar-track-color)}@supports (-moz-appearance:none) and (scrollbar-width:1px){.vlist-viewport{scrollbar-width:var(--vlist-scrollbar-width)}}.vlist-viewport::-webkit-scrollbar{width:var(--vlist-scrollbar-width);height:var(--vlist-scrollbar-width)}.vlist-viewport::-webkit-scrollbar-track{background:var(--vlist-scrollbar-track-color)}.vlist-viewport::-webkit-scrollbar-thumb{background-color:var(--vlist-scrollbar-thumb-color);border-radius:var(--vlist-scrollbar-radius)}.vlist-viewport::-webkit-scrollbar-thumb:hover{background-color:var(--vlist-scrollbar-thumb-hover-color)}.vlist-content{position:relative;width:100%}.vlist-items{position:relative;width:100%;contain:layout style}.vlist-item,.vlist-group-header{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;background-color:var(--vlist-bg);cursor:default;user-select:none;opacity:1;transition:background-color var(--vlist-transition-duration) var(--vlist-transition-timing),opacity var(--vlist-transition-duration) var(--vlist-transition-timing);contain:content;box-sizing:border-box;will-change:transform}.vlist--scrolling .vlist-item,.vlist--settling .vlist-item,.vlist--scrolling .vlist-group-header,.vlist--settling .vlist-group-header{transition:none}.vlist--selectable .vlist-item{cursor:pointer}.vlist--selectable .vlist-item:hover{background-color:var(--vlist-bg-hover)}.vlist-item.vlist-item--odd{background:var(--vlist-bg-striped)}.vlist-item.vlist-item--selected{background-color:var(--vlist-bg-selected)}.vlist-item.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected)}.vlist-item.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover)}.vlist-item.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover)}.vlist-item.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-item--replaced{animation:vlist-fade-in 0.3s ease-out}.vlist-item--placeholder{opacity:0.6;animation:vlist-placeholder-pulse 2s ease-in-out infinite}.vlist-item.vlist-item--selected.vlist-item--focused{outline-color:var(--vlist-border-selected)}.vlist-scrollbar{position:absolute;top:var(--vlist-custom-scrollbar-padding-top);right:var(--vlist-custom-scrollbar-padding-right);bottom:var(--vlist-custom-scrollbar-padding-bottom);width:var(--vlist-custom-scrollbar-width);background-color:var(--vlist-custom-scrollbar-track-color);opacity:0;transition:opacity 0.2s ease-out;z-index:10;pointer-events:none}.vlist-scrollbar-hover{position:absolute;top:0;right:0;height:100%;z-index:9;pointer-events:auto}.vlist-scrollbar-hover--horizontal{top:auto;right:auto;bottom:0;left:0;width:100%;height:auto}.vlist-scrollbar--visible{opacity:1;pointer-events:auto}.vlist-scrollbar-thumb{position:absolute;top:0;left:0;right:0;width:100%;background-color:var(--vlist-custom-scrollbar-thumb-color);border-radius:var(--vlist-custom-scrollbar-radius);cursor:pointer;transition:background-color 0.15s ease-out}.vlist-scrollbar-thumb:hover{background-color:var(--vlist-custom-scrollbar-thumb-hover-color)}.vlist-scrollbar--dragging{opacity:1;pointer-events:auto}.vlist-scrollbar--dragging .vlist-scrollbar-thumb{background-color:var(--vlist-custom-scrollbar-thumb-hover-color)}.vlist-group-header{cursor:default;background-color:var(--vlist-group-header-bg,#f3f4f6);border-bottom:1px solid var(--vlist-border);z-index:1;overflow:hidden}.vlist-group-header:hover{background-color:var(--vlist-group-header-bg,#f3f4f6)}.vlist-sticky-header{left:0;right:0;background-color:var(--vlist-group-header-bg,#f3f4f6);border-bottom:1px solid var(--vlist-border)}.vlist--horizontal{overflow:hidden}.vlist--horizontal .vlist-viewport{overflow-x:auto;overflow-y:hidden}.vlist--horizontal .vlist-content{height:100%;width:auto}.vlist--horizontal .vlist-items{height:100%;width:auto}.vlist--horizontal .vlist-item,.vlist--horizontal .vlist-group-header{position:absolute;top:0;bottom:0;left:0;right:auto;display:flex;align-items:center;justify-content:center;border-bottom:none;border-right:1px solid var(--vlist-border)}.vlist-scrollbar--horizontal{top:auto;left:var(--vlist-custom-scrollbar-padding-left);right:var(--vlist-custom-scrollbar-padding-right);bottom:var(--vlist-custom-scrollbar-padding-bottom);width:auto;height:var(--vlist-custom-scrollbar-width)}.vlist-scrollbar--horizontal .vlist-scrollbar-thumb{top:0;left:0;width:auto;height:100%}.vlist-viewport--gutter{padding-right:calc( var(--vlist-custom-scrollbar-padding-right) + var(--vlist-custom-scrollbar-width) + var(--vlist-custom-scrollbar-padding-left) )}.vlist--horizontal .vlist-viewport--gutter{padding-right:0;padding-bottom:calc( var(--vlist-custom-scrollbar-padding-bottom) + var(--vlist-custom-scrollbar-width) + var(--vlist-custom-scrollbar-padding-top) )}.vlist-viewport--custom-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.vlist-viewport--custom-scrollbar::-webkit-scrollbar{display:none}.vlist-viewport--no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.vlist-viewport--no-scrollbar::-webkit-scrollbar{display:none}.vlist-viewport--gutter-stable{scrollbar-gutter:stable}.vlist-sort-ghost{opacity:0.85;box-shadow:0 4px 16px rgba(0,0,0,0.18);cursor:grabbing}.vlist-item--drag-source{opacity:0 !important;pointer-events:none}.vlist--sorting{cursor:grabbing;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.vlist-item--kb-sorting{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;background-color:var(--vlist-bg-selected);z-index:1}
|