vlist 3.5.0 → 3.6.0
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 +2 -2
- package/README.md +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/internals.js +1 -1
- package/dist/plugins/table/feature.d.ts +31 -0
- package/dist/plugins/table/index.d.ts +4 -1
- package/dist/plugins/table/pin.d.ts +43 -0
- package/dist/plugins/table/plugin.d.ts +12 -0
- package/dist/plugins/table/reorder.d.ts +43 -0
- package/dist/plugins/table/types.d.ts +33 -3
- package/dist/size.json +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/version.json +1 -1
- package/dist/vlist-table.css +1 -1
- package/dist/vlist.css +1 -1
- package/package.json +1 -1
package/dist/internals.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var nt="x",rt=20,We="_isPlaceholder",ke="__placeholder_";function He(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let r=0;r<t.length;r++)t[r].setAttribute("tabindex","-1");e._stamp=0}var we={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},_t=(e)=>e.headerLayoutIndex,Pt=(e)=>e.firstDataIndex,at=(e,t,r)=>{let o=0,s=e.length-1;while(o<s){let i=o+s+1>>>1;if(t(e[i])<=r)o=i;else s=i-1}return o},Ue=(e,t)=>at(e,_t,t),ot=(e,t)=>at(e,Pt,t),st=(e,t,r)=>{if(e===0)return[];let o=[],s=null,i=0,c=0;for(let S=0;S<e;S++){let L=r?.(S);if(!L)continue;let k=t(S,L);if(s===null)s=k,i=0;else if(k!==s){let m=S-i;o.push({key:s,groupIndex:o.length,headerLayoutIndex:c,firstDataIndex:i,count:m}),c=c+1+m,s=k,i=S}}if(s!==null)o.push({key:s,groupIndex:o.length,headerLayoutIndex:c,firstDataIndex:i,count:e-i});return o},it=(e,t)=>{if(e.length===0||t.length===0)return[];let r=e.length+t.length,o=Array(r),s=0;for(let i of t){o[s]={id:`__group_header_${i.groupIndex}`,__groupHeader:!0,groupKey:i.key,groupIndex:i.groupIndex},s++;for(let c=0;c<i.count;c++)o[s]=e[i.firstDataIndex+c],s++}return o},lt=(e,t,r=!1)=>{let o=typeof t==="number"?(s)=>t:t;return(s)=>{let i=e.getEntry(s);if(i.type==="header"){if(r&&i.group.groupIndex===0)return 0;return e.getHeaderHeight(i.group.groupIndex)}return o(i.dataIndex)}},ut=(e,t,r)=>{let o=st(e,t.getGroupForIndex,r),s=e+o.length,i=t.header?.height??t.header?.width??t.headerHeight,c=typeof i==="number"?(f)=>i:(f)=>{let b=o[f];if(!b)return 0;return i(b.key,f)},S={type:"header",group:we},L={type:"item",dataIndex:0,group:we};return{get totalEntries(){return s},get groupCount(){return o.length},get groups(){return o},getEntry:(f)=>{if(o.length===0)return L.dataIndex=f,L.group=we,L;let b=Ue(o,f),u=o[b];if(f===u.headerLayoutIndex)return S.group=u,S;let y=f-u.headerLayoutIndex-1;return L.dataIndex=u.firstDataIndex+y,L.group=u,L},layoutToDataIndex:(f)=>{if(o.length===0)return f;let b=Ue(o,f),u=o[b];if(f===u.headerLayoutIndex)return-1;let y=f-u.headerLayoutIndex-1;return u.firstDataIndex+y},dataToLayoutIndex:(f)=>{if(o.length===0)return f;let b=ot(o,f),u=o[b],y=f-u.firstDataIndex;return u.headerLayoutIndex+1+y},getGroupAtLayoutIndex:(f)=>{if(o.length===0)return we;let b=Ue(o,f);return o[b]},getGroupAtDataIndex:(f)=>{if(o.length===0)return we;let b=ot(o,f);return o[b]},getHeaderHeight:c,rebuild:(f,b)=>{o=st(f,t.getGroupForIndex,b??r),s=f+o.length}}};var Ot=(e,t,r,o,s=0)=>{let i=r?"width":"height",c=document.createElement("div");return c.className=`${t}-sticky-header`,c.setAttribute("role","presentation"),c.setAttribute("aria-hidden","true"),c.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(r?`position:absolute;top:0;bottom:0;left:${s||0}px`:`position:relative;top:${s||0}px`),c.style[i]=`${o}px`,e.insertBefore(c,e.firstChild),c},ct=(e,t,r,o,s,i=!1,c=0,S,L)=>{let k=i?"width":"height",m=i?"height":"width",O=i?"X":"Y",w=(n,a)=>{n.style[k]=`${a}px`},g=S??Ot(e,s,i,0,c),K=()=>{let n=document.createElement("div");return n.className="sticky-group",n.style.position="absolute",n.style.willChange="transform",n.style[m]="100%",n},f=K(),b=K();g.append(f,b);let u=f,y=b,h=t.groups,R=[],V=[],F=0,B=()=>{h=t.groups,F=h.length,R=Array(F),V=Array(F);for(let n=0;n<F;n++)R[n]=L?L(h[n].headerLayoutIndex):r.getOffset(h[n].headerLayoutIndex),V[n]=t.getHeaderHeight(n)};B();let P=-1,D=0,Z=-1,U=!1,te=0,X=!1,ye=(n,a)=>{o(n,a);let E=V[a];return w(n,E),E},de=(n)=>{n.replaceChildren(),n.style.transform=""},re=(n)=>{if(n===P)return;if(P=n,D=0,n<0||n>=F){de(u);return}D=ye(u,n),w(g,D),u.style.transform=""},d=(n)=>{if(n===te)return;te=n;let a=Math.round(n);u.style.transform=`translate${O}(${a}px)`,y.style.transform=`translate${O}(${a+D}px)`},p=()=>{te=0,u.style.transform="",y.style.transform=""},A=()=>{if(!X)return;let n=u;u=y,y=n,P=Z,D=P>=0?V[P]:0,w(g,D),de(y),Z=-1,X=!1,p()},_=()=>{if(!X)return;de(y),Z=-1,X=!1,p()},W=!!S,l=()=>{if(U)return;if(U=!0,W)g.style.visibility="";else g.style.display=""},v=()=>{if(!U)return;if(U=!1,W)g.style.visibility="hidden";else g.style.display="none";de(u),P=-1,D=0,_()},I=(n)=>{if(F===0){if(X)_();if(!U)l();re(-1);return}if(n<R[0]){v();return}let a=0,E=F-1;while(a<E){let N=a+E+1>>>1;if(R[N]+V[N]<=n)a=N;else E=N-1}if(!U)l();re(a);let C=a+1;if(C<F){let N=R[C]-n;if(N<=0&&N>-D){if(Z!==C||!X)Z=C,ye(y,C),X=!0;d(N)}else if(N<=-D){if(X)A()}else if(X)_()}else if(X)_()},T=()=>{B();let n=P;if(P=-1,D=0,n>=0)re(n)},H=()=>{g.remove(),P=-1,D=0,Z=-1,U=!1,X=!1};if(!S)g.style.display="none";return{update:I,refresh:T,show:l,hide:v,destroy:H}};var dt=(e)=>e!==null&&typeof e==="object"&&e.__groupHeader===!0;var mt=(e)=>{let t=Math.max(1,Math.floor(e.columns)),r=e.gap??0,o=e.isHeaderFn,s={row:0,col:0},i=(f)=>{if(f<=0)return 0;if(!o)return Math.ceil(f/t);let b=0,u=0,y=0;for(let h=0;h<f;h++)if(o(h)){if(y++,u)b++,u=0;b++,u=0}else if(u++,u>=t)b++,u=0;if(u)b++;return b},c=(f)=>(s.row=S(f),s.col=L(f),s),S=(f)=>{if(!o)return Math.floor(f/t);let b=0,u=0;for(let y=0;y<=f;y++)if(o(y)){if(u)b++,u=0;if(y===f)return b;b++,u=0}else{if(y===f)return b;if(u++,u>=t)b++,u=0}return b},L=(f)=>{if(!o)return f%t;if(o(f))return 0;let b=0;for(let u=0;u<=f;u++)if(o(u))b=0;else{if(u===f)return b;if(b++,b>=t)b=0}return b},k=(f,b,u,y)=>{if(u<=0){y.start=0,y.end=-1;return}if(!o){y.start=Math.max(0,f*t),y.end=Math.min(u-1,(b+1)*t-1);return}let h=m(f,b,u);y.start=h.start,y.end=h.end},m=(f,b,u)=>{if(u<=0)return{start:0,end:-1};if(!o){let F=Math.max(0,f*t),B=Math.min(u-1,(b+1)*t-1);return{start:F,end:B}}let y=-1,h=-1,R=0,V=0;for(let F=0;F<u;F++){if(o(F)){if(V)R++,V=0;if(R>=f&&R<=b){if(y<0)y=F;h=F}R++,V=0}else{if(R>=f&&R<=b){if(y<0)y=F;h=F}if(V++,V>=t)R++,V=0}if(R>b&&!V)break}if(y<0)return{start:0,end:-1};return{start:y,end:h}},O=(f,b,u)=>{if(b<0||b>=t)return-1;let y=f*t+b;if(y<0||y>=u)return-1;return y},w=(f)=>{let b=(t-1)*r;return Math.max(0,(f-b)/t)};return{get columns(){return t},get gap(){return r},update:(f)=>{if(f.columns!==void 0)t=Math.max(1,Math.floor(f.columns));if(f.gap!==void 0)r=f.gap;if(f.isHeaderFn!==void 0)o=f.isHeaderFn},getTotalRows:i,getPosition:c,getRow:S,getCol:L,getItemRange:m,fillItemRange:k,getItemIndex:O,getColumnWidth:w,getColumnOffset:(f,b)=>{let u=w(b);return f*(u+r)}}};var ft=(e,t=50,r=1/0,o=!0,s="none")=>{let i=e,c=[],S=0,L=0,k=()=>{c=i.map((h,R)=>({def:h,index:R,width:0,minWidth:Math.max(1,h.minWidth??t),maxWidth:h.maxWidth??r,resizable:h.resizable??o,offset:0}))},m=()=>{if(s==="none"||S<=0||S>=L)return;if(s==="spacer"){S=L;return}let h=L-S,R=S;for(let V=0;V<c.length;V++){let F=c[V];F.width=ze(F.width+h*(F.width/R),F.minWidth,F.maxWidth)}w()},O=(h)=>{L=h;let R=0,V=0;for(let F=0;F<c.length;F++){let B=c[F],P=B.def;if(P.width!==void 0)B.width=ze(P.width,B.minWidth,B.maxWidth),R+=B.width;else V++}if(V){let B=Math.max(0,h-R)/V;for(let P=0;P<c.length;P++){let D=c[P];if(D.def.width===void 0)D.width=ze(B,D.minWidth,D.maxWidth)}}w(),m()},w=()=>{let h=0;for(let R=0;R<c.length;R++){let V=c[R];V.offset=h,h+=V.width}S=h},g=(h,R)=>{let V=c[h];if(!V)return 0;if(V.resizable){if(V.width=ze(R,V.minWidth,V.maxWidth),w(),s==="spacer")m()}return V.width},K=(h)=>c[h],f=(h)=>{for(let R=0;R<c.length-1;R++)if(h<c[R].offset+c[R].width)return c[R];return c[c.length-1]},b=(h)=>c[h]?.offset??0,u=(h)=>c[h]?.width??0,y=(h)=>{i=h,k()};return k(),{get columns(){return c},get totalWidth(){return S},resolve:O,updateColumns:y,resizeColumn:g,getColumn:K,getColumnAtX:f,getColumnOffset:b,getColumnWidth:u}},ze=(e,t,r)=>Math.min(r,Math.max(t,e));var Dt=0,$t=(e,t="asc")=>Array.isArray(e)?e.map((r)=>({key:r.key,direction:r.direction})):typeof e==="string"?[{key:e,direction:t}]:e?.key?[{key:e.key,direction:e.direction??"asc"}]:[],Ye=(e,t,r)=>{if(r)e.setAttribute(t,r);else e.removeAttribute(t)},pt=(e,t,r,o,s,i,c=!1)=>{let S=document.createElement("div");S.setAttribute("role","rowgroup");let L=document.createElement("div");L.className=`${r}-table-header`,L.setAttribute("role","row"),L.setAttribute("aria-rowindex","1"),L.style.height=`${t}px`;let k=document.createElement("div");k.className=`${r}-table-header-scroll`,k.setAttribute("role","presentation"),L.appendChild(k),S.appendChild(L),e.insertBefore(S,e.firstChild),e.style.setProperty("--vlist-table-header-height",`${t}px`);let m=[],O=[],w=[],g=null,K=null,f=!1,b=-1,u=0,y=0,h=0,R=(l)=>{if(m[h]?.setAttribute("tabindex","-1"),h=l,m[l])m[l].tabIndex=0},V=(l)=>{let v=l?.closest("[data-column-key]");return v?m.indexOf(v):-1},F=(l,v)=>{let I=document.createElement("div");I.className=`${r}-table-header-cell`,I.setAttribute("role","columnheader"),I.setAttribute("aria-colindex",String(v+1)),I.tabIndex=v?-1:0,I.dataset.columnKey=l.def.key;let T=l.def.align;if(T==="center"||T==="right")I.classList.add(`${r}-table-header-cell--${T}`);let H=document.createElement("div");H.className=`${r}-table-header-content`;let n=l.def.header?l.def.header(l.def):l.def.label;if(typeof n==="string")H.textContent=n;else H.appendChild(n);if(I.appendChild(H),l.def.sortable){let a=document.createElement("span");a.className=`${r}-table-header-sort`,a.setAttribute("aria-hidden","true"),I.appendChild(a),O.push(a),I.classList.add(`${r}-table-header-cell--sortable`)}else O.push(null);if(l.resizable){let a=document.createElement("div");a.className=`${r}-table-header-resize`,a.dataset.resizeIndex=String(v),I.appendChild(a)}return I},B=(l)=>{g=l,k.textContent="",m=[],O=[],h=0;let v=l.columns;for(let I=0;I<v.length;I++){let T=F(v[I],I);m.push(T),k.appendChild(T)}if(P(l),w.length)D(w)},P=(l)=>{g=l;let v=l.columns;k.style.width=`${l.totalWidth}px`;for(let I=0;I<m.length&&I<v.length;I++)m[I].style.width=`${v[I].width}px`},D=(l,v="asc")=>{if(w=$t(l,v),!g)return;let I=g.columns,T=w.length>1,H="";if(T){let a=[];for(let E=0;E<w.length;E++){let C=w[E],N=I.find((Q)=>Q.def.key===C.key)?.def.label;a.push(`${(typeof N==="string"?N:N?.textContent)||C.key} ${C.direction==="asc"?"ascending":"descending"}`)}if(H=`sorted by ${a.join(", then ")}`,!K)K=document.createElement("div"),K.id=`${r}-table-live-${++Dt}`,K.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",K.setAttribute("aria-live","polite"),S.appendChild(K);K.textContent=H}else if(K)K.textContent="";let n=(a,E)=>{Ye(a,"aria-description",E&&H),Ye(a,"aria-describedby",E&&K.id)};n(L,T);for(let a=0;a<O.length&&a<I.length;a++){let E=O[a];if(!E)continue;let C=m[a],N=w.findIndex((oe)=>oe.key===I[a].def.key),Q=w[N];if(E.textContent=Q?Q.direction==="asc"?"▲":"▼":"",E.style.opacity=Q?"0.7":"0",Q&&T)E.dataset.sortPriority=String(N+1);else delete E.dataset.sortPriority;Ye(C,"aria-sort",N===0&&(Q.direction==="asc"?"ascending":"descending")),n(C,N>0)}},Z=(l)=>{k.style.transform=`translateX(${-l}px)`},U=(l)=>{let v=l.target;if(!v.dataset.resizeIndex)return;l.preventDefault(),l.stopPropagation(),b=+v.dataset.resizeIndex;let I=g?.getColumn(b);if(!I?.resizable)return;f=!0,u=l.clientX,y=I.width,e.classList.add(`${r}--col-resizing`),e.style.cursor="col-resize",v.classList.add(`${r}-table-header-resize--active`),v.setPointerCapture(l.pointerId),v.addEventListener("pointermove",te),v.addEventListener("pointerup",X),v.addEventListener("pointercancel",X)},te=(l)=>{if(!f||!g)return;let v=l.clientX-u;if(Math.abs(v)<1)return;o(b,Math.max(0,y+v))},X=(l)=>{if(!f)return;let v=l.target;v.removeEventListener("pointermove",te),v.removeEventListener("pointerup",X),v.removeEventListener("pointercancel",X);try{v.releasePointerCapture(l.pointerId)}catch{}v.classList.remove(`${r}-table-header-resize--active`),e.classList.remove(`${r}--col-resizing`),e.style.cursor="",f=!1,b=-1},ye=(l,v,I)=>{if(!l?.def.sortable||!s)return!1;let T=l.def.key,H=w.findIndex((n)=>n.key===T);if(I&&c){let n=w[H]?.direction,a=n?n==="asc"?"desc":null:"asc",E=!n?[...w,{key:T,direction:"asc"}]:a?w.map((C,N)=>N===H?{key:T,direction:a}:C):w.filter((C,N)=>N!==H);s({key:T,index:v,direction:a,sorts:E})}else{let n=w.length===1&&!H?w[0].direction:null,a=n?n==="asc"?"desc":null:"asc";s(w.length>1?{key:T,index:v,direction:a,sorts:a?[{key:T,direction:a}]:[]}:{key:T,index:v,direction:a})}return!0},de=(l)=>{let v=l.target;if(v.dataset.resizeIndex||f||!g)return;let I=V(v);if(I===-1)return;let T=v.closest("a[href],button,input,select,textarea,[tabindex]");if(T&&T!==m[I])return;let H=g.columns[I];i?.({key:H.def.key,index:I,event:l}),ye(H,I,l.shiftKey||l.ctrlKey||l.metaKey)},re=(l)=>{let v=V(l.target);if(v>=0)R(v)},d=(l)=>{if(l<0||l>=m.length)return;R(l),m[l].focus()},p=(l)=>{let v=l.key,I=l.target.closest("a[href],button,input,select,textarea,[tabindex]");if(I&&!I.hasAttribute("data-column-key"))return;if(v==="ArrowRight"||v==="ArrowLeft"){let T=v==="ArrowRight"?1:-1;if(l.ctrlKey||l.metaKey){let H=g?.getColumn(h);if(H?.resizable)o(h,H.width+T*10),l.preventDefault()}else{let H=h+T;if(H>=0&&H<m.length)d(H),l.preventDefault()}l.stopPropagation();return}if(v==="Home"||v==="End"){d(v==="Home"?0:m.length-1),l.preventDefault(),l.stopPropagation();return}if(v==="Enter"||v===" "){if(ye(g?.getColumn(h),h,l.shiftKey||l.ctrlKey||l.metaKey))l.preventDefault();l.stopPropagation();return}if(v==="ArrowDown")e.focus(),l.preventDefault(),l.stopPropagation()};return L.addEventListener("pointerdown",U),L.addEventListener("click",de),L.addEventListener("keydown",p),L.addEventListener("focusin",re),{element:L,update:P,updateSort:D,rebuild:B,show:()=>{L.style.display=""},hide:()=>{L.style.display="none"},destroy:()=>{L.removeEventListener("pointerdown",U),L.removeEventListener("click",de),L.removeEventListener("keydown",p),L.removeEventListener("focusin",re),e.style.removeProperty("--vlist-table-header-height"),K=null,S.remove(),m=[],O=[],w=[],g=null},syncScroll:Z}};var Ge=(e,t,r)=>{if(String(r).startsWith(ke))return!1;let o=ke+t;if(e.has(o))return e.delete(o),e.add(r),!0;return!1},bt=(e)=>({selected:new Set(e??[]),focusedIndex:-1,focusVisible:!1}),Ze=(e,t,r)=>{if(r==="none")return e;let o=new Set(e.selected);if(r==="single"){if(o.clear(),t.length>0)o.add(t[0])}else for(let s of t)o.add(s);return{...e,selected:o}},qe=(e,t)=>{let r=new Set(e.selected);for(let o of t)r.delete(o);return{...e,selected:r}},gt=(e,t,r)=>{if(r==="none")return e;if(e.selected.has(t))return qe(e,[t]);else return Ze(e,[t],r)},ht=(e,t,r)=>{if(r!=="multiple")return e;return{...e,selected:new Set(t.map((o)=>o.id))}},yt=(e)=>({...e,selected:new Set});var St=(e,t)=>e.selected.has(t),xt=(e)=>Array.from(e.selected),vt=(e,t)=>{let r=[];for(let o of e.selected){let s=t(o);if(s)r.push(s)}return r};var Tt=["data-id","data-index","aria-selected","aria-rowindex","role"],zt=()=>{let e=[];return{acquire:()=>e.pop()||document.createElement("div"),release:(t)=>{if(t.remove(),e.length<200){t.className="";for(let r=0;r<Tt.length;r++)t.removeAttribute(Tt[r]);t.style.cssText="",t.textContent="",e.push(t)}},clear:()=>{e.length=0}}},It=(e,t,r,o,s,i,c,S,L,k=()=>0)=>{let m=zt(),O=new Map,w=-1,g=r,K=null,f=null,b=null,u=(n,a)=>{f=n,b=a},y=(n,a)=>{if(typeof a==="string")n.innerHTML=a;else n.replaceChildren(a)},h=(n)=>String(n).startsWith("__placeholder_"),R=`${s}-item ${s}-table-row`,V=`${s}-item--selected`,F=`${s}-item--focused`,B=`${s}-table-cell`,P=`${s}-table-cell-skeleton`,D=`${s}-item--odd`,Z=`${s}-item--placeholder`,U=`${s}-item--replaced`,te=`${s}-table-row ${s}-table-group-header`,X=`${s}-table-group-header-content`,ye=(n,a,E,C,N=!1)=>{if(E.def.cell)y(n,E.def.cell(a,E.def,C));else{let oe=a[E.def.key],j=oe!=null?String(oe):"";if(N&&j)n.innerHTML=`<span>${j}</span>`;else n.textContent=j}if(N&&n.firstElementChild===null){n.replaceChildren();let oe=document.createElement("span");oe.className=P,n.appendChild(oe)}He(n);let Q=n.parentElement;if(Q)Q._stamp=0},de=(n,a,E,C,N=!1)=>{let Q=R;if(S){let oe=K?K(a):a;if(oe>=0&&(oe&1)===1)Q+=` ${D}`}if(N)Q+=` ${Z}`;if(E)Q+=` ${V}`;if(C)Q+=` ${F}`;n.className=Q},re=(n,a,E,C,N=!1)=>{de(n.element,a,E,C,N),E?n.element.setAttribute("aria-selected","true"):n.element.removeAttribute("aria-selected"),n.lastSelected=E,n.lastFocused=C},d=(n,a)=>{n.element.setAttribute("data-id",String(a.id)),n._lastItem=a,n.lastItemId=a.id},p=(n,a,E,C,N,Q=!1)=>{let oe=g.columns;for(let j=0;j<n.cells.length&&j<oe.length;j++)ye(n.cells[j],E,oe[j],a,Q);d(n,E),re(n,a,C,N,Q)},A=(n,a,E,C,N,Q,oe)=>{let j=m.acquire(),xe=Q.getSize(a),z=Q.getOffset(a)-oe,ne=[],ae={element:j,cells:ne,index:a,isGroupHeader:E,_lastItem:n,lastItemId:n.id,lastSelected:!1,lastFocused:!1,lastOffset:z,lastHeight:xe};if(j.style.cssText=`width:${g.totalWidth}px;height:${xe}px;transform:translateY(${z}px)`,j.setAttribute("role",E?"presentation":"row"),j.setAttribute("data-index",String(a)),E){let pe=n;j.className=te,d(ae,n);let be=document.createElement("div");if(be.className=X,b)y(be,b(pe.groupKey,pe.groupIndex));j.appendChild(be),He(j)}else{j.id=`${i}-item-${a}`,j.setAttribute("aria-rowindex",String(a+2));let pe=g.columns;for(let be=0;be<pe.length;be++){let x=document.createElement("div"),G=pe[be],Y=G.def.align;x.className=Y==="center"||Y==="right"?`${B} ${B}--${Y}`:B,x.style.cssText=`left:${G.offset}px;width:${G.width}px`,x.setAttribute("role","gridcell"),x.setAttribute("aria-colindex",String(be+1)),j.appendChild(x),ne.push(x)}p(ae,a,n,C,N,h(n.id))}return ae},_=(n,a,E,C,N=k())=>{let Q=!1,oe=c();if(oe!==w)w=oe,Q=!0;let j=null,xe=t();K=typeof S==="string"&&L?L():null;for(let z=a.start;z<=a.end;z++){let ne=n[z-a.start];if(!ne)continue;let ae=E.has(ne.id),pe=z===C,be=f?f(ne):!1,x=O.get(z),G=!!x;if(x&&x.isGroupHeader!==be)m.release(x.element),O.delete(z),x=void 0;if(x){if(be){if(x._lastItem!==ne){let le=ne,ge=x.element.firstElementChild;if(ge&&b)y(ge,b(le.groupKey,le.groupIndex)),He(x.element);d(x,ne)}}else{if(x._lastItem!==ne){let le=x.lastItemId!=null&&h(x.lastItemId),ge=h(ne.id);if(!ge&&Ge(E,z,ne.id))ae=!0;if(p(x,z,ne,ae,pe,ge),le&&!ge)x.element.classList.add(U),setTimeout(()=>{x.element.classList.remove(U)},300)}else if(x.lastSelected!==ae||x.lastFocused!==pe)re(x,z,ae,pe,h(ne.id));if(Q)x.element.setAttribute("aria-rowindex",String(z+2))}let Y=xe.getOffset(z)-N;if(x.lastOffset!==Y)x.lastOffset=Y,x.element.style.transform=`translateY(${Y}px)`;let J=xe.getSize(z);if(x.lastHeight!==J)x.lastHeight=J,x.element.style.height=`${J}px`}else{if(!G&&Ge(E,z,ne.id))ae=!0;let Y=A(ne,z,be,ae,pe,xe,N);if(O.set(z,Y),!j)j=document.createDocumentFragment();j.appendChild(Y.element)}}if(j)e.appendChild(j);for(let[z,ne]of O)if(z<a.start||z>a.end)m.release(ne.element),O.delete(z)},W=(n,a,E,C)=>{let N=O.get(n);if(!N||N.isGroupHeader)return;p(N,n,a,E,C)},l=(n,a,E)=>{let C=O.get(n);if(!C||C.isGroupHeader)return;if(C.lastSelected!==a||C.lastFocused!==E)re(C,n,a,E)},v=(n)=>{g=n;let a=n.columns;for(let[,E]of O){E.element.style.width=`${n.totalWidth}px`;for(let C=0;C<E.cells.length&&C<a.length;C++){let N=E.cells[C],Q=a[C];N.style.left=`${Q.offset}px`,N.style.width=`${Q.width}px`}}},I=(n)=>O.get(n)?.element,T=()=>{for(let[,n]of O)m.release(n.element);O.clear(),w=-1};return{render:_,updateItem:W,updateItemClasses:l,getElement:I,updateColumnLayout:v,setGroupHeaderFn:u,clear:T,destroy:()=>{T(),m.clear()}}};var Lt=(e)=>{let t=Math.max(1,Math.floor(e.columns)),r=e.gap??0,o=e.containerSize,s=e.crossOffset??0,i=e.mainOffset??0,c=0,S=[],L=()=>{let u=(t-1)*r;c=Math.max(0,(o-u)/t),S=Array(t);let y=c+r;for(let h=0;h<t;h++)S[h]=s+h*y};L();let k=[],m=0,O=[],w=(u,y)=>{if(u<=0)return m=0,k=[],[];let h=Array(t).fill(i),R=Array(t);for(let B=0;B<t;B++)R[B]=[];let V=Array(u);for(let B=0;B<u;B++){let P=0,D=h[0];for(let te=1;te<t;te++){let X=h[te];if(X<D)D=X,P=te}let Z=y(B),U=h[P];V[B]={index:B,x:S[P],y:U,lane:P,size:Z,crossSize:c},R[P].push(B),h[P]=U+Z+r}k=R;let F=0;for(let B=0;B<t;B++){let P=h[B],D=P>0?P-r:0;if(D>F)F=D}return m=F,V},g=(u)=>{if(u.length===0)return m;if(m)return m;let y=Array(t).fill(0);for(let R of u){let V=R.y+R.size,F=y[R.lane];if(V>F)y[R.lane]=V}let h=0;for(let R=0;R<t;R++)if(y[R]>h)h=y[R];return h},K=(u,y,h)=>{if(u.length===0||h<=y)return O.length=0,O;if(k.length===0||k.length!==t)return f(u,y,h);O.length=0;for(let R=0;R<t;R++){let V=k[R],F=V.length;if(!F)continue;let B=0,P=F;while(B<P){let D=B+P>>>1,Z=u[V[D]];if(Z.y+Z.size<=y)B=D+1;else P=D}for(let D=B;D<F;D++){let Z=u[V[D]];if(Z.y>=h)break;O.push(Z)}}return O},f=(u,y,h)=>{O.length=0;for(let R of u)if(R.y+R.size>y&&R.y<h)O.push(R);return O};return{get columns(){return t},get gap(){return r},get containerSize(){return o},update:(u)=>{let y=!1;if(u.columns!==void 0){let h=Math.max(1,Math.floor(u.columns));if(h!==t)t=h,y=!0}if(u.gap!==void 0&&u.gap!==r)r=u.gap,y=!0;if(u.containerSize!==void 0&&u.containerSize!==o)o=u.containerSize,y=!0;if(u.crossOffset!==void 0&&u.crossOffset!==s)s=u.crossOffset,y=!0;if(u.mainOffset!==void 0&&u.mainOffset!==i)i=u.mainOffset,y=!0;if(y)L()},calculateLayout:w,getTotalSize:g,getVisibleItems:K}};var Ct=(e,t,r)=>{let o=Array.from(t).sort((c,S)=>c-S);if(o.length<=1)return;let s=[];for(let c=0;c<o.length;c++){let S=r(o[c]);if(S)s.push(S)}if(s.length<=1)return;let i=e.firstChild;for(let c=0;c<s.length;c++){let S=s[c];if(S===i)i=i.nextSibling;else e.insertBefore(S,i)}};var Gt=(e=200)=>{let t=[];return{acquire:()=>{let i=t.pop();if(i)return i;let c=document.createElement("div");return c.setAttribute("role","option"),c},release:(i)=>{if(i.remove(),t.length<e)i.className="",i.textContent="",i.removeAttribute("style"),i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.removeAttribute("data-lane"),t.push(i)},clear:()=>{t.length=0}}},Vt=1,Et=(e,t,r,o=!1,s,i,c,S,L=()=>0)=>{let k=Gt(),m=new Map,O=new Set,w=0,g="",K=-1,f=!1,b={selected:!1,focused:!1},u=(d,p)=>(b.selected=d,b.focused=p,b),y=`${r}-item ${r}-masonry-item`,h=`${r}-group-header`,R=`${r}-item--selected`,V=`${r}-item--focused`,F=(d,p)=>{if(typeof p==="string")d.innerHTML=p;else d.replaceChildren(p);He(d)},B=(d,p,A)=>{d.classList.toggle(R,p),d.classList.toggle(V,A)},P=(d,p)=>{let A=Math.round(p.y-U);if(o)d.style.transform=`translate(${A}px, ${Math.round(p.x)}px)`;else d.style.transform=`translate(${Math.round(p.x)}px, ${A}px)`},D=(d,p)=>{if(o)d.style.width=`${p.size}px`,d.style.height=`${p.crossSize}px`;else d.style.width=`${p.crossSize}px`,d.style.height=`${p.size}px`},Z=(d,p,A,_,W)=>{let l=k.acquire(),v=p.__groupHeader,I=u(_,W);if(l.className=v?h:y,l.dataset.index=String(d),l.dataset.id=String(p.id),l.dataset.lane=String(A.lane),v)l.setAttribute("role","presentation"),l.removeAttribute("aria-selected"),l.removeAttribute("aria-setsize"),l.removeAttribute("aria-posinset"),l.removeAttribute("id");else if(f){if(l.setAttribute("role","option"),l.ariaSelected=String(_),i)l.id=`${i}-item-${d}`;if(s){let H=s();if(H!==K)K=H,g=String(H);l.setAttribute("aria-setsize",g);let n=c?c(d):d+1;l.setAttribute("aria-posinset",String(n))}}else l.setAttribute("role","listitem"),l.removeAttribute("aria-selected"),l.removeAttribute("aria-setsize"),l.removeAttribute("aria-posinset"),l.removeAttribute("id");D(l,A);let T=t(p,d,I);return F(l,T),B(l,_,W),P(l,A),{element:l,lastItem:p,lastSelected:_,lastFocused:W,lastY:A.y-U,absY:A.y,lastX:A.x,lastSize:A.size,lastCrossSize:A.crossSize,lastSeenFrame:w}},U=0,te=(d,p,A,_,W=L())=>{U=W,w++,f=typeof S==="function"?S():S===!0;let l=s?.()??1/0;if(f&&s){if(l!==K){K=l,g=String(l);for(let I of m.values())if(I.element.getAttribute("role")==="option")I.element.setAttribute("aria-setsize",g)}}O.clear();for(let I=0;I<p.length;I++)O.add(p[I].index);let v=null;for(let I=0;I<p.length;I++){let T=p[I],H=T.index,n=d(H);if(!n)continue;let a=A.has(n.id),E=H===_,C=m.get(H);if(C){let N=C.lastItem!==n,Q=C.lastSelected!==a,oe=C.lastFocused!==E,j=C.lastY!==T.y-U||C.lastX!==T.x,xe=C.lastSize!==T.size||C.lastCrossSize!==T.crossSize;if(N){let z=u(a,E),ne=t(n,H,z);if(F(C.element,ne),C.element.dataset.id=String(n.id),C.lastItem=n,!n.__groupHeader&&f){let pe=c?c(H):H+1;C.element.setAttribute("aria-posinset",String(pe))}}if(N||Q||oe){if(B(C.element,a,E),f)C.element.ariaSelected=String(a);else C.element.removeAttribute("aria-selected");C.lastSelected=a,C.lastFocused=E}if(xe)D(C.element,T),C.lastSize=T.size,C.lastCrossSize=T.crossSize;if(j)P(C.element,T),C.lastY=T.y-U,C.absY=T.y,C.lastX=T.x}else{let N=Z(H,n,T,a,E);if(!v)v=document.createDocumentFragment();v.appendChild(N.element),m.set(H,N)}}if(v)e.appendChild(v);for(let[I,T]of m)if(O.has(I))T.lastSeenFrame=w;else if(I>=l||w-T.lastSeenFrame>Vt)k.release(T.element),m.delete(I);else{let H=Math.round(T.absY-U);if(H!==T.lastY){T.lastY=H;let n=Math.round(T.lastX);T.element.style.transform=o?`translate(${H}px, ${n}px)`:`translate(${n}px, ${H}px)`}}},X=()=>{for(let d of m.values())k.release(d.element);m.clear(),e.innerHTML=""};return{render:te,getElement:(d)=>m.get(d)?.element,updateItemClasses:(d,p,A)=>{let _=m.get(d);if(!_)return;let W=_.lastSelected!==p,l=_.lastFocused!==A;if(W||l)B(_.element,p,A),_.lastSelected=p,_.lastFocused=A},sortDOM:()=>{Ct(e,m.keys(),(d)=>m.get(d)?.element)},clear:X,destroy:()=>{X(),k.clear()}}};var Ft=(e,t,r)=>{let o=t;return{getOffset:(s)=>s*e,getSize:(s)=>e,indexAtOffset:(s)=>{if(o===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(s/e),o-1))},getTotalSize:()=>{let s=o*e;return s>0?s-r:0},getTotal:()=>o,rebuild:(s)=>{o=s},invalidate:()=>{},isVariable:()=>!1}};var Mt=(e,t,r,o)=>{while(t<r){let s=t+r+1>>>1;if(e[s]<=o)t=s;else r=s-1}return t},Bt=(e,t,r)=>{let o=0,s=0,i=new Float64Array(0),c=new Float64Array(0),S=new Float64Array(1),L=(m,O)=>{for(let w=m;w<s;w++){if(w<=O){let g=w<<9,K=Math.min(g+512,o),f=0;for(let b=g;b<K;b++)i[b]=f,f+=e(b);c[w]=f}S[w+1]=S[w]+c[w]}},k=(m)=>{o=m,s=Math.ceil(m/512),i=new Float64Array(m),c=new Float64Array(s),S=new Float64Array(s+1),L(0,s-1)};return k(t),{getOffset:(m)=>{if(m<=0)return 0;if(m>=o)return S[s];return S[m>>>9]+i[m]},getSize:(m)=>e(m),indexAtOffset:(m)=>{if(o===0||m<=0)return 0;if(m>=S[s])return o-1;let O=Mt(S,0,s-1,m),w=O<<9;return Mt(i,w,Math.min(w+512,o)-1,m-S[O])},getTotalSize:()=>{let m=S[s];return m>0?m-r:0},getTotal:()=>o,rebuild:(m)=>k(m),invalidate:(m,O=m)=>{if(m>=0&&O<o)L(m>>>9,O>>>9)},isVariable:()=>!0}},At=(e,t,r=0)=>{if(typeof e==="number")return Ft(e,t,r);return Bt(e,t,r)};var Rt=()=>{let e={},t=(i,c)=>{if(!e[i])e[i]=new Set;return e[i].add(c),()=>r(i,c)},r=(i,c)=>{e[i]?.delete(c)};return{on:t,off:r,emit:(i,c)=>{e[i]?.forEach((S)=>{try{S(c)}catch(L){}})},clear:(i)=>{if(i)delete e[i];else for(let c in e)delete e[c]}}};var Ve=(e={})=>{let{chunkSize:t=100,maxCachedItems:r=5000,evictionBuffer:o=200,onEvict:s}=e,i=new Map,c=0,S=0,L=(d)=>{let p=i.get(d);if(!p)p={items:Array(t),count:0,lastAccess:Date.now()},i.set(d,p);else p.lastAccess=Date.now();return p},k=(d)=>Math.floor(d/t),m=(d)=>d%t,O=()=>c,w=(d)=>{c=d},g=(d)=>{if(d<0||d>=c)return;let p=k(d),A=i.get(p);if(!A)return;return A.items[m(d)]},K=(d)=>{if(d<0||d>=c)return!1;let p=k(d),A=i.get(p);if(!A)return!1;return A.items[m(d)]!==void 0},f=(d,p)=>{let A=k(d),_=L(A),W=m(d),l=_.items[W]===void 0;if(_.items[W]=p,l)_.count++,S++;if(d>=c)c=d+1},b=(d,p)=>{for(let A=0;A<p.length;A++){let _=p[A];if(_!==void 0)f(d+A,_)}},u=(d,p)=>{if(d<0||d>c)return;let A=k(d),_=Array.from(i.keys()).filter((T)=>T>=A).sort((T,H)=>T-H),W=[];for(let T of _){let H=i.get(T),n=T*t;for(let a=0;a<t;a++){if(H.items[a]===void 0)continue;let E=n+a;if(E<d)continue;W.push({oldIndex:E,item:H.items[a]})}}for(let{oldIndex:T}of W){let H=k(T),n=i.get(H);if(!n)continue;let a=m(T);if(n.items[a]!==void 0){if(n.items[a]=void 0,n.count--,S--,n.count===0)i.delete(H)}}c++;for(let{oldIndex:T,item:H}of W){let n=T+1,a=k(n),E=L(a),C=m(n);E.items[C]=H,E.count++,S++}let l=k(d),v=L(l),I=m(d);v.items[I]=p,v.count++,S++},y=(d)=>{if(d<0||d>=c)return!1;let p=k(d),A=i.get(p),_=m(d);if(!(A!==void 0&&A.items[_]!==void 0))return!1;let l=p,v=Array.from(i.keys()).filter((T)=>T>=l).sort((T,H)=>T-H),I=[];for(let T of v){let H=i.get(T),n=T*t;for(let a=0;a<t;a++){if(H.items[a]===void 0)continue;let E=n+a;if(E<=d)continue;I.push({oldIndex:E,item:H.items[a]})}}if(A.items[_]=void 0,A.count--,S--,A.count===0)i.delete(p);for(let{oldIndex:T}of I){let H=k(T),n=i.get(H);if(!n)continue;let a=m(T);if(n.items[a]!==void 0){if(n.items[a]=void 0,n.count--,S--,n.count===0)i.delete(H)}}for(let{oldIndex:T,item:H}of I){let n=T-1,a=k(n),E=L(a),C=m(n);E.items[C]=H,E.count++,S++}return c--,!0},h=(d,p)=>{let A=[];for(let _=d;_<=p&&_<c;_++)A.push(g(_));return A},R=(d,p)=>{for(let A=d;A<=p&&A<c;A++)if(!K(A))return!1;return!0},V=()=>{let d=[],p=null,A=Array.from(i.keys()).sort((_,W)=>_-W);for(let _ of A){let W=i.get(_);if(!W)continue;let l=_*t;for(let v=0;v<t;v++){let I=l+v;if(I>=c)break;if(W.items[v]!==void 0)if(p===null)p={start:I,end:I};else if(I===p.end+1)p.end=I;else d.push(p),p={start:I,end:I};else if(p!==null)d.push(p),p=null}}if(p!==null)d.push(p);return d},F=(d,p)=>{let A=[],_=null;for(let W=d;W<=p&&W<c;W++)if(!K(W))if(_===null)_={start:W,end:W};else _.end=W;else if(_!==null)A.push(_),_=null;if(_!==null)A.push(_);return A},B=(d)=>i.has(d),P=(d)=>{let p=i.get(d);if(!p)return!1;let A=d*t,_=Math.min(t,c-A);return p.count>=_},D=(d)=>{let p=i.get(d);if(p)p.lastAccess=Date.now()},Z=(d,p)=>{if(d>p||i.size===0)return;let A=Date.now(),_=k(Math.max(0,d)),W=k(Math.min(c-1,p));for(let l=_;l<=W;l++){let v=i.get(l);if(v)v.lastAccess=A}},U=(d,p)=>{if(S<=r)return 0;let A=Math.max(0,d-o),_=Math.min(c-1,p+o),W=k(A),l=k(_),v=0,I=[];for(let[T,H]of i)if(T<W||T>l)v+=H.count,I.push(T),S-=H.count,i.delete(T);if(v>0&&s)s(v,I);return v},te=()=>{if(S<=r)return 0;let d=Array.from(i.entries()).sort(([,_],[,W])=>_.lastAccess-W.lastAccess),p=0,A=[];for(let[_,W]of d){if(S<=r)break;p+=W.count,S-=W.count,A.push(_),i.delete(_)}if(p>0&&s)s(p,A);return p},X=()=>({totalItems:c,cachedItems:S,cachedChunks:i.size,chunkSize:t,maxCachedItems:r,memoryEfficiency:c>0?1-S/c:1}),ye=()=>S,de=()=>{i.clear(),S=0};return{chunkSize:t,maxCachedItems:r,getTotal:O,setTotal:w,get:g,has:K,set:f,setRange:b,insert:u,delete:y,getRange:h,isRangeLoaded:R,getLoadedRanges:V,findUnloadedRanges:F,getChunkIndex:k,isChunkLoaded:B,isChunkFullyLoaded:P,touchChunk:D,touchChunksForRange:Z,evictDistant:U,evictToLimit:te,getStats:X,getCachedCount:ye,clear:de,reset:()=>{de(),c=0}}},Fe=(e)=>{if(e.length===0)return[];let t=[...e].sort((o,s)=>o.start-s.start),r=[{...t[0]}];for(let o=1;o<t.length;o++){let s=t[o],i=r[r.length-1];if(s.start<=i.end+1)i.end=Math.max(i.end,s.end);else r.push({...s})}return r},Xe=(e,t,r)=>{let o=Math.floor(e.start/r)*r,s=Math.ceil((e.end+1)/r)*r-1,i={start:o,end:s};if(t.length===0)return[i];let c=[],S=Fe(t),L=i.start;for(let k of S){if(k.end<L)continue;if(k.start>i.end)break;if(k.start>L)c.push({start:L,end:Math.min(k.start-1,i.end)});if(L=k.end+1,L>i.end)break}if(L<=i.end)c.push({start:L,end:i.end});return c};var Be=(e={})=>{let{maskCharacter:t=nt,maxSampleSize:r=rt}=e,o=[],s=!1,i=(m)=>{if(s||m.length===0)return;let O=Math.min(m.length,r);for(let w=0;w<O;w++){let g=m[w];if(!g||typeof g!=="object")continue;let K={},f=!1;for(let[b,u]of Object.entries(g)){if(b.startsWith("_")||b==="id")continue;K[b]=String(u??"").length,f=!0}if(f)o.push(K)}s=!0},c=()=>s,S=(m)=>{let O={id:`${ke}${m}`,[We]:!0,_index:m};if(o.length===0)return O.label=t.repeat(12),O;let w=o[m%o.length];for(let[g,K]of Object.entries(w))O[g]=t.repeat(Math.max(1,K));return O};return{analyzeStructure:i,hasAnalyzedStructure:c,generate:S,generateRange:(m,O)=>{let w=[];for(let g=m;g<=O;g++)w.push(S(g));return w},clear:()=>{o=[],s=!1}}},Re=(e)=>{if(!e||typeof e!=="object")return!1;return e[We]===!0},je=(e)=>e.filter((t)=>!Re(t));var Kt=50,Ht=(e={})=>{let{adapter:t,initialItems:r,initialTotal:o,storage:s,placeholder:i,pageSize:c=Kt,maxConcurrent:S=0,onStateChange:L,onDataChange:k,onItemsLoaded:m,onItemsEvicted:O,onLoadError:w}=e,g=Ve({...s,onEvict:(x,G)=>{O?.(x),U(),Z()}}),K=null,f=()=>{if(!K)K=Be(i);return K},b=new Map,u=!1,y,h=!0,R,V,F=[],B=0,P=new Map,D=()=>{for(let x of P.values())x[1].abort();P.clear()},Z=()=>{L?.(_())},U=()=>{k?.()},te=()=>{b.clear();let x=g.getLoadedRanges();for(let G of x)for(let Y=G.start;Y<=G.end;Y++){let J=g.get(Y);if(J&&!Re(J))b.set(J.id,Y)}},X=(x,G)=>{if(!Re(G))b.set(G.id,x)},ye=(x)=>{b.delete(x)},de=(x,G)=>`${x}-${G}`,re=()=>g.getTotal(),d=()=>g.getCachedCount(),p=()=>u,A=()=>h,_=()=>({total:g.getTotal(),cached:g.getCachedCount(),isLoading:u,pendingRanges:F,error:y,hasMore:h,cursor:R}),W=()=>g,l=()=>f(),v=(x)=>{let G=g.get(x);if(G!==void 0)return G;if(x>=0&&x<g.getTotal())return f().generate(x);return},I=(x)=>{let G=b.get(x);if(G===void 0)return;return g.get(G)},T=(x)=>b.get(x)??-1,H=(x)=>{let G=g.get(x);return G!==void 0&&!Re(G)},n=(x,G)=>{let Y=[],J=g.getTotal();g.touchChunksForRange(x,Math.min(G,J-1));for(let le=x;le<=G&&le<J;le++){let ge=g.get(le);if(ge!==void 0)Y.push(ge);else Y.push(f().generate(le))}return Y},a=(x)=>{g.setTotal(x),h=g.getCachedCount()<x,U(),Z()},E=(x,G=0,Y)=>{if(t&&x.length>0){let J=f();if(!J.hasAnalyzedStructure())J.analyzeStructure(x)}for(let J=0;J<x.length;J++){let le=x[J];if(le!==void 0){let ge=G+J;g.set(ge,le),X(ge,le)}}if(Y!==void 0)g.setTotal(Y);else if(G+x.length>g.getTotal())g.setTotal(G+x.length);if(g.getCachedCount()>=g.getTotal()&&g.getTotal()>0)h=!1;U(),Z(),m?.(x,G,g.getTotal())},C=(x,G)=>{let Y=g.get(x);if(!Y)return!1;let J=Y.id,le={...Y,...G};if(g.set(x,le),G.id!==void 0&&G.id!==J)ye(J);return X(x,le),U(),Z(),!0},N=(x,G)=>{g.insert(G,x),te(),D(),U(),Z()},Q=(x)=>{let G=b.get(x);if(G===void 0)return!1;if(!g.delete(G))return!1;return te(),D(),U(),Z(),!0},oe=async(x,G)=>{if(!t)return;let Y=g.chunkSize,J=Math.floor(x/Y),le=Math.floor(G/Y),ge=Y*2;for(let[se,ue]of P){let Te=se.indexOf("-"),Le=parseInt(se.slice(0,Te),10);if(Math.abs(Le-x)>ge)ue[1].abort(),P.delete(se)}let ve=[],Ce=[];for(let se=J;se<=le;se++){let ue=se*Y,Te=ue+Y-1,Le=de(ue,Te);if(g.isChunkFullyLoaded(se))continue;let me=P.get(Le);if(me)Ce.push(me[0]);else ve.push({start:ue,end:Te})}if(ve.length===0){if(Ce.length>0)await Promise.all(Ce);return}if(S>0){let se=P.size+ve.length;if(se>S){let ue=(x+G)/2,Te=Math.min(se-S,P.size);while(Te>0){let ce=null,me=-1,he=null;for(let[Ie,Ne]of P){let Pe=Ie.indexOf("-"),Oe=parseInt(Ie.slice(0,Pe),10),De=parseInt(Ie.slice(Pe+1),10),Ee=Math.abs((Oe+De)/2-ue);if(Ee>me)me=Ee,ce=Ie,he=Ne[1]}if(ce)he.abort(),P.delete(ce);Te--}let Le=S-P.size;if(ve.length>Le)ve.sort((ce,me)=>{let he=Math.abs((ce.start+ce.end)/2-ue),Ie=Math.abs((me.start+me.end)/2-ue);return he-Ie}),ve.length=Math.max(0,Le)}}if(ve.length===0){if(Ce.length>0)await Promise.all(Ce);return}for(let se of ve){let ue=de(se.start,se.end),Te=new AbortController,Le=(async()=>{F.push(se),u=!0,y=void 0,Z();try{let ce=se.end-se.start+1,me={offset:se.start,limit:ce,cursor:se.start===V?R:void 0,signal:Te.signal},he=await t.read(me);if(E(he.items,se.start,he.total),he.cursor)R=he.cursor,V=se.start+he.items.length;let Ie=se.start+he.items.length;if(Ie>=B){if(B=Ie,he.hasMore!==void 0)h=he.hasMore;else if(he.total!==void 0)h=Ie<he.total}}catch(ce){if(ce?.name==="AbortError")return;y=ce instanceof Error?ce:Error(String(ce)),w?.(y,se)}finally{P.delete(ue);let ce=F.findIndex((me)=>me.start===se.start&&me.end===se.end);if(ce>=0)F.splice(ce,1);u=P.size>0,Z()}})();P.set(ue,[Le,Te]),Ce.push(Le)}await Promise.all(Ce)},j=async(x,G)=>{if(g.isRangeLoaded(x,G))return;await oe(x,G)},xe=async()=>{if(!t)return;await oe(0,c-1)},z=async()=>{if(!t||u||!h)return!1;let x=g.getCachedCount(),G=g.getTotal(),Y=x,J=Math.min(Y+c-1,G>0?G-1:Y+c-1);if(Y>=G&&G>0)return h=!1,!1;return await oe(Y,J),g.getCachedCount()>x},ne=async()=>{if(g.clear(),b.clear(),K)K.clear();D(),F=[],u=!1,R=void 0,V=void 0,h=!0,B=0,y=void 0,U(),Z()},ae=(x,G)=>{if(g.evictDistant(x,G)>0)te()},pe=()=>{g.clear(),b.clear(),R=void 0,V=void 0,y=void 0,F=[],u=!1,U(),Z()},be=()=>{if(g.reset(),b.clear(),K)K.clear();R=void 0,V=void 0,h=!0,B=0,y=void 0,F=[],u=!1,U(),Z()};if(r&&r.length>0)E(r,0,o??r.length);else if(o!==void 0)g.setTotal(o),U(),Z();return{getState:_,getTotal:re,getCached:d,getIsLoading:p,getHasMore:A,getStorage:W,getPlaceholders:l,getItem:v,getItemById:I,getIndexById:T,isItemLoaded:H,getItemsInRange:n,setTotal:a,setItems:E,updateItem:C,insertItem:N,removeItem:Q,loadRange:oe,ensureRange:j,loadInitial:xe,loadMore:z,reload:ne,evictDistant:ae,clear:pe,reset:be}};var Wt=0,Ut=1000,Yt=15,Zt=!0,qt=16,Xt=!0,_e=2,jt="scroll",Jt=350,Qt=12,en=(e)=>{if(typeof e!=="object"){let t=e??_e;return{top:t,right:t,bottom:t,left:t}}return{top:e.top??_e,right:e.right??_e,bottom:e.bottom??_e,left:e.left??_e}},kt=(e,t,r={},o="vlist",s=!1,i,c,S)=>{let L=navigator.userAgentData?.platform||navigator.platform+navigator.userAgent,k=r.platform?r.platform==="windows":!/Mac|Android/i.test(L),{autoHide:m=!k,autoHideDelay:O=Ut,minThumbSize:w=Yt,showOnHover:g=Zt,showOnViewportEnter:K=Xt,clickBehavior:f=jt}=r,b=f==="page"?"scroll":f,u=i??e,y=en(r.padding),h=s?y.left:y.top,R=s?y.right:y.bottom,V=s?y.bottom:y.right,F=r.hoverZoneWidth??V+qt,B=!0,P=0,D=0,Z=0,U=0,te=!1,X=!1,ye=0,de=0,re=0,d=null,p=!1,A=null,_=null,W=-1,l=-1,v=-1,I=-1,T=-1,H=e.id?"":(()=>{let M;do M=`${o}-scrollport-${++Wt}`;while(document.getElementById(M));return e.id=M,M})(),n=0,a=0,E=null,C=null,N=null,Q=s?"width":"height",oe=s?"translateX":"translateY",j=s?(M)=>M.clientX:(M)=>M.clientY,xe=s?"left":"top",z=document.createElement("div"),ne=document.createElement("div"),ae=document.createElement("div"),pe=s?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",be=()=>{if(u===e)return;let M=e.offsetTop;z.style[s?"left":"top"]=M?`calc(var(${pe}) + ${M}px)`:`var(${pe})`,ae.style[s?"left":"top"]=`${M}px`},x=()=>{if(z.className=`${o}-scrollbar`,z.setAttribute("role","scrollbar"),z.setAttribute("aria-controls",e.id),z.setAttribute("aria-orientation",s?"horizontal":"vertical"),z.setAttribute("aria-label",e.getAttribute("aria-label")||"Scroll"),z.setAttribute("aria-valuemin","0"),z.tabIndex=0,ne.className=`${o}-scrollbar__thumb`,s)z.classList.add(`${o}-scrollbar--horizontal`);if(r.padding!==void 0)u.style.setProperty("--vlist-custom-scrollbar-padding-top",`${y.top}px`),u.style.setProperty("--vlist-custom-scrollbar-padding-right",`${y.right}px`),u.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${y.bottom}px`),u.style.setProperty("--vlist-custom-scrollbar-padding-left",`${y.left}px`);if(r.minThumbSize!==void 0)z.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${w}px`);if(z.appendChild(ne),u.appendChild(z),ae.className=`${o}-scrollbar__hover`,s)ae.classList.add(`${o}-scrollbar__hover--horizontal`),ae.style.height=`${F}px`;else ae.style.width=`${F}px`;if(u.appendChild(ae),u!==e)be()},G=()=>{if(d)clearTimeout(d),d=null},Y=()=>{if(!m)return;G(),d=setTimeout(le,O)},J=()=>{if(!B||P<=D)return;if(G(),!p)z.classList.add(`${o}-scrollbar--visible`),p=!0;if(m&&!te&&!X&&document.activeElement!==z)Y()},le=()=>{if(te||X||document.activeElement===z)return;z.classList.remove(`${o}-scrollbar--visible`),p=!1},ge=(M,q)=>{if(P=M,D=q,be(),ve(re),!B||P<=D){z.style.display="none",z.classList.remove(`${o}-scrollbar--visible`),p=!1;return}z.style.display="";let ee=Math.max(0,D-h-R),ie=D/P;if(Z=Math.max(w,ie*ee),ne.style[Q]=`${Z}px`,U=ee-Z,ve(re),!m)J()},ve=(M)=>{let q=Math.max(0,P-D);if(re=Math.max(0,Math.min(M,q)),W!==q)W=q,z.setAttribute("aria-valuemax",String(q));if(l!==re)l=re,z.setAttribute("aria-valuenow",String(re));let ee=c?.(),ie=ee?.getTotal()??0,fe=ie?ee.indexAtOffset(re)+1:0;if(fe!==v||ie!==I)v=fe,I=ie,z.setAttribute("aria-valuetext",`Row ${fe} of ${ie}`);if(q<=0||U<=0)return;let Me=re/q*U;if(Me!==T)T=Me,ne.style.transform=`${oe}(${Me}px)`},Ce=(M)=>{if(!B||M.target!==z||document.activeElement!==z)return;if(M.stopPropagation(),M.altKey||M.ctrlKey||M.metaKey)return;let q=c?.(),ee=q?.getSize(q.indexAtOffset(re))??40,ie=re;switch(M.key){case(s?"ArrowLeft":"ArrowUp"):ie-=ee;break;case(s?"ArrowRight":"ArrowDown"):ie+=ee;break;case"PageUp":ie-=D;break;case"PageDown":ie+=D;break;case"Home":ie=0;break;case"End":ie=P;break;default:return}M.preventDefault(),t(Math.max(0,Math.min(ie,Math.max(0,P-D)))),J()},se=(M)=>{if(M.target===ne||b!=="jump"||U<=0)return;let q=P-D,ee=z.getBoundingClientRect(),ie=j(M)-ee[xe],fe=Math.max(0,Math.min(ie-Z/2,U));t(fe/U*q),J()},ue=()=>{if(E!==null)clearTimeout(E),E=null;if(C!==null)cancelAnimationFrame(C),C=null;N=null},Te=(M)=>{let q=U>0?a/M*U:0;if(n<q)return-1;if(n>=q+Z)return 1;return 0},Le=()=>{let M=P-D,q=Te(M);if(q===0){ue();return}if(q===-1){if(a<=0){ue();return}let ee=Math.max(0,a-D);a=ee,t(ee)}else{if(a>=M){ue();return}let ee=Math.min(M,a+D);a=ee,t(ee)}J()},ce=(M)=>{if(N===null){N=M,C=requestAnimationFrame(ce);return}let q=P-D,ee=M-N;N=M;let ie=Te(q);if(ie===0){ue();return}let fe=Qt*D/1000,Me=Math.min(fe*ee,D);if(ie===-1){if(a<=0){ue();return}let Ae=Math.max(0,a-Me);a=Ae,t(Ae)}else{if(a>=q){ue();return}let Ae=Math.min(q,a+Me);a=Ae,t(Ae)}G(),C=requestAnimationFrame(ce)},me=(M)=>{if(M&&M.pointerId!==A)return;let q=A,ee=_;if(A=null,_=null,te=!1,z.classList.remove(`${o}-scrollbar--dragging`),ue(),q!==null&&ee?.hasPointerCapture(q))ee.releasePointerCapture(q);Y()},he=(M)=>{if(!B||M.button!==0||A!==null||U<=0)return;if(M.preventDefault(),M.stopPropagation(),A=M.pointerId,te=M.target===ne,_=te?ne:M.currentTarget,_.setPointerCapture(A),G(),te)ye=j(M),de=re,z.classList.add(`${o}-scrollbar--dragging`);else if(b==="jump")se(M);else n=j(M)-z.getBoundingClientRect()[xe],a=re,Le(),E=setTimeout(()=>{C=requestAnimationFrame(ce)},Jt);J()},Ie=(M)=>{if(!te||M.pointerId!==A)return;M.stopPropagation();let q=j(M)-ye,ee=Math.max(0,P-D),ie=Math.max(0,Math.min(de+q/U*ee,ee));ve(ie),t(ie)},Ne=()=>{if(K)J()},Pe=()=>{if(!te){if(X=!1,m)Y()}},Oe=()=>{X=!0,G(),J()},De=()=>{if(X=!1,!te&&m)Y()},Ee=["width","radius","thumb-color","track-color"],Ke=(M,q)=>u.style.setProperty(`--vlist-custom-scrollbar-${M}`,q),$e=Ee.map((M)=>u.style.getPropertyValue(`--vlist-custom-scrollbar-${M}`)),Je=$e.slice(0,2),Qe=[],et=()=>{for(let fe=0;fe<2;fe++){let Me=Ee[fe],Ae=u.style.getPropertyValue(`--vlist-custom-scrollbar-${Me}`);if(Ae!==Qe[fe])Je[fe]=Ae;Ke(Me,Je[fe])}let M=getComputedStyle(S??u),q=r.width??M.getPropertyValue("scrollbar-width"),ee=M.getPropertyValue("scrollbar-color").match(/[\w-]+\([^)]*\)|\S+/g);B=r.enabled!==!1&&q!=="none";let ie=[typeof r.width==="number"?`${r.width}px`:M.getPropertyValue("--vlist-custom-scrollbar-width").trim()||(q==="thin"||!k?"6px":"14px"),typeof r.radius==="number"?`${r.radius}px`:M.getPropertyValue("--vlist-custom-scrollbar-radius").trim()||(k?"0px":"4px"),r.thumbColor??(ee?.length===2?ee[0]:$e[2]),r.trackColor??(ee?.length===2?ee[1]:$e[3])];for(let fe=0;fe<Ee.length;fe++)Ke(Ee[fe],ie[fe]);if(Qe=ie.slice(0,2),ae.style.display=B?"":"none",e.classList.toggle(`${o}-viewport--gutter`,B&&!!r.gutter),!B)me();ge(P,D)},wt=()=>{G(),ue(),me(),G();for(let M of tt)M();for(let M=0;M<Ee.length;M++)Ke(Ee[M],$e[M]);if(e.classList.remove(`${o}-viewport--gutter`),ae.remove(),u.style.removeProperty("--vlist-custom-scrollbar-padding-top"),u.style.removeProperty("--vlist-custom-scrollbar-padding-right"),u.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),u.style.removeProperty("--vlist-custom-scrollbar-padding-left"),z.remove(),H&&e.id===H)e.removeAttribute("id")};x();let tt=[],Se=(M,q,ee)=>{M.addEventListener(q,ee),tt.push(()=>M.removeEventListener(q,ee))};for(let M of[z,ne,ae])Se(M,"pointerdown",he),Se(M,"pointermove",Ie),Se(M,"pointerup",me),Se(M,"pointercancel",me),Se(M,"lostpointercapture",me);if(Se(z,"keydown",Ce),Se(z,"focus",J),Se(z,"blur",Y),Se(e,"mouseenter",Ne),Se(e,"mouseleave",Pe),Se(z,"mouseenter",Oe),Se(z,"mouseleave",De),g)Se(ae,"mouseenter",Oe),Se(ae,"mouseleave",De);return et(),{refresh:et,show:J,hide:le,updateBounds:ge,updatePosition:ve,isVisible:()=>p,destroy:wt}};function tn(e){let t=0,r=0,o=0;function s(){return o>0?r/o:0}function i(L){if(t=L,L>0.1&&L<50)r+=L,o++}function c(){let L=e.getTotal();if(L===0)return 0;let k=e.getItemSize();if(k<=0)return 0;let m=e.getContainerSize();if(m<=0)return 0;let O=e.getScrollPosition(),w=typeof e.getColumns==="function"?e.getColumns():1,g=Math.ceil(L/w),K=Math.max(0,g*k-m),f=Math.max(0,Math.min(O,K)),b=Math.ceil((f+m)/k);return Math.min(b*w,L)}function S(){let L=e.getTotal(),k=c();return{progress:L>0?Math.min(100,Math.max(0,k/L*100)):0,velocity:t,velocityAvg:s(),itemCount:k,total:L}}return{getState:S,onVelocity:i}}export{it as buildLayoutItems,Xe as calculateMissingRanges,yt as clearSelection,Ht as createAsyncManager,Rt as createEmitter,mt as createGridLayout,ut as createGroupLayout,lt as createGroupedSizeFn,Lt as createMasonryLayout,Et as createMasonryRenderer,Be as createPlaceholderManager,kt as createScrollbar,bt as createSelectionState,At as createSizeCache,Ve as createSparseStorage,tn as createStats,ct as createStickyHeader,pt as createTableHeader,ft as createTableLayout,It as createTableRenderer,qe as deselectItems,je as filterPlaceholders,xt as getSelectedIds,vt as getSelectedItems,dt as isGroupHeader,Re as isPlaceholderItem,St as isSelected,Fe as mergeRanges,ht as selectAll,Ze as selectItems,gt as toggleSelection};
|
|
1
|
+
var nt="x",rt=20,We="_isPlaceholder",ke="__placeholder_";function He(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let r=0;r<t.length;r++)t[r].setAttribute("tabindex","-1");e._stamp=0}var we={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},_t=(e)=>e.headerLayoutIndex,Pt=(e)=>e.firstDataIndex,at=(e,t,r)=>{let o=0,s=e.length-1;while(o<s){let a=o+s+1>>>1;if(t(e[a])<=r)o=a;else s=a-1}return o},Ue=(e,t)=>at(e,_t,t),ot=(e,t)=>at(e,Pt,t),st=(e,t,r)=>{if(e===0)return[];let o=[],s=null,a=0,l=0;for(let S=0;S<e;S++){let I=r?.(S);if(!I)continue;let k=t(S,I);if(s===null)s=k,a=0;else if(k!==s){let f=S-a;o.push({key:s,groupIndex:o.length,headerLayoutIndex:l,firstDataIndex:a,count:f}),l=l+1+f,s=k,a=S}}if(s!==null)o.push({key:s,groupIndex:o.length,headerLayoutIndex:l,firstDataIndex:a,count:e-a});return o},it=(e,t)=>{if(e.length===0||t.length===0)return[];let r=e.length+t.length,o=Array(r),s=0;for(let a of t){o[s]={id:`__group_header_${a.groupIndex}`,__groupHeader:!0,groupKey:a.key,groupIndex:a.groupIndex},s++;for(let l=0;l<a.count;l++)o[s]=e[a.firstDataIndex+l],s++}return o},lt=(e,t,r=!1)=>{let o=typeof t==="number"?(s)=>t:t;return(s)=>{let a=e.getEntry(s);if(a.type==="header"){if(r&&a.group.groupIndex===0)return 0;return e.getHeaderHeight(a.group.groupIndex)}return o(a.dataIndex)}},ut=(e,t,r)=>{let o=st(e,t.getGroupForIndex,r),s=e+o.length,a=t.header?.height??t.header?.width??t.headerHeight,l=typeof a==="number"?(p)=>a:(p)=>{let y=o[p];if(!y)return 0;return a(y.key,p)},S={type:"header",group:we},I={type:"item",dataIndex:0,group:we};return{get totalEntries(){return s},get groupCount(){return o.length},get groups(){return o},getEntry:(p)=>{if(o.length===0)return I.dataIndex=p,I.group=we,I;let y=Ue(o,p),i=o[y];if(p===i.headerLayoutIndex)return S.group=i,S;let g=p-i.headerLayoutIndex-1;return I.dataIndex=i.firstDataIndex+g,I.group=i,I},layoutToDataIndex:(p)=>{if(o.length===0)return p;let y=Ue(o,p),i=o[y];if(p===i.headerLayoutIndex)return-1;let g=p-i.headerLayoutIndex-1;return i.firstDataIndex+g},dataToLayoutIndex:(p)=>{if(o.length===0)return p;let y=ot(o,p),i=o[y],g=p-i.firstDataIndex;return i.headerLayoutIndex+1+g},getGroupAtLayoutIndex:(p)=>{if(o.length===0)return we;let y=Ue(o,p);return o[y]},getGroupAtDataIndex:(p)=>{if(o.length===0)return we;let y=ot(o,p);return o[y]},getHeaderHeight:l,rebuild:(p,y)=>{o=st(p,t.getGroupForIndex,y??r),s=p+o.length}}};var Ot=(e,t,r,o,s=0)=>{let a=r?"width":"height",l=document.createElement("div");return l.className=`${t}-sticky-header`,l.setAttribute("role","presentation"),l.setAttribute("aria-hidden","true"),l.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(r?`position:absolute;top:0;bottom:0;left:${s||0}px`:`position:relative;top:${s||0}px`),l.style[a]=`${o}px`,e.insertBefore(l,e.firstChild),l},ct=(e,t,r,o,s,a=!1,l=0,S,I)=>{let k=a?"width":"height",f=a?"height":"width",R=a?"X":"Y",P=(n,c)=>{n.style[k]=`${c}px`},h=S??Ot(e,s,a,0,l),U=()=>{let n=document.createElement("div");return n.className="sticky-group",n.style.position="absolute",n.style.willChange="transform",n.style[f]="100%",n},p=U(),y=U();h.append(p,y);let i=p,g=y,x=t.groups,H=[],N=[],B=0,V=()=>{x=t.groups,B=x.length,H=Array(B),N=Array(B);for(let n=0;n<B;n++)H[n]=I?I(x[n].headerLayoutIndex):r.getOffset(x[n].headerLayoutIndex),N[n]=t.getHeaderHeight(n)};V();let _=-1,z=0,Y=-1,W=!1,j=0,J=!1,ye=(n,c)=>{o(n,c);let A=N[c];return P(n,A),A},me=(n)=>{n.replaceChildren(),n.style.transform=""},oe=(n)=>{if(n===_)return;if(_=n,z=0,n<0||n>=B){me(i);return}z=ye(i,n),P(h,z),i.style.transform=""},m=(n)=>{if(n===j)return;j=n;let c=Math.round(n);i.style.transform=`translate${R}(${c}px)`,g.style.transform=`translate${R}(${c+z}px)`},b=()=>{j=0,i.style.transform="",g.style.transform=""},E=()=>{if(!J)return;let n=i;i=g,g=n,_=Y,z=_>=0?N[_]:0,P(h,z),me(g),Y=-1,J=!1,b()},w=()=>{if(!J)return;me(g),Y=-1,J=!1,b()},u=!!S,d=()=>{if(W)return;if(W=!0,u)h.style.visibility="";else h.style.display=""},M=()=>{if(!W)return;if(W=!1,u)h.style.visibility="hidden";else h.style.display="none";me(i),_=-1,z=0,w()},O=(n)=>{if(B===0){if(J)w();if(!W)d();oe(-1);return}if(n<H[0]){M();return}let c=0,A=B-1;while(c<A){let K=c+A+1>>>1;if(H[K]+N[K]<=n)c=K;else A=K-1}if(!W)d();oe(c);let L=c+1;if(L<B){let K=H[L]-n;if(K<=0&&K>-z){if(Y!==L||!J)Y=L,ye(g,L),J=!0;m(K)}else if(K<=-z){if(J)E()}else if(J)w()}else if(J)w()},T=()=>{V();let n=_;if(_=-1,z=0,n>=0)oe(n)},D=()=>{h.remove(),_=-1,z=0,Y=-1,W=!1,J=!1};if(!S)h.style.display="none";return{update:O,refresh:T,show:d,hide:M,destroy:D}};var dt=(e)=>e!==null&&typeof e==="object"&&e.__groupHeader===!0;var mt=(e)=>{let t=Math.max(1,Math.floor(e.columns)),r=e.gap??0,o=e.isHeaderFn,s={row:0,col:0},a=(p)=>{if(p<=0)return 0;if(!o)return Math.ceil(p/t);let y=0,i=0,g=0;for(let x=0;x<p;x++)if(o(x)){if(g++,i)y++,i=0;y++,i=0}else if(i++,i>=t)y++,i=0;if(i)y++;return y},l=(p)=>(s.row=S(p),s.col=I(p),s),S=(p)=>{if(!o)return Math.floor(p/t);let y=0,i=0;for(let g=0;g<=p;g++)if(o(g)){if(i)y++,i=0;if(g===p)return y;y++,i=0}else{if(g===p)return y;if(i++,i>=t)y++,i=0}return y},I=(p)=>{if(!o)return p%t;if(o(p))return 0;let y=0;for(let i=0;i<=p;i++)if(o(i))y=0;else{if(i===p)return y;if(y++,y>=t)y=0}return y},k=(p,y,i,g)=>{if(i<=0){g.start=0,g.end=-1;return}if(!o){g.start=Math.max(0,p*t),g.end=Math.min(i-1,(y+1)*t-1);return}let x=f(p,y,i);g.start=x.start,g.end=x.end},f=(p,y,i)=>{if(i<=0)return{start:0,end:-1};if(!o){let B=Math.max(0,p*t),V=Math.min(i-1,(y+1)*t-1);return{start:B,end:V}}let g=-1,x=-1,H=0,N=0;for(let B=0;B<i;B++){if(o(B)){if(N)H++,N=0;if(H>=p&&H<=y){if(g<0)g=B;x=B}H++,N=0}else{if(H>=p&&H<=y){if(g<0)g=B;x=B}if(N++,N>=t)H++,N=0}if(H>y&&!N)break}if(g<0)return{start:0,end:-1};return{start:g,end:x}},R=(p,y,i)=>{if(y<0||y>=t)return-1;let g=p*t+y;if(g<0||g>=i)return-1;return g},P=(p)=>{let y=(t-1)*r;return Math.max(0,(p-y)/t)};return{get columns(){return t},get gap(){return r},update:(p)=>{if(p.columns!==void 0)t=Math.max(1,Math.floor(p.columns));if(p.gap!==void 0)r=p.gap;if(p.isHeaderFn!==void 0)o=p.isHeaderFn},getTotalRows:a,getPosition:l,getRow:S,getCol:I,getItemRange:f,fillItemRange:k,getItemIndex:R,getColumnWidth:P,getColumnOffset:(p,y)=>{let i=P(y);return p*(i+r)}}};var ft=(e,t=50,r=1/0,o=!0,s="none")=>{let a=e,l=[],S=0,I=0,k=()=>{l=a.map((x,H)=>({def:x,index:H,width:0,minWidth:Math.max(1,x.minWidth??t),maxWidth:x.maxWidth??r,resizable:x.resizable??o,offset:0}))},f=()=>{if(s==="none"||S<=0||S>=I)return;if(s==="spacer"){S=I;return}let x=I-S,H=S;for(let N=0;N<l.length;N++){let B=l[N];B.width=ze(B.width+x*(B.width/H),B.minWidth,B.maxWidth)}P()},R=(x)=>{I=x;let H=0,N=0;for(let B=0;B<l.length;B++){let V=l[B],_=V.def;if(_.width!==void 0)V.width=ze(_.width,V.minWidth,V.maxWidth),H+=V.width;else N++}if(N){let V=Math.max(0,x-H)/N;for(let _=0;_<l.length;_++){let z=l[_];if(z.def.width===void 0)z.width=ze(V,z.minWidth,z.maxWidth)}}P(),f()},P=()=>{let x=0;for(let H=0;H<l.length;H++){let N=l[H];N.offset=x,x+=N.width}S=x},h=(x,H)=>{let N=l[x];if(!N)return 0;if(N.resizable){if(N.width=ze(H,N.minWidth,N.maxWidth),P(),s==="spacer")f()}return N.width},U=(x)=>l[x],p=(x)=>{for(let H=0;H<l.length-1;H++)if(x<l[H].offset+l[H].width)return l[H];return l[l.length-1]},y=(x)=>l[x]?.offset??0,i=(x)=>l[x]?.width??0,g=(x)=>{a=x,k()};return k(),{get columns(){return l},get totalWidth(){return S},resolve:R,updateColumns:g,resizeColumn:h,getColumn:U,getColumnAtX:p,getColumnOffset:y,getColumnWidth:i}},ze=(e,t,r)=>Math.min(r,Math.max(t,e));var Dt=0,$t=(e,t="asc")=>Array.isArray(e)?e.map((r)=>({key:r.key,direction:r.direction})):typeof e==="string"?[{key:e,direction:t}]:e?.key?[{key:e.key,direction:e.direction??"asc"}]:[],Ye=(e,t,r)=>{if(r)e.setAttribute(t,r);else e.removeAttribute(t)},pt=(e,t,r,o,s,a,l=!1)=>{let S=document.createElement("div");S.setAttribute("role","rowgroup");let I=document.createElement("div");I.className=`${r}-table-header`,I.setAttribute("role","row"),I.setAttribute("aria-rowindex","1"),I.style.height=`${t}px`;let k=document.createElement("div");k.className=`${r}-table-header-scroll`,k.setAttribute("role","presentation"),I.appendChild(k),S.appendChild(I),e.insertBefore(S,e.firstChild),e.style.setProperty("--vlist-table-header-height",`${t}px`);let f=k.children,R=[],P=null,h=null,U=!1,p=-1,y=0,i=0,g=0,x=(u)=>{for(let d=0;d<f.length;d++)f[d].tabIndex=d===u?0:-1;g=u},H=(u)=>{let d=u?.closest("[data-column-key]");return d?Array.prototype.indexOf.call(f,d):-1},N=(u,d)=>{let M=document.createElement("div");M.className=`${r}-table-header-cell`,M.setAttribute("role","columnheader"),M.setAttribute("aria-colindex",String(d+1)),M.tabIndex=d?-1:0,M.dataset.columnKey=u.def.key;let O=u.def.align;if(O==="center"||O==="right")M.classList.add(`${r}-table-header-cell--${O}`);let T=document.createElement("div");T.className=`${r}-table-header-content`;let D=u.def.header?u.def.header(u.def):u.def.label;if(typeof D==="string")T.textContent=D;else T.appendChild(D);if(M.appendChild(T),u.def.sortable){let n=document.createElement("span");n.className=`${r}-table-header-sort`,n.setAttribute("aria-hidden","true"),M.appendChild(n),M._sort=n,M.classList.add(`${r}-table-header-cell--sortable`)}if(u.resizable){let n=document.createElement("div");n.className=`${r}-table-header-resize`,n.dataset.resizeIndex=String(d),M.appendChild(n)}return M},B=(u)=>{P=u,k.textContent="",g=0;let d=u.columns;for(let M=0;M<d.length;M++)k.appendChild(N(d[M],M));if(V(u),R.length)_(R)},V=(u)=>{P=u;let d=u.columns;k.style.width=`${u.totalWidth}px`;for(let M=0;M<f.length&&M<d.length;M++)f[M].style.width=`${d[M].width}px`},_=(u,d="asc")=>{if(R=$t(u,d),!P)return;let M=P.columns,O=R.length>1,T="";if(O){let n=[];for(let c=0;c<R.length;c++){let A=R[c],L=M.find((K)=>K.def.key===A.key)?.def.label;n.push(`${(typeof L==="string"?L:L?.textContent)||A.key} ${A.direction==="asc"?"ascending":"descending"}`)}if(T=`sorted by ${n.join(", then ")}`,!h)h=document.createElement("div"),h.id=`${r}-table-live-${++Dt}`,h.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",h.setAttribute("aria-live","polite"),S.appendChild(h);h.textContent=T}else if(h)h.textContent="";let D=(n,c)=>{Ye(n,"aria-description",c&&T),Ye(n,"aria-describedby",c&&h.id)};D(I,O);for(let n=0;n<f.length&&n<M.length;n++){let c=f[n],A=c._sort;if(!A)continue;let L=R.findIndex((ne)=>ne.key===M[n].def.key),K=R[L];if(A.textContent=K?K.direction==="asc"?"▲":"▼":"",A.style.opacity=K?"0.7":"0",K&&O)A.dataset.sortPriority=String(L+1);else delete A.dataset.sortPriority;Ye(c,"aria-sort",L===0&&(K.direction==="asc"?"ascending":"descending")),D(c,L>0)}},z=(u)=>{k.style.transform=`translateX(${-u}px)`},Y=(u)=>{let d=u.target;if(!d.dataset.resizeIndex)return;u.preventDefault(),u.stopPropagation(),p=+d.dataset.resizeIndex;let M=P?.getColumn(p);if(!M?.resizable)return;U=!0,y=u.clientX,i=M.width,e.classList.add(`${r}--col-resizing`),e.style.cursor="col-resize",d.classList.add(`${r}-table-header-resize--active`),d.setPointerCapture(u.pointerId),d.addEventListener("pointermove",W),d.addEventListener("pointerup",j),d.addEventListener("pointercancel",j)},W=(u)=>{if(!U||!P)return;let d=u.clientX-y;if(Math.abs(d)<1)return;o(p,Math.max(0,i+d))},j=(u)=>{if(!U)return;let d=u.target;d.removeEventListener("pointermove",W),d.removeEventListener("pointerup",j),d.removeEventListener("pointercancel",j);try{d.releasePointerCapture(u.pointerId)}catch{}d.classList.remove(`${r}-table-header-resize--active`),e.classList.remove(`${r}--col-resizing`),e.style.cursor="",U=!1,p=-1},J=(u,d,M)=>{if(!u?.def.sortable||!s)return!1;let O=u.def.key,T=R.findIndex((D)=>D.key===O);if(M&&l){let D=R[T]?.direction,n=D?D==="asc"?"desc":null:"asc",c=!D?[...R,{key:O,direction:"asc"}]:n?R.map((A,L)=>L===T?{key:O,direction:n}:A):R.filter((A,L)=>L!==T);s({key:O,index:d,direction:n,sorts:c})}else{let D=R.length===1&&!T?R[0].direction:null,n=D?D==="asc"?"desc":null:"asc";s(R.length>1?{key:O,index:d,direction:n,sorts:n?[{key:O,direction:n}]:[]}:{key:O,index:d,direction:n})}return!0},ye=(u)=>{let d=u.target;if(d.dataset.resizeIndex||U||!P)return;let M=H(d);if(M===-1)return;let O=d.closest("a[href],button,input,select,textarea,[tabindex]");if(O&&O!==f[M])return;let T=P.columns[M];a?.({key:T.def.key,index:M,event:u}),J(T,M,u.shiftKey||u.ctrlKey||u.metaKey)},me=(u)=>{let d=H(u.target);if(d>=0)x(d)},oe=(u)=>{if(u<0||u>=f.length)return;x(u),f[u].focus()},m=(u)=>{let d=u.key,M=u.target.closest("a[href],button,input,select,textarea,[tabindex]");if(M&&!M.hasAttribute("data-column-key"))return;if(d==="ArrowRight"||d==="ArrowLeft"){let O=d==="ArrowRight"?1:-1;if(u.ctrlKey||u.metaKey){let T=P?.getColumn(g);if(T?.resizable)o(g,T.width+O*10),u.preventDefault()}else{let T=g+O;if(T>=0&&T<f.length)oe(T),u.preventDefault()}u.stopPropagation();return}if(d==="Home"||d==="End"){oe(d==="Home"?0:f.length-1),u.preventDefault(),u.stopPropagation();return}if(d==="Enter"||d===" "){if(J(P?.getColumn(g),g,u.shiftKey||u.ctrlKey||u.metaKey))u.preventDefault();u.stopPropagation();return}if(d==="ArrowDown")e.focus(),u.preventDefault(),u.stopPropagation()};return I.addEventListener("pointerdown",Y),I.addEventListener("click",ye),I.addEventListener("keydown",m),I.addEventListener("focusin",me),{element:I,update:V,updateSort:_,rebuild:B,show:()=>{I.style.display=""},hide:()=>{I.style.display="none"},destroy:()=>{I.removeEventListener("pointerdown",Y),I.removeEventListener("click",ye),I.removeEventListener("keydown",m),I.removeEventListener("focusin",me),e.style.removeProperty("--vlist-table-header-height"),h=null,S.remove(),R=[],P=null},syncScroll:z}};var Ge=(e,t,r)=>{if(String(r).startsWith(ke))return!1;let o=ke+t;if(e.has(o))return e.delete(o),e.add(r),!0;return!1},bt=(e)=>({selected:new Set(e??[]),focusedIndex:-1,focusVisible:!1}),Ze=(e,t,r)=>{if(r==="none")return e;let o=new Set(e.selected);if(r==="single"){if(o.clear(),t.length>0)o.add(t[0])}else for(let s of t)o.add(s);return{...e,selected:o}},qe=(e,t)=>{let r=new Set(e.selected);for(let o of t)r.delete(o);return{...e,selected:r}},gt=(e,t,r)=>{if(r==="none")return e;if(e.selected.has(t))return qe(e,[t]);else return Ze(e,[t],r)},ht=(e,t,r)=>{if(r!=="multiple")return e;return{...e,selected:new Set(t.map((o)=>o.id))}},yt=(e)=>({...e,selected:new Set});var St=(e,t)=>e.selected.has(t),xt=(e)=>Array.from(e.selected),vt=(e,t)=>{let r=[];for(let o of e.selected){let s=t(o);if(s)r.push(s)}return r};var Tt=["data-id","data-index","aria-selected","aria-rowindex","role"],zt=()=>{let e=[];return{acquire:()=>e.pop()||document.createElement("div"),release:(t)=>{if(t.remove(),e.length<200){t.className="";for(let r=0;r<Tt.length;r++)t.removeAttribute(Tt[r]);t.style.cssText="",t.textContent="",e.push(t)}},clear:()=>{e.length=0}}},It=(e,t,r,o,s,a,l,S,I,k=()=>0)=>{let f=zt(),R=new Map,P=-1,h=r,U=null,p=null,y=null,i=(n,c)=>{p=n,y=c},g=(n,c)=>{if(typeof c==="string")n.innerHTML=c;else n.replaceChildren(c)},x=(n)=>String(n).startsWith("__placeholder_"),H=`${s}-item ${s}-table-row`,N=`${s}-item--selected`,B=`${s}-item--focused`,V=`${s}-table-cell`,_=`${s}-table-cell-skeleton`,z=`${s}-item--odd`,Y=`${s}-item--placeholder`,W=`${s}-item--replaced`,j=`${s}-table-row ${s}-table-group-header`,J=`${s}-table-group-header-content`,ye=(n,c,A,L,K=!1)=>{if(A.def.cell)g(n,A.def.cell(c,A.def,L));else{let re=c[A.def.key],Q=re!=null?String(re):"";if(K&&Q)n.innerHTML=`<span>${Q}</span>`;else n.textContent=Q}if(K&&n.firstElementChild===null){n.replaceChildren();let re=document.createElement("span");re.className=_,n.appendChild(re)}He(n);let ne=n.parentElement;if(ne)ne._stamp=0},me=(n,c,A,L,K=!1)=>{let ne=H;if(S){let re=U?U(c):c;if(re>=0&&(re&1)===1)ne+=` ${z}`}if(K)ne+=` ${Y}`;if(A)ne+=` ${N}`;if(L)ne+=` ${B}`;n.className=ne},oe=(n,c,A,L,K=!1)=>{me(n.element,c,A,L,K),A?n.element.setAttribute("aria-selected","true"):n.element.removeAttribute("aria-selected"),n.lastSelected=A,n.lastFocused=L},m=(n,c)=>{n.element.setAttribute("data-id",String(c.id)),n._lastItem=c,n.lastItemId=c.id},b=(n,c,A,L,K,ne=!1)=>{let re=h.columns,Q=n.element.children;for(let fe=0;fe<Q.length&&fe<re.length;fe++)ye(Q[fe],A,re[fe],c,ne);m(n,A),oe(n,c,L,K,ne)},E=(n,c,A,L,K,ne,re)=>{let Q=f.acquire(),fe=ne.getSize(c),G=ne.getOffset(c)-re,ee={element:Q,index:c,isGroupHeader:A,_lastItem:n,lastItemId:n.id,lastSelected:!1,lastFocused:!1,lastOffset:G,lastHeight:fe};if(Q.style.cssText=`width:${h.totalWidth}px;height:${fe}px;transform:translateY(${G}px)`,Q.setAttribute("role",A?"presentation":"row"),Q.setAttribute("data-index",String(c)),A){let se=n;Q.className=j,m(ee,n);let de=document.createElement("div");if(de.className=J,y)g(de,y(se.groupKey,se.groupIndex));Q.appendChild(de),He(Q)}else{Q.id=`${a}-item-${c}`,Q.setAttribute("aria-rowindex",String(c+2));let se=h.columns;for(let de=0;de<se.length;de++){let Se=document.createElement("div"),v=se[de],F=v.def.align;Se.className=F==="center"||F==="right"?`${V} ${V}--${F}`:V,Se.style.cssText=`left:${v.offset}px;width:${v.width}px`,Se.setAttribute("role","gridcell"),Se.setAttribute("aria-colindex",String(de+1)),Q.appendChild(Se)}b(ee,c,n,L,K,x(n.id))}return ee},w=(n,c,A,L,K=k())=>{let ne=!1,re=l();if(re!==P)P=re,ne=!0;let Q=null,fe=t();U=typeof S==="string"&&I?I():null;for(let G=c.start;G<=c.end;G++){let ee=n[G-c.start];if(!ee)continue;let se=A.has(ee.id),de=G===L,Se=p?p(ee):!1,v=R.get(G),F=!!v;if(v&&v.isGroupHeader!==Se)f.release(v.element),R.delete(G),v=void 0;if(v){if(Se){if(v._lastItem!==ee){let le=ee,ge=v.element.firstElementChild;if(ge&&y)g(ge,y(le.groupKey,le.groupIndex)),He(v.element);m(v,ee)}}else{if(v._lastItem!==ee){let le=v.lastItemId!=null&&x(v.lastItemId),ge=x(ee.id);if(!ge&&Ge(A,G,ee.id))se=!0;if(b(v,G,ee,se,de,ge),le&&!ge)v.element.classList.add(W),setTimeout(()=>{v.element.classList.remove(W)},300)}else if(v.lastSelected!==se||v.lastFocused!==de)oe(v,G,se,de,x(ee.id));if(ne)v.element.setAttribute("aria-rowindex",String(G+2))}let Z=fe.getOffset(G)-K;if(v.lastOffset!==Z)v.lastOffset=Z,v.element.style.transform=`translateY(${Z}px)`;let X=fe.getSize(G);if(v.lastHeight!==X)v.lastHeight=X,v.element.style.height=`${X}px`}else{if(!F&&Ge(A,G,ee.id))se=!0;let Z=E(ee,G,Se,se,de,fe,K);if(R.set(G,Z),!Q)Q=document.createDocumentFragment();Q.appendChild(Z.element)}}if(Q)e.appendChild(Q);for(let[G,ee]of R)if(G<c.start||G>c.end)f.release(ee.element),R.delete(G)},u=(n,c,A,L)=>{let K=R.get(n);if(!K||K.isGroupHeader)return;b(K,n,c,A,L)},d=(n,c,A)=>{let L=R.get(n);if(!L||L.isGroupHeader)return;if(L.lastSelected!==c||L.lastFocused!==A)oe(L,n,c,A)},M=(n)=>{h=n;let c=n.columns;for(let[,A]of R)if(A.element.style.width=`${n.totalWidth}px`,!A.isGroupHeader){let L=A.element.children;for(let K=0;K<L.length&&K<c.length;K++){let ne=L[K],re=c[K];ne.style.left=`${re.offset}px`,ne.style.width=`${re.width}px`}}},O=(n)=>R.get(n)?.element,T=()=>{for(let[,n]of R)f.release(n.element);R.clear(),P=-1};return{render:w,updateItem:u,updateItemClasses:d,getElement:O,updateColumnLayout:M,setGroupHeaderFn:i,clear:T,destroy:()=>{T(),f.clear()}}};var Lt=(e)=>{let t=Math.max(1,Math.floor(e.columns)),r=e.gap??0,o=e.containerSize,s=e.crossOffset??0,a=e.mainOffset??0,l=0,S=[],I=()=>{let i=(t-1)*r;l=Math.max(0,(o-i)/t),S=Array(t);let g=l+r;for(let x=0;x<t;x++)S[x]=s+x*g};I();let k=[],f=0,R=[],P=(i,g)=>{if(i<=0)return f=0,k=[],[];let x=Array(t).fill(a),H=Array(t);for(let V=0;V<t;V++)H[V]=[];let N=Array(i);for(let V=0;V<i;V++){let _=0,z=x[0];for(let j=1;j<t;j++){let J=x[j];if(J<z)z=J,_=j}let Y=g(V),W=x[_];N[V]={index:V,x:S[_],y:W,lane:_,size:Y,crossSize:l},H[_].push(V),x[_]=W+Y+r}k=H;let B=0;for(let V=0;V<t;V++){let _=x[V],z=_>0?_-r:0;if(z>B)B=z}return f=B,N},h=(i)=>{if(i.length===0)return f;if(f)return f;let g=Array(t).fill(0);for(let H of i){let N=H.y+H.size,B=g[H.lane];if(N>B)g[H.lane]=N}let x=0;for(let H=0;H<t;H++)if(g[H]>x)x=g[H];return x},U=(i,g,x)=>{if(i.length===0||x<=g)return R.length=0,R;if(k.length===0||k.length!==t)return p(i,g,x);R.length=0;for(let H=0;H<t;H++){let N=k[H],B=N.length;if(!B)continue;let V=0,_=B;while(V<_){let z=V+_>>>1,Y=i[N[z]];if(Y.y+Y.size<=g)V=z+1;else _=z}for(let z=V;z<B;z++){let Y=i[N[z]];if(Y.y>=x)break;R.push(Y)}}return R},p=(i,g,x)=>{R.length=0;for(let H of i)if(H.y+H.size>g&&H.y<x)R.push(H);return R};return{get columns(){return t},get gap(){return r},get containerSize(){return o},update:(i)=>{let g=!1;if(i.columns!==void 0){let x=Math.max(1,Math.floor(i.columns));if(x!==t)t=x,g=!0}if(i.gap!==void 0&&i.gap!==r)r=i.gap,g=!0;if(i.containerSize!==void 0&&i.containerSize!==o)o=i.containerSize,g=!0;if(i.crossOffset!==void 0&&i.crossOffset!==s)s=i.crossOffset,g=!0;if(i.mainOffset!==void 0&&i.mainOffset!==a)a=i.mainOffset,g=!0;if(g)I()},calculateLayout:P,getTotalSize:h,getVisibleItems:U}};var Ct=(e,t,r)=>{let o=Array.from(t).sort((l,S)=>l-S);if(o.length<=1)return;let s=[];for(let l=0;l<o.length;l++){let S=r(o[l]);if(S)s.push(S)}if(s.length<=1)return;let a=e.firstChild;for(let l=0;l<s.length;l++){let S=s[l];if(S===a)a=a.nextSibling;else e.insertBefore(S,a)}};var Gt=(e=200)=>{let t=[];return{acquire:()=>{let a=t.pop();if(a)return a;let l=document.createElement("div");return l.setAttribute("role","option"),l},release:(a)=>{if(a.remove(),t.length<e)a.className="",a.textContent="",a.removeAttribute("style"),a.removeAttribute("data-index"),a.removeAttribute("data-id"),a.removeAttribute("data-lane"),t.push(a)},clear:()=>{t.length=0}}},Ft=1,Et=(e,t,r,o=!1,s,a,l,S,I=()=>0)=>{let k=Gt(),f=new Map,R=new Set,P=0,h="",U=-1,p=!1,y={selected:!1,focused:!1},i=(m,b)=>(y.selected=m,y.focused=b,y),g=`${r}-item ${r}-masonry-item`,x=`${r}-group-header`,H=`${r}-item--selected`,N=`${r}-item--focused`,B=(m,b)=>{if(typeof b==="string")m.innerHTML=b;else m.replaceChildren(b);He(m)},V=(m,b,E)=>{m.classList.toggle(H,b),m.classList.toggle(N,E)},_=(m,b)=>{let E=Math.round(b.y-W);if(o)m.style.transform=`translate(${E}px, ${Math.round(b.x)}px)`;else m.style.transform=`translate(${Math.round(b.x)}px, ${E}px)`},z=(m,b)=>{if(o)m.style.width=`${b.size}px`,m.style.height=`${b.crossSize}px`;else m.style.width=`${b.crossSize}px`,m.style.height=`${b.size}px`},Y=(m,b,E,w,u)=>{let d=k.acquire(),M=b.__groupHeader,O=i(w,u);if(d.className=M?x:g,d.dataset.index=String(m),d.dataset.id=String(b.id),d.dataset.lane=String(E.lane),M)d.setAttribute("role","presentation"),d.removeAttribute("aria-selected"),d.removeAttribute("aria-setsize"),d.removeAttribute("aria-posinset"),d.removeAttribute("id");else if(p){if(d.setAttribute("role","option"),d.ariaSelected=String(w),a)d.id=`${a}-item-${m}`;if(s){let D=s();if(D!==U)U=D,h=String(D);d.setAttribute("aria-setsize",h);let n=l?l(m):m+1;d.setAttribute("aria-posinset",String(n))}}else d.setAttribute("role","listitem"),d.removeAttribute("aria-selected"),d.removeAttribute("aria-setsize"),d.removeAttribute("aria-posinset"),d.removeAttribute("id");z(d,E);let T=t(b,m,O);return B(d,T),V(d,w,u),_(d,E),{element:d,lastItem:b,lastSelected:w,lastFocused:u,lastY:E.y-W,absY:E.y,lastX:E.x,lastSize:E.size,lastCrossSize:E.crossSize,lastSeenFrame:P}},W=0,j=(m,b,E,w,u=I())=>{W=u,P++,p=typeof S==="function"?S():S===!0;let d=s?.()??1/0;if(p&&s){if(d!==U){U=d,h=String(d);for(let O of f.values())if(O.element.getAttribute("role")==="option")O.element.setAttribute("aria-setsize",h)}}R.clear();for(let O=0;O<b.length;O++)R.add(b[O].index);let M=null;for(let O=0;O<b.length;O++){let T=b[O],D=T.index,n=m(D);if(!n)continue;let c=E.has(n.id),A=D===w,L=f.get(D);if(L){let K=L.lastItem!==n,ne=L.lastSelected!==c,re=L.lastFocused!==A,Q=L.lastY!==T.y-W||L.lastX!==T.x,fe=L.lastSize!==T.size||L.lastCrossSize!==T.crossSize;if(K){let G=i(c,A),ee=t(n,D,G);if(B(L.element,ee),L.element.dataset.id=String(n.id),L.lastItem=n,!n.__groupHeader&&p){let de=l?l(D):D+1;L.element.setAttribute("aria-posinset",String(de))}}if(K||ne||re){if(V(L.element,c,A),p)L.element.ariaSelected=String(c);else L.element.removeAttribute("aria-selected");L.lastSelected=c,L.lastFocused=A}if(fe)z(L.element,T),L.lastSize=T.size,L.lastCrossSize=T.crossSize;if(Q)_(L.element,T),L.lastY=T.y-W,L.absY=T.y,L.lastX=T.x}else{let K=Y(D,n,T,c,A);if(!M)M=document.createDocumentFragment();M.appendChild(K.element),f.set(D,K)}}if(M)e.appendChild(M);for(let[O,T]of f)if(R.has(O))T.lastSeenFrame=P;else if(O>=d||P-T.lastSeenFrame>Ft)k.release(T.element),f.delete(O);else{let D=Math.round(T.absY-W);if(D!==T.lastY){T.lastY=D;let n=Math.round(T.lastX);T.element.style.transform=o?`translate(${D}px, ${n}px)`:`translate(${n}px, ${D}px)`}}},J=()=>{for(let m of f.values())k.release(m.element);f.clear(),e.innerHTML=""};return{render:j,getElement:(m)=>f.get(m)?.element,updateItemClasses:(m,b,E)=>{let w=f.get(m);if(!w)return;let u=w.lastSelected!==b,d=w.lastFocused!==E;if(u||d)V(w.element,b,E),w.lastSelected=b,w.lastFocused=E},sortDOM:()=>{Ct(e,f.keys(),(m)=>f.get(m)?.element)},clear:J,destroy:()=>{J(),k.clear()}}};var Vt=(e,t,r)=>{let o=t;return{getOffset:(s)=>s*e,getSize:(s)=>e,indexAtOffset:(s)=>{if(o===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(s/e),o-1))},getTotalSize:()=>{let s=o*e;return s>0?s-r:0},getTotal:()=>o,rebuild:(s)=>{o=s},invalidate:()=>{},isVariable:()=>!1}};var Mt=(e,t,r,o)=>{while(t<r){let s=t+r+1>>>1;if(e[s]<=o)t=s;else r=s-1}return t},Bt=(e,t,r)=>{let o=0,s=0,a=new Float64Array(0),l=new Float64Array(0),S=new Float64Array(1),I=(f,R)=>{for(let P=f;P<s;P++){if(P<=R){let h=P<<9,U=Math.min(h+512,o),p=0;for(let y=h;y<U;y++)a[y]=p,p+=e(y);l[P]=p}S[P+1]=S[P]+l[P]}},k=(f)=>{o=f,s=Math.ceil(f/512),a=new Float64Array(f),l=new Float64Array(s),S=new Float64Array(s+1),I(0,s-1)};return k(t),{getOffset:(f)=>{if(f<=0)return 0;if(f>=o)return S[s];return S[f>>>9]+a[f]},getSize:(f)=>e(f),indexAtOffset:(f)=>{if(o===0||f<=0)return 0;if(f>=S[s])return o-1;let R=Mt(S,0,s-1,f),P=R<<9;return Mt(a,P,Math.min(P+512,o)-1,f-S[R])},getTotalSize:()=>{let f=S[s];return f>0?f-r:0},getTotal:()=>o,rebuild:(f)=>k(f),invalidate:(f,R=f)=>{if(f>=0&&R<o)I(f>>>9,R>>>9)},isVariable:()=>!0}},At=(e,t,r=0)=>{if(typeof e==="number")return Vt(e,t,r);return Bt(e,t,r)};var Rt=()=>{let e={},t=(a,l)=>{if(!e[a])e[a]=new Set;return e[a].add(l),()=>r(a,l)},r=(a,l)=>{e[a]?.delete(l)};return{on:t,off:r,emit:(a,l)=>{e[a]?.forEach((S)=>{try{S(l)}catch(I){}})},clear:(a)=>{if(a)delete e[a];else for(let l in e)delete e[l]}}};var Fe=(e={})=>{let{chunkSize:t=100,maxCachedItems:r=5000,evictionBuffer:o=200,onEvict:s}=e,a=new Map,l=0,S=0,I=(m)=>{let b=a.get(m);if(!b)b={items:Array(t),count:0,lastAccess:Date.now()},a.set(m,b);else b.lastAccess=Date.now();return b},k=(m)=>Math.floor(m/t),f=(m)=>m%t,R=()=>l,P=(m)=>{l=m},h=(m)=>{if(m<0||m>=l)return;let b=k(m),E=a.get(b);if(!E)return;return E.items[f(m)]},U=(m)=>{if(m<0||m>=l)return!1;let b=k(m),E=a.get(b);if(!E)return!1;return E.items[f(m)]!==void 0},p=(m,b)=>{let E=k(m),w=I(E),u=f(m),d=w.items[u]===void 0;if(w.items[u]=b,d)w.count++,S++;if(m>=l)l=m+1},y=(m,b)=>{for(let E=0;E<b.length;E++){let w=b[E];if(w!==void 0)p(m+E,w)}},i=(m,b)=>{if(m<0||m>l)return;let E=k(m),w=Array.from(a.keys()).filter((T)=>T>=E).sort((T,D)=>T-D),u=[];for(let T of w){let D=a.get(T),n=T*t;for(let c=0;c<t;c++){if(D.items[c]===void 0)continue;let A=n+c;if(A<m)continue;u.push({oldIndex:A,item:D.items[c]})}}for(let{oldIndex:T}of u){let D=k(T),n=a.get(D);if(!n)continue;let c=f(T);if(n.items[c]!==void 0){if(n.items[c]=void 0,n.count--,S--,n.count===0)a.delete(D)}}l++;for(let{oldIndex:T,item:D}of u){let n=T+1,c=k(n),A=I(c),L=f(n);A.items[L]=D,A.count++,S++}let d=k(m),M=I(d),O=f(m);M.items[O]=b,M.count++,S++},g=(m)=>{if(m<0||m>=l)return!1;let b=k(m),E=a.get(b),w=f(m);if(!(E!==void 0&&E.items[w]!==void 0))return!1;let d=b,M=Array.from(a.keys()).filter((T)=>T>=d).sort((T,D)=>T-D),O=[];for(let T of M){let D=a.get(T),n=T*t;for(let c=0;c<t;c++){if(D.items[c]===void 0)continue;let A=n+c;if(A<=m)continue;O.push({oldIndex:A,item:D.items[c]})}}if(E.items[w]=void 0,E.count--,S--,E.count===0)a.delete(b);for(let{oldIndex:T}of O){let D=k(T),n=a.get(D);if(!n)continue;let c=f(T);if(n.items[c]!==void 0){if(n.items[c]=void 0,n.count--,S--,n.count===0)a.delete(D)}}for(let{oldIndex:T,item:D}of O){let n=T-1,c=k(n),A=I(c),L=f(n);A.items[L]=D,A.count++,S++}return l--,!0},x=(m,b)=>{let E=[];for(let w=m;w<=b&&w<l;w++)E.push(h(w));return E},H=(m,b)=>{for(let E=m;E<=b&&E<l;E++)if(!U(E))return!1;return!0},N=()=>{let m=[],b=null,E=Array.from(a.keys()).sort((w,u)=>w-u);for(let w of E){let u=a.get(w);if(!u)continue;let d=w*t;for(let M=0;M<t;M++){let O=d+M;if(O>=l)break;if(u.items[M]!==void 0)if(b===null)b={start:O,end:O};else if(O===b.end+1)b.end=O;else m.push(b),b={start:O,end:O};else if(b!==null)m.push(b),b=null}}if(b!==null)m.push(b);return m},B=(m,b)=>{let E=[],w=null;for(let u=m;u<=b&&u<l;u++)if(!U(u))if(w===null)w={start:u,end:u};else w.end=u;else if(w!==null)E.push(w),w=null;if(w!==null)E.push(w);return E},V=(m)=>a.has(m),_=(m)=>{let b=a.get(m);if(!b)return!1;let E=m*t,w=Math.min(t,l-E);return b.count>=w},z=(m)=>{let b=a.get(m);if(b)b.lastAccess=Date.now()},Y=(m,b)=>{if(m>b||a.size===0)return;let E=Date.now(),w=k(Math.max(0,m)),u=k(Math.min(l-1,b));for(let d=w;d<=u;d++){let M=a.get(d);if(M)M.lastAccess=E}},W=(m,b)=>{if(S<=r)return 0;let E=Math.max(0,m-o),w=Math.min(l-1,b+o),u=k(E),d=k(w),M=0,O=[];for(let[T,D]of a)if(T<u||T>d)M+=D.count,O.push(T),S-=D.count,a.delete(T);if(M>0&&s)s(M,O);return M},j=()=>{if(S<=r)return 0;let m=Array.from(a.entries()).sort(([,w],[,u])=>w.lastAccess-u.lastAccess),b=0,E=[];for(let[w,u]of m){if(S<=r)break;b+=u.count,S-=u.count,E.push(w),a.delete(w)}if(b>0&&s)s(b,E);return b},J=()=>({totalItems:l,cachedItems:S,cachedChunks:a.size,chunkSize:t,maxCachedItems:r,memoryEfficiency:l>0?1-S/l:1}),ye=()=>S,me=()=>{a.clear(),S=0};return{chunkSize:t,maxCachedItems:r,getTotal:R,setTotal:P,get:h,has:U,set:p,setRange:y,insert:i,delete:g,getRange:x,isRangeLoaded:H,getLoadedRanges:N,findUnloadedRanges:B,getChunkIndex:k,isChunkLoaded:V,isChunkFullyLoaded:_,touchChunk:z,touchChunksForRange:Y,evictDistant:W,evictToLimit:j,getStats:J,getCachedCount:ye,clear:me,reset:()=>{me(),l=0}}},Ve=(e)=>{if(e.length===0)return[];let t=[...e].sort((o,s)=>o.start-s.start),r=[{...t[0]}];for(let o=1;o<t.length;o++){let s=t[o],a=r[r.length-1];if(s.start<=a.end+1)a.end=Math.max(a.end,s.end);else r.push({...s})}return r},Xe=(e,t,r)=>{let o=Math.floor(e.start/r)*r,s=Math.ceil((e.end+1)/r)*r-1,a={start:o,end:s};if(t.length===0)return[a];let l=[],S=Ve(t),I=a.start;for(let k of S){if(k.end<I)continue;if(k.start>a.end)break;if(k.start>I)l.push({start:I,end:Math.min(k.start-1,a.end)});if(I=k.end+1,I>a.end)break}if(I<=a.end)l.push({start:I,end:a.end});return l};var Be=(e={})=>{let{maskCharacter:t=nt,maxSampleSize:r=rt}=e,o=[],s=!1,a=(f)=>{if(s||f.length===0)return;let R=Math.min(f.length,r);for(let P=0;P<R;P++){let h=f[P];if(!h||typeof h!=="object")continue;let U={},p=!1;for(let[y,i]of Object.entries(h)){if(y.startsWith("_")||y==="id")continue;U[y]=String(i??"").length,p=!0}if(p)o.push(U)}s=!0},l=()=>s,S=(f)=>{let R={id:`${ke}${f}`,[We]:!0,_index:f};if(o.length===0)return R.label=t.repeat(12),R;let P=o[f%o.length];for(let[h,U]of Object.entries(P))R[h]=t.repeat(Math.max(1,U));return R};return{analyzeStructure:a,hasAnalyzedStructure:l,generate:S,generateRange:(f,R)=>{let P=[];for(let h=f;h<=R;h++)P.push(S(h));return P},clear:()=>{o=[],s=!1}}},Re=(e)=>{if(!e||typeof e!=="object")return!1;return e[We]===!0},je=(e)=>e.filter((t)=>!Re(t));var Kt=50,Ht=(e={})=>{let{adapter:t,initialItems:r,initialTotal:o,storage:s,placeholder:a,pageSize:l=Kt,maxConcurrent:S=0,onStateChange:I,onDataChange:k,onItemsLoaded:f,onItemsEvicted:R,onLoadError:P}=e,h=Fe({...s,onEvict:(v,F)=>{R?.(v),W(),Y()}}),U=null,p=()=>{if(!U)U=Be(a);return U},y=new Map,i=!1,g,x=!0,H,N,B=[],V=0,_=new Map,z=()=>{for(let v of _.values())v[1].abort();_.clear()},Y=()=>{I?.(w())},W=()=>{k?.()},j=()=>{y.clear();let v=h.getLoadedRanges();for(let F of v)for(let Z=F.start;Z<=F.end;Z++){let X=h.get(Z);if(X&&!Re(X))y.set(X.id,Z)}},J=(v,F)=>{if(!Re(F))y.set(F.id,v)},ye=(v)=>{y.delete(v)},me=(v,F)=>`${v}-${F}`,oe=()=>h.getTotal(),m=()=>h.getCachedCount(),b=()=>i,E=()=>x,w=()=>({total:h.getTotal(),cached:h.getCachedCount(),isLoading:i,pendingRanges:B,error:g,hasMore:x,cursor:H}),u=()=>h,d=()=>p(),M=(v)=>{let F=h.get(v);if(F!==void 0)return F;if(v>=0&&v<h.getTotal())return p().generate(v);return},O=(v)=>{let F=y.get(v);if(F===void 0)return;return h.get(F)},T=(v)=>y.get(v)??-1,D=(v)=>{let F=h.get(v);return F!==void 0&&!Re(F)},n=(v,F)=>{let Z=[],X=h.getTotal();h.touchChunksForRange(v,Math.min(F,X-1));for(let le=v;le<=F&&le<X;le++){let ge=h.get(le);if(ge!==void 0)Z.push(ge);else Z.push(p().generate(le))}return Z},c=(v)=>{h.setTotal(v),x=h.getCachedCount()<v,W(),Y()},A=(v,F=0,Z)=>{if(t&&v.length>0){let X=p();if(!X.hasAnalyzedStructure())X.analyzeStructure(v)}for(let X=0;X<v.length;X++){let le=v[X];if(le!==void 0){let ge=F+X;h.set(ge,le),J(ge,le)}}if(Z!==void 0)h.setTotal(Z);else if(F+v.length>h.getTotal())h.setTotal(F+v.length);if(h.getCachedCount()>=h.getTotal()&&h.getTotal()>0)x=!1;W(),Y(),f?.(v,F,h.getTotal())},L=(v,F)=>{let Z=h.get(v);if(!Z)return!1;let X=Z.id,le={...Z,...F};if(h.set(v,le),F.id!==void 0&&F.id!==X)ye(X);return J(v,le),W(),Y(),!0},K=(v,F)=>{h.insert(F,v),j(),z(),W(),Y()},ne=(v)=>{let F=y.get(v);if(F===void 0)return!1;if(!h.delete(F))return!1;return j(),z(),W(),Y(),!0},re=async(v,F)=>{if(!t)return;let Z=h.chunkSize,X=Math.floor(v/Z),le=Math.floor(F/Z),ge=Z*2;for(let[ae,ue]of _){let Te=ae.indexOf("-"),Le=parseInt(ae.slice(0,Te),10);if(Math.abs(Le-v)>ge)ue[1].abort(),_.delete(ae)}let ve=[],Ce=[];for(let ae=X;ae<=le;ae++){let ue=ae*Z,Te=ue+Z-1,Le=me(ue,Te);if(h.isChunkFullyLoaded(ae))continue;let pe=_.get(Le);if(pe)Ce.push(pe[0]);else ve.push({start:ue,end:Te})}if(ve.length===0){if(Ce.length>0)await Promise.all(Ce);return}if(S>0){let ae=_.size+ve.length;if(ae>S){let ue=(v+F)/2,Te=Math.min(ae-S,_.size);while(Te>0){let ce=null,pe=-1,he=null;for(let[Ie,Ne]of _){let Pe=Ie.indexOf("-"),Oe=parseInt(Ie.slice(0,Pe),10),De=parseInt(Ie.slice(Pe+1),10),Ee=Math.abs((Oe+De)/2-ue);if(Ee>pe)pe=Ee,ce=Ie,he=Ne[1]}if(ce)he.abort(),_.delete(ce);Te--}let Le=S-_.size;if(ve.length>Le)ve.sort((ce,pe)=>{let he=Math.abs((ce.start+ce.end)/2-ue),Ie=Math.abs((pe.start+pe.end)/2-ue);return he-Ie}),ve.length=Math.max(0,Le)}}if(ve.length===0){if(Ce.length>0)await Promise.all(Ce);return}for(let ae of ve){let ue=me(ae.start,ae.end),Te=new AbortController,Le=(async()=>{B.push(ae),i=!0,g=void 0,Y();try{let ce=ae.end-ae.start+1,pe={offset:ae.start,limit:ce,cursor:ae.start===N?H:void 0,signal:Te.signal},he=await t.read(pe);if(A(he.items,ae.start,he.total),he.cursor)H=he.cursor,N=ae.start+he.items.length;let Ie=ae.start+he.items.length;if(Ie>=V){if(V=Ie,he.hasMore!==void 0)x=he.hasMore;else if(he.total!==void 0)x=Ie<he.total}}catch(ce){if(ce?.name==="AbortError")return;g=ce instanceof Error?ce:Error(String(ce)),P?.(g,ae)}finally{_.delete(ue);let ce=B.findIndex((pe)=>pe.start===ae.start&&pe.end===ae.end);if(ce>=0)B.splice(ce,1);i=_.size>0,Y()}})();_.set(ue,[Le,Te]),Ce.push(Le)}await Promise.all(Ce)},Q=async(v,F)=>{if(h.isRangeLoaded(v,F))return;await re(v,F)},fe=async()=>{if(!t)return;await re(0,l-1)},G=async()=>{if(!t||i||!x)return!1;let v=h.getCachedCount(),F=h.getTotal(),Z=v,X=Math.min(Z+l-1,F>0?F-1:Z+l-1);if(Z>=F&&F>0)return x=!1,!1;return await re(Z,X),h.getCachedCount()>v},ee=async()=>{if(h.clear(),y.clear(),U)U.clear();z(),B=[],i=!1,H=void 0,N=void 0,x=!0,V=0,g=void 0,W(),Y()},se=(v,F)=>{if(h.evictDistant(v,F)>0)j()},de=()=>{h.clear(),y.clear(),H=void 0,N=void 0,g=void 0,B=[],i=!1,W(),Y()},Se=()=>{if(h.reset(),y.clear(),U)U.clear();H=void 0,N=void 0,x=!0,V=0,g=void 0,B=[],i=!1,W(),Y()};if(r&&r.length>0)A(r,0,o??r.length);else if(o!==void 0)h.setTotal(o),W(),Y();return{getState:w,getTotal:oe,getCached:m,getIsLoading:b,getHasMore:E,getStorage:u,getPlaceholders:d,getItem:M,getItemById:O,getIndexById:T,isItemLoaded:D,getItemsInRange:n,setTotal:c,setItems:A,updateItem:L,insertItem:K,removeItem:ne,loadRange:re,ensureRange:Q,loadInitial:fe,loadMore:G,reload:ee,evictDistant:se,clear:de,reset:Se}};var Wt=0,Ut=1000,Yt=15,Zt=!0,qt=16,Xt=!0,_e=2,jt="scroll",Jt=350,Qt=12,en=(e)=>{if(typeof e!=="object"){let t=e??_e;return{top:t,right:t,bottom:t,left:t}}return{top:e.top??_e,right:e.right??_e,bottom:e.bottom??_e,left:e.left??_e}},kt=(e,t,r={},o="vlist",s=!1,a,l,S)=>{let I=navigator.userAgentData?.platform||navigator.platform+navigator.userAgent,k=r.platform?r.platform==="windows":!/Mac|Android/i.test(I),{autoHide:f=!k,autoHideDelay:R=Ut,minThumbSize:P=Yt,showOnHover:h=Zt,showOnViewportEnter:U=Xt,clickBehavior:p=jt}=r,y=p==="page"?"scroll":p,i=a??e,g=en(r.padding),x=s?g.left:g.top,H=s?g.right:g.bottom,N=s?g.bottom:g.right,B=r.hoverZoneWidth??N+qt,V=!0,_=0,z=0,Y=0,W=0,j=!1,J=!1,ye=0,me=0,oe=0,m=null,b=!1,E=null,w=null,u=-1,d=-1,M=-1,O=-1,T=-1,D=e.id?"":(()=>{let C;do C=`${o}-scrollport-${++Wt}`;while(document.getElementById(C));return e.id=C,C})(),n=0,c=0,A=null,L=null,K=null,ne=s?"width":"height",re=s?"translateX":"translateY",Q=s?(C)=>C.clientX:(C)=>C.clientY,fe=s?"left":"top",G=document.createElement("div"),ee=document.createElement("div"),se=document.createElement("div"),de=s?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",Se=()=>{if(i===e)return;let C=e.offsetTop;G.style[s?"left":"top"]=C?`calc(var(${de}) + ${C}px)`:`var(${de})`,se.style[s?"left":"top"]=`${C}px`},v=()=>{if(G.className=`${o}-scrollbar`,G.setAttribute("role","scrollbar"),G.setAttribute("aria-controls",e.id),G.setAttribute("aria-orientation",s?"horizontal":"vertical"),G.setAttribute("aria-label",e.getAttribute("aria-label")||"Scroll"),G.setAttribute("aria-valuemin","0"),G.tabIndex=0,ee.className=`${o}-scrollbar__thumb`,s)G.classList.add(`${o}-scrollbar--horizontal`);if(r.padding!==void 0)i.style.setProperty("--vlist-custom-scrollbar-padding-top",`${g.top}px`),i.style.setProperty("--vlist-custom-scrollbar-padding-right",`${g.right}px`),i.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${g.bottom}px`),i.style.setProperty("--vlist-custom-scrollbar-padding-left",`${g.left}px`);if(r.minThumbSize!==void 0)G.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${P}px`);if(G.appendChild(ee),i.appendChild(G),se.className=`${o}-scrollbar__hover`,s)se.classList.add(`${o}-scrollbar__hover--horizontal`),se.style.height=`${B}px`;else se.style.width=`${B}px`;if(i.appendChild(se),i!==e)Se()},F=()=>{if(m)clearTimeout(m),m=null},Z=()=>{if(!f)return;F(),m=setTimeout(le,R)},X=()=>{if(!V||_<=z)return;if(F(),!b)G.classList.add(`${o}-scrollbar--visible`),b=!0;if(f&&!j&&!J&&document.activeElement!==G)Z()},le=()=>{if(j||J||document.activeElement===G)return;G.classList.remove(`${o}-scrollbar--visible`),b=!1},ge=(C,q)=>{if(_=C,z=q,Se(),ve(oe),!V||_<=z){G.style.display="none",G.classList.remove(`${o}-scrollbar--visible`),b=!1;return}G.style.display="";let te=Math.max(0,z-x-H),ie=z/_;if(Y=Math.max(P,ie*te),ee.style[ne]=`${Y}px`,W=te-Y,ve(oe),!f)X()},ve=(C)=>{let q=Math.max(0,_-z);if(oe=Math.max(0,Math.min(C,q)),u!==q)u=q,G.setAttribute("aria-valuemax",String(q));if(d!==oe)d=oe,G.setAttribute("aria-valuenow",String(oe));let te=l?.(),ie=te?.getTotal()??0,be=ie?te.indexAtOffset(oe)+1:0;if(be!==M||ie!==O)M=be,O=ie,G.setAttribute("aria-valuetext",`Row ${be} of ${ie}`);if(q<=0||W<=0)return;let Me=oe/q*W;if(Me!==T)T=Me,ee.style.transform=`${re}(${Me}px)`},Ce=(C)=>{if(!V||C.target!==G||document.activeElement!==G)return;if(C.stopPropagation(),C.altKey||C.ctrlKey||C.metaKey)return;let q=l?.(),te=q?.getSize(q.indexAtOffset(oe))??40,ie=oe;switch(C.key){case(s?"ArrowLeft":"ArrowUp"):ie-=te;break;case(s?"ArrowRight":"ArrowDown"):ie+=te;break;case"PageUp":ie-=z;break;case"PageDown":ie+=z;break;case"Home":ie=0;break;case"End":ie=_;break;default:return}C.preventDefault(),t(Math.max(0,Math.min(ie,Math.max(0,_-z)))),X()},ae=(C)=>{if(C.target===ee||y!=="jump"||W<=0)return;let q=_-z,te=G.getBoundingClientRect(),ie=Q(C)-te[fe],be=Math.max(0,Math.min(ie-Y/2,W));t(be/W*q),X()},ue=()=>{if(A!==null)clearTimeout(A),A=null;if(L!==null)cancelAnimationFrame(L),L=null;K=null},Te=(C)=>{let q=W>0?c/C*W:0;if(n<q)return-1;if(n>=q+Y)return 1;return 0},Le=()=>{let C=_-z,q=Te(C);if(q===0){ue();return}if(q===-1){if(c<=0){ue();return}let te=Math.max(0,c-z);c=te,t(te)}else{if(c>=C){ue();return}let te=Math.min(C,c+z);c=te,t(te)}X()},ce=(C)=>{if(K===null){K=C,L=requestAnimationFrame(ce);return}let q=_-z,te=C-K;K=C;let ie=Te(q);if(ie===0){ue();return}let be=Qt*z/1000,Me=Math.min(be*te,z);if(ie===-1){if(c<=0){ue();return}let Ae=Math.max(0,c-Me);c=Ae,t(Ae)}else{if(c>=q){ue();return}let Ae=Math.min(q,c+Me);c=Ae,t(Ae)}F(),L=requestAnimationFrame(ce)},pe=(C)=>{if(C&&C.pointerId!==E)return;let q=E,te=w;if(E=null,w=null,j=!1,G.classList.remove(`${o}-scrollbar--dragging`),ue(),q!==null&&te?.hasPointerCapture(q))te.releasePointerCapture(q);Z()},he=(C)=>{if(!V||C.button!==0||E!==null||W<=0)return;if(C.preventDefault(),C.stopPropagation(),E=C.pointerId,j=C.target===ee,w=j?ee:C.currentTarget,w.setPointerCapture(E),F(),j)ye=Q(C),me=oe,G.classList.add(`${o}-scrollbar--dragging`);else if(y==="jump")ae(C);else n=Q(C)-G.getBoundingClientRect()[fe],c=oe,Le(),A=setTimeout(()=>{L=requestAnimationFrame(ce)},Jt);X()},Ie=(C)=>{if(!j||C.pointerId!==E)return;C.stopPropagation();let q=Q(C)-ye,te=Math.max(0,_-z),ie=Math.max(0,Math.min(me+q/W*te,te));ve(ie),t(ie)},Ne=()=>{if(U)X()},Pe=()=>{if(!j){if(J=!1,f)Z()}},Oe=()=>{J=!0,F(),X()},De=()=>{if(J=!1,!j&&f)Z()},Ee=["width","radius","thumb-color","track-color"],Ke=(C,q)=>i.style.setProperty(`--vlist-custom-scrollbar-${C}`,q),$e=Ee.map((C)=>i.style.getPropertyValue(`--vlist-custom-scrollbar-${C}`)),Je=$e.slice(0,2),Qe=[],et=()=>{for(let be=0;be<2;be++){let Me=Ee[be],Ae=i.style.getPropertyValue(`--vlist-custom-scrollbar-${Me}`);if(Ae!==Qe[be])Je[be]=Ae;Ke(Me,Je[be])}let C=getComputedStyle(S??i),q=r.width??C.getPropertyValue("scrollbar-width"),te=C.getPropertyValue("scrollbar-color").match(/[\w-]+\([^)]*\)|\S+/g);V=r.enabled!==!1&&q!=="none";let ie=[typeof r.width==="number"?`${r.width}px`:C.getPropertyValue("--vlist-custom-scrollbar-width").trim()||(q==="thin"||!k?"6px":"14px"),typeof r.radius==="number"?`${r.radius}px`:C.getPropertyValue("--vlist-custom-scrollbar-radius").trim()||(k?"0px":"4px"),r.thumbColor??(te?.length===2?te[0]:$e[2]),r.trackColor??(te?.length===2?te[1]:$e[3])];for(let be=0;be<Ee.length;be++)Ke(Ee[be],ie[be]);if(Qe=ie.slice(0,2),se.style.display=V?"":"none",e.classList.toggle(`${o}-viewport--gutter`,V&&!!r.gutter),!V)pe();ge(_,z)},wt=()=>{F(),ue(),pe(),F();for(let C of tt)C();for(let C=0;C<Ee.length;C++)Ke(Ee[C],$e[C]);if(e.classList.remove(`${o}-viewport--gutter`),se.remove(),i.style.removeProperty("--vlist-custom-scrollbar-padding-top"),i.style.removeProperty("--vlist-custom-scrollbar-padding-right"),i.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),i.style.removeProperty("--vlist-custom-scrollbar-padding-left"),G.remove(),D&&e.id===D)e.removeAttribute("id")};v();let tt=[],xe=(C,q,te)=>{C.addEventListener(q,te),tt.push(()=>C.removeEventListener(q,te))};for(let C of[G,ee,se])xe(C,"pointerdown",he),xe(C,"pointermove",Ie),xe(C,"pointerup",pe),xe(C,"pointercancel",pe),xe(C,"lostpointercapture",pe);if(xe(G,"keydown",Ce),xe(G,"focus",X),xe(G,"blur",Z),xe(e,"mouseenter",Ne),xe(e,"mouseleave",Pe),xe(G,"mouseenter",Oe),xe(G,"mouseleave",De),h)xe(se,"mouseenter",Oe),xe(se,"mouseleave",De);return et(),{refresh:et,show:X,hide:le,updateBounds:ge,updatePosition:ve,isVisible:()=>b,destroy:wt}};function tn(e){let t=0,r=0,o=0;function s(){return o>0?r/o:0}function a(I){if(t=I,I>0.1&&I<50)r+=I,o++}function l(){let I=e.getTotal();if(I===0)return 0;let k=e.getItemSize();if(k<=0)return 0;let f=e.getContainerSize();if(f<=0)return 0;let R=e.getScrollPosition(),P=typeof e.getColumns==="function"?e.getColumns():1,h=Math.ceil(I/P),U=Math.max(0,h*k-f),p=Math.max(0,Math.min(R,U)),y=Math.ceil((p+f)/k);return Math.min(y*P,I)}function S(){let I=e.getTotal(),k=l();return{progress:I>0?Math.min(100,Math.max(0,k/I*100)):0,velocity:t,velocityAvg:s(),itemCount:k,total:I}}return{getState:S,onVelocity:a}}export{it as buildLayoutItems,Xe as calculateMissingRanges,yt as clearSelection,Ht as createAsyncManager,Rt as createEmitter,mt as createGridLayout,ut as createGroupLayout,lt as createGroupedSizeFn,Lt as createMasonryLayout,Et as createMasonryRenderer,Be as createPlaceholderManager,kt as createScrollbar,bt as createSelectionState,At as createSizeCache,Fe as createSparseStorage,tn as createStats,ct as createStickyHeader,pt as createTableHeader,ft as createTableLayout,It as createTableRenderer,qe as deselectItems,je as filterPlaceholders,xt as getSelectedIds,vt as getSelectedItems,dt as isGroupHeader,Re as isPlaceholderItem,St as isSelected,Ve as mergeRanges,ht as selectAll,Ze as selectItems,gt as toggleSelection};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vlist — Table features
|
|
3
|
+
*
|
|
4
|
+
* A feature is mounted only by `table({ features })`. `table()` calls
|
|
5
|
+
* `attach` once, in array order, before it returns the plugin. Hook
|
|
6
|
+
* functions are copied after that return, so a feature wraps
|
|
7
|
+
* `plugin.hooks` here and does its own work from the wrapped `plugin.setup`,
|
|
8
|
+
* where the context and the layout both exist. A feature reads another
|
|
9
|
+
* feature's hooks when it uses them.
|
|
10
|
+
*/
|
|
11
|
+
import type { VListItem } from "../../types";
|
|
12
|
+
import type { VListPlugin } from "../../core/types";
|
|
13
|
+
export interface TableFeature<T extends VListItem = VListItem, M = object> {
|
|
14
|
+
/** Feature name. */
|
|
15
|
+
name: string;
|
|
16
|
+
/**
|
|
17
|
+
* Wrap the table plugin before its hooks are compiled. Call the previous
|
|
18
|
+
* `plugin.setup` first, then read `_getTableLayout()` for the live layout.
|
|
19
|
+
*/
|
|
20
|
+
attach(plugin: VListPlugin<T>): void;
|
|
21
|
+
/** Phantom: methods this feature adds to the list. Never set at runtime. */
|
|
22
|
+
readonly __methods?: M;
|
|
23
|
+
}
|
|
24
|
+
type DefinedMethods<M> = Exclude<M, undefined> extends infer E ? [E] extends [object] ? E : object : object;
|
|
25
|
+
type MethodsOf<F> = F extends readonly [] ? object : F extends readonly [infer Head, ...infer Rest] ? (Head extends {
|
|
26
|
+
readonly __methods?: infer M;
|
|
27
|
+
} ? DefinedMethods<M> : object) & MethodsOf<Rest> : object;
|
|
28
|
+
/** Methods added by the features array, in order. An omitted array adds none. */
|
|
29
|
+
export type TableFeatureMethods<F> = MethodsOf<F>;
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=feature.d.ts.map
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
* Data table layout with columns, resizable headers, and cell rendering
|
|
4
4
|
*/
|
|
5
5
|
export { table, type TablePluginConfig } from "./plugin";
|
|
6
|
+
export { columnPin, type ColumnPinConfig, type ColumnPinMethods } from "./pin";
|
|
7
|
+
export { columnReorder, type ColumnReorderConfig, type ColumnReorderMethods } from "./reorder";
|
|
8
|
+
export type { TableFeature, TableFeatureMethods } from "./feature";
|
|
6
9
|
export { createTableLayout } from "./layout";
|
|
7
10
|
export { createTableHeader } from "./header";
|
|
8
11
|
export { createTableRenderer, type TableRendererInstance } from "./renderer";
|
|
9
|
-
export type { TableConfig, TableColumn, TableSort, TableFillMode, TableLayout, TableHeader, TableRenderer, ResolvedColumn, ColumnResizeEvent, ColumnSortEvent, ColumnClickEvent, } from "./types";
|
|
12
|
+
export type { TableConfig, TableColumn, TableSort, TableFillMode, TableLayout, TableHeader, TableRenderer, ResolvedColumn, ColumnResizeEvent, ColumnSortEvent, ColumnClickEvent, ColumnPinEvent, ColumnReorderEvent, } from "./types";
|
|
10
13
|
export type { TableMethods } from "./plugin";
|
|
11
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vlist/table — columnPin() feature
|
|
3
|
+
*
|
|
4
|
+
* Freezes columns to the left or right edge of the table so horizontal
|
|
5
|
+
* scrolling does not move them. Partitioned as:
|
|
6
|
+
* [...leftPinned, ...unpinned, ...rightPinned]
|
|
7
|
+
*
|
|
8
|
+
* Unpinning a column returns it to its original unpinned relative position.
|
|
9
|
+
* Mounted only through `table({ features: [columnPin()] })`. The body of this
|
|
10
|
+
* module is not imported by `table()`, so a plain table pays nothing for it.
|
|
11
|
+
* `TableColumn.pin` is ignored unless this feature is in that array.
|
|
12
|
+
*/
|
|
13
|
+
import type { VListItem } from "../../types";
|
|
14
|
+
import type { TableFeature } from "./feature";
|
|
15
|
+
export interface ColumnPinConfig {
|
|
16
|
+
/** Initial pin state by column key (overrides or supplements TableColumn.pin) */
|
|
17
|
+
pins?: Record<string, "left" | "right">;
|
|
18
|
+
}
|
|
19
|
+
/** Methods the columnPin plugin adds to the list instance. */
|
|
20
|
+
export interface ColumnPinMethods {
|
|
21
|
+
/**
|
|
22
|
+
* Pin a column to the left or right edge, or unpin it (`null`) to restore
|
|
23
|
+
* its original unpinned position. Present on the list when `columnPin()`
|
|
24
|
+
* is in `table({ features })`.
|
|
25
|
+
*/
|
|
26
|
+
setColumnPin(keyOrIndex: string | number, pin: "left" | "right" | null): void;
|
|
27
|
+
/** Current pinned columns keyed by column key. */
|
|
28
|
+
getColumnPins(): Record<string, "left" | "right">;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Pin columns to the left or right edge.
|
|
32
|
+
*
|
|
33
|
+
* Pass the result to `table({ features: [columnPin()] })`. On its own it
|
|
34
|
+
* mounts nothing, and `TableColumn.pin` does nothing without it. A feature
|
|
35
|
+
* listed earlier can read pin state after setup: the state is published on
|
|
36
|
+
* `_getColumnPinState` and resolved when that hook is read, not when the
|
|
37
|
+
* earlier feature's `attach` runs.
|
|
38
|
+
*
|
|
39
|
+
* Commit, resize, and after-scroll are wrapped here, on the plugin object,
|
|
40
|
+
* before `table()` returns. Those wrappers are not part of a plain table.
|
|
41
|
+
*/
|
|
42
|
+
export declare function columnPin<T extends VListItem = VListItem>(config?: ColumnPinConfig): TableFeature<T, ColumnPinMethods>;
|
|
43
|
+
//# sourceMappingURL=pin.d.ts.map
|
|
@@ -14,7 +14,16 @@
|
|
|
14
14
|
import type { VListItem } from "../../types";
|
|
15
15
|
import type { VListPlugin } from "../../core/types";
|
|
16
16
|
import type { TableConfig, TableColumn, TableSort } from "./types";
|
|
17
|
+
import type { TableFeature, TableFeatureMethods } from "./feature";
|
|
17
18
|
export interface TablePluginConfig<T extends VListItem = VListItem> extends TableConfig<T> {
|
|
19
|
+
/**
|
|
20
|
+
* Features mounted by this table, in array order. `columnPin()` is one.
|
|
21
|
+
* Each feature reads the others' hooks when it uses them, so order does
|
|
22
|
+
* not decide whether a lookup after setup can see a feature listed later.
|
|
23
|
+
* `attach` runs before this plugin is returned, which is before its hooks
|
|
24
|
+
* are compiled.
|
|
25
|
+
*/
|
|
26
|
+
features?: readonly TableFeature<T>[];
|
|
18
27
|
}
|
|
19
28
|
/** Methods the table plugin adds to the list instance. */
|
|
20
29
|
export interface TableMethods<T extends VListItem = VListItem> {
|
|
@@ -34,5 +43,8 @@ export interface TableMethods<T extends VListItem = VListItem> {
|
|
|
34
43
|
/** Current sort columns in priority order (primary first). */
|
|
35
44
|
getSorts(): TableSort[];
|
|
36
45
|
}
|
|
46
|
+
export declare function table<T extends VListItem, const F extends readonly TableFeature<T>[]>(config: Omit<TablePluginConfig<T>, "features"> & {
|
|
47
|
+
features: F;
|
|
48
|
+
}): VListPlugin<T, TableMethods<T> & TableFeatureMethods<F>>;
|
|
37
49
|
export declare function table<T extends VListItem = VListItem>(config: TablePluginConfig<T>): VListPlugin<T, TableMethods<T>>;
|
|
38
50
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* vlist/table — columnReorder() feature (#113)
|
|
3
|
+
*
|
|
4
|
+
* Interactive and programmatic column reordering for `table({ features: [columnReorder()] })`:
|
|
5
|
+
* - Pointer drag on header cells (5px threshold, drop indicator, edge auto-scroll,
|
|
6
|
+
* trailing click/sort suppression)
|
|
7
|
+
* - Keyboard `Alt+ArrowLeft` / `Alt+ArrowRight` on focused header cell (retaining focus)
|
|
8
|
+
* - Programmatic `moveColumn(keyOrFromIndex, toIndex)` and `getColumnOrder()`
|
|
9
|
+
* - In-place header & body cell permutation without re-running `cell()` templates
|
|
10
|
+
* - Preserves sort state (`aria-sort`, sort indicators, `getSorts()`) and clamps
|
|
11
|
+
* within pin partitions (`[...left, ...unpinned, ...right]`) when `columnPin()` is active.
|
|
12
|
+
*
|
|
13
|
+
* Mounted only through `table({ features: [columnReorder()] })`. Not imported by
|
|
14
|
+
* `table()`, so a plain table pays nothing for it.
|
|
15
|
+
*/
|
|
16
|
+
import type { VListItem } from "../../types";
|
|
17
|
+
import type { TableFeature } from "./feature";
|
|
18
|
+
export interface ColumnReorderConfig {
|
|
19
|
+
/** Column keys that cannot be reordered (supplements TableColumn.reorderable: false) */
|
|
20
|
+
disabled?: string[];
|
|
21
|
+
}
|
|
22
|
+
/** Methods the columnReorder feature adds to the list instance. */
|
|
23
|
+
export interface ColumnReorderMethods {
|
|
24
|
+
/**
|
|
25
|
+
* Move a column from `keyOrFromIndex` to `toIndex` (clamped to its pin
|
|
26
|
+
* partition when `columnPin()` is active). Present on the list when
|
|
27
|
+
* `columnReorder()` is in `table({ features })`.
|
|
28
|
+
*/
|
|
29
|
+
moveColumn(keyOrFromIndex: string | number, toIndex: number): void;
|
|
30
|
+
/** Current ordered column keys (`[...left, ...unpinned, ...right]`). */
|
|
31
|
+
getColumnOrder(): string[];
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Reorder table columns by pointer drag, `Alt+ArrowLeft` / `Alt+ArrowRight`,
|
|
35
|
+
* or `list.moveColumn()`.
|
|
36
|
+
*
|
|
37
|
+
* Pass the result to `table({ features: [columnReorder()] })`. When combined
|
|
38
|
+
* with `columnPin()` (in either array order), `_getColumnPinState` is resolved
|
|
39
|
+
* lazily on each move so columns stay within their left, unpinned, or right
|
|
40
|
+
* partition.
|
|
41
|
+
*/
|
|
42
|
+
export declare function columnReorder<T extends VListItem = VListItem>(config?: ColumnReorderConfig): TableFeature<T, ColumnReorderMethods>;
|
|
43
|
+
//# sourceMappingURL=reorder.d.ts.map
|
|
@@ -76,11 +76,17 @@ export interface TableColumn<T extends VListItem = VListItem> {
|
|
|
76
76
|
*/
|
|
77
77
|
sortable?: boolean;
|
|
78
78
|
/**
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
79
|
+
* Initial pin side for this column (`"left"` or `"right"`).
|
|
80
|
+
* Does nothing unless `columnPin()` is passed in `table({ features })`.
|
|
81
|
+
* Pinned columns stay visible while unpinned columns scroll horizontally.
|
|
82
82
|
*/
|
|
83
83
|
pin?: "left" | "right";
|
|
84
|
+
/**
|
|
85
|
+
* Whether this column can be reordered when `columnReorder()` is passed in
|
|
86
|
+
* `table({ features })` (default: `true`). Does nothing without `columnReorder()`.
|
|
87
|
+
* Set to `false` to lock a column in place.
|
|
88
|
+
*/
|
|
89
|
+
reorderable?: boolean;
|
|
84
90
|
}
|
|
85
91
|
/** Configuration for the withTable feature */
|
|
86
92
|
export interface TableConfig<T extends VListItem = VListItem> {
|
|
@@ -305,4 +311,28 @@ export interface ColumnClickEvent {
|
|
|
305
311
|
/** Original mouse event */
|
|
306
312
|
event: MouseEvent;
|
|
307
313
|
}
|
|
314
|
+
/** Payload for the `column:pin` event. */
|
|
315
|
+
export interface ColumnPinEvent {
|
|
316
|
+
/** Column key */
|
|
317
|
+
key: string;
|
|
318
|
+
/** Resolved column index after re-partitioning */
|
|
319
|
+
index: number;
|
|
320
|
+
/** New pin side, or `null` when the column was unpinned */
|
|
321
|
+
pin: "left" | "right" | null;
|
|
322
|
+
/** Current map of all pinned columns by key */
|
|
323
|
+
pins: Record<string, "left" | "right">;
|
|
324
|
+
/** Full resolved column key order (`[...left, ...unpinned, ...right]`) */
|
|
325
|
+
order: string[];
|
|
326
|
+
}
|
|
327
|
+
/** Payload for the `column:reorder` event. */
|
|
328
|
+
export interface ColumnReorderEvent {
|
|
329
|
+
/** Moved column key */
|
|
330
|
+
key: string;
|
|
331
|
+
/** Previous resolved column index */
|
|
332
|
+
fromIndex: number;
|
|
333
|
+
/** New resolved column index */
|
|
334
|
+
toIndex: number;
|
|
335
|
+
/** Full resolved column key order after the move */
|
|
336
|
+
order: string[];
|
|
337
|
+
}
|
|
308
338
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/size.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"base":{"minified":"27.2","gzipped":"10.4","minBytes":27845,"gzBytes":10674},"synthetic":{"minified":"34.1","gzipped":"13.0","minBytes":34911,"gzBytes":13345},"synthetic + carousel":{"minified":"49.5","gzipped":"18.3","minBytes":50704,"gzBytes":18742},"synthetic + sortable":{"minified":"46.1","gzipped":"16.7","minBytes":47196,"gzBytes":
|
|
1
|
+
{"base":{"minified":"27.2","gzipped":"10.4","minBytes":27845,"gzBytes":10674},"synthetic":{"minified":"34.1","gzipped":"13.0","minBytes":34911,"gzBytes":13345},"synthetic + carousel":{"minified":"49.5","gzipped":"18.3","minBytes":50704,"gzBytes":18742},"synthetic + sortable":{"minified":"46.1","gzipped":"16.7","minBytes":47196,"gzBytes":17080},"createStats":{"minified":"27.8","gzipped":"10.6","minBytes":28447,"gzBytes":10904},"synthetic + createStats":{"minified":"34.7","gzipped":"13.2","minBytes":35513,"gzBytes":13567},"native":{"minified":"27.2","gzipped":"10.4","minBytes":27845,"gzBytes":10680},"vue":{"minified":"27.6","gzipped":"10.6","minBytes":28235,"gzBytes":10849},"svelte":{"minified":"27.4","gzipped":"10.5","minBytes":28030,"gzBytes":10751},"solid":{"minified":"27.5","gzipped":"10.6","minBytes":28142,"gzBytes":10814},"react":{"minified":"27.6","gzipped":"10.6","minBytes":28282,"gzBytes":10865},"react + grid":{"minified":"35.3","gzipped":"13.3","minBytes":36193,"gzBytes":13635},"a11y":{"minified":"32.6","gzipped":"12.4","minBytes":33346,"gzBytes":12678},"selection":{"minified":"37.4","gzipped":"13.8","minBytes":38278,"gzBytes":14131},"data":{"minified":"40.8","gzipped":"15.2","minBytes":41805,"gzBytes":15591},"scrollbar":{"minified":"35.3","gzipped":"13.3","minBytes":36195,"gzBytes":13629},"sortable":{"minified":"39.2","gzipped":"14.1","minBytes":40091,"gzBytes":14433},"groups":{"minified":"43.7","gzipped":"16.1","minBytes":44705,"gzBytes":16475},"page":{"minified":"30.3","gzipped":"11.5","minBytes":31023,"gzBytes":11805},"snapshots":{"minified":"30.5","gzipped":"11.6","minBytes":31226,"gzBytes":11846},"transition":{"minified":"33.9","gzipped":"12.4","minBytes":34752,"gzBytes":12707},"autosize":{"minified":"32.1","gzipped":"12.2","minBytes":32886,"gzBytes":12468},"grid":{"minified":"34.9","gzipped":"13.1","minBytes":35756,"gzBytes":13445},"table":{"minified":"45.5","gzipped":"16.7","minBytes":46602,"gzBytes":17121},"masonry":{"minified":"39.6","gzipped":"14.9","minBytes":40517,"gzBytes":15288},"tree":{"minified":"43.5","gzipped":"15.8","minBytes":44532,"gzBytes":16204},"search":{"minified":"36.5","gzipped":"13.9","minBytes":37414,"gzBytes":14264},"carousel":{"minified":"43.4","gzipped":"16.0","minBytes":44476,"gzBytes":16399}}
|
package/dist/types.d.ts
CHANGED
|
@@ -631,6 +631,10 @@ export interface VListEvents<T extends VListItem = VListItem> extends EventMap {
|
|
|
631
631
|
matchIndex: number;
|
|
632
632
|
matches: number;
|
|
633
633
|
};
|
|
634
|
+
/** Table column pinned or unpinned (`columnPin()` feature) */
|
|
635
|
+
"column:pin": import("./plugins/table").ColumnPinEvent;
|
|
636
|
+
/** Table column reordered (`columnReorder()` feature) */
|
|
637
|
+
"column:reorder": import("./plugins/table").ColumnReorderEvent;
|
|
634
638
|
/** Destroy — fired just before the instance is torn down */
|
|
635
639
|
destroy: undefined;
|
|
636
640
|
}
|
package/dist/version.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"3.
|
|
1
|
+
{"version":"3.6.0","commit":"45e2466","builtAt":"2026-11-08T17:15:37.813Z","released":true}
|
package/dist/vlist-table.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.vlist--table{display:flex;flex-direction:column;overflow:hidden;min-height:inherit}.vlist--table .vlist-viewport{flex:1;min-height:0;height:auto;overflow:auto}.vlist--table .vlist-table-header{position:static}.vlist--page.vlist--table>[role="rowgroup"]{position:sticky;top:var(--vlist-page-pad,0px);z-index:6;height:var(--vlist-table-header-height,auto)}.vlist--page.vlist--table .vlist-table-header{position:sticky;top:var(--vlist-page-pad,0px);z-index:6}.vlist--table .vlist-scrollbar__hover{top:var(--vlist-table-header-height,0px);height:calc(100% - var(--vlist-table-header-height,0px))}.vlist--table .vlist-viewport--custom-scrollbar::-webkit-scrollbar{display:block;width:0}.vlist--table .vlist-content{contain:layout style}.vlist-table-header{position:absolute;top:0;left:0;right:0;z-index:5;overflow:hidden;display:flex;align-items:stretch;box-sizing:border-box;will-change:scroll-position;contain:layout style;background-color:var(--vlist-bg,#ffffff);border-bottom:1px solid var(--vlist-border,#e5e7eb);font-weight:600;font-size:0.8125rem;letter-spacing:0.01em;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-scroll{position:relative;display:flex;align-items:stretch;height:100%;min-width:100%;flex-shrink:0}.vlist-table-header-scroll:dir(rtl){flex-direction:row-reverse}.vlist-table-header-cell{position:relative;display:flex;align-items:center;height:100%;box-sizing:border-box;flex-shrink:0;user-select:none;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);border-right:1px solid transparent;transition:background-color 0.15s ease}.vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-header-cell--sortable{cursor:pointer}.vlist-table-header-cell--sortable:active{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-header-cell--center{justify-content:center}.vlist-table-header-cell--right{justify-content:flex-end}.vlist-table-header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.vlist-table-header-sort{position:relative;margin-left:4px;flex-shrink:0;opacity:0;font-size:0.7em;transition:opacity 0.15s ease;pointer-events:none;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-sort[data-sort-priority]::after{content:attr(data-sort-priority);font-size:9px;margin-left:1px;vertical-align:super}.vlist-table-header-resize{position:absolute;top:0;right:-3px;bottom:0;width:5px;cursor:col-resize;z-index:2;touch-action:none;opacity:0;transition:opacity 0.15s ease}.vlist-table-header-resize::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background-color:var(--vlist-border,#e5e7eb);transition:background-color 0.15s ease}.vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}.vlist-table-header-cell:hover .vlist-table-header-resize{opacity:1}.vlist-table-header-resize--active{opacity:1}.vlist-table-header-resize--active::after{background-color:var(--vlist-border-selected,#3b82f6)}.vlist--col-resizing,.vlist--col-resizing *{cursor:col-resize !important;user-select:none !important}.vlist-table-row{position:absolute;top:0;left:0;display:flex;box-sizing:border-box;contain:content;border-bottom:none;background-color:var(--vlist-bg,#ffffff);cursor:default;user-select:none;transition:background-color var(--vlist-transition-duration,150ms) var(--vlist-transition-timing,ease-in-out);will-change:transform}.vlist--scrolling .vlist-table-row{transition:none}.vlist-table-row.vlist-item--odd{background:var( --vlist-bg-striped,var(--vlist-bg-hover,rgba(0,0,0,0.02)) )}.vlist--selectable .vlist-table-row{cursor:pointer}.vlist--selectable .vlist-table-row:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-row.vlist-item--selected{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-row.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist--selectable .vlist-table-row.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist--selectable .vlist-table-row.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist-table-row.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-table-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);font-size:0.875rem;color:var(--vlist-text,#111827)}.vlist-table-cell--center{text-align:center;justify-content:center}.vlist-table-cell--right{text-align:right;justify-content:flex-end}.vlist--table-row-borders .vlist-table-row{border-bottom:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-cell{border-right:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-header-cell{border-right-color:var(--vlist-border,#e5e7eb)}.vlist-table-group-header{display:flex;align-items:center;background-color:var(--vlist-group-header-bg,#f3f4f6);cursor:default}.vlist-table-group-header-content{display:flex;align-items:center;gap:12px;padding:0 16px;height:100%;background:var(--vlist-group-header-bg,#f3f4f6)}.vlist--table-row-borders .vlist-table-group-header{border-bottom:1px solid var(--vlist-border)}.vlist--table.vlist--grouped .vlist-sticky-header{order:1;z-index:4;border-bottom:none}.vlist--table.vlist--grouped .vlist-sticky-header .sticky-group{display:flex;font-size:0.8125rem;padding:0 16px;align-items:center;gap:12px;height:100%;color:var(--vlist-text-muted,#9ca3af)}.vlist--table.vlist--grouped .vlist-viewport{order:2}[data-theme-mode="dark"] .vlist-table-header,.dark .vlist-table-header{background-color:var(--vlist-bg,#111827);color:var(--vlist-text-muted,#9ca3af);border-bottom-color:var(--vlist-border,#374151)}[data-theme-mode="dark"] .vlist-table-header-cell:hover,.dark .vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(255,255,255,0.06))}[data-theme-mode="dark"] .vlist-table-header-resize::after,.dark .vlist-table-header-resize::after{background-color:var(--vlist-border,#374151)}[data-theme-mode="dark"] .vlist-table-header-resize:hover::after,.dark .vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}[data-theme-mode="dark"] .vlist-table-group-header,.dark .vlist-table-group-header{background-color:var(--vlist-group-header-bg,#1f2937)}[data-theme-mode="dark"] .vlist-table-group-header-content,.dark .vlist-table-group-header-content{color:var(--vlist-text-muted,#9ca3af)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header{background-color:var(--vlist-bg,#111827);color:var(--vlist-text-muted,#9ca3af);border-bottom-color:var(--vlist-border,#374151)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(255,255,255,0.06))}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-resize::after{background-color:var(--vlist-border,#374151)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-group-header{background-color:var(--vlist-group-header-bg,#1f2937)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-group-header-content{color:var(--vlist-text-muted,#9ca3af)}}.vlist-table-row.vlist-item--placeholder .vlist-table-cell{color:transparent}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*{color:transparent;background-color:var(--vlist-border,#e5e7eb);border-radius:4px;animation:vlist-placeholder-pulse 2s ease-in-out infinite;line-height:1;min-width:1em}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>.vlist-table-cell-skeleton{display:inline-block;width:60%;height:0.8em}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*>*{visibility:hidden}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*[style]{background:var(--vlist-border,#e5e7eb) !important;color:transparent !important}[data-theme-mode="dark"] .vlist--table-row-borders .vlist-table-group-header,.dark .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}}
|
|
1
|
+
.vlist--table{display:flex;flex-direction:column;overflow:hidden;min-height:inherit}.vlist--table .vlist-viewport{flex:1;min-height:0;height:auto;overflow:auto}.vlist--table .vlist-table-header{position:static}.vlist--page.vlist--table>[role="rowgroup"]{position:sticky;top:var(--vlist-page-pad,0px);z-index:6;height:var(--vlist-table-header-height,auto)}.vlist--page.vlist--table .vlist-table-header{position:sticky;top:var(--vlist-page-pad,0px);z-index:6}.vlist--table .vlist-scrollbar__hover{top:var(--vlist-table-header-height,0px);height:calc(100% - var(--vlist-table-header-height,0px))}.vlist--table .vlist-viewport--custom-scrollbar::-webkit-scrollbar{display:block;width:0}.vlist--table .vlist-content{contain:layout style}.vlist-table-header{position:absolute;top:0;left:0;right:0;z-index:5;overflow:hidden;display:flex;align-items:stretch;box-sizing:border-box;will-change:scroll-position;contain:layout style;background-color:var(--vlist-bg,#ffffff);border-bottom:1px solid var(--vlist-border,#e5e7eb);font-weight:600;font-size:0.8125rem;letter-spacing:0.01em;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-scroll{position:relative;display:flex;align-items:stretch;height:100%;min-width:100%;flex-shrink:0}.vlist-table-header-scroll:dir(rtl){flex-direction:row-reverse}.vlist-table-header-cell{position:relative;display:flex;align-items:center;height:100%;box-sizing:border-box;flex-shrink:0;user-select:none;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);border-right:1px solid transparent;transition:background-color 0.15s ease}.vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-header-cell:focus-visible{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px}.vlist-table-header-cell--sortable{cursor:pointer}.vlist-table-header-cell--sortable:active{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-header-cell--center{justify-content:center}.vlist-table-header-cell--right{justify-content:flex-end}.vlist-table-header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.vlist-table-header-sort{position:relative;margin-left:4px;flex-shrink:0;opacity:0;font-size:0.7em;transition:opacity 0.15s ease;pointer-events:none;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-sort[data-sort-priority]::after{content:attr(data-sort-priority);font-size:9px;margin-left:1px;vertical-align:super}.vlist-table-header-resize{position:absolute;top:0;right:-3px;bottom:0;width:5px;cursor:col-resize;z-index:2;touch-action:none;opacity:0;transition:opacity 0.15s ease}.vlist-table-header-resize::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background-color:var(--vlist-border,#e5e7eb);transition:background-color 0.15s ease}.vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}.vlist-table-header-cell:hover .vlist-table-header-resize{opacity:1}.vlist-table-header-resize--active{opacity:1}.vlist-table-header-resize--active::after{background-color:var(--vlist-border-selected,#3b82f6)}.vlist--col-resizing,.vlist--col-resizing *{cursor:col-resize !important;user-select:none !important}.vlist-table-row{position:absolute;top:0;left:0;display:flex;box-sizing:border-box;contain:content;border-bottom:none;background-color:var(--vlist-bg,#ffffff);cursor:default;user-select:none;transition:background-color var(--vlist-transition-duration,150ms) var(--vlist-transition-timing,ease-in-out);will-change:transform}.vlist--scrolling .vlist-table-row{transition:none}.vlist-table-row.vlist-item--odd{background:var( --vlist-bg-striped,var(--vlist-bg-hover,rgba(0,0,0,0.02)) )}.vlist--selectable .vlist-table-row{cursor:pointer}.vlist--selectable .vlist-table-row:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-row.vlist-item--selected{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-row.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist--selectable .vlist-table-row.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist--selectable .vlist-table-row.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist-table-row.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-table-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);font-size:0.875rem;color:var(--vlist-text,#111827)}.vlist-table-cell--center{text-align:center;justify-content:center}.vlist-table-cell--right{text-align:right;justify-content:flex-end}.vlist--table-row-borders .vlist-table-row{border-bottom:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-cell{border-right:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-header-cell{border-right-color:var(--vlist-border,#e5e7eb)}.vlist-table-header-cell--pin-left,.vlist-table-header-cell--pin-right{z-index:3;background-color:var(--vlist-bg,#ffffff)}.vlist-table-header-cell--pin-left{transform:translateX(var(--vlist-table-pin-left,0px))}.vlist-table-header-cell--pin-right{transform:translateX(var(--vlist-table-pin-right,0px))}.vlist-table-header-cell--pin-left:hover,.vlist-table-header-cell--pin-right:hover{background-color:var(--vlist-bg,#ffffff);background-image:linear-gradient( var(--vlist-bg-hover,rgba(0,0,0,0.04)),var(--vlist-bg-hover,rgba(0,0,0,0.04)) )}.vlist-table-cell--pin-left,.vlist-table-cell--pin-right{z-index:2;background-color:var(--vlist-bg,#ffffff)}.vlist-table-cell--pin-left{transform:translateX(var(--vlist-table-pin-left,0px))}.vlist-table-cell--pin-right{transform:translateX(var(--vlist-table-pin-right,0px))}.vlist-table-row.vlist-item--odd .vlist-table-cell--pin-left,.vlist-table-row.vlist-item--odd .vlist-table-cell--pin-right{background-image:linear-gradient( var(--vlist-bg-striped,var(--vlist-bg-hover,rgba(0,0,0,0.02))),var(--vlist-bg-striped,var(--vlist-bg-hover,rgba(0,0,0,0.02))) )}.vlist--selectable .vlist-table-row:hover .vlist-table-cell--pin-left,.vlist--selectable .vlist-table-row:hover .vlist-table-cell--pin-right{background-image:linear-gradient( var(--vlist-bg-hover,rgba(0,0,0,0.04)),var(--vlist-bg-hover,rgba(0,0,0,0.04)) )}.vlist-table-row.vlist-item--selected .vlist-table-cell--pin-left,.vlist-table-row.vlist-item--selected .vlist-table-cell--pin-right{background-image:linear-gradient( var(--vlist-bg-selected,rgba(59,130,246,0.12)),var(--vlist-bg-selected,rgba(59,130,246,0.12)) )}.vlist--selectable .vlist-table-row.vlist-item--selected:hover .vlist-table-cell--pin-left,.vlist--selectable .vlist-table-row.vlist-item--selected:hover .vlist-table-cell--pin-right{background-image:linear-gradient( var(--vlist-bg-selected-hover,rgba(59,130,246,0.18)),var(--vlist-bg-selected-hover,rgba(59,130,246,0.18)) )}.vlist-table-header-cell--pin-left-last,.vlist-table-cell--pin-left-last{border-right:1px solid var(--vlist-border,#e5e7eb)}.vlist-table-header-cell--pin-right-first,.vlist-table-cell--pin-right-first{border-left:1px solid var(--vlist-border,#e5e7eb)}.vlist--col-reordering,.vlist--col-reordering *{cursor:grabbing !important;user-select:none}.vlist-table-header-cell--dragging{opacity:0.55;background-color:var(--vlist-bg-hover,rgba(59,130,246,0.08))}.vlist-table-drop-indicator{position:absolute;top:0;bottom:0;left:0;width:2px;background-color:var(--vlist-focus-ring,#3b82f6);z-index:7;pointer-events:none;will-change:transform}.vlist-table-group-header{display:flex;align-items:center;background-color:var(--vlist-group-header-bg,#f3f4f6);cursor:default}.vlist-table-group-header-content{display:flex;align-items:center;gap:12px;padding:0 16px;height:100%;background:var(--vlist-group-header-bg,#f3f4f6)}.vlist--table-row-borders .vlist-table-group-header{border-bottom:1px solid var(--vlist-border)}.vlist--table.vlist--grouped .vlist-sticky-header{order:1;z-index:4;border-bottom:none}.vlist--table.vlist--grouped .vlist-sticky-header .sticky-group{display:flex;font-size:0.8125rem;padding:0 16px;align-items:center;gap:12px;height:100%;color:var(--vlist-text-muted,#9ca3af)}.vlist--table.vlist--grouped .vlist-viewport{order:2}[data-theme-mode="dark"] .vlist-table-header,.dark .vlist-table-header{background-color:var(--vlist-bg,#111827);color:var(--vlist-text-muted,#9ca3af);border-bottom-color:var(--vlist-border,#374151)}[data-theme-mode="dark"] .vlist-table-header-cell:hover,.dark .vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(255,255,255,0.06))}[data-theme-mode="dark"] .vlist-table-header-resize::after,.dark .vlist-table-header-resize::after{background-color:var(--vlist-border,#374151)}[data-theme-mode="dark"] .vlist-table-header-resize:hover::after,.dark .vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}[data-theme-mode="dark"] .vlist-table-group-header,.dark .vlist-table-group-header{background-color:var(--vlist-group-header-bg,#1f2937)}[data-theme-mode="dark"] .vlist-table-group-header-content,.dark .vlist-table-group-header-content{color:var(--vlist-text-muted,#9ca3af)}[data-theme-mode="dark"] .vlist-table-header-cell--pin-left,[data-theme-mode="dark"] .vlist-table-header-cell--pin-right,[data-theme-mode="dark"] .vlist-table-cell--pin-left,[data-theme-mode="dark"] .vlist-table-cell--pin-right,.dark .vlist-table-header-cell--pin-left,.dark .vlist-table-header-cell--pin-right,.dark .vlist-table-cell--pin-left,.dark .vlist-table-cell--pin-right{background-color:var(--vlist-bg,#111827)}[data-theme-mode="dark"] .vlist-table-header-cell--pin-left-last,[data-theme-mode="dark"] .vlist-table-cell--pin-left-last,.dark .vlist-table-header-cell--pin-left-last,.dark .vlist-table-cell--pin-left-last{border-right-color:var(--vlist-border,#374151)}[data-theme-mode="dark"] .vlist-table-header-cell--pin-right-first,[data-theme-mode="dark"] .vlist-table-cell--pin-right-first,.dark .vlist-table-header-cell--pin-right-first,.dark .vlist-table-cell--pin-right-first{border-left-color:var(--vlist-border,#374151)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header{background-color:var(--vlist-bg,#111827);color:var(--vlist-text-muted,#9ca3af);border-bottom-color:var(--vlist-border,#374151)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(255,255,255,0.06))}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-resize::after{background-color:var(--vlist-border,#374151)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-group-header{background-color:var(--vlist-group-header-bg,#1f2937)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-group-header-content{color:var(--vlist-text-muted,#9ca3af)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-cell--pin-left,:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-cell--pin-right,:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-cell--pin-left,:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-cell--pin-right{background-color:var(--vlist-bg,#111827)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-cell--pin-left-last,:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-cell--pin-left-last{border-right-color:var(--vlist-border,#374151)}:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-header-cell--pin-right-first,:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist-table-cell--pin-right-first{border-left-color:var(--vlist-border,#374151)}}.vlist-table-row.vlist-item--placeholder .vlist-table-cell{color:transparent}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*{color:transparent;background-color:var(--vlist-border,#e5e7eb);border-radius:4px;animation:vlist-placeholder-pulse 2s ease-in-out infinite;line-height:1;min-width:1em}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>.vlist-table-cell-skeleton{display:inline-block;width:60%;height:0.8em}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*>*{visibility:hidden}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*[style]{background:var(--vlist-border,#e5e7eb) !important;color:transparent !important}[data-theme-mode="dark"] .vlist--table-row-borders .vlist-table-group-header,.dark .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}}
|
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-track-color:transparent;--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);--vlist-placeholder-bg-strong:rgba(0,0,0,0.24)}[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);--vlist-placeholder-bg-strong:rgba(255,255,255,0.35)}@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);--vlist-placeholder-bg-strong:rgba(255,255,255,0.35)}}.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-placeholder-bg-strong:rgba(255,255,255,0.35)}.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-content:focus,.vlist-content: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%;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>:only-child,.vlist-group-header>:only-child{flex:1 1 auto;min-width:0}.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--placeholder *:not(:has(*)){color:transparent;background-color:var(--vlist-placeholder-bg);border-radius:4px;width:fit-content;line-height:1.2;transform:scaleY(0.8)}.vlist-item--placeholder:is(strong,b,h1,h2,h3,h4):not(:has(*)){background-color:var(--vlist-placeholder-bg-strong)}.vlist-item.vlist-item--selected.vlist-item--focused{outline-color:var(--vlist-border-selected)}.vlist-scrollbar:focus-visible{outline:2px solid currentColor;outline-offset:-2px;opacity:1;pointer-events:auto}.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;touch-action:none;z-index:10;pointer-events:none}.vlist-scrollbar__hover{position:absolute;top:0;right:0;height:100%;z-index:9;touch-action:none;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)}@media (forced-colors:active){.vlist-scrollbar{forced-color-adjust:none;background-color:Canvas}.vlist-scrollbar__thumb{background-color:CanvasText}.vlist-scrollbar__thumb:hover,.vlist-scrollbar--dragging .vlist-scrollbar__thumb{background-color:Highlight}.vlist-scrollbar:focus-visible{outline-color:Highlight}}.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--page .vlist-sticky-header{position:sticky;z-index:4;top:calc(var(--vlist-page-pad,0px) + var(--vlist-table-header-height,0px))}.vlist--page.vlist--horizontal .vlist-sticky-header{top:0;left:calc(var(--vlist-page-pad,0px) + var(--vlist-table-header-height,0px))}.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-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}.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--touch-sort{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.vlist-sort-ghost--touch{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:2px}.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--sorting *{cursor:inherit !important}.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-track-color:transparent;--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);--vlist-placeholder-bg-strong:rgba(0,0,0,0.24)}[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);--vlist-placeholder-bg-strong:rgba(255,255,255,0.35)}@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);--vlist-placeholder-bg-strong:rgba(255,255,255,0.35)}}.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-placeholder-bg-strong:rgba(255,255,255,0.35)}.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-content:focus,.vlist-content: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%;contain:layout style}.vlist--autosize .vlist-content{contain:layout style paint}.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>:only-child,.vlist-group-header>:only-child{flex:1 1 auto;min-width:0}.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--placeholder *:not(:has(*)){color:transparent;background-color:var(--vlist-placeholder-bg);border-radius:4px;width:fit-content;line-height:1.2;transform:scaleY(0.8)}.vlist-item--placeholder:is(strong,b,h1,h2,h3,h4):not(:has(*)){background-color:var(--vlist-placeholder-bg-strong)}.vlist-item.vlist-item--selected.vlist-item--focused{outline-color:var(--vlist-border-selected)}.vlist-scrollbar:focus-visible{outline:2px solid currentColor;outline-offset:-2px;opacity:1;pointer-events:auto}.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;touch-action:none;z-index:10;pointer-events:none}.vlist-scrollbar__hover{position:absolute;top:0;right:0;height:100%;z-index:9;touch-action:none;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)}@media (forced-colors:active){.vlist-scrollbar{forced-color-adjust:none;background-color:Canvas}.vlist-scrollbar__thumb{background-color:CanvasText}.vlist-scrollbar__thumb:hover,.vlist-scrollbar--dragging .vlist-scrollbar__thumb{background-color:Highlight}.vlist-scrollbar:focus-visible{outline-color:Highlight}}.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--page .vlist-sticky-header{position:sticky;z-index:4;top:calc(var(--vlist-page-pad,0px) + var(--vlist-table-header-height,0px))}.vlist--page.vlist--horizontal .vlist-sticky-header{top:0;left:calc(var(--vlist-page-pad,0px) + var(--vlist-table-header-height,0px))}.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-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}.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--touch-sort{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.vlist-sort-ghost--touch{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:2px}.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--sorting *{cursor:inherit !important}.vlist-item--kb-sorting{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;background-color:var(--vlist-bg-selected);z-index:1}
|