vlist 3.0.0-next.2 → 3.0.0-next.4

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 (72) hide show
  1. package/README.github.md +88 -39
  2. package/README.md +44 -27
  3. package/dist/config.d.ts +129 -12
  4. package/dist/config.js +1 -1
  5. package/dist/core/create.d.ts +22 -4
  6. package/dist/core/dom.d.ts +22 -2
  7. package/dist/core/fold.d.ts +52 -0
  8. package/dist/core/hooks.d.ts +1 -1
  9. package/dist/core/index.d.ts +1 -1
  10. package/dist/core/pipeline.d.ts +1 -1
  11. package/dist/core/pool.d.ts +9 -2
  12. package/dist/core/runway.d.ts +29 -3
  13. package/dist/core/scroll.d.ts +1 -1
  14. package/dist/core/sizes.d.ts +1 -1
  15. package/dist/core/state.d.ts +13 -1
  16. package/dist/core/types.d.ts +151 -61
  17. package/dist/core/velocity.d.ts +1 -1
  18. package/dist/index.d.ts +17 -2
  19. package/dist/index.js +1 -1
  20. package/dist/internals.d.ts +0 -1
  21. package/dist/internals.js +1 -1
  22. package/dist/plugins/a11y/index.d.ts +1 -0
  23. package/dist/plugins/a11y/plugin.d.ts +1 -1
  24. package/dist/plugins/autosize/index.d.ts +2 -1
  25. package/dist/plugins/autosize/plugin.d.ts +13 -2
  26. package/dist/plugins/carousel/engine.d.ts +1 -1
  27. package/dist/plugins/carousel/index.d.ts +1 -0
  28. package/dist/plugins/carousel/plugin.d.ts +42 -6
  29. package/dist/plugins/carousel/presets.d.ts +1 -1
  30. package/dist/plugins/data/index.d.ts +1 -0
  31. package/dist/plugins/data/plugin.d.ts +15 -2
  32. package/dist/plugins/grid/index.d.ts +2 -1
  33. package/dist/plugins/grid/plugin.d.ts +14 -2
  34. package/dist/plugins/groups/async-bridge.d.ts +6 -6
  35. package/dist/plugins/groups/index.d.ts +1 -0
  36. package/dist/plugins/groups/layout.d.ts +2 -2
  37. package/dist/plugins/groups/plugin.d.ts +12 -4
  38. package/dist/plugins/groups/sticky.d.ts +2 -1
  39. package/dist/plugins/groups/types.d.ts +8 -3
  40. package/dist/plugins/masonry/index.d.ts +2 -1
  41. package/dist/plugins/masonry/plugin.d.ts +10 -2
  42. package/dist/plugins/masonry/renderer.d.ts +5 -1
  43. package/dist/plugins/page/plugin.d.ts +1 -1
  44. package/dist/plugins/scrollbar/index.d.ts +2 -1
  45. package/dist/plugins/scrollbar/plugin.d.ts +7 -2
  46. package/dist/plugins/search/index.d.ts +1 -0
  47. package/dist/plugins/search/plugin.d.ts +29 -1
  48. package/dist/plugins/selection/index.d.ts +2 -1
  49. package/dist/plugins/selection/plugin.d.ts +23 -2
  50. package/dist/plugins/snapshots/index.d.ts +1 -0
  51. package/dist/plugins/snapshots/plugin.d.ts +9 -2
  52. package/dist/plugins/sortable/index.d.ts +1 -0
  53. package/dist/plugins/sortable/plugin.d.ts +14 -3
  54. package/dist/plugins/table/index.d.ts +1 -0
  55. package/dist/plugins/table/plugin.d.ts +19 -3
  56. package/dist/plugins/transition/plugin.d.ts +1 -1
  57. package/dist/plugins/tree/index.d.ts +1 -0
  58. package/dist/plugins/tree/layout.d.ts +3 -1
  59. package/dist/plugins/tree/plugin.d.ts +37 -3
  60. package/dist/plugins/tree/types.d.ts +1 -1
  61. package/dist/rendering/sizes.d.ts +19 -1
  62. package/dist/size.json +1 -1
  63. package/dist/synthetic.d.ts +2 -2
  64. package/dist/synthetic.js +1 -1
  65. package/dist/types.d.ts +14 -21
  66. package/dist/utils/apply-scroll-behavior.d.ts +15 -0
  67. package/dist/utils/scroll-padding.d.ts +36 -0
  68. package/dist/utils/stats.d.ts +9 -1
  69. package/dist/vlist-tree.css +1 -1
  70. package/dist/vlist.css +1 -1
  71. package/package.json +6 -2
  72. package/dist/plugins/grid/renderer.d.ts +0 -68
