@aiquants/virtualscroll 3.9.0 → 3.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,19 @@
2
2
 
3
3
  All notable changes to `@aiquants/virtualscroll` are documented here.
4
4
 
5
+ ## 3.9.1 (2026-10-04)
6
+
7
+ ### Fixed
8
+
9
+ - **同じ揃えへの `scrollToIndex` が確定を 1 回足していた**: 3.9.0 は行ラッパーが守る端を決める「覚えた揃え」を
10
+ 状態に持つようになったが、揃えを覚えるたびに、辺と位置が同じでも新しいオブジェクトを書いていた。そのため
11
+ 既に揃っている位置への `scrollToIndex` (打鍵のたびに一覧を先頭へ戻すホストなど) のたびに、`VirtualScroll` の
12
+ 確定が 1 回増えていた。いまは辺と位置が覚えた揃えと同じなら書かない。
13
+ - **位置 0 から始まる一覧は先頭の行の上端に揃った状態で始まる**: 初期行も錨も持たずに位置 0 でマウントした
14
+ 一覧は、揃えを覚えないまま始まっていた。そのため、開いた直後に先頭へ戻すだけの最初の `scrollToIndex` が
15
+ 揃えを書き、確定を 1 回足していた。位置 0 の行ラッパーは覚えた揃えによらず上端で揃えるので、見た目は
16
+ 変わらない。いまは初期行や錨でマウントした一覧と同じく、その位置の上端揃えとして覚えて始める。
17
+
5
18
  ## 3.9.0 (2026-10-04)
6
19
 
7
20
  ### Added
@@ -1 +1 @@
1
- {"version":3,"file":"VirtualScroll.d.ts","sourceRoot":"","sources":["../src/VirtualScroll.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VirtualScroll.d.ts","sourceRoot":"","sources":["../src/VirtualScroll.tsx"],"names":[],"mappings":"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"}
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),t=require("react"),Ct=require("tailwind-merge"),qn=1e-6,Mn=(r,e,n)=>{if(!(Number.isFinite(e)&&e>0))throw new RangeError(`[VirtualScroll] devicePixelRatio must be a finite number > 0, received ${e}`);const s=r*e,i=Math.round(s);return n==="none"||Math.abs(s-i)<=qn?i/e:(n==="end"?Math.floor(s):Math.ceil(s))/e},Yn=(r,e)=>{const n=r.ownerDocument.defaultView;if(n===null)throw new Error(`${e} belongs to a document without a window, so it has no device-pixel ratio`);return n},yn=()=>{},Bn=()=>null,Wn=()=>typeof window>"u"?null:window,cn=new WeakMap,jn=(r,e)=>{let n=r.matchMedia(`(resolution: ${r.devicePixelRatio}dppx)`);const s=()=>{n.removeEventListener("change",s),n=r.matchMedia(`(resolution: ${r.devicePixelRatio}dppx)`),n.addEventListener("change",s);for(const a of[...e])a()};return n.addEventListener("change",s),()=>{n.removeEventListener("change",s)}},Un=(r,e)=>{if(typeof r.matchMedia!="function")return yn;const n=cn.get(r),s=n===void 0?{subscribers:new Set,disarm:null}:n;return n===void 0&&cn.set(r,s),s.subscribers.add(e),s.disarm===null&&(s.disarm=jn(r,s.subscribers)),()=>{s.subscribers.delete(e),s.subscribers.size===0&&s.disarm!==null&&(s.disarm(),s.disarm=null)}},Tn=r=>{const[e,n]=t.useState(Wn),s=t.useCallback(d=>e===null?yn:Un(e,d),[e]),i=t.useCallback(()=>e===null?null:e.devicePixelRatio,[e]),a=t.useSyncExternalStore(s,i,Bn),o=t.useCallback(d=>{if(d===null)return;const f=Yn(d,r);f!==e&&n(f)},[e,r]);return{ratio:a,attach:o}},Qr=["en","ja"],Lr=["scrollUp","scrollDown","scrollLeft","scrollRight","scrollToTop","scrollToBottom","noItems"],En=Object.freeze({en:Object.freeze({scrollUp:"Scroll up",scrollDown:"Scroll down",scrollLeft:"Scroll left",scrollRight:"Scroll right",scrollToTop:"Top",scrollToBottom:"Bottom",noItems:"No items"}),ja:Object.freeze({scrollUp:"上へスクロール",scrollDown:"下へスクロール",scrollLeft:"左へスクロール",scrollRight:"右へスクロール",scrollToTop:"先頭へ",scrollToBottom:"末尾へ",noItems:"項目がありません"})}),Gn=r=>Qr.includes(r),Yr=r=>typeof r=="string"?JSON.stringify(r):r===null?"null":typeof r,In=r=>{if(r===void 0)return"en";if(Gn(r))return r;const e=Qr.map(n=>JSON.stringify(n)).join(", ");throw new RangeError(`[virtualscroll] locale must be one of ${e}; got ${Yr(r)}`)},Kn=r=>Lr.includes(r),Jr=(r,e)=>{const n=En[In(r)];if(e===void 0)return n;if(e===null||typeof e!="object")throw new RangeError(`[virtualscroll] labels must be an object; got ${Yr(e)}`);const s=Object.getPrototypeOf(e);if(s!==Object.prototype&&s!==null)throw new RangeError(`[virtualscroll] labels must be a plain object (prototype Object.prototype or null); got ${Array.isArray(e)?"an array":"an object with a non-plain prototype"}`);const i=new Set(Object.keys(e));for(const o of i)if(!Kn(o))throw new RangeError(`[virtualscroll] labels.${o} is not a known label key; expected one of ${Lr.join(", ")}`);const a={...n};for(const o of Lr){const d=i.has(o)?e[o]:void 0;if(d!==void 0){if(typeof d!="string"||d.trim()==="")throw new RangeError(`[virtualscroll] labels.${o} must be a non-blank string; got ${Yr(d)}`);a[o]=d}}return Object.freeze(a)};class k{level;prefix;impl;constructor(e=2,n="[virtualscroll]",s=console){this.level=e,this.prefix=n,this.impl=s}static instance=new k(2,"[virtualscroll]");static setLevel(e){k.instance.setLevel(e)}setLevel(e){this.level=e}static setImplementation(e){k.instance.setImplementation(e)}setImplementation(e){this.impl=e}static setPrefix(e){k.instance.setPrefix(e)}setPrefix(e){this.prefix=e}static isEnabled(e){return k.instance.isEnabled(e)}isEnabled(e){return this.level<=e}static resolveLazy(e){if(typeof e!="function")return e;try{return e()}catch{return e}}formatMessage(e){return typeof e=="string"?[`${this.prefix} ${e}`]:[this.prefix,e]}static debug(e,...n){k.instance.debug(e,...n)}debug(e,...n){this.level<=0&&this.impl.debug(...this.formatMessage(k.resolveLazy(e)),...n.map(k.resolveLazy))}static info(e,...n){k.instance.info(e,...n)}info(e,...n){this.level<=1&&this.impl.info(...this.formatMessage(k.resolveLazy(e)),...n.map(k.resolveLazy))}static warn(e,...n){k.instance.warn(e,...n)}warn(e,...n){this.level<=2&&this.impl.warn(...this.formatMessage(k.resolveLazy(e)),...n.map(k.resolveLazy))}static error(e,...n){k.instance.error(e,...n)}error(e,...n){this.level<=3&&this.impl.error(...this.formatMessage(k.resolveLazy(e)),...n.map(k.resolveLazy))}}const Cn=r=>typeof r.setPointerCapture=="function"&&typeof r.releasePointerCapture=="function"&&typeof r.hasPointerCapture=="function",Pn=(r,e)=>Cn(r)&&r.hasPointerCapture(e),yr=(r,e)=>{if(!Cn(r))return"unsupported";try{return r.setPointerCapture(e),"captured"}catch(n){return(typeof n=="object"&&n!==null&&"name"in n?n.name:void 0)==="NotFoundError"?"inactive-pointer":"rejected"}},tr=(r,e)=>{Pn(r,e)&&r.releasePointerCapture(e)},un={active:!1,offsetX:0,offsetY:0,distance:0,direction:0,pointerId:null},Ar=6,Zn=8,Qn=({dragState:r,normalizedDistance:e})=>{const n=1+e*.18,s=.16+e*.24,i=.38+e*.28,a=r.active?"80ms ease-out":"220ms ease";return N.jsxs(N.Fragment,{children:[N.jsx("div",{className:"aqvs-tap-scroll-circle-visual-outer",style:{background:"linear-gradient(140deg, rgba(255,255,255,0.62), rgba(72,72,72,0.48))",boxShadow:`0 0 0 1px rgba(255,255,255,0.28), 0 10px 22px rgba(0,0,0,${s})`,transform:`scale(${n})`,transition:`${a}, ${r.active?"80ms":"260ms"} box-shadow ease`}}),N.jsx("div",{className:"aqvs-tap-scroll-circle-inner",style:{background:"linear-gradient(140deg, rgba(255,255,255,0.72), rgba(28,28,28,0.58))",boxShadow:"inset 0 4px 10px rgba(0,0,0,0.24), inset 0 0 2px rgba(255,255,255,0.55)",opacity:i,transition:r.active?"120ms opacity ease-out":"220ms opacity ease"}})]})},en=t.memo(t.forwardRef(({onDragChange:r,className:e,maxVisualDistance:n=160,size:s=40,style:i,opacity:a=1,renderVisual:o,axis:d="y"},f)=>{const[g,x]=t.useState(un),w=t.useRef(null),y=t.useRef(null),v=t.useRef({x:0,y:0}),A=t.useRef(null),F=t.useRef(0),H=t.useCallback(E=>{x(E),r(E)},[r]),le=t.useCallback((E,Y,ae=!1)=>{const{x:He,y:oe}=v.current,Ve=E-He,ft=Y-oe;let ce,Be;if(d==="xy")ce=Math.hypot(Ve,ft),Be=ce<Ar?0:1;else{const Le=d==="x"?Ve:ft;ce=Math.abs(Le),Be=ce<Ar?0:Le<0?-1:1}const Re=F.current;let Qe=Be;const nt=Ar+Zn;Be===0?Re!==0&&ce<nt?Qe=Re:(Qe=0,ae||(F.current=0)):Be!==Re&&Re!==0&&ce<nt?Qe=Re:F.current=Be,H({active:ae||ce>=Ar,offsetX:Ve,offsetY:ft,distance:ce,direction:Qe,pointerId:w.current})},[H,d]),Ae=t.useCallback(E=>{if(E===null)return;const Y=A.current;Y!==null&&tr(Y,E)},[]),z=t.useCallback((E=!1)=>{E&&Ae(w.current),w.current=null,y.current=null,F.current=0,H(un)},[H,Ae]),U=t.useCallback(E=>{if(w.current!==null&&w.current!==E.pointerId){y.current={pointerId:E.pointerId,clientX:E.clientX,clientY:E.clientY},E.preventDefault(),E.stopPropagation();return}E.preventDefault(),E.stopPropagation();const Y=A.current??E.currentTarget,{left:ae,top:He,width:oe,height:Ve}=Y.getBoundingClientRect();v.current={x:ae+oe/2,y:He+Ve/2},w.current=E.pointerId,yr(Y,E.pointerId),le(E.clientX,E.clientY,!0)},[le]),Q=t.useCallback(E=>{if(w.current!==E.pointerId){y.current!==null&&y.current.pointerId===E.pointerId&&(y.current={pointerId:E.pointerId,clientX:E.clientX,clientY:E.clientY});return}E.preventDefault(),le(E.clientX,E.clientY)},[le]),D=t.useCallback(E=>{if(w.current!==E.pointerId){y.current!==null&&y.current.pointerId===E.pointerId&&(y.current=null);return}E.preventDefault(),E.stopPropagation();const Y=y.current;if(y.current=null,Y!==null){Ae(E.pointerId);const ae=A.current;if(ae===null||yr(ae,Y.pointerId)!=="inactive-pointer"){w.current=Y.pointerId,le(Y.clientX,Y.clientY,!0);return}}z(!0)},[z,Ae,le]),V=t.useCallback(E=>{E.target===E.currentTarget&&w.current===E.pointerId&&z(!1)},[z]);t.useImperativeHandle(f,()=>({reset:()=>{z(!0)},getElement:()=>A.current}),[z]);const M=Math.min(Math.max(a,0),1),re=s/64,j=Math.min(g.distance,n)/n,q=g.direction*j*10*re;let J;if(d==="xy"){const E=g.distance,Y=E===0?0:q*g.offsetX/E,ae=E===0?0:q*g.offsetY/E;J=`translate(${Y}px, ${ae}px)`}else d==="x"?J=`translateX(${q}px)`:J=`translateY(${q}px)`;const K=o??Qn,ge={dragState:g,normalizedDistance:j,sizeScale:re,size:s,opacity:M},Ze={...i,width:s,height:s,transform:J};return Ze.opacity=M,N.jsx("div",{ref:A,"data-testid":"virtual-scroll-tap-circle",className:Ct.twMerge("aqvs-tap-scroll-circle",e),style:Ze,tabIndex:-1,onPointerDown:U,onPointerMove:Q,onPointerUp:D,onPointerCancel:D,onLostPointerCapture:V,role:"presentation",children:K(ge)})}));en.displayName="TapScrollCircle";const ee=(r,e,n)=>Math.max(e,Math.min(n,r)),Br=(r,e)=>{const n=e==="x",s=r.getBoundingClientRect(),i=n?s.width:s.height,a=x=>{const w=Number.parseFloat(x);return Number.isFinite(w)?w:0},o=window.getComputedStyle(r),d=a(n?o.width:o.height),f=d>0?d+a(n?o.paddingLeft:o.paddingTop)+a(n?o.paddingRight:o.paddingBottom)+a(n?o.borderLeftWidth:o.borderTopWidth)+a(n?o.borderRightWidth:o.borderBottomWidth):0,g=f>0?f:n?r.offsetWidth:r.offsetHeight;return g<=0||i<=0?1:i/g},Tr="virtualscroll:tap-scroll-cancel",dn=20,Jn=250,es=60,ts=20,rs=20,tn={maxDistance:240,minSpeedMultiplier:.2},ns=tn.maxDistance,fn={active:!1,offsetX:0,offsetY:0,distance:0,direction:0,pointerId:null},Fr=2.2,ss=8,is=120,kn=1/10,Ht={enabled:!0,size:40,offsetX:-80,offsetY:0,className:void 0,maxVisualDistance:ns,minSpeedMultiplier:tn.minSpeedMultiplier,opacity:.9,renderVisual:void 0,maxSpeedCurve:void 0},as=r=>r?{mainSizeKey:"width",crossSizeKey:"height",thumbTranslateFunction:"translateX",selectDelta:(e,n)=>e,getPointerCoordinate:({clientX:e})=>e,arrowIcons:["◀","▶"],directionClass:"aqvs-scrollbar-horizontal",orientation:"horizontal"}:{mainSizeKey:"height",crossSizeKey:"width",thumbTranslateFunction:"translateY",selectDelta:(e,n)=>n,getPointerCoordinate:({clientY:e})=>e,arrowIcons:["▲","▼"],directionClass:"aqvs-scrollbar-vertical",orientation:"vertical"},Wr=(r,e)=>{const n=r?.maxSpeedMultiplier,s=typeof n=="number"?n:An(e);return{enabled:r?.enabled??Ht.enabled,size:r?.size??Ht.size,offsetX:r?.offsetX??Ht.offsetX,offsetY:r?.offsetY??Ht.offsetY,className:r?.className??Ht.className,maxVisualDistance:r?.maxVisualDistance??Ht.maxVisualDistance,maxSpeedMultiplier:s,minSpeedMultiplier:Math.max(r?.minSpeedMultiplier??Ht.minSpeedMultiplier,0),opacity:ee(r?.opacity??Ht.opacity,0,1),renderVisual:r?.renderVisual??Ht.renderVisual,maxSpeedCurve:r?.maxSpeedCurve??Ht.maxSpeedCurve}},os=({isDragging:r,isThumbHovered:e,enableThumbDrag:n})=>t.useMemo(()=>n?r?"dragging":e?"hover":"idle":"disabled",[n,r,e]),ls=({canUseArrowButtons:r,enableArrowButtons:e,resetTapScroll:n,scrollByStep:s})=>{const i=t.useRef(null),a=t.useRef(null),o=t.useRef(null),d=t.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null),a.current!==null&&(window.clearTimeout(a.current),a.current=null),o.current!==null&&(window.removeEventListener("pointerup",o.current),window.removeEventListener("pointercancel",o.current),window.removeEventListener("blur",o.current),o.current=null)},[]),f=t.useCallback(()=>{d()},[d]),g=t.useCallback(w=>y=>{if(!r)return;y.cancelable&&y.preventDefault(),y.stopPropagation(),n(),d(),s(w),a.current=window.setTimeout(()=>{i.current=window.setInterval(()=>{s(w)},es)},Jn);const v=()=>d();o.current=v,window.addEventListener("pointerup",v),window.addEventListener("pointercancel",v),window.addEventListener("blur",v)},[r,d,n,s]),x=t.useCallback(w=>y=>{e&&(y.key==="Enter"||y.key===" "||y.key==="Spacebar")&&(y.preventDefault(),s(w))},[e,s]);return t.useEffect(()=>{r||d()},[r,d]),t.useEffect(()=>()=>{d()},[d]),{handleArrowPointerDown:g,handleArrowPointerUp:f,handleArrowKeyDown:x}},cs=700,er=(r,e)=>typeof r=="number"&&Number.isFinite(r)?r:e,Dr=({distance:r,maxDistance:e,viewportSize:n,minSpeedMultiplier:s,maxSpeedMultiplier:i,hasCustomMaxSpeedMultiplier:a,curve:o})=>{const d=Math.max(er(r,0),0),f=er(e,0),g=f>0?Math.min(d,f)/f:1,x=Math.max(er(n,0),0),w=Math.max(er(s,0),0),y=Math.max(er(i,0),0),v=Math.max(x*w,40),A=a?v:1200,F=Math.max(x*y,A),H=o?Math.max(er(o.exponentialScale,y),0):0,le=o?Math.min(F,Math.max(x*H,v)):F,Ae=Math.max(le,v);let z=g**1.1;if(o){const Q=Math.min(Math.max(er(o.exponentialSteepness,0),0),cs);if(Q===0)z=g;else{const D=Math.expm1(Q)||1;z=Math.min(Math.max(Math.expm1(Q*g)/D,0),1)}}const U=Math.min(Math.max(er(o?.easedOffset,0),0),1);return v+(Ae-v)*(U+(1-U)*z)},An=r=>{if(!r||r<=0)return Fr;const e=Math.max(1,r),n=Math.log10(e),s=Fr+n*ss;return ee(s,Fr,is)},rn=({contentSize:r,viewportSize:e,scrollPosition:n,onScroll:s,enableThumbDrag:i=!0,enableTrackClick:a=!0,enableArrowButtons:o=!0,enableArrowButtonTabStops:d=!0,horizontal:f=!1,enableHorizontalTapCircle:g=!1,stretchMainSize:x=!1,scrollBarWidth:w=12,className:y,ariaControls:v,tapScrollCircleOptions:A,itemCount:F,renderThumbOverlay:H,visibleStartIndex:le,visibleEndIndex:Ae,locale:z,labels:U})=>{const[Q,D]=t.useState(!1),[V,M]=t.useState(!1),[re,j]=t.useState(!1),q=t.useRef(null),J=t.useRef({pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1,captureTarget:null}),K=t.useRef({pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1}),ge=t.useRef(n),Ze=t.useRef(s),E=t.useRef(fn),Y=t.useRef(null),ae=t.useRef(null),He=t.useRef(null),oe=t.useRef(0),Ve=t.useRef(0),ft=t.useMemo(()=>Wr(A,F),[F,A]),ce=t.useMemo(()=>as(f),[f]),Be=t.useMemo(()=>Jr(z,U),[z,U]),Re=f?[Be.scrollLeft,Be.scrollRight]:[Be.scrollUp,Be.scrollDown],{enabled:Qe,size:nt,offsetX:Le,offsetY:st,className:it,maxVisualDistance:$e,maxSpeedMultiplier:fe,minSpeedMultiplier:yt,opacity:ne,renderVisual:Se,maxSpeedCurve:se}=ft,te=t.useRef({viewportSize:e,maxScrollPosition:Math.max(r-e,0),scrollBarVisible:r>e,effectiveTapMaxDistance:Math.max($e,1),tapCircleMaxSpeedMultiplier:fe,tapCircleMinSpeedMultiplier:yt,tapCircleMaxSpeedCurve:se,tapScrollCircleOptions:A,effectiveTrackLength:0,onScroll:s,scrollPosition:n}),{mainSizeKey:We,crossSizeKey:$,thumbTranslateFunction:Xe,selectDelta:P,getPointerCoordinate:Te,arrowIcons:bt,directionClass:L,orientation:St}=ce,ct=Math.max($e,1),kt=e/r,m=Math.max(e-w*2,0),ie=kt*m,ue=Math.min(Math.max(dn,ie||0),m||dn),G=Math.max(r-e,0),Z=Math.max(m-ue,0),xe=G<=0||Z<=0?0:ee(n/G*Z,0,Z),De=xe+ue/2,{ratio:_e,attach:pe}=Tn("[ScrollBar] the thumb"),qe=_e===null?xe:Mn(xe,_e,"none"),Ye=r>e||Q,ut=Ye&&o;t.useLayoutEffect(()=>{te.current={viewportSize:e,maxScrollPosition:G,scrollBarVisible:Ye,effectiveTapMaxDistance:ct,tapCircleMaxSpeedMultiplier:fe,tapCircleMinSpeedMultiplier:yt,tapCircleMaxSpeedCurve:se,tapScrollCircleOptions:A,effectiveTrackLength:Z,onScroll:s,scrollPosition:n}}),t.useLayoutEffect(()=>{ge.current=n},[n]),t.useLayoutEffect(()=>{Ze.current=s},[s]),t.useEffect(()=>{i||M(!1)},[i]);const dt=os({isDragging:Q,isThumbHovered:V,enableThumbDrag:i}),je=t.useCallback((u,T)=>{const C=te.current,he=T??ge.current;if(Ze.current){const mt=Ze.current(u,he);if(typeof mt=="number"&&Number.isFinite(mt))return ge.current=mt,mt}const Fe=typeof u=="function"?u(he):u,Ie=Math.max(C.maxScrollPosition,0),wt=C.scrollBarVisible?ee(Fe,0,Ie):0;return ge.current=wt,wt},[]),At=t.useCallback(u=>{const T=te.current,C=ge.current;if(!T.scrollBarVisible||T.maxScrollPosition<=0){const zt=je(0,C),Vt=zt-C;return{nextPosition:zt,actualDelta:Vt,reachedBoundary:!0}}if(u===0)return{nextPosition:C,actualDelta:0,reachedBoundary:!1};const Fe=je(zt=>ee(zt+u,0,T.maxScrollPosition),C),Ie=Fe-C,wt=u<0&&C+u<=0,mt=u>0&&C+u>=T.maxScrollPosition,ar=u<0&&(Fe<=0||wt&&Ie===0)||u>0&&(Fe>=T.maxScrollPosition||mt&&Ie===0);return{nextPosition:Fe,actualDelta:Ie,reachedBoundary:ar}},[je]),Ee=t.useCallback((u,T)=>{u.current+=T;const C=Math.max(te.current.maxScrollPosition,0);C>0&&(u.current=ee(u.current,-C,C));const he=At(u.current);return u.current-=he.actualDelta,he.reachedBoundary&&(u.current=0),he},[At]),me=t.useCallback(()=>{ae.current!==null&&(window.cancelAnimationFrame(ae.current),ae.current=null),He.current=null,oe.current=0,Ve.current=0},[]),Me=t.useCallback(()=>{E.current={...fn},j(!1),Y.current?.reset(),me()},[me]),ve=t.useCallback(u=>{const T=E.current,C=te.current;if(!T.active||T.direction===0){me();return}if(!C.scrollBarVisible||C.maxScrollPosition<=0){me();return}const he=He.current??u,Fe=Math.max((u-he)/1e3,0),Ie=Math.min(Fe,kn);if(He.current=u,Ie<=0){ae.current=window.requestAnimationFrame(ve);return}const wt=Dr({distance:T.distance,maxDistance:C.effectiveTapMaxDistance,viewportSize:C.viewportSize,minSpeedMultiplier:C.tapCircleMinSpeedMultiplier,maxSpeedMultiplier:C.tapCircleMaxSpeedMultiplier,hasCustomMaxSpeedMultiplier:typeof C.tapScrollCircleOptions?.maxSpeedMultiplier=="number",curve:C.tapCircleMaxSpeedCurve});Ve.current!==T.direction&&(Ve.current=T.direction,oe.current=0);const{reachedBoundary:mt}=Ee(oe,T.direction*wt*Ie);if(mt){me();return}ae.current=window.requestAnimationFrame(ve)},[Ee,me]),S=t.useCallback(()=>{ae.current===null&&(He.current=null,oe.current=0,ae.current=window.requestAnimationFrame(ve))},[ve]);t.useEffect(()=>{const u=E.current;!u.active||u.direction===0||S()},[r,e,S]),t.useEffect(()=>()=>{me()},[me]);const I=t.useCallback(u=>{E.current=u,j(u.active),u.active&&u.direction!==0?S():me()},[S,me]);t.useEffect(()=>{Qe||Me()},[Me,Qe]),t.useEffect(()=>{const u=T=>{const he=T.detail?.paneId;he&&v&&he!==v||Me()};return window.addEventListener(Tr,u),()=>{window.removeEventListener(Tr,u)}},[v,Me]),t.useEffect(()=>{if(!Qe)return;const u=T=>{if(!E.current.active||E.current.pointerId===T.pointerId)return;const C=T.target;if(!(C instanceof Node)){Me();return}Y.current?.getElement()?.contains(C)||Me()};return document.addEventListener("pointerdown",u,!0),()=>{document.removeEventListener("pointerdown",u,!0)}},[Me,Qe]);const tt=u=>{if(!Ye||Z<=0||G<=0)return 0;const T=ee(u,0,Z);return ee(T/Z*G,0,G)},Ue=t.useCallback(u=>{const{scrollBarVisible:T,effectiveTrackLength:C,maxScrollPosition:he}=te.current;if(k.debug("[ScrollBar] calculateScrollPositionFromThumb",()=>({thumbPos:u,trackLen:C,maxScroll:he})),C<=0||he<=0)return null;const Fe=ee(u,0,C);return ee(Fe/C*he,0,he)},[]),Oe=t.useCallback(u=>Br(u,f?"x":"y"),[f]),Pe=t.useCallback(u=>{const T=J.current;if(T.pointerId!==u.pointerId)return;const C=u.clientX-T.startClientX,he=u.clientY-T.startClientY,Fe=P(C,he)/(T.scale||1);k.debug("[ScrollBar] handleThumbPointerMove",()=>({delta:Fe,startThumbPosition:T.startThumbPosition,clientY:u.clientY,startClientY:T.startClientY,metrics:te.current}));const Ie=Ue(T.startThumbPosition+Fe);Ie!==null&&je(Ie),u.cancelable&&u.preventDefault()},[P,Ue,je]),we=t.useCallback(u=>{const T=J.current;if(T.pointerId===u.pointerId)if(document.removeEventListener("pointermove",Pe),document.removeEventListener("pointerup",we),document.removeEventListener("pointercancel",we),T.captureTarget!==null&&tr(T.captureTarget,u.pointerId),J.current={pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1,captureTarget:null},D(!1),q.current){const C=q.current.getBoundingClientRect();u.clientX>=C.left&&u.clientX<=C.right&&u.clientY>=C.top&&u.clientY<=C.bottom||M(!1)}else M(!1)},[Pe]);t.useEffect(()=>()=>{document.removeEventListener("pointermove",Pe),document.removeEventListener("pointerup",we),document.removeEventListener("pointercancel",we)},[Pe,we]);const Ce=t.useRef(0),Tt=t.useRef(0),Xt=t.useCallback(u=>{const T=Math.max(Math.round(te.current.viewportSize/rs),ts);Tt.current!==u&&(Tt.current=u,Ce.current=0),Ee(Ce,u*T)},[Ee]),{handleArrowPointerDown:Ot,handleArrowPointerUp:ke,handleArrowKeyDown:Et}=ls({canUseArrowButtons:ut,enableArrowButtons:o,resetTapScroll:Me,scrollByStep:Xt}),ir=u=>{if(!Ye)return;if(!i){u.preventDefault(),u.stopPropagation();return}if(u.pointerType==="mouse"&&u.button!==0||u.ctrlKey)return;Me();const T=u.currentTarget,C=Oe(T),he=yr(T,u.pointerId)==="captured"?T:null;J.current={pointerId:u.pointerId,startThumbPosition:xe,startClientX:u.clientX,startClientY:u.clientY,scale:C,captureTarget:he},document.addEventListener("pointermove",Pe),document.addEventListener("pointerup",we),document.addEventListener("pointercancel",we),D(!0),M(!0),u.preventDefault(),u.stopPropagation()},rr=u=>{if(!Ye)return;if(!a){u.preventDefault(),u.stopPropagation();return}if(u.pointerType==="mouse"&&u.button!==0||u.ctrlKey)return;const T=u.currentTarget,C=T.getBoundingClientRect(),he=Te(u),Fe=Oe(T),Ie=(he-(f?C.left:C.top))/Fe;Me();const wt=Ie-ue/2,mt=tt(wt);je(mt),yr(T,u.pointerId),K.current={pointerId:u.pointerId,startThumbPosition:wt,startClientX:u.clientX,startClientY:u.clientY,scale:Fe},u.preventDefault(),u.stopPropagation()},at=()=>{K.current={pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1}},Nt=u=>{const T=K.current;if(T.pointerId!==u.pointerId)return;if(u.pointerType==="mouse"&&u.buttons===0){at();return}const C=u.clientX-T.startClientX,he=u.clientY-T.startClientY,Fe=P(C,he)/(T.scale||1),Ie=tt(T.startThumbPosition+Fe);je(Ie),u.cancelable&&u.preventDefault()},qt=u=>{K.current.pointerId===u.pointerId&&(tr(u.currentTarget,u.pointerId),at(),u.preventDefault(),u.stopPropagation())},Yt=u=>{K.current.pointerId===u.pointerId&&(tr(u.currentTarget,u.pointerId),at())},Bt=u=>{u.target===u.currentTarget&&K.current.pointerId===u.pointerId&&at()},Kt=t.useMemo(()=>ee((re?1:.8)*ne,0,1),[re,ne]),Ft=t.useMemo(()=>{const T=`calc(50% - ${nt/2}px + ${st}px)`;return{left:Le,top:T}},[Le,st,nt]),Wt=(u,T,C,he)=>N.jsx("button",{type:"button",tabIndex:d?0:-1,className:"aqvs-scrollbar-arrow-button",style:{[We]:w,[$]:w},"aria-label":T,onPointerDown:Ot(u),onPointerUp:ke,onPointerLeave:ke,onPointerCancel:ke,onKeyDown:Et(u),"aria-disabled":!o,disabled:!ut,children:N.jsx("span",{"aria-hidden":"true",children:C})},he),jt=H&&Ye?{orientation:St,scrollPosition:n,maxScrollPosition:G,contentSize:r,viewportSize:e,thumbSize:ue,thumbPosition:xe,thumbCenter:De,trackSize:m,isDragging:Q,isTapScrollActive:re,visibleStartIndex:le,visibleEndIndex:Ae}:null;return N.jsxs("div",{className:Ct.twMerge("aqvs-scrollbar",L,y),style:{...x&&!f?{}:{[We]:e},[$]:w},"data-visible":Ye?"true":"false",role:"scrollbar",tabIndex:-1,"aria-controls":v,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":G,"aria-orientation":f?"horizontal":"vertical",children:[(!f||g)&&Ye&&Qe&&N.jsx(en,{axis:f?"x":"y",ref:Y,className:Ct.twMerge("aqvs-scrollbar-tap-circle-wrapper",it),size:nt,maxVisualDistance:ct,style:Ft,opacity:Kt,renderVisual:Se,onDragChange:I},"tap-circle"),Wt(-1,Re[0],bt[0],"arrow-start"),N.jsxs("div",{className:"aqvs-scrollbar-track",style:{borderRadius:w/2},onPointerDown:rr,onPointerMove:Nt,onPointerUp:qt,onPointerCancel:Yt,onLostPointerCapture:Bt,"aria-disabled":!a,children:[jt&&N.jsx("div",{className:"aqvs-scrollbar-overlay","aria-hidden":!0,children:H?.(jt)},"overlay"),N.jsx("div",{ref:pe,className:"aqvs-scrollbar-thumb-wrapper",style:{[We]:ue,top:0,left:0,...f?{bottom:0}:{right:0},transform:`${Xe}(${qe}px)`},"data-visible":Ye||Q?"true":"false",onPointerDown:ir,role:"slider","aria-orientation":f?"horizontal":"vertical","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":G,"aria-disabled":!i,tabIndex:-1,children:N.jsx("div",{ref:q,className:Ct.twMerge("aqvs-scrollbar-thumb",f?"aqvs-scrollbar-thumb-horizontal":"aqvs-scrollbar-thumb-vertical"),"data-testid":"aqvs-scrollbar-thumb","data-thumb-state":dt,style:{borderRadius:w-1,cursor:i?"pointer":"default"},onMouseEnter:()=>{i&&M(!0)},onMouseLeave:()=>{i&&M(!1)}},"thumb")},"thumb-wrapper")]},"track"),Wt(1,Re[1],bt[1],"arrow-end")]})},Nn=({offsetX:r,offsetY:e,maxDistance:n,x:s,y:i})=>{const a=Number.isFinite(r)?r:0,o=Number.isFinite(e)?e:0,d=Math.hypot(a,o);if(d===0)return{x:0,y:0};const f=Dr({distance:d,maxDistance:n,viewportSize:s.viewportSize,minSpeedMultiplier:s.minSpeedMultiplier,maxSpeedMultiplier:s.maxSpeedMultiplier,hasCustomMaxSpeedMultiplier:s.hasCustomMaxSpeedMultiplier,curve:s.curve}),g=Dr({distance:d,maxDistance:n,viewportSize:i.viewportSize,minSpeedMultiplier:i.minSpeedMultiplier,maxSpeedMultiplier:i.maxSpeedMultiplier,hasCustomMaxSpeedMultiplier:i.hasCustomMaxSpeedMultiplier,curve:i.curve});return{x:f*a/d,y:g*o/d}},us=r=>{const{quantum:e,resetOnDirectionChange:n=!0}=r;if(!(Number.isFinite(e)&&e>0))throw new TypeError(`[createResidualQuantizer] quantum must be a finite positive number, received ${e}`);let s=0;return{push:i=>{if(!Number.isFinite(i)||Math.abs(i)>Number.MAX_SAFE_INTEGER)return 0;n&&s!==0&&i!==0&&Math.sign(i)!==Math.sign(s)&&(s=0),s+=i;const a=Math.trunc(s/e)*e+0;return s-=a,a},peekResidue:()=>s,reset:()=>{s=0}}},ds=16,mn=(r,e,n)=>e===1?r*ds:e===2?r*n:r,fs=(r,e)=>{const n=r.shiftKey&&r.deltaX===0,s=n?r.deltaY:r.deltaX,i=n?0:r.deltaY,a=s!==0&&Math.abs(s)>=Math.abs(i);return{isZoomGesture:r.ctrlKey,isHorizontalDominant:a,horizontalDelta:mn(s,r.deltaMode,e),verticalDelta:mn(i,r.deltaMode,e)}},zn=new WeakSet,hn=r=>{zn.add(r)},ms=r=>zn.has(r),hs=["mouse","pen","touch"],Hr=(r,e)=>!(r==="mouse"||r==="pen"||r==="touch")||e.includes(r),ps=r=>r==="mouse"||r==="pen",Rr={maxVelocity:6,minVelocity:.02,deceleration:.0025,velocitySampleWindow:90,startVelocityThreshold:.04},Nr=(r,e,n)=>{for(const[s,i,a]of e)n==="add"?r.addEventListener(s,i,a):r.removeEventListener(s,i,a)},Vn=t.forwardRef(({children:r,contentSize:e,viewportSize:n,onViewportSizeChange:s,scrollBarWidth:i=12,enableThumbDrag:a=!0,enableTrackClick:o=!0,enableArrowButtons:d=!0,enableArrowButtonTabStops:f=!0,enablePointerDrag:g=!0,pointerDragInputs:x=hs,onScroll:w,className:y,testId:v,style:A,background:F,tapScrollCircleOptions:H,inertiaOptions:le,itemCount:Ae,renderThumbOverlay:z,wheelSpeedMultiplier:U=1,overscrollBehavior:Q="auto",onWheelHorizontal:D,onPanHorizontal:V,contentInsets:M,visibleStartIndex:re,visibleEndIndex:j,renderOverlay:q,initialScrollPosition:J=0,contentProps:K,locale:ge,labels:Ze},E)=>{const Y=t.useRef(Number.isFinite(J)?Math.max(0,J):0),ae=t.useRef(null),He=t.useRef(null),oe=n===void 0,[Ve,ft]=t.useState(0),ce=n??Ve,Be=t.useRef(null);t.useLayoutEffect(()=>{if(!oe)return;const m=He.current;if(!m)return;const ie=()=>{const G=m.offsetHeight;if(G>0){ft(Z=>Z===G?Z:G);return}m.offsetParent!==null&&e>0&&Be.current!=="zero"&&(Be.current="zero",k.warn("[ScrollPane] The self-measured viewport is 0px. Give the scroll pane's host element a definite height (e.g. h-full, flex-1 + min-h-0, an explicit px height), or pass viewportSize explicitly."))};if(ie(),typeof ResizeObserver!="function")return;const ue=new ResizeObserver(ie);return ue.observe(m),()=>{ue.disconnect()}},[e,oe]),t.useLayoutEffect(()=>{oe&&s?.(Ve)},[oe,Ve,s]),t.useLayoutEffect(()=>{if(oe)return;const m=ae.current;if(!m)return;const ie=()=>{const G=m.clientHeight;if(G<=0||Math.abs(G-ce)<=1)return;const Z=`${ce}/${G}`;Be.current!==Z&&(Be.current=Z,k.warn(`[ScrollPane] viewportSize=${ce} but the host band is ${G}px. The clip window, max scroll position, thumb mapping, rendered row count and scrollability all derive from viewportSize, so they are now wrong. Omit viewportSize to let the pane measure itself.`))};if(ie(),typeof ResizeObserver!="function")return;const ue=new ResizeObserver(ie);return ue.observe(m),()=>{ue.disconnect()}},[oe,ce]);const Re=t.useRef(D);t.useEffect(()=>{Re.current=D},[D]);const Qe=t.useRef(V);t.useEffect(()=>{Qe.current=V},[V]);const nt=t.useRef({frame:null,velocity:0,lastTimestamp:null,generation:0}),Le=t.useMemo(()=>({maxVelocity:le?.maxVelocity??Rr.maxVelocity,minVelocity:le?.minVelocity??Rr.minVelocity,deceleration:le?.deceleration??Rr.deceleration,velocitySampleWindow:le?.velocitySampleWindow??Rr.velocitySampleWindow,startVelocityThreshold:le?.startVelocityThreshold??Rr.startVelocityThreshold}),[le]),st=t.useMemo(()=>({top:Math.max(0,M?.top??0),bottom:Math.max(0,M?.bottom??0)}),[M]);k.debug("[ScrollPane] ScrollPane rendered",()=>({contentSize:e,viewportSize:ce,scrollBarWidth:i,className:y,style:A,tapScrollCircleOptions:H,inertiaOptions:le,enablePointerDrag:g,contentInsets:st}));const it=t.useRef({contentSize:e,viewportSize:ce}),$e=t.useMemo(()=>e>ce,[e,ce]),fe=t.useCallback((m,ie)=>{let ue=ie??it.current;ie&&!(Number.isFinite(ie.contentSize)&&Number.isFinite(ie.viewportSize))&&(k.warn("[ScrollPane] scrollTo received non-finite dimsOverride; falling back to the committed dims",{dimsOverride:ie}),ue=it.current);const{contentSize:G,viewportSize:Z}=ue,xe=G>Z,De=Y.current;if(k.debug("[ScrollPane] scrollTo called",()=>({newPosition:m,contentSize:G,viewportSize:Z,currentIsScrollable:xe,prevPosition:De})),!xe)return Y.current!==0&&(Y.current=0,w?.(0,De)),Y.current;const _e=typeof m=="function"?m(Y.current):m;if(!Number.isFinite(_e))return k.warn("[ScrollPane] scrollTo received a non-finite position; keeping the current position",{nextPosition:_e}),Y.current;const pe=Math.max(G-Z,0),qe=ee(_e,0,pe);return Y.current!==qe&&(Y.current=qe,w?.(qe,De)),Y.current},[w]),yt=t.useRef(fe);t.useEffect(()=>{yt.current=fe},[fe]);const ne=t.useCallback(()=>{const m=nt.current;m.generation+=1,m.frame!==null&&cancelAnimationFrame(m.frame),m.frame=null,m.velocity=0,m.lastTimestamp=null},[]),Se=t.useRef(ne);t.useEffect(()=>{Se.current=ne},[ne]),t.useEffect(()=>()=>{Se.current()},[]);const se=t.useCallback(m=>{if(!$e)return;const{maxVelocity:ie,minVelocity:ue,deceleration:G,startVelocityThreshold:Z}=Le,xe=ee(m,-ie,ie);if(Math.abs(xe)<Z)return;ne(),nt.current.velocity=xe,nt.current.lastTimestamp=null;const De=nt.current.generation,_e=pe=>{const qe=nt.current;if(qe.generation!==De)return;if(qe.lastTimestamp===null){qe.lastTimestamp=pe,qe.frame=requestAnimationFrame(_e);return}const Ye=pe-qe.lastTimestamp;if(qe.lastTimestamp=pe,Ye<=0){qe.frame=requestAnimationFrame(_e);return}const ut=qe.velocity;let dt=ut;const je=G*Ye;ut>0?dt=Math.max(0,ut-je):ut<0&&(dt=Math.min(0,ut+je));const Ee=(ut+dt)/2*Ye,me=Y.current;if(Ee!==0&&yt.current(Ue=>Ue+Ee),nt.current.generation!==De)return;const Me=Y.current,{contentSize:ve,viewportSize:S}=it.current,I=Math.max(ve-S,0);qe.velocity=dt;const tt=Me===me||Me<=0&&dt<=0||Me>=I&&dt>=0;if(Math.abs(dt)<ue||tt){ne();return}qe.frame=requestAnimationFrame(_e)};nt.current.frame=requestAnimationFrame(_e)},[$e,Le,ne]),te=t.useRef(se);t.useEffect(()=>{te.current=se},[se]),t.useLayoutEffect(()=>{it.current={contentSize:e,viewportSize:ce}},[e,ce]),t.useLayoutEffect(()=>{const m=He.current;if(!m)return;const ie=()=>{m.scrollTop!==0&&(k.debug("[ScrollPane] Native scroll detected, resetting to 0",()=>({scrollTop:m.scrollTop})),m.scrollTop=0),m.scrollLeft!==0&&(m.scrollLeft=0)};return m.addEventListener("scroll",ie),()=>m.removeEventListener("scroll",ie)},[]),t.useLayoutEffect(()=>{if($e){k.debug("[ScrollPane] Adjusting scroll position due to content or viewport size change",()=>({contentSize:e,viewportSize:ce,scrollPosition:Y.current}));const m=ee(e-ce,0,e);Y.current>m&&fe(m)}else fe(0)},[$e,fe,e,ce]);const We=t.useRef({isScrollable:$e,viewportSize:ce,wheelSpeedMultiplier:U,overscrollBehavior:Q});t.useLayoutEffect(()=>{We.current={isScrollable:$e,viewportSize:ce,wheelSpeedMultiplier:U,overscrollBehavior:Q}},[$e,ce,U,Q]);const $=t.useCallback(m=>{if(ms(m))return!1;const{isScrollable:ie,viewportSize:ue,wheelSpeedMultiplier:G,overscrollBehavior:Z}=We.current,xe=fs(m,ue);if(xe.isZoomGesture)return!1;if(xe.isHorizontalDominant)return Re.current?(hn(m),m.preventDefault(),ne(),Re.current(xe.horizontalDelta),!0):!1;if(!ie||xe.verticalDelta===0)return!1;let De=xe.verticalDelta;if(G!==1&&(De*=G),Z!=="contain"){const _e=Y.current,pe=Math.max(it.current.contentSize-ue,0);if(De>0&&_e>=pe||De<0&&_e<=0)return!1}return hn(m),m.preventDefault(),ne(),k.debug("[ScrollPane] wheel event",()=>({deltaY:De,scrollPosition:Y.current,wheelSpeedMultiplier:G,deltaMode:m.deltaMode,scrollTop:He.current?.scrollTop})),fe(_e=>_e+De),!0},[fe,ne]);t.useEffect(()=>{const m=G=>{$(G)},ie=()=>{ne()},ue=ae.current;return ue&&(ue.addEventListener("wheel",m,{passive:!1}),ue.addEventListener("pointerdown",ie,{capture:!0,passive:!0})),()=>{ue&&(ue.removeEventListener("wheel",m),ue.removeEventListener("pointerdown",ie,{capture:!0}))}},[$,ne]),t.useImperativeHandle(E,()=>({scrollTo:(m,ie)=>(ne(),fe(m,ie)),getScrollPosition:()=>Y.current,getContentSize:()=>e,getViewportSize:()=>ce,applyWheel:$}),[fe,e,ce,ne,$]);const Xe=t.useId(),P=K?.id??Xe,Te=t.useRef({pointerType:"",pointerId:null,startClientY:0,startClientX:0,lastPanClientX:0,startScroll:0,isDragging:!1,shouldCancelNextClick:!1,clickResetTimer:null,velocitySamples:[],scale:1,scaleX:1}),bt=t.useRef(g),L=t.useRef(x);t.useEffect(()=>{bt.current=g},[g]),t.useEffect(()=>{L.current=x},[x]);const St=t.useRef($e);t.useEffect(()=>{St.current=$e},[$e]);const ct=t.useRef(Le);t.useEffect(()=>{ct.current=Le},[Le]),t.useEffect(()=>{const m=Te.current;if(g&&$e&&(m.pointerId===null||Hr(m.pointerType,x))||m.pointerId===null)return;const ie=He.current;m.clickResetTimer!==null&&(window.clearTimeout(m.clickResetTimer),m.clickResetTimer=null);const ue=m.isDragging&&m.shouldCancelNextClick,G=m.pointerId;m.pointerId=null,m.pointerType="",m.startClientY=0,m.startScroll=0,m.isDragging=!1,m.shouldCancelNextClick=ue,m.velocitySamples=[],m.scale=1,ie!==null&&tr(ie,G)},[g,x,$e]),t.useEffect(()=>{const m=He.current;if(!m)return;const ie=6,ue=()=>typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),G=()=>{const S=Te.current;S.pointerId=null,S.pointerType="",S.startClientY=0,S.startScroll=0,S.isDragging=!1,S.velocitySamples=[],S.scale=1},Z=()=>{const S=Te.current;S.clickResetTimer!==null&&(window.clearTimeout(S.clickResetTimer),S.clickResetTimer=null)},xe=S=>{const I=Te.current,tt=ue();I.velocitySamples.push({clientY:S,time:tt});const Ue=ct.current.velocitySampleWindow;I.velocitySamples=I.velocitySamples.filter(Oe=>tt-Oe.time<=Ue)},De=S=>S instanceof HTMLElement&&S.closest("[data-scrollpane-ignore-drag='true']")!==null,_e=S=>{const I=Te.current;I.shouldCancelNextClick&&(S.preventDefault(),S.stopPropagation(),I.shouldCancelNextClick=!1)},pe=S=>{const I=Te.current;I.isDragging||(I.isDragging=!0,I.shouldCancelNextClick=!0,Pn(m,S.pointerId)||yr(m,S.pointerId),xe(S.clientY))},qe=S=>S.isTrusted||S.target===m,Ye=S=>{const I=Te.current;tr(m,S),I.shouldCancelNextClick=!1,Z(),G()},ut=S=>{const I=Te.current;if(I.pointerId!==S.pointerId)return;if(S.buttons===0&&ps(S.pointerType)){Ye(S.pointerId);return}if(!(bt.current&&St.current)||!Hr(S.pointerType,L.current))return;if(!I.isDragging){const Pe=Math.abs(S.clientY-I.startClientY),we=Qe.current?Math.abs(S.clientX-I.startClientX):0;if(Math.max(Pe,we)<ie||(pe(S),!I.isDragging))return}xe(S.clientY);const tt=(S.clientY-I.startClientY)/(I.scale||1),Ue=I.startScroll-tt;yt.current(Ue);const Oe=Qe.current;if(Oe){const Pe=S.clientX-I.lastPanClientX;I.lastPanClientX=S.clientX,Pe!==0&&Oe(-Pe/(I.scaleX||1))}S.cancelable&&S.preventDefault()},dt=()=>{const S=Te.current;return S.pointerId!==null||!S.shouldCancelNextClick?!1:(Z(),S.clickResetTimer=window.setTimeout(()=>{const I=Te.current;I.shouldCancelNextClick=!1,I.clickResetTimer=null},0),!0)},je=S=>{const I=Te.current;if(I.pointerId!==S.pointerId){dt();return}I.isDragging&&I.shouldCancelNextClick&&S.cancelable&&(S.preventDefault(),S.stopPropagation()),I.isDragging&&xe(S.clientY);let tt=0;if(I.isDragging&&I.velocitySamples.length>=2){const Oe=I.velocitySamples,Pe=ct.current.velocitySampleWindow,we=Oe[Oe.length-1],Ce=Oe.find(Tt=>we.time-Tt.time<=Pe)??Oe[0];if(we&&Ce&&we.time!==Ce.time){const Tt=we.clientY-Ce.clientY,Xt=we.time-Ce.time;tt=-(Tt/Xt)/(I.scale||1)}}Z(),I.shouldCancelNextClick&&(I.clickResetTimer=window.setTimeout(()=>{const Oe=Te.current;Oe.shouldCancelNextClick=!1,Oe.clickResetTimer=null},0));const Ue=ct.current.startVelocityThreshold;G(),tr(m,S.pointerId),Math.abs(tt)>=Ue&&te.current?.(tt)},At=S=>{if(Te.current.pointerId!==null){if(!S.isPrimary||S.pointerType!==Te.current.pointerType)return;Ye(Te.current.pointerId)}if(Te.current.shouldCancelNextClick&&(Z(),Te.current.shouldCancelNextClick=!1),!(bt.current&&St.current)||!Hr(S.pointerType,L.current)||S.button!==0&&S.pointerType==="mouse"||S.ctrlKey||S.metaKey||S.altKey||De(S.target))return;window.dispatchEvent(new CustomEvent(Tr,{detail:{paneId:Xe}})),Se.current?.();const I=Te.current;Z(),I.pointerId=S.pointerId,I.pointerType=S.pointerType,I.startClientY=S.clientY,I.startClientX=S.clientX,I.lastPanClientX=S.clientX,I.startScroll=Y.current,I.scale=Br(m,"y"),I.scaleX=Qe.current?Br(m,"x"):1,I.isDragging=!1,I.shouldCancelNextClick=!1,I.velocitySamples=[]},Ee=S=>{if(Te.current.pointerId!==S.pointerId){dt();return}qe(S)&&Ye(S.pointerId)},Me=[["click",_e,!0],["pointerdown",At,{passive:!1}],["lostpointercapture",S=>{S.target!==m||Te.current.pointerId!==S.pointerId||Ye(S.pointerId)},void 0]],ve=[["pointermove",ut,{passive:!1}],["pointerup",je,void 0],["pointercancel",Ee,void 0]];return Nr(m,Me,"add"),Nr(window,ve,"add"),()=>{Nr(m,Me,"remove"),Nr(window,ve,"remove");const S=Te.current;S.pointerId!==null&&tr(m,S.pointerId),Z(),G()}},[Xe]);const kt=t.useCallback(m=>(ne(),fe(m)),[fe,ne]);return N.jsxs("div",{ref:ae,"data-testid":v,"data-self-measured":oe?"true":void 0,className:Ct.twMerge("aqvs-scroll-pane",y),style:A,children:[N.jsxs("div",{ref:He,className:Ct.twMerge("aqvs-scroll-pane-content"),"data-testid":"aqvs-scroll-pane-content",style:{height:oe?void 0:ce,paddingTop:st.top,paddingBottom:st.bottom,...g&&$e&&x.some(m=>m==="touch"||m==="pen")?{touchAction:"none"}:{}},...K,id:P,children:[F,r(Y.current)]}),N.jsx(rn,{contentSize:e,viewportSize:ce,stretchMainSize:oe,scrollPosition:Y.current,onScroll:kt,enableThumbDrag:a,enableTrackClick:o,enableArrowButtons:d,enableArrowButtonTabStops:f,scrollBarWidth:i,ariaControls:P,tapScrollCircleOptions:H,itemCount:Ae,renderThumbOverlay:z,visibleStartIndex:re,visibleEndIndex:j,locale:ge,labels:Ze},"scrollbar"),q?.()]})}),pn=(r,e,n)=>Math.min(Math.max(r,e),n),gs=({dragState:r,normalizedDistance:e,sizeScale:n,size:s})=>{const i=Math.max(s/2,1),a=1+e*.65,o=Math.max(.65,1-e*.25),d=r.direction*e*26*n,f=.8+e*.18,g=3*n,x=6*n,w=22*n,y=Math.abs(d)+x,v=d>0?g:-Math.abs(d)-g,A=Math.max(2.5,3*n),F=pn(r.offsetX,-i,i),H=pn(r.offsetY,-i,i),le=i*.35,Ae=F/i*le,z=H/i*le,U=Ae*.45,Q=z*.45,D=Math.max(w*.38,6),V=.65+e*.2,M=r.active;return N.jsxs(N.Fragment,{children:[N.jsx("div",{className:"aqvs-tap-scroll-circle-gradient",style:{transform:`scale(${o}, ${a})`,transition:M?"40ms transform ease-out":"200ms ease transform"}}),N.jsx("div",{className:"aqvs-sample-visual-pupil",style:{width:w,height:w,transform:`translate(calc(-50% + ${Ae}px), calc(-50% + ${z}px)) scale(${o}, ${f*a})`,transition:M?"70ms transform ease-out":"200ms ease transform"}}),N.jsx("div",{className:"aqvs-sample-visual-highlight",style:{width:D,height:D,transform:`translate(calc(-50% + ${U}px), calc(-50% + ${Q}px)) scale(${o}, ${a})`,opacity:V,boxShadow:"0 0 8px rgba(255,255,255,0.45)",transition:M?"120ms opacity 150ms, 120ms transform ease-out ease-out":"220ms ease transform, 240ms opacity ease"}}),N.jsx("div",{className:"aqvs-sample-visual-rod",style:{width:A,height:y,transform:`translate(-50%, ${v}px)`,opacity:e,transition:M?"40ms height, 60ms opacity ease-out ease-out":"200ms ease height, 120ms ease opacity"}})]})},fr=100,bs=r=>{if(!Number.isFinite(r))return 0n;const e=Math.trunc(r);return e<=0?0n:BigInt(e)},$r=(r,e)=>{if(!Number.isFinite(r))throw new Error(`valueFn returned a non-finite value at index ${e}: ${r}`);return r},mr=r=>{if(r<=0||!Number.isFinite(r))return 0;const e=Math.trunc(r);if(e<=2147483647)return e&-e;const n=BigInt(e)&-BigInt(e);return Number(n)};class $t{tree;deltas;size;baseValue;valueFn;total;constructor(e,n,s){this.reset(e,n,s)}reset(e,n,s){const i=Number.isFinite(e)&&e>0?Math.trunc(e):0;if(typeof n!="function"){this.size=i,this.tree=new Map,this.deltas=new Map,this.valueFn=void 0,this.baseValue=n,this.total=this.baseValue*this.size;return}let a=0,o;const d=s?.baseValue;if(d!==void 0&&!(Number.isFinite(d)&&d>=0))throw new RangeError(`[FenwickMapTree] options.baseValue must be a finite number >= 0, received ${d}.`);if(i>0&&d!==void 0){if(a=d,s?.materialize){const f=s?.sampleRange??{from:0,to:Math.min(fr-1,i-1)};let g=Math.max(0,Math.trunc(f.from)),x=Math.min(Math.trunc(f.to),i-1);g>x&&(g=0,x=Math.min(fr-1,i-1)),o={from:g,values:$t._collectValidatedValues(n,g,x)}}}else if(i>0){const f=s?.sampleRange??{from:0,to:Math.min(fr-1,i-1)};let g=Math.max(0,Math.trunc(f.from)),x=Math.min(Math.trunc(f.to),i-1);if(g>x&&(g=0,x=Math.min(fr-1,i-1)),i>fr)a=$t._sampleBaseValueStrided(n,i,fr),s?.materialize&&(o={from:g,values:$t._collectValidatedValues(n,g,x)});else{const w=$t._collectValidatedValues(n,g,x);a=$t._modeOrMedian([...w]),s?.materialize&&(o={from:g,values:w})}}if(this.size=i,this.tree=new Map,this.deltas=new Map,this.total=void 0,this.valueFn=n,this.baseValue=a,o)for(let f=0;f<o.values.length;f++){const g=o.from+f;if(g>=this.size)break;const x=o.values[f]-this.baseValue;x!==0&&(this.deltas.set(g,x),this._updateTree(g,x))}this.total=this.getTotal()}setValueFn(e,n){if(n?.reset){this.reset(this.size,e);return}typeof e=="function"?this.valueFn=e:(this.valueFn=void 0,this.baseValue=e,this.total=this._computeTreeTotal())}static _collectValidatedValues(e,n,s){const i=[];for(let a=n;a<=s;a++)i.push($r(e(a),a));return i}static _modeOrMedian(e){if(e.length===0)return 0;e.sort((o,d)=>o-d);const n=Math.floor(e.length/2);let s;e.length%2===0?s=Math.floor((e[n-1]+e[n])/2):s=e[n];const i=new Map;let a=0;for(const o of e){const d=(i.get(o)??0)+1;i.set(o,d),d>a&&(a=d)}if(a>e.length*.2){const o=[];for(const[f,g]of i.entries())g===a&&o.push(f);const d=o.reduce((f,g)=>f+g,0);s=Math.floor(d/o.length)}return s}static _sampleBaseValueStrided(e,n,s){if(n<=0)return 0;let i=Math.max(1,Math.ceil(n/s));i%2===0&&(i+=1);const a=[];for(let o=0;o<n&&a.length<s;o+=i)a.push($r(e(o),o));return $t._modeOrMedian(a)}update(e,n){return this.updates([{index:e,value:n}])}updates(e){const n=this._buildDeltaUpdates(e);return n.length>0?this.updateDeltas(n):this.total}updateDelta(e,n){return this.updateDeltas([{index:e,change:n}])}updateDeltas(e){const n=new Map;for(const{index:s,change:i}of e){if(s<0||s>=this.size)throw new Error(`Index ${s} out of bounds`);if(!Number.isInteger(s))throw new Error(`Index must be an integer: ${s}`);if(!Number.isFinite(i))throw new Error(`Change must be a finite number: ${i}`);const o=(n.get(s)??this.deltas.get(s)??0)+i;if(o+this.baseValue<-1e-9)throw new Error(`Change would make the value at index ${s} negative: ${o+this.baseValue}`);n.set(s,o)}for(const{index:s,change:i}of e){const o=(this.deltas.get(s)??0)+i;o===0?this.deltas.delete(s):this.deltas.set(s,o),this._updateTree(s,i)}return this.total}_updateTree(e,n){if(n===0)return;let s=e+1;for(;s<=this.size;){this.tree.set(s,(this.tree.get(s)??0)+n);const i=mr(s);if(i===0)break;s+=i}this.total!==void 0&&(this.total+=n)}_buildDeltaUpdates(e){const n=[],s=new Map;for(const{index:i,value:a}of e){if(i<0||i>=this.size)throw new Error(`Index ${i} out of bounds`);if(!Number.isInteger(i))throw new Error(`Index must be an integer: ${i}`);if(!Number.isFinite(a))throw new Error(`Value must be a finite number: ${a}`);if(a<0)throw new Error("Value cannot be negative.");const o=s.has(i)?s.get(i)??0:this.deltas.get(i)??0,d=o+this.baseValue,f=a-d;f!==0&&n.push({index:i,change:f}),s.set(i,o+f)}return n}_computeTreeTotal(){if(this.size<=0)return 0;let e=0,n=this.size;for(;n>0;){e+=this.tree.get(n)??0;const s=mr(n);if(s===0)break;n-=s}return e+this.baseValue*this.size}_materialize(e,n=!0){if(this.valueFn){const s=this.deltas.get(e)??0,a=$r(this.valueFn(e),e)-this.baseValue;if(a!==s&&(a===0?this.deltas.delete(e):this.deltas.set(e,a),n)){const o=a-s;this._updateTree(e,o)}}}_materializeRanges(e,n,s=!1){if(!(e?.materialize&&this.valueFn))return;const i=e.ranges;if(i&&i.length>0){for(const d of i){const f=Math.max(0,Math.trunc(d.from)),g=Math.min(Math.trunc(d.to),this.size-1);for(let x=f;x<=g;x++)this._materialize(x)}if(n===void 0)return;if(s){this._materialize(n);return}const a=i[0].from,o=i[i.length-1].to;n>=a&&n<=o&&this._materialize(n);return}n!==void 0&&this._materialize(n)}_findIndex(e,n={},s){if(this.size>=1073741824)return this._findIndexLarge(e,n,s);if(this.size===0)return{index:-1,total:this.total??0,cumulative:void 0,currentValue:void 0,safeIndex:void 0};this._materializeRanges(n.materializeOption);const i=n.materializeOption?.materialize===!0;let a;for(;;){if(a=this._descend(e,s),a<0||a>=this.size)return{index:-1,total:this.total??this.getTotal(),cumulative:void 0,currentValue:void 0,safeIndex:void 0};if(!i)break;const d=this.deltas.get(a)??0;if(this._materialize(a),(this.deltas.get(a)??0)===d)break}const o=this.prefixSum(a);return{index:a,total:this.total??o.total,cumulative:o.cumulative,currentValue:o.currentValue,safeIndex:o.safeIndex}}_descend(e,n){let s=0,i=0,a=1;for(;a<<1<=this.size;)a<<=1;for(;a>0;a>>=1){const o=s+a;if(o<=this.size){const f=(this.tree.get(o)??0)+this.baseValue*a;(n?i+f<e:i+f<=e)&&(s=o,i+=f)}}return n?s:s-1}_findIndexLarge(e,n,s){if(this.size===0)return{index:-1,total:this.total??0,cumulative:void 0,currentValue:void 0,safeIndex:void 0};const i=bs(this.size);if(i===0n)return{index:-1,total:this.total??0,cumulative:void 0,currentValue:void 0,safeIndex:void 0};this._materializeRanges(n.materializeOption);const a=n.materializeOption?.materialize===!0;for(;;){let o=0n,d=i-1n,f,g,x=this.total;for(;o<=d;){const v=o+d>>1n,A=Number(v),F=this.prefixSum(A);if(x=F.total,s?F.cumulative>=e:F.cumulative<=e)if(f=v,g=F,s){if(v===0n)break;d=v-1n}else o=v+1n;else if(s)o=v+1n;else{if(v===0n)break;d=v-1n}}const w=g,y=f!==void 0?Number(f):-1;if(a&&y>=0){const v=this.deltas.get(y)??0;if(this._materialize(y),(this.deltas.get(y)??0)!==v)continue}return{index:y,total:x,cumulative:w?.cumulative,currentValue:w?.currentValue,safeIndex:w?.safeIndex}}}prefixSum(e,n){if(e<0||Number.isNaN(e))return{cumulative:0,total:this.total,currentValue:0,safeIndex:0};if(this.size===0)return{cumulative:0,total:this.total??0,currentValue:0,safeIndex:0};const s=ee(Math.trunc(e),0,this.size-1),i=n?.materializeOption;this._materializeRanges(i,s,!0);let a=0,o=s+1;for(;o>0;){const f=this.tree.get(o)??0;a+=f;const g=mr(o);if(g===0)break;o-=g}const d=i?.materialize?this.get(s):(this.deltas.get(s)||0)+this.baseValue;return{cumulative:a+this.baseValue*(s+1),total:this.total,currentValue:d,safeIndex:s}}get(e,n){if(this.size===0)return 0;if(!Number.isInteger(e)||e<0||e>=this.size)throw new Error("Index out of bounds");const s=n?.materializeOption;return this._materializeRanges(s,e),(this.deltas.get(e)??0)+this.baseValue}getTotal(e){const n=e?.materializeOption;if(this._materializeRanges(n),this.total===void 0)if(this.size===0)this.total=0;else{this.total=this._computeTreeTotal();const s=this.prefixSum(this.getSize()-1);s.cumulative!==s.total&&k.error("Inconsistent Fenwick Tree state")}return this.total}rebuildTree(e){if(e?.materialize&&this.valueFn){const s=this.valueFn;this.reset(this.size,i=>s(i),{materialize:!0});return}const n=new Map;for(const[s,i]of this.deltas.entries()){if(i===0)continue;let a=s+1;for(;a<=this.size;){n.set(a,(n.get(a)??0)+i);const o=mr(a);if(o===0)break;a+=o}}this.tree=n,this.total=this._computeTreeTotal()}calculateAccumulatedError(){if(this.total===void 0)return 0;let e=this.baseValue*this.size;for(const[n,s]of this.deltas)n<this.size&&(e+=s);return this.total-e}changeSize(e){if(!Number.isFinite(e))throw new Error(`Size must be a finite number: ${e}`);const n=Math.max(0,Math.trunc(e)),s=this.size;if(n===s)return;if(n>s)if(s===0&&this.deltas.size>0){for(const a of this.deltas.keys())a>=n&&this.deltas.delete(a);this.size=n,this.rebuildTree()}else this._growSize(s,n);else{if(n>0)for(const a of this.deltas.keys())a>=n&&this.deltas.delete(a);this.size=n,this.rebuildTree()}const i=this.prefixSum(this.getSize()-1);i.cumulative!==i.total&&k.error("Inconsistent Fenwick Tree state")}static _minCoveredLowBound(e,n){let s=1;for(;;){const i=s*2;if(Math.floor(n/i)*i<=e)break;s=i}return s*Math.floor(e/s)}_propagateDeltaToGrownNodes(e,n,s,i){let a=e+1;for(;a<=s;){const o=mr(a);if(o===0)break;a+=o}for(;a<=i;){this.tree.set(a,(this.tree.get(a)??0)+n);const o=mr(a);if(o===0)break;a+=o}}_growSize(e,n){if(this.size=n,this.deltas.size>0){const s=$t._minCoveredLowBound(e,n);if(e-s<this.deltas.size)for(let a=s;a<e;a++){const o=this.deltas.get(a);o===void 0||o===0||this._propagateDeltaToGrownNodes(a,o,e,n)}else for(const[a,o]of this.deltas.entries())o===0||a<s||this._propagateDeltaToGrownNodes(a,o,e,n)}this.total=this._computeTreeTotal()}getSize(){return this.size}get base(){return this.baseValue}findIndexAtOrAfter(e,n){return this._findIndex(e,n??{},!0)}findIndexAtOrBefore(e,n){return this._findIndex(e,n??{},!1)}}const xs=(r,e)=>{const n=r?.sampleRange,s=e?.sampleRange;return n===s?!1:n&&s?n.from!==s.from||n.to!==s.to:!0},nn=(r,e,n)=>{const s=Number.isFinite(r)&&r>0?Math.trunc(r):0,i=t.useRef(null),a=t.useRef({size:s,valueOrFn:e,options:n});i.current===null&&(i.current=new $t(s,e,n));const o=i.current,d=a.current,f=d.size!==s,g=d.valueOrFn!==e,x=xs(d.options,n)||d.options?.baseValue!==n?.baseValue,w=d.size===0&&s>0&&(!i.current||i.current.base===0);if(g||x){const y=n?.resetOnValueFnChange??!0;x||g&&y||w?(n?.debug&&k.debug("[useFenwickMapTree] reset",{valueOrFnChanged:g,optionsChanged:x}),o.reset(s,e,n)):(f&&(n?.debug&&k.debug("[useFenwickMapTree] resize (with valueFn change)",{from:d.size,to:s}),o.changeSize(s)),n?.debug&&k.debug("[useFenwickMapTree] setValueFn (no reset)",{valueOrFnChanged:g}),o.setValueFn(e,{reset:!1})),a.current={size:s,valueOrFn:e,options:n}}else f&&(n?.debug&&k.debug("[useFenwickMapTree] resize",{from:d.size,to:s}),w?o.reset(s,e,n):o.changeSize(s),a.current={size:s,valueOrFn:e,options:n});return o};class vs{key;value;prev=null;next=null;constructor(e,n){this.key=e,this.value=n}}class Xr{head=null;tail=null;addToTail(e){this.tail?(this.tail.next=e,e.prev=this.tail,this.tail=e):this.head=this.tail=e}remove(e){e.prev?e.prev.next=e.next:this.head=e.next,e.next?e.next.prev=e.prev:this.tail=e.prev,e.prev=null,e.next=null}removeHead(){const e=this.head;return e&&this.remove(e),e}moveToTail(e){this.remove(e),this.addToTail(e)}}function Ln(r){const e=t.useRef(new Map),n=t.useRef(new Xr),s=Math.floor(r),i=t.useRef(s);t.useEffect(()=>{if(i.current=s,Number.isNaN(s)||s<0){k.warn(`useLruCache: invalid capacity ${r}; the cache will not store any entries.`),e.current.clear(),n.current=new Xr;return}if(Number.isFinite(s))for(;e.current.size>s;){const x=n.current.removeHead();if(x)e.current.delete(x.key);else break}},[r,s]);const a=t.useCallback(x=>{const w=e.current.get(x);if(w)return n.current.moveToTail(w),w.value},[]),o=t.useCallback((x,w)=>{const y=i.current;if(Number.isNaN(y)||y<=0)return;let v=e.current.get(x);if(v)v.value=w,n.current.moveToTail(v);else{if(e.current.size>=y){const A=n.current.removeHead();A&&e.current.delete(A.key)}v=new vs(x,w),e.current.set(x,v),n.current.addToTail(v)}},[]),d=t.useCallback(x=>e.current.has(x),[]),f=t.useCallback(x=>{const w=e.current.get(x);w&&(n.current.remove(w),e.current.delete(x))},[]),g=t.useCallback(()=>{e.current.clear(),n.current=new Xr},[]);return t.useMemo(()=>({get:a,set:o,has:d,remove:f,clear:g}),[a,o,d,f,g])}const Ss=1e4,ws=()=>{const{get:r,set:e,has:n,clear:s}=Ln(Ss);return t.useMemo(()=>({get:r,set:e,has:n,clear:s}),[r,e,n,s])},Rs=(r,e)=>{const n=t.useRef(e),s=t.useRef(r);t.useLayoutEffect(()=>{n.current=e,s.current=r},[e,r]);const i=t.useRef(new WeakMap);return t.useCallback(a=>{if(!a||i.current.has(a))return;const o=d=>{n.current?.enableBridge!==!1&&s.current.current?.applyWheel(d)};return a.addEventListener("wheel",o,{passive:!1}),i.current.set(a,o),()=>{i.current.get(a)===o&&(a.removeEventListener("wheel",o),i.current.delete(a))}},[])},gn=-200,bn={active:!1,offsetX:0,offsetY:0,distance:0,direction:0,pointerId:null},Ms=r=>{const e=t.useRef(r);e.current=r;const n=t.useRef(bn),s=t.useRef(null),[i,a]=t.useState(!1),o=t.useRef(null),d=t.useRef(null),f=t.useRef({residual:0,direction:0}),g=t.useRef({residual:0,direction:0}),x=t.useCallback(()=>{o.current!==null&&(window.cancelAnimationFrame(o.current),o.current=null),d.current=null,f.current={residual:0,direction:0},g.current={residual:0,direction:0}},[]),w=t.useCallback((z,U,Q,D,V,M)=>{const re=U>0?1:U<0?-1:0;re!==0&&re!==z.direction&&(z.direction=re,z.residual=0),z.residual+=U*Q;const j=Math.max(V(),0);j>0&&(z.residual=ee(z.residual,-j,j));const q=z.residual;if(q===0)return{actualDelta:0,atBoundary:!1};const J=D(),K=M(q),ge=K-J;z.residual-=ge;const Ze=q<0&&J+q<=0,E=q>0&&J+q>=j,Y=q<0&&(K<=0||Ze&&ge===0)||q>0&&(K>=j||E&&ge===0);return Y&&(z.residual=0),{actualDelta:ge,atBoundary:Y}},[]),y=t.useCallback(z=>{const U=e.current,Q=n.current;if(!Q.active||Q.direction===0){x();return}const D=d.current??z,V=Math.max((z-D)/1e3,0),M=Math.min(V,kn);if(d.current=z,M<=0){o.current=window.requestAnimationFrame(y);return}const re=Nn({offsetX:Q.offsetX,offsetY:Q.offsetY,maxDistance:U.maxDistance,x:U.xSpeedParams,y:U.ySpeedParams}),j=w(f.current,re.x,M,U.getHx,U.getMaxHx,ge=>U.applyHxRef.current(U.getHx()+ge));j.actualDelta!==0&&(U.pendingColAnchorRef.current=null);const q=w(g.current,re.y,M,U.getVy,U.getMaxVy,U.applyVy),J=U.getMaxHx()<=0||j.atBoundary||Q.offsetX===0,K=U.getMaxVy()<=0||q.atBoundary||Q.offsetY===0;if(J&&K){x();return}o.current=window.requestAnimationFrame(y)},[x,w]),v=t.useCallback(()=>{o.current===null&&(d.current=null,f.current={residual:0,direction:0},g.current={residual:0,direction:0},o.current=window.requestAnimationFrame(y))},[y]),A=t.useCallback(()=>{n.current={...bn},a(!1),s.current?.reset(),x()},[x]),F=t.useCallback(z=>{n.current=z,a(z.active),z.active&&z.direction!==0?v():x()},[v,x]),{enabled:H,xExtentFreshness:le,yExtentFreshness:Ae}=r;return t.useEffect(()=>{const z=n.current;!z.active||z.direction===0||v()},[le,Ae,v]),t.useEffect(()=>{const z=()=>{A()};return window.addEventListener(Tr,z),()=>{window.removeEventListener(Tr,z)}},[A]),t.useEffect(()=>{if(!H)return;const z=U=>{if(!n.current.active||n.current.pointerId===U.pointerId)return;const Q=U.target;if(!(Q instanceof Node)){A();return}s.current?.getElement()?.contains(Q)||A()};return document.addEventListener("pointerdown",z,!0),()=>{document.removeEventListener("pointerdown",z,!0)}},[H,A]),t.useEffect(()=>{H||A()},[H,A]),t.useEffect(()=>()=>{x()},[x]),{isTapActive:i,handleTapCircleDragChange:F,tapCircleHandleRef:s}},Ke=(r,e)=>e<=0?0:ee(r,0,e-1),xn=r=>({top:Math.max(0,r?.top??0),bottom:Math.max(0,r?.bottom??0)}),gt=(r,e)=>r<=e?0:r-e,sr=(r,e)=>r<=0?0:r+e,Er=1e3,jr=2e3,Dn=1048576,hr=2**-10,vn=r=>r==="center"?null:r==="bottom"?"end":"start",ys=(r,e,n)=>r<=hr?"start":r>=e-hr?"end":n!==null&&Math.abs(r-n.panePosition)<=hr?n.edge:"none",Ts=({translateY:r,snapEdge:e,children:n})=>{const{ratio:s,attach:i}=Tn("[VirtualScroll] the items wrapper"),a=s===null?r:Mn(r,s,e);return N.jsx("div",{ref:i,className:"aqvs-items-wrapper",style:{top:0,transform:`translateY(${a}px)`,willChange:"transform"},children:n})},Es=40,Mr=r=>{if(!Number.isFinite(r))return 0n;const e=Math.trunc(r);return e<=0?0n:BigInt(e)},Is=(r,e,n,s,i,a,o,d)=>{const f=Mr(s);if(f===0n)return{renderingStartIndex:0,renderingEndIndex:0,visibleStartIndex:0,visibleEndIndex:0};const g=D=>D<0n?0n:D>=f?f-1n:D,x={materializeOption:{materialize:!1}},{index:w,cumulative:y}=a.findIndexAtOrAfter(r,x);let v;w===-1?v=f-1n:(y===r?v=Mr(w+1):v=Mr(w),v>=f&&(v=f-1n)),r<=0&&(v=0n),d&&r>=o&&(v=f-1n);const A=D=>{const V=Number(D);if(!Number.isSafeInteger(V))return null;const{cumulative:M}=a.prefixSum(V,{materializeOption:{materialize:!1}});if(!Number.isFinite(M))return null;const{index:re}=a.findIndexAtOrAfter(M+.5,{materializeOption:{materialize:!1}});if(re===-1)return null;const j=Mr(re);return j>D?j:null},F=D=>{let V=0,M=D,re=D,j=0n,q=0;for(;M<f&&V<e;){const J=Number(M),K=i(J);if(V+=K,re=M,M+=1n,j+=1n,!Number.isFinite(K)||K<0)break;if(K===0){if(q+=1,q>Er){const ge=A(re);if(ge!==null&&ge>M)M=ge,q=0;else if(ge!==null&&ge===M&&i(Number(M))>0)q=0;else break}}else q=0}return j===0n&&(re=D),{height:V,end:re}};let{height:H,end:le}=F(v);if(H<e&&v>0n){let D=v,V=H,M=0;for(;D>0n&&V<e;){D-=1n;const j=Number(D),q=i(j);if(V+=q,!Number.isFinite(q)||q<0)break;if(q===0){if(M+=1,M>Er){const J=Number(D);if(!Number.isSafeInteger(J))break;const{cumulative:K}=a.prefixSum(J,{materializeOption:{materialize:!1}});if(!Number.isFinite(K))break;const{index:ge}=a.findIndexAtOrAfter(K-.5,{materializeOption:{materialize:!1}}),Ze=ge===-1?-1n:Mr(ge);if(Ze>=0n&&Ze<D)D=Ze+1n,M=0;else if(Ze===D&&D>=1n&&i(Number(D-1n))>0)M=0;else break}}else M=0}v=g(D);const re=F(v);H=re.height,le=re.end}const Ae=g(v),z=g(le),U=g(Ae-BigInt(Math.max(0,n))),Q=g(z+BigInt(Math.max(0,n)));return{renderingStartIndex:Ke(Number(U),s),renderingEndIndex:Ke(Number(Q),s),visibleStartIndex:Ke(Number(Ae),s),visibleEndIndex:Ke(Number(z),s)}},_n=(r,e,n,s,i,a,o)=>{if(s===0)return{renderingStartIndex:0,renderingEndIndex:0,visibleStartIndex:0,visibleEndIndex:0};const d=Number.isFinite(o),f=d?Math.min(Math.max(0,r),o):Math.max(0,r);if(s>=Number.MAX_SAFE_INTEGER)return Is(f,e,n,s,i,a,o,d);const{index:g,cumulative:x,currentValue:w}=a.findIndexAtOrAfter(f,{materializeOption:{materialize:!1}}),y=g===-1?e<=0||(x??0)<f+(w??0)?s-1:0:g;let v=Ke(y,s),A=0;if(g!==-1&&x===f)v=Ke(g+1,s),A=0;else if(v===g&&x!==void 0&&w!==void 0)A=x-w-f;else{const{cumulative:D,currentValue:V}=a.prefixSum(v,{materializeOption:{materialize:!1}});A=(D??0)-(V??0)-f}const F=A,H=(D,V)=>{let M=D,re=V,j=0;for(;M<s&&re<e;){const q=i(M);if(re+=q,M++,!Number.isFinite(q)||q<0)break;if(q===0){if(j++,j>Er){const{cumulative:J}=a.prefixSum(M-1,{materializeOption:{materialize:!1}}),{index:K}=Number.isFinite(J)?a.findIndexAtOrAfter(J+.5,{materializeOption:{materialize:!1}}):{index:-1};if(K>M)M=K,j=0;else if(K===M&&i(M)>0)j=0;else break}}else j=0}return{cursor:M,height:re}},le=H(v,A);let Ae=le.cursor;if(A=le.height,A<e&&v>0){let D=A+Math.abs(Math.min(0,F)),V=v-1,M=0;for(;V>=0&&D<e;){const j=i(V);if(D+=j,!Number.isFinite(j)||j<0){V--;break}if(j===0){if(M++,M>Er){const{cumulative:q}=a.prefixSum(V,{materializeOption:{materialize:!1}}),{index:J}=Number.isFinite(q)?a.findIndexAtOrAfter(q-.5,{materializeOption:{materialize:!1}}):{index:-1};if(J!==-1&&J<V){V=J,M=0;continue}if(J===V&&V>=1&&i(V-1)>0)M=0;else{V--;break}}}else M=0;V--}v=Ke(V+1,s);const re=H(v,0);Ae=re.cursor,A=re.height}const z=Ke(v-n,s),U=Ke(Math.max(Ae-1,v),s),Q=Ke(U+n,s);return{renderingStartIndex:z,renderingEndIndex:Q,visibleStartIndex:v,visibleEndIndex:U}},Sn=(r,e,n)=>{const s=Math.max(0,e??0),i=t.useRef({last:0,id:null,arg:null}).current;return t.useEffect(()=>()=>{if(i.id!==null&&(cancelAnimationFrame(i.id),i.id=null),i.arg!==null&&r.current){try{n(r.current,i.arg)}catch(a){console.error("[useThrottledInvoker] Error flushing pending callback on unmount",a)}i.arg=null}},[i,r,n]),t.useCallback(a=>{if(i.arg=a,i.id!==null)return;const o=d=>{if(i.id=null,i.arg===null)return;const f=d-i.last;if(s===0||i.last===0||f>=s){if(r.current)try{n(r.current,i.arg)}catch(g){console.error("[useThrottledInvoker] Error invoking callback",g)}i.arg=null,i.last=d}i.arg!==null&&(i.id=requestAnimationFrame(o))};i.id=requestAnimationFrame(o)},[s,n,r,i])},Cs=t.memo(({index:r,top:e,height:n,item:s,children:i,clipItemHeight:a,enableKeyboardNavigation:o,onKeyDown:d,onEscapeKeyDown:f,onFocus:g,registerItemRef:x})=>{const w=t.useCallback(H=>x(r,H),[r,x]),y=t.useCallback(H=>d(H,r),[r,d]),v=t.useCallback(H=>f?.(H,r),[r,f]),A=t.useCallback(()=>g(r),[r,g]),F=t.useCallback(H=>{H.currentTarget.focus({preventScroll:!0})},[]);return N.jsx("div",{ref:w,"data-index":r,"data-virtualscroll-item":"true",className:"aqvs-item-container",style:{top:e,height:n,overflow:a?"hidden":void 0},tabIndex:o?-1:void 0,onPointerDown:o?F:void 0,onKeyDownCapture:o?y:void 0,onKeyDown:o&&f?v:void 0,onFocusCapture:o?A:void 0,children:i(s,r)})}),Ps=({itemCount:r,getItem:e,getItemKey:n,getItemHeight:s,viewportSize:i,overscanCount:a=15,className:o,testId:d,onScroll:f,onRangeChange:g,onScrollAdjust:x,children:w,background:y,initialScrollIndex:v,initialScrollOffset:A,initialScrollAnchor:F,callbackThrottleMs:H=5,contentInsets:le,onItemFocus:Ae,scrollBarOptions:z,behaviorOptions:U,onWheelHorizontal:Q,onPanHorizontal:D,horizontalKeyInputs:V,horizontalKeyStep:M=Es,contentProps:re,liveRegion:j,locale:q,labels:J},K)=>{const{width:ge,enableThumbDrag:Ze,enableTrackClick:E,enableArrowButtons:Y,enableArrowButtonTabStops:ae,enableScrollToTopBottomButtons:He,renderThumbOverlay:oe,tapScrollCircleOptions:Ve}=z??{},ft=t.useMemo(()=>Jr(q,J),[q,J]),{enablePointerDrag:ce,pointerDragInputs:Be,enableKeyboardNavigation:Re=!0,enableEscapeRowReturn:Qe=!1,wheelSpeedMultiplier:nt,inertiaOptions:Le,overscrollBehavior:st,clipItemHeight:it=!1,resetOnGetItemHeightChange:$e=!1}=U??{},[fe,yt]=t.useState(0),ne=i??fe,Se=t.useCallback(c=>{yt(h=>h===c?h:c)},[]),se=t.useRef(null),te=t.useRef({renderingStartIndex:0,renderingEndIndex:0,visibleStartIndex:0,visibleEndIndex:0,scrollPosition:0,totalHeight:0}),We=t.useRef(F&&r>0?{index:ee(Math.trunc(F.index),0,r-1),align:"top",offset:-Math.max(0,F.offsetPx??0)}:null),$=t.useRef(!1),Xe=t.useRef(!0);t.useEffect(()=>{if(Xe.current){Xe.current=!1;return}$e&&(We.current=null)},[$e,s]);const P=t.useMemo(()=>xn(le),[le]),[Te]=t.useState(()=>{const h=F?.index??v,b=typeof h=="number"&&Number.isFinite(h)?Math.max(0,Math.trunc(h)):0;return{from:Math.max(0,b-50),to:b+50}}),bt=t.useMemo(()=>({sampleRange:Te,resetOnValueFnChange:$e,materialize:!0}),[$e,Te]),L=nn(r,s,bt),[St]=t.useState(()=>{let c=0,h=0;if(F&&r>0){const b=ee(Math.trunc(F.index),0,r-1),X=Math.max(0,F.offsetPx??0),_=ee(b-a*2,0,r-1),B=ee(b+a*2,0,r-1),W=b>0||X>0?{materializeOption:{materialize:!0,ranges:[{from:_,to:B}]}}:void 0,{cumulative:be,total:Ne,currentValue:ze}=L.prefixSum(b,W),ye=Math.max(be-ze+X,0);c=sr(ye,P.top),h=Ne??L.getTotal()}else if(typeof v=="number"){const b=ee(v,0,r-1),X=ee(b-a*2,0,r-1),_=ee(b+a*2,0,r-1),B=v>0?{materializeOption:{materialize:!0,ranges:[{from:X,to:_}]}}:void 0,{cumulative:W,total:be,currentValue:Ne}=L.prefixSum(v,B),ze=Math.max(W-Ne,0);c=sr(ze,P.top),h=be??L.getTotal()}else typeof A=="number"&&(c=sr(Math.max(A,0),P.top)),h=L.getTotal();return{position:c,total:h}}),[ct,kt]=t.useState(St.position),[m,ie]=t.useState(St.total),[ue,G]=t.useState(()=>F&&r>0||typeof v=="number"?{edge:"start",panePosition:St.position}:null),Z=t.useRef(ue),xe=t.useCallback(c=>{Z.current=c,G(c)},[]),De=t.useCallback((c,h)=>{const b=Z.current;b===null||Math.abs(b.panePosition-c)>hr||xe({edge:b.edge,panePosition:h})},[xe]),_e=t.useCallback(()=>{Z.current!==null&&xe(null)},[xe]),pe=t.useRef(St.position),qe=t.useRef(P.top),Ye=t.useRef(f??void 0),ut=t.useRef(g??void 0),dt=t.useRef(x),je=t.useRef(Q),At=(V?.length??0)>0,Ee=!!Q;t.useEffect(()=>{At&&(Re||k.warn("[VirtualScroll] horizontalKeyInputs is set but behaviorOptions.enableKeyboardNavigation is false; horizontal keyboard scrolling is disabled because the row key handler is not mounted."),Ee||k.warn("[VirtualScroll] horizontalKeyInputs is set but onWheelHorizontal is missing; horizontal keyboard scrolling is disabled because the package does not own the horizontal axis."),Number.isFinite(M)&&M>0||k.warn(`[VirtualScroll] horizontalKeyStep must be a finite positive number, received ${M}. Horizontal arrow keys are left untouched.`))},[At,Ee,Re,M]);const me=t.useRef(new Map),Me=t.useRef(null),ve=t.useRef(null),[S,I]=t.useState(null),[tt,Ue]=t.useState(!1),Oe=t.useRef(null),Pe=t.useRef(!1),we=t.useRef(0),Ce=t.useRef(!1),Tt=t.useRef(!1),Xt=t.useRef(r);Xt.current!==r&&(Xt.current=r,Tt.current=!0),t.useLayoutEffect(()=>{Ye.current=f??void 0,ut.current=g??void 0,dt.current=x,je.current=Q},[g,f,x,Q]);const Ot=t.useCallback(c=>{if(Re&&c&&typeof c.focus=="function")try{c.focus({preventScroll:!0})}catch{c.focus()}},[Re]),ke=t.useCallback((c,{position:h,totalHeight:b})=>{c(h,b)},[]),Et=Sn(Ye,H,ke),ir=t.useCallback((c,h)=>{c(h)},[]),rr=Sn(ut,H,ir),at=t.useRef(P.top);at.current=P.top;const Nt=t.useRef(Et);Nt.current=Et,t.useEffect(()=>($.current=!1,()=>{$.current=!0,Oe.current&&(clearTimeout(Oe.current),Oe.current=null)}),[]),t.useEffect(()=>{Re||(me.current.clear(),Me.current=null,ve.current=null)},[Re]);const qt=t.useCallback((c,h)=>{if(!h){me.current.delete(c);return}Re&&(me.current.set(c,h),Me.current===c&&(Me.current=null,ve.current=c,Ot(h)))},[Re,Ot]),Yt=.01,Bt=t.useRef({rafId:null,loopActive:!1,idleFrames:0,lastRenderedPosition:St.position}),Kt=t.useCallback(()=>{const c=Bt.current;c.rafId!==null&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(c.rafId),c.rafId=null,c.loopActive=!1,c.idleFrames=0},[]);t.useEffect(()=>()=>{Kt()},[Kt]);const Ft=t.useRef(()=>{}),Wt=t.useCallback(()=>{const c=Bt.current;c.rafId=null;const h=pe.current,b=gt(h,at.current),X=L.getTotal();if(kt(B=>Math.abs(B-h)<Yt?B:h),Math.abs(c.lastRenderedPosition-h)>=Yt?(Nt.current({position:b,totalHeight:X}),c.lastRenderedPosition=h,c.idleFrames=0):c.idleFrames+=1,c.idleFrames>=2){Kt();return}if(typeof requestAnimationFrame=="function"){c.rafId=requestAnimationFrame(B=>Ft.current(B));return}c.loopActive=!1},[L,Kt]);Ft.current=Wt;const jt=t.useCallback(()=>{const c=Bt.current;if(c.idleFrames=0,!c.loopActive){if(c.loopActive=!0,typeof requestAnimationFrame=="function"){c.rafId=requestAnimationFrame(Wt);return}c.loopActive=!1}},[Wt]),u=t.useCallback((c,h)=>{const b=h?.immediate??!1,X=gt(c,P.top);if(pe.current=c,b){Bt.current.lastRenderedPosition=c,Bt.current.idleFrames=0,kt(c),Et({position:X,totalHeight:L.getTotal()});return}jt()},[jt,L,P.top,Et]),T=t.useCallback((c,h=0)=>{const b=se.current;if(!b)return c;const X=b.getScrollPosition();we.current+=1;const _=b.getContentSize()+h,B=b.getViewportSize(),W=b.scrollTo(c,{contentSize:_,viewportSize:B});return W===X&&(we.current=Math.max(0,we.current-1)),Math.abs(W-c)>.5&&(Ce.current=!0),W},[]),C=t.useCallback((c,h)=>{const b=se.current;if(b===null){h();return}const X=b.getScrollPosition();h();const _=dt.current;if(_===void 0)return;const B=gt(b.getScrollPosition(),at.current),W=B-gt(X,at.current);W!==0&&_({position:B,delta:W,cause:c})},[]),he=t.useRef(!1);t.useEffect(()=>{if(!he.current)if(he.current=!0,F==null&&typeof v!="number"&&typeof A=="number"){const c=sr(Math.max(A,0),P.top),h=Math.abs(c-pe.current)>.5;u(c,{immediate:!0}),h&&se.current?.scrollTo(c)}else u(pe.current,{immediate:!0})},[F,v,A,P.top,u]),t.useEffect(()=>{const c=L.getTotal();if(m!==c){ie(c);return}if(Ce.current){Ce.current=!1;const h=se.current;h&&Math.abs(h.getScrollPosition()-pe.current)>.5&&C("re-issue",()=>{const b=T(pe.current);Ce.current=!1,u(b,{immediate:!0})})}},[L,m,r,C,T,u]),t.useEffect(()=>{if(We.current!==null){const{index:c,align:h,offset:b}=We.current,X=Ke(c,r),{cumulative:_,currentValue:B}=L.prefixSum(X,{materializeOption:{materialize:!1}});if(_!==void 0&&B!==void 0){const W=Math.max(_-B,0);let be=W;h==="bottom"?be=_-ne:h==="center"&&(be=W+B/2-ne/2),b&&(be-=b),be=Math.max(0,be);const Ne=Math.max(0,m+P.top+P.bottom-ne),ze=Math.min(sr(be,P.top),Ne);Math.abs(ze-pe.current)>hr&&(k.debug("[VirtualScroll] Drift correction",{from:pe.current,to:ze,targetIndex:X}),C("drift",()=>{we.current===0&&(we.current+=1),se.current?.scrollTo(ze),u(ze,{immediate:!0});const ye=vn(h);xe(ye===null?null:{edge:ye,panePosition:ze})}))}}Tt.current=!1},[m,L,r,P.top,C,xe,u,ne,P.bottom]),t.useEffect(()=>{const c=qe.current;if(c===P.top||(qe.current=P.top,We.current))return;const h=gt(pe.current,c),b=sr(h,P.top);pe.current=b,se.current?.scrollTo(b),u(b,{immediate:!0})},[P.top,u]);const Fe=t.useCallback((c,h)=>{if(r===0)return;const b=Ke(c,r),X=L.get(b),_=h-X,B=L.update(b,h);B!==void 0&&ie(B),k.debug("[VirtualScroll] Updated item size manually",{index:b,size:h,total:B});let W=We.current?We.current.index:null;if(W===null){const be=pe.current,Ne=xn(le).top,ze=gt(be,Ne),{index:ye,cumulative:lt}=L.findIndexAtOrAfter(ze,{materializeOption:{materialize:!1}});W=lt!==void 0&&lt===ze?ye+1:ye}if(W!==-1&&b<W&&_!==0){const be=pe.current,Ne=be+_;C("item-resize",()=>{T(Ne,_),u(Ne,{immediate:!0}),De(be,Ne)}),k.debug("[VirtualScroll] Adjusted scroll for layout shift (manual update)",{from:be,to:Ne,causedByIndex:b,delta:_,activeVisibleStartIndex:W})}},[L,r,C,De,T,u,le]),Ie=t.useCallback((c,h)=>{if(!se.current||r===0)return;const b=Ke(c,r),X=Ke(b-a*2,r),_=Ke(b+a*2,r),{cumulative:B,total:W,currentValue:be}=L.prefixSum(b,{materializeOption:{materialize:!0,ranges:[{from:X,to:_}]}});if(k.debug("[VirtualScroll] Scrolling to index:",b,"ItemBottom:",B,"Total height:",W,"ItemHeight:",be,"safeIndexFrom:",X,"safeIndexTo:",_),!W)return;const Ne=Math.max(B-be,0);let ze=Ne;h?.align==="bottom"?ze=B-ne:h?.align==="center"&&(ze=Ne+be/2-ne/2),h?.offset&&(ze-=h.offset),ze=Math.max(0,ze);const ye=sr(ze,P.top),lt=se.current?.getContentSize()??W+P.top+P.bottom,Je=Math.max(0,lt-ne),Ge=Math.min(ye,Je);We.current={index:b,align:h?.align,offset:h?.offset};const Dt=vn(h?.align);xe(Dt===null?null:{edge:Dt,panePosition:Ge});const Jt=se.current?.getScrollPosition()??-1,Cr=Math.abs(Jt-Ge)>hr;Pe.current=!1,we.current=0,Cr&&(Pe.current=!0,we.current+=1,se.current?.scrollTo(Ge)),ie(W),u(Ge,{immediate:!0}),k.debug("[VirtualScroll] Setting scroll position to:",Ge,{original:ye,max:Je})},[L,a,r,P.top,P.bottom,ne,xe,u]),wt=t.useRef(F&&r===0?F:null);t.useEffect(()=>{const c=wt.current;!c||r===0||(wt.current=null,Ie(ee(Math.trunc(c.index),0,r-1),{align:"top",offset:-Math.max(0,c.offsetPx??0)}))},[r,Ie]);const mt=t.useCallback(c=>{if(!se.current||r===0)return;const h=L.getTotal(),b=ee(Math.floor(c),0,h),{index:X,cumulative:_,currentValue:B}=L.findIndexAtOrAfter(b,{materializeOption:{materialize:!1}}),be=(_??0)-(B??0)-b;Ie(X,{offset:be})},[L,r,Ie]),ar=t.useCallback(()=>{if(r===0)return null;const c=gt(pe.current,P.top),{index:h,cumulative:b,currentValue:X}=L.findIndexAtOrAfter(c,{materializeOption:{materialize:!1}});if(h===-1)return{index:r-1,offsetPx:0};if(b===c)return{index:ee(h+1,0,r-1),offsetPx:0};const _=(b??0)-(X??0);return{index:h,offsetPx:Math.max(0,c-_)}},[L,r,P.top]),zt=t.useCallback(c=>{const h=gt(pe.current,P.top),b=typeof c=="function"?c(h):c;mt(b);const X=se.current?.getScrollPosition(),_=typeof X=="number"?X:pe.current;return u(_),gt(_,at.current)},[P.top,mt,u]),Vt=t.useCallback(c=>{const h=se.current;if(!h)return gt(pe.current,at.current);const b=h.scrollTo(X=>X+c);return gt(b,at.current)},[]),Ut=t.useCallback(c=>se.current?.applyWheel(c)??!1,[]),Ir=t.useCallback((c,h)=>{k.debug("[VirtualScroll] Scroll position changed:",c);const b=Pe.current;b&&(Pe.current=!1);const X=we.current>0;X&&(we.current=0);const _=Tt.current&&Xt.current===r;if(b||X||_||(We.current=null,_e()),u(c),He){if(b||X)return;const B=c-h;if(k.debug("[VirtualScroll] Scroll diff:",B,"New:",c,"Prev:",h),Math.abs(B)>1){const W=B>0?"down":"up";I(W),Ue(!0),k.debug("[VirtualScroll] Showing scroll buttons. Direction:",W),Oe.current&&clearTimeout(Oe.current),Oe.current=setTimeout(()=>{Ue(!1),k.debug("[VirtualScroll] Hiding scroll buttons")},2e3)}}},[u,_e,He,r]),ot=t.useMemo(()=>gt(ct,P.top),[P.top,ct]),xt=t.useMemo(()=>{const c=L.getTotal(),h=_n(ot,ne,a,r,s,L,c);return k.debug("[VirtualScroll] Calculated rendering range:",()=>({...h,scrollPosition:ot,renderingContentSize:c,overscanCount:a,viewportSize:ne})),h},[ot,ne,a,r,s,L]),{renderingStartIndex:Rt,renderingEndIndex:ht,visibleStartIndex:vt,visibleEndIndex:Pt}=xt,pt=t.useCallback((c,h)=>{if(!Re||r===0)return;const b=Ke(c,r);if(!(h?.ensureVisible??!0)){const Je=me.current.get(b);Je&&(Me.current=null,ve.current=b,Ot(Je));return}const _=L.prefixSum(b,{materializeOption:{materialize:!1}}),B=_.currentValue,W=Math.max(_.cumulative-B,0),be=W+B,Ne=gt(pe.current,P.top),ze=Ne+ne;if(W<Ne||be>ze){Ie(b);const Je=me.current.get(b);Je?(Me.current=null,ve.current=b,Ot(Je)):Me.current=b;return}const lt=me.current.get(b);if(lt){Me.current=null,ve.current=b,Ot(lt);return}Me.current=b},[Re,r,L,P.top,Ie,Ot,ne]),Mt=t.useCallback((c,h)=>{if(!(!Re||c.defaultPrevented)&&!(c.altKey||c.metaKey||c.ctrlKey)&&c.target===c.currentTarget&&!c.currentTarget.isContentEditable){if(c.key==="ArrowLeft"||c.key==="ArrowRight"){const b=je.current;if(!b||c.shiftKey||!V?.includes("arrow")||!(Number.isFinite(M)&&M>0))return;c.preventDefault(),b(c.key==="ArrowLeft"?-M:M);return}if(c.key==="ArrowDown"){h<r-1&&(c.preventDefault(),pt(h+1));return}if(c.key==="ArrowUp"){h>0&&(c.preventDefault(),pt(h-1));return}if(c.key==="PageDown"){if(h<r-1){c.preventDefault();const{visibleStartIndex:b,visibleEndIndex:X}=te.current,_=Math.max(X-b+1,1),B=Math.max(_,1),W=Ke(Math.min(h+B,r-1),r);pt(W)}return}if(c.key==="PageUp"&&h>0){c.preventDefault();const{visibleStartIndex:b,visibleEndIndex:X}=te.current,_=Math.max(X-b+1,1),B=Math.max(_,1),W=Ke(h-B,r);pt(W)}}},[Re,r,pt,V,M]),Zt=t.useCallback((c,h)=>{if(c.key!=="Escape"||c.defaultPrevented||c.nativeEvent.isComposing||c.target===c.currentTarget)return;const b=c.target;b instanceof HTMLInputElement||b instanceof HTMLTextAreaElement||b instanceof HTMLSelectElement||b.isContentEditable||(c.preventDefault(),pt(h))},[pt]),Gt=t.useCallback(c=>{if(!Re)return;const h=Ke(c,r);Me.current=null,ve.current=h,Ae?.(h)},[Re,r,Ae]);t.useEffect(()=>{const c=se.current?.getScrollPosition()??0,h=pe.current,b=gt(h,P.top);k.debug("[VirtualScroll] Range change effect triggered",()=>({renderingStartIndex:Rt,renderingEndIndex:ht,visibleStartIndex:vt,visibleEndIndex:Pt,scrollPositionState:ct,paneScrollPosition:h,logicalScrollPosition:b,contentSize:m,scrollPaneScrollPosition:c})),rr({renderingStartIndex:Rt,renderingEndIndex:ht,visibleStartIndex:vt,visibleEndIndex:Pt,scrollPosition:b,totalHeight:m})},[m,ht,Rt,P.top,rr,ct,Pt,vt]);const It=t.useCallback(()=>{if(!He)return null;const c=tt&&S!==null,h=S==="up";return N.jsx("div",{className:"aqvs-scroll-to-edge-overlay","data-visible":c,inert:!c,children:h?N.jsx("div",{className:"aqvs-scroll-to-edge-button-container aqvs-scroll-to-edge-button-container-top",children:N.jsx("button",{type:"button",className:"aqvs-scroll-to-edge-button",tabIndex:c?0:-1,onClick:b=>{b.stopPropagation(),Pe.current=!0,Ie(0),Ue(!1)},children:ft.scrollToTop})}):N.jsx("div",{className:"aqvs-scroll-to-edge-button-container aqvs-scroll-to-edge-button-container-bottom",children:N.jsx("button",{type:"button",className:"aqvs-scroll-to-edge-button",tabIndex:c?0:-1,onClick:b=>{b.stopPropagation(),Pe.current=!0,Ie(r-1),Ue(!1)},children:ft.scrollToBottom})})})},[He,tt,S,Ie,r,ft]),gr=t.useRef(0),{visibleItems:Lt,renderAnchor:or}=t.useMemo(()=>{if(r===0)return{visibleItems:N.jsx("div",{className:"aqvs-no-items-container",children:N.jsx("div",{className:"aqvs-no-items-text",children:ft.noItems})}),renderAnchor:0};const c=Ke(Rt,r),h=Ke(ht,r),{cumulative:b,currentValue:X}=L.prefixSum(c,{materializeOption:{materialize:!1}}),_=b-X;Number.isFinite(_)&&Math.abs(_-gr.current)>Dn&&(gr.current=_);const B=gr.current,W=[],be=[];let Ne=0,ze=_;for(let ye=c;ye<=h;ye++){if(be.length>=jr){k.warn("[VirtualScroll] Rendered item count reached the safety cap; truncating render window.",{cap:jr,safeRenderingStartIndex:c,safeRenderingEndIndex:h});break}const lt=s(ye),Je=L.get(ye),Ge=lt-Je;Ge!==0&&W.push({index:ye,value:lt});const Dt=ze+Ne,Jt=n?n(ye):ye;be.push(N.jsx(Cs,{index:ye,top:Dt-B,height:lt,item:e(ye),clipItemHeight:it,enableKeyboardNavigation:Re,onKeyDown:Mt,onEscapeKeyDown:Qe?Zt:void 0,onFocus:Gt,registerItemRef:qt,children:w},Jt)),Ne+=Ge,ze+=Je}return W.length>0&&Promise.resolve().then(()=>{if($.current)return;let ye=0;for(const Ge of W)if(Ge.index<vt){const Dt=L.get(Ge.index);ye+=Ge.value-Dt}const lt=L.updates(W);if($.current||typeof lt!="number")return;ie(lt),k.debug("[VirtualScroll] Updated heights for items",W,"New total height:",lt);const Je=se.current?.getScrollPosition()??pe.current;if(ye!==0){const Ge=Je+ye;C("reconciliation",()=>{T(Ge,ye),u(Ge,{immediate:!0}),De(Je,Ge)}),k.debug("[VirtualScroll] Adjusted scroll for layout shift (auto update)",{from:Je,to:Ge,shiftAmount:ye})}else Je!==pe.current&&u(Je)}),{visibleItems:be,renderAnchor:B}},[C,De,w,it,m,Re,r,L,e,n,s,Gt,Mt,Qe,Zt,T,qt,ht,Rt,ft,u,vt]),lr=t.useCallback(c=>{const h=(H??0)>0,b=Math.abs(c-ct),X=h&&b>.5?ct:c,_=gt(X,P.top);if(k.debug("[VirtualScroll] Rendering visible items",()=>({currentScrollPosition:c,effectiveScrollPosition:_,renderingStartIndex:Rt,renderingEndIndex:ht,itemCount:r,viewportSize:ne,callbackThrottleMs:H,diff:b,rawEffectiveScrollPosition:X})),r===0)return Lt;const B=P.top+or-X,W=L.getTotal(),be=ys(X,W+P.top+P.bottom-ne,ue),Ne=P.bottom>0?N.jsx("div",{className:"aqvs-bottom-inset",style:{top:W-or,height:P.bottom}},"virtualscroll-bottom-inset"):null;return k.debug("[VirtualScroll] Rendering items",()=>({containerTop:B,snapEdge:be,logicalScrollPosition:ot,resolvedInsets:P,effectiveScrollPosition:_})),N.jsxs(Ts,{translateY:B,snapEdge:be,children:[Lt,Ne]})},[ue,H,r,L,ot,or,ht,Rt,P,ct,ne,Lt]),rt=t.useMemo(()=>({renderingStartIndex:xt.renderingStartIndex,renderingEndIndex:xt.renderingEndIndex,visibleStartIndex:xt.visibleStartIndex,visibleEndIndex:xt.visibleEndIndex,scrollPosition:ot,totalHeight:L.getTotal()}),[xt,ot,L,m]);t.useEffect(()=>{te.current=rt},[rt]);const[br,xr]=t.useState(""),vr=t.useRef(j);t.useLayoutEffect(()=>{vr.current=j},[j]);const Qt=j?.debounceMs??400,cr=Number.isFinite(Qt)&&Qt>=0,nr=j!==void 0;t.useEffect(()=>{nr&&!cr&&k.warn(`[VirtualScroll] liveRegion.debounceMs must be a finite number >= 0, received ${Qt}. Announcements are disabled.`)},[nr,cr,Qt]),t.useEffect(()=>{if(!(nr&&cr)){xr("");return}const c=setTimeout(()=>{const h=vr.current?.format;if(!h)return;const b=h({visibleStartIndex:vt,visibleEndIndex:Pt,itemCount:r});xr(b)},Qt);return()=>clearTimeout(c)},[nr,cr,Qt,vt,Pt,r]),t.useImperativeHandle(K,()=>({getScrollPosition:()=>{const c=se.current?.getScrollPosition();return typeof c=="number"?gt(c,at.current):-1},getContentSize:()=>se.current?.getContentSize()??-1,getViewportSize:()=>se.current?.getViewportSize()??-1,scrollTo:zt,scrollBy:Vt,applyWheel:Ut,scrollToIndex:Ie,getFenwickTreeTotalHeight:()=>L.getTotal(),getFenwickSize:()=>L.getSize(),focusItemAtIndex:pt,getRange:()=>te.current,getScrollAnchor:ar,updateItemSize:Fe}),[zt,Vt,Ut,Ie,L,pt,ar,Fe]);const _r=L.getTotal()+P.top+P.bottom,Sr=N.jsx(Vn,{ref:se,contentSize:_r,viewportSize:i,onViewportSizeChange:Se,className:o,testId:d,onScroll:Ir,background:y,tapScrollCircleOptions:Ve,inertiaOptions:Le,overscrollBehavior:st,itemCount:r,scrollBarWidth:ge,enableThumbDrag:Ze,enableTrackClick:E,enableArrowButtons:Y,enableArrowButtonTabStops:ae,enablePointerDrag:ce,pointerDragInputs:Be,renderThumbOverlay:oe,wheelSpeedMultiplier:nt,onWheelHorizontal:Q,onPanHorizontal:D,contentInsets:P,contentProps:re,visibleStartIndex:vt,visibleEndIndex:Pt,renderOverlay:It,initialScrollPosition:St.position,locale:q,labels:J,children:lr});return nr?N.jsxs(N.Fragment,{children:[Sr,N.jsx("div",{className:"aqvs-live-region",role:"status","aria-live":"polite","aria-atomic":"true","data-aqvs-live-region":"",children:br})]}):Sr},On=t.forwardRef(Ps),pr=262144,wn=3,Fn=32768,Ur=128,Gr=128,Kr=128,Zr=128,qr=10,ks=(r,e)=>Math.max(1,Math.floor((r??Fn)/Math.max(1,e))),As=(r,e,n,s,i)=>{let a=0,o=0,d=Math.max(0,Math.min(s,n-1));for(;d<n&&a<r&&o<jr;)a+=e(d),o+=1,d+=1;return Math.max(1,o+2*i+2)},zr=(r,e,n)=>{if(!(Number.isInteger(r)&&r>=0&&r<=pr)){const s=e==="row"?"getRowHeight":"getColWidth",i=e==="row"?"rows":"columns";throw new RangeError(`[VirtualGrid] ${s}(${n}) returned ${r} — must be an integer in [0, ${pr}] (0 = hidden). Round fractional sizes to whole pixels and split content larger than ${pr} px across several ${i}: a larger track could push cell positions past the 2^25 px layout-coordinate limit of browsers.`)}return r},Ns=(r,e,n,s,i,a,o,d)=>{const f=_n(r,e,n,s,i,a,o);if(s===0)return{renderingColStart:0,renderingColEnd:0,visibleColStart:0,visibleColEnd:0,colAnchor:0};const g=ee(f.renderingStartIndex,0,s-1),{cumulative:x,currentValue:w}=a.prefixSum(g,{materializeOption:{materialize:!1}}),y=x-w,v=Number.isFinite(y)&&Math.abs(y-d)>Dn?y:d;return{renderingColStart:f.renderingStartIndex,renderingColEnd:f.renderingEndIndex,visibleColStart:f.visibleStartIndex,visibleColEnd:f.visibleEndIndex,colAnchor:v}},Rn=[],zs=(r,e,n,s,i)=>{const a=[],o=[];if(e<r)return{columns:a,widthUpdates:o,truncated:0};const d=s.prefixSum(r,{materializeOption:{materialize:!1}});let f=d.cumulative-d.currentValue,g=0,x=r;for(;x<=e;){if(a.length>=i)return{columns:a,widthUpdates:o,truncated:e-x+1};const w=n(x),y=s.get(x);if(w!==y&&o.push({index:x,value:w}),w>0){a.push({col:x,left:f,width:w}),f+=y,g=0,x+=1;continue}if(f+=y,g+=1,x+=1,g>Er){const v=s.findIndexAtOrAfter(f+.5,{materializeOption:{materialize:!1}});if(v.index===-1||v.index<=x||!Number.isSafeInteger(v.index))break;const A=s.prefixSum(v.index,{materializeOption:{materialize:!1}});f=A.cumulative-A.currentValue,x=v.index,g=0}}return{columns:a,widthUpdates:o,truncated:0}},Vs=(r,e,n)=>{const s=[],i=[];let a=0;for(let o=0;o<r;o+=1){const d=e(o),f=n.get(o);d!==f&&i.push({index:o,value:d}),d>0&&s.push({col:o,left:a,width:d}),a+=f}return{columns:s,widthUpdates:i,width:a}},Ls=(r,e,n,s)=>{const i=[],a=[];let o=0;for(let d=r-e;d<r;d+=1){const f=n(d),g=s.get(d);f!==g&&a.push({index:d,value:f}),f>0&&i.push({col:d,left:o,width:f}),o+=g}return{columns:i,widthUpdates:a,width:o}},Vr=(r,e,n)=>Math.min(r,Math.max(0,n-e)),Ds={renderingColStart:0,renderingColEnd:0,visibleColStart:0,visibleColEnd:0,colAnchor:0,key:"0:0:0"},_s=({rowCount:r,colCount:e,getRowHeight:n,getColWidth:s,getCell:i,getCellKey:a,children:o,getCellProps:d,getRowProps:f,contentProps:g,background:x,contentInsets:w,onRowFocus:y,frozenLeadingCols:v=0,frozenLeadingRows:A=0,frozenTrailingCols:F=0,frozenTrailingRows:H=0,horizontalKeyInputs:le,horizontalKeyStep:Ae,onScroll:z,onRangeChange:U,onRenderTruncated:Q,callbackThrottleMs:D,initialScrollAnchor:V,overscanRows:M=wn,overscanCols:re=wn,viewportSize:j,__maxRenderedCells:q,behaviorOptions:J,scrollBarOptions:K,liveRegion:ge,locale:Ze,labels:E,className:Y,testId:ae},He)=>{const oe=t.useRef(null),Ve=t.useRef(null),ft=t.useRef(n);ft.current=n;const ce=t.useRef(s);ce.current=s;const Be=J?.resetOnGetColWidthChange===!0,Qe=J?.resetOnGetItemHeightChange===!0?n:null,nt=Be?s:null,Le=t.useCallback(l=>zr(ft.current(l),"row",l),[Qe]),st=t.useCallback(l=>zr(ce.current(l),"col",l),[nt]),it=J?.defaultColWidth,$e=t.useMemo(()=>{if(it!==void 0&&!(Number.isInteger(it)&&it>=0&&it<=pr))throw new RangeError(`[VirtualGrid] behaviorOptions.defaultColWidth must be an integer in [0, ${pr}], received ${it}.`);return{resetOnValueFnChange:Be,baseValue:it}},[Be,it]),fe=nn(e,st,$e),[yt,ne]=t.useState(0);if(!(Number.isInteger(v)&&v>=0&&v<=Ur))throw new RangeError(`[VirtualGrid] frozenLeadingCols must be an integer in [0, ${Ur}], received ${v}.`);const Se=Math.min(v,e),se=t.useRef(0);if(!(Number.isInteger(F)&&F>=0&&F<=Kr))throw new RangeError(`[VirtualGrid] frozenTrailingCols must be an integer in [0, ${Kr}], received ${F}.`);const te=Math.min(F,e-Se),We=t.useRef(0);if(!(Number.isInteger(A)&&A>=0&&A<=Gr))throw new RangeError(`[VirtualGrid] frozenLeadingRows must be an integer in [0, ${Gr}], received ${A}.`);const $=Math.min(A,r);if(!(Number.isInteger(H)&&H>=0&&H<=Zr))throw new RangeError(`[VirtualGrid] frozenTrailingRows must be an integer in [0, ${Zr}], received ${H}.`);const Xe=Math.min(H,r-$),P=Math.max(0,r-$-Xe),Te=t.useRef(!1),bt=t.useRef(0),L=t.useRef(0),[St,ct]=t.useState(0),{frozenRows:kt,frozenHeight:m}=t.useMemo(()=>{if($===0)return{frozenRows:[],frozenHeight:0};const l=[];let p=0;for(let R=0;R<$;R+=1){const O=Le(R);O>0&&l.push({row:R,top:p,height:O}),p+=O}return{frozenRows:l,frozenHeight:p}},[$,St,Le]);bt.current=m;const[ie,ue]=t.useState(0),{trailingRows:G,trailingHeight:Z}=t.useMemo(()=>{if(Xe===0)return{trailingRows:[],trailingHeight:0};const l=[];let p=0;for(let R=r-Xe;R<r;R+=1){const O=Le(R);O>0&&l.push({row:R,top:p,height:O}),p+=O}return{trailingRows:l,trailingHeight:p}},[Xe,r,ie,Le]);L.current=Z;const xe=t.useCallback(l=>Le(l+$),[Le,$]),De=t.useRef(y);De.current=y;const _e=y!==void 0,pe=t.useMemo(()=>_e?l=>De.current?.(l+$):void 0,[$,_e]),qe=m,Ye=Z,[ut,dt]=t.useState($),je=t.useRef(null),At=t.useRef(!1);if(ut!==$){dt($),At.current=!0;const l=oe.current?.getScrollAnchor()??null;je.current=l===null?null:{row:l.index+ut,offsetPx:l.offsetPx}}const Ee=t.useRef(0),me=t.useRef(0),Me=t.useRef(!1),[ve,S]=t.useState(Ds),I=t.useRef(ve);I.current=ve;const tt=t.useRef(0),[Ue,Oe]=t.useState(()=>fe.getTotal()??0),Pe=t.useRef(Ue);Pe.current=Ue;const we=t.useCallback(l=>{typeof l=="number"&&Number.isFinite(l)&&(Pe.current=l,Oe(l))},[]);t.useLayoutEffect(()=>{const l=fe.getTotal();typeof l=="number"&&Number.isFinite(l)&&l!==Pe.current&&we(l)});const Ce=K?.width??12,Tt=j===void 0?null:{width:Math.max(0,Math.round(j.width)-Ce),height:Math.max(0,Math.round(j.height)-Ce)},[Xt,Ot]=t.useState({width:0,height:0}),ke=Tt??Xt,Et=t.useRef(ke);Et.current=ke;const ir=ke.height>0&&ke.height-m-Z<=0;Te.current=ir;const rr=Tt!==null;t.useLayoutEffect(()=>{if(rr)return;const l=Ve.current;if(l===null)return;const p=()=>{const O=Math.max(0,Math.round(l.clientWidth)-Ce),de=Math.max(0,Math.round(l.clientHeight)-Ce);Ot(et=>et.width===O&&et.height===de?et:{width:O,height:de})};p();const R=new ResizeObserver(p);return R.observe(l),()=>R.disconnect()},[Ce,rr]);const at=t.useCallback(()=>{const l=Ve.current;l!==null&&l.style.setProperty("--aqvs-grid-hx-residual",`${tt.current-Ee.current}px`)},[]),Nt=t.useCallback(()=>Math.max(0,Et.current.width-se.current-We.current),[]),qt=t.useCallback(()=>Math.max(0,Pe.current-se.current-We.current-Nt()),[Nt]),Yt=t.useCallback(()=>{const l=Nt(),p=Ns(se.current+Ee.current,l,re,e,st,fe,Pe.current,I.current.colAnchor);if(Se>0&&(p.renderingColStart=Math.max(p.renderingColStart,Se),p.visibleColStart=Math.max(p.visibleColStart,Se)),te>0){const O=e-te-1;p.renderingColEnd=Math.min(p.renderingColEnd,O),p.visibleColEnd=Math.min(p.visibleColEnd,O)}(Se>0||te>0)&&(l<=0||p.renderingColStart>p.renderingColEnd)&&(p.renderingColStart=e,p.renderingColEnd=e-1,p.visibleColStart=e,p.visibleColEnd=e-1);const R=`${p.renderingColStart}:${p.renderingColEnd}:${p.colAnchor}`;R!==I.current.key&&S({...p,key:R})},[re,e,st,fe,Se,te,Nt]),[Bt,Kt]=t.useState(0),Ft=t.useRef(null),Wt=t.useCallback(()=>{Ft.current===null&&(Ft.current=requestAnimationFrame(()=>{Ft.current=null,Kt(Ee.current)}))},[]);t.useEffect(()=>()=>{Ft.current!==null&&cancelAnimationFrame(Ft.current)},[]);const jt=t.useRef(z);jt.current=z;const u=t.useRef(U);u.current=U;const T=t.useRef(Q);T.current=Q;const C=t.useRef(null),[he,Fe]=t.useState(null),[Ie,wt]=t.useState(ke.height);Ie!==ke.height&&(wt(ke.height),Fe(null));const mt=V===void 0||r===0?0:ee(Math.trunc(V.row),0,r-1),ar=t.useMemo(()=>{const l=C.current?.renderingStartIndex??mt;return As(Math.max(0,ke.height-bt.current-L.current),Le,r,l,M)},[ke.height,Le,r,mt,M,qe,Ye]),zt=he??ar,Vt=t.useCallback(()=>{const l=C.current;if(l===null)return null;const p=I.current;return{renderingRowStart:l.renderingStartIndex,renderingRowEnd:l.renderingEndIndex,visibleRowStart:l.visibleStartIndex,visibleRowEnd:l.visibleEndIndex,renderingColStart:p.renderingColStart,renderingColEnd:p.renderingColEnd,visibleColStart:p.visibleColStart,visibleColEnd:p.visibleColEnd,scrollX:Ee.current,scrollY:me.current,totalWidth:Pe.current,totalHeight:l.totalHeight+bt.current+L.current}},[]),Ut=t.useCallback(()=>{const l=Vt();l!==null&&u.current?.(l)},[Vt]),Ir=t.useCallback(l=>{const p=qt(),R=ee(l,0,p);return R!==Ee.current&&(Ee.current=R,at(),Yt(),Wt(),jt.current?.({x:R,y:me.current})),R},[at,Yt,Wt,qt]),ot=t.useRef(Ir);ot.current=Ir,t.useLayoutEffect(()=>{tt.current=ve.colAnchor,at(),Ut()},[ve,at,Ut]),t.useLayoutEffect(()=>{C.current!==null&&Ut()},[m,Z,Ut]);const xt=t.useRef(null),Rt=t.useCallback(l=>{const p=ee(l.col,0,Math.max(0,e-1)),R=fe.prefixSum(p,{materializeOption:{materialize:!1}}),O=R.cumulative-R.currentValue,de=R.currentValue,et=Nt();return(l.alignX==="end"?O+de-se.current-et:l.alignX==="center"?O+de/2-se.current-et/2:O-se.current)+l.offsetX},[fe,e,Nt]),ht=t.useRef(null),vt=t.useCallback(()=>{const l=ht.current;ht.current=null,!(l===null||l.length===0)&&(we(fe.updates(l)),ne(p=>p+1))},[fe,we]),Pt=t.useRef({count:0,warned:!1}),{frozenColumns:pt,frozenWidth:Mt}=t.useMemo(()=>{if(Se===0)return Pt.current.count=0,Pt.current.warned=!1,{frozenColumns:Rn,frozenWidth:0};const{columns:l,widthUpdates:p,width:R}=Vs(Se,st,fe);if(p.length>0){const O=Pt.current;O.count>=qr?O.warned||(O.warned=!0,k.warn("[VirtualGrid] getColWidth keeps disagreeing with its own previous values inside the frozen band; width self-heal is suspended until a converged pass re-arms it (unstable accessor).",{frozenCols:Se,pendingUpdates:p.length})):(O.count+=1,ht.current=[...ht.current??[],...p],Promise.resolve().then(vt))}else Pt.current.count=0,Pt.current.warned=!1;return{frozenColumns:l,frozenWidth:R}},[Se,yt,st,fe,vt]);se.current=Mt,t.useLayoutEffect(()=>{Se>0?Ve.current?.style.setProperty("--aqvs-grid-frozen-width",`${Mt}px`):Ve.current?.style.removeProperty("--aqvs-grid-frozen-width")},[Mt,Se]);const Zt=t.useRef({count:0,warned:!1}),{trailingColumns:Gt,trailingWidth:It}=t.useMemo(()=>{if(te===0)return Zt.current.count=0,Zt.current.warned=!1,{trailingColumns:Rn,trailingWidth:0};const{columns:l,widthUpdates:p,width:R}=Ls(e,te,st,fe);if(p.length>0){const O=Zt.current;O.count>=qr?O.warned||(O.warned=!0,k.warn("[VirtualGrid] getColWidth keeps disagreeing with its own previous values inside the trailing band; width self-heal is suspended until a converged pass re-arms it (unstable accessor).",{trailingCols:te,pendingUpdates:p.length})):(O.count+=1,ht.current=[...ht.current??[],...p],Promise.resolve().then(vt))}else Zt.current.count=0,Zt.current.warned=!1;return{trailingColumns:l,trailingWidth:R}},[te,e,yt,st,fe,vt]);We.current=It,t.useLayoutEffect(()=>{te>0?Ve.current?.style.setProperty("--aqvs-grid-trailing-width",`${It}px`):Ve.current?.style.removeProperty("--aqvs-grid-trailing-width")},[It,te]);const gr=t.useMemo(()=>({...K,tapScrollCircleOptions:{...K?.tapScrollCircleOptions,enabled:!1}}),[K]),Lt=K?.tapScrollCircleOptions,or=typeof Lt?.maxSpeedMultiplier=="number",lr=t.useMemo(()=>({...Lt,offsetX:Lt?.offsetX===void 0?gn:Lt.offsetX,offsetY:Lt?.offsetY===void 0?gn:Lt.offsetY}),[Lt]),rt=t.useMemo(()=>Wr(lr,Math.max(0,e-Se-te)),[lr,e,Se,te]),br=t.useMemo(()=>Wr(lr,P),[lr,P]),xr=rt.enabled,vr=Math.max(rt.maxVisualDistance,1),Qt={viewportSize:Math.max(0,ke.width-Mt-It),minSpeedMultiplier:rt.minSpeedMultiplier,maxSpeedMultiplier:rt.maxSpeedMultiplier,hasCustomMaxSpeedMultiplier:or,curve:rt.maxSpeedCurve},cr={viewportSize:Math.max(0,ke.height-m-Z),minSpeedMultiplier:br.minSpeedMultiplier,maxSpeedMultiplier:br.maxSpeedMultiplier,hasCustomMaxSpeedMultiplier:or,curve:br.maxSpeedCurve},nr=t.useCallback(()=>Ee.current,[]),_r=t.useCallback(()=>{const l=oe.current;if(l===null)return me.current;const p=l.getScrollPosition();return p<0?me.current:p},[]),Sr=t.useCallback(()=>{const l=oe.current;return l===null?0:Math.max(0,Math.max(0,l.getContentSize())-Math.max(0,l.getViewportSize()))},[]),c=t.useCallback(l=>{const p=oe.current;if(p===null)return me.current;const R=p.scrollBy(l);return me.current=R,R},[]),h=qt()>0||Sr()>0,b=`${Ue}:${Mt}:${It}:${ke.width}:${ve.key}`,X=`${r}:${he??-1}:${m}:${Z}:${ke.height}`,{isTapActive:_,handleTapCircleDragChange:B,tapCircleHandleRef:W}=Ms({enabled:xr&&h,maxDistance:vr,xSpeedParams:Qt,ySpeedParams:cr,applyHxRef:ot,getHx:nr,getMaxHx:qt,applyVy:c,getVy:_r,getMaxVy:Sr,pendingColAnchorRef:xt,xExtentFreshness:b,yExtentFreshness:X}),be=t.useMemo(()=>ee((_?1:.8)*rt.opacity,0,1),[_,rt.opacity]);t.useLayoutEffect(()=>{const l=xt.current;l===null?ot.current(Ee.current):ot.current(Rt(l)),Yt()},[ke.width,Ue,yt,Mt,It,Yt,Rt]);const Ne=t.useRef(!1);t.useLayoutEffect(()=>{if(Ne.current||V===void 0||e===0)return;Ne.current=!0;const l=ee(Math.trunc(V.col),0,e-1);if(l<Se||l>=e-te)return;const p={col:l,alignX:"start",offsetX:Math.max(0,V.offsetX)};xt.current=p,ot.current(Rt(p))},[V,e,Rt,Se,te]);const ze=t.useCallback(l=>{me.current=l,Me.current=!0,jt.current?.({x:Ee.current,y:l})},[]),ye=t.useCallback(l=>{if(P===0||Te.current)C.current={renderingStartIndex:r,renderingEndIndex:r-1,visibleStartIndex:r,visibleEndIndex:r-1,scrollPosition:0,totalHeight:P===0?0:l.totalHeight},me.current=0;else{const p=$;C.current={renderingStartIndex:l.renderingStartIndex+p,renderingEndIndex:l.renderingEndIndex+p,visibleStartIndex:l.visibleStartIndex+p,visibleEndIndex:l.visibleEndIndex+p,scrollPosition:l.scrollPosition,totalHeight:l.totalHeight},me.current=l.scrollPosition}Fe(p=>{const R=Math.max(1,l.renderingEndIndex-l.renderingStartIndex+1);return R===p?p:R}),Ut()},[Ut,$,P,r]),lt=t.useCallback(l=>{xt.current=null,ot.current(Ee.current+l)},[]),Je=ks(q,zt+kt.length+G.length),Ge=t.useRef({count:0,warned:!1}),{placedColumns:Dt,truncatedCols:Jt}=t.useMemo(()=>{const l=Math.max(0,ke.width-Mt-It);if(e===0||l<=0)return{placedColumns:[],truncatedCols:0};if(ve.renderingColStart>ve.renderingColEnd)return{placedColumns:[],truncatedCols:0};const p=Math.max(1,Je-pt.length-Gt.length),{columns:R,widthUpdates:O,truncated:de}=zs(ee(ve.renderingColStart,0,e-1),ee(ve.renderingColEnd,0,e-1),st,fe,p);if(O.length>0){const et=Ge.current;et.count>=qr?et.warned||(et.warned=!0,k.warn("[VirtualGrid] getColWidth keeps disagreeing with its own previous values; width self-heal is suspended until a converged (zero-deviation) pass re-arms it (unstable accessor — the accessor must be index-stable while the ordering is unchanged).",{window:ve.key,pendingUpdates:O.length})):(et.count+=1,ht.current=[...ht.current??[],...O],Promise.resolve().then(vt))}else Ge.current.count=0,Ge.current.warned=!1;return{placedColumns:R,truncatedCols:de}},[ve,e,ke.width,Mt,It,pt.length,Gt.length,yt,st,fe,Je,vt]),Cr=t.useRef("");t.useEffect(()=>{if(Jt>0){const l=`${ve.key}:${Jt}`;l!==Cr.current&&(Cr.current=l,T.current?.({renderedCells:(Dt.length+pt.length+Gt.length)*(zt+kt.length+G.length),droppedCols:Jt}))}},[Jt,ve.key,Dt.length,pt.length,Gt.length,zt,kt.length,G.length]);const sn=ve.colAnchor,Or=t.useCallback(l=>{const p=f?.(l),R=Le(l)===0,O=R?null:Dt.map(({col:de,left:et,width:dr})=>{const _t=d?.(l,de),wr={..._t?.style,left:et-sn,width:dr};return t.createElement("div",{..._t,key:a?a(l,de):de,className:Ct.twMerge("aqvs-grid-cell",_t?.className),style:wr},o(i(l,de),l,de))});return Se===0&&te===0?N.jsx("div",{...p,className:Ct.twMerge("aqvs-grid-row",p?.className),style:p?.style,children:O}):N.jsxs("div",{...p,"data-aqvs-frozen-row":Se>0?"":void 0,className:Ct.twMerge("aqvs-grid-row aqvs-grid-row-frozen-host",p?.className),style:p?.style,children:[R?null:pt.map(({col:de,left:et,width:dr})=>{const _t=d?.(l,de),wr={..._t?.style,left:et,width:dr};return t.createElement("div",{..._t,"data-aqvs-frozen-cell":"",key:a?a(l,de):de,className:Ct.twMerge("aqvs-grid-cell",_t?.className),style:wr},o(i(l,de),l,de))}),R?null:N.jsx("div",{className:"aqvs-grid-row-scroll",children:N.jsx("div",{className:"aqvs-grid-row-scroll-inner",children:O})}),R||te===0?null:N.jsx("div",{className:"aqvs-grid-row-trailing",children:N.jsx("div",{className:"aqvs-grid-row-trailing-inner",children:Gt.map(({col:de,left:et,width:dr})=>{const _t=d?.(l,de),wr={..._t?.style,left:et,width:dr};return t.createElement("div",{..._t,"data-aqvs-trailing-cell":"",key:a?a(l,de):de,className:Ct.twMerge("aqvs-grid-cell",_t?.className),style:wr},o(i(l,de),l,de))})})})]})},[Dt,pt,Gt,Se,te,sn,f,d,a,i,o,Le]),[Hn,$n]=t.useState(""),ur=t.useRef(null),an=t.useRef(ge);an.current=ge;const Pr=t.useCallback(()=>{const l=an.current;if(l===void 0)return;const p=l.debounceMs??400;Number.isFinite(p)&&p>=0&&(ur.current!==null&&window.clearTimeout(ur.current),ur.current=window.setTimeout(()=>{ur.current=null;const R=Vt();R!==null&&$n(O=>{const de=l.buildMessage(R);return de===O?O:de})},p))},[Vt]),kr=ge?.debounceMs??400,on=Number.isFinite(kr)&&kr>=0,ln=ge!==void 0;t.useEffect(()=>{ln&&!on&&k.warn(`[VirtualGrid] liveRegion.debounceMs must be a finite number >= 0, received ${kr}. Announcements are disabled.`)},[ln,on,kr]),t.useEffect(()=>()=>{ur.current!==null&&window.clearTimeout(ur.current)},[]),t.useEffect(()=>{Pr()},[ve,Pr]);const Xn=t.useCallback(l=>{ye(l),Pr()},[ye,Pr]);return t.useImperativeHandle(He,()=>({scrollTo:l=>{const p=oe.current;let R=me.current;l.y!==void 0&&p!==null&&(p.scrollTo(l.y),R=p.getScrollPosition(),me.current=R);let O=Ee.current;return l.x!==void 0&&(xt.current=null,O=ot.current(l.x)),{x:O,y:R}},scrollBy:l=>{const p=oe.current;let R=me.current;l.y!==void 0&&l.y!==0&&p!==null&&(R=p.scrollBy(l.y),me.current=R);let O=Ee.current;return l.x!==void 0&&l.x!==0&&(xt.current=null,O=ot.current(Ee.current+l.x)),{x:O,y:R}},scrollToCell:(l,p,R)=>{const O=oe.current;if(O!==null&&r>0){const de=ee(Math.trunc(l),0,r-1);de>=$&&de<r-Xe&&O.scrollToIndex(de-$,{align:R?.alignY??"top",offset:R?.offsetY})}if(e>0){const de=ee(Math.trunc(p),0,e-1);if(de>=Se&&de<e-te){const et={col:de,alignX:R?.alignX??"start",offsetX:R?.offsetX??0};xt.current=et,ot.current(Rt(et))}}},getScrollPosition:()=>Me.current||oe.current!==null?{x:Ee.current,y:oe.current?.getScrollPosition()??me.current}:{x:-1,y:-1},getScrollAnchor:()=>{if(r===0||e===0)return null;const l=oe.current?.getScrollAnchor()??null;if(l===null)return null;const p=se.current+Ee.current,R=fe.findIndexAtOrAfter(p,{materializeOption:{materialize:!1}});if(R.index===-1)return{row:l.index+$,col:e-1,offsetX:0,offsetY:l.offsetPx};if(R.cumulative===p)return{row:l.index+$,col:ee(R.index+1,0,e-1),offsetX:0,offsetY:l.offsetPx};const O=(R.cumulative??0)-(R.currentValue??0);return{row:l.index+$,col:R.index,offsetX:Math.max(0,p-O),offsetY:l.offsetPx}},getViewportSize:()=>({width:Et.current.width,height:Et.current.height}),getContentSize:()=>({width:Pe.current,height:oe.current===null?0:bt.current+L.current+Math.max(0,oe.current.getContentSize())}),getRange:Vt,updateRowSize:(l,p)=>{zr(p,"row",l),Math.trunc(l)<$?ct(R=>R+1):Xe>0&&Math.trunc(l)>=r-Xe?ue(R=>R+1):oe.current?.updateItemSize(Math.trunc(l)-$,p)},updateColSize:(l,p)=>{zr(p,"col",l),we(fe.update(ee(Math.trunc(l),0,Math.max(0,e-1)),p)),ne(R=>R+1)},getFrozenSize:()=>({cols:Se,width:se.current,rows:$,height:bt.current,trailingCols:te,trailingRows:Xe,trailingWidth:We.current,trailingHeight:L.current,trailingVisibleWidth:Vr(We.current,se.current,Et.current.width),trailingVisibleHeight:Vr(L.current,bt.current,Et.current.height)}),applyWheel:l=>oe.current?.applyWheel(l)??!1,focusRowAtIndex:(l,p)=>{const R=Math.trunc(l);R<$?Ve.current?.querySelector(`[data-aqvs-frozen-band-row="${R}"]`)?.focus():Xe>0&&R>=r-Xe?Ve.current?.querySelector(`[data-aqvs-trailing-band-row="${R}"]`)?.focus():oe.current?.focusItemAtIndex(R-$,p)}}),[r,e,fe,Vt,we,Rt,Se,$,te,Xe]),N.jsxs("div",{ref:Ve,className:Ct.twMerge("aqvs-grid",$>0?"aqvs-grid-has-frozen-rows":"",Xe>0?"aqvs-grid-has-trailing-rows":"",Y),"data-testid":ae,children:[$>0?N.jsx("div",{className:"aqvs-grid-frozen-rows",style:{height:m},"data-testid":ae?`${ae}-frozen-rows`:void 0,children:kt.map(({row:l,top:p,height:R})=>N.jsx("div",{"data-aqvs-frozen-band-row":l,className:"aqvs-grid-frozen-band-row",style:{top:p,height:R,right:Ce},tabIndex:-1,onFocus:()=>y?.(l),children:Or(l)},l))}):null,N.jsx("div",{className:"aqvs-grid-main","data-testid":ae?`${ae}-main`:void 0,children:N.jsx(On,{ref:oe,itemCount:ir?0:P,getItem:l=>l+$,getItemKey:l=>l+$,getItemHeight:xe,overscanCount:M,viewportSize:ke.height>0?Math.max(0,ke.height-m-Z):void 0,callbackThrottleMs:D,behaviorOptions:J,scrollBarOptions:gr,contentProps:g,background:x,contentInsets:w,onItemFocus:pe,horizontalKeyInputs:le,horizontalKeyStep:Ae,initialScrollAnchor:At.current?je.current!==null&&je.current.row>=$&&P>0?{index:je.current.row-$,offsetPx:je.current.offsetPx}:void 0:V!==void 0&&P>0&&Math.trunc(V.row)>=$&&Math.trunc(V.row)<r-Xe?{index:Math.trunc(V.row)-$,offsetPx:V.offsetY}:void 0,onScroll:ze,onRangeChange:Xn,onWheelHorizontal:lt,onPanHorizontal:lt,locale:Ze,labels:E,testId:ae?`${ae}-rows`:void 0,children:Or},$)}),Xe>0?N.jsx("div",{className:"aqvs-grid-trailing-rows",style:{height:Vr(Z,m,ke.height)},"data-testid":ae?`${ae}-trailing-rows`:void 0,children:N.jsx("div",{className:"aqvs-grid-trailing-rows-inner",style:{height:Z},children:G.map(({row:l,top:p,height:R})=>N.jsx("div",{"data-aqvs-trailing-band-row":l,className:"aqvs-grid-trailing-band-row",style:{top:p,height:R,right:Ce},tabIndex:-1,onFocus:()=>y?.(l),children:Or(l)},l))})}):null,N.jsx("div",{className:"aqvs-grid-hbar-strip",style:{height:Ce,paddingRight:te>0?Ce+Vr(It,Mt,ke.width):Ce},"data-testid":ae?`${ae}-hbar`:void 0,children:N.jsx(rn,{horizontal:!0,contentSize:Math.max(0,Ue-Mt-It),viewportSize:Math.max(0,ke.width-Mt-It),scrollPosition:Bt,itemCount:Math.max(0,e-Se-te),tapScrollCircleOptions:K?.tapScrollCircleOptions,onScroll:(l,p)=>(xt.current=null,ot.current(typeof l=="function"?l(p??Ee.current):l)),enableThumbDrag:K?.enableThumbDrag,enableTrackClick:K?.enableTrackClick,enableArrowButtons:K?.enableArrowButtons,enableArrowButtonTabStops:K?.enableArrowButtonTabStops,scrollBarWidth:Ce,locale:Ze,labels:E})}),xr&&h&&N.jsx("div",{className:"aqvs-grid-tap-circle-wrapper","data-aqvs-grid-tap-circle":"",style:{left:`min(calc(100% - ${Ce+rt.size}px), max(calc(100% - ${Ce}px + ${rt.offsetX}px), calc(75% - ${rt.size/2}px)))`,top:`min(calc(100% - ${Ce+rt.size}px), max(calc(100% - ${Ce}px + ${rt.offsetY}px), calc(75% - ${rt.size/2}px)))`},children:N.jsx(en,{axis:"xy",ref:W,className:Ct.twMerge("aqvs-grid-tap-circle",rt.className),size:rt.size,maxVisualDistance:vr,opacity:be,renderVisual:rt.renderVisual,onDragChange:B})}),ge!==void 0?N.jsx("div",{className:"aqvs-grid-live-region","aria-live":"polite","data-testid":ae?`${ae}-live`:void 0,children:Hn}):null]})},Os=t.forwardRef(_s);exports.FenwickMapTree=$t;exports.MAX_FROZEN_LEADING_COLS=Ur;exports.MAX_FROZEN_LEADING_ROWS=Gr;exports.MAX_FROZEN_TRAILING_COLS=Kr;exports.MAX_FROZEN_TRAILING_ROWS=Zr;exports.MAX_RENDERED_CELLS=Fn;exports.MAX_TRACK_SIZE=pr;exports.ScrollBar=rn;exports.ScrollPane=Vn;exports.TAP_SCROLL_SPEED_DEFAULTS=tn;exports.VIRTUAL_SCROLL_LABEL_CATALOGS=En;exports.VIRTUAL_SCROLL_LABEL_KEYS=Lr;exports.VIRTUAL_SCROLL_LOCALES=Qr;exports.VirtualGrid=Os;exports.VirtualScroll=On;exports.computeAutoTapScrollMaxSpeedMultiplier=An;exports.computeTapScrollSpeed=Dr;exports.computeTapScrollVelocity=Nn;exports.createResidualQuantizer=us;exports.minmax=ee;exports.resolveVirtualScrollLabels=Jr;exports.resolveVirtualScrollLocale=In;exports.tapScrollCircleSampleVisual=gs;exports.useFenwickMapTree=nn;exports.useHeightCache=ws;exports.useLruCache=Ln;exports.useWheelBridge=Rs;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const N=require("react/jsx-runtime"),t=require("react"),Ct=require("tailwind-merge"),qn=1e-6,Mn=(r,e,n)=>{if(!(Number.isFinite(e)&&e>0))throw new RangeError(`[VirtualScroll] devicePixelRatio must be a finite number > 0, received ${e}`);const s=r*e,i=Math.round(s);return n==="none"||Math.abs(s-i)<=qn?i/e:(n==="end"?Math.floor(s):Math.ceil(s))/e},Yn=(r,e)=>{const n=r.ownerDocument.defaultView;if(n===null)throw new Error(`${e} belongs to a document without a window, so it has no device-pixel ratio`);return n},yn=()=>{},Bn=()=>null,Wn=()=>typeof window>"u"?null:window,cn=new WeakMap,jn=(r,e)=>{let n=r.matchMedia(`(resolution: ${r.devicePixelRatio}dppx)`);const s=()=>{n.removeEventListener("change",s),n=r.matchMedia(`(resolution: ${r.devicePixelRatio}dppx)`),n.addEventListener("change",s);for(const a of[...e])a()};return n.addEventListener("change",s),()=>{n.removeEventListener("change",s)}},Un=(r,e)=>{if(typeof r.matchMedia!="function")return yn;const n=cn.get(r),s=n===void 0?{subscribers:new Set,disarm:null}:n;return n===void 0&&cn.set(r,s),s.subscribers.add(e),s.disarm===null&&(s.disarm=jn(r,s.subscribers)),()=>{s.subscribers.delete(e),s.subscribers.size===0&&s.disarm!==null&&(s.disarm(),s.disarm=null)}},Tn=r=>{const[e,n]=t.useState(Wn),s=t.useCallback(d=>e===null?yn:Un(e,d),[e]),i=t.useCallback(()=>e===null?null:e.devicePixelRatio,[e]),a=t.useSyncExternalStore(s,i,Bn),o=t.useCallback(d=>{if(d===null)return;const f=Yn(d,r);f!==e&&n(f)},[e,r]);return{ratio:a,attach:o}},Qr=["en","ja"],Lr=["scrollUp","scrollDown","scrollLeft","scrollRight","scrollToTop","scrollToBottom","noItems"],En=Object.freeze({en:Object.freeze({scrollUp:"Scroll up",scrollDown:"Scroll down",scrollLeft:"Scroll left",scrollRight:"Scroll right",scrollToTop:"Top",scrollToBottom:"Bottom",noItems:"No items"}),ja:Object.freeze({scrollUp:"上へスクロール",scrollDown:"下へスクロール",scrollLeft:"左へスクロール",scrollRight:"右へスクロール",scrollToTop:"先頭へ",scrollToBottom:"末尾へ",noItems:"項目がありません"})}),Gn=r=>Qr.includes(r),Yr=r=>typeof r=="string"?JSON.stringify(r):r===null?"null":typeof r,In=r=>{if(r===void 0)return"en";if(Gn(r))return r;const e=Qr.map(n=>JSON.stringify(n)).join(", ");throw new RangeError(`[virtualscroll] locale must be one of ${e}; got ${Yr(r)}`)},Kn=r=>Lr.includes(r),Jr=(r,e)=>{const n=En[In(r)];if(e===void 0)return n;if(e===null||typeof e!="object")throw new RangeError(`[virtualscroll] labels must be an object; got ${Yr(e)}`);const s=Object.getPrototypeOf(e);if(s!==Object.prototype&&s!==null)throw new RangeError(`[virtualscroll] labels must be a plain object (prototype Object.prototype or null); got ${Array.isArray(e)?"an array":"an object with a non-plain prototype"}`);const i=new Set(Object.keys(e));for(const o of i)if(!Kn(o))throw new RangeError(`[virtualscroll] labels.${o} is not a known label key; expected one of ${Lr.join(", ")}`);const a={...n};for(const o of Lr){const d=i.has(o)?e[o]:void 0;if(d!==void 0){if(typeof d!="string"||d.trim()==="")throw new RangeError(`[virtualscroll] labels.${o} must be a non-blank string; got ${Yr(d)}`);a[o]=d}}return Object.freeze(a)};class k{level;prefix;impl;constructor(e=2,n="[virtualscroll]",s=console){this.level=e,this.prefix=n,this.impl=s}static instance=new k(2,"[virtualscroll]");static setLevel(e){k.instance.setLevel(e)}setLevel(e){this.level=e}static setImplementation(e){k.instance.setImplementation(e)}setImplementation(e){this.impl=e}static setPrefix(e){k.instance.setPrefix(e)}setPrefix(e){this.prefix=e}static isEnabled(e){return k.instance.isEnabled(e)}isEnabled(e){return this.level<=e}static resolveLazy(e){if(typeof e!="function")return e;try{return e()}catch{return e}}formatMessage(e){return typeof e=="string"?[`${this.prefix} ${e}`]:[this.prefix,e]}static debug(e,...n){k.instance.debug(e,...n)}debug(e,...n){this.level<=0&&this.impl.debug(...this.formatMessage(k.resolveLazy(e)),...n.map(k.resolveLazy))}static info(e,...n){k.instance.info(e,...n)}info(e,...n){this.level<=1&&this.impl.info(...this.formatMessage(k.resolveLazy(e)),...n.map(k.resolveLazy))}static warn(e,...n){k.instance.warn(e,...n)}warn(e,...n){this.level<=2&&this.impl.warn(...this.formatMessage(k.resolveLazy(e)),...n.map(k.resolveLazy))}static error(e,...n){k.instance.error(e,...n)}error(e,...n){this.level<=3&&this.impl.error(...this.formatMessage(k.resolveLazy(e)),...n.map(k.resolveLazy))}}const Cn=r=>typeof r.setPointerCapture=="function"&&typeof r.releasePointerCapture=="function"&&typeof r.hasPointerCapture=="function",Pn=(r,e)=>Cn(r)&&r.hasPointerCapture(e),yr=(r,e)=>{if(!Cn(r))return"unsupported";try{return r.setPointerCapture(e),"captured"}catch(n){return(typeof n=="object"&&n!==null&&"name"in n?n.name:void 0)==="NotFoundError"?"inactive-pointer":"rejected"}},tr=(r,e)=>{Pn(r,e)&&r.releasePointerCapture(e)},un={active:!1,offsetX:0,offsetY:0,distance:0,direction:0,pointerId:null},Ar=6,Zn=8,Qn=({dragState:r,normalizedDistance:e})=>{const n=1+e*.18,s=.16+e*.24,i=.38+e*.28,a=r.active?"80ms ease-out":"220ms ease";return N.jsxs(N.Fragment,{children:[N.jsx("div",{className:"aqvs-tap-scroll-circle-visual-outer",style:{background:"linear-gradient(140deg, rgba(255,255,255,0.62), rgba(72,72,72,0.48))",boxShadow:`0 0 0 1px rgba(255,255,255,0.28), 0 10px 22px rgba(0,0,0,${s})`,transform:`scale(${n})`,transition:`${a}, ${r.active?"80ms":"260ms"} box-shadow ease`}}),N.jsx("div",{className:"aqvs-tap-scroll-circle-inner",style:{background:"linear-gradient(140deg, rgba(255,255,255,0.72), rgba(28,28,28,0.58))",boxShadow:"inset 0 4px 10px rgba(0,0,0,0.24), inset 0 0 2px rgba(255,255,255,0.55)",opacity:i,transition:r.active?"120ms opacity ease-out":"220ms opacity ease"}})]})},en=t.memo(t.forwardRef(({onDragChange:r,className:e,maxVisualDistance:n=160,size:s=40,style:i,opacity:a=1,renderVisual:o,axis:d="y"},f)=>{const[g,x]=t.useState(un),w=t.useRef(null),y=t.useRef(null),v=t.useRef({x:0,y:0}),A=t.useRef(null),F=t.useRef(0),H=t.useCallback(E=>{x(E),r(E)},[r]),le=t.useCallback((E,Y,ae=!1)=>{const{x:He,y:oe}=v.current,Ve=E-He,ft=Y-oe;let ce,Be;if(d==="xy")ce=Math.hypot(Ve,ft),Be=ce<Ar?0:1;else{const Le=d==="x"?Ve:ft;ce=Math.abs(Le),Be=ce<Ar?0:Le<0?-1:1}const Re=F.current;let Qe=Be;const nt=Ar+Zn;Be===0?Re!==0&&ce<nt?Qe=Re:(Qe=0,ae||(F.current=0)):Be!==Re&&Re!==0&&ce<nt?Qe=Re:F.current=Be,H({active:ae||ce>=Ar,offsetX:Ve,offsetY:ft,distance:ce,direction:Qe,pointerId:w.current})},[H,d]),Ae=t.useCallback(E=>{if(E===null)return;const Y=A.current;Y!==null&&tr(Y,E)},[]),z=t.useCallback((E=!1)=>{E&&Ae(w.current),w.current=null,y.current=null,F.current=0,H(un)},[H,Ae]),U=t.useCallback(E=>{if(w.current!==null&&w.current!==E.pointerId){y.current={pointerId:E.pointerId,clientX:E.clientX,clientY:E.clientY},E.preventDefault(),E.stopPropagation();return}E.preventDefault(),E.stopPropagation();const Y=A.current??E.currentTarget,{left:ae,top:He,width:oe,height:Ve}=Y.getBoundingClientRect();v.current={x:ae+oe/2,y:He+Ve/2},w.current=E.pointerId,yr(Y,E.pointerId),le(E.clientX,E.clientY,!0)},[le]),Q=t.useCallback(E=>{if(w.current!==E.pointerId){y.current!==null&&y.current.pointerId===E.pointerId&&(y.current={pointerId:E.pointerId,clientX:E.clientX,clientY:E.clientY});return}E.preventDefault(),le(E.clientX,E.clientY)},[le]),D=t.useCallback(E=>{if(w.current!==E.pointerId){y.current!==null&&y.current.pointerId===E.pointerId&&(y.current=null);return}E.preventDefault(),E.stopPropagation();const Y=y.current;if(y.current=null,Y!==null){Ae(E.pointerId);const ae=A.current;if(ae===null||yr(ae,Y.pointerId)!=="inactive-pointer"){w.current=Y.pointerId,le(Y.clientX,Y.clientY,!0);return}}z(!0)},[z,Ae,le]),V=t.useCallback(E=>{E.target===E.currentTarget&&w.current===E.pointerId&&z(!1)},[z]);t.useImperativeHandle(f,()=>({reset:()=>{z(!0)},getElement:()=>A.current}),[z]);const M=Math.min(Math.max(a,0),1),re=s/64,j=Math.min(g.distance,n)/n,q=g.direction*j*10*re;let J;if(d==="xy"){const E=g.distance,Y=E===0?0:q*g.offsetX/E,ae=E===0?0:q*g.offsetY/E;J=`translate(${Y}px, ${ae}px)`}else d==="x"?J=`translateX(${q}px)`:J=`translateY(${q}px)`;const Z=o??Qn,ge={dragState:g,normalizedDistance:j,sizeScale:re,size:s,opacity:M},Ze={...i,width:s,height:s,transform:J};return Ze.opacity=M,N.jsx("div",{ref:A,"data-testid":"virtual-scroll-tap-circle",className:Ct.twMerge("aqvs-tap-scroll-circle",e),style:Ze,tabIndex:-1,onPointerDown:U,onPointerMove:Q,onPointerUp:D,onPointerCancel:D,onLostPointerCapture:V,role:"presentation",children:Z(ge)})}));en.displayName="TapScrollCircle";const ee=(r,e,n)=>Math.max(e,Math.min(n,r)),Br=(r,e)=>{const n=e==="x",s=r.getBoundingClientRect(),i=n?s.width:s.height,a=x=>{const w=Number.parseFloat(x);return Number.isFinite(w)?w:0},o=window.getComputedStyle(r),d=a(n?o.width:o.height),f=d>0?d+a(n?o.paddingLeft:o.paddingTop)+a(n?o.paddingRight:o.paddingBottom)+a(n?o.borderLeftWidth:o.borderTopWidth)+a(n?o.borderRightWidth:o.borderBottomWidth):0,g=f>0?f:n?r.offsetWidth:r.offsetHeight;return g<=0||i<=0?1:i/g},Tr="virtualscroll:tap-scroll-cancel",dn=20,Jn=250,es=60,ts=20,rs=20,tn={maxDistance:240,minSpeedMultiplier:.2},ns=tn.maxDistance,fn={active:!1,offsetX:0,offsetY:0,distance:0,direction:0,pointerId:null},Fr=2.2,ss=8,is=120,kn=1/10,Ht={enabled:!0,size:40,offsetX:-80,offsetY:0,className:void 0,maxVisualDistance:ns,minSpeedMultiplier:tn.minSpeedMultiplier,opacity:.9,renderVisual:void 0,maxSpeedCurve:void 0},as=r=>r?{mainSizeKey:"width",crossSizeKey:"height",thumbTranslateFunction:"translateX",selectDelta:(e,n)=>e,getPointerCoordinate:({clientX:e})=>e,arrowIcons:["◀","▶"],directionClass:"aqvs-scrollbar-horizontal",orientation:"horizontal"}:{mainSizeKey:"height",crossSizeKey:"width",thumbTranslateFunction:"translateY",selectDelta:(e,n)=>n,getPointerCoordinate:({clientY:e})=>e,arrowIcons:["▲","▼"],directionClass:"aqvs-scrollbar-vertical",orientation:"vertical"},Wr=(r,e)=>{const n=r?.maxSpeedMultiplier,s=typeof n=="number"?n:An(e);return{enabled:r?.enabled??Ht.enabled,size:r?.size??Ht.size,offsetX:r?.offsetX??Ht.offsetX,offsetY:r?.offsetY??Ht.offsetY,className:r?.className??Ht.className,maxVisualDistance:r?.maxVisualDistance??Ht.maxVisualDistance,maxSpeedMultiplier:s,minSpeedMultiplier:Math.max(r?.minSpeedMultiplier??Ht.minSpeedMultiplier,0),opacity:ee(r?.opacity??Ht.opacity,0,1),renderVisual:r?.renderVisual??Ht.renderVisual,maxSpeedCurve:r?.maxSpeedCurve??Ht.maxSpeedCurve}},os=({isDragging:r,isThumbHovered:e,enableThumbDrag:n})=>t.useMemo(()=>n?r?"dragging":e?"hover":"idle":"disabled",[n,r,e]),ls=({canUseArrowButtons:r,enableArrowButtons:e,resetTapScroll:n,scrollByStep:s})=>{const i=t.useRef(null),a=t.useRef(null),o=t.useRef(null),d=t.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null),a.current!==null&&(window.clearTimeout(a.current),a.current=null),o.current!==null&&(window.removeEventListener("pointerup",o.current),window.removeEventListener("pointercancel",o.current),window.removeEventListener("blur",o.current),o.current=null)},[]),f=t.useCallback(()=>{d()},[d]),g=t.useCallback(w=>y=>{if(!r)return;y.cancelable&&y.preventDefault(),y.stopPropagation(),n(),d(),s(w),a.current=window.setTimeout(()=>{i.current=window.setInterval(()=>{s(w)},es)},Jn);const v=()=>d();o.current=v,window.addEventListener("pointerup",v),window.addEventListener("pointercancel",v),window.addEventListener("blur",v)},[r,d,n,s]),x=t.useCallback(w=>y=>{e&&(y.key==="Enter"||y.key===" "||y.key==="Spacebar")&&(y.preventDefault(),s(w))},[e,s]);return t.useEffect(()=>{r||d()},[r,d]),t.useEffect(()=>()=>{d()},[d]),{handleArrowPointerDown:g,handleArrowPointerUp:f,handleArrowKeyDown:x}},cs=700,er=(r,e)=>typeof r=="number"&&Number.isFinite(r)?r:e,Dr=({distance:r,maxDistance:e,viewportSize:n,minSpeedMultiplier:s,maxSpeedMultiplier:i,hasCustomMaxSpeedMultiplier:a,curve:o})=>{const d=Math.max(er(r,0),0),f=er(e,0),g=f>0?Math.min(d,f)/f:1,x=Math.max(er(n,0),0),w=Math.max(er(s,0),0),y=Math.max(er(i,0),0),v=Math.max(x*w,40),A=a?v:1200,F=Math.max(x*y,A),H=o?Math.max(er(o.exponentialScale,y),0):0,le=o?Math.min(F,Math.max(x*H,v)):F,Ae=Math.max(le,v);let z=g**1.1;if(o){const Q=Math.min(Math.max(er(o.exponentialSteepness,0),0),cs);if(Q===0)z=g;else{const D=Math.expm1(Q)||1;z=Math.min(Math.max(Math.expm1(Q*g)/D,0),1)}}const U=Math.min(Math.max(er(o?.easedOffset,0),0),1);return v+(Ae-v)*(U+(1-U)*z)},An=r=>{if(!r||r<=0)return Fr;const e=Math.max(1,r),n=Math.log10(e),s=Fr+n*ss;return ee(s,Fr,is)},rn=({contentSize:r,viewportSize:e,scrollPosition:n,onScroll:s,enableThumbDrag:i=!0,enableTrackClick:a=!0,enableArrowButtons:o=!0,enableArrowButtonTabStops:d=!0,horizontal:f=!1,enableHorizontalTapCircle:g=!1,stretchMainSize:x=!1,scrollBarWidth:w=12,className:y,ariaControls:v,tapScrollCircleOptions:A,itemCount:F,renderThumbOverlay:H,visibleStartIndex:le,visibleEndIndex:Ae,locale:z,labels:U})=>{const[Q,D]=t.useState(!1),[V,M]=t.useState(!1),[re,j]=t.useState(!1),q=t.useRef(null),J=t.useRef({pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1,captureTarget:null}),Z=t.useRef({pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1}),ge=t.useRef(n),Ze=t.useRef(s),E=t.useRef(fn),Y=t.useRef(null),ae=t.useRef(null),He=t.useRef(null),oe=t.useRef(0),Ve=t.useRef(0),ft=t.useMemo(()=>Wr(A,F),[F,A]),ce=t.useMemo(()=>as(f),[f]),Be=t.useMemo(()=>Jr(z,U),[z,U]),Re=f?[Be.scrollLeft,Be.scrollRight]:[Be.scrollUp,Be.scrollDown],{enabled:Qe,size:nt,offsetX:Le,offsetY:st,className:it,maxVisualDistance:$e,maxSpeedMultiplier:fe,minSpeedMultiplier:yt,opacity:ne,renderVisual:Se,maxSpeedCurve:se}=ft,te=t.useRef({viewportSize:e,maxScrollPosition:Math.max(r-e,0),scrollBarVisible:r>e,effectiveTapMaxDistance:Math.max($e,1),tapCircleMaxSpeedMultiplier:fe,tapCircleMinSpeedMultiplier:yt,tapCircleMaxSpeedCurve:se,tapScrollCircleOptions:A,effectiveTrackLength:0,onScroll:s,scrollPosition:n}),{mainSizeKey:We,crossSizeKey:$,thumbTranslateFunction:Xe,selectDelta:P,getPointerCoordinate:Te,arrowIcons:bt,directionClass:L,orientation:xt}=ce,ct=Math.max($e,1),kt=e/r,h=Math.max(e-w*2,0),ie=kt*h,ue=Math.min(Math.max(dn,ie||0),h||dn),G=Math.max(r-e,0),K=Math.max(h-ue,0),xe=G<=0||K<=0?0:ee(n/G*K,0,K),De=xe+ue/2,{ratio:_e,attach:pe}=Tn("[ScrollBar] the thumb"),qe=_e===null?xe:Mn(xe,_e,"none"),Ye=r>e||Q,ut=Ye&&o;t.useLayoutEffect(()=>{te.current={viewportSize:e,maxScrollPosition:G,scrollBarVisible:Ye,effectiveTapMaxDistance:ct,tapCircleMaxSpeedMultiplier:fe,tapCircleMinSpeedMultiplier:yt,tapCircleMaxSpeedCurve:se,tapScrollCircleOptions:A,effectiveTrackLength:K,onScroll:s,scrollPosition:n}}),t.useLayoutEffect(()=>{ge.current=n},[n]),t.useLayoutEffect(()=>{Ze.current=s},[s]),t.useEffect(()=>{i||M(!1)},[i]);const dt=os({isDragging:Q,isThumbHovered:V,enableThumbDrag:i}),je=t.useCallback((u,T)=>{const C=te.current,he=T??ge.current;if(Ze.current){const mt=Ze.current(u,he);if(typeof mt=="number"&&Number.isFinite(mt))return ge.current=mt,mt}const Fe=typeof u=="function"?u(he):u,Ie=Math.max(C.maxScrollPosition,0),wt=C.scrollBarVisible?ee(Fe,0,Ie):0;return ge.current=wt,wt},[]),At=t.useCallback(u=>{const T=te.current,C=ge.current;if(!T.scrollBarVisible||T.maxScrollPosition<=0){const zt=je(0,C),Vt=zt-C;return{nextPosition:zt,actualDelta:Vt,reachedBoundary:!0}}if(u===0)return{nextPosition:C,actualDelta:0,reachedBoundary:!1};const Fe=je(zt=>ee(zt+u,0,T.maxScrollPosition),C),Ie=Fe-C,wt=u<0&&C+u<=0,mt=u>0&&C+u>=T.maxScrollPosition,or=u<0&&(Fe<=0||wt&&Ie===0)||u>0&&(Fe>=T.maxScrollPosition||mt&&Ie===0);return{nextPosition:Fe,actualDelta:Ie,reachedBoundary:or}},[je]),Ee=t.useCallback((u,T)=>{u.current+=T;const C=Math.max(te.current.maxScrollPosition,0);C>0&&(u.current=ee(u.current,-C,C));const he=At(u.current);return u.current-=he.actualDelta,he.reachedBoundary&&(u.current=0),he},[At]),me=t.useCallback(()=>{ae.current!==null&&(window.cancelAnimationFrame(ae.current),ae.current=null),He.current=null,oe.current=0,Ve.current=0},[]),Me=t.useCallback(()=>{E.current={...fn},j(!1),Y.current?.reset(),me()},[me]),ve=t.useCallback(u=>{const T=E.current,C=te.current;if(!T.active||T.direction===0){me();return}if(!C.scrollBarVisible||C.maxScrollPosition<=0){me();return}const he=He.current??u,Fe=Math.max((u-he)/1e3,0),Ie=Math.min(Fe,kn);if(He.current=u,Ie<=0){ae.current=window.requestAnimationFrame(ve);return}const wt=Dr({distance:T.distance,maxDistance:C.effectiveTapMaxDistance,viewportSize:C.viewportSize,minSpeedMultiplier:C.tapCircleMinSpeedMultiplier,maxSpeedMultiplier:C.tapCircleMaxSpeedMultiplier,hasCustomMaxSpeedMultiplier:typeof C.tapScrollCircleOptions?.maxSpeedMultiplier=="number",curve:C.tapCircleMaxSpeedCurve});Ve.current!==T.direction&&(Ve.current=T.direction,oe.current=0);const{reachedBoundary:mt}=Ee(oe,T.direction*wt*Ie);if(mt){me();return}ae.current=window.requestAnimationFrame(ve)},[Ee,me]),S=t.useCallback(()=>{ae.current===null&&(He.current=null,oe.current=0,ae.current=window.requestAnimationFrame(ve))},[ve]);t.useEffect(()=>{const u=E.current;!u.active||u.direction===0||S()},[r,e,S]),t.useEffect(()=>()=>{me()},[me]);const I=t.useCallback(u=>{E.current=u,j(u.active),u.active&&u.direction!==0?S():me()},[S,me]);t.useEffect(()=>{Qe||Me()},[Me,Qe]),t.useEffect(()=>{const u=T=>{const he=T.detail?.paneId;he&&v&&he!==v||Me()};return window.addEventListener(Tr,u),()=>{window.removeEventListener(Tr,u)}},[v,Me]),t.useEffect(()=>{if(!Qe)return;const u=T=>{if(!E.current.active||E.current.pointerId===T.pointerId)return;const C=T.target;if(!(C instanceof Node)){Me();return}Y.current?.getElement()?.contains(C)||Me()};return document.addEventListener("pointerdown",u,!0),()=>{document.removeEventListener("pointerdown",u,!0)}},[Me,Qe]);const tt=u=>{if(!Ye||K<=0||G<=0)return 0;const T=ee(u,0,K);return ee(T/K*G,0,G)},Ue=t.useCallback(u=>{const{scrollBarVisible:T,effectiveTrackLength:C,maxScrollPosition:he}=te.current;if(k.debug("[ScrollBar] calculateScrollPositionFromThumb",()=>({thumbPos:u,trackLen:C,maxScroll:he})),C<=0||he<=0)return null;const Fe=ee(u,0,C);return ee(Fe/C*he,0,he)},[]),Oe=t.useCallback(u=>Br(u,f?"x":"y"),[f]),Pe=t.useCallback(u=>{const T=J.current;if(T.pointerId!==u.pointerId)return;const C=u.clientX-T.startClientX,he=u.clientY-T.startClientY,Fe=P(C,he)/(T.scale||1);k.debug("[ScrollBar] handleThumbPointerMove",()=>({delta:Fe,startThumbPosition:T.startThumbPosition,clientY:u.clientY,startClientY:T.startClientY,metrics:te.current}));const Ie=Ue(T.startThumbPosition+Fe);Ie!==null&&je(Ie),u.cancelable&&u.preventDefault()},[P,Ue,je]),we=t.useCallback(u=>{const T=J.current;if(T.pointerId===u.pointerId)if(document.removeEventListener("pointermove",Pe),document.removeEventListener("pointerup",we),document.removeEventListener("pointercancel",we),T.captureTarget!==null&&tr(T.captureTarget,u.pointerId),J.current={pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1,captureTarget:null},D(!1),q.current){const C=q.current.getBoundingClientRect();u.clientX>=C.left&&u.clientX<=C.right&&u.clientY>=C.top&&u.clientY<=C.bottom||M(!1)}else M(!1)},[Pe]);t.useEffect(()=>()=>{document.removeEventListener("pointermove",Pe),document.removeEventListener("pointerup",we),document.removeEventListener("pointercancel",we)},[Pe,we]);const Ce=t.useRef(0),Tt=t.useRef(0),Xt=t.useCallback(u=>{const T=Math.max(Math.round(te.current.viewportSize/rs),ts);Tt.current!==u&&(Tt.current=u,Ce.current=0),Ee(Ce,u*T)},[Ee]),{handleArrowPointerDown:Ot,handleArrowPointerUp:ke,handleArrowKeyDown:Et}=ls({canUseArrowButtons:ut,enableArrowButtons:o,resetTapScroll:Me,scrollByStep:Xt}),ar=u=>{if(!Ye)return;if(!i){u.preventDefault(),u.stopPropagation();return}if(u.pointerType==="mouse"&&u.button!==0||u.ctrlKey)return;Me();const T=u.currentTarget,C=Oe(T),he=yr(T,u.pointerId)==="captured"?T:null;J.current={pointerId:u.pointerId,startThumbPosition:xe,startClientX:u.clientX,startClientY:u.clientY,scale:C,captureTarget:he},document.addEventListener("pointermove",Pe),document.addEventListener("pointerup",we),document.addEventListener("pointercancel",we),D(!0),M(!0),u.preventDefault(),u.stopPropagation()},rr=u=>{if(!Ye)return;if(!a){u.preventDefault(),u.stopPropagation();return}if(u.pointerType==="mouse"&&u.button!==0||u.ctrlKey)return;const T=u.currentTarget,C=T.getBoundingClientRect(),he=Te(u),Fe=Oe(T),Ie=(he-(f?C.left:C.top))/Fe;Me();const wt=Ie-ue/2,mt=tt(wt);je(mt),yr(T,u.pointerId),Z.current={pointerId:u.pointerId,startThumbPosition:wt,startClientX:u.clientX,startClientY:u.clientY,scale:Fe},u.preventDefault(),u.stopPropagation()},at=()=>{Z.current={pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1}},Nt=u=>{const T=Z.current;if(T.pointerId!==u.pointerId)return;if(u.pointerType==="mouse"&&u.buttons===0){at();return}const C=u.clientX-T.startClientX,he=u.clientY-T.startClientY,Fe=P(C,he)/(T.scale||1),Ie=tt(T.startThumbPosition+Fe);je(Ie),u.cancelable&&u.preventDefault()},qt=u=>{Z.current.pointerId===u.pointerId&&(tr(u.currentTarget,u.pointerId),at(),u.preventDefault(),u.stopPropagation())},Yt=u=>{Z.current.pointerId===u.pointerId&&(tr(u.currentTarget,u.pointerId),at())},Bt=u=>{u.target===u.currentTarget&&Z.current.pointerId===u.pointerId&&at()},Kt=t.useMemo(()=>ee((re?1:.8)*ne,0,1),[re,ne]),Ft=t.useMemo(()=>{const T=`calc(50% - ${nt/2}px + ${st}px)`;return{left:Le,top:T}},[Le,st,nt]),Wt=(u,T,C,he)=>N.jsx("button",{type:"button",tabIndex:d?0:-1,className:"aqvs-scrollbar-arrow-button",style:{[We]:w,[$]:w},"aria-label":T,onPointerDown:Ot(u),onPointerUp:ke,onPointerLeave:ke,onPointerCancel:ke,onKeyDown:Et(u),"aria-disabled":!o,disabled:!ut,children:N.jsx("span",{"aria-hidden":"true",children:C})},he),jt=H&&Ye?{orientation:xt,scrollPosition:n,maxScrollPosition:G,contentSize:r,viewportSize:e,thumbSize:ue,thumbPosition:xe,thumbCenter:De,trackSize:h,isDragging:Q,isTapScrollActive:re,visibleStartIndex:le,visibleEndIndex:Ae}:null;return N.jsxs("div",{className:Ct.twMerge("aqvs-scrollbar",L,y),style:{...x&&!f?{}:{[We]:e},[$]:w},"data-visible":Ye?"true":"false",role:"scrollbar",tabIndex:-1,"aria-controls":v,"aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":G,"aria-orientation":f?"horizontal":"vertical",children:[(!f||g)&&Ye&&Qe&&N.jsx(en,{axis:f?"x":"y",ref:Y,className:Ct.twMerge("aqvs-scrollbar-tap-circle-wrapper",it),size:nt,maxVisualDistance:ct,style:Ft,opacity:Kt,renderVisual:Se,onDragChange:I},"tap-circle"),Wt(-1,Re[0],bt[0],"arrow-start"),N.jsxs("div",{className:"aqvs-scrollbar-track",style:{borderRadius:w/2},onPointerDown:rr,onPointerMove:Nt,onPointerUp:qt,onPointerCancel:Yt,onLostPointerCapture:Bt,"aria-disabled":!a,children:[jt&&N.jsx("div",{className:"aqvs-scrollbar-overlay","aria-hidden":!0,children:H?.(jt)},"overlay"),N.jsx("div",{ref:pe,className:"aqvs-scrollbar-thumb-wrapper",style:{[We]:ue,top:0,left:0,...f?{bottom:0}:{right:0},transform:`${Xe}(${qe}px)`},"data-visible":Ye||Q?"true":"false",onPointerDown:ar,role:"slider","aria-orientation":f?"horizontal":"vertical","aria-valuenow":n,"aria-valuemin":0,"aria-valuemax":G,"aria-disabled":!i,tabIndex:-1,children:N.jsx("div",{ref:q,className:Ct.twMerge("aqvs-scrollbar-thumb",f?"aqvs-scrollbar-thumb-horizontal":"aqvs-scrollbar-thumb-vertical"),"data-testid":"aqvs-scrollbar-thumb","data-thumb-state":dt,style:{borderRadius:w-1,cursor:i?"pointer":"default"},onMouseEnter:()=>{i&&M(!0)},onMouseLeave:()=>{i&&M(!1)}},"thumb")},"thumb-wrapper")]},"track"),Wt(1,Re[1],bt[1],"arrow-end")]})},Nn=({offsetX:r,offsetY:e,maxDistance:n,x:s,y:i})=>{const a=Number.isFinite(r)?r:0,o=Number.isFinite(e)?e:0,d=Math.hypot(a,o);if(d===0)return{x:0,y:0};const f=Dr({distance:d,maxDistance:n,viewportSize:s.viewportSize,minSpeedMultiplier:s.minSpeedMultiplier,maxSpeedMultiplier:s.maxSpeedMultiplier,hasCustomMaxSpeedMultiplier:s.hasCustomMaxSpeedMultiplier,curve:s.curve}),g=Dr({distance:d,maxDistance:n,viewportSize:i.viewportSize,minSpeedMultiplier:i.minSpeedMultiplier,maxSpeedMultiplier:i.maxSpeedMultiplier,hasCustomMaxSpeedMultiplier:i.hasCustomMaxSpeedMultiplier,curve:i.curve});return{x:f*a/d,y:g*o/d}},us=r=>{const{quantum:e,resetOnDirectionChange:n=!0}=r;if(!(Number.isFinite(e)&&e>0))throw new TypeError(`[createResidualQuantizer] quantum must be a finite positive number, received ${e}`);let s=0;return{push:i=>{if(!Number.isFinite(i)||Math.abs(i)>Number.MAX_SAFE_INTEGER)return 0;n&&s!==0&&i!==0&&Math.sign(i)!==Math.sign(s)&&(s=0),s+=i;const a=Math.trunc(s/e)*e+0;return s-=a,a},peekResidue:()=>s,reset:()=>{s=0}}},ds=16,mn=(r,e,n)=>e===1?r*ds:e===2?r*n:r,fs=(r,e)=>{const n=r.shiftKey&&r.deltaX===0,s=n?r.deltaY:r.deltaX,i=n?0:r.deltaY,a=s!==0&&Math.abs(s)>=Math.abs(i);return{isZoomGesture:r.ctrlKey,isHorizontalDominant:a,horizontalDelta:mn(s,r.deltaMode,e),verticalDelta:mn(i,r.deltaMode,e)}},zn=new WeakSet,hn=r=>{zn.add(r)},ms=r=>zn.has(r),hs=["mouse","pen","touch"],Hr=(r,e)=>!(r==="mouse"||r==="pen"||r==="touch")||e.includes(r),ps=r=>r==="mouse"||r==="pen",Rr={maxVelocity:6,minVelocity:.02,deceleration:.0025,velocitySampleWindow:90,startVelocityThreshold:.04},Nr=(r,e,n)=>{for(const[s,i,a]of e)n==="add"?r.addEventListener(s,i,a):r.removeEventListener(s,i,a)},Vn=t.forwardRef(({children:r,contentSize:e,viewportSize:n,onViewportSizeChange:s,scrollBarWidth:i=12,enableThumbDrag:a=!0,enableTrackClick:o=!0,enableArrowButtons:d=!0,enableArrowButtonTabStops:f=!0,enablePointerDrag:g=!0,pointerDragInputs:x=hs,onScroll:w,className:y,testId:v,style:A,background:F,tapScrollCircleOptions:H,inertiaOptions:le,itemCount:Ae,renderThumbOverlay:z,wheelSpeedMultiplier:U=1,overscrollBehavior:Q="auto",onWheelHorizontal:D,onPanHorizontal:V,contentInsets:M,visibleStartIndex:re,visibleEndIndex:j,renderOverlay:q,initialScrollPosition:J=0,contentProps:Z,locale:ge,labels:Ze},E)=>{const Y=t.useRef(Number.isFinite(J)?Math.max(0,J):0),ae=t.useRef(null),He=t.useRef(null),oe=n===void 0,[Ve,ft]=t.useState(0),ce=n??Ve,Be=t.useRef(null);t.useLayoutEffect(()=>{if(!oe)return;const h=He.current;if(!h)return;const ie=()=>{const G=h.offsetHeight;if(G>0){ft(K=>K===G?K:G);return}h.offsetParent!==null&&e>0&&Be.current!=="zero"&&(Be.current="zero",k.warn("[ScrollPane] The self-measured viewport is 0px. Give the scroll pane's host element a definite height (e.g. h-full, flex-1 + min-h-0, an explicit px height), or pass viewportSize explicitly."))};if(ie(),typeof ResizeObserver!="function")return;const ue=new ResizeObserver(ie);return ue.observe(h),()=>{ue.disconnect()}},[e,oe]),t.useLayoutEffect(()=>{oe&&s?.(Ve)},[oe,Ve,s]),t.useLayoutEffect(()=>{if(oe)return;const h=ae.current;if(!h)return;const ie=()=>{const G=h.clientHeight;if(G<=0||Math.abs(G-ce)<=1)return;const K=`${ce}/${G}`;Be.current!==K&&(Be.current=K,k.warn(`[ScrollPane] viewportSize=${ce} but the host band is ${G}px. The clip window, max scroll position, thumb mapping, rendered row count and scrollability all derive from viewportSize, so they are now wrong. Omit viewportSize to let the pane measure itself.`))};if(ie(),typeof ResizeObserver!="function")return;const ue=new ResizeObserver(ie);return ue.observe(h),()=>{ue.disconnect()}},[oe,ce]);const Re=t.useRef(D);t.useEffect(()=>{Re.current=D},[D]);const Qe=t.useRef(V);t.useEffect(()=>{Qe.current=V},[V]);const nt=t.useRef({frame:null,velocity:0,lastTimestamp:null,generation:0}),Le=t.useMemo(()=>({maxVelocity:le?.maxVelocity??Rr.maxVelocity,minVelocity:le?.minVelocity??Rr.minVelocity,deceleration:le?.deceleration??Rr.deceleration,velocitySampleWindow:le?.velocitySampleWindow??Rr.velocitySampleWindow,startVelocityThreshold:le?.startVelocityThreshold??Rr.startVelocityThreshold}),[le]),st=t.useMemo(()=>({top:Math.max(0,M?.top??0),bottom:Math.max(0,M?.bottom??0)}),[M]);k.debug("[ScrollPane] ScrollPane rendered",()=>({contentSize:e,viewportSize:ce,scrollBarWidth:i,className:y,style:A,tapScrollCircleOptions:H,inertiaOptions:le,enablePointerDrag:g,contentInsets:st}));const it=t.useRef({contentSize:e,viewportSize:ce}),$e=t.useMemo(()=>e>ce,[e,ce]),fe=t.useCallback((h,ie)=>{let ue=ie??it.current;ie&&!(Number.isFinite(ie.contentSize)&&Number.isFinite(ie.viewportSize))&&(k.warn("[ScrollPane] scrollTo received non-finite dimsOverride; falling back to the committed dims",{dimsOverride:ie}),ue=it.current);const{contentSize:G,viewportSize:K}=ue,xe=G>K,De=Y.current;if(k.debug("[ScrollPane] scrollTo called",()=>({newPosition:h,contentSize:G,viewportSize:K,currentIsScrollable:xe,prevPosition:De})),!xe)return Y.current!==0&&(Y.current=0,w?.(0,De)),Y.current;const _e=typeof h=="function"?h(Y.current):h;if(!Number.isFinite(_e))return k.warn("[ScrollPane] scrollTo received a non-finite position; keeping the current position",{nextPosition:_e}),Y.current;const pe=Math.max(G-K,0),qe=ee(_e,0,pe);return Y.current!==qe&&(Y.current=qe,w?.(qe,De)),Y.current},[w]),yt=t.useRef(fe);t.useEffect(()=>{yt.current=fe},[fe]);const ne=t.useCallback(()=>{const h=nt.current;h.generation+=1,h.frame!==null&&cancelAnimationFrame(h.frame),h.frame=null,h.velocity=0,h.lastTimestamp=null},[]),Se=t.useRef(ne);t.useEffect(()=>{Se.current=ne},[ne]),t.useEffect(()=>()=>{Se.current()},[]);const se=t.useCallback(h=>{if(!$e)return;const{maxVelocity:ie,minVelocity:ue,deceleration:G,startVelocityThreshold:K}=Le,xe=ee(h,-ie,ie);if(Math.abs(xe)<K)return;ne(),nt.current.velocity=xe,nt.current.lastTimestamp=null;const De=nt.current.generation,_e=pe=>{const qe=nt.current;if(qe.generation!==De)return;if(qe.lastTimestamp===null){qe.lastTimestamp=pe,qe.frame=requestAnimationFrame(_e);return}const Ye=pe-qe.lastTimestamp;if(qe.lastTimestamp=pe,Ye<=0){qe.frame=requestAnimationFrame(_e);return}const ut=qe.velocity;let dt=ut;const je=G*Ye;ut>0?dt=Math.max(0,ut-je):ut<0&&(dt=Math.min(0,ut+je));const Ee=(ut+dt)/2*Ye,me=Y.current;if(Ee!==0&&yt.current(Ue=>Ue+Ee),nt.current.generation!==De)return;const Me=Y.current,{contentSize:ve,viewportSize:S}=it.current,I=Math.max(ve-S,0);qe.velocity=dt;const tt=Me===me||Me<=0&&dt<=0||Me>=I&&dt>=0;if(Math.abs(dt)<ue||tt){ne();return}qe.frame=requestAnimationFrame(_e)};nt.current.frame=requestAnimationFrame(_e)},[$e,Le,ne]),te=t.useRef(se);t.useEffect(()=>{te.current=se},[se]),t.useLayoutEffect(()=>{it.current={contentSize:e,viewportSize:ce}},[e,ce]),t.useLayoutEffect(()=>{const h=He.current;if(!h)return;const ie=()=>{h.scrollTop!==0&&(k.debug("[ScrollPane] Native scroll detected, resetting to 0",()=>({scrollTop:h.scrollTop})),h.scrollTop=0),h.scrollLeft!==0&&(h.scrollLeft=0)};return h.addEventListener("scroll",ie),()=>h.removeEventListener("scroll",ie)},[]),t.useLayoutEffect(()=>{if($e){k.debug("[ScrollPane] Adjusting scroll position due to content or viewport size change",()=>({contentSize:e,viewportSize:ce,scrollPosition:Y.current}));const h=ee(e-ce,0,e);Y.current>h&&fe(h)}else fe(0)},[$e,fe,e,ce]);const We=t.useRef({isScrollable:$e,viewportSize:ce,wheelSpeedMultiplier:U,overscrollBehavior:Q});t.useLayoutEffect(()=>{We.current={isScrollable:$e,viewportSize:ce,wheelSpeedMultiplier:U,overscrollBehavior:Q}},[$e,ce,U,Q]);const $=t.useCallback(h=>{if(ms(h))return!1;const{isScrollable:ie,viewportSize:ue,wheelSpeedMultiplier:G,overscrollBehavior:K}=We.current,xe=fs(h,ue);if(xe.isZoomGesture)return!1;if(xe.isHorizontalDominant)return Re.current?(hn(h),h.preventDefault(),ne(),Re.current(xe.horizontalDelta),!0):!1;if(!ie||xe.verticalDelta===0)return!1;let De=xe.verticalDelta;if(G!==1&&(De*=G),K!=="contain"){const _e=Y.current,pe=Math.max(it.current.contentSize-ue,0);if(De>0&&_e>=pe||De<0&&_e<=0)return!1}return hn(h),h.preventDefault(),ne(),k.debug("[ScrollPane] wheel event",()=>({deltaY:De,scrollPosition:Y.current,wheelSpeedMultiplier:G,deltaMode:h.deltaMode,scrollTop:He.current?.scrollTop})),fe(_e=>_e+De),!0},[fe,ne]);t.useEffect(()=>{const h=G=>{$(G)},ie=()=>{ne()},ue=ae.current;return ue&&(ue.addEventListener("wheel",h,{passive:!1}),ue.addEventListener("pointerdown",ie,{capture:!0,passive:!0})),()=>{ue&&(ue.removeEventListener("wheel",h),ue.removeEventListener("pointerdown",ie,{capture:!0}))}},[$,ne]),t.useImperativeHandle(E,()=>({scrollTo:(h,ie)=>(ne(),fe(h,ie)),getScrollPosition:()=>Y.current,getContentSize:()=>e,getViewportSize:()=>ce,applyWheel:$}),[fe,e,ce,ne,$]);const Xe=t.useId(),P=Z?.id??Xe,Te=t.useRef({pointerType:"",pointerId:null,startClientY:0,startClientX:0,lastPanClientX:0,startScroll:0,isDragging:!1,shouldCancelNextClick:!1,clickResetTimer:null,velocitySamples:[],scale:1,scaleX:1}),bt=t.useRef(g),L=t.useRef(x);t.useEffect(()=>{bt.current=g},[g]),t.useEffect(()=>{L.current=x},[x]);const xt=t.useRef($e);t.useEffect(()=>{xt.current=$e},[$e]);const ct=t.useRef(Le);t.useEffect(()=>{ct.current=Le},[Le]),t.useEffect(()=>{const h=Te.current;if(g&&$e&&(h.pointerId===null||Hr(h.pointerType,x))||h.pointerId===null)return;const ie=He.current;h.clickResetTimer!==null&&(window.clearTimeout(h.clickResetTimer),h.clickResetTimer=null);const ue=h.isDragging&&h.shouldCancelNextClick,G=h.pointerId;h.pointerId=null,h.pointerType="",h.startClientY=0,h.startScroll=0,h.isDragging=!1,h.shouldCancelNextClick=ue,h.velocitySamples=[],h.scale=1,ie!==null&&tr(ie,G)},[g,x,$e]),t.useEffect(()=>{const h=He.current;if(!h)return;const ie=6,ue=()=>typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),G=()=>{const S=Te.current;S.pointerId=null,S.pointerType="",S.startClientY=0,S.startScroll=0,S.isDragging=!1,S.velocitySamples=[],S.scale=1},K=()=>{const S=Te.current;S.clickResetTimer!==null&&(window.clearTimeout(S.clickResetTimer),S.clickResetTimer=null)},xe=S=>{const I=Te.current,tt=ue();I.velocitySamples.push({clientY:S,time:tt});const Ue=ct.current.velocitySampleWindow;I.velocitySamples=I.velocitySamples.filter(Oe=>tt-Oe.time<=Ue)},De=S=>S instanceof HTMLElement&&S.closest("[data-scrollpane-ignore-drag='true']")!==null,_e=S=>{const I=Te.current;I.shouldCancelNextClick&&(S.preventDefault(),S.stopPropagation(),I.shouldCancelNextClick=!1)},pe=S=>{const I=Te.current;I.isDragging||(I.isDragging=!0,I.shouldCancelNextClick=!0,Pn(h,S.pointerId)||yr(h,S.pointerId),xe(S.clientY))},qe=S=>S.isTrusted||S.target===h,Ye=S=>{const I=Te.current;tr(h,S),I.shouldCancelNextClick=!1,K(),G()},ut=S=>{const I=Te.current;if(I.pointerId!==S.pointerId)return;if(S.buttons===0&&ps(S.pointerType)){Ye(S.pointerId);return}if(!(bt.current&&xt.current)||!Hr(S.pointerType,L.current))return;if(!I.isDragging){const Pe=Math.abs(S.clientY-I.startClientY),we=Qe.current?Math.abs(S.clientX-I.startClientX):0;if(Math.max(Pe,we)<ie||(pe(S),!I.isDragging))return}xe(S.clientY);const tt=(S.clientY-I.startClientY)/(I.scale||1),Ue=I.startScroll-tt;yt.current(Ue);const Oe=Qe.current;if(Oe){const Pe=S.clientX-I.lastPanClientX;I.lastPanClientX=S.clientX,Pe!==0&&Oe(-Pe/(I.scaleX||1))}S.cancelable&&S.preventDefault()},dt=()=>{const S=Te.current;return S.pointerId!==null||!S.shouldCancelNextClick?!1:(K(),S.clickResetTimer=window.setTimeout(()=>{const I=Te.current;I.shouldCancelNextClick=!1,I.clickResetTimer=null},0),!0)},je=S=>{const I=Te.current;if(I.pointerId!==S.pointerId){dt();return}I.isDragging&&I.shouldCancelNextClick&&S.cancelable&&(S.preventDefault(),S.stopPropagation()),I.isDragging&&xe(S.clientY);let tt=0;if(I.isDragging&&I.velocitySamples.length>=2){const Oe=I.velocitySamples,Pe=ct.current.velocitySampleWindow,we=Oe[Oe.length-1],Ce=Oe.find(Tt=>we.time-Tt.time<=Pe)??Oe[0];if(we&&Ce&&we.time!==Ce.time){const Tt=we.clientY-Ce.clientY,Xt=we.time-Ce.time;tt=-(Tt/Xt)/(I.scale||1)}}K(),I.shouldCancelNextClick&&(I.clickResetTimer=window.setTimeout(()=>{const Oe=Te.current;Oe.shouldCancelNextClick=!1,Oe.clickResetTimer=null},0));const Ue=ct.current.startVelocityThreshold;G(),tr(h,S.pointerId),Math.abs(tt)>=Ue&&te.current?.(tt)},At=S=>{if(Te.current.pointerId!==null){if(!S.isPrimary||S.pointerType!==Te.current.pointerType)return;Ye(Te.current.pointerId)}if(Te.current.shouldCancelNextClick&&(K(),Te.current.shouldCancelNextClick=!1),!(bt.current&&xt.current)||!Hr(S.pointerType,L.current)||S.button!==0&&S.pointerType==="mouse"||S.ctrlKey||S.metaKey||S.altKey||De(S.target))return;window.dispatchEvent(new CustomEvent(Tr,{detail:{paneId:Xe}})),Se.current?.();const I=Te.current;K(),I.pointerId=S.pointerId,I.pointerType=S.pointerType,I.startClientY=S.clientY,I.startClientX=S.clientX,I.lastPanClientX=S.clientX,I.startScroll=Y.current,I.scale=Br(h,"y"),I.scaleX=Qe.current?Br(h,"x"):1,I.isDragging=!1,I.shouldCancelNextClick=!1,I.velocitySamples=[]},Ee=S=>{if(Te.current.pointerId!==S.pointerId){dt();return}qe(S)&&Ye(S.pointerId)},Me=[["click",_e,!0],["pointerdown",At,{passive:!1}],["lostpointercapture",S=>{S.target!==h||Te.current.pointerId!==S.pointerId||Ye(S.pointerId)},void 0]],ve=[["pointermove",ut,{passive:!1}],["pointerup",je,void 0],["pointercancel",Ee,void 0]];return Nr(h,Me,"add"),Nr(window,ve,"add"),()=>{Nr(h,Me,"remove"),Nr(window,ve,"remove");const S=Te.current;S.pointerId!==null&&tr(h,S.pointerId),K(),G()}},[Xe]);const kt=t.useCallback(h=>(ne(),fe(h)),[fe,ne]);return N.jsxs("div",{ref:ae,"data-testid":v,"data-self-measured":oe?"true":void 0,className:Ct.twMerge("aqvs-scroll-pane",y),style:A,children:[N.jsxs("div",{ref:He,className:Ct.twMerge("aqvs-scroll-pane-content"),"data-testid":"aqvs-scroll-pane-content",style:{height:oe?void 0:ce,paddingTop:st.top,paddingBottom:st.bottom,...g&&$e&&x.some(h=>h==="touch"||h==="pen")?{touchAction:"none"}:{}},...Z,id:P,children:[F,r(Y.current)]}),N.jsx(rn,{contentSize:e,viewportSize:ce,stretchMainSize:oe,scrollPosition:Y.current,onScroll:kt,enableThumbDrag:a,enableTrackClick:o,enableArrowButtons:d,enableArrowButtonTabStops:f,scrollBarWidth:i,ariaControls:P,tapScrollCircleOptions:H,itemCount:Ae,renderThumbOverlay:z,visibleStartIndex:re,visibleEndIndex:j,locale:ge,labels:Ze},"scrollbar"),q?.()]})}),pn=(r,e,n)=>Math.min(Math.max(r,e),n),gs=({dragState:r,normalizedDistance:e,sizeScale:n,size:s})=>{const i=Math.max(s/2,1),a=1+e*.65,o=Math.max(.65,1-e*.25),d=r.direction*e*26*n,f=.8+e*.18,g=3*n,x=6*n,w=22*n,y=Math.abs(d)+x,v=d>0?g:-Math.abs(d)-g,A=Math.max(2.5,3*n),F=pn(r.offsetX,-i,i),H=pn(r.offsetY,-i,i),le=i*.35,Ae=F/i*le,z=H/i*le,U=Ae*.45,Q=z*.45,D=Math.max(w*.38,6),V=.65+e*.2,M=r.active;return N.jsxs(N.Fragment,{children:[N.jsx("div",{className:"aqvs-tap-scroll-circle-gradient",style:{transform:`scale(${o}, ${a})`,transition:M?"40ms transform ease-out":"200ms ease transform"}}),N.jsx("div",{className:"aqvs-sample-visual-pupil",style:{width:w,height:w,transform:`translate(calc(-50% + ${Ae}px), calc(-50% + ${z}px)) scale(${o}, ${f*a})`,transition:M?"70ms transform ease-out":"200ms ease transform"}}),N.jsx("div",{className:"aqvs-sample-visual-highlight",style:{width:D,height:D,transform:`translate(calc(-50% + ${U}px), calc(-50% + ${Q}px)) scale(${o}, ${a})`,opacity:V,boxShadow:"0 0 8px rgba(255,255,255,0.45)",transition:M?"120ms opacity 150ms, 120ms transform ease-out ease-out":"220ms ease transform, 240ms opacity ease"}}),N.jsx("div",{className:"aqvs-sample-visual-rod",style:{width:A,height:y,transform:`translate(-50%, ${v}px)`,opacity:e,transition:M?"40ms height, 60ms opacity ease-out ease-out":"200ms ease height, 120ms ease opacity"}})]})},mr=100,bs=r=>{if(!Number.isFinite(r))return 0n;const e=Math.trunc(r);return e<=0?0n:BigInt(e)},$r=(r,e)=>{if(!Number.isFinite(r))throw new Error(`valueFn returned a non-finite value at index ${e}: ${r}`);return r},hr=r=>{if(r<=0||!Number.isFinite(r))return 0;const e=Math.trunc(r);if(e<=2147483647)return e&-e;const n=BigInt(e)&-BigInt(e);return Number(n)};class $t{tree;deltas;size;baseValue;valueFn;total;constructor(e,n,s){this.reset(e,n,s)}reset(e,n,s){const i=Number.isFinite(e)&&e>0?Math.trunc(e):0;if(typeof n!="function"){this.size=i,this.tree=new Map,this.deltas=new Map,this.valueFn=void 0,this.baseValue=n,this.total=this.baseValue*this.size;return}let a=0,o;const d=s?.baseValue;if(d!==void 0&&!(Number.isFinite(d)&&d>=0))throw new RangeError(`[FenwickMapTree] options.baseValue must be a finite number >= 0, received ${d}.`);if(i>0&&d!==void 0){if(a=d,s?.materialize){const f=s?.sampleRange??{from:0,to:Math.min(mr-1,i-1)};let g=Math.max(0,Math.trunc(f.from)),x=Math.min(Math.trunc(f.to),i-1);g>x&&(g=0,x=Math.min(mr-1,i-1)),o={from:g,values:$t._collectValidatedValues(n,g,x)}}}else if(i>0){const f=s?.sampleRange??{from:0,to:Math.min(mr-1,i-1)};let g=Math.max(0,Math.trunc(f.from)),x=Math.min(Math.trunc(f.to),i-1);if(g>x&&(g=0,x=Math.min(mr-1,i-1)),i>mr)a=$t._sampleBaseValueStrided(n,i,mr),s?.materialize&&(o={from:g,values:$t._collectValidatedValues(n,g,x)});else{const w=$t._collectValidatedValues(n,g,x);a=$t._modeOrMedian([...w]),s?.materialize&&(o={from:g,values:w})}}if(this.size=i,this.tree=new Map,this.deltas=new Map,this.total=void 0,this.valueFn=n,this.baseValue=a,o)for(let f=0;f<o.values.length;f++){const g=o.from+f;if(g>=this.size)break;const x=o.values[f]-this.baseValue;x!==0&&(this.deltas.set(g,x),this._updateTree(g,x))}this.total=this.getTotal()}setValueFn(e,n){if(n?.reset){this.reset(this.size,e);return}typeof e=="function"?this.valueFn=e:(this.valueFn=void 0,this.baseValue=e,this.total=this._computeTreeTotal())}static _collectValidatedValues(e,n,s){const i=[];for(let a=n;a<=s;a++)i.push($r(e(a),a));return i}static _modeOrMedian(e){if(e.length===0)return 0;e.sort((o,d)=>o-d);const n=Math.floor(e.length/2);let s;e.length%2===0?s=Math.floor((e[n-1]+e[n])/2):s=e[n];const i=new Map;let a=0;for(const o of e){const d=(i.get(o)??0)+1;i.set(o,d),d>a&&(a=d)}if(a>e.length*.2){const o=[];for(const[f,g]of i.entries())g===a&&o.push(f);const d=o.reduce((f,g)=>f+g,0);s=Math.floor(d/o.length)}return s}static _sampleBaseValueStrided(e,n,s){if(n<=0)return 0;let i=Math.max(1,Math.ceil(n/s));i%2===0&&(i+=1);const a=[];for(let o=0;o<n&&a.length<s;o+=i)a.push($r(e(o),o));return $t._modeOrMedian(a)}update(e,n){return this.updates([{index:e,value:n}])}updates(e){const n=this._buildDeltaUpdates(e);return n.length>0?this.updateDeltas(n):this.total}updateDelta(e,n){return this.updateDeltas([{index:e,change:n}])}updateDeltas(e){const n=new Map;for(const{index:s,change:i}of e){if(s<0||s>=this.size)throw new Error(`Index ${s} out of bounds`);if(!Number.isInteger(s))throw new Error(`Index must be an integer: ${s}`);if(!Number.isFinite(i))throw new Error(`Change must be a finite number: ${i}`);const o=(n.get(s)??this.deltas.get(s)??0)+i;if(o+this.baseValue<-1e-9)throw new Error(`Change would make the value at index ${s} negative: ${o+this.baseValue}`);n.set(s,o)}for(const{index:s,change:i}of e){const o=(this.deltas.get(s)??0)+i;o===0?this.deltas.delete(s):this.deltas.set(s,o),this._updateTree(s,i)}return this.total}_updateTree(e,n){if(n===0)return;let s=e+1;for(;s<=this.size;){this.tree.set(s,(this.tree.get(s)??0)+n);const i=hr(s);if(i===0)break;s+=i}this.total!==void 0&&(this.total+=n)}_buildDeltaUpdates(e){const n=[],s=new Map;for(const{index:i,value:a}of e){if(i<0||i>=this.size)throw new Error(`Index ${i} out of bounds`);if(!Number.isInteger(i))throw new Error(`Index must be an integer: ${i}`);if(!Number.isFinite(a))throw new Error(`Value must be a finite number: ${a}`);if(a<0)throw new Error("Value cannot be negative.");const o=s.has(i)?s.get(i)??0:this.deltas.get(i)??0,d=o+this.baseValue,f=a-d;f!==0&&n.push({index:i,change:f}),s.set(i,o+f)}return n}_computeTreeTotal(){if(this.size<=0)return 0;let e=0,n=this.size;for(;n>0;){e+=this.tree.get(n)??0;const s=hr(n);if(s===0)break;n-=s}return e+this.baseValue*this.size}_materialize(e,n=!0){if(this.valueFn){const s=this.deltas.get(e)??0,a=$r(this.valueFn(e),e)-this.baseValue;if(a!==s&&(a===0?this.deltas.delete(e):this.deltas.set(e,a),n)){const o=a-s;this._updateTree(e,o)}}}_materializeRanges(e,n,s=!1){if(!(e?.materialize&&this.valueFn))return;const i=e.ranges;if(i&&i.length>0){for(const d of i){const f=Math.max(0,Math.trunc(d.from)),g=Math.min(Math.trunc(d.to),this.size-1);for(let x=f;x<=g;x++)this._materialize(x)}if(n===void 0)return;if(s){this._materialize(n);return}const a=i[0].from,o=i[i.length-1].to;n>=a&&n<=o&&this._materialize(n);return}n!==void 0&&this._materialize(n)}_findIndex(e,n={},s){if(this.size>=1073741824)return this._findIndexLarge(e,n,s);if(this.size===0)return{index:-1,total:this.total??0,cumulative:void 0,currentValue:void 0,safeIndex:void 0};this._materializeRanges(n.materializeOption);const i=n.materializeOption?.materialize===!0;let a;for(;;){if(a=this._descend(e,s),a<0||a>=this.size)return{index:-1,total:this.total??this.getTotal(),cumulative:void 0,currentValue:void 0,safeIndex:void 0};if(!i)break;const d=this.deltas.get(a)??0;if(this._materialize(a),(this.deltas.get(a)??0)===d)break}const o=this.prefixSum(a);return{index:a,total:this.total??o.total,cumulative:o.cumulative,currentValue:o.currentValue,safeIndex:o.safeIndex}}_descend(e,n){let s=0,i=0,a=1;for(;a<<1<=this.size;)a<<=1;for(;a>0;a>>=1){const o=s+a;if(o<=this.size){const f=(this.tree.get(o)??0)+this.baseValue*a;(n?i+f<e:i+f<=e)&&(s=o,i+=f)}}return n?s:s-1}_findIndexLarge(e,n,s){if(this.size===0)return{index:-1,total:this.total??0,cumulative:void 0,currentValue:void 0,safeIndex:void 0};const i=bs(this.size);if(i===0n)return{index:-1,total:this.total??0,cumulative:void 0,currentValue:void 0,safeIndex:void 0};this._materializeRanges(n.materializeOption);const a=n.materializeOption?.materialize===!0;for(;;){let o=0n,d=i-1n,f,g,x=this.total;for(;o<=d;){const v=o+d>>1n,A=Number(v),F=this.prefixSum(A);if(x=F.total,s?F.cumulative>=e:F.cumulative<=e)if(f=v,g=F,s){if(v===0n)break;d=v-1n}else o=v+1n;else if(s)o=v+1n;else{if(v===0n)break;d=v-1n}}const w=g,y=f!==void 0?Number(f):-1;if(a&&y>=0){const v=this.deltas.get(y)??0;if(this._materialize(y),(this.deltas.get(y)??0)!==v)continue}return{index:y,total:x,cumulative:w?.cumulative,currentValue:w?.currentValue,safeIndex:w?.safeIndex}}}prefixSum(e,n){if(e<0||Number.isNaN(e))return{cumulative:0,total:this.total,currentValue:0,safeIndex:0};if(this.size===0)return{cumulative:0,total:this.total??0,currentValue:0,safeIndex:0};const s=ee(Math.trunc(e),0,this.size-1),i=n?.materializeOption;this._materializeRanges(i,s,!0);let a=0,o=s+1;for(;o>0;){const f=this.tree.get(o)??0;a+=f;const g=hr(o);if(g===0)break;o-=g}const d=i?.materialize?this.get(s):(this.deltas.get(s)||0)+this.baseValue;return{cumulative:a+this.baseValue*(s+1),total:this.total,currentValue:d,safeIndex:s}}get(e,n){if(this.size===0)return 0;if(!Number.isInteger(e)||e<0||e>=this.size)throw new Error("Index out of bounds");const s=n?.materializeOption;return this._materializeRanges(s,e),(this.deltas.get(e)??0)+this.baseValue}getTotal(e){const n=e?.materializeOption;if(this._materializeRanges(n),this.total===void 0)if(this.size===0)this.total=0;else{this.total=this._computeTreeTotal();const s=this.prefixSum(this.getSize()-1);s.cumulative!==s.total&&k.error("Inconsistent Fenwick Tree state")}return this.total}rebuildTree(e){if(e?.materialize&&this.valueFn){const s=this.valueFn;this.reset(this.size,i=>s(i),{materialize:!0});return}const n=new Map;for(const[s,i]of this.deltas.entries()){if(i===0)continue;let a=s+1;for(;a<=this.size;){n.set(a,(n.get(a)??0)+i);const o=hr(a);if(o===0)break;a+=o}}this.tree=n,this.total=this._computeTreeTotal()}calculateAccumulatedError(){if(this.total===void 0)return 0;let e=this.baseValue*this.size;for(const[n,s]of this.deltas)n<this.size&&(e+=s);return this.total-e}changeSize(e){if(!Number.isFinite(e))throw new Error(`Size must be a finite number: ${e}`);const n=Math.max(0,Math.trunc(e)),s=this.size;if(n===s)return;if(n>s)if(s===0&&this.deltas.size>0){for(const a of this.deltas.keys())a>=n&&this.deltas.delete(a);this.size=n,this.rebuildTree()}else this._growSize(s,n);else{if(n>0)for(const a of this.deltas.keys())a>=n&&this.deltas.delete(a);this.size=n,this.rebuildTree()}const i=this.prefixSum(this.getSize()-1);i.cumulative!==i.total&&k.error("Inconsistent Fenwick Tree state")}static _minCoveredLowBound(e,n){let s=1;for(;;){const i=s*2;if(Math.floor(n/i)*i<=e)break;s=i}return s*Math.floor(e/s)}_propagateDeltaToGrownNodes(e,n,s,i){let a=e+1;for(;a<=s;){const o=hr(a);if(o===0)break;a+=o}for(;a<=i;){this.tree.set(a,(this.tree.get(a)??0)+n);const o=hr(a);if(o===0)break;a+=o}}_growSize(e,n){if(this.size=n,this.deltas.size>0){const s=$t._minCoveredLowBound(e,n);if(e-s<this.deltas.size)for(let a=s;a<e;a++){const o=this.deltas.get(a);o===void 0||o===0||this._propagateDeltaToGrownNodes(a,o,e,n)}else for(const[a,o]of this.deltas.entries())o===0||a<s||this._propagateDeltaToGrownNodes(a,o,e,n)}this.total=this._computeTreeTotal()}getSize(){return this.size}get base(){return this.baseValue}findIndexAtOrAfter(e,n){return this._findIndex(e,n??{},!0)}findIndexAtOrBefore(e,n){return this._findIndex(e,n??{},!1)}}const xs=(r,e)=>{const n=r?.sampleRange,s=e?.sampleRange;return n===s?!1:n&&s?n.from!==s.from||n.to!==s.to:!0},nn=(r,e,n)=>{const s=Number.isFinite(r)&&r>0?Math.trunc(r):0,i=t.useRef(null),a=t.useRef({size:s,valueOrFn:e,options:n});i.current===null&&(i.current=new $t(s,e,n));const o=i.current,d=a.current,f=d.size!==s,g=d.valueOrFn!==e,x=xs(d.options,n)||d.options?.baseValue!==n?.baseValue,w=d.size===0&&s>0&&(!i.current||i.current.base===0);if(g||x){const y=n?.resetOnValueFnChange??!0;x||g&&y||w?(n?.debug&&k.debug("[useFenwickMapTree] reset",{valueOrFnChanged:g,optionsChanged:x}),o.reset(s,e,n)):(f&&(n?.debug&&k.debug("[useFenwickMapTree] resize (with valueFn change)",{from:d.size,to:s}),o.changeSize(s)),n?.debug&&k.debug("[useFenwickMapTree] setValueFn (no reset)",{valueOrFnChanged:g}),o.setValueFn(e,{reset:!1})),a.current={size:s,valueOrFn:e,options:n}}else f&&(n?.debug&&k.debug("[useFenwickMapTree] resize",{from:d.size,to:s}),w?o.reset(s,e,n):o.changeSize(s),a.current={size:s,valueOrFn:e,options:n});return o};class vs{key;value;prev=null;next=null;constructor(e,n){this.key=e,this.value=n}}class Xr{head=null;tail=null;addToTail(e){this.tail?(this.tail.next=e,e.prev=this.tail,this.tail=e):this.head=this.tail=e}remove(e){e.prev?e.prev.next=e.next:this.head=e.next,e.next?e.next.prev=e.prev:this.tail=e.prev,e.prev=null,e.next=null}removeHead(){const e=this.head;return e&&this.remove(e),e}moveToTail(e){this.remove(e),this.addToTail(e)}}function Ln(r){const e=t.useRef(new Map),n=t.useRef(new Xr),s=Math.floor(r),i=t.useRef(s);t.useEffect(()=>{if(i.current=s,Number.isNaN(s)||s<0){k.warn(`useLruCache: invalid capacity ${r}; the cache will not store any entries.`),e.current.clear(),n.current=new Xr;return}if(Number.isFinite(s))for(;e.current.size>s;){const x=n.current.removeHead();if(x)e.current.delete(x.key);else break}},[r,s]);const a=t.useCallback(x=>{const w=e.current.get(x);if(w)return n.current.moveToTail(w),w.value},[]),o=t.useCallback((x,w)=>{const y=i.current;if(Number.isNaN(y)||y<=0)return;let v=e.current.get(x);if(v)v.value=w,n.current.moveToTail(v);else{if(e.current.size>=y){const A=n.current.removeHead();A&&e.current.delete(A.key)}v=new vs(x,w),e.current.set(x,v),n.current.addToTail(v)}},[]),d=t.useCallback(x=>e.current.has(x),[]),f=t.useCallback(x=>{const w=e.current.get(x);w&&(n.current.remove(w),e.current.delete(x))},[]),g=t.useCallback(()=>{e.current.clear(),n.current=new Xr},[]);return t.useMemo(()=>({get:a,set:o,has:d,remove:f,clear:g}),[a,o,d,f,g])}const Ss=1e4,ws=()=>{const{get:r,set:e,has:n,clear:s}=Ln(Ss);return t.useMemo(()=>({get:r,set:e,has:n,clear:s}),[r,e,n,s])},Rs=(r,e)=>{const n=t.useRef(e),s=t.useRef(r);t.useLayoutEffect(()=>{n.current=e,s.current=r},[e,r]);const i=t.useRef(new WeakMap);return t.useCallback(a=>{if(!a||i.current.has(a))return;const o=d=>{n.current?.enableBridge!==!1&&s.current.current?.applyWheel(d)};return a.addEventListener("wheel",o,{passive:!1}),i.current.set(a,o),()=>{i.current.get(a)===o&&(a.removeEventListener("wheel",o),i.current.delete(a))}},[])},gn=-200,bn={active:!1,offsetX:0,offsetY:0,distance:0,direction:0,pointerId:null},Ms=r=>{const e=t.useRef(r);e.current=r;const n=t.useRef(bn),s=t.useRef(null),[i,a]=t.useState(!1),o=t.useRef(null),d=t.useRef(null),f=t.useRef({residual:0,direction:0}),g=t.useRef({residual:0,direction:0}),x=t.useCallback(()=>{o.current!==null&&(window.cancelAnimationFrame(o.current),o.current=null),d.current=null,f.current={residual:0,direction:0},g.current={residual:0,direction:0}},[]),w=t.useCallback((z,U,Q,D,V,M)=>{const re=U>0?1:U<0?-1:0;re!==0&&re!==z.direction&&(z.direction=re,z.residual=0),z.residual+=U*Q;const j=Math.max(V(),0);j>0&&(z.residual=ee(z.residual,-j,j));const q=z.residual;if(q===0)return{actualDelta:0,atBoundary:!1};const J=D(),Z=M(q),ge=Z-J;z.residual-=ge;const Ze=q<0&&J+q<=0,E=q>0&&J+q>=j,Y=q<0&&(Z<=0||Ze&&ge===0)||q>0&&(Z>=j||E&&ge===0);return Y&&(z.residual=0),{actualDelta:ge,atBoundary:Y}},[]),y=t.useCallback(z=>{const U=e.current,Q=n.current;if(!Q.active||Q.direction===0){x();return}const D=d.current??z,V=Math.max((z-D)/1e3,0),M=Math.min(V,kn);if(d.current=z,M<=0){o.current=window.requestAnimationFrame(y);return}const re=Nn({offsetX:Q.offsetX,offsetY:Q.offsetY,maxDistance:U.maxDistance,x:U.xSpeedParams,y:U.ySpeedParams}),j=w(f.current,re.x,M,U.getHx,U.getMaxHx,ge=>U.applyHxRef.current(U.getHx()+ge));j.actualDelta!==0&&(U.pendingColAnchorRef.current=null);const q=w(g.current,re.y,M,U.getVy,U.getMaxVy,U.applyVy),J=U.getMaxHx()<=0||j.atBoundary||Q.offsetX===0,Z=U.getMaxVy()<=0||q.atBoundary||Q.offsetY===0;if(J&&Z){x();return}o.current=window.requestAnimationFrame(y)},[x,w]),v=t.useCallback(()=>{o.current===null&&(d.current=null,f.current={residual:0,direction:0},g.current={residual:0,direction:0},o.current=window.requestAnimationFrame(y))},[y]),A=t.useCallback(()=>{n.current={...bn},a(!1),s.current?.reset(),x()},[x]),F=t.useCallback(z=>{n.current=z,a(z.active),z.active&&z.direction!==0?v():x()},[v,x]),{enabled:H,xExtentFreshness:le,yExtentFreshness:Ae}=r;return t.useEffect(()=>{const z=n.current;!z.active||z.direction===0||v()},[le,Ae,v]),t.useEffect(()=>{const z=()=>{A()};return window.addEventListener(Tr,z),()=>{window.removeEventListener(Tr,z)}},[A]),t.useEffect(()=>{if(!H)return;const z=U=>{if(!n.current.active||n.current.pointerId===U.pointerId)return;const Q=U.target;if(!(Q instanceof Node)){A();return}s.current?.getElement()?.contains(Q)||A()};return document.addEventListener("pointerdown",z,!0),()=>{document.removeEventListener("pointerdown",z,!0)}},[H,A]),t.useEffect(()=>{H||A()},[H,A]),t.useEffect(()=>()=>{x()},[x]),{isTapActive:i,handleTapCircleDragChange:F,tapCircleHandleRef:s}},Ke=(r,e)=>e<=0?0:ee(r,0,e-1),xn=r=>({top:Math.max(0,r?.top??0),bottom:Math.max(0,r?.bottom??0)}),gt=(r,e)=>r<=e?0:r-e,sr=(r,e)=>r<=0?0:r+e,Er=1e3,jr=2e3,Dn=1048576,ir=2**-10,vn=r=>r==="center"?null:r==="bottom"?"end":"start",ys=(r,e,n)=>r<=ir?"start":r>=e-ir?"end":n!==null&&Math.abs(r-n.panePosition)<=ir?n.edge:"none",Ts=({translateY:r,snapEdge:e,children:n})=>{const{ratio:s,attach:i}=Tn("[VirtualScroll] the items wrapper"),a=s===null?r:Mn(r,s,e);return N.jsx("div",{ref:i,className:"aqvs-items-wrapper",style:{top:0,transform:`translateY(${a}px)`,willChange:"transform"},children:n})},Es=40,Mr=r=>{if(!Number.isFinite(r))return 0n;const e=Math.trunc(r);return e<=0?0n:BigInt(e)},Is=(r,e,n,s,i,a,o,d)=>{const f=Mr(s);if(f===0n)return{renderingStartIndex:0,renderingEndIndex:0,visibleStartIndex:0,visibleEndIndex:0};const g=D=>D<0n?0n:D>=f?f-1n:D,x={materializeOption:{materialize:!1}},{index:w,cumulative:y}=a.findIndexAtOrAfter(r,x);let v;w===-1?v=f-1n:(y===r?v=Mr(w+1):v=Mr(w),v>=f&&(v=f-1n)),r<=0&&(v=0n),d&&r>=o&&(v=f-1n);const A=D=>{const V=Number(D);if(!Number.isSafeInteger(V))return null;const{cumulative:M}=a.prefixSum(V,{materializeOption:{materialize:!1}});if(!Number.isFinite(M))return null;const{index:re}=a.findIndexAtOrAfter(M+.5,{materializeOption:{materialize:!1}});if(re===-1)return null;const j=Mr(re);return j>D?j:null},F=D=>{let V=0,M=D,re=D,j=0n,q=0;for(;M<f&&V<e;){const J=Number(M),Z=i(J);if(V+=Z,re=M,M+=1n,j+=1n,!Number.isFinite(Z)||Z<0)break;if(Z===0){if(q+=1,q>Er){const ge=A(re);if(ge!==null&&ge>M)M=ge,q=0;else if(ge!==null&&ge===M&&i(Number(M))>0)q=0;else break}}else q=0}return j===0n&&(re=D),{height:V,end:re}};let{height:H,end:le}=F(v);if(H<e&&v>0n){let D=v,V=H,M=0;for(;D>0n&&V<e;){D-=1n;const j=Number(D),q=i(j);if(V+=q,!Number.isFinite(q)||q<0)break;if(q===0){if(M+=1,M>Er){const J=Number(D);if(!Number.isSafeInteger(J))break;const{cumulative:Z}=a.prefixSum(J,{materializeOption:{materialize:!1}});if(!Number.isFinite(Z))break;const{index:ge}=a.findIndexAtOrAfter(Z-.5,{materializeOption:{materialize:!1}}),Ze=ge===-1?-1n:Mr(ge);if(Ze>=0n&&Ze<D)D=Ze+1n,M=0;else if(Ze===D&&D>=1n&&i(Number(D-1n))>0)M=0;else break}}else M=0}v=g(D);const re=F(v);H=re.height,le=re.end}const Ae=g(v),z=g(le),U=g(Ae-BigInt(Math.max(0,n))),Q=g(z+BigInt(Math.max(0,n)));return{renderingStartIndex:Ke(Number(U),s),renderingEndIndex:Ke(Number(Q),s),visibleStartIndex:Ke(Number(Ae),s),visibleEndIndex:Ke(Number(z),s)}},_n=(r,e,n,s,i,a,o)=>{if(s===0)return{renderingStartIndex:0,renderingEndIndex:0,visibleStartIndex:0,visibleEndIndex:0};const d=Number.isFinite(o),f=d?Math.min(Math.max(0,r),o):Math.max(0,r);if(s>=Number.MAX_SAFE_INTEGER)return Is(f,e,n,s,i,a,o,d);const{index:g,cumulative:x,currentValue:w}=a.findIndexAtOrAfter(f,{materializeOption:{materialize:!1}}),y=g===-1?e<=0||(x??0)<f+(w??0)?s-1:0:g;let v=Ke(y,s),A=0;if(g!==-1&&x===f)v=Ke(g+1,s),A=0;else if(v===g&&x!==void 0&&w!==void 0)A=x-w-f;else{const{cumulative:D,currentValue:V}=a.prefixSum(v,{materializeOption:{materialize:!1}});A=(D??0)-(V??0)-f}const F=A,H=(D,V)=>{let M=D,re=V,j=0;for(;M<s&&re<e;){const q=i(M);if(re+=q,M++,!Number.isFinite(q)||q<0)break;if(q===0){if(j++,j>Er){const{cumulative:J}=a.prefixSum(M-1,{materializeOption:{materialize:!1}}),{index:Z}=Number.isFinite(J)?a.findIndexAtOrAfter(J+.5,{materializeOption:{materialize:!1}}):{index:-1};if(Z>M)M=Z,j=0;else if(Z===M&&i(M)>0)j=0;else break}}else j=0}return{cursor:M,height:re}},le=H(v,A);let Ae=le.cursor;if(A=le.height,A<e&&v>0){let D=A+Math.abs(Math.min(0,F)),V=v-1,M=0;for(;V>=0&&D<e;){const j=i(V);if(D+=j,!Number.isFinite(j)||j<0){V--;break}if(j===0){if(M++,M>Er){const{cumulative:q}=a.prefixSum(V,{materializeOption:{materialize:!1}}),{index:J}=Number.isFinite(q)?a.findIndexAtOrAfter(q-.5,{materializeOption:{materialize:!1}}):{index:-1};if(J!==-1&&J<V){V=J,M=0;continue}if(J===V&&V>=1&&i(V-1)>0)M=0;else{V--;break}}}else M=0;V--}v=Ke(V+1,s);const re=H(v,0);Ae=re.cursor,A=re.height}const z=Ke(v-n,s),U=Ke(Math.max(Ae-1,v),s),Q=Ke(U+n,s);return{renderingStartIndex:z,renderingEndIndex:Q,visibleStartIndex:v,visibleEndIndex:U}},Sn=(r,e,n)=>{const s=Math.max(0,e??0),i=t.useRef({last:0,id:null,arg:null}).current;return t.useEffect(()=>()=>{if(i.id!==null&&(cancelAnimationFrame(i.id),i.id=null),i.arg!==null&&r.current){try{n(r.current,i.arg)}catch(a){console.error("[useThrottledInvoker] Error flushing pending callback on unmount",a)}i.arg=null}},[i,r,n]),t.useCallback(a=>{if(i.arg=a,i.id!==null)return;const o=d=>{if(i.id=null,i.arg===null)return;const f=d-i.last;if(s===0||i.last===0||f>=s){if(r.current)try{n(r.current,i.arg)}catch(g){console.error("[useThrottledInvoker] Error invoking callback",g)}i.arg=null,i.last=d}i.arg!==null&&(i.id=requestAnimationFrame(o))};i.id=requestAnimationFrame(o)},[s,n,r,i])},Cs=t.memo(({index:r,top:e,height:n,item:s,children:i,clipItemHeight:a,enableKeyboardNavigation:o,onKeyDown:d,onEscapeKeyDown:f,onFocus:g,registerItemRef:x})=>{const w=t.useCallback(H=>x(r,H),[r,x]),y=t.useCallback(H=>d(H,r),[r,d]),v=t.useCallback(H=>f?.(H,r),[r,f]),A=t.useCallback(()=>g(r),[r,g]),F=t.useCallback(H=>{H.currentTarget.focus({preventScroll:!0})},[]);return N.jsx("div",{ref:w,"data-index":r,"data-virtualscroll-item":"true",className:"aqvs-item-container",style:{top:e,height:n,overflow:a?"hidden":void 0},tabIndex:o?-1:void 0,onPointerDown:o?F:void 0,onKeyDownCapture:o?y:void 0,onKeyDown:o&&f?v:void 0,onFocusCapture:o?A:void 0,children:i(s,r)})}),Ps=({itemCount:r,getItem:e,getItemKey:n,getItemHeight:s,viewportSize:i,overscanCount:a=15,className:o,testId:d,onScroll:f,onRangeChange:g,onScrollAdjust:x,children:w,background:y,initialScrollIndex:v,initialScrollOffset:A,initialScrollAnchor:F,callbackThrottleMs:H=5,contentInsets:le,onItemFocus:Ae,scrollBarOptions:z,behaviorOptions:U,onWheelHorizontal:Q,onPanHorizontal:D,horizontalKeyInputs:V,horizontalKeyStep:M=Es,contentProps:re,liveRegion:j,locale:q,labels:J},Z)=>{const{width:ge,enableThumbDrag:Ze,enableTrackClick:E,enableArrowButtons:Y,enableArrowButtonTabStops:ae,enableScrollToTopBottomButtons:He,renderThumbOverlay:oe,tapScrollCircleOptions:Ve}=z??{},ft=t.useMemo(()=>Jr(q,J),[q,J]),{enablePointerDrag:ce,pointerDragInputs:Be,enableKeyboardNavigation:Re=!0,enableEscapeRowReturn:Qe=!1,wheelSpeedMultiplier:nt,inertiaOptions:Le,overscrollBehavior:st,clipItemHeight:it=!1,resetOnGetItemHeightChange:$e=!1}=U??{},[fe,yt]=t.useState(0),ne=i??fe,Se=t.useCallback(c=>{yt(m=>m===c?m:c)},[]),se=t.useRef(null),te=t.useRef({renderingStartIndex:0,renderingEndIndex:0,visibleStartIndex:0,visibleEndIndex:0,scrollPosition:0,totalHeight:0}),We=t.useRef(F&&r>0?{index:ee(Math.trunc(F.index),0,r-1),align:"top",offset:-Math.max(0,F.offsetPx??0)}:null),$=t.useRef(!1),Xe=t.useRef(!0);t.useEffect(()=>{if(Xe.current){Xe.current=!1;return}$e&&(We.current=null)},[$e,s]);const P=t.useMemo(()=>xn(le),[le]),[Te]=t.useState(()=>{const m=F?.index??v,b=typeof m=="number"&&Number.isFinite(m)?Math.max(0,Math.trunc(m)):0;return{from:Math.max(0,b-50),to:b+50}}),bt=t.useMemo(()=>({sampleRange:Te,resetOnValueFnChange:$e,materialize:!0}),[$e,Te]),L=nn(r,s,bt),[xt]=t.useState(()=>{let c=0,m=0;if(F&&r>0){const b=ee(Math.trunc(F.index),0,r-1),X=Math.max(0,F.offsetPx??0),_=ee(b-a*2,0,r-1),B=ee(b+a*2,0,r-1),W=b>0||X>0?{materializeOption:{materialize:!0,ranges:[{from:_,to:B}]}}:void 0,{cumulative:be,total:Ne,currentValue:ze}=L.prefixSum(b,W),ye=Math.max(be-ze+X,0);c=sr(ye,P.top),m=Ne??L.getTotal()}else if(typeof v=="number"){const b=ee(v,0,r-1),X=ee(b-a*2,0,r-1),_=ee(b+a*2,0,r-1),B=v>0?{materializeOption:{materialize:!0,ranges:[{from:X,to:_}]}}:void 0,{cumulative:W,total:be,currentValue:Ne}=L.prefixSum(v,B),ze=Math.max(W-Ne,0);c=sr(ze,P.top),m=be??L.getTotal()}else typeof A=="number"&&(c=sr(Math.max(A,0),P.top)),m=L.getTotal();return{position:c,total:m}}),[ct,kt]=t.useState(xt.position),[h,ie]=t.useState(xt.total),[ue,G]=t.useState(()=>F&&r>0||typeof v=="number"||xt.position<=ir?{edge:"start",panePosition:xt.position}:null),K=t.useRef(ue),xe=t.useCallback(c=>{const m=K.current;m===c||m!==null&&c!==null&&m.edge===c.edge&&m.panePosition===c.panePosition||(K.current=c,G(c))},[]),De=t.useCallback((c,m)=>{const b=K.current;b===null||Math.abs(b.panePosition-c)>ir||xe({edge:b.edge,panePosition:m})},[xe]),_e=t.useCallback(()=>{K.current!==null&&xe(null)},[xe]),pe=t.useRef(xt.position),qe=t.useRef(P.top),Ye=t.useRef(f??void 0),ut=t.useRef(g??void 0),dt=t.useRef(x),je=t.useRef(Q),At=(V?.length??0)>0,Ee=!!Q;t.useEffect(()=>{At&&(Re||k.warn("[VirtualScroll] horizontalKeyInputs is set but behaviorOptions.enableKeyboardNavigation is false; horizontal keyboard scrolling is disabled because the row key handler is not mounted."),Ee||k.warn("[VirtualScroll] horizontalKeyInputs is set but onWheelHorizontal is missing; horizontal keyboard scrolling is disabled because the package does not own the horizontal axis."),Number.isFinite(M)&&M>0||k.warn(`[VirtualScroll] horizontalKeyStep must be a finite positive number, received ${M}. Horizontal arrow keys are left untouched.`))},[At,Ee,Re,M]);const me=t.useRef(new Map),Me=t.useRef(null),ve=t.useRef(null),[S,I]=t.useState(null),[tt,Ue]=t.useState(!1),Oe=t.useRef(null),Pe=t.useRef(!1),we=t.useRef(0),Ce=t.useRef(!1),Tt=t.useRef(!1),Xt=t.useRef(r);Xt.current!==r&&(Xt.current=r,Tt.current=!0),t.useLayoutEffect(()=>{Ye.current=f??void 0,ut.current=g??void 0,dt.current=x,je.current=Q},[g,f,x,Q]);const Ot=t.useCallback(c=>{if(Re&&c&&typeof c.focus=="function")try{c.focus({preventScroll:!0})}catch{c.focus()}},[Re]),ke=t.useCallback((c,{position:m,totalHeight:b})=>{c(m,b)},[]),Et=Sn(Ye,H,ke),ar=t.useCallback((c,m)=>{c(m)},[]),rr=Sn(ut,H,ar),at=t.useRef(P.top);at.current=P.top;const Nt=t.useRef(Et);Nt.current=Et,t.useEffect(()=>($.current=!1,()=>{$.current=!0,Oe.current&&(clearTimeout(Oe.current),Oe.current=null)}),[]),t.useEffect(()=>{Re||(me.current.clear(),Me.current=null,ve.current=null)},[Re]);const qt=t.useCallback((c,m)=>{if(!m){me.current.delete(c);return}Re&&(me.current.set(c,m),Me.current===c&&(Me.current=null,ve.current=c,Ot(m)))},[Re,Ot]),Yt=.01,Bt=t.useRef({rafId:null,loopActive:!1,idleFrames:0,lastRenderedPosition:xt.position}),Kt=t.useCallback(()=>{const c=Bt.current;c.rafId!==null&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(c.rafId),c.rafId=null,c.loopActive=!1,c.idleFrames=0},[]);t.useEffect(()=>()=>{Kt()},[Kt]);const Ft=t.useRef(()=>{}),Wt=t.useCallback(()=>{const c=Bt.current;c.rafId=null;const m=pe.current,b=gt(m,at.current),X=L.getTotal();if(kt(B=>Math.abs(B-m)<Yt?B:m),Math.abs(c.lastRenderedPosition-m)>=Yt?(Nt.current({position:b,totalHeight:X}),c.lastRenderedPosition=m,c.idleFrames=0):c.idleFrames+=1,c.idleFrames>=2){Kt();return}if(typeof requestAnimationFrame=="function"){c.rafId=requestAnimationFrame(B=>Ft.current(B));return}c.loopActive=!1},[L,Kt]);Ft.current=Wt;const jt=t.useCallback(()=>{const c=Bt.current;if(c.idleFrames=0,!c.loopActive){if(c.loopActive=!0,typeof requestAnimationFrame=="function"){c.rafId=requestAnimationFrame(Wt);return}c.loopActive=!1}},[Wt]),u=t.useCallback((c,m)=>{const b=m?.immediate??!1,X=gt(c,P.top);if(pe.current=c,b){Bt.current.lastRenderedPosition=c,Bt.current.idleFrames=0,kt(c),Et({position:X,totalHeight:L.getTotal()});return}jt()},[jt,L,P.top,Et]),T=t.useCallback((c,m=0)=>{const b=se.current;if(!b)return c;const X=b.getScrollPosition();we.current+=1;const _=b.getContentSize()+m,B=b.getViewportSize(),W=b.scrollTo(c,{contentSize:_,viewportSize:B});return W===X&&(we.current=Math.max(0,we.current-1)),Math.abs(W-c)>.5&&(Ce.current=!0),W},[]),C=t.useCallback((c,m)=>{const b=se.current;if(b===null){m();return}const X=b.getScrollPosition();m();const _=dt.current;if(_===void 0)return;const B=gt(b.getScrollPosition(),at.current),W=B-gt(X,at.current);W!==0&&_({position:B,delta:W,cause:c})},[]),he=t.useRef(!1);t.useEffect(()=>{if(!he.current)if(he.current=!0,F==null&&typeof v!="number"&&typeof A=="number"){const c=sr(Math.max(A,0),P.top),m=Math.abs(c-pe.current)>.5;u(c,{immediate:!0}),m&&se.current?.scrollTo(c)}else u(pe.current,{immediate:!0})},[F,v,A,P.top,u]),t.useEffect(()=>{const c=L.getTotal();if(h!==c){ie(c);return}if(Ce.current){Ce.current=!1;const m=se.current;m&&Math.abs(m.getScrollPosition()-pe.current)>.5&&C("re-issue",()=>{const b=T(pe.current);Ce.current=!1,u(b,{immediate:!0})})}},[L,h,r,C,T,u]),t.useEffect(()=>{if(We.current!==null){const{index:c,align:m,offset:b}=We.current,X=Ke(c,r),{cumulative:_,currentValue:B}=L.prefixSum(X,{materializeOption:{materialize:!1}});if(_!==void 0&&B!==void 0){const W=Math.max(_-B,0);let be=W;m==="bottom"?be=_-ne:m==="center"&&(be=W+B/2-ne/2),b&&(be-=b),be=Math.max(0,be);const Ne=Math.max(0,h+P.top+P.bottom-ne),ze=Math.min(sr(be,P.top),Ne);Math.abs(ze-pe.current)>ir&&(k.debug("[VirtualScroll] Drift correction",{from:pe.current,to:ze,targetIndex:X}),C("drift",()=>{we.current===0&&(we.current+=1),se.current?.scrollTo(ze),u(ze,{immediate:!0});const ye=vn(m);xe(ye===null?null:{edge:ye,panePosition:ze})}))}}Tt.current=!1},[h,L,r,P.top,C,xe,u,ne,P.bottom]),t.useEffect(()=>{const c=qe.current;if(c===P.top||(qe.current=P.top,We.current))return;const m=gt(pe.current,c),b=sr(m,P.top);pe.current=b,se.current?.scrollTo(b),u(b,{immediate:!0})},[P.top,u]);const Fe=t.useCallback((c,m)=>{if(r===0)return;const b=Ke(c,r),X=L.get(b),_=m-X,B=L.update(b,m);B!==void 0&&ie(B),k.debug("[VirtualScroll] Updated item size manually",{index:b,size:m,total:B});let W=We.current?We.current.index:null;if(W===null){const be=pe.current,Ne=xn(le).top,ze=gt(be,Ne),{index:ye,cumulative:lt}=L.findIndexAtOrAfter(ze,{materializeOption:{materialize:!1}});W=lt!==void 0&&lt===ze?ye+1:ye}if(W!==-1&&b<W&&_!==0){const be=pe.current,Ne=be+_;C("item-resize",()=>{T(Ne,_),u(Ne,{immediate:!0}),De(be,Ne)}),k.debug("[VirtualScroll] Adjusted scroll for layout shift (manual update)",{from:be,to:Ne,causedByIndex:b,delta:_,activeVisibleStartIndex:W})}},[L,r,C,De,T,u,le]),Ie=t.useCallback((c,m)=>{if(!se.current||r===0)return;const b=Ke(c,r),X=Ke(b-a*2,r),_=Ke(b+a*2,r),{cumulative:B,total:W,currentValue:be}=L.prefixSum(b,{materializeOption:{materialize:!0,ranges:[{from:X,to:_}]}});if(k.debug("[VirtualScroll] Scrolling to index:",b,"ItemBottom:",B,"Total height:",W,"ItemHeight:",be,"safeIndexFrom:",X,"safeIndexTo:",_),!W)return;const Ne=Math.max(B-be,0);let ze=Ne;m?.align==="bottom"?ze=B-ne:m?.align==="center"&&(ze=Ne+be/2-ne/2),m?.offset&&(ze-=m.offset),ze=Math.max(0,ze);const ye=sr(ze,P.top),lt=se.current?.getContentSize()??W+P.top+P.bottom,Je=Math.max(0,lt-ne),Ge=Math.min(ye,Je);We.current={index:b,align:m?.align,offset:m?.offset};const Dt=vn(m?.align);xe(Dt===null?null:{edge:Dt,panePosition:Ge});const Jt=se.current?.getScrollPosition()??-1,Cr=Math.abs(Jt-Ge)>ir;Pe.current=!1,we.current=0,Cr&&(Pe.current=!0,we.current+=1,se.current?.scrollTo(Ge)),ie(W),u(Ge,{immediate:!0}),k.debug("[VirtualScroll] Setting scroll position to:",Ge,{original:ye,max:Je})},[L,a,r,P.top,P.bottom,ne,xe,u]),wt=t.useRef(F&&r===0?F:null);t.useEffect(()=>{const c=wt.current;!c||r===0||(wt.current=null,Ie(ee(Math.trunc(c.index),0,r-1),{align:"top",offset:-Math.max(0,c.offsetPx??0)}))},[r,Ie]);const mt=t.useCallback(c=>{if(!se.current||r===0)return;const m=L.getTotal(),b=ee(Math.floor(c),0,m),{index:X,cumulative:_,currentValue:B}=L.findIndexAtOrAfter(b,{materializeOption:{materialize:!1}}),be=(_??0)-(B??0)-b;Ie(X,{offset:be})},[L,r,Ie]),or=t.useCallback(()=>{if(r===0)return null;const c=gt(pe.current,P.top),{index:m,cumulative:b,currentValue:X}=L.findIndexAtOrAfter(c,{materializeOption:{materialize:!1}});if(m===-1)return{index:r-1,offsetPx:0};if(b===c)return{index:ee(m+1,0,r-1),offsetPx:0};const _=(b??0)-(X??0);return{index:m,offsetPx:Math.max(0,c-_)}},[L,r,P.top]),zt=t.useCallback(c=>{const m=gt(pe.current,P.top),b=typeof c=="function"?c(m):c;mt(b);const X=se.current?.getScrollPosition(),_=typeof X=="number"?X:pe.current;return u(_),gt(_,at.current)},[P.top,mt,u]),Vt=t.useCallback(c=>{const m=se.current;if(!m)return gt(pe.current,at.current);const b=m.scrollTo(X=>X+c);return gt(b,at.current)},[]),Ut=t.useCallback(c=>se.current?.applyWheel(c)??!1,[]),Ir=t.useCallback((c,m)=>{k.debug("[VirtualScroll] Scroll position changed:",c);const b=Pe.current;b&&(Pe.current=!1);const X=we.current>0;X&&(we.current=0);const _=Tt.current&&Xt.current===r;if(b||X||_||(We.current=null,_e()),u(c),He){if(b||X)return;const B=c-m;if(k.debug("[VirtualScroll] Scroll diff:",B,"New:",c,"Prev:",m),Math.abs(B)>1){const W=B>0?"down":"up";I(W),Ue(!0),k.debug("[VirtualScroll] Showing scroll buttons. Direction:",W),Oe.current&&clearTimeout(Oe.current),Oe.current=setTimeout(()=>{Ue(!1),k.debug("[VirtualScroll] Hiding scroll buttons")},2e3)}}},[u,_e,He,r]),ot=t.useMemo(()=>gt(ct,P.top),[P.top,ct]),vt=t.useMemo(()=>{const c=L.getTotal(),m=_n(ot,ne,a,r,s,L,c);return k.debug("[VirtualScroll] Calculated rendering range:",()=>({...m,scrollPosition:ot,renderingContentSize:c,overscanCount:a,viewportSize:ne})),m},[ot,ne,a,r,s,L]),{renderingStartIndex:Rt,renderingEndIndex:ht,visibleStartIndex:St,visibleEndIndex:Pt}=vt,pt=t.useCallback((c,m)=>{if(!Re||r===0)return;const b=Ke(c,r);if(!(m?.ensureVisible??!0)){const Je=me.current.get(b);Je&&(Me.current=null,ve.current=b,Ot(Je));return}const _=L.prefixSum(b,{materializeOption:{materialize:!1}}),B=_.currentValue,W=Math.max(_.cumulative-B,0),be=W+B,Ne=gt(pe.current,P.top),ze=Ne+ne;if(W<Ne||be>ze){Ie(b);const Je=me.current.get(b);Je?(Me.current=null,ve.current=b,Ot(Je)):Me.current=b;return}const lt=me.current.get(b);if(lt){Me.current=null,ve.current=b,Ot(lt);return}Me.current=b},[Re,r,L,P.top,Ie,Ot,ne]),Mt=t.useCallback((c,m)=>{if(!(!Re||c.defaultPrevented)&&!(c.altKey||c.metaKey||c.ctrlKey)&&c.target===c.currentTarget&&!c.currentTarget.isContentEditable){if(c.key==="ArrowLeft"||c.key==="ArrowRight"){const b=je.current;if(!b||c.shiftKey||!V?.includes("arrow")||!(Number.isFinite(M)&&M>0))return;c.preventDefault(),b(c.key==="ArrowLeft"?-M:M);return}if(c.key==="ArrowDown"){m<r-1&&(c.preventDefault(),pt(m+1));return}if(c.key==="ArrowUp"){m>0&&(c.preventDefault(),pt(m-1));return}if(c.key==="PageDown"){if(m<r-1){c.preventDefault();const{visibleStartIndex:b,visibleEndIndex:X}=te.current,_=Math.max(X-b+1,1),B=Math.max(_,1),W=Ke(Math.min(m+B,r-1),r);pt(W)}return}if(c.key==="PageUp"&&m>0){c.preventDefault();const{visibleStartIndex:b,visibleEndIndex:X}=te.current,_=Math.max(X-b+1,1),B=Math.max(_,1),W=Ke(m-B,r);pt(W)}}},[Re,r,pt,V,M]),Zt=t.useCallback((c,m)=>{if(c.key!=="Escape"||c.defaultPrevented||c.nativeEvent.isComposing||c.target===c.currentTarget)return;const b=c.target;b instanceof HTMLInputElement||b instanceof HTMLTextAreaElement||b instanceof HTMLSelectElement||b.isContentEditable||(c.preventDefault(),pt(m))},[pt]),Gt=t.useCallback(c=>{if(!Re)return;const m=Ke(c,r);Me.current=null,ve.current=m,Ae?.(m)},[Re,r,Ae]);t.useEffect(()=>{const c=se.current?.getScrollPosition()??0,m=pe.current,b=gt(m,P.top);k.debug("[VirtualScroll] Range change effect triggered",()=>({renderingStartIndex:Rt,renderingEndIndex:ht,visibleStartIndex:St,visibleEndIndex:Pt,scrollPositionState:ct,paneScrollPosition:m,logicalScrollPosition:b,contentSize:h,scrollPaneScrollPosition:c})),rr({renderingStartIndex:Rt,renderingEndIndex:ht,visibleStartIndex:St,visibleEndIndex:Pt,scrollPosition:b,totalHeight:h})},[h,ht,Rt,P.top,rr,ct,Pt,St]);const It=t.useCallback(()=>{if(!He)return null;const c=tt&&S!==null,m=S==="up";return N.jsx("div",{className:"aqvs-scroll-to-edge-overlay","data-visible":c,inert:!c,children:m?N.jsx("div",{className:"aqvs-scroll-to-edge-button-container aqvs-scroll-to-edge-button-container-top",children:N.jsx("button",{type:"button",className:"aqvs-scroll-to-edge-button",tabIndex:c?0:-1,onClick:b=>{b.stopPropagation(),Pe.current=!0,Ie(0),Ue(!1)},children:ft.scrollToTop})}):N.jsx("div",{className:"aqvs-scroll-to-edge-button-container aqvs-scroll-to-edge-button-container-bottom",children:N.jsx("button",{type:"button",className:"aqvs-scroll-to-edge-button",tabIndex:c?0:-1,onClick:b=>{b.stopPropagation(),Pe.current=!0,Ie(r-1),Ue(!1)},children:ft.scrollToBottom})})})},[He,tt,S,Ie,r,ft]),gr=t.useRef(0),{visibleItems:Lt,renderAnchor:lr}=t.useMemo(()=>{if(r===0)return{visibleItems:N.jsx("div",{className:"aqvs-no-items-container",children:N.jsx("div",{className:"aqvs-no-items-text",children:ft.noItems})}),renderAnchor:0};const c=Ke(Rt,r),m=Ke(ht,r),{cumulative:b,currentValue:X}=L.prefixSum(c,{materializeOption:{materialize:!1}}),_=b-X;Number.isFinite(_)&&Math.abs(_-gr.current)>Dn&&(gr.current=_);const B=gr.current,W=[],be=[];let Ne=0,ze=_;for(let ye=c;ye<=m;ye++){if(be.length>=jr){k.warn("[VirtualScroll] Rendered item count reached the safety cap; truncating render window.",{cap:jr,safeRenderingStartIndex:c,safeRenderingEndIndex:m});break}const lt=s(ye),Je=L.get(ye),Ge=lt-Je;Ge!==0&&W.push({index:ye,value:lt});const Dt=ze+Ne,Jt=n?n(ye):ye;be.push(N.jsx(Cs,{index:ye,top:Dt-B,height:lt,item:e(ye),clipItemHeight:it,enableKeyboardNavigation:Re,onKeyDown:Mt,onEscapeKeyDown:Qe?Zt:void 0,onFocus:Gt,registerItemRef:qt,children:w},Jt)),Ne+=Ge,ze+=Je}return W.length>0&&Promise.resolve().then(()=>{if($.current)return;let ye=0;for(const Ge of W)if(Ge.index<St){const Dt=L.get(Ge.index);ye+=Ge.value-Dt}const lt=L.updates(W);if($.current||typeof lt!="number")return;ie(lt),k.debug("[VirtualScroll] Updated heights for items",W,"New total height:",lt);const Je=se.current?.getScrollPosition()??pe.current;if(ye!==0){const Ge=Je+ye;C("reconciliation",()=>{T(Ge,ye),u(Ge,{immediate:!0}),De(Je,Ge)}),k.debug("[VirtualScroll] Adjusted scroll for layout shift (auto update)",{from:Je,to:Ge,shiftAmount:ye})}else Je!==pe.current&&u(Je)}),{visibleItems:be,renderAnchor:B}},[C,De,w,it,h,Re,r,L,e,n,s,Gt,Mt,Qe,Zt,T,qt,ht,Rt,ft,u,St]),cr=t.useCallback(c=>{const m=(H??0)>0,b=Math.abs(c-ct),X=m&&b>.5?ct:c,_=gt(X,P.top);if(k.debug("[VirtualScroll] Rendering visible items",()=>({currentScrollPosition:c,effectiveScrollPosition:_,renderingStartIndex:Rt,renderingEndIndex:ht,itemCount:r,viewportSize:ne,callbackThrottleMs:H,diff:b,rawEffectiveScrollPosition:X})),r===0)return Lt;const B=P.top+lr-X,W=L.getTotal(),be=ys(X,W+P.top+P.bottom-ne,ue),Ne=P.bottom>0?N.jsx("div",{className:"aqvs-bottom-inset",style:{top:W-lr,height:P.bottom}},"virtualscroll-bottom-inset"):null;return k.debug("[VirtualScroll] Rendering items",()=>({containerTop:B,snapEdge:be,logicalScrollPosition:ot,resolvedInsets:P,effectiveScrollPosition:_})),N.jsxs(Ts,{translateY:B,snapEdge:be,children:[Lt,Ne]})},[ue,H,r,L,ot,lr,ht,Rt,P,ct,ne,Lt]),rt=t.useMemo(()=>({renderingStartIndex:vt.renderingStartIndex,renderingEndIndex:vt.renderingEndIndex,visibleStartIndex:vt.visibleStartIndex,visibleEndIndex:vt.visibleEndIndex,scrollPosition:ot,totalHeight:L.getTotal()}),[vt,ot,L,h]);t.useEffect(()=>{te.current=rt},[rt]);const[br,xr]=t.useState(""),vr=t.useRef(j);t.useLayoutEffect(()=>{vr.current=j},[j]);const Qt=j?.debounceMs??400,ur=Number.isFinite(Qt)&&Qt>=0,nr=j!==void 0;t.useEffect(()=>{nr&&!ur&&k.warn(`[VirtualScroll] liveRegion.debounceMs must be a finite number >= 0, received ${Qt}. Announcements are disabled.`)},[nr,ur,Qt]),t.useEffect(()=>{if(!(nr&&ur)){xr("");return}const c=setTimeout(()=>{const m=vr.current?.format;if(!m)return;const b=m({visibleStartIndex:St,visibleEndIndex:Pt,itemCount:r});xr(b)},Qt);return()=>clearTimeout(c)},[nr,ur,Qt,St,Pt,r]),t.useImperativeHandle(Z,()=>({getScrollPosition:()=>{const c=se.current?.getScrollPosition();return typeof c=="number"?gt(c,at.current):-1},getContentSize:()=>se.current?.getContentSize()??-1,getViewportSize:()=>se.current?.getViewportSize()??-1,scrollTo:zt,scrollBy:Vt,applyWheel:Ut,scrollToIndex:Ie,getFenwickTreeTotalHeight:()=>L.getTotal(),getFenwickSize:()=>L.getSize(),focusItemAtIndex:pt,getRange:()=>te.current,getScrollAnchor:or,updateItemSize:Fe}),[zt,Vt,Ut,Ie,L,pt,or,Fe]);const _r=L.getTotal()+P.top+P.bottom,Sr=N.jsx(Vn,{ref:se,contentSize:_r,viewportSize:i,onViewportSizeChange:Se,className:o,testId:d,onScroll:Ir,background:y,tapScrollCircleOptions:Ve,inertiaOptions:Le,overscrollBehavior:st,itemCount:r,scrollBarWidth:ge,enableThumbDrag:Ze,enableTrackClick:E,enableArrowButtons:Y,enableArrowButtonTabStops:ae,enablePointerDrag:ce,pointerDragInputs:Be,renderThumbOverlay:oe,wheelSpeedMultiplier:nt,onWheelHorizontal:Q,onPanHorizontal:D,contentInsets:P,contentProps:re,visibleStartIndex:St,visibleEndIndex:Pt,renderOverlay:It,initialScrollPosition:xt.position,locale:q,labels:J,children:cr});return nr?N.jsxs(N.Fragment,{children:[Sr,N.jsx("div",{className:"aqvs-live-region",role:"status","aria-live":"polite","aria-atomic":"true","data-aqvs-live-region":"",children:br})]}):Sr},On=t.forwardRef(Ps),pr=262144,wn=3,Fn=32768,Ur=128,Gr=128,Kr=128,Zr=128,qr=10,ks=(r,e)=>Math.max(1,Math.floor((r??Fn)/Math.max(1,e))),As=(r,e,n,s,i)=>{let a=0,o=0,d=Math.max(0,Math.min(s,n-1));for(;d<n&&a<r&&o<jr;)a+=e(d),o+=1,d+=1;return Math.max(1,o+2*i+2)},zr=(r,e,n)=>{if(!(Number.isInteger(r)&&r>=0&&r<=pr)){const s=e==="row"?"getRowHeight":"getColWidth",i=e==="row"?"rows":"columns";throw new RangeError(`[VirtualGrid] ${s}(${n}) returned ${r} — must be an integer in [0, ${pr}] (0 = hidden). Round fractional sizes to whole pixels and split content larger than ${pr} px across several ${i}: a larger track could push cell positions past the 2^25 px layout-coordinate limit of browsers.`)}return r},Ns=(r,e,n,s,i,a,o,d)=>{const f=_n(r,e,n,s,i,a,o);if(s===0)return{renderingColStart:0,renderingColEnd:0,visibleColStart:0,visibleColEnd:0,colAnchor:0};const g=ee(f.renderingStartIndex,0,s-1),{cumulative:x,currentValue:w}=a.prefixSum(g,{materializeOption:{materialize:!1}}),y=x-w,v=Number.isFinite(y)&&Math.abs(y-d)>Dn?y:d;return{renderingColStart:f.renderingStartIndex,renderingColEnd:f.renderingEndIndex,visibleColStart:f.visibleStartIndex,visibleColEnd:f.visibleEndIndex,colAnchor:v}},Rn=[],zs=(r,e,n,s,i)=>{const a=[],o=[];if(e<r)return{columns:a,widthUpdates:o,truncated:0};const d=s.prefixSum(r,{materializeOption:{materialize:!1}});let f=d.cumulative-d.currentValue,g=0,x=r;for(;x<=e;){if(a.length>=i)return{columns:a,widthUpdates:o,truncated:e-x+1};const w=n(x),y=s.get(x);if(w!==y&&o.push({index:x,value:w}),w>0){a.push({col:x,left:f,width:w}),f+=y,g=0,x+=1;continue}if(f+=y,g+=1,x+=1,g>Er){const v=s.findIndexAtOrAfter(f+.5,{materializeOption:{materialize:!1}});if(v.index===-1||v.index<=x||!Number.isSafeInteger(v.index))break;const A=s.prefixSum(v.index,{materializeOption:{materialize:!1}});f=A.cumulative-A.currentValue,x=v.index,g=0}}return{columns:a,widthUpdates:o,truncated:0}},Vs=(r,e,n)=>{const s=[],i=[];let a=0;for(let o=0;o<r;o+=1){const d=e(o),f=n.get(o);d!==f&&i.push({index:o,value:d}),d>0&&s.push({col:o,left:a,width:d}),a+=f}return{columns:s,widthUpdates:i,width:a}},Ls=(r,e,n,s)=>{const i=[],a=[];let o=0;for(let d=r-e;d<r;d+=1){const f=n(d),g=s.get(d);f!==g&&a.push({index:d,value:f}),f>0&&i.push({col:d,left:o,width:f}),o+=g}return{columns:i,widthUpdates:a,width:o}},Vr=(r,e,n)=>Math.min(r,Math.max(0,n-e)),Ds={renderingColStart:0,renderingColEnd:0,visibleColStart:0,visibleColEnd:0,colAnchor:0,key:"0:0:0"},_s=({rowCount:r,colCount:e,getRowHeight:n,getColWidth:s,getCell:i,getCellKey:a,children:o,getCellProps:d,getRowProps:f,contentProps:g,background:x,contentInsets:w,onRowFocus:y,frozenLeadingCols:v=0,frozenLeadingRows:A=0,frozenTrailingCols:F=0,frozenTrailingRows:H=0,horizontalKeyInputs:le,horizontalKeyStep:Ae,onScroll:z,onRangeChange:U,onRenderTruncated:Q,callbackThrottleMs:D,initialScrollAnchor:V,overscanRows:M=wn,overscanCols:re=wn,viewportSize:j,__maxRenderedCells:q,behaviorOptions:J,scrollBarOptions:Z,liveRegion:ge,locale:Ze,labels:E,className:Y,testId:ae},He)=>{const oe=t.useRef(null),Ve=t.useRef(null),ft=t.useRef(n);ft.current=n;const ce=t.useRef(s);ce.current=s;const Be=J?.resetOnGetColWidthChange===!0,Qe=J?.resetOnGetItemHeightChange===!0?n:null,nt=Be?s:null,Le=t.useCallback(l=>zr(ft.current(l),"row",l),[Qe]),st=t.useCallback(l=>zr(ce.current(l),"col",l),[nt]),it=J?.defaultColWidth,$e=t.useMemo(()=>{if(it!==void 0&&!(Number.isInteger(it)&&it>=0&&it<=pr))throw new RangeError(`[VirtualGrid] behaviorOptions.defaultColWidth must be an integer in [0, ${pr}], received ${it}.`);return{resetOnValueFnChange:Be,baseValue:it}},[Be,it]),fe=nn(e,st,$e),[yt,ne]=t.useState(0);if(!(Number.isInteger(v)&&v>=0&&v<=Ur))throw new RangeError(`[VirtualGrid] frozenLeadingCols must be an integer in [0, ${Ur}], received ${v}.`);const Se=Math.min(v,e),se=t.useRef(0);if(!(Number.isInteger(F)&&F>=0&&F<=Kr))throw new RangeError(`[VirtualGrid] frozenTrailingCols must be an integer in [0, ${Kr}], received ${F}.`);const te=Math.min(F,e-Se),We=t.useRef(0);if(!(Number.isInteger(A)&&A>=0&&A<=Gr))throw new RangeError(`[VirtualGrid] frozenLeadingRows must be an integer in [0, ${Gr}], received ${A}.`);const $=Math.min(A,r);if(!(Number.isInteger(H)&&H>=0&&H<=Zr))throw new RangeError(`[VirtualGrid] frozenTrailingRows must be an integer in [0, ${Zr}], received ${H}.`);const Xe=Math.min(H,r-$),P=Math.max(0,r-$-Xe),Te=t.useRef(!1),bt=t.useRef(0),L=t.useRef(0),[xt,ct]=t.useState(0),{frozenRows:kt,frozenHeight:h}=t.useMemo(()=>{if($===0)return{frozenRows:[],frozenHeight:0};const l=[];let p=0;for(let R=0;R<$;R+=1){const O=Le(R);O>0&&l.push({row:R,top:p,height:O}),p+=O}return{frozenRows:l,frozenHeight:p}},[$,xt,Le]);bt.current=h;const[ie,ue]=t.useState(0),{trailingRows:G,trailingHeight:K}=t.useMemo(()=>{if(Xe===0)return{trailingRows:[],trailingHeight:0};const l=[];let p=0;for(let R=r-Xe;R<r;R+=1){const O=Le(R);O>0&&l.push({row:R,top:p,height:O}),p+=O}return{trailingRows:l,trailingHeight:p}},[Xe,r,ie,Le]);L.current=K;const xe=t.useCallback(l=>Le(l+$),[Le,$]),De=t.useRef(y);De.current=y;const _e=y!==void 0,pe=t.useMemo(()=>_e?l=>De.current?.(l+$):void 0,[$,_e]),qe=h,Ye=K,[ut,dt]=t.useState($),je=t.useRef(null),At=t.useRef(!1);if(ut!==$){dt($),At.current=!0;const l=oe.current?.getScrollAnchor()??null;je.current=l===null?null:{row:l.index+ut,offsetPx:l.offsetPx}}const Ee=t.useRef(0),me=t.useRef(0),Me=t.useRef(!1),[ve,S]=t.useState(Ds),I=t.useRef(ve);I.current=ve;const tt=t.useRef(0),[Ue,Oe]=t.useState(()=>fe.getTotal()??0),Pe=t.useRef(Ue);Pe.current=Ue;const we=t.useCallback(l=>{typeof l=="number"&&Number.isFinite(l)&&(Pe.current=l,Oe(l))},[]);t.useLayoutEffect(()=>{const l=fe.getTotal();typeof l=="number"&&Number.isFinite(l)&&l!==Pe.current&&we(l)});const Ce=Z?.width??12,Tt=j===void 0?null:{width:Math.max(0,Math.round(j.width)-Ce),height:Math.max(0,Math.round(j.height)-Ce)},[Xt,Ot]=t.useState({width:0,height:0}),ke=Tt??Xt,Et=t.useRef(ke);Et.current=ke;const ar=ke.height>0&&ke.height-h-K<=0;Te.current=ar;const rr=Tt!==null;t.useLayoutEffect(()=>{if(rr)return;const l=Ve.current;if(l===null)return;const p=()=>{const O=Math.max(0,Math.round(l.clientWidth)-Ce),de=Math.max(0,Math.round(l.clientHeight)-Ce);Ot(et=>et.width===O&&et.height===de?et:{width:O,height:de})};p();const R=new ResizeObserver(p);return R.observe(l),()=>R.disconnect()},[Ce,rr]);const at=t.useCallback(()=>{const l=Ve.current;l!==null&&l.style.setProperty("--aqvs-grid-hx-residual",`${tt.current-Ee.current}px`)},[]),Nt=t.useCallback(()=>Math.max(0,Et.current.width-se.current-We.current),[]),qt=t.useCallback(()=>Math.max(0,Pe.current-se.current-We.current-Nt()),[Nt]),Yt=t.useCallback(()=>{const l=Nt(),p=Ns(se.current+Ee.current,l,re,e,st,fe,Pe.current,I.current.colAnchor);if(Se>0&&(p.renderingColStart=Math.max(p.renderingColStart,Se),p.visibleColStart=Math.max(p.visibleColStart,Se)),te>0){const O=e-te-1;p.renderingColEnd=Math.min(p.renderingColEnd,O),p.visibleColEnd=Math.min(p.visibleColEnd,O)}(Se>0||te>0)&&(l<=0||p.renderingColStart>p.renderingColEnd)&&(p.renderingColStart=e,p.renderingColEnd=e-1,p.visibleColStart=e,p.visibleColEnd=e-1);const R=`${p.renderingColStart}:${p.renderingColEnd}:${p.colAnchor}`;R!==I.current.key&&S({...p,key:R})},[re,e,st,fe,Se,te,Nt]),[Bt,Kt]=t.useState(0),Ft=t.useRef(null),Wt=t.useCallback(()=>{Ft.current===null&&(Ft.current=requestAnimationFrame(()=>{Ft.current=null,Kt(Ee.current)}))},[]);t.useEffect(()=>()=>{Ft.current!==null&&cancelAnimationFrame(Ft.current)},[]);const jt=t.useRef(z);jt.current=z;const u=t.useRef(U);u.current=U;const T=t.useRef(Q);T.current=Q;const C=t.useRef(null),[he,Fe]=t.useState(null),[Ie,wt]=t.useState(ke.height);Ie!==ke.height&&(wt(ke.height),Fe(null));const mt=V===void 0||r===0?0:ee(Math.trunc(V.row),0,r-1),or=t.useMemo(()=>{const l=C.current?.renderingStartIndex??mt;return As(Math.max(0,ke.height-bt.current-L.current),Le,r,l,M)},[ke.height,Le,r,mt,M,qe,Ye]),zt=he??or,Vt=t.useCallback(()=>{const l=C.current;if(l===null)return null;const p=I.current;return{renderingRowStart:l.renderingStartIndex,renderingRowEnd:l.renderingEndIndex,visibleRowStart:l.visibleStartIndex,visibleRowEnd:l.visibleEndIndex,renderingColStart:p.renderingColStart,renderingColEnd:p.renderingColEnd,visibleColStart:p.visibleColStart,visibleColEnd:p.visibleColEnd,scrollX:Ee.current,scrollY:me.current,totalWidth:Pe.current,totalHeight:l.totalHeight+bt.current+L.current}},[]),Ut=t.useCallback(()=>{const l=Vt();l!==null&&u.current?.(l)},[Vt]),Ir=t.useCallback(l=>{const p=qt(),R=ee(l,0,p);return R!==Ee.current&&(Ee.current=R,at(),Yt(),Wt(),jt.current?.({x:R,y:me.current})),R},[at,Yt,Wt,qt]),ot=t.useRef(Ir);ot.current=Ir,t.useLayoutEffect(()=>{tt.current=ve.colAnchor,at(),Ut()},[ve,at,Ut]),t.useLayoutEffect(()=>{C.current!==null&&Ut()},[h,K,Ut]);const vt=t.useRef(null),Rt=t.useCallback(l=>{const p=ee(l.col,0,Math.max(0,e-1)),R=fe.prefixSum(p,{materializeOption:{materialize:!1}}),O=R.cumulative-R.currentValue,de=R.currentValue,et=Nt();return(l.alignX==="end"?O+de-se.current-et:l.alignX==="center"?O+de/2-se.current-et/2:O-se.current)+l.offsetX},[fe,e,Nt]),ht=t.useRef(null),St=t.useCallback(()=>{const l=ht.current;ht.current=null,!(l===null||l.length===0)&&(we(fe.updates(l)),ne(p=>p+1))},[fe,we]),Pt=t.useRef({count:0,warned:!1}),{frozenColumns:pt,frozenWidth:Mt}=t.useMemo(()=>{if(Se===0)return Pt.current.count=0,Pt.current.warned=!1,{frozenColumns:Rn,frozenWidth:0};const{columns:l,widthUpdates:p,width:R}=Vs(Se,st,fe);if(p.length>0){const O=Pt.current;O.count>=qr?O.warned||(O.warned=!0,k.warn("[VirtualGrid] getColWidth keeps disagreeing with its own previous values inside the frozen band; width self-heal is suspended until a converged pass re-arms it (unstable accessor).",{frozenCols:Se,pendingUpdates:p.length})):(O.count+=1,ht.current=[...ht.current??[],...p],Promise.resolve().then(St))}else Pt.current.count=0,Pt.current.warned=!1;return{frozenColumns:l,frozenWidth:R}},[Se,yt,st,fe,St]);se.current=Mt,t.useLayoutEffect(()=>{Se>0?Ve.current?.style.setProperty("--aqvs-grid-frozen-width",`${Mt}px`):Ve.current?.style.removeProperty("--aqvs-grid-frozen-width")},[Mt,Se]);const Zt=t.useRef({count:0,warned:!1}),{trailingColumns:Gt,trailingWidth:It}=t.useMemo(()=>{if(te===0)return Zt.current.count=0,Zt.current.warned=!1,{trailingColumns:Rn,trailingWidth:0};const{columns:l,widthUpdates:p,width:R}=Ls(e,te,st,fe);if(p.length>0){const O=Zt.current;O.count>=qr?O.warned||(O.warned=!0,k.warn("[VirtualGrid] getColWidth keeps disagreeing with its own previous values inside the trailing band; width self-heal is suspended until a converged pass re-arms it (unstable accessor).",{trailingCols:te,pendingUpdates:p.length})):(O.count+=1,ht.current=[...ht.current??[],...p],Promise.resolve().then(St))}else Zt.current.count=0,Zt.current.warned=!1;return{trailingColumns:l,trailingWidth:R}},[te,e,yt,st,fe,St]);We.current=It,t.useLayoutEffect(()=>{te>0?Ve.current?.style.setProperty("--aqvs-grid-trailing-width",`${It}px`):Ve.current?.style.removeProperty("--aqvs-grid-trailing-width")},[It,te]);const gr=t.useMemo(()=>({...Z,tapScrollCircleOptions:{...Z?.tapScrollCircleOptions,enabled:!1}}),[Z]),Lt=Z?.tapScrollCircleOptions,lr=typeof Lt?.maxSpeedMultiplier=="number",cr=t.useMemo(()=>({...Lt,offsetX:Lt?.offsetX===void 0?gn:Lt.offsetX,offsetY:Lt?.offsetY===void 0?gn:Lt.offsetY}),[Lt]),rt=t.useMemo(()=>Wr(cr,Math.max(0,e-Se-te)),[cr,e,Se,te]),br=t.useMemo(()=>Wr(cr,P),[cr,P]),xr=rt.enabled,vr=Math.max(rt.maxVisualDistance,1),Qt={viewportSize:Math.max(0,ke.width-Mt-It),minSpeedMultiplier:rt.minSpeedMultiplier,maxSpeedMultiplier:rt.maxSpeedMultiplier,hasCustomMaxSpeedMultiplier:lr,curve:rt.maxSpeedCurve},ur={viewportSize:Math.max(0,ke.height-h-K),minSpeedMultiplier:br.minSpeedMultiplier,maxSpeedMultiplier:br.maxSpeedMultiplier,hasCustomMaxSpeedMultiplier:lr,curve:br.maxSpeedCurve},nr=t.useCallback(()=>Ee.current,[]),_r=t.useCallback(()=>{const l=oe.current;if(l===null)return me.current;const p=l.getScrollPosition();return p<0?me.current:p},[]),Sr=t.useCallback(()=>{const l=oe.current;return l===null?0:Math.max(0,Math.max(0,l.getContentSize())-Math.max(0,l.getViewportSize()))},[]),c=t.useCallback(l=>{const p=oe.current;if(p===null)return me.current;const R=p.scrollBy(l);return me.current=R,R},[]),m=qt()>0||Sr()>0,b=`${Ue}:${Mt}:${It}:${ke.width}:${ve.key}`,X=`${r}:${he??-1}:${h}:${K}:${ke.height}`,{isTapActive:_,handleTapCircleDragChange:B,tapCircleHandleRef:W}=Ms({enabled:xr&&m,maxDistance:vr,xSpeedParams:Qt,ySpeedParams:ur,applyHxRef:ot,getHx:nr,getMaxHx:qt,applyVy:c,getVy:_r,getMaxVy:Sr,pendingColAnchorRef:vt,xExtentFreshness:b,yExtentFreshness:X}),be=t.useMemo(()=>ee((_?1:.8)*rt.opacity,0,1),[_,rt.opacity]);t.useLayoutEffect(()=>{const l=vt.current;l===null?ot.current(Ee.current):ot.current(Rt(l)),Yt()},[ke.width,Ue,yt,Mt,It,Yt,Rt]);const Ne=t.useRef(!1);t.useLayoutEffect(()=>{if(Ne.current||V===void 0||e===0)return;Ne.current=!0;const l=ee(Math.trunc(V.col),0,e-1);if(l<Se||l>=e-te)return;const p={col:l,alignX:"start",offsetX:Math.max(0,V.offsetX)};vt.current=p,ot.current(Rt(p))},[V,e,Rt,Se,te]);const ze=t.useCallback(l=>{me.current=l,Me.current=!0,jt.current?.({x:Ee.current,y:l})},[]),ye=t.useCallback(l=>{if(P===0||Te.current)C.current={renderingStartIndex:r,renderingEndIndex:r-1,visibleStartIndex:r,visibleEndIndex:r-1,scrollPosition:0,totalHeight:P===0?0:l.totalHeight},me.current=0;else{const p=$;C.current={renderingStartIndex:l.renderingStartIndex+p,renderingEndIndex:l.renderingEndIndex+p,visibleStartIndex:l.visibleStartIndex+p,visibleEndIndex:l.visibleEndIndex+p,scrollPosition:l.scrollPosition,totalHeight:l.totalHeight},me.current=l.scrollPosition}Fe(p=>{const R=Math.max(1,l.renderingEndIndex-l.renderingStartIndex+1);return R===p?p:R}),Ut()},[Ut,$,P,r]),lt=t.useCallback(l=>{vt.current=null,ot.current(Ee.current+l)},[]),Je=ks(q,zt+kt.length+G.length),Ge=t.useRef({count:0,warned:!1}),{placedColumns:Dt,truncatedCols:Jt}=t.useMemo(()=>{const l=Math.max(0,ke.width-Mt-It);if(e===0||l<=0)return{placedColumns:[],truncatedCols:0};if(ve.renderingColStart>ve.renderingColEnd)return{placedColumns:[],truncatedCols:0};const p=Math.max(1,Je-pt.length-Gt.length),{columns:R,widthUpdates:O,truncated:de}=zs(ee(ve.renderingColStart,0,e-1),ee(ve.renderingColEnd,0,e-1),st,fe,p);if(O.length>0){const et=Ge.current;et.count>=qr?et.warned||(et.warned=!0,k.warn("[VirtualGrid] getColWidth keeps disagreeing with its own previous values; width self-heal is suspended until a converged (zero-deviation) pass re-arms it (unstable accessor — the accessor must be index-stable while the ordering is unchanged).",{window:ve.key,pendingUpdates:O.length})):(et.count+=1,ht.current=[...ht.current??[],...O],Promise.resolve().then(St))}else Ge.current.count=0,Ge.current.warned=!1;return{placedColumns:R,truncatedCols:de}},[ve,e,ke.width,Mt,It,pt.length,Gt.length,yt,st,fe,Je,St]),Cr=t.useRef("");t.useEffect(()=>{if(Jt>0){const l=`${ve.key}:${Jt}`;l!==Cr.current&&(Cr.current=l,T.current?.({renderedCells:(Dt.length+pt.length+Gt.length)*(zt+kt.length+G.length),droppedCols:Jt}))}},[Jt,ve.key,Dt.length,pt.length,Gt.length,zt,kt.length,G.length]);const sn=ve.colAnchor,Or=t.useCallback(l=>{const p=f?.(l),R=Le(l)===0,O=R?null:Dt.map(({col:de,left:et,width:fr})=>{const _t=d?.(l,de),wr={..._t?.style,left:et-sn,width:fr};return t.createElement("div",{..._t,key:a?a(l,de):de,className:Ct.twMerge("aqvs-grid-cell",_t?.className),style:wr},o(i(l,de),l,de))});return Se===0&&te===0?N.jsx("div",{...p,className:Ct.twMerge("aqvs-grid-row",p?.className),style:p?.style,children:O}):N.jsxs("div",{...p,"data-aqvs-frozen-row":Se>0?"":void 0,className:Ct.twMerge("aqvs-grid-row aqvs-grid-row-frozen-host",p?.className),style:p?.style,children:[R?null:pt.map(({col:de,left:et,width:fr})=>{const _t=d?.(l,de),wr={..._t?.style,left:et,width:fr};return t.createElement("div",{..._t,"data-aqvs-frozen-cell":"",key:a?a(l,de):de,className:Ct.twMerge("aqvs-grid-cell",_t?.className),style:wr},o(i(l,de),l,de))}),R?null:N.jsx("div",{className:"aqvs-grid-row-scroll",children:N.jsx("div",{className:"aqvs-grid-row-scroll-inner",children:O})}),R||te===0?null:N.jsx("div",{className:"aqvs-grid-row-trailing",children:N.jsx("div",{className:"aqvs-grid-row-trailing-inner",children:Gt.map(({col:de,left:et,width:fr})=>{const _t=d?.(l,de),wr={..._t?.style,left:et,width:fr};return t.createElement("div",{..._t,"data-aqvs-trailing-cell":"",key:a?a(l,de):de,className:Ct.twMerge("aqvs-grid-cell",_t?.className),style:wr},o(i(l,de),l,de))})})})]})},[Dt,pt,Gt,Se,te,sn,f,d,a,i,o,Le]),[Hn,$n]=t.useState(""),dr=t.useRef(null),an=t.useRef(ge);an.current=ge;const Pr=t.useCallback(()=>{const l=an.current;if(l===void 0)return;const p=l.debounceMs??400;Number.isFinite(p)&&p>=0&&(dr.current!==null&&window.clearTimeout(dr.current),dr.current=window.setTimeout(()=>{dr.current=null;const R=Vt();R!==null&&$n(O=>{const de=l.buildMessage(R);return de===O?O:de})},p))},[Vt]),kr=ge?.debounceMs??400,on=Number.isFinite(kr)&&kr>=0,ln=ge!==void 0;t.useEffect(()=>{ln&&!on&&k.warn(`[VirtualGrid] liveRegion.debounceMs must be a finite number >= 0, received ${kr}. Announcements are disabled.`)},[ln,on,kr]),t.useEffect(()=>()=>{dr.current!==null&&window.clearTimeout(dr.current)},[]),t.useEffect(()=>{Pr()},[ve,Pr]);const Xn=t.useCallback(l=>{ye(l),Pr()},[ye,Pr]);return t.useImperativeHandle(He,()=>({scrollTo:l=>{const p=oe.current;let R=me.current;l.y!==void 0&&p!==null&&(p.scrollTo(l.y),R=p.getScrollPosition(),me.current=R);let O=Ee.current;return l.x!==void 0&&(vt.current=null,O=ot.current(l.x)),{x:O,y:R}},scrollBy:l=>{const p=oe.current;let R=me.current;l.y!==void 0&&l.y!==0&&p!==null&&(R=p.scrollBy(l.y),me.current=R);let O=Ee.current;return l.x!==void 0&&l.x!==0&&(vt.current=null,O=ot.current(Ee.current+l.x)),{x:O,y:R}},scrollToCell:(l,p,R)=>{const O=oe.current;if(O!==null&&r>0){const de=ee(Math.trunc(l),0,r-1);de>=$&&de<r-Xe&&O.scrollToIndex(de-$,{align:R?.alignY??"top",offset:R?.offsetY})}if(e>0){const de=ee(Math.trunc(p),0,e-1);if(de>=Se&&de<e-te){const et={col:de,alignX:R?.alignX??"start",offsetX:R?.offsetX??0};vt.current=et,ot.current(Rt(et))}}},getScrollPosition:()=>Me.current||oe.current!==null?{x:Ee.current,y:oe.current?.getScrollPosition()??me.current}:{x:-1,y:-1},getScrollAnchor:()=>{if(r===0||e===0)return null;const l=oe.current?.getScrollAnchor()??null;if(l===null)return null;const p=se.current+Ee.current,R=fe.findIndexAtOrAfter(p,{materializeOption:{materialize:!1}});if(R.index===-1)return{row:l.index+$,col:e-1,offsetX:0,offsetY:l.offsetPx};if(R.cumulative===p)return{row:l.index+$,col:ee(R.index+1,0,e-1),offsetX:0,offsetY:l.offsetPx};const O=(R.cumulative??0)-(R.currentValue??0);return{row:l.index+$,col:R.index,offsetX:Math.max(0,p-O),offsetY:l.offsetPx}},getViewportSize:()=>({width:Et.current.width,height:Et.current.height}),getContentSize:()=>({width:Pe.current,height:oe.current===null?0:bt.current+L.current+Math.max(0,oe.current.getContentSize())}),getRange:Vt,updateRowSize:(l,p)=>{zr(p,"row",l),Math.trunc(l)<$?ct(R=>R+1):Xe>0&&Math.trunc(l)>=r-Xe?ue(R=>R+1):oe.current?.updateItemSize(Math.trunc(l)-$,p)},updateColSize:(l,p)=>{zr(p,"col",l),we(fe.update(ee(Math.trunc(l),0,Math.max(0,e-1)),p)),ne(R=>R+1)},getFrozenSize:()=>({cols:Se,width:se.current,rows:$,height:bt.current,trailingCols:te,trailingRows:Xe,trailingWidth:We.current,trailingHeight:L.current,trailingVisibleWidth:Vr(We.current,se.current,Et.current.width),trailingVisibleHeight:Vr(L.current,bt.current,Et.current.height)}),applyWheel:l=>oe.current?.applyWheel(l)??!1,focusRowAtIndex:(l,p)=>{const R=Math.trunc(l);R<$?Ve.current?.querySelector(`[data-aqvs-frozen-band-row="${R}"]`)?.focus():Xe>0&&R>=r-Xe?Ve.current?.querySelector(`[data-aqvs-trailing-band-row="${R}"]`)?.focus():oe.current?.focusItemAtIndex(R-$,p)}}),[r,e,fe,Vt,we,Rt,Se,$,te,Xe]),N.jsxs("div",{ref:Ve,className:Ct.twMerge("aqvs-grid",$>0?"aqvs-grid-has-frozen-rows":"",Xe>0?"aqvs-grid-has-trailing-rows":"",Y),"data-testid":ae,children:[$>0?N.jsx("div",{className:"aqvs-grid-frozen-rows",style:{height:h},"data-testid":ae?`${ae}-frozen-rows`:void 0,children:kt.map(({row:l,top:p,height:R})=>N.jsx("div",{"data-aqvs-frozen-band-row":l,className:"aqvs-grid-frozen-band-row",style:{top:p,height:R,right:Ce},tabIndex:-1,onFocus:()=>y?.(l),children:Or(l)},l))}):null,N.jsx("div",{className:"aqvs-grid-main","data-testid":ae?`${ae}-main`:void 0,children:N.jsx(On,{ref:oe,itemCount:ar?0:P,getItem:l=>l+$,getItemKey:l=>l+$,getItemHeight:xe,overscanCount:M,viewportSize:ke.height>0?Math.max(0,ke.height-h-K):void 0,callbackThrottleMs:D,behaviorOptions:J,scrollBarOptions:gr,contentProps:g,background:x,contentInsets:w,onItemFocus:pe,horizontalKeyInputs:le,horizontalKeyStep:Ae,initialScrollAnchor:At.current?je.current!==null&&je.current.row>=$&&P>0?{index:je.current.row-$,offsetPx:je.current.offsetPx}:void 0:V!==void 0&&P>0&&Math.trunc(V.row)>=$&&Math.trunc(V.row)<r-Xe?{index:Math.trunc(V.row)-$,offsetPx:V.offsetY}:void 0,onScroll:ze,onRangeChange:Xn,onWheelHorizontal:lt,onPanHorizontal:lt,locale:Ze,labels:E,testId:ae?`${ae}-rows`:void 0,children:Or},$)}),Xe>0?N.jsx("div",{className:"aqvs-grid-trailing-rows",style:{height:Vr(K,h,ke.height)},"data-testid":ae?`${ae}-trailing-rows`:void 0,children:N.jsx("div",{className:"aqvs-grid-trailing-rows-inner",style:{height:K},children:G.map(({row:l,top:p,height:R})=>N.jsx("div",{"data-aqvs-trailing-band-row":l,className:"aqvs-grid-trailing-band-row",style:{top:p,height:R,right:Ce},tabIndex:-1,onFocus:()=>y?.(l),children:Or(l)},l))})}):null,N.jsx("div",{className:"aqvs-grid-hbar-strip",style:{height:Ce,paddingRight:te>0?Ce+Vr(It,Mt,ke.width):Ce},"data-testid":ae?`${ae}-hbar`:void 0,children:N.jsx(rn,{horizontal:!0,contentSize:Math.max(0,Ue-Mt-It),viewportSize:Math.max(0,ke.width-Mt-It),scrollPosition:Bt,itemCount:Math.max(0,e-Se-te),tapScrollCircleOptions:Z?.tapScrollCircleOptions,onScroll:(l,p)=>(vt.current=null,ot.current(typeof l=="function"?l(p??Ee.current):l)),enableThumbDrag:Z?.enableThumbDrag,enableTrackClick:Z?.enableTrackClick,enableArrowButtons:Z?.enableArrowButtons,enableArrowButtonTabStops:Z?.enableArrowButtonTabStops,scrollBarWidth:Ce,locale:Ze,labels:E})}),xr&&m&&N.jsx("div",{className:"aqvs-grid-tap-circle-wrapper","data-aqvs-grid-tap-circle":"",style:{left:`min(calc(100% - ${Ce+rt.size}px), max(calc(100% - ${Ce}px + ${rt.offsetX}px), calc(75% - ${rt.size/2}px)))`,top:`min(calc(100% - ${Ce+rt.size}px), max(calc(100% - ${Ce}px + ${rt.offsetY}px), calc(75% - ${rt.size/2}px)))`},children:N.jsx(en,{axis:"xy",ref:W,className:Ct.twMerge("aqvs-grid-tap-circle",rt.className),size:rt.size,maxVisualDistance:vr,opacity:be,renderVisual:rt.renderVisual,onDragChange:B})}),ge!==void 0?N.jsx("div",{className:"aqvs-grid-live-region","aria-live":"polite","data-testid":ae?`${ae}-live`:void 0,children:Hn}):null]})},Os=t.forwardRef(_s);exports.FenwickMapTree=$t;exports.MAX_FROZEN_LEADING_COLS=Ur;exports.MAX_FROZEN_LEADING_ROWS=Gr;exports.MAX_FROZEN_TRAILING_COLS=Kr;exports.MAX_FROZEN_TRAILING_ROWS=Zr;exports.MAX_RENDERED_CELLS=Fn;exports.MAX_TRACK_SIZE=pr;exports.ScrollBar=rn;exports.ScrollPane=Vn;exports.TAP_SCROLL_SPEED_DEFAULTS=tn;exports.VIRTUAL_SCROLL_LABEL_CATALOGS=En;exports.VIRTUAL_SCROLL_LABEL_KEYS=Lr;exports.VIRTUAL_SCROLL_LOCALES=Qr;exports.VirtualGrid=Os;exports.VirtualScroll=On;exports.computeAutoTapScrollMaxSpeedMultiplier=An;exports.computeTapScrollSpeed=Dr;exports.computeTapScrollVelocity=Nn;exports.createResidualQuantizer=us;exports.minmax=ee;exports.resolveVirtualScrollLabels=Jr;exports.resolveVirtualScrollLocale=In;exports.tapScrollCircleSampleVisual=gs;exports.useFenwickMapTree=nn;exports.useHeightCache=ws;exports.useLruCache=Ln;exports.useWheelBridge=Rs;