vlist 1.7.1 → 1.7.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -55,12 +55,12 @@ export interface ScrollbarFeatureConfig {
55
55
  */
56
56
  padding?: number;
57
57
  /**
58
- * Behavior when clicking on the scrollbar track (not the thumb) (default: 'jump').
59
- * - `'jump'` jumps directly to the clicked position (centers the thumb there).
60
- * - `'page'` — scrolls by one page (containerSize) toward the clicked position,
61
- * matching macOS native scrollbar behavior.
58
+ * Behavior when clicking on the scrollbar track (not the thumb) (default: 'scroll').
59
+ * - `'scroll'` scrolls toward the clicked position, matching macOS native scrollbar
60
+ * behavior. Hold to scroll continuously.
61
+ * - `'jump'` — jumps directly to the clicked position (centers the thumb there).
62
62
  */
63
- clickBehavior?: 'jump' | 'page';
63
+ clickBehavior?: 'jump' | 'scroll' | 'page';
64
64
  }
65
65
  /**
66
66
  * Create a scrollbar feature for the builder.
@@ -62,12 +62,12 @@ export interface ScrollbarConfig {
62
62
  */
63
63
  padding?: ScrollbarPadding;
64
64
  /**
65
- * Behavior when clicking on the scrollbar track (not the thumb) (default: 'page').
66
- * - `'page'` — scrolls by one page (containerSize) toward the clicked position,
67
- * matching macOS native scrollbar behavior. Hold to scroll continuously.
68
- * - `'jump'` — jumps directly to the clicked position (centers the thumb there).
65
+ * Behavior when clicking on the scrollbar track (not the thumb) (default: 'scroll').
66
+ * - `'scroll'` — scrolls toward the clicked position, matching macOS native scrollbar
67
+ * behavior. Hold to scroll continuously.
68
+ * - `'jump'` — jumps directly to the clicked position (centers the thumb there).
69
69
  */
70
- clickBehavior?: 'jump' | 'page';
70
+ clickBehavior?: 'jump' | 'scroll' | 'page';
71
71
  }
72
72
  /** Scrollbar instance */
73
73
  export interface Scrollbar {
@@ -69,6 +69,12 @@ export interface SortableConfig {
69
69
  * Prevents accidental drags on click.
70
70
  */
71
71
  dragThreshold?: number;
72
+ /**
73
+ * Container element for the drag ghost (default: document.body).
74
+ * Set this to keep the ghost inside a specific ancestor so it inherits
75
+ * scoped CSS (e.g. theme variables, list-specific item styles).
76
+ */
77
+ ghostContainer?: HTMLElement;
72
78
  }
73
79
  /**
74
80
  * Create a sortable feature for the builder.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var q1=2,j1=(J=0)=>({velocity:0,sampleCount:0}),Y1=(J,Q)=>{let j=performance.now(),q=J._lt??j,U=J._lp??Q,X=j-q;if(J._lp=Q,J._lt=j,X===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(X>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(Q-U)/X,J.sampleCount=Math.min(J.sampleCount+1,5),J};var q4=(J,Q)=>{let j=Q;return{getOffset:(q)=>q*J,getSize:(q)=>J,indexAtOffset:(q)=>{if(j===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(q/J),j-1))},getTotalSize:()=>j*J,getTotal:()=>j,rebuild:(q)=>{j=q},isVariable:()=>!1}},j4=(J,Q)=>{let j=Q,q=new Float64Array(0),U=(K)=>{j=K,q=new Float64Array(K+1),q[0]=0;for(let N=0;N<K;N++)q[N+1]=q[N]+J(N)};U(Q);let X=(K)=>{if(j===0)return 0;if(K<=0)return 0;if(K>=q[j])return j-1;let N=0,B=j-1;while(N<B){let Z=N+B+1>>>1;if(q[Z]<=K)N=Z;else B=Z-1}return N};return{getOffset:(K)=>{if(K<=0)return 0;if(K>=j)return q[j];return q[K]},getSize:(K)=>J(K),indexAtOffset:(K)=>X(K),getTotalSize:()=>q[j]??0,getTotal:()=>j,rebuild:(K)=>U(K),isVariable:()=>!0}},m0=(J,Q)=>{if(typeof J==="number")return q4(J,Q);return j4(J,Q)},X1=(J,Q,j,q)=>{if(q===0)return 0;if(!J.isVariable())return Math.ceil(j/J.getSize(0));let U=0,X=0,K=Q;while(K<q&&X<j)X+=J.getSize(K),U++,K++;return Math.max(1,U)};var U1=()=>{let J={},Q=(X,K)=>{if(!J[X])J[X]=new Set;return J[X].add(K),()=>j(X,K)},j=(X,K)=>{J[X]?.delete(K)};return{on:Q,off:j,emit:(X,K)=>{J[X]?.forEach((N)=>{try{N(K)}catch(B){console.error(`[vlist] Error in event handler for "${String(X)}":`,B)}})},clear:(X)=>{if(X)delete J[X];else for(let K in J)delete J[K]}}};var K1=(J)=>{if(typeof J==="string"){let Q=document.querySelector(J);if(!Q)throw Error(`[vlist] Container not found: ${J}`);return Q}return J},QJ=(J,Q)=>{let j=document.createElement("div");if(j.className=J,Q)j.style.cssText=Q;return j},Z1=(J,Q,j,q,U)=>{let X=q,K=QJ(Q);if(X)K.classList.add(`${Q}--horizontal`);if(U!==!1)K.setAttribute("tabindex","0");let N=QJ(`${Q}-viewport`,X?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");N.setAttribute("tabindex","-1");let B=QJ(`${Q}-content`,X?"position:relative;height:100%":"position:relative;width:100%"),Z=QJ(`${Q}-items`,X?"position:relative;height:100%":"position:relative;width:100%");if(Z.setAttribute("role","listbox"),j)Z.setAttribute("aria-label",j);if(X)Z.setAttribute("aria-orientation","horizontal");let _=QJ(`${Q}-live`,"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0");return _.setAttribute("aria-live","polite"),_.setAttribute("aria-atomic","true"),_.setAttribute("role","status"),B.appendChild(Z),N.appendChild(B),K.appendChild(_),K.appendChild(N),J.appendChild(K),{root:K,viewport:N,content:B,items:Z,liveRegion:_}};var B1=(J=100)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let q=document.createElement("div");return q.setAttribute("role","option"),q},release:(j)=>{if(Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),Q.push(j)},clear:()=>{Q.length=0}}};var N1=(J,Q,j,q,U)=>{if(q===0||Q===0){U.start=0,U.end=-1;return}let X=j.indexAtOffset(J),K=j.indexAtOffset(J+Q);if(K<q-1)K++;U.start=Math.max(0,X),U.end=Math.min(q-1,Math.max(0,K))},W1=(J,Q,j,q)=>{q.start=Math.max(0,J.start-Q),q.end=Math.min(j-1,J.end+Q)},V1=(J,Q,j,q,U,X=0)=>{if(q===0)return 0;let K=Math.max(0,Math.min(J,q-1)),N=Q.getOffset(K),B=Q.getSize(K),Z=Q.getTotalSize(),_=Math.max(0,Z+X-j),T;switch(U){case"center":T=N-(j-B)/2;break;case"end":T=X>0&&N+B>=Z?_:N-j+B;break;default:T=N}return Math.max(0,Math.min(T,_))};var NJ={top:0,right:0,bottom:0,left:0},v0=(J)=>{if(J==null)return NJ;if(typeof J==="number")return J===0?NJ:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[X,K]=J;return X===0&&K===0?NJ:{top:X,right:K,bottom:X,left:K}}let[Q,j,q,U]=J;return Q===0&&j===0&&q===0&&U===0?NJ:{top:Q,right:j,bottom:q,left:U}},l0=(J,Q)=>Q?J.left+J.right:J.top+J.bottom,WJ=(J,Q)=>Q?J.top+J.bottom:J.left+J.right;var r0=(J,Q,j)=>{let q=Array.from(Q).sort((K,N)=>K-N);if(q.length<=1)return;let U=[];for(let K=0;K<q.length;K++){let N=j(q[K]);if(N)U.push(N)}if(U.length<=1)return;let X=J.firstChild;for(let K=0;K<U.length;K++){let N=U[K];if(N===X)X=X.nextSibling;else J.insertBefore(N,X)}};var _1=(J,Q)=>{let{dom:j,emitter:q,resolvedConfig:U,rawConfig:X,rendered:K,pool:N,sharedState:B,isHorizontal:Z,classPrefix:_,contentSizeHandlers:T,idleHandlers:M,afterScroll:$,clickHandlers:S,keydownHandlers:k,resizeHandlers:D,destroyHandlers:b,methods:z,onScrollFrame:v,resizeObserver:r,renderRange:C,afterRenderBatch:m}=Q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return q},get config(){return U},get rawConfig(){return X},adjustScrollPosition(H){if(J.mp===0)return H;let d=Z?J.cw:J.ch,t=J.hc.getTotalSize(),s=Math.max(0,t-d),y=Math.max(0,t+J.mp-d);if(H>=s)return y;return Math.min(H,y)},get renderer(){return{render:(H,d,t,s,y)=>{J.ss=t,J.fi=s,J.ffn()},updateItemClasses:(H,d,t)=>{J.uic(H,d,t)},updatePositions:()=>{},updateItem:()=>{},getElement:(H)=>K.get(H)??null,clear:()=>{},destroy:()=>{}}},set renderer(H){},get dataManager(){return J.dm},set dataManager(H){J.dm=H},get scrollController(){return J.sc},set scrollController(H){J.sc=H},state:B,getContainerWidth(){return J.cw},afterScroll:$,idleHandlers:M,afterRenderBatch:m,clickHandlers:S,keydownHandlers:k,resizeHandlers:D,contentSizeHandlers:T,destroyHandlers:b,methods:z,replaceTemplate(H){J.at=H},replaceRenderer(H){},replaceDataManager(H){J.dm=H},replaceScrollController(H){J.sc=H},getItemsForRange(H){let{dm:d,it:t}=J,s=[];for(let y=H.start;y<=H.end;y++){let h=d?d.getItem(y):t[y];if(h)s.push(h)}return s},getAllLoadedItems(){let H=J.dm;if(H){let d=H.getTotal(),t=[];for(let s=0;s<d;s++){let y=H.getItem(s);if(y)t.push(y)}return t}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let H=J.hc;return{isCompressed:!1,actualSize:H.getTotalSize(),virtualSize:H.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:C.start,compression:B.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,H]of K)H.remove(),N.release(H);K.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(H,d){J.rfn=H,J.ffn=d},setVirtualTotalFn(H){J.vtf=H},rebuildSizeCache(H){J.hc.rebuild(H??J.vtf())},setSizeConfig(H){if(J.hc=m0(H,J.vtf()),J.gp>0){let d=J.hc.getTotalSize,t=J.gp;J.hc.getTotalSize=()=>{let s=d();return s>0?s-t:0}}},updateContentSize(H){let d=`${H+J.mp}px`;if(Z)j.content.style.width=d;else j.content.style.height=d},updateCompressionMode(){for(let H=0;H<T.length;H++)T[H]()},setVisibleRangeFn(H){J.gvr=H},getVisibleRange(H,d,t,s){J.gvr(H,d,J.hc,t,s)},setScrollToPosFn(H){J.gsp=H},getScrollToPos(H,d,t,s){return J.gsp(H,J.hc,d,t,s)},setPositionElementFn(H){J.pef=H},setScrollFns(H,d){J.sgt=H,J.sst=(t)=>{d(t),v()}},setScrollTarget(H){J.st.removeEventListener("scroll",v),J.st=H,J.st.addEventListener("scroll",v,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(H){J.gcw=H.width,J.gch=H.height,J.cw=H.width(),J.ch=H.height(),B.viewportState.containerSize=Z?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,r.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(H){J.sif=H},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(H){J.i2s=H},setUpdateItemClassesFn(H){J.uic=H}}},D1=(J,Q,j)=>{let{rendered:q,itemState:U,applyTemplate:X,updateContentSize:K}=Q,N=()=>{J.hc.rebuild(J.vtf()),K(),j.updateCompressionMode(),J.ffn()},B=()=>J.it.length;return{getState:()=>({total:B(),cached:B(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:B,getCached:B,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(Z)=>J.it[Z],isItemLoaded:(Z)=>Z>=0&&Z<B()&&J.it[Z]!==void 0,getItemsInRange:(Z,_)=>{let T=[];for(let M=Math.max(0,Z),$=Math.min(_,B()-1);M<=$;M++)T.push(J.it[M]);return T},setTotal:()=>{},setItems:(Z,_=0,T)=>{if(_===0&&(T!==void 0||B()===0))J.it=Z;else{let M=_+Z.length;if(B()<M)J.it.length=M;for(let $=0;$<Z.length;$++)J.it[_+$]=Z[$]}if(J.ii)N()},updateItem:(Z,_)=>{let T=J.it;if(Z<0||Z>=T.length)return!1;let M=T[Z];if(!M)return!1;T[Z]={...M,..._};let $=q.get(Z);if($)X($,J.at(T[Z],Z,U)),$.dataset.id=String(T[Z].id);return!0},removeItem:(Z)=>{let _=typeof Z==="number"?Z:J.it.findIndex((T)=>T.id===Z);if(_<0||_>=J.it.length)return!1;if(J.it.splice(_,1),J.ii)N();return!0},loadRange:async()=>{},ensureRange:async()=>{},loadInitial:async()=>{},loadMore:async()=>!1,reload:async()=>{},evictDistant:()=>{},clear:()=>{J.it=[]},reset:()=>{if(J.it=[],J.ii)J.hc.rebuild(0),K(),J.ffn()}}},M1=(J,Q)=>{let{dom:j,classPrefix:q}=Q;return{getScrollTop:()=>J.sgt(),scrollTo:(U)=>{J.sst(U),J.ls=U,J.rfn()},scrollBy:(U)=>{let X=J.sgt()+U;J.sst(X),J.ls=X,J.rfn()},isAtTop:()=>J.ls<=2,isAtBottom:(U=2)=>J.sab(U),getScrollPercentage:()=>{let U=J.hc.getTotalSize(),X=Math.max(0,U-J.ch);return X>0?J.ls/X:0},getVelocity:()=>J.vt.velocity,isTracking:()=>J.vt.sampleCount>=2,isScrolling:()=>j.root.classList.contains(`${q}--scrolling`),updateConfig:()=>{},enableCompression:()=>{J.sic=!0},disableCompression:()=>{J.sic=!1},isCompressed:()=>J.sic,isWindowMode:()=>!1,updateContainerHeight:(U)=>{J.ch=U},destroy:()=>{}}};var qJ=(J,Q,j,q,U=0,X=0)=>{let K=Q.getOffset(J),N=Q.getSize(J),B=K+U,Z=B+N,_=j+q;if(B<j)return Math.max(0,K);if(Z>_)return Z+X-q;return j},VJ=(J,Q,j,q,U=0,X=0,K,N,B)=>{if(!(K!=null&&K.isCompressed&&K.ratio!==1))return qJ(J,Q,j,q,U,X);let _=N,{virtualSize:T}=K,M=Q.getSize(Math.max(0,J)),$=q-U-X,S=Math.max(1,Math.floor($/M)),k=T/_;if(B){if(J>=B.start+S){let z=$/M,v=J+1-z;return Math.max(0,v*k)}if(J<=B.start)return Math.max(0,J*k);return j}let D=j/T*_,b=D+S;if(J>=b){let z=$/M,v=J+1-z;return Math.max(0,v*k)}if(J<D)return Math.max(0,J*k);return j};var G1=(J,Q,j,q,U,X,K,N,B,Z,_,T,M,$)=>{let S=`${j}-item--focused`,k=!1,D=null,b=null,z=null,v=null,r=!1,C=()=>{if(r)return;r=!0,D=B.get("_getNavTotal")??null,b=B.get("_getNavDelta")??null,z=B.get("_navigate")??null,v=B.get("_scrollItemIntoView")??null},m=()=>{return C(),D?D():J.vtf()},H=()=>{return C(),b?b():{ud:1,lr:0,cols:0}};B.set("_getFocusedIndex",()=>k?J.fi:-1);let d=(a,F=!0)=>{if(Q.root.setAttribute("aria-activedescendant",`${q}-item-${a}`),C(),F)if(v)v(a);else{let A=U?J.cw:J.ch,L=J.i2s(a),f=qJ(L,J.hc,J.ls,A,X,K);if(f!==J.ls)J.sst(f),J.ls=J.sgt()}J.ffn()},t=(a)=>{J.fi=a,k=!0,d(a)},s=(a,F)=>{if(J.fi=a,F||$)k=!0;let A=J.dm?J.dm.getItem(a):J.it[a];if(A&&J.ss.has(A.id))J.ss.clear();else if(J.ss.clear(),A)J.ss.add(A.id);d(a,F)},y=(a,F,A)=>{let L=a;while(L>=0&&L<A){let f=J.dm?J.dm.getItem(L):J.it[L];if(!f||!f.__groupHeader)return L;L+=F}L=a-F;while(L>=0&&L<A){let f=J.dm?J.dm.getItem(L):J.it[L];if(!f||!f.__groupHeader)return L;L-=F}return a},h=()=>{if(J.id)return;if(!Q.root.matches(":focus-visible"))return;let a=m();if(a===0)return;let F=J.fi>=0?Math.min(J.fi,a-1):0;F=y(F,1,a),t(F)};Q.root.addEventListener("focusin",h);let I=(a)=>{if(J.id)return;let F=a.relatedTarget;if(F&&Q.root.contains(F))return;if(k=!1,J.fi>=0)Z.get(J.fi)?.classList.remove(S);Q.root.removeAttribute("aria-activedescendant")};Q.root.addEventListener("focusout",I),_.push((a)=>{if(J.id)return;let F=m();if(F===0)return;let A=J.fi,L=A;if(a.key===" "||a.key==="Enter"){if(A>=0){let f=J.dm?J.dm.getItem(A):J.it[A];if(f&&!f.__groupHeader)s(A,!0)}a.preventDefault();return}if(C(),z)switch(a.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":L=z(A,a.key,F);break;default:return}else{let{ud:f,lr:o}=H();switch(a.key){case"ArrowUp":L=A-f;break;case"ArrowDown":L=A+f;break;case"ArrowLeft":if(!o)return;L=A-o;break;case"ArrowRight":if(!o)return;L=A+o;break;case"PageUp":case"PageDown":{let l=J.hc.getSize(J.i2s(Math.max(0,A))),g=Math.max(f,Math.floor((U?J.cw:J.ch)/l)*f);L=a.key==="PageUp"?A-g:A+g;break}case"Home":L=0;break;case"End":L=F-1;break;default:return}if(L<0)L=N?F-1:0;else if(L>=F)L=N?0:F-1}if(a.preventDefault(),L=y(L,L>=A?1:-1,F),L!==A)t(L)}),T.push((a)=>{if(J.id)return;let F=a.target.closest("[data-index]");if(!F)return;let A=parseInt(F.dataset.index??"-1",10);if(A<0)return;let L=J.dm?.getItem(A)??J.it[A];if(!L||L.__groupHeader)return;k=!1,Q.root.focus({preventScroll:!0}),s(A,!1)}),M.push(()=>{Q.root.removeEventListener("focusin",h),Q.root.removeEventListener("focusout",I)})};var TJ=200,a0=50;var O1=50,A1=12,E1=2,s0=16000000;var L1="x",F1=20,HJ="_isPlaceholder",f0="__placeholder_";var I0=(J,Q,j)=>{if(String(j).startsWith(f0))return!1;let q=f0+Q;if(J.has(q))return J.delete(q),J.add(j),!0;return!1},T1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),o0=(J,Q,j)=>{if(j==="none")return J;let q=new Set(J.selected);if(j==="single"){if(q.clear(),Q.length>0)q.add(Q[0])}else for(let U of Q)q.add(U);return{...J,selected:q}},kJ=(J,Q)=>{let j=new Set(J.selected);for(let q of Q)j.delete(q);return{...J,selected:j}},n0=(J,Q,j)=>{if(j==="none")return J;if(J.selected.has(Q))return kJ(J,[Q]);else return o0(J,[Q],j)},$J=(J,Q,j)=>{if(j!=="multiple")return J;return{...J,selected:new Set(Q.map((q)=>q.id))}},bJ=(J)=>({...J,selected:new Set}),x0=(J,Q)=>{return J.focusedIndex=Q,J},_J=(J,Q,j=!1,q=1)=>{if(Q===0)return J;let U=J.focusedIndex-q;if(U<0)U=j?Q-1:0;return J.focusedIndex=U,J},DJ=(J,Q,j=!1,q=1)=>{if(Q===0)return J;let U=J.focusedIndex+q;if(U>=Q)U=j?0:Q-1;return J.focusedIndex=U,J},H1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=0,J},k1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=Q-1,J},yJ=(J,Q,j,q)=>{if(Q===0)return J;let U=q==="up"?J.focusedIndex-j:J.focusedIndex+j;return U=Math.max(0,Math.min(Q-1,U)),J.focusedIndex=U,J};var RJ=(J)=>{return Array.from(J.selected)},PJ=(J,Q)=>{let j=[];for(let q of J.selected){let U=Q(q);if(U)j.push(U)}return j};var MJ=(J,Q,j,q,U)=>{if(U!=="multiple")return J;let X=Math.min(j,q),K=Math.max(j,q),N=[];for(let B=X;B<=K;B++){let Z=Q[B];if(Z)N.push(Z.id)}return o0(J,N,U)};var wJ=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,h0=(J)=>{let Q=typeof J==="object"&&J?J:null;return{align:typeof J==="string"?J:Q?.align??"start",behavior:Q?.behavior??"auto",duration:Q?.duration??300}},i0=(J,Q)=>{let j=null,q=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(X,K,N)=>{if(q(),Math.abs(K-X)<1){J.scrollTo(K);return}let B=performance.now(),Z=(_)=>{let T=_-B,M=Math.min(T/N,1),$=X+(K-X)*wJ(M);if(J.scrollTo($),Q(),M<1)j=requestAnimationFrame(Z);else j=null};j=requestAnimationFrame(Z)},cancelScroll:q}};var $1=(J,Q,j,q,U,X,K,N,B,Z,_,T,M,$,S,k,D,b)=>{let z=(G)=>{{if(!Array.isArray(G)){console.warn("[vlist] setItems() expects an array, got:",typeof G);return}if(G.length>0&&G[0]&&!("id"in G[0]))console.warn('[vlist] Items must have an "id" property. First item:',G[0]);let E=Math.min(G.length,1e4),V=new Set;for(let P=0;P<E;P++){let O=G[P];if(O&&"id"in O){if(V.has(O.id)){console.warn(`[vlist] Duplicate item ID "${O.id}" at index ${P}. updateItem() and removeItem() will only match the first occurrence.`);break}V.add(O.id)}}}L(),B.dataManager.setItems(G,0,G.length)},v=(G)=>{let E=Z&&J.sab(2);if(B.dataManager.setItems(G,J.it.length),E&&J.it.length>0){let V=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(V),J.ls=V,J.rfn()}},r=(G)=>{let E=Z?J.sgt():0,V=Z?J.hc.getTotalSize():0,P=[...J.it];if(B.dataManager.clear(),B.dataManager.setItems([...G,...P],0),Z){let O=J.hc.getTotalSize()-V;if(O>0)J.sst(E+O),J.ls=E+O}},C=null,m=null,H=null,d=!1,t=()=>{if(d)return;d=!0,C=X.get("_updateRenderedItem")??null,m=X.get("_getSelectedIds")??null,H=X.get("_getFocusedIndex")??null},s=(G,E)=>{{let P=J.vtf();if(G<0||G>=P)console.warn(`[vlist] updateItem() index ${G} is out of range (0–${P-1}).`)}if(B.dataManager.updateItem(G,E),t(),!C)return;let V=B.dataManager.getItem(G);if(V){let O=(m?m():J.ss).has(V.id),R=(H?H():J.fi)===G;C(G,V,O,R)}},y=!1,h=(G)=>{let E=typeof document<"u"?document.activeElement:null,V=E&&Q.items.contains(E)?parseInt(E.dataset?.index??"-1",10):-1;if(!B.dataManager.removeItem(G))return console.warn(`[vlist] removeItem() could not find item with id "${G}".`),!1;if(j.emit("data:change",{type:"remove",id:G}),B.forceRender(),!y){let O=B.dataManager;if(typeof O.ensureRange==="function")y=!0,queueMicrotask(()=>{y=!1;let R=B.dataManager.getTotal(),{start:u,end:n}=B.state.viewportState.renderRange;if(R>0&&n>=u)O.ensureRange(u,n).catch(()=>{})})}if(V>=0){let O=J.vtf();if(O>0)q.get(Math.min(V,O-1))?.focus()}return!0},I=(G)=>{return B.dataManager.getItem(G)},a=(G)=>{return B.dataManager.getIndexById?.(G)??-1},F=async(G)=>{if(B.dataManager.reload)await B.dataManager.reload()},A=null,L=()=>{if(A!==null)cancelAnimationFrame(A),A=null},f=(G,E,V,P)=>{if(L(),Math.abs(E-G)<1){J.sst(E),J.ls=E,J.rfn();return}let O=performance.now(),R=(u)=>{let n=u-O,J0=Math.min(n/V,1),e=P?P():E,K0=G+(e-G)*wJ(J0);if(J.sst(K0),J.ls=K0,J.rfn(),J0<1)A=requestAnimationFrame(R);else A=null};A=requestAnimationFrame(R)},o=(G,E)=>{{let J0=J.vtf();if(J0>0&&(G<0||G>=J0))console.warn(`[vlist] scrollToIndex(${G}) is out of range (0–${J0-1}).`)}let{align:V,behavior:P,duration:O}=h0(E),R=J.vtf(),u=G;if(_&&R>0)u=(u%R+R)%R;let n=J.gsp(u,J.hc,J.ch,R,V);if(P==="smooth"){let J0=u,e=V;f(J.sgt(),n,O,()=>J.gsp(J0,J.hc,J.ch,J.vtf(),e))}else L(),J.sst(n)},l=()=>J.sgt(),g=(G,E)=>{return j.on(G,E)},p=(G,E)=>{j.off(G,E)},W=()=>{if(J.id)return;if(J.id=!0,B.state.isDestroyed=!0,Q.items.removeEventListener("click",T),Q.items.removeEventListener("dblclick",M),Q.root.removeEventListener("keydown",$),J.st.removeEventListener("scroll",S),k.disconnect(),D(),J.wh)Q.viewport.removeEventListener("wheel",J.wh);b();let G=[];for(let E=0;E<N.length;E++)try{N[E]()}catch(V){G.push(V instanceof Error?V:Error(String(V)))}for(let E of K)if(E.destroy)try{E.destroy()}catch(V){G.push(V instanceof Error?V:Error(String(V)))}L();for(let[,E]of q)E.remove(),U.release(E);q.clear(),U.clear(),j.emit("destroy",void 0);for(let E of G)j.emit("error",{error:E,context:"destroy"});j.clear(),Q.root.remove()},Y=(G,E)=>X.has(G)?X.get(G):E,w={get element(){return Q.root},get items(){let G=X.get("_getItems");return G?G():J.it},get total(){let G=X.get("_getTotal");return G?G():J.vtf()},setItems:Y("setItems",z),appendItems:Y("appendItems",v),prependItems:Y("prependItems",r),updateItem:Y("updateItem",s),removeItem:Y("removeItem",h),reload:Y("reload",F),getItemAt:I,getIndexById:a,scrollToIndex:Y("scrollToIndex",o),cancelScroll:Y("cancelScroll",L),getScrollPosition:Y("getScrollPosition",l),on:g,off:p,destroy:W};for(let[G,E]of X){if(G.charCodeAt(0)===95||G==="setItems"||G==="appendItems"||G==="prependItems"||G==="updateItem"||G==="removeItem"||G==="reload"||G==="scrollToIndex"||G==="scrollToItem"||G==="cancelScroll"||G==="getScrollPosition")continue;w[G]=E}return w};var Y4=3,X4="vlist",U4=150,K4=16000000,Z4=0,zJ=(J)=>{if(!J.container)throw Error("[vlist] Container is required");if(!J.item)throw Error("[vlist] item configuration is required");let Q=J.orientation==="horizontal",j=Q?"width":"height",q=Q?"estimatedWidth":"estimatedHeight",U=Q?J.item.width:J.item.height,X=Q?J.item.estimatedWidth:J.item.estimatedHeight;if(U==null&&X==null)throw Error(`[vlist] item.${j} or item.${q} is required${Q?" when orientation is 'horizontal'":""}`);if(U!=null){if(typeof U==="number"&&U<=0)throw Error(`[vlist] item.${j} must be a positive number`);if(typeof U!=="number"&&typeof U!=="function")throw Error(`[vlist] item.${j} must be a number or a function (index) => number`)}else if(X!=null){if(typeof X!=="number"||X<=0)throw Error(`[vlist] item.${q} must be a positive number`)}if(!J.item.template)throw Error("[vlist] item.template is required");if(Q&&J.reverse)throw Error("[vlist] horizontal direction cannot be combined with reverse mode");let K=new Map,N=!1,B={use(Z){if(N)throw Error("[vlist] Cannot call .use() after .build()");return K.set(Z.name,Z),B},build(){if(N)throw Error("[vlist] .build() can only be called once");return N=!0,B4(J,K,Q,U,X??null)}};return B};function B4(J,Q,j,q,U){let{item:X,items:K,overscan:N=Y4,classPrefix:B=X4,ariaLabel:Z,padding:_,reverse:T=!1,scroll:M,accessible:$,interactive:S}=J,k=S??$??!0,D=M,b=D?.wheel??!0,z=D?.wrap??!1,v=T,r=`${B}-${Z4++}`,C=Q.has("withGrid")||Q.has("withMasonry")?0:X.gap??0,m=q??U,H=q==null&&U!=null,d=j?typeof X.height==="number"?X.height:void 0:typeof X.width==="number"?X.width:void 0,t={overscan:N,classPrefix:B,reverse:v,wrap:z,horizontal:j,ariaIdPrefix:r,interactive:k},s=Array.from(Q.values()).sort((c,q0)=>(c.priority??50)-(q0.priority??50)),y=new Set(s.map((c)=>c.name));for(let c of s)if(c.conflicts){for(let q0 of c.conflicts)if(y.has(q0))throw Error(`[vlist] ${c.name} and ${q0} cannot be combined`)}if(v){if(y.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let h=K1(J.container),I=Z1(h,B,Z,j,k);if(D?.wheel===!1)if(j)I.viewport.style.overflowX="hidden";else I.viewport.style.overflow="hidden";if(D?.scrollbar==="none")I.viewport.classList.add(`${B}-viewport--no-scrollbar`);if(D?.gutter==="stable")I.viewport.classList.add(`${B}-viewport--gutter-stable`);let a=y.has("withGrid")||y.has("withMasonry");if(j&&d!=null&&D?.scrollbar!=="none"&&!a){I.root.style.height=`${d}px`;let c=I.viewport.style.overflowX;I.viewport.style.overflowX="scroll";let q0=I.viewport.offsetHeight-I.viewport.clientHeight;if(I.viewport.style.overflowX=c,q0>0)I.root.style.height=`${d+q0}px`}let F=v0(_),A=l0(F,j);if(F.top||F.right||F.bottom||F.left)I.content.style.boxSizing="border-box",I.content.style.padding=`${F.top}px ${F.right}px ${F.bottom}px ${F.left}px`;let L=U1(),f=K||[],o=typeof m==="function"&&(Q.has("withGrid")||Q.has("withMasonry")),l=C>0?typeof m==="function"?(c)=>m(c)+C:m+C:m,g=H?U+C:l,p=m0(g,o?0:f.length);if(C>0){let c=p.getTotalSize;p.getTotalSize=()=>{let q0=c();return q0>0?q0-C:0}}let W=B1(),Y={it:f,hc:p,ch:I.viewport.clientHeight,cw:I.viewport.clientWidth,id:!1,ii:!1,ls:0,vt:j1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>I.viewport.scrollLeft:()=>I.viewport.scrollTop,sst:j?(c)=>{I.viewport.scrollLeft=c}:(c)=>{I.viewport.scrollTop=c},sab:(c=2)=>{let q0=Y.hc.getTotalSize();return Y.ls+Y.ch>=q0-c},sic:!1,rfn:null,ffn:null,gvr:(c,q0,U0,F0,R0)=>{N1(c,q0,U0,F0,R0)},gsp:(c,q0,U0,F0,R0)=>{return V1(c,q0,U0,F0,R0,Y.mp)},pef:null,at:X.template,vre:!0,st:I.viewport,wh:null,gcw:()=>Y.cw,gch:()=>Y.ch,gp:C,mp:A,sif:(c)=>c,i2s:(c)=>c,uic:(c,q0,U0)=>{let F0=u.get(c);if(!F0)return;j0(F0,q0,U0)},csi:null};Y.vtf=()=>Y.dm?Y.dm.getTotal():Y.it.length;let w=null,G=!1,E={start:0,end:0},V={start:0,end:0},P={start:-1,end:-1},O={viewportState:{scrollPosition:0,containerSize:j?Y.cw:Y.ch,totalSize:Y.hc.getTotalSize(),actualSize:Y.hc.getTotalSize(),isCompressed:!1,compressionRatio:1,visibleRange:{start:0,end:0},renderRange:{start:0,end:0}},lastRenderRange:{start:-1,end:-1},isInitialized:!1,isDestroyed:!1,cachedCompression:null},R=()=>({...O.viewportState,totalItems:Y.vtf()}),u=new Map,n=()=>{r0(I.items,u.keys(),(c)=>u.get(c))},J0=()=>{let c=Y.hc.getTotalSize(),U0=`${(Y.sic?c:Math.min(c,K4))+A}px`;if(j)I.content.style.width=U0;else I.content.style.height=U0},e={selected:!1,focused:!1},K0=`${B}-item`,i=`${B}-item--selected`,Q0=`${B}-item--focused`,j0=(c,q0,U0)=>{c.classList.toggle(i,q0),c.classList.toggle(Q0,U0),c.ariaSelected=q0?"true":"false"},W0=X.striped,V0=!!W0,M0=W0==="data"||W0==="even"||W0==="odd",T0=`${B}-item--odd`,k0=`${B}-item--placeholder`,B0=`${B}-item--replaced`,A0=`${B}--scrolling`,N0=[],O0=[],G0=[],_0=[],b0=[],H0=[],x=[],Y0=[],X0=new Map,Z0="__placeholder_",D0={scrollPosition:0,direction:"down"},E0={velocity:0,reliable:!1},y0={range:{start:0,end:0}},L0=null,S0=null,d0=!1,a1=()=>{if(d0)return;d0=!0,L0=X0.get("_getSelectedIds")??null,S0=X0.get("_getFocusedIndex")??null},UJ=(c,q0,U0)=>{if(!q0)console.warn(`[vlist] Template returned falsy value${U0!==void 0?` for item at index ${U0}`:""}. The element will render as blank.`);else if(typeof q0==="string"&&q0==="")console.warn(`[vlist] Template returned empty string${U0!==void 0?` for item at index ${U0}`:""}. The element will render as blank.`);if(typeof q0==="string")c.innerHTML=q0;else c.replaceChildren(q0)},s1=(c,q0)=>{let U0=Math.round(Y.hc.getOffset(q0));if(j)c.style.transform=`translateX(${U0}px)`;else c.style.transform=`translateY(${U0}px)`};Y.pef=s1;let o1=(c,q0)=>{let U0=W.acquire();U0.className=K0;let F0=!Y.csi||Y.csi(c);if(j){if(F0)U0.style.width=`${Y.hc.getSize(c)-C}px`;else U0.style.width="";if(d!=null)U0.style.height=`${d}px`}else if(F0)U0.style.height=`${Y.hc.getSize(c)-C}px`;else U0.style.height="";if(U0.dataset.index=String(c),U0.dataset.id=String(q0.id),U0.ariaSelected="false",U0.id=`${r}-item-${c}`,Y.la=String(Y.vtf()),U0.setAttribute("aria-setsize",Y.la),U0.setAttribute("aria-posinset",String(c+1)),String(q0.id).startsWith(Z0))U0.classList.add(k0);if(V0)if(M0){let w0=Y.sif(c);if(w0<0)U0.classList.remove(T0);else U0.classList.toggle(T0,(w0&1)===1)}else U0.classList.toggle(T0,(c&1)===1);try{UJ(U0,Y.at(q0,c,e),c)}catch(w0){let P0=w0 instanceof Error?w0:Error(String(w0));L.emit("error",{error:P0,context:`tpl(${c},${q0.id})`,viewport:R()}),U0.textContent=""}return Y.pef(U0,c),U0},n1=()=>{if(Y.id)return;let c=j?Y.cw:Y.ch;if(c<=0)return;a1();let q0=L0?L0():Y.ss,U0=S0?S0():Y.fi,F0=Y.vtf();if(Y.gvr(Y.ls,c,Y.hc,F0,E),W1(E,N,F0,V),V.start===P.start&&V.end===P.end){if(Y.sic)for(let[$0,z0]of u)Y.pef(z0,$0);O.viewportState.scrollPosition=Y.ls,O.viewportState.containerSize=c,O.viewportState.visibleRange.start=E.start,O.viewportState.visibleRange.end=E.end,O.viewportState.renderRange.start=V.start,O.viewportState.renderRange.end=V.end;return}let R0=String(F0),w0=R0!==Y.la;Y.la=R0;for(let[$0,z0]of u)if($0<V.start||$0>V.end)z0.remove(),W.release(z0),u.delete($0);let P0=document.createDocumentFragment(),u0=!1,JJ=x.length>0?[]:null;for(let $0=V.start;$0<=V.end;$0++){let z0=Y.dm?Y.dm.getItem($0):Y.it[$0];if(z0===void 0)continue;let C0=u.get($0);if(C0){let g0=C0.dataset.id,c0=String(z0.id);if(g0!==c0){let J4=g0?.startsWith(Z0),LJ=c0.startsWith(Z0);try{UJ(C0,Y.at(z0,$0,e),$0)}catch(FJ){let Q4=FJ instanceof Error?FJ:Error(String(FJ));L.emit("error",{error:Q4,context:`tpl(${$0},${z0.id})`,viewport:R()}),C0.textContent=""}C0.dataset.id=c0;let Q1=!Y.csi||Y.csi($0);if(j)C0.style.width=Q1?`${Y.hc.getSize($0)-C}px`:"";else C0.style.height=Q1?`${Y.hc.getSize($0)-C}px`:"";if(LJ)C0.classList.add(k0);else C0.classList.remove(k0);if(J4&&!LJ)C0.classList.add(B0),setTimeout(()=>{C0.classList.remove(B0)},300);if(Y.dm&&!LJ)I0(q0,$0,z0.id)}Y.pef(C0,$0);let BJ=q0.has(z0.id);if(j0(C0,BJ,$0===U0),w0)C0.setAttribute("aria-setsize",Y.la)}else{let g0=o1($0,z0);if(JJ)JJ.push({index:$0,element:g0});if(Y.dm)I0(q0,$0,z0.id);let c0=q0.has(z0.id),BJ=$0===U0;if(c0||BJ)j0(g0,c0,BJ);P0.appendChild(g0),u.set($0,g0),u0=!0}}if(u0)I.items.appendChild(P0);if(JJ&&JJ.length>0)for(let $0=0;$0<x.length;$0++)x[$0](JJ);P.start=V.start,P.end=V.end,O.lastRenderRange.start=V.start,O.lastRenderRange.end=V.end,O.viewportState.scrollPosition=Y.ls,O.viewportState.visibleRange.start=E.start,O.viewportState.visibleRange.end=E.end,O.viewportState.renderRange.start=V.start,O.viewportState.renderRange.end=V.end,y0.range.start=V.start,y0.range.end=V.end,L.emit("range:change",y0)},i1=()=>{P.start=-1,P.end=-1,Y.rfn()};Y.rfn=n1,Y.ffn=i1;let t1=()=>{I.root.classList.remove(A0),G=!1,Y.vt.velocity=0,Y.vt.sampleCount=0,E0.velocity=0,E0.reliable=!1,L.emit("velocity:change",E0),n();for(let c=0;c<O0.length;c++)O0[c]();L.emit("scroll:idle",{scrollPosition:Y.ls})},e1=()=>{if(w)clearTimeout(w);w=setTimeout(t1,D?.idleTimeout??U4)},e0=()=>{if(Y.id)return;let c=Y.sgt();if(c===Y.ls&&G)return;let q0=c>=Y.ls?"down":"up";if(Y.vt=Y1(Y.vt,c),!I.root.classList.contains(A0))I.root.classList.add(A0);G=!0,Y.ls=c,Y.rfn(),D0.scrollPosition=c,D0.direction=q0,L.emit("scroll",D0),E0.velocity=Y.vt.velocity,E0.reliable=Y.vt.sampleCount>=q1,L.emit("velocity:change",E0);for(let U0=0;U0<N0.length;U0++)N0[U0](c,q0);e1()},KJ=null;if(Y.st.addEventListener("scroll",e0,{passive:!0}),b){let c=I.viewport;if(j)KJ=(q0)=>{if(O.viewportState.isCompressed)return;if(Math.abs(q0.deltaX)>Math.abs(q0.deltaY))return;let U0=Y.sgt(),F0=c.scrollWidth-c.clientWidth,R0=Math.max(0,Math.min(U0+q0.deltaY,F0));if(Math.abs(R0-U0)<1)return;q0.preventDefault(),Y.sst(R0),e0()};else KJ=(q0)=>{if(O.viewportState.isCompressed)return;let U0=c.scrollWidth>c.clientWidth;if(U0&&Math.abs(q0.deltaX)>Math.abs(q0.deltaY))return;if(U0&&q0.deltaX!==0)q0.preventDefault(),c.scrollLeft+=q0.deltaX;let F0=Y.sgt(),R0=c.scrollHeight-c.clientHeight,w0=Math.max(0,Math.min(F0+q0.deltaY,R0));if(Math.abs(w0-F0)<1)return;q0.preventDefault(),Y.sst(w0),e0()};Y.wh=KJ,c.addEventListener("wheel",KJ,{passive:!1})}let oJ=(c)=>{let q0=c.target.closest("[data-index]");if(!q0)return null;let U0=parseInt(q0.dataset.index??"-1",10);if(U0<0)return null;let F0=Y.dm?.getItem(U0)??Y.it[U0];if(!F0||F0.__groupHeader)return null;return{item:F0,index:U0}},nJ=(c)=>{let q0=oJ(c);if(q0)L.emit("item:click",{item:q0.item,index:q0.index,event:c});for(let U0=0;U0<G0.length;U0++)G0[U0](c)},iJ=(c)=>{let q0=oJ(c);if(q0)L.emit("item:dblclick",{item:q0.item,index:q0.index,event:c})},tJ=(c)=>{for(let q0=0;q0<_0.length;q0++)_0[q0](c)};if(I.items.addEventListener("click",nJ),I.items.addEventListener("dblclick",iJ),I.root.addEventListener("keydown",tJ),k){let c=null,q0=(U0)=>{if(c)clearTimeout(c);c=setTimeout(()=>{if(c=null,Y.id)return;let F0=Y.vtf();I.liveRegion.textContent=`Showing items ${U0.range.start+1} to ${Math.min(U0.range.end+1,F0)} of ${F0}`},300)};L.on("range:change",q0),Y0.push(()=>{if(c)clearTimeout(c);L.off("range:change",q0)})}let AJ=new ResizeObserver((c)=>{if(Y.id)return;for(let q0 of c){let U0=q0.contentRect.height,F0=q0.contentRect.width,R0=j?F0:U0,w0=j?Y.cw:Y.ch;if(Y.cw=F0,Y.ch=U0,Math.abs(R0-w0)>1){if(O.viewportState.containerSize=R0,Y.ii){let P0=O.cachedCompression;if(P0&&P0.state.isCompressed){let u0=`${P0.state.virtualSize+A}px`;if(j)I.content.style.width=u0;else I.content.style.height=u0}else J0();Y.rfn(),L.emit("resize",{height:U0,width:F0})}}if(Y.ii)for(let P0=0;P0<b0.length;P0++)b0[P0](F0,U0)}});if(Y.vre)AJ.observe(I.viewport);let EJ={dom:I,emitter:L,resolvedConfig:t,rawConfig:J,rendered:u,pool:W,itemState:e,sharedState:O,renderRange:V,isHorizontal:j,classPrefix:B,contentSizeHandlers:H0,idleHandlers:O0,afterScroll:N0,clickHandlers:G0,keydownHandlers:_0,resizeHandlers:b0,destroyHandlers:Y0,methods:X0,onScrollFrame:e0,resizeObserver:AJ,afterRenderBatch:x,applyTemplate:UJ,updateContentSize:J0},ZJ=_1(Y,EJ);Y.dm=D1(Y,EJ,ZJ),Y.sc=M1(Y,EJ),X0.set("_updateRenderedItem",(c,q0,U0,F0)=>{let R0=u.get(c);if(!R0)return;let w0={selected:U0,focused:F0};try{let P0=Y.at(q0,c,w0);UJ(R0,P0,c)}catch(P0){let u0=P0 instanceof Error?P0:Error(String(P0));L.emit("error",{error:u0,context:`tpl(${c},${q0.id})`,viewport:R()})}R0.dataset.id=String(q0.id),j0(R0,U0,F0)});let eJ=new WeakSet;X0.set("_setSizeCache",(c)=>{if(Y.hc=c,Y.gp>0&&!eJ.has(c)){eJ.add(c);let q0=Y.hc.getTotalSize,U0=Y.gp;Y.hc.getTotalSize=()=>{let F0=q0();return F0>0?F0-U0:0}}}),X0.set("_setConstrainSize",(c)=>{Y.csi=c});let J1=new Map;for(let c of s)if(c.methods)for(let q0 of c.methods){let U0=J1.get(q0);if(U0)throw Error(`[vlist] Method "${q0}" is registered by both "${U0}" and "${c.name}"`);J1.set(q0,c.name)}for(let c of s)try{c.setup(ZJ)}catch(q0){let U0=q0 instanceof Error?q0:Error(String(q0));console.error(`[vlist] Feature "${c.name}" setup failed:`,U0),L.emit("error",{error:U0,context:c.name,viewport:R()})}if(H&&!Q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(k&&!X0.has("_getFocusedIndex")){let c=j?F.left:F.top,q0=j?F.right:F.bottom;G1(Y,I,B,r,j,c,q0,z,X0,u,_0,G0,Y0,!!J.focusOnClick)}if(Y.ii=!0,ZJ.state.isInitialized=!0,J0(),Y.rfn(),v&&Y.it.length>0){let c=Y.gsp(Y.it.length-1,Y.hc,Y.ch,Y.it.length,"end");Y.sst(c),Y.ls=c,Y.rfn()}return $1(Y,I,L,u,W,X0,s,Y0,ZJ,v,z,nJ,iJ,tJ,e0,AJ,()=>{},()=>{if(w)clearTimeout(w)})}var jJ=(J,Q,j)=>{let q=Q.getTotalSize(),U=j===!0||q>s0,X=q>s0?s0:q,K=q>0?X/q:1;return{isCompressed:U,actualSize:q,virtualSize:X,ratio:K}},b1=(J,Q,j,q,U,X)=>{if(q===0||Q===0)return X.start=0,X.end=-1,X;if(!U.isCompressed||U.ratio===1){let M=j.indexAtOffset(J),$=j.indexAtOffset(J+Q);if($<q-1)$++;return X.start=Math.max(0,M),X.end=Math.min(q-1,Math.max(0,$)),X}let{virtualSize:K}=U,B=J/K*q,Z=Math.floor(B),_=X1(j,Math.max(0,Z),Q,q),T=Math.ceil(B)+_;return X.start=Math.max(0,Z),X.end=Math.min(q-1,Math.max(0,T)),X};var t0=(J,Q,j,q,U,X,K)=>{if(!X.isCompressed||q===0)return j.getOffset(J);if(X.ratio===1)return j.getOffset(J)-Q;let{virtualSize:N}=X,B=Q/N,Z=j.getTotalSize(),_=B*Z;return j.getOffset(J)-_},y1=(J,Q,j,q,U,X="start")=>{if(q===0)return 0;let K;if(U.isCompressed&&U.ratio!==1){K=J/q*U.virtualSize;let _=Q.getSize(J);switch(X){case"center":K-=(j-_)/2*U.ratio;break;case"end":K-=(j-_)*U.ratio;break}return Math.max(0,K)}K=Q.getOffset(J);let N=Q.getSize(J);switch(X){case"center":K-=(j-N)/2;break;case"end":K-=j-N;break}let B=U.virtualSize-j;return Math.max(0,Math.min(K,B))};var N4=(J)=>{if(typeof J!=="object"){let Q=J??2;return{top:Q,right:Q,bottom:Q,left:Q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},YJ=(J,Q,j={},q="vlist",U=!1)=>{let{autoHide:X=!0,autoHideDelay:K=1000,minThumbSize:N=15,showOnHover:B=!0,showOnViewportEnter:Z=!0,clickBehavior:_="page"}=j,T=N4(j.padding),M=U?T.left:T.top,$=U?T.right:T.bottom,S=U?T.bottom:T.right,k=j.hoverZoneWidth??S+16,D=0,b=0,z=0,v=0,r=!1,C=!1,m=0,H=0,d=0,t=null,s=!1,y=null,h=null,I=0,a=0,F=null,A=null,L=null,f=U?"width":"height",o=U?"translateX":"translateY",l=U?(N0)=>N0.clientX:(N0)=>N0.clientY,g=U?"left":"top",p=document.createElement("div"),W=document.createElement("div"),Y=document.createElement("div"),w=()=>{if(p.className=`${q}-scrollbar`,W.className=`${q}-scrollbar-thumb`,U)p.classList.add(`${q}-scrollbar--horizontal`);if(j.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${T.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${T.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${T.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${T.left}px`);if(j.minThumbSize!==void 0)p.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${N}px`);if(p.appendChild(W),J.appendChild(p),Y.className=`${q}-scrollbar-hover`,U)Y.classList.add(`${q}-scrollbar-hover--horizontal`),Y.style.height=`${k}px`;else Y.style.width=`${k}px`;J.appendChild(Y)},G=()=>{if(t)clearTimeout(t),t=null},E=()=>{if(!X)return;G(),t=setTimeout(P,K)},V=()=>{if(D<=b)return;if(G(),!s)p.classList.add(`${q}-scrollbar--visible`),s=!0;if(X&&!r&&!C)E()},P=()=>{if(r||C)return;p.classList.remove(`${q}-scrollbar--visible`),s=!1},O=(N0,O0)=>{D=N0,b=O0;let G0=D>b;if(p.style.display=G0?"":"none",!G0){P();return}let _0=Math.max(0,b-M-$),b0=b/D;z=Math.max(N,b0*_0),W.style[f]=`${z}px`,v=_0-z,R(d)},R=(N0)=>{if(d=N0,D<=b||v<=0)return;let O0=D-b,_0=Math.min(1,Math.max(0,N0/O0))*v;W.style.transform=`${o}(${_0}px)`},u=(N0)=>{if(N0.target===W||_!=="jump"||v<=0)return;let O0=D-b,G0=p.getBoundingClientRect(),_0=l(N0)-G0[g],b0=Math.max(0,Math.min(_0-z/2,v));Q(b0/v*O0),V()},n=()=>{if(F!==null)clearTimeout(F),F=null;if(A!==null)cancelAnimationFrame(A),A=null;L=null},J0=(N0)=>{let O0=v>0?a/N0*v:0;if(I<O0)return-1;if(I>=O0+z)return 1;return 0},e=()=>{let N0=D-b,O0=J0(N0);if(O0===0){n();return}if(O0===-1){if(a<=0){n();return}let G0=Math.max(0,a-b);a=G0,Q(G0)}else{if(a>=N0){n();return}let G0=Math.min(N0,a+b);a=G0,Q(G0)}V()},K0=(N0)=>{if(L===null){L=N0,A=requestAnimationFrame(K0);return}let O0=D-b,G0=N0-L;L=N0;let _0=J0(O0);if(_0===0){n();return}let b0=12*b/1000,H0=Math.min(b0*G0,b);if(_0===-1){if(a<=0){n();return}let x=Math.max(0,a-H0);a=x,Q(x)}else{if(a>=O0){n();return}let x=Math.min(O0,a+H0);a=x,Q(x)}G(),A=requestAnimationFrame(K0)},i=()=>{n(),E(),document.removeEventListener("mouseup",i)},Q0=(N0)=>{if(N0.target===W||_!=="page")return;N0.preventDefault();let O0=p.getBoundingClientRect();I=l(N0)-O0[g],a=d,e(),F=setTimeout(()=>{A=requestAnimationFrame(K0)},350),document.addEventListener("mouseup",i)},j0=(N0)=>{N0.preventDefault(),N0.stopPropagation(),r=!0,m=l(N0),H=d,G(),p.classList.add(`${q}-scrollbar--dragging`),document.addEventListener("mousemove",W0),document.addEventListener("mouseup",V0)},W0=(N0)=>{if(!r)return;let O0=l(N0)-m,G0=v>0?O0/v:0,_0=D-b,b0=G0*_0,H0=Math.max(0,Math.min(H+b0,_0)),Y0=H0/_0*v;if(W.style.transform=`${o}(${Y0}px)`,h=H0,y===null)y=requestAnimationFrame(()=>{if(h!==null)Q(h);y=null})},V0=()=>{if(r=!1,y!==null)cancelAnimationFrame(y),y=null;if(h!==null)Q(h),h=null;if(p.classList.remove(`${q}-scrollbar--dragging`),X&&!C)E();document.removeEventListener("mousemove",W0),document.removeEventListener("mouseup",V0)},M0=()=>{if(Z)V()},T0=()=>{if(!r){if(C=!1,X)E()}},k0=()=>{C=!0,G(),V()},B0=()=>{if(C=!1,!r&&X)E()},A0=()=>{if(G(),n(),y!==null)cancelAnimationFrame(y),y=null;if(p.removeEventListener("click",u),p.removeEventListener("mousedown",Q0),p.removeEventListener("mouseenter",k0),document.removeEventListener("mouseup",i),p.removeEventListener("mouseleave",B0),W.removeEventListener("mousedown",j0),J.removeEventListener("mouseenter",M0),J.removeEventListener("mouseleave",T0),document.removeEventListener("mousemove",W0),document.removeEventListener("mouseup",V0),Y.removeEventListener("click",u),Y.removeEventListener("mousedown",Q0),B)Y.removeEventListener("mouseenter",k0),Y.removeEventListener("mouseleave",B0);if(Y.parentNode)Y.parentNode.removeChild(Y);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),p.parentNode)p.parentNode.removeChild(p)};if(w(),p.addEventListener("click",u),p.addEventListener("mousedown",Q0),p.addEventListener("mouseenter",k0),p.addEventListener("mouseleave",B0),W.addEventListener("mousedown",j0),J.addEventListener("mouseenter",M0),J.addEventListener("mouseleave",T0),Y.addEventListener("click",u),Y.addEventListener("mousedown",Q0),B)Y.addEventListener("mouseenter",k0),Y.addEventListener("mouseleave",B0);return{show:V,hide:P,updateBounds:O,updatePosition:R,isVisible:()=>s,destroy:A0}};var CJ=(J)=>{let Q=null;return{name:"withScrollbar",priority:30,setup(j){let{dom:q,config:U}=j,{classPrefix:X,horizontal:K}=U;if(Q=YJ(q.viewport,(B)=>j.scrollController.scrollTo(B),J??{},X,K),!q.viewport.classList.contains(`${X}-viewport--custom-scrollbar`))q.viewport.classList.add(`${X}-viewport--custom-scrollbar`);if(J?.gutter)q.viewport.classList.add(`${X}-viewport--gutter`);Q.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize);let N=Q;j.afterScroll.push((B,Z)=>{N.updatePosition(B),N.show()}),j.resizeHandlers.push((B,Z)=>{if(N)N.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.contentSizeHandlers.push(()=>{if(N)N.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.destroyHandlers.push(()=>{if(N)N.destroy()})},destroy(){if(Q)Q.destroy(),Q=null}}};var W4=0.65,V4=0.5,R1=1.7,_4=0.95,D4=0.1,M4=5,G4=100,P1=(J,Q,j,q=0)=>{if(J<=0)return 0;let U=Q-q;return Math.max(0,U*(1-j)+q)},vJ=(J)=>{let Q=J?.force??!1,j=null,q=0,U=!1,X=0,K=0,N=null,B=0,Z=0,_=null,T=[];return{name:"withScale",priority:20,setup(M){let{dom:$,config:S}=M,{classPrefix:k,horizontal:D}=S,b=v0(M.rawConfig.padding),z=D?b.left+b.right:b.top+b.bottom,v=()=>{let s=M.getVirtualTotal(),y=jJ(s,M.sizeCache,Q);if(y.isCompressed&&!U){U=!0,M.scrollController.enableCompression(y);let I=D?$.viewport.scrollLeft:$.viewport.scrollTop;if(D)$.viewport.style.overflowX="hidden";else $.viewport.style.overflow="hidden";if(D)$.viewport.scrollLeft=0;else $.viewport.scrollTop=0;if(I>0)q=I,K=I;X=P1(y.virtualSize,M.state.viewportState.containerSize,y.ratio,z),M.updateContentSize(y.virtualSize+X),M.setScrollFns(()=>q,(W)=>{if(q=W,K=W,N!==null)cancelAnimationFrame(N),N=null});let a=()=>{let W=K-q;if(M.getVirtualTotal()===0){q=0,K=0,N=null,M.scrollController.scrollTo(0);return}if(Math.abs(W)<V4){let Y=M.getCachedCompression(),w=Math.max(0,Y.virtualSize+X-M.state.viewportState.containerSize);q=Math.max(0,Math.min(K,w)),K=q,N=null}else{q+=W*W4;let w=M.getCachedCompression().virtualSize+X-M.state.viewportState.containerSize;q=Math.max(0,Math.min(q,w)),N=requestAnimationFrame(a)}M.scrollController.scrollTo(q)},F=$.viewport,A=(W)=>{W.preventDefault();let Y=M.getCachedCompression(),w=Y.virtualSize+X-M.state.viewportState.containerSize;if(K=Math.max(0,Math.min(K+W.deltaY*Y.ratio*R1,w)),N===null)N=requestAnimationFrame(a)};F.addEventListener("wheel",A,{passive:!1});let L=()=>{if(_!==null)cancelAnimationFrame(_),_=null},f=(W)=>{if(L(),N!==null)cancelAnimationFrame(N),N=null;let Y=W.touches[0];if(!Y)return;let w=D?Y.clientX:Y.clientY;B=w,Z=q,T=[{time:performance.now(),y:w}]},o=(W)=>{W.preventDefault();let Y=W.touches[0];if(!Y)return;let w=D?Y.clientX:Y.clientY,G=performance.now();if(T.push({time:G,y:w}),T.length>M4)T.shift();let E=B-w,V=M.getCachedCompression(),P=V.virtualSize+X-M.state.viewportState.containerSize,O=Math.max(0,Math.min(Z+E*V.ratio*R1,P));q=O,K=O,M.scrollController.scrollTo(O)},l=(W)=>{let Y=performance.now(),w=T.filter((P)=>Y-P.time<G4),G=0;if(w.length>=2){let P=w[0],O=w[w.length-1],R=O.time-P.time;if(R>0)G=(P.y-O.y)/R}if(T=[],Math.abs(G)<D4)return;let E=G*16,V=()=>{if(E*=_4,Math.abs(E)<0.5){_=null;return}let O=M.getCachedCompression().virtualSize+X-M.state.viewportState.containerSize,R=q+E;if(R=Math.max(0,Math.min(R,O)),R<=0&&E<0||R>=O&&E>0){q=R,K=R,M.scrollController.scrollTo(R),_=null;return}q=R,K=R,M.scrollController.scrollTo(R),_=requestAnimationFrame(V)};_=requestAnimationFrame(V)};F.addEventListener("touchstart",f,{passive:!0}),F.addEventListener("touchmove",o,{passive:!1}),F.addEventListener("touchend",l,{passive:!0}),F.addEventListener("touchcancel",l,{passive:!0}),M.destroyHandlers.push(()=>{F.removeEventListener("wheel",A),F.removeEventListener("touchstart",f),F.removeEventListener("touchmove",o),F.removeEventListener("touchend",l),F.removeEventListener("touchcancel",l)});let g=$.viewport.querySelector(`.${k}-scrollbar`),p=()=>{if((D?$.viewport.scrollLeft:$.viewport.scrollTop)!==0)if(D)$.viewport.scrollLeft=0;else $.viewport.scrollTop=0};if(F.addEventListener("scroll",p,{passive:!0}),M.destroyHandlers.push(()=>{F.removeEventListener("scroll",p)}),!g){if(j=YJ($.viewport,(Y)=>M.scrollController.scrollTo(Y),{},k,D),!$.viewport.classList.contains(`${k}-viewport--custom-scrollbar`))$.viewport.classList.add(`${k}-viewport--custom-scrollbar`);j.updateBounds(y.virtualSize,M.state.viewportState.containerSize);let W=j;M.afterScroll.push((Y,w)=>{if(W)W.updatePosition(Y),W.show()}),M.resizeHandlers.push((Y,w)=>{if(W){let G=M.getCachedCompression();W.updateBounds(G.virtualSize,M.state.viewportState.containerSize)}})}}else if(!y.isCompressed&&U){if(U=!1,N!==null)cancelAnimationFrame(N),N=null;if(_!==null)cancelAnimationFrame(_),_=null;if(q=0,K=0,T=[],M.setScrollFns(D?()=>$.viewport.scrollLeft:()=>$.viewport.scrollTop,D?(I)=>{$.viewport.scrollLeft=I}:(I)=>{$.viewport.scrollTop=I}),D)$.viewport.scrollLeft=0;else $.viewport.scrollTop=0;if(M.scrollController.disableCompression(),D)$.viewport.style.overflowX="auto";else $.viewport.style.overflow="auto";if(j)j.destroy(),j=null;X=0,M.updateContentSize(y.actualSize)}else if(y.isCompressed)M.scrollController.updateConfig({compression:y}),X=P1(y.virtualSize,M.state.viewportState.containerSize,y.ratio,z),M.updateContentSize(y.virtualSize+X);if(j)j.updateBounds(y.virtualSize+X,M.state.viewportState.containerSize);let h=M.state.viewportState;if(h.isCompressed=y.isCompressed,h.compressionRatio=y.ratio,h.totalSize=y.virtualSize+X,h.actualSize=y.actualSize,M.state.cachedCompression={state:y,totalItems:s},U){let I=Math.max(0,y.virtualSize+X-M.state.viewportState.containerSize),a=q;if(a>I)a=I;else if(a<0)a=0;if(a!==q){if(N!==null)cancelAnimationFrame(N),N=null;if(_!==null)cancelAnimationFrame(_),_=null;M.scrollController.scrollTo(a)}}for(let I=0;I<M.contentSizeHandlers.length;I++)M.contentSizeHandlers[I]()};M.updateCompressionMode=v;let r=M.getCachedCompression.bind(M);M.getCachedCompression=()=>{if(M.state.cachedCompression)return M.state.cachedCompression.state;return r()},M.setVisibleRangeFn((s,y,h,I,a)=>{C=null,m=null;let F=jJ(I,h,Q);b1(s,y,h,I,F,a)}),M.setScrollToPosFn((s,y,h,I,a)=>{let F=jJ(I,y,Q);return y1(s,y,h,I,F,a)});let C=null,m=null;M.setPositionElementFn((s,y)=>{let h=M.getVirtualTotal(),I=jJ(h,M.sizeCache,Q);if(I.isCompressed){let a=M.scrollController.getScrollTop();if(C===null||y<m)m=y,C=Math.round(t0(y,a,M.sizeCache,h,M.state.viewportState.containerSize,I));let F=C+M.sizeCache.getOffset(y)-M.sizeCache.getOffset(m),A=M.config.horizontal;s.style.transform=A?`translateX(${F}px)`:`translateY(${F}px)`}else{let a=Math.round(M.sizeCache.getOffset(y)),F=M.config.horizontal;s.style.transform=F?`translateX(${a}px)`:`translateY(${a}px)`}});let H=D?b.left:b.top,d=D?b.right:b.bottom,t=M.getItemToScrollIndexFn();M.methods.set("_scrollItemIntoView",(s)=>{let y=M.getCachedCompression(),h=M.state.viewportState.containerSize,I=M.state.viewportState.scrollPosition,a=M.getVirtualTotal(),{visibleRange:F}=M.state.viewportState,A=t(s),L=VJ(A,M.sizeCache,I,h,H,d,y,a,F);if(L!==I)M.scrollController.scrollTo(L)}),v(),M.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(N!==null)cancelAnimationFrame(N),N=null;if(_!==null)cancelAnimationFrame(_),_=null})}}};var w1=(J={})=>{let{chunkSize:Q=100,maxCachedItems:j=5000,evictionBuffer:q=200,onEvict:U}=J,X=new Map,K=0,N=0,B=(F)=>{let A=X.get(F);if(!A)A={items:Array(Q),count:0,lastAccess:Date.now()},X.set(F,A);else A.lastAccess=Date.now();return A},Z=(F)=>{return Math.floor(F/Q)},_=(F)=>{return F%Q},T=()=>K,M=(F)=>{K=F},$=(F)=>{if(F<0||F>=K)return;let A=Z(F),L=X.get(A);if(!L)return;return L.items[_(F)]},S=(F)=>{if(F<0||F>=K)return!1;let A=Z(F),L=X.get(A);if(!L)return!1;return L.items[_(F)]!==void 0},k=(F,A)=>{let L=Z(F),f=B(L),o=_(F),l=f.items[o]===void 0;if(f.items[o]=A,l)f.count++,N++;if(F>=K)K=F+1},D=(F,A)=>{for(let L=0;L<A.length;L++){let f=A[L];if(f!==void 0)k(F+L,f)}},b=(F)=>{if(F<0||F>=K)return!1;let A=Z(F),L=X.get(A),f=_(F);if(!(L!==void 0&&L.items[f]!==void 0))return!1;let l=A,g=Array.from(X.keys()).filter((W)=>W>=l).sort((W,Y)=>W-Y),p=[];for(let W of g){let Y=X.get(W),w=W*Q;for(let G=0;G<Q;G++){if(Y.items[G]===void 0)continue;let E=w+G;if(E<=F)continue;p.push({oldIndex:E,item:Y.items[G]})}}if(L.items[f]=void 0,L.count--,N--,L.count===0)X.delete(A);for(let{oldIndex:W}of p){let Y=Z(W),w=X.get(Y);if(!w)continue;let G=_(W);if(w.items[G]!==void 0){if(w.items[G]=void 0,w.count--,N--,w.count===0)X.delete(Y)}}for(let{oldIndex:W,item:Y}of p){let w=W-1,G=Z(w),E=B(G),V=_(w);E.items[V]=Y,E.count++,N++}return K--,!0},z=(F,A)=>{let L=[];for(let f=F;f<=A&&f<K;f++)L.push($(f));return L},v=(F,A)=>{for(let L=F;L<=A&&L<K;L++)if(!S(L))return!1;return!0},r=()=>{let F=[],A=null,L=Array.from(X.keys()).sort((f,o)=>f-o);for(let f of L){let o=X.get(f);if(!o)continue;let l=f*Q;for(let g=0;g<Q;g++){let p=l+g;if(p>=K)break;if(o.items[g]!==void 0)if(A===null)A={start:p,end:p};else if(p===A.end+1)A.end=p;else F.push(A),A={start:p,end:p};else if(A!==null)F.push(A),A=null}}if(A!==null)F.push(A);return F},C=(F,A)=>{let L=[],f=null;for(let o=F;o<=A&&o<K;o++)if(!S(o))if(f===null)f={start:o,end:o};else f.end=o;else if(f!==null)L.push(f),f=null;if(f!==null)L.push(f);return L},m=(F)=>{return X.has(F)},H=(F)=>{let A=X.get(F);if(A)A.lastAccess=Date.now()},d=(F,A)=>{if(F>A||X.size===0)return;let L=Date.now(),f=Z(Math.max(0,F)),o=Z(Math.min(K-1,A));for(let l=f;l<=o;l++){let g=X.get(l);if(g)g.lastAccess=L}},t=(F,A)=>{if(N<=j)return 0;let L=Math.max(0,F-q),f=Math.min(K-1,A+q),o=Z(L),l=Z(f),g=0,p=[];for(let[W,Y]of X)if(W<o||W>l)g+=Y.count,p.push(W),N-=Y.count,X.delete(W);if(g>0&&U)U(g,p);return g},s=()=>{if(N<=j)return 0;let F=Array.from(X.entries()).sort(([,f],[,o])=>f.lastAccess-o.lastAccess),A=0,L=[];for(let[f,o]of F){if(N<=j)break;A+=o.count,N-=o.count,L.push(f),X.delete(f)}if(A>0&&U)U(A,L);return A},y=()=>{return{totalItems:K,cachedItems:N,cachedChunks:X.size,chunkSize:Q,maxCachedItems:j,memoryEfficiency:K>0?1-N/K:1}},h=()=>N,I=()=>{X.clear(),N=0};return{chunkSize:Q,maxCachedItems:j,getTotal:T,setTotal:M,get:$,has:S,set:k,setRange:D,delete:b,getRange:z,isRangeLoaded:v,getLoadedRanges:r,findUnloadedRanges:C,getChunkIndex:Z,isChunkLoaded:m,touchChunk:H,touchChunksForRange:d,evictDistant:t,evictToLimit:s,getStats:y,getCachedCount:h,clear:I,reset:()=>{I(),K=0}}},O4=(J)=>{if(J.length===0)return[];let Q=[...J].sort((q,U)=>q.start-U.start),j=[{...Q[0]}];for(let q=1;q<Q.length;q++){let U=Q[q],X=j[j.length-1];if(U.start<=X.end+1)X.end=Math.max(X.end,U.end);else j.push({...U})}return j},z1=(J,Q,j)=>{let q=Math.floor(J.start/j)*j,U=Math.ceil((J.end+1)/j)*j-1,X={start:q,end:U};if(Q.length===0)return[X];let K=[],N=O4(Q),B=X.start;for(let Z of N){if(Z.end<B)continue;if(Z.start>X.end)break;if(Z.start>B)K.push({start:B,end:Math.min(Z.start-1,X.end)});if(B=Z.end+1,B>X.end)break}if(B<=X.end)K.push({start:B,end:X.end});return K};var C1=(J={})=>{let{maskCharacter:Q=L1,maxSampleSize:j=F1}=J,q=[],U=!1,X=(_)=>{if(U||_.length===0)return;let T=Math.min(_.length,j);for(let M=0;M<T;M++){let $=_[M];if(!$||typeof $!=="object")continue;let S={};for(let[k,D]of Object.entries($)){if(k.startsWith("_")||k==="id")continue;S[k]=String(D??"").length}if(Object.keys(S).length>0)q.push(S)}U=!0},K=()=>U,N=(_)=>{let T={id:`${f0}${_}`,[HJ]:!0,_index:_};if(q.length===0)return T.label=Q.repeat(12),T;let M=q[_%q.length];for(let[$,S]of Object.entries(M))T[$]=Q.repeat(Math.max(1,S));return T};return{analyzeStructure:X,hasAnalyzedStructure:K,generate:N,generateRange:(_,T)=>{let M=[];for(let $=_;$<=T;$++)M.push(N($));return M},clear:()=>{q=[],U=!1}}},GJ=(J)=>{if(!J||typeof J!=="object")return!1;return J[HJ]===!0};var A4=50,v1=(J={})=>{let{adapter:Q,initialItems:j,initialTotal:q,storage:U,placeholder:X,pageSize:K=A4,onStateChange:N,onItemsLoaded:B,onItemsEvicted:Z}=J,_=w1({...U,onEvict:(i,Q0)=>{Z?.(i),d()}}),T=null,M=()=>{if(!T)T=C1(X);return T},$=new Map,S=!1,k,D=!0,b,z,v=[],r=0,C=new Map,m=new Map,H=()=>{for(let i of m.values())i.abort();m.clear(),C.clear()},d=()=>{N?.(L())},t=()=>{$.clear();let i=_.getLoadedRanges();for(let Q0 of i)for(let j0=Q0.start;j0<=Q0.end;j0++){let W0=_.get(j0);if(W0&&!GJ(W0))$.set(W0.id,j0)}},s=(i,Q0)=>{if(!GJ(Q0))$.set(Q0.id,i)},y=(i)=>{$.delete(i)},h=(i,Q0)=>{return`${i}-${Q0}`},I=()=>_.getTotal(),a=()=>_.getCachedCount(),F=()=>S,A=()=>D,L=()=>({total:_.getTotal(),cached:_.getCachedCount(),isLoading:S,pendingRanges:v,error:k,hasMore:D,cursor:b}),f=()=>_,o=()=>M(),l=(i)=>{let Q0=_.get(i);if(Q0!==void 0)return Q0;if(i>=0&&i<_.getTotal())return M().generate(i);return},g=(i)=>{let Q0=$.get(i);if(Q0===void 0)return;return _.get(Q0)},p=(i)=>{return $.get(i)??-1},W=(i)=>{let Q0=_.get(i);return Q0!==void 0&&!GJ(Q0)},Y=(i,Q0)=>{let j0=[],W0=_.getTotal(),V0=0,M0=0;_.touchChunksForRange(i,Math.min(Q0,W0-1));for(let T0=i;T0<=Q0&&T0<W0;T0++){let k0=_.get(T0);if(k0!==void 0)j0.push(k0),V0++;else j0.push(M().generate(T0)),M0++}return j0},w=(i)=>{_.setTotal(i),D=_.getCachedCount()<i,d()},G=(i,Q0=0,j0)=>{if(Q&&i.length>0){let W0=M();if(!W0.hasAnalyzedStructure())W0.analyzeStructure(i)}for(let W0=0;W0<i.length;W0++){let V0=i[W0];if(V0!==void 0){let M0=Q0+W0;_.set(M0,V0),s(M0,V0)}}if(j0!==void 0)_.setTotal(j0);else if(Q0+i.length>_.getTotal())_.setTotal(Q0+i.length);if(_.getCachedCount()>=_.getTotal()&&_.getTotal()>0)D=!1;d(),B?.(i,Q0,_.getTotal())},E=(i,Q0)=>{let j0=_.get(i);if(!j0)return!1;let W0=j0.id,V0={...j0,...Q0};if(_.set(i,V0),Q0.id!==void 0&&Q0.id!==W0)y(W0);return s(i,V0),d(),!0},V=(i)=>{let Q0=$.get(i);if(Q0===void 0)return!1;if(!_.delete(Q0))return!1;return t(),H(),d(),!0},P=async(i,Q0)=>{if(!Q)return;let j0=h(i,Q0);if(C.has(j0))return;let W0=_.getLoadedRanges(),V0=z1({start:i,end:Q0},W0,_.chunkSize);if(V0.length===0)return;let M0=_.chunkSize,T0=M0*2;for(let[A0,N0]of m){let O0=A0.indexOf("-"),G0=parseInt(A0.slice(0,O0),10);if(Math.abs(G0-i)>T0)N0.abort(),m.delete(A0),C.delete(A0)}let k0=[];for(let A0 of V0){let N0=Math.floor(A0.start/M0),O0=Math.floor(A0.end/M0);for(let G0=N0;G0<=O0;G0++){let _0=G0*M0,b0=_0+M0-1,H0=h(_0,b0);if(!k0.some((x)=>x.start===_0)&&!C.has(H0))k0.push({start:_0,end:b0})}}let B0=[];for(let A0 of V0){let N0=Math.floor(A0.start/M0),O0=Math.floor(A0.end/M0);for(let G0=N0;G0<=O0;G0++){let _0=G0*M0,b0=_0+M0-1,H0=h(_0,b0);if(C.has(H0)){let x=C.get(H0);if(!B0.includes(x))B0.push(x)}}}for(let A0 of k0){let N0=h(A0.start,A0.end),O0=new AbortController;m.set(N0,O0);let G0=(async()=>{v.push(A0),S=!0,k=void 0,d();try{let _0=A0.end-A0.start+1,b0={offset:A0.start,limit:_0,cursor:A0.start===z?b:void 0,signal:O0.signal},H0=await Q.read(b0);if(G(H0.items,A0.start,H0.total),H0.cursor)b=H0.cursor,z=A0.start+H0.items.length;let x=A0.start+H0.items.length;if(x>=r){if(r=x,H0.hasMore!==void 0)D=H0.hasMore;else if(H0.total!==void 0)D=x<H0.total}}catch(_0){if(_0?.name==="AbortError")return;k=_0 instanceof Error?_0:Error(String(_0))}finally{C.delete(N0),m.delete(N0),v=v.filter((_0)=>_0.start!==A0.start||_0.end!==A0.end),S=C.size>0,d()}})();C.set(N0,G0),B0.push(G0)}await Promise.all(B0)},O=async(i,Q0)=>{if(_.isRangeLoaded(i,Q0))return;await P(i,Q0)},R=async()=>{if(!Q)return;await P(0,K-1)},u=async()=>{if(!Q||S||!D)return!1;let i=_.getCachedCount(),Q0=_.getTotal(),j0=i,W0=Math.min(j0+K-1,Q0>0?Q0-1:j0+K-1);if(j0>=Q0&&Q0>0)return D=!1,!1;return await P(j0,W0),_.getCachedCount()>i},n=async()=>{if(_.clear(),_.setTotal(0),$.clear(),T)T.clear();H(),v=[],S=!1,b=void 0,z=void 0,D=!0,r=0,k=void 0,d()},J0=(i,Q0)=>{if(_.evictDistant(i,Q0)>0)t()},e=()=>{_.clear(),$.clear(),b=void 0,z=void 0,k=void 0,v=[],S=!1,d()},K0=()=>{if(_.reset(),$.clear(),T)T.clear();b=void 0,z=void 0,D=!0,r=0,k=void 0,v=[],S=!1,d()};if(j&&j.length>0)G(j,0,q??j.length);else if(q!==void 0)_.setTotal(q),d();return{getState:L,getTotal:I,getCached:a,getIsLoading:F,getHasMore:A,getStorage:f,getPlaceholders:o,getItem:l,getItemById:g,getIndexById:p,isItemLoaded:W,getItemsInRange:Y,setTotal:w,setItems:G,updateItem:E,removeItem:V,loadRange:P,ensureRange:O,loadInitial:R,loadMore:u,reload:n,evictDistant:J0,clear:e,reset:K0}};var SJ=(J)=>{let{adapter:Q,loading:j,storage:q,total:U,autoLoad:X=!0}=J,K=j?.cancelThreshold??A1,N=j?.preloadThreshold??E1,B=j?.preloadAhead??O1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(Z){let{emitter:_}=Z,T=Z.config.reverse,M=Z.methods.get("_getGridLayout"),$=(y)=>{if(M){let h=M();if(h){let I=Z.dataManager.getTotal();return h.getItemRange(y.start,y.end,I)}}return y},S=v1({adapter:Q,...U!==void 0&&{initialTotal:U},pageSize:q?.chunkSize??a0,...q&&{storage:{...q.chunkSize!==void 0&&{chunkSize:q.chunkSize},...q.maxCachedItems!==void 0&&{maxCachedItems:q.maxCachedItems}}},onStateChange:()=>{if(Z.state.isInitialized){let y=Z.getVirtualTotal();Z.sizeCache.rebuild(y),Z.updateCompressionMode();let h=Z.getCachedCompression();Z.state.viewportState.totalSize=h.virtualSize,Z.state.viewportState.actualSize=h.actualSize,Z.state.viewportState.isCompressed=h.isCompressed,Z.state.viewportState.compressionRatio=h.ratio,Z.updateContentSize(h.virtualSize),Z.renderIfNeeded()}},onItemsLoaded:(y,h,I)=>{if(Z.state.isInitialized)Z.forceRender(),_.emit("load:end",{items:y,total:I,offset:h})}});Z.replaceDataManager(S);let k=null,D=null,b=0,z=!1,v=null,r=120,C=(y=!1)=>{if(z=!1,D=null,y)k=null;if(v!==null)clearTimeout(v),v=null},m=()=>{if(!D)return;D=null;let{renderRange:y}=Z.state.viewportState;if(y.end<y.start)return;k=null;let h=$(y);Z.dataManager.ensureRange(h.start,h.end).catch((I)=>{_.emit("error",{error:I,context:"ensureRange"})})};Z.afterScroll.push((y,h)=>{if(Z.state.isDestroyed)return;let I=Z.scrollController.getVelocity(),F=Z.scrollController.isTracking()&&I<=K;if(b>K&&I<=K)z=!0;else if(z&&I>K)C();if(z&&I<0.5)C(!0);if(b=I,(Z.scrollController.isAtTop()||Z.scrollController.isAtBottom())&&(z||D))C(!0),F=!0;let L=z&&I>0.5;if(F&&!Z.dataManager.getIsLoading()&&Z.dataManager.getHasMore()){if(T){if(y<TJ)_.emit("load:start",{offset:Z.dataManager.getCached(),limit:a0}),Z.dataManager.loadMore().catch((l)=>{_.emit("error",{error:l,context:"loadMore"})})}else if(Z.state.viewportState.totalSize-y-Z.state.viewportState.containerSize<TJ)_.emit("load:start",{offset:Z.dataManager.getCached(),limit:a0}),Z.dataManager.loadMore().catch((g)=>{_.emit("error",{error:g,context:"loadMore"})})}let{renderRange:f}=Z.state.viewportState;if(!k||f.start!==k.start||f.end!==k.end){if(k={start:f.start,end:f.end},F&&!L){if(D=null,v!==null)clearTimeout(v),v=null;let l=$(f),g=l.start,p=l.end,W=M?Z.dataManager.getTotal():Z.getVirtualTotal();if(I>N)if(h==="down")p=Math.min(l.end+B,W-1);else g=Math.max(l.start-B,0);Z.dataManager.ensureRange(g,p).catch((Y)=>{_.emit("error",{error:Y,context:"ensureRange"})})}else if(D={start:f.start,end:f.end},L){if(v!==null)clearTimeout(v);v=setTimeout(()=>{v=null,m(),C()},r)}}});let H=200,d=null;Z.afterScroll.push((y,h)=>{if(d!==null)clearTimeout(d);d=setTimeout(()=>{d=null,m(),C()},H)}),Z.destroyHandlers.push(()=>{if(d!==null)clearTimeout(d),d=null;C()});let t=()=>{if(Z.state.isDestroyed)return;k=null;let{renderRange:y}=Z.state.viewportState;if(y.end>0){let h=$(y);Z.dataManager.ensureRange(h.start,h.end).catch((I)=>{_.emit("error",{error:I,context:"ensureRange"})})}m()};window.addEventListener("online",t),Z.destroyHandlers.push(()=>{window.removeEventListener("online",t)}),_.on("load:start",()=>{Z.dom.root.setAttribute("aria-busy","true")}),_.on("load:end",()=>{Z.dom.root.removeAttribute("aria-busy")}),Z.methods.set("loadVisibleRange",async()=>{k=null,D=null,Z.forceRender();let{renderRange:y}=Z.state.viewportState;if(y.end>0){let h=$(y);_.emit("load:start",{offset:h.start,limit:h.end-h.start+1}),await Z.dataManager.ensureRange(h.start,h.end)}}),Z.methods.set("reload",async(y)=>{k=null,D=null;let h=y?.snapshot,I=h!=null&&(h.total??0)>0&&h.index>0,a=I||y?.skipInitialLoad===!0;if(Z.invalidateRendered(),await Z.dataManager.reload(),!I)Z.scrollController.scrollTo(0);if(!a){_.emit("load:start",{offset:0,limit:a0}),await Z.dataManager.loadInitial(),Z.forceRender();let{renderRange:F}=Z.state.viewportState;if(F.end>0){let A=$(F);await Z.dataManager.ensureRange(A.start,A.end)}}if(I){let F=Z.methods.get("restoreScroll");if(F)F(h)}});let s=!1;if(Z.methods.set("_cancelAutoLoad",()=>{s=!0}),X)queueMicrotask(()=>{if(s)return;_.emit("load:start",{offset:0,limit:a0}),Z.dataManager.loadInitial().catch((y)=>{_.emit("error",{error:y,context:"loadInitial"})})});else if(U!==void 0)Z.dataManager.setTotal(U)}}};var OJ=(J)=>J==null?0:typeof J==="function"?J():J,fJ=(J)=>{let Q=null,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(q){let{dom:U,state:X,config:K,emitter:N}=q;if(U.root.style.overflow="visible",U.root.style.height="auto",K.horizontal)U.viewport.style.overflowX="visible",U.viewport.style.overflowY="visible";else U.viewport.style.overflow="visible";if(U.viewport.classList.remove(`${K.classPrefix}-viewport--custom-scrollbar`),q.disableViewportResize(),q.disableWheelHandler(),q.setScrollTarget(window),q.setScrollFns(()=>{let T=U.viewport.getBoundingClientRect();return Math.max(0,K.horizontal?-T.left:-T.top)},(T)=>{let M=U.viewport.getBoundingClientRect();if(K.horizontal){let $=M.left+window.scrollX;window.scrollTo({left:$+T,top:window.scrollY,behavior:"instant"})}else{let $=M.top+window.scrollY;window.scrollTo({left:window.scrollX,top:$+T,behavior:"instant"})}}),q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),X.viewportState.containerSize=window.innerHeight,j){let T=K.horizontal,M=q.getItemToScrollIndexFn();q.setScrollToPosFn(($,S,k,D,b)=>{let z=OJ(T?j.left:j.top),v=OJ(T?j.right:j.bottom);if(D===0)return 0;let r=Math.max(0,Math.min($,D-1)),C=S.getOffset(r),m=S.getSize(r),H=S.getTotalSize(),d=Math.max(0,H-k+v),t;switch(b){case"start":t=C-z;break;case"center":{let s=k-z-v;t=C-z-(s-m)/2;break}case"end":t=C-k+m+v;break}return Math.max(-z,Math.min(t,d))}),q.methods.set("_scrollItemIntoView",($)=>{let S=M($),k=T?window.innerWidth:window.innerHeight,D=OJ(T?j.left:j.top),b=OJ(T?j.right:j.bottom),z=U.viewport.getBoundingClientRect(),v=T?window.scrollX:window.scrollY,r=(T?z.left:z.top)+v,C=r-v,m=q.sizeCache.getOffset(S),H=q.sizeCache.getSize(S),d=C+m,t=d+H,s=D,y=k-b,h=v;if(d<s)h=r+m-s;else if(t>y)h=r+m+H-y;if(h!==v)if(T)window.scrollTo({left:h,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:h,behavior:"instant"})})}let{innerHeight:B,innerWidth:Z}=window,_=()=>{let{innerWidth:T,innerHeight:M}=window,$=K.horizontal?T:M,S=K.horizontal?Z:B;if(Math.abs($-S)<=1)return;B=M,Z=T,X.viewportState.containerSize=M,N.emit("resize",{width:T,height:M});for(let k=0;k<q.resizeHandlers.length;k++)q.resizeHandlers[k](T,M);q.renderIfNeeded()};window.addEventListener("resize",_,{passive:!0}),Q=()=>{window.removeEventListener("resize",_)},q.destroyHandlers.push(Q)},destroy(){if(Q)Q(),Q=null}}};var IJ=(J,Q)=>{let j=0,q=J.length-1;while(j<q){let U=j+q+1>>>1;if(J[U].headerLayoutIndex<=Q)j=U;else q=U-1}return j},S1=(J,Q)=>{let j=0,q=J.length-1;while(j<q){let U=j+q+1>>>1;if(J[U].firstDataIndex<=Q)j=U;else q=U-1}return j},f1=(J,Q)=>{if(J===0)return[];let j=[],q=Q(0),U=0,X=0;for(let K=1;K<J;K++){let N=Q(K);if(N!==q){let B=K-U;j.push({key:q,groupIndex:j.length,headerLayoutIndex:X,firstDataIndex:U,count:B}),X=X+1+B,q=N,U=K}}return j.push({key:q,groupIndex:j.length,headerLayoutIndex:X,firstDataIndex:U,count:J-U}),j},hJ=(J,Q)=>{if(J.length===0||Q.length===0)return[];let j=J.length+Q.length,q=Array(j),U=0;for(let X of Q){q[U]={id:`__group_header_${X.groupIndex}`,__groupHeader:!0,groupKey:X.key,groupIndex:X.groupIndex},U++;for(let K=0;K<X.count;K++)q[U]=J[X.firstDataIndex+K],U++}return q},pJ=(J,Q,j=!1)=>{let q=typeof Q==="number"?(U)=>Q:Q;return(U)=>{let X=J.getEntry(U);if(X.type==="header"){if(j&&X.group.groupIndex===0)return 0;return J.getHeaderHeight(X.group.groupIndex)}return q(X.dataIndex)}},I1=(J,Q)=>{let j=f1(J,Q.getGroupForIndex),q=J+j.length,U=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return q},get groupCount(){return j.length},get groups(){return j},getEntry:(M)=>{if(j.length===0)return{type:"item",dataIndex:M,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let $=IJ(j,M),S=j[$];if(M===S.headerLayoutIndex)return{type:"header",group:S};let k=M-S.headerLayoutIndex-1;return{type:"item",dataIndex:S.firstDataIndex+k,group:S}},layoutToDataIndex:(M)=>{if(j.length===0)return M;let $=IJ(j,M),S=j[$];if(M===S.headerLayoutIndex)return-1;let k=M-S.headerLayoutIndex-1;return S.firstDataIndex+k},dataToLayoutIndex:(M)=>{if(j.length===0)return M;let $=S1(j,M),S=j[$],k=M-S.firstDataIndex;return S.headerLayoutIndex+1+k},getGroupAtLayoutIndex:(M)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let $=IJ(j,M);return j[$]},getGroupAtDataIndex:(M)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let $=S1(j,M);return j[$]},getHeaderHeight:typeof U==="number"?(M)=>U:(M)=>{let $=j[M];if(!$)return 0;return U($.key,M)},rebuild:(M)=>{j=f1(M,Q.getGroupForIndex),q=M+j.length}}};var h1=(J,Q,j,q,U,X=!1,K=0)=>{let N=X?"width":"height",B=X?"height":"width",Z=X?"X":"Y",_=(Y,w)=>{Y.style[N]=`${w}px`},T=document.createElement("div");T.className=`${U}-sticky-header`,T.setAttribute("role","presentation"),T.setAttribute("aria-hidden","true"),T.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(X?`top:0;bottom:0;left:${K||0}px`:`top:${K||0}px`);let M=()=>{let Y=document.createElement("div");return Y.className="sticky-group",Y.style.position="absolute",Y.style.willChange="transform",Y.style[B]="100%",Y},$=M(),S=M();T.append($,S),J.insertBefore(T,J.firstChild);let k=$,D=S,b=Q.groups,z=[],v=[],r=0,C=()=>{b=Q.groups,r=b.length,z=Array(r),v=Array(r);for(let Y=0;Y<r;Y++)z[Y]=j.getOffset(b[Y].headerLayoutIndex),v[Y]=Q.getHeaderHeight(Y)};C();let m=-1,H=0,d=-1,t=!1,s=0,y=!1,h=(Y,w)=>{q(Y,w);let G=v[w];return _(Y,G),G},I=(Y)=>{Y.replaceChildren(),Y.style.transform=""},a=(Y)=>{if(Y===m)return;if(m=Y,H=0,Y<0||Y>=r){I(k);return}H=h(k,Y),_(T,H),k.style.transform=""},F=(Y)=>{if(Y===s)return;s=Y;let w=Math.round(Y);k.style.transform=`translate${Z}(${w}px)`,D.style.transform=`translate${Z}(${w+H}px)`},A=()=>{s=0,k.style.transform="",D.style.transform=""},L=()=>{if(!y)return;let Y=k;k=D,D=Y,m=d,H=m>=0?v[m]:0,_(T,H),I(D),d=-1,y=!1,A()},f=()=>{if(!y)return;I(D),d=-1,y=!1,A()},o=()=>{if(t)return;t=!0,T.style.display=""},l=()=>{if(!t)return;t=!1,T.style.display="none",I(k),m=-1,H=0,f()},g=(Y)=>{if(r===0){l();return}if(Y<z[0]){l();return}let w=0,G=r-1;while(w<G){let V=w+G+1>>>1;if(z[V]+v[V]<=Y)w=V;else G=V-1}if(!t)o();a(w);let E=w+1;if(E<r){let V=z[E]-Y;if(V<=0&&V>-H){if(d!==E||!y)d=E,h(D,E),y=!0;F(V)}else if(V<=-H){if(y)L()}else if(y)f()}else if(y)f()},p=()=>{C();let Y=m;if(m=-1,H=0,Y>=0)a(Y)},W=()=>{T.remove(),m=-1,H=0,d=-1,t=!1,y=!1};return T.style.display="none",{update:g,refresh:p,show:o,hide:l,destroy:W}};var p0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var p1=(J,Q,j,q,U,X)=>{if(q===0)return 0;let K=Math.max(0,Math.min(J,q-1)),N=Q.getOffset(K),B=Q.getSize(K),Z=Q.getTotalSize(),_=Math.max(0,Z-j),T;switch(X){case"center":T=N-j/2+B/2;break;case"end":T=N-j+B;break;case"start":default:T=N;break}return Math.max(0,Math.min(T,_))};var XJ=(J,Q,j,q,U="start",X,K=p1)=>{return K(J,Q,j,q,X,U)};var E4=(J,Q)=>{if(J.header){let j=Q?J.header.width??J.header.height:J.header.height??J.header.width;return{...J,header:{...J.header,height:j}}}if(J.headerHeight!=null&&J.headerTemplate)return{...J,header:{height:J.headerHeight,template:J.headerTemplate}};return J},uJ=(J)=>{let Q=J.header,j=Q?Q.height??Q.width:J.headerHeight,q=Q?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(j==null||j<=0)throw Error("[vlist/builder] withGroups: header.height must be a positive number");if(!q)throw Error("[vlist/builder] withGroups: header.template is required");let U=null,X=null,K=[],N=[];return{name:"withGroups",priority:10,setup(B){let{dom:Z,config:_,rawConfig:T}=B,{classPrefix:M}=_,$=E4(J,_.horizontal),k=T.item.height;K=T.items?[...T.items]:[];let D=K.length,b={getGroupForIndex:$.getGroupForIndex,header:{height:$.header.height,template:$.header.template},sticky:$.sticky??!1};U=I1(D,b),N=hJ(K,U.groups);let z=$.sticky!==!1,v=pJ(U,k,z);B.setSizeConfig(v),B.rebuildSizeCache(N.length),B.dataManager.setItems(N,0,N.length);let r=T.item.template,{template:C}=$.header,m=(l,g,p)=>{if(p0(l))return C(l.groupKey,l.groupIndex);return r(l,g,p)},H=B.methods.get("_getGridLayout"),d=B.methods.get("_replaceGridRenderer"),t=B.methods.get("_updateGridLayoutForGroups"),s=B.methods.get("_createGridRenderer"),y=B.methods.get("_getTableLayout"),h=B.methods.get("_updateTableForGroups"),I=B.methods.get("_getTableHeaderHeight");if(H&&d&&s){if(t)t((p)=>{let W=N[p];return!!(W&&p0(W))});let l=H(),g=s(Z.items,m,B.sizeCache,l,M,B.getContainerWidth(),()=>B.dataManager.getTotal(),_.ariaIdPrefix);d(g)}else if(y&&h)h((l)=>p0(l),$.header.template);else B.replaceTemplate(m);let a=I?I():0;if(Z.root.classList.add(`${M}--grouped`),$.sticky!==!1)if(B.methods.set("_getStickyHeaderHeight",()=>$.header.height),!_.horizontal)Z.viewport.style.height=`calc(100% - ${$.header.height}px)`;else Z.viewport.style.width=`calc(100% - ${$.header.height}px)`;if($.sticky!==!1){let l=$.header.template,g=(W,Y)=>{let w=U.groups[Y];if(!w)return;let G=l(w.key,w.groupIndex);if(typeof G==="string")W.innerHTML=G;else W.replaceChildren(G)};X=h1(Z.root,U,B.sizeCache,g,M,_.horizontal,a);let p=X;B.afterScroll.push((W,Y)=>{p.update(W)}),X.update(B.scrollController.getScrollTop())}let F=T.item?.striped,A=()=>{if(F!=="data"&&F!=="even"&&F!=="odd")return;let l=new Int32Array(N.length),g=F==="odd"?1:0,p=0;for(let W=0;W<N.length;W++)if(p0(N[W])){if(l[W]=-1,F==="even"||F==="odd")p=0}else l[W]=p+++g;B.setStripeIndexFn((W)=>{if(W<0||W>=l.length)return W;return l[W]})};A();let L=()=>{if(!U)return;U.rebuild(K.length),N=hJ(K,U.groups);let l=pJ(U,k,z);if(B.setSizeConfig(l),B.rebuildSizeCache(N.length),B.dataManager.setItems(N,0,N.length),A(),X)X.refresh()};B.methods.set("setItems",(l)=>{K=l.slice(),L()}),B.methods.set("appendItems",(l)=>{K.push(...l),L()}),B.methods.set("prependItems",(l)=>{K.unshift(...l),L()}),B.methods.set("removeItem",(l)=>{K=K.filter((g)=>g.id!==l),L()});let{animateScroll:f,cancelScroll:o}=i0(B.scrollController,B.renderIfNeeded);B.methods.set("scrollToIndex",(l,g)=>{let p=U.dataToLayoutIndex(l),{align:W,behavior:Y,duration:w}=h0(g),G=B.dataManager.getTotal(),E=B.adjustScrollPosition(XJ(p,B.sizeCache,B.state.viewportState.containerSize,G,W,B.getCachedCompression()));if(Y==="smooth")f(B.scrollController.getScrollTop(),E,w);else o(),B.scrollController.scrollTo(E)}),B.methods.set("_getItems",()=>K),B.methods.set("_getTotal",()=>K.length),B.methods.set("_isGroupHeader",(l)=>{let g=N[l];return!!(g&&p0(g))}),B.destroyHandlers.push(()=>{if(o(),X)X.destroy(),X=null;Z.root.classList.remove(`${M}--grouped`)})},destroy(){if(X)X.destroy(),X=null}}};var u1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,q=J.isHeaderFn,U={row:0,col:0},X=(S)=>{if(S<=0)return 0;if(!q)return Math.ceil(S/Q);let k=0,D=0,b=0;for(let z=0;z<S;z++)if(q(z)){if(b++,D>0)k++,D=0;k++,D=0}else if(D++,D>=Q)k++,D=0;if(D>0)k++;return k},K=(S)=>{return U.row=N(S),U.col=B(S),U},N=(S)=>{if(!q)return Math.floor(S/Q);let k=0,D=0;for(let b=0;b<=S;b++)if(q(b)){if(D>0)k++,D=0;if(b===S)return k;k++,D=0}else{if(b===S)return k;if(D++,D>=Q)k++,D=0}return console.warn(`⚠️ getRow(${S}) fell through - returning ${k}`),k},B=(S)=>{if(!q)return S%Q;if(q(S))return 0;let k=0;for(let D=0;D<=S;D++)if(q(D))k=0;else{if(D===S)return k;if(k++,k>=Q)k=0}return k},Z=(S,k,D)=>{if(D<=0)return{start:0,end:-1};if(!q){let C=Math.max(0,S*Q),m=Math.min(D-1,(k+1)*Q-1);return{start:C,end:m}}let b=-1,z=-1,v=0,r=0;for(let C=0;C<D;C++){if(q(C)){if(r>0)v++,r=0;if(v>=S&&v<=k){if(b===-1)b=C;z=C}v++,r=0}else{if(v>=S&&v<=k){if(b===-1)b=C;z=C}if(r++,r>=Q)v++,r=0}if(v>k&&r===0)break}if(b===-1)return{start:0,end:-1};return{start:b,end:z}},_=(S,k,D)=>{if(k<0||k>=Q)return-1;let b=S*Q+k;if(b<0||b>=D)return-1;return b},T=(S)=>{let k=(Q-1)*j;return Math.max(0,(S-k)/Q)};return{get columns(){return Q},get gap(){return j},update:(S)=>{if(S.columns!==void 0)Q=Math.max(1,Math.floor(S.columns));if(S.gap!==void 0)j=S.gap;if(S.isHeaderFn!==void 0)q=S.isHeaderFn},getTotalRows:X,getPosition:K,getRow:N,getCol:B,getItemRange:Z,getItemIndex:_,getColumnWidth:T,getColumnOffset:(S,k)=>{let D=T(k);return S*(D+j)}}};var L4=(J=200)=>{let Q=[];return{acquire:()=>{let X=Q.pop();if(X)return X;let K=document.createElement("div");return K.setAttribute("role","option"),K},release:(X)=>{if(X.remove(),Q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),X.removeAttribute("data-row"),X.removeAttribute("data-col"),Q.push(X)},clear:()=>{Q.length=0}}},F4=1,gJ=(J,Q,j,q,U,X,K,N,B=!1)=>{let Z=L4(),_=new Map,T=X,M=!1,$=0,S="",k=-1,D={selected:!1,focused:!1},b=(W,Y)=>{return D.selected=W,D.focused=Y,D},z=`${U}-item ${U}-grid-item`,v=`${U}-item--selected`,r=`${U}-item--focused`,C=`${U}-item--placeholder`,m=`${U}-item--replaced`,H=(W,Y)=>{if(typeof Y==="string")W.innerHTML=Y;else W.replaceChildren(Y)},d=(W,Y,w)=>{W.classList.toggle(v,Y),W.classList.toggle(r,w)},t=(W,Y)=>{let w=q.getRow(W);if(Y?.compression?.isCompressed)return t0(w,Y.scrollPosition,j,Y.totalItems,Y.containerSize,Y.compression,Y.rangeStart);return j.getOffset(w)},s=(W,Y)=>{let w=M&&q.getCol(W)===0,G=w?0:q.getCol(W),E=w?0:q.getColumnOffset(G,T),V;if(M){let P=q.getRow(W),O=0,R=new Set;for(let u=0;u<W;u++){let n=q.getRow(u);if(n<P&&!R.has(n)){let J0=j.getSize(u);O+=J0,R.add(n)}}V=O}else V=t(W,Y);if(B)return`translate(${Math.round(V)}px, ${Math.round(E)}px)`;return`translate(${Math.round(E)}px, ${Math.round(V)}px)`},y=(W,Y)=>{W.style.transform=Y},h=(W,Y)=>{let w=W.dataset.id?.startsWith("__group_header"),G=w?T:q.getColumnWidth(T),E;if(M||w)E=j.getSize(Y)-q.gap;else{let V=q.getRow(Y);E=j.getSize(V)-q.gap}if(B)W.style.width=`${E}px`,W.style.height=`${G}px`;else W.style.width=`${G}px`,W.style.height=`${E}px`},I=(W,Y,w,G,E)=>{let V=Z.acquire(),P=b(w,G);if(V.className=z,V.dataset.index=String(W),V.dataset.id=String(Y.id),V.dataset.row=String(q.getRow(W)),V.dataset.col=String(q.getCol(W)),V.ariaSelected=String(w),N)V.id=`${N}-item-${W}`;if(K){let u=K();if(u!==k)k=u,S=String(u);V.setAttribute("aria-setsize",S),V.setAttribute("aria-posinset",String(W+1))}h(V,W);let O=Q(Y,W,P);if(H(V,O),String(Y.id).startsWith(f0))V.classList.add(C);return d(V,w,G),y(V,E),{element:V,lastItemId:Y.id,lastSelected:w,lastFocused:G,lastTransform:E,lastSeenFrame:$}},a=(W,Y,w,G,E)=>{if($++,Y.start===0&&W.length>0)M=p0(W[0]);for(let[O,R]of _)if(O>=Y.start&&O<=Y.end)R.lastSeenFrame=$;else if($-R.lastSeenFrame>F4)Z.release(R.element),_.delete(O);let V=!1;if(K){let O=K();if(O!==k)k=O,S=String(O),V=!0}let P=null;for(let O=Y.start;O<=Y.end;O++){let R=O-Y.start,u=W[R];if(!u){console.warn(`⚠️ RENDER: Missing item at index ${O} (range: ${Y.start}-${Y.end}, items.length: ${W.length})`);continue}let n=w.has(u.id),J0=O===G,e=_.get(O);if(e){let K0=e.lastItemId!==u.id,i=e.lastSelected!==n,Q0=e.lastFocused!==J0;if(K0){let W0=String(e.lastItemId),V0=String(u.id),M0=W0.startsWith(f0),T0=V0.startsWith(f0);if(!T0&&I0(w,O,u.id))n=!0;let k0=b(n,J0),B0=Q(u,O,k0);if(H(e.element,B0),e.element.dataset.id=V0,e.element.dataset.row=String(q.getRow(O)),e.element.dataset.col=String(q.getCol(O)),h(e.element,O),e.element.classList.toggle(C,T0),M0&&!T0)e.element.classList.add(m),setTimeout(()=>e.element.classList.remove(m),300);e.lastItemId=u.id}if(K0||i||Q0)d(e.element,n,J0),e.element.ariaSelected=String(n),e.lastSelected=n,e.lastFocused=J0;let j0=s(O,E);if(e.lastTransform!==j0)y(e.element,j0),e.lastTransform=j0;if(V)e.element.setAttribute("aria-setsize",S)}else{if(I0(w,O,u.id))n=!0;let K0=s(O,E),i=I(O,u,n,J0,K0);if(!P)P=document.createDocumentFragment();P.appendChild(i.element),_.set(O,i)}}if(P)J.appendChild(P)},F=(W)=>{for(let[Y,w]of _){let G=s(Y,W);if(w.lastTransform!==G)y(w.element,G),w.lastTransform=G}},A=(W,Y,w,G)=>{let E=_.get(W);if(!E)return;let V=b(w,G),P=Q(Y,W,V);H(E.element,P),d(E.element,w,G),E.element.dataset.id=String(Y.id),E.element.ariaSelected=String(w),h(E.element,W),E.lastItemId=Y.id,E.lastSelected=w,E.lastFocused=G},L=(W,Y,w)=>{let G=_.get(W);if(!G)return;let E=G.lastSelected!==Y,V=G.lastFocused!==w;if(E||V)d(G.element,Y,w),G.lastSelected=Y,G.lastFocused=w},f=(W)=>{return _.get(W)?.element},o=(W)=>{if(Math.abs(W-T)<1)return;T=W;for(let[Y,w]of _){h(w.element,Y);let G=s(Y);y(w.element,G),w.lastTransform=G}},l=()=>{r0(J,_.keys(),(W)=>_.get(W)?.element)},g=()=>{for(let[,W]of _)Z.release(W.element);_.clear()};return{render:a,updatePositions:F,updateItem:A,updateItemClasses:L,getElement:f,sortDOM:l,updateContainerWidth:o,clear:g,destroy:()=>{g(),Z.clear()}}};var T4=new Set,mJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let Q=null,j=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(q){let{dom:U,emitter:X,config:K,rawConfig:N}=q,{classPrefix:B}=K;if(K.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let Z=K.horizontal,_=WJ(v0(N.padding),Z),T=()=>{return(Z?U.viewport.clientHeight:q.getContainerWidth())-_},M=N.items?.some((g)=>g.__groupHeader===!0),$={columns:J.columns,gap:J.gap??0};if(M)$.isHeaderFn=(g)=>{let p=q.dataManager.getItem(g);return!!(p&&p.__groupHeader===!0)};Q=u1($);let S=Q.gap;q.setVirtualTotalFn(()=>{let g=q.dataManager.getTotal();return Q.getTotalRows(g)}),q.setItemToScrollIndexFn((g)=>Math.floor(g/$.columns)),q.methods.set("_getNavTotal",()=>q.dataManager.getTotal()),q.methods.set("_getNavDelta",()=>Z?{ud:1,lr:$.columns,cols:$.columns}:{ud:$.columns,lr:1,cols:$.columns});let k=N.item,D=K.horizontal?k.width:k.height,b={containerWidth:T(),columns:Q.columns,gap:Q.gap},z={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof D==="function")q.setSizeConfig((g)=>{let p=b.containerWidth-2,W=(b.columns-1)*b.gap;return z.containerWidth=b.containerWidth,z.columns=b.columns,z.gap=b.gap,z.columnWidth=(p-W)/b.columns,z.row=Q.getRow(g),z.column=Q.getCol(g),z.totalRows=Q.getTotalRows(q.dataManager.getTotal()),z.totalColumns=b.columns,D(g,z)+b.gap});else if(S>0)q.setSizeConfig(D+S);if(q.rebuildSizeCache(),S>0){let g=q.sizeCache.getTotalSize;q.sizeCache.getTotalSize=()=>{let p=g();return p>0?p-b.gap:0}}U.root.classList.add(`${B}--grid`);let v=T(),r=N.item.template,C=()=>{j=gJ(U.items,r,q.sizeCache,Q,B,v,()=>q.dataManager.getTotal(),K.ariaIdPrefix,K.horizontal),q.replaceRenderer(j)};C(),q.setUpdateItemClassesFn((g,p,W)=>{j?.updateItemClasses(g,p,W)}),q.methods.set("_updateRenderedItem",(g,p,W,Y)=>{j?.updateItem(g,p,W,Y)}),q.methods.set("_getGridLayout",()=>Q),q.methods.set("_getGridConfig",()=>$),q.methods.set("_replaceGridRenderer",(g)=>{j=g}),q.methods.set("_createGridRenderer",gJ),q.methods.set("_updateGridLayoutForGroups",(g)=>{Q.update({isHeaderFn:g});let p=q.dataManager.getTotal(),W=0;for(let Y=0;Y<p;Y++)if(Q.getCol(Y)===0){let w=q.sizeCache.getSize(Y);W+=w}q.sizeCache.getTotalSize=()=>W,q.updateContentSize(W),C()}),q.methods.set("updateGrid",(g)=>{if(g.columns!==void 0){if(!Number.isInteger(g.columns)||g.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");$.columns=g.columns}if(g.gap!==void 0){if(g.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");$.gap=g.gap}if(Q)Q.update($);let p=T();if(b.containerWidth=p,b.columns=$.columns,b.gap=$.gap??0,j)j.updateContainerWidth(p);q.rebuildSizeCache(),q.updateContentSize(q.sizeCache.getTotalSize()),q.updateCompressionMode();for(let W=0;W<q.contentSizeHandlers.length;W++)q.contentSizeHandlers[W]();if(j)j.clear();q.forceRender()});let m=null,H=null,d=!1,t=()=>{if(d)return;d=!0,m=q.methods.get("_getSelectedIds")??null,H=q.methods.get("_getFocusedIndex")??null},s=-1,y=-1,h=!0,I=K.overscan,a={start:0,end:0},F={start:0,end:0},A=()=>{if(q.state.isDestroyed)return;let g=q.scrollController.getScrollTop(),p=q.state.viewportState.containerSize;if(!h&&g===s&&p===y)return;s=g,y=p,h=!1;let W=q.getVirtualTotal();q.getVisibleRange(g,p,W,a),F.start=Math.max(0,a.start-I),F.end=Math.min(W-1,a.end+I);let Y=q.state.viewportState;Y.scrollPosition=g,Y.visibleRange.start=a.start,Y.visibleRange.end=a.end,Y.renderRange.start=F.start,Y.renderRange.end=F.end;let w=q.state.lastRenderRange,G=Y.isCompressed,E=w.start!==F.start||w.end!==F.end;if(!E&&G){j.updatePositions(q.getCompressionContext());return}let V=q.dataManager.getTotal(),P=Q.getItemRange(F.start,F.end,V),O=q.dataManager.getItemsInRange(P.start,P.end),R=G?q.getCompressionContext():void 0;t();let u=m?m():T4,n=H?H():-1;if(j.render(O,P,u,n,R),E)w.start=F.start,w.end=F.end,X.emit("range:change",{range:{start:F.start,end:F.end}})},L=()=>{if(q.state.isDestroyed)return;q.state.lastRenderRange.start=-1,q.state.lastRenderRange.end=-1,h=!0,A()};q.setRenderFns(A,L);let f=typeof D==="function";q.resizeHandlers.push((g,p)=>{let W=(Z?p:g)-_;if(Math.abs(W-b.containerWidth)<1)return;if(b.containerWidth=W,j)j.updateContainerWidth(W);if(f){q.rebuildSizeCache(),q.updateContentSize(q.sizeCache.getTotalSize()),q.updateCompressionMode();for(let Y=0;Y<q.contentSizeHandlers.length;Y++)q.contentSizeHandlers[Y]();if(j)j.clear();q.forceRender()}});let{animateScroll:o,cancelScroll:l}=i0(q.scrollController,q.renderIfNeeded);if(q.methods.set("cancelScroll",l),q.methods.set("scrollToIndex",(g,p)=>{let W=Math.floor(g/J.columns),{align:Y,behavior:w,duration:G}=h0(p),E=q.dataManager.getState(),V=Q.getTotalRows(E.total),P=Math.max(0,Math.min(W,V-1)),O=q.adjustScrollPosition(XJ(P,q.sizeCache,q.state.viewportState.containerSize,V,Y,q.getCachedCompression()));if(w==="smooth")o(q.scrollController.getScrollTop(),O,G);else l(),q.scrollController.scrollTo(O)}),!q.methods.has("_getTotal"))q.methods.set("_getTotal",()=>q.dataManager.getTotal());q.idleHandlers.push(()=>{if(j)j.sortDOM()}),q.destroyHandlers.push(()=>{if(l(),j)j.destroy(),j=null;U.root.classList.remove(`${B}--grid`)})},destroy(){if(j)j.destroy(),j=null}}};var g1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,q=J.containerSize,U=0,X=[],K=()=>{let D=(Q-1)*j;U=Math.max(0,(q-D)/Q),X=Array(Q);let b=U+j;for(let z=0;z<Q;z++)X[z]=z*b};K();let N=[],B=0,Z=[],_=(D)=>{let b=0,z=D[0];for(let v=1;v<D.length;v++){let r=D[v];if(r<z)z=r,b=v}return b},T=(D,b)=>{if(D<=0)return B=0,N=[],[];let z=Array(Q).fill(0),v=Array(Q);for(let m=0;m<Q;m++)v[m]=[];let r=Array(D);for(let m=0;m<D;m++){let H=_(z),d=b(m),t=z[H];r[m]={index:m,x:X[H],y:t,lane:H,size:d,crossSize:U},v[H].push(m),z[H]=t+d+j}N=v;let C=0;for(let m=0;m<Q;m++){let H=z[m],d=H>0?H-j:0;if(d>C)C=d}return B=C,r},M=(D)=>{if(D.length===0)return B>0?B:0;if(B>0)return B;let b=Array(Q).fill(0);for(let v of D){let r=v.y+v.size,C=b[v.lane];if(r>C)b[v.lane]=r}let z=0;for(let v=0;v<Q;v++)if(b[v]>z)z=b[v];return z},$=(D,b,z)=>{if(D.length===0||z<=b)return Z.length=0,Z;if(N.length===0||N.length!==Q)return S(D,b,z);Z.length=0;for(let v=0;v<Q;v++){let r=N[v],C=r.length;if(C===0)continue;let m=0,H=C;while(m<H){let d=m+H>>>1,t=D[r[d]];if(t.y+t.size<=b)m=d+1;else H=d}for(let d=m;d<C;d++){let t=D[r[d]];if(t.y>=z)break;Z.push(t)}}return Z},S=(D,b,z)=>{let v=[];for(let r of D)if(r.y+r.size>b&&r.y<z)v.push(r);return v};return{get columns(){return Q},get gap(){return j},get containerSize(){return q},update:(D)=>{let b=!1;if(D.columns!==void 0){let z=Math.max(1,Math.floor(D.columns));if(z!==Q)Q=z,b=!0}if(D.gap!==void 0&&D.gap!==j)j=D.gap,b=!0;if(D.containerSize!==void 0&&D.containerSize!==q)q=D.containerSize,b=!0;if(b)K()},calculateLayout:T,getTotalSize:M,getVisibleItems:$}};var H4=(J=200)=>{let Q=[];return{acquire:()=>{let X=Q.pop();if(X)return X;let K=document.createElement("div");return K.setAttribute("role","option"),K},release:(X)=>{if(X.remove(),Q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),X.removeAttribute("data-lane"),Q.push(X)},clear:()=>{Q.length=0}}},k4=1,m1=(J,Q,j,q=!1,U,X)=>{let K=H4(),N=new Map,B=new Set,Z=0,_="",T=-1,M={selected:!1,focused:!1},$=(y,h)=>{return M.selected=y,M.focused=h,M},S=`${j}-item ${j}-masonry-item`,k=`${j}-item--selected`,D=`${j}-item--focused`,b=(y,h)=>{if(typeof h==="string")y.innerHTML=h;else y.replaceChildren(h)},z=(y,h,I)=>{y.classList.toggle(k,h),y.classList.toggle(D,I)},v=(y,h)=>{if(q)y.style.transform=`translate(${Math.round(h.y)}px, ${Math.round(h.x)}px)`;else y.style.transform=`translate(${Math.round(h.x)}px, ${Math.round(h.y)}px)`},r=(y,h)=>{if(q)y.style.width=`${h.size}px`,y.style.height=`${h.crossSize}px`;else y.style.width=`${h.crossSize}px`,y.style.height=`${h.size}px`},C=(y,h,I,a,F)=>{let A=K.acquire(),L=$(a,F);if(A.className=S,A.dataset.index=String(y),A.dataset.id=String(h.id),A.dataset.lane=String(I.lane),A.ariaSelected=String(a),X)A.id=`${X}-item-${y}`;if(U){let o=U();if(o!==T)T=o,_=String(o);A.setAttribute("aria-setsize",_),A.setAttribute("aria-posinset",String(y+1))}r(A,I);let f=Q(h,y,L);return b(A,f),z(A,a,F),v(A,I),{element:A,lastItemId:h.id,lastSelected:a,lastFocused:F,lastY:I.y,lastX:I.x,lastSize:I.size,lastCrossSize:I.crossSize,lastSeenFrame:Z}},m=(y,h,I,a)=>{Z++,B.clear();for(let A=0;A<h.length;A++)B.add(h[A].index);for(let[A,L]of N)if(B.has(A))L.lastSeenFrame=Z;else if(Z-L.lastSeenFrame>k4)K.release(L.element),N.delete(A);let F=null;for(let A=0;A<h.length;A++){let L=h[A],f=L.index,o=y(f);if(!o)continue;let l=I.has(o.id),g=f===a,p=N.get(f);if(p){let W=p.lastItemId!==o.id,Y=p.lastSelected!==l,w=p.lastFocused!==g,G=p.lastY!==L.y||p.lastX!==L.x,E=p.lastSize!==L.size||p.lastCrossSize!==L.crossSize;if(W){let V=$(l,g),P=Q(o,f,V);b(p.element,P),p.element.dataset.id=String(o.id),p.lastItemId=o.id}if(W||Y||w)z(p.element,l,g),p.element.ariaSelected=String(l),p.lastSelected=l,p.lastFocused=g;if(E)r(p.element,L),p.lastSize=L.size,p.lastCrossSize=L.crossSize;if(G)v(p.element,L),p.lastY=L.y,p.lastX=L.x}else{let W=C(f,o,L,l,g);if(!F)F=document.createDocumentFragment();F.appendChild(W.element),N.set(f,W)}}if(F)J.appendChild(F)},H=()=>{for(let{element:y}of N.values())K.release(y);N.clear(),J.innerHTML=""};return{render:m,getElement:(y)=>N.get(y)?.element,updateItemClasses:(y,h,I)=>{let a=N.get(y);if(!a)return;let F=a.lastSelected!==h,A=a.lastFocused!==I;if(F||A)z(a.element,h,I),a.lastSelected=h,a.lastFocused=I},sortDOM:()=>{r0(J,N.keys(),(y)=>N.get(y)?.element)},clear:H,destroy:()=>{H(),K.clear()}}};var $4=new Set,b4=100,xJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let Q=null,j=null,q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(U){let{dom:X,emitter:K,config:N,rawConfig:B}=U,Z=N.classPrefix,_=N.horizontal;if(N.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");X.root.classList.add(`${Z}--masonry`);let T=v0(B.padding),M=WJ(T,_),$=l0(T,_),S=()=>{return(_?X.viewport.clientHeight:X.viewport.clientWidth)-M},k={columns:J.columns,gap:J.gap??0,containerSize:S()};Q=g1(k);let D=B.item,b=_&&B.item.width?B.item.width:D.height,z={containerWidth:0,columns:0,gap:0,columnWidth:0},v=typeof b==="function"?(V)=>b(V,z):()=>b,r=()=>{let V=U.dataManager.getTotal(),P=Q;z.containerWidth=P.containerSize,z.columns=P.columns,z.gap=P.gap;let O=(P.columns-1)*P.gap;z.columnWidth=Math.max(0,(z.containerWidth-O)/P.columns),q=P.calculateLayout(V,v),t();let R=Q.getTotalSize(q);U.sizeCache.getTotalSize=()=>R,U.updateContentSize(R)},C=B.item.template;j=m1(X.items,C,Z,_,()=>U.dataManager.getTotal(),N.ariaIdPrefix),U.setUpdateItemClassesFn((V,P,O)=>{j?.updateItemClasses(V,P,O)});let m=[],H=new Int32Array(0),d=[],t=()=>{let V=k.columns,P=q.length;if(m=Array.from({length:V},()=>[]),H.length<P)H=new Int32Array(P);for(let O=0;O<P;O++){let R=q[O],u=m[R.lane].length;m[R.lane].push(O),H[O]=u}d=Array(V);for(let O=0;O<V;O++){let R=m[O],u=new Float64Array(R.length);for(let n=0;n<R.length;n++){let J0=q[R[n]];u[n]=J0.y+J0.size*0.5}d[O]=u}};U.methods.set("_getNavTotal",()=>U.dataManager.getTotal());let s=(V,P)=>{let O=V.length;if(O===0)return-1;if(O===1)return 0;let R=0,u=O-1;while(R<u){let n=R+u>>1;if(V[n]<P)R=n+1;else u=n}if(R>0&&Math.abs(V[R-1]-P)<=Math.abs(V[R]-P))return R-1;return R};U.methods.set("_navigate",(V,P,O)=>{let R=q[V];if(!R)return V;let u=R.lane,n=k.columns,J0=H[V],e=m[u];switch(_?P==="ArrowDown"?"ArrowRight":P==="ArrowUp"?"ArrowLeft":P==="ArrowRight"?"ArrowDown":P==="ArrowLeft"?"ArrowUp":P:P){case"ArrowDown":{if(J0+1<e.length)return e[J0+1];return V}case"ArrowUp":{if(J0>0)return e[J0-1];return V}case"ArrowRight":{if(u>=n-1)return V;let i=u+1,Q0=R.y+R.size*0.5,j0=m[i];if(j0.length===0)return V;let W0=s(d[i],Q0);return W0>=0?j0[W0]:V}case"ArrowLeft":{if(u<=0)return V;let i=u-1,Q0=R.y+R.size*0.5,j0=m[i];if(j0.length===0)return V;let W0=s(d[i],Q0);return W0>=0?j0[W0]:V}case"Home":return 0;case"End":return O-1;case"PageDown":{let i=U.state.viewportState.containerSize,Q0=R.size>0?R.size:150,j0=Math.max(1,Math.floor(i/Q0)),W0=Math.min(J0+j0,e.length-1);return e[W0]}case"PageUp":{let i=U.state.viewportState.containerSize,Q0=R.size>0?R.size:150,j0=Math.max(1,Math.floor(i/Q0)),W0=Math.max(0,J0-j0);return e[W0]}}return V}),U.methods.set("_scrollItemIntoView",(V)=>{let P=q[V];if(!P)return;let O=U.scrollController.getScrollTop(),R=U.state.viewportState.containerSize,u=P.y,n=u+P.size,J0=O+R;if(u<O)U.scrollController.scrollTo(U.adjustScrollPosition(Math.max(0,u)));else if(n>J0)U.scrollController.scrollTo(U.adjustScrollPosition(n-R))});let y=null,h=null,I=!1,a=()=>{if(I)return;I=!0,y=U.methods.get("_getSelectedIds")??null,h=U.methods.get("_getFocusedIndex")??null},F=(V)=>U.dataManager.getItem(V),A=-1,L=-1,f=!0,o=N.overscan*b4,l=()=>{if(U.state.isDestroyed)return;a();let V=U.scrollController.getScrollTop(),P=U.state.viewportState.containerSize;if(!f&&V===A&&P===L)return;A=V,L=P,f=!1;let O=Math.max(0,V-o),R=V+P+o,u=Q.getVisibleItems(q,O,R),n=y?y():$4,J0=h?h():-1;if(j&&u.length>0)j.render(F,u,n,J0);let e=U.state.viewportState;e.scrollPosition=V;let K0=u.length,i=K0>0?u[0].index:0,Q0=K0>0?u[K0-1].index:0;e.visibleRange.start=i,e.visibleRange.end=Q0,e.renderRange.start=i,e.renderRange.end=Q0;let j0=U.state.lastRenderRange;if(j0.start!==i||j0.end!==Q0)j0.start=i,j0.end=Q0,K.emit("range:change",{range:{start:i,end:Q0}})},g=()=>{U.state.lastRenderRange.start=-1,U.state.lastRenderRange.end=-1,f=!0,l()};U.setRenderFns(l,g);let p=(V,P)=>{let O=(_?P:V)-M;if(Q&&Q.containerSize!==O){if(Q.update({containerSize:O}),r(),j)j.clear();g()}};U.resizeHandlers.push(p);let W=()=>{r(),g()},Y=U.dataManager,w=(V)=>{if(typeof Y[V]!=="function")return;let P=Y[V].bind(Y);Y[V]=(...O)=>{P(...O),W()}};w("setItems"),w("appendItems"),w("prependItems"),w("updateItem"),w("removeItem");let{animateScroll:G,cancelScroll:E}=i0(U.scrollController,U.renderIfNeeded);U.methods.set("cancelScroll",E),U.methods.set("scrollToIndex",(V,P)=>{let O=q[V];if(!O)return;let{align:R,behavior:u,duration:n}=h0(P),J0=O.y,e=U.state.viewportState.containerSize,K0=J0;if(R==="center")K0=J0-e/2+O.size/2;else if(R==="end"){K0=J0-e+O.size;let i=Q.getTotalSize(q);if(V===q.length-1)K0=Math.max(0,i+$-e)}if(K0=Math.max(0,K0),K0=U.adjustScrollPosition(K0),u==="smooth")G(U.scrollController.getScrollTop(),K0,n);else E(),U.scrollController.scrollTo(K0)}),r(),U.idleHandlers.push(()=>{if(j)j.sortDOM()}),U.destroyHandlers.push(()=>{if(E(),j)j.destroy();X.root.classList.remove(`${Z}--masonry`)})}}};var dJ=(J)=>{let Q=J?.mode??"single",j=J?.followFocus??!1,q=J?.initial,U=J?.shiftArrowToggle??"origin",X=J?.focusOnClick??!1,K=T1(q),N=null,B=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(Z){let{dom:_,emitter:T,config:M}=Z,{classPrefix:$,ariaIdPrefix:S}=M;if(Q==="none"){Z.methods.set("select",()=>{}),Z.methods.set("deselect",()=>{}),Z.methods.set("toggleSelect",()=>{}),Z.methods.set("selectAll",()=>{}),Z.methods.set("clearSelection",()=>{}),Z.methods.set("getSelected",()=>[]),Z.methods.set("getSelectedItems",()=>[]),Z.methods.set("setSelectionMode",()=>{}),Z.methods.set("selectNext",()=>{}),Z.methods.set("selectPrevious",()=>{}),Z.methods.set("_focusById",()=>{}),Z.methods.set("_getFocusedId",()=>{return});return}_.root.classList.add(`${$}--selectable`);let k=Z.methods.get("_isGroupHeader"),D=(W)=>k?k(W):!1,b=(W,Y,w)=>{if(!k)return W;let G=W;while(G>=0&&G<w){if(!D(G))return G;G+=Y}G=W-Y;while(G>=0&&G<w){if(!D(G))return G;G-=Y}return W},z=new Map,v=()=>{z.clear();let W=Z.dataManager.getTotal(),Y=Z.dataManager.getCached();if(Y===0)return;if(Y>=W){for(let G=0;G<W;G++){let E=Z.dataManager.getItem(G);if(E)z.set(E.id,G)}return}let w=Z.dataManager.getStorage();if(w&&typeof w.getLoadedRanges==="function"){let G=w.getLoadedRanges();for(let E of G)for(let V=E.start;V<=E.end;V++){let P=Z.dataManager.getItem(V);if(P&&!P._isPlaceholder)z.set(P.id,V)}}};T.on("data:change",({type:W,id:Y})=>{if(W==="remove")K.selected.delete(Y),v()}),T.on("load:end",({items:W,offset:Y})=>{if(!W||W.length===0)return;if(Y!==void 0)for(let w=0;w<W.length;w++){let G=W[w];if(G&&G.id!==void 0)z.set(G.id,Y+w)}else v()}),v(),Z.methods.set("_getSelectedIds",()=>{return K.selected}),Z.methods.set("_getFocusedIndex",()=>{return K.focusVisible?K.focusedIndex:-1});let{forceRender:r}=Z.getRenderFns(),C=()=>{r();let W=(Y)=>{let w=z.get(Y);if(w===void 0)return;return Z.dataManager.getItem(w)};T.emit("selection:change",{selected:RJ(K),items:PJ(K,W)})},m=v0(Z.rawConfig.padding),H=M.horizontal?m.left:m.top,d=M.horizontal?m.right:m.bottom,t=Z.getItemToScrollIndexFn(),s=null,y=null,h=null,I=!1,a=()=>{if(I)return;I=!0,s=Z.methods.get("_getNavDelta")??null,y=Z.methods.get("_navigate")??null,h=Z.methods.get("_scrollItemIntoView")??null},F=()=>{return a(),s?s():{ud:1,lr:0,cols:0}},A=(W)=>{if(W<0)return;if(a(),h)h(W);else{let Y=Z.state.viewportState.containerSize,w=Z.state.viewportState.scrollPosition,G=Z.dataManager.getTotal(),E=Z.getCachedCompression(),{visibleRange:V}=Z.state.viewportState,P=t(W),O=VJ(P,Z.sizeCache,w,Y,H,d,E,G,V);if(O!==w)Z.scrollController.scrollTo(Z.adjustScrollPosition(O))}},L=()=>{let W=t(Math.max(0,K.focusedIndex)),Y=Z.sizeCache.getSize(W),{ud:w}=F();return Math.max(w,Math.floor(Z.state.viewportState.containerSize/Y)*w)};N=document.createElement("div"),N.setAttribute("aria-live","polite"),N.setAttribute("aria-atomic","true"),N.className=`${$}-live-region`,N.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",(_.root.getAttribute("role")==="grid"?_.root.parentElement??_.root:_.root).appendChild(N);let o=N;T.on("selection:change",({selected:W})=>{let Y=W.length;if(Y===0)o.textContent="";else if(Y===1)o.textContent="1 item selected";else o.textContent=`${Y} items selected`});let l=()=>{if(Z.state.isDestroyed)return;if(!_.root.matches(":focus-visible"))return;let W=Z.dataManager.getTotal();if(W===0)return;let Y=K.focusedIndex>=0?Math.min(K.focusedIndex,W-1):0;Y=b(Y,1,W),K=x0(K,Y),K.focusVisible=!0,_.root.setAttribute("aria-activedescendant",`${S}-item-${Y}`),A(Y);let w=Z.dataManager.getItem(Y);if(w)Z.renderer.updateItemClasses(Y,K.selected.has(w.id),!0)};if(M.interactive)_.root.addEventListener("focusin",l);let g=(W)=>{if(Z.state.isDestroyed)return;let Y=W.relatedTarget;if(Y&&_.root.contains(Y))return;let w=K.focusedIndex;if(K.focusVisible=!1,_.root.removeAttribute("aria-activedescendant"),w>=0){let G=Z.dataManager.getItem(w);if(G)Z.renderer.updateItemClasses(w,K.selected.has(G.id),!1)}};if(M.interactive)_.root.addEventListener("focusout",g);if(Z.clickHandlers.push((W)=>{if(Z.state.isDestroyed)return;let w=W.target.closest("[data-index]");if(!w)return;let G=parseInt(w.dataset.index??"-1",10);if(G<0)return;let E=Z.dataManager.getItem(G);if(!E)return;if(D(G))return;if(T.emit("item:click",{item:E,index:G,event:W}),Q==="multiple"&&W.shiftKey&&K.focusedIndex>=0){let V=B>=0?B:K.focusedIndex,P=Z.getAllLoadedItems();K=MJ(K,P,V,G,Q),K=x0(K,G),K.focusVisible=X,B=G,_.root.setAttribute("aria-activedescendant",`${S}-item-${G}`),C();return}B=G,K=x0(K,G),K.focusVisible=X,_.root.setAttribute("aria-activedescendant",`${S}-item-${G}`),K=n0(K,E.id,Q),C()}),M.interactive)Z.keydownHandlers.push((W)=>{if(Z.state.isDestroyed)return;let Y=Z.dataManager.getTotal(),w=K.focusedIndex,G=!1,E=!1,V=K;if(a(),y)switch(W.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let P=y(K.focusedIndex,W.key,Y);if(P!==K.focusedIndex)V=x0(K,P),V.focusVisible=!0,G=!0,E=!0;else{W.preventDefault();return}break}}if(!G)switch(W.key){case"ArrowUp":V=_J(K,Y,M.wrap,F().ud),V.focusVisible=!0,G=!0,E=!0;break;case"ArrowDown":V=DJ(K,Y,M.wrap,F().ud),V.focusVisible=!0,G=!0,E=!0;break;case"ArrowLeft":{let{lr:P}=F();if(P)V=_J(K,Y,M.wrap,P),V.focusVisible=!0,G=!0,E=!0;break}case"ArrowRight":{let{lr:P}=F();if(P)V=DJ(K,Y,M.wrap,P),V.focusVisible=!0,G=!0,E=!0;break}case"PageUp":V=yJ(K,Y,L(),"up"),V.focusVisible=!0,G=!0,E=!0;break;case"PageDown":V=yJ(K,Y,L(),"down"),V.focusVisible=!0,G=!0,E=!0;break;case"Home":{V=H1(K,Y),V.focusVisible=!0,G=!0,E=!0;break}case"End":{V=k1(K,Y),V.focusVisible=!0,G=!0,E=!0;break}}switch(W.key){case" ":case"Enter":if(W.key===" "&&W.shiftKey&&Q==="multiple"&&K.focusedIndex>=0){if(B>=0){let P=Z.getAllLoadedItems();V=MJ(V,P,B,K.focusedIndex,Q)}V.focusVisible=!0,G=!0;break}if(K.focusedIndex>=0&&!D(K.focusedIndex)){let P=Z.dataManager.getItem(K.focusedIndex);if(P)V=n0(K,P.id,Q),V.focusVisible=!0;B=K.focusedIndex,G=!0}break;case"a":if((W.ctrlKey||W.metaKey)&&Q==="multiple"){let P=Z.getAllLoadedItems();if(K.selected.size===P.length)V=bJ(V);else V=$J(V,P,Q);V.focusVisible=!0,G=!0,E=!1}break}if(E&&k){let P=V.focusedIndex>w?1:-1;V.focusedIndex=b(V.focusedIndex,P,Y)}if(W.shiftKey&&Q==="multiple"&&E&&V.focusedIndex>=0){let P=W.key==="ArrowUp"||W.key==="ArrowDown"||W.key==="ArrowLeft"||W.key==="ArrowRight",O=(W.ctrlKey||W.metaKey)&&(W.key==="Home"||W.key==="End");if(P){if(U==="origin"){if(w>=0){let R=Z.dataManager.getItem(w);if(R)V=n0(V,R.id,Q)}}else{let R=Z.dataManager.getItem(V.focusedIndex);if(R)V=n0(V,R.id,Q)}B=V.focusedIndex,E=!1}else if(O){let R=Z.getAllLoadedItems(),u=w>=0?w:V.focusedIndex;V=MJ(V,R,u,V.focusedIndex,Q),B=V.focusedIndex,E=!1}}if(j&&Q==="single"&&E&&V.focusedIndex>=0){let P=Z.dataManager.getItem(V.focusedIndex);if(P)V=o0(V,[P.id],Q);E=!1}if(G){W.preventDefault(),K=V;let P=K.focusedIndex;if(P>=0)A(P),_.root.setAttribute("aria-activedescendant",`${S}-item-${P}`);else _.root.removeAttribute("aria-activedescendant");if(E){let{selected:O}=K;if(w>=0&&w!==P){let R=Z.dataManager.getItem(w);if(R)Z.renderer.updateItemClasses(w,O.has(R.id),!1)}if(P>=0){let R=Z.dataManager.getItem(P);if(R)Z.renderer.updateItemClasses(P,O.has(R.id),!0)}}else C();if(P>=0&&P!==w){let O=Z.dataManager.getItem(P);if(O)T.emit("focus:change",{id:O.id,index:P})}}});Z.methods.set("select",(...W)=>{K=o0(K,W,Q),C()}),Z.methods.set("deselect",(...W)=>{K=kJ(K,W),C()}),Z.methods.set("toggleSelect",(W)=>{K=n0(K,W,Q),C()}),Z.methods.set("selectAll",()=>{if(Q!=="multiple")return;let W=Z.getAllLoadedItems();K=$J(K,W,Q),v(),C()}),Z.methods.set("clearSelection",()=>{K=bJ(K),C()}),Z.methods.set("getSelected",()=>{return RJ(K)}),Z.methods.set("getSelectedItems",()=>{return PJ(K,(Y)=>{let w=z.get(Y);return w===void 0?void 0:Z.dataManager.getItem(w)})});let p=(W)=>{let Y=Z.dataManager.getTotal();if(Y===0)return;if(a(),y){let V=W==="next"?"ArrowDown":"ArrowUp",P=y(K.focusedIndex,V,Y);K=x0(K,P)}else{let{ud:V}=F();K=W==="next"?DJ(K,Y,M.wrap,V):_J(K,Y,M.wrap,V)}let w=W==="next"?1:-1;K.focusedIndex=b(K.focusedIndex,w,Y);let G=K.focusedIndex,E=Z.dataManager.getItem(G);if(!E)return;K=o0(K,[E.id],Q),A(G),C()};Z.methods.set("selectNext",()=>{p("next")}),Z.methods.set("selectPrevious",()=>{p("previous")}),Z.methods.set("_focusById",(W)=>{let Y=z.get(W);if(Y!==void 0){let G=Z.dataManager.getItem(Y);if(!G||G.id!==W)Y=void 0}if(Y===void 0){if(v(),Y=z.get(W),Y===void 0)return}K=x0(K,Y);let w=Z.dataManager.getItem(Y);if(w)T.emit("focus:change",{id:w.id,index:Y})}),Z.methods.set("_getFocusedId",()=>{let W=K.focusedIndex;if(W<0)return;return Z.dataManager.getItem(W)?.id}),Z.destroyHandlers.push(()=>{if(o&&o.parentNode)o.remove();_.root.removeEventListener("focusin",l),_.root.removeEventListener("focusout",g)})},destroy(){if(N&&N.parentNode)N.remove();N=null}}};var y4=(J)=>{try{let Q=sessionStorage.getItem(J);if(!Q)return;return JSON.parse(Q)}catch{return}},cJ=(J)=>{let Q=J?.autoSave,j=Q?y4(Q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(q){q.methods.set("getScrollSnapshot",()=>{let X=q.scrollController.getScrollTop(),K=q.getCachedCompression(),N=q.getVirtualTotal(),B=q.methods.get("getSelected"),Z=B&&B().length>0?B():void 0;if(N===0){let S={index:0,offsetInItem:0,total:0};if(Z)S.selectedIds=Z;return S}let _,T;if(K.isCompressed){let k=X/K.virtualSize*N;_=Math.max(0,Math.min(Math.floor(k),N-1)),T=(k-_)*q.sizeCache.getSize(_)}else _=q.sizeCache.indexAtOffset(X),T=X-q.sizeCache.getOffset(_);T=Math.max(0,T);let M={index:_,offsetInItem:T,total:N};if(Z)M.selectedIds=Z;let $=q.methods.get("_getFocusedId");if($){let S=$();if(S!==void 0)M.focusedId=S}return M});let U=(X)=>{let{index:K,offsetInItem:N,selectedIds:B,focusedId:Z}=X,_=q.getVirtualTotal();if(_===0&&X.total&&X.total>0){q.dataManager.setTotal(X.total),q.sizeCache.rebuild(X.total),q.updateCompressionMode();let C=q.getCachedCompression();if(!C.isCompressed)q.updateContentSize(C.virtualSize)}else if(_===0)return;if(!Number.isFinite(K)||!Number.isFinite(N))return;let T=q.getVirtualTotal();if(q.sizeCache.getTotal()!==T){q.sizeCache.rebuild(T),q.updateCompressionMode();let C=q.getCachedCompression();if(!C.isCompressed)q.updateContentSize(C.virtualSize)}let $=q.getCachedCompression(),S=Math.max(0,Math.min(K,T-1)),k;if($.isCompressed){let C=q.sizeCache.getSize(S),m=C>0?N/C:0;k=(S+m)/T*$.virtualSize}else k=q.sizeCache.getOffset(S)+N;let D=q.state.viewportState.containerSize,b=$.isCompressed?q.state.viewportState.totalSize:$.virtualSize,z=Math.max(0,b-D);if(k=Math.max(0,Math.min(k,z)),q.scrollController.scrollTo(k),B&&B.length>0){let C=q.methods.get("select");if(C)C(...B)}let v=q.methods.get("loadVisibleRange"),r=()=>{if(Z===void 0)return;let C=q.methods.get("_focusById");if(C)C(Z)};if(v){let m=0,H=k,d=()=>{m++;let t=q.state.viewportState.containerSize,s=q.scrollController.getScrollTop();if(t>0){if(Math.abs(s-H)>1)q.scrollController.scrollTo(H);v().then(r)}else if(m<10)requestAnimationFrame(d)};requestAnimationFrame(d)}else{let C=q.methods.get("reload");if(C)requestAnimationFrame(()=>{C().then(r)});else requestAnimationFrame(r)}};if(q.methods.set("restoreScroll",U),Q){let X=!!j,K=()=>{if(X)return;let N=q.methods.get("getScrollSnapshot");if(!N)return;let B=N();try{sessionStorage.setItem(Q,JSON.stringify(B))}catch{}};if(q.idleHandlers.push(()=>{if(X)X=!1;K()}),q.emitter.on("selection:change",K),q.emitter.on("focus:change",K),j&&j.total&&j.total>0){let N=q.methods.get("_cancelAutoLoad");if(N)N();q.dataManager.setTotal(j.total)}}if(j)queueMicrotask(()=>{U(j)})}}};var x1=(J,Q=50,j=1/0,q=!0)=>{let U=J,X=[],K=0,N=()=>{X=U.map((D,b)=>({def:D,index:b,width:0,minWidth:R4(D.minWidth??Q,1),maxWidth:D.maxWidth??j,resizable:D.resizable??q,offset:0}))},B=(D)=>{if(X.length===0){K=0;return}let b=0,z=0;for(let v=0;v<X.length;v++){let r=X[v],C=r.def;if(C.width!==void 0)r.width=lJ(C.width,r.minWidth,r.maxWidth),b+=r.width;else z++}if(z>0){let r=Math.max(0,D-b)/z;for(let C=0;C<X.length;C++){let m=X[C];if(m.def.width===void 0)m.width=lJ(r,m.minWidth,m.maxWidth)}}Z()},Z=()=>{let D=0;for(let b=0;b<X.length;b++){let z=X[b];z.offset=D,D+=z.width}K=D},_=(D,b)=>{if(D<0||D>=X.length)return 0;let z=X[D];if(!z.resizable)return z.width;let v=lJ(b,z.minWidth,z.maxWidth);return z.width=v,Z(),v},T=(D)=>{return X[D]},M=(D)=>{if(X.length===0)return;if(D<0)return X[0];if(D>=K)return X[X.length-1];let b=0,z=X.length-1;while(b<z){let v=b+z>>>1,r=X[v];if(D<r.offset)z=v-1;else if(D>=r.offset+r.width)b=v+1;else return r}return X[b]},$=(D)=>{if(D<0||D>=X.length)return 0;return X[D].offset},S=(D)=>{if(D<0||D>=X.length)return 0;return X[D].width},k=(D)=>{U=D,N()};return N(),{get columns(){return X},get totalWidth(){return K},resolve:B,updateColumns:k,resizeColumn:_,getColumn:T,getColumnAtX:M,getColumnOffset:$,getColumnWidth:S}},lJ=(J,Q,j)=>Math.min(j,Math.max(Q,J)),R4=(J,Q)=>Math.max(Q,J);var d1=(J,Q,j,q,U,X)=>{let K=document.createElement("div");K.setAttribute("role","rowgroup");let N=document.createElement("div");N.className=`${j}-table-header`,N.setAttribute("role","row"),N.setAttribute("aria-rowindex","1"),N.style.height=`${Q}px`;let B=document.createElement("div");B.className=`${j}-table-header-scroll`,B.setAttribute("role","presentation"),N.appendChild(B),K.appendChild(N),J.insertBefore(K,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let Z=[],_=[],T=[],M=!0,$=null,S="asc",k=null,D=!1,b=-1,z=0,v=0,r=(A,L)=>{let f=document.createElement("div");f.className=`${j}-table-header-cell`,f.setAttribute("role","columnheader"),f.setAttribute("aria-colindex",String(L+1)),f.dataset.columnKey=A.def.key;let o=A.def.align;if(o==="center")f.classList.add(`${j}-table-header-cell--center`);else if(o==="right")f.classList.add(`${j}-table-header-cell--right`);let l=document.createElement("div");l.className=`${j}-table-header-content`;let g=A.def.header?A.def.header(A.def):A.def.label;if(typeof g==="string")l.textContent=g;else l.appendChild(g);if(f.appendChild(l),A.def.sortable){let p=document.createElement("span");p.className=`${j}-table-header-sort`,p.setAttribute("aria-hidden","true"),f.appendChild(p),T.push(p),f.classList.add(`${j}-table-header-cell--sortable`)}else T.push(null);if(A.resizable){let p=document.createElement("div");p.className=`${j}-table-header-resize`,p.dataset.resizeIndex=String(L),f.appendChild(p),_.push(p)}return f},C=(A)=>{k=A,B.textContent="",Z=[],_=[],T=[];let L=A.columns;for(let f=0;f<L.length;f++){let o=L[f],l=r(o,f);Z.push(l),B.appendChild(l)}if(m(A),$)H($,S)},m=(A)=>{k=A;let L=A.columns;B.style.width=`${A.totalWidth}px`;for(let f=0;f<Z.length&&f<L.length;f++){let o=Z[f],l=L[f];o.style.width=`${l.width}px`}},H=(A,L)=>{if($=A,S=L,!k)return;let f=k.columns;for(let o=0;o<T.length&&o<f.length;o++){let l=T[o];if(!l)continue;if(f[o].def.key===A&&A!==null)l.textContent=L==="asc"?"▲":"▼",l.style.opacity="0.7",Z[o].setAttribute("aria-sort",L==="asc"?"ascending":"descending");else l.textContent="",l.style.opacity="0",Z[o].removeAttribute("aria-sort")}},d=(A)=>{B.style.transform=`translateX(${-A}px)`},t=(A)=>{let L=A.target;if(!L.dataset.resizeIndex)return;if(A.preventDefault(),A.stopPropagation(),b=parseInt(L.dataset.resizeIndex,10),!k)return;let f=k.getColumn(b);if(!f||!f.resizable)return;D=!0,z=A.clientX,v=f.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",L.classList.add(`${j}-table-header-resize--active`),L.setPointerCapture(A.pointerId),L.addEventListener("pointermove",s),L.addEventListener("pointerup",y),L.addEventListener("pointercancel",y)},s=(A)=>{if(!D||!k)return;let L=A.clientX-z;if(Math.abs(L)<1)return;let f=Math.max(0,v+L);q(b,f)},y=(A)=>{if(!D)return;let L=A.target;L.removeEventListener("pointermove",s),L.removeEventListener("pointerup",y),L.removeEventListener("pointercancel",y);try{L.releasePointerCapture(A.pointerId)}catch{}L.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",D=!1,b=-1},h=(A)=>{let L=A.target;if(L.dataset.resizeIndex!==void 0)return;if(D)return;let f=L;while(f&&!f.dataset.columnKey)if(f=f.parentElement,f===N||f===null)return;if(!f||!f.dataset.columnKey)return;let o=f.dataset.columnKey;if(!k)return;let l=k.columns,g=-1;for(let W=0;W<l.length;W++)if(l[W].def.key===o){g=W;break}if(g===-1)return;let p=l[g];if(X)X({key:o,index:g,event:A});if(p.def.sortable&&U){let W;if($===o)if(S==="asc")W="desc";else W=null;else W="asc";U({key:o,index:g,direction:W})}};return N.addEventListener("pointerdown",t),N.addEventListener("click",h),{element:N,update:m,updateSort:H,rebuild:C,show:()=>{if(M)return;M=!0,N.style.display=""},hide:()=>{if(!M)return;M=!1,N.style.display="none"},destroy:()=>{N.removeEventListener("pointerdown",t),N.removeEventListener("click",h),J.style.removeProperty("--vlist-table-header-height"),K.remove(),Z=[],_=[],T=[],k=null,M=!1},syncScroll:d}};var P4=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Q)=>{if(Q.parentNode?.removeChild(Q),J.length<200)Q.className="",Q.removeAttribute("data-id"),Q.removeAttribute("data-index"),Q.removeAttribute("aria-selected"),Q.removeAttribute("aria-rowindex"),Q.removeAttribute("role"),Q.style.cssText="",Q.textContent="",J.push(Q)},clear:()=>{J.length=0}}},c1=(J,Q,j,q,U,X,K,N,B)=>{let Z=P4(),_=new Map,T=-1,M=j,$=null,S=null,k=null,D=(O,R)=>{S=O,k=R},b=(O,R)=>{if(R)O.setAttribute("aria-selected","true");else O.removeAttribute("aria-selected")},z=(O,R,u,n)=>{O.setAttribute("role",R),O.setAttribute("data-id",String(u)),O.setAttribute("data-index",String(n))},v=(O)=>String(O).startsWith("__placeholder_"),r=`${U}-item ${U}-table-row`,C=`${U}-item--selected`,m=`${U}-item--focused`,H=`${U}-table-cell`,d=`${U}-table-cell--center`,t=`${U}-table-cell--right`,s=`${U}-item--odd`,y=`${U}-item--placeholder`,h=`${U}-item--replaced`,I=`${U}-item ${U}-table-row ${U}-table-group-header`,a=`${U}-table-group-header-content`,F=(O,R,u,n,J0=!1)=>{if(u.def.cell){let e=u.def.cell(R,u.def,n);if(typeof e==="string")O.innerHTML=e;else O.replaceChildren(e)}else{let e=R[u.def.key],K0=e!=null?String(e):"";if(J0&&K0)O.innerHTML=`<span>${K0}</span>`;else O.textContent=K0}},A=(O,R,u,n,J0=!1)=>{let e=r;if(N){if($){let K0=$(R);if(K0>=0&&(K0&1)===1)e+=` ${s}`}else if((R&1)===1)e+=` ${s}`}if(J0)e+=` ${y}`;if(u)e+=` ${C}`;if(n)e+=` ${m}`;O.className=e},L=(O,R,u)=>{if(u?.compression?.isCompressed)return Math.round(t0(O,u.scrollPosition,R,u.totalItems,u.containerSize,u.compression,u.rangeStart));return R.getOffset(O)},f=(O,R)=>{let u=R.def.align;if(u==="center")O.classList.add(d),O.classList.remove(t);else if(u==="right")O.classList.add(t),O.classList.remove(d);else O.classList.remove(d,t)},o=(O,R)=>{let n=M.columns.length;if(R.length===n)return R;let J0=[];for(let e=0;e<n;e++){let K0;if(e<R.length)K0=R[e];else K0=document.createElement("div"),K0.className=H,O.appendChild(K0);J0.push(K0)}for(let e=n;e<R.length;e++)R[e].remove();return J0},l=(O,R,u,n)=>{let J0=Z.acquire(),e=O,K0=u.getSize(R),i=L(R,u,n);J0.style.cssText=`width:${M.totalWidth}px;height:${K0}px;transform:translateY(${i}px)`,J0.className=I,z(J0,"presentation",O.id,R),J0.removeAttribute("aria-selected"),J0.removeAttribute("aria-rowindex"),J0.replaceChildren();let Q0=document.createElement("div");if(Q0.className=a,k){let j0=k(e.groupKey,e.groupIndex);if(typeof j0==="string")Q0.innerHTML=j0;else Q0.appendChild(j0)}return J0.appendChild(Q0),{element:J0,cells:[],index:R,isGroupHeader:!0,lastItemId:O.id,lastSelected:!1,lastFocused:!1,lastOffset:i,lastHeight:K0}},g=(O,R,u,n,J0,e)=>{let K0=Z.acquire(),i=J0.getSize(R),Q0=L(R,J0,e),j0=v(O.id);K0.style.cssText=`width:${M.totalWidth}px;height:${i}px;transform:translateY(${Q0}px)`,A(K0,R,u,n,j0),z(K0,"row",O.id,R),K0.id=`${X}-${R}`,K0.setAttribute("aria-rowindex",String(R+2)),b(K0,u);let W0=o(K0,[]),V0=M.columns;for(let M0=0;M0<W0.length&&M0<V0.length;M0++){let T0=W0[M0],k0=V0[M0];T0.style.cssText=`left:${k0.offset}px;width:${k0.width}px`,T0.setAttribute("role","gridcell"),T0.setAttribute("aria-colindex",String(M0+1)),f(T0,k0),F(T0,O,k0,R,j0)}return{element:K0,cells:W0,index:R,isGroupHeader:!1,lastItemId:O.id,lastSelected:u,lastFocused:n,lastOffset:Q0,lastHeight:i}},p=(O,R,u,n,J0)=>{for(let[j0,W0]of _)if(j0<R.start||j0>R.end)Z.release(W0.element),_.delete(j0);let e=!1,K0=K();if(K0!==T)T=K0,e=!0;let i=null,Q0=Q();$=typeof N==="string"&&B?B():null;for(let j0=R.start;j0<=R.end;j0++){let W0=j0-R.start,V0=O[W0];if(!V0)continue;let M0=u.has(V0.id),T0=j0===n,k0=S?S(V0):!1,B0=_.get(j0);if(B0){if(B0.isGroupHeader!==k0){Z.release(B0.element),_.delete(j0);let A0=k0?l(V0,j0,Q0,J0):g(V0,j0,M0,T0,Q0,J0);if(_.set(j0,A0),!i)i=document.createDocumentFragment();i.appendChild(A0.element);continue}if(k0){if(B0.lastItemId!==V0.id){let G0=V0,_0=B0.element.firstElementChild;if(_0&&k){let b0=k(G0.groupKey,G0.groupIndex);if(typeof b0==="string")_0.innerHTML=b0;else _0.replaceChildren(b0)}B0.element.setAttribute("data-id",String(V0.id)),B0.lastItemId=V0.id}let N0=L(j0,Q0,J0);if(B0.lastOffset!==N0)B0.lastOffset=N0,B0.element.style.transform=`translateY(${N0}px)`;let O0=Q0.getSize(j0);if(B0.lastHeight!==O0)B0.lastHeight=O0,B0.element.style.height=`${O0}px`}else{let A0=B0.lastItemId!==V0.id,N0=B0.lastSelected!==M0,O0=B0.lastFocused!==T0;if(A0){let b0=B0.lastItemId!=null&&v(B0.lastItemId),H0=v(V0.id);if(!H0&&I0(u,j0,V0.id))M0=!0;let x=M.columns;for(let Y0=0;Y0<B0.cells.length&&Y0<x.length;Y0++)F(B0.cells[Y0],V0,x[Y0],j0,H0);if(A(B0.element,j0,M0,T0,H0),B0.element.setAttribute("data-id",String(V0.id)),b(B0.element,M0),b0&&!H0)B0.element.classList.add(h),setTimeout(()=>{B0.element.classList.remove(h)},300);B0.lastItemId=V0.id,B0.lastSelected=M0,B0.lastFocused=T0}else if(N0||O0)A(B0.element,j0,M0,T0,v(V0.id)),b(B0.element,M0),B0.lastSelected=M0,B0.lastFocused=T0;let G0=L(j0,Q0,J0);if(B0.lastOffset!==G0)B0.lastOffset=G0,B0.element.style.transform=`translateY(${G0}px)`;let _0=Q0.getSize(j0);if(B0.lastHeight!==_0)B0.lastHeight=_0,B0.element.style.height=`${_0}px`;if(e)B0.element.setAttribute("aria-rowindex",String(j0+2))}}else{if(I0(u,j0,V0.id))M0=!0;let A0=k0?l(V0,j0,Q0,J0):g(V0,j0,M0,T0,Q0,J0);if(_.set(j0,A0),!i)i=document.createDocumentFragment();i.appendChild(A0.element)}}if(i)J.appendChild(i)},W=(O)=>{let R=Q();for(let[u,n]of _){let J0=L(u,R,O);if(n.lastOffset!==J0)n.lastOffset=J0,n.element.style.transform=`translateY(${J0}px)`}},Y=(O,R,u,n)=>{let J0=_.get(O);if(!J0)return;if(J0.isGroupHeader)return;let e=M.columns;for(let K0=0;K0<J0.cells.length&&K0<e.length;K0++)F(J0.cells[K0],R,e[K0],O);J0.element.setAttribute("data-id",String(R.id)),J0.lastItemId=R.id,A(J0.element,O,u,n),b(J0.element,u),J0.lastSelected=u,J0.lastFocused=n},w=(O,R,u)=>{let n=_.get(O);if(!n)return;if(n.isGroupHeader)return;let J0=n.lastSelected!==R,e=n.lastFocused!==u;if(J0||e)A(n.element,O,R,u),b(n.element,R),n.lastSelected=R,n.lastFocused=u},G=(O)=>{M=O;let R=O.columns;for(let[,u]of _)if(u.element.style.width=`${O.totalWidth}px`,u.cells.length>0)for(let n=0;n<u.cells.length&&n<R.length;n++){let J0=u.cells[n],e=R[n];J0.style.left=`${e.offset}px`,J0.style.width=`${e.width}px`}},E=(O)=>{return _.get(O)?.element},V=()=>{for(let[,O]of _)Z.release(O.element);_.clear(),T=-1};return{render:p,updatePositions:W,updateItem:Y,updateItemClasses:w,getElement:E,updateColumnLayout:G,setGroupHeaderFn:D,clear:V,destroy:()=>{V(),Z.clear()}}};var w4=new Set,rJ=(J)=>{if(!J.columns||J.columns.length===0)throw Error("[vlist] withTable: columns must be a non-empty array");if(J.rowHeight===void 0&&J.estimatedRowHeight===void 0)throw Error("[vlist] withTable: either rowHeight or estimatedRowHeight is required");let Q=null,j=null,q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(U){let{dom:X,emitter:K,config:N}=U,{classPrefix:B}=N;if(N.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(N.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let Z=J.resizable??!0,_=J.minColumnWidth??50,T=J.maxColumnWidth??1/0,M=J.columnBorders??!1,$=J.rowBorders??!0,S=J.rowHeight,k=U.rawConfig.padding,D=!k?0:typeof k==="number"?k*2:k.length===2?k[1]*2:k[1]+k[3],b=J.headerHeight??(typeof S==="number"?S:40),z=J.sort?.key??null,v=J.sort?.direction??"asc";if(Q=x1(J.columns,_,T,Z),typeof S==="function")U.setSizeConfig(S);else if(typeof S==="number")U.setSizeConfig(S);if(U.rebuildSizeCache(),X.root.classList.add(`${B}--table`),$)X.root.classList.add(`${B}--table-row-borders`);if(M)X.root.classList.add(`${B}--table-col-borders`);X.root.setAttribute("role","grid"),X.root.setAttribute("aria-colcount",String(J.columns.length));let r=-1,C=X.items.getAttribute("aria-label");if(C)X.root.setAttribute("aria-label",C),X.items.removeAttribute("aria-label");X.items.setAttribute("role","rowgroup"),X.viewport.setAttribute("role","none"),X.content.setAttribute("role","none"),X.viewport.removeAttribute("tabindex");let m=U.getContainerWidth()-D;Q.resolve(m);let H=(E,V)=>{if(!Q)return;let P=Q.getColumn(E);if(!P)return;let O=P.width,R=Q.resizeColumn(E,V);if(j)j.update(Q);if(q)q.updateColumnLayout(Q);s(),K.emit("column:resize",{key:P.def.key,index:E,previousWidth:O,width:R})},d=(E)=>{if(E.direction===null)z=null,v="asc";else z=E.key,v=E.direction;if(j)j.updateSort(z,v);K.emit("column:sort",E)},t=(E)=>{K.emit("column:click",E)};if(j=d1(X.root,b,B,H,d,t),j.rebuild(Q),z)j.updateSort(z,v);let s=()=>{if(!Q)return;let E=Q.totalWidth;X.content.style.minWidth=`${E}px`,X.items.style.minWidth=`${E}px`};s(),q=c1(X.items,()=>U.sizeCache,Q,J.columns,B,N.ariaIdPrefix,()=>U.dataManager.getTotal(),U.rawConfig.item?.striped,()=>U.getStripeIndexFn());let y=null,h=null,I=!1,a=()=>{if(I)return;I=!0,y=U.methods.get("_getSelectedIds")??null,h=U.methods.get("_getFocusedIndex")??null},F=-1,A=-1,L=-1,f=!0,o=N.overscan,l={start:0,end:0},g={start:0,end:0},p=()=>{if(U.state.isDestroyed)return;let E=U.scrollController.getScrollTop(),V=U.state.viewportState.containerSize,P=U.getVirtualTotal(),O=U.state.viewportState.isCompressed;if(!f&&E===F&&V===A&&P===L)return;F=E,A=V,L=P,f=!1;let R=P+1;if(R!==r)r=R,X.root.setAttribute("aria-rowcount",String(R));U.getVisibleRange(E,V,P,l),g.start=Math.max(0,l.start-o),g.end=Math.min(P-1,l.end+o);let u=U.state.viewportState;u.scrollPosition=E,u.visibleRange.start=l.start,u.visibleRange.end=l.end,u.renderRange.start=g.start,u.renderRange.end=g.end;let n=U.state.lastRenderRange,J0=n.start!==g.start||n.end!==g.end;if(!J0&&O){q.updatePositions(U.getCompressionContext());return}if(!J0)return;let e=O?U.getCompressionContext():void 0,K0=U.dataManager.getItemsInRange(g.start,g.end);a();let i=y?y():w4,Q0=h?h():-1;q.render(K0,g,i,Q0,e),n.start=g.start,n.end=g.end,K.emit("range:change",{range:{start:g.start,end:g.end}})},W=()=>{if(U.state.isDestroyed)return;U.state.lastRenderRange.start=-1,U.state.lastRenderRange.end=-1,f=!0,p()};U.setRenderFns(p,W),U.setUpdateItemClassesFn((E,V,P)=>{q?.updateItemClasses(E,V,P)});let Y=j,w=-1,G=()=>{let E=X.viewport.scrollLeft;if(E!==w){if(w=E,Y.syncScroll)Y.syncScroll(E)}};U.afterScroll.push(G),X.viewport.addEventListener("scroll",G,{passive:!0}),U.resizeHandlers.push((E,V)=>{if(!Q)return;if(Q.resolve(E-D),j)j.update(Q);if(q)q.updateColumnLayout(Q);s()}),U.methods.set("updateColumns",(E)=>{if(!Q||!j)return;if(Q.updateColumns(E),Q.resolve(U.getContainerWidth()-D),j.rebuild(Q),z)j.updateSort(z,v);if(s(),q)q.updateColumnLayout(Q),q.clear();U.forceRender()}),U.methods.set("resizeColumn",(E,V)=>{if(!Q)return;let P;if(typeof E==="string"){let O=Q.columns;P=-1;for(let R=0;R<O.length;R++)if(O[R].def.key===E){P=R;break}if(P===-1)return}else P=E;H(P,V)}),U.methods.set("getColumnWidths",()=>{if(!Q)return{};let E={},V=Q.columns;for(let P=0;P<V.length;P++)E[V[P].def.key]=V[P].width;return E}),U.methods.set("setSort",(E,V)=>{if(z=E,v=V??"asc",j)j.updateSort(z,v)}),U.methods.set("getSort",()=>{return{key:z,direction:v}}),U.methods.set("_getTableLayout",()=>Q),U.methods.set("_updateRenderedItem",(E,V,P,O)=>{q?.updateItem(E,V,P,O)}),U.methods.set("_replaceTableRenderer",(E)=>{q=E}),U.methods.set("_updateTableForGroups",(E,V)=>{if(q)q.setGroupHeaderFn(E,V)}),U.methods.set("_getTableHeaderHeight",()=>b),U.keydownHandlers.push((E)=>{if(E.key!=="ArrowLeft"&&E.key!=="ArrowRight")return;if(!Q)return;let V=Q.columns;if(V.length===0)return;let P=X.viewport.clientWidth;if(Q.totalWidth<=P)return;let O=X.viewport.scrollLeft;if(E.key==="ArrowRight"){for(let R=0;R<V.length;R++)if(V[R].offset>O+1){X.viewport.scrollLeft=V[R].offset,E.preventDefault();return}}else{for(let R=V.length-1;R>=0;R--)if(V[R].offset<O-1){X.viewport.scrollLeft=V[R].offset,E.preventDefault();return}if(O>0)X.viewport.scrollLeft=0,E.preventDefault()}}),U.contentSizeHandlers.push(()=>{s()}),U.destroyHandlers.push(()=>{if(X.viewport.removeEventListener("scroll",G),j)j.destroy(),j=null;if(q)q.destroy(),q=null;X.content.style.minWidth="",X.items.style.minWidth="",X.root.classList.remove(`${B}--table`),X.root.removeAttribute("role"),X.root.removeAttribute("aria-colcount"),X.viewport.removeAttribute("role"),X.viewport.setAttribute("tabindex","-1"),X.content.removeAttribute("role");let E=X.root.getAttribute("aria-label");if(E)X.items.setAttribute("aria-label",E),X.root.removeAttribute("aria-label");X.root.removeAttribute("aria-rowcount"),X.items.setAttribute("role","listbox")})},destroy(){if(j)j.destroy(),j=null;if(q)q.destroy(),q=null}}};var aJ=(J)=>{let Q=J?.handle??null,j=J?.ghostClass??"vlist-sort-ghost",q=J?.shiftDuration??150,U=J?.edgeScrollZone??40,X=J?.edgeScrollSpeed??20,K=J?.dragThreshold??5;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(N){let{dom:B,emitter:Z,config:_}=N,{classPrefix:T}=_,M=_.horizontal,$=M?"translateX":"translateY",S=q>0?`transform ${q}ms ease`:"none",k=!1,D=-1,b=-1,z=0,v=0,r=0,C=0,m=!1,H=null,d=0,t=null,s=0,y=0,h=0,I=null;N.methods.set("isSorting",()=>k||u);let a=(x)=>{return x.closest("[data-index]")},F=(x)=>{let Y0=x.dataset.index;return Y0===void 0?-1:+Y0},A=(x)=>{let Y0=x.getBoundingClientRect(),X0=x.cloneNode(!0);return X0.className=`${T}-item ${j}`,X0.removeAttribute("data-index"),X0.style.cssText=["position:fixed","pointer-events:none","z-index:10000",`width:${Y0.width}px`,`height:${Y0.height}px`,`left:${Y0.left}px`,`top:${Y0.top}px`,"transition:none","will-change:transform"].join(";"),document.body.appendChild(X0),X0},L=()=>{if(!H)return;let x=r-y,Y0=C-h;H.style.left=`${x}px`,H.style.top=`${Y0}px`},f=()=>{let x=N.dataManager.getTotal();if(x===0)return 0;let Y0=B.viewport.getBoundingClientRect(),X0=N.scrollController.getScrollTop(),Z0=M?r-y-Y0.left+B.viewport.scrollLeft+X0:C-h-Y0.top+X0,D0=Z0+s,E0=N.sizeCache.getOffset(D)+N.sizeCache.getSize(D);if(D0>E0){let L0=N.sizeCache.indexAtOffset(D0),S0=N.sizeCache.getOffset(L0)+N.sizeCache.getSize(L0)/2,d0=D0>S0?L0:L0-1;return Math.min(Math.max(d0,D),x-1)}let y0=N.sizeCache.getOffset(D);if(Z0<y0){let L0=N.sizeCache.indexAtOffset(Z0),S0=N.sizeCache.getOffset(L0)+N.sizeCache.getSize(L0)/2,d0=Z0<S0?L0:L0+1;return Math.max(Math.min(d0,D),0)}return D},o=()=>{let x=B.items.children,Y0=s;for(let X0=0;X0<x.length;X0++){let Z0=x[X0],D0=F(Z0);if(D0<0||D0===D)continue;let E0=0;if(b>D){if(D0>D&&D0<=b)E0=-Y0}else if(b<D){if(D0>=b&&D0<D)E0=Y0}let y0=N.sizeCache.getOffset(D0),L0=Math.round(y0+E0);Z0.style.transition=S,Z0.style.transform=`${$}(${L0}px)`}},l=()=>{let x=B.items.children;for(let Y0=0;Y0<x.length;Y0++){let X0=x[Y0],Z0=F(X0);if(Z0>=0)X0.style.transform=`${$}(${Math.round(N.sizeCache.getOffset(Z0))}px)`;X0.style.transition=""}},g=()=>{let x=f();if(x===b)return;b=x,o(),Z.emit("sort:move",{fromIndex:D,currentIndex:b})},p=!1,W=()=>{let x=B.viewport.getBoundingClientRect();if(M)return r<x.left||r>x.right;return C<x.top||C>x.bottom},Y=()=>{let x=()=>{if(!k)return;let Y0=B.viewport.getBoundingClientRect(),X0=0,Z0=3;if(M){let E0=r-Y0.left,y0=Y0.right-r;if(E0<U){let L0=Math.min(Z0,1-E0/U);X0=-X*L0*L0}else if(y0<U){let L0=Math.min(Z0,1-y0/U);X0=X*L0*L0}}else{let E0=C-Y0.top,y0=Y0.bottom-C;if(E0<U){let L0=Math.min(Z0,1-E0/U);X0=-X*L0*L0}else if(y0<U){let L0=Math.min(Z0,1-y0/U);X0=X*L0*L0}}let D0=W();if(X0!==0){let E0=N.scrollController.getScrollTop(),y0=N.sizeCache.getTotalSize()-(M?B.viewport.clientWidth:B.viewport.clientHeight);if(X0<0&&E0<=0||X0>0&&E0>=y0)p=D0;else p=!0,N.scrollController.scrollTo(E0+X0)}else p=D0;d=requestAnimationFrame(x)};d=requestAnimationFrame(x)},w=()=>{if(d)cancelAnimationFrame(d),d=0},G=(x=!1)=>{if(k=!1,m=!1,H&&H.parentNode)H.remove();H=null,t=null;let Y0=B.items.children;for(let Z0=0;Z0<Y0.length;Z0++){let D0=Y0[Z0];D0.style.opacity="",D0.style.pointerEvents="";let E0=F(D0);if(E0>=0)D0.style.transform=`${$}(${Math.round(N.sizeCache.getOffset(E0))}px)`;D0.style.transition=""}w(),B.root.classList.remove(`${T}--sorting`);let X0=window.getSelection();if(X0)X0.removeAllRanges();if(document.removeEventListener("pointermove",V),document.removeEventListener("pointerup",O),document.removeEventListener("pointercancel",R),!x)N.forceRender()},E=(x)=>{if(N.state.isDestroyed)return;if(k)return;if(u)B0();if(x.button!==0)return;let Y0=x.target;if(Q){if(!Y0.closest(Q))return}let X0=a(Y0);if(!X0)return;let Z0=F(X0);if(Z0<0)return;z=x.clientX,v=x.clientY,r=x.clientX,C=x.clientY,D=Z0,m=!1,t=X0;let D0=X0.getBoundingClientRect();y=x.clientX-D0.left,h=x.clientY-D0.top,document.addEventListener("pointermove",V),document.addEventListener("pointerup",O),document.addEventListener("pointercancel",R)},V=(x)=>{if(r=x.clientX,C=x.clientY,!m){let Y0=r-z,X0=C-v;if(Math.sqrt(Y0*Y0+X0*X0)<K)return;if(m=!0,k=!0,b=D,B.root.classList.add(`${T}--sorting`),s=N.sizeCache.getSize(D),t)H=A(t),t.style.opacity="0",t.style.pointerEvents="none";let D0=i();if(D0>=0){let E0=N.dataManager.getItem(D0);I=E0?E0.id:null}else I=null;Z.emit("sort:start",{index:D}),Y()}if(k){if(x.preventDefault(),L(),!p)g();else if(W()){if(b!==D)b=D,l()}}},P=(x,Y0)=>{if(!H){if(k=!1,x!==Y0&&x>=0&&Y0>=0){if(Z.emit("sort:end",{fromIndex:x,toIndex:Y0}),I!==null)Q0(I)}G(!1);return}let X0=B.viewport.getBoundingClientRect(),Z0=N.scrollController.getScrollTop(),D0=N.sizeCache.getOffset(Y0),E0=q>0?q:150;if(H.style.transition=`left ${E0}ms ease, top ${E0}ms ease`,M)H.style.left=`${X0.left-B.viewport.scrollLeft+D0-Z0}px`,H.style.top=`${X0.top}px`;else H.style.left=`${X0.left}px`,H.style.top=`${X0.top+D0-Z0}px`;let y0=!1,L0=()=>{if(y0)return;if(y0=!0,H?.removeEventListener("transitionend",L0),k=!1,x!==Y0&&x>=0&&Y0>=0){if(Z.emit("sort:end",{fromIndex:x,toIndex:Y0}),I!==null)Q0(I)}G(!1)};H.addEventListener("transitionend",L0),setTimeout(L0,E0+50)},O=(x)=>{if(!m){document.removeEventListener("pointermove",V),document.removeEventListener("pointerup",O),document.removeEventListener("pointercancel",R),t=null;return}x.preventDefault(),document.removeEventListener("pointermove",V),document.removeEventListener("pointerup",O),document.removeEventListener("pointercancel",R),w(),P(D,b)},R=()=>{G()};B.items.addEventListener("pointerdown",E);let u=!1,n="",J0=-1,e=-1,K0=[],i=()=>{let x=N.methods.get("_getFocusedIndex");return x?x():-1},Q0=(x)=>{let Y0=N.methods.get("_focusById");if(Y0)Y0(x)},j0=(x)=>{let Y0=M?B.viewport.clientWidth:B.viewport.clientHeight,X0=N.scrollController.getScrollTop(),Z0=qJ(x,N.sizeCache,X0,Y0);if(Z0!==X0)N.scrollController.scrollTo(N.adjustScrollPosition(Z0))},W0=(x)=>{B.liveRegion.textContent="",B.liveRegion.offsetHeight,B.liveRegion.textContent=x},V0=(x)=>{let Y0=N.dataManager.getItem(x);if(!Y0)return"";return B.items.querySelector(`[data-index="${x}"]`)?.textContent?.trim()||String(Y0.id)},M0=()=>String(N.dataManager.getTotal()),T0=(x)=>{let Y0=N.dataManager.getItem(x);if(!Y0)return;u=!0,n=Y0.id,J0=x,e=x;let X0=N.dataManager.getTotal();K0=[];for(let Z0=0;Z0<X0;Z0++)K0.push(N.dataManager.getItem(Z0));B.root.classList.add(`${T}--sorting`),Z.emit("sort:start",{index:x}),G0(),W0(`Grabbed ${V0(x)}. Current position ${x+1} of ${M0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},k0=()=>{if(!u)return;u=!1;let x=e,Y0=V0(x),X0=B.items.children;for(let Z0=0;Z0<X0.length;Z0++)X0[Z0].style.transition="none";B.root.classList.remove(`${T}--sorting`),O0(),Q0(n),N.forceRender(),W0(`${Y0} dropped. Final position ${x+1} of ${M0()}.`),K0=[],requestAnimationFrame(()=>{let Z0=B.items.children;for(let D0=0;D0<Z0.length;D0++)Z0[D0].style.transition=""})},B0=()=>{if(!u)return;u=!1;let x=J0,Y0=B.items.children;for(let X0=0;X0<Y0.length;X0++)Y0[X0].style.transition="none";if(B.root.classList.remove(`${T}--sorting`),O0(),e!==x)Z.emit("sort:cancel",{originalItems:K0});Q0(n),N.forceRender(),j0(x),W0(`Reorder cancelled. Returned to position ${x+1} of ${M0()}.`),K0=[],requestAnimationFrame(()=>{let X0=B.items.children;for(let Z0=0;Z0<X0.length;Z0++)X0[Z0].style.transition=""})},A0=(x)=>{if(!u)return;let Y0=N.dataManager.getTotal(),X0=e+x;if(X0<0||X0>=Y0)return;let Z0=e,D0=X0,E0=B.items.children;for(let y0=0;y0<E0.length;y0++)E0[y0].style.transition="none";Z.emit("sort:end",{fromIndex:Z0,toIndex:D0}),e=D0,Q0(n),N.forceRender(),j0(D0),G0(),W0(`${V0(D0)} moved. New position ${D0+1} of ${M0()}.`),requestAnimationFrame(()=>{let y0=B.items.children;for(let L0=0;L0<y0.length;L0++)y0[L0].style.transition=""})},N0=`${T}-item--kb-sorting`,O0=()=>{let x=B.items.querySelectorAll(`.${N0}`);for(let Y0=0;Y0<x.length;Y0++)x[Y0].classList.remove(N0)},G0=()=>{O0();let x=B.items.querySelector(`[data-id="${n}"]`);if(x)x.classList.add(N0)};N.afterRenderBatch.push(()=>{if(u)G0()});let _0=(x)=>{if(N.state.isDestroyed)return;if(k)return;if(u)switch(x.key){case" ":case"Enter":x.preventDefault(),x.stopImmediatePropagation(),k0();return;case"Escape":x.preventDefault(),x.stopImmediatePropagation(),B0();return;case"ArrowUp":case"ArrowLeft":x.preventDefault(),x.stopImmediatePropagation(),A0(-1);return;case"ArrowDown":case"ArrowRight":x.preventDefault(),x.stopImmediatePropagation(),A0(1);return;default:if(!x.key.startsWith("F")&&x.key!=="Tab")x.preventDefault(),x.stopImmediatePropagation();return}if(x.key===" "&&!x.shiftKey&&!x.ctrlKey&&!x.metaKey){let Y0=i();if(Y0>=0)x.preventDefault(),x.stopImmediatePropagation(),T0(Y0)}};B.root.addEventListener("keydown",_0);let b0=`${T}-sort-instructions`,H0=document.createElement("div");H0.id=b0,H0.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",H0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",B.root.appendChild(H0),N.afterRenderBatch.push((x)=>{for(let Y0=0;Y0<x.length;Y0++){let X0=x[Y0].element;X0.setAttribute("aria-roledescription","sortable item"),X0.setAttribute("aria-describedby",b0)}}),N.afterRenderBatch.push((x)=>{if(!k)return;for(let Y0=0;Y0<x.length;Y0++){let{index:X0,element:Z0}=x[Y0];if(X0===D)Z0.style.opacity="0",Z0.style.pointerEvents="none",t=Z0;else{Z0.style.opacity="",Z0.style.pointerEvents="";let D0=0;if(b>D){if(X0>D&&X0<=b)D0=-s}else if(b<D){if(X0>=b&&X0<D)D0=s}let E0=Math.round(N.sizeCache.getOffset(X0)+D0);Z0.style.transform=`${$}(${E0}px)`}}}),N.destroyHandlers.push(()=>{if(u)B0();G(),B.items.removeEventListener("pointerdown",E),B.root.removeEventListener("keydown",_0),H0.remove()})}}};var l1=(J,Q)=>{let j=new Map,q=(X)=>{let K=j.get(X);return K!==void 0?K:J},U=m0(q,Q);return{getOffset(X){return U.getOffset(X)},getSize(X){return q(X)},indexAtOffset(X){return U.indexAtOffset(X)},getTotalSize(){return U.getTotalSize()},getTotal(){return U.getTotal()},rebuild(X){if(X<U.getTotal()){for(let K of j.keys())if(K>=X)j.delete(K)}U=m0(q,X)},isVariable(){return!0},setMeasuredSize(X,K){j.set(X,K)},isMeasured(X){return j.has(X)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var sJ=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(Q){let j=Q.config.horizontal,U=Q.rawConfig.item,X=j?U.estimatedWidth:U.estimatedHeight;if(X==null||X<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let K=U.gap??0,N=Q.getVirtualTotal(),B=v0(Q.rawConfig.padding),Z=l0(B,j),_=l1(X+K,N),T=Q.methods.get("_setSizeCache"),M=Q.methods.get("_setConstrainSize");if(!T||!M)throw Error("[vlist/withAutoSize] Incompatible builder version");T(_),M((C)=>_.isMeasured(C));let $=new WeakMap,S=0,k=!1,D=2,b=(C)=>{let m=Q.scrollController.getScrollTop(),H=Q.state.viewportState.containerSize;if(H<=0)return!1;let d=Math.max(0,C+Z-H);return m>=d-D},z=()=>{let C=_.getTotalSize(),m=Q.state.viewportState.containerSize;if(m<=0)return;let H=Math.max(0,C+Z-m),d=Q.scrollController.getScrollTop();if(H>d)Q.scrollController.scrollTo(H)},v=()=>{let C=_.getTotalSize();Q.updateContentSize(C)},r=()=>{if(k){let C=Q.dom.viewport,m=C.scrollHeight,H=m-C.clientHeight,d=Q.scrollController.getScrollTop(),t=H>0&&d>=H-D,s=Q.getVirtualTotal(),y=Q.state.viewportState.renderRange.end,h=s>0&&y>=s-1,I=_.getTotalSize()+Z,a=Math.abs(I-m),F=h&&H>0&&d>=H-a-D,A=t||F;if(v(),k=!1,A)C.scrollHeight,z(),Q.forceRender()}};J=new ResizeObserver((C)=>{if(Q.state.isDestroyed)return;let m=!1,H=Q.state.viewportState.visibleRange.start;for(let L of C){let f=$.get(L.target);if(f===void 0)continue;let o=j?L.borderBoxSize[0].inlineSize:L.borderBoxSize[0].blockSize;if(!_.isMeasured(f)){let l=o+K,g=_.getSize(f);if(_.setMeasuredSize(f,l),m=!0,f<H&&l!==g)S+=l-g;J.unobserve(L.target);let p=L.target;if(j)p.style.width=`${o}px`;else p.style.height=`${o}px`}}if(!m)return;let d=_.getTotalSize();if(_.rebuild(Q.getVirtualTotal()),S!==0){let L=Q.scrollController.getScrollTop();Q.scrollController.scrollTo(L+S),S=0}let t=b(d),s=Q.getVirtualTotal(),y=Q.state.viewportState.renderRange.end,h=s>0&&y>=s-1,I=Q.dom.viewport,a=I.scrollHeight-I.clientHeight,F=Q.scrollController.getScrollTop(),A=a>0&&F>=a-D;if(t||h||!Q.scrollController.isScrolling()){if(v(),k=!1,t||h&&A)I.scrollHeight,z()}else k=!0;Q.forceRender()}),Q.afterRenderBatch.push((C)=>{for(let{index:m,element:H}of C)if(!_.isMeasured(m))$.set(H,m),J.observe(H)}),Q.idleHandlers.push(r),Q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var z4=50,C4=0.1;function r1(J){let Q=0,j=0,q=0;function U(){return q>0?j/q:0}function X(B){if(Q=B,B>C4&&B<z4)j+=B,q++}function K(){let B=J.getTotal();if(B===0)return 0;let Z=J.getItemSize();if(Z<=0)return 0;let _=J.getContainerSize();if(_<=0)return 0;let T=J.getScrollPosition(),M=typeof J.getColumns==="function"?J.getColumns():1,S=Math.ceil(B/M)*Z,D=Math.min(S,s0)-_,b=S-_,z=D>0?b/D:1,v=T*z,r=Math.ceil((v+_)/Z);return Math.min(r*M,B)}function N(){let B=J.getTotal(),Z=K();return{progress:B>0?Math.min(100,Math.max(0,Z/B*100)):0,velocity:Q,velocityAvg:U(),itemCount:Z,total:B}}return{getState:N,onVelocity:X}}export{rJ as withTable,aJ as withSortable,cJ as withSnapshots,dJ as withSelection,CJ as withScrollbar,vJ as withScale,fJ as withPage,xJ as withMasonry,uJ as withGroups,mJ as withGrid,sJ as withAutoSize,SJ as withAsync,zJ as vlist,r1 as createStats};
1
+ var j1=2,Y1=(J=0)=>({velocity:0,sampleCount:0}),X1=(J,Q)=>{let j=performance.now(),q=J._lt??j,K=J._lp??Q,Y=j-q;if(J._lp=Q,J._lt=j,Y===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(Y>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(Q-K)/Y,J.sampleCount=Math.min(J.sampleCount+1,5),J};var q4=(J,Q)=>{let j=Q;return{getOffset:(q)=>q*J,getSize:(q)=>J,indexAtOffset:(q)=>{if(j===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(q/J),j-1))},getTotalSize:()=>j*J,getTotal:()=>j,rebuild:(q)=>{j=q},isVariable:()=>!1}},j4=(J,Q)=>{let j=Q,q=new Float64Array(0),K=(Z)=>{j=Z,q=new Float64Array(Z+1),q[0]=0;for(let D=0;D<Z;D++)q[D+1]=q[D]+J(D)};K(Q);let Y=(Z)=>{if(j===0)return 0;if(Z<=0)return 0;if(Z>=q[j])return j-1;let D=0,B=j-1;while(D<B){let U=D+B+1>>>1;if(q[U]<=Z)D=U;else B=U-1}return D};return{getOffset:(Z)=>{if(Z<=0)return 0;if(Z>=j)return q[j];return q[Z]},getSize:(Z)=>J(Z),indexAtOffset:(Z)=>Y(Z),getTotalSize:()=>q[j]??0,getTotal:()=>j,rebuild:(Z)=>K(Z),isVariable:()=>!0}},c0=(J,Q)=>{if(typeof J==="number")return q4(J,Q);return j4(J,Q)},U1=(J,Q,j,q)=>{if(q===0)return 0;if(!J.isVariable())return Math.ceil(j/J.getSize(0));let K=0,Y=0,Z=Q;while(Z<q&&Y<j)Y+=J.getSize(Z),K++,Z++;return Math.max(1,K)};var K1=()=>{let J={},Q=(Y,Z)=>{if(!J[Y])J[Y]=new Set;return J[Y].add(Z),()=>j(Y,Z)},j=(Y,Z)=>{J[Y]?.delete(Z)};return{on:Q,off:j,emit:(Y,Z)=>{J[Y]?.forEach((D)=>{try{D(Z)}catch(B){console.error(`[vlist] Error in event handler for "${String(Y)}":`,B)}})},clear:(Y)=>{if(Y)delete J[Y];else for(let Z in J)delete J[Z]}}};var Z1=(J)=>{if(typeof J==="string"){let Q=document.querySelector(J);if(!Q)throw Error(`[vlist] Container not found: ${J}`);return Q}return J},jJ=(J,Q)=>{let j=document.createElement("div");if(j.className=J,Q)j.style.cssText=Q;return j},B1=(J,Q,j,q,K)=>{let Y=q,Z=jJ(Q);if(Y)Z.classList.add(`${Q}--horizontal`);if(K!==!1)Z.setAttribute("tabindex","0");let D=jJ(`${Q}-viewport`,Y?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");D.setAttribute("tabindex","-1");let B=jJ(`${Q}-content`,Y?"position:relative;height:100%":"position:relative;width:100%"),U=jJ(`${Q}-items`,Y?"position:relative;height:100%":"position:relative;width:100%");if(U.setAttribute("role","listbox"),j)U.setAttribute("aria-label",j);if(Y)U.setAttribute("aria-orientation","horizontal");let W=jJ(`${Q}-live`,"position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0");return W.setAttribute("aria-live","polite"),W.setAttribute("aria-atomic","true"),W.setAttribute("role","status"),B.appendChild(U),D.appendChild(B),Z.appendChild(W),Z.appendChild(D),J.appendChild(Z),{root:Z,viewport:D,content:B,items:U,liveRegion:W}};var N1=(J=100)=>{let Q=[];return{acquire:()=>{let j=Q.pop();if(j)return j;let q=document.createElement("div");return q.setAttribute("role","option"),q},release:(j)=>{if(Q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),Q.push(j)},clear:()=>{Q.length=0}}};var W1=(J,Q,j,q,K)=>{if(q===0||Q===0){K.start=0,K.end=-1;return}let Y=j.indexAtOffset(J),Z=j.indexAtOffset(J+Q);if(Z<q-1)Z++;K.start=Math.max(0,Y),K.end=Math.min(q-1,Math.max(0,Z))},V1=(J,Q,j,q)=>{q.start=Math.max(0,J.start-Q),q.end=Math.min(j-1,J.end+Q)},_1=(J,Q,j,q,K,Y=0)=>{if(q===0)return 0;let Z=Math.max(0,Math.min(J,q-1)),D=Q.getOffset(Z),B=Q.getSize(Z),U=Q.getTotalSize(),W=Math.max(0,U+Y-j),z;switch(K){case"center":z=D-(j-B)/2;break;case"end":z=Y>0&&D+B>=U?W:D-j+B;break;default:z=D}return Math.max(0,Math.min(z,W))};var WJ={top:0,right:0,bottom:0,left:0},I0=(J)=>{if(J==null)return WJ;if(typeof J==="number")return J===0?WJ:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[Y,Z]=J;return Y===0&&Z===0?WJ:{top:Y,right:Z,bottom:Y,left:Z}}let[Q,j,q,K]=J;return Q===0&&j===0&&q===0&&K===0?WJ:{top:Q,right:j,bottom:q,left:K}},a0=(J,Q)=>Q?J.left+J.right:J.top+J.bottom,VJ=(J,Q)=>Q?J.top+J.bottom:J.left+J.right;var s0=(J,Q,j)=>{let q=Array.from(Q).sort((Z,D)=>Z-D);if(q.length<=1)return;let K=[];for(let Z=0;Z<q.length;Z++){let D=j(q[Z]);if(D)K.push(D)}if(K.length<=1)return;let Y=J.firstChild;for(let Z=0;Z<K.length;Z++){let D=K[Z];if(D===Y)Y=Y.nextSibling;else J.insertBefore(D,Y)}};var D1=(J,Q)=>{let{dom:j,emitter:q,resolvedConfig:K,rawConfig:Y,rendered:Z,pool:D,sharedState:B,isHorizontal:U,classPrefix:W,contentSizeHandlers:z,idleHandlers:_,afterScroll:$,clickHandlers:S,keydownHandlers:w,resizeHandlers:G,destroyHandlers:H,methods:T,onScrollFrame:f,resizeObserver:l,renderRange:C,afterRenderBatch:p}=Q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return q},get config(){return K},get rawConfig(){return Y},adjustScrollPosition(P){if(J.mp===0)return P;let u=U?J.cw:J.ch,t=J.hc.getTotalSize(),s=Math.max(0,t-u),R=Math.max(0,t+J.mp-u);if(P>=s)return R;return Math.min(P,R)},get renderer(){return{render:(P,u,t,s,R)=>{J.ss=t,J.fi=s,J.ffn()},updateItemClasses:(P,u,t)=>{J.uic(P,u,t)},updatePositions:()=>{},updateItem:()=>{},getElement:(P)=>Z.get(P)??null,clear:()=>{},destroy:()=>{}}},set renderer(P){},get dataManager(){return J.dm},set dataManager(P){J.dm=P},get scrollController(){return J.sc},set scrollController(P){J.sc=P},state:B,getContainerWidth(){return J.cw},afterScroll:$,idleHandlers:_,afterRenderBatch:p,clickHandlers:S,keydownHandlers:w,resizeHandlers:G,contentSizeHandlers:z,destroyHandlers:H,methods:T,replaceTemplate(P){J.at=P},replaceRenderer(P){},replaceDataManager(P){J.dm=P},replaceScrollController(P){J.sc=P},getItemsForRange(P){let{dm:u,it:t}=J,s=[];for(let R=P.start;R<=P.end;R++){let h=u?u.getItem(R):t[R];if(h)s.push(h)}return s},getAllLoadedItems(){let P=J.dm;if(P){let u=P.getTotal(),t=[];for(let s=0;s<u;s++){let R=P.getItem(s);if(R)t.push(R)}return t}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let P=J.hc;return{isCompressed:!1,actualSize:P.getTotalSize(),virtualSize:P.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:C.start,compression:B.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,P]of Z)P.remove(),D.release(P);Z.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(P,u){J.rfn=P,J.ffn=u},setVirtualTotalFn(P){J.vtf=P},rebuildSizeCache(P){J.hc.rebuild(P??J.vtf())},setSizeConfig(P){if(J.hc=c0(P,J.vtf()),J.gp>0){let u=J.hc.getTotalSize,t=J.gp;J.hc.getTotalSize=()=>{let s=u();return s>0?s-t:0}}},updateContentSize(P){let u=`${P+J.mp}px`;if(U)j.content.style.width=u;else j.content.style.height=u},updateCompressionMode(){for(let P=0;P<z.length;P++)z[P]()},setVisibleRangeFn(P){J.gvr=P},getVisibleRange(P,u,t,s){J.gvr(P,u,J.hc,t,s)},setScrollToPosFn(P){J.gsp=P},getScrollToPos(P,u,t,s){return J.gsp(P,J.hc,u,t,s)},setPositionElementFn(P){J.pef=P},setScrollFns(P,u){J.sgt=P,J.sst=(t)=>{u(t),f()}},setScrollTarget(P){J.st.removeEventListener("scroll",f),J.st=P,J.st.addEventListener("scroll",f,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(P){J.gcw=P.width,J.gch=P.height,J.cw=P.width(),J.ch=P.height(),B.viewportState.containerSize=U?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,l.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(P){J.sif=P},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(P){J.i2s=P},setUpdateItemClassesFn(P){J.uic=P}}},M1=(J,Q,j)=>{let{rendered:q,itemState:K,applyTemplate:Y,updateContentSize:Z}=Q,D=()=>{J.hc.rebuild(J.vtf()),Z(),j.updateCompressionMode(),J.ffn()},B=()=>J.it.length;return{getState:()=>({total:B(),cached:B(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:B,getCached:B,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(U)=>J.it[U],isItemLoaded:(U)=>U>=0&&U<B()&&J.it[U]!==void 0,getItemsInRange:(U,W)=>{let z=[];for(let _=Math.max(0,U),$=Math.min(W,B()-1);_<=$;_++)z.push(J.it[_]);return z},setTotal:()=>{},setItems:(U,W=0,z)=>{if(W===0&&(z!==void 0||B()===0))J.it=U;else{let _=W+U.length;if(B()<_)J.it.length=_;for(let $=0;$<U.length;$++)J.it[W+$]=U[$]}if(J.ii)D()},updateItem:(U,W)=>{let z=J.it;if(U<0||U>=z.length)return!1;let _=z[U];if(!_)return!1;z[U]={..._,...W};let $=q.get(U);if($)Y($,J.at(z[U],U,K)),$.dataset.id=String(z[U].id);return!0},removeItem:(U)=>{let W=typeof U==="number"?U:J.it.findIndex((z)=>z.id===U);if(W<0||W>=J.it.length)return!1;if(J.it.splice(W,1),J.ii)D();return!0},loadRange:async()=>{},ensureRange:async()=>{},loadInitial:async()=>{},loadMore:async()=>!1,reload:async()=>{},evictDistant:()=>{},clear:()=>{J.it=[]},reset:()=>{if(J.it=[],J.ii)J.hc.rebuild(0),Z(),J.ffn()}}},G1=(J,Q)=>{let{dom:j,classPrefix:q}=Q;return{getScrollTop:()=>J.sgt(),scrollTo:(K)=>{J.sst(K),J.ls=K,J.rfn()},scrollBy:(K)=>{let Y=J.sgt()+K;J.sst(Y),J.ls=Y,J.rfn()},isAtTop:()=>J.ls<=2,isAtBottom:(K=2)=>J.sab(K),getScrollPercentage:()=>{let K=J.hc.getTotalSize(),Y=Math.max(0,K-J.ch);return Y>0?J.ls/Y:0},getVelocity:()=>J.vt.velocity,isTracking:()=>J.vt.sampleCount>=2,isScrolling:()=>j.root.classList.contains(`${q}--scrolling`),updateConfig:()=>{},enableCompression:()=>{J.sic=!0},disableCompression:()=>{J.sic=!1},isCompressed:()=>J.sic,isWindowMode:()=>!1,updateContainerHeight:(K)=>{J.ch=K},destroy:()=>{}}};var YJ=(J,Q,j,q,K=0,Y=0)=>{let Z=Q.getOffset(J),D=Q.getSize(J),B=Z+K,U=B+D,W=j+q;if(B<j)return Math.max(0,Z);if(U>W)return U+Y-q;return j},_J=(J,Q,j,q,K=0,Y=0,Z,D,B)=>{if(!(Z!=null&&Z.isCompressed&&Z.ratio!==1))return YJ(J,Q,j,q,K,Y);let W=D,{virtualSize:z}=Z,_=Q.getSize(Math.max(0,J)),$=q-K-Y,S=Math.max(1,Math.floor($/_)),w=z/W;if(B){if(J>=B.start+S){let T=$/_,f=J+1-T;return Math.max(0,f*w)}if(J<=B.start)return Math.max(0,J*w);return j}let G=j/z*W,H=G+S;if(J>=H){let T=$/_,f=J+1-T;return Math.max(0,f*w)}if(J<G)return Math.max(0,J*w);return j};var O1=(J,Q,j,q,K,Y,Z,D,B,U,W,z,_,$)=>{let S=`${j}-item--focused`,w=!1,G=null,H=null,T=null,f=null,l=!1,C=()=>{if(l)return;l=!0,G=B.get("_getNavTotal")??null,H=B.get("_getNavDelta")??null,T=B.get("_navigate")??null,f=B.get("_scrollItemIntoView")??null},p=()=>{return C(),G?G():J.vtf()},P=()=>{return C(),H?H():{ud:1,lr:0,cols:0}};B.set("_getFocusedIndex",()=>w?J.fi:-1);let u=(a,L=!0)=>{if(Q.root.setAttribute("aria-activedescendant",`${q}-item-${a}`),C(),L)if(f)f(a);else{let A=K?J.cw:J.ch,F=J.i2s(a),v=YJ(F,J.hc,J.ls,A,Y,Z);if(v!==J.ls)J.sst(v),J.ls=J.sgt()}J.ffn()},t=(a)=>{J.fi=a,w=!0,u(a)},s=(a,L)=>{if(J.fi=a,L||$)w=!0;let A=J.dm?J.dm.getItem(a):J.it[a];if(A&&J.ss.has(A.id))J.ss.clear();else if(J.ss.clear(),A)J.ss.add(A.id);u(a,L)},R=(a,L,A)=>{let F=a;while(F>=0&&F<A){let v=J.dm?J.dm.getItem(F):J.it[F];if(!v||!v.__groupHeader)return F;F+=L}F=a-L;while(F>=0&&F<A){let v=J.dm?J.dm.getItem(F):J.it[F];if(!v||!v.__groupHeader)return F;F-=L}return a},h=()=>{if(J.id)return;if(!Q.root.matches(":focus-visible"))return;let a=p();if(a===0)return;let L=J.fi>=0?Math.min(J.fi,a-1):0;L=R(L,1,a),t(L)};Q.root.addEventListener("focusin",h);let I=(a)=>{if(J.id)return;let L=a.relatedTarget;if(L&&Q.root.contains(L))return;if(w=!1,J.fi>=0)U.get(J.fi)?.classList.remove(S);Q.root.removeAttribute("aria-activedescendant")};Q.root.addEventListener("focusout",I),W.push((a)=>{if(J.id)return;let L=p();if(L===0)return;let A=J.fi,F=A;if(a.key===" "||a.key==="Enter"){if(A>=0){let v=J.dm?J.dm.getItem(A):J.it[A];if(v&&!v.__groupHeader)s(A,!0)}a.preventDefault();return}if(C(),T)switch(a.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":F=T(A,a.key,L);break;default:return}else{let{ud:v,lr:i}=P();switch(a.key){case"ArrowUp":F=A-v;break;case"ArrowDown":F=A+v;break;case"ArrowLeft":if(!i)return;F=A-i;break;case"ArrowRight":if(!i)return;F=A+i;break;case"PageUp":case"PageDown":{let c=J.hc.getSize(J.i2s(Math.max(0,A))),g=Math.max(v,Math.floor((K?J.cw:J.ch)/c)*v);F=a.key==="PageUp"?A-g:A+g;break}case"Home":F=0;break;case"End":F=L-1;break;default:return}if(F<0)F=D?L-1:0;else if(F>=L)F=D?0:L-1}if(a.preventDefault(),F=R(F,F>=A?1:-1,L),F!==A)t(F)}),z.push((a)=>{if(J.id)return;let L=a.target.closest("[data-index]");if(!L)return;let A=parseInt(L.dataset.index??"-1",10);if(A<0)return;let F=J.dm?.getItem(A)??J.it[A];if(!F||F.__groupHeader)return;w=!1,Q.root.focus({preventScroll:!0}),s(A,!1)}),_.push(()=>{Q.root.removeEventListener("focusin",h),Q.root.removeEventListener("focusout",I)})};var HJ=200,o0=50;var A1=50,E1=12,L1=2,n0=16000000;var F1="x",T1=20,kJ="_isPlaceholder",h0="__placeholder_";var p0=(J,Q,j)=>{if(String(j).startsWith(h0))return!1;let q=h0+Q;if(J.has(q))return J.delete(q),J.add(j),!0;return!1},H1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),i0=(J,Q,j)=>{if(j==="none")return J;let q=new Set(J.selected);if(j==="single"){if(q.clear(),Q.length>0)q.add(Q[0])}else for(let K of Q)q.add(K);return{...J,selected:q}},$J=(J,Q)=>{let j=new Set(J.selected);for(let q of Q)j.delete(q);return{...J,selected:j}},t0=(J,Q,j)=>{if(j==="none")return J;if(J.selected.has(Q))return $J(J,[Q]);else return i0(J,[Q],j)},bJ=(J,Q,j)=>{if(j!=="multiple")return J;return{...J,selected:new Set(Q.map((q)=>q.id))}},yJ=(J)=>({...J,selected:new Set}),l0=(J,Q)=>{return J.focusedIndex=Q,J},DJ=(J,Q,j=!1,q=1)=>{if(Q===0)return J;let K=J.focusedIndex-q;if(K<0)K=j?Q-1:0;return J.focusedIndex=K,J},MJ=(J,Q,j=!1,q=1)=>{if(Q===0)return J;let K=J.focusedIndex+q;if(K>=Q)K=j?0:Q-1;return J.focusedIndex=K,J},k1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=0,J},$1=(J,Q)=>{if(Q===0)return J;return J.focusedIndex=Q-1,J},RJ=(J,Q,j,q)=>{if(Q===0)return J;let K=q==="up"?J.focusedIndex-j:J.focusedIndex+j;return K=Math.max(0,Math.min(Q-1,K)),J.focusedIndex=K,J};var PJ=(J)=>{return Array.from(J.selected)},wJ=(J,Q)=>{let j=[];for(let q of J.selected){let K=Q(q);if(K)j.push(K)}return j};var GJ=(J,Q,j,q,K)=>{if(K!=="multiple")return J;let Y=Math.min(j,q),Z=Math.max(j,q),D=[];for(let B=Y;B<=Z;B++){let U=Q[B];if(U)D.push(U.id)}return i0(J,D,K)};var zJ=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,g0=(J)=>{let Q=typeof J==="object"&&J?J:null;return{align:typeof J==="string"?J:Q?.align??"start",behavior:Q?.behavior??"auto",duration:Q?.duration??300}},e0=(J,Q)=>{let j=null,q=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(Y,Z,D)=>{if(q(),Math.abs(Z-Y)<1){J.scrollTo(Z);return}let B=performance.now(),U=(W)=>{let z=W-B,_=Math.min(z/D,1),$=Y+(Z-Y)*zJ(_);if(J.scrollTo($),Q(),_<1)j=requestAnimationFrame(U);else j=null};j=requestAnimationFrame(U)},cancelScroll:q}};var b1=(J,Q,j,q,K,Y,Z,D,B,U,W,z,_,$,S,w,G,H)=>{let T=(M)=>{{if(!Array.isArray(M)){console.warn("[vlist] setItems() expects an array, got:",typeof M);return}if(M.length>0&&M[0]&&!("id"in M[0]))console.warn('[vlist] Items must have an "id" property. First item:',M[0]);let E=Math.min(M.length,1e4),V=new Set;for(let y=0;y<E;y++){let O=M[y];if(O&&"id"in O){if(V.has(O.id)){console.warn(`[vlist] Duplicate item ID "${O.id}" at index ${y}. updateItem() and removeItem() will only match the first occurrence.`);break}V.add(O.id)}}}F(),B.dataManager.setItems(M,0,M.length)},f=(M)=>{let E=U&&J.sab(2);if(B.dataManager.setItems(M,J.it.length),E&&J.it.length>0){let V=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(V),J.ls=V,J.rfn()}},l=(M)=>{let E=U?J.sgt():0,V=U?J.hc.getTotalSize():0,y=[...J.it];if(B.dataManager.clear(),B.dataManager.setItems([...M,...y],0),U){let O=J.hc.getTotalSize()-V;if(O>0)J.sst(E+O),J.ls=E+O}},C=null,p=null,P=null,u=!1,t=()=>{if(u)return;u=!0,C=Y.get("_updateRenderedItem")??null,p=Y.get("_getSelectedIds")??null,P=Y.get("_getFocusedIndex")??null},s=(M,E)=>{{let y=J.vtf();if(M<0||M>=y)console.warn(`[vlist] updateItem() index ${M} is out of range (0–${y-1}).`)}if(B.dataManager.updateItem(M,E),t(),!C)return;let V=B.dataManager.getItem(M);if(V){let O=(p?p():J.ss).has(V.id),b=(P?P():J.fi)===M;C(M,V,O,b)}},R=!1,h=(M)=>{let E=typeof document<"u"?document.activeElement:null,V=E&&Q.items.contains(E)?parseInt(E.dataset?.index??"-1",10):-1;if(!B.dataManager.removeItem(M))return console.warn(`[vlist] removeItem() could not find item with id "${M}".`),!1;if(j.emit("data:change",{type:"remove",id:M}),B.forceRender(),!R){let O=B.dataManager;if(typeof O.ensureRange==="function")R=!0,queueMicrotask(()=>{R=!1;let b=B.dataManager.getTotal(),{start:m,end:e}=B.state.viewportState.renderRange;if(b>0&&e>=m)O.ensureRange(m,e).catch(()=>{})})}if(V>=0){let O=J.vtf();if(O>0)q.get(Math.min(V,O-1))?.focus()}return!0},I=(M)=>{return B.dataManager.getItem(M)},a=(M)=>{return B.dataManager.getIndexById?.(M)??-1},L=async(M)=>{if(B.dataManager.reload)await B.dataManager.reload()},A=null,F=()=>{if(A!==null)cancelAnimationFrame(A),A=null},v=(M,E,V,y)=>{if(F(),Math.abs(E-M)<1){J.sst(E),J.ls=E,J.rfn();return}let O=performance.now(),b=(m)=>{let e=m-O,o=Math.min(e/V,1),J0=y?y():E,K0=M+(J0-M)*zJ(o);if(J.sst(K0),J.ls=K0,J.rfn(),o<1)A=requestAnimationFrame(b);else A=null};A=requestAnimationFrame(b)},i=(M,E)=>{{let o=J.vtf();if(o>0&&(M<0||M>=o))console.warn(`[vlist] scrollToIndex(${M}) is out of range (0–${o-1}).`)}let{align:V,behavior:y,duration:O}=g0(E),b=J.vtf(),m=M;if(W&&b>0)m=(m%b+b)%b;let e=J.gsp(m,J.hc,J.ch,b,V);if(y==="smooth"){let o=m,J0=V;v(J.sgt(),e,O,()=>J.gsp(o,J.hc,J.ch,J.vtf(),J0))}else F(),J.sst(e)},c=()=>J.sgt(),g=(M,E)=>{return j.on(M,E)},r=(M,E)=>{j.off(M,E)},N=()=>{if(J.id)return;if(J.id=!0,B.state.isDestroyed=!0,Q.items.removeEventListener("click",z),Q.items.removeEventListener("dblclick",_),Q.root.removeEventListener("keydown",$),J.st.removeEventListener("scroll",S),w.disconnect(),G(),J.wh)Q.viewport.removeEventListener("wheel",J.wh);H();let M=[];for(let E=0;E<D.length;E++)try{D[E]()}catch(V){M.push(V instanceof Error?V:Error(String(V)))}for(let E of Z)if(E.destroy)try{E.destroy()}catch(V){M.push(V instanceof Error?V:Error(String(V)))}F();for(let[,E]of q)E.remove(),K.release(E);q.clear(),K.clear(),j.emit("destroy",void 0);for(let E of M)j.emit("error",{error:E,context:"destroy"});j.clear(),Q.root.remove()},X=(M,E)=>Y.has(M)?Y.get(M):E,k={get element(){return Q.root},get items(){let M=Y.get("_getItems");return M?M():J.it},get total(){let M=Y.get("_getTotal");return M?M():J.vtf()},setItems:X("setItems",T),appendItems:X("appendItems",f),prependItems:X("prependItems",l),updateItem:X("updateItem",s),removeItem:X("removeItem",h),reload:X("reload",L),getItemAt:I,getIndexById:a,scrollToIndex:X("scrollToIndex",i),cancelScroll:X("cancelScroll",F),getScrollPosition:X("getScrollPosition",c),on:g,off:r,destroy:N};for(let[M,E]of Y){if(M.charCodeAt(0)===95||M==="setItems"||M==="appendItems"||M==="prependItems"||M==="updateItem"||M==="removeItem"||M==="reload"||M==="scrollToIndex"||M==="scrollToItem"||M==="cancelScroll"||M==="getScrollPosition")continue;k[M]=E}return k};var Y4=3,X4="vlist",U4=150,K4=16000000,Z4=0,CJ=(J)=>{if(!J.container)throw Error("[vlist] Container is required");if(!J.item)throw Error("[vlist] item configuration is required");let Q=J.orientation==="horizontal",j=Q?"width":"height",q=Q?"estimatedWidth":"estimatedHeight",K=Q?J.item.width:J.item.height,Y=Q?J.item.estimatedWidth:J.item.estimatedHeight;if(K==null&&Y==null)throw Error(`[vlist] item.${j} or item.${q} is required${Q?" when orientation is 'horizontal'":""}`);if(K!=null){if(typeof K==="number"&&K<=0)throw Error(`[vlist] item.${j} must be a positive number`);if(typeof K!=="number"&&typeof K!=="function")throw Error(`[vlist] item.${j} must be a number or a function (index) => number`)}else if(Y!=null){if(typeof Y!=="number"||Y<=0)throw Error(`[vlist] item.${q} must be a positive number`)}if(!J.item.template)throw Error("[vlist] item.template is required");if(Q&&J.reverse)throw Error("[vlist] horizontal direction cannot be combined with reverse mode");let Z=new Map,D=!1,B={use(U){if(D)throw Error("[vlist] Cannot call .use() after .build()");return Z.set(U.name,U),B},build(){if(D)throw Error("[vlist] .build() can only be called once");return D=!0,B4(J,Z,Q,K,Y??null)}};return B};function B4(J,Q,j,q,K){let{item:Y,items:Z,overscan:D=Y4,classPrefix:B=X4,ariaLabel:U,padding:W,reverse:z=!1,scroll:_,accessible:$,interactive:S}=J,w=S??$??!0,G=_,H=G?.wheel??!0,T=G?.wrap??!1,f=z,l=`${B}-${Z4++}`,C=Q.has("withGrid")||Q.has("withMasonry")?0:Y.gap??0,p=q??K,P=q==null&&K!=null,u=j?typeof Y.height==="number"?Y.height:void 0:typeof Y.width==="number"?Y.width:void 0,t={overscan:D,classPrefix:B,reverse:f,wrap:T,horizontal:j,ariaIdPrefix:l,interactive:w},s=Array.from(Q.values()).sort((x,Q0)=>(x.priority??50)-(Q0.priority??50)),R=new Set(s.map((x)=>x.name));for(let x of s)if(x.conflicts){for(let Q0 of x.conflicts)if(R.has(Q0))throw Error(`[vlist] ${x.name} and ${Q0} cannot be combined`)}if(f){if(R.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let h=Z1(J.container),I=B1(h,B,U,j,w);if(G?.wheel===!1)if(j)I.viewport.style.overflowX="hidden";else I.viewport.style.overflow="hidden";if(G?.scrollbar==="none")I.viewport.classList.add(`${B}-viewport--no-scrollbar`);if(G?.gutter==="stable")I.viewport.classList.add(`${B}-viewport--gutter-stable`);let a=R.has("withGrid")||R.has("withMasonry");if(j&&u!=null&&G?.scrollbar!=="none"&&!a){I.root.style.height=`${u}px`;let x=I.viewport.style.overflowX;I.viewport.style.overflowX="scroll";let Q0=I.viewport.offsetHeight-I.viewport.clientHeight;if(I.viewport.style.overflowX=x,Q0>0)I.root.style.height=`${u+Q0}px`}let L=I0(W),A=a0(L,j);if(L.top||L.right||L.bottom||L.left)I.content.style.boxSizing="border-box",I.content.style.padding=`${L.top}px ${L.right}px ${L.bottom}px ${L.left}px`;let F=K1(),v=Z||[],i=typeof p==="function"&&(Q.has("withGrid")||Q.has("withMasonry")),c=C>0?typeof p==="function"?(x)=>p(x)+C:p+C:p,g=P?K+C:c,r=c0(g,i?0:v.length);if(C>0){let x=r.getTotalSize;r.getTotalSize=()=>{let Q0=x();return Q0>0?Q0-C:0}}let N=N1(),X={it:v,hc:r,ch:I.viewport.clientHeight,cw:I.viewport.clientWidth,id:!1,ii:!1,ls:0,vt:Y1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>I.viewport.scrollLeft:()=>I.viewport.scrollTop,sst:j?(x)=>{I.viewport.scrollLeft=x}:(x)=>{I.viewport.scrollTop=x},sab:(x=2)=>{let Q0=X.hc.getTotalSize();return X.ls+X.ch>=Q0-x},sic:!1,rfn:null,ffn:null,gvr:(x,Q0,Y0,E0,w0)=>{W1(x,Q0,Y0,E0,w0)},gsp:(x,Q0,Y0,E0,w0)=>{return _1(x,Q0,Y0,E0,w0,X.mp)},pef:null,at:Y.template,vre:!0,st:I.viewport,wh:null,gcw:()=>X.cw,gch:()=>X.ch,gp:C,mp:A,sif:(x)=>x,i2s:(x)=>x,uic:(x,Q0,Y0)=>{let E0=m.get(x);if(!E0)return;j0(E0,Q0,Y0)},csi:null};X.vtf=()=>X.dm?X.dm.getTotal():X.it.length;let k=null,M=!1,E={start:0,end:0},V={start:0,end:0},y={start:-1,end:-1},O={viewportState:{scrollPosition:0,containerSize:j?X.cw:X.ch,totalSize:X.hc.getTotalSize(),actualSize:X.hc.getTotalSize(),isCompressed:!1,compressionRatio:1,visibleRange:{start:0,end:0},renderRange:{start:0,end:0}},lastRenderRange:{start:-1,end:-1},isInitialized:!1,isDestroyed:!1,cachedCompression:null},b=()=>({...O.viewportState,totalItems:X.vtf()}),m=new Map,e=()=>{s0(I.items,m.keys(),(x)=>m.get(x))},o=()=>{let x=X.hc.getTotalSize(),Y0=`${(X.sic?x:Math.min(x,K4))+A}px`;if(j)I.content.style.width=Y0;else I.content.style.height=Y0},J0={selected:!1,focused:!1},K0=`${B}-item`,n=`${B}-item--selected`,q0=`${B}-item--focused`,j0=(x,Q0,Y0)=>{x.classList.toggle(n,Q0),x.classList.toggle(q0,Y0),x.ariaSelected=Q0?"true":"false"},N0=Y.striped,M0=!!N0,G0=N0==="data"||N0==="even"||N0==="odd",A0=`${B}-item--odd`,k0=`${B}-item--placeholder`,B0=`${B}-item--replaced`,O0=`${B}--scrolling`,b0=[],W0=[],D0=[],V0=[],F0=[],H0=[],y0=[],P0=[],d=new Map,X0="__placeholder_",U0={scrollPosition:0,direction:"down"},Z0={velocity:0,reliable:!1},_0={range:{start:0,end:0}},T0=null,R0=null,L0=!1,u0=()=>{if(L0)return;L0=!0,T0=d.get("_getSelectedIds")??null,R0=d.get("_getFocusedIndex")??null},f0=(x,Q0,Y0)=>{if(!Q0)console.warn(`[vlist] Template returned falsy value${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);else if(typeof Q0==="string"&&Q0==="")console.warn(`[vlist] Template returned empty string${Y0!==void 0?` for item at index ${Y0}`:""}. The element will render as blank.`);if(typeof Q0==="string")x.innerHTML=Q0;else x.replaceChildren(Q0)},s1=(x,Q0)=>{let Y0=Math.round(X.hc.getOffset(Q0));if(j)x.style.transform=`translateX(${Y0}px)`;else x.style.transform=`translateY(${Y0}px)`};X.pef=s1;let o1=(x,Q0)=>{let Y0=N.acquire();Y0.className=K0;let E0=!X.csi||X.csi(x);if(j){if(E0)Y0.style.width=`${X.hc.getSize(x)-C}px`;else Y0.style.width="";if(u!=null)Y0.style.height=`${u}px`}else if(E0)Y0.style.height=`${X.hc.getSize(x)-C}px`;else Y0.style.height="";if(Y0.dataset.index=String(x),Y0.dataset.id=String(Q0.id),Y0.ariaSelected="false",Y0.id=`${l}-item-${x}`,X.la=String(X.vtf()),Y0.setAttribute("aria-setsize",X.la),Y0.setAttribute("aria-posinset",String(x+1)),String(Q0.id).startsWith(X0))Y0.classList.add(k0);if(M0)if(G0){let C0=X.sif(x);if(C0<0)Y0.classList.remove(A0);else Y0.classList.toggle(A0,(C0&1)===1)}else Y0.classList.toggle(A0,(x&1)===1);try{f0(Y0,X.at(Q0,x,J0),x)}catch(C0){let z0=C0 instanceof Error?C0:Error(String(C0));F.emit("error",{error:z0,context:`tpl(${x},${Q0.id})`,viewport:b()}),Y0.textContent=""}return X.pef(Y0,x),Y0},n1=()=>{if(X.id)return;let x=j?X.cw:X.ch;if(x<=0)return;u0();let Q0=T0?T0():X.ss,Y0=R0?R0():X.fi,E0=X.vtf();if(X.gvr(X.ls,x,X.hc,E0,E),V1(E,D,E0,V),V.start===y.start&&V.end===y.end){if(X.sic)for(let[$0,v0]of m)X.pef(v0,$0);O.viewportState.scrollPosition=X.ls,O.viewportState.containerSize=x,O.viewportState.visibleRange.start=E.start,O.viewportState.visibleRange.end=E.end,O.viewportState.renderRange.start=V.start,O.viewportState.renderRange.end=V.end;return}let w0=String(E0),C0=w0!==X.la;X.la=w0;for(let[$0,v0]of m)if($0<V.start||$0>V.end)v0.remove(),N.release(v0),m.delete($0);let z0=document.createDocumentFragment(),x0=!1,qJ=y0.length>0?[]:null;for(let $0=V.start;$0<=V.end;$0++){let v0=X.dm?X.dm.getItem($0):X.it[$0];if(v0===void 0)continue;let S0=m.get($0);if(S0){let d0=S0.dataset.id,r0=String(v0.id);if(d0!==r0){let J4=d0?.startsWith(X0),FJ=r0.startsWith(X0);try{f0(S0,X.at(v0,$0,J0),$0)}catch(TJ){let Q4=TJ instanceof Error?TJ:Error(String(TJ));F.emit("error",{error:Q4,context:`tpl(${$0},${v0.id})`,viewport:b()}),S0.textContent=""}S0.dataset.id=r0;let q1=!X.csi||X.csi($0);if(j)S0.style.width=q1?`${X.hc.getSize($0)-C}px`:"";else S0.style.height=q1?`${X.hc.getSize($0)-C}px`:"";if(FJ)S0.classList.add(k0);else S0.classList.remove(k0);if(J4&&!FJ)S0.classList.add(B0),setTimeout(()=>{S0.classList.remove(B0)},300);if(X.dm&&!FJ)p0(Q0,$0,v0.id)}X.pef(S0,$0);let NJ=Q0.has(v0.id);if(j0(S0,NJ,$0===Y0),C0)S0.setAttribute("aria-setsize",X.la)}else{let d0=o1($0,v0);if(qJ)qJ.push({index:$0,element:d0});if(X.dm)p0(Q0,$0,v0.id);let r0=Q0.has(v0.id),NJ=$0===Y0;if(r0||NJ)j0(d0,r0,NJ);z0.appendChild(d0),m.set($0,d0),x0=!0}}if(x0)I.items.appendChild(z0);if(qJ&&qJ.length>0)for(let $0=0;$0<y0.length;$0++)y0[$0](qJ);y.start=V.start,y.end=V.end,O.lastRenderRange.start=V.start,O.lastRenderRange.end=V.end,O.viewportState.scrollPosition=X.ls,O.viewportState.visibleRange.start=E.start,O.viewportState.visibleRange.end=E.end,O.viewportState.renderRange.start=V.start,O.viewportState.renderRange.end=V.end,_0.range.start=V.start,_0.range.end=V.end,F.emit("range:change",_0)},i1=()=>{y.start=-1,y.end=-1,X.rfn()};X.rfn=n1,X.ffn=i1;let t1=()=>{I.root.classList.remove(O0),M=!1,X.vt.velocity=0,X.vt.sampleCount=0,Z0.velocity=0,Z0.reliable=!1,F.emit("velocity:change",Z0),e();for(let x=0;x<W0.length;x++)W0[x]();F.emit("scroll:idle",{scrollPosition:X.ls})},e1=()=>{if(k)clearTimeout(k);k=setTimeout(t1,G?.idleTimeout??U4)},QJ=()=>{if(X.id)return;let x=X.sgt();if(x===X.ls&&M)return;let Q0=x>=X.ls?"down":"up";if(X.vt=X1(X.vt,x),!I.root.classList.contains(O0))I.root.classList.add(O0);M=!0,X.ls=x,X.rfn(),U0.scrollPosition=x,U0.direction=Q0,F.emit("scroll",U0),Z0.velocity=X.vt.velocity,Z0.reliable=X.vt.sampleCount>=j1,F.emit("velocity:change",Z0);for(let Y0=0;Y0<b0.length;Y0++)b0[Y0](x,Q0);e1()},ZJ=null;if(X.st.addEventListener("scroll",QJ,{passive:!0}),H){let x=I.viewport;if(j)ZJ=(Q0)=>{if(O.viewportState.isCompressed)return;if(Math.abs(Q0.deltaX)>Math.abs(Q0.deltaY))return;let Y0=X.sgt(),E0=x.scrollWidth-x.clientWidth,w0=Math.max(0,Math.min(Y0+Q0.deltaY,E0));if(Math.abs(w0-Y0)<1)return;Q0.preventDefault(),X.sst(w0),QJ()};else ZJ=(Q0)=>{if(O.viewportState.isCompressed)return;let Y0=x.scrollWidth>x.clientWidth;if(Y0&&Math.abs(Q0.deltaX)>Math.abs(Q0.deltaY))return;if(Y0&&Q0.deltaX!==0)Q0.preventDefault(),x.scrollLeft+=Q0.deltaX;let E0=X.sgt(),w0=x.scrollHeight-x.clientHeight,C0=Math.max(0,Math.min(E0+Q0.deltaY,w0));if(Math.abs(C0-E0)<1)return;Q0.preventDefault(),X.sst(C0),QJ()};X.wh=ZJ,x.addEventListener("wheel",ZJ,{passive:!1})}let nJ=(x)=>{let Q0=x.target.closest("[data-index]");if(!Q0)return null;let Y0=parseInt(Q0.dataset.index??"-1",10);if(Y0<0)return null;let E0=X.dm?.getItem(Y0)??X.it[Y0];if(!E0||E0.__groupHeader)return null;return{item:E0,index:Y0}},iJ=(x)=>{let Q0=nJ(x);if(Q0)F.emit("item:click",{item:Q0.item,index:Q0.index,event:x});for(let Y0=0;Y0<D0.length;Y0++)D0[Y0](x)},tJ=(x)=>{let Q0=nJ(x);if(Q0)F.emit("item:dblclick",{item:Q0.item,index:Q0.index,event:x})},eJ=(x)=>{for(let Q0=0;Q0<V0.length;Q0++)V0[Q0](x)};if(I.items.addEventListener("click",iJ),I.items.addEventListener("dblclick",tJ),I.root.addEventListener("keydown",eJ),w){let x=null,Q0=(Y0)=>{if(x)clearTimeout(x);x=setTimeout(()=>{if(x=null,X.id)return;let E0=X.vtf();I.liveRegion.textContent=`Showing items ${Y0.range.start+1} to ${Math.min(Y0.range.end+1,E0)} of ${E0}`},300)};F.on("range:change",Q0),P0.push(()=>{if(x)clearTimeout(x);F.off("range:change",Q0)})}let EJ=new ResizeObserver((x)=>{if(X.id)return;for(let Q0 of x){let Y0=Q0.contentRect.height,E0=Q0.contentRect.width,w0=j?E0:Y0,C0=j?X.cw:X.ch;if(X.cw=E0,X.ch=Y0,Math.abs(w0-C0)>1){if(O.viewportState.containerSize=w0,X.ii){let z0=O.cachedCompression;if(z0&&z0.state.isCompressed){let x0=`${z0.state.virtualSize+A}px`;if(j)I.content.style.width=x0;else I.content.style.height=x0}else o();X.rfn(),F.emit("resize",{height:Y0,width:E0})}}if(X.ii)for(let z0=0;z0<F0.length;z0++)F0[z0](E0,Y0)}});if(X.vre)EJ.observe(I.viewport);let LJ={dom:I,emitter:F,resolvedConfig:t,rawConfig:J,rendered:m,pool:N,itemState:J0,sharedState:O,renderRange:V,isHorizontal:j,classPrefix:B,contentSizeHandlers:H0,idleHandlers:W0,afterScroll:b0,clickHandlers:D0,keydownHandlers:V0,resizeHandlers:F0,destroyHandlers:P0,methods:d,onScrollFrame:QJ,resizeObserver:EJ,afterRenderBatch:y0,applyTemplate:f0,updateContentSize:o},BJ=D1(X,LJ);X.dm=M1(X,LJ,BJ),X.sc=G1(X,LJ),d.set("_updateRenderedItem",(x,Q0,Y0,E0)=>{let w0=m.get(x);if(!w0)return;let C0={selected:Y0,focused:E0};try{let z0=X.at(Q0,x,C0);f0(w0,z0,x)}catch(z0){let x0=z0 instanceof Error?z0:Error(String(z0));F.emit("error",{error:x0,context:`tpl(${x},${Q0.id})`,viewport:b()})}w0.dataset.id=String(Q0.id),j0(w0,Y0,E0)});let J1=new WeakSet;d.set("_setSizeCache",(x)=>{if(X.hc=x,X.gp>0&&!J1.has(x)){J1.add(x);let Q0=X.hc.getTotalSize,Y0=X.gp;X.hc.getTotalSize=()=>{let E0=Q0();return E0>0?E0-Y0:0}}}),d.set("_setConstrainSize",(x)=>{X.csi=x});let Q1=new Map;for(let x of s)if(x.methods)for(let Q0 of x.methods){let Y0=Q1.get(Q0);if(Y0)throw Error(`[vlist] Method "${Q0}" is registered by both "${Y0}" and "${x.name}"`);Q1.set(Q0,x.name)}for(let x of s)try{x.setup(BJ)}catch(Q0){let Y0=Q0 instanceof Error?Q0:Error(String(Q0));console.error(`[vlist] Feature "${x.name}" setup failed:`,Y0),F.emit("error",{error:Y0,context:x.name,viewport:b()})}if(P&&!Q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(w&&!d.has("_getFocusedIndex")){let x=j?L.left:L.top,Q0=j?L.right:L.bottom;O1(X,I,B,l,j,x,Q0,T,d,m,V0,D0,P0,!!J.focusOnClick)}if(X.ii=!0,BJ.state.isInitialized=!0,o(),X.rfn(),f&&X.it.length>0){let x=X.gsp(X.it.length-1,X.hc,X.ch,X.it.length,"end");X.sst(x),X.ls=x,X.rfn()}return b1(X,I,F,m,N,d,s,P0,BJ,f,T,iJ,tJ,eJ,QJ,EJ,()=>{},()=>{if(k)clearTimeout(k)})}var XJ=(J,Q,j)=>{let q=Q.getTotalSize(),K=j===!0||q>n0,Y=q>n0?n0:q,Z=q>0?Y/q:1;return{isCompressed:K,actualSize:q,virtualSize:Y,ratio:Z}},y1=(J,Q,j,q,K,Y)=>{if(q===0||Q===0)return Y.start=0,Y.end=-1,Y;if(!K.isCompressed||K.ratio===1){let _=j.indexAtOffset(J),$=j.indexAtOffset(J+Q);if($<q-1)$++;return Y.start=Math.max(0,_),Y.end=Math.min(q-1,Math.max(0,$)),Y}let{virtualSize:Z}=K,B=J/Z*q,U=Math.floor(B),W=U1(j,Math.max(0,U),Q,q),z=Math.ceil(B)+W;return Y.start=Math.max(0,U),Y.end=Math.min(q-1,Math.max(0,z)),Y};var JJ=(J,Q,j,q,K,Y,Z)=>{if(!Y.isCompressed||q===0)return j.getOffset(J);if(Y.ratio===1)return j.getOffset(J)-Q;let{virtualSize:D}=Y,B=Q/D,U=j.getTotalSize(),W=B*U;return j.getOffset(J)-W},R1=(J,Q,j,q,K,Y="start")=>{if(q===0)return 0;let Z;if(K.isCompressed&&K.ratio!==1){Z=J/q*K.virtualSize;let W=Q.getSize(J);switch(Y){case"center":Z-=(j-W)/2*K.ratio;break;case"end":Z-=(j-W)*K.ratio;break}return Math.max(0,Z)}Z=Q.getOffset(J);let D=Q.getSize(J);switch(Y){case"center":Z-=(j-D)/2;break;case"end":Z-=j-D;break}let B=K.virtualSize-j;return Math.max(0,Math.min(Z,B))};var N4=(J)=>{if(typeof J!=="object"){let Q=J??2;return{top:Q,right:Q,bottom:Q,left:Q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},UJ=(J,Q,j={},q="vlist",K=!1)=>{let{autoHide:Y=!0,autoHideDelay:Z=1000,minThumbSize:D=15,showOnHover:B=!0,showOnViewportEnter:U=!0,clickBehavior:W="scroll"}=j,z=W==="page"?"scroll":W,_=N4(j.padding),$=K?_.left:_.top,S=K?_.right:_.bottom,w=K?_.bottom:_.right,G=j.hoverZoneWidth??w+16,H=0,T=0,f=0,l=0,C=!1,p=!1,P=0,u=0,t=0,s=null,R=!1,h=null,I=null,a=0,L=0,A=null,F=null,v=null,i=K?"width":"height",c=K?"translateX":"translateY",g=K?(W0)=>W0.clientX:(W0)=>W0.clientY,r=K?"left":"top",N=document.createElement("div"),X=document.createElement("div"),k=document.createElement("div"),M=()=>{if(N.className=`${q}-scrollbar`,X.className=`${q}-scrollbar-thumb`,K)N.classList.add(`${q}-scrollbar--horizontal`);if(j.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${_.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${_.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${_.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${_.left}px`);if(j.minThumbSize!==void 0)N.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${D}px`);if(N.appendChild(X),J.appendChild(N),k.className=`${q}-scrollbar-hover`,K)k.classList.add(`${q}-scrollbar-hover--horizontal`),k.style.height=`${G}px`;else k.style.width=`${G}px`;J.appendChild(k)},E=()=>{if(s)clearTimeout(s),s=null},V=()=>{if(!Y)return;E(),s=setTimeout(O,Z)},y=()=>{if(H<=T)return;if(E(),!R)N.classList.add(`${q}-scrollbar--visible`),R=!0;if(Y&&!C&&!p)V()},O=()=>{if(C||p)return;N.classList.remove(`${q}-scrollbar--visible`),R=!1},b=(W0,D0)=>{H=W0,T=D0;let V0=H>T;if(N.style.display=V0?"":"none",!V0){O();return}let F0=Math.max(0,T-$-S),H0=T/H;if(f=Math.max(D,H0*F0),X.style[i]=`${f}px`,l=F0-f,m(t),!Y)y()},m=(W0)=>{if(t=W0,H<=T||l<=0)return;let D0=H-T,F0=Math.min(1,Math.max(0,W0/D0))*l;X.style.transform=`${c}(${F0}px)`},e=(W0)=>{if(W0.target===X||z!=="jump"||l<=0)return;let D0=H-T,V0=N.getBoundingClientRect(),F0=g(W0)-V0[r],H0=Math.max(0,Math.min(F0-f/2,l));Q(H0/l*D0),y()},o=()=>{if(A!==null)clearTimeout(A),A=null;if(F!==null)cancelAnimationFrame(F),F=null;v=null},J0=(W0)=>{let D0=l>0?L/W0*l:0;if(a<D0)return-1;if(a>=D0+f)return 1;return 0},K0=()=>{let W0=H-T,D0=J0(W0);if(D0===0){o();return}if(D0===-1){if(L<=0){o();return}let V0=Math.max(0,L-T);L=V0,Q(V0)}else{if(L>=W0){o();return}let V0=Math.min(W0,L+T);L=V0,Q(V0)}y()},n=(W0)=>{if(v===null){v=W0,F=requestAnimationFrame(n);return}let D0=H-T,V0=W0-v;v=W0;let F0=J0(D0);if(F0===0){o();return}let H0=12*T/1000,y0=Math.min(H0*V0,T);if(F0===-1){if(L<=0){o();return}let P0=Math.max(0,L-y0);L=P0,Q(P0)}else{if(L>=D0){o();return}let P0=Math.min(D0,L+y0);L=P0,Q(P0)}E(),F=requestAnimationFrame(n)},q0=()=>{o(),V(),document.removeEventListener("mouseup",q0)},j0=(W0)=>{if(W0.target===X||z!=="scroll")return;W0.preventDefault();let D0=N.getBoundingClientRect();a=g(W0)-D0[r],L=t,K0(),A=setTimeout(()=>{F=requestAnimationFrame(n)},350),document.addEventListener("mouseup",q0)},N0=(W0)=>{W0.preventDefault(),W0.stopPropagation(),C=!0,P=g(W0),u=t,E(),N.classList.add(`${q}-scrollbar--dragging`),document.addEventListener("mousemove",M0),document.addEventListener("mouseup",G0)},M0=(W0)=>{if(!C)return;let D0=g(W0)-P,V0=l>0?D0/l:0,F0=H-T,H0=V0*F0,y0=Math.max(0,Math.min(u+H0,F0)),d=y0/F0*l;if(X.style.transform=`${c}(${d}px)`,I=y0,h===null)h=requestAnimationFrame(()=>{if(I!==null)Q(I);h=null})},G0=()=>{if(C=!1,h!==null)cancelAnimationFrame(h),h=null;if(I!==null)Q(I),I=null;if(N.classList.remove(`${q}-scrollbar--dragging`),Y&&!p)V();document.removeEventListener("mousemove",M0),document.removeEventListener("mouseup",G0)},A0=()=>{if(U)y()},k0=()=>{if(!C){if(p=!1,Y)V()}},B0=()=>{p=!0,E(),y()},O0=()=>{if(p=!1,!C&&Y)V()},b0=()=>{if(E(),o(),h!==null)cancelAnimationFrame(h),h=null;if(N.removeEventListener("click",e),N.removeEventListener("mousedown",j0),N.removeEventListener("mouseenter",B0),document.removeEventListener("mouseup",q0),N.removeEventListener("mouseleave",O0),X.removeEventListener("mousedown",N0),J.removeEventListener("mouseenter",A0),J.removeEventListener("mouseleave",k0),document.removeEventListener("mousemove",M0),document.removeEventListener("mouseup",G0),k.removeEventListener("click",e),k.removeEventListener("mousedown",j0),B)k.removeEventListener("mouseenter",B0),k.removeEventListener("mouseleave",O0);if(k.parentNode)k.parentNode.removeChild(k);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),N.parentNode)N.parentNode.removeChild(N)};if(M(),N.addEventListener("click",e),N.addEventListener("mousedown",j0),N.addEventListener("mouseenter",B0),N.addEventListener("mouseleave",O0),X.addEventListener("mousedown",N0),J.addEventListener("mouseenter",A0),J.addEventListener("mouseleave",k0),k.addEventListener("click",e),k.addEventListener("mousedown",j0),B)k.addEventListener("mouseenter",B0),k.addEventListener("mouseleave",O0);return{show:y,hide:O,updateBounds:b,updatePosition:m,isVisible:()=>R,destroy:b0}};var vJ=(J)=>{let Q=null;return{name:"withScrollbar",priority:30,setup(j){let{dom:q,config:K}=j,{classPrefix:Y,horizontal:Z}=K;if(Q=UJ(q.viewport,(B)=>j.scrollController.scrollTo(B),J??{},Y,Z),!q.viewport.classList.contains(`${Y}-viewport--custom-scrollbar`))q.viewport.classList.add(`${Y}-viewport--custom-scrollbar`);if(J?.gutter)q.viewport.classList.add(`${Y}-viewport--gutter`);Q.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize);let D=Q;j.afterScroll.push((B,U)=>{D.updatePosition(B),D.show()}),j.resizeHandlers.push((B,U)=>{if(D)D.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.contentSizeHandlers.push(()=>{if(D)D.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)}),j.destroyHandlers.push(()=>{if(D)D.destroy()})},destroy(){if(Q)Q.destroy(),Q=null}}};var W4=0.65,V4=0.5,P1=1.7,_4=0.95,D4=0.1,M4=5,G4=100,w1=(J,Q,j,q=0)=>{if(J<=0)return 0;let K=Q-q;return Math.max(0,K*(1-j)+q)},SJ=(J)=>{let Q=J?.force??!1,j=null,q=0,K=!1,Y=0,Z=0,D=null,B=0,U=0,W=null,z=[];return{name:"withScale",priority:20,setup(_){let{dom:$,config:S}=_,{classPrefix:w,horizontal:G}=S,H=I0(_.rawConfig.padding),T=G?H.left+H.right:H.top+H.bottom,f=()=>{let s=_.getVirtualTotal(),R=XJ(s,_.sizeCache,Q);if(R.isCompressed&&!K){K=!0,_.scrollController.enableCompression(R);let I=G?$.viewport.scrollLeft:$.viewport.scrollTop;if(G)$.viewport.style.overflowX="hidden";else $.viewport.style.overflow="hidden";if(G)$.viewport.scrollLeft=0;else $.viewport.scrollTop=0;if(I>0)q=I,Z=I;Y=w1(R.virtualSize,_.state.viewportState.containerSize,R.ratio,T),_.updateContentSize(R.virtualSize+Y),_.setScrollFns(()=>q,(N)=>{if(q=N,Z=N,D!==null)cancelAnimationFrame(D),D=null});let a=()=>{let N=Z-q;if(_.getVirtualTotal()===0){q=0,Z=0,D=null,_.scrollController.scrollTo(0);return}if(Math.abs(N)<V4){let X=_.getCachedCompression(),k=Math.max(0,X.virtualSize+Y-_.state.viewportState.containerSize);q=Math.max(0,Math.min(Z,k)),Z=q,D=null}else{q+=N*W4;let k=_.getCachedCompression().virtualSize+Y-_.state.viewportState.containerSize;q=Math.max(0,Math.min(q,k)),D=requestAnimationFrame(a)}_.scrollController.scrollTo(q)},L=$.viewport,A=(N)=>{N.preventDefault();let X=_.getCachedCompression(),k=X.virtualSize+Y-_.state.viewportState.containerSize;if(Z=Math.max(0,Math.min(Z+N.deltaY*X.ratio*P1,k)),D===null)D=requestAnimationFrame(a)};L.addEventListener("wheel",A,{passive:!1});let F=()=>{if(W!==null)cancelAnimationFrame(W),W=null},v=(N)=>{if(F(),D!==null)cancelAnimationFrame(D),D=null;let X=N.touches[0];if(!X)return;let k=G?X.clientX:X.clientY;B=k,U=q,z=[{time:performance.now(),y:k}]},i=(N)=>{N.preventDefault();let X=N.touches[0];if(!X)return;let k=G?X.clientX:X.clientY,M=performance.now();if(z.push({time:M,y:k}),z.length>M4)z.shift();let E=B-k,V=_.getCachedCompression(),y=V.virtualSize+Y-_.state.viewportState.containerSize,O=Math.max(0,Math.min(U+E*V.ratio*P1,y));q=O,Z=O,_.scrollController.scrollTo(O)},c=(N)=>{let X=performance.now(),k=z.filter((y)=>X-y.time<G4),M=0;if(k.length>=2){let y=k[0],O=k[k.length-1],b=O.time-y.time;if(b>0)M=(y.y-O.y)/b}if(z=[],Math.abs(M)<D4)return;let E=M*16,V=()=>{if(E*=_4,Math.abs(E)<0.5){W=null;return}let O=_.getCachedCompression().virtualSize+Y-_.state.viewportState.containerSize,b=q+E;if(b=Math.max(0,Math.min(b,O)),b<=0&&E<0||b>=O&&E>0){q=b,Z=b,_.scrollController.scrollTo(b),W=null;return}q=b,Z=b,_.scrollController.scrollTo(b),W=requestAnimationFrame(V)};W=requestAnimationFrame(V)};L.addEventListener("touchstart",v,{passive:!0}),L.addEventListener("touchmove",i,{passive:!1}),L.addEventListener("touchend",c,{passive:!0}),L.addEventListener("touchcancel",c,{passive:!0}),_.destroyHandlers.push(()=>{L.removeEventListener("wheel",A),L.removeEventListener("touchstart",v),L.removeEventListener("touchmove",i),L.removeEventListener("touchend",c),L.removeEventListener("touchcancel",c)});let g=$.viewport.querySelector(`.${w}-scrollbar`),r=()=>{if((G?$.viewport.scrollLeft:$.viewport.scrollTop)!==0)if(G)$.viewport.scrollLeft=0;else $.viewport.scrollTop=0};if(L.addEventListener("scroll",r,{passive:!0}),_.destroyHandlers.push(()=>{L.removeEventListener("scroll",r)}),!g){if(j=UJ($.viewport,(X)=>_.scrollController.scrollTo(X),{},w,G),!$.viewport.classList.contains(`${w}-viewport--custom-scrollbar`))$.viewport.classList.add(`${w}-viewport--custom-scrollbar`);j.updateBounds(R.virtualSize,_.state.viewportState.containerSize);let N=j;_.afterScroll.push((X,k)=>{if(N)N.updatePosition(X),N.show()}),_.resizeHandlers.push((X,k)=>{if(N){let M=_.getCachedCompression();N.updateBounds(M.virtualSize,_.state.viewportState.containerSize)}})}}else if(!R.isCompressed&&K){if(K=!1,D!==null)cancelAnimationFrame(D),D=null;if(W!==null)cancelAnimationFrame(W),W=null;if(q=0,Z=0,z=[],_.setScrollFns(G?()=>$.viewport.scrollLeft:()=>$.viewport.scrollTop,G?(I)=>{$.viewport.scrollLeft=I}:(I)=>{$.viewport.scrollTop=I}),G)$.viewport.scrollLeft=0;else $.viewport.scrollTop=0;if(_.scrollController.disableCompression(),G)$.viewport.style.overflowX="auto";else $.viewport.style.overflow="auto";if(j)j.destroy(),j=null;Y=0,_.updateContentSize(R.actualSize)}else if(R.isCompressed)_.scrollController.updateConfig({compression:R}),Y=w1(R.virtualSize,_.state.viewportState.containerSize,R.ratio,T),_.updateContentSize(R.virtualSize+Y);if(j)j.updateBounds(R.virtualSize+Y,_.state.viewportState.containerSize);let h=_.state.viewportState;if(h.isCompressed=R.isCompressed,h.compressionRatio=R.ratio,h.totalSize=R.virtualSize+Y,h.actualSize=R.actualSize,_.state.cachedCompression={state:R,totalItems:s},K){let I=Math.max(0,R.virtualSize+Y-_.state.viewportState.containerSize),a=q;if(a>I)a=I;else if(a<0)a=0;if(a!==q){if(D!==null)cancelAnimationFrame(D),D=null;if(W!==null)cancelAnimationFrame(W),W=null;_.scrollController.scrollTo(a)}}for(let I=0;I<_.contentSizeHandlers.length;I++)_.contentSizeHandlers[I]()};_.updateCompressionMode=f;let l=_.getCachedCompression.bind(_);_.getCachedCompression=()=>{if(_.state.cachedCompression)return _.state.cachedCompression.state;return l()},_.setVisibleRangeFn((s,R,h,I,a)=>{C=null,p=null;let L=XJ(I,h,Q);y1(s,R,h,I,L,a)}),_.setScrollToPosFn((s,R,h,I,a)=>{let L=XJ(I,R,Q);return R1(s,R,h,I,L,a)});let C=null,p=null;_.setPositionElementFn((s,R)=>{let h=_.getVirtualTotal(),I=XJ(h,_.sizeCache,Q);if(I.isCompressed){let a=_.scrollController.getScrollTop();if(C===null||R<p)p=R,C=Math.round(JJ(R,a,_.sizeCache,h,_.state.viewportState.containerSize,I));let L=C+_.sizeCache.getOffset(R)-_.sizeCache.getOffset(p),A=_.config.horizontal;s.style.transform=A?`translateX(${L}px)`:`translateY(${L}px)`}else{let a=Math.round(_.sizeCache.getOffset(R)),L=_.config.horizontal;s.style.transform=L?`translateX(${a}px)`:`translateY(${a}px)`}});let P=G?H.left:H.top,u=G?H.right:H.bottom,t=_.getItemToScrollIndexFn();_.methods.set("_scrollItemIntoView",(s)=>{let R=_.getCachedCompression(),h=_.state.viewportState.containerSize,I=_.state.viewportState.scrollPosition,a=_.getVirtualTotal(),{visibleRange:L}=_.state.viewportState,A=t(s),F=_J(A,_.sizeCache,I,h,P,u,R,a,L);if(F!==I)_.scrollController.scrollTo(F)}),f(),_.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(D!==null)cancelAnimationFrame(D),D=null;if(W!==null)cancelAnimationFrame(W),W=null})}}};var z1=(J={})=>{let{chunkSize:Q=100,maxCachedItems:j=5000,evictionBuffer:q=200,onEvict:K}=J,Y=new Map,Z=0,D=0,B=(L)=>{let A=Y.get(L);if(!A)A={items:Array(Q),count:0,lastAccess:Date.now()},Y.set(L,A);else A.lastAccess=Date.now();return A},U=(L)=>{return Math.floor(L/Q)},W=(L)=>{return L%Q},z=()=>Z,_=(L)=>{Z=L},$=(L)=>{if(L<0||L>=Z)return;let A=U(L),F=Y.get(A);if(!F)return;return F.items[W(L)]},S=(L)=>{if(L<0||L>=Z)return!1;let A=U(L),F=Y.get(A);if(!F)return!1;return F.items[W(L)]!==void 0},w=(L,A)=>{let F=U(L),v=B(F),i=W(L),c=v.items[i]===void 0;if(v.items[i]=A,c)v.count++,D++;if(L>=Z)Z=L+1},G=(L,A)=>{for(let F=0;F<A.length;F++){let v=A[F];if(v!==void 0)w(L+F,v)}},H=(L)=>{if(L<0||L>=Z)return!1;let A=U(L),F=Y.get(A),v=W(L);if(!(F!==void 0&&F.items[v]!==void 0))return!1;let c=A,g=Array.from(Y.keys()).filter((N)=>N>=c).sort((N,X)=>N-X),r=[];for(let N of g){let X=Y.get(N),k=N*Q;for(let M=0;M<Q;M++){if(X.items[M]===void 0)continue;let E=k+M;if(E<=L)continue;r.push({oldIndex:E,item:X.items[M]})}}if(F.items[v]=void 0,F.count--,D--,F.count===0)Y.delete(A);for(let{oldIndex:N}of r){let X=U(N),k=Y.get(X);if(!k)continue;let M=W(N);if(k.items[M]!==void 0){if(k.items[M]=void 0,k.count--,D--,k.count===0)Y.delete(X)}}for(let{oldIndex:N,item:X}of r){let k=N-1,M=U(k),E=B(M),V=W(k);E.items[V]=X,E.count++,D++}return Z--,!0},T=(L,A)=>{let F=[];for(let v=L;v<=A&&v<Z;v++)F.push($(v));return F},f=(L,A)=>{for(let F=L;F<=A&&F<Z;F++)if(!S(F))return!1;return!0},l=()=>{let L=[],A=null,F=Array.from(Y.keys()).sort((v,i)=>v-i);for(let v of F){let i=Y.get(v);if(!i)continue;let c=v*Q;for(let g=0;g<Q;g++){let r=c+g;if(r>=Z)break;if(i.items[g]!==void 0)if(A===null)A={start:r,end:r};else if(r===A.end+1)A.end=r;else L.push(A),A={start:r,end:r};else if(A!==null)L.push(A),A=null}}if(A!==null)L.push(A);return L},C=(L,A)=>{let F=[],v=null;for(let i=L;i<=A&&i<Z;i++)if(!S(i))if(v===null)v={start:i,end:i};else v.end=i;else if(v!==null)F.push(v),v=null;if(v!==null)F.push(v);return F},p=(L)=>{return Y.has(L)},P=(L)=>{let A=Y.get(L);if(A)A.lastAccess=Date.now()},u=(L,A)=>{if(L>A||Y.size===0)return;let F=Date.now(),v=U(Math.max(0,L)),i=U(Math.min(Z-1,A));for(let c=v;c<=i;c++){let g=Y.get(c);if(g)g.lastAccess=F}},t=(L,A)=>{if(D<=j)return 0;let F=Math.max(0,L-q),v=Math.min(Z-1,A+q),i=U(F),c=U(v),g=0,r=[];for(let[N,X]of Y)if(N<i||N>c)g+=X.count,r.push(N),D-=X.count,Y.delete(N);if(g>0&&K)K(g,r);return g},s=()=>{if(D<=j)return 0;let L=Array.from(Y.entries()).sort(([,v],[,i])=>v.lastAccess-i.lastAccess),A=0,F=[];for(let[v,i]of L){if(D<=j)break;A+=i.count,D-=i.count,F.push(v),Y.delete(v)}if(A>0&&K)K(A,F);return A},R=()=>{return{totalItems:Z,cachedItems:D,cachedChunks:Y.size,chunkSize:Q,maxCachedItems:j,memoryEfficiency:Z>0?1-D/Z:1}},h=()=>D,I=()=>{Y.clear(),D=0};return{chunkSize:Q,maxCachedItems:j,getTotal:z,setTotal:_,get:$,has:S,set:w,setRange:G,delete:H,getRange:T,isRangeLoaded:f,getLoadedRanges:l,findUnloadedRanges:C,getChunkIndex:U,isChunkLoaded:p,touchChunk:P,touchChunksForRange:u,evictDistant:t,evictToLimit:s,getStats:R,getCachedCount:h,clear:I,reset:()=>{I(),Z=0}}},O4=(J)=>{if(J.length===0)return[];let Q=[...J].sort((q,K)=>q.start-K.start),j=[{...Q[0]}];for(let q=1;q<Q.length;q++){let K=Q[q],Y=j[j.length-1];if(K.start<=Y.end+1)Y.end=Math.max(Y.end,K.end);else j.push({...K})}return j},C1=(J,Q,j)=>{let q=Math.floor(J.start/j)*j,K=Math.ceil((J.end+1)/j)*j-1,Y={start:q,end:K};if(Q.length===0)return[Y];let Z=[],D=O4(Q),B=Y.start;for(let U of D){if(U.end<B)continue;if(U.start>Y.end)break;if(U.start>B)Z.push({start:B,end:Math.min(U.start-1,Y.end)});if(B=U.end+1,B>Y.end)break}if(B<=Y.end)Z.push({start:B,end:Y.end});return Z};var v1=(J={})=>{let{maskCharacter:Q=F1,maxSampleSize:j=T1}=J,q=[],K=!1,Y=(W)=>{if(K||W.length===0)return;let z=Math.min(W.length,j);for(let _=0;_<z;_++){let $=W[_];if(!$||typeof $!=="object")continue;let S={};for(let[w,G]of Object.entries($)){if(w.startsWith("_")||w==="id")continue;S[w]=String(G??"").length}if(Object.keys(S).length>0)q.push(S)}K=!0},Z=()=>K,D=(W)=>{let z={id:`${h0}${W}`,[kJ]:!0,_index:W};if(q.length===0)return z.label=Q.repeat(12),z;let _=q[W%q.length];for(let[$,S]of Object.entries(_))z[$]=Q.repeat(Math.max(1,S));return z};return{analyzeStructure:Y,hasAnalyzedStructure:Z,generate:D,generateRange:(W,z)=>{let _=[];for(let $=W;$<=z;$++)_.push(D($));return _},clear:()=>{q=[],K=!1}}},OJ=(J)=>{if(!J||typeof J!=="object")return!1;return J[kJ]===!0};var A4=50,S1=(J={})=>{let{adapter:Q,initialItems:j,initialTotal:q,storage:K,placeholder:Y,pageSize:Z=A4,onStateChange:D,onItemsLoaded:B,onItemsEvicted:U}=J,W=z1({...K,onEvict:(n,q0)=>{U?.(n),u()}}),z=null,_=()=>{if(!z)z=v1(Y);return z},$=new Map,S=!1,w,G=!0,H,T,f=[],l=0,C=new Map,p=new Map,P=()=>{for(let n of p.values())n.abort();p.clear(),C.clear()},u=()=>{D?.(F())},t=()=>{$.clear();let n=W.getLoadedRanges();for(let q0 of n)for(let j0=q0.start;j0<=q0.end;j0++){let N0=W.get(j0);if(N0&&!OJ(N0))$.set(N0.id,j0)}},s=(n,q0)=>{if(!OJ(q0))$.set(q0.id,n)},R=(n)=>{$.delete(n)},h=(n,q0)=>{return`${n}-${q0}`},I=()=>W.getTotal(),a=()=>W.getCachedCount(),L=()=>S,A=()=>G,F=()=>({total:W.getTotal(),cached:W.getCachedCount(),isLoading:S,pendingRanges:f,error:w,hasMore:G,cursor:H}),v=()=>W,i=()=>_(),c=(n)=>{let q0=W.get(n);if(q0!==void 0)return q0;if(n>=0&&n<W.getTotal())return _().generate(n);return},g=(n)=>{let q0=$.get(n);if(q0===void 0)return;return W.get(q0)},r=(n)=>{return $.get(n)??-1},N=(n)=>{let q0=W.get(n);return q0!==void 0&&!OJ(q0)},X=(n,q0)=>{let j0=[],N0=W.getTotal(),M0=0,G0=0;W.touchChunksForRange(n,Math.min(q0,N0-1));for(let A0=n;A0<=q0&&A0<N0;A0++){let k0=W.get(A0);if(k0!==void 0)j0.push(k0),M0++;else j0.push(_().generate(A0)),G0++}return j0},k=(n)=>{W.setTotal(n),G=W.getCachedCount()<n,u()},M=(n,q0=0,j0)=>{if(Q&&n.length>0){let N0=_();if(!N0.hasAnalyzedStructure())N0.analyzeStructure(n)}for(let N0=0;N0<n.length;N0++){let M0=n[N0];if(M0!==void 0){let G0=q0+N0;W.set(G0,M0),s(G0,M0)}}if(j0!==void 0)W.setTotal(j0);else if(q0+n.length>W.getTotal())W.setTotal(q0+n.length);if(W.getCachedCount()>=W.getTotal()&&W.getTotal()>0)G=!1;u(),B?.(n,q0,W.getTotal())},E=(n,q0)=>{let j0=W.get(n);if(!j0)return!1;let N0=j0.id,M0={...j0,...q0};if(W.set(n,M0),q0.id!==void 0&&q0.id!==N0)R(N0);return s(n,M0),u(),!0},V=(n)=>{let q0=$.get(n);if(q0===void 0)return!1;if(!W.delete(q0))return!1;return t(),P(),u(),!0},y=async(n,q0)=>{if(!Q)return;let j0=h(n,q0);if(C.has(j0))return;let N0=W.getLoadedRanges(),M0=C1({start:n,end:q0},N0,W.chunkSize);if(M0.length===0)return;let G0=W.chunkSize,A0=G0*2;for(let[O0,b0]of p){let W0=O0.indexOf("-"),D0=parseInt(O0.slice(0,W0),10);if(Math.abs(D0-n)>A0)b0.abort(),p.delete(O0),C.delete(O0)}let k0=[];for(let O0 of M0){let b0=Math.floor(O0.start/G0),W0=Math.floor(O0.end/G0);for(let D0=b0;D0<=W0;D0++){let V0=D0*G0,F0=V0+G0-1,H0=h(V0,F0);if(!k0.some((y0)=>y0.start===V0)&&!C.has(H0))k0.push({start:V0,end:F0})}}let B0=[];for(let O0 of M0){let b0=Math.floor(O0.start/G0),W0=Math.floor(O0.end/G0);for(let D0=b0;D0<=W0;D0++){let V0=D0*G0,F0=V0+G0-1,H0=h(V0,F0);if(C.has(H0)){let y0=C.get(H0);if(!B0.includes(y0))B0.push(y0)}}}for(let O0 of k0){let b0=h(O0.start,O0.end),W0=new AbortController;p.set(b0,W0);let D0=(async()=>{f.push(O0),S=!0,w=void 0,u();try{let V0=O0.end-O0.start+1,F0={offset:O0.start,limit:V0,cursor:O0.start===T?H:void 0,signal:W0.signal},H0=await Q.read(F0);if(M(H0.items,O0.start,H0.total),H0.cursor)H=H0.cursor,T=O0.start+H0.items.length;let y0=O0.start+H0.items.length;if(y0>=l){if(l=y0,H0.hasMore!==void 0)G=H0.hasMore;else if(H0.total!==void 0)G=y0<H0.total}}catch(V0){if(V0?.name==="AbortError")return;w=V0 instanceof Error?V0:Error(String(V0))}finally{C.delete(b0),p.delete(b0),f=f.filter((V0)=>V0.start!==O0.start||V0.end!==O0.end),S=C.size>0,u()}})();C.set(b0,D0),B0.push(D0)}await Promise.all(B0)},O=async(n,q0)=>{if(W.isRangeLoaded(n,q0))return;await y(n,q0)},b=async()=>{if(!Q)return;await y(0,Z-1)},m=async()=>{if(!Q||S||!G)return!1;let n=W.getCachedCount(),q0=W.getTotal(),j0=n,N0=Math.min(j0+Z-1,q0>0?q0-1:j0+Z-1);if(j0>=q0&&q0>0)return G=!1,!1;return await y(j0,N0),W.getCachedCount()>n},e=async()=>{if(W.clear(),W.setTotal(0),$.clear(),z)z.clear();P(),f=[],S=!1,H=void 0,T=void 0,G=!0,l=0,w=void 0,u()},o=(n,q0)=>{if(W.evictDistant(n,q0)>0)t()},J0=()=>{W.clear(),$.clear(),H=void 0,T=void 0,w=void 0,f=[],S=!1,u()},K0=()=>{if(W.reset(),$.clear(),z)z.clear();H=void 0,T=void 0,G=!0,l=0,w=void 0,f=[],S=!1,u()};if(j&&j.length>0)M(j,0,q??j.length);else if(q!==void 0)W.setTotal(q),u();return{getState:F,getTotal:I,getCached:a,getIsLoading:L,getHasMore:A,getStorage:v,getPlaceholders:i,getItem:c,getItemById:g,getIndexById:r,isItemLoaded:N,getItemsInRange:X,setTotal:k,setItems:M,updateItem:E,removeItem:V,loadRange:y,ensureRange:O,loadInitial:b,loadMore:m,reload:e,evictDistant:o,clear:J0,reset:K0}};var fJ=(J)=>{let{adapter:Q,loading:j,storage:q,total:K,autoLoad:Y=!0}=J,Z=j?.cancelThreshold??E1,D=j?.preloadThreshold??L1,B=j?.preloadAhead??A1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(U){let{emitter:W}=U,z=U.config.reverse,_=U.methods.get("_getGridLayout"),$=(R)=>{if(_){let h=_();if(h){let I=U.dataManager.getTotal();return h.getItemRange(R.start,R.end,I)}}return R},S=S1({adapter:Q,...K!==void 0&&{initialTotal:K},pageSize:q?.chunkSize??o0,...q&&{storage:{...q.chunkSize!==void 0&&{chunkSize:q.chunkSize},...q.maxCachedItems!==void 0&&{maxCachedItems:q.maxCachedItems}}},onStateChange:()=>{if(U.state.isInitialized){let R=U.getVirtualTotal();U.sizeCache.rebuild(R),U.updateCompressionMode();let h=U.getCachedCompression();U.state.viewportState.totalSize=h.virtualSize,U.state.viewportState.actualSize=h.actualSize,U.state.viewportState.isCompressed=h.isCompressed,U.state.viewportState.compressionRatio=h.ratio,U.updateContentSize(h.virtualSize),U.renderIfNeeded()}},onItemsLoaded:(R,h,I)=>{if(U.state.isInitialized)U.forceRender(),W.emit("load:end",{items:R,total:I,offset:h})}});U.replaceDataManager(S);let w=null,G=null,H=0,T=!1,f=null,l=120,C=(R=!1)=>{if(T=!1,G=null,R)w=null;if(f!==null)clearTimeout(f),f=null},p=()=>{if(!G)return;G=null;let{renderRange:R}=U.state.viewportState;if(R.end<R.start)return;w=null;let h=$(R);U.dataManager.ensureRange(h.start,h.end).catch((I)=>{W.emit("error",{error:I,context:"ensureRange"})})};U.afterScroll.push((R,h)=>{if(U.state.isDestroyed)return;let I=U.scrollController.getVelocity(),L=U.scrollController.isTracking()&&I<=Z;if(H>Z&&I<=Z)T=!0;else if(T&&I>Z)C();if(T&&I<0.5)C(!0);if(H=I,(U.scrollController.isAtTop()||U.scrollController.isAtBottom())&&(T||G))C(!0),L=!0;let F=T&&I>0.5;if(L&&!U.dataManager.getIsLoading()&&U.dataManager.getHasMore()){if(z){if(R<HJ)W.emit("load:start",{offset:U.dataManager.getCached(),limit:o0}),U.dataManager.loadMore().catch((c)=>{W.emit("error",{error:c,context:"loadMore"})})}else if(U.state.viewportState.totalSize-R-U.state.viewportState.containerSize<HJ)W.emit("load:start",{offset:U.dataManager.getCached(),limit:o0}),U.dataManager.loadMore().catch((g)=>{W.emit("error",{error:g,context:"loadMore"})})}let{renderRange:v}=U.state.viewportState;if(!w||v.start!==w.start||v.end!==w.end){if(w={start:v.start,end:v.end},L&&!F){if(G=null,f!==null)clearTimeout(f),f=null;let c=$(v),g=c.start,r=c.end,N=_?U.dataManager.getTotal():U.getVirtualTotal();if(I>D)if(h==="down")r=Math.min(c.end+B,N-1);else g=Math.max(c.start-B,0);U.dataManager.ensureRange(g,r).catch((X)=>{W.emit("error",{error:X,context:"ensureRange"})})}else if(G={start:v.start,end:v.end},F){if(f!==null)clearTimeout(f);f=setTimeout(()=>{f=null,p(),C()},l)}}});let P=200,u=null;U.afterScroll.push((R,h)=>{if(u!==null)clearTimeout(u);u=setTimeout(()=>{u=null,p(),C()},P)}),U.destroyHandlers.push(()=>{if(u!==null)clearTimeout(u),u=null;C()});let t=()=>{if(U.state.isDestroyed)return;w=null;let{renderRange:R}=U.state.viewportState;if(R.end>0){let h=$(R);U.dataManager.ensureRange(h.start,h.end).catch((I)=>{W.emit("error",{error:I,context:"ensureRange"})})}p()};window.addEventListener("online",t),U.destroyHandlers.push(()=>{window.removeEventListener("online",t)}),W.on("load:start",()=>{U.dom.root.setAttribute("aria-busy","true")}),W.on("load:end",()=>{U.dom.root.removeAttribute("aria-busy")}),U.methods.set("loadVisibleRange",async()=>{w=null,G=null,U.forceRender();let{renderRange:R}=U.state.viewportState;if(R.end>0){let h=$(R);W.emit("load:start",{offset:h.start,limit:h.end-h.start+1}),await U.dataManager.ensureRange(h.start,h.end)}}),U.methods.set("reload",async(R)=>{w=null,G=null;let h=R?.snapshot,I=h!=null&&(h.total??0)>0&&h.index>0,a=I||R?.skipInitialLoad===!0;if(U.invalidateRendered(),await U.dataManager.reload(),!I)U.scrollController.scrollTo(0);if(!a){W.emit("load:start",{offset:0,limit:o0}),await U.dataManager.loadInitial(),U.forceRender();let{renderRange:L}=U.state.viewportState;if(L.end>0){let A=$(L);await U.dataManager.ensureRange(A.start,A.end)}}if(I){let L=U.methods.get("restoreScroll");if(L)L(h)}});let s=!1;if(U.methods.set("_cancelAutoLoad",()=>{s=!0}),Y)queueMicrotask(()=>{if(s)return;W.emit("load:start",{offset:0,limit:o0}),U.dataManager.loadInitial().catch((R)=>{W.emit("error",{error:R,context:"loadInitial"})})});else if(K!==void 0)U.dataManager.setTotal(K)}}};var AJ=(J)=>J==null?0:typeof J==="function"?J():J,IJ=(J)=>{let Q=null,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(q){let{dom:K,state:Y,config:Z,emitter:D}=q;if(K.root.style.overflow="visible",K.root.style.height="auto",Z.horizontal)K.viewport.style.overflowX="visible",K.viewport.style.overflowY="visible";else K.viewport.style.overflow="visible";if(K.viewport.classList.remove(`${Z.classPrefix}-viewport--custom-scrollbar`),q.disableViewportResize(),q.disableWheelHandler(),q.setScrollTarget(window),q.setScrollFns(()=>{let z=K.viewport.getBoundingClientRect();return Math.max(0,Z.horizontal?-z.left:-z.top)},(z)=>{let _=K.viewport.getBoundingClientRect();if(Z.horizontal){let $=_.left+window.scrollX;window.scrollTo({left:$+z,top:window.scrollY,behavior:"instant"})}else{let $=_.top+window.scrollY;window.scrollTo({left:window.scrollX,top:$+z,behavior:"instant"})}}),q.setContainerDimensions({width:()=>window.innerWidth,height:()=>window.innerHeight}),Y.viewportState.containerSize=window.innerHeight,j){let z=Z.horizontal,_=q.getItemToScrollIndexFn();q.setScrollToPosFn(($,S,w,G,H)=>{let T=AJ(z?j.left:j.top),f=AJ(z?j.right:j.bottom);if(G===0)return 0;let l=Math.max(0,Math.min($,G-1)),C=S.getOffset(l),p=S.getSize(l),P=S.getTotalSize(),u=Math.max(0,P-w+f),t;switch(H){case"start":t=C-T;break;case"center":{let s=w-T-f;t=C-T-(s-p)/2;break}case"end":t=C-w+p+f;break}return Math.max(-T,Math.min(t,u))}),q.methods.set("_scrollItemIntoView",($)=>{let S=_($),w=z?window.innerWidth:window.innerHeight,G=AJ(z?j.left:j.top),H=AJ(z?j.right:j.bottom),T=K.viewport.getBoundingClientRect(),f=z?window.scrollX:window.scrollY,l=(z?T.left:T.top)+f,C=l-f,p=q.sizeCache.getOffset(S),P=q.sizeCache.getSize(S),u=C+p,t=u+P,s=G,R=w-H,h=f;if(u<s)h=l+p-s;else if(t>R)h=l+p+P-R;if(h!==f)if(z)window.scrollTo({left:h,top:window.scrollY,behavior:"instant"});else window.scrollTo({left:window.scrollX,top:h,behavior:"instant"})})}let{innerHeight:B,innerWidth:U}=window,W=()=>{let{innerWidth:z,innerHeight:_}=window,$=Z.horizontal?z:_,S=Z.horizontal?U:B;if(Math.abs($-S)<=1)return;B=_,U=z,Y.viewportState.containerSize=_,D.emit("resize",{width:z,height:_});for(let w=0;w<q.resizeHandlers.length;w++)q.resizeHandlers[w](z,_);q.renderIfNeeded()};window.addEventListener("resize",W,{passive:!0}),Q=()=>{window.removeEventListener("resize",W)},q.destroyHandlers.push(Q)},destroy(){if(Q)Q(),Q=null}}};var hJ=(J,Q)=>{let j=0,q=J.length-1;while(j<q){let K=j+q+1>>>1;if(J[K].headerLayoutIndex<=Q)j=K;else q=K-1}return j},f1=(J,Q)=>{let j=0,q=J.length-1;while(j<q){let K=j+q+1>>>1;if(J[K].firstDataIndex<=Q)j=K;else q=K-1}return j},I1=(J,Q)=>{if(J===0)return[];let j=[],q=Q(0),K=0,Y=0;for(let Z=1;Z<J;Z++){let D=Q(Z);if(D!==q){let B=Z-K;j.push({key:q,groupIndex:j.length,headerLayoutIndex:Y,firstDataIndex:K,count:B}),Y=Y+1+B,q=D,K=Z}}return j.push({key:q,groupIndex:j.length,headerLayoutIndex:Y,firstDataIndex:K,count:J-K}),j},pJ=(J,Q)=>{if(J.length===0||Q.length===0)return[];let j=J.length+Q.length,q=Array(j),K=0;for(let Y of Q){q[K]={id:`__group_header_${Y.groupIndex}`,__groupHeader:!0,groupKey:Y.key,groupIndex:Y.groupIndex},K++;for(let Z=0;Z<Y.count;Z++)q[K]=J[Y.firstDataIndex+Z],K++}return q},uJ=(J,Q,j=!1)=>{let q=typeof Q==="number"?(K)=>Q:Q;return(K)=>{let Y=J.getEntry(K);if(Y.type==="header"){if(j&&Y.group.groupIndex===0)return 0;return J.getHeaderHeight(Y.group.groupIndex)}return q(Y.dataIndex)}},h1=(J,Q)=>{let j=I1(J,Q.getGroupForIndex),q=J+j.length,K=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return q},get groupCount(){return j.length},get groups(){return j},getEntry:(_)=>{if(j.length===0)return{type:"item",dataIndex:_,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let $=hJ(j,_),S=j[$];if(_===S.headerLayoutIndex)return{type:"header",group:S};let w=_-S.headerLayoutIndex-1;return{type:"item",dataIndex:S.firstDataIndex+w,group:S}},layoutToDataIndex:(_)=>{if(j.length===0)return _;let $=hJ(j,_),S=j[$];if(_===S.headerLayoutIndex)return-1;let w=_-S.headerLayoutIndex-1;return S.firstDataIndex+w},dataToLayoutIndex:(_)=>{if(j.length===0)return _;let $=f1(j,_),S=j[$],w=_-S.firstDataIndex;return S.headerLayoutIndex+1+w},getGroupAtLayoutIndex:(_)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let $=hJ(j,_);return j[$]},getGroupAtDataIndex:(_)=>{if(j.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let $=f1(j,_);return j[$]},getHeaderHeight:typeof K==="number"?(_)=>K:(_)=>{let $=j[_];if(!$)return 0;return K($.key,_)},rebuild:(_)=>{j=I1(_,Q.getGroupForIndex),q=_+j.length}}};var p1=(J,Q,j,q,K,Y=!1,Z=0)=>{let D=Y?"width":"height",B=Y?"height":"width",U=Y?"X":"Y",W=(X,k)=>{X.style[D]=`${k}px`},z=document.createElement("div");z.className=`${K}-sticky-header`,z.setAttribute("role","presentation"),z.setAttribute("aria-hidden","true"),z.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(Y?`top:0;bottom:0;left:${Z||0}px`:`top:${Z||0}px`);let _=()=>{let X=document.createElement("div");return X.className="sticky-group",X.style.position="absolute",X.style.willChange="transform",X.style[B]="100%",X},$=_(),S=_();z.append($,S),J.insertBefore(z,J.firstChild);let w=$,G=S,H=Q.groups,T=[],f=[],l=0,C=()=>{H=Q.groups,l=H.length,T=Array(l),f=Array(l);for(let X=0;X<l;X++)T[X]=j.getOffset(H[X].headerLayoutIndex),f[X]=Q.getHeaderHeight(X)};C();let p=-1,P=0,u=-1,t=!1,s=0,R=!1,h=(X,k)=>{q(X,k);let M=f[k];return W(X,M),M},I=(X)=>{X.replaceChildren(),X.style.transform=""},a=(X)=>{if(X===p)return;if(p=X,P=0,X<0||X>=l){I(w);return}P=h(w,X),W(z,P),w.style.transform=""},L=(X)=>{if(X===s)return;s=X;let k=Math.round(X);w.style.transform=`translate${U}(${k}px)`,G.style.transform=`translate${U}(${k+P}px)`},A=()=>{s=0,w.style.transform="",G.style.transform=""},F=()=>{if(!R)return;let X=w;w=G,G=X,p=u,P=p>=0?f[p]:0,W(z,P),I(G),u=-1,R=!1,A()},v=()=>{if(!R)return;I(G),u=-1,R=!1,A()},i=()=>{if(t)return;t=!0,z.style.display=""},c=()=>{if(!t)return;t=!1,z.style.display="none",I(w),p=-1,P=0,v()},g=(X)=>{if(l===0){c();return}if(X<T[0]){c();return}let k=0,M=l-1;while(k<M){let V=k+M+1>>>1;if(T[V]+f[V]<=X)k=V;else M=V-1}if(!t)i();a(k);let E=k+1;if(E<l){let V=T[E]-X;if(V<=0&&V>-P){if(u!==E||!R)u=E,h(G,E),R=!0;L(V)}else if(V<=-P){if(R)F()}else if(R)v()}else if(R)v()},r=()=>{C();let X=p;if(p=-1,P=0,X>=0)a(X)},N=()=>{z.remove(),p=-1,P=0,u=-1,t=!1,R=!1};return z.style.display="none",{update:g,refresh:r,show:i,hide:c,destroy:N}};var m0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var u1=(J,Q,j,q,K,Y)=>{if(q===0)return 0;let Z=Math.max(0,Math.min(J,q-1)),D=Q.getOffset(Z),B=Q.getSize(Z),U=Q.getTotalSize(),W=Math.max(0,U-j),z;switch(Y){case"center":z=D-j/2+B/2;break;case"end":z=D-j+B;break;case"start":default:z=D;break}return Math.max(0,Math.min(z,W))};var KJ=(J,Q,j,q,K="start",Y,Z=u1)=>{return Z(J,Q,j,q,Y,K)};var E4=(J,Q)=>{if(J.header){let j=Q?J.header.width??J.header.height:J.header.height??J.header.width;return{...J,header:{...J.header,height:j}}}if(J.headerHeight!=null&&J.headerTemplate)return{...J,header:{height:J.headerHeight,template:J.headerTemplate}};return J},gJ=(J)=>{let Q=J.header,j=Q?Q.height??Q.width:J.headerHeight,q=Q?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(j==null||j<=0)throw Error("[vlist/builder] withGroups: header.height must be a positive number");if(!q)throw Error("[vlist/builder] withGroups: header.template is required");let K=null,Y=null,Z=[],D=[];return{name:"withGroups",priority:10,setup(B){let{dom:U,config:W,rawConfig:z}=B,{classPrefix:_}=W,$=E4(J,W.horizontal),w=z.item.height;Z=z.items?[...z.items]:[];let G=Z.length,H={getGroupForIndex:$.getGroupForIndex,header:{height:$.header.height,template:$.header.template},sticky:$.sticky??!1};K=h1(G,H),D=pJ(Z,K.groups);let T=$.sticky!==!1,f=uJ(K,w,T);B.setSizeConfig(f),B.rebuildSizeCache(D.length),B.dataManager.setItems(D,0,D.length);let l=z.item.template,{template:C}=$.header,p=(c,g,r)=>{if(m0(c))return C(c.groupKey,c.groupIndex);return l(c,g,r)},P=B.methods.get("_getGridLayout"),u=B.methods.get("_replaceGridRenderer"),t=B.methods.get("_updateGridLayoutForGroups"),s=B.methods.get("_createGridRenderer"),R=B.methods.get("_getTableLayout"),h=B.methods.get("_updateTableForGroups"),I=B.methods.get("_getTableHeaderHeight");if(P&&u&&s){if(t)t((r)=>{let N=D[r];return!!(N&&m0(N))});let c=P(),g=s(U.items,p,B.sizeCache,c,_,B.getContainerWidth(),()=>B.dataManager.getTotal(),W.ariaIdPrefix);u(g)}else if(R&&h)h((c)=>m0(c),$.header.template);else B.replaceTemplate(p);let a=I?I():0;if(U.root.classList.add(`${_}--grouped`),$.sticky!==!1)if(B.methods.set("_getStickyHeaderHeight",()=>$.header.height),!W.horizontal)U.viewport.style.height=`calc(100% - ${$.header.height}px)`;else U.viewport.style.width=`calc(100% - ${$.header.height}px)`;if($.sticky!==!1){let c=$.header.template,g=(N,X)=>{let k=K.groups[X];if(!k)return;let M=c(k.key,k.groupIndex);if(typeof M==="string")N.innerHTML=M;else N.replaceChildren(M)};Y=p1(U.root,K,B.sizeCache,g,_,W.horizontal,a);let r=Y;B.afterScroll.push((N,X)=>{r.update(N)}),Y.update(B.scrollController.getScrollTop())}let L=z.item?.striped,A=()=>{if(L!=="data"&&L!=="even"&&L!=="odd")return;let c=new Int32Array(D.length),g=L==="odd"?1:0,r=0;for(let N=0;N<D.length;N++)if(m0(D[N])){if(c[N]=-1,L==="even"||L==="odd")r=0}else c[N]=r+++g;B.setStripeIndexFn((N)=>{if(N<0||N>=c.length)return N;return c[N]})};A();let F=()=>{if(!K)return;K.rebuild(Z.length),D=pJ(Z,K.groups);let c=uJ(K,w,T);if(B.setSizeConfig(c),B.rebuildSizeCache(D.length),B.dataManager.setItems(D,0,D.length),A(),Y)Y.refresh()};B.methods.set("setItems",(c)=>{Z=c.slice(),F()}),B.methods.set("appendItems",(c)=>{Z.push(...c),F()}),B.methods.set("prependItems",(c)=>{Z.unshift(...c),F()}),B.methods.set("removeItem",(c)=>{Z=Z.filter((g)=>g.id!==c),F()});let{animateScroll:v,cancelScroll:i}=e0(B.scrollController,B.renderIfNeeded);B.methods.set("scrollToIndex",(c,g)=>{let r=K.dataToLayoutIndex(c),{align:N,behavior:X,duration:k}=g0(g),M=B.dataManager.getTotal(),E=B.adjustScrollPosition(KJ(r,B.sizeCache,B.state.viewportState.containerSize,M,N,B.getCachedCompression()));if(X==="smooth")v(B.scrollController.getScrollTop(),E,k);else i(),B.scrollController.scrollTo(E)}),B.methods.set("_getItems",()=>Z),B.methods.set("_getTotal",()=>Z.length),B.methods.set("_isGroupHeader",(c)=>{let g=D[c];return!!(g&&m0(g))}),B.destroyHandlers.push(()=>{if(i(),Y)Y.destroy(),Y=null;U.root.classList.remove(`${_}--grouped`)})},destroy(){if(Y)Y.destroy(),Y=null}}};var g1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,q=J.isHeaderFn,K={row:0,col:0},Y=(S)=>{if(S<=0)return 0;if(!q)return Math.ceil(S/Q);let w=0,G=0,H=0;for(let T=0;T<S;T++)if(q(T)){if(H++,G>0)w++,G=0;w++,G=0}else if(G++,G>=Q)w++,G=0;if(G>0)w++;return w},Z=(S)=>{return K.row=D(S),K.col=B(S),K},D=(S)=>{if(!q)return Math.floor(S/Q);let w=0,G=0;for(let H=0;H<=S;H++)if(q(H)){if(G>0)w++,G=0;if(H===S)return w;w++,G=0}else{if(H===S)return w;if(G++,G>=Q)w++,G=0}return console.warn(`⚠️ getRow(${S}) fell through - returning ${w}`),w},B=(S)=>{if(!q)return S%Q;if(q(S))return 0;let w=0;for(let G=0;G<=S;G++)if(q(G))w=0;else{if(G===S)return w;if(w++,w>=Q)w=0}return w},U=(S,w,G)=>{if(G<=0)return{start:0,end:-1};if(!q){let C=Math.max(0,S*Q),p=Math.min(G-1,(w+1)*Q-1);return{start:C,end:p}}let H=-1,T=-1,f=0,l=0;for(let C=0;C<G;C++){if(q(C)){if(l>0)f++,l=0;if(f>=S&&f<=w){if(H===-1)H=C;T=C}f++,l=0}else{if(f>=S&&f<=w){if(H===-1)H=C;T=C}if(l++,l>=Q)f++,l=0}if(f>w&&l===0)break}if(H===-1)return{start:0,end:-1};return{start:H,end:T}},W=(S,w,G)=>{if(w<0||w>=Q)return-1;let H=S*Q+w;if(H<0||H>=G)return-1;return H},z=(S)=>{let w=(Q-1)*j;return Math.max(0,(S-w)/Q)};return{get columns(){return Q},get gap(){return j},update:(S)=>{if(S.columns!==void 0)Q=Math.max(1,Math.floor(S.columns));if(S.gap!==void 0)j=S.gap;if(S.isHeaderFn!==void 0)q=S.isHeaderFn},getTotalRows:Y,getPosition:Z,getRow:D,getCol:B,getItemRange:U,getItemIndex:W,getColumnWidth:z,getColumnOffset:(S,w)=>{let G=z(w);return S*(G+j)}}};var L4=(J=200)=>{let Q=[];return{acquire:()=>{let Y=Q.pop();if(Y)return Y;let Z=document.createElement("div");return Z.setAttribute("role","option"),Z},release:(Y)=>{if(Y.remove(),Q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-row"),Y.removeAttribute("data-col"),Q.push(Y)},clear:()=>{Q.length=0}}},F4=1,mJ=(J,Q,j,q,K,Y,Z,D,B=!1)=>{let U=L4(),W=new Map,z=Y,_=!1,$=0,S="",w=-1,G={selected:!1,focused:!1},H=(N,X)=>{return G.selected=N,G.focused=X,G},T=`${K}-item ${K}-grid-item`,f=`${K}-item--selected`,l=`${K}-item--focused`,C=`${K}-item--placeholder`,p=`${K}-item--replaced`,P=(N,X)=>{if(typeof X==="string")N.innerHTML=X;else N.replaceChildren(X)},u=(N,X,k)=>{N.classList.toggle(f,X),N.classList.toggle(l,k)},t=(N,X)=>{let k=q.getRow(N);if(X?.compression?.isCompressed)return JJ(k,X.scrollPosition,j,X.totalItems,X.containerSize,X.compression,X.rangeStart);return j.getOffset(k)},s=(N,X)=>{let k=_&&q.getCol(N)===0,M=k?0:q.getCol(N),E=k?0:q.getColumnOffset(M,z),V;if(_){let y=q.getRow(N),O=0,b=new Set;for(let m=0;m<N;m++){let e=q.getRow(m);if(e<y&&!b.has(e)){let o=j.getSize(m);O+=o,b.add(e)}}V=O}else V=t(N,X);if(B)return`translate(${Math.round(V)}px, ${Math.round(E)}px)`;return`translate(${Math.round(E)}px, ${Math.round(V)}px)`},R=(N,X)=>{N.style.transform=X},h=(N,X)=>{let k=N.dataset.id?.startsWith("__group_header"),M=k?z:q.getColumnWidth(z),E;if(_||k)E=j.getSize(X)-q.gap;else{let V=q.getRow(X);E=j.getSize(V)-q.gap}if(B)N.style.width=`${E}px`,N.style.height=`${M}px`;else N.style.width=`${M}px`,N.style.height=`${E}px`},I=(N,X,k,M,E)=>{let V=U.acquire(),y=H(k,M);if(V.className=T,V.dataset.index=String(N),V.dataset.id=String(X.id),V.dataset.row=String(q.getRow(N)),V.dataset.col=String(q.getCol(N)),V.ariaSelected=String(k),D)V.id=`${D}-item-${N}`;if(Z){let m=Z();if(m!==w)w=m,S=String(m);V.setAttribute("aria-setsize",S),V.setAttribute("aria-posinset",String(N+1))}h(V,N);let O=Q(X,N,y);if(P(V,O),String(X.id).startsWith(h0))V.classList.add(C);return u(V,k,M),R(V,E),{element:V,lastItemId:X.id,lastSelected:k,lastFocused:M,lastTransform:E,lastSeenFrame:$}},a=(N,X,k,M,E)=>{if($++,X.start===0&&N.length>0)_=m0(N[0]);for(let[O,b]of W)if(O>=X.start&&O<=X.end)b.lastSeenFrame=$;else if($-b.lastSeenFrame>F4)U.release(b.element),W.delete(O);let V=!1;if(Z){let O=Z();if(O!==w)w=O,S=String(O),V=!0}let y=null;for(let O=X.start;O<=X.end;O++){let b=O-X.start,m=N[b];if(!m){console.warn(`⚠️ RENDER: Missing item at index ${O} (range: ${X.start}-${X.end}, items.length: ${N.length})`);continue}let e=k.has(m.id),o=O===M,J0=W.get(O);if(J0){let K0=J0.lastItemId!==m.id,n=J0.lastSelected!==e,q0=J0.lastFocused!==o;if(K0){let N0=String(J0.lastItemId),M0=String(m.id),G0=N0.startsWith(h0),A0=M0.startsWith(h0);if(!A0&&p0(k,O,m.id))e=!0;let k0=H(e,o),B0=Q(m,O,k0);if(P(J0.element,B0),J0.element.dataset.id=M0,J0.element.dataset.row=String(q.getRow(O)),J0.element.dataset.col=String(q.getCol(O)),h(J0.element,O),J0.element.classList.toggle(C,A0),G0&&!A0)J0.element.classList.add(p),setTimeout(()=>J0.element.classList.remove(p),300);J0.lastItemId=m.id}if(K0||n||q0)u(J0.element,e,o),J0.element.ariaSelected=String(e),J0.lastSelected=e,J0.lastFocused=o;let j0=s(O,E);if(J0.lastTransform!==j0)R(J0.element,j0),J0.lastTransform=j0;if(V)J0.element.setAttribute("aria-setsize",S)}else{if(p0(k,O,m.id))e=!0;let K0=s(O,E),n=I(O,m,e,o,K0);if(!y)y=document.createDocumentFragment();y.appendChild(n.element),W.set(O,n)}}if(y)J.appendChild(y)},L=(N)=>{for(let[X,k]of W){let M=s(X,N);if(k.lastTransform!==M)R(k.element,M),k.lastTransform=M}},A=(N,X,k,M)=>{let E=W.get(N);if(!E)return;let V=H(k,M),y=Q(X,N,V);P(E.element,y),u(E.element,k,M),E.element.dataset.id=String(X.id),E.element.ariaSelected=String(k),h(E.element,N),E.lastItemId=X.id,E.lastSelected=k,E.lastFocused=M},F=(N,X,k)=>{let M=W.get(N);if(!M)return;let E=M.lastSelected!==X,V=M.lastFocused!==k;if(E||V)u(M.element,X,k),M.lastSelected=X,M.lastFocused=k},v=(N)=>{return W.get(N)?.element},i=(N)=>{if(Math.abs(N-z)<1)return;z=N;for(let[X,k]of W){h(k.element,X);let M=s(X);R(k.element,M),k.lastTransform=M}},c=()=>{s0(J,W.keys(),(N)=>W.get(N)?.element)},g=()=>{for(let[,N]of W)U.release(N.element);W.clear()};return{render:a,updatePositions:L,updateItem:A,updateItemClasses:F,getElement:v,sortDOM:c,updateContainerWidth:i,clear:g,destroy:()=>{g(),U.clear()}}};var T4=new Set,xJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let Q=null,j=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(q){let{dom:K,emitter:Y,config:Z,rawConfig:D}=q,{classPrefix:B}=Z;if(Z.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let U=Z.horizontal,W=VJ(I0(D.padding),U),z=()=>{return(U?K.viewport.clientHeight:q.getContainerWidth())-W},_=D.items?.some((g)=>g.__groupHeader===!0),$={columns:J.columns,gap:J.gap??0};if(_)$.isHeaderFn=(g)=>{let r=q.dataManager.getItem(g);return!!(r&&r.__groupHeader===!0)};Q=g1($);let S=Q.gap;q.setVirtualTotalFn(()=>{let g=q.dataManager.getTotal();return Q.getTotalRows(g)}),q.setItemToScrollIndexFn((g)=>Math.floor(g/$.columns)),q.methods.set("_getNavTotal",()=>q.dataManager.getTotal()),q.methods.set("_getNavDelta",()=>U?{ud:1,lr:$.columns,cols:$.columns}:{ud:$.columns,lr:1,cols:$.columns});let w=D.item,G=Z.horizontal?w.width:w.height,H={containerWidth:z(),columns:Q.columns,gap:Q.gap},T={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof G==="function")q.setSizeConfig((g)=>{let r=H.containerWidth-2,N=(H.columns-1)*H.gap;return T.containerWidth=H.containerWidth,T.columns=H.columns,T.gap=H.gap,T.columnWidth=(r-N)/H.columns,T.row=Q.getRow(g),T.column=Q.getCol(g),T.totalRows=Q.getTotalRows(q.dataManager.getTotal()),T.totalColumns=H.columns,G(g,T)+H.gap});else if(S>0)q.setSizeConfig(G+S);if(q.rebuildSizeCache(),S>0){let g=q.sizeCache.getTotalSize;q.sizeCache.getTotalSize=()=>{let r=g();return r>0?r-H.gap:0}}K.root.classList.add(`${B}--grid`);let f=z(),l=D.item.template,C=()=>{j=mJ(K.items,l,q.sizeCache,Q,B,f,()=>q.dataManager.getTotal(),Z.ariaIdPrefix,Z.horizontal),q.replaceRenderer(j)};C(),q.setUpdateItemClassesFn((g,r,N)=>{j?.updateItemClasses(g,r,N)}),q.methods.set("_updateRenderedItem",(g,r,N,X)=>{j?.updateItem(g,r,N,X)}),q.methods.set("_getGridLayout",()=>Q),q.methods.set("_getGridConfig",()=>$),q.methods.set("_replaceGridRenderer",(g)=>{j=g}),q.methods.set("_createGridRenderer",mJ),q.methods.set("_updateGridLayoutForGroups",(g)=>{Q.update({isHeaderFn:g});let r=q.dataManager.getTotal(),N=0;for(let X=0;X<r;X++)if(Q.getCol(X)===0){let k=q.sizeCache.getSize(X);N+=k}q.sizeCache.getTotalSize=()=>N,q.updateContentSize(N),C()}),q.methods.set("updateGrid",(g)=>{if(g.columns!==void 0){if(!Number.isInteger(g.columns)||g.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");$.columns=g.columns}if(g.gap!==void 0){if(g.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");$.gap=g.gap}if(Q)Q.update($);let r=z();if(H.containerWidth=r,H.columns=$.columns,H.gap=$.gap??0,j)j.updateContainerWidth(r);q.rebuildSizeCache(),q.updateContentSize(q.sizeCache.getTotalSize()),q.updateCompressionMode();for(let N=0;N<q.contentSizeHandlers.length;N++)q.contentSizeHandlers[N]();if(j)j.clear();q.forceRender()});let p=null,P=null,u=!1,t=()=>{if(u)return;u=!0,p=q.methods.get("_getSelectedIds")??null,P=q.methods.get("_getFocusedIndex")??null},s=-1,R=-1,h=!0,I=Z.overscan,a={start:0,end:0},L={start:0,end:0},A=()=>{if(q.state.isDestroyed)return;let g=q.scrollController.getScrollTop(),r=q.state.viewportState.containerSize;if(!h&&g===s&&r===R)return;s=g,R=r,h=!1;let N=q.getVirtualTotal();q.getVisibleRange(g,r,N,a),L.start=Math.max(0,a.start-I),L.end=Math.min(N-1,a.end+I);let X=q.state.viewportState;X.scrollPosition=g,X.visibleRange.start=a.start,X.visibleRange.end=a.end,X.renderRange.start=L.start,X.renderRange.end=L.end;let k=q.state.lastRenderRange,M=X.isCompressed,E=k.start!==L.start||k.end!==L.end;if(!E&&M){j.updatePositions(q.getCompressionContext());return}let V=q.dataManager.getTotal(),y=Q.getItemRange(L.start,L.end,V),O=q.dataManager.getItemsInRange(y.start,y.end),b=M?q.getCompressionContext():void 0;t();let m=p?p():T4,e=P?P():-1;if(j.render(O,y,m,e,b),E)k.start=L.start,k.end=L.end,Y.emit("range:change",{range:{start:L.start,end:L.end}})},F=()=>{if(q.state.isDestroyed)return;q.state.lastRenderRange.start=-1,q.state.lastRenderRange.end=-1,h=!0,A()};q.setRenderFns(A,F);let v=typeof G==="function";q.resizeHandlers.push((g,r)=>{let N=(U?r:g)-W;if(Math.abs(N-H.containerWidth)<1)return;if(H.containerWidth=N,j)j.updateContainerWidth(N);if(v){q.rebuildSizeCache(),q.updateContentSize(q.sizeCache.getTotalSize()),q.updateCompressionMode();for(let X=0;X<q.contentSizeHandlers.length;X++)q.contentSizeHandlers[X]();if(j)j.clear();q.forceRender()}});let{animateScroll:i,cancelScroll:c}=e0(q.scrollController,q.renderIfNeeded);if(q.methods.set("cancelScroll",c),q.methods.set("scrollToIndex",(g,r)=>{let N=Math.floor(g/J.columns),{align:X,behavior:k,duration:M}=g0(r),E=q.dataManager.getState(),V=Q.getTotalRows(E.total),y=Math.max(0,Math.min(N,V-1)),O=q.adjustScrollPosition(KJ(y,q.sizeCache,q.state.viewportState.containerSize,V,X,q.getCachedCompression()));if(k==="smooth")i(q.scrollController.getScrollTop(),O,M);else c(),q.scrollController.scrollTo(O)}),!q.methods.has("_getTotal"))q.methods.set("_getTotal",()=>q.dataManager.getTotal());q.idleHandlers.push(()=>{if(j)j.sortDOM()}),q.destroyHandlers.push(()=>{if(c(),j)j.destroy(),j=null;K.root.classList.remove(`${B}--grid`)})},destroy(){if(j)j.destroy(),j=null}}};var m1=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,q=J.containerSize,K=0,Y=[],Z=()=>{let G=(Q-1)*j;K=Math.max(0,(q-G)/Q),Y=Array(Q);let H=K+j;for(let T=0;T<Q;T++)Y[T]=T*H};Z();let D=[],B=0,U=[],W=(G)=>{let H=0,T=G[0];for(let f=1;f<G.length;f++){let l=G[f];if(l<T)T=l,H=f}return H},z=(G,H)=>{if(G<=0)return B=0,D=[],[];let T=Array(Q).fill(0),f=Array(Q);for(let p=0;p<Q;p++)f[p]=[];let l=Array(G);for(let p=0;p<G;p++){let P=W(T),u=H(p),t=T[P];l[p]={index:p,x:Y[P],y:t,lane:P,size:u,crossSize:K},f[P].push(p),T[P]=t+u+j}D=f;let C=0;for(let p=0;p<Q;p++){let P=T[p],u=P>0?P-j:0;if(u>C)C=u}return B=C,l},_=(G)=>{if(G.length===0)return B>0?B:0;if(B>0)return B;let H=Array(Q).fill(0);for(let f of G){let l=f.y+f.size,C=H[f.lane];if(l>C)H[f.lane]=l}let T=0;for(let f=0;f<Q;f++)if(H[f]>T)T=H[f];return T},$=(G,H,T)=>{if(G.length===0||T<=H)return U.length=0,U;if(D.length===0||D.length!==Q)return S(G,H,T);U.length=0;for(let f=0;f<Q;f++){let l=D[f],C=l.length;if(C===0)continue;let p=0,P=C;while(p<P){let u=p+P>>>1,t=G[l[u]];if(t.y+t.size<=H)p=u+1;else P=u}for(let u=p;u<C;u++){let t=G[l[u]];if(t.y>=T)break;U.push(t)}}return U},S=(G,H,T)=>{let f=[];for(let l of G)if(l.y+l.size>H&&l.y<T)f.push(l);return f};return{get columns(){return Q},get gap(){return j},get containerSize(){return q},update:(G)=>{let H=!1;if(G.columns!==void 0){let T=Math.max(1,Math.floor(G.columns));if(T!==Q)Q=T,H=!0}if(G.gap!==void 0&&G.gap!==j)j=G.gap,H=!0;if(G.containerSize!==void 0&&G.containerSize!==q)q=G.containerSize,H=!0;if(H)Z()},calculateLayout:z,getTotalSize:_,getVisibleItems:$}};var H4=(J=200)=>{let Q=[];return{acquire:()=>{let Y=Q.pop();if(Y)return Y;let Z=document.createElement("div");return Z.setAttribute("role","option"),Z},release:(Y)=>{if(Y.remove(),Q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-lane"),Q.push(Y)},clear:()=>{Q.length=0}}},k4=1,x1=(J,Q,j,q=!1,K,Y)=>{let Z=H4(),D=new Map,B=new Set,U=0,W="",z=-1,_={selected:!1,focused:!1},$=(R,h)=>{return _.selected=R,_.focused=h,_},S=`${j}-item ${j}-masonry-item`,w=`${j}-item--selected`,G=`${j}-item--focused`,H=(R,h)=>{if(typeof h==="string")R.innerHTML=h;else R.replaceChildren(h)},T=(R,h,I)=>{R.classList.toggle(w,h),R.classList.toggle(G,I)},f=(R,h)=>{if(q)R.style.transform=`translate(${Math.round(h.y)}px, ${Math.round(h.x)}px)`;else R.style.transform=`translate(${Math.round(h.x)}px, ${Math.round(h.y)}px)`},l=(R,h)=>{if(q)R.style.width=`${h.size}px`,R.style.height=`${h.crossSize}px`;else R.style.width=`${h.crossSize}px`,R.style.height=`${h.size}px`},C=(R,h,I,a,L)=>{let A=Z.acquire(),F=$(a,L);if(A.className=S,A.dataset.index=String(R),A.dataset.id=String(h.id),A.dataset.lane=String(I.lane),A.ariaSelected=String(a),Y)A.id=`${Y}-item-${R}`;if(K){let i=K();if(i!==z)z=i,W=String(i);A.setAttribute("aria-setsize",W),A.setAttribute("aria-posinset",String(R+1))}l(A,I);let v=Q(h,R,F);return H(A,v),T(A,a,L),f(A,I),{element:A,lastItemId:h.id,lastSelected:a,lastFocused:L,lastY:I.y,lastX:I.x,lastSize:I.size,lastCrossSize:I.crossSize,lastSeenFrame:U}},p=(R,h,I,a)=>{U++,B.clear();for(let A=0;A<h.length;A++)B.add(h[A].index);for(let[A,F]of D)if(B.has(A))F.lastSeenFrame=U;else if(U-F.lastSeenFrame>k4)Z.release(F.element),D.delete(A);let L=null;for(let A=0;A<h.length;A++){let F=h[A],v=F.index,i=R(v);if(!i)continue;let c=I.has(i.id),g=v===a,r=D.get(v);if(r){let N=r.lastItemId!==i.id,X=r.lastSelected!==c,k=r.lastFocused!==g,M=r.lastY!==F.y||r.lastX!==F.x,E=r.lastSize!==F.size||r.lastCrossSize!==F.crossSize;if(N){let V=$(c,g),y=Q(i,v,V);H(r.element,y),r.element.dataset.id=String(i.id),r.lastItemId=i.id}if(N||X||k)T(r.element,c,g),r.element.ariaSelected=String(c),r.lastSelected=c,r.lastFocused=g;if(E)l(r.element,F),r.lastSize=F.size,r.lastCrossSize=F.crossSize;if(M)f(r.element,F),r.lastY=F.y,r.lastX=F.x}else{let N=C(v,i,F,c,g);if(!L)L=document.createDocumentFragment();L.appendChild(N.element),D.set(v,N)}}if(L)J.appendChild(L)},P=()=>{for(let{element:R}of D.values())Z.release(R);D.clear(),J.innerHTML=""};return{render:p,getElement:(R)=>D.get(R)?.element,updateItemClasses:(R,h,I)=>{let a=D.get(R);if(!a)return;let L=a.lastSelected!==h,A=a.lastFocused!==I;if(L||A)T(a.element,h,I),a.lastSelected=h,a.lastFocused=I},sortDOM:()=>{s0(J,D.keys(),(R)=>D.get(R)?.element)},clear:P,destroy:()=>{P(),Z.clear()}}};var $4=new Set,b4=100,dJ=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let Q=null,j=null,q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(K){let{dom:Y,emitter:Z,config:D,rawConfig:B}=K,U=D.classPrefix,W=D.horizontal;if(D.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");Y.root.classList.add(`${U}--masonry`);let z=I0(B.padding),_=VJ(z,W),$=a0(z,W),S=()=>{return(W?Y.viewport.clientHeight:Y.viewport.clientWidth)-_},w={columns:J.columns,gap:J.gap??0,containerSize:S()};Q=m1(w);let G=B.item,H=W&&B.item.width?B.item.width:G.height,T={containerWidth:0,columns:0,gap:0,columnWidth:0},f=typeof H==="function"?(V)=>H(V,T):()=>H,l=()=>{let V=K.dataManager.getTotal(),y=Q;T.containerWidth=y.containerSize,T.columns=y.columns,T.gap=y.gap;let O=(y.columns-1)*y.gap;T.columnWidth=Math.max(0,(T.containerWidth-O)/y.columns),q=y.calculateLayout(V,f),t();let b=Q.getTotalSize(q);K.sizeCache.getTotalSize=()=>b,K.updateContentSize(b)},C=B.item.template;j=x1(Y.items,C,U,W,()=>K.dataManager.getTotal(),D.ariaIdPrefix),K.setUpdateItemClassesFn((V,y,O)=>{j?.updateItemClasses(V,y,O)});let p=[],P=new Int32Array(0),u=[],t=()=>{let V=w.columns,y=q.length;if(p=Array.from({length:V},()=>[]),P.length<y)P=new Int32Array(y);for(let O=0;O<y;O++){let b=q[O],m=p[b.lane].length;p[b.lane].push(O),P[O]=m}u=Array(V);for(let O=0;O<V;O++){let b=p[O],m=new Float64Array(b.length);for(let e=0;e<b.length;e++){let o=q[b[e]];m[e]=o.y+o.size*0.5}u[O]=m}};K.methods.set("_getNavTotal",()=>K.dataManager.getTotal());let s=(V,y)=>{let O=V.length;if(O===0)return-1;if(O===1)return 0;let b=0,m=O-1;while(b<m){let e=b+m>>1;if(V[e]<y)b=e+1;else m=e}if(b>0&&Math.abs(V[b-1]-y)<=Math.abs(V[b]-y))return b-1;return b};K.methods.set("_navigate",(V,y,O)=>{let b=q[V];if(!b)return V;let m=b.lane,e=w.columns,o=P[V],J0=p[m];switch(W?y==="ArrowDown"?"ArrowRight":y==="ArrowUp"?"ArrowLeft":y==="ArrowRight"?"ArrowDown":y==="ArrowLeft"?"ArrowUp":y:y){case"ArrowDown":{if(o+1<J0.length)return J0[o+1];return V}case"ArrowUp":{if(o>0)return J0[o-1];return V}case"ArrowRight":{if(m>=e-1)return V;let n=m+1,q0=b.y+b.size*0.5,j0=p[n];if(j0.length===0)return V;let N0=s(u[n],q0);return N0>=0?j0[N0]:V}case"ArrowLeft":{if(m<=0)return V;let n=m-1,q0=b.y+b.size*0.5,j0=p[n];if(j0.length===0)return V;let N0=s(u[n],q0);return N0>=0?j0[N0]:V}case"Home":return 0;case"End":return O-1;case"PageDown":{let n=K.state.viewportState.containerSize,q0=b.size>0?b.size:150,j0=Math.max(1,Math.floor(n/q0)),N0=Math.min(o+j0,J0.length-1);return J0[N0]}case"PageUp":{let n=K.state.viewportState.containerSize,q0=b.size>0?b.size:150,j0=Math.max(1,Math.floor(n/q0)),N0=Math.max(0,o-j0);return J0[N0]}}return V}),K.methods.set("_scrollItemIntoView",(V)=>{let y=q[V];if(!y)return;let O=K.scrollController.getScrollTop(),b=K.state.viewportState.containerSize,m=y.y,e=m+y.size,o=O+b;if(m<O)K.scrollController.scrollTo(K.adjustScrollPosition(Math.max(0,m)));else if(e>o)K.scrollController.scrollTo(K.adjustScrollPosition(e-b))});let R=null,h=null,I=!1,a=()=>{if(I)return;I=!0,R=K.methods.get("_getSelectedIds")??null,h=K.methods.get("_getFocusedIndex")??null},L=(V)=>K.dataManager.getItem(V),A=-1,F=-1,v=!0,i=D.overscan*b4,c=()=>{if(K.state.isDestroyed)return;a();let V=K.scrollController.getScrollTop(),y=K.state.viewportState.containerSize;if(!v&&V===A&&y===F)return;A=V,F=y,v=!1;let O=Math.max(0,V-i),b=V+y+i,m=Q.getVisibleItems(q,O,b),e=R?R():$4,o=h?h():-1;if(j&&m.length>0)j.render(L,m,e,o);let J0=K.state.viewportState;J0.scrollPosition=V;let K0=m.length,n=K0>0?m[0].index:0,q0=K0>0?m[K0-1].index:0;J0.visibleRange.start=n,J0.visibleRange.end=q0,J0.renderRange.start=n,J0.renderRange.end=q0;let j0=K.state.lastRenderRange;if(j0.start!==n||j0.end!==q0)j0.start=n,j0.end=q0,Z.emit("range:change",{range:{start:n,end:q0}})},g=()=>{K.state.lastRenderRange.start=-1,K.state.lastRenderRange.end=-1,v=!0,c()};K.setRenderFns(c,g);let r=(V,y)=>{let O=(W?y:V)-_;if(Q&&Q.containerSize!==O){if(Q.update({containerSize:O}),l(),j)j.clear();g()}};K.resizeHandlers.push(r);let N=()=>{l(),g()},X=K.dataManager,k=(V)=>{if(typeof X[V]!=="function")return;let y=X[V].bind(X);X[V]=(...O)=>{y(...O),N()}};k("setItems"),k("appendItems"),k("prependItems"),k("updateItem"),k("removeItem");let{animateScroll:M,cancelScroll:E}=e0(K.scrollController,K.renderIfNeeded);K.methods.set("cancelScroll",E),K.methods.set("scrollToIndex",(V,y)=>{let O=q[V];if(!O)return;let{align:b,behavior:m,duration:e}=g0(y),o=O.y,J0=K.state.viewportState.containerSize,K0=o;if(b==="center")K0=o-J0/2+O.size/2;else if(b==="end"){K0=o-J0+O.size;let n=Q.getTotalSize(q);if(V===q.length-1)K0=Math.max(0,n+$-J0)}if(K0=Math.max(0,K0),K0=K.adjustScrollPosition(K0),m==="smooth")M(K.scrollController.getScrollTop(),K0,e);else E(),K.scrollController.scrollTo(K0)}),l(),K.idleHandlers.push(()=>{if(j)j.sortDOM()}),K.destroyHandlers.push(()=>{if(E(),j)j.destroy();Y.root.classList.remove(`${U}--masonry`)})}}};var cJ=(J)=>{let Q=J?.mode??"single",j=J?.followFocus??!1,q=J?.initial,K=J?.shiftArrowToggle??"origin",Y=J?.focusOnClick??!1,Z=H1(q),D=null,B=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(U){let{dom:W,emitter:z,config:_}=U,{classPrefix:$,ariaIdPrefix:S}=_;if(Q==="none"){U.methods.set("select",()=>{}),U.methods.set("deselect",()=>{}),U.methods.set("toggleSelect",()=>{}),U.methods.set("selectAll",()=>{}),U.methods.set("clearSelection",()=>{}),U.methods.set("getSelected",()=>[]),U.methods.set("getSelectedItems",()=>[]),U.methods.set("setSelectionMode",()=>{}),U.methods.set("selectNext",()=>{}),U.methods.set("selectPrevious",()=>{}),U.methods.set("_focusById",()=>{}),U.methods.set("_getFocusedId",()=>{return});return}W.root.classList.add(`${$}--selectable`);let w=U.methods.get("_isGroupHeader"),G=(N)=>w?w(N):!1,H=(N,X,k)=>{if(!w)return N;let M=N;while(M>=0&&M<k){if(!G(M))return M;M+=X}M=N-X;while(M>=0&&M<k){if(!G(M))return M;M-=X}return N},T=new Map,f=()=>{T.clear();let N=U.dataManager.getTotal(),X=U.dataManager.getCached();if(X===0)return;if(X>=N){for(let M=0;M<N;M++){let E=U.dataManager.getItem(M);if(E)T.set(E.id,M)}return}let k=U.dataManager.getStorage();if(k&&typeof k.getLoadedRanges==="function"){let M=k.getLoadedRanges();for(let E of M)for(let V=E.start;V<=E.end;V++){let y=U.dataManager.getItem(V);if(y&&!y._isPlaceholder)T.set(y.id,V)}}};z.on("data:change",({type:N,id:X})=>{if(N==="remove")Z.selected.delete(X),f()}),z.on("load:end",({items:N,offset:X})=>{if(!N||N.length===0)return;if(X!==void 0)for(let k=0;k<N.length;k++){let M=N[k];if(M&&M.id!==void 0)T.set(M.id,X+k)}else f()}),f(),U.methods.set("_getSelectedIds",()=>{return Z.selected}),U.methods.set("_getFocusedIndex",()=>{return Z.focusVisible?Z.focusedIndex:-1});let{forceRender:l}=U.getRenderFns(),C=()=>{l();let N=(X)=>{let k=T.get(X);if(k===void 0)return;return U.dataManager.getItem(k)};z.emit("selection:change",{selected:PJ(Z),items:wJ(Z,N)})},p=I0(U.rawConfig.padding),P=_.horizontal?p.left:p.top,u=_.horizontal?p.right:p.bottom,t=U.getItemToScrollIndexFn(),s=null,R=null,h=null,I=!1,a=()=>{if(I)return;I=!0,s=U.methods.get("_getNavDelta")??null,R=U.methods.get("_navigate")??null,h=U.methods.get("_scrollItemIntoView")??null},L=()=>{return a(),s?s():{ud:1,lr:0,cols:0}},A=(N)=>{if(N<0)return;if(a(),h)h(N);else{let X=U.state.viewportState.containerSize,k=U.state.viewportState.scrollPosition,M=U.dataManager.getTotal(),E=U.getCachedCompression(),{visibleRange:V}=U.state.viewportState,y=t(N),O=_J(y,U.sizeCache,k,X,P,u,E,M,V);if(O!==k)U.scrollController.scrollTo(U.adjustScrollPosition(O))}},F=()=>{let N=t(Math.max(0,Z.focusedIndex)),X=U.sizeCache.getSize(N),{ud:k}=L();return Math.max(k,Math.floor(U.state.viewportState.containerSize/X)*k)};D=document.createElement("div"),D.setAttribute("aria-live","polite"),D.setAttribute("aria-atomic","true"),D.className=`${$}-live-region`,D.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",(W.root.getAttribute("role")==="grid"?W.root.parentElement??W.root:W.root).appendChild(D);let i=D;z.on("selection:change",({selected:N})=>{let X=N.length;if(X===0)i.textContent="";else if(X===1)i.textContent="1 item selected";else i.textContent=`${X} items selected`});let c=()=>{if(U.state.isDestroyed)return;if(!W.root.matches(":focus-visible"))return;let N=U.dataManager.getTotal();if(N===0)return;let X=Z.focusedIndex>=0?Math.min(Z.focusedIndex,N-1):0;X=H(X,1,N),Z=l0(Z,X),Z.focusVisible=!0,W.root.setAttribute("aria-activedescendant",`${S}-item-${X}`),A(X);let k=U.dataManager.getItem(X);if(k)U.renderer.updateItemClasses(X,Z.selected.has(k.id),!0)};if(_.interactive)W.root.addEventListener("focusin",c);let g=(N)=>{if(U.state.isDestroyed)return;let X=N.relatedTarget;if(X&&W.root.contains(X))return;let k=Z.focusedIndex;if(Z.focusVisible=!1,W.root.removeAttribute("aria-activedescendant"),k>=0){let M=U.dataManager.getItem(k);if(M)U.renderer.updateItemClasses(k,Z.selected.has(M.id),!1)}};if(_.interactive)W.root.addEventListener("focusout",g);if(U.clickHandlers.push((N)=>{if(U.state.isDestroyed)return;let k=N.target.closest("[data-index]");if(!k)return;let M=parseInt(k.dataset.index??"-1",10);if(M<0)return;let E=U.dataManager.getItem(M);if(!E)return;if(G(M))return;if(z.emit("item:click",{item:E,index:M,event:N}),Q==="multiple"&&N.shiftKey&&Z.focusedIndex>=0){let V=B>=0?B:Z.focusedIndex,y=U.getAllLoadedItems();Z=GJ(Z,y,V,M,Q),Z=l0(Z,M),Z.focusVisible=Y,B=M,W.root.setAttribute("aria-activedescendant",`${S}-item-${M}`),C();return}B=M,Z=l0(Z,M),Z.focusVisible=Y,W.root.setAttribute("aria-activedescendant",`${S}-item-${M}`),Z=t0(Z,E.id,Q),C()}),_.interactive)U.keydownHandlers.push((N)=>{if(U.state.isDestroyed)return;let X=U.dataManager.getTotal(),k=Z.focusedIndex,M=!1,E=!1,V=Z;if(a(),R)switch(N.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let y=R(Z.focusedIndex,N.key,X);if(y!==Z.focusedIndex)V=l0(Z,y),V.focusVisible=!0,M=!0,E=!0;else{N.preventDefault();return}break}}if(!M)switch(N.key){case"ArrowUp":V=DJ(Z,X,_.wrap,L().ud),V.focusVisible=!0,M=!0,E=!0;break;case"ArrowDown":V=MJ(Z,X,_.wrap,L().ud),V.focusVisible=!0,M=!0,E=!0;break;case"ArrowLeft":{let{lr:y}=L();if(y)V=DJ(Z,X,_.wrap,y),V.focusVisible=!0,M=!0,E=!0;break}case"ArrowRight":{let{lr:y}=L();if(y)V=MJ(Z,X,_.wrap,y),V.focusVisible=!0,M=!0,E=!0;break}case"PageUp":V=RJ(Z,X,F(),"up"),V.focusVisible=!0,M=!0,E=!0;break;case"PageDown":V=RJ(Z,X,F(),"down"),V.focusVisible=!0,M=!0,E=!0;break;case"Home":{V=k1(Z,X),V.focusVisible=!0,M=!0,E=!0;break}case"End":{V=$1(Z,X),V.focusVisible=!0,M=!0,E=!0;break}}switch(N.key){case" ":case"Enter":if(N.key===" "&&N.shiftKey&&Q==="multiple"&&Z.focusedIndex>=0){if(B>=0){let y=U.getAllLoadedItems();V=GJ(V,y,B,Z.focusedIndex,Q)}V.focusVisible=!0,M=!0;break}if(Z.focusedIndex>=0&&!G(Z.focusedIndex)){let y=U.dataManager.getItem(Z.focusedIndex);if(y)V=t0(Z,y.id,Q),V.focusVisible=!0;B=Z.focusedIndex,M=!0}break;case"a":if((N.ctrlKey||N.metaKey)&&Q==="multiple"){let y=U.getAllLoadedItems();if(Z.selected.size===y.length)V=yJ(V);else V=bJ(V,y,Q);V.focusVisible=!0,M=!0,E=!1}break}if(E&&w){let y=V.focusedIndex>k?1:-1;V.focusedIndex=H(V.focusedIndex,y,X)}if(N.shiftKey&&Q==="multiple"&&E&&V.focusedIndex>=0){let y=N.key==="ArrowUp"||N.key==="ArrowDown"||N.key==="ArrowLeft"||N.key==="ArrowRight",O=(N.ctrlKey||N.metaKey)&&(N.key==="Home"||N.key==="End");if(y){if(K==="origin"){if(k>=0){let b=U.dataManager.getItem(k);if(b)V=t0(V,b.id,Q)}}else{let b=U.dataManager.getItem(V.focusedIndex);if(b)V=t0(V,b.id,Q)}B=V.focusedIndex,E=!1}else if(O){let b=U.getAllLoadedItems(),m=k>=0?k:V.focusedIndex;V=GJ(V,b,m,V.focusedIndex,Q),B=V.focusedIndex,E=!1}}if(j&&Q==="single"&&E&&V.focusedIndex>=0){let y=U.dataManager.getItem(V.focusedIndex);if(y)V=i0(V,[y.id],Q);E=!1}if(M){N.preventDefault(),Z=V;let y=Z.focusedIndex;if(y>=0)A(y),W.root.setAttribute("aria-activedescendant",`${S}-item-${y}`);else W.root.removeAttribute("aria-activedescendant");if(E){let{selected:O}=Z;if(k>=0&&k!==y){let b=U.dataManager.getItem(k);if(b)U.renderer.updateItemClasses(k,O.has(b.id),!1)}if(y>=0){let b=U.dataManager.getItem(y);if(b)U.renderer.updateItemClasses(y,O.has(b.id),!0)}}else C();if(y>=0&&y!==k){let O=U.dataManager.getItem(y);if(O)z.emit("focus:change",{id:O.id,index:y})}}});U.methods.set("select",(...N)=>{Z=i0(Z,N,Q),C()}),U.methods.set("deselect",(...N)=>{Z=$J(Z,N),C()}),U.methods.set("toggleSelect",(N)=>{Z=t0(Z,N,Q),C()}),U.methods.set("selectAll",()=>{if(Q!=="multiple")return;let N=U.getAllLoadedItems();Z=bJ(Z,N,Q),f(),C()}),U.methods.set("clearSelection",()=>{Z=yJ(Z),C()}),U.methods.set("getSelected",()=>{return PJ(Z)}),U.methods.set("getSelectedItems",()=>{return wJ(Z,(X)=>{let k=T.get(X);return k===void 0?void 0:U.dataManager.getItem(k)})});let r=(N)=>{let X=U.dataManager.getTotal();if(X===0)return;if(a(),R){let V=N==="next"?"ArrowDown":"ArrowUp",y=R(Z.focusedIndex,V,X);Z=l0(Z,y)}else{let{ud:V}=L();Z=N==="next"?MJ(Z,X,_.wrap,V):DJ(Z,X,_.wrap,V)}let k=N==="next"?1:-1;Z.focusedIndex=H(Z.focusedIndex,k,X);let M=Z.focusedIndex,E=U.dataManager.getItem(M);if(!E)return;Z=i0(Z,[E.id],Q),A(M),C()};U.methods.set("selectNext",()=>{r("next")}),U.methods.set("selectPrevious",()=>{r("previous")}),U.methods.set("_focusById",(N)=>{let X=T.get(N);if(X!==void 0){let M=U.dataManager.getItem(X);if(!M||M.id!==N)X=void 0}if(X===void 0){if(f(),X=T.get(N),X===void 0)return}Z=l0(Z,X);let k=U.dataManager.getItem(X);if(k)z.emit("focus:change",{id:k.id,index:X})}),U.methods.set("_getFocusedId",()=>{let N=Z.focusedIndex;if(N<0)return;return U.dataManager.getItem(N)?.id}),U.destroyHandlers.push(()=>{if(i&&i.parentNode)i.remove();W.root.removeEventListener("focusin",c),W.root.removeEventListener("focusout",g)})},destroy(){if(D&&D.parentNode)D.remove();D=null}}};var y4=(J)=>{try{let Q=sessionStorage.getItem(J);if(!Q)return;return JSON.parse(Q)}catch{return}},lJ=(J)=>{let Q=J?.autoSave,j=Q?y4(Q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(q){q.methods.set("getScrollSnapshot",()=>{let Y=q.scrollController.getScrollTop(),Z=q.getCachedCompression(),D=q.getVirtualTotal(),B=q.methods.get("getSelected"),U=B&&B().length>0?B():void 0;if(D===0){let S={index:0,offsetInItem:0,total:0};if(U)S.selectedIds=U;return S}let W,z;if(Z.isCompressed){let w=Y/Z.virtualSize*D;W=Math.max(0,Math.min(Math.floor(w),D-1)),z=(w-W)*q.sizeCache.getSize(W)}else W=q.sizeCache.indexAtOffset(Y),z=Y-q.sizeCache.getOffset(W);z=Math.max(0,z);let _={index:W,offsetInItem:z,total:D};if(U)_.selectedIds=U;let $=q.methods.get("_getFocusedId");if($){let S=$();if(S!==void 0)_.focusedId=S}return _});let K=(Y)=>{let{index:Z,offsetInItem:D,selectedIds:B,focusedId:U}=Y,W=q.getVirtualTotal();if(W===0&&Y.total&&Y.total>0){q.dataManager.setTotal(Y.total),q.sizeCache.rebuild(Y.total),q.updateCompressionMode();let C=q.getCachedCompression();if(!C.isCompressed)q.updateContentSize(C.virtualSize)}else if(W===0)return;if(!Number.isFinite(Z)||!Number.isFinite(D))return;let z=q.getVirtualTotal();if(q.sizeCache.getTotal()!==z){q.sizeCache.rebuild(z),q.updateCompressionMode();let C=q.getCachedCompression();if(!C.isCompressed)q.updateContentSize(C.virtualSize)}let $=q.getCachedCompression(),S=Math.max(0,Math.min(Z,z-1)),w;if($.isCompressed){let C=q.sizeCache.getSize(S),p=C>0?D/C:0;w=(S+p)/z*$.virtualSize}else w=q.sizeCache.getOffset(S)+D;let G=q.state.viewportState.containerSize,H=$.isCompressed?q.state.viewportState.totalSize:$.virtualSize,T=Math.max(0,H-G);if(w=Math.max(0,Math.min(w,T)),q.scrollController.scrollTo(w),B&&B.length>0){let C=q.methods.get("select");if(C)C(...B)}let f=q.methods.get("loadVisibleRange"),l=()=>{if(U===void 0)return;let C=q.methods.get("_focusById");if(C)C(U)};if(f){let p=0,P=w,u=()=>{p++;let t=q.state.viewportState.containerSize,s=q.scrollController.getScrollTop();if(t>0){if(Math.abs(s-P)>1)q.scrollController.scrollTo(P);f().then(l)}else if(p<10)requestAnimationFrame(u)};requestAnimationFrame(u)}else{let C=q.methods.get("reload");if(C)requestAnimationFrame(()=>{C().then(l)});else requestAnimationFrame(l)}};if(q.methods.set("restoreScroll",K),Q){let Y=!!j,Z=()=>{if(Y)return;let D=q.methods.get("getScrollSnapshot");if(!D)return;let B=D();try{sessionStorage.setItem(Q,JSON.stringify(B))}catch{}};if(q.idleHandlers.push(()=>{if(Y)Y=!1;Z()}),q.emitter.on("selection:change",Z),q.emitter.on("focus:change",Z),j&&j.total&&j.total>0){let D=q.methods.get("_cancelAutoLoad");if(D)D();q.dataManager.setTotal(j.total)}}if(j)queueMicrotask(()=>{K(j)})}}};var d1=(J,Q=50,j=1/0,q=!0)=>{let K=J,Y=[],Z=0,D=()=>{Y=K.map((G,H)=>({def:G,index:H,width:0,minWidth:R4(G.minWidth??Q,1),maxWidth:G.maxWidth??j,resizable:G.resizable??q,offset:0}))},B=(G)=>{if(Y.length===0){Z=0;return}let H=0,T=0;for(let f=0;f<Y.length;f++){let l=Y[f],C=l.def;if(C.width!==void 0)l.width=rJ(C.width,l.minWidth,l.maxWidth),H+=l.width;else T++}if(T>0){let l=Math.max(0,G-H)/T;for(let C=0;C<Y.length;C++){let p=Y[C];if(p.def.width===void 0)p.width=rJ(l,p.minWidth,p.maxWidth)}}U()},U=()=>{let G=0;for(let H=0;H<Y.length;H++){let T=Y[H];T.offset=G,G+=T.width}Z=G},W=(G,H)=>{if(G<0||G>=Y.length)return 0;let T=Y[G];if(!T.resizable)return T.width;let f=rJ(H,T.minWidth,T.maxWidth);return T.width=f,U(),f},z=(G)=>{return Y[G]},_=(G)=>{if(Y.length===0)return;if(G<0)return Y[0];if(G>=Z)return Y[Y.length-1];let H=0,T=Y.length-1;while(H<T){let f=H+T>>>1,l=Y[f];if(G<l.offset)T=f-1;else if(G>=l.offset+l.width)H=f+1;else return l}return Y[H]},$=(G)=>{if(G<0||G>=Y.length)return 0;return Y[G].offset},S=(G)=>{if(G<0||G>=Y.length)return 0;return Y[G].width},w=(G)=>{K=G,D()};return D(),{get columns(){return Y},get totalWidth(){return Z},resolve:B,updateColumns:w,resizeColumn:W,getColumn:z,getColumnAtX:_,getColumnOffset:$,getColumnWidth:S}},rJ=(J,Q,j)=>Math.min(j,Math.max(Q,J)),R4=(J,Q)=>Math.max(Q,J);var c1=(J,Q,j,q,K,Y)=>{let Z=document.createElement("div");Z.setAttribute("role","rowgroup");let D=document.createElement("div");D.className=`${j}-table-header`,D.setAttribute("role","row"),D.setAttribute("aria-rowindex","1"),D.style.height=`${Q}px`;let B=document.createElement("div");B.className=`${j}-table-header-scroll`,B.setAttribute("role","presentation"),D.appendChild(B),Z.appendChild(D),J.insertBefore(Z,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let U=[],W=[],z=[],_=!0,$=null,S="asc",w=null,G=!1,H=-1,T=0,f=0,l=(A,F)=>{let v=document.createElement("div");v.className=`${j}-table-header-cell`,v.setAttribute("role","columnheader"),v.setAttribute("aria-colindex",String(F+1)),v.dataset.columnKey=A.def.key;let i=A.def.align;if(i==="center")v.classList.add(`${j}-table-header-cell--center`);else if(i==="right")v.classList.add(`${j}-table-header-cell--right`);let c=document.createElement("div");c.className=`${j}-table-header-content`;let g=A.def.header?A.def.header(A.def):A.def.label;if(typeof g==="string")c.textContent=g;else c.appendChild(g);if(v.appendChild(c),A.def.sortable){let r=document.createElement("span");r.className=`${j}-table-header-sort`,r.setAttribute("aria-hidden","true"),v.appendChild(r),z.push(r),v.classList.add(`${j}-table-header-cell--sortable`)}else z.push(null);if(A.resizable){let r=document.createElement("div");r.className=`${j}-table-header-resize`,r.dataset.resizeIndex=String(F),v.appendChild(r),W.push(r)}return v},C=(A)=>{w=A,B.textContent="",U=[],W=[],z=[];let F=A.columns;for(let v=0;v<F.length;v++){let i=F[v],c=l(i,v);U.push(c),B.appendChild(c)}if(p(A),$)P($,S)},p=(A)=>{w=A;let F=A.columns;B.style.width=`${A.totalWidth}px`;for(let v=0;v<U.length&&v<F.length;v++){let i=U[v],c=F[v];i.style.width=`${c.width}px`}},P=(A,F)=>{if($=A,S=F,!w)return;let v=w.columns;for(let i=0;i<z.length&&i<v.length;i++){let c=z[i];if(!c)continue;if(v[i].def.key===A&&A!==null)c.textContent=F==="asc"?"▲":"▼",c.style.opacity="0.7",U[i].setAttribute("aria-sort",F==="asc"?"ascending":"descending");else c.textContent="",c.style.opacity="0",U[i].removeAttribute("aria-sort")}},u=(A)=>{B.style.transform=`translateX(${-A}px)`},t=(A)=>{let F=A.target;if(!F.dataset.resizeIndex)return;if(A.preventDefault(),A.stopPropagation(),H=parseInt(F.dataset.resizeIndex,10),!w)return;let v=w.getColumn(H);if(!v||!v.resizable)return;G=!0,T=A.clientX,f=v.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",F.classList.add(`${j}-table-header-resize--active`),F.setPointerCapture(A.pointerId),F.addEventListener("pointermove",s),F.addEventListener("pointerup",R),F.addEventListener("pointercancel",R)},s=(A)=>{if(!G||!w)return;let F=A.clientX-T;if(Math.abs(F)<1)return;let v=Math.max(0,f+F);q(H,v)},R=(A)=>{if(!G)return;let F=A.target;F.removeEventListener("pointermove",s),F.removeEventListener("pointerup",R),F.removeEventListener("pointercancel",R);try{F.releasePointerCapture(A.pointerId)}catch{}F.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",G=!1,H=-1},h=(A)=>{let F=A.target;if(F.dataset.resizeIndex!==void 0)return;if(G)return;let v=F;while(v&&!v.dataset.columnKey)if(v=v.parentElement,v===D||v===null)return;if(!v||!v.dataset.columnKey)return;let i=v.dataset.columnKey;if(!w)return;let c=w.columns,g=-1;for(let N=0;N<c.length;N++)if(c[N].def.key===i){g=N;break}if(g===-1)return;let r=c[g];if(Y)Y({key:i,index:g,event:A});if(r.def.sortable&&K){let N;if($===i)if(S==="asc")N="desc";else N=null;else N="asc";K({key:i,index:g,direction:N})}};return D.addEventListener("pointerdown",t),D.addEventListener("click",h),{element:D,update:p,updateSort:P,rebuild:C,show:()=>{if(_)return;_=!0,D.style.display=""},hide:()=>{if(!_)return;_=!1,D.style.display="none"},destroy:()=>{D.removeEventListener("pointerdown",t),D.removeEventListener("click",h),J.style.removeProperty("--vlist-table-header-height"),Z.remove(),U=[],W=[],z=[],w=null,_=!1},syncScroll:u}};var P4=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Q)=>{if(Q.parentNode?.removeChild(Q),J.length<200)Q.className="",Q.removeAttribute("data-id"),Q.removeAttribute("data-index"),Q.removeAttribute("aria-selected"),Q.removeAttribute("aria-rowindex"),Q.removeAttribute("role"),Q.style.cssText="",Q.textContent="",J.push(Q)},clear:()=>{J.length=0}}},l1=(J,Q,j,q,K,Y,Z,D,B)=>{let U=P4(),W=new Map,z=-1,_=j,$=null,S=null,w=null,G=(O,b)=>{S=O,w=b},H=(O,b)=>{if(b)O.setAttribute("aria-selected","true");else O.removeAttribute("aria-selected")},T=(O,b,m,e)=>{O.setAttribute("role",b),O.setAttribute("data-id",String(m)),O.setAttribute("data-index",String(e))},f=(O)=>String(O).startsWith("__placeholder_"),l=`${K}-item ${K}-table-row`,C=`${K}-item--selected`,p=`${K}-item--focused`,P=`${K}-table-cell`,u=`${K}-table-cell--center`,t=`${K}-table-cell--right`,s=`${K}-item--odd`,R=`${K}-item--placeholder`,h=`${K}-item--replaced`,I=`${K}-item ${K}-table-row ${K}-table-group-header`,a=`${K}-table-group-header-content`,L=(O,b,m,e,o=!1)=>{if(m.def.cell){let J0=m.def.cell(b,m.def,e);if(typeof J0==="string")O.innerHTML=J0;else O.replaceChildren(J0)}else{let J0=b[m.def.key],K0=J0!=null?String(J0):"";if(o&&K0)O.innerHTML=`<span>${K0}</span>`;else O.textContent=K0}},A=(O,b,m,e,o=!1)=>{let J0=l;if(D){if($){let K0=$(b);if(K0>=0&&(K0&1)===1)J0+=` ${s}`}else if((b&1)===1)J0+=` ${s}`}if(o)J0+=` ${R}`;if(m)J0+=` ${C}`;if(e)J0+=` ${p}`;O.className=J0},F=(O,b,m)=>{if(m?.compression?.isCompressed)return Math.round(JJ(O,m.scrollPosition,b,m.totalItems,m.containerSize,m.compression,m.rangeStart));return b.getOffset(O)},v=(O,b)=>{let m=b.def.align;if(m==="center")O.classList.add(u),O.classList.remove(t);else if(m==="right")O.classList.add(t),O.classList.remove(u);else O.classList.remove(u,t)},i=(O,b)=>{let e=_.columns.length;if(b.length===e)return b;let o=[];for(let J0=0;J0<e;J0++){let K0;if(J0<b.length)K0=b[J0];else K0=document.createElement("div"),K0.className=P,O.appendChild(K0);o.push(K0)}for(let J0=e;J0<b.length;J0++)b[J0].remove();return o},c=(O,b,m,e)=>{let o=U.acquire(),J0=O,K0=m.getSize(b),n=F(b,m,e);o.style.cssText=`width:${_.totalWidth}px;height:${K0}px;transform:translateY(${n}px)`,o.className=I,T(o,"presentation",O.id,b),o.removeAttribute("aria-selected"),o.removeAttribute("aria-rowindex"),o.replaceChildren();let q0=document.createElement("div");if(q0.className=a,w){let j0=w(J0.groupKey,J0.groupIndex);if(typeof j0==="string")q0.innerHTML=j0;else q0.appendChild(j0)}return o.appendChild(q0),{element:o,cells:[],index:b,isGroupHeader:!0,lastItemId:O.id,lastSelected:!1,lastFocused:!1,lastOffset:n,lastHeight:K0}},g=(O,b,m,e,o,J0)=>{let K0=U.acquire(),n=o.getSize(b),q0=F(b,o,J0),j0=f(O.id);K0.style.cssText=`width:${_.totalWidth}px;height:${n}px;transform:translateY(${q0}px)`,A(K0,b,m,e,j0),T(K0,"row",O.id,b),K0.id=`${Y}-${b}`,K0.setAttribute("aria-rowindex",String(b+2)),H(K0,m);let N0=i(K0,[]),M0=_.columns;for(let G0=0;G0<N0.length&&G0<M0.length;G0++){let A0=N0[G0],k0=M0[G0];A0.style.cssText=`left:${k0.offset}px;width:${k0.width}px`,A0.setAttribute("role","gridcell"),A0.setAttribute("aria-colindex",String(G0+1)),v(A0,k0),L(A0,O,k0,b,j0)}return{element:K0,cells:N0,index:b,isGroupHeader:!1,lastItemId:O.id,lastSelected:m,lastFocused:e,lastOffset:q0,lastHeight:n}},r=(O,b,m,e,o)=>{for(let[j0,N0]of W)if(j0<b.start||j0>b.end)U.release(N0.element),W.delete(j0);let J0=!1,K0=Z();if(K0!==z)z=K0,J0=!0;let n=null,q0=Q();$=typeof D==="string"&&B?B():null;for(let j0=b.start;j0<=b.end;j0++){let N0=j0-b.start,M0=O[N0];if(!M0)continue;let G0=m.has(M0.id),A0=j0===e,k0=S?S(M0):!1,B0=W.get(j0);if(B0){if(B0.isGroupHeader!==k0){U.release(B0.element),W.delete(j0);let O0=k0?c(M0,j0,q0,o):g(M0,j0,G0,A0,q0,o);if(W.set(j0,O0),!n)n=document.createDocumentFragment();n.appendChild(O0.element);continue}if(k0){if(B0.lastItemId!==M0.id){let D0=M0,V0=B0.element.firstElementChild;if(V0&&w){let F0=w(D0.groupKey,D0.groupIndex);if(typeof F0==="string")V0.innerHTML=F0;else V0.replaceChildren(F0)}B0.element.setAttribute("data-id",String(M0.id)),B0.lastItemId=M0.id}let b0=F(j0,q0,o);if(B0.lastOffset!==b0)B0.lastOffset=b0,B0.element.style.transform=`translateY(${b0}px)`;let W0=q0.getSize(j0);if(B0.lastHeight!==W0)B0.lastHeight=W0,B0.element.style.height=`${W0}px`}else{let O0=B0.lastItemId!==M0.id,b0=B0.lastSelected!==G0,W0=B0.lastFocused!==A0;if(O0){let F0=B0.lastItemId!=null&&f(B0.lastItemId),H0=f(M0.id);if(!H0&&p0(m,j0,M0.id))G0=!0;let y0=_.columns;for(let P0=0;P0<B0.cells.length&&P0<y0.length;P0++)L(B0.cells[P0],M0,y0[P0],j0,H0);if(A(B0.element,j0,G0,A0,H0),B0.element.setAttribute("data-id",String(M0.id)),H(B0.element,G0),F0&&!H0)B0.element.classList.add(h),setTimeout(()=>{B0.element.classList.remove(h)},300);B0.lastItemId=M0.id,B0.lastSelected=G0,B0.lastFocused=A0}else if(b0||W0)A(B0.element,j0,G0,A0,f(M0.id)),H(B0.element,G0),B0.lastSelected=G0,B0.lastFocused=A0;let D0=F(j0,q0,o);if(B0.lastOffset!==D0)B0.lastOffset=D0,B0.element.style.transform=`translateY(${D0}px)`;let V0=q0.getSize(j0);if(B0.lastHeight!==V0)B0.lastHeight=V0,B0.element.style.height=`${V0}px`;if(J0)B0.element.setAttribute("aria-rowindex",String(j0+2))}}else{if(p0(m,j0,M0.id))G0=!0;let O0=k0?c(M0,j0,q0,o):g(M0,j0,G0,A0,q0,o);if(W.set(j0,O0),!n)n=document.createDocumentFragment();n.appendChild(O0.element)}}if(n)J.appendChild(n)},N=(O)=>{let b=Q();for(let[m,e]of W){let o=F(m,b,O);if(e.lastOffset!==o)e.lastOffset=o,e.element.style.transform=`translateY(${o}px)`}},X=(O,b,m,e)=>{let o=W.get(O);if(!o)return;if(o.isGroupHeader)return;let J0=_.columns;for(let K0=0;K0<o.cells.length&&K0<J0.length;K0++)L(o.cells[K0],b,J0[K0],O);o.element.setAttribute("data-id",String(b.id)),o.lastItemId=b.id,A(o.element,O,m,e),H(o.element,m),o.lastSelected=m,o.lastFocused=e},k=(O,b,m)=>{let e=W.get(O);if(!e)return;if(e.isGroupHeader)return;let o=e.lastSelected!==b,J0=e.lastFocused!==m;if(o||J0)A(e.element,O,b,m),H(e.element,b),e.lastSelected=b,e.lastFocused=m},M=(O)=>{_=O;let b=O.columns;for(let[,m]of W)if(m.element.style.width=`${O.totalWidth}px`,m.cells.length>0)for(let e=0;e<m.cells.length&&e<b.length;e++){let o=m.cells[e],J0=b[e];o.style.left=`${J0.offset}px`,o.style.width=`${J0.width}px`}},E=(O)=>{return W.get(O)?.element},V=()=>{for(let[,O]of W)U.release(O.element);W.clear(),z=-1};return{render:r,updatePositions:N,updateItem:X,updateItemClasses:k,getElement:E,updateColumnLayout:M,setGroupHeaderFn:G,clear:V,destroy:()=>{V(),U.clear()}}};var w4=new Set,aJ=(J)=>{if(!J.columns||J.columns.length===0)throw Error("[vlist] withTable: columns must be a non-empty array");if(J.rowHeight===void 0&&J.estimatedRowHeight===void 0)throw Error("[vlist] withTable: either rowHeight or estimatedRowHeight is required");let Q=null,j=null,q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(K){let{dom:Y,emitter:Z,config:D}=K,{classPrefix:B}=D;if(D.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(D.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let U=J.resizable??!0,W=J.minColumnWidth??50,z=J.maxColumnWidth??1/0,_=J.columnBorders??!1,$=J.rowBorders??!0,S=J.rowHeight,w=K.rawConfig.padding,G=!w?0:typeof w==="number"?w*2:w.length===2?w[1]*2:w[1]+w[3],H=J.headerHeight??(typeof S==="number"?S:40),T=J.sort?.key??null,f=J.sort?.direction??"asc";if(Q=d1(J.columns,W,z,U),typeof S==="function")K.setSizeConfig(S);else if(typeof S==="number")K.setSizeConfig(S);if(K.rebuildSizeCache(),Y.root.classList.add(`${B}--table`),$)Y.root.classList.add(`${B}--table-row-borders`);if(_)Y.root.classList.add(`${B}--table-col-borders`);Y.root.setAttribute("role","grid"),Y.root.setAttribute("aria-colcount",String(J.columns.length));let l=-1,C=Y.items.getAttribute("aria-label");if(C)Y.root.setAttribute("aria-label",C),Y.items.removeAttribute("aria-label");Y.items.setAttribute("role","rowgroup"),Y.viewport.setAttribute("role","none"),Y.content.setAttribute("role","none"),Y.viewport.removeAttribute("tabindex");let p=K.getContainerWidth()-G;Q.resolve(p);let P=(E,V)=>{if(!Q)return;let y=Q.getColumn(E);if(!y)return;let O=y.width,b=Q.resizeColumn(E,V);if(j)j.update(Q);if(q)q.updateColumnLayout(Q);s(),Z.emit("column:resize",{key:y.def.key,index:E,previousWidth:O,width:b})},u=(E)=>{if(E.direction===null)T=null,f="asc";else T=E.key,f=E.direction;if(j)j.updateSort(T,f);Z.emit("column:sort",E)},t=(E)=>{Z.emit("column:click",E)};if(j=c1(Y.root,H,B,P,u,t),j.rebuild(Q),T)j.updateSort(T,f);let s=()=>{if(!Q)return;let E=Q.totalWidth;Y.content.style.minWidth=`${E}px`,Y.items.style.minWidth=`${E}px`};s(),q=l1(Y.items,()=>K.sizeCache,Q,J.columns,B,D.ariaIdPrefix,()=>K.dataManager.getTotal(),K.rawConfig.item?.striped,()=>K.getStripeIndexFn());let R=null,h=null,I=!1,a=()=>{if(I)return;I=!0,R=K.methods.get("_getSelectedIds")??null,h=K.methods.get("_getFocusedIndex")??null},L=-1,A=-1,F=-1,v=!0,i=D.overscan,c={start:0,end:0},g={start:0,end:0},r=()=>{if(K.state.isDestroyed)return;let E=K.scrollController.getScrollTop(),V=K.state.viewportState.containerSize,y=K.getVirtualTotal(),O=K.state.viewportState.isCompressed;if(!v&&E===L&&V===A&&y===F)return;L=E,A=V,F=y,v=!1;let b=y+1;if(b!==l)l=b,Y.root.setAttribute("aria-rowcount",String(b));K.getVisibleRange(E,V,y,c),g.start=Math.max(0,c.start-i),g.end=Math.min(y-1,c.end+i);let m=K.state.viewportState;m.scrollPosition=E,m.visibleRange.start=c.start,m.visibleRange.end=c.end,m.renderRange.start=g.start,m.renderRange.end=g.end;let e=K.state.lastRenderRange,o=e.start!==g.start||e.end!==g.end;if(!o&&O){q.updatePositions(K.getCompressionContext());return}if(!o)return;let J0=O?K.getCompressionContext():void 0,K0=K.dataManager.getItemsInRange(g.start,g.end);a();let n=R?R():w4,q0=h?h():-1;q.render(K0,g,n,q0,J0),e.start=g.start,e.end=g.end,Z.emit("range:change",{range:{start:g.start,end:g.end}})},N=()=>{if(K.state.isDestroyed)return;K.state.lastRenderRange.start=-1,K.state.lastRenderRange.end=-1,v=!0,r()};K.setRenderFns(r,N),K.setUpdateItemClassesFn((E,V,y)=>{q?.updateItemClasses(E,V,y)});let X=j,k=-1,M=()=>{let E=Y.viewport.scrollLeft;if(E!==k){if(k=E,X.syncScroll)X.syncScroll(E)}};K.afterScroll.push(M),Y.viewport.addEventListener("scroll",M,{passive:!0}),K.resizeHandlers.push((E,V)=>{if(!Q)return;if(Q.resolve(E-G),j)j.update(Q);if(q)q.updateColumnLayout(Q);s()}),K.methods.set("updateColumns",(E)=>{if(!Q||!j)return;if(Q.updateColumns(E),Q.resolve(K.getContainerWidth()-G),j.rebuild(Q),T)j.updateSort(T,f);if(s(),q)q.updateColumnLayout(Q),q.clear();K.forceRender()}),K.methods.set("resizeColumn",(E,V)=>{if(!Q)return;let y;if(typeof E==="string"){let O=Q.columns;y=-1;for(let b=0;b<O.length;b++)if(O[b].def.key===E){y=b;break}if(y===-1)return}else y=E;P(y,V)}),K.methods.set("getColumnWidths",()=>{if(!Q)return{};let E={},V=Q.columns;for(let y=0;y<V.length;y++)E[V[y].def.key]=V[y].width;return E}),K.methods.set("setSort",(E,V)=>{if(T=E,f=V??"asc",j)j.updateSort(T,f)}),K.methods.set("getSort",()=>{return{key:T,direction:f}}),K.methods.set("_getTableLayout",()=>Q),K.methods.set("_updateRenderedItem",(E,V,y,O)=>{q?.updateItem(E,V,y,O)}),K.methods.set("_replaceTableRenderer",(E)=>{q=E}),K.methods.set("_updateTableForGroups",(E,V)=>{if(q)q.setGroupHeaderFn(E,V)}),K.methods.set("_getTableHeaderHeight",()=>H),K.keydownHandlers.push((E)=>{if(E.key!=="ArrowLeft"&&E.key!=="ArrowRight")return;if(!Q)return;let V=Q.columns;if(V.length===0)return;let y=Y.viewport.clientWidth;if(Q.totalWidth<=y)return;let O=Y.viewport.scrollLeft;if(E.key==="ArrowRight"){for(let b=0;b<V.length;b++)if(V[b].offset>O+1){Y.viewport.scrollLeft=V[b].offset,E.preventDefault();return}}else{for(let b=V.length-1;b>=0;b--)if(V[b].offset<O-1){Y.viewport.scrollLeft=V[b].offset,E.preventDefault();return}if(O>0)Y.viewport.scrollLeft=0,E.preventDefault()}}),K.contentSizeHandlers.push(()=>{s()}),K.destroyHandlers.push(()=>{if(Y.viewport.removeEventListener("scroll",M),j)j.destroy(),j=null;if(q)q.destroy(),q=null;Y.content.style.minWidth="",Y.items.style.minWidth="",Y.root.classList.remove(`${B}--table`),Y.root.removeAttribute("role"),Y.root.removeAttribute("aria-colcount"),Y.viewport.removeAttribute("role"),Y.viewport.setAttribute("tabindex","-1"),Y.content.removeAttribute("role");let E=Y.root.getAttribute("aria-label");if(E)Y.items.setAttribute("aria-label",E),Y.root.removeAttribute("aria-label");Y.root.removeAttribute("aria-rowcount"),Y.items.setAttribute("role","listbox")})},destroy(){if(j)j.destroy(),j=null;if(q)q.destroy(),q=null}}};var sJ=(J)=>{let Q=J?.handle??null,j=J?.ghostClass??"vlist-sort-ghost",q=J?.shiftDuration??150,K=J?.edgeScrollZone??40,Y=J?.edgeScrollSpeed??20,Z=J?.dragThreshold??5,D=J?.ghostContainer??null;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(B){let{dom:U,emitter:W,config:z}=B,{classPrefix:_}=z,$=z.horizontal,S=$?"translateX":"translateY",w=q>0?`transform ${q}ms ease`:"none",G=!1,H=-1,T=-1,f=0,l=0,C=0,p=0,P=!1,u=null,t=0,s=null,R=0,h=0,I=0,a=null;B.methods.set("isSorting",()=>G||o);let L=(d)=>{return d.closest("[data-index]")},A=(d)=>{let X0=d.dataset.index;return X0===void 0?-1:+X0},F=(d)=>{let X0=d.getBoundingClientRect(),U0=d.cloneNode(!0);return U0.className=`${_}-item ${j}`,U0.removeAttribute("data-index"),U0.style.cssText=["position:fixed","pointer-events:none","z-index:10000",`width:${X0.width}px`,`height:${X0.height}px`,`left:${X0.left}px`,`top:${X0.top}px`,"transition:none","will-change:transform"].join(";"),(D||document.body).appendChild(U0),U0},v=()=>{if(!u)return;let d=C-h,X0=p-I;u.style.left=`${d}px`,u.style.top=`${X0}px`},i=()=>{let d=B.dataManager.getTotal();if(d===0)return 0;let X0=U.viewport.getBoundingClientRect(),U0=B.scrollController.getScrollTop(),Z0=$?C-h-X0.left+U.viewport.scrollLeft+U0:p-I-X0.top+U0,_0=Z0+R,T0=B.sizeCache.getOffset(H)+B.sizeCache.getSize(H);if(_0>T0){let L0=B.sizeCache.indexAtOffset(_0),u0=B.sizeCache.getOffset(L0)+B.sizeCache.getSize(L0)/2,f0=_0>u0?L0:L0-1;return Math.min(Math.max(f0,H),d-1)}let R0=B.sizeCache.getOffset(H);if(Z0<R0){let L0=B.sizeCache.indexAtOffset(Z0),u0=B.sizeCache.getOffset(L0)+B.sizeCache.getSize(L0)/2,f0=Z0<u0?L0:L0+1;return Math.max(Math.min(f0,H),0)}return H},c=()=>{let d=U.items.children,X0=R;for(let U0=0;U0<d.length;U0++){let Z0=d[U0],_0=A(Z0);if(_0<0||_0===H)continue;let T0=0;if(T>H){if(_0>H&&_0<=T)T0=-X0}else if(T<H){if(_0>=T&&_0<H)T0=X0}let R0=B.sizeCache.getOffset(_0),L0=Math.round(R0+T0);Z0.style.transition=w,Z0.style.transform=`${S}(${L0}px)`}},g=()=>{let d=U.items.children;for(let X0=0;X0<d.length;X0++){let U0=d[X0],Z0=A(U0);if(Z0>=0)U0.style.transform=`${S}(${Math.round(B.sizeCache.getOffset(Z0))}px)`;U0.style.transition=""}},r=()=>{let d=i();if(d===T)return;T=d,c(),W.emit("sort:move",{fromIndex:H,currentIndex:T})},N=!1,X=()=>{let d=U.viewport.getBoundingClientRect();if($)return C<d.left||C>d.right;return p<d.top||p>d.bottom},k=()=>{let d=()=>{if(!G)return;let X0=U.viewport.getBoundingClientRect(),U0=0,Z0=3;if($){let T0=C-X0.left,R0=X0.right-C;if(T0<K){let L0=Math.min(Z0,1-T0/K);U0=-Y*L0*L0}else if(R0<K){let L0=Math.min(Z0,1-R0/K);U0=Y*L0*L0}}else{let T0=p-X0.top,R0=X0.bottom-p;if(T0<K){let L0=Math.min(Z0,1-T0/K);U0=-Y*L0*L0}else if(R0<K){let L0=Math.min(Z0,1-R0/K);U0=Y*L0*L0}}let _0=X();if(U0!==0){let T0=B.scrollController.getScrollTop(),R0=B.sizeCache.getTotalSize()-($?U.viewport.clientWidth:U.viewport.clientHeight);if(U0<0&&T0<=0||U0>0&&T0>=R0)N=_0;else N=!0,B.scrollController.scrollTo(T0+U0)}else N=_0;t=requestAnimationFrame(d)};t=requestAnimationFrame(d)},M=()=>{if(t)cancelAnimationFrame(t),t=0},E=(d=!1)=>{if(G=!1,P=!1,u&&u.parentNode)u.remove();u=null,s=null;let X0=U.items.children;for(let Z0=0;Z0<X0.length;Z0++){let _0=X0[Z0];_0.style.opacity="",_0.style.pointerEvents="";let T0=A(_0);if(T0>=0)_0.style.transform=`${S}(${Math.round(B.sizeCache.getOffset(T0))}px)`;_0.style.transition=""}M(),U.root.classList.remove(`${_}--sorting`),document.body.style.cursor="";let U0=window.getSelection();if(U0)U0.removeAllRanges();if(document.removeEventListener("pointermove",y),document.removeEventListener("pointerup",b),document.removeEventListener("pointercancel",e),!d)B.forceRender()},V=(d)=>{if(B.state.isDestroyed)return;if(G)return;if(o)b0();if(d.button!==0)return;let X0=d.target;if(Q){if(!X0.closest(Q))return}let U0=L(X0);if(!U0)return;let Z0=A(U0);if(Z0<0)return;f=d.clientX,l=d.clientY,C=d.clientX,p=d.clientY,H=Z0,P=!1,s=U0;let _0=U0.getBoundingClientRect();h=d.clientX-_0.left,I=d.clientY-_0.top,document.addEventListener("pointermove",y),document.addEventListener("pointerup",b),document.addEventListener("pointercancel",e)},y=(d)=>{if(C=d.clientX,p=d.clientY,!P){let X0=C-f,U0=p-l;if(Math.sqrt(X0*X0+U0*U0)<Z)return;if(P=!0,G=!0,T=H,U.root.classList.add(`${_}--sorting`),document.body.style.cursor="grabbing",R=B.sizeCache.getSize(H),s)u=F(s),s.style.opacity="0",s.style.pointerEvents="none";let _0=j0();if(_0>=0){let T0=B.dataManager.getItem(_0);a=T0?T0.id:null}else a=null;W.emit("sort:start",{index:H}),k()}if(G){if(d.preventDefault(),v(),!N)r();else if(X()){if(T!==H)T=H,g()}}},O=(d,X0)=>{let U0=d!==X0&&d>=0&&X0>=0,Z0=()=>{if(G=!1,U0){if(W.emit("sort:end",{fromIndex:d,toIndex:X0}),a!==null)N0(a)}else W.emit("sort:cancel",{originalItems:B.getAllLoadedItems()});E(!1)};if(!u){Z0();return}let _0=U.viewport.getBoundingClientRect(),T0=B.scrollController.getScrollTop(),R0=B.sizeCache.getOffset(X0),L0=q>0?q:150;if(u.style.transition=`left ${L0}ms ease, top ${L0}ms ease`,$)u.style.left=`${_0.left-U.viewport.scrollLeft+R0-T0}px`,u.style.top=`${_0.top}px`;else u.style.left=`${_0.left}px`,u.style.top=`${_0.top+R0-T0}px`;let u0=!1,f0=()=>{if(u0)return;u0=!0,u?.removeEventListener("transitionend",f0),Z0()};u.addEventListener("transitionend",f0),setTimeout(f0,L0+50)},b=(d)=>{if(!P){document.removeEventListener("pointermove",y),document.removeEventListener("pointerup",b),document.removeEventListener("pointercancel",e),s=null;return}d.preventDefault(),document.removeEventListener("pointermove",y),document.removeEventListener("pointerup",b),document.removeEventListener("pointercancel",e),M(),O(H,T)},m=()=>{if(!P)return;document.removeEventListener("pointermove",y),document.removeEventListener("pointerup",b),document.removeEventListener("pointercancel",e),M(),G=!1,W.emit("sort:cancel",{originalItems:B.getAllLoadedItems()}),E(!1)},e=()=>{m()};U.items.addEventListener("pointerdown",V);let o=!1,J0="",K0=-1,n=-1,q0=[],j0=()=>{let d=B.methods.get("_getFocusedIndex");return d?d():-1},N0=(d)=>{let X0=B.methods.get("_focusById");if(X0)X0(d)},M0=(d)=>{let X0=$?U.viewport.clientWidth:U.viewport.clientHeight,U0=B.scrollController.getScrollTop(),Z0=YJ(d,B.sizeCache,U0,X0);if(Z0!==U0)B.scrollController.scrollTo(B.adjustScrollPosition(Z0))},G0=(d)=>{U.liveRegion.textContent="",U.liveRegion.offsetHeight,U.liveRegion.textContent=d},A0=(d)=>{let X0=B.dataManager.getItem(d);if(!X0)return"";return U.items.querySelector(`[data-index="${d}"]`)?.textContent?.trim()||String(X0.id)},k0=()=>String(B.dataManager.getTotal()),B0=(d)=>{let X0=B.dataManager.getItem(d);if(!X0)return;o=!0,J0=X0.id,K0=d,n=d;let U0=B.dataManager.getTotal();q0=[];for(let Z0=0;Z0<U0;Z0++)q0.push(B.dataManager.getItem(Z0));U.root.classList.add(`${_}--sorting`),W.emit("sort:start",{index:d}),F0(),G0(`Grabbed ${A0(d)}. Current position ${d+1} of ${k0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},O0=()=>{if(!o)return;o=!1;let d=n,X0=A0(d),U0=U.items.children;for(let Z0=0;Z0<U0.length;Z0++)U0[Z0].style.transition="none";U.root.classList.remove(`${_}--sorting`),V0(),N0(J0),B.forceRender(),G0(`${X0} dropped. Final position ${d+1} of ${k0()}.`),q0=[],requestAnimationFrame(()=>{let Z0=U.items.children;for(let _0=0;_0<Z0.length;_0++)Z0[_0].style.transition=""})},b0=()=>{if(!o)return;o=!1;let d=K0,X0=U.items.children;for(let U0=0;U0<X0.length;U0++)X0[U0].style.transition="none";if(U.root.classList.remove(`${_}--sorting`),V0(),n!==d)W.emit("sort:cancel",{originalItems:q0});N0(J0),B.forceRender(),M0(d),G0(`Reorder cancelled. Returned to position ${d+1} of ${k0()}.`),q0=[],requestAnimationFrame(()=>{let U0=U.items.children;for(let Z0=0;Z0<U0.length;Z0++)U0[Z0].style.transition=""})},W0=(d)=>{if(!o)return;let X0=B.dataManager.getTotal(),U0=n+d;if(U0<0||U0>=X0)return;let Z0=n,_0=U0,T0=U.items.children;for(let R0=0;R0<T0.length;R0++)T0[R0].style.transition="none";W.emit("sort:end",{fromIndex:Z0,toIndex:_0}),n=_0,N0(J0),B.forceRender(),M0(_0),F0(),G0(`${A0(_0)} moved. New position ${_0+1} of ${k0()}.`),requestAnimationFrame(()=>{let R0=U.items.children;for(let L0=0;L0<R0.length;L0++)R0[L0].style.transition=""})},D0=`${_}-item--kb-sorting`,V0=()=>{let d=U.items.querySelectorAll(`.${D0}`);for(let X0=0;X0<d.length;X0++)d[X0].classList.remove(D0)},F0=()=>{V0();let d=U.items.querySelector(`[data-id="${J0}"]`);if(d)d.classList.add(D0)};B.afterRenderBatch.push(()=>{if(o)F0()});let H0=(d)=>{if(B.state.isDestroyed)return;if(G){if(d.key==="Escape")d.preventDefault(),d.stopImmediatePropagation(),m();return}if(o)switch(d.key){case" ":case"Enter":d.preventDefault(),d.stopImmediatePropagation(),O0();return;case"Escape":d.preventDefault(),d.stopImmediatePropagation(),b0();return;case"ArrowUp":case"ArrowLeft":d.preventDefault(),d.stopImmediatePropagation(),W0(-1);return;case"ArrowDown":case"ArrowRight":d.preventDefault(),d.stopImmediatePropagation(),W0(1);return;default:if(!d.key.startsWith("F")&&d.key!=="Tab")d.preventDefault(),d.stopImmediatePropagation();return}if(d.key===" "&&!d.shiftKey&&!d.ctrlKey&&!d.metaKey){let X0=j0();if(X0>=0)d.preventDefault(),d.stopImmediatePropagation(),B0(X0)}};U.root.addEventListener("keydown",H0);let y0=`${_}-sort-instructions`,P0=document.createElement("div");P0.id=y0,P0.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",P0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",U.root.appendChild(P0),B.afterRenderBatch.push((d)=>{for(let X0=0;X0<d.length;X0++){let U0=d[X0].element;U0.setAttribute("aria-roledescription","sortable item"),U0.setAttribute("aria-describedby",y0)}}),B.afterRenderBatch.push((d)=>{if(!G)return;for(let X0=0;X0<d.length;X0++){let{index:U0,element:Z0}=d[X0];if(U0===H)Z0.style.opacity="0",Z0.style.pointerEvents="none",s=Z0;else{Z0.style.opacity="",Z0.style.pointerEvents="";let _0=0;if(T>H){if(U0>H&&U0<=T)_0=-R}else if(T<H){if(U0>=T&&U0<H)_0=R}let T0=Math.round(B.sizeCache.getOffset(U0)+_0);Z0.style.transform=`${S}(${T0}px)`}}}),B.destroyHandlers.push(()=>{if(o)b0();E(),U.items.removeEventListener("pointerdown",V),U.root.removeEventListener("keydown",H0),P0.remove()})}}};var r1=(J,Q)=>{let j=new Map,q=(Y)=>{let Z=j.get(Y);return Z!==void 0?Z:J},K=c0(q,Q);return{getOffset(Y){return K.getOffset(Y)},getSize(Y){return q(Y)},indexAtOffset(Y){return K.indexAtOffset(Y)},getTotalSize(){return K.getTotalSize()},getTotal(){return K.getTotal()},rebuild(Y){if(Y<K.getTotal()){for(let Z of j.keys())if(Z>=Y)j.delete(Z)}K=c0(q,Y)},isVariable(){return!0},setMeasuredSize(Y,Z){j.set(Y,Z)},isMeasured(Y){return j.has(Y)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var oJ=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(Q){let j=Q.config.horizontal,K=Q.rawConfig.item,Y=j?K.estimatedWidth:K.estimatedHeight;if(Y==null||Y<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let Z=K.gap??0,D=Q.getVirtualTotal(),B=I0(Q.rawConfig.padding),U=a0(B,j),W=r1(Y+Z,D),z=Q.methods.get("_setSizeCache"),_=Q.methods.get("_setConstrainSize");if(!z||!_)throw Error("[vlist/withAutoSize] Incompatible builder version");z(W),_((C)=>W.isMeasured(C));let $=new WeakMap,S=0,w=!1,G=2,H=(C)=>{let p=Q.scrollController.getScrollTop(),P=Q.state.viewportState.containerSize;if(P<=0)return!1;let u=Math.max(0,C+U-P);return p>=u-G},T=()=>{let C=W.getTotalSize(),p=Q.state.viewportState.containerSize;if(p<=0)return;let P=Math.max(0,C+U-p),u=Q.scrollController.getScrollTop();if(P>u)Q.scrollController.scrollTo(P)},f=()=>{let C=W.getTotalSize();Q.updateContentSize(C)},l=()=>{if(w){let C=Q.dom.viewport,p=C.scrollHeight,P=p-C.clientHeight,u=Q.scrollController.getScrollTop(),t=P>0&&u>=P-G,s=Q.getVirtualTotal(),R=Q.state.viewportState.renderRange.end,h=s>0&&R>=s-1,I=W.getTotalSize()+U,a=Math.abs(I-p),L=h&&P>0&&u>=P-a-G,A=t||L;if(f(),w=!1,A)C.scrollHeight,T(),Q.forceRender()}};J=new ResizeObserver((C)=>{if(Q.state.isDestroyed)return;let p=!1,P=Q.state.viewportState.visibleRange.start;for(let F of C){let v=$.get(F.target);if(v===void 0)continue;let i=j?F.borderBoxSize[0].inlineSize:F.borderBoxSize[0].blockSize;if(!W.isMeasured(v)){let c=i+Z,g=W.getSize(v);if(W.setMeasuredSize(v,c),p=!0,v<P&&c!==g)S+=c-g;J.unobserve(F.target);let r=F.target;if(j)r.style.width=`${i}px`;else r.style.height=`${i}px`}}if(!p)return;let u=W.getTotalSize();if(W.rebuild(Q.getVirtualTotal()),S!==0){let F=Q.scrollController.getScrollTop();Q.scrollController.scrollTo(F+S),S=0}let t=H(u),s=Q.getVirtualTotal(),R=Q.state.viewportState.renderRange.end,h=s>0&&R>=s-1,I=Q.dom.viewport,a=I.scrollHeight-I.clientHeight,L=Q.scrollController.getScrollTop(),A=a>0&&L>=a-G;if(t||h||!Q.scrollController.isScrolling()){if(f(),w=!1,t||h&&A)I.scrollHeight,T()}else w=!0;Q.forceRender()}),Q.afterRenderBatch.push((C)=>{for(let{index:p,element:P}of C)if(!W.isMeasured(p))$.set(P,p),J.observe(P)}),Q.idleHandlers.push(l),Q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var z4=50,C4=0.1;function a1(J){let Q=0,j=0,q=0;function K(){return q>0?j/q:0}function Y(B){if(Q=B,B>C4&&B<z4)j+=B,q++}function Z(){let B=J.getTotal();if(B===0)return 0;let U=J.getItemSize();if(U<=0)return 0;let W=J.getContainerSize();if(W<=0)return 0;let z=J.getScrollPosition(),_=typeof J.getColumns==="function"?J.getColumns():1,S=Math.ceil(B/_)*U,G=Math.min(S,n0)-W,H=S-W,T=G>0?H/G:1,f=z*T,l=Math.ceil((f+W)/U);return Math.min(l*_,B)}function D(){let B=J.getTotal(),U=Z();return{progress:B>0?Math.min(100,Math.max(0,U/B*100)):0,velocity:Q,velocityAvg:K(),itemCount:U,total:B}}return{getState:D,onVelocity:Y}}export{aJ as withTable,sJ as withSortable,lJ as withSnapshots,cJ as withSelection,vJ as withScrollbar,SJ as withScale,IJ as withPage,dJ as withMasonry,gJ as withGroups,xJ as withGrid,oJ as withAutoSize,fJ as withAsync,CJ as vlist,a1 as createStats};
package/dist/internals.js CHANGED
@@ -1 +1 @@
1
- var T2=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var v2=(J,Q)=>{let $=0,j=J.length-1;while($<j){let q=$+j+1>>>1;if(J[q].headerLayoutIndex<=Q)$=q;else j=q-1}return $},x2=(J,Q)=>{let $=0,j=J.length-1;while($<j){let q=$+j+1>>>1;if(J[q].firstDataIndex<=Q)$=q;else j=q-1}return $},g2=(J,Q)=>{if(J===0)return[];let $=[],j=Q(0),q=0,Y=0;for(let B=1;B<J;B++){let G=Q(B);if(G!==j){let b=B-q;$.push({key:j,groupIndex:$.length,headerLayoutIndex:Y,firstDataIndex:q,count:b}),Y=Y+1+b,j=G,q=B}}return $.push({key:j,groupIndex:$.length,headerLayoutIndex:Y,firstDataIndex:q,count:J-q}),$},u2=(J,Q)=>{if(J.length===0||Q.length===0)return[];let $=J.length+Q.length,j=Array($),q=0;for(let Y of Q){j[q]={id:`__group_header_${Y.groupIndex}`,__groupHeader:!0,groupKey:Y.key,groupIndex:Y.groupIndex},q++;for(let B=0;B<Y.count;B++)j[q]=J[Y.firstDataIndex+B],q++}return j},m2=(J,Q,$=!1)=>{let j=typeof Q==="number"?(q)=>Q:Q;return(q)=>{let Y=J.getEntry(q);if(Y.type==="header"){if($&&Y.group.groupIndex===0)return 0;return J.getHeaderHeight(Y.group.groupIndex)}return j(Y.dataIndex)}},d2=(J,Q)=>{let $=g2(J,Q.getGroupForIndex),j=J+$.length,q=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return j},get groupCount(){return $.length},get groups(){return $},getEntry:(L)=>{if($.length===0)return{type:"item",dataIndex:L,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let v=v2($,L),V=$[v];if(L===V.headerLayoutIndex)return{type:"header",group:V};let D=L-V.headerLayoutIndex-1;return{type:"item",dataIndex:V.firstDataIndex+D,group:V}},layoutToDataIndex:(L)=>{if($.length===0)return L;let v=v2($,L),V=$[v];if(L===V.headerLayoutIndex)return-1;let D=L-V.headerLayoutIndex-1;return V.firstDataIndex+D},dataToLayoutIndex:(L)=>{if($.length===0)return L;let v=x2($,L),V=$[v],D=L-V.firstDataIndex;return V.headerLayoutIndex+1+D},getGroupAtLayoutIndex:(L)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let v=v2($,L);return $[v]},getGroupAtDataIndex:(L)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let v=x2($,L);return $[v]},getHeaderHeight:typeof q==="number"?(L)=>q:(L)=>{let v=$[L];if(!v)return 0;return q(v.key,L)},rebuild:(L)=>{$=g2(L,Q.getGroupForIndex),j=L+$.length}}};var c2=(J,Q,$,j,q,Y=!1,B=0)=>{let G=Y?"width":"height",b=Y?"height":"width",M=Y?"X":"Y",U=(N,S)=>{N.style[G]=`${S}px`},E=document.createElement("div");E.className=`${q}-sticky-header`,E.setAttribute("role","presentation"),E.setAttribute("aria-hidden","true"),E.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(Y?`top:0;bottom:0;left:${B||0}px`:`top:${B||0}px`);let L=()=>{let N=document.createElement("div");return N.className="sticky-group",N.style.position="absolute",N.style.willChange="transform",N.style[b]="100%",N},v=L(),V=L();E.append(v,V),J.insertBefore(E,J.firstChild);let D=v,K=V,Z=Q.groups,F=[],H=[],P=0,c=()=>{Z=Q.groups,P=Z.length,F=Array(P),H=Array(P);for(let N=0;N<P;N++)F[N]=$.getOffset(Z[N].headerLayoutIndex),H[N]=Q.getHeaderHeight(N)};c();let g=-1,n=0,l=-1,$2=!1,N2=0,I=!1,d=(N,S)=>{j(N,S);let u=H[S];return U(N,u),u},Y2=(N)=>{N.replaceChildren(),N.style.transform=""},J2=(N)=>{if(N===g)return;if(g=N,n=0,N<0||N>=P){Y2(D);return}n=d(D,N),U(E,n),D.style.transform=""},R=(N)=>{if(N===N2)return;N2=N;let S=Math.round(N);D.style.transform=`translate${M}(${S}px)`,K.style.transform=`translate${M}(${S+n}px)`},X=()=>{N2=0,D.style.transform="",K.style.transform=""},_=()=>{if(!I)return;let N=D;D=K,K=N,g=l,n=g>=0?H[g]:0,U(E,n),Y2(K),l=-1,I=!1,X()},O=()=>{if(!I)return;Y2(K),l=-1,I=!1,X()},C=()=>{if($2)return;$2=!0,E.style.display=""},a=()=>{if(!$2)return;$2=!1,E.style.display="none",Y2(D),g=-1,n=0,O()},i=(N)=>{if(P===0){a();return}if(N<F[0]){a();return}let S=0,u=P-1;while(S<u){let z=S+u+1>>>1;if(F[z]+H[z]<=N)S=z;else u=z-1}if(!$2)C();J2(S);let T=S+1;if(T<P){let z=F[T]-N;if(z<=0&&z>-n){if(l!==T||!I)l=T,d(K,T),I=!0;R(z)}else if(z<=-n){if(I)_()}else if(I)O()}else if(I)O()},y=()=>{c();let N=g;if(g=-1,n=0,N>=0)J2(N)},W=()=>{E.remove(),g=-1,n=0,l=-1,$2=!1,I=!1};return E.style.display="none",{update:i,refresh:y,show:C,hide:a,destroy:W}};var r2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),$=J.gap??0,j=J.isHeaderFn,q={row:0,col:0},Y=(V)=>{if(V<=0)return 0;if(!j)return Math.ceil(V/Q);let D=0,K=0,Z=0;for(let F=0;F<V;F++)if(j(F)){if(Z++,K>0)D++,K=0;D++,K=0}else if(K++,K>=Q)D++,K=0;if(K>0)D++;return D},B=(V)=>{return q.row=G(V),q.col=b(V),q},G=(V)=>{if(!j)return Math.floor(V/Q);let D=0,K=0;for(let Z=0;Z<=V;Z++)if(j(Z)){if(K>0)D++,K=0;if(Z===V)return D;D++,K=0}else{if(Z===V)return D;if(K++,K>=Q)D++,K=0}return console.warn(`⚠️ getRow(${V}) fell through - returning ${D}`),D},b=(V)=>{if(!j)return V%Q;if(j(V))return 0;let D=0;for(let K=0;K<=V;K++)if(j(K))D=0;else{if(K===V)return D;if(D++,D>=Q)D=0}return D},M=(V,D,K)=>{if(K<=0)return{start:0,end:-1};if(!j){let c=Math.max(0,V*Q),g=Math.min(K-1,(D+1)*Q-1);return{start:c,end:g}}let Z=-1,F=-1,H=0,P=0;for(let c=0;c<K;c++){if(j(c)){if(P>0)H++,P=0;if(H>=V&&H<=D){if(Z===-1)Z=c;F=c}H++,P=0}else{if(H>=V&&H<=D){if(Z===-1)Z=c;F=c}if(P++,P>=Q)H++,P=0}if(H>D&&P===0)break}if(Z===-1)return{start:0,end:-1};return{start:Z,end:F}},U=(V,D,K)=>{if(D<0||D>=Q)return-1;let Z=V*Q+D;if(Z<0||Z>=K)return-1;return Z},E=(V)=>{let D=(Q-1)*$;return Math.max(0,(V-D)/Q)};return{get columns(){return Q},get gap(){return $},update:(V)=>{if(V.columns!==void 0)Q=Math.max(1,Math.floor(V.columns));if(V.gap!==void 0)$=V.gap;if(V.isHeaderFn!==void 0)j=V.isHeaderFn},getTotalRows:Y,getPosition:B,getRow:G,getCol:b,getItemRange:M,getItemIndex:U,getColumnWidth:E,getColumnOffset:(V,D)=>{let K=E(D);return V*(K+$)}}};var W2=16000000;var l2="x",a2=20,C2="_isPlaceholder",M2="__placeholder_";var A2=(J,Q,$)=>{if(String($).startsWith(M2))return!1;let j=M2+Q;if(J.has(j))return J.delete(j),J.add($),!0;return!1},s2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),S2=(J,Q,$)=>{if($==="none")return J;let j=new Set(J.selected);if($==="single"){if(j.clear(),Q.length>0)j.add(Q[0])}else for(let q of Q)j.add(q);return{...J,selected:j}},f2=(J,Q)=>{let $=new Set(J.selected);for(let j of Q)$.delete(j);return{...J,selected:$}},n2=(J,Q,$)=>{if($==="none")return J;if(J.selected.has(Q))return f2(J,[Q]);else return S2(J,[Q],$)},o2=(J,Q,$)=>{if($!=="multiple")return J;return{...J,selected:new Set(Q.map((j)=>j.id))}},i2=(J)=>({...J,selected:new Set});var t2=(J,Q)=>{return J.selected.has(Q)},e2=(J)=>{return Array.from(J.selected)},JJ=(J,Q)=>{let $=[];for(let j of J.selected){let q=Q(j);if(q)$.push(q)}return $};var vJ=(J,Q)=>{let $=Q;return{getOffset:(j)=>j*J,getSize:(j)=>J,indexAtOffset:(j)=>{if($===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(j/J),$-1))},getTotalSize:()=>$*J,getTotal:()=>$,rebuild:(j)=>{$=j},isVariable:()=>!1}},CJ=(J,Q)=>{let $=Q,j=new Float64Array(0),q=(B)=>{$=B,j=new Float64Array(B+1),j[0]=0;for(let G=0;G<B;G++)j[G+1]=j[G]+J(G)};q(Q);let Y=(B)=>{if($===0)return 0;if(B<=0)return 0;if(B>=j[$])return $-1;let G=0,b=$-1;while(G<b){let M=G+b+1>>>1;if(j[M]<=B)G=M;else b=M-1}return G};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=$)return j[$];return j[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>Y(B),getTotalSize:()=>j[$]??0,getTotal:()=>$,rebuild:(B)=>q(B),isVariable:()=>!0}},L2=(J,Q)=>{if(typeof J==="number")return vJ(J,Q);return CJ(J,Q)},I2=(J,Q,$,j)=>{if(j===0)return 0;if(!J.isVariable())return Math.ceil($/J.getSize(0));let q=0,Y=0,B=Q;while(B<j&&Y<$)Y+=J.getSize(B),q++,B++;return Math.max(1,q)};var H2=(J,Q,$)=>{let j=Q.getTotalSize(),q=$===!0||j>W2,Y=j>W2?W2:j,B=j>0?Y/j:1;return{isCompressed:q,actualSize:j,virtualSize:Y,ratio:B}},QJ=(J,Q,$,j,q,Y)=>{if(j===0||Q===0)return Y.start=0,Y.end=-1,Y;if(!q.isCompressed||q.ratio===1){let L=$.indexAtOffset(J),v=$.indexAtOffset(J+Q);if(v<j-1)v++;return Y.start=Math.max(0,L),Y.end=Math.min(j-1,Math.max(0,v)),Y}let{virtualSize:B}=q,b=J/B*j,M=Math.floor(b),U=I2($,Math.max(0,M),Q,j),E=Math.ceil(b)+U;return Y.start=Math.max(0,M),Y.end=Math.min(j-1,Math.max(0,E)),Y},$J=(J,Q,$,j)=>{if($===0)return j.start=0,j.end=-1,j;return j.start=Math.max(0,J.start-Q),j.end=Math.min($-1,J.end+Q),j},F2=(J,Q,$,j,q,Y,B)=>{if(!Y.isCompressed||j===0)return $.getOffset(J);if(Y.ratio===1)return $.getOffset(J)-Q;let{virtualSize:G}=Y,b=Q/G,M=$.getTotalSize(),U=b*M;return $.getOffset(J)-U},YJ=(J,Q,$,j,q,Y="start")=>{if(j===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/j*q.virtualSize;let U=Q.getSize(J);switch(Y){case"center":B-=($-U)/2*q.ratio;break;case"end":B-=($-U)*q.ratio;break}return Math.max(0,B)}B=Q.getOffset(J);let G=Q.getSize(J);switch(Y){case"center":B-=($-G)/2;break;case"end":B-=$-G;break}let b=q.virtualSize-$;return Math.max(0,Math.min(B,b))},jJ=(J,Q,$,j)=>{if($===0)return 0;if(j.isCompressed&&j.ratio!==1){let q=J/j.virtualSize;return Math.floor(q*$)}return Q.indexAtOffset(J)},qJ=(J,Q)=>{if(typeof Q==="number")return J*Q>W2;return Q.getTotalSize()>W2},BJ=(J)=>{if(J<=0)return 0;return Math.floor(W2/J)},KJ=(J,Q,$)=>{let j=H2(J,Q,$);if(!j.isCompressed)return`No compression needed (${J} items, ${(j.actualSize/1e6).toFixed(2)}M px)`;return`Compressed to ${(j.ratio*100).toFixed(1)}% (${J} items, ${(j.actualSize/1e6).toFixed(1)}M px → ${(j.virtualSize/1e6).toFixed(1)}M px virtual)`};var R2=(J,Q,$)=>{let j=Array.from(Q).sort((B,G)=>B-G);if(j.length<=1)return;let q=[];for(let B=0;B<j.length;B++){let G=$(j[B]);if(G)q.push(G)}if(q.length<=1)return;let Y=J.firstChild;for(let B=0;B<q.length;B++){let G=q[B];if(G===Y)Y=Y.nextSibling;else J.insertBefore(G,Y)}};var SJ=(J=200)=>{let Q=[];return{acquire:()=>{let Y=Q.pop();if(Y)return Y;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(Y)=>{if(Y.remove(),Q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-row"),Y.removeAttribute("data-col"),Q.push(Y)},clear:()=>{Q.length=0}}},fJ=1,XJ=(J,Q,$,j,q,Y,B,G,b=!1)=>{let M=SJ(),U=new Map,E=Y,L=!1,v=0,V="",D=-1,K={selected:!1,focused:!1},Z=(W,N)=>{return K.selected=W,K.focused=N,K},F=`${q}-item ${q}-grid-item`,H=`${q}-item--selected`,P=`${q}-item--focused`,c=`${q}-item--placeholder`,g=`${q}-item--replaced`,n=(W,N)=>{if(typeof N==="string")W.innerHTML=N;else W.replaceChildren(N)},l=(W,N,S)=>{W.classList.toggle(H,N),W.classList.toggle(P,S)},$2=(W,N)=>{let S=j.getRow(W);if(N?.compression?.isCompressed)return F2(S,N.scrollPosition,$,N.totalItems,N.containerSize,N.compression,N.rangeStart);return $.getOffset(S)},N2=(W,N)=>{let S=L&&j.getCol(W)===0,u=S?0:j.getCol(W),T=S?0:j.getColumnOffset(u,E),z;if(L){let t=j.getRow(W),A=0,k=new Set;for(let f=0;f<W;f++){let m=j.getRow(f);if(m<t&&!k.has(m)){let r=$.getSize(f);A+=r,k.add(m)}}z=A}else z=$2(W,N);if(b)return`translate(${Math.round(z)}px, ${Math.round(T)}px)`;return`translate(${Math.round(T)}px, ${Math.round(z)}px)`},I=(W,N)=>{W.style.transform=N},d=(W,N)=>{let S=W.dataset.id?.startsWith("__group_header"),u=S?E:j.getColumnWidth(E),T;if(L||S)T=$.getSize(N)-j.gap;else{let z=j.getRow(N);T=$.getSize(z)-j.gap}if(b)W.style.width=`${T}px`,W.style.height=`${u}px`;else W.style.width=`${u}px`,W.style.height=`${T}px`},Y2=(W,N,S,u,T)=>{let z=M.acquire(),t=Z(S,u);if(z.className=F,z.dataset.index=String(W),z.dataset.id=String(N.id),z.dataset.row=String(j.getRow(W)),z.dataset.col=String(j.getCol(W)),z.ariaSelected=String(S),G)z.id=`${G}-item-${W}`;if(B){let f=B();if(f!==D)D=f,V=String(f);z.setAttribute("aria-setsize",V),z.setAttribute("aria-posinset",String(W+1))}d(z,W);let A=Q(N,W,t);if(n(z,A),String(N.id).startsWith(M2))z.classList.add(c);return l(z,S,u),I(z,T),{element:z,lastItemId:N.id,lastSelected:S,lastFocused:u,lastTransform:T,lastSeenFrame:v}},J2=(W,N,S,u,T)=>{if(v++,N.start===0&&W.length>0)L=T2(W[0]);for(let[A,k]of U)if(A>=N.start&&A<=N.end)k.lastSeenFrame=v;else if(v-k.lastSeenFrame>fJ)M.release(k.element),U.delete(A);let z=!1;if(B){let A=B();if(A!==D)D=A,V=String(A),z=!0}let t=null;for(let A=N.start;A<=N.end;A++){let k=A-N.start,f=W[k];if(!f){console.warn(`⚠️ RENDER: Missing item at index ${A} (range: ${N.start}-${N.end}, items.length: ${W.length})`);continue}let m=S.has(f.id),r=A===u,h=U.get(A);if(h){let e=h.lastItemId!==f.id,w=h.lastSelected!==m,p=h.lastFocused!==r;if(e){let B2=String(h.lastItemId),Q2=String(f.id),q2=B2.startsWith(M2),Z2=Q2.startsWith(M2);if(!Z2&&A2(S,A,f.id))m=!0;let _2=Z(m,r),s=Q(f,A,_2);if(n(h.element,s),h.element.dataset.id=Q2,h.element.dataset.row=String(j.getRow(A)),h.element.dataset.col=String(j.getCol(A)),d(h.element,A),h.element.classList.toggle(c,Z2),q2&&!Z2)h.element.classList.add(g),setTimeout(()=>h.element.classList.remove(g),300);h.lastItemId=f.id}if(e||w||p)l(h.element,m,r),h.element.ariaSelected=String(m),h.lastSelected=m,h.lastFocused=r;let x=N2(A,T);if(h.lastTransform!==x)I(h.element,x),h.lastTransform=x;if(z)h.element.setAttribute("aria-setsize",V)}else{if(A2(S,A,f.id))m=!0;let e=N2(A,T),w=Y2(A,f,m,r,e);if(!t)t=document.createDocumentFragment();t.appendChild(w.element),U.set(A,w)}}if(t)J.appendChild(t)},R=(W)=>{for(let[N,S]of U){let u=N2(N,W);if(S.lastTransform!==u)I(S.element,u),S.lastTransform=u}},X=(W,N,S,u)=>{let T=U.get(W);if(!T)return;let z=Z(S,u),t=Q(N,W,z);n(T.element,t),l(T.element,S,u),T.element.dataset.id=String(N.id),T.element.ariaSelected=String(S),d(T.element,W),T.lastItemId=N.id,T.lastSelected=S,T.lastFocused=u},_=(W,N,S)=>{let u=U.get(W);if(!u)return;let T=u.lastSelected!==N,z=u.lastFocused!==S;if(T||z)l(u.element,N,S),u.lastSelected=N,u.lastFocused=S},O=(W)=>{return U.get(W)?.element},C=(W)=>{if(Math.abs(W-E)<1)return;E=W;for(let[N,S]of U){d(S.element,N);let u=N2(N);I(S.element,u),S.lastTransform=u}},a=()=>{R2(J,U.keys(),(W)=>U.get(W)?.element)},i=()=>{for(let[,W]of U)M.release(W.element);U.clear()};return{render:J2,updatePositions:R,updateItem:X,updateItemClasses:_,getElement:O,sortDOM:a,updateContainerWidth:C,clear:i,destroy:()=>{i(),M.clear()}}};var UJ=(J,Q=50,$=1/0,j=!0)=>{let q=J,Y=[],B=0,G=()=>{Y=q.map((K,Z)=>({def:K,index:Z,width:0,minWidth:IJ(K.minWidth??Q,1),maxWidth:K.maxWidth??$,resizable:K.resizable??j,offset:0}))},b=(K)=>{if(Y.length===0){B=0;return}let Z=0,F=0;for(let H=0;H<Y.length;H++){let P=Y[H],c=P.def;if(c.width!==void 0)P.width=p2(c.width,P.minWidth,P.maxWidth),Z+=P.width;else F++}if(F>0){let P=Math.max(0,K-Z)/F;for(let c=0;c<Y.length;c++){let g=Y[c];if(g.def.width===void 0)g.width=p2(P,g.minWidth,g.maxWidth)}}M()},M=()=>{let K=0;for(let Z=0;Z<Y.length;Z++){let F=Y[Z];F.offset=K,K+=F.width}B=K},U=(K,Z)=>{if(K<0||K>=Y.length)return 0;let F=Y[K];if(!F.resizable)return F.width;let H=p2(Z,F.minWidth,F.maxWidth);return F.width=H,M(),H},E=(K)=>{return Y[K]},L=(K)=>{if(Y.length===0)return;if(K<0)return Y[0];if(K>=B)return Y[Y.length-1];let Z=0,F=Y.length-1;while(Z<F){let H=Z+F>>>1,P=Y[H];if(K<P.offset)F=H-1;else if(K>=P.offset+P.width)Z=H+1;else return P}return Y[Z]},v=(K)=>{if(K<0||K>=Y.length)return 0;return Y[K].offset},V=(K)=>{if(K<0||K>=Y.length)return 0;return Y[K].width},D=(K)=>{q=K,G()};return G(),{get columns(){return Y},get totalWidth(){return B},resolve:b,updateColumns:D,resizeColumn:U,getColumn:E,getColumnAtX:L,getColumnOffset:v,getColumnWidth:V}},p2=(J,Q,$)=>Math.min($,Math.max(Q,J)),IJ=(J,Q)=>Math.max(Q,J);var NJ=(J,Q,$,j,q,Y)=>{let B=document.createElement("div");B.setAttribute("role","rowgroup");let G=document.createElement("div");G.className=`${$}-table-header`,G.setAttribute("role","row"),G.setAttribute("aria-rowindex","1"),G.style.height=`${Q}px`;let b=document.createElement("div");b.className=`${$}-table-header-scroll`,b.setAttribute("role","presentation"),G.appendChild(b),B.appendChild(G),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let M=[],U=[],E=[],L=!0,v=null,V="asc",D=null,K=!1,Z=-1,F=0,H=0,P=(X,_)=>{let O=document.createElement("div");O.className=`${$}-table-header-cell`,O.setAttribute("role","columnheader"),O.setAttribute("aria-colindex",String(_+1)),O.dataset.columnKey=X.def.key;let C=X.def.align;if(C==="center")O.classList.add(`${$}-table-header-cell--center`);else if(C==="right")O.classList.add(`${$}-table-header-cell--right`);let a=document.createElement("div");a.className=`${$}-table-header-content`;let i=X.def.header?X.def.header(X.def):X.def.label;if(typeof i==="string")a.textContent=i;else a.appendChild(i);if(O.appendChild(a),X.def.sortable){let y=document.createElement("span");y.className=`${$}-table-header-sort`,y.setAttribute("aria-hidden","true"),O.appendChild(y),E.push(y),O.classList.add(`${$}-table-header-cell--sortable`)}else E.push(null);if(X.resizable){let y=document.createElement("div");y.className=`${$}-table-header-resize`,y.dataset.resizeIndex=String(_),O.appendChild(y),U.push(y)}return O},c=(X)=>{D=X,b.textContent="",M=[],U=[],E=[];let _=X.columns;for(let O=0;O<_.length;O++){let C=_[O],a=P(C,O);M.push(a),b.appendChild(a)}if(g(X),v)n(v,V)},g=(X)=>{D=X;let _=X.columns;b.style.width=`${X.totalWidth}px`;for(let O=0;O<M.length&&O<_.length;O++){let C=M[O],a=_[O];C.style.width=`${a.width}px`}},n=(X,_)=>{if(v=X,V=_,!D)return;let O=D.columns;for(let C=0;C<E.length&&C<O.length;C++){let a=E[C];if(!a)continue;if(O[C].def.key===X&&X!==null)a.textContent=_==="asc"?"▲":"▼",a.style.opacity="0.7",M[C].setAttribute("aria-sort",_==="asc"?"ascending":"descending");else a.textContent="",a.style.opacity="0",M[C].removeAttribute("aria-sort")}},l=(X)=>{b.style.transform=`translateX(${-X}px)`},$2=(X)=>{let _=X.target;if(!_.dataset.resizeIndex)return;if(X.preventDefault(),X.stopPropagation(),Z=parseInt(_.dataset.resizeIndex,10),!D)return;let O=D.getColumn(Z);if(!O||!O.resizable)return;K=!0,F=X.clientX,H=O.width,J.classList.add(`${$}--col-resizing`),J.style.cursor="col-resize",_.classList.add(`${$}-table-header-resize--active`),_.setPointerCapture(X.pointerId),_.addEventListener("pointermove",N2),_.addEventListener("pointerup",I),_.addEventListener("pointercancel",I)},N2=(X)=>{if(!K||!D)return;let _=X.clientX-F;if(Math.abs(_)<1)return;let O=Math.max(0,H+_);j(Z,O)},I=(X)=>{if(!K)return;let _=X.target;_.removeEventListener("pointermove",N2),_.removeEventListener("pointerup",I),_.removeEventListener("pointercancel",I);try{_.releasePointerCapture(X.pointerId)}catch{}_.classList.remove(`${$}-table-header-resize--active`),J.classList.remove(`${$}--col-resizing`),J.style.cursor="",K=!1,Z=-1},d=(X)=>{let _=X.target;if(_.dataset.resizeIndex!==void 0)return;if(K)return;let O=_;while(O&&!O.dataset.columnKey)if(O=O.parentElement,O===G||O===null)return;if(!O||!O.dataset.columnKey)return;let C=O.dataset.columnKey;if(!D)return;let a=D.columns,i=-1;for(let W=0;W<a.length;W++)if(a[W].def.key===C){i=W;break}if(i===-1)return;let y=a[i];if(Y)Y({key:C,index:i,event:X});if(y.def.sortable&&q){let W;if(v===C)if(V==="asc")W="desc";else W=null;else W="asc";q({key:C,index:i,direction:W})}};return G.addEventListener("pointerdown",$2),G.addEventListener("click",d),{element:G,update:g,updateSort:n,rebuild:c,show:()=>{if(L)return;L=!0,G.style.display=""},hide:()=>{if(!L)return;L=!1,G.style.display="none"},destroy:()=>{G.removeEventListener("pointerdown",$2),G.removeEventListener("click",d),J.style.removeProperty("--vlist-table-header-height"),B.remove(),M=[],U=[],E=[],D=null,L=!1},syncScroll:l}};var pJ=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Q)=>{if(Q.parentNode?.removeChild(Q),J.length<200)Q.className="",Q.removeAttribute("data-id"),Q.removeAttribute("data-index"),Q.removeAttribute("aria-selected"),Q.removeAttribute("aria-rowindex"),Q.removeAttribute("role"),Q.style.cssText="",Q.textContent="",J.push(Q)},clear:()=>{J.length=0}}},ZJ=(J,Q,$,j,q,Y,B,G,b)=>{let M=pJ(),U=new Map,E=-1,L=$,v=null,V=null,D=null,K=(A,k)=>{V=A,D=k},Z=(A,k)=>{if(k)A.setAttribute("aria-selected","true");else A.removeAttribute("aria-selected")},F=(A,k,f,m)=>{A.setAttribute("role",k),A.setAttribute("data-id",String(f)),A.setAttribute("data-index",String(m))},H=(A)=>String(A).startsWith("__placeholder_"),P=`${q}-item ${q}-table-row`,c=`${q}-item--selected`,g=`${q}-item--focused`,n=`${q}-table-cell`,l=`${q}-table-cell--center`,$2=`${q}-table-cell--right`,N2=`${q}-item--odd`,I=`${q}-item--placeholder`,d=`${q}-item--replaced`,Y2=`${q}-item ${q}-table-row ${q}-table-group-header`,J2=`${q}-table-group-header-content`,R=(A,k,f,m,r=!1)=>{if(f.def.cell){let h=f.def.cell(k,f.def,m);if(typeof h==="string")A.innerHTML=h;else A.replaceChildren(h)}else{let h=k[f.def.key],e=h!=null?String(h):"";if(r&&e)A.innerHTML=`<span>${e}</span>`;else A.textContent=e}},X=(A,k,f,m,r=!1)=>{let h=P;if(G){if(v){let e=v(k);if(e>=0&&(e&1)===1)h+=` ${N2}`}else if((k&1)===1)h+=` ${N2}`}if(r)h+=` ${I}`;if(f)h+=` ${c}`;if(m)h+=` ${g}`;A.className=h},_=(A,k,f)=>{if(f?.compression?.isCompressed)return Math.round(F2(A,f.scrollPosition,k,f.totalItems,f.containerSize,f.compression,f.rangeStart));return k.getOffset(A)},O=(A,k)=>{let f=k.def.align;if(f==="center")A.classList.add(l),A.classList.remove($2);else if(f==="right")A.classList.add($2),A.classList.remove(l);else A.classList.remove(l,$2)},C=(A,k)=>{let m=L.columns.length;if(k.length===m)return k;let r=[];for(let h=0;h<m;h++){let e;if(h<k.length)e=k[h];else e=document.createElement("div"),e.className=n,A.appendChild(e);r.push(e)}for(let h=m;h<k.length;h++)k[h].remove();return r},a=(A,k,f,m)=>{let r=M.acquire(),h=A,e=f.getSize(k),w=_(k,f,m);r.style.cssText=`width:${L.totalWidth}px;height:${e}px;transform:translateY(${w}px)`,r.className=Y2,F(r,"presentation",A.id,k),r.removeAttribute("aria-selected"),r.removeAttribute("aria-rowindex"),r.replaceChildren();let p=document.createElement("div");if(p.className=J2,D){let x=D(h.groupKey,h.groupIndex);if(typeof x==="string")p.innerHTML=x;else p.appendChild(x)}return r.appendChild(p),{element:r,cells:[],index:k,isGroupHeader:!0,lastItemId:A.id,lastSelected:!1,lastFocused:!1,lastOffset:w,lastHeight:e}},i=(A,k,f,m,r,h)=>{let e=M.acquire(),w=r.getSize(k),p=_(k,r,h),x=H(A.id);e.style.cssText=`width:${L.totalWidth}px;height:${w}px;transform:translateY(${p}px)`,X(e,k,f,m,x),F(e,"row",A.id,k),e.id=`${Y}-${k}`,e.setAttribute("aria-rowindex",String(k+2)),Z(e,f);let B2=C(e,[]),Q2=L.columns;for(let q2=0;q2<B2.length&&q2<Q2.length;q2++){let Z2=B2[q2],_2=Q2[q2];Z2.style.cssText=`left:${_2.offset}px;width:${_2.width}px`,Z2.setAttribute("role","gridcell"),Z2.setAttribute("aria-colindex",String(q2+1)),O(Z2,_2),R(Z2,A,_2,k,x)}return{element:e,cells:B2,index:k,isGroupHeader:!1,lastItemId:A.id,lastSelected:f,lastFocused:m,lastOffset:p,lastHeight:w}},y=(A,k,f,m,r)=>{for(let[x,B2]of U)if(x<k.start||x>k.end)M.release(B2.element),U.delete(x);let h=!1,e=B();if(e!==E)E=e,h=!0;let w=null,p=Q();v=typeof G==="string"&&b?b():null;for(let x=k.start;x<=k.end;x++){let B2=x-k.start,Q2=A[B2];if(!Q2)continue;let q2=f.has(Q2.id),Z2=x===m,_2=V?V(Q2):!1,s=U.get(x);if(s){if(s.isGroupHeader!==_2){M.release(s.element),U.delete(x);let X2=_2?a(Q2,x,p,r):i(Q2,x,q2,Z2,p,r);if(U.set(x,X2),!w)w=document.createDocumentFragment();w.appendChild(X2.element);continue}if(_2){if(s.lastItemId!==Q2.id){let K2=Q2,j2=s.element.firstElementChild;if(j2&&D){let D2=D(K2.groupKey,K2.groupIndex);if(typeof D2==="string")j2.innerHTML=D2;else j2.replaceChildren(D2)}s.element.setAttribute("data-id",String(Q2.id)),s.lastItemId=Q2.id}let o=_(x,p,r);if(s.lastOffset!==o)s.lastOffset=o,s.element.style.transform=`translateY(${o}px)`;let U2=p.getSize(x);if(s.lastHeight!==U2)s.lastHeight=U2,s.element.style.height=`${U2}px`}else{let X2=s.lastItemId!==Q2.id,o=s.lastSelected!==q2,U2=s.lastFocused!==Z2;if(X2){let D2=s.lastItemId!=null&&H(s.lastItemId),G2=H(Q2.id);if(!G2&&A2(f,x,Q2.id))q2=!0;let V2=L.columns;for(let E2=0;E2<s.cells.length&&E2<V2.length;E2++)R(s.cells[E2],Q2,V2[E2],x,G2);if(X(s.element,x,q2,Z2,G2),s.element.setAttribute("data-id",String(Q2.id)),Z(s.element,q2),D2&&!G2)s.element.classList.add(d),setTimeout(()=>{s.element.classList.remove(d)},300);s.lastItemId=Q2.id,s.lastSelected=q2,s.lastFocused=Z2}else if(o||U2)X(s.element,x,q2,Z2,H(Q2.id)),Z(s.element,q2),s.lastSelected=q2,s.lastFocused=Z2;let K2=_(x,p,r);if(s.lastOffset!==K2)s.lastOffset=K2,s.element.style.transform=`translateY(${K2}px)`;let j2=p.getSize(x);if(s.lastHeight!==j2)s.lastHeight=j2,s.element.style.height=`${j2}px`;if(h)s.element.setAttribute("aria-rowindex",String(x+2))}}else{if(A2(f,x,Q2.id))q2=!0;let X2=_2?a(Q2,x,p,r):i(Q2,x,q2,Z2,p,r);if(U.set(x,X2),!w)w=document.createDocumentFragment();w.appendChild(X2.element)}}if(w)J.appendChild(w)},W=(A)=>{let k=Q();for(let[f,m]of U){let r=_(f,k,A);if(m.lastOffset!==r)m.lastOffset=r,m.element.style.transform=`translateY(${r}px)`}},N=(A,k,f,m)=>{let r=U.get(A);if(!r)return;if(r.isGroupHeader)return;let h=L.columns;for(let e=0;e<r.cells.length&&e<h.length;e++)R(r.cells[e],k,h[e],A);r.element.setAttribute("data-id",String(k.id)),r.lastItemId=k.id,X(r.element,A,f,m),Z(r.element,f),r.lastSelected=f,r.lastFocused=m},S=(A,k,f)=>{let m=U.get(A);if(!m)return;if(m.isGroupHeader)return;let r=m.lastSelected!==k,h=m.lastFocused!==f;if(r||h)X(m.element,A,k,f),Z(m.element,k),m.lastSelected=k,m.lastFocused=f},u=(A)=>{L=A;let k=A.columns;for(let[,f]of U)if(f.element.style.width=`${A.totalWidth}px`,f.cells.length>0)for(let m=0;m<f.cells.length&&m<k.length;m++){let r=f.cells[m],h=k[m];r.style.left=`${h.offset}px`,r.style.width=`${h.width}px`}},T=(A)=>{return U.get(A)?.element},z=()=>{for(let[,A]of U)M.release(A.element);U.clear(),E=-1};return{render:y,updatePositions:W,updateItem:N,updateItemClasses:S,getElement:T,updateColumnLayout:u,setGroupHeaderFn:K,clear:z,destroy:()=>{z(),M.clear()}}};var GJ=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),$=J.gap??0,j=J.containerSize,q=0,Y=[],B=()=>{let K=(Q-1)*$;q=Math.max(0,(j-K)/Q),Y=Array(Q);let Z=q+$;for(let F=0;F<Q;F++)Y[F]=F*Z};B();let G=[],b=0,M=[],U=(K)=>{let Z=0,F=K[0];for(let H=1;H<K.length;H++){let P=K[H];if(P<F)F=P,Z=H}return Z},E=(K,Z)=>{if(K<=0)return b=0,G=[],[];let F=Array(Q).fill(0),H=Array(Q);for(let g=0;g<Q;g++)H[g]=[];let P=Array(K);for(let g=0;g<K;g++){let n=U(F),l=Z(g),$2=F[n];P[g]={index:g,x:Y[n],y:$2,lane:n,size:l,crossSize:q},H[n].push(g),F[n]=$2+l+$}G=H;let c=0;for(let g=0;g<Q;g++){let n=F[g],l=n>0?n-$:0;if(l>c)c=l}return b=c,P},L=(K)=>{if(K.length===0)return b>0?b:0;if(b>0)return b;let Z=Array(Q).fill(0);for(let H of K){let P=H.y+H.size,c=Z[H.lane];if(P>c)Z[H.lane]=P}let F=0;for(let H=0;H<Q;H++)if(Z[H]>F)F=Z[H];return F},v=(K,Z,F)=>{if(K.length===0||F<=Z)return M.length=0,M;if(G.length===0||G.length!==Q)return V(K,Z,F);M.length=0;for(let H=0;H<Q;H++){let P=G[H],c=P.length;if(c===0)continue;let g=0,n=c;while(g<n){let l=g+n>>>1,$2=K[P[l]];if($2.y+$2.size<=Z)g=l+1;else n=l}for(let l=g;l<c;l++){let $2=K[P[l]];if($2.y>=F)break;M.push($2)}}return M},V=(K,Z,F)=>{let H=[];for(let P of K)if(P.y+P.size>Z&&P.y<F)H.push(P);return H};return{get columns(){return Q},get gap(){return $},get containerSize(){return j},update:(K)=>{let Z=!1;if(K.columns!==void 0){let F=Math.max(1,Math.floor(K.columns));if(F!==Q)Q=F,Z=!0}if(K.gap!==void 0&&K.gap!==$)$=K.gap,Z=!0;if(K.containerSize!==void 0&&K.containerSize!==j)j=K.containerSize,Z=!0;if(Z)B()},calculateLayout:E,getTotalSize:L,getVisibleItems:v}};var hJ=(J=200)=>{let Q=[];return{acquire:()=>{let Y=Q.pop();if(Y)return Y;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(Y)=>{if(Y.remove(),Q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-lane"),Q.push(Y)},clear:()=>{Q.length=0}}},xJ=1,_J=(J,Q,$,j=!1,q,Y)=>{let B=hJ(),G=new Map,b=new Set,M=0,U="",E=-1,L={selected:!1,focused:!1},v=(I,d)=>{return L.selected=I,L.focused=d,L},V=`${$}-item ${$}-masonry-item`,D=`${$}-item--selected`,K=`${$}-item--focused`,Z=(I,d)=>{if(typeof d==="string")I.innerHTML=d;else I.replaceChildren(d)},F=(I,d,Y2)=>{I.classList.toggle(D,d),I.classList.toggle(K,Y2)},H=(I,d)=>{if(j)I.style.transform=`translate(${Math.round(d.y)}px, ${Math.round(d.x)}px)`;else I.style.transform=`translate(${Math.round(d.x)}px, ${Math.round(d.y)}px)`},P=(I,d)=>{if(j)I.style.width=`${d.size}px`,I.style.height=`${d.crossSize}px`;else I.style.width=`${d.crossSize}px`,I.style.height=`${d.size}px`},c=(I,d,Y2,J2,R)=>{let X=B.acquire(),_=v(J2,R);if(X.className=V,X.dataset.index=String(I),X.dataset.id=String(d.id),X.dataset.lane=String(Y2.lane),X.ariaSelected=String(J2),Y)X.id=`${Y}-item-${I}`;if(q){let C=q();if(C!==E)E=C,U=String(C);X.setAttribute("aria-setsize",U),X.setAttribute("aria-posinset",String(I+1))}P(X,Y2);let O=Q(d,I,_);return Z(X,O),F(X,J2,R),H(X,Y2),{element:X,lastItemId:d.id,lastSelected:J2,lastFocused:R,lastY:Y2.y,lastX:Y2.x,lastSize:Y2.size,lastCrossSize:Y2.crossSize,lastSeenFrame:M}},g=(I,d,Y2,J2)=>{M++,b.clear();for(let X=0;X<d.length;X++)b.add(d[X].index);for(let[X,_]of G)if(b.has(X))_.lastSeenFrame=M;else if(M-_.lastSeenFrame>xJ)B.release(_.element),G.delete(X);let R=null;for(let X=0;X<d.length;X++){let _=d[X],O=_.index,C=I(O);if(!C)continue;let a=Y2.has(C.id),i=O===J2,y=G.get(O);if(y){let W=y.lastItemId!==C.id,N=y.lastSelected!==a,S=y.lastFocused!==i,u=y.lastY!==_.y||y.lastX!==_.x,T=y.lastSize!==_.size||y.lastCrossSize!==_.crossSize;if(W){let z=v(a,i),t=Q(C,O,z);Z(y.element,t),y.element.dataset.id=String(C.id),y.lastItemId=C.id}if(W||N||S)F(y.element,a,i),y.element.ariaSelected=String(a),y.lastSelected=a,y.lastFocused=i;if(T)P(y.element,_),y.lastSize=_.size,y.lastCrossSize=_.crossSize;if(u)H(y.element,_),y.lastY=_.y,y.lastX=_.x}else{let W=c(O,C,_,a,i);if(!R)R=document.createDocumentFragment();R.appendChild(W.element),G.set(O,W)}}if(R)J.appendChild(R)},n=()=>{for(let{element:I}of G.values())B.release(I);G.clear(),J.innerHTML=""};return{render:g,getElement:(I)=>G.get(I)?.element,updateItemClasses:(I,d,Y2)=>{let J2=G.get(I);if(!J2)return;let R=J2.lastSelected!==d,X=J2.lastFocused!==Y2;if(R||X)F(J2.element,d,Y2),J2.lastSelected=d,J2.lastFocused=Y2},sortDOM:()=>{R2(J,G.keys(),(I)=>G.get(I)?.element)},clear:n,destroy:()=>{n(),B.clear()}}};var DJ=(J,Q)=>{let $=new Map,j=(Y)=>{let B=$.get(Y);return B!==void 0?B:J},q=L2(j,Q);return{getOffset(Y){return q.getOffset(Y)},getSize(Y){return j(Y)},indexAtOffset(Y){return q.indexAtOffset(Y)},getTotalSize(){return q.getTotalSize()},getTotal(){return q.getTotal()},rebuild(Y){if(Y<q.getTotal()){for(let B of $.keys())if(B>=Y)$.delete(B)}q=L2(j,Y)},isVariable(){return!0},setMeasuredSize(Y,B){$.set(Y,B)},isMeasured(Y){return $.has(Y)},getEstimatedSize(){return J},measuredCount(){return $.size}}};var VJ=(J,Q,$,j,q,Y)=>{if(j===0||Q===0)return Y.start=0,Y.end=-1,Y;let B=$.indexAtOffset(J),G=$.indexAtOffset(J+Q);if(G<j-1)G++;return Y.start=Math.max(0,B),Y.end=Math.min(j-1,Math.max(0,G)),Y},WJ=(J,Q,$,j)=>{if($===0)return j.start=0,j.end=-1,j;return j.start=Math.max(0,J.start-Q),j.end=Math.min($-1,J.end+Q),j},MJ=(J,Q,$,j,q,Y)=>{if(j===0)return 0;let B=Math.max(0,Math.min(J,j-1)),G=Q.getOffset(B),b=Q.getSize(B),M=Q.getTotalSize(),U=Math.max(0,M-$),E;switch(Y){case"center":E=G-$/2+b/2;break;case"end":E=G-$+b;break;case"start":default:E=G;break}return Math.max(0,Math.min(E,U))},OJ=(J,Q,$)=>{if($&&$.isCompressed)return $.virtualSize;return Q.getTotalSize()},EJ=(J,Q)=>{return Q.getTotalSize()},AJ=(J,Q)=>{return Q.getOffset(J)},FJ=(J,Q,$)=>{let j=Math.max(0,Q-$);return Math.max(0,Math.min(J,j))};var LJ=(J,Q,$,j,q="start",Y,B=MJ)=>{return B(J,Q,$,j,Y,q)},HJ=(J,Q)=>{return J.start===Q.start&&J.end===Q.end},bJ=(J,Q)=>{return J>=Q.start&&J<=Q.end},TJ=(J)=>{if(J.end<J.start)return 0;return J.end-J.start+1};var RJ=(J,Q)=>{let $=[],j=[];for(let q=J.start;q<=J.end;q++)if(q<Q.start||q>Q.end)j.push(q);for(let q=Q.start;q<=Q.end;q++)if(q<J.start||q>J.end)$.push(q);return{add:$,remove:j}};var yJ=()=>{let J={},Q=(Y,B)=>{if(!J[Y])J[Y]=new Set;return J[Y].add(B),()=>$(Y,B)},$=(Y,B)=>{J[Y]?.delete(B)};return{on:Q,off:$,emit:(Y,B)=>{J[Y]?.forEach((G)=>{try{G(B)}catch(b){console.error(`[vlist] Error in event handler for "${String(Y)}":`,b)}})},clear:(Y)=>{if(Y)delete J[Y];else for(let B in J)delete J[B]}}};var y2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:$=5000,evictionBuffer:j=200,onEvict:q}=J,Y=new Map,B=0,G=0,b=(R)=>{let X=Y.get(R);if(!X)X={items:Array(Q),count:0,lastAccess:Date.now()},Y.set(R,X);else X.lastAccess=Date.now();return X},M=(R)=>{return Math.floor(R/Q)},U=(R)=>{return R%Q},E=()=>B,L=(R)=>{B=R},v=(R)=>{if(R<0||R>=B)return;let X=M(R),_=Y.get(X);if(!_)return;return _.items[U(R)]},V=(R)=>{if(R<0||R>=B)return!1;let X=M(R),_=Y.get(X);if(!_)return!1;return _.items[U(R)]!==void 0},D=(R,X)=>{let _=M(R),O=b(_),C=U(R),a=O.items[C]===void 0;if(O.items[C]=X,a)O.count++,G++;if(R>=B)B=R+1},K=(R,X)=>{for(let _=0;_<X.length;_++){let O=X[_];if(O!==void 0)D(R+_,O)}},Z=(R)=>{if(R<0||R>=B)return!1;let X=M(R),_=Y.get(X),O=U(R);if(!(_!==void 0&&_.items[O]!==void 0))return!1;let a=X,i=Array.from(Y.keys()).filter((W)=>W>=a).sort((W,N)=>W-N),y=[];for(let W of i){let N=Y.get(W),S=W*Q;for(let u=0;u<Q;u++){if(N.items[u]===void 0)continue;let T=S+u;if(T<=R)continue;y.push({oldIndex:T,item:N.items[u]})}}if(_.items[O]=void 0,_.count--,G--,_.count===0)Y.delete(X);for(let{oldIndex:W}of y){let N=M(W),S=Y.get(N);if(!S)continue;let u=U(W);if(S.items[u]!==void 0){if(S.items[u]=void 0,S.count--,G--,S.count===0)Y.delete(N)}}for(let{oldIndex:W,item:N}of y){let S=W-1,u=M(S),T=b(u),z=U(S);T.items[z]=N,T.count++,G++}return B--,!0},F=(R,X)=>{let _=[];for(let O=R;O<=X&&O<B;O++)_.push(v(O));return _},H=(R,X)=>{for(let _=R;_<=X&&_<B;_++)if(!V(_))return!1;return!0},P=()=>{let R=[],X=null,_=Array.from(Y.keys()).sort((O,C)=>O-C);for(let O of _){let C=Y.get(O);if(!C)continue;let a=O*Q;for(let i=0;i<Q;i++){let y=a+i;if(y>=B)break;if(C.items[i]!==void 0)if(X===null)X={start:y,end:y};else if(y===X.end+1)X.end=y;else R.push(X),X={start:y,end:y};else if(X!==null)R.push(X),X=null}}if(X!==null)R.push(X);return R},c=(R,X)=>{let _=[],O=null;for(let C=R;C<=X&&C<B;C++)if(!V(C))if(O===null)O={start:C,end:C};else O.end=C;else if(O!==null)_.push(O),O=null;if(O!==null)_.push(O);return _},g=(R)=>{return Y.has(R)},n=(R)=>{let X=Y.get(R);if(X)X.lastAccess=Date.now()},l=(R,X)=>{if(R>X||Y.size===0)return;let _=Date.now(),O=M(Math.max(0,R)),C=M(Math.min(B-1,X));for(let a=O;a<=C;a++){let i=Y.get(a);if(i)i.lastAccess=_}},$2=(R,X)=>{if(G<=$)return 0;let _=Math.max(0,R-j),O=Math.min(B-1,X+j),C=M(_),a=M(O),i=0,y=[];for(let[W,N]of Y)if(W<C||W>a)i+=N.count,y.push(W),G-=N.count,Y.delete(W);if(i>0&&q)q(i,y);return i},N2=()=>{if(G<=$)return 0;let R=Array.from(Y.entries()).sort(([,O],[,C])=>O.lastAccess-C.lastAccess),X=0,_=[];for(let[O,C]of R){if(G<=$)break;X+=C.count,G-=C.count,_.push(O),Y.delete(O)}if(X>0&&q)q(X,_);return X},I=()=>{return{totalItems:B,cachedItems:G,cachedChunks:Y.size,chunkSize:Q,maxCachedItems:$,memoryEfficiency:B>0?1-G/B:1}},d=()=>G,Y2=()=>{Y.clear(),G=0};return{chunkSize:Q,maxCachedItems:$,getTotal:E,setTotal:L,get:v,has:V,set:D,setRange:K,delete:Z,getRange:F,isRangeLoaded:H,getLoadedRanges:P,findUnloadedRanges:c,getChunkIndex:M,isChunkLoaded:g,touchChunk:n,touchChunksForRange:l,evictDistant:$2,evictToLimit:N2,getStats:I,getCachedCount:d,clear:Y2,reset:()=>{Y2(),B=0}}},P2=(J)=>{if(J.length===0)return[];let Q=[...J].sort((j,q)=>j.start-q.start),$=[{...Q[0]}];for(let j=1;j<Q.length;j++){let q=Q[j],Y=$[$.length-1];if(q.start<=Y.end+1)Y.end=Math.max(Y.end,q.end);else $.push({...q})}return $},b2=(J,Q,$)=>{let j=Math.floor(J.start/$)*$,q=Math.ceil((J.end+1)/$)*$-1,Y={start:j,end:q};if(Q.length===0)return[Y];let B=[],G=P2(Q),b=Y.start;for(let M of G){if(M.end<b)continue;if(M.start>Y.end)break;if(M.start>b)B.push({start:b,end:Math.min(M.start-1,Y.end)});if(b=M.end+1,b>Y.end)break}if(b<=Y.end)B.push({start:b,end:Y.end});return B};var k2=(J={})=>{let{maskCharacter:Q=l2,maxSampleSize:$=a2}=J,j=[],q=!1,Y=(U)=>{if(q||U.length===0)return;let E=Math.min(U.length,$);for(let L=0;L<E;L++){let v=U[L];if(!v||typeof v!=="object")continue;let V={};for(let[D,K]of Object.entries(v)){if(D.startsWith("_")||D==="id")continue;V[D]=String(K??"").length}if(Object.keys(V).length>0)j.push(V)}q=!0},B=()=>q,G=(U)=>{let E={id:`${M2}${U}`,[C2]:!0,_index:U};if(j.length===0)return E.label=Q.repeat(12),E;let L=j[U%j.length];for(let[v,V]of Object.entries(L))E[v]=Q.repeat(Math.max(1,V));return E};return{analyzeStructure:Y,hasAnalyzedStructure:B,generate:G,generateRange:(U,E)=>{let L=[];for(let v=U;v<=E;v++)L.push(G(v));return L},clear:()=>{j=[],q=!1}}},O2=(J)=>{if(!J||typeof J!=="object")return!1;return J[C2]===!0},h2=(J)=>{return J.filter((Q)=>!O2(Q))};var uJ=50,PJ=(J={})=>{let{adapter:Q,initialItems:$,initialTotal:j,storage:q,placeholder:Y,pageSize:B=uJ,onStateChange:G,onItemsLoaded:b,onItemsEvicted:M}=J,U=y2({...q,onEvict:(w,p)=>{M?.(w),l()}}),E=null,L=()=>{if(!E)E=k2(Y);return E},v=new Map,V=!1,D,K=!0,Z,F,H=[],P=0,c=new Map,g=new Map,n=()=>{for(let w of g.values())w.abort();g.clear(),c.clear()},l=()=>{G?.(_())},$2=()=>{v.clear();let w=U.getLoadedRanges();for(let p of w)for(let x=p.start;x<=p.end;x++){let B2=U.get(x);if(B2&&!O2(B2))v.set(B2.id,x)}},N2=(w,p)=>{if(!O2(p))v.set(p.id,w)},I=(w)=>{v.delete(w)},d=(w,p)=>{return`${w}-${p}`},Y2=()=>U.getTotal(),J2=()=>U.getCachedCount(),R=()=>V,X=()=>K,_=()=>({total:U.getTotal(),cached:U.getCachedCount(),isLoading:V,pendingRanges:H,error:D,hasMore:K,cursor:Z}),O=()=>U,C=()=>L(),a=(w)=>{let p=U.get(w);if(p!==void 0)return p;if(w>=0&&w<U.getTotal())return L().generate(w);return},i=(w)=>{let p=v.get(w);if(p===void 0)return;return U.get(p)},y=(w)=>{return v.get(w)??-1},W=(w)=>{let p=U.get(w);return p!==void 0&&!O2(p)},N=(w,p)=>{let x=[],B2=U.getTotal(),Q2=0,q2=0;U.touchChunksForRange(w,Math.min(p,B2-1));for(let Z2=w;Z2<=p&&Z2<B2;Z2++){let _2=U.get(Z2);if(_2!==void 0)x.push(_2),Q2++;else x.push(L().generate(Z2)),q2++}return x},S=(w)=>{U.setTotal(w),K=U.getCachedCount()<w,l()},u=(w,p=0,x)=>{if(Q&&w.length>0){let B2=L();if(!B2.hasAnalyzedStructure())B2.analyzeStructure(w)}for(let B2=0;B2<w.length;B2++){let Q2=w[B2];if(Q2!==void 0){let q2=p+B2;U.set(q2,Q2),N2(q2,Q2)}}if(x!==void 0)U.setTotal(x);else if(p+w.length>U.getTotal())U.setTotal(p+w.length);if(U.getCachedCount()>=U.getTotal()&&U.getTotal()>0)K=!1;l(),b?.(w,p,U.getTotal())},T=(w,p)=>{let x=U.get(w);if(!x)return!1;let B2=x.id,Q2={...x,...p};if(U.set(w,Q2),p.id!==void 0&&p.id!==B2)I(B2);return N2(w,Q2),l(),!0},z=(w)=>{let p=v.get(w);if(p===void 0)return!1;if(!U.delete(p))return!1;return $2(),n(),l(),!0},t=async(w,p)=>{if(!Q)return;let x=d(w,p);if(c.has(x))return;let B2=U.getLoadedRanges(),Q2=b2({start:w,end:p},B2,U.chunkSize);if(Q2.length===0)return;let q2=U.chunkSize,Z2=q2*2;for(let[X2,o]of g){let U2=X2.indexOf("-"),K2=parseInt(X2.slice(0,U2),10);if(Math.abs(K2-w)>Z2)o.abort(),g.delete(X2),c.delete(X2)}let _2=[];for(let X2 of Q2){let o=Math.floor(X2.start/q2),U2=Math.floor(X2.end/q2);for(let K2=o;K2<=U2;K2++){let j2=K2*q2,D2=j2+q2-1,G2=d(j2,D2);if(!_2.some((V2)=>V2.start===j2)&&!c.has(G2))_2.push({start:j2,end:D2})}}let s=[];for(let X2 of Q2){let o=Math.floor(X2.start/q2),U2=Math.floor(X2.end/q2);for(let K2=o;K2<=U2;K2++){let j2=K2*q2,D2=j2+q2-1,G2=d(j2,D2);if(c.has(G2)){let V2=c.get(G2);if(!s.includes(V2))s.push(V2)}}}for(let X2 of _2){let o=d(X2.start,X2.end),U2=new AbortController;g.set(o,U2);let K2=(async()=>{H.push(X2),V=!0,D=void 0,l();try{let j2=X2.end-X2.start+1,D2={offset:X2.start,limit:j2,cursor:X2.start===F?Z:void 0,signal:U2.signal},G2=await Q.read(D2);if(u(G2.items,X2.start,G2.total),G2.cursor)Z=G2.cursor,F=X2.start+G2.items.length;let V2=X2.start+G2.items.length;if(V2>=P){if(P=V2,G2.hasMore!==void 0)K=G2.hasMore;else if(G2.total!==void 0)K=V2<G2.total}}catch(j2){if(j2?.name==="AbortError")return;D=j2 instanceof Error?j2:Error(String(j2))}finally{c.delete(o),g.delete(o),H=H.filter((j2)=>j2.start!==X2.start||j2.end!==X2.end),V=c.size>0,l()}})();c.set(o,K2),s.push(K2)}await Promise.all(s)},A=async(w,p)=>{if(U.isRangeLoaded(w,p))return;await t(w,p)},k=async()=>{if(!Q)return;await t(0,B-1)},f=async()=>{if(!Q||V||!K)return!1;let w=U.getCachedCount(),p=U.getTotal(),x=w,B2=Math.min(x+B-1,p>0?p-1:x+B-1);if(x>=p&&p>0)return K=!1,!1;return await t(x,B2),U.getCachedCount()>w},m=async()=>{if(U.clear(),U.setTotal(0),v.clear(),E)E.clear();n(),H=[],V=!1,Z=void 0,F=void 0,K=!0,P=0,D=void 0,l()},r=(w,p)=>{if(U.evictDistant(w,p)>0)$2()},h=()=>{U.clear(),v.clear(),Z=void 0,F=void 0,D=void 0,H=[],V=!1,l()},e=()=>{if(U.reset(),v.clear(),E)E.clear();Z=void 0,F=void 0,K=!0,P=0,D=void 0,H=[],V=!1,l()};if($&&$.length>0)u($,0,j??$.length);else if(j!==void 0)U.setTotal(j),l();return{getState:_,getTotal:Y2,getCached:J2,getIsLoading:R,getHasMore:X,getStorage:O,getPlaceholders:C,getItem:a,getItemById:i,getIndexById:y,isItemLoaded:W,getItemsInRange:N,setTotal:S,setItems:u,updateItem:T,removeItem:z,loadRange:t,ensureRange:A,loadInitial:k,loadMore:f,reload:m,evictDistant:r,clear:h,reset:e}};var kJ=(J=0)=>{let Q=[,,,,,,,,];for(let $=0;$<8;$++)Q[$]={position:0,time:0};return{velocity:0,lastPosition:J,lastTime:performance.now(),samples:Q,sampleIndex:0,sampleCount:0}},z2=(J,Q)=>{let $=performance.now(),j=$-J.lastTime;if(j===0)return J;if(j>100){J.sampleCount=0,J.sampleIndex=0,J.velocity=0;let Y=J.samples[0];return Y.position=Q,Y.time=$,J.sampleIndex=1,J.sampleCount=1,J.lastPosition=Q,J.lastTime=$,J}let q=J.samples[J.sampleIndex];if(q.position=Q,q.time=$,J.sampleIndex=(J.sampleIndex+1)%8,J.sampleCount=Math.min(J.sampleCount+1,8),J.sampleCount>=2){let Y=(J.sampleIndex-J.sampleCount+8)%8,B=J.samples[Y],G=Q-B.position,b=$-B.time;J.velocity=b>0?G/b:0}return J.lastPosition=Q,J.lastTime=$,J},mJ=(J)=>J.sampleCount>=3,zJ=(J,Q={})=>{let{wheel:$=!0,sensitivity:j=1,smoothing:q=!1,idleTimeout:Y=150,onScroll:B,onIdle:G,scrollElement:b,horizontal:M=!1}=Q,U=!!b,E=0,L=0,v=U?M?window.innerWidth:window.innerHeight:M?J.clientWidth:J.clientHeight,V=Q.compressed??!1,D=Q.compression,K=kJ(),Z=!1,F=null,P=w2(()=>{let T=M?J.scrollLeft:J.scrollTop,z=T>=E?"down":"up";if(K=z2(K,T),E=T,B)B({scrollTop:E,direction:z,velocity:K.velocity});N2()}),g=w2(()=>{let T=J.getBoundingClientRect(),z=M?Math.max(0,-T.left):Math.max(0,-T.top),t=z>=E?"down":"up";if(K=z2(K,z),E=z,!Z)Z=!0;if(B)B({scrollTop:E,direction:t,velocity:K.velocity});N2()}),n=(T)=>{T.preventDefault()},l=(T)=>{if(T.deltaX)return;T.preventDefault(),J.scrollLeft+=T.deltaY},$2=(T)=>{if(!V)return;T.preventDefault();let z=(M?T.deltaX||T.deltaY:T.deltaY)*j,t=E+z;if(q)t=E+z*0.3;if(t=Math.max(0,Math.min(t,L)),t!==E){let k=t>=E?"down":"up";if(K=z2(K,t),E=t,!Z)Z=!0;if(B)B({scrollTop:E,direction:k,velocity:K.velocity});N2()}},N2=()=>{if(F)clearTimeout(F);F=setTimeout(()=>{if(Z=!1,K=kJ(E),G)G()},Y)},I=(T)=>{if(V)return;if(V=!0,D=T,L=T.virtualSize-v,U)return;if(P.cancel(),J.removeEventListener("scroll",P),!$)J.removeEventListener("wheel",n);else if(M)J.removeEventListener("wheel",l);if(M)J.style.overflowX="hidden";else J.style.overflow="hidden";if($)J.addEventListener("wheel",$2,{passive:!1});let z=M?J.scrollLeft:J.scrollTop;if(z>0){let t=M?D?.actualSize??J.scrollWidth:D?.actualSize??J.scrollHeight;E=z/t*L}if(M)J.scrollLeft=0;else J.scrollTop=0},d=()=>{if(!V)return;if(V=!1,U){D=void 0;return}if(J.removeEventListener("wheel",$2),M)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",P,{passive:!0}),!$)J.addEventListener("wheel",n,{passive:!1});else if(M)J.addEventListener("wheel",l,{passive:!1});if(D&&E>0){let z=E/L*(D.actualSize-v);if(M)J.scrollLeft=z;else J.scrollTop=z}D=void 0},Y2=()=>{if(U||V)return E;return M?J.scrollLeft:J.scrollTop},J2=(T,z=!1)=>{let t=Math.max(0,Math.min(T,L||1/0));if(U){let A=J.getBoundingClientRect();if(M){let k=A.left+window.scrollX;window.scrollTo({left:k+t,behavior:z?"smooth":"auto"})}else{let k=A.top+window.scrollY;window.scrollTo({top:k+t,behavior:z?"smooth":"auto"})}}else if(V){if(t===E)return;let k=t>=E?"down":"up";if(K=z2(K,t),E=t,!Z)Z=!0;if(B)B({scrollTop:E,direction:k,velocity:K.velocity});N2()}else if(M)J.scrollTo({left:t,behavior:z?"smooth":"auto"});else J.scrollTo({top:t,behavior:z?"smooth":"auto"})},R=(T)=>{J2(Y2()+T)},X=()=>{return Y2()<=0},_=(T=0)=>{let z=Y2(),t=U||V?L:M?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return z>=t-T},O=()=>{let T=Y2(),z=U||V?L:M?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(z<=0)return 0;return Math.min(1,Math.max(0,T/z))},C=(T)=>{if(T.compression)D=T.compression,L=D.virtualSize-v},a=()=>V,i=()=>Math.abs(K.velocity),y=()=>mJ(K),W=()=>Z,N=()=>U,S=(T)=>{if(v=T,D)L=D.virtualSize-v},u=()=>{if(F)clearTimeout(F);if(U)g.cancel(),window.removeEventListener("scroll",g);else P.cancel(),J.removeEventListener("scroll",P),J.removeEventListener("wheel",$2),J.removeEventListener("wheel",n),J.removeEventListener("wheel",l)};if(U){if(V&&D)L=D.virtualSize-v;window.addEventListener("scroll",g,{passive:!0})}else if(V&&D){if(L=D.virtualSize-v,M)J.style.overflowX="hidden";else J.style.overflow="hidden";if($)J.addEventListener("wheel",$2,{passive:!1})}else{if(M)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",P,{passive:!0}),!$)J.addEventListener("wheel",n,{passive:!1});else if(M)J.addEventListener("wheel",l,{passive:!1})}return{getScrollTop:Y2,scrollTo:J2,scrollBy:R,isAtTop:X,isAtBottom:_,getScrollPercentage:O,getVelocity:i,isTracking:y,isScrolling:W,updateConfig:C,enableCompression:I,disableCompression:d,isCompressed:a,isWindowMode:N,updateContainerHeight:S,destroy:u}},w2=(J)=>{let Q=null,$=null,j=(...q)=>{if($=q,Q===null)Q=requestAnimationFrame(()=>{if(Q=null,$)J(...$)})};return j.cancel=()=>{if(Q!==null)cancelAnimationFrame(Q),Q=null},j};var dJ=(J)=>{if(typeof J!=="object"){let Q=J??2;return{top:Q,right:Q,bottom:Q,left:Q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},wJ=(J,Q,$={},j="vlist",q=!1)=>{let{autoHide:Y=!0,autoHideDelay:B=1000,minThumbSize:G=15,showOnHover:b=!0,showOnViewportEnter:M=!0,clickBehavior:U="page"}=$,E=dJ($.padding),L=q?E.left:E.top,v=q?E.right:E.bottom,V=q?E.bottom:E.right,D=$.hoverZoneWidth??V+16,K=0,Z=0,F=0,H=0,P=!1,c=!1,g=0,n=0,l=0,$2=null,N2=!1,I=null,d=null,Y2=0,J2=0,R=null,X=null,_=null,O=q?"width":"height",C=q?"translateX":"translateY",a=q?(o)=>o.clientX:(o)=>o.clientY,i=q?"left":"top",y=document.createElement("div"),W=document.createElement("div"),N=document.createElement("div"),S=()=>{if(y.className=`${j}-scrollbar`,W.className=`${j}-scrollbar-thumb`,q)y.classList.add(`${j}-scrollbar--horizontal`);if($.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${E.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${E.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${E.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${E.left}px`);if($.minThumbSize!==void 0)y.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${G}px`);if(y.appendChild(W),J.appendChild(y),N.className=`${j}-scrollbar-hover`,q)N.classList.add(`${j}-scrollbar-hover--horizontal`),N.style.height=`${D}px`;else N.style.width=`${D}px`;J.appendChild(N)},u=()=>{if($2)clearTimeout($2),$2=null},T=()=>{if(!Y)return;u(),$2=setTimeout(t,B)},z=()=>{if(K<=Z)return;if(u(),!N2)y.classList.add(`${j}-scrollbar--visible`),N2=!0;if(Y&&!P&&!c)T()},t=()=>{if(P||c)return;y.classList.remove(`${j}-scrollbar--visible`),N2=!1},A=(o,U2)=>{K=o,Z=U2;let K2=K>Z;if(y.style.display=K2?"":"none",!K2){t();return}let j2=Math.max(0,Z-L-v),D2=Z/K;F=Math.max(G,D2*j2),W.style[O]=`${F}px`,H=j2-F,k(l)},k=(o)=>{if(l=o,K<=Z||H<=0)return;let U2=K-Z,j2=Math.min(1,Math.max(0,o/U2))*H;W.style.transform=`${C}(${j2}px)`},f=(o)=>{if(o.target===W||U!=="jump"||H<=0)return;let U2=K-Z,K2=y.getBoundingClientRect(),j2=a(o)-K2[i],D2=Math.max(0,Math.min(j2-F/2,H));Q(D2/H*U2),z()},m=()=>{if(R!==null)clearTimeout(R),R=null;if(X!==null)cancelAnimationFrame(X),X=null;_=null},r=(o)=>{let U2=H>0?J2/o*H:0;if(Y2<U2)return-1;if(Y2>=U2+F)return 1;return 0},h=()=>{let o=K-Z,U2=r(o);if(U2===0){m();return}if(U2===-1){if(J2<=0){m();return}let K2=Math.max(0,J2-Z);J2=K2,Q(K2)}else{if(J2>=o){m();return}let K2=Math.min(o,J2+Z);J2=K2,Q(K2)}z()},e=(o)=>{if(_===null){_=o,X=requestAnimationFrame(e);return}let U2=K-Z,K2=o-_;_=o;let j2=r(U2);if(j2===0){m();return}let D2=12*Z/1000,G2=Math.min(D2*K2,Z);if(j2===-1){if(J2<=0){m();return}let V2=Math.max(0,J2-G2);J2=V2,Q(V2)}else{if(J2>=U2){m();return}let V2=Math.min(U2,J2+G2);J2=V2,Q(V2)}u(),X=requestAnimationFrame(e)},w=()=>{m(),T(),document.removeEventListener("mouseup",w)},p=(o)=>{if(o.target===W||U!=="page")return;o.preventDefault();let U2=y.getBoundingClientRect();Y2=a(o)-U2[i],J2=l,h(),R=setTimeout(()=>{X=requestAnimationFrame(e)},350),document.addEventListener("mouseup",w)},x=(o)=>{o.preventDefault(),o.stopPropagation(),P=!0,g=a(o),n=l,u(),y.classList.add(`${j}-scrollbar--dragging`),document.addEventListener("mousemove",B2),document.addEventListener("mouseup",Q2)},B2=(o)=>{if(!P)return;let U2=a(o)-g,K2=H>0?U2/H:0,j2=K-Z,D2=K2*j2,G2=Math.max(0,Math.min(n+D2,j2)),E2=G2/j2*H;if(W.style.transform=`${C}(${E2}px)`,d=G2,I===null)I=requestAnimationFrame(()=>{if(d!==null)Q(d);I=null})},Q2=()=>{if(P=!1,I!==null)cancelAnimationFrame(I),I=null;if(d!==null)Q(d),d=null;if(y.classList.remove(`${j}-scrollbar--dragging`),Y&&!c)T();document.removeEventListener("mousemove",B2),document.removeEventListener("mouseup",Q2)},q2=()=>{if(M)z()},Z2=()=>{if(!P){if(c=!1,Y)T()}},_2=()=>{c=!0,u(),z()},s=()=>{if(c=!1,!P&&Y)T()},X2=()=>{if(u(),m(),I!==null)cancelAnimationFrame(I),I=null;if(y.removeEventListener("click",f),y.removeEventListener("mousedown",p),y.removeEventListener("mouseenter",_2),document.removeEventListener("mouseup",w),y.removeEventListener("mouseleave",s),W.removeEventListener("mousedown",x),J.removeEventListener("mouseenter",q2),J.removeEventListener("mouseleave",Z2),document.removeEventListener("mousemove",B2),document.removeEventListener("mouseup",Q2),N.removeEventListener("click",f),N.removeEventListener("mousedown",p),b)N.removeEventListener("mouseenter",_2),N.removeEventListener("mouseleave",s);if(N.parentNode)N.parentNode.removeChild(N);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),y.parentNode)y.parentNode.removeChild(y)};if(S(),y.addEventListener("click",f),y.addEventListener("mousedown",p),y.addEventListener("mouseenter",_2),y.addEventListener("mouseleave",s),W.addEventListener("mousedown",x),J.addEventListener("mouseenter",q2),J.addEventListener("mouseleave",Z2),N.addEventListener("click",f),N.addEventListener("mousedown",p),b)N.addEventListener("mouseenter",_2),N.addEventListener("mouseleave",s);return{show:z,hide:t,updateBounds:A,updatePosition:k,isVisible:()=>N2,destroy:X2}};var cJ=50,rJ=0.1;function lJ(J){let Q=0,$=0,j=0;function q(){return j>0?$/j:0}function Y(b){if(Q=b,b>rJ&&b<cJ)$+=b,j++}function B(){let b=J.getTotal();if(b===0)return 0;let M=J.getItemSize();if(M<=0)return 0;let U=J.getContainerSize();if(U<=0)return 0;let E=J.getScrollPosition(),L=typeof J.getColumns==="function"?J.getColumns():1,V=Math.ceil(b/L)*M,K=Math.min(V,W2)-U,Z=V-U,F=K>0?Z/K:1,H=E*F,P=Math.ceil((H+U)/M);return Math.min(P*L,b)}function G(){let b=J.getTotal(),M=B();return{progress:b>0?Math.min(100,Math.max(0,M/b*100)):0,velocity:Q,velocityAvg:q(),itemCount:M,total:b}}return{getState:G,onVelocity:Y}}export{n2 as toggleSelection,VJ as simpleVisibleRange,S2 as selectItems,o2 as selectAll,HJ as rangesEqual,w2 as rafThrottle,qJ as needsScaling,P2 as mergeRanges,t2 as isSelected,O2 as isPlaceholderItem,bJ as isInRange,T2 as isGroupHeader,JJ as getSelectedItems,e2 as getSelectedIds,H2 as getScaleState,KJ as getScaleInfo,H2 as getScale,TJ as getRangeCount,BJ as getMaxItemsWithoutScaling,h2 as filterPlaceholders,RJ as diffRanges,f2 as deselectItems,ZJ as createTableRenderer,UJ as createTableLayout,NJ as createTableHeader,c2 as createStickyHeader,lJ as createStats,y2 as createSparseStorage,L2 as createSizeCache,s2 as createSelectionState,wJ as createScrollbar,zJ as createScrollController,k2 as createPlaceholderManager,DJ as createMeasuredSizeCache,_J as createMasonryRenderer,GJ as createMasonryLayout,m2 as createGroupedSizeFn,d2 as createGroupLayout,XJ as createGridRenderer,r2 as createGridLayout,yJ as createEmitter,PJ as createAsyncManager,i2 as clearSelection,FJ as clampScrollPosition,OJ as calculateTotalSize,LJ as calculateScrollToIndex,QJ as calculateScaledVisibleRange,YJ as calculateScaledScrollToIndex,$J as calculateScaledRenderRange,F2 as calculateScaledItemPosition,WJ as calculateRenderRange,b2 as calculateMissingRanges,AJ as calculateItemOffset,jJ as calculateIndexFromScrollPosition,EJ as calculateActualSize,u2 as buildLayoutItems,W2 as MAX_VIRTUAL_SIZE};
1
+ var T2=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var w2=(J,Q)=>{let $=0,j=J.length-1;while($<j){let q=$+j+1>>>1;if(J[q].headerLayoutIndex<=Q)$=q;else j=q-1}return $},x2=(J,Q)=>{let $=0,j=J.length-1;while($<j){let q=$+j+1>>>1;if(J[q].firstDataIndex<=Q)$=q;else j=q-1}return $},g2=(J,Q)=>{if(J===0)return[];let $=[],j=Q(0),q=0,Y=0;for(let B=1;B<J;B++){let G=Q(B);if(G!==j){let b=B-q;$.push({key:j,groupIndex:$.length,headerLayoutIndex:Y,firstDataIndex:q,count:b}),Y=Y+1+b,j=G,q=B}}return $.push({key:j,groupIndex:$.length,headerLayoutIndex:Y,firstDataIndex:q,count:J-q}),$},u2=(J,Q)=>{if(J.length===0||Q.length===0)return[];let $=J.length+Q.length,j=Array($),q=0;for(let Y of Q){j[q]={id:`__group_header_${Y.groupIndex}`,__groupHeader:!0,groupKey:Y.key,groupIndex:Y.groupIndex},q++;for(let B=0;B<Y.count;B++)j[q]=J[Y.firstDataIndex+B],q++}return j},m2=(J,Q,$=!1)=>{let j=typeof Q==="number"?(q)=>Q:Q;return(q)=>{let Y=J.getEntry(q);if(Y.type==="header"){if($&&Y.group.groupIndex===0)return 0;return J.getHeaderHeight(Y.group.groupIndex)}return j(Y.dataIndex)}},d2=(J,Q)=>{let $=g2(J,Q.getGroupForIndex),j=J+$.length,q=Q.header?.height??Q.header?.width??Q.headerHeight;return{get totalEntries(){return j},get groupCount(){return $.length},get groups(){return $},getEntry:(A)=>{if($.length===0)return{type:"item",dataIndex:A,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let w=w2($,A),W=$[w];if(A===W.headerLayoutIndex)return{type:"header",group:W};let V=A-W.headerLayoutIndex-1;return{type:"item",dataIndex:W.firstDataIndex+V,group:W}},layoutToDataIndex:(A)=>{if($.length===0)return A;let w=w2($,A),W=$[w];if(A===W.headerLayoutIndex)return-1;let V=A-W.headerLayoutIndex-1;return W.firstDataIndex+V},dataToLayoutIndex:(A)=>{if($.length===0)return A;let w=x2($,A),W=$[w],V=A-W.firstDataIndex;return W.headerLayoutIndex+1+V},getGroupAtLayoutIndex:(A)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let w=w2($,A);return $[w]},getGroupAtDataIndex:(A)=>{if($.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let w=x2($,A);return $[w]},getHeaderHeight:typeof q==="number"?(A)=>q:(A)=>{let w=$[A];if(!w)return 0;return q(w.key,A)},rebuild:(A)=>{$=g2(A,Q.getGroupForIndex),j=A+$.length}}};var c2=(J,Q,$,j,q,Y=!1,B=0)=>{let G=Y?"width":"height",b=Y?"height":"width",O=Y?"X":"Y",X=(N,T)=>{N.style[G]=`${T}px`},L=document.createElement("div");L.className=`${q}-sticky-header`,L.setAttribute("role","presentation"),L.setAttribute("aria-hidden","true"),L.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(Y?`top:0;bottom:0;left:${B||0}px`:`top:${B||0}px`);let A=()=>{let N=document.createElement("div");return N.className="sticky-group",N.style.position="absolute",N.style.willChange="transform",N.style[b]="100%",N},w=A(),W=A();L.append(w,W),J.insertBefore(L,J.firstChild);let V=w,K=W,D=Q.groups,E=[],y=[],P=0,m=()=>{D=Q.groups,P=D.length,E=Array(P),y=Array(P);for(let N=0;N<P;N++)E[N]=$.getOffset(D[N].headerLayoutIndex),y[N]=Q.getHeaderHeight(N)};m();let I=-1,n=0,l=-1,Y2=!1,U2=0,x=!1,u=(N,T)=>{j(N,T);let c=y[T];return X(N,c),c},e=(N)=>{N.replaceChildren(),N.style.transform=""},X2=(N)=>{if(N===I)return;if(I=N,n=0,N<0||N>=P){e(V);return}n=u(V,N),X(L,n),V.style.transform=""},H=(N)=>{if(N===U2)return;U2=N;let T=Math.round(N);V.style.transform=`translate${O}(${T}px)`,K.style.transform=`translate${O}(${T+n}px)`},U=()=>{U2=0,V.style.transform="",K.style.transform=""},_=()=>{if(!x)return;let N=V;V=K,K=N,I=l,n=I>=0?y[I]:0,X(L,n),e(K),l=-1,x=!1,U()},M=()=>{if(!x)return;e(K),l=-1,x=!1,U()},C=()=>{if(Y2)return;Y2=!0,L.style.display=""},a=()=>{if(!Y2)return;Y2=!1,L.style.display="none",e(V),I=-1,n=0,M()},i=(N)=>{if(P===0){a();return}if(N<E[0]){a();return}let T=0,c=P-1;while(T<c){let k=T+c+1>>>1;if(E[k]+y[k]<=N)T=k;else c=k-1}if(!Y2)C();X2(T);let R=T+1;if(R<P){let k=E[R]-N;if(k<=0&&k>-n){if(l!==R||!x)l=R,u(K,R),x=!0;H(k)}else if(k<=-n){if(x)_()}else if(x)M()}else if(x)M()},d=()=>{m();let N=I;if(I=-1,n=0,N>=0)X2(N)},Z=()=>{L.remove(),I=-1,n=0,l=-1,Y2=!1,x=!1};return L.style.display="none",{update:i,refresh:d,show:C,hide:a,destroy:Z}};var r2=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),$=J.gap??0,j=J.isHeaderFn,q={row:0,col:0},Y=(W)=>{if(W<=0)return 0;if(!j)return Math.ceil(W/Q);let V=0,K=0,D=0;for(let E=0;E<W;E++)if(j(E)){if(D++,K>0)V++,K=0;V++,K=0}else if(K++,K>=Q)V++,K=0;if(K>0)V++;return V},B=(W)=>{return q.row=G(W),q.col=b(W),q},G=(W)=>{if(!j)return Math.floor(W/Q);let V=0,K=0;for(let D=0;D<=W;D++)if(j(D)){if(K>0)V++,K=0;if(D===W)return V;V++,K=0}else{if(D===W)return V;if(K++,K>=Q)V++,K=0}return console.warn(`⚠️ getRow(${W}) fell through - returning ${V}`),V},b=(W)=>{if(!j)return W%Q;if(j(W))return 0;let V=0;for(let K=0;K<=W;K++)if(j(K))V=0;else{if(K===W)return V;if(V++,V>=Q)V=0}return V},O=(W,V,K)=>{if(K<=0)return{start:0,end:-1};if(!j){let m=Math.max(0,W*Q),I=Math.min(K-1,(V+1)*Q-1);return{start:m,end:I}}let D=-1,E=-1,y=0,P=0;for(let m=0;m<K;m++){if(j(m)){if(P>0)y++,P=0;if(y>=W&&y<=V){if(D===-1)D=m;E=m}y++,P=0}else{if(y>=W&&y<=V){if(D===-1)D=m;E=m}if(P++,P>=Q)y++,P=0}if(y>V&&P===0)break}if(D===-1)return{start:0,end:-1};return{start:D,end:E}},X=(W,V,K)=>{if(V<0||V>=Q)return-1;let D=W*Q+V;if(D<0||D>=K)return-1;return D},L=(W)=>{let V=(Q-1)*$;return Math.max(0,(W-V)/Q)};return{get columns(){return Q},get gap(){return $},update:(W)=>{if(W.columns!==void 0)Q=Math.max(1,Math.floor(W.columns));if(W.gap!==void 0)$=W.gap;if(W.isHeaderFn!==void 0)j=W.isHeaderFn},getTotalRows:Y,getPosition:B,getRow:G,getCol:b,getItemRange:O,getItemIndex:X,getColumnWidth:L,getColumnOffset:(W,V)=>{let K=L(V);return W*(K+$)}}};var M2=16000000;var l2="x",a2=20,C2="_isPlaceholder",O2="__placeholder_";var A2=(J,Q,$)=>{if(String($).startsWith(O2))return!1;let j=O2+Q;if(J.has(j))return J.delete(j),J.add($),!0;return!1},s2=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1}),S2=(J,Q,$)=>{if($==="none")return J;let j=new Set(J.selected);if($==="single"){if(j.clear(),Q.length>0)j.add(Q[0])}else for(let q of Q)j.add(q);return{...J,selected:j}},f2=(J,Q)=>{let $=new Set(J.selected);for(let j of Q)$.delete(j);return{...J,selected:$}},n2=(J,Q,$)=>{if($==="none")return J;if(J.selected.has(Q))return f2(J,[Q]);else return S2(J,[Q],$)},o2=(J,Q,$)=>{if($!=="multiple")return J;return{...J,selected:new Set(Q.map((j)=>j.id))}},i2=(J)=>({...J,selected:new Set});var t2=(J,Q)=>{return J.selected.has(Q)},e2=(J)=>{return Array.from(J.selected)},JJ=(J,Q)=>{let $=[];for(let j of J.selected){let q=Q(j);if(q)$.push(q)}return $};var CJ=(J,Q)=>{let $=Q;return{getOffset:(j)=>j*J,getSize:(j)=>J,indexAtOffset:(j)=>{if($===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(j/J),$-1))},getTotalSize:()=>$*J,getTotal:()=>$,rebuild:(j)=>{$=j},isVariable:()=>!1}},SJ=(J,Q)=>{let $=Q,j=new Float64Array(0),q=(B)=>{$=B,j=new Float64Array(B+1),j[0]=0;for(let G=0;G<B;G++)j[G+1]=j[G]+J(G)};q(Q);let Y=(B)=>{if($===0)return 0;if(B<=0)return 0;if(B>=j[$])return $-1;let G=0,b=$-1;while(G<b){let O=G+b+1>>>1;if(j[O]<=B)G=O;else b=O-1}return G};return{getOffset:(B)=>{if(B<=0)return 0;if(B>=$)return j[$];return j[B]},getSize:(B)=>J(B),indexAtOffset:(B)=>Y(B),getTotalSize:()=>j[$]??0,getTotal:()=>$,rebuild:(B)=>q(B),isVariable:()=>!0}},L2=(J,Q)=>{if(typeof J==="number")return CJ(J,Q);return SJ(J,Q)},I2=(J,Q,$,j)=>{if(j===0)return 0;if(!J.isVariable())return Math.ceil($/J.getSize(0));let q=0,Y=0,B=Q;while(B<j&&Y<$)Y+=J.getSize(B),q++,B++;return Math.max(1,q)};var H2=(J,Q,$)=>{let j=Q.getTotalSize(),q=$===!0||j>M2,Y=j>M2?M2:j,B=j>0?Y/j:1;return{isCompressed:q,actualSize:j,virtualSize:Y,ratio:B}},QJ=(J,Q,$,j,q,Y)=>{if(j===0||Q===0)return Y.start=0,Y.end=-1,Y;if(!q.isCompressed||q.ratio===1){let A=$.indexAtOffset(J),w=$.indexAtOffset(J+Q);if(w<j-1)w++;return Y.start=Math.max(0,A),Y.end=Math.min(j-1,Math.max(0,w)),Y}let{virtualSize:B}=q,b=J/B*j,O=Math.floor(b),X=I2($,Math.max(0,O),Q,j),L=Math.ceil(b)+X;return Y.start=Math.max(0,O),Y.end=Math.min(j-1,Math.max(0,L)),Y},$J=(J,Q,$,j)=>{if($===0)return j.start=0,j.end=-1,j;return j.start=Math.max(0,J.start-Q),j.end=Math.min($-1,J.end+Q),j},F2=(J,Q,$,j,q,Y,B)=>{if(!Y.isCompressed||j===0)return $.getOffset(J);if(Y.ratio===1)return $.getOffset(J)-Q;let{virtualSize:G}=Y,b=Q/G,O=$.getTotalSize(),X=b*O;return $.getOffset(J)-X},YJ=(J,Q,$,j,q,Y="start")=>{if(j===0)return 0;let B;if(q.isCompressed&&q.ratio!==1){B=J/j*q.virtualSize;let X=Q.getSize(J);switch(Y){case"center":B-=($-X)/2*q.ratio;break;case"end":B-=($-X)*q.ratio;break}return Math.max(0,B)}B=Q.getOffset(J);let G=Q.getSize(J);switch(Y){case"center":B-=($-G)/2;break;case"end":B-=$-G;break}let b=q.virtualSize-$;return Math.max(0,Math.min(B,b))},jJ=(J,Q,$,j)=>{if($===0)return 0;if(j.isCompressed&&j.ratio!==1){let q=J/j.virtualSize;return Math.floor(q*$)}return Q.indexAtOffset(J)},qJ=(J,Q)=>{if(typeof Q==="number")return J*Q>M2;return Q.getTotalSize()>M2},BJ=(J)=>{if(J<=0)return 0;return Math.floor(M2/J)},KJ=(J,Q,$)=>{let j=H2(J,Q,$);if(!j.isCompressed)return`No compression needed (${J} items, ${(j.actualSize/1e6).toFixed(2)}M px)`;return`Compressed to ${(j.ratio*100).toFixed(1)}% (${J} items, ${(j.actualSize/1e6).toFixed(1)}M px → ${(j.virtualSize/1e6).toFixed(1)}M px virtual)`};var R2=(J,Q,$)=>{let j=Array.from(Q).sort((B,G)=>B-G);if(j.length<=1)return;let q=[];for(let B=0;B<j.length;B++){let G=$(j[B]);if(G)q.push(G)}if(q.length<=1)return;let Y=J.firstChild;for(let B=0;B<q.length;B++){let G=q[B];if(G===Y)Y=Y.nextSibling;else J.insertBefore(G,Y)}};var fJ=(J=200)=>{let Q=[];return{acquire:()=>{let Y=Q.pop();if(Y)return Y;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(Y)=>{if(Y.remove(),Q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-row"),Y.removeAttribute("data-col"),Q.push(Y)},clear:()=>{Q.length=0}}},IJ=1,XJ=(J,Q,$,j,q,Y,B,G,b=!1)=>{let O=fJ(),X=new Map,L=Y,A=!1,w=0,W="",V=-1,K={selected:!1,focused:!1},D=(Z,N)=>{return K.selected=Z,K.focused=N,K},E=`${q}-item ${q}-grid-item`,y=`${q}-item--selected`,P=`${q}-item--focused`,m=`${q}-item--placeholder`,I=`${q}-item--replaced`,n=(Z,N)=>{if(typeof N==="string")Z.innerHTML=N;else Z.replaceChildren(N)},l=(Z,N,T)=>{Z.classList.toggle(y,N),Z.classList.toggle(P,T)},Y2=(Z,N)=>{let T=j.getRow(Z);if(N?.compression?.isCompressed)return F2(T,N.scrollPosition,$,N.totalItems,N.containerSize,N.compression,N.rangeStart);return $.getOffset(T)},U2=(Z,N)=>{let T=A&&j.getCol(Z)===0,c=T?0:j.getCol(Z),R=T?0:j.getColumnOffset(c,L),k;if(A){let o=j.getRow(Z),F=0,z=new Set;for(let S=0;S<Z;S++){let r=j.getRow(S);if(r<o&&!z.has(r)){let g=$.getSize(S);F+=g,z.add(r)}}k=F}else k=Y2(Z,N);if(b)return`translate(${Math.round(k)}px, ${Math.round(R)}px)`;return`translate(${Math.round(R)}px, ${Math.round(k)}px)`},x=(Z,N)=>{Z.style.transform=N},u=(Z,N)=>{let T=Z.dataset.id?.startsWith("__group_header"),c=T?L:j.getColumnWidth(L),R;if(A||T)R=$.getSize(N)-j.gap;else{let k=j.getRow(N);R=$.getSize(k)-j.gap}if(b)Z.style.width=`${R}px`,Z.style.height=`${c}px`;else Z.style.width=`${c}px`,Z.style.height=`${R}px`},e=(Z,N,T,c,R)=>{let k=O.acquire(),o=D(T,c);if(k.className=E,k.dataset.index=String(Z),k.dataset.id=String(N.id),k.dataset.row=String(j.getRow(Z)),k.dataset.col=String(j.getCol(Z)),k.ariaSelected=String(T),G)k.id=`${G}-item-${Z}`;if(B){let S=B();if(S!==V)V=S,W=String(S);k.setAttribute("aria-setsize",W),k.setAttribute("aria-posinset",String(Z+1))}u(k,Z);let F=Q(N,Z,o);if(n(k,F),String(N.id).startsWith(O2))k.classList.add(m);return l(k,T,c),x(k,R),{element:k,lastItemId:N.id,lastSelected:T,lastFocused:c,lastTransform:R,lastSeenFrame:w}},X2=(Z,N,T,c,R)=>{if(w++,N.start===0&&Z.length>0)A=T2(Z[0]);for(let[F,z]of X)if(F>=N.start&&F<=N.end)z.lastSeenFrame=w;else if(w-z.lastSeenFrame>IJ)O.release(z.element),X.delete(F);let k=!1;if(B){let F=B();if(F!==V)V=F,W=String(F),k=!0}let o=null;for(let F=N.start;F<=N.end;F++){let z=F-N.start,S=Z[z];if(!S){console.warn(`⚠️ RENDER: Missing item at index ${F} (range: ${N.start}-${N.end}, items.length: ${Z.length})`);continue}let r=T.has(S.id),g=F===c,h=X.get(F);if(h){let J2=h.lastItemId!==S.id,v=h.lastSelected!==r,f=h.lastFocused!==g;if(J2){let K2=String(h.lastItemId),Q2=String(S.id),j2=K2.startsWith(O2),N2=Q2.startsWith(O2);if(!N2&&A2(T,F,S.id))r=!0;let _2=D(r,g),s=Q(S,F,_2);if(n(h.element,s),h.element.dataset.id=Q2,h.element.dataset.row=String(j.getRow(F)),h.element.dataset.col=String(j.getCol(F)),u(h.element,F),h.element.classList.toggle(m,N2),j2&&!N2)h.element.classList.add(I),setTimeout(()=>h.element.classList.remove(I),300);h.lastItemId=S.id}if(J2||v||f)l(h.element,r,g),h.element.ariaSelected=String(r),h.lastSelected=r,h.lastFocused=g;let p=U2(F,R);if(h.lastTransform!==p)x(h.element,p),h.lastTransform=p;if(k)h.element.setAttribute("aria-setsize",W)}else{if(A2(T,F,S.id))r=!0;let J2=U2(F,R),v=e(F,S,r,g,J2);if(!o)o=document.createDocumentFragment();o.appendChild(v.element),X.set(F,v)}}if(o)J.appendChild(o)},H=(Z)=>{for(let[N,T]of X){let c=U2(N,Z);if(T.lastTransform!==c)x(T.element,c),T.lastTransform=c}},U=(Z,N,T,c)=>{let R=X.get(Z);if(!R)return;let k=D(T,c),o=Q(N,Z,k);n(R.element,o),l(R.element,T,c),R.element.dataset.id=String(N.id),R.element.ariaSelected=String(T),u(R.element,Z),R.lastItemId=N.id,R.lastSelected=T,R.lastFocused=c},_=(Z,N,T)=>{let c=X.get(Z);if(!c)return;let R=c.lastSelected!==N,k=c.lastFocused!==T;if(R||k)l(c.element,N,T),c.lastSelected=N,c.lastFocused=T},M=(Z)=>{return X.get(Z)?.element},C=(Z)=>{if(Math.abs(Z-L)<1)return;L=Z;for(let[N,T]of X){u(T.element,N);let c=U2(N);x(T.element,c),T.lastTransform=c}},a=()=>{R2(J,X.keys(),(Z)=>X.get(Z)?.element)},i=()=>{for(let[,Z]of X)O.release(Z.element);X.clear()};return{render:X2,updatePositions:H,updateItem:U,updateItemClasses:_,getElement:M,sortDOM:a,updateContainerWidth:C,clear:i,destroy:()=>{i(),O.clear()}}};var UJ=(J,Q=50,$=1/0,j=!0)=>{let q=J,Y=[],B=0,G=()=>{Y=q.map((K,D)=>({def:K,index:D,width:0,minWidth:pJ(K.minWidth??Q,1),maxWidth:K.maxWidth??$,resizable:K.resizable??j,offset:0}))},b=(K)=>{if(Y.length===0){B=0;return}let D=0,E=0;for(let y=0;y<Y.length;y++){let P=Y[y],m=P.def;if(m.width!==void 0)P.width=p2(m.width,P.minWidth,P.maxWidth),D+=P.width;else E++}if(E>0){let P=Math.max(0,K-D)/E;for(let m=0;m<Y.length;m++){let I=Y[m];if(I.def.width===void 0)I.width=p2(P,I.minWidth,I.maxWidth)}}O()},O=()=>{let K=0;for(let D=0;D<Y.length;D++){let E=Y[D];E.offset=K,K+=E.width}B=K},X=(K,D)=>{if(K<0||K>=Y.length)return 0;let E=Y[K];if(!E.resizable)return E.width;let y=p2(D,E.minWidth,E.maxWidth);return E.width=y,O(),y},L=(K)=>{return Y[K]},A=(K)=>{if(Y.length===0)return;if(K<0)return Y[0];if(K>=B)return Y[Y.length-1];let D=0,E=Y.length-1;while(D<E){let y=D+E>>>1,P=Y[y];if(K<P.offset)E=y-1;else if(K>=P.offset+P.width)D=y+1;else return P}return Y[D]},w=(K)=>{if(K<0||K>=Y.length)return 0;return Y[K].offset},W=(K)=>{if(K<0||K>=Y.length)return 0;return Y[K].width},V=(K)=>{q=K,G()};return G(),{get columns(){return Y},get totalWidth(){return B},resolve:b,updateColumns:V,resizeColumn:X,getColumn:L,getColumnAtX:A,getColumnOffset:w,getColumnWidth:W}},p2=(J,Q,$)=>Math.min($,Math.max(Q,J)),pJ=(J,Q)=>Math.max(Q,J);var NJ=(J,Q,$,j,q,Y)=>{let B=document.createElement("div");B.setAttribute("role","rowgroup");let G=document.createElement("div");G.className=`${$}-table-header`,G.setAttribute("role","row"),G.setAttribute("aria-rowindex","1"),G.style.height=`${Q}px`;let b=document.createElement("div");b.className=`${$}-table-header-scroll`,b.setAttribute("role","presentation"),G.appendChild(b),B.appendChild(G),J.insertBefore(B,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${Q}px`);let O=[],X=[],L=[],A=!0,w=null,W="asc",V=null,K=!1,D=-1,E=0,y=0,P=(U,_)=>{let M=document.createElement("div");M.className=`${$}-table-header-cell`,M.setAttribute("role","columnheader"),M.setAttribute("aria-colindex",String(_+1)),M.dataset.columnKey=U.def.key;let C=U.def.align;if(C==="center")M.classList.add(`${$}-table-header-cell--center`);else if(C==="right")M.classList.add(`${$}-table-header-cell--right`);let a=document.createElement("div");a.className=`${$}-table-header-content`;let i=U.def.header?U.def.header(U.def):U.def.label;if(typeof i==="string")a.textContent=i;else a.appendChild(i);if(M.appendChild(a),U.def.sortable){let d=document.createElement("span");d.className=`${$}-table-header-sort`,d.setAttribute("aria-hidden","true"),M.appendChild(d),L.push(d),M.classList.add(`${$}-table-header-cell--sortable`)}else L.push(null);if(U.resizable){let d=document.createElement("div");d.className=`${$}-table-header-resize`,d.dataset.resizeIndex=String(_),M.appendChild(d),X.push(d)}return M},m=(U)=>{V=U,b.textContent="",O=[],X=[],L=[];let _=U.columns;for(let M=0;M<_.length;M++){let C=_[M],a=P(C,M);O.push(a),b.appendChild(a)}if(I(U),w)n(w,W)},I=(U)=>{V=U;let _=U.columns;b.style.width=`${U.totalWidth}px`;for(let M=0;M<O.length&&M<_.length;M++){let C=O[M],a=_[M];C.style.width=`${a.width}px`}},n=(U,_)=>{if(w=U,W=_,!V)return;let M=V.columns;for(let C=0;C<L.length&&C<M.length;C++){let a=L[C];if(!a)continue;if(M[C].def.key===U&&U!==null)a.textContent=_==="asc"?"▲":"▼",a.style.opacity="0.7",O[C].setAttribute("aria-sort",_==="asc"?"ascending":"descending");else a.textContent="",a.style.opacity="0",O[C].removeAttribute("aria-sort")}},l=(U)=>{b.style.transform=`translateX(${-U}px)`},Y2=(U)=>{let _=U.target;if(!_.dataset.resizeIndex)return;if(U.preventDefault(),U.stopPropagation(),D=parseInt(_.dataset.resizeIndex,10),!V)return;let M=V.getColumn(D);if(!M||!M.resizable)return;K=!0,E=U.clientX,y=M.width,J.classList.add(`${$}--col-resizing`),J.style.cursor="col-resize",_.classList.add(`${$}-table-header-resize--active`),_.setPointerCapture(U.pointerId),_.addEventListener("pointermove",U2),_.addEventListener("pointerup",x),_.addEventListener("pointercancel",x)},U2=(U)=>{if(!K||!V)return;let _=U.clientX-E;if(Math.abs(_)<1)return;let M=Math.max(0,y+_);j(D,M)},x=(U)=>{if(!K)return;let _=U.target;_.removeEventListener("pointermove",U2),_.removeEventListener("pointerup",x),_.removeEventListener("pointercancel",x);try{_.releasePointerCapture(U.pointerId)}catch{}_.classList.remove(`${$}-table-header-resize--active`),J.classList.remove(`${$}--col-resizing`),J.style.cursor="",K=!1,D=-1},u=(U)=>{let _=U.target;if(_.dataset.resizeIndex!==void 0)return;if(K)return;let M=_;while(M&&!M.dataset.columnKey)if(M=M.parentElement,M===G||M===null)return;if(!M||!M.dataset.columnKey)return;let C=M.dataset.columnKey;if(!V)return;let a=V.columns,i=-1;for(let Z=0;Z<a.length;Z++)if(a[Z].def.key===C){i=Z;break}if(i===-1)return;let d=a[i];if(Y)Y({key:C,index:i,event:U});if(d.def.sortable&&q){let Z;if(w===C)if(W==="asc")Z="desc";else Z=null;else Z="asc";q({key:C,index:i,direction:Z})}};return G.addEventListener("pointerdown",Y2),G.addEventListener("click",u),{element:G,update:I,updateSort:n,rebuild:m,show:()=>{if(A)return;A=!0,G.style.display=""},hide:()=>{if(!A)return;A=!1,G.style.display="none"},destroy:()=>{G.removeEventListener("pointerdown",Y2),G.removeEventListener("click",u),J.style.removeProperty("--vlist-table-header-height"),B.remove(),O=[],X=[],L=[],V=null,A=!1},syncScroll:l}};var hJ=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(Q)=>{if(Q.parentNode?.removeChild(Q),J.length<200)Q.className="",Q.removeAttribute("data-id"),Q.removeAttribute("data-index"),Q.removeAttribute("aria-selected"),Q.removeAttribute("aria-rowindex"),Q.removeAttribute("role"),Q.style.cssText="",Q.textContent="",J.push(Q)},clear:()=>{J.length=0}}},ZJ=(J,Q,$,j,q,Y,B,G,b)=>{let O=hJ(),X=new Map,L=-1,A=$,w=null,W=null,V=null,K=(F,z)=>{W=F,V=z},D=(F,z)=>{if(z)F.setAttribute("aria-selected","true");else F.removeAttribute("aria-selected")},E=(F,z,S,r)=>{F.setAttribute("role",z),F.setAttribute("data-id",String(S)),F.setAttribute("data-index",String(r))},y=(F)=>String(F).startsWith("__placeholder_"),P=`${q}-item ${q}-table-row`,m=`${q}-item--selected`,I=`${q}-item--focused`,n=`${q}-table-cell`,l=`${q}-table-cell--center`,Y2=`${q}-table-cell--right`,U2=`${q}-item--odd`,x=`${q}-item--placeholder`,u=`${q}-item--replaced`,e=`${q}-item ${q}-table-row ${q}-table-group-header`,X2=`${q}-table-group-header-content`,H=(F,z,S,r,g=!1)=>{if(S.def.cell){let h=S.def.cell(z,S.def,r);if(typeof h==="string")F.innerHTML=h;else F.replaceChildren(h)}else{let h=z[S.def.key],J2=h!=null?String(h):"";if(g&&J2)F.innerHTML=`<span>${J2}</span>`;else F.textContent=J2}},U=(F,z,S,r,g=!1)=>{let h=P;if(G){if(w){let J2=w(z);if(J2>=0&&(J2&1)===1)h+=` ${U2}`}else if((z&1)===1)h+=` ${U2}`}if(g)h+=` ${x}`;if(S)h+=` ${m}`;if(r)h+=` ${I}`;F.className=h},_=(F,z,S)=>{if(S?.compression?.isCompressed)return Math.round(F2(F,S.scrollPosition,z,S.totalItems,S.containerSize,S.compression,S.rangeStart));return z.getOffset(F)},M=(F,z)=>{let S=z.def.align;if(S==="center")F.classList.add(l),F.classList.remove(Y2);else if(S==="right")F.classList.add(Y2),F.classList.remove(l);else F.classList.remove(l,Y2)},C=(F,z)=>{let r=A.columns.length;if(z.length===r)return z;let g=[];for(let h=0;h<r;h++){let J2;if(h<z.length)J2=z[h];else J2=document.createElement("div"),J2.className=n,F.appendChild(J2);g.push(J2)}for(let h=r;h<z.length;h++)z[h].remove();return g},a=(F,z,S,r)=>{let g=O.acquire(),h=F,J2=S.getSize(z),v=_(z,S,r);g.style.cssText=`width:${A.totalWidth}px;height:${J2}px;transform:translateY(${v}px)`,g.className=e,E(g,"presentation",F.id,z),g.removeAttribute("aria-selected"),g.removeAttribute("aria-rowindex"),g.replaceChildren();let f=document.createElement("div");if(f.className=X2,V){let p=V(h.groupKey,h.groupIndex);if(typeof p==="string")f.innerHTML=p;else f.appendChild(p)}return g.appendChild(f),{element:g,cells:[],index:z,isGroupHeader:!0,lastItemId:F.id,lastSelected:!1,lastFocused:!1,lastOffset:v,lastHeight:J2}},i=(F,z,S,r,g,h)=>{let J2=O.acquire(),v=g.getSize(z),f=_(z,g,h),p=y(F.id);J2.style.cssText=`width:${A.totalWidth}px;height:${v}px;transform:translateY(${f}px)`,U(J2,z,S,r,p),E(J2,"row",F.id,z),J2.id=`${Y}-${z}`,J2.setAttribute("aria-rowindex",String(z+2)),D(J2,S);let K2=C(J2,[]),Q2=A.columns;for(let j2=0;j2<K2.length&&j2<Q2.length;j2++){let N2=K2[j2],_2=Q2[j2];N2.style.cssText=`left:${_2.offset}px;width:${_2.width}px`,N2.setAttribute("role","gridcell"),N2.setAttribute("aria-colindex",String(j2+1)),M(N2,_2),H(N2,F,_2,z,p)}return{element:J2,cells:K2,index:z,isGroupHeader:!1,lastItemId:F.id,lastSelected:S,lastFocused:r,lastOffset:f,lastHeight:v}},d=(F,z,S,r,g)=>{for(let[p,K2]of X)if(p<z.start||p>z.end)O.release(K2.element),X.delete(p);let h=!1,J2=B();if(J2!==L)L=J2,h=!0;let v=null,f=Q();w=typeof G==="string"&&b?b():null;for(let p=z.start;p<=z.end;p++){let K2=p-z.start,Q2=F[K2];if(!Q2)continue;let j2=S.has(Q2.id),N2=p===r,_2=W?W(Q2):!1,s=X.get(p);if(s){if(s.isGroupHeader!==_2){O.release(s.element),X.delete(p);let B2=_2?a(Q2,p,f,g):i(Q2,p,j2,N2,f,g);if(X.set(p,B2),!v)v=document.createDocumentFragment();v.appendChild(B2.element);continue}if(_2){if(s.lastItemId!==Q2.id){let q2=Q2,$2=s.element.firstElementChild;if($2&&V){let G2=V(q2.groupKey,q2.groupIndex);if(typeof G2==="string")$2.innerHTML=G2;else $2.replaceChildren(G2)}s.element.setAttribute("data-id",String(Q2.id)),s.lastItemId=Q2.id}let D2=_(p,f,g);if(s.lastOffset!==D2)s.lastOffset=D2,s.element.style.transform=`translateY(${D2}px)`;let t=f.getSize(p);if(s.lastHeight!==t)s.lastHeight=t,s.element.style.height=`${t}px`}else{let B2=s.lastItemId!==Q2.id,D2=s.lastSelected!==j2,t=s.lastFocused!==N2;if(B2){let G2=s.lastItemId!=null&&y(s.lastItemId),Z2=y(Q2.id);if(!Z2&&A2(S,p,Q2.id))j2=!0;let V2=A.columns;for(let W2=0;W2<s.cells.length&&W2<V2.length;W2++)H(s.cells[W2],Q2,V2[W2],p,Z2);if(U(s.element,p,j2,N2,Z2),s.element.setAttribute("data-id",String(Q2.id)),D(s.element,j2),G2&&!Z2)s.element.classList.add(u),setTimeout(()=>{s.element.classList.remove(u)},300);s.lastItemId=Q2.id,s.lastSelected=j2,s.lastFocused=N2}else if(D2||t)U(s.element,p,j2,N2,y(Q2.id)),D(s.element,j2),s.lastSelected=j2,s.lastFocused=N2;let q2=_(p,f,g);if(s.lastOffset!==q2)s.lastOffset=q2,s.element.style.transform=`translateY(${q2}px)`;let $2=f.getSize(p);if(s.lastHeight!==$2)s.lastHeight=$2,s.element.style.height=`${$2}px`;if(h)s.element.setAttribute("aria-rowindex",String(p+2))}}else{if(A2(S,p,Q2.id))j2=!0;let B2=_2?a(Q2,p,f,g):i(Q2,p,j2,N2,f,g);if(X.set(p,B2),!v)v=document.createDocumentFragment();v.appendChild(B2.element)}}if(v)J.appendChild(v)},Z=(F)=>{let z=Q();for(let[S,r]of X){let g=_(S,z,F);if(r.lastOffset!==g)r.lastOffset=g,r.element.style.transform=`translateY(${g}px)`}},N=(F,z,S,r)=>{let g=X.get(F);if(!g)return;if(g.isGroupHeader)return;let h=A.columns;for(let J2=0;J2<g.cells.length&&J2<h.length;J2++)H(g.cells[J2],z,h[J2],F);g.element.setAttribute("data-id",String(z.id)),g.lastItemId=z.id,U(g.element,F,S,r),D(g.element,S),g.lastSelected=S,g.lastFocused=r},T=(F,z,S)=>{let r=X.get(F);if(!r)return;if(r.isGroupHeader)return;let g=r.lastSelected!==z,h=r.lastFocused!==S;if(g||h)U(r.element,F,z,S),D(r.element,z),r.lastSelected=z,r.lastFocused=S},c=(F)=>{A=F;let z=F.columns;for(let[,S]of X)if(S.element.style.width=`${F.totalWidth}px`,S.cells.length>0)for(let r=0;r<S.cells.length&&r<z.length;r++){let g=S.cells[r],h=z[r];g.style.left=`${h.offset}px`,g.style.width=`${h.width}px`}},R=(F)=>{return X.get(F)?.element},k=()=>{for(let[,F]of X)O.release(F.element);X.clear(),L=-1};return{render:d,updatePositions:Z,updateItem:N,updateItemClasses:T,getElement:R,updateColumnLayout:c,setGroupHeaderFn:K,clear:k,destroy:()=>{k(),O.clear()}}};var GJ=(J)=>{let Q=Math.max(1,Math.floor(J.columns)),$=J.gap??0,j=J.containerSize,q=0,Y=[],B=()=>{let K=(Q-1)*$;q=Math.max(0,(j-K)/Q),Y=Array(Q);let D=q+$;for(let E=0;E<Q;E++)Y[E]=E*D};B();let G=[],b=0,O=[],X=(K)=>{let D=0,E=K[0];for(let y=1;y<K.length;y++){let P=K[y];if(P<E)E=P,D=y}return D},L=(K,D)=>{if(K<=0)return b=0,G=[],[];let E=Array(Q).fill(0),y=Array(Q);for(let I=0;I<Q;I++)y[I]=[];let P=Array(K);for(let I=0;I<K;I++){let n=X(E),l=D(I),Y2=E[n];P[I]={index:I,x:Y[n],y:Y2,lane:n,size:l,crossSize:q},y[n].push(I),E[n]=Y2+l+$}G=y;let m=0;for(let I=0;I<Q;I++){let n=E[I],l=n>0?n-$:0;if(l>m)m=l}return b=m,P},A=(K)=>{if(K.length===0)return b>0?b:0;if(b>0)return b;let D=Array(Q).fill(0);for(let y of K){let P=y.y+y.size,m=D[y.lane];if(P>m)D[y.lane]=P}let E=0;for(let y=0;y<Q;y++)if(D[y]>E)E=D[y];return E},w=(K,D,E)=>{if(K.length===0||E<=D)return O.length=0,O;if(G.length===0||G.length!==Q)return W(K,D,E);O.length=0;for(let y=0;y<Q;y++){let P=G[y],m=P.length;if(m===0)continue;let I=0,n=m;while(I<n){let l=I+n>>>1,Y2=K[P[l]];if(Y2.y+Y2.size<=D)I=l+1;else n=l}for(let l=I;l<m;l++){let Y2=K[P[l]];if(Y2.y>=E)break;O.push(Y2)}}return O},W=(K,D,E)=>{let y=[];for(let P of K)if(P.y+P.size>D&&P.y<E)y.push(P);return y};return{get columns(){return Q},get gap(){return $},get containerSize(){return j},update:(K)=>{let D=!1;if(K.columns!==void 0){let E=Math.max(1,Math.floor(K.columns));if(E!==Q)Q=E,D=!0}if(K.gap!==void 0&&K.gap!==$)$=K.gap,D=!0;if(K.containerSize!==void 0&&K.containerSize!==j)j=K.containerSize,D=!0;if(D)B()},calculateLayout:L,getTotalSize:A,getVisibleItems:w}};var xJ=(J=200)=>{let Q=[];return{acquire:()=>{let Y=Q.pop();if(Y)return Y;let B=document.createElement("div");return B.setAttribute("role","option"),B},release:(Y)=>{if(Y.remove(),Q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),Y.removeAttribute("data-lane"),Q.push(Y)},clear:()=>{Q.length=0}}},gJ=1,_J=(J,Q,$,j=!1,q,Y)=>{let B=xJ(),G=new Map,b=new Set,O=0,X="",L=-1,A={selected:!1,focused:!1},w=(x,u)=>{return A.selected=x,A.focused=u,A},W=`${$}-item ${$}-masonry-item`,V=`${$}-item--selected`,K=`${$}-item--focused`,D=(x,u)=>{if(typeof u==="string")x.innerHTML=u;else x.replaceChildren(u)},E=(x,u,e)=>{x.classList.toggle(V,u),x.classList.toggle(K,e)},y=(x,u)=>{if(j)x.style.transform=`translate(${Math.round(u.y)}px, ${Math.round(u.x)}px)`;else x.style.transform=`translate(${Math.round(u.x)}px, ${Math.round(u.y)}px)`},P=(x,u)=>{if(j)x.style.width=`${u.size}px`,x.style.height=`${u.crossSize}px`;else x.style.width=`${u.crossSize}px`,x.style.height=`${u.size}px`},m=(x,u,e,X2,H)=>{let U=B.acquire(),_=w(X2,H);if(U.className=W,U.dataset.index=String(x),U.dataset.id=String(u.id),U.dataset.lane=String(e.lane),U.ariaSelected=String(X2),Y)U.id=`${Y}-item-${x}`;if(q){let C=q();if(C!==L)L=C,X=String(C);U.setAttribute("aria-setsize",X),U.setAttribute("aria-posinset",String(x+1))}P(U,e);let M=Q(u,x,_);return D(U,M),E(U,X2,H),y(U,e),{element:U,lastItemId:u.id,lastSelected:X2,lastFocused:H,lastY:e.y,lastX:e.x,lastSize:e.size,lastCrossSize:e.crossSize,lastSeenFrame:O}},I=(x,u,e,X2)=>{O++,b.clear();for(let U=0;U<u.length;U++)b.add(u[U].index);for(let[U,_]of G)if(b.has(U))_.lastSeenFrame=O;else if(O-_.lastSeenFrame>gJ)B.release(_.element),G.delete(U);let H=null;for(let U=0;U<u.length;U++){let _=u[U],M=_.index,C=x(M);if(!C)continue;let a=e.has(C.id),i=M===X2,d=G.get(M);if(d){let Z=d.lastItemId!==C.id,N=d.lastSelected!==a,T=d.lastFocused!==i,c=d.lastY!==_.y||d.lastX!==_.x,R=d.lastSize!==_.size||d.lastCrossSize!==_.crossSize;if(Z){let k=w(a,i),o=Q(C,M,k);D(d.element,o),d.element.dataset.id=String(C.id),d.lastItemId=C.id}if(Z||N||T)E(d.element,a,i),d.element.ariaSelected=String(a),d.lastSelected=a,d.lastFocused=i;if(R)P(d.element,_),d.lastSize=_.size,d.lastCrossSize=_.crossSize;if(c)y(d.element,_),d.lastY=_.y,d.lastX=_.x}else{let Z=m(M,C,_,a,i);if(!H)H=document.createDocumentFragment();H.appendChild(Z.element),G.set(M,Z)}}if(H)J.appendChild(H)},n=()=>{for(let{element:x}of G.values())B.release(x);G.clear(),J.innerHTML=""};return{render:I,getElement:(x)=>G.get(x)?.element,updateItemClasses:(x,u,e)=>{let X2=G.get(x);if(!X2)return;let H=X2.lastSelected!==u,U=X2.lastFocused!==e;if(H||U)E(X2.element,u,e),X2.lastSelected=u,X2.lastFocused=e},sortDOM:()=>{R2(J,G.keys(),(x)=>G.get(x)?.element)},clear:n,destroy:()=>{n(),B.clear()}}};var DJ=(J,Q)=>{let $=new Map,j=(Y)=>{let B=$.get(Y);return B!==void 0?B:J},q=L2(j,Q);return{getOffset(Y){return q.getOffset(Y)},getSize(Y){return j(Y)},indexAtOffset(Y){return q.indexAtOffset(Y)},getTotalSize(){return q.getTotalSize()},getTotal(){return q.getTotal()},rebuild(Y){if(Y<q.getTotal()){for(let B of $.keys())if(B>=Y)$.delete(B)}q=L2(j,Y)},isVariable(){return!0},setMeasuredSize(Y,B){$.set(Y,B)},isMeasured(Y){return $.has(Y)},getEstimatedSize(){return J},measuredCount(){return $.size}}};var VJ=(J,Q,$,j,q,Y)=>{if(j===0||Q===0)return Y.start=0,Y.end=-1,Y;let B=$.indexAtOffset(J),G=$.indexAtOffset(J+Q);if(G<j-1)G++;return Y.start=Math.max(0,B),Y.end=Math.min(j-1,Math.max(0,G)),Y},WJ=(J,Q,$,j)=>{if($===0)return j.start=0,j.end=-1,j;return j.start=Math.max(0,J.start-Q),j.end=Math.min($-1,J.end+Q),j},MJ=(J,Q,$,j,q,Y)=>{if(j===0)return 0;let B=Math.max(0,Math.min(J,j-1)),G=Q.getOffset(B),b=Q.getSize(B),O=Q.getTotalSize(),X=Math.max(0,O-$),L;switch(Y){case"center":L=G-$/2+b/2;break;case"end":L=G-$+b;break;case"start":default:L=G;break}return Math.max(0,Math.min(L,X))},OJ=(J,Q,$)=>{if($&&$.isCompressed)return $.virtualSize;return Q.getTotalSize()},EJ=(J,Q)=>{return Q.getTotalSize()},AJ=(J,Q)=>{return Q.getOffset(J)},FJ=(J,Q,$)=>{let j=Math.max(0,Q-$);return Math.max(0,Math.min(J,j))};var LJ=(J,Q,$,j,q="start",Y,B=MJ)=>{return B(J,Q,$,j,Y,q)},HJ=(J,Q)=>{return J.start===Q.start&&J.end===Q.end},bJ=(J,Q)=>{return J>=Q.start&&J<=Q.end},TJ=(J)=>{if(J.end<J.start)return 0;return J.end-J.start+1};var RJ=(J,Q)=>{let $=[],j=[];for(let q=J.start;q<=J.end;q++)if(q<Q.start||q>Q.end)j.push(q);for(let q=Q.start;q<=Q.end;q++)if(q<J.start||q>J.end)$.push(q);return{add:$,remove:j}};var yJ=()=>{let J={},Q=(Y,B)=>{if(!J[Y])J[Y]=new Set;return J[Y].add(B),()=>$(Y,B)},$=(Y,B)=>{J[Y]?.delete(B)};return{on:Q,off:$,emit:(Y,B)=>{J[Y]?.forEach((G)=>{try{G(B)}catch(b){console.error(`[vlist] Error in event handler for "${String(Y)}":`,b)}})},clear:(Y)=>{if(Y)delete J[Y];else for(let B in J)delete J[B]}}};var y2=(J={})=>{let{chunkSize:Q=100,maxCachedItems:$=5000,evictionBuffer:j=200,onEvict:q}=J,Y=new Map,B=0,G=0,b=(H)=>{let U=Y.get(H);if(!U)U={items:Array(Q),count:0,lastAccess:Date.now()},Y.set(H,U);else U.lastAccess=Date.now();return U},O=(H)=>{return Math.floor(H/Q)},X=(H)=>{return H%Q},L=()=>B,A=(H)=>{B=H},w=(H)=>{if(H<0||H>=B)return;let U=O(H),_=Y.get(U);if(!_)return;return _.items[X(H)]},W=(H)=>{if(H<0||H>=B)return!1;let U=O(H),_=Y.get(U);if(!_)return!1;return _.items[X(H)]!==void 0},V=(H,U)=>{let _=O(H),M=b(_),C=X(H),a=M.items[C]===void 0;if(M.items[C]=U,a)M.count++,G++;if(H>=B)B=H+1},K=(H,U)=>{for(let _=0;_<U.length;_++){let M=U[_];if(M!==void 0)V(H+_,M)}},D=(H)=>{if(H<0||H>=B)return!1;let U=O(H),_=Y.get(U),M=X(H);if(!(_!==void 0&&_.items[M]!==void 0))return!1;let a=U,i=Array.from(Y.keys()).filter((Z)=>Z>=a).sort((Z,N)=>Z-N),d=[];for(let Z of i){let N=Y.get(Z),T=Z*Q;for(let c=0;c<Q;c++){if(N.items[c]===void 0)continue;let R=T+c;if(R<=H)continue;d.push({oldIndex:R,item:N.items[c]})}}if(_.items[M]=void 0,_.count--,G--,_.count===0)Y.delete(U);for(let{oldIndex:Z}of d){let N=O(Z),T=Y.get(N);if(!T)continue;let c=X(Z);if(T.items[c]!==void 0){if(T.items[c]=void 0,T.count--,G--,T.count===0)Y.delete(N)}}for(let{oldIndex:Z,item:N}of d){let T=Z-1,c=O(T),R=b(c),k=X(T);R.items[k]=N,R.count++,G++}return B--,!0},E=(H,U)=>{let _=[];for(let M=H;M<=U&&M<B;M++)_.push(w(M));return _},y=(H,U)=>{for(let _=H;_<=U&&_<B;_++)if(!W(_))return!1;return!0},P=()=>{let H=[],U=null,_=Array.from(Y.keys()).sort((M,C)=>M-C);for(let M of _){let C=Y.get(M);if(!C)continue;let a=M*Q;for(let i=0;i<Q;i++){let d=a+i;if(d>=B)break;if(C.items[i]!==void 0)if(U===null)U={start:d,end:d};else if(d===U.end+1)U.end=d;else H.push(U),U={start:d,end:d};else if(U!==null)H.push(U),U=null}}if(U!==null)H.push(U);return H},m=(H,U)=>{let _=[],M=null;for(let C=H;C<=U&&C<B;C++)if(!W(C))if(M===null)M={start:C,end:C};else M.end=C;else if(M!==null)_.push(M),M=null;if(M!==null)_.push(M);return _},I=(H)=>{return Y.has(H)},n=(H)=>{let U=Y.get(H);if(U)U.lastAccess=Date.now()},l=(H,U)=>{if(H>U||Y.size===0)return;let _=Date.now(),M=O(Math.max(0,H)),C=O(Math.min(B-1,U));for(let a=M;a<=C;a++){let i=Y.get(a);if(i)i.lastAccess=_}},Y2=(H,U)=>{if(G<=$)return 0;let _=Math.max(0,H-j),M=Math.min(B-1,U+j),C=O(_),a=O(M),i=0,d=[];for(let[Z,N]of Y)if(Z<C||Z>a)i+=N.count,d.push(Z),G-=N.count,Y.delete(Z);if(i>0&&q)q(i,d);return i},U2=()=>{if(G<=$)return 0;let H=Array.from(Y.entries()).sort(([,M],[,C])=>M.lastAccess-C.lastAccess),U=0,_=[];for(let[M,C]of H){if(G<=$)break;U+=C.count,G-=C.count,_.push(M),Y.delete(M)}if(U>0&&q)q(U,_);return U},x=()=>{return{totalItems:B,cachedItems:G,cachedChunks:Y.size,chunkSize:Q,maxCachedItems:$,memoryEfficiency:B>0?1-G/B:1}},u=()=>G,e=()=>{Y.clear(),G=0};return{chunkSize:Q,maxCachedItems:$,getTotal:L,setTotal:A,get:w,has:W,set:V,setRange:K,delete:D,getRange:E,isRangeLoaded:y,getLoadedRanges:P,findUnloadedRanges:m,getChunkIndex:O,isChunkLoaded:I,touchChunk:n,touchChunksForRange:l,evictDistant:Y2,evictToLimit:U2,getStats:x,getCachedCount:u,clear:e,reset:()=>{e(),B=0}}},P2=(J)=>{if(J.length===0)return[];let Q=[...J].sort((j,q)=>j.start-q.start),$=[{...Q[0]}];for(let j=1;j<Q.length;j++){let q=Q[j],Y=$[$.length-1];if(q.start<=Y.end+1)Y.end=Math.max(Y.end,q.end);else $.push({...q})}return $},b2=(J,Q,$)=>{let j=Math.floor(J.start/$)*$,q=Math.ceil((J.end+1)/$)*$-1,Y={start:j,end:q};if(Q.length===0)return[Y];let B=[],G=P2(Q),b=Y.start;for(let O of G){if(O.end<b)continue;if(O.start>Y.end)break;if(O.start>b)B.push({start:b,end:Math.min(O.start-1,Y.end)});if(b=O.end+1,b>Y.end)break}if(b<=Y.end)B.push({start:b,end:Y.end});return B};var k2=(J={})=>{let{maskCharacter:Q=l2,maxSampleSize:$=a2}=J,j=[],q=!1,Y=(X)=>{if(q||X.length===0)return;let L=Math.min(X.length,$);for(let A=0;A<L;A++){let w=X[A];if(!w||typeof w!=="object")continue;let W={};for(let[V,K]of Object.entries(w)){if(V.startsWith("_")||V==="id")continue;W[V]=String(K??"").length}if(Object.keys(W).length>0)j.push(W)}q=!0},B=()=>q,G=(X)=>{let L={id:`${O2}${X}`,[C2]:!0,_index:X};if(j.length===0)return L.label=Q.repeat(12),L;let A=j[X%j.length];for(let[w,W]of Object.entries(A))L[w]=Q.repeat(Math.max(1,W));return L};return{analyzeStructure:Y,hasAnalyzedStructure:B,generate:G,generateRange:(X,L)=>{let A=[];for(let w=X;w<=L;w++)A.push(G(w));return A},clear:()=>{j=[],q=!1}}},E2=(J)=>{if(!J||typeof J!=="object")return!1;return J[C2]===!0},h2=(J)=>{return J.filter((Q)=>!E2(Q))};var mJ=50,PJ=(J={})=>{let{adapter:Q,initialItems:$,initialTotal:j,storage:q,placeholder:Y,pageSize:B=mJ,onStateChange:G,onItemsLoaded:b,onItemsEvicted:O}=J,X=y2({...q,onEvict:(v,f)=>{O?.(v),l()}}),L=null,A=()=>{if(!L)L=k2(Y);return L},w=new Map,W=!1,V,K=!0,D,E,y=[],P=0,m=new Map,I=new Map,n=()=>{for(let v of I.values())v.abort();I.clear(),m.clear()},l=()=>{G?.(_())},Y2=()=>{w.clear();let v=X.getLoadedRanges();for(let f of v)for(let p=f.start;p<=f.end;p++){let K2=X.get(p);if(K2&&!E2(K2))w.set(K2.id,p)}},U2=(v,f)=>{if(!E2(f))w.set(f.id,v)},x=(v)=>{w.delete(v)},u=(v,f)=>{return`${v}-${f}`},e=()=>X.getTotal(),X2=()=>X.getCachedCount(),H=()=>W,U=()=>K,_=()=>({total:X.getTotal(),cached:X.getCachedCount(),isLoading:W,pendingRanges:y,error:V,hasMore:K,cursor:D}),M=()=>X,C=()=>A(),a=(v)=>{let f=X.get(v);if(f!==void 0)return f;if(v>=0&&v<X.getTotal())return A().generate(v);return},i=(v)=>{let f=w.get(v);if(f===void 0)return;return X.get(f)},d=(v)=>{return w.get(v)??-1},Z=(v)=>{let f=X.get(v);return f!==void 0&&!E2(f)},N=(v,f)=>{let p=[],K2=X.getTotal(),Q2=0,j2=0;X.touchChunksForRange(v,Math.min(f,K2-1));for(let N2=v;N2<=f&&N2<K2;N2++){let _2=X.get(N2);if(_2!==void 0)p.push(_2),Q2++;else p.push(A().generate(N2)),j2++}return p},T=(v)=>{X.setTotal(v),K=X.getCachedCount()<v,l()},c=(v,f=0,p)=>{if(Q&&v.length>0){let K2=A();if(!K2.hasAnalyzedStructure())K2.analyzeStructure(v)}for(let K2=0;K2<v.length;K2++){let Q2=v[K2];if(Q2!==void 0){let j2=f+K2;X.set(j2,Q2),U2(j2,Q2)}}if(p!==void 0)X.setTotal(p);else if(f+v.length>X.getTotal())X.setTotal(f+v.length);if(X.getCachedCount()>=X.getTotal()&&X.getTotal()>0)K=!1;l(),b?.(v,f,X.getTotal())},R=(v,f)=>{let p=X.get(v);if(!p)return!1;let K2=p.id,Q2={...p,...f};if(X.set(v,Q2),f.id!==void 0&&f.id!==K2)x(K2);return U2(v,Q2),l(),!0},k=(v)=>{let f=w.get(v);if(f===void 0)return!1;if(!X.delete(f))return!1;return Y2(),n(),l(),!0},o=async(v,f)=>{if(!Q)return;let p=u(v,f);if(m.has(p))return;let K2=X.getLoadedRanges(),Q2=b2({start:v,end:f},K2,X.chunkSize);if(Q2.length===0)return;let j2=X.chunkSize,N2=j2*2;for(let[B2,D2]of I){let t=B2.indexOf("-"),q2=parseInt(B2.slice(0,t),10);if(Math.abs(q2-v)>N2)D2.abort(),I.delete(B2),m.delete(B2)}let _2=[];for(let B2 of Q2){let D2=Math.floor(B2.start/j2),t=Math.floor(B2.end/j2);for(let q2=D2;q2<=t;q2++){let $2=q2*j2,G2=$2+j2-1,Z2=u($2,G2);if(!_2.some((V2)=>V2.start===$2)&&!m.has(Z2))_2.push({start:$2,end:G2})}}let s=[];for(let B2 of Q2){let D2=Math.floor(B2.start/j2),t=Math.floor(B2.end/j2);for(let q2=D2;q2<=t;q2++){let $2=q2*j2,G2=$2+j2-1,Z2=u($2,G2);if(m.has(Z2)){let V2=m.get(Z2);if(!s.includes(V2))s.push(V2)}}}for(let B2 of _2){let D2=u(B2.start,B2.end),t=new AbortController;I.set(D2,t);let q2=(async()=>{y.push(B2),W=!0,V=void 0,l();try{let $2=B2.end-B2.start+1,G2={offset:B2.start,limit:$2,cursor:B2.start===E?D:void 0,signal:t.signal},Z2=await Q.read(G2);if(c(Z2.items,B2.start,Z2.total),Z2.cursor)D=Z2.cursor,E=B2.start+Z2.items.length;let V2=B2.start+Z2.items.length;if(V2>=P){if(P=V2,Z2.hasMore!==void 0)K=Z2.hasMore;else if(Z2.total!==void 0)K=V2<Z2.total}}catch($2){if($2?.name==="AbortError")return;V=$2 instanceof Error?$2:Error(String($2))}finally{m.delete(D2),I.delete(D2),y=y.filter(($2)=>$2.start!==B2.start||$2.end!==B2.end),W=m.size>0,l()}})();m.set(D2,q2),s.push(q2)}await Promise.all(s)},F=async(v,f)=>{if(X.isRangeLoaded(v,f))return;await o(v,f)},z=async()=>{if(!Q)return;await o(0,B-1)},S=async()=>{if(!Q||W||!K)return!1;let v=X.getCachedCount(),f=X.getTotal(),p=v,K2=Math.min(p+B-1,f>0?f-1:p+B-1);if(p>=f&&f>0)return K=!1,!1;return await o(p,K2),X.getCachedCount()>v},r=async()=>{if(X.clear(),X.setTotal(0),w.clear(),L)L.clear();n(),y=[],W=!1,D=void 0,E=void 0,K=!0,P=0,V=void 0,l()},g=(v,f)=>{if(X.evictDistant(v,f)>0)Y2()},h=()=>{X.clear(),w.clear(),D=void 0,E=void 0,V=void 0,y=[],W=!1,l()},J2=()=>{if(X.reset(),w.clear(),L)L.clear();D=void 0,E=void 0,K=!0,P=0,V=void 0,y=[],W=!1,l()};if($&&$.length>0)c($,0,j??$.length);else if(j!==void 0)X.setTotal(j),l();return{getState:_,getTotal:e,getCached:X2,getIsLoading:H,getHasMore:U,getStorage:M,getPlaceholders:C,getItem:a,getItemById:i,getIndexById:d,isItemLoaded:Z,getItemsInRange:N,setTotal:T,setItems:c,updateItem:R,removeItem:k,loadRange:o,ensureRange:F,loadInitial:z,loadMore:S,reload:r,evictDistant:g,clear:h,reset:J2}};var kJ=(J=0)=>{let Q=[,,,,,,,,];for(let $=0;$<8;$++)Q[$]={position:0,time:0};return{velocity:0,lastPosition:J,lastTime:performance.now(),samples:Q,sampleIndex:0,sampleCount:0}},z2=(J,Q)=>{let $=performance.now(),j=$-J.lastTime;if(j===0)return J;if(j>100){J.sampleCount=0,J.sampleIndex=0,J.velocity=0;let Y=J.samples[0];return Y.position=Q,Y.time=$,J.sampleIndex=1,J.sampleCount=1,J.lastPosition=Q,J.lastTime=$,J}let q=J.samples[J.sampleIndex];if(q.position=Q,q.time=$,J.sampleIndex=(J.sampleIndex+1)%8,J.sampleCount=Math.min(J.sampleCount+1,8),J.sampleCount>=2){let Y=(J.sampleIndex-J.sampleCount+8)%8,B=J.samples[Y],G=Q-B.position,b=$-B.time;J.velocity=b>0?G/b:0}return J.lastPosition=Q,J.lastTime=$,J},dJ=(J)=>J.sampleCount>=3,zJ=(J,Q={})=>{let{wheel:$=!0,sensitivity:j=1,smoothing:q=!1,idleTimeout:Y=150,onScroll:B,onIdle:G,scrollElement:b,horizontal:O=!1}=Q,X=!!b,L=0,A=0,w=X?O?window.innerWidth:window.innerHeight:O?J.clientWidth:J.clientHeight,W=Q.compressed??!1,V=Q.compression,K=kJ(),D=!1,E=null,P=v2(()=>{let R=O?J.scrollLeft:J.scrollTop,k=R>=L?"down":"up";if(K=z2(K,R),L=R,B)B({scrollTop:L,direction:k,velocity:K.velocity});U2()}),I=v2(()=>{let R=J.getBoundingClientRect(),k=O?Math.max(0,-R.left):Math.max(0,-R.top),o=k>=L?"down":"up";if(K=z2(K,k),L=k,!D)D=!0;if(B)B({scrollTop:L,direction:o,velocity:K.velocity});U2()}),n=(R)=>{R.preventDefault()},l=(R)=>{if(R.deltaX)return;R.preventDefault(),J.scrollLeft+=R.deltaY},Y2=(R)=>{if(!W)return;R.preventDefault();let k=(O?R.deltaX||R.deltaY:R.deltaY)*j,o=L+k;if(q)o=L+k*0.3;if(o=Math.max(0,Math.min(o,A)),o!==L){let z=o>=L?"down":"up";if(K=z2(K,o),L=o,!D)D=!0;if(B)B({scrollTop:L,direction:z,velocity:K.velocity});U2()}},U2=()=>{if(E)clearTimeout(E);E=setTimeout(()=>{if(D=!1,K=kJ(L),G)G()},Y)},x=(R)=>{if(W)return;if(W=!0,V=R,A=R.virtualSize-w,X)return;if(P.cancel(),J.removeEventListener("scroll",P),!$)J.removeEventListener("wheel",n);else if(O)J.removeEventListener("wheel",l);if(O)J.style.overflowX="hidden";else J.style.overflow="hidden";if($)J.addEventListener("wheel",Y2,{passive:!1});let k=O?J.scrollLeft:J.scrollTop;if(k>0){let o=O?V?.actualSize??J.scrollWidth:V?.actualSize??J.scrollHeight;L=k/o*A}if(O)J.scrollLeft=0;else J.scrollTop=0},u=()=>{if(!W)return;if(W=!1,X){V=void 0;return}if(J.removeEventListener("wheel",Y2),O)J.style.overflowX="auto";else J.style.overflow="auto";if(J.addEventListener("scroll",P,{passive:!0}),!$)J.addEventListener("wheel",n,{passive:!1});else if(O)J.addEventListener("wheel",l,{passive:!1});if(V&&L>0){let k=L/A*(V.actualSize-w);if(O)J.scrollLeft=k;else J.scrollTop=k}V=void 0},e=()=>{if(X||W)return L;return O?J.scrollLeft:J.scrollTop},X2=(R,k=!1)=>{let o=Math.max(0,Math.min(R,A||1/0));if(X){let F=J.getBoundingClientRect();if(O){let z=F.left+window.scrollX;window.scrollTo({left:z+o,behavior:k?"smooth":"auto"})}else{let z=F.top+window.scrollY;window.scrollTo({top:z+o,behavior:k?"smooth":"auto"})}}else if(W){if(o===L)return;let z=o>=L?"down":"up";if(K=z2(K,o),L=o,!D)D=!0;if(B)B({scrollTop:L,direction:z,velocity:K.velocity});U2()}else if(O)J.scrollTo({left:o,behavior:k?"smooth":"auto"});else J.scrollTo({top:o,behavior:k?"smooth":"auto"})},H=(R)=>{X2(e()+R)},U=()=>{return e()<=0},_=(R=0)=>{let k=e(),o=X||W?A:O?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;return k>=o-R},M=()=>{let R=e(),k=X||W?A:O?J.scrollWidth-J.clientWidth:J.scrollHeight-J.clientHeight;if(k<=0)return 0;return Math.min(1,Math.max(0,R/k))},C=(R)=>{if(R.compression)V=R.compression,A=V.virtualSize-w},a=()=>W,i=()=>Math.abs(K.velocity),d=()=>dJ(K),Z=()=>D,N=()=>X,T=(R)=>{if(w=R,V)A=V.virtualSize-w},c=()=>{if(E)clearTimeout(E);if(X)I.cancel(),window.removeEventListener("scroll",I);else P.cancel(),J.removeEventListener("scroll",P),J.removeEventListener("wheel",Y2),J.removeEventListener("wheel",n),J.removeEventListener("wheel",l)};if(X){if(W&&V)A=V.virtualSize-w;window.addEventListener("scroll",I,{passive:!0})}else if(W&&V){if(A=V.virtualSize-w,O)J.style.overflowX="hidden";else J.style.overflow="hidden";if($)J.addEventListener("wheel",Y2,{passive:!1})}else{if(O)J.style.overflowX="auto",J.style.overflowY="hidden";else J.style.overflow="auto";if(J.addEventListener("scroll",P,{passive:!0}),!$)J.addEventListener("wheel",n,{passive:!1});else if(O)J.addEventListener("wheel",l,{passive:!1})}return{getScrollTop:e,scrollTo:X2,scrollBy:H,isAtTop:U,isAtBottom:_,getScrollPercentage:M,getVelocity:i,isTracking:d,isScrolling:Z,updateConfig:C,enableCompression:x,disableCompression:u,isCompressed:a,isWindowMode:N,updateContainerHeight:T,destroy:c}},v2=(J)=>{let Q=null,$=null,j=(...q)=>{if($=q,Q===null)Q=requestAnimationFrame(()=>{if(Q=null,$)J(...$)})};return j.cancel=()=>{if(Q!==null)cancelAnimationFrame(Q),Q=null},j};var cJ=(J)=>{if(typeof J!=="object"){let Q=J??2;return{top:Q,right:Q,bottom:Q,left:Q}}return{top:J.top??2,right:J.right??2,bottom:J.bottom??2,left:J.left??2}},vJ=(J,Q,$={},j="vlist",q=!1)=>{let{autoHide:Y=!0,autoHideDelay:B=1000,minThumbSize:G=15,showOnHover:b=!0,showOnViewportEnter:O=!0,clickBehavior:X="scroll"}=$,L=X==="page"?"scroll":X,A=cJ($.padding),w=q?A.left:A.top,W=q?A.right:A.bottom,V=q?A.bottom:A.right,K=$.hoverZoneWidth??V+16,D=0,E=0,y=0,P=0,m=!1,I=!1,n=0,l=0,Y2=0,U2=null,x=!1,u=null,e=null,X2=0,H=0,U=null,_=null,M=null,C=q?"width":"height",a=q?"translateX":"translateY",i=q?(t)=>t.clientX:(t)=>t.clientY,d=q?"left":"top",Z=document.createElement("div"),N=document.createElement("div"),T=document.createElement("div"),c=()=>{if(Z.className=`${j}-scrollbar`,N.className=`${j}-scrollbar-thumb`,q)Z.classList.add(`${j}-scrollbar--horizontal`);if($.padding!==void 0)J.style.setProperty("--vlist-custom-scrollbar-padding-top",`${A.top}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-right",`${A.right}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${A.bottom}px`),J.style.setProperty("--vlist-custom-scrollbar-padding-left",`${A.left}px`);if($.minThumbSize!==void 0)Z.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${G}px`);if(Z.appendChild(N),J.appendChild(Z),T.className=`${j}-scrollbar-hover`,q)T.classList.add(`${j}-scrollbar-hover--horizontal`),T.style.height=`${K}px`;else T.style.width=`${K}px`;J.appendChild(T)},R=()=>{if(U2)clearTimeout(U2),U2=null},k=()=>{if(!Y)return;R(),U2=setTimeout(F,B)},o=()=>{if(D<=E)return;if(R(),!x)Z.classList.add(`${j}-scrollbar--visible`),x=!0;if(Y&&!m&&!I)k()},F=()=>{if(m||I)return;Z.classList.remove(`${j}-scrollbar--visible`),x=!1},z=(t,q2)=>{D=t,E=q2;let $2=D>E;if(Z.style.display=$2?"":"none",!$2){F();return}let G2=Math.max(0,E-w-W),Z2=E/D;if(y=Math.max(G,Z2*G2),N.style[C]=`${y}px`,P=G2-y,S(Y2),!Y)o()},S=(t)=>{if(Y2=t,D<=E||P<=0)return;let q2=D-E,G2=Math.min(1,Math.max(0,t/q2))*P;N.style.transform=`${a}(${G2}px)`},r=(t)=>{if(t.target===N||L!=="jump"||P<=0)return;let q2=D-E,$2=Z.getBoundingClientRect(),G2=i(t)-$2[d],Z2=Math.max(0,Math.min(G2-y/2,P));Q(Z2/P*q2),o()},g=()=>{if(U!==null)clearTimeout(U),U=null;if(_!==null)cancelAnimationFrame(_),_=null;M=null},h=(t)=>{let q2=P>0?H/t*P:0;if(X2<q2)return-1;if(X2>=q2+y)return 1;return 0},J2=()=>{let t=D-E,q2=h(t);if(q2===0){g();return}if(q2===-1){if(H<=0){g();return}let $2=Math.max(0,H-E);H=$2,Q($2)}else{if(H>=t){g();return}let $2=Math.min(t,H+E);H=$2,Q($2)}o()},v=(t)=>{if(M===null){M=t,_=requestAnimationFrame(v);return}let q2=D-E,$2=t-M;M=t;let G2=h(q2);if(G2===0){g();return}let Z2=12*E/1000,V2=Math.min(Z2*$2,E);if(G2===-1){if(H<=0){g();return}let W2=Math.max(0,H-V2);H=W2,Q(W2)}else{if(H>=q2){g();return}let W2=Math.min(q2,H+V2);H=W2,Q(W2)}R(),_=requestAnimationFrame(v)},f=()=>{g(),k(),document.removeEventListener("mouseup",f)},p=(t)=>{if(t.target===N||L!=="scroll")return;t.preventDefault();let q2=Z.getBoundingClientRect();X2=i(t)-q2[d],H=Y2,J2(),U=setTimeout(()=>{_=requestAnimationFrame(v)},350),document.addEventListener("mouseup",f)},K2=(t)=>{t.preventDefault(),t.stopPropagation(),m=!0,n=i(t),l=Y2,R(),Z.classList.add(`${j}-scrollbar--dragging`),document.addEventListener("mousemove",Q2),document.addEventListener("mouseup",j2)},Q2=(t)=>{if(!m)return;let q2=i(t)-n,$2=P>0?q2/P:0,G2=D-E,Z2=$2*G2,V2=Math.max(0,Math.min(l+Z2,G2)),wJ=V2/G2*P;if(N.style.transform=`${a}(${wJ}px)`,e=V2,u===null)u=requestAnimationFrame(()=>{if(e!==null)Q(e);u=null})},j2=()=>{if(m=!1,u!==null)cancelAnimationFrame(u),u=null;if(e!==null)Q(e),e=null;if(Z.classList.remove(`${j}-scrollbar--dragging`),Y&&!I)k();document.removeEventListener("mousemove",Q2),document.removeEventListener("mouseup",j2)},N2=()=>{if(O)o()},_2=()=>{if(!m){if(I=!1,Y)k()}},s=()=>{I=!0,R(),o()},B2=()=>{if(I=!1,!m&&Y)k()},D2=()=>{if(R(),g(),u!==null)cancelAnimationFrame(u),u=null;if(Z.removeEventListener("click",r),Z.removeEventListener("mousedown",p),Z.removeEventListener("mouseenter",s),document.removeEventListener("mouseup",f),Z.removeEventListener("mouseleave",B2),N.removeEventListener("mousedown",K2),J.removeEventListener("mouseenter",N2),J.removeEventListener("mouseleave",_2),document.removeEventListener("mousemove",Q2),document.removeEventListener("mouseup",j2),T.removeEventListener("click",r),T.removeEventListener("mousedown",p),b)T.removeEventListener("mouseenter",s),T.removeEventListener("mouseleave",B2);if(T.parentNode)T.parentNode.removeChild(T);if(J.style.removeProperty("--vlist-custom-scrollbar-padding-top"),J.style.removeProperty("--vlist-custom-scrollbar-padding-right"),J.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),J.style.removeProperty("--vlist-custom-scrollbar-padding-left"),Z.parentNode)Z.parentNode.removeChild(Z)};if(c(),Z.addEventListener("click",r),Z.addEventListener("mousedown",p),Z.addEventListener("mouseenter",s),Z.addEventListener("mouseleave",B2),N.addEventListener("mousedown",K2),J.addEventListener("mouseenter",N2),J.addEventListener("mouseleave",_2),T.addEventListener("click",r),T.addEventListener("mousedown",p),b)T.addEventListener("mouseenter",s),T.addEventListener("mouseleave",B2);return{show:o,hide:F,updateBounds:z,updatePosition:S,isVisible:()=>x,destroy:D2}};var rJ=50,lJ=0.1;function aJ(J){let Q=0,$=0,j=0;function q(){return j>0?$/j:0}function Y(b){if(Q=b,b>lJ&&b<rJ)$+=b,j++}function B(){let b=J.getTotal();if(b===0)return 0;let O=J.getItemSize();if(O<=0)return 0;let X=J.getContainerSize();if(X<=0)return 0;let L=J.getScrollPosition(),A=typeof J.getColumns==="function"?J.getColumns():1,W=Math.ceil(b/A)*O,K=Math.min(W,M2)-X,D=W-X,E=K>0?D/K:1,y=L*E,P=Math.ceil((y+X)/O);return Math.min(P*A,b)}function G(){let b=J.getTotal(),O=B();return{progress:b>0?Math.min(100,Math.max(0,O/b*100)):0,velocity:Q,velocityAvg:q(),itemCount:O,total:b}}return{getState:G,onVelocity:Y}}export{n2 as toggleSelection,VJ as simpleVisibleRange,S2 as selectItems,o2 as selectAll,HJ as rangesEqual,v2 as rafThrottle,qJ as needsScaling,P2 as mergeRanges,t2 as isSelected,E2 as isPlaceholderItem,bJ as isInRange,T2 as isGroupHeader,JJ as getSelectedItems,e2 as getSelectedIds,H2 as getScaleState,KJ as getScaleInfo,H2 as getScale,TJ as getRangeCount,BJ as getMaxItemsWithoutScaling,h2 as filterPlaceholders,RJ as diffRanges,f2 as deselectItems,ZJ as createTableRenderer,UJ as createTableLayout,NJ as createTableHeader,c2 as createStickyHeader,aJ as createStats,y2 as createSparseStorage,L2 as createSizeCache,s2 as createSelectionState,vJ as createScrollbar,zJ as createScrollController,k2 as createPlaceholderManager,DJ as createMeasuredSizeCache,_J as createMasonryRenderer,GJ as createMasonryLayout,m2 as createGroupedSizeFn,d2 as createGroupLayout,XJ as createGridRenderer,r2 as createGridLayout,yJ as createEmitter,PJ as createAsyncManager,i2 as clearSelection,FJ as clampScrollPosition,OJ as calculateTotalSize,LJ as calculateScrollToIndex,QJ as calculateScaledVisibleRange,YJ as calculateScaledScrollToIndex,$J as calculateScaledRenderRange,F2 as calculateScaledItemPosition,WJ as calculateRenderRange,b2 as calculateMissingRanges,AJ as calculateItemOffset,jJ as calculateIndexFromScrollPosition,EJ as calculateActualSize,u2 as buildLayoutItems,M2 as MAX_VIRTUAL_SIZE};
package/dist/size.json CHANGED
@@ -1 +1 @@
1
- {"base":{"minified":"27.5","gzipped":"10.6"},"withGrid":{"minified":"39.5","gzipped":"14.5"},"withMasonry":{"minified":"37.1","gzipped":"14.0"},"withGroups":{"minified":"35.9","gzipped":"13.4"},"withAsync":{"minified":"40.5","gzipped":"15.3"},"withSelection":{"minified":"38.0","gzipped":"13.5"},"withScale":{"minified":"40.5","gzipped":"14.3"},"withScrollbar":{"minified":"33.6","gzipped":"12.4"},"withPage":{"minified":"29.8","gzipped":"11.4"},"withSnapshots":{"minified":"30.2","gzipped":"11.5"},"withTable":{"minified":"45.1","gzipped":"16.2"},"withSortable":{"minified":"36.9","gzipped":"13.5"},"withAutoSize":{"minified":"30.3","gzipped":"11.6"}}
1
+ {"base":{"minified":"27.5","gzipped":"10.6"},"withGrid":{"minified":"39.5","gzipped":"14.5"},"withMasonry":{"minified":"37.1","gzipped":"14.0"},"withGroups":{"minified":"35.9","gzipped":"13.4"},"withAsync":{"minified":"40.5","gzipped":"15.3"},"withSelection":{"minified":"38.0","gzipped":"13.5"},"withScale":{"minified":"40.6","gzipped":"14.3"},"withScrollbar":{"minified":"33.6","gzipped":"12.4"},"withPage":{"minified":"29.8","gzipped":"11.4"},"withSnapshots":{"minified":"30.2","gzipped":"11.5"},"withTable":{"minified":"45.1","gzipped":"16.2"},"withSortable":{"minified":"37.3","gzipped":"13.6"},"withAutoSize":{"minified":"30.3","gzipped":"11.6"}}
@@ -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{top:calc(var(--vlist-table-header-height,0px)+var(--vlist-custom-scrollbar-padding-top,2px))}.vlist--table .vlist-scrollbar-hover{top:var(--vlist-table-header-height,0px);height:calc(100% - var(--vlist-table-header-height,0px))}.vlist--table .vlist-viewport--custom-scrollbar::-webkit-scrollbar{display:block;width:0}.vlist--table .vlist-items{contain:layout style}.vlist-table-header{position:absolute;top:0;left:0;right:0;z-index:5;overflow:hidden;display:flex;align-items:stretch;box-sizing:border-box;will-change:scroll-position;contain:layout style;background-color:var(--vlist-bg,#ffffff);border-bottom:1px solid var(--vlist-border,#e5e7eb);font-weight:600;font-size:0.8125rem;letter-spacing:0.01em;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-scroll{position:relative;display:flex;align-items:stretch;height:100%;min-width:100%;flex-shrink:0}.vlist-table-header-cell{position:relative;display:flex;align-items:center;height:100%;box-sizing:border-box;flex-shrink:0;user-select:none;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);border-right:1px solid transparent;transition:background-color 0.15s ease}.vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-header-cell--sortable{cursor:pointer}.vlist-table-header-cell--sortable:active{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-header-cell--center{justify-content:center}.vlist-table-header-cell--right{justify-content:flex-end}.vlist-table-header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;pointer-events:none}.vlist-table-header-sort{margin-left:4px;flex-shrink:0;opacity:0;font-size:0.7em;transition:opacity 0.15s ease;pointer-events:none;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-resize{position:absolute;top:0;right:-3px;bottom:0;width:5px;cursor:col-resize;z-index:2;touch-action:none;opacity:0;transition:opacity 0.15s ease}.vlist-table-header-resize::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background-color:var(--vlist-border,#e5e7eb);transition:background-color 0.15s ease}.vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}.vlist-table-header-cell:hover .vlist-table-header-resize{opacity:1}.vlist-table-header-resize--active{opacity:1}.vlist-table-header-resize--active::after{background-color:var(--vlist-border-selected,#3b82f6)}.vlist--col-resizing,.vlist--col-resizing *{cursor:col-resize !important;user-select:none !important}.vlist-table-row{position:absolute;top:0;left:0;display:flex;box-sizing:border-box;contain:content;border-bottom:none;background-color:var(--vlist-bg,#ffffff);cursor:default;user-select:none;transition:background-color var(--vlist-transition-duration,150ms) var(--vlist-transition-timing,ease-in-out);will-change:transform}.vlist--scrolling .vlist-table-row{transition:none}.vlist-table-row.vlist-item--odd{background:var( --vlist-bg-striped,var(--vlist-bg-hover,rgba(0,0,0,0.02)) )}.vlist--selectable .vlist-table-row{cursor:pointer}.vlist--selectable .vlist-table-row:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-row.vlist-item--selected{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-row.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist--selectable .vlist-table-row.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist--selectable .vlist-table-row.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist-table-row.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-table-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);font-size:0.875rem;color:var(--vlist-text,#111827)}.vlist-table-cell--center{text-align:center;justify-content:center}.vlist-table-cell--right{text-align:right;justify-content:flex-end}.vlist--table-row-borders .vlist-table-row{border-bottom:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-cell{border-right:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-header-cell{border-right-color:var(--vlist-border,#e5e7eb)}.vlist-table-group-header{display:flex;align-items:center;background-color:var(--vlist-bg,#ffffff);cursor:default;user-select:none;pointer-events:none}.vlist-table-group-header-content{flex:1;min-width:0;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem)}.vlist--table-row-borders .vlist-table-group-header{border-bottom:none;border-top:1px solid var(--vlist-border,#e5e7eb)}.vlist--table.vlist--grouped .vlist-sticky-header{z-index:4}[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-bg,#111827)}@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-bg,#111827)}}.vlist-table-row.vlist-item--placeholder .vlist-table-cell{color:transparent}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*{color:transparent;background-color:var(--vlist-border,#e5e7eb);border-radius:4px;animation:vlist-placeholder-pulse 2s ease-in-out infinite;line-height:1;min-width:1em}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*>*{visibility:hidden}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*[style]{background:var(--vlist-border,#e5e7eb) !important;color:transparent !important}[data-theme-mode="dark"] .vlist--table-row-borders .vlist-table-group-header,.dark .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}}
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{top:calc(var(--vlist-table-header-height,0px) + var(--vlist-custom-scrollbar-padding-top,2px))}.vlist--table .vlist-scrollbar-hover{top:var(--vlist-table-header-height,0px);height:calc(100% - var(--vlist-table-header-height,0px))}.vlist--table .vlist-viewport--custom-scrollbar::-webkit-scrollbar{display:block;width:0}.vlist--table .vlist-items{contain:layout style}.vlist-table-header{position:absolute;top:0;left:0;right:0;z-index:5;overflow:hidden;display:flex;align-items:stretch;box-sizing:border-box;will-change:scroll-position;contain:layout style;background-color:var(--vlist-bg,#ffffff);border-bottom:1px solid var(--vlist-border,#e5e7eb);font-weight:600;font-size:0.8125rem;letter-spacing:0.01em;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-scroll{position:relative;display:flex;align-items:stretch;height:100%;min-width:100%;flex-shrink:0}.vlist-table-header-cell{position:relative;display:flex;align-items:center;height:100%;box-sizing:border-box;flex-shrink:0;user-select:none;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);border-right:1px solid transparent;transition:background-color 0.15s ease}.vlist-table-header-cell:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-header-cell--sortable{cursor:pointer}.vlist-table-header-cell--sortable:active{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-header-cell--center{justify-content:center}.vlist-table-header-cell--right{justify-content:flex-end}.vlist-table-header-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;pointer-events:none}.vlist-table-header-sort{margin-left:4px;flex-shrink:0;opacity:0;font-size:0.7em;transition:opacity 0.15s ease;pointer-events:none;color:var(--vlist-text-muted,#6b7280)}.vlist-table-header-resize{position:absolute;top:0;right:-3px;bottom:0;width:5px;cursor:col-resize;z-index:2;touch-action:none;opacity:0;transition:opacity 0.15s ease}.vlist-table-header-resize::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:1px;transform:translateX(-50%);background-color:var(--vlist-border,#e5e7eb);transition:background-color 0.15s ease}.vlist-table-header-resize:hover::after{background-color:var(--vlist-focus-ring,#3b82f6)}.vlist-table-header-cell:hover .vlist-table-header-resize{opacity:1}.vlist-table-header-resize--active{opacity:1}.vlist-table-header-resize--active::after{background-color:var(--vlist-border-selected,#3b82f6)}.vlist--col-resizing,.vlist--col-resizing *{cursor:col-resize !important;user-select:none !important}.vlist-table-row{position:absolute;top:0;left:0;display:flex;box-sizing:border-box;contain:content;border-bottom:none;background-color:var(--vlist-bg,#ffffff);cursor:default;user-select:none;transition:background-color var(--vlist-transition-duration,150ms) var(--vlist-transition-timing,ease-in-out);will-change:transform}.vlist--scrolling .vlist-table-row{transition:none}.vlist-table-row.vlist-item--odd{background:var( --vlist-bg-striped,var(--vlist-bg-hover,rgba(0,0,0,0.02)) )}.vlist--selectable .vlist-table-row{cursor:pointer}.vlist--selectable .vlist-table-row:hover{background-color:var(--vlist-bg-hover,rgba(0,0,0,0.04))}.vlist-table-row.vlist-item--selected{background-color:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist-table-row.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected,rgba(59,130,246,0.12))}.vlist--selectable .vlist-table-row.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist--selectable .vlist-table-row.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover,rgba(59,130,246,0.18))}.vlist-table-row.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-table-cell{position:absolute;top:0;bottom:0;display:flex;align-items:center;box-sizing:border-box;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem);font-size:0.875rem;color:var(--vlist-text,#111827)}.vlist-table-cell--center{text-align:center;justify-content:center}.vlist-table-cell--right{text-align:right;justify-content:flex-end}.vlist--table-row-borders .vlist-table-row{border-bottom:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-cell{border-right:1px solid var(--vlist-border,#e5e7eb)}.vlist--table-col-borders .vlist-table-header-cell{border-right-color:var(--vlist-border,#e5e7eb)}.vlist-table-group-header{display:flex;align-items:center;background-color:var(--vlist-bg,#ffffff);cursor:default;user-select:none;pointer-events:none}.vlist-table-group-header-content{flex:1;min-width:0;padding-left:var(--vlist-item-padding-x,0.75rem);padding-right:var(--vlist-item-padding-x,0.75rem)}.vlist--table-row-borders .vlist-table-group-header{border-bottom:none;border-top:1px solid var(--vlist-border,#e5e7eb)}.vlist--table.vlist--grouped .vlist-sticky-header{z-index:4}[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-bg,#111827)}@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-bg,#111827)}}.vlist-table-row.vlist-item--placeholder .vlist-table-cell{color:transparent}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*{color:transparent;background-color:var(--vlist-border,#e5e7eb);border-radius:4px;animation:vlist-placeholder-pulse 2s ease-in-out infinite;line-height:1;min-width:1em}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*>*{visibility:hidden}.vlist-table-row.vlist-item--placeholder .vlist-table-cell>*[style]{background:var(--vlist-border,#e5e7eb) !important;color:transparent !important}[data-theme-mode="dark"] .vlist--table-row-borders .vlist-table-group-header,.dark .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]) .vlist--table-row-borders .vlist-table-group-header{border-top-color:var(--vlist-border,#374151)}}
package/dist/vlist.css CHANGED
@@ -1 +1 @@
1
- @keyframes vlist-fade-in{from{opacity:0.6}to{opacity:1}}@keyframes vlist-placeholder-pulse{0%,100%{opacity:0.6}50%{opacity:0.4}}:root{--vlist-scrollbar-width:8px;--vlist-scrollbar-track-color:transparent;--vlist-scrollbar-radius:4px;--vlist-custom-scrollbar-width:8px;--vlist-custom-scrollbar-track-color:transparent;--vlist-custom-scrollbar-radius:4px;--vlist-custom-scrollbar-padding-top:2px;--vlist-custom-scrollbar-padding-right:2px;--vlist-custom-scrollbar-padding-bottom:2px;--vlist-custom-scrollbar-padding-left:2px;--vlist-custom-scrollbar-min-thumb-size:15px;--vlist-item-padding-x:1rem;--vlist-item-padding-y:0.75rem;--vlist-border-radius:0.5rem;--vlist-transition-duration:150ms;--vlist-transition-timing:ease-in-out;--vlist-bg:#ffffff;--vlist-bg-hover:rgba(0,0,0,0.04);--vlist-bg-striped:rgba(0,0,0,0.02);--vlist-bg-selected:rgba(59,130,246,0.12);--vlist-bg-selected-hover:rgba(59,130,246,0.18);--vlist-border:#e5e7eb;--vlist-border-selected:#3b82f6;--vlist-text:#111827;--vlist-text-muted:#6b7280;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#f3f4f6;--vlist-scrollbar-thumb-color:#d1d5db;--vlist-scrollbar-thumb-hover-color:#9ca3af;--vlist-custom-scrollbar-thumb-color:rgba(0,0,0,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(0,0,0,0.3);--vlist-placeholder-bg:rgba(0,0,0,0.2)}[data-theme-mode="dark"]{--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]){--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}}.dark{--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}.vlist{position:relative;width:100%;height:100%;overflow:hidden;background-color:var(--vlist-bg);color:var(--vlist-text);color-scheme:light;border:1px solid var(--vlist-border);border-radius:var(--vlist-border-radius);outline:none}[data-theme-mode="dark"] .vlist,.dark .vlist{color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]) .vlist{color-scheme:dark}}.vlist:focus,.vlist:focus-visible{outline:none}.vlist-viewport{width:100%;height:100%;overflow:auto;scrollbar-color:var(--vlist-scrollbar-thumb-color) var(--vlist-scrollbar-track-color)}@supports (-moz-appearance:none) and (scrollbar-width:1px){.vlist-viewport{scrollbar-width:var(--vlist-scrollbar-width)}}.vlist-viewport::-webkit-scrollbar{width:var(--vlist-scrollbar-width);height:var(--vlist-scrollbar-width)}.vlist-viewport::-webkit-scrollbar-track{background:var(--vlist-scrollbar-track-color)}.vlist-viewport::-webkit-scrollbar-thumb{background-color:var(--vlist-scrollbar-thumb-color);border-radius:var(--vlist-scrollbar-radius)}.vlist-viewport::-webkit-scrollbar-thumb:hover{background-color:var(--vlist-scrollbar-thumb-hover-color)}.vlist-content{position:relative;width:100%}.vlist-items{position:relative;width:100%;contain:layout style}.vlist-item{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;background-color:var(--vlist-bg);cursor:default;user-select:none;opacity:1;transition:background-color var(--vlist-transition-duration) var(--vlist-transition-timing),opacity var(--vlist-transition-duration) var(--vlist-transition-timing);contain:content;box-sizing:border-box;will-change:transform}.vlist--scrolling .vlist-item{transition:none}.vlist--selectable .vlist-item{cursor:pointer}.vlist--selectable .vlist-item:hover{background-color:var(--vlist-bg-hover)}.vlist-item.vlist-item--odd{background:var(--vlist-bg-striped)}.vlist-item.vlist-item--selected{background-color:var(--vlist-bg-selected)}.vlist-item.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected)}.vlist-item.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover)}.vlist-item.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover)}.vlist-item.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-item--replaced{animation:vlist-fade-in 0.3s ease-out}.vlist-item--placeholder{opacity:0.6;animation:vlist-placeholder-pulse 2s ease-in-out infinite}.vlist-item.vlist-item--selected.vlist-item--focused{outline-color:var(--vlist-border-selected)}.vlist-scrollbar{position:absolute;top:var(--vlist-custom-scrollbar-padding-top);right:var(--vlist-custom-scrollbar-padding-right);bottom:var(--vlist-custom-scrollbar-padding-bottom);width:var(--vlist-custom-scrollbar-width);background-color:var(--vlist-custom-scrollbar-track-color);opacity:0;transition:opacity 0.2s ease-out;z-index:10;pointer-events:none}.vlist-scrollbar-hover{position:absolute;top:0;right:0;height:100%;z-index:9;pointer-events:auto}.vlist-scrollbar-hover--horizontal{top:auto;right:auto;bottom:0;left:0;width:100%;height:auto}.vlist-scrollbar--visible{opacity:1;pointer-events:auto}.vlist-scrollbar-thumb{position:absolute;top:0;left:0;right:0;width:100%;background-color:var(--vlist-custom-scrollbar-thumb-color);border-radius:var(--vlist-custom-scrollbar-radius);cursor:pointer;transition:background-color 0.15s ease-out}.vlist-scrollbar-thumb:hover{background-color:var(--vlist-custom-scrollbar-thumb-hover-color)}.vlist-scrollbar--dragging{opacity:1;pointer-events:auto}.vlist-scrollbar--dragging .vlist-scrollbar-thumb{background-color:var(--vlist-custom-scrollbar-thumb-hover-color)}.vlist--grouped .vlist-item[data-id^="__group_header_"]{cursor:default;background-color:var(--vlist-group-header-bg,#f3f4f6);border-bottom:1px solid var(--vlist-border);z-index:1;overflow:hidden}.vlist--grouped .vlist-item[data-id^="__group_header_"]:hover{background-color:var(--vlist-group-header-bg,#f3f4f6)}.vlist-sticky-header{left:0;right:0;background-color:var(--vlist-group-header-bg,#f3f4f6);border-bottom:1px solid var(--vlist-border)}.vlist--horizontal{overflow:hidden}.vlist--horizontal .vlist-viewport{overflow-x:auto;overflow-y:hidden}.vlist--horizontal .vlist-content{height:100%;width:auto}.vlist--horizontal .vlist-items{height:100%;width:auto}.vlist--horizontal .vlist-item{position:absolute;top:0;bottom:0;left:0;right:auto;display:flex;align-items:center;justify-content:center;border-bottom:none;border-right:1px solid var(--vlist-border)}.vlist-scrollbar--horizontal{top:auto;left:var(--vlist-custom-scrollbar-padding-left);right:var(--vlist-custom-scrollbar-padding-right);bottom:var(--vlist-custom-scrollbar-padding-bottom);width:auto;height:var(--vlist-custom-scrollbar-width)}.vlist-scrollbar--horizontal .vlist-scrollbar-thumb{top:0;left:0;width:auto;height:100%}.vlist-viewport--gutter{padding-right:calc( var(--vlist-custom-scrollbar-padding-right)+var(--vlist-custom-scrollbar-width)+var(--vlist-custom-scrollbar-padding-left) )}.vlist--horizontal .vlist-viewport--gutter{padding-right:0;padding-bottom:calc( var(--vlist-custom-scrollbar-padding-bottom)+var(--vlist-custom-scrollbar-width)+var(--vlist-custom-scrollbar-padding-top) )}.vlist-viewport--custom-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.vlist-viewport--custom-scrollbar::-webkit-scrollbar{display:none}.vlist-viewport--no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.vlist-viewport--no-scrollbar::-webkit-scrollbar{display:none}.vlist-viewport--gutter-stable{scrollbar-gutter:stable}.vlist-sort-ghost{opacity:0.85;box-shadow:0 4px 16px rgba(0,0,0,0.18);cursor:grabbing}.vlist--sorting{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.vlist-item--kb-sorting{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;background-color:var(--vlist-bg-selected);z-index:1}
1
+ @keyframes vlist-fade-in{from{opacity:0.6}to{opacity:1}}@keyframes vlist-placeholder-pulse{0%,100%{opacity:0.6}50%{opacity:0.4}}:root{--vlist-scrollbar-width:8px;--vlist-scrollbar-track-color:transparent;--vlist-scrollbar-radius:4px;--vlist-custom-scrollbar-width:8px;--vlist-custom-scrollbar-track-color:transparent;--vlist-custom-scrollbar-radius:4px;--vlist-custom-scrollbar-padding-top:2px;--vlist-custom-scrollbar-padding-right:2px;--vlist-custom-scrollbar-padding-bottom:2px;--vlist-custom-scrollbar-padding-left:2px;--vlist-custom-scrollbar-min-thumb-size:15px;--vlist-item-padding-x:1rem;--vlist-item-padding-y:0.75rem;--vlist-border-radius:0.5rem;--vlist-transition-duration:150ms;--vlist-transition-timing:ease-in-out;--vlist-bg:#ffffff;--vlist-bg-hover:rgba(0,0,0,0.04);--vlist-bg-striped:rgba(0,0,0,0.02);--vlist-bg-selected:rgba(59,130,246,0.12);--vlist-bg-selected-hover:rgba(59,130,246,0.18);--vlist-border:#e5e7eb;--vlist-border-selected:#3b82f6;--vlist-text:#111827;--vlist-text-muted:#6b7280;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#f3f4f6;--vlist-scrollbar-thumb-color:#d1d5db;--vlist-scrollbar-thumb-hover-color:#9ca3af;--vlist-custom-scrollbar-thumb-color:rgba(0,0,0,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(0,0,0,0.3);--vlist-placeholder-bg:rgba(0,0,0,0.2)}[data-theme-mode="dark"]{--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]):not([data-theme-mode="dark"]){--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}}.dark{--vlist-bg:#111827;--vlist-bg-hover:rgba(255,255,255,0.06);--vlist-bg-striped:rgba(255,255,255,0.02);--vlist-bg-selected:rgba(59,130,246,0.2);--vlist-bg-selected-hover:rgba(59,130,246,0.28);--vlist-border:#374151;--vlist-border-selected:#3b82f6;--vlist-text:#f9fafb;--vlist-text-muted:#9ca3af;--vlist-focus-ring:#3b82f6;--vlist-group-header-bg:#1e2433;--vlist-scrollbar-thumb-color:#4b5563;--vlist-scrollbar-thumb-hover-color:#6b7280;--vlist-custom-scrollbar-thumb-color:rgba(255,255,255,0.2);--vlist-custom-scrollbar-thumb-hover-color:rgba(255,255,255,0.3);--vlist-placeholder-bg:rgba(255,255,255,0.3)}.vlist{position:relative;width:100%;height:100%;overflow:hidden;background-color:var(--vlist-bg);color:var(--vlist-text);color-scheme:light;border:1px solid var(--vlist-border);border-radius:var(--vlist-border-radius);outline:none}[data-theme-mode="dark"] .vlist,.dark .vlist{color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme-mode="light"]) .vlist{color-scheme:dark}}.vlist:focus,.vlist:focus-visible{outline:none}.vlist-viewport{width:100%;height:100%;overflow:auto;scrollbar-color:var(--vlist-scrollbar-thumb-color) var(--vlist-scrollbar-track-color)}@supports (-moz-appearance:none) and (scrollbar-width:1px){.vlist-viewport{scrollbar-width:var(--vlist-scrollbar-width)}}.vlist-viewport::-webkit-scrollbar{width:var(--vlist-scrollbar-width);height:var(--vlist-scrollbar-width)}.vlist-viewport::-webkit-scrollbar-track{background:var(--vlist-scrollbar-track-color)}.vlist-viewport::-webkit-scrollbar-thumb{background-color:var(--vlist-scrollbar-thumb-color);border-radius:var(--vlist-scrollbar-radius)}.vlist-viewport::-webkit-scrollbar-thumb:hover{background-color:var(--vlist-scrollbar-thumb-hover-color)}.vlist-content{position:relative;width:100%}.vlist-items{position:relative;width:100%;contain:layout style}.vlist-item{position:absolute;top:0;left:0;right:0;display:flex;align-items:center;background-color:var(--vlist-bg);cursor:default;user-select:none;opacity:1;transition:background-color var(--vlist-transition-duration) var(--vlist-transition-timing),opacity var(--vlist-transition-duration) var(--vlist-transition-timing);contain:content;box-sizing:border-box;will-change:transform}.vlist--scrolling .vlist-item{transition:none}.vlist--selectable .vlist-item{cursor:pointer}.vlist--selectable .vlist-item:hover{background-color:var(--vlist-bg-hover)}.vlist-item.vlist-item--odd{background:var(--vlist-bg-striped)}.vlist-item.vlist-item--selected{background-color:var(--vlist-bg-selected)}.vlist-item.vlist-item--odd.vlist-item--selected{background:var(--vlist-bg-selected)}.vlist-item.vlist-item--selected:hover{background-color:var(--vlist-bg-selected-hover)}.vlist-item.vlist-item--odd.vlist-item--selected:hover{background:var(--vlist-bg-selected-hover)}.vlist-item.vlist-item--focused{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;z-index:1}.vlist-item--replaced{animation:vlist-fade-in 0.3s ease-out}.vlist-item--placeholder{opacity:0.6;animation:vlist-placeholder-pulse 2s ease-in-out infinite}.vlist-item.vlist-item--selected.vlist-item--focused{outline-color:var(--vlist-border-selected)}.vlist-scrollbar{position:absolute;top:var(--vlist-custom-scrollbar-padding-top);right:var(--vlist-custom-scrollbar-padding-right);bottom:var(--vlist-custom-scrollbar-padding-bottom);width:var(--vlist-custom-scrollbar-width);background-color:var(--vlist-custom-scrollbar-track-color);opacity:0;transition:opacity 0.2s ease-out;z-index:10;pointer-events:none}.vlist-scrollbar-hover{position:absolute;top:0;right:0;height:100%;z-index:9;pointer-events:auto}.vlist-scrollbar-hover--horizontal{top:auto;right:auto;bottom:0;left:0;width:100%;height:auto}.vlist-scrollbar--visible{opacity:1;pointer-events:auto}.vlist-scrollbar-thumb{position:absolute;top:0;left:0;right:0;width:100%;background-color:var(--vlist-custom-scrollbar-thumb-color);border-radius:var(--vlist-custom-scrollbar-radius);cursor:pointer;transition:background-color 0.15s ease-out}.vlist-scrollbar-thumb:hover{background-color:var(--vlist-custom-scrollbar-thumb-hover-color)}.vlist-scrollbar--dragging{opacity:1;pointer-events:auto}.vlist-scrollbar--dragging .vlist-scrollbar-thumb{background-color:var(--vlist-custom-scrollbar-thumb-hover-color)}.vlist--grouped .vlist-item[data-id^="__group_header_"]{cursor:default;background-color:var(--vlist-group-header-bg,#f3f4f6);border-bottom:1px solid var(--vlist-border);z-index:1;overflow:hidden}.vlist--grouped .vlist-item[data-id^="__group_header_"]:hover{background-color:var(--vlist-group-header-bg,#f3f4f6)}.vlist-sticky-header{left:0;right:0;background-color:var(--vlist-group-header-bg,#f3f4f6);border-bottom:1px solid var(--vlist-border)}.vlist--horizontal{overflow:hidden}.vlist--horizontal .vlist-viewport{overflow-x:auto;overflow-y:hidden}.vlist--horizontal .vlist-content{height:100%;width:auto}.vlist--horizontal .vlist-items{height:100%;width:auto}.vlist--horizontal .vlist-item{position:absolute;top:0;bottom:0;left:0;right:auto;display:flex;align-items:center;justify-content:center;border-bottom:none;border-right:1px solid var(--vlist-border)}.vlist-scrollbar--horizontal{top:auto;left:var(--vlist-custom-scrollbar-padding-left);right:var(--vlist-custom-scrollbar-padding-right);bottom:var(--vlist-custom-scrollbar-padding-bottom);width:auto;height:var(--vlist-custom-scrollbar-width)}.vlist-scrollbar--horizontal .vlist-scrollbar-thumb{top:0;left:0;width:auto;height:100%}.vlist-viewport--gutter{padding-right:calc( var(--vlist-custom-scrollbar-padding-right) + var(--vlist-custom-scrollbar-width) + var(--vlist-custom-scrollbar-padding-left) )}.vlist--horizontal .vlist-viewport--gutter{padding-right:0;padding-bottom:calc( var(--vlist-custom-scrollbar-padding-bottom) + var(--vlist-custom-scrollbar-width) + var(--vlist-custom-scrollbar-padding-top) )}.vlist-viewport--custom-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.vlist-viewport--custom-scrollbar::-webkit-scrollbar{display:none}.vlist-viewport--no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.vlist-viewport--no-scrollbar::-webkit-scrollbar{display:none}.vlist-viewport--gutter-stable{scrollbar-gutter:stable}.vlist-sort-ghost{opacity:0.85;box-shadow:0 4px 16px rgba(0,0,0,0.18);cursor:grabbing}.vlist--sorting{cursor:grabbing;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.vlist-item--kb-sorting{outline:2px solid var(--vlist-focus-ring,#3b82f6);outline-offset:-2px;background-color:var(--vlist-bg-selected);z-index:1}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vlist",
3
- "version": "1.7.1",
3
+ "version": "1.7.2",
4
4
  "description": "Lightweight, high-performance virtual list with zero dependencies",
5
5
  "author": {
6
6
  "name": "Floor IO",