vlist 1.9.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. package/README.github.md +104 -97
  2. package/README.md +46 -33
  3. package/dist/constants.d.ts +11 -6
  4. package/dist/core/create.d.ts +10 -0
  5. package/dist/core/dom.d.ts +8 -0
  6. package/dist/core/hooks.d.ts +16 -0
  7. package/dist/core/index.d.ts +17 -0
  8. package/dist/core/pipeline.d.ts +51 -0
  9. package/dist/core/pool.d.ts +9 -0
  10. package/dist/core/scroll.d.ts +32 -0
  11. package/dist/core/sizes.d.ts +8 -0
  12. package/dist/core/state.d.ts +47 -0
  13. package/dist/core/types.d.ts +187 -0
  14. package/dist/{builder → core}/velocity.d.ts +1 -1
  15. package/dist/index.d.ts +28 -19
  16. package/dist/index.js +1 -1
  17. package/dist/internals.d.ts +11 -7
  18. package/dist/internals.js +1 -1
  19. package/dist/plugins/a11y/index.d.ts +2 -0
  20. package/dist/plugins/a11y/plugin.d.ts +13 -0
  21. package/dist/{features → plugins}/async/index.d.ts +1 -1
  22. package/dist/{features → plugins}/async/manager.d.ts +5 -1
  23. package/dist/plugins/async/plugin.d.ts +48 -0
  24. package/dist/plugins/autosize/index.d.ts +5 -0
  25. package/dist/plugins/autosize/plugin.d.ts +19 -0
  26. package/dist/plugins/grid/index.d.ts +7 -0
  27. package/dist/plugins/grid/plugin.d.ts +23 -0
  28. package/dist/{features → plugins}/groups/index.d.ts +1 -1
  29. package/dist/plugins/groups/plugin.d.ts +22 -0
  30. package/dist/plugins/masonry/index.d.ts +8 -0
  31. package/dist/plugins/masonry/plugin.d.ts +32 -0
  32. package/dist/plugins/page/index.d.ts +5 -0
  33. package/dist/plugins/page/plugin.d.ts +21 -0
  34. package/dist/plugins/scale/index.d.ts +5 -0
  35. package/dist/plugins/scale/plugin.d.ts +24 -0
  36. package/dist/plugins/scrollbar/index.d.ts +7 -0
  37. package/dist/plugins/scrollbar/plugin.d.ts +20 -0
  38. package/dist/plugins/selection/index.d.ts +6 -0
  39. package/dist/plugins/selection/plugin.d.ts +16 -0
  40. package/dist/{features → plugins}/selection/state.d.ts +8 -0
  41. package/dist/plugins/snapshots/index.d.ts +5 -0
  42. package/dist/plugins/snapshots/plugin.d.ts +17 -0
  43. package/dist/plugins/sortable/index.d.ts +6 -0
  44. package/dist/plugins/sortable/plugin.d.ts +34 -0
  45. package/dist/{features → plugins}/table/index.d.ts +1 -1
  46. package/dist/plugins/table/plugin.d.ts +20 -0
  47. package/dist/plugins/transition/index.d.ts +5 -0
  48. package/dist/plugins/transition/plugin.d.ts +22 -0
  49. package/dist/size.json +1 -1
  50. package/dist/utils/padding.d.ts +2 -4
  51. package/dist/vlist-grid.css +1 -1
  52. package/dist/vlist-masonry.css +1 -1
  53. package/dist/vlist-table.css +1 -1
  54. package/dist/vlist.css +1 -1
  55. package/package.json +9 -4
  56. package/dist/builder/a11y.d.ts +0 -16
  57. package/dist/builder/api.d.ts +0 -21
  58. package/dist/builder/context.d.ts +0 -36
  59. package/dist/builder/core.d.ts +0 -16
  60. package/dist/builder/data.d.ts +0 -71
  61. package/dist/builder/dom.d.ts +0 -15
  62. package/dist/builder/index.d.ts +0 -25
  63. package/dist/builder/materialize.d.ts +0 -166
  64. package/dist/builder/pool.d.ts +0 -10
  65. package/dist/builder/range.d.ts +0 -10
  66. package/dist/builder/scroll.d.ts +0 -24
  67. package/dist/builder/types.d.ts +0 -512
  68. package/dist/features/async/feature.d.ts +0 -72
  69. package/dist/features/autosize/feature.d.ts +0 -34
  70. package/dist/features/autosize/index.d.ts +0 -2
  71. package/dist/features/grid/feature.d.ts +0 -48
  72. package/dist/features/grid/index.d.ts +0 -9
  73. package/dist/features/groups/feature.d.ts +0 -75
  74. package/dist/features/masonry/feature.d.ts +0 -45
  75. package/dist/features/masonry/index.d.ts +0 -9
  76. package/dist/features/page/feature.d.ts +0 -109
  77. package/dist/features/page/index.d.ts +0 -9
  78. package/dist/features/scale/feature.d.ts +0 -42
  79. package/dist/features/scale/index.d.ts +0 -10
  80. package/dist/features/scrollbar/feature.d.ts +0 -81
  81. package/dist/features/scrollbar/index.d.ts +0 -8
  82. package/dist/features/selection/feature.d.ts +0 -91
  83. package/dist/features/selection/index.d.ts +0 -7
  84. package/dist/features/snapshots/feature.d.ts +0 -79
  85. package/dist/features/snapshots/index.d.ts +0 -9
  86. package/dist/features/sortable/feature.d.ts +0 -101
  87. package/dist/features/sortable/index.d.ts +0 -6
  88. package/dist/features/table/feature.d.ts +0 -67
  89. package/dist/features/transition/feature.d.ts +0 -30
  90. package/dist/features/transition/index.d.ts +0 -9
  91. /package/dist/{features → plugins}/async/placeholder.d.ts +0 -0
  92. /package/dist/{features → plugins}/async/sparse.d.ts +0 -0
  93. /package/dist/{features → plugins}/grid/layout.d.ts +0 -0
  94. /package/dist/{features → plugins}/grid/renderer.d.ts +0 -0
  95. /package/dist/{features → plugins}/grid/types.d.ts +0 -0
  96. /package/dist/{features → plugins}/groups/async-bridge.d.ts +0 -0
  97. /package/dist/{features → plugins}/groups/layout.d.ts +0 -0
  98. /package/dist/{features → plugins}/groups/sticky.d.ts +0 -0
  99. /package/dist/{features → plugins}/groups/types.d.ts +0 -0
  100. /package/dist/{features → plugins}/masonry/layout.d.ts +0 -0
  101. /package/dist/{features → plugins}/masonry/renderer.d.ts +0 -0
  102. /package/dist/{features → plugins}/masonry/types.d.ts +0 -0
  103. /package/dist/{features → plugins}/scrollbar/controller.d.ts +0 -0
  104. /package/dist/{features → plugins}/scrollbar/scrollbar.d.ts +0 -0
  105. /package/dist/{features → plugins}/table/header.d.ts +0 -0
  106. /package/dist/{features → plugins}/table/layout.d.ts +0 -0
  107. /package/dist/{features → plugins}/table/renderer.d.ts +0 -0
  108. /package/dist/{features → plugins}/table/types.d.ts +0 -0
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var W1=2,_1=(J=0)=>({velocity:0,sampleCount:0}),B1=(J,q)=>{let Y=performance.now(),Q=J._lt??Y,U=J._lp??q,j=Y-Q;if(J._lp=q,J._lt=Y,j===0)return J.sampleCount=Math.min(J.sampleCount+1,5),J;if(j>100)return J.velocity=0,J.sampleCount=1,J;return J.velocity=Math.abs(q-U)/j,J.sampleCount=Math.min(J.sampleCount+1,5),J};var UJ=(J,q)=>{let Y=q;return{getOffset:(Q)=>Q*J,getSize:(Q)=>J,indexAtOffset:(Q)=>{if(Y===0||J===0)return 0;return Math.max(0,Math.min(Math.floor(Q/J),Y-1))},getTotalSize:()=>Y*J,getTotal:()=>Y,rebuild:(Q)=>{Y=Q},isVariable:()=>!1}},ZJ=(J,q)=>{let Y=q,Q=new Float64Array(0),U=(K)=>{Y=K,Q=new Float64Array(K+1),Q[0]=0;for(let D=0;D<K;D++)Q[D+1]=Q[D]+J(D)};U(q);let j=(K)=>{if(Y===0)return 0;if(K<=0)return 0;if(K>=Q[Y])return Y-1;let D=0,_=Y-1;while(D<_){let Z=D+_+1>>>1;if(Q[Z]<=K)D=Z;else _=Z-1}return D};return{getOffset:(K)=>{if(K<=0)return 0;if(K>=Y)return Q[Y];return Q[K]},getSize:(K)=>J(K),indexAtOffset:(K)=>j(K),getTotalSize:()=>Q[Y]??0,getTotal:()=>Y,rebuild:(K)=>U(K),isVariable:()=>!0}},i0=(J,q)=>{if(typeof J==="number")return UJ(J,q);return ZJ(J,q)};var V1=()=>{let J={},q=(j,K)=>{if(!J[j])J[j]=new Set;return J[j].add(K),()=>Y(j,K)},Y=(j,K)=>{J[j]?.delete(K)};return{on:q,off:Y,emit:(j,K)=>{J[j]?.forEach((D)=>{try{D(K)}catch(_){console.error(`[vlist] Error in event handler for "${String(j)}":`,_)}})},clear:(j)=>{if(j)delete J[j];else for(let K in J)delete J[K]}}};var D1=(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 Y=document.createElement("div");if(Y.className=J,q)Y.style.cssText=q;return Y},M1=(J,q,Y,Q,U)=>{let j=Q,K=K2(q);if(j)K.classList.add(`${q}--horizontal`);let D=K2(`${q}-viewport`,j?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%");D.setAttribute("tabindex","-1");let _=K2(`${q}-content`,j?"position:relative;height:100%":"position:relative;width:100%"),Z=K2(`${q}-items`,j?"position:relative;height:100%":"position:relative;width:100%");if(Z.setAttribute("role",U!==!1?"listbox":"list"),U!==!1)Z.setAttribute("tabindex","0");if(Y)Z.setAttribute("aria-label",Y);if(j)Z.setAttribute("aria-orientation","horizontal");let L=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 L.setAttribute("aria-live","polite"),L.setAttribute("aria-atomic","true"),L.setAttribute("role","status"),_.appendChild(Z),D.appendChild(_),K.appendChild(L),K.appendChild(D),J.appendChild(K),{root:K,viewport:D,content:_,items:Z,liveRegion:L}};var G1=(J=100)=>{let q=[];return{acquire:()=>{let Y=q.pop();if(Y)return Y;let Q=document.createElement("div");return Q.setAttribute("role","option"),Q},release:(Y)=>{if(q.length<J)Y.className="",Y.textContent="",Y.removeAttribute("style"),Y.removeAttribute("data-index"),Y.removeAttribute("data-id"),q.push(Y)},clear:()=>{q.length=0}}};var O1=(J,q,Y,Q,U)=>{if(Q===0||q===0){U.start=0,U.end=-1;return}let j=Y.indexAtOffset(J),K=Y.indexAtOffset(J+q);if(K<Q-1)K++;U.start=Math.max(0,j),U.end=Math.min(Q-1,Math.max(0,K))},A1=(J,q,Y,Q)=>{Q.start=Math.max(0,J.start-q),Q.end=Math.min(Y-1,J.end+q)},E1=(J,q,Y,Q,U,j=0)=>{if(Q===0)return 0;let K=Math.max(0,Math.min(J,Q-1)),D=q.getOffset(K),_=q.getSize(K),Z=q.getTotalSize(),L=Math.max(0,Z+j-Y),G;switch(U){case"center":G=D-(Y-_)/2;break;case"end":G=j>0&&D+_>=Z?L:D-Y+_;break;default:G=D}return Math.max(0,Math.min(G,L))};var L2={top:0,right:0,bottom:0,left:0},p0=(J)=>{if(J==null)return L2;if(typeof J==="number")return J===0?L2:{top:J,right:J,bottom:J,left:J};if(J.length===2){let[j,K]=J;return j===0&&K===0?L2:{top:j,right:K,bottom:j,left:K}}let[q,Y,Q,U]=J;return q===0&&Y===0&&Q===0&&U===0?L2:{top:q,right:Y,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,Y)=>{let Q=Array.from(q).sort((K,D)=>K-D);if(Q.length<=1)return;let U=[];for(let K=0;K<Q.length;K++){let D=Y(Q[K]);if(D)U.push(D)}if(U.length<=1)return;let j=J.firstChild;for(let K=0;K<U.length;K++){let D=U[K];if(D===j)j=j.nextSibling;else J.insertBefore(D,j)}};var L1=(J,q)=>{let{dom:Y,emitter:Q,resolvedConfig:U,rawConfig:j,rendered:K,pool:D,sharedState:_,isHorizontal:Z,classPrefix:L,contentSizeHandlers:G,idleHandlers:P,afterScroll:F,clickHandlers:$,contextMenuHandlers:H,keydownHandlers:B,resizeHandlers:k,destroyHandlers:S,methods:v,onScrollFrame:g,resizeObserver:p,renderRange:x,afterRenderBatch:y}=q;return{get dom(){return Y},get sizeCache(){return J.hc},get emitter(){return Q},get config(){return U},get rawConfig(){return j},adjustScrollPosition(E){if(J.mp===0)return E;let A=Z?J.cw:J.ch,f=J.hc.getTotalSize(),m=Math.max(0,f-A),n=Math.max(0,f+J.mp-A);if(E>=m)return n;return Math.min(E,n)},get renderer(){return{render:(E,A,f,m,n)=>{J.ss=f,J.fi=m,J.ffn()},updateItemClasses:(E,A,f)=>{J.uic(E,A,f)},updatePositions:()=>{},updateItem:()=>{},getElement:(E)=>K.get(E)??null,clear:()=>{},destroy:()=>{}}},set renderer(E){},get dataManager(){return J.dm},set dataManager(E){J.dm=E},get scrollController(){return J.sc},set scrollController(E){J.sc=E},state:_,getContainerWidth(){return J.cw},afterScroll:F,idleHandlers:P,afterRenderBatch:y,clickHandlers:$,contextMenuHandlers:H,keydownHandlers:B,resizeHandlers:k,contentSizeHandlers:G,destroyHandlers:S,methods:v,replaceTemplate(E){J.at=E},replaceRenderer(E){},replaceDataManager(E){J.dm=E},replaceScrollController(E){J.sc=E},getItemsForRange(E){let{dm:A,it:f}=J,m=[];for(let n=E.start;n<=E.end;n++){let Y0=A?A.getItem(n):f[n];if(Y0)m.push(Y0)}return m},getAllLoadedItems(){let E=J.dm;if(E){let A=E.getTotal(),f=[];for(let m=0;m<A;m++){let n=E.getItem(m);if(n)f.push(n)}return f}return[...J.it]},getVirtualTotal(){return J.vtf()},getCachedCompression(){let E=J.hc;return{isCompressed:!1,actualSize:E.getTotalSize(),virtualSize:E.getTotalSize(),ratio:1}},getCompressionContext(){return{scrollPosition:J.ls,totalItems:J.vtf(),containerSize:J.ch,rangeStart:x.start,compression:_.cachedCompression?.state}},renderIfNeeded(){J.rfn()},forceRender(){J.ffn()},invalidateRendered(){for(let[,E]of K)E.remove(),D.release(E);K.clear()},getRenderFns(){return{renderIfNeeded:J.rfn,forceRender:J.ffn}},setRenderFns(E,A){J.rfn=E,J.ffn=A},setVirtualTotalFn(E){J.vtf=E},rebuildSizeCache(E){J.hc.rebuild(E??J.vtf())},setSizeConfig(E){if(J.hc=i0(E,J.vtf()),J.gp>0){let A=J.hc.getTotalSize,f=J.gp;J.hc.getTotalSize=()=>{let m=A();return m>0?m-f:0}}},updateContentSize(E){let A=`${E+J.mp}px`;if(Z)Y.content.style.width=A;else Y.content.style.height=A},updateCompressionMode(){for(let E=0;E<G.length;E++)G[E]()},setVisibleRangeFn(E){J.gvr=E},getVisibleRange(E,A,f,m){J.gvr(E,A,J.hc,f,m)},setScrollToPosFn(E){J.gsp=E},getScrollToPos(E,A,f,m){return J.gsp(E,J.hc,A,f,m)},setPositionElementFn(E){J.pef=E},setScrollFns(E,A){J.sgt=E,J.sst=(f)=>{A(f),g()}},triggerScrollFrame(){g()},setScrollTarget(E){J.st.removeEventListener("scroll",g),J.st=E,J.st.addEventListener("scroll",g,{passive:!0})},getScrollTarget(){return J.st},setContainerDimensions(E){J.gcw=E.width,J.gch=E.height,J.cw=E.width(),J.ch=E.height(),_.viewportState.containerSize=Z?J.cw:J.ch},disableViewportResize(){if(J.vre)J.vre=!1,p.unobserve(Y.viewport)},disableWheelHandler(){if(J.wh)Y.viewport.removeEventListener("wheel",J.wh),J.wh=null},getStripeIndexFn(){return J.sif},setStripeIndexFn(E){J.sif=E},getItemToScrollIndexFn(){return J.i2s},setItemToScrollIndexFn(E){J.i2s=E},setUpdateItemClassesFn(E){J.uic=E}}},F1=(J,q,Y)=>{let{rendered:Q,itemState:U,applyTemplate:j,updateContentSize:K}=q,D=()=>{J.hc.rebuild(J.vtf()),K(),Y.updateCompressionMode(),J.ffn()},_=()=>J.it.length,Z=null,L=()=>{if(!Z)Z=new Map;Z.clear();for(let G=0;G<J.it.length;G++){let P=J.it[G]?.id;if(P!==void 0)Z.set(P,G)}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:(G)=>J.it[G],isItemLoaded:(G)=>G>=0&&G<_()&&J.it[G]!==void 0,getItemsInRange:(G,P)=>{let F=[];for(let $=Math.max(0,G),H=Math.min(P,_()-1);$<=H;$++)F.push(J.it[$]);return F},getIndexById:(G)=>{return(Z??L()).get(G)??-1},setTotal:()=>{},setItems:(G,P=0,F)=>{if(P===0&&(F!==void 0||_()===0)){if(J.it=G,Z)L()}else{let $=P+G.length;if(_()<$)J.it.length=$;for(let H=0;H<G.length;H++){if(Z){let B=J.it[P+H]?.id;if(B!==void 0)Z.delete(B)}if(J.it[P+H]=G[H],Z){let B=G[H]?.id;if(B!==void 0)Z.set(B,P+H)}}}if(J.ii)D()},updateItem:(G,P)=>{let F=J.it;if(G<0||G>=F.length)return!1;let $=F[G];if(!$)return!1;let H=$.id;if(F[G]={...$,...P},Z){let k=F[G].id;if(H!==k){if(H!==void 0)Z.delete(H);if(k!==void 0)Z.set(k,G)}}let B=Q.get(G);if(B)j(B,J.at(F[G],G,U)),B.dataset.id=String(F[G].id);return!0},insertItem:(G,P)=>{if(J.it.splice(P,0,G),Z)L();if(J.ii)D()},removeItem:(G)=>{let P;if(typeof G==="number")P=Z?Z.get(G)??G:G;else P=(Z??L()).get(G)??-1;if(P<0||P>=J.it.length)return!1;if(J.it.splice(P,1),Z)L();if(J.ii)D();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()}}},T1=(J,q)=>{let{dom:Y,classPrefix:Q,onScrollFrame:U}=q;return{getScrollTop:()=>J.sgt(),scrollTo:(j)=>{J.sst(j),U()},scrollBy:(j)=>{let K=J.sgt()+j;J.sst(K),U()},isAtTop:()=>J.ls<=2,isAtBottom:(j=2)=>J.sab(j),getScrollPercentage:()=>{let j=J.hc.getTotalSize(),K=Math.max(0,j-J.ch);return K>0?J.ls/K:0},getVelocity:()=>J.vt.velocity,isTracking:()=>J.vt.sampleCount>=2,isScrolling:()=>Y.root.classList.contains(`${Q}--scrolling`),updateConfig:()=>{},enableCompression:()=>{J.sic=!0},disableCompression:()=>{J.sic=!1},isCompressed:()=>J.sic,isWindowMode:()=>!1,updateContainerHeight:(j)=>{J.ch=j},destroy:()=>{}}};var N2=(J,q,Y,Q,U=0,j=0)=>{let K=q.getOffset(J),D=q.getSize(J),_=K+U,Z=_+D,L=Y+Q;if(_<Y)return Math.max(0,K);if(Z>L)return Z+j-Q;return Y},T2=(J,q,Y,Q,U=0,j=0,K,D,_)=>{if(!(K!=null&&K.isCompressed&&K.ratio!==1))return N2(J,q,Y,Q,U,j);let{virtualSize:L}=K,G=q.getSize(Math.max(0,J)),P=Q-U-j,F=Math.max(1,Math.floor(P/G)),$=q.getTotalSize();if(_){if(J>=_.start+F){let S=q.getOffset(J)+G+j-Q;return Math.max(0,S/$*L)}if(J<=_.start){let k=q.getOffset(J)-U;return Math.max(0,k/$*L)}return Y}let H=Y/L*D,B=H+F;if(J>=B){let S=q.getOffset(J)+G+j-Q;return Math.max(0,S/$*L)}if(J<H){let k=q.getOffset(J)-U;return Math.max(0,k/$*L)}return Y};var H1=(J,q,Y,Q,U,j,K,D,_,Z,L,G,P,F)=>{let $=`${Y}-item--focused`,H=!1,B=()=>{let A=_.get("_getNavTotal");return A?A():J.vtf()},k=()=>{let A=_.get("_getNavDelta");return A?A():{ud:1,lr:0,cols:0}};_.set("_getFocusedIndex",()=>H?J.fi:-1);let S=()=>q.root.getAttribute("role")==="grid"?q.root:q.items,v=(A,f=!0)=>{if(S().setAttribute("aria-activedescendant",`${Q}-item-${A}`),f){let m=_.get("_scrollItemIntoView");if(m)m(A);else{let n=U?J.cw:J.ch,Y0=J.i2s(A),t=N2(Y0,J.hc,J.ls,n,j,K);if(t!==J.ls)J.sst(t),J.ls=J.sgt()}}J.ffn()},g=(A)=>{J.fi=A,H=!0,v(A)},p=(A,f)=>{if(J.fi=A,f||F)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);v(A,f)},x=(A,f,m)=>{let n=A;while(n>=0&&n<m){let Y0=J.dm?J.dm.getItem(n):J.it[n];if(!Y0||!Y0.__groupHeader)return n;n+=f}n=A-f;while(n>=0&&n<m){let Y0=J.dm?J.dm.getItem(n):J.it[n];if(!Y0||!Y0.__groupHeader)return n;n-=f}return A},y=()=>{if(J.id)return;if(!S().matches(":focus-visible")&&!q.root.matches(":focus-visible"))return;let f=B();if(f===0)return;let m=J.fi>=0?Math.min(J.fi,f-1):0;m=x(m,1,f),g(m)};q.root.addEventListener("focusin",y);let E=(A)=>{if(J.id)return;let f=A.relatedTarget;if(f&&q.root.contains(f))return;if(H=!1,J.fi>=0)Z.get(J.fi)?.classList.remove($);S().removeAttribute("aria-activedescendant")};q.root.addEventListener("focusout",E),L.push((A)=>{if(J.id)return;let f=B();if(f===0)return;let m=J.fi,n=m;if(A.key===" "||A.key==="Enter"){if(m>=0){let t=J.dm?J.dm.getItem(m):J.it[m];if(t&&!t.__groupHeader)p(m,!0)}A.preventDefault();return}let Y0=_.get("_navigate");if(Y0)switch(A.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":n=Y0(m,A.key,f);break;default:return}else{let{ud:t,lr:i}=k();switch(A.key){case"ArrowUp":n=m-t;break;case"ArrowDown":n=m+t;break;case"ArrowLeft":if(!i)return;n=m-i;break;case"ArrowRight":if(!i)return;n=m+i;break;case"PageUp":case"PageDown":{let l=J.hc.getSize(J.i2s(Math.max(0,m))),T=Math.max(t,Math.floor((U?J.cw:J.ch)/l)*t),N=_.get("_layoutToDataIndex"),M=_.get("_dataToLayoutIndex");if(N&&M){let O=N(m),u=A.key==="PageUp"?-T:T,r=N(f-1);n=M(Math.max(0,Math.min(r,O+u)))}else n=A.key==="PageUp"?m-T:m+T;break}case"Home":n=0;break;case"End":n=f-1;break;default:return}if(n<0)n=D?f-1:0;else if(n>=f)n=D?0:f-1}if(A.preventDefault(),n=x(n,n>=m?1:-1,f),n!==m)g(n)}),G.push((A)=>{if(J.id)return;let f=A.target.closest("[data-index]");if(!f)return;let m=parseInt(f.dataset.index??"-1",10);if(m<0)return;let n=J.dm?.getItem(m)??J.it[m];if(!n||n.__groupHeader)return;H=!1,S().focus({preventScroll:!0}),p(m,!1)}),P.push(()=>{q.root.removeEventListener("focusin",y),q.root.removeEventListener("focusout",E)})};var Q2=(J,q)=>{let Y,Q;return{getSetSize:()=>{if(Y===void 0)Y=J.get("_getTotal")??null;return Y?Y():q()},getPosInSet:(U)=>{if(Q===void 0)Q=J.get("_layoutToDataIndex")??null;return Q?Q(U)+1:U+1}}};var z2=(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 Y=null,Q=()=>{if(Y!==null)cancelAnimationFrame(Y),Y=null};return{animateScroll:(j,K,D)=>{if(Q(),Math.abs(K-j)<1){J.scrollTo(K);return}let _=performance.now(),Z=(L)=>{let G=L-_,P=Math.min(G/D,1),F=j+(K-j)*z2(P);if(J.scrollTo(F),q(),P<1)Y=requestAnimationFrame(Z);else Y=null};Y=requestAnimationFrame(Z)},cancelScroll:Q}};var $1=(J,q,Y,Q,U,j,K,D,_,Z,L,G,P,F,$,H,B,k,S)=>{let v=(W)=>{{if(!Array.isArray(W)){console.warn("[vlist] setItems() expects an array, got:",typeof W);return}if(W.length>0&&W[0]&&!("id"in W[0]))console.warn('[vlist] Items must have an "id" property. First item:',W[0]);let X=Math.min(W.length,1e4),V=new Set;for(let h=0;h<X;h++){let z=W[h];if(z&&"id"in z){if(V.has(z.id)){console.warn(`[vlist] Duplicate item ID "${z.id}" at index ${h}. updateItem() and removeItem() will only match the first occurrence.`);break}V.add(z.id)}}}M(),_.dataManager.setItems(W,0,W.length)},g=(W)=>{let X=Z&&J.sab(2);if(_.dataManager.setItems(W,J.it.length),X&&J.it.length>0){let V=J.gsp(J.it.length-1,J.hc,J.ch,J.it.length,"end");J.sst(V),J.ls=V,J.rfn()}},p=(W)=>{let X=Z?J.sgt():0,V=Z?J.hc.getTotalSize():0,h=[...J.it];if(_.dataManager.clear(),_.dataManager.setItems([...W,...h],0),Z){let z=J.hc.getTotalSize()-V;if(z>0)J.sst(X+z),J.ls=X+z}},x=null,y=null,E=null,A=!1,f=()=>{if(A)return;A=!0,x=j.get("_updateRenderedItem")??null,y=j.get("_getSelectedIds")??null,E=j.get("_getFocusedIndex")??null},m=(W,X)=>{{let h=J.vtf();if(W<0||W>=h)console.warn(`[vlist] updateItem() index ${W} is out of range (0–${h-1}).`)}if(_.dataManager.updateItem(W,X),f(),!x)return;let V=_.dataManager.getItem(W);if(V){let z=(y?y():J.ss).has(V.id),d=(E?E():J.fi)===W;x(W,V,z,d)}},n=!1,Y0=(W)=>{let X=typeof document<"u"?document.activeElement:null,V=X&&q.items.contains(X)?parseInt(X.dataset?.index??"-1",10):-1;if(!_.dataManager.removeItem(W))return console.warn(`[vlist] removeItem() could not find item with id "${W}".`),!1;if(_.forceRender(),Y.emit("data:change",{type:"remove",id:W}),!n){let z=_.dataManager;if(typeof z.ensureRange==="function")n=!0,queueMicrotask(()=>{n=!1;let d=_.dataManager.getTotal(),{start:J0,end:C}=_.state.viewportState.renderRange;if(d>0&&C>=J0)z.ensureRange(J0,C).catch(()=>{})})}if(V>=0){let z=J.vtf();if(z>0)Q.get(Math.min(V,z-1))?.focus()}return Y.emit("remove:end",{id:W}),!0},t=(W,X)=>{let V=X??0;if(_.dataManager.insertItem(W,V),_.forceRender(),Y.emit("data:change",{type:"insert",id:W.id}),!n){let h=_.dataManager;if(typeof h.ensureRange==="function")n=!0,queueMicrotask(()=>{n=!1;let z=_.dataManager.getTotal(),{start:d,end:J0}=_.state.viewportState.renderRange;if(z>0&&J0>=d)h.ensureRange(d,J0).catch(()=>{})})}},i=(W)=>{return _.dataManager.getItem(W)},l=(W)=>{return _.dataManager.getIndexById?.(W)??-1},T=async(W)=>{if(_.dataManager.reload)await _.dataManager.reload()},N=null,M=()=>{if(N!==null)cancelAnimationFrame(N),N=null},O=(W,X,V,h)=>{if(M(),Math.abs(X-W)<1){J.sst(X),J.ls=X,J.rfn();return}let z=performance.now(),d=(J0)=>{let C=J0-z,e=Math.min(C/V,1),o=h?h():X,R=W+(o-W)*z2(e);if(J.sst(R),J.ls=R,J.rfn(),e<1)N=requestAnimationFrame(d);else N=null};N=requestAnimationFrame(d)},u=(W,X)=>{{let e=J.vtf();if(e>0&&(W<0||W>=e))console.warn(`[vlist] scrollToIndex(${W}) is out of range (0–${e-1}).`)}let{align:V,behavior:h,duration:z}=r0(X),d=J.vtf(),J0=W;if(L&&d>0)J0=(J0%d+d)%d;let C=J.gsp(J0,J.hc,J.ch,d,V);if(h==="smooth"){let e=J0,o=V;O(J.sgt(),C,z,()=>J.gsp(e,J.hc,J.ch,J.vtf(),o))}else M(),J.sst(C)},r=()=>J.sgt(),c=(W,X)=>{return Y.on(W,X)},Q0=(W,X)=>{Y.off(W,X)},b=()=>{if(J.id)return;if(J.id=!0,_.state.isDestroyed=!0,q.items.removeEventListener("click",G),q.items.removeEventListener("dblclick",P),q.items.removeEventListener("contextmenu",F),q.root.removeEventListener("keydown",$),J.st.removeEventListener("scroll",H),B.disconnect(),k(),J.wh)q.viewport.removeEventListener("wheel",J.wh);S();let W=[];for(let X=0;X<D.length;X++)try{D[X]()}catch(V){W.push(V instanceof Error?V:Error(String(V)))}for(let X of K)if(X.destroy)try{X.destroy()}catch(V){W.push(V instanceof Error?V:Error(String(V)))}M();for(let[,X]of Q)X.remove(),U.release(X);Q.clear(),U.clear(),Y.emit("destroy",void 0);for(let X of W)Y.emit("error",{error:X,context:"destroy"});Y.clear(),q.root.remove()},w=(W,X)=>j.has(W)?j.get(W):X,s={get element(){return q.root},get items(){let W=j.get("_getItems");return W?W():J.it},get total(){let W=j.get("_getTotal");return W?W():J.vtf()},setItems:w("setItems",v),appendItems:w("appendItems",g),prependItems:w("prependItems",p),updateItem:w("updateItem",m),insertItem(W,X){let V=j.get("insertItem");return V?V(W,X):t(W,X)},addItem(W,X){return s.insertItem(W,X)},removeItem(W){let X=j.get("removeItem");return X?X(W):Y0(W)},removeItems(W){let X=j.get("removeItems");if(X)return X(W);let V=0;for(let h of W)if(Y0(h))V++;return V},reload:w("reload",T),getItemAt:i,getIndexById:l,scrollToIndex:w("scrollToIndex",u),cancelScroll:w("cancelScroll",M),getScrollPosition:w("getScrollPosition",r),on:c,off:Q0,destroy:b};for(let[W,X]of j){if(W.charCodeAt(0)===95||W==="setItems"||W==="appendItems"||W==="prependItems"||W==="updateItem"||W==="insertItem"||W==="addItem"||W==="removeItem"||W==="removeItems"||W==="reload"||W==="scrollToIndex"||W==="scrollToItem"||W==="cancelScroll"||W==="getScrollPosition")continue;s[W]=X}return s};var KJ=3,NJ="vlist",WJ=150,_J=16000000,BJ=4096,W2="__placeholder_",VJ=(J)=>(typeof screen<"u"?J?screen.width:screen.height:0)||BJ,DJ=0,C2=(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",Y=q?"width":"height",Q=q?"estimatedWidth":"estimatedHeight",U=q?J.item.width:J.item.height,j=q?J.item.estimatedWidth:J.item.estimatedHeight;if(U==null&&j==null)throw Error(`[vlist] item.${Y} or item.${Q} is required${q?" when orientation is 'horizontal'":""}`);if(U!=null){if(typeof U==="number"&&U<=0)throw Error(`[vlist] item.${Y} must be a positive number`);if(typeof U!=="number"&&typeof U!=="function")throw Error(`[vlist] item.${Y} must be a number or a function (index) => number`)}else if(j!=null){if(typeof j!=="number"||j<=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,D=!1,_={use(Z){if(D)throw Error("[vlist] Cannot call .use() after .build()");return K.set(Z.name,Z),_},build(){if(D)throw Error("[vlist] .build() can only be called once");return D=!0,MJ(J,K,q,U,j??null)}};return _};function MJ(J,q,Y,Q,U){let{item:j,items:K,overscan:D=KJ,classPrefix:_=NJ,ariaLabel:Z,accessibility:L,padding:G,reverse:P=!1,scroll:F,accessible:$,interactive:H}=J,B=H??$??!0,k=F,S=k?.wheel??!0,v=k?.wrap??!1,g=L?.announceVisibleRange??!1,p=L?.rangeAnnouncementDebounce??750,x=P,y=`${_}-${DJ++}`,E=q.has("withGrid")||q.has("withMasonry")?0:j.gap??0,A=Q??U,f=Q==null&&U!=null,m=Y?typeof j.height==="number"?j.height:void 0:typeof j.width==="number"?j.width:void 0,n={overscan:D,classPrefix:_,reverse:x,wrap:v,horizontal:Y,ariaIdPrefix:y,interactive:B},Y0=VJ(Y),t=Array.from(q.values()).sort((a,U0)=>(a.priority??50)-(U0.priority??50)),i=new Set(t.map((a)=>a.name)),l=new Set;for(let a of t)if(a.conflicts){for(let U0 of a.conflicts)if(i.has(U0))throw Error(`${a.name} and ${U0} cannot be combined`)}if(l.size>0){for(let a=t.length-1;a>=0;a--)if(l.has(t[a].name))t.splice(a,1)}if(x){if(i.has("withGrid"))throw Error("[vlist] withGrid cannot be used with reverse: true")}let T=D1(J.container),N=M1(T,_,Z,Y,B);if(k?.wheel===!1)if(Y)N.viewport.style.overflowX="hidden";else N.viewport.style.overflow="hidden";if(k?.scrollbar==="none")N.viewport.classList.add(`${_}-viewport--no-scrollbar`);if(k?.gutter==="stable")N.viewport.classList.add(`${_}-viewport--gutter-stable`);let M=i.has("withGrid")||i.has("withMasonry");if(Y&&m!=null&&k?.scrollbar!=="none"&&!M){N.root.style.height=`${m}px`;let a=N.viewport.style.overflowX;N.viewport.style.overflowX="scroll";let U0=N.viewport.offsetHeight-N.viewport.clientHeight;if(N.viewport.style.overflowX=a,U0>0)N.root.style.height=`${m+U0}px`}let O=p0(G),u=e0(O,Y);if(O.top||O.right||O.bottom||O.left)N.content.style.boxSizing="border-box",N.content.style.padding=`${O.top}px ${O.right}px ${O.bottom}px ${O.left}px`;let r=V1(),c=K||[],Q0=typeof A==="function"&&(q.has("withGrid")||q.has("withMasonry")),b=E>0?typeof A==="function"?(a)=>A(a)+E:A+E:A,w=f?U+E:b,s=i0(w,Q0?0:c.length);if(E>0){let a=s.getTotalSize;s.getTotalSize=()=>{let U0=a();return U0>0?U0-E:0}}let W=G1(),X={it:c,hc:s,ch:Math.min(N.viewport.clientHeight,Y0),cw:Math.min(N.viewport.clientWidth,Y0),id:!1,ii:!1,ls:0,vt:_1(0),ss:new Set,fi:-1,la:"",dm:null,sc:null,vtf:null,sgt:Y?()=>N.viewport.scrollLeft:()=>N.viewport.scrollTop,sst:Y?(a)=>{N.viewport.scrollLeft=a}:(a)=>{N.viewport.scrollTop=a},sab:(a=2)=>{let U0=X.hc.getTotalSize();return X.ls+X.ch>=U0-a},sic:!1,rfn:null,ffn:null,gvr:(a,U0,K0,A0,y0)=>{O1(a,U0,K0,A0,y0)},gsp:(a,U0,K0,A0,y0)=>{return E1(a,U0,K0,A0,y0,X.mp)},pef:null,at:j.template,vre:!0,st:N.viewport,wh:null,gcw:()=>X.cw,gch:()=>X.ch,gp:E,mp:u,sif:(a)=>a,i2s:(a)=>a,uic:(a,U0,K0)=>{let A0=o.get(a);if(!A0)return;Z0(A0,U0,K0)},csi:null};X.vtf=()=>X.dm?X.dm.getTotal():X.it.length;let V=null,h=!1,z={start:0,end:0},d={start:0,end:0},J0={start:-1,end:-1},C={viewportState:{scrollPosition:0,containerSize:Y?X.cw:X.ch,totalSize:X.hc.getTotalSize(),actualSize:X.hc.getTotalSize(),isCompressed:!1,compressionRatio:1,visibleRange:{start:0,end:0},renderRange:{start:0,end:0}},lastRenderRange:{start:-1,end:-1},isInitialized:!1,isDestroyed:!1,cachedCompression:null},e=()=>({...C.viewportState,totalItems:X.vtf()}),o=new Map,R=()=>{J2(N.items,o.keys(),(a)=>o.get(a))},I=()=>{let a=X.hc.getTotalSize(),K0=`${(X.sic?a:Math.min(a,_J))+u}px`;if(Y)N.content.style.width=K0;else N.content.style.height=K0},X0={selected:!1,focused:!1},j0=`${_}-item`,_0=`${_}-group-header`,N0=`${_}-item--selected`,B0=`${_}-item--focused`,Z0=(a,U0,K0)=>{a.classList.toggle(N0,U0),a.classList.toggle(B0,K0),a.ariaSelected=U0?"true":"false"},M0=(a,U0,K0,A0)=>{if(K0)a.setAttribute("role","presentation"),a.removeAttribute("aria-selected"),a.removeAttribute("aria-setsize"),a.removeAttribute("aria-posinset"),a.removeAttribute("id");else if(B){if(a.setAttribute("role","option"),A0)a.ariaSelected="false",X.la=String(X2.getSetSize()),a.setAttribute("aria-setsize",X.la);a.id=`${y}-item-${U0}`,a.setAttribute("aria-posinset",String(X2.getPosInSet(U0)))}else{if(a.setAttribute("role","listitem"),a.removeAttribute("aria-selected"),A0)X.la=String(X2.getSetSize()),a.setAttribute("aria-setsize",X.la);a.setAttribute("aria-posinset",String(X2.getPosInSet(U0)))}},E0=j.striped,w0=!!E0,L0=E0==="data"||E0==="even"||E0==="odd",b0=`${_}-item--odd`,R0=`${_}-item--placeholder`,D0=`${_}-item--replaced`,$0=`${_}--scrolling`,k0=[],z0=[],h0=[],I0=[],f0=[],a0=[],D2=[],o0=[],g0=[],q0=new Map,W0=(a,U0,K0)=>{if(String(K0).startsWith(W2))return;let A0=W2+U0;if(a.has(A0))a.delete(A0),a.add(K0)},V0={scrollPosition:0,direction:"down"},G0={velocity:0,reliable:!1},O0={range:{start:0,end:0}},F0=null,C0=null,T0=!1,u0=!1,d0=()=>{if(T0)return;T0=!0,F0=q0.get("_getSelectedIds")??null,C0=q0.get("_getFocusedIndex")??null},X2=Q2(q0,X.vtf),M2=(a,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")a.innerHTML=U0;else a.replaceChildren(U0)},i1=(a,U0)=>{let K0=Math.round(X.hc.getOffset(U0));if(Y)a.style.transform=`translateX(${K0}px)`;else a.style.transform=`translateY(${K0}px)`};X.pef=i1;let t1=(a,U0)=>{let K0=W.acquire(),A0=!!U0.__groupHeader;K0.className=A0?_0:j0;let y0=!X.csi||X.csi(a);if(Y){if(y0)K0.style.width=`${X.hc.getSize(a)-E}px`;else K0.style.width="";if(m!=null)K0.style.height=`${m}px`}else if(y0)K0.style.height=`${X.hc.getSize(a)-E}px`;else K0.style.height="";if(K0.dataset.index=String(a),K0.dataset.id=String(U0.id),M0(K0,a,A0,!0),String(U0.id).startsWith(W2))K0.classList.add(R0);if(w0)if(L0){let P0=X.sif(a);if(P0<0)K0.classList.remove(b0);else K0.classList.toggle(b0,(P0&1)===1)}else K0.classList.toggle(b0,(a&1)===1);try{M2(K0,X.at(U0,a,X0),a)}catch(P0){let c0=P0 instanceof Error?P0:Error(String(P0));r.emit("error",{error:c0,context:`tpl(${a},${U0.id})`,viewport:e()}),K0.textContent=""}return X.pef(K0,a),K0},G2=NaN,e1=()=>{if(X.id)return;let a=Y?X.cw:X.ch;if(a<=0)return;d0();let U0=F0?F0():X.ss,K0=C0?C0():X.fi,A0=X.vtf();X.gvr(X.ls,a,X.hc,A0,z),A1(z,D,A0,d);let y0=d.end-d.start+1,m0=X.hc.getSize(0)||1,P0=Math.ceil(Y0/m0)+D*2;if(y0>P0){if(!u0)u0=!0,console.warn(`[vlist] Render range capped: ${y0} items → ${P0}. Container is ${a}px tall (item: ${m0}px). This usually means the container has no CSS height constraint.`);d.end=d.start+P0-1}if(d.start===J0.start&&d.end===J0.end){if(X.sic&&X.ls!==G2){G2=X.ls;for(let[H0,v0]of o)X.pef(v0,H0)}C.viewportState.scrollPosition=X.ls,C.viewportState.containerSize=a,C.viewportState.visibleRange.start=z.start,C.viewportState.visibleRange.end=z.end,C.viewportState.renderRange.start=d.start,C.viewportState.renderRange.end=d.end;return}let c0=String(X2.getSetSize()),jJ=c0!==X.la;X.la=c0;for(let[H0,v0]of o)if(H0<d.start||H0>d.end)v0.remove(),W.release(v0),o.delete(H0);let U1=document.createDocumentFragment(),Z1=!1,Z2=o0.length>0?[]:null;for(let H0=d.start;H0<=d.end;H0++){let v0=X.dm?X.dm.getItem(H0):X.it[H0];if(v0===void 0)continue;let S0=o.get(H0);if(S0){let n0=S0.dataset.id,t0=String(v0.id);if(n0!==t0){let YJ=n0?.startsWith(W2),y2=t0.startsWith(W2),K1=!!v0.__groupHeader;S0.className=K1?_0:j0,M0(S0,H0,K1,!1);try{M2(S0,X.at(v0,H0,X0),H0)}catch(w2){let XJ=w2 instanceof Error?w2:Error(String(w2));r.emit("error",{error:XJ,context:`tpl(${H0},${v0.id})`,viewport:e()}),S0.textContent=""}S0.dataset.id=t0;let N1=!X.csi||X.csi(H0);if(Y)S0.style.width=N1?`${X.hc.getSize(H0)-E}px`:"";else S0.style.height=N1?`${X.hc.getSize(H0)-E}px`:"";if(y2)S0.classList.add(R0);else S0.classList.remove(R0);if(YJ&&!y2)S0.classList.add(D0),setTimeout(()=>{S0.classList.remove(D0)},300);if(X.dm&&!y2)W0(U0,H0,v0.id)}X.pef(S0,H0);let E2=U0.has(v0.id);if(Z0(S0,E2,H0===K0),jJ&&!v0.__groupHeader)S0.setAttribute("aria-setsize",X.la)}else{let n0=t1(H0,v0);if(Z2)Z2.push({index:H0,element:n0});if(X.dm)W0(U0,H0,v0.id);let t0=U0.has(v0.id),E2=H0===K0;if(t0||E2)Z0(n0,t0,E2);U1.appendChild(n0),o.set(H0,n0),Z1=!0}}if(Z1)N.items.appendChild(U1);if(Z2&&Z2.length>0)for(let H0=0;H0<o0.length;H0++)o0[H0](Z2);J0.start=d.start,J0.end=d.end,G2=X.ls,C.lastRenderRange.start=d.start,C.lastRenderRange.end=d.end,C.viewportState.scrollPosition=X.ls,C.viewportState.visibleRange.start=z.start,C.viewportState.visibleRange.end=z.end,C.viewportState.renderRange.start=d.start,C.viewportState.renderRange.end=d.end,O0.range.start=d.start,O0.range.end=d.end,r.emit("range:change",O0)},JJ=()=>{J0.start=-1,J0.end=-1,G2=NaN,X.rfn()};X.rfn=e1,X.ffn=JJ;let QJ=()=>{N.root.classList.remove($0),h=!1,X.vt.velocity=0,X.vt.sampleCount=0,G0.velocity=0,G0.reliable=!1,r.emit("velocity:change",G0),R();for(let a=0;a<z0.length;a++)z0[a]();r.emit("scroll:idle",{scrollPosition:X.ls})},qJ=()=>{if(V)clearTimeout(V);V=setTimeout(QJ,k?.idleTimeout??WJ)},U2=()=>{if(X.id)return;let a=X.sgt();if(a===X.ls&&h)return;let U0=a>=X.ls?"down":"up";if(X.vt=B1(X.vt,a),!N.root.classList.contains($0))N.root.classList.add($0);h=!0,X.ls=a,X.rfn(),V0.scrollPosition=a,V0.direction=U0,r.emit("scroll",V0),G0.velocity=X.vt.velocity,G0.reliable=X.vt.sampleCount>=W1,r.emit("velocity:change",G0);for(let K0=0;K0<k0.length;K0++)k0[K0](a,U0);qJ()},O2=null;if(X.st.addEventListener("scroll",U2,{passive:!0}),S){let a=N.viewport;if(Y)O2=(U0)=>{if(C.viewportState.isCompressed)return;if(Math.abs(U0.deltaX)>Math.abs(U0.deltaY))return;let K0=X.sgt(),A0=a.scrollWidth-a.clientWidth,y0=Math.max(0,Math.min(K0+U0.deltaY,A0));if(Math.abs(y0-K0)<1)return;U0.preventDefault(),X.sst(y0),U2()};else O2=(U0)=>{if(C.viewportState.isCompressed)return;let K0=a.scrollWidth>a.clientWidth;if(K0&&Math.abs(U0.deltaX)>Math.abs(U0.deltaY))return;if(K0&&U0.deltaX!==0)U0.preventDefault(),a.scrollLeft+=U0.deltaX;let A0=X.sgt(),y0=a.scrollHeight-a.clientHeight,m0=Math.max(0,Math.min(A0+U0.deltaY,y0));if(Math.abs(m0-A0)<1)return;U0.preventDefault(),X.sst(m0),U2()};X.wh=O2,a.addEventListener("wheel",O2,{passive:!1})}let b2=(a)=>{let U0=a.target.closest("[data-index]");if(!U0)return null;let K0=parseInt(U0.dataset.index??"-1",10);if(K0<0)return null;let A0=X.dm?.getItem(K0)??X.it[K0];if(!A0||A0.__groupHeader)return null;return{item:A0,index:K0}},J1=(a)=>{for(let K0=0;K0<h0.length;K0++)h0[K0](a);let U0=b2(a);if(U0)r.emit("item:click",{item:U0.item,index:U0.index,event:a})},Q1=(a)=>{let U0=b2(a);if(U0)r.emit("item:dblclick",{item:U0.item,index:U0.index,event:a})},q1=(a)=>{for(let K0=0;K0<I0.length;K0++)I0[K0](a);let U0=b2(a);if(U0)r.emit("item:contextmenu",{item:U0.item,index:U0.index,event:a})},j1=(a)=>{for(let U0=0;U0<f0.length;U0++)f0[U0](a)};if(N.items.addEventListener("click",J1),N.items.addEventListener("dblclick",Q1),N.items.addEventListener("contextmenu",q1),N.root.addEventListener("keydown",j1),B&&g){let a=null,U0=(K0)=>{if(a)clearTimeout(a);a=setTimeout(()=>{if(a=null,X.id)return;let A0=X.vtf();N.liveRegion.textContent=`Showing items ${K0.range.start+1} to ${Math.min(K0.range.end+1,A0)} of ${A0}`},p)};r.on("range:change",U0),g0.push(()=>{if(a)clearTimeout(a);r.off("range:change",U0)})}let R2=new ResizeObserver((a)=>{if(X.id)return;for(let U0 of a){let K0=U0.contentRect.height,A0=U0.contentRect.width,y0=Y?A0:K0,m0=Y?X.cw:X.ch;if(y0>Y0){if(!u0)u0=!0,console.warn(`[vlist] Viewport grew to ${Math.round(y0)}px (screen: ${Y0}px). Re-applying size constraint. Check that the vlist container has a CSS height/width constraint.`);let P0=Y?"width":"height";N.root.style[P0]="100%",N.viewport.style[P0]="100%";return}if(X.cw=A0,X.ch=K0,Math.abs(y0-m0)>1){if(C.viewportState.containerSize=y0,X.ii){let P0=C.cachedCompression;if(P0&&P0.state.isCompressed){let c0=`${P0.state.virtualSize+u}px`;if(Y)N.content.style.width=c0;else N.content.style.height=c0}else I();X.rfn(),r.emit("resize",{height:K0,width:A0})}}if(X.ii)for(let P0=0;P0<a0.length;P0++)a0[P0](A0,K0)}});if(X.vre)R2.observe(N.viewport);let P2={dom:N,emitter:r,resolvedConfig:n,rawConfig:J,rendered:o,pool:W,itemState:X0,sharedState:C,renderRange:d,isHorizontal:Y,classPrefix:_,contentSizeHandlers:D2,idleHandlers:z0,afterScroll:k0,clickHandlers:h0,contextMenuHandlers:I0,keydownHandlers:f0,resizeHandlers:a0,destroyHandlers:g0,methods:q0,onScrollFrame:U2,resizeObserver:R2,afterRenderBatch:o0,applyTemplate:M2,updateContentSize:I},A2=L1(X,P2);X.dm=F1(X,P2,A2),X.sc=T1(X,P2),q0.set("_updateRenderedItem",(a,U0,K0,A0)=>{let y0=o.get(a);if(!y0)return;let m0={selected:K0,focused:A0};try{let P0=X.at(U0,a,m0);M2(y0,P0,a)}catch(P0){let c0=P0 instanceof Error?P0:Error(String(P0));r.emit("error",{error:c0,context:`tpl(${a},${U0.id})`,viewport:e()})}y0.dataset.id=String(U0.id),Z0(y0,K0,A0)});let Y1=new WeakSet;q0.set("_setSizeCache",(a)=>{if(X.hc=a,X.gp>0&&!Y1.has(a)){Y1.add(a);let U0=X.hc.getTotalSize,K0=X.gp;X.hc.getTotalSize=()=>{let A0=U0();return A0>0?A0-K0:0}}}),q0.set("_setConstrainSize",(a)=>{X.csi=a});let X1=new Map;for(let a of t)if(a.methods)for(let U0 of a.methods){let K0=X1.get(U0);if(K0)throw Error(`[vlist] Method "${U0}" is registered by both "${K0}" and "${a.name}"`);X1.set(U0,a.name)}for(let a of t)try{a.setup(A2)}catch(U0){let K0=U0 instanceof Error?U0:Error(String(U0));console.error(`[vlist] Feature "${a.name}" setup failed:`,K0),r.emit("error",{error:K0,context:a.name,viewport:e()})}if(f&&!q.has("withAutoSize"))console.warn("[vlist] estimatedHeight/estimatedWidth requires .use(withAutoSize()). Items will use the estimated size as a fixed size.");if(B&&!q0.has("_getFocusedIndex")){let a=Y?O.left:O.top,U0=Y?O.right:O.bottom;H1(X,N,_,y,Y,a,U0,v,q0,o,f0,h0,g0,!!J.focusOnClick)}if(X.ii=!0,A2.state.isInitialized=!0,I(),X.rfn(),x&&X.it.length>0){let a=X.gsp(X.it.length-1,X.hc,X.ch,X.it.length,"end");X.sst(a),X.ls=a,X.rfn()}return $1(X,N,r,o,W,q0,t,g0,A2,x,v,J1,Q1,q1,j1,U2,R2,()=>{},()=>{if(V)clearTimeout(V)})}var v2=200,S2=50;var k1=50,b1=12,R1=2,j2=16000000;var P1="x",y1=20,f2="_isPlaceholder",l0="__placeholder_";var w1=(J,q,Y)=>{let Q=q.getTotalSize(),U=Y===!0||Q>j2,j=Q>j2?j2:Q,K=Q>0?j/Q:1;return{isCompressed:U,actualSize:Q,virtualSize:j,ratio:K}};var H2=(J,q,Y,Q,U,j,K)=>{if(!j.isCompressed||Q===0)return Y.getOffset(J);if(j.ratio===1)return Y.getOffset(J)-q;let{virtualSize:D}=j,_=q/D,Z=Y.getTotalSize(),L=_*Z;return Y.getOffset(J)-L};var GJ=(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,Y={},Q="vlist",U=!1,j)=>{let{autoHide:K=!0,autoHideDelay:D=1000,minThumbSize:_=15,showOnHover:Z=!0,showOnViewportEnter:L=!0,clickBehavior:G="scroll"}=Y,P=G==="page"?"scroll":G,F=j??J,$=GJ(Y.padding),H=U?$.left:$.top,B=U?$.right:$.bottom,k=U?$.bottom:$.right,S=Y.hoverZoneWidth??k+16,v=0,g=0,p=0,x=0,y=!1,E=!1,A=0,f=0,m=0,n=null,Y0=!1,t=null,i=null,l=0,T=0,N=null,M=null,O=null,u=U?"width":"height",r=U?"translateX":"translateY",c=U?(D0)=>D0.clientX:(D0)=>D0.clientY,Q0=U?"left":"top",b=document.createElement("div"),w=document.createElement("div"),s=document.createElement("div"),W=U?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",X=()=>{if(F===J)return;let D0=J.offsetTop;b.style[U?"left":"top"]=D0?`calc(var(${W}) + ${D0}px)`:`var(${W})`,s.style[U?"left":"top"]=`${D0}px`},V=()=>{if(b.className=`${Q}-scrollbar`,w.className=`${Q}-scrollbar-thumb`,U)b.classList.add(`${Q}-scrollbar--horizontal`);if(Y.padding!==void 0)F.style.setProperty("--vlist-custom-scrollbar-padding-top",`${$.top}px`),F.style.setProperty("--vlist-custom-scrollbar-padding-right",`${$.right}px`),F.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${$.bottom}px`),F.style.setProperty("--vlist-custom-scrollbar-padding-left",`${$.left}px`);if(Y.minThumbSize!==void 0)b.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${_}px`);if(b.appendChild(w),F.appendChild(b),s.className=`${Q}-scrollbar-hover`,U)s.classList.add(`${Q}-scrollbar-hover--horizontal`),s.style.height=`${S}px`;else s.style.width=`${S}px`;if(F.appendChild(s),F!==J)X()},h=()=>{if(n)clearTimeout(n),n=null},z=()=>{if(!K)return;h(),n=setTimeout(J0,D)},d=()=>{if(v<=g)return;if(h(),!Y0)b.classList.add(`${Q}-scrollbar--visible`),Y0=!0;if(K&&!y&&!E)z()},J0=()=>{if(y||E)return;b.classList.remove(`${Q}-scrollbar--visible`),Y0=!1},C=(D0,$0)=>{if(v=D0,g=$0,X(),v<=g){b.style.display="none",J0();return}b.style.display="";let k0=Math.max(0,g-H-B),z0=g/v;if(p=Math.max(_,z0*k0),w.style[u]=`${p}px`,x=k0-p,e(m),!K)d()},e=(D0)=>{if(m=D0,v<=g||x<=0)return;let $0=v-g,k0=Math.min(1,Math.max(0,D0/$0));w.style.transform=`${r}(${k0*x}px)`},o=(D0)=>{if(D0.target===w||P!=="jump"||x<=0)return;let $0=v-g,k0=b.getBoundingClientRect(),z0=c(D0)-k0[Q0],h0=Math.max(0,Math.min(z0-p/2,x));q(h0/x*$0),d()},R=()=>{if(N!==null)clearTimeout(N),N=null;if(M!==null)cancelAnimationFrame(M),M=null;O=null},I=(D0)=>{let $0=x>0?T/D0*x:0;if(l<$0)return-1;if(l>=$0+p)return 1;return 0},X0=()=>{let D0=v-g,$0=I(D0);if($0===0){R();return}if($0===-1){if(T<=0){R();return}let k0=Math.max(0,T-g);T=k0,q(k0)}else{if(T>=D0){R();return}let k0=Math.min(D0,T+g);T=k0,q(k0)}d()},j0=(D0)=>{if(O===null){O=D0,M=requestAnimationFrame(j0);return}let $0=v-g,k0=D0-O;O=D0;let z0=I($0);if(z0===0){R();return}let h0=12*g/1000,I0=Math.min(h0*k0,g);if(z0===-1){if(T<=0){R();return}let f0=Math.max(0,T-I0);T=f0,q(f0)}else{if(T>=$0){R();return}let f0=Math.min($0,T+I0);T=f0,q(f0)}h(),M=requestAnimationFrame(j0)},_0=()=>{R(),z(),document.removeEventListener("mouseup",_0)},N0=(D0)=>{if(D0.target===w||P!=="scroll")return;D0.preventDefault();let $0=b.getBoundingClientRect();l=c(D0)-$0[Q0],T=m,X0(),N=setTimeout(()=>{M=requestAnimationFrame(j0)},350),document.addEventListener("mouseup",_0)},B0=(D0)=>{D0.preventDefault(),D0.stopPropagation(),y=!0,A=c(D0),f=m,h(),b.classList.add(`${Q}-scrollbar--dragging`),document.addEventListener("mousemove",Z0),document.addEventListener("mouseup",M0)},Z0=(D0)=>{if(!y)return;let $0=c(D0)-A,k0=x>0?$0/x:0,z0=v-g,h0=k0*z0,I0=Math.max(0,Math.min(f+h0,z0));if(w.style.transform=`${r}(${I0/z0*x}px)`,i=I0,t===null)t=requestAnimationFrame(()=>{if(i!==null)q(i);t=null})},M0=()=>{if(y=!1,t!==null)cancelAnimationFrame(t),t=null;if(i!==null)q(i),i=null;if(b.classList.remove(`${Q}-scrollbar--dragging`),K&&!E)z();document.removeEventListener("mousemove",Z0),document.removeEventListener("mouseup",M0)},E0=()=>{if(L)d()},w0=()=>{if(!y){if(E=!1,K)z()}},L0=()=>{E=!0,h(),d()},b0=()=>{if(E=!1,!y&&K)z()},R0=()=>{if(h(),R(),t!==null)cancelAnimationFrame(t),t=null;b.removeEventListener("click",o),b.removeEventListener("mousedown",N0),b.removeEventListener("mouseenter",L0),document.removeEventListener("mouseup",_0),b.removeEventListener("mouseleave",b0),w.removeEventListener("mousedown",B0),J.removeEventListener("mouseenter",E0),J.removeEventListener("mouseleave",w0),document.removeEventListener("mousemove",Z0),document.removeEventListener("mouseup",M0),s.removeEventListener("click",o),s.removeEventListener("mousedown",N0),s.removeEventListener("mouseenter",L0),s.removeEventListener("mouseleave",b0),s.remove(),F.style.removeProperty("--vlist-custom-scrollbar-padding-top"),F.style.removeProperty("--vlist-custom-scrollbar-padding-right"),F.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),F.style.removeProperty("--vlist-custom-scrollbar-padding-left"),b.remove()};if(V(),b.addEventListener("click",o),b.addEventListener("mousedown",N0),b.addEventListener("mouseenter",L0),b.addEventListener("mouseleave",b0),w.addEventListener("mousedown",B0),J.addEventListener("mouseenter",E0),J.addEventListener("mouseleave",w0),s.addEventListener("click",o),s.addEventListener("mousedown",N0),Z)s.addEventListener("mouseenter",L0),s.addEventListener("mouseleave",b0);return{show:d,hide:J0,updateBounds:C,updatePosition:e,isVisible:()=>Y0,destroy:R0}};var h2=(J)=>{let q=null;return{name:"withScrollbar",priority:15,setup(Y){let{dom:Q,config:U}=Y,{classPrefix:j,horizontal:K}=U;if(Y.methods.has("_hasScrollbar"))Q.root.querySelector(`.${j}-scrollbar`)?.remove(),Q.root.querySelector(`.${j}-scrollbar-hover`)?.remove();Y.methods.set("_hasScrollbar",()=>!0),q=_2(Q.viewport,(Z)=>Y.scrollController.scrollTo(Z),J,j,K,Q.root);let D=q,_=()=>{D.updateBounds(Y.state.viewportState.totalSize||Y.getCachedCompression().virtualSize,Y.state.viewportState.containerSize)};if(Q.viewport.classList.add(`${j}-viewport--custom-scrollbar`),J?.gutter)Q.viewport.classList.add(`${j}-viewport--gutter`);_(),Y.afterScroll.push((Z,L)=>{D.updatePosition(Z),D.show()}),Y.resizeHandlers.push((Z,L)=>{_()}),Y.contentSizeHandlers.push(()=>{_()}),Y.destroyHandlers.push(()=>{D.destroy()})},destroy(){if(q)q.destroy(),q=null}}};var OJ=0.65,AJ=0.5,z1=1.7,EJ=0.95,LJ=0.1,FJ=5,TJ=100,C1=(J,q,Y,Q=0)=>{if(J<=0)return 0;return Math.max(0,(q-Q)*(1-Y)+Q)},I2=(J)=>{let q=J?.force??!1,Y=null,Q=0,U=!1,j=0,K=0,D=null,_=0,Z=0,L=null,G=[];return{name:"withScale",priority:20,setup(P){let{dom:F,config:$}=P,{classPrefix:H,horizontal:B}=$,{root:k,viewport:S}=F,v=P.state.viewportState,g=B?"scrollLeft":"scrollTop",p=B?"overflowX":"overflow",x=p0(P.rawConfig.padding),y=B?x.left+x.right:x.top+x.bottom,E=()=>{let T=P.getVirtualTotal(),N=w1(T,P.sizeCache,q);if(N.isCompressed&&!U){U=!0,P.scrollController.enableCompression(N);let O=S[g];if(S.style[p]="hidden",S[g]=0,O>0)Q=O,K=O;j=C1(N.virtualSize,v.containerSize,N.ratio,y),P.updateContentSize(N.virtualSize+j),P.setScrollFns(()=>Q,(W)=>{if(Q=W,K=W,D!==null)cancelAnimationFrame(D),D=null});let u=()=>{let W=K-Q;if(P.getVirtualTotal()===0){Q=0,K=0,D=null,P.triggerScrollFrame();return}if(Math.abs(W)<AJ){let X=P.getCachedCompression(),V=Math.max(0,X.virtualSize+j-v.containerSize);Q=Math.max(0,Math.min(K,V)),K=Q,D=null}else{Q+=W*OJ;let V=P.getCachedCompression().virtualSize+j-v.containerSize;Q=Math.max(0,Math.min(Q,V)),D=requestAnimationFrame(u)}P.triggerScrollFrame()},r=(W)=>{W.preventDefault();let X=P.getCachedCompression(),V=X.virtualSize+j-v.containerSize;if(K=Math.max(0,Math.min(K+W.deltaY*X.ratio*z1,V)),D===null)D=requestAnimationFrame(u)};S.addEventListener("wheel",r,{passive:!1});let c=()=>{if(L!==null)cancelAnimationFrame(L),L=null},Q0=(W)=>{if(c(),D!==null)cancelAnimationFrame(D),D=null;let X=W.touches[0];if(!X)return;let V=B?X.clientX:X.clientY;_=V,Z=Q,G=[{time:performance.now(),y:V}]},b=(W)=>{W.preventDefault();let X=W.touches[0];if(!X)return;let V=B?X.clientX:X.clientY,h=performance.now();if(G.push({time:h,y:V}),G.length>FJ)G.shift();let z=_-V,d=P.getCachedCompression(),J0=d.virtualSize+j-v.containerSize,C=Math.max(0,Math.min(Z+z*d.ratio*z1,J0));Q=C,K=C,P.triggerScrollFrame()},w=(W)=>{let X=performance.now(),V=G.filter((J0)=>X-J0.time<TJ),h=0;if(V.length>=2){let J0=V[0],C=V[V.length-1],e=C.time-J0.time;if(e>0)h=(J0.y-C.y)/e}if(G=[],Math.abs(h)<LJ)return;let z=h*16,d=()=>{if(z*=EJ,Math.abs(z)<0.5){L=null;return}let C=P.getCachedCompression().virtualSize+j-v.containerSize,e=Q+z;if(e=Math.max(0,Math.min(e,C)),e<=0&&z<0||e>=C&&z>0){Q=e,K=e,P.triggerScrollFrame(),L=null;return}Q=e,K=e,P.triggerScrollFrame(),L=requestAnimationFrame(d)};L=requestAnimationFrame(d)};S.addEventListener("touchstart",Q0,{passive:!0}),S.addEventListener("touchmove",b,{passive:!1}),S.addEventListener("touchend",w,{passive:!0}),S.addEventListener("touchcancel",w,{passive:!0}),P.destroyHandlers.push(()=>{S.removeEventListener("wheel",r),S.removeEventListener("touchstart",Q0),S.removeEventListener("touchmove",b),S.removeEventListener("touchend",w),S.removeEventListener("touchcancel",w)});let s=()=>{if(S[g]!==0)S[g]=0};if(S.addEventListener("scroll",s,{passive:!0}),P.destroyHandlers.push(()=>{S.removeEventListener("scroll",s)}),!P.methods.has("_hasScrollbar")){if(P.methods.set("_hasScrollbar",()=>!0),Y=_2(S,(X)=>P.scrollController.scrollTo(X),{},H,B,k),!S.classList.contains(`${H}-viewport--custom-scrollbar`))S.classList.add(`${H}-viewport--custom-scrollbar`);Y.updateBounds(N.virtualSize,v.containerSize);let W=Y;P.afterScroll.push((X,V)=>{if(W)W.updatePosition(X),W.show()}),P.resizeHandlers.push((X,V)=>{if(W){let h=P.getCachedCompression();W.updateBounds(h.virtualSize,v.containerSize)}})}}else if(!N.isCompressed&&U){if(U=!1,D!==null)cancelAnimationFrame(D),D=null;if(L!==null)cancelAnimationFrame(L),L=null;if(Q=0,K=0,G=[],P.setScrollFns(()=>S[g],(O)=>{S[g]=O}),S[g]=0,P.scrollController.disableCompression(),S.style[p]="auto",Y)Y.destroy(),Y=null;j=0,P.updateContentSize(N.actualSize)}else if(N.isCompressed)P.scrollController.updateConfig({compression:N}),j=C1(N.virtualSize,v.containerSize,N.ratio,y),P.updateContentSize(N.virtualSize+j);if(Y)Y.updateBounds(N.virtualSize+j,v.containerSize);let M=v;if(M.isCompressed=N.isCompressed,M.compressionRatio=N.ratio,M.totalSize=N.virtualSize+j,M.actualSize=N.actualSize,P.state.cachedCompression={state:N,totalItems:T},U){let O=Math.max(0,N.virtualSize+j-v.containerSize),u=Q;if(u>O)u=O;else if(u<0)u=0;if(u!==Q){if(D!==null)cancelAnimationFrame(D),D=null;if(L!==null)cancelAnimationFrame(L),L=null;P.scrollController.scrollTo(u)}}for(let O=0;O<P.contentSizeHandlers.length;O++)P.contentSizeHandlers[O]()};P.updateCompressionMode=E;let A=P.getCachedCompression.bind(P);P.getCachedCompression=()=>{if(P.state.cachedCompression)return P.state.cachedCompression.state;return A()},P.setVisibleRangeFn((T,N,M,O,u)=>{if(m=null,n=null,O===0||N===0){u.start=0,u.end=-1;return}let r=P.getCachedCompression();if(!r.isCompressed||r.ratio===1){let b=M.indexAtOffset(T),w=M.indexAtOffset(T+N);if(w<O-1)w++;u.start=Math.max(0,b),u.end=Math.min(O-1,Math.max(0,w));return}let c=M.indexAtOffset(T/r.virtualSize*r.actualSize),Q0;if(!M.isVariable())Q0=Math.ceil(N/M.getSize(0));else{Q0=0;let b=0,w=c;while(w<O&&b<N)b+=M.getSize(w),Q0++,w++;if(Q0<1)Q0=1}u.start=Math.max(0,c),u.end=Math.min(O-1,Math.max(0,c+Q0))}),P.setScrollToPosFn((T,N,M,O,u)=>{if(O===0)return 0;let r=P.getCachedCompression(),c=N.getSize(T),Q0;if(r.isCompressed&&r.ratio!==1){if(Q0=T/O*r.virtualSize,u==="center")Q0-=(M-c)/2*r.ratio;else if(u==="end")Q0-=(M-c)*r.ratio;return Math.max(0,Q0)}if(Q0=N.getOffset(T),u==="center")Q0-=(M-c)/2;else if(u==="end")Q0-=M-c;return Math.max(0,Math.min(Q0,r.virtualSize-M))});let f=NaN,m=null,n=null,Y0=B?"translateX":"translateY";P.setPositionElementFn((T,N)=>{let M=P.scrollController.getScrollTop(),O=P.getCachedCompression();if(M!==f)f=M,m=null,n=null;if(O.isCompressed){if(m===null||N<n){n=N;let r=P.sizeCache.getOffset(N);m=Math.round(O.ratio===1?r-M:r-M/O.virtualSize*O.actualSize)}let u=m+P.sizeCache.getOffset(N)-P.sizeCache.getOffset(n);T.style.transform=`${Y0}(${u}px)`}else{let u=Math.round(P.sizeCache.getOffset(N));T.style.transform=`${Y0}(${u}px)`}});let t=B?x.left:x.top,i=B?x.right:x.bottom,l=P.getItemToScrollIndexFn();P.methods.set("_scrollItemIntoView",(T)=>{let N=P.getCachedCompression(),M=v.containerSize,O=v.scrollPosition,u=P.getVirtualTotal(),{visibleRange:r}=v,c=l(T),Q0=T2(c,P.sizeCache,O,M,t,i,N,u,r);if(Q0!==O)P.scrollController.scrollTo(Q0)}),E(),P.destroyHandlers.push(()=>{if(Y)Y.destroy(),Y=null;if(D!==null)cancelAnimationFrame(D),D=null;if(L!==null)cancelAnimationFrame(L),L=null})}}};var v1=(J={})=>{let{chunkSize:q=100,maxCachedItems:Y=5000,evictionBuffer:Q=200,onEvict:U}=J,j=new Map,K=0,D=0,_=(T)=>{let N=j.get(T);if(!N)N={items:Array(q),count:0,lastAccess:Date.now()},j.set(T,N);else N.lastAccess=Date.now();return N},Z=(T)=>{return Math.floor(T/q)},L=(T)=>{return T%q},G=()=>K,P=(T)=>{K=T},F=(T)=>{if(T<0||T>=K)return;let N=Z(T),M=j.get(N);if(!M)return;return M.items[L(T)]},$=(T)=>{if(T<0||T>=K)return!1;let N=Z(T),M=j.get(N);if(!M)return!1;return M.items[L(T)]!==void 0},H=(T,N)=>{let M=Z(T),O=_(M),u=L(T),r=O.items[u]===void 0;if(O.items[u]=N,r)O.count++,D++;if(T>=K)K=T+1},B=(T,N)=>{for(let M=0;M<N.length;M++){let O=N[M];if(O!==void 0)H(T+M,O)}},k=(T,N)=>{if(T<0||T>K)return;let M=Z(T),O=Array.from(j.keys()).filter((b)=>b>=M).sort((b,w)=>b-w),u=[];for(let b of O){let w=j.get(b),s=b*q;for(let W=0;W<q;W++){if(w.items[W]===void 0)continue;let X=s+W;if(X<T)continue;u.push({oldIndex:X,item:w.items[W]})}}for(let{oldIndex:b}of u){let w=Z(b),s=j.get(w);if(!s)continue;let W=L(b);if(s.items[W]!==void 0){if(s.items[W]=void 0,s.count--,D--,s.count===0)j.delete(w)}}K++;for(let{oldIndex:b,item:w}of u){let s=b+1,W=Z(s),X=_(W),V=L(s);X.items[V]=w,X.count++,D++}let r=Z(T),c=_(r),Q0=L(T);c.items[Q0]=N,c.count++,D++},S=(T)=>{if(T<0||T>=K)return!1;let N=Z(T),M=j.get(N),O=L(T);if(!(M!==void 0&&M.items[O]!==void 0))return!1;let r=N,c=Array.from(j.keys()).filter((b)=>b>=r).sort((b,w)=>b-w),Q0=[];for(let b of c){let w=j.get(b),s=b*q;for(let W=0;W<q;W++){if(w.items[W]===void 0)continue;let X=s+W;if(X<=T)continue;Q0.push({oldIndex:X,item:w.items[W]})}}if(M.items[O]=void 0,M.count--,D--,M.count===0)j.delete(N);for(let{oldIndex:b}of Q0){let w=Z(b),s=j.get(w);if(!s)continue;let W=L(b);if(s.items[W]!==void 0){if(s.items[W]=void 0,s.count--,D--,s.count===0)j.delete(w)}}for(let{oldIndex:b,item:w}of Q0){let s=b-1,W=Z(s),X=_(W),V=L(s);X.items[V]=w,X.count++,D++}return K--,!0},v=(T,N)=>{let M=[];for(let O=T;O<=N&&O<K;O++)M.push(F(O));return M},g=(T,N)=>{for(let M=T;M<=N&&M<K;M++)if(!$(M))return!1;return!0},p=()=>{let T=[],N=null,M=Array.from(j.keys()).sort((O,u)=>O-u);for(let O of M){let u=j.get(O);if(!u)continue;let r=O*q;for(let c=0;c<q;c++){let Q0=r+c;if(Q0>=K)break;if(u.items[c]!==void 0)if(N===null)N={start:Q0,end:Q0};else if(Q0===N.end+1)N.end=Q0;else T.push(N),N={start:Q0,end:Q0};else if(N!==null)T.push(N),N=null}}if(N!==null)T.push(N);return T},x=(T,N)=>{let M=[],O=null;for(let u=T;u<=N&&u<K;u++)if(!$(u))if(O===null)O={start:u,end:u};else O.end=u;else if(O!==null)M.push(O),O=null;if(O!==null)M.push(O);return M},y=(T)=>{return j.has(T)},E=(T)=>{let N=j.get(T);if(!N)return!1;let M=T*q,O=Math.min(q,K-M);return N.count>=O},A=(T)=>{let N=j.get(T);if(N)N.lastAccess=Date.now()},f=(T,N)=>{if(T>N||j.size===0)return;let M=Date.now(),O=Z(Math.max(0,T)),u=Z(Math.min(K-1,N));for(let r=O;r<=u;r++){let c=j.get(r);if(c)c.lastAccess=M}},m=(T,N)=>{if(D<=Y)return 0;let M=Math.max(0,T-Q),O=Math.min(K-1,N+Q),u=Z(M),r=Z(O),c=0,Q0=[];for(let[b,w]of j)if(b<u||b>r)c+=w.count,Q0.push(b),D-=w.count,j.delete(b);if(c>0&&U)U(c,Q0);return c},n=()=>{if(D<=Y)return 0;let T=Array.from(j.entries()).sort(([,O],[,u])=>O.lastAccess-u.lastAccess),N=0,M=[];for(let[O,u]of T){if(D<=Y)break;N+=u.count,D-=u.count,M.push(O),j.delete(O)}if(N>0&&U)U(N,M);return N},Y0=()=>{return{totalItems:K,cachedItems:D,cachedChunks:j.size,chunkSize:q,maxCachedItems:Y,memoryEfficiency:K>0?1-D/K:1}},t=()=>D,i=()=>{j.clear(),D=0};return{chunkSize:q,maxCachedItems:Y,getTotal:G,setTotal:P,get:F,has:$,set:H,setRange:B,insert:k,delete:S,getRange:v,isRangeLoaded:g,getLoadedRanges:p,findUnloadedRanges:x,getChunkIndex:Z,isChunkLoaded:y,isChunkFullyLoaded:E,touchChunk:A,touchChunksForRange:f,evictDistant:m,evictToLimit:n,getStats:Y0,getCachedCount:t,clear:i,reset:()=>{i(),K=0}}};var S1=(J={})=>{let{maskCharacter:q=P1,maxSampleSize:Y=y1}=J,Q=[],U=!1,j=(L)=>{if(U||L.length===0)return;let G=Math.min(L.length,Y);for(let P=0;P<G;P++){let F=L[P];if(!F||typeof F!=="object")continue;let $={},H=!1;for(let[B,k]of Object.entries(F)){if(B.startsWith("_")||B==="id")continue;$[B]=String(k??"").length,H=!0}if(H)Q.push($)}U=!0},K=()=>U,D=(L)=>{let G={id:`${l0}${L}`,[f2]:!0,_index:L};if(Q.length===0)return G.label=q.repeat(12),G;let P=Q[L%Q.length];for(let[F,$]of Object.entries(P))G[F]=q.repeat(Math.max(1,$));return G};return{analyzeStructure:j,hasAnalyzedStructure:K,generate:D,generateRange:(L,G)=>{let P=[];for(let F=L;F<=G;F++)P.push(D(F));return P},clear:()=>{Q=[],U=!1}}},$2=(J)=>{if(!J||typeof J!=="object")return!1;return J[f2]===!0};var HJ=50,f1=(J={})=>{let{adapter:q,initialItems:Y,initialTotal:Q,storage:U,placeholder:j,pageSize:K=HJ,onStateChange:D,onItemsLoaded:_,onItemsEvicted:Z}=J,L=v1({...U,onEvict:(o,R)=>{Z?.(o),y()}}),G=null,P=()=>{if(!G)G=S1(j);return G},F=new Map,$=!1,H,B=!0,k,S,v=[],g=0,p=new Map,x=()=>{for(let o of p.values())o[1].abort();p.clear()},y=()=>{D?.(l())},E=()=>{F.clear();let o=L.getLoadedRanges();for(let R of o)for(let I=R.start;I<=R.end;I++){let X0=L.get(I);if(X0&&!$2(X0))F.set(X0.id,I)}},A=(o,R)=>{if(!$2(R))F.set(R.id,o)},f=(o)=>{F.delete(o)},m=(o,R)=>{return`${o}-${R}`},n=()=>L.getTotal(),Y0=()=>L.getCachedCount(),t=()=>$,i=()=>B,l=()=>({total:L.getTotal(),cached:L.getCachedCount(),isLoading:$,pendingRanges:v,error:H,hasMore:B,cursor:k}),T=()=>L,N=()=>P(),M=(o)=>{let R=L.get(o);if(R!==void 0)return R;if(o>=0&&o<L.getTotal())return P().generate(o);return},O=(o)=>{let R=F.get(o);if(R===void 0)return;return L.get(R)},u=(o)=>{return F.get(o)??-1},r=(o)=>{let R=L.get(o);return R!==void 0&&!$2(R)},c=(o,R)=>{let I=[],X0=L.getTotal();L.touchChunksForRange(o,Math.min(R,X0-1));for(let j0=o;j0<=R&&j0<X0;j0++){let _0=L.get(j0);if(_0!==void 0)I.push(_0);else I.push(P().generate(j0))}return I},Q0=(o)=>{L.setTotal(o),B=L.getCachedCount()<o,y()},b=(o,R=0,I)=>{if(q&&o.length>0){let X0=P();if(!X0.hasAnalyzedStructure())X0.analyzeStructure(o)}for(let X0=0;X0<o.length;X0++){let j0=o[X0];if(j0!==void 0){let _0=R+X0;L.set(_0,j0),A(_0,j0)}}if(I!==void 0)L.setTotal(I);else if(R+o.length>L.getTotal())L.setTotal(R+o.length);if(L.getCachedCount()>=L.getTotal()&&L.getTotal()>0)B=!1;y(),_?.(o,R,L.getTotal())},w=(o,R)=>{let I=L.get(o);if(!I)return!1;let X0=I.id,j0={...I,...R};if(L.set(o,j0),R.id!==void 0&&R.id!==X0)f(X0);return A(o,j0),y(),!0},s=(o,R)=>{L.insert(R,o),E(),x(),y()},W=(o)=>{let R=F.get(o);if(R===void 0)return!1;if(!L.delete(R))return!1;return E(),x(),y(),!0},X=async(o,R)=>{if(!q)return;let I=L.chunkSize,X0=Math.floor(o/I),j0=Math.floor(R/I),_0=I*2;for(let[Z0,M0]of p){let E0=Z0.indexOf("-"),w0=parseInt(Z0.slice(0,E0),10);if(Math.abs(w0-o)>_0)M0[1].abort(),p.delete(Z0)}let N0=[],B0=[];for(let Z0=X0;Z0<=j0;Z0++){let M0=Z0*I,E0=M0+I-1,w0=m(M0,E0);if(L.isChunkFullyLoaded(Z0))continue;let b0=p.get(w0);if(b0)B0.push(b0[0]);else N0.push({start:M0,end:E0})}if(N0.length===0)return;for(let Z0 of N0){let M0=m(Z0.start,Z0.end),E0=new AbortController,w0=(async()=>{v.push(Z0),$=!0,H=void 0,y();try{let L0=Z0.end-Z0.start+1,b0={offset:Z0.start,limit:L0,cursor:Z0.start===S?k:void 0,signal:E0.signal},R0=await q.read(b0);if(b(R0.items,Z0.start,R0.total),R0.cursor)k=R0.cursor,S=Z0.start+R0.items.length;let D0=Z0.start+R0.items.length;if(D0>=g){if(g=D0,R0.hasMore!==void 0)B=R0.hasMore;else if(R0.total!==void 0)B=D0<R0.total}}catch(L0){if(L0?.name==="AbortError")return;H=L0 instanceof Error?L0:Error(String(L0))}finally{p.delete(M0),v=v.filter((L0)=>L0.start!==Z0.start||L0.end!==Z0.end),$=p.size>0,y()}})();p.set(M0,[w0,E0]),B0.push(w0)}await Promise.all(B0)},V=async(o,R)=>{if(L.isRangeLoaded(o,R))return;await X(o,R)},h=async()=>{if(!q)return;await X(0,K-1)},z=async()=>{if(!q||$||!B)return!1;let o=L.getCachedCount(),R=L.getTotal(),I=o,X0=Math.min(I+K-1,R>0?R-1:I+K-1);if(I>=R&&R>0)return B=!1,!1;return await X(I,X0),L.getCachedCount()>o},d=async()=>{if(L.clear(),L.setTotal(0),F.clear(),G)G.clear();x(),v=[],$=!1,k=void 0,S=void 0,B=!0,g=0,H=void 0,y()},J0=(o,R)=>{if(L.evictDistant(o,R)>0)E()},C=()=>{L.clear(),F.clear(),k=void 0,S=void 0,H=void 0,v=[],$=!1,y()},e=()=>{if(L.reset(),F.clear(),G)G.clear();k=void 0,S=void 0,B=!0,g=0,H=void 0,v=[],$=!1,y()};if(Y&&Y.length>0)b(Y,0,Q??Y.length);else if(Q!==void 0)L.setTotal(Q),y();return{getState:l,getTotal:n,getCached:Y0,getIsLoading:t,getHasMore:i,getStorage:T,getPlaceholders:N,getItem:M,getItemById:O,getIndexById:u,isItemLoaded:r,getItemsInRange:c,setTotal:Q0,setItems:b,updateItem:w,insertItem:s,removeItem:W,loadRange:X,ensureRange:V,loadInitial:h,loadMore:z,reload:d,evictDistant:J0,clear:C,reset:e}};var p2=(J)=>{let{adapter:q,loading:Y,storage:Q,total:U,autoLoad:j=!0}=J,K=Y?.cancelThreshold??b1,D=Y?.preloadThreshold??R1,_=Y?.preloadAhead??k1;return{name:"withAsync",priority:20,methods:["reload","loadVisibleRange"],setup(Z){let{emitter:L}=Z,G=Z.config.reverse,P=Z.methods.get("_getGridLayout"),F=(l)=>{let T=Z.methods.get("_getGroupBridge");if(T){let N=T();if(N&&N.groupCount>0){let M=N.layoutToDataIndex(l.start),O=N.layoutToDataIndex(l.end);if(M<0){for(let u=l.start+1;u<=l.end;u++)if(M=N.layoutToDataIndex(u),M>=0)break}if(O<0){for(let u=l.end-1;u>=l.start;u--)if(O=N.layoutToDataIndex(u),O>=0)break}if(M>=0&&O>=0)return{start:M,end:O}}}if(P){let N=P();if(N){let M=Z.dataManager.getTotal();return N.getItemRange(l.start,l.end,M)}}return l};Z.methods.set("_isAsync",()=>!0);let $=null;Z.methods.set("_onItemsLoaded",(l)=>{($??=[]).push(l)});let H=(l)=>{L.emit("error",{error:l,context:"ensureRange"})},B=(l)=>{L.emit("error",{error:l,context:"loadMore"})},k=(l,T)=>Z.dataManager.ensureRange(l,T),S=(l,T=S2)=>{L.emit("load:start",{offset:l,limit:T})},v=f1({adapter:q,...U!==void 0&&{initialTotal:U},pageSize:Q?.chunkSize??S2,...Q&&{storage:{...Q.chunkSize!==void 0&&{chunkSize:Q.chunkSize},...Q.maxCachedItems!==void 0&&{maxCachedItems:Q.maxCachedItems}}},onStateChange:()=>{if(Z.state.isInitialized){let l=Z.getVirtualTotal(),T=Z.sizeCache.getTotal();if(l!==T)Z.sizeCache.rebuild(l);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:(l,T,N)=>{if(Z.state.isInitialized){if($)for(let M of $)M(l,T,N);Z.forceRender(),L.emit("load:end",{items:l,total:N,offset:T})}}});Z.replaceDataManager(v);let g=null,p=null,x=0,y=!1,E=null,A=120,f=(l=!1)=>{if(y=!1,p=null,l)g=null;if(E!==null)clearTimeout(E),E=null},m=()=>{if(!p)return;p=null;let{renderRange:l}=Z.state.viewportState;if(l.end<l.start)return;g=null;let T=F(l);k(T.start,T.end).catch(H)};Z.afterScroll.push((l,T)=>{if(Z.state.isDestroyed)return;let N=Z.scrollController.getVelocity(),O=Z.scrollController.isTracking()&&N<=K;if(x>K&&N<=K)y=!0;else if(y&&N>K)f();if(y&&N<0.5)f(!0);if(x=N,(Z.scrollController.isAtTop()||Z.scrollController.isAtBottom())&&(y||p))f(!0),O=!0;let r=y&&N>0.5;if(O&&!Z.dataManager.getIsLoading()&&Z.dataManager.getHasMore()){if(G?l<v2:Z.state.viewportState.totalSize-l-Z.state.viewportState.containerSize<v2)S(Z.dataManager.getCached()),Z.dataManager.loadMore().catch(B)}let{renderRange:c}=Z.state.viewportState;if(!g||c.start!==g.start||c.end!==g.end){if(g={start:c.start,end:c.end},O&&!r){if(p=null,E!==null)clearTimeout(E),E=null;let b=F(c),w=b.start,s=b.end,W=P?Z.dataManager.getTotal():Z.getVirtualTotal();if(N>D)if(T==="down")s=Math.min(b.end+_,W-1);else w=Math.max(b.start-_,0);k(w,s).catch(H)}else if(p={start:c.start,end:c.end},r){if(E!==null)clearTimeout(E);E=setTimeout(()=>{E=null,m(),f()},A)}}});let n=200,Y0=null;Z.afterScroll.push((l,T)=>{if(Y0!==null)clearTimeout(Y0);Y0=setTimeout(()=>{Y0=null,m(),f()},n)}),Z.destroyHandlers.push(()=>{if(Y0!==null)clearTimeout(Y0),Y0=null;f()});let t=()=>{if(Z.state.isDestroyed)return;g=null;let{renderRange:l}=Z.state.viewportState;if(l.end>0){let T=F(l);k(T.start,T.end).catch(H)}m()};window.addEventListener("online",t),Z.destroyHandlers.push(()=>{window.removeEventListener("online",t)}),L.on("load:start",()=>{Z.dom.root.setAttribute("aria-busy","true")}),L.on("load:end",()=>{Z.dom.root.removeAttribute("aria-busy")}),Z.methods.set("loadVisibleRange",async()=>{g=null,p=null,Z.forceRender();let{renderRange:l}=Z.state.viewportState;if(l.end>0){let T=F(l);S(T.start,T.end-T.start+1),await k(T.start,T.end)}}),Z.methods.set("reload",async(l)=>{g=null,p=null;let T=l?.snapshot,N=T!=null&&(T.total??0)>0&&T.index>0,M=N||l?.skipInitialLoad===!0;if(Z.invalidateRendered(),await Z.dataManager.reload(),!N)Z.scrollController.scrollTo(0);if(!M){S(0),await Z.dataManager.loadInitial(),Z.forceRender();let{renderRange:O}=Z.state.viewportState;if(O.end>0){let u=F(O);await k(u.start,u.end)}}if(N){let O=Z.methods.get("restoreScroll");if(O)O(T)}});let i=!1;if(Z.methods.set("_cancelAutoLoad",()=>{i=!0}),j)queueMicrotask(()=>{if(i)return;S(0),Z.dataManager.loadInitial().catch((l)=>{L.emit("error",{error:l,context:"loadInitial"})})});else if(U!==void 0)Z.dataManager.setTotal(U)}}};var k2=(J)=>J==null?0:typeof J==="function"?J():J,u2=(J)=>{let q,Y=J?.scrollPadding;return{name:"withPage",priority:5,setup(Q){let{dom:U,state:j,config:K,emitter:D}=Q,_=K.horizontal,Z=window;if(U.root.style.overflow="visible",U.root.style.height="auto",_)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 F=U.viewport.getBoundingClientRect();return Math.max(0,_?-F.left:-F.top)},(F)=>{let $=U.viewport.getBoundingClientRect(),H=(_?$.left+Z.scrollX:$.top+Z.scrollY)+F;if(_)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}),j.viewportState.containerSize=Z.innerHeight,Y){let F=Q.getItemToScrollIndexFn();Q.setScrollToPosFn(($,H,B,k,S)=>{let v=k2(_?Y.left:Y.top),g=k2(_?Y.right:Y.bottom);if(k===0)return 0;let p=Math.max(0,Math.min($,k-1)),x=H.getOffset(p),y=H.getSize(p),E=H.getTotalSize(),A=Math.max(0,E-B+g),f=S==="start"?x-v:S==="center"?x-v-(B-v-g-y)/2:x-B+y+g;return Math.max(-v,Math.min(f,A))}),Q.methods.set("_scrollItemIntoView",($)=>{let H=F($),B=_?Z.innerWidth:Z.innerHeight,k=k2(_?Y.left:Y.top),S=k2(_?Y.right:Y.bottom),v=U.viewport.getBoundingClientRect(),g=_?Z.scrollX:Z.scrollY,p=_?v.left:v.top,x=p+g,y=Q.sizeCache.getOffset(H),E=Q.sizeCache.getSize(H),A=p+y,f=B-S,m=g;if(A<k)m=x+y-k;else if(A+E>f)m=x+y+E-f;if(m!==g)if(_)Z.scrollTo({left:m,top:Z.scrollY,behavior:"instant"});else Z.scrollTo({left:Z.scrollX,top:m,behavior:"instant"})})}let{innerHeight:L,innerWidth:G}=Z,P=()=>{let{innerWidth:F,innerHeight:$}=Z;if(Math.abs(_?F-G:$-L)>1){L=$,G=F,j.viewportState.containerSize=$,D.emit("resize",{width:F,height:$});for(let H=0;H<Q.resizeHandlers.length;H++)Q.resizeHandlers[H](F,$);Q.renderIfNeeded()}};Z.addEventListener("resize",P),q=()=>Z.removeEventListener("resize",P),Q.destroyHandlers.push(q)},destroy(){q?.(),q=void 0}}};var s0=(J,q)=>{let Y=0,Q=J.length-1;while(Y<Q){let U=Y+Q+1>>>1;if(J[U].headerLayoutIndex<=q)Y=U;else Q=U-1}return Y},B2=(J,q)=>{let Y=0,Q=J.length-1;while(Y<Q){let U=Y+Q+1>>>1;if(J[U].firstDataIndex<=q)Y=U;else Q=U-1}return Y},h1=(J,q,Y)=>{if(J===0)return[];let Q=[],U=q(0,Y?.(0)),j=0,K=0;for(let D=1;D<J;D++){let _=q(D,Y?.(D));if(_!==U){let Z=D-j;Q.push({key:U,groupIndex:Q.length,headerLayoutIndex:K,firstDataIndex:j,count:Z}),K=K+1+Z,U=_,j=D}}return Q.push({key:U,groupIndex:Q.length,headerLayoutIndex:K,firstDataIndex:j,count:J-j}),Q},g2=(J,q)=>{if(J.length===0||q.length===0)return[];let Y=J.length+q.length,Q=Array(Y),U=0;for(let j of q){Q[U]={id:`__group_header_${j.groupIndex}`,__groupHeader:!0,groupKey:j.key,groupIndex:j.groupIndex},U++;for(let K=0;K<j.count;K++)Q[U]=J[j.firstDataIndex+K],U++}return Q};var I1=(J,q,Y)=>{let Q=h1(J,q.getGroupForIndex,Y),U=J+Q.length,j=q.header?.height??q.header?.width??q.headerHeight;return{get totalEntries(){return U},get groupCount(){return Q.length},get groups(){return Q},getEntry:(F)=>{if(Q.length===0)return{type:"item",dataIndex:F,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let $=s0(Q,F),H=Q[$];if(F===H.headerLayoutIndex)return{type:"header",group:H};let B=F-H.headerLayoutIndex-1;return{type:"item",dataIndex:H.firstDataIndex+B,group:H}},layoutToDataIndex:(F)=>{if(Q.length===0)return F;let $=s0(Q,F),H=Q[$];if(F===H.headerLayoutIndex)return-1;let B=F-H.headerLayoutIndex-1;return H.firstDataIndex+B},dataToLayoutIndex:(F)=>{if(Q.length===0)return F;let $=B2(Q,F),H=Q[$],B=F-H.firstDataIndex;return H.headerLayoutIndex+1+B},getGroupAtLayoutIndex:(F)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let $=s0(Q,F);return Q[$]},getGroupAtDataIndex:(F)=>{if(Q.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let $=B2(Q,F);return Q[$]},getHeaderHeight:typeof j==="number"?(F)=>j:(F)=>{let $=Q[F];if(!$)return 0;return j($.key,F)},rebuild:(F,$)=>{Q=h1(F,q.getGroupForIndex,$??Y),U=F+Q.length}}};var m2=(J,q,Y,Q,U=0)=>{let j=Y?"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;"+(Y?`top:0;bottom:0;left:${U||0}px`:`top:${U||0}px`),K.style[j]=`${Q}px`,J.insertBefore(K,J.firstChild),K},x2=(J,q,Y,Q,U,j=!1,K=0,D,_)=>{let Z=j?"width":"height",L=j?"height":"width",G=j?"X":"Y",P=(X,V)=>{X.style[Z]=`${V}px`},F=_??m2(J,U,j,0,K),$=()=>{let X=document.createElement("div");return X.className="sticky-group",X.style.position="absolute",X.style.willChange="transform",X.style[L]="100%",X},H=$(),B=$();F.append(H,B);let k=H,S=B,v=q.groups,g=[],p=[],x=[],y=0,E=()=>{v=q.groups,y=v.length,g=Array(y),p=Array(y),x=Array(y);let X=D?D():1;for(let V=0;V<y;V++)g[V]=Y.getOffset(v[V].headerLayoutIndex)*X,p[V]=q.getHeaderHeight(V),x[V]=p[V]*X};E();let A=-1,f=0,m=0,n=-1,Y0=!1,t=0,i=!1,l=(X,V)=>{Q(X,V);let h=p[V];return P(X,h),h},T=(X)=>{X.replaceChildren(),X.style.transform=""},N=(X)=>{if(X===A)return;if(A=X,f=0,m=0,X<0||X>=y){T(k);return}f=l(k,X),m=x[X],P(F,f),k.style.transform=""},M=(X)=>{if(X===t)return;t=X;let V=Math.round(X);k.style.transform=`translate${G}(${V}px)`,S.style.transform=`translate${G}(${V+f}px)`},O=()=>{t=0,k.style.transform="",S.style.transform=""},u=()=>{if(!i)return;let X=k;k=S,S=X,A=n,f=A>=0?p[A]:0,m=A>=0?x[A]:0,P(F,f),T(S),n=-1,i=!1,O()},r=()=>{if(!i)return;T(S),n=-1,i=!1,O()},c=!!_,Q0=()=>{if(Y0)return;if(Y0=!0,c)F.style.visibility="";else F.style.display=""},b=()=>{if(!Y0)return;if(Y0=!1,c)F.style.visibility="hidden";else F.style.display="none";T(k),A=-1,f=0,m=0,r()},w=(X)=>{if(y===0){b();return}if(X<g[0]){b();return}let V=0,h=y-1;while(V<h){let d=V+h+1>>>1;if(g[d]+x[d]<=X)V=d;else h=d-1}if(!Y0)Q0();N(V);let z=V+1;if(z<y){let d=g[z]-X;if(d<=0&&d>-m){if(n!==z||!i)n=z,l(S,z),i=!0;let J0=m>0?d/m*f:d;M(J0)}else if(d<=-m){if(i)u()}else if(i)r()}else if(i)r()},s=()=>{E();let X=A;if(A=-1,f=0,m=0,X>=0)N(X)},W=()=>{F.remove(),A=-1,f=0,m=0,n=-1,Y0=!1,i=!1};if(!_)F.style.display="none";return{update:w,refresh:s,show:Q0,hide:b,destroy:W}};var x0=(J)=>{return J!==null&&typeof J==="object"&&J.__groupHeader===!0};var p1={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},u1=(J,q,Y)=>{let Q=[],U=0,j=0,K=new Map,D=()=>{if(Q=[],U===0||K.size===0){j=U;return}let v=null,g=-1,p=0;for(let x=0;x<U;x++){let y=K.get(x);if(y===void 0){if(v!==null&&g>=0){let E=x-g;Q.push({key:v,groupIndex:Q.length,headerLayoutIndex:g+p,firstDataIndex:g,count:E}),p++,v=null,g=-1}continue}if(y!==v){if(v!==null&&g>=0){let E=x-g;Q.push({key:v,groupIndex:Q.length,headerLayoutIndex:g+p,firstDataIndex:g,count:E}),p++}v=y,g=x}}if(v!==null&&g>=0){let x=U-g;Q.push({key:v,groupIndex:Q.length,headerLayoutIndex:g+p,firstDataIndex:g,count:x}),p++}j=U+p};return{onItemsLoaded:(v,g,p)=>{U=p;for(let x=0;x<v.length;x++){let y=g+x,E=v[x];if(E!==void 0){let A=J.getGroupForIndex(y,E);K.set(y,A)}}D()},get totalEntries(){return j},get groupCount(){return Q.length},get groups(){return Q},isHeader:(v)=>{if(Q.length===0)return!1;let g=s0(Q,v),p=Q[g];return v===p.headerLayoutIndex},getHeaderItem:(v)=>{if(Q.length===0)return;let g=s0(Q,v),p=Q[g];if(v!==p.headerLayoutIndex)return;return{id:`__group_header_${p.groupIndex}`,__groupHeader:!0,groupKey:p.key,groupIndex:p.groupIndex}},layoutToDataIndex:(v)=>{if(Q.length===0)return v;let g=s0(Q,v),p=Q[g];if(v===p.headerLayoutIndex)return-1;let x=v-p.headerLayoutIndex-1;return p.firstDataIndex+x},dataToLayoutIndex:(v)=>{if(Q.length===0)return v;let g=B2(Q,v),p=Q[g],x=v-p.firstDataIndex;return p.headerLayoutIndex+1+x},getHeaderHeight:(v)=>J.headerHeight,getGroupAtLayoutIndex:(v)=>{if(Q.length===0)return p1;let g=s0(Q,v);return Q[g]},getGroupAtDataIndex:(v)=>{if(Q.length===0)return p1;let g=B2(Q,v);return Q[g]},insertAt:(v,g)=>{let p=new Map;for(let[y,E]of K)if(y<v)p.set(y,E);else p.set(y+1,E);K.clear();for(let[y,E]of p)K.set(y,E);let x=J.getGroupForIndex(v,g);K.set(v,x),U++,D()},removeAt:(v)=>{let g=new Map;for(let[p,x]of K)if(p<v)g.set(p,x);else if(p>v)g.set(p-1,x);K.clear();for(let[p,x]of g)K.set(p,x);U--,D()},reset:()=>{Q=[],U=0,j=0,K.clear()}}};var g1=(J,q,Y,Q,U,j)=>{if(Q===0)return 0;let K=Math.max(0,Math.min(J,Q-1)),D=q.getOffset(K),_=q.getSize(K),Z=q.getTotalSize(),L=Math.max(0,Z-Y),G;switch(j){case"center":G=D-Y/2+_/2;break;case"end":G=D-Y+_;break;case"start":default:G=D;break}return Math.max(0,Math.min(G,L))};var V2=(J,q,Y,Q,U="start",j,K=g1)=>{return K(J,q,Y,Q,j,U)};var $J=(J,q)=>{if(J.header){let Y=q?J.header.width??J.header.height:J.header.height??J.header.width;return{getGroupForIndex:J.getGroupForIndex,header:{height:Y,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},d2=(J)=>{let q=J.header,Y=q?q.height??q.width:J.headerHeight,Q=q?.template??J.headerTemplate;if(!J.getGroupForIndex)throw Error("[vlist/builder] withGroups: getGroupForIndex is required");if(Y==null||Y<=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,j=null;return{name:"withGroups",priority:10,setup(K){let{dom:D,config:_,rawConfig:Z}=K,{classPrefix:L}=_,G=$J(J,_.horizontal),F=Z.item.height,$=G.sticky!==!1,{template:H}=G.header;D.root.classList.add(`${L}--grouped`);let B=null;if($)if(K.methods.set("_getStickyHeaderHeight",()=>G.header.height),B=m2(D.root,L,_.horizontal,G.header.height),!_.horizontal)D.viewport.style.height=`calc(100% - ${G.header.height}px)`;else D.viewport.style.width=`calc(100% - ${G.header.height}px)`;let{animateScroll:k,cancelScroll:S}=q2(K.scrollController,K.renderIfNeeded),v=null;K.methods.set("scrollToIndex",(x,y)=>{let E=v??U;if(!E)return;let A=E.dataToLayoutIndex(x),{align:f,behavior:m,duration:n}=r0(y),Y0=K.dataManager.getTotal(),t=K.adjustScrollPosition(V2(A,K.sizeCache,K.state.viewportState.containerSize,Y0,f,K.getCachedCompression()));if(m==="smooth")k(K.scrollController.getScrollTop(),t,n);else S(),K.scrollController.scrollTo(t)}),K.destroyHandlers.push(()=>{if(S(),j)j.destroy(),j=null;else if(B)B.remove();D.root.classList.remove(`${L}--grouped`)});let g=null;K.methods.set("_getGroupBridge",()=>g),queueMicrotask(()=>{let x=K.methods.get("_onItemsLoaded");if(x)bJ(K,G,_,Z,F,$,H,L,x,(y)=>{g=y,v=y},(y)=>{j=y},B,p.staticInsertItem,p.staticRemoveItem)});let p=kJ(K,G,_,Z,F,$,H,L,(x)=>{U=x,v=x},(x)=>{j=x},B)},destroy(){if(j)j.destroy(),j=null}}};function kJ(J,q,Y,Q,U,j,K,D,_,Z,L){let{dom:G}=J,P=null,F=Q.items?[...Q.items]:[],$=F.length,H={getGroupForIndex:q.getGroupForIndex,header:{height:q.header.height}},B=(M)=>F[M],k=I1($,H,B);_(k);let S=g2(F,k.groups),v=typeof U==="number"?(M)=>U:U,g=(M)=>{let O=k.layoutToDataIndex(M);if(O<0){let u=k.getGroupAtLayoutIndex(M);if(j&&u.groupIndex===0)return 0;return k.getHeaderHeight(u.groupIndex)}return v(O)};J.setSizeConfig(g),J.rebuildSizeCache(S.length),J.dataManager.setItems(S,0,S.length);let p=Q.item.template,x=(M,O,u)=>{if(x0(M))return K(M.groupKey,M.groupIndex);return p(M,O,u)},y=J.methods.get("_getGridLayout"),E=J.methods.get("_replaceGridRenderer"),A=J.methods.get("_updateGridLayoutForGroups"),f=J.methods.get("_createGridRenderer"),m=J.methods.get("_getTableLayout"),n=J.methods.get("_updateTableForGroups");if(y&&E&&f){if(A)A((u)=>{let r=S[u];return!!(r&&x0(r))});let M=y(),O=f(G.items,x,J.sizeCache,M,D,J.getContainerWidth(),()=>F.length,Y.ariaIdPrefix,Y.horizontal,(u)=>k.layoutToDataIndex(u)+1,Y.interactive);E(O)}else if(m&&n)n((M)=>x0(M),q.header.template);else J.replaceTemplate(x);let Y0=()=>{if(!j||P)return;if(k.groupCount===0)return;let M=q.header.template,O=(r,c)=>{let Q0=k.groups[c];if(!Q0)return;let b=M(Q0.key,Q0.groupIndex);if(typeof b==="string")r.innerHTML=b;else r.replaceChildren(b)},u=x2(G.root,k,J.sizeCache,O,D,Y.horizontal,0,()=>J.getCachedCompression().ratio,L??void 0);P=u,Z(u),J.afterScroll.push((r,c)=>{u.update(r)}),u.update(J.scrollController.getScrollTop())};Y0();let t=Q.item?.striped,i=()=>{if(t!=="data"&&t!=="even"&&t!=="odd")return;let M=new Int32Array(S.length),O=t==="odd"?1:0,u=0;for(let r=0;r<S.length;r++)if(x0(S[r])){if(M[r]=-1,t==="even"||t==="odd")u=0}else M[r]=u+++O;J.setStripeIndexFn((r)=>{if(r<0||r>=M.length)return r;return M[r]})};i();let l=()=>{if(k.rebuild(F.length,B),S=g2(F,k.groups),J.rebuildSizeCache(S.length),J.dataManager.setItems(S,0,S.length),i(),Y0(),P)P.refresh()};J.methods.set("setItems",(M)=>{F=M.slice(),l()}),J.methods.set("appendItems",(M)=>{F.push(...M),l()}),J.methods.set("prependItems",(M)=>{F.unshift(...M),l()});let T=(M,O)=>{let u=O??0;F.splice(u,0,M),l()};J.methods.set("insertItem",T);let N=(M)=>{let O=F.length;if(F=F.filter((u)=>u.id!==M),F.length===O)return!1;return l(),!0};return J.methods.set("removeItem",N),J.methods.set("_getItems",()=>F),J.methods.set("_getTotal",()=>F.length),J.methods.set("_isGroupHeader",(M)=>{let O=S[M];return!!(O&&x0(O))}),J.methods.set("_layoutToDataIndex",(M)=>k.layoutToDataIndex(M)),J.methods.set("_dataToLayoutIndex",(M)=>k.dataToLayoutIndex(M)),{staticInsertItem:T,staticRemoveItem:N}}function bJ(J,q,Y,Q,U,j,K,D,_,Z,L,G,P,F){let{dom:$}=J,H=J.dataManager,B=u1({getGroupForIndex:q.getGroupForIndex,headerHeight:q.header.height});Z(B);let k=typeof U==="number"?(A)=>U:U,S=(A)=>{if(B.isHeader(A)){if(j&&B.getGroupAtLayoutIndex(A).groupIndex===0)return 0;return q.header.height}let f=B.layoutToDataIndex(A);return f>=0?k(f):k(A)};J.setSizeConfig(S),J.setVirtualTotalFn(()=>B.totalEntries||H.getTotal());let v={...H,getTotal:()=>B.totalEntries,getIndexById:(A)=>{let f=H.getIndexById(A);if(f<0)return-1;return B.dataToLayoutIndex(f)},getItem:(A)=>{let f=B.getHeaderItem(A);if(f)return f;let m=B.layoutToDataIndex(A);if(m>=0)return H.getItem(m);return H.getItem(A)},getItemsInRange:(A,f)=>{let m=[];for(let n=A;n<=f;n++){let Y0=v.getItem(n);if(Y0!==void 0)m.push(Y0)}return m},isItemLoaded:(A)=>{if(B.isHeader(A))return!0;let f=B.layoutToDataIndex(A);if(f>=0)return H.isItemLoaded(f);return H.isItemLoaded(A)},reload:()=>{return B.reset(),H.reload()},insertItem:(A,f)=>{B.insertAt(f,A),H.insertItem(A,f)},updateItem:(A,f)=>{let m=B.layoutToDataIndex(A);if(m>=0)return H.updateItem(m,f);return H.updateItem(A,f)},removeItem:(A)=>{let f=H.getIndexById(A);if(f>=0)B.removeAt(f);return H.removeItem(A)},clear:()=>{B.reset(),H.clear()},reset:()=>{B.reset(),H.reset()}};J.replaceDataManager(v);let g=Q.item.template,p=J.methods.get("_updateTableForGroups");if(p)p((A)=>x0(A),q.header.template);J.replaceTemplate((A,f,m)=>{if(x0(A))return K(A.groupKey,A.groupIndex);return g(A,f,m)});let x=null;if(j){let A=q.header.template,f=(Y0,t)=>{let i=B.groups[t];if(!i)return;let l=A(i.key,i.groupIndex);if(typeof l==="string")Y0.innerHTML=l;else Y0.replaceChildren(l)},m={get groups(){return B.groups},getHeaderHeight:(Y0)=>B.getHeaderHeight(Y0)};x=x2($.root,m,J.sizeCache,f,D,Y.horizontal,0,()=>J.getCachedCompression().ratio,G??void 0),L(x);let n=x;J.afterScroll.push((Y0,t)=>{n.update(Y0)})}let y=-1;if(J.methods.set("_ensureTailLoaded",()=>{let A=H.getTotal();if(A<=0)return;let f=A-1;if(H.isItemLoaded(f))return;y=f,H.ensureRange(f,f)}),_((A,f,m)=>{let n=J.scrollController.getScrollTop(),Y0=B.groupCount,t=B.totalEntries||m,i=0,l=0,T=J.methods.get("_restoreAnchor");if(T)i=T.dataIndex,l=T.fraction;else if(n>0){let O=J.getCachedCompression(),u=O.ratio!==1?n/O.ratio:n,r=J.sizeCache.indexAtOffset(u);if(i=B.layoutToDataIndex(r),i<0&&r+1<B.totalEntries)r=r+1,i=B.layoutToDataIndex(r);let c=J.sizeCache.getOffset(r),Q0=J.sizeCache.getSize(r);l=Q0>0?(u-c)/Q0:0}B.onItemsLoaded(A,f,m),J.rebuildSizeCache(B.totalEntries);let N=J.getCachedCompression();if(J.updateContentSize(N.virtualSize),B.groupCount-Y0>0&&(n>0||T)){if(T?.skipAdjust);else if(i>=0){let O=B.dataToLayoutIndex(i),u=J.sizeCache.getOffset(O),r=J.sizeCache.getSize(O),c=u+l*r,Q0=N.ratio!==1?c*N.ratio:c;if(Math.abs(Q0-n)>1)J.scrollController.scrollTo(Q0);if(T){J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave");let b=J.methods.get("_saveSnapshot");if(b)b()}}}else if(T){let O=T.skipAdjust;if(J.methods.delete("_restoreAnchor"),J.methods.delete("_suppressSave"),!O){let u=J.methods.get("_saveSnapshot");if(u)u()}}if(x)x.refresh(),x.update(J.scrollController.getScrollTop());if(y>=0&&H.isItemLoaded(y)){let O=B.dataToLayoutIndex(y);y=-1;let u=J.methods.get("_getFocusedIndex"),r=u?u():-1;if(r>=0&&r>=t-1&&O!==r){let c=O;while(c>0&&B.isHeader(c))c--;let Q0=J.methods.get("_setFocusedIndex");if(Q0)Q0(c)}}}),J.methods.set("_isGroupHeader",(A)=>B.isHeader(A)),J.methods.set("_layoutToDataIndex",(A)=>B.layoutToDataIndex(A)),J.methods.set("_dataToLayoutIndex",(A)=>B.dataToLayoutIndex(A)),J.methods.set("_getTotal",()=>H.getTotal()),J.methods.get("removeItem")===F)J.methods.delete("removeItem");if(J.methods.get("insertItem")===P)J.methods.delete("insertItem");let E=Q.item?.striped;if(E==="data"||E==="even"||E==="odd"){let A=E==="odd"?1:0;J.setStripeIndexFn((f)=>{if(B.isHeader(f))return-1;let m=B.layoutToDataIndex(f);return m>=0?m+A:f})}}var m1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,Q=J.isHeaderFn,U={row:0,col:0},j=($)=>{if($<=0)return 0;if(!Q)return Math.ceil($/q);let H=0,B=0,k=0;for(let S=0;S<$;S++)if(Q(S)){if(k++,B)H++,B=0;H++,B=0}else if(B++,B>=q)H++,B=0;if(B)H++;return H},K=($)=>{return U.row=D($),U.col=_($),U},D=($)=>{if(!Q)return Math.floor($/q);let H=0,B=0;for(let k=0;k<=$;k++)if(Q(k)){if(B)H++,B=0;if(k===$)return H;H++,B=0}else{if(k===$)return H;if(B++,B>=q)H++,B=0}return console.warn(`⚠️ getRow(${$}) fell through - returning ${H}`),H},_=($)=>{if(!Q)return $%q;if(Q($))return 0;let H=0;for(let B=0;B<=$;B++)if(Q(B))H=0;else{if(B===$)return H;if(H++,H>=q)H=0}return H},Z=($,H,B)=>{if(B<=0)return{start:0,end:-1};if(!Q){let p=Math.max(0,$*q),x=Math.min(B-1,(H+1)*q-1);return{start:p,end:x}}let k=-1,S=-1,v=0,g=0;for(let p=0;p<B;p++){if(Q(p)){if(g)v++,g=0;if(v>=$&&v<=H){if(k<0)k=p;S=p}v++,g=0}else{if(v>=$&&v<=H){if(k<0)k=p;S=p}if(g++,g>=q)v++,g=0}if(v>H&&!g)break}if(k<0)return{start:0,end:-1};return{start:k,end:S}},L=($,H,B)=>{if(H<0||H>=q)return-1;let k=$*q+H;if(k<0||k>=B)return-1;return k},G=($)=>{let H=(q-1)*Y;return Math.max(0,($-H)/q)};return{get columns(){return q},get gap(){return Y},update:($)=>{if($.columns!==void 0)q=Math.max(1,Math.floor($.columns));if($.gap!==void 0)Y=$.gap;if($.isHeaderFn!==void 0)Q=$.isHeaderFn},getTotalRows:j,getPosition:K,getRow:D,getCol:_,getItemRange:Z,getItemIndex:L,getColumnWidth:G,getColumnOffset:($,H)=>{let B=G(H);return $*(B+Y)}}};var Y2=(J,q,Y)=>{if(String(Y).startsWith(l0))return!1;let Q=l0+q;if(J.has(Q))return J.delete(Q),J.add(Y),!0;return!1},x1=(J)=>({selected:new Set(J??[]),focusedIndex:-1,focusVisible:!1});var RJ=(J=200)=>{let q=[];return{acquire:()=>{let j=q.pop();if(j)return j;let K=document.createElement("div");return K.setAttribute("role","option"),K},release:(j)=>{if(j.remove(),q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-row"),j.removeAttribute("data-col"),q.push(j)},clear:()=>{q.length=0}}},PJ=1,c2=(J,q,Y,Q,U,j,K,D,_=!1,Z,L)=>{let G=RJ(),P=new Map,F=j,$=!1,H=0,B="",k=-1,S={selected:!1,focused:!1},v=(b,w)=>{return S.selected=b,S.focused=w,S},g=`${U}-item ${U}-grid-item`,p=`${U}-group-header`,x=`${U}-item--selected`,y=`${U}-item--focused`,E=`${U}-item--placeholder`,A=`${U}-item--replaced`,f=(b,w)=>{if(typeof w==="string")b.innerHTML=w;else b.replaceChildren(w)},m=(b,w,s)=>{b.classList.toggle(x,w),b.classList.toggle(y,s)},n=(b,w)=>{let s=Q.getRow(b);if(w?.compression?.isCompressed)return H2(s,w.scrollPosition,Y,w.totalItems,w.containerSize,w.compression,w.rangeStart);return Y.getOffset(s)},Y0=(b,w)=>{let s=Q.getCol(b),X=$&&s===0?0:Q.getColumnOffset(s,F),V;if($){let h=Q.getRow(b),z=0,d=-1;for(let J0=0;J0<b;J0++){let C=Q.getRow(J0);if(C<h&&C!==d){let e=Y.getSize(J0);z+=e,d=C}}V=z}else V=n(b,w);if(_)return`translate(${Math.round(V)}px, ${Math.round(X)}px)`;return`translate(${Math.round(X)}px, ${Math.round(V)}px)`},t=(b,w)=>{let s=b.classList.contains(p),W=s?F:Q.getColumnWidth(F),X;if($||s)X=Y.getSize(w)-Q.gap;else{let V=Q.getRow(w);X=Y.getSize(V)-Q.gap}if(_)b.style.width=`${X}px`,b.style.height=`${W}px`;else b.style.width=`${W}px`,b.style.height=`${X}px`},i=(b,w,s,W,X)=>{let V=G.acquire(),h=!!w.__groupHeader,z=v(s,W);if(V.className=h?p:g,V.dataset.index=String(b),V.dataset.id=String(w.id),V.dataset.row=String(Q.getRow(b)),V.dataset.col=String(Q.getCol(b)),h)V.setAttribute("role","presentation"),V.removeAttribute("aria-selected"),V.removeAttribute("aria-setsize"),V.removeAttribute("aria-posinset"),V.removeAttribute("id");else if(L!==!1){if(V.setAttribute("role","option"),V.ariaSelected=String(s),D)V.id=`${D}-item-${b}`;if(K){let C=K();if(C!==k)k=C,B=String(C);V.setAttribute("aria-setsize",B);let e=Z?Z(b):b+1;V.setAttribute("aria-posinset",String(e))}}else if(V.setAttribute("role","listitem"),V.removeAttribute("aria-selected"),K){let C=K();if(C!==k)k=C,B=String(C);V.setAttribute("aria-setsize",B);let e=Z?Z(b):b+1;V.setAttribute("aria-posinset",String(e))}t(V,b);let d=q(w,b,z);if(f(V,d),String(w.id).startsWith(l0))V.classList.add(E);return m(V,s,W),V.style.transform=X,{element:V,lastItemId:w.id,lastSelected:s,lastFocused:W,lastTransform:X,lastSeenFrame:H}},l=(b,w,s,W,X)=>{if(H++,w.start===0&&b.length)$=x0(b[0]);for(let[z,d]of P)if(z>=w.start&&z<=w.end)d.lastSeenFrame=H;else if(H-d.lastSeenFrame>PJ)G.release(d.element),P.delete(z);let V=!1;if(K){let z=K();if(z!==k)k=z,B=String(z),V=!0}let h=null;for(let z=w.start;z<=w.end;z++){let d=z-w.start,J0=b[d];if(!J0){console.warn(`⚠️ RENDER: Missing item at index ${z} (range: ${w.start}-${w.end}, items.length: ${b.length})`);continue}let C=s.has(J0.id),e=z===W,o=P.get(z);if(o){let R=o.lastItemId!==J0.id,I=o.lastSelected!==C,X0=o.lastFocused!==e;if(R){let _0=String(o.lastItemId),N0=String(J0.id),B0=_0.startsWith(l0),Z0=N0.startsWith(l0);if(!Z0&&Y2(s,z,J0.id))C=!0;let M0=v(C,e),E0=q(J0,z,M0);if(f(o.element,E0),o.element.dataset.id=N0,o.element.dataset.row=String(Q.getRow(z)),o.element.dataset.col=String(Q.getCol(z)),t(o.element,z),o.element.classList.toggle(E,Z0),B0&&!Z0)o.element.classList.add(A),setTimeout(()=>o.element.classList.remove(A),300);if(o.lastItemId=J0.id,!J0.__groupHeader){let L0=Z?Z(z):z+1;o.element.setAttribute("aria-posinset",String(L0))}}if(R||I||X0)m(o.element,C,e),o.element.ariaSelected=String(C),o.lastSelected=C,o.lastFocused=e;let j0=Y0(z,X);if(o.lastTransform!==j0)o.element.style.transform=j0,o.lastTransform=j0;if(V&&!J0.__groupHeader)o.element.setAttribute("aria-setsize",B)}else{if(Y2(s,z,J0.id))C=!0;let R=Y0(z,X),I=i(z,J0,C,e,R);if(!h)h=document.createDocumentFragment();h.appendChild(I.element),P.set(z,I)}}if(h)J.appendChild(h)},T=(b)=>{for(let[w,s]of P){let W=Y0(w,b);if(s.lastTransform!==W)s.element.style.transform=W,s.lastTransform=W}},N=(b,w,s,W)=>{let X=P.get(b);if(!X)return;let V=v(s,W),h=q(w,b,V);f(X.element,h),m(X.element,s,W),X.element.dataset.id=String(w.id),X.element.ariaSelected=String(s),t(X.element,b),X.lastItemId=w.id,X.lastSelected=s,X.lastFocused=W},M=(b,w,s)=>{let W=P.get(b);if(!W)return;let X=W.lastSelected!==w,V=W.lastFocused!==s;if(X||V)m(W.element,w,s),W.lastSelected=w,W.lastFocused=s},O=(b)=>{return P.get(b)?.element},u=(b)=>{if(Math.abs(b-F)<1)return;F=b;for(let[w,s]of P){t(s.element,w);let W=Y0(w);s.element.style.transform=W,s.lastTransform=W}},r=()=>{J2(J,P.keys(),(b)=>P.get(b)?.element)},c=()=>{for(let[,b]of P)G.release(b.element);P.clear()};return{render:l,updatePositions:T,updateItem:N,updateItemClasses:M,getElement:O,sortDOM:r,updateContainerWidth:u,clear:c,destroy:()=>{c(),G.clear()}}};var yJ=new Set,l2=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withGrid: columns must be a positive integer >= 1");let q=null,Y=null;return{name:"withGrid",priority:10,conflicts:["withTable","withMasonry"],setup(Q){let{dom:U,emitter:j,config:K,rawConfig:D}=Q,{classPrefix:_}=K;if(K.reverse)throw Error("[vlist/builder] withGrid cannot be used with reverse: true");let Z=K.horizontal,L=F2(p0(D.padding),Z),G=()=>{return(Z?U.viewport.clientHeight:Q.getContainerWidth())-L},P=D.items?.some((c)=>c.__groupHeader===!0),F={columns:J.columns,gap:J.gap??0};if(P)F.isHeaderFn=(c)=>{let Q0=Q.dataManager.getItem(c);return!!(Q0&&Q0.__groupHeader===!0)};q=m1(F);let $=q.gap;Q.setVirtualTotalFn(()=>{let c=Q.dataManager.getTotal();return q.getTotalRows(c)}),Q.setItemToScrollIndexFn((c)=>Math.floor(c/F.columns)),Q.methods.set("_getNavTotal",()=>Q.dataManager.getTotal()),Q.methods.set("_getNavDelta",()=>Z?{ud:1,lr:F.columns,cols:F.columns}:{ud:F.columns,lr:1,cols:F.columns});let H=D.item,B=K.horizontal?H.width:H.height,k={containerWidth:G(),columns:q.columns,gap:q.gap},S={containerWidth:0,columns:0,gap:0,columnWidth:0,row:0,column:0,totalRows:0,totalColumns:0};if(typeof B==="function")Q.setSizeConfig((c)=>{let Q0=k.containerWidth-2,b=(k.columns-1)*k.gap;return S.containerWidth=k.containerWidth,S.columns=k.columns,S.gap=k.gap,S.columnWidth=(Q0-b)/k.columns,S.row=q.getRow(c),S.column=q.getCol(c),S.totalRows=q.getTotalRows(Q.dataManager.getTotal()),S.totalColumns=k.columns,B(c,S)+k.gap});else if($>0)Q.setSizeConfig(B+$);if(Q.rebuildSizeCache(),$>0){let c=Q.sizeCache.getTotalSize;Q.sizeCache.getTotalSize=()=>{let Q0=c();return Q0?Q0-k.gap:0}}U.root.classList.add(`${_}--grid`);let v=G(),g=D.item.template,p=Q2(Q.methods,()=>Q.dataManager.getTotal()),x=()=>{Y=c2(U.items,g,Q.sizeCache,q,_,v,p.getSetSize,K.ariaIdPrefix,K.horizontal,p.getPosInSet,K.interactive),Q.replaceRenderer(Y)};x();let y=()=>{for(let c=0;c<Q.contentSizeHandlers.length;c++)Q.contentSizeHandlers[c]()};Q.setUpdateItemClassesFn((c,Q0,b)=>{Y?.updateItemClasses(c,Q0,b)}),Q.methods.set("_updateRenderedItem",(c,Q0,b,w)=>{Y?.updateItem(c,Q0,b,w)}),Q.methods.set("_getGridLayout",()=>q),Q.methods.set("_getGridConfig",()=>F),Q.methods.set("_replaceGridRenderer",(c)=>{Y=c}),Q.methods.set("_createGridRenderer",c2),Q.methods.set("_updateGridLayoutForGroups",(c)=>{q.update({isHeaderFn:c});let Q0=Q.dataManager.getTotal(),b=0;for(let w=0;w<Q0;w++)if(!q.getCol(w)){let s=Q.sizeCache.getSize(w);b+=s}Q.sizeCache.getTotalSize=()=>b,Q.updateContentSize(b),x()}),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");F.columns=c.columns}if(c.gap!==void 0){if(c.gap<0)throw Error("[vlist/builder] updateGrid: gap must be non-negative");F.gap=c.gap}q?.update(F);let Q0=G();k.containerWidth=Q0,k.columns=F.columns,k.gap=F.gap??0,Y?.updateContainerWidth(Q0),Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode(),y(),Y?.clear(),Q.forceRender()});let E=null,A=null,f=!1,m=()=>{if(f)return;f=!0,E=Q.methods.get("_getSelectedIds")??null,A=Q.methods.get("_getFocusedIndex")??null},n=-1,Y0=-1,t=!0,i=K.overscan,l={start:0,end:0},T={start:0,end:0},N=()=>{if(Q.state.isDestroyed)return;let c=Q.scrollController.getScrollTop(),Q0=Q.state.viewportState.containerSize;if(!t&&c===n&&Q0===Y0)return;n=c,Y0=Q0,t=!1;let b=Q.getVirtualTotal();Q.getVisibleRange(c,Q0,b,l),T.start=Math.max(0,l.start-i),T.end=Math.min(b-1,l.end+i);let w=Q.state.viewportState;w.scrollPosition=c,w.visibleRange.start=l.start,w.visibleRange.end=l.end,w.renderRange.start=T.start,w.renderRange.end=T.end;let s=Q.state.lastRenderRange,W=w.isCompressed,X=s.start!==T.start||s.end!==T.end;if(!X&&W){Y.updatePositions(Q.getCompressionContext());return}let V=q.getItemRange(T.start,T.end,Q.dataManager.getTotal()),h=Q.dataManager.getItemsInRange(V.start,V.end),z=W?Q.getCompressionContext():void 0;m();let d=E?E():yJ,J0=A?A():-1;if(Y.render(h,V,d,J0,z),X)s.start=T.start,s.end=T.end,j.emit("range:change",{range:{start:T.start,end:T.end}})},M=()=>{if(Q.state.isDestroyed)return;Q.state.lastRenderRange.start=-1,Q.state.lastRenderRange.end=-1,t=!0,N()};Q.setRenderFns(N,M);let O=typeof B==="function";Q.resizeHandlers.push((c,Q0)=>{let b=(Z?Q0:c)-L;if(Math.abs(b-k.containerWidth)<1)return;if(k.containerWidth=b,Y?.updateContainerWidth(b),O)Q.rebuildSizeCache(),Q.updateContentSize(Q.sizeCache.getTotalSize()),Q.updateCompressionMode(),y(),Y?.clear(),Q.forceRender()});let{animateScroll:u,cancelScroll:r}=q2(Q.scrollController,Q.renderIfNeeded);if(Q.methods.set("cancelScroll",r),Q.methods.set("scrollToIndex",(c,Q0)=>{let b=Math.floor(c/J.columns),{align:w,behavior:s,duration:W}=r0(Q0),X=Q.dataManager.getState(),V=q.getTotalRows(X.total),h=Math.max(0,Math.min(b,V-1)),z=Q.adjustScrollPosition(V2(h,Q.sizeCache,Q.state.viewportState.containerSize,V,w,Q.getCachedCompression()));if(s==="smooth")u(Q.scrollController.getScrollTop(),z,W);else r(),Q.scrollController.scrollTo(z)}),!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(()=>{Y?.sortDOM()}),Q.destroyHandlers.push(()=>{r(),Y?.destroy(),Y=null,U.root.classList.remove(`${_}--grid`)})},destroy(){Y?.destroy(),Y=null}}};var d1=(J)=>{let q=Math.max(1,Math.floor(J.columns)),Y=J.gap??0,Q=J.containerSize,U=0,j=[],K=()=>{let H=(q-1)*Y;U=Math.max(0,(Q-H)/q),j=Array(q);let B=U+Y;for(let k=0;k<q;k++)j[k]=k*B};K();let D=[],_=0,Z=[],L=(H,B)=>{if(H<=0)return _=0,D=[],[];let k=Array(q).fill(0),S=Array(q);for(let p=0;p<q;p++)S[p]=[];let v=Array(H);for(let p=0;p<H;p++){let x=0,y=k[0];for(let f=1;f<q;f++){let m=k[f];if(m<y)y=m,x=f}let E=B(p),A=k[x];v[p]={index:p,x:j[x],y:A,lane:x,size:E,crossSize:U},S[x].push(p),k[x]=A+E+Y}D=S;let g=0;for(let p=0;p<q;p++){let x=k[p],y=x>0?x-Y:0;if(y>g)g=y}return _=g,v},G=(H)=>{if(H.length===0)return _;if(_)return _;let B=Array(q).fill(0);for(let S of H){let v=S.y+S.size,g=B[S.lane];if(v>g)B[S.lane]=v}let k=0;for(let S=0;S<q;S++)if(B[S]>k)k=B[S];return k},P=(H,B,k)=>{if(H.length===0||k<=B)return Z.length=0,Z;if(D.length===0||D.length!==q)return F(H,B,k);Z.length=0;for(let S=0;S<q;S++){let v=D[S],g=v.length;if(!g)continue;let p=0,x=g;while(p<x){let y=p+x>>>1,E=H[v[y]];if(E.y+E.size<=B)p=y+1;else x=y}for(let y=p;y<g;y++){let E=H[v[y]];if(E.y>=k)break;Z.push(E)}}return Z},F=(H,B,k)=>{Z.length=0;for(let S of H)if(S.y+S.size>B&&S.y<k)Z.push(S);return Z};return{get columns(){return q},get gap(){return Y},get containerSize(){return Q},update:(H)=>{let B=!1;if(H.columns!==void 0){let k=Math.max(1,Math.floor(H.columns));if(k!==q)q=k,B=!0}if(H.gap!==void 0&&H.gap!==Y)Y=H.gap,B=!0;if(H.containerSize!==void 0&&H.containerSize!==Q)Q=H.containerSize,B=!0;if(B)K()},calculateLayout:L,getTotalSize:G,getVisibleItems:P}};var wJ=(J=200)=>{let q=[];return{acquire:()=>{let j=q.pop();if(j)return j;let K=document.createElement("div");return K.setAttribute("role","option"),K},release:(j)=>{if(j.remove(),q.length<J)j.className="",j.textContent="",j.removeAttribute("style"),j.removeAttribute("data-index"),j.removeAttribute("data-id"),j.removeAttribute("data-lane"),q.push(j)},clear:()=>{q.length=0}}},zJ=1,c1=(J,q,Y,Q=!1,U,j,K,D)=>{let _=wJ(),Z=new Map,L=new Set,G=0,P="",F=-1,$={selected:!1,focused:!1},H=(t,i)=>{return $.selected=t,$.focused=i,$},B=`${Y}-item ${Y}-masonry-item`,k=`${Y}-group-header`,S=`${Y}-item--selected`,v=`${Y}-item--focused`,g=(t,i)=>{if(typeof i==="string")t.innerHTML=i;else t.replaceChildren(i)},p=(t,i,l)=>{t.classList.toggle(S,i),t.classList.toggle(v,l)},x=(t,i)=>{if(Q)t.style.transform=`translate(${Math.round(i.y)}px, ${Math.round(i.x)}px)`;else t.style.transform=`translate(${Math.round(i.x)}px, ${Math.round(i.y)}px)`},y=(t,i)=>{if(Q)t.style.width=`${i.size}px`,t.style.height=`${i.crossSize}px`;else t.style.width=`${i.crossSize}px`,t.style.height=`${i.size}px`},E=(t,i,l,T,N)=>{let M=_.acquire(),O=i.__groupHeader,u=H(T,N);if(M.className=O?k:B,M.dataset.index=String(t),M.dataset.id=String(i.id),M.dataset.lane=String(l.lane),O)M.setAttribute("role","presentation"),M.removeAttribute("aria-selected"),M.removeAttribute("aria-setsize"),M.removeAttribute("aria-posinset"),M.removeAttribute("id");else if(D!==!1){if(M.setAttribute("role","option"),M.ariaSelected=String(T),j)M.id=`${j}-item-${t}`;if(U){let c=U();if(c!==F)F=c,P=String(c);M.setAttribute("aria-setsize",P);let Q0=K?K(t):t+1;M.setAttribute("aria-posinset",String(Q0))}}else if(M.setAttribute("role","listitem"),M.removeAttribute("aria-selected"),U){let c=U();if(c!==F)F=c,P=String(c);M.setAttribute("aria-setsize",P);let Q0=K?K(t):t+1;M.setAttribute("aria-posinset",String(Q0))}y(M,l);let r=q(i,t,u);return g(M,r),p(M,T,N),x(M,l),{element:M,lastItemId:i.id,lastSelected:T,lastFocused:N,lastY:l.y,lastX:l.x,lastSize:l.size,lastCrossSize:l.crossSize,lastSeenFrame:G}},A=(t,i,l,T)=>{G++,L.clear();for(let M=0;M<i.length;M++)L.add(i[M].index);for(let[M,O]of Z)if(L.has(M))O.lastSeenFrame=G;else if(G-O.lastSeenFrame>zJ)_.release(O.element),Z.delete(M);let N=null;for(let M=0;M<i.length;M++){let O=i[M],u=O.index,r=t(u);if(!r)continue;let c=l.has(r.id),Q0=u===T,b=Z.get(u);if(b){let w=b.lastItemId!==r.id,s=b.lastSelected!==c,W=b.lastFocused!==Q0,X=b.lastY!==O.y||b.lastX!==O.x,V=b.lastSize!==O.size||b.lastCrossSize!==O.crossSize;if(w){let h=H(c,Q0),z=q(r,u,h);if(g(b.element,z),b.element.dataset.id=String(r.id),b.lastItemId=r.id,!r.__groupHeader){let J0=K?K(u):u+1;b.element.setAttribute("aria-posinset",String(J0))}}if(w||s||W)p(b.element,c,Q0),b.element.ariaSelected=String(c),b.lastSelected=c,b.lastFocused=Q0;if(V)y(b.element,O),b.lastSize=O.size,b.lastCrossSize=O.crossSize;if(X)x(b.element,O),b.lastY=O.y,b.lastX=O.x}else{let w=E(u,r,O,c,Q0);if(!N)N=document.createDocumentFragment();N.appendChild(w.element),Z.set(u,w)}}if(N)J.appendChild(N)},f=()=>{for(let t of Z.values())_.release(t.element);Z.clear(),J.innerHTML=""};return{render:A,getElement:(t)=>Z.get(t)?.element,updateItemClasses:(t,i,l)=>{let T=Z.get(t);if(!T)return;let N=T.lastSelected!==i,M=T.lastFocused!==l;if(N||M)p(T.element,i,l),T.lastSelected=i,T.lastFocused=l},sortDOM:()=>{J2(J,Z.keys(),(t)=>Z.get(t)?.element)},clear:f,destroy:()=>{f(),_.clear()}}};var CJ=new Set,vJ=100,r2=(J)=>{if(!J.columns||J.columns<1)throw Error("[vlist/builder] withMasonry: columns must be a positive integer >= 1");let q=null,Y=null,Q=[];return{name:"withMasonry",priority:10,conflicts:["withGrid","withTable"],setup(U){let{dom:j,emitter:K,config:D,rawConfig:_}=U,Z=D.classPrefix,L=D.horizontal;if(D.reverse)throw Error("[vlist/builder] withMasonry: cannot be combined with reverse mode");j.root.classList.add(`${Z}--masonry`);let G=p0(_.padding),P=F2(G,L),F=e0(G,L),$=()=>(L?j.viewport.clientHeight:j.viewport.clientWidth)-P;q=d1({columns:J.columns,gap:J.gap??0,containerSize:$()});let H=_.item,B=L&&H.width?H.width:H.height,k={containerWidth:0,columns:0,gap:0,columnWidth:0},S=typeof B==="function"?(W)=>B(W,k):()=>B,v=()=>{let W=U.dataManager.getTotal(),X=q,V=X.columns,h=X.gap;k.containerWidth=X.containerSize,k.columns=V,k.gap=h;let z=(V-1)*h;k.columnWidth=Math.max(0,(k.containerWidth-z)/V),Q=X.calculateLayout(W,S),A();let d=X.getTotalSize(Q);U.sizeCache.getTotalSize=()=>d,U.updateContentSize(d)},g=_.item.template,p=Q2(U.methods,()=>U.dataManager.getTotal());Y=c1(j.items,g,Z,L,p.getSetSize,D.ariaIdPrefix,p.getPosInSet,D.interactive),U.setUpdateItemClassesFn((W,X,V)=>{Y?.updateItemClasses(W,X,V)});let x=[],y=new Int32Array(0),E=[],A=()=>{let W=q.columns,X=Q.length;x=Array(W);for(let V=0;V<W;V++)x[V]=[];if(y.length<X)y=new Int32Array(X);for(let V=0;V<X;V++){let h=Q[V],z=x[h.lane].length;x[h.lane].push(V),y[V]=z}E=Array(W);for(let V=0;V<W;V++){let h=x[V],z=new Float64Array(h.length);for(let d=0;d<h.length;d++){let J0=Q[h[d]];z[d]=J0.y+J0.size*0.5}E[V]=z}};U.methods.set("_getNavTotal",()=>U.dataManager.getTotal());let f=(W,X)=>{let V=W.length;if(!V)return-1;let h=0,z=V-1;while(h<z){let d=h+z>>1;if(W[d]<X)h=d+1;else z=d}if(h>0&&Math.abs(W[h-1]-X)<=Math.abs(W[h]-X))return h-1;return h};U.methods.set("_navigate",(W,X,V)=>{let h=Q[W];if(!h)return W;let z=h.lane,d=q.columns,J0=y[W],C=x[z];switch(L?X==="ArrowDown"?"ArrowRight":X==="ArrowUp"?"ArrowLeft":X==="ArrowRight"?"ArrowDown":X==="ArrowLeft"?"ArrowUp":X:X){case"ArrowDown":{if(J0+1<C.length)return C[J0+1];return W}case"ArrowUp":{if(J0>0)return C[J0-1];return W}case"ArrowRight":{if(z>=d-1)return W;let o=z+1,R=h.y+h.size*0.5,I=x[o];if(!I.length)return W;let X0=f(E[o],R);return X0>=0?I[X0]:W}case"ArrowLeft":{if(z<=0)return W;let o=z-1,R=h.y+h.size*0.5,I=x[o];if(!I.length)return W;let X0=f(E[o],R);return X0>=0?I[X0]:W}case"Home":return 0;case"End":return V-1;case"PageDown":{let o=U.state.viewportState.containerSize,R=h.size>0?h.size:150,I=Math.max(1,Math.floor(o/R)),X0=Math.min(J0+I,C.length-1);return C[X0]}case"PageUp":{let o=U.state.viewportState.containerSize,R=h.size>0?h.size:150,I=Math.max(1,Math.floor(o/R)),X0=Math.max(0,J0-I);return C[X0]}}return W}),U.methods.set("_scrollItemIntoView",(W)=>{let X=Q[W];if(!X)return;let V=U.scrollController.getScrollTop(),h=U.state.viewportState.containerSize,z=X.y,d=z+X.size;if(z<V)U.scrollController.scrollTo(U.adjustScrollPosition(Math.max(0,z)));else if(d>V+h)U.scrollController.scrollTo(U.adjustScrollPosition(d-h))});let m=null,n=null,Y0=!1,t=()=>{if(Y0)return;Y0=!0,m=U.methods.get("_getSelectedIds")??null,n=U.methods.get("_getFocusedIndex")??null},i=(W)=>U.dataManager.getItem(W),l=-1,T=-1,N=!0,M=D.overscan*vJ,O=()=>{if(U.state.isDestroyed)return;t();let W=U.scrollController.getScrollTop(),X=U.state.viewportState.containerSize;if(!N&&W===l&&X===T)return;l=W,T=X,N=!1;let V=Math.max(0,W-M),h=W+X+M,z=q.getVisibleItems(Q,V,h),d=m?.()??CJ,J0=n?.()??-1;if(Y&&z.length)Y.render(i,z,d,J0);let C=U.state.viewportState;C.scrollPosition=W;let e=z.length,o=e?z[0].index:0,R=e?z[e-1].index:0;C.visibleRange.start=o,C.visibleRange.end=R,C.renderRange.start=o,C.renderRange.end=R;let I=U.state.lastRenderRange;if(I.start!==o||I.end!==R)I.start=o,I.end=R,K.emit("range:change",{range:{start:o,end:R}})},u=()=>{U.state.lastRenderRange.start=-1,U.state.lastRenderRange.end=-1,N=!0,O()};U.setRenderFns(O,u);let r=(W,X)=>{let V=(L?X:W)-P;if(q&&q.containerSize!==V)q.update({containerSize:V}),v(),Y?.clear(),u()};U.resizeHandlers.push(r);let c=()=>{v(),u()},Q0=U.dataManager,b=(W)=>{if(typeof Q0[W]!=="function")return;let X=Q0[W].bind(Q0);Q0[W]=(...V)=>{X(...V),c()}};b("setItems"),b("appendItems"),b("prependItems"),b("updateItem"),b("removeItem");let{animateScroll:w,cancelScroll:s}=q2(U.scrollController,U.renderIfNeeded);U.methods.set("cancelScroll",s),U.methods.set("scrollToIndex",(W,X)=>{let V=Q[W];if(!V)return;let{align:h,behavior:z,duration:d}=r0(X),J0=V.y,C=U.state.viewportState.containerSize,e=J0;if(h==="center")e=J0-C/2+V.size/2;else if(h==="end"){e=J0-C+V.size;let o=q.getTotalSize(Q);if(W===Q.length-1)e=Math.max(0,o+F-C)}if(e=U.adjustScrollPosition(Math.max(0,e)),z==="smooth")w(U.scrollController.getScrollTop(),e,d);else s(),U.scrollController.scrollTo(e)}),v(),U.idleHandlers.push(()=>{Y?.sortDOM()}),U.destroyHandlers.push(()=>{s(),Y?.destroy(),j.root.classList.remove(`${Z}--masonry`)})}}};var s2=(J)=>{let q=J?.mode??"single",Y=J?.followFocus??!1,Q=J?.initial,U=J?.shiftArrowToggle??"origin",j=J?.focusOnClick??!1,K=J?.contextMenu??"select",D=x1(Q),_=D.selected,Z=null,L=-1;return{name:"withSelection",priority:50,methods:["select","deselect","toggleSelect","selectAll","clearSelection","getSelected","getSelectedItems","selectNext","selectPrevious"],setup(G){let{dom:P,emitter:F,config:$}=G,{classPrefix:H,ariaIdPrefix:B}=$,k=()=>P.root.getAttribute("role")==="grid"?P.root:P.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}P.root.classList.add(`${H}--selectable`);let S=()=>G.methods.get("_isGroupHeader"),v=()=>G.methods.get("_layoutToDataIndex"),g=()=>G.methods.get("_dataToLayoutIndex"),p=(R)=>{let I=S();return I?I(R):!1},x=(R,I,X0)=>{if(!S())return R;let j0=R;while(j0>=0&&j0<X0){if(!p(j0))return j0;j0+=I}j0=R-I;while(j0>=0&&j0<X0){if(!p(j0))return j0;j0-=I}return R},y=(R)=>{D.focusedIndex=R},E=(R,I,X0=!1)=>{if(I===0)return;let j0=D.focusedIndex+R;if(j0<0)j0=X0?I-1:0;else if(j0>=I)j0=X0?0:I-1;y(j0)},A=(R)=>{if(q==="single"){if(_.clear(),R.length>0)_.add(R[0])}else for(let I of R)_.add(I)},f=(R)=>{if(q==="single")_.clear();_.add(R)},m=(R)=>{if(_.has(R))_.delete(R);else f(R)},n=(R,I)=>{if(q!=="multiple")return;let X0=Math.min(R,I),j0=Math.max(R,I);for(let _0=X0;_0<=j0;_0++){if(p(_0))continue;let N0=G.dataManager.getItem(_0);if(N0)_.add(N0.id)}},Y0=()=>Array.from(_),t=(R)=>{let I=[];for(let X0 of _){let j0=R(X0);if(j0)I.push(j0)}return I};F.on("data:change",({type:R,id:I})=>{if(R==="remove"){_.delete(I);let X0=G.dataManager.getTotal();if(X0>0&&D.focusedIndex>=0){let j0=Math.min(D.focusedIndex,X0-1);D.focusedIndex=x(j0,1,X0)}}}),G.methods.set("_getSelectedIds",()=>{return _}),G.methods.set("_getFocusedIndex",()=>{return D.focusVisible?D.focusedIndex:-1}),G.methods.set("_seedSelection",(R)=>{for(let I of R)_.add(I)});let{forceRender:i}=G.getRenderFns(),l=(R)=>{return G.dataManager.getIndexById(R)},T=(R)=>{let I=l(R);if(I<0)return;return G.dataManager.getItem(I)},N=()=>{i(),F.emit("selection:change",{selected:Y0(),items:t(T)})},M=p0(G.rawConfig.padding),O=$.horizontal?M.left:M.top,u=$.horizontal?M.right:M.bottom,r=G.getItemToScrollIndexFn(),c=null,Q0=null,b=null,w=!1,s=()=>{if(w)return;w=!0,c=G.methods.get("_getNavDelta")??null,Q0=G.methods.get("_navigate")??null,b=G.methods.get("_scrollItemIntoView")??null},W=()=>{return s(),c?c():{ud:1,lr:0,cols:0}},X=(R)=>{if(R<0)return;if(s(),b)b(R);else{let I=G.state.viewportState.containerSize,X0=G.state.viewportState.scrollPosition,j0=G.dataManager.getTotal(),_0=G.getCachedCompression(),{visibleRange:N0}=G.state.viewportState,B0=r(R),Z0=T2(B0,G.sizeCache,X0,I,O,u,_0,j0,N0);if(Z0!==X0)G.scrollController.scrollTo(G.adjustScrollPosition(Z0))}},V=()=>{let R=r(Math.max(0,D.focusedIndex)),I=G.sizeCache.getSize(R),{ud:X0}=W();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",(P.root.getAttribute("role")==="grid"?P.root.parentElement??P.root:P.root).appendChild(Z);let z=Z;F.on("selection:change",({selected:R})=>{let I=R.length;if(I===0)z.textContent="";else if(I===1)z.textContent="1 item selected";else z.textContent=`${I} items selected`});let d=()=>{if(G.state.isDestroyed)return;let R=k();if(!R.matches(":focus-visible")&&!P.root.matches(":focus-visible"))return;let I=G.dataManager.getTotal();if(I===0)return;let X0=D.focusedIndex>=0?Math.min(D.focusedIndex,I-1):0;X0=x(X0,1,I),y(X0),D.focusVisible=!0,R.setAttribute("aria-activedescendant",`${B}-item-${X0}`),X(X0);let j0=G.dataManager.getItem(X0);if(j0)G.renderer.updateItemClasses(X0,_.has(j0.id),!0)};if($.interactive)P.root.addEventListener("focusin",d);let J0=(R)=>{if(G.state.isDestroyed)return;let I=R.relatedTarget;if(I&&P.root.contains(I))return;let X0=D.focusedIndex;if(D.focusVisible=!1,k().removeAttribute("aria-activedescendant"),X0>=0){let j0=G.dataManager.getItem(X0);if(j0)G.renderer.updateItemClasses(X0,_.has(j0.id),!1)}};if($.interactive)P.root.addEventListener("focusout",J0);let C=(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 j0=G.dataManager.getItem(X0);if(!j0||p(X0))return null;return{item:j0,index:X0}},e=(R)=>{y(R),D.focusVisible=j,L=R,k().setAttribute("aria-activedescendant",`${B}-item-${R}`)};if(G.clickHandlers.push((R)=>{if(G.state.isDestroyed)return;let I=C(R);if(!I)return;let{item:X0,index:j0}=I;if(F.emit("item:click",{item:X0,index:j0,event:R}),q==="multiple"&&R.shiftKey&&D.focusedIndex>=0){let _0=L>=0?L:D.focusedIndex;n(_0,j0),e(j0),N();return}e(j0),m(X0.id),N()}),K==="select")G.contextMenuHandlers.push((R)=>{if(G.state.isDestroyed)return;let I=C(R);if(!I)return;if(!_.has(I.item.id))_.clear(),_.add(I.item.id),e(I.index),N()});if($.interactive)G.keydownHandlers.push((R)=>{if(G.state.isDestroyed)return;let I=G.dataManager.getTotal(),X0=D.focusedIndex,j0=!1,_0=!1,N0=D;if(s(),Q0)switch(R.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":{let B0=Q0(D.focusedIndex,R.key,I);if(B0!==D.focusedIndex)y(B0),N0=D,N0.focusVisible=!0,j0=!0,_0=!0;else{R.preventDefault();return}break}}if(!j0)switch(R.key){case"ArrowUp":E(-W().ud,I,$.wrap),N0=D,N0.focusVisible=!0,j0=!0,_0=!0;break;case"ArrowDown":E(W().ud,I,$.wrap),N0=D,N0.focusVisible=!0,j0=!0,_0=!0;break;case"ArrowLeft":{let{lr:B0}=W();if(B0)E(-B0,I,$.wrap),N0=D,N0.focusVisible=!0,j0=!0,_0=!0;break}case"ArrowRight":{let{lr:B0}=W();if(B0)E(B0,I,$.wrap),N0=D,N0.focusVisible=!0,j0=!0,_0=!0;break}case"PageUp":case"PageDown":{let B0=V(),Z0=v(),M0=g();if(Z0&&M0){let E0=Z0(D.focusedIndex),w0=R.key==="PageUp"?-B0:B0,L0=Z0(I-1),b0=Math.max(0,Math.min(L0,E0+w0));y(M0(b0))}else E(R.key==="PageUp"?-B0:B0,I);N0=D,N0.focusVisible=!0,j0=!0,_0=!0;break}case"Home":{if(I>0)y(0);N0=D,N0.focusVisible=!0,j0=!0,_0=!0;break}case"End":{if(I>0)y(I-1);N0=D;let B0=G.methods.get("_ensureTailLoaded");if(B0)B0();N0.focusVisible=!0,j0=!0,_0=!0;break}}switch(R.key){case" ":case"Enter":if(R.key===" "&&R.shiftKey&&q==="multiple"&&D.focusedIndex>=0){if(L>=0)n(L,D.focusedIndex),N0=D;N0.focusVisible=!0,j0=!0;break}if(D.focusedIndex>=0&&!p(D.focusedIndex)){let B0=G.dataManager.getItem(D.focusedIndex);if(B0)m(B0.id),N0=D,N0.focusVisible=!0;L=D.focusedIndex,j0=!0}break;case"a":if((R.ctrlKey||R.metaKey)&&q==="multiple"){let B0=G.dataManager.getTotal(),Z0=[];for(let M0=0;M0<B0;M0++){if(p(M0))continue;let E0=G.dataManager.getItem(M0);if(E0)Z0.push(E0.id)}if(_.size===Z0.length)_.clear();else for(let M0 of Z0)_.add(M0);N0=D,N0.focusVisible=!0,j0=!0,_0=!1}break;case"Delete":case"Backspace":if(_.size>0)F.emit("delete",{selected:Y0(),items:t(T)}),j0=!0;break}if(_0&&S()){let B0=N0.focusedIndex>X0?1:-1;N0.focusedIndex=x(N0.focusedIndex,B0,I)}if(R.shiftKey&&q==="multiple"&&_0&&N0.focusedIndex>=0){let B0=R.key==="ArrowUp"||R.key==="ArrowDown"||R.key==="ArrowLeft"||R.key==="ArrowRight",Z0=(R.ctrlKey||R.metaKey)&&(R.key==="Home"||R.key==="End");if(B0){if(U==="origin"){if(X0>=0){let M0=G.dataManager.getItem(X0);if(M0)m(M0.id),N0=D}}else{let M0=G.dataManager.getItem(N0.focusedIndex);if(M0)m(M0.id),N0=D}L=N0.focusedIndex,_0=!1}else if(Z0){let M0=X0>=0?X0:N0.focusedIndex;n(M0,N0.focusedIndex),N0=D,L=N0.focusedIndex,_0=!1}}if(Y&&q==="single"&&_0&&N0.focusedIndex>=0){let B0=G.dataManager.getItem(N0.focusedIndex);if(B0)f(B0.id),N0=D;_0=!1}if(j0){R.preventDefault(),D=N0;let B0=D.focusedIndex;if(B0>=0)X(B0),k().setAttribute("aria-activedescendant",`${B}-item-${B0}`);else k().removeAttribute("aria-activedescendant");if(_0){let{selected:Z0}=D;if(X0>=0&&X0!==B0){let M0=G.dataManager.getItem(X0);if(M0)G.renderer.updateItemClasses(X0,Z0.has(M0.id),!1)}if(B0>=0){let M0=G.dataManager.getItem(B0);if(M0)G.renderer.updateItemClasses(B0,Z0.has(M0.id),!0)}}else N();if(B0>=0&&B0!==X0){let Z0=G.dataManager.getItem(B0);if(Z0)F.emit("focus:change",{id:Z0.id,index:B0})}}});G.methods.set("select",(...R)=>{if(A(R),R.length>0){let I=l(R[0]);if(I>=0)y(I)}N()}),G.methods.set("deselect",(...R)=>{for(let I of R)_.delete(I);N()}),G.methods.set("toggleSelect",(R)=>{m(R),N()}),G.methods.set("selectAll",()=>{if(q!=="multiple")return;_.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)_.add(X0.id)}N()}),G.methods.set("clearSelection",()=>{_.clear(),N()}),G.methods.set("getSelected",()=>{return Y0()}),G.methods.set("getSelectedItems",()=>{return t(T)});let o=(R)=>{let I=G.dataManager.getTotal();if(I===0)return;if(s(),Q0){let N0=R==="next"?"ArrowDown":"ArrowUp",B0=Q0(D.focusedIndex,N0,I);y(B0)}else{let{ud:N0}=W();E(R==="next"?N0:-N0,I,$.wrap)}let X0=R==="next"?1:-1;D.focusedIndex=x(D.focusedIndex,X0,I);let j0=D.focusedIndex,_0=G.dataManager.getItem(j0);if(!_0)return;f(_0.id),X(j0),N()};G.methods.set("selectNext",()=>{o("next")}),G.methods.set("selectPrevious",()=>{o("previous")}),G.methods.set("_focusById",(R)=>{let I=l(R);if(I<0)return;y(I);let X0=G.dataManager.getItem(I);if(X0)F.emit("focus:change",{id:X0.id,index:I})}),G.methods.set("_getFocusedId",()=>{let R=D.focusedIndex;if(R<0)return;return G.dataManager.getItem(R)?.id}),G.methods.set("_setFocusedIndex",(R)=>{y(R),D.focusVisible=!0,X(R),k().setAttribute("aria-activedescendant",`${B}-item-${R}`),G.renderIfNeeded()}),G.destroyHandlers.push(()=>{if(z&&z.parentNode)z.remove();P.root.removeEventListener("focusin",d),P.root.removeEventListener("focusout",J0)})},destroy(){if(Z&&Z.parentNode)Z.remove();Z=null}}};var SJ=(J)=>{try{let q=sessionStorage.getItem(J);if(!q)return;return JSON.parse(q)}catch{return}},a2=(J)=>{let q=J?.autoSave,Y=q?SJ(q):J?.restore;return{name:"withSnapshots",priority:50,methods:["getScrollSnapshot","restoreScroll"],setup(Q){let U=()=>{let Z=Q.scrollController.getScrollTop(),L=Q.getCachedCompression(),G=Q.getVirtualTotal(),F=Q.methods.get("getSelected")?.();if(G===0){let p={index:0,offsetInItem:0,total:0};if(F?.length)p.selectedIds=F;return p}let $,H;if(L.isCompressed&&L.ratio!==1){let x=Z/L.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 B={index:$,offsetInItem:H,total:G,scrollTop:Z},k=Q.sizeCache.getSize($);if(k)B.offsetRatio=H/k;let S=Q.methods.get("_layoutToDataIndex");if(S){let p=S($);if(p<0){for(let x=$+1;x<G;x++)if(p=S(x),p>=0)break}if(p>=0)B.dataIndex=p}let v=Q.methods.get("_getTotal");if(v)B.dataTotal=v();if(F?.length)B.selectedIds=F;let g=Q.methods.get("_getFocusedId");if(g){let p=g();if(p!==void 0)B.focusedId=p}return B};Q.methods.set("getScrollSnapshot",U);let j=(Z,L=!0)=>{let{index:G,offsetInItem:P,selectedIds:F,focusedId:$}=Z,H=Q.getVirtualTotal(),B=Z.dataTotal??Z.total;if(H===0&&B&&B>0){Q.dataManager.setTotal(B);let l=Q.getVirtualTotal();Q.sizeCache.rebuild(l),Q.updateCompressionMode();let T=Q.getCachedCompression();if(!T.isCompressed)Q.updateContentSize(T.virtualSize)}else if(H===0)return;if(!Number.isFinite(G)||!Number.isFinite(P))return;let k=Q.getVirtualTotal();if(Q.sizeCache.getTotal()!==k){Q.sizeCache.rebuild(k),Q.updateCompressionMode();let l=Q.getCachedCompression();if(!l.isCompressed)Q.updateContentSize(l.virtualSize)}let v=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)),y=Q.sizeCache.getSize(x),E=Z.offsetRatio!==void 0?Z.offsetRatio*y:Math.min(P,y),A;if(v.isCompressed&&v.ratio!==1){let l=Q.methods.get("_getTotal")?.(),T=l!==void 0&&Z.dataTotal===l;if(Z.scrollTop!==void 0&&(Z.total===k||T))A=Z.scrollTop;else{let N=y?E/y:0;A=(x+N)/k*v.virtualSize}}else A=Q.sizeCache.getOffset(x)+E;let f=Q.state.viewportState.containerSize,m=v.isCompressed?Q.state.viewportState.totalSize:v.virtualSize,n=Math.max(0,m-f);A=Math.max(0,Math.min(A,n));let Y0=A===Z.scrollTop;if(Z.dataIndex!==void 0&&Z.dataIndex>=0){let l=y?E/y:0;Q.methods.set("_restoreAnchor",{dataIndex:Z.dataIndex,fraction:l,skipAdjust:Y0}),Q.methods.set("_suppressSave",1)}if(Q.scrollController.scrollTo(A),L&&F?.length){let l=Q.methods.get("select");if(l)l(...F)}let t=Q.methods.get("loadVisibleRange"),i=()=>{if($===void 0)return;let l=Q.methods.get("_focusById");if(l)l($)};if(t){let l=0,T=()=>{if(Q.state.viewportState.containerSize){if(Math.abs(Q.scrollController.getScrollTop()-A)>1)Q.scrollController.scrollTo(A);t().then(i)}else if(++l<10)requestAnimationFrame(T)};requestAnimationFrame(T)}else{let l=Q.methods.get("reload");if(l)requestAnimationFrame(()=>{l().then(i)});else requestAnimationFrame(i)}};Q.methods.set("restoreScroll",j);let K=!!(Y&&q),D=null,_=!1;if(Q.destroyHandlers.push(()=>{_=!0}),q){D=()=>{if(_||K||Q.methods.has("_suppressSave"))return;let G=Q.methods.get("getScrollSnapshot");if(!G)return;let P=G();try{sessionStorage.setItem(q,JSON.stringify(P))}catch{}},Q.methods.set("_saveSnapshot",D);let Z=0,L=()=>{if(Z)return;Z=requestAnimationFrame(()=>{Z=0,D()})};if(Q.idleHandlers.push(L),Q.emitter.on("selection:change",L),Q.emitter.on("focus:change",L),Y&&Y.total&&Y.total>0){let G=Q.methods.get("_cancelAutoLoad");if(G)G();Q.dataManager.setTotal(Y.total)}}if(Y){let Z=!0;if(Y.selectedIds?.length){let L=Q.methods.get("_seedSelection");if(L)L(Y.selectedIds),Z=!1}queueMicrotask(()=>{if(j(Y,Z),K=!1,D)D()})}}}};var l1=(J,q=50,Y=1/0,Q=!0)=>{let U=J,j=[],K=0,D=()=>{j=U.map((B,k)=>({def:B,index:k,width:0,minWidth:fJ(B.minWidth??q,1),maxWidth:B.maxWidth??Y,resizable:B.resizable??Q,offset:0}))},_=(B)=>{if(j.length===0){K=0;return}let k=0,S=0;for(let v=0;v<j.length;v++){let g=j[v],p=g.def;if(p.width!==void 0)g.width=o2(p.width,g.minWidth,g.maxWidth),k+=g.width;else S++}if(S){let g=Math.max(0,B-k)/S;for(let p=0;p<j.length;p++){let x=j[p];if(x.def.width===void 0)x.width=o2(g,x.minWidth,x.maxWidth)}}Z()},Z=()=>{let B=0;for(let k=0;k<j.length;k++){let S=j[k];S.offset=B,B+=S.width}K=B},L=(B,k)=>{if(B<0||B>=j.length)return 0;let S=j[B];if(!S.resizable)return S.width;let v=o2(k,S.minWidth,S.maxWidth);return S.width=v,Z(),v},G=(B)=>{return j[B]},P=(B)=>{if(j.length===0)return;if(B<0)return j[0];if(B>=K)return j[j.length-1];let k=0,S=j.length-1;while(k<S){let v=k+S>>>1,g=j[v];if(B<g.offset)S=v-1;else if(B>=g.offset+g.width)k=v+1;else return g}return j[k]},F=(B)=>{if(B<0||B>=j.length)return 0;return j[B].offset},$=(B)=>{if(B<0||B>=j.length)return 0;return j[B].width},H=(B)=>{U=B,D()};return D(),{get columns(){return j},get totalWidth(){return K},resolve:_,updateColumns:H,resizeColumn:L,getColumn:G,getColumnAtX:P,getColumnOffset:F,getColumnWidth:$}},o2=(J,q,Y)=>Math.min(Y,Math.max(q,J)),fJ=(J,q)=>Math.max(q,J);var r1=(J,q,Y,Q,U,j)=>{let K=document.createElement("div");K.setAttribute("role","rowgroup");let D=document.createElement("div");D.className=`${Y}-table-header`,D.setAttribute("role","row"),D.setAttribute("aria-rowindex","1"),D.style.height=`${q}px`;let _=document.createElement("div");_.className=`${Y}-table-header-scroll`,_.setAttribute("role","presentation"),D.appendChild(_),K.appendChild(D),J.insertBefore(K,J.firstChild),J.style.setProperty("--vlist-table-header-height",`${q}px`);let Z=[],L=[],G=!0,P=null,F="asc",$=null,H=!1,B=-1,k=0,S=0,v=0,g=(N,M)=>{let O=document.createElement("div");O.className=`${Y}-table-header-cell`,O.setAttribute("role","columnheader"),O.setAttribute("aria-colindex",String(M+1)),O.setAttribute("tabindex",M===0?"0":"-1"),O.dataset.columnKey=N.def.key;let u=N.def.align;if(u==="center")O.classList.add(`${Y}-table-header-cell--center`);else if(u==="right")O.classList.add(`${Y}-table-header-cell--right`);let r=document.createElement("div");r.className=`${Y}-table-header-content`;let c=N.def.header?N.def.header(N.def):N.def.label;if(typeof c==="string")r.textContent=c;else r.appendChild(c);if(O.appendChild(r),N.def.sortable){let Q0=document.createElement("span");Q0.className=`${Y}-table-header-sort`,Q0.setAttribute("aria-hidden","true"),O.appendChild(Q0),L.push(Q0),O.classList.add(`${Y}-table-header-cell--sortable`)}else L.push(null);if(N.resizable){let Q0=document.createElement("div");Q0.className=`${Y}-table-header-resize`,Q0.dataset.resizeIndex=String(M),O.appendChild(Q0)}return O},p=(N)=>{$=N,_.textContent="",Z=[],L=[];let M=N.columns;for(let O=0;O<M.length;O++){let u=M[O],r=g(u,O);Z.push(r),_.appendChild(r)}if(x(N),P)y(P,F)},x=(N)=>{$=N;let M=N.columns;_.style.width=`${N.totalWidth}px`;for(let O=0;O<Z.length&&O<M.length;O++){let u=Z[O],r=M[O];u.style.width=`${r.width}px`}},y=(N,M)=>{if(P=N,F=M,!$)return;let O=$.columns;for(let u=0;u<L.length&&u<O.length;u++){let r=L[u];if(!r)continue;if(O[u].def.key===N)r.textContent=M==="asc"?"▲":"▼",r.style.opacity="0.7",Z[u].setAttribute("aria-sort",M==="asc"?"ascending":"descending");else r.textContent="",r.style.opacity="0",Z[u].removeAttribute("aria-sort")}},E=(N)=>{_.style.transform=`translateX(${-N}px)`},A=(N)=>{let M=N.target;if(!M.dataset.resizeIndex)return;if(N.preventDefault(),N.stopPropagation(),B=+M.dataset.resizeIndex,!$)return;let O=$.getColumn(B);if(!O?.resizable)return;H=!0,k=N.clientX,S=O.width,J.classList.add(`${Y}--col-resizing`),J.style.cursor="col-resize",M.classList.add(`${Y}-table-header-resize--active`),M.setPointerCapture(N.pointerId),M.addEventListener("pointermove",f),M.addEventListener("pointerup",m),M.addEventListener("pointercancel",m)},f=(N)=>{if(!H||!$)return;let M=N.clientX-k;if(Math.abs(M)<1)return;let O=Math.max(0,S+M);Q(B,O)},m=(N)=>{if(!H)return;let M=N.target;M.removeEventListener("pointermove",f),M.removeEventListener("pointerup",m),M.removeEventListener("pointercancel",m);try{M.releasePointerCapture(N.pointerId)}catch{}M.classList.remove(`${Y}-table-header-resize--active`),J.classList.remove(`${Y}--col-resizing`),J.style.cursor="",H=!1,B=-1},n=(N)=>{let M=N.target;if(M.dataset.resizeIndex)return;if(H)return;let O=M;while(O&&!O.dataset.columnKey)if(O=O.parentElement,O===D||O===null)return;let u=O.dataset.columnKey;if(!$)return;let r=$.columns,c=-1;for(let b=0;b<r.length;b++)if(r[b].def.key===u){c=b;break}if(c===-1)return;let Q0=r[c];if(j)j({key:u,index:c,event:N});if(Q0.def.sortable&&U){let b;if(P===u)b=F==="asc"?"desc":null;else b="asc";U({key:u,index:c,direction:b})}},Y0=(N)=>{if(N<0||N>=Z.length)return;Z[v]?.setAttribute("tabindex","-1"),v=N;let M=Z[v];M.setAttribute("tabindex","0"),M.focus()},t=(N)=>{let M=N.key;if(M==="ArrowRight"){if(N.ctrlKey||N.metaKey){if(!$)return;let O=$.getColumn(v);if(O?.resizable)Q(v,O.width+10),N.preventDefault()}else if(v<Z.length-1)Y0(v+1),N.preventDefault();N.stopPropagation();return}if(M==="ArrowLeft"){if(N.ctrlKey||N.metaKey){if(!$)return;let O=$.getColumn(v);if(O?.resizable)Q(v,O.width-10),N.preventDefault()}else if(v>0)Y0(v-1),N.preventDefault();N.stopPropagation();return}if(M==="Home"){Y0(0),N.preventDefault(),N.stopPropagation();return}if(M==="End"){Y0(Z.length-1),N.preventDefault(),N.stopPropagation();return}if(M==="Enter"||M===" "){if(!$)return;let O=$.getColumn(v);if(O?.def.sortable&&U){let u;if(P===O.def.key)u=F==="asc"?"desc":null;else u="asc";U({key:O.def.key,index:v,direction:u}),N.preventDefault()}N.stopPropagation();return}if(M==="ArrowDown"){J.focus(),N.preventDefault(),N.stopPropagation();return}};return D.addEventListener("pointerdown",A),D.addEventListener("click",n),D.addEventListener("keydown",t),{element:D,update:x,updateSort:y,rebuild:p,show:()=>{if(G)return;G=!0,D.style.display=""},hide:()=>{if(!G)return;G=!1,D.style.display="none"},destroy:()=>{D.removeEventListener("pointerdown",A),D.removeEventListener("click",n),D.removeEventListener("keydown",t),J.style.removeProperty("--vlist-table-header-height"),K.remove(),Z=[],L=[],$=null,G=!1},syncScroll:E}};var hJ=()=>{let J=[];return{acquire:()=>J.pop()||document.createElement("div"),release:(q)=>{if(q.parentNode?.removeChild(q),J.length<200)q.className="",q.removeAttribute("data-id"),q.removeAttribute("data-index"),q.removeAttribute("aria-selected"),q.removeAttribute("aria-rowindex"),q.removeAttribute("role"),q.style.cssText="",q.textContent="",J.push(q)},clear:()=>{J.length=0}}},s1=(J,q,Y,Q,U,j,K,D,_)=>{let Z=hJ(),L=new Map,G=-1,P=Y,F=null,$=null,H=null,B=(V,h)=>{$=V,H=h},k=(V,h)=>{h?V.setAttribute("aria-selected","true"):V.removeAttribute("aria-selected")},S=(V,h,z,d)=>{V.setAttribute("role",h),V.setAttribute("data-id",String(z)),V.setAttribute("data-index",String(d))},v=(V)=>String(V).startsWith("__placeholder_"),g=`${U}-item ${U}-table-row`,p=`${U}-item--selected`,x=`${U}-item--focused`,y=`${U}-table-cell`,E=`${U}-table-cell--center`,A=`${U}-table-cell--right`,f=`${U}-item--odd`,m=`${U}-item--placeholder`,n=`${U}-item--replaced`,Y0=`${U}-item ${U}-table-row ${U}-table-group-header`,t=`${U}-table-group-header-content`,i=(V,h,z,d,J0=!1)=>{if(z.def.cell){let C=z.def.cell(h,z.def,d);if(typeof C==="string")V.innerHTML=C;else V.replaceChildren(C)}else{let C=h[z.def.key],e=C!=null?String(C):"";if(J0&&e)V.innerHTML=`<span>${e}</span>`;else V.textContent=e}},l=(V,h,z,d,J0=!1)=>{let C=g;if(D){if(F){let e=F(h);if(e>=0&&(e&1)===1)C+=` ${f}`}else if((h&1)===1)C+=` ${f}`}if(J0)C+=` ${m}`;if(z)C+=` ${p}`;if(d)C+=` ${x}`;V.className=C},T=(V,h,z)=>{if(z?.compression?.isCompressed)return Math.round(H2(V,z.scrollPosition,h,z.totalItems,z.containerSize,z.compression,z.rangeStart));return h.getOffset(V)},N=(V,h)=>{let z=h.def.align;if(z==="center")V.classList.add(E),V.classList.remove(A);else if(z==="right")V.classList.add(A),V.classList.remove(E);else V.classList.remove(E,A)},M=(V,h)=>{let d=P.columns.length;if(h.length===d)return h;let J0=[];for(let C=0;C<d;C++){let e;if(C<h.length)e=h[C];else e=document.createElement("div"),e.className=y,V.appendChild(e);J0.push(e)}for(let C=d;C<h.length;C++)h[C].remove();return J0},O=(V,h,z,d)=>{let J0=Z.acquire(),C=V,e=z.getSize(h),o=T(h,z,d);J0.style.cssText=`width:${P.totalWidth}px;height:${e}px;transform:translateY(${o}px)`,J0.className=Y0,S(J0,"presentation",V.id,h),J0.removeAttribute("aria-selected"),J0.removeAttribute("aria-rowindex"),J0.replaceChildren();let R=document.createElement("div");if(R.className=t,H){let I=H(C.groupKey,C.groupIndex);if(typeof I==="string")R.innerHTML=I;else R.appendChild(I)}return J0.appendChild(R),{element:J0,cells:[],index:h,isGroupHeader:!0,lastItemId:V.id,lastSelected:!1,lastFocused:!1,lastOffset:o,lastHeight:e}},u=(V,h,z,d,J0,C)=>{let e=Z.acquire(),o=J0.getSize(h),R=T(h,J0,C),I=v(V.id);e.style.cssText=`width:${P.totalWidth}px;height:${o}px;transform:translateY(${R}px)`,l(e,h,z,d,I),S(e,"row",V.id,h),e.id=`${j}-item-${h}`,e.setAttribute("aria-rowindex",String(h+2)),k(e,z);let X0=M(e,[]),j0=P.columns;for(let _0=0;_0<X0.length&&_0<j0.length;_0++){let N0=X0[_0],B0=j0[_0];N0.style.cssText=`left:${B0.offset}px;width:${B0.width}px`,N0.setAttribute("role","gridcell"),N0.setAttribute("aria-colindex",String(_0+1)),N(N0,B0),i(N0,V,B0,h,I)}return{element:e,cells:X0,index:h,isGroupHeader:!1,lastItemId:V.id,lastSelected:z,lastFocused:d,lastOffset:R,lastHeight:o}},r=(V,h,z,d,J0)=>{for(let[I,X0]of L)if(I<h.start||I>h.end)Z.release(X0.element),L.delete(I);let C=!1,e=K();if(e!==G)G=e,C=!0;let o=null,R=q();F=typeof D==="string"&&_?_():null;for(let I=h.start;I<=h.end;I++){let X0=I-h.start,j0=V[X0];if(!j0)continue;let _0=z.has(j0.id),N0=I===d,B0=$?$(j0):!1,Z0=L.get(I);if(Z0){if(Z0.isGroupHeader!==B0){Z.release(Z0.element),L.delete(I);let M0=B0?O(j0,I,R,J0):u(j0,I,_0,N0,R,J0);if(L.set(I,M0),!o)o=document.createDocumentFragment();o.appendChild(M0.element);continue}if(B0){if(Z0.lastItemId!==j0.id){let L0=j0,b0=Z0.element.firstElementChild;if(b0&&H){let R0=H(L0.groupKey,L0.groupIndex);if(typeof R0==="string")b0.innerHTML=R0;else b0.replaceChildren(R0)}Z0.element.setAttribute("data-id",String(j0.id)),Z0.lastItemId=j0.id}let E0=T(I,R,J0);if(Z0.lastOffset!==E0)Z0.lastOffset=E0,Z0.element.style.transform=`translateY(${E0}px)`;let w0=R.getSize(I);if(Z0.lastHeight!==w0)Z0.lastHeight=w0,Z0.element.style.height=`${w0}px`}else{let M0=Z0.lastItemId!==j0.id,E0=Z0.lastSelected!==_0,w0=Z0.lastFocused!==N0;if(M0){let R0=Z0.lastItemId!=null&&v(Z0.lastItemId),D0=v(j0.id);if(!D0&&Y2(z,I,j0.id))_0=!0;let $0=P.columns;for(let k0=0;k0<Z0.cells.length&&k0<$0.length;k0++)i(Z0.cells[k0],j0,$0[k0],I,D0);if(l(Z0.element,I,_0,N0,D0),Z0.element.setAttribute("data-id",String(j0.id)),k(Z0.element,_0),R0&&!D0)Z0.element.classList.add(n),setTimeout(()=>{Z0.element.classList.remove(n)},300);Z0.lastItemId=j0.id,Z0.lastSelected=_0,Z0.lastFocused=N0}else if(E0||w0)l(Z0.element,I,_0,N0,v(j0.id)),k(Z0.element,_0),Z0.lastSelected=_0,Z0.lastFocused=N0;let L0=T(I,R,J0);if(Z0.lastOffset!==L0)Z0.lastOffset=L0,Z0.element.style.transform=`translateY(${L0}px)`;let b0=R.getSize(I);if(Z0.lastHeight!==b0)Z0.lastHeight=b0,Z0.element.style.height=`${b0}px`;if(C)Z0.element.setAttribute("aria-rowindex",String(I+2))}}else{if(Y2(z,I,j0.id))_0=!0;let M0=B0?O(j0,I,R,J0):u(j0,I,_0,N0,R,J0);if(L.set(I,M0),!o)o=document.createDocumentFragment();o.appendChild(M0.element)}}if(o)J.appendChild(o)},c=(V)=>{let h=q();for(let[z,d]of L){let J0=T(z,h,V);if(d.lastOffset!==J0)d.lastOffset=J0,d.element.style.transform=`translateY(${J0}px)`}},Q0=(V,h,z,d)=>{let J0=L.get(V);if(!J0)return;if(J0.isGroupHeader)return;let C=P.columns;for(let e=0;e<J0.cells.length&&e<C.length;e++)i(J0.cells[e],h,C[e],V);J0.element.setAttribute("data-id",String(h.id)),J0.lastItemId=h.id,l(J0.element,V,z,d),k(J0.element,z),J0.lastSelected=z,J0.lastFocused=d},b=(V,h,z)=>{let d=L.get(V);if(!d)return;if(d.isGroupHeader)return;let J0=d.lastSelected!==h,C=d.lastFocused!==z;if(J0||C)l(d.element,V,h,z),k(d.element,h),d.lastSelected=h,d.lastFocused=z},w=(V)=>{P=V;let h=V.columns;for(let[,z]of L)if(z.element.style.width=`${V.totalWidth}px`,z.cells.length>0)for(let d=0;d<z.cells.length&&d<h.length;d++){let J0=z.cells[d],C=h[d];J0.style.left=`${C.offset}px`,J0.style.width=`${C.width}px`}},s=(V)=>{return L.get(V)?.element},W=()=>{for(let[,V]of L)Z.release(V.element);L.clear(),G=-1};return{render:r,updatePositions:c,updateItem:Q0,updateItemClasses:b,getElement:s,updateColumnLayout:w,setGroupHeaderFn:B,clear:W,destroy:()=>{W(),Z.clear()}}};var IJ=new Set,n2=(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,Y=null,Q=null;return{name:"withTable",priority:10,conflicts:["withGrid","withMasonry"],setup(U){let{dom:j,emitter:K,config:D}=U,{classPrefix:_}=D;if(D.horizontal)throw Error("[vlist] withTable cannot be used with orientation: 'horizontal'");if(D.reverse)throw Error("[vlist] withTable cannot be used with reverse: true");let Z=J.resizable??!0,L=J.minColumnWidth??50,G=J.maxColumnWidth??1/0,P=J.rowBorders??!0,F=J.rowHeight,$=U.rawConfig.padding,H=!$?0:typeof $==="number"?$*2:$.length===2?$[1]*2:$[1]+$[3],B=J.headerHeight??(typeof F==="number"?F:40),k=J.sort?.key??null,S=J.sort?.direction??"asc";if(q=l1(J.columns,L,G,Z),typeof F==="function"||typeof F==="number")U.setSizeConfig(F);if(U.rebuildSizeCache(),j.root.classList.add(`${_}--table`),P&&j.root.classList.add(`${_}--table-row-borders`),J.columnBorders&&j.root.classList.add(`${_}--table-col-borders`),D.interactive)j.root.setAttribute("tabindex","0"),j.items.removeAttribute("tabindex");j.root.setAttribute("role","grid"),j.root.setAttribute("aria-colcount",`${J.columns.length}`);let v=-1,g=j.root.getAttribute("aria-label")??j.items.getAttribute("aria-label");if(g)j.root.setAttribute("aria-label",g),j.items.removeAttribute("aria-label");j.items.setAttribute("role","rowgroup"),j.viewport.setAttribute("role","none"),j.content.setAttribute("role","none"),j.viewport.removeAttribute("tabindex");let p=U.getContainerWidth()-H;q.resolve(p);let x=(w,s)=>{if(!q)return;let W=q.getColumn(w);if(!W)return;let X=W.width,V=q.resizeColumn(w,s);Y?.update(q),Q?.updateColumnLayout(q),A(),K.emit("column:resize",{key:W.def.key,index:w,previousWidth:X,width:V})},y=(w)=>{k=w.direction===null?null:w.key,S=w.direction??"asc",Y?.updateSort(k,S),K.emit("column:sort",w)},E=(w)=>{K.emit("column:click",w)};if(Y=r1(j.root,B,_,x,y,E),Y.rebuild(q),k)Y.updateSort(k,S);let A=()=>{if(!q)return;let w=`${q.totalWidth}px`;j.content.style.minWidth=w,j.items.style.minWidth=w};A(),Q=s1(j.items,()=>U.sizeCache,q,J.columns,_,D.ariaIdPrefix,()=>U.dataManager.getTotal(),U.rawConfig.item?.striped,()=>U.getStripeIndexFn());let f=null,m=null,n=!1,Y0=()=>{if(n)return;n=!0,f=U.methods.get("_getSelectedIds")??null,m=U.methods.get("_getFocusedIndex")??null},t=-1,i=-1,l=-1,T=!0,N=D.overscan,M={start:0,end:0},O={start:0,end:0},u=()=>{if(U.state.isDestroyed)return;let w=U.scrollController.getScrollTop(),s=U.state.viewportState.containerSize,W=U.getVirtualTotal(),X=U.state.viewportState.isCompressed;if(!T&&w===t&&s===i&&W===l)return;t=w,i=s,l=W,T=!1;let V=W+1;if(V!==v)v=V,j.root.setAttribute("aria-rowcount",`${V}`);U.getVisibleRange(w,s,W,M),O.start=Math.max(0,M.start-N),O.end=Math.min(W-1,M.end+N);let h=U.state.viewportState;h.scrollPosition=w,h.visibleRange.start=M.start,h.visibleRange.end=M.end,h.renderRange.start=O.start,h.renderRange.end=O.end;let z=U.state.lastRenderRange,d=z.start!==O.start||z.end!==O.end;if(!d&&X){Q.updatePositions(U.getCompressionContext());return}if(!d)return;let J0=X?U.getCompressionContext():void 0,C=U.dataManager.getItemsInRange(O.start,O.end);Y0();let e=f?f():IJ,o=m?m():-1;Q.render(C,O,e,o,J0),z.start=O.start,z.end=O.end,K.emit("range:change",{range:{start:O.start,end:O.end}})},r=()=>{if(U.state.isDestroyed)return;U.state.lastRenderRange.start=-1,U.state.lastRenderRange.end=-1,T=!0,u()};U.setRenderFns(u,r),U.setUpdateItemClassesFn((w,s,W)=>{Q?.updateItemClasses(w,s,W)});let c=Y,Q0=-1,b=()=>{let w=j.viewport.scrollLeft;if(w!==Q0){if(Q0=w,c.syncScroll)c.syncScroll(w)}};U.afterScroll.push(b),j.viewport.addEventListener("scroll",b,{passive:!0}),U.resizeHandlers.push((w,s)=>{if(!q)return;q.resolve(w-H),Y?.update(q),Q?.updateColumnLayout(q),A()}),U.methods.set("updateColumns",(w)=>{if(!q||!Y)return;if(q.updateColumns(w),q.resolve(U.getContainerWidth()-H),Y.rebuild(q),k)Y.updateSort(k,S);A(),Q?.updateColumnLayout(q),Q?.clear(),U.forceRender()}),U.methods.set("resizeColumn",(w,s)=>{if(!q)return;let W;if(typeof w==="string"){let X=q.columns;W=-1;for(let V=0;V<X.length;V++)if(X[V].def.key===w){W=V;break}if(W===-1)return}else W=w;x(W,s)}),U.methods.set("getColumnWidths",()=>{if(!q)return{};let w={},s=q.columns;for(let W=0;W<s.length;W++)w[s[W].def.key]=s[W].width;return w}),U.methods.set("setSort",(w,s)=>{k=w,S=s??"asc",Y?.updateSort(k,S)}),U.methods.set("getSort",()=>{return{key:k,direction:S}}),U.methods.set("_getTableLayout",()=>q),U.methods.set("_updateRenderedItem",(w,s,W,X)=>{Q?.updateItem(w,s,W,X)}),U.methods.set("_replaceTableRenderer",(w)=>{Q=w}),U.methods.set("_updateTableForGroups",(w,s)=>{Q?.setGroupHeaderFn(w,s)}),U.methods.set("_getTableHeaderHeight",()=>B),U.keydownHandlers.push((w)=>{if(w.key!=="ArrowLeft"&&w.key!=="ArrowRight")return;if(!q)return;let s=q.columns;if(s.length===0)return;let W=j.viewport.clientWidth;if(q.totalWidth<=W)return;let X=j.viewport.scrollLeft;if(w.key==="ArrowRight"){for(let V=0;V<s.length;V++)if(s[V].offset>X+1){j.viewport.scrollLeft=s[V].offset,w.preventDefault();return}}else{for(let V=s.length-1;V>=0;V--)if(s[V].offset<X-1){j.viewport.scrollLeft=s[V].offset,w.preventDefault();return}if(X>0)j.viewport.scrollLeft=0,w.preventDefault()}}),U.contentSizeHandlers.push(()=>{A()}),U.destroyHandlers.push(()=>{j.viewport.removeEventListener("scroll",b),Y?.destroy(),Y=null,Q?.destroy(),Q=null,j.content.style.minWidth="",j.items.style.minWidth="",j.root.classList.remove(`${_}--table`),j.root.removeAttribute("role"),j.root.removeAttribute("aria-colcount"),j.root.removeAttribute("tabindex"),j.viewport.removeAttribute("role"),j.viewport.setAttribute("tabindex","-1"),j.content.removeAttribute("role");let w=j.root.getAttribute("aria-label");if(w)j.items.setAttribute("aria-label",w),j.root.removeAttribute("aria-label");if(j.root.removeAttribute("aria-rowcount"),j.items.setAttribute("role",D.interactive?"listbox":"list"),D.interactive)j.items.setAttribute("tabindex","0")})},destroy(){Y?.destroy(),Y=null,Q?.destroy(),Q=null}}};var i2=(J)=>{let q=J?.handle??null,Y=J?.ghostClass??"vlist-sort-ghost",Q=J?.shiftDuration??150,U=J?.edgeScrollZone??40,j=J?.edgeScrollSpeed??20,K=J?.dragThreshold??5,D=J?.ghostContainer??null;return{name:"withSortable",priority:55,methods:["isSorting"],conflicts:["withGrid","withMasonry","withTable","withScale"],setup(_){let{dom:Z,emitter:L,config:G}=_,{classPrefix:P}=G,{root:F,viewport:$,items:H}=Z,{sizeCache:B}=_,k=G.horizontal,S=k?"translateX":"translateY",v=Q>0?`transform ${Q}ms ease`:"none",g=`${P}--sorting`,p=`${P}--settling`,x=`${P}-item--drag-source`,y=!1,E=-1,A=-1,f=0,m=0,n=0,Y0=0,t=!1,i=null,l=0,T=null,N=0,M=0,O=0,u=null;_.methods.set("isSorting",()=>y||j0);let r=(q0)=>{return q0.closest("[data-index]")},c=(q0)=>{let W0=q0.dataset.index;return W0===void 0?-1:+W0},Q0=(q0)=>{let W0=q0.getBoundingClientRect(),V0=q0.cloneNode(!0);return V0.className=`${P}-item ${Y}`,V0.removeAttribute("data-index"),V0.style.cssText=`position:fixed;pointer-events:none;z-index:10000;width:${W0.width}px;height:${W0.height}px;left:${W0.left}px;top:${W0.top}px;transition:none;will-change:transform`,(D||document.body).appendChild(V0),V0},b=()=>{if(!i)return;let q0=n-M,W0=Y0-O;i.style.left=`${q0}px`,i.style.top=`${W0}px`},w=()=>{let q0=_.dataManager.getTotal();if(q0===0)return 0;let W0=$.getBoundingClientRect(),V0=_.scrollController.getScrollTop(),G0=k?n-M-W0.left+$.scrollLeft+V0:Y0-O-W0.top+V0,O0=G0+N,F0=B.getOffset(E)+B.getSize(E);if(O0>F0){let T0=B.indexAtOffset(O0),u0=B.getOffset(T0)+B.getSize(T0)/2,d0=O0>u0?T0:T0-1;return Math.min(Math.max(d0,E),q0-1)}let C0=B.getOffset(E);if(G0<C0){let T0=B.indexAtOffset(G0),u0=B.getOffset(T0)+B.getSize(T0)/2,d0=G0<u0?T0:T0+1;return Math.max(Math.min(d0,E),0)}return E},s=()=>{let q0=H.children,W0=N;for(let V0=0;V0<q0.length;V0++){let G0=q0[V0],O0=c(G0);if(O0<0||O0===E)continue;let F0=0;if(A>E){if(O0>E&&O0<=A)F0=-W0}else if(A<E){if(O0>=A&&O0<E)F0=W0}let C0=B.getOffset(O0),T0=Math.round(C0+F0);G0.style.transition=v,G0.style.transform=`${S}(${T0}px)`}},W=()=>{let q0=H.children;for(let W0=0;W0<q0.length;W0++){let V0=q0[W0],G0=c(V0);if(G0>=0)V0.style.transform=`${S}(${Math.round(B.getOffset(G0))}px)`;V0.style.transition=""}},X=()=>{let q0=w();if(q0===A)return;A=q0,s(),L.emit("sort:move",{fromIndex:E,currentIndex:A})},V=!1,h=()=>{let q0=$.getBoundingClientRect();if(k)return n<q0.left||n>q0.right;return Y0<q0.top||Y0>q0.bottom},z=()=>{let q0=()=>{if(!y)return;let W0=$.getBoundingClientRect(),V0=0,G0=3;if(k){let F0=n-W0.left,C0=W0.right-n;if(F0<U){let T0=Math.min(G0,1-F0/U);V0=-j*T0*T0}else if(C0<U){let T0=Math.min(G0,1-C0/U);V0=j*T0*T0}}else{let F0=Y0-W0.top,C0=W0.bottom-Y0;if(F0<U){let T0=Math.min(G0,1-F0/U);V0=-j*T0*T0}else if(C0<U){let T0=Math.min(G0,1-C0/U);V0=j*T0*T0}}let O0=h();if(V0!==0){let F0=_.scrollController.getScrollTop(),C0=B.getTotalSize()-(k?$.clientWidth:$.clientHeight);if(V0<0&&F0<=0||V0>0&&F0>=C0)V=O0;else V=!0,_.scrollController.scrollTo(F0+V0)}else V=O0;l=requestAnimationFrame(q0)};l=requestAnimationFrame(q0)},d=()=>{if(l)cancelAnimationFrame(l),l=0},J0=(q0=!1)=>{if(y=!1,t=!1,i&&i.parentNode)i.remove();i=null,T=null;let W0=H.children;for(let G0=0;G0<W0.length;G0++){let O0=W0[G0];O0.classList.remove(x);let F0=c(O0);if(F0>=0)O0.style.transform=`${S}(${Math.round(B.getOffset(F0))}px)`;O0.style.transition=""}d(),F.classList.remove(g),document.body.style.cursor="";let V0=window.getSelection();if(V0)V0.removeAllRanges();if(document.removeEventListener("pointermove",e),document.removeEventListener("pointerup",R),document.removeEventListener("pointercancel",X0),!q0)_.forceRender()},C=(q0)=>{if(_.state.isDestroyed)return;if(y)return;if(j0)z0();if(q0.button!==0)return;let W0=q0.target;if(q){if(!W0.closest(q))return}let V0=r(W0);if(!V0)return;let G0=c(V0);if(G0<0)return;f=q0.clientX,m=q0.clientY,n=q0.clientX,Y0=q0.clientY,E=G0,t=!1,T=V0;let O0=V0.getBoundingClientRect();M=q0.clientX-O0.left,O=q0.clientY-O0.top,document.addEventListener("pointermove",e),document.addEventListener("pointerup",R),document.addEventListener("pointercancel",X0)},e=(q0)=>{if(n=q0.clientX,Y0=q0.clientY,!t){let W0=n-f,V0=Y0-m;if(Math.sqrt(W0*W0+V0*V0)<K)return;if(t=!0,y=!0,A=E,F.classList.add(g),document.body.style.cursor="grabbing",N=B.getSize(E),T)i=Q0(T),T.classList.add(x);let O0=M0();if(O0>=0){let F0=_.dataManager.getItem(O0);u=F0?F0.id:null}else u=null;L.emit("sort:start",{index:E}),z()}if(y){if(q0.preventDefault(),b(),!V)X();else if(h()){if(A!==E)A=E,W()}}},o=(q0,W0)=>{let V0=q0!==W0&&q0>=0&&W0>=0,G0=()=>{if(y=!1,V0){if(F.classList.add(p),L.emit("sort:end",{fromIndex:q0,toIndex:W0}),u!==null)E0(u);J0(!0),requestAnimationFrame(()=>{F.classList.remove(p)})}else F.classList.add(p),L.emit("sort:cancel",{originalItems:_.getAllLoadedItems()}),J0(!1),requestAnimationFrame(()=>{F.classList.remove(p)})};if(!i){G0();return}let O0=$.getBoundingClientRect(),F0=_.scrollController.getScrollTop(),C0=B.getOffset(W0),T0=Q>0?Q:150;if(i.style.transition=`left ${T0}ms ease, top ${T0}ms ease`,k)i.style.left=`${O0.left-$.scrollLeft+C0-F0}px`,i.style.top=`${O0.top}px`;else i.style.left=`${O0.left}px`,i.style.top=`${O0.top+C0-F0}px`;let u0=!1,d0=()=>{if(u0)return;u0=!0,i?.removeEventListener("transitionend",d0),G0()};i.addEventListener("transitionend",d0),setTimeout(d0,T0+50)},R=(q0)=>{if(!t){document.removeEventListener("pointermove",e),document.removeEventListener("pointerup",R),document.removeEventListener("pointercancel",X0),T=null;return}q0.preventDefault(),document.removeEventListener("pointermove",e),document.removeEventListener("pointerup",R),document.removeEventListener("pointercancel",X0),d(),o(E,A)},I=()=>{if(!t)return;document.removeEventListener("pointermove",e),document.removeEventListener("pointerup",R),document.removeEventListener("pointercancel",X0),d(),W(),o(E,E)},X0=()=>{I()};H.addEventListener("pointerdown",C);let j0=!1,_0="",N0=-1,B0=-1,Z0=[],M0=()=>{let q0=_.methods.get("_getFocusedIndex");return q0?q0():-1},E0=(q0)=>{let W0=_.methods.get("_focusById");if(W0)W0(q0)},w0=(q0)=>{let W0=k?$.clientWidth:$.clientHeight,V0=_.scrollController.getScrollTop(),G0=N2(q0,B,V0,W0);if(G0!==V0)_.scrollController.scrollTo(_.adjustScrollPosition(G0))},L0=(q0)=>{Z.liveRegion.textContent="",Z.liveRegion.offsetHeight,Z.liveRegion.textContent=q0},b0=(q0)=>{let W0=_.dataManager.getItem(q0);if(!W0)return"";return H.querySelector(`[data-index="${q0}"]`)?.textContent?.trim()||String(W0.id)},R0=()=>String(_.dataManager.getTotal()),D0=(q0)=>{let W0=H.children;for(let V0=0;V0<W0.length;V0++)W0[V0].style.transition=q0},$0=(q0)=>{let W0=_.dataManager.getItem(q0);if(!W0)return;j0=!0,_0=W0.id,N0=q0,B0=q0;let V0=_.dataManager.getTotal();Z0=[];for(let G0=0;G0<V0;G0++)Z0.push(_.dataManager.getItem(G0));F.classList.add(g),L.emit("sort:start",{index:q0}),a0(),L0(`Grabbed ${b0(q0)}. Current position ${q0+1} of ${R0()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},k0=()=>{if(!j0)return;j0=!1;let q0=B0,W0=b0(q0);D0("none"),F.classList.remove(g),f0(),E0(_0),_.forceRender(),L0(`${W0} dropped. Final position ${q0+1} of ${R0()}.`),Z0=[],requestAnimationFrame(()=>{D0("")})},z0=()=>{if(!j0)return;j0=!1;let q0=N0;if(D0("none"),F.classList.remove(g),f0(),B0!==q0)L.emit("sort:cancel",{originalItems:Z0});E0(_0),_.forceRender(),w0(q0),L0(`Reorder cancelled. Returned to position ${q0+1} of ${R0()}.`),Z0=[],requestAnimationFrame(()=>{D0("")})},h0=(q0)=>{if(!j0)return;let W0=_.dataManager.getTotal(),V0=B0+q0;if(V0<0||V0>=W0)return;let G0=B0,O0=V0;D0("none"),L.emit("sort:end",{fromIndex:G0,toIndex:O0}),B0=O0,E0(_0),_.forceRender(),w0(O0),a0(),L0(`${b0(O0)} moved. New position ${O0+1} of ${R0()}.`),requestAnimationFrame(()=>{D0("")})},I0=`${P}-item--kb-sorting`,f0=()=>{let q0=H.querySelectorAll(`.${I0}`);for(let W0=0;W0<q0.length;W0++)q0[W0].classList.remove(I0)},a0=()=>{f0();let q0=H.querySelector(`[data-id="${_0}"]`);if(q0)q0.classList.add(I0)};_.afterRenderBatch.push(()=>{if(j0)a0()});let D2=(q0)=>{if(_.state.isDestroyed)return;if(y){if(q0.key==="Escape")q0.preventDefault(),q0.stopImmediatePropagation(),I();return}if(j0)switch(q0.key){case" ":case"Enter":q0.preventDefault(),q0.stopImmediatePropagation(),k0();return;case"Escape":q0.preventDefault(),q0.stopImmediatePropagation(),z0();return;case"ArrowUp":case"ArrowLeft":q0.preventDefault(),q0.stopImmediatePropagation(),h0(-1);return;case"ArrowDown":case"ArrowRight":q0.preventDefault(),q0.stopImmediatePropagation(),h0(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 W0=M0();if(W0>=0)q0.preventDefault(),q0.stopImmediatePropagation(),$0(W0)}};F.addEventListener("keydown",D2);let o0=`${P}-sort-instructions`,g0=document.createElement("div");g0.id=o0,g0.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",g0.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",F.appendChild(g0),_.afterRenderBatch.push((q0)=>{for(let W0=0;W0<q0.length;W0++){let V0=q0[W0].element;V0.setAttribute("aria-roledescription","sortable item"),V0.setAttribute("aria-describedby",o0)}}),_.afterRenderBatch.push((q0)=>{if(!y)return;for(let W0=0;W0<q0.length;W0++){let{index:V0,element:G0}=q0[W0];if(V0===E)G0.classList.add(x),T=G0;else{G0.classList.remove(x);let O0=0;if(A>E){if(V0>E&&V0<=A)O0=-N}else if(A<E){if(V0>=A&&V0<E)O0=N}let F0=Math.round(B.getOffset(V0)+O0);G0.style.transform=`${S}(${F0}px)`}}}),_.destroyHandlers.push(()=>{if(j0)z0();J0(),H.removeEventListener("pointerdown",C),F.removeEventListener("keydown",D2),g0.remove()})}}};var a1=(J,q)=>{let Y=new Map,Q=(j)=>Y.get(j)??J,U=i0(Q,q);return{getOffset(j){return U.getOffset(j)},getSize(j){return Q(j)},indexAtOffset(j){return U.indexAtOffset(j)},getTotalSize(){return U.getTotalSize()},getTotal(){return U.getTotal()},rebuild(j){if(j<U.getTotal()){for(let K of Y.keys())if(K>=j)Y.delete(K)}U=i0(Q,j)},isVariable(){return!0},setMeasuredSize(j,K){Y.set(j,K)},isMeasured(j){return Y.has(j)},getEstimatedSize(){return J},measuredCount(){return Y.size}}};var t2=()=>{let J=null;return{name:"withAutoSize",priority:5,setup(q){let Y=q.config.horizontal,U=q.rawConfig.item,j=Y?U.estimatedWidth:U.estimatedHeight;if(j==null||j<=0)throw Error("[vlist/withAutoSize] Requires item.estimatedHeight (or item.estimatedWidth for horizontal)");let K=U.gap??0,D=q.getVirtualTotal(),_=p0(q.rawConfig.padding),Z=e0(_,Y),L=a1(j+K,D),G=q.methods.get("_setSizeCache"),P=q.methods.get("_setConstrainSize");if(!G||!P)throw Error("[vlist/withAutoSize] Incompatible builder version");G(L),P((y)=>L.isMeasured(y));let F=q.scrollController,$=q.state.viewportState,H=new WeakMap,B=0,k=!1,S=2,v=(y)=>{let E=F.getScrollTop(),A=$.containerSize;if(A<=0)return!1;return E>=Math.max(0,y+Z-A)-S},g=()=>{let y=L.getTotalSize(),E=$.containerSize;if(E<=0)return;let A=Math.max(0,y+Z-E);if(A>F.getScrollTop())F.scrollTo(A)},p=()=>{q.updateContentSize(L.getTotalSize())},x=()=>{if(k){let y=q.dom.viewport,E=y.scrollHeight,A=E-y.clientHeight,f=F.getScrollTop(),m=A>0&&f>=A-S,n=q.getVirtualTotal(),Y0=n&&$.renderRange.end>=n-1,t=Math.abs(L.getTotalSize()+Z-E),i=m||Y0&&A>0&&f>=A-t-S;if(p(),k=!1,i)y.scrollHeight,g(),q.forceRender()}};J=new ResizeObserver((y)=>{if(q.state.isDestroyed)return;let E=!1,A=$.visibleRange.start;for(let T of y){let N=H.get(T.target);if(N===void 0)continue;let M=Y?T.borderBoxSize[0].inlineSize:T.borderBoxSize[0].blockSize;if(!L.isMeasured(N)){let O=M+K,u=L.getSize(N);if(L.setMeasuredSize(N,O),E=!0,N<A&&O!==u)B+=O-u;J.unobserve(T.target);let r=T.target;if(Y)r.style.width=`${M}px`;else r.style.height=`${M}px`}}if(!E)return;let f=L.getTotalSize();if(L.rebuild(q.getVirtualTotal()),B)F.scrollTo(F.getScrollTop()+B),B=0;let m=v(f),n=q.getVirtualTotal(),Y0=n&&$.renderRange.end>=n-1,t=q.dom.viewport,i=t.scrollHeight-t.clientHeight,l=i>0&&F.getScrollTop()>=i-S;if(m||Y0||!F.isScrolling()){if(p(),k=!1,m||Y0&&l)t.scrollHeight,g()}else k=!0;q.forceRender()}),q.afterRenderBatch.push((y)=>{for(let{index:E,element:A}of y)if(!L.isMeasured(E))H.set(A,E),J.observe(A)}),q.idleHandlers.push(x),q.destroyHandlers.push(()=>{if(J)J.disconnect(),J=null})},destroy(){if(J)J.disconnect(),J=null}}};function o1(J,q){if(q===!1)return null;return{duration:Math.min(q?.duration??J.duration,1000),easing:q?.easing??J.easing}}function e2(J){let q=J?.duration??200,Y=J?.easing??"cubic-bezier(0.2, 0, 0, 1)",Q={duration:q,easing:Y},U=o1(Q,J?.remove),j=o1(Q,J?.insert),K,D,_=null,Z=null,L=!1,G=null,P=null,F=null,$=null,H=()=>{if(L)return;if(typeof K.dataManager.ensureRange!=="function")return;L=!0,queueMicrotask(()=>{L=!1;let y=K.dataManager;if(typeof y.ensureRange!=="function")return;let E=y.getTotal(),{start:A,end:f}=K.state.viewportState.renderRange;if(E>0&&f>=A)y.ensureRange(A,f).catch(()=>{})})},B=(y)=>K.renderer.getElement(y),k=(y)=>G?G(y):y,S=()=>{let{items:y}=K.dom,E=y.children;for(let A=0;A<E.length;A++)E[A].style.transition="none";y.offsetHeight;for(let A=0;A<E.length;A++)E[A].style.transition=""},v=()=>K.dataManager!==$,g=(y)=>{if(_)_();let{dom:E,sizeCache:A,config:f,emitter:m}=K,n=f.horizontal?"translateX":"translateY",Y0=typeof document<"u"?document.activeElement:null,t=Y0&&E.items.contains(Y0)?parseInt(Y0.dataset?.index??"-1",10):-1,i=K.dataManager.getIndexById(y);if(i<0&&typeof y==="number")i=y;let l=i>=0?B(i):null,T=i>=0?A.getSize(i):0,N=i>=0?A.getOffset(i):0;if(!l||i<0){if(!(!v()&&F?F(y):K.dataManager.removeItem(y)))return console.warn(`[vlist] removeItem() could not find item with id "${y}".`),!1;if(K.forceRender(),S(),m.emit("data:change",{type:"remove",id:y}),H(),t>=0){let C=K.getVirtualTotal();if(C>0)B(Math.min(t,C-1))?.focus()}return m.emit("remove:end",{id:y}),!0}let M=l.cloneNode(!0);M.style.pointerEvents="none",M.style.overflow="hidden",M.removeAttribute("data-index"),M.removeAttribute("data-id"),M.removeAttribute("id"),M.removeAttribute("aria-selected"),M.classList.remove(`${f.classPrefix}-item--selected`);let O=f.horizontal?"scrollLeft":"scrollTop",u=E.viewport[O];if(!(!v()&&F?F(y):K.dataManager.removeItem(y)))return console.warn(`[vlist] removeItem() could not find item with id "${y}".`),!1;K.forceRender(),S(),m.emit("data:change",{type:"remove",id:y}),H();let Q0=u-E.viewport[O];M.style.zIndex="1",E.items.appendChild(M);let b=U,w={duration:b.duration,easing:b.easing},s=[],W=Math.round(N-Q0);s.push(M.animate([{transform:`${n}(${W}px) scaleY(1)`,opacity:1,transformOrigin:D},{transform:`${n}(${Math.round(N)}px) scaleY(0)`,opacity:0,transformOrigin:D}],w));let X=Q0>0,V=E.items.children;for(let d=0;d<V.length;d++){let J0=V[d];if(J0===M)continue;let C=parseInt(J0.dataset?.index??"-1",10);if(C<0||!X&&C<i)continue;let e=A.getOffset(C),o=C>=i?Math.round(e+T-Q0):Math.round(e-Q0),R=Math.round(e);if(o===R)continue;s.push(J0.animate([{transform:`${n}(${o}px)`},{transform:`${n}(${R}px)`}],w))}let h=!1,z=()=>{if(h)return;h=!0,_=null,M.remove();for(let d of s)if(d.playState!=="finished")d.cancel();if(t>=0){let d=K.getVirtualTotal();if(d>0)B(Math.min(t,d-1))?.focus()}m.emit("remove:end",{id:y})};return _=z,Promise.all(s.map((d)=>d.finished)).then(z,z),setTimeout(z,b.duration+50),!0},p=(y)=>{if(y.length===0)return 0;if(y.length===1)return g(y[0])?1:0;if(_)_();if(Z)Z();let{dom:E,sizeCache:A,config:f,emitter:m}=K,n=f.horizontal?"translateX":"translateY",Y0=typeof document<"u"?document.activeElement:null,t=Y0&&E.items.contains(Y0)?parseInt(Y0.dataset?.index??"-1",10):-1,i=[];for(let C of y){let e=K.dataManager.getIndexById(C);if(e<0&&typeof C==="number")e=C;i.push({id:C,layoutIndex:e,el:e>=0?B(e):null,size:e>=0?A.getSize(e):0,offset:e>=0?A.getOffset(e):0})}i.sort((C,e)=>e.layoutIndex-C.layoutIndex);let l=[];for(let C of i){if(!C.el||C.layoutIndex<0)continue;let e=C.el.cloneNode(!0);e.style.pointerEvents="none",e.style.overflow="hidden",e.removeAttribute("data-index"),e.removeAttribute("data-id"),e.removeAttribute("id"),e.removeAttribute("aria-selected"),e.classList.remove(`${f.classPrefix}-item--selected`),l.push({clone:e,offset:C.offset,size:C.size,layoutIndex:C.layoutIndex})}let T=new Map,N=E.items.children,M=-1;for(let C=0;C<N.length;C++){let e=N[C],o=e.dataset?.id,R=parseInt(e.dataset?.index??"-1",10);if(o&&R>=0){if(T.set(o,A.getOffset(R)),R>M)M=R}}let O=K.dataManager.getTotal(),u=Math.min(M+1+i.length,O);for(let C=M+1;C<u;C++){let e=K.dataManager.getItem(C);if(e)T.set(String(e.id),A.getOffset(C))}let r=f.horizontal?"scrollLeft":"scrollTop",c=E.viewport[r],Q0=v(),b=[];for(let C of i)if(!Q0&&F?F(C.id):K.dataManager.removeItem(C.id))b.push(C.id);if(b.length===0)return 0;K.forceRender(),S();for(let C of b)m.emit("data:change",{type:"remove",id:C});if(H(),l.length===0){if(t>=0){let C=K.getVirtualTotal();if(C>0)B(Math.min(t,C-1))?.focus()}for(let C of b)m.emit("remove:end",{id:C});return b.length}let w=c-E.viewport[r],s=U,W={duration:s.duration,easing:s.easing},X=[];l.sort((C,e)=>C.layoutIndex-e.layoutIndex);let V=0;for(let C of l){C.clone.style.zIndex="1",E.items.appendChild(C.clone);let e=Math.round(C.offset-w),o=Math.round(C.offset-V);X.push(C.clone.animate([{transform:`${n}(${e}px) scaleY(1)`,opacity:1,transformOrigin:D},{transform:`${n}(${o}px) scaleY(0)`,opacity:0,transformOrigin:D}],W)),V+=C.size}let h=new Set(l.map((C)=>C.clone)),z=E.items.children;for(let C=0;C<z.length;C++){let e=z[C];if(h.has(e))continue;let o=e.dataset?.id,R=parseInt(e.dataset?.index??"-1",10);if(!o||R<0)continue;let I=T.get(o);if(I===void 0)continue;let X0=A.getOffset(R),j0=Math.round(I-w),_0=Math.round(X0);if(j0===_0)continue;X.push(e.animate([{transform:`${n}(${j0}px)`},{transform:`${n}(${_0}px)`}],W))}let d=!1,J0=()=>{if(d)return;d=!0,_=null;for(let{clone:C}of l)C.remove();for(let C of X)if(C.playState!=="finished")C.cancel();if(t>=0){let C=K.getVirtualTotal();if(C>0)B(Math.min(t,C-1))?.focus()}for(let C of b)m.emit("remove:end",{id:C})};return _=J0,Promise.all(X.map((C)=>C.finished)).then(J0,J0),setTimeout(J0,s.duration+50),b.length},x=(y,E)=>{if(Z)Z();if(_)_();let{dom:A,sizeCache:f,config:m,emitter:n}=K,Y0=m.horizontal?"translateX":"translateY",t=E??0,i=new Map,l=A.items.children;for(let z=0;z<l.length;z++){let d=l[z],J0=d.dataset?.id,C=parseInt(d.dataset?.index??"-1",10);if(J0&&C>=0)i.set(J0,f.getOffset(C))}let T=m.horizontal?"scrollLeft":"scrollTop",N=m.horizontal?"scrollWidth":"scrollHeight",M=m.horizontal?"clientWidth":"clientHeight",O=A.viewport[T],u=A.viewport[N]-A.viewport[M],r=O>=u-1;if(!v()&&P)P(y,t);else K.dataManager.insertItem(y,t);K.forceRender(),S(),n.emit("data:change",{type:"insert",id:y.id}),H();let c=A.viewport[T]-O,Q0=k(t);if(m.reverse&&c===0&&r){let z=A.viewport[N]-A.viewport[M];if(A.viewport[T]=z,c=A.viewport[T]-O,c>0)K.forceRender(),S()}let b=B(Q0),w=j,s={duration:w.duration,easing:w.easing},W=[];if(b){let z=f.getOffset(Q0);W.push(b.animate([{transform:`${Y0}(${Math.round(z)}px) scaleY(0)`,opacity:0,transformOrigin:D},{transform:`${Y0}(${Math.round(z)}px) scaleY(1)`,opacity:1,transformOrigin:D}],s))}let X=A.items.children;for(let z=0;z<X.length;z++){let d=X[z];if(d===b)continue;let J0=d.dataset?.id,C=parseInt(d.dataset?.index??"-1",10);if(!J0||C<0)continue;let e=i.get(J0);if(e===void 0)continue;let o=f.getOffset(C),R=Math.round(e+c),I=Math.round(o);if(R===I)continue;W.push(d.animate([{transform:`${Y0}(${R}px)`},{transform:`${Y0}(${I}px)`}],s))}if(W.length===0)return;let V=!1,h=()=>{if(V)return;V=!0,Z=null;for(let z of W)if(z.playState!=="finished")z.cancel()};Z=h,Promise.all(W.map((z)=>z.finished)).then(h,h),setTimeout(h,w.duration+50)};return{name:"transition",conflicts:["withGrid","withTable","withMasonry"],priority:45,setup(y){if(K=y,D=K.config.reverse?"bottom center":"top center",$=K.dataManager,G=K.methods.get("_dataToLayoutIndex")??null,P=K.methods.get("insertItem")??null,F=K.methods.get("removeItem")??null,U)K.methods.set("removeItem",g),K.methods.set("removeItems",p);if(j)K.methods.set("insertItem",x)},destroy(){if(_)_();if(Z)Z()}}}var pJ=50,uJ=0.1;function n1(J){let q=0,Y=0,Q=0;function U(){return Q>0?Y/Q:0}function j(_){if(q=_,_>uJ&&_<pJ)Y+=_,Q++}function K(){let _=J.getTotal();if(_===0)return 0;let Z=J.getItemSize();if(Z<=0)return 0;let L=J.getContainerSize();if(L<=0)return 0;let G=J.getScrollPosition(),P=typeof J.getColumns==="function"?J.getColumns():1,$=Math.ceil(_/P)*Z,B=Math.min($,j2)-L,k=$-L,S=B>0?k/B:1,v=G*S,g=Math.ceil((v+L)/Z);return Math.min(g*P,_)}function D(){let _=J.getTotal(),Z=K();return{progress:_>0?Math.min(100,Math.max(0,Z/_*100)):0,velocity:q,velocityAvg:U(),itemCount:Z,total:_}}return{getState:D,onVelocity:j}}export{e2 as withTransition,n2 as withTable,i2 as withSortable,a2 as withSnapshots,s2 as withSelection,h2 as withScrollbar,I2 as withScale,u2 as withPage,r2 as withMasonry,d2 as withGroups,l2 as withGrid,t2 as withAutoSize,p2 as withAsync,C2 as vlist,n1 as createStats};
1
+ var l2=3,T0="vlist";var r2=50;var b0=50,y0=2,k0=15,P0=6,S2=16000000,m2=150,Q0=1,s2=(j)=>j<0.5?2*j*j:1-(-2*j+2)**2/2,a2=300;var w0="x",z0=20,j0="_isPlaceholder",C2="__placeholder_";var o2={top:0,right:0,bottom:0,left:0},v0=(j)=>{if(j==null)return o2;if(typeof j==="number")return j===0?o2:{top:j,right:j,bottom:j,left:j};if(j.length===2){let[Z,K]=j;return Z===0&&K===0?o2:{top:Z,right:K,bottom:Z,left:K}}let[$,q,X,J]=j;return $===0&&q===0&&X===0&&J===0?o2:{top:$,right:q,bottom:X,left:J}},C0=(j,$)=>$?j.left+j.right:j.top+j.bottom,f0=(j,$)=>$?j.top+j.bottom:j.left+j.right;function I0(j){let $={visibleIndices:new Int32Array(j),visibleOffsets:new Float64Array(j),visibleSizes:new Float64Array(j),visibleCount:0,startIndex:0,totalSize:0,capacity:j,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,isCompressed:!1,compressionRatio:1,prevAriaTotal:-1,resizeCapacity(q,X,J=l2){if(X<=0||q<=0)return;let Z=Math.ceil(q/X)+J*2;if(Z<=$.capacity)return;let K=Z+8,M=new Int32Array(K),F=new Float64Array(K),U=new Float64Array(K);M.set($.visibleIndices),F.set($.visibleOffsets),U.set($.visibleSizes),$.visibleIndices=M,$.visibleOffsets=F,$.visibleSizes=U,$.capacity=K},clear(){$.visibleCount=0,$.startIndex=0}};return $}var T1=(j,$)=>{let q=$;return{getOffset:(X)=>X*j,getSize:(X)=>j,indexAtOffset:(X)=>{if(q===0||j===0)return 0;return Math.max(0,Math.min(Math.floor(X/j),q-1))},getTotalSize:()=>q*j,getTotal:()=>q,rebuild:(X)=>{q=X},isVariable:()=>!1}},b1=(j,$)=>{let q=$,X=new Float64Array(0),J=(K)=>{q=K,X=new Float64Array(K+1),X[0]=0;for(let M=0;M<K;M++)X[M+1]=X[M]+j(M)};J($);let Z=(K)=>{if(q===0)return 0;if(K<=0)return 0;if(K>=X[q])return q-1;let M=0,F=q-1;while(M<F){let U=M+F+1>>>1;if(X[U]<=K)M=U;else F=U-1}return M};return{getOffset:(K)=>{if(K<=0)return 0;if(K>=q)return X[q];return X[K]},getSize:(K)=>j(K),indexAtOffset:(K)=>Z(K),getTotalSize:()=>X[q]??0,getTotal:()=>q,rebuild:(K)=>J(K),isVariable:()=>!0}},i2=(j,$)=>{if(typeof j==="number")return T1(j,$);return b1(j,$)},q0=(j,$,q,X)=>{if(X===0)return 0;if(!j.isVariable())return Math.ceil(q/j.getSize(0));let J=0,Z=0,K=$;while(K<X&&Z<q)Z+=j.getSize(K),J++,K++;return Math.max(1,J)};function S0(j){let $=[],q=`${j}-item`,X=document.createElement("div");return X.className=q,{acquire(){if($.length>0)return $.pop();return X.cloneNode(!1)},release(J){if(J.className=q,J.removeAttribute("style"),J.removeAttribute("id"),J.removeAttribute("role"),J.removeAttribute("aria-selected"),J.removeAttribute("aria-posinset"),J.removeAttribute("aria-setsize"),J.removeAttribute("data-index"),J.removeAttribute("data-id"),J.innerHTML="",$.length<100)$.push(J)},get size(){return $.length},clear(){$.length=0}}}function p0(j){if(typeof j==="string"){let $=document.querySelector(j);if(!$)throw Error(`[vlist] Container not found: ${j}`);return $}return j}function h0(j,$,q,X,J){let Z=q?`${$} ${$}--horizontal`:$,K=q?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",M=q?"position:relative;height:100%":"position:relative;width:100%",F=` role="${X?"listbox":"list"}"`;if(X)F+=' tabindex="0"';if(J)F+=` aria-label="${J.replace(/"/g,"&quot;")}"`;if(q)F+=' aria-orientation="horizontal"';j.insertAdjacentHTML("beforeend",`<div class="${Z}"><div class="${$}-viewport" style="${K}" tabindex="-1"><div class="${$}-content" style="${M}"${F}></div></div></div>`);let U=j.lastElementChild,B=U.firstElementChild,l=B.firstElementChild,V=document.createElement("div");return V.className=`${$}-live`,V.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",V.setAttribute("aria-live","polite"),V.setAttribute("aria-atomic","true"),V.setAttribute("role","status"),U.appendChild(V),{root:U,viewport:B,content:l,liveRegion:V}}function u0(j){let{state:$,viewport:q,horizontal:X,wheelEnabled:J,onFrame:Z,onIdle:K}=j,M=j.idleTimeout||m2,F=j.scrollTarget??q,U=null,B=null;function l(){let H=X?q.scrollLeft:q.scrollTop;if(Math.abs(H-$.scrollPosition)<0.5)return;$.prevScrollPosition=$.scrollPosition,$.scrollPosition=H,$.scrollDirection=H>$.prevScrollPosition?1:H<$.prevScrollPosition?-1:0,Z(),D()}function V(H){if($.isCompressed)return;let L;if(X){if(Math.abs(H.deltaX)>Math.abs(H.deltaY))return;let W=q.scrollLeft,w=q.scrollWidth-q.clientWidth;if(L=Math.max(0,Math.min(W+H.deltaY*Q0,w)),Math.abs(L-W)<1)return;H.preventDefault(),q.scrollLeft=L}else{let W=q.scrollWidth>q.clientWidth;if(W&&Math.abs(H.deltaX)>Math.abs(H.deltaY))return;if(W&&H.deltaX!==0)H.preventDefault(),q.scrollLeft+=H.deltaX;let w=q.scrollTop,k=q.scrollHeight-q.clientHeight;if(L=Math.max(0,Math.min(w+H.deltaY*Q0,k)),Math.abs(L-w)<1)return;H.preventDefault(),q.scrollTop=L}$.prevScrollPosition=$.scrollPosition,$.scrollPosition=L,$.scrollDirection=L>$.prevScrollPosition?1:-1,Z(),D()}function D(){if(U!==null)clearTimeout(U);U=setTimeout(()=>{U=null,$.scrollDirection=0,K()},M)}function b(){if(B!==null)cancelAnimationFrame(B),B=null}function A(H,L,W,w=s2){b();let k=$.scrollPosition;if(Math.abs(H-k)<1){if(W)W(H);else if(X)q.scrollLeft=H;else q.scrollTop=H;return}let E=performance.now();function R(G){let z=G-E,I=Math.min(z/L,1),y=k+(H-k)*w(I);if(W)W(y);else if(X)q.scrollLeft=y;else q.scrollTop=y;if(!W)$.scrollPosition=y;if(Z(),I<1)B=requestAnimationFrame(R);else B=null}B=requestAnimationFrame(R)}return{attach(){if(F.addEventListener("scroll",l,{passive:!0}),J)F.addEventListener("wheel",V,{passive:!1})},detach(){if(F.removeEventListener("scroll",l),J)F.removeEventListener("wheel",V);if(b(),U!==null)clearTimeout(U),U=null},cancelScroll:b,smoothScrollTo:A}}var d2=[],y1={calculate:d2,commit:d2,afterScroll:d2,idle:d2,resize:d2};function g0(j){if(j.length===0)return y1;let $=[],q=[],X=[],J=[],Z=[];for(let K=0;K<j.length;K++){let M=j[K].hooks;if(M===void 0)continue;if(M.onCalculate!==void 0)$.push(M.onCalculate);if(M.onCommit!==void 0)q.push(M.onCommit);if(M.onAfterScroll!==void 0)X.push(M.onAfterScroll);if(M.onIdle!==void 0)J.push(M.onIdle);if(M.onResize!==void 0)Z.push(M.onResize)}return{calculate:$,commit:q,afterScroll:X,idle:J,resize:Z}}function x0(j,$){for(let q=0;q<j.length;q++)j[q]($)}function m0(j,$){for(let q=0;q<j.length;q++)j[q]($)}function X0(j,$,q){for(let X=0;X<j.length;X++)j[X]($,q)}function d0(j){for(let $=0;$<j.length;$++)j[$]()}function c0(j,$,q){for(let X=0;X<j.length;X++)j[X]($,q)}function l0(j,$,q,X,J,Z,K,M,F){let U=J!==0||Z!==0;return{prefix:j,selectedClass:`${j}-item--selected`,focusedClass:`${j}-item--focused`,placeholderClass:`${j}-item--placeholder`,replacedClass:`${j}-item--replaced`,translateProp:$?"translateX(":"translateY(",itemRole:q?"option":"listitem",interactive:q,horizontal:$,startPadding:X,gap:M,hasCrossPad:U,crossStartProp:U?$?"top":"left":"",crossEndProp:U?$?"bottom":"right":"",crossStartVal:U?J+"px":"",crossEndVal:U?Z+"px":"",oddClass:K,emitter:F??null}}function k1(j,$,q,X,J){if(j.containerSize<=0||j.totalItems===0)return j.clear(),!0;let{scrollPosition:Z,containerSize:K,totalItems:M}=j,F=J??0;j.totalSize=$.getTotalSize();let U=$.indexAtOffset(F>0?Math.max(0,Z-F):Z),B=$.indexAtOffset(Z+K);if(B<M-1)B++;U=Math.max(0,U),B=Math.min(M-1,Math.max(0,B));let l=Math.max(0,U-q),V=Math.min(M-1,B+q),D=Math.ceil(K/1)+q*2+10,b=V-l+1,A=Math.min(b,j.capacity,D);if(l===j.prevRangeStart&&V===j.prevRangeEnd&&!j.renderPending)return!1;j.visibleCount=A,j.startIndex=l;for(let H=0;H<A;H++){let L=l+H;j.visibleIndices[H]=L,j.visibleOffsets[H]=$.getOffset(L),j.visibleSizes[H]=$.getSize(L)}return x0(X.calculate,j),j.prevRangeStart=l,j.prevRangeEnd=V,j.renderPending=!1,!0}var v2={selected:!1,focused:!1};function P1(j,$,q){for(let X=0;X<$;X++)if(j[X]===q)return!0;return!1}var r0,s0,a0,o0;function w1(j,$){if(!P1(r0,s0,$))j.remove(),a0.release(j),o0.delete($)}function z1(j,$,q,X,J,Z,K,M,F,U){let B=F?null:J(),l=j.visibleCount,V=j.visibleIndices,D=K.interactive?String(j.totalItems):"",b=K.interactive&&j.totalItems!==j.prevAriaTotal,A=null;for(let H=0;H<l;H++){let L=V[H],W=j.visibleOffsets[H],w=j.visibleSizes[H],k=F?F(L):B[L];if(U)U(L,v2);else v2.selected=!1,v2.focused=!1;let E=Z.get(L),R=E;if(E===void 0){let G=$.acquire();if(k!==void 0){let y;try{y=X(k,L,v2)}catch(S){if(K.emitter)K.emitter.emit("error",{error:S instanceof Error?S:Error(String(S)),context:`template:render:${L}`});$.release(G);continue}if(typeof y==="string")G.innerHTML=y;else G.innerHTML="",G.appendChild(y)}if(G.setAttribute("role",K.itemRole),G.setAttribute("data-index",String(L)),K.interactive)G.id=K.prefix+"-item-"+L,G.setAttribute("aria-posinset",String(L+1)),G.setAttribute("aria-setsize",D);if(k!==void 0){let y=String(k.id);if(G.setAttribute("data-id",y),y.startsWith(C2))G.classList.add(K.placeholderClass)}if(K.hasCrossPad)G.style.setProperty(K.crossStartProp,K.crossStartVal),G.style.setProperty(K.crossEndProp,K.crossEndVal);if(U){if(G.classList.toggle(K.selectedClass,v2.selected),G.classList.toggle(K.focusedClass,v2.focused),v2.selected)G.setAttribute("aria-selected","true");else G.removeAttribute("aria-selected");G._lastSelected=v2.selected,G._lastFocused=v2.focused}if(K.oddClass)G.classList.toggle(K.oddClass,(L&1)===1);let z=W+K.startPadding;G.style.transform=K.translateProp+z+"px)",G._lastOffset=z;let I=w-K.gap;if(K.horizontal)G.style.width=I+"px";else G.style.height=I+"px";if(G._lastSize=I,G._lastItem=k,Z.set(L,G),A===null)A=document.createDocumentFragment();A.appendChild(G)}else{if(b)E.setAttribute("aria-setsize",D);if(k!==void 0&&R._lastItem!==k){let I=E.getAttribute("data-id"),y=String(k.id),S;try{S=X(k,L,v2)}catch(h){if(K.emitter)K.emitter.emit("error",{error:h instanceof Error?h:Error(String(h)),context:`template:render:${L}`});continue}if(typeof S==="string")E.innerHTML=S;else E.innerHTML="",E.appendChild(S);if(E.setAttribute("data-id",y),R._lastItem=k,I!==y){let h=I!==null&&I.startsWith(C2),r=y.startsWith(C2);if(h!==r)E.classList.toggle(K.placeholderClass,r);if(h&&!r)E.classList.add(K.replacedClass),setTimeout(()=>{E.classList.remove(K.replacedClass)},300)}}if(U){if(R._lastSelected!==v2.selected){if(E.classList.toggle(K.selectedClass,v2.selected),v2.selected)E.setAttribute("aria-selected","true");else E.removeAttribute("aria-selected");R._lastSelected=v2.selected}if(R._lastFocused!==v2.focused)E.classList.toggle(K.focusedClass,v2.focused),R._lastFocused=v2.focused}let G=W+K.startPadding;if(R._lastOffset!==G)E.style.transform=K.translateProp+G+"px)",R._lastOffset=G;let z=w-K.gap;if(R._lastSize!==z){if(K.horizontal)E.style.width=z+"px";else E.style.height=z+"px";R._lastSize=z}}}if(A!==null)q.appendChild(A);if(r0=V,s0=l,a0=$,o0=Z,Z.forEach(w1),K.interactive)j.prevAriaTotal=j.totalItems;m0(M.commit,j)}function Y0(j,$,q,X,J,Z,K,M,F,U,B,l){if(k1(j,$,q,U,F.startPadding))z1(j,X,J,Z,K,M,F,U,B,l)}var Z0=()=>{let j={},$=(Z,K)=>{if(!j[Z])j[Z]=new Set;return j[Z].add(K),()=>q(Z,K)},q=(Z,K)=>{j[Z]?.delete(K)};return{on:$,off:q,emit:(Z,K)=>{j[Z]?.forEach((M)=>{try{M(K)}catch(F){console.error(`[vlist] Error in event handler for "${String(Z)}":`,F)}})},clear:(Z)=>{if(Z)delete j[Z];else for(let K in j)delete j[K]}}};var i0=2,n0=(j=0)=>({velocity:0,sampleCount:0}),t0=(j,$)=>{let q=performance.now(),X=j._lt??q,J=j._lp??$,Z=q-X;if(j._lp=$,j._lt=q,Z===0)return j.sampleCount=Math.min(j.sampleCount+1,5),j;if(Z>100)return j.velocity=0,j.sampleCount=1,j;return j.velocity=Math.abs($-J)/Z,j.sampleCount=Math.min(j.sampleCount+1,5),j};function v1(j){let{item:$}=j;if($.height!==void 0&&typeof $.height==="number"){if(!Number.isFinite($.height)||$.height<=0)throw Error(`vlist: item.height must be a positive number, got ${$.height}`)}if($.width!==void 0&&typeof $.width==="number"){if(!Number.isFinite($.width)||$.width<=0)throw Error(`vlist: item.width must be a positive number, got ${$.width}`)}if($.estimatedHeight!==void 0){if(!Number.isFinite($.estimatedHeight)||$.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${$.estimatedHeight}`)}if($.estimatedWidth!==void 0){if(!Number.isFinite($.estimatedWidth)||$.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${$.estimatedWidth}`)}if($.gap!==void 0){if(typeof $.gap!=="number"||!Number.isFinite($.gap)||$.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${$.gap}`)}if(j.overscan!==void 0){if(typeof j.overscan!=="number"||!Number.isFinite(j.overscan)||j.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${j.overscan}`)}}function C1(j){let $=j.orientation==="horizontal",q=v0(j.padding);return{overscan:j.overscan??l2,horizontal:$,reverse:j.reverse??!1,classPrefix:j.classPrefix??T0,interactive:j.interactive??!0,mainAxisPadding:C0(q,$),crossAxisPadding:f0(q,$),startPadding:$?q.left:q.top,endPadding:$?q.right:q.bottom,crossPadStart:$?q.top:q.left,crossPadEnd:$?q.bottom:q.right,striped:j.item.striped||!1,gap:j.item.gap??0}}function f1(j,$){if($)return j.item.width??j.item.estimatedWidth??100;return j.item.height??j.item.estimatedHeight??40}function I1(j){let $=[...j];return $.sort((q,X)=>(q.priority??50)-(X.priority??50)),$}function S1(j){let $=new Set;for(let q of j){if($.has(q.name))throw Error(`[vlist] Duplicate plugin: ${q.name}`);$.add(q.name)}for(let q of j)if(q.conflicts){for(let X of q.conflicts)if($.has(X))throw Error(`[vlist] Plugin "${q.name}" conflicts with "${X}"`)}}function e0(j,$=[]){v1(j);let q=C1(j),X=f1(j,q.horizontal),J=q.gap,Z=J>0?typeof X==="function"?(X2)=>X(X2)+J:X+J:X,K=typeof X==="number"?X:20,M=j.items?.length??0,F=q.striped?`${q.classPrefix}-item--odd`:"",U=Z0(),B=l0(q.classPrefix,q.horizontal,q.interactive,q.startPadding,q.crossPadStart,q.crossPadEnd,F,J,U),l=$.length>0?I1($):$;if($.length>0)S1(l);let V=p0(j.container),D=h0(V,q.classPrefix,q.horizontal,q.interactive,j.ariaLabel);if(j.scroll?.scrollbar==="none")D.viewport.classList.add(`${q.classPrefix}-viewport--no-scrollbar`);if(j.scroll?.gutter==="stable")D.viewport.classList.add(`${q.classPrefix}-viewport--gutter-stable`);let A=i2(Z,M);if(J>0){let X2=A.getTotalSize;A.getTotalSize=()=>{let d=X2();return d>0?d-J:0}}let H=S0(q.classPrefix),L=Math.ceil(4096/K)+q.overscan*2+8,W=I0(L);W.totalItems=M;let w=j.items??[],k=()=>w,E=new Map,R=n0(),G={velocity:0,reliable:!1},z={range:{start:0,end:-1}},I={scrollPosition:0,direction:"down"},y={scrollPosition:0},S=-1,h=-1,r=-1,c=null,P=g0(l),T=new Map,v=[],Y=[],N=[],O=null,p=null,s=null,o=null,u=null,Q=null,_=null,C=null,g=null,i=null,f=!1,x=!1,a=null,e=0,t=0,Q2=null,Z2=null,G2=null,M2=null,W2=null;if(W.containerSize=q.horizontal?D.viewport.clientWidth:D.viewport.clientHeight,W.crossSize=q.horizontal?D.viewport.clientHeight:D.viewport.clientWidth,$.length>0){let X2={dom:D,sizeCache:A,pool:H,config:q,emitter:U,template:j.item.template,registerMethod(d,U2){T.set(d,U2)},getMethod(d){return T.get(d)},registerClickHandler(d){v.push(d)},registerKeydownHandler(d){Y.push(d)},registerDestroyHandler(d){N.push(d)},setSizeConfig(d){let U2=i2(d,W.totalItems);Object.assign(A,U2)},setVisibleRangeFn(d){},setScrollFns(d,U2){p=d,s=U2},setVirtualTotalFn(d){O=d},getItems:k,getItem(d){return Q?Q(d):w[d]},getState(){return W},rebuildSizeCache(){A.rebuild(W.totalItems)},updateContentSize(d){D.content.style[q.horizontal?"width":"height"]=d+q.mainAxisPadding+"px"},setRenderFn(d,U2){o=d,u=U2},renderIfNeeded(){E2()},forceRender(){D2()},setGetItemFn(d){Q=d},setItemStateFn(d){_=d},getItemStateFn(){return _},get rawSizeSpec(){return X},scrollTo(d){if(s)s(d);else if(q.horizontal)D.viewport.scrollLeft=d;else D.viewport.scrollTop=d},smoothScrollTo(d,U2,m){if(G2)G2(d,U2,void 0,m);else X2.scrollTo(d)},disableDefaultScroll(){f=!0},disableDefaultResize(){x=!0},setScrollTarget(d){a=d},setScrollToPosFn(d){M2=d},setScrollToIndexFn(d){W2=d},onScrollFrame:R2,onScrollIdle:A2,removeItemById(d){if(C)return C(d);let U2=w.findIndex((m)=>m.id===d);if(U2===-1)return-1;return w.splice(U2,1),W.totalItems=w.length,A.rebuild(W.totalItems),q2(),U2},insertItemAt(d,U2){if(g){g(d,U2);return}w.splice(U2,0,d),W.totalItems=w.length,A.rebuild(W.totalItems),q2()},setRemoveItemFn(d){C=d},setInsertItemFn(d){g=d},setUpdateItemFn(d){i=d},getRenderedElement(d){let U2=T.get("_getRenderedElement");if(U2)return U2(d);return E.get(d)??null},setNavConfig(d){if(d.ud!==void 0)e=d.ud;if(d.lr!==void 0)t=d.lr;if(d.scrollIndex)Q2=d.scrollIndex;if(d.navigate)Z2=d.navigate},getNavConfig:(()=>{let d={ud:0,lr:0,scrollIndex:null,navigate:null};return()=>{return d.ud=e,d.lr=t,d.scrollIndex=Q2,d.navigate=Z2,d}})()};for(let d of l)if(d.setup)try{d.setup(X2)}catch(U2){U.emit("error",{error:U2 instanceof Error?U2:Error(String(U2)),context:`plugin:setup:${d.name}`})}}let J2=q.classPrefix+"--scrolling",n=!1,$2=j.scroll?.idleTimeout??m2;function K2(){if(I.scrollPosition=W.scrollPosition,I.direction=W.scrollDirection>0?"down":"up",U.emit("scroll",I),t0(R,W.scrollPosition),G.velocity=R.velocity,G.reliable=R.sampleCount>=i0,U.emit("velocity:change",G),W.startIndex!==S||W.prevRangeEnd!==h)S=W.startIndex,h=W.prevRangeEnd,z.range.start=W.startIndex,z.range.end=W.prevRangeEnd,U.emit("range:change",z)}let B2=!1;function q2(){if(o)return;let X2=A.getTotalSize();if(D.content.style[q.horizontal?"width":"height"]=X2+q.mainAxisPadding+"px",!B2&&X2>S2)B2=!0,U.emit("error",{error:Error(`Content size (${X2}px) exceeds browser limit (${S2}px). Use the scale() plugin for large datasets.`),context:"content:size:overflow"})}function E2(){if(o)o();else Y0(W,A,q.overscan,H,D.content,j.item.template,k,E,B,P,Q,_)}function R2(){if(!n)n=!0,D.root.classList.add(J2);if(E2(),X0(P.afterScroll,W.scrollPosition,W.scrollDirection),W.scrollPosition!==r)r=W.scrollPosition,K2()}function A2(){if(n)n=!1,D.root.classList.remove(J2);W.scrollDirection=0,d0(P.idle),G.velocity=0,G.reliable=!1,U.emit("velocity:change",G),y.scrollPosition=W.scrollPosition,U.emit("scroll:idle",y)}function D2(){if(W.renderPending=!0,u)u();else Y0(W,A,q.overscan,H,D.content,j.item.template,k,E,B,P,Q,_);if(X0(P.afterScroll,W.scrollPosition,W.scrollDirection),W.scrollPosition!==r){if(r=W.scrollPosition,K2(),c!==null)clearTimeout(c);c=setTimeout(A2,$2)}}let b2=u0({state:W,viewport:D.viewport,horizontal:q.horizontal,wheelEnabled:f?!1:j.scroll?.wheel!==!1,idleTimeout:j.scroll?.idleTimeout??m2,...a?{scrollTarget:a}:{},onFrame:R2,onIdle:A2});G2=b2.smoothScrollTo;function y2(X2){let U2=X2.target.closest("[data-index]");if(!U2)return null;let m=parseInt(U2.getAttribute("data-index"),10);if(Number.isNaN(m))return null;let j2=w[m];if(j2===void 0)return null;return{item:j2,index:m}}function F2(X2){for(let U2=0;U2<v.length;U2++)v[U2](X2);let d=y2(X2);if(d)U.emit("item:click",{item:d.item,index:d.index,event:X2})}function k2(X2){let d=y2(X2);if(d)U.emit("item:dblclick",{item:d.item,index:d.index,event:X2})}function H2(X2){let d=y2(X2);if(d)U.emit("item:contextmenu",{item:d.item,index:d.index,event:X2})}function w2(X2){for(let d=0;d<Y.length;d++)Y[d](X2)}if(D.content.addEventListener("click",F2),D.content.addEventListener("dblclick",k2),D.content.addEventListener("contextmenu",H2),Y.length>0)D.content.addEventListener("keydown",w2);let N2=null;if(!x)setTimeout(()=>{if(W.destroyed)return;N2=new ResizeObserver((d)=>{for(let U2 of d){let{width:m,height:j2}=U2.contentRect,Y2=q.horizontal?m:j2,V2=q.horizontal?j2:m;if(Math.abs(Y2-W.containerSize)<1&&Math.abs(V2-W.crossSize)<1)continue;W.containerSize=Y2,W.crossSize=V2,W.resizeCapacity(Y2,K,q.overscan),D2(),c0(P.resize,m,j2),U.emit("resize",{width:m,height:j2})}}),N2.observe(D.viewport)},0);W.resizeCapacity(W.containerSize,K,q.overscan),q2(),W.initialized=!0;let L2=null;if(j.defer)L2=requestAnimationFrame(()=>{if(L2=null,!W.destroyed)E2()});else E2();if(!f)b2.attach();let P2={get element(){return D.root},get items(){return w},get total(){return O?O():w.length},setItems(X2){w=[...X2],W.totalItems=w.length,A.rebuild(W.totalItems),q2(),D2()},appendItems(X2){w.push(...X2),W.totalItems=w.length,A.rebuild(W.totalItems),q2(),D2()},prependItems(X2){w.unshift(...X2),W.totalItems=w.length,A.rebuild(W.totalItems),q2(),D2()},updateItem(X2,d){if(i){if(!i(X2,d))return}else{let U2=w.findIndex((m)=>m.id===X2);if(U2===-1)return;w[U2]={...w[U2],...d}}D2()},insertItem(X2,d){if(g)g(X2,d??W.totalItems);else{if(d===void 0)w.push(X2);else w.splice(d,0,X2);W.totalItems=w.length,A.rebuild(W.totalItems),q2()}D2()},removeItem(X2){if(C){if(C(X2)<0)return}else{let d=w.findIndex((U2)=>U2.id===X2);if(d===-1)return;w.splice(d,1),W.totalItems=w.length,A.rebuild(W.totalItems),q2()}D2()},removeItems(X2){if(C){let j2=0;for(let Y2 of X2)if(C(Y2)>=0)j2++;if(j2>0)D2();return j2}let d=new Set(X2),U2=w.length;w=w.filter((j2)=>!d.has(j2.id));let m=U2-w.length;if(m>0)W.totalItems=w.length,A.rebuild(W.totalItems),q2(),W.renderPending=!0,E2();return m},getItemAt(X2){return w[X2]},getIndexById(X2){return w.findIndex((d)=>d.id===X2)},scrollToIndex(X2,d="start"){let U2=O?O():w.length;if(U2===0)return;let m=Math.max(0,Math.min(X2,U2-1)),j2=typeof d==="string"?d:d.align??"start",Y2=typeof d==="object"?d.behavior:void 0,V2=typeof d==="object"?d.duration:void 0,_2=typeof d==="object"?d.easing:void 0;if(W2&&W2(m,j2,Y2,V2,_2)!==!1)return;let T2=A.getOffset(m),z2=A.getSize(m),O2=W.containerSize,p2=A.getTotalSize(),f2=q.mainAxisPadding,E1=Math.max(0,p2+f2-O2),I2;if(M2)I2=M2(m,A,O2,U2,j2);else{let R1=q.startPadding;switch(j2){case"center":I2=R1+T2-(O2-z2)/2;break;case"end":I2=T2+z2+f2-O2;break;default:I2=T2}I2=Math.max(0,Math.min(I2,E1))}if(Y2==="smooth")b2.smoothScrollTo(I2,V2??a2,s??void 0,_2);else if(s)s(I2);else if(q.horizontal)D.viewport.scrollLeft=I2;else D.viewport.scrollTop=I2},getScrollPosition(){return p?p():W.scrollPosition},on:U.on.bind(U),off:U.off.bind(U),destroy(){if(W.destroyed)return;if(W.destroyed=!0,n)n=!1,D.root.classList.remove(J2);if(L2!==null)cancelAnimationFrame(L2),L2=null;if(c!==null)clearTimeout(c),c=null;b2.detach(),N2?.disconnect(),D.content.removeEventListener("click",F2),D.content.removeEventListener("dblclick",k2),D.content.removeEventListener("contextmenu",H2),D.content.removeEventListener("keydown",w2);let X2=[];for(let d of N)try{d()}catch(U2){X2.push(U2 instanceof Error?U2:Error(String(U2)))}for(let d of l)if(d.destroy)try{d.destroy()}catch(U2){X2.push(U2 instanceof Error?U2:Error(String(U2)))}for(let[,d]of E)d.remove();if(E.clear(),H.clear(),D.root.remove(),U.emit("destroy",void 0),U.clear(),X2.length>0)for(let d of X2)console.error("vlist: error during destroy:",d)}};for(let[X2,d]of T)P2[X2]=d;return P2}var $1=(j,$,q)=>{let X=$.getTotalSize(),J=q===!0||X>S2,Z=X>S2?S2:X,K=X>0?Z/X:1;return{isCompressed:J,actualSize:X,virtualSize:Z,ratio:K}},J1=(j,$,q,X,J,Z)=>{if(X===0||$===0)return Z.start=0,Z.end=-1,Z;if(!J.isCompressed||J.ratio===1){let D=q.indexAtOffset(j),b=q.indexAtOffset(j+$);if(b<X-1)b++;return Z.start=Math.max(0,D),Z.end=Math.min(X-1,Math.max(0,b)),Z}let{virtualSize:K}=J,M=j/K,F=q.getTotalSize(),U=M*F,B=q.indexAtOffset(U),l=q0(q,Math.max(0,B),$,X),V=B+l;return Z.start=Math.max(0,B),Z.end=Math.min(X-1,Math.max(0,V)),Z};var n2=(j,$,q,X,J,Z,K)=>{if(!Z.isCompressed||X===0)return q.getOffset(j);if(Z.ratio===1)return q.getOffset(j)-$;let{virtualSize:M}=Z,F=$/M,U=q.getTotalSize(),B=F*U;return q.getOffset(j)-B},Q1=(j,$,q,X,J,Z="start")=>{if(X===0)return 0;let K;if(J.isCompressed&&J.ratio!==1){K=j/X*J.virtualSize;let B=$.getSize(j);switch(Z){case"center":K-=(q-B)/2*J.ratio;break;case"end":K-=(q-B)*J.ratio;break}return Math.max(0,K)}K=$.getOffset(j);let M=$.getSize(j);switch(Z){case"center":K-=(q-M)/2;break;case"end":K-=q-M;break}let F=J.virtualSize-q;return Math.max(0,Math.min(K,F))};var p1=(j)=>{if(typeof j!=="object"){let $=j??2;return{top:$,right:$,bottom:$,left:$}}return{top:j.top??2,right:j.right??2,bottom:j.bottom??2,left:j.left??2}},t2=(j,$,q={},X="vlist",J=!1,Z)=>{let{autoHide:K=!0,autoHideDelay:M=1000,minThumbSize:F=15,showOnHover:U=!0,showOnViewportEnter:B=!0,clickBehavior:l="scroll"}=q,V=l==="page"?"scroll":l,D=Z??j,b=p1(q.padding),A=J?b.left:b.top,H=J?b.right:b.bottom,L=J?b.bottom:b.right,W=q.hoverZoneWidth??L+16,w=0,k=0,E=0,R=0,G=!1,z=!1,I=0,y=0,S=0,h=null,r=!1,c=null,P=0,T=0,v=null,Y=null,N=null,O=J?"width":"height",p=J?"translateX":"translateY",s=J?(N2)=>N2.clientX:(N2)=>N2.clientY,o=J?"left":"top",u=document.createElement("div"),Q=document.createElement("div"),_=document.createElement("div"),C=J?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",g=()=>{if(D===j)return;let N2=j.offsetTop;u.style[J?"left":"top"]=N2?`calc(var(${C}) + ${N2}px)`:`var(${C})`,_.style[J?"left":"top"]=`${N2}px`},i=()=>{if(u.className=`${X}-scrollbar`,Q.className=`${X}-scrollbar__thumb`,J)u.classList.add(`${X}-scrollbar--horizontal`);if(q.padding!==void 0)D.style.setProperty("--vlist-custom-scrollbar-padding-top",`${b.top}px`),D.style.setProperty("--vlist-custom-scrollbar-padding-right",`${b.right}px`),D.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${b.bottom}px`),D.style.setProperty("--vlist-custom-scrollbar-padding-left",`${b.left}px`);if(q.minThumbSize!==void 0)u.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${F}px`);if(u.appendChild(Q),D.appendChild(u),_.className=`${X}-scrollbar__hover`,J)_.classList.add(`${X}-scrollbar__hover--horizontal`),_.style.height=`${W}px`;else _.style.width=`${W}px`;if(D.appendChild(_),D!==j)g()},f=()=>{if(h)clearTimeout(h),h=null},x=()=>{if(!K)return;f(),h=setTimeout(e,M)},a=()=>{if(w<=k)return;if(f(),!r)u.classList.add(`${X}-scrollbar--visible`),r=!0;if(K&&!G&&!z)x()},e=()=>{if(G||z)return;u.classList.remove(`${X}-scrollbar--visible`),r=!1},t=(N2,L2)=>{if(w=N2,k=L2,g(),w<=k){u.style.display="none",e();return}u.style.display="";let P2=Math.max(0,k-A-H),X2=k/w;if(E=Math.max(F,X2*P2),Q.style[O]=`${E}px`,R=P2-E,Q2(S),!K)a()},Q2=(N2)=>{if(S=N2,w<=k||R<=0)return;let L2=w-k,P2=Math.min(1,Math.max(0,N2/L2));Q.style.transform=`${p}(${P2*R}px)`},Z2=(N2)=>{if(N2.target===Q||V!=="jump"||R<=0)return;let L2=w-k,P2=u.getBoundingClientRect(),X2=s(N2)-P2[o],d=Math.max(0,Math.min(X2-E/2,R));$(d/R*L2),a()},G2=()=>{if(v!==null)clearTimeout(v),v=null;if(Y!==null)cancelAnimationFrame(Y),Y=null;N=null},M2=(N2)=>{let L2=R>0?T/N2*R:0;if(P<L2)return-1;if(P>=L2+E)return 1;return 0},W2=()=>{let N2=w-k,L2=M2(N2);if(L2===0){G2();return}if(L2===-1){if(T<=0){G2();return}let P2=Math.max(0,T-k);T=P2,$(P2)}else{if(T>=N2){G2();return}let P2=Math.min(N2,T+k);T=P2,$(P2)}a()},J2=(N2)=>{if(N===null){N=N2,Y=requestAnimationFrame(J2);return}let L2=w-k,P2=N2-N;N=N2;let X2=M2(L2);if(X2===0){G2();return}let d=12*k/1000,U2=Math.min(d*P2,k);if(X2===-1){if(T<=0){G2();return}let m=Math.max(0,T-U2);T=m,$(m)}else{if(T>=L2){G2();return}let m=Math.min(L2,T+U2);T=m,$(m)}f(),Y=requestAnimationFrame(J2)},n=()=>{G2(),x(),document.removeEventListener("mouseup",n)},$2=(N2)=>{if(N2.target===Q||V!=="scroll")return;N2.preventDefault();let L2=u.getBoundingClientRect();P=s(N2)-L2[o],T=S,W2(),v=setTimeout(()=>{Y=requestAnimationFrame(J2)},350),document.addEventListener("mouseup",n)},K2=(N2)=>{N2.preventDefault(),N2.stopPropagation(),G=!0,I=s(N2),y=S,f(),u.classList.add(`${X}-scrollbar--dragging`),document.addEventListener("mousemove",B2),document.addEventListener("mouseup",q2)},B2=(N2)=>{if(!G)return;let L2=s(N2)-I,P2=R>0?L2/R:0,X2=w-k,d=P2*X2,U2=Math.max(0,Math.min(y+d,X2));Q.style.transform=`${p}(${U2/X2*R}px)`,$(U2)},q2=()=>{if(G=!1,u.classList.remove(`${X}-scrollbar--dragging`),K&&!z)x();document.removeEventListener("mousemove",B2),document.removeEventListener("mouseup",q2)},E2=J?(N2)=>N2.touches[0].clientX:(N2)=>N2.touches[0].clientY,R2=(N2)=>{N2.stopPropagation(),G=!0,I=E2(N2),y=S,f(),u.classList.add(`${X}-scrollbar--dragging`)},A2=(N2)=>{if(!G)return;N2.preventDefault();let L2=E2(N2)-I,P2=R>0?L2/R:0,X2=w-k,d=P2*X2,U2=Math.max(0,Math.min(y+d,X2));Q.style.transform=`${p}(${U2/X2*R}px)`,$(U2)},D2=()=>{if(G=!1,u.classList.remove(`${X}-scrollbar--dragging`),K)x()},b2=(N2)=>{if(N2.target===Q)return;if(R<=0)return;let L2=N2.touches[0],P2=u.getBoundingClientRect(),X2=(J?L2.clientX:L2.clientY)-P2[o];if(V==="jump"){let d=w-k,U2=Math.max(0,Math.min(X2-E/2,R));$(U2/R*d)}else P=X2,T=S,W2();a()},y2=()=>{if(B)a()},F2=()=>{if(!G){if(z=!1,K)x()}},k2=()=>{z=!0,f(),a()},H2=()=>{if(z=!1,!G&&K)x()},w2=()=>{if(f(),G2(),c!==null)cancelAnimationFrame(c),c=null;u.removeEventListener("click",Z2),u.removeEventListener("mousedown",$2),u.removeEventListener("mouseenter",k2),document.removeEventListener("mouseup",n),u.removeEventListener("mouseleave",H2),u.removeEventListener("touchstart",b2),Q.removeEventListener("mousedown",K2),Q.removeEventListener("touchstart",R2),Q.removeEventListener("touchmove",A2),Q.removeEventListener("touchend",D2),j.removeEventListener("mouseenter",y2),j.removeEventListener("mouseleave",F2),document.removeEventListener("mousemove",B2),document.removeEventListener("mouseup",q2),_.removeEventListener("click",Z2),_.removeEventListener("mousedown",$2),_.removeEventListener("mouseenter",k2),_.removeEventListener("mouseleave",H2),_.remove(),D.style.removeProperty("--vlist-custom-scrollbar-padding-top"),D.style.removeProperty("--vlist-custom-scrollbar-padding-right"),D.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),D.style.removeProperty("--vlist-custom-scrollbar-padding-left"),u.remove()};if(i(),u.addEventListener("click",Z2),u.addEventListener("mousedown",$2),u.addEventListener("mouseenter",k2),u.addEventListener("mouseleave",H2),u.addEventListener("touchstart",b2,{passive:!0}),Q.addEventListener("mousedown",K2),Q.addEventListener("touchstart",R2,{passive:!0}),Q.addEventListener("touchmove",A2,{passive:!1}),Q.addEventListener("touchend",D2,{passive:!0}),j.addEventListener("mouseenter",y2),j.addEventListener("mouseleave",F2),_.addEventListener("click",Z2),_.addEventListener("mousedown",$2),U)_.addEventListener("mouseenter",k2),_.addEventListener("mouseleave",H2);return{show:a,hide:e,updateBounds:t,updatePosition:Q2,isVisible:()=>r,destroy:w2}};var h1=0.65,j1=0.5,q1=1.7,u1=0.95,g1=0.1,x2=5,x1=100;function K0(j){let $=j?.force??!1,q,X,J,Z,K,M={isCompressed:!1,actualSize:0,virtualSize:0,ratio:1},F=!1,U=0,B=null,l=!1,V=0,D=0,b=null,A=null,H=0,L=0,W=null,w=new Float64Array(x2),k=new Float64Array(x2),E=0,R=0,G={start:0,end:-1},z=-1,I=null;function y(){return Math.max(0,M.virtualSize+U-q.containerSize)}function S(){if(M.virtualSize<=0)return 0;return Math.max(0,q.containerSize*(1-M.ratio))}function h(Q){let _=q.totalItems;if(M=$1(_,X,$),M.isCompressed&&!F)s(Q);else if(!M.isCompressed&&F)o(Q);if(M.isCompressed){if(U=S(),q.isCompressed=!0,q.compressionRatio=M.ratio,Q.updateContentSize(M.virtualSize+U),B)B.updateBounds(M.virtualSize+U,q.containerSize)}}let r=null,c=null,P=null,T=null,v=null;function Y(Q){V=Q,D=Q,q.prevScrollPosition=q.scrollPosition,q.scrollPosition=Q,q.scrollDirection=Q>q.prevScrollPosition?1:-1,I.forceRender()}function N(){if(b!==null)cancelAnimationFrame(b),b=null;if(A!==null)cancelAnimationFrame(A),A=null}function O(Q){N(),Y(Math.max(0,Math.min(Q,y())))}function p(Q,_,C=s2){N();let g=Math.max(0,Math.min(Q,y())),i=V;if(Math.abs(g-i)<j1){Y(g);return}let f=performance.now(),x=(a)=>{let e=Math.min((a-f)/_,1);if(Y(i+(g-i)*C(e)),e<1)A=requestAnimationFrame(x);else A=null};A=requestAnimationFrame(x)}function s(Q){F=!0,q.isCompressed=!0;let _=Z?"scrollLeft":"scrollTop",C=Z?"overflowX":"overflow",g=J[_];if(J.style[C]="hidden",J[_]=0,g>0)V=g,D=g,q.scrollPosition=g;U=S();let i=()=>{let t=D-V,Q2=y();if(Math.abs(t)<j1)V=Math.max(0,Math.min(D,Q2)),D=V,b=null;else V+=t*h1,V=Math.max(0,Math.min(V,Q2)),b=requestAnimationFrame(i);q.prevScrollPosition=q.scrollPosition,q.scrollPosition=V,q.scrollDirection=V>q.prevScrollPosition?1:-1,Q.forceRender()};r=(t)=>{t.preventDefault();let Q2=y();if(D=Math.max(0,Math.min(D+t.deltaY*M.ratio*q1,Q2)),b===null)b=requestAnimationFrame(i)},J.addEventListener("wheel",r,{passive:!1});let f=()=>{if(W!==null)cancelAnimationFrame(W),W=null};c=(t)=>{if(f(),b!==null)cancelAnimationFrame(b),b=null;let Q2=t.touches[0];if(!Q2)return;let Z2=Z?Q2.clientX:Q2.clientY;H=Z2,L=V,E=1,R=0,w[0]=performance.now(),k[0]=Z2},P=(t)=>{t.preventDefault();let Q2=t.touches[0];if(!Q2)return;let Z2=Z?Q2.clientX:Q2.clientY,G2=performance.now(),M2=E<x2?E:R;if(w[M2]=G2,k[M2]=Z2,E<x2)E++;else R=(R+1)%x2;let W2=H-Z2,J2=y(),n=Math.max(0,Math.min(L+W2*M.ratio*q1,J2));V=n,D=n,q.prevScrollPosition=q.scrollPosition,q.scrollPosition=n,q.scrollDirection=n>q.prevScrollPosition?1:-1,Q.forceRender()},T=()=>{let t=performance.now(),Q2=1/0,Z2=0,G2=-1,M2=0,W2=0;for(let K2=0;K2<E;K2++){let B2=(R+K2)%x2,q2=w[B2];if(t-q2>=x1)continue;W2++;let E2=k[B2];if(q2<Q2)Q2=q2,Z2=E2;if(q2>G2)G2=q2,M2=E2}let J2=0;if(W2>=2){let K2=G2-Q2;if(K2>0)J2=(Z2-M2)/K2}if(E=0,R=0,Math.abs(J2)<g1)return;let n=J2*16,$2=()=>{if(n*=u1,Math.abs(n)<0.5){W=null;return}let K2=y(),B2=V+n;if(B2=Math.max(0,Math.min(B2,K2)),B2<=0&&n<0||B2>=K2&&n>0){V=B2,D=B2,q.scrollPosition=B2,Q.forceRender(),W=null;return}V=B2,D=B2,q.prevScrollPosition=q.scrollPosition,q.scrollPosition=B2,q.scrollDirection=B2>q.prevScrollPosition?1:-1,Q.forceRender(),W=requestAnimationFrame($2)};W=requestAnimationFrame($2)},J.addEventListener("touchstart",c,{passive:!0}),J.addEventListener("touchmove",P,{passive:!1}),J.addEventListener("touchend",T,{passive:!0}),J.addEventListener("touchcancel",T,{passive:!0}),v=()=>{if(J[_]!==0)J[_]=0},J.addEventListener("scroll",v,{passive:!0});let x=(t)=>{if(V=t,D=t,b!==null)cancelAnimationFrame(b),b=null;q.prevScrollPosition=q.scrollPosition,q.scrollPosition=t,q.scrollDirection=t>q.prevScrollPosition?1:-1,Q.forceRender()},a=Q.getMethod("_scrollbar:setCallback"),e=Q.getMethod("_scrollbar:getInstance");if(a&&e){a(x);let t=e();if(t)B=t,l=!1,B.updateBounds(M.virtualSize+U,q.containerSize)}else if(!B){let t=Q.config.classPrefix;if(B=t2(J,x,{},t,Z,Q.dom.root),l=!0,!J.classList.contains(`${t}-viewport--custom-scrollbar`))J.classList.add(`${t}-viewport--custom-scrollbar`);B.updateBounds(M.virtualSize+U,q.containerSize)}}function o(Q){F=!1,q.isCompressed=!1,q.compressionRatio=1,V=0,D=0,E=0,R=0,u();let _=Z?"overflowX":"overflow";J.style[_]="auto",U=0,Q.updateContentSize(X.getTotalSize())}function u(){if(b!==null)cancelAnimationFrame(b),b=null;if(A!==null)cancelAnimationFrame(A),A=null;if(W!==null)cancelAnimationFrame(W),W=null;if(r)J.removeEventListener("wheel",r),r=null;if(c)J.removeEventListener("touchstart",c),c=null;if(P)J.removeEventListener("touchmove",P),P=null;if(T)J.removeEventListener("touchend",T),J.removeEventListener("touchcancel",T),T=null;if(v)J.removeEventListener("scroll",v),v=null;if(B&&l)B.destroy();B=null,l=!1;let Q=Z?"scrollLeft":"scrollTop";if(J&&J[Q]!==0)J[Q]=0}return{name:"scale",priority:20,setup(Q){q=Q.getState(),X=Q.sizeCache,J=Q.dom.viewport,Z=Q.config.horizontal,K=Q.config.overscan,I=Q,Q.registerMethod("_updateCompressionMode",()=>h(Q)),Q.setScrollFns(()=>V,(_)=>{if(!M.isCompressed||!F){let g=Z?"scrollLeft":"scrollTop";J[g]=_;return}if(N(),W!==null)cancelAnimationFrame(W),W=null;let C=_*M.ratio;Y(Math.max(0,Math.min(C,y())))}),Q.setScrollToIndexFn((_,C,g,i,f)=>{if(!M.isCompressed||!F)return!1;let x=Q1(_,X,q.containerSize,q.totalItems,M,C);if(g==="smooth")p(x,i??a2,f);else O(x)}),h(Q),z=q.totalItems,Q.registerDestroyHandler(u)},hooks:{onCalculate(Q){if(Q.totalItems!==z&&I)z=Q.totalItems,h(I);if(!M.isCompressed||!F)return;let _=Q.totalItems;if(_===0||Q.containerSize<=0){Q.visibleCount=0;return}J1(Q.scrollPosition,Q.containerSize,X,_,M,G);let C=Math.max(0,G.start-K),g=Math.min(_-1,G.end+K),i=Math.min(g-C+1,Q.capacity);Q.visibleCount=i,Q.startIndex=C;for(let f=0;f<i;f++){let x=C+f;Q.visibleIndices[f]=x,Q.visibleOffsets[f]=n2(x,Q.scrollPosition,X,_,Q.containerSize,M),Q.visibleSizes[f]=X.getSize(x)}Q.prevRangeStart=C,Q.prevRangeEnd=g},onAfterScroll(Q){if(B&&F)B.updatePosition(Q),B.show()},onResize(){if(F){if(U=S(),B)B.updateBounds(M.virtualSize+U,q.containerSize);let Q=y();if(V>Q)V=Q,D=Q,q.scrollPosition=Q}}},destroy(){u()}}}function U0(j){let $=null,q,X,J=0,Z=0;return{name:"scrollbar",priority:15,setup(K){let{dom:M,config:F}=K,{classPrefix:U,horizontal:B}=F;q=K.getState(),X=K.sizeCache;let l=(V)=>{if(B)M.viewport.scrollLeft=V;else M.viewport.scrollTop=V};if(K.registerMethod("_scrollbar:setCallback",(V)=>{l=V}),$=t2(M.viewport,(V)=>{l(V)},j,U,B,M.root),M.viewport.classList.add(`${U}-viewport--custom-scrollbar`),j?.gutter)M.viewport.classList.add(`${U}-viewport--gutter`);queueMicrotask(()=>{if(!q.isCompressed)$?.updateBounds(X.getTotalSize(),q.containerSize)}),K.registerMethod("_scrollbar:getInstance",()=>$),K.registerDestroyHandler(()=>{if($?.destroy(),$=null,M.viewport.classList.remove(`${U}-viewport--custom-scrollbar`),j?.gutter)M.viewport.classList.remove(`${U}-viewport--gutter`)})},hooks:{onAfterScroll(K){if(!q.isCompressed){let M=X.getTotalSize(),F=q.containerSize;if(M!==J||F!==Z)J=M,Z=F,$?.updateBounds(M,F)}$?.updatePosition(K),$?.show()},onResize(){if(!q.isCompressed){let K=X.getTotalSize(),M=q.containerSize;J=K,Z=M,$?.updateBounds(K,M)}}},destroy(){$?.destroy(),$=null}}}var X1=(j)=>{let $=Math.max(1,Math.floor(j.columns)),q=j.gap??0,X=j.isHeaderFn,J={row:0,col:0},Z=(b)=>{if(b<=0)return 0;if(!X)return Math.ceil(b/$);let A=0,H=0,L=0;for(let W=0;W<b;W++)if(X(W)){if(L++,H)A++,H=0;A++,H=0}else if(H++,H>=$)A++,H=0;if(H)A++;return A},K=(b)=>{return J.row=M(b),J.col=F(b),J},M=(b)=>{if(!X)return Math.floor(b/$);let A=0,H=0;for(let L=0;L<=b;L++)if(X(L)){if(H)A++,H=0;if(L===b)return A;A++,H=0}else{if(L===b)return A;if(H++,H>=$)A++,H=0}return console.warn(`⚠️ getRow(${b}) fell through - returning ${A}`),A},F=(b)=>{if(!X)return b%$;if(X(b))return 0;let A=0;for(let H=0;H<=b;H++)if(X(H))A=0;else{if(H===b)return A;if(A++,A>=$)A=0}return A},U=(b,A,H)=>{if(H<=0)return{start:0,end:-1};if(!X){let E=Math.max(0,b*$),R=Math.min(H-1,(A+1)*$-1);return{start:E,end:R}}let L=-1,W=-1,w=0,k=0;for(let E=0;E<H;E++){if(X(E)){if(k)w++,k=0;if(w>=b&&w<=A){if(L<0)L=E;W=E}w++,k=0}else{if(w>=b&&w<=A){if(L<0)L=E;W=E}if(k++,k>=$)w++,k=0}if(w>A&&!k)break}if(L<0)return{start:0,end:-1};return{start:L,end:W}},B=(b,A,H)=>{if(A<0||A>=$)return-1;let L=b*$+A;if(L<0||L>=H)return-1;return L},l=(b)=>{let A=($-1)*q;return Math.max(0,(b-A)/$)};return{get columns(){return $},get gap(){return q},update:(b)=>{if(b.columns!==void 0)$=Math.max(1,Math.floor(b.columns));if(b.gap!==void 0)q=b.gap;if(b.isHeaderFn!==void 0)X=b.isHeaderFn},getTotalRows:Z,getPosition:K,getRow:M,getCol:F,getItemRange:U,getItemIndex:B,getColumnWidth:l,getColumnOffset:(b,A)=>{let H=l(A);return b*(H+q)}}};var h2={selected:!1,focused:!1};function B0(j){if(!j.columns||j.columns<1)throw Error("[vlist] grid: columns must be >= 1");let $,q,X,J,Z,K,M,F,U,B,l=null,V=new Map,D=0,b=-1,A=-1,H=!0;function L(){return $.getTotalRows(X.totalItems)}function W(G){let z=$.getRow(G),I=$.getCol(G),y=$.getColumnOffset(I,D),S=q.getOffset(z);if(F)return`translate(${Math.round(S)}px, ${Math.round(y)}px)`;return`translate(${Math.round(y)}px, ${Math.round(S)}px)`}function w(G,z){let I=$.getRow(z),y=$.getColumnWidth(D),S=q.getSize(I)-$.gap;if(F)G.style.width=`${S}px`,G.style.height=`${y}px`;else G.style.width=`${y}px`,G.style.height=`${S}px`}function k(G,z,I,y){if(y)y(I,h2);else h2.selected=!1,h2.focused=!1;let S=K(z,I,h2);if(typeof S==="string")G.innerHTML=S;else G.innerHTML="",G.appendChild(S)}function E(){if(X.destroyed)return;let{scrollPosition:G,containerSize:z}=X;if(!H&&G===b&&z===A)return;b=G,A=z,H=!1;let I=L();if(z<=0||I===0)return;let y=q.indexAtOffset(G),S=q.indexAtOffset(G+z);if(S<I-1)S++;y=Math.max(0,y),S=Math.min(I-1,Math.max(0,S));let h=Math.max(0,y-B),r=Math.min(I-1,S+B);if(h===X.prevRangeStart&&r===X.prevRangeEnd&&!X.renderPending)return;let c=$.getItemRange(h,r,X.totalItems);V.forEach((p,s)=>{if(s<c.start||s>c.end)p.el.remove(),J.release(p.el),V.delete(s)});let P=`${U}-item ${U}-grid-item`,T=l?.()??null,v=T?`${U}-item--selected`:"",Y=T?`${U}-item--focused`:"";for(let p=c.start;p<=c.end;p++){let s=M(p);if(!s)continue;let o=V.get(p);if(o===void 0){let u=J.acquire();u.className=P,u.setAttribute("data-index",String(p)),u.setAttribute("data-id",String(s.id)),k(u,s,p,T),o={el:u,lastId:s.id},V.set(p,o),Z.appendChild(u)}else if(o.lastId!==s.id)o.el.setAttribute("data-id",String(s.id)),o.lastId=s.id,k(o.el,s,p,T);if(T)if(T(p,h2),o.el.classList.toggle(v,h2.selected),o.el.classList.toggle(Y,h2.focused),h2.selected)o.el.setAttribute("aria-selected","true");else o.el.removeAttribute("aria-selected");w(o.el,p),o.el.style.transform=W(p)}let N=q.getTotalSize();Z.style[F?"width":"height"]=N+"px",X.prevRangeStart=h,X.prevRangeEnd=r,X.renderPending=!1;let O=c.end-c.start+1;X.visibleCount=Math.min(O,X.capacity),X.startIndex=c.start;for(let p=0;p<X.visibleCount;p++){let s=c.start+p,o=$.getRow(s);X.visibleIndices[p]=s,X.visibleOffsets[p]=q.getOffset(o),X.visibleSizes[p]=q.getSize(o)}}function R(){if(X.destroyed)return;q.rebuild(L()),X.prevRangeStart=-1,X.prevRangeEnd=-1,X.renderPending=!0,H=!0,E()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(G){let z=j.gap??0;$=X1({columns:j.columns,gap:z}),q=G.sizeCache,X=G.getState(),J=G.pool,Z=G.dom.content,K=G.template,F=G.config.horizontal,U=G.config.classPrefix,B=G.config.overscan,M=G.getItem.bind(G),l=()=>G.getItemStateFn(),D=X.crossSize;let I=G.rawSizeSpec,y;if(typeof I==="function"){let h={columnWidth:$.getColumnWidth(D),columns:j.columns,gap:z};y=I(0,h),G.setSizeConfig((r)=>{h.columnWidth=$.getColumnWidth(D);let c=r*j.columns;return I(c,h)+z})}else if(y=I,z>0)G.setSizeConfig(y+z);if(q.rebuild(L()),z>0){let S=q.getTotalSize;q.getTotalSize=()=>{let h=S();return h>0?h-z:0}}G.setVirtualTotalFn(()=>L()),G.dom.root.classList.add(`${U}--grid`),G.setRenderFn(E,R),G.registerMethod("getGridLayout",()=>$),G.registerMethod("updateGrid",(S)=>{if(S.columns!==void 0){if(!Number.isInteger(S.columns)||S.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(S.gap!==void 0&&S.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if($.update(S),S.gap!==void 0||S.columns!==void 0){let h=$.gap;if(typeof I==="function"){let r={columnWidth:$.getColumnWidth(D),columns:$.columns,gap:h};G.setSizeConfig((c)=>{r.columnWidth=$.getColumnWidth(D);let P=c*$.columns;return I(P,r)+h})}else G.setSizeConfig(y+h);q.rebuild(L())}if(S.columns!==void 0)G.setNavConfig({ud:$.columns});D=X.crossSize,R()}),G.registerMethod("scrollToIndex",(S,h="start")=>{let r=$.getRow(S),c=L();if(c===0)return;let P=Math.max(0,Math.min(r,c-1)),T=q.getOffset(P),v=q.getSize(P),Y=X.containerSize,N=q.getTotalSize(),O=Math.max(0,N-Y),p=typeof h==="string"?h:h.align??"start",s=typeof h==="object"?h.behavior:void 0,o=typeof h==="object"?h.duration:void 0,u;switch(p){case"center":u=T-(Y-v)/2;break;case"end":u=T-Y+v;break;default:u=T}if(u=Math.max(0,Math.min(u,O)),s==="smooth"&&o&&o>0)G.smoothScrollTo(u,o);else G.scrollTo(u)}),G.setNavConfig({total:()=>X.totalItems,ud:j.columns,lr:1,scrollIndex:(S)=>$.getRow(S)}),G.registerDestroyHandler(()=>{for(let[,S]of V)S.el.remove();V.clear(),G.dom.root.classList.remove(`${U}--grid`)})},hooks:{onResize(G,z){let I=X.crossSize;if(Math.abs(I-D)<1)return;D=I,V.forEach((y,S)=>{w(y.el,S),y.el.style.transform=W(S)})}},destroy(){V.clear()}}}function W0(){return{name:"a11y",priority:55,setup(j){if(j.getItemStateFn())return;let{dom:$,config:q,sizeCache:X}=j,J=j.getState(),Z=j.emitter,K=q.classPrefix,M=$.liveRegion,F=-1,U=!1,B,l=-1,V=(z)=>j.getItem(z),D=()=>J.totalItems,b={id:0,index:0},A={selected:[],items:[]};j.setItemStateFn((z,I)=>{I.selected=l===z,I.focused=U&&F===z});function H(z){M.textContent="",M.textContent=z}let L=(z,I,y)=>{let S=z;while(S>=0&&S<y){let h=V(S);if(!h||!h.__groupHeader)return S;S+=I}S=z-I;while(S>=0&&S<y){let h=V(S);if(!h||!h.__groupHeader)return S;S-=I}return z},W=(z)=>{let I=j.getNavConfig(),y=I.scrollIndex?I.scrollIndex(z):z,S=X.getOffset(y),h=X.getSize(y),r=J.scrollPosition,c=J.containerSize,P=q.startPadding,T=q.endPadding,v=S+P,Y=v+h,N=r;if(v<r)N=Math.max(0,S);else if(Y>r+c)N=Y+T-c;if(N!==r)J.scrollPosition=N,j.scrollTo(N)},w=(z,I)=>{if($.content.setAttribute("aria-activedescendant",`${K}-item-${z}`),I)W(z);j.forceRender()},k=(z)=>{F=z,U=!0,w(z,!0);let I=V(z);if(I)b.id=I.id,b.index=z,Z.emit("focus:change",b),H(`Item ${z+1} of ${D()}`)},E=(z,I)=>{if(F=z,I)U=!0;let y=V(z);if(y&&B===y.id)B=void 0,l=-1;else B=y?.id,l=y?z:-1;if(w(z,I),B!==void 0&&y&&B===y.id)A.selected[0]=B,A.selected.length=1,A.items[0]=y,A.items.length=1,H(`Selected, item ${z+1} of ${D()}`);else A.selected.length=0,A.items.length=0,H("Deselected");Z.emit("selection:change",A)},R=()=>{if(J.destroyed)return;if(!$.content.matches(":focus-visible"))return;let z=D();if(z===0)return;let I=F>=0?Math.min(F,z-1):0;I=L(I,1,z),k(I)},G=(z)=>{if(J.destroyed)return;let I=z.relatedTarget;if(I&&$.root.contains(I))return;U=!1,$.content.removeAttribute("aria-activedescendant"),j.forceRender()};$.content.addEventListener("focusin",R),$.content.addEventListener("focusout",G),j.registerKeydownHandler((z)=>{if(J.destroyed)return;let I=D();if(I===0)return;let y=F,S=y;if(z.key===" "||z.key==="Enter"){if(y>=0){let r=V(y);if(r&&!r.__groupHeader)E(y,!0)}z.preventDefault();return}let h=j.getNavConfig();if(h.navigate)switch(z.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":S=h.navigate(y,z.key,I);break;default:return}else{let r=h.ud||1,c=h.lr,P=q.horizontal;switch(z.key){case"ArrowUp":if(P&&!c)return;S=y-(P?c:r);break;case"ArrowDown":if(P&&!c)return;S=y+(P?c:r);break;case"ArrowLeft":if(!P&&!c)return;S=y-(P?r:c);break;case"ArrowRight":if(!P&&!c)return;S=y+(P?r:c);break;case"PageUp":case"PageDown":{let T=X.getSize(Math.max(0,h.scrollIndex?h.scrollIndex(y):y)),Y=Math.max(1,Math.floor(J.containerSize/T))*r;S=z.key==="PageUp"?y-Y:y+Y;break}case"Home":S=0;break;case"End":S=I-1;break;default:return}}if(S<0)S=0;else if(S>=I)S=I-1;if(z.preventDefault(),S=L(S,S>=y?1:-1,I),S!==y)k(S)}),j.registerClickHandler((z)=>{if(J.destroyed)return;let I=z.target.closest("[data-index]");if(!I)return;let y=parseInt(I.dataset.index??"-1",10);if(y<0)return;let S=V(y);if(!S||S.__groupHeader)return;U=!1,$.content.focus({preventScroll:!0}),E(y,!1)}),j.registerDestroyHandler(()=>{$.content.removeEventListener("focusin",R),$.content.removeEventListener("focusout",G)})}}}var c2=(j,$,q)=>{if(String(q).startsWith(C2))return!1;let X=C2+$;if(j.has(X))return j.delete(X),j.add(q),!0;return!1},Y1=(j)=>({selected:new Set(j??[]),focusedIndex:-1,focusVisible:!1});function u2(j,$,q,X){if(q===0)return;let J=X?-$:$,Z=j.focusedIndex+J;if(Z<0)Z=0;if(Z>=q)Z=q-1;j.focusedIndex=Z}function e2(j){return Array.from(j)}var m1={preventScroll:!0};function N0(j){let $=j?.mode??"single",q=j?.followFocus??!1,X=j?.focusOnClick??!1,J,Z,K,M,F,U,B,l,V=-1,D=new Map,b=null,A=null,H=null,L=null,W,w=!1;function k(Y){if(w)return;w=!0,b=Y.getMethod("_layoutToDataIndex")??null,A=Y.getMethod("_dataToLayoutIndex")??null,H=Y.getMethod("_isGroupHeader")??null,L=Y.getMethod("_scrollItemIntoView")??null;let N=Y.getMethod("getGroupLayout");if(N){let O=N();W=()=>O.totalEntries}}let E=(Y)=>b?b(Y):Y,R=(Y)=>{let N=E(Y);return N>=0?Z(N):void 0},G=(Y,N,O)=>{if(!H)return Y;let p=Y;while(p>=0&&p<O){if(!H(p))return p;p+=N}p=Y-N;while(p>=0&&p<O){if(!H(p))return p;p-=N}return Y};function z(Y,N){if($==="single")J.selected.clear(),D.clear();if(J.selected.add(Y),N)D.set(Y,N)}function I(Y,N){if(J.selected.has(Y))J.selected.delete(Y),D.delete(Y);else z(Y,N)}function y(){J.selected.clear(),D.clear()}function S(Y){J.selected.delete(Y),D.delete(Y)}function h(Y,N){let O=Math.min(Y,N),p=Math.max(Y,N);for(let s=O;s<=p;s++){let o=Z(s);if(o)J.selected.add(o.id),D.set(o.id,o)}}function r(){let Y=B.totalItems;for(let N=0;N<Y;N++){let O=Z(N);if(O)J.selected.add(O.id),D.set(O.id,O)}}function c(){if(J.selected.size===0)return[];if(D.size>=J.selected.size){let p=[];for(let s of J.selected){let o=D.get(s);if(o)p.push(o)}if(p.length===J.selected.size)return p}let Y=[],N=new Set(J.selected),O=B.totalItems;for(let p=0;p<O&&N.size>0;p++){let s=Z(p);if(s&&N.has(s.id))Y.push(s),D.set(s.id,s),N.delete(s.id)}return Y}function P(){K(),M.emit("selection:change",{selected:e2(J.selected),items:c()})}let T=null,v=-1;return{name:"selection",priority:50,setup(Y){J=Y1(j?.initial),Z=Y.getItem.bind(Y),K=Y.forceRender.bind(Y),M=Y.emitter,F=Y.dom;let N=Y.config;if(U=Y.sizeCache,B=Y.getState(),l=Y.scrollTo.bind(Y),W=()=>B.totalItems,$==="none"){Y.registerMethod("select",()=>{}),Y.registerMethod("deselect",()=>{}),Y.registerMethod("toggleSelect",()=>{}),Y.registerMethod("selectAll",()=>{}),Y.registerMethod("clearSelection",()=>{}),Y.registerMethod("getSelected",()=>[]),Y.registerMethod("getSelectedItems",()=>[]),Y.registerMethod("selectNext",()=>{}),Y.registerMethod("selectPrevious",()=>{}),Y.registerMethod("_seedSelection",()=>{}),Y.registerMethod("_getFocusedId",()=>{return}),Y.registerMethod("_focusById",()=>{});return}let O=N.classPrefix;Y.setItemStateFn((Q,_)=>{if(k(Y),J.selected.size>0){let C=E(Q),g=C>=0?Z(C):void 0,i=g?.id;if(i!==void 0)if(J.selected.has(i))_.selected=!0;else if(c2(J.selected,C,i))_.selected=!0,D.delete(C2+C),D.set(i,g);else _.selected=!1;else _.selected=!1}else _.selected=!1;_.focused=J.focusVisible&&J.focusedIndex===Q}),Y.registerMethod("_getSelectedIds",()=>J.selected),Y.registerMethod("_getFocusedIndex",()=>J.focusVisible?J.focusedIndex:-1),F.root.classList.add(`${O}--selectable`);let p=(Q)=>{T=null,v=-1;let _=Q.target.closest("[data-index]");if(!_)return!1;let C=parseInt(_.dataset.index??"-1",10);if(C<0)return!1;let g=E(C);if(g<0)return!1;let i=Z(g);if(!i)return!1;return T=i,v=C,!0},s=(Q)=>{if(Q<0)return;if(L){L(Q);return}let _=Y.getNavConfig(),C=_.scrollIndex?_.scrollIndex(Q):Q,g=U.getOffset(C),i=U.getSize(C),f=B.containerSize,x=B.scrollPosition;if(g<x)l(g);else if(g+i>x+f)l(g-f+i)},o=()=>{if(B.destroyed)return;if(k(Y),!F.content.matches(":focus-visible")&&!F.root.matches(":focus-visible"))return;let Q=W();if(Q===0)return;let _=J.focusedIndex>=0?Math.min(J.focusedIndex,Q-1):0;_=G(_,1,Q),J.focusedIndex=_,J.focusVisible=!0,F.content.setAttribute("aria-activedescendant",`${O}-item-${_}`),s(_),K()};F.root.addEventListener("focusin",o);let u=(Q)=>{if(B.destroyed)return;let _=Q.relatedTarget;if(_&&F.root.contains(_))return;J.focusVisible=!1,K(),F.content.removeAttribute("aria-activedescendant")};if(F.root.addEventListener("focusout",u),Y.registerDestroyHandler(()=>{F.root.removeEventListener("focusin",o),F.root.removeEventListener("focusout",u)}),Y.registerClickHandler((Q)=>{if(k(Y),!p(Q))return;if($==="multiple"&&Q.shiftKey&&J.focusedIndex>=0){let _=V>=0?V:J.focusedIndex,C=E(_),g=E(v);if(C>=0&&g>=0)h(C,g);J.focusedIndex=v,J.focusVisible=X,V=v,P();return}J.focusedIndex=v,J.focusVisible=X,V=v,F.content.focus(m1),I(T.id,T),P()}),N.interactive)Y.registerKeydownHandler((Q)=>{k(Y);let _=W();if(_===0)return;let C=Y.getNavConfig(),g=J.focusedIndex,i=!1,f=!1;if(C.navigate&&(Q.key==="ArrowUp"||Q.key==="ArrowDown"||Q.key==="ArrowLeft"||Q.key==="ArrowRight"||Q.key==="PageUp"||Q.key==="PageDown"||Q.key==="Home"||Q.key==="End")){let a=C.navigate(J.focusedIndex,Q.key,_);if(a!==J.focusedIndex)J.focusedIndex=Math.max(0,Math.min(a,_-1));J.focusVisible=!0,i=!0}else switch(Q.key){case"ArrowUp":{let a=C.ud||1,e=C.lr,t=N.horizontal;if(t&&!e)break;u2(J,-(t?e:a),_,N.reverse),J.focusVisible=!0,i=!0;break}case"ArrowDown":{let a=C.ud||1,e=C.lr,t=N.horizontal;if(t&&!e)break;u2(J,t?e:a,_,N.reverse),J.focusVisible=!0,i=!0;break}case"ArrowLeft":{let a=C.ud||1,e=C.lr,t=N.horizontal;if(!t&&!e)break;u2(J,-(t?a:e),_,N.reverse),J.focusVisible=!0,i=!0;break}case"ArrowRight":{let a=C.ud||1,e=C.lr,t=N.horizontal;if(!t&&!e)break;u2(J,t?a:e,_,N.reverse),J.focusVisible=!0,i=!0;break}case"Home":if(_>0)J.focusedIndex=0;J.focusVisible=!0,i=!0;break;case"End":if(_>0)J.focusedIndex=_-1;J.focusVisible=!0,i=!0;break;case"PageUp":case"PageDown":{let a=C.ud||1,e=Math.max(0,J.focusedIndex),t=C.scrollIndex?C.scrollIndex(e):e,Q2=U.getSize(t),Z2=B.containerSize,M2=(Q2>0?Math.max(1,Math.floor(Z2/Q2)):10)*a;if(b&&A){let W2=b(J.focusedIndex),J2=Q.key==="PageUp"?-M2:M2,n=B.totalItems-1;J.focusedIndex=A(Math.max(0,Math.min(n,W2+J2)))}else u2(J,Q.key==="PageUp"?-M2:M2,_);J.focusVisible=!0,i=!0;break}case" ":case"Enter":if(Q.key===" "&&Q.shiftKey&&$==="multiple"&&J.focusedIndex>=0){if(V>=0){let a=E(V),e=E(J.focusedIndex);if(a>=0&&e>=0)h(a,e)}J.focusVisible=!0,f=!0,i=!0;break}if(J.focusedIndex>=0){let a=R(J.focusedIndex);if(a)I(a.id,a),V=J.focusedIndex;J.focusVisible=!0,f=!0,i=!0}break;case"a":if((Q.ctrlKey||Q.metaKey)&&$==="multiple"){if(J.selected.size===B.totalItems)y();else r();J.focusVisible=!0,f=!0,i=!0}break;case"Delete":case"Backspace":if(J.selected.size>0)M.emit("delete",{selected:e2(J.selected),items:c()}),i=!0;break}if(J.focusedIndex!==g&&H){let a=J.focusedIndex>g?1:-1;J.focusedIndex=G(J.focusedIndex,a,_)}let x=J.focusedIndex!==g;if(Q.shiftKey&&$==="multiple"&&!f&&x){if(Q.key==="ArrowUp"||Q.key==="ArrowDown"||Q.key==="ArrowLeft"||Q.key==="ArrowRight"){let t=R(J.focusedIndex);if(t)I(t.id,t);V=J.focusedIndex,f=!0}if((Q.ctrlKey||Q.metaKey)&&(Q.key==="Home"||Q.key==="End")){let t=E(g>=0?g:J.focusedIndex),Q2=E(J.focusedIndex);if(t>=0&&Q2>=0)h(t,Q2);V=J.focusedIndex,f=!0}}if(q&&$==="single"&&!f&&x&&J.focusedIndex>=0){let a=R(J.focusedIndex);if(a)z(a.id,a);f=!0}if(i){if(Q.preventDefault(),x&&J.focusedIndex>=0)s(J.focusedIndex),F.content.setAttribute("aria-activedescendant",`${O}-item-${J.focusedIndex}`);if(f)P();else if(x){if(K(),J.focusedIndex>=0){let a=R(J.focusedIndex);if(a)M.emit("focus:change",{id:a.id,index:J.focusedIndex})}}}});Y.registerMethod("select",(...Q)=>{for(let _ of Q)z(_);P()}),Y.registerMethod("deselect",(...Q)=>{for(let _ of Q)S(_);P()}),Y.registerMethod("toggleSelect",(Q)=>{I(Q),P()}),Y.registerMethod("selectAll",()=>{if($!=="multiple")return;r(),P()}),Y.registerMethod("clearSelection",()=>{y(),P()}),Y.registerMethod("getSelected",()=>{return e2(J.selected)}),Y.registerMethod("getSelectedItems",()=>{return c()}),Y.registerMethod("selectNext",()=>{k(Y);let Q=W();if(Q===0)return;if(u2(J,1,Q,N.reverse),H)J.focusedIndex=G(J.focusedIndex,1,Q);let _=R(J.focusedIndex);if(_)z(_.id,_);P()}),Y.registerMethod("selectPrevious",()=>{k(Y);let Q=W();if(Q===0)return;if(u2(J,-1,Q,N.reverse),H)J.focusedIndex=G(J.focusedIndex,-1,Q);let _=R(J.focusedIndex);if(_)z(_.id,_);P()}),Y.registerMethod("_seedSelection",(Q)=>{for(let _ of Q)J.selected.add(_)}),Y.registerMethod("_getFocusedId",()=>{if(J.focusedIndex<0)return;return R(J.focusedIndex)?.id}),Y.registerMethod("_focusById",(Q)=>{let _=B.totalItems;for(let C=0;C<_;C++){let g=Z(C);if(g&&g.id===Q){let i=A?A(C):C;J.focusedIndex=i,M.emit("focus:change",{id:Q,index:i});return}}})},destroy(){D.clear()}}}var $0=(j)=>j==null?0:typeof j==="function"?j():j;function V0(j){let $=j?.scrollPadding,q,X;return{name:"page",priority:5,setup(J){let{dom:Z,sizeCache:K,config:M,emitter:F}=J,U=M.horizontal,B=window,l=J.getState();if(J.disableDefaultScroll(),J.disableDefaultResize(),Z.root.style.overflow="visible",Z.root.style.height="auto",U)Z.viewport.style.overflowX="visible",Z.viewport.style.overflowY="visible";else Z.viewport.style.overflow="visible";Z.viewport.classList.remove(`${M.classPrefix}-viewport--custom-scrollbar`),J.setScrollFns(()=>{let L=Z.viewport.getBoundingClientRect();return Math.max(0,U?-L.left:-L.top)},(L)=>{let W=Z.viewport.getBoundingClientRect(),w=(U?W.left+B.scrollX:W.top+B.scrollY)+L;if(U)B.scrollTo({left:w,top:B.scrollY,behavior:"instant"});else B.scrollTo({left:B.scrollX,top:w,behavior:"instant"})}),l.containerSize=U?B.innerWidth:B.innerHeight,l.crossSize=U?B.innerHeight:B.innerWidth;let V=null,D=()=>{let L=Z.viewport.getBoundingClientRect(),W=Math.max(0,U?-L.left:-L.top);if(l.prevScrollPosition=l.scrollPosition,l.scrollPosition=W,l.scrollDirection=W>l.prevScrollPosition?1:W<l.prevScrollPosition?-1:0,J.onScrollFrame(),V!==null)clearTimeout(V);V=setTimeout(()=>{V=null,J.onScrollIdle()},150)};B.addEventListener("scroll",D,{passive:!0}),X=()=>B.removeEventListener("scroll",D);let{innerWidth:b,innerHeight:A}=B,H=()=>{let{innerWidth:L,innerHeight:W}=B;if((U?Math.abs(L-b):Math.abs(W-A))<1)return;b=L,A=W,l.containerSize=U?L:W,l.crossSize=U?W:L,J.forceRender(),F.emit("resize",{width:L,height:W})};if(B.addEventListener("resize",H),q=()=>B.removeEventListener("resize",H),$)J.setScrollToPosFn((L,W,w,k,E)=>{let R=$0(U?$.left:$.top),G=$0(U?$.right:$.bottom);if(k===0)return 0;let z=Math.max(0,Math.min(L,k-1)),I=W.getOffset(z),y=W.getSize(z),S=W.getTotalSize(),h=Math.max(0,S-w+G),r;switch(E){case"center":r=I-R-(w-R-G-y)/2;break;case"end":r=I-w+y+G;break;default:r=I-R}return Math.max(-R,Math.min(r,h))}),J.registerMethod("_scrollItemIntoView",(L)=>{let W=U?B.innerWidth:B.innerHeight,w=$0(U?$.left:$.top),k=$0(U?$.right:$.bottom),E=Z.viewport.getBoundingClientRect(),R=U?B.scrollX:B.scrollY,G=U?E.left:E.top,z=G+R,I=K.getOffset(L),y=K.getSize(L),S=G+I,h=W-k,r=R;if(S<w)r=z+I-w;else if(S+y>h)r=z+I+y-h;if(r!==R)if(U)B.scrollTo({left:r,top:B.scrollY,behavior:"instant"});else B.scrollTo({left:B.scrollX,top:r,behavior:"instant"})});J.registerDestroyHandler(()=>{if(X?.(),q?.(),V!==null)clearTimeout(V)})},destroy(){X?.(),q?.(),X=void 0,q=void 0}}}var d1=(j)=>{try{let $=sessionStorage.getItem(j);if(!$)return;return JSON.parse($)}catch{return}};function M0(j){let $=j?.autoSave,q=$?d1($):j?.restore,X=!1,J=null;return{name:"snapshots",priority:50,setup(Z){let{sizeCache:K,emitter:M}=Z,F=Z.getState(),U=()=>{let{scrollPosition:V,totalItems:D}=F,A=Z.getMethod("getSelected")?.();if(D===0){let G={index:0,offsetInItem:0,total:0};if(A?.length)G.selectedIds=A;return G}let H,L;if(F.isCompressed&&F.compressionRatio!==1){let G=F.totalSize,I=V/G*D;H=Math.max(0,Math.min(Math.floor(I),D-1)),L=(I-H)*K.getSize(H)}else H=K.indexAtOffset(V),L=V-K.getOffset(H);L=Math.max(0,L);let W={index:H,offsetInItem:L,total:D,scrollTop:V},w=K.getSize(H);if(w)W.offsetRatio=L/w;let k=Z.getMethod("_layoutToDataIndex");if(k){let G=k(H);if(G<0){for(let z=H+1;z<D;z++)if(G=k(z),G>=0)break}if(G>=0)W.dataIndex=G}let E=Z.getMethod("_getTotal");if(E)W.dataTotal=E();if(A?.length)W.selectedIds=A;let R=Z.getMethod("_getFocusedId");if(R){let G=R();if(G!==void 0)W.focusedId=G}return W};Z.registerMethod("getScrollSnapshot",U);let B=(V,D=!0)=>{let{index:b,offsetInItem:A,selectedIds:H,focusedId:L}=V,W=F.totalItems,w=V.dataTotal??V.total;if(W===0&&w&&w>0){let P=Z.getMethod("_setTotal");if(P)P(w),W=F.totalItems;K.rebuild(W);let T=Z.getMethod("_updateCompressionMode");if(T)T();if(!F.isCompressed)Z.updateContentSize(K.getTotalSize())}if(W===0)return;if(!Number.isFinite(b)||!Number.isFinite(A))return;if(K.getTotal()!==W){K.rebuild(W);let P=Z.getMethod("_updateCompressionMode");if(P)P();if(!F.isCompressed)Z.updateContentSize(K.getTotalSize())}let E=Z.getMethod("_dataToLayoutIndex"),R=b;if(V.dataIndex!==void 0&&V.dataIndex>=0)R=E?E(V.dataIndex):V.dataIndex;else if(E)R=E(b);let G=Math.max(0,Math.min(R,W-1)),z=K.getSize(G),I=V.offsetRatio!==void 0?V.offsetRatio*z:Math.min(A,z),y;if(F.isCompressed&&F.compressionRatio!==1){let P=Z.getMethod("_getTotal")?.(),T=P!==void 0&&V.dataTotal===P;if(V.scrollTop!==void 0&&(V.total===W||T))y=V.scrollTop;else{let v=z?I/z:0;y=(G+v)/W*F.totalSize}}else y=K.getOffset(G)+I;let S=Math.max(0,F.totalSize-F.containerSize);y=Math.max(0,Math.min(y,S));let h=y===V.scrollTop;if(V.dataIndex!==void 0&&V.dataIndex>=0){let P=z?I/z:0;Z.registerMethod("_restoreAnchor",{dataIndex:V.dataIndex,fraction:P,skipAdjust:h}),Z.registerMethod("_suppressSave",1)}if(Z.scrollTo(y),D&&H?.length){let P=Z.getMethod("select");if(P)P(...H)}let r=Z.getMethod("loadVisibleRange"),c=()=>{if(L===void 0)return;let P=Z.getMethod("_focusById");if(P)P(L)};if(r){let P=0,T=()=>{if(F.containerSize>0){if(Math.abs(F.scrollPosition-y)>1)Z.scrollTo(y);r().then(c)}else if(++P<10)requestAnimationFrame(T)};requestAnimationFrame(T)}else{let P=Z.getMethod("reload");if(P)requestAnimationFrame(()=>{P().then(c)});else requestAnimationFrame(c)}};Z.registerMethod("restoreScroll",B);let l=!!(q&&$);if(Z.registerDestroyHandler(()=>{X=!0}),$){J=()=>{if(X||l||Z.getMethod("_suppressSave"))return;let W=U();try{sessionStorage.setItem($,JSON.stringify(W))}catch{}},Z.registerMethod("_saveSnapshot",J);let V=0,D=()=>{if(V)return;V=requestAnimationFrame(()=>{V=0,J()})};M.on("selection:change",D),M.on("focus:change",D);let b=0,A=()=>{b=0,J()},H=()=>{if(b)clearTimeout(b);b=setTimeout(A,300)};M.on("scroll",H);let L=()=>{J?.()};if(window.addEventListener("beforeunload",L),Z.registerDestroyHandler(()=>{if(b)clearTimeout(b);window.removeEventListener("beforeunload",L)}),q&&q.total&&q.total>0){let W=Z.getMethod("_cancelAutoLoad");if(W)W();let w=Z.getMethod("_setTotal");if(w)w(q.total)}}if(q){let V=!0;if(q.selectedIds?.length){let D=Z.getMethod("_seedSelection");if(D)D(q.selectedIds),V=!1}queueMicrotask(()=>{if(B(q,V),l=!1,J)J()})}},hooks:{onIdle(){if(J&&!X)J()}},destroy(){X=!0,J=null}}}function Z1(j,$){if($===!1)return null;return{duration:Math.min($?.duration??j.duration,1000),easing:$?.easing??j.easing}}function _0(j){let $=j?.duration??200,q=j?.easing??"cubic-bezier(0.2, 0, 0, 1)",X={duration:$,easing:q},J=Z1(X,j?.remove),Z=Z1(X,j?.insert),K=null,M=null;return{name:"transition",conflicts:["grid","table","masonry"],priority:45,setup(F){let{sizeCache:U,emitter:B}=F,l=F.config,V=F.dom,D=F.getState(),b=l.reverse?"bottom center":"top center",A=l.horizontal?"translateX":"translateY",H=F.getMethod("_dataToLayoutIndex")??null,L=(k)=>H?H(k):k,W=(k)=>{let E=String(k).replace(/"/g,"\\\""),R=V.content.querySelector(`[data-id="${E}"]`),G=R?parseInt(R.dataset.index??"-1",10):-1;return{el:R,layoutIndex:G}},w=()=>{let k=V.content.children;for(let E=0;E<k.length;E++)k[E].style.transition="none";V.content.offsetHeight;for(let E=0;E<k.length;E++)k[E].style.transition=""};if(J){let k=(R)=>{if(K)K();let G=typeof document<"u"?document.activeElement:null,z=G&&V.content.contains(G)?parseInt(G.dataset?.index??"-1",10):-1,I=W(R),y=I.layoutIndex,S=I.el,h=y>=0?U.getSize(y):0,r=y>=0?U.getOffset(y):0;if(!S||y<0){if(F.removeItemById(R)<0)return!1;if(F.forceRender(),w(),B.emit("data:change",{type:"remove",id:R}),z>=0){let g=D.totalItems;if(g>0)F.getRenderedElement(Math.min(z,g-1))?.focus()}return B.emit("remove:end",{id:R}),!0}let c=S.cloneNode(!0);c.style.pointerEvents="none",c.style.overflow="hidden",c.removeAttribute("data-index"),c.removeAttribute("data-id"),c.removeAttribute("id"),c.removeAttribute("aria-selected"),c.classList.remove(`${l.classPrefix}-item--selected`);let P=l.horizontal?"scrollLeft":"scrollTop",T=V.viewport[P];if(F.removeItemById(R)<0)return!1;F.forceRender(),w(),B.emit("data:change",{type:"remove",id:R});let Y=T-V.viewport[P];c.style.zIndex="1",V.content.appendChild(c);let N=J,O={duration:N.duration,easing:N.easing},p=[],s=Math.round(r-Y);p.push(c.animate([{transform:`${A}(${s}px) scaleY(1)`,opacity:1,transformOrigin:b},{transform:`${A}(${Math.round(r)}px) scaleY(0)`,opacity:0,transformOrigin:b}],O));let o=Y>0,u=V.content.children;for(let C=0;C<u.length;C++){let g=u[C];if(g===c)continue;let i=parseInt(g.dataset?.index??"-1",10);if(i<0||!o&&i<y)continue;let f=U.getOffset(i),x=i>=y?Math.round(f+h-Y):Math.round(f-Y),a=Math.round(f);if(x===a)continue;p.push(g.animate([{transform:`${A}(${x}px)`},{transform:`${A}(${a}px)`}],O))}let Q=!1,_=()=>{if(Q)return;Q=!0,K=null,c.remove();for(let C of p)if(C.playState!=="finished")C.cancel();if(z>=0){let C=D.totalItems;if(C>0)F.getRenderedElement(Math.min(z,C-1))?.focus()}B.emit("remove:end",{id:R})};return K=_,Promise.all(p.map((C)=>C.finished)).then(_,_),setTimeout(_,N.duration+50),!0},E=(R)=>{if(R.length===0)return 0;if(R.length===1)return k(R[0])?1:0;if(K)K();if(M)M();let G=typeof document<"u"?document.activeElement:null,z=G&&V.content.contains(G)?parseInt(G.dataset?.index??"-1",10):-1,I=[];for(let Q of R){let _=W(Q);I.push({id:Q,layoutIndex:_.layoutIndex,el:_.el,size:_.layoutIndex>=0?U.getSize(_.layoutIndex):0,offset:_.layoutIndex>=0?U.getOffset(_.layoutIndex):0})}I.sort((Q,_)=>_.layoutIndex-Q.layoutIndex);let y=[];for(let Q of I){if(!Q.el||Q.layoutIndex<0)continue;let _=Q.el.cloneNode(!0);_.style.pointerEvents="none",_.style.overflow="hidden",_.removeAttribute("data-index"),_.removeAttribute("data-id"),_.removeAttribute("id"),_.removeAttribute("aria-selected"),_.classList.remove(`${l.classPrefix}-item--selected`),y.push({clone:_,offset:Q.offset,size:Q.size,layoutIndex:Q.layoutIndex})}let S=new Map,h=V.content.children;for(let Q=0;Q<h.length;Q++){let _=h[Q],C=_.dataset?.id,g=parseInt(_.dataset?.index??"-1",10);if(C&&g>=0)S.set(C,U.getOffset(g))}let r=l.horizontal?"scrollLeft":"scrollTop",c=V.viewport[r],P=[];for(let Q of I)if(F.removeItemById(Q.id)>=0)P.push(Q.id);if(P.length===0)return 0;F.forceRender(),w();for(let Q of P)B.emit("data:change",{type:"remove",id:Q});if(y.length===0){if(z>=0){let Q=D.totalItems;if(Q>0)F.getRenderedElement(Math.min(z,Q-1))?.focus()}for(let Q of P)B.emit("remove:end",{id:Q});return P.length}let T=c-V.viewport[r],v=J,Y={duration:v.duration,easing:v.easing},N=[];y.sort((Q,_)=>Q.layoutIndex-_.layoutIndex);let O=0;for(let Q of y){Q.clone.style.zIndex="1",V.content.appendChild(Q.clone);let _=Math.round(Q.offset-T),C=Math.round(Q.offset-O);N.push(Q.clone.animate([{transform:`${A}(${_}px) scaleY(1)`,opacity:1,transformOrigin:b},{transform:`${A}(${C}px) scaleY(0)`,opacity:0,transformOrigin:b}],Y)),O+=Q.size}let p=new Set(y.map((Q)=>Q.clone)),s=V.content.children;for(let Q=0;Q<s.length;Q++){let _=s[Q];if(p.has(_))continue;let C=_.dataset?.id,g=parseInt(_.dataset?.index??"-1",10);if(!C||g<0)continue;let i=S.get(C);if(i===void 0)continue;let f=U.getOffset(g),x=Math.round(i-T),a=Math.round(f);if(x===a)continue;N.push(_.animate([{transform:`${A}(${x}px)`},{transform:`${A}(${a}px)`}],Y))}let o=!1,u=()=>{if(o)return;o=!0,K=null;for(let{clone:Q}of y)Q.remove();for(let Q of N)if(Q.playState!=="finished")Q.cancel();if(z>=0){let Q=D.totalItems;if(Q>0)F.getRenderedElement(Math.min(z,Q-1))?.focus()}for(let Q of P)B.emit("remove:end",{id:Q})};return K=u,Promise.all(N.map((Q)=>Q.finished)).then(u,u),setTimeout(u,v.duration+50),P.length};F.registerMethod("removeItem",k),F.registerMethod("removeItems",E)}if(Z){let k=(E,R)=>{if(M)M();if(K)K();let G=R??0,z=new Map,I=V.content.children;for(let Q=0;Q<I.length;Q++){let _=I[Q],C=_.dataset?.id,g=parseInt(_.dataset?.index??"-1",10);if(C&&g>=0)z.set(C,U.getOffset(g))}let y=l.horizontal?"scrollLeft":"scrollTop",S=l.horizontal?"scrollWidth":"scrollHeight",h=l.horizontal?"clientWidth":"clientHeight",r=V.viewport[y],c=V.viewport[S]-V.viewport[h],P=r>=c-1;F.insertItemAt(E,G),F.forceRender(),w(),B.emit("data:change",{type:"insert",id:E.id});let T=V.viewport[y]-r,v=L(G);if(l.reverse&&T===0&&P){V.viewport[y]=V.viewport[S]-V.viewport[h];let Q=V.viewport[y];if(D.prevScrollPosition=D.scrollPosition,D.scrollPosition=Q,T=Q-r,T>0)F.forceRender(),w()}let Y=F.getRenderedElement(v),N=Z,O={duration:N.duration,easing:N.easing},p=[];if(Y){let Q=U.getOffset(v);p.push(Y.animate([{transform:`${A}(${Math.round(Q)}px) scaleY(0)`,opacity:0,transformOrigin:b},{transform:`${A}(${Math.round(Q)}px) scaleY(1)`,opacity:1,transformOrigin:b}],O))}let s=V.content.children;for(let Q=0;Q<s.length;Q++){let _=s[Q];if(_===Y)continue;let C=_.dataset?.id,g=parseInt(_.dataset?.index??"-1",10);if(!C||g<0)continue;let i=z.get(C);if(i===void 0)continue;let f=U.getOffset(g),x=Math.round(i+T),a=Math.round(f);if(x===a)continue;p.push(_.animate([{transform:`${A}(${x}px)`},{transform:`${A}(${a}px)`}],O))}if(p.length===0)return;let o=!1,u=()=>{if(o)return;o=!0,M=null;for(let Q of p)if(Q.playState!=="finished")Q.cancel()};M=u,Promise.all(p.map((Q)=>Q.finished)).then(u,u),setTimeout(u,N.duration+50)};F.registerMethod("insertItem",k)}},destroy(){if(K)K();if(M)M()}}}function G0(j){let $=j?.gap??0,q=null,X=null,J,Z,K,M,F=new Map,U=new WeakMap,B=0,l=!1,V=2;function D(L){return F.get(L)??M}function b(){let L=X.dom.viewport,W=L.scrollHeight-L.clientHeight;return W>0&&J.scrollPosition>=W-V}function A(){let L=X.dom.viewport;L.scrollHeight;let W=L.scrollHeight-L.clientHeight;if(W>J.scrollPosition)X.scrollTo(W)}function H(){X.updateContentSize(X.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(L){if(X=L,J=L.getState(),Z=L.config.horizontal,K=Z?"width":"height",$===0)$=L.config.gap;if(M=typeof L.rawSizeSpec==="function"?L.rawSizeSpec(0)+$:L.rawSizeSpec+$,L.setSizeConfig(D),$>0){let W=L.sizeCache.getTotalSize;L.sizeCache.getTotalSize=()=>{let w=W();return w>0?w-$:0}}q=new ResizeObserver((W)=>{if(J.destroyed||!X)return;let w=!1,k=J.startIndex;for(let z of W){let I=z.target,y=U.get(I);if(y===void 0)continue;if(I.getAttribute("data-index")!==String(y)){q.unobserve(I);continue}if(F.has(y))continue;let S=z.borderBoxSize[0];if(!S)continue;let h=Z?S.inlineSize:S.blockSize;if(h<=0)continue;let r=h+$,c=M;if(F.set(y,r),w=!0,y<k&&r!==c)B+=r-c;q.unobserve(I),I.style[K]=`${h}px`}if(!w)return;let E=b();if(L.rebuildSizeCache(),B)L.scrollTo(J.scrollPosition+B),B=0;let R=J.scrollDirection!==0,G=J.totalItems>0&&J.prevRangeEnd>=J.totalItems-1;if(E||G||!R){if(H(),l=!1,E)A()}else l=!0;L.forceRender()}),L.registerMethod("isMeasured",(W)=>F.has(W)),L.registerMethod("setMeasuredSize",(W,w)=>{F.set(W,w)}),L.registerMethod("getMeasuredCount",()=>F.size),L.registerDestroyHandler(()=>{if(q)q.disconnect(),q=null})},hooks:{onCommit(L){if(!q||!X)return;for(let W=0;W<L.visibleCount;W++){let w=L.visibleIndices[W];if(F.has(w))continue;let k=X.getRenderedElement(w);if(!k)continue;k.style[K]="",U.set(k,w),q.observe(k)}},onIdle(){if(!l||!X)return;let L=b();if(H(),l=!1,L)A(),X.forceRender()}},destroy(){if(q)q.disconnect(),q=null;F.clear(),X=null}}}var K1=(j)=>{let $=Math.max(1,Math.floor(j.columns)),q=j.gap??0,X=j.containerSize,J=0,Z=[],K=()=>{let A=($-1)*q;J=Math.max(0,(X-A)/$),Z=Array($);let H=J+q;for(let L=0;L<$;L++)Z[L]=L*H};K();let M=[],F=0,U=[],B=(A,H)=>{if(A<=0)return F=0,M=[],[];let L=Array($).fill(0),W=Array($);for(let E=0;E<$;E++)W[E]=[];let w=Array(A);for(let E=0;E<A;E++){let R=0,G=L[0];for(let y=1;y<$;y++){let S=L[y];if(S<G)G=S,R=y}let z=H(E),I=L[R];w[E]={index:E,x:Z[R],y:I,lane:R,size:z,crossSize:J},W[R].push(E),L[R]=I+z+q}M=W;let k=0;for(let E=0;E<$;E++){let R=L[E],G=R>0?R-q:0;if(G>k)k=G}return F=k,w},l=(A)=>{if(A.length===0)return F;if(F)return F;let H=Array($).fill(0);for(let W of A){let w=W.y+W.size,k=H[W.lane];if(w>k)H[W.lane]=w}let L=0;for(let W=0;W<$;W++)if(H[W]>L)L=H[W];return L},V=(A,H,L)=>{if(A.length===0||L<=H)return U.length=0,U;if(M.length===0||M.length!==$)return D(A,H,L);U.length=0;for(let W=0;W<$;W++){let w=M[W],k=w.length;if(!k)continue;let E=0,R=k;while(E<R){let G=E+R>>>1,z=A[w[G]];if(z.y+z.size<=H)E=G+1;else R=G}for(let G=E;G<k;G++){let z=A[w[G]];if(z.y>=L)break;U.push(z)}}return U},D=(A,H,L)=>{U.length=0;for(let W of A)if(W.y+W.size>H&&W.y<L)U.push(W);return U};return{get columns(){return $},get gap(){return q},get containerSize(){return X},update:(A)=>{let H=!1;if(A.columns!==void 0){let L=Math.max(1,Math.floor(A.columns));if(L!==$)$=L,H=!0}if(A.gap!==void 0&&A.gap!==q)q=A.gap,H=!0;if(A.containerSize!==void 0&&A.containerSize!==X)X=A.containerSize,H=!0;if(H)K()},calculateLayout:B,getTotalSize:l,getVisibleItems:V}};var U1=(j,$,q)=>{let X=Array.from($).sort((K,M)=>K-M);if(X.length<=1)return;let J=[];for(let K=0;K<X.length;K++){let M=q(X[K]);if(M)J.push(M)}if(J.length<=1)return;let Z=j.firstChild;for(let K=0;K<J.length;K++){let M=J[K];if(M===Z)Z=Z.nextSibling;else j.insertBefore(M,Z)}};var c1=(j=200)=>{let $=[];return{acquire:()=>{let Z=$.pop();if(Z)return Z;let K=document.createElement("div");return K.setAttribute("role","option"),K},release:(Z)=>{if(Z.remove(),$.length<j)Z.className="",Z.textContent="",Z.removeAttribute("style"),Z.removeAttribute("data-index"),Z.removeAttribute("data-id"),Z.removeAttribute("data-lane"),$.push(Z)},clear:()=>{$.length=0}}},l1=1,B1=(j,$,q,X=!1,J,Z,K,M)=>{let F=c1(),U=new Map,B=new Set,l=0,V="",D=-1,b={selected:!1,focused:!1},A=(c,P)=>{return b.selected=c,b.focused=P,b},H=`${q}-item ${q}-masonry-item`,L=`${q}-group-header`,W=`${q}-item--selected`,w=`${q}-item--focused`,k=(c,P)=>{if(typeof P==="string")c.innerHTML=P;else c.replaceChildren(P)},E=(c,P,T)=>{c.classList.toggle(W,P),c.classList.toggle(w,T)},R=(c,P)=>{if(X)c.style.transform=`translate(${Math.round(P.y)}px, ${Math.round(P.x)}px)`;else c.style.transform=`translate(${Math.round(P.x)}px, ${Math.round(P.y)}px)`},G=(c,P)=>{if(X)c.style.width=`${P.size}px`,c.style.height=`${P.crossSize}px`;else c.style.width=`${P.crossSize}px`,c.style.height=`${P.size}px`},z=(c,P,T,v,Y)=>{let N=F.acquire(),O=P.__groupHeader,p=A(v,Y);if(N.className=O?L:H,N.dataset.index=String(c),N.dataset.id=String(P.id),N.dataset.lane=String(T.lane),O)N.setAttribute("role","presentation"),N.removeAttribute("aria-selected"),N.removeAttribute("aria-setsize"),N.removeAttribute("aria-posinset"),N.removeAttribute("id");else if(M!==!1){if(N.setAttribute("role","option"),N.ariaSelected=String(v),Z)N.id=`${Z}-item-${c}`;if(J){let o=J();if(o!==D)D=o,V=String(o);N.setAttribute("aria-setsize",V);let u=K?K(c):c+1;N.setAttribute("aria-posinset",String(u))}}else if(N.setAttribute("role","listitem"),N.removeAttribute("aria-selected"),J){let o=J();if(o!==D)D=o,V=String(o);N.setAttribute("aria-setsize",V);let u=K?K(c):c+1;N.setAttribute("aria-posinset",String(u))}G(N,T);let s=$(P,c,p);return k(N,s),E(N,v,Y),R(N,T),{element:N,lastItemId:P.id,lastSelected:v,lastFocused:Y,lastY:T.y,lastX:T.x,lastSize:T.size,lastCrossSize:T.crossSize,lastSeenFrame:l}},I=(c,P,T,v)=>{l++,B.clear();for(let N=0;N<P.length;N++)B.add(P[N].index);for(let[N,O]of U)if(B.has(N))O.lastSeenFrame=l;else if(l-O.lastSeenFrame>l1)F.release(O.element),U.delete(N);let Y=null;for(let N=0;N<P.length;N++){let O=P[N],p=O.index,s=c(p);if(!s)continue;let o=T.has(s.id),u=p===v,Q=U.get(p);if(Q){let _=Q.lastItemId!==s.id,C=Q.lastSelected!==o,g=Q.lastFocused!==u,i=Q.lastY!==O.y||Q.lastX!==O.x,f=Q.lastSize!==O.size||Q.lastCrossSize!==O.crossSize;if(_){let x=A(o,u),a=$(s,p,x);if(k(Q.element,a),Q.element.dataset.id=String(s.id),Q.lastItemId=s.id,!s.__groupHeader){let t=K?K(p):p+1;Q.element.setAttribute("aria-posinset",String(t))}}if(_||C||g)E(Q.element,o,u),Q.element.ariaSelected=String(o),Q.lastSelected=o,Q.lastFocused=u;if(f)G(Q.element,O),Q.lastSize=O.size,Q.lastCrossSize=O.crossSize;if(i)R(Q.element,O),Q.lastY=O.y,Q.lastX=O.x}else{let _=z(p,s,O,o,u);if(!Y)Y=document.createDocumentFragment();Y.appendChild(_.element),U.set(p,_)}}if(Y)j.appendChild(Y)},y=()=>{for(let c of U.values())F.release(c.element);U.clear(),j.innerHTML=""};return{render:I,getElement:(c)=>U.get(c)?.element,updateItemClasses:(c,P,T)=>{let v=U.get(c);if(!v)return;let Y=v.lastSelected!==P,N=v.lastFocused!==T;if(Y||N)E(v.element,P,T),v.lastSelected=P,v.lastFocused=T},sortDOM:()=>{U1(j,U.keys(),(c)=>U.get(c)?.element)},clear:y,destroy:()=>{y(),F.clear()}}};var r1=100,s1=new Set;function A0(j){if(!j.columns||j.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let $,q=null,X,J=null,Z,K,M,F=[],U=-1,B=-1,l=!0,V=-1,D={columnWidth:0,columns:0,gap:0,containerWidth:0},b=[],A=(T)=>b[T],H=null,L=null,W=!1;function w(){if(W||!J)return;W=!0,H=J.getMethod("_getSelectedIds")??null,L=J.getMethod("_getFocusedIndex")??null}let k=[],E=new Int32Array(0),R=[];function G(){let T=$.columns,v=F.length;k=Array(T);for(let Y=0;Y<T;Y++)k[Y]=[];if(E.length<v)E=new Int32Array(v);for(let Y=0;Y<v;Y++){let N=F[Y],O=k[N.lane].length;k[N.lane].push(Y),E[Y]=O}R=Array(T);for(let Y=0;Y<T;Y++){let N=k[Y],O=new Float64Array(N.length);for(let p=0;p<N.length;p++){let s=F[N[p]];O[p]=s.y+s.size*0.5}R[Y]=O}}function z(T,v){let Y=T.length;if(!Y)return-1;let N=0,O=Y-1;while(N<O){let p=N+O>>1;if(T[p]<v)N=p+1;else O=p}if(N>0&&Math.abs(T[N-1]-v)<=Math.abs(T[N]-v))return N-1;return N}function I(T,v,Y){let N=F[T];if(!N)return T;let O=N.lane,p=$.columns,s=E[T],o=k[O];switch(Z?v==="ArrowDown"?"ArrowRight":v==="ArrowUp"?"ArrowLeft":v==="ArrowRight"?"ArrowDown":v==="ArrowLeft"?"ArrowUp":v:v){case"ArrowDown":if(s+1<o.length)return o[s+1];return T;case"ArrowUp":if(s>0)return o[s-1];return T;case"ArrowRight":{if(O>=p-1)return T;let Q=O+1,_=N.y+N.size*0.5,C=k[Q];if(!C.length)return T;let g=z(R[Q],_);return g>=0?C[g]:T}case"ArrowLeft":{if(O<=0)return T;let Q=O-1,_=N.y+N.size*0.5,C=k[Q];if(!C.length)return T;let g=z(R[Q],_);return g>=0?C[g]:T}case"Home":return 0;case"End":return Y-1;case"PageDown":{let Q=X.containerSize,_=N.size>0?N.size:150,C=Math.max(1,Math.floor(Q/_)),g=Math.min(s+C,o.length-1);return o[g]}case"PageUp":{let Q=X.containerSize,_=N.size>0?N.size:150,C=Math.max(1,Math.floor(Q/_)),g=Math.max(0,s-C);return o[g]}}return T}let y=null;function S(){if(j.size)return(T)=>j.size(T,D);if(y!==null&&typeof y==="function")return(T)=>y(T,D);return(T)=>J.sizeCache.getSize(T)}function h(){let{columns:T,gap:v}=$;D.containerWidth=$.containerSize,D.columns=T,D.gap=v,D.columnWidth=Math.max(0,($.containerSize-(T-1)*v)/T)}function r(){if(!J)return;h();let T=X.totalItems;F=$.calculateLayout(T,S()),V=T,G();let v=$.getTotalSize(F);J.updateContentSize(v)}function c(){if(X.destroyed||!J||!q)return;if(X.totalItems!==V)r();w();let{scrollPosition:T,containerSize:v}=X;if(!l&&T===U&&v===B)return;if(U=T,B=v,l=!1,v<=0||F.length===0)return;let Y=Math.max(0,T-M),N=T+v+M,O=$.getVisibleItems(F,Y,N),p=H?.()??s1,s=L?.()??-1;b=J.getItems(),q.render(A,O,p,s);let o=O.length,u=o>0?O[0].index:0,Q=o>0?O[o-1].index:0;X.prevRangeStart=u,X.prevRangeEnd=Q,X.renderPending=!1;let _=Math.min(o,X.capacity);X.visibleCount=_,X.startIndex=u;for(let C=0;C<_;C++){let g=O[C];X.visibleIndices[C]=g.index,X.visibleOffsets[C]=g.y,X.visibleSizes[C]=g.size}}function P(){if(X.destroyed)return;r(),X.prevRangeStart=-1,X.prevRangeEnd=-1,X.renderPending=!0,l=!0,c()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(T){if(J=T,X=T.getState(),y=T.rawSizeSpec,Z=T.config.horizontal,K=T.config.classPrefix,M=T.config.overscan*r1,T.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");let v=X.crossSize;$=K1({columns:j.columns,gap:j.gap??0,containerSize:v}),q=B1(T.dom.content,T.template,K,Z,()=>X.totalItems,void 0,void 0,T.config.interactive),T.dom.root.classList.add(`${K}--masonry`),T.setRenderFn(c,P),r(),T.registerMethod("getMasonryLayout",()=>$),T.registerMethod("updateMasonry",(Y)=>{if(Y.columns!==void 0&&Y.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(Y.gap!==void 0&&Y.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let N={};if(Y.columns!==void 0)N.columns=Y.columns;if(Y.gap!==void 0)N.gap=Y.gap;$.update(N),q?.clear(),P()}),T.registerMethod("scrollToIndex",(Y,N="start")=>{let O=F[Y];if(!O)return;let p=typeof N==="string"?N:N.align??"start",s=typeof N==="object"?N.behavior:void 0,o=typeof N==="object"?N.duration:void 0,u=X.containerSize,Q=$.getTotalSize(F),_=Math.max(0,Q-u),C=O.y;if(p==="center")C=O.y-u/2+O.size/2;else if(p==="end"){if(C=O.y-u+O.size,Y>=X.totalItems-1&&O.y+O.size>_)C=_}if(C=Math.max(0,Math.min(C,_)),s==="smooth"&&o&&o>0)T.smoothScrollTo(C,o);else T.scrollTo(C)}),T.registerMethod("_scrollItemIntoView",(Y)=>{let N=F[Y];if(!N)return;let{scrollPosition:O,containerSize:p}=X,s=N.y,o=s+N.size;if(s<O)T.scrollTo(Math.max(0,s));else if(o>O+p)T.scrollTo(o-p)}),T.setNavConfig({total:()=>X.totalItems,navigate:I}),T.registerDestroyHandler(()=>{q?.destroy(),q=null,T.dom.root.classList.remove(`${K}--masonry`)})},hooks:{onResize(T,v){if(!$||!J)return;let Y=X.crossSize;if(Math.abs(Y-$.containerSize)<1)return;$.update({containerSize:Y}),q?.clear(),P()},onIdle(){q?.sortDOM()}},destroy(){q?.destroy(),q=null,F=[],J=null}}}var W1=(j={})=>{let{chunkSize:$=100,maxCachedItems:q=5000,evictionBuffer:X=200,onEvict:J}=j,Z=new Map,K=0,M=0,F=(v)=>{let Y=Z.get(v);if(!Y)Y={items:Array($),count:0,lastAccess:Date.now()},Z.set(v,Y);else Y.lastAccess=Date.now();return Y},U=(v)=>{return Math.floor(v/$)},B=(v)=>{return v%$},l=()=>K,V=(v)=>{K=v},D=(v)=>{if(v<0||v>=K)return;let Y=U(v),N=Z.get(Y);if(!N)return;return N.items[B(v)]},b=(v)=>{if(v<0||v>=K)return!1;let Y=U(v),N=Z.get(Y);if(!N)return!1;return N.items[B(v)]!==void 0},A=(v,Y)=>{let N=U(v),O=F(N),p=B(v),s=O.items[p]===void 0;if(O.items[p]=Y,s)O.count++,M++;if(v>=K)K=v+1},H=(v,Y)=>{for(let N=0;N<Y.length;N++){let O=Y[N];if(O!==void 0)A(v+N,O)}},L=(v,Y)=>{if(v<0||v>K)return;let N=U(v),O=Array.from(Z.keys()).filter((Q)=>Q>=N).sort((Q,_)=>Q-_),p=[];for(let Q of O){let _=Z.get(Q),C=Q*$;for(let g=0;g<$;g++){if(_.items[g]===void 0)continue;let i=C+g;if(i<v)continue;p.push({oldIndex:i,item:_.items[g]})}}for(let{oldIndex:Q}of p){let _=U(Q),C=Z.get(_);if(!C)continue;let g=B(Q);if(C.items[g]!==void 0){if(C.items[g]=void 0,C.count--,M--,C.count===0)Z.delete(_)}}K++;for(let{oldIndex:Q,item:_}of p){let C=Q+1,g=U(C),i=F(g),f=B(C);i.items[f]=_,i.count++,M++}let s=U(v),o=F(s),u=B(v);o.items[u]=Y,o.count++,M++},W=(v)=>{if(v<0||v>=K)return!1;let Y=U(v),N=Z.get(Y),O=B(v);if(!(N!==void 0&&N.items[O]!==void 0))return!1;let s=Y,o=Array.from(Z.keys()).filter((Q)=>Q>=s).sort((Q,_)=>Q-_),u=[];for(let Q of o){let _=Z.get(Q),C=Q*$;for(let g=0;g<$;g++){if(_.items[g]===void 0)continue;let i=C+g;if(i<=v)continue;u.push({oldIndex:i,item:_.items[g]})}}if(N.items[O]=void 0,N.count--,M--,N.count===0)Z.delete(Y);for(let{oldIndex:Q}of u){let _=U(Q),C=Z.get(_);if(!C)continue;let g=B(Q);if(C.items[g]!==void 0){if(C.items[g]=void 0,C.count--,M--,C.count===0)Z.delete(_)}}for(let{oldIndex:Q,item:_}of u){let C=Q-1,g=U(C),i=F(g),f=B(C);i.items[f]=_,i.count++,M++}return K--,!0},w=(v,Y)=>{let N=[];for(let O=v;O<=Y&&O<K;O++)N.push(D(O));return N},k=(v,Y)=>{for(let N=v;N<=Y&&N<K;N++)if(!b(N))return!1;return!0},E=()=>{let v=[],Y=null,N=Array.from(Z.keys()).sort((O,p)=>O-p);for(let O of N){let p=Z.get(O);if(!p)continue;let s=O*$;for(let o=0;o<$;o++){let u=s+o;if(u>=K)break;if(p.items[o]!==void 0)if(Y===null)Y={start:u,end:u};else if(u===Y.end+1)Y.end=u;else v.push(Y),Y={start:u,end:u};else if(Y!==null)v.push(Y),Y=null}}if(Y!==null)v.push(Y);return v},R=(v,Y)=>{let N=[],O=null;for(let p=v;p<=Y&&p<K;p++)if(!b(p))if(O===null)O={start:p,end:p};else O.end=p;else if(O!==null)N.push(O),O=null;if(O!==null)N.push(O);return N},G=(v)=>{return Z.has(v)},z=(v)=>{let Y=Z.get(v);if(!Y)return!1;let N=v*$,O=Math.min($,K-N);return Y.count>=O},I=(v)=>{let Y=Z.get(v);if(Y)Y.lastAccess=Date.now()},y=(v,Y)=>{if(v>Y||Z.size===0)return;let N=Date.now(),O=U(Math.max(0,v)),p=U(Math.min(K-1,Y));for(let s=O;s<=p;s++){let o=Z.get(s);if(o)o.lastAccess=N}},S=(v,Y)=>{if(M<=q)return 0;let N=Math.max(0,v-X),O=Math.min(K-1,Y+X),p=U(N),s=U(O),o=0,u=[];for(let[Q,_]of Z)if(Q<p||Q>s)o+=_.count,u.push(Q),M-=_.count,Z.delete(Q);if(o>0&&J)J(o,u);return o},h=()=>{if(M<=q)return 0;let v=Array.from(Z.entries()).sort(([,O],[,p])=>O.lastAccess-p.lastAccess),Y=0,N=[];for(let[O,p]of v){if(M<=q)break;Y+=p.count,M-=p.count,N.push(O),Z.delete(O)}if(Y>0&&J)J(Y,N);return Y},r=()=>{return{totalItems:K,cachedItems:M,cachedChunks:Z.size,chunkSize:$,maxCachedItems:q,memoryEfficiency:K>0?1-M/K:1}},c=()=>M,P=()=>{Z.clear(),M=0};return{chunkSize:$,maxCachedItems:q,getTotal:l,setTotal:V,get:D,has:b,set:A,setRange:H,insert:L,delete:W,getRange:w,isRangeLoaded:k,getLoadedRanges:E,findUnloadedRanges:R,getChunkIndex:U,isChunkLoaded:G,isChunkFullyLoaded:z,touchChunk:I,touchChunksForRange:y,evictDistant:S,evictToLimit:h,getStats:r,getCachedCount:c,clear:P,reset:()=>{P(),K=0}}};var N1=(j={})=>{let{maskCharacter:$=w0,maxSampleSize:q=z0}=j,X=[],J=!1,Z=(B)=>{if(J||B.length===0)return;let l=Math.min(B.length,q);for(let V=0;V<l;V++){let D=B[V];if(!D||typeof D!=="object")continue;let b={},A=!1;for(let[H,L]of Object.entries(D)){if(H.startsWith("_")||H==="id")continue;b[H]=String(L??"").length,A=!0}if(A)X.push(b)}J=!0},K=()=>J,M=(B)=>{let l={id:`${C2}${B}`,[j0]:!0,_index:B};if(X.length===0)return l.label=$.repeat(12),l;let V=X[B%X.length];for(let[D,b]of Object.entries(V))l[D]=$.repeat(Math.max(1,b));return l};return{analyzeStructure:Z,hasAnalyzedStructure:K,generate:M,generateRange:(B,l)=>{let V=[];for(let D=B;D<=l;D++)V.push(M(D));return V},clear:()=>{X=[],J=!1}}},J0=(j)=>{if(!j||typeof j!=="object")return!1;return j[j0]===!0};var a1=50,V1=(j={})=>{let{adapter:$,initialItems:q,initialTotal:X,storage:J,placeholder:Z,pageSize:K=a1,maxConcurrent:M=0,onStateChange:F,onDataChange:U,onItemsLoaded:B,onItemsEvicted:l}=j,V=W1({...J,onEvict:(J2,n)=>{l?.(J2),y(),I()}}),D=null,b=()=>{if(!D)D=N1(Z);return D},A=new Map,H=!1,L,W=!0,w,k,E=[],R=0,G=new Map,z=()=>{for(let J2 of G.values())J2[1].abort();G.clear()},I=()=>{F?.(N())},y=()=>{U?.()},S=()=>{A.clear();let J2=V.getLoadedRanges();for(let n of J2)for(let $2=n.start;$2<=n.end;$2++){let K2=V.get($2);if(K2&&!J0(K2))A.set(K2.id,$2)}},h=(J2,n)=>{if(!J0(n))A.set(n.id,J2)},r=(J2)=>{A.delete(J2)},c=(J2,n)=>{return`${J2}-${n}`},P=()=>V.getTotal(),T=()=>V.getCachedCount(),v=()=>H,Y=()=>W,N=()=>({total:V.getTotal(),cached:V.getCachedCount(),isLoading:H,pendingRanges:E,error:L,hasMore:W,cursor:w}),O=()=>V,p=()=>b(),s=(J2)=>{let n=V.get(J2);if(n!==void 0)return n;if(J2>=0&&J2<V.getTotal())return b().generate(J2);return},o=(J2)=>{let n=A.get(J2);if(n===void 0)return;return V.get(n)},u=(J2)=>{return A.get(J2)??-1},Q=(J2)=>{let n=V.get(J2);return n!==void 0&&!J0(n)},_=(J2,n)=>{let $2=[],K2=V.getTotal();V.touchChunksForRange(J2,Math.min(n,K2-1));for(let B2=J2;B2<=n&&B2<K2;B2++){let q2=V.get(B2);if(q2!==void 0)$2.push(q2);else $2.push(b().generate(B2))}return $2},C=(J2)=>{V.setTotal(J2),W=V.getCachedCount()<J2,y(),I()},g=(J2,n=0,$2)=>{if($&&J2.length>0){let K2=b();if(!K2.hasAnalyzedStructure())K2.analyzeStructure(J2)}for(let K2=0;K2<J2.length;K2++){let B2=J2[K2];if(B2!==void 0){let q2=n+K2;V.set(q2,B2),h(q2,B2)}}if($2!==void 0)V.setTotal($2);else if(n+J2.length>V.getTotal())V.setTotal(n+J2.length);if(V.getCachedCount()>=V.getTotal()&&V.getTotal()>0)W=!1;y(),I(),B?.(J2,n,V.getTotal())},i=(J2,n)=>{let $2=V.get(J2);if(!$2)return!1;let K2=$2.id,B2={...$2,...n};if(V.set(J2,B2),n.id!==void 0&&n.id!==K2)r(K2);return h(J2,B2),y(),I(),!0},f=(J2,n)=>{V.insert(n,J2),S(),z(),y(),I()},x=(J2)=>{let n=A.get(J2);if(n===void 0)return!1;if(!V.delete(n))return!1;return S(),z(),y(),I(),!0},a=async(J2,n)=>{if(!$)return;let $2=V.chunkSize,K2=Math.floor(J2/$2),B2=Math.floor(n/$2),q2=$2*2;for(let[A2,D2]of G){let b2=A2.indexOf("-"),y2=parseInt(A2.slice(0,b2),10);if(Math.abs(y2-J2)>q2)D2[1].abort(),G.delete(A2)}let E2=[],R2=[];for(let A2=K2;A2<=B2;A2++){let D2=A2*$2,b2=D2+$2-1,y2=c(D2,b2);if(V.isChunkFullyLoaded(A2))continue;let k2=G.get(y2);if(k2)R2.push(k2[0]);else E2.push({start:D2,end:b2})}if(E2.length===0){if(R2.length>0)await Promise.all(R2);return}if(M>0){let A2=G.size+E2.length;if(A2>M){let D2=(J2+n)/2,b2=Math.min(A2-M,G.size);while(b2>0){let F2=null,k2=-1,H2=null;for(let[w2,N2]of G){let L2=w2.indexOf("-"),P2=parseInt(w2.slice(0,L2),10),X2=parseInt(w2.slice(L2+1),10),d=Math.abs((P2+X2)/2-D2);if(d>k2)k2=d,F2=w2,H2=N2[1]}if(F2)H2.abort(),G.delete(F2);b2--}let y2=M-G.size;if(E2.length>y2)E2.sort((F2,k2)=>{let H2=Math.abs((F2.start+F2.end)/2-D2),w2=Math.abs((k2.start+k2.end)/2-D2);return H2-w2}),E2.length=Math.max(0,y2)}}if(E2.length===0){if(R2.length>0)await Promise.all(R2);return}for(let A2 of E2){let D2=c(A2.start,A2.end),b2=new AbortController,y2=(async()=>{E.push(A2),H=!0,L=void 0,I();try{let F2=A2.end-A2.start+1,k2={offset:A2.start,limit:F2,cursor:A2.start===k?w:void 0,signal:b2.signal},H2=await $.read(k2);if(g(H2.items,A2.start,H2.total),H2.cursor)w=H2.cursor,k=A2.start+H2.items.length;let w2=A2.start+H2.items.length;if(w2>=R){if(R=w2,H2.hasMore!==void 0)W=H2.hasMore;else if(H2.total!==void 0)W=w2<H2.total}}catch(F2){if(F2?.name==="AbortError")return;L=F2 instanceof Error?F2:Error(String(F2))}finally{G.delete(D2);let F2=E.findIndex((k2)=>k2.start===A2.start&&k2.end===A2.end);if(F2>=0)E.splice(F2,1);H=G.size>0,I()}})();G.set(D2,[y2,b2]),R2.push(y2)}await Promise.all(R2)},e=async(J2,n)=>{if(V.isRangeLoaded(J2,n))return;await a(J2,n)},t=async()=>{if(!$)return;await a(0,K-1)},Q2=async()=>{if(!$||H||!W)return!1;let J2=V.getCachedCount(),n=V.getTotal(),$2=J2,K2=Math.min($2+K-1,n>0?n-1:$2+K-1);if($2>=n&&n>0)return W=!1,!1;return await a($2,K2),V.getCachedCount()>J2},Z2=async()=>{if(V.clear(),V.setTotal(0),A.clear(),D)D.clear();z(),E=[],H=!1,w=void 0,k=void 0,W=!0,R=0,L=void 0,y(),I()},G2=(J2,n)=>{if(V.evictDistant(J2,n)>0)S()},M2=()=>{V.clear(),A.clear(),w=void 0,k=void 0,L=void 0,E=[],H=!1,y(),I()},W2=()=>{if(V.reset(),A.clear(),D)D.clear();w=void 0,k=void 0,W=!0,R=0,L=void 0,E=[],H=!1,y(),I()};if(q&&q.length>0)g(q,0,X??q.length);else if(X!==void 0)V.setTotal(X),y(),I();return{getState:N,getTotal:P,getCached:T,getIsLoading:v,getHasMore:Y,getStorage:O,getPlaceholders:p,getItem:s,getItemById:o,getIndexById:u,isItemLoaded:Q,getItemsInRange:_,setTotal:C,setItems:g,updateItem:i,insertItem:f,removeItem:x,loadRange:a,ensureRange:e,loadInitial:t,loadMore:Q2,reload:Z2,evictDistant:G2,clear:M2,reset:W2}};function D0(j){let{adapter:$,total:q,autoLoad:X=!0,storage:J}=j,Z=j.loading?.cancelThreshold??k0,K=j.loading?.preloadThreshold??y0,M=j.loading?.preloadAhead??b0,F=j.loading?.maxConcurrent??P0,U,B,l,V,D,b,A=null,H=null,L=null,W=0,w=!1,k=-1,E=-1,R=J?.chunkSize??r2,G=()=>{if(A=null,H!==null)clearTimeout(H),H=null},z=(h,r)=>{return U.ensureRange(h,r)},I=(h,r=r2)=>{V.emit("load:start",{offset:h,limit:r})},y=(h)=>{V.emit("error",{error:h,context:"ensureRange"})},S=()=>{if(!A)return;A=null;let h={start:B.startIndex,end:B.startIndex+Math.max(0,B.visibleCount-1)};if(h.end<h.start)return;z(h.start,h.end).catch(y)};return{name:"data",priority:20,setup(h){B=h.getState(),l=h.sizeCache,V=h.emitter,D=h.dom,b=h.forceRender.bind(h);let r=null;h.setVirtualTotalFn(()=>r?.getTotal()??0),U=r=V1({adapter:$,...q!==void 0&&{initialTotal:q},pageSize:J?.chunkSize??r2,maxConcurrent:F,...J&&{storage:{...J.chunkSize!==void 0&&{chunkSize:J.chunkSize},...J.maxCachedItems!==void 0&&{maxCachedItems:J.maxCachedItems},...J.evictionBuffer!==void 0&&{evictionBuffer:J.evictionBuffer}}},onDataChange:()=>{if(B.initialized){let P=U.getTotal();B.totalItems=P;let T=l.getTotal();if(P!==T)l.rebuild(P);h.updateContentSize(l.getTotalSize()),h.renderIfNeeded()}},onItemsLoaded:(P)=>{if(B.initialized)b(),V.emit("load:end",{items:P,total:U.getTotal()})}}),h.setGetItemFn((P)=>U.getItem(P)),h.setRemoveItemFn((P)=>{let T=U.getIndexById(P);if(T<0)return-1;if(!U.removeItem(P))return-1;return T}),h.setInsertItemFn((P,T)=>{U.insertItem(P,T)}),h.setUpdateItemFn((P,T)=>{let v=U.getIndexById(P);if(v<0)return!1;return U.updateItem(v,T)}),h.registerMethod("reload",async()=>{if(A=null,k=-1,E=-1,h.forceRender(),await U.reload(),h.scrollTo(0),X)I(0),await U.loadInitial(),h.forceRender()}),h.registerMethod("loadVisibleRange",async()=>{A=null,h.forceRender();let P=U.getTotal();if(B.visibleCount>0&&B.startIndex<P){let T=Math.min(B.startIndex+B.visibleCount-1,P-1);I(B.startIndex,T-B.startIndex+1),await z(B.startIndex,T)}}),h.registerMethod("getTotal",()=>{return U.getTotal()}),h.registerMethod("setTotal",(P)=>{U.setTotal(P)}),h.registerMethod("_getTotal",()=>U.getTotal()),h.registerMethod("_setTotal",(P)=>{U.setTotal(P)}),h.registerMethod("_cancelAutoLoad",()=>{w=!0}),h.registerMethod("_getLoadedItem",(P)=>{return U.getStorage().get(P)}),h.registerMethod("_getLoadedCount",()=>U.getCached()),V.on("load:start",()=>{D.root.setAttribute("aria-busy","true")}),V.on("load:end",()=>{D.root.removeAttribute("aria-busy")}),h.registerDestroyHandler(()=>{if(L!==null)clearTimeout(L),L=null;G()}),V.on("velocity:change",({velocity:P})=>{W=Math.abs(P)});let c=()=>{if(B.destroyed)return;if(B.visibleCount>0&&B.startIndex<U.getTotal()){let P=Math.min(B.startIndex+B.visibleCount-1,U.getTotal()-1);z(B.startIndex,P).catch(y)}S()};if(window.addEventListener("online",c),h.registerDestroyHandler(()=>{window.removeEventListener("online",c)}),X)queueMicrotask(()=>{if(w)return;I(0),U.loadInitial().catch((P)=>{V.emit("error",{error:P,context:"loadInitial"})})});else if(q!==void 0)U.setTotal(q)},hooks:{onAfterScroll(){if(B.destroyed)return;let h=B.startIndex+Math.max(0,B.visibleCount-1);if(W>Z){if(H!==null)clearTimeout(H),H=null;A={start:B.startIndex,end:h};return}if(W>K){let P=Math.floor(B.startIndex/R),T=Math.floor(h/R);if(P!==k||T!==E){if(k=P,E=T,h>=B.startIndex)z(B.startIndex,h).catch(y)}let v=B.startIndex,Y=h,N=B.scrollDirection;if(N>0)Y=Math.min(Y+M,U.getTotal()-1);else if(N<0)v=Math.max(0,v-M);if(A={start:v,end:Y},H!==null)clearTimeout(H);H=setTimeout(()=>{if(H=null,B.destroyed||!A)return;let{start:O,end:p}=A;if(A=null,p>=O)z(O,p).catch(y)},100);return}G();let r=Math.floor(B.startIndex/R),c=Math.floor(h/R);if(r!==k||c!==E){if(k=r,E=c,h>=B.startIndex)z(B.startIndex,h).catch(y)}},onIdle(){if(B.destroyed)return;W=0,k=-1,E=-1,S(),G()}},destroy(){if(L!==null)clearTimeout(L);G()}}}var H0=(j,$)=>{let q=0,X=j.length-1;while(q<X){let J=q+X+1>>>1;if(j[J].headerLayoutIndex<=$)q=J;else X=J-1}return q},M1=(j,$)=>{let q=0,X=j.length-1;while(q<X){let J=q+X+1>>>1;if(j[J].firstDataIndex<=$)q=J;else X=J-1}return q},_1=(j,$,q)=>{if(j===0)return[];let X=[],J=null,Z=0,K=0;for(let M=0;M<j;M++){let F=q?.(M);if(!F)continue;let U=$(M,F);if(J===null)J=U,Z=0;else if(U!==J){let B=M-Z;X.push({key:J,groupIndex:X.length,headerLayoutIndex:K,firstDataIndex:Z,count:B}),K=K+1+B,J=U,Z=M}}if(J!==null)X.push({key:J,groupIndex:X.length,headerLayoutIndex:K,firstDataIndex:Z,count:j-Z});return X};var G1=(j,$,q)=>{let X=_1(j,$.getGroupForIndex,q),J=j+X.length,Z=$.header?.height??$.header?.width??$.headerHeight;return{get totalEntries(){return J},get groupCount(){return X.length},get groups(){return X},getEntry:(D)=>{if(X.length===0)return{type:"item",dataIndex:D,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let b=H0(X,D),A=X[b];if(D===A.headerLayoutIndex)return{type:"header",group:A};let H=D-A.headerLayoutIndex-1;return{type:"item",dataIndex:A.firstDataIndex+H,group:A}},layoutToDataIndex:(D)=>{if(X.length===0)return D;let b=H0(X,D),A=X[b];if(D===A.headerLayoutIndex)return-1;let H=D-A.headerLayoutIndex-1;return A.firstDataIndex+H},dataToLayoutIndex:(D)=>{if(X.length===0)return D;let b=M1(X,D),A=X[b],H=D-A.firstDataIndex;return A.headerLayoutIndex+1+H},getGroupAtLayoutIndex:(D)=>{if(X.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let b=H0(X,D);return X[b]},getGroupAtDataIndex:(D)=>{if(X.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let b=M1(X,D);return X[b]},getHeaderHeight:typeof Z==="number"?(D)=>Z:(D)=>{let b=X[D];if(!b)return 0;return Z(b.key,D)},rebuild:(D,b)=>{X=_1(D,$.getGroupForIndex,b??q),J=D+X.length}}};var L0=(j,$,q,X,J=0)=>{let Z=q?"width":"height",K=document.createElement("div");return K.className=`${$}-sticky-header`,K.setAttribute("role","presentation"),K.setAttribute("aria-hidden","true"),K.style.cssText="position:relative;z-index:5;pointer-events:none;overflow:hidden;"+(q?`top:0;bottom:0;left:${J||0}px`:`top:${J||0}px`),K.style[Z]=`${X}px`,j.insertBefore(K,j.firstChild),K},A1=(j,$,q,X,J,Z=!1,K=0,M,F)=>{let U=Z?"width":"height",B=Z?"height":"width",l=Z?"X":"Y",V=(i,f)=>{i.style[U]=`${f}px`},D=F??L0(j,J,Z,0,K),b=()=>{let i=document.createElement("div");return i.className="sticky-group",i.style.position="absolute",i.style.willChange="transform",i.style[B]="100%",i},A=b(),H=b();D.append(A,H);let L=A,W=H,w=$.groups,k=[],E=[],R=[],G=0,z=()=>{w=$.groups,G=w.length,k=Array(G),E=Array(G),R=Array(G);let i=M?M():1;for(let f=0;f<G;f++)k[f]=q.getOffset(w[f].headerLayoutIndex)*i,E[f]=$.getHeaderHeight(f),R[f]=E[f]*i};z();let I=-1,y=0,S=0,h=-1,r=!1,c=0,P=!1,T=(i,f)=>{X(i,f);let x=E[f];return V(i,x),x},v=(i)=>{i.replaceChildren(),i.style.transform=""},Y=(i)=>{if(i===I)return;if(I=i,y=0,S=0,i<0||i>=G){v(L);return}y=T(L,i),S=R[i],V(D,y),L.style.transform=""},N=(i)=>{if(i===c)return;c=i;let f=Math.round(i);L.style.transform=`translate${l}(${f}px)`,W.style.transform=`translate${l}(${f+y}px)`},O=()=>{c=0,L.style.transform="",W.style.transform=""},p=()=>{if(!P)return;let i=L;L=W,W=i,I=h,y=I>=0?E[I]:0,S=I>=0?R[I]:0,V(D,y),v(W),h=-1,P=!1,O()},s=()=>{if(!P)return;v(W),h=-1,P=!1,O()},o=!!F,u=()=>{if(r)return;if(r=!0,o)D.style.visibility="";else D.style.display=""},Q=()=>{if(!r)return;if(r=!1,o)D.style.visibility="hidden";else D.style.display="none";v(L),I=-1,y=0,S=0,s()},_=(i)=>{if(G===0){Q();return}if(i<k[0]){Q();return}let f=0,x=G-1;while(f<x){let e=f+x+1>>>1;if(k[e]+R[e]<=i)f=e;else x=e-1}if(!r)u();Y(f);let a=f+1;if(a<G){let e=k[a]-i;if(e<=0&&e>-S){if(h!==a||!P)h=a,T(W,a),P=!0;let t=S>0?e/S*y:e;N(t)}else if(e<=-S){if(P)p()}else if(P)s()}else if(P)s()},C=()=>{z();let i=I;if(I=-1,y=0,S=0,i>=0)Y(i)},g=()=>{D.remove(),I=-1,y=0,S=0,h=-1,r=!1,P=!1};if(!F)D.style.display="none";return{update:_,refresh:C,show:u,hide:Q,destroy:g}};var g2={selected:!1,focused:!1},D1=typeof process<"u"&&process.env?.NODE_ENV!=="production";function F0(j){if(!j.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let $=j.header?.height??j.header?.width??j.headerHeight;if($==null||typeof $==="number"&&$<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let q=j.header?.template??j.headerTemplate;if(!q)throw Error("[vlist] groups: header.template is required");let X=q,J,Z=null,K,M,F,U,B,l,V,D=null,b,A,H,L=null,W,w,k=null,E,R=new Map,G=new Set,z=new Map,I=-1,y=-1,S=!0,h=-1,r=0,c=null,P;function T(){return J.totalEntries}function v(){let Q=M.totalItems;if(Q===h)return;if(D1)console.log(`[groups] syncLayout: ${h} → ${Q}`);let _=h>0;h=Q,J.rebuild(Q,D??V),P(J.totalEntries);let C=K.getTotalSize();if(U.style[b?"width":"height"]=C+"px",Z)Z.refresh(),Z.update(M.scrollPosition);if(_)O();let g=k?.("_scrollbar:getInstance");if(g)g()?.updateBounds(C,M.containerSize)}function Y(Q){let _=K.getOffset(Q);if(b)return`translate(${Math.round(_)}px, 0)`;return`translate(0, ${Math.round(_)}px)`}function N(Q,_){let C=K.getSize(_);if(b)Q.style.width=`${C}px`;else Q.style.height=`${C}px`}function O(){R.forEach((Q)=>{Q.remove();let _=Q.getAttribute("data-id");if(_)z.set(_,Q);else F.release(Q)}),R.clear(),G.clear()}function p(){if(z.size>0)z.forEach((Q)=>F.release(Q)),z.clear()}function s(Q,_,C,g){if(_.type==="header"){let t=`__group_header_${_.group.groupIndex}`;if(Q.getAttribute("data-id")===t)return!0;Q.className=w,Q.setAttribute("role","presentation"),Q.removeAttribute("aria-selected"),Q.setAttribute("data-id",t);let Q2=X(_.group.key,_.group.groupIndex);if(typeof Q2==="string")Q.innerHTML=Q2;else Q.innerHTML="",Q.appendChild(Q2);return!0}let i=_.dataIndex,f=V(i);if(!f)return Q.innerHTML="",!1;let x=f._isPlaceholder===!0,a=String(f.id);if(!x&&Q.getAttribute("data-id")===a){if(E)Q.id=`${A}-item-${g}`,Q.setAttribute("aria-posinset",String(i+1)),Q.setAttribute("aria-setsize",String(M.totalItems));return!0}if(Q.className=W,Q.setAttribute("role","option"),Q.setAttribute("data-id",a),E)Q.id=`${A}-item-${g}`,Q.setAttribute("aria-posinset",String(i+1)),Q.setAttribute("aria-setsize",String(M.totalItems));if(x)Q.classList.add(`${A}-item--placeholder`);if(C)C(g,g2);else g2.selected=!1,g2.focused=!1;let e=l(f,i,g2);if(typeof e==="string")Q.innerHTML=e;else Q.innerHTML="",Q.appendChild(e);return!x}function o(){if(M.destroyed)return;v();let{scrollPosition:Q,containerSize:_}=M;if(!S&&Q===I&&_===y)return;I=Q,y=_;let C=S;S=!1;let g=T();if(_<=0||g===0){if(R.size>0)R.forEach((n)=>{n.remove(),F.release(n)}),R.clear(),G.clear();return}let i=K.indexAtOffset(Q),f=K.indexAtOffset(Q+_);if(f<g-1)f++;i=Math.max(0,i),f=Math.min(g-1,Math.max(0,f));let x=Math.max(0,i-H),a=Math.min(g-1,f+H);if(x===M.prevRangeStart&&a===M.prevRangeEnd&&!M.renderPending)return;R.forEach((n,$2)=>{if($2<x||$2>a)n.remove(),F.release(n),R.delete($2),G.delete($2)});let e=L?.()??null,t=e?`${A}-item--selected`:"",Q2=e?`${A}-item--focused`:"",Z2=null;for(let n=x;n<=a;n++){let $2=R.get(n),K2=!1;if($2===void 0){let B2=J.getEntry(n);K2=B2.type==="header";let q2;if(B2.type==="header")q2=`__group_header_${B2.group.groupIndex}`;else{let R2=V(B2.dataIndex);if(R2&&R2._isPlaceholder!==!0)q2=String(R2.id)}if(q2!==void 0){let R2=z.get(q2);if(R2)z.delete(q2),$2=R2}if(!$2)$2=F.acquire();if($2.setAttribute("data-index",String(n)),s($2,B2,e,n))G.delete(n);else G.add(n);if(N($2,n),$2.style.transform=Y(n),R.set(n,$2),!Z2)Z2=document.createDocumentFragment();Z2.appendChild($2)}else if(C&&G.has(n)){let B2=J.getEntry(n);if(B2.type==="item")if(s($2,B2,e,n))G.delete(n);else G.add(n)}else K2=$2.classList.contains(w);if(!K2&&e)if(e(n,g2),$2.classList.toggle(t,g2.selected),$2.classList.toggle(Q2,g2.focused),g2.selected)$2.setAttribute("aria-selected","true");else $2.removeAttribute("aria-selected")}if(Z2)U.appendChild(Z2);p();let G2=K.getTotalSize();U.style[b?"width":"height"]=G2+"px",M.prevRangeStart=x,M.prevRangeEnd=a,M.renderPending=!1;let M2=0,W2=0,J2=!1;for(let n=x;n<=a&&M2<M.capacity;n++){let $2=J.getEntry(n);if($2.type==="item"){if(!J2)W2=$2.dataIndex,J2=!0;M.visibleIndices[M2]=$2.dataIndex,M.visibleOffsets[M2]=K.getOffset(n),M.visibleSizes[M2]=K.getSize(n),M2++}}M.visibleCount=M2,M.startIndex=W2}function u(){if(M.destroyed)return;if(D1)console.log(`[groups] forceRender, placeholders: ${G.size}, rendered: ${R.size}`);let Q=c?.()??0;if(Q!==r){r=Q;let _=J.groups,C=_.length;J.rebuild(h,D??V);let g=J.groups,i=g.length!==C;if(!i){for(let f=0;f<C;f++)if(g[f].headerLayoutIndex!==_[f].headerLayoutIndex){i=!0;break}}if(i){P(J.totalEntries);let f=K.getTotalSize();if(U.style[b?"width":"height"]=f+"px",Z)Z.refresh(),Z.update(M.scrollPosition);let x=1/0,a=Math.min(C,g.length);for(let t=0;t<a;t++)if(g[t].headerLayoutIndex!==_[t].headerLayoutIndex){x=Math.min(g[t].headerLayoutIndex,_[t].headerLayoutIndex);break}if(g.length>C&&a<g.length)x=Math.min(x,g[a].headerLayoutIndex);else if(C>g.length&&a<C)x=Math.min(x,_[a].headerLayoutIndex);if(x<=M.prevRangeEnd)O();let e=k?.("_scrollbar:getInstance");if(e)e()?.updateBounds(f,M.containerSize)}}M.prevRangeStart=-1,M.prevRangeEnd=-1,M.renderPending=!0,S=!0,o()}return{name:"groups",priority:10,setup(Q){K=Q.sizeCache,M=Q.getState(),F=Q.pool,U=Q.dom.content,B=Q.dom.root,l=Q.template,b=Q.config.horizontal,A=Q.config.classPrefix,H=Q.config.overscan,V=Q.getItem.bind(Q),L=()=>Q.getItemStateFn(),k=Q.getMethod.bind(Q),E=Q.config.interactive,W=`${A}-item`,w=`${A}-group-header`,queueMicrotask(()=>{let f=k?.("_getLoadedItem");if(f)D=f;let x=k?.("_getLoadedCount");if(x)c=x});let _=M.totalItems;J=G1(_,j,D??V),h=_;let C=typeof $==="number"?(f)=>$:(f)=>{let x=J.groups[f];if(!x)return 0;return $(x.key,f)},g=K.getSize,i=(f)=>{let x=J.getEntry(f);if(x.type==="header"){if(j.sticky!==!1&&x.group.groupIndex===0)return 0;return C(x.group.groupIndex)}return g(x.dataIndex)};if(Q.setSizeConfig(i),P=K.rebuild,K.rebuild=(f)=>{P(J.totalEntries)},K.rebuild(J.totalEntries),Q.setVirtualTotalFn(()=>J.totalEntries),B.classList.add(`${A}--grouped`),j.sticky!==!1){let f=(e,t)=>{let Q2=J.groups[t];if(!Q2)return;let Z2=X(Q2.key,t);if(typeof Z2==="string")e.innerHTML=Z2;else e.replaceChildren(Z2)},x=J.getHeaderHeight(0),a=L0(B,A,b,x);if(Z=A1(B,J,K,f,A,b,0,void 0,a),Z.update(M.scrollPosition),!b)Q.dom.viewport.style.height=`calc(100% - ${x}px)`;else Q.dom.viewport.style.width=`calc(100% - ${x}px)`}Q.setRenderFn(o,u),Q.registerMethod("getGroupLayout",()=>J),Q.registerMethod("_dataToLayoutIndex",(f)=>J.dataToLayoutIndex(f)),Q.registerMethod("_layoutToDataIndex",(f)=>J.layoutToDataIndex(f)),Q.registerMethod("_getRenderedElement",(f)=>R.get(f)??null),Q.registerMethod("_isGroupHeader",(f)=>{return J.getEntry(f).type==="header"}),Q.registerMethod("scrollToIndex",(f,x="start")=>{let a=J.dataToLayoutIndex(f),e=J.totalEntries;if(e===0)return;let t=Math.max(0,Math.min(a,e-1)),Q2=K.getOffset(t),Z2=K.getSize(t),G2=M.containerSize,M2=K.getTotalSize(),W2=Math.max(0,M2-G2),J2=typeof x==="string"?x:x.align??"start",n=typeof x==="object"?x.behavior:void 0,$2=typeof x==="object"?x.duration:void 0,K2;switch(J2){case"center":K2=Q2-(G2-Z2)/2;break;case"end":K2=Q2-G2+Z2;break;default:K2=Q2}if(K2=Math.max(0,Math.min(K2,W2)),n==="smooth"&&$2&&$2>0)Q.smoothScrollTo(K2,$2);else Q.scrollTo(K2)}),Q.registerDestroyHandler(()=>{for(let[,f]of R)f.remove();if(R.clear(),G.clear(),Z)Z.destroy(),Z=null;B.classList.remove(`${A}--grouped`)})},hooks:{onAfterScroll(Q,_){if(Z)Z.update(Q)}},destroy(){if(Z)Z.destroy(),Z=null;R.clear(),G.clear(),z.clear()}}}var H1=(j,$=50,q=1/0,X=!0)=>{let J=j,Z=[],K=0,M=()=>{Z=J.map((H,L)=>({def:H,index:L,width:0,minWidth:o1(H.minWidth??$,1),maxWidth:H.maxWidth??q,resizable:H.resizable??X,offset:0}))},F=(H)=>{if(Z.length===0){K=0;return}let L=0,W=0;for(let w=0;w<Z.length;w++){let k=Z[w],E=k.def;if(E.width!==void 0)k.width=O0(E.width,k.minWidth,k.maxWidth),L+=k.width;else W++}if(W){let k=Math.max(0,H-L)/W;for(let E=0;E<Z.length;E++){let R=Z[E];if(R.def.width===void 0)R.width=O0(k,R.minWidth,R.maxWidth)}}U()},U=()=>{let H=0;for(let L=0;L<Z.length;L++){let W=Z[L];W.offset=H,H+=W.width}K=H},B=(H,L)=>{if(H<0||H>=Z.length)return 0;let W=Z[H];if(!W.resizable)return W.width;let w=O0(L,W.minWidth,W.maxWidth);return W.width=w,U(),w},l=(H)=>{return Z[H]},V=(H)=>{if(Z.length===0)return;if(H<0)return Z[0];if(H>=K)return Z[Z.length-1];let L=0,W=Z.length-1;while(L<W){let w=L+W>>>1,k=Z[w];if(H<k.offset)W=w-1;else if(H>=k.offset+k.width)L=w+1;else return k}return Z[L]},D=(H)=>{if(H<0||H>=Z.length)return 0;return Z[H].offset},b=(H)=>{if(H<0||H>=Z.length)return 0;return Z[H].width},A=(H)=>{J=H,M()};return M(),{get columns(){return Z},get totalWidth(){return K},resolve:F,updateColumns:A,resizeColumn:B,getColumn:l,getColumnAtX:V,getColumnOffset:D,getColumnWidth:b}},O0=(j,$,q)=>Math.min(q,Math.max($,j)),o1=(j,$)=>Math.max($,j);var L1=(j,$,q,X,J,Z)=>{let K=document.createElement("div");K.setAttribute("role","rowgroup");let M=document.createElement("div");M.className=`${q}-table-header`,M.setAttribute("role","row"),M.setAttribute("aria-rowindex","1"),M.style.height=`${$}px`;let F=document.createElement("div");F.className=`${q}-table-header-scroll`,F.setAttribute("role","presentation"),M.appendChild(F),K.appendChild(M),j.insertBefore(K,j.firstChild),j.style.setProperty("--vlist-table-header-height",`${$}px`);let U=[],B=[],l=!0,V=null,D="asc",b=null,A=!1,H=-1,L=0,W=0,w=0,k=(Y,N)=>{let O=document.createElement("div");O.className=`${q}-table-header-cell`,O.setAttribute("role","columnheader"),O.setAttribute("aria-colindex",String(N+1)),O.setAttribute("tabindex",N===0?"0":"-1"),O.dataset.columnKey=Y.def.key;let p=Y.def.align;if(p==="center")O.classList.add(`${q}-table-header-cell--center`);else if(p==="right")O.classList.add(`${q}-table-header-cell--right`);let s=document.createElement("div");s.className=`${q}-table-header-content`;let o=Y.def.header?Y.def.header(Y.def):Y.def.label;if(typeof o==="string")s.textContent=o;else s.appendChild(o);if(O.appendChild(s),Y.def.sortable){let u=document.createElement("span");u.className=`${q}-table-header-sort`,u.setAttribute("aria-hidden","true"),O.appendChild(u),B.push(u),O.classList.add(`${q}-table-header-cell--sortable`)}else B.push(null);if(Y.resizable){let u=document.createElement("div");u.className=`${q}-table-header-resize`,u.dataset.resizeIndex=String(N),O.appendChild(u)}return O},E=(Y)=>{b=Y,F.textContent="",U=[],B=[];let N=Y.columns;for(let O=0;O<N.length;O++){let p=N[O],s=k(p,O);U.push(s),F.appendChild(s)}if(R(Y),V)G(V,D)},R=(Y)=>{b=Y;let N=Y.columns;F.style.width=`${Y.totalWidth}px`;for(let O=0;O<U.length&&O<N.length;O++){let p=U[O],s=N[O];p.style.width=`${s.width}px`}},G=(Y,N)=>{if(V=Y,D=N,!b)return;let O=b.columns;for(let p=0;p<B.length&&p<O.length;p++){let s=B[p];if(!s)continue;if(O[p].def.key===Y)s.textContent=N==="asc"?"▲":"▼",s.style.opacity="0.7",U[p].setAttribute("aria-sort",N==="asc"?"ascending":"descending");else s.textContent="",s.style.opacity="0",U[p].removeAttribute("aria-sort")}},z=(Y)=>{F.style.transform=`translateX(${-Y}px)`},I=(Y)=>{let N=Y.target;if(!N.dataset.resizeIndex)return;if(Y.preventDefault(),Y.stopPropagation(),H=+N.dataset.resizeIndex,!b)return;let O=b.getColumn(H);if(!O?.resizable)return;A=!0,L=Y.clientX,W=O.width,j.classList.add(`${q}--col-resizing`),j.style.cursor="col-resize",N.classList.add(`${q}-table-header-resize--active`),N.setPointerCapture(Y.pointerId),N.addEventListener("pointermove",y),N.addEventListener("pointerup",S),N.addEventListener("pointercancel",S)},y=(Y)=>{if(!A||!b)return;let N=Y.clientX-L;if(Math.abs(N)<1)return;let O=Math.max(0,W+N);X(H,O)},S=(Y)=>{if(!A)return;let N=Y.target;N.removeEventListener("pointermove",y),N.removeEventListener("pointerup",S),N.removeEventListener("pointercancel",S);try{N.releasePointerCapture(Y.pointerId)}catch{}N.classList.remove(`${q}-table-header-resize--active`),j.classList.remove(`${q}--col-resizing`),j.style.cursor="",A=!1,H=-1},h=(Y)=>{let N=Y.target;if(N.dataset.resizeIndex)return;if(A)return;let O=N;while(O&&!O.dataset.columnKey)if(O=O.parentElement,O===M||O===null)return;let p=O.dataset.columnKey;if(!b)return;let s=b.columns,o=-1;for(let Q=0;Q<s.length;Q++)if(s[Q].def.key===p){o=Q;break}if(o===-1)return;let u=s[o];if(Z)Z({key:p,index:o,event:Y});if(u.def.sortable&&J){let Q;if(V===p)Q=D==="asc"?"desc":null;else Q="asc";J({key:p,index:o,direction:Q})}},r=(Y)=>{if(Y<0||Y>=U.length)return;U[w]?.setAttribute("tabindex","-1"),w=Y;let N=U[w];N.setAttribute("tabindex","0"),N.focus()},c=(Y)=>{let N=Y.key;if(N==="ArrowRight"){if(Y.ctrlKey||Y.metaKey){if(!b)return;let O=b.getColumn(w);if(O?.resizable)X(w,O.width+10),Y.preventDefault()}else if(w<U.length-1)r(w+1),Y.preventDefault();Y.stopPropagation();return}if(N==="ArrowLeft"){if(Y.ctrlKey||Y.metaKey){if(!b)return;let O=b.getColumn(w);if(O?.resizable)X(w,O.width-10),Y.preventDefault()}else if(w>0)r(w-1),Y.preventDefault();Y.stopPropagation();return}if(N==="Home"){r(0),Y.preventDefault(),Y.stopPropagation();return}if(N==="End"){r(U.length-1),Y.preventDefault(),Y.stopPropagation();return}if(N==="Enter"||N===" "){if(!b)return;let O=b.getColumn(w);if(O?.def.sortable&&J){let p;if(V===O.def.key)p=D==="asc"?"desc":null;else p="asc";J({key:O.def.key,index:w,direction:p}),Y.preventDefault()}Y.stopPropagation();return}if(N==="ArrowDown"){j.focus(),Y.preventDefault(),Y.stopPropagation();return}};return M.addEventListener("pointerdown",I),M.addEventListener("click",h),M.addEventListener("keydown",c),{element:M,update:R,updateSort:G,rebuild:E,show:()=>{if(l)return;l=!0,M.style.display=""},hide:()=>{if(!l)return;l=!1,M.style.display="none"},destroy:()=>{M.removeEventListener("pointerdown",I),M.removeEventListener("click",h),M.removeEventListener("keydown",c),j.style.removeProperty("--vlist-table-header-height"),K.remove(),U=[],B=[],b=null,l=!1},syncScroll:z}};var i1=()=>{let j=[];return{acquire:()=>j.pop()||document.createElement("div"),release:($)=>{if($.parentNode?.removeChild($),j.length<200)$.className="",$.removeAttribute("data-id"),$.removeAttribute("data-index"),$.removeAttribute("aria-selected"),$.removeAttribute("aria-rowindex"),$.removeAttribute("role"),$.style.cssText="",$.textContent="",j.push($)},clear:()=>{j.length=0}}},F1=(j,$,q,X,J,Z,K,M,F)=>{let U=i1(),B=new Map,l=-1,V=q,D=null,b=null,A=null,H=(f,x)=>{b=f,A=x},L=(f,x)=>{x?f.setAttribute("aria-selected","true"):f.removeAttribute("aria-selected")},W=(f,x,a,e)=>{f.setAttribute("role",x),f.setAttribute("data-id",String(a)),f.setAttribute("data-index",String(e))},w=(f)=>String(f).startsWith("__placeholder_"),k=`${J}-item ${J}-table-row`,E=`${J}-item--selected`,R=`${J}-item--focused`,G=`${J}-table-cell`,z=`${J}-table-cell--center`,I=`${J}-table-cell--right`,y=`${J}-item--odd`,S=`${J}-item--placeholder`,h=`${J}-item--replaced`,r=`${J}-item ${J}-table-row ${J}-table-group-header`,c=`${J}-table-group-header-content`,P=(f,x,a,e,t=!1)=>{if(a.def.cell){let Q2=a.def.cell(x,a.def,e);if(typeof Q2==="string")f.innerHTML=Q2;else f.replaceChildren(Q2)}else{let Q2=x[a.def.key],Z2=Q2!=null?String(Q2):"";if(t&&Z2)f.innerHTML=`<span>${Z2}</span>`;else f.textContent=Z2}},T=(f,x,a,e,t=!1)=>{let Q2=k;if(M){if(D){let Z2=D(x);if(Z2>=0&&(Z2&1)===1)Q2+=` ${y}`}else if((x&1)===1)Q2+=` ${y}`}if(t)Q2+=` ${S}`;if(a)Q2+=` ${E}`;if(e)Q2+=` ${R}`;f.className=Q2},v=(f,x,a)=>{if(a?.compression?.isCompressed)return Math.round(n2(f,a.scrollPosition,x,a.totalItems,a.containerSize,a.compression,a.rangeStart));return x.getOffset(f)},Y=(f,x)=>{let a=x.def.align;if(a==="center")f.classList.add(z),f.classList.remove(I);else if(a==="right")f.classList.add(I),f.classList.remove(z);else f.classList.remove(z,I)},N=(f,x)=>{let e=V.columns.length;if(x.length===e)return x;let t=[];for(let Q2=0;Q2<e;Q2++){let Z2;if(Q2<x.length)Z2=x[Q2];else Z2=document.createElement("div"),Z2.className=G,f.appendChild(Z2);t.push(Z2)}for(let Q2=e;Q2<x.length;Q2++)x[Q2].remove();return t},O=(f,x,a,e)=>{let t=U.acquire(),Q2=f,Z2=a.getSize(x),G2=v(x,a,e);t.style.cssText=`width:${V.totalWidth}px;height:${Z2}px;transform:translateY(${G2}px)`,t.className=r,W(t,"presentation",f.id,x),t.removeAttribute("aria-selected"),t.removeAttribute("aria-rowindex"),t.replaceChildren();let M2=document.createElement("div");if(M2.className=c,A){let W2=A(Q2.groupKey,Q2.groupIndex);if(typeof W2==="string")M2.innerHTML=W2;else M2.appendChild(W2)}return t.appendChild(M2),{element:t,cells:[],index:x,isGroupHeader:!0,lastItemId:f.id,lastSelected:!1,lastFocused:!1,lastOffset:G2,lastHeight:Z2}},p=(f,x,a,e,t,Q2)=>{let Z2=U.acquire(),G2=t.getSize(x),M2=v(x,t,Q2),W2=w(f.id);Z2.style.cssText=`width:${V.totalWidth}px;height:${G2}px;transform:translateY(${M2}px)`,T(Z2,x,a,e,W2),W(Z2,"row",f.id,x),Z2.id=`${Z}-item-${x}`,Z2.setAttribute("aria-rowindex",String(x+2)),L(Z2,a);let J2=N(Z2,[]),n=V.columns;for(let $2=0;$2<J2.length&&$2<n.length;$2++){let K2=J2[$2],B2=n[$2];K2.style.cssText=`left:${B2.offset}px;width:${B2.width}px`,K2.setAttribute("role","gridcell"),K2.setAttribute("aria-colindex",String($2+1)),Y(K2,B2),P(K2,f,B2,x,W2)}return{element:Z2,cells:J2,index:x,isGroupHeader:!1,lastItemId:f.id,lastSelected:a,lastFocused:e,lastOffset:M2,lastHeight:G2}},s=(f,x,a,e,t)=>{for(let[W2,J2]of B)if(W2<x.start||W2>x.end)U.release(J2.element),B.delete(W2);let Q2=!1,Z2=K();if(Z2!==l)l=Z2,Q2=!0;let G2=null,M2=$();D=typeof M==="string"&&F?F():null;for(let W2=x.start;W2<=x.end;W2++){let J2=W2-x.start,n=f[J2];if(!n)continue;let $2=a.has(n.id),K2=W2===e,B2=b?b(n):!1,q2=B.get(W2);if(q2){if(q2.isGroupHeader!==B2){U.release(q2.element),B.delete(W2);let E2=B2?O(n,W2,M2,t):p(n,W2,$2,K2,M2,t);if(B.set(W2,E2),!G2)G2=document.createDocumentFragment();G2.appendChild(E2.element);continue}if(B2){if(q2.lastItemId!==n.id){let D2=n,b2=q2.element.firstElementChild;if(b2&&A){let y2=A(D2.groupKey,D2.groupIndex);if(typeof y2==="string")b2.innerHTML=y2;else b2.replaceChildren(y2)}q2.element.setAttribute("data-id",String(n.id)),q2.lastItemId=n.id}let R2=v(W2,M2,t);if(q2.lastOffset!==R2)q2.lastOffset=R2,q2.element.style.transform=`translateY(${R2}px)`;let A2=M2.getSize(W2);if(q2.lastHeight!==A2)q2.lastHeight=A2,q2.element.style.height=`${A2}px`}else{let E2=q2.lastItemId!==n.id,R2=q2.lastSelected!==$2,A2=q2.lastFocused!==K2;if(E2){let y2=q2.lastItemId!=null&&w(q2.lastItemId),F2=w(n.id);if(!F2&&c2(a,W2,n.id))$2=!0;let k2=V.columns;for(let H2=0;H2<q2.cells.length&&H2<k2.length;H2++)P(q2.cells[H2],n,k2[H2],W2,F2);if(T(q2.element,W2,$2,K2,F2),q2.element.setAttribute("data-id",String(n.id)),L(q2.element,$2),y2&&!F2)q2.element.classList.add(h),setTimeout(()=>{q2.element.classList.remove(h)},300);q2.lastItemId=n.id,q2.lastSelected=$2,q2.lastFocused=K2}else if(R2||A2)T(q2.element,W2,$2,K2,w(n.id)),L(q2.element,$2),q2.lastSelected=$2,q2.lastFocused=K2;let D2=v(W2,M2,t);if(q2.lastOffset!==D2)q2.lastOffset=D2,q2.element.style.transform=`translateY(${D2}px)`;let b2=M2.getSize(W2);if(q2.lastHeight!==b2)q2.lastHeight=b2,q2.element.style.height=`${b2}px`;if(Q2)q2.element.setAttribute("aria-rowindex",String(W2+2))}}else{if(c2(a,W2,n.id))$2=!0;let E2=B2?O(n,W2,M2,t):p(n,W2,$2,K2,M2,t);if(B.set(W2,E2),!G2)G2=document.createDocumentFragment();G2.appendChild(E2.element)}}if(G2)j.appendChild(G2)},o=(f)=>{let x=$();for(let[a,e]of B){let t=v(a,x,f);if(e.lastOffset!==t)e.lastOffset=t,e.element.style.transform=`translateY(${t}px)`}},u=(f,x,a,e)=>{let t=B.get(f);if(!t)return;if(t.isGroupHeader)return;let Q2=V.columns;for(let Z2=0;Z2<t.cells.length&&Z2<Q2.length;Z2++)P(t.cells[Z2],x,Q2[Z2],f);t.element.setAttribute("data-id",String(x.id)),t.lastItemId=x.id,T(t.element,f,a,e),L(t.element,a),t.lastSelected=a,t.lastFocused=e},Q=(f,x,a)=>{let e=B.get(f);if(!e)return;if(e.isGroupHeader)return;let t=e.lastSelected!==x,Q2=e.lastFocused!==a;if(t||Q2)T(e.element,f,x,a),L(e.element,x),e.lastSelected=x,e.lastFocused=a},_=(f)=>{V=f;let x=f.columns;for(let[,a]of B)if(a.element.style.width=`${f.totalWidth}px`,a.cells.length>0)for(let e=0;e<a.cells.length&&e<x.length;e++){let t=a.cells[e],Q2=x[e];t.style.left=`${Q2.offset}px`,t.style.width=`${Q2.width}px`}},C=(f)=>{return B.get(f)?.element},g=()=>{for(let[,f]of B)U.release(f.element);B.clear(),l=-1};return{render:s,updatePositions:o,updateItem:u,updateItemClasses:Q,getElement:C,updateColumnLayout:_,setGroupHeaderFn:H,clear:g,destroy:()=>{g(),U.clear()}}};var n1=new Set;function E0(j){if(!j.columns?.length)throw Error("[vlist] table: columns must be a non-empty array");if(j.rowHeight===void 0&&j.estimatedRowHeight===void 0)throw Error("[vlist] table: either rowHeight or estimatedRowHeight is required");let $=null,q=null,X=null,J,Z,K=null,M=null,F=null,U=!1,B=-1,l=-1,V=-1,D=!0,b=-1;function A(){if(U||!K)return;U=!0,M=K.getMethod("_getSelectedIds")??null,F=K.getMethod("_getFocusedIndex")??null}let H=[],L={start:0,end:0};function W(){if(J.destroyed||!K||!X||!$)return;let{scrollPosition:k,containerSize:E,totalItems:R}=J;if(!D&&k===B&&E===l&&R===V)return;if(B=k,l=E,V=R,D=!1,E<=0||R===0)return;let G=R+1;if(G!==b)b=G,K.dom.root.setAttribute("aria-rowcount",`${G}`);let z=Z.indexAtOffset(k),I=Z.indexAtOffset(k+E);if(I<R-1)I++;z=Math.max(0,z),I=Math.min(R-1,I);let y=K.config.overscan,S=Math.max(0,z-y),h=Math.min(R-1,I+y);if(S===J.prevRangeStart&&h===J.prevRangeEnd&&!J.renderPending)return;A();let r=M?.()??n1,c=F?.()??-1;H.length=0;for(let T=S;T<=h;T++){let v=K.getItem(T);if(v)H.push(v)}L.start=S,L.end=h,X.render(H,L,r,c),J.prevRangeStart=S,J.prevRangeEnd=h,J.renderPending=!1;let P=h-S+1;J.visibleCount=Math.min(P,J.capacity),J.startIndex=S;for(let T=0;T<J.visibleCount;T++){let v=S+T;J.visibleIndices[T]=v,J.visibleOffsets[T]=Z.getOffset(v),J.visibleSizes[T]=Z.getSize(v)}K.dom.content.style.height=Z.getTotalSize()+"px"}function w(){if(J.destroyed)return;J.prevRangeStart=-1,J.prevRangeEnd=-1,J.renderPending=!0,D=!0,W()}return{name:"table",priority:10,conflicts:["grid","masonry"],setup(k){K=k,J=k.getState(),Z=k.sizeCache;let{dom:E,config:R,emitter:G}=k,{classPrefix:z}=R;if(R.horizontal)throw Error("[vlist] table: cannot be used with horizontal orientation");if(R.reverse)throw Error("[vlist] table: cannot be used with reverse mode");let I=j.resizable??!0,y=j.minColumnWidth??50,S=j.maxColumnWidth??1/0,h=j.rowBorders??!0,r=j.rowHeight,c=j.headerHeight??(typeof r==="number"?r:40),P=j.sort?.key??null,T=j.sort?.direction??"asc";if($=H1(j.columns,y,S,I),typeof r==="function"||typeof r==="number")k.setSizeConfig(r);if(k.rebuildSizeCache(),E.root.classList.add(`${z}--table`),h)E.root.classList.add(`${z}--table-row-borders`);if(j.columnBorders)E.root.classList.add(`${z}--table-col-borders`);if(R.interactive)E.root.setAttribute("tabindex","0");E.root.setAttribute("role","grid"),E.root.setAttribute("aria-colcount",`${j.columns.length}`),E.viewport.setAttribute("role","none"),E.content.setAttribute("role","rowgroup");let v=J.crossSize;$.resolve(v);let Y=()=>{if(!$)return;E.content.style.minWidth=`${$.totalWidth}px`},N=(u,Q)=>{if(!$)return;let _=$.getColumn(u);if(!_)return;let C=_.width,g=$.resizeColumn(u,Q);q?.update($),X?.updateColumnLayout($),Y(),G.emit("column:resize",{key:_.def.key,index:u,previousWidth:C,width:g})},O=(u)=>{P=u.direction===null?null:u.key,T=u.direction??"asc",q?.updateSort(P,T),G.emit("column:sort",u)};if(q=L1(E.root,c,z,N,O),q.rebuild($),P)q.updateSort(P,T);Y(),X=F1(E.content,()=>Z,$,j.columns,z,z,()=>J.totalItems,R.striped||void 0),k.setRenderFn(W,w);let p=q,s=-1,o=()=>{let u=E.viewport.scrollLeft;if(u!==s)s=u,p?.syncScroll?.(u)};E.viewport.addEventListener("scroll",o,{passive:!0}),k.registerMethod("updateColumns",(u)=>{if(!$||!q)return;if($.updateColumns(u),$.resolve(J.crossSize),q.rebuild($),P)q.updateSort(P,T);Y(),X?.updateColumnLayout($),X?.clear(),k.forceRender()}),k.registerMethod("resizeColumn",(u,Q)=>{if(!$)return;let _;if(typeof u==="string"){let C=$.columns;_=-1;for(let g=0;g<C.length;g++)if(C[g].def.key===u){_=g;break}if(_===-1)return}else _=u;N(_,Q)}),k.registerMethod("getColumnWidths",()=>{if(!$)return{};let u={},Q=$.columns;for(let _=0;_<Q.length;_++)u[Q[_].def.key]=Q[_].width;return u}),k.registerMethod("setSort",(u,Q)=>{P=u,T=Q??"asc",q?.updateSort(P,T)}),k.registerMethod("getSort",()=>{return{key:P,direction:T}}),k.registerMethod("_getTableLayout",()=>$),k.registerMethod("_getTableHeaderHeight",()=>c),k.registerMethod("_updateRenderedItem",(u,Q,_,C)=>{X?.updateItem(u,Q,_,C)}),k.registerMethod("_replaceTableRenderer",(u)=>{X=u}),k.registerMethod("_updateTableForGroups",(u,Q)=>{X?.setGroupHeaderFn(u,Q)}),k.registerMethod("_updateItemClasses",(u,Q,_)=>{X?.updateItemClasses(u,Q,_)}),k.registerKeydownHandler((u)=>{if(u.key!=="ArrowLeft"&&u.key!=="ArrowRight")return;if(!$)return;let Q=$.columns;if(Q.length===0)return;let _=E.viewport.clientWidth;if($.totalWidth<=_)return;let C=E.viewport.scrollLeft;if(u.key==="ArrowRight"){for(let g=0;g<Q.length;g++)if(Q[g].offset>C+1){E.viewport.scrollLeft=Q[g].offset,u.preventDefault();return}}else{for(let g=Q.length-1;g>=0;g--)if(Q[g].offset<C-1){E.viewport.scrollLeft=Q[g].offset,u.preventDefault();return}if(C>0)E.viewport.scrollLeft=0,u.preventDefault()}}),k.registerDestroyHandler(()=>{E.viewport.removeEventListener("scroll",o),q?.destroy(),q=null,X?.destroy(),X=null,E.content.style.minWidth="",E.root.classList.remove(`${z}--table`),E.root.classList.remove(`${z}--table-row-borders`),E.root.classList.remove(`${z}--table-col-borders`),E.root.removeAttribute("role"),E.root.removeAttribute("aria-colcount"),E.root.removeAttribute("aria-rowcount"),E.root.removeAttribute("tabindex"),E.viewport.removeAttribute("role"),E.content.removeAttribute("role")})},hooks:{onResize(k,E){if(!$||!K)return;let R=J.crossSize;if($.resolve(R),q?.update($),X?.updateColumnLayout($),$)K.dom.content.style.minWidth=`${$.totalWidth}px`},onAfterScroll(){if(!K||!q)return;q?.syncScroll?.(K.dom.viewport.scrollLeft)}},destroy(){q?.destroy(),q=null,X?.destroy(),X=null,K=null}}}function R0(j){let $=j?.handle??null,q=j?.ghostClass??"vlist-sort-ghost",X=j?.shiftDuration??150,J=j?.edgeScrollZone??40,Z=j?.edgeScrollSpeed??20,K=j?.dragThreshold??5,M=j?.ghostContainer??null,F,U,B=null,l,V,D,b,A,H,L,W,w,k,E=!1,R=-1,G=-1,z=0,I=0,y=0,S=0,h=!1,r=null,c=0,P=null,T=0,v=0,Y=0,N=null,O=!1,p="",s=-1,o=-1,u=[],Q="",_=null,C=null,g="",i=!1,f=(m)=>{return m.closest("[data-index]")},x=(m)=>{let j2=m.dataset.index;return j2===void 0?-1:+j2},a=(m)=>{let j2=m.getBoundingClientRect(),Y2=m.cloneNode(!0);return Y2.className=`${b}-item ${q}`,Y2.removeAttribute("data-index"),Y2.style.cssText=`position:fixed;pointer-events:none;z-index:10000;width:${j2.width}px;height:${j2.height}px;left:${j2.left}px;top:${j2.top}px;transition:none;will-change:transform`,(M||document.body).appendChild(Y2),Y2},e=()=>{if(!r)return;r.style.left=`${y-v}px`,r.style.top=`${S-Y}px`},t=()=>{let m=F.totalItems;if(m===0)return 0;let j2=V.getBoundingClientRect(),Y2=F.scrollPosition,V2=A?y-v-j2.left+V.scrollLeft+Y2:S-Y-j2.top+Y2,_2=V2+T,T2=U.getOffset(R)+U.getSize(R);if(_2>T2){let O2=U.indexAtOffset(_2),p2=U.getOffset(O2)+U.getSize(O2)/2,f2=_2>p2?O2:O2-1;return Math.min(Math.max(f2,R),m-1)}let z2=U.getOffset(R);if(V2<z2){let O2=U.indexAtOffset(V2),p2=U.getOffset(O2)+U.getSize(O2)/2,f2=V2<p2?O2:O2+1;return Math.max(Math.min(f2,R),0)}return R},Q2=()=>{let m=l.children,j2=T;for(let Y2=0;Y2<m.length;Y2++){let V2=m[Y2],_2=x(V2);if(_2<0||_2===R)continue;let T2=0;if(G>R){if(_2>R&&_2<=G)T2=-j2}else if(G<R){if(_2>=G&&_2<R)T2=j2}let z2=U.getOffset(_2),O2=Math.round(z2+T2);V2.style.transition=L,V2.style.transform=`${H}(${O2}px)`}},Z2=()=>{let m=l.children;for(let j2=0;j2<m.length;j2++){let Y2=m[j2],V2=x(Y2);if(V2>=0)Y2.style.transform=`${H}(${Math.round(U.getOffset(V2))}px)`;Y2.style.transition=""}},G2=()=>{if(!B)return;let m=t();if(m===G)return;G=m,Q2(),B.emitter.emit("sort:move",{fromIndex:R,currentIndex:G})},M2=()=>{let m=V.getBoundingClientRect();if(A)return y<m.left||y>m.right;return S<m.top||S>m.bottom},W2=()=>{let m=B?.getMethod("_getFocusedIndex");return m?m():-1},J2=(m)=>{let j2=B?.getMethod("_focusById");if(j2)j2(m)},n=(m)=>{if(!B)return;let j2=A?V.clientWidth:V.clientHeight,Y2=F.scrollPosition,V2=U.getOffset(m),_2=V2+U.getSize(m);if(V2<Y2)B.scrollTo(Math.max(0,V2));else if(_2>Y2+j2)B.scrollTo(_2-j2)},$2=(m)=>{if(!C)return;C.textContent="",C.offsetHeight,C.textContent=m},K2=(m)=>{if(!B)return"";let Y2=B.getItems()[m];if(!Y2)return"";return l.querySelector(`[data-index="${m}"]`)?.textContent?.trim()||String(Y2.id)},B2=()=>String(F.totalItems),q2=(m)=>{let j2=l.children;for(let Y2=0;Y2<j2.length;Y2++)j2[Y2].style.transition=m},E2=()=>{let m=()=>{if(!E||!B)return;let j2=V.getBoundingClientRect(),Y2=0,V2=3;if(A){let T2=y-j2.left,z2=j2.right-y;if(T2<J){let O2=Math.min(V2,1-T2/J);Y2=-Z*O2*O2}else if(z2<J){let O2=Math.min(V2,1-z2/J);Y2=Z*O2*O2}}else{let T2=S-j2.top,z2=j2.bottom-S;if(T2<J){let O2=Math.min(V2,1-T2/J);Y2=-Z*O2*O2}else if(z2<J){let O2=Math.min(V2,1-z2/J);Y2=Z*O2*O2}}let _2=M2();if(Y2!==0){let T2=F.scrollPosition,z2=U.getTotalSize()-(A?V.clientWidth:V.clientHeight);if(Y2<0&&T2<=0||Y2>0&&T2>=z2)i=_2;else i=!0,B.scrollTo(T2+Y2)}else i=_2;c=requestAnimationFrame(m)};c=requestAnimationFrame(m)},R2=()=>{if(c)cancelAnimationFrame(c),c=0},A2=(m=!1)=>{if(E=!1,h=!1,r&&r.parentNode)r.remove();r=null,P=null;let j2=l.children;for(let V2=0;V2<j2.length;V2++){let _2=j2[V2];_2.classList.remove(k);let T2=x(_2);if(T2>=0)_2.style.transform=`${H}(${Math.round(U.getOffset(T2))}px)`;_2.style.transition=""}R2(),D.classList.remove(W),document.body.style.cursor="";let Y2=window.getSelection();if(Y2)Y2.removeAllRanges();if(document.removeEventListener("pointermove",y2),document.removeEventListener("pointerup",F2),document.removeEventListener("pointercancel",H2),!m&&B)B.forceRender()},D2=(m,j2)=>{if(!B)return;let Y2=m!==j2&&m>=0&&j2>=0,V2=()=>{if(!B)return;if(E=!1,Y2){if(D.classList.add(w),B.emitter.emit("sort:end",{fromIndex:m,toIndex:j2}),N!==null)J2(N);A2(!0),requestAnimationFrame(()=>D.classList.remove(w))}else D.classList.add(w),B.emitter.emit("sort:cancel",{originalItems:[...B.getItems()]}),A2(!1),requestAnimationFrame(()=>D.classList.remove(w))};if(!r){V2();return}let _2=V.getBoundingClientRect(),T2=F.scrollPosition,z2=U.getOffset(j2),O2=X>0?X:150;if(r.style.transition=`left ${O2}ms ease, top ${O2}ms ease`,A)r.style.left=`${_2.left-V.scrollLeft+z2-T2}px`,r.style.top=`${_2.top}px`;else r.style.left=`${_2.left}px`,r.style.top=`${_2.top+z2-T2}px`;let p2=!1,f2=()=>{if(p2)return;p2=!0,r?.removeEventListener("transitionend",f2),V2()};r.addEventListener("transitionend",f2),setTimeout(f2,O2+50)},b2=(m)=>{if(F.destroyed||!B)return;if(E)return;if(O)X2();if(m.button!==0)return;let j2=m.target;if($){if(!j2.closest($))return}let Y2=f(j2);if(!Y2)return;let V2=x(Y2);if(V2<0)return;z=m.clientX,I=m.clientY,y=m.clientX,S=m.clientY,R=V2,h=!1,P=Y2;let _2=Y2.getBoundingClientRect();v=m.clientX-_2.left,Y=m.clientY-_2.top,document.addEventListener("pointermove",y2),document.addEventListener("pointerup",F2),document.addEventListener("pointercancel",H2)};function y2(m){if(!B)return;if(y=m.clientX,S=m.clientY,!h){let j2=y-z,Y2=S-I;if(Math.sqrt(j2*j2+Y2*Y2)<K)return;if(h=!0,E=!0,G=R,D.classList.add(W),document.body.style.cursor="grabbing",T=U.getSize(R),P)r=a(P),P.classList.add(k);let V2=W2();if(V2>=0){let T2=B.getItems()[V2];N=T2?T2.id:null}else N=null;B.emitter.emit("sort:start",{index:R}),E2()}if(E){if(m.preventDefault(),e(),!i)G2();else if(M2()){if(G!==R)G=R,Z2()}}}function F2(m){if(!h){document.removeEventListener("pointermove",y2),document.removeEventListener("pointerup",F2),document.removeEventListener("pointercancel",H2),P=null;return}m.preventDefault(),document.removeEventListener("pointermove",y2),document.removeEventListener("pointerup",F2),document.removeEventListener("pointercancel",H2),R2(),D2(R,G)}let k2=()=>{if(!h)return;document.removeEventListener("pointermove",y2),document.removeEventListener("pointerup",F2),document.removeEventListener("pointercancel",H2),R2(),Z2(),D2(R,R)};function H2(){k2()}let w2=()=>{let m=l.querySelectorAll(`.${g}`);for(let j2=0;j2<m.length;j2++)m[j2].classList.remove(g)},N2=()=>{w2();let m=l.querySelector(`[data-id="${p}"]`);if(m)m.classList.add(g)},L2=(m)=>{if(!B)return;let j2=B.getItems(),Y2=j2[m];if(!Y2)return;O=!0,p=Y2.id,s=m,o=m,u=[...j2],D.classList.add(W),B.emitter.emit("sort:start",{index:m}),N2(),$2(`Grabbed ${K2(m)}. Current position ${m+1} of ${B2()}. Use Up and Down arrow keys to move, Space to drop, Escape to cancel.`)},P2=()=>{if(!O||!B)return;O=!1;let m=o,j2=K2(m);q2("none"),D.classList.remove(W),w2(),J2(p),B.forceRender(),$2(`${j2} dropped. Final position ${m+1} of ${B2()}.`),u=[],requestAnimationFrame(()=>q2(""))},X2=()=>{if(!O||!B)return;O=!1;let m=s;if(q2("none"),D.classList.remove(W),w2(),o!==m)B.emitter.emit("sort:cancel",{originalItems:u});J2(p),B.forceRender(),n(m),$2(`Reorder cancelled. Returned to position ${m+1} of ${B2()}.`),u=[],requestAnimationFrame(()=>q2(""))},d=(m)=>{if(!O||!B)return;let j2=F.totalItems,Y2=o+m;if(Y2<0||Y2>=j2)return;let V2=o,_2=Y2;q2("none"),B.emitter.emit("sort:end",{fromIndex:V2,toIndex:_2}),o=_2,J2(p),B.forceRender(),n(_2),N2(),$2(`${K2(_2)} moved. New position ${_2+1} of ${B2()}.`),requestAnimationFrame(()=>q2(""))},U2=(m)=>{if(F.destroyed)return;if(E){if(m.key==="Escape")m.preventDefault(),m.stopImmediatePropagation(),k2();return}if(O)switch(m.key){case" ":case"Enter":m.preventDefault(),m.stopImmediatePropagation(),P2();return;case"Escape":m.preventDefault(),m.stopImmediatePropagation(),X2();return;case"ArrowUp":case"ArrowLeft":m.preventDefault(),m.stopImmediatePropagation(),d(-1);return;case"ArrowDown":case"ArrowRight":m.preventDefault(),m.stopImmediatePropagation(),d(1);return;default:if(!m.key.startsWith("F")&&m.key!=="Tab")m.preventDefault(),m.stopImmediatePropagation();return}if(m.key===" "&&!m.shiftKey&&!m.ctrlKey&&!m.metaKey){let j2=W2();if(j2>=0)m.preventDefault(),m.stopImmediatePropagation(),L2(j2)}};return{name:"sortable",priority:30,conflicts:["grid","masonry","table","scale"],setup(m){B=m,F=m.getState(),U=m.sizeCache,l=m.dom.content,V=m.dom.viewport,D=m.dom.root,b=m.config.classPrefix,A=m.config.horizontal,H=A?"translateX":"translateY",L=X>0?`transform ${X}ms ease`:"none",W=`${b}--sorting`,w=`${b}--settling`,k=`${b}-item--drag-source`,g=`${b}-item--kb-sorting`,m.registerMethod("isSorting",()=>E||O),l.addEventListener("pointerdown",b2),D.addEventListener("keydown",U2),Q=`${b}-sort-instructions`,_=document.createElement("div"),_.id=Q,_.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",_.textContent="Press Space to reorder. Use arrow keys to move, Space to drop, Escape to cancel.",D.appendChild(_),C=document.createElement("div"),C.setAttribute("role","status"),C.setAttribute("aria-live","assertive"),C.setAttribute("aria-atomic","true"),C.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",D.appendChild(C),m.registerDestroyHandler(()=>{if(O)X2();A2(),l.removeEventListener("pointerdown",b2),D.removeEventListener("keydown",U2),_?.remove(),C?.remove()})},hooks:{onCommit(){if(!B)return;let m=l.children;for(let j2=0;j2<m.length;j2++){let Y2=m[j2],V2=x(Y2);if(V2<0)continue;if(Y2.setAttribute("aria-roledescription","sortable item"),Y2.setAttribute("aria-describedby",Q),O)if(Y2.getAttribute("data-id")===String(p))Y2.classList.add(g);else Y2.classList.remove(g);if(E)if(V2===R)Y2.classList.add(k),P=Y2;else{Y2.classList.remove(k);let _2=0;if(G>R){if(V2>R&&V2<=G)_2=-T}else if(G<R){if(V2>=G&&V2<R)_2=T}let T2=Math.round(U.getOffset(V2)+_2);Y2.style.transform=`${H}(${T2}px)`}}}},destroy(){if(r&&r.parentNode)r.remove();r=null,R2(),_?.remove(),C?.remove(),B=null}}}var t1=50,e1=0.1;function O1(j){let $=0,q=0,X=0;function J(){return X>0?q/X:0}function Z(F){if($=F,F>e1&&F<t1)q+=F,X++}function K(){let F=j.getTotal();if(F===0)return 0;let U=j.getItemSize();if(U<=0)return 0;let B=j.getContainerSize();if(B<=0)return 0;let l=j.getScrollPosition(),V=typeof j.getColumns==="function"?j.getColumns():1,b=Math.ceil(F/V)*U,H=Math.min(b,S2)-B,L=b-B,W=H>0?L/H:1,w=l*W,k=Math.ceil((w+B)/U);return Math.min(k*V,F)}function M(){let F=j.getTotal(),U=K();return{progress:F>0?Math.min(100,Math.max(0,U/F*100)):0,velocity:$,velocityAvg:J(),itemCount:U,total:F}}return{getState:M,onVelocity:Z}}export{_0 as transition,E0 as table,R0 as sortable,M0 as snapshots,N0 as selection,U0 as scrollbar,K0 as scale,V0 as page,A0 as masonry,F0 as groups,B0 as grid,D0 as data,e0 as createVList,O1 as createStats,G0 as autosize,W0 as a11y};