vlist 3.3.6 → 3.4.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/dist/internals.js CHANGED
@@ -1 +1 @@
1
- var tt="x",nt=20,We="_isPlaceholder",we="__placeholder_";function Re(t){let e=t.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let o=0;o<e.length;o++)e[o].setAttribute("tabindex","-1");t._stamp=0}var ke={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},Ye=(t,e)=>{let o=0,r=t.length-1;while(o<r){let s=o+r+1>>>1;if(t[s].headerLayoutIndex<=e)o=s;else r=s-1}return o},rt=(t,e)=>{let o=0,r=t.length-1;while(o<r){let s=o+r+1>>>1;if(t[s].firstDataIndex<=e)o=s;else r=s-1}return o},ot=(t,e,o)=>{if(t===0)return[];let r=[],s=null,a=0,i=0;for(let p=0;p<t;p++){let H=o?.(p);if(!H)continue;let L=e(p,H);if(s===null)s=L,a=0;else if(L!==s){let g=p-a;r.push({key:s,groupIndex:r.length,headerLayoutIndex:i,firstDataIndex:a,count:g}),i=i+1+g,s=L,a=p}}if(s!==null)r.push({key:s,groupIndex:r.length,headerLayoutIndex:i,firstDataIndex:a,count:t-a});return r},st=(t,e)=>{if(t.length===0||e.length===0)return[];let o=t.length+e.length,r=Array(o),s=0;for(let a of e){r[s]={id:`__group_header_${a.groupIndex}`,__groupHeader:!0,groupKey:a.key,groupIndex:a.groupIndex},s++;for(let i=0;i<a.count;i++)r[s]=t[a.firstDataIndex+i],s++}return r},at=(t,e,o=!1)=>{let r=typeof e==="number"?(s)=>e:e;return(s)=>{let a=t.getEntry(s);if(a.type==="header"){if(o&&a.group.groupIndex===0)return 0;return t.getHeaderHeight(a.group.groupIndex)}return r(a.dataIndex)}},it=(t,e,o)=>{let r=ot(t,e.getGroupForIndex,o),s=t+r.length,a=e.header?.height??e.header?.width??e.headerHeight,i=typeof a==="number"?(b)=>a:(b)=>{let h=r[b];if(!h)return 0;return a(h.key,b)},p={type:"header",group:ke},H={type:"item",dataIndex:0,group:ke};return{get totalEntries(){return s},get groupCount(){return r.length},get groups(){return r},getEntry:(b)=>{if(r.length===0)return H.dataIndex=b,H.group=ke,H;let h=Ye(r,b),l=r[h];if(b===l.headerLayoutIndex)return p.group=l,p;let y=b-l.headerLayoutIndex-1;return H.dataIndex=l.firstDataIndex+y,H.group=l,H},layoutToDataIndex:(b)=>{if(r.length===0)return b;let h=Ye(r,b),l=r[h];if(b===l.headerLayoutIndex)return-1;let y=b-l.headerLayoutIndex-1;return l.firstDataIndex+y},dataToLayoutIndex:(b)=>{if(r.length===0)return b;let h=rt(r,b),l=r[h],y=b-l.firstDataIndex;return l.headerLayoutIndex+1+y},getGroupAtLayoutIndex:(b)=>{if(r.length===0)return ke;let h=Ye(r,b);return r[h]},getGroupAtDataIndex:(b)=>{if(r.length===0)return ke;let h=rt(r,b);return r[h]},getHeaderHeight:i,rebuild:(b,h)=>{r=ot(b,e.getGroupForIndex,h??o),s=b+r.length}}};var Rt=(t,e,o,r,s=0)=>{let a=o?"width":"height",i=document.createElement("div");return i.className=`${e}-sticky-header`,i.setAttribute("role","presentation"),i.setAttribute("aria-hidden","true"),i.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(o?`position:absolute;top:0;bottom:0;left:${s||0}px`:`position:relative;top:${s||0}px`),i.style[a]=`${r}px`,t.insertBefore(i,t.firstChild),i},lt=(t,e,o,r,s,a=!1,i=0,p,H)=>{let L=a?"width":"height",g=a?"height":"width",P=a?"X":"Y",G=(R,f)=>{R.style[L]=`${f}px`},S=p??Rt(t,s,a,0,i),B=()=>{let R=document.createElement("div");return R.className="sticky-group",R.style.position="absolute",R.style.willChange="transform",R.style[g]="100%",R},b=B(),h=B();S.append(b,h);let l=b,y=h,m=e.groups,E=[],D=[],O=[],w=0,V=()=>{m=e.groups,w=m.length,E=Array(w),D=Array(w),O=Array(w);for(let R=0;R<w;R++)E[R]=H?H(m[R].headerLayoutIndex):o.getOffset(m[R].headerLayoutIndex),D[R]=e.getHeaderHeight(R),O[R]=D[R]};V();let k=-1,Z=0,Y=0,re=-1,ae=!1,Se=0,me=!1,pe=(R,f)=>{r(R,f);let M=D[f];return G(R,M),M},d=(R)=>{R.replaceChildren(),R.style.transform=""},n=(R)=>{if(R===k)return;if(k=R,Z=0,Y=0,R<0||R>=w){d(l);return}Z=pe(l,R),Y=O[R],G(S,Z),l.style.transform=""},u=(R)=>{if(R===Se)return;Se=R;let f=Math.round(R);l.style.transform=`translate${P}(${f}px)`,y.style.transform=`translate${P}(${f+Z}px)`},c=()=>{Se=0,l.style.transform="",y.style.transform=""},C=()=>{if(!me)return;let R=l;l=y,y=R,k=re,Z=k>=0?D[k]:0,Y=k>=0?O[k]:0,G(S,Z),d(y),re=-1,me=!1,c()},x=()=>{if(!me)return;d(y),re=-1,me=!1,c()},j=!!p,N=()=>{if(ae)return;if(ae=!0,j)S.style.visibility="";else S.style.display=""},_=()=>{if(!ae)return;if(ae=!1,j)S.style.visibility="hidden";else S.style.display="none";d(l),k=-1,Z=0,Y=0,x()},F=(R)=>{if(w===0){if(me)x();if(!ae)N();n(-1);return}if(R<E[0]){_();return}let f=0,M=w-1;while(f<M){let W=f+M+1>>>1;if(E[W]+O[W]<=R)f=W;else M=W-1}if(!ae)N();n(f);let X=f+1;if(X<w){let W=E[X]-R;if(W<=0&&W>-Y){if(re!==X||!me)re=X,pe(y,X),me=!0;let K=Y>0?W/Y*Z:W;u(K)}else if(W<=-Y){if(me)C()}else if(me)x()}else if(me)x()},J=()=>{V();let R=k;if(k=-1,Z=0,Y=0,R>=0)n(R)},U=()=>{S.remove(),k=-1,Z=0,Y=0,re=-1,ae=!1,me=!1};if(!p)S.style.display="none";return{update:F,refresh:J,show:N,hide:_,destroy:U}};var ut=(t)=>t!==null&&typeof t==="object"&&t.__groupHeader===!0;var ct=(t)=>{let e=Math.max(1,Math.floor(t.columns)),o=t.gap??0,r=t.isHeaderFn,s={row:0,col:0},a=(b)=>{if(b<=0)return 0;if(!r)return Math.ceil(b/e);let h=0,l=0,y=0;for(let m=0;m<b;m++)if(r(m)){if(y++,l)h++,l=0;h++,l=0}else if(l++,l>=e)h++,l=0;if(l)h++;return h},i=(b)=>(s.row=p(b),s.col=H(b),s),p=(b)=>{if(!r)return Math.floor(b/e);let h=0,l=0;for(let y=0;y<=b;y++)if(r(y)){if(l)h++,l=0;if(y===b)return h;h++,l=0}else{if(y===b)return h;if(l++,l>=e)h++,l=0}return h},H=(b)=>{if(!r)return b%e;if(r(b))return 0;let h=0;for(let l=0;l<=b;l++)if(r(l))h=0;else{if(l===b)return h;if(h++,h>=e)h=0}return h},L=(b,h,l,y)=>{if(l<=0){y.start=0,y.end=-1;return}if(!r){y.start=Math.max(0,b*e),y.end=Math.min(l-1,(h+1)*e-1);return}let m=g(b,h,l);y.start=m.start,y.end=m.end},g=(b,h,l)=>{if(l<=0)return{start:0,end:-1};if(!r){let O=Math.max(0,b*e),w=Math.min(l-1,(h+1)*e-1);return{start:O,end:w}}let y=-1,m=-1,E=0,D=0;for(let O=0;O<l;O++){if(r(O)){if(D)E++,D=0;if(E>=b&&E<=h){if(y<0)y=O;m=O}E++,D=0}else{if(E>=b&&E<=h){if(y<0)y=O;m=O}if(D++,D>=e)E++,D=0}if(E>h&&!D)break}if(y<0)return{start:0,end:-1};return{start:y,end:m}},P=(b,h,l)=>{if(h<0||h>=e)return-1;let y=b*e+h;if(y<0||y>=l)return-1;return y},G=(b)=>{let h=(e-1)*o;return Math.max(0,(b-h)/e)};return{get columns(){return e},get gap(){return o},update:(b)=>{if(b.columns!==void 0)e=Math.max(1,Math.floor(b.columns));if(b.gap!==void 0)o=b.gap;if(b.isHeaderFn!==void 0)r=b.isHeaderFn},getTotalRows:a,getPosition:i,getRow:p,getCol:H,getItemRange:g,fillItemRange:L,getItemIndex:P,getColumnWidth:G,getColumnOffset:(b,h)=>{let l=G(h);return b*(l+o)}}};var dt=(t,e=50,o=1/0,r=!0,s="none")=>{let a=t,i=[],p=0,H=0,L=()=>{i=a.map((m,E)=>({def:m,index:E,width:0,minWidth:wt(m.minWidth??e,1),maxWidth:m.maxWidth??o,resizable:m.resizable??r,offset:0}))},g=()=>{if(s==="none"||p<=0||p>=H)return;if(s==="spacer"){p=H;return}let m=H-p,E=p;for(let D=0;D<i.length;D++){let O=i[D];O.width=$e(O.width+m*(O.width/E),O.minWidth,O.maxWidth)}G()},P=(m)=>{if(H=m,i.length===0){p=0;return}let E=0,D=0;for(let O=0;O<i.length;O++){let w=i[O],V=w.def;if(V.width!==void 0)w.width=$e(V.width,w.minWidth,w.maxWidth),E+=w.width;else D++}if(D){let w=Math.max(0,m-E)/D;for(let V=0;V<i.length;V++){let k=i[V];if(k.def.width===void 0)k.width=$e(w,k.minWidth,k.maxWidth)}}G(),g()},G=()=>{let m=0;for(let E=0;E<i.length;E++){let D=i[E];D.offset=m,m+=D.width}p=m},S=(m,E)=>{if(m<0||m>=i.length)return 0;let D=i[m];if(!D.resizable)return D.width;let O=$e(E,D.minWidth,D.maxWidth);if(D.width=O,G(),s==="spacer")g();return O},B=(m)=>i[m],b=(m)=>{if(i.length===0)return;if(m<0)return i[0];if(m>=p)return i[i.length-1];let E=0,D=i.length-1;while(E<D){let O=E+D>>>1,w=i[O];if(m<w.offset)D=O-1;else if(m>=w.offset+w.width)E=O+1;else return w}return i[E]},h=(m)=>{if(m<0||m>=i.length)return 0;return i[m].offset},l=(m)=>{if(m<0||m>=i.length)return 0;return i[m].width},y=(m)=>{a=m,L()};return L(),{get columns(){return i},get totalWidth(){return p},resolve:P,updateColumns:y,resizeColumn:S,getColumn:B,getColumnAtX:b,getColumnOffset:h,getColumnWidth:l}},$e=(t,e,o)=>Math.min(o,Math.max(e,t)),wt=(t,e)=>Math.max(e,t);var mt=(t,e,o,r,s,a)=>{let i=document.createElement("div");i.setAttribute("role","rowgroup");let p=document.createElement("div");p.className=`${o}-table-header`,p.setAttribute("role","row"),p.setAttribute("aria-rowindex","1"),p.style.height=`${e}px`;let H=document.createElement("div");H.className=`${o}-table-header-scroll`,H.setAttribute("role","presentation"),p.appendChild(H),i.appendChild(p),t.insertBefore(i,t.firstChild),t.style.setProperty("--vlist-table-header-height",`${e}px`);let L=[],g=[],P=!0,G=null,S="asc",B=null,b=!1,h=-1,l=0,y=0,m=0,E=(n,u)=>{let c=document.createElement("div");c.className=`${o}-table-header-cell`,c.setAttribute("role","columnheader"),c.setAttribute("aria-colindex",String(u+1)),c.tabIndex=u?-1:0,c.dataset.columnKey=n.def.key,c.addEventListener("focusin",()=>{L[m]?.setAttribute("tabindex","-1"),m=u,c.tabIndex=0});let C=n.def.align;if(C==="center")c.classList.add(`${o}-table-header-cell--center`);else if(C==="right")c.classList.add(`${o}-table-header-cell--right`);let x=document.createElement("div");x.className=`${o}-table-header-content`;let j=n.def.header?n.def.header(n.def):n.def.label;if(typeof j==="string")x.textContent=j;else x.appendChild(j);if(c.appendChild(x),n.def.sortable){let N=document.createElement("span");N.className=`${o}-table-header-sort`,N.setAttribute("aria-hidden","true"),c.appendChild(N),g.push(N),c.classList.add(`${o}-table-header-cell--sortable`)}else g.push(null);if(n.resizable){let N=document.createElement("div");N.className=`${o}-table-header-resize`,N.dataset.resizeIndex=String(u),c.appendChild(N)}return c},D=(n)=>{B=n,H.textContent="",L=[],g=[],m=0;let u=n.columns;for(let c=0;c<u.length;c++){let C=u[c],x=E(C,c);L.push(x),H.appendChild(x)}if(O(n),G)w(G,S)},O=(n)=>{B=n;let u=n.columns;H.style.width=`${n.totalWidth}px`;for(let c=0;c<L.length&&c<u.length;c++){let C=L[c],x=u[c];C.style.width=`${x.width}px`}},w=(n,u)=>{if(G=n,S=u,!B)return;let c=B.columns;for(let C=0;C<g.length&&C<c.length;C++){let x=g[C];if(!x)continue;if(c[C].def.key===n)x.textContent=u==="asc"?"▲":"▼",x.style.opacity="0.7",L[C].setAttribute("aria-sort",u==="asc"?"ascending":"descending");else x.textContent="",x.style.opacity="0",L[C].removeAttribute("aria-sort")}},V=(n)=>{H.style.transform=`translateX(${-n}px)`},k=(n)=>{let u=n.target;if(!u.dataset.resizeIndex)return;if(n.preventDefault(),n.stopPropagation(),h=+u.dataset.resizeIndex,!B)return;let c=B.getColumn(h);if(!c?.resizable)return;b=!0,l=n.clientX,y=c.width,t.classList.add(`${o}--col-resizing`),t.style.cursor="col-resize",u.classList.add(`${o}-table-header-resize--active`),u.setPointerCapture(n.pointerId),u.addEventListener("pointermove",Z),u.addEventListener("pointerup",Y),u.addEventListener("pointercancel",Y)},Z=(n)=>{if(!b||!B)return;let u=n.clientX-l;if(Math.abs(u)<1)return;let c=Math.max(0,y+u);r(h,c)},Y=(n)=>{if(!b)return;let u=n.target;u.removeEventListener("pointermove",Z),u.removeEventListener("pointerup",Y),u.removeEventListener("pointercancel",Y);try{u.releasePointerCapture(n.pointerId)}catch{}u.classList.remove(`${o}-table-header-resize--active`),t.classList.remove(`${o}--col-resizing`),t.style.cursor="",b=!1,h=-1},re=(n)=>{let u=n.target;if(u.dataset.resizeIndex)return;if(b)return;let c=u;while(c&&!c.dataset.columnKey)if(c=c.parentElement,c===p||c===null)return;let C=c.dataset.columnKey;if(!B)return;let x=B.columns,j=-1;for(let F=0;F<x.length;F++)if(x[F].def.key===C){j=F;break}if(j===-1)return;let N=u.closest("a[href],button,input,select,textarea,[tabindex]");if(N&&N!==c)return;let _=x[j];if(a)a({key:C,index:j,event:n});if(_.def.sortable&&s){let F;if(G===C)F=S==="asc"?"desc":null;else F="asc";s({key:C,index:j,direction:F})}},ae=(n)=>{if(n<0||n>=L.length)return;L[m]?.setAttribute("tabindex","-1"),m=n;let u=L[m];u.tabIndex=0,u.focus()},Se=(n)=>{let u=n.key,c=n.target.closest("a[href],button,input,select,textarea,[tabindex]");if(c&&!c.hasAttribute("data-column-key"))return;if(u==="ArrowRight"){if(n.ctrlKey||n.metaKey){if(!B)return;let C=B.getColumn(m);if(C?.resizable)r(m,C.width+10),n.preventDefault()}else if(m<L.length-1)ae(m+1),n.preventDefault();n.stopPropagation();return}if(u==="ArrowLeft"){if(n.ctrlKey||n.metaKey){if(!B)return;let C=B.getColumn(m);if(C?.resizable)r(m,C.width-10),n.preventDefault()}else if(m>0)ae(m-1),n.preventDefault();n.stopPropagation();return}if(u==="Home"){ae(0),n.preventDefault(),n.stopPropagation();return}if(u==="End"){ae(L.length-1),n.preventDefault(),n.stopPropagation();return}if(u==="Enter"||u===" "){if(!B)return;let C=B.getColumn(m);if(C?.def.sortable&&s){let x;if(G===C.def.key)x=S==="asc"?"desc":null;else x="asc";s({key:C.def.key,index:m,direction:x}),n.preventDefault()}n.stopPropagation();return}if(u==="ArrowDown"){t.focus(),n.preventDefault(),n.stopPropagation();return}};return p.addEventListener("pointerdown",k),p.addEventListener("click",re),p.addEventListener("keydown",Se),{element:p,update:O,updateSort:w,rebuild:D,show:()=>{if(P)return;P=!0,p.style.display=""},hide:()=>{if(!P)return;P=!1,p.style.display="none"},destroy:()=>{p.removeEventListener("pointerdown",k),p.removeEventListener("click",re),p.removeEventListener("keydown",Se),t.style.removeProperty("--vlist-table-header-height"),i.remove(),L=[],g=[],B=null,P=!1},syncScroll:V}};var Ge=(t,e,o)=>{if(String(o).startsWith(we))return!1;let r=we+e;if(t.has(r))return t.delete(r),t.add(o),!0;return!1},ft=(t)=>({selected:new Set(t??[]),focusedIndex:-1,focusVisible:!1}),Ue=(t,e,o)=>{if(o==="none")return t;let r=new Set(t.selected);if(o==="single"){if(r.clear(),e.length>0)r.add(e[0])}else for(let s of e)r.add(s);return{...t,selected:r}},Ze=(t,e)=>{let o=new Set(t.selected);for(let r of e)o.delete(r);return{...t,selected:o}},pt=(t,e,o)=>{if(o==="none")return t;if(t.selected.has(e))return Ze(t,[e]);else return Ue(t,[e],o)},bt=(t,e,o)=>{if(o!=="multiple")return t;return{...t,selected:new Set(e.map((r)=>r.id))}},gt=(t)=>({...t,selected:new Set});var ht=(t,e)=>t.selected.has(e),yt=(t)=>Array.from(t.selected),St=(t,e)=>{let o=[];for(let r of t.selected){let s=e(r);if(s)o.push(s)}return o};var kt=()=>{let t=[];return{acquire:()=>t.pop()||document.createElement("div"),release:(e)=>{if(e.parentNode?.removeChild(e),t.length<200)e.className="",e.removeAttribute("data-id"),e.removeAttribute("data-index"),e.removeAttribute("aria-selected"),e.removeAttribute("aria-rowindex"),e.removeAttribute("role"),e.style.cssText="",e.textContent="",t.push(e)},clear:()=>{t.length=0}}},vt=(t,e,o,r,s,a,i,p,H,L=()=>0)=>{let g=kt(),P=new Map,G=-1,S=o,B=null,b=null,h=null,l=(f,M)=>{b=f,h=M},y=(f,M)=>{M?f.setAttribute("aria-selected","true"):f.removeAttribute("aria-selected")},m=(f,M,X,W)=>{f.setAttribute("role",M),f.setAttribute("data-id",String(X)),f.setAttribute("data-index",String(W))},E=(f)=>String(f).startsWith("__placeholder_"),D=`${s}-item ${s}-table-row`,O=`${s}-item--selected`,w=`${s}-item--focused`,V=`${s}-table-cell`,k=`${s}-table-cell--center`,Z=`${s}-table-cell--right`,Y=`${s}-table-cell-skeleton`,re=`${s}-item--odd`,ae=`${s}-item--placeholder`,Se=`${s}-item--replaced`,me=`${s}-table-row ${s}-table-group-header`,pe=`${s}-table-group-header-content`,d=(f,M,X,W,K=!1)=>{if(X.def.cell){let T=X.def.cell(M,X.def,W);if(typeof T==="string")f.innerHTML=T;else f.replaceChildren(T)}else{let T=M[X.def.key],ie=T!=null?String(T):"";if(K&&ie)f.innerHTML=`<span>${ie}</span>`;else f.textContent=ie}if(K&&f.firstElementChild===null){f.replaceChildren();let T=document.createElement("span");T.className=Y,f.appendChild(T)}Re(f);let Q=f.parentElement;if(Q)Q._stamp=0},n=(f,M,X,W,K=!1)=>{let Q=D;if(p){if(B){let T=B(M);if(T>=0&&(T&1)===1)Q+=` ${re}`}else if((M&1)===1)Q+=` ${re}`}if(K)Q+=` ${ae}`;if(X)Q+=` ${O}`;if(W)Q+=` ${w}`;f.className=Q},u=(f,M)=>{let X=M.def.align;if(X==="center")f.classList.add(k),f.classList.remove(Z);else if(X==="right")f.classList.add(Z),f.classList.remove(k);else f.classList.remove(k,Z)},c=(f,M)=>{let W=S.columns.length;if(M.length===W)return M;let K=[];for(let Q=0;Q<W;Q++){let T;if(Q<M.length)T=M[Q];else T=document.createElement("div"),T.className=V,f.appendChild(T);K.push(T)}for(let Q=W;Q<M.length;Q++)M[Q].remove();return K},C=(f,M,X,W)=>{let K=g.acquire(),Q=f,T=X.getSize(M),ie=X.getOffset(M)-W;K.style.cssText=`width:${S.totalWidth}px;height:${T}px;transform:translateY(${ie}px)`,K.className=me,m(K,"presentation",f.id,M),K.removeAttribute("aria-selected"),K.removeAttribute("aria-rowindex"),K.replaceChildren();let le=document.createElement("div");if(le.className=pe,h){let te=h(Q.groupKey,Q.groupIndex);if(typeof te==="string")le.innerHTML=te;else le.appendChild(te)}return K.appendChild(le),Re(K),{element:K,cells:[],index:M,isGroupHeader:!0,_lastItem:f,lastItemId:f.id,lastSelected:!1,lastFocused:!1,lastOffset:ie,lastHeight:T}},x=(f,M,X,W,K,Q)=>{let T=g.acquire(),ie=K.getSize(M),le=K.getOffset(M)-Q,te=E(f.id);T.style.cssText=`width:${S.totalWidth}px;height:${ie}px;transform:translateY(${le}px)`,n(T,M,X,W,te),m(T,"row",f.id,M),T.id=`${a}-item-${M}`,T.setAttribute("aria-rowindex",String(M+2)),y(T,X);let Le=c(T,[]),v=S.columns;for(let A=0;A<Le.length&&A<v.length;A++){let q=Le[A],ee=v[A];q.style.cssText=`left:${ee.offset}px;width:${ee.width}px`,q.setAttribute("role","gridcell"),q.setAttribute("aria-colindex",String(A+1)),u(q,ee),d(q,f,ee,M,te)}return{element:T,cells:Le,index:M,isGroupHeader:!1,_lastItem:f,lastItemId:f.id,lastSelected:X,lastFocused:W,lastOffset:le,lastHeight:ie}},j=(f,M,X,W,K=L())=>{let Q=!1,T=i();if(T!==G)G=T,Q=!0;let ie=null,le=e();B=typeof p==="string"&&H?H():null;for(let te=M.start;te<=M.end;te++){let Le=te-M.start,v=f[Le];if(!v)continue;let A=X.has(v.id),q=te===W,ee=b?b(v):!1,z=P.get(te);if(z){if(z.isGroupHeader!==ee){g.release(z.element),P.delete(te);let be=ee?C(v,te,le,K):x(v,te,A,q,le,K);if(P.set(te,be),!ie)ie=document.createDocumentFragment();ie.appendChild(be.element);continue}if(ee){if(z._lastItem!==v){let oe=v,ue=z.element.firstElementChild;if(ue&&h){let he=h(oe.groupKey,oe.groupIndex);if(typeof he==="string")ue.innerHTML=he;else ue.replaceChildren(he);Re(z.element)}z.element.setAttribute("data-id",String(v.id)),z._lastItem=v,z.lastItemId=v.id}let ge=le.getOffset(te)-K;if(z.lastOffset!==ge)z.lastOffset=ge,z.element.style.transform=`translateY(${ge}px)`;let Te=le.getSize(te);if(z.lastHeight!==Te)z.lastHeight=Te,z.element.style.height=`${Te}px`}else{let be=z._lastItem!==v,ge=z.lastSelected!==A,Te=z.lastFocused!==q;if(be){let he=z.lastItemId!=null&&E(z.lastItemId),xe=E(v.id);if(!xe&&Ge(X,te,v.id))A=!0;let fe=S.columns;for(let ce=0;ce<z.cells.length&&ce<fe.length;ce++)d(z.cells[ce],v,fe[ce],te,xe);if(n(z.element,te,A,q,xe),z.element.setAttribute("data-id",String(v.id)),y(z.element,A),he&&!xe)z.element.classList.add(Se),setTimeout(()=>{z.element.classList.remove(Se)},300);z._lastItem=v,z.lastItemId=v.id,z.lastSelected=A,z.lastFocused=q}else if(ge||Te)n(z.element,te,A,q,E(v.id)),y(z.element,A),z.lastSelected=A,z.lastFocused=q;let oe=le.getOffset(te)-K;if(z.lastOffset!==oe)z.lastOffset=oe,z.element.style.transform=`translateY(${oe}px)`;let ue=le.getSize(te);if(z.lastHeight!==ue)z.lastHeight=ue,z.element.style.height=`${ue}px`;if(Q)z.element.setAttribute("aria-rowindex",String(te+2))}}else{if(Ge(X,te,v.id))A=!0;let be=ee?C(v,te,le,K):x(v,te,A,q,le,K);if(P.set(te,be),!ie)ie=document.createDocumentFragment();ie.appendChild(be.element)}}if(ie)t.appendChild(ie);for(let[te,Le]of P)if(te<M.start||te>M.end)g.release(Le.element),P.delete(te)},N=(f,M,X,W)=>{let K=P.get(f);if(!K)return;if(K.isGroupHeader)return;let Q=S.columns;for(let T=0;T<K.cells.length&&T<Q.length;T++)d(K.cells[T],M,Q[T],f);K.element.setAttribute("data-id",String(M.id)),K._lastItem=M,K.lastItemId=M.id,n(K.element,f,X,W),y(K.element,X),K.lastSelected=X,K.lastFocused=W},_=(f,M,X)=>{let W=P.get(f);if(!W)return;if(W.isGroupHeader)return;let K=W.lastSelected!==M,Q=W.lastFocused!==X;if(K||Q)n(W.element,f,M,X),y(W.element,M),W.lastSelected=M,W.lastFocused=X},F=(f)=>{S=f;let M=f.columns;for(let[,X]of P)if(X.element.style.width=`${f.totalWidth}px`,X.cells.length>0)for(let W=0;W<X.cells.length&&W<M.length;W++){let K=X.cells[W],Q=M[W];K.style.left=`${Q.offset}px`,K.style.width=`${Q.width}px`}},J=(f)=>P.get(f)?.element,U=()=>{for(let[,f]of P)g.release(f.element);P.clear(),G=-1};return{render:j,updateItem:N,updateItemClasses:_,getElement:J,updateColumnLayout:F,setGroupHeaderFn:l,clear:U,destroy:()=>{U(),g.clear()}}};var xt=(t)=>{let e=Math.max(1,Math.floor(t.columns)),o=t.gap??0,r=t.containerSize,s=t.crossOffset??0,a=t.mainOffset??0,i=0,p=[],H=()=>{let l=(e-1)*o;i=Math.max(0,(r-l)/e),p=Array(e);let y=i+o;for(let m=0;m<e;m++)p[m]=s+m*y};H();let L=[],g=0,P=[],G=(l,y)=>{if(l<=0)return g=0,L=[],[];let m=Array(e).fill(a),E=Array(e);for(let w=0;w<e;w++)E[w]=[];let D=Array(l);for(let w=0;w<l;w++){let V=0,k=m[0];for(let re=1;re<e;re++){let ae=m[re];if(ae<k)k=ae,V=re}let Z=y(w),Y=m[V];D[w]={index:w,x:p[V],y:Y,lane:V,size:Z,crossSize:i},E[V].push(w),m[V]=Y+Z+o}L=E;let O=0;for(let w=0;w<e;w++){let V=m[w],k=V>0?V-o:0;if(k>O)O=k}return g=O,D},S=(l)=>{if(l.length===0)return g;if(g)return g;let y=Array(e).fill(0);for(let E of l){let D=E.y+E.size,O=y[E.lane];if(D>O)y[E.lane]=D}let m=0;for(let E=0;E<e;E++)if(y[E]>m)m=y[E];return m},B=(l,y,m)=>{if(l.length===0||m<=y)return P.length=0,P;if(L.length===0||L.length!==e)return b(l,y,m);P.length=0;for(let E=0;E<e;E++){let D=L[E],O=D.length;if(!O)continue;let w=0,V=O;while(w<V){let k=w+V>>>1,Z=l[D[k]];if(Z.y+Z.size<=y)w=k+1;else V=k}for(let k=w;k<O;k++){let Z=l[D[k]];if(Z.y>=m)break;P.push(Z)}}return P},b=(l,y,m)=>{P.length=0;for(let E of l)if(E.y+E.size>y&&E.y<m)P.push(E);return P};return{get columns(){return e},get gap(){return o},get containerSize(){return r},update:(l)=>{let y=!1;if(l.columns!==void 0){let m=Math.max(1,Math.floor(l.columns));if(m!==e)e=m,y=!0}if(l.gap!==void 0&&l.gap!==o)o=l.gap,y=!0;if(l.containerSize!==void 0&&l.containerSize!==r)r=l.containerSize,y=!0;if(l.crossOffset!==void 0&&l.crossOffset!==s)s=l.crossOffset,y=!0;if(l.mainOffset!==void 0&&l.mainOffset!==a)a=l.mainOffset,y=!0;if(y)H()},calculateLayout:G,getTotalSize:S,getVisibleItems:B}};var Tt=(t,e,o)=>{let r=Array.from(e).sort((i,p)=>i-p);if(r.length<=1)return;let s=[];for(let i=0;i<r.length;i++){let p=o(r[i]);if(p)s.push(p)}if(s.length<=1)return;let a=t.firstChild;for(let i=0;i<s.length;i++){let p=s[i];if(p===a)a=a.nextSibling;else t.insertBefore(p,a)}};var _t=(t=200)=>{let e=[];return{acquire:()=>{let a=e.pop();if(a)return a;let i=document.createElement("div");return i.setAttribute("role","option"),i},release:(a)=>{if(a.remove(),e.length<t)a.className="",a.textContent="",a.removeAttribute("style"),a.removeAttribute("data-index"),a.removeAttribute("data-id"),a.removeAttribute("data-lane"),e.push(a)},clear:()=>{e.length=0}}},Pt=1,It=(t,e,o,r=!1,s,a,i,p,H=()=>0)=>{let L=_t(),g=new Map,P=new Set,G=0,S="",B=-1,b=!1,h={selected:!1,focused:!1},l=(d,n)=>(h.selected=d,h.focused=n,h),y=`${o}-item ${o}-masonry-item`,m=`${o}-group-header`,E=`${o}-item--selected`,D=`${o}-item--focused`,O=(d,n)=>{if(typeof n==="string")d.innerHTML=n;else d.replaceChildren(n);Re(d)},w=(d,n,u)=>{d.classList.toggle(E,n),d.classList.toggle(D,u)},V=(d,n)=>{let u=Math.round(n.y-Y);if(r)d.style.transform=`translate(${u}px, ${Math.round(n.x)}px)`;else d.style.transform=`translate(${Math.round(n.x)}px, ${u}px)`},k=(d,n)=>{if(r)d.style.width=`${n.size}px`,d.style.height=`${n.crossSize}px`;else d.style.width=`${n.crossSize}px`,d.style.height=`${n.size}px`},Z=(d,n,u,c,C)=>{let x=L.acquire(),j=n.__groupHeader,N=l(c,C);if(x.className=j?m:y,x.dataset.index=String(d),x.dataset.id=String(n.id),x.dataset.lane=String(u.lane),j)x.setAttribute("role","presentation"),x.removeAttribute("aria-selected"),x.removeAttribute("aria-setsize"),x.removeAttribute("aria-posinset"),x.removeAttribute("id");else if(b){if(x.setAttribute("role","option"),x.ariaSelected=String(c),a)x.id=`${a}-item-${d}`;if(s){let F=s();if(F!==B)B=F,S=String(F);x.setAttribute("aria-setsize",S);let J=i?i(d):d+1;x.setAttribute("aria-posinset",String(J))}}else x.setAttribute("role","listitem"),x.removeAttribute("aria-selected"),x.removeAttribute("aria-setsize"),x.removeAttribute("aria-posinset"),x.removeAttribute("id");k(x,u);let _=e(n,d,N);return O(x,_),w(x,c,C),V(x,u),{element:x,lastItem:n,lastSelected:c,lastFocused:C,lastY:u.y-Y,absY:u.y,lastX:u.x,lastSize:u.size,lastCrossSize:u.crossSize,lastSeenFrame:G}},Y=0,re=(d,n,u,c,C=H())=>{Y=C,G++,b=typeof p==="function"?p():p===!0;let x=s?.()??1/0;if(b&&s){if(x!==B){B=x,S=String(x);for(let N of g.values())if(N.element.getAttribute("role")==="option")N.element.setAttribute("aria-setsize",S)}}P.clear();for(let N=0;N<n.length;N++)P.add(n[N].index);let j=null;for(let N=0;N<n.length;N++){let _=n[N],F=_.index,J=d(F);if(!J)continue;let U=u.has(J.id),R=F===c,f=g.get(F);if(f){let M=f.lastItem!==J,X=f.lastSelected!==U,W=f.lastFocused!==R,K=f.lastY!==_.y-Y||f.lastX!==_.x,Q=f.lastSize!==_.size||f.lastCrossSize!==_.crossSize;if(M){let T=l(U,R),ie=e(J,F,T);if(O(f.element,ie),f.element.dataset.id=String(J.id),f.lastItem=J,!J.__groupHeader&&b){let te=i?i(F):F+1;f.element.setAttribute("aria-posinset",String(te))}}if(M||X||W){if(w(f.element,U,R),b)f.element.ariaSelected=String(U);else f.element.removeAttribute("aria-selected");f.lastSelected=U,f.lastFocused=R}if(Q)k(f.element,_),f.lastSize=_.size,f.lastCrossSize=_.crossSize;if(K)V(f.element,_),f.lastY=_.y-Y,f.absY=_.y,f.lastX=_.x}else{let M=Z(F,J,_,U,R);if(!j)j=document.createDocumentFragment();j.appendChild(M.element),g.set(F,M)}}if(j)t.appendChild(j);for(let[N,_]of g)if(P.has(N))_.lastSeenFrame=G;else if(N>=x||G-_.lastSeenFrame>Pt)L.release(_.element),g.delete(N);else{let F=Math.round(_.absY-Y);if(F!==_.lastY){_.lastY=F;let J=Math.round(_.lastX);_.element.style.transform=r?`translate(${F}px, ${J}px)`:`translate(${J}px, ${F}px)`}}},ae=()=>{for(let d of g.values())L.release(d.element);g.clear(),t.innerHTML=""};return{render:re,getElement:(d)=>g.get(d)?.element,updateItemClasses:(d,n,u)=>{let c=g.get(d);if(!c)return;let C=c.lastSelected!==n,x=c.lastFocused!==u;if(C||x)w(c.element,n,u),c.lastSelected=n,c.lastFocused=u},sortDOM:()=>{Tt(t,g.keys(),(d)=>g.get(d)?.element)},clear:ae,destroy:()=>{ae(),L.clear()}}};var Ot=(t,e,o)=>{let r=e;return{getOffset:(s)=>s*t,getSize:(s)=>t,indexAtOffset:(s)=>{if(r===0||t===0)return 0;return Math.max(0,Math.min(Math.floor(s/t),r-1))},getTotalSize:()=>{let s=r*t;return s>0?s-o:0},getTotal:()=>r,rebuild:(s)=>{r=s},invalidate:()=>{},isVariable:()=>!1}};var Lt=(t,e,o,r)=>{while(e<o){let s=e+o+1>>>1;if(t[s]<=r)e=s;else o=s-1}return e},Dt=(t,e,o)=>{let r=0,s=0,a=new Float64Array(0),i=new Float64Array(0),p=new Float64Array(1),H=(g,P)=>{for(let G=g;G<s;G++){if(G<=P){let S=G<<9,B=Math.min(S+512,r),b=0;for(let h=S;h<B;h++)a[h]=b,b+=t(h);i[G]=b}p[G+1]=p[G]+i[G]}},L=(g)=>{r=g,s=Math.ceil(g/512),a=new Float64Array(g),i=new Float64Array(s),p=new Float64Array(s+1),H(0,s-1)};return L(e),{getOffset:(g)=>{if(g<=0)return 0;if(g>=r)return p[s];return p[g>>>9]+a[g]},getSize:(g)=>t(g),indexAtOffset:(g)=>{if(r===0||g<=0)return 0;if(g>=p[s])return r-1;let P=Lt(p,0,s-1,g),G=P<<9;return Lt(a,G,Math.min(G+512,r)-1,g-p[P])},getTotalSize:()=>{let g=p[s];return g>0?g-o:0},getTotal:()=>r,rebuild:(g)=>L(g),invalidate:(g,P=g)=>{if(g>=0&&P<r)H(g>>>9,P>>>9)},isVariable:()=>!0}},Ct=(t,e,o=0)=>{if(typeof t==="number")return Ot(t,e,o);return Dt(t,e,o)};var Et=()=>{let t={},e=(a,i)=>{if(!t[a])t[a]=new Set;return t[a].add(i),()=>o(a,i)},o=(a,i)=>{t[a]?.delete(i)};return{on:e,off:o,emit:(a,i)=>{t[a]?.forEach((p)=>{try{p(i)}catch(H){}})},clear:(a)=>{if(a)delete t[a];else for(let i in t)delete t[i]}}};var Ve=(t={})=>{let{chunkSize:e=100,maxCachedItems:o=5000,evictionBuffer:r=200,onEvict:s}=t,a=new Map,i=0,p=0,H=(d)=>{let n=a.get(d);if(!n)n={items:Array(e),count:0,lastAccess:Date.now()},a.set(d,n);else n.lastAccess=Date.now();return n},L=(d)=>Math.floor(d/e),g=(d)=>d%e,P=()=>i,G=(d)=>{i=d},S=(d)=>{if(d<0||d>=i)return;let n=L(d),u=a.get(n);if(!u)return;return u.items[g(d)]},B=(d)=>{if(d<0||d>=i)return!1;let n=L(d),u=a.get(n);if(!u)return!1;return u.items[g(d)]!==void 0},b=(d,n)=>{let u=L(d),c=H(u),C=g(d),x=c.items[C]===void 0;if(c.items[C]=n,x)c.count++,p++;if(d>=i)i=d+1},h=(d,n)=>{for(let u=0;u<n.length;u++){let c=n[u];if(c!==void 0)b(d+u,c)}},l=(d,n)=>{if(d<0||d>i)return;let u=L(d),c=Array.from(a.keys()).filter((_)=>_>=u).sort((_,F)=>_-F),C=[];for(let _ of c){let F=a.get(_),J=_*e;for(let U=0;U<e;U++){if(F.items[U]===void 0)continue;let R=J+U;if(R<d)continue;C.push({oldIndex:R,item:F.items[U]})}}for(let{oldIndex:_}of C){let F=L(_),J=a.get(F);if(!J)continue;let U=g(_);if(J.items[U]!==void 0){if(J.items[U]=void 0,J.count--,p--,J.count===0)a.delete(F)}}i++;for(let{oldIndex:_,item:F}of C){let J=_+1,U=L(J),R=H(U),f=g(J);R.items[f]=F,R.count++,p++}let x=L(d),j=H(x),N=g(d);j.items[N]=n,j.count++,p++},y=(d)=>{if(d<0||d>=i)return!1;let n=L(d),u=a.get(n),c=g(d);if(!(u!==void 0&&u.items[c]!==void 0))return!1;let x=n,j=Array.from(a.keys()).filter((_)=>_>=x).sort((_,F)=>_-F),N=[];for(let _ of j){let F=a.get(_),J=_*e;for(let U=0;U<e;U++){if(F.items[U]===void 0)continue;let R=J+U;if(R<=d)continue;N.push({oldIndex:R,item:F.items[U]})}}if(u.items[c]=void 0,u.count--,p--,u.count===0)a.delete(n);for(let{oldIndex:_}of N){let F=L(_),J=a.get(F);if(!J)continue;let U=g(_);if(J.items[U]!==void 0){if(J.items[U]=void 0,J.count--,p--,J.count===0)a.delete(F)}}for(let{oldIndex:_,item:F}of N){let J=_-1,U=L(J),R=H(U),f=g(J);R.items[f]=F,R.count++,p++}return i--,!0},m=(d,n)=>{let u=[];for(let c=d;c<=n&&c<i;c++)u.push(S(c));return u},E=(d,n)=>{for(let u=d;u<=n&&u<i;u++)if(!B(u))return!1;return!0},D=()=>{let d=[],n=null,u=Array.from(a.keys()).sort((c,C)=>c-C);for(let c of u){let C=a.get(c);if(!C)continue;let x=c*e;for(let j=0;j<e;j++){let N=x+j;if(N>=i)break;if(C.items[j]!==void 0)if(n===null)n={start:N,end:N};else if(N===n.end+1)n.end=N;else d.push(n),n={start:N,end:N};else if(n!==null)d.push(n),n=null}}if(n!==null)d.push(n);return d},O=(d,n)=>{let u=[],c=null;for(let C=d;C<=n&&C<i;C++)if(!B(C))if(c===null)c={start:C,end:C};else c.end=C;else if(c!==null)u.push(c),c=null;if(c!==null)u.push(c);return u},w=(d)=>a.has(d),V=(d)=>{let n=a.get(d);if(!n)return!1;let u=d*e,c=Math.min(e,i-u);return n.count>=c},k=(d)=>{let n=a.get(d);if(n)n.lastAccess=Date.now()},Z=(d,n)=>{if(d>n||a.size===0)return;let u=Date.now(),c=L(Math.max(0,d)),C=L(Math.min(i-1,n));for(let x=c;x<=C;x++){let j=a.get(x);if(j)j.lastAccess=u}},Y=(d,n)=>{if(p<=o)return 0;let u=Math.max(0,d-r),c=Math.min(i-1,n+r),C=L(u),x=L(c),j=0,N=[];for(let[_,F]of a)if(_<C||_>x)j+=F.count,N.push(_),p-=F.count,a.delete(_);if(j>0&&s)s(j,N);return j},re=()=>{if(p<=o)return 0;let d=Array.from(a.entries()).sort(([,c],[,C])=>c.lastAccess-C.lastAccess),n=0,u=[];for(let[c,C]of d){if(p<=o)break;n+=C.count,p-=C.count,u.push(c),a.delete(c)}if(n>0&&s)s(n,u);return n},ae=()=>({totalItems:i,cachedItems:p,cachedChunks:a.size,chunkSize:e,maxCachedItems:o,memoryEfficiency:i>0?1-p/i:1}),Se=()=>p,me=()=>{a.clear(),p=0};return{chunkSize:e,maxCachedItems:o,getTotal:P,setTotal:G,get:S,has:B,set:b,setRange:h,insert:l,delete:y,getRange:m,isRangeLoaded:E,getLoadedRanges:D,findUnloadedRanges:O,getChunkIndex:L,isChunkLoaded:w,isChunkFullyLoaded:V,touchChunk:k,touchChunksForRange:Z,evictDistant:Y,evictToLimit:re,getStats:ae,getCachedCount:Se,clear:me,reset:()=>{me(),i=0}}},Fe=(t)=>{if(t.length===0)return[];let e=[...t].sort((r,s)=>r.start-s.start),o=[{...e[0]}];for(let r=1;r<e.length;r++){let s=e[r],a=o[o.length-1];if(s.start<=a.end+1)a.end=Math.max(a.end,s.end);else o.push({...s})}return o},qe=(t,e,o)=>{let r=Math.floor(t.start/o)*o,s=Math.ceil((t.end+1)/o)*o-1,a={start:r,end:s};if(e.length===0)return[a];let i=[],p=Fe(e),H=a.start;for(let L of p){if(L.end<H)continue;if(L.start>a.end)break;if(L.start>H)i.push({start:H,end:Math.min(L.start-1,a.end)});if(H=L.end+1,H>a.end)break}if(H<=a.end)i.push({start:H,end:a.end});return i};var Be=(t={})=>{let{maskCharacter:e=tt,maxSampleSize:o=nt}=t,r=[],s=!1,a=(g)=>{if(s||g.length===0)return;let P=Math.min(g.length,o);for(let G=0;G<P;G++){let S=g[G];if(!S||typeof S!=="object")continue;let B={},b=!1;for(let[h,l]of Object.entries(S)){if(h.startsWith("_")||h==="id")continue;B[h]=String(l??"").length,b=!0}if(b)r.push(B)}s=!0},i=()=>s,p=(g)=>{let P={id:`${we}${g}`,[We]:!0,_index:g};if(r.length===0)return P.label=e.repeat(12),P;let G=r[g%r.length];for(let[S,B]of Object.entries(G))P[S]=e.repeat(Math.max(1,B));return P};return{analyzeStructure:a,hasAnalyzedStructure:i,generate:p,generateRange:(g,P)=>{let G=[];for(let S=g;S<=P;S++)G.push(p(S));return G},clear:()=>{r=[],s=!1}}},He=(t)=>{if(!t||typeof t!=="object")return!1;return t[We]===!0},Xe=(t)=>t.filter((e)=>!He(e));var $t=50,Mt=(t={})=>{let{adapter:e,initialItems:o,initialTotal:r,storage:s,placeholder:a,pageSize:i=$t,maxConcurrent:p=0,onStateChange:H,onDataChange:L,onItemsLoaded:g,onItemsEvicted:P,onLoadError:G}=t,S=Ve({...s,onEvict:(v,A)=>{P?.(v),Y(),Z()}}),B=null,b=()=>{if(!B)B=Be(a);return B},h=new Map,l=!1,y,m=!0,E,D,O=[],w=0,V=new Map,k=()=>{for(let v of V.values())v[1].abort();V.clear()},Z=()=>{H?.(c())},Y=()=>{L?.()},re=()=>{h.clear();let v=S.getLoadedRanges();for(let A of v)for(let q=A.start;q<=A.end;q++){let ee=S.get(q);if(ee&&!He(ee))h.set(ee.id,q)}},ae=(v,A)=>{if(!He(A))h.set(A.id,v)},Se=(v)=>{h.delete(v)},me=(v,A)=>`${v}-${A}`,pe=()=>S.getTotal(),d=()=>S.getCachedCount(),n=()=>l,u=()=>m,c=()=>({total:S.getTotal(),cached:S.getCachedCount(),isLoading:l,pendingRanges:O,error:y,hasMore:m,cursor:E}),C=()=>S,x=()=>b(),j=(v)=>{let A=S.get(v);if(A!==void 0)return A;if(v>=0&&v<S.getTotal())return b().generate(v);return},N=(v)=>{let A=h.get(v);if(A===void 0)return;return S.get(A)},_=(v)=>h.get(v)??-1,F=(v)=>{let A=S.get(v);return A!==void 0&&!He(A)},J=(v,A)=>{let q=[],ee=S.getTotal();S.touchChunksForRange(v,Math.min(A,ee-1));for(let z=v;z<=A&&z<ee;z++){let be=S.get(z);if(be!==void 0)q.push(be);else q.push(b().generate(z))}return q},U=(v)=>{S.setTotal(v),m=S.getCachedCount()<v,Y(),Z()},R=(v,A=0,q)=>{if(e&&v.length>0){let ee=b();if(!ee.hasAnalyzedStructure())ee.analyzeStructure(v)}for(let ee=0;ee<v.length;ee++){let z=v[ee];if(z!==void 0){let be=A+ee;S.set(be,z),ae(be,z)}}if(q!==void 0)S.setTotal(q);else if(A+v.length>S.getTotal())S.setTotal(A+v.length);if(S.getCachedCount()>=S.getTotal()&&S.getTotal()>0)m=!1;Y(),Z(),g?.(v,A,S.getTotal())},f=(v,A)=>{let q=S.get(v);if(!q)return!1;let ee=q.id,z={...q,...A};if(S.set(v,z),A.id!==void 0&&A.id!==ee)Se(ee);return ae(v,z),Y(),Z(),!0},M=(v,A)=>{S.insert(A,v),re(),k(),Y(),Z()},X=(v)=>{let A=h.get(v);if(A===void 0)return!1;if(!S.delete(A))return!1;return re(),k(),Y(),Z(),!0},W=async(v,A)=>{if(!e)return;let q=S.chunkSize,ee=Math.floor(v/q),z=Math.floor(A/q),be=q*2;for(let[oe,ue]of V){let he=oe.indexOf("-"),xe=parseInt(oe.slice(0,he),10);if(Math.abs(xe-v)>be)ue[1].abort(),V.delete(oe)}let ge=[],Te=[];for(let oe=ee;oe<=z;oe++){let ue=oe*q,he=ue+q-1,xe=me(ue,he);if(S.isChunkFullyLoaded(oe))continue;let ce=V.get(xe);if(ce)Te.push(ce[0]);else ge.push({start:ue,end:he})}if(ge.length===0){if(Te.length>0)await Promise.all(Te);return}if(p>0){let oe=V.size+ge.length;if(oe>p){let ue=(v+A)/2,he=Math.min(oe-p,V.size);while(he>0){let fe=null,ce=-1,ve=null;for(let[Ce,Ne]of V){let Pe=Ce.indexOf("-"),Oe=parseInt(Ce.slice(0,Pe),10),De=parseInt(Ce.slice(Pe+1),10),Ee=Math.abs((Oe+De)/2-ue);if(Ee>ce)ce=Ee,fe=Ce,ve=Ne[1]}if(fe)ve.abort(),V.delete(fe);he--}let xe=p-V.size;if(ge.length>xe)ge.sort((fe,ce)=>{let ve=Math.abs((fe.start+fe.end)/2-ue),Ce=Math.abs((ce.start+ce.end)/2-ue);return ve-Ce}),ge.length=Math.max(0,xe)}}if(ge.length===0){if(Te.length>0)await Promise.all(Te);return}for(let oe of ge){let ue=me(oe.start,oe.end),he=new AbortController,xe=(async()=>{O.push(oe),l=!0,y=void 0,Z();try{let fe=oe.end-oe.start+1,ce={offset:oe.start,limit:fe,cursor:oe.start===D?E:void 0,signal:he.signal},ve=await e.read(ce);if(R(ve.items,oe.start,ve.total),ve.cursor)E=ve.cursor,D=oe.start+ve.items.length;let Ce=oe.start+ve.items.length;if(Ce>=w){if(w=Ce,ve.hasMore!==void 0)m=ve.hasMore;else if(ve.total!==void 0)m=Ce<ve.total}}catch(fe){if(fe?.name==="AbortError")return;y=fe instanceof Error?fe:Error(String(fe)),G?.(y,oe)}finally{V.delete(ue);let fe=O.findIndex((ce)=>ce.start===oe.start&&ce.end===oe.end);if(fe>=0)O.splice(fe,1);l=V.size>0,Z()}})();V.set(ue,[xe,he]),Te.push(xe)}await Promise.all(Te)},K=async(v,A)=>{if(S.isRangeLoaded(v,A))return;await W(v,A)},Q=async()=>{if(!e)return;await W(0,i-1)},T=async()=>{if(!e||l||!m)return!1;let v=S.getCachedCount(),A=S.getTotal(),q=v,ee=Math.min(q+i-1,A>0?A-1:q+i-1);if(q>=A&&A>0)return m=!1,!1;return await W(q,ee),S.getCachedCount()>v},ie=async()=>{if(S.clear(),h.clear(),B)B.clear();k(),O=[],l=!1,E=void 0,D=void 0,m=!0,w=0,y=void 0,Y(),Z()},le=(v,A)=>{if(S.evictDistant(v,A)>0)re()},te=()=>{S.clear(),h.clear(),E=void 0,D=void 0,y=void 0,O=[],l=!1,Y(),Z()},Le=()=>{if(S.reset(),h.clear(),B)B.clear();E=void 0,D=void 0,m=!0,w=0,y=void 0,O=[],l=!1,Y(),Z()};if(o&&o.length>0)R(o,0,r??o.length);else if(r!==void 0)S.setTotal(r),Y(),Z();return{getState:c,getTotal:pe,getCached:d,getIsLoading:n,getHasMore:u,getStorage:C,getPlaceholders:x,getItem:j,getItemById:N,getIndexById:_,isItemLoaded:F,getItemsInRange:J,setTotal:U,setItems:R,updateItem:f,insertItem:M,removeItem:X,loadRange:W,ensureRange:K,loadInitial:Q,loadMore:T,reload:ie,evictDistant:le,clear:te,reset:Le}};var Gt=0,Vt=1000,Ft=15,Bt=!0,Nt=16,Kt=!0,_e=2,Wt="scroll",Yt=350,Ut=12,Zt=(t)=>{if(typeof t!=="object"){let e=t??_e;return{top:e,right:e,bottom:e,left:e}}return{top:t.top??_e,right:t.right??_e,bottom:t.bottom??_e,left:t.left??_e}},At=(t,e,o={},r="vlist",s=!1,a,i,p)=>{let H=navigator.userAgentData?.platform||navigator.platform+navigator.userAgent,L=o.platform?o.platform==="windows":!/Mac|Android/i.test(H),{autoHide:g=!L,autoHideDelay:P=Vt,minThumbSize:G=Ft,showOnHover:S=Bt,showOnViewportEnter:B=Kt,clickBehavior:b=Wt}=o,h=b==="page"?"scroll":b,l=a??t,y=Zt(o.padding),m=s?y.left:y.top,E=s?y.right:y.bottom,D=s?y.bottom:y.right,O=o.hoverZoneWidth??D+Nt,w=!0,V=0,k=0,Z=0,Y=0,re=!1,ae=!1,Se=0,me=0,pe=0,d=null,n=!1,u=null,c=null,C=-1,x=-1,j=-1,N=-1,_=-1,F=t.id?"":(()=>{let I;do I=`${r}-scrollport-${++Gt}`;while(document.getElementById(I));return t.id=I,I})(),J=0,U=0,R=null,f=null,M=null,X=s?"width":"height",W=s?"translateX":"translateY",K=s?(I)=>I.clientX:(I)=>I.clientY,Q=s?"left":"top",T=document.createElement("div"),ie=document.createElement("div"),le=document.createElement("div"),te=s?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",Le=()=>{if(l===t)return;let I=t.offsetTop;T.style[s?"left":"top"]=I?`calc(var(${te}) + ${I}px)`:`var(${te})`,le.style[s?"left":"top"]=`${I}px`},v=()=>{if(T.className=`${r}-scrollbar`,T.setAttribute("role","scrollbar"),T.setAttribute("aria-controls",t.id),T.setAttribute("aria-orientation",s?"horizontal":"vertical"),T.setAttribute("aria-label",t.getAttribute("aria-label")||"Scroll"),T.setAttribute("aria-valuemin","0"),T.tabIndex=0,ie.className=`${r}-scrollbar__thumb`,s)T.classList.add(`${r}-scrollbar--horizontal`);if(o.padding!==void 0)l.style.setProperty("--vlist-custom-scrollbar-padding-top",`${y.top}px`),l.style.setProperty("--vlist-custom-scrollbar-padding-right",`${y.right}px`),l.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${y.bottom}px`),l.style.setProperty("--vlist-custom-scrollbar-padding-left",`${y.left}px`);if(o.minThumbSize!==void 0)T.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${G}px`);if(T.appendChild(ie),l.appendChild(T),le.className=`${r}-scrollbar__hover`,s)le.classList.add(`${r}-scrollbar__hover--horizontal`),le.style.height=`${O}px`;else le.style.width=`${O}px`;if(l.appendChild(le),l!==t)Le()},A=()=>{if(d)clearTimeout(d),d=null},q=()=>{if(!g)return;A(),d=setTimeout(z,P)},ee=()=>{if(!w||V<=k)return;if(A(),!n)T.classList.add(`${r}-scrollbar--visible`),n=!0;if(g&&!re&&!ae&&document.activeElement!==T)q()},z=()=>{if(re||ae||document.activeElement===T)return;T.classList.remove(`${r}-scrollbar--visible`),n=!1},be=(I,ne)=>{if(V=I,k=ne,Le(),ge(pe),!w||V<=k){T.style.display="none",T.classList.remove(`${r}-scrollbar--visible`),n=!1;return}T.style.display="";let se=Math.max(0,k-m-E),de=k/V;if(Z=Math.max(G,de*se),ie.style[X]=`${Z}px`,Y=se-Z,ge(pe),!g)ee()},ge=(I)=>{let ne=Math.max(0,V-k);if(pe=Math.max(0,Math.min(I,ne)),C!==ne)C=ne,T.setAttribute("aria-valuemax",String(ne));if(x!==pe)x=pe,T.setAttribute("aria-valuenow",String(pe));let se=i?.(),de=se?.getTotal()??0,ye=de?se.indexAtOffset(pe)+1:0;if(ye!==j||de!==N)j=ye,N=de,T.setAttribute("aria-valuetext",`Row ${ye} of ${de}`);if(ne<=0||Y<=0)return;let Me=pe/ne*Y;if(Me!==_)_=Me,ie.style.transform=`${W}(${Me}px)`},Te=(I)=>{if(!w||I.target!==T||document.activeElement!==T)return;if(I.stopPropagation(),I.altKey||I.ctrlKey||I.metaKey)return;let ne=i?.(),se=ne?.getSize(ne.indexAtOffset(pe))??40,de=pe;switch(I.key){case(s?"ArrowLeft":"ArrowUp"):de-=se;break;case(s?"ArrowRight":"ArrowDown"):de+=se;break;case"PageUp":de-=k;break;case"PageDown":de+=k;break;case"Home":de=0;break;case"End":de=V;break;default:return}I.preventDefault(),e(Math.max(0,Math.min(de,Math.max(0,V-k)))),ee()},oe=(I)=>{if(I.target===ie||h!=="jump"||Y<=0)return;let ne=V-k,se=T.getBoundingClientRect(),de=K(I)-se[Q],ye=Math.max(0,Math.min(de-Z/2,Y));e(ye/Y*ne),ee()},ue=()=>{if(R!==null)clearTimeout(R),R=null;if(f!==null)cancelAnimationFrame(f),f=null;M=null},he=(I)=>{let ne=Y>0?U/I*Y:0;if(J<ne)return-1;if(J>=ne+Z)return 1;return 0},xe=()=>{let I=V-k,ne=he(I);if(ne===0){ue();return}if(ne===-1){if(U<=0){ue();return}let se=Math.max(0,U-k);U=se,e(se)}else{if(U>=I){ue();return}let se=Math.min(I,U+k);U=se,e(se)}ee()},fe=(I)=>{if(M===null){M=I,f=requestAnimationFrame(fe);return}let ne=V-k,se=I-M;M=I;let de=he(ne);if(de===0){ue();return}let ye=Ut*k/1000,Me=Math.min(ye*se,k);if(de===-1){if(U<=0){ue();return}let Ae=Math.max(0,U-Me);U=Ae,e(Ae)}else{if(U>=ne){ue();return}let Ae=Math.min(ne,U+Me);U=Ae,e(Ae)}A(),f=requestAnimationFrame(fe)},ce=(I)=>{if(I&&I.pointerId!==u)return;let ne=u,se=c;if(u=null,c=null,re=!1,T.classList.remove(`${r}-scrollbar--dragging`),ue(),ne!==null&&se?.hasPointerCapture(ne))se.releasePointerCapture(ne);q()},ve=(I)=>{if(!w||I.button!==0||u!==null||Y<=0)return;if(I.preventDefault(),I.stopPropagation(),u=I.pointerId,re=I.target===ie,c=re?ie:I.currentTarget,c.setPointerCapture(u),A(),re)Se=K(I),me=pe,T.classList.add(`${r}-scrollbar--dragging`);else if(h==="jump")oe(I);else J=K(I)-T.getBoundingClientRect()[Q],U=pe,xe(),R=setTimeout(()=>{f=requestAnimationFrame(fe)},Yt);ee()},Ce=(I)=>{if(!re||I.pointerId!==u)return;I.stopPropagation();let ne=K(I)-Se,se=Math.max(0,V-k),de=Math.max(0,Math.min(me+ne/Y*se,se));ge(de),e(de)},Ne=()=>{if(B)ee()},Pe=()=>{if(!re){if(ae=!1,g)q()}},Oe=()=>{ae=!0,A(),ee()},De=()=>{if(ae=!1,!re&&g)q()},Ee=["width","radius","thumb-color","track-color"],Ke=(I,ne)=>l.style.setProperty(`--vlist-custom-scrollbar-${I}`,ne),ze=Ee.map((I)=>l.style.getPropertyValue(`--vlist-custom-scrollbar-${I}`)),je=ze.slice(0,2),Je=[],Qe=()=>{for(let ye=0;ye<2;ye++){let Me=Ee[ye],Ae=l.style.getPropertyValue(`--vlist-custom-scrollbar-${Me}`);if(Ae!==Je[ye])je[ye]=Ae;Ke(Me,je[ye])}let I=getComputedStyle(p??l),ne=o.width??I.getPropertyValue("scrollbar-width"),se=I.getPropertyValue("scrollbar-color").match(/[\w-]+\([^)]*\)|\S+/g);w=o.enabled!==!1&&ne!=="none";let de=[typeof o.width==="number"?`${o.width}px`:I.getPropertyValue("--vlist-custom-scrollbar-width").trim()||(ne==="thin"||!L?"6px":"14px"),typeof o.radius==="number"?`${o.radius}px`:I.getPropertyValue("--vlist-custom-scrollbar-radius").trim()||(L?"0px":"4px"),o.thumbColor??(se?.length===2?se[0]:ze[2]),o.trackColor??(se?.length===2?se[1]:ze[3])];for(let ye=0;ye<Ee.length;ye++)Ke(Ee[ye],de[ye]);if(Je=de.slice(0,2),le.style.display=w?"":"none",t.classList.toggle(`${r}-viewport--gutter`,w&&!!o.gutter),!w)ce();be(V,k)},Ht=()=>{A(),ue(),ce(),A();for(let I of et)I();for(let I=0;I<Ee.length;I++)Ke(Ee[I],ze[I]);if(t.classList.remove(`${r}-viewport--gutter`),le.remove(),l.style.removeProperty("--vlist-custom-scrollbar-padding-top"),l.style.removeProperty("--vlist-custom-scrollbar-padding-right"),l.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),l.style.removeProperty("--vlist-custom-scrollbar-padding-left"),T.remove(),F&&t.id===F)t.removeAttribute("id")};v();let et=[],Ie=(I,ne,se)=>{I.addEventListener(ne,se),et.push(()=>I.removeEventListener(ne,se))};for(let I of[T,ie,le])Ie(I,"pointerdown",ve),Ie(I,"pointermove",Ce),Ie(I,"pointerup",ce),Ie(I,"pointercancel",ce),Ie(I,"lostpointercapture",ce);if(Ie(T,"keydown",Te),Ie(T,"focus",ee),Ie(T,"blur",q),Ie(t,"mouseenter",Ne),Ie(t,"mouseleave",Pe),Ie(T,"mouseenter",Oe),Ie(T,"mouseleave",De),S)Ie(le,"mouseenter",Oe),Ie(le,"mouseleave",De);return Qe(),{refresh:Qe,show:ee,hide:z,updateBounds:be,updatePosition:ge,isVisible:()=>n,destroy:Ht}};function qt(t){let e=0,o=0,r=0;function s(){return r>0?o/r:0}function a(H){if(e=H,H>0.1&&H<50)o+=H,r++}function i(){let H=t.getTotal();if(H===0)return 0;let L=t.getItemSize();if(L<=0)return 0;let g=t.getContainerSize();if(g<=0)return 0;let P=t.getScrollPosition(),G=typeof t.getColumns==="function"?t.getColumns():1,S=Math.ceil(H/G),B=Math.max(0,S*L-g),b=Math.max(0,Math.min(P,B)),h=Math.ceil((b+g)/L);return Math.min(h*G,H)}function p(){let H=t.getTotal(),L=i();return{progress:H>0?Math.min(100,Math.max(0,L/H*100)):0,velocity:e,velocityAvg:s(),itemCount:L,total:H}}return{getState:p,onVelocity:a}}export{st as buildLayoutItems,qe as calculateMissingRanges,gt as clearSelection,Mt as createAsyncManager,Et as createEmitter,ct as createGridLayout,it as createGroupLayout,at as createGroupedSizeFn,xt as createMasonryLayout,It as createMasonryRenderer,Be as createPlaceholderManager,At as createScrollbar,ft as createSelectionState,Ct as createSizeCache,Ve as createSparseStorage,qt as createStats,lt as createStickyHeader,mt as createTableHeader,dt as createTableLayout,vt as createTableRenderer,Ze as deselectItems,Xe as filterPlaceholders,yt as getSelectedIds,St as getSelectedItems,ut as isGroupHeader,He as isPlaceholderItem,ht as isSelected,Fe as mergeRanges,bt as selectAll,Ue as selectItems,pt as toggleSelection};
1
+ var tt="x",nt=20,We="_isPlaceholder",we="__placeholder_";function Re(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let s=0;s<t.length;s++)t[s].setAttribute("tabindex","-1");e._stamp=0}var ke={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},wt=(e)=>e.headerLayoutIndex,kt=(e)=>e.firstDataIndex,st=(e,t,s)=>{let r=0,o=e.length-1;while(r<o){let a=r+o+1>>>1;if(t(e[a])<=s)r=a;else o=a-1}return r},Ye=(e,t)=>st(e,wt,t),rt=(e,t)=>st(e,kt,t),ot=(e,t,s)=>{if(e===0)return[];let r=[],o=null,a=0,i=0;for(let f=0;f<e;f++){let R=s?.(f);if(!R)continue;let E=t(f,R);if(o===null)o=E,a=0;else if(E!==o){let b=f-a;r.push({key:o,groupIndex:r.length,headerLayoutIndex:i,firstDataIndex:a,count:b}),i=i+1+b,o=E,a=f}}if(o!==null)r.push({key:o,groupIndex:r.length,headerLayoutIndex:i,firstDataIndex:a,count:e-a});return r},at=(e,t)=>{if(e.length===0||t.length===0)return[];let s=e.length+t.length,r=Array(s),o=0;for(let a of t){r[o]={id:`__group_header_${a.groupIndex}`,__groupHeader:!0,groupKey:a.key,groupIndex:a.groupIndex},o++;for(let i=0;i<a.count;i++)r[o]=e[a.firstDataIndex+i],o++}return r},it=(e,t,s=!1)=>{let r=typeof t==="number"?(o)=>t:t;return(o)=>{let a=e.getEntry(o);if(a.type==="header"){if(s&&a.group.groupIndex===0)return 0;return e.getHeaderHeight(a.group.groupIndex)}return r(a.dataIndex)}},lt=(e,t,s)=>{let r=ot(e,t.getGroupForIndex,s),o=e+r.length,a=t.header?.height??t.header?.width??t.headerHeight,i=typeof a==="number"?(p)=>a:(p)=>{let h=r[p];if(!h)return 0;return a(h.key,p)},f={type:"header",group:ke},R={type:"item",dataIndex:0,group:ke};return{get totalEntries(){return o},get groupCount(){return r.length},get groups(){return r},getEntry:(p)=>{if(r.length===0)return R.dataIndex=p,R.group=ke,R;let h=Ye(r,p),l=r[h];if(p===l.headerLayoutIndex)return f.group=l,f;let y=p-l.headerLayoutIndex-1;return R.dataIndex=l.firstDataIndex+y,R.group=l,R},layoutToDataIndex:(p)=>{if(r.length===0)return p;let h=Ye(r,p),l=r[h];if(p===l.headerLayoutIndex)return-1;let y=p-l.headerLayoutIndex-1;return l.firstDataIndex+y},dataToLayoutIndex:(p)=>{if(r.length===0)return p;let h=rt(r,p),l=r[h],y=p-l.firstDataIndex;return l.headerLayoutIndex+1+y},getGroupAtLayoutIndex:(p)=>{if(r.length===0)return ke;let h=Ye(r,p);return r[h]},getGroupAtDataIndex:(p)=>{if(r.length===0)return ke;let h=rt(r,p);return r[h]},getHeaderHeight:i,rebuild:(p,h)=>{r=ot(p,t.getGroupForIndex,h??s),o=p+r.length}}};var _t=(e,t,s,r,o=0)=>{let a=s?"width":"height",i=document.createElement("div");return i.className=`${t}-sticky-header`,i.setAttribute("role","presentation"),i.setAttribute("aria-hidden","true"),i.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(s?`position:absolute;top:0;bottom:0;left:${o||0}px`:`position:relative;top:${o||0}px`),i.style[a]=`${r}px`,e.insertBefore(i,e.firstChild),i},ut=(e,t,s,r,o,a=!1,i=0,f,R)=>{let E=a?"width":"height",b=a?"height":"width",P=a?"X":"Y",F=(v,z)=>{v.style[E]=`${z}px`},S=f??_t(e,o,a,0,i),N=()=>{let v=document.createElement("div");return v.className="sticky-group",v.style.position="absolute",v.style.willChange="transform",v.style[b]="100%",v},p=N(),h=N();S.append(p,h);let l=p,y=h,d=t.groups,A=[],G=[],w=0,D=()=>{d=t.groups,w=d.length,A=Array(w),G=Array(w);for(let v=0;v<w;v++)A[v]=R?R(d[v].headerLayoutIndex):s.getOffset(d[v].headerLayoutIndex),G[v]=t.getHeaderHeight(v)};D();let k=-1,_=0,q=-1,U=!1,se=0,ne=!1,ve=(v,z)=>{r(v,z);let re=G[z];return F(v,re),re},ye=(v)=>{v.replaceChildren(),v.style.transform=""},fe=(v)=>{if(v===k)return;if(k=v,_=0,v<0||v>=w){ye(l);return}_=ve(l,v),F(S,_),l.style.transform=""},m=(v)=>{if(v===se)return;se=v;let z=Math.round(v);l.style.transform=`translate${P}(${z}px)`,y.style.transform=`translate${P}(${z+_}px)`},n=()=>{se=0,l.style.transform="",y.style.transform=""},u=()=>{if(!ne)return;let v=l;l=y,y=v,k=q,_=k>=0?G[k]:0,F(S,_),ye(y),q=-1,ne=!1,n()},c=()=>{if(!ne)return;ye(y),q=-1,ne=!1,n()},C=!!f,T=()=>{if(U)return;if(U=!0,C)S.style.visibility="";else S.style.display=""},Z=()=>{if(!U)return;if(U=!1,C)S.style.visibility="hidden";else S.style.display="none";ye(l),k=-1,_=0,c()},K=(v)=>{if(w===0){if(ne)c();if(!U)T();fe(-1);return}if(v<A[0]){Z();return}let z=0,re=w-1;while(z<re){let M=z+re+1>>>1;if(A[M]+G[M]<=v)z=M;else re=M-1}if(!U)T();fe(z);let g=z+1;if(g<w){let M=A[g]-v;if(M<=0&&M>-_){if(q!==g||!ne)q=g,ve(y,g),ne=!0;m(M)}else if(M<=-_){if(ne)u()}else if(ne)c()}else if(ne)c()},O=()=>{D();let v=k;if(k=-1,_=0,v>=0)fe(v)},B=()=>{S.remove(),k=-1,_=0,q=-1,U=!1,ne=!1};if(!f)S.style.display="none";return{update:K,refresh:O,show:T,hide:Z,destroy:B}};var ct=(e)=>e!==null&&typeof e==="object"&&e.__groupHeader===!0;var dt=(e)=>{let t=Math.max(1,Math.floor(e.columns)),s=e.gap??0,r=e.isHeaderFn,o={row:0,col:0},a=(p)=>{if(p<=0)return 0;if(!r)return Math.ceil(p/t);let h=0,l=0,y=0;for(let d=0;d<p;d++)if(r(d)){if(y++,l)h++,l=0;h++,l=0}else if(l++,l>=t)h++,l=0;if(l)h++;return h},i=(p)=>(o.row=f(p),o.col=R(p),o),f=(p)=>{if(!r)return Math.floor(p/t);let h=0,l=0;for(let y=0;y<=p;y++)if(r(y)){if(l)h++,l=0;if(y===p)return h;h++,l=0}else{if(y===p)return h;if(l++,l>=t)h++,l=0}return h},R=(p)=>{if(!r)return p%t;if(r(p))return 0;let h=0;for(let l=0;l<=p;l++)if(r(l))h=0;else{if(l===p)return h;if(h++,h>=t)h=0}return h},E=(p,h,l,y)=>{if(l<=0){y.start=0,y.end=-1;return}if(!r){y.start=Math.max(0,p*t),y.end=Math.min(l-1,(h+1)*t-1);return}let d=b(p,h,l);y.start=d.start,y.end=d.end},b=(p,h,l)=>{if(l<=0)return{start:0,end:-1};if(!r){let w=Math.max(0,p*t),D=Math.min(l-1,(h+1)*t-1);return{start:w,end:D}}let y=-1,d=-1,A=0,G=0;for(let w=0;w<l;w++){if(r(w)){if(G)A++,G=0;if(A>=p&&A<=h){if(y<0)y=w;d=w}A++,G=0}else{if(A>=p&&A<=h){if(y<0)y=w;d=w}if(G++,G>=t)A++,G=0}if(A>h&&!G)break}if(y<0)return{start:0,end:-1};return{start:y,end:d}},P=(p,h,l)=>{if(h<0||h>=t)return-1;let y=p*t+h;if(y<0||y>=l)return-1;return y},F=(p)=>{let h=(t-1)*s;return Math.max(0,(p-h)/t)};return{get columns(){return t},get gap(){return s},update:(p)=>{if(p.columns!==void 0)t=Math.max(1,Math.floor(p.columns));if(p.gap!==void 0)s=p.gap;if(p.isHeaderFn!==void 0)r=p.isHeaderFn},getTotalRows:a,getPosition:i,getRow:f,getCol:R,getItemRange:b,fillItemRange:E,getItemIndex:P,getColumnWidth:F,getColumnOffset:(p,h)=>{let l=F(h);return p*(l+s)}}};var mt=(e,t=50,s=1/0,r=!0,o="none")=>{let a=e,i=[],f=0,R=0,E=()=>{i=a.map((d,A)=>({def:d,index:A,width:0,minWidth:Pt(d.minWidth??t,1),maxWidth:d.maxWidth??s,resizable:d.resizable??r,offset:0}))},b=()=>{if(o==="none"||f<=0||f>=R)return;if(o==="spacer"){f=R;return}let d=R-f,A=f;for(let G=0;G<i.length;G++){let w=i[G];w.width=$e(w.width+d*(w.width/A),w.minWidth,w.maxWidth)}F()},P=(d)=>{if(R=d,i.length===0){f=0;return}let A=0,G=0;for(let w=0;w<i.length;w++){let D=i[w],k=D.def;if(k.width!==void 0)D.width=$e(k.width,D.minWidth,D.maxWidth),A+=D.width;else G++}if(G){let D=Math.max(0,d-A)/G;for(let k=0;k<i.length;k++){let _=i[k];if(_.def.width===void 0)_.width=$e(D,_.minWidth,_.maxWidth)}}F(),b()},F=()=>{let d=0;for(let A=0;A<i.length;A++){let G=i[A];G.offset=d,d+=G.width}f=d},S=(d,A)=>{if(d<0||d>=i.length)return 0;let G=i[d];if(!G.resizable)return G.width;let w=$e(A,G.minWidth,G.maxWidth);if(G.width=w,F(),o==="spacer")b();return w},N=(d)=>i[d],p=(d)=>{if(i.length===0)return;if(d<0)return i[0];if(d>=f)return i[i.length-1];let A=0,G=i.length-1;while(A<G){let w=A+G>>>1,D=i[w];if(d<D.offset)G=w-1;else if(d>=D.offset+D.width)A=w+1;else return D}return i[A]},h=(d)=>{if(d<0||d>=i.length)return 0;return i[d].offset},l=(d)=>{if(d<0||d>=i.length)return 0;return i[d].width},y=(d)=>{a=d,E()};return E(),{get columns(){return i},get totalWidth(){return f},resolve:P,updateColumns:y,resizeColumn:S,getColumn:N,getColumnAtX:p,getColumnOffset:h,getColumnWidth:l}},$e=(e,t,s)=>Math.min(s,Math.max(t,e)),Pt=(e,t)=>Math.max(t,e);var ft=(e,t,s,r,o,a)=>{let i=document.createElement("div");i.setAttribute("role","rowgroup");let f=document.createElement("div");f.className=`${s}-table-header`,f.setAttribute("role","row"),f.setAttribute("aria-rowindex","1"),f.style.height=`${t}px`;let R=document.createElement("div");R.className=`${s}-table-header-scroll`,R.setAttribute("role","presentation"),f.appendChild(R),i.appendChild(f),e.insertBefore(i,e.firstChild),e.style.setProperty("--vlist-table-header-height",`${t}px`);let E=[],b=[],P=!0,F=null,S="asc",N=null,p=!1,h=-1,l=0,y=0,d=0,A=(n,u)=>{let c=document.createElement("div");c.className=`${s}-table-header-cell`,c.setAttribute("role","columnheader"),c.setAttribute("aria-colindex",String(u+1)),c.tabIndex=u?-1:0,c.dataset.columnKey=n.def.key,c.addEventListener("focusin",()=>{E[d]?.setAttribute("tabindex","-1"),d=u,c.tabIndex=0});let C=n.def.align;if(C==="center")c.classList.add(`${s}-table-header-cell--center`);else if(C==="right")c.classList.add(`${s}-table-header-cell--right`);let T=document.createElement("div");T.className=`${s}-table-header-content`;let Z=n.def.header?n.def.header(n.def):n.def.label;if(typeof Z==="string")T.textContent=Z;else T.appendChild(Z);if(c.appendChild(T),n.def.sortable){let K=document.createElement("span");K.className=`${s}-table-header-sort`,K.setAttribute("aria-hidden","true"),c.appendChild(K),b.push(K),c.classList.add(`${s}-table-header-cell--sortable`)}else b.push(null);if(n.resizable){let K=document.createElement("div");K.className=`${s}-table-header-resize`,K.dataset.resizeIndex=String(u),c.appendChild(K)}return c},G=(n)=>{N=n,R.textContent="",E=[],b=[],d=0;let u=n.columns;for(let c=0;c<u.length;c++){let C=u[c],T=A(C,c);E.push(T),R.appendChild(T)}if(w(n),F)D(F,S)},w=(n)=>{N=n;let u=n.columns;R.style.width=`${n.totalWidth}px`;for(let c=0;c<E.length&&c<u.length;c++){let C=E[c],T=u[c];C.style.width=`${T.width}px`}},D=(n,u)=>{if(F=n,S=u,!N)return;let c=N.columns;for(let C=0;C<b.length&&C<c.length;C++){let T=b[C];if(!T)continue;if(c[C].def.key===n)T.textContent=u==="asc"?"▲":"▼",T.style.opacity="0.7",E[C].setAttribute("aria-sort",u==="asc"?"ascending":"descending");else T.textContent="",T.style.opacity="0",E[C].removeAttribute("aria-sort")}},k=(n)=>{R.style.transform=`translateX(${-n}px)`},_=(n)=>{let u=n.target;if(!u.dataset.resizeIndex)return;if(n.preventDefault(),n.stopPropagation(),h=+u.dataset.resizeIndex,!N)return;let c=N.getColumn(h);if(!c?.resizable)return;p=!0,l=n.clientX,y=c.width,e.classList.add(`${s}--col-resizing`),e.style.cursor="col-resize",u.classList.add(`${s}-table-header-resize--active`),u.setPointerCapture(n.pointerId),u.addEventListener("pointermove",q),u.addEventListener("pointerup",U),u.addEventListener("pointercancel",U)},q=(n)=>{if(!p||!N)return;let u=n.clientX-l;if(Math.abs(u)<1)return;let c=Math.max(0,y+u);r(h,c)},U=(n)=>{if(!p)return;let u=n.target;u.removeEventListener("pointermove",q),u.removeEventListener("pointerup",U),u.removeEventListener("pointercancel",U);try{u.releasePointerCapture(n.pointerId)}catch{}u.classList.remove(`${s}-table-header-resize--active`),e.classList.remove(`${s}--col-resizing`),e.style.cursor="",p=!1,h=-1},se=(n)=>{let u=n.target;if(u.dataset.resizeIndex)return;if(p)return;let c=u;while(c&&!c.dataset.columnKey)if(c=c.parentElement,c===f||c===null)return;let C=c.dataset.columnKey;if(!N)return;let T=N.columns,Z=-1;for(let B=0;B<T.length;B++)if(T[B].def.key===C){Z=B;break}if(Z===-1)return;let K=u.closest("a[href],button,input,select,textarea,[tabindex]");if(K&&K!==c)return;let O=T[Z];if(a)a({key:C,index:Z,event:n});if(O.def.sortable&&o){let B;if(F===C)B=S==="asc"?"desc":null;else B="asc";o({key:C,index:Z,direction:B})}},ne=(n)=>{if(n<0||n>=E.length)return;E[d]?.setAttribute("tabindex","-1"),d=n;let u=E[d];u.tabIndex=0,u.focus()},ve=(n)=>{let u=n.key,c=n.target.closest("a[href],button,input,select,textarea,[tabindex]");if(c&&!c.hasAttribute("data-column-key"))return;if(u==="ArrowRight"){if(n.ctrlKey||n.metaKey){if(!N)return;let C=N.getColumn(d);if(C?.resizable)r(d,C.width+10),n.preventDefault()}else if(d<E.length-1)ne(d+1),n.preventDefault();n.stopPropagation();return}if(u==="ArrowLeft"){if(n.ctrlKey||n.metaKey){if(!N)return;let C=N.getColumn(d);if(C?.resizable)r(d,C.width-10),n.preventDefault()}else if(d>0)ne(d-1),n.preventDefault();n.stopPropagation();return}if(u==="Home"){ne(0),n.preventDefault(),n.stopPropagation();return}if(u==="End"){ne(E.length-1),n.preventDefault(),n.stopPropagation();return}if(u==="Enter"||u===" "){if(!N)return;let C=N.getColumn(d);if(C?.def.sortable&&o){let T;if(F===C.def.key)T=S==="asc"?"desc":null;else T="asc";o({key:C.def.key,index:d,direction:T}),n.preventDefault()}n.stopPropagation();return}if(u==="ArrowDown"){e.focus(),n.preventDefault(),n.stopPropagation();return}};return f.addEventListener("pointerdown",_),f.addEventListener("click",se),f.addEventListener("keydown",ve),{element:f,update:w,updateSort:D,rebuild:G,show:()=>{if(P)return;P=!0,f.style.display=""},hide:()=>{if(!P)return;P=!1,f.style.display="none"},destroy:()=>{f.removeEventListener("pointerdown",_),f.removeEventListener("click",se),f.removeEventListener("keydown",ve),e.style.removeProperty("--vlist-table-header-height"),i.remove(),E=[],b=[],N=null,P=!1},syncScroll:k}};var Ge=(e,t,s)=>{if(String(s).startsWith(we))return!1;let r=we+t;if(e.has(r))return e.delete(r),e.add(s),!0;return!1},pt=(e)=>({selected:new Set(e??[]),focusedIndex:-1,focusVisible:!1}),Ue=(e,t,s)=>{if(s==="none")return e;let r=new Set(e.selected);if(s==="single"){if(r.clear(),t.length>0)r.add(t[0])}else for(let o of t)r.add(o);return{...e,selected:r}},Ze=(e,t)=>{let s=new Set(e.selected);for(let r of t)s.delete(r);return{...e,selected:s}},bt=(e,t,s)=>{if(s==="none")return e;if(e.selected.has(t))return Ze(e,[t]);else return Ue(e,[t],s)},gt=(e,t,s)=>{if(s!=="multiple")return e;return{...e,selected:new Set(t.map((r)=>r.id))}},ht=(e)=>({...e,selected:new Set});var yt=(e,t)=>e.selected.has(t),St=(e)=>Array.from(e.selected),vt=(e,t)=>{let s=[];for(let r of e.selected){let o=t(r);if(o)s.push(o)}return s};var Ot=()=>{let e=[];return{acquire:()=>e.pop()||document.createElement("div"),release:(t)=>{if(t.parentNode?.removeChild(t),e.length<200)t.className="",t.removeAttribute("data-id"),t.removeAttribute("data-index"),t.removeAttribute("aria-selected"),t.removeAttribute("aria-rowindex"),t.removeAttribute("role"),t.style.cssText="",t.textContent="",e.push(t)},clear:()=>{e.length=0}}},xt=(e,t,s,r,o,a,i,f,R,E=()=>0)=>{let b=Ot(),P=new Map,F=-1,S=s,N=null,p=null,h=null,l=(g,M)=>{p=g,h=M},y=(g,M)=>{M?g.setAttribute("aria-selected","true"):g.removeAttribute("aria-selected")},d=(g,M,j,X)=>{g.setAttribute("role",M),g.setAttribute("data-id",String(j)),g.setAttribute("data-index",String(X))},A=(g)=>String(g).startsWith("__placeholder_"),G=`${o}-item ${o}-table-row`,w=`${o}-item--selected`,D=`${o}-item--focused`,k=`${o}-table-cell`,_=`${o}-table-cell--center`,q=`${o}-table-cell--right`,U=`${o}-table-cell-skeleton`,se=`${o}-item--odd`,ne=`${o}-item--placeholder`,ve=`${o}-item--replaced`,ye=`${o}-table-row ${o}-table-group-header`,fe=`${o}-table-group-header-content`,m=(g,M,j,X,W=!1)=>{if(j.def.cell){let I=j.def.cell(M,j.def,X);if(typeof I==="string")g.innerHTML=I;else g.replaceChildren(I)}else{let I=M[j.def.key],ie=I!=null?String(I):"";if(W&&ie)g.innerHTML=`<span>${ie}</span>`;else g.textContent=ie}if(W&&g.firstElementChild===null){g.replaceChildren();let I=document.createElement("span");I.className=U,g.appendChild(I)}Re(g);let J=g.parentElement;if(J)J._stamp=0},n=(g,M,j,X,W=!1)=>{let J=G;if(f){if(N){let I=N(M);if(I>=0&&(I&1)===1)J+=` ${se}`}else if((M&1)===1)J+=` ${se}`}if(W)J+=` ${ne}`;if(j)J+=` ${w}`;if(X)J+=` ${D}`;g.className=J},u=(g,M)=>{let j=M.def.align;if(j==="center")g.classList.add(_),g.classList.remove(q);else if(j==="right")g.classList.add(q),g.classList.remove(_);else g.classList.remove(_,q)},c=(g,M)=>{let X=S.columns.length;if(M.length===X)return M;let W=[];for(let J=0;J<X;J++){let I;if(J<M.length)I=M[J];else I=document.createElement("div"),I.className=k,g.appendChild(I);W.push(I)}for(let J=X;J<M.length;J++)M[J].remove();return W},C=(g,M,j,X)=>{let W=b.acquire(),J=g,I=j.getSize(M),ie=j.getOffset(M)-X;W.style.cssText=`width:${S.totalWidth}px;height:${I}px;transform:translateY(${ie}px)`,W.className=ye,d(W,"presentation",g.id,M),W.removeAttribute("aria-selected"),W.removeAttribute("aria-rowindex"),W.replaceChildren();let le=document.createElement("div");if(le.className=fe,h){let ee=h(J.groupKey,J.groupIndex);if(typeof ee==="string")le.innerHTML=ee;else le.appendChild(ee)}return W.appendChild(le),Re(W),{element:W,cells:[],index:M,isGroupHeader:!0,_lastItem:g,lastItemId:g.id,lastSelected:!1,lastFocused:!1,lastOffset:ie,lastHeight:I}},T=(g,M,j,X,W,J)=>{let I=b.acquire(),ie=W.getSize(M),le=W.getOffset(M)-J,ee=A(g.id);I.style.cssText=`width:${S.totalWidth}px;height:${ie}px;transform:translateY(${le}px)`,n(I,M,j,X,ee),d(I,"row",g.id,M),I.id=`${a}-item-${M}`,I.setAttribute("aria-rowindex",String(M+2)),y(I,j);let Le=c(I,[]),x=S.columns;for(let H=0;H<Le.length&&H<x.length;H++){let Y=Le[H],Q=x[H];Y.style.cssText=`left:${Q.offset}px;width:${Q.width}px`,Y.setAttribute("role","gridcell"),Y.setAttribute("aria-colindex",String(H+1)),u(Y,Q),m(Y,g,Q,M,ee)}return{element:I,cells:Le,index:M,isGroupHeader:!1,_lastItem:g,lastItemId:g.id,lastSelected:j,lastFocused:X,lastOffset:le,lastHeight:ie}},Z=(g,M,j,X,W=E())=>{let J=!1,I=i();if(I!==F)F=I,J=!0;let ie=null,le=t();N=typeof f==="string"&&R?R():null;for(let ee=M.start;ee<=M.end;ee++){let Le=ee-M.start,x=g[Le];if(!x)continue;let H=j.has(x.id),Y=ee===X,Q=p?p(x):!1,V=P.get(ee);if(V){if(V.isGroupHeader!==Q){b.release(V.element),P.delete(ee);let pe=Q?C(x,ee,le,W):T(x,ee,H,Y,le,W);if(P.set(ee,pe),!ie)ie=document.createDocumentFragment();ie.appendChild(pe.element);continue}if(Q){if(V._lastItem!==x){let oe=x,ue=V.element.firstElementChild;if(ue&&h){let ge=h(oe.groupKey,oe.groupIndex);if(typeof ge==="string")ue.innerHTML=ge;else ue.replaceChildren(ge);Re(V.element)}V.element.setAttribute("data-id",String(x.id)),V._lastItem=x,V.lastItemId=x.id}let be=le.getOffset(ee)-W;if(V.lastOffset!==be)V.lastOffset=be,V.element.style.transform=`translateY(${be}px)`;let Te=le.getSize(ee);if(V.lastHeight!==Te)V.lastHeight=Te,V.element.style.height=`${Te}px`}else{let pe=V._lastItem!==x,be=V.lastSelected!==H,Te=V.lastFocused!==Y;if(pe){let ge=V.lastItemId!=null&&A(V.lastItemId),xe=A(x.id);if(!xe&&Ge(j,ee,x.id))H=!0;let me=S.columns;for(let ce=0;ce<V.cells.length&&ce<me.length;ce++)m(V.cells[ce],x,me[ce],ee,xe);if(n(V.element,ee,H,Y,xe),V.element.setAttribute("data-id",String(x.id)),y(V.element,H),ge&&!xe)V.element.classList.add(ve),setTimeout(()=>{V.element.classList.remove(ve)},300);V._lastItem=x,V.lastItemId=x.id,V.lastSelected=H,V.lastFocused=Y}else if(be||Te)n(V.element,ee,H,Y,A(x.id)),y(V.element,H),V.lastSelected=H,V.lastFocused=Y;let oe=le.getOffset(ee)-W;if(V.lastOffset!==oe)V.lastOffset=oe,V.element.style.transform=`translateY(${oe}px)`;let ue=le.getSize(ee);if(V.lastHeight!==ue)V.lastHeight=ue,V.element.style.height=`${ue}px`;if(J)V.element.setAttribute("aria-rowindex",String(ee+2))}}else{if(Ge(j,ee,x.id))H=!0;let pe=Q?C(x,ee,le,W):T(x,ee,H,Y,le,W);if(P.set(ee,pe),!ie)ie=document.createDocumentFragment();ie.appendChild(pe.element)}}if(ie)e.appendChild(ie);for(let[ee,Le]of P)if(ee<M.start||ee>M.end)b.release(Le.element),P.delete(ee)},K=(g,M,j,X)=>{let W=P.get(g);if(!W)return;if(W.isGroupHeader)return;let J=S.columns;for(let I=0;I<W.cells.length&&I<J.length;I++)m(W.cells[I],M,J[I],g);W.element.setAttribute("data-id",String(M.id)),W._lastItem=M,W.lastItemId=M.id,n(W.element,g,j,X),y(W.element,j),W.lastSelected=j,W.lastFocused=X},O=(g,M,j)=>{let X=P.get(g);if(!X)return;if(X.isGroupHeader)return;let W=X.lastSelected!==M,J=X.lastFocused!==j;if(W||J)n(X.element,g,M,j),y(X.element,M),X.lastSelected=M,X.lastFocused=j},B=(g)=>{S=g;let M=g.columns;for(let[,j]of P)if(j.element.style.width=`${g.totalWidth}px`,j.cells.length>0)for(let X=0;X<j.cells.length&&X<M.length;X++){let W=j.cells[X],J=M[X];W.style.left=`${J.offset}px`,W.style.width=`${J.width}px`}},v=(g)=>P.get(g)?.element,z=()=>{for(let[,g]of P)b.release(g.element);P.clear(),F=-1};return{render:Z,updateItem:K,updateItemClasses:O,getElement:v,updateColumnLayout:B,setGroupHeaderFn:l,clear:z,destroy:()=>{z(),b.clear()}}};var Tt=(e)=>{let t=Math.max(1,Math.floor(e.columns)),s=e.gap??0,r=e.containerSize,o=e.crossOffset??0,a=e.mainOffset??0,i=0,f=[],R=()=>{let l=(t-1)*s;i=Math.max(0,(r-l)/t),f=Array(t);let y=i+s;for(let d=0;d<t;d++)f[d]=o+d*y};R();let E=[],b=0,P=[],F=(l,y)=>{if(l<=0)return b=0,E=[],[];let d=Array(t).fill(a),A=Array(t);for(let D=0;D<t;D++)A[D]=[];let G=Array(l);for(let D=0;D<l;D++){let k=0,_=d[0];for(let se=1;se<t;se++){let ne=d[se];if(ne<_)_=ne,k=se}let q=y(D),U=d[k];G[D]={index:D,x:f[k],y:U,lane:k,size:q,crossSize:i},A[k].push(D),d[k]=U+q+s}E=A;let w=0;for(let D=0;D<t;D++){let k=d[D],_=k>0?k-s:0;if(_>w)w=_}return b=w,G},S=(l)=>{if(l.length===0)return b;if(b)return b;let y=Array(t).fill(0);for(let A of l){let G=A.y+A.size,w=y[A.lane];if(G>w)y[A.lane]=G}let d=0;for(let A=0;A<t;A++)if(y[A]>d)d=y[A];return d},N=(l,y,d)=>{if(l.length===0||d<=y)return P.length=0,P;if(E.length===0||E.length!==t)return p(l,y,d);P.length=0;for(let A=0;A<t;A++){let G=E[A],w=G.length;if(!w)continue;let D=0,k=w;while(D<k){let _=D+k>>>1,q=l[G[_]];if(q.y+q.size<=y)D=_+1;else k=_}for(let _=D;_<w;_++){let q=l[G[_]];if(q.y>=d)break;P.push(q)}}return P},p=(l,y,d)=>{P.length=0;for(let A of l)if(A.y+A.size>y&&A.y<d)P.push(A);return P};return{get columns(){return t},get gap(){return s},get containerSize(){return r},update:(l)=>{let y=!1;if(l.columns!==void 0){let d=Math.max(1,Math.floor(l.columns));if(d!==t)t=d,y=!0}if(l.gap!==void 0&&l.gap!==s)s=l.gap,y=!0;if(l.containerSize!==void 0&&l.containerSize!==r)r=l.containerSize,y=!0;if(l.crossOffset!==void 0&&l.crossOffset!==o)o=l.crossOffset,y=!0;if(l.mainOffset!==void 0&&l.mainOffset!==a)a=l.mainOffset,y=!0;if(y)R()},calculateLayout:F,getTotalSize:S,getVisibleItems:N}};var It=(e,t,s)=>{let r=Array.from(t).sort((i,f)=>i-f);if(r.length<=1)return;let o=[];for(let i=0;i<r.length;i++){let f=s(r[i]);if(f)o.push(f)}if(o.length<=1)return;let a=e.firstChild;for(let i=0;i<o.length;i++){let f=o[i];if(f===a)a=a.nextSibling;else e.insertBefore(f,a)}};var Dt=(e=200)=>{let t=[];return{acquire:()=>{let a=t.pop();if(a)return a;let i=document.createElement("div");return i.setAttribute("role","option"),i},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}}},zt=1,Lt=(e,t,s,r=!1,o,a,i,f,R=()=>0)=>{let E=Dt(),b=new Map,P=new Set,F=0,S="",N=-1,p=!1,h={selected:!1,focused:!1},l=(m,n)=>(h.selected=m,h.focused=n,h),y=`${s}-item ${s}-masonry-item`,d=`${s}-group-header`,A=`${s}-item--selected`,G=`${s}-item--focused`,w=(m,n)=>{if(typeof n==="string")m.innerHTML=n;else m.replaceChildren(n);Re(m)},D=(m,n,u)=>{m.classList.toggle(A,n),m.classList.toggle(G,u)},k=(m,n)=>{let u=Math.round(n.y-U);if(r)m.style.transform=`translate(${u}px, ${Math.round(n.x)}px)`;else m.style.transform=`translate(${Math.round(n.x)}px, ${u}px)`},_=(m,n)=>{if(r)m.style.width=`${n.size}px`,m.style.height=`${n.crossSize}px`;else m.style.width=`${n.crossSize}px`,m.style.height=`${n.size}px`},q=(m,n,u,c,C)=>{let T=E.acquire(),Z=n.__groupHeader,K=l(c,C);if(T.className=Z?d:y,T.dataset.index=String(m),T.dataset.id=String(n.id),T.dataset.lane=String(u.lane),Z)T.setAttribute("role","presentation"),T.removeAttribute("aria-selected"),T.removeAttribute("aria-setsize"),T.removeAttribute("aria-posinset"),T.removeAttribute("id");else if(p){if(T.setAttribute("role","option"),T.ariaSelected=String(c),a)T.id=`${a}-item-${m}`;if(o){let B=o();if(B!==N)N=B,S=String(B);T.setAttribute("aria-setsize",S);let v=i?i(m):m+1;T.setAttribute("aria-posinset",String(v))}}else T.setAttribute("role","listitem"),T.removeAttribute("aria-selected"),T.removeAttribute("aria-setsize"),T.removeAttribute("aria-posinset"),T.removeAttribute("id");_(T,u);let O=t(n,m,K);return w(T,O),D(T,c,C),k(T,u),{element:T,lastItem:n,lastSelected:c,lastFocused:C,lastY:u.y-U,absY:u.y,lastX:u.x,lastSize:u.size,lastCrossSize:u.crossSize,lastSeenFrame:F}},U=0,se=(m,n,u,c,C=R())=>{U=C,F++,p=typeof f==="function"?f():f===!0;let T=o?.()??1/0;if(p&&o){if(T!==N){N=T,S=String(T);for(let K of b.values())if(K.element.getAttribute("role")==="option")K.element.setAttribute("aria-setsize",S)}}P.clear();for(let K=0;K<n.length;K++)P.add(n[K].index);let Z=null;for(let K=0;K<n.length;K++){let O=n[K],B=O.index,v=m(B);if(!v)continue;let z=u.has(v.id),re=B===c,g=b.get(B);if(g){let M=g.lastItem!==v,j=g.lastSelected!==z,X=g.lastFocused!==re,W=g.lastY!==O.y-U||g.lastX!==O.x,J=g.lastSize!==O.size||g.lastCrossSize!==O.crossSize;if(M){let I=l(z,re),ie=t(v,B,I);if(w(g.element,ie),g.element.dataset.id=String(v.id),g.lastItem=v,!v.__groupHeader&&p){let ee=i?i(B):B+1;g.element.setAttribute("aria-posinset",String(ee))}}if(M||j||X){if(D(g.element,z,re),p)g.element.ariaSelected=String(z);else g.element.removeAttribute("aria-selected");g.lastSelected=z,g.lastFocused=re}if(J)_(g.element,O),g.lastSize=O.size,g.lastCrossSize=O.crossSize;if(W)k(g.element,O),g.lastY=O.y-U,g.absY=O.y,g.lastX=O.x}else{let M=q(B,v,O,z,re);if(!Z)Z=document.createDocumentFragment();Z.appendChild(M.element),b.set(B,M)}}if(Z)e.appendChild(Z);for(let[K,O]of b)if(P.has(K))O.lastSeenFrame=F;else if(K>=T||F-O.lastSeenFrame>zt)E.release(O.element),b.delete(K);else{let B=Math.round(O.absY-U);if(B!==O.lastY){O.lastY=B;let v=Math.round(O.lastX);O.element.style.transform=r?`translate(${B}px, ${v}px)`:`translate(${v}px, ${B}px)`}}},ne=()=>{for(let m of b.values())E.release(m.element);b.clear(),e.innerHTML=""};return{render:se,getElement:(m)=>b.get(m)?.element,updateItemClasses:(m,n,u)=>{let c=b.get(m);if(!c)return;let C=c.lastSelected!==n,T=c.lastFocused!==u;if(C||T)D(c.element,n,u),c.lastSelected=n,c.lastFocused=u},sortDOM:()=>{It(e,b.keys(),(m)=>b.get(m)?.element)},clear:ne,destroy:()=>{ne(),E.clear()}}};var $t=(e,t,s)=>{let r=t;return{getOffset:(o)=>o*e,getSize:(o)=>e,indexAtOffset:(o)=>{if(r===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(o/e),r-1))},getTotalSize:()=>{let o=r*e;return o>0?o-s:0},getTotal:()=>r,rebuild:(o)=>{r=o},invalidate:()=>{},isVariable:()=>!1}};var Ct=(e,t,s,r)=>{while(t<s){let o=t+s+1>>>1;if(e[o]<=r)t=o;else s=o-1}return t},Gt=(e,t,s)=>{let r=0,o=0,a=new Float64Array(0),i=new Float64Array(0),f=new Float64Array(1),R=(b,P)=>{for(let F=b;F<o;F++){if(F<=P){let S=F<<9,N=Math.min(S+512,r),p=0;for(let h=S;h<N;h++)a[h]=p,p+=e(h);i[F]=p}f[F+1]=f[F]+i[F]}},E=(b)=>{r=b,o=Math.ceil(b/512),a=new Float64Array(b),i=new Float64Array(o),f=new Float64Array(o+1),R(0,o-1)};return E(t),{getOffset:(b)=>{if(b<=0)return 0;if(b>=r)return f[o];return f[b>>>9]+a[b]},getSize:(b)=>e(b),indexAtOffset:(b)=>{if(r===0||b<=0)return 0;if(b>=f[o])return r-1;let P=Ct(f,0,o-1,b),F=P<<9;return Ct(a,F,Math.min(F+512,r)-1,b-f[P])},getTotalSize:()=>{let b=f[o];return b>0?b-s:0},getTotal:()=>r,rebuild:(b)=>E(b),invalidate:(b,P=b)=>{if(b>=0&&P<r)R(b>>>9,P>>>9)},isVariable:()=>!0}},Et=(e,t,s=0)=>{if(typeof e==="number")return $t(e,t,s);return Gt(e,t,s)};var Mt=()=>{let e={},t=(a,i)=>{if(!e[a])e[a]=new Set;return e[a].add(i),()=>s(a,i)},s=(a,i)=>{e[a]?.delete(i)};return{on:t,off:s,emit:(a,i)=>{e[a]?.forEach((f)=>{try{f(i)}catch(R){}})},clear:(a)=>{if(a)delete e[a];else for(let i in e)delete e[i]}}};var Ve=(e={})=>{let{chunkSize:t=100,maxCachedItems:s=5000,evictionBuffer:r=200,onEvict:o}=e,a=new Map,i=0,f=0,R=(m)=>{let n=a.get(m);if(!n)n={items:Array(t),count:0,lastAccess:Date.now()},a.set(m,n);else n.lastAccess=Date.now();return n},E=(m)=>Math.floor(m/t),b=(m)=>m%t,P=()=>i,F=(m)=>{i=m},S=(m)=>{if(m<0||m>=i)return;let n=E(m),u=a.get(n);if(!u)return;return u.items[b(m)]},N=(m)=>{if(m<0||m>=i)return!1;let n=E(m),u=a.get(n);if(!u)return!1;return u.items[b(m)]!==void 0},p=(m,n)=>{let u=E(m),c=R(u),C=b(m),T=c.items[C]===void 0;if(c.items[C]=n,T)c.count++,f++;if(m>=i)i=m+1},h=(m,n)=>{for(let u=0;u<n.length;u++){let c=n[u];if(c!==void 0)p(m+u,c)}},l=(m,n)=>{if(m<0||m>i)return;let u=E(m),c=Array.from(a.keys()).filter((O)=>O>=u).sort((O,B)=>O-B),C=[];for(let O of c){let B=a.get(O),v=O*t;for(let z=0;z<t;z++){if(B.items[z]===void 0)continue;let re=v+z;if(re<m)continue;C.push({oldIndex:re,item:B.items[z]})}}for(let{oldIndex:O}of C){let B=E(O),v=a.get(B);if(!v)continue;let z=b(O);if(v.items[z]!==void 0){if(v.items[z]=void 0,v.count--,f--,v.count===0)a.delete(B)}}i++;for(let{oldIndex:O,item:B}of C){let v=O+1,z=E(v),re=R(z),g=b(v);re.items[g]=B,re.count++,f++}let T=E(m),Z=R(T),K=b(m);Z.items[K]=n,Z.count++,f++},y=(m)=>{if(m<0||m>=i)return!1;let n=E(m),u=a.get(n),c=b(m);if(!(u!==void 0&&u.items[c]!==void 0))return!1;let T=n,Z=Array.from(a.keys()).filter((O)=>O>=T).sort((O,B)=>O-B),K=[];for(let O of Z){let B=a.get(O),v=O*t;for(let z=0;z<t;z++){if(B.items[z]===void 0)continue;let re=v+z;if(re<=m)continue;K.push({oldIndex:re,item:B.items[z]})}}if(u.items[c]=void 0,u.count--,f--,u.count===0)a.delete(n);for(let{oldIndex:O}of K){let B=E(O),v=a.get(B);if(!v)continue;let z=b(O);if(v.items[z]!==void 0){if(v.items[z]=void 0,v.count--,f--,v.count===0)a.delete(B)}}for(let{oldIndex:O,item:B}of K){let v=O-1,z=E(v),re=R(z),g=b(v);re.items[g]=B,re.count++,f++}return i--,!0},d=(m,n)=>{let u=[];for(let c=m;c<=n&&c<i;c++)u.push(S(c));return u},A=(m,n)=>{for(let u=m;u<=n&&u<i;u++)if(!N(u))return!1;return!0},G=()=>{let m=[],n=null,u=Array.from(a.keys()).sort((c,C)=>c-C);for(let c of u){let C=a.get(c);if(!C)continue;let T=c*t;for(let Z=0;Z<t;Z++){let K=T+Z;if(K>=i)break;if(C.items[Z]!==void 0)if(n===null)n={start:K,end:K};else if(K===n.end+1)n.end=K;else m.push(n),n={start:K,end:K};else if(n!==null)m.push(n),n=null}}if(n!==null)m.push(n);return m},w=(m,n)=>{let u=[],c=null;for(let C=m;C<=n&&C<i;C++)if(!N(C))if(c===null)c={start:C,end:C};else c.end=C;else if(c!==null)u.push(c),c=null;if(c!==null)u.push(c);return u},D=(m)=>a.has(m),k=(m)=>{let n=a.get(m);if(!n)return!1;let u=m*t,c=Math.min(t,i-u);return n.count>=c},_=(m)=>{let n=a.get(m);if(n)n.lastAccess=Date.now()},q=(m,n)=>{if(m>n||a.size===0)return;let u=Date.now(),c=E(Math.max(0,m)),C=E(Math.min(i-1,n));for(let T=c;T<=C;T++){let Z=a.get(T);if(Z)Z.lastAccess=u}},U=(m,n)=>{if(f<=s)return 0;let u=Math.max(0,m-r),c=Math.min(i-1,n+r),C=E(u),T=E(c),Z=0,K=[];for(let[O,B]of a)if(O<C||O>T)Z+=B.count,K.push(O),f-=B.count,a.delete(O);if(Z>0&&o)o(Z,K);return Z},se=()=>{if(f<=s)return 0;let m=Array.from(a.entries()).sort(([,c],[,C])=>c.lastAccess-C.lastAccess),n=0,u=[];for(let[c,C]of m){if(f<=s)break;n+=C.count,f-=C.count,u.push(c),a.delete(c)}if(n>0&&o)o(n,u);return n},ne=()=>({totalItems:i,cachedItems:f,cachedChunks:a.size,chunkSize:t,maxCachedItems:s,memoryEfficiency:i>0?1-f/i:1}),ve=()=>f,ye=()=>{a.clear(),f=0};return{chunkSize:t,maxCachedItems:s,getTotal:P,setTotal:F,get:S,has:N,set:p,setRange:h,insert:l,delete:y,getRange:d,isRangeLoaded:A,getLoadedRanges:G,findUnloadedRanges:w,getChunkIndex:E,isChunkLoaded:D,isChunkFullyLoaded:k,touchChunk:_,touchChunksForRange:q,evictDistant:U,evictToLimit:se,getStats:ne,getCachedCount:ve,clear:ye,reset:()=>{ye(),i=0}}},Fe=(e)=>{if(e.length===0)return[];let t=[...e].sort((r,o)=>r.start-o.start),s=[{...t[0]}];for(let r=1;r<t.length;r++){let o=t[r],a=s[s.length-1];if(o.start<=a.end+1)a.end=Math.max(a.end,o.end);else s.push({...o})}return s},qe=(e,t,s)=>{let r=Math.floor(e.start/s)*s,o=Math.ceil((e.end+1)/s)*s-1,a={start:r,end:o};if(t.length===0)return[a];let i=[],f=Fe(t),R=a.start;for(let E of f){if(E.end<R)continue;if(E.start>a.end)break;if(E.start>R)i.push({start:R,end:Math.min(E.start-1,a.end)});if(R=E.end+1,R>a.end)break}if(R<=a.end)i.push({start:R,end:a.end});return i};var Be=(e={})=>{let{maskCharacter:t=tt,maxSampleSize:s=nt}=e,r=[],o=!1,a=(b)=>{if(o||b.length===0)return;let P=Math.min(b.length,s);for(let F=0;F<P;F++){let S=b[F];if(!S||typeof S!=="object")continue;let N={},p=!1;for(let[h,l]of Object.entries(S)){if(h.startsWith("_")||h==="id")continue;N[h]=String(l??"").length,p=!0}if(p)r.push(N)}o=!0},i=()=>o,f=(b)=>{let P={id:`${we}${b}`,[We]:!0,_index:b};if(r.length===0)return P.label=t.repeat(12),P;let F=r[b%r.length];for(let[S,N]of Object.entries(F))P[S]=t.repeat(Math.max(1,N));return P};return{analyzeStructure:a,hasAnalyzedStructure:i,generate:f,generateRange:(b,P)=>{let F=[];for(let S=b;S<=P;S++)F.push(f(S));return F},clear:()=>{r=[],o=!1}}},He=(e)=>{if(!e||typeof e!=="object")return!1;return e[We]===!0},Xe=(e)=>e.filter((t)=>!He(t));var Ft=50,At=(e={})=>{let{adapter:t,initialItems:s,initialTotal:r,storage:o,placeholder:a,pageSize:i=Ft,maxConcurrent:f=0,onStateChange:R,onDataChange:E,onItemsLoaded:b,onItemsEvicted:P,onLoadError:F}=e,S=Ve({...o,onEvict:(x,H)=>{P?.(x),U(),q()}}),N=null,p=()=>{if(!N)N=Be(a);return N},h=new Map,l=!1,y,d=!0,A,G,w=[],D=0,k=new Map,_=()=>{for(let x of k.values())x[1].abort();k.clear()},q=()=>{R?.(c())},U=()=>{E?.()},se=()=>{h.clear();let x=S.getLoadedRanges();for(let H of x)for(let Y=H.start;Y<=H.end;Y++){let Q=S.get(Y);if(Q&&!He(Q))h.set(Q.id,Y)}},ne=(x,H)=>{if(!He(H))h.set(H.id,x)},ve=(x)=>{h.delete(x)},ye=(x,H)=>`${x}-${H}`,fe=()=>S.getTotal(),m=()=>S.getCachedCount(),n=()=>l,u=()=>d,c=()=>({total:S.getTotal(),cached:S.getCachedCount(),isLoading:l,pendingRanges:w,error:y,hasMore:d,cursor:A}),C=()=>S,T=()=>p(),Z=(x)=>{let H=S.get(x);if(H!==void 0)return H;if(x>=0&&x<S.getTotal())return p().generate(x);return},K=(x)=>{let H=h.get(x);if(H===void 0)return;return S.get(H)},O=(x)=>h.get(x)??-1,B=(x)=>{let H=S.get(x);return H!==void 0&&!He(H)},v=(x,H)=>{let Y=[],Q=S.getTotal();S.touchChunksForRange(x,Math.min(H,Q-1));for(let V=x;V<=H&&V<Q;V++){let pe=S.get(V);if(pe!==void 0)Y.push(pe);else Y.push(p().generate(V))}return Y},z=(x)=>{S.setTotal(x),d=S.getCachedCount()<x,U(),q()},re=(x,H=0,Y)=>{if(t&&x.length>0){let Q=p();if(!Q.hasAnalyzedStructure())Q.analyzeStructure(x)}for(let Q=0;Q<x.length;Q++){let V=x[Q];if(V!==void 0){let pe=H+Q;S.set(pe,V),ne(pe,V)}}if(Y!==void 0)S.setTotal(Y);else if(H+x.length>S.getTotal())S.setTotal(H+x.length);if(S.getCachedCount()>=S.getTotal()&&S.getTotal()>0)d=!1;U(),q(),b?.(x,H,S.getTotal())},g=(x,H)=>{let Y=S.get(x);if(!Y)return!1;let Q=Y.id,V={...Y,...H};if(S.set(x,V),H.id!==void 0&&H.id!==Q)ve(Q);return ne(x,V),U(),q(),!0},M=(x,H)=>{S.insert(H,x),se(),_(),U(),q()},j=(x)=>{let H=h.get(x);if(H===void 0)return!1;if(!S.delete(H))return!1;return se(),_(),U(),q(),!0},X=async(x,H)=>{if(!t)return;let Y=S.chunkSize,Q=Math.floor(x/Y),V=Math.floor(H/Y),pe=Y*2;for(let[oe,ue]of k){let ge=oe.indexOf("-"),xe=parseInt(oe.slice(0,ge),10);if(Math.abs(xe-x)>pe)ue[1].abort(),k.delete(oe)}let be=[],Te=[];for(let oe=Q;oe<=V;oe++){let ue=oe*Y,ge=ue+Y-1,xe=ye(ue,ge);if(S.isChunkFullyLoaded(oe))continue;let ce=k.get(xe);if(ce)Te.push(ce[0]);else be.push({start:ue,end:ge})}if(be.length===0){if(Te.length>0)await Promise.all(Te);return}if(f>0){let oe=k.size+be.length;if(oe>f){let ue=(x+H)/2,ge=Math.min(oe-f,k.size);while(ge>0){let me=null,ce=-1,Se=null;for(let[Ce,Ne]of k){let Pe=Ce.indexOf("-"),Oe=parseInt(Ce.slice(0,Pe),10),De=parseInt(Ce.slice(Pe+1),10),Ee=Math.abs((Oe+De)/2-ue);if(Ee>ce)ce=Ee,me=Ce,Se=Ne[1]}if(me)Se.abort(),k.delete(me);ge--}let xe=f-k.size;if(be.length>xe)be.sort((me,ce)=>{let Se=Math.abs((me.start+me.end)/2-ue),Ce=Math.abs((ce.start+ce.end)/2-ue);return Se-Ce}),be.length=Math.max(0,xe)}}if(be.length===0){if(Te.length>0)await Promise.all(Te);return}for(let oe of be){let ue=ye(oe.start,oe.end),ge=new AbortController,xe=(async()=>{w.push(oe),l=!0,y=void 0,q();try{let me=oe.end-oe.start+1,ce={offset:oe.start,limit:me,cursor:oe.start===G?A:void 0,signal:ge.signal},Se=await t.read(ce);if(re(Se.items,oe.start,Se.total),Se.cursor)A=Se.cursor,G=oe.start+Se.items.length;let Ce=oe.start+Se.items.length;if(Ce>=D){if(D=Ce,Se.hasMore!==void 0)d=Se.hasMore;else if(Se.total!==void 0)d=Ce<Se.total}}catch(me){if(me?.name==="AbortError")return;y=me instanceof Error?me:Error(String(me)),F?.(y,oe)}finally{k.delete(ue);let me=w.findIndex((ce)=>ce.start===oe.start&&ce.end===oe.end);if(me>=0)w.splice(me,1);l=k.size>0,q()}})();k.set(ue,[xe,ge]),Te.push(xe)}await Promise.all(Te)},W=async(x,H)=>{if(S.isRangeLoaded(x,H))return;await X(x,H)},J=async()=>{if(!t)return;await X(0,i-1)},I=async()=>{if(!t||l||!d)return!1;let x=S.getCachedCount(),H=S.getTotal(),Y=x,Q=Math.min(Y+i-1,H>0?H-1:Y+i-1);if(Y>=H&&H>0)return d=!1,!1;return await X(Y,Q),S.getCachedCount()>x},ie=async()=>{if(S.clear(),h.clear(),N)N.clear();_(),w=[],l=!1,A=void 0,G=void 0,d=!0,D=0,y=void 0,U(),q()},le=(x,H)=>{if(S.evictDistant(x,H)>0)se()},ee=()=>{S.clear(),h.clear(),A=void 0,G=void 0,y=void 0,w=[],l=!1,U(),q()},Le=()=>{if(S.reset(),h.clear(),N)N.clear();A=void 0,G=void 0,d=!0,D=0,y=void 0,w=[],l=!1,U(),q()};if(s&&s.length>0)re(s,0,r??s.length);else if(r!==void 0)S.setTotal(r),U(),q();return{getState:c,getTotal:fe,getCached:m,getIsLoading:n,getHasMore:u,getStorage:C,getPlaceholders:T,getItem:Z,getItemById:K,getIndexById:O,isItemLoaded:B,getItemsInRange:v,setTotal:z,setItems:re,updateItem:g,insertItem:M,removeItem:j,loadRange:X,ensureRange:W,loadInitial:J,loadMore:I,reload:ie,evictDistant:le,clear:ee,reset:Le}};var Bt=0,Nt=1000,Kt=15,Wt=!0,Yt=16,Ut=!0,_e=2,Zt="scroll",qt=350,Xt=12,jt=(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}},Ht=(e,t,s={},r="vlist",o=!1,a,i,f)=>{let R=navigator.userAgentData?.platform||navigator.platform+navigator.userAgent,E=s.platform?s.platform==="windows":!/Mac|Android/i.test(R),{autoHide:b=!E,autoHideDelay:P=Nt,minThumbSize:F=Kt,showOnHover:S=Wt,showOnViewportEnter:N=Ut,clickBehavior:p=Zt}=s,h=p==="page"?"scroll":p,l=a??e,y=jt(s.padding),d=o?y.left:y.top,A=o?y.right:y.bottom,G=o?y.bottom:y.right,w=s.hoverZoneWidth??G+Yt,D=!0,k=0,_=0,q=0,U=0,se=!1,ne=!1,ve=0,ye=0,fe=0,m=null,n=!1,u=null,c=null,C=-1,T=-1,Z=-1,K=-1,O=-1,B=e.id?"":(()=>{let L;do L=`${r}-scrollport-${++Bt}`;while(document.getElementById(L));return e.id=L,L})(),v=0,z=0,re=null,g=null,M=null,j=o?"width":"height",X=o?"translateX":"translateY",W=o?(L)=>L.clientX:(L)=>L.clientY,J=o?"left":"top",I=document.createElement("div"),ie=document.createElement("div"),le=document.createElement("div"),ee=o?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",Le=()=>{if(l===e)return;let L=e.offsetTop;I.style[o?"left":"top"]=L?`calc(var(${ee}) + ${L}px)`:`var(${ee})`,le.style[o?"left":"top"]=`${L}px`},x=()=>{if(I.className=`${r}-scrollbar`,I.setAttribute("role","scrollbar"),I.setAttribute("aria-controls",e.id),I.setAttribute("aria-orientation",o?"horizontal":"vertical"),I.setAttribute("aria-label",e.getAttribute("aria-label")||"Scroll"),I.setAttribute("aria-valuemin","0"),I.tabIndex=0,ie.className=`${r}-scrollbar__thumb`,o)I.classList.add(`${r}-scrollbar--horizontal`);if(s.padding!==void 0)l.style.setProperty("--vlist-custom-scrollbar-padding-top",`${y.top}px`),l.style.setProperty("--vlist-custom-scrollbar-padding-right",`${y.right}px`),l.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${y.bottom}px`),l.style.setProperty("--vlist-custom-scrollbar-padding-left",`${y.left}px`);if(s.minThumbSize!==void 0)I.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${F}px`);if(I.appendChild(ie),l.appendChild(I),le.className=`${r}-scrollbar__hover`,o)le.classList.add(`${r}-scrollbar__hover--horizontal`),le.style.height=`${w}px`;else le.style.width=`${w}px`;if(l.appendChild(le),l!==e)Le()},H=()=>{if(m)clearTimeout(m),m=null},Y=()=>{if(!b)return;H(),m=setTimeout(V,P)},Q=()=>{if(!D||k<=_)return;if(H(),!n)I.classList.add(`${r}-scrollbar--visible`),n=!0;if(b&&!se&&!ne&&document.activeElement!==I)Y()},V=()=>{if(se||ne||document.activeElement===I)return;I.classList.remove(`${r}-scrollbar--visible`),n=!1},pe=(L,te)=>{if(k=L,_=te,Le(),be(fe),!D||k<=_){I.style.display="none",I.classList.remove(`${r}-scrollbar--visible`),n=!1;return}I.style.display="";let ae=Math.max(0,_-d-A),de=_/k;if(q=Math.max(F,de*ae),ie.style[j]=`${q}px`,U=ae-q,be(fe),!b)Q()},be=(L)=>{let te=Math.max(0,k-_);if(fe=Math.max(0,Math.min(L,te)),C!==te)C=te,I.setAttribute("aria-valuemax",String(te));if(T!==fe)T=fe,I.setAttribute("aria-valuenow",String(fe));let ae=i?.(),de=ae?.getTotal()??0,he=de?ae.indexAtOffset(fe)+1:0;if(he!==Z||de!==K)Z=he,K=de,I.setAttribute("aria-valuetext",`Row ${he} of ${de}`);if(te<=0||U<=0)return;let Me=fe/te*U;if(Me!==O)O=Me,ie.style.transform=`${X}(${Me}px)`},Te=(L)=>{if(!D||L.target!==I||document.activeElement!==I)return;if(L.stopPropagation(),L.altKey||L.ctrlKey||L.metaKey)return;let te=i?.(),ae=te?.getSize(te.indexAtOffset(fe))??40,de=fe;switch(L.key){case(o?"ArrowLeft":"ArrowUp"):de-=ae;break;case(o?"ArrowRight":"ArrowDown"):de+=ae;break;case"PageUp":de-=_;break;case"PageDown":de+=_;break;case"Home":de=0;break;case"End":de=k;break;default:return}L.preventDefault(),t(Math.max(0,Math.min(de,Math.max(0,k-_)))),Q()},oe=(L)=>{if(L.target===ie||h!=="jump"||U<=0)return;let te=k-_,ae=I.getBoundingClientRect(),de=W(L)-ae[J],he=Math.max(0,Math.min(de-q/2,U));t(he/U*te),Q()},ue=()=>{if(re!==null)clearTimeout(re),re=null;if(g!==null)cancelAnimationFrame(g),g=null;M=null},ge=(L)=>{let te=U>0?z/L*U:0;if(v<te)return-1;if(v>=te+q)return 1;return 0},xe=()=>{let L=k-_,te=ge(L);if(te===0){ue();return}if(te===-1){if(z<=0){ue();return}let ae=Math.max(0,z-_);z=ae,t(ae)}else{if(z>=L){ue();return}let ae=Math.min(L,z+_);z=ae,t(ae)}Q()},me=(L)=>{if(M===null){M=L,g=requestAnimationFrame(me);return}let te=k-_,ae=L-M;M=L;let de=ge(te);if(de===0){ue();return}let he=Xt*_/1000,Me=Math.min(he*ae,_);if(de===-1){if(z<=0){ue();return}let Ae=Math.max(0,z-Me);z=Ae,t(Ae)}else{if(z>=te){ue();return}let Ae=Math.min(te,z+Me);z=Ae,t(Ae)}H(),g=requestAnimationFrame(me)},ce=(L)=>{if(L&&L.pointerId!==u)return;let te=u,ae=c;if(u=null,c=null,se=!1,I.classList.remove(`${r}-scrollbar--dragging`),ue(),te!==null&&ae?.hasPointerCapture(te))ae.releasePointerCapture(te);Y()},Se=(L)=>{if(!D||L.button!==0||u!==null||U<=0)return;if(L.preventDefault(),L.stopPropagation(),u=L.pointerId,se=L.target===ie,c=se?ie:L.currentTarget,c.setPointerCapture(u),H(),se)ve=W(L),ye=fe,I.classList.add(`${r}-scrollbar--dragging`);else if(h==="jump")oe(L);else v=W(L)-I.getBoundingClientRect()[J],z=fe,xe(),re=setTimeout(()=>{g=requestAnimationFrame(me)},qt);Q()},Ce=(L)=>{if(!se||L.pointerId!==u)return;L.stopPropagation();let te=W(L)-ve,ae=Math.max(0,k-_),de=Math.max(0,Math.min(ye+te/U*ae,ae));be(de),t(de)},Ne=()=>{if(N)Q()},Pe=()=>{if(!se){if(ne=!1,b)Y()}},Oe=()=>{ne=!0,H(),Q()},De=()=>{if(ne=!1,!se&&b)Y()},Ee=["width","radius","thumb-color","track-color"],Ke=(L,te)=>l.style.setProperty(`--vlist-custom-scrollbar-${L}`,te),ze=Ee.map((L)=>l.style.getPropertyValue(`--vlist-custom-scrollbar-${L}`)),je=ze.slice(0,2),Je=[],Qe=()=>{for(let he=0;he<2;he++){let Me=Ee[he],Ae=l.style.getPropertyValue(`--vlist-custom-scrollbar-${Me}`);if(Ae!==Je[he])je[he]=Ae;Ke(Me,je[he])}let L=getComputedStyle(f??l),te=s.width??L.getPropertyValue("scrollbar-width"),ae=L.getPropertyValue("scrollbar-color").match(/[\w-]+\([^)]*\)|\S+/g);D=s.enabled!==!1&&te!=="none";let de=[typeof s.width==="number"?`${s.width}px`:L.getPropertyValue("--vlist-custom-scrollbar-width").trim()||(te==="thin"||!E?"6px":"14px"),typeof s.radius==="number"?`${s.radius}px`:L.getPropertyValue("--vlist-custom-scrollbar-radius").trim()||(E?"0px":"4px"),s.thumbColor??(ae?.length===2?ae[0]:ze[2]),s.trackColor??(ae?.length===2?ae[1]:ze[3])];for(let he=0;he<Ee.length;he++)Ke(Ee[he],de[he]);if(Je=de.slice(0,2),le.style.display=D?"":"none",e.classList.toggle(`${r}-viewport--gutter`,D&&!!s.gutter),!D)ce();pe(k,_)},Rt=()=>{H(),ue(),ce(),H();for(let L of et)L();for(let L=0;L<Ee.length;L++)Ke(Ee[L],ze[L]);if(e.classList.remove(`${r}-viewport--gutter`),le.remove(),l.style.removeProperty("--vlist-custom-scrollbar-padding-top"),l.style.removeProperty("--vlist-custom-scrollbar-padding-right"),l.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),l.style.removeProperty("--vlist-custom-scrollbar-padding-left"),I.remove(),B&&e.id===B)e.removeAttribute("id")};x();let et=[],Ie=(L,te,ae)=>{L.addEventListener(te,ae),et.push(()=>L.removeEventListener(te,ae))};for(let L of[I,ie,le])Ie(L,"pointerdown",Se),Ie(L,"pointermove",Ce),Ie(L,"pointerup",ce),Ie(L,"pointercancel",ce),Ie(L,"lostpointercapture",ce);if(Ie(I,"keydown",Te),Ie(I,"focus",Q),Ie(I,"blur",Y),Ie(e,"mouseenter",Ne),Ie(e,"mouseleave",Pe),Ie(I,"mouseenter",Oe),Ie(I,"mouseleave",De),S)Ie(le,"mouseenter",Oe),Ie(le,"mouseleave",De);return Qe(),{refresh:Qe,show:Q,hide:V,updateBounds:pe,updatePosition:be,isVisible:()=>n,destroy:Rt}};function Jt(e){let t=0,s=0,r=0;function o(){return r>0?s/r:0}function a(R){if(t=R,R>0.1&&R<50)s+=R,r++}function i(){let R=e.getTotal();if(R===0)return 0;let E=e.getItemSize();if(E<=0)return 0;let b=e.getContainerSize();if(b<=0)return 0;let P=e.getScrollPosition(),F=typeof e.getColumns==="function"?e.getColumns():1,S=Math.ceil(R/F),N=Math.max(0,S*E-b),p=Math.max(0,Math.min(P,N)),h=Math.ceil((p+b)/E);return Math.min(h*F,R)}function f(){let R=e.getTotal(),E=i();return{progress:R>0?Math.min(100,Math.max(0,E/R*100)):0,velocity:t,velocityAvg:o(),itemCount:E,total:R}}return{getState:f,onVelocity:a}}export{at as buildLayoutItems,qe as calculateMissingRanges,ht as clearSelection,At as createAsyncManager,Mt as createEmitter,dt as createGridLayout,lt as createGroupLayout,it as createGroupedSizeFn,Tt as createMasonryLayout,Lt as createMasonryRenderer,Be as createPlaceholderManager,Ht as createScrollbar,pt as createSelectionState,Et as createSizeCache,Ve as createSparseStorage,Jt as createStats,ut as createStickyHeader,ft as createTableHeader,mt as createTableLayout,xt as createTableRenderer,Ze as deselectItems,Xe as filterPlaceholders,St as getSelectedIds,vt as getSelectedItems,ct as isGroupHeader,He as isPlaceholderItem,yt as isSelected,Fe as mergeRanges,gt as selectAll,Ue as selectItems,bt as toggleSelection};
@@ -46,11 +46,26 @@ export interface CarouselPluginConfig {
46
46
  /** Custom easing function for snap animation. Receives t in [0,1], returns eased value. */
47
47
  snapEasing?: (t: number) => number;
48
48
  peek?: number | string | "auto";
49
+ /**
50
+ * @deprecated Never read by `carousel()`. Pass a `SlotConfig` or `SlotConfigResolver` to `variant` to cap the focal slot width. Will be removed in 4.0.
51
+ */
49
52
  largeItemMaxWidth?: number | "auto";
53
+ /**
54
+ * @deprecated Never read by `carousel()`. Import `vlist/styles/carousel` (which locks media to `--vlist-carousel-focal-width`) or drive transforms from `--vlist-carousel-offset` and `--vlist-carousel-progress`. Will be removed in 4.0.
55
+ */
50
56
  parallax?: number;
57
+ /**
58
+ * @deprecated Never read by `carousel()`. Pass a `SlotConfig` or `SlotConfigResolver` to `variant` to set the visible slot count and ratios. Will be removed in 4.0.
59
+ */
51
60
  visibleCount?: number;
61
+ /**
62
+ * @deprecated Never read by `carousel()`. Use the `"hero"` (`focalSlot: 0`) or `"hero-center"` (`focalSlot: 1`) preset, or set `focalSlot` on a custom `SlotConfig` `variant`. Will be removed in 4.0.
63
+ */
52
64
  focalAlign?: "center" | "start";
53
65
  initialIndex?: number;
66
+ /**
67
+ * @deprecated Never read by `carousel()`. Set `--vlist-carousel-radius` in CSS (read by `vlist/styles/carousel`) or `border-radius` on the slide element. Will be removed in 4.0.
68
+ */
54
69
  cornerRadius?: number;
55
70
  gap?: number;
56
71
  }
@@ -15,6 +15,12 @@
15
15
  */
16
16
  import type { GroupsConfig, GroupBoundary, GroupLayout, GroupHeaderItem } from "./types";
17
17
  import type { VListItem } from "../../types";
18
+ /**
19
+ * Last index whose read(item) is <= limit. Empty input returns 0.
20
+ * Both group lookups use this one search. `read` is a stable function,
21
+ * so a lookup allocates nothing.
22
+ */
23
+ export declare const findLastAtMost: (items: readonly GroupBoundary[], read: (item: GroupBoundary) => number, limit: number) => number;
18
24
  /**
19
25
  * Find the last group whose headerLayoutIndex <= layoutIndex.
20
26
  * Returns the group's index in the groups array.
package/dist/size.json CHANGED
@@ -1 +1 @@
1
- {"base":{"minified":"27.1","gzipped":"10.4","minBytes":27780,"gzBytes":10672},"synthetic":{"minified":"34.0","gzipped":"13.0","minBytes":34846,"gzBytes":13337},"synthetic + carousel":{"minified":"49.5","gzipped":"18.3","minBytes":50639,"gzBytes":18737},"synthetic + sortable":{"minified":"46.0","gzipped":"16.7","minBytes":47131,"gzBytes":17081},"createStats":{"minified":"27.7","gzipped":"10.6","minBytes":28382,"gzBytes":10901},"synthetic + createStats":{"minified":"34.6","gzipped":"13.3","minBytes":35448,"gzBytes":13569},"native":{"minified":"27.1","gzipped":"10.4","minBytes":27780,"gzBytes":10677},"vue":{"minified":"27.5","gzipped":"10.6","minBytes":28170,"gzBytes":10849},"svelte":{"minified":"27.3","gzipped":"10.5","minBytes":27965,"gzBytes":10751},"solid":{"minified":"27.4","gzipped":"10.6","minBytes":28077,"gzBytes":10813},"react":{"minified":"27.6","gzipped":"10.6","minBytes":28217,"gzBytes":10861},"react + grid":{"minified":"35.3","gzipped":"13.3","minBytes":36128,"gzBytes":13632},"a11y":{"minified":"32.5","gzipped":"12.4","minBytes":33281,"gzBytes":12671},"selection":{"minified":"37.3","gzipped":"13.8","minBytes":38213,"gzBytes":14123},"data":{"minified":"40.8","gzipped":"15.2","minBytes":41740,"gzBytes":15587},"scrollbar":{"minified":"35.3","gzipped":"13.3","minBytes":36130,"gzBytes":13625},"sortable":{"minified":"39.1","gzipped":"14.1","minBytes":40026,"gzBytes":14429},"groups":{"minified":"43.5","gzipped":"15.9","minBytes":44586,"gzBytes":16295},"page":{"minified":"29.8","gzipped":"11.4","minBytes":30474,"gzBytes":11641},"snapshots":{"minified":"30.4","gzipped":"11.6","minBytes":31161,"gzBytes":11842},"transition":{"minified":"33.9","gzipped":"12.4","minBytes":34687,"gzBytes":12703},"autosize":{"minified":"31.5","gzipped":"12.0","minBytes":32257,"gzBytes":12286},"grid":{"minified":"34.9","gzipped":"13.1","minBytes":35691,"gzBytes":13441},"table":{"minified":"46.5","gzipped":"16.6","minBytes":47599,"gzBytes":16995},"masonry":{"minified":"39.5","gzipped":"14.9","minBytes":40452,"gzBytes":15286},"tree":{"minified":"43.4","gzipped":"15.8","minBytes":44467,"gzBytes":16203},"search":{"minified":"36.5","gzipped":"13.9","minBytes":37349,"gzBytes":14260},"carousel":{"minified":"43.4","gzipped":"16.0","minBytes":44411,"gzBytes":16396}}
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":17079},"createStats":{"minified":"27.8","gzipped":"10.6","minBytes":28447,"gzBytes":10904},"synthetic + createStats":{"minified":"34.7","gzipped":"13.3","minBytes":35513,"gzBytes":13570},"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":10866},"react + grid":{"minified":"35.3","gzipped":"13.3","minBytes":36193,"gzBytes":13636},"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":"31.6","gzipped":"12.0","minBytes":32322,"gzBytes":12289},"grid":{"minified":"34.9","gzipped":"13.1","minBytes":35756,"gzBytes":13445},"table":{"minified":"46.9","gzipped":"16.7","minBytes":48021,"gzBytes":17121},"masonry":{"minified":"39.6","gzipped":"14.9","minBytes":40517,"gzBytes":15290},"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/synthetic.js CHANGED
@@ -1 +1 @@
1
- var _t=(e,t,n)=>()=>{if(e)try{t=e(e=0)}catch(l){n=[l]}if(n)throw n[0];return t};var ke=3,Rt="vlist",rt=16000000,he=150,Fe=(e)=>e<0.5?2*e*e:1-(-2*e+2)**2/2,Ht=300,De="__placeholder_";function Rn(e,t,n,l,i){if(t===0||e.size===0)return;let r=e.size;if($e.length<r)$e=new Int32Array(r);if(we.length<r)we.length=r;let s=0;for(let[y,S]of e)$e[s]=y,we[s]=S,s++;e.clear();let d=n+"-item-",b=l.getAttribute("aria-activedescendant"),P=null,f=i&&t&1;for(let y=0;y<r;y++){let S=$e[y],v=we[y];we[y]=void 0;let w=S-t;if(e.set(w,v),b!==null&&v.id===b)P=v;if(v.id===d+S)v.id=d+w;if(f)v.classList.toggle(i)}if(P!==null)l.setAttribute("aria-activedescendant",P.id)}function Hn(e,t,n){if(t===0&&n===0)return;e.prevRangeStart-=t,e.prevRangeEnd-=t,e.startIndex-=t,e.prevBaseOffset-=n;let l=e.visibleCount;for(let i=0;i<l;i++)e.visibleIndices[i]-=t,e.visibleOffsets[i]-=n}function tn(e,t){let n=t>1?Math.trunc(e):Math.floor(e);return Math.abs(n)<t?0:n}function nn(e,t,n,l,i,r,s){let d=e.lapSize(),b=e.itemsPerLap(),P=d>0?Math.round(t/d)*b:0;if(P===0)return;if(i)Rn(i,P,r,l,s);Hn(n,P,t)}var $e,we;var on=_t(()=>{$e=new Int32Array(0),we=[]});function an({getMax:e,onChange:t=()=>{},onFinish:n,axis:l="y",reducedMotion:i}){let r=0,s=0,d=null,b=0,P=0,f=0,y=0,S=0,v=null,w=0,A=0,M=0,g=0,N=400,x=rn,z=()=>M,K=0.006,u=(h)=>{let L=e();return Number.isFinite(L)?Math.max(0,Math.min(L,h)):h},E=(h,L)=>l==="y"?L:h,H=(h,L)=>l==="y"?h:L;function C(h){let L=u(h);if(L!==r)r=L,t(r);return L!==h}function p(){S=0,s=d===null?0:5}function k(h){p(),C(h)}return{get position(){return r},get state(){return s},get velocity(){return S},get active(){return s===3||s===4},begin(h,L,U,B){if(d!==null){p();return}p(),d=h,b=f=E(L,U),P=H(L,U),y=B,s=1},move(h,L,U,B){if(h!==d||s!==1&&s!==2)return!1;let Y=E(L,U);if(s===1){let O=Math.abs(Y-b),_=Math.abs(H(L,U)-P);if(Math.max(O,_)<6)return!1;if(_>O*1.2)return p(),!1;if(O<_*1.2)return!1;s=2}let ee=f-Y,T=B-y;if(T>0){let O=Math.max(-3,Math.min(3,ee/T));S=T>80?0:O*S<0?O:0.65*O+0.35*S}if(f=Y,y=B,C(r+ee))S=0;return!0},end(h,L){if(h!==d)return;if(d=null,s===2&&!i()&&L-y<=80&&Math.abs(S)>=0.02)v=null,s=3;else S=0,s=0},cancel:p,reset(){d=null,p()},jump:k,shiftBy(h){A+=h,g+=h,C(r+h)},by(h){p();let L=r;return C(r+h),r!==L},smooth(h,L=400,U=rn){if(p(),g=0,z=typeof h==="function"?h:()=>h,d!==null||i()||L<=0){C(z());return}N=L,x=U,A=r,M=u(z()+g),v=null,s=4},resize(){p(),C(r)},tick(h){if(s!==3&&s!==4)return;if(v===null){if(v=h,s===4)w=h;return}let L=h-v;if(L<=0)return;if(v=h,L>100){if(s===4)C(u(z()+g)),s=0,n?.();else p();return}if(s===4){M=u(z()+g);let Y=Math.min(1,(h-w)/N);if(C(A+(M-A)*x(Y)),Y===1)s=0,n?.();return}let U=Math.exp(-K*L),B=C(r+S*(1-U)/K);if(S*=U,B||Math.abs(S)<0.02)S=0,s=0}}}var ln=1,sn=2,rn=(e)=>1-(1-e)**3;function ct(e){if(e.closest("textarea,select,[contenteditable]:not([contenteditable=false])"))return!0;let t=e.closest("input");return!!t&&!/^(button|submit|reset|checkbox|radio|image)$/.test(t.type)}function cn(e){let{state:t,viewport:n,content:l,isX:i,onFrame:r,onIdle:s,mainAxisPadding:d,wrap:b}=e,P=n.parentElement??n,f=n.ownerDocument.defaultView,y=n.ownerDocument,S=f.matchMedia("(prefers-reduced-motion: reduce)"),v=0,w=null,A=null,M=!1,g=!1,N=!1,x=-1,z=-1,K=null,u=null,E=!1,H=!1,C=!1,p=!1,k,h=new Set;function L(c){let R=t.scrollPosition;if(b){let W=b.lapSize(),F=W>0?tn((c-b.home())/W,b.thresholdLaps):0;if(F!==0){let G=F*W;N=!0,T.shiftBy(-G),N=!1,c=T.position,R-=G,nn(b,G,t,l,e.rendered,e.classPrefix??"",e.oddClass),e.onFold?.(G),b.onFold?.(G)}}if(t.prevScrollPosition=R,t.scrollPosition=t.baseOffset=c,t.scrollDirection=c>R?1:c<R?-1:0,!g)r()}function U(){if(A=null,T.active||T.state===sn||T.state===ln)return;t.scrollDirection=0,s()}function B(){if(!M)return;if(A!==null)clearTimeout(A);A=setTimeout(U,e.idleTimeout||he)}function Y(){if(M&&w===null&&T.active)w=requestAnimationFrame(ee)}function ee(c){if(w=null,T.tick(c),T.active)Y();else B()}let T=an({axis:i?"x":"y",getMax:()=>b?1/0:v,reducedMotion:()=>S.matches,onChange(c){if(!N)L(c)},onFinish(){let c=k;k=void 0,c?.()}});function O(){if(k=void 0,w!==null)cancelAnimationFrame(w),w=null;if(T.cancel(),A!==null)clearTimeout(A),A=null}function _(){if(O(),T.reset(),p&&K!==null&&n.hasPointerCapture(K))n.releasePointerCapture(K);p=!1,h.clear(),K=u=null,E=H=C=!1,B()}function me(c){if(!We(c))return;if(c.isPrimary){if(h.size)_();h.clear()}if(h.add(c.pointerId),h.size>1){C=!0,O();return}if(!(c.target instanceof Element)||ct(c.target)){O();return}K=c.pointerId,E=!1,H=T.active,u=null,O(),T.begin(c.pointerId,c.clientX,c.clientY,c.timeStamp)}function le(c){if(!We(c)||c.target instanceof Node&&n.contains(c.target))return;if(c.isPrimary&&h.size)_();else if(h.size)h.add(c.pointerId),C=!0,O()}function Se(c){if(!We(c)||C)return;if(T.move(c.pointerId,c.clientX,c.clientY,c.timeStamp)){if(E=!0,!p)n.setPointerCapture(c.pointerId),p=!0;if(c.cancelable)c.preventDefault()}}function se(c){if(!We(c)||!h.has(c.pointerId))return;let R=c.type==="pointercancel";if(R)O();if(K===c.pointerId){if(!R&&!C&&(E||H))u=c.pointerId;if(p&&n.hasPointerCapture(c.pointerId))n.releasePointerCapture(c.pointerId);p=!1,K=null,E=H=!1}if(T.end(c.pointerId,c.timeStamp),h.delete(c.pointerId),!h.size){if(C||R)T.reset();C=!1}Y(),B()}function fe(c){let R=c.pointerId;if(c.detail!==0&&u!==null&&(R===u||R===void 0))u=null,c.preventDefault(),c.stopImmediatePropagation()}function j(c){if(c.ctrlKey||c.defaultPrevented||!(c.target instanceof Element)||ct(c.target))return;let R=c.deltaMode===1?16:c.deltaMode===2?t.containerSize:1,W=i?c.deltaX:c.deltaY,F=i?c.deltaY:c.deltaX,G=i?n.scrollHeight>n.clientHeight:n.scrollWidth>n.clientWidth;if(G&&Math.abs(F)>Math.abs(W))return;if(G&&F!==0)if(c.preventDefault(),i)n.scrollTop+=F*R;else n.scrollLeft+=F*R;let Le=i&&!G&&W===0?F:W;if(O(),T.by(Le*R))c.preventDefault();B()}function xe(c){if(c.defaultPrevented||c.ctrlKey||c.metaKey||c.altKey||!(c.target instanceof Element)||ct(c.target))return;if((c.key===" "||c.key==="Enter")&&c.target.closest("button,summary,a,input"))return;let R=e.sizeCache,W=R.getSize(R.indexAtOffset(T.position)),F;if(c.key===(i?"ArrowRight":"ArrowDown"))F=T.position+W;if(c.key===(i?"ArrowLeft":"ArrowUp"))F=T.position-W;if(c.key==="PageDown"||c.key===" ")F=T.position+t.containerSize*(c.shiftKey&&c.key===" "?-1:1);if(c.key==="PageUp")F=T.position-t.containerSize;if(c.key==="Home")F=0;if(c.key==="End")F=v;if(F!==void 0)c.preventDefault(),ne(F)}function pe(){if(y.hidden)_()}function ne(c){let R=T.position;if(O(),T.jump(c),R===(b?c:Math.max(0,Math.min(v,c))))L(T.position);B()}function Ee(c){let R=x!==t.containerSize||z!==t.crossSize,W=c!==t.totalSize||R;if(x=t.containerSize,z=t.crossSize,t.totalSize=c,v=Math.max(0,c+d-t.containerSize),W){if(g=!0,R)O(),T.resize();else T.shiftBy(0);L(T.position),g=!1}}return{setLogical:ne,refresh:Ee,shiftBy(c){if(t.totalSize=e.sizeCache.getTotalSize(),v=Math.max(0,t.totalSize+d-t.containerSize),T.shiftBy(c),!T.active)B()},cancelScroll(){O(),B()},getLogical:()=>t.scrollPosition,getMaxLogical:()=>v,smoothScrollTo(c,R,W,F=Fe,G){if(O(),T.smooth(c,R,F),k=G,!T.active)k=void 0,G?.(),B();else Y()},attach(){if(M)return;if(M=!0,n.style.overflowX=i?"hidden":"auto",n.style.overflowY=i?"auto":"hidden",n.style.touchAction=i?"pan-y pinch-zoom":"pan-x pinch-zoom",n.style.overflowAnchor="none",l.style[i?"width":"height"]="100%",l.style.overflow="clip",l.style.overflowAnchor="none",n.addEventListener("pointerdown",me),f.addEventListener("pointerdown",le),n.addEventListener("pointermove",Se,{passive:!1}),f.addEventListener("pointerup",se),f.addEventListener("pointercancel",se),n.addEventListener("click",fe,!0),e.wheelEnabled)n.addEventListener("wheel",j,{passive:!1});P.addEventListener("keydown",xe),f.addEventListener("blur",_),y.addEventListener("visibilitychange",pe),S.addEventListener("change",_),Y()},detach(){if(M=!1,_(),A!==null)clearTimeout(A),A=null;n.removeEventListener("pointerdown",me),f.removeEventListener("pointerdown",le),n.removeEventListener("pointermove",Se),f.removeEventListener("pointerup",se),f.removeEventListener("pointercancel",se),n.removeEventListener("click",fe,!0),n.removeEventListener("wheel",j),P.removeEventListener("keydown",xe),f.removeEventListener("blur",_),y.removeEventListener("visibilitychange",pe),S.removeEventListener("change",_),n.style.overflowX=n.style.overflowY=n.style.touchAction=n.style.overflowAnchor="",l.style.overflow=l.style.overflowAnchor=""}}}var We=(e)=>e.pointerType==="touch"||e.pointerType==="pen";var un=_t(()=>{on()});function Ot(e){let{state:t,viewport:n,isX:l,onFrame:i,onIdle:r}=e,s=e.idleTimeout||he,d=null,b=null;function P(v=l?n.scrollLeft:n.scrollTop){t.prevScrollPosition=t.scrollPosition,t.scrollPosition=v,t.scrollDirection=v>t.prevScrollPosition?1:v<t.prevScrollPosition?-1:0,i(),f()}function f(){if(d!==null)clearTimeout(d);d=setTimeout(()=>{d=null,t.scrollDirection=0,r()},s)}function y(){if(b!==null)cancelAnimationFrame(b),b=null}function S(v,w,A,M=Fe,g){y();let N=t.scrollPosition,x=typeof v==="function"?v:()=>v,z=x();if(Math.abs(z-N)<1){if(A)A(z);else if(l)n.scrollLeft=z;else n.scrollTop=z;g?.();return}let K=performance.now();function u(E){z=x();let H=E-K,C=Math.min(H/w,1),p=N+(z-N)*M(C);if(A)A(p);else{if(l)n.scrollLeft=p;else n.scrollTop=p;let k=l?n.scrollLeft:n.scrollTop;P(Math.abs(k-p)>1?k:p)}if(C<1)b=requestAnimationFrame(u);else b=null,g?.()}b=requestAnimationFrame(u)}return{attach(){},detach(){if(y(),d!==null)clearTimeout(d),d=null},cancelScroll:y,smoothScrollTo:S,commitScroll:P}}var Ne={top:0,right:0,bottom:0,left:0},Vt=(e)=>{if(e==null)return Ne;if(typeof e==="number")return e===0?Ne:{top:e,right:e,bottom:e,left:e};if(e.length===2){let[r,s]=e;return r===0&&s===0?Ne:{top:r,right:s,bottom:r,left:s}}let[t,n,l,i]=e;return t===0&&n===0&&l===0&&i===0?Ne:{top:t,right:n,bottom:l,left:i}},kt=(e,t)=>t?e.left+e.right:e.top+e.bottom,Ft=(e,t)=>t?e.top+e.bottom:e.left+e.right;function Dt(e){let t={visibleIndices:new Int32Array(e),visibleOffsets:new Float64Array(e),visibleSizes:new Float64Array(e),visibleCount:0,startIndex:0,totalSize:0,capacity:e,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,windowClamped:!1,windowClampReported:!1,prevAriaTotal:-1,ensureCapacity(n){if(n<=t.capacity)return;let l=n+8,i=new Int32Array(l),r=new Float64Array(l),s=new Float64Array(l);i.set(t.visibleIndices),r.set(t.visibleOffsets),s.set(t.visibleSizes),t.visibleIndices=i,t.visibleOffsets=r,t.visibleSizes=s,t.capacity=l},resizeCapacity(n,l,i=ke){if(l<=0||n<=0)return;t.ensureCapacity(Math.ceil(n/l)+i*2)},clear(){t.visibleCount=0,t.startIndex=0}};return t}var vn=(e,t,n)=>{let l=t;return{getOffset:(i)=>i*e,getSize:(i)=>e,indexAtOffset:(i)=>{if(l===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(i/e),l-1))},getTotalSize:()=>{let i=l*e;return i>0?i-n:0},getTotal:()=>l,rebuild:(i)=>{l=i},invalidate:()=>{},isVariable:()=>!1}};var Nt=(e,t,n,l)=>{while(t<n){let i=t+n+1>>>1;if(e[i]<=l)t=i;else n=i-1}return t},gn=(e,t,n)=>{let l=0,i=0,r=new Float64Array(0),s=new Float64Array(0),d=new Float64Array(1),b=(f,y)=>{for(let S=f;S<i;S++){if(S<=y){let v=S<<9,w=Math.min(v+512,l),A=0;for(let M=v;M<w;M++)r[M]=A,A+=e(M);s[S]=A}d[S+1]=d[S]+s[S]}},P=(f)=>{l=f,i=Math.ceil(f/512),r=new Float64Array(f),s=new Float64Array(i),d=new Float64Array(i+1),b(0,i-1)};return P(t),{getOffset:(f)=>{if(f<=0)return 0;if(f>=l)return d[i];return d[f>>>9]+r[f]},getSize:(f)=>e(f),indexAtOffset:(f)=>{if(l===0||f<=0)return 0;if(f>=d[i])return l-1;let y=Nt(d,0,i-1,f),S=y<<9;return Nt(r,S,Math.min(S+512,l)-1,f-d[y])},getTotalSize:()=>{let f=d[i];return f>0?f-n:0},getTotal:()=>l,rebuild:(f)=>P(f),invalidate:(f,y=f)=>{if(f>=0&&y<l)b(f>>>9,y>>>9)},isVariable:()=>!0}},Be=(e,t,n=0)=>{if(typeof e==="number")return vn(e,t,n);return gn(e,t,n)};function Bt(e){let t=[],n=`${e}-item`,l=document.createElement("div");return l.className=n,{acquire(){if(t.length>0)return t.pop();return l.cloneNode(!1)},release(i){i.className=n,i.removeAttribute("style"),i.removeAttribute("id"),i.removeAttribute("role"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-posinset"),i.removeAttribute("aria-setsize"),i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.textContent="",t.push(i)},get size(){return t.length},trim(i){let r=i>0?i:0;if(t.length>r)t.length=r},clear(){t.length=0}}}function Kt(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let n=0;n<t.length;n++)t[n].setAttribute("tabindex","-1");e._stamp=0}function it(e){if(typeof e==="string"){let t=document.querySelector(e);if(!t)throw Error(`[vlist] Container not found: ${e}`);return t}return e}function $t(e,t,n,l){let i=n?`${t} ${t}--horizontal`:t,r=n?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",s=n?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",d=' role="list"';if(l)d+=` aria-label="${l.replace(/"/g,"&quot;")}"`;if(n)d+=' aria-orientation="horizontal"';e.insertAdjacentHTML("beforeend",`<div class="${i}"><div class="${t}-viewport" style="${r}" tabindex="-1"><div class="${t}-content" style="${s}"${d}></div></div></div>`);let b=e.lastElementChild,P=b.firstElementChild,f=P.firstElementChild,y=document.createElement("div");return y.className=`${t}-live`,y.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",y.setAttribute("aria-live","polite"),y.setAttribute("aria-atomic","true"),y.setAttribute("role","status"),b.appendChild(y),{root:b,viewport:P,content:f,liveRegion:y}}function hn(e,t){if(e.getTotal()<=0)return{index:0,offsetPx:0};let l=t<=0?0:t,i=e.indexAtOffset(l),r=l-e.getOffset(i);return{index:i,offsetPx:r>0?r:0}}function yn(e,t){let n=Sn(e,t);return e.getOffset(n.index)+n.offsetPx}function Sn(e,t){let n=e.getTotal();if(n<=0)return{index:0,offsetPx:0};let{index:l,offsetPx:i}=t;if(l<0)return{index:0,offsetPx:0};if(l>n-1)l=n-1;while(i>0&&l<n-1){let r=e.getSize(l);if(i<r)break;i-=r,l++}while(i<0&&l>0)l--,i+=e.getSize(l);if(i<0)i=0;return{index:l,offsetPx:i}}function Wt(e){let{sizeCache:t,getPixel:n,setPixel:l,getContainerSize:i}=e;function r(){let d=t.getTotalSize()+e.padding-i();return d>0?d:0}function s(d){if(d<=0)return 0;let b=r();return d>b?b:d}return{getLogical(){return hn(t,n())},setLogical(d){l(s(yn(t,d)))},getPixelEquivalent(){return n()},setPixelEquivalent(d){l(s(d))},getMaxPixelEquivalent:r,getRenderOrigin:e.getRenderOrigin,scrollByPx(d){l(s(n()+d))}}}var Ae=[],xn={calculate:Ae,commit:Ae,afterScroll:Ae,idle:Ae,resize:Ae};function Ut(e){if(e.length===0)return xn;let t=[],n=[],l=[],i=[],r=[];for(let s=0;s<e.length;s++){let d=e[s].hooks;if(d===void 0)continue;if(d.onCalculate!==void 0)t.push(d.onCalculate);if(d.onCommit!==void 0)n.push(d.onCommit);if(d.onAfterScroll!==void 0)l.push(d.onAfterScroll);if(d.onIdle!==void 0)i.push(d.onIdle);if(d.onResize!==void 0)r.push(d.onResize)}return{calculate:t,commit:n,afterScroll:l,idle:i,resize:r}}function Gt(e,t){for(let n=0;n<e.length;n++)e[n](t)}function Me(e,t){for(let n=0;n<e.length;n++)e[n](t)}function lt(e,t,n){for(let l=0;l<e.length;l++)e[l](t,n)}function qt(e){for(let t=0;t<e.length;t++)e[t]()}function Xt(e,t,n){for(let l=0;l<e.length;l++)e[l](t,n)}function Zt(e,t,n,l,i,r,s,d){let b=l!==0||i!==0;return{prefix:e,selectedClass:`${e}-item--selected`,focusedClass:`${e}-item--focused`,placeholderClass:`${e}-item--placeholder`,replacedClass:`${e}-item--replaced`,translateProp:t?"translateX(":"translateY(",sizeProp:t?"width":"height",itemRole:"listitem",interactive:!1,startPadding:n,gap:s,hasCrossPad:b,crossStartProp:b?t?"top":"left":"",crossEndProp:b?t?"bottom":"right":"",crossStartVal:b?l+"px":"",crossEndVal:b?i+"px":"",oddClass:r,emitter:d??null,indexMap:null,ariaTotalFn:null}}function En(e,t,n,l,i){if(e.containerSize<=0||e.totalItems===0)return e.clear(),!0;let{scrollPosition:r,containerSize:s,totalItems:d}=e,b=i??0;e.totalSize=t.getTotalSize();let P=t.indexAtOffset(b>0?Math.max(0,r-b):r),f=t.indexAtOffset(r+s);if(f<d-1)f++;P=Math.max(0,P),f=Math.min(d-1,Math.max(0,f));let y=Math.max(0,P-n),S=Math.min(d-1,f+n),v=Math.ceil(s)+n*2;if(S-y+1>v)S=y+v-1,e.windowClamped=!0;let w=S-y+1;if(w>e.capacity)e.ensureCapacity(w);let A=Math.min(w,e.capacity);if(y===e.prevRangeStart&&S===e.prevRangeEnd&&!e.renderPending&&e.baseOffset===e.prevBaseOffset)return!1;e.visibleCount=A,e.startIndex=y;for(let M=0;M<A;M++){let g=y+M;e.visibleIndices[M]=g,e.visibleOffsets[M]=t.getOffset(g),e.visibleSizes[M]=t.getSize(g)}return Gt(l.calculate,e),e.prevRangeStart=y,e.prevRangeEnd=S,e.prevBaseOffset=e.baseOffset,e.renderPending=!1,!0}var X={selected:!1,focused:!1};function Ln(e,t,n){for(let l=0;l<t;l++)if(e[l]===n)return!0;return!1}function Tn(e,t){if(t<=1)return!0;let n=e[0];for(let l=1;l<t;l++){let i=e[l];if(i!==n+1)return!1;n=i}return!0}function Yt(e,t,n,l,i){let r;try{r=t(n,l,X)}catch(s){return i.emitter?.emit("error",{error:s instanceof Error?s:Error(String(s)),context:`template:render:${l}`}),!1}if(typeof r==="string")e.innerHTML=r;else e.textContent="",e.appendChild(r);return Kt(e),!0}function In(e,t,n,l,i,r,s,d,b,P){let f=b?null:i(),{visibleCount:y,visibleIndices:S}=e,v=s.ariaTotalFn?s.ariaTotalFn():e.totalItems,w=s.interactive?String(v):"",A=s.interactive&&v!==e.prevAriaTotal,M=null,g=s.indexMap;for(let N=0;N<y;N++){let x=S[N],z=g?g(x):x,K=e.visibleOffsets[N],u=e.visibleSizes[N],E=b?b(x):f[x];if(P)P(z,X);else X.selected=!1,X.focused=!1;let H=r.get(x),C=H;if(H===void 0){let p=t.acquire();if(E!==void 0&&!Yt(p,l,E,z,s)){t.release(p);continue}if(p.setAttribute("role",s.itemRole),p.setAttribute("data-index",String(z)),s.interactive)p.id=s.prefix+"-item-"+x,p.setAttribute("aria-posinset",String(z+1)),p.setAttribute("aria-setsize",w);if(E!==void 0){let L=String(E.id);if(p.setAttribute("data-id",L),L.startsWith(De))p.classList.add(s.placeholderClass)}if(s.hasCrossPad)p.style.setProperty(s.crossStartProp,s.crossStartVal),p.style.setProperty(s.crossEndProp,s.crossEndVal);if(P){if(p.classList.toggle(s.selectedClass,X.selected),p.classList.toggle(s.focusedClass,X.focused),X.selected)p.setAttribute("aria-selected","true");else p.removeAttribute("aria-selected");p._lastSelected=X.selected,p._lastFocused=X.focused}if(s.oddClass)p.classList.toggle(s.oddClass,(x&1)===1);let k=K-e.baseOffset+s.startPadding;p.style.transform=s.translateProp+k+"px)",p._lastOffset=k;let h=u-s.gap;if(p.style[s.sizeProp]=h+"px",p._lastSize=h,p._lastItem=E,r.set(x,p),M===null)M=document.createDocumentFragment();M.appendChild(p)}else{if(A)H.setAttribute("aria-setsize",w);if(E!==void 0&&C._lastItem!==E){let h=H.getAttribute("data-id"),L=String(E.id);if(!Yt(H,l,E,z,s))continue;if(H.setAttribute("data-id",L),C._lastItem=E,h!==L){let U=h!==null&&h.startsWith(De),B=L.startsWith(De);if(U!==B)H.classList.toggle(s.placeholderClass,B);if(U&&!B)H.classList.add(s.replacedClass),setTimeout(()=>{H.classList.remove(s.replacedClass)},300)}}if(P){if(C._lastSelected!==X.selected){if(H.classList.toggle(s.selectedClass,X.selected),X.selected)H.setAttribute("aria-selected","true");else H.removeAttribute("aria-selected");C._lastSelected=X.selected}if(C._lastFocused!==X.focused)H.classList.toggle(s.focusedClass,X.focused),C._lastFocused=X.focused}let p=K-e.baseOffset+s.startPadding;if(C._lastOffset!==p)H.style.transform=s.translateProp+p+"px)",C._lastOffset=p;let k=u-s.gap;if(C._lastSize!==k)H.style[s.sizeProp]=k+"px",C._lastSize=k}}if(M!==null)n.appendChild(M);if(y>0&&Tn(S,y)){let N=S[0],x=S[y-1];for(let[z,K]of r)if(z<N||z>x)K.remove(),t.release(K),r.delete(z)}else for(let[N,x]of r)if(!Ln(S,y,N))x.remove(),t.release(x),r.delete(N);if(s.interactive)e.prevAriaTotal=e.totalItems;Me(d.commit,e)}function st(e,t,n,l,i,r,s,d,b,P,f,y){let S=En(e,t,n,P,b.startPadding);if(e.windowClamped&&!e.windowClampReported)e.windowClampReported=!0,queueMicrotask(()=>{if(e.destroyed)return;b.emitter?.emit("error",{error:Error("[vlist] render window capped to the viewport: the item size spec reports sizes below 1px"),context:"render:window-ceiling"})});if(S)In(e,l,i,r,s,d,b,P,f,y)}var at=()=>{let e={},t=(r,s)=>{if(!e[r])e[r]=new Set;return e[r].add(s),()=>n(r,s)},n=(r,s)=>{e[r]?.delete(s)};return{on:t,off:n,emit:(r,s)=>{e[r]?.forEach((d)=>{try{d(s)}catch(b){}})},clear:(r)=>{if(r)delete e[r];else for(let s in e)delete e[s]}}};var jt=2,Jt=(e=0)=>({velocity:0,sampleCount:0}),Qt=(e,t)=>{let n=performance.now(),l=e._lt??n,i=e._lp??t,r=n-l;if(e._lp=t,e._lt=n,r===0)return e.sampleCount=Math.min(e.sampleCount+1,5),e;if(r>100)return e.velocity=0,e.sampleCount=1,e;return e.velocity=Math.abs(t-i)/r,e.sampleCount=Math.min(e.sampleCount+1,5),e};function ye(e,t,n=!1){if(t===void 0)return;if(typeof t!=="number"||!Number.isFinite(t)||t<0||t===0&&!n)throw Error(`vlist: ${e} must be a ${n?"non-negative":"positive"} number, got ${t}`)}function Cn(e){let{item:t}=e;if(typeof t.height==="number")ye("item.height",t.height);if(typeof t.width==="number")ye("item.width",t.width);ye("item.estimatedHeight",t.estimatedHeight),ye("item.estimatedWidth",t.estimatedWidth),ye("item.gap",t.gap,!0),ye("overscan",e.overscan,!0);let n=e.scroll;if(n?.runway!==void 0||!/^(auto|native|synthetic)?$/.test(n?.mode??""))throw Error('vlist: scroll.mode is "auto", "native" or "synthetic" (bounded mode and scroll.runway were removed in 3.0)')}function Pn(e,t){let n=e==="horizontal"?"x":"y";if(t.some((i)=>i.name==="grid"))return{primary:n,cross:n==="x"?"y":"x"};return{primary:n}}function An(e,t,n){let l=Pn(e.orientation,t),i=l.primary==="x",r=Vt(e.padding);return{axis:l,hasCrossAxis:l.cross!==void 0,overscan:e.overscan??ke,reverse:e.reverse??!1,classPrefix:e.classPrefix??Rt,mainAxisPadding:kt(r,i),crossAxisPadding:Ft(r,i),startPadding:i?r.left:r.top,endPadding:i?r.right:r.bottom,crossPadStart:i?r.top:r.left,crossPadEnd:i?r.bottom:r.right,striped:e.item.striped||!1,gap:e.item.gap??0,scrollMode:n}}function Mn(e,t){if(t)return e.item.width??e.item.estimatedWidth??100;return e.item.height??e.item.estimatedHeight??40}function wn(e){let t=[...e];return t.sort((n,l)=>(n.priority??50)-(l.priority??50)),t}function zn(e){let t=new Set;for(let n of e){if(t.has(n.name))throw Error(`[vlist] Duplicate plugin: ${n.name}`);t.add(n.name)}for(let n of e)if(n.conflicts){for(let l of n.conflicts)if(t.has(l))throw Error(`[vlist] Plugin "${n.name}" conflicts with "${l}"`)}}function _n(e,t){for(let n of e)n.validateConfig?.(t)}var Ke=null;function en(e,t=[],n,l){Cn(e);let i=n?"synthetic":e.scroll?.mode??"auto";if(i==="synthetic"&&e.scroll?.scrollbar==="native")throw Error('vlist: scroll.scrollbar "native" needs native scrolling');if(e.orientation==="horizontal"&&getComputedStyle(it(e.container)).direction==="rtl")throw Error("vlist: horizontal RTL lists are not supported; use a vertical list, or an LTR container");let r=An(e,t,i),s=r.axis.primary==="x",d=Mn(e,s),b=r.gap,P=b>0?typeof d==="function"?(a)=>d(a)+b:d+b:d,f=typeof d==="number"?d:20,y=e.items?.length??0,S=r.striped?`${r.classPrefix}-item--odd`:"",v=at(),w=Zt(r.classPrefix,s,r.startPadding,r.crossPadStart,r.crossPadEnd,S,b,v),A=t.length>0?wn(t):t;if(t.length>0)zn(A),_n(A,r);let M=it(e.container),g=$t(M,r.classPrefix,s,e.ariaLabel);if(e.scroll?.scrollbar==="none")g.viewport.classList.add(`${r.classPrefix}-viewport--no-scrollbar`);if(e.scroll?.gutter==="stable")g.viewport.classList.add(`${r.classPrefix}-viewport--gutter-stable`);let x=Be(P,y,b),z=Bt(r.classPrefix),K=Math.ceil(4096/f)+r.overscan*2+8,u=Dt(K);u.totalItems=y;let E=e.items?[...e.items]:[],H=()=>E,C=new Map,p=Jt(),k={velocity:0,reliable:!1},h={range:{start:0,end:-1}},L={scrollPosition:0,direction:"down"},U={scrollPosition:0},B=-1,Y=-1,ee=-1,T=null,O=Ut(A),_=new Map,me=[],le=[],Se=[],se=(a)=>{let o=(m)=>{a.push(m instanceof Error?m:Error(String(m)))};for(let m of Se)try{m()}catch(I){o(I)}for(let m of A)if(m.destroy)try{m.destroy()}catch(I){o(I)}},fe=null,j=null,xe,pe,ne=null,Ee=null,c=null,R=null,W=null,F=null,G=null,Le=null,ae=!1,ut=!1,Te=null,dt=0,mt=0,ft=null,pt=null,bt=null,vt=null,Ue=null,Ge=null,ze=null,Z=null,_e=null,q=null,gt=(a)=>q.setLogical(a),qe=!1,be=!1,Xe=null,ve=null,Ie=null,ht=null;u.containerSize=s?g.viewport.clientWidth:g.viewport.clientHeight,u.crossSize=s?g.viewport.clientHeight:g.viewport.clientWidth;function oe(a){if(j)j(a);else{if(s)g.viewport.scrollLeft=a;else g.viewport.scrollTop=a;if(pe?.(),be&&Math.abs(u.scrollPosition-a)>1)Xe=a}}let ce=Wt({sizeCache:x,getPixel:()=>u.scrollPosition,setPixel:oe,getRenderOrigin:()=>u.baseOffset,getContainerSize:()=>u.containerSize,padding:r.mainAxisPadding}),Re=()=>fe?fe():E.length,He=(a)=>c?c(a):E[a],yt=(a)=>{if(q?.shiftBy)q.shiftBy(a);else oe(u.scrollPosition+a)},ge=()=>{u.totalItems=E.length,x.rebuild(u.totalItems),Oe()},St=(a)=>{if(W)return W(a);let o=E.findIndex((m)=>m.id===a);if(o!==-1)E.splice(o,1),ge();return o},xt=(a,o)=>{if(F)F(a,o??u.totalItems);else E.splice(o??E.length,0,a),ge()};if(t.length>0){let a={pool:z,config:r,emitter:v,template:e.item.template,getState(){return u},dom:{...g,renderedElement(o){let m=_.get("_getRenderedElement");if(m)return m(o);return C.get(o)??null},enableListbox(){let o=g.content.getAttribute("role");if(!o||o==="list")g.content.setAttribute("role","listbox"),g.content.setAttribute("tabindex","0");w.itemRole="option",w.interactive=!0}},scroll:{...ce,to:oe,shiftBy:yt,smoothTo(o,m,I,V){if(Z)Z.smoothScrollTo(o,m,j??void 0,I,V);else a.scroll.to(typeof o==="function"?o():o)},cancel(){Z?.cancelScroll()},commit(o){pe(o)},setSource(o){j=o.write,xe=o.onContentSize,ae=!0},setTarget(o){Te=o},setWrap(o,m){Ie=o,ht=m},setBoundedWrap(o,m){a.scroll.setWrap(o,m)},setToPosFn(o){Ue=o},setToIndexFn(o){Ge=o},onFrame:Je,onIdle:Ve,disableResize(){ut=!0}},items:{all:H,at:He,removeById:St,insertAt:xt,setGetFn(o){c=o},setRemoveFn(o){W=o},setInsertFn(o){F=o},setUpdateFn(o){G=o},setIndexByIdFn(o){Le=o},setTotalFn(o){fe=o,w.ariaTotalFn=o},setIndexMapFn(o){w.indexMap=o}},sizes:{cache:x,get rawSpec(){return d},setConfig(o,m=0){let I=Be(o,u.totalItems,m),V=_.get("_setSizeCacheBase");if(V){let D=x.rebuild;Object.assign(x,I),x.rebuild=D,V(I.rebuild)}else Object.assign(x,I)},rebuild(){x.rebuild(u.totalItems)}},render:{force(){te()},ifNeeded(){Ce()},contentSize:je,setFn(o,m){ne=()=>{let{prevRangeStart:I,prevRangeEnd:V}=u;if(o(),u.prevRangeStart!==I||u.prevRangeEnd!==V)Me(O.commit,u)},Ee=()=>{m(),Me(O.commit,u)}},setStateFn(o){R=o},getStateFn(){return R}},hooks:{method(o,m){if(!o.startsWith("_")&&_.has(o))throw Error(`[vlist] duplicate method "${o}"; rename it or use a set*Fn hook`);_.set(o,m)},get(o){return _.get(o)},onClick(o){me.push(o)},onKeydown(o){le.push(o)},onDestroy(o){Se.push(o)}},nav:{set(o){if(o.ud!==void 0)dt=o.ud;if(o.lr!==void 0)mt=o.lr;if(o.scrollIndex)ft=o.scrollIndex;if(o.navigate)pt=o.navigate;if(o.total)bt=o.total;if(o.reveal)vt=o.reveal},get:(()=>{let o={ud:0,lr:0,scrollIndex:null,navigate:null,total:null,reveal:null};return()=>(o.ud=dt,o.lr=mt,o.scrollIndex=ft,o.navigate=pt,o.total=bt,o.reveal=vt,o)})()}};for(let o of A)if(o.setup)try{o.setup(a)}catch(m){let I=m instanceof Error?m:Error(String(m));v.emit("error",{error:I,context:`plugin:setup:${o.name}`})}}let Ye=r.classPrefix+"--scrolling",re=!1,Ze=e.scroll?.idleTimeout??he;function Et(){if(L.scrollPosition=u.scrollPosition,s)L.direction=u.scrollDirection>0?"right":"left";else L.direction=u.scrollDirection>0?"down":"up";if(v.emit("scroll",L),Qt(p,u.scrollPosition),k.velocity=p.velocity,k.reliable=p.sampleCount>=jt,v.emit("velocity:change",k),u.startIndex!==B||u.prevRangeEnd!==Y)B=u.startIndex,Y=u.prevRangeEnd,h.range.start=u.startIndex,h.range.end=u.prevRangeEnd,v.emit("range:change",h)}function je(a,o=!0){let m=a+r.mainAxisPadding;if(qe)dn(m);if(q){if(o)q.refresh(a);return}if(u.totalSize=a,xe?.(m),o)g.content.style[s?"width":"height"]=Math.min(m,rt)+"px"}function Oe(){let a=ne?u.totalSize:x.getTotalSize();if(je(a,!ne),q||ne||qe)return;l?.onContentSize(a,v)}function Lt(){if(!ze||Re()===0)return;let a=ze;ze=null,tt.scrollToIndex(a.index,a.alignOrOptions)}function Ce(){if(ne)ne();else st(u,x,r.overscan,z,g.content,e.item.template,H,C,w,O,c,R);Lt()}function Je(){if(Xe=null,!re)re=!0,g.root.classList.add(Ye);if(Ce(),lt(O.afterScroll,u.scrollPosition,u.scrollDirection),ve?.sync(),u.scrollPosition!==ee)ee=u.scrollPosition,Et()}function Tt(){z.trim(C.size)}function dn(a){let o=!!q;if(be=(i==="synthetic"||a>rt*(o?0.75:1))!==o,!be)return;if(!Ke)l.load().then((I)=>{if(Ke=I,!u.destroyed)Oe()},(I)=>v.emit("error",{error:I,context:"scroll:mode"}));else if(!re)mn(a)}function mn(a){let o=Xe??u.scrollPosition;if(be=!1,Z.detach(),ve?.destroy(),ve=null,q)Z=_e,q=j=null,u.baseOffset=0,g.content.style[s?"width":"height"]=a+"px",Z.attach(),oe(o);else if(g.viewport[s?"scrollLeft":"scrollTop"]=0,Z=q=Ct(Ke.createSyntheticScrollHandler),j=gt,q.refresh(a-r.mainAxisPadding),(ve=Ke.attachScrollbar(u,g,r,x,oe,e.scroll?.scrollbar))?.sync(),u.initialized)Z.attach(),q.setLogical(o);v.emit("scroll:mode",{mode:q?"synthetic":"native"})}function Ve(){if(re)re=!1,g.root.classList.remove(Ye);if(u.scrollDirection=0,Tt(),qt(O.idle),k.velocity=0,k.reliable=!1,v.emit("velocity:change",k),U.scrollPosition=u.scrollPosition,v.emit("scroll:idle",U),be)Oe()}function te(){if(u.renderPending=!0,Ee)Ee();else st(u,x,r.overscan,z,g.content,e.item.template,H,C,w,O,c,R);if(Lt(),lt(O.afterScroll,u.scrollPosition,u.scrollDirection),ve?.sync(),u.scrollPosition!==ee){if(ee=u.scrollPosition,Et(),T!==null)clearTimeout(T);T=setTimeout(Ve,Ze)}else if(!re)Tt()}let It=ae?!1:e.scroll?.wheel!==!1;if(ae&&Ie)throw se([]),g.root.remove(),Error("vlist: page() is not compatible with the carousel plugin — document scrolling cannot wrap.");function Ct(a){return a({state:u,sizeCache:x,viewport:g.viewport,content:g.content,isX:s,wheelEnabled:It,idleTimeout:Ze,...Te?{scrollTarget:Te}:{},mainAxisPadding:r.mainAxisPadding,...Ie?{wrap:Ie,rendered:C,classPrefix:r.classPrefix,oddClass:S,onFold(o){let m=p;if(m._lp!==void 0)m._lp-=o;ee-=o}}:{},onFrame:Je,onIdle:Ve})}if(!ae&&(n||Ie))Z=q=Ct(n??ht),j=gt;else _e=(ae?Ot:l.native)({state:u,viewport:g.viewport,isX:s,wheelEnabled:It,idleTimeout:Ze,...Te?{scrollTarget:Te}:{},onFrame:Je,onIdle:Ve}),Z=_e,pe=_e.commitScroll,qe=!ae&&i!=="native";function fn(a){let m=a.target.closest("[data-index]");if(!m)return null;let I=parseInt(m.getAttribute("data-index"),10);if(Number.isNaN(I))return null;let V=_.get("_layoutToDataIndex"),D,J=I;if(V){let Q=V(I);if(Q<0)return null;let ie=_.get("_getItemAtLayout"),ue=_.get("_getItem");D=ie?ie(I):ue?ue(Q):He(Q),J=Q}else D=He(I);if(D===void 0)return null;return{item:D,index:J}}let Qe=(a,o)=>{let m=fn(o);if(m)v.emit(a,{item:m.item,index:m.index,event:o})};function Pt(a){for(let o=0;o<me.length;o++)me[o](a);Qe("item:click",a)}function At(a){Qe("item:dblclick",a)}function Mt(a){Qe("item:contextmenu",a)}function wt(a){let o=a.target?.tagName;if((o==="INPUT"||o==="TEXTAREA"||o==="SELECT")&&!((a.ctrlKey||a.metaKey)&&(a.key==="f"||a.key==="F")))return;for(let m=0;m<le.length;m++)le[m](a)}if(g.content.addEventListener("click",Pt),g.content.addEventListener("dblclick",At),g.content.addEventListener("contextmenu",Mt),le.length>0)g.root.addEventListener("keydown",wt);let et=null;if(!ut)setTimeout(()=>{if(u.destroyed)return;et=new ResizeObserver((o)=>{for(let m of o){let{width:I,height:V}=m.contentRect,D=s?I:V,J=s?V:I;if(Math.abs(D-u.containerSize)<1&&Math.abs(J-u.crossSize)<1)continue;if(u.containerSize=D,u.crossSize=J,u.resizeCapacity(D,f,r.overscan),q)q.refresh(x.getTotalSize());te(),Xt(O.resize,I,V),v.emit("resize",{width:I,height:V})}}),et.observe(g.viewport)},0);u.resizeCapacity(u.containerSize,f,r.overscan),Oe(),u.initialized=!0;let Pe=null;if(e.defer)Pe=requestAnimationFrame(()=>{if(Pe=null,!u.destroyed)Ce()});else Ce();if(!ae)Z.attach();let tt={get element(){return g.root},get items(){return E},get total(){return Re()},setItems(a){E=[...a],ge(),te()},appendItems(a){let o=r.reverse&&u.scrollPosition>=ce.getMaxPixelEquivalent()-1;if(E.push(...a),ge(),te(),o)oe(ce.getMaxPixelEquivalent())},prependItems(a){let o=u.totalItems>0,m=x.getTotalSize();if(E.unshift(...a),ge(),te(),!r.reverse||!o)return;let I=x.getTotalSize()-m;if(I<=0)return;oe(Math.min(u.scrollPosition+I,ce.getMaxPixelEquivalent()))},updateItem(a,o){if(G){if(!G(a,o))return}else{let m=E.findIndex((I)=>I.id===a);if(m===-1)return;E[m]={...E[m],...o}}_.get("_onItemUpdate")?.(a,o),te()},remeasureItem(a){if(u.destroyed)return!1;if(!Number.isInteger(a)||a<0||a>=Re())return!1;let o=_.get("_itemRemeasureSupported");if(o&&!o())return!1;let m=_.get("remeasure");if(m)return m(a),!0;let I=_.get("_dataSizeIsVariable");if(!(I?I():x.isVariable()))return!1;let V=_.get("_dataToLayoutIndex"),D=V?V(a):a,J=x.getOffset(D+1)-x.getOffset(D),Q=x.getSize(D);if(Q===J)return!0;let ie=x.indexAtOffset(ce.getPixelEquivalent());if(x.invalidate(D,D),_.get("_onItemRemeasure")?.(D),je(x.getTotalSize()),D<ie)yt(Q-J);return te(),!0},insertItem(a,o){xt(a,o),te()},removeItem(a){if(St(a)>=0)te()},removeItems(a){if(W){let V=0;for(let D of a)if(W(D)>=0)V++;if(V>0)te();return V}let o=new Set(a),m=E.length;E=E.filter((V)=>!o.has(V.id));let I=m-E.length;if(I>0)ge(),u.renderPending=!0,Ce();return I},getItemAt(a){if(w.indexMap){let m=_.get("_getLoadedItem");return m?m(a):E[a]}let o=_.get("_getItemAtLayout");if(o){let m=_.get("_dataToLayoutIndex");return o(m?m(a):a)}return He(a)},getIndexById(a){if(Le)return Le(a);return E.findIndex((o)=>o.id===a)},scrollToIndex(a,o="start"){if(Re()===0){ze={index:a,alignOrOptions:o};return}let m=typeof o==="string"?o:o.align??"start",I=typeof o==="object"?o.behavior:void 0,V=typeof o==="object"?o.duration:void 0,D=typeof o==="object"?o.easing:void 0;if(Ge&&Ge(a,m,I,V,D)!==!1)return;let J=()=>{let Q=x.getTotal();if(Q===0)return 0;let ie=Math.max(0,Math.min(a,Q-1)),ue=x.getOffset(ie),zt=x.getSize(ie),nt=u.containerSize,pn=ce.getMaxPixelEquivalent(),de;if(Ue)de=Ue(ie,x,nt,Q,m);else{let bn=r.startPadding;switch(m){case"center":de=bn+ue-(nt-zt)/2;break;case"end":de=ue+zt+r.mainAxisPadding-nt;break;default:de=ue}de=Math.max(0,Math.min(de,pn))}return de};if(I==="smooth"&&!be)Z.smoothScrollTo(J,V??Ht,j??void 0,D);else oe(J())},getScrollPosition(){return ce.getPixelEquivalent()},on:v.on.bind(v),off:v.off.bind(v),destroy(){if(u.destroyed)return;if(u.destroyed=!0,re)re=!1,g.root.classList.remove(Ye);if(Pe!==null)cancelAnimationFrame(Pe),Pe=null;if(T!==null)clearTimeout(T),T=null;Z.detach(),ve?.destroy(),et?.disconnect(),g.content.removeEventListener("click",Pt),g.content.removeEventListener("dblclick",At),g.content.removeEventListener("contextmenu",Mt),g.root.removeEventListener("keydown",wt);let a=[];se(a);for(let[,o]of C)o.remove();if(C.clear(),z.clear(),g.root.remove(),v.emit("destroy",void 0),v.clear(),a.length>0)for(let o of a)console.error("vlist: error during destroy:",o)}};for(let[a,o]of _){if(a.startsWith("_"))continue;tt[a]=o}return tt}un();function Ao(e,t=[]){return en(e,t,cn)}export{Ao as createVList};
1
+ var _t=(e,t,n)=>()=>{if(e)try{t=e(e=0)}catch(l){n=[l]}if(n)throw n[0];return t};var ke=3,Rt="vlist",rt=16000000,he=150,Fe=(e)=>e<0.5?2*e*e:1-(-2*e+2)**2/2,Ht=300,De="__placeholder_";function Rn(e,t,n,l,i){if(t===0||e.size===0)return;let r=e.size;if($e.length<r)$e=new Int32Array(r);if(we.length<r)we.length=r;let s=0;for(let[y,S]of e)$e[s]=y,we[s]=S,s++;e.clear();let d=n+"-item-",v=l.getAttribute("aria-activedescendant"),P=null,f=i&&t&1;for(let y=0;y<r;y++){let S=$e[y],g=we[y];we[y]=void 0;let w=S-t;if(e.set(w,g),v!==null&&g.id===v)P=g;if(g.id===d+S)g.id=d+w;if(f)g.classList.toggle(i)}if(P!==null)l.setAttribute("aria-activedescendant",P.id)}function Hn(e,t,n){if(t===0&&n===0)return;e.prevRangeStart-=t,e.prevRangeEnd-=t,e.startIndex-=t,e.prevBaseOffset-=n;let l=e.visibleCount;for(let i=0;i<l;i++)e.visibleIndices[i]-=t,e.visibleOffsets[i]-=n}function tn(e,t){let n=t>1?Math.trunc(e):Math.floor(e);return Math.abs(n)<t?0:n}function nn(e,t,n,l,i,r,s){let d=e.lapSize(),v=e.itemsPerLap(),P=d>0?Math.round(t/d)*v:0;if(P===0)return;if(i)Rn(i,P,r,l,s);Hn(n,P,t)}var $e,we;var on=_t(()=>{$e=new Int32Array(0),we=[]});function an({getMax:e,onChange:t=()=>{},onFinish:n,axis:l="y",reducedMotion:i}){let r=0,s=0,d=null,v=0,P=0,f=0,y=0,S=0,g=null,w=0,A=0,M=0,p=0,N=400,x=rn,z=()=>M,K=0.006,u=(h)=>{let L=e();return Number.isFinite(L)?Math.max(0,Math.min(L,h)):h},E=(h,L)=>l==="y"?L:h,H=(h,L)=>l==="y"?h:L;function C(h){let L=u(h);if(L!==r)r=L,t(r);return L!==h}function b(){S=0,s=d===null?0:5}function k(h){b(),C(h)}return{get position(){return r},get state(){return s},get velocity(){return S},get active(){return s===3||s===4},begin(h,L,U,B){if(d!==null){b();return}b(),d=h,v=f=E(L,U),P=H(L,U),y=B,s=1},move(h,L,U,B){if(h!==d||s!==1&&s!==2)return!1;let Y=E(L,U);if(s===1){let O=Math.abs(Y-v),_=Math.abs(H(L,U)-P);if(Math.max(O,_)<6)return!1;if(_>O*1.2)return b(),!1;if(O<_*1.2)return!1;s=2}let ee=f-Y,T=B-y;if(T>0){let O=Math.max(-3,Math.min(3,ee/T));S=T>80?0:O*S<0?O:0.65*O+0.35*S}if(f=Y,y=B,C(r+ee))S=0;return!0},end(h,L){if(h!==d)return;if(d=null,s===2&&!i()&&L-y<=80&&Math.abs(S)>=0.02)g=null,s=3;else S=0,s=0},cancel:b,reset(){d=null,b()},jump:k,shiftBy(h){A+=h,p+=h,C(r+h)},by(h){b();let L=r;return C(r+h),r!==L},smooth(h,L=400,U=rn){if(b(),p=0,z=typeof h==="function"?h:()=>h,d!==null||i()||L<=0){C(z());return}N=L,x=U,A=r,M=u(z()+p),g=null,s=4},resize(){b(),C(r)},tick(h){if(s!==3&&s!==4)return;if(g===null){if(g=h,s===4)w=h;return}let L=h-g;if(L<=0)return;if(g=h,L>100){if(s===4)C(u(z()+p)),s=0,n?.();else b();return}if(s===4){M=u(z()+p);let Y=Math.min(1,(h-w)/N);if(C(A+(M-A)*x(Y)),Y===1)s=0,n?.();return}let U=Math.exp(-K*L),B=C(r+S*(1-U)/K);if(S*=U,B||Math.abs(S)<0.02)S=0,s=0}}}var ln=1,sn=2,rn=(e)=>1-(1-e)**3;function ct(e){if(e.closest("textarea,select,[contenteditable]:not([contenteditable=false])"))return!0;let t=e.closest("input");return!!t&&!/^(button|submit|reset|checkbox|radio|image)$/.test(t.type)}function cn(e){let{state:t,viewport:n,content:l,isX:i,onFrame:r,onIdle:s,mainAxisPadding:d,wrap:v}=e,P=n.parentElement??n,f=n.ownerDocument.defaultView,y=n.ownerDocument,S=f.matchMedia("(prefers-reduced-motion: reduce)"),g=0,w=null,A=null,M=!1,p=!1,N=!1,x=-1,z=-1,K=null,u=null,E=!1,H=!1,C=!1,b=!1,k,h=new Set;function L(c){let R=t.scrollPosition;if(v){let W=v.lapSize(),F=W>0?tn((c-v.home())/W,v.thresholdLaps):0;if(F!==0){let G=F*W;N=!0,T.shiftBy(-G),N=!1,c=T.position,R-=G,nn(v,G,t,l,e.rendered,e.classPrefix??"",e.oddClass),e.onFold?.(G),v.onFold?.(G)}}if(t.prevScrollPosition=R,t.scrollPosition=t.baseOffset=c,t.scrollDirection=c>R?1:c<R?-1:0,!p)r()}function U(){if(A=null,T.active||T.state===sn||T.state===ln)return;t.scrollDirection=0,s()}function B(){if(!M)return;if(A!==null)clearTimeout(A);A=setTimeout(U,e.idleTimeout||he)}function Y(){if(M&&w===null&&T.active)w=requestAnimationFrame(ee)}function ee(c){if(w=null,T.tick(c),T.active)Y();else B()}let T=an({axis:i?"x":"y",getMax:()=>v?1/0:g,reducedMotion:()=>S.matches,onChange(c){if(!N)L(c)},onFinish(){let c=k;k=void 0,c?.()}});function O(){if(k=void 0,w!==null)cancelAnimationFrame(w),w=null;if(T.cancel(),A!==null)clearTimeout(A),A=null}function _(){if(O(),T.reset(),b&&K!==null&&n.hasPointerCapture(K))n.releasePointerCapture(K);b=!1,h.clear(),K=u=null,E=H=C=!1,B()}function me(c){if(!We(c))return;if(c.isPrimary){if(h.size)_();h.clear()}if(h.add(c.pointerId),h.size>1){C=!0,O();return}if(!(c.target instanceof Element)||ct(c.target)){O();return}K=c.pointerId,E=!1,H=T.active,u=null,O(),T.begin(c.pointerId,c.clientX,c.clientY,c.timeStamp)}function le(c){if(!We(c)||c.target instanceof Node&&n.contains(c.target))return;if(c.isPrimary&&h.size)_();else if(h.size)h.add(c.pointerId),C=!0,O()}function Se(c){if(!We(c)||C)return;if(T.move(c.pointerId,c.clientX,c.clientY,c.timeStamp)){if(E=!0,!b)n.setPointerCapture(c.pointerId),b=!0;if(c.cancelable)c.preventDefault()}}function se(c){if(!We(c)||!h.has(c.pointerId))return;let R=c.type==="pointercancel";if(R)O();if(K===c.pointerId){if(!R&&!C&&(E||H))u=c.pointerId;if(b&&n.hasPointerCapture(c.pointerId))n.releasePointerCapture(c.pointerId);b=!1,K=null,E=H=!1}if(T.end(c.pointerId,c.timeStamp),h.delete(c.pointerId),!h.size){if(C||R)T.reset();C=!1}Y(),B()}function fe(c){let R=c.pointerId;if(c.detail!==0&&u!==null&&(R===u||R===void 0))u=null,c.preventDefault(),c.stopImmediatePropagation()}function j(c){if(c.ctrlKey||c.defaultPrevented||!(c.target instanceof Element)||ct(c.target))return;let R=c.deltaMode===1?16:c.deltaMode===2?t.containerSize:1,W=i?c.deltaX:c.deltaY,F=i?c.deltaY:c.deltaX,G=i?n.scrollHeight>n.clientHeight:n.scrollWidth>n.clientWidth;if(G&&Math.abs(F)>Math.abs(W))return;if(G&&F!==0)if(c.preventDefault(),i)n.scrollTop+=F*R;else n.scrollLeft+=F*R;let Le=i&&!G&&W===0?F:W;if(O(),T.by(Le*R))c.preventDefault();B()}function xe(c){if(c.defaultPrevented||c.ctrlKey||c.metaKey||c.altKey||!(c.target instanceof Element)||ct(c.target))return;if((c.key===" "||c.key==="Enter")&&c.target.closest("button,summary,a,input"))return;let R=e.sizeCache,W=R.getSize(R.indexAtOffset(T.position)),F;if(c.key===(i?"ArrowRight":"ArrowDown"))F=T.position+W;if(c.key===(i?"ArrowLeft":"ArrowUp"))F=T.position-W;if(c.key==="PageDown"||c.key===" ")F=T.position+t.containerSize*(c.shiftKey&&c.key===" "?-1:1);if(c.key==="PageUp")F=T.position-t.containerSize;if(c.key==="Home")F=0;if(c.key==="End")F=g;if(F!==void 0)c.preventDefault(),ne(F)}function pe(){if(y.hidden)_()}function ne(c){let R=T.position;if(O(),T.jump(c),R===(v?c:Math.max(0,Math.min(g,c))))L(T.position);B()}function Ee(c){let R=x!==t.containerSize||z!==t.crossSize,W=c!==t.totalSize||R;if(x=t.containerSize,z=t.crossSize,t.totalSize=c,g=Math.max(0,c+d-t.containerSize),W){if(p=!0,R)O(),T.resize();else T.shiftBy(0);L(T.position),p=!1}}return{setLogical:ne,refresh:Ee,shiftBy(c){if(t.totalSize=e.sizeCache.getTotalSize(),g=Math.max(0,t.totalSize+d-t.containerSize),T.shiftBy(c),!T.active)B()},cancelScroll(){O(),B()},getLogical:()=>t.scrollPosition,getMaxLogical:()=>g,smoothScrollTo(c,R,W,F=Fe,G){if(O(),T.smooth(c,R,F),k=G,!T.active)k=void 0,G?.(),B();else Y()},attach(){if(M)return;if(M=!0,n.style.overflowX=i?"hidden":"auto",n.style.overflowY=i?"auto":"hidden",n.style.touchAction=i?"pan-y pinch-zoom":"pan-x pinch-zoom",n.style.overflowAnchor="none",l.style[i?"width":"height"]="100%",l.style.overflow="clip",l.style.overflowAnchor="none",n.addEventListener("pointerdown",me),f.addEventListener("pointerdown",le),n.addEventListener("pointermove",Se,{passive:!1}),f.addEventListener("pointerup",se),f.addEventListener("pointercancel",se),n.addEventListener("click",fe,!0),e.wheelEnabled)n.addEventListener("wheel",j,{passive:!1});P.addEventListener("keydown",xe),f.addEventListener("blur",_),y.addEventListener("visibilitychange",pe),S.addEventListener("change",_),Y()},detach(){if(M=!1,_(),A!==null)clearTimeout(A),A=null;n.removeEventListener("pointerdown",me),f.removeEventListener("pointerdown",le),n.removeEventListener("pointermove",Se),f.removeEventListener("pointerup",se),f.removeEventListener("pointercancel",se),n.removeEventListener("click",fe,!0),n.removeEventListener("wheel",j),P.removeEventListener("keydown",xe),f.removeEventListener("blur",_),y.removeEventListener("visibilitychange",pe),S.removeEventListener("change",_),n.style.overflowX=n.style.overflowY=n.style.touchAction=n.style.overflowAnchor="",l.style.overflow=l.style.overflowAnchor=""}}}var We=(e)=>e.pointerType==="touch"||e.pointerType==="pen";var un=_t(()=>{on()});function Ot(e){let{state:t,viewport:n,isX:l,onFrame:i,onIdle:r}=e,s=e.idleTimeout||he,d=null,v=null;function P(g=l?n.scrollLeft:n.scrollTop){t.prevScrollPosition=t.scrollPosition,t.scrollPosition=g,t.scrollDirection=g>t.prevScrollPosition?1:g<t.prevScrollPosition?-1:0,i(),f()}function f(){if(d!==null)clearTimeout(d);d=setTimeout(()=>{d=null,t.scrollDirection=0,r()},s)}function y(){if(v!==null)cancelAnimationFrame(v),v=null}function S(g,w,A,M=Fe,p){y();let N=t.scrollPosition,x=typeof g==="function"?g:()=>g,z=x();if(Math.abs(z-N)<1){if(A)A(z);else if(l)n.scrollLeft=z;else n.scrollTop=z;p?.();return}let K=performance.now();function u(E){z=x();let H=E-K,C=Math.min(H/w,1),b=N+(z-N)*M(C);if(A)A(b);else{if(l)n.scrollLeft=b;else n.scrollTop=b;let k=l?n.scrollLeft:n.scrollTop;P(Math.abs(k-b)>1?k:b)}if(C<1)v=requestAnimationFrame(u);else v=null,p?.()}v=requestAnimationFrame(u)}return{attach(){},detach(){if(y(),d!==null)clearTimeout(d),d=null},cancelScroll:y,smoothScrollTo:S,commitScroll:P}}var Ne={top:0,right:0,bottom:0,left:0},Vt=(e)=>{if(e==null)return Ne;if(typeof e==="number")return e===0?Ne:{top:e,right:e,bottom:e,left:e};if(e.length===2){let[r,s]=e;return r===0&&s===0?Ne:{top:r,right:s,bottom:r,left:s}}let[t,n,l,i]=e;return t===0&&n===0&&l===0&&i===0?Ne:{top:t,right:n,bottom:l,left:i}},kt=(e,t)=>t?e.left+e.right:e.top+e.bottom,Ft=(e,t)=>t?e.top+e.bottom:e.left+e.right;function Dt(e){let t={visibleIndices:new Int32Array(e),visibleOffsets:new Float64Array(e),visibleSizes:new Float64Array(e),visibleCount:0,startIndex:0,totalSize:0,capacity:e,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,windowClamped:!1,windowClampReported:!1,prevAriaTotal:-1,ensureCapacity(n){if(n<=t.capacity)return;let l=n+8,i=new Int32Array(l),r=new Float64Array(l),s=new Float64Array(l);i.set(t.visibleIndices),r.set(t.visibleOffsets),s.set(t.visibleSizes),t.visibleIndices=i,t.visibleOffsets=r,t.visibleSizes=s,t.capacity=l},resizeCapacity(n,l,i=ke){if(l<=0||n<=0)return;t.ensureCapacity(Math.ceil(n/l)+i*2)},clear(){t.visibleCount=0,t.startIndex=0}};return t}var vn=(e,t,n)=>{let l=t;return{getOffset:(i)=>i*e,getSize:(i)=>e,indexAtOffset:(i)=>{if(l===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(i/e),l-1))},getTotalSize:()=>{let i=l*e;return i>0?i-n:0},getTotal:()=>l,rebuild:(i)=>{l=i},invalidate:()=>{},isVariable:()=>!1}};var Nt=(e,t,n,l)=>{while(t<n){let i=t+n+1>>>1;if(e[i]<=l)t=i;else n=i-1}return t},gn=(e,t,n)=>{let l=0,i=0,r=new Float64Array(0),s=new Float64Array(0),d=new Float64Array(1),v=(f,y)=>{for(let S=f;S<i;S++){if(S<=y){let g=S<<9,w=Math.min(g+512,l),A=0;for(let M=g;M<w;M++)r[M]=A,A+=e(M);s[S]=A}d[S+1]=d[S]+s[S]}},P=(f)=>{l=f,i=Math.ceil(f/512),r=new Float64Array(f),s=new Float64Array(i),d=new Float64Array(i+1),v(0,i-1)};return P(t),{getOffset:(f)=>{if(f<=0)return 0;if(f>=l)return d[i];return d[f>>>9]+r[f]},getSize:(f)=>e(f),indexAtOffset:(f)=>{if(l===0||f<=0)return 0;if(f>=d[i])return l-1;let y=Nt(d,0,i-1,f),S=y<<9;return Nt(r,S,Math.min(S+512,l)-1,f-d[y])},getTotalSize:()=>{let f=d[i];return f>0?f-n:0},getTotal:()=>l,rebuild:(f)=>P(f),invalidate:(f,y=f)=>{if(f>=0&&y<l)v(f>>>9,y>>>9)},isVariable:()=>!0}},Be=(e,t,n=0)=>{if(typeof e==="number")return vn(e,t,n);return gn(e,t,n)};function Bt(e){let t=[],n=`${e}-item`,l=document.createElement("div");return l.className=n,{acquire(){if(t.length>0)return t.pop();return l.cloneNode(!1)},release(i){i.className=n,i.removeAttribute("style"),i.removeAttribute("id"),i.removeAttribute("role"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-posinset"),i.removeAttribute("aria-setsize"),i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.textContent="",t.push(i)},get size(){return t.length},trim(i){let r=i>0?i:0;if(t.length>r)t.length=r},clear(){t.length=0}}}function Kt(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let n=0;n<t.length;n++)t[n].setAttribute("tabindex","-1");e._stamp=0}function it(e){if(typeof e==="string"){let t=document.querySelector(e);if(!t)throw Error(`[vlist] Container not found: ${e}`);return t}return e}function $t(e,t,n,l){let i=n?`${t} ${t}--horizontal`:t,r=n?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",s=n?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",d=' role="list"';if(l)d+=` aria-label="${l.replace(/"/g,"&quot;")}"`;if(n)d+=' aria-orientation="horizontal"';e.insertAdjacentHTML("beforeend",`<div class="${i}"><div class="${t}-viewport" style="${r}" tabindex="-1"><div class="${t}-content" style="${s}"${d}></div></div></div>`);let v=e.lastElementChild,P=v.firstElementChild,f=P.firstElementChild,y=document.createElement("div");return y.className=`${t}-live`,y.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",y.setAttribute("aria-live","polite"),y.setAttribute("aria-atomic","true"),y.setAttribute("role","status"),v.appendChild(y),{root:v,viewport:P,content:f,liveRegion:y}}function hn(e,t){if(e.getTotal()<=0)return{index:0,offsetPx:0};let l=t<=0?0:t,i=e.indexAtOffset(l),r=l-e.getOffset(i);return{index:i,offsetPx:r>0?r:0}}function yn(e,t){let n=Sn(e,t);return e.getOffset(n.index)+n.offsetPx}function Sn(e,t){let n=e.getTotal();if(n<=0)return{index:0,offsetPx:0};let{index:l,offsetPx:i}=t;if(l<0)return{index:0,offsetPx:0};if(l>n-1)l=n-1;while(i>0&&l<n-1){let r=e.getSize(l);if(i<r)break;i-=r,l++}while(i<0&&l>0)l--,i+=e.getSize(l);if(i<0)i=0;return{index:l,offsetPx:i}}function Wt(e){let{sizeCache:t,getPixel:n,setPixel:l,getContainerSize:i}=e;function r(){let d=t.getTotalSize()+e.padding-i();return d>0?d:0}function s(d){if(d<=0)return 0;let v=r();return d>v?v:d}return{getLogical(){return hn(t,n())},setLogical(d){l(s(yn(t,d)))},getPixelEquivalent(){return n()},setPixelEquivalent(d){l(s(d))},getMaxPixelEquivalent:r,getRenderOrigin:e.getRenderOrigin,scrollByPx(d){l(s(n()+d))}}}var Ae=[],xn={calculate:Ae,commit:Ae,afterScroll:Ae,idle:Ae,resize:Ae};function Ut(e){if(e.length===0)return xn;let t=[],n=[],l=[],i=[],r=[];for(let s=0;s<e.length;s++){let d=e[s].hooks;if(d===void 0)continue;if(d.onCalculate!==void 0)t.push(d.onCalculate);if(d.onCommit!==void 0)n.push(d.onCommit);if(d.onAfterScroll!==void 0)l.push(d.onAfterScroll);if(d.onIdle!==void 0)i.push(d.onIdle);if(d.onResize!==void 0)r.push(d.onResize)}return{calculate:t,commit:n,afterScroll:l,idle:i,resize:r}}function Gt(e,t){for(let n=0;n<e.length;n++)e[n](t)}function Me(e,t){for(let n=0;n<e.length;n++)e[n](t)}function lt(e,t,n){for(let l=0;l<e.length;l++)e[l](t,n)}function qt(e){for(let t=0;t<e.length;t++)e[t]()}function Xt(e,t,n){for(let l=0;l<e.length;l++)e[l](t,n)}function Zt(e,t,n,l,i,r,s,d){let v=l!==0||i!==0;return{prefix:e,selectedClass:`${e}-item--selected`,focusedClass:`${e}-item--focused`,placeholderClass:`${e}-item--placeholder`,replacedClass:`${e}-item--replaced`,translateProp:t?"translateX(":"translateY(",sizeProp:t?"width":"height",itemRole:"listitem",interactive:!1,startPadding:n,gap:s,hasCrossPad:v,crossStartProp:v?t?"top":"left":"",crossEndProp:v?t?"bottom":"right":"",crossStartVal:v?l+"px":"",crossEndVal:v?i+"px":"",oddClass:r,emitter:d??null,indexMap:null,ariaTotalFn:null}}function En(e,t,n,l,i){if(e.containerSize<=0||e.totalItems===0)return e.clear(),!0;let{scrollPosition:r,containerSize:s,totalItems:d}=e,v=i??0;e.totalSize=t.getTotalSize();let P=t.indexAtOffset(v>0?Math.max(0,r-v):r),f=t.indexAtOffset(r+s);if(f<d-1)f++;P=Math.max(0,P),f=Math.min(d-1,Math.max(0,f));let y=Math.max(0,P-n),S=Math.min(d-1,f+n),g=Math.ceil(s)+n*2;if(S-y+1>g)S=y+g-1,e.windowClamped=!0;let w=S-y+1;if(w>e.capacity)e.ensureCapacity(w);let A=Math.min(w,e.capacity);if(y===e.prevRangeStart&&S===e.prevRangeEnd&&!e.renderPending&&e.baseOffset===e.prevBaseOffset)return!1;e.visibleCount=A,e.startIndex=y;for(let M=0;M<A;M++){let p=y+M;e.visibleIndices[M]=p,e.visibleOffsets[M]=t.getOffset(p),e.visibleSizes[M]=t.getSize(p)}return Gt(l.calculate,e),e.prevRangeStart=y,e.prevRangeEnd=S,e.prevBaseOffset=e.baseOffset,e.renderPending=!1,!0}var X={selected:!1,focused:!1};function Ln(e,t,n){for(let l=0;l<t;l++)if(e[l]===n)return!0;return!1}function Tn(e,t){if(t<=1)return!0;let n=e[0];for(let l=1;l<t;l++){let i=e[l];if(i!==n+1)return!1;n=i}return!0}function Yt(e,t,n,l,i){let r;try{r=t(n,l,X)}catch(s){return i.emitter?.emit("error",{error:s instanceof Error?s:Error(String(s)),context:`template:render:${l}`}),!1}if(typeof r==="string")e.innerHTML=r;else e.textContent="",e.appendChild(r);return Kt(e),!0}function In(e,t,n,l,i,r,s,d,v,P){let f=v?null:i(),{visibleCount:y,visibleIndices:S}=e,g=s.ariaTotalFn?s.ariaTotalFn():e.totalItems,w=s.interactive?String(g):"",A=s.interactive&&g!==e.prevAriaTotal,M=null,p=s.indexMap;for(let N=0;N<y;N++){let x=S[N],z=p?p(x):x,K=e.visibleOffsets[N],u=e.visibleSizes[N],E=v?v(x):f[x];if(P)P(z,X);else X.selected=!1,X.focused=!1;let H=r.get(x),C=H;if(H===void 0){let b=t.acquire();if(E!==void 0&&!Yt(b,l,E,z,s)){t.release(b);continue}if(b.setAttribute("role",s.itemRole),b.setAttribute("data-index",String(z)),s.interactive)b.id=s.prefix+"-item-"+x,b.setAttribute("aria-posinset",String(z+1)),b.setAttribute("aria-setsize",w);if(E!==void 0){let L=String(E.id);if(b.setAttribute("data-id",L),L.startsWith(De))b.classList.add(s.placeholderClass)}if(s.hasCrossPad)b.style.setProperty(s.crossStartProp,s.crossStartVal),b.style.setProperty(s.crossEndProp,s.crossEndVal);if(P){if(b.classList.toggle(s.selectedClass,X.selected),b.classList.toggle(s.focusedClass,X.focused),X.selected)b.setAttribute("aria-selected","true");else b.removeAttribute("aria-selected");b._lastSelected=X.selected,b._lastFocused=X.focused}if(s.oddClass)b.classList.toggle(s.oddClass,(x&1)===1);let k=K-e.baseOffset+s.startPadding;b.style.transform=s.translateProp+k+"px)",b._lastOffset=k;let h=u-s.gap;if(b.style[s.sizeProp]=h+"px",b._lastSize=h,b._lastItem=E,r.set(x,b),M===null)M=document.createDocumentFragment();M.appendChild(b)}else{if(A)H.setAttribute("aria-setsize",w);if(E!==void 0&&C._lastItem!==E){let h=H.getAttribute("data-id"),L=String(E.id);if(!Yt(H,l,E,z,s))continue;if(H.setAttribute("data-id",L),C._lastItem=E,h!==L){let U=h!==null&&h.startsWith(De),B=L.startsWith(De);if(U!==B)H.classList.toggle(s.placeholderClass,B);if(U&&!B)H.classList.add(s.replacedClass),setTimeout(()=>{H.classList.remove(s.replacedClass)},300)}}if(P){if(C._lastSelected!==X.selected){if(H.classList.toggle(s.selectedClass,X.selected),X.selected)H.setAttribute("aria-selected","true");else H.removeAttribute("aria-selected");C._lastSelected=X.selected}if(C._lastFocused!==X.focused)H.classList.toggle(s.focusedClass,X.focused),C._lastFocused=X.focused}let b=K-e.baseOffset+s.startPadding;if(C._lastOffset!==b)H.style.transform=s.translateProp+b+"px)",C._lastOffset=b;let k=u-s.gap;if(C._lastSize!==k)H.style[s.sizeProp]=k+"px",C._lastSize=k}}if(M!==null)n.appendChild(M);if(y>0&&Tn(S,y)){let N=S[0],x=S[y-1];for(let[z,K]of r)if(z<N||z>x)K.remove(),t.release(K),r.delete(z)}else for(let[N,x]of r)if(!Ln(S,y,N))x.remove(),t.release(x),r.delete(N);if(s.interactive)e.prevAriaTotal=e.totalItems;Me(d.commit,e)}function st(e,t,n,l,i,r,s,d,v,P,f,y){let S=En(e,t,n,P,v.startPadding);if(e.windowClamped&&!e.windowClampReported)e.windowClampReported=!0,queueMicrotask(()=>{if(e.destroyed)return;v.emitter?.emit("error",{error:Error("[vlist] render window capped to the viewport: the item size spec reports sizes below 1px"),context:"render:window-ceiling"})});if(S)In(e,l,i,r,s,d,v,P,f,y)}var at=()=>{let e={},t=(r,s)=>{if(!e[r])e[r]=new Set;return e[r].add(s),()=>n(r,s)},n=(r,s)=>{e[r]?.delete(s)};return{on:t,off:n,emit:(r,s)=>{e[r]?.forEach((d)=>{try{d(s)}catch(v){}})},clear:(r)=>{if(r)delete e[r];else for(let s in e)delete e[s]}}};var jt=2,Jt=(e=0)=>({velocity:0,sampleCount:0}),Qt=(e,t)=>{let n=performance.now(),l=e._lt??n,i=e._lp??t,r=n-l;if(e._lp=t,e._lt=n,r===0)return e.sampleCount=Math.min(e.sampleCount+1,5),e;if(r>100)return e.velocity=0,e.sampleCount=1,e;return e.velocity=Math.abs(t-i)/r,e.sampleCount=Math.min(e.sampleCount+1,5),e};function ye(e,t,n=!1){if(t===void 0)return;if(typeof t!=="number"||!Number.isFinite(t)||t<0||t===0&&!n)throw Error(`vlist: ${e} must be a ${n?"non-negative":"positive"} number, got ${t}`)}function Cn(e){let{item:t}=e;if(typeof t.height==="number")ye("item.height",t.height);if(typeof t.width==="number")ye("item.width",t.width);ye("item.estimatedHeight",t.estimatedHeight),ye("item.estimatedWidth",t.estimatedWidth),ye("item.gap",t.gap,!0),ye("overscan",e.overscan,!0);let n=e.scroll;if(n?.runway!==void 0||!/^(auto|native|synthetic)?$/.test(n?.mode??""))throw Error('vlist: scroll.mode is "auto", "native" or "synthetic" (bounded mode and scroll.runway were removed in 3.0)')}function Pn(e,t){let n=e==="horizontal"?"x":"y";if(t.some((i)=>i.name==="grid"))return{primary:n,cross:n==="x"?"y":"x"};return{primary:n}}function An(e,t,n){let l=Pn(e.orientation,t),i=l.primary==="x",r=Vt(e.padding);return{axis:l,hasCrossAxis:l.cross!==void 0,overscan:e.overscan??ke,reverse:e.reverse??!1,classPrefix:e.classPrefix??Rt,mainAxisPadding:kt(r,i),crossAxisPadding:Ft(r,i),startPadding:i?r.left:r.top,endPadding:i?r.right:r.bottom,crossPadStart:i?r.top:r.left,crossPadEnd:i?r.bottom:r.right,striped:e.item.striped||!1,gap:e.item.gap??0,scrollMode:n}}function Mn(e,t){if(t)return e.item.width??e.item.estimatedWidth??100;return e.item.height??e.item.estimatedHeight??40}function wn(e){let t=[...e];return t.sort((n,l)=>(n.priority??50)-(l.priority??50)),t}function zn(e){let t=new Set;for(let n of e){if(t.has(n.name))throw Error(`[vlist] Duplicate plugin: ${n.name}`);t.add(n.name)}for(let n of e)if(n.conflicts){for(let l of n.conflicts)if(t.has(l))throw Error(`[vlist] Plugin "${n.name}" conflicts with "${l}"`)}}function _n(e,t){for(let n of e)n.validateConfig?.(t)}var Ke=null;function en(e,t=[],n,l){Cn(e);let i=n?"synthetic":e.scroll?.mode??"auto";if(i==="synthetic"&&e.scroll?.scrollbar==="native")throw Error('vlist: scroll.scrollbar "native" needs native scrolling');if(e.orientation==="horizontal"&&getComputedStyle(it(e.container)).direction==="rtl")throw Error("vlist: horizontal RTL lists are not supported; use a vertical list, or an LTR container");let r=An(e,t,i),s=r.axis.primary==="x",d=Mn(e,s),v=r.gap,P=v>0?typeof d==="function"?(a)=>d(a)+v:d+v:d,f=typeof d==="number"?d:20,y=e.items?.length??0,S=r.striped?`${r.classPrefix}-item--odd`:"",g=at(),w=Zt(r.classPrefix,s,r.startPadding,r.crossPadStart,r.crossPadEnd,S,v,g),A=t.length>0?wn(t):t;if(t.length>0)zn(A),_n(A,r);let M=it(e.container),p=$t(M,r.classPrefix,s,e.ariaLabel);if(e.scroll?.scrollbar==="none")p.viewport.classList.add(`${r.classPrefix}-viewport--no-scrollbar`);if(e.scroll?.gutter==="stable")p.viewport.classList.add(`${r.classPrefix}-viewport--gutter-stable`);let x=Be(P,y,v),z=Bt(r.classPrefix),K=Math.ceil(4096/f)+r.overscan*2+8,u=Dt(K);u.totalItems=y;let E=e.items?[...e.items]:[],H=()=>E,C=new Map,b=Jt(),k={velocity:0,reliable:!1},h={range:{start:0,end:-1}},L={scrollPosition:0,direction:"down"},U={scrollPosition:0},B=-1,Y=-1,ee=-1,T=null,O=Ut(A),_=new Map,me=[],le=[],Se=[],se=(a)=>{let o=(m)=>{a.push(m instanceof Error?m:Error(String(m)))};for(let m of Se)try{m()}catch(I){o(I)}for(let m of A)if(m.destroy)try{m.destroy()}catch(I){o(I)}},fe=null,j=null,xe,pe,ne=null,Ee=null,c=null,R=null,W=null,F=null,G=null,Le=null,ae=!1,ut=!1,Te=null,dt=0,mt=0,ft=null,pt=null,bt=null,vt=null,Ue=null,Ge=null,ze=null,Z=null,_e=null,q=null,gt=(a)=>q.setLogical(a),qe=!1,be=!1,Xe=null,ve=null,Ie=null,ht=null;u.containerSize=s?p.viewport.clientWidth:p.viewport.clientHeight,u.crossSize=s?p.viewport.clientHeight:p.viewport.clientWidth;function oe(a){if(j)j(a);else{if(s)p.viewport.scrollLeft=a;else p.viewport.scrollTop=a;if(pe?.(),be&&Math.abs(u.scrollPosition-a)>1)Xe=a}}let ce=Wt({sizeCache:x,getPixel:()=>u.scrollPosition,setPixel:oe,getRenderOrigin:()=>u.baseOffset,getContainerSize:()=>u.containerSize,padding:r.mainAxisPadding}),Re=()=>fe?fe():E.length,He=(a)=>c?c(a):E[a],yt=(a)=>{if(q?.shiftBy)q.shiftBy(a);else oe(u.scrollPosition+a)},ge=()=>{u.totalItems=E.length,x.rebuild(u.totalItems),Oe()},St=(a)=>{if(W)return W(a);let o=E.findIndex((m)=>m.id===a);if(o!==-1)E.splice(o,1),ge();return o},xt=(a,o)=>{if(F)F(a,o??u.totalItems);else E.splice(o??E.length,0,a),ge()};if(t.length>0){let a={pool:z,config:r,emitter:g,template:e.item.template,getState(){return u},dom:{...p,renderedElement(o){let m=_.get("_getRenderedElement");if(m)return m(o);return C.get(o)??null},enableListbox(){let o=p.content.getAttribute("role");if(!o||o==="list")p.content.setAttribute("role","listbox"),p.content.setAttribute("tabindex","0");w.itemRole="option",w.interactive=!0}},scroll:{...ce,to:oe,shiftBy:yt,smoothTo(o,m,I,V){if(Z)Z.smoothScrollTo(o,m,j??void 0,I,V);else a.scroll.to(typeof o==="function"?o():o)},cancel(){Z?.cancelScroll()},commit(o){pe(o)},setSource(o){j=o.write,xe=o.onContentSize,ae=!0},setTarget(o){Te=o},setWrap(o,m){Ie=o,ht=m},setBoundedWrap(o,m){a.scroll.setWrap(o,m)},setToPosFn(o){Ue=o},setToIndexFn(o){Ge=o},onFrame:Je,onIdle:Ve,disableResize(){ut=!0}},items:{all:H,at:He,removeById:St,insertAt:xt,setGetFn(o){c=o},setRemoveFn(o){W=o},setInsertFn(o){F=o},setUpdateFn(o){G=o},setIndexByIdFn(o){Le=o},setTotalFn(o){fe=o,w.ariaTotalFn=o},setIndexMapFn(o){w.indexMap=o}},sizes:{cache:x,get rawSpec(){return d},setConfig(o,m=0){let I=Be(o,u.totalItems,m),V=_.get("_setSizeCacheBase");if(V){let D=x.rebuild;Object.assign(x,I),x.rebuild=D,V(I.rebuild)}else Object.assign(x,I)},rebuild(){x.rebuild(u.totalItems)}},render:{force(){te()},ifNeeded(){Ce()},contentSize:je,setFn(o,m){ne=()=>{let{prevRangeStart:I,prevRangeEnd:V}=u;if(o(),u.prevRangeStart!==I||u.prevRangeEnd!==V)Me(O.commit,u)},Ee=()=>{m(),Me(O.commit,u)}},setStateFn(o){R=o},getStateFn(){return R}},hooks:{method(o,m){if(!o.startsWith("_")&&_.has(o))throw Error(`[vlist] duplicate method "${o}"; rename it or use a set*Fn hook`);_.set(o,m)},get(o){return _.get(o)},onClick(o){me.push(o)},onKeydown(o){le.push(o)},onDestroy(o){Se.push(o)}},nav:{set(o){if(o.ud!==void 0)dt=o.ud;if(o.lr!==void 0)mt=o.lr;if(o.scrollIndex)ft=o.scrollIndex;if(o.navigate)pt=o.navigate;if(o.total)bt=o.total;if(o.reveal)vt=o.reveal},get:(()=>{let o={ud:0,lr:0,scrollIndex:null,navigate:null,total:null,reveal:null};return()=>(o.ud=dt,o.lr=mt,o.scrollIndex=ft,o.navigate=pt,o.total=bt,o.reveal=vt,o)})()}};for(let o of A)if(o.setup)try{o.setup(a)}catch(m){let I=m instanceof Error?m:Error(String(m));g.emit("error",{error:I,context:`plugin:setup:${o.name}`})}}let Ye=r.classPrefix+"--scrolling",re=!1,Ze=e.scroll?.idleTimeout??he;function Et(){if(L.scrollPosition=u.scrollPosition,s)L.direction=u.scrollDirection>0?"right":"left";else L.direction=u.scrollDirection>0?"down":"up";if(g.emit("scroll",L),Qt(b,u.scrollPosition),k.velocity=b.velocity,k.reliable=b.sampleCount>=jt,g.emit("velocity:change",k),u.startIndex!==B||u.prevRangeEnd!==Y)B=u.startIndex,Y=u.prevRangeEnd,h.range.start=u.startIndex,h.range.end=u.prevRangeEnd,g.emit("range:change",h)}function je(a,o=!0){let m=a+r.mainAxisPadding;if(qe)dn(m);if(q){if(o)q.refresh(a);return}if(u.totalSize=a,xe?.(m),o)p.content.style[s?"width":"height"]=Math.min(m,rt)+"px"}function Oe(){let a=ne?u.totalSize:x.getTotalSize();if(je(a,!ne),q||ne||qe)return;l?.onContentSize(a,g)}function Lt(){if(!ze||Re()===0)return;let a=ze;ze=null,tt.scrollToIndex(a.index,a.alignOrOptions)}function Ce(){if(ne)ne();else st(u,x,r.overscan,z,p.content,e.item.template,H,C,w,O,c,R);Lt()}function Je(){if(Xe=null,!re)re=!0,p.root.classList.add(Ye);if(Ce(),lt(O.afterScroll,u.scrollPosition,u.scrollDirection),ve?.sync(),u.scrollPosition!==ee)ee=u.scrollPosition,Et()}function Tt(){z.trim(C.size)}function dn(a){let o=!!q;if(be=(i==="synthetic"||a>rt*(o?0.75:1))!==o,!be)return;if(!Ke)l.load().then((I)=>{if(Ke=I,!u.destroyed)Oe()},(I)=>g.emit("error",{error:I,context:"scroll:mode"}));else if(!re)mn(a)}function mn(a){let o=Xe??u.scrollPosition;if(be=!1,Z.detach(),ve?.destroy(),ve=null,q)Z=_e,q=j=null,u.baseOffset=0,p.content.style[s?"width":"height"]=a+"px",Z.attach(),oe(o);else if(p.viewport[s?"scrollLeft":"scrollTop"]=0,Z=q=Ct(Ke.createSyntheticScrollHandler),j=gt,q.refresh(a-r.mainAxisPadding),(ve=Ke.attachScrollbar(u,p,r,x,oe,e.scroll?.scrollbar))?.sync(),u.initialized)Z.attach(),q.setLogical(o);g.emit("scroll:mode",{mode:q?"synthetic":"native"})}function Ve(){if(re)re=!1,p.root.classList.remove(Ye);if(u.scrollDirection=0,Tt(),qt(O.idle),k.velocity=0,k.reliable=!1,g.emit("velocity:change",k),U.scrollPosition=u.scrollPosition,g.emit("scroll:idle",U),be)Oe()}function te(){if(u.renderPending=!0,Ee)Ee();else st(u,x,r.overscan,z,p.content,e.item.template,H,C,w,O,c,R);if(Lt(),lt(O.afterScroll,u.scrollPosition,u.scrollDirection),ve?.sync(),u.scrollPosition!==ee){if(ee=u.scrollPosition,Et(),T!==null)clearTimeout(T);T=setTimeout(Ve,Ze)}else if(!re)Tt()}let It=ae?!1:e.scroll?.wheel!==!1;if(ae&&Ie)throw se([]),p.root.remove(),Error("vlist: page() is not compatible with the carousel plugin — document scrolling cannot wrap.");function Ct(a){return a({state:u,sizeCache:x,viewport:p.viewport,content:p.content,isX:s,wheelEnabled:It,idleTimeout:Ze,...Te?{scrollTarget:Te}:{},mainAxisPadding:r.mainAxisPadding,...Ie?{wrap:Ie,rendered:C,classPrefix:r.classPrefix,oddClass:S,onFold(o){let m=b;if(m._lp!==void 0)m._lp-=o;ee-=o}}:{},onFrame:Je,onIdle:Ve})}if(!ae&&(n||Ie))Z=q=Ct(n??ht),j=gt;else _e=(ae?Ot:l.native)({state:u,viewport:p.viewport,isX:s,wheelEnabled:It,idleTimeout:Ze,...Te?{scrollTarget:Te}:{},onFrame:Je,onIdle:Ve}),Z=_e,pe=_e.commitScroll,qe=!ae&&i!=="native";function fn(a){let m=a.target.closest("[data-index]");if(!m)return null;let I=parseInt(m.getAttribute("data-index"),10);if(Number.isNaN(I))return null;let V=_.get("_layoutToDataIndex"),D,J=I;if(V){let Q=V(I);if(Q<0)return null;let ie=_.get("_getItemAtLayout"),ue=_.get("_getItem");D=ie?ie(I):ue?ue(Q):He(Q),J=Q}else D=He(I);if(D===void 0)return null;return{item:D,index:J}}let Qe=(a,o)=>{let m=fn(o);if(m)g.emit(a,{item:m.item,index:m.index,event:o})};function Pt(a){for(let o=0;o<me.length;o++)me[o](a);Qe("item:click",a)}function At(a){Qe("item:dblclick",a)}function Mt(a){Qe("item:contextmenu",a)}function wt(a){let o=a.target?.tagName;if((o==="INPUT"||o==="TEXTAREA"||o==="SELECT")&&!((a.ctrlKey||a.metaKey)&&(a.key==="f"||a.key==="F")))return;for(let m=0;m<le.length;m++)le[m](a)}if(p.content.addEventListener("click",Pt),p.content.addEventListener("dblclick",At),p.content.addEventListener("contextmenu",Mt),le.length>0)p.root.addEventListener("keydown",wt);let et=null;if(!ut)u.containerSize=s?p.viewport.clientWidth:p.viewport.clientHeight,setTimeout(()=>{if(u.destroyed)return;et=new ResizeObserver((o)=>{for(let m of o){let{width:I,height:V}=m.contentRect,D=s?I:V,J=s?V:I;if(Math.abs(D-u.containerSize)<1&&Math.abs(J-u.crossSize)<1)continue;if(u.containerSize=D,u.crossSize=J,u.resizeCapacity(D,f,r.overscan),q)q.refresh(x.getTotalSize());te(),Xt(O.resize,I,V),g.emit("resize",{width:I,height:V})}}),et.observe(p.viewport)},0);u.resizeCapacity(u.containerSize,f,r.overscan),Oe(),u.initialized=!0;let Pe=null;if(e.defer)Pe=requestAnimationFrame(()=>{if(Pe=null,!u.destroyed)Ce()});else Ce();if(!ae)Z.attach();let tt={get element(){return p.root},get items(){return E},get total(){return Re()},setItems(a){E=[...a],ge(),te()},appendItems(a){let o=r.reverse&&u.scrollPosition>=ce.getMaxPixelEquivalent()-1;if(E.push(...a),ge(),te(),o)oe(ce.getMaxPixelEquivalent())},prependItems(a){let o=u.totalItems>0,m=x.getTotalSize();if(E.unshift(...a),ge(),te(),!r.reverse||!o)return;let I=x.getTotalSize()-m;if(I<=0)return;oe(Math.min(u.scrollPosition+I,ce.getMaxPixelEquivalent()))},updateItem(a,o){if(G){if(!G(a,o))return}else{let m=E.findIndex((I)=>I.id===a);if(m===-1)return;E[m]={...E[m],...o}}_.get("_onItemUpdate")?.(a,o),te()},remeasureItem(a){if(u.destroyed)return!1;if(!Number.isInteger(a)||a<0||a>=Re())return!1;let o=_.get("_itemRemeasureSupported");if(o&&!o())return!1;let m=_.get("remeasure");if(m)return m(a),!0;let I=_.get("_dataSizeIsVariable");if(!(I?I():x.isVariable()))return!1;let V=_.get("_dataToLayoutIndex"),D=V?V(a):a,J=x.getOffset(D+1)-x.getOffset(D),Q=x.getSize(D);if(Q===J)return!0;let ie=x.indexAtOffset(ce.getPixelEquivalent());if(x.invalidate(D,D),_.get("_onItemRemeasure")?.(D),je(x.getTotalSize()),D<ie)yt(Q-J);return te(),!0},insertItem(a,o){xt(a,o),te()},removeItem(a){if(St(a)>=0)te()},removeItems(a){if(W){let V=0;for(let D of a)if(W(D)>=0)V++;if(V>0)te();return V}let o=new Set(a),m=E.length;E=E.filter((V)=>!o.has(V.id));let I=m-E.length;if(I>0)ge(),u.renderPending=!0,Ce();return I},getItemAt(a){if(w.indexMap){let m=_.get("_getLoadedItem");return m?m(a):E[a]}let o=_.get("_getItemAtLayout");if(o){let m=_.get("_dataToLayoutIndex");return o(m?m(a):a)}return He(a)},getIndexById(a){if(Le)return Le(a);return E.findIndex((o)=>o.id===a)},scrollToIndex(a,o="start"){if(Re()===0){ze={index:a,alignOrOptions:o};return}let m=typeof o==="string"?o:o.align??"start",I=typeof o==="object"?o.behavior:void 0,V=typeof o==="object"?o.duration:void 0,D=typeof o==="object"?o.easing:void 0;if(Ge&&Ge(a,m,I,V,D)!==!1)return;let J=()=>{let Q=x.getTotal();if(Q===0)return 0;let ie=Math.max(0,Math.min(a,Q-1)),ue=x.getOffset(ie),zt=x.getSize(ie),nt=u.containerSize,pn=ce.getMaxPixelEquivalent(),de;if(Ue)de=Ue(ie,x,nt,Q,m);else{let bn=r.startPadding;switch(m){case"center":de=bn+ue-(nt-zt)/2;break;case"end":de=ue+zt+r.mainAxisPadding-nt;break;default:de=ue}de=Math.max(0,Math.min(de,pn))}return de};if(I==="smooth"&&!be)Z.smoothScrollTo(J,V??Ht,j??void 0,D);else oe(J())},getScrollPosition(){return ce.getPixelEquivalent()},on:g.on.bind(g),off:g.off.bind(g),destroy(){if(u.destroyed)return;if(u.destroyed=!0,re)re=!1,p.root.classList.remove(Ye);if(Pe!==null)cancelAnimationFrame(Pe),Pe=null;if(T!==null)clearTimeout(T),T=null;Z.detach(),ve?.destroy(),et?.disconnect(),p.content.removeEventListener("click",Pt),p.content.removeEventListener("dblclick",At),p.content.removeEventListener("contextmenu",Mt),p.root.removeEventListener("keydown",wt);let a=[];se(a);for(let[,o]of C)o.remove();if(C.clear(),z.clear(),p.root.remove(),g.emit("destroy",void 0),g.clear(),a.length>0)for(let o of a)console.error("vlist: error during destroy:",o)}};for(let[a,o]of _){if(a.startsWith("_"))continue;tt[a]=o}return tt}un();function Ao(e,t=[]){return en(e,t,cn)}export{Ao as createVList};
package/dist/version.json CHANGED
@@ -1 +1 @@
1
- {"version":"3.3.6","commit":"4465b5b","builtAt":"2026-11-04T13:15:05.162Z","released":true}
1
+ {"version":"3.4.0","commit":"c404420","builtAt":"2026-11-05T04:30:46.541Z","released":true}
@@ -1 +1 @@
1
- .vlist--table{display:flex;flex-direction:column;overflow:hidden;min-height:inherit}.vlist--table .vlist-viewport{flex:1;min-height:0;height:auto;overflow:auto}.vlist--table .vlist-table-header{position:static}.vlist--table .vlist-scrollbar__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{margin-left:4px;flex-shrink:0;opacity:0;font-size:0.7em;transition:opacity 0.15s ease;pointer-events:none;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-resize{position:absolute;top:0;right:-3px;bottom:0;width:5px;cursor:col-resize;z-index:2;touch-action:none;opacity:0;transition:opacity 0.15s ease}.vlist-table-header-resize::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background-color:var(--vlist-border,#e5e7eb);transition:background-color 0.15s ease}.vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}.vlist-table-header-cell:hover .vlist-table-header-resize{opacity:1}.vlist-table-header-resize--active{opacity:1}.vlist-table-header-resize--active::after{background-color:var(--vlist-border-selected,#3b82f6)}.vlist--col-resizing,.vlist--col-resizing *{cursor:col-resize !important;user-select:none !important}.vlist-table-row{position:absolute;top:0;left:0;display:flex;box-sizing:border-box;contain:content;border-bottom:none;background-color:var(--vlist-bg,#ffffff);cursor:default;user-select:none;transition:background-color var(--vlist-transition-duration,150ms) var(--vlist-transition-timing,ease-in-out);will-change:transform}.vlist--scrolling .vlist-table-row{transition:none}.vlist-table-row.vlist-item--odd{background:var( --vlist-bg-striped,var(--vlist-bg-hover,rgba(0,0,0,0.02)) )}.vlist--selectable .vlist-table-row{cursor:pointer}.vlist--selectable .vlist-table-row:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-row.vlist-item--selected{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-row.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist--selectable .vlist-table-row.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist--selectable .vlist-table-row.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist-table-row.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-table-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);font-size:0.875rem;color:var(--vlist-text,#111827)}.vlist-table-cell--center{text-align:center;justify-content:center}.vlist-table-cell--right{text-align:right;justify-content:flex-end}.vlist--table-row-borders .vlist-table-row{border-bottom:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-cell{border-right:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-header-cell{border-right-color:var(--vlist-border,#e5e7eb)}.vlist-table-group-header{display:flex;align-items:center;background-color:var(--vlist-group-header-bg,#f3f4f6);cursor:default}.vlist-table-group-header-content{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--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{margin-left:4px;flex-shrink:0;opacity:0;font-size:0.7em;transition:opacity 0.15s ease;pointer-events:none;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-resize{position:absolute;top:0;right:-3px;bottom:0;width:5px;cursor:col-resize;z-index:2;touch-action:none;opacity:0;transition:opacity 0.15s ease}.vlist-table-header-resize::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background-color:var(--vlist-border,#e5e7eb);transition:background-color 0.15s ease}.vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}.vlist-table-header-cell:hover .vlist-table-header-resize{opacity:1}.vlist-table-header-resize--active{opacity:1}.vlist-table-header-resize--active::after{background-color:var(--vlist-border-selected,#3b82f6)}.vlist--col-resizing,.vlist--col-resizing *{cursor:col-resize !important;user-select:none !important}.vlist-table-row{position:absolute;top:0;left:0;display:flex;box-sizing:border-box;contain:content;border-bottom:none;background-color:var(--vlist-bg,#ffffff);cursor:default;user-select:none;transition:background-color var(--vlist-transition-duration,150ms) var(--vlist-transition-timing,ease-in-out);will-change:transform}.vlist--scrolling .vlist-table-row{transition:none}.vlist-table-row.vlist-item--odd{background:var( --vlist-bg-striped,var(--vlist-bg-hover,rgba(0,0,0,0.02)) )}.vlist--selectable .vlist-table-row{cursor:pointer}.vlist--selectable .vlist-table-row:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-row.vlist-item--selected{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-row.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist--selectable .vlist-table-row.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist--selectable .vlist-table-row.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist-table-row.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-table-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);font-size:0.875rem;color:var(--vlist-text,#111827)}.vlist-table-cell--center{text-align:center;justify-content:center}.vlist-table-cell--right{text-align:right;justify-content:flex-end}.vlist--table-row-borders .vlist-table-row{border-bottom:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-cell{border-right:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-header-cell{border-right-color:var(--vlist-border,#e5e7eb)}.vlist-table-group-header{display:flex;align-items:center;background-color:var(--vlist-group-header-bg,#f3f4f6);cursor:default}.vlist-table-group-header-content{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)}}
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--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-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}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vlist",
3
- "version": "3.3.6",
3
+ "version": "3.4.0",
4
4
  "description": "Lightweight, high-performance virtual list with zero dependencies",
5
5
  "author": {
6
6
  "name": "Floor IO",