vlist 1.8.2 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var K1=2,N1=(J=0)=>({velocity:0,sampleCount:0}),W1=(J,q)=>{let j=performance.now(),Q=J._lt??j,X=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-X)/Y,J.sampleCount=Math.min(J.sampleCount+1,5),J};var jJ=(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}},YJ=(J,q)=>{let j=q,Q=new Float64Array(0),X=(W)=>{j=W,Q=new Float64Array(W+1),Q[0]=0;for(let B=0;B<W;B++)Q[B+1]=Q[B]+J(B)};X(q);let Y=(W)=>{if(j===0)return 0;if(W<=0)return 0;if(W>=Q[j])return j-1;let B=0,_=j-1;while(B<_){let Z=B+_+1>>>1;if(Q[Z]<=W)B=Z;else _=Z-1}return B};return{getOffset:(W)=>{if(W<=0)return 0;if(W>=j)return Q[j];return Q[W]},getSize:(W)=>J(W),indexAtOffset:(W)=>Y(W),getTotalSize:()=>Q[j]??0,getTotal:()=>j,rebuild:(W)=>X(W),isVariable:()=>!0}},i0=(J,q)=>{if(typeof J==="number")return jJ(J,q);return YJ(J,q)};var B1=()=>{let J={},q=(Y,W)=>{if(!J[Y])J[Y]=new Set;return J[Y].add(W),()=>j(Y,W)},j=(Y,W)=>{J[Y]?.delete(W)};return{on:q,off:j,emit:(Y,W)=>{J[Y]?.forEach((B)=>{try{B(W)}catch(_){console.error(`[vlist] Error in event handler for "${String(Y)}":`,_)}})},clear:(Y)=>{if(Y)delete J[Y];else for(let W in J)delete J[W]}}};var _1=(J)=>{if(typeof J==="string"){let q=document.querySelector(J);if(!q)throw Error(`[vlist] Container not found: ${J}`);return q}return J},K2=(J,q)=>{let j=document.createElement("div");if(j.className=J,q)j.style.cssText=q;return j},V1=(J,q,j,Q,X)=>{let Y=Q,W=K2(q);if(Y)W.classList.add(`${q}--horizontal`);let B=K2(`${q}-viewport`,Y?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");B.setAttribute("tabindex","-1");let _=K2(`${q}-content`,Y?"position:relative;height:100%":"position:relative;width:100%"),Z=K2(`${q}-items`,Y?"position:relative;height:100%":"position:relative;width:100%");if(Z.setAttribute("role",X!==!1?"listbox":"list"),X!==!1)Z.setAttribute("tabindex","0");if(j)Z.setAttribute("aria-label",j);if(Y)Z.setAttribute("aria-orientation","horizontal");let A=K2(`${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 A.setAttribute("aria-live","polite"),A.setAttribute("aria-atomic","true"),A.setAttribute("role","status"),_.appendChild(Z),B.appendChild(_),W.appendChild(A),W.appendChild(B),J.appendChild(W),{root:W,viewport:B,content:_,items:Z,liveRegion:A}};var D1=(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 M1=(J,q,j,Q,X)=>{if(Q===0||q===0){X.start=0,X.end=-1;return}let Y=j.indexAtOffset(J),W=j.indexAtOffset(J+q);if(W<Q-1)W++;X.start=Math.max(0,Y),X.end=Math.min(Q-1,Math.max(0,W))},G1=(J,q,j,Q)=>{Q.start=Math.max(0,J.start-q),Q.end=Math.min(j-1,J.end+q)},O1=(J,q,j,Q,X,Y=0)=>{if(Q===0)return 0;let W=Math.max(0,Math.min(J,Q-1)),B=q.getOffset(W),_=q.getSize(W),Z=q.getTotalSize(),A=Math.max(0,Z+Y-j),K;switch(X){case"center":K=B-(j-_)/2;break;case"end":K=Y>0&&B+_>=Z?A:B-j+_;break;default:K=B}return Math.max(0,Math.min(K,A))};var E2={top:0,right:0,bottom:0,left:0},g0=(J)=>{if(J==null)return E2;if(typeof J==="number")return J===0?E2:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[Y,W]=J;return Y===0&&W===0?E2:{top:Y,right:W,bottom:Y,left:W}}let[q,j,Q,X]=J;return q===0&&j===0&&Q===0&&X===0?E2:{top:q,right:j,bottom:Q,left:X}},e0=(J,q)=>q?J.left+J.right:J.top+J.bottom,L2=(J,q)=>q?J.top+J.bottom:J.left+J.right;var J2=(J,q,j)=>{let Q=Array.from(q).sort((W,B)=>W-B);if(Q.length<=1)return;let X=[];for(let W=0;W<Q.length;W++){let B=j(Q[W]);if(B)X.push(B)}if(X.length<=1)return;let Y=J.firstChild;for(let W=0;W<X.length;W++){let B=X[W];if(B===Y)Y=Y.nextSibling;else J.insertBefore(B,Y)}};var A1=(J,q)=>{let{dom:j,emitter:Q,resolvedConfig:X,rawConfig:Y,rendered:W,pool:B,sharedState:_,isHorizontal:Z,classPrefix:A,contentSizeHandlers:K,idleHandlers:$,afterScroll:O,clickHandlers:D,contextMenuHandlers:k,keydownHandlers:E,resizeHandlers:T,destroyHandlers:F,methods:S,onScrollFrame:p,resizeObserver:g,renderRange:r,afterRenderBatch:y}=q;return{get dom(){return j},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return X},get rawConfig(){return Y},adjustScrollPosition(M){if(J.mp===0)return M;let w=Z?J.cw:J.ch,s=J.hc.getTotalSize(),m=Math.max(0,s-w),o=Math.max(0,s+J.mp-w);if(M>=m)return o;return Math.min(M,o)},get renderer(){return{render:(M,w,s,m,o)=>{J.ss=s,J.fi=m,J.ffn()},updateItemClasses:(M,w,s)=>{J.uic(M,w,s)},updatePositions:()=>{},updateItem:()=>{},getElement:(M)=>W.get(M)??null,clear:()=>{},destroy:()=>{}}},set renderer(M){},get dataManager(){return J.dm},set dataManager(M){J.dm=M},get scrollController(){return J.sc},set scrollController(M){J.sc=M},state:_,getContainerWidth(){return J.cw},afterScroll:O,idleHandlers:$,afterRenderBatch:y,clickHandlers:D,contextMenuHandlers:k,keydownHandlers:E,resizeHandlers:T,contentSizeHandlers:K,destroyHandlers:F,methods:S,replaceTemplate(M){J.at=M},replaceRenderer(M){},replaceDataManager(M){J.dm=M},replaceScrollController(M){J.sc=M},getItemsForRange(M){let{dm:w,it:s}=J,m=[];for(let o=M.start;o<=M.end;o++){let X0=w?w.getItem(o):s[o];if(X0)m.push(X0)}return m},getAllLoadedItems(){let M=J.dm;if(M){let w=M.getTotal(),s=[];for(let m=0;m<w;m++){let o=M.getItem(m);if(o)s.push(o)}return s}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let M=J.hc;return{isCompressed:!1,actualSize:M.getTotalSize(),virtualSize:M.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:r.start,compression:_.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,M]of W)M.remove(),B.release(M);W.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(M,w){J.rfn=M,J.ffn=w},setVirtualTotalFn(M){J.vtf=M},rebuildSizeCache(M){J.hc.rebuild(M??J.vtf())},setSizeConfig(M){if(J.hc=i0(M,J.vtf()),J.gp>0){let w=J.hc.getTotalSize,s=J.gp;J.hc.getTotalSize=()=>{let m=w();return m>0?m-s:0}}},updateContentSize(M){let w=`${M+J.mp}px`;if(Z)j.content.style.width=w;else j.content.style.height=w},updateCompressionMode(){for(let M=0;M<K.length;M++)K[M]()},setVisibleRangeFn(M){J.gvr=M},getVisibleRange(M,w,s,m){J.gvr(M,w,J.hc,s,m)},setScrollToPosFn(M){J.gsp=M},getScrollToPos(M,w,s,m){return J.gsp(M,J.hc,w,s,m)},setPositionElementFn(M){J.pef=M},setScrollFns(M,w){J.sgt=M,J.sst=(s)=>{w(s),p()}},triggerScrollFrame(){p()},setScrollTarget(M){J.st.removeEventListener("scroll",p),J.st=M,J.st.addEventListener("scroll",p,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(M){J.gcw=M.width,J.gch=M.height,J.cw=M.width(),J.ch=M.height(),_.viewportState.containerSize=Z?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,g.unobserve(j.viewport)},disableWheelHandler(){if(J.wh)j.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(M){J.sif=M},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(M){J.i2s=M},setUpdateItemClassesFn(M){J.uic=M}}},E1=(J,q,j)=>{let{rendered:Q,itemState:X,applyTemplate:Y,updateContentSize:W}=q,B=()=>{J.hc.rebuild(J.vtf()),W(),j.updateCompressionMode(),J.ffn()},_=()=>J.it.length,Z=null,A=()=>{if(!Z)Z=new Map;Z.clear();for(let K=0;K<J.it.length;K++){let $=J.it[K]?.id;if($!==void 0)Z.set($,K)}return Z};return{getState:()=>({total:_(),cached:_(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:_,getCached:_,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(K)=>J.it[K],isItemLoaded:(K)=>K>=0&&K<_()&&J.it[K]!==void 0,getItemsInRange:(K,$)=>{let O=[];for(let D=Math.max(0,K),k=Math.min($,_()-1);D<=k;D++)O.push(J.it[D]);return O},getIndexById:(K)=>{return(Z??A()).get(K)??-1},setTotal:()=>{},setItems:(K,$=0,O)=>{if($===0&&(O!==void 0||_()===0)){if(J.it=K,Z)A()}else{let D=$+K.length;if(_()<D)J.it.length=D;for(let k=0;k<K.length;k++){if(Z){let E=J.it[$+k]?.id;if(E!==void 0)Z.delete(E)}if(J.it[$+k]=K[k],Z){let E=K[k]?.id;if(E!==void 0)Z.set(E,$+k)}}}if(J.ii)B()},updateItem:(K,$)=>{let O=J.it;if(K<0||K>=O.length)return!1;let D=O[K];if(!D)return!1;let k=D.id;if(O[K]={...D,...$},Z){let T=O[K].id;if(k!==T){if(k!==void 0)Z.delete(k);if(T!==void 0)Z.set(T,K)}}let E=Q.get(K);if(E)Y(E,J.at(O[K],K,X)),E.dataset.id=String(O[K].id);return!0},removeItem:(K)=>{let $;if(typeof K==="number")$=Z?Z.get(K)??K:K;else $=(Z??A()).get(K)??-1;if($<0||$>=J.it.length)return!1;if(J.it.splice($,1),Z)A();if(J.ii)B();return!0},loadRange:async()=>{},ensureRange:async()=>{},loadInitial:async()=>{},loadMore:async()=>!1,reload:async()=>{},evictDistant:()=>{},clear:()=>{if(J.it=[],Z)Z.clear()},reset:()=>{if(J.it=[],Z)Z.clear();if(J.ii)J.hc.rebuild(0),W(),J.ffn()}}},L1=(J,q)=>{let{dom:j,classPrefix:Q,onScrollFrame:X}=q;return{getScrollTop:()=>J.sgt(),scrollTo:(Y)=>{J.sst(Y),X()},scrollBy:(Y)=>{let W=J.sgt()+Y;J.sst(W),X()},isAtTop:()=>J.ls<=2,isAtBottom:(Y=2)=>J.sab(Y),getScrollPercentage:()=>{let Y=J.hc.getTotalSize(),W=Math.max(0,Y-J.ch);return W>0?J.ls/W: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:(Y)=>{J.ch=Y},destroy:()=>{}}};var N2=(J,q,j,Q,X=0,Y=0)=>{let W=q.getOffset(J),B=q.getSize(J),_=W+X,Z=_+B,A=j+Q;if(_<j)return Math.max(0,W);if(Z>A)return Z+Y-Q;return j},F2=(J,q,j,Q,X=0,Y=0,W,B,_)=>{if(!(W!=null&&W.isCompressed&&W.ratio!==1))return N2(J,q,j,Q,X,Y);let{virtualSize:A}=W,K=q.getSize(Math.max(0,J)),$=Q-X-Y,O=Math.max(1,Math.floor($/K)),D=q.getTotalSize();if(_){if(J>=_.start+O){let F=q.getOffset(J)+K+Y-Q;return Math.max(0,F/D*A)}if(J<=_.start){let T=q.getOffset(J)-X;return Math.max(0,T/D*A)}return j}let k=j/A*B,E=k+O;if(J>=E){let F=q.getOffset(J)+K+Y-Q;return Math.max(0,F/D*A)}if(J<k){let T=q.getOffset(J)-X;return Math.max(0,T/D*A)}return j};var F1=(J,q,j,Q,X,Y,W,B,_,Z,A,K,$,O)=>{let D=`${j}-item--focused`,k=!1,E=()=>{let w=_.get("_getNavTotal");return w?w():J.vtf()},T=()=>{let w=_.get("_getNavDelta");return w?w():{ud:1,lr:0,cols:0}};_.set("_getFocusedIndex",()=>k?J.fi:-1);let F=()=>q.root.getAttribute("role")==="grid"?q.root:q.items,S=(w,s=!0)=>{if(F().setAttribute("aria-activedescendant",`${Q}-item-${w}`),s){let m=_.get("_scrollItemIntoView");if(m)m(w);else{let o=X?J.cw:J.ch,X0=J.i2s(w),n=N2(X0,J.hc,J.ls,o,Y,W);if(n!==J.ls)J.sst(n),J.ls=J.sgt()}}J.ffn()},p=(w)=>{J.fi=w,k=!0,S(w)},g=(w,s)=>{if(J.fi=w,s||O)k=!0;let m=J.dm?J.dm.getItem(w):J.it[w];if(m&&J.ss.has(m.id))J.ss.clear();else if(J.ss.clear(),m)J.ss.add(m.id);S(w,s)},r=(w,s,m)=>{let o=w;while(o>=0&&o<m){let X0=J.dm?J.dm.getItem(o):J.it[o];if(!X0||!X0.__groupHeader)return o;o+=s}o=w-s;while(o>=0&&o<m){let X0=J.dm?J.dm.getItem(o):J.it[o];if(!X0||!X0.__groupHeader)return o;o-=s}return w},y=()=>{if(J.id)return;if(!F().matches(":focus-visible")&&!q.root.matches(":focus-visible"))return;let s=E();if(s===0)return;let m=J.fi>=0?Math.min(J.fi,s-1):0;m=r(m,1,s),p(m)};q.root.addEventListener("focusin",y);let M=(w)=>{if(J.id)return;let s=w.relatedTarget;if(s&&q.root.contains(s))return;if(k=!1,J.fi>=0)Z.get(J.fi)?.classList.remove(D);F().removeAttribute("aria-activedescendant")};q.root.addEventListener("focusout",M),A.push((w)=>{if(J.id)return;let s=E();if(s===0)return;let m=J.fi,o=m;if(w.key===" "||w.key==="Enter"){if(m>=0){let n=J.dm?J.dm.getItem(m):J.it[m];if(n&&!n.__groupHeader)g(m,!0)}w.preventDefault();return}let X0=_.get("_navigate");if(X0)switch(w.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":o=X0(m,w.key,s);break;default:return}else{let{ud:n,lr:v}=T();switch(w.key){case"ArrowUp":o=m-n;break;case"ArrowDown":o=m+n;break;case"ArrowLeft":if(!v)return;o=m-v;break;case"ArrowRight":if(!v)return;o=m+v;break;case"PageUp":case"PageDown":{let R=J.hc.getSize(J.i2s(Math.max(0,m))),N=Math.max(n,Math.floor((X?J.cw:J.ch)/R)*n),V=_.get("_layoutToDataIndex"),L=_.get("_dataToLayoutIndex");if(V&&L){let H=V(m),d=w.key==="PageUp"?-N:N,J0=V(s-1);o=L(Math.max(0,Math.min(J0,H+d)))}else o=w.key==="PageUp"?m-N:m+N;break}case"Home":o=0;break;case"End":o=s-1;break;default:return}if(o<0)o=B?s-1:0;else if(o>=s)o=B?0:s-1}if(w.preventDefault(),o=r(o,o>=m?1:-1,s),o!==m)p(o)}),K.push((w)=>{if(J.id)return;let s=w.target.closest("[data-index]");if(!s)return;let m=parseInt(s.dataset.index??"-1",10);if(m<0)return;let o=J.dm?.getItem(m)??J.it[m];if(!o||o.__groupHeader)return;k=!1,F().focus({preventScroll:!0}),g(m,!1)}),$.push(()=>{q.root.removeEventListener("focusin",y),q.root.removeEventListener("focusout",M)})};var Q2=(J,q)=>{let j,Q;return{getSetSize:()=>{if(j===void 0)j=J.get("_getTotal")??null;return j?j():q()},getPosInSet:(X)=>{if(Q===void 0)Q=J.get("_layoutToDataIndex")??null;return Q?Q(X)+1:X+1}}};var w2=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,r0=(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}},q2=(J,q)=>{let j=null,Q=()=>{if(j!==null)cancelAnimationFrame(j),j=null};return{animateScroll:(Y,W,B)=>{if(Q(),Math.abs(W-Y)<1){J.scrollTo(W);return}let _=performance.now(),Z=(A)=>{let K=A-_,$=Math.min(K/B,1),O=Y+(W-Y)*w2($);if(J.scrollTo(O),q(),$<1)j=requestAnimationFrame(Z);else j=null};j=requestAnimationFrame(Z)},cancelScroll:Q}};var T1=(J,q,j,Q,X,Y,W,B,_,Z,A,K,$,O,D,k,E,T,F)=>{let S=(b)=>{{if(!Array.isArray(b)){console.warn("[vlist] setItems() expects an array, got:",typeof b);return}if(b.length>0&&b[0]&&!("id"in b[0]))console.warn('[vlist] Items must have an "id" property. First item:',b[0]);let U=Math.min(b.length,1e4),C=new Set;for(let G=0;G<U;G++){let u=b[G];if(u&&"id"in u){if(C.has(u.id)){console.warn(`[vlist] Duplicate item ID "${u.id}" at index ${G}. updateItem() and removeItem() will only match the first occurrence.`);break}C.add(u.id)}}}V(),_.dataManager.setItems(b,0,b.length)},p=(b)=>{let U=Z&&J.sab(2);if(_.dataManager.setItems(b,J.it.length),U&&J.it.length>0){let C=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(C),J.ls=C,J.rfn()}},g=(b)=>{let U=Z?J.sgt():0,C=Z?J.hc.getTotalSize():0,G=[...J.it];if(_.dataManager.clear(),_.dataManager.setItems([...b,...G],0),Z){let u=J.hc.getTotalSize()-C;if(u>0)J.sst(U+u),J.ls=U+u}},r=null,y=null,M=null,w=!1,s=()=>{if(w)return;w=!0,r=Y.get("_updateRenderedItem")??null,y=Y.get("_getSelectedIds")??null,M=Y.get("_getFocusedIndex")??null},m=(b,U)=>{{let G=J.vtf();if(b<0||b>=G)console.warn(`[vlist] updateItem() index ${b} is out of range (0–${G-1}).`)}if(_.dataManager.updateItem(b,U),s(),!r)return;let C=_.dataManager.getItem(b);if(C){let u=(y?y():J.ss).has(C.id),f=(M?M():J.fi)===b;r(b,C,u,f)}},o=!1,X0=(b)=>{let U=typeof document<"u"?document.activeElement:null,C=U&&q.items.contains(U)?parseInt(U.dataset?.index??"-1",10):-1;if(!_.dataManager.removeItem(b))return console.warn(`[vlist] removeItem() could not find item with id "${b}".`),!1;if(j.emit("data:change",{type:"remove",id:b}),_.forceRender(),!o){let u=_.dataManager;if(typeof u.ensureRange==="function")o=!0,queueMicrotask(()=>{o=!1;let f=_.dataManager.getTotal(),{start:i,end:a}=_.state.viewportState.renderRange;if(f>0&&a>=i)u.ensureRange(i,a).catch(()=>{})})}if(C>=0){let u=J.vtf();if(u>0)Q.get(Math.min(C,u-1))?.focus()}return!0},n=(b)=>{return _.dataManager.getItem(b)},v=(b)=>{return _.dataManager.getIndexById?.(b)??-1},R=async(b)=>{if(_.dataManager.reload)await _.dataManager.reload()},N=null,V=()=>{if(N!==null)cancelAnimationFrame(N),N=null},L=(b,U,C,G)=>{if(V(),Math.abs(U-b)<1){J.sst(U),J.ls=U,J.rfn();return}let u=performance.now(),f=(i)=>{let a=i-u,Y0=Math.min(a/C,1),x=G?G():U,e=b+(x-b)*w2(Y0);if(J.sst(e),J.ls=e,J.rfn(),Y0<1)N=requestAnimationFrame(f);else N=null};N=requestAnimationFrame(f)},H=(b,U)=>{{let Y0=J.vtf();if(Y0>0&&(b<0||b>=Y0))console.warn(`[vlist] scrollToIndex(${b}) is out of range (0–${Y0-1}).`)}let{align:C,behavior:G,duration:u}=r0(U),f=J.vtf(),i=b;if(A&&f>0)i=(i%f+f)%f;let a=J.gsp(i,J.hc,J.ch,f,C);if(G==="smooth"){let Y0=i,x=C;L(J.sgt(),a,u,()=>J.gsp(Y0,J.hc,J.ch,J.vtf(),x))}else V(),J.sst(a)},d=()=>J.sgt(),J0=(b,U)=>{return j.on(b,U)},c=(b,U)=>{j.off(b,U)},j0=()=>{if(J.id)return;if(J.id=!0,_.state.isDestroyed=!0,q.items.removeEventListener("click",K),q.items.removeEventListener("dblclick",$),q.items.removeEventListener("contextmenu",O),q.root.removeEventListener("keydown",D),J.st.removeEventListener("scroll",k),E.disconnect(),T(),J.wh)q.viewport.removeEventListener("wheel",J.wh);F();let b=[];for(let U=0;U<B.length;U++)try{B[U]()}catch(C){b.push(C instanceof Error?C:Error(String(C)))}for(let U of W)if(U.destroy)try{U.destroy()}catch(C){b.push(C instanceof Error?C:Error(String(C)))}V();for(let[,U]of Q)U.remove(),X.release(U);Q.clear(),X.clear(),j.emit("destroy",void 0);for(let U of b)j.emit("error",{error:U,context:"destroy"});j.clear(),q.root.remove()},z=(b,U)=>Y.has(b)?Y.get(b):U,I={get element(){return q.root},get items(){let b=Y.get("_getItems");return b?b():J.it},get total(){let b=Y.get("_getTotal");return b?b():J.vtf()},setItems:z("setItems",S),appendItems:z("appendItems",p),prependItems:z("prependItems",g),updateItem:z("updateItem",m),removeItem(b){let U=Y.get("removeItem");return U?U(b):X0(b)},reload:z("reload",R),getItemAt:n,getIndexById:v,scrollToIndex:z("scrollToIndex",H),cancelScroll:z("cancelScroll",V),getScrollPosition:z("getScrollPosition",d),on:J0,off:c,destroy:j0};for(let[b,U]of Y){if(b.charCodeAt(0)===95||b==="setItems"||b==="appendItems"||b==="prependItems"||b==="updateItem"||b==="removeItem"||b==="reload"||b==="scrollToIndex"||b==="scrollToItem"||b==="cancelScroll"||b==="getScrollPosition")continue;I[b]=U}return I};var XJ=3,UJ="vlist",ZJ=150,KJ=16000000,NJ=4096,W2="__placeholder_",WJ=(J)=>(typeof screen<"u"?J?screen.width:screen.height:0)||NJ,BJ=0,z2=(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",X=q?J.item.width:J.item.height,Y=q?J.item.estimatedWidth:J.item.estimatedHeight;if(X==null&&Y==null)throw Error(`[vlist] item.${j} or item.${Q} is required${q?" when orientation is 'horizontal'":""}`);if(X!=null){if(typeof X==="number"&&X<=0)throw Error(`[vlist] item.${j} must be a positive number`);if(typeof X!=="number"&&typeof X!=="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 W=new Map,B=!1,_={use(Z){if(B)throw Error("[vlist] Cannot call .use() after .build()");return W.set(Z.name,Z),_},build(){if(B)throw Error("[vlist] .build() can only be called once");return B=!0,_J(J,W,q,X,Y??null)}};return _};function _J(J,q,j,Q,X){let{item:Y,items:W,overscan:B=XJ,classPrefix:_=UJ,ariaLabel:Z,accessibility:A,padding:K,reverse:$=!1,scroll:O,accessible:D,interactive:k}=J,E=k??D??!0,T=O,F=T?.wheel??!0,S=T?.wrap??!1,p=A?.announceVisibleRange??!1,g=A?.rangeAnnouncementDebounce??750,r=$,y=`${_}-${BJ++}`,M=q.has("withGrid")||q.has("withMasonry")?0:Y.gap??0,w=Q??X,s=Q==null&&X!=null,m=j?typeof Y.height==="number"?Y.height:void 0:typeof Y.width==="number"?Y.width:void 0,o={overscan:B,classPrefix:_,reverse:r,wrap:S,horizontal:j,ariaIdPrefix:y,interactive:E},X0=WJ(j),n=Array.from(q.values()).sort((l,Z0)=>(l.priority??50)-(Z0.priority??50)),v=new Set(n.map((l)=>l.name));for(let l of n)if(l.conflicts){for(let Z0 of l.conflicts)if(v.has(Z0))throw Error(`[vlist] ${l.name} and ${Z0} cannot be combined`)}if(r){if(v.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let R=_1(J.container),N=V1(R,_,Z,j,E);if(T?.wheel===!1)if(j)N.viewport.style.overflowX="hidden";else N.viewport.style.overflow="hidden";if(T?.scrollbar==="none")N.viewport.classList.add(`${_}-viewport--no-scrollbar`);if(T?.gutter==="stable")N.viewport.classList.add(`${_}-viewport--gutter-stable`);let V=v.has("withGrid")||v.has("withMasonry");if(j&&m!=null&&T?.scrollbar!=="none"&&!V){N.root.style.height=`${m}px`;let l=N.viewport.style.overflowX;N.viewport.style.overflowX="scroll";let Z0=N.viewport.offsetHeight-N.viewport.clientHeight;if(N.viewport.style.overflowX=l,Z0>0)N.root.style.height=`${m+Z0}px`}let L=g0(K),H=e0(L,j);if(L.top||L.right||L.bottom||L.left)N.content.style.boxSizing="border-box",N.content.style.padding=`${L.top}px ${L.right}px ${L.bottom}px ${L.left}px`;let d=B1(),J0=W||[],c=typeof w==="function"&&(q.has("withGrid")||q.has("withMasonry")),j0=M>0?typeof w==="function"?(l)=>w(l)+M:w+M:w,z=s?X+M:j0,I=i0(z,c?0:J0.length);if(M>0){let l=I.getTotalSize;I.getTotalSize=()=>{let Z0=l();return Z0>0?Z0-M:0}}let b=D1(),U={it:J0,hc:I,ch:Math.min(N.viewport.clientHeight,X0),cw:Math.min(N.viewport.clientWidth,X0),id:!1,ii:!1,ls:0,vt:N1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:j?()=>N.viewport.scrollLeft:()=>N.viewport.scrollTop,sst:j?(l)=>{N.viewport.scrollLeft=l}:(l)=>{N.viewport.scrollTop=l},sab:(l=2)=>{let Z0=U.hc.getTotalSize();return U.ls+U.ch>=Z0-l},sic:!1,rfn:null,ffn:null,gvr:(l,Z0,K0,A0,y0)=>{M1(l,Z0,K0,A0,y0)},gsp:(l,Z0,K0,A0,y0)=>{return O1(l,Z0,K0,A0,y0,U.mp)},pef:null,at:Y.template,vre:!0,st:N.viewport,wh:null,gcw:()=>U.cw,gch:()=>U.ch,gp:M,mp:H,sif:(l)=>l,i2s:(l)=>l,uic:(l,Z0,K0)=>{let A0=x.get(l);if(!A0)return;U0(A0,Z0,K0)},csi:null};U.vtf=()=>U.dm?U.dm.getTotal():U.it.length;let C=null,G=!1,u={start:0,end:0},f={start:0,end:0},i={start:-1,end:-1},a={viewportState:{scrollPosition:0,containerSize:j?U.cw:U.ch,totalSize:U.hc.getTotalSize(),actualSize:U.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},Y0=()=>({...a.viewportState,totalItems:U.vtf()}),x=new Map,e=()=>{J2(N.items,x.keys(),(l)=>x.get(l))},P=()=>{let l=U.hc.getTotalSize(),K0=`${(U.sic?l:Math.min(l,KJ))+H}px`;if(j)N.content.style.width=K0;else N.content.style.height=K0},h={selected:!1,focused:!1},Q0=`${_}-item`,t=`${_}-group-header`,V0=`${_}-item--selected`,N0=`${_}-item--focused`,U0=(l,Z0,K0)=>{l.classList.toggle(V0,Z0),l.classList.toggle(N0,K0),l.ariaSelected=Z0?"true":"false"},W0=(l,Z0,K0,A0)=>{if(K0)l.setAttribute("role","presentation"),l.removeAttribute("aria-selected"),l.removeAttribute("aria-setsize"),l.removeAttribute("aria-posinset"),l.removeAttribute("id");else if(E){if(l.setAttribute("role","option"),A0)l.ariaSelected="false",U.la=String(p0.getSetSize()),l.setAttribute("aria-setsize",U.la);l.id=`${y}-item-${Z0}`,l.setAttribute("aria-posinset",String(p0.getPosInSet(Z0)))}else{if(l.setAttribute("role","listitem"),l.removeAttribute("aria-selected"),A0)U.la=String(p0.getSetSize()),l.setAttribute("aria-setsize",U.la);l.setAttribute("aria-posinset",String(p0.getPosInSet(Z0)))}},M0=Y.striped,$0=!!M0,H0=M0==="data"||M0==="even"||M0==="odd",P0=`${_}-item--odd`,E0=`${_}-item--placeholder`,w0=`${_}-item--replaced`,D0=`${_}--scrolling`,k0=[],b0=[],z0=[],u0=[],h0=[],I0=[],X2=[],a0=[],o0=[],v0=new Map,q0=(l,Z0,K0)=>{if(String(K0).startsWith(W2))return;let A0=W2+Z0;if(l.has(A0))l.delete(A0),l.add(K0)},B0={scrollPosition:0,direction:"down"},_0={velocity:0,reliable:!1},G0={range:{start:0,end:0}},O0=null,F0=null,C0=!1,L0=!1,l0=()=>{if(C0)return;C0=!0,O0=v0.get("_getSelectedIds")??null,F0=v0.get("_getFocusedIndex")??null},p0=Q2(v0,U.vtf),D2=(l,Z0,K0)=>{if(!Z0)console.warn(`[vlist] Template returned falsy value${K0!==void 0?` for item at index ${K0}`:""}. The element will render as blank.`);else if(typeof Z0==="string"&&Z0==="")console.warn(`[vlist] Template returned empty string${K0!==void 0?` for item at index ${K0}`:""}. The element will render as blank.`);if(typeof Z0==="string")l.innerHTML=Z0;else l.replaceChildren(Z0)},a1=(l,Z0)=>{let K0=Math.round(U.hc.getOffset(Z0));if(j)l.style.transform=`translateX(${K0}px)`;else l.style.transform=`translateY(${K0}px)`};U.pef=a1;let o1=(l,Z0)=>{let K0=b.acquire(),A0=!!Z0.__groupHeader;K0.className=A0?t:Q0;let y0=!U.csi||U.csi(l);if(j){if(y0)K0.style.width=`${U.hc.getSize(l)-M}px`;else K0.style.width="";if(m!=null)K0.style.height=`${m}px`}else if(y0)K0.style.height=`${U.hc.getSize(l)-M}px`;else K0.style.height="";if(K0.dataset.index=String(l),K0.dataset.id=String(Z0.id),W0(K0,l,A0,!0),String(Z0.id).startsWith(W2))K0.classList.add(E0);if($0)if(H0){let R0=U.sif(l);if(R0<0)K0.classList.remove(P0);else K0.classList.toggle(P0,(R0&1)===1)}else K0.classList.toggle(P0,(l&1)===1);try{D2(K0,U.at(Z0,l,h),l)}catch(R0){let d0=R0 instanceof Error?R0:Error(String(R0));d.emit("error",{error:d0,context:`tpl(${l},${Z0.id})`,viewport:Y0()}),K0.textContent=""}return U.pef(K0,l),K0},M2=NaN,n1=()=>{if(U.id)return;let l=j?U.cw:U.ch;if(l<=0)return;l0();let Z0=O0?O0():U.ss,K0=F0?F0():U.fi,A0=U.vtf();U.gvr(U.ls,l,U.hc,A0,u),G1(u,B,A0,f);let y0=f.end-f.start+1,m0=U.hc.getSize(0)||1,R0=Math.ceil(X0/m0)+B*2;if(y0>R0){if(!L0)L0=!0,console.warn(`[vlist] Render range capped: ${y0} items → ${R0}. Container is ${l}px tall (item: ${m0}px). This usually means the container has no CSS height constraint.`);f.end=f.start+R0-1}if(f.start===i.start&&f.end===i.end){if(U.sic&&U.ls!==M2){M2=U.ls;for(let[T0,S0]of x)U.pef(S0,T0)}a.viewportState.scrollPosition=U.ls,a.viewportState.containerSize=l,a.viewportState.visibleRange.start=u.start,a.viewportState.visibleRange.end=u.end,a.viewportState.renderRange.start=f.start,a.viewportState.renderRange.end=f.end;return}let d0=String(p0.getSetSize()),JJ=d0!==U.la;U.la=d0;for(let[T0,S0]of x)if(T0<f.start||T0>f.end)S0.remove(),b.release(S0),x.delete(T0);let Y1=document.createDocumentFragment(),X1=!1,Z2=a0.length>0?[]:null;for(let T0=f.start;T0<=f.end;T0++){let S0=U.dm?U.dm.getItem(T0):U.it[T0];if(S0===void 0)continue;let f0=x.get(T0);if(f0){let n0=f0.dataset.id,t0=String(S0.id);if(n0!==t0){let QJ=n0?.startsWith(W2),P2=t0.startsWith(W2),U1=!!S0.__groupHeader;f0.className=U1?t:Q0,W0(f0,T0,U1,!1);try{D2(f0,U.at(S0,T0,h),T0)}catch(y2){let qJ=y2 instanceof Error?y2:Error(String(y2));d.emit("error",{error:qJ,context:`tpl(${T0},${S0.id})`,viewport:Y0()}),f0.textContent=""}f0.dataset.id=t0;let Z1=!U.csi||U.csi(T0);if(j)f0.style.width=Z1?`${U.hc.getSize(T0)-M}px`:"";else f0.style.height=Z1?`${U.hc.getSize(T0)-M}px`:"";if(P2)f0.classList.add(E0);else f0.classList.remove(E0);if(QJ&&!P2)f0.classList.add(w0),setTimeout(()=>{f0.classList.remove(w0)},300);if(U.dm&&!P2)q0(Z0,T0,S0.id)}U.pef(f0,T0);let A2=Z0.has(S0.id);if(U0(f0,A2,T0===K0),JJ&&!S0.__groupHeader)f0.setAttribute("aria-setsize",U.la)}else{let n0=o1(T0,S0);if(Z2)Z2.push({index:T0,element:n0});if(U.dm)q0(Z0,T0,S0.id);let t0=Z0.has(S0.id),A2=T0===K0;if(t0||A2)U0(n0,t0,A2);Y1.appendChild(n0),x.set(T0,n0),X1=!0}}if(X1)N.items.appendChild(Y1);if(Z2&&Z2.length>0)for(let T0=0;T0<a0.length;T0++)a0[T0](Z2);i.start=f.start,i.end=f.end,M2=U.ls,a.lastRenderRange.start=f.start,a.lastRenderRange.end=f.end,a.viewportState.scrollPosition=U.ls,a.viewportState.visibleRange.start=u.start,a.viewportState.visibleRange.end=u.end,a.viewportState.renderRange.start=f.start,a.viewportState.renderRange.end=f.end,G0.range.start=f.start,G0.range.end=f.end,d.emit("range:change",G0)},i1=()=>{i.start=-1,i.end=-1,M2=NaN,U.rfn()};U.rfn=n1,U.ffn=i1;let t1=()=>{N.root.classList.remove(D0),G=!1,U.vt.velocity=0,U.vt.sampleCount=0,_0.velocity=0,_0.reliable=!1,d.emit("velocity:change",_0),e();for(let l=0;l<b0.length;l++)b0[l]();d.emit("scroll:idle",{scrollPosition:U.ls})},e1=()=>{if(C)clearTimeout(C);C=setTimeout(t1,T?.idleTimeout??ZJ)},U2=()=>{if(U.id)return;let l=U.sgt();if(l===U.ls&&G)return;let Z0=l>=U.ls?"down":"up";if(U.vt=W1(U.vt,l),!N.root.classList.contains(D0))N.root.classList.add(D0);G=!0,U.ls=l,U.rfn(),B0.scrollPosition=l,B0.direction=Z0,d.emit("scroll",B0),_0.velocity=U.vt.velocity,_0.reliable=U.vt.sampleCount>=K1,d.emit("velocity:change",_0);for(let K0=0;K0<k0.length;K0++)k0[K0](l,Z0);e1()},G2=null;if(U.st.addEventListener("scroll",U2,{passive:!0}),F){let l=N.viewport;if(j)G2=(Z0)=>{if(a.viewportState.isCompressed)return;if(Math.abs(Z0.deltaX)>Math.abs(Z0.deltaY))return;let K0=U.sgt(),A0=l.scrollWidth-l.clientWidth,y0=Math.max(0,Math.min(K0+Z0.deltaY,A0));if(Math.abs(y0-K0)<1)return;Z0.preventDefault(),U.sst(y0),U2()};else G2=(Z0)=>{if(a.viewportState.isCompressed)return;let K0=l.scrollWidth>l.clientWidth;if(K0&&Math.abs(Z0.deltaX)>Math.abs(Z0.deltaY))return;if(K0&&Z0.deltaX!==0)Z0.preventDefault(),l.scrollLeft+=Z0.deltaX;let A0=U.sgt(),y0=l.scrollHeight-l.clientHeight,m0=Math.max(0,Math.min(A0+Z0.deltaY,y0));if(Math.abs(m0-A0)<1)return;Z0.preventDefault(),U.sst(m0),U2()};U.wh=G2,l.addEventListener("wheel",G2,{passive:!1})}let k2=(l)=>{let Z0=l.target.closest("[data-index]");if(!Z0)return null;let K0=parseInt(Z0.dataset.index??"-1",10);if(K0<0)return null;let A0=U.dm?.getItem(K0)??U.it[K0];if(!A0||A0.__groupHeader)return null;return{item:A0,index:K0}},t2=(l)=>{for(let K0=0;K0<z0.length;K0++)z0[K0](l);let Z0=k2(l);if(Z0)d.emit("item:click",{item:Z0.item,index:Z0.index,event:l})},e2=(l)=>{let Z0=k2(l);if(Z0)d.emit("item:dblclick",{item:Z0.item,index:Z0.index,event:l})},J1=(l)=>{for(let K0=0;K0<u0.length;K0++)u0[K0](l);let Z0=k2(l);if(Z0)d.emit("item:contextmenu",{item:Z0.item,index:Z0.index,event:l})},Q1=(l)=>{for(let Z0=0;Z0<h0.length;Z0++)h0[Z0](l)};if(N.items.addEventListener("click",t2),N.items.addEventListener("dblclick",e2),N.items.addEventListener("contextmenu",J1),N.root.addEventListener("keydown",Q1),E&&p){let l=null,Z0=(K0)=>{if(l)clearTimeout(l);l=setTimeout(()=>{if(l=null,U.id)return;let A0=U.vtf();N.liveRegion.textContent=`Showing items ${K0.range.start+1} to ${Math.min(K0.range.end+1,A0)} of ${A0}`},g)};d.on("range:change",Z0),o0.push(()=>{if(l)clearTimeout(l);d.off("range:change",Z0)})}let b2=new ResizeObserver((l)=>{if(U.id)return;for(let Z0 of l){let K0=Z0.contentRect.height,A0=Z0.contentRect.width,y0=j?A0:K0,m0=j?U.cw:U.ch;if(y0>X0){if(!L0)L0=!0,console.warn(`[vlist] Viewport grew to ${Math.round(y0)}px (screen: ${X0}px). Re-applying size constraint. Check that the vlist container has a CSS height/width constraint.`);let R0=j?"width":"height";N.root.style[R0]="100%",N.viewport.style[R0]="100%";return}if(U.cw=A0,U.ch=K0,Math.abs(y0-m0)>1){if(a.viewportState.containerSize=y0,U.ii){let R0=a.cachedCompression;if(R0&&R0.state.isCompressed){let d0=`${R0.state.virtualSize+H}px`;if(j)N.content.style.width=d0;else N.content.style.height=d0}else P();U.rfn(),d.emit("resize",{height:K0,width:A0})}}if(U.ii)for(let R0=0;R0<I0.length;R0++)I0[R0](A0,K0)}});if(U.vre)b2.observe(N.viewport);let R2={dom:N,emitter:d,resolvedConfig:o,rawConfig:J,rendered:x,pool:b,itemState:h,sharedState:a,renderRange:f,isHorizontal:j,classPrefix:_,contentSizeHandlers:X2,idleHandlers:b0,afterScroll:k0,clickHandlers:z0,contextMenuHandlers:u0,keydownHandlers:h0,resizeHandlers:I0,destroyHandlers:o0,methods:v0,onScrollFrame:U2,resizeObserver:b2,afterRenderBatch:a0,applyTemplate:D2,updateContentSize:P},O2=A1(U,R2);U.dm=E1(U,R2,O2),U.sc=L1(U,R2),v0.set("_updateRenderedItem",(l,Z0,K0,A0)=>{let y0=x.get(l);if(!y0)return;let m0={selected:K0,focused:A0};try{let R0=U.at(Z0,l,m0);D2(y0,R0,l)}catch(R0){let d0=R0 instanceof Error?R0:Error(String(R0));d.emit("error",{error:d0,context:`tpl(${l},${Z0.id})`,viewport:Y0()})}y0.dataset.id=String(Z0.id),U0(y0,K0,A0)});let q1=new WeakSet;v0.set("_setSizeCache",(l)=>{if(U.hc=l,U.gp>0&&!q1.has(l)){q1.add(l);let Z0=U.hc.getTotalSize,K0=U.gp;U.hc.getTotalSize=()=>{let A0=Z0();return A0>0?A0-K0:0}}}),v0.set("_setConstrainSize",(l)=>{U.csi=l});let j1=new Map;for(let l of n)if(l.methods)for(let Z0 of l.methods){let K0=j1.get(Z0);if(K0)throw Error(`[vlist] Method "${Z0}" is registered by both "${K0}" and "${l.name}"`);j1.set(Z0,l.name)}for(let l of n)try{l.setup(O2)}catch(Z0){let K0=Z0 instanceof Error?Z0:Error(String(Z0));console.error(`[vlist] Feature "${l.name}" setup failed:`,K0),d.emit("error",{error:K0,context:l.name,viewport:Y0()})}if(s&&!q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(E&&!v0.has("_getFocusedIndex")){let l=j?L.left:L.top,Z0=j?L.right:L.bottom;F1(U,N,_,y,j,l,Z0,S,v0,x,h0,z0,o0,!!J.focusOnClick)}if(U.ii=!0,O2.state.isInitialized=!0,P(),U.rfn(),r&&U.it.length>0){let l=U.gsp(U.it.length-1,U.hc,U.ch,U.it.length,"end");U.sst(l),U.ls=l,U.rfn()}return T1(U,N,d,x,b,v0,n,o0,O2,r,S,t2,e2,J1,Q1,U2,b2,()=>{},()=>{if(C)clearTimeout(C)})}var C2=200,v2=50;var H1=50,$1=12,k1=2,j2=16000000;var b1="x",R1=20,S2="_isPlaceholder",c0="__placeholder_";var P1=(J,q,j)=>{let Q=q.getTotalSize(),X=j===!0||Q>j2,Y=Q>j2?j2:Q,W=Q>0?Y/Q:1;return{isCompressed:X,actualSize:Q,virtualSize:Y,ratio:W}};var T2=(J,q,j,Q,X,Y,W)=>{if(!Y.isCompressed||Q===0)return j.getOffset(J);if(Y.ratio===1)return j.getOffset(J)-q;let{virtualSize:B}=Y,_=q/B,Z=j.getTotalSize(),A=_*Z;return j.getOffset(J)-A};var VJ=(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}},B2=(J,q,j={},Q="vlist",X=!1,Y)=>{let{autoHide:W=!0,autoHideDelay:B=1000,minThumbSize:_=15,showOnHover:Z=!0,showOnViewportEnter:A=!0,clickBehavior:K="scroll"}=j,$=K==="page"?"scroll":K,O=Y??J,D=VJ(j.padding),k=X?D.left:D.top,E=X?D.right:D.bottom,T=X?D.bottom:D.right,F=j.hoverZoneWidth??T+16,S=0,p=0,g=0,r=0,y=!1,M=!1,w=0,s=0,m=0,o=null,X0=!1,n=null,v=null,R=0,N=0,V=null,L=null,H=null,d=X?"width":"height",J0=X?"translateX":"translateY",c=X?(D0)=>D0.clientX:(D0)=>D0.clientY,j0=X?"left":"top",z=document.createElement("div"),I=document.createElement("div"),b=document.createElement("div"),U=X?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",C=()=>{if(O===J)return;let D0=J.offsetTop;z.style[X?"left":"top"]=D0?`calc(var(${U}) + ${D0}px)`:`var(${U})`,b.style[X?"left":"top"]=`${D0}px`},G=()=>{if(z.className=`${Q}-scrollbar`,I.className=`${Q}-scrollbar-thumb`,X)z.classList.add(`${Q}-scrollbar--horizontal`);if(j.padding!==void 0)O.style.setProperty("--vlist-custom-scrollbar-padding-top",`${D.top}px`),O.style.setProperty("--vlist-custom-scrollbar-padding-right",`${D.right}px`),O.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${D.bottom}px`),O.style.setProperty("--vlist-custom-scrollbar-padding-left",`${D.left}px`);if(j.minThumbSize!==void 0)z.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${_}px`);if(z.appendChild(I),O.appendChild(z),b.className=`${Q}-scrollbar-hover`,X)b.classList.add(`${Q}-scrollbar-hover--horizontal`),b.style.height=`${F}px`;else b.style.width=`${F}px`;if(O.appendChild(b),O!==J)C()},u=()=>{if(o)clearTimeout(o),o=null},f=()=>{if(!W)return;u(),o=setTimeout(a,B)},i=()=>{if(S<=p)return;if(u(),!X0)z.classList.add(`${Q}-scrollbar--visible`),X0=!0;if(W&&!y&&!M)f()},a=()=>{if(y||M)return;z.classList.remove(`${Q}-scrollbar--visible`),X0=!1},Y0=(D0,k0)=>{if(S=D0,p=k0,C(),S<=p){z.style.display="none",a();return}z.style.display="";let b0=Math.max(0,p-k-E),z0=p/S;if(g=Math.max(_,z0*b0),I.style[d]=`${g}px`,r=b0-g,x(m),!W)i()},x=(D0)=>{if(m=D0,S<=p||r<=0)return;let k0=S-p,b0=Math.min(1,Math.max(0,D0/k0));I.style.transform=`${J0}(${b0*r}px)`},e=(D0)=>{if(D0.target===I||$!=="jump"||r<=0)return;let k0=S-p,b0=z.getBoundingClientRect(),z0=c(D0)-b0[j0],u0=Math.max(0,Math.min(z0-g/2,r));q(u0/r*k0),i()},P=()=>{if(V!==null)clearTimeout(V),V=null;if(L!==null)cancelAnimationFrame(L),L=null;H=null},h=(D0)=>{let k0=r>0?N/D0*r:0;if(R<k0)return-1;if(R>=k0+g)return 1;return 0},Q0=()=>{let D0=S-p,k0=h(D0);if(k0===0){P();return}if(k0===-1){if(N<=0){P();return}let b0=Math.max(0,N-p);N=b0,q(b0)}else{if(N>=D0){P();return}let b0=Math.min(D0,N+p);N=b0,q(b0)}i()},t=(D0)=>{if(H===null){H=D0,L=requestAnimationFrame(t);return}let k0=S-p,b0=D0-H;H=D0;let z0=h(k0);if(z0===0){P();return}let u0=12*p/1000,h0=Math.min(u0*b0,p);if(z0===-1){if(N<=0){P();return}let I0=Math.max(0,N-h0);N=I0,q(I0)}else{if(N>=k0){P();return}let I0=Math.min(k0,N+h0);N=I0,q(I0)}u(),L=requestAnimationFrame(t)},V0=()=>{P(),f(),document.removeEventListener("mouseup",V0)},N0=(D0)=>{if(D0.target===I||$!=="scroll")return;D0.preventDefault();let k0=z.getBoundingClientRect();R=c(D0)-k0[j0],N=m,Q0(),V=setTimeout(()=>{L=requestAnimationFrame(t)},350),document.addEventListener("mouseup",V0)},U0=(D0)=>{D0.preventDefault(),D0.stopPropagation(),y=!0,w=c(D0),s=m,u(),z.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",W0),document.addEventListener("mouseup",M0)},W0=(D0)=>{if(!y)return;let k0=c(D0)-w,b0=r>0?k0/r:0,z0=S-p,u0=b0*z0,h0=Math.max(0,Math.min(s+u0,z0));if(I.style.transform=`${J0}(${h0/z0*r}px)`,v=h0,n===null)n=requestAnimationFrame(()=>{if(v!==null)q(v);n=null})},M0=()=>{if(y=!1,n!==null)cancelAnimationFrame(n),n=null;if(v!==null)q(v),v=null;if(z.classList.remove(`${Q}-scrollbar--dragging`),W&&!M)f();document.removeEventListener("mousemove",W0),document.removeEventListener("mouseup",M0)},$0=()=>{if(A)i()},H0=()=>{if(!y){if(M=!1,W)f()}},P0=()=>{M=!0,u(),i()},E0=()=>{if(M=!1,!y&&W)f()},w0=()=>{if(u(),P(),n!==null)cancelAnimationFrame(n),n=null;z.removeEventListener("click",e),z.removeEventListener("mousedown",N0),z.removeEventListener("mouseenter",P0),document.removeEventListener("mouseup",V0),z.removeEventListener("mouseleave",E0),I.removeEventListener("mousedown",U0),J.removeEventListener("mouseenter",$0),J.removeEventListener("mouseleave",H0),document.removeEventListener("mousemove",W0),document.removeEventListener("mouseup",M0),b.removeEventListener("click",e),b.removeEventListener("mousedown",N0),b.removeEventListener("mouseenter",P0),b.removeEventListener("mouseleave",E0),b.remove(),O.style.removeProperty("--vlist-custom-scrollbar-padding-top"),O.style.removeProperty("--vlist-custom-scrollbar-padding-right"),O.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),O.style.removeProperty("--vlist-custom-scrollbar-padding-left"),z.remove()};if(G(),z.addEventListener("click",e),z.addEventListener("mousedown",N0),z.addEventListener("mouseenter",P0),z.addEventListener("mouseleave",E0),I.addEventListener("mousedown",U0),J.addEventListener("mouseenter",$0),J.addEventListener("mouseleave",H0),b.addEventListener("click",e),b.addEventListener("mousedown",N0),Z)b.addEventListener("mouseenter",P0),b.addEventListener("mouseleave",E0);return{show:i,hide:a,updateBounds:Y0,updatePosition:x,isVisible:()=>X0,destroy:w0}};var f2=(J)=>{let q=null;return{name:"withScrollbar",priority:15,setup(j){let{dom:Q,config:X}=j,{classPrefix:Y,horizontal:W}=X;if(j.methods.has("_hasScrollbar"))Q.root.querySelector(`.${Y}-scrollbar`)?.remove(),Q.root.querySelector(`.${Y}-scrollbar-hover`)?.remove();j.methods.set("_hasScrollbar",()=>!0),q=B2(Q.viewport,(Z)=>j.scrollController.scrollTo(Z),J,Y,W,Q.root);let B=q,_=()=>{B.updateBounds(j.state.viewportState.totalSize||j.getCachedCompression().virtualSize,j.state.viewportState.containerSize)};if(Q.viewport.classList.add(`${Y}-viewport--custom-scrollbar`),J?.gutter)Q.viewport.classList.add(`${Y}-viewport--gutter`);_(),j.afterScroll.push((Z,A)=>{B.updatePosition(Z),B.show()}),j.resizeHandlers.push((Z,A)=>{_()}),j.contentSizeHandlers.push(()=>{_()}),j.destroyHandlers.push(()=>{B.destroy()})},destroy(){if(q)q.destroy(),q=null}}};var DJ=0.65,MJ=0.5,y1=1.7,GJ=0.95,OJ=0.1,AJ=5,EJ=100,w1=(J,q,j,Q=0)=>{if(J<=0)return 0;return Math.max(0,(q-Q)*(1-j)+Q)},h2=(J)=>{let q=J?.force??!1,j=null,Q=0,X=!1,Y=0,W=0,B=null,_=0,Z=0,A=null,K=[];return{name:"withScale",priority:20,setup($){let{dom:O,config:D}=$,{classPrefix:k,horizontal:E}=D,{root:T,viewport:F}=O,S=$.state.viewportState,p=E?"scrollLeft":"scrollTop",g=E?"overflowX":"overflow",r=g0($.rawConfig.padding),y=E?r.left+r.right:r.top+r.bottom,M=()=>{let N=$.getVirtualTotal(),V=P1(N,$.sizeCache,q);if(V.isCompressed&&!X){X=!0,$.scrollController.enableCompression(V);let H=F[p];if(F.style[g]="hidden",F[p]=0,H>0)Q=H,W=H;Y=w1(V.virtualSize,S.containerSize,V.ratio,y),$.updateContentSize(V.virtualSize+Y),$.setScrollFns(()=>Q,(U)=>{if(Q=U,W=U,B!==null)cancelAnimationFrame(B),B=null});let d=()=>{let U=W-Q;if($.getVirtualTotal()===0){Q=0,W=0,B=null,$.triggerScrollFrame();return}if(Math.abs(U)<MJ){let C=$.getCachedCompression(),G=Math.max(0,C.virtualSize+Y-S.containerSize);Q=Math.max(0,Math.min(W,G)),W=Q,B=null}else{Q+=U*DJ;let G=$.getCachedCompression().virtualSize+Y-S.containerSize;Q=Math.max(0,Math.min(Q,G)),B=requestAnimationFrame(d)}$.triggerScrollFrame()},J0=(U)=>{U.preventDefault();let C=$.getCachedCompression(),G=C.virtualSize+Y-S.containerSize;if(W=Math.max(0,Math.min(W+U.deltaY*C.ratio*y1,G)),B===null)B=requestAnimationFrame(d)};F.addEventListener("wheel",J0,{passive:!1});let c=()=>{if(A!==null)cancelAnimationFrame(A),A=null},j0=(U)=>{if(c(),B!==null)cancelAnimationFrame(B),B=null;let C=U.touches[0];if(!C)return;let G=E?C.clientX:C.clientY;_=G,Z=Q,K=[{time:performance.now(),y:G}]},z=(U)=>{U.preventDefault();let C=U.touches[0];if(!C)return;let G=E?C.clientX:C.clientY,u=performance.now();if(K.push({time:u,y:G}),K.length>AJ)K.shift();let f=_-G,i=$.getCachedCompression(),a=i.virtualSize+Y-S.containerSize,Y0=Math.max(0,Math.min(Z+f*i.ratio*y1,a));Q=Y0,W=Y0,$.triggerScrollFrame()},I=(U)=>{let C=performance.now(),G=K.filter((a)=>C-a.time<EJ),u=0;if(G.length>=2){let a=G[0],Y0=G[G.length-1],x=Y0.time-a.time;if(x>0)u=(a.y-Y0.y)/x}if(K=[],Math.abs(u)<OJ)return;let f=u*16,i=()=>{if(f*=GJ,Math.abs(f)<0.5){A=null;return}let Y0=$.getCachedCompression().virtualSize+Y-S.containerSize,x=Q+f;if(x=Math.max(0,Math.min(x,Y0)),x<=0&&f<0||x>=Y0&&f>0){Q=x,W=x,$.triggerScrollFrame(),A=null;return}Q=x,W=x,$.triggerScrollFrame(),A=requestAnimationFrame(i)};A=requestAnimationFrame(i)};F.addEventListener("touchstart",j0,{passive:!0}),F.addEventListener("touchmove",z,{passive:!1}),F.addEventListener("touchend",I,{passive:!0}),F.addEventListener("touchcancel",I,{passive:!0}),$.destroyHandlers.push(()=>{F.removeEventListener("wheel",J0),F.removeEventListener("touchstart",j0),F.removeEventListener("touchmove",z),F.removeEventListener("touchend",I),F.removeEventListener("touchcancel",I)});let b=()=>{if(F[p]!==0)F[p]=0};if(F.addEventListener("scroll",b,{passive:!0}),$.destroyHandlers.push(()=>{F.removeEventListener("scroll",b)}),!$.methods.has("_hasScrollbar")){if($.methods.set("_hasScrollbar",()=>!0),j=B2(F,(C)=>$.scrollController.scrollTo(C),{},k,E,T),!F.classList.contains(`${k}-viewport--custom-scrollbar`))F.classList.add(`${k}-viewport--custom-scrollbar`);j.updateBounds(V.virtualSize,S.containerSize);let U=j;$.afterScroll.push((C,G)=>{if(U)U.updatePosition(C),U.show()}),$.resizeHandlers.push((C,G)=>{if(U){let u=$.getCachedCompression();U.updateBounds(u.virtualSize,S.containerSize)}})}}else if(!V.isCompressed&&X){if(X=!1,B!==null)cancelAnimationFrame(B),B=null;if(A!==null)cancelAnimationFrame(A),A=null;if(Q=0,W=0,K=[],$.setScrollFns(()=>F[p],(H)=>{F[p]=H}),F[p]=0,$.scrollController.disableCompression(),F.style[g]="auto",j)j.destroy(),j=null;Y=0,$.updateContentSize(V.actualSize)}else if(V.isCompressed)$.scrollController.updateConfig({compression:V}),Y=w1(V.virtualSize,S.containerSize,V.ratio,y),$.updateContentSize(V.virtualSize+Y);if(j)j.updateBounds(V.virtualSize+Y,S.containerSize);let L=S;if(L.isCompressed=V.isCompressed,L.compressionRatio=V.ratio,L.totalSize=V.virtualSize+Y,L.actualSize=V.actualSize,$.state.cachedCompression={state:V,totalItems:N},X){let H=Math.max(0,V.virtualSize+Y-S.containerSize),d=Q;if(d>H)d=H;else if(d<0)d=0;if(d!==Q){if(B!==null)cancelAnimationFrame(B),B=null;if(A!==null)cancelAnimationFrame(A),A=null;$.scrollController.scrollTo(d)}}for(let H=0;H<$.contentSizeHandlers.length;H++)$.contentSizeHandlers[H]()};$.updateCompressionMode=M;let w=$.getCachedCompression.bind($);$.getCachedCompression=()=>{if($.state.cachedCompression)return $.state.cachedCompression.state;return w()},$.setVisibleRangeFn((N,V,L,H,d)=>{if(m=null,o=null,H===0||V===0){d.start=0,d.end=-1;return}let J0=$.getCachedCompression();if(!J0.isCompressed||J0.ratio===1){let z=L.indexAtOffset(N),I=L.indexAtOffset(N+V);if(I<H-1)I++;d.start=Math.max(0,z),d.end=Math.min(H-1,Math.max(0,I));return}let c=L.indexAtOffset(N/J0.virtualSize*J0.actualSize),j0;if(!L.isVariable())j0=Math.ceil(V/L.getSize(0));else{j0=0;let z=0,I=c;while(I<H&&z<V)z+=L.getSize(I),j0++,I++;if(j0<1)j0=1}d.start=Math.max(0,c),d.end=Math.min(H-1,Math.max(0,c+j0))}),$.setScrollToPosFn((N,V,L,H,d)=>{if(H===0)return 0;let J0=$.getCachedCompression(),c=V.getSize(N),j0;if(J0.isCompressed&&J0.ratio!==1){if(j0=N/H*J0.virtualSize,d==="center")j0-=(L-c)/2*J0.ratio;else if(d==="end")j0-=(L-c)*J0.ratio;return Math.max(0,j0)}if(j0=V.getOffset(N),d==="center")j0-=(L-c)/2;else if(d==="end")j0-=L-c;return Math.max(0,Math.min(j0,J0.virtualSize-L))});let s=NaN,m=null,o=null,X0=E?"translateX":"translateY";$.setPositionElementFn((N,V)=>{let L=$.scrollController.getScrollTop(),H=$.getCachedCompression();if(L!==s)s=L,m=null,o=null;if(H.isCompressed){if(m===null||V<o){o=V;let J0=$.sizeCache.getOffset(V);m=Math.round(H.ratio===1?J0-L:J0-L/H.virtualSize*H.actualSize)}let d=m+$.sizeCache.getOffset(V)-$.sizeCache.getOffset(o);N.style.transform=`${X0}(${d}px)`}else{let d=Math.round($.sizeCache.getOffset(V));N.style.transform=`${X0}(${d}px)`}});let n=E?r.left:r.top,v=E?r.right:r.bottom,R=$.getItemToScrollIndexFn();$.methods.set("_scrollItemIntoView",(N)=>{let V=$.getCachedCompression(),L=S.containerSize,H=S.scrollPosition,d=$.getVirtualTotal(),{visibleRange:J0}=S,c=R(N),j0=F2(c,$.sizeCache,H,L,n,v,V,d,J0);if(j0!==H)$.scrollController.scrollTo(j0)}),M(),$.destroyHandlers.push(()=>{if(j)j.destroy(),j=null;if(B!==null)cancelAnimationFrame(B),B=null;if(A!==null)cancelAnimationFrame(A),A=null})}}};var z1=(J={})=>{let{chunkSize:q=100,maxCachedItems:j=5000,evictionBuffer:Q=200,onEvict:X}=J,Y=new Map,W=0,B=0,_=(v)=>{let R=Y.get(v);if(!R)R={items:Array(q),count:0,lastAccess:Date.now()},Y.set(v,R);else R.lastAccess=Date.now();return R},Z=(v)=>{return Math.floor(v/q)},A=(v)=>{return v%q},K=()=>W,$=(v)=>{W=v},O=(v)=>{if(v<0||v>=W)return;let R=Z(v),N=Y.get(R);if(!N)return;return N.items[A(v)]},D=(v)=>{if(v<0||v>=W)return!1;let R=Z(v),N=Y.get(R);if(!N)return!1;return N.items[A(v)]!==void 0},k=(v,R)=>{let N=Z(v),V=_(N),L=A(v),H=V.items[L]===void 0;if(V.items[L]=R,H)V.count++,B++;if(v>=W)W=v+1},E=(v,R)=>{for(let N=0;N<R.length;N++){let V=R[N];if(V!==void 0)k(v+N,V)}},T=(v)=>{if(v<0||v>=W)return!1;let R=Z(v),N=Y.get(R),V=A(v);if(!(N!==void 0&&N.items[V]!==void 0))return!1;let H=R,d=Array.from(Y.keys()).filter((c)=>c>=H).sort((c,j0)=>c-j0),J0=[];for(let c of d){let j0=Y.get(c),z=c*q;for(let I=0;I<q;I++){if(j0.items[I]===void 0)continue;let b=z+I;if(b<=v)continue;J0.push({oldIndex:b,item:j0.items[I]})}}if(N.items[V]=void 0,N.count--,B--,N.count===0)Y.delete(R);for(let{oldIndex:c}of J0){let j0=Z(c),z=Y.get(j0);if(!z)continue;let I=A(c);if(z.items[I]!==void 0){if(z.items[I]=void 0,z.count--,B--,z.count===0)Y.delete(j0)}}for(let{oldIndex:c,item:j0}of J0){let z=c-1,I=Z(z),b=_(I),U=A(z);b.items[U]=j0,b.count++,B++}return W--,!0},F=(v,R)=>{let N=[];for(let V=v;V<=R&&V<W;V++)N.push(O(V));return N},S=(v,R)=>{for(let N=v;N<=R&&N<W;N++)if(!D(N))return!1;return!0},p=()=>{let v=[],R=null,N=Array.from(Y.keys()).sort((V,L)=>V-L);for(let V of N){let L=Y.get(V);if(!L)continue;let H=V*q;for(let d=0;d<q;d++){let J0=H+d;if(J0>=W)break;if(L.items[d]!==void 0)if(R===null)R={start:J0,end:J0};else if(J0===R.end+1)R.end=J0;else v.push(R),R={start:J0,end:J0};else if(R!==null)v.push(R),R=null}}if(R!==null)v.push(R);return v},g=(v,R)=>{let N=[],V=null;for(let L=v;L<=R&&L<W;L++)if(!D(L))if(V===null)V={start:L,end:L};else V.end=L;else if(V!==null)N.push(V),V=null;if(V!==null)N.push(V);return N},r=(v)=>{return Y.has(v)},y=(v)=>{let R=Y.get(v);if(R)R.lastAccess=Date.now()},M=(v,R)=>{if(v>R||Y.size===0)return;let N=Date.now(),V=Z(Math.max(0,v)),L=Z(Math.min(W-1,R));for(let H=V;H<=L;H++){let d=Y.get(H);if(d)d.lastAccess=N}},w=(v,R)=>{if(B<=j)return 0;let N=Math.max(0,v-Q),V=Math.min(W-1,R+Q),L=Z(N),H=Z(V),d=0,J0=[];for(let[c,j0]of Y)if(c<L||c>H)d+=j0.count,J0.push(c),B-=j0.count,Y.delete(c);if(d>0&&X)X(d,J0);return d},s=()=>{if(B<=j)return 0;let v=Array.from(Y.entries()).sort(([,V],[,L])=>V.lastAccess-L.lastAccess),R=0,N=[];for(let[V,L]of v){if(B<=j)break;R+=L.count,B-=L.count,N.push(V),Y.delete(V)}if(R>0&&X)X(R,N);return R},m=()=>{return{totalItems:W,cachedItems:B,cachedChunks:Y.size,chunkSize:q,maxCachedItems:j,memoryEfficiency:W>0?1-B/W:1}},o=()=>B,X0=()=>{Y.clear(),B=0};return{chunkSize:q,maxCachedItems:j,getTotal:K,setTotal:$,get:O,has:D,set:k,setRange:E,delete:T,getRange:F,isRangeLoaded:S,getLoadedRanges:p,findUnloadedRanges:g,getChunkIndex:Z,isChunkLoaded:r,touchChunk:y,touchChunksForRange:M,evictDistant:w,evictToLimit:s,getStats:m,getCachedCount:o,clear:X0,reset:()=>{X0(),W=0}}};var C1=(J={})=>{let{maskCharacter:q=b1,maxSampleSize:j=R1}=J,Q=[],X=!1,Y=(A)=>{if(X||A.length===0)return;let K=Math.min(A.length,j);for(let $=0;$<K;$++){let O=A[$];if(!O||typeof O!=="object")continue;let D={},k=!1;for(let[E,T]of Object.entries(O)){if(E.startsWith("_")||E==="id")continue;D[E]=String(T??"").length,k=!0}if(k)Q.push(D)}X=!0},W=()=>X,B=(A)=>{let K={id:`${c0}${A}`,[S2]:!0,_index:A};if(Q.length===0)return K.label=q.repeat(12),K;let $=Q[A%Q.length];for(let[O,D]of Object.entries($))K[O]=q.repeat(Math.max(1,D));return K};return{analyzeStructure:Y,hasAnalyzedStructure:W,generate:B,generateRange:(A,K)=>{let $=[];for(let O=A;O<=K;O++)$.push(B(O));return $},clear:()=>{Q=[],X=!1}}},H2=(J)=>{if(!J||typeof J!=="object")return!1;return J[S2]===!0};var LJ=50,v1=(J={})=>{let{adapter:q,initialItems:j,initialTotal:Q,storage:X,placeholder:Y,pageSize:W=LJ,onStateChange:B,onItemsLoaded:_,onItemsEvicted:Z}=J,A=z1({...X,onEvict:(x,e)=>{Z?.(x),y()}}),K=null,$=()=>{if(!K)K=C1(Y);return K},O=new Map,D=!1,k,E=!0,T,F,S=[],p=0,g=new Map,r=()=>{for(let x of g.values())x[1].abort();g.clear()},y=()=>{B?.(R())},M=()=>{O.clear();let x=A.getLoadedRanges();for(let e of x)for(let P=e.start;P<=e.end;P++){let h=A.get(P);if(h&&!H2(h))O.set(h.id,P)}},w=(x,e)=>{if(!H2(e))O.set(e.id,x)},s=(x)=>{O.delete(x)},m=(x,e)=>{return`${x}-${e}`},o=()=>A.getTotal(),X0=()=>A.getCachedCount(),n=()=>D,v=()=>E,R=()=>({total:A.getTotal(),cached:A.getCachedCount(),isLoading:D,pendingRanges:S,error:k,hasMore:E,cursor:T}),N=()=>A,V=()=>$(),L=(x)=>{let e=A.get(x);if(e!==void 0)return e;if(x>=0&&x<A.getTotal())return $().generate(x);return},H=(x)=>{let e=O.get(x);if(e===void 0)return;return A.get(e)},d=(x)=>{return O.get(x)??-1},J0=(x)=>{let e=A.get(x);return e!==void 0&&!H2(e)},c=(x,e)=>{let P=[],h=A.getTotal();A.touchChunksForRange(x,Math.min(e,h-1));for(let Q0=x;Q0<=e&&Q0<h;Q0++){let t=A.get(Q0);if(t!==void 0)P.push(t);else P.push($().generate(Q0))}return P},j0=(x)=>{A.setTotal(x),E=A.getCachedCount()<x,y()},z=(x,e=0,P)=>{if(q&&x.length>0){let h=$();if(!h.hasAnalyzedStructure())h.analyzeStructure(x)}for(let h=0;h<x.length;h++){let Q0=x[h];if(Q0!==void 0){let t=e+h;A.set(t,Q0),w(t,Q0)}}if(P!==void 0)A.setTotal(P);else if(e+x.length>A.getTotal())A.setTotal(e+x.length);if(A.getCachedCount()>=A.getTotal()&&A.getTotal()>0)E=!1;y(),_?.(x,e,A.getTotal())},I=(x,e)=>{let P=A.get(x);if(!P)return!1;let h=P.id,Q0={...P,...e};if(A.set(x,Q0),e.id!==void 0&&e.id!==h)s(h);return w(x,Q0),y(),!0},b=(x)=>{let e=O.get(x);if(e===void 0)return!1;if(!A.delete(e))return!1;return M(),r(),y(),!0},U=async(x,e)=>{if(!q)return;let P=A.chunkSize,h=Math.floor(x/P),Q0=Math.floor(e/P),t=P*2;for(let[U0,W0]of g){let M0=U0.indexOf("-"),$0=parseInt(U0.slice(0,M0),10);if(Math.abs($0-x)>t)W0[1].abort(),g.delete(U0)}let V0=[],N0=[];for(let U0=h;U0<=Q0;U0++){let W0=U0*P,M0=W0+P-1,$0=m(W0,M0);if(A.isChunkLoaded(U0))continue;let H0=g.get($0);if(H0)N0.push(H0[0]);else V0.push({start:W0,end:M0})}if(V0.length===0)return;for(let U0 of V0){let W0=m(U0.start,U0.end),M0=new AbortController,$0=(async()=>{S.push(U0),D=!0,k=void 0,y();try{let H0=U0.end-U0.start+1,P0={offset:U0.start,limit:H0,cursor:U0.start===F?T:void 0,signal:M0.signal},E0=await q.read(P0);if(z(E0.items,U0.start,E0.total),E0.cursor)T=E0.cursor,F=U0.start+E0.items.length;let w0=U0.start+E0.items.length;if(w0>=p){if(p=w0,E0.hasMore!==void 0)E=E0.hasMore;else if(E0.total!==void 0)E=w0<E0.total}}catch(H0){if(H0?.name==="AbortError")return;k=H0 instanceof Error?H0:Error(String(H0))}finally{g.delete(W0),S=S.filter((H0)=>H0.start!==U0.start||H0.end!==U0.end),D=g.size>0,y()}})();g.set(W0,[$0,M0]),N0.push($0)}await Promise.all(N0)},C=async(x,e)=>{if(A.isRangeLoaded(x,e))return;await U(x,e)},G=async()=>{if(!q)return;await U(0,W-1)},u=async()=>{if(!q||D||!E)return!1;let x=A.getCachedCount(),e=A.getTotal(),P=x,h=Math.min(P+W-1,e>0?e-1:P+W-1);if(P>=e&&e>0)return E=!1,!1;return await U(P,h),A.getCachedCount()>x},f=async()=>{if(A.clear(),A.setTotal(0),O.clear(),K)K.clear();r(),S=[],D=!1,T=void 0,F=void 0,E=!0,p=0,k=void 0,y()},i=(x,e)=>{if(A.evictDistant(x,e)>0)M()},a=()=>{A.clear(),O.clear(),T=void 0,F=void 0,k=void 0,S=[],D=!1,y()},Y0=()=>{if(A.reset(),O.clear(),K)K.clear();T=void 0,F=void 0,E=!0,p=0,k=void 0,S=[],D=!1,y()};if(j&&j.length>0)z(j,0,Q??j.length);else if(Q!==void 0)A.setTotal(Q),y();return{getState:R,getTotal:o,getCached:X0,getIsLoading:n,getHasMore:v,getStorage:N,getPlaceholders:V,getItem:L,getItemById:H,getIndexById:d,isItemLoaded:J0,getItemsInRange:c,setTotal:j0,setItems:z,updateItem:I,removeItem:b,loadRange:U,ensureRange:C,loadInitial:G,loadMore:u,reload:f,evictDistant:i,clear:a,reset:Y0}};var I2=(J)=>{let{adapter:q,loading:j,storage:Q,total:X,autoLoad:Y=!0}=J,W=j?.cancelThreshold??$1,B=j?.preloadThreshold??k1,_=j?.preloadAhead??H1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(Z){let{emitter:A}=Z,K=Z.config.reverse,$=Z.methods.get("_getGridLayout"),O=(R)=>{let N=Z.methods.get("_getGroupBridge");if(N){let V=N();if(V&&V.groupCount>0){let L=V.layoutToDataIndex(R.start),H=V.layoutToDataIndex(R.end);if(L<0){for(let d=R.start+1;d<=R.end;d++)if(L=V.layoutToDataIndex(d),L>=0)break}if(H<0){for(let d=R.end-1;d>=R.start;d--)if(H=V.layoutToDataIndex(d),H>=0)break}if(L>=0&&H>=0)return{start:L,end:H}}}if($){let V=$();if(V){let L=Z.dataManager.getTotal();return V.getItemRange(R.start,R.end,L)}}return R};Z.methods.set("_isAsync",()=>!0);let D=null;Z.methods.set("_onItemsLoaded",(R)=>{(D??=[]).push(R)});let k=(R)=>{A.emit("error",{error:R,context:"ensureRange"})},E=(R)=>{A.emit("error",{error:R,context:"loadMore"})},T=(R,N)=>Z.dataManager.ensureRange(R,N),F=(R,N=v2)=>{A.emit("load:start",{offset:R,limit:N})},S=v1({adapter:q,...X!==void 0&&{initialTotal:X},pageSize:Q?.chunkSize??v2,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(Z.state.isInitialized){let R=Z.getVirtualTotal();if(R!==Z.sizeCache.getTotal())Z.sizeCache.rebuild(R);Z.updateCompressionMode();let N=Z.getCachedCompression();Z.state.viewportState.totalSize=N.virtualSize,Z.state.viewportState.actualSize=N.actualSize,Z.state.viewportState.isCompressed=N.isCompressed,Z.state.viewportState.compressionRatio=N.ratio,Z.updateContentSize(N.virtualSize),Z.renderIfNeeded()}},onItemsLoaded:(R,N,V)=>{if(Z.state.isInitialized){if(D)for(let L of D)L(R,N,V);Z.forceRender(),A.emit("load:end",{items:R,total:V,offset:N})}}});Z.replaceDataManager(S);let p=null,g=null,r=0,y=!1,M=null,w=120,s=(R=!1)=>{if(y=!1,g=null,R)p=null;if(M!==null)clearTimeout(M),M=null},m=()=>{if(!g)return;g=null;let{renderRange:R}=Z.state.viewportState;if(R.end<R.start)return;p=null;let N=O(R);T(N.start,N.end).catch(k)};Z.afterScroll.push((R,N)=>{if(Z.state.isDestroyed)return;let V=Z.scrollController.getVelocity(),H=Z.scrollController.isTracking()&&V<=W;if(r>W&&V<=W)y=!0;else if(y&&V>W)s();if(y&&V<0.5)s(!0);if(r=V,(Z.scrollController.isAtTop()||Z.scrollController.isAtBottom())&&(y||g))s(!0),H=!0;let J0=y&&V>0.5;if(H&&!Z.dataManager.getIsLoading()&&Z.dataManager.getHasMore()){if(K?R<C2:Z.state.viewportState.totalSize-R-Z.state.viewportState.containerSize<C2)F(Z.dataManager.getCached()),Z.dataManager.loadMore().catch(E)}let{renderRange:c}=Z.state.viewportState;if(!p||c.start!==p.start||c.end!==p.end){if(p={start:c.start,end:c.end},H&&!J0){if(g=null,M!==null)clearTimeout(M),M=null;let z=O(c),I=z.start,b=z.end,U=$?Z.dataManager.getTotal():Z.getVirtualTotal();if(V>B)if(N==="down")b=Math.min(z.end+_,U-1);else I=Math.max(z.start-_,0);T(I,b).catch(k)}else if(g={start:c.start,end:c.end},J0){if(M!==null)clearTimeout(M);M=setTimeout(()=>{M=null,m(),s()},w)}}});let o=200,X0=null;Z.afterScroll.push((R,N)=>{if(X0!==null)clearTimeout(X0);X0=setTimeout(()=>{X0=null,m(),s()},o)}),Z.destroyHandlers.push(()=>{if(X0!==null)clearTimeout(X0),X0=null;s()});let n=()=>{if(Z.state.isDestroyed)return;p=null;let{renderRange:R}=Z.state.viewportState;if(R.end>0){let N=O(R);T(N.start,N.end).catch(k)}m()};window.addEventListener("online",n),Z.destroyHandlers.push(()=>{window.removeEventListener("online",n)}),A.on("load:start",()=>{Z.dom.root.setAttribute("aria-busy","true")}),A.on("load:end",()=>{Z.dom.root.removeAttribute("aria-busy")}),Z.methods.set("loadVisibleRange",async()=>{p=null,g=null,Z.forceRender();let{renderRange:R}=Z.state.viewportState;if(R.end>0){let N=O(R);F(N.start,N.end-N.start+1),await T(N.start,N.end)}}),Z.methods.set("reload",async(R)=>{p=null,g=null;let N=R?.snapshot,V=N!=null&&(N.total??0)>0&&N.index>0,L=V||R?.skipInitialLoad===!0;if(Z.invalidateRendered(),await Z.dataManager.reload(),!V)Z.scrollController.scrollTo(0);if(!L){F(0),await Z.dataManager.loadInitial(),Z.forceRender();let{renderRange:H}=Z.state.viewportState;if(H.end>0){let d=O(H);await T(d.start,d.end)}}if(V){let H=Z.methods.get("restoreScroll");if(H)H(N)}});let v=!1;if(Z.methods.set("_cancelAutoLoad",()=>{v=!0}),Y)queueMicrotask(()=>{if(v)return;F(0),Z.dataManager.loadInitial().catch((R)=>{A.emit("error",{error:R,context:"loadInitial"})})});else if(X!==void 0)Z.dataManager.setTotal(X)}}};var $2=(J)=>J==null?0:typeof J==="function"?J():J,p2=(J)=>{let q,j=J?.scrollPadding;return{name:"withPage",priority:5,setup(Q){let{dom:X,state:Y,config:W,emitter:B}=Q,_=W.horizontal,Z=window;if(X.root.style.overflow="visible",X.root.style.height="auto",_)X.viewport.style.overflowX="visible",X.viewport.style.overflowY="visible";else X.viewport.style.overflow="visible";if(X.viewport.classList.remove(`${W.classPrefix}-viewport--custom-scrollbar`),Q.disableViewportResize(),Q.disableWheelHandler(),Q.setScrollTarget(Z),Q.setScrollFns(()=>{let O=X.viewport.getBoundingClientRect();return Math.max(0,_?-O.left:-O.top)},(O)=>{let D=X.viewport.getBoundingClientRect(),k=(_?D.left+Z.scrollX:D.top+Z.scrollY)+O;if(_)Z.scrollTo({left:k,top:Z.scrollY,behavior:"instant"});else Z.scrollTo({left:Z.scrollX,top:k,behavior:"instant"})}),Q.setContainerDimensions({width:()=>Z.innerWidth,height:()=>Z.innerHeight}),Y.viewportState.containerSize=Z.innerHeight,j){let O=Q.getItemToScrollIndexFn();Q.setScrollToPosFn((D,k,E,T,F)=>{let S=$2(_?j.left:j.top),p=$2(_?j.right:j.bottom);if(T===0)return 0;let g=Math.max(0,Math.min(D,T-1)),r=k.getOffset(g),y=k.getSize(g),M=k.getTotalSize(),w=Math.max(0,M-E+p),s=F==="start"?r-S:F==="center"?r-S-(E-S-p-y)/2:r-E+y+p;return Math.max(-S,Math.min(s,w))}),Q.methods.set("_scrollItemIntoView",(D)=>{let k=O(D),E=_?Z.innerWidth:Z.innerHeight,T=$2(_?j.left:j.top),F=$2(_?j.right:j.bottom),S=X.viewport.getBoundingClientRect(),p=_?Z.scrollX:Z.scrollY,g=_?S.left:S.top,r=g+p,y=Q.sizeCache.getOffset(k),M=Q.sizeCache.getSize(k),w=g+y,s=E-F,m=p;if(w<T)m=r+y-T;else if(w+M>s)m=r+y+M-s;if(m!==p)if(_)Z.scrollTo({left:m,top:Z.scrollY,behavior:"instant"});else Z.scrollTo({left:Z.scrollX,top:m,behavior:"instant"})})}let{innerHeight:A,innerWidth:K}=Z,$=()=>{let{innerWidth:O,innerHeight:D}=Z;if(Math.abs(_?O-K:D-A)>1){A=D,K=O,Y.viewportState.containerSize=D,B.emit("resize",{width:O,height:D});for(let k=0;k<Q.resizeHandlers.length;k++)Q.resizeHandlers[k](O,D);Q.renderIfNeeded()}};Z.addEventListener("resize",$),q=()=>Z.removeEventListener("resize",$),Q.destroyHandlers.push(q)},destroy(){q?.(),q=void 0}}};var s0=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let X=j+Q+1>>>1;if(J[X].headerLayoutIndex<=q)j=X;else Q=X-1}return j},_2=(J,q)=>{let j=0,Q=J.length-1;while(j<Q){let X=j+Q+1>>>1;if(J[X].firstDataIndex<=q)j=X;else Q=X-1}return j},S1=(J,q,j)=>{if(J===0)return[];let Q=[],X=q(0,j?.(0)),Y=0,W=0;for(let B=1;B<J;B++){let _=q(B,j?.(B));if(_!==X){let Z=B-Y;Q.push({key:X,groupIndex:Q.length,headerLayoutIndex:W,firstDataIndex:Y,count:Z}),W=W+1+Z,X=_,Y=B}}return Q.push({key:X,groupIndex:Q.length,headerLayoutIndex:W,firstDataIndex:Y,count:J-Y}),Q},u2=(J,q)=>{if(J.length===0||q.length===0)return[];let j=J.length+q.length,Q=Array(j),X=0;for(let Y of q){Q[X]={id:`__group_header_${Y.groupIndex}`,__groupHeader:!0,groupKey:Y.key,groupIndex:Y.groupIndex},X++;for(let W=0;W<Y.count;W++)Q[X]=J[Y.firstDataIndex+W],X++}return Q};var f1=(J,q,j)=>{let Q=S1(J,q.getGroupForIndex,j),X=J+Q.length,Y=q.header?.height??q.header?.width??q.headerHeight;return{get totalEntries(){return X},get groupCount(){return Q.length},get groups(){return Q},getEntry:(O)=>{if(Q.length===0)return{type:"item",dataIndex:O,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let D=s0(Q,O),k=Q[D];if(O===k.headerLayoutIndex)return{type:"header",group:k};let E=O-k.headerLayoutIndex-1;return{type:"item",dataIndex:k.firstDataIndex+E,group:k}},layoutToDataIndex:(O)=>{if(Q.length===0)return O;let D=s0(Q,O),k=Q[D];if(O===k.headerLayoutIndex)return-1;let E=O-k.headerLayoutIndex-1;return k.firstDataIndex+E},dataToLayoutIndex:(O)=>{if(Q.length===0)return O;let D=_2(Q,O),k=Q[D],E=O-k.firstDataIndex;return k.headerLayoutIndex+1+E},getGroupAtLayoutIndex:(O)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=s0(Q,O);return Q[D]},getGroupAtDataIndex:(O)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let D=_2(Q,O);return Q[D]},getHeaderHeight:typeof Y==="number"?(O)=>Y:(O)=>{let D=Q[O];if(!D)return 0;return Y(D.key,O)},rebuild:(O,D)=>{Q=S1(O,q.getGroupForIndex,D??j),X=O+Q.length}}};var g2=(J,q,j,Q,X=0)=>{let Y=j?"width":"height",W=document.createElement("div");return W.className=`${q}-sticky-header`,W.setAttribute("role","presentation"),W.setAttribute("aria-hidden","true"),W.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(j?`top:0;bottom:0;left:${X||0}px`:`top:${X||0}px`),W.style[Y]=`${Q}px`,J.insertBefore(W,J.firstChild),W},m2=(J,q,j,Q,X,Y=!1,W=0,B,_)=>{let Z=Y?"width":"height",A=Y?"height":"width",K=Y?"X":"Y",$=(C,G)=>{C.style[Z]=`${G}px`},O=_??g2(J,X,Y,0,W),D=()=>{let C=document.createElement("div");return C.className="sticky-group",C.style.position="absolute",C.style.willChange="transform",C.style[A]="100%",C},k=D(),E=D();O.append(k,E);let T=k,F=E,S=q.groups,p=[],g=[],r=[],y=0,M=()=>{S=q.groups,y=S.length,p=Array(y),g=Array(y),r=Array(y);let C=B?B():1;for(let G=0;G<y;G++)p[G]=j.getOffset(S[G].headerLayoutIndex)*C,g[G]=q.getHeaderHeight(G),r[G]=g[G]*C};M();let w=-1,s=0,m=0,o=-1,X0=!1,n=0,v=!1,R=(C,G)=>{Q(C,G);let u=g[G];return $(C,u),u},N=(C)=>{C.replaceChildren(),C.style.transform=""},V=(C)=>{if(C===w)return;if(w=C,s=0,m=0,C<0||C>=y){N(T);return}s=R(T,C),m=r[C],$(O,s),T.style.transform=""},L=(C)=>{if(C===n)return;n=C;let G=Math.round(C);T.style.transform=`translate${K}(${G}px)`,F.style.transform=`translate${K}(${G+s}px)`},H=()=>{n=0,T.style.transform="",F.style.transform=""},d=()=>{if(!v)return;let C=T;T=F,F=C,w=o,s=w>=0?g[w]:0,m=w>=0?r[w]:0,$(O,s),N(F),o=-1,v=!1,H()},J0=()=>{if(!v)return;N(F),o=-1,v=!1,H()},c=!!_,j0=()=>{if(X0)return;if(X0=!0,c)O.style.visibility="";else O.style.display=""},z=()=>{if(!X0)return;if(X0=!1,c)O.style.visibility="hidden";else O.style.display="none";N(T),w=-1,s=0,m=0,J0()},I=(C)=>{if(y===0){z();return}if(C<p[0]){z();return}let G=0,u=y-1;while(G<u){let i=G+u+1>>>1;if(p[i]+r[i]<=C)G=i;else u=i-1}if(!X0)j0();V(G);let f=G+1;if(f<y){let i=p[f]-C;if(i<=0&&i>-m){if(o!==f||!v)o=f,R(F,f),v=!0;let a=m>0?i/m*s:i;L(a)}else if(i<=-m){if(v)d()}else if(v)J0()}else if(v)J0()},b=()=>{M();let C=w;if(w=-1,s=0,m=0,C>=0)V(C)},U=()=>{O.remove(),w=-1,s=0,m=0,o=-1,X0=!1,v=!1};if(!_)O.style.display="none";return{update:I,refresh:b,show:j0,hide:z,destroy:U}};var x0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var h1={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},I1=(J,q,j)=>{let Q=[],X=0,Y=0,W=new Map,B=()=>{if(Q=[],X===0||W.size===0){Y=X;return}let F=null,S=-1,p=0;for(let g=0;g<X;g++){let r=W.get(g);if(r===void 0){if(F!==null&&S>=0){let y=g-S;Q.push({key:F,groupIndex:Q.length,headerLayoutIndex:S+p,firstDataIndex:S,count:y}),p++,F=null,S=-1}continue}if(r!==F){if(F!==null&&S>=0){let y=g-S;Q.push({key:F,groupIndex:Q.length,headerLayoutIndex:S+p,firstDataIndex:S,count:y}),p++}F=r,S=g}}if(F!==null&&S>=0){let g=X-S;Q.push({key:F,groupIndex:Q.length,headerLayoutIndex:S+p,firstDataIndex:S,count:g}),p++}Y=X+p};return{onItemsLoaded:(F,S,p)=>{X=p;for(let g=0;g<F.length;g++){let r=S+g,y=F[g];if(y!==void 0){let M=J.getGroupForIndex(r,y);W.set(r,M)}}B()},get totalEntries(){return Y},get groupCount(){return Q.length},get groups(){return Q},isHeader:(F)=>{if(Q.length===0)return!1;let S=s0(Q,F),p=Q[S];return F===p.headerLayoutIndex},getHeaderItem:(F)=>{if(Q.length===0)return;let S=s0(Q,F),p=Q[S];if(F!==p.headerLayoutIndex)return;return{id:`__group_header_${p.groupIndex}`,__groupHeader:!0,groupKey:p.key,groupIndex:p.groupIndex}},layoutToDataIndex:(F)=>{if(Q.length===0)return F;let S=s0(Q,F),p=Q[S];if(F===p.headerLayoutIndex)return-1;let g=F-p.headerLayoutIndex-1;return p.firstDataIndex+g},dataToLayoutIndex:(F)=>{if(Q.length===0)return F;let S=_2(Q,F),p=Q[S],g=F-p.firstDataIndex;return p.headerLayoutIndex+1+g},getHeaderHeight:(F)=>J.headerHeight,getGroupAtLayoutIndex:(F)=>{if(Q.length===0)return h1;let S=s0(Q,F);return Q[S]},getGroupAtDataIndex:(F)=>{if(Q.length===0)return h1;let S=_2(Q,F);return Q[S]},removeAt:(F)=>{let S=new Map;for(let[p,g]of W)if(p<F)S.set(p,g);else if(p>F)S.set(p-1,g);W.clear();for(let[p,g]of S)W.set(p,g);X--,B()},reset:()=>{Q=[],X=0,Y=0,W.clear()}}};var p1=(J,q,j,Q,X,Y)=>{if(Q===0)return 0;let W=Math.max(0,Math.min(J,Q-1)),B=q.getOffset(W),_=q.getSize(W),Z=q.getTotalSize(),A=Math.max(0,Z-j),K;switch(Y){case"center":K=B-j/2+_/2;break;case"end":K=B-j+_;break;case"start":default:K=B;break}return Math.max(0,Math.min(K,A))};var V2=(J,q,j,Q,X="start",Y,W=p1)=>{return W(J,q,j,Q,Y,X)};var FJ=(J,q)=>{if(J.header){let j=q?J.header.width??J.header.height:J.header.height??J.header.width;return{getGroupForIndex:J.getGroupForIndex,header:{height:j,template:J.header.template},sticky:J.sticky}}if(J.headerHeight!=null&&J.headerTemplate)return{getGroupForIndex:J.getGroupForIndex,header:{height:J.headerHeight,template:J.headerTemplate},sticky:J.sticky};return J},x2=(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 X=null,Y=null;return{name:"withGroups",priority:10,setup(W){let{dom:B,config:_,rawConfig:Z}=W,{classPrefix:A}=_,K=FJ(J,_.horizontal),O=Z.item.height,D=K.sticky!==!1,{template:k}=K.header;B.root.classList.add(`${A}--grouped`);let E=null;if(D)if(W.methods.set("_getStickyHeaderHeight",()=>K.header.height),E=g2(B.root,A,_.horizontal,K.header.height),!_.horizontal)B.viewport.style.height=`calc(100% - ${K.header.height}px)`;else B.viewport.style.width=`calc(100% - ${K.header.height}px)`;let{animateScroll:T,cancelScroll:F}=q2(W.scrollController,W.renderIfNeeded),S=null;W.methods.set("scrollToIndex",(g,r)=>{let y=S??X;if(!y)return;let M=y.dataToLayoutIndex(g),{align:w,behavior:s,duration:m}=r0(r),o=W.dataManager.getTotal(),X0=W.adjustScrollPosition(V2(M,W.sizeCache,W.state.viewportState.containerSize,o,w,W.getCachedCompression()));if(s==="smooth")T(W.scrollController.getScrollTop(),X0,m);else F(),W.scrollController.scrollTo(X0)}),W.destroyHandlers.push(()=>{if(F(),Y)Y.destroy(),Y=null;else if(E)E.remove();B.root.classList.remove(`${A}--grouped`)});let p=null;W.methods.set("_getGroupBridge",()=>p),queueMicrotask(()=>{let g=W.methods.get("_onItemsLoaded");if(g)HJ(W,K,_,Z,O,D,k,A,g,(r)=>{p=r,S=r},(r)=>{Y=r},E)}),TJ(W,K,_,Z,O,D,k,A,(g)=>{X=g,S=g},(g)=>{Y=g},E)},destroy(){if(Y)Y.destroy(),Y=null}}};function TJ(J,q,j,Q,X,Y,W,B,_,Z,A){let{dom:K}=J,$=null,O=Q.items?[...Q.items]:[],D=O.length,k={getGroupForIndex:q.getGroupForIndex,header:{height:q.header.height}},E=(N)=>O[N],T=f1(D,k,E);_(T);let F=u2(O,T.groups),S=typeof X==="number"?(N)=>X:X,p=(N)=>{let V=T.layoutToDataIndex(N);if(V<0){let L=T.getGroupAtLayoutIndex(N);if(Y&&L.groupIndex===0)return 0;return T.getHeaderHeight(L.groupIndex)}return S(V)};J.setSizeConfig(p),J.rebuildSizeCache(F.length),J.dataManager.setItems(F,0,F.length);let g=Q.item.template,r=(N,V,L)=>{if(x0(N))return W(N.groupKey,N.groupIndex);return g(N,V,L)},y=J.methods.get("_getGridLayout"),M=J.methods.get("_replaceGridRenderer"),w=J.methods.get("_updateGridLayoutForGroups"),s=J.methods.get("_createGridRenderer"),m=J.methods.get("_getTableLayout"),o=J.methods.get("_updateTableForGroups");if(y&&M&&s){if(w)w((L)=>{let H=F[L];return!!(H&&x0(H))});let N=y(),V=s(K.items,r,J.sizeCache,N,B,J.getContainerWidth(),()=>O.length,j.ariaIdPrefix,j.horizontal,(L)=>T.layoutToDataIndex(L)+1,j.interactive);M(V)}else if(m&&o)o((N)=>x0(N),q.header.template);else J.replaceTemplate(r);let X0=()=>{if(!Y||$)return;if(T.groupCount===0)return;let N=q.header.template,V=(H,d)=>{let J0=T.groups[d];if(!J0)return;let c=N(J0.key,J0.groupIndex);if(typeof c==="string")H.innerHTML=c;else H.replaceChildren(c)},L=m2(K.root,T,J.sizeCache,V,B,j.horizontal,0,()=>J.getCachedCompression().ratio,A??void 0);$=L,Z(L),J.afterScroll.push((H,d)=>{L.update(H)}),L.update(J.scrollController.getScrollTop())};X0();let n=Q.item?.striped,v=()=>{if(n!=="data"&&n!=="even"&&n!=="odd")return;let N=new Int32Array(F.length),V=n==="odd"?1:0,L=0;for(let H=0;H<F.length;H++)if(x0(F[H])){if(N[H]=-1,n==="even"||n==="odd")L=0}else N[H]=L+++V;J.setStripeIndexFn((H)=>{if(H<0||H>=N.length)return H;return N[H]})};v();let R=()=>{if(T.rebuild(O.length,E),F=u2(O,T.groups),J.rebuildSizeCache(F.length),J.dataManager.setItems(F,0,F.length),v(),X0(),$)$.refresh()};J.methods.set("setItems",(N)=>{O=N.slice(),R()}),J.methods.set("appendItems",(N)=>{O.push(...N),R()}),J.methods.set("prependItems",(N)=>{O.unshift(...N),R()}),J.methods.set("removeItem",(N)=>{O=O.filter((V)=>V.id!==N),R()}),J.methods.set("_getItems",()=>O),J.methods.set("_getTotal",()=>O.length),J.methods.set("_isGroupHeader",(N)=>{let V=F[N];return!!(V&&x0(V))}),J.methods.set("_layoutToDataIndex",(N)=>T.layoutToDataIndex(N)),J.methods.set("_dataToLayoutIndex",(N)=>T.dataToLayoutIndex(N))}function HJ(J,q,j,Q,X,Y,W,B,_,Z,A,K){let{dom:$}=J,O=J.dataManager,D=I1({getGroupForIndex:q.getGroupForIndex,headerHeight:q.header.height});Z(D);let k=typeof X==="number"?(y)=>X:X,E=(y)=>{if(D.isHeader(y)){if(Y&&D.getGroupAtLayoutIndex(y).groupIndex===0)return 0;return q.header.height}let M=D.layoutToDataIndex(y);return M>=0?k(M):k(y)};J.setSizeConfig(E),J.setVirtualTotalFn(()=>D.totalEntries||O.getTotal());let T={...O,getTotal:()=>D.totalEntries,getIndexById:(y)=>{let M=O.getIndexById(y);if(M<0)return-1;return D.dataToLayoutIndex(M)},getItem:(y)=>{let M=D.getHeaderItem(y);if(M)return M;let w=D.layoutToDataIndex(y);if(w>=0)return O.getItem(w);return O.getItem(y)},getItemsInRange:(y,M)=>{let w=[];for(let s=y;s<=M;s++){let m=T.getItem(s);if(m!==void 0)w.push(m)}return w},isItemLoaded:(y)=>{if(D.isHeader(y))return!0;let M=D.layoutToDataIndex(y);if(M>=0)return O.isItemLoaded(M);return O.isItemLoaded(y)},reload:()=>{return D.reset(),O.reload()},removeItem:(y)=>{let M=O.getIndexById(y);if(M>=0)D.removeAt(M);return O.removeItem(y)},clear:()=>{D.reset(),O.clear()},reset:()=>{D.reset(),O.reset()}};J.replaceDataManager(T);let F=Q.item.template,S=J.methods.get("_updateTableForGroups");if(S)S((y)=>x0(y),q.header.template);J.replaceTemplate((y,M,w)=>{if(x0(y))return W(y.groupKey,y.groupIndex);return F(y,M,w)});let p=null;if(Y){let y=q.header.template,M=(m,o)=>{let X0=D.groups[o];if(!X0)return;let n=y(X0.key,X0.groupIndex);if(typeof n==="string")m.innerHTML=n;else m.replaceChildren(n)},w={get groups(){return D.groups},getHeaderHeight:(m)=>D.getHeaderHeight(m)};p=m2($.root,w,J.sizeCache,M,B,j.horizontal,0,()=>J.getCachedCompression().ratio,K??void 0),A(p);let s=p;J.afterScroll.push((m,o)=>{s.update(m)})}let g=-1;J.methods.set("_ensureTailLoaded",()=>{let y=O.getTotal();if(y<=0)return;let M=y-1;if(O.isItemLoaded(M))return;g=M,O.ensureRange(M,M)}),_((y,M,w)=>{let s=J.scrollController.getScrollTop(),m=D.groupCount,o=D.totalEntries||w,X0=0,n=0,v=J.methods.get("_restoreAnchor");if(v)X0=v.dataIndex,n=v.fraction;else if(s>0){let V=J.getCachedCompression(),L=V.ratio!==1?s/V.ratio:s,H=J.sizeCache.indexAtOffset(L);if(X0=D.layoutToDataIndex(H),X0<0&&H+1<D.totalEntries)H=H+1,X0=D.layoutToDataIndex(H);let d=J.sizeCache.getOffset(H),J0=J.sizeCache.getSize(H);n=J0>0?(L-d)/J0:0}D.onItemsLoaded(y,M,w),J.rebuildSizeCache(D.totalEntries);let R=J.getCachedCompression();if(J.updateContentSize(R.virtualSize),D.groupCount-m>0&&(s>0||v)){if(v?.skipAdjust);else if(X0>=0){let V=D.dataToLayoutIndex(X0),L=J.sizeCache.getOffset(V),H=J.sizeCache.getSize(V),d=L+n*H,J0=R.ratio!==1?d*R.ratio:d;if(Math.abs(J0-s)>1)J.scrollController.scrollTo(J0);if(v){J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave");let c=J.methods.get("_saveSnapshot");if(c)c()}}}else if(v){let V=v.skipAdjust;if(J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave"),!V){let L=J.methods.get("_saveSnapshot");if(L)L()}}if(p)p.refresh(),p.update(J.scrollController.getScrollTop());if(g>=0&&O.isItemLoaded(g)){let V=D.dataToLayoutIndex(g);g=-1;let L=J.methods.get("_getFocusedIndex"),H=L?L():-1;if(H>=0&&H>=o-1&&V!==H){let d=V;while(d>0&&D.isHeader(d))d--;let J0=J.methods.get("_setFocusedIndex");if(J0)J0(d)}}}),J.methods.set("_isGroupHeader",(y)=>D.isHeader(y)),J.methods.set("_layoutToDataIndex",(y)=>D.layoutToDataIndex(y)),J.methods.set("_dataToLayoutIndex",(y)=>D.dataToLayoutIndex(y)),J.methods.set("_getTotal",()=>O.getTotal()),J.methods.delete("removeItem");let r=Q.item?.striped;if(r==="data"||r==="even"||r==="odd"){let y=r==="odd"?1:0;J.setStripeIndexFn((M)=>{if(D.isHeader(M))return-1;let w=D.layoutToDataIndex(M);return w>=0?w+y:M})}}var u1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.isHeaderFn,X={row:0,col:0},Y=(D)=>{if(D<=0)return 0;if(!Q)return Math.ceil(D/q);let k=0,E=0,T=0;for(let F=0;F<D;F++)if(Q(F)){if(T++,E)k++,E=0;k++,E=0}else if(E++,E>=q)k++,E=0;if(E)k++;return k},W=(D)=>{return X.row=B(D),X.col=_(D),X},B=(D)=>{if(!Q)return Math.floor(D/q);let k=0,E=0;for(let T=0;T<=D;T++)if(Q(T)){if(E)k++,E=0;if(T===D)return k;k++,E=0}else{if(T===D)return k;if(E++,E>=q)k++,E=0}return console.warn(`⚠️ getRow(${D}) fell through - returning ${k}`),k},_=(D)=>{if(!Q)return D%q;if(Q(D))return 0;let k=0;for(let E=0;E<=D;E++)if(Q(E))k=0;else{if(E===D)return k;if(k++,k>=q)k=0}return k},Z=(D,k,E)=>{if(E<=0)return{start:0,end:-1};if(!Q){let g=Math.max(0,D*q),r=Math.min(E-1,(k+1)*q-1);return{start:g,end:r}}let T=-1,F=-1,S=0,p=0;for(let g=0;g<E;g++){if(Q(g)){if(p)S++,p=0;if(S>=D&&S<=k){if(T<0)T=g;F=g}S++,p=0}else{if(S>=D&&S<=k){if(T<0)T=g;F=g}if(p++,p>=q)S++,p=0}if(S>k&&!p)break}if(T<0)return{start:0,end:-1};return{start:T,end:F}},A=(D,k,E)=>{if(k<0||k>=q)return-1;let T=D*q+k;if(T<0||T>=E)return-1;return T},K=(D)=>{let k=(q-1)*j;return Math.max(0,(D-k)/q)};return{get columns(){return q},get gap(){return j},update:(D)=>{if(D.columns!==void 0)q=Math.max(1,Math.floor(D.columns));if(D.gap!==void 0)j=D.gap;if(D.isHeaderFn!==void 0)Q=D.isHeaderFn},getTotalRows:Y,getPosition:W,getRow:B,getCol:_,getItemRange:Z,getItemIndex:A,getColumnWidth:K,getColumnOffset:(D,k)=>{let E=K(k);return D*(E+j)}}};var Y2=(J,q,j)=>{if(String(j).startsWith(c0))return!1;let Q=c0+q;if(J.has(Q))return J.delete(Q),J.add(j),!0;return!1},g1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1});var $J=(J=200)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let W=document.createElement("div");return W.setAttribute("role","option"),W},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}}},kJ=1,d2=(J,q,j,Q,X,Y,W,B,_=!1,Z,A)=>{let K=$J(),$=new Map,O=Y,D=!1,k=0,E="",T=-1,F={selected:!1,focused:!1},S=(z,I)=>{return F.selected=z,F.focused=I,F},p=`${X}-item ${X}-grid-item`,g=`${X}-group-header`,r=`${X}-item--selected`,y=`${X}-item--focused`,M=`${X}-item--placeholder`,w=`${X}-item--replaced`,s=(z,I)=>{if(typeof I==="string")z.innerHTML=I;else z.replaceChildren(I)},m=(z,I,b)=>{z.classList.toggle(r,I),z.classList.toggle(y,b)},o=(z,I)=>{let b=Q.getRow(z);if(I?.compression?.isCompressed)return T2(b,I.scrollPosition,j,I.totalItems,I.containerSize,I.compression,I.rangeStart);return j.getOffset(b)},X0=(z,I)=>{let b=Q.getCol(z),C=D&&b===0?0:Q.getColumnOffset(b,O),G;if(D){let u=Q.getRow(z),f=0,i=-1;for(let a=0;a<z;a++){let Y0=Q.getRow(a);if(Y0<u&&Y0!==i){let x=j.getSize(a);f+=x,i=Y0}}G=f}else G=o(z,I);if(_)return`translate(${Math.round(G)}px, ${Math.round(C)}px)`;return`translate(${Math.round(C)}px, ${Math.round(G)}px)`},n=(z,I)=>{let b=z.classList.contains(g),U=b?O:Q.getColumnWidth(O),C;if(D||b)C=j.getSize(I)-Q.gap;else{let G=Q.getRow(I);C=j.getSize(G)-Q.gap}if(_)z.style.width=`${C}px`,z.style.height=`${U}px`;else z.style.width=`${U}px`,z.style.height=`${C}px`},v=(z,I,b,U,C)=>{let G=K.acquire(),u=!!I.__groupHeader,f=S(b,U);if(G.className=u?g:p,G.dataset.index=String(z),G.dataset.id=String(I.id),G.dataset.row=String(Q.getRow(z)),G.dataset.col=String(Q.getCol(z)),u)G.setAttribute("role","presentation"),G.removeAttribute("aria-selected"),G.removeAttribute("aria-setsize"),G.removeAttribute("aria-posinset"),G.removeAttribute("id");else if(A!==!1){if(G.setAttribute("role","option"),G.ariaSelected=String(b),B)G.id=`${B}-item-${z}`;if(W){let Y0=W();if(Y0!==T)T=Y0,E=String(Y0);G.setAttribute("aria-setsize",E);let x=Z?Z(z):z+1;G.setAttribute("aria-posinset",String(x))}}else if(G.setAttribute("role","listitem"),G.removeAttribute("aria-selected"),W){let Y0=W();if(Y0!==T)T=Y0,E=String(Y0);G.setAttribute("aria-setsize",E);let x=Z?Z(z):z+1;G.setAttribute("aria-posinset",String(x))}n(G,z);let i=q(I,z,f);if(s(G,i),String(I.id).startsWith(c0))G.classList.add(M);return m(G,b,U),G.style.transform=C,{element:G,lastItemId:I.id,lastSelected:b,lastFocused:U,lastTransform:C,lastSeenFrame:k}},R=(z,I,b,U,C)=>{if(k++,I.start===0&&z.length)D=x0(z[0]);for(let[f,i]of $)if(f>=I.start&&f<=I.end)i.lastSeenFrame=k;else if(k-i.lastSeenFrame>kJ)K.release(i.element),$.delete(f);let G=!1;if(W){let f=W();if(f!==T)T=f,E=String(f),G=!0}let u=null;for(let f=I.start;f<=I.end;f++){let i=f-I.start,a=z[i];if(!a){console.warn(`⚠️ RENDER: Missing item at index ${f} (range: ${I.start}-${I.end}, items.length: ${z.length})`);continue}let Y0=b.has(a.id),x=f===U,e=$.get(f);if(e){let P=e.lastItemId!==a.id,h=e.lastSelected!==Y0,Q0=e.lastFocused!==x;if(P){let V0=String(e.lastItemId),N0=String(a.id),U0=V0.startsWith(c0),W0=N0.startsWith(c0);if(!W0&&Y2(b,f,a.id))Y0=!0;let M0=S(Y0,x),$0=q(a,f,M0);if(s(e.element,$0),e.element.dataset.id=N0,e.element.dataset.row=String(Q.getRow(f)),e.element.dataset.col=String(Q.getCol(f)),n(e.element,f),e.element.classList.toggle(M,W0),U0&&!W0)e.element.classList.add(w),setTimeout(()=>e.element.classList.remove(w),300);if(e.lastItemId=a.id,!a.__groupHeader){let P0=Z?Z(f):f+1;e.element.setAttribute("aria-posinset",String(P0))}}if(P||h||Q0)m(e.element,Y0,x),e.element.ariaSelected=String(Y0),e.lastSelected=Y0,e.lastFocused=x;let t=X0(f,C);if(e.lastTransform!==t)e.element.style.transform=t,e.lastTransform=t;if(G&&!a.__groupHeader)e.element.setAttribute("aria-setsize",E)}else{if(Y2(b,f,a.id))Y0=!0;let P=X0(f,C),h=v(f,a,Y0,x,P);if(!u)u=document.createDocumentFragment();u.appendChild(h.element),$.set(f,h)}}if(u)J.appendChild(u)},N=(z)=>{for(let[I,b]of $){let U=X0(I,z);if(b.lastTransform!==U)b.element.style.transform=U,b.lastTransform=U}},V=(z,I,b,U)=>{let C=$.get(z);if(!C)return;let G=S(b,U),u=q(I,z,G);s(C.element,u),m(C.element,b,U),C.element.dataset.id=String(I.id),C.element.ariaSelected=String(b),n(C.element,z),C.lastItemId=I.id,C.lastSelected=b,C.lastFocused=U},L=(z,I,b)=>{let U=$.get(z);if(!U)return;let C=U.lastSelected!==I,G=U.lastFocused!==b;if(C||G)m(U.element,I,b),U.lastSelected=I,U.lastFocused=b},H=(z)=>{return $.get(z)?.element},d=(z)=>{if(Math.abs(z-O)<1)return;O=z;for(let[I,b]of $){n(b.element,I);let U=X0(I);b.element.style.transform=U,b.lastTransform=U}},J0=()=>{J2(J,$.keys(),(z)=>$.get(z)?.element)},c=()=>{for(let[,z]of $)K.release(z.element);$.clear()};return{render:R,updatePositions:N,updateItem:V,updateItemClasses:L,getElement:H,sortDOM:J0,updateContainerWidth:d,clear:c,destroy:()=>{c(),K.clear()}}};var bJ=new Set,c2=(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:X,emitter:Y,config:W,rawConfig:B}=Q,{classPrefix:_}=W;if(W.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let Z=W.horizontal,A=L2(g0(B.padding),Z),K=()=>{return(Z?X.viewport.clientHeight:Q.getContainerWidth())-A},$=B.items?.some((c)=>c.__groupHeader===!0),O={columns:J.columns,gap:J.gap??0};if($)O.isHeaderFn=(c)=>{let j0=Q.dataManager.getItem(c);return!!(j0&&j0.__groupHeader===!0)};q=u1(O);let D=q.gap;Q.setVirtualTotalFn(()=>{let c=Q.dataManager.getTotal();return q.getTotalRows(c)}),Q.setItemToScrollIndexFn((c)=>Math.floor(c/O.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>Z?{ud:1,lr:O.columns,cols:O.columns}:{ud:O.columns,lr:1,cols:O.columns});let k=B.item,E=W.horizontal?k.width:k.height,T={containerWidth:K(),columns:q.columns,gap:q.gap},F={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof E==="function")Q.setSizeConfig((c)=>{let j0=T.containerWidth-2,z=(T.columns-1)*T.gap;return F.containerWidth=T.containerWidth,F.columns=T.columns,F.gap=T.gap,F.columnWidth=(j0-z)/T.columns,F.row=q.getRow(c),F.column=q.getCol(c),F.totalRows=q.getTotalRows(Q.dataManager.getTotal()),F.totalColumns=T.columns,E(c,F)+T.gap});else if(D>0)Q.setSizeConfig(E+D);if(Q.rebuildSizeCache(),D>0){let c=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let j0=c();return j0?j0-T.gap:0}}X.root.classList.add(`${_}--grid`);let S=K(),p=B.item.template,g=Q2(Q.methods,()=>Q.dataManager.getTotal()),r=()=>{j=d2(X.items,p,Q.sizeCache,q,_,S,g.getSetSize,W.ariaIdPrefix,W.horizontal,g.getPosInSet,W.interactive),Q.replaceRenderer(j)};r();let y=()=>{for(let c=0;c<Q.contentSizeHandlers.length;c++)Q.contentSizeHandlers[c]()};Q.setUpdateItemClassesFn((c,j0,z)=>{j?.updateItemClasses(c,j0,z)}),Q.methods.set("_updateRenderedItem",(c,j0,z,I)=>{j?.updateItem(c,j0,z,I)}),Q.methods.set("_getGridLayout",()=>q),Q.methods.set("_getGridConfig",()=>O),Q.methods.set("_replaceGridRenderer",(c)=>{j=c}),Q.methods.set("_createGridRenderer",d2),Q.methods.set("_updateGridLayoutForGroups",(c)=>{q.update({isHeaderFn:c});let j0=Q.dataManager.getTotal(),z=0;for(let I=0;I<j0;I++)if(!q.getCol(I)){let b=Q.sizeCache.getSize(I);z+=b}Q.sizeCache.getTotalSize=()=>z,Q.updateContentSize(z),r()}),Q.methods.set("updateGrid",(c)=>{if(c.columns!==void 0){if(!Number.isInteger(c.columns)||c.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");O.columns=c.columns}if(c.gap!==void 0){if(c.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");O.gap=c.gap}q?.update(O);let j0=K();T.containerWidth=j0,T.columns=O.columns,T.gap=O.gap??0,j?.updateContainerWidth(j0),Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode(),y(),j?.clear(),Q.forceRender()});let M=null,w=null,s=!1,m=()=>{if(s)return;s=!0,M=Q.methods.get("_getSelectedIds")??null,w=Q.methods.get("_getFocusedIndex")??null},o=-1,X0=-1,n=!0,v=W.overscan,R={start:0,end:0},N={start:0,end:0},V=()=>{if(Q.state.isDestroyed)return;let c=Q.scrollController.getScrollTop(),j0=Q.state.viewportState.containerSize;if(!n&&c===o&&j0===X0)return;o=c,X0=j0,n=!1;let z=Q.getVirtualTotal();Q.getVisibleRange(c,j0,z,R),N.start=Math.max(0,R.start-v),N.end=Math.min(z-1,R.end+v);let I=Q.state.viewportState;I.scrollPosition=c,I.visibleRange.start=R.start,I.visibleRange.end=R.end,I.renderRange.start=N.start,I.renderRange.end=N.end;let b=Q.state.lastRenderRange,U=I.isCompressed,C=b.start!==N.start||b.end!==N.end;if(!C&&U){j.updatePositions(Q.getCompressionContext());return}let G=q.getItemRange(N.start,N.end,Q.dataManager.getTotal()),u=Q.dataManager.getItemsInRange(G.start,G.end),f=U?Q.getCompressionContext():void 0;m();let i=M?M():bJ,a=w?w():-1;if(j.render(u,G,i,a,f),C)b.start=N.start,b.end=N.end,Y.emit("range:change",{range:{start:N.start,end:N.end}})},L=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,n=!0,V()};Q.setRenderFns(V,L);let H=typeof E==="function";Q.resizeHandlers.push((c,j0)=>{let z=(Z?j0:c)-A;if(Math.abs(z-T.containerWidth)<1)return;if(T.containerWidth=z,j?.updateContainerWidth(z),H)Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode(),y(),j?.clear(),Q.forceRender()});let{animateScroll:d,cancelScroll:J0}=q2(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",J0),Q.methods.set("scrollToIndex",(c,j0)=>{let z=Math.floor(c/J.columns),{align:I,behavior:b,duration:U}=r0(j0),C=Q.dataManager.getState(),G=q.getTotalRows(C.total),u=Math.max(0,Math.min(z,G-1)),f=Q.adjustScrollPosition(V2(u,Q.sizeCache,Q.state.viewportState.containerSize,G,I,Q.getCachedCompression()));if(b==="smooth")d(Q.scrollController.getScrollTop(),f,U);else J0(),Q.scrollController.scrollTo(f)}),!Q.methods.has("_getTotal"))Q.methods.set("_getTotal",()=>Q.dataManager.getTotal());Q.methods.set("_layoutToDataIndex",(c)=>c*J.columns),Q.methods.set("_dataToLayoutIndex",(c)=>Math.floor(c/J.columns)),Q.idleHandlers.push(()=>{j?.sortDOM()}),Q.destroyHandlers.push(()=>{J0(),j?.destroy(),j=null,X.root.classList.remove(`${_}--grid`)})},destroy(){j?.destroy(),j=null}}};var m1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),j=J.gap??0,Q=J.containerSize,X=0,Y=[],W=()=>{let k=(q-1)*j;X=Math.max(0,(Q-k)/q),Y=Array(q);let E=X+j;for(let T=0;T<q;T++)Y[T]=T*E};W();let B=[],_=0,Z=[],A=(k,E)=>{if(k<=0)return _=0,B=[],[];let T=Array(q).fill(0),F=Array(q);for(let g=0;g<q;g++)F[g]=[];let S=Array(k);for(let g=0;g<k;g++){let r=0,y=T[0];for(let s=1;s<q;s++){let m=T[s];if(m<y)y=m,r=s}let M=E(g),w=T[r];S[g]={index:g,x:Y[r],y:w,lane:r,size:M,crossSize:X},F[r].push(g),T[r]=w+M+j}B=F;let p=0;for(let g=0;g<q;g++){let r=T[g],y=r>0?r-j:0;if(y>p)p=y}return _=p,S},K=(k)=>{if(k.length===0)return _;if(_)return _;let E=Array(q).fill(0);for(let F of k){let S=F.y+F.size,p=E[F.lane];if(S>p)E[F.lane]=S}let T=0;for(let F=0;F<q;F++)if(E[F]>T)T=E[F];return T},$=(k,E,T)=>{if(k.length===0||T<=E)return Z.length=0,Z;if(B.length===0||B.length!==q)return O(k,E,T);Z.length=0;for(let F=0;F<q;F++){let S=B[F],p=S.length;if(!p)continue;let g=0,r=p;while(g<r){let y=g+r>>>1,M=k[S[y]];if(M.y+M.size<=E)g=y+1;else r=y}for(let y=g;y<p;y++){let M=k[S[y]];if(M.y>=T)break;Z.push(M)}}return Z},O=(k,E,T)=>{Z.length=0;for(let F of k)if(F.y+F.size>E&&F.y<T)Z.push(F);return Z};return{get columns(){return q},get gap(){return j},get containerSize(){return Q},update:(k)=>{let E=!1;if(k.columns!==void 0){let T=Math.max(1,Math.floor(k.columns));if(T!==q)q=T,E=!0}if(k.gap!==void 0&&k.gap!==j)j=k.gap,E=!0;if(k.containerSize!==void 0&&k.containerSize!==Q)Q=k.containerSize,E=!0;if(E)W()},calculateLayout:A,getTotalSize:K,getVisibleItems:$}};var RJ=(J=200)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let W=document.createElement("div");return W.setAttribute("role","option"),W},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}}},PJ=1,x1=(J,q,j,Q=!1,X,Y,W,B)=>{let _=RJ(),Z=new Map,A=new Set,K=0,$="",O=-1,D={selected:!1,focused:!1},k=(n,v)=>{return D.selected=n,D.focused=v,D},E=`${j}-item ${j}-masonry-item`,T=`${j}-group-header`,F=`${j}-item--selected`,S=`${j}-item--focused`,p=(n,v)=>{if(typeof v==="string")n.innerHTML=v;else n.replaceChildren(v)},g=(n,v,R)=>{n.classList.toggle(F,v),n.classList.toggle(S,R)},r=(n,v)=>{if(Q)n.style.transform=`translate(${Math.round(v.y)}px, ${Math.round(v.x)}px)`;else n.style.transform=`translate(${Math.round(v.x)}px, ${Math.round(v.y)}px)`},y=(n,v)=>{if(Q)n.style.width=`${v.size}px`,n.style.height=`${v.crossSize}px`;else n.style.width=`${v.crossSize}px`,n.style.height=`${v.size}px`},M=(n,v,R,N,V)=>{let L=_.acquire(),H=v.__groupHeader,d=k(N,V);if(L.className=H?T:E,L.dataset.index=String(n),L.dataset.id=String(v.id),L.dataset.lane=String(R.lane),H)L.setAttribute("role","presentation"),L.removeAttribute("aria-selected"),L.removeAttribute("aria-setsize"),L.removeAttribute("aria-posinset"),L.removeAttribute("id");else if(B!==!1){if(L.setAttribute("role","option"),L.ariaSelected=String(N),Y)L.id=`${Y}-item-${n}`;if(X){let c=X();if(c!==O)O=c,$=String(c);L.setAttribute("aria-setsize",$);let j0=W?W(n):n+1;L.setAttribute("aria-posinset",String(j0))}}else if(L.setAttribute("role","listitem"),L.removeAttribute("aria-selected"),X){let c=X();if(c!==O)O=c,$=String(c);L.setAttribute("aria-setsize",$);let j0=W?W(n):n+1;L.setAttribute("aria-posinset",String(j0))}y(L,R);let J0=q(v,n,d);return p(L,J0),g(L,N,V),r(L,R),{element:L,lastItemId:v.id,lastSelected:N,lastFocused:V,lastY:R.y,lastX:R.x,lastSize:R.size,lastCrossSize:R.crossSize,lastSeenFrame:K}},w=(n,v,R,N)=>{K++,A.clear();for(let L=0;L<v.length;L++)A.add(v[L].index);for(let[L,H]of Z)if(A.has(L))H.lastSeenFrame=K;else if(K-H.lastSeenFrame>PJ)_.release(H.element),Z.delete(L);let V=null;for(let L=0;L<v.length;L++){let H=v[L],d=H.index,J0=n(d);if(!J0)continue;let c=R.has(J0.id),j0=d===N,z=Z.get(d);if(z){let I=z.lastItemId!==J0.id,b=z.lastSelected!==c,U=z.lastFocused!==j0,C=z.lastY!==H.y||z.lastX!==H.x,G=z.lastSize!==H.size||z.lastCrossSize!==H.crossSize;if(I){let u=k(c,j0),f=q(J0,d,u);if(p(z.element,f),z.element.dataset.id=String(J0.id),z.lastItemId=J0.id,!J0.__groupHeader){let a=W?W(d):d+1;z.element.setAttribute("aria-posinset",String(a))}}if(I||b||U)g(z.element,c,j0),z.element.ariaSelected=String(c),z.lastSelected=c,z.lastFocused=j0;if(G)y(z.element,H),z.lastSize=H.size,z.lastCrossSize=H.crossSize;if(C)r(z.element,H),z.lastY=H.y,z.lastX=H.x}else{let I=M(d,J0,H,c,j0);if(!V)V=document.createDocumentFragment();V.appendChild(I.element),Z.set(d,I)}}if(V)J.appendChild(V)},s=()=>{for(let n of Z.values())_.release(n.element);Z.clear(),J.innerHTML=""};return{render:w,getElement:(n)=>Z.get(n)?.element,updateItemClasses:(n,v,R)=>{let N=Z.get(n);if(!N)return;let V=N.lastSelected!==v,L=N.lastFocused!==R;if(V||L)g(N.element,v,R),N.lastSelected=v,N.lastFocused=R},sortDOM:()=>{J2(J,Z.keys(),(n)=>Z.get(n)?.element)},clear:s,destroy:()=>{s(),_.clear()}}};var yJ=new Set,wJ=100,l2=(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(X){let{dom:Y,emitter:W,config:B,rawConfig:_}=X,Z=B.classPrefix,A=B.horizontal;if(B.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");Y.root.classList.add(`${Z}--masonry`);let K=g0(_.padding),$=L2(K,A),O=e0(K,A),D=()=>(A?Y.viewport.clientHeight:Y.viewport.clientWidth)-$;q=m1({columns:J.columns,gap:J.gap??0,containerSize:D()});let k=_.item,E=A&&k.width?k.width:k.height,T={containerWidth:0,columns:0,gap:0,columnWidth:0},F=typeof E==="function"?(U)=>E(U,T):()=>E,S=()=>{let U=X.dataManager.getTotal(),C=q,G=C.columns,u=C.gap;T.containerWidth=C.containerSize,T.columns=G,T.gap=u;let f=(G-1)*u;T.columnWidth=Math.max(0,(T.containerWidth-f)/G),Q=C.calculateLayout(U,F),w();let i=C.getTotalSize(Q);X.sizeCache.getTotalSize=()=>i,X.updateContentSize(i)},p=_.item.template,g=Q2(X.methods,()=>X.dataManager.getTotal());j=x1(Y.items,p,Z,A,g.getSetSize,B.ariaIdPrefix,g.getPosInSet,B.interactive),X.setUpdateItemClassesFn((U,C,G)=>{j?.updateItemClasses(U,C,G)});let r=[],y=new Int32Array(0),M=[],w=()=>{let U=q.columns,C=Q.length;r=Array(U);for(let G=0;G<U;G++)r[G]=[];if(y.length<C)y=new Int32Array(C);for(let G=0;G<C;G++){let u=Q[G],f=r[u.lane].length;r[u.lane].push(G),y[G]=f}M=Array(U);for(let G=0;G<U;G++){let u=r[G],f=new Float64Array(u.length);for(let i=0;i<u.length;i++){let a=Q[u[i]];f[i]=a.y+a.size*0.5}M[G]=f}};X.methods.set("_getNavTotal",()=>X.dataManager.getTotal());let s=(U,C)=>{let G=U.length;if(!G)return-1;let u=0,f=G-1;while(u<f){let i=u+f>>1;if(U[i]<C)u=i+1;else f=i}if(u>0&&Math.abs(U[u-1]-C)<=Math.abs(U[u]-C))return u-1;return u};X.methods.set("_navigate",(U,C,G)=>{let u=Q[U];if(!u)return U;let f=u.lane,i=q.columns,a=y[U],Y0=r[f];switch(A?C==="ArrowDown"?"ArrowRight":C==="ArrowUp"?"ArrowLeft":C==="ArrowRight"?"ArrowDown":C==="ArrowLeft"?"ArrowUp":C:C){case"ArrowDown":{if(a+1<Y0.length)return Y0[a+1];return U}case"ArrowUp":{if(a>0)return Y0[a-1];return U}case"ArrowRight":{if(f>=i-1)return U;let e=f+1,P=u.y+u.size*0.5,h=r[e];if(!h.length)return U;let Q0=s(M[e],P);return Q0>=0?h[Q0]:U}case"ArrowLeft":{if(f<=0)return U;let e=f-1,P=u.y+u.size*0.5,h=r[e];if(!h.length)return U;let Q0=s(M[e],P);return Q0>=0?h[Q0]:U}case"Home":return 0;case"End":return G-1;case"PageDown":{let e=X.state.viewportState.containerSize,P=u.size>0?u.size:150,h=Math.max(1,Math.floor(e/P)),Q0=Math.min(a+h,Y0.length-1);return Y0[Q0]}case"PageUp":{let e=X.state.viewportState.containerSize,P=u.size>0?u.size:150,h=Math.max(1,Math.floor(e/P)),Q0=Math.max(0,a-h);return Y0[Q0]}}return U}),X.methods.set("_scrollItemIntoView",(U)=>{let C=Q[U];if(!C)return;let G=X.scrollController.getScrollTop(),u=X.state.viewportState.containerSize,f=C.y,i=f+C.size;if(f<G)X.scrollController.scrollTo(X.adjustScrollPosition(Math.max(0,f)));else if(i>G+u)X.scrollController.scrollTo(X.adjustScrollPosition(i-u))});let m=null,o=null,X0=!1,n=()=>{if(X0)return;X0=!0,m=X.methods.get("_getSelectedIds")??null,o=X.methods.get("_getFocusedIndex")??null},v=(U)=>X.dataManager.getItem(U),R=-1,N=-1,V=!0,L=B.overscan*wJ,H=()=>{if(X.state.isDestroyed)return;n();let U=X.scrollController.getScrollTop(),C=X.state.viewportState.containerSize;if(!V&&U===R&&C===N)return;R=U,N=C,V=!1;let G=Math.max(0,U-L),u=U+C+L,f=q.getVisibleItems(Q,G,u),i=m?.()??yJ,a=o?.()??-1;if(j&&f.length)j.render(v,f,i,a);let Y0=X.state.viewportState;Y0.scrollPosition=U;let x=f.length,e=x?f[0].index:0,P=x?f[x-1].index:0;Y0.visibleRange.start=e,Y0.visibleRange.end=P,Y0.renderRange.start=e,Y0.renderRange.end=P;let h=X.state.lastRenderRange;if(h.start!==e||h.end!==P)h.start=e,h.end=P,W.emit("range:change",{range:{start:e,end:P}})},d=()=>{X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,V=!0,H()};X.setRenderFns(H,d);let J0=(U,C)=>{let G=(A?C:U)-$;if(q&&q.containerSize!==G)q.update({containerSize:G}),S(),j?.clear(),d()};X.resizeHandlers.push(J0);let c=()=>{S(),d()},j0=X.dataManager,z=(U)=>{if(typeof j0[U]!=="function")return;let C=j0[U].bind(j0);j0[U]=(...G)=>{C(...G),c()}};z("setItems"),z("appendItems"),z("prependItems"),z("updateItem"),z("removeItem");let{animateScroll:I,cancelScroll:b}=q2(X.scrollController,X.renderIfNeeded);X.methods.set("cancelScroll",b),X.methods.set("scrollToIndex",(U,C)=>{let G=Q[U];if(!G)return;let{align:u,behavior:f,duration:i}=r0(C),a=G.y,Y0=X.state.viewportState.containerSize,x=a;if(u==="center")x=a-Y0/2+G.size/2;else if(u==="end"){x=a-Y0+G.size;let e=q.getTotalSize(Q);if(U===Q.length-1)x=Math.max(0,e+O-Y0)}if(x=X.adjustScrollPosition(Math.max(0,x)),f==="smooth")I(X.scrollController.getScrollTop(),x,i);else b(),X.scrollController.scrollTo(x)}),S(),X.idleHandlers.push(()=>{j?.sortDOM()}),X.destroyHandlers.push(()=>{b(),j?.destroy(),Y.root.classList.remove(`${Z}--masonry`)})}}};var r2=(J)=>{let q=J?.mode??"single",j=J?.followFocus??!1,Q=J?.initial,X=J?.shiftArrowToggle??"origin",Y=J?.focusOnClick??!1,W=J?.contextMenu??"select",B=g1(Q),_=B.selected,Z=null,A=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(K){let{dom:$,emitter:O,config:D}=K,{classPrefix:k,ariaIdPrefix:E}=D,T=()=>$.root.getAttribute("role")==="grid"?$.root:$.items;if(q==="none"){K.methods.set("select",()=>{}),K.methods.set("deselect",()=>{}),K.methods.set("toggleSelect",()=>{}),K.methods.set("selectAll",()=>{}),K.methods.set("clearSelection",()=>{}),K.methods.set("getSelected",()=>[]),K.methods.set("getSelectedItems",()=>[]),K.methods.set("setSelectionMode",()=>{}),K.methods.set("selectNext",()=>{}),K.methods.set("selectPrevious",()=>{}),K.methods.set("_focusById",()=>{}),K.methods.set("_getFocusedId",()=>{return});return}$.root.classList.add(`${k}--selectable`);let F=()=>K.methods.get("_isGroupHeader"),S=()=>K.methods.get("_layoutToDataIndex"),p=()=>K.methods.get("_dataToLayoutIndex"),g=(P)=>{let h=F();return h?h(P):!1},r=(P,h,Q0)=>{if(!F())return P;let t=P;while(t>=0&&t<Q0){if(!g(t))return t;t+=h}t=P-h;while(t>=0&&t<Q0){if(!g(t))return t;t-=h}return P},y=(P)=>{B.focusedIndex=P},M=(P,h,Q0=!1)=>{if(h===0)return;let t=B.focusedIndex+P;if(t<0)t=Q0?h-1:0;else if(t>=h)t=Q0?0:h-1;y(t)},w=(P)=>{if(q==="single"){if(_.clear(),P.length>0)_.add(P[0])}else for(let h of P)_.add(h)},s=(P)=>{if(q==="single")_.clear();_.add(P)},m=(P)=>{if(_.has(P))_.delete(P);else s(P)},o=(P,h,Q0)=>{if(q!=="multiple")return;let t=Math.min(h,Q0),V0=Math.max(h,Q0);for(let N0=t;N0<=V0;N0++){let U0=P[N0];if(U0)_.add(U0.id)}},X0=()=>Array.from(_),n=(P)=>{let h=[];for(let Q0 of _){let t=P(Q0);if(t)h.push(t)}return h},v=new Map,R=()=>{v.clear();let P=K.dataManager.getTotal(),h=K.dataManager.getCached();if(h===0)return;if(h>=P){for(let t=0;t<P;t++){let V0=K.dataManager.getItem(t);if(V0)v.set(V0.id,t)}return}let Q0=K.dataManager.getStorage();if(Q0&&typeof Q0.getLoadedRanges==="function"){let t=Q0.getLoadedRanges();for(let V0 of t)for(let N0=V0.start;N0<=V0.end;N0++){let U0=K.dataManager.getItem(N0);if(U0&&!U0._isPlaceholder)v.set(U0.id,N0)}}};O.on("data:change",({type:P,id:h})=>{if(P==="remove"){_.delete(h),R();let Q0=K.dataManager.getTotal();if(Q0>0&&B.focusedIndex>=0){let t=Math.min(B.focusedIndex,Q0-1);B.focusedIndex=r(t,1,Q0)}}}),O.on("load:end",({items:P,offset:h})=>{if(!P||P.length===0)return;if(h!==void 0)for(let Q0=0;Q0<P.length;Q0++){let t=P[Q0];if(t&&t.id!==void 0)v.set(t.id,h+Q0)}else R()}),R(),K.methods.set("_getSelectedIds",()=>{return _}),K.methods.set("_getFocusedIndex",()=>{return B.focusVisible?B.focusedIndex:-1}),K.methods.set("_seedSelection",(P)=>{for(let h of P)_.add(h)});let{forceRender:N}=K.getRenderFns(),V=()=>{N();let P=(h)=>{let Q0=v.get(h);if(Q0===void 0)return;return K.dataManager.getItem(Q0)};O.emit("selection:change",{selected:X0(),items:n(P)})},L=g0(K.rawConfig.padding),H=D.horizontal?L.left:L.top,d=D.horizontal?L.right:L.bottom,J0=K.getItemToScrollIndexFn(),c=null,j0=null,z=null,I=!1,b=()=>{if(I)return;I=!0,c=K.methods.get("_getNavDelta")??null,j0=K.methods.get("_navigate")??null,z=K.methods.get("_scrollItemIntoView")??null},U=()=>{return b(),c?c():{ud:1,lr:0,cols:0}},C=(P)=>{if(P<0)return;if(b(),z)z(P);else{let h=K.state.viewportState.containerSize,Q0=K.state.viewportState.scrollPosition,t=K.dataManager.getTotal(),V0=K.getCachedCompression(),{visibleRange:N0}=K.state.viewportState,U0=J0(P),W0=F2(U0,K.sizeCache,Q0,h,H,d,V0,t,N0);if(W0!==Q0)K.scrollController.scrollTo(K.adjustScrollPosition(W0))}},G=()=>{let P=J0(Math.max(0,B.focusedIndex)),h=K.sizeCache.getSize(P),{ud:Q0}=U();return Math.max(Q0,Math.floor(K.state.viewportState.containerSize/h)*Q0)};Z=document.createElement("div"),Z.setAttribute("aria-live","polite"),Z.setAttribute("aria-atomic","true"),Z.className=`${k}-live-region`,Z.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(Z);let f=Z;O.on("selection:change",({selected:P})=>{let h=P.length;if(h===0)f.textContent="";else if(h===1)f.textContent="1 item selected";else f.textContent=`${h} items selected`});let i=()=>{if(K.state.isDestroyed)return;let P=T();if(!P.matches(":focus-visible")&&!$.root.matches(":focus-visible"))return;let h=K.dataManager.getTotal();if(h===0)return;let Q0=B.focusedIndex>=0?Math.min(B.focusedIndex,h-1):0;Q0=r(Q0,1,h),y(Q0),B.focusVisible=!0,P.setAttribute("aria-activedescendant",`${E}-item-${Q0}`),C(Q0);let t=K.dataManager.getItem(Q0);if(t)K.renderer.updateItemClasses(Q0,_.has(t.id),!0)};if(D.interactive)$.root.addEventListener("focusin",i);let a=(P)=>{if(K.state.isDestroyed)return;let h=P.relatedTarget;if(h&&$.root.contains(h))return;let Q0=B.focusedIndex;if(B.focusVisible=!1,T().removeAttribute("aria-activedescendant"),Q0>=0){let t=K.dataManager.getItem(Q0);if(t)K.renderer.updateItemClasses(Q0,_.has(t.id),!1)}};if(D.interactive)$.root.addEventListener("focusout",a);let Y0=(P)=>{let h=P.target.closest("[data-index]");if(!h)return null;let Q0=parseInt(h.dataset.index??"-1",10);if(Q0<0)return null;let t=K.dataManager.getItem(Q0);if(!t||g(Q0))return null;return{item:t,index:Q0}},x=(P)=>{y(P),B.focusVisible=Y,A=P,T().setAttribute("aria-activedescendant",`${E}-item-${P}`)};if(K.clickHandlers.push((P)=>{if(K.state.isDestroyed)return;let h=Y0(P);if(!h)return;let{item:Q0,index:t}=h;if(O.emit("item:click",{item:Q0,index:t,event:P}),q==="multiple"&&P.shiftKey&&B.focusedIndex>=0){let V0=A>=0?A:B.focusedIndex;o(K.getAllLoadedItems(),V0,t),x(t),V();return}x(t),m(Q0.id),V()}),W==="select")K.contextMenuHandlers.push((P)=>{if(K.state.isDestroyed)return;let h=Y0(P);if(!h)return;if(!_.has(h.item.id))_.clear(),_.add(h.item.id),x(h.index),V()});if(D.interactive)K.keydownHandlers.push((P)=>{if(K.state.isDestroyed)return;let h=K.dataManager.getTotal(),Q0=B.focusedIndex,t=!1,V0=!1,N0=B;if(b(),j0)switch(P.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let U0=j0(B.focusedIndex,P.key,h);if(U0!==B.focusedIndex)y(U0),N0=B,N0.focusVisible=!0,t=!0,V0=!0;else{P.preventDefault();return}break}}if(!t)switch(P.key){case"ArrowUp":M(-U().ud,h,D.wrap),N0=B,N0.focusVisible=!0,t=!0,V0=!0;break;case"ArrowDown":M(U().ud,h,D.wrap),N0=B,N0.focusVisible=!0,t=!0,V0=!0;break;case"ArrowLeft":{let{lr:U0}=U();if(U0)M(-U0,h,D.wrap),N0=B,N0.focusVisible=!0,t=!0,V0=!0;break}case"ArrowRight":{let{lr:U0}=U();if(U0)M(U0,h,D.wrap),N0=B,N0.focusVisible=!0,t=!0,V0=!0;break}case"PageUp":case"PageDown":{let U0=G(),W0=S(),M0=p();if(W0&&M0){let $0=W0(B.focusedIndex),H0=P.key==="PageUp"?-U0:U0,P0=W0(h-1),E0=Math.max(0,Math.min(P0,$0+H0));y(M0(E0))}else M(P.key==="PageUp"?-U0:U0,h);N0=B,N0.focusVisible=!0,t=!0,V0=!0;break}case"Home":{if(h>0)y(0);N0=B,N0.focusVisible=!0,t=!0,V0=!0;break}case"End":{if(h>0)y(h-1);N0=B;let U0=K.methods.get("_ensureTailLoaded");if(U0)U0();N0.focusVisible=!0,t=!0,V0=!0;break}}switch(P.key){case" ":case"Enter":if(P.key===" "&&P.shiftKey&&q==="multiple"&&B.focusedIndex>=0){if(A>=0){let U0=K.getAllLoadedItems();o(U0,A,B.focusedIndex),N0=B}N0.focusVisible=!0,t=!0;break}if(B.focusedIndex>=0&&!g(B.focusedIndex)){let U0=K.dataManager.getItem(B.focusedIndex);if(U0)m(U0.id),N0=B,N0.focusVisible=!0;A=B.focusedIndex,t=!0}break;case"a":if((P.ctrlKey||P.metaKey)&&q==="multiple"){let U0=K.getAllLoadedItems();if(_.size===U0.length)_.clear();else for(let W0 of U0)_.add(W0.id);N0=B,N0.focusVisible=!0,t=!0,V0=!1}break;case"Delete":case"Backspace":if(_.size>0){let U0=(W0)=>{let M0=v.get(W0);return M0===void 0?void 0:K.dataManager.getItem(M0)};O.emit("delete",{selected:X0(),items:n(U0)}),t=!0}break}if(V0&&F()){let U0=N0.focusedIndex>Q0?1:-1;N0.focusedIndex=r(N0.focusedIndex,U0,h)}if(P.shiftKey&&q==="multiple"&&V0&&N0.focusedIndex>=0){let U0=P.key==="ArrowUp"||P.key==="ArrowDown"||P.key==="ArrowLeft"||P.key==="ArrowRight",W0=(P.ctrlKey||P.metaKey)&&(P.key==="Home"||P.key==="End");if(U0){if(X==="origin"){if(Q0>=0){let M0=K.dataManager.getItem(Q0);if(M0)m(M0.id),N0=B}}else{let M0=K.dataManager.getItem(N0.focusedIndex);if(M0)m(M0.id),N0=B}A=N0.focusedIndex,V0=!1}else if(W0){let M0=K.getAllLoadedItems(),$0=Q0>=0?Q0:N0.focusedIndex;o(M0,$0,N0.focusedIndex),N0=B,A=N0.focusedIndex,V0=!1}}if(j&&q==="single"&&V0&&N0.focusedIndex>=0){let U0=K.dataManager.getItem(N0.focusedIndex);if(U0)s(U0.id),N0=B;V0=!1}if(t){P.preventDefault(),B=N0;let U0=B.focusedIndex;if(U0>=0)C(U0),T().setAttribute("aria-activedescendant",`${E}-item-${U0}`);else T().removeAttribute("aria-activedescendant");if(V0){let{selected:W0}=B;if(Q0>=0&&Q0!==U0){let M0=K.dataManager.getItem(Q0);if(M0)K.renderer.updateItemClasses(Q0,W0.has(M0.id),!1)}if(U0>=0){let M0=K.dataManager.getItem(U0);if(M0)K.renderer.updateItemClasses(U0,W0.has(M0.id),!0)}}else V();if(U0>=0&&U0!==Q0){let W0=K.dataManager.getItem(U0);if(W0)O.emit("focus:change",{id:W0.id,index:U0})}}});K.methods.set("select",(...P)=>{if(w(P),P.length>0){let h=v.get(P[0]);if(h===void 0)R(),h=v.get(P[0]);if(h!==void 0)y(h)}V()}),K.methods.set("deselect",(...P)=>{for(let h of P)_.delete(h);V()}),K.methods.set("toggleSelect",(P)=>{m(P),V()}),K.methods.set("selectAll",()=>{if(q!=="multiple")return;let P=K.getAllLoadedItems();_.clear();for(let h of P)_.add(h.id);R(),V()}),K.methods.set("clearSelection",()=>{_.clear(),V()}),K.methods.set("getSelected",()=>{return X0()}),K.methods.set("getSelectedItems",()=>{return n((h)=>{let Q0=v.get(h);return Q0===void 0?void 0:K.dataManager.getItem(Q0)})});let e=(P)=>{let h=K.dataManager.getTotal();if(h===0)return;if(b(),j0){let N0=P==="next"?"ArrowDown":"ArrowUp",U0=j0(B.focusedIndex,N0,h);y(U0)}else{let{ud:N0}=U();M(P==="next"?N0:-N0,h,D.wrap)}let Q0=P==="next"?1:-1;B.focusedIndex=r(B.focusedIndex,Q0,h);let t=B.focusedIndex,V0=K.dataManager.getItem(t);if(!V0)return;s(V0.id),C(t),V()};K.methods.set("selectNext",()=>{e("next")}),K.methods.set("selectPrevious",()=>{e("previous")}),K.methods.set("_focusById",(P)=>{let h=v.get(P);if(h!==void 0){let t=K.dataManager.getItem(h);if(!t||t.id!==P)h=void 0}if(h===void 0){if(R(),h=v.get(P),h===void 0)return}y(h);let Q0=K.dataManager.getItem(h);if(Q0)O.emit("focus:change",{id:Q0.id,index:h})}),K.methods.set("_getFocusedId",()=>{let P=B.focusedIndex;if(P<0)return;return K.dataManager.getItem(P)?.id}),K.methods.set("_setFocusedIndex",(P)=>{y(P),B.focusVisible=!0,C(P),T().setAttribute("aria-activedescendant",`${E}-item-${P}`),K.renderIfNeeded()}),K.destroyHandlers.push(()=>{if(f&&f.parentNode)f.remove();$.root.removeEventListener("focusin",i),$.root.removeEventListener("focusout",a)})},destroy(){if(Z&&Z.parentNode)Z.remove();Z=null}}};var zJ=(J)=>{try{let q=sessionStorage.getItem(J);if(!q)return;return JSON.parse(q)}catch{return}},s2=(J)=>{let q=J?.autoSave,j=q?zJ(q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){let X=()=>{let Z=Q.scrollController.getScrollTop(),A=Q.getCachedCompression(),K=Q.getVirtualTotal(),O=Q.methods.get("getSelected")?.();if(K===0){let g={index:0,offsetInItem:0,total:0};if(O?.length)g.selectedIds=O;return g}let D,k;if(A.isCompressed&&A.ratio!==1){let r=Z/A.virtualSize*K;D=Math.max(0,Math.min(Math.floor(r),K-1)),k=(r-D)*Q.sizeCache.getSize(D)}else D=Q.sizeCache.indexAtOffset(Z),k=Z-Q.sizeCache.getOffset(D);k=Math.max(0,k);let E={index:D,offsetInItem:k,total:K,scrollTop:Z},T=Q.sizeCache.getSize(D);if(T)E.offsetRatio=k/T;let F=Q.methods.get("_layoutToDataIndex");if(F){let g=F(D);if(g<0){for(let r=D+1;r<K;r++)if(g=F(r),g>=0)break}if(g>=0)E.dataIndex=g}let S=Q.methods.get("_getTotal");if(S)E.dataTotal=S();if(O?.length)E.selectedIds=O;let p=Q.methods.get("_getFocusedId");if(p){let g=p();if(g!==void 0)E.focusedId=g}return E};Q.methods.set("getScrollSnapshot",X);let Y=(Z,A=!0)=>{let{index:K,offsetInItem:$,selectedIds:O,focusedId:D}=Z,k=Q.getVirtualTotal(),E=Z.dataTotal??Z.total;if(k===0&&E&&E>0){Q.dataManager.setTotal(E);let R=Q.getVirtualTotal();Q.sizeCache.rebuild(R),Q.updateCompressionMode();let N=Q.getCachedCompression();if(!N.isCompressed)Q.updateContentSize(N.virtualSize)}else if(k===0)return;if(!Number.isFinite(K)||!Number.isFinite($))return;let T=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==T){Q.sizeCache.rebuild(T),Q.updateCompressionMode();let R=Q.getCachedCompression();if(!R.isCompressed)Q.updateContentSize(R.virtualSize)}let S=Q.getCachedCompression(),p=Q.methods.get("_dataToLayoutIndex"),g=K;if(Z.dataIndex!==void 0&&Z.dataIndex>=0)g=p?p(Z.dataIndex):Z.dataIndex;else if(p)g=p(K);let r=Math.max(0,Math.min(g,T-1)),y=Q.sizeCache.getSize(r),M=Z.offsetRatio!==void 0?Z.offsetRatio*y:Math.min($,y),w;if(S.isCompressed&&S.ratio!==1){let R=Q.methods.get("_getTotal")?.(),N=R!==void 0&&Z.dataTotal===R;if(Z.scrollTop!==void 0&&(Z.total===T||N))w=Z.scrollTop;else{let V=y?M/y:0;w=(r+V)/T*S.virtualSize}}else w=Q.sizeCache.getOffset(r)+M;let s=Q.state.viewportState.containerSize,m=S.isCompressed?Q.state.viewportState.totalSize:S.virtualSize,o=Math.max(0,m-s);w=Math.max(0,Math.min(w,o));let X0=w===Z.scrollTop;if(Z.dataIndex!==void 0&&Z.dataIndex>=0){let R=y?M/y:0;Q.methods.set("_restoreAnchor",{dataIndex:Z.dataIndex,fraction:R,skipAdjust:X0}),Q.methods.set("_suppressSave",1)}if(Q.scrollController.scrollTo(w),A&&O?.length){let R=Q.methods.get("select");if(R)R(...O)}let n=Q.methods.get("loadVisibleRange"),v=()=>{if(D===void 0)return;let R=Q.methods.get("_focusById");if(R)R(D)};if(n){let R=0,N=()=>{if(Q.state.viewportState.containerSize){if(Math.abs(Q.scrollController.getScrollTop()-w)>1)Q.scrollController.scrollTo(w);n().then(v)}else if(++R<10)requestAnimationFrame(N)};requestAnimationFrame(N)}else{let R=Q.methods.get("reload");if(R)requestAnimationFrame(()=>{R().then(v)});else requestAnimationFrame(v)}};Q.methods.set("restoreScroll",Y);let W=!!(j&&q),B=null,_=!1;if(Q.destroyHandlers.push(()=>{_=!0}),q){B=()=>{if(_||W||Q.methods.has("_suppressSave"))return;let K=Q.methods.get("getScrollSnapshot");if(!K)return;let $=K();try{sessionStorage.setItem(q,JSON.stringify($))}catch{}},Q.methods.set("_saveSnapshot",B);let Z=0,A=()=>{if(Z)return;Z=requestAnimationFrame(()=>{Z=0,B()})};if(Q.idleHandlers.push(A),Q.emitter.on("selection:change",A),Q.emitter.on("focus:change",A),j&&j.total&&j.total>0){let K=Q.methods.get("_cancelAutoLoad");if(K)K();Q.dataManager.setTotal(j.total)}}if(j){let Z=!0;if(j.selectedIds?.length){let A=Q.methods.get("_seedSelection");if(A)A(j.selectedIds),Z=!1}queueMicrotask(()=>{if(Y(j,Z),W=!1,B)B()})}}}};var d1=(J,q=50,j=1/0,Q=!0)=>{let X=J,Y=[],W=0,B=()=>{Y=X.map((E,T)=>({def:E,index:T,width:0,minWidth:CJ(E.minWidth??q,1),maxWidth:E.maxWidth??j,resizable:E.resizable??Q,offset:0}))},_=(E)=>{if(Y.length===0){W=0;return}let T=0,F=0;for(let S=0;S<Y.length;S++){let p=Y[S],g=p.def;if(g.width!==void 0)p.width=a2(g.width,p.minWidth,p.maxWidth),T+=p.width;else F++}if(F){let p=Math.max(0,E-T)/F;for(let g=0;g<Y.length;g++){let r=Y[g];if(r.def.width===void 0)r.width=a2(p,r.minWidth,r.maxWidth)}}Z()},Z=()=>{let E=0;for(let T=0;T<Y.length;T++){let F=Y[T];F.offset=E,E+=F.width}W=E},A=(E,T)=>{if(E<0||E>=Y.length)return 0;let F=Y[E];if(!F.resizable)return F.width;let S=a2(T,F.minWidth,F.maxWidth);return F.width=S,Z(),S},K=(E)=>{return Y[E]},$=(E)=>{if(Y.length===0)return;if(E<0)return Y[0];if(E>=W)return Y[Y.length-1];let T=0,F=Y.length-1;while(T<F){let S=T+F>>>1,p=Y[S];if(E<p.offset)F=S-1;else if(E>=p.offset+p.width)T=S+1;else return p}return Y[T]},O=(E)=>{if(E<0||E>=Y.length)return 0;return Y[E].offset},D=(E)=>{if(E<0||E>=Y.length)return 0;return Y[E].width},k=(E)=>{X=E,B()};return B(),{get columns(){return Y},get totalWidth(){return W},resolve:_,updateColumns:k,resizeColumn:A,getColumn:K,getColumnAtX:$,getColumnOffset:O,getColumnWidth:D}},a2=(J,q,j)=>Math.min(j,Math.max(q,J)),CJ=(J,q)=>Math.max(q,J);var c1=(J,q,j,Q,X,Y)=>{let W=document.createElement("div");W.setAttribute("role","rowgroup");let B=document.createElement("div");B.className=`${j}-table-header`,B.setAttribute("role","row"),B.setAttribute("aria-rowindex","1"),B.style.height=`${q}px`;let _=document.createElement("div");_.className=`${j}-table-header-scroll`,_.setAttribute("role","presentation"),B.appendChild(_),W.appendChild(B),J.insertBefore(W,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${q}px`);let Z=[],A=[],K=!0,$=null,O="asc",D=null,k=!1,E=-1,T=0,F=0,S=0,p=(V,L)=>{let H=document.createElement("div");H.className=`${j}-table-header-cell`,H.setAttribute("role","columnheader"),H.setAttribute("aria-colindex",String(L+1)),H.setAttribute("tabindex",L===0?"0":"-1"),H.dataset.columnKey=V.def.key;let d=V.def.align;if(d==="center")H.classList.add(`${j}-table-header-cell--center`);else if(d==="right")H.classList.add(`${j}-table-header-cell--right`);let J0=document.createElement("div");J0.className=`${j}-table-header-content`;let c=V.def.header?V.def.header(V.def):V.def.label;if(typeof c==="string")J0.textContent=c;else J0.appendChild(c);if(H.appendChild(J0),V.def.sortable){let j0=document.createElement("span");j0.className=`${j}-table-header-sort`,j0.setAttribute("aria-hidden","true"),H.appendChild(j0),A.push(j0),H.classList.add(`${j}-table-header-cell--sortable`)}else A.push(null);if(V.resizable){let j0=document.createElement("div");j0.className=`${j}-table-header-resize`,j0.dataset.resizeIndex=String(L),H.appendChild(j0)}return H},g=(V)=>{D=V,_.textContent="",Z=[],A=[];let L=V.columns;for(let H=0;H<L.length;H++){let d=L[H],J0=p(d,H);Z.push(J0),_.appendChild(J0)}if(r(V),$)y($,O)},r=(V)=>{D=V;let L=V.columns;_.style.width=`${V.totalWidth}px`;for(let H=0;H<Z.length&&H<L.length;H++){let d=Z[H],J0=L[H];d.style.width=`${J0.width}px`}},y=(V,L)=>{if($=V,O=L,!D)return;let H=D.columns;for(let d=0;d<A.length&&d<H.length;d++){let J0=A[d];if(!J0)continue;if(H[d].def.key===V)J0.textContent=L==="asc"?"▲":"▼",J0.style.opacity="0.7",Z[d].setAttribute("aria-sort",L==="asc"?"ascending":"descending");else J0.textContent="",J0.style.opacity="0",Z[d].removeAttribute("aria-sort")}},M=(V)=>{_.style.transform=`translateX(${-V}px)`},w=(V)=>{let L=V.target;if(!L.dataset.resizeIndex)return;if(V.preventDefault(),V.stopPropagation(),E=+L.dataset.resizeIndex,!D)return;let H=D.getColumn(E);if(!H?.resizable)return;k=!0,T=V.clientX,F=H.width,J.classList.add(`${j}--col-resizing`),J.style.cursor="col-resize",L.classList.add(`${j}-table-header-resize--active`),L.setPointerCapture(V.pointerId),L.addEventListener("pointermove",s),L.addEventListener("pointerup",m),L.addEventListener("pointercancel",m)},s=(V)=>{if(!k||!D)return;let L=V.clientX-T;if(Math.abs(L)<1)return;let H=Math.max(0,F+L);Q(E,H)},m=(V)=>{if(!k)return;let L=V.target;L.removeEventListener("pointermove",s),L.removeEventListener("pointerup",m),L.removeEventListener("pointercancel",m);try{L.releasePointerCapture(V.pointerId)}catch{}L.classList.remove(`${j}-table-header-resize--active`),J.classList.remove(`${j}--col-resizing`),J.style.cursor="",k=!1,E=-1},o=(V)=>{let L=V.target;if(L.dataset.resizeIndex)return;if(k)return;let H=L;while(H&&!H.dataset.columnKey)if(H=H.parentElement,H===B||H===null)return;let d=H.dataset.columnKey;if(!D)return;let J0=D.columns,c=-1;for(let z=0;z<J0.length;z++)if(J0[z].def.key===d){c=z;break}if(c===-1)return;let j0=J0[c];if(Y)Y({key:d,index:c,event:V});if(j0.def.sortable&&X){let z;if($===d)z=O==="asc"?"desc":null;else z="asc";X({key:d,index:c,direction:z})}},X0=(V)=>{if(V<0||V>=Z.length)return;Z[S]?.setAttribute("tabindex","-1"),S=V;let L=Z[S];L.setAttribute("tabindex","0"),L.focus()},n=(V)=>{let L=V.key;if(L==="ArrowRight"){if(V.ctrlKey||V.metaKey){if(!D)return;let H=D.getColumn(S);if(H?.resizable)Q(S,H.width+10),V.preventDefault()}else if(S<Z.length-1)X0(S+1),V.preventDefault();V.stopPropagation();return}if(L==="ArrowLeft"){if(V.ctrlKey||V.metaKey){if(!D)return;let H=D.getColumn(S);if(H?.resizable)Q(S,H.width-10),V.preventDefault()}else if(S>0)X0(S-1),V.preventDefault();V.stopPropagation();return}if(L==="Home"){X0(0),V.preventDefault(),V.stopPropagation();return}if(L==="End"){X0(Z.length-1),V.preventDefault(),V.stopPropagation();return}if(L==="Enter"||L===" "){if(!D)return;let H=D.getColumn(S);if(H?.def.sortable&&X){let d;if($===H.def.key)d=O==="asc"?"desc":null;else d="asc";X({key:H.def.key,index:S,direction:d}),V.preventDefault()}V.stopPropagation();return}if(L==="ArrowDown"){J.focus(),V.preventDefault(),V.stopPropagation();return}};return B.addEventListener("pointerdown",w),B.addEventListener("click",o),B.addEventListener("keydown",n),{element:B,update:r,updateSort:y,rebuild:g,show:()=>{if(K)return;K=!0,B.style.display=""},hide:()=>{if(!K)return;K=!1,B.style.display="none"},destroy:()=>{B.removeEventListener("pointerdown",w),B.removeEventListener("click",o),B.removeEventListener("keydown",n),J.style.removeProperty("--vlist-table-header-height"),W.remove(),Z=[],A=[],D=null,K=!1},syncScroll:M}};var vJ=()=>{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,X,Y,W,B,_)=>{let Z=vJ(),A=new Map,K=-1,$=j,O=null,D=null,k=null,E=(G,u)=>{D=G,k=u},T=(G,u)=>{u?G.setAttribute("aria-selected","true"):G.removeAttribute("aria-selected")},F=(G,u,f,i)=>{G.setAttribute("role",u),G.setAttribute("data-id",String(f)),G.setAttribute("data-index",String(i))},S=(G)=>String(G).startsWith("__placeholder_"),p=`${X}-item ${X}-table-row`,g=`${X}-item--selected`,r=`${X}-item--focused`,y=`${X}-table-cell`,M=`${X}-table-cell--center`,w=`${X}-table-cell--right`,s=`${X}-item--odd`,m=`${X}-item--placeholder`,o=`${X}-item--replaced`,X0=`${X}-item ${X}-table-row ${X}-table-group-header`,n=`${X}-table-group-header-content`,v=(G,u,f,i,a=!1)=>{if(f.def.cell){let Y0=f.def.cell(u,f.def,i);if(typeof Y0==="string")G.innerHTML=Y0;else G.replaceChildren(Y0)}else{let Y0=u[f.def.key],x=Y0!=null?String(Y0):"";if(a&&x)G.innerHTML=`<span>${x}</span>`;else G.textContent=x}},R=(G,u,f,i,a=!1)=>{let Y0=p;if(B){if(O){let x=O(u);if(x>=0&&(x&1)===1)Y0+=` ${s}`}else if((u&1)===1)Y0+=` ${s}`}if(a)Y0+=` ${m}`;if(f)Y0+=` ${g}`;if(i)Y0+=` ${r}`;G.className=Y0},N=(G,u,f)=>{if(f?.compression?.isCompressed)return Math.round(T2(G,f.scrollPosition,u,f.totalItems,f.containerSize,f.compression,f.rangeStart));return u.getOffset(G)},V=(G,u)=>{let f=u.def.align;if(f==="center")G.classList.add(M),G.classList.remove(w);else if(f==="right")G.classList.add(w),G.classList.remove(M);else G.classList.remove(M,w)},L=(G,u)=>{let i=$.columns.length;if(u.length===i)return u;let a=[];for(let Y0=0;Y0<i;Y0++){let x;if(Y0<u.length)x=u[Y0];else x=document.createElement("div"),x.className=y,G.appendChild(x);a.push(x)}for(let Y0=i;Y0<u.length;Y0++)u[Y0].remove();return a},H=(G,u,f,i)=>{let a=Z.acquire(),Y0=G,x=f.getSize(u),e=N(u,f,i);a.style.cssText=`width:${$.totalWidth}px;height:${x}px;transform:translateY(${e}px)`,a.className=X0,F(a,"presentation",G.id,u),a.removeAttribute("aria-selected"),a.removeAttribute("aria-rowindex"),a.replaceChildren();let P=document.createElement("div");if(P.className=n,k){let h=k(Y0.groupKey,Y0.groupIndex);if(typeof h==="string")P.innerHTML=h;else P.appendChild(h)}return a.appendChild(P),{element:a,cells:[],index:u,isGroupHeader:!0,lastItemId:G.id,lastSelected:!1,lastFocused:!1,lastOffset:e,lastHeight:x}},d=(G,u,f,i,a,Y0)=>{let x=Z.acquire(),e=a.getSize(u),P=N(u,a,Y0),h=S(G.id);x.style.cssText=`width:${$.totalWidth}px;height:${e}px;transform:translateY(${P}px)`,R(x,u,f,i,h),F(x,"row",G.id,u),x.id=`${Y}-item-${u}`,x.setAttribute("aria-rowindex",String(u+2)),T(x,f);let Q0=L(x,[]),t=$.columns;for(let V0=0;V0<Q0.length&&V0<t.length;V0++){let N0=Q0[V0],U0=t[V0];N0.style.cssText=`left:${U0.offset}px;width:${U0.width}px`,N0.setAttribute("role","gridcell"),N0.setAttribute("aria-colindex",String(V0+1)),V(N0,U0),v(N0,G,U0,u,h)}return{element:x,cells:Q0,index:u,isGroupHeader:!1,lastItemId:G.id,lastSelected:f,lastFocused:i,lastOffset:P,lastHeight:e}},J0=(G,u,f,i,a)=>{for(let[h,Q0]of A)if(h<u.start||h>u.end)Z.release(Q0.element),A.delete(h);let Y0=!1,x=W();if(x!==K)K=x,Y0=!0;let e=null,P=q();O=typeof B==="string"&&_?_():null;for(let h=u.start;h<=u.end;h++){let Q0=h-u.start,t=G[Q0];if(!t)continue;let V0=f.has(t.id),N0=h===i,U0=D?D(t):!1,W0=A.get(h);if(W0){if(W0.isGroupHeader!==U0){Z.release(W0.element),A.delete(h);let M0=U0?H(t,h,P,a):d(t,h,V0,N0,P,a);if(A.set(h,M0),!e)e=document.createDocumentFragment();e.appendChild(M0.element);continue}if(U0){if(W0.lastItemId!==t.id){let P0=t,E0=W0.element.firstElementChild;if(E0&&k){let w0=k(P0.groupKey,P0.groupIndex);if(typeof w0==="string")E0.innerHTML=w0;else E0.replaceChildren(w0)}W0.element.setAttribute("data-id",String(t.id)),W0.lastItemId=t.id}let $0=N(h,P,a);if(W0.lastOffset!==$0)W0.lastOffset=$0,W0.element.style.transform=`translateY(${$0}px)`;let H0=P.getSize(h);if(W0.lastHeight!==H0)W0.lastHeight=H0,W0.element.style.height=`${H0}px`}else{let M0=W0.lastItemId!==t.id,$0=W0.lastSelected!==V0,H0=W0.lastFocused!==N0;if(M0){let w0=W0.lastItemId!=null&&S(W0.lastItemId),D0=S(t.id);if(!D0&&Y2(f,h,t.id))V0=!0;let k0=$.columns;for(let b0=0;b0<W0.cells.length&&b0<k0.length;b0++)v(W0.cells[b0],t,k0[b0],h,D0);if(R(W0.element,h,V0,N0,D0),W0.element.setAttribute("data-id",String(t.id)),T(W0.element,V0),w0&&!D0)W0.element.classList.add(o),setTimeout(()=>{W0.element.classList.remove(o)},300);W0.lastItemId=t.id,W0.lastSelected=V0,W0.lastFocused=N0}else if($0||H0)R(W0.element,h,V0,N0,S(t.id)),T(W0.element,V0),W0.lastSelected=V0,W0.lastFocused=N0;let P0=N(h,P,a);if(W0.lastOffset!==P0)W0.lastOffset=P0,W0.element.style.transform=`translateY(${P0}px)`;let E0=P.getSize(h);if(W0.lastHeight!==E0)W0.lastHeight=E0,W0.element.style.height=`${E0}px`;if(Y0)W0.element.setAttribute("aria-rowindex",String(h+2))}}else{if(Y2(f,h,t.id))V0=!0;let M0=U0?H(t,h,P,a):d(t,h,V0,N0,P,a);if(A.set(h,M0),!e)e=document.createDocumentFragment();e.appendChild(M0.element)}}if(e)J.appendChild(e)},c=(G)=>{let u=q();for(let[f,i]of A){let a=N(f,u,G);if(i.lastOffset!==a)i.lastOffset=a,i.element.style.transform=`translateY(${a}px)`}},j0=(G,u,f,i)=>{let a=A.get(G);if(!a)return;if(a.isGroupHeader)return;let Y0=$.columns;for(let x=0;x<a.cells.length&&x<Y0.length;x++)v(a.cells[x],u,Y0[x],G);a.element.setAttribute("data-id",String(u.id)),a.lastItemId=u.id,R(a.element,G,f,i),T(a.element,f),a.lastSelected=f,a.lastFocused=i},z=(G,u,f)=>{let i=A.get(G);if(!i)return;if(i.isGroupHeader)return;let a=i.lastSelected!==u,Y0=i.lastFocused!==f;if(a||Y0)R(i.element,G,u,f),T(i.element,u),i.lastSelected=u,i.lastFocused=f},I=(G)=>{$=G;let u=G.columns;for(let[,f]of A)if(f.element.style.width=`${G.totalWidth}px`,f.cells.length>0)for(let i=0;i<f.cells.length&&i<u.length;i++){let a=f.cells[i],Y0=u[i];a.style.left=`${Y0.offset}px`,a.style.width=`${Y0.width}px`}},b=(G)=>{return A.get(G)?.element},U=()=>{for(let[,G]of A)Z.release(G.element);A.clear(),K=-1};return{render:J0,updatePositions:c,updateItem:j0,updateItemClasses:z,getElement:b,updateColumnLayout:I,setGroupHeaderFn:E,clear:U,destroy:()=>{U(),Z.clear()}}};var SJ=new Set,o2=(J)=>{if(!J.columns?.length)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(X){let{dom:Y,emitter:W,config:B}=X,{classPrefix:_}=B;if(B.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(B.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let Z=J.resizable??!0,A=J.minColumnWidth??50,K=J.maxColumnWidth??1/0,$=J.rowBorders??!0,O=J.rowHeight,D=X.rawConfig.padding,k=!D?0:typeof D==="number"?D*2:D.length===2?D[1]*2:D[1]+D[3],E=J.headerHeight??(typeof O==="number"?O:40),T=J.sort?.key??null,F=J.sort?.direction??"asc";if(q=d1(J.columns,A,K,Z),typeof O==="function"||typeof O==="number")X.setSizeConfig(O);if(X.rebuildSizeCache(),Y.root.classList.add(`${_}--table`),$&&Y.root.classList.add(`${_}--table-row-borders`),J.columnBorders&&Y.root.classList.add(`${_}--table-col-borders`),B.interactive)Y.root.setAttribute("tabindex","0"),Y.items.removeAttribute("tabindex");Y.root.setAttribute("role","grid"),Y.root.setAttribute("aria-colcount",`${J.columns.length}`);let S=-1,p=Y.root.getAttribute("aria-label")??Y.items.getAttribute("aria-label");if(p)Y.root.setAttribute("aria-label",p),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 g=X.getContainerWidth()-k;q.resolve(g);let r=(I,b)=>{if(!q)return;let U=q.getColumn(I);if(!U)return;let C=U.width,G=q.resizeColumn(I,b);j?.update(q),Q?.updateColumnLayout(q),w(),W.emit("column:resize",{key:U.def.key,index:I,previousWidth:C,width:G})},y=(I)=>{T=I.direction===null?null:I.key,F=I.direction??"asc",j?.updateSort(T,F),W.emit("column:sort",I)},M=(I)=>{W.emit("column:click",I)};if(j=c1(Y.root,E,_,r,y,M),j.rebuild(q),T)j.updateSort(T,F);let w=()=>{if(!q)return;let I=`${q.totalWidth}px`;Y.content.style.minWidth=I,Y.items.style.minWidth=I};w(),Q=l1(Y.items,()=>X.sizeCache,q,J.columns,_,B.ariaIdPrefix,()=>X.dataManager.getTotal(),X.rawConfig.item?.striped,()=>X.getStripeIndexFn());let s=null,m=null,o=!1,X0=()=>{if(o)return;o=!0,s=X.methods.get("_getSelectedIds")??null,m=X.methods.get("_getFocusedIndex")??null},n=-1,v=-1,R=-1,N=!0,V=B.overscan,L={start:0,end:0},H={start:0,end:0},d=()=>{if(X.state.isDestroyed)return;let I=X.scrollController.getScrollTop(),b=X.state.viewportState.containerSize,U=X.getVirtualTotal(),C=X.state.viewportState.isCompressed;if(!N&&I===n&&b===v&&U===R)return;n=I,v=b,R=U,N=!1;let G=U+1;if(G!==S)S=G,Y.root.setAttribute("aria-rowcount",`${G}`);X.getVisibleRange(I,b,U,L),H.start=Math.max(0,L.start-V),H.end=Math.min(U-1,L.end+V);let u=X.state.viewportState;u.scrollPosition=I,u.visibleRange.start=L.start,u.visibleRange.end=L.end,u.renderRange.start=H.start,u.renderRange.end=H.end;let f=X.state.lastRenderRange,i=f.start!==H.start||f.end!==H.end;if(!i&&C){Q.updatePositions(X.getCompressionContext());return}if(!i)return;let a=C?X.getCompressionContext():void 0,Y0=X.dataManager.getItemsInRange(H.start,H.end);X0();let x=s?s():SJ,e=m?m():-1;Q.render(Y0,H,x,e,a),f.start=H.start,f.end=H.end,W.emit("range:change",{range:{start:H.start,end:H.end}})},J0=()=>{if(X.state.isDestroyed)return;X.state.lastRenderRange.start=-1,X.state.lastRenderRange.end=-1,N=!0,d()};X.setRenderFns(d,J0),X.setUpdateItemClassesFn((I,b,U)=>{Q?.updateItemClasses(I,b,U)});let c=j,j0=-1,z=()=>{let I=Y.viewport.scrollLeft;if(I!==j0){if(j0=I,c.syncScroll)c.syncScroll(I)}};X.afterScroll.push(z),Y.viewport.addEventListener("scroll",z,{passive:!0}),X.resizeHandlers.push((I,b)=>{if(!q)return;q.resolve(I-k),j?.update(q),Q?.updateColumnLayout(q),w()}),X.methods.set("updateColumns",(I)=>{if(!q||!j)return;if(q.updateColumns(I),q.resolve(X.getContainerWidth()-k),j.rebuild(q),T)j.updateSort(T,F);w(),Q?.updateColumnLayout(q),Q?.clear(),X.forceRender()}),X.methods.set("resizeColumn",(I,b)=>{if(!q)return;let U;if(typeof I==="string"){let C=q.columns;U=-1;for(let G=0;G<C.length;G++)if(C[G].def.key===I){U=G;break}if(U===-1)return}else U=I;r(U,b)}),X.methods.set("getColumnWidths",()=>{if(!q)return{};let I={},b=q.columns;for(let U=0;U<b.length;U++)I[b[U].def.key]=b[U].width;return I}),X.methods.set("setSort",(I,b)=>{T=I,F=b??"asc",j?.updateSort(T,F)}),X.methods.set("getSort",()=>{return{key:T,direction:F}}),X.methods.set("_getTableLayout",()=>q),X.methods.set("_updateRenderedItem",(I,b,U,C)=>{Q?.updateItem(I,b,U,C)}),X.methods.set("_replaceTableRenderer",(I)=>{Q=I}),X.methods.set("_updateTableForGroups",(I,b)=>{Q?.setGroupHeaderFn(I,b)}),X.methods.set("_getTableHeaderHeight",()=>E),X.keydownHandlers.push((I)=>{if(I.key!=="ArrowLeft"&&I.key!=="ArrowRight")return;if(!q)return;let b=q.columns;if(b.length===0)return;let U=Y.viewport.clientWidth;if(q.totalWidth<=U)return;let C=Y.viewport.scrollLeft;if(I.key==="ArrowRight"){for(let G=0;G<b.length;G++)if(b[G].offset>C+1){Y.viewport.scrollLeft=b[G].offset,I.preventDefault();return}}else{for(let G=b.length-1;G>=0;G--)if(b[G].offset<C-1){Y.viewport.scrollLeft=b[G].offset,I.preventDefault();return}if(C>0)Y.viewport.scrollLeft=0,I.preventDefault()}}),X.contentSizeHandlers.push(()=>{w()}),X.destroyHandlers.push(()=>{Y.viewport.removeEventListener("scroll",z),j?.destroy(),j=null,Q?.destroy(),Q=null,Y.content.style.minWidth="",Y.items.style.minWidth="",Y.root.classList.remove(`${_}--table`),Y.root.removeAttribute("role"),Y.root.removeAttribute("aria-colcount"),Y.root.removeAttribute("tabindex"),Y.viewport.removeAttribute("role"),Y.viewport.setAttribute("tabindex","-1"),Y.content.removeAttribute("role");let I=Y.root.getAttribute("aria-label");if(I)Y.items.setAttribute("aria-label",I),Y.root.removeAttribute("aria-label");if(Y.root.removeAttribute("aria-rowcount"),Y.items.setAttribute("role",B.interactive?"listbox":"list"),B.interactive)Y.items.setAttribute("tabindex","0")})},destroy(){j?.destroy(),j=null,Q?.destroy(),Q=null}}};var n2=(J)=>{let q=J?.handle??null,j=J?.ghostClass??"vlist-sort-ghost",Q=J?.shiftDuration??150,X=J?.edgeScrollZone??40,Y=J?.edgeScrollSpeed??20,W=J?.dragThreshold??5,B=J?.ghostContainer??null;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(_){let{dom:Z,emitter:A,config:K}=_,{classPrefix:$}=K,{root:O,viewport:D,items:k}=Z,{sizeCache:E}=_,T=K.horizontal,F=T?"translateX":"translateY",S=Q>0?`transform ${Q}ms ease`:"none",p=`${$}--sorting`,g=`${$}--settling`,r=`${$}-item--drag-source`,y=!1,M=-1,w=-1,s=0,m=0,o=0,X0=0,n=!1,v=null,R=0,N=null,V=0,L=0,H=0,d=null;_.methods.set("isSorting",()=>y||t);let J0=(q0)=>{return q0.closest("[data-index]")},c=(q0)=>{let B0=q0.dataset.index;return B0===void 0?-1:+B0},j0=(q0)=>{let B0=q0.getBoundingClientRect(),_0=q0.cloneNode(!0);return _0.className=`${$}-item ${j}`,_0.removeAttribute("data-index"),_0.style.cssText=`position:fixed;pointer-events:none;z-index:10000;width:${B0.width}px;height:${B0.height}px;left:${B0.left}px;top:${B0.top}px;transition:none;will-change:transform`,(B||document.body).appendChild(_0),_0},z=()=>{if(!v)return;let q0=o-L,B0=X0-H;v.style.left=`${q0}px`,v.style.top=`${B0}px`},I=()=>{let q0=_.dataManager.getTotal();if(q0===0)return 0;let B0=D.getBoundingClientRect(),_0=_.scrollController.getScrollTop(),G0=T?o-L-B0.left+D.scrollLeft+_0:X0-H-B0.top+_0,O0=G0+V,F0=E.getOffset(M)+E.getSize(M);if(O0>F0){let L0=E.indexAtOffset(O0),l0=E.getOffset(L0)+E.getSize(L0)/2,p0=O0>l0?L0:L0-1;return Math.min(Math.max(p0,M),q0-1)}let C0=E.getOffset(M);if(G0<C0){let L0=E.indexAtOffset(G0),l0=E.getOffset(L0)+E.getSize(L0)/2,p0=G0<l0?L0:L0+1;return Math.max(Math.min(p0,M),0)}return M},b=()=>{let q0=k.children,B0=V;for(let _0=0;_0<q0.length;_0++){let G0=q0[_0],O0=c(G0);if(O0<0||O0===M)continue;let F0=0;if(w>M){if(O0>M&&O0<=w)F0=-B0}else if(w<M){if(O0>=w&&O0<M)F0=B0}let C0=E.getOffset(O0),L0=Math.round(C0+F0);G0.style.transition=S,G0.style.transform=`${F}(${L0}px)`}},U=()=>{let q0=k.children;for(let B0=0;B0<q0.length;B0++){let _0=q0[B0],G0=c(_0);if(G0>=0)_0.style.transform=`${F}(${Math.round(E.getOffset(G0))}px)`;_0.style.transition=""}},C=()=>{let q0=I();if(q0===w)return;w=q0,b(),A.emit("sort:move",{fromIndex:M,currentIndex:w})},G=!1,u=()=>{let q0=D.getBoundingClientRect();if(T)return o<q0.left||o>q0.right;return X0<q0.top||X0>q0.bottom},f=()=>{let q0=()=>{if(!y)return;let B0=D.getBoundingClientRect(),_0=0,G0=3;if(T){let F0=o-B0.left,C0=B0.right-o;if(F0<X){let L0=Math.min(G0,1-F0/X);_0=-Y*L0*L0}else if(C0<X){let L0=Math.min(G0,1-C0/X);_0=Y*L0*L0}}else{let F0=X0-B0.top,C0=B0.bottom-X0;if(F0<X){let L0=Math.min(G0,1-F0/X);_0=-Y*L0*L0}else if(C0<X){let L0=Math.min(G0,1-C0/X);_0=Y*L0*L0}}let O0=u();if(_0!==0){let F0=_.scrollController.getScrollTop(),C0=E.getTotalSize()-(T?D.clientWidth:D.clientHeight);if(_0<0&&F0<=0||_0>0&&F0>=C0)G=O0;else G=!0,_.scrollController.scrollTo(F0+_0)}else G=O0;R=requestAnimationFrame(q0)};R=requestAnimationFrame(q0)},i=()=>{if(R)cancelAnimationFrame(R),R=0},a=(q0=!1)=>{if(y=!1,n=!1,v&&v.parentNode)v.remove();v=null,N=null;let B0=k.children;for(let G0=0;G0<B0.length;G0++){let O0=B0[G0];O0.classList.remove(r);let F0=c(O0);if(F0>=0)O0.style.transform=`${F}(${Math.round(E.getOffset(F0))}px)`;O0.style.transition=""}i(),O.classList.remove(p),document.body.style.cursor="";let _0=window.getSelection();if(_0)_0.removeAllRanges();if(document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",P),document.removeEventListener("pointercancel",Q0),!q0)_.forceRender()},Y0=(q0)=>{if(_.state.isDestroyed)return;if(y)return;if(t)z0();if(q0.button!==0)return;let B0=q0.target;if(q){if(!B0.closest(q))return}let _0=J0(B0);if(!_0)return;let G0=c(_0);if(G0<0)return;s=q0.clientX,m=q0.clientY,o=q0.clientX,X0=q0.clientY,M=G0,n=!1,N=_0;let O0=_0.getBoundingClientRect();L=q0.clientX-O0.left,H=q0.clientY-O0.top,document.addEventListener("pointermove",x),document.addEventListener("pointerup",P),document.addEventListener("pointercancel",Q0)},x=(q0)=>{if(o=q0.clientX,X0=q0.clientY,!n){let B0=o-s,_0=X0-m;if(Math.sqrt(B0*B0+_0*_0)<W)return;if(n=!0,y=!0,w=M,O.classList.add(p),document.body.style.cursor="grabbing",V=E.getSize(M),N)v=j0(N),N.classList.add(r);let O0=M0();if(O0>=0){let F0=_.dataManager.getItem(O0);d=F0?F0.id:null}else d=null;A.emit("sort:start",{index:M}),f()}if(y){if(q0.preventDefault(),z(),!G)C();else if(u()){if(w!==M)w=M,U()}}},e=(q0,B0)=>{let _0=q0!==B0&&q0>=0&&B0>=0,G0=()=>{if(y=!1,_0){if(O.classList.add(g),A.emit("sort:end",{fromIndex:q0,toIndex:B0}),d!==null)$0(d);a(!0),requestAnimationFrame(()=>{O.classList.remove(g)})}else O.classList.add(g),A.emit("sort:cancel",{originalItems:_.getAllLoadedItems()}),a(!1),requestAnimationFrame(()=>{O.classList.remove(g)})};if(!v){G0();return}let O0=D.getBoundingClientRect(),F0=_.scrollController.getScrollTop(),C0=E.getOffset(B0),L0=Q>0?Q:150;if(v.style.transition=`left ${L0}ms ease, top ${L0}ms ease`,T)v.style.left=`${O0.left-D.scrollLeft+C0-F0}px`,v.style.top=`${O0.top}px`;else v.style.left=`${O0.left}px`,v.style.top=`${O0.top+C0-F0}px`;let l0=!1,p0=()=>{if(l0)return;l0=!0,v?.removeEventListener("transitionend",p0),G0()};v.addEventListener("transitionend",p0),setTimeout(p0,L0+50)},P=(q0)=>{if(!n){document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",P),document.removeEventListener("pointercancel",Q0),N=null;return}q0.preventDefault(),document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",P),document.removeEventListener("pointercancel",Q0),i(),e(M,w)},h=()=>{if(!n)return;document.removeEventListener("pointermove",x),document.removeEventListener("pointerup",P),document.removeEventListener("pointercancel",Q0),i(),U(),e(M,M)},Q0=()=>{h()};k.addEventListener("pointerdown",Y0);let t=!1,V0="",N0=-1,U0=-1,W0=[],M0=()=>{let q0=_.methods.get("_getFocusedIndex");return q0?q0():-1},$0=(q0)=>{let B0=_.methods.get("_focusById");if(B0)B0(q0)},H0=(q0)=>{let B0=T?D.clientWidth:D.clientHeight,_0=_.scrollController.getScrollTop(),G0=N2(q0,E,_0,B0);if(G0!==_0)_.scrollController.scrollTo(_.adjustScrollPosition(G0))},P0=(q0)=>{Z.liveRegion.textContent="",Z.liveRegion.offsetHeight,Z.liveRegion.textContent=q0},E0=(q0)=>{let B0=_.dataManager.getItem(q0);if(!B0)return"";return k.querySelector(`[data-index="${q0}"]`)?.textContent?.trim()||String(B0.id)},w0=()=>String(_.dataManager.getTotal()),D0=(q0)=>{let B0=k.children;for(let _0=0;_0<B0.length;_0++)B0[_0].style.transition=q0},k0=(q0)=>{let B0=_.dataManager.getItem(q0);if(!B0)return;t=!0,V0=B0.id,N0=q0,U0=q0;let _0=_.dataManager.getTotal();W0=[];for(let G0=0;G0<_0;G0++)W0.push(_.dataManager.getItem(G0));O.classList.add(p),A.emit("sort:start",{index:q0}),X2(),P0(`Grabbed ${E0(q0)}. Current position ${q0+1} of ${w0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},b0=()=>{if(!t)return;t=!1;let q0=U0,B0=E0(q0);D0("none"),O.classList.remove(p),I0(),$0(V0),_.forceRender(),P0(`${B0} dropped. Final position ${q0+1} of ${w0()}.`),W0=[],requestAnimationFrame(()=>{D0("")})},z0=()=>{if(!t)return;t=!1;let q0=N0;if(D0("none"),O.classList.remove(p),I0(),U0!==q0)A.emit("sort:cancel",{originalItems:W0});$0(V0),_.forceRender(),H0(q0),P0(`Reorder cancelled. Returned to position ${q0+1} of ${w0()}.`),W0=[],requestAnimationFrame(()=>{D0("")})},u0=(q0)=>{if(!t)return;let B0=_.dataManager.getTotal(),_0=U0+q0;if(_0<0||_0>=B0)return;let G0=U0,O0=_0;D0("none"),A.emit("sort:end",{fromIndex:G0,toIndex:O0}),U0=O0,$0(V0),_.forceRender(),H0(O0),X2(),P0(`${E0(O0)} moved. New position ${O0+1} of ${w0()}.`),requestAnimationFrame(()=>{D0("")})},h0=`${$}-item--kb-sorting`,I0=()=>{let q0=k.querySelectorAll(`.${h0}`);for(let B0=0;B0<q0.length;B0++)q0[B0].classList.remove(h0)},X2=()=>{I0();let q0=k.querySelector(`[data-id="${V0}"]`);if(q0)q0.classList.add(h0)};_.afterRenderBatch.push(()=>{if(t)X2()});let a0=(q0)=>{if(_.state.isDestroyed)return;if(y){if(q0.key==="Escape")q0.preventDefault(),q0.stopImmediatePropagation(),h();return}if(t)switch(q0.key){case" ":case"Enter":q0.preventDefault(),q0.stopImmediatePropagation(),b0();return;case"Escape":q0.preventDefault(),q0.stopImmediatePropagation(),z0();return;case"ArrowUp":case"ArrowLeft":q0.preventDefault(),q0.stopImmediatePropagation(),u0(-1);return;case"ArrowDown":case"ArrowRight":q0.preventDefault(),q0.stopImmediatePropagation(),u0(1);return;default:if(!q0.key.startsWith("F")&&q0.key!=="Tab")q0.preventDefault(),q0.stopImmediatePropagation();return}if(q0.key===" "&&!q0.shiftKey&&!q0.ctrlKey&&!q0.metaKey){let B0=M0();if(B0>=0)q0.preventDefault(),q0.stopImmediatePropagation(),k0(B0)}};O.addEventListener("keydown",a0);let o0=`${$}-sort-instructions`,v0=document.createElement("div");v0.id=o0,v0.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",v0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",O.appendChild(v0),_.afterRenderBatch.push((q0)=>{for(let B0=0;B0<q0.length;B0++){let _0=q0[B0].element;_0.setAttribute("aria-roledescription","sortable item"),_0.setAttribute("aria-describedby",o0)}}),_.afterRenderBatch.push((q0)=>{if(!y)return;for(let B0=0;B0<q0.length;B0++){let{index:_0,element:G0}=q0[B0];if(_0===M)G0.classList.add(r),N=G0;else{G0.classList.remove(r);let O0=0;if(w>M){if(_0>M&&_0<=w)O0=-V}else if(w<M){if(_0>=w&&_0<M)O0=V}let F0=Math.round(E.getOffset(_0)+O0);G0.style.transform=`${F}(${F0}px)`}}}),_.destroyHandlers.push(()=>{if(t)z0();a(),k.removeEventListener("pointerdown",Y0),O.removeEventListener("keydown",a0),v0.remove()})}}};var r1=(J,q)=>{let j=new Map,Q=(Y)=>j.get(Y)??J,X=i0(Q,q);return{getOffset(Y){return X.getOffset(Y)},getSize(Y){return Q(Y)},indexAtOffset(Y){return X.indexAtOffset(Y)},getTotalSize(){return X.getTotalSize()},getTotal(){return X.getTotal()},rebuild(Y){if(Y<X.getTotal()){for(let W of j.keys())if(W>=Y)j.delete(W)}X=i0(Q,Y)},isVariable(){return!0},setMeasuredSize(Y,W){j.set(Y,W)},isMeasured(Y){return j.has(Y)},getEstimatedSize(){return J},measuredCount(){return j.size}}};var i2=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(q){let j=q.config.horizontal,X=q.rawConfig.item,Y=j?X.estimatedWidth:X.estimatedHeight;if(Y==null||Y<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let W=X.gap??0,B=q.getVirtualTotal(),_=g0(q.rawConfig.padding),Z=e0(_,j),A=r1(Y+W,B),K=q.methods.get("_setSizeCache"),$=q.methods.get("_setConstrainSize");if(!K||!$)throw Error("[vlist/withAutoSize] Incompatible builder version");K(A),$((y)=>A.isMeasured(y));let O=q.scrollController,D=q.state.viewportState,k=new WeakMap,E=0,T=!1,F=2,S=(y)=>{let M=O.getScrollTop(),w=D.containerSize;if(w<=0)return!1;return M>=Math.max(0,y+Z-w)-F},p=()=>{let y=A.getTotalSize(),M=D.containerSize;if(M<=0)return;let w=Math.max(0,y+Z-M);if(w>O.getScrollTop())O.scrollTo(w)},g=()=>{q.updateContentSize(A.getTotalSize())},r=()=>{if(T){let y=q.dom.viewport,M=y.scrollHeight,w=M-y.clientHeight,s=O.getScrollTop(),m=w>0&&s>=w-F,o=q.getVirtualTotal(),X0=o&&D.renderRange.end>=o-1,n=Math.abs(A.getTotalSize()+Z-M),v=m||X0&&w>0&&s>=w-n-F;if(g(),T=!1,v)y.scrollHeight,p(),q.forceRender()}};J=new ResizeObserver((y)=>{if(q.state.isDestroyed)return;let M=!1,w=D.visibleRange.start;for(let N of y){let V=k.get(N.target);if(V===void 0)continue;let L=j?N.borderBoxSize[0].inlineSize:N.borderBoxSize[0].blockSize;if(!A.isMeasured(V)){let H=L+W,d=A.getSize(V);if(A.setMeasuredSize(V,H),M=!0,V<w&&H!==d)E+=H-d;J.unobserve(N.target);let J0=N.target;if(j)J0.style.width=`${L}px`;else J0.style.height=`${L}px`}}if(!M)return;let s=A.getTotalSize();if(A.rebuild(q.getVirtualTotal()),E)O.scrollTo(O.getScrollTop()+E),E=0;let m=S(s),o=q.getVirtualTotal(),X0=o&&D.renderRange.end>=o-1,n=q.dom.viewport,v=n.scrollHeight-n.clientHeight,R=v>0&&O.getScrollTop()>=v-F;if(m||X0||!O.isScrolling()){if(g(),T=!1,m||X0&&R)n.scrollHeight,p()}else T=!0;q.forceRender()}),q.afterRenderBatch.push((y)=>{for(let{index:M,element:w}of y)if(!A.isMeasured(M))k.set(w,M),J.observe(w)}),q.idleHandlers.push(r),q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};var fJ=50,hJ=0.1;function s1(J){let q=0,j=0,Q=0;function X(){return Q>0?j/Q:0}function Y(_){if(q=_,_>hJ&&_<fJ)j+=_,Q++}function W(){let _=J.getTotal();if(_===0)return 0;let Z=J.getItemSize();if(Z<=0)return 0;let A=J.getContainerSize();if(A<=0)return 0;let K=J.getScrollPosition(),$=typeof J.getColumns==="function"?J.getColumns():1,D=Math.ceil(_/$)*Z,E=Math.min(D,j2)-A,T=D-A,F=E>0?T/E:1,S=K*F,p=Math.ceil((S+A)/Z);return Math.min(p*$,_)}function B(){let _=J.getTotal(),Z=W();return{progress:_>0?Math.min(100,Math.max(0,Z/_*100)):0,velocity:q,velocityAvg:X(),itemCount:Z,total:_}}return{getState:B,onVelocity:Y}}export{o2 as withTable,n2 as withSortable,s2 as withSnapshots,r2 as withSelection,f2 as withScrollbar,h2 as withScale,p2 as withPage,l2 as withMasonry,x2 as withGroups,c2 as withGrid,i2 as withAutoSize,I2 as withAsync,z2 as vlist,s1 as createStats};
1
+ var N1=2,W1=(J=0)=>({velocity:0,sampleCount:0}),_1=(J,q)=>{let X=performance.now(),Q=J._lt??X,U=J._lp??q,Y=X-Q;if(J._lp=q,J._lt=X,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-U)/Y,J.sampleCount=Math.min(J.sampleCount+1,5),J};var XJ=(J,q)=>{let X=q;return{getOffset:(Q)=>Q*J,getSize:(Q)=>J,indexAtOffset:(Q)=>{if(X===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(Q/J),X-1))},getTotalSize:()=>X*J,getTotal:()=>X,rebuild:(Q)=>{X=Q},isVariable:()=>!1}},UJ=(J,q)=>{let X=q,Q=new Float64Array(0),U=(K)=>{X=K,Q=new Float64Array(K+1),Q[0]=0;for(let V=0;V<K;V++)Q[V+1]=Q[V]+J(V)};U(q);let Y=(K)=>{if(X===0)return 0;if(K<=0)return 0;if(K>=Q[X])return X-1;let V=0,W=X-1;while(V<W){let Z=V+W+1>>>1;if(Q[Z]<=K)V=Z;else W=Z-1}return V};return{getOffset:(K)=>{if(K<=0)return 0;if(K>=X)return Q[X];return Q[K]},getSize:(K)=>J(K),indexAtOffset:(K)=>Y(K),getTotalSize:()=>Q[X]??0,getTotal:()=>X,rebuild:(K)=>U(K),isVariable:()=>!0}},i0=(J,q)=>{if(typeof J==="number")return XJ(J,q);return UJ(J,q)};var B1=()=>{let J={},q=(Y,K)=>{if(!J[Y])J[Y]=new Set;return J[Y].add(K),()=>X(Y,K)},X=(Y,K)=>{J[Y]?.delete(K)};return{on:q,off:X,emit:(Y,K)=>{J[Y]?.forEach((V)=>{try{V(K)}catch(W){console.error(`[vlist] Error in event handler for "${String(Y)}":`,W)}})},clear:(Y)=>{if(Y)delete J[Y];else for(let K in J)delete J[K]}}};var V1=(J)=>{if(typeof J==="string"){let q=document.querySelector(J);if(!q)throw Error(`[vlist] Container not found: ${J}`);return q}return J},K2=(J,q)=>{let X=document.createElement("div");if(X.className=J,q)X.style.cssText=q;return X},D1=(J,q,X,Q,U)=>{let Y=Q,K=K2(q);if(Y)K.classList.add(`${q}--horizontal`);let V=K2(`${q}-viewport`,Y?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");V.setAttribute("tabindex","-1");let W=K2(`${q}-content`,Y?"position:relative;height:100%":"position:relative;width:100%"),Z=K2(`${q}-items`,Y?"position:relative;height:100%":"position:relative;width:100%");if(Z.setAttribute("role",U!==!1?"listbox":"list"),U!==!1)Z.setAttribute("tabindex","0");if(X)Z.setAttribute("aria-label",X);if(Y)Z.setAttribute("aria-orientation","horizontal");let F=K2(`${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 F.setAttribute("aria-live","polite"),F.setAttribute("aria-atomic","true"),F.setAttribute("role","status"),W.appendChild(Z),V.appendChild(W),K.appendChild(F),K.appendChild(V),J.appendChild(K),{root:K,viewport:V,content:W,items:Z,liveRegion:F}};var M1=(J=100)=>{let q=[];return{acquire:()=>{let X=q.pop();if(X)return X;let Q=document.createElement("div");return Q.setAttribute("role","option"),Q},release:(X)=>{if(q.length<J)X.className="",X.textContent="",X.removeAttribute("style"),X.removeAttribute("data-index"),X.removeAttribute("data-id"),q.push(X)},clear:()=>{q.length=0}}};var G1=(J,q,X,Q,U)=>{if(Q===0||q===0){U.start=0,U.end=-1;return}let Y=X.indexAtOffset(J),K=X.indexAtOffset(J+q);if(K<Q-1)K++;U.start=Math.max(0,Y),U.end=Math.min(Q-1,Math.max(0,K))},O1=(J,q,X,Q)=>{Q.start=Math.max(0,J.start-q),Q.end=Math.min(X-1,J.end+q)},A1=(J,q,X,Q,U,Y=0)=>{if(Q===0)return 0;let K=Math.max(0,Math.min(J,Q-1)),V=q.getOffset(K),W=q.getSize(K),Z=q.getTotalSize(),F=Math.max(0,Z+Y-X),G;switch(U){case"center":G=V-(X-W)/2;break;case"end":G=Y>0&&V+W>=Z?F:V-X+W;break;default:G=V}return Math.max(0,Math.min(G,F))};var E2={top:0,right:0,bottom:0,left:0},g0=(J)=>{if(J==null)return E2;if(typeof J==="number")return J===0?E2:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[Y,K]=J;return Y===0&&K===0?E2:{top:Y,right:K,bottom:Y,left:K}}let[q,X,Q,U]=J;return q===0&&X===0&&Q===0&&U===0?E2:{top:q,right:X,bottom:Q,left:U}},e0=(J,q)=>q?J.left+J.right:J.top+J.bottom,F2=(J,q)=>q?J.top+J.bottom:J.left+J.right;var J2=(J,q,X)=>{let Q=Array.from(q).sort((K,V)=>K-V);if(Q.length<=1)return;let U=[];for(let K=0;K<Q.length;K++){let V=X(Q[K]);if(V)U.push(V)}if(U.length<=1)return;let Y=J.firstChild;for(let K=0;K<U.length;K++){let V=U[K];if(V===Y)Y=Y.nextSibling;else J.insertBefore(V,Y)}};var E1=(J,q)=>{let{dom:X,emitter:Q,resolvedConfig:U,rawConfig:Y,rendered:K,pool:V,sharedState:W,isHorizontal:Z,classPrefix:F,contentSizeHandlers:G,idleHandlers:y,afterScroll:T,clickHandlers:$,contextMenuHandlers:H,keydownHandlers:_,resizeHandlers:k,destroyHandlers:v,methods:C,onScrollFrame:g,resizeObserver:p,renderRange:x,afterRenderBatch:z}=q;return{get dom(){return X},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return U},get rawConfig(){return Y},adjustScrollPosition(O){if(J.mp===0)return O;let A=Z?J.cw:J.ch,u=J.hc.getTotalSize(),m=Math.max(0,u-A),o=Math.max(0,u+J.mp-A);if(O>=m)return o;return Math.min(O,o)},get renderer(){return{render:(O,A,u,m,o)=>{J.ss=u,J.fi=m,J.ffn()},updateItemClasses:(O,A,u)=>{J.uic(O,A,u)},updatePositions:()=>{},updateItem:()=>{},getElement:(O)=>K.get(O)??null,clear:()=>{},destroy:()=>{}}},set renderer(O){},get dataManager(){return J.dm},set dataManager(O){J.dm=O},get scrollController(){return J.sc},set scrollController(O){J.sc=O},state:W,getContainerWidth(){return J.cw},afterScroll:T,idleHandlers:y,afterRenderBatch:z,clickHandlers:$,contextMenuHandlers:H,keydownHandlers:_,resizeHandlers:k,contentSizeHandlers:G,destroyHandlers:v,methods:C,replaceTemplate(O){J.at=O},replaceRenderer(O){},replaceDataManager(O){J.dm=O},replaceScrollController(O){J.sc=O},getItemsForRange(O){let{dm:A,it:u}=J,m=[];for(let o=O.start;o<=O.end;o++){let j0=A?A.getItem(o):u[o];if(j0)m.push(j0)}return m},getAllLoadedItems(){let O=J.dm;if(O){let A=O.getTotal(),u=[];for(let m=0;m<A;m++){let o=O.getItem(m);if(o)u.push(o)}return u}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let O=J.hc;return{isCompressed:!1,actualSize:O.getTotalSize(),virtualSize:O.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:x.start,compression:W.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,O]of K)O.remove(),V.release(O);K.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(O,A){J.rfn=O,J.ffn=A},setVirtualTotalFn(O){J.vtf=O},rebuildSizeCache(O){J.hc.rebuild(O??J.vtf())},setSizeConfig(O){if(J.hc=i0(O,J.vtf()),J.gp>0){let A=J.hc.getTotalSize,u=J.gp;J.hc.getTotalSize=()=>{let m=A();return m>0?m-u:0}}},updateContentSize(O){let A=`${O+J.mp}px`;if(Z)X.content.style.width=A;else X.content.style.height=A},updateCompressionMode(){for(let O=0;O<G.length;O++)G[O]()},setVisibleRangeFn(O){J.gvr=O},getVisibleRange(O,A,u,m){J.gvr(O,A,J.hc,u,m)},setScrollToPosFn(O){J.gsp=O},getScrollToPos(O,A,u,m){return J.gsp(O,J.hc,A,u,m)},setPositionElementFn(O){J.pef=O},setScrollFns(O,A){J.sgt=O,J.sst=(u)=>{A(u),g()}},triggerScrollFrame(){g()},setScrollTarget(O){J.st.removeEventListener("scroll",g),J.st=O,J.st.addEventListener("scroll",g,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(O){J.gcw=O.width,J.gch=O.height,J.cw=O.width(),J.ch=O.height(),W.viewportState.containerSize=Z?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,p.unobserve(X.viewport)},disableWheelHandler(){if(J.wh)X.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(O){J.sif=O},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(O){J.i2s=O},setUpdateItemClassesFn(O){J.uic=O}}},F1=(J,q,X)=>{let{rendered:Q,itemState:U,applyTemplate:Y,updateContentSize:K}=q,V=()=>{J.hc.rebuild(J.vtf()),K(),X.updateCompressionMode(),J.ffn()},W=()=>J.it.length,Z=null,F=()=>{if(!Z)Z=new Map;Z.clear();for(let G=0;G<J.it.length;G++){let y=J.it[G]?.id;if(y!==void 0)Z.set(y,G)}return Z};return{getState:()=>({total:W(),cached:W(),isLoading:!1,pendingRanges:[],error:void 0,hasMore:!1,cursor:void 0}),getTotal:W,getCached:W,getIsLoading:()=>!1,getHasMore:()=>!1,getStorage:()=>null,getPlaceholders:()=>null,getItem:(G)=>J.it[G],isItemLoaded:(G)=>G>=0&&G<W()&&J.it[G]!==void 0,getItemsInRange:(G,y)=>{let T=[];for(let $=Math.max(0,G),H=Math.min(y,W()-1);$<=H;$++)T.push(J.it[$]);return T},getIndexById:(G)=>{return(Z??F()).get(G)??-1},setTotal:()=>{},setItems:(G,y=0,T)=>{if(y===0&&(T!==void 0||W()===0)){if(J.it=G,Z)F()}else{let $=y+G.length;if(W()<$)J.it.length=$;for(let H=0;H<G.length;H++){if(Z){let _=J.it[y+H]?.id;if(_!==void 0)Z.delete(_)}if(J.it[y+H]=G[H],Z){let _=G[H]?.id;if(_!==void 0)Z.set(_,y+H)}}}if(J.ii)V()},updateItem:(G,y)=>{let T=J.it;if(G<0||G>=T.length)return!1;let $=T[G];if(!$)return!1;let H=$.id;if(T[G]={...$,...y},Z){let k=T[G].id;if(H!==k){if(H!==void 0)Z.delete(H);if(k!==void 0)Z.set(k,G)}}let _=Q.get(G);if(_)Y(_,J.at(T[G],G,U)),_.dataset.id=String(T[G].id);return!0},insertItem:(G,y)=>{if(J.it.splice(y,0,G),Z)F();if(J.ii)V()},removeItem:(G)=>{let y;if(typeof G==="number")y=Z?Z.get(G)??G:G;else y=(Z??F()).get(G)??-1;if(y<0||y>=J.it.length)return!1;if(J.it.splice(y,1),Z)F();if(J.ii)V();return!0},loadRange:async()=>{},ensureRange:async()=>{},loadInitial:async()=>{},loadMore:async()=>!1,reload:async()=>{},evictDistant:()=>{},clear:()=>{if(J.it=[],Z)Z.clear()},reset:()=>{if(J.it=[],Z)Z.clear();if(J.ii)J.hc.rebuild(0),K(),J.ffn()}}},L1=(J,q)=>{let{dom:X,classPrefix:Q,onScrollFrame:U}=q;return{getScrollTop:()=>J.sgt(),scrollTo:(Y)=>{J.sst(Y),U()},scrollBy:(Y)=>{let K=J.sgt()+Y;J.sst(K),U()},isAtTop:()=>J.ls<=2,isAtBottom:(Y=2)=>J.sab(Y),getScrollPercentage:()=>{let Y=J.hc.getTotalSize(),K=Math.max(0,Y-J.ch);return K>0?J.ls/K:0},getVelocity:()=>J.vt.velocity,isTracking:()=>J.vt.sampleCount>=2,isScrolling:()=>X.root.classList.contains(`${Q}--scrolling`),updateConfig:()=>{},enableCompression:()=>{J.sic=!0},disableCompression:()=>{J.sic=!1},isCompressed:()=>J.sic,isWindowMode:()=>!1,updateContainerHeight:(Y)=>{J.ch=Y},destroy:()=>{}}};var N2=(J,q,X,Q,U=0,Y=0)=>{let K=q.getOffset(J),V=q.getSize(J),W=K+U,Z=W+V,F=X+Q;if(W<X)return Math.max(0,K);if(Z>F)return Z+Y-Q;return X},L2=(J,q,X,Q,U=0,Y=0,K,V,W)=>{if(!(K!=null&&K.isCompressed&&K.ratio!==1))return N2(J,q,X,Q,U,Y);let{virtualSize:F}=K,G=q.getSize(Math.max(0,J)),y=Q-U-Y,T=Math.max(1,Math.floor(y/G)),$=q.getTotalSize();if(W){if(J>=W.start+T){let v=q.getOffset(J)+G+Y-Q;return Math.max(0,v/$*F)}if(J<=W.start){let k=q.getOffset(J)-U;return Math.max(0,k/$*F)}return X}let H=X/F*V,_=H+T;if(J>=_){let v=q.getOffset(J)+G+Y-Q;return Math.max(0,v/$*F)}if(J<H){let k=q.getOffset(J)-U;return Math.max(0,k/$*F)}return X};var T1=(J,q,X,Q,U,Y,K,V,W,Z,F,G,y,T)=>{let $=`${X}-item--focused`,H=!1,_=()=>{let A=W.get("_getNavTotal");return A?A():J.vtf()},k=()=>{let A=W.get("_getNavDelta");return A?A():{ud:1,lr:0,cols:0}};W.set("_getFocusedIndex",()=>H?J.fi:-1);let v=()=>q.root.getAttribute("role")==="grid"?q.root:q.items,C=(A,u=!0)=>{if(v().setAttribute("aria-activedescendant",`${Q}-item-${A}`),u){let m=W.get("_scrollItemIntoView");if(m)m(A);else{let o=U?J.cw:J.ch,j0=J.i2s(A),e=N2(j0,J.hc,J.ls,o,Y,K);if(e!==J.ls)J.sst(e),J.ls=J.sgt()}}J.ffn()},g=(A)=>{J.fi=A,H=!0,C(A)},p=(A,u)=>{if(J.fi=A,u||T)H=!0;let m=J.dm?J.dm.getItem(A):J.it[A];if(m&&J.ss.has(m.id))J.ss.clear();else if(J.ss.clear(),m)J.ss.add(m.id);C(A,u)},x=(A,u,m)=>{let o=A;while(o>=0&&o<m){let j0=J.dm?J.dm.getItem(o):J.it[o];if(!j0||!j0.__groupHeader)return o;o+=u}o=A-u;while(o>=0&&o<m){let j0=J.dm?J.dm.getItem(o):J.it[o];if(!j0||!j0.__groupHeader)return o;o-=u}return A},z=()=>{if(J.id)return;if(!v().matches(":focus-visible")&&!q.root.matches(":focus-visible"))return;let u=_();if(u===0)return;let m=J.fi>=0?Math.min(J.fi,u-1):0;m=x(m,1,u),g(m)};q.root.addEventListener("focusin",z);let O=(A)=>{if(J.id)return;let u=A.relatedTarget;if(u&&q.root.contains(u))return;if(H=!1,J.fi>=0)Z.get(J.fi)?.classList.remove($);v().removeAttribute("aria-activedescendant")};q.root.addEventListener("focusout",O),F.push((A)=>{if(J.id)return;let u=_();if(u===0)return;let m=J.fi,o=m;if(A.key===" "||A.key==="Enter"){if(m>=0){let e=J.dm?J.dm.getItem(m):J.it[m];if(e&&!e.__groupHeader)p(m,!0)}A.preventDefault();return}let j0=W.get("_navigate");if(j0)switch(A.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":o=j0(m,A.key,u);break;default:return}else{let{ud:e,lr:n}=k();switch(A.key){case"ArrowUp":o=m-e;break;case"ArrowDown":o=m+e;break;case"ArrowLeft":if(!n)return;o=m-n;break;case"ArrowRight":if(!n)return;o=m+n;break;case"PageUp":case"PageDown":{let c=J.hc.getSize(J.i2s(Math.max(0,m))),B=Math.max(e,Math.floor((U?J.cw:J.ch)/c)*e),M=W.get("_layoutToDataIndex"),N=W.get("_dataToLayoutIndex");if(M&&N){let E=M(m),S=A.key==="PageUp"?-B:B,J0=M(u-1);o=N(Math.max(0,Math.min(J0,E+S)))}else o=A.key==="PageUp"?m-B:m+B;break}case"Home":o=0;break;case"End":o=u-1;break;default:return}if(o<0)o=V?u-1:0;else if(o>=u)o=V?0:u-1}if(A.preventDefault(),o=x(o,o>=m?1:-1,u),o!==m)g(o)}),G.push((A)=>{if(J.id)return;let u=A.target.closest("[data-index]");if(!u)return;let m=parseInt(u.dataset.index??"-1",10);if(m<0)return;let o=J.dm?.getItem(m)??J.it[m];if(!o||o.__groupHeader)return;H=!1,v().focus({preventScroll:!0}),p(m,!1)}),y.push(()=>{q.root.removeEventListener("focusin",z),q.root.removeEventListener("focusout",O)})};var Q2=(J,q)=>{let X,Q;return{getSetSize:()=>{if(X===void 0)X=J.get("_getTotal")??null;return X?X():q()},getPosInSet:(U)=>{if(Q===void 0)Q=J.get("_layoutToDataIndex")??null;return Q?Q(U)+1:U+1}}};var w2=(J)=>J<0.5?2*J*J:-1+(4-2*J)*J,r0=(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}},q2=(J,q)=>{let X=null,Q=()=>{if(X!==null)cancelAnimationFrame(X),X=null};return{animateScroll:(Y,K,V)=>{if(Q(),Math.abs(K-Y)<1){J.scrollTo(K);return}let W=performance.now(),Z=(F)=>{let G=F-W,y=Math.min(G/V,1),T=Y+(K-Y)*w2(y);if(J.scrollTo(T),q(),y<1)X=requestAnimationFrame(Z);else X=null};X=requestAnimationFrame(Z)},cancelScroll:Q}};var H1=(J,q,X,Q,U,Y,K,V,W,Z,F,G,y,T,$,H,_,k,v)=>{let C=(j)=>{{if(!Array.isArray(j)){console.warn("[vlist] setItems() expects an array, got:",typeof j);return}if(j.length>0&&j[0]&&!("id"in j[0]))console.warn('[vlist] Items must have an "id" property. First item:',j[0]);let L=Math.min(j.length,1e4),D=new Set;for(let f=0;f<L;f++){let P=j[f];if(P&&"id"in P){if(D.has(P.id)){console.warn(`[vlist] Duplicate item ID "${P.id}" at index ${f}. updateItem() and removeItem() will only match the first occurrence.`);break}D.add(P.id)}}}N(),W.dataManager.setItems(j,0,j.length)},g=(j)=>{let L=Z&&J.sab(2);if(W.dataManager.setItems(j,J.it.length),L&&J.it.length>0){let D=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(D),J.ls=D,J.rfn()}},p=(j)=>{let L=Z?J.sgt():0,D=Z?J.hc.getTotalSize():0,f=[...J.it];if(W.dataManager.clear(),W.dataManager.setItems([...j,...f],0),Z){let P=J.hc.getTotalSize()-D;if(P>0)J.sst(L+P),J.ls=L+P}},x=null,z=null,O=null,A=!1,u=()=>{if(A)return;A=!0,x=Y.get("_updateRenderedItem")??null,z=Y.get("_getSelectedIds")??null,O=Y.get("_getFocusedIndex")??null},m=(j,L)=>{{let f=J.vtf();if(j<0||j>=f)console.warn(`[vlist] updateItem() index ${j} is out of range (0–${f-1}).`)}if(W.dataManager.updateItem(j,L),u(),!x)return;let D=W.dataManager.getItem(j);if(D){let P=(z?z():J.ss).has(D.id),s=(O?O():J.fi)===j;x(j,D,P,s)}},o=!1,j0=(j)=>{let L=typeof document<"u"?document.activeElement:null,D=L&&q.items.contains(L)?parseInt(L.dataset?.index??"-1",10):-1;if(!W.dataManager.removeItem(j))return console.warn(`[vlist] removeItem() could not find item with id "${j}".`),!1;if(W.forceRender(),X.emit("data:change",{type:"remove",id:j}),!o){let P=W.dataManager;if(typeof P.ensureRange==="function")o=!0,queueMicrotask(()=>{o=!1;let s=W.dataManager.getTotal(),{start:r,end:h}=W.state.viewportState.renderRange;if(s>0&&h>=r)P.ensureRange(r,h).catch(()=>{})})}if(D>=0){let P=J.vtf();if(P>0)Q.get(Math.min(D,P-1))?.focus()}return X.emit("remove:end",{id:j}),!0},e=(j,L)=>{let D=L??0;if(W.dataManager.insertItem(j,D),W.forceRender(),X.emit("data:change",{type:"insert",id:j.id}),!o){let f=W.dataManager;if(typeof f.ensureRange==="function")o=!0,queueMicrotask(()=>{o=!1;let P=W.dataManager.getTotal(),{start:s,end:r}=W.state.viewportState.renderRange;if(P>0&&r>=s)f.ensureRange(s,r).catch(()=>{})})}},n=(j)=>{return W.dataManager.getItem(j)},c=(j)=>{return W.dataManager.getIndexById?.(j)??-1},B=async(j)=>{if(W.dataManager.reload)await W.dataManager.reload()},M=null,N=()=>{if(M!==null)cancelAnimationFrame(M),M=null},E=(j,L,D,f)=>{if(N(),Math.abs(L-j)<1){J.sst(L),J.ls=L,J.rfn();return}let P=performance.now(),s=(r)=>{let h=r-P,a=Math.min(h/D,1),t=f?f():L,R=j+(t-j)*w2(a);if(J.sst(R),J.ls=R,J.rfn(),a<1)M=requestAnimationFrame(s);else M=null};M=requestAnimationFrame(s)},S=(j,L)=>{{let a=J.vtf();if(a>0&&(j<0||j>=a))console.warn(`[vlist] scrollToIndex(${j}) is out of range (0–${a-1}).`)}let{align:D,behavior:f,duration:P}=r0(L),s=J.vtf(),r=j;if(F&&s>0)r=(r%s+s)%s;let h=J.gsp(r,J.hc,J.ch,s,D);if(f==="smooth"){let a=r,t=D;E(J.sgt(),h,P,()=>J.gsp(a,J.hc,J.ch,J.vtf(),t))}else N(),J.sst(h)},J0=()=>J.sgt(),d=(j,L)=>{return X.on(j,L)},Q0=(j,L)=>{X.off(j,L)},b=()=>{if(J.id)return;if(J.id=!0,W.state.isDestroyed=!0,q.items.removeEventListener("click",G),q.items.removeEventListener("dblclick",y),q.items.removeEventListener("contextmenu",T),q.root.removeEventListener("keydown",$),J.st.removeEventListener("scroll",H),_.disconnect(),k(),J.wh)q.viewport.removeEventListener("wheel",J.wh);v();let j=[];for(let L=0;L<V.length;L++)try{V[L]()}catch(D){j.push(D instanceof Error?D:Error(String(D)))}for(let L of K)if(L.destroy)try{L.destroy()}catch(D){j.push(D instanceof Error?D:Error(String(D)))}N();for(let[,L]of Q)L.remove(),U.release(L);Q.clear(),U.clear(),X.emit("destroy",void 0);for(let L of j)X.emit("error",{error:L,context:"destroy"});X.clear(),q.root.remove()},w=(j,L)=>Y.has(j)?Y.get(j):L,l={get element(){return q.root},get items(){let j=Y.get("_getItems");return j?j():J.it},get total(){let j=Y.get("_getTotal");return j?j():J.vtf()},setItems:w("setItems",C),appendItems:w("appendItems",g),prependItems:w("prependItems",p),updateItem:w("updateItem",m),insertItem(j,L){let D=Y.get("insertItem");return D?D(j,L):e(j,L)},addItem(j,L){return l.insertItem(j,L)},removeItem(j){let L=Y.get("removeItem");return L?L(j):j0(j)},removeItems(j){let L=Y.get("removeItems");if(L)return L(j);let D=0;for(let f of j)if(j0(f))D++;return D},reload:w("reload",B),getItemAt:n,getIndexById:c,scrollToIndex:w("scrollToIndex",S),cancelScroll:w("cancelScroll",N),getScrollPosition:w("getScrollPosition",J0),on:d,off:Q0,destroy:b};for(let[j,L]of Y){if(j.charCodeAt(0)===95||j==="setItems"||j==="appendItems"||j==="prependItems"||j==="updateItem"||j==="insertItem"||j==="addItem"||j==="removeItem"||j==="removeItems"||j==="reload"||j==="scrollToIndex"||j==="scrollToItem"||j==="cancelScroll"||j==="getScrollPosition")continue;l[j]=L}return l};var ZJ=3,KJ="vlist",NJ=150,WJ=16000000,_J=4096,W2="__placeholder_",BJ=(J)=>(typeof screen<"u"?J?screen.width:screen.height:0)||_J,VJ=0,z2=(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",X=q?"width":"height",Q=q?"estimatedWidth":"estimatedHeight",U=q?J.item.width:J.item.height,Y=q?J.item.estimatedWidth:J.item.estimatedHeight;if(U==null&&Y==null)throw Error(`[vlist] item.${X} or item.${Q} is required${q?" when orientation is 'horizontal'":""}`);if(U!=null){if(typeof U==="number"&&U<=0)throw Error(`[vlist] item.${X} must be a positive number`);if(typeof U!=="number"&&typeof U!=="function")throw Error(`[vlist] item.${X} 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 K=new Map,V=!1,W={use(Z){if(V)throw Error("[vlist] Cannot call .use() after .build()");return K.set(Z.name,Z),W},build(){if(V)throw Error("[vlist] .build() can only be called once");return V=!0,DJ(J,K,q,U,Y??null)}};return W};function DJ(J,q,X,Q,U){let{item:Y,items:K,overscan:V=ZJ,classPrefix:W=KJ,ariaLabel:Z,accessibility:F,padding:G,reverse:y=!1,scroll:T,accessible:$,interactive:H}=J,_=H??$??!0,k=T,v=k?.wheel??!0,C=k?.wrap??!1,g=F?.announceVisibleRange??!1,p=F?.rangeAnnouncementDebounce??750,x=y,z=`${W}-${VJ++}`,O=q.has("withGrid")||q.has("withMasonry")?0:Y.gap??0,A=Q??U,u=Q==null&&U!=null,m=X?typeof Y.height==="number"?Y.height:void 0:typeof Y.width==="number"?Y.width:void 0,o={overscan:V,classPrefix:W,reverse:x,wrap:C,horizontal:X,ariaIdPrefix:z,interactive:_},j0=BJ(X),e=Array.from(q.values()).sort((i,U0)=>(i.priority??50)-(U0.priority??50)),n=new Set(e.map((i)=>i.name));for(let i of e)if(i.conflicts){for(let U0 of i.conflicts)if(n.has(U0))throw Error(`${i.name} and ${U0} cannot be combined`)}if(x){if(n.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let c=V1(J.container),B=D1(c,W,Z,X,_);if(k?.wheel===!1)if(X)B.viewport.style.overflowX="hidden";else B.viewport.style.overflow="hidden";if(k?.scrollbar==="none")B.viewport.classList.add(`${W}-viewport--no-scrollbar`);if(k?.gutter==="stable")B.viewport.classList.add(`${W}-viewport--gutter-stable`);let M=n.has("withGrid")||n.has("withMasonry");if(X&&m!=null&&k?.scrollbar!=="none"&&!M){B.root.style.height=`${m}px`;let i=B.viewport.style.overflowX;B.viewport.style.overflowX="scroll";let U0=B.viewport.offsetHeight-B.viewport.clientHeight;if(B.viewport.style.overflowX=i,U0>0)B.root.style.height=`${m+U0}px`}let N=g0(G),E=e0(N,X);if(N.top||N.right||N.bottom||N.left)B.content.style.boxSizing="border-box",B.content.style.padding=`${N.top}px ${N.right}px ${N.bottom}px ${N.left}px`;let S=B1(),J0=K||[],d=typeof A==="function"&&(q.has("withGrid")||q.has("withMasonry")),Q0=O>0?typeof A==="function"?(i)=>A(i)+O:A+O:A,b=u?U+O:Q0,w=i0(b,d?0:J0.length);if(O>0){let i=w.getTotalSize;w.getTotalSize=()=>{let U0=i();return U0>0?U0-O:0}}let l=M1(),j={it:J0,hc:w,ch:Math.min(B.viewport.clientHeight,j0),cw:Math.min(B.viewport.clientWidth,j0),id:!1,ii:!1,ls:0,vt:W1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:X?()=>B.viewport.scrollLeft:()=>B.viewport.scrollTop,sst:X?(i)=>{B.viewport.scrollLeft=i}:(i)=>{B.viewport.scrollTop=i},sab:(i=2)=>{let U0=j.hc.getTotalSize();return j.ls+j.ch>=U0-i},sic:!1,rfn:null,ffn:null,gvr:(i,U0,K0,A0,y0)=>{G1(i,U0,K0,A0,y0)},gsp:(i,U0,K0,A0,y0)=>{return A1(i,U0,K0,A0,y0,j.mp)},pef:null,at:Y.template,vre:!0,st:B.viewport,wh:null,gcw:()=>j.cw,gch:()=>j.ch,gp:O,mp:E,sif:(i)=>i,i2s:(i)=>i,uic:(i,U0,K0)=>{let A0=a.get(i);if(!A0)return;W0(A0,U0,K0)},csi:null};j.vtf=()=>j.dm?j.dm.getTotal():j.it.length;let L=null,D=!1,f={start:0,end:0},P={start:0,end:0},s={start:-1,end:-1},r={viewportState:{scrollPosition:0,containerSize:X?j.cw:j.ch,totalSize:j.hc.getTotalSize(),actualSize:j.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},h=()=>({...r.viewportState,totalItems:j.vtf()}),a=new Map,t=()=>{J2(B.items,a.keys(),(i)=>a.get(i))},R=()=>{let i=j.hc.getTotalSize(),K0=`${(j.sic?i:Math.min(i,WJ))+E}px`;if(X)B.content.style.width=K0;else B.content.style.height=K0},I={selected:!1,focused:!1},X0=`${W}-item`,q0=`${W}-group-header`,B0=`${W}-item--selected`,N0=`${W}-item--focused`,W0=(i,U0,K0)=>{i.classList.toggle(B0,U0),i.classList.toggle(N0,K0),i.ariaSelected=U0?"true":"false"},Z0=(i,U0,K0,A0)=>{if(K0)i.setAttribute("role","presentation"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-setsize"),i.removeAttribute("aria-posinset"),i.removeAttribute("id");else if(_){if(i.setAttribute("role","option"),A0)i.ariaSelected="false",j.la=String(p0.getSetSize()),i.setAttribute("aria-setsize",j.la);i.id=`${z}-item-${U0}`,i.setAttribute("aria-posinset",String(p0.getPosInSet(U0)))}else{if(i.setAttribute("role","listitem"),i.removeAttribute("aria-selected"),A0)j.la=String(p0.getSetSize()),i.setAttribute("aria-setsize",j.la);i.setAttribute("aria-posinset",String(p0.getPosInSet(U0)))}},D0=Y.striped,T0=!!D0,w0=D0==="data"||D0==="even"||D0==="odd",E0=`${W}-item--odd`,b0=`${W}-item--placeholder`,P0=`${W}-item--replaced`,M0=`${W}--scrolling`,$0=[],k0=[],z0=[],u0=[],h0=[],I0=[],X2=[],a0=[],o0=[],v0=new Map,Y0=(i,U0,K0)=>{if(String(K0).startsWith(W2))return;let A0=W2+U0;if(i.has(A0))i.delete(A0),i.add(K0)},_0={scrollPosition:0,direction:"down"},V0={velocity:0,reliable:!1},G0={range:{start:0,end:0}},O0=null,L0=null,C0=!1,F0=!1,l0=()=>{if(C0)return;C0=!0,O0=v0.get("_getSelectedIds")??null,L0=v0.get("_getFocusedIndex")??null},p0=Q2(v0,j.vtf),D2=(i,U0,K0)=>{if(!U0)console.warn(`[vlist] Template returned falsy value${K0!==void 0?` for item at index ${K0}`:""}. The element will render as blank.`);else if(typeof U0==="string"&&U0==="")console.warn(`[vlist] Template returned empty string${K0!==void 0?` for item at index ${K0}`:""}. The element will render as blank.`);if(typeof U0==="string")i.innerHTML=U0;else i.replaceChildren(U0)},n1=(i,U0)=>{let K0=Math.round(j.hc.getOffset(U0));if(X)i.style.transform=`translateX(${K0}px)`;else i.style.transform=`translateY(${K0}px)`};j.pef=n1;let i1=(i,U0)=>{let K0=l.acquire(),A0=!!U0.__groupHeader;K0.className=A0?q0:X0;let y0=!j.csi||j.csi(i);if(X){if(y0)K0.style.width=`${j.hc.getSize(i)-O}px`;else K0.style.width="";if(m!=null)K0.style.height=`${m}px`}else if(y0)K0.style.height=`${j.hc.getSize(i)-O}px`;else K0.style.height="";if(K0.dataset.index=String(i),K0.dataset.id=String(U0.id),Z0(K0,i,A0,!0),String(U0.id).startsWith(W2))K0.classList.add(b0);if(T0)if(w0){let R0=j.sif(i);if(R0<0)K0.classList.remove(E0);else K0.classList.toggle(E0,(R0&1)===1)}else K0.classList.toggle(E0,(i&1)===1);try{D2(K0,j.at(U0,i,I),i)}catch(R0){let d0=R0 instanceof Error?R0:Error(String(R0));S.emit("error",{error:d0,context:`tpl(${i},${U0.id})`,viewport:h()}),K0.textContent=""}return j.pef(K0,i),K0},M2=NaN,t1=()=>{if(j.id)return;let i=X?j.cw:j.ch;if(i<=0)return;l0();let U0=O0?O0():j.ss,K0=L0?L0():j.fi,A0=j.vtf();j.gvr(j.ls,i,j.hc,A0,f),O1(f,V,A0,P);let y0=P.end-P.start+1,m0=j.hc.getSize(0)||1,R0=Math.ceil(j0/m0)+V*2;if(y0>R0){if(!F0)F0=!0,console.warn(`[vlist] Render range capped: ${y0} items → ${R0}. Container is ${i}px tall (item: ${m0}px). This usually means the container has no CSS height constraint.`);P.end=P.start+R0-1}if(P.start===s.start&&P.end===s.end){if(j.sic&&j.ls!==M2){M2=j.ls;for(let[H0,S0]of a)j.pef(S0,H0)}r.viewportState.scrollPosition=j.ls,r.viewportState.containerSize=i,r.viewportState.visibleRange.start=f.start,r.viewportState.visibleRange.end=f.end,r.viewportState.renderRange.start=P.start,r.viewportState.renderRange.end=P.end;return}let d0=String(p0.getSetSize()),qJ=d0!==j.la;j.la=d0;for(let[H0,S0]of a)if(H0<P.start||H0>P.end)S0.remove(),l.release(S0),a.delete(H0);let X1=document.createDocumentFragment(),U1=!1,Z2=a0.length>0?[]:null;for(let H0=P.start;H0<=P.end;H0++){let S0=j.dm?j.dm.getItem(H0):j.it[H0];if(S0===void 0)continue;let f0=a.get(H0);if(f0){let n0=f0.dataset.id,t0=String(S0.id);if(n0!==t0){let jJ=n0?.startsWith(W2),P2=t0.startsWith(W2),Z1=!!S0.__groupHeader;f0.className=Z1?q0:X0,Z0(f0,H0,Z1,!1);try{D2(f0,j.at(S0,H0,I),H0)}catch(y2){let YJ=y2 instanceof Error?y2:Error(String(y2));S.emit("error",{error:YJ,context:`tpl(${H0},${S0.id})`,viewport:h()}),f0.textContent=""}f0.dataset.id=t0;let K1=!j.csi||j.csi(H0);if(X)f0.style.width=K1?`${j.hc.getSize(H0)-O}px`:"";else f0.style.height=K1?`${j.hc.getSize(H0)-O}px`:"";if(P2)f0.classList.add(b0);else f0.classList.remove(b0);if(jJ&&!P2)f0.classList.add(P0),setTimeout(()=>{f0.classList.remove(P0)},300);if(j.dm&&!P2)Y0(U0,H0,S0.id)}j.pef(f0,H0);let A2=U0.has(S0.id);if(W0(f0,A2,H0===K0),qJ&&!S0.__groupHeader)f0.setAttribute("aria-setsize",j.la)}else{let n0=i1(H0,S0);if(Z2)Z2.push({index:H0,element:n0});if(j.dm)Y0(U0,H0,S0.id);let t0=U0.has(S0.id),A2=H0===K0;if(t0||A2)W0(n0,t0,A2);X1.appendChild(n0),a.set(H0,n0),U1=!0}}if(U1)B.items.appendChild(X1);if(Z2&&Z2.length>0)for(let H0=0;H0<a0.length;H0++)a0[H0](Z2);s.start=P.start,s.end=P.end,M2=j.ls,r.lastRenderRange.start=P.start,r.lastRenderRange.end=P.end,r.viewportState.scrollPosition=j.ls,r.viewportState.visibleRange.start=f.start,r.viewportState.visibleRange.end=f.end,r.viewportState.renderRange.start=P.start,r.viewportState.renderRange.end=P.end,G0.range.start=P.start,G0.range.end=P.end,S.emit("range:change",G0)},e1=()=>{s.start=-1,s.end=-1,M2=NaN,j.rfn()};j.rfn=t1,j.ffn=e1;let JJ=()=>{B.root.classList.remove(M0),D=!1,j.vt.velocity=0,j.vt.sampleCount=0,V0.velocity=0,V0.reliable=!1,S.emit("velocity:change",V0),t();for(let i=0;i<k0.length;i++)k0[i]();S.emit("scroll:idle",{scrollPosition:j.ls})},QJ=()=>{if(L)clearTimeout(L);L=setTimeout(JJ,k?.idleTimeout??NJ)},U2=()=>{if(j.id)return;let i=j.sgt();if(i===j.ls&&D)return;let U0=i>=j.ls?"down":"up";if(j.vt=_1(j.vt,i),!B.root.classList.contains(M0))B.root.classList.add(M0);D=!0,j.ls=i,j.rfn(),_0.scrollPosition=i,_0.direction=U0,S.emit("scroll",_0),V0.velocity=j.vt.velocity,V0.reliable=j.vt.sampleCount>=N1,S.emit("velocity:change",V0);for(let K0=0;K0<$0.length;K0++)$0[K0](i,U0);QJ()},G2=null;if(j.st.addEventListener("scroll",U2,{passive:!0}),v){let i=B.viewport;if(X)G2=(U0)=>{if(r.viewportState.isCompressed)return;if(Math.abs(U0.deltaX)>Math.abs(U0.deltaY))return;let K0=j.sgt(),A0=i.scrollWidth-i.clientWidth,y0=Math.max(0,Math.min(K0+U0.deltaY,A0));if(Math.abs(y0-K0)<1)return;U0.preventDefault(),j.sst(y0),U2()};else G2=(U0)=>{if(r.viewportState.isCompressed)return;let K0=i.scrollWidth>i.clientWidth;if(K0&&Math.abs(U0.deltaX)>Math.abs(U0.deltaY))return;if(K0&&U0.deltaX!==0)U0.preventDefault(),i.scrollLeft+=U0.deltaX;let A0=j.sgt(),y0=i.scrollHeight-i.clientHeight,m0=Math.max(0,Math.min(A0+U0.deltaY,y0));if(Math.abs(m0-A0)<1)return;U0.preventDefault(),j.sst(m0),U2()};j.wh=G2,i.addEventListener("wheel",G2,{passive:!1})}let k2=(i)=>{let U0=i.target.closest("[data-index]");if(!U0)return null;let K0=parseInt(U0.dataset.index??"-1",10);if(K0<0)return null;let A0=j.dm?.getItem(K0)??j.it[K0];if(!A0||A0.__groupHeader)return null;return{item:A0,index:K0}},e2=(i)=>{for(let K0=0;K0<z0.length;K0++)z0[K0](i);let U0=k2(i);if(U0)S.emit("item:click",{item:U0.item,index:U0.index,event:i})},J1=(i)=>{let U0=k2(i);if(U0)S.emit("item:dblclick",{item:U0.item,index:U0.index,event:i})},Q1=(i)=>{for(let K0=0;K0<u0.length;K0++)u0[K0](i);let U0=k2(i);if(U0)S.emit("item:contextmenu",{item:U0.item,index:U0.index,event:i})},q1=(i)=>{for(let U0=0;U0<h0.length;U0++)h0[U0](i)};if(B.items.addEventListener("click",e2),B.items.addEventListener("dblclick",J1),B.items.addEventListener("contextmenu",Q1),B.root.addEventListener("keydown",q1),_&&g){let i=null,U0=(K0)=>{if(i)clearTimeout(i);i=setTimeout(()=>{if(i=null,j.id)return;let A0=j.vtf();B.liveRegion.textContent=`Showing items ${K0.range.start+1} to ${Math.min(K0.range.end+1,A0)} of ${A0}`},p)};S.on("range:change",U0),o0.push(()=>{if(i)clearTimeout(i);S.off("range:change",U0)})}let b2=new ResizeObserver((i)=>{if(j.id)return;for(let U0 of i){let K0=U0.contentRect.height,A0=U0.contentRect.width,y0=X?A0:K0,m0=X?j.cw:j.ch;if(y0>j0){if(!F0)F0=!0,console.warn(`[vlist] Viewport grew to ${Math.round(y0)}px (screen: ${j0}px). Re-applying size constraint. Check that the vlist container has a CSS height/width constraint.`);let R0=X?"width":"height";B.root.style[R0]="100%",B.viewport.style[R0]="100%";return}if(j.cw=A0,j.ch=K0,Math.abs(y0-m0)>1){if(r.viewportState.containerSize=y0,j.ii){let R0=r.cachedCompression;if(R0&&R0.state.isCompressed){let d0=`${R0.state.virtualSize+E}px`;if(X)B.content.style.width=d0;else B.content.style.height=d0}else R();j.rfn(),S.emit("resize",{height:K0,width:A0})}}if(j.ii)for(let R0=0;R0<I0.length;R0++)I0[R0](A0,K0)}});if(j.vre)b2.observe(B.viewport);let R2={dom:B,emitter:S,resolvedConfig:o,rawConfig:J,rendered:a,pool:l,itemState:I,sharedState:r,renderRange:P,isHorizontal:X,classPrefix:W,contentSizeHandlers:X2,idleHandlers:k0,afterScroll:$0,clickHandlers:z0,contextMenuHandlers:u0,keydownHandlers:h0,resizeHandlers:I0,destroyHandlers:o0,methods:v0,onScrollFrame:U2,resizeObserver:b2,afterRenderBatch:a0,applyTemplate:D2,updateContentSize:R},O2=E1(j,R2);j.dm=F1(j,R2,O2),j.sc=L1(j,R2),v0.set("_updateRenderedItem",(i,U0,K0,A0)=>{let y0=a.get(i);if(!y0)return;let m0={selected:K0,focused:A0};try{let R0=j.at(U0,i,m0);D2(y0,R0,i)}catch(R0){let d0=R0 instanceof Error?R0:Error(String(R0));S.emit("error",{error:d0,context:`tpl(${i},${U0.id})`,viewport:h()})}y0.dataset.id=String(U0.id),W0(y0,K0,A0)});let j1=new WeakSet;v0.set("_setSizeCache",(i)=>{if(j.hc=i,j.gp>0&&!j1.has(i)){j1.add(i);let U0=j.hc.getTotalSize,K0=j.gp;j.hc.getTotalSize=()=>{let A0=U0();return A0>0?A0-K0:0}}}),v0.set("_setConstrainSize",(i)=>{j.csi=i});let Y1=new Map;for(let i of e)if(i.methods)for(let U0 of i.methods){let K0=Y1.get(U0);if(K0)throw Error(`[vlist] Method "${U0}" is registered by both "${K0}" and "${i.name}"`);Y1.set(U0,i.name)}for(let i of e)try{i.setup(O2)}catch(U0){let K0=U0 instanceof Error?U0:Error(String(U0));console.error(`[vlist] Feature "${i.name}" setup failed:`,K0),S.emit("error",{error:K0,context:i.name,viewport:h()})}if(u&&!q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(_&&!v0.has("_getFocusedIndex")){let i=X?N.left:N.top,U0=X?N.right:N.bottom;T1(j,B,W,z,X,i,U0,C,v0,a,h0,z0,o0,!!J.focusOnClick)}if(j.ii=!0,O2.state.isInitialized=!0,R(),j.rfn(),x&&j.it.length>0){let i=j.gsp(j.it.length-1,j.hc,j.ch,j.it.length,"end");j.sst(i),j.ls=i,j.rfn()}return H1(j,B,S,a,l,v0,e,o0,O2,x,C,e2,J1,Q1,q1,U2,b2,()=>{},()=>{if(L)clearTimeout(L)})}var C2=200,v2=50;var $1=50,k1=12,b1=2,j2=16000000;var R1="x",P1=20,S2="_isPlaceholder",c0="__placeholder_";var y1=(J,q,X)=>{let Q=q.getTotalSize(),U=X===!0||Q>j2,Y=Q>j2?j2:Q,K=Q>0?Y/Q:1;return{isCompressed:U,actualSize:Q,virtualSize:Y,ratio:K}};var T2=(J,q,X,Q,U,Y,K)=>{if(!Y.isCompressed||Q===0)return X.getOffset(J);if(Y.ratio===1)return X.getOffset(J)-q;let{virtualSize:V}=Y,W=q/V,Z=X.getTotalSize(),F=W*Z;return X.getOffset(J)-F};var MJ=(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}},_2=(J,q,X={},Q="vlist",U=!1,Y)=>{let{autoHide:K=!0,autoHideDelay:V=1000,minThumbSize:W=15,showOnHover:Z=!0,showOnViewportEnter:F=!0,clickBehavior:G="scroll"}=X,y=G==="page"?"scroll":G,T=Y??J,$=MJ(X.padding),H=U?$.left:$.top,_=U?$.right:$.bottom,k=U?$.bottom:$.right,v=X.hoverZoneWidth??k+16,C=0,g=0,p=0,x=0,z=!1,O=!1,A=0,u=0,m=0,o=null,j0=!1,e=null,n=null,c=0,B=0,M=null,N=null,E=null,S=U?"width":"height",J0=U?"translateX":"translateY",d=U?(M0)=>M0.clientX:(M0)=>M0.clientY,Q0=U?"left":"top",b=document.createElement("div"),w=document.createElement("div"),l=document.createElement("div"),j=U?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",L=()=>{if(T===J)return;let M0=J.offsetTop;b.style[U?"left":"top"]=M0?`calc(var(${j}) + ${M0}px)`:`var(${j})`,l.style[U?"left":"top"]=`${M0}px`},D=()=>{if(b.className=`${Q}-scrollbar`,w.className=`${Q}-scrollbar-thumb`,U)b.classList.add(`${Q}-scrollbar--horizontal`);if(X.padding!==void 0)T.style.setProperty("--vlist-custom-scrollbar-padding-top",`${$.top}px`),T.style.setProperty("--vlist-custom-scrollbar-padding-right",`${$.right}px`),T.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${$.bottom}px`),T.style.setProperty("--vlist-custom-scrollbar-padding-left",`${$.left}px`);if(X.minThumbSize!==void 0)b.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${W}px`);if(b.appendChild(w),T.appendChild(b),l.className=`${Q}-scrollbar-hover`,U)l.classList.add(`${Q}-scrollbar-hover--horizontal`),l.style.height=`${v}px`;else l.style.width=`${v}px`;if(T.appendChild(l),T!==J)L()},f=()=>{if(o)clearTimeout(o),o=null},P=()=>{if(!K)return;f(),o=setTimeout(r,V)},s=()=>{if(C<=g)return;if(f(),!j0)b.classList.add(`${Q}-scrollbar--visible`),j0=!0;if(K&&!z&&!O)P()},r=()=>{if(z||O)return;b.classList.remove(`${Q}-scrollbar--visible`),j0=!1},h=(M0,$0)=>{if(C=M0,g=$0,L(),C<=g){b.style.display="none",r();return}b.style.display="";let k0=Math.max(0,g-H-_),z0=g/C;if(p=Math.max(W,z0*k0),w.style[S]=`${p}px`,x=k0-p,a(m),!K)s()},a=(M0)=>{if(m=M0,C<=g||x<=0)return;let $0=C-g,k0=Math.min(1,Math.max(0,M0/$0));w.style.transform=`${J0}(${k0*x}px)`},t=(M0)=>{if(M0.target===w||y!=="jump"||x<=0)return;let $0=C-g,k0=b.getBoundingClientRect(),z0=d(M0)-k0[Q0],u0=Math.max(0,Math.min(z0-p/2,x));q(u0/x*$0),s()},R=()=>{if(M!==null)clearTimeout(M),M=null;if(N!==null)cancelAnimationFrame(N),N=null;E=null},I=(M0)=>{let $0=x>0?B/M0*x:0;if(c<$0)return-1;if(c>=$0+p)return 1;return 0},X0=()=>{let M0=C-g,$0=I(M0);if($0===0){R();return}if($0===-1){if(B<=0){R();return}let k0=Math.max(0,B-g);B=k0,q(k0)}else{if(B>=M0){R();return}let k0=Math.min(M0,B+g);B=k0,q(k0)}s()},q0=(M0)=>{if(E===null){E=M0,N=requestAnimationFrame(q0);return}let $0=C-g,k0=M0-E;E=M0;let z0=I($0);if(z0===0){R();return}let u0=12*g/1000,h0=Math.min(u0*k0,g);if(z0===-1){if(B<=0){R();return}let I0=Math.max(0,B-h0);B=I0,q(I0)}else{if(B>=$0){R();return}let I0=Math.min($0,B+h0);B=I0,q(I0)}f(),N=requestAnimationFrame(q0)},B0=()=>{R(),P(),document.removeEventListener("mouseup",B0)},N0=(M0)=>{if(M0.target===w||y!=="scroll")return;M0.preventDefault();let $0=b.getBoundingClientRect();c=d(M0)-$0[Q0],B=m,X0(),M=setTimeout(()=>{N=requestAnimationFrame(q0)},350),document.addEventListener("mouseup",B0)},W0=(M0)=>{M0.preventDefault(),M0.stopPropagation(),z=!0,A=d(M0),u=m,f(),b.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",Z0),document.addEventListener("mouseup",D0)},Z0=(M0)=>{if(!z)return;let $0=d(M0)-A,k0=x>0?$0/x:0,z0=C-g,u0=k0*z0,h0=Math.max(0,Math.min(u+u0,z0));if(w.style.transform=`${J0}(${h0/z0*x}px)`,n=h0,e===null)e=requestAnimationFrame(()=>{if(n!==null)q(n);e=null})},D0=()=>{if(z=!1,e!==null)cancelAnimationFrame(e),e=null;if(n!==null)q(n),n=null;if(b.classList.remove(`${Q}-scrollbar--dragging`),K&&!O)P();document.removeEventListener("mousemove",Z0),document.removeEventListener("mouseup",D0)},T0=()=>{if(F)s()},w0=()=>{if(!z){if(O=!1,K)P()}},E0=()=>{O=!0,f(),s()},b0=()=>{if(O=!1,!z&&K)P()},P0=()=>{if(f(),R(),e!==null)cancelAnimationFrame(e),e=null;b.removeEventListener("click",t),b.removeEventListener("mousedown",N0),b.removeEventListener("mouseenter",E0),document.removeEventListener("mouseup",B0),b.removeEventListener("mouseleave",b0),w.removeEventListener("mousedown",W0),J.removeEventListener("mouseenter",T0),J.removeEventListener("mouseleave",w0),document.removeEventListener("mousemove",Z0),document.removeEventListener("mouseup",D0),l.removeEventListener("click",t),l.removeEventListener("mousedown",N0),l.removeEventListener("mouseenter",E0),l.removeEventListener("mouseleave",b0),l.remove(),T.style.removeProperty("--vlist-custom-scrollbar-padding-top"),T.style.removeProperty("--vlist-custom-scrollbar-padding-right"),T.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),T.style.removeProperty("--vlist-custom-scrollbar-padding-left"),b.remove()};if(D(),b.addEventListener("click",t),b.addEventListener("mousedown",N0),b.addEventListener("mouseenter",E0),b.addEventListener("mouseleave",b0),w.addEventListener("mousedown",W0),J.addEventListener("mouseenter",T0),J.addEventListener("mouseleave",w0),l.addEventListener("click",t),l.addEventListener("mousedown",N0),Z)l.addEventListener("mouseenter",E0),l.addEventListener("mouseleave",b0);return{show:s,hide:r,updateBounds:h,updatePosition:a,isVisible:()=>j0,destroy:P0}};var f2=(J)=>{let q=null;return{name:"withScrollbar",priority:15,setup(X){let{dom:Q,config:U}=X,{classPrefix:Y,horizontal:K}=U;if(X.methods.has("_hasScrollbar"))Q.root.querySelector(`.${Y}-scrollbar`)?.remove(),Q.root.querySelector(`.${Y}-scrollbar-hover`)?.remove();X.methods.set("_hasScrollbar",()=>!0),q=_2(Q.viewport,(Z)=>X.scrollController.scrollTo(Z),J,Y,K,Q.root);let V=q,W=()=>{V.updateBounds(X.state.viewportState.totalSize||X.getCachedCompression().virtualSize,X.state.viewportState.containerSize)};if(Q.viewport.classList.add(`${Y}-viewport--custom-scrollbar`),J?.gutter)Q.viewport.classList.add(`${Y}-viewport--gutter`);W(),X.afterScroll.push((Z,F)=>{V.updatePosition(Z),V.show()}),X.resizeHandlers.push((Z,F)=>{W()}),X.contentSizeHandlers.push(()=>{W()}),X.destroyHandlers.push(()=>{V.destroy()})},destroy(){if(q)q.destroy(),q=null}}};var GJ=0.65,OJ=0.5,w1=1.7,AJ=0.95,EJ=0.1,FJ=5,LJ=100,z1=(J,q,X,Q=0)=>{if(J<=0)return 0;return Math.max(0,(q-Q)*(1-X)+Q)},h2=(J)=>{let q=J?.force??!1,X=null,Q=0,U=!1,Y=0,K=0,V=null,W=0,Z=0,F=null,G=[];return{name:"withScale",priority:20,setup(y){let{dom:T,config:$}=y,{classPrefix:H,horizontal:_}=$,{root:k,viewport:v}=T,C=y.state.viewportState,g=_?"scrollLeft":"scrollTop",p=_?"overflowX":"overflow",x=g0(y.rawConfig.padding),z=_?x.left+x.right:x.top+x.bottom,O=()=>{let B=y.getVirtualTotal(),M=y1(B,y.sizeCache,q);if(M.isCompressed&&!U){U=!0,y.scrollController.enableCompression(M);let E=v[g];if(v.style[p]="hidden",v[g]=0,E>0)Q=E,K=E;Y=z1(M.virtualSize,C.containerSize,M.ratio,z),y.updateContentSize(M.virtualSize+Y),y.setScrollFns(()=>Q,(j)=>{if(Q=j,K=j,V!==null)cancelAnimationFrame(V),V=null});let S=()=>{let j=K-Q;if(y.getVirtualTotal()===0){Q=0,K=0,V=null,y.triggerScrollFrame();return}if(Math.abs(j)<OJ){let L=y.getCachedCompression(),D=Math.max(0,L.virtualSize+Y-C.containerSize);Q=Math.max(0,Math.min(K,D)),K=Q,V=null}else{Q+=j*GJ;let D=y.getCachedCompression().virtualSize+Y-C.containerSize;Q=Math.max(0,Math.min(Q,D)),V=requestAnimationFrame(S)}y.triggerScrollFrame()},J0=(j)=>{j.preventDefault();let L=y.getCachedCompression(),D=L.virtualSize+Y-C.containerSize;if(K=Math.max(0,Math.min(K+j.deltaY*L.ratio*w1,D)),V===null)V=requestAnimationFrame(S)};v.addEventListener("wheel",J0,{passive:!1});let d=()=>{if(F!==null)cancelAnimationFrame(F),F=null},Q0=(j)=>{if(d(),V!==null)cancelAnimationFrame(V),V=null;let L=j.touches[0];if(!L)return;let D=_?L.clientX:L.clientY;W=D,Z=Q,G=[{time:performance.now(),y:D}]},b=(j)=>{j.preventDefault();let L=j.touches[0];if(!L)return;let D=_?L.clientX:L.clientY,f=performance.now();if(G.push({time:f,y:D}),G.length>FJ)G.shift();let P=W-D,s=y.getCachedCompression(),r=s.virtualSize+Y-C.containerSize,h=Math.max(0,Math.min(Z+P*s.ratio*w1,r));Q=h,K=h,y.triggerScrollFrame()},w=(j)=>{let L=performance.now(),D=G.filter((r)=>L-r.time<LJ),f=0;if(D.length>=2){let r=D[0],h=D[D.length-1],a=h.time-r.time;if(a>0)f=(r.y-h.y)/a}if(G=[],Math.abs(f)<EJ)return;let P=f*16,s=()=>{if(P*=AJ,Math.abs(P)<0.5){F=null;return}let h=y.getCachedCompression().virtualSize+Y-C.containerSize,a=Q+P;if(a=Math.max(0,Math.min(a,h)),a<=0&&P<0||a>=h&&P>0){Q=a,K=a,y.triggerScrollFrame(),F=null;return}Q=a,K=a,y.triggerScrollFrame(),F=requestAnimationFrame(s)};F=requestAnimationFrame(s)};v.addEventListener("touchstart",Q0,{passive:!0}),v.addEventListener("touchmove",b,{passive:!1}),v.addEventListener("touchend",w,{passive:!0}),v.addEventListener("touchcancel",w,{passive:!0}),y.destroyHandlers.push(()=>{v.removeEventListener("wheel",J0),v.removeEventListener("touchstart",Q0),v.removeEventListener("touchmove",b),v.removeEventListener("touchend",w),v.removeEventListener("touchcancel",w)});let l=()=>{if(v[g]!==0)v[g]=0};if(v.addEventListener("scroll",l,{passive:!0}),y.destroyHandlers.push(()=>{v.removeEventListener("scroll",l)}),!y.methods.has("_hasScrollbar")){if(y.methods.set("_hasScrollbar",()=>!0),X=_2(v,(L)=>y.scrollController.scrollTo(L),{},H,_,k),!v.classList.contains(`${H}-viewport--custom-scrollbar`))v.classList.add(`${H}-viewport--custom-scrollbar`);X.updateBounds(M.virtualSize,C.containerSize);let j=X;y.afterScroll.push((L,D)=>{if(j)j.updatePosition(L),j.show()}),y.resizeHandlers.push((L,D)=>{if(j){let f=y.getCachedCompression();j.updateBounds(f.virtualSize,C.containerSize)}})}}else if(!M.isCompressed&&U){if(U=!1,V!==null)cancelAnimationFrame(V),V=null;if(F!==null)cancelAnimationFrame(F),F=null;if(Q=0,K=0,G=[],y.setScrollFns(()=>v[g],(E)=>{v[g]=E}),v[g]=0,y.scrollController.disableCompression(),v.style[p]="auto",X)X.destroy(),X=null;Y=0,y.updateContentSize(M.actualSize)}else if(M.isCompressed)y.scrollController.updateConfig({compression:M}),Y=z1(M.virtualSize,C.containerSize,M.ratio,z),y.updateContentSize(M.virtualSize+Y);if(X)X.updateBounds(M.virtualSize+Y,C.containerSize);let N=C;if(N.isCompressed=M.isCompressed,N.compressionRatio=M.ratio,N.totalSize=M.virtualSize+Y,N.actualSize=M.actualSize,y.state.cachedCompression={state:M,totalItems:B},U){let E=Math.max(0,M.virtualSize+Y-C.containerSize),S=Q;if(S>E)S=E;else if(S<0)S=0;if(S!==Q){if(V!==null)cancelAnimationFrame(V),V=null;if(F!==null)cancelAnimationFrame(F),F=null;y.scrollController.scrollTo(S)}}for(let E=0;E<y.contentSizeHandlers.length;E++)y.contentSizeHandlers[E]()};y.updateCompressionMode=O;let A=y.getCachedCompression.bind(y);y.getCachedCompression=()=>{if(y.state.cachedCompression)return y.state.cachedCompression.state;return A()},y.setVisibleRangeFn((B,M,N,E,S)=>{if(m=null,o=null,E===0||M===0){S.start=0,S.end=-1;return}let J0=y.getCachedCompression();if(!J0.isCompressed||J0.ratio===1){let b=N.indexAtOffset(B),w=N.indexAtOffset(B+M);if(w<E-1)w++;S.start=Math.max(0,b),S.end=Math.min(E-1,Math.max(0,w));return}let d=N.indexAtOffset(B/J0.virtualSize*J0.actualSize),Q0;if(!N.isVariable())Q0=Math.ceil(M/N.getSize(0));else{Q0=0;let b=0,w=d;while(w<E&&b<M)b+=N.getSize(w),Q0++,w++;if(Q0<1)Q0=1}S.start=Math.max(0,d),S.end=Math.min(E-1,Math.max(0,d+Q0))}),y.setScrollToPosFn((B,M,N,E,S)=>{if(E===0)return 0;let J0=y.getCachedCompression(),d=M.getSize(B),Q0;if(J0.isCompressed&&J0.ratio!==1){if(Q0=B/E*J0.virtualSize,S==="center")Q0-=(N-d)/2*J0.ratio;else if(S==="end")Q0-=(N-d)*J0.ratio;return Math.max(0,Q0)}if(Q0=M.getOffset(B),S==="center")Q0-=(N-d)/2;else if(S==="end")Q0-=N-d;return Math.max(0,Math.min(Q0,J0.virtualSize-N))});let u=NaN,m=null,o=null,j0=_?"translateX":"translateY";y.setPositionElementFn((B,M)=>{let N=y.scrollController.getScrollTop(),E=y.getCachedCompression();if(N!==u)u=N,m=null,o=null;if(E.isCompressed){if(m===null||M<o){o=M;let J0=y.sizeCache.getOffset(M);m=Math.round(E.ratio===1?J0-N:J0-N/E.virtualSize*E.actualSize)}let S=m+y.sizeCache.getOffset(M)-y.sizeCache.getOffset(o);B.style.transform=`${j0}(${S}px)`}else{let S=Math.round(y.sizeCache.getOffset(M));B.style.transform=`${j0}(${S}px)`}});let e=_?x.left:x.top,n=_?x.right:x.bottom,c=y.getItemToScrollIndexFn();y.methods.set("_scrollItemIntoView",(B)=>{let M=y.getCachedCompression(),N=C.containerSize,E=C.scrollPosition,S=y.getVirtualTotal(),{visibleRange:J0}=C,d=c(B),Q0=L2(d,y.sizeCache,E,N,e,n,M,S,J0);if(Q0!==E)y.scrollController.scrollTo(Q0)}),O(),y.destroyHandlers.push(()=>{if(X)X.destroy(),X=null;if(V!==null)cancelAnimationFrame(V),V=null;if(F!==null)cancelAnimationFrame(F),F=null})}}};var C1=(J={})=>{let{chunkSize:q=100,maxCachedItems:X=5000,evictionBuffer:Q=200,onEvict:U}=J,Y=new Map,K=0,V=0,W=(B)=>{let M=Y.get(B);if(!M)M={items:Array(q),count:0,lastAccess:Date.now()},Y.set(B,M);else M.lastAccess=Date.now();return M},Z=(B)=>{return Math.floor(B/q)},F=(B)=>{return B%q},G=()=>K,y=(B)=>{K=B},T=(B)=>{if(B<0||B>=K)return;let M=Z(B),N=Y.get(M);if(!N)return;return N.items[F(B)]},$=(B)=>{if(B<0||B>=K)return!1;let M=Z(B),N=Y.get(M);if(!N)return!1;return N.items[F(B)]!==void 0},H=(B,M)=>{let N=Z(B),E=W(N),S=F(B),J0=E.items[S]===void 0;if(E.items[S]=M,J0)E.count++,V++;if(B>=K)K=B+1},_=(B,M)=>{for(let N=0;N<M.length;N++){let E=M[N];if(E!==void 0)H(B+N,E)}},k=(B,M)=>{if(B<0||B>K)return;let N=Z(B),E=Array.from(Y.keys()).filter((b)=>b>=N).sort((b,w)=>b-w),S=[];for(let b of E){let w=Y.get(b),l=b*q;for(let j=0;j<q;j++){if(w.items[j]===void 0)continue;let L=l+j;if(L<B)continue;S.push({oldIndex:L,item:w.items[j]})}}for(let{oldIndex:b}of S){let w=Z(b),l=Y.get(w);if(!l)continue;let j=F(b);if(l.items[j]!==void 0){if(l.items[j]=void 0,l.count--,V--,l.count===0)Y.delete(w)}}K++;for(let{oldIndex:b,item:w}of S){let l=b+1,j=Z(l),L=W(j),D=F(l);L.items[D]=w,L.count++,V++}let J0=Z(B),d=W(J0),Q0=F(B);d.items[Q0]=M,d.count++,V++},v=(B)=>{if(B<0||B>=K)return!1;let M=Z(B),N=Y.get(M),E=F(B);if(!(N!==void 0&&N.items[E]!==void 0))return!1;let J0=M,d=Array.from(Y.keys()).filter((b)=>b>=J0).sort((b,w)=>b-w),Q0=[];for(let b of d){let w=Y.get(b),l=b*q;for(let j=0;j<q;j++){if(w.items[j]===void 0)continue;let L=l+j;if(L<=B)continue;Q0.push({oldIndex:L,item:w.items[j]})}}if(N.items[E]=void 0,N.count--,V--,N.count===0)Y.delete(M);for(let{oldIndex:b}of Q0){let w=Z(b),l=Y.get(w);if(!l)continue;let j=F(b);if(l.items[j]!==void 0){if(l.items[j]=void 0,l.count--,V--,l.count===0)Y.delete(w)}}for(let{oldIndex:b,item:w}of Q0){let l=b-1,j=Z(l),L=W(j),D=F(l);L.items[D]=w,L.count++,V++}return K--,!0},C=(B,M)=>{let N=[];for(let E=B;E<=M&&E<K;E++)N.push(T(E));return N},g=(B,M)=>{for(let N=B;N<=M&&N<K;N++)if(!$(N))return!1;return!0},p=()=>{let B=[],M=null,N=Array.from(Y.keys()).sort((E,S)=>E-S);for(let E of N){let S=Y.get(E);if(!S)continue;let J0=E*q;for(let d=0;d<q;d++){let Q0=J0+d;if(Q0>=K)break;if(S.items[d]!==void 0)if(M===null)M={start:Q0,end:Q0};else if(Q0===M.end+1)M.end=Q0;else B.push(M),M={start:Q0,end:Q0};else if(M!==null)B.push(M),M=null}}if(M!==null)B.push(M);return B},x=(B,M)=>{let N=[],E=null;for(let S=B;S<=M&&S<K;S++)if(!$(S))if(E===null)E={start:S,end:S};else E.end=S;else if(E!==null)N.push(E),E=null;if(E!==null)N.push(E);return N},z=(B)=>{return Y.has(B)},O=(B)=>{let M=Y.get(B);if(!M)return!1;let N=B*q,E=Math.min(q,K-N);return M.count>=E},A=(B)=>{let M=Y.get(B);if(M)M.lastAccess=Date.now()},u=(B,M)=>{if(B>M||Y.size===0)return;let N=Date.now(),E=Z(Math.max(0,B)),S=Z(Math.min(K-1,M));for(let J0=E;J0<=S;J0++){let d=Y.get(J0);if(d)d.lastAccess=N}},m=(B,M)=>{if(V<=X)return 0;let N=Math.max(0,B-Q),E=Math.min(K-1,M+Q),S=Z(N),J0=Z(E),d=0,Q0=[];for(let[b,w]of Y)if(b<S||b>J0)d+=w.count,Q0.push(b),V-=w.count,Y.delete(b);if(d>0&&U)U(d,Q0);return d},o=()=>{if(V<=X)return 0;let B=Array.from(Y.entries()).sort(([,E],[,S])=>E.lastAccess-S.lastAccess),M=0,N=[];for(let[E,S]of B){if(V<=X)break;M+=S.count,V-=S.count,N.push(E),Y.delete(E)}if(M>0&&U)U(M,N);return M},j0=()=>{return{totalItems:K,cachedItems:V,cachedChunks:Y.size,chunkSize:q,maxCachedItems:X,memoryEfficiency:K>0?1-V/K:1}},e=()=>V,n=()=>{Y.clear(),V=0};return{chunkSize:q,maxCachedItems:X,getTotal:G,setTotal:y,get:T,has:$,set:H,setRange:_,insert:k,delete:v,getRange:C,isRangeLoaded:g,getLoadedRanges:p,findUnloadedRanges:x,getChunkIndex:Z,isChunkLoaded:z,isChunkFullyLoaded:O,touchChunk:A,touchChunksForRange:u,evictDistant:m,evictToLimit:o,getStats:j0,getCachedCount:e,clear:n,reset:()=>{n(),K=0}}};var v1=(J={})=>{let{maskCharacter:q=R1,maxSampleSize:X=P1}=J,Q=[],U=!1,Y=(F)=>{if(U||F.length===0)return;let G=Math.min(F.length,X);for(let y=0;y<G;y++){let T=F[y];if(!T||typeof T!=="object")continue;let $={},H=!1;for(let[_,k]of Object.entries(T)){if(_.startsWith("_")||_==="id")continue;$[_]=String(k??"").length,H=!0}if(H)Q.push($)}U=!0},K=()=>U,V=(F)=>{let G={id:`${c0}${F}`,[S2]:!0,_index:F};if(Q.length===0)return G.label=q.repeat(12),G;let y=Q[F%Q.length];for(let[T,$]of Object.entries(y))G[T]=q.repeat(Math.max(1,$));return G};return{analyzeStructure:Y,hasAnalyzedStructure:K,generate:V,generateRange:(F,G)=>{let y=[];for(let T=F;T<=G;T++)y.push(V(T));return y},clear:()=>{Q=[],U=!1}}},H2=(J)=>{if(!J||typeof J!=="object")return!1;return J[S2]===!0};var TJ=50,S1=(J={})=>{let{adapter:q,initialItems:X,initialTotal:Q,storage:U,placeholder:Y,pageSize:K=TJ,onStateChange:V,onItemsLoaded:W,onItemsEvicted:Z}=J,F=C1({...U,onEvict:(t,R)=>{Z?.(t),z()}}),G=null,y=()=>{if(!G)G=v1(Y);return G},T=new Map,$=!1,H,_=!0,k,v,C=[],g=0,p=new Map,x=()=>{for(let t of p.values())t[1].abort();p.clear()},z=()=>{V?.(c())},O=()=>{T.clear();let t=F.getLoadedRanges();for(let R of t)for(let I=R.start;I<=R.end;I++){let X0=F.get(I);if(X0&&!H2(X0))T.set(X0.id,I)}},A=(t,R)=>{if(!H2(R))T.set(R.id,t)},u=(t)=>{T.delete(t)},m=(t,R)=>{return`${t}-${R}`},o=()=>F.getTotal(),j0=()=>F.getCachedCount(),e=()=>$,n=()=>_,c=()=>({total:F.getTotal(),cached:F.getCachedCount(),isLoading:$,pendingRanges:C,error:H,hasMore:_,cursor:k}),B=()=>F,M=()=>y(),N=(t)=>{let R=F.get(t);if(R!==void 0)return R;if(t>=0&&t<F.getTotal())return y().generate(t);return},E=(t)=>{let R=T.get(t);if(R===void 0)return;return F.get(R)},S=(t)=>{return T.get(t)??-1},J0=(t)=>{let R=F.get(t);return R!==void 0&&!H2(R)},d=(t,R)=>{let I=[],X0=F.getTotal();F.touchChunksForRange(t,Math.min(R,X0-1));for(let q0=t;q0<=R&&q0<X0;q0++){let B0=F.get(q0);if(B0!==void 0)I.push(B0);else I.push(y().generate(q0))}return I},Q0=(t)=>{F.setTotal(t),_=F.getCachedCount()<t,z()},b=(t,R=0,I)=>{if(q&&t.length>0){let X0=y();if(!X0.hasAnalyzedStructure())X0.analyzeStructure(t)}for(let X0=0;X0<t.length;X0++){let q0=t[X0];if(q0!==void 0){let B0=R+X0;F.set(B0,q0),A(B0,q0)}}if(I!==void 0)F.setTotal(I);else if(R+t.length>F.getTotal())F.setTotal(R+t.length);if(F.getCachedCount()>=F.getTotal()&&F.getTotal()>0)_=!1;z(),W?.(t,R,F.getTotal())},w=(t,R)=>{let I=F.get(t);if(!I)return!1;let X0=I.id,q0={...I,...R};if(F.set(t,q0),R.id!==void 0&&R.id!==X0)u(X0);return A(t,q0),z(),!0},l=(t,R)=>{F.insert(R,t),O(),x(),z()},j=(t)=>{let R=T.get(t);if(R===void 0)return!1;if(!F.delete(R))return!1;return O(),x(),z(),!0},L=async(t,R)=>{if(!q)return;let I=F.chunkSize,X0=Math.floor(t/I),q0=Math.floor(R/I),B0=I*2;for(let[Z0,D0]of p){let T0=Z0.indexOf("-"),w0=parseInt(Z0.slice(0,T0),10);if(Math.abs(w0-t)>B0)D0[1].abort(),p.delete(Z0)}let N0=[],W0=[];for(let Z0=X0;Z0<=q0;Z0++){let D0=Z0*I,T0=D0+I-1,w0=m(D0,T0);if(F.isChunkFullyLoaded(Z0))continue;let b0=p.get(w0);if(b0)W0.push(b0[0]);else N0.push({start:D0,end:T0})}if(N0.length===0)return;for(let Z0 of N0){let D0=m(Z0.start,Z0.end),T0=new AbortController,w0=(async()=>{C.push(Z0),$=!0,H=void 0,z();try{let E0=Z0.end-Z0.start+1,b0={offset:Z0.start,limit:E0,cursor:Z0.start===v?k:void 0,signal:T0.signal},P0=await q.read(b0);if(b(P0.items,Z0.start,P0.total),P0.cursor)k=P0.cursor,v=Z0.start+P0.items.length;let M0=Z0.start+P0.items.length;if(M0>=g){if(g=M0,P0.hasMore!==void 0)_=P0.hasMore;else if(P0.total!==void 0)_=M0<P0.total}}catch(E0){if(E0?.name==="AbortError")return;H=E0 instanceof Error?E0:Error(String(E0))}finally{p.delete(D0),C=C.filter((E0)=>E0.start!==Z0.start||E0.end!==Z0.end),$=p.size>0,z()}})();p.set(D0,[w0,T0]),W0.push(w0)}await Promise.all(W0)},D=async(t,R)=>{if(F.isRangeLoaded(t,R))return;await L(t,R)},f=async()=>{if(!q)return;await L(0,K-1)},P=async()=>{if(!q||$||!_)return!1;let t=F.getCachedCount(),R=F.getTotal(),I=t,X0=Math.min(I+K-1,R>0?R-1:I+K-1);if(I>=R&&R>0)return _=!1,!1;return await L(I,X0),F.getCachedCount()>t},s=async()=>{if(F.clear(),F.setTotal(0),T.clear(),G)G.clear();x(),C=[],$=!1,k=void 0,v=void 0,_=!0,g=0,H=void 0,z()},r=(t,R)=>{if(F.evictDistant(t,R)>0)O()},h=()=>{F.clear(),T.clear(),k=void 0,v=void 0,H=void 0,C=[],$=!1,z()},a=()=>{if(F.reset(),T.clear(),G)G.clear();k=void 0,v=void 0,_=!0,g=0,H=void 0,C=[],$=!1,z()};if(X&&X.length>0)b(X,0,Q??X.length);else if(Q!==void 0)F.setTotal(Q),z();return{getState:c,getTotal:o,getCached:j0,getIsLoading:e,getHasMore:n,getStorage:B,getPlaceholders:M,getItem:N,getItemById:E,getIndexById:S,isItemLoaded:J0,getItemsInRange:d,setTotal:Q0,setItems:b,updateItem:w,insertItem:l,removeItem:j,loadRange:L,ensureRange:D,loadInitial:f,loadMore:P,reload:s,evictDistant:r,clear:h,reset:a}};var I2=(J)=>{let{adapter:q,loading:X,storage:Q,total:U,autoLoad:Y=!0}=J,K=X?.cancelThreshold??k1,V=X?.preloadThreshold??b1,W=X?.preloadAhead??$1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(Z){let{emitter:F}=Z,G=Z.config.reverse,y=Z.methods.get("_getGridLayout"),T=(c)=>{let B=Z.methods.get("_getGroupBridge");if(B){let M=B();if(M&&M.groupCount>0){let N=M.layoutToDataIndex(c.start),E=M.layoutToDataIndex(c.end);if(N<0){for(let S=c.start+1;S<=c.end;S++)if(N=M.layoutToDataIndex(S),N>=0)break}if(E<0){for(let S=c.end-1;S>=c.start;S--)if(E=M.layoutToDataIndex(S),E>=0)break}if(N>=0&&E>=0)return{start:N,end:E}}}if(y){let M=y();if(M){let N=Z.dataManager.getTotal();return M.getItemRange(c.start,c.end,N)}}return c};Z.methods.set("_isAsync",()=>!0);let $=null;Z.methods.set("_onItemsLoaded",(c)=>{($??=[]).push(c)});let H=(c)=>{F.emit("error",{error:c,context:"ensureRange"})},_=(c)=>{F.emit("error",{error:c,context:"loadMore"})},k=(c,B)=>Z.dataManager.ensureRange(c,B),v=(c,B=v2)=>{F.emit("load:start",{offset:c,limit:B})},C=S1({adapter:q,...U!==void 0&&{initialTotal:U},pageSize:Q?.chunkSize??v2,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(Z.state.isInitialized){let c=Z.getVirtualTotal(),B=Z.sizeCache.getTotal();if(c!==B)Z.sizeCache.rebuild(c);Z.updateCompressionMode();let M=Z.getCachedCompression();Z.state.viewportState.totalSize=M.virtualSize,Z.state.viewportState.actualSize=M.actualSize,Z.state.viewportState.isCompressed=M.isCompressed,Z.state.viewportState.compressionRatio=M.ratio,Z.updateContentSize(M.virtualSize),Z.renderIfNeeded()}},onItemsLoaded:(c,B,M)=>{if(Z.state.isInitialized){if($)for(let N of $)N(c,B,M);Z.forceRender(),F.emit("load:end",{items:c,total:M,offset:B})}}});Z.replaceDataManager(C);let g=null,p=null,x=0,z=!1,O=null,A=120,u=(c=!1)=>{if(z=!1,p=null,c)g=null;if(O!==null)clearTimeout(O),O=null},m=()=>{if(!p)return;p=null;let{renderRange:c}=Z.state.viewportState;if(c.end<c.start)return;g=null;let B=T(c);k(B.start,B.end).catch(H)};Z.afterScroll.push((c,B)=>{if(Z.state.isDestroyed)return;let M=Z.scrollController.getVelocity(),E=Z.scrollController.isTracking()&&M<=K;if(x>K&&M<=K)z=!0;else if(z&&M>K)u();if(z&&M<0.5)u(!0);if(x=M,(Z.scrollController.isAtTop()||Z.scrollController.isAtBottom())&&(z||p))u(!0),E=!0;let J0=z&&M>0.5;if(E&&!Z.dataManager.getIsLoading()&&Z.dataManager.getHasMore()){if(G?c<C2:Z.state.viewportState.totalSize-c-Z.state.viewportState.containerSize<C2)v(Z.dataManager.getCached()),Z.dataManager.loadMore().catch(_)}let{renderRange:d}=Z.state.viewportState;if(!g||d.start!==g.start||d.end!==g.end){if(g={start:d.start,end:d.end},E&&!J0){if(p=null,O!==null)clearTimeout(O),O=null;let b=T(d),w=b.start,l=b.end,j=y?Z.dataManager.getTotal():Z.getVirtualTotal();if(M>V)if(B==="down")l=Math.min(b.end+W,j-1);else w=Math.max(b.start-W,0);k(w,l).catch(H)}else if(p={start:d.start,end:d.end},J0){if(O!==null)clearTimeout(O);O=setTimeout(()=>{O=null,m(),u()},A)}}});let o=200,j0=null;Z.afterScroll.push((c,B)=>{if(j0!==null)clearTimeout(j0);j0=setTimeout(()=>{j0=null,m(),u()},o)}),Z.destroyHandlers.push(()=>{if(j0!==null)clearTimeout(j0),j0=null;u()});let e=()=>{if(Z.state.isDestroyed)return;g=null;let{renderRange:c}=Z.state.viewportState;if(c.end>0){let B=T(c);k(B.start,B.end).catch(H)}m()};window.addEventListener("online",e),Z.destroyHandlers.push(()=>{window.removeEventListener("online",e)}),F.on("load:start",()=>{Z.dom.root.setAttribute("aria-busy","true")}),F.on("load:end",()=>{Z.dom.root.removeAttribute("aria-busy")}),Z.methods.set("loadVisibleRange",async()=>{g=null,p=null,Z.forceRender();let{renderRange:c}=Z.state.viewportState;if(c.end>0){let B=T(c);v(B.start,B.end-B.start+1),await k(B.start,B.end)}}),Z.methods.set("reload",async(c)=>{g=null,p=null;let B=c?.snapshot,M=B!=null&&(B.total??0)>0&&B.index>0,N=M||c?.skipInitialLoad===!0;if(Z.invalidateRendered(),await Z.dataManager.reload(),!M)Z.scrollController.scrollTo(0);if(!N){v(0),await Z.dataManager.loadInitial(),Z.forceRender();let{renderRange:E}=Z.state.viewportState;if(E.end>0){let S=T(E);await k(S.start,S.end)}}if(M){let E=Z.methods.get("restoreScroll");if(E)E(B)}});let n=!1;if(Z.methods.set("_cancelAutoLoad",()=>{n=!0}),Y)queueMicrotask(()=>{if(n)return;v(0),Z.dataManager.loadInitial().catch((c)=>{F.emit("error",{error:c,context:"loadInitial"})})});else if(U!==void 0)Z.dataManager.setTotal(U)}}};var $2=(J)=>J==null?0:typeof J==="function"?J():J,p2=(J)=>{let q,X=J?.scrollPadding;return{name:"withPage",priority:5,setup(Q){let{dom:U,state:Y,config:K,emitter:V}=Q,W=K.horizontal,Z=window;if(U.root.style.overflow="visible",U.root.style.height="auto",W)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(Z),Q.setScrollFns(()=>{let T=U.viewport.getBoundingClientRect();return Math.max(0,W?-T.left:-T.top)},(T)=>{let $=U.viewport.getBoundingClientRect(),H=(W?$.left+Z.scrollX:$.top+Z.scrollY)+T;if(W)Z.scrollTo({left:H,top:Z.scrollY,behavior:"instant"});else Z.scrollTo({left:Z.scrollX,top:H,behavior:"instant"})}),Q.setContainerDimensions({width:()=>Z.innerWidth,height:()=>Z.innerHeight}),Y.viewportState.containerSize=Z.innerHeight,X){let T=Q.getItemToScrollIndexFn();Q.setScrollToPosFn(($,H,_,k,v)=>{let C=$2(W?X.left:X.top),g=$2(W?X.right:X.bottom);if(k===0)return 0;let p=Math.max(0,Math.min($,k-1)),x=H.getOffset(p),z=H.getSize(p),O=H.getTotalSize(),A=Math.max(0,O-_+g),u=v==="start"?x-C:v==="center"?x-C-(_-C-g-z)/2:x-_+z+g;return Math.max(-C,Math.min(u,A))}),Q.methods.set("_scrollItemIntoView",($)=>{let H=T($),_=W?Z.innerWidth:Z.innerHeight,k=$2(W?X.left:X.top),v=$2(W?X.right:X.bottom),C=U.viewport.getBoundingClientRect(),g=W?Z.scrollX:Z.scrollY,p=W?C.left:C.top,x=p+g,z=Q.sizeCache.getOffset(H),O=Q.sizeCache.getSize(H),A=p+z,u=_-v,m=g;if(A<k)m=x+z-k;else if(A+O>u)m=x+z+O-u;if(m!==g)if(W)Z.scrollTo({left:m,top:Z.scrollY,behavior:"instant"});else Z.scrollTo({left:Z.scrollX,top:m,behavior:"instant"})})}let{innerHeight:F,innerWidth:G}=Z,y=()=>{let{innerWidth:T,innerHeight:$}=Z;if(Math.abs(W?T-G:$-F)>1){F=$,G=T,Y.viewportState.containerSize=$,V.emit("resize",{width:T,height:$});for(let H=0;H<Q.resizeHandlers.length;H++)Q.resizeHandlers[H](T,$);Q.renderIfNeeded()}};Z.addEventListener("resize",y),q=()=>Z.removeEventListener("resize",y),Q.destroyHandlers.push(q)},destroy(){q?.(),q=void 0}}};var s0=(J,q)=>{let X=0,Q=J.length-1;while(X<Q){let U=X+Q+1>>>1;if(J[U].headerLayoutIndex<=q)X=U;else Q=U-1}return X},B2=(J,q)=>{let X=0,Q=J.length-1;while(X<Q){let U=X+Q+1>>>1;if(J[U].firstDataIndex<=q)X=U;else Q=U-1}return X},f1=(J,q,X)=>{if(J===0)return[];let Q=[],U=q(0,X?.(0)),Y=0,K=0;for(let V=1;V<J;V++){let W=q(V,X?.(V));if(W!==U){let Z=V-Y;Q.push({key:U,groupIndex:Q.length,headerLayoutIndex:K,firstDataIndex:Y,count:Z}),K=K+1+Z,U=W,Y=V}}return Q.push({key:U,groupIndex:Q.length,headerLayoutIndex:K,firstDataIndex:Y,count:J-Y}),Q},u2=(J,q)=>{if(J.length===0||q.length===0)return[];let X=J.length+q.length,Q=Array(X),U=0;for(let Y of q){Q[U]={id:`__group_header_${Y.groupIndex}`,__groupHeader:!0,groupKey:Y.key,groupIndex:Y.groupIndex},U++;for(let K=0;K<Y.count;K++)Q[U]=J[Y.firstDataIndex+K],U++}return Q};var h1=(J,q,X)=>{let Q=f1(J,q.getGroupForIndex,X),U=J+Q.length,Y=q.header?.height??q.header?.width??q.headerHeight;return{get totalEntries(){return U},get groupCount(){return Q.length},get groups(){return Q},getEntry:(T)=>{if(Q.length===0)return{type:"item",dataIndex:T,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let $=s0(Q,T),H=Q[$];if(T===H.headerLayoutIndex)return{type:"header",group:H};let _=T-H.headerLayoutIndex-1;return{type:"item",dataIndex:H.firstDataIndex+_,group:H}},layoutToDataIndex:(T)=>{if(Q.length===0)return T;let $=s0(Q,T),H=Q[$];if(T===H.headerLayoutIndex)return-1;let _=T-H.headerLayoutIndex-1;return H.firstDataIndex+_},dataToLayoutIndex:(T)=>{if(Q.length===0)return T;let $=B2(Q,T),H=Q[$],_=T-H.firstDataIndex;return H.headerLayoutIndex+1+_},getGroupAtLayoutIndex:(T)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let $=s0(Q,T);return Q[$]},getGroupAtDataIndex:(T)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let $=B2(Q,T);return Q[$]},getHeaderHeight:typeof Y==="number"?(T)=>Y:(T)=>{let $=Q[T];if(!$)return 0;return Y($.key,T)},rebuild:(T,$)=>{Q=f1(T,q.getGroupForIndex,$??X),U=T+Q.length}}};var g2=(J,q,X,Q,U=0)=>{let Y=X?"width":"height",K=document.createElement("div");return K.className=`${q}-sticky-header`,K.setAttribute("role","presentation"),K.setAttribute("aria-hidden","true"),K.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(X?`top:0;bottom:0;left:${U||0}px`:`top:${U||0}px`),K.style[Y]=`${Q}px`,J.insertBefore(K,J.firstChild),K},m2=(J,q,X,Q,U,Y=!1,K=0,V,W)=>{let Z=Y?"width":"height",F=Y?"height":"width",G=Y?"X":"Y",y=(L,D)=>{L.style[Z]=`${D}px`},T=W??g2(J,U,Y,0,K),$=()=>{let L=document.createElement("div");return L.className="sticky-group",L.style.position="absolute",L.style.willChange="transform",L.style[F]="100%",L},H=$(),_=$();T.append(H,_);let k=H,v=_,C=q.groups,g=[],p=[],x=[],z=0,O=()=>{C=q.groups,z=C.length,g=Array(z),p=Array(z),x=Array(z);let L=V?V():1;for(let D=0;D<z;D++)g[D]=X.getOffset(C[D].headerLayoutIndex)*L,p[D]=q.getHeaderHeight(D),x[D]=p[D]*L};O();let A=-1,u=0,m=0,o=-1,j0=!1,e=0,n=!1,c=(L,D)=>{Q(L,D);let f=p[D];return y(L,f),f},B=(L)=>{L.replaceChildren(),L.style.transform=""},M=(L)=>{if(L===A)return;if(A=L,u=0,m=0,L<0||L>=z){B(k);return}u=c(k,L),m=x[L],y(T,u),k.style.transform=""},N=(L)=>{if(L===e)return;e=L;let D=Math.round(L);k.style.transform=`translate${G}(${D}px)`,v.style.transform=`translate${G}(${D+u}px)`},E=()=>{e=0,k.style.transform="",v.style.transform=""},S=()=>{if(!n)return;let L=k;k=v,v=L,A=o,u=A>=0?p[A]:0,m=A>=0?x[A]:0,y(T,u),B(v),o=-1,n=!1,E()},J0=()=>{if(!n)return;B(v),o=-1,n=!1,E()},d=!!W,Q0=()=>{if(j0)return;if(j0=!0,d)T.style.visibility="";else T.style.display=""},b=()=>{if(!j0)return;if(j0=!1,d)T.style.visibility="hidden";else T.style.display="none";B(k),A=-1,u=0,m=0,J0()},w=(L)=>{if(z===0){b();return}if(L<g[0]){b();return}let D=0,f=z-1;while(D<f){let s=D+f+1>>>1;if(g[s]+x[s]<=L)D=s;else f=s-1}if(!j0)Q0();M(D);let P=D+1;if(P<z){let s=g[P]-L;if(s<=0&&s>-m){if(o!==P||!n)o=P,c(v,P),n=!0;let r=m>0?s/m*u:s;N(r)}else if(s<=-m){if(n)S()}else if(n)J0()}else if(n)J0()},l=()=>{O();let L=A;if(A=-1,u=0,m=0,L>=0)M(L)},j=()=>{T.remove(),A=-1,u=0,m=0,o=-1,j0=!1,n=!1};if(!W)T.style.display="none";return{update:w,refresh:l,show:Q0,hide:b,destroy:j}};var x0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var I1={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},p1=(J,q,X)=>{let Q=[],U=0,Y=0,K=new Map,V=()=>{if(Q=[],U===0||K.size===0){Y=U;return}let C=null,g=-1,p=0;for(let x=0;x<U;x++){let z=K.get(x);if(z===void 0){if(C!==null&&g>=0){let O=x-g;Q.push({key:C,groupIndex:Q.length,headerLayoutIndex:g+p,firstDataIndex:g,count:O}),p++,C=null,g=-1}continue}if(z!==C){if(C!==null&&g>=0){let O=x-g;Q.push({key:C,groupIndex:Q.length,headerLayoutIndex:g+p,firstDataIndex:g,count:O}),p++}C=z,g=x}}if(C!==null&&g>=0){let x=U-g;Q.push({key:C,groupIndex:Q.length,headerLayoutIndex:g+p,firstDataIndex:g,count:x}),p++}Y=U+p};return{onItemsLoaded:(C,g,p)=>{U=p;for(let x=0;x<C.length;x++){let z=g+x,O=C[x];if(O!==void 0){let A=J.getGroupForIndex(z,O);K.set(z,A)}}V()},get totalEntries(){return Y},get groupCount(){return Q.length},get groups(){return Q},isHeader:(C)=>{if(Q.length===0)return!1;let g=s0(Q,C),p=Q[g];return C===p.headerLayoutIndex},getHeaderItem:(C)=>{if(Q.length===0)return;let g=s0(Q,C),p=Q[g];if(C!==p.headerLayoutIndex)return;return{id:`__group_header_${p.groupIndex}`,__groupHeader:!0,groupKey:p.key,groupIndex:p.groupIndex}},layoutToDataIndex:(C)=>{if(Q.length===0)return C;let g=s0(Q,C),p=Q[g];if(C===p.headerLayoutIndex)return-1;let x=C-p.headerLayoutIndex-1;return p.firstDataIndex+x},dataToLayoutIndex:(C)=>{if(Q.length===0)return C;let g=B2(Q,C),p=Q[g],x=C-p.firstDataIndex;return p.headerLayoutIndex+1+x},getHeaderHeight:(C)=>J.headerHeight,getGroupAtLayoutIndex:(C)=>{if(Q.length===0)return I1;let g=s0(Q,C);return Q[g]},getGroupAtDataIndex:(C)=>{if(Q.length===0)return I1;let g=B2(Q,C);return Q[g]},insertAt:(C,g)=>{let p=new Map;for(let[z,O]of K)if(z<C)p.set(z,O);else p.set(z+1,O);K.clear();for(let[z,O]of p)K.set(z,O);let x=J.getGroupForIndex(C,g);K.set(C,x),U++,V()},removeAt:(C)=>{let g=new Map;for(let[p,x]of K)if(p<C)g.set(p,x);else if(p>C)g.set(p-1,x);K.clear();for(let[p,x]of g)K.set(p,x);U--,V()},reset:()=>{Q=[],U=0,Y=0,K.clear()}}};var u1=(J,q,X,Q,U,Y)=>{if(Q===0)return 0;let K=Math.max(0,Math.min(J,Q-1)),V=q.getOffset(K),W=q.getSize(K),Z=q.getTotalSize(),F=Math.max(0,Z-X),G;switch(Y){case"center":G=V-X/2+W/2;break;case"end":G=V-X+W;break;case"start":default:G=V;break}return Math.max(0,Math.min(G,F))};var V2=(J,q,X,Q,U="start",Y,K=u1)=>{return K(J,q,X,Q,Y,U)};var HJ=(J,q)=>{if(J.header){let X=q?J.header.width??J.header.height:J.header.height??J.header.width;return{getGroupForIndex:J.getGroupForIndex,header:{height:X,template:J.header.template},sticky:J.sticky}}if(J.headerHeight!=null&&J.headerTemplate)return{getGroupForIndex:J.getGroupForIndex,header:{height:J.headerHeight,template:J.headerTemplate},sticky:J.sticky};return J},x2=(J)=>{let q=J.header,X=q?q.height??q.width:J.headerHeight,Q=q?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(X==null||X<=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,Y=null;return{name:"withGroups",priority:10,setup(K){let{dom:V,config:W,rawConfig:Z}=K,{classPrefix:F}=W,G=HJ(J,W.horizontal),T=Z.item.height,$=G.sticky!==!1,{template:H}=G.header;V.root.classList.add(`${F}--grouped`);let _=null;if($)if(K.methods.set("_getStickyHeaderHeight",()=>G.header.height),_=g2(V.root,F,W.horizontal,G.header.height),!W.horizontal)V.viewport.style.height=`calc(100% - ${G.header.height}px)`;else V.viewport.style.width=`calc(100% - ${G.header.height}px)`;let{animateScroll:k,cancelScroll:v}=q2(K.scrollController,K.renderIfNeeded),C=null;K.methods.set("scrollToIndex",(x,z)=>{let O=C??U;if(!O)return;let A=O.dataToLayoutIndex(x),{align:u,behavior:m,duration:o}=r0(z),j0=K.dataManager.getTotal(),e=K.adjustScrollPosition(V2(A,K.sizeCache,K.state.viewportState.containerSize,j0,u,K.getCachedCompression()));if(m==="smooth")k(K.scrollController.getScrollTop(),e,o);else v(),K.scrollController.scrollTo(e)}),K.destroyHandlers.push(()=>{if(v(),Y)Y.destroy(),Y=null;else if(_)_.remove();V.root.classList.remove(`${F}--grouped`)});let g=null;K.methods.set("_getGroupBridge",()=>g),queueMicrotask(()=>{let x=K.methods.get("_onItemsLoaded");if(x)kJ(K,G,W,Z,T,$,H,F,x,(z)=>{g=z,C=z},(z)=>{Y=z},_,p.staticInsertItem,p.staticRemoveItem)});let p=$J(K,G,W,Z,T,$,H,F,(x)=>{U=x,C=x},(x)=>{Y=x},_)},destroy(){if(Y)Y.destroy(),Y=null}}};function $J(J,q,X,Q,U,Y,K,V,W,Z,F){let{dom:G}=J,y=null,T=Q.items?[...Q.items]:[],$=T.length,H={getGroupForIndex:q.getGroupForIndex,header:{height:q.header.height}},_=(N)=>T[N],k=h1($,H,_);W(k);let v=u2(T,k.groups),C=typeof U==="number"?(N)=>U:U,g=(N)=>{let E=k.layoutToDataIndex(N);if(E<0){let S=k.getGroupAtLayoutIndex(N);if(Y&&S.groupIndex===0)return 0;return k.getHeaderHeight(S.groupIndex)}return C(E)};J.setSizeConfig(g),J.rebuildSizeCache(v.length),J.dataManager.setItems(v,0,v.length);let p=Q.item.template,x=(N,E,S)=>{if(x0(N))return K(N.groupKey,N.groupIndex);return p(N,E,S)},z=J.methods.get("_getGridLayout"),O=J.methods.get("_replaceGridRenderer"),A=J.methods.get("_updateGridLayoutForGroups"),u=J.methods.get("_createGridRenderer"),m=J.methods.get("_getTableLayout"),o=J.methods.get("_updateTableForGroups");if(z&&O&&u){if(A)A((S)=>{let J0=v[S];return!!(J0&&x0(J0))});let N=z(),E=u(G.items,x,J.sizeCache,N,V,J.getContainerWidth(),()=>T.length,X.ariaIdPrefix,X.horizontal,(S)=>k.layoutToDataIndex(S)+1,X.interactive);O(E)}else if(m&&o)o((N)=>x0(N),q.header.template);else J.replaceTemplate(x);let j0=()=>{if(!Y||y)return;if(k.groupCount===0)return;let N=q.header.template,E=(J0,d)=>{let Q0=k.groups[d];if(!Q0)return;let b=N(Q0.key,Q0.groupIndex);if(typeof b==="string")J0.innerHTML=b;else J0.replaceChildren(b)},S=m2(G.root,k,J.sizeCache,E,V,X.horizontal,0,()=>J.getCachedCompression().ratio,F??void 0);y=S,Z(S),J.afterScroll.push((J0,d)=>{S.update(J0)}),S.update(J.scrollController.getScrollTop())};j0();let e=Q.item?.striped,n=()=>{if(e!=="data"&&e!=="even"&&e!=="odd")return;let N=new Int32Array(v.length),E=e==="odd"?1:0,S=0;for(let J0=0;J0<v.length;J0++)if(x0(v[J0])){if(N[J0]=-1,e==="even"||e==="odd")S=0}else N[J0]=S+++E;J.setStripeIndexFn((J0)=>{if(J0<0||J0>=N.length)return J0;return N[J0]})};n();let c=()=>{if(k.rebuild(T.length,_),v=u2(T,k.groups),J.rebuildSizeCache(v.length),J.dataManager.setItems(v,0,v.length),n(),j0(),y)y.refresh()};J.methods.set("setItems",(N)=>{T=N.slice(),c()}),J.methods.set("appendItems",(N)=>{T.push(...N),c()}),J.methods.set("prependItems",(N)=>{T.unshift(...N),c()});let B=(N,E)=>{let S=E??0;T.splice(S,0,N),c()};J.methods.set("insertItem",B);let M=(N)=>{let E=T.length;if(T=T.filter((S)=>S.id!==N),T.length===E)return!1;return c(),!0};return J.methods.set("removeItem",M),J.methods.set("_getItems",()=>T),J.methods.set("_getTotal",()=>T.length),J.methods.set("_isGroupHeader",(N)=>{let E=v[N];return!!(E&&x0(E))}),J.methods.set("_layoutToDataIndex",(N)=>k.layoutToDataIndex(N)),J.methods.set("_dataToLayoutIndex",(N)=>k.dataToLayoutIndex(N)),{staticInsertItem:B,staticRemoveItem:M}}function kJ(J,q,X,Q,U,Y,K,V,W,Z,F,G,y,T){let{dom:$}=J,H=J.dataManager,_=p1({getGroupForIndex:q.getGroupForIndex,headerHeight:q.header.height});Z(_);let k=typeof U==="number"?(A)=>U:U,v=(A)=>{if(_.isHeader(A)){if(Y&&_.getGroupAtLayoutIndex(A).groupIndex===0)return 0;return q.header.height}let u=_.layoutToDataIndex(A);return u>=0?k(u):k(A)};J.setSizeConfig(v),J.setVirtualTotalFn(()=>_.totalEntries||H.getTotal());let C={...H,getTotal:()=>_.totalEntries,getIndexById:(A)=>{let u=H.getIndexById(A);if(u<0)return-1;return _.dataToLayoutIndex(u)},getItem:(A)=>{let u=_.getHeaderItem(A);if(u)return u;let m=_.layoutToDataIndex(A);if(m>=0)return H.getItem(m);return H.getItem(A)},getItemsInRange:(A,u)=>{let m=[];for(let o=A;o<=u;o++){let j0=C.getItem(o);if(j0!==void 0)m.push(j0)}return m},isItemLoaded:(A)=>{if(_.isHeader(A))return!0;let u=_.layoutToDataIndex(A);if(u>=0)return H.isItemLoaded(u);return H.isItemLoaded(A)},reload:()=>{return _.reset(),H.reload()},insertItem:(A,u)=>{_.insertAt(u,A),H.insertItem(A,u)},removeItem:(A)=>{let u=H.getIndexById(A);if(u>=0)_.removeAt(u);return H.removeItem(A)},clear:()=>{_.reset(),H.clear()},reset:()=>{_.reset(),H.reset()}};J.replaceDataManager(C);let g=Q.item.template,p=J.methods.get("_updateTableForGroups");if(p)p((A)=>x0(A),q.header.template);J.replaceTemplate((A,u,m)=>{if(x0(A))return K(A.groupKey,A.groupIndex);return g(A,u,m)});let x=null;if(Y){let A=q.header.template,u=(j0,e)=>{let n=_.groups[e];if(!n)return;let c=A(n.key,n.groupIndex);if(typeof c==="string")j0.innerHTML=c;else j0.replaceChildren(c)},m={get groups(){return _.groups},getHeaderHeight:(j0)=>_.getHeaderHeight(j0)};x=m2($.root,m,J.sizeCache,u,V,X.horizontal,0,()=>J.getCachedCompression().ratio,G??void 0),F(x);let o=x;J.afterScroll.push((j0,e)=>{o.update(j0)})}let z=-1;if(J.methods.set("_ensureTailLoaded",()=>{let A=H.getTotal();if(A<=0)return;let u=A-1;if(H.isItemLoaded(u))return;z=u,H.ensureRange(u,u)}),W((A,u,m)=>{let o=J.scrollController.getScrollTop(),j0=_.groupCount,e=_.totalEntries||m,n=0,c=0,B=J.methods.get("_restoreAnchor");if(B)n=B.dataIndex,c=B.fraction;else if(o>0){let E=J.getCachedCompression(),S=E.ratio!==1?o/E.ratio:o,J0=J.sizeCache.indexAtOffset(S);if(n=_.layoutToDataIndex(J0),n<0&&J0+1<_.totalEntries)J0=J0+1,n=_.layoutToDataIndex(J0);let d=J.sizeCache.getOffset(J0),Q0=J.sizeCache.getSize(J0);c=Q0>0?(S-d)/Q0:0}_.onItemsLoaded(A,u,m),J.rebuildSizeCache(_.totalEntries);let M=J.getCachedCompression();if(J.updateContentSize(M.virtualSize),_.groupCount-j0>0&&(o>0||B)){if(B?.skipAdjust);else if(n>=0){let E=_.dataToLayoutIndex(n),S=J.sizeCache.getOffset(E),J0=J.sizeCache.getSize(E),d=S+c*J0,Q0=M.ratio!==1?d*M.ratio:d;if(Math.abs(Q0-o)>1)J.scrollController.scrollTo(Q0);if(B){J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave");let b=J.methods.get("_saveSnapshot");if(b)b()}}}else if(B){let E=B.skipAdjust;if(J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave"),!E){let S=J.methods.get("_saveSnapshot");if(S)S()}}if(x)x.refresh(),x.update(J.scrollController.getScrollTop());if(z>=0&&H.isItemLoaded(z)){let E=_.dataToLayoutIndex(z);z=-1;let S=J.methods.get("_getFocusedIndex"),J0=S?S():-1;if(J0>=0&&J0>=e-1&&E!==J0){let d=E;while(d>0&&_.isHeader(d))d--;let Q0=J.methods.get("_setFocusedIndex");if(Q0)Q0(d)}}}),J.methods.set("_isGroupHeader",(A)=>_.isHeader(A)),J.methods.set("_layoutToDataIndex",(A)=>_.layoutToDataIndex(A)),J.methods.set("_dataToLayoutIndex",(A)=>_.dataToLayoutIndex(A)),J.methods.set("_getTotal",()=>H.getTotal()),J.methods.get("removeItem")===T)J.methods.delete("removeItem");if(J.methods.get("insertItem")===y)J.methods.delete("insertItem");let O=Q.item?.striped;if(O==="data"||O==="even"||O==="odd"){let A=O==="odd"?1:0;J.setStripeIndexFn((u)=>{if(_.isHeader(u))return-1;let m=_.layoutToDataIndex(u);return m>=0?m+A:u})}}var g1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),X=J.gap??0,Q=J.isHeaderFn,U={row:0,col:0},Y=($)=>{if($<=0)return 0;if(!Q)return Math.ceil($/q);let H=0,_=0,k=0;for(let v=0;v<$;v++)if(Q(v)){if(k++,_)H++,_=0;H++,_=0}else if(_++,_>=q)H++,_=0;if(_)H++;return H},K=($)=>{return U.row=V($),U.col=W($),U},V=($)=>{if(!Q)return Math.floor($/q);let H=0,_=0;for(let k=0;k<=$;k++)if(Q(k)){if(_)H++,_=0;if(k===$)return H;H++,_=0}else{if(k===$)return H;if(_++,_>=q)H++,_=0}return console.warn(`⚠️ getRow(${$}) fell through - returning ${H}`),H},W=($)=>{if(!Q)return $%q;if(Q($))return 0;let H=0;for(let _=0;_<=$;_++)if(Q(_))H=0;else{if(_===$)return H;if(H++,H>=q)H=0}return H},Z=($,H,_)=>{if(_<=0)return{start:0,end:-1};if(!Q){let p=Math.max(0,$*q),x=Math.min(_-1,(H+1)*q-1);return{start:p,end:x}}let k=-1,v=-1,C=0,g=0;for(let p=0;p<_;p++){if(Q(p)){if(g)C++,g=0;if(C>=$&&C<=H){if(k<0)k=p;v=p}C++,g=0}else{if(C>=$&&C<=H){if(k<0)k=p;v=p}if(g++,g>=q)C++,g=0}if(C>H&&!g)break}if(k<0)return{start:0,end:-1};return{start:k,end:v}},F=($,H,_)=>{if(H<0||H>=q)return-1;let k=$*q+H;if(k<0||k>=_)return-1;return k},G=($)=>{let H=(q-1)*X;return Math.max(0,($-H)/q)};return{get columns(){return q},get gap(){return X},update:($)=>{if($.columns!==void 0)q=Math.max(1,Math.floor($.columns));if($.gap!==void 0)X=$.gap;if($.isHeaderFn!==void 0)Q=$.isHeaderFn},getTotalRows:Y,getPosition:K,getRow:V,getCol:W,getItemRange:Z,getItemIndex:F,getColumnWidth:G,getColumnOffset:($,H)=>{let _=G(H);return $*(_+X)}}};var Y2=(J,q,X)=>{if(String(X).startsWith(c0))return!1;let Q=c0+q;if(J.has(Q))return J.delete(Q),J.add(X),!0;return!1},m1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1});var bJ=(J=200)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let K=document.createElement("div");return K.setAttribute("role","option"),K},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}}},RJ=1,d2=(J,q,X,Q,U,Y,K,V,W=!1,Z,F)=>{let G=bJ(),y=new Map,T=Y,$=!1,H=0,_="",k=-1,v={selected:!1,focused:!1},C=(b,w)=>{return v.selected=b,v.focused=w,v},g=`${U}-item ${U}-grid-item`,p=`${U}-group-header`,x=`${U}-item--selected`,z=`${U}-item--focused`,O=`${U}-item--placeholder`,A=`${U}-item--replaced`,u=(b,w)=>{if(typeof w==="string")b.innerHTML=w;else b.replaceChildren(w)},m=(b,w,l)=>{b.classList.toggle(x,w),b.classList.toggle(z,l)},o=(b,w)=>{let l=Q.getRow(b);if(w?.compression?.isCompressed)return T2(l,w.scrollPosition,X,w.totalItems,w.containerSize,w.compression,w.rangeStart);return X.getOffset(l)},j0=(b,w)=>{let l=Q.getCol(b),L=$&&l===0?0:Q.getColumnOffset(l,T),D;if($){let f=Q.getRow(b),P=0,s=-1;for(let r=0;r<b;r++){let h=Q.getRow(r);if(h<f&&h!==s){let a=X.getSize(r);P+=a,s=h}}D=P}else D=o(b,w);if(W)return`translate(${Math.round(D)}px, ${Math.round(L)}px)`;return`translate(${Math.round(L)}px, ${Math.round(D)}px)`},e=(b,w)=>{let l=b.classList.contains(p),j=l?T:Q.getColumnWidth(T),L;if($||l)L=X.getSize(w)-Q.gap;else{let D=Q.getRow(w);L=X.getSize(D)-Q.gap}if(W)b.style.width=`${L}px`,b.style.height=`${j}px`;else b.style.width=`${j}px`,b.style.height=`${L}px`},n=(b,w,l,j,L)=>{let D=G.acquire(),f=!!w.__groupHeader,P=C(l,j);if(D.className=f?p:g,D.dataset.index=String(b),D.dataset.id=String(w.id),D.dataset.row=String(Q.getRow(b)),D.dataset.col=String(Q.getCol(b)),f)D.setAttribute("role","presentation"),D.removeAttribute("aria-selected"),D.removeAttribute("aria-setsize"),D.removeAttribute("aria-posinset"),D.removeAttribute("id");else if(F!==!1){if(D.setAttribute("role","option"),D.ariaSelected=String(l),V)D.id=`${V}-item-${b}`;if(K){let h=K();if(h!==k)k=h,_=String(h);D.setAttribute("aria-setsize",_);let a=Z?Z(b):b+1;D.setAttribute("aria-posinset",String(a))}}else if(D.setAttribute("role","listitem"),D.removeAttribute("aria-selected"),K){let h=K();if(h!==k)k=h,_=String(h);D.setAttribute("aria-setsize",_);let a=Z?Z(b):b+1;D.setAttribute("aria-posinset",String(a))}e(D,b);let s=q(w,b,P);if(u(D,s),String(w.id).startsWith(c0))D.classList.add(O);return m(D,l,j),D.style.transform=L,{element:D,lastItemId:w.id,lastSelected:l,lastFocused:j,lastTransform:L,lastSeenFrame:H}},c=(b,w,l,j,L)=>{if(H++,w.start===0&&b.length)$=x0(b[0]);for(let[P,s]of y)if(P>=w.start&&P<=w.end)s.lastSeenFrame=H;else if(H-s.lastSeenFrame>RJ)G.release(s.element),y.delete(P);let D=!1;if(K){let P=K();if(P!==k)k=P,_=String(P),D=!0}let f=null;for(let P=w.start;P<=w.end;P++){let s=P-w.start,r=b[s];if(!r){console.warn(`⚠️ RENDER: Missing item at index ${P} (range: ${w.start}-${w.end}, items.length: ${b.length})`);continue}let h=l.has(r.id),a=P===j,t=y.get(P);if(t){let R=t.lastItemId!==r.id,I=t.lastSelected!==h,X0=t.lastFocused!==a;if(R){let B0=String(t.lastItemId),N0=String(r.id),W0=B0.startsWith(c0),Z0=N0.startsWith(c0);if(!Z0&&Y2(l,P,r.id))h=!0;let D0=C(h,a),T0=q(r,P,D0);if(u(t.element,T0),t.element.dataset.id=N0,t.element.dataset.row=String(Q.getRow(P)),t.element.dataset.col=String(Q.getCol(P)),e(t.element,P),t.element.classList.toggle(O,Z0),W0&&!Z0)t.element.classList.add(A),setTimeout(()=>t.element.classList.remove(A),300);if(t.lastItemId=r.id,!r.__groupHeader){let E0=Z?Z(P):P+1;t.element.setAttribute("aria-posinset",String(E0))}}if(R||I||X0)m(t.element,h,a),t.element.ariaSelected=String(h),t.lastSelected=h,t.lastFocused=a;let q0=j0(P,L);if(t.lastTransform!==q0)t.element.style.transform=q0,t.lastTransform=q0;if(D&&!r.__groupHeader)t.element.setAttribute("aria-setsize",_)}else{if(Y2(l,P,r.id))h=!0;let R=j0(P,L),I=n(P,r,h,a,R);if(!f)f=document.createDocumentFragment();f.appendChild(I.element),y.set(P,I)}}if(f)J.appendChild(f)},B=(b)=>{for(let[w,l]of y){let j=j0(w,b);if(l.lastTransform!==j)l.element.style.transform=j,l.lastTransform=j}},M=(b,w,l,j)=>{let L=y.get(b);if(!L)return;let D=C(l,j),f=q(w,b,D);u(L.element,f),m(L.element,l,j),L.element.dataset.id=String(w.id),L.element.ariaSelected=String(l),e(L.element,b),L.lastItemId=w.id,L.lastSelected=l,L.lastFocused=j},N=(b,w,l)=>{let j=y.get(b);if(!j)return;let L=j.lastSelected!==w,D=j.lastFocused!==l;if(L||D)m(j.element,w,l),j.lastSelected=w,j.lastFocused=l},E=(b)=>{return y.get(b)?.element},S=(b)=>{if(Math.abs(b-T)<1)return;T=b;for(let[w,l]of y){e(l.element,w);let j=j0(w);l.element.style.transform=j,l.lastTransform=j}},J0=()=>{J2(J,y.keys(),(b)=>y.get(b)?.element)},d=()=>{for(let[,b]of y)G.release(b.element);y.clear()};return{render:c,updatePositions:B,updateItem:M,updateItemClasses:N,getElement:E,sortDOM:J0,updateContainerWidth:S,clear:d,destroy:()=>{d(),G.clear()}}};var PJ=new Set,c2=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let q=null,X=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(Q){let{dom:U,emitter:Y,config:K,rawConfig:V}=Q,{classPrefix:W}=K;if(K.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let Z=K.horizontal,F=F2(g0(V.padding),Z),G=()=>{return(Z?U.viewport.clientHeight:Q.getContainerWidth())-F},y=V.items?.some((d)=>d.__groupHeader===!0),T={columns:J.columns,gap:J.gap??0};if(y)T.isHeaderFn=(d)=>{let Q0=Q.dataManager.getItem(d);return!!(Q0&&Q0.__groupHeader===!0)};q=g1(T);let $=q.gap;Q.setVirtualTotalFn(()=>{let d=Q.dataManager.getTotal();return q.getTotalRows(d)}),Q.setItemToScrollIndexFn((d)=>Math.floor(d/T.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>Z?{ud:1,lr:T.columns,cols:T.columns}:{ud:T.columns,lr:1,cols:T.columns});let H=V.item,_=K.horizontal?H.width:H.height,k={containerWidth:G(),columns:q.columns,gap:q.gap},v={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof _==="function")Q.setSizeConfig((d)=>{let Q0=k.containerWidth-2,b=(k.columns-1)*k.gap;return v.containerWidth=k.containerWidth,v.columns=k.columns,v.gap=k.gap,v.columnWidth=(Q0-b)/k.columns,v.row=q.getRow(d),v.column=q.getCol(d),v.totalRows=q.getTotalRows(Q.dataManager.getTotal()),v.totalColumns=k.columns,_(d,v)+k.gap});else if($>0)Q.setSizeConfig(_+$);if(Q.rebuildSizeCache(),$>0){let d=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let Q0=d();return Q0?Q0-k.gap:0}}U.root.classList.add(`${W}--grid`);let C=G(),g=V.item.template,p=Q2(Q.methods,()=>Q.dataManager.getTotal()),x=()=>{X=d2(U.items,g,Q.sizeCache,q,W,C,p.getSetSize,K.ariaIdPrefix,K.horizontal,p.getPosInSet,K.interactive),Q.replaceRenderer(X)};x();let z=()=>{for(let d=0;d<Q.contentSizeHandlers.length;d++)Q.contentSizeHandlers[d]()};Q.setUpdateItemClassesFn((d,Q0,b)=>{X?.updateItemClasses(d,Q0,b)}),Q.methods.set("_updateRenderedItem",(d,Q0,b,w)=>{X?.updateItem(d,Q0,b,w)}),Q.methods.set("_getGridLayout",()=>q),Q.methods.set("_getGridConfig",()=>T),Q.methods.set("_replaceGridRenderer",(d)=>{X=d}),Q.methods.set("_createGridRenderer",d2),Q.methods.set("_updateGridLayoutForGroups",(d)=>{q.update({isHeaderFn:d});let Q0=Q.dataManager.getTotal(),b=0;for(let w=0;w<Q0;w++)if(!q.getCol(w)){let l=Q.sizeCache.getSize(w);b+=l}Q.sizeCache.getTotalSize=()=>b,Q.updateContentSize(b),x()}),Q.methods.set("updateGrid",(d)=>{if(d.columns!==void 0){if(!Number.isInteger(d.columns)||d.columns<1)throw Error("[vlist/builder] updateGrid: columns must be a positive integer >= 1");T.columns=d.columns}if(d.gap!==void 0){if(d.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");T.gap=d.gap}q?.update(T);let Q0=G();k.containerWidth=Q0,k.columns=T.columns,k.gap=T.gap??0,X?.updateContainerWidth(Q0),Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode(),z(),X?.clear(),Q.forceRender()});let O=null,A=null,u=!1,m=()=>{if(u)return;u=!0,O=Q.methods.get("_getSelectedIds")??null,A=Q.methods.get("_getFocusedIndex")??null},o=-1,j0=-1,e=!0,n=K.overscan,c={start:0,end:0},B={start:0,end:0},M=()=>{if(Q.state.isDestroyed)return;let d=Q.scrollController.getScrollTop(),Q0=Q.state.viewportState.containerSize;if(!e&&d===o&&Q0===j0)return;o=d,j0=Q0,e=!1;let b=Q.getVirtualTotal();Q.getVisibleRange(d,Q0,b,c),B.start=Math.max(0,c.start-n),B.end=Math.min(b-1,c.end+n);let w=Q.state.viewportState;w.scrollPosition=d,w.visibleRange.start=c.start,w.visibleRange.end=c.end,w.renderRange.start=B.start,w.renderRange.end=B.end;let l=Q.state.lastRenderRange,j=w.isCompressed,L=l.start!==B.start||l.end!==B.end;if(!L&&j){X.updatePositions(Q.getCompressionContext());return}let D=q.getItemRange(B.start,B.end,Q.dataManager.getTotal()),f=Q.dataManager.getItemsInRange(D.start,D.end),P=j?Q.getCompressionContext():void 0;m();let s=O?O():PJ,r=A?A():-1;if(X.render(f,D,s,r,P),L)l.start=B.start,l.end=B.end,Y.emit("range:change",{range:{start:B.start,end:B.end}})},N=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,e=!0,M()};Q.setRenderFns(M,N);let E=typeof _==="function";Q.resizeHandlers.push((d,Q0)=>{let b=(Z?Q0:d)-F;if(Math.abs(b-k.containerWidth)<1)return;if(k.containerWidth=b,X?.updateContainerWidth(b),E)Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode(),z(),X?.clear(),Q.forceRender()});let{animateScroll:S,cancelScroll:J0}=q2(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",J0),Q.methods.set("scrollToIndex",(d,Q0)=>{let b=Math.floor(d/J.columns),{align:w,behavior:l,duration:j}=r0(Q0),L=Q.dataManager.getState(),D=q.getTotalRows(L.total),f=Math.max(0,Math.min(b,D-1)),P=Q.adjustScrollPosition(V2(f,Q.sizeCache,Q.state.viewportState.containerSize,D,w,Q.getCachedCompression()));if(l==="smooth")S(Q.scrollController.getScrollTop(),P,j);else J0(),Q.scrollController.scrollTo(P)}),!Q.methods.has("_getTotal"))Q.methods.set("_getTotal",()=>Q.dataManager.getTotal());Q.methods.set("_layoutToDataIndex",(d)=>d*J.columns),Q.methods.set("_dataToLayoutIndex",(d)=>Math.floor(d/J.columns)),Q.idleHandlers.push(()=>{X?.sortDOM()}),Q.destroyHandlers.push(()=>{J0(),X?.destroy(),X=null,U.root.classList.remove(`${W}--grid`)})},destroy(){X?.destroy(),X=null}}};var x1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),X=J.gap??0,Q=J.containerSize,U=0,Y=[],K=()=>{let H=(q-1)*X;U=Math.max(0,(Q-H)/q),Y=Array(q);let _=U+X;for(let k=0;k<q;k++)Y[k]=k*_};K();let V=[],W=0,Z=[],F=(H,_)=>{if(H<=0)return W=0,V=[],[];let k=Array(q).fill(0),v=Array(q);for(let p=0;p<q;p++)v[p]=[];let C=Array(H);for(let p=0;p<H;p++){let x=0,z=k[0];for(let u=1;u<q;u++){let m=k[u];if(m<z)z=m,x=u}let O=_(p),A=k[x];C[p]={index:p,x:Y[x],y:A,lane:x,size:O,crossSize:U},v[x].push(p),k[x]=A+O+X}V=v;let g=0;for(let p=0;p<q;p++){let x=k[p],z=x>0?x-X:0;if(z>g)g=z}return W=g,C},G=(H)=>{if(H.length===0)return W;if(W)return W;let _=Array(q).fill(0);for(let v of H){let C=v.y+v.size,g=_[v.lane];if(C>g)_[v.lane]=C}let k=0;for(let v=0;v<q;v++)if(_[v]>k)k=_[v];return k},y=(H,_,k)=>{if(H.length===0||k<=_)return Z.length=0,Z;if(V.length===0||V.length!==q)return T(H,_,k);Z.length=0;for(let v=0;v<q;v++){let C=V[v],g=C.length;if(!g)continue;let p=0,x=g;while(p<x){let z=p+x>>>1,O=H[C[z]];if(O.y+O.size<=_)p=z+1;else x=z}for(let z=p;z<g;z++){let O=H[C[z]];if(O.y>=k)break;Z.push(O)}}return Z},T=(H,_,k)=>{Z.length=0;for(let v of H)if(v.y+v.size>_&&v.y<k)Z.push(v);return Z};return{get columns(){return q},get gap(){return X},get containerSize(){return Q},update:(H)=>{let _=!1;if(H.columns!==void 0){let k=Math.max(1,Math.floor(H.columns));if(k!==q)q=k,_=!0}if(H.gap!==void 0&&H.gap!==X)X=H.gap,_=!0;if(H.containerSize!==void 0&&H.containerSize!==Q)Q=H.containerSize,_=!0;if(_)K()},calculateLayout:F,getTotalSize:G,getVisibleItems:y}};var yJ=(J=200)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let K=document.createElement("div");return K.setAttribute("role","option"),K},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}}},wJ=1,d1=(J,q,X,Q=!1,U,Y,K,V)=>{let W=yJ(),Z=new Map,F=new Set,G=0,y="",T=-1,$={selected:!1,focused:!1},H=(e,n)=>{return $.selected=e,$.focused=n,$},_=`${X}-item ${X}-masonry-item`,k=`${X}-group-header`,v=`${X}-item--selected`,C=`${X}-item--focused`,g=(e,n)=>{if(typeof n==="string")e.innerHTML=n;else e.replaceChildren(n)},p=(e,n,c)=>{e.classList.toggle(v,n),e.classList.toggle(C,c)},x=(e,n)=>{if(Q)e.style.transform=`translate(${Math.round(n.y)}px, ${Math.round(n.x)}px)`;else e.style.transform=`translate(${Math.round(n.x)}px, ${Math.round(n.y)}px)`},z=(e,n)=>{if(Q)e.style.width=`${n.size}px`,e.style.height=`${n.crossSize}px`;else e.style.width=`${n.crossSize}px`,e.style.height=`${n.size}px`},O=(e,n,c,B,M)=>{let N=W.acquire(),E=n.__groupHeader,S=H(B,M);if(N.className=E?k:_,N.dataset.index=String(e),N.dataset.id=String(n.id),N.dataset.lane=String(c.lane),E)N.setAttribute("role","presentation"),N.removeAttribute("aria-selected"),N.removeAttribute("aria-setsize"),N.removeAttribute("aria-posinset"),N.removeAttribute("id");else if(V!==!1){if(N.setAttribute("role","option"),N.ariaSelected=String(B),Y)N.id=`${Y}-item-${e}`;if(U){let d=U();if(d!==T)T=d,y=String(d);N.setAttribute("aria-setsize",y);let Q0=K?K(e):e+1;N.setAttribute("aria-posinset",String(Q0))}}else if(N.setAttribute("role","listitem"),N.removeAttribute("aria-selected"),U){let d=U();if(d!==T)T=d,y=String(d);N.setAttribute("aria-setsize",y);let Q0=K?K(e):e+1;N.setAttribute("aria-posinset",String(Q0))}z(N,c);let J0=q(n,e,S);return g(N,J0),p(N,B,M),x(N,c),{element:N,lastItemId:n.id,lastSelected:B,lastFocused:M,lastY:c.y,lastX:c.x,lastSize:c.size,lastCrossSize:c.crossSize,lastSeenFrame:G}},A=(e,n,c,B)=>{G++,F.clear();for(let N=0;N<n.length;N++)F.add(n[N].index);for(let[N,E]of Z)if(F.has(N))E.lastSeenFrame=G;else if(G-E.lastSeenFrame>wJ)W.release(E.element),Z.delete(N);let M=null;for(let N=0;N<n.length;N++){let E=n[N],S=E.index,J0=e(S);if(!J0)continue;let d=c.has(J0.id),Q0=S===B,b=Z.get(S);if(b){let w=b.lastItemId!==J0.id,l=b.lastSelected!==d,j=b.lastFocused!==Q0,L=b.lastY!==E.y||b.lastX!==E.x,D=b.lastSize!==E.size||b.lastCrossSize!==E.crossSize;if(w){let f=H(d,Q0),P=q(J0,S,f);if(g(b.element,P),b.element.dataset.id=String(J0.id),b.lastItemId=J0.id,!J0.__groupHeader){let r=K?K(S):S+1;b.element.setAttribute("aria-posinset",String(r))}}if(w||l||j)p(b.element,d,Q0),b.element.ariaSelected=String(d),b.lastSelected=d,b.lastFocused=Q0;if(D)z(b.element,E),b.lastSize=E.size,b.lastCrossSize=E.crossSize;if(L)x(b.element,E),b.lastY=E.y,b.lastX=E.x}else{let w=O(S,J0,E,d,Q0);if(!M)M=document.createDocumentFragment();M.appendChild(w.element),Z.set(S,w)}}if(M)J.appendChild(M)},u=()=>{for(let e of Z.values())W.release(e.element);Z.clear(),J.innerHTML=""};return{render:A,getElement:(e)=>Z.get(e)?.element,updateItemClasses:(e,n,c)=>{let B=Z.get(e);if(!B)return;let M=B.lastSelected!==n,N=B.lastFocused!==c;if(M||N)p(B.element,n,c),B.lastSelected=n,B.lastFocused=c},sortDOM:()=>{J2(J,Z.keys(),(e)=>Z.get(e)?.element)},clear:u,destroy:()=>{u(),W.clear()}}};var zJ=new Set,CJ=100,l2=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let q=null,X=null,Q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(U){let{dom:Y,emitter:K,config:V,rawConfig:W}=U,Z=V.classPrefix,F=V.horizontal;if(V.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");Y.root.classList.add(`${Z}--masonry`);let G=g0(W.padding),y=F2(G,F),T=e0(G,F),$=()=>(F?Y.viewport.clientHeight:Y.viewport.clientWidth)-y;q=x1({columns:J.columns,gap:J.gap??0,containerSize:$()});let H=W.item,_=F&&H.width?H.width:H.height,k={containerWidth:0,columns:0,gap:0,columnWidth:0},v=typeof _==="function"?(j)=>_(j,k):()=>_,C=()=>{let j=U.dataManager.getTotal(),L=q,D=L.columns,f=L.gap;k.containerWidth=L.containerSize,k.columns=D,k.gap=f;let P=(D-1)*f;k.columnWidth=Math.max(0,(k.containerWidth-P)/D),Q=L.calculateLayout(j,v),A();let s=L.getTotalSize(Q);U.sizeCache.getTotalSize=()=>s,U.updateContentSize(s)},g=W.item.template,p=Q2(U.methods,()=>U.dataManager.getTotal());X=d1(Y.items,g,Z,F,p.getSetSize,V.ariaIdPrefix,p.getPosInSet,V.interactive),U.setUpdateItemClassesFn((j,L,D)=>{X?.updateItemClasses(j,L,D)});let x=[],z=new Int32Array(0),O=[],A=()=>{let j=q.columns,L=Q.length;x=Array(j);for(let D=0;D<j;D++)x[D]=[];if(z.length<L)z=new Int32Array(L);for(let D=0;D<L;D++){let f=Q[D],P=x[f.lane].length;x[f.lane].push(D),z[D]=P}O=Array(j);for(let D=0;D<j;D++){let f=x[D],P=new Float64Array(f.length);for(let s=0;s<f.length;s++){let r=Q[f[s]];P[s]=r.y+r.size*0.5}O[D]=P}};U.methods.set("_getNavTotal",()=>U.dataManager.getTotal());let u=(j,L)=>{let D=j.length;if(!D)return-1;let f=0,P=D-1;while(f<P){let s=f+P>>1;if(j[s]<L)f=s+1;else P=s}if(f>0&&Math.abs(j[f-1]-L)<=Math.abs(j[f]-L))return f-1;return f};U.methods.set("_navigate",(j,L,D)=>{let f=Q[j];if(!f)return j;let P=f.lane,s=q.columns,r=z[j],h=x[P];switch(F?L==="ArrowDown"?"ArrowRight":L==="ArrowUp"?"ArrowLeft":L==="ArrowRight"?"ArrowDown":L==="ArrowLeft"?"ArrowUp":L:L){case"ArrowDown":{if(r+1<h.length)return h[r+1];return j}case"ArrowUp":{if(r>0)return h[r-1];return j}case"ArrowRight":{if(P>=s-1)return j;let t=P+1,R=f.y+f.size*0.5,I=x[t];if(!I.length)return j;let X0=u(O[t],R);return X0>=0?I[X0]:j}case"ArrowLeft":{if(P<=0)return j;let t=P-1,R=f.y+f.size*0.5,I=x[t];if(!I.length)return j;let X0=u(O[t],R);return X0>=0?I[X0]:j}case"Home":return 0;case"End":return D-1;case"PageDown":{let t=U.state.viewportState.containerSize,R=f.size>0?f.size:150,I=Math.max(1,Math.floor(t/R)),X0=Math.min(r+I,h.length-1);return h[X0]}case"PageUp":{let t=U.state.viewportState.containerSize,R=f.size>0?f.size:150,I=Math.max(1,Math.floor(t/R)),X0=Math.max(0,r-I);return h[X0]}}return j}),U.methods.set("_scrollItemIntoView",(j)=>{let L=Q[j];if(!L)return;let D=U.scrollController.getScrollTop(),f=U.state.viewportState.containerSize,P=L.y,s=P+L.size;if(P<D)U.scrollController.scrollTo(U.adjustScrollPosition(Math.max(0,P)));else if(s>D+f)U.scrollController.scrollTo(U.adjustScrollPosition(s-f))});let m=null,o=null,j0=!1,e=()=>{if(j0)return;j0=!0,m=U.methods.get("_getSelectedIds")??null,o=U.methods.get("_getFocusedIndex")??null},n=(j)=>U.dataManager.getItem(j),c=-1,B=-1,M=!0,N=V.overscan*CJ,E=()=>{if(U.state.isDestroyed)return;e();let j=U.scrollController.getScrollTop(),L=U.state.viewportState.containerSize;if(!M&&j===c&&L===B)return;c=j,B=L,M=!1;let D=Math.max(0,j-N),f=j+L+N,P=q.getVisibleItems(Q,D,f),s=m?.()??zJ,r=o?.()??-1;if(X&&P.length)X.render(n,P,s,r);let h=U.state.viewportState;h.scrollPosition=j;let a=P.length,t=a?P[0].index:0,R=a?P[a-1].index:0;h.visibleRange.start=t,h.visibleRange.end=R,h.renderRange.start=t,h.renderRange.end=R;let I=U.state.lastRenderRange;if(I.start!==t||I.end!==R)I.start=t,I.end=R,K.emit("range:change",{range:{start:t,end:R}})},S=()=>{U.state.lastRenderRange.start=-1,U.state.lastRenderRange.end=-1,M=!0,E()};U.setRenderFns(E,S);let J0=(j,L)=>{let D=(F?L:j)-y;if(q&&q.containerSize!==D)q.update({containerSize:D}),C(),X?.clear(),S()};U.resizeHandlers.push(J0);let d=()=>{C(),S()},Q0=U.dataManager,b=(j)=>{if(typeof Q0[j]!=="function")return;let L=Q0[j].bind(Q0);Q0[j]=(...D)=>{L(...D),d()}};b("setItems"),b("appendItems"),b("prependItems"),b("updateItem"),b("removeItem");let{animateScroll:w,cancelScroll:l}=q2(U.scrollController,U.renderIfNeeded);U.methods.set("cancelScroll",l),U.methods.set("scrollToIndex",(j,L)=>{let D=Q[j];if(!D)return;let{align:f,behavior:P,duration:s}=r0(L),r=D.y,h=U.state.viewportState.containerSize,a=r;if(f==="center")a=r-h/2+D.size/2;else if(f==="end"){a=r-h+D.size;let t=q.getTotalSize(Q);if(j===Q.length-1)a=Math.max(0,t+T-h)}if(a=U.adjustScrollPosition(Math.max(0,a)),P==="smooth")w(U.scrollController.getScrollTop(),a,s);else l(),U.scrollController.scrollTo(a)}),C(),U.idleHandlers.push(()=>{X?.sortDOM()}),U.destroyHandlers.push(()=>{l(),X?.destroy(),Y.root.classList.remove(`${Z}--masonry`)})}}};var r2=(J)=>{let q=J?.mode??"single",X=J?.followFocus??!1,Q=J?.initial,U=J?.shiftArrowToggle??"origin",Y=J?.focusOnClick??!1,K=J?.contextMenu??"select",V=m1(Q),W=V.selected,Z=null,F=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(G){let{dom:y,emitter:T,config:$}=G,{classPrefix:H,ariaIdPrefix:_}=$,k=()=>y.root.getAttribute("role")==="grid"?y.root:y.items;if(q==="none"){G.methods.set("select",()=>{}),G.methods.set("deselect",()=>{}),G.methods.set("toggleSelect",()=>{}),G.methods.set("selectAll",()=>{}),G.methods.set("clearSelection",()=>{}),G.methods.set("getSelected",()=>[]),G.methods.set("getSelectedItems",()=>[]),G.methods.set("setSelectionMode",()=>{}),G.methods.set("selectNext",()=>{}),G.methods.set("selectPrevious",()=>{}),G.methods.set("_focusById",()=>{}),G.methods.set("_getFocusedId",()=>{return});return}y.root.classList.add(`${H}--selectable`);let v=()=>G.methods.get("_isGroupHeader"),C=()=>G.methods.get("_layoutToDataIndex"),g=()=>G.methods.get("_dataToLayoutIndex"),p=(R)=>{let I=v();return I?I(R):!1},x=(R,I,X0)=>{if(!v())return R;let q0=R;while(q0>=0&&q0<X0){if(!p(q0))return q0;q0+=I}q0=R-I;while(q0>=0&&q0<X0){if(!p(q0))return q0;q0-=I}return R},z=(R)=>{V.focusedIndex=R},O=(R,I,X0=!1)=>{if(I===0)return;let q0=V.focusedIndex+R;if(q0<0)q0=X0?I-1:0;else if(q0>=I)q0=X0?0:I-1;z(q0)},A=(R)=>{if(q==="single"){if(W.clear(),R.length>0)W.add(R[0])}else for(let I of R)W.add(I)},u=(R)=>{if(q==="single")W.clear();W.add(R)},m=(R)=>{if(W.has(R))W.delete(R);else u(R)},o=(R,I)=>{if(q!=="multiple")return;let X0=Math.min(R,I),q0=Math.max(R,I);for(let B0=X0;B0<=q0;B0++){if(p(B0))continue;let N0=G.dataManager.getItem(B0);if(N0)W.add(N0.id)}},j0=()=>Array.from(W),e=(R)=>{let I=[];for(let X0 of W){let q0=R(X0);if(q0)I.push(q0)}return I};T.on("data:change",({type:R,id:I})=>{if(R==="remove"){W.delete(I);let X0=G.dataManager.getTotal();if(X0>0&&V.focusedIndex>=0){let q0=Math.min(V.focusedIndex,X0-1);V.focusedIndex=x(q0,1,X0)}}}),G.methods.set("_getSelectedIds",()=>{return W}),G.methods.set("_getFocusedIndex",()=>{return V.focusVisible?V.focusedIndex:-1}),G.methods.set("_seedSelection",(R)=>{for(let I of R)W.add(I)});let{forceRender:n}=G.getRenderFns(),c=(R)=>{return G.dataManager.getIndexById(R)},B=(R)=>{let I=c(R);if(I<0)return;return G.dataManager.getItem(I)},M=()=>{n(),T.emit("selection:change",{selected:j0(),items:e(B)})},N=g0(G.rawConfig.padding),E=$.horizontal?N.left:N.top,S=$.horizontal?N.right:N.bottom,J0=G.getItemToScrollIndexFn(),d=null,Q0=null,b=null,w=!1,l=()=>{if(w)return;w=!0,d=G.methods.get("_getNavDelta")??null,Q0=G.methods.get("_navigate")??null,b=G.methods.get("_scrollItemIntoView")??null},j=()=>{return l(),d?d():{ud:1,lr:0,cols:0}},L=(R)=>{if(R<0)return;if(l(),b)b(R);else{let I=G.state.viewportState.containerSize,X0=G.state.viewportState.scrollPosition,q0=G.dataManager.getTotal(),B0=G.getCachedCompression(),{visibleRange:N0}=G.state.viewportState,W0=J0(R),Z0=L2(W0,G.sizeCache,X0,I,E,S,B0,q0,N0);if(Z0!==X0)G.scrollController.scrollTo(G.adjustScrollPosition(Z0))}},D=()=>{let R=J0(Math.max(0,V.focusedIndex)),I=G.sizeCache.getSize(R),{ud:X0}=j();return Math.max(X0,Math.floor(G.state.viewportState.containerSize/I)*X0)};Z=document.createElement("div"),Z.setAttribute("aria-live","polite"),Z.setAttribute("aria-atomic","true"),Z.className=`${H}-live-region`,Z.style.cssText="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0",(y.root.getAttribute("role")==="grid"?y.root.parentElement??y.root:y.root).appendChild(Z);let P=Z;T.on("selection:change",({selected:R})=>{let I=R.length;if(I===0)P.textContent="";else if(I===1)P.textContent="1 item selected";else P.textContent=`${I} items selected`});let s=()=>{if(G.state.isDestroyed)return;let R=k();if(!R.matches(":focus-visible")&&!y.root.matches(":focus-visible"))return;let I=G.dataManager.getTotal();if(I===0)return;let X0=V.focusedIndex>=0?Math.min(V.focusedIndex,I-1):0;X0=x(X0,1,I),z(X0),V.focusVisible=!0,R.setAttribute("aria-activedescendant",`${_}-item-${X0}`),L(X0);let q0=G.dataManager.getItem(X0);if(q0)G.renderer.updateItemClasses(X0,W.has(q0.id),!0)};if($.interactive)y.root.addEventListener("focusin",s);let r=(R)=>{if(G.state.isDestroyed)return;let I=R.relatedTarget;if(I&&y.root.contains(I))return;let X0=V.focusedIndex;if(V.focusVisible=!1,k().removeAttribute("aria-activedescendant"),X0>=0){let q0=G.dataManager.getItem(X0);if(q0)G.renderer.updateItemClasses(X0,W.has(q0.id),!1)}};if($.interactive)y.root.addEventListener("focusout",r);let h=(R)=>{let I=R.target.closest("[data-index]");if(!I)return null;let X0=parseInt(I.dataset.index??"-1",10);if(X0<0)return null;let q0=G.dataManager.getItem(X0);if(!q0||p(X0))return null;return{item:q0,index:X0}},a=(R)=>{z(R),V.focusVisible=Y,F=R,k().setAttribute("aria-activedescendant",`${_}-item-${R}`)};if(G.clickHandlers.push((R)=>{if(G.state.isDestroyed)return;let I=h(R);if(!I)return;let{item:X0,index:q0}=I;if(T.emit("item:click",{item:X0,index:q0,event:R}),q==="multiple"&&R.shiftKey&&V.focusedIndex>=0){let B0=F>=0?F:V.focusedIndex;o(B0,q0),a(q0),M();return}a(q0),m(X0.id),M()}),K==="select")G.contextMenuHandlers.push((R)=>{if(G.state.isDestroyed)return;let I=h(R);if(!I)return;if(!W.has(I.item.id))W.clear(),W.add(I.item.id),a(I.index),M()});if($.interactive)G.keydownHandlers.push((R)=>{if(G.state.isDestroyed)return;let I=G.dataManager.getTotal(),X0=V.focusedIndex,q0=!1,B0=!1,N0=V;if(l(),Q0)switch(R.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let W0=Q0(V.focusedIndex,R.key,I);if(W0!==V.focusedIndex)z(W0),N0=V,N0.focusVisible=!0,q0=!0,B0=!0;else{R.preventDefault();return}break}}if(!q0)switch(R.key){case"ArrowUp":O(-j().ud,I,$.wrap),N0=V,N0.focusVisible=!0,q0=!0,B0=!0;break;case"ArrowDown":O(j().ud,I,$.wrap),N0=V,N0.focusVisible=!0,q0=!0,B0=!0;break;case"ArrowLeft":{let{lr:W0}=j();if(W0)O(-W0,I,$.wrap),N0=V,N0.focusVisible=!0,q0=!0,B0=!0;break}case"ArrowRight":{let{lr:W0}=j();if(W0)O(W0,I,$.wrap),N0=V,N0.focusVisible=!0,q0=!0,B0=!0;break}case"PageUp":case"PageDown":{let W0=D(),Z0=C(),D0=g();if(Z0&&D0){let T0=Z0(V.focusedIndex),w0=R.key==="PageUp"?-W0:W0,E0=Z0(I-1),b0=Math.max(0,Math.min(E0,T0+w0));z(D0(b0))}else O(R.key==="PageUp"?-W0:W0,I);N0=V,N0.focusVisible=!0,q0=!0,B0=!0;break}case"Home":{if(I>0)z(0);N0=V,N0.focusVisible=!0,q0=!0,B0=!0;break}case"End":{if(I>0)z(I-1);N0=V;let W0=G.methods.get("_ensureTailLoaded");if(W0)W0();N0.focusVisible=!0,q0=!0,B0=!0;break}}switch(R.key){case" ":case"Enter":if(R.key===" "&&R.shiftKey&&q==="multiple"&&V.focusedIndex>=0){if(F>=0)o(F,V.focusedIndex),N0=V;N0.focusVisible=!0,q0=!0;break}if(V.focusedIndex>=0&&!p(V.focusedIndex)){let W0=G.dataManager.getItem(V.focusedIndex);if(W0)m(W0.id),N0=V,N0.focusVisible=!0;F=V.focusedIndex,q0=!0}break;case"a":if((R.ctrlKey||R.metaKey)&&q==="multiple"){let W0=G.dataManager.getTotal(),Z0=[];for(let D0=0;D0<W0;D0++){if(p(D0))continue;let T0=G.dataManager.getItem(D0);if(T0)Z0.push(T0.id)}if(W.size===Z0.length)W.clear();else for(let D0 of Z0)W.add(D0);N0=V,N0.focusVisible=!0,q0=!0,B0=!1}break;case"Delete":case"Backspace":if(W.size>0)T.emit("delete",{selected:j0(),items:e(B)}),q0=!0;break}if(B0&&v()){let W0=N0.focusedIndex>X0?1:-1;N0.focusedIndex=x(N0.focusedIndex,W0,I)}if(R.shiftKey&&q==="multiple"&&B0&&N0.focusedIndex>=0){let W0=R.key==="ArrowUp"||R.key==="ArrowDown"||R.key==="ArrowLeft"||R.key==="ArrowRight",Z0=(R.ctrlKey||R.metaKey)&&(R.key==="Home"||R.key==="End");if(W0){if(U==="origin"){if(X0>=0){let D0=G.dataManager.getItem(X0);if(D0)m(D0.id),N0=V}}else{let D0=G.dataManager.getItem(N0.focusedIndex);if(D0)m(D0.id),N0=V}F=N0.focusedIndex,B0=!1}else if(Z0){let D0=X0>=0?X0:N0.focusedIndex;o(D0,N0.focusedIndex),N0=V,F=N0.focusedIndex,B0=!1}}if(X&&q==="single"&&B0&&N0.focusedIndex>=0){let W0=G.dataManager.getItem(N0.focusedIndex);if(W0)u(W0.id),N0=V;B0=!1}if(q0){R.preventDefault(),V=N0;let W0=V.focusedIndex;if(W0>=0)L(W0),k().setAttribute("aria-activedescendant",`${_}-item-${W0}`);else k().removeAttribute("aria-activedescendant");if(B0){let{selected:Z0}=V;if(X0>=0&&X0!==W0){let D0=G.dataManager.getItem(X0);if(D0)G.renderer.updateItemClasses(X0,Z0.has(D0.id),!1)}if(W0>=0){let D0=G.dataManager.getItem(W0);if(D0)G.renderer.updateItemClasses(W0,Z0.has(D0.id),!0)}}else M();if(W0>=0&&W0!==X0){let Z0=G.dataManager.getItem(W0);if(Z0)T.emit("focus:change",{id:Z0.id,index:W0})}}});G.methods.set("select",(...R)=>{if(A(R),R.length>0){let I=c(R[0]);if(I>=0)z(I)}M()}),G.methods.set("deselect",(...R)=>{for(let I of R)W.delete(I);M()}),G.methods.set("toggleSelect",(R)=>{m(R),M()}),G.methods.set("selectAll",()=>{if(q!=="multiple")return;W.clear();let R=G.dataManager.getTotal();for(let I=0;I<R;I++){if(p(I))continue;let X0=G.dataManager.getItem(I);if(X0)W.add(X0.id)}M()}),G.methods.set("clearSelection",()=>{W.clear(),M()}),G.methods.set("getSelected",()=>{return j0()}),G.methods.set("getSelectedItems",()=>{return e(B)});let t=(R)=>{let I=G.dataManager.getTotal();if(I===0)return;if(l(),Q0){let N0=R==="next"?"ArrowDown":"ArrowUp",W0=Q0(V.focusedIndex,N0,I);z(W0)}else{let{ud:N0}=j();O(R==="next"?N0:-N0,I,$.wrap)}let X0=R==="next"?1:-1;V.focusedIndex=x(V.focusedIndex,X0,I);let q0=V.focusedIndex,B0=G.dataManager.getItem(q0);if(!B0)return;u(B0.id),L(q0),M()};G.methods.set("selectNext",()=>{t("next")}),G.methods.set("selectPrevious",()=>{t("previous")}),G.methods.set("_focusById",(R)=>{let I=c(R);if(I<0)return;z(I);let X0=G.dataManager.getItem(I);if(X0)T.emit("focus:change",{id:X0.id,index:I})}),G.methods.set("_getFocusedId",()=>{let R=V.focusedIndex;if(R<0)return;return G.dataManager.getItem(R)?.id}),G.methods.set("_setFocusedIndex",(R)=>{z(R),V.focusVisible=!0,L(R),k().setAttribute("aria-activedescendant",`${_}-item-${R}`),G.renderIfNeeded()}),G.destroyHandlers.push(()=>{if(P&&P.parentNode)P.remove();y.root.removeEventListener("focusin",s),y.root.removeEventListener("focusout",r)})},destroy(){if(Z&&Z.parentNode)Z.remove();Z=null}}};var vJ=(J)=>{try{let q=sessionStorage.getItem(J);if(!q)return;return JSON.parse(q)}catch{return}},s2=(J)=>{let q=J?.autoSave,X=q?vJ(q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){let U=()=>{let Z=Q.scrollController.getScrollTop(),F=Q.getCachedCompression(),G=Q.getVirtualTotal(),T=Q.methods.get("getSelected")?.();if(G===0){let p={index:0,offsetInItem:0,total:0};if(T?.length)p.selectedIds=T;return p}let $,H;if(F.isCompressed&&F.ratio!==1){let x=Z/F.virtualSize*G;$=Math.max(0,Math.min(Math.floor(x),G-1)),H=(x-$)*Q.sizeCache.getSize($)}else $=Q.sizeCache.indexAtOffset(Z),H=Z-Q.sizeCache.getOffset($);H=Math.max(0,H);let _={index:$,offsetInItem:H,total:G,scrollTop:Z},k=Q.sizeCache.getSize($);if(k)_.offsetRatio=H/k;let v=Q.methods.get("_layoutToDataIndex");if(v){let p=v($);if(p<0){for(let x=$+1;x<G;x++)if(p=v(x),p>=0)break}if(p>=0)_.dataIndex=p}let C=Q.methods.get("_getTotal");if(C)_.dataTotal=C();if(T?.length)_.selectedIds=T;let g=Q.methods.get("_getFocusedId");if(g){let p=g();if(p!==void 0)_.focusedId=p}return _};Q.methods.set("getScrollSnapshot",U);let Y=(Z,F=!0)=>{let{index:G,offsetInItem:y,selectedIds:T,focusedId:$}=Z,H=Q.getVirtualTotal(),_=Z.dataTotal??Z.total;if(H===0&&_&&_>0){Q.dataManager.setTotal(_);let c=Q.getVirtualTotal();Q.sizeCache.rebuild(c),Q.updateCompressionMode();let B=Q.getCachedCompression();if(!B.isCompressed)Q.updateContentSize(B.virtualSize)}else if(H===0)return;if(!Number.isFinite(G)||!Number.isFinite(y))return;let k=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==k){Q.sizeCache.rebuild(k),Q.updateCompressionMode();let c=Q.getCachedCompression();if(!c.isCompressed)Q.updateContentSize(c.virtualSize)}let C=Q.getCachedCompression(),g=Q.methods.get("_dataToLayoutIndex"),p=G;if(Z.dataIndex!==void 0&&Z.dataIndex>=0)p=g?g(Z.dataIndex):Z.dataIndex;else if(g)p=g(G);let x=Math.max(0,Math.min(p,k-1)),z=Q.sizeCache.getSize(x),O=Z.offsetRatio!==void 0?Z.offsetRatio*z:Math.min(y,z),A;if(C.isCompressed&&C.ratio!==1){let c=Q.methods.get("_getTotal")?.(),B=c!==void 0&&Z.dataTotal===c;if(Z.scrollTop!==void 0&&(Z.total===k||B))A=Z.scrollTop;else{let M=z?O/z:0;A=(x+M)/k*C.virtualSize}}else A=Q.sizeCache.getOffset(x)+O;let u=Q.state.viewportState.containerSize,m=C.isCompressed?Q.state.viewportState.totalSize:C.virtualSize,o=Math.max(0,m-u);A=Math.max(0,Math.min(A,o));let j0=A===Z.scrollTop;if(Z.dataIndex!==void 0&&Z.dataIndex>=0){let c=z?O/z:0;Q.methods.set("_restoreAnchor",{dataIndex:Z.dataIndex,fraction:c,skipAdjust:j0}),Q.methods.set("_suppressSave",1)}if(Q.scrollController.scrollTo(A),F&&T?.length){let c=Q.methods.get("select");if(c)c(...T)}let e=Q.methods.get("loadVisibleRange"),n=()=>{if($===void 0)return;let c=Q.methods.get("_focusById");if(c)c($)};if(e){let c=0,B=()=>{if(Q.state.viewportState.containerSize){if(Math.abs(Q.scrollController.getScrollTop()-A)>1)Q.scrollController.scrollTo(A);e().then(n)}else if(++c<10)requestAnimationFrame(B)};requestAnimationFrame(B)}else{let c=Q.methods.get("reload");if(c)requestAnimationFrame(()=>{c().then(n)});else requestAnimationFrame(n)}};Q.methods.set("restoreScroll",Y);let K=!!(X&&q),V=null,W=!1;if(Q.destroyHandlers.push(()=>{W=!0}),q){V=()=>{if(W||K||Q.methods.has("_suppressSave"))return;let G=Q.methods.get("getScrollSnapshot");if(!G)return;let y=G();try{sessionStorage.setItem(q,JSON.stringify(y))}catch{}},Q.methods.set("_saveSnapshot",V);let Z=0,F=()=>{if(Z)return;Z=requestAnimationFrame(()=>{Z=0,V()})};if(Q.idleHandlers.push(F),Q.emitter.on("selection:change",F),Q.emitter.on("focus:change",F),X&&X.total&&X.total>0){let G=Q.methods.get("_cancelAutoLoad");if(G)G();Q.dataManager.setTotal(X.total)}}if(X){let Z=!0;if(X.selectedIds?.length){let F=Q.methods.get("_seedSelection");if(F)F(X.selectedIds),Z=!1}queueMicrotask(()=>{if(Y(X,Z),K=!1,V)V()})}}}};var c1=(J,q=50,X=1/0,Q=!0)=>{let U=J,Y=[],K=0,V=()=>{Y=U.map((_,k)=>({def:_,index:k,width:0,minWidth:SJ(_.minWidth??q,1),maxWidth:_.maxWidth??X,resizable:_.resizable??Q,offset:0}))},W=(_)=>{if(Y.length===0){K=0;return}let k=0,v=0;for(let C=0;C<Y.length;C++){let g=Y[C],p=g.def;if(p.width!==void 0)g.width=a2(p.width,g.minWidth,g.maxWidth),k+=g.width;else v++}if(v){let g=Math.max(0,_-k)/v;for(let p=0;p<Y.length;p++){let x=Y[p];if(x.def.width===void 0)x.width=a2(g,x.minWidth,x.maxWidth)}}Z()},Z=()=>{let _=0;for(let k=0;k<Y.length;k++){let v=Y[k];v.offset=_,_+=v.width}K=_},F=(_,k)=>{if(_<0||_>=Y.length)return 0;let v=Y[_];if(!v.resizable)return v.width;let C=a2(k,v.minWidth,v.maxWidth);return v.width=C,Z(),C},G=(_)=>{return Y[_]},y=(_)=>{if(Y.length===0)return;if(_<0)return Y[0];if(_>=K)return Y[Y.length-1];let k=0,v=Y.length-1;while(k<v){let C=k+v>>>1,g=Y[C];if(_<g.offset)v=C-1;else if(_>=g.offset+g.width)k=C+1;else return g}return Y[k]},T=(_)=>{if(_<0||_>=Y.length)return 0;return Y[_].offset},$=(_)=>{if(_<0||_>=Y.length)return 0;return Y[_].width},H=(_)=>{U=_,V()};return V(),{get columns(){return Y},get totalWidth(){return K},resolve:W,updateColumns:H,resizeColumn:F,getColumn:G,getColumnAtX:y,getColumnOffset:T,getColumnWidth:$}},a2=(J,q,X)=>Math.min(X,Math.max(q,J)),SJ=(J,q)=>Math.max(q,J);var l1=(J,q,X,Q,U,Y)=>{let K=document.createElement("div");K.setAttribute("role","rowgroup");let V=document.createElement("div");V.className=`${X}-table-header`,V.setAttribute("role","row"),V.setAttribute("aria-rowindex","1"),V.style.height=`${q}px`;let W=document.createElement("div");W.className=`${X}-table-header-scroll`,W.setAttribute("role","presentation"),V.appendChild(W),K.appendChild(V),J.insertBefore(K,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${q}px`);let Z=[],F=[],G=!0,y=null,T="asc",$=null,H=!1,_=-1,k=0,v=0,C=0,g=(M,N)=>{let E=document.createElement("div");E.className=`${X}-table-header-cell`,E.setAttribute("role","columnheader"),E.setAttribute("aria-colindex",String(N+1)),E.setAttribute("tabindex",N===0?"0":"-1"),E.dataset.columnKey=M.def.key;let S=M.def.align;if(S==="center")E.classList.add(`${X}-table-header-cell--center`);else if(S==="right")E.classList.add(`${X}-table-header-cell--right`);let J0=document.createElement("div");J0.className=`${X}-table-header-content`;let d=M.def.header?M.def.header(M.def):M.def.label;if(typeof d==="string")J0.textContent=d;else J0.appendChild(d);if(E.appendChild(J0),M.def.sortable){let Q0=document.createElement("span");Q0.className=`${X}-table-header-sort`,Q0.setAttribute("aria-hidden","true"),E.appendChild(Q0),F.push(Q0),E.classList.add(`${X}-table-header-cell--sortable`)}else F.push(null);if(M.resizable){let Q0=document.createElement("div");Q0.className=`${X}-table-header-resize`,Q0.dataset.resizeIndex=String(N),E.appendChild(Q0)}return E},p=(M)=>{$=M,W.textContent="",Z=[],F=[];let N=M.columns;for(let E=0;E<N.length;E++){let S=N[E],J0=g(S,E);Z.push(J0),W.appendChild(J0)}if(x(M),y)z(y,T)},x=(M)=>{$=M;let N=M.columns;W.style.width=`${M.totalWidth}px`;for(let E=0;E<Z.length&&E<N.length;E++){let S=Z[E],J0=N[E];S.style.width=`${J0.width}px`}},z=(M,N)=>{if(y=M,T=N,!$)return;let E=$.columns;for(let S=0;S<F.length&&S<E.length;S++){let J0=F[S];if(!J0)continue;if(E[S].def.key===M)J0.textContent=N==="asc"?"▲":"▼",J0.style.opacity="0.7",Z[S].setAttribute("aria-sort",N==="asc"?"ascending":"descending");else J0.textContent="",J0.style.opacity="0",Z[S].removeAttribute("aria-sort")}},O=(M)=>{W.style.transform=`translateX(${-M}px)`},A=(M)=>{let N=M.target;if(!N.dataset.resizeIndex)return;if(M.preventDefault(),M.stopPropagation(),_=+N.dataset.resizeIndex,!$)return;let E=$.getColumn(_);if(!E?.resizable)return;H=!0,k=M.clientX,v=E.width,J.classList.add(`${X}--col-resizing`),J.style.cursor="col-resize",N.classList.add(`${X}-table-header-resize--active`),N.setPointerCapture(M.pointerId),N.addEventListener("pointermove",u),N.addEventListener("pointerup",m),N.addEventListener("pointercancel",m)},u=(M)=>{if(!H||!$)return;let N=M.clientX-k;if(Math.abs(N)<1)return;let E=Math.max(0,v+N);Q(_,E)},m=(M)=>{if(!H)return;let N=M.target;N.removeEventListener("pointermove",u),N.removeEventListener("pointerup",m),N.removeEventListener("pointercancel",m);try{N.releasePointerCapture(M.pointerId)}catch{}N.classList.remove(`${X}-table-header-resize--active`),J.classList.remove(`${X}--col-resizing`),J.style.cursor="",H=!1,_=-1},o=(M)=>{let N=M.target;if(N.dataset.resizeIndex)return;if(H)return;let E=N;while(E&&!E.dataset.columnKey)if(E=E.parentElement,E===V||E===null)return;let S=E.dataset.columnKey;if(!$)return;let J0=$.columns,d=-1;for(let b=0;b<J0.length;b++)if(J0[b].def.key===S){d=b;break}if(d===-1)return;let Q0=J0[d];if(Y)Y({key:S,index:d,event:M});if(Q0.def.sortable&&U){let b;if(y===S)b=T==="asc"?"desc":null;else b="asc";U({key:S,index:d,direction:b})}},j0=(M)=>{if(M<0||M>=Z.length)return;Z[C]?.setAttribute("tabindex","-1"),C=M;let N=Z[C];N.setAttribute("tabindex","0"),N.focus()},e=(M)=>{let N=M.key;if(N==="ArrowRight"){if(M.ctrlKey||M.metaKey){if(!$)return;let E=$.getColumn(C);if(E?.resizable)Q(C,E.width+10),M.preventDefault()}else if(C<Z.length-1)j0(C+1),M.preventDefault();M.stopPropagation();return}if(N==="ArrowLeft"){if(M.ctrlKey||M.metaKey){if(!$)return;let E=$.getColumn(C);if(E?.resizable)Q(C,E.width-10),M.preventDefault()}else if(C>0)j0(C-1),M.preventDefault();M.stopPropagation();return}if(N==="Home"){j0(0),M.preventDefault(),M.stopPropagation();return}if(N==="End"){j0(Z.length-1),M.preventDefault(),M.stopPropagation();return}if(N==="Enter"||N===" "){if(!$)return;let E=$.getColumn(C);if(E?.def.sortable&&U){let S;if(y===E.def.key)S=T==="asc"?"desc":null;else S="asc";U({key:E.def.key,index:C,direction:S}),M.preventDefault()}M.stopPropagation();return}if(N==="ArrowDown"){J.focus(),M.preventDefault(),M.stopPropagation();return}};return V.addEventListener("pointerdown",A),V.addEventListener("click",o),V.addEventListener("keydown",e),{element:V,update:x,updateSort:z,rebuild:p,show:()=>{if(G)return;G=!0,V.style.display=""},hide:()=>{if(!G)return;G=!1,V.style.display="none"},destroy:()=>{V.removeEventListener("pointerdown",A),V.removeEventListener("click",o),V.removeEventListener("keydown",e),J.style.removeProperty("--vlist-table-header-height"),K.remove(),Z=[],F=[],$=null,G=!1},syncScroll:O}};var fJ=()=>{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}}},r1=(J,q,X,Q,U,Y,K,V,W)=>{let Z=fJ(),F=new Map,G=-1,y=X,T=null,$=null,H=null,_=(D,f)=>{$=D,H=f},k=(D,f)=>{f?D.setAttribute("aria-selected","true"):D.removeAttribute("aria-selected")},v=(D,f,P,s)=>{D.setAttribute("role",f),D.setAttribute("data-id",String(P)),D.setAttribute("data-index",String(s))},C=(D)=>String(D).startsWith("__placeholder_"),g=`${U}-item ${U}-table-row`,p=`${U}-item--selected`,x=`${U}-item--focused`,z=`${U}-table-cell`,O=`${U}-table-cell--center`,A=`${U}-table-cell--right`,u=`${U}-item--odd`,m=`${U}-item--placeholder`,o=`${U}-item--replaced`,j0=`${U}-item ${U}-table-row ${U}-table-group-header`,e=`${U}-table-group-header-content`,n=(D,f,P,s,r=!1)=>{if(P.def.cell){let h=P.def.cell(f,P.def,s);if(typeof h==="string")D.innerHTML=h;else D.replaceChildren(h)}else{let h=f[P.def.key],a=h!=null?String(h):"";if(r&&a)D.innerHTML=`<span>${a}</span>`;else D.textContent=a}},c=(D,f,P,s,r=!1)=>{let h=g;if(V){if(T){let a=T(f);if(a>=0&&(a&1)===1)h+=` ${u}`}else if((f&1)===1)h+=` ${u}`}if(r)h+=` ${m}`;if(P)h+=` ${p}`;if(s)h+=` ${x}`;D.className=h},B=(D,f,P)=>{if(P?.compression?.isCompressed)return Math.round(T2(D,P.scrollPosition,f,P.totalItems,P.containerSize,P.compression,P.rangeStart));return f.getOffset(D)},M=(D,f)=>{let P=f.def.align;if(P==="center")D.classList.add(O),D.classList.remove(A);else if(P==="right")D.classList.add(A),D.classList.remove(O);else D.classList.remove(O,A)},N=(D,f)=>{let s=y.columns.length;if(f.length===s)return f;let r=[];for(let h=0;h<s;h++){let a;if(h<f.length)a=f[h];else a=document.createElement("div"),a.className=z,D.appendChild(a);r.push(a)}for(let h=s;h<f.length;h++)f[h].remove();return r},E=(D,f,P,s)=>{let r=Z.acquire(),h=D,a=P.getSize(f),t=B(f,P,s);r.style.cssText=`width:${y.totalWidth}px;height:${a}px;transform:translateY(${t}px)`,r.className=j0,v(r,"presentation",D.id,f),r.removeAttribute("aria-selected"),r.removeAttribute("aria-rowindex"),r.replaceChildren();let R=document.createElement("div");if(R.className=e,H){let I=H(h.groupKey,h.groupIndex);if(typeof I==="string")R.innerHTML=I;else R.appendChild(I)}return r.appendChild(R),{element:r,cells:[],index:f,isGroupHeader:!0,lastItemId:D.id,lastSelected:!1,lastFocused:!1,lastOffset:t,lastHeight:a}},S=(D,f,P,s,r,h)=>{let a=Z.acquire(),t=r.getSize(f),R=B(f,r,h),I=C(D.id);a.style.cssText=`width:${y.totalWidth}px;height:${t}px;transform:translateY(${R}px)`,c(a,f,P,s,I),v(a,"row",D.id,f),a.id=`${Y}-item-${f}`,a.setAttribute("aria-rowindex",String(f+2)),k(a,P);let X0=N(a,[]),q0=y.columns;for(let B0=0;B0<X0.length&&B0<q0.length;B0++){let N0=X0[B0],W0=q0[B0];N0.style.cssText=`left:${W0.offset}px;width:${W0.width}px`,N0.setAttribute("role","gridcell"),N0.setAttribute("aria-colindex",String(B0+1)),M(N0,W0),n(N0,D,W0,f,I)}return{element:a,cells:X0,index:f,isGroupHeader:!1,lastItemId:D.id,lastSelected:P,lastFocused:s,lastOffset:R,lastHeight:t}},J0=(D,f,P,s,r)=>{for(let[I,X0]of F)if(I<f.start||I>f.end)Z.release(X0.element),F.delete(I);let h=!1,a=K();if(a!==G)G=a,h=!0;let t=null,R=q();T=typeof V==="string"&&W?W():null;for(let I=f.start;I<=f.end;I++){let X0=I-f.start,q0=D[X0];if(!q0)continue;let B0=P.has(q0.id),N0=I===s,W0=$?$(q0):!1,Z0=F.get(I);if(Z0){if(Z0.isGroupHeader!==W0){Z.release(Z0.element),F.delete(I);let D0=W0?E(q0,I,R,r):S(q0,I,B0,N0,R,r);if(F.set(I,D0),!t)t=document.createDocumentFragment();t.appendChild(D0.element);continue}if(W0){if(Z0.lastItemId!==q0.id){let E0=q0,b0=Z0.element.firstElementChild;if(b0&&H){let P0=H(E0.groupKey,E0.groupIndex);if(typeof P0==="string")b0.innerHTML=P0;else b0.replaceChildren(P0)}Z0.element.setAttribute("data-id",String(q0.id)),Z0.lastItemId=q0.id}let T0=B(I,R,r);if(Z0.lastOffset!==T0)Z0.lastOffset=T0,Z0.element.style.transform=`translateY(${T0}px)`;let w0=R.getSize(I);if(Z0.lastHeight!==w0)Z0.lastHeight=w0,Z0.element.style.height=`${w0}px`}else{let D0=Z0.lastItemId!==q0.id,T0=Z0.lastSelected!==B0,w0=Z0.lastFocused!==N0;if(D0){let P0=Z0.lastItemId!=null&&C(Z0.lastItemId),M0=C(q0.id);if(!M0&&Y2(P,I,q0.id))B0=!0;let $0=y.columns;for(let k0=0;k0<Z0.cells.length&&k0<$0.length;k0++)n(Z0.cells[k0],q0,$0[k0],I,M0);if(c(Z0.element,I,B0,N0,M0),Z0.element.setAttribute("data-id",String(q0.id)),k(Z0.element,B0),P0&&!M0)Z0.element.classList.add(o),setTimeout(()=>{Z0.element.classList.remove(o)},300);Z0.lastItemId=q0.id,Z0.lastSelected=B0,Z0.lastFocused=N0}else if(T0||w0)c(Z0.element,I,B0,N0,C(q0.id)),k(Z0.element,B0),Z0.lastSelected=B0,Z0.lastFocused=N0;let E0=B(I,R,r);if(Z0.lastOffset!==E0)Z0.lastOffset=E0,Z0.element.style.transform=`translateY(${E0}px)`;let b0=R.getSize(I);if(Z0.lastHeight!==b0)Z0.lastHeight=b0,Z0.element.style.height=`${b0}px`;if(h)Z0.element.setAttribute("aria-rowindex",String(I+2))}}else{if(Y2(P,I,q0.id))B0=!0;let D0=W0?E(q0,I,R,r):S(q0,I,B0,N0,R,r);if(F.set(I,D0),!t)t=document.createDocumentFragment();t.appendChild(D0.element)}}if(t)J.appendChild(t)},d=(D)=>{let f=q();for(let[P,s]of F){let r=B(P,f,D);if(s.lastOffset!==r)s.lastOffset=r,s.element.style.transform=`translateY(${r}px)`}},Q0=(D,f,P,s)=>{let r=F.get(D);if(!r)return;if(r.isGroupHeader)return;let h=y.columns;for(let a=0;a<r.cells.length&&a<h.length;a++)n(r.cells[a],f,h[a],D);r.element.setAttribute("data-id",String(f.id)),r.lastItemId=f.id,c(r.element,D,P,s),k(r.element,P),r.lastSelected=P,r.lastFocused=s},b=(D,f,P)=>{let s=F.get(D);if(!s)return;if(s.isGroupHeader)return;let r=s.lastSelected!==f,h=s.lastFocused!==P;if(r||h)c(s.element,D,f,P),k(s.element,f),s.lastSelected=f,s.lastFocused=P},w=(D)=>{y=D;let f=D.columns;for(let[,P]of F)if(P.element.style.width=`${D.totalWidth}px`,P.cells.length>0)for(let s=0;s<P.cells.length&&s<f.length;s++){let r=P.cells[s],h=f[s];r.style.left=`${h.offset}px`,r.style.width=`${h.width}px`}},l=(D)=>{return F.get(D)?.element},j=()=>{for(let[,D]of F)Z.release(D.element);F.clear(),G=-1};return{render:J0,updatePositions:d,updateItem:Q0,updateItemClasses:b,getElement:l,updateColumnLayout:w,setGroupHeaderFn:_,clear:j,destroy:()=>{j(),Z.clear()}}};var hJ=new Set,o2=(J)=>{if(!J.columns?.length)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,X=null,Q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(U){let{dom:Y,emitter:K,config:V}=U,{classPrefix:W}=V;if(V.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(V.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let Z=J.resizable??!0,F=J.minColumnWidth??50,G=J.maxColumnWidth??1/0,y=J.rowBorders??!0,T=J.rowHeight,$=U.rawConfig.padding,H=!$?0:typeof $==="number"?$*2:$.length===2?$[1]*2:$[1]+$[3],_=J.headerHeight??(typeof T==="number"?T:40),k=J.sort?.key??null,v=J.sort?.direction??"asc";if(q=c1(J.columns,F,G,Z),typeof T==="function"||typeof T==="number")U.setSizeConfig(T);if(U.rebuildSizeCache(),Y.root.classList.add(`${W}--table`),y&&Y.root.classList.add(`${W}--table-row-borders`),J.columnBorders&&Y.root.classList.add(`${W}--table-col-borders`),V.interactive)Y.root.setAttribute("tabindex","0"),Y.items.removeAttribute("tabindex");Y.root.setAttribute("role","grid"),Y.root.setAttribute("aria-colcount",`${J.columns.length}`);let C=-1,g=Y.root.getAttribute("aria-label")??Y.items.getAttribute("aria-label");if(g)Y.root.setAttribute("aria-label",g),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=U.getContainerWidth()-H;q.resolve(p);let x=(w,l)=>{if(!q)return;let j=q.getColumn(w);if(!j)return;let L=j.width,D=q.resizeColumn(w,l);X?.update(q),Q?.updateColumnLayout(q),A(),K.emit("column:resize",{key:j.def.key,index:w,previousWidth:L,width:D})},z=(w)=>{k=w.direction===null?null:w.key,v=w.direction??"asc",X?.updateSort(k,v),K.emit("column:sort",w)},O=(w)=>{K.emit("column:click",w)};if(X=l1(Y.root,_,W,x,z,O),X.rebuild(q),k)X.updateSort(k,v);let A=()=>{if(!q)return;let w=`${q.totalWidth}px`;Y.content.style.minWidth=w,Y.items.style.minWidth=w};A(),Q=r1(Y.items,()=>U.sizeCache,q,J.columns,W,V.ariaIdPrefix,()=>U.dataManager.getTotal(),U.rawConfig.item?.striped,()=>U.getStripeIndexFn());let u=null,m=null,o=!1,j0=()=>{if(o)return;o=!0,u=U.methods.get("_getSelectedIds")??null,m=U.methods.get("_getFocusedIndex")??null},e=-1,n=-1,c=-1,B=!0,M=V.overscan,N={start:0,end:0},E={start:0,end:0},S=()=>{if(U.state.isDestroyed)return;let w=U.scrollController.getScrollTop(),l=U.state.viewportState.containerSize,j=U.getVirtualTotal(),L=U.state.viewportState.isCompressed;if(!B&&w===e&&l===n&&j===c)return;e=w,n=l,c=j,B=!1;let D=j+1;if(D!==C)C=D,Y.root.setAttribute("aria-rowcount",`${D}`);U.getVisibleRange(w,l,j,N),E.start=Math.max(0,N.start-M),E.end=Math.min(j-1,N.end+M);let f=U.state.viewportState;f.scrollPosition=w,f.visibleRange.start=N.start,f.visibleRange.end=N.end,f.renderRange.start=E.start,f.renderRange.end=E.end;let P=U.state.lastRenderRange,s=P.start!==E.start||P.end!==E.end;if(!s&&L){Q.updatePositions(U.getCompressionContext());return}if(!s)return;let r=L?U.getCompressionContext():void 0,h=U.dataManager.getItemsInRange(E.start,E.end);j0();let a=u?u():hJ,t=m?m():-1;Q.render(h,E,a,t,r),P.start=E.start,P.end=E.end,K.emit("range:change",{range:{start:E.start,end:E.end}})},J0=()=>{if(U.state.isDestroyed)return;U.state.lastRenderRange.start=-1,U.state.lastRenderRange.end=-1,B=!0,S()};U.setRenderFns(S,J0),U.setUpdateItemClassesFn((w,l,j)=>{Q?.updateItemClasses(w,l,j)});let d=X,Q0=-1,b=()=>{let w=Y.viewport.scrollLeft;if(w!==Q0){if(Q0=w,d.syncScroll)d.syncScroll(w)}};U.afterScroll.push(b),Y.viewport.addEventListener("scroll",b,{passive:!0}),U.resizeHandlers.push((w,l)=>{if(!q)return;q.resolve(w-H),X?.update(q),Q?.updateColumnLayout(q),A()}),U.methods.set("updateColumns",(w)=>{if(!q||!X)return;if(q.updateColumns(w),q.resolve(U.getContainerWidth()-H),X.rebuild(q),k)X.updateSort(k,v);A(),Q?.updateColumnLayout(q),Q?.clear(),U.forceRender()}),U.methods.set("resizeColumn",(w,l)=>{if(!q)return;let j;if(typeof w==="string"){let L=q.columns;j=-1;for(let D=0;D<L.length;D++)if(L[D].def.key===w){j=D;break}if(j===-1)return}else j=w;x(j,l)}),U.methods.set("getColumnWidths",()=>{if(!q)return{};let w={},l=q.columns;for(let j=0;j<l.length;j++)w[l[j].def.key]=l[j].width;return w}),U.methods.set("setSort",(w,l)=>{k=w,v=l??"asc",X?.updateSort(k,v)}),U.methods.set("getSort",()=>{return{key:k,direction:v}}),U.methods.set("_getTableLayout",()=>q),U.methods.set("_updateRenderedItem",(w,l,j,L)=>{Q?.updateItem(w,l,j,L)}),U.methods.set("_replaceTableRenderer",(w)=>{Q=w}),U.methods.set("_updateTableForGroups",(w,l)=>{Q?.setGroupHeaderFn(w,l)}),U.methods.set("_getTableHeaderHeight",()=>_),U.keydownHandlers.push((w)=>{if(w.key!=="ArrowLeft"&&w.key!=="ArrowRight")return;if(!q)return;let l=q.columns;if(l.length===0)return;let j=Y.viewport.clientWidth;if(q.totalWidth<=j)return;let L=Y.viewport.scrollLeft;if(w.key==="ArrowRight"){for(let D=0;D<l.length;D++)if(l[D].offset>L+1){Y.viewport.scrollLeft=l[D].offset,w.preventDefault();return}}else{for(let D=l.length-1;D>=0;D--)if(l[D].offset<L-1){Y.viewport.scrollLeft=l[D].offset,w.preventDefault();return}if(L>0)Y.viewport.scrollLeft=0,w.preventDefault()}}),U.contentSizeHandlers.push(()=>{A()}),U.destroyHandlers.push(()=>{Y.viewport.removeEventListener("scroll",b),X?.destroy(),X=null,Q?.destroy(),Q=null,Y.content.style.minWidth="",Y.items.style.minWidth="",Y.root.classList.remove(`${W}--table`),Y.root.removeAttribute("role"),Y.root.removeAttribute("aria-colcount"),Y.root.removeAttribute("tabindex"),Y.viewport.removeAttribute("role"),Y.viewport.setAttribute("tabindex","-1"),Y.content.removeAttribute("role");let w=Y.root.getAttribute("aria-label");if(w)Y.items.setAttribute("aria-label",w),Y.root.removeAttribute("aria-label");if(Y.root.removeAttribute("aria-rowcount"),Y.items.setAttribute("role",V.interactive?"listbox":"list"),V.interactive)Y.items.setAttribute("tabindex","0")})},destroy(){X?.destroy(),X=null,Q?.destroy(),Q=null}}};var n2=(J)=>{let q=J?.handle??null,X=J?.ghostClass??"vlist-sort-ghost",Q=J?.shiftDuration??150,U=J?.edgeScrollZone??40,Y=J?.edgeScrollSpeed??20,K=J?.dragThreshold??5,V=J?.ghostContainer??null;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(W){let{dom:Z,emitter:F,config:G}=W,{classPrefix:y}=G,{root:T,viewport:$,items:H}=Z,{sizeCache:_}=W,k=G.horizontal,v=k?"translateX":"translateY",C=Q>0?`transform ${Q}ms ease`:"none",g=`${y}--sorting`,p=`${y}--settling`,x=`${y}-item--drag-source`,z=!1,O=-1,A=-1,u=0,m=0,o=0,j0=0,e=!1,n=null,c=0,B=null,M=0,N=0,E=0,S=null;W.methods.set("isSorting",()=>z||q0);let J0=(Y0)=>{return Y0.closest("[data-index]")},d=(Y0)=>{let _0=Y0.dataset.index;return _0===void 0?-1:+_0},Q0=(Y0)=>{let _0=Y0.getBoundingClientRect(),V0=Y0.cloneNode(!0);return V0.className=`${y}-item ${X}`,V0.removeAttribute("data-index"),V0.style.cssText=`position:fixed;pointer-events:none;z-index:10000;width:${_0.width}px;height:${_0.height}px;left:${_0.left}px;top:${_0.top}px;transition:none;will-change:transform`,(V||document.body).appendChild(V0),V0},b=()=>{if(!n)return;let Y0=o-N,_0=j0-E;n.style.left=`${Y0}px`,n.style.top=`${_0}px`},w=()=>{let Y0=W.dataManager.getTotal();if(Y0===0)return 0;let _0=$.getBoundingClientRect(),V0=W.scrollController.getScrollTop(),G0=k?o-N-_0.left+$.scrollLeft+V0:j0-E-_0.top+V0,O0=G0+M,L0=_.getOffset(O)+_.getSize(O);if(O0>L0){let F0=_.indexAtOffset(O0),l0=_.getOffset(F0)+_.getSize(F0)/2,p0=O0>l0?F0:F0-1;return Math.min(Math.max(p0,O),Y0-1)}let C0=_.getOffset(O);if(G0<C0){let F0=_.indexAtOffset(G0),l0=_.getOffset(F0)+_.getSize(F0)/2,p0=G0<l0?F0:F0+1;return Math.max(Math.min(p0,O),0)}return O},l=()=>{let Y0=H.children,_0=M;for(let V0=0;V0<Y0.length;V0++){let G0=Y0[V0],O0=d(G0);if(O0<0||O0===O)continue;let L0=0;if(A>O){if(O0>O&&O0<=A)L0=-_0}else if(A<O){if(O0>=A&&O0<O)L0=_0}let C0=_.getOffset(O0),F0=Math.round(C0+L0);G0.style.transition=C,G0.style.transform=`${v}(${F0}px)`}},j=()=>{let Y0=H.children;for(let _0=0;_0<Y0.length;_0++){let V0=Y0[_0],G0=d(V0);if(G0>=0)V0.style.transform=`${v}(${Math.round(_.getOffset(G0))}px)`;V0.style.transition=""}},L=()=>{let Y0=w();if(Y0===A)return;A=Y0,l(),F.emit("sort:move",{fromIndex:O,currentIndex:A})},D=!1,f=()=>{let Y0=$.getBoundingClientRect();if(k)return o<Y0.left||o>Y0.right;return j0<Y0.top||j0>Y0.bottom},P=()=>{let Y0=()=>{if(!z)return;let _0=$.getBoundingClientRect(),V0=0,G0=3;if(k){let L0=o-_0.left,C0=_0.right-o;if(L0<U){let F0=Math.min(G0,1-L0/U);V0=-Y*F0*F0}else if(C0<U){let F0=Math.min(G0,1-C0/U);V0=Y*F0*F0}}else{let L0=j0-_0.top,C0=_0.bottom-j0;if(L0<U){let F0=Math.min(G0,1-L0/U);V0=-Y*F0*F0}else if(C0<U){let F0=Math.min(G0,1-C0/U);V0=Y*F0*F0}}let O0=f();if(V0!==0){let L0=W.scrollController.getScrollTop(),C0=_.getTotalSize()-(k?$.clientWidth:$.clientHeight);if(V0<0&&L0<=0||V0>0&&L0>=C0)D=O0;else D=!0,W.scrollController.scrollTo(L0+V0)}else D=O0;c=requestAnimationFrame(Y0)};c=requestAnimationFrame(Y0)},s=()=>{if(c)cancelAnimationFrame(c),c=0},r=(Y0=!1)=>{if(z=!1,e=!1,n&&n.parentNode)n.remove();n=null,B=null;let _0=H.children;for(let G0=0;G0<_0.length;G0++){let O0=_0[G0];O0.classList.remove(x);let L0=d(O0);if(L0>=0)O0.style.transform=`${v}(${Math.round(_.getOffset(L0))}px)`;O0.style.transition=""}s(),T.classList.remove(g),document.body.style.cursor="";let V0=window.getSelection();if(V0)V0.removeAllRanges();if(document.removeEventListener("pointermove",a),document.removeEventListener("pointerup",R),document.removeEventListener("pointercancel",X0),!Y0)W.forceRender()},h=(Y0)=>{if(W.state.isDestroyed)return;if(z)return;if(q0)z0();if(Y0.button!==0)return;let _0=Y0.target;if(q){if(!_0.closest(q))return}let V0=J0(_0);if(!V0)return;let G0=d(V0);if(G0<0)return;u=Y0.clientX,m=Y0.clientY,o=Y0.clientX,j0=Y0.clientY,O=G0,e=!1,B=V0;let O0=V0.getBoundingClientRect();N=Y0.clientX-O0.left,E=Y0.clientY-O0.top,document.addEventListener("pointermove",a),document.addEventListener("pointerup",R),document.addEventListener("pointercancel",X0)},a=(Y0)=>{if(o=Y0.clientX,j0=Y0.clientY,!e){let _0=o-u,V0=j0-m;if(Math.sqrt(_0*_0+V0*V0)<K)return;if(e=!0,z=!0,A=O,T.classList.add(g),document.body.style.cursor="grabbing",M=_.getSize(O),B)n=Q0(B),B.classList.add(x);let O0=D0();if(O0>=0){let L0=W.dataManager.getItem(O0);S=L0?L0.id:null}else S=null;F.emit("sort:start",{index:O}),P()}if(z){if(Y0.preventDefault(),b(),!D)L();else if(f()){if(A!==O)A=O,j()}}},t=(Y0,_0)=>{let V0=Y0!==_0&&Y0>=0&&_0>=0,G0=()=>{if(z=!1,V0){if(T.classList.add(p),F.emit("sort:end",{fromIndex:Y0,toIndex:_0}),S!==null)T0(S);r(!0),requestAnimationFrame(()=>{T.classList.remove(p)})}else T.classList.add(p),F.emit("sort:cancel",{originalItems:W.getAllLoadedItems()}),r(!1),requestAnimationFrame(()=>{T.classList.remove(p)})};if(!n){G0();return}let O0=$.getBoundingClientRect(),L0=W.scrollController.getScrollTop(),C0=_.getOffset(_0),F0=Q>0?Q:150;if(n.style.transition=`left ${F0}ms ease, top ${F0}ms ease`,k)n.style.left=`${O0.left-$.scrollLeft+C0-L0}px`,n.style.top=`${O0.top}px`;else n.style.left=`${O0.left}px`,n.style.top=`${O0.top+C0-L0}px`;let l0=!1,p0=()=>{if(l0)return;l0=!0,n?.removeEventListener("transitionend",p0),G0()};n.addEventListener("transitionend",p0),setTimeout(p0,F0+50)},R=(Y0)=>{if(!e){document.removeEventListener("pointermove",a),document.removeEventListener("pointerup",R),document.removeEventListener("pointercancel",X0),B=null;return}Y0.preventDefault(),document.removeEventListener("pointermove",a),document.removeEventListener("pointerup",R),document.removeEventListener("pointercancel",X0),s(),t(O,A)},I=()=>{if(!e)return;document.removeEventListener("pointermove",a),document.removeEventListener("pointerup",R),document.removeEventListener("pointercancel",X0),s(),j(),t(O,O)},X0=()=>{I()};H.addEventListener("pointerdown",h);let q0=!1,B0="",N0=-1,W0=-1,Z0=[],D0=()=>{let Y0=W.methods.get("_getFocusedIndex");return Y0?Y0():-1},T0=(Y0)=>{let _0=W.methods.get("_focusById");if(_0)_0(Y0)},w0=(Y0)=>{let _0=k?$.clientWidth:$.clientHeight,V0=W.scrollController.getScrollTop(),G0=N2(Y0,_,V0,_0);if(G0!==V0)W.scrollController.scrollTo(W.adjustScrollPosition(G0))},E0=(Y0)=>{Z.liveRegion.textContent="",Z.liveRegion.offsetHeight,Z.liveRegion.textContent=Y0},b0=(Y0)=>{let _0=W.dataManager.getItem(Y0);if(!_0)return"";return H.querySelector(`[data-index="${Y0}"]`)?.textContent?.trim()||String(_0.id)},P0=()=>String(W.dataManager.getTotal()),M0=(Y0)=>{let _0=H.children;for(let V0=0;V0<_0.length;V0++)_0[V0].style.transition=Y0},$0=(Y0)=>{let _0=W.dataManager.getItem(Y0);if(!_0)return;q0=!0,B0=_0.id,N0=Y0,W0=Y0;let V0=W.dataManager.getTotal();Z0=[];for(let G0=0;G0<V0;G0++)Z0.push(W.dataManager.getItem(G0));T.classList.add(g),F.emit("sort:start",{index:Y0}),X2(),E0(`Grabbed ${b0(Y0)}. Current position ${Y0+1} of ${P0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},k0=()=>{if(!q0)return;q0=!1;let Y0=W0,_0=b0(Y0);M0("none"),T.classList.remove(g),I0(),T0(B0),W.forceRender(),E0(`${_0} dropped. Final position ${Y0+1} of ${P0()}.`),Z0=[],requestAnimationFrame(()=>{M0("")})},z0=()=>{if(!q0)return;q0=!1;let Y0=N0;if(M0("none"),T.classList.remove(g),I0(),W0!==Y0)F.emit("sort:cancel",{originalItems:Z0});T0(B0),W.forceRender(),w0(Y0),E0(`Reorder cancelled. Returned to position ${Y0+1} of ${P0()}.`),Z0=[],requestAnimationFrame(()=>{M0("")})},u0=(Y0)=>{if(!q0)return;let _0=W.dataManager.getTotal(),V0=W0+Y0;if(V0<0||V0>=_0)return;let G0=W0,O0=V0;M0("none"),F.emit("sort:end",{fromIndex:G0,toIndex:O0}),W0=O0,T0(B0),W.forceRender(),w0(O0),X2(),E0(`${b0(O0)} moved. New position ${O0+1} of ${P0()}.`),requestAnimationFrame(()=>{M0("")})},h0=`${y}-item--kb-sorting`,I0=()=>{let Y0=H.querySelectorAll(`.${h0}`);for(let _0=0;_0<Y0.length;_0++)Y0[_0].classList.remove(h0)},X2=()=>{I0();let Y0=H.querySelector(`[data-id="${B0}"]`);if(Y0)Y0.classList.add(h0)};W.afterRenderBatch.push(()=>{if(q0)X2()});let a0=(Y0)=>{if(W.state.isDestroyed)return;if(z){if(Y0.key==="Escape")Y0.preventDefault(),Y0.stopImmediatePropagation(),I();return}if(q0)switch(Y0.key){case" ":case"Enter":Y0.preventDefault(),Y0.stopImmediatePropagation(),k0();return;case"Escape":Y0.preventDefault(),Y0.stopImmediatePropagation(),z0();return;case"ArrowUp":case"ArrowLeft":Y0.preventDefault(),Y0.stopImmediatePropagation(),u0(-1);return;case"ArrowDown":case"ArrowRight":Y0.preventDefault(),Y0.stopImmediatePropagation(),u0(1);return;default:if(!Y0.key.startsWith("F")&&Y0.key!=="Tab")Y0.preventDefault(),Y0.stopImmediatePropagation();return}if(Y0.key===" "&&!Y0.shiftKey&&!Y0.ctrlKey&&!Y0.metaKey){let _0=D0();if(_0>=0)Y0.preventDefault(),Y0.stopImmediatePropagation(),$0(_0)}};T.addEventListener("keydown",a0);let o0=`${y}-sort-instructions`,v0=document.createElement("div");v0.id=o0,v0.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",v0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",T.appendChild(v0),W.afterRenderBatch.push((Y0)=>{for(let _0=0;_0<Y0.length;_0++){let V0=Y0[_0].element;V0.setAttribute("aria-roledescription","sortable item"),V0.setAttribute("aria-describedby",o0)}}),W.afterRenderBatch.push((Y0)=>{if(!z)return;for(let _0=0;_0<Y0.length;_0++){let{index:V0,element:G0}=Y0[_0];if(V0===O)G0.classList.add(x),B=G0;else{G0.classList.remove(x);let O0=0;if(A>O){if(V0>O&&V0<=A)O0=-M}else if(A<O){if(V0>=A&&V0<O)O0=M}let L0=Math.round(_.getOffset(V0)+O0);G0.style.transform=`${v}(${L0}px)`}}}),W.destroyHandlers.push(()=>{if(q0)z0();r(),H.removeEventListener("pointerdown",h),T.removeEventListener("keydown",a0),v0.remove()})}}};var s1=(J,q)=>{let X=new Map,Q=(Y)=>X.get(Y)??J,U=i0(Q,q);return{getOffset(Y){return U.getOffset(Y)},getSize(Y){return Q(Y)},indexAtOffset(Y){return U.indexAtOffset(Y)},getTotalSize(){return U.getTotalSize()},getTotal(){return U.getTotal()},rebuild(Y){if(Y<U.getTotal()){for(let K of X.keys())if(K>=Y)X.delete(K)}U=i0(Q,Y)},isVariable(){return!0},setMeasuredSize(Y,K){X.set(Y,K)},isMeasured(Y){return X.has(Y)},getEstimatedSize(){return J},measuredCount(){return X.size}}};var i2=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(q){let X=q.config.horizontal,U=q.rawConfig.item,Y=X?U.estimatedWidth:U.estimatedHeight;if(Y==null||Y<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let K=U.gap??0,V=q.getVirtualTotal(),W=g0(q.rawConfig.padding),Z=e0(W,X),F=s1(Y+K,V),G=q.methods.get("_setSizeCache"),y=q.methods.get("_setConstrainSize");if(!G||!y)throw Error("[vlist/withAutoSize] Incompatible builder version");G(F),y((z)=>F.isMeasured(z));let T=q.scrollController,$=q.state.viewportState,H=new WeakMap,_=0,k=!1,v=2,C=(z)=>{let O=T.getScrollTop(),A=$.containerSize;if(A<=0)return!1;return O>=Math.max(0,z+Z-A)-v},g=()=>{let z=F.getTotalSize(),O=$.containerSize;if(O<=0)return;let A=Math.max(0,z+Z-O);if(A>T.getScrollTop())T.scrollTo(A)},p=()=>{q.updateContentSize(F.getTotalSize())},x=()=>{if(k){let z=q.dom.viewport,O=z.scrollHeight,A=O-z.clientHeight,u=T.getScrollTop(),m=A>0&&u>=A-v,o=q.getVirtualTotal(),j0=o&&$.renderRange.end>=o-1,e=Math.abs(F.getTotalSize()+Z-O),n=m||j0&&A>0&&u>=A-e-v;if(p(),k=!1,n)z.scrollHeight,g(),q.forceRender()}};J=new ResizeObserver((z)=>{if(q.state.isDestroyed)return;let O=!1,A=$.visibleRange.start;for(let B of z){let M=H.get(B.target);if(M===void 0)continue;let N=X?B.borderBoxSize[0].inlineSize:B.borderBoxSize[0].blockSize;if(!F.isMeasured(M)){let E=N+K,S=F.getSize(M);if(F.setMeasuredSize(M,E),O=!0,M<A&&E!==S)_+=E-S;J.unobserve(B.target);let J0=B.target;if(X)J0.style.width=`${N}px`;else J0.style.height=`${N}px`}}if(!O)return;let u=F.getTotalSize();if(F.rebuild(q.getVirtualTotal()),_)T.scrollTo(T.getScrollTop()+_),_=0;let m=C(u),o=q.getVirtualTotal(),j0=o&&$.renderRange.end>=o-1,e=q.dom.viewport,n=e.scrollHeight-e.clientHeight,c=n>0&&T.getScrollTop()>=n-v;if(m||j0||!T.isScrolling()){if(p(),k=!1,m||j0&&c)e.scrollHeight,g()}else k=!0;q.forceRender()}),q.afterRenderBatch.push((z)=>{for(let{index:O,element:A}of z)if(!F.isMeasured(O))H.set(A,O),J.observe(A)}),q.idleHandlers.push(x),q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};function a1(J,q){if(q===!1)return null;return{duration:Math.min(q?.duration??J.duration,1000),easing:q?.easing??J.easing}}function t2(J){let q=J?.duration??200,X=J?.easing??"cubic-bezier(0.2, 0, 0, 1)",Q={duration:q,easing:X},U=a1(Q,J?.remove),Y=a1(Q,J?.insert),K,V,W=null,Z=null,F=!1,G=null,y=null,T=null,$=null,H=()=>{if(F)return;if(typeof K.dataManager.ensureRange!=="function")return;F=!0,queueMicrotask(()=>{F=!1;let z=K.dataManager;if(typeof z.ensureRange!=="function")return;let O=z.getTotal(),{start:A,end:u}=K.state.viewportState.renderRange;if(O>0&&u>=A)z.ensureRange(A,u).catch(()=>{})})},_=(z)=>K.renderer.getElement(z),k=(z)=>G?G(z):z,v=()=>{let{items:z}=K.dom,O=z.children;for(let A=0;A<O.length;A++)O[A].style.transition="none";z.offsetHeight;for(let A=0;A<O.length;A++)O[A].style.transition=""},C=()=>K.dataManager!==$,g=(z)=>{if(W)W();let{dom:O,sizeCache:A,config:u,emitter:m}=K,o=u.horizontal?"translateX":"translateY",j0=typeof document<"u"?document.activeElement:null,e=j0&&O.items.contains(j0)?parseInt(j0.dataset?.index??"-1",10):-1,n=K.dataManager.getIndexById(z);if(n<0&&typeof z==="number")n=z;let c=n>=0?_(n):null,B=n>=0?A.getSize(n):0,M=n>=0?A.getOffset(n):0;if(!c||n<0){if(!(!C()&&T?T(z):K.dataManager.removeItem(z)))return console.warn(`[vlist] removeItem() could not find item with id "${z}".`),!1;if(K.forceRender(),v(),m.emit("data:change",{type:"remove",id:z}),H(),e>=0){let h=K.getVirtualTotal();if(h>0)_(Math.min(e,h-1))?.focus()}return m.emit("remove:end",{id:z}),!0}let N=c.cloneNode(!0);N.style.pointerEvents="none",N.style.overflow="hidden",N.removeAttribute("data-index"),N.removeAttribute("data-id"),N.removeAttribute("id"),N.removeAttribute("aria-selected"),N.classList.remove(`${u.classPrefix}-item--selected`);let E=u.horizontal?"scrollLeft":"scrollTop",S=O.viewport[E];if(!(!C()&&T?T(z):K.dataManager.removeItem(z)))return console.warn(`[vlist] removeItem() could not find item with id "${z}".`),!1;K.forceRender(),v(),m.emit("data:change",{type:"remove",id:z}),H();let Q0=S-O.viewport[E];N.style.zIndex="1",O.items.appendChild(N);let b=U,w={duration:b.duration,easing:b.easing},l=[],j=Math.round(M-Q0);l.push(N.animate([{transform:`${o}(${j}px) scaleY(1)`,opacity:1,transformOrigin:V},{transform:`${o}(${Math.round(M)}px) scaleY(0)`,opacity:0,transformOrigin:V}],w));let L=Q0>0,D=O.items.children;for(let s=0;s<D.length;s++){let r=D[s];if(r===N)continue;let h=parseInt(r.dataset?.index??"-1",10);if(h<0||!L&&h<n)continue;let a=A.getOffset(h),t=h>=n?Math.round(a+B-Q0):Math.round(a-Q0),R=Math.round(a);if(t===R)continue;l.push(r.animate([{transform:`${o}(${t}px)`},{transform:`${o}(${R}px)`}],w))}let f=!1,P=()=>{if(f)return;f=!0,W=null,N.remove();for(let s of l)if(s.playState!=="finished")s.cancel();if(e>=0){let s=K.getVirtualTotal();if(s>0)_(Math.min(e,s-1))?.focus()}m.emit("remove:end",{id:z})};return W=P,Promise.all(l.map((s)=>s.finished)).then(P,P),setTimeout(P,b.duration+50),!0},p=(z)=>{if(z.length===0)return 0;if(z.length===1)return g(z[0])?1:0;if(W)W();if(Z)Z();let{dom:O,sizeCache:A,config:u,emitter:m}=K,o=u.horizontal?"translateX":"translateY",j0=typeof document<"u"?document.activeElement:null,e=j0&&O.items.contains(j0)?parseInt(j0.dataset?.index??"-1",10):-1,n=[];for(let h of z){let a=K.dataManager.getIndexById(h);if(a<0&&typeof h==="number")a=h;n.push({id:h,layoutIndex:a,el:a>=0?_(a):null,size:a>=0?A.getSize(a):0,offset:a>=0?A.getOffset(a):0})}n.sort((h,a)=>a.layoutIndex-h.layoutIndex);let c=[];for(let h of n){if(!h.el||h.layoutIndex<0)continue;let a=h.el.cloneNode(!0);a.style.pointerEvents="none",a.style.overflow="hidden",a.removeAttribute("data-index"),a.removeAttribute("data-id"),a.removeAttribute("id"),a.removeAttribute("aria-selected"),a.classList.remove(`${u.classPrefix}-item--selected`),c.push({clone:a,offset:h.offset,size:h.size,layoutIndex:h.layoutIndex})}let B=new Map,M=O.items.children,N=-1;for(let h=0;h<M.length;h++){let a=M[h],t=a.dataset?.id,R=parseInt(a.dataset?.index??"-1",10);if(t&&R>=0){if(B.set(t,A.getOffset(R)),R>N)N=R}}let E=K.dataManager.getTotal(),S=Math.min(N+1+n.length,E);for(let h=N+1;h<S;h++){let a=K.dataManager.getItem(h);if(a)B.set(String(a.id),A.getOffset(h))}let J0=u.horizontal?"scrollLeft":"scrollTop",d=O.viewport[J0],Q0=C(),b=[];for(let h of n)if(!Q0&&T?T(h.id):K.dataManager.removeItem(h.id))b.push(h.id);if(b.length===0)return 0;K.forceRender(),v();for(let h of b)m.emit("data:change",{type:"remove",id:h});if(H(),c.length===0){if(e>=0){let h=K.getVirtualTotal();if(h>0)_(Math.min(e,h-1))?.focus()}for(let h of b)m.emit("remove:end",{id:h});return b.length}let w=d-O.viewport[J0],l=U,j={duration:l.duration,easing:l.easing},L=[];c.sort((h,a)=>h.layoutIndex-a.layoutIndex);let D=0;for(let h of c){h.clone.style.zIndex="1",O.items.appendChild(h.clone);let a=Math.round(h.offset-w),t=Math.round(h.offset-D);L.push(h.clone.animate([{transform:`${o}(${a}px) scaleY(1)`,opacity:1,transformOrigin:V},{transform:`${o}(${t}px) scaleY(0)`,opacity:0,transformOrigin:V}],j)),D+=h.size}let f=new Set(c.map((h)=>h.clone)),P=O.items.children;for(let h=0;h<P.length;h++){let a=P[h];if(f.has(a))continue;let t=a.dataset?.id,R=parseInt(a.dataset?.index??"-1",10);if(!t||R<0)continue;let I=B.get(t);if(I===void 0)continue;let X0=A.getOffset(R),q0=Math.round(I-w),B0=Math.round(X0);if(q0===B0)continue;L.push(a.animate([{transform:`${o}(${q0}px)`},{transform:`${o}(${B0}px)`}],j))}let s=!1,r=()=>{if(s)return;s=!0,W=null;for(let{clone:h}of c)h.remove();for(let h of L)if(h.playState!=="finished")h.cancel();if(e>=0){let h=K.getVirtualTotal();if(h>0)_(Math.min(e,h-1))?.focus()}for(let h of b)m.emit("remove:end",{id:h})};return W=r,Promise.all(L.map((h)=>h.finished)).then(r,r),setTimeout(r,l.duration+50),b.length},x=(z,O)=>{if(Z)Z();if(W)W();let{dom:A,sizeCache:u,config:m,emitter:o}=K,j0=m.horizontal?"translateX":"translateY",e=O??0,n=new Map,c=A.items.children;for(let P=0;P<c.length;P++){let s=c[P],r=s.dataset?.id,h=parseInt(s.dataset?.index??"-1",10);if(r&&h>=0)n.set(r,u.getOffset(h))}let B=m.horizontal?"scrollLeft":"scrollTop",M=m.horizontal?"scrollWidth":"scrollHeight",N=m.horizontal?"clientWidth":"clientHeight",E=A.viewport[B],S=A.viewport[M]-A.viewport[N],J0=E>=S-1;if(!C()&&y)y(z,e);else K.dataManager.insertItem(z,e);K.forceRender(),v(),o.emit("data:change",{type:"insert",id:z.id}),H();let d=A.viewport[B]-E,Q0=k(e);if(m.reverse&&d===0&&J0){let P=A.viewport[M]-A.viewport[N];if(A.viewport[B]=P,d=A.viewport[B]-E,d>0)K.forceRender(),v()}let b=_(Q0),w=Y,l={duration:w.duration,easing:w.easing},j=[];if(b){let P=u.getOffset(Q0);j.push(b.animate([{transform:`${j0}(${Math.round(P)}px) scaleY(0)`,opacity:0,transformOrigin:V},{transform:`${j0}(${Math.round(P)}px) scaleY(1)`,opacity:1,transformOrigin:V}],l))}let L=A.items.children;for(let P=0;P<L.length;P++){let s=L[P];if(s===b)continue;let r=s.dataset?.id,h=parseInt(s.dataset?.index??"-1",10);if(!r||h<0)continue;let a=n.get(r);if(a===void 0)continue;let t=u.getOffset(h),R=Math.round(a+d),I=Math.round(t);if(R===I)continue;j.push(s.animate([{transform:`${j0}(${R}px)`},{transform:`${j0}(${I}px)`}],l))}if(j.length===0)return;let D=!1,f=()=>{if(D)return;D=!0,Z=null;for(let P of j)if(P.playState!=="finished")P.cancel()};Z=f,Promise.all(j.map((P)=>P.finished)).then(f,f),setTimeout(f,w.duration+50)};return{name:"transition",conflicts:["withGrid","withTable","withMasonry"],priority:45,setup(z){if(K=z,V=K.config.reverse?"bottom center":"top center",$=K.dataManager,G=K.methods.get("_dataToLayoutIndex")??null,y=K.methods.get("insertItem")??null,T=K.methods.get("removeItem")??null,U)K.methods.set("removeItem",g),K.methods.set("removeItems",p);if(Y)K.methods.set("insertItem",x)},destroy(){if(W)W();if(Z)Z()}}}var IJ=50,pJ=0.1;function o1(J){let q=0,X=0,Q=0;function U(){return Q>0?X/Q:0}function Y(W){if(q=W,W>pJ&&W<IJ)X+=W,Q++}function K(){let W=J.getTotal();if(W===0)return 0;let Z=J.getItemSize();if(Z<=0)return 0;let F=J.getContainerSize();if(F<=0)return 0;let G=J.getScrollPosition(),y=typeof J.getColumns==="function"?J.getColumns():1,$=Math.ceil(W/y)*Z,_=Math.min($,j2)-F,k=$-F,v=_>0?k/_:1,C=G*v,g=Math.ceil((C+F)/Z);return Math.min(g*y,W)}function V(){let W=J.getTotal(),Z=K();return{progress:W>0?Math.min(100,Math.max(0,Z/W*100)):0,velocity:q,velocityAvg:U(),itemCount:Z,total:W}}return{getState:V,onVelocity:Y}}export{t2 as withTransition,o2 as withTable,n2 as withSortable,s2 as withSnapshots,r2 as withSelection,f2 as withScrollbar,h2 as withScale,p2 as withPage,l2 as withMasonry,x2 as withGroups,c2 as withGrid,i2 as withAutoSize,I2 as withAsync,z2 as vlist,o1 as createStats};