package/dist/config.js CHANGED
@@ -1 +1 @@
1
- var ct=16777216,et=3,Ht="vlist";var tt=50;var kt=50,_t=2,Ft=15,Vt=6,mt=2000,Dt=30000,ft=16000000,nt=150,gt=1,Ot=(e)=>e<0.5?2*e*e:1-(-2*e+2)**2/2,$t=300;var Gt="x",Bt=20,pt="_isPlaceholder",$e="__placeholder_";function ot(e){let{state:t,viewport:r,isX:o,onFrame:i,onIdle:n}=e,s=e.idleTimeout||nt,a=null,R=null;function g(m=o?r.scrollLeft:r.scrollTop){t.prevScrollPosition=t.scrollPosition,t.scrollPosition=m,t.scrollDirection=m>t.prevScrollPosition?1:m<t.prevScrollPosition?-1:0,i(),d()}function d(){if(a!==null)clearTimeout(a);a=setTimeout(()=>{a=null,t.scrollDirection=0,n()},s)}function V(){if(R!==null)cancelAnimationFrame(R),R=null}function F(m,Y,L,S=Ot,h){V();let p=t.scrollPosition,y=typeof m==="function"?m:()=>m,H=y();if(Math.abs(H-p)<1){if(L)L(H);else if(o)r.scrollLeft=H;else r.scrollTop=H;h?.();return}let v=performance.now();function x(D){H=y();let f=D-v,w=Math.min(f/Y,1),M=p+(H-p)*S(w);if(L)L(M);else if(o)r.scrollLeft=M;else r.scrollTop=M;if(!L)g(M);if(w<1)R=requestAnimationFrame(x);else R=null,h?.()}R=requestAnimationFrame(x)}return{attach(){},detach(){if(V(),a!==null)clearTimeout(a),a=null},cancelScroll:V,smoothScrollTo:F,commitScroll:g}}function Nt(e){let{state:t,viewport:r,isX:o,wheelEnabled:i}=e,n=e.scrollTarget??r,s=ot(e),a=s.commitScroll;function R(){let d=o?r.scrollLeft:r.scrollTop;if(Math.abs(d-t.scrollPosition)<0.5)return;a(d)}function g(d){let V;if(o){if(Math.abs(d.deltaX)>Math.abs(d.deltaY))return;let F=r.scrollLeft,m=r.scrollWidth-r.clientWidth;if(V=Math.max(0,Math.min(F+d.deltaY*gt,m)),Math.abs(V-F)<1)return;d.preventDefault(),r.scrollLeft=V}else{let F=r.scrollWidth>r.clientWidth;if(F&&Math.abs(d.deltaX)>Math.abs(d.deltaY))return;if(F&&d.deltaX!==0)d.preventDefault(),r.scrollLeft+=d.deltaX;let m=r.scrollTop,Y=r.scrollHeight-r.clientHeight;if(V=Math.max(0,Math.min(m+d.deltaY*gt,Y)),Math.abs(V-m)<1)return;d.preventDefault(),r.scrollTop=V}a(V)}return{...s,attach(){if(n.addEventListener("scroll",R,{passive:!0}),i)n.addEventListener("wheel",g,{passive:!1})},detach(){if(n.removeEventListener("scroll",R),i)n.removeEventListener("wheel",g);s.detach()}}}var rt={top:0,right:0,bottom:0,left:0},Wt=(e)=>{if(e==null)return rt;if(typeof e==="number")return e===0?rt:{top:e,right:e,bottom:e,left:e};if(e.length===2){let[n,s]=e;return n===0&&s===0?rt:{top:n,right:s,bottom:n,left:s}}let[t,r,o,i]=e;return t===0&&r===0&&o===0&&i===0?rt:{top:t,right:r,bottom:o,left:i}},Yt=(e,t)=>t?e.left+e.right:e.top+e.bottom,qt=(e,t)=>t?e.top+e.bottom:e.left+e.right;function Ut(e){let t={visibleIndices:new Int32Array(e),visibleOffsets:new Float64Array(e),visibleSizes:new Float64Array(e),visibleCount:0,startIndex:0,totalSize:0,capacity:e,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,prevAriaTotal:-1,resizeCapacity(r,o,i=et){if(o<=0||r<=0)return;let n=Math.ceil(r/o)+i*2;if(n<=t.capacity)return;let s=n+8,a=new Int32Array(s),R=new Float64Array(s),g=new Float64Array(s);a.set(t.visibleIndices),R.set(t.visibleOffsets),g.set(t.visibleSizes),t.visibleIndices=a,t.visibleOffsets=R,t.visibleSizes=g,t.capacity=s},clear(){t.visibleCount=0,t.startIndex=0}};return t}var Cn=(e,t)=>{let r=t;return{getOffset:(o)=>o*e,getSize:(o)=>e,indexAtOffset:(o)=>{if(r===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(o/e),r-1))},getTotalSize:()=>r*e,getTotal:()=>r,rebuild:(o)=>{r=o},isVariable:()=>!1}},Mn=(e,t)=>{let r=t,o=new Float64Array(0),i=(s)=>{r=s,o=new Float64Array(s+1),o[0]=0;for(let a=0;a<s;a++)o[a+1]=o[a]+e(a)};i(t);let n=(s)=>{if(r===0)return 0;if(s<=0)return 0;if(s>=o[r])return r-1;let a=0,R=r-1;while(a<R){let g=a+R+1>>>1;if(o[g]<=s)a=g;else R=g-1}return a};return{getOffset:(s)=>{if(s<=0)return 0;if(s>=r)return o[r];return o[s]},getSize:(s)=>e(s),indexAtOffset:(s)=>n(s),getTotalSize:()=>o[r]??0,getTotal:()=>r,rebuild:(s)=>i(s),isVariable:()=>!0}},it=(e,t)=>{if(typeof e==="number")return Cn(e,t);return Mn(e,t)};function Kt(e){let t=[],r=`${e}-item`,o=document.createElement("div");return o.className=r,{acquire(){if(t.length>0)return t.pop();return o.cloneNode(!1)},release(i){if(i.className=r,i.removeAttribute("style"),i.removeAttribute("id"),i.removeAttribute("role"),i.removeAttribute("aria-selected"),i.removeAttribute("aria-posinset"),i.removeAttribute("aria-setsize"),i.removeAttribute("data-index"),i.removeAttribute("data-id"),i.textContent="",t.length<100)t.push(i)},get size(){return t.length},clear(){t.length=0}}}function Ke(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let r=0;r<t.length;r++)t[r].setAttribute("tabindex","-1")}function bt(e){if(typeof e==="string"){let t=document.querySelector(e);if(!t)throw Error(`[vlist] Container not found: ${e}`);return t}return e}function Xt(e,t,r,o){let i=r?`${t} ${t}--horizontal`:t,n=r?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",s=r?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",a=' role="list"';if(o)a+=` aria-label="${o.replace(/"/g,"&quot;")}"`;if(r)a+=' aria-orientation="horizontal"';e.insertAdjacentHTML("beforeend",`<div class="${i}"><div class="${t}-viewport" style="${n}" tabindex="-1"><div class="${t}-content" style="${s}"${a}></div></div></div>`);let R=e.lastElementChild,g=R.firstElementChild,d=g.firstElementChild,V=document.createElement("div");return V.className=`${t}-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"),R.appendChild(V),{root:R,viewport:g,content:d,liveRegion:V}}function Pn(e,t){if(e.getTotal()<=0)return{index:0,offsetPx:0};let o=t<=0?0:t,i=e.indexAtOffset(o),n=o-e.getOffset(i);return{index:i,offsetPx:n>0?n:0}}function zn(e,t){let r=An(e,t);return e.getOffset(r.index)+r.offsetPx}function An(e,t){let r=e.getTotal();if(r<=0)return{index:0,offsetPx:0};let{index:o,offsetPx:i}=t;if(o<0)return{index:0,offsetPx:0};if(o>r-1)o=r-1;while(i>0&&o<r-1){let n=e.getSize(o);if(i<n)break;i-=n,o++}while(i<0&&o>0)o--,i+=e.getSize(o);if(i<0)i=0;return{index:o,offsetPx:i}}function jt(e){let{sizeCache:t,getPixel:r,setPixel:o,getContainerSize:i}=e;function n(){let a=t.getTotalSize()+e.padding-i();return a>0?a:0}function s(a){if(a<=0)return 0;let R=n();return a>R?R:a}return{getLogical(){return Pn(t,r())},setLogical(a){o(s(zn(t,a)))},getPixelEquivalent(){return r()},setPixelEquivalent(a){o(s(a))},getMaxPixelEquivalent:n,getRenderOrigin:e.getRenderOrigin,scrollByPx(a){o(s(r()+a))}}}var Ze=[],wn={calculate:Ze,commit:Ze,afterScroll:Ze,idle:Ze,resize:Ze};function Zt(e){if(e.length===0)return wn;let t=[],r=[],o=[],i=[],n=[];for(let s=0;s<e.length;s++){let a=e[s].hooks;if(a===void 0)continue;if(a.onCalculate!==void 0)t.push(a.onCalculate);if(a.onCommit!==void 0)r.push(a.onCommit);if(a.onAfterScroll!==void 0)o.push(a.onAfterScroll);if(a.onIdle!==void 0)i.push(a.onIdle);if(a.onResize!==void 0)n.push(a.onResize)}return{calculate:t,commit:r,afterScroll:o,idle:i,resize:n}}function Jt(e,t){for(let r=0;r<e.length;r++)e[r](t)}function Qt(e,t){for(let r=0;r<e.length;r++)e[r](t)}function ht(e,t,r){for(let o=0;o<e.length;o++)e[o](t,r)}function en(e){for(let t=0;t<e.length;t++)e[t]()}function tn(e,t,r){for(let o=0;o<e.length;o++)e[o](t,r)}function nn(e,t,r,o,i,n,s,a){let R=o!==0||i!==0;return{prefix:e,selectedClass:`${e}-item--selected`,focusedClass:`${e}-item--focused`,placeholderClass:`${e}-item--placeholder`,replacedClass:`${e}-item--replaced`,translateProp:t?"translateX(":"translateY(",sizeProp:t?"width":"height",itemRole:"listitem",interactive:!1,startPadding:r,gap:s,hasCrossPad:R,crossStartProp:R?t?"top":"left":"",crossEndProp:R?t?"bottom":"right":"",crossStartVal:R?o+"px":"",crossEndVal:R?i+"px":"",oddClass:n,emitter:a??null,indexMap:null,ariaTotalFn:null}}function Rn(e,t,r,o,i){if(e.containerSize<=0||e.totalItems===0)return e.clear(),!0;let{scrollPosition:n,containerSize:s,totalItems:a}=e,R=i??0;e.totalSize=t.getTotalSize();let g=t.indexAtOffset(R>0?Math.max(0,n-R):n),d=t.indexAtOffset(n+s);if(d<a-1)d++;g=Math.max(0,g),d=Math.min(a-1,Math.max(0,d));let V=Math.max(0,g-r),F=Math.min(a-1,d+r),m=Math.ceil(s/1)+r*2+10,Y=F-V+1,L=Math.min(Y,e.capacity,m);if(V===e.prevRangeStart&&F===e.prevRangeEnd&&!e.renderPending&&e.baseOffset===e.prevBaseOffset)return!1;e.visibleCount=L,e.startIndex=V;for(let S=0;S<L;S++){let h=V+S;e.visibleIndices[S]=h,e.visibleOffsets[S]=t.getOffset(h),e.visibleSizes[S]=t.getSize(h)}return Jt(o.calculate,e),e.prevRangeStart=V,e.prevRangeEnd=F,e.prevBaseOffset=e.baseOffset,e.renderPending=!1,!0}var De={selected:!1,focused:!1};function Hn(e,t,r){for(let o=0;o<t;o++)if(e[o]===r)return!0;return!1}function kn(e,t){if(t<=1)return!0;let r=e[0];for(let o=1;o<t;o++){let i=e[o];if(i!==r+1)return!1;r=i}return!0}function _n(e,t,r,o,i,n,s,a,R,g){let d=R?null:i(),{visibleCount:V,visibleIndices:F}=e,m=s.ariaTotalFn?s.ariaTotalFn():e.totalItems,Y=s.interactive?String(m):"",L=s.interactive&&m!==e.prevAriaTotal,S=null,h=s.indexMap;for(let p=0;p<V;p++){let y=F[p],H=h?h(y):y,v=e.visibleOffsets[p],x=e.visibleSizes[p],D=R?R(y):d[y];if(g)g(H,De);else De.selected=!1,De.focused=!1;let f=n.get(y),w=f;if(f===void 0){let M=t.acquire();if(D!==void 0){let te;try{te=o(D,H,De)}catch(ue){if(s.emitter)s.emitter.emit("error",{error:ue instanceof Error?ue:Error(String(ue)),context:`template:render:${H}`});t.release(M);continue}if(typeof te==="string")M.innerHTML=te;else M.textContent="",M.appendChild(te);Ke(M)}if(M.setAttribute("role",s.itemRole),M.setAttribute("data-index",String(H)),s.interactive)M.id=s.prefix+"-item-"+y,M.setAttribute("aria-posinset",String(H+1)),M.setAttribute("aria-setsize",Y);if(D!==void 0){let te=String(D.id);if(M.setAttribute("data-id",te),te.startsWith($e))M.classList.add(s.placeholderClass)}if(s.hasCrossPad)M.style.setProperty(s.crossStartProp,s.crossStartVal),M.style.setProperty(s.crossEndProp,s.crossEndVal);if(g){if(M.classList.toggle(s.selectedClass,De.selected),M.classList.toggle(s.focusedClass,De.focused),De.selected)M.setAttribute("aria-selected","true");else M.removeAttribute("aria-selected");M._lastSelected=De.selected,M._lastFocused=De.focused}if(s.oddClass)M.classList.toggle(s.oddClass,(y&1)===1);let q=v-e.baseOffset+s.startPadding;M.style.transform=s.translateProp+q+"px)",M._lastOffset=q;let ne=x-s.gap;if(M.style[s.sizeProp]=ne+"px",M._lastSize=ne,M._lastItem=D,n.set(y,M),S===null)S=document.createDocumentFragment();S.appendChild(M)}else{if(L)f.setAttribute("aria-setsize",Y);if(D!==void 0&&w._lastItem!==D){let ne=f.getAttribute("data-id"),te=String(D.id),ue;try{ue=o(D,H,De)}catch(fe){if(s.emitter)s.emitter.emit("error",{error:fe instanceof Error?fe:Error(String(fe)),context:`template:render:${H}`});continue}if(typeof ue==="string")f.innerHTML=ue;else f.textContent="",f.appendChild(ue);if(Ke(f),f.setAttribute("data-id",te),w._lastItem=D,ne!==te){let fe=ne!==null&&ne.startsWith($e),j=te.startsWith($e);if(fe!==j)f.classList.toggle(s.placeholderClass,j);if(fe&&!j)f.classList.add(s.replacedClass),setTimeout(()=>{f.classList.remove(s.replacedClass)},300)}}if(g){if(w._lastSelected!==De.selected){if(f.classList.toggle(s.selectedClass,De.selected),De.selected)f.setAttribute("aria-selected","true");else f.removeAttribute("aria-selected");w._lastSelected=De.selected}if(w._lastFocused!==De.focused)f.classList.toggle(s.focusedClass,De.focused),w._lastFocused=De.focused}let M=v-e.baseOffset+s.startPadding;if(w._lastOffset!==M)f.style.transform=s.translateProp+M+"px)",w._lastOffset=M;let q=x-s.gap;if(w._lastSize!==q)f.style[s.sizeProp]=q+"px",w._lastSize=q}}if(S!==null)r.appendChild(S);if(V>0&&kn(F,V)){let p=F[0],y=F[V-1];for(let[H,v]of n)if(H<p||H>y)v.remove(),t.release(v),n.delete(H)}else for(let[p,y]of n)if(!Hn(F,V,p))y.remove(),t.release(y),n.delete(p);if(s.interactive)e.prevAriaTotal=e.totalItems;Qt(a.commit,e)}function St(e,t,r,o,i,n,s,a,R,g,d,V){if(Rn(e,t,r,g,R.startPadding))_n(e,o,i,n,s,a,R,g,d,V)}var vt=()=>{let e={},t=(n,s)=>{if(!e[n])e[n]=new Set;return e[n].add(s),()=>r(n,s)},r=(n,s)=>{e[n]?.delete(s)};return{on:t,off:r,emit:(n,s)=>{e[n]?.forEach((a)=>{try{a(s)}catch(R){console.error(`[vlist] Error in event handler for "${String(n)}":`,R)}})},clear:(n)=>{if(n)delete e[n];else for(let s in e)delete e[s]}}};var on=2,rn=(e=0)=>({velocity:0,sampleCount:0}),sn=(e,t)=>{let r=performance.now(),o=e._lt??r,i=e._lp??t,n=r-o;if(e._lp=t,e._lt=r,n===0)return e.sampleCount=Math.min(e.sampleCount+1,5),e;if(n>100)return e.velocity=0,e.sampleCount=1,e;return e.velocity=Math.abs(t-i)/n,e.sampleCount=Math.min(e.sampleCount+1,5),e};function Fn(e){let{item:t}=e;if(t.height!==void 0&&typeof t.height==="number"){if(!Number.isFinite(t.height)||t.height<=0)throw Error(`vlist: item.height must be a positive number, got ${t.height}`)}if(t.width!==void 0&&typeof t.width==="number"){if(!Number.isFinite(t.width)||t.width<=0)throw Error(`vlist: item.width must be a positive number, got ${t.width}`)}if(t.estimatedHeight!==void 0){if(!Number.isFinite(t.estimatedHeight)||t.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${t.estimatedHeight}`)}if(t.estimatedWidth!==void 0){if(!Number.isFinite(t.estimatedWidth)||t.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${t.estimatedWidth}`)}if(t.gap!==void 0){if(typeof t.gap!=="number"||!Number.isFinite(t.gap)||t.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${t.gap}`)}if(e.overscan!==void 0){if(typeof e.overscan!=="number"||!Number.isFinite(e.overscan)||e.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${e.overscan}`)}let r=e.scroll;if(r?.mode!==void 0||r?.runway!==void 0)throw Error('vlist 3.0: scroll.mode and scroll.runway were removed; bounded mode is gone. Use "vlist/synthetic" for huge lists or "vlist" for native scrolling.')}function Vn(e,t){let r=e==="horizontal"?"x":"y";if(t.some((i)=>i.name==="grid"))return{primary:r,cross:r==="x"?"y":"x"};return{primary:r}}function Dn(e,t){let r=Vn(e.orientation,t),o=r.primary==="x",i=Wt(e.padding);return{axis:r,hasCrossAxis:r.cross!==void 0,overscan:e.overscan??et,reverse:e.reverse??!1,classPrefix:e.classPrefix??Ht,mainAxisPadding:Yt(i,o),crossAxisPadding:qt(i,o),startPadding:o?i.left:i.top,endPadding:o?i.right:i.bottom,crossPadStart:o?i.top:i.left,crossPadEnd:o?i.bottom:i.right,striped:e.item.striped||!1,gap:e.item.gap??0}}function On(e,t){if(t)return e.item.width??e.item.estimatedWidth??100;return e.item.height??e.item.estimatedHeight??40}function $n(e){let t=[...e];return t.sort((r,o)=>(r.priority??50)-(o.priority??50)),t}function Gn(e){let t=new Set;for(let r of e){if(t.has(r.name))throw Error(`[vlist] Duplicate plugin: ${r.name}`);t.add(r.name)}for(let r of e)if(r.conflicts){for(let o of r.conflicts)if(t.has(o))throw Error(`[vlist] Plugin "${r.name}" conflicts with "${o}"`)}}function ln(e,t=[]){let r=!1;return Bn(e,t,void 0,{native:Nt,onContentSize(o,i){if(!r&&o>ft)r=!0,i.emit("error",{error:Error(`Content size (${o}px) exceeds browser limit (${ft}px). Use "vlist/synthetic" for large datasets.`),context:"content:size:overflow"})}})}function Bn(e,t=[],r,o){if(Fn(e),r){if(typeof e.scroll?.scrollbar==="string")throw Error('vlist 3.0: scroll.scrollbar strings require "vlist"; use the scrollbar() plugin with "vlist/synthetic".');if(e.orientation==="horizontal"&&getComputedStyle(bt(e.container)).direction==="rtl")throw Error('vlist: RTL horizontal lists require createVList from "vlist"');for(let O of t)if(O.name==="carousel"||O.name==="sortable")throw Error(`vlist: ${O.name} requires createVList from "vlist"`)}let i=Dn(e,t),n=i.axis.primary==="x",s=On(e,n),a=i.gap,R=a>0?typeof s==="function"?(O)=>s(O)+a:s+a:s,g=typeof s==="number"?s:20,d=e.items?.length??0,V=i.striped?`${i.classPrefix}-item--odd`:"",F=vt(),m=nn(i.classPrefix,n,i.startPadding,i.crossPadStart,i.crossPadEnd,V,a,F),Y=t.length>0?$n(t):t;if(t.length>0)Gn(Y);let L=bt(e.container),S=Xt(L,i.classPrefix,n,e.ariaLabel);if(e.scroll?.scrollbar==="none")S.viewport.classList.add(`${i.classPrefix}-viewport--no-scrollbar`);if(e.scroll?.gutter==="stable")S.viewport.classList.add(`${i.classPrefix}-viewport--gutter-stable`);let p=it(R,d);if(a>0){let O=p.getTotalSize;p.getTotalSize=()=>{let b=O();return b>0?b-a:0}}let y=Kt(i.classPrefix),H=Math.ceil(4096/g)+i.overscan*2+8,v=Ut(H);v.totalItems=d;let x=e.items??[],D=()=>x,f=new Map,w=rn(),M={velocity:0,reliable:!1},q={range:{start:0,end:-1}},ne={scrollPosition:0,direction:"down"},te={scrollPosition:0},ue=-1,fe=-1,j=-1,I=null,C=Zt(Y),G=new Map,T=[],l=[],B=[],k=null,N=null,U,be,_=null,X=null,E=null,P=null,c=null,W=null,z=null,A=null,oe=!1,Z=!1,le=null,ce=0,se=0,he=null,K=null,Q=null,u=null,J=null,de=null,ae=null,Ie=null,xe=null,pe=null;v.containerSize=n?S.viewport.clientWidth:S.viewport.clientHeight,v.crossSize=n?S.viewport.clientHeight:S.viewport.clientWidth;function ye(O){if(N)N(O);else{if(n)S.viewport.scrollLeft=O;else S.viewport.scrollTop=O;be?.()}}let Te=jt({sizeCache:p,getPixel:()=>v.scrollPosition,setPixel:ye,getRenderOrigin:()=>v.baseOffset,getContainerSize:()=>v.containerSize,padding:i.mainAxisPadding});if(t.length>0){let O={dom:S,sizeCache:p,scroll:Te,pool:y,config:i,emitter:F,template:e.item.template,registerMethod(b,ge){G.set(b,ge)},getMethod(b){return G.get(b)},registerClickHandler(b){T.push(b)},registerKeydownHandler(b){l.push(b)},registerDestroyHandler(b){B.push(b)},enableListboxRole(){let b=S.content.getAttribute("role");if(!b||b==="list")S.content.setAttribute("role","listbox"),S.content.setAttribute("tabindex","0");m.itemRole="option",m.interactive=!0},setSizeConfig(b){let ge=it(b,v.totalItems),Ae=G.get("_setSizeCacheBase");if(Ae){let ke=p.rebuild;Object.assign(p,ge),p.rebuild=ke,Ae(ge.rebuild)}else Object.assign(p,ge)},setScrollSource(b){N=b.write,U=b.onContentSize,oe=!0},commitScroll(b){be(b)},setBoundedWrap(b,ge){xe=b,pe=ge},cancelScroll(){Oe?.cancelScroll()},setVirtualTotalFn(b){k=b,m.ariaTotalFn=b},setIndexMapFn(b){m.indexMap=b},getItems:D,getItem(b){return E?E(b):x[b]},getState(){return v},rebuildSizeCache(){p.rebuild(v.totalItems)},updateContentSize:me,setRenderFn(b,ge){_=b,X=ge},renderIfNeeded(){ie()},forceRender(){Pe()},setGetItemFn(b){E=b},setItemStateFn(b){P=b},getItemStateFn(){return P},get rawSizeSpec(){return s},scrollTo:ye,shiftScroll(b){if(Ie?.shiftBy)Ie.shiftBy(b);else O.scrollTo(v.scrollPosition+b)},smoothScrollTo(b,ge,Ae,ke){if(u)u(b,ge,N??void 0,Ae,ke);else O.scrollTo(typeof b==="function"?b():b)},disableDefaultResize(){Z=!0},setScrollTarget(b){le=b},setScrollToPosFn(b){J=b},setScrollToIndexFn(b){de=b},onScrollFrame:ve,onScrollIdle:we,removeItemById(b){if(c)return c(b);let ge=x.findIndex((Ae)=>Ae.id===b);if(ge===-1)return-1;return x.splice(ge,1),v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),ge},insertItemAt(b,ge){if(W){W(b,ge);return}x.splice(ge,0,b),v.totalItems=x.length,p.rebuild(v.totalItems),Ce()},setRemoveItemFn(b){c=b},setInsertItemFn(b){W=b},setUpdateItemFn(b){z=b},setGetIndexByIdFn(b){A=b},getRenderedElement(b){let ge=G.get("_getRenderedElement");if(ge)return ge(b);return f.get(b)??null},setNavConfig(b){if(b.ud!==void 0)ce=b.ud;if(b.lr!==void 0)se=b.lr;if(b.scrollIndex)he=b.scrollIndex;if(b.navigate)K=b.navigate;if(b.total)Q=b.total},getNavConfig:(()=>{let b={ud:0,lr:0,scrollIndex:null,navigate:null,total:null};return()=>(b.ud=ce,b.lr=se,b.scrollIndex=he,b.navigate=K,b.total=Q,b)})()};for(let b of Y)if(b.setup)try{b.setup(O)}catch(ge){F.emit("error",{error:ge instanceof Error?ge:Error(String(ge)),context:`plugin:setup:${b.name}`})}}let Me=i.classPrefix+"--scrolling",Se=!1,Ee=e.scroll?.idleTimeout??nt;function re(){if(ne.scrollPosition=v.scrollPosition,n)ne.direction=v.scrollDirection>0?"right":"left";else ne.direction=v.scrollDirection>0?"down":"up";if(F.emit("scroll",ne),sn(w,v.scrollPosition),M.velocity=w.velocity,M.reliable=w.sampleCount>=on,F.emit("velocity:change",M),v.startIndex!==ue||v.prevRangeEnd!==fe)ue=v.startIndex,fe=v.prevRangeEnd,q.range.start=v.startIndex,q.range.end=v.prevRangeEnd,F.emit("range:change",q)}function me(O,b=!0){if(Ie){if(b)Ie.refresh(O);return}v.totalSize=O;let ge=O+i.mainAxisPadding;if(U?.(ge),b)S.content.style[n?"width":"height"]=ge+"px"}function Ce(){let O=_?v.totalSize:p.getTotalSize();if(me(O,!_),Ie||_)return;o?.onContentSize(O,F)}function Re(){if(!ae)return;if((k?k():x.length)===0)return;let b=ae;ae=null,ze.scrollToIndex(b.index,b.alignOrOptions)}function ie(){if(Re(),_)_();else St(v,p,i.overscan,y,S.content,e.item.template,D,f,m,C,E,P)}function ve(){if(!Se)Se=!0,S.root.classList.add(Me);if(ie(),ht(C.afterScroll,v.scrollPosition,v.scrollDirection),v.scrollPosition!==j)j=v.scrollPosition,re()}function we(){if(Se)Se=!1,S.root.classList.remove(Me);v.scrollDirection=0,en(C.idle),M.velocity=0,M.reliable=!1,F.emit("velocity:change",M),te.scrollPosition=v.scrollPosition,F.emit("scroll:idle",te)}function Pe(){if(Re(),v.renderPending=!0,X)X();else St(v,p,i.overscan,y,S.content,e.item.template,D,f,m,C,E,P);if(ht(C.afterScroll,v.scrollPosition,v.scrollDirection),v.scrollPosition!==j){if(j=v.scrollPosition,re(),I!==null)clearTimeout(I);I=setTimeout(we,Ee)}}let _e=oe?!1:e.scroll?.wheel!==!1,Oe;if(oe&&xe)throw Error("vlist: page() is not compatible with the carousel plugin — bounded page-mode scrolling is not implemented yet.");if(!oe&&(r||xe))Ie=(r??pe)({state:v,sizeCache:p,viewport:S.viewport,content:S.content,isX:n,wheelEnabled:_e,idleTimeout:Ee,...le?{scrollTarget:le}:{},mainAxisPadding:i.mainAxisPadding,...xe?{wrap:xe}:{},onFrame:ve,onIdle:we}),Oe=Ie,N=(O)=>Ie.setLogical(O);else{let O=(oe?ot:o.native)({state:v,viewport:S.viewport,isX:n,wheelEnabled:_e,idleTimeout:Ee,...le?{scrollTarget:le}:{},onFrame:ve,onIdle:we});Oe=O,be=O.commitScroll}u=Oe.smoothScrollTo;function Fe(O){let ge=O.target.closest("[data-index]");if(!ge)return null;let Ae=parseInt(ge.getAttribute("data-index"),10);if(Number.isNaN(Ae))return null;let ke=G.get("_layoutToDataIndex"),Ge;if(ke){let Be=ke(Ae);if(Be<0)return null;let je=G.get("_getItem");Ge=je?je(Be):E?E(Be):x[Be]}else Ge=E?E(Ae):x[Ae];if(Ge===void 0)return null;return{item:Ge,index:Ae}}function Ne(O){for(let ge=0;ge<T.length;ge++)T[ge](O);let b=Fe(O);if(b)F.emit("item:click",{item:b.item,index:b.index,event:O})}function We(O){let b=Fe(O);if(b)F.emit("item:dblclick",{item:b.item,index:b.index,event:O})}function He(O){let b=Fe(O);if(b)F.emit("item:contextmenu",{item:b.item,index:b.index,event:O})}function Ve(O){let b=O.target?.tagName;if((b==="INPUT"||b==="TEXTAREA"||b==="SELECT")&&!((O.ctrlKey||O.metaKey)&&(O.key==="f"||O.key==="F")))return;for(let ge=0;ge<l.length;ge++)l[ge](O)}if(S.content.addEventListener("click",Ne),S.content.addEventListener("dblclick",We),S.content.addEventListener("contextmenu",He),l.length>0)S.root.addEventListener("keydown",Ve);let ee=null;if(!Z)setTimeout(()=>{if(v.destroyed)return;ee=new ResizeObserver((b)=>{for(let ge of b){let{width:Ae,height:ke}=ge.contentRect,Ge=n?Ae:ke,Be=n?ke:Ae;if(Math.abs(Ge-v.containerSize)<1&&Math.abs(Be-v.crossSize)<1)continue;if(v.containerSize=Ge,v.crossSize=Be,v.resizeCapacity(Ge,g,i.overscan),Ie)Ie.refresh(p.getTotalSize());Pe(),tn(C.resize,Ae,ke),F.emit("resize",{width:Ae,height:ke})}}),ee.observe(S.viewport)},0);v.resizeCapacity(v.containerSize,g,i.overscan),Ce(),v.initialized=!0;let Le=null;if(e.defer)Le=requestAnimationFrame(()=>{if(Le=null,!v.destroyed)ie()});else ie();if(!oe)Oe.attach();let ze={get element(){return S.root},get items(){return x},get total(){return k?k():x.length},setItems(O){x=[...O],v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),Pe()},appendItems(O){x.push(...O),v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),Pe()},prependItems(O){x.unshift(...O),v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),Pe()},updateItem(O,b){if(z){if(!z(O,b))return}else{let ge=x.findIndex((Ae)=>Ae.id===O);if(ge===-1)return;x[ge]={...x[ge],...b}}Pe()},insertItem(O,b){if(W)W(O,b??v.totalItems);else{if(b===void 0)x.push(O);else x.splice(b,0,O);v.totalItems=x.length,p.rebuild(v.totalItems),Ce()}Pe()},removeItem(O){if(c){if(c(O)<0)return}else{let b=x.findIndex((ge)=>ge.id===O);if(b===-1)return;x.splice(b,1),v.totalItems=x.length,p.rebuild(v.totalItems),Ce()}Pe()},removeItems(O){if(c){let ke=0;for(let Ge of O)if(c(Ge)>=0)ke++;if(ke>0)Pe();return ke}let b=new Set(O),ge=x.length;x=x.filter((ke)=>!b.has(ke.id));let Ae=ge-x.length;if(Ae>0)v.totalItems=x.length,p.rebuild(v.totalItems),Ce(),v.renderPending=!0,ie();return Ae},getItemAt(O){if(m.indexMap)return x[O];return E?E(O):x[O]},getIndexById(O){if(A)return A(O);return x.findIndex((b)=>b.id===O)},scrollToIndex(O,b="start"){let ge=k?k():x.length;if(ge===0){ae={index:O,alignOrOptions:b};return}let Ae=Math.max(0,Math.min(O,ge-1)),ke=typeof b==="string"?b:b.align??"start",Ge=typeof b==="object"?b.behavior:void 0,Be=typeof b==="object"?b.duration:void 0,je=typeof b==="object"?b.easing:void 0;if(de&&de(Ae,ke,Ge,Be,je)!==!1)return;let ut=p.getOffset(Ae),wt=p.getSize(Ae),Qe=v.containerSize,xn=p.getTotalSize(),Rt=i.mainAxisPadding,Ln=Math.max(0,xn+Rt-Qe),Ye;if(J)Ye=J(Ae,p,Qe,ge,ke);else{let En=i.startPadding;switch(ke){case"center":Ye=En+ut-(Qe-wt)/2;break;case"end":Ye=ut+wt+Rt-Qe;break;default:Ye=ut}Ye=Math.max(0,Math.min(Ye,Ln))}if(Ge==="smooth")Oe.smoothScrollTo(Ye,Be??$t,N??void 0,je);else ye(Ye)},getScrollPosition(){return Te.getPixelEquivalent()},on:F.on.bind(F),off:F.off.bind(F),destroy(){if(v.destroyed)return;if(v.destroyed=!0,Se)Se=!1,S.root.classList.remove(Me);if(Le!==null)cancelAnimationFrame(Le),Le=null;if(I!==null)clearTimeout(I),I=null;Oe.detach(),ee?.disconnect(),S.content.removeEventListener("click",Ne),S.content.removeEventListener("dblclick",We),S.content.removeEventListener("contextmenu",He),S.root.removeEventListener("keydown",Ve);let O=[];for(let b of B)try{b()}catch(ge){O.push(ge instanceof Error?ge:Error(String(ge)))}for(let b of Y)if(b.destroy)try{b.destroy()}catch(ge){O.push(ge instanceof Error?ge:Error(String(ge)))}for(let[,b]of f)b.remove();if(f.clear(),y.clear(),S.root.remove(),F.emit("destroy",void 0),F.clear(),O.length>0)for(let b of O)console.error("vlist: error during destroy:",b)}};for(let[O,b]of G)ze[O]=b;return ze}var st=(e)=>e==null?0:typeof e==="function"?e():e;function yt(e){let t=e?.scrollPadding,r,o;return{name:"page",priority:5,setup(i){let{dom:n,sizeCache:s,config:a,emitter:R}=i,g=a.axis.primary==="x",d=window,V=i.getState();if(i.disableDefaultResize(),n.root.style.overflow="visible",n.root.style.height="auto",g)n.viewport.style.overflowX="visible",n.viewport.style.overflowY="visible";else n.viewport.style.overflow="visible";n.viewport.classList.remove(`${a.classPrefix}-viewport--custom-scrollbar`);let F=!1,m=!1;i.setScrollSource({onContentSize(p){if(p>ct&&!m){let y=`vlist: page() native document size ${p}px exceeds the ${ct}px limit. Use the viewport-scrolled default for larger lists. See https://vlist.io/docs/rfcs/RFC-014-Scroll-Input-Model`;if(!F)throw o?.(),r?.(),n.root.remove(),Error(y);m=!0,console.warn(y)}F=!0},write(p){let y=n.viewport.getBoundingClientRect(),H=(g?y.left+d.scrollX:y.top+d.scrollY)+p;if(g)d.scrollTo({left:H,top:d.scrollY,behavior:"instant"});else d.scrollTo({left:d.scrollX,top:H,behavior:"instant"});i.commitScroll(p)}}),V.containerSize=g?d.innerWidth:d.innerHeight,V.crossSize=g?d.innerHeight:d.innerWidth;let Y=()=>{let p=n.viewport.getBoundingClientRect(),y=Math.max(0,g?-p.left:-p.top);if(Math.abs(y-i.scroll.getPixelEquivalent())<0.5)return;i.commitScroll(y)};d.addEventListener("scroll",Y,{passive:!0}),o=()=>d.removeEventListener("scroll",Y);let{innerWidth:L,innerHeight:S}=d,h=()=>{let{innerWidth:p,innerHeight:y}=d;if((g?Math.abs(p-L):Math.abs(y-S))<1)return;L=p,S=y,V.containerSize=g?p:y,V.crossSize=g?y:p,i.forceRender(),R.emit("resize",{width:p,height:y})};if(d.addEventListener("resize",h),r=()=>d.removeEventListener("resize",h),t)i.setScrollToPosFn((p,y,H,v,x)=>{let D=st(g?t.left:t.top),f=st(g?t.right:t.bottom);if(v===0)return 0;let w=Math.max(0,Math.min(p,v-1)),M=y.getOffset(w),q=y.getSize(w),ne=y.getTotalSize(),te=Math.max(0,ne-H+f),ue;switch(x){case"center":ue=M-D-(H-D-f-q)/2;break;case"end":ue=M-H+q+f;break;default:ue=M-D}return Math.max(-D,Math.min(ue,te))}),i.registerMethod("_scrollItemIntoView",(p)=>{let y=g?d.innerWidth:d.innerHeight,H=st(g?t.left:t.top),v=st(g?t.right:t.bottom),x=n.viewport.getBoundingClientRect(),D=g?d.scrollX:d.scrollY,f=g?x.left:x.top,w=f+D,M=s.getOffset(p),q=s.getSize(p),ne=f+M,te=y-v,ue=D;if(ne<H)ue=w+M-H;else if(ne+q>te)ue=w+M+q-te;if(ue!==D)if(g)d.scrollTo({left:ue,top:d.scrollY,behavior:"instant"});else d.scrollTo({left:d.scrollX,top:ue,behavior:"instant"})});i.registerDestroyHandler(()=>{o?.(),r?.()})},destroy(){o?.(),r?.(),o=void 0,r=void 0}}}function It(e){let t=e?.gap??0,r=null,o=null,i,n,s,a,R,g=new Map,d=new Set,V=new WeakMap,F=0,m=!1,Y=!1,L=!1,S=2;function h(f){return g.get(f)??R}function p(f){return g.has(f)&&!d.has(f)}function y(f){if(!o||i.destroyed)return;if(f===void 0){if(g.size===0)return;g.clear(),d.clear(),o.rebuildSizeCache(),D()}else{if(!g.has(f))return;d.add(f)}o.forceRender()}function H(){return Math.max(0,o.sizeCache.getTotalSize()+o.config.mainAxisPadding-i.containerSize)}function v(){let f=H();return f>0&&n.getPixelEquivalent()>=f-S}function x(){let f=H();if(f>n.getPixelEquivalent())o.scrollTo(f)}function D(){o.updateContentSize(o.sizeCache.getTotalSize())}return{name:"autosize",priority:5,setup(f){if(n=f.scroll,o=f,i=f.getState(),s=f.config.axis.primary==="x",a=s?"width":"height",t===0)t=f.config.gap;if(R=typeof f.rawSizeSpec==="function"?f.rawSizeSpec(0)+t:f.rawSizeSpec+t,f.setSizeConfig(h),t>0){let te=f.sizeCache.getTotalSize;f.sizeCache.getTotalSize=()=>{let ue=te();return ue>0?ue-t:0}}r=new ResizeObserver((te)=>{if(i.destroyed||!o)return;let ue=!1,fe=f.sizeCache.indexAtOffset(n.getPixelEquivalent());for(let T of te){let l=T.target,B=V.get(l);if(B===void 0)continue;if(l.getAttribute("data-index")!==String(B)){r.unobserve(l);continue}if(p(B))continue;let k=T.borderBoxSize[0];if(!k)continue;let N=s?k.inlineSize:k.blockSize;if(N<=0)continue;let U=N+t,be=g.has(B),_=g.get(B)??R;if(g.set(B,U),d.delete(B),!be||U!==_)ue=!0;if(B<fe&&U!==_)F+=U-_;r.unobserve(l),l.style[a]=`${N}px`}if(!ue)return;let j=v();if(f.rebuildSizeCache(),F)f.shiftScroll(F),F=0;let I=i.scrollDirection!==0,C=i.totalItems>0&&i.prevRangeEnd>=i.totalItems-1,G=Y&&!L;if(G||j||C||!I){if(D(),m=!1,G||j)x()}else m=!0;f.forceRender()}),f.setScrollToIndexFn((te,ue,fe,j,I)=>{let C=te>=i.totalItems-1&&ue==="end";if(Y=C,L=!1,!C)return!1;let G=f.config.mainAxisPadding,T=()=>{let l=f.sizeCache.getTotalSize();return Math.max(0,l+G-i.containerSize)};if(fe==="smooth")L=!0,f.smoothScrollTo(T,j??300,I,()=>{L=!1});else f.scrollTo(T())});let w=()=>{Y=!1},M=f.dom.viewport;M.addEventListener("wheel",w,{passive:!0}),M.addEventListener("touchstart",w,{passive:!0}),f.registerDestroyHandler(()=>{M.removeEventListener("wheel",w),M.removeEventListener("touchstart",w)});let q=f.dom.content,ne=(te)=>{let ue=te.target;if(!ue||ue===q)return;let fe=ue.closest("[data-index]");if(!fe||fe.parentNode!==q)return;let j=Number(fe.getAttribute("data-index"));if(p(j))y(j)};q.addEventListener("load",ne,!0),q.addEventListener("error",ne,!0),f.registerDestroyHandler(()=>{q.removeEventListener("load",ne,!0),q.removeEventListener("error",ne,!0)}),f.registerMethod("isMeasured",p),f.registerMethod("remeasure",y),f.registerMethod("setMeasuredSize",(te,ue)=>{g.set(te,ue)}),f.registerMethod("getMeasuredCount",()=>g.size),f.registerDestroyHandler(()=>{if(r)r.disconnect(),r=null})},hooks:{onCommit(f){if(!r||!o)return;for(let w=0;w<f.visibleCount;w++){let M=f.visibleIndices[w];if(p(M))continue;let q=o.getRenderedElement(M);if(!q)continue;q.style[a]="",V.set(q,M),r.observe(q)}},onIdle(){if(!o||!m)return;let f=v();if(D(),m=!1,f)x(),o.forceRender()}},destroy(){if(r)r.disconnect(),r=null;g.clear(),d.clear(),Y=!1,L=!1,o=null}}}var an=(e={})=>{let{chunkSize:t=100,maxCachedItems:r=5000,evictionBuffer:o=200,onEvict:i}=e,n=new Map,s=0,a=0,R=(I)=>{let C=n.get(I);if(!C)C={items:Array(t),count:0,lastAccess:Date.now()},n.set(I,C);else C.lastAccess=Date.now();return C},g=(I)=>Math.floor(I/t),d=(I)=>I%t,V=()=>s,F=(I)=>{s=I},m=(I)=>{if(I<0||I>=s)return;let C=g(I),G=n.get(C);if(!G)return;return G.items[d(I)]},Y=(I)=>{if(I<0||I>=s)return!1;let C=g(I),G=n.get(C);if(!G)return!1;return G.items[d(I)]!==void 0},L=(I,C)=>{let G=g(I),T=R(G),l=d(I),B=T.items[l]===void 0;if(T.items[l]=C,B)T.count++,a++;if(I>=s)s=I+1},S=(I,C)=>{for(let G=0;G<C.length;G++){let T=C[G];if(T!==void 0)L(I+G,T)}},h=(I,C)=>{if(I<0||I>s)return;let G=g(I),T=Array.from(n.keys()).filter((U)=>U>=G).sort((U,be)=>U-be),l=[];for(let U of T){let be=n.get(U),_=U*t;for(let X=0;X<t;X++){if(be.items[X]===void 0)continue;let E=_+X;if(E<I)continue;l.push({oldIndex:E,item:be.items[X]})}}for(let{oldIndex:U}of l){let be=g(U),_=n.get(be);if(!_)continue;let X=d(U);if(_.items[X]!==void 0){if(_.items[X]=void 0,_.count--,a--,_.count===0)n.delete(be)}}s++;for(let{oldIndex:U,item:be}of l){let _=U+1,X=g(_),E=R(X),P=d(_);E.items[P]=be,E.count++,a++}let B=g(I),k=R(B),N=d(I);k.items[N]=C,k.count++,a++},p=(I)=>{if(I<0||I>=s)return!1;let C=g(I),G=n.get(C),T=d(I);if(!(G!==void 0&&G.items[T]!==void 0))return!1;let B=C,k=Array.from(n.keys()).filter((U)=>U>=B).sort((U,be)=>U-be),N=[];for(let U of k){let be=n.get(U),_=U*t;for(let X=0;X<t;X++){if(be.items[X]===void 0)continue;let E=_+X;if(E<=I)continue;N.push({oldIndex:E,item:be.items[X]})}}if(G.items[T]=void 0,G.count--,a--,G.count===0)n.delete(C);for(let{oldIndex:U}of N){let be=g(U),_=n.get(be);if(!_)continue;let X=d(U);if(_.items[X]!==void 0){if(_.items[X]=void 0,_.count--,a--,_.count===0)n.delete(be)}}for(let{oldIndex:U,item:be}of N){let _=U-1,X=g(_),E=R(X),P=d(_);E.items[P]=be,E.count++,a++}return s--,!0},y=(I,C)=>{let G=[];for(let T=I;T<=C&&T<s;T++)G.push(m(T));return G},H=(I,C)=>{for(let G=I;G<=C&&G<s;G++)if(!Y(G))return!1;return!0},v=()=>{let I=[],C=null,G=Array.from(n.keys()).sort((T,l)=>T-l);for(let T of G){let l=n.get(T);if(!l)continue;let B=T*t;for(let k=0;k<t;k++){let N=B+k;if(N>=s)break;if(l.items[k]!==void 0)if(C===null)C={start:N,end:N};else if(N===C.end+1)C.end=N;else I.push(C),C={start:N,end:N};else if(C!==null)I.push(C),C=null}}if(C!==null)I.push(C);return I},x=(I,C)=>{let G=[],T=null;for(let l=I;l<=C&&l<s;l++)if(!Y(l))if(T===null)T={start:l,end:l};else T.end=l;else if(T!==null)G.push(T),T=null;if(T!==null)G.push(T);return G},D=(I)=>n.has(I),f=(I)=>{let C=n.get(I);if(!C)return!1;let G=I*t,T=Math.min(t,s-G);return C.count>=T},w=(I)=>{let C=n.get(I);if(C)C.lastAccess=Date.now()},M=(I,C)=>{if(I>C||n.size===0)return;let G=Date.now(),T=g(Math.max(0,I)),l=g(Math.min(s-1,C));for(let B=T;B<=l;B++){let k=n.get(B);if(k)k.lastAccess=G}},q=(I,C)=>{if(a<=r)return 0;let G=Math.max(0,I-o),T=Math.min(s-1,C+o),l=g(G),B=g(T),k=0,N=[];for(let[U,be]of n)if(U<l||U>B)k+=be.count,N.push(U),a-=be.count,n.delete(U);if(k>0&&i)i(k,N);return k},ne=()=>{if(a<=r)return 0;let I=Array.from(n.entries()).sort(([,T],[,l])=>T.lastAccess-l.lastAccess),C=0,G=[];for(let[T,l]of I){if(a<=r)break;C+=l.count,a-=l.count,G.push(T),n.delete(T)}if(C>0&&i)i(C,G);return C},te=()=>({totalItems:s,cachedItems:a,cachedChunks:n.size,chunkSize:t,maxCachedItems:r,memoryEfficiency:s>0?1-a/s:1}),ue=()=>a,fe=()=>{n.clear(),a=0};return{chunkSize:t,maxCachedItems:r,getTotal:V,setTotal:F,get:m,has:Y,set:L,setRange:S,insert:h,delete:p,getRange:y,isRangeLoaded:H,getLoadedRanges:v,findUnloadedRanges:x,getChunkIndex:g,isChunkLoaded:D,isChunkFullyLoaded:f,touchChunk:w,touchChunksForRange:M,evictDistant:q,evictToLimit:ne,getStats:te,getCachedCount:ue,clear:fe,reset:()=>{fe(),s=0}}};var dn=(e={})=>{let{maskCharacter:t=Gt,maxSampleSize:r=Bt}=e,o=[],i=!1,n=(d)=>{if(i||d.length===0)return;let V=Math.min(d.length,r);for(let F=0;F<V;F++){let m=d[F];if(!m||typeof m!=="object")continue;let Y={},L=!1;for(let[S,h]of Object.entries(m)){if(S.startsWith("_")||S==="id")continue;Y[S]=String(h??"").length,L=!0}if(L)o.push(Y)}i=!0},s=()=>i,a=(d)=>{let V={id:`${$e}${d}`,[pt]:!0,_index:d};if(o.length===0)return V.label=t.repeat(12),V;let F=o[d%o.length];for(let[m,Y]of Object.entries(F))V[m]=t.repeat(Math.max(1,Y));return V};return{analyzeStructure:n,hasAnalyzedStructure:s,generate:a,generateRange:(d,V)=>{let F=[];for(let m=d;m<=V;m++)F.push(a(m));return F},clear:()=>{o=[],i=!1}}},lt=(e)=>{if(!e||typeof e!=="object")return!1;return e[pt]===!0};var Nn=50,un=(e={})=>{let{adapter:t,initialItems:r,initialTotal:o,storage:i,placeholder:n,pageSize:s=Nn,maxConcurrent:a=0,onStateChange:R,onDataChange:g,onItemsLoaded:d,onItemsEvicted:V,onLoadError:F}=e,m=an({...i,onEvict:(K,Q)=>{V?.(K),q(),M()}}),Y=null,L=()=>{if(!Y)Y=dn(n);return Y},S=new Map,h=!1,p,y=!0,H,v,x=[],D=0,f=new Map,w=()=>{for(let K of f.values())K[1].abort();f.clear()},M=()=>{R?.(T())},q=()=>{g?.()},ne=()=>{S.clear();let K=m.getLoadedRanges();for(let Q of K)for(let u=Q.start;u<=Q.end;u++){let J=m.get(u);if(J&&!lt(J))S.set(J.id,u)}},te=(K,Q)=>{if(!lt(Q))S.set(Q.id,K)},ue=(K)=>{S.delete(K)},fe=(K,Q)=>`${K}-${Q}`,j=()=>m.getTotal(),I=()=>m.getCachedCount(),C=()=>h,G=()=>y,T=()=>({total:m.getTotal(),cached:m.getCachedCount(),isLoading:h,pendingRanges:x,error:p,hasMore:y,cursor:H}),l=()=>m,B=()=>L(),k=(K)=>{let Q=m.get(K);if(Q!==void 0)return Q;if(K>=0&&K<m.getTotal())return L().generate(K);return},N=(K)=>{let Q=S.get(K);if(Q===void 0)return;return m.get(Q)},U=(K)=>S.get(K)??-1,be=(K)=>{let Q=m.get(K);return Q!==void 0&&!lt(Q)},_=(K,Q)=>{let u=[],J=m.getTotal();m.touchChunksForRange(K,Math.min(Q,J-1));for(let de=K;de<=Q&&de<J;de++){let ae=m.get(de);if(ae!==void 0)u.push(ae);else u.push(L().generate(de))}return u},X=(K)=>{m.setTotal(K),y=m.getCachedCount()<K,q(),M()},E=(K,Q=0,u)=>{if(t&&K.length>0){let J=L();if(!J.hasAnalyzedStructure())J.analyzeStructure(K)}for(let J=0;J<K.length;J++){let de=K[J];if(de!==void 0){let ae=Q+J;m.set(ae,de),te(ae,de)}}if(u!==void 0)m.setTotal(u);else if(Q+K.length>m.getTotal())m.setTotal(Q+K.length);if(m.getCachedCount()>=m.getTotal()&&m.getTotal()>0)y=!1;q(),M(),d?.(K,Q,m.getTotal())},P=(K,Q)=>{let u=m.get(K);if(!u)return!1;let J=u.id,de={...u,...Q};if(m.set(K,de),Q.id!==void 0&&Q.id!==J)ue(J);return te(K,de),q(),M(),!0},c=(K,Q)=>{m.insert(Q,K),ne(),w(),q(),M()},W=(K)=>{let Q=S.get(K);if(Q===void 0)return!1;if(!m.delete(Q))return!1;return ne(),w(),q(),M(),!0},z=async(K,Q)=>{if(!t)return;let u=m.chunkSize,J=Math.floor(K/u),de=Math.floor(Q/u),ae=u*2;for(let[pe,ye]of f){let Te=pe.indexOf("-"),Me=parseInt(pe.slice(0,Te),10);if(Math.abs(Me-K)>ae)ye[1].abort(),f.delete(pe)}let Ie=[],xe=[];for(let pe=J;pe<=de;pe++){let ye=pe*u,Te=ye+u-1,Me=fe(ye,Te);if(m.isChunkFullyLoaded(pe))continue;let Ee=f.get(Me);if(Ee)xe.push(Ee[0]);else Ie.push({start:ye,end:Te})}if(Ie.length===0){if(xe.length>0)await Promise.all(xe);return}if(a>0){let pe=f.size+Ie.length;if(pe>a){let ye=(K+Q)/2,Te=Math.min(pe-a,f.size);while(Te>0){let Se=null,Ee=-1,re=null;for(let[me,Ce]of f){let Re=me.indexOf("-"),ie=parseInt(me.slice(0,Re),10),ve=parseInt(me.slice(Re+1),10),we=Math.abs((ie+ve)/2-ye);if(we>Ee)Ee=we,Se=me,re=Ce[1]}if(Se)re.abort(),f.delete(Se);Te--}let Me=a-f.size;if(Ie.length>Me)Ie.sort((Se,Ee)=>{let re=Math.abs((Se.start+Se.end)/2-ye),me=Math.abs((Ee.start+Ee.end)/2-ye);return re-me}),Ie.length=Math.max(0,Me)}}if(Ie.length===0){if(xe.length>0)await Promise.all(xe);return}for(let pe of Ie){let ye=fe(pe.start,pe.end),Te=new AbortController,Me=(async()=>{x.push(pe),h=!0,p=void 0,M();try{let Se=pe.end-pe.start+1,Ee={offset:pe.start,limit:Se,cursor:pe.start===v?H:void 0,signal:Te.signal},re=await t.read(Ee);if(E(re.items,pe.start,re.total),re.cursor)H=re.cursor,v=pe.start+re.items.length;let me=pe.start+re.items.length;if(me>=D){if(D=me,re.hasMore!==void 0)y=re.hasMore;else if(re.total!==void 0)y=me<re.total}}catch(Se){if(Se?.name==="AbortError")return;p=Se instanceof Error?Se:Error(String(Se)),F?.(p,pe)}finally{f.delete(ye);let Se=x.findIndex((Ee)=>Ee.start===pe.start&&Ee.end===pe.end);if(Se>=0)x.splice(Se,1);h=f.size>0,M()}})();f.set(ye,[Me,Te]),xe.push(Me)}await Promise.all(xe)},A=async(K,Q)=>{if(m.isRangeLoaded(K,Q))return;await z(K,Q)},oe=async()=>{if(!t)return;await z(0,s-1)},Z=async()=>{if(!t||h||!y)return!1;let K=m.getCachedCount(),Q=m.getTotal(),u=K,J=Math.min(u+s-1,Q>0?Q-1:u+s-1);if(u>=Q&&Q>0)return y=!1,!1;return await z(u,J),m.getCachedCount()>K},le=async()=>{if(m.clear(),S.clear(),Y)Y.clear();w(),x=[],h=!1,H=void 0,v=void 0,y=!0,D=0,p=void 0,q(),M()},ce=(K,Q)=>{if(m.evictDistant(K,Q)>0)ne()},se=()=>{m.clear(),S.clear(),H=void 0,v=void 0,p=void 0,x=[],h=!1,q(),M()},he=()=>{if(m.reset(),S.clear(),Y)Y.clear();H=void 0,v=void 0,y=!0,D=0,p=void 0,x=[],h=!1,q(),M()};if(r&&r.length>0)E(r,0,o??r.length);else if(o!==void 0)m.setTotal(o),q(),M();return{getState:T,getTotal:j,getCached:I,getIsLoading:C,getHasMore:G,getStorage:l,getPlaceholders:B,getItem:k,getItemById:N,getIndexById:U,isItemLoaded:be,getItemsInRange:_,setTotal:X,setItems:E,updateItem:P,insertItem:c,removeItem:W,loadRange:z,ensureRange:A,loadInitial:oe,loadMore:Z,reload:le,evictDistant:ce,clear:se,reset:he}};function Tt(e){let{adapter:t,total:r,autoLoad:o=!0,storage:i}=e,n=e.loading?.cancelThreshold??Ft,s=e.loading?.preloadThreshold??_t,a=e.loading?.preloadAhead??kt,R=e.loading?.maxConcurrent??Vt,g,d,V,F,m,Y,L=null,S=null,h=null,p=0,y=!1,H=null,v=mt,x=-1,D=-1,f=-1,w=-1,M=i?.chunkSize??tt,q=()=>{if(L=null,S!==null)clearTimeout(S),S=null},ne=(T,l)=>g.ensureRange(T,l),te=(T,l=tt)=>{F.emit("load:start",{offset:T,limit:l})},ue=(T)=>{F.emit("error",{error:T,context:"ensureRange"})},fe=()=>{L=null;let T={start:d.startIndex,end:d.startIndex+Math.max(0,d.visibleCount-1)};if(T.end<T.start)return;ne(T.start,T.end).catch(ue)},j=()=>{if(H!==null)clearTimeout(H),H=null},I=()=>{if(d.destroyed)return;let T=g.getTotal();if(d.visibleCount<=0||d.startIndex>=T)return;let l=Math.min(d.startIndex+d.visibleCount-1,T-1);if(l<d.startIndex)return;ne(d.startIndex,l).catch(ue)},C=()=>{if(H!==null||d.destroyed)return;H=setTimeout(()=>{H=null,I()},v),v=Math.min(v*2,Dt)},G=()=>{j(),v=mt};return{name:"data",priority:20,setup(T){d=T.getState(),V=T.sizeCache,F=T.emitter,m=T.dom,Y=T.forceRender.bind(T);let l=null;T.setVirtualTotalFn(()=>l?.getTotal()??0),T.setGetIndexByIdFn((k)=>l?.getIndexById(k)??-1),g=l=un({adapter:t,...r!==void 0&&{initialTotal:r},pageSize:i?.chunkSize??tt,maxConcurrent:R,...i&&{storage:{...i.chunkSize!==void 0&&{chunkSize:i.chunkSize},...i.maxCachedItems!==void 0&&{maxCachedItems:i.maxCachedItems},...i.evictionBuffer!==void 0&&{evictionBuffer:i.evictionBuffer}}},onDataChange:()=>{if(d.initialized){let k=g.getTotal(),N=g.getCached();if(d.totalItems=k,k!==x||N!==D)x=k,D=N,V.rebuild(k);T.updateContentSize(V.getTotalSize()),T.renderIfNeeded()}},onItemsLoaded:(k)=>{if(G(),d.initialized)T.updateContentSize(V.getTotalSize()),Y(),F.emit("load:end",{items:k,total:g.getTotal()})},onLoadError:(k)=>{if(F.emit("error",{error:k,context:"load"}),d.initialized)T.renderIfNeeded();C()}}),T.setGetItemFn((k)=>g.getItem(k)),T.setRemoveItemFn((k)=>{let N=g.getIndexById(k);if(N<0)return-1;if(!g.removeItem(k))return-1;return N}),T.setInsertItemFn((k,N)=>{g.insertItem(k,N)}),T.setUpdateItemFn((k,N)=>{let U=g.getIndexById(k);if(U<0)return!1;return g.updateItem(U,N)}),T.registerMethod("reload",async()=>{if(L=null,f=-1,w=-1,G(),T.forceRender(),await g.reload(),T.scrollTo(0),o)te(0),await g.loadInitial(),T.forceRender()}),T.registerMethod("loadVisibleRange",async()=>{L=null,T.forceRender();let k=g.getTotal();if(d.visibleCount>0&&d.startIndex<k){let N=Math.min(d.startIndex+d.visibleCount-1,k-1);te(d.startIndex,N-d.startIndex+1),await ne(d.startIndex,N)}}),T.registerMethod("loadInitial",async()=>{te(0),await g.loadInitial(),T.forceRender()}),T.registerMethod("getTotal",()=>g.getTotal()),T.registerMethod("setTotal",(k)=>{g.setTotal(k)}),T.registerMethod("_getTotal",()=>g.getTotal()),T.registerMethod("_setTotal",(k)=>{g.setTotal(k)}),T.registerMethod("_cancelAutoLoad",()=>{y=!0}),T.registerMethod("_getLoadedItem",(k)=>g.getStorage().get(k)),T.registerMethod("_getItem",(k)=>g.getItem(k)),T.registerMethod("_getLoadedCount",()=>g.getCached()),F.on("load:start",()=>{m.root.setAttribute("aria-busy","true")}),F.on("load:end",()=>{m.root.removeAttribute("aria-busy")}),T.registerDestroyHandler(()=>{if(h!==null)clearTimeout(h),h=null;q(),j()}),F.on("velocity:change",({velocity:k})=>{p=Math.abs(k)});let B=()=>{if(d.destroyed)return;G(),I(),fe()};if(window.addEventListener("online",B),T.registerDestroyHandler(()=>{window.removeEventListener("online",B)}),o)queueMicrotask(()=>{if(y)return;te(0),g.loadInitial().catch((k)=>{F.emit("error",{error:k,context:"loadInitial"})})});else if(r!==void 0)g.setTotal(r)},hooks:{onAfterScroll(){if(d.destroyed)return;let T=d.startIndex+Math.max(0,d.visibleCount-1);if(p>n){if(S!==null)clearTimeout(S),S=null;L={start:d.startIndex,end:T};return}if(p>s){let k=Math.floor(d.startIndex/M),N=Math.floor(T/M);if(k!==f||N!==w){if(f=k,w=N,T>=d.startIndex)ne(d.startIndex,T).catch(ue)}let U=d.startIndex,be=T,_=d.scrollDirection;if(_>0)be=Math.min(be+a,g.getTotal()-1);else if(_<0)U=Math.max(0,U-a);if(L={start:U,end:be},S!==null)clearTimeout(S);S=setTimeout(()=>{if(S=null,d.destroyed||!L)return;let{start:X,end:E}=L;if(L=null,E>=X)ne(X,E).catch(ue)},100);return}q();let l=Math.floor(d.startIndex/M),B=Math.floor(T/M);if(l!==f||B!==w){if(f=l,w=B,T>=d.startIndex)ne(d.startIndex,T).catch(ue)}},onIdle(){if(d.destroyed)return;p=0,f=-1,w=-1,fe(),q()},onResize(){if(d.destroyed)return;let T=g.getTotal();if(T<=0)return;if(d.visibleCount<=0||d.startIndex>=T)return;let l=Math.min(d.startIndex+d.visibleCount-1,T-1);if(l<d.startIndex)return;te(d.startIndex,l-d.startIndex+1),ne(d.startIndex,l).catch(ue)}},destroy(){if(h!==null)clearTimeout(h);q(),j()}}}var cn=(e)=>{let t=Math.max(1,Math.floor(e.columns)),r=e.gap??0,o=e.isHeaderFn,i={row:0,col:0},n=(L)=>{if(L<=0)return 0;if(!o)return Math.ceil(L/t);let S=0,h=0,p=0;for(let y=0;y<L;y++)if(o(y)){if(p++,h)S++,h=0;S++,h=0}else if(h++,h>=t)S++,h=0;if(h)S++;return S},s=(L)=>(i.row=a(L),i.col=R(L),i),a=(L)=>{if(!o)return Math.floor(L/t);let S=0,h=0;for(let p=0;p<=L;p++)if(o(p)){if(h)S++,h=0;if(p===L)return S;S++,h=0}else{if(p===L)return S;if(h++,h>=t)S++,h=0}return console.warn(`⚠️ getRow(${L}) fell through - returning ${S}`),S},R=(L)=>{if(!o)return L%t;if(o(L))return 0;let S=0;for(let h=0;h<=L;h++)if(o(h))S=0;else{if(h===L)return S;if(S++,S>=t)S=0}return S},g=(L,S,h,p)=>{if(h<=0){p.start=0,p.end=-1;return}if(!o){p.start=Math.max(0,L*t),p.end=Math.min(h-1,(S+1)*t-1);return}let y=d(L,S,h);p.start=y.start,p.end=y.end},d=(L,S,h)=>{if(h<=0)return{start:0,end:-1};if(!o){let x=Math.max(0,L*t),D=Math.min(h-1,(S+1)*t-1);return{start:x,end:D}}let p=-1,y=-1,H=0,v=0;for(let x=0;x<h;x++){if(o(x)){if(v)H++,v=0;if(H>=L&&H<=S){if(p<0)p=x;y=x}H++,v=0}else{if(H>=L&&H<=S){if(p<0)p=x;y=x}if(v++,v>=t)H++,v=0}if(H>S&&!v)break}if(p<0)return{start:0,end:-1};return{start:p,end:y}},V=(L,S,h)=>{if(S<0||S>=t)return-1;let p=L*t+S;if(p<0||p>=h)return-1;return p},F=(L)=>{let S=(t-1)*r;return Math.max(0,(L-S)/t)};return{get columns(){return t},get gap(){return r},update:(L)=>{if(L.columns!==void 0)t=Math.max(1,Math.floor(L.columns));if(L.gap!==void 0)r=L.gap;if(L.isHeaderFn!==void 0)o=L.isHeaderFn},getTotalRows:n,getPosition:s,getRow:a,getCol:R,getItemRange:d,fillItemRange:g,getItemIndex:V,getColumnWidth:F,getColumnOffset:(L,S)=>{let h=F(S);return L*(h+r)}}};var qe={selected:!1,focused:!1};function xt(e){if(!e.columns||e.columns<1)throw Error("[vlist] grid: columns must be >= 1");let t,r,o,i,n=0,s,a=null,R,g,d,V,F,m,Y=null,L=0,S=0,h=0,p=0,y=new Map,H=0,v=0,x=0,D=0,f=null,w=!1,M="",q="",ne="",te={start:0,end:-1},ue=-1,fe=-1,j=-1,I=!0,C=(_)=>r.rebuild(_);function G(){let _=(v-1)*x;D=Math.max(0,(H-_)/v)}function T(){if(w)return;w=!0,f=Y?.()??null}function l(){return t.getTotalRows(o.totalItems)}function B(_,X){let E=_/v|0,c=(_-E*v)*(D+x)+L,W=r.getOffset(E)-X+h;if(V)return`translate(${Math.round(W)}px, ${Math.round(c)}px)`;return`translate(${Math.round(c)}px, ${Math.round(W)}px)`}function k(_,X){let E=r.getSize(X)-x;if(V)_.style.width=`${E}px`,_.style.height=`${D}px`;else _.style.width=`${D}px`,_.style.height=`${E}px`}function N(_,X,E){if(f)f(E,qe);else qe.selected=!1,qe.focused=!1;let P=g(X,E,qe);if(typeof P==="string")_.innerHTML=P;else _.innerHTML="",_.appendChild(P)}function U(){if(o.destroyed)return;let _=i.getRenderOrigin(),X=i.getPixelEquivalent(),E=o.containerSize;if(!I&&X===ue&&E===fe&&_===n)return;ue=X,fe=E,I=!1;let P=l();if(E<=0||P===0)return;T();let c=r.indexAtOffset(X),W=r.indexAtOffset(X+E);if(W<P-1)W++;c=Math.max(0,c),W=Math.min(P-1,Math.max(0,W));let z=Math.max(0,c-m),A=Math.min(P-1,W+m);if(z===o.prevRangeStart&&A===o.prevRangeEnd&&!o.renderPending&&_===n)return;t.fillItemRange(z,A,o.totalItems,te);let{start:oe,end:Z}=te;for(let[se,he]of y)if(se<oe||se>Z)he.el.remove(),s.release(he.el),y.delete(se);for(let se=oe;se<=Z;se++){let he=d(se);if(!he)continue;let K=se/v|0,Q=se-K*v,u=y.get(se);if(u===void 0){let ae=s.acquire();ae.className=M,ae.setAttribute("data-index",String(se)),ae.setAttribute("data-id",String(he.id)),N(ae,he,se),u={el:ae,lastItem:he},y.set(se,u),R.appendChild(ae)}else if(u.lastItem!==he)u.el.setAttribute("data-id",String(he.id)),u.lastItem=he,N(u.el,he,se);else if(f)f(se,qe);if(f)if(u.el.classList.toggle(q,qe.selected),u.el.classList.toggle(ne,qe.focused),qe.selected)u.el.setAttribute("aria-selected","true");else u.el.removeAttribute("aria-selected");k(u.el,K);let J=Q*(D+x)+L,de=r.getOffset(K)-_+h;u.el.style.transform=V?`translate(${Math.round(de)}px, ${Math.round(J)}px)`:`translate(${Math.round(J)}px, ${Math.round(de)}px)`}let le=r.getTotalSize();if(le!==j)j=le,a?.updateContentSize(le);o.prevRangeStart=z,o.prevRangeEnd=A,n=_,o.renderPending=!1;let ce=Z-oe+1;o.visibleCount=Math.min(ce,o.capacity),o.startIndex=oe;for(let se=0;se<o.visibleCount;se++){let he=oe+se,K=he/v|0;o.visibleIndices[se]=he,o.visibleOffsets[se]=r.getOffset(K),o.visibleSizes[se]=r.getSize(K)}}function be(){if(o.destroyed)return;C(l()),j=-1,o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,I=!0,U()}return{name:"grid",priority:10,conflicts:["masonry","table"],setup(_){i=_.scroll,v=Math.max(1,Math.floor(e.columns)),x=e.gap??0,t=cn({columns:e.columns,gap:x}),r=_.sizeCache,o=_.getState(),s=_.pool,a=_,R=_.dom.content,g=_.template,V=_.config.axis.primary==="x",F=_.config.classPrefix,m=_.config.overscan,d=_.getItem.bind(_),Y=()=>_.getItemStateFn(),M=`${F}-item ${F}-grid-item`,q=`${F}-item--selected`,ne=`${F}-item--focused`,L=_.config.crossPadStart,S=_.config.crossAxisPadding,h=_.config.startPadding,p=_.config.mainAxisPadding,H=o.crossSize-S,G();let X=_.rawSizeSpec,E;if(typeof X==="function"){let A={columnWidth:t.getColumnWidth(H),columns:e.columns,gap:x};E=X(0,A),_.setSizeConfig((oe)=>{A.columnWidth=t.getColumnWidth(H);let Z=oe*e.columns;return X(Z,A)+x})}else if(E=X,x>0)_.setSizeConfig(E+x);let P=null,c=r.rebuild;function W(){if(r.rebuild===P)return;c=r.rebuild,C=(z)=>c(z),P=(z)=>{C(Math.ceil(z/v))},r.rebuild=P}if(_.registerMethod("_setSizeCacheBase",(z)=>{c=z,C=(A)=>c(A)}),W(),C(l()),x>0){let z=r.getTotalSize;r.getTotalSize=()=>{let A=z();return A>0?A-x:0}}_.setVirtualTotalFn(()=>l()),_.dom.root.classList.add(`${F}--grid`),_.setRenderFn(U,be),_.registerMethod("getGridLayout",()=>t),_.registerMethod("_getRowGap",()=>t.gap),_.registerMethod("updateGrid",(z)=>{if(z.columns!==void 0){if(!Number.isInteger(z.columns)||z.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(z.gap!==void 0&&z.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if(t.update(z),z.columns!==void 0)v=Math.max(1,Math.floor(z.columns));if(z.gap!==void 0)x=z.gap;if(z.gap!==void 0||z.columns!==void 0){let A=t.gap;if(typeof X==="function"){let oe={columnWidth:t.getColumnWidth(H),columns:t.columns,gap:A};_.setSizeConfig((Z)=>{oe.columnWidth=t.getColumnWidth(H);let le=Z*t.columns;return X(le,oe)+A})}else _.setSizeConfig(E+A);W(),C(l())}if(z.columns!==void 0)_.setNavConfig({ud:t.columns});H=o.crossSize-S,G(),be()}),_.registerMethod("scrollToIndex",(z,A="start")=>{let oe=t.getRow(z),Z=l();if(Z===0)return;let le=Math.max(0,Math.min(oe,Z-1)),ce=r.getOffset(le)+h,se=r.getSize(le),he=o.containerSize,K=r.getTotalSize()+p,Q=Math.max(0,K-he),u=typeof A==="string"?A:A.align??"start",J=typeof A==="object"?A.behavior:void 0,de=typeof A==="object"?A.duration:void 0,ae;switch(u){case"center":ae=ce-(he-se)/2;break;case"end":ae=ce-he+se;break;default:ae=ce}if(ae=Math.max(0,Math.min(ae,Q)),J==="smooth"&&de&&de>0)_.smoothScrollTo(ae,de);else _.scrollTo(ae)}),_.setNavConfig({total:()=>o.totalItems,ud:e.columns,lr:1,scrollIndex:(z)=>t.getRow(z)}),_.registerDestroyHandler(()=>{for(let[,z]of y)z.el.remove();y.clear(),_.dom.root.classList.remove(`${F}--grid`)})},hooks:{onResize(_,X){let E=o.crossSize-S;if(Math.abs(E-H)<1)return;H=E,G();let P=i.getRenderOrigin();for(let[c,W]of y){let z=c/v|0;k(W.el,z),W.el.style.transform=B(c,P)}}},destroy(){y.clear()}}}var mn=(e)=>{let t=Math.max(1,Math.floor(e.columns)),r=e.gap??0,o=e.containerSize,i=e.crossOffset??0,n=e.mainOffset??0,s=0,a=[],R=()=>{let h=(t-1)*r;s=Math.max(0,(o-h)/t),a=Array(t);let p=s+r;for(let y=0;y<t;y++)a[y]=i+y*p};R();let g=[],d=0,V=[],F=(h,p)=>{if(h<=0)return d=0,g=[],[];let y=Array(t).fill(n),H=Array(t);for(let D=0;D<t;D++)H[D]=[];let v=Array(h);for(let D=0;D<h;D++){let f=0,w=y[0];for(let ne=1;ne<t;ne++){let te=y[ne];if(te<w)w=te,f=ne}let M=p(D),q=y[f];v[D]={index:D,x:a[f],y:q,lane:f,size:M,crossSize:s},H[f].push(D),y[f]=q+M+r}g=H;let x=0;for(let D=0;D<t;D++){let f=y[D],w=f>0?f-r:0;if(w>x)x=w}return d=x,v},m=(h)=>{if(h.length===0)return d;if(d)return d;let p=Array(t).fill(0);for(let H of h){let v=H.y+H.size,x=p[H.lane];if(v>x)p[H.lane]=v}let y=0;for(let H=0;H<t;H++)if(p[H]>y)y=p[H];return y},Y=(h,p,y)=>{if(h.length===0||y<=p)return V.length=0,V;if(g.length===0||g.length!==t)return L(h,p,y);V.length=0;for(let H=0;H<t;H++){let v=g[H],x=v.length;if(!x)continue;let D=0,f=x;while(D<f){let w=D+f>>>1,M=h[v[w]];if(M.y+M.size<=p)D=w+1;else f=w}for(let w=D;w<x;w++){let M=h[v[w]];if(M.y>=y)break;V.push(M)}}return V},L=(h,p,y)=>{V.length=0;for(let H of h)if(H.y+H.size>p&&H.y<y)V.push(H);return V};return{get columns(){return t},get gap(){return r},get containerSize(){return o},update:(h)=>{let p=!1;if(h.columns!==void 0){let y=Math.max(1,Math.floor(h.columns));if(y!==t)t=y,p=!0}if(h.gap!==void 0&&h.gap!==r)r=h.gap,p=!0;if(h.containerSize!==void 0&&h.containerSize!==o)o=h.containerSize,p=!0;if(h.crossOffset!==void 0&&h.crossOffset!==i)i=h.crossOffset,p=!0;if(h.mainOffset!==void 0&&h.mainOffset!==n)n=h.mainOffset,p=!0;if(p)R()},calculateLayout:F,getTotalSize:m,getVisibleItems:Y}};var fn=(e,t,r)=>{let o=Array.from(t).sort((s,a)=>s-a);if(o.length<=1)return;let i=[];for(let s=0;s<o.length;s++){let a=r(o[s]);if(a)i.push(a)}if(i.length<=1)return;let n=e.firstChild;for(let s=0;s<i.length;s++){let a=i[s];if(a===n)n=n.nextSibling;else e.insertBefore(a,n)}};var Wn=(e=200)=>{let t=[];return{acquire:()=>{let n=t.pop();if(n)return n;let s=document.createElement("div");return s.setAttribute("role","option"),s},release:(n)=>{if(n.remove(),t.length<e)n.className="",n.textContent="",n.removeAttribute("style"),n.removeAttribute("data-index"),n.removeAttribute("data-id"),n.removeAttribute("data-lane"),t.push(n)},clear:()=>{t.length=0}}},Yn=1,gn=(e,t,r,o=!1,i,n,s,a,R=()=>0)=>{let g=Wn(),d=new Map,V=new Set,F=0,m="",Y=-1,L={selected:!1,focused:!1},S=(j,I)=>(L.selected=j,L.focused=I,L),h=`${r}-item ${r}-masonry-item`,p=`${r}-group-header`,y=`${r}-item--selected`,H=`${r}-item--focused`,v=(j,I)=>{if(typeof I==="string")j.innerHTML=I;else j.replaceChildren(I);Ke(j)},x=(j,I,C)=>{j.classList.toggle(y,I),j.classList.toggle(H,C)},D=(j,I)=>{let C=Math.round(I.y-M);if(o)j.style.transform=`translate(${C}px, ${Math.round(I.x)}px)`;else j.style.transform=`translate(${Math.round(I.x)}px, ${C}px)`},f=(j,I)=>{if(o)j.style.width=`${I.size}px`,j.style.height=`${I.crossSize}px`;else j.style.width=`${I.crossSize}px`,j.style.height=`${I.size}px`},w=(j,I,C,G,T)=>{let l=g.acquire(),B=I.__groupHeader,k=S(G,T);if(l.className=B?p:h,l.dataset.index=String(j),l.dataset.id=String(I.id),l.dataset.lane=String(C.lane),B)l.setAttribute("role","presentation"),l.removeAttribute("aria-selected"),l.removeAttribute("aria-setsize"),l.removeAttribute("aria-posinset"),l.removeAttribute("id");else if(a===!0){if(l.setAttribute("role","option"),l.ariaSelected=String(G),n)l.id=`${n}-item-${j}`;if(i){let U=i();if(U!==Y)Y=U,m=String(U);l.setAttribute("aria-setsize",m);let be=s?s(j):j+1;l.setAttribute("aria-posinset",String(be))}}else if(l.setAttribute("role","listitem"),l.removeAttribute("aria-selected"),i){let U=i();if(U!==Y)Y=U,m=String(U);l.setAttribute("aria-setsize",m);let be=s?s(j):j+1;l.setAttribute("aria-posinset",String(be))}f(l,C);let N=t(I,j,k);return v(l,N),x(l,G,T),D(l,C),{element:l,lastItem:I,lastSelected:G,lastFocused:T,lastY:C.y-M,absY:C.y,lastX:C.x,lastSize:C.size,lastCrossSize:C.crossSize,lastSeenFrame:F}},M=0,q=(j,I,C,G,T=R())=>{M=T,F++,V.clear();for(let B=0;B<I.length;B++)V.add(I[B].index);let l=null;for(let B=0;B<I.length;B++){let k=I[B],N=k.index,U=j(N);if(!U)continue;let be=C.has(U.id),_=N===G,X=d.get(N);if(X){let E=X.lastItem!==U,P=X.lastSelected!==be,c=X.lastFocused!==_,W=X.lastY!==k.y-M||X.lastX!==k.x,z=X.lastSize!==k.size||X.lastCrossSize!==k.crossSize;if(E){let A=S(be,_),oe=t(U,N,A);if(v(X.element,oe),X.element.dataset.id=String(U.id),X.lastItem=U,!U.__groupHeader){let le=s?s(N):N+1;X.element.setAttribute("aria-posinset",String(le))}}if(E||P||c)x(X.element,be,_),X.element.ariaSelected=String(be),X.lastSelected=be,X.lastFocused=_;if(z)f(X.element,k),X.lastSize=k.size,X.lastCrossSize=k.crossSize;if(W)D(X.element,k),X.lastY=k.y-M,X.absY=k.y,X.lastX=k.x}else{let E=w(N,U,k,be,_);if(!l)l=document.createDocumentFragment();l.appendChild(E.element),d.set(N,E)}}if(l)e.appendChild(l);for(let[B,k]of d)if(V.has(B))k.lastSeenFrame=F;else if(F-k.lastSeenFrame>Yn)g.release(k.element),d.delete(B);else{let N=Math.round(k.absY-M);if(N!==k.lastY){k.lastY=N;let U=Math.round(k.lastX);k.element.style.transform=o?`translate(${N}px, ${U}px)`:`translate(${U}px, ${N}px)`}}},ne=()=>{for(let j of d.values())g.release(j.element);d.clear(),e.innerHTML=""};return{render:q,getElement:(j)=>d.get(j)?.element,updateItemClasses:(j,I,C)=>{let G=d.get(j);if(!G)return;let T=G.lastSelected!==I,l=G.lastFocused!==C;if(T||l)x(G.element,I,C),G.lastSelected=I,G.lastFocused=C},sortDOM:()=>{fn(e,d.keys(),(j)=>d.get(j)?.element)},clear:ne,destroy:()=>{ne(),g.clear()}}};var qn=100,Un=new Set;function Lt(e){if(!e.columns||e.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let t,r=null,o,i,n=0,s=null,a,R,g,d=[],V=-1,F=-1,m=!0,Y=-1,L=-1,S=0,h=0,p=0,y=0,H={columnWidth:0,columns:0,gap:0,containerWidth:0},v=[],x=(c)=>v[c],D=null,f=null,w=!1;function M(){if(w||!s)return;w=!0,D=s.getMethod("_getSelectedIds")??null,f=s.getMethod("_getFocusedIndex")??null}let q=[],ne=new Int32Array(0),te=[],ue=null,fe=null,j=null,I=null,C=!1,G=!0;function T(){if(C||!s)return;if(ue=s.getMethod("_getItemLane")??null,fe=s.getMethod("_getItemY")??null,j=s.getMethod("_getItemH")??null,I=s.getMethod("_isGroupHeader")??null,ue||I)C=!0}function l(){T();let c=t.columns,W=!!ue;if(W){let z=o.totalItems;q=Array(c);for(let A=0;A<c;A++)q[A]=[];if(ne.length<z)ne=new Int32Array(z);for(let A=0;A<z;A++){if(I?.(A))continue;let oe=ue(A);if(oe<0||oe>=c)continue;ne[A]=q[oe].length,q[oe].push(A)}}else{let z=d.length;q=Array(c);for(let A=0;A<c;A++)q[A]=[];if(ne.length<z)ne=new Int32Array(z);for(let A=0;A<z;A++){let oe=d[A];ne[A]=q[oe.lane].length,q[oe.lane].push(A)}}te=Array(c);for(let z=0;z<c;z++){let A=q[z],oe=new Float64Array(A.length);for(let Z=0;Z<A.length;Z++){let le=A[Z];if(W&&fe&&j){let ce=fe(le),se=j(le);oe[Z]=ce>=0?ce+(se>0?se*0.5:0):0}else{let ce=d[le];oe[Z]=ce.y+ce.size*0.5}}te[z]=oe}}function B(c,W){let z=c.length;if(!z)return-1;let A=0,oe=z-1;while(A<oe){let Z=A+oe>>1;if(c[Z]<W)A=Z+1;else oe=Z}if(A>0&&Math.abs(c[A-1]-W)<=Math.abs(c[A]-W))return A-1;return A}function k(c,W,z){if(G)l(),G=!1;let A=!!ue,oe,Z;if(A){if(I?.(c))return c;if(oe=ue(c),oe<0)return c;Z=ne[c]}else{let he=d[c];if(!he)return c;oe=he.lane,Z=ne[c]}let le=t.columns,ce=q[oe];switch(a?W==="ArrowDown"?"ArrowRight":W==="ArrowUp"?"ArrowLeft":W==="ArrowRight"?"ArrowDown":W==="ArrowLeft"?"ArrowUp":W:W){case"ArrowDown":if(Z+1<ce.length)return ce[Z+1];return c;case"ArrowUp":if(Z>0)return ce[Z-1];return c;case"ArrowRight":{if(oe>=le-1)return c;let he=oe+1,K=q[he];if(!K.length)return c;let Q=B(te[he],te[oe]?.[Z]??0);return Q>=0?K[Q]:c}case"ArrowLeft":{if(oe<=0)return c;let he=oe-1,K=q[he];if(!K.length)return c;let Q=B(te[he],te[oe]?.[Z]??0);return Q>=0?K[Q]:c}case"Home":return 0;case"End":{let he=q[le-1];return he.length>0?he[he.length-1]:c}case"PageDown":{let he=o.containerSize,K=A?null:d[c],Q=K&&K.size>0?K.size:150,u=Math.max(1,Math.floor(he/Q)),J=Math.min(Z+u,ce.length-1);return ce[J]}case"PageUp":{let he=o.containerSize,K=A?null:d[c],Q=K&&K.size>0?K.size:150,u=Math.max(1,Math.floor(he/Q)),J=Math.max(0,Z-u);return ce[J]}}return c}let N=null;function U(){if(e.size)return(c)=>e.size(c,H);if(N!==null&&typeof N==="function")return(c)=>N(c,H);return(c)=>s.sizeCache.getSize(c)}function be(){let c=t.columns,W=t.gap;H.containerWidth=t.containerSize,H.columns=c,H.gap=W,H.columnWidth=Math.max(0,(t.containerSize-(c-1)*W)/c)}function _(){if(!s)return;be();let c=o.totalItems;d=t.calculateLayout(c,U()),Y=c,G=!0,X()}function X(){if(!s)return;let c=t.getTotalSize(d)+y;if(c===L)return;L=c,s.updateContentSize(c)}function E(){if(o.destroyed||!s||!r)return;if(o.totalItems!==Y)_();if(m)L=-1,X();M();let c=i.getRenderOrigin(),W=i.getPixelEquivalent(),z=o.containerSize;if(!m&&W===V&&z===F&&c===n)return;if(V=W,F=z,m=!1,z<=0||d.length===0)return;let A=Math.max(0,W-g),oe=W+z+g,Z=t.getVisibleItems(d,A,oe),le=D?.()??Un,ce=f?.()??-1;v=s.getItems(),r.render(x,Z,le,ce,c),n=c;let se=Z.length,he=se>0?Z[0].index:0,K=se>0?Z[se-1].index:0;o.prevRangeStart=he,o.prevRangeEnd=K,o.renderPending=!1;let Q=Math.min(se,o.capacity);o.visibleCount=Q,o.startIndex=he;for(let u=0;u<Q;u++){let J=Z[u];o.visibleIndices[u]=J.index,o.visibleOffsets[u]=J.y,o.visibleSizes[u]=J.size}}function P(){if(o.destroyed)return;L=-1,_(),o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,m=!0,E()}return{name:"masonry",priority:10,conflicts:["grid","table"],setup(c){if(i=c.scroll,s=c,o=c.getState(),N=c.rawSizeSpec,a=c.config.axis.primary==="x",R=c.config.classPrefix,g=c.config.overscan*qn,c.config.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode");S=c.config.crossAxisPadding,h=c.config.crossPadStart,p=c.config.startPadding,y=c.config.endPadding;let W=o.crossSize-S;t=mn({columns:e.columns,gap:e.gap??0,containerSize:W,crossOffset:h,mainOffset:p}),r=gn(c.dom.content,c.template,R,a,()=>o.totalItems,void 0,void 0,void 0,i.getRenderOrigin),c.dom.root.classList.add(`${R}--masonry`),c.setRenderFn(E,P),_(),c.registerMethod("getMasonryLayout",()=>t),c.registerMethod("updateMasonry",(z)=>{if(z.columns!==void 0&&z.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(z.gap!==void 0&&z.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let A={};if(z.columns!==void 0)A.columns=z.columns;if(z.gap!==void 0)A.gap=z.gap;t.update(A),r?.clear(),P()}),c.registerMethod("scrollToIndex",(z,A="start")=>{let oe=d[z];if(!oe)return;let Z=typeof A==="string"?A:A.align??"start",le=typeof A==="object"?A.behavior:void 0,ce=typeof A==="object"?A.duration:void 0,se=o.containerSize,he=t.getTotalSize(d)+y,K=Math.max(0,he-se),Q=oe.y;if(Z==="center")Q=oe.y-se/2+oe.size/2;else if(Z==="end"){if(Q=oe.y-se+oe.size,z>=o.totalItems-1&&oe.y+oe.size>K)Q=K}if(Q=Math.max(0,Math.min(Q,K)),le==="smooth"&&ce&&ce>0)c.smoothScrollTo(Q,ce);else c.scrollTo(Q)}),c.registerMethod("_scrollItemIntoView",(z)=>{let A=d[z];if(!A)return;let oe=i.getPixelEquivalent(),Z=o.containerSize,le=t.getTotalSize(d)+y,ce=Math.max(0,le-Z),se=A.y,he=se+A.size;if(se-p<oe)c.scrollTo(Math.max(0,se-p));else if(he+y>oe+Z){let K=q[t.columns-1];if(K&&K.length>0&&z===K[K.length-1]&&se>=ce)c.scrollTo(ce);else c.scrollTo(Math.min(he+y-Z,ce))}}),c.setNavConfig({total:()=>o.totalItems,navigate:k}),c.registerDestroyHandler(()=>{r?.destroy(),r=null,c.dom.root.classList.remove(`${R}--masonry`)})},hooks:{onResize(c,W){if(!t||!s)return;let z=o.crossSize-S;if(Math.abs(z-t.containerSize)<1)return;t.update({containerSize:z}),r?.clear(),P()},onIdle(){r?.sortDOM()}},destroy(){r?.destroy(),r=null,d=[],s=null}}}var Et=(e,t)=>{let r=0,o=e.length-1;while(r<o){let i=r+o+1>>>1;if(e[i].headerLayoutIndex<=t)r=i;else o=i-1}return r},pn=(e,t)=>{let r=0,o=e.length-1;while(r<o){let i=r+o+1>>>1;if(e[i].firstDataIndex<=t)r=i;else o=i-1}return r},bn=(e,t,r)=>{if(e===0)return[];let o=[],i=null,n=0,s=0;for(let a=0;a<e;a++){let R=r?.(a);if(!R)continue;let g=t(a,R);if(i===null)i=g,n=0;else if(g!==i){let d=a-n;o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:d}),s=s+1+d,i=g,n=a}}if(i!==null)o.push({key:i,groupIndex:o.length,headerLayoutIndex:s,firstDataIndex:n,count:e-n});return o};var hn=(e,t,r)=>{let o=bn(e,t.getGroupForIndex,r),i=e+o.length,n=t.header?.height??t.header?.width??t.headerHeight;return{get totalEntries(){return i},get groupCount(){return o.length},get groups(){return o},getEntry:(m)=>{if(o.length===0)return{type:"item",dataIndex:m,group:{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0}};let Y=Et(o,m),L=o[Y];if(m===L.headerLayoutIndex)return{type:"header",group:L};let S=m-L.headerLayoutIndex-1;return{type:"item",dataIndex:L.firstDataIndex+S,group:L}},layoutToDataIndex:(m)=>{if(o.length===0)return m;let Y=Et(o,m),L=o[Y];if(m===L.headerLayoutIndex)return-1;let S=m-L.headerLayoutIndex-1;return L.firstDataIndex+S},dataToLayoutIndex:(m)=>{if(o.length===0)return m;let Y=pn(o,m),L=o[Y],S=m-L.firstDataIndex;return L.headerLayoutIndex+1+S},getGroupAtLayoutIndex:(m)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let Y=Et(o,m);return o[Y]},getGroupAtDataIndex:(m)=>{if(o.length===0)return{key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0};let Y=pn(o,m);return o[Y]},getHeaderHeight:typeof n==="number"?(m)=>n:(m)=>{let Y=o[m];if(!Y)return 0;return n(Y.key,m)},rebuild:(m,Y)=>{o=bn(m,t.getGroupForIndex,Y??r),i=m+o.length}}};var Ct=(e,t,r,o,i=0)=>{let n=r?"width":"height",s=document.createElement("div");return s.className=`${t}-sticky-header`,s.setAttribute("role","presentation"),s.setAttribute("aria-hidden","true"),s.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(r?`position:absolute;top:0;bottom:0;left:${i||0}px`:`position:relative;top:${i||0}px`),s.style[n]=`${o}px`,e.insertBefore(s,e.firstChild),s},Sn=(e,t,r,o,i,n=!1,s=0,a,R)=>{let g=n?"width":"height",d=n?"height":"width",V=n?"X":"Y",F=(E,P)=>{E.style[g]=`${P}px`},m=a??Ct(e,i,n,0,s),Y=()=>{let E=document.createElement("div");return E.className="sticky-group",E.style.position="absolute",E.style.willChange="transform",E.style[d]="100%",E},L=Y(),S=Y();m.append(L,S);let h=L,p=S,y=t.groups,H=[],v=[],x=[],D=0,f=()=>{y=t.groups,D=y.length,H=Array(D),v=Array(D),x=Array(D);for(let E=0;E<D;E++)H[E]=R?R(y[E].headerLayoutIndex):r.getOffset(y[E].headerLayoutIndex),v[E]=t.getHeaderHeight(E),x[E]=v[E]};f();let w=-1,M=0,q=0,ne=-1,te=!1,ue=0,fe=!1,j=(E,P)=>{o(E,P);let c=v[P];return F(E,c),c},I=(E)=>{E.replaceChildren(),E.style.transform=""},C=(E)=>{if(E===w)return;if(w=E,M=0,q=0,E<0||E>=D){I(h);return}M=j(h,E),q=x[E],F(m,M),h.style.transform=""},G=(E)=>{if(E===ue)return;ue=E;let P=Math.round(E);h.style.transform=`translate${V}(${P}px)`,p.style.transform=`translate${V}(${P+M}px)`},T=()=>{ue=0,h.style.transform="",p.style.transform=""},l=()=>{if(!fe)return;let E=h;h=p,p=E,w=ne,M=w>=0?v[w]:0,q=w>=0?x[w]:0,F(m,M),I(p),ne=-1,fe=!1,T()},B=()=>{if(!fe)return;I(p),ne=-1,fe=!1,T()},k=!!a,N=()=>{if(te)return;if(te=!0,k)m.style.visibility="";else m.style.display=""},U=()=>{if(!te)return;if(te=!1,k)m.style.visibility="hidden";else m.style.display="none";I(h),w=-1,M=0,q=0,B()},be=(E)=>{if(D===0){if(fe)B();if(!te)N();C(-1);return}if(E<H[0]){U();return}let P=0,c=D-1;while(P<c){let z=P+c+1>>>1;if(H[z]+x[z]<=E)P=z;else c=z-1}if(!te)N();C(P);let W=P+1;if(W<D){let z=H[W]-E;if(z<=0&&z>-q){if(ne!==W||!fe)ne=W,j(p,W),fe=!0;let A=q>0?z/q*M:z;G(A)}else if(z<=-q){if(fe)l()}else if(fe)B()}else if(fe)B()},_=()=>{f();let E=w;if(w=-1,M=0,q=0,E>=0)C(E)},X=()=>{m.remove(),w=-1,M=0,q=0,ne=-1,te=!1,fe=!1};if(!a)m.style.display="none";return{update:be,refresh:_,show:N,hide:U,destroy:X}};var Ue={selected:!1,focused:!1},vn=typeof process<"u"&&process.env?.NODE_ENV!=="production";function Mt(e){if(!e.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let t=e.header?.height??e.header?.width??e.headerHeight;if(t==null||typeof t==="number"&&t<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let r=e.header?.template??e.headerTemplate;if(!r)throw Error("[vlist] groups: header.template is required");let o=r,i,n=null,s,a,R,g,d,V=null,F,m,Y,L=null,S,h,p,y=null,H,v,x=null,D=null,f=0,w=0,M=0,q=0,ne=0,te=!1,ue=null,fe=new Map,j=new Set,I=new Map,C=-1,G=-1,T=0,l=!0,B=-1,k=0,N=null,U;function be(){return i.totalEntries}function _(){let u=a.totalItems;if(u===B)return;if(vn)console.log(`[groups] syncLayout: ${B} → ${u}`);let J=B>0;B=u,i.rebuild(u,L??Y),U(i.totalEntries),W();let de=E?z():s.getTotalSize();if(V?.(de),n)n.refresh(),n.update(R.getPixelEquivalent());if(J)Z();let ae=x?.("_scrollbar:getInstance");if(ae)ae()?.updateBounds(de,a.containerSize)}let X=0,E=null,P=null,c=null;function W(){if(f<=0){E=null,P=null;return}X=((a.crossSize||d.clientWidth)-q-(f-1)*w)/f,E=new Map;let de=i.totalEntries,ae=Array(de),Ie=0;if(te){let xe=ue??((Se)=>s.getSize(Se)),pe=new Float64Array(f),ye=[],Te=0,Me=-1;for(let Se=0;Se<de;Se++){let Ee=i.getEntry(Se);if(Ee.type==="header"){let re=0;for(let Ce=0;Ce<f;Ce++)if(pe[Ce]>re)re=pe[Ce];if(Me>=0)ye[Me]=Te+re;Te+=re;let me=s.getSize(Se);E.set(Se,{col:-1,rowY:Te}),ae[Ie++]=[Se,Te,Te+me],Te+=me,pe.fill(0),Me=Ee.group.groupIndex}else{let re=0,me=pe[0];for(let ie=1;ie<f;ie++)if(pe[ie]<me)me=pe[ie],re=ie;let Ce=xe(Ee.dataIndex),Re=Te+pe[re];E.set(Se,{col:re,rowY:Re,h:Ce}),ae[Ie++]=[Se,Re,Re+Ce],pe[re]=pe[re]+Ce+w}}if(Me>=0){let Se=0;for(let Ee=0;Ee<f;Ee++)if(pe[Ee]>Se)Se=pe[Ee];ye[Me]=Te+Se}c=ye}else{c=null;let xe=0,pe=0,ye=0;for(let Te=0;Te<de;Te++)if(i.getEntry(Te).type==="header"){if(pe>0&&ye>0)xe+=ye;let Se=s.getSize(Te);E.set(Te,{col:-1,rowY:xe}),ae[Ie++]=[Te,xe,xe+Se],xe+=Se,pe=0,ye=0}else{let Se=pe%f,Ee=s.getSize(Te);if(Se===0){if(pe>0&&ye>0)xe+=ye+w;ye=Ee}else if(Ee>ye)ye=Ee;E.set(Te,{col:Se,rowY:xe}),ae[Ie++]=[Te,xe,xe+Ee],pe++}}ae.length=Ie,P=ae}function z(){if(!E||E.size===0)return s.getTotalSize();let u=i.totalEntries;if(te)return c?.[c.length-1]??0;let J=0;for(let de=u-1;de>=0;de--){let ae=E.get(de);if(ae){J=ae.rowY+(ae.h??s.getSize(de));break}if(i.getEntry(de).type==="header"){J=s.getOffset(de)+s.getSize(de);break}}return J}function A(u,J){if(E){let ae=E.get(u);if(ae){let Ie=ae.col<0?0:M+ae.col*(X+w),xe=ae.rowY-J;if(S)return`translate(${Math.round(xe)}px, ${Math.round(Ie)}px)`;return`translate(${Math.round(Ie)}px, ${Math.round(xe)}px)`}}let de=s.getOffset(u)-J;if(S)return`translate(${Math.round(de)}px, 0)`;return`translate(0, ${Math.round(de)}px)`}function oe(u,J){let de=E?.get(J);if(de){let Ie=de.h??s.getSize(J);if(de.col<0)if(S)u.style.width=`${Ie}px`,u.style.height="";else u.style.height=`${Ie}px`,u.style.width="100%";else if(S)u.style.width=`${Ie}px`,u.style.height=`${X}px`;else u.style.height=`${Ie}px`,u.style.width=`${X}px`;return}let ae=s.getSize(J);if(S)u.style.width=`${ae}px`;else u.style.height=`${ae}px`}function Z(){fe.forEach((u)=>{u.remove();let J=u.getAttribute("data-id");if(J)I.set(J,u);else g.release(u)}),fe.clear(),j.clear()}function le(){if(I.size>0)I.forEach((u)=>g.release(u)),I.clear()}function ce(u,J,de,ae){if(D===null)D=!!x?.("_getSelectedIds");if(J.type==="header"){let Me=`__group_header_${J.group.groupIndex}`;if(u.getAttribute("data-id")===Me)return!0;if(u.className=v,u.setAttribute("role","presentation"),u.removeAttribute("aria-selected"),u.setAttribute("data-id",Me),S&&n&&J.group.groupIndex===0)u.style.display="none";else{u.style.display="";let Se=o(J.group.key,J.group.groupIndex);if(typeof Se==="string")u.innerHTML=Se;else u.innerHTML="",u.appendChild(Se)}return!0}let Ie=J.dataIndex,xe=Y(Ie);if(!xe)return u.innerHTML="",!1;let pe=xe._isPlaceholder===!0,ye=String(xe.id);if(!pe&&u.getAttribute("data-id")===ye){if(D)u.id=`${h}-item-${ae}`,u.setAttribute("aria-posinset",String(Ie+1)),u.setAttribute("aria-setsize",String(a.totalItems));return!0}if(u.className=H,u.setAttribute("role",D?"option":"listitem"),u.setAttribute("data-id",ye),D)u.id=`${h}-item-${ae}`,u.setAttribute("aria-posinset",String(Ie+1)),u.setAttribute("aria-setsize",String(a.totalItems));if(pe)u.classList.add(`${h}-item--placeholder`);if(de)de(ae,Ue);else Ue.selected=!1,Ue.focused=!1;let Te=m(xe,Ie,Ue);if(typeof Te==="string")u.innerHTML=Te;else u.innerHTML="",u.appendChild(Te);return Ke(u),!pe}let se=0;function he(){if(f<=0)return;let u=a.crossSize;if(u===se)return;se=u,W();let J=z();if(V?.(J),n)n.refresh(),n.update(R.getPixelEquivalent());l=!0}function K(){if(a.destroyed)return;_(),he();let u=R.getPixelEquivalent(),J=a.containerSize,de=R.getRenderOrigin(),ae=de!==T;if(!l&&u===C&&J===G&&!ae)return;C=u,G=J;let Ie=l;l=!1;let xe=be();if(J<=0||xe===0){if(fe.size>0)fe.forEach((ie)=>{ie.remove(),g.release(ie)}),fe.clear(),j.clear();return}let pe,ye;if(P){let ie=P,ve=ie.length,we=0,Pe=ve-1;while(we<Pe){let He=we+Pe>>>1;if(ie[He][2]<=u)we=He+1;else Pe=He}let _e=we;Pe=ve-1;while(we<Pe){let He=we+Pe+1>>>1;if(ie[He][1]>=u+J)Pe=He-1;else we=He}let Oe=we,Fe=ie[_e][0],Ne=ie[Oe][0];for(let He=Fe-1;He>=0;He--)if(i.getEntry(He).type==="header"){Fe=He;break}let We=p*f;pe=Math.max(0,Fe-We),ye=Math.min(xe-1,Ne+We)}else{let ie=s.indexAtOffset(u),ve=s.indexAtOffset(u+J);if(ve<xe-1)ve++;ie=Math.max(0,ie),ve=Math.min(xe-1,Math.max(0,ve)),pe=Math.max(0,ie-p),ye=Math.min(xe-1,ve+p)}if(pe===a.prevRangeStart&&ye===a.prevRangeEnd&&!a.renderPending&&!ae)return;T=de,fe.forEach((ie,ve)=>{if(ve<pe||ve>ye)ie.remove(),g.release(ie),fe.delete(ve),j.delete(ve)});let Te=y?.()??null,Me=Te?`${h}-item--selected`:"",Se=Te?`${h}-item--focused`:"",Ee=null;for(let ie=pe;ie<=ye;ie++){let ve=fe.get(ie),we=!1;if(ve===void 0){let Pe=i.getEntry(ie);we=Pe.type==="header";let _e;if(Pe.type==="header")_e=`__group_header_${Pe.group.groupIndex}`;else{let Fe=Y(Pe.dataIndex);if(Fe&&Fe._isPlaceholder!==!0)_e=String(Fe.id)}if(_e!==void 0){let Fe=I.get(_e);if(Fe)I.delete(_e),ve=Fe}if(!ve)ve=g.acquire();if(ve.setAttribute("data-index",String(ie)),ce(ve,Pe,Te,ie))j.delete(ie);else j.add(ie);if(oe(ve,ie),ve.style.transform=A(ie,de),fe.set(ie,ve),!Ee)Ee=document.createDocumentFragment();Ee.appendChild(ve)}else if(Ie&&j.has(ie)){let Pe=i.getEntry(ie);if(Pe.type==="item")if(ce(ve,Pe,Te,ie))j.delete(ie);else j.add(ie)}else if(we=ve.classList.contains(v),Ie)oe(ve,ie),ve.style.transform=A(ie,de);else if(ae)ve.style.transform=A(ie,de);if(!we&&Te)if(Te(ie,Ue),ve.classList.toggle(Me,Ue.selected),ve.classList.toggle(Se,Ue.focused),Ue.selected)ve.setAttribute("aria-selected","true");else ve.removeAttribute("aria-selected")}if(Ee)d.appendChild(Ee);le();let re=E?z():s.getTotalSize();V?.(re),a.prevRangeStart=pe,a.prevRangeEnd=ye,a.renderPending=!1;let me=0,Ce=0,Re=!1;for(let ie=pe;ie<=ye&&me<a.capacity;ie++){let ve=i.getEntry(ie);if(ve.type==="item"){if(!Re)Ce=ve.dataIndex,Re=!0;a.visibleIndices[me]=ve.dataIndex,a.visibleOffsets[me]=s.getOffset(ie),a.visibleSizes[me]=s.getSize(ie),me++}}a.visibleCount=me,a.startIndex=Ce}function Q(){if(a.destroyed)return;if(he(),vn)console.log(`[groups] forceRender, placeholders: ${j.size}, rendered: ${fe.size}`);let u=N?.()??0;if(u!==k){k=u;let J=i.groups,de=J.length;i.rebuild(B,L??Y);let ae=i.groups,Ie=ae.length!==de;if(!Ie){for(let xe=0;xe<de;xe++)if(ae[xe].headerLayoutIndex!==J[xe].headerLayoutIndex){Ie=!0;break}}if(Ie){U(i.totalEntries),W();let xe=E?z():s.getTotalSize();if(V?.(xe),n)n.refresh(),n.update(R.getPixelEquivalent());let pe=1/0,ye=Math.min(de,ae.length);for(let Me=0;Me<ye;Me++)if(ae[Me].headerLayoutIndex!==J[Me].headerLayoutIndex){pe=Math.min(ae[Me].headerLayoutIndex,J[Me].headerLayoutIndex);break}if(ae.length>de&&ye<ae.length)pe=Math.min(pe,ae[ye].headerLayoutIndex);else if(de>ae.length&&ye<de)pe=Math.min(pe,J[ye].headerLayoutIndex);if(pe<=a.prevRangeEnd)Z();let Te=x?.("_scrollbar:getInstance");if(Te)Te()?.updateBounds(xe,a.containerSize)}}a.prevRangeStart=-1,a.prevRangeEnd=-1,a.renderPending=!0,l=!0,K()}return{name:"groups",priority:10,setup(u){R=u.scroll,s=u.sizeCache,a=u.getState(),g=u.pool,d=u.dom.content,V=u.updateContentSize.bind(u),F=u.dom.root,m=u.template,S=u.config.axis.primary==="x",h=u.config.classPrefix,p=u.config.overscan,ne=u.config.mainAxisPadding,Y=u.getItem.bind(u),y=()=>u.getItemStateFn(),x=u.getMethod.bind(u),D=null,H=`${h}-item`,v=`${h}-group-header`;let J=x?.("getGridLayout"),de=x?.("getMasonryLayout");if(J){let re=J();f=re.columns,w=re.gap,M=u.config.crossPadStart,q=u.config.crossAxisPadding}else if(de){let re=de();f=re.columns,w=re.gap,M=u.config.crossPadStart,q=u.config.crossAxisPadding,te=!0;let me=u.rawSizeSpec;if(typeof me==="function")ue=(Ce)=>me(Ce,{columnWidth:X})}queueMicrotask(()=>{let re=x?.("_getLoadedItem");if(re)L=re;let me=x?.("_getLoadedCount");if(me)N=me});let ae=a.totalItems;i=hn(ae,e,L??Y),B=ae;let Ie=typeof t==="number"?(re)=>t:(re)=>{let me=i.groups[re];if(!me)return 0;return t(me.key,re)},xe=s.getSize,pe=(re)=>{let me=i.getEntry(re);if(me.type==="header"){if(e.sticky!==!1&&me.group.groupIndex===0)return 0;return Ie(me.group.groupIndex)}return xe(me.dataIndex)};u.setSizeConfig(pe);let ye=!1,Te=-1;if(u.registerMethod("_setSizeCacheBase",(re)=>{U=re}),U=s.rebuild,s.rebuild=(re)=>{if(ye){if(!N)N=x?.("_getLoadedCount")??null;let me=N?.()??0;if(re!==B||me!==Te){if(B=re,Te=me,!L)L=x?.("_getLoadedItem")??null;if(i.rebuild(re,L??((Ce)=>u.getItems()[Ce])),a.totalItems=i.totalEntries,n)n.refresh(),n.update(R.getPixelEquivalent())}}U(i.totalEntries)},s.rebuild(i.totalEntries),W(),u.setVirtualTotalFn(()=>i.totalEntries),F.classList.add(`${h}--grouped`),e.sticky!==!1){let re=(ie,ve)=>{let we=i.groups[ve];if(!we)return;let Pe=o(we.key,ve);if(typeof Pe==="string")ie.innerHTML=Pe;else ie.replaceChildren(Pe)},me=i.getHeaderHeight(0),Ce=Ct(F,h,S,me),Re=f>0?(ie)=>{let ve=E?.get(ie);return ve?ve.rowY:s.getOffset(ie)}:void 0;if(n=Sn(F,i,s,re,h,S,0,Ce,Re),n.update(R.getPixelEquivalent()),!S)u.dom.viewport.style.height=`calc(100% - ${me}px)`;else u.dom.viewport.style.width=`calc(100% - ${me}px)`,u.dom.viewport.style.marginLeft=`${me}px`}let Me=!!x?.("_updateTableForGroups");if(ye=Me,Me)queueMicrotask(()=>{let re=x?.("_getItem")??null,me=u.getItems.bind(u);u.setGetItemFn((Re)=>{let ie=i.getEntry(Re);if(ie.type==="header")return{id:`__group_header_${ie.group.groupIndex}`,__groupHeader:!0,groupKey:ie.group.key,groupIndex:ie.group.groupIndex};return re?re(ie.dataIndex):me()[ie.dataIndex]});let Ce=x?.("_updateTableForGroups");if(Ce)Ce((Re)=>!!Re.__groupHeader,o)});else u.setRenderFn(K,Q);u.registerMethod("getGroupLayout",()=>i),u.registerMethod("_dataToLayoutIndex",(re)=>i.dataToLayoutIndex(re)),u.registerMethod("_layoutToDataIndex",(re)=>i.layoutToDataIndex(re)),u.registerMethod("_getRenderedElement",(re)=>fe.get(re)??null),u.registerMethod("_isGroupHeader",(re)=>i.getEntry(re).type==="header"),u.registerMethod("_getItemLane",(re)=>{let me=E?.get(re);return me?me.col:-1}),u.registerMethod("_getItemY",(re)=>{let me=E?.get(re);return me?me.rowY:-1}),u.registerMethod("_getItemH",(re)=>E?.get(re)?.h??-1);let Se=u.config.startPadding,Ee=ne-Se;u.registerMethod("_scrollItemIntoView",(re)=>{if(re<0)return;let me=E?.get(re),Ce=me?me.rowY:s.getOffset(re),Re=me?.h??s.getSize(re),ie=a.containerSize,ve=R.getPixelEquivalent();if(Ce<ve+Se)u.scrollTo(Math.max(0,Ce-Se));else if(Ce+Re+Ee>ve+ie)u.scrollTo(Ce+Re+Ee-ie)}),u.registerMethod("scrollToIndex",(re,me="start")=>{let Ce=i.dataToLayoutIndex(re),Re=i.totalEntries;if(Re===0)return;let ie=Math.max(0,Math.min(Ce,Re-1)),ve=a.containerSize,we=E?.get(ie),Pe=we?we.rowY:s.getOffset(ie),_e=we?we.h??s.getSize(ie):s.getSize(ie),Oe=E?z()+ne:s.getTotalSize(),Fe=Math.max(0,Oe-ve),Ne=typeof me==="string"?me:me.align??"start",We=typeof me==="object"?me.behavior:void 0,He=typeof me==="object"?me.duration:void 0,Ve=E?ne:0,ee=Pe+_e;if(te&&c){let ze=i.getEntry(ie).group.groupIndex,O=c[ze];if(O!==void 0)ee=O}let Le;switch(Ne){case"center":Le=Pe-(ve-_e)/2;break;case"end":Le=ee-ve+Ve;break;default:Le=Pe}if(Le=Math.max(0,Math.min(Le,Fe)),We==="smooth"&&He&&He>0)u.smoothScrollTo(Le,He);else u.scrollTo(Le)}),u.registerDestroyHandler(()=>{for(let[,re]of fe)re.remove();if(fe.clear(),j.clear(),n)n.destroy(),n=null;F.classList.remove(`${h}--grouped`)})},hooks:{onAfterScroll(u,J){if(n)n.update(u)},onResize(u,J){if(f<=0)return;U(i.totalEntries),se=a.crossSize,W();let de=z();if(V?.(de),n)n.refresh(),n.update(R.getPixelEquivalent());l=!0,K()}},destroy(){if(n)n.destroy(),n=null;fe.clear(),j.clear(),I.clear()}}}var yn=(e,t,r)=>{if(String(r).startsWith($e))return!1;let o=$e+t;if(e.has(o))return e.delete(o),e.add(r),!0;return!1},In=(e)=>({selected:new Set(e??[]),focusedIndex:-1,focusVisible:!1});function Xe(e,t,r,o){if(r===0)return;let i=o?-t:t,n=e.focusedIndex+i;if(n<0)n=0;if(n>=r)n=r-1;e.focusedIndex=n}function at(e){return Array.from(e)}function Pt(e,t,r,o){if(o<=0)return 0;let i=o-1;if(r<=1)return e<0?0:e>i?i:e;let n=(t%r+r)%r;if(e<0)return n;if(e>i){let s=Math.floor(i/r)*r;return Math.min(s+n,i)}return e}var Kn={preventScroll:!0};function dt(e){let t=e?.mode??"single",r=e?.followFocus??!1,o=e?.focusOnClick??!1,i=e?.keyboard??!0,n,s,a,R,g,d,V,F,m=-1,Y=new Map,L=null,S=null,h=null,p=null,y,H=!1;function v(l){if(H)return;H=!0,L=l.getMethod("_layoutToDataIndex")??null,S=l.getMethod("_dataToLayoutIndex")??null,h=l.getMethod("_isGroupHeader")??null,p=l.getMethod("_scrollItemIntoView")??null,D=l.getMethod("_getLoadedItem")??null;let B=l.getMethod("getGroupLayout");if(B){let k=B();y=()=>k.totalEntries}}let x=(l)=>L?L(l):l,D=null,f=(l)=>{if(D)return D(l);return s()[l]},w=(l)=>{let B=x(l);return B>=0?f(B):void 0},M=(l,B,k)=>{if(!h)return l;let N=l;while(N>=0&&N<k){if(!h(N))return N;N+=B}N=l-B;while(N>=0&&N<k){if(!h(N))return N;N-=B}return l};function q(l,B){if(t==="single")n.selected.clear(),Y.clear();if(n.selected.add(l),B)Y.set(l,B)}function ne(l,B){if(n.selected.has(l))n.selected.delete(l),Y.delete(l);else q(l,B)}function te(){n.selected.clear(),Y.clear()}function ue(l){n.selected.delete(l),Y.delete(l)}function fe(l,B){let k=Math.min(l,B),N=Math.max(l,B);for(let U=k;U<=N;U++){if(h?.(U))continue;let be=w(U);if(be)n.selected.add(be.id),Y.set(be.id,be);else if(D){let _=x(U);if(_>=0)n.selected.add($e+_)}}}function j(){let l=V.totalItems;for(let B=0;B<l;B++){if(h?.(B))continue;let k=w(B);if(k)n.selected.add(k.id),Y.set(k.id,k);else if(D){let N=x(B);if(N>=0)n.selected.add($e+N)}}}function I(){if(n.selected.size===0)return[];if(Y.size>=n.selected.size){let N=[];for(let U of n.selected){let be=Y.get(U);if(be)N.push(be)}if(N.length===n.selected.size)return N}let l=[],B=new Set(n.selected),k=V.totalItems;for(let N=0;N<k&&B.size>0;N++){if(h?.(N))continue;let U=w(N);if(U&&B.has(U.id))l.push(U),Y.set(U.id,U),B.delete(U.id)}return l}function C(){a(),R.emit("selection:change",{selected:at(n.selected),items:I()})}let G=null,T=-1;return{name:"selection",priority:50,setup(l){l.enableListboxRole(),n=In(e?.initial),s=l.getItems.bind(l),a=l.forceRender.bind(l),R=l.emitter,g=l.dom;let B=l.config;if(d=l.sizeCache,V=l.getState(),F=l.scrollTo.bind(l),y=()=>V.totalItems,t==="none"){l.registerMethod("select",()=>{}),l.registerMethod("deselect",()=>{}),l.registerMethod("toggleSelect",()=>{}),l.registerMethod("selectAll",()=>{}),l.registerMethod("clearSelection",()=>{}),l.registerMethod("getSelected",()=>[]),l.registerMethod("getSelectedItems",()=>[]),l.registerMethod("selectNext",()=>{}),l.registerMethod("selectPrevious",()=>{}),l.registerMethod("_seedSelection",()=>{}),l.registerMethod("_getFocusedId",()=>{return}),l.registerMethod("_focusById",()=>{});return}let k=B.classPrefix;l.setItemStateFn((P,c)=>{if(v(l),n.selected.size>0){let W=x(P),z=W>=0?w(P):void 0,A=z?.id;if(A!==void 0)if(n.selected.has(A))c.selected=!0;else if(yn(n.selected,W,A))c.selected=!0,Y.delete($e+W),Y.set(A,z);else c.selected=!1;else c.selected=D!==null&&W>=0&&n.selected.has($e+W)}else c.selected=!1;c.focused=n.focusVisible&&n.focusedIndex===P}),l.registerMethod("_getSelectedIds",()=>n.selected),l.registerMethod("_getFocusedIndex",()=>n.focusVisible?n.focusedIndex:-1),g.root.classList.add(`${k}--selectable`);let N=(P)=>{G=null,T=-1;let c=P.target.closest("[data-index]");if(!c)return!1;let W=parseInt(c.dataset.index??"-1",10);if(W<0)return!1;if(h?.(W))return!1;if(x(W)<0)return!1;let A=w(W);if(!A)return!1;return G=A,T=W,!0},U=0,be=(P)=>{if(P<0)return;if(p){p(P);return}if(!U){let se=l.getMethod("_getRowGap");U=se?se():0}let c=l.getNavConfig(),W=c.scrollIndex?c.scrollIndex(P):P,z=d.getOffset(W),A=d.getSize(W)-U,oe=V.containerSize,Z=l.scroll.getPixelEquivalent(),{startPadding:le,endPadding:ce}=B;if(z<Z)F(z);else if(le+z+A+ce>Z+oe)F(le+z+A+ce-oe)},_=(P)=>{let c=g.content.querySelectorAll(`[data-index="${P}"]`),W=null;for(let z=0;z<c.length;z++){let A=c[z];if(A.style.display!=="none"){W=A;break}}if(!W&&c.length>0)W=c[0];g.content.setAttribute("aria-activedescendant",W?.id??`${k}-item-${P}`)},X=()=>{if(V.destroyed)return;if(v(l),!g.content.matches(":focus-visible")&&!g.root.matches(":focus-visible"))return;let P=y();if(P===0)return;let c=n.focusedIndex>=0?Math.min(n.focusedIndex,P-1):0;c=M(c,1,P),n.focusedIndex=c,n.focusVisible=!0,_(c),be(c),a()};g.root.addEventListener("focusin",X);let E=(P)=>{if(V.destroyed)return;let c=P.relatedTarget;if(c&&g.root.contains(c))return;n.focusVisible=!1,a(),g.content.removeAttribute("aria-activedescendant")};if(g.root.addEventListener("focusout",E),l.registerDestroyHandler(()=>{g.root.removeEventListener("focusin",X),g.root.removeEventListener("focusout",E)}),l.registerClickHandler((P)=>{if(v(l),!N(P))return;if(t==="multiple"&&P.shiftKey&&n.focusedIndex>=0){let W=m>=0?m:n.focusedIndex,z=x(W),A=x(T);if(z>=0&&A>=0)fe(W,T);n.focusedIndex=T,n.focusVisible=o,m=T,C();return}if(n.focusedIndex=T,n.focusVisible=o,m=T,(g.content.getAttribute("tabindex")!==null?g.content:g.root).focus(Kn),t==="single")q(G.id,G);else ne(G.id,G);C()}),i)l.registerKeydownHandler((P)=>{v(l);let c=y();if(c===0)return;let W=l.getNavConfig(),z=n.focusedIndex,A=!1,oe=!1;if(W.navigate&&(P.key==="ArrowUp"||P.key==="ArrowDown"||P.key==="ArrowLeft"||P.key==="ArrowRight"||P.key==="PageUp"||P.key==="PageDown"||P.key==="Home"||P.key==="End")){let le=W.total?W.total():c,ce=W.navigate(n.focusedIndex,P.key,le);if(ce!==n.focusedIndex)n.focusedIndex=Math.max(0,Math.min(ce,le-1));n.focusVisible=!0,A=!0}else switch(P.key){case"ArrowUp":{let le=W.ud||1,ce=W.lr,se=B.axis.primary==="x";if(se&&!ce)break;Xe(n,-(se?ce:le),c,B.reverse),n.focusVisible=!0,A=!0;break}case"ArrowDown":{let le=W.ud||1,ce=W.lr,se=B.axis.primary==="x";if(se&&!ce)break;Xe(n,se?ce:le,c,B.reverse),n.focusVisible=!0,A=!0;break}case"ArrowLeft":{let le=W.ud||1,ce=W.lr,se=B.axis.primary==="x";if(!se&&!ce)break;Xe(n,-(se?le:ce),c,B.reverse),n.focusVisible=!0,A=!0;break}case"ArrowRight":{let le=W.ud||1,ce=W.lr,se=B.axis.primary==="x";if(!se&&!ce)break;Xe(n,se?le:ce,c,B.reverse),n.focusVisible=!0,A=!0;break}case"Home":if(c>0)n.focusedIndex=0;n.focusVisible=!0,A=!0;break;case"End":if(c>0)n.focusedIndex=c-1;n.focusVisible=!0,A=!0;break;case"PageUp":case"PageDown":{let le=W.ud||1,ce=Math.max(0,n.focusedIndex),se=W.scrollIndex?W.scrollIndex(ce):ce,he=d.getSize(se),K=V.containerSize,u=(he>0?Math.max(1,Math.floor(K/he)):10)*le;if(L&&S){let J=L(n.focusedIndex),de=P.key==="PageUp"?-u:u,ae=V.totalItems-1;n.focusedIndex=S(Pt(J+de,J,le,ae+1))}else{let J=P.key==="PageUp"?n.focusedIndex-u:n.focusedIndex+u;n.focusedIndex=Pt(J,n.focusedIndex,le,c)}n.focusVisible=!0,A=!0;break}case" ":case"Enter":if(P.key===" "&&P.shiftKey&&t==="multiple"&&n.focusedIndex>=0){if(m>=0){let le=x(m),ce=x(n.focusedIndex);if(le>=0&&ce>=0)fe(m,n.focusedIndex)}n.focusVisible=!0,oe=!0,A=!0;break}if(n.focusedIndex>=0){let le=w(n.focusedIndex);if(le)ne(le.id,le),m=n.focusedIndex;n.focusVisible=!0,oe=!0,A=!0}break;case"a":if((P.ctrlKey||P.metaKey)&&t==="multiple"){if(n.selected.size===V.totalItems)te();else j();n.focusVisible=!0,oe=!0,A=!0}break;case"Delete":case"Backspace":if(n.selected.size>0)R.emit("delete",{selected:at(n.selected),items:I()}),A=!0;break}if(n.focusedIndex!==z&&h){let le=n.focusedIndex>z?1:-1;n.focusedIndex=M(n.focusedIndex,le,c)}let Z=n.focusedIndex!==z;if(P.shiftKey&&t==="multiple"&&!oe&&Z){if(P.key==="ArrowUp"||P.key==="ArrowDown"||P.key==="ArrowLeft"||P.key==="ArrowRight"){let se=w(n.focusedIndex);if(se)ne(se.id,se);m=n.focusedIndex,oe=!0}if((P.ctrlKey||P.metaKey)&&(P.key==="Home"||P.key==="End")){let se=z>=0?z:n.focusedIndex,he=x(se),K=x(n.focusedIndex);if(he>=0&&K>=0)fe(se,n.focusedIndex);m=n.focusedIndex,oe=!0}}if(r&&t==="single"&&!oe&&Z&&n.focusedIndex>=0){let le=w(n.focusedIndex);if(le)q(le.id,le);oe=!0}if(A){if(P.preventDefault(),Z&&n.focusedIndex>=0){if(p||!W.navigate)be(n.focusedIndex);_(n.focusedIndex)}if(oe)C();else if(Z){if(a(),n.focusedIndex>=0){let le=w(n.focusedIndex);if(le)R.emit("focus:change",{id:le.id,index:n.focusedIndex})}}}});l.registerMethod("select",(...P)=>{for(let c of P)q(c);C()}),l.registerMethod("deselect",(...P)=>{for(let c of P)ue(c);C()}),l.registerMethod("toggleSelect",(P)=>{ne(P),C()}),l.registerMethod("selectAll",()=>{if(t!=="multiple")return;v(l),j(),C()}),l.registerMethod("clearSelection",()=>{te(),C()}),l.registerMethod("getSelected",()=>at(n.selected)),l.registerMethod("getSelectedItems",()=>I()),l.registerMethod("selectNext",()=>{v(l);let P=y();if(P===0)return;if(Xe(n,1,P,B.reverse),h)n.focusedIndex=M(n.focusedIndex,1,P);let c=w(n.focusedIndex);if(c)q(c.id,c);C()}),l.registerMethod("selectPrevious",()=>{v(l);let P=y();if(P===0)return;if(Xe(n,-1,P,B.reverse),h)n.focusedIndex=M(n.focusedIndex,-1,P);let c=w(n.focusedIndex);if(c)q(c.id,c);C()}),l.registerMethod("_seedSelection",(P)=>{if(t==="single"){if(P.length===1)n.selected.add(P[0])}else for(let c of P)n.selected.add(c)}),l.registerMethod("_isFollowFocus",()=>r),l.registerMethod("_getFocusedId",()=>{if(n.focusedIndex<0)return;return w(n.focusedIndex)?.id}),l.registerMethod("_focusById",(P)=>{let c=V.totalItems;for(let W=0;W<c;W++){if(h?.(W))continue;let z=w(W);if(z&&z.id===P){n.focusedIndex=W,n.focusVisible=o,R.emit("focus:change",{id:P,index:W});return}}})},destroy(){Y.clear()}}}var Xn=0,jn=1000,Zn=15,Jn=!0,Qn=16,eo=!0,Je=2,to="scroll",no=350,oo=12,ro=(e)=>{if(typeof e!=="object"){let t=e??Je;return{top:t,right:t,bottom:t,left:t}}return{top:e.top??Je,right:e.right??Je,bottom:e.bottom??Je,left:e.left??Je}},Tn=(e,t,r={},o="vlist",i=!1,n,s,a)=>{let R=navigator.userAgentData?.platform||navigator.platform+navigator.userAgent,g=r.platform?r.platform==="windows":!/Mac|Android/i.test(R),{autoHide:d=!g,autoHideDelay:V=jn,minThumbSize:F=Zn,showOnHover:m=Jn,showOnViewportEnter:Y=eo,clickBehavior:L=to}=r,S=L==="page"?"scroll":L,h=n??e,p=ro(r.padding),y=i?p.left:p.top,H=i?p.right:p.bottom,v=i?p.bottom:p.right,x=r.hoverZoneWidth??v+Qn,D=!0,f=0,w=0,M=0,q=0,ne=!1,te=!1,ue=0,fe=0,j=0,I=null,C=!1,G=null,T=null,l=-1,B=-1,k=-1,N=-1,U=-1,be=e.id?"":(()=>{let ee;do ee=`${o}-scrollport-${++Xn}`;while(document.getElementById(ee));return e.id=ee,ee})(),_=0,X=0,E=null,P=null,c=null,W=i?"width":"height",z=i?"translateX":"translateY",A=i?(ee)=>ee.clientX:(ee)=>ee.clientY,oe=i?"left":"top",Z=document.createElement("div"),le=document.createElement("div"),ce=document.createElement("div"),se=i?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",he=()=>{if(h===e)return;let ee=e.offsetTop;Z.style[i?"left":"top"]=ee?`calc(var(${se}) + ${ee}px)`:`var(${se})`,ce.style[i?"left":"top"]=`${ee}px`},K=()=>{if(Z.className=`${o}-scrollbar`,Z.setAttribute("role","scrollbar"),Z.setAttribute("aria-controls",e.id),Z.setAttribute("aria-orientation",i?"horizontal":"vertical"),Z.setAttribute("aria-label",e.getAttribute("aria-label")||"Scroll"),Z.setAttribute("aria-valuemin","0"),Z.tabIndex=0,le.className=`${o}-scrollbar__thumb`,i)Z.classList.add(`${o}-scrollbar--horizontal`);if(r.padding!==void 0)h.style.setProperty("--vlist-custom-scrollbar-padding-top",`${p.top}px`),h.style.setProperty("--vlist-custom-scrollbar-padding-right",`${p.right}px`),h.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${p.bottom}px`),h.style.setProperty("--vlist-custom-scrollbar-padding-left",`${p.left}px`);if(r.minThumbSize!==void 0)Z.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${F}px`);if(Z.appendChild(le),h.appendChild(Z),ce.className=`${o}-scrollbar__hover`,i)ce.classList.add(`${o}-scrollbar__hover--horizontal`),ce.style.height=`${x}px`;else ce.style.width=`${x}px`;if(h.appendChild(ce),h!==e)he()},Q=()=>{if(I)clearTimeout(I),I=null},u=()=>{if(!d)return;Q(),I=setTimeout(de,V)},J=()=>{if(!D||f<=w)return;if(Q(),!C)Z.classList.add(`${o}-scrollbar--visible`),C=!0;if(d&&!ne&&!te&&document.activeElement!==Z)u()},de=()=>{if(ne||te||document.activeElement===Z)return;Z.classList.remove(`${o}-scrollbar--visible`),C=!1},ae=(ee,Le)=>{if(f=ee,w=Le,he(),Ie(j),!D||f<=w){Z.style.display="none",Z.classList.remove(`${o}-scrollbar--visible`),C=!1;return}Z.style.display="";let ze=Math.max(0,w-y-H),O=w/f;if(M=Math.max(F,O*ze),le.style[W]=`${M}px`,q=ze-M,Ie(j),!d)J()},Ie=(ee)=>{let Le=Math.max(0,f-w);if(j=Math.max(0,Math.min(ee,Le)),l!==Le)l=Le,Z.setAttribute("aria-valuemax",String(Le));if(B!==j)B=j,Z.setAttribute("aria-valuenow",String(j));let ze=s?.(),O=ze?.getTotal()??0,b=O?ze.indexAtOffset(j)+1:0;if(b!==k||O!==N)k=b,N=O,Z.setAttribute("aria-valuetext",`Row ${b} of ${O}`);if(Le<=0||q<=0)return;let ge=j/Le*q;if(ge!==U)U=ge,le.style.transform=`${z}(${ge}px)`},xe=(ee)=>{if(!D||ee.target!==Z||document.activeElement!==Z)return;if(ee.stopPropagation(),ee.altKey||ee.ctrlKey||ee.metaKey)return;let Le=s?.(),ze=Le?.getSize(Le.indexAtOffset(j))??40,O=j;switch(ee.key){case(i?"ArrowLeft":"ArrowUp"):O-=ze;break;case(i?"ArrowRight":"ArrowDown"):O+=ze;break;case"PageUp":O-=w;break;case"PageDown":O+=w;break;case"Home":O=0;break;case"End":O=f;break;default:return}ee.preventDefault(),t(Math.max(0,Math.min(O,Math.max(0,f-w)))),J()},pe=(ee)=>{if(ee.target===le||S!=="jump"||q<=0)return;let Le=f-w,ze=Z.getBoundingClientRect(),O=A(ee)-ze[oe],b=Math.max(0,Math.min(O-M/2,q));t(b/q*Le),J()},ye=()=>{if(E!==null)clearTimeout(E),E=null;if(P!==null)cancelAnimationFrame(P),P=null;c=null},Te=(ee)=>{let Le=q>0?X/ee*q:0;if(_<Le)return-1;if(_>=Le+M)return 1;return 0},Me=()=>{let ee=f-w,Le=Te(ee);if(Le===0){ye();return}if(Le===-1){if(X<=0){ye();return}let ze=Math.max(0,X-w);X=ze,t(ze)}else{if(X>=ee){ye();return}let ze=Math.min(ee,X+w);X=ze,t(ze)}J()},Se=(ee)=>{if(c===null){c=ee,P=requestAnimationFrame(Se);return}let Le=f-w,ze=ee-c;c=ee;let O=Te(Le);if(O===0){ye();return}let b=oo*w/1000,ge=Math.min(b*ze,w);if(O===-1){if(X<=0){ye();return}let Ae=Math.max(0,X-ge);X=Ae,t(Ae)}else{if(X>=Le){ye();return}let Ae=Math.min(Le,X+ge);X=Ae,t(Ae)}Q(),P=requestAnimationFrame(Se)},Ee=(ee)=>{if(ee&&ee.pointerId!==G)return;let Le=G,ze=T;if(G=null,T=null,ne=!1,Z.classList.remove(`${o}-scrollbar--dragging`),ye(),Le!==null&&ze?.hasPointerCapture(Le))ze.releasePointerCapture(Le);u()},re=(ee)=>{if(!D||ee.button!==0||G!==null||q<=0)return;if(ee.preventDefault(),ee.stopPropagation(),G=ee.pointerId,ne=ee.target===le,T=ne?le:ee.currentTarget,T.setPointerCapture(G),Q(),ne)ue=A(ee),fe=j,Z.classList.add(`${o}-scrollbar--dragging`);else if(S==="jump")pe(ee);else _=A(ee)-Z.getBoundingClientRect()[oe],X=j,Me(),E=setTimeout(()=>{P=requestAnimationFrame(Se)},no);J()},me=(ee)=>{if(!ne||ee.pointerId!==G)return;ee.stopPropagation();let Le=A(ee)-ue,ze=Math.max(0,f-w),O=Math.max(0,Math.min(fe+Le/q*ze,ze));Ie(O),t(O)},Ce=()=>{if(Y)J()},Re=()=>{if(!ne){if(te=!1,d)u()}},ie=()=>{te=!0,Q(),J()},ve=()=>{if(te=!1,!ne&&d)u()},we=["width","radius","thumb-color","track-color"],Pe=(ee,Le)=>h.style.setProperty(`--vlist-custom-scrollbar-${ee}`,Le),_e=we.map((ee)=>h.style.getPropertyValue(`--vlist-custom-scrollbar-${ee}`)),Oe=_e.slice(0,2),Fe=[],Ne=()=>{for(let b=0;b<2;b++){let ge=we[b],Ae=h.style.getPropertyValue(`--vlist-custom-scrollbar-${ge}`);if(Ae!==Fe[b])Oe[b]=Ae;Pe(ge,Oe[b])}let ee=getComputedStyle(a??h),Le=r.width??ee.getPropertyValue("scrollbar-width"),ze=ee.getPropertyValue("scrollbar-color").match(/[\w-]+\([^)]*\)|\S+/g);D=r.enabled!==!1&&Le!=="none";let O=[typeof r.width==="number"?`${r.width}px`:ee.getPropertyValue("--vlist-custom-scrollbar-width").trim()||(Le==="thin"||!g?"6px":"14px"),typeof r.radius==="number"?`${r.radius}px`:ee.getPropertyValue("--vlist-custom-scrollbar-radius").trim()||(g?"0px":"4px"),r.thumbColor??(ze?.length===2?ze[0]:_e[2]),r.trackColor??(ze?.length===2?ze[1]:_e[3])];for(let b=0;b<we.length;b++)Pe(we[b],O[b]);if(Fe=O.slice(0,2),ce.style.display=D?"":"none",e.classList.toggle(`${o}-viewport--gutter`,D&&!!r.gutter),!D)Ee();ae(f,w)},We=()=>{Q(),ye(),Ee(),Q();for(let ee of He)ee();for(let ee=0;ee<we.length;ee++)Pe(we[ee],_e[ee]);if(e.classList.remove(`${o}-viewport--gutter`),ce.remove(),h.style.removeProperty("--vlist-custom-scrollbar-padding-top"),h.style.removeProperty("--vlist-custom-scrollbar-padding-right"),h.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),h.style.removeProperty("--vlist-custom-scrollbar-padding-left"),Z.remove(),be&&e.id===be)e.removeAttribute("id")};K();let He=[],Ve=(ee,Le,ze)=>{ee.addEventListener(Le,ze),He.push(()=>ee.removeEventListener(Le,ze))};for(let ee of[Z,le,ce])Ve(ee,"pointerdown",re),Ve(ee,"pointermove",me),Ve(ee,"pointerup",Ee),Ve(ee,"pointercancel",Ee),Ve(ee,"lostpointercapture",Ee);if(Ve(Z,"keydown",xe),Ve(Z,"focus",J),Ve(Z,"blur",u),Ve(e,"mouseenter",Ce),Ve(e,"mouseleave",Re),Ve(Z,"mouseenter",ie),Ve(Z,"mouseleave",ve),m)Ve(ce,"mouseenter",ie),Ve(ce,"mouseleave",ve);return Ne(),{refresh:Ne,show:J,hide:de,updateBounds:ae,updatePosition:Ie,isVisible:()=>C,destroy:We}};function zt(e){let t=null,r,o=0,i=0,n=0;return{name:"scrollbar",priority:15,setup(s){let{dom:a,config:R}=s,{classPrefix:g}=R,d=R.axis.primary==="x";r=s.getState(),o=R.mainAxisPadding;let V=(F)=>{s.scrollTo(F)};s.registerMethod("_scrollbar:setCallback",(F)=>{V=F}),t=Tn(a.viewport,(F)=>{V(F)},e,g,d,a.root,()=>s.sizeCache,a.root.parentElement),a.viewport.classList.add(`${g}-viewport--custom-scrollbar`),s.registerMethod("refreshScrollbar",()=>t?.refresh()),queueMicrotask(()=>{t?.updateBounds(r.totalSize+o,r.containerSize)}),s.registerMethod("_scrollbar:getInstance",()=>t),s.registerDestroyHandler(()=>{if(t?.destroy(),t=null,a.viewport.classList.remove(`${g}-viewport--custom-scrollbar`),e?.gutter)a.viewport.classList.remove(`${g}-viewport--gutter`)})},hooks:{onAfterScroll(s){let a=r.totalSize+o,R=r.containerSize;if(a!==i||R!==n)i=a,n=R,t?.updateBounds(a,R);t?.updatePosition(s),t?.show()},onResize(){let s=r.totalSize+o,a=r.containerSize;i=s,n=a,t?.updateBounds(s,a)}},destroy(){t?.destroy(),t=null}}}var io=(e)=>{try{let t=sessionStorage.getItem(e);if(!t)return;return JSON.parse(t)}catch{return}};function At(e){let t=e?.autoSave,r=e?.restore??(t?io(t):void 0),o=!1,i=null;return{name:"snapshots",priority:50,setup(n){let{sizeCache:s,emitter:a,scroll:R}=n,g=n.getState(),d=()=>{let m=R.getPixelEquivalent(),Y=g.totalItems,S=n.getMethod("getSelected")?.();if(Y===0){let f={index:0,offsetInItem:0,total:0};if(S?.length)f.selectedIds=S;return f}let h=s.indexAtOffset(m),p=m-s.getOffset(h);p=Math.max(0,p);let y={index:h,offsetInItem:p,total:Y,scrollTop:m},H=s.getSize(h);if(H)y.offsetRatio=p/H;let v=n.getMethod("_layoutToDataIndex");if(v){let f=v(h);if(f<0){for(let w=h+1;w<Y;w++)if(f=v(w),f>=0)break}if(f>=0)y.dataIndex=f}let x=n.getMethod("_getTotal");if(x)y.dataTotal=x();if(S?.length)y.selectedIds=S;let D=n.getMethod("_getFocusedId");if(D){let f=D();if(f!==void 0)y.focusedId=f}return y};n.registerMethod("getScrollSnapshot",d);let V=(m,Y=!0)=>{let{index:L,offsetInItem:S,selectedIds:h,focusedId:p}=m,y=g.totalItems,H=m.dataTotal??m.total;if(y===0&&H&&H>0){let I=n.getMethod("_setTotal");if(I)I(H),y=g.totalItems;s.rebuild(y),n.updateContentSize(s.getTotalSize()),g.totalSize=s.getTotalSize()}if(y===0)return Promise.resolve();if(!Number.isFinite(L)||!Number.isFinite(S))return Promise.resolve();if(s.getTotal()===0)s.rebuild(y),n.updateContentSize(s.getTotalSize()),g.totalSize=s.getTotalSize();let x=n.getMethod("_dataToLayoutIndex"),D=L;if(m.dataIndex!==void 0&&m.dataIndex>=0)D=x?x(m.dataIndex):m.dataIndex;else if(x)D=x(L);let f=Math.max(0,Math.min(D,y-1)),w=s.getSize(f),M=m.offsetRatio!==void 0?m.offsetRatio*w:Math.min(S,w),q=n.getMethod("_getTotal")?.(),ne=m.total===y||q!==void 0&&m.dataTotal===q,te;if(m.scrollTop!==void 0&&ne)te=m.scrollTop;else te=s.getOffset(f)+M;let ue=Math.max(0,g.totalSize-g.containerSize);if(te=Math.max(0,Math.min(te,ue)),n.scrollTo(te),Y&&h?.length){let I=n.getMethod("select");if(I)I(...h)}let fe=n.getMethod("loadVisibleRange"),j=()=>{if(p===void 0)return;let I=n.getMethod("_focusById");if(I)I(p)};return new Promise((I)=>{let C=(G)=>{if(G)j();I()};if(fe){let G=0,T=()=>{if(g.containerSize>0){if(Math.abs(R.getPixelEquivalent()-te)>1)n.scrollTo(te);fe().then(()=>C(!0),()=>C(!1))}else if(++G<10)requestAnimationFrame(T);else C(!1)};requestAnimationFrame(T)}else{let G=n.getMethod("reload");if(G)requestAnimationFrame(()=>{G().then(()=>C(!0),()=>C(!1))});else requestAnimationFrame(()=>C(!0))}})};n.registerMethod("restoreScroll",V);let F=!!(r&&t);if(n.registerDestroyHandler(()=>{o=!0}),t){i=()=>{if(o||F)return;let y=d();try{sessionStorage.setItem(t,JSON.stringify(y))}catch{}},n.registerMethod("_saveSnapshot",i);let m=0,Y=()=>{if(m)return;m=requestAnimationFrame(()=>{if(m=0,i)i()})};a.on("selection:change",Y),a.on("focus:change",Y);let L=0,S=()=>{if(L=0,i)i()},h=()=>{if(L)clearTimeout(L);L=setTimeout(S,300)};a.on("scroll",h);let p=()=>{i?.()};if(window.addEventListener("beforeunload",p),n.registerDestroyHandler(()=>{if(m)cancelAnimationFrame(m);if(L)clearTimeout(L);window.removeEventListener("beforeunload",p)}),r&&r.total&&r.total>0){let y=n.getMethod("_cancelAutoLoad");if(y)y();let H=n.getMethod("_setTotal");if(H)H(r.total)}}if(r){let m=!0;if(r.selectedIds?.length){let Y=n.getMethod("_seedSelection");if(Y)Y(r.selectedIds),m=!1}queueMicrotask(()=>{if(V(r,m),F=!1,i)i()})}},hooks:{onIdle(){if(i&&!o)i()}},destroy(){o=!0,i=null}}}function so(e){let t=[];if(typeof window<"u"&&e.scroll?.element===window)t.push(yt());let r=e.item,o=e.orientation==="horizontal",i=o?r.width!=null:r.height!=null,n=o?r.estimatedWidth!=null:r.estimatedHeight!=null;if(!i&&n)t.push(It());if(e.adapter)t.push(Tt({adapter:e.adapter,...e.loading&&{loading:e.loading}}));if(e.layout==="grid"&&e.grid)t.push(xt(e.grid));if(e.layout==="masonry"&&e.masonry)t.push(Lt(e.masonry));if(e.groups){let R=e.groups,g=typeof R.headerHeight==="function"?R.headerHeight("",0):R.headerHeight;t.push(Mt({getGroupForIndex:R.getGroupForIndex,...g!==void 0&&{headerHeight:g},...R.headerTemplate!==void 0&&{headerTemplate:R.headerTemplate},...R.sticky!==void 0&&{sticky:R.sticky}}))}if((e.selection?.mode||"none")!=="none")t.push(dt(e.selection));else t.push(dt({mode:"none"}));let a=e.scroll?.scrollbar||e.scrollbar;if(a!=="none"&&a!=="native"){let R=a&&typeof a==="object"?a:{};t.push(zt(R))}if(t.push(At()),e.plugins&&e.plugins.length>0){let R=new Set(e.plugins.map((d)=>d.name));return[...t.filter((d)=>!R.has(d.name)),...e.plugins]}return t}function di(e){let{factory:t,...r}=e;return(t??ln)(r,so(e))}export{di as createVListFromConfig,so as resolvePlugins};
1
+ var It=16777216,dt=3,Gt="vlist";var ut=50;var Bt=50,Nt=2,Wt=15,Kt=6,Tt=2000,Ut=30000,xt=16000000,ct=150,Lt=1,Yt=(e)=>e<0.5?2*e*e:1-(-2*e+2)**2/2,mt=300;var qt="x",Xt=20,Ct="_isPlaceholder",Ke="__placeholder_";function ft(e){let{state:t,viewport:r,isX:i,onFrame:o,onIdle:n}=e,s=e.idleTimeout||ct,l=null,w=null;function p(v=i?r.scrollLeft:r.scrollTop){t.prevScrollPosition=t.scrollPosition,t.scrollPosition=v,t.scrollDirection=v>t.prevScrollPosition?1:v<t.prevScrollPosition?-1:0,o(),a()}function a(){if(l!==null)clearTimeout(l);l=setTimeout(()=>{l=null,t.scrollDirection=0,n()},s)}function z(){if(w!==null)cancelAnimationFrame(w),w=null}function R(v,G,T,f=Yt,u){z();let c=t.scrollPosition,L=typeof v==="function"?v:()=>v,D=L();if(Math.abs(D-c)<1){if(T)T(D);else if(i)r.scrollLeft=D;else r.scrollTop=D;u?.();return}let h=performance.now();function A(H){D=L();let x=H-h,I=Math.min(x/G,1),m=c+(D-c)*f(I);if(T)T(m);else if(i)r.scrollLeft=m;else r.scrollTop=m;if(!T)p(m);if(I<1)w=requestAnimationFrame(A);else w=null,u?.()}w=requestAnimationFrame(A)}return{attach(){},detach(){if(z(),l!==null)clearTimeout(l),l=null},cancelScroll:z,smoothScrollTo:R,commitScroll:p}}function Zt(e){let{state:t,viewport:r,isX:i,wheelEnabled:o}=e,n=e.scrollTarget??r,s=ft(e),l=s.commitScroll;function w(){let a=i?r.scrollLeft:r.scrollTop;if(Math.abs(a-t.scrollPosition)<0.5)return;l(a)}function p(a){let z;if(i){if(Math.abs(a.deltaX)>Math.abs(a.deltaY))return;let R=r.scrollLeft,v=r.scrollWidth-r.clientWidth;if(z=Math.max(0,Math.min(R+a.deltaY*Lt,v)),Math.abs(z-R)<1)return;a.preventDefault(),r.scrollLeft=z}else{let R=r.scrollWidth>r.clientWidth;if(R&&Math.abs(a.deltaX)>Math.abs(a.deltaY))return;if(R&&a.deltaX!==0)a.preventDefault(),r.scrollLeft+=a.deltaX;let v=r.scrollTop,G=r.scrollHeight-r.clientHeight;if(z=Math.max(0,Math.min(v+a.deltaY*Lt,G)),Math.abs(z-v)<1)return;a.preventDefault(),r.scrollTop=z}l(z)}return{...s,attach(){if(n.addEventListener("scroll",w,{passive:!0}),o)n.addEventListener("wheel",p,{passive:!1})},detach(){if(n.removeEventListener("scroll",w),o)n.removeEventListener("wheel",p);s.detach()}}}var gt={top:0,right:0,bottom:0,left:0},jt=(e)=>{if(e==null)return gt;if(typeof e==="number")return e===0?gt:{top:e,right:e,bottom:e,left:e};if(e.length===2){let[n,s]=e;return n===0&&s===0?gt:{top:n,right:s,bottom:n,left:s}}let[t,r,i,o]=e;return t===0&&r===0&&i===0&&o===0?gt:{top:t,right:r,bottom:i,left:o}},Jt=(e,t)=>t?e.left+e.right:e.top+e.bottom,Qt=(e,t)=>t?e.top+e.bottom:e.left+e.right;function en(e){let t={visibleIndices:new Int32Array(e),visibleOffsets:new Float64Array(e),visibleSizes:new Float64Array(e),visibleCount:0,startIndex:0,totalSize:0,capacity:e,scrollPosition:0,prevScrollPosition:0,scrollDirection:0,baseOffset:0,prevBaseOffset:0,containerSize:0,crossSize:0,totalItems:0,prevRangeStart:0,prevRangeEnd:-1,renderPending:!1,initialized:!1,destroyed:!1,windowClamped:!1,windowClampReported:!1,prevAriaTotal:-1,ensureCapacity(r){if(r<=t.capacity)return;let i=r+8,o=new Int32Array(i),n=new Float64Array(i),s=new Float64Array(i);o.set(t.visibleIndices),n.set(t.visibleOffsets),s.set(t.visibleSizes),t.visibleIndices=o,t.visibleOffsets=n,t.visibleSizes=s,t.capacity=i},resizeCapacity(r,i,o=dt){if(i<=0||r<=0)return;t.ensureCapacity(Math.ceil(r/i)+o*2)},clear(){t.visibleCount=0,t.startIndex=0}};return t}var _n=(e,t,r)=>{let i=t;return{getOffset:(o)=>o*e,getSize:(o)=>e,indexAtOffset:(o)=>{if(i===0||e===0)return 0;return Math.max(0,Math.min(Math.floor(o/e),i-1))},getTotalSize:()=>{let o=i*e;return o>0?o-r:0},getTotal:()=>i,rebuild:(o)=>{i=o},invalidate:()=>{},isVariable:()=>!1}};var tn=(e,t,r,i)=>{while(t<r){let o=t+r+1>>>1;if(e[o]<=i)t=o;else r=o-1}return t},Hn=(e,t,r)=>{let i=0,o=0,n=new Float64Array(0),s=new Float64Array(0),l=new Float64Array(1),w=(a,z)=>{for(let R=a;R<o;R++){if(R<=z){let v=R<<9,G=Math.min(v+512,i),T=0;for(let f=v;f<G;f++)n[f]=T,T+=e(f);s[R]=T}l[R+1]=l[R]+s[R]}},p=(a)=>{i=a,o=Math.ceil(a/512),n=new Float64Array(a),s=new Float64Array(o),l=new Float64Array(o+1),w(0,o-1)};return p(t),{getOffset:(a)=>{if(a<=0)return 0;if(a>=i)return l[o];return l[a>>>9]+n[a]},getSize:(a)=>e(a),indexAtOffset:(a)=>{if(i===0||a<=0)return 0;if(a>=l[o])return i-1;let z=tn(l,0,o-1,a),R=z<<9;return tn(n,R,Math.min(R+512,i)-1,a-l[z])},getTotalSize:()=>{let a=l[o];return a>0?a-r:0},getTotal:()=>i,rebuild:(a)=>p(a),invalidate:(a,z=a)=>{if(a>=0&&z<i)w(a>>>9,z>>>9)},isVariable:()=>!0}},pt=(e,t,r=0)=>{if(typeof e==="number")return _n(e,t,r);return Hn(e,t,r)};function nn(e){let t=[],r=`${e}-item`,i=document.createElement("div");return i.className=r,{acquire(){if(t.length>0)return t.pop();return i.cloneNode(!1)},release(o){o.className=r,o.removeAttribute("style"),o.removeAttribute("id"),o.removeAttribute("role"),o.removeAttribute("aria-selected"),o.removeAttribute("aria-posinset"),o.removeAttribute("aria-setsize"),o.removeAttribute("data-index"),o.removeAttribute("data-id"),o.textContent="",t.push(o)},get size(){return t.length},trim(o){let n=o>0?o:0;if(t.length>n)t.length=n},clear(){t.length=0}}}function qe(e){let t=e.querySelectorAll("a[href],button,input,select,textarea,[tabindex]");for(let r=0;r<t.length;r++)t[r].setAttribute("tabindex","-1");e._stamp=0}function Et(e){if(typeof e==="string"){let t=document.querySelector(e);if(!t)throw Error(`[vlist] Container not found: ${e}`);return t}return e}function on(e,t,r,i){let o=r?`${t} ${t}--horizontal`:t,n=r?"overflow-x:auto;overflow-y:hidden;height:100%;width:100%":"overflow:auto;height:100%;width:100%",s=r?"position:relative;height:100%;overflow-anchor:none":"position:relative;width:100%;overflow-anchor:none",l=' role="list"';if(i)l+=` aria-label="${i.replace(/"/g,"&quot;")}"`;if(r)l+=' aria-orientation="horizontal"';e.insertAdjacentHTML("beforeend",`<div class="${o}"><div class="${t}-viewport" style="${n}" tabindex="-1"><div class="${t}-content" style="${s}"${l}></div></div></div>`);let w=e.lastElementChild,p=w.firstElementChild,a=p.firstElementChild,z=document.createElement("div");return z.className=`${t}-live`,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",z.setAttribute("aria-live","polite"),z.setAttribute("aria-atomic","true"),z.setAttribute("role","status"),w.appendChild(z),{root:w,viewport:p,content:a,liveRegion:z}}function Vn(e,t){if(e.getTotal()<=0)return{index:0,offsetPx:0};let i=t<=0?0:t,o=e.indexAtOffset(i),n=i-e.getOffset(o);return{index:o,offsetPx:n>0?n:0}}function Fn(e,t){let r=On(e,t);return e.getOffset(r.index)+r.offsetPx}function On(e,t){let r=e.getTotal();if(r<=0)return{index:0,offsetPx:0};let{index:i,offsetPx:o}=t;if(i<0)return{index:0,offsetPx:0};if(i>r-1)i=r-1;while(o>0&&i<r-1){let n=e.getSize(i);if(o<n)break;o-=n,i++}while(o<0&&i>0)i--,o+=e.getSize(i);if(o<0)o=0;return{index:i,offsetPx:o}}function rn(e){let{sizeCache:t,getPixel:r,setPixel:i,getContainerSize:o}=e;function n(){let l=t.getTotalSize()+e.padding-o();return l>0?l:0}function s(l){if(l<=0)return 0;let w=n();return l>w?w:l}return{getLogical(){return Vn(t,r())},setLogical(l){i(s(Fn(t,l)))},getPixelEquivalent(){return r()},setPixelEquivalent(l){i(s(l))},getMaxPixelEquivalent:n,getRenderOrigin:e.getRenderOrigin,scrollByPx(l){i(s(r()+l))}}}var ot=[],Dn={calculate:ot,commit:ot,afterScroll:ot,idle:ot,resize:ot};function sn(e){if(e.length===0)return Dn;let t=[],r=[],i=[],o=[],n=[];for(let s=0;s<e.length;s++){let l=e[s].hooks;if(l===void 0)continue;if(l.onCalculate!==void 0)t.push(l.onCalculate);if(l.onCommit!==void 0)r.push(l.onCommit);if(l.onAfterScroll!==void 0)i.push(l.onAfterScroll);if(l.onIdle!==void 0)o.push(l.onIdle);if(l.onResize!==void 0)n.push(l.onResize)}return{calculate:t,commit:r,afterScroll:i,idle:o,resize:n}}function ln(e,t){for(let r=0;r<e.length;r++)e[r](t)}function rt(e,t){for(let r=0;r<e.length;r++)e[r](t)}function Pt(e,t,r){for(let i=0;i<e.length;i++)e[i](t,r)}function an(e){for(let t=0;t<e.length;t++)e[t]()}function dn(e,t,r){for(let i=0;i<e.length;i++)e[i](t,r)}function un(e,t,r,i,o,n,s,l){let w=i!==0||o!==0;return{prefix:e,selectedClass:`${e}-item--selected`,focusedClass:`${e}-item--focused`,placeholderClass:`${e}-item--placeholder`,replacedClass:`${e}-item--replaced`,translateProp:t?"translateX(":"translateY(",sizeProp:t?"width":"height",itemRole:"listitem",interactive:!1,startPadding:r,gap:s,hasCrossPad:w,crossStartProp:w?t?"top":"left":"",crossEndProp:w?t?"bottom":"right":"",crossStartVal:w?i+"px":"",crossEndVal:w?o+"px":"",oddClass:n,emitter:l??null,indexMap:null,ariaTotalFn:null}}function $n(e,t,r,i,o){if(e.containerSize<=0||e.totalItems===0)return e.clear(),!0;let{scrollPosition:n,containerSize:s,totalItems:l}=e,w=o??0;e.totalSize=t.getTotalSize();let p=t.indexAtOffset(w>0?Math.max(0,n-w):n),a=t.indexAtOffset(n+s);if(a<l-1)a++;p=Math.max(0,p),a=Math.min(l-1,Math.max(0,a));let z=Math.max(0,p-r),R=Math.min(l-1,a+r),v=Math.ceil(s)+r*2;if(R-z+1>v)R=z+v-1,e.windowClamped=!0;let G=R-z+1;if(G>e.capacity)e.ensureCapacity(G);let T=Math.min(G,e.capacity);if(z===e.prevRangeStart&&R===e.prevRangeEnd&&!e.renderPending&&e.baseOffset===e.prevBaseOffset)return!1;e.visibleCount=T,e.startIndex=z;for(let f=0;f<T;f++){let u=z+f;e.visibleIndices[f]=u,e.visibleOffsets[f]=t.getOffset(u),e.visibleSizes[f]=t.getSize(u)}return ln(i.calculate,e),e.prevRangeStart=z,e.prevRangeEnd=R,e.prevBaseOffset=e.baseOffset,e.renderPending=!1,!0}var Ge={selected:!1,focused:!1};function Gn(e,t,r){for(let i=0;i<t;i++)if(e[i]===r)return!0;return!1}function Bn(e,t){if(t<=1)return!0;let r=e[0];for(let i=1;i<t;i++){let o=e[i];if(o!==r+1)return!1;r=o}return!0}function Nn(e,t,r,i,o,n,s,l,w,p){let a=w?null:o(),{visibleCount:z,visibleIndices:R}=e,v=s.ariaTotalFn?s.ariaTotalFn():e.totalItems,G=s.interactive?String(v):"",T=s.interactive&&v!==e.prevAriaTotal,f=null,u=s.indexMap;for(let c=0;c<z;c++){let L=R[c],D=u?u(L):L,h=e.visibleOffsets[c],A=e.visibleSizes[c],H=w?w(L):a[L];if(p)p(D,Ge);else Ge.selected=!1,Ge.focused=!1;let x=n.get(L),I=x;if(x===void 0){let m=t.acquire();if(H!==void 0){let O;try{O=i(H,D,Ge)}catch(re){if(s.emitter)s.emitter.emit("error",{error:re instanceof Error?re:Error(String(re)),context:`template:render:${D}`});t.release(m);continue}if(typeof O==="string")m.innerHTML=O;else m.textContent="",m.appendChild(O);qe(m)}if(m.setAttribute("role",s.itemRole),m.setAttribute("data-index",String(D)),s.interactive)m.id=s.prefix+"-item-"+L,m.setAttribute("aria-posinset",String(D+1)),m.setAttribute("aria-setsize",G);if(H!==void 0){let O=String(H.id);if(m.setAttribute("data-id",O),O.startsWith(Ke))m.classList.add(s.placeholderClass)}if(s.hasCrossPad)m.style.setProperty(s.crossStartProp,s.crossStartVal),m.style.setProperty(s.crossEndProp,s.crossEndVal);if(p){if(m.classList.toggle(s.selectedClass,Ge.selected),m.classList.toggle(s.focusedClass,Ge.focused),Ge.selected)m.setAttribute("aria-selected","true");else m.removeAttribute("aria-selected");m._lastSelected=Ge.selected,m._lastFocused=Ge.focused}if(s.oddClass)m.classList.toggle(s.oddClass,(L&1)===1);let C=h-e.baseOffset+s.startPadding;m.style.transform=s.translateProp+C+"px)",m._lastOffset=C;let F=A-s.gap;if(m.style[s.sizeProp]=F+"px",m._lastSize=F,m._lastItem=H,n.set(L,m),f===null)f=document.createDocumentFragment();f.appendChild(m)}else{if(T)x.setAttribute("aria-setsize",G);if(H!==void 0&&I._lastItem!==H){let F=x.getAttribute("data-id"),O=String(H.id),re;try{re=i(H,D,Ge)}catch(ie){if(s.emitter)s.emitter.emit("error",{error:ie instanceof Error?ie:Error(String(ie)),context:`template:render:${D}`});continue}if(typeof re==="string")x.innerHTML=re;else x.textContent="",x.appendChild(re);if(qe(x),x.setAttribute("data-id",O),I._lastItem=H,F!==O){let ie=F!==null&&F.startsWith(Ke),le=O.startsWith(Ke);if(ie!==le)x.classList.toggle(s.placeholderClass,le);if(ie&&!le)x.classList.add(s.replacedClass),setTimeout(()=>{x.classList.remove(s.replacedClass)},300)}}if(p){if(I._lastSelected!==Ge.selected){if(x.classList.toggle(s.selectedClass,Ge.selected),Ge.selected)x.setAttribute("aria-selected","true");else x.removeAttribute("aria-selected");I._lastSelected=Ge.selected}if(I._lastFocused!==Ge.focused)x.classList.toggle(s.focusedClass,Ge.focused),I._lastFocused=Ge.focused}let m=h-e.baseOffset+s.startPadding;if(I._lastOffset!==m)x.style.transform=s.translateProp+m+"px)",I._lastOffset=m;let C=A-s.gap;if(I._lastSize!==C)x.style[s.sizeProp]=C+"px",I._lastSize=C}}if(f!==null)r.appendChild(f);if(z>0&&Bn(R,z)){let c=R[0],L=R[z-1];for(let[D,h]of n)if(D<c||D>L)h.remove(),t.release(h),n.delete(D)}else for(let[c,L]of n)if(!Gn(R,z,c))L.remove(),t.release(L),n.delete(c);if(s.interactive)e.prevAriaTotal=e.totalItems;rt(l.commit,e)}function Mt(e,t,r,i,o,n,s,l,w,p,a,z){let R=$n(e,t,r,p,w.startPadding);if(e.windowClamped&&!e.windowClampReported)e.windowClampReported=!0,queueMicrotask(()=>{if(e.destroyed)return;w.emitter?.emit("error",{error:Error("[vlist] render window capped to the viewport: the item size spec reports sizes below 1px"),context:"render:window-ceiling"})});if(R)Nn(e,i,o,n,s,l,w,p,a,z)}var zt=()=>{let e={},t=(n,s)=>{if(!e[n])e[n]=new Set;return e[n].add(s),()=>r(n,s)},r=(n,s)=>{e[n]?.delete(s)};return{on:t,off:r,emit:(n,s)=>{e[n]?.forEach((l)=>{try{l(s)}catch(w){}})},clear:(n)=>{if(n)delete e[n];else for(let s in e)delete e[s]}}};var cn=2,mn=(e=0)=>({velocity:0,sampleCount:0}),fn=(e,t)=>{let r=performance.now(),i=e._lt??r,o=e._lp??t,n=r-i;if(e._lp=t,e._lt=r,n===0)return e.sampleCount=Math.min(e.sampleCount+1,5),e;if(n>100)return e.velocity=0,e.sampleCount=1,e;return e.velocity=Math.abs(t-o)/n,e.sampleCount=Math.min(e.sampleCount+1,5),e};function Wn(e){let{item:t}=e;if(t.height!==void 0&&typeof t.height==="number"){if(!Number.isFinite(t.height)||t.height<=0)throw Error(`vlist: item.height must be a positive number, got ${t.height}`)}if(t.width!==void 0&&typeof t.width==="number"){if(!Number.isFinite(t.width)||t.width<=0)throw Error(`vlist: item.width must be a positive number, got ${t.width}`)}if(t.estimatedHeight!==void 0){if(!Number.isFinite(t.estimatedHeight)||t.estimatedHeight<=0)throw Error(`vlist: item.estimatedHeight must be a positive number, got ${t.estimatedHeight}`)}if(t.estimatedWidth!==void 0){if(!Number.isFinite(t.estimatedWidth)||t.estimatedWidth<=0)throw Error(`vlist: item.estimatedWidth must be a positive number, got ${t.estimatedWidth}`)}if(t.gap!==void 0){if(typeof t.gap!=="number"||!Number.isFinite(t.gap)||t.gap<0)throw Error(`vlist: item.gap must be a non-negative number, got ${t.gap}`)}if(e.overscan!==void 0){if(typeof e.overscan!=="number"||!Number.isFinite(e.overscan)||e.overscan<0)throw Error(`vlist: overscan must be a non-negative number, got ${e.overscan}`)}let r=e.scroll;if(r?.mode!==void 0||r?.runway!==void 0)throw Error('vlist 3.0: scroll.mode and scroll.runway were removed; bounded mode is gone. Use "vlist/synthetic" for huge lists or "vlist" for native scrolling.')}function Kn(e,t){let r=e==="horizontal"?"x":"y";if(t.some((o)=>o.name==="grid"))return{primary:r,cross:r==="x"?"y":"x"};return{primary:r}}function Un(e,t){let r=Kn(e.orientation,t),i=r.primary==="x",o=jt(e.padding);return{axis:r,hasCrossAxis:r.cross!==void 0,overscan:e.overscan??dt,reverse:e.reverse??!1,classPrefix:e.classPrefix??Gt,mainAxisPadding:Jt(o,i),crossAxisPadding:Qt(o,i),startPadding:i?o.left:o.top,endPadding:i?o.right:o.bottom,crossPadStart:i?o.top:o.left,crossPadEnd:i?o.bottom:o.right,striped:e.item.striped||!1,gap:e.item.gap??0}}function Yn(e,t){if(t)return e.item.width??e.item.estimatedWidth??100;return e.item.height??e.item.estimatedHeight??40}function qn(e){let t=[...e];return t.sort((r,i)=>(r.priority??50)-(i.priority??50)),t}function Xn(e){let t=new Set;for(let r of e){if(t.has(r.name))throw Error(`[vlist] Duplicate plugin: ${r.name}`);t.add(r.name)}for(let r of e)if(r.conflicts){for(let i of r.conflicts)if(t.has(i))throw Error(`[vlist] Plugin "${r.name}" conflicts with "${i}"`)}}function Zn(e,t){for(let r of e)r.validateConfig?.(t)}function gn(e,t=[]){let r=!1;return jn(e,t,void 0,{native:Zt,onContentSize(i,o){if(!r&&i>xt)r=!0,o.emit("error",{error:Error(`Content size (${i}px) exceeds browser limit (${xt}px). Use "vlist/synthetic" for large datasets.`),context:"content:size:overflow"})}})}function jn(e,t=[],r,i){if(Wn(e),r&&typeof e.scroll?.scrollbar==="string")throw Error('vlist 3.0: scroll.scrollbar strings require "vlist"; use the scrollbar() plugin with "vlist/synthetic".');if(e.orientation==="horizontal"&&getComputedStyle(Et(e.container)).direction==="rtl")throw Error("vlist: horizontal RTL lists are not supported; use a vertical list, or an LTR container");let o=Un(e,t),n=o.axis.primary==="x",s=Yn(e,n),l=o.gap,w=l>0?typeof s==="function"?(J)=>s(J)+l:s+l:s,p=typeof s==="number"?s:20,a=e.items?.length??0,z=o.striped?`${o.classPrefix}-item--odd`:"",R=zt(),v=un(o.classPrefix,n,o.startPadding,o.crossPadStart,o.crossPadEnd,z,l,R),G=t.length>0?qn(t):t;if(t.length>0)Xn(G),Zn(G,o);let T=Et(e.container),f=on(T,o.classPrefix,n,e.ariaLabel);if(e.scroll?.scrollbar==="none")f.viewport.classList.add(`${o.classPrefix}-viewport--no-scrollbar`);if(e.scroll?.gutter==="stable")f.viewport.classList.add(`${o.classPrefix}-viewport--gutter-stable`);let c=pt(w,a,l),L=nn(o.classPrefix),D=Math.ceil(4096/p)+o.overscan*2+8,h=en(D);h.totalItems=a;let A=e.items?[...e.items]:[],H=()=>A,x=new Map,I=mn(),m={velocity:0,reliable:!1},C={range:{start:0,end:-1}},F={scrollPosition:0,direction:"down"},O={scrollPosition:0},re=-1,ie=-1,le=-1,b=null,E=sn(G),k=new Map,y=[],ee=[],g=[],P=(J)=>{let S=(be)=>{J.push(be instanceof Error?be:Error(String(be)))};for(let be of g)try{be()}catch(Me){S(Me)}for(let be of G)if(be.destroy)try{be.destroy()}catch(Me){S(Me)}},U=null,V=null,de,pe,fe=null,N=null,ce=null,te=null,B=null,W=null,ue=null,Ie=null,q=!1,_=!1,se=null,Q=0,ne=0,M=null,K=null,ae=null,d=null,oe=null,X=null,Y=null,ge=null,j=null,Z=null,ye=null;h.containerSize=n?f.viewport.clientWidth:f.viewport.clientHeight,h.crossSize=n?f.viewport.clientHeight:f.viewport.clientWidth;function Te(J){if(V)V(J);else{if(n)f.viewport.scrollLeft=J;else f.viewport.scrollTop=J;pe?.()}}let Ce=rn({sizeCache:c,getPixel:()=>h.scrollPosition,setPixel:Te,getRenderOrigin:()=>h.baseOffset,getContainerSize:()=>h.containerSize,padding:o.mainAxisPadding});if(t.length>0){let J={pool:L,config:o,emitter:R,template:e.item.template,getState(){return h},dom:{...f,renderedElement(S){let be=k.get("_getRenderedElement");if(be)return be(S);return x.get(S)??null},enableListbox(){let S=f.content.getAttribute("role");if(!S||S==="list")f.content.setAttribute("role","listbox"),f.content.setAttribute("tabindex","0");v.itemRole="option",v.interactive=!0}},scroll:{...Ce,to:Te,shiftBy(S){if(j?.shiftBy)j.shiftBy(S);else J.scroll.to(h.scrollPosition+S)},smoothTo(S,be,Me,Oe){if(oe)oe(S,be,V??void 0,Me,Oe);else J.scroll.to(typeof S==="function"?S():S)},cancel(){Be?.cancelScroll()},commit(S){pe(S)},setSource(S){V=S.write,de=S.onContentSize,q=!0},setTarget(S){se=S},setBoundedWrap(S,be){Z=S,ye=be},setToPosFn(S){X=S},setToIndexFn(S){Y=S},onFrame:ze,onIdle:Fe,disableResize(){_=!0}},items:{all:H,at(S){return ce?ce(S):A[S]},removeById(S){if(B)return B(S);let be=A.findIndex((Me)=>Me.id===S);if(be===-1)return-1;return A.splice(be,1),h.totalItems=A.length,c.rebuild(h.totalItems),Ae(),be},insertAt(S,be){if(W){W(S,be);return}A.splice(be,0,S),h.totalItems=A.length,c.rebuild(h.totalItems),Ae()},setGetFn(S){ce=S},setRemoveFn(S){B=S},setInsertFn(S){W=S},setUpdateFn(S){ue=S},setIndexByIdFn(S){Ie=S},setTotalFn(S){U=S,v.ariaTotalFn=S},setIndexMapFn(S){v.indexMap=S}},sizes:{cache:c,get rawSpec(){return s},setConfig(S,be=0){let Me=pt(S,h.totalItems,be),Oe=k.get("_setSizeCacheBase");if(Oe){let We=c.rebuild;Object.assign(c,Me),c.rebuild=We,Oe(Me.rebuild)}else Object.assign(c,Me)},rebuild(){c.rebuild(h.totalItems)}},render:{force(){$e()},ifNeeded(){ve()},contentSize:xe,setFn(S,be){fe=()=>{let{prevRangeStart:Me,prevRangeEnd:Oe}=h;if(S(),h.prevRangeStart!==Me||h.prevRangeEnd!==Oe)rt(E.commit,h)},N=()=>{be(),rt(E.commit,h)}},setStateFn(S){te=S},getStateFn(){return te}},hooks:{method(S,be){if(!S.startsWith("_")&&k.has(S))throw Error(`[vlist] duplicate method "${S}"; rename it or use a set*Fn hook`);k.set(S,be)},get(S){return k.get(S)},onClick(S){y.push(S)},onKeydown(S){ee.push(S)},onDestroy(S){g.push(S)}},nav:{set(S){if(S.ud!==void 0)Q=S.ud;if(S.lr!==void 0)ne=S.lr;if(S.scrollIndex)M=S.scrollIndex;if(S.navigate)K=S.navigate;if(S.total)ae=S.total;if(S.reveal)d=S.reveal},get:(()=>{let S={ud:0,lr:0,scrollIndex:null,navigate:null,total:null,reveal:null};return()=>(S.ud=Q,S.lr=ne,S.scrollIndex=M,S.navigate=K,S.total=ae,S.reveal=d,S)})()}};for(let S of G)if(S.setup)try{S.setup(J)}catch(be){let Me=be instanceof Error?be:Error(String(be));R.emit("error",{error:Me,context:`plugin:setup:${S.name}`})}}let Le=o.classPrefix+"--scrolling",Pe=!1,Re=e.scroll?.idleTimeout??ct;function he(){if(F.scrollPosition=h.scrollPosition,n)F.direction=h.scrollDirection>0?"right":"left";else F.direction=h.scrollDirection>0?"down":"up";if(R.emit("scroll",F),fn(I,h.scrollPosition),m.velocity=I.velocity,m.reliable=I.sampleCount>=cn,R.emit("velocity:change",m),h.startIndex!==re||h.prevRangeEnd!==ie)re=h.startIndex,ie=h.prevRangeEnd,C.range.start=h.startIndex,C.range.end=h.prevRangeEnd,R.emit("range:change",C)}function xe(J,S=!0){if(j){if(S)j.refresh(J);return}h.totalSize=J;let be=J+o.mainAxisPadding;if(de?.(be),S)f.content.style[n?"width":"height"]=be+"px"}function Ae(){let J=fe?h.totalSize:c.getTotalSize();if(xe(J,!fe),j||fe)return;i?.onContentSize(J,R)}function Se(){if(!ge)return;if((U?U():A.length)===0)return;let S=ge;ge=null,Ne.scrollToIndex(S.index,S.alignOrOptions)}function ve(){if(fe)fe();else Mt(h,c,o.overscan,L,f.content,e.item.template,H,x,v,E,ce,te);Se()}function ze(){if(!Pe)Pe=!0,f.root.classList.add(Le);if(ve(),Pt(E.afterScroll,h.scrollPosition,h.scrollDirection),h.scrollPosition!==le)le=h.scrollPosition,he()}function ke(){L.trim(x.size)}function Fe(){if(Pe)Pe=!1,f.root.classList.remove(Le);h.scrollDirection=0,ke(),an(E.idle),m.velocity=0,m.reliable=!1,R.emit("velocity:change",m),O.scrollPosition=h.scrollPosition,R.emit("scroll:idle",O)}function $e(){if(h.renderPending=!0,N)N();else Mt(h,c,o.overscan,L,f.content,e.item.template,H,x,v,E,ce,te);if(Se(),Pt(E.afterScroll,h.scrollPosition,h.scrollDirection),h.scrollPosition!==le){if(le=h.scrollPosition,he(),b!==null)clearTimeout(b);b=setTimeout(Fe,Re)}else if(!Pe)ke()}let De=q?!1:e.scroll?.wheel!==!1,Be;if(q&&Z)throw P([]),f.root.remove(),Error("vlist: page() is not compatible with the carousel plugin — bounded page-mode scrolling is not implemented yet.");if(!q&&(r||Z))j=(r??ye)({state:h,sizeCache:c,viewport:f.viewport,content:f.content,isX:n,wheelEnabled:De,idleTimeout:Re,...se?{scrollTarget:se}:{},mainAxisPadding:o.mainAxisPadding,...Z?{wrap:Z,rendered:x,classPrefix:o.classPrefix,oddClass:z,onFold(J){let S=I;if(S._lp!==void 0)S._lp-=J;le-=J}}:{},onFrame:ze,onIdle:Fe}),Be=j,V=(J)=>j.setLogical(J);else{let J=(q?ft:i.native)({state:h,viewport:f.viewport,isX:n,wheelEnabled:De,idleTimeout:Re,...se?{scrollTarget:se}:{},onFrame:ze,onIdle:Fe});Be=J,pe=J.commitScroll}oe=Be.smoothScrollTo;function Ue(J){let be=J.target.closest("[data-index]");if(!be)return null;let Me=parseInt(be.getAttribute("data-index"),10);if(Number.isNaN(Me))return null;let Oe=k.get("_layoutToDataIndex"),We,Xe=Me;if(Oe){let Ye=Oe(Me);if(Ye<0)return null;let Qe=k.get("_getItemAtLayout"),nt=k.get("_getItem");We=Qe?Qe(Me):nt?nt(Ye):ce?ce(Ye):A[Ye],Xe=Ye}else We=ce?ce(Me):A[Me];if(We===void 0)return null;return{item:We,index:Xe}}function _e(J){for(let be=0;be<y.length;be++)y[be](J);let S=Ue(J);if(S)R.emit("item:click",{item:S.item,index:S.index,event:J})}function me(J){let S=Ue(J);if(S)R.emit("item:dblclick",{item:S.item,index:S.index,event:J})}function Ee(J){let S=Ue(J);if(S)R.emit("item:contextmenu",{item:S.item,index:S.index,event:J})}function we(J){let S=J.target?.tagName;if((S==="INPUT"||S==="TEXTAREA"||S==="SELECT")&&!((J.ctrlKey||J.metaKey)&&(J.key==="f"||J.key==="F")))return;for(let be=0;be<ee.length;be++)ee[be](J)}if(f.content.addEventListener("click",_e),f.content.addEventListener("dblclick",me),f.content.addEventListener("contextmenu",Ee),ee.length>0)f.root.addEventListener("keydown",we);let He=null;if(!_)setTimeout(()=>{if(h.destroyed)return;He=new ResizeObserver((S)=>{for(let be of S){let{width:Me,height:Oe}=be.contentRect,We=n?Me:Oe,Xe=n?Oe:Me;if(Math.abs(We-h.containerSize)<1&&Math.abs(Xe-h.crossSize)<1)continue;if(h.containerSize=We,h.crossSize=Xe,h.resizeCapacity(We,p,o.overscan),j)j.refresh(c.getTotalSize());$e(),dn(E.resize,Me,Oe),R.emit("resize",{width:Me,height:Oe})}}),He.observe(f.viewport)},0);h.resizeCapacity(h.containerSize,p,o.overscan),Ae(),h.initialized=!0;let Ve=null;if(e.defer)Ve=requestAnimationFrame(()=>{if(Ve=null,!h.destroyed)ve()});else ve();if(!q)Be.attach();let Ne={get element(){return f.root},get items(){return A},get total(){return U?U():A.length},setItems(J){A=[...J],h.totalItems=A.length,c.rebuild(h.totalItems),Ae(),$e()},appendItems(J){let S=()=>Math.max(0,c.getTotalSize()+o.mainAxisPadding-h.containerSize),be=o.reverse&&h.scrollPosition>=S()-1;if(A.push(...J),h.totalItems=A.length,c.rebuild(h.totalItems),Ae(),$e(),be)Te(S())},prependItems(J){let S=h.totalItems>0,be=c.getTotalSize();if(A.unshift(...J),h.totalItems=A.length,c.rebuild(h.totalItems),Ae(),$e(),!o.reverse||!S)return;let Me=c.getTotalSize()-be;if(Me<=0)return;let Oe=Math.max(0,c.getTotalSize()+o.mainAxisPadding-h.containerSize);Te(Math.min(h.scrollPosition+Me,Oe))},updateItem(J,S){if(ue){if(!ue(J,S))return}else{let be=A.findIndex((Me)=>Me.id===J);if(be===-1)return;A[be]={...A[be],...S}}$e()},insertItem(J,S){if(W)W(J,S??h.totalItems);else{if(S===void 0)A.push(J);else A.splice(S,0,J);h.totalItems=A.length,c.rebuild(h.totalItems),Ae()}$e()},removeItem(J){if(B){if(B(J)<0)return}else{let S=A.findIndex((be)=>be.id===J);if(S===-1)return;A.splice(S,1),h.totalItems=A.length,c.rebuild(h.totalItems),Ae()}$e()},removeItems(J){if(B){let Oe=0;for(let We of J)if(B(We)>=0)Oe++;if(Oe>0)$e();return Oe}let S=new Set(J),be=A.length;A=A.filter((Oe)=>!S.has(Oe.id));let Me=be-A.length;if(Me>0)h.totalItems=A.length,c.rebuild(h.totalItems),Ae(),h.renderPending=!0,ve();return Me},getItemAt(J){if(v.indexMap){let be=k.get("_getLoadedItem");return be?be(J):A[J]}let S=k.get("_getItemAtLayout");if(S){let be=k.get("_dataToLayoutIndex");return S(be?be(J):J)}return ce?ce(J):A[J]},getIndexById(J){if(Ie)return Ie(J);return A.findIndex((S)=>S.id===J)},scrollToIndex(J,S="start"){let be=U?U():A.length;if(be===0){ge={index:J,alignOrOptions:S};return}let Me=typeof S==="string"?S:S.align??"start",Oe=typeof S==="object"?S.behavior:void 0,We=typeof S==="object"?S.duration:void 0,Xe=typeof S==="object"?S.easing:void 0;if(Y&&Y(J,Me,Oe,We,Xe)!==!1)return;let Ye=Math.max(0,Math.min(J,be-1)),Qe=c.getOffset(Ye),nt=c.getSize(Ye),at=h.containerSize,wn=c.getTotalSize(),$t=o.mainAxisPadding,kn=Math.max(0,wn+$t-at),Ze;if(X)Ze=X(Ye,c,at,be,Me);else{let Rn=o.startPadding;switch(Me){case"center":Ze=Rn+Qe-(at-nt)/2;break;case"end":Ze=Qe+nt+$t-at;break;default:Ze=Qe}Ze=Math.max(0,Math.min(Ze,kn))}if(Oe==="smooth")Be.smoothScrollTo(Ze,We??mt,V??void 0,Xe);else Te(Ze)},getScrollPosition(){return Ce.getPixelEquivalent()},on:R.on.bind(R),off:R.off.bind(R),destroy(){if(h.destroyed)return;if(h.destroyed=!0,Pe)Pe=!1,f.root.classList.remove(Le);if(Ve!==null)cancelAnimationFrame(Ve),Ve=null;if(b!==null)clearTimeout(b),b=null;Be.detach(),He?.disconnect(),f.content.removeEventListener("click",_e),f.content.removeEventListener("dblclick",me),f.content.removeEventListener("contextmenu",Ee),f.root.removeEventListener("keydown",we);let J=[];P(J);for(let[,S]of x)S.remove();if(x.clear(),L.clear(),f.root.remove(),R.emit("destroy",void 0),R.clear(),J.length>0)for(let S of J)console.error("vlist: error during destroy:",S)}};for(let[J,S]of k){if(J.startsWith("_"))continue;Ne[J]=S}return Ne}var pn="_getScrollPadding",Jn={start:0,end:0};function bt(e){let t;return()=>{if(t===void 0)t=e.hooks.get("_getScrollPadding")??null;return t?t():Jn}}var bn=(e)=>e==null?0:typeof e==="function"?e():e;function At(e){let t=e?.scrollPadding,r,i;return{name:"page",priority:5,setup(o){let{dom:n,config:s,emitter:l}=o,w=o.sizes.cache,p=s.axis.primary==="x",a=window,z=o.getState();if(o.scroll.disableResize(),n.root.style.overflow="visible",n.root.style.height="auto",p)n.viewport.style.overflowX="visible",n.viewport.style.overflowY="visible";else n.viewport.style.overflow="visible";n.viewport.classList.remove(`${s.classPrefix}-viewport--custom-scrollbar`);let R=!1,v=!1;o.scroll.setSource({onContentSize(c){if(c>It&&!v){let L=`vlist: page() native document size ${c}px exceeds the ${It}px limit. Use the viewport-scrolled default for larger lists. See https://vlist.io/docs/rfcs/RFC-014-Scroll-Input-Model`;if(!R)throw i?.(),r?.(),n.root.remove(),Error(L);v=!0,console.warn(L)}R=!0},write(c){let L=n.viewport.getBoundingClientRect(),D=(p?L.left+a.scrollX:L.top+a.scrollY)+c;if(p)a.scrollTo({left:D,top:a.scrollY,behavior:"instant"});else a.scrollTo({left:a.scrollX,top:D,behavior:"instant"});o.scroll.commit(c)}}),z.containerSize=p?a.innerWidth:a.innerHeight,z.crossSize=p?a.innerHeight:a.innerWidth;let G=()=>{let c=n.viewport.getBoundingClientRect(),L=Math.max(0,p?-c.left:-c.top);if(Math.abs(L-o.scroll.getPixelEquivalent())<0.5)return;o.scroll.commit(L)};a.addEventListener("scroll",G,{passive:!0}),i=()=>a.removeEventListener("scroll",G);let{innerWidth:T,innerHeight:f}=a,u=()=>{let{innerWidth:c,innerHeight:L}=a;if((p?Math.abs(c-T):Math.abs(L-f))<1)return;T=c,f=L,z.containerSize=p?c:L,z.crossSize=p?L:c,o.render.force(),l.emit("resize",{width:c,height:L})};if(a.addEventListener("resize",u),r=()=>a.removeEventListener("resize",u),t){let c=()=>({start:bn(p?t.left:t.top),end:bn(p?t.right:t.bottom)});o.hooks.method(pn,c),o.scroll.setToPosFn((L,D,h,A,H)=>{let{start:x,end:I}=c();if(A===0)return 0;let m=Math.max(0,Math.min(L,A-1)),C=D.getOffset(m),F=D.getSize(m),O=D.getTotalSize(),re=Math.max(0,O-h+I),ie;switch(H){case"center":ie=C-x-(h-x-I-F)/2;break;case"end":ie=C-h+F+I;break;default:ie=C-x}return Math.max(-x,Math.min(ie,re))}),o.hooks.method("_scrollItemIntoView",(L)=>{let D=p?a.innerWidth:a.innerHeight,{start:h,end:A}=c(),H=n.viewport.getBoundingClientRect(),x=p?a.scrollX:a.scrollY,I=p?H.left:H.top,m=I+x,C=w.getOffset(L),F=w.getSize(L),O=I+C,re=D-A,ie=x;if(O<h)ie=m+C-h;else if(O+F>re)ie=m+C+F-re;if(ie!==x)if(p)a.scrollTo({left:ie,top:a.scrollY,behavior:"instant"});else a.scrollTo({left:a.scrollX,top:ie,behavior:"instant"})})}o.hooks.onDestroy(()=>{i?.(),r?.()})},destroy(){i?.(),r?.(),i=void 0,r=void 0}}}function wt(e){let t=e?.gap??0,r=null,i=null,o,n,s,l,w,p=new Map,a=new Set,z=new WeakMap,R=0,v=!1,G=!1,T=!1,f=2;function u(I){return p.get(I)??w}function c(I){return p.has(I)&&!a.has(I)}function L(I){if(!i||o.destroyed)return;if(I===void 0){if(p.size===0)return;p.clear(),a.clear(),i.sizes.rebuild(),H()}else{if(!p.has(I))return;a.add(I)}i.render.force()}function D(){return Math.max(0,i.sizes.cache.getTotalSize()+i.config.mainAxisPadding-o.containerSize)}function h(){let I=D();return I>0&&n.getPixelEquivalent()>=I-f}function A(){let I=D();if(I>n.getPixelEquivalent())i.scroll.to(I)}function H(){i.render.contentSize(i.sizes.cache.getTotalSize())}function x(I,m){let C=i;if(C.hooks.get("_setSizeCacheBase"))C.sizes.rebuild();else C.sizes.cache.invalidate(I,m)}return{name:"autosize",priority:5,setup(I){if(n=I.scroll,i=I,o=I.getState(),s=I.config.axis.primary==="x",l=s?"width":"height",t===0)t=I.config.gap;w=typeof I.sizes.rawSpec==="function"?I.sizes.rawSpec(0)+t:I.sizes.rawSpec+t,I.sizes.setConfig(u,t),r=new ResizeObserver((re)=>{if(o.destroyed||!i)return;let ie=!1,le=-1,b=-1,E=I.sizes.cache.indexAtOffset(n.getPixelEquivalent());for(let P of re){let U=P.target,V=z.get(U);if(V===void 0)continue;if(U.getAttribute("data-index")!==String(V)){r.unobserve(U);continue}if(c(V))continue;let de=P.borderBoxSize?.[0],pe;if(de)pe=s?de.inlineSize:de.blockSize;else{let te=U.getBoundingClientRect();pe=s?te.width:te.height}if(pe<=0)continue;let fe=pe+t,N=p.has(V),ce=p.get(V)??w;if(p.set(V,fe),a.delete(V),!N||fe!==ce){if(ie=!0,le<0||V<le)le=V;if(V>b)b=V}if(V<E&&fe!==ce)R+=fe-ce;r.unobserve(U),U.style[l]=`${pe}px`}if(!ie)return;let k=h();if(x(le,b),R)I.scroll.shiftBy(R),R=0;let y=o.scrollDirection!==0,ee=o.totalItems>0&&o.prevRangeEnd>=o.totalItems-1,g=G&&!T;if(g||k||ee||T||!y){if(H(),v=!1,g||k)A()}else v=!0;I.render.force()}),I.scroll.setToIndexFn((re,ie,le,b,E)=>{let k=re>=o.totalItems-1&&ie==="end";if(G=k,T=!1,!k)return!1;let y=I.config.mainAxisPadding,ee=()=>{let g=I.sizes.cache.getTotalSize();return Math.max(0,g+y-o.containerSize)};if(le==="smooth")T=!0,I.scroll.smoothTo(ee,b??300,E,()=>{if(T=!1,v)H(),v=!1;A()});else I.scroll.to(ee())});let m=()=>{G=!1},C=I.dom.viewport;C.addEventListener("wheel",m,{passive:!0}),C.addEventListener("touchstart",m,{passive:!0}),I.hooks.onDestroy(()=>{C.removeEventListener("wheel",m),C.removeEventListener("touchstart",m)});let F=I.dom.content,O=(re)=>{let ie=re.target;if(!ie||ie===F)return;let le=ie.closest("[data-index]");if(!le||le.parentNode!==F)return;let b=Number(le.getAttribute("data-index"));if(c(b))L(b)};F.addEventListener("load",O,!0),F.addEventListener("error",O,!0),I.hooks.onDestroy(()=>{F.removeEventListener("load",O,!0),F.removeEventListener("error",O,!0)}),I.hooks.method("isMeasured",c),I.hooks.method("remeasure",L),I.hooks.method("setMeasuredSize",(re,ie)=>{p.set(re,ie),x(re,re)}),I.hooks.method("getMeasuredCount",()=>p.size),I.hooks.onDestroy(()=>{if(r)r.disconnect(),r=null})},hooks:{onCommit(I){if(!r||!i)return;for(let m=0;m<I.visibleCount;m++){let C=I.visibleIndices[m];if(c(C))continue;let F=i.dom.renderedElement(C);if(!F)continue;F.style[l]="",z.set(F,C),r.observe(F)}},onIdle(){if(!i||!v)return;let I=h();if(H(),v=!1,I)A(),i.render.force()}},destroy(){if(r)r.disconnect(),r=null;p.clear(),a.clear(),G=!1,T=!1,i=null}}}var hn=(e={})=>{let{chunkSize:t=100,maxCachedItems:r=5000,evictionBuffer:i=200,onEvict:o}=e,n=new Map,s=0,l=0,w=(b)=>{let E=n.get(b);if(!E)E={items:Array(t),count:0,lastAccess:Date.now()},n.set(b,E);else E.lastAccess=Date.now();return E},p=(b)=>Math.floor(b/t),a=(b)=>b%t,z=()=>s,R=(b)=>{s=b},v=(b)=>{if(b<0||b>=s)return;let E=p(b),k=n.get(E);if(!k)return;return k.items[a(b)]},G=(b)=>{if(b<0||b>=s)return!1;let E=p(b),k=n.get(E);if(!k)return!1;return k.items[a(b)]!==void 0},T=(b,E)=>{let k=p(b),y=w(k),ee=a(b),g=y.items[ee]===void 0;if(y.items[ee]=E,g)y.count++,l++;if(b>=s)s=b+1},f=(b,E)=>{for(let k=0;k<E.length;k++){let y=E[k];if(y!==void 0)T(b+k,y)}},u=(b,E)=>{if(b<0||b>s)return;let k=p(b),y=Array.from(n.keys()).filter((V)=>V>=k).sort((V,de)=>V-de),ee=[];for(let V of y){let de=n.get(V),pe=V*t;for(let fe=0;fe<t;fe++){if(de.items[fe]===void 0)continue;let N=pe+fe;if(N<b)continue;ee.push({oldIndex:N,item:de.items[fe]})}}for(let{oldIndex:V}of ee){let de=p(V),pe=n.get(de);if(!pe)continue;let fe=a(V);if(pe.items[fe]!==void 0){if(pe.items[fe]=void 0,pe.count--,l--,pe.count===0)n.delete(de)}}s++;for(let{oldIndex:V,item:de}of ee){let pe=V+1,fe=p(pe),N=w(fe),ce=a(pe);N.items[ce]=de,N.count++,l++}let g=p(b),P=w(g),U=a(b);P.items[U]=E,P.count++,l++},c=(b)=>{if(b<0||b>=s)return!1;let E=p(b),k=n.get(E),y=a(b);if(!(k!==void 0&&k.items[y]!==void 0))return!1;let g=E,P=Array.from(n.keys()).filter((V)=>V>=g).sort((V,de)=>V-de),U=[];for(let V of P){let de=n.get(V),pe=V*t;for(let fe=0;fe<t;fe++){if(de.items[fe]===void 0)continue;let N=pe+fe;if(N<=b)continue;U.push({oldIndex:N,item:de.items[fe]})}}if(k.items[y]=void 0,k.count--,l--,k.count===0)n.delete(E);for(let{oldIndex:V}of U){let de=p(V),pe=n.get(de);if(!pe)continue;let fe=a(V);if(pe.items[fe]!==void 0){if(pe.items[fe]=void 0,pe.count--,l--,pe.count===0)n.delete(de)}}for(let{oldIndex:V,item:de}of U){let pe=V-1,fe=p(pe),N=w(fe),ce=a(pe);N.items[ce]=de,N.count++,l++}return s--,!0},L=(b,E)=>{let k=[];for(let y=b;y<=E&&y<s;y++)k.push(v(y));return k},D=(b,E)=>{for(let k=b;k<=E&&k<s;k++)if(!G(k))return!1;return!0},h=()=>{let b=[],E=null,k=Array.from(n.keys()).sort((y,ee)=>y-ee);for(let y of k){let ee=n.get(y);if(!ee)continue;let g=y*t;for(let P=0;P<t;P++){let U=g+P;if(U>=s)break;if(ee.items[P]!==void 0)if(E===null)E={start:U,end:U};else if(U===E.end+1)E.end=U;else b.push(E),E={start:U,end:U};else if(E!==null)b.push(E),E=null}}if(E!==null)b.push(E);return b},A=(b,E)=>{let k=[],y=null;for(let ee=b;ee<=E&&ee<s;ee++)if(!G(ee))if(y===null)y={start:ee,end:ee};else y.end=ee;else if(y!==null)k.push(y),y=null;if(y!==null)k.push(y);return k},H=(b)=>n.has(b),x=(b)=>{let E=n.get(b);if(!E)return!1;let k=b*t,y=Math.min(t,s-k);return E.count>=y},I=(b)=>{let E=n.get(b);if(E)E.lastAccess=Date.now()},m=(b,E)=>{if(b>E||n.size===0)return;let k=Date.now(),y=p(Math.max(0,b)),ee=p(Math.min(s-1,E));for(let g=y;g<=ee;g++){let P=n.get(g);if(P)P.lastAccess=k}},C=(b,E)=>{if(l<=r)return 0;let k=Math.max(0,b-i),y=Math.min(s-1,E+i),ee=p(k),g=p(y),P=0,U=[];for(let[V,de]of n)if(V<ee||V>g)P+=de.count,U.push(V),l-=de.count,n.delete(V);if(P>0&&o)o(P,U);return P},F=()=>{if(l<=r)return 0;let b=Array.from(n.entries()).sort(([,y],[,ee])=>y.lastAccess-ee.lastAccess),E=0,k=[];for(let[y,ee]of b){if(l<=r)break;E+=ee.count,l-=ee.count,k.push(y),n.delete(y)}if(E>0&&o)o(E,k);return E},O=()=>({totalItems:s,cachedItems:l,cachedChunks:n.size,chunkSize:t,maxCachedItems:r,memoryEfficiency:s>0?1-l/s:1}),re=()=>l,ie=()=>{n.clear(),l=0};return{chunkSize:t,maxCachedItems:r,getTotal:z,setTotal:R,get:v,has:G,set:T,setRange:f,insert:u,delete:c,getRange:L,isRangeLoaded:D,getLoadedRanges:h,findUnloadedRanges:A,getChunkIndex:p,isChunkLoaded:H,isChunkFullyLoaded:x,touchChunk:I,touchChunksForRange:m,evictDistant:C,evictToLimit:F,getStats:O,getCachedCount:re,clear:ie,reset:()=>{ie(),s=0}}};var vn=(e={})=>{let{maskCharacter:t=qt,maxSampleSize:r=Xt}=e,i=[],o=!1,n=(a)=>{if(o||a.length===0)return;let z=Math.min(a.length,r);for(let R=0;R<z;R++){let v=a[R];if(!v||typeof v!=="object")continue;let G={},T=!1;for(let[f,u]of Object.entries(v)){if(f.startsWith("_")||f==="id")continue;G[f]=String(u??"").length,T=!0}if(T)i.push(G)}o=!0},s=()=>o,l=(a)=>{let z={id:`${Ke}${a}`,[Ct]:!0,_index:a};if(i.length===0)return z.label=t.repeat(12),z;let R=i[a%i.length];for(let[v,G]of Object.entries(R))z[v]=t.repeat(Math.max(1,G));return z};return{analyzeStructure:n,hasAnalyzedStructure:s,generate:l,generateRange:(a,z)=>{let R=[];for(let v=a;v<=z;v++)R.push(l(v));return R},clear:()=>{i=[],o=!1}}},ht=(e)=>{if(!e||typeof e!=="object")return!1;return e[Ct]===!0};var Qn=50,yn=(e={})=>{let{adapter:t,initialItems:r,initialTotal:i,storage:o,placeholder:n,pageSize:s=Qn,maxConcurrent:l=0,onStateChange:w,onDataChange:p,onItemsLoaded:a,onItemsEvicted:z,onLoadError:R}=e,v=hn({...o,onEvict:(M,K)=>{z?.(M),C(),m()}}),G=null,T=()=>{if(!G)G=vn(n);return G},f=new Map,u=!1,c,L=!0,D,h,A=[],H=0,x=new Map,I=()=>{for(let M of x.values())M[1].abort();x.clear()},m=()=>{w?.(y())},C=()=>{p?.()},F=()=>{f.clear();let M=v.getLoadedRanges();for(let K of M)for(let ae=K.start;ae<=K.end;ae++){let d=v.get(ae);if(d&&!ht(d))f.set(d.id,ae)}},O=(M,K)=>{if(!ht(K))f.set(K.id,M)},re=(M)=>{f.delete(M)},ie=(M,K)=>`${M}-${K}`,le=()=>v.getTotal(),b=()=>v.getCachedCount(),E=()=>u,k=()=>L,y=()=>({total:v.getTotal(),cached:v.getCachedCount(),isLoading:u,pendingRanges:A,error:c,hasMore:L,cursor:D}),ee=()=>v,g=()=>T(),P=(M)=>{let K=v.get(M);if(K!==void 0)return K;if(M>=0&&M<v.getTotal())return T().generate(M);return},U=(M)=>{let K=f.get(M);if(K===void 0)return;return v.get(K)},V=(M)=>f.get(M)??-1,de=(M)=>{let K=v.get(M);return K!==void 0&&!ht(K)},pe=(M,K)=>{let ae=[],d=v.getTotal();v.touchChunksForRange(M,Math.min(K,d-1));for(let oe=M;oe<=K&&oe<d;oe++){let X=v.get(oe);if(X!==void 0)ae.push(X);else ae.push(T().generate(oe))}return ae},fe=(M)=>{v.setTotal(M),L=v.getCachedCount()<M,C(),m()},N=(M,K=0,ae)=>{if(t&&M.length>0){let d=T();if(!d.hasAnalyzedStructure())d.analyzeStructure(M)}for(let d=0;d<M.length;d++){let oe=M[d];if(oe!==void 0){let X=K+d;v.set(X,oe),O(X,oe)}}if(ae!==void 0)v.setTotal(ae);else if(K+M.length>v.getTotal())v.setTotal(K+M.length);if(v.getCachedCount()>=v.getTotal()&&v.getTotal()>0)L=!1;C(),m(),a?.(M,K,v.getTotal())},ce=(M,K)=>{let ae=v.get(M);if(!ae)return!1;let d=ae.id,oe={...ae,...K};if(v.set(M,oe),K.id!==void 0&&K.id!==d)re(d);return O(M,oe),C(),m(),!0},te=(M,K)=>{v.insert(K,M),F(),I(),C(),m()},B=(M)=>{let K=f.get(M);if(K===void 0)return!1;if(!v.delete(K))return!1;return F(),I(),C(),m(),!0},W=async(M,K)=>{if(!t)return;let ae=v.chunkSize,d=Math.floor(M/ae),oe=Math.floor(K/ae),X=ae*2;for(let[j,Z]of x){let ye=j.indexOf("-"),Te=parseInt(j.slice(0,ye),10);if(Math.abs(Te-M)>X)Z[1].abort(),x.delete(j)}let Y=[],ge=[];for(let j=d;j<=oe;j++){let Z=j*ae,ye=Z+ae-1,Te=ie(Z,ye);if(v.isChunkFullyLoaded(j))continue;let Le=x.get(Te);if(Le)ge.push(Le[0]);else Y.push({start:Z,end:ye})}if(Y.length===0){if(ge.length>0)await Promise.all(ge);return}if(l>0){let j=x.size+Y.length;if(j>l){let Z=(M+K)/2,ye=Math.min(j-l,x.size);while(ye>0){let Ce=null,Le=-1,Pe=null;for(let[Re,he]of x){let xe=Re.indexOf("-"),Ae=parseInt(Re.slice(0,xe),10),Se=parseInt(Re.slice(xe+1),10),ve=Math.abs((Ae+Se)/2-Z);if(ve>Le)Le=ve,Ce=Re,Pe=he[1]}if(Ce)Pe.abort(),x.delete(Ce);ye--}let Te=l-x.size;if(Y.length>Te)Y.sort((Ce,Le)=>{let Pe=Math.abs((Ce.start+Ce.end)/2-Z),Re=Math.abs((Le.start+Le.end)/2-Z);return Pe-Re}),Y.length=Math.max(0,Te)}}if(Y.length===0){if(ge.length>0)await Promise.all(ge);return}for(let j of Y){let Z=ie(j.start,j.end),ye=new AbortController,Te=(async()=>{A.push(j),u=!0,c=void 0,m();try{let Ce=j.end-j.start+1,Le={offset:j.start,limit:Ce,cursor:j.start===h?D:void 0,signal:ye.signal},Pe=await t.read(Le);if(N(Pe.items,j.start,Pe.total),Pe.cursor)D=Pe.cursor,h=j.start+Pe.items.length;let Re=j.start+Pe.items.length;if(Re>=H){if(H=Re,Pe.hasMore!==void 0)L=Pe.hasMore;else if(Pe.total!==void 0)L=Re<Pe.total}}catch(Ce){if(Ce?.name==="AbortError")return;c=Ce instanceof Error?Ce:Error(String(Ce)),R?.(c,j)}finally{x.delete(Z);let Ce=A.findIndex((Le)=>Le.start===j.start&&Le.end===j.end);if(Ce>=0)A.splice(Ce,1);u=x.size>0,m()}})();x.set(Z,[Te,ye]),ge.push(Te)}await Promise.all(ge)},ue=async(M,K)=>{if(v.isRangeLoaded(M,K))return;await W(M,K)},Ie=async()=>{if(!t)return;await W(0,s-1)},q=async()=>{if(!t||u||!L)return!1;let M=v.getCachedCount(),K=v.getTotal(),ae=M,d=Math.min(ae+s-1,K>0?K-1:ae+s-1);if(ae>=K&&K>0)return L=!1,!1;return await W(ae,d),v.getCachedCount()>M},_=async()=>{if(v.clear(),f.clear(),G)G.clear();I(),A=[],u=!1,D=void 0,h=void 0,L=!0,H=0,c=void 0,C(),m()},se=(M,K)=>{if(v.evictDistant(M,K)>0)F()},Q=()=>{v.clear(),f.clear(),D=void 0,h=void 0,c=void 0,A=[],u=!1,C(),m()},ne=()=>{if(v.reset(),f.clear(),G)G.clear();D=void 0,h=void 0,L=!0,H=0,c=void 0,A=[],u=!1,C(),m()};if(r&&r.length>0)N(r,0,i??r.length);else if(i!==void 0)v.setTotal(i),C(),m();return{getState:y,getTotal:le,getCached:b,getIsLoading:E,getHasMore:k,getStorage:ee,getPlaceholders:g,getItem:P,getItemById:U,getIndexById:V,isItemLoaded:de,getItemsInRange:pe,setTotal:fe,setItems:N,updateItem:ce,insertItem:te,removeItem:B,loadRange:W,ensureRange:ue,loadInitial:Ie,loadMore:q,reload:_,evictDistant:se,clear:Q,reset:ne}};function kt(e){let{adapter:t,total:r,autoLoad:i=!0,storage:o}=e,n=e.loading?.cancelThreshold??Wt,s=e.loading?.preloadThreshold??Nt,l=e.loading?.preloadAhead??Bt,w=e.loading?.maxConcurrent??Kt,p,a,z,R,v,G,T=null,f=null,u=null,c=0,L=!1,D=null,h=Tt,A=-1,H=-1,x=-1,I=-1,m=o?.chunkSize??ut,C=()=>{if(T=null,f!==null)clearTimeout(f),f=null},F=(y,ee)=>p.ensureRange(y,ee),O=(y,ee=ut)=>{R.emit("load:start",{offset:y,limit:ee})},re=(y)=>{R.emit("error",{error:y,context:"ensureRange"})},ie=()=>{T=null;let y={start:a.startIndex,end:a.startIndex+Math.max(0,a.visibleCount-1)};if(y.end<y.start)return;F(y.start,y.end).catch(re)},le=()=>{if(D!==null)clearTimeout(D),D=null},b=()=>{if(a.destroyed)return;let y=p.getTotal();if(a.visibleCount<=0||a.startIndex>=y)return;let ee=Math.min(a.startIndex+a.visibleCount-1,y-1);if(ee<a.startIndex)return;F(a.startIndex,ee).catch(re)},E=()=>{if(D!==null||a.destroyed)return;D=setTimeout(()=>{D=null,b()},h),h=Math.min(h*2,Ut)},k=()=>{le(),h=Tt};return{name:"data",priority:20,setup(y){a=y.getState(),z=y.sizes.cache,R=y.emitter,v=y.dom,G=y.render.force.bind(y);let ee=null;y.items.setTotalFn(()=>ee?.getTotal()??0),y.items.setIndexByIdFn((P)=>ee?.getIndexById(P)??-1),p=ee=yn({adapter:t,...r!==void 0&&{initialTotal:r},pageSize:o?.chunkSize??ut,maxConcurrent:w,...o&&{storage:{...o.chunkSize!==void 0&&{chunkSize:o.chunkSize},...o.maxCachedItems!==void 0&&{maxCachedItems:o.maxCachedItems},...o.evictionBuffer!==void 0&&{evictionBuffer:o.evictionBuffer}}},onDataChange:()=>{if(a.initialized){let P=p.getTotal(),U=p.getCached();if(a.totalItems=P,P!==A||U!==H)A=P,H=U,z.rebuild(P);y.render.contentSize(z.getTotalSize()),y.render.ifNeeded()}},onItemsLoaded:(P)=>{if(k(),a.initialized)y.render.contentSize(z.getTotalSize()),G(),R.emit("load:end",{items:P,total:p.getTotal()})},onLoadError:(P)=>{if(R.emit("error",{error:P,context:"load"}),a.initialized)y.render.ifNeeded();E()}}),y.items.setGetFn((P)=>p.getItem(P)),y.items.setRemoveFn((P)=>{let U=p.getIndexById(P);if(U<0)return-1;if(!p.removeItem(P))return-1;return U}),y.items.setInsertFn((P,U)=>{p.insertItem(P,U)}),y.items.setUpdateFn((P,U)=>{let V=p.getIndexById(P);if(V<0)return!1;return p.updateItem(V,U)}),y.hooks.method("reload",async()=>{if(T=null,x=-1,I=-1,k(),y.render.force(),await p.reload(),y.scroll.to(0),i)O(0),await p.loadInitial(),y.render.force()}),y.hooks.method("loadVisibleRange",async()=>{T=null,y.render.force();let P=p.getTotal();if(a.visibleCount>0&&a.startIndex<P){let U=Math.min(a.startIndex+a.visibleCount-1,P-1);O(a.startIndex,U-a.startIndex+1),await F(a.startIndex,U)}}),y.hooks.method("loadInitial",async()=>{O(0),await p.loadInitial(),y.render.force()}),y.hooks.method("getTotal",()=>p.getTotal()),y.hooks.method("setTotal",(P)=>{p.setTotal(P)}),y.hooks.method("_getTotal",()=>p.getTotal()),y.hooks.method("_setTotal",(P)=>{p.setTotal(P)}),y.hooks.method("_cancelAutoLoad",()=>{L=!0}),y.hooks.method("_getLoadedItem",(P)=>p.getStorage().get(P)),y.hooks.method("_getItem",(P)=>p.getItem(P)),y.hooks.method("_getLoadedCount",()=>p.getCached()),R.on("load:start",()=>{v.root.setAttribute("aria-busy","true")}),R.on("load:end",()=>{v.root.removeAttribute("aria-busy")}),y.hooks.onDestroy(()=>{if(u!==null)clearTimeout(u),u=null;C(),le()}),R.on("velocity:change",({velocity:P})=>{c=Math.abs(P)});let g=()=>{if(a.destroyed)return;k(),b(),ie()};if(window.addEventListener("online",g),y.hooks.onDestroy(()=>{window.removeEventListener("online",g)}),i)queueMicrotask(()=>{if(L)return;O(0),p.loadInitial().catch((P)=>{R.emit("error",{error:P,context:"loadInitial"})})});else if(r!==void 0)p.setTotal(r)},hooks:{onAfterScroll(){if(a.destroyed)return;let y=a.startIndex+Math.max(0,a.visibleCount-1);if(c>n){if(f!==null)clearTimeout(f),f=null;T={start:a.startIndex,end:y};return}if(c>s){let P=Math.floor(a.startIndex/m),U=Math.floor(y/m);if(P!==x||U!==I){if(x=P,I=U,y>=a.startIndex)F(a.startIndex,y).catch(re)}let V=a.startIndex,de=y,pe=a.scrollDirection;if(pe>0)de=Math.min(de+l,p.getTotal()-1);else if(pe<0)V=Math.max(0,V-l);if(T={start:V,end:de},f!==null)clearTimeout(f);f=setTimeout(()=>{if(f=null,a.destroyed||!T)return;let{start:fe,end:N}=T;if(T=null,N>=fe)F(fe,N).catch(re)},100);return}C();let ee=Math.floor(a.startIndex/m),g=Math.floor(y/m);if(ee!==x||g!==I){if(x=ee,I=g,y>=a.startIndex)F(a.startIndex,y).catch(re)}},onIdle(){if(a.destroyed)return;c=0,x=-1,I=-1,ie(),C()},onResize(){if(a.destroyed)return;let y=p.getTotal();if(y<=0)return;if(a.visibleCount<=0||a.startIndex>=y)return;let ee=Math.min(a.startIndex+a.visibleCount-1,y-1);if(ee<a.startIndex)return;O(a.startIndex,ee-a.startIndex+1),F(a.startIndex,ee).catch(re)}},destroy(){if(u!==null)clearTimeout(u);C(),le()}}}var Sn=(e)=>{let t=Math.max(1,Math.floor(e.columns)),r=e.gap??0,i=e.isHeaderFn,o={row:0,col:0},n=(T)=>{if(T<=0)return 0;if(!i)return Math.ceil(T/t);let f=0,u=0,c=0;for(let L=0;L<T;L++)if(i(L)){if(c++,u)f++,u=0;f++,u=0}else if(u++,u>=t)f++,u=0;if(u)f++;return f},s=(T)=>(o.row=l(T),o.col=w(T),o),l=(T)=>{if(!i)return Math.floor(T/t);let f=0,u=0;for(let c=0;c<=T;c++)if(i(c)){if(u)f++,u=0;if(c===T)return f;f++,u=0}else{if(c===T)return f;if(u++,u>=t)f++,u=0}return f},w=(T)=>{if(!i)return T%t;if(i(T))return 0;let f=0;for(let u=0;u<=T;u++)if(i(u))f=0;else{if(u===T)return f;if(f++,f>=t)f=0}return f},p=(T,f,u,c)=>{if(u<=0){c.start=0,c.end=-1;return}if(!i){c.start=Math.max(0,T*t),c.end=Math.min(u-1,(f+1)*t-1);return}let L=a(T,f,u);c.start=L.start,c.end=L.end},a=(T,f,u)=>{if(u<=0)return{start:0,end:-1};if(!i){let A=Math.max(0,T*t),H=Math.min(u-1,(f+1)*t-1);return{start:A,end:H}}let c=-1,L=-1,D=0,h=0;for(let A=0;A<u;A++){if(i(A)){if(h)D++,h=0;if(D>=T&&D<=f){if(c<0)c=A;L=A}D++,h=0}else{if(D>=T&&D<=f){if(c<0)c=A;L=A}if(h++,h>=t)D++,h=0}if(D>f&&!h)break}if(c<0)return{start:0,end:-1};return{start:c,end:L}},z=(T,f,u)=>{if(f<0||f>=t)return-1;let c=T*t+f;if(c<0||c>=u)return-1;return c},R=(T)=>{let f=(t-1)*r;return Math.max(0,(T-f)/t)};return{get columns(){return t},get gap(){return r},update:(T)=>{if(T.columns!==void 0)t=Math.max(1,Math.floor(T.columns));if(T.gap!==void 0)r=T.gap;if(T.isHeaderFn!==void 0)i=T.isHeaderFn},getTotalRows:n,getPosition:s,getRow:l,getCol:w,getItemRange:a,fillItemRange:p,getItemIndex:z,getColumnWidth:R,getColumnOffset:(T,f)=>{let u=R(f);return T*(u+r)}}};function et(e,t,r,i,o){if(r==="smooth")e.smoothTo(t,i??mt,o);else e.to(t)}var je={selected:!1,focused:!1};function Rt(e){if(!e.columns||e.columns<1)throw Error("[vlist] grid: columns must be >= 1");let t,r,i,o,n=0,s,l=null,w=null,p=-1,a,z,R,v,G,T,f=null,u=0,c=0,L=0,D=0,h=new Map,A=0,H=0,x=0,I=0,m=null,C=!1,F="",O="",re="",ie={start:0,end:-1},le=-1,b=-1,E=-1,k=!0,y,ee=!1;function g(){let te=(H-1)*x;I=Math.max(0,(A-te)/H)}function P(){if(C)return;C=!0,m=f?.()??null}function U(){if(w!==null||l===null)return;w=l.dom.content.getAttribute("role")==="listbox"}function V(){return t.getTotalRows(i.totalItems)}function de(te,B){let W=te/H|0,Ie=(te-W*H)*(I+x)+u,q=r.getOffset(W)-B+L;if(v)return`translate(${Math.round(q)}px, ${Math.round(Ie)}px)`;return`translate(${Math.round(Ie)}px, ${Math.round(q)}px)`}function pe(te,B){let W=r.getSize(B)-x;if(v)te.style.width=`${W}px`,te.style.height=`${I}px`;else te.style.width=`${I}px`,te.style.height=`${W}px`}function fe(te,B,W){if(m)m(W,je);else je.selected=!1,je.focused=!1;let ue=z(B,W,je);if(typeof ue==="string")te.innerHTML=ue;else te.innerHTML="",te.appendChild(ue);qe(te)}function N(){if(i.destroyed)return;let te=o.getRenderOrigin(),B=o.getPixelEquivalent(),W=i.containerSize;if(!k&&B===le&&W===b&&te===n)return;le=B,b=W,k=!1;let ue=V();if(W<=0||ue===0)return;P(),U();let Ie=r.indexAtOffset(B),q=r.indexAtOffset(B+W);if(q<ue-1)q++;Ie=Math.max(0,Ie),q=Math.min(ue-1,Math.max(0,q));let _=Math.max(0,Ie-T),se=Math.min(ue-1,q+T);if(_===i.prevRangeStart&&se===i.prevRangeEnd&&!i.renderPending&&te===n)return;t.fillItemRange(_,se,i.totalItems,ie);let{start:Q,end:ne}=ie;for(let[ae,d]of h)if(ae<Q||ae>ne)d.el.remove(),s.release(d.el),h.delete(ae);if(w&&i.totalItems!==p){p=i.totalItems;let ae=String(i.totalItems);for(let[,d]of h)d.el.setAttribute("aria-setsize",ae)}for(let ae=Q;ae<=ne;ae++){let d=R(ae);if(!d)continue;let oe=ae/H|0,X=ae-oe*H,Y=h.get(ae);if(Y===void 0){let Z=s.acquire();if(Z.className=F,Z.setAttribute("data-index",String(ae)),Z.setAttribute("data-id",String(d.id)),Z.setAttribute("role",w?"option":"listitem"),w)Z.id=`${G}-item-${ae}`,Z.setAttribute("aria-posinset",String(ae+1)),Z.setAttribute("aria-setsize",String(i.totalItems));fe(Z,d,ae),Y={el:Z,lastItem:d},h.set(ae,Y),a.appendChild(Z)}else if(Y.lastItem!==d)Y.el.setAttribute("data-id",String(d.id)),Y.lastItem=d,fe(Y.el,d,ae);else if(m)m(ae,je);if(m)if(Y.el.classList.toggle(O,je.selected),Y.el.classList.toggle(re,je.focused),je.selected)Y.el.setAttribute("aria-selected","true");else Y.el.removeAttribute("aria-selected");pe(Y.el,oe);let ge=X*(I+x)+u,j=r.getOffset(oe)-te+L;Y.el.style.transform=v?`translate(${Math.round(j)}px, ${Math.round(ge)}px)`:`translate(${Math.round(ge)}px, ${Math.round(j)}px)`}let M=r.getTotalSize();if(M!==E)E=M,l?.render.contentSize(M);i.prevRangeStart=_,i.prevRangeEnd=se,n=te,i.renderPending=!1;let K=ne-Q+1;i.visibleCount=Math.min(K,i.capacity),i.startIndex=Q;for(let ae=0;ae<i.visibleCount;ae++){let d=Q+ae,oe=d/H|0;i.visibleIndices[ae]=d,i.visibleOffsets[ae]=r.getOffset(oe),i.visibleSizes[ae]=r.getSize(oe)}}function ce(){if(i.destroyed)return;y(V()),E=-1,i.prevRangeStart=-1,i.prevRangeEnd=-1,i.renderPending=!0,k=!0,N()}return{name:"grid",priority:10,conflicts:["masonry","table","autosize"],setup(te){o=te.scroll,H=Math.max(1,Math.floor(e.columns)),x=e.gap??0,t=Sn({columns:e.columns,gap:x}),r=te.sizes.cache,i=te.getState(),s=te.pool,l=te,a=te.dom.content,z=te.template,v=te.config.axis.primary==="x",G=te.config.classPrefix,T=te.config.overscan,R=te.items.at.bind(te),f=()=>te.render.getStateFn(),F=`${G}-item ${G}-grid-item`,O=`${G}-item--selected`,re=`${G}-item--focused`,u=te.config.crossPadStart,c=te.config.crossAxisPadding,L=te.config.startPadding,D=te.config.mainAxisPadding,A=i.crossSize-c,g();let B=te.sizes.rawSpec,W;ee=typeof B==="function";function ue(se,Q,ne,M){let K=se*Q;if(K>=i.totalItems)return W+ne;return B(K,M)+ne}if(typeof B==="function"){let Q={columnWidth:t.getColumnWidth(A),columns:e.columns,gap:x};W=i.totalItems>0?B(0,Q):0,te.sizes.setConfig((ne)=>(Q.columnWidth=t.getColumnWidth(A),ue(ne,e.columns,x,Q)),x)}else if(W=B,x>0)te.sizes.setConfig(W+x,x);let Ie=null,q=r.rebuild;function _(){if(r.rebuild===Ie)return;q=r.rebuild,y=(se)=>q(se),Ie=(se)=>{y(Math.ceil(se/H))},r.rebuild=Ie}te.hooks.method("_setSizeCacheBase",(se)=>{q=se,y=(Q)=>q(Q)}),_(),y(V()),te.items.setTotalFn(()=>i.totalItems),te.hooks.method("_getTotal",()=>i.totalItems),te.dom.root.classList.add(`${G}--grid`),te.render.setFn(N,ce),te.hooks.method("getGridLayout",()=>t),te.hooks.method("_getRowGap",()=>t.gap),te.hooks.method("updateGrid",(se)=>{if(se.columns!==void 0){if(!Number.isInteger(se.columns)||se.columns<1)throw Error("[vlist] updateGrid: columns must be >= 1")}if(se.gap!==void 0&&se.gap<0)throw Error("[vlist] updateGrid: gap must be >= 0");if(t.update(se),se.columns!==void 0)H=Math.max(1,Math.floor(se.columns));if(se.gap!==void 0)x=se.gap;if(se.gap!==void 0||se.columns!==void 0){let Q=t.gap;if(typeof B==="function"){let ne={columnWidth:t.getColumnWidth(A),columns:t.columns,gap:Q};te.sizes.setConfig((M)=>(ne.columnWidth=t.getColumnWidth(A),ue(M,t.columns,Q,ne)),Q)}else te.sizes.setConfig(W+Q,Q);_(),y(V())}if(se.columns!==void 0)te.nav.set({ud:t.columns});A=i.crossSize-c,g(),ce()}),te.scroll.setToIndexFn((se,Q,ne,M,K)=>{let ae=t.getRow(se),d=V();if(d===0)return!1;let oe=Math.max(0,Math.min(ae,d-1)),X=r.getOffset(oe)+L,Y=r.getSize(oe),ge=i.containerSize,j=r.getTotalSize()+D,Z=Math.max(0,j-ge),ye;switch(Q){case"center":ye=X-(ge-Y)/2;break;case"end":ye=X-ge+Y;break;default:ye=X}ye=Math.max(0,Math.min(ye,Z)),et(te.scroll,ye,ne,M,K)}),te.nav.set({total:()=>i.totalItems,ud:e.columns,lr:1,scrollIndex:(se)=>t.getRow(se)}),te.hooks.onDestroy(()=>{for(let[,se]of h)se.el.remove();h.clear(),w=null,p=-1,te.dom.root.classList.remove(`${G}--grid`)})},hooks:{onResize(te,B){let W=i.crossSize-c;if(Math.abs(W-A)<1)return;if(A=W,g(),ee){ce();return}let ue=o.getRenderOrigin();for(let[Ie,q]of h){let _=Ie/H|0;pe(q.el,_),q.el.style.transform=de(Ie,ue)}}},destroy(){h.clear()}}}var In=(e)=>{let t=Math.max(1,Math.floor(e.columns)),r=e.gap??0,i=e.containerSize,o=e.crossOffset??0,n=e.mainOffset??0,s=0,l=[],w=()=>{let u=(t-1)*r;s=Math.max(0,(i-u)/t),l=Array(t);let c=s+r;for(let L=0;L<t;L++)l[L]=o+L*c};w();let p=[],a=0,z=[],R=(u,c)=>{if(u<=0)return a=0,p=[],[];let L=Array(t).fill(n),D=Array(t);for(let H=0;H<t;H++)D[H]=[];let h=Array(u);for(let H=0;H<u;H++){let x=0,I=L[0];for(let F=1;F<t;F++){let O=L[F];if(O<I)I=O,x=F}let m=c(H),C=L[x];h[H]={index:H,x:l[x],y:C,lane:x,size:m,crossSize:s},D[x].push(H),L[x]=C+m+r}p=D;let A=0;for(let H=0;H<t;H++){let x=L[H],I=x>0?x-r:0;if(I>A)A=I}return a=A,h},v=(u)=>{if(u.length===0)return a;if(a)return a;let c=Array(t).fill(0);for(let D of u){let h=D.y+D.size,A=c[D.lane];if(h>A)c[D.lane]=h}let L=0;for(let D=0;D<t;D++)if(c[D]>L)L=c[D];return L},G=(u,c,L)=>{if(u.length===0||L<=c)return z.length=0,z;if(p.length===0||p.length!==t)return T(u,c,L);z.length=0;for(let D=0;D<t;D++){let h=p[D],A=h.length;if(!A)continue;let H=0,x=A;while(H<x){let I=H+x>>>1,m=u[h[I]];if(m.y+m.size<=c)H=I+1;else x=I}for(let I=H;I<A;I++){let m=u[h[I]];if(m.y>=L)break;z.push(m)}}return z},T=(u,c,L)=>{z.length=0;for(let D of u)if(D.y+D.size>c&&D.y<L)z.push(D);return z};return{get columns(){return t},get gap(){return r},get containerSize(){return i},update:(u)=>{let c=!1;if(u.columns!==void 0){let L=Math.max(1,Math.floor(u.columns));if(L!==t)t=L,c=!0}if(u.gap!==void 0&&u.gap!==r)r=u.gap,c=!0;if(u.containerSize!==void 0&&u.containerSize!==i)i=u.containerSize,c=!0;if(u.crossOffset!==void 0&&u.crossOffset!==o)o=u.crossOffset,c=!0;if(u.mainOffset!==void 0&&u.mainOffset!==n)n=u.mainOffset,c=!0;if(c)w()},calculateLayout:R,getTotalSize:v,getVisibleItems:G}};var Tn=(e,t,r)=>{let i=Array.from(t).sort((s,l)=>s-l);if(i.length<=1)return;let o=[];for(let s=0;s<i.length;s++){let l=r(i[s]);if(l)o.push(l)}if(o.length<=1)return;let n=e.firstChild;for(let s=0;s<o.length;s++){let l=o[s];if(l===n)n=n.nextSibling;else e.insertBefore(l,n)}};var eo=(e=200)=>{let t=[];return{acquire:()=>{let n=t.pop();if(n)return n;let s=document.createElement("div");return s.setAttribute("role","option"),s},release:(n)=>{if(n.remove(),t.length<e)n.className="",n.textContent="",n.removeAttribute("style"),n.removeAttribute("data-index"),n.removeAttribute("data-id"),n.removeAttribute("data-lane"),t.push(n)},clear:()=>{t.length=0}}},to=1,xn=(e,t,r,i=!1,o,n,s,l,w=()=>0)=>{let p=eo(),a=new Map,z=new Set,R=0,v="",G=-1,T=!1,f={selected:!1,focused:!1},u=(b,E)=>(f.selected=b,f.focused=E,f),c=`${r}-item ${r}-masonry-item`,L=`${r}-group-header`,D=`${r}-item--selected`,h=`${r}-item--focused`,A=(b,E)=>{if(typeof E==="string")b.innerHTML=E;else b.replaceChildren(E);qe(b)},H=(b,E,k)=>{b.classList.toggle(D,E),b.classList.toggle(h,k)},x=(b,E)=>{let k=Math.round(E.y-C);if(i)b.style.transform=`translate(${k}px, ${Math.round(E.x)}px)`;else b.style.transform=`translate(${Math.round(E.x)}px, ${k}px)`},I=(b,E)=>{if(i)b.style.width=`${E.size}px`,b.style.height=`${E.crossSize}px`;else b.style.width=`${E.crossSize}px`,b.style.height=`${E.size}px`},m=(b,E,k,y,ee)=>{let g=p.acquire(),P=E.__groupHeader,U=u(y,ee);if(g.className=P?L:c,g.dataset.index=String(b),g.dataset.id=String(E.id),g.dataset.lane=String(k.lane),P)g.setAttribute("role","presentation"),g.removeAttribute("aria-selected"),g.removeAttribute("aria-setsize"),g.removeAttribute("aria-posinset"),g.removeAttribute("id");else if(T){if(g.setAttribute("role","option"),g.ariaSelected=String(y),n)g.id=`${n}-item-${b}`;if(o){let de=o();if(de!==G)G=de,v=String(de);g.setAttribute("aria-setsize",v);let pe=s?s(b):b+1;g.setAttribute("aria-posinset",String(pe))}}else g.setAttribute("role","listitem"),g.removeAttribute("aria-selected"),g.removeAttribute("aria-setsize"),g.removeAttribute("aria-posinset"),g.removeAttribute("id");I(g,k);let V=t(E,b,U);return A(g,V),H(g,y,ee),x(g,k),{element:g,lastItem:E,lastSelected:y,lastFocused:ee,lastY:k.y-C,absY:k.y,lastX:k.x,lastSize:k.size,lastCrossSize:k.crossSize,lastSeenFrame:R}},C=0,F=(b,E,k,y,ee=w())=>{if(C=ee,R++,T=typeof l==="function"?l():l===!0,T&&o){let P=o();if(P!==G){G=P,v=String(P);for(let U of a.values())if(U.element.getAttribute("role")==="option")U.element.setAttribute("aria-setsize",v)}}z.clear();for(let P=0;P<E.length;P++)z.add(E[P].index);let g=null;for(let P=0;P<E.length;P++){let U=E[P],V=U.index,de=b(V);if(!de)continue;let pe=k.has(de.id),fe=V===y,N=a.get(V);if(N){let ce=N.lastItem!==de,te=N.lastSelected!==pe,B=N.lastFocused!==fe,W=N.lastY!==U.y-C||N.lastX!==U.x,ue=N.lastSize!==U.size||N.lastCrossSize!==U.crossSize;if(ce){let Ie=u(pe,fe),q=t(de,V,Ie);if(A(N.element,q),N.element.dataset.id=String(de.id),N.lastItem=de,!de.__groupHeader&&T){let se=s?s(V):V+1;N.element.setAttribute("aria-posinset",String(se))}}if(ce||te||B){if(H(N.element,pe,fe),T)N.element.ariaSelected=String(pe);else N.element.removeAttribute("aria-selected");N.lastSelected=pe,N.lastFocused=fe}if(ue)I(N.element,U),N.lastSize=U.size,N.lastCrossSize=U.crossSize;if(W)x(N.element,U),N.lastY=U.y-C,N.absY=U.y,N.lastX=U.x}else{let ce=m(V,de,U,pe,fe);if(!g)g=document.createDocumentFragment();g.appendChild(ce.element),a.set(V,ce)}}if(g)e.appendChild(g);for(let[P,U]of a)if(z.has(P))U.lastSeenFrame=R;else if(R-U.lastSeenFrame>to)p.release(U.element),a.delete(P);else{let V=Math.round(U.absY-C);if(V!==U.lastY){U.lastY=V;let de=Math.round(U.lastX);U.element.style.transform=i?`translate(${V}px, ${de}px)`:`translate(${de}px, ${V}px)`}}},O=()=>{for(let b of a.values())p.release(b.element);a.clear(),e.innerHTML=""};return{render:F,getElement:(b)=>a.get(b)?.element,updateItemClasses:(b,E,k)=>{let y=a.get(b);if(!y)return;let ee=y.lastSelected!==E,g=y.lastFocused!==k;if(ee||g)H(y.element,E,k),y.lastSelected=E,y.lastFocused=k},sortDOM:()=>{Tn(e,a.keys(),(b)=>a.get(b)?.element)},clear:O,destroy:()=>{O(),p.clear()}}};var no=100,oo=new Set;function _t(e){if(!e.columns||e.columns<1)throw Error("[vlist] masonry: columns must be >= 1");let t,r=null,i=0,o,n,s=0,l=null,w,p,a,z=[],R=-1,v=-1,G=!0,T=-1,f=-1,u=0,c=0,L=0,D=0,h={columnWidth:0,columns:0,gap:0,containerWidth:0},A=[],H=(_)=>P?P(_):A[_],x=null,I=null,m=!1,C=null;function F(){if(m||!l)return;m=!0,x=l.hooks.get("_getSelectedIds")??null,I=l.hooks.get("_getFocusedIndex")??null}function O(){if(C!==null)return C;if(!l)return!1;return C=l.dom.content.getAttribute("role")==="listbox",C}let re=[],ie=new Int32Array(0),le=[],b=null,E=null,k=null,y=null,ee=!1,g=!0,P=null,U=!1;function V(){if(U||!l)return;if(P=l.hooks.get("_getLoadedItem")??null,P)U=!0}function de(){if(ee||!l)return;if(b=l.hooks.get("_getItemLane")??null,E=l.hooks.get("_getItemY")??null,k=l.hooks.get("_getItemH")??null,y=l.hooks.get("_isGroupHeader")??null,b||y)ee=!0}function pe(){de();let _=t.columns,se=!!b;if(se){let Q=o.totalItems;re=Array(_);for(let ne=0;ne<_;ne++)re[ne]=[];if(ie.length<Q)ie=new Int32Array(Q);for(let ne=0;ne<Q;ne++){if(y?.(ne))continue;let M=b(ne);if(M<0||M>=_)continue;ie[ne]=re[M].length,re[M].push(ne)}}else{let Q=z.length;re=Array(_);for(let ne=0;ne<_;ne++)re[ne]=[];if(ie.length<Q)ie=new Int32Array(Q);for(let ne=0;ne<Q;ne++){let M=z[ne];ie[ne]=re[M.lane].length,re[M.lane].push(ne)}}le=Array(_);for(let Q=0;Q<_;Q++){let ne=re[Q],M=new Float64Array(ne.length);for(let K=0;K<ne.length;K++){let ae=ne[K];if(se&&E&&k){let d=E(ae),oe=k(ae);M[K]=d>=0?d+(oe>0?oe*0.5:0):0}else{let d=z[ae];M[K]=d.y+d.size*0.5}}le[Q]=M}}function fe(_,se){let Q=_.length;if(!Q)return-1;let ne=0,M=Q-1;while(ne<M){let K=ne+M>>1;if(_[K]<se)ne=K+1;else M=K}if(ne>0&&Math.abs(_[ne-1]-se)<=Math.abs(_[ne]-se))return ne-1;return ne}function N(_,se,Q){if(g)pe(),g=!1;let ne=!!b,M,K;if(ne){if(y?.(_))return _;if(M=b(_),M<0)return _;K=ie[_]}else{let X=z[_];if(!X)return _;M=X.lane,K=ie[_]}let ae=t.columns,d=re[M];switch(w?se==="ArrowDown"?"ArrowRight":se==="ArrowUp"?"ArrowLeft":se==="ArrowRight"?"ArrowDown":se==="ArrowLeft"?"ArrowUp":se:se){case"ArrowDown":if(K+1<d.length)return d[K+1];return _;case"ArrowUp":if(K>0)return d[K-1];return _;case"ArrowRight":{if(M>=ae-1)return _;let X=M+1,Y=re[X];if(!Y.length)return _;let ge=fe(le[X],le[M]?.[K]??0);return ge>=0?Y[ge]:_}case"ArrowLeft":{if(M<=0)return _;let X=M-1,Y=re[X];if(!Y.length)return _;let ge=fe(le[X],le[M]?.[K]??0);return ge>=0?Y[ge]:_}case"Home":return 0;case"End":{let X=re[ae-1];return X.length>0?X[X.length-1]:_}case"PageDown":{let X=o.containerSize,Y=ne?null:z[_],ge=Y&&Y.size>0?Y.size:150,j=Math.max(1,Math.floor(X/ge)),Z=Math.min(K+j,d.length-1);return d[Z]}case"PageUp":{let X=o.containerSize,Y=ne?null:z[_],ge=Y&&Y.size>0?Y.size:150,j=Math.max(1,Math.floor(X/ge)),Z=Math.max(0,K-j);return d[Z]}}return _}let ce=null;function te(){if(e.size)return(_)=>e.size(_,h);if(ce!==null&&typeof ce==="function")return(_)=>ce(_,h);return(_)=>l.sizes.cache.getSize(_)}function B(){let _=t.columns,se=t.gap;h.containerWidth=t.containerSize,h.columns=_,h.gap=se,h.columnWidth=Math.max(0,(t.containerSize-(_-1)*se)/_)}function W(){if(!l)return;B();let _=o.totalItems;z=t.calculateLayout(_,te()),T=_,g=!0,ue()}function ue(){if(!l)return;let _=t.getTotalSize(z)+D;if(_===f)return;f=_,l.render.contentSize(_)}function Ie(){if(o.destroyed||!l||!r)return;if(o.totalItems!==T)W();if(G)f=-1,ue();F(),V();let _=n.getRenderOrigin(),se=n.getPixelEquivalent(),Q=o.containerSize;if(!G&&se===R&&Q===v&&_===s)return;if(R=se,v=Q,G=!1,Q<=0||z.length===0)return;let ne=Math.max(0,se-a),M=se+Q+a,K=t.getVisibleItems(z,ne,M),ae=x?.()??oo,d=I?.()??-1;A=l.items.all(),r.render(H,K,ae,d,_),s=_;let oe=K.length,X=oe>0?K[0].index:0,Y=oe>0?K[oe-1].index:0;o.prevRangeStart=X,o.prevRangeEnd=Y,o.renderPending=!1;let ge=Math.min(oe,o.capacity);o.visibleCount=ge,o.startIndex=X;for(let j=0;j<ge;j++){let Z=K[j];o.visibleIndices[j]=Z.index,o.visibleOffsets[j]=Z.y,o.visibleSizes[j]=Z.size}}function q(){if(o.destroyed)return;f=-1,W(),o.prevRangeStart=-1,o.prevRangeEnd=-1,o.renderPending=!0,G=!0,Ie()}return{name:"masonry",priority:10,conflicts:["grid","table"],validateConfig(_){if(_.reverse)throw Error("[vlist] masonry: cannot be combined with reverse mode")},setup(_){i++,n=_.scroll,l=_,o=_.getState(),ce=_.sizes.rawSpec,w=_.config.axis.primary==="x",p=_.config.classPrefix,a=_.config.overscan*no,u=_.config.crossAxisPadding,c=_.config.crossPadStart,L=_.config.startPadding,D=_.config.endPadding;let se=o.crossSize-u;t=In({columns:e.columns,gap:e.gap??0,containerSize:se,crossOffset:c,mainOffset:L}),r=xn(_.dom.content,_.template,p,w,()=>o.totalItems,p,void 0,O,n.getRenderOrigin),_.dom.root.classList.add(`${p}--masonry`);let Q=bt(_);_.render.setFn(Ie,q),W(),_.hooks.method("getMasonryLayout",()=>t),_.hooks.method("updateMasonry",(M)=>{if(M.columns!==void 0&&M.columns<1)throw Error("[vlist] updateMasonry: columns must be >= 1");if(M.gap!==void 0&&M.gap<0)throw Error("[vlist] updateMasonry: gap must be >= 0");let K={};if(M.columns!==void 0)K.columns=M.columns;if(M.gap!==void 0)K.gap=M.gap;t.update(K),r?.clear(),q()}),_.scroll.setToIndexFn((M,K,ae,d,oe)=>{let X=z[M];if(!X)return!1;let Y=o.containerSize,ge=t.getTotalSize(z)+D,j=Math.max(0,ge-Y),Z=Q(),ye=X.y-Z.start;if(K==="center")ye=X.y-Z.start-(Y-Z.start-Z.end-X.size)/2;else if(K==="end"){if(ye=X.y-Y+X.size+Z.end,M>=o.totalItems-1&&X.y+X.size>j)ye=j+Z.end}let Te=Z.start>0?-Z.start:0;ye=Math.max(Te,Math.min(ye,j+Z.end)),et(_.scroll,ye,ae,d,oe)}),_.hooks.method("_scrollItemIntoView",(M)=>{let K=z[M];if(!K)return;let ae=n.getPixelEquivalent(),d=o.containerSize,oe=t.getTotalSize(z)+D,X=Math.max(0,oe-d),Y=Q(),ge=L+Y.start,j=D+Y.end,Z=K.y,ye=Z+K.size,Te=Y.start>0?-Y.start:0;if(Z-ge<ae)_.scroll.to(Math.max(Te,Z-ge));else if(ye+j>ae+d){let Ce=re[t.columns-1];if(Ce&&Ce.length>0&&M===Ce[Ce.length-1]&&Z>=X)_.scroll.to(X+Y.end);else _.scroll.to(Math.min(ye+j-d,X+Y.end))}}),_.nav.set({total:()=>o.totalItems,navigate:N});let ne=r;_.hooks.onDestroy(()=>{if(i=Math.max(0,i-1),ne?.destroy(),r===ne)r=null;if(i===0)C=null;_.dom.root.classList.remove(`${p}--masonry`)})},hooks:{onResize(_,se){if(!t||!l)return;let Q=o.crossSize-u;if(Math.abs(Q-t.containerSize)<1)return;t.update({containerSize:Q}),r?.clear(),q()},onIdle(){r?.sortDOM()}},destroy(){if(i>0)return;r?.destroy(),r=null,z=[],C=null,l=null}}}var it={key:"",groupIndex:0,headerLayoutIndex:0,firstDataIndex:0,count:0},Ht=(e,t)=>{let r=0,i=e.length-1;while(r<i){let o=r+i+1>>>1;if(e[o].headerLayoutIndex<=t)r=o;else i=o-1}return r},Ln=(e,t)=>{let r=0,i=e.length-1;while(r<i){let o=r+i+1>>>1;if(e[o].firstDataIndex<=t)r=o;else i=o-1}return r},Cn=(e,t,r)=>{if(e===0)return[];let i=[],o=null,n=0,s=0;for(let l=0;l<e;l++){let w=r?.(l);if(!w)continue;let p=t(l,w);if(o===null)o=p,n=0;else if(p!==o){let a=l-n;i.push({key:o,groupIndex:i.length,headerLayoutIndex:s,firstDataIndex:n,count:a}),s=s+1+a,o=p,n=l}}if(o!==null)i.push({key:o,groupIndex:i.length,headerLayoutIndex:s,firstDataIndex:n,count:e-n});return i};var En=(e,t,r)=>{let i=Cn(e,t.getGroupForIndex,r),o=e+i.length,n=t.header?.height??t.header?.width??t.headerHeight,s=typeof n==="number"?(T)=>n:(T)=>{let f=i[T];if(!f)return 0;return n(f.key,T)},l={type:"header",group:it},w={type:"item",dataIndex:0,group:it};return{get totalEntries(){return o},get groupCount(){return i.length},get groups(){return i},getEntry:(T)=>{if(i.length===0)return w.dataIndex=T,w.group=it,w;let f=Ht(i,T),u=i[f];if(T===u.headerLayoutIndex)return l.group=u,l;let c=T-u.headerLayoutIndex-1;return w.dataIndex=u.firstDataIndex+c,w.group=u,w},layoutToDataIndex:(T)=>{if(i.length===0)return T;let f=Ht(i,T),u=i[f];if(T===u.headerLayoutIndex)return-1;let c=T-u.headerLayoutIndex-1;return u.firstDataIndex+c},dataToLayoutIndex:(T)=>{if(i.length===0)return T;let f=Ln(i,T),u=i[f],c=T-u.firstDataIndex;return u.headerLayoutIndex+1+c},getGroupAtLayoutIndex:(T)=>{if(i.length===0)return it;let f=Ht(i,T);return i[f]},getGroupAtDataIndex:(T)=>{if(i.length===0)return it;let f=Ln(i,T);return i[f]},getHeaderHeight:s,rebuild:(T,f)=>{i=Cn(T,t.getGroupForIndex,f??r),o=T+i.length}}};var Vt=(e,t,r,i,o=0)=>{let n=r?"width":"height",s=document.createElement("div");return s.className=`${t}-sticky-header`,s.setAttribute("role","presentation"),s.setAttribute("aria-hidden","true"),s.style.cssText="z-index:5;pointer-events:none;overflow:hidden;"+(r?`position:absolute;top:0;bottom:0;left:${o||0}px`:`position:relative;top:${o||0}px`),s.style[n]=`${i}px`,e.insertBefore(s,e.firstChild),s},Pn=(e,t,r,i,o,n=!1,s=0,l,w)=>{let p=n?"width":"height",a=n?"height":"width",z=n?"X":"Y",R=(N,ce)=>{N.style[p]=`${ce}px`},v=l??Vt(e,o,n,0,s),G=()=>{let N=document.createElement("div");return N.className="sticky-group",N.style.position="absolute",N.style.willChange="transform",N.style[a]="100%",N},T=G(),f=G();v.append(T,f);let u=T,c=f,L=t.groups,D=[],h=[],A=[],H=0,x=()=>{L=t.groups,H=L.length,D=Array(H),h=Array(H),A=Array(H);for(let N=0;N<H;N++)D[N]=w?w(L[N].headerLayoutIndex):r.getOffset(L[N].headerLayoutIndex),h[N]=t.getHeaderHeight(N),A[N]=h[N]};x();let I=-1,m=0,C=0,F=-1,O=!1,re=0,ie=!1,le=(N,ce)=>{i(N,ce);let te=h[ce];return R(N,te),te},b=(N)=>{N.replaceChildren(),N.style.transform=""},E=(N)=>{if(N===I)return;if(I=N,m=0,C=0,N<0||N>=H){b(u);return}m=le(u,N),C=A[N],R(v,m),u.style.transform=""},k=(N)=>{if(N===re)return;re=N;let ce=Math.round(N);u.style.transform=`translate${z}(${ce}px)`,c.style.transform=`translate${z}(${ce+m}px)`},y=()=>{re=0,u.style.transform="",c.style.transform=""},ee=()=>{if(!ie)return;let N=u;u=c,c=N,I=F,m=I>=0?h[I]:0,C=I>=0?A[I]:0,R(v,m),b(c),F=-1,ie=!1,y()},g=()=>{if(!ie)return;b(c),F=-1,ie=!1,y()},P=!!l,U=()=>{if(O)return;if(O=!0,P)v.style.visibility="";else v.style.display=""},V=()=>{if(!O)return;if(O=!1,P)v.style.visibility="hidden";else v.style.display="none";b(u),I=-1,m=0,C=0,g()},de=(N)=>{if(H===0){if(ie)g();if(!O)U();E(-1);return}if(N<D[0]){V();return}let ce=0,te=H-1;while(ce<te){let W=ce+te+1>>>1;if(D[W]+A[W]<=N)ce=W;else te=W-1}if(!O)U();E(ce);let B=ce+1;if(B<H){let W=D[B]-N;if(W<=0&&W>-C){if(F!==B||!ie)F=B,le(c,B),ie=!0;let ue=C>0?W/C*m:W;k(ue)}else if(W<=-C){if(ie)ee()}else if(ie)g()}else if(ie)g()},pe=()=>{x();let N=I;if(I=-1,m=0,C=0,N>=0)E(N)},fe=()=>{v.remove(),I=-1,m=0,C=0,F=-1,O=!1,ie=!1};if(!l)v.style.display="none";return{update:de,refresh:pe,show:U,hide:V,destroy:fe}};var Je={selected:!1,focused:!1};function Ft(e){if(!e.getGroupForIndex)throw Error("[vlist] groups: getGroupForIndex is required");let t=e.header?.height??e.header?.width??e.headerHeight;if(t==null||typeof t==="number"&&t<=0)throw Error("[vlist] groups: header height/width must be a positive number or function");let r=e.header?.template??e.headerTemplate;if(!r)throw Error("[vlist] groups: header.template is required");let i=r,o,n=null,s,l,w,p,a,z=null,R,v,G,T=null,f,u,c,L=null,D,h,A=null,H=null,x=0,I=0,m=0,C=0,F=0,O=!1,re=null,ie=null,le=new Map,b=new Set,E=new Map,k=-1,y=-1,ee=0,g=!0,P=-1,U=0,V=null,de;function pe(){return o.totalEntries}function fe(){let d=l.totalItems;if(d===P)return;let oe=P>0;P=d,o.rebuild(d,T??G),de(o.totalEntries),W();let X=ce?ue():s.getTotalSize();if(z?.(X),n)n.refresh(),n.update(w.getPixelEquivalent());if(oe)_();let Y=A?.("_scrollbar:getInstance");if(Y)Y()?.updateBounds(X,l.containerSize)}let N=0,ce=null,te=null,B=null;function W(){if(x<=0){ce=null,te=null;return}N=((l.crossSize||a.clientWidth)-C-(x-1)*I)/x,ce=new Map;let X=o.totalEntries,Y=Array(X),ge=0;if(O){let j=re??ie??((Le)=>s.getSize(Le)),Z=new Float64Array(x),ye=[],Te=0,Ce=-1;for(let Le=0;Le<X;Le++){let Pe=o.getEntry(Le);if(Pe.type==="header"){let Re=0;for(let xe=0;xe<x;xe++)if(Z[xe]>Re)Re=Z[xe];if(Ce>=0)ye[Ce]=Te+Re;Te+=Re;let he=s.getSize(Le);ce.set(Le,{col:-1,rowY:Te}),Y[ge++]=[Le,Te,Te+he],Te+=he,Z.fill(0),Ce=Pe.group.groupIndex}else{let Re=0,he=Z[0];for(let Se=1;Se<x;Se++)if(Z[Se]<he)he=Z[Se],Re=Se;let xe=j(Pe.dataIndex),Ae=Te+Z[Re];ce.set(Le,{col:Re,rowY:Ae,h:xe}),Y[ge++]=[Le,Ae,Ae+xe],Z[Re]=Z[Re]+xe+I}}if(Ce>=0){let Le=0;for(let Pe=0;Pe<x;Pe++)if(Z[Pe]>Le)Le=Z[Pe];ye[Ce]=Te+Le}B=ye}else{B=null;let j=0,Z=0,ye=0;for(let Te=0;Te<X;Te++)if(o.getEntry(Te).type==="header"){if(Z>0&&ye>0)j+=ye;let Le=s.getSize(Te);ce.set(Te,{col:-1,rowY:j}),Y[ge++]=[Te,j,j+Le],j+=Le,Z=0,ye=0}else{let Le=Z%x,Pe=s.getSize(Te);if(Le===0){if(Z>0&&ye>0)j+=ye+I;ye=Pe}else if(Pe>ye)ye=Pe;ce.set(Te,{col:Le,rowY:j}),Y[ge++]=[Te,j,j+Pe],Z++}}Y.length=ge,te=Y}function ue(){if(!ce||ce.size===0)return s.getTotalSize();let d=o.totalEntries;if(O)return B?.[B.length-1]??0;let oe=0;for(let X=d-1;X>=0;X--){let Y=ce.get(X);if(Y){oe=Y.rowY+(Y.h??s.getSize(X));break}if(o.getEntry(X).type==="header"){oe=s.getOffset(X)+s.getSize(X);break}}return oe}function Ie(d,oe){if(ce){let Y=ce.get(d);if(Y){let ge=Y.col<0?0:m+Y.col*(N+I),j=Y.rowY-oe;if(f)return`translate(${Math.round(j)}px, ${Math.round(ge)}px)`;return`translate(${Math.round(ge)}px, ${Math.round(j)}px)`}}let X=s.getOffset(d)-oe;if(f)return`translate(${Math.round(X)}px, 0)`;return`translate(0, ${Math.round(X)}px)`}function q(d,oe){let X=ce?.get(oe);if(X){let ge=X.h??s.getSize(oe);if(X.col<0)if(f)d.style.width=`${ge}px`,d.style.height="";else d.style.height=`${ge}px`,d.style.width="100%";else if(f)d.style.width=`${ge}px`,d.style.height=`${N}px`;else d.style.height=`${ge}px`,d.style.width=`${N}px`;return}let Y=s.getSize(oe);if(f)d.style.width=`${Y}px`;else d.style.height=`${Y}px`}function _(){le.forEach((d)=>{d.remove();let oe=d.getAttribute("data-id");if(oe)E.set(oe,d);else p.release(d)}),le.clear(),b.clear()}function se(){if(E.size>0)E.forEach((d)=>p.release(d)),E.clear()}function Q(d,oe,X,Y){if(H===null)H=a.getAttribute("role")==="listbox";if(oe.type==="header"){let Ce=`__group_header_${oe.group.groupIndex}`;if(d.getAttribute("data-id")===Ce)return!0;if(d.className=h,d.setAttribute("role","presentation"),d.removeAttribute("aria-selected"),d.setAttribute("data-id",Ce),f&&n&&oe.group.groupIndex===0)d.style.display="none";else{d.style.display="";let Le=i(oe.group.key,oe.group.groupIndex);if(typeof Le==="string")d.innerHTML=Le;else d.innerHTML="",d.appendChild(Le)}return!0}let ge=oe.dataIndex,j=G(ge);if(!j)return d.innerHTML="",!1;let Z=j._isPlaceholder===!0,ye=String(j.id);if(!Z&&d.getAttribute("data-id")===ye){if(H)d.id=`${u}-item-${Y}`,d.setAttribute("aria-posinset",String(ge+1)),d.setAttribute("aria-setsize",String(l.totalItems));return!0}if(d.className=D,d.setAttribute("role",H?"option":"listitem"),d.setAttribute("data-id",ye),H)d.id=`${u}-item-${Y}`,d.setAttribute("aria-posinset",String(ge+1)),d.setAttribute("aria-setsize",String(l.totalItems));if(Z)d.classList.add(`${u}-item--placeholder`);if(X)X(Y,Je);else Je.selected=!1,Je.focused=!1;let Te=v(j,ge,Je);if(typeof Te==="string")d.innerHTML=Te;else d.innerHTML="",d.appendChild(Te);return qe(d),!Z}let ne=0;function M(){if(x<=0)return;let d=l.crossSize;if(d===ne)return;ne=d,W();let oe=ue();if(z?.(oe),n)n.refresh(),n.update(w.getPixelEquivalent());g=!0}function K(){if(l.destroyed)return;fe(),M();let d=w.getPixelEquivalent(),oe=l.containerSize,X=w.getRenderOrigin(),Y=X!==ee;if(!g&&d===k&&oe===y&&!Y)return;k=d,y=oe;let ge=g;g=!1;let j=pe();if(oe<=0||j===0){if(le.size>0)le.forEach((Se)=>{Se.remove(),p.release(Se)}),le.clear(),b.clear();return}let Z,ye;if(te){let Se=te,ve=Se.length,ze=0,ke=ve-1;while(ze<ke){let _e=ze+ke>>>1;if(Se[_e][2]<=d)ze=_e+1;else ke=_e}let Fe=ze;ke=ve-1;while(ze<ke){let _e=ze+ke+1>>>1;if(Se[_e][1]>=d+oe)ke=_e-1;else ze=_e}let $e=ze,De=Se[Fe][0],Be=Se[$e][0];for(let _e=De-1;_e>=0;_e--)if(o.getEntry(_e).type==="header"){De=_e;break}let Ue=c*x;Z=Math.max(0,De-Ue),ye=Math.min(j-1,Be+Ue)}else{let Se=s.indexAtOffset(d),ve=s.indexAtOffset(d+oe);if(ve<j-1)ve++;Se=Math.max(0,Se),ve=Math.min(j-1,Math.max(0,ve)),Z=Math.max(0,Se-c),ye=Math.min(j-1,ve+c)}if(Z===l.prevRangeStart&&ye===l.prevRangeEnd&&!l.renderPending&&!Y)return;ee=X,le.forEach((Se,ve)=>{if(ve<Z||ve>ye)Se.remove(),p.release(Se),le.delete(ve),b.delete(ve)});let Te=L?.()??null,Ce=Te?`${u}-item--selected`:"",Le=Te?`${u}-item--focused`:"",Pe=null;for(let Se=Z;Se<=ye;Se++){let ve=le.get(Se),ze=!1;if(ve===void 0){let ke=o.getEntry(Se);ze=ke.type==="header";let Fe;if(ke.type==="header")Fe=`__group_header_${ke.group.groupIndex}`;else{let De=G(ke.dataIndex);if(De&&De._isPlaceholder!==!0)Fe=String(De.id)}if(Fe!==void 0){let De=E.get(Fe);if(De)E.delete(Fe),ve=De}if(!ve)ve=p.acquire();if(ve.setAttribute("data-index",String(Se)),Q(ve,ke,Te,Se))b.delete(Se);else b.add(Se);if(q(ve,Se),ve.style.transform=Ie(Se,X),le.set(Se,ve),!Pe)Pe=document.createDocumentFragment();Pe.appendChild(ve)}else if(ge&&b.has(Se)){let ke=o.getEntry(Se);if(ke.type==="item")if(Q(ve,ke,Te,Se))b.delete(Se);else b.add(Se)}else if(ze=ve.classList.contains(h),ge)q(ve,Se),ve.style.transform=Ie(Se,X);else if(Y)ve.style.transform=Ie(Se,X);if(!ze&&Te)if(Te(Se,Je),ve.classList.toggle(Ce,Je.selected),ve.classList.toggle(Le,Je.focused),Je.selected)ve.setAttribute("aria-selected","true");else ve.removeAttribute("aria-selected")}if(Pe)a.appendChild(Pe);se();let Re=ce?ue():s.getTotalSize();z?.(Re),l.prevRangeStart=Z,l.prevRangeEnd=ye,l.renderPending=!1;let he=0,xe=0,Ae=!1;for(let Se=Z;Se<=ye&&he<l.capacity;Se++){let ve=o.getEntry(Se);if(ve.type==="item"){if(!Ae)xe=ve.dataIndex,Ae=!0;l.visibleIndices[he]=ve.dataIndex,l.visibleOffsets[he]=s.getOffset(Se),l.visibleSizes[he]=s.getSize(Se),he++}}l.visibleCount=he,l.startIndex=xe}function ae(){if(l.destroyed)return;M();let d=V?.()??0;if(d!==U){U=d;let oe=o.groups,X=oe.length;o.rebuild(P,T??G);let Y=o.groups,ge=Y.length!==X;if(!ge){for(let j=0;j<X;j++)if(Y[j].headerLayoutIndex!==oe[j].headerLayoutIndex){ge=!0;break}}if(ge){de(o.totalEntries),W();let j=ce?ue():s.getTotalSize();if(z?.(j),n)n.refresh(),n.update(w.getPixelEquivalent());let Z=1/0,ye=Math.min(X,Y.length);for(let Ce=0;Ce<ye;Ce++)if(Y[Ce].headerLayoutIndex!==oe[Ce].headerLayoutIndex){Z=Math.min(Y[Ce].headerLayoutIndex,oe[Ce].headerLayoutIndex);break}if(Y.length>X&&ye<Y.length)Z=Math.min(Z,Y[ye].headerLayoutIndex);else if(X>Y.length&&ye<X)Z=Math.min(Z,oe[ye].headerLayoutIndex);if(Z<=l.prevRangeEnd)_();let Te=A?.("_scrollbar:getInstance");if(Te)Te()?.updateBounds(j,l.containerSize)}}l.prevRangeStart=-1,l.prevRangeEnd=-1,l.renderPending=!0,g=!0,K()}return{name:"groups",priority:11,setup(d){w=d.scroll,s=d.sizes.cache,l=d.getState(),p=d.pool,a=d.dom.content,z=d.render.contentSize.bind(d),R=d.dom.root,v=d.template,f=d.config.axis.primary==="x",u=d.config.classPrefix,c=d.config.overscan,F=d.config.mainAxisPadding,G=d.items.at.bind(d),L=()=>d.render.getStateFn(),A=d.hooks.get.bind(d),H=null,D=`${u}-item`,h=`${u}-group-header`;let oe=A?.("getGridLayout"),X=A?.("getMasonryLayout");if(oe){let he=oe();x=he.columns,I=he.gap,m=d.config.crossPadStart,C=d.config.crossAxisPadding}else if(X){let he=X();x=he.columns,I=he.gap,m=d.config.crossPadStart,C=d.config.crossAxisPadding,O=!0;let xe=d.sizes.rawSpec;if(typeof xe==="function")re=(Ae)=>xe(Ae,{columnWidth:N})}queueMicrotask(()=>{let he=A?.("_getLoadedItem");if(he)T=he;let xe=A?.("_getLoadedCount");if(xe)V=xe});let Y=l.totalItems;o=En(Y,e,T??G),P=Y;let ge=typeof t==="number"?(he)=>t:(he)=>{let xe=o.groups[he];if(!xe)return 0;return t(xe.key,he)},j=s.getSize;ie=j;let Z=(he)=>{let xe=o.getEntry(he);if(xe.type==="header"){if(e.sticky!==!1&&xe.group.groupIndex===0)return 0;return ge(xe.group.groupIndex)}return j(xe.dataIndex)};d.sizes.setConfig(Z,d.config.gap);let ye=!1,Te=-1;if(d.hooks.method("_setSizeCacheBase",(he)=>{de=he}),de=s.rebuild,s.rebuild=(he)=>{if(ye){if(!V)V=A?.("_getLoadedCount")??null;let xe=V?.()??0;if(he!==P||xe!==Te){if(P=he,Te=xe,!T)T=A?.("_getLoadedItem")??null;if(o.rebuild(he,T??((Ae)=>d.items.all()[Ae])),l.totalItems=o.totalEntries,n)n.refresh(),n.update(w.getPixelEquivalent())}}de(o.totalEntries)},s.rebuild(o.totalEntries),W(),d.items.setTotalFn(()=>o.totalEntries-o.groupCount),R.classList.add(`${u}--grouped`),e.sticky!==!1){let he=(ve,ze)=>{let ke=o.groups[ze];if(!ke)return;let Fe=i(ke.key,ze);if(typeof Fe==="string")ve.innerHTML=Fe;else ve.replaceChildren(Fe)},xe=o.getHeaderHeight(0),Ae=Vt(R,u,f,xe),Se=x>0?(ve)=>{let ze=ce?.get(ve);return ze?ze.rowY:s.getOffset(ve)}:void 0;if(n=Pn(R,o,s,he,u,f,0,Ae,Se),n.update(w.getPixelEquivalent()),!f)d.dom.viewport.style.height=`calc(100% - ${xe}px)`;else d.dom.viewport.style.width=`calc(100% - ${xe}px)`,d.dom.viewport.style.marginLeft=`${xe}px`}let Ce=!!A?.("_updateTableForGroups");if(ye=Ce,Ce)l.totalItems=o.totalEntries,queueMicrotask(()=>{let he=A?.("_getItem")??null,xe=d.items.all.bind(d),Ae=(ve)=>{let ze=o.getEntry(ve);if(ze.type==="header")return{id:`__group_header_${ze.group.groupIndex}`,__groupHeader:!0,groupKey:ze.group.key,groupIndex:ze.group.groupIndex};return he?he(ze.dataIndex):xe()[ze.dataIndex]};d.items.setGetFn(Ae),d.hooks.method("_getItemAtLayout",Ae);let Se=A?.("_updateTableForGroups");if(Se)Se((ve)=>!!ve.__groupHeader,i);d.render.force()});else d.render.setFn(K,ae);if(d.hooks.method("getGroupLayout",()=>o),d.hooks.method("_getTotal",()=>o.totalEntries-o.groupCount),d.hooks.method("_dataToLayoutIndex",(he)=>o.dataToLayoutIndex(he)),d.hooks.method("_layoutToDataIndex",(he)=>o.layoutToDataIndex(he)),!ye)d.hooks.method("_getRenderedElement",(he)=>le.get(he)??null);d.hooks.method("_isGroupHeader",(he)=>o.getEntry(he).type==="header"),d.hooks.method("_getItemLane",(he)=>{let xe=ce?.get(he);return xe?xe.col:-1}),d.hooks.method("_getItemY",(he)=>{let xe=ce?.get(he);return xe?xe.rowY:-1}),d.hooks.method("_getItemH",(he)=>ce?.get(he)?.h??-1);let Le=d.config.startPadding,Pe=F-Le,Re=bt(d);d.hooks.method("_scrollItemIntoView",(he)=>{if(he<0)return;let xe=ce?.get(he),Ae=xe?xe.rowY:s.getOffset(he),Se=xe?.h??s.getSize(he),ve=l.containerSize,ze=w.getPixelEquivalent(),ke=Re(),Fe=Le+ke.start,$e=Pe+ke.end,De=ke.start>0?-ke.start:0;if(Ae<ze+Fe)d.scroll.to(Math.max(De,Ae-Fe));else if(Ae+Se+$e>ze+ve)d.scroll.to(Ae+Se+$e-ve)}),d.scroll.setToIndexFn((he,xe,Ae,Se,ve)=>{let ze=o.dataToLayoutIndex(he),ke=o.totalEntries;if(ke===0)return!1;let Fe=Math.max(0,Math.min(ze,ke-1)),$e=l.containerSize,De=ce?.get(Fe),Be=De?De.rowY:s.getOffset(Fe),Ue=De?De.h??s.getSize(Fe):s.getSize(Fe),_e=ce?ue()+F:s.getTotalSize(),me=Math.max(0,_e-$e),Ee=Re(),we=(ce?F:0)+Ee.end,He=Be+Ue;if(O&&B){let J=o.getEntry(Fe).group.groupIndex,S=B[J];if(S!==void 0)He=S}let Ve;switch(xe){case"center":Ve=Be-Ee.start-($e-Ee.start-Ee.end-Ue)/2;break;case"end":Ve=He-$e+we;break;default:Ve=Be-Ee.start}let Ne=Ee.start>0?-Ee.start:0;Ve=Math.max(Ne,Math.min(Ve,me+Ee.end)),et(d.scroll,Ve,Ae,Se,ve)}),d.hooks.onDestroy(()=>{for(let[,he]of le)he.remove();if(le.clear(),b.clear(),n)n.destroy(),n=null;R.classList.remove(`${u}--grouped`)})},hooks:{onAfterScroll(d,oe){if(n)n.update(d)},onResize(d,oe){if(x<=0)return;de(o.totalEntries),ne=l.crossSize,W();let X=ue();if(z?.(X),n)n.refresh(),n.update(w.getPixelEquivalent());g=!0,K()}},destroy(){if(n)n.destroy(),n=null;le.clear(),b.clear(),E.clear()}}}var Mn=(e,t,r)=>{if(String(r).startsWith(Ke))return!1;let i=Ke+t;if(e.has(i))return e.delete(i),e.add(r),!0;return!1},zn=(e)=>({selected:new Set(e??[]),focusedIndex:-1,focusVisible:!1});function tt(e,t,r,i){if(r===0)return;let o=i?-t:t,n=e.focusedIndex+o;if(n<0)n=0;if(n>=r)n=r-1;e.focusedIndex=n}function vt(e){return Array.from(e)}function st(e,t,r,i){if(i<=0)return 0;let o=i-1;if(r<=1)return e<0?0:e>o?o:e;let n=(t%r+r)%r;if(e<0)return n;if(e>o){let s=Math.floor(o/r)*r;return Math.min(s+n,o)}return e}var ro={preventScroll:!0};function Ot(e){let t=e?.mode??"single",r=e?.followFocus??!1,i=e?.focusOnClick??!1,o=e?.keyboard??!0,n,s,l,w,p,a,z,R,v=-1,G=new Map,T=null,f=null,u=null,c=null,L,D,h=!1;function A(g){if(h)return;h=!0,T=g.hooks.get("_layoutToDataIndex")??null,f=g.hooks.get("_dataToLayoutIndex")??null,u=g.hooks.get("_isGroupHeader")??null,c=g.hooks.get("_scrollItemIntoView")??null,x=g.hooks.get("_getLoadedItem")??null;let P=g.hooks.get("_getTotal");if(P)D=P;let U=g.hooks.get("getGroupLayout");if(U){let V=U();L=()=>V.totalEntries}}let H=(g)=>T?T(g):g,x=null,I=(g)=>{if(x)return x(g);return s()[g]},m=(g)=>{let P=H(g);return P>=0?I(P):void 0},C=(g,P,U)=>{if(!u)return g;let V=g;while(V>=0&&V<U){if(!u(V))return V;V+=P}V=g-P;while(V>=0&&V<U){if(!u(V))return V;V-=P}return g};function F(g,P){if(t==="single")n.selected.clear(),G.clear();if(n.selected.add(g),P)G.set(g,P)}function O(g,P){if(n.selected.has(g))n.selected.delete(g),G.delete(g);else F(g,P)}function re(){n.selected.clear(),G.clear()}function ie(g){n.selected.delete(g),G.delete(g)}function le(g,P){let U=Math.min(g,P),V=Math.max(g,P);for(let de=U;de<=V;de++){if(u?.(de))continue;let pe=m(de);if(pe)n.selected.add(pe.id),G.set(pe.id,pe);else if(x){let fe=H(de);if(fe>=0)n.selected.add(Ke+fe)}}}function b(){let g=L();for(let P=0;P<g;P++){if(u?.(P))continue;let U=m(P);if(U)n.selected.add(U.id),G.set(U.id,U);else if(x){let V=H(P);if(V>=0)n.selected.add(Ke+V)}}}function E(){if(n.selected.size===0)return[];if(G.size>=n.selected.size){let V=[];for(let de of n.selected){let pe=G.get(de);if(pe)V.push(pe)}if(V.length===n.selected.size)return V}let g=[],P=new Set(n.selected),U=L();for(let V=0;V<U&&P.size>0;V++){if(u?.(V))continue;let de=m(V);if(de&&P.has(de.id))g.push(de),G.set(de.id,de),P.delete(de.id)}return g}function k(){l(),w.emit("selection:change",{selected:vt(n.selected),items:E()})}let y=null,ee=-1;return{name:"selection",priority:50,setup(g){n=zn(e?.initial),s=g.items.all.bind(g),l=g.render.force.bind(g),w=g.emitter,p=g.dom;let P=g.config;if(a=g.sizes.cache,z=g.getState(),R=g.scroll.to.bind(g),L=()=>z.totalItems,D=()=>z.totalItems,t==="none"){g.hooks.method("select",()=>{}),g.hooks.method("deselect",()=>{}),g.hooks.method("toggleSelect",()=>{}),g.hooks.method("selectAll",()=>{}),g.hooks.method("clearSelection",()=>{}),g.hooks.method("getSelected",()=>[]),g.hooks.method("getSelectedItems",()=>[]),g.hooks.method("selectNext",()=>{}),g.hooks.method("selectPrevious",()=>{}),g.hooks.method("_seedSelection",()=>{}),g.hooks.method("_getFocusedId",()=>{return}),g.hooks.method("_focusById",()=>{});return}g.dom.enableListbox();let U=P.classPrefix;g.render.setStateFn((B,W)=>{if(A(g),n.selected.size>0){let ue=H(B),Ie=ue>=0?m(B):void 0,q=Ie?.id;if(q!==void 0)if(n.selected.has(q))W.selected=!0;else if(Mn(n.selected,ue,q))W.selected=!0,G.delete(Ke+ue),G.set(q,Ie);else W.selected=!1;else W.selected=x!==null&&ue>=0&&n.selected.has(Ke+ue)}else W.selected=!1;W.focused=n.focusVisible&&n.focusedIndex===B}),g.hooks.method("_getSelectedIds",()=>n.selected),g.hooks.method("_getFocusedIndex",()=>n.focusVisible?n.focusedIndex:-1),p.root.classList.add(`${U}--selectable`);let V=(B)=>{y=null,ee=-1;let W=B.target.closest("[data-index]");if(!W)return!1;let ue=parseInt(W.dataset.index??"-1",10);if(ue<0)return!1;if(u?.(ue))return!1;if(H(ue)<0)return!1;let q=m(ue);if(!q)return!1;return y=q,ee=ue,!0},de=0,pe=(B)=>{if(B<0)return;if(g.scroll.cancel(),c){c(B);return}if(!de){let M=g.hooks.get("_getRowGap");de=M?M():0}let W=g.nav.get(),ue=W.scrollIndex?W.scrollIndex(B):B,Ie=a.getOffset(ue),q=a.getSize(ue)-de,_=z.containerSize,se=g.scroll.getPixelEquivalent(),{startPadding:Q,endPadding:ne}=P;if(Ie<se)R(Ie);else if(Q+Ie+q+ne>se+_)R(Q+Ie+q+ne-_)},fe=(B)=>{let W=p.content.querySelectorAll(`[data-index="${B}"]`),ue=null;for(let Ie=0;Ie<W.length;Ie++){let q=W[Ie];if(q.style.display!=="none"){ue=q;break}}if(!ue&&W.length>0)ue=W[0];p.content.setAttribute("aria-activedescendant",ue?.id??`${U}-item-${B}`)},N=()=>{if(z.destroyed)return;if(A(g),!p.content.matches(":focus-visible")&&!p.root.matches(":focus-visible"))return;let B=L();if(B===0)return;let W=n.focusedIndex>=0?Math.min(n.focusedIndex,B-1):0;W=C(W,1,B),n.focusedIndex=W,n.focusVisible=!0,fe(W),pe(W),l()};p.root.addEventListener("focusin",N);let ce=(B)=>{if(z.destroyed)return;let W=B.relatedTarget;if(W&&p.root.contains(W))return;n.focusVisible=!1,l(),p.content.removeAttribute("aria-activedescendant")};if(p.root.addEventListener("focusout",ce),g.hooks.onDestroy(()=>{p.root.removeEventListener("focusin",N),p.root.removeEventListener("focusout",ce)}),g.hooks.onClick((B)=>{if(A(g),!V(B))return;if(t==="multiple"&&B.shiftKey&&n.focusedIndex>=0){let ue=v>=0?v:n.focusedIndex,Ie=H(ue),q=H(ee);if(Ie>=0&&q>=0)le(ue,ee);n.focusedIndex=ee,n.focusVisible=i,v=ee,k();return}if(n.focusedIndex=ee,n.focusVisible=i,v=ee,(p.content.getAttribute("tabindex")!==null?p.content:p.root).focus(ro),t==="single")F(y.id,y);else O(y.id,y);k()}),o)g.hooks.onKeydown((B)=>{A(g);let W=L();if(W===0)return;let ue=g.nav.get(),Ie=n.focusedIndex,q=!1,_=!1;if(ue.navigate&&(B.key==="ArrowUp"||B.key==="ArrowDown"||B.key==="ArrowLeft"||B.key==="ArrowRight"||B.key==="PageUp"||B.key==="PageDown"||B.key==="Home"||B.key==="End")){let Q=ue.total?ue.total():W,ne=ue.navigate(n.focusedIndex,B.key,Q);if(ne!==n.focusedIndex)n.focusedIndex=Math.max(0,Math.min(ne,Q-1));n.focusVisible=!0,q=!0}else switch(B.key){case"ArrowUp":{let Q=ue.ud||1,ne=ue.lr,M=P.axis.primary==="x";if(M&&!ne)break;tt(n,-(M?ne:Q),W,P.reverse),n.focusVisible=!0,q=!0;break}case"ArrowDown":{let Q=ue.ud||1,ne=ue.lr,M=P.axis.primary==="x";if(M&&!ne)break;tt(n,M?ne:Q,W,P.reverse),n.focusVisible=!0,q=!0;break}case"ArrowLeft":{let Q=ue.ud||1,ne=ue.lr,M=P.axis.primary==="x";if(!M&&!ne)break;tt(n,-(M?Q:ne),W,P.reverse),n.focusVisible=!0,q=!0;break}case"ArrowRight":{let Q=ue.ud||1,ne=ue.lr,M=P.axis.primary==="x";if(!M&&!ne)break;tt(n,M?Q:ne,W,P.reverse),n.focusVisible=!0,q=!0;break}case"Home":if(W>0)n.focusedIndex=0;n.focusVisible=!0,q=!0;break;case"End":if(W>0)n.focusedIndex=W-1;n.focusVisible=!0,q=!0;break;case"PageUp":case"PageDown":{let Q=ue.ud||1,ne=Math.max(0,n.focusedIndex),M=ue.scrollIndex?ue.scrollIndex(ne):ne,K=a.getSize(M),ae=z.containerSize,oe=(K>0?Math.max(1,Math.floor(ae/K)):10)*Q;if(T&&f){let X=T(n.focusedIndex),Y=B.key==="PageUp"?-oe:oe,ge=D()-1;n.focusedIndex=f(st(X+Y,X,Q,ge+1))}else{let X=B.key==="PageUp"?n.focusedIndex-oe:n.focusedIndex+oe;n.focusedIndex=st(X,n.focusedIndex,Q,W)}n.focusVisible=!0,q=!0;break}case" ":case"Enter":if(B.key===" "&&B.shiftKey&&t==="multiple"&&n.focusedIndex>=0){if(v>=0){let Q=H(v),ne=H(n.focusedIndex);if(Q>=0&&ne>=0)le(v,n.focusedIndex)}n.focusVisible=!0,_=!0,q=!0;break}if(n.focusedIndex>=0){let Q=m(n.focusedIndex);if(Q)O(Q.id,Q),v=n.focusedIndex;n.focusVisible=!0,_=!0,q=!0}break;case"a":if((B.ctrlKey||B.metaKey)&&t==="multiple"){if(n.selected.size===D())re();else b();n.focusVisible=!0,_=!0,q=!0}break;case"Delete":case"Backspace":if(n.selected.size>0)w.emit("delete",{selected:vt(n.selected),items:E()}),q=!0;break}if(n.focusedIndex!==Ie&&u){let Q=n.focusedIndex>Ie?1:-1;n.focusedIndex=C(n.focusedIndex,Q,W)}let se=n.focusedIndex!==Ie;if(B.shiftKey&&t==="multiple"&&!_&&se){if(B.key==="ArrowUp"||B.key==="ArrowDown"||B.key==="ArrowLeft"||B.key==="ArrowRight"){let M=m(n.focusedIndex);if(M)O(M.id,M);v=n.focusedIndex,_=!0}if((B.ctrlKey||B.metaKey)&&(B.key==="Home"||B.key==="End")){let M=Ie>=0?Ie:n.focusedIndex,K=H(M),ae=H(n.focusedIndex);if(K>=0&&ae>=0)le(M,n.focusedIndex);v=n.focusedIndex,_=!0}}if(r&&t==="single"&&!_&&se&&n.focusedIndex>=0){let Q=m(n.focusedIndex);if(Q)F(Q.id,Q);_=!0}if(q){if(B.preventDefault(),se&&n.focusedIndex>=0){if(c||!ue.navigate)pe(n.focusedIndex);fe(n.focusedIndex)}if(_)k();else if(se){if(l(),n.focusedIndex>=0){let Q=m(n.focusedIndex);if(Q)w.emit("focus:change",{id:Q.id,index:n.focusedIndex})}}}});g.hooks.method("select",(...B)=>{for(let W of B)F(W);k()}),g.hooks.method("deselect",(...B)=>{for(let W of B)ie(W);k()}),g.hooks.method("toggleSelect",(B)=>{O(B),k()}),g.hooks.method("selectAll",()=>{if(t!=="multiple")return;A(g),b(),k()}),g.hooks.method("clearSelection",()=>{re(),k()}),g.hooks.method("getSelected",()=>vt(n.selected)),g.hooks.method("getSelectedItems",()=>E());let te=(B)=>{A(g);let W=g.nav.get(),ue=W.total?W.total():L();if(ue===0)return;if(tt(n,B,ue,P.reverse),u)n.focusedIndex=C(n.focusedIndex,B,ue);let Ie=m(n.focusedIndex);if(Ie)F(Ie.id,Ie);if(n.focusedIndex>=0){if(W.reveal)W.reveal(n.focusedIndex);else pe(n.focusedIndex);fe(n.focusedIndex)}k()};g.hooks.method("selectNext",()=>{te(1)}),g.hooks.method("selectPrevious",()=>{te(-1)}),g.hooks.method("_seedSelection",(B)=>{if(t==="single"){if(B.length===1)n.selected.add(B[0])}else for(let W of B)n.selected.add(W)}),g.hooks.method("_isFollowFocus",()=>r),g.hooks.method("_getFocusedId",()=>{if(n.focusedIndex<0)return;return m(n.focusedIndex)?.id}),g.hooks.method("_focusById",(B,W)=>{let ue=L();for(let Ie=0;Ie<ue;Ie++){if(u?.(Ie))continue;let q=m(Ie);if(q&&q.id===B){if(n.focusedIndex=Ie,W!=="preserve")n.focusVisible=W===!0||i;if(n.focusVisible)fe(Ie);else p.content.removeAttribute("aria-activedescendant");w.emit("focus:change",{id:B,index:Ie}),l();return}}})},destroy(){G.clear()}}}function yt(e){let t=e?.keyboard??!0;return{name:"a11y",priority:55,setup(r){if(r.render.getStateFn())return;r.dom.enableListbox();let{dom:i,config:o}=r,n=r.sizes.cache,s=r.getState(),l=r.emitter,w=o.classPrefix,p=i.liveRegion,a=-1,z=!1,R,v=-1,G=(m)=>r.items.at(m),T=()=>s.totalItems,f={id:0,index:0},u={selected:[],items:[]};r.render.setStateFn((m,C)=>{C.selected=v===m,C.focused=z&&a===m}),r.hooks.method("_getFocusedIndex",()=>z?a:-1),r.hooks.method("_getFocusedId",()=>{if(a<0)return;return G(a)?.id}),r.hooks.method("_focusById",(m,C)=>{let F=T();for(let O=0;O<F;O++){let re=G(O);if(!re||re.id!==m)continue;if(a=O,C!=="preserve")z=C===!0;if(z)i.content.setAttribute("aria-activedescendant",`${w}-item-${O}`);else i.content.removeAttribute("aria-activedescendant");f.id=m,f.index=O,l.emit("focus:change",f),r.render.force();return}});function c(m){p.textContent="",p.textContent=m}let L=(m,C,F)=>{let O=m;while(O>=0&&O<F){let re=G(O);if(!re||!re.__groupHeader)return O;O+=C}O=m-C;while(O>=0&&O<F){let re=G(O);if(!re||!re.__groupHeader)return O;O-=C}return m},D=(m)=>{let C=r.nav.get();if(C.reveal){C.reveal(m);return}let F=r.hooks.get("_scrollItemIntoView");if(F){r.scroll.cancel(),F(m);return}let O=C.scrollIndex?C.scrollIndex(m):m,re=n.getOffset(O),ie=n.getSize(O),le=r.scroll.getPixelEquivalent(),b=s.containerSize,{startPadding:E,endPadding:k}=o,y=re+E,ee=y+ie,g=le;if(y<le)g=Math.max(0,re);else if(ee>le+b)g=ee+k-b;if(g!==le)r.scroll.setPixelEquivalent(g)},h=(m,C)=>{if(i.content.setAttribute("aria-activedescendant",`${w}-item-${m}`),C)D(m);r.render.force()},A=(m)=>{a=m,z=!0,h(m,!0);let C=G(m);if(C)f.id=C.id,f.index=m,l.emit("focus:change",f),c(`Item ${m+1} of ${T()}`)},H=(m,C)=>{if(a=m,C)z=!0;let F=G(m);if(F&&R===F.id)R=void 0,v=-1;else R=F?.id,v=F?m:-1;if(h(m,C),R!==void 0&&F&&R===F.id)u.selected[0]=R,u.selected.length=1,u.items[0]=F,u.items.length=1,c(`Selected, item ${m+1} of ${T()}`);else u.selected.length=0,u.items.length=0,c("Deselected");l.emit("selection:change",u)},x=()=>{if(s.destroyed)return;if(!i.content.matches(":focus-visible"))return;let m=T();if(m===0)return;let C=a>=0?Math.min(a,m-1):0;C=L(C,1,m),A(C)},I=(m)=>{if(s.destroyed)return;let C=m.relatedTarget;if(C&&i.root.contains(C))return;z=!1,i.content.removeAttribute("aria-activedescendant"),r.render.force()};if(i.content.addEventListener("focusin",x),i.content.addEventListener("focusout",I),t)r.hooks.onKeydown((m)=>{if(s.destroyed)return;let C=T();if(C===0)return;let F=a,O=F;if(m.key===" "||m.key==="Enter"){if(F>=0){let ie=G(F);if(ie&&!ie.__groupHeader)H(F,!0)}m.preventDefault();return}let re=r.nav.get();if(re.navigate)switch(m.key){case"ArrowUp":case"ArrowDown":case"ArrowLeft":case"ArrowRight":case"PageUp":case"PageDown":case"Home":case"End":O=re.navigate(F,m.key,C);break;default:return}else{let ie=re.ud||1,le=re.lr,b=o.axis.primary==="x";switch(m.key){case"ArrowUp":if(b&&!le)return;O=F-(b?le:ie);break;case"ArrowDown":if(b&&!le)return;O=F+(b?le:ie);break;case"ArrowLeft":if(!b&&!le)return;O=F-(b?ie:le);break;case"ArrowRight":if(!b&&!le)return;O=F+(b?ie:le);break;case"PageUp":case"PageDown":{let E=n.getSize(Math.max(0,re.scrollIndex?re.scrollIndex(F):F)),y=Math.max(1,Math.floor(s.containerSize/E))*ie;O=st(m.key==="PageUp"?F-y:F+y,F,ie,C);break}case"Home":O=0;break;case"End":O=C-1;break;default:return}}if(O<0)O=0;else if(O>=C)O=C-1;if(m.preventDefault(),O=L(O,O>=F?1:-1,C),O!==F)A(O)});r.hooks.onClick((m)=>{if(s.destroyed)return;let C=m.target.closest("[data-index]");if(!C)return;let F=parseInt(C.dataset.index??"-1",10);if(F<0)return;let O=G(F);if(!O||O.__groupHeader)return;z=!1,i.content.focus({preventScroll:!0}),H(F,!1)}),r.hooks.onDestroy(()=>{i.content.removeEventListener("focusin",x),i.content.removeEventListener("focusout",I)})}}}var io=0,so=1000,lo=15,ao=!0,uo=16,co=!0,lt=2,mo="scroll",fo=350,go=12,po=(e)=>{if(typeof e!=="object"){let t=e??lt;return{top:t,right:t,bottom:t,left:t}}return{top:e.top??lt,right:e.right??lt,bottom:e.bottom??lt,left:e.left??lt}},An=(e,t,r={},i="vlist",o=!1,n,s,l)=>{let w=navigator.userAgentData?.platform||navigator.platform+navigator.userAgent,p=r.platform?r.platform==="windows":!/Mac|Android/i.test(w),{autoHide:a=!p,autoHideDelay:z=so,minThumbSize:R=lo,showOnHover:v=ao,showOnViewportEnter:G=co,clickBehavior:T=mo}=r,f=T==="page"?"scroll":T,u=n??e,c=po(r.padding),L=o?c.left:c.top,D=o?c.right:c.bottom,h=o?c.bottom:c.right,A=r.hoverZoneWidth??h+uo,H=!0,x=0,I=0,m=0,C=0,F=!1,O=!1,re=0,ie=0,le=0,b=null,E=!1,k=null,y=null,ee=-1,g=-1,P=-1,U=-1,V=-1,de=e.id?"":(()=>{let me;do me=`${i}-scrollport-${++io}`;while(document.getElementById(me));return e.id=me,me})(),pe=0,fe=0,N=null,ce=null,te=null,B=o?"width":"height",W=o?"translateX":"translateY",ue=o?(me)=>me.clientX:(me)=>me.clientY,Ie=o?"left":"top",q=document.createElement("div"),_=document.createElement("div"),se=document.createElement("div"),Q=o?"--vlist-custom-scrollbar-padding-left":"--vlist-custom-scrollbar-padding-top",ne=()=>{if(u===e)return;let me=e.offsetTop;q.style[o?"left":"top"]=me?`calc(var(${Q}) + ${me}px)`:`var(${Q})`,se.style[o?"left":"top"]=`${me}px`},M=()=>{if(q.className=`${i}-scrollbar`,q.setAttribute("role","scrollbar"),q.setAttribute("aria-controls",e.id),q.setAttribute("aria-orientation",o?"horizontal":"vertical"),q.setAttribute("aria-label",e.getAttribute("aria-label")||"Scroll"),q.setAttribute("aria-valuemin","0"),q.tabIndex=0,_.className=`${i}-scrollbar__thumb`,o)q.classList.add(`${i}-scrollbar--horizontal`);if(r.padding!==void 0)u.style.setProperty("--vlist-custom-scrollbar-padding-top",`${c.top}px`),u.style.setProperty("--vlist-custom-scrollbar-padding-right",`${c.right}px`),u.style.setProperty("--vlist-custom-scrollbar-padding-bottom",`${c.bottom}px`),u.style.setProperty("--vlist-custom-scrollbar-padding-left",`${c.left}px`);if(r.minThumbSize!==void 0)q.style.setProperty("--vlist-custom-scrollbar-min-thumb-size",`${R}px`);if(q.appendChild(_),u.appendChild(q),se.className=`${i}-scrollbar__hover`,o)se.classList.add(`${i}-scrollbar__hover--horizontal`),se.style.height=`${A}px`;else se.style.width=`${A}px`;if(u.appendChild(se),u!==e)ne()},K=()=>{if(b)clearTimeout(b),b=null},ae=()=>{if(!a)return;K(),b=setTimeout(oe,z)},d=()=>{if(!H||x<=I)return;if(K(),!E)q.classList.add(`${i}-scrollbar--visible`),E=!0;if(a&&!F&&!O&&document.activeElement!==q)ae()},oe=()=>{if(F||O||document.activeElement===q)return;q.classList.remove(`${i}-scrollbar--visible`),E=!1},X=(me,Ee)=>{if(x=me,I=Ee,ne(),Y(le),!H||x<=I){q.style.display="none",q.classList.remove(`${i}-scrollbar--visible`),E=!1;return}q.style.display="";let we=Math.max(0,I-L-D),He=I/x;if(m=Math.max(R,He*we),_.style[B]=`${m}px`,C=we-m,Y(le),!a)d()},Y=(me)=>{let Ee=Math.max(0,x-I);if(le=Math.max(0,Math.min(me,Ee)),ee!==Ee)ee=Ee,q.setAttribute("aria-valuemax",String(Ee));if(g!==le)g=le,q.setAttribute("aria-valuenow",String(le));let we=s?.(),He=we?.getTotal()??0,Ve=He?we.indexAtOffset(le)+1:0;if(Ve!==P||He!==U)P=Ve,U=He,q.setAttribute("aria-valuetext",`Row ${Ve} of ${He}`);if(Ee<=0||C<=0)return;let Ne=le/Ee*C;if(Ne!==V)V=Ne,_.style.transform=`${W}(${Ne}px)`},ge=(me)=>{if(!H||me.target!==q||document.activeElement!==q)return;if(me.stopPropagation(),me.altKey||me.ctrlKey||me.metaKey)return;let Ee=s?.(),we=Ee?.getSize(Ee.indexAtOffset(le))??40,He=le;switch(me.key){case(o?"ArrowLeft":"ArrowUp"):He-=we;break;case(o?"ArrowRight":"ArrowDown"):He+=we;break;case"PageUp":He-=I;break;case"PageDown":He+=I;break;case"Home":He=0;break;case"End":He=x;break;default:return}me.preventDefault(),t(Math.max(0,Math.min(He,Math.max(0,x-I)))),d()},j=(me)=>{if(me.target===_||f!=="jump"||C<=0)return;let Ee=x-I,we=q.getBoundingClientRect(),He=ue(me)-we[Ie],Ve=Math.max(0,Math.min(He-m/2,C));t(Ve/C*Ee),d()},Z=()=>{if(N!==null)clearTimeout(N),N=null;if(ce!==null)cancelAnimationFrame(ce),ce=null;te=null},ye=(me)=>{let Ee=C>0?fe/me*C:0;if(pe<Ee)return-1;if(pe>=Ee+m)return 1;return 0},Te=()=>{let me=x-I,Ee=ye(me);if(Ee===0){Z();return}if(Ee===-1){if(fe<=0){Z();return}let we=Math.max(0,fe-I);fe=we,t(we)}else{if(fe>=me){Z();return}let we=Math.min(me,fe+I);fe=we,t(we)}d()},Ce=(me)=>{if(te===null){te=me,ce=requestAnimationFrame(Ce);return}let Ee=x-I,we=me-te;te=me;let He=ye(Ee);if(He===0){Z();return}let Ve=go*I/1000,Ne=Math.min(Ve*we,I);if(He===-1){if(fe<=0){Z();return}let J=Math.max(0,fe-Ne);fe=J,t(J)}else{if(fe>=Ee){Z();return}let J=Math.min(Ee,fe+Ne);fe=J,t(J)}K(),ce=requestAnimationFrame(Ce)},Le=(me)=>{if(me&&me.pointerId!==k)return;let Ee=k,we=y;if(k=null,y=null,F=!1,q.classList.remove(`${i}-scrollbar--dragging`),Z(),Ee!==null&&we?.hasPointerCapture(Ee))we.releasePointerCapture(Ee);ae()},Pe=(me)=>{if(!H||me.button!==0||k!==null||C<=0)return;if(me.preventDefault(),me.stopPropagation(),k=me.pointerId,F=me.target===_,y=F?_:me.currentTarget,y.setPointerCapture(k),K(),F)re=ue(me),ie=le,q.classList.add(`${i}-scrollbar--dragging`);else if(f==="jump")j(me);else pe=ue(me)-q.getBoundingClientRect()[Ie],fe=le,Te(),N=setTimeout(()=>{ce=requestAnimationFrame(Ce)},fo);d()},Re=(me)=>{if(!F||me.pointerId!==k)return;me.stopPropagation();let Ee=ue(me)-re,we=Math.max(0,x-I),He=Math.max(0,Math.min(ie+Ee/C*we,we));Y(He),t(He)},he=()=>{if(G)d()},xe=()=>{if(!F){if(O=!1,a)ae()}},Ae=()=>{O=!0,K(),d()},Se=()=>{if(O=!1,!F&&a)ae()},ve=["width","radius","thumb-color","track-color"],ze=(me,Ee)=>u.style.setProperty(`--vlist-custom-scrollbar-${me}`,Ee),ke=ve.map((me)=>u.style.getPropertyValue(`--vlist-custom-scrollbar-${me}`)),Fe=ke.slice(0,2),$e=[],De=()=>{for(let Ve=0;Ve<2;Ve++){let Ne=ve[Ve],J=u.style.getPropertyValue(`--vlist-custom-scrollbar-${Ne}`);if(J!==$e[Ve])Fe[Ve]=J;ze(Ne,Fe[Ve])}let me=getComputedStyle(l??u),Ee=r.width??me.getPropertyValue("scrollbar-width"),we=me.getPropertyValue("scrollbar-color").match(/[\w-]+\([^)]*\)|\S+/g);H=r.enabled!==!1&&Ee!=="none";let He=[typeof r.width==="number"?`${r.width}px`:me.getPropertyValue("--vlist-custom-scrollbar-width").trim()||(Ee==="thin"||!p?"6px":"14px"),typeof r.radius==="number"?`${r.radius}px`:me.getPropertyValue("--vlist-custom-scrollbar-radius").trim()||(p?"0px":"4px"),r.thumbColor??(we?.length===2?we[0]:ke[2]),r.trackColor??(we?.length===2?we[1]:ke[3])];for(let Ve=0;Ve<ve.length;Ve++)ze(ve[Ve],He[Ve]);if($e=He.slice(0,2),se.style.display=H?"":"none",e.classList.toggle(`${i}-viewport--gutter`,H&&!!r.gutter),!H)Le();X(x,I)},Be=()=>{K(),Z(),Le(),K();for(let me of Ue)me();for(let me=0;me<ve.length;me++)ze(ve[me],ke[me]);if(e.classList.remove(`${i}-viewport--gutter`),se.remove(),u.style.removeProperty("--vlist-custom-scrollbar-padding-top"),u.style.removeProperty("--vlist-custom-scrollbar-padding-right"),u.style.removeProperty("--vlist-custom-scrollbar-padding-bottom"),u.style.removeProperty("--vlist-custom-scrollbar-padding-left"),q.remove(),de&&e.id===de)e.removeAttribute("id")};M();let Ue=[],_e=(me,Ee,we)=>{me.addEventListener(Ee,we),Ue.push(()=>me.removeEventListener(Ee,we))};for(let me of[q,_,se])_e(me,"pointerdown",Pe),_e(me,"pointermove",Re),_e(me,"pointerup",Le),_e(me,"pointercancel",Le),_e(me,"lostpointercapture",Le);if(_e(q,"keydown",ge),_e(q,"focus",d),_e(q,"blur",ae),_e(e,"mouseenter",he),_e(e,"mouseleave",xe),_e(q,"mouseenter",Ae),_e(q,"mouseleave",Se),v)_e(se,"mouseenter",Ae),_e(se,"mouseleave",Se);return De(),{refresh:De,show:d,hide:oe,updateBounds:X,updatePosition:Y,isVisible:()=>E,destroy:Be}};function St(e){let t=null,r,i=0,o=0,n=0;return{name:"scrollbar",priority:15,setup(s){let{dom:l,config:w}=s,{classPrefix:p}=w,a=w.axis.primary==="x";r=s.getState(),i=w.mainAxisPadding,t=An(l.viewport,(z)=>{s.scroll.to(z)},e,p,a,l.root,()=>s.sizes.cache,l.root.parentElement),l.viewport.classList.add(`${p}-viewport--custom-scrollbar`),s.hooks.method("refreshScrollbar",()=>t?.refresh()),queueMicrotask(()=>{t?.updateBounds(r.totalSize+i,r.containerSize)}),s.hooks.method("_scrollbar:getInstance",()=>t),s.hooks.onDestroy(()=>{if(t?.destroy(),t=null,l.viewport.classList.remove(`${p}-viewport--custom-scrollbar`),e?.gutter)l.viewport.classList.remove(`${p}-viewport--gutter`)})},hooks:{onAfterScroll(s){let l=r.totalSize+i,w=r.containerSize;if(l!==o||w!==n)o=l,n=w,t?.updateBounds(l,w);t?.updatePosition(s),t?.show()},onResize(){let s=r.totalSize+i,l=r.containerSize;o=s,n=l,t?.updateBounds(s,l)}},destroy(){t?.destroy(),t=null}}}var bo=(e)=>{try{let t=sessionStorage.getItem(e);if(!t)return;return JSON.parse(t)}catch{return}};function Dt(e){let t=e?.autoSave,r=e?.restore??(t?bo(t):void 0),i=!1,o=null;return{name:"snapshots",priority:50,setup(n){let{emitter:s,scroll:l}=n,w=n.sizes.cache,p=n.getState(),a=()=>{let v=l.getPixelEquivalent(),G=p.totalItems,f=n.hooks.get("getSelected")?.();if(G===0){let x={index:0,offsetInItem:0,total:0};if(f?.length)x.selectedIds=f;return x}let u=w.indexAtOffset(v),c=v-w.getOffset(u);c=Math.max(0,c);let L={index:u,offsetInItem:c,total:G,scrollTop:v},D=w.getSize(u);if(D)L.offsetRatio=c/D;let h=n.hooks.get("_layoutToDataIndex");if(h){let x=h(u);if(x<0){for(let I=u+1;I<G;I++)if(x=h(I),x>=0)break}if(x>=0)L.dataIndex=x}let A=n.hooks.get("_getTotal");if(A)L.dataTotal=A();if(f?.length)L.selectedIds=f;let H=n.hooks.get("_getFocusedId");if(H){let x=H();if(x!==void 0)L.focusedId=x}return L};n.hooks.method("getScrollSnapshot",a);let z=(v,G=!0)=>{let{index:T,offsetInItem:f,selectedIds:u,focusedId:c}=v,L=p.totalItems,D=v.dataTotal??v.total;if(L===0&&D&&D>0){let b=n.hooks.get("_setTotal");if(b)b(D),L=p.totalItems;w.rebuild(L),n.render.contentSize(w.getTotalSize()),p.totalSize=w.getTotalSize()}if(L===0)return Promise.resolve();if(!Number.isFinite(T)||!Number.isFinite(f))return Promise.resolve();if(w.getTotal()===0)w.rebuild(L),n.render.contentSize(w.getTotalSize()),p.totalSize=w.getTotalSize();let A=n.hooks.get("_dataToLayoutIndex"),H=T;if(v.dataIndex!==void 0&&v.dataIndex>=0)H=A?A(v.dataIndex):v.dataIndex;else if(A)H=A(T);let x=Math.max(0,Math.min(H,L-1)),I=w.getSize(x),m=v.offsetRatio!==void 0?v.offsetRatio*I:Math.min(f,I),C=n.hooks.get("_getTotal")?.(),F=v.total===L||C!==void 0&&v.dataTotal===C,O;if(v.scrollTop!==void 0&&F)O=v.scrollTop;else O=w.getOffset(x)+m;let re=Math.max(0,p.totalSize-p.containerSize);if(O=Math.max(0,Math.min(O,re)),n.scroll.to(O),G&&u?.length){let b=n.hooks.get("select");if(b)b(...u)}let ie=n.hooks.get("loadVisibleRange"),le=()=>{if(c===void 0)return;let b=n.hooks.get("_focusById");if(b)b(c,"preserve")};return new Promise((b)=>{let E=(k)=>{if(k)le();b()};if(ie){let k=0,y=()=>{if(p.containerSize>0){if(Math.abs(l.getPixelEquivalent()-O)>1)n.scroll.to(O);ie().then(()=>E(!0),()=>E(!1))}else if(++k<10)requestAnimationFrame(y);else E(!1)};requestAnimationFrame(y)}else{let k=n.hooks.get("reload");if(k)requestAnimationFrame(()=>{k().then(()=>E(!0),()=>E(!1))});else requestAnimationFrame(()=>E(!0))}})};n.hooks.method("restoreScroll",z);let R=!!(r&&t);if(n.hooks.onDestroy(()=>{i=!0}),t){o=()=>{if(i||R)return;let L=a();try{sessionStorage.setItem(t,JSON.stringify(L))}catch{}},n.hooks.method("_saveSnapshot",o);let v=0,G=()=>{if(v)return;v=requestAnimationFrame(()=>{if(v=0,o)o()})};s.on("selection:change",G),s.on("focus:change",G);let T=0,f=()=>{if(T=0,o)o()},u=()=>{if(T)clearTimeout(T);T=setTimeout(f,300)};s.on("scroll",u);let c=()=>{o?.()};if(window.addEventListener("beforeunload",c),n.hooks.onDestroy(()=>{if(v)cancelAnimationFrame(v);if(T)clearTimeout(T);window.removeEventListener("beforeunload",c)}),r&&r.total&&r.total>0){let L=n.hooks.get("_cancelAutoLoad");if(L)L();let D=n.hooks.get("_setTotal");if(D)D(r.total)}}if(r){let v=!0;if(r.selectedIds?.length){let G=n.hooks.get("_seedSelection");if(G)G(r.selectedIds),v=!1}queueMicrotask(()=>{if(z(r,v),R=!1,o)o()})}},hooks:{onIdle(){if(o&&!i)o()}},destroy(){i=!0,o=null}}}function ho(e){let t=[];if(typeof window<"u"&&e.scroll?.element===window)t.push(At());let r=e.item,i=e.orientation==="horizontal",o=i?r.width!=null:r.height!=null,n=i?r.estimatedWidth!=null:r.estimatedHeight!=null;if(!o&&n){if(e.layout==="grid")throw Error('[vlist] config: layout: "grid" needs a fixed item size. An estimate wires autosize(), which grid() cannot combine with: grid indexes its size cache by row, autosize measures items. Use item.height (item.width when horizontal).');t.push(wt())}if(e.adapter)t.push(kt({adapter:e.adapter,...e.loading&&{loading:e.loading}}));if(e.layout==="grid"){if(!e.grid)throw Error('[vlist] config: layout: "grid" requires a `grid` option, e.g. { columns: 3 }');t.push(Rt(e.grid))}if(e.layout==="masonry"){if(!e.masonry)throw Error('[vlist] config: layout: "masonry" requires a `masonry` option, e.g. { columns: 3 }');t.push(_t(e.masonry))}if(e.groups)t.push(Ft(e.groups));if(e.selection)t.push(Ot(e.selection));if(e.a11y)t.push(e.a11y===!0?yt():yt(e.a11y));let s=e.scroll?.scrollbar??e.scrollbar;if(s===!0)t.push(St({}));else if(s&&typeof s==="object")t.push(St(s));if(e.snapshots)t.push(Dt());if(e.plugins&&e.plugins.length>0){let l=new Set(e.plugins.map((p)=>p.name));return[...t.filter((p)=>!l.has(p.name)),...e.plugins]}return t}function _i(e){let{factory:t,...r}=e;return(t??gn)(r,ho(e))}export{_i as createVListFromConfig,ho as resolvePlugins};
@@ -1,18 +1,36 @@
1
1
  /**
2
- * vlist v2 — createVList()
2
+ * vlist — createVList()
3
3
  *
4
4
  * Factory function. Resolves config, creates DOM, compiles hooks from
5
5
  * plugins, wires the 2-phase pipeline, returns the public VList API.
6
6
  */
7
7
  import type { VListItem } from "../types";
8
- import type { CreateVListConfig, VListPlugin, VList } from "./types";
8
+ import type { CreateVListConfig, PluginMethods, VListPlugin, VList } from "./types";
9
9
  import type { SizeCache } from "./sizes";
10
10
  import type { BoundedScrollHandler, BoundedScrollConfig } from "./runway";
11
11
  import type { ScrollHandler, ScrollHandlerConfig } from "./scroll";
12
12
  import { type Emitter } from "../events";
13
13
  import type { VListEvents } from "../types";
14
- /** Create a list with native scrolling. Opt into synthetic input via vlist/synthetic. */
15
- export declare function createVList<T extends VListItem = VListItem>(config: CreateVListConfig<T>, plugins?: VListPlugin<T>[]): VList<T>;
14
+ /**
15
+ * Create a list with native scrolling. Opt into synthetic input via vlist/synthetic.
16
+ *
17
+ * Let the item type be inferred from the config — its `items`, or the
18
+ * `template` parameter — rather than passing it as a type argument. The list's
19
+ * type carries exactly the methods its plugins add, and that inference needs
20
+ * the plugins tuple as the second type parameter; TypeScript allows no partial
21
+ * type-argument list, so `createVList<Row>(config, [selection()])` fills the
22
+ * tuple with its default and returns a bare `VList<Row>`, with every plugin
23
+ * method gone. It compiles, which is why it looks like the fix for a
24
+ * `VListItem` constraint error on `Row`. The fix is the constraint: give `Row`
25
+ * an `id`, and keep the argument list empty.
26
+ *
27
+ * @example
28
+ * // inferred: list has select(), getSelected() …
29
+ * const list = createVList({ container, items, item: { height: 40, template } }, [selection()]);
30
+ * // explicit: compiles, and list.select does not exist
31
+ * const bare = createVList<Row>({ container, items, item: { height: 40, template } }, [selection()]);
32
+ */
33
+ export declare function createVList<T extends VListItem = VListItem, const P extends readonly VListPlugin<T, any>[] = VListPlugin<T>[]>(config: CreateVListConfig<T>, plugins?: P): VList<T> & PluginMethods<P>;
16
34
  /** @internal Shared factory; entries select the input handler. */
17
35
  export declare function createCore<T extends VListItem = VListItem>(rawConfig: CreateVListConfig<T>, plugins?: VListPlugin<T>[],
18
36
  /** @internal Omitted by the native entry. */