vlist 1.8.3 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.github.md +41 -12
- package/README.md +12 -10
- package/dist/builder/data.d.ts +1 -0
- package/dist/builder/types.d.ts +4 -0
- package/dist/features/async/manager.d.ts +2 -0
- package/dist/features/async/sparse.d.ts +5 -1
- package/dist/features/groups/async-bridge.d.ts +2 -0
- package/dist/features/transition/feature.d.ts +30 -0
- package/dist/features/transition/index.d.ts +9 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -1
- package/dist/internals.js +1 -1
- package/dist/size.json +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/vlist.css +1 -1
- package/package.json +1 -1
package/dist/internals.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var P2=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var S2=(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},d2=(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},c2=(J,Q,Y)=>{if(J===0)return[];let $=[],q=Q(0,Y?.(0)),j=0,B=0;for(let G=1;G<J;G++){let y=Q(G,Y?.(G));if(y!==q){let V=G-j;$.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:V}),B=B+1+V,q=y,j=G}}return $.push({key:q,groupIndex:$.length,headerLayoutIndex:B,firstDataIndex:j,count:J-j}),$},r2=(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 $},l2=(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)}},a2=(J,Q,Y)=>{let $=c2(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:(E)=>{if($.length===0)return{type:"item",dataIndex:E,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let X=S2($,E),Z=$[X];if(E===Z.headerLayoutIndex)return{type:"header",group:Z};let K=E-Z.headerLayoutIndex-1;return{type:"item",dataIndex:Z.firstDataIndex+K,group:Z}},layoutToDataIndex:(E)=>{if($.length===0)return E;let X=S2($,E),Z=$[X];if(E===Z.headerLayoutIndex)return-1;let K=E-Z.headerLayoutIndex-1;return Z.firstDataIndex+K},dataToLayoutIndex:(E)=>{if($.length===0)return E;let X=d2($,E),Z=$[X],K=E-Z.firstDataIndex;return Z.headerLayoutIndex+1+K},getGroupAtLayoutIndex:(E)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let X=S2($,E);return $[X]},getGroupAtDataIndex:(E)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let X=d2($,E);return $[X]},getHeaderHeight:typeof j==="number"?(E)=>j:(E)=>{let X=$[E];if(!X)return 0;return j(X.key,E)},rebuild:(E,X)=>{$=c2(E,Q.getGroupForIndex,X??Y),q=E+$.length}}};var IJ=(J,Q,Y,$,q=0)=>{let j=Y?"width":"height",B=document.createElement("div");return B.className=`${Q}-sticky-header`,B.setAttribute("role","presentation"),B.setAttribute("aria-hidden","true"),B.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(Y?`top:0;bottom:0;left:${q||0}px`:`top:${q||0}px`),B.style[j]=`${$}px`,J.insertBefore(B,J.firstChild),B},s2=(J,Q,Y,$,q,j=!1,B=0,G,y)=>{let V=j?"width":"height",W=j?"height":"width",v=j?"X":"Y",f=(b,N)=>{b.style[V]=`${N}px`},E=y??IJ(J,q,j,0,B),X=()=>{let b=document.createElement("div");return b.className="sticky-group",b.style.position="absolute",b.style.willChange="transform",b.style[W]="100%",b},Z=X(),K=X();E.append(Z,K);let O=Z,P=K,w=Q.groups,S=[],p=[],s=[],c=0,e=()=>{w=Q.groups,c=w.length,S=Array(c),p=Array(c),s=Array(c);let b=G?G():1;for(let N=0;N<c;N++)S[N]=Y.getOffset(w[N].headerLayoutIndex)*b,p[N]=Q.getHeaderHeight(N),s[N]=p[N]*b};e();let J2=-1,i=0,Q2=0,B2=-1,j2=!1,g=0,M=!1,k=(b,N)=>{$(b,N);let H=p[N];return f(b,H),H},z=(b)=>{b.replaceChildren(),b.style.transform=""},_=(b)=>{if(b===J2)return;if(J2=b,i=0,Q2=0,b<0||b>=c){z(O);return}i=k(O,b),Q2=s[b],f(E,i),O.style.transform=""},D=(b)=>{if(b===g)return;g=b;let N=Math.round(b);O.style.transform=`translate${v}(${N}px)`,P.style.transform=`translate${v}(${N+i}px)`},L=()=>{g=0,O.style.transform="",P.style.transform=""},d=()=>{if(!M)return;let b=O;O=P,P=b,J2=B2,i=J2>=0?p[J2]:0,Q2=J2>=0?s[J2]:0,f(E,i),z(P),B2=-1,M=!1,L()},r=()=>{if(!M)return;z(P),B2=-1,M=!1,L()},l=!!y,o=()=>{if(j2)return;if(j2=!0,l)E.style.visibility="";else E.style.display=""},U=()=>{if(!j2)return;if(j2=!1,l)E.style.visibility="hidden";else E.style.display="none";z(O),J2=-1,i=0,Q2=0,r()},C=(b)=>{if(c===0){U();return}if(b<S[0]){U();return}let N=0,H=c-1;while(N<H){let h=N+H+1>>>1;if(S[h]+s[h]<=b)N=h;else H=h-1}if(!j2)o();_(N);let T=N+1;if(T<c){let h=S[T]-b;if(h<=0&&h>-Q2){if(B2!==T||!M)B2=T,k(P,T),M=!0;let I=Q2>0?h/Q2*i:h;D(I)}else if(h<=-Q2){if(M)d()}else if(M)r()}else if(M)r()},F=()=>{e();let b=J2;if(J2=-1,i=0,Q2=0,b>=0)_(b)},x=()=>{E.remove(),J2=-1,i=0,Q2=0,B2=-1,j2=!1,M=!1};if(!y)E.style.display="none";return{update:C,refresh:F,show:o,hide:U,destroy:x}};var n2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.isHeaderFn,q={row:0,col:0},j=(X)=>{if(X<=0)return 0;if(!$)return Math.ceil(X/Q);let Z=0,K=0,O=0;for(let P=0;P<X;P++)if($(P)){if(O++,K)Z++,K=0;Z++,K=0}else if(K++,K>=Q)Z++,K=0;if(K)Z++;return Z},B=(X)=>{return q.row=G(X),q.col=y(X),q},G=(X)=>{if(!$)return Math.floor(X/Q);let Z=0,K=0;for(let O=0;O<=X;O++)if($(O)){if(K)Z++,K=0;if(O===X)return Z;Z++,K=0}else{if(O===X)return Z;if(K++,K>=Q)Z++,K=0}return console.warn(`⚠️ getRow(${X}) fell through - returning ${Z}`),Z},y=(X)=>{if(!$)return X%Q;if($(X))return 0;let Z=0;for(let K=0;K<=X;K++)if($(K))Z=0;else{if(K===X)return Z;if(Z++,Z>=Q)Z=0}return Z},V=(X,Z,K)=>{if(K<=0)return{start:0,end:-1};if(!$){let p=Math.max(0,X*Q),s=Math.min(K-1,(Z+1)*Q-1);return{start:p,end:s}}let O=-1,P=-1,w=0,S=0;for(let p=0;p<K;p++){if($(p)){if(S)w++,S=0;if(w>=X&&w<=Z){if(O<0)O=p;P=p}w++,S=0}else{if(w>=X&&w<=Z){if(O<0)O=p;P=p}if(S++,S>=Q)w++,S=0}if(w>Z&&!S)break}if(O<0)return{start:0,end:-1};return{start:O,end:P}},W=(X,Z,K)=>{if(Z<0||Z>=Q)return-1;let O=X*Q+Z;if(O<0||O>=K)return-1;return O},v=(X)=>{let Z=(Q-1)*Y;return Math.max(0,(X-Z)/Q)};return{get columns(){return Q},get gap(){return Y},update:(X)=>{if(X.columns!==void 0)Q=Math.max(1,Math.floor(X.columns));if(X.gap!==void 0)Y=X.gap;if(X.isHeaderFn!==void 0)$=X.isHeaderFn},getTotalRows:j,getPosition:B,getRow:G,getCol:y,getItemRange:V,getItemIndex:W,getColumnWidth:v,getColumnOffset:(X,Z)=>{let K=v(Z);return X*(K+Y)}}};var G2=16000000;var o2="x",i2=20,I2="_isPlaceholder",E2="__placeholder_";var F2=(J,Q,Y)=>{if(String(Y).startsWith(E2))return!1;let $=E2+Q;if(J.has($))return J.delete($),J.add(Y),!0;return!1},t2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),p2=(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:$}},h2=(J,Q)=>{let Y=new Set(J.selected);for(let $ of Q)Y.delete($);return{...J,selected:Y}},e2=(J,Q,Y)=>{if(Y==="none")return J;if(J.selected.has(Q))return h2(J,[Q]);else return p2(J,[Q],Y)},JJ=(J,Q,Y)=>{if(Y!=="multiple")return J;return{...J,selected:new Set(Q.map(($)=>$.id))}},QJ=(J)=>({...J,selected:new Set});var $J=(J,Q)=>{return J.selected.has(Q)},YJ=(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 pJ=(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}},hJ=(J,Q)=>{let Y=Q,$=new Float64Array(0),q=(B)=>{Y=B,$=new Float64Array(B+1),$[0]=0;for(let G=0;G<B;G++)$[G+1]=$[G]+J(G)};q(Q);let j=(B)=>{if(Y===0)return 0;if(B<=0)return 0;if(B>=$[Y])return Y-1;let G=0,y=Y-1;while(G<y){let V=G+y+1>>>1;if($[V]<=B)G=V;else y=V-1}return G};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}},R2=(J,Q)=>{if(typeof J==="number")return pJ(J,Q);return hJ(J,Q)},x2=(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 y2=(J,Q,Y)=>{let $=Q.getTotalSize(),q=Y===!0||$>G2,j=$>G2?G2:$,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 E=Y.indexAtOffset(J),X=Y.indexAtOffset(J+Q);if(X<$-1)X++;return j.start=Math.max(0,E),j.end=Math.min($-1,Math.max(0,X)),j}let{virtualSize:B}=q,G=J/B,y=Y.getTotalSize(),V=G*y,W=Y.indexAtOffset(V),v=x2(Y,Math.max(0,W),Q,$),f=W+v;return j.start=Math.max(0,W),j.end=Math.min($-1,Math.max(0,f)),j},BJ=(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),$},L2=(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:G}=j,y=Q/G,V=Y.getTotalSize(),W=y*V;return Y.getOffset(J)-W},KJ=(J,Q,Y,$,q,j="start")=>{if($===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/$*q.virtualSize;let W=Q.getSize(J);switch(j){case"center":B-=(Y-W)/2*q.ratio;break;case"end":B-=(Y-W)*q.ratio;break}return Math.max(0,B)}B=Q.getOffset(J);let G=Q.getSize(J);switch(j){case"center":B-=(Y-G)/2;break;case"end":B-=Y-G;break}let y=q.virtualSize-Y;return Math.max(0,Math.min(B,y))},XJ=(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)},UJ=(J,Q)=>{if(typeof Q==="number")return J*Q>G2;return Q.getTotalSize()>G2},NJ=(J)=>{if(J<=0)return 0;return Math.floor(G2/J)},ZJ=(J,Q,Y)=>{let $=y2(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 k2=(J,Q,Y)=>{let $=Array.from(Q).sort((B,G)=>B-G);if($.length<=1)return;let q=[];for(let B=0;B<$.length;B++){let G=Y($[B]);if(G)q.push(G)}if(q.length<=1)return;let j=J.firstChild;for(let B=0;B<q.length;B++){let G=q[B];if(G===j)j=j.nextSibling;else J.insertBefore(G,j)}};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-row"),j.removeAttribute("data-col"),Q.push(j)},clear:()=>{Q.length=0}}},gJ=1,_J=(J,Q,Y,$,q,j,B,G,y=!1,V,W)=>{let v=xJ(),f=new Map,E=j,X=!1,Z=0,K="",O=-1,P={selected:!1,focused:!1},w=(U,C)=>{return P.selected=U,P.focused=C,P},S=`${q}-item ${q}-grid-item`,p=`${q}-group-header`,s=`${q}-item--selected`,c=`${q}-item--focused`,e=`${q}-item--placeholder`,J2=`${q}-item--replaced`,i=(U,C)=>{if(typeof C==="string")U.innerHTML=C;else U.replaceChildren(C)},Q2=(U,C,F)=>{U.classList.toggle(s,C),U.classList.toggle(c,F)},B2=(U,C)=>{let F=$.getRow(U);if(C?.compression?.isCompressed)return L2(F,C.scrollPosition,Y,C.totalItems,C.containerSize,C.compression,C.rangeStart);return Y.getOffset(F)},j2=(U,C)=>{let F=$.getCol(U),b=X&&F===0?0:$.getColumnOffset(F,E),N;if(X){let H=$.getRow(U),T=0,h=-1;for(let I=0;I<U;I++){let u=$.getRow(I);if(u<H&&u!==h){let A=Y.getSize(I);T+=A,h=u}}N=T}else N=B2(U,C);if(y)return`translate(${Math.round(N)}px, ${Math.round(b)}px)`;return`translate(${Math.round(b)}px, ${Math.round(N)}px)`},g=(U,C)=>{let F=U.classList.contains(p),x=F?E:$.getColumnWidth(E),b;if(X||F)b=Y.getSize(C)-$.gap;else{let N=$.getRow(C);b=Y.getSize(N)-$.gap}if(y)U.style.width=`${b}px`,U.style.height=`${x}px`;else U.style.width=`${x}px`,U.style.height=`${b}px`},M=(U,C,F,x,b)=>{let N=v.acquire(),H=!!C.__groupHeader,T=w(F,x);if(N.className=H?p:S,N.dataset.index=String(U),N.dataset.id=String(C.id),N.dataset.row=String($.getRow(U)),N.dataset.col=String($.getCol(U)),H)N.setAttribute("role","presentation"),N.removeAttribute("aria-selected"),N.removeAttribute("aria-setsize"),N.removeAttribute("aria-posinset"),N.removeAttribute("id");else if(W!==!1){if(N.setAttribute("role","option"),N.ariaSelected=String(F),G)N.id=`${G}-item-${U}`;if(B){let u=B();if(u!==O)O=u,K=String(u);N.setAttribute("aria-setsize",K);let A=V?V(U):U+1;N.setAttribute("aria-posinset",String(A))}}else if(N.setAttribute("role","listitem"),N.removeAttribute("aria-selected"),B){let u=B();if(u!==O)O=u,K=String(u);N.setAttribute("aria-setsize",K);let A=V?V(U):U+1;N.setAttribute("aria-posinset",String(A))}g(N,U);let h=Q(C,U,T);if(i(N,h),String(C.id).startsWith(E2))N.classList.add(e);return Q2(N,F,x),N.style.transform=b,{element:N,lastItemId:C.id,lastSelected:F,lastFocused:x,lastTransform:b,lastSeenFrame:Z}},k=(U,C,F,x,b)=>{if(Z++,C.start===0&&U.length)X=P2(U[0]);for(let[T,h]of f)if(T>=C.start&&T<=C.end)h.lastSeenFrame=Z;else if(Z-h.lastSeenFrame>gJ)v.release(h.element),f.delete(T);let N=!1;if(B){let T=B();if(T!==O)O=T,K=String(T),N=!0}let H=null;for(let T=C.start;T<=C.end;T++){let h=T-C.start,I=U[h];if(!I){console.warn(`⚠️ RENDER: Missing item at index ${T} (range: ${C.start}-${C.end}, items.length: ${U.length})`);continue}let u=F.has(I.id),A=T===x,R=f.get(T);if(R){let a=R.lastItemId!==I.id,m=R.lastSelected!==u,K2=R.lastFocused!==A;if(a){let q2=String(R.lastItemId),X2=String(I.id),Y2=q2.startsWith(E2),n=X2.startsWith(E2);if(!n&&F2(F,T,I.id))u=!0;let N2=w(u,A),W2=Q(I,T,N2);if(i(R.element,W2),R.element.dataset.id=X2,R.element.dataset.row=String($.getRow(T)),R.element.dataset.col=String($.getCol(T)),g(R.element,T),R.element.classList.toggle(e,n),Y2&&!n)R.element.classList.add(J2),setTimeout(()=>R.element.classList.remove(J2),300);if(R.lastItemId=I.id,!I.__groupHeader){let V2=V?V(T):T+1;R.element.setAttribute("aria-posinset",String(V2))}}if(a||m||K2)Q2(R.element,u,A),R.element.ariaSelected=String(u),R.lastSelected=u,R.lastFocused=A;let $2=j2(T,b);if(R.lastTransform!==$2)R.element.style.transform=$2,R.lastTransform=$2;if(N&&!I.__groupHeader)R.element.setAttribute("aria-setsize",K)}else{if(F2(F,T,I.id))u=!0;let a=j2(T,b),m=M(T,I,u,A,a);if(!H)H=document.createDocumentFragment();H.appendChild(m.element),f.set(T,m)}}if(H)J.appendChild(H)},z=(U)=>{for(let[C,F]of f){let x=j2(C,U);if(F.lastTransform!==x)F.element.style.transform=x,F.lastTransform=x}},_=(U,C,F,x)=>{let b=f.get(U);if(!b)return;let N=w(F,x),H=Q(C,U,N);i(b.element,H),Q2(b.element,F,x),b.element.dataset.id=String(C.id),b.element.ariaSelected=String(F),g(b.element,U),b.lastItemId=C.id,b.lastSelected=F,b.lastFocused=x},D=(U,C,F)=>{let x=f.get(U);if(!x)return;let b=x.lastSelected!==C,N=x.lastFocused!==F;if(b||N)Q2(x.element,C,F),x.lastSelected=C,x.lastFocused=F},L=(U)=>{return f.get(U)?.element},d=(U)=>{if(Math.abs(U-E)<1)return;E=U;for(let[C,F]of f){g(F.element,C);let x=j2(C);F.element.style.transform=x,F.lastTransform=x}},r=()=>{k2(J,f.keys(),(U)=>f.get(U)?.element)},l=()=>{for(let[,U]of f)v.release(U.element);f.clear()};return{render:k,updatePositions:z,updateItem:_,updateItemClasses:D,getElement:L,sortDOM:r,updateContainerWidth:d,clear:l,destroy:()=>{l(),v.clear()}}};var DJ=(J,Q=50,Y=1/0,$=!0)=>{let q=J,j=[],B=0,G=()=>{j=q.map((K,O)=>({def:K,index:O,width:0,minWidth:uJ(K.minWidth??Q,1),maxWidth:K.maxWidth??Y,resizable:K.resizable??$,offset:0}))},y=(K)=>{if(j.length===0){B=0;return}let O=0,P=0;for(let w=0;w<j.length;w++){let S=j[w],p=S.def;if(p.width!==void 0)S.width=g2(p.width,S.minWidth,S.maxWidth),O+=S.width;else P++}if(P){let S=Math.max(0,K-O)/P;for(let p=0;p<j.length;p++){let s=j[p];if(s.def.width===void 0)s.width=g2(S,s.minWidth,s.maxWidth)}}V()},V=()=>{let K=0;for(let O=0;O<j.length;O++){let P=j[O];P.offset=K,K+=P.width}B=K},W=(K,O)=>{if(K<0||K>=j.length)return 0;let P=j[K];if(!P.resizable)return P.width;let w=g2(O,P.minWidth,P.maxWidth);return P.width=w,V(),w},v=(K)=>{return j[K]},f=(K)=>{if(j.length===0)return;if(K<0)return j[0];if(K>=B)return j[j.length-1];let O=0,P=j.length-1;while(O<P){let w=O+P>>>1,S=j[w];if(K<S.offset)P=w-1;else if(K>=S.offset+S.width)O=w+1;else return S}return j[O]},E=(K)=>{if(K<0||K>=j.length)return 0;return j[K].offset},X=(K)=>{if(K<0||K>=j.length)return 0;return j[K].width},Z=(K)=>{q=K,G()};return G(),{get columns(){return j},get totalWidth(){return B},resolve:y,updateColumns:Z,resizeColumn:W,getColumn:v,getColumnAtX:f,getColumnOffset:E,getColumnWidth:X}},g2=(J,Q,Y)=>Math.min(Y,Math.max(Q,J)),uJ=(J,Q)=>Math.max(Q,J);var WJ=(J,Q,Y,$,q,j)=>{let B=document.createElement("div");B.setAttribute("role","rowgroup");let G=document.createElement("div");G.className=`${Y}-table-header`,G.setAttribute("role","row"),G.setAttribute("aria-rowindex","1"),G.style.height=`${Q}px`;let y=document.createElement("div");y.className=`${Y}-table-header-scroll`,y.setAttribute("role","presentation"),G.appendChild(y),B.appendChild(G),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let V=[],W=[],v=!0,f=null,E="asc",X=null,Z=!1,K=-1,O=0,P=0,w=0,S=(_,D)=>{let L=document.createElement("div");L.className=`${Y}-table-header-cell`,L.setAttribute("role","columnheader"),L.setAttribute("aria-colindex",String(D+1)),L.setAttribute("tabindex",D===0?"0":"-1"),L.dataset.columnKey=_.def.key;let d=_.def.align;if(d==="center")L.classList.add(`${Y}-table-header-cell--center`);else if(d==="right")L.classList.add(`${Y}-table-header-cell--right`);let r=document.createElement("div");r.className=`${Y}-table-header-content`;let l=_.def.header?_.def.header(_.def):_.def.label;if(typeof l==="string")r.textContent=l;else r.appendChild(l);if(L.appendChild(r),_.def.sortable){let o=document.createElement("span");o.className=`${Y}-table-header-sort`,o.setAttribute("aria-hidden","true"),L.appendChild(o),W.push(o),L.classList.add(`${Y}-table-header-cell--sortable`)}else W.push(null);if(_.resizable){let o=document.createElement("div");o.className=`${Y}-table-header-resize`,o.dataset.resizeIndex=String(D),L.appendChild(o)}return L},p=(_)=>{X=_,y.textContent="",V=[],W=[];let D=_.columns;for(let L=0;L<D.length;L++){let d=D[L],r=S(d,L);V.push(r),y.appendChild(r)}if(s(_),f)c(f,E)},s=(_)=>{X=_;let D=_.columns;y.style.width=`${_.totalWidth}px`;for(let L=0;L<V.length&&L<D.length;L++){let d=V[L],r=D[L];d.style.width=`${r.width}px`}},c=(_,D)=>{if(f=_,E=D,!X)return;let L=X.columns;for(let d=0;d<W.length&&d<L.length;d++){let r=W[d];if(!r)continue;if(L[d].def.key===_)r.textContent=D==="asc"?"▲":"▼",r.style.opacity="0.7",V[d].setAttribute("aria-sort",D==="asc"?"ascending":"descending");else r.textContent="",r.style.opacity="0",V[d].removeAttribute("aria-sort")}},e=(_)=>{y.style.transform=`translateX(${-_}px)`},J2=(_)=>{let D=_.target;if(!D.dataset.resizeIndex)return;if(_.preventDefault(),_.stopPropagation(),K=+D.dataset.resizeIndex,!X)return;let L=X.getColumn(K);if(!L?.resizable)return;Z=!0,O=_.clientX,P=L.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",D.classList.add(`${Y}-table-header-resize--active`),D.setPointerCapture(_.pointerId),D.addEventListener("pointermove",i),D.addEventListener("pointerup",Q2),D.addEventListener("pointercancel",Q2)},i=(_)=>{if(!Z||!X)return;let D=_.clientX-O;if(Math.abs(D)<1)return;let L=Math.max(0,P+D);$(K,L)},Q2=(_)=>{if(!Z)return;let D=_.target;D.removeEventListener("pointermove",i),D.removeEventListener("pointerup",Q2),D.removeEventListener("pointercancel",Q2);try{D.releasePointerCapture(_.pointerId)}catch{}D.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",Z=!1,K=-1},B2=(_)=>{let D=_.target;if(D.dataset.resizeIndex)return;if(Z)return;let L=D;while(L&&!L.dataset.columnKey)if(L=L.parentElement,L===G||L===null)return;let d=L.dataset.columnKey;if(!X)return;let r=X.columns,l=-1;for(let U=0;U<r.length;U++)if(r[U].def.key===d){l=U;break}if(l===-1)return;let o=r[l];if(j)j({key:d,index:l,event:_});if(o.def.sortable&&q){let U;if(f===d)U=E==="asc"?"desc":null;else U="asc";q({key:d,index:l,direction:U})}},j2=(_)=>{if(_<0||_>=V.length)return;V[w]?.setAttribute("tabindex","-1"),w=_;let D=V[w];D.setAttribute("tabindex","0"),D.focus()},g=(_)=>{let D=_.key;if(D==="ArrowRight"){if(_.ctrlKey||_.metaKey){if(!X)return;let L=X.getColumn(w);if(L?.resizable)$(w,L.width+10),_.preventDefault()}else if(w<V.length-1)j2(w+1),_.preventDefault();_.stopPropagation();return}if(D==="ArrowLeft"){if(_.ctrlKey||_.metaKey){if(!X)return;let L=X.getColumn(w);if(L?.resizable)$(w,L.width-10),_.preventDefault()}else if(w>0)j2(w-1),_.preventDefault();_.stopPropagation();return}if(D==="Home"){j2(0),_.preventDefault(),_.stopPropagation();return}if(D==="End"){j2(V.length-1),_.preventDefault(),_.stopPropagation();return}if(D==="Enter"||D===" "){if(!X)return;let L=X.getColumn(w);if(L?.def.sortable&&q){let d;if(f===L.def.key)d=E==="asc"?"desc":null;else d="asc";q({key:L.def.key,index:w,direction:d}),_.preventDefault()}_.stopPropagation();return}if(D==="ArrowDown"){J.focus(),_.preventDefault(),_.stopPropagation();return}};return G.addEventListener("pointerdown",J2),G.addEventListener("click",B2),G.addEventListener("keydown",g),{element:G,update:s,updateSort:c,rebuild:p,show:()=>{if(v)return;v=!0,G.style.display=""},hide:()=>{if(!v)return;v=!1,G.style.display="none"},destroy:()=>{G.removeEventListener("pointerdown",J2),G.removeEventListener("click",B2),G.removeEventListener("keydown",g),J.style.removeProperty("--vlist-table-header-height"),B.remove(),V=[],W=[],X=null,v=!1},syncScroll:e}};var mJ=()=>{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}}},VJ=(J,Q,Y,$,q,j,B,G,y)=>{let V=mJ(),W=new Map,v=-1,f=Y,E=null,X=null,Z=null,K=(N,H)=>{X=N,Z=H},O=(N,H)=>{H?N.setAttribute("aria-selected","true"):N.removeAttribute("aria-selected")},P=(N,H,T,h)=>{N.setAttribute("role",H),N.setAttribute("data-id",String(T)),N.setAttribute("data-index",String(h))},w=(N)=>String(N).startsWith("__placeholder_"),S=`${q}-item ${q}-table-row`,p=`${q}-item--selected`,s=`${q}-item--focused`,c=`${q}-table-cell`,e=`${q}-table-cell--center`,J2=`${q}-table-cell--right`,i=`${q}-item--odd`,Q2=`${q}-item--placeholder`,B2=`${q}-item--replaced`,j2=`${q}-item ${q}-table-row ${q}-table-group-header`,g=`${q}-table-group-header-content`,M=(N,H,T,h,I=!1)=>{if(T.def.cell){let u=T.def.cell(H,T.def,h);if(typeof u==="string")N.innerHTML=u;else N.replaceChildren(u)}else{let u=H[T.def.key],A=u!=null?String(u):"";if(I&&A)N.innerHTML=`<span>${A}</span>`;else N.textContent=A}},k=(N,H,T,h,I=!1)=>{let u=S;if(G){if(E){let A=E(H);if(A>=0&&(A&1)===1)u+=` ${i}`}else if((H&1)===1)u+=` ${i}`}if(I)u+=` ${Q2}`;if(T)u+=` ${p}`;if(h)u+=` ${s}`;N.className=u},z=(N,H,T)=>{if(T?.compression?.isCompressed)return Math.round(L2(N,T.scrollPosition,H,T.totalItems,T.containerSize,T.compression,T.rangeStart));return H.getOffset(N)},_=(N,H)=>{let T=H.def.align;if(T==="center")N.classList.add(e),N.classList.remove(J2);else if(T==="right")N.classList.add(J2),N.classList.remove(e);else N.classList.remove(e,J2)},D=(N,H)=>{let h=f.columns.length;if(H.length===h)return H;let I=[];for(let u=0;u<h;u++){let A;if(u<H.length)A=H[u];else A=document.createElement("div"),A.className=c,N.appendChild(A);I.push(A)}for(let u=h;u<H.length;u++)H[u].remove();return I},L=(N,H,T,h)=>{let I=V.acquire(),u=N,A=T.getSize(H),R=z(H,T,h);I.style.cssText=`width:${f.totalWidth}px;height:${A}px;transform:translateY(${R}px)`,I.className=j2,P(I,"presentation",N.id,H),I.removeAttribute("aria-selected"),I.removeAttribute("aria-rowindex"),I.replaceChildren();let a=document.createElement("div");if(a.className=g,Z){let m=Z(u.groupKey,u.groupIndex);if(typeof m==="string")a.innerHTML=m;else a.appendChild(m)}return I.appendChild(a),{element:I,cells:[],index:H,isGroupHeader:!0,lastItemId:N.id,lastSelected:!1,lastFocused:!1,lastOffset:R,lastHeight:A}},d=(N,H,T,h,I,u)=>{let A=V.acquire(),R=I.getSize(H),a=z(H,I,u),m=w(N.id);A.style.cssText=`width:${f.totalWidth}px;height:${R}px;transform:translateY(${a}px)`,k(A,H,T,h,m),P(A,"row",N.id,H),A.id=`${j}-item-${H}`,A.setAttribute("aria-rowindex",String(H+2)),O(A,T);let K2=D(A,[]),$2=f.columns;for(let q2=0;q2<K2.length&&q2<$2.length;q2++){let X2=K2[q2],Y2=$2[q2];X2.style.cssText=`left:${Y2.offset}px;width:${Y2.width}px`,X2.setAttribute("role","gridcell"),X2.setAttribute("aria-colindex",String(q2+1)),_(X2,Y2),M(X2,N,Y2,H,m)}return{element:A,cells:K2,index:H,isGroupHeader:!1,lastItemId:N.id,lastSelected:T,lastFocused:h,lastOffset:a,lastHeight:R}},r=(N,H,T,h,I)=>{for(let[m,K2]of W)if(m<H.start||m>H.end)V.release(K2.element),W.delete(m);let u=!1,A=B();if(A!==v)v=A,u=!0;let R=null,a=Q();E=typeof G==="string"&&y?y():null;for(let m=H.start;m<=H.end;m++){let K2=m-H.start,$2=N[K2];if(!$2)continue;let q2=T.has($2.id),X2=m===h,Y2=X?X($2):!1,n=W.get(m);if(n){if(n.isGroupHeader!==Y2){V.release(n.element),W.delete(m);let N2=Y2?L($2,m,a,I):d($2,m,q2,X2,a,I);if(W.set(m,N2),!R)R=document.createDocumentFragment();R.appendChild(N2.element);continue}if(Y2){if(n.lastItemId!==$2.id){let V2=$2,U2=n.element.firstElementChild;if(U2&&Z){let M2=Z(V2.groupKey,V2.groupIndex);if(typeof M2==="string")U2.innerHTML=M2;else U2.replaceChildren(M2)}n.element.setAttribute("data-id",String($2.id)),n.lastItemId=$2.id}let W2=z(m,a,I);if(n.lastOffset!==W2)n.lastOffset=W2,n.element.style.transform=`translateY(${W2}px)`;let Z2=a.getSize(m);if(n.lastHeight!==Z2)n.lastHeight=Z2,n.element.style.height=`${Z2}px`}else{let N2=n.lastItemId!==$2.id,W2=n.lastSelected!==q2,Z2=n.lastFocused!==X2;if(N2){let M2=n.lastItemId!=null&&w(n.lastItemId),t=w($2.id);if(!t&&F2(T,m,$2.id))q2=!0;let _2=f.columns;for(let D2=0;D2<n.cells.length&&D2<_2.length;D2++)M(n.cells[D2],$2,_2[D2],m,t);if(k(n.element,m,q2,X2,t),n.element.setAttribute("data-id",String($2.id)),O(n.element,q2),M2&&!t)n.element.classList.add(B2),setTimeout(()=>{n.element.classList.remove(B2)},300);n.lastItemId=$2.id,n.lastSelected=q2,n.lastFocused=X2}else if(W2||Z2)k(n.element,m,q2,X2,w($2.id)),O(n.element,q2),n.lastSelected=q2,n.lastFocused=X2;let V2=z(m,a,I);if(n.lastOffset!==V2)n.lastOffset=V2,n.element.style.transform=`translateY(${V2}px)`;let U2=a.getSize(m);if(n.lastHeight!==U2)n.lastHeight=U2,n.element.style.height=`${U2}px`;if(u)n.element.setAttribute("aria-rowindex",String(m+2))}}else{if(F2(T,m,$2.id))q2=!0;let N2=Y2?L($2,m,a,I):d($2,m,q2,X2,a,I);if(W.set(m,N2),!R)R=document.createDocumentFragment();R.appendChild(N2.element)}}if(R)J.appendChild(R)},l=(N)=>{let H=Q();for(let[T,h]of W){let I=z(T,H,N);if(h.lastOffset!==I)h.lastOffset=I,h.element.style.transform=`translateY(${I}px)`}},o=(N,H,T,h)=>{let I=W.get(N);if(!I)return;if(I.isGroupHeader)return;let u=f.columns;for(let A=0;A<I.cells.length&&A<u.length;A++)M(I.cells[A],H,u[A],N);I.element.setAttribute("data-id",String(H.id)),I.lastItemId=H.id,k(I.element,N,T,h),O(I.element,T),I.lastSelected=T,I.lastFocused=h},U=(N,H,T)=>{let h=W.get(N);if(!h)return;if(h.isGroupHeader)return;let I=h.lastSelected!==H,u=h.lastFocused!==T;if(I||u)k(h.element,N,H,T),O(h.element,H),h.lastSelected=H,h.lastFocused=T},C=(N)=>{f=N;let H=N.columns;for(let[,T]of W)if(T.element.style.width=`${N.totalWidth}px`,T.cells.length>0)for(let h=0;h<T.cells.length&&h<H.length;h++){let I=T.cells[h],u=H[h];I.style.left=`${u.offset}px`,I.style.width=`${u.width}px`}},F=(N)=>{return W.get(N)?.element},x=()=>{for(let[,N]of W)V.release(N.element);W.clear(),v=-1};return{render:r,updatePositions:l,updateItem:o,updateItemClasses:U,getElement:F,updateColumnLayout:C,setGroupHeaderFn:K,clear:x,destroy:()=>{x(),V.clear()}}};var MJ=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.containerSize,q=0,j=[],B=()=>{let Z=(Q-1)*Y;q=Math.max(0,($-Z)/Q),j=Array(Q);let K=q+Y;for(let O=0;O<Q;O++)j[O]=O*K};B();let G=[],y=0,V=[],W=(Z,K)=>{if(Z<=0)return y=0,G=[],[];let O=Array(Q).fill(0),P=Array(Q);for(let p=0;p<Q;p++)P[p]=[];let w=Array(Z);for(let p=0;p<Z;p++){let s=0,c=O[0];for(let i=1;i<Q;i++){let Q2=O[i];if(Q2<c)c=Q2,s=i}let e=K(p),J2=O[s];w[p]={index:p,x:j[s],y:J2,lane:s,size:e,crossSize:q},P[s].push(p),O[s]=J2+e+Y}G=P;let S=0;for(let p=0;p<Q;p++){let s=O[p],c=s>0?s-Y:0;if(c>S)S=c}return y=S,w},v=(Z)=>{if(Z.length===0)return y;if(y)return y;let K=Array(Q).fill(0);for(let P of Z){let w=P.y+P.size,S=K[P.lane];if(w>S)K[P.lane]=w}let O=0;for(let P=0;P<Q;P++)if(K[P]>O)O=K[P];return O},f=(Z,K,O)=>{if(Z.length===0||O<=K)return V.length=0,V;if(G.length===0||G.length!==Q)return E(Z,K,O);V.length=0;for(let P=0;P<Q;P++){let w=G[P],S=w.length;if(!S)continue;let p=0,s=S;while(p<s){let c=p+s>>>1,e=Z[w[c]];if(e.y+e.size<=K)p=c+1;else s=c}for(let c=p;c<S;c++){let e=Z[w[c]];if(e.y>=O)break;V.push(e)}}return V},E=(Z,K,O)=>{V.length=0;for(let P of Z)if(P.y+P.size>K&&P.y<O)V.push(P);return V};return{get columns(){return Q},get gap(){return Y},get containerSize(){return $},update:(Z)=>{let K=!1;if(Z.columns!==void 0){let O=Math.max(1,Math.floor(Z.columns));if(O!==Q)Q=O,K=!0}if(Z.gap!==void 0&&Z.gap!==Y)Y=Z.gap,K=!0;if(Z.containerSize!==void 0&&Z.containerSize!==$)$=Z.containerSize,K=!0;if(K)B()},calculateLayout:W,getTotalSize:v,getVisibleItems:f}};var dJ=(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}}},cJ=1,GJ=(J,Q,Y,$=!1,q,j,B,G)=>{let y=dJ(),V=new Map,W=new Set,v=0,f="",E=-1,X={selected:!1,focused:!1},Z=(g,M)=>{return X.selected=g,X.focused=M,X},K=`${Y}-item ${Y}-masonry-item`,O=`${Y}-group-header`,P=`${Y}-item--selected`,w=`${Y}-item--focused`,S=(g,M)=>{if(typeof M==="string")g.innerHTML=M;else g.replaceChildren(M)},p=(g,M,k)=>{g.classList.toggle(P,M),g.classList.toggle(w,k)},s=(g,M)=>{if($)g.style.transform=`translate(${Math.round(M.y)}px, ${Math.round(M.x)}px)`;else g.style.transform=`translate(${Math.round(M.x)}px, ${Math.round(M.y)}px)`},c=(g,M)=>{if($)g.style.width=`${M.size}px`,g.style.height=`${M.crossSize}px`;else g.style.width=`${M.crossSize}px`,g.style.height=`${M.size}px`},e=(g,M,k,z,_)=>{let D=y.acquire(),L=M.__groupHeader,d=Z(z,_);if(D.className=L?O:K,D.dataset.index=String(g),D.dataset.id=String(M.id),D.dataset.lane=String(k.lane),L)D.setAttribute("role","presentation"),D.removeAttribute("aria-selected"),D.removeAttribute("aria-setsize"),D.removeAttribute("aria-posinset"),D.removeAttribute("id");else if(G!==!1){if(D.setAttribute("role","option"),D.ariaSelected=String(z),j)D.id=`${j}-item-${g}`;if(q){let l=q();if(l!==E)E=l,f=String(l);D.setAttribute("aria-setsize",f);let o=B?B(g):g+1;D.setAttribute("aria-posinset",String(o))}}else if(D.setAttribute("role","listitem"),D.removeAttribute("aria-selected"),q){let l=q();if(l!==E)E=l,f=String(l);D.setAttribute("aria-setsize",f);let o=B?B(g):g+1;D.setAttribute("aria-posinset",String(o))}c(D,k);let r=Q(M,g,d);return S(D,r),p(D,z,_),s(D,k),{element:D,lastItemId:M.id,lastSelected:z,lastFocused:_,lastY:k.y,lastX:k.x,lastSize:k.size,lastCrossSize:k.crossSize,lastSeenFrame:v}},J2=(g,M,k,z)=>{v++,W.clear();for(let D=0;D<M.length;D++)W.add(M[D].index);for(let[D,L]of V)if(W.has(D))L.lastSeenFrame=v;else if(v-L.lastSeenFrame>cJ)y.release(L.element),V.delete(D);let _=null;for(let D=0;D<M.length;D++){let L=M[D],d=L.index,r=g(d);if(!r)continue;let l=k.has(r.id),o=d===z,U=V.get(d);if(U){let C=U.lastItemId!==r.id,F=U.lastSelected!==l,x=U.lastFocused!==o,b=U.lastY!==L.y||U.lastX!==L.x,N=U.lastSize!==L.size||U.lastCrossSize!==L.crossSize;if(C){let H=Z(l,o),T=Q(r,d,H);if(S(U.element,T),U.element.dataset.id=String(r.id),U.lastItemId=r.id,!r.__groupHeader){let I=B?B(d):d+1;U.element.setAttribute("aria-posinset",String(I))}}if(C||F||x)p(U.element,l,o),U.element.ariaSelected=String(l),U.lastSelected=l,U.lastFocused=o;if(N)c(U.element,L),U.lastSize=L.size,U.lastCrossSize=L.crossSize;if(b)s(U.element,L),U.lastY=L.y,U.lastX=L.x}else{let C=e(d,r,L,l,o);if(!_)_=document.createDocumentFragment();_.appendChild(C.element),V.set(d,C)}}if(_)J.appendChild(_)},i=()=>{for(let g of V.values())y.release(g.element);V.clear(),J.innerHTML=""};return{render:J2,getElement:(g)=>V.get(g)?.element,updateItemClasses:(g,M,k)=>{let z=V.get(g);if(!z)return;let _=z.lastSelected!==M,D=z.lastFocused!==k;if(_||D)p(z.element,M,k),z.lastSelected=M,z.lastFocused=k},sortDOM:()=>{k2(J,V.keys(),(g)=>V.get(g)?.element)},clear:i,destroy:()=>{i(),y.clear()}}};var OJ=(J,Q)=>{let Y=new Map,$=(j)=>Y.get(j)??J,q=R2($,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=R2($,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 EJ=(J,Q,Y,$,q,j)=>{if($===0||Q===0)return j.start=0,j.end=-1,j;let B=Y.indexAtOffset(J),G=Y.indexAtOffset(J+Q);if(G<$-1)G++;return j.start=Math.max(0,B),j.end=Math.min($-1,Math.max(0,G)),j},AJ=(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),$},FJ=(J,Q,Y,$,q,j)=>{if($===0)return 0;let B=Math.max(0,Math.min(J,$-1)),G=Q.getOffset(B),y=Q.getSize(B),V=Q.getTotalSize(),W=Math.max(0,V-Y),v;switch(j){case"center":v=G-Y/2+y/2;break;case"end":v=G-Y+y;break;case"start":default:v=G;break}return Math.max(0,Math.min(v,W))},LJ=(J,Q,Y)=>{if(Y&&Y.isCompressed)return Y.virtualSize;return Q.getTotalSize()},HJ=(J,Q)=>{return Q.getTotalSize()},bJ=(J,Q)=>{return Q.getOffset(J)},TJ=(J,Q,Y)=>{let $=Math.max(0,Q-Y);return Math.max(0,Math.min(J,$))};var RJ=(J,Q,Y,$,q="start",j,B=FJ)=>{return B(J,Q,Y,$,j,q)},yJ=(J,Q)=>{return J.start===Q.start&&J.end===Q.end},PJ=(J,Q)=>{return J>=Q.start&&J<=Q.end},kJ=(J)=>{if(J.end<J.start)return 0;return J.end-J.start+1};var zJ=(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 wJ=()=>{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((G)=>{try{G(B)}catch(y){console.error(`[vlist] Error in event handler for "${String(j)}":`,y)}})},clear:(j)=>{if(j)delete J[j];else for(let B in J)delete J[B]}}};var z2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:Y=5000,evictionBuffer:$=200,onEvict:q}=J,j=new Map,B=0,G=0,y=(M)=>{let k=j.get(M);if(!k)k={items:Array(Q),count:0,lastAccess:Date.now()},j.set(M,k);else k.lastAccess=Date.now();return k},V=(M)=>{return Math.floor(M/Q)},W=(M)=>{return M%Q},v=()=>B,f=(M)=>{B=M},E=(M)=>{if(M<0||M>=B)return;let k=V(M),z=j.get(k);if(!z)return;return z.items[W(M)]},X=(M)=>{if(M<0||M>=B)return!1;let k=V(M),z=j.get(k);if(!z)return!1;return z.items[W(M)]!==void 0},Z=(M,k)=>{let z=V(M),_=y(z),D=W(M),L=_.items[D]===void 0;if(_.items[D]=k,L)_.count++,G++;if(M>=B)B=M+1},K=(M,k)=>{for(let z=0;z<k.length;z++){let _=k[z];if(_!==void 0)Z(M+z,_)}},O=(M)=>{if(M<0||M>=B)return!1;let k=V(M),z=j.get(k),_=W(M);if(!(z!==void 0&&z.items[_]!==void 0))return!1;let L=k,d=Array.from(j.keys()).filter((l)=>l>=L).sort((l,o)=>l-o),r=[];for(let l of d){let o=j.get(l),U=l*Q;for(let C=0;C<Q;C++){if(o.items[C]===void 0)continue;let F=U+C;if(F<=M)continue;r.push({oldIndex:F,item:o.items[C]})}}if(z.items[_]=void 0,z.count--,G--,z.count===0)j.delete(k);for(let{oldIndex:l}of r){let o=V(l),U=j.get(o);if(!U)continue;let C=W(l);if(U.items[C]!==void 0){if(U.items[C]=void 0,U.count--,G--,U.count===0)j.delete(o)}}for(let{oldIndex:l,item:o}of r){let U=l-1,C=V(U),F=y(C),x=W(U);F.items[x]=o,F.count++,G++}return B--,!0},P=(M,k)=>{let z=[];for(let _=M;_<=k&&_<B;_++)z.push(E(_));return z},w=(M,k)=>{for(let z=M;z<=k&&z<B;z++)if(!X(z))return!1;return!0},S=()=>{let M=[],k=null,z=Array.from(j.keys()).sort((_,D)=>_-D);for(let _ of z){let D=j.get(_);if(!D)continue;let L=_*Q;for(let d=0;d<Q;d++){let r=L+d;if(r>=B)break;if(D.items[d]!==void 0)if(k===null)k={start:r,end:r};else if(r===k.end+1)k.end=r;else M.push(k),k={start:r,end:r};else if(k!==null)M.push(k),k=null}}if(k!==null)M.push(k);return M},p=(M,k)=>{let z=[],_=null;for(let D=M;D<=k&&D<B;D++)if(!X(D))if(_===null)_={start:D,end:D};else _.end=D;else if(_!==null)z.push(_),_=null;if(_!==null)z.push(_);return z},s=(M)=>{return j.has(M)},c=(M)=>{let k=j.get(M);if(k)k.lastAccess=Date.now()},e=(M,k)=>{if(M>k||j.size===0)return;let z=Date.now(),_=V(Math.max(0,M)),D=V(Math.min(B-1,k));for(let L=_;L<=D;L++){let d=j.get(L);if(d)d.lastAccess=z}},J2=(M,k)=>{if(G<=Y)return 0;let z=Math.max(0,M-$),_=Math.min(B-1,k+$),D=V(z),L=V(_),d=0,r=[];for(let[l,o]of j)if(l<D||l>L)d+=o.count,r.push(l),G-=o.count,j.delete(l);if(d>0&&q)q(d,r);return d},i=()=>{if(G<=Y)return 0;let M=Array.from(j.entries()).sort(([,_],[,D])=>_.lastAccess-D.lastAccess),k=0,z=[];for(let[_,D]of M){if(G<=Y)break;k+=D.count,G-=D.count,z.push(_),j.delete(_)}if(k>0&&q)q(k,z);return k},Q2=()=>{return{totalItems:B,cachedItems:G,cachedChunks:j.size,chunkSize:Q,maxCachedItems:Y,memoryEfficiency:B>0?1-G/B:1}},B2=()=>G,j2=()=>{j.clear(),G=0};return{chunkSize:Q,maxCachedItems:Y,getTotal:v,setTotal:f,get:E,has:X,set:Z,setRange:K,delete:O,getRange:P,isRangeLoaded:w,getLoadedRanges:S,findUnloadedRanges:p,getChunkIndex:V,isChunkLoaded:s,touchChunk:c,touchChunksForRange:e,evictDistant:J2,evictToLimit:i,getStats:Q2,getCachedCount:B2,clear:j2,reset:()=>{j2(),B=0}}},w2=(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},u2=(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=[],G=w2(Q),y=j.start;for(let V of G){if(V.end<y)continue;if(V.start>j.end)break;if(V.start>y)B.push({start:y,end:Math.min(V.start-1,j.end)});if(y=V.end+1,y>j.end)break}if(y<=j.end)B.push({start:y,end:j.end});return B};var v2=(J={})=>{let{maskCharacter:Q=o2,maxSampleSize:Y=i2}=J,$=[],q=!1,j=(W)=>{if(q||W.length===0)return;let v=Math.min(W.length,Y);for(let f=0;f<v;f++){let E=W[f];if(!E||typeof E!=="object")continue;let X={},Z=!1;for(let[K,O]of Object.entries(E)){if(K.startsWith("_")||K==="id")continue;X[K]=String(O??"").length,Z=!0}if(Z)$.push(X)}q=!0},B=()=>q,G=(W)=>{let v={id:`${E2}${W}`,[I2]:!0,_index:W};if($.length===0)return v.label=Q.repeat(12),v;let f=$[W%$.length];for(let[E,X]of Object.entries(f))v[E]=Q.repeat(Math.max(1,X));return v};return{analyzeStructure:j,hasAnalyzedStructure:B,generate:G,generateRange:(W,v)=>{let f=[];for(let E=W;E<=v;E++)f.push(G(E));return f},clear:()=>{$=[],q=!1}}},A2=(J)=>{if(!J||typeof J!=="object")return!1;return J[I2]===!0},m2=(J)=>{return J.filter((Q)=>!A2(Q))};var lJ=50,vJ=(J={})=>{let{adapter:Q,initialItems:Y,initialTotal:$,storage:q,placeholder:j,pageSize:B=lJ,onStateChange:G,onItemsLoaded:y,onItemsEvicted:V}=J,W=z2({...q,onEvict:(A,R)=>{V?.(A),c()}}),v=null,f=()=>{if(!v)v=v2(j);return v},E=new Map,X=!1,Z,K=!0,O,P,w=[],S=0,p=new Map,s=()=>{for(let A of p.values())A[1].abort();p.clear()},c=()=>{G?.(k())},e=()=>{E.clear();let A=W.getLoadedRanges();for(let R of A)for(let a=R.start;a<=R.end;a++){let m=W.get(a);if(m&&!A2(m))E.set(m.id,a)}},J2=(A,R)=>{if(!A2(R))E.set(R.id,A)},i=(A)=>{E.delete(A)},Q2=(A,R)=>{return`${A}-${R}`},B2=()=>W.getTotal(),j2=()=>W.getCachedCount(),g=()=>X,M=()=>K,k=()=>({total:W.getTotal(),cached:W.getCachedCount(),isLoading:X,pendingRanges:w,error:Z,hasMore:K,cursor:O}),z=()=>W,_=()=>f(),D=(A)=>{let R=W.get(A);if(R!==void 0)return R;if(A>=0&&A<W.getTotal())return f().generate(A);return},L=(A)=>{let R=E.get(A);if(R===void 0)return;return W.get(R)},d=(A)=>{return E.get(A)??-1},r=(A)=>{let R=W.get(A);return R!==void 0&&!A2(R)},l=(A,R)=>{let a=[],m=W.getTotal();W.touchChunksForRange(A,Math.min(R,m-1));for(let K2=A;K2<=R&&K2<m;K2++){let $2=W.get(K2);if($2!==void 0)a.push($2);else a.push(f().generate(K2))}return a},o=(A)=>{W.setTotal(A),K=W.getCachedCount()<A,c()},U=(A,R=0,a)=>{if(Q&&A.length>0){let m=f();if(!m.hasAnalyzedStructure())m.analyzeStructure(A)}for(let m=0;m<A.length;m++){let K2=A[m];if(K2!==void 0){let $2=R+m;W.set($2,K2),J2($2,K2)}}if(a!==void 0)W.setTotal(a);else if(R+A.length>W.getTotal())W.setTotal(R+A.length);if(W.getCachedCount()>=W.getTotal()&&W.getTotal()>0)K=!1;c(),y?.(A,R,W.getTotal())},C=(A,R)=>{let a=W.get(A);if(!a)return!1;let m=a.id,K2={...a,...R};if(W.set(A,K2),R.id!==void 0&&R.id!==m)i(m);return J2(A,K2),c(),!0},F=(A)=>{let R=E.get(A);if(R===void 0)return!1;if(!W.delete(R))return!1;return e(),s(),c(),!0},x=async(A,R)=>{if(!Q)return;let a=W.chunkSize,m=Math.floor(A/a),K2=Math.floor(R/a),$2=a*2;for(let[Y2,n]of p){let N2=Y2.indexOf("-"),W2=parseInt(Y2.slice(0,N2),10);if(Math.abs(W2-A)>$2)n[1].abort(),p.delete(Y2)}let q2=[],X2=[];for(let Y2=m;Y2<=K2;Y2++){let n=Y2*a,N2=n+a-1,W2=Q2(n,N2);if(W.isChunkLoaded(Y2))continue;let Z2=p.get(W2);if(Z2)X2.push(Z2[0]);else q2.push({start:n,end:N2})}if(q2.length===0)return;for(let Y2 of q2){let n=Q2(Y2.start,Y2.end),N2=new AbortController,W2=(async()=>{w.push(Y2),X=!0,Z=void 0,c();try{let Z2=Y2.end-Y2.start+1,V2={offset:Y2.start,limit:Z2,cursor:Y2.start===P?O:void 0,signal:N2.signal},U2=await Q.read(V2);if(U(U2.items,Y2.start,U2.total),U2.cursor)O=U2.cursor,P=Y2.start+U2.items.length;let M2=Y2.start+U2.items.length;if(M2>=S){if(S=M2,U2.hasMore!==void 0)K=U2.hasMore;else if(U2.total!==void 0)K=M2<U2.total}}catch(Z2){if(Z2?.name==="AbortError")return;Z=Z2 instanceof Error?Z2:Error(String(Z2))}finally{p.delete(n),w=w.filter((Z2)=>Z2.start!==Y2.start||Z2.end!==Y2.end),X=p.size>0,c()}})();p.set(n,[W2,N2]),X2.push(W2)}await Promise.all(X2)},b=async(A,R)=>{if(W.isRangeLoaded(A,R))return;await x(A,R)},N=async()=>{if(!Q)return;await x(0,B-1)},H=async()=>{if(!Q||X||!K)return!1;let A=W.getCachedCount(),R=W.getTotal(),a=A,m=Math.min(a+B-1,R>0?R-1:a+B-1);if(a>=R&&R>0)return K=!1,!1;return await x(a,m),W.getCachedCount()>A},T=async()=>{if(W.clear(),W.setTotal(0),E.clear(),v)v.clear();s(),w=[],X=!1,O=void 0,P=void 0,K=!0,S=0,Z=void 0,c()},h=(A,R)=>{if(W.evictDistant(A,R)>0)e()},I=()=>{W.clear(),E.clear(),O=void 0,P=void 0,Z=void 0,w=[],X=!1,c()},u=()=>{if(W.reset(),E.clear(),v)v.clear();O=void 0,P=void 0,K=!0,S=0,Z=void 0,w=[],X=!1,c()};if(Y&&Y.length>0)U(Y,0,$??Y.length);else if($!==void 0)W.setTotal($),c();return{getState:k,getTotal:B2,getCached:j2,getIsLoading:g,getHasMore:M,getStorage:z,getPlaceholders:_,getItem:D,getItemById:L,getIndexById:d,isItemLoaded:r,getItemsInRange:l,setTotal:o,setItems:U,updateItem:C,removeItem:F,loadRange:x,ensureRange:b,loadInitial:N,loadMore:H,reload:T,evictDistant:h,clear:I,reset:u}};var CJ=(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}},C2=(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],G=Q-B.position,y=Y-B.time;J.velocity=y>0?G/y:0}return J.lastPosition=Q,J.lastTime=Y,J},aJ=(J)=>J.sampleCount>=3,fJ=(J,Q={})=>{let{wheel:Y=!0,sensitivity:$=1,smoothing:q=!1,idleTimeout:j=150,onScroll:B,onIdle:G,scrollElement:y,horizontal:V=!1}=Q,W=!!y,v=0,f=0,E=W?V?window.innerWidth:window.innerHeight:V?J.clientWidth:J.clientHeight,X=Q.compressed??!1,Z=Q.compression,K=CJ(),O=!1,P=null,S=f2(()=>{let F=V?J.scrollLeft:J.scrollTop,x=F>=v?"down":"up";if(K=C2(K,F),v=F,B)B({scrollTop:v,direction:x,velocity:K.velocity});i()}),s=f2(()=>{let F=J.getBoundingClientRect(),x=V?Math.max(0,-F.left):Math.max(0,-F.top),b=x>=v?"down":"up";if(K=C2(K,x),v=x,!O)O=!0;if(B)B({scrollTop:v,direction:b,velocity:K.velocity});i()}),c=(F)=>{F.preventDefault()},e=(F)=>{if(F.deltaX)return;F.preventDefault(),J.scrollLeft+=F.deltaY},J2=(F)=>{if(!X)return;F.preventDefault();let x=(V?F.deltaX||F.deltaY:F.deltaY)*$,b=v+x;if(q)b=v+x*0.3;if(b=Math.max(0,Math.min(b,f)),b!==v){let H=b>=v?"down":"up";if(K=C2(K,b),v=b,!O)O=!0;if(B)B({scrollTop:v,direction:H,velocity:K.velocity});i()}},i=()=>{if(P)clearTimeout(P);P=setTimeout(()=>{if(O=!1,K=CJ(v),G)G()},j)},Q2=(F)=>{if(X)return;if(X=!0,Z=F,f=F.virtualSize-E,W)return;if(S.cancel(),J.removeEventListener("scroll",S),!Y)J.removeEventListener("wheel",c);else if(V)J.removeEventListener("wheel",e);if(V)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",J2,{passive:!1});let x=V?J.scrollLeft:J.scrollTop;if(x>0){let b=V?Z?.actualSize??J.scrollWidth:Z?.actualSize??J.scrollHeight;v=x/b*f}if(V)J.scrollLeft=0;else J.scrollTop=0},B2=()=>{if(!X)return;if(X=!1,W){Z=void 0;return}if(J.removeEventListener("wheel",J2),V)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",S,{passive:!0}),!Y)J.addEventListener("wheel",c,{passive:!1});else if(V)J.addEventListener("wheel",e,{passive:!1});if(Z&&v>0){let x=v/f*(Z.actualSize-E);if(V)J.scrollLeft=x;else J.scrollTop=x}Z=void 0},j2=()=>{if(W||X)return v;return V?J.scrollLeft:J.scrollTop},g=(F,x=!1)=>{let b=Math.max(0,Math.min(F,f||1/0));if(W){let N=J.getBoundingClientRect();if(V){let H=N.left+window.scrollX;window.scrollTo({left:H+b,behavior:x?"smooth":"auto"})}else{let H=N.top+window.scrollY;window.scrollTo({top:H+b,behavior:x?"smooth":"auto"})}}else if(X){if(b===v)return;let H=b>=v?"down":"up";if(K=C2(K,b),v=b,!O)O=!0;if(B)B({scrollTop:v,direction:H,velocity:K.velocity});i()}else if(V)J.scrollTo({left:b,behavior:x?"smooth":"auto"});else J.scrollTo({top:b,behavior:x?"smooth":"auto"})},M=(F)=>{g(j2()+F)},k=()=>{return j2()<=0},z=(F=0)=>{let x=j2(),b=W||X?f:V?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return x>=b-F},_=()=>{let F=j2(),x=W||X?f:V?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(x<=0)return 0;return Math.min(1,Math.max(0,F/x))},D=(F)=>{if(F.compression)Z=F.compression,f=Z.virtualSize-E},L=()=>X,d=()=>Math.abs(K.velocity),r=()=>aJ(K),l=()=>O,o=()=>W,U=(F)=>{if(E=F,Z)f=Z.virtualSize-E},C=()=>{if(P)clearTimeout(P);if(W)s.cancel(),window.removeEventListener("scroll",s);else S.cancel(),J.removeEventListener("scroll",S),J.removeEventListener("wheel",J2),J.removeEventListener("wheel",c),J.removeEventListener("wheel",e)};if(W){if(X&&Z)f=Z.virtualSize-E;window.addEventListener("scroll",s,{passive:!0})}else if(X&&Z){if(f=Z.virtualSize-E,V)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",J2,{passive:!1})}else{if(V)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",S,{passive:!0}),!Y)J.addEventListener("wheel",c,{passive:!1});else if(V)J.addEventListener("wheel",e,{passive:!1})}return{getScrollTop:j2,scrollTo:g,scrollBy:M,isAtTop:k,isAtBottom:z,getScrollPercentage:_,getVelocity:d,isTracking:r,isScrolling:l,updateConfig:D,enableCompression:Q2,disableCompression:B2,isCompressed:L,isWindowMode:o,updateContainerHeight:U,destroy:C}},f2=(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 sJ=(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}},SJ=(J,Q,Y={},$="vlist",q=!1,j)=>{let{autoHide:B=!0,autoHideDelay:G=1000,minThumbSize:y=15,showOnHover:V=!0,showOnViewportEnter:W=!0,clickBehavior:v="scroll"}=Y,f=v==="page"?"scroll":v,E=j??J,X=sJ(Y.padding),Z=q?X.left:X.top,K=q?X.right:X.bottom,O=q?X.bottom:X.right,P=Y.hoverZoneWidth??O+16,w=0,S=0,p=0,s=0,c=!1,e=!1,J2=0,i=0,Q2=0,B2=null,j2=!1,g=null,M=null,k=0,z=0,_=null,D=null,L=null,d=q?"width":"height",r=q?"translateX":"translateY",l=q?(t)=>t.clientX:(t)=>t.clientY,o=q?"left":"top",U=document.createElement("div"),C=document.createElement("div"),F=document.createElement("div"),x=q?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",b=()=>{if(E===J)return;let t=J.offsetTop;U.style[q?"left":"top"]=t?`calc(var(${x}) + ${t}px)`:`var(${x})`,F.style[q?"left":"top"]=`${t}px`},N=()=>{if(U.className=`${$}-scrollbar`,C.className=`${$}-scrollbar-thumb`,q)U.classList.add(`${$}-scrollbar--horizontal`);if(Y.padding!==void 0)E.style.setProperty("--vlist-custom-scrollbar-padding-top",`${X.top}px`),E.style.setProperty("--vlist-custom-scrollbar-padding-right",`${X.right}px`),E.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${X.bottom}px`),E.style.setProperty("--vlist-custom-scrollbar-padding-left",`${X.left}px`);if(Y.minThumbSize!==void 0)U.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${y}px`);if(U.appendChild(C),E.appendChild(U),F.className=`${$}-scrollbar-hover`,q)F.classList.add(`${$}-scrollbar-hover--horizontal`),F.style.height=`${P}px`;else F.style.width=`${P}px`;if(E.appendChild(F),E!==J)b()},H=()=>{if(B2)clearTimeout(B2),B2=null},T=()=>{if(!B)return;H(),B2=setTimeout(I,G)},h=()=>{if(w<=S)return;if(H(),!j2)U.classList.add(`${$}-scrollbar--visible`),j2=!0;if(B&&!c&&!e)T()},I=()=>{if(c||e)return;U.classList.remove(`${$}-scrollbar--visible`),j2=!1},u=(t,_2)=>{if(w=t,S=_2,b(),w<=S){U.style.display="none",I();return}U.style.display="";let D2=Math.max(0,S-Z-K),O2=S/w;if(p=Math.max(y,O2*D2),C.style[d]=`${p}px`,s=D2-p,A(Q2),!B)h()},A=(t)=>{if(Q2=t,w<=S||s<=0)return;let _2=w-S,D2=Math.min(1,Math.max(0,t/_2));C.style.transform=`${r}(${D2*s}px)`},R=(t)=>{if(t.target===C||f!=="jump"||s<=0)return;let _2=w-S,D2=U.getBoundingClientRect(),O2=l(t)-D2[o],H2=Math.max(0,Math.min(O2-p/2,s));Q(H2/s*_2),h()},a=()=>{if(_!==null)clearTimeout(_),_=null;if(D!==null)cancelAnimationFrame(D),D=null;L=null},m=(t)=>{let _2=s>0?z/t*s:0;if(k<_2)return-1;if(k>=_2+p)return 1;return 0},K2=()=>{let t=w-S,_2=m(t);if(_2===0){a();return}if(_2===-1){if(z<=0){a();return}let D2=Math.max(0,z-S);z=D2,Q(D2)}else{if(z>=t){a();return}let D2=Math.min(t,z+S);z=D2,Q(D2)}h()},$2=(t)=>{if(L===null){L=t,D=requestAnimationFrame($2);return}let _2=w-S,D2=t-L;L=t;let O2=m(_2);if(O2===0){a();return}let H2=12*S/1000,b2=Math.min(H2*D2,S);if(O2===-1){if(z<=0){a();return}let T2=Math.max(0,z-b2);z=T2,Q(T2)}else{if(z>=_2){a();return}let T2=Math.min(_2,z+b2);z=T2,Q(T2)}H(),D=requestAnimationFrame($2)},q2=()=>{a(),T(),document.removeEventListener("mouseup",q2)},X2=(t)=>{if(t.target===C||f!=="scroll")return;t.preventDefault();let _2=U.getBoundingClientRect();k=l(t)-_2[o],z=Q2,K2(),_=setTimeout(()=>{D=requestAnimationFrame($2)},350),document.addEventListener("mouseup",q2)},Y2=(t)=>{t.preventDefault(),t.stopPropagation(),c=!0,J2=l(t),i=Q2,H(),U.classList.add(`${$}-scrollbar--dragging`),document.addEventListener("mousemove",n),document.addEventListener("mouseup",N2)},n=(t)=>{if(!c)return;let _2=l(t)-J2,D2=s>0?_2/s:0,O2=w-S,H2=D2*O2,b2=Math.max(0,Math.min(i+H2,O2));if(C.style.transform=`${r}(${b2/O2*s}px)`,M=b2,g===null)g=requestAnimationFrame(()=>{if(M!==null)Q(M);g=null})},N2=()=>{if(c=!1,g!==null)cancelAnimationFrame(g),g=null;if(M!==null)Q(M),M=null;if(U.classList.remove(`${$}-scrollbar--dragging`),B&&!e)T();document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",N2)},W2=()=>{if(W)h()},Z2=()=>{if(!c){if(e=!1,B)T()}},V2=()=>{e=!0,H(),h()},U2=()=>{if(e=!1,!c&&B)T()},M2=()=>{if(H(),a(),g!==null)cancelAnimationFrame(g),g=null;U.removeEventListener("click",R),U.removeEventListener("mousedown",X2),U.removeEventListener("mouseenter",V2),document.removeEventListener("mouseup",q2),U.removeEventListener("mouseleave",U2),C.removeEventListener("mousedown",Y2),J.removeEventListener("mouseenter",W2),J.removeEventListener("mouseleave",Z2),document.removeEventListener("mousemove",n),document.removeEventListener("mouseup",N2),F.removeEventListener("click",R),F.removeEventListener("mousedown",X2),F.removeEventListener("mouseenter",V2),F.removeEventListener("mouseleave",U2),F.remove(),E.style.removeProperty("--vlist-custom-scrollbar-padding-top"),E.style.removeProperty("--vlist-custom-scrollbar-padding-right"),E.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),E.style.removeProperty("--vlist-custom-scrollbar-padding-left"),U.remove()};if(N(),U.addEventListener("click",R),U.addEventListener("mousedown",X2),U.addEventListener("mouseenter",V2),U.addEventListener("mouseleave",U2),C.addEventListener("mousedown",Y2),J.addEventListener("mouseenter",W2),J.addEventListener("mouseleave",Z2),F.addEventListener("click",R),F.addEventListener("mousedown",X2),V)F.addEventListener("mouseenter",V2),F.addEventListener("mouseleave",U2);return{show:h,hide:I,updateBounds:u,updatePosition:A,isVisible:()=>j2,destroy:M2}};var nJ=50,oJ=0.1;function iJ(J){let Q=0,Y=0,$=0;function q(){return $>0?Y/$:0}function j(y){if(Q=y,y>oJ&&y<nJ)Y+=y,$++}function B(){let y=J.getTotal();if(y===0)return 0;let V=J.getItemSize();if(V<=0)return 0;let W=J.getContainerSize();if(W<=0)return 0;let v=J.getScrollPosition(),f=typeof J.getColumns==="function"?J.getColumns():1,X=Math.ceil(y/f)*V,K=Math.min(X,G2)-W,O=X-W,P=K>0?O/K:1,w=v*P,S=Math.ceil((w+W)/V);return Math.min(S*f,y)}function G(){let y=J.getTotal(),V=B();return{progress:y>0?Math.min(100,Math.max(0,V/y*100)):0,velocity:Q,velocityAvg:q(),itemCount:V,total:y}}return{getState:G,onVelocity:j}}export{e2 as toggleSelection,EJ as simpleVisibleRange,p2 as selectItems,JJ as selectAll,yJ as rangesEqual,f2 as rafThrottle,UJ as needsScaling,w2 as mergeRanges,$J as isSelected,A2 as isPlaceholderItem,PJ as isInRange,P2 as isGroupHeader,jJ as getSelectedItems,YJ as getSelectedIds,y2 as getScaleState,ZJ as getScaleInfo,y2 as getScale,kJ as getRangeCount,NJ as getMaxItemsWithoutScaling,m2 as filterPlaceholders,zJ as diffRanges,h2 as deselectItems,VJ as createTableRenderer,DJ as createTableLayout,WJ as createTableHeader,s2 as createStickyHeader,iJ as createStats,z2 as createSparseStorage,R2 as createSizeCache,t2 as createSelectionState,SJ as createScrollbar,fJ as createScrollController,v2 as createPlaceholderManager,OJ as createMeasuredSizeCache,GJ as createMasonryRenderer,MJ as createMasonryLayout,l2 as createGroupedSizeFn,a2 as createGroupLayout,_J as createGridRenderer,n2 as createGridLayout,wJ as createEmitter,vJ as createAsyncManager,QJ as clearSelection,TJ as clampScrollPosition,LJ as calculateTotalSize,RJ as calculateScrollToIndex,qJ as calculateScaledVisibleRange,KJ as calculateScaledScrollToIndex,BJ as calculateScaledRenderRange,L2 as calculateScaledItemPosition,AJ as calculateRenderRange,u2 as calculateMissingRanges,bJ as calculateItemOffset,XJ as calculateIndexFromScrollPosition,HJ as calculateActualSize,r2 as buildLayoutItems,G2 as MAX_VIRTUAL_SIZE};
|
|
1
|
+
var P2=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var S2=(J,Q)=>{let Y=0,$=J.length-1;while(Y<$){let B=Y+$+1>>>1;if(J[B].headerLayoutIndex<=Q)Y=B;else $=B-1}return Y},d2=(J,Q)=>{let Y=0,$=J.length-1;while(Y<$){let B=Y+$+1>>>1;if(J[B].firstDataIndex<=Q)Y=B;else $=B-1}return Y},c2=(J,Q,Y)=>{if(J===0)return[];let $=[],B=Q(0,Y?.(0)),j=0,q=0;for(let O=1;O<J;O++){let y=Q(O,Y?.(O));if(y!==B){let M=O-j;$.push({key:B,groupIndex:$.length,headerLayoutIndex:q,firstDataIndex:j,count:M}),q=q+1+M,B=y,j=O}}return $.push({key:B,groupIndex:$.length,headerLayoutIndex:q,firstDataIndex:j,count:J-j}),$},r2=(J,Q)=>{if(J.length===0||Q.length===0)return[];let Y=J.length+Q.length,$=Array(Y),B=0;for(let j of Q){$[B]={id:`__group_header_${j.groupIndex}`,__groupHeader:!0,groupKey:j.key,groupIndex:j.groupIndex},B++;for(let q=0;q<j.count;q++)$[B]=J[j.firstDataIndex+q],B++}return $},l2=(J,Q,Y=!1)=>{let $=typeof Q==="number"?(B)=>Q:Q;return(B)=>{let j=J.getEntry(B);if(j.type==="header"){if(Y&&j.group.groupIndex===0)return 0;return J.getHeaderHeight(j.group.groupIndex)}return $(j.dataIndex)}},a2=(J,Q,Y)=>{let $=c2(J,Q.getGroupForIndex,Y),B=J+$.length,j=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return B},get groupCount(){return $.length},get groups(){return $},getEntry:(L)=>{if($.length===0)return{type:"item",dataIndex:L,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let _=S2($,L),W=$[_];if(L===W.headerLayoutIndex)return{type:"header",group:W};let X=L-W.headerLayoutIndex-1;return{type:"item",dataIndex:W.firstDataIndex+X,group:W}},layoutToDataIndex:(L)=>{if($.length===0)return L;let _=S2($,L),W=$[_];if(L===W.headerLayoutIndex)return-1;let X=L-W.headerLayoutIndex-1;return W.firstDataIndex+X},dataToLayoutIndex:(L)=>{if($.length===0)return L;let _=d2($,L),W=$[_],X=L-W.firstDataIndex;return W.headerLayoutIndex+1+X},getGroupAtLayoutIndex:(L)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let _=S2($,L);return $[_]},getGroupAtDataIndex:(L)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let _=d2($,L);return $[_]},getHeaderHeight:typeof j==="number"?(L)=>j:(L)=>{let _=$[L];if(!_)return 0;return j(_.key,L)},rebuild:(L,_)=>{$=c2(L,Q.getGroupForIndex,_??Y),B=L+$.length}}};var IJ=(J,Q,Y,$,B=0)=>{let j=Y?"width":"height",q=document.createElement("div");return q.className=`${Q}-sticky-header`,q.setAttribute("role","presentation"),q.setAttribute("aria-hidden","true"),q.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`),q.style[j]=`${$}px`,J.insertBefore(q,J.firstChild),q},s2=(J,Q,Y,$,B,j=!1,q=0,O,y)=>{let M=j?"width":"height",V=j?"height":"width",z=j?"X":"Y",v=(F,Z)=>{F.style[M]=`${Z}px`},L=y??IJ(J,B,j,0,q),_=()=>{let F=document.createElement("div");return F.className="sticky-group",F.style.position="absolute",F.style.willChange="transform",F.style[V]="100%",F},W=_(),X=_();L.append(W,X);let E=W,P=X,w=Q.groups,C=[],p=[],l=[],c=0,t=()=>{w=Q.groups,c=w.length,C=Array(c),p=Array(c),l=Array(c);let F=O?O():1;for(let Z=0;Z<c;Z++)C[Z]=Y.getOffset(w[Z].headerLayoutIndex)*F,p[Z]=Q.getHeaderHeight(Z),l[Z]=p[Z]*F};t();let J2=-1,e=0,Q2=0,B2=-1,Y2=!1,u=0,m=!1,$2=(F,Z)=>{$(F,Z);let b=p[Z];return v(F,b),b},A=(F)=>{F.replaceChildren(),F.style.transform=""},U=(F)=>{if(F===J2)return;if(J2=F,e=0,Q2=0,F<0||F>=c){A(E);return}e=$2(E,F),Q2=l[F],v(L,e),E.style.transform=""},N=(F)=>{if(F===u)return;u=F;let Z=Math.round(F);E.style.transform=`translate${z}(${Z}px)`,P.style.transform=`translate${z}(${Z+e}px)`},D=()=>{u=0,E.style.transform="",P.style.transform=""},f=()=>{if(!m)return;let F=E;E=P,P=F,J2=B2,e=J2>=0?p[J2]:0,Q2=J2>=0?l[J2]:0,v(L,e),A(P),B2=-1,m=!1,D()},a=()=>{if(!m)return;A(P),B2=-1,m=!1,D()},r=!!y,s=()=>{if(Y2)return;if(Y2=!0,r)L.style.visibility="";else L.style.display=""},K=()=>{if(!Y2)return;if(Y2=!1,r)L.style.visibility="hidden";else L.style.display="none";A(E),J2=-1,e=0,Q2=0,a()},T=(F)=>{if(c===0){K();return}if(F<C[0]){K();return}let Z=0,b=c-1;while(Z<b){let x=Z+b+1>>>1;if(C[x]+l[x]<=F)Z=x;else b=x-1}if(!Y2)s();U(Z);let R=Z+1;if(R<c){let x=C[R]-F;if(x<=0&&x>-Q2){if(B2!==R||!m)B2=R,$2(P,R),m=!0;let I=Q2>0?x/Q2*e:x;N(I)}else if(x<=-Q2){if(m)f()}else if(m)a()}else if(m)a()},G=()=>{t();let F=J2;if(J2=-1,e=0,Q2=0,F>=0)U(F)},k=()=>{L.remove(),J2=-1,e=0,Q2=0,B2=-1,Y2=!1,m=!1};if(!y)L.style.display="none";return{update:T,refresh:G,show:s,hide:K,destroy:k}};var n2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.isHeaderFn,B={row:0,col:0},j=(_)=>{if(_<=0)return 0;if(!$)return Math.ceil(_/Q);let W=0,X=0,E=0;for(let P=0;P<_;P++)if($(P)){if(E++,X)W++,X=0;W++,X=0}else if(X++,X>=Q)W++,X=0;if(X)W++;return W},q=(_)=>{return B.row=O(_),B.col=y(_),B},O=(_)=>{if(!$)return Math.floor(_/Q);let W=0,X=0;for(let E=0;E<=_;E++)if($(E)){if(X)W++,X=0;if(E===_)return W;W++,X=0}else{if(E===_)return W;if(X++,X>=Q)W++,X=0}return console.warn(`⚠️ getRow(${_}) fell through - returning ${W}`),W},y=(_)=>{if(!$)return _%Q;if($(_))return 0;let W=0;for(let X=0;X<=_;X++)if($(X))W=0;else{if(X===_)return W;if(W++,W>=Q)W=0}return W},M=(_,W,X)=>{if(X<=0)return{start:0,end:-1};if(!$){let p=Math.max(0,_*Q),l=Math.min(X-1,(W+1)*Q-1);return{start:p,end:l}}let E=-1,P=-1,w=0,C=0;for(let p=0;p<X;p++){if($(p)){if(C)w++,C=0;if(w>=_&&w<=W){if(E<0)E=p;P=p}w++,C=0}else{if(w>=_&&w<=W){if(E<0)E=p;P=p}if(C++,C>=Q)w++,C=0}if(w>W&&!C)break}if(E<0)return{start:0,end:-1};return{start:E,end:P}},V=(_,W,X)=>{if(W<0||W>=Q)return-1;let E=_*Q+W;if(E<0||E>=X)return-1;return E},z=(_)=>{let W=(Q-1)*Y;return Math.max(0,(_-W)/Q)};return{get columns(){return Q},get gap(){return Y},update:(_)=>{if(_.columns!==void 0)Q=Math.max(1,Math.floor(_.columns));if(_.gap!==void 0)Y=_.gap;if(_.isHeaderFn!==void 0)$=_.isHeaderFn},getTotalRows:j,getPosition:q,getRow:O,getCol:y,getItemRange:M,getItemIndex:V,getColumnWidth:z,getColumnOffset:(_,W)=>{let X=z(W);return _*(X+Y)}}};var G2=16000000;var o2="x",i2=20,I2="_isPlaceholder",E2="__placeholder_";var F2=(J,Q,Y)=>{if(String(Y).startsWith(E2))return!1;let $=E2+Q;if(J.has($))return J.delete($),J.add(Y),!0;return!1},t2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),p2=(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 B of Q)$.add(B);return{...J,selected:$}},h2=(J,Q)=>{let Y=new Set(J.selected);for(let $ of Q)Y.delete($);return{...J,selected:Y}},e2=(J,Q,Y)=>{if(Y==="none")return J;if(J.selected.has(Q))return h2(J,[Q]);else return p2(J,[Q],Y)},JJ=(J,Q,Y)=>{if(Y!=="multiple")return J;return{...J,selected:new Set(Q.map(($)=>$.id))}},QJ=(J)=>({...J,selected:new Set});var $J=(J,Q)=>{return J.selected.has(Q)},YJ=(J)=>{return Array.from(J.selected)},jJ=(J,Q)=>{let Y=[];for(let $ of J.selected){let B=Q($);if(B)Y.push(B)}return Y};var pJ=(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}},hJ=(J,Q)=>{let Y=Q,$=new Float64Array(0),B=(q)=>{Y=q,$=new Float64Array(q+1),$[0]=0;for(let O=0;O<q;O++)$[O+1]=$[O]+J(O)};B(Q);let j=(q)=>{if(Y===0)return 0;if(q<=0)return 0;if(q>=$[Y])return Y-1;let O=0,y=Y-1;while(O<y){let M=O+y+1>>>1;if($[M]<=q)O=M;else y=M-1}return O};return{getOffset:(q)=>{if(q<=0)return 0;if(q>=Y)return $[Y];return $[q]},getSize:(q)=>J(q),indexAtOffset:(q)=>j(q),getTotalSize:()=>$[Y]??0,getTotal:()=>Y,rebuild:(q)=>B(q),isVariable:()=>!0}},R2=(J,Q)=>{if(typeof J==="number")return pJ(J,Q);return hJ(J,Q)},x2=(J,Q,Y,$)=>{if($===0)return 0;if(!J.isVariable())return Math.ceil(Y/J.getSize(0));let B=0,j=0,q=Q;while(q<$&&j<Y)j+=J.getSize(q),B++,q++;return Math.max(1,B)};var y2=(J,Q,Y)=>{let $=Q.getTotalSize(),B=Y===!0||$>G2,j=$>G2?G2:$,q=$>0?j/$:1;return{isCompressed:B,actualSize:$,virtualSize:j,ratio:q}},qJ=(J,Q,Y,$,B,j)=>{if($===0||Q===0)return j.start=0,j.end=-1,j;if(!B.isCompressed||B.ratio===1){let L=Y.indexAtOffset(J),_=Y.indexAtOffset(J+Q);if(_<$-1)_++;return j.start=Math.max(0,L),j.end=Math.min($-1,Math.max(0,_)),j}let{virtualSize:q}=B,O=J/q,y=Y.getTotalSize(),M=O*y,V=Y.indexAtOffset(M),z=x2(Y,Math.max(0,V),Q,$),v=V+z;return j.start=Math.max(0,V),j.end=Math.min($-1,Math.max(0,v)),j},BJ=(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),$},L2=(J,Q,Y,$,B,j,q)=>{if(!j.isCompressed||$===0)return Y.getOffset(J);if(j.ratio===1)return Y.getOffset(J)-Q;let{virtualSize:O}=j,y=Q/O,M=Y.getTotalSize(),V=y*M;return Y.getOffset(J)-V},KJ=(J,Q,Y,$,B,j="start")=>{if($===0)return 0;let q;if(B.isCompressed&&B.ratio!==1){q=J/$*B.virtualSize;let V=Q.getSize(J);switch(j){case"center":q-=(Y-V)/2*B.ratio;break;case"end":q-=(Y-V)*B.ratio;break}return Math.max(0,q)}q=Q.getOffset(J);let O=Q.getSize(J);switch(j){case"center":q-=(Y-O)/2;break;case"end":q-=Y-O;break}let y=B.virtualSize-Y;return Math.max(0,Math.min(q,y))},XJ=(J,Q,Y,$)=>{if(Y===0)return 0;if($.isCompressed&&$.ratio!==1){let B=J/$.virtualSize;return Math.floor(B*Y)}return Q.indexAtOffset(J)},UJ=(J,Q)=>{if(typeof Q==="number")return J*Q>G2;return Q.getTotalSize()>G2},NJ=(J)=>{if(J<=0)return 0;return Math.floor(G2/J)},ZJ=(J,Q,Y)=>{let $=y2(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 k2=(J,Q,Y)=>{let $=Array.from(Q).sort((q,O)=>q-O);if($.length<=1)return;let B=[];for(let q=0;q<$.length;q++){let O=Y($[q]);if(O)B.push(O)}if(B.length<=1)return;let j=J.firstChild;for(let q=0;q<B.length;q++){let O=B[q];if(O===j)j=j.nextSibling;else J.insertBefore(O,j)}};var xJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let q=document.createElement("div");return q.setAttribute("role","option"),q},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}}},gJ=1,_J=(J,Q,Y,$,B,j,q,O,y=!1,M,V)=>{let z=xJ(),v=new Map,L=j,_=!1,W=0,X="",E=-1,P={selected:!1,focused:!1},w=(K,T)=>{return P.selected=K,P.focused=T,P},C=`${B}-item ${B}-grid-item`,p=`${B}-group-header`,l=`${B}-item--selected`,c=`${B}-item--focused`,t=`${B}-item--placeholder`,J2=`${B}-item--replaced`,e=(K,T)=>{if(typeof T==="string")K.innerHTML=T;else K.replaceChildren(T)},Q2=(K,T,G)=>{K.classList.toggle(l,T),K.classList.toggle(c,G)},B2=(K,T)=>{let G=$.getRow(K);if(T?.compression?.isCompressed)return L2(G,T.scrollPosition,Y,T.totalItems,T.containerSize,T.compression,T.rangeStart);return Y.getOffset(G)},Y2=(K,T)=>{let G=$.getCol(K),F=_&&G===0?0:$.getColumnOffset(G,L),Z;if(_){let b=$.getRow(K),R=0,x=-1;for(let I=0;I<K;I++){let d=$.getRow(I);if(d<b&&d!==x){let n=Y.getSize(I);R+=n,x=d}}Z=R}else Z=B2(K,T);if(y)return`translate(${Math.round(Z)}px, ${Math.round(F)}px)`;return`translate(${Math.round(F)}px, ${Math.round(Z)}px)`},u=(K,T)=>{let G=K.classList.contains(p),k=G?L:$.getColumnWidth(L),F;if(_||G)F=Y.getSize(T)-$.gap;else{let Z=$.getRow(T);F=Y.getSize(Z)-$.gap}if(y)K.style.width=`${F}px`,K.style.height=`${k}px`;else K.style.width=`${k}px`,K.style.height=`${F}px`},m=(K,T,G,k,F)=>{let Z=z.acquire(),b=!!T.__groupHeader,R=w(G,k);if(Z.className=b?p:C,Z.dataset.index=String(K),Z.dataset.id=String(T.id),Z.dataset.row=String($.getRow(K)),Z.dataset.col=String($.getCol(K)),b)Z.setAttribute("role","presentation"),Z.removeAttribute("aria-selected"),Z.removeAttribute("aria-setsize"),Z.removeAttribute("aria-posinset"),Z.removeAttribute("id");else if(V!==!1){if(Z.setAttribute("role","option"),Z.ariaSelected=String(G),O)Z.id=`${O}-item-${K}`;if(q){let d=q();if(d!==E)E=d,X=String(d);Z.setAttribute("aria-setsize",X);let n=M?M(K):K+1;Z.setAttribute("aria-posinset",String(n))}}else if(Z.setAttribute("role","listitem"),Z.removeAttribute("aria-selected"),q){let d=q();if(d!==E)E=d,X=String(d);Z.setAttribute("aria-setsize",X);let n=M?M(K):K+1;Z.setAttribute("aria-posinset",String(n))}u(Z,K);let x=Q(T,K,R);if(e(Z,x),String(T.id).startsWith(E2))Z.classList.add(t);return Q2(Z,G,k),Z.style.transform=F,{element:Z,lastItemId:T.id,lastSelected:G,lastFocused:k,lastTransform:F,lastSeenFrame:W}},$2=(K,T,G,k,F)=>{if(W++,T.start===0&&K.length)_=P2(K[0]);for(let[R,x]of v)if(R>=T.start&&R<=T.end)x.lastSeenFrame=W;else if(W-x.lastSeenFrame>gJ)z.release(x.element),v.delete(R);let Z=!1;if(q){let R=q();if(R!==E)E=R,X=String(R),Z=!0}let b=null;for(let R=T.start;R<=T.end;R++){let x=R-T.start,I=K[x];if(!I){console.warn(`⚠️ RENDER: Missing item at index ${R} (range: ${T.start}-${T.end}, items.length: ${K.length})`);continue}let d=G.has(I.id),n=R===k,H=v.get(R);if(H){let S=H.lastItemId!==I.id,h=H.lastSelected!==d,j2=H.lastFocused!==n;if(S){let q2=String(H.lastItemId),K2=String(I.id),_2=q2.startsWith(E2),g=K2.startsWith(E2);if(!g&&F2(G,R,I.id))d=!0;let U2=w(d,n),D2=Q(I,R,U2);if(e(H.element,D2),H.element.dataset.id=K2,H.element.dataset.row=String($.getRow(R)),H.element.dataset.col=String($.getCol(R)),u(H.element,R),H.element.classList.toggle(t,g),_2&&!g)H.element.classList.add(J2),setTimeout(()=>H.element.classList.remove(J2),300);if(H.lastItemId=I.id,!I.__groupHeader){let X2=M?M(R):R+1;H.element.setAttribute("aria-posinset",String(X2))}}if(S||h||j2)Q2(H.element,d,n),H.element.ariaSelected=String(d),H.lastSelected=d,H.lastFocused=n;let o=Y2(R,F);if(H.lastTransform!==o)H.element.style.transform=o,H.lastTransform=o;if(Z&&!I.__groupHeader)H.element.setAttribute("aria-setsize",X)}else{if(F2(G,R,I.id))d=!0;let S=Y2(R,F),h=m(R,I,d,n,S);if(!b)b=document.createDocumentFragment();b.appendChild(h.element),v.set(R,h)}}if(b)J.appendChild(b)},A=(K)=>{for(let[T,G]of v){let k=Y2(T,K);if(G.lastTransform!==k)G.element.style.transform=k,G.lastTransform=k}},U=(K,T,G,k)=>{let F=v.get(K);if(!F)return;let Z=w(G,k),b=Q(T,K,Z);e(F.element,b),Q2(F.element,G,k),F.element.dataset.id=String(T.id),F.element.ariaSelected=String(G),u(F.element,K),F.lastItemId=T.id,F.lastSelected=G,F.lastFocused=k},N=(K,T,G)=>{let k=v.get(K);if(!k)return;let F=k.lastSelected!==T,Z=k.lastFocused!==G;if(F||Z)Q2(k.element,T,G),k.lastSelected=T,k.lastFocused=G},D=(K)=>{return v.get(K)?.element},f=(K)=>{if(Math.abs(K-L)<1)return;L=K;for(let[T,G]of v){u(G.element,T);let k=Y2(T);G.element.style.transform=k,G.lastTransform=k}},a=()=>{k2(J,v.keys(),(K)=>v.get(K)?.element)},r=()=>{for(let[,K]of v)z.release(K.element);v.clear()};return{render:$2,updatePositions:A,updateItem:U,updateItemClasses:N,getElement:D,sortDOM:a,updateContainerWidth:f,clear:r,destroy:()=>{r(),z.clear()}}};var DJ=(J,Q=50,Y=1/0,$=!0)=>{let B=J,j=[],q=0,O=()=>{j=B.map((X,E)=>({def:X,index:E,width:0,minWidth:uJ(X.minWidth??Q,1),maxWidth:X.maxWidth??Y,resizable:X.resizable??$,offset:0}))},y=(X)=>{if(j.length===0){q=0;return}let E=0,P=0;for(let w=0;w<j.length;w++){let C=j[w],p=C.def;if(p.width!==void 0)C.width=g2(p.width,C.minWidth,C.maxWidth),E+=C.width;else P++}if(P){let C=Math.max(0,X-E)/P;for(let p=0;p<j.length;p++){let l=j[p];if(l.def.width===void 0)l.width=g2(C,l.minWidth,l.maxWidth)}}M()},M=()=>{let X=0;for(let E=0;E<j.length;E++){let P=j[E];P.offset=X,X+=P.width}q=X},V=(X,E)=>{if(X<0||X>=j.length)return 0;let P=j[X];if(!P.resizable)return P.width;let w=g2(E,P.minWidth,P.maxWidth);return P.width=w,M(),w},z=(X)=>{return j[X]},v=(X)=>{if(j.length===0)return;if(X<0)return j[0];if(X>=q)return j[j.length-1];let E=0,P=j.length-1;while(E<P){let w=E+P>>>1,C=j[w];if(X<C.offset)P=w-1;else if(X>=C.offset+C.width)E=w+1;else return C}return j[E]},L=(X)=>{if(X<0||X>=j.length)return 0;return j[X].offset},_=(X)=>{if(X<0||X>=j.length)return 0;return j[X].width},W=(X)=>{B=X,O()};return O(),{get columns(){return j},get totalWidth(){return q},resolve:y,updateColumns:W,resizeColumn:V,getColumn:z,getColumnAtX:v,getColumnOffset:L,getColumnWidth:_}},g2=(J,Q,Y)=>Math.min(Y,Math.max(Q,J)),uJ=(J,Q)=>Math.max(Q,J);var WJ=(J,Q,Y,$,B,j)=>{let q=document.createElement("div");q.setAttribute("role","rowgroup");let O=document.createElement("div");O.className=`${Y}-table-header`,O.setAttribute("role","row"),O.setAttribute("aria-rowindex","1"),O.style.height=`${Q}px`;let y=document.createElement("div");y.className=`${Y}-table-header-scroll`,y.setAttribute("role","presentation"),O.appendChild(y),q.appendChild(O),J.insertBefore(q,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let M=[],V=[],z=!0,v=null,L="asc",_=null,W=!1,X=-1,E=0,P=0,w=0,C=(U,N)=>{let D=document.createElement("div");D.className=`${Y}-table-header-cell`,D.setAttribute("role","columnheader"),D.setAttribute("aria-colindex",String(N+1)),D.setAttribute("tabindex",N===0?"0":"-1"),D.dataset.columnKey=U.def.key;let f=U.def.align;if(f==="center")D.classList.add(`${Y}-table-header-cell--center`);else if(f==="right")D.classList.add(`${Y}-table-header-cell--right`);let a=document.createElement("div");a.className=`${Y}-table-header-content`;let r=U.def.header?U.def.header(U.def):U.def.label;if(typeof r==="string")a.textContent=r;else a.appendChild(r);if(D.appendChild(a),U.def.sortable){let s=document.createElement("span");s.className=`${Y}-table-header-sort`,s.setAttribute("aria-hidden","true"),D.appendChild(s),V.push(s),D.classList.add(`${Y}-table-header-cell--sortable`)}else V.push(null);if(U.resizable){let s=document.createElement("div");s.className=`${Y}-table-header-resize`,s.dataset.resizeIndex=String(N),D.appendChild(s)}return D},p=(U)=>{_=U,y.textContent="",M=[],V=[];let N=U.columns;for(let D=0;D<N.length;D++){let f=N[D],a=C(f,D);M.push(a),y.appendChild(a)}if(l(U),v)c(v,L)},l=(U)=>{_=U;let N=U.columns;y.style.width=`${U.totalWidth}px`;for(let D=0;D<M.length&&D<N.length;D++){let f=M[D],a=N[D];f.style.width=`${a.width}px`}},c=(U,N)=>{if(v=U,L=N,!_)return;let D=_.columns;for(let f=0;f<V.length&&f<D.length;f++){let a=V[f];if(!a)continue;if(D[f].def.key===U)a.textContent=N==="asc"?"▲":"▼",a.style.opacity="0.7",M[f].setAttribute("aria-sort",N==="asc"?"ascending":"descending");else a.textContent="",a.style.opacity="0",M[f].removeAttribute("aria-sort")}},t=(U)=>{y.style.transform=`translateX(${-U}px)`},J2=(U)=>{let N=U.target;if(!N.dataset.resizeIndex)return;if(U.preventDefault(),U.stopPropagation(),X=+N.dataset.resizeIndex,!_)return;let D=_.getColumn(X);if(!D?.resizable)return;W=!0,E=U.clientX,P=D.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",N.classList.add(`${Y}-table-header-resize--active`),N.setPointerCapture(U.pointerId),N.addEventListener("pointermove",e),N.addEventListener("pointerup",Q2),N.addEventListener("pointercancel",Q2)},e=(U)=>{if(!W||!_)return;let N=U.clientX-E;if(Math.abs(N)<1)return;let D=Math.max(0,P+N);$(X,D)},Q2=(U)=>{if(!W)return;let N=U.target;N.removeEventListener("pointermove",e),N.removeEventListener("pointerup",Q2),N.removeEventListener("pointercancel",Q2);try{N.releasePointerCapture(U.pointerId)}catch{}N.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",W=!1,X=-1},B2=(U)=>{let N=U.target;if(N.dataset.resizeIndex)return;if(W)return;let D=N;while(D&&!D.dataset.columnKey)if(D=D.parentElement,D===O||D===null)return;let f=D.dataset.columnKey;if(!_)return;let a=_.columns,r=-1;for(let K=0;K<a.length;K++)if(a[K].def.key===f){r=K;break}if(r===-1)return;let s=a[r];if(j)j({key:f,index:r,event:U});if(s.def.sortable&&B){let K;if(v===f)K=L==="asc"?"desc":null;else K="asc";B({key:f,index:r,direction:K})}},Y2=(U)=>{if(U<0||U>=M.length)return;M[w]?.setAttribute("tabindex","-1"),w=U;let N=M[w];N.setAttribute("tabindex","0"),N.focus()},u=(U)=>{let N=U.key;if(N==="ArrowRight"){if(U.ctrlKey||U.metaKey){if(!_)return;let D=_.getColumn(w);if(D?.resizable)$(w,D.width+10),U.preventDefault()}else if(w<M.length-1)Y2(w+1),U.preventDefault();U.stopPropagation();return}if(N==="ArrowLeft"){if(U.ctrlKey||U.metaKey){if(!_)return;let D=_.getColumn(w);if(D?.resizable)$(w,D.width-10),U.preventDefault()}else if(w>0)Y2(w-1),U.preventDefault();U.stopPropagation();return}if(N==="Home"){Y2(0),U.preventDefault(),U.stopPropagation();return}if(N==="End"){Y2(M.length-1),U.preventDefault(),U.stopPropagation();return}if(N==="Enter"||N===" "){if(!_)return;let D=_.getColumn(w);if(D?.def.sortable&&B){let f;if(v===D.def.key)f=L==="asc"?"desc":null;else f="asc";B({key:D.def.key,index:w,direction:f}),U.preventDefault()}U.stopPropagation();return}if(N==="ArrowDown"){J.focus(),U.preventDefault(),U.stopPropagation();return}};return O.addEventListener("pointerdown",J2),O.addEventListener("click",B2),O.addEventListener("keydown",u),{element:O,update:l,updateSort:c,rebuild:p,show:()=>{if(z)return;z=!0,O.style.display=""},hide:()=>{if(!z)return;z=!1,O.style.display="none"},destroy:()=>{O.removeEventListener("pointerdown",J2),O.removeEventListener("click",B2),O.removeEventListener("keydown",u),J.style.removeProperty("--vlist-table-header-height"),q.remove(),M=[],V=[],_=null,z=!1},syncScroll:t}};var mJ=()=>{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}}},VJ=(J,Q,Y,$,B,j,q,O,y)=>{let M=mJ(),V=new Map,z=-1,v=Y,L=null,_=null,W=null,X=(Z,b)=>{_=Z,W=b},E=(Z,b)=>{b?Z.setAttribute("aria-selected","true"):Z.removeAttribute("aria-selected")},P=(Z,b,R,x)=>{Z.setAttribute("role",b),Z.setAttribute("data-id",String(R)),Z.setAttribute("data-index",String(x))},w=(Z)=>String(Z).startsWith("__placeholder_"),C=`${B}-item ${B}-table-row`,p=`${B}-item--selected`,l=`${B}-item--focused`,c=`${B}-table-cell`,t=`${B}-table-cell--center`,J2=`${B}-table-cell--right`,e=`${B}-item--odd`,Q2=`${B}-item--placeholder`,B2=`${B}-item--replaced`,Y2=`${B}-item ${B}-table-row ${B}-table-group-header`,u=`${B}-table-group-header-content`,m=(Z,b,R,x,I=!1)=>{if(R.def.cell){let d=R.def.cell(b,R.def,x);if(typeof d==="string")Z.innerHTML=d;else Z.replaceChildren(d)}else{let d=b[R.def.key],n=d!=null?String(d):"";if(I&&n)Z.innerHTML=`<span>${n}</span>`;else Z.textContent=n}},$2=(Z,b,R,x,I=!1)=>{let d=C;if(O){if(L){let n=L(b);if(n>=0&&(n&1)===1)d+=` ${e}`}else if((b&1)===1)d+=` ${e}`}if(I)d+=` ${Q2}`;if(R)d+=` ${p}`;if(x)d+=` ${l}`;Z.className=d},A=(Z,b,R)=>{if(R?.compression?.isCompressed)return Math.round(L2(Z,R.scrollPosition,b,R.totalItems,R.containerSize,R.compression,R.rangeStart));return b.getOffset(Z)},U=(Z,b)=>{let R=b.def.align;if(R==="center")Z.classList.add(t),Z.classList.remove(J2);else if(R==="right")Z.classList.add(J2),Z.classList.remove(t);else Z.classList.remove(t,J2)},N=(Z,b)=>{let x=v.columns.length;if(b.length===x)return b;let I=[];for(let d=0;d<x;d++){let n;if(d<b.length)n=b[d];else n=document.createElement("div"),n.className=c,Z.appendChild(n);I.push(n)}for(let d=x;d<b.length;d++)b[d].remove();return I},D=(Z,b,R,x)=>{let I=M.acquire(),d=Z,n=R.getSize(b),H=A(b,R,x);I.style.cssText=`width:${v.totalWidth}px;height:${n}px;transform:translateY(${H}px)`,I.className=Y2,P(I,"presentation",Z.id,b),I.removeAttribute("aria-selected"),I.removeAttribute("aria-rowindex"),I.replaceChildren();let S=document.createElement("div");if(S.className=u,W){let h=W(d.groupKey,d.groupIndex);if(typeof h==="string")S.innerHTML=h;else S.appendChild(h)}return I.appendChild(S),{element:I,cells:[],index:b,isGroupHeader:!0,lastItemId:Z.id,lastSelected:!1,lastFocused:!1,lastOffset:H,lastHeight:n}},f=(Z,b,R,x,I,d)=>{let n=M.acquire(),H=I.getSize(b),S=A(b,I,d),h=w(Z.id);n.style.cssText=`width:${v.totalWidth}px;height:${H}px;transform:translateY(${S}px)`,$2(n,b,R,x,h),P(n,"row",Z.id,b),n.id=`${j}-item-${b}`,n.setAttribute("aria-rowindex",String(b+2)),E(n,R);let j2=N(n,[]),o=v.columns;for(let q2=0;q2<j2.length&&q2<o.length;q2++){let K2=j2[q2],_2=o[q2];K2.style.cssText=`left:${_2.offset}px;width:${_2.width}px`,K2.setAttribute("role","gridcell"),K2.setAttribute("aria-colindex",String(q2+1)),U(K2,_2),m(K2,Z,_2,b,h)}return{element:n,cells:j2,index:b,isGroupHeader:!1,lastItemId:Z.id,lastSelected:R,lastFocused:x,lastOffset:S,lastHeight:H}},a=(Z,b,R,x,I)=>{for(let[h,j2]of V)if(h<b.start||h>b.end)M.release(j2.element),V.delete(h);let d=!1,n=q();if(n!==z)z=n,d=!0;let H=null,S=Q();L=typeof O==="string"&&y?y():null;for(let h=b.start;h<=b.end;h++){let j2=h-b.start,o=Z[j2];if(!o)continue;let q2=R.has(o.id),K2=h===x,_2=_?_(o):!1,g=V.get(h);if(g){if(g.isGroupHeader!==_2){M.release(g.element),V.delete(h);let U2=_2?D(o,h,S,I):f(o,h,q2,K2,S,I);if(V.set(h,U2),!H)H=document.createDocumentFragment();H.appendChild(U2.element);continue}if(_2){if(g.lastItemId!==o.id){let X2=o,V2=g.element.firstElementChild;if(V2&&W){let W2=W(X2.groupKey,X2.groupIndex);if(typeof W2==="string")V2.innerHTML=W2;else V2.replaceChildren(W2)}g.element.setAttribute("data-id",String(o.id)),g.lastItemId=o.id}let D2=A(h,S,I);if(g.lastOffset!==D2)g.lastOffset=D2,g.element.style.transform=`translateY(${D2}px)`;let M2=S.getSize(h);if(g.lastHeight!==M2)g.lastHeight=M2,g.element.style.height=`${M2}px`}else{let U2=g.lastItemId!==o.id,D2=g.lastSelected!==q2,M2=g.lastFocused!==K2;if(U2){let W2=g.lastItemId!=null&&w(g.lastItemId),i=w(o.id);if(!i&&F2(R,h,o.id))q2=!0;let N2=v.columns;for(let Z2=0;Z2<g.cells.length&&Z2<N2.length;Z2++)m(g.cells[Z2],o,N2[Z2],h,i);if($2(g.element,h,q2,K2,i),g.element.setAttribute("data-id",String(o.id)),E(g.element,q2),W2&&!i)g.element.classList.add(B2),setTimeout(()=>{g.element.classList.remove(B2)},300);g.lastItemId=o.id,g.lastSelected=q2,g.lastFocused=K2}else if(D2||M2)$2(g.element,h,q2,K2,w(o.id)),E(g.element,q2),g.lastSelected=q2,g.lastFocused=K2;let X2=A(h,S,I);if(g.lastOffset!==X2)g.lastOffset=X2,g.element.style.transform=`translateY(${X2}px)`;let V2=S.getSize(h);if(g.lastHeight!==V2)g.lastHeight=V2,g.element.style.height=`${V2}px`;if(d)g.element.setAttribute("aria-rowindex",String(h+2))}}else{if(F2(R,h,o.id))q2=!0;let U2=_2?D(o,h,S,I):f(o,h,q2,K2,S,I);if(V.set(h,U2),!H)H=document.createDocumentFragment();H.appendChild(U2.element)}}if(H)J.appendChild(H)},r=(Z)=>{let b=Q();for(let[R,x]of V){let I=A(R,b,Z);if(x.lastOffset!==I)x.lastOffset=I,x.element.style.transform=`translateY(${I}px)`}},s=(Z,b,R,x)=>{let I=V.get(Z);if(!I)return;if(I.isGroupHeader)return;let d=v.columns;for(let n=0;n<I.cells.length&&n<d.length;n++)m(I.cells[n],b,d[n],Z);I.element.setAttribute("data-id",String(b.id)),I.lastItemId=b.id,$2(I.element,Z,R,x),E(I.element,R),I.lastSelected=R,I.lastFocused=x},K=(Z,b,R)=>{let x=V.get(Z);if(!x)return;if(x.isGroupHeader)return;let I=x.lastSelected!==b,d=x.lastFocused!==R;if(I||d)$2(x.element,Z,b,R),E(x.element,b),x.lastSelected=b,x.lastFocused=R},T=(Z)=>{v=Z;let b=Z.columns;for(let[,R]of V)if(R.element.style.width=`${Z.totalWidth}px`,R.cells.length>0)for(let x=0;x<R.cells.length&&x<b.length;x++){let I=R.cells[x],d=b[x];I.style.left=`${d.offset}px`,I.style.width=`${d.width}px`}},G=(Z)=>{return V.get(Z)?.element},k=()=>{for(let[,Z]of V)M.release(Z.element);V.clear(),z=-1};return{render:a,updatePositions:r,updateItem:s,updateItemClasses:K,getElement:G,updateColumnLayout:T,setGroupHeaderFn:X,clear:k,destroy:()=>{k(),M.clear()}}};var MJ=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,$=J.containerSize,B=0,j=[],q=()=>{let W=(Q-1)*Y;B=Math.max(0,($-W)/Q),j=Array(Q);let X=B+Y;for(let E=0;E<Q;E++)j[E]=E*X};q();let O=[],y=0,M=[],V=(W,X)=>{if(W<=0)return y=0,O=[],[];let E=Array(Q).fill(0),P=Array(Q);for(let p=0;p<Q;p++)P[p]=[];let w=Array(W);for(let p=0;p<W;p++){let l=0,c=E[0];for(let e=1;e<Q;e++){let Q2=E[e];if(Q2<c)c=Q2,l=e}let t=X(p),J2=E[l];w[p]={index:p,x:j[l],y:J2,lane:l,size:t,crossSize:B},P[l].push(p),E[l]=J2+t+Y}O=P;let C=0;for(let p=0;p<Q;p++){let l=E[p],c=l>0?l-Y:0;if(c>C)C=c}return y=C,w},z=(W)=>{if(W.length===0)return y;if(y)return y;let X=Array(Q).fill(0);for(let P of W){let w=P.y+P.size,C=X[P.lane];if(w>C)X[P.lane]=w}let E=0;for(let P=0;P<Q;P++)if(X[P]>E)E=X[P];return E},v=(W,X,E)=>{if(W.length===0||E<=X)return M.length=0,M;if(O.length===0||O.length!==Q)return L(W,X,E);M.length=0;for(let P=0;P<Q;P++){let w=O[P],C=w.length;if(!C)continue;let p=0,l=C;while(p<l){let c=p+l>>>1,t=W[w[c]];if(t.y+t.size<=X)p=c+1;else l=c}for(let c=p;c<C;c++){let t=W[w[c]];if(t.y>=E)break;M.push(t)}}return M},L=(W,X,E)=>{M.length=0;for(let P of W)if(P.y+P.size>X&&P.y<E)M.push(P);return M};return{get columns(){return Q},get gap(){return Y},get containerSize(){return $},update:(W)=>{let X=!1;if(W.columns!==void 0){let E=Math.max(1,Math.floor(W.columns));if(E!==Q)Q=E,X=!0}if(W.gap!==void 0&&W.gap!==Y)Y=W.gap,X=!0;if(W.containerSize!==void 0&&W.containerSize!==$)$=W.containerSize,X=!0;if(X)q()},calculateLayout:V,getTotalSize:z,getVisibleItems:v}};var dJ=(J=200)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let q=document.createElement("div");return q.setAttribute("role","option"),q},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}}},cJ=1,GJ=(J,Q,Y,$=!1,B,j,q,O)=>{let y=dJ(),M=new Map,V=new Set,z=0,v="",L=-1,_={selected:!1,focused:!1},W=(u,m)=>{return _.selected=u,_.focused=m,_},X=`${Y}-item ${Y}-masonry-item`,E=`${Y}-group-header`,P=`${Y}-item--selected`,w=`${Y}-item--focused`,C=(u,m)=>{if(typeof m==="string")u.innerHTML=m;else u.replaceChildren(m)},p=(u,m,$2)=>{u.classList.toggle(P,m),u.classList.toggle(w,$2)},l=(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)`},c=(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`},t=(u,m,$2,A,U)=>{let N=y.acquire(),D=m.__groupHeader,f=W(A,U);if(N.className=D?E:X,N.dataset.index=String(u),N.dataset.id=String(m.id),N.dataset.lane=String($2.lane),D)N.setAttribute("role","presentation"),N.removeAttribute("aria-selected"),N.removeAttribute("aria-setsize"),N.removeAttribute("aria-posinset"),N.removeAttribute("id");else if(O!==!1){if(N.setAttribute("role","option"),N.ariaSelected=String(A),j)N.id=`${j}-item-${u}`;if(B){let r=B();if(r!==L)L=r,v=String(r);N.setAttribute("aria-setsize",v);let s=q?q(u):u+1;N.setAttribute("aria-posinset",String(s))}}else if(N.setAttribute("role","listitem"),N.removeAttribute("aria-selected"),B){let r=B();if(r!==L)L=r,v=String(r);N.setAttribute("aria-setsize",v);let s=q?q(u):u+1;N.setAttribute("aria-posinset",String(s))}c(N,$2);let a=Q(m,u,f);return C(N,a),p(N,A,U),l(N,$2),{element:N,lastItemId:m.id,lastSelected:A,lastFocused:U,lastY:$2.y,lastX:$2.x,lastSize:$2.size,lastCrossSize:$2.crossSize,lastSeenFrame:z}},J2=(u,m,$2,A)=>{z++,V.clear();for(let N=0;N<m.length;N++)V.add(m[N].index);for(let[N,D]of M)if(V.has(N))D.lastSeenFrame=z;else if(z-D.lastSeenFrame>cJ)y.release(D.element),M.delete(N);let U=null;for(let N=0;N<m.length;N++){let D=m[N],f=D.index,a=u(f);if(!a)continue;let r=$2.has(a.id),s=f===A,K=M.get(f);if(K){let T=K.lastItemId!==a.id,G=K.lastSelected!==r,k=K.lastFocused!==s,F=K.lastY!==D.y||K.lastX!==D.x,Z=K.lastSize!==D.size||K.lastCrossSize!==D.crossSize;if(T){let b=W(r,s),R=Q(a,f,b);if(C(K.element,R),K.element.dataset.id=String(a.id),K.lastItemId=a.id,!a.__groupHeader){let I=q?q(f):f+1;K.element.setAttribute("aria-posinset",String(I))}}if(T||G||k)p(K.element,r,s),K.element.ariaSelected=String(r),K.lastSelected=r,K.lastFocused=s;if(Z)c(K.element,D),K.lastSize=D.size,K.lastCrossSize=D.crossSize;if(F)l(K.element,D),K.lastY=D.y,K.lastX=D.x}else{let T=t(f,a,D,r,s);if(!U)U=document.createDocumentFragment();U.appendChild(T.element),M.set(f,T)}}if(U)J.appendChild(U)},e=()=>{for(let u of M.values())y.release(u.element);M.clear(),J.innerHTML=""};return{render:J2,getElement:(u)=>M.get(u)?.element,updateItemClasses:(u,m,$2)=>{let A=M.get(u);if(!A)return;let U=A.lastSelected!==m,N=A.lastFocused!==$2;if(U||N)p(A.element,m,$2),A.lastSelected=m,A.lastFocused=$2},sortDOM:()=>{k2(J,M.keys(),(u)=>M.get(u)?.element)},clear:e,destroy:()=>{e(),y.clear()}}};var OJ=(J,Q)=>{let Y=new Map,$=(j)=>Y.get(j)??J,B=R2($,Q);return{getOffset(j){return B.getOffset(j)},getSize(j){return $(j)},indexAtOffset(j){return B.indexAtOffset(j)},getTotalSize(){return B.getTotalSize()},getTotal(){return B.getTotal()},rebuild(j){if(j<B.getTotal()){for(let q of Y.keys())if(q>=j)Y.delete(q)}B=R2($,j)},isVariable(){return!0},setMeasuredSize(j,q){Y.set(j,q)},isMeasured(j){return Y.has(j)},getEstimatedSize(){return J},measuredCount(){return Y.size}}};var EJ=(J,Q,Y,$,B,j)=>{if($===0||Q===0)return j.start=0,j.end=-1,j;let q=Y.indexAtOffset(J),O=Y.indexAtOffset(J+Q);if(O<$-1)O++;return j.start=Math.max(0,q),j.end=Math.min($-1,Math.max(0,O)),j},AJ=(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),$},FJ=(J,Q,Y,$,B,j)=>{if($===0)return 0;let q=Math.max(0,Math.min(J,$-1)),O=Q.getOffset(q),y=Q.getSize(q),M=Q.getTotalSize(),V=Math.max(0,M-Y),z;switch(j){case"center":z=O-Y/2+y/2;break;case"end":z=O-Y+y;break;case"start":default:z=O;break}return Math.max(0,Math.min(z,V))},LJ=(J,Q,Y)=>{if(Y&&Y.isCompressed)return Y.virtualSize;return Q.getTotalSize()},HJ=(J,Q)=>{return Q.getTotalSize()},bJ=(J,Q)=>{return Q.getOffset(J)},TJ=(J,Q,Y)=>{let $=Math.max(0,Q-Y);return Math.max(0,Math.min(J,$))};var RJ=(J,Q,Y,$,B="start",j,q=FJ)=>{return q(J,Q,Y,$,j,B)},yJ=(J,Q)=>{return J.start===Q.start&&J.end===Q.end},PJ=(J,Q)=>{return J>=Q.start&&J<=Q.end},kJ=(J)=>{if(J.end<J.start)return 0;return J.end-J.start+1};var wJ=(J,Q)=>{let Y=[],$=[];for(let B=J.start;B<=J.end;B++)if(B<Q.start||B>Q.end)$.push(B);for(let B=Q.start;B<=Q.end;B++)if(B<J.start||B>J.end)Y.push(B);return{add:Y,remove:$}};var zJ=()=>{let J={},Q=(j,q)=>{if(!J[j])J[j]=new Set;return J[j].add(q),()=>Y(j,q)},Y=(j,q)=>{J[j]?.delete(q)};return{on:Q,off:Y,emit:(j,q)=>{J[j]?.forEach((O)=>{try{O(q)}catch(y){console.error(`[vlist] Error in event handler for "${String(j)}":`,y)}})},clear:(j)=>{if(j)delete J[j];else for(let q in J)delete J[q]}}};var w2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:Y=5000,evictionBuffer:$=200,onEvict:B}=J,j=new Map,q=0,O=0,y=(A)=>{let U=j.get(A);if(!U)U={items:Array(Q),count:0,lastAccess:Date.now()},j.set(A,U);else U.lastAccess=Date.now();return U},M=(A)=>{return Math.floor(A/Q)},V=(A)=>{return A%Q},z=()=>q,v=(A)=>{q=A},L=(A)=>{if(A<0||A>=q)return;let U=M(A),N=j.get(U);if(!N)return;return N.items[V(A)]},_=(A)=>{if(A<0||A>=q)return!1;let U=M(A),N=j.get(U);if(!N)return!1;return N.items[V(A)]!==void 0},W=(A,U)=>{let N=M(A),D=y(N),f=V(A),a=D.items[f]===void 0;if(D.items[f]=U,a)D.count++,O++;if(A>=q)q=A+1},X=(A,U)=>{for(let N=0;N<U.length;N++){let D=U[N];if(D!==void 0)W(A+N,D)}},E=(A,U)=>{if(A<0||A>q)return;let N=M(A),D=Array.from(j.keys()).filter((K)=>K>=N).sort((K,T)=>K-T),f=[];for(let K of D){let T=j.get(K),G=K*Q;for(let k=0;k<Q;k++){if(T.items[k]===void 0)continue;let F=G+k;if(F<A)continue;f.push({oldIndex:F,item:T.items[k]})}}for(let{oldIndex:K}of f){let T=M(K),G=j.get(T);if(!G)continue;let k=V(K);if(G.items[k]!==void 0){if(G.items[k]=void 0,G.count--,O--,G.count===0)j.delete(T)}}q++;for(let{oldIndex:K,item:T}of f){let G=K+1,k=M(G),F=y(k),Z=V(G);F.items[Z]=T,F.count++,O++}let a=M(A),r=y(a),s=V(A);r.items[s]=U,r.count++,O++},P=(A)=>{if(A<0||A>=q)return!1;let U=M(A),N=j.get(U),D=V(A);if(!(N!==void 0&&N.items[D]!==void 0))return!1;let a=U,r=Array.from(j.keys()).filter((K)=>K>=a).sort((K,T)=>K-T),s=[];for(let K of r){let T=j.get(K),G=K*Q;for(let k=0;k<Q;k++){if(T.items[k]===void 0)continue;let F=G+k;if(F<=A)continue;s.push({oldIndex:F,item:T.items[k]})}}if(N.items[D]=void 0,N.count--,O--,N.count===0)j.delete(U);for(let{oldIndex:K}of s){let T=M(K),G=j.get(T);if(!G)continue;let k=V(K);if(G.items[k]!==void 0){if(G.items[k]=void 0,G.count--,O--,G.count===0)j.delete(T)}}for(let{oldIndex:K,item:T}of s){let G=K-1,k=M(G),F=y(k),Z=V(G);F.items[Z]=T,F.count++,O++}return q--,!0},w=(A,U)=>{let N=[];for(let D=A;D<=U&&D<q;D++)N.push(L(D));return N},C=(A,U)=>{for(let N=A;N<=U&&N<q;N++)if(!_(N))return!1;return!0},p=()=>{let A=[],U=null,N=Array.from(j.keys()).sort((D,f)=>D-f);for(let D of N){let f=j.get(D);if(!f)continue;let a=D*Q;for(let r=0;r<Q;r++){let s=a+r;if(s>=q)break;if(f.items[r]!==void 0)if(U===null)U={start:s,end:s};else if(s===U.end+1)U.end=s;else A.push(U),U={start:s,end:s};else if(U!==null)A.push(U),U=null}}if(U!==null)A.push(U);return A},l=(A,U)=>{let N=[],D=null;for(let f=A;f<=U&&f<q;f++)if(!_(f))if(D===null)D={start:f,end:f};else D.end=f;else if(D!==null)N.push(D),D=null;if(D!==null)N.push(D);return N},c=(A)=>{return j.has(A)},t=(A)=>{let U=j.get(A);if(!U)return!1;let N=A*Q,D=Math.min(Q,q-N);return U.count>=D},J2=(A)=>{let U=j.get(A);if(U)U.lastAccess=Date.now()},e=(A,U)=>{if(A>U||j.size===0)return;let N=Date.now(),D=M(Math.max(0,A)),f=M(Math.min(q-1,U));for(let a=D;a<=f;a++){let r=j.get(a);if(r)r.lastAccess=N}},Q2=(A,U)=>{if(O<=Y)return 0;let N=Math.max(0,A-$),D=Math.min(q-1,U+$),f=M(N),a=M(D),r=0,s=[];for(let[K,T]of j)if(K<f||K>a)r+=T.count,s.push(K),O-=T.count,j.delete(K);if(r>0&&B)B(r,s);return r},B2=()=>{if(O<=Y)return 0;let A=Array.from(j.entries()).sort(([,D],[,f])=>D.lastAccess-f.lastAccess),U=0,N=[];for(let[D,f]of A){if(O<=Y)break;U+=f.count,O-=f.count,N.push(D),j.delete(D)}if(U>0&&B)B(U,N);return U},Y2=()=>{return{totalItems:q,cachedItems:O,cachedChunks:j.size,chunkSize:Q,maxCachedItems:Y,memoryEfficiency:q>0?1-O/q:1}},u=()=>O,m=()=>{j.clear(),O=0};return{chunkSize:Q,maxCachedItems:Y,getTotal:z,setTotal:v,get:L,has:_,set:W,setRange:X,insert:E,delete:P,getRange:w,isRangeLoaded:C,getLoadedRanges:p,findUnloadedRanges:l,getChunkIndex:M,isChunkLoaded:c,isChunkFullyLoaded:t,touchChunk:J2,touchChunksForRange:e,evictDistant:Q2,evictToLimit:B2,getStats:Y2,getCachedCount:u,clear:m,reset:()=>{m(),q=0}}},z2=(J)=>{if(J.length===0)return[];let Q=[...J].sort(($,B)=>$.start-B.start),Y=[{...Q[0]}];for(let $=1;$<Q.length;$++){let B=Q[$],j=Y[Y.length-1];if(B.start<=j.end+1)j.end=Math.max(j.end,B.end);else Y.push({...B})}return Y},u2=(J,Q,Y)=>{let $=Math.floor(J.start/Y)*Y,B=Math.ceil((J.end+1)/Y)*Y-1,j={start:$,end:B};if(Q.length===0)return[j];let q=[],O=z2(Q),y=j.start;for(let M of O){if(M.end<y)continue;if(M.start>j.end)break;if(M.start>y)q.push({start:y,end:Math.min(M.start-1,j.end)});if(y=M.end+1,y>j.end)break}if(y<=j.end)q.push({start:y,end:j.end});return q};var v2=(J={})=>{let{maskCharacter:Q=o2,maxSampleSize:Y=i2}=J,$=[],B=!1,j=(V)=>{if(B||V.length===0)return;let z=Math.min(V.length,Y);for(let v=0;v<z;v++){let L=V[v];if(!L||typeof L!=="object")continue;let _={},W=!1;for(let[X,E]of Object.entries(L)){if(X.startsWith("_")||X==="id")continue;_[X]=String(E??"").length,W=!0}if(W)$.push(_)}B=!0},q=()=>B,O=(V)=>{let z={id:`${E2}${V}`,[I2]:!0,_index:V};if($.length===0)return z.label=Q.repeat(12),z;let v=$[V%$.length];for(let[L,_]of Object.entries(v))z[L]=Q.repeat(Math.max(1,_));return z};return{analyzeStructure:j,hasAnalyzedStructure:q,generate:O,generateRange:(V,z)=>{let v=[];for(let L=V;L<=z;L++)v.push(O(L));return v},clear:()=>{$=[],B=!1}}},A2=(J)=>{if(!J||typeof J!=="object")return!1;return J[I2]===!0},m2=(J)=>{return J.filter((Q)=>!A2(Q))};var lJ=50,vJ=(J={})=>{let{adapter:Q,initialItems:Y,initialTotal:$,storage:B,placeholder:j,pageSize:q=lJ,onStateChange:O,onItemsLoaded:y,onItemsEvicted:M}=J,V=w2({...B,onEvict:(H,S)=>{M?.(H),c()}}),z=null,v=()=>{if(!z)z=v2(j);return z},L=new Map,_=!1,W,X=!0,E,P,w=[],C=0,p=new Map,l=()=>{for(let H of p.values())H[1].abort();p.clear()},c=()=>{O?.($2())},t=()=>{L.clear();let H=V.getLoadedRanges();for(let S of H)for(let h=S.start;h<=S.end;h++){let j2=V.get(h);if(j2&&!A2(j2))L.set(j2.id,h)}},J2=(H,S)=>{if(!A2(S))L.set(S.id,H)},e=(H)=>{L.delete(H)},Q2=(H,S)=>{return`${H}-${S}`},B2=()=>V.getTotal(),Y2=()=>V.getCachedCount(),u=()=>_,m=()=>X,$2=()=>({total:V.getTotal(),cached:V.getCachedCount(),isLoading:_,pendingRanges:w,error:W,hasMore:X,cursor:E}),A=()=>V,U=()=>v(),N=(H)=>{let S=V.get(H);if(S!==void 0)return S;if(H>=0&&H<V.getTotal())return v().generate(H);return},D=(H)=>{let S=L.get(H);if(S===void 0)return;return V.get(S)},f=(H)=>{return L.get(H)??-1},a=(H)=>{let S=V.get(H);return S!==void 0&&!A2(S)},r=(H,S)=>{let h=[],j2=V.getTotal();V.touchChunksForRange(H,Math.min(S,j2-1));for(let o=H;o<=S&&o<j2;o++){let q2=V.get(o);if(q2!==void 0)h.push(q2);else h.push(v().generate(o))}return h},s=(H)=>{V.setTotal(H),X=V.getCachedCount()<H,c()},K=(H,S=0,h)=>{if(Q&&H.length>0){let j2=v();if(!j2.hasAnalyzedStructure())j2.analyzeStructure(H)}for(let j2=0;j2<H.length;j2++){let o=H[j2];if(o!==void 0){let q2=S+j2;V.set(q2,o),J2(q2,o)}}if(h!==void 0)V.setTotal(h);else if(S+H.length>V.getTotal())V.setTotal(S+H.length);if(V.getCachedCount()>=V.getTotal()&&V.getTotal()>0)X=!1;c(),y?.(H,S,V.getTotal())},T=(H,S)=>{let h=V.get(H);if(!h)return!1;let j2=h.id,o={...h,...S};if(V.set(H,o),S.id!==void 0&&S.id!==j2)e(j2);return J2(H,o),c(),!0},G=(H,S)=>{V.insert(S,H),t(),l(),c()},k=(H)=>{let S=L.get(H);if(S===void 0)return!1;if(!V.delete(S))return!1;return t(),l(),c(),!0},F=async(H,S)=>{if(!Q)return;let h=V.chunkSize,j2=Math.floor(H/h),o=Math.floor(S/h),q2=h*2;for(let[g,U2]of p){let D2=g.indexOf("-"),M2=parseInt(g.slice(0,D2),10);if(Math.abs(M2-H)>q2)U2[1].abort(),p.delete(g)}let K2=[],_2=[];for(let g=j2;g<=o;g++){let U2=g*h,D2=U2+h-1,M2=Q2(U2,D2);if(V.isChunkFullyLoaded(g))continue;let V2=p.get(M2);if(V2)_2.push(V2[0]);else K2.push({start:U2,end:D2})}if(K2.length===0)return;for(let g of K2){let U2=Q2(g.start,g.end),D2=new AbortController,M2=(async()=>{w.push(g),_=!0,W=void 0,c();try{let X2=g.end-g.start+1,V2={offset:g.start,limit:X2,cursor:g.start===P?E:void 0,signal:D2.signal},W2=await Q.read(V2);if(K(W2.items,g.start,W2.total),W2.cursor)E=W2.cursor,P=g.start+W2.items.length;let i=g.start+W2.items.length;if(i>=C){if(C=i,W2.hasMore!==void 0)X=W2.hasMore;else if(W2.total!==void 0)X=i<W2.total}}catch(X2){if(X2?.name==="AbortError")return;W=X2 instanceof Error?X2:Error(String(X2))}finally{p.delete(U2),w=w.filter((X2)=>X2.start!==g.start||X2.end!==g.end),_=p.size>0,c()}})();p.set(U2,[M2,D2]),_2.push(M2)}await Promise.all(_2)},Z=async(H,S)=>{if(V.isRangeLoaded(H,S))return;await F(H,S)},b=async()=>{if(!Q)return;await F(0,q-1)},R=async()=>{if(!Q||_||!X)return!1;let H=V.getCachedCount(),S=V.getTotal(),h=H,j2=Math.min(h+q-1,S>0?S-1:h+q-1);if(h>=S&&S>0)return X=!1,!1;return await F(h,j2),V.getCachedCount()>H},x=async()=>{if(V.clear(),V.setTotal(0),L.clear(),z)z.clear();l(),w=[],_=!1,E=void 0,P=void 0,X=!0,C=0,W=void 0,c()},I=(H,S)=>{if(V.evictDistant(H,S)>0)t()},d=()=>{V.clear(),L.clear(),E=void 0,P=void 0,W=void 0,w=[],_=!1,c()},n=()=>{if(V.reset(),L.clear(),z)z.clear();E=void 0,P=void 0,X=!0,C=0,W=void 0,w=[],_=!1,c()};if(Y&&Y.length>0)K(Y,0,$??Y.length);else if($!==void 0)V.setTotal($),c();return{getState:$2,getTotal:B2,getCached:Y2,getIsLoading:u,getHasMore:m,getStorage:A,getPlaceholders:U,getItem:N,getItemById:D,getIndexById:f,isItemLoaded:a,getItemsInRange:r,setTotal:s,setItems:K,updateItem:T,insertItem:G,removeItem:k,loadRange:F,ensureRange:Z,loadInitial:b,loadMore:R,reload:x,evictDistant:I,clear:d,reset:n}};var CJ=(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}},C2=(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 B=J.samples[J.sampleIndex];if(B.position=Q,B.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,q=J.samples[j],O=Q-q.position,y=Y-q.time;J.velocity=y>0?O/y:0}return J.lastPosition=Q,J.lastTime=Y,J},aJ=(J)=>J.sampleCount>=3,fJ=(J,Q={})=>{let{wheel:Y=!0,sensitivity:$=1,smoothing:B=!1,idleTimeout:j=150,onScroll:q,onIdle:O,scrollElement:y,horizontal:M=!1}=Q,V=!!y,z=0,v=0,L=V?M?window.innerWidth:window.innerHeight:M?J.clientWidth:J.clientHeight,_=Q.compressed??!1,W=Q.compression,X=CJ(),E=!1,P=null,C=f2(()=>{let G=M?J.scrollLeft:J.scrollTop,k=G>=z?"down":"up";if(X=C2(X,G),z=G,q)q({scrollTop:z,direction:k,velocity:X.velocity});e()}),l=f2(()=>{let G=J.getBoundingClientRect(),k=M?Math.max(0,-G.left):Math.max(0,-G.top),F=k>=z?"down":"up";if(X=C2(X,k),z=k,!E)E=!0;if(q)q({scrollTop:z,direction:F,velocity:X.velocity});e()}),c=(G)=>{G.preventDefault()},t=(G)=>{if(G.deltaX)return;G.preventDefault(),J.scrollLeft+=G.deltaY},J2=(G)=>{if(!_)return;G.preventDefault();let k=(M?G.deltaX||G.deltaY:G.deltaY)*$,F=z+k;if(B)F=z+k*0.3;if(F=Math.max(0,Math.min(F,v)),F!==z){let b=F>=z?"down":"up";if(X=C2(X,F),z=F,!E)E=!0;if(q)q({scrollTop:z,direction:b,velocity:X.velocity});e()}},e=()=>{if(P)clearTimeout(P);P=setTimeout(()=>{if(E=!1,X=CJ(z),O)O()},j)},Q2=(G)=>{if(_)return;if(_=!0,W=G,v=G.virtualSize-L,V)return;if(C.cancel(),J.removeEventListener("scroll",C),!Y)J.removeEventListener("wheel",c);else if(M)J.removeEventListener("wheel",t);if(M)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",J2,{passive:!1});let k=M?J.scrollLeft:J.scrollTop;if(k>0){let F=M?W?.actualSize??J.scrollWidth:W?.actualSize??J.scrollHeight;z=k/F*v}if(M)J.scrollLeft=0;else J.scrollTop=0},B2=()=>{if(!_)return;if(_=!1,V){W=void 0;return}if(J.removeEventListener("wheel",J2),M)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",C,{passive:!0}),!Y)J.addEventListener("wheel",c,{passive:!1});else if(M)J.addEventListener("wheel",t,{passive:!1});if(W&&z>0){let k=z/v*(W.actualSize-L);if(M)J.scrollLeft=k;else J.scrollTop=k}W=void 0},Y2=()=>{if(V||_)return z;return M?J.scrollLeft:J.scrollTop},u=(G,k=!1)=>{let F=Math.max(0,Math.min(G,v||1/0));if(V){let Z=J.getBoundingClientRect();if(M){let b=Z.left+window.scrollX;window.scrollTo({left:b+F,behavior:k?"smooth":"auto"})}else{let b=Z.top+window.scrollY;window.scrollTo({top:b+F,behavior:k?"smooth":"auto"})}}else if(_){if(F===z)return;let b=F>=z?"down":"up";if(X=C2(X,F),z=F,!E)E=!0;if(q)q({scrollTop:z,direction:b,velocity:X.velocity});e()}else if(M)J.scrollTo({left:F,behavior:k?"smooth":"auto"});else J.scrollTo({top:F,behavior:k?"smooth":"auto"})},m=(G)=>{u(Y2()+G)},$2=()=>{return Y2()<=0},A=(G=0)=>{let k=Y2(),F=V||_?v:M?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return k>=F-G},U=()=>{let G=Y2(),k=V||_?v:M?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(k<=0)return 0;return Math.min(1,Math.max(0,G/k))},N=(G)=>{if(G.compression)W=G.compression,v=W.virtualSize-L},D=()=>_,f=()=>Math.abs(X.velocity),a=()=>aJ(X),r=()=>E,s=()=>V,K=(G)=>{if(L=G,W)v=W.virtualSize-L},T=()=>{if(P)clearTimeout(P);if(V)l.cancel(),window.removeEventListener("scroll",l);else C.cancel(),J.removeEventListener("scroll",C),J.removeEventListener("wheel",J2),J.removeEventListener("wheel",c),J.removeEventListener("wheel",t)};if(V){if(_&&W)v=W.virtualSize-L;window.addEventListener("scroll",l,{passive:!0})}else if(_&&W){if(v=W.virtualSize-L,M)J.style.overflowX="hidden";else J.style.overflow="hidden";if(Y)J.addEventListener("wheel",J2,{passive:!1})}else{if(M)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",C,{passive:!0}),!Y)J.addEventListener("wheel",c,{passive:!1});else if(M)J.addEventListener("wheel",t,{passive:!1})}return{getScrollTop:Y2,scrollTo:u,scrollBy:m,isAtTop:$2,isAtBottom:A,getScrollPercentage:U,getVelocity:f,isTracking:a,isScrolling:r,updateConfig:N,enableCompression:Q2,disableCompression:B2,isCompressed:D,isWindowMode:s,updateContainerHeight:K,destroy:T}},f2=(J)=>{let Q=null,Y=null,$=(...B)=>{if(Y=B,Q===null)Q=requestAnimationFrame(()=>{if(Q=null,Y)J(...Y)})};return $.cancel=()=>{if(Q!==null)cancelAnimationFrame(Q),Q=null},$};var sJ=(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}},SJ=(J,Q,Y={},$="vlist",B=!1,j)=>{let{autoHide:q=!0,autoHideDelay:O=1000,minThumbSize:y=15,showOnHover:M=!0,showOnViewportEnter:V=!0,clickBehavior:z="scroll"}=Y,v=z==="page"?"scroll":z,L=j??J,_=sJ(Y.padding),W=B?_.left:_.top,X=B?_.right:_.bottom,E=B?_.bottom:_.right,P=Y.hoverZoneWidth??E+16,w=0,C=0,p=0,l=0,c=!1,t=!1,J2=0,e=0,Q2=0,B2=null,Y2=!1,u=null,m=null,$2=0,A=0,U=null,N=null,D=null,f=B?"width":"height",a=B?"translateX":"translateY",r=B?(i)=>i.clientX:(i)=>i.clientY,s=B?"left":"top",K=document.createElement("div"),T=document.createElement("div"),G=document.createElement("div"),k=B?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",F=()=>{if(L===J)return;let i=J.offsetTop;K.style[B?"left":"top"]=i?`calc(var(${k}) + ${i}px)`:`var(${k})`,G.style[B?"left":"top"]=`${i}px`},Z=()=>{if(K.className=`${$}-scrollbar`,T.className=`${$}-scrollbar-thumb`,B)K.classList.add(`${$}-scrollbar--horizontal`);if(Y.padding!==void 0)L.style.setProperty("--vlist-custom-scrollbar-padding-top",`${_.top}px`),L.style.setProperty("--vlist-custom-scrollbar-padding-right",`${_.right}px`),L.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${_.bottom}px`),L.style.setProperty("--vlist-custom-scrollbar-padding-left",`${_.left}px`);if(Y.minThumbSize!==void 0)K.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${y}px`);if(K.appendChild(T),L.appendChild(K),G.className=`${$}-scrollbar-hover`,B)G.classList.add(`${$}-scrollbar-hover--horizontal`),G.style.height=`${P}px`;else G.style.width=`${P}px`;if(L.appendChild(G),L!==J)F()},b=()=>{if(B2)clearTimeout(B2),B2=null},R=()=>{if(!q)return;b(),B2=setTimeout(I,O)},x=()=>{if(w<=C)return;if(b(),!Y2)K.classList.add(`${$}-scrollbar--visible`),Y2=!0;if(q&&!c&&!t)R()},I=()=>{if(c||t)return;K.classList.remove(`${$}-scrollbar--visible`),Y2=!1},d=(i,N2)=>{if(w=i,C=N2,F(),w<=C){K.style.display="none",I();return}K.style.display="";let Z2=Math.max(0,C-W-X),O2=C/w;if(p=Math.max(y,O2*Z2),T.style[f]=`${p}px`,l=Z2-p,n(Q2),!q)x()},n=(i)=>{if(Q2=i,w<=C||l<=0)return;let N2=w-C,Z2=Math.min(1,Math.max(0,i/N2));T.style.transform=`${a}(${Z2*l}px)`},H=(i)=>{if(i.target===T||v!=="jump"||l<=0)return;let N2=w-C,Z2=K.getBoundingClientRect(),O2=r(i)-Z2[s],H2=Math.max(0,Math.min(O2-p/2,l));Q(H2/l*N2),x()},S=()=>{if(U!==null)clearTimeout(U),U=null;if(N!==null)cancelAnimationFrame(N),N=null;D=null},h=(i)=>{let N2=l>0?A/i*l:0;if($2<N2)return-1;if($2>=N2+p)return 1;return 0},j2=()=>{let i=w-C,N2=h(i);if(N2===0){S();return}if(N2===-1){if(A<=0){S();return}let Z2=Math.max(0,A-C);A=Z2,Q(Z2)}else{if(A>=i){S();return}let Z2=Math.min(i,A+C);A=Z2,Q(Z2)}x()},o=(i)=>{if(D===null){D=i,N=requestAnimationFrame(o);return}let N2=w-C,Z2=i-D;D=i;let O2=h(N2);if(O2===0){S();return}let H2=12*C/1000,b2=Math.min(H2*Z2,C);if(O2===-1){if(A<=0){S();return}let T2=Math.max(0,A-b2);A=T2,Q(T2)}else{if(A>=N2){S();return}let T2=Math.min(N2,A+b2);A=T2,Q(T2)}b(),N=requestAnimationFrame(o)},q2=()=>{S(),R(),document.removeEventListener("mouseup",q2)},K2=(i)=>{if(i.target===T||v!=="scroll")return;i.preventDefault();let N2=K.getBoundingClientRect();$2=r(i)-N2[s],A=Q2,j2(),U=setTimeout(()=>{N=requestAnimationFrame(o)},350),document.addEventListener("mouseup",q2)},_2=(i)=>{i.preventDefault(),i.stopPropagation(),c=!0,J2=r(i),e=Q2,b(),K.classList.add(`${$}-scrollbar--dragging`),document.addEventListener("mousemove",g),document.addEventListener("mouseup",U2)},g=(i)=>{if(!c)return;let N2=r(i)-J2,Z2=l>0?N2/l:0,O2=w-C,H2=Z2*O2,b2=Math.max(0,Math.min(e+H2,O2));if(T.style.transform=`${a}(${b2/O2*l}px)`,m=b2,u===null)u=requestAnimationFrame(()=>{if(m!==null)Q(m);u=null})},U2=()=>{if(c=!1,u!==null)cancelAnimationFrame(u),u=null;if(m!==null)Q(m),m=null;if(K.classList.remove(`${$}-scrollbar--dragging`),q&&!t)R();document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",U2)},D2=()=>{if(V)x()},M2=()=>{if(!c){if(t=!1,q)R()}},X2=()=>{t=!0,b(),x()},V2=()=>{if(t=!1,!c&&q)R()},W2=()=>{if(b(),S(),u!==null)cancelAnimationFrame(u),u=null;K.removeEventListener("click",H),K.removeEventListener("mousedown",K2),K.removeEventListener("mouseenter",X2),document.removeEventListener("mouseup",q2),K.removeEventListener("mouseleave",V2),T.removeEventListener("mousedown",_2),J.removeEventListener("mouseenter",D2),J.removeEventListener("mouseleave",M2),document.removeEventListener("mousemove",g),document.removeEventListener("mouseup",U2),G.removeEventListener("click",H),G.removeEventListener("mousedown",K2),G.removeEventListener("mouseenter",X2),G.removeEventListener("mouseleave",V2),G.remove(),L.style.removeProperty("--vlist-custom-scrollbar-padding-top"),L.style.removeProperty("--vlist-custom-scrollbar-padding-right"),L.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),L.style.removeProperty("--vlist-custom-scrollbar-padding-left"),K.remove()};if(Z(),K.addEventListener("click",H),K.addEventListener("mousedown",K2),K.addEventListener("mouseenter",X2),K.addEventListener("mouseleave",V2),T.addEventListener("mousedown",_2),J.addEventListener("mouseenter",D2),J.addEventListener("mouseleave",M2),G.addEventListener("click",H),G.addEventListener("mousedown",K2),M)G.addEventListener("mouseenter",X2),G.addEventListener("mouseleave",V2);return{show:x,hide:I,updateBounds:d,updatePosition:n,isVisible:()=>Y2,destroy:W2}};var nJ=50,oJ=0.1;function iJ(J){let Q=0,Y=0,$=0;function B(){return $>0?Y/$:0}function j(y){if(Q=y,y>oJ&&y<nJ)Y+=y,$++}function q(){let y=J.getTotal();if(y===0)return 0;let M=J.getItemSize();if(M<=0)return 0;let V=J.getContainerSize();if(V<=0)return 0;let z=J.getScrollPosition(),v=typeof J.getColumns==="function"?J.getColumns():1,_=Math.ceil(y/v)*M,X=Math.min(_,G2)-V,E=_-V,P=X>0?E/X:1,w=z*P,C=Math.ceil((w+V)/M);return Math.min(C*v,y)}function O(){let y=J.getTotal(),M=q();return{progress:y>0?Math.min(100,Math.max(0,M/y*100)):0,velocity:Q,velocityAvg:B(),itemCount:M,total:y}}return{getState:O,onVelocity:j}}export{e2 as toggleSelection,EJ as simpleVisibleRange,p2 as selectItems,JJ as selectAll,yJ as rangesEqual,f2 as rafThrottle,UJ as needsScaling,z2 as mergeRanges,$J as isSelected,A2 as isPlaceholderItem,PJ as isInRange,P2 as isGroupHeader,jJ as getSelectedItems,YJ as getSelectedIds,y2 as getScaleState,ZJ as getScaleInfo,y2 as getScale,kJ as getRangeCount,NJ as getMaxItemsWithoutScaling,m2 as filterPlaceholders,wJ as diffRanges,h2 as deselectItems,VJ as createTableRenderer,DJ as createTableLayout,WJ as createTableHeader,s2 as createStickyHeader,iJ as createStats,w2 as createSparseStorage,R2 as createSizeCache,t2 as createSelectionState,SJ as createScrollbar,fJ as createScrollController,v2 as createPlaceholderManager,OJ as createMeasuredSizeCache,GJ as createMasonryRenderer,MJ as createMasonryLayout,l2 as createGroupedSizeFn,a2 as createGroupLayout,_J as createGridRenderer,n2 as createGridLayout,zJ as createEmitter,vJ as createAsyncManager,QJ as clearSelection,TJ as clampScrollPosition,LJ as calculateTotalSize,RJ as calculateScrollToIndex,qJ as calculateScaledVisibleRange,KJ as calculateScaledScrollToIndex,BJ as calculateScaledRenderRange,L2 as calculateScaledItemPosition,AJ as calculateRenderRange,u2 as calculateMissingRanges,bJ as calculateItemOffset,XJ as calculateIndexFromScrollPosition,HJ as calculateActualSize,r2 as buildLayoutItems,G2 as MAX_VIRTUAL_SIZE};
|
package/dist/size.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"base":{"minified":"29.
|
|
1
|
+
{"base":{"minified":"29.9","gzipped":"11.3","minBytes":30593,"gzBytes":11560},"withGrid":{"minified":"42.6","gzipped":"15.4","minBytes":43664,"gzBytes":15748},"withMasonry":{"minified":"40.0","gzipped":"14.8","minBytes":40966,"gzBytes":15126},"withGroups":{"minified":"45.0","gzipped":"16.0","minBytes":46049,"gzBytes":16380},"withAsync":{"minified":"42.8","gzipped":"15.9","minBytes":43778,"gzBytes":16270},"withSelection":{"minified":"40.2","gzipped":"14.1","minBytes":41139,"gzBytes":14484},"withScale":{"minified":"42.2","gzipped":"14.9","minBytes":43190,"gzBytes":15284},"withScrollbar":{"minified":"36.1","gzipped":"13.1","minBytes":36957,"gzBytes":13447},"withPage":{"minified":"32.0","gzipped":"12.0","minBytes":32717,"gzBytes":12274},"withSnapshots":{"minified":"33.6","gzipped":"12.5","minBytes":34430,"gzBytes":12811},"withTable":{"minified":"48.6","gzipped":"17.1","minBytes":49802,"gzBytes":17530},"withSortable":{"minified":"39.0","gzipped":"14.2","minBytes":39976,"gzBytes":14528},"withAutoSize":{"minified":"32.4","gzipped":"12.2","minBytes":33192,"gzBytes":12447},"withTransition":{"minified":"37.3","gzipped":"13.4","minBytes":38184,"gzBytes":13722}}
|
package/dist/types.d.ts
CHANGED
|
@@ -532,12 +532,22 @@ export interface VListEvents<T extends VListItem = VListItem> extends EventMap {
|
|
|
532
532
|
};
|
|
533
533
|
/** Data changed — fired after item removal or other data mutations */
|
|
534
534
|
"data:change": {
|
|
535
|
+
type: "insert";
|
|
536
|
+
id: string | number;
|
|
537
|
+
} | {
|
|
538
|
+
type: "add";
|
|
539
|
+
id: string | number;
|
|
540
|
+
} | {
|
|
535
541
|
type: "remove";
|
|
536
542
|
id: string | number;
|
|
537
543
|
} | {
|
|
538
544
|
type: "update";
|
|
539
545
|
id: string | number;
|
|
540
546
|
};
|
|
547
|
+
/** Remove animation ended — fired after the exit transition completes */
|
|
548
|
+
"remove:end": {
|
|
549
|
+
id: string | number;
|
|
550
|
+
};
|
|
541
551
|
/** Sort started — fired when a drag begins */
|
|
542
552
|
"sort:start": {
|
|
543
553
|
index: number;
|
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%;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{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);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)}.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}
|
|
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,.vlist-items:focus,.vlist-items: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,.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);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)}.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}
|