@aiquants/virtualscroll 1.22.0 → 1.22.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/dist/ScrollBar.d.ts.map +1 -1
- package/dist/ScrollPane.d.ts.map +1 -1
- package/dist/TapScrollCircle.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +986 -972
- package/package.json +1 -1
- package/src/ScrollBar.tsx +7 -0
- package/src/ScrollPane.tsx +134 -5
- package/src/TapScrollCircle.tsx +10 -0
- package/dist/_headFenwick.d.cts +0 -450
- package/dist/_headFenwick.d.ts +0 -451
- package/dist/_headFenwick.d.ts.map +0 -1
package/dist/ScrollBar.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollBar.d.ts","sourceRoot":"","sources":["../src/ScrollBar.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ScrollBar.d.ts","sourceRoot":"","sources":["../src/ScrollBar.tsx"],"names":[],"mappings":"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"}
|
package/dist/ScrollPane.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollPane.d.ts","sourceRoot":"","sources":["../src/ScrollPane.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAa,KAAK,yBAAyB,EAAE,KAAK,gCAAgC,EAA2B,MAAM,iBAAiB,CAAA;AAG3I;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG;IAClC,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,MAAM,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,eAAe,GAAG;IAC1B;;;;;;OAMG;IACH,QAAQ,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAA;IACrD,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAA;IACnB,gDAAgD;IAChD,YAAY,EAAE,MAAM,CAAA;IACpB,+CAA+C;IAC/C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,iFAAiF;IACjF,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,6GAA6G;IAC7G,QAAQ,CAAC,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAA;IACjE,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+LAA+L;IAC/L,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,2DAA2D;IAC3D,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAA;IAC3B,wFAAwF;IACxF,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAC5B,6DAA6D;IAC7D,sBAAsB,CAAC,EAAE,yBAAyB,CAAA;IAClD,+DAA+D;IAC/D,cAAc,CAAC,EAAE,wBAAwB,CAAA;IACzC,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,mFAAmF;IACnF,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,uFAAuF;IACvF,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B;;;;;;;;;;;;;;OAcG;IACH,iBAAiB,CAAC,EAAE,SAAS,CAAC,OAAO,GAAG,KAAK,GAAG,OAAO,CAAC,EAAE,CAAA;IAC1D,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,gCAAgC,KAAK,KAAK,CAAC,SAAS,CAAA;IACjF,qGAAqG;IACrG,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B;;;;;;;OAOG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC5C,4EAA4E;IAC5E,aAAa,CAAC,EAAE,uBAAuB,CAAA;IACvC,+DAA+D;IAC/D,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,8DAA8D;IAC9D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iGAAiG;IACjG,aAAa,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAA;IACrC,6CAA6C;IAC7C,qBAAqB,CAAC,EAAE,MAAM,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACnC,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,uGAAuG;IACvG,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,uEAAuE;IACvE,sBAAsB,CAAC,EAAE,MAAM,CAAA;CAClC,CAAA;
|
|
1
|
+
{"version":3,"file":"ScrollPane.d.ts","sourceRoot":"","sources":["../src/ScrollPane.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TapScrollCircle.d.ts","sourceRoot":"","sources":["../src/TapScrollCircle.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAqC,MAAM,OAAO,CAAA;AAIxF,MAAM,MAAM,wBAAwB,GAAG;IACnC,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAA;IACf,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAA;IACf,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,4EAA4E;IAC5E,YAAY,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAA;IACvD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,SAAS,CAAA;CAClE,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;OAIG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB;;;;OAIG;IACH,UAAU,EAAE,MAAM,cAAc,GAAG,IAAI,CAAA;CAC1C,CAAA;AAcD,MAAM,MAAM,0BAA0B,GAAG;IACrC,yDAAyD;IACzD,SAAS,EAAE,wBAAwB,CAAA;IACnC,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAgCD;;;GAGG;AACH,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"TapScrollCircle.d.ts","sourceRoot":"","sources":["../src/TapScrollCircle.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAqC,MAAM,OAAO,CAAA;AAIxF,MAAM,MAAM,wBAAwB,GAAG;IACnC,mEAAmE;IACnE,MAAM,EAAE,OAAO,CAAA;IACf,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAA;IACf,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAA;IACf,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAA;IAChB,+DAA+D;IAC/D,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IACrB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IAC/B,4EAA4E;IAC5E,YAAY,EAAE,CAAC,KAAK,EAAE,wBAAwB,KAAK,IAAI,CAAA;IACvD,0DAA0D;IAC1D,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,sEAAsE;IACtE,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,gDAAgD;IAChD,KAAK,CAAC,EAAE,aAAa,CAAA;IACrB,8DAA8D;IAC9D,OAAO,EAAE,MAAM,CAAA;IACf,8EAA8E;IAC9E,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,SAAS,CAAA;CAClE,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAChC;;;;OAIG;IACH,KAAK,EAAE,MAAM,IAAI,CAAA;IACjB;;;;OAIG;IACH,UAAU,EAAE,MAAM,cAAc,GAAG,IAAI,CAAA;CAC1C,CAAA;AAcD,MAAM,MAAM,0BAA0B,GAAG;IACrC,yDAAyD;IACzD,SAAS,EAAE,wBAAwB,CAAA;IACnC,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,kDAAkD;IAClD,IAAI,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,OAAO,EAAE,MAAM,CAAA;CAClB,CAAA;AAgCD;;;GAGG;AACH,eAAO,MAAM,eAAe,mHA+P3B,CAAA"}
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("react/jsx-runtime"),r=require("react"),it=require("tailwind-merge");class y{level;prefix;impl;constructor(e=2,t="[virtualscroll]",n=console){this.level=e,this.prefix=t,this.impl=n}static instance=new y(2,"[virtualscroll]");static setLevel(e){y.instance.setLevel(e)}setLevel(e){this.level=e}static setImplementation(e){y.instance.setImplementation(e)}setImplementation(e){this.impl=e}static setPrefix(e){y.instance.setPrefix(e)}setPrefix(e){this.prefix=e}static isEnabled(e){return y.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,...t){y.instance.debug(e,...t)}debug(e,...t){this.level<=0&&this.impl.debug(...this.formatMessage(y.resolveLazy(e)),...t.map(y.resolveLazy))}static info(e,...t){y.instance.info(e,...t)}info(e,...t){this.level<=1&&this.impl.info(...this.formatMessage(y.resolveLazy(e)),...t.map(y.resolveLazy))}static warn(e,...t){y.instance.warn(e,...t)}warn(e,...t){this.level<=2&&this.impl.warn(...this.formatMessage(y.resolveLazy(e)),...t.map(y.resolveLazy))}static error(e,...t){y.instance.error(e,...t)}error(e,...t){this.level<=3&&this.impl.error(...this.formatMessage(y.resolveLazy(e)),...t.map(y.resolveLazy))}}const Lt={active:!1,offsetX:0,offsetY:0,distance:0,direction:0,pointerId:null},wt=6,Wt=8,Gt=({dragState:s,normalizedDistance:e})=>{const t=1+e*.18,n=.16+e*.24,i=.38+e*.28,a=s.active?"80ms ease-out":"220ms ease";return z.jsxs(z.Fragment,{children:[z.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,${n})`,transform:`scale(${t})`,transition:`${a}, ${s.active?"80ms":"260ms"} box-shadow ease`}}),z.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:s.active?"120ms opacity ease-out":"220ms opacity ease"}})]})},qt=r.memo(r.forwardRef(({onDragChange:s,className:e,maxVisualDistance:t=160,size:n=40,style:i,opacity:a=1,renderVisual:c},u)=>{const[d,I]=r.useState(Lt),S=r.useRef(null),M=r.useRef(null),w=r.useRef({x:0,y:0}),g=r.useRef(null),D=r.useRef(0),F=r.useCallback(h=>{I(h),s(h)},[s]),K=r.useCallback((h,X,Se=!1)=>{const{x:Pe,y:G}=w.current,L=h-Pe,Ce=X-G,j=Math.abs(Ce),ye=j<wt?0:Ce<0?-1:1,R=D.current;let Oe=ye;const Ye=wt+Wt;ye===0?R!==0&&j<Ye?Oe=R:(Oe=0,Se||(D.current=0)):ye!==R&&R!==0&&j<Ye?Oe=R:D.current=ye,F({active:Se||j>=wt,offsetX:L,offsetY:Ce,distance:j,direction:Oe,pointerId:S.current})},[F]),le=r.useCallback(h=>{if(h===null)return;const X=g.current;X?.hasPointerCapture(h)&&X.releasePointerCapture(h)},[]),J=r.useCallback((h=!1)=>{h&&le(S.current),S.current=null,M.current=null,D.current=0,F(Lt)},[F,le]),Q=r.useCallback(h=>{if(S.current!==null&&S.current!==h.pointerId){M.current={pointerId:h.pointerId,clientX:h.clientX,clientY:h.clientY},h.preventDefault(),h.stopPropagation();return}h.preventDefault(),h.stopPropagation();const X=g.current??h.currentTarget,{left:Se,top:Pe,width:G,height:L}=X.getBoundingClientRect();w.current={x:Se+G/2,y:Pe+L/2},S.current=h.pointerId;try{X.setPointerCapture(h.pointerId)}catch{}K(h.clientX,h.clientY,!0)},[K]),fe=r.useCallback(h=>{if(S.current!==h.pointerId){M.current!==null&&M.current.pointerId===h.pointerId&&(M.current={pointerId:h.pointerId,clientX:h.clientX,clientY:h.clientY});return}h.preventDefault(),K(h.clientX,h.clientY)},[K]),xe=r.useCallback(h=>{if(S.current!==h.pointerId){M.current!==null&&M.current.pointerId===h.pointerId&&(M.current=null);return}h.preventDefault(),h.stopPropagation();const X=M.current;if(M.current=null,X!==null){le(h.pointerId);const Se=g.current;let Pe=!0;if(Se!==null&&typeof Se.setPointerCapture=="function")try{Se.setPointerCapture(X.pointerId)}catch(G){(typeof G=="object"&&G!==null&&"name"in G?G.name:void 0)==="NotFoundError"&&(Pe=!1)}if(Pe){S.current=X.pointerId,K(X.clientX,X.clientY,!0);return}}J(!0)},[J,le,K]),A=r.useCallback(h=>{S.current===h.pointerId&&J(!1)},[J]);r.useImperativeHandle(u,()=>({reset:()=>{J(!0)},getElement:()=>g.current}),[J]);const _=Math.min(Math.max(a,0),1),v=n/64,Y=Math.min(d.distance,t)/t,E=d.direction*Y*10*v,B=c??Gt,ee={dragState:d,normalizedDistance:Y,sizeScale:v,size:n,opacity:_},W={...i,width:n,height:n,transform:`translateY(${E}px)`};return W.opacity=_,z.jsx("div",{ref:g,"data-testid":"virtual-scroll-tap-circle",className:it.twMerge("aqvs-tap-scroll-circle",e),style:W,tabIndex:-1,onPointerDown:Q,onPointerMove:fe,onPointerUp:xe,onPointerCancel:xe,onLostPointerCapture:A,role:"presentation",children:B(ee)})}));qt.displayName="TapScrollCircle";const he=(s,e,t)=>Math.max(e,Math.min(t,s)),Vt="virtualscroll:tap-scroll-cancel",_t=20,Zt=250,Jt=60,Qt=20,er=20,Dt={maxDistance:240,minSpeedMultiplier:.2},tr=Dt.maxDistance,Ot={active:!1,offsetX:0,offsetY:0,distance:0,direction:0,pointerId:null},Et=2.2,rr=8,nr=120,sr=1/10,Ue={enabled:!0,size:40,offsetX:-80,offsetY:0,className:void 0,maxVisualDistance:tr,minSpeedMultiplier:Dt.minSpeedMultiplier,opacity:.9,renderVisual:void 0,maxSpeedCurve:void 0},ir=s=>s?{mainSizeKey:"width",crossSizeKey:"height",positionKey:"left",selectDelta:(e,t)=>e,getPointerCoordinate:({clientX:e})=>e,arrowLabels:["Scroll left","Scroll right"],arrowIcons:["◀","▶"],directionClass:"aqvs-scrollbar-horizontal",orientation:"horizontal"}:{mainSizeKey:"height",crossSizeKey:"width",positionKey:"top",selectDelta:(e,t)=>t,getPointerCoordinate:({clientY:e})=>e,arrowLabels:["Scroll up","Scroll down"],arrowIcons:["▲","▼"],directionClass:"aqvs-scrollbar-vertical",orientation:"vertical"},ar=(s,e)=>{const t=s?.maxSpeedMultiplier,n=typeof t=="number"?t:Xt(e);return{enabled:s?.enabled??Ue.enabled,size:s?.size??Ue.size,offsetX:s?.offsetX??Ue.offsetX,offsetY:s?.offsetY??Ue.offsetY,className:s?.className??Ue.className,maxVisualDistance:s?.maxVisualDistance??Ue.maxVisualDistance,maxSpeedMultiplier:n,minSpeedMultiplier:Math.max(s?.minSpeedMultiplier??Ue.minSpeedMultiplier,0),opacity:he(s?.opacity??Ue.opacity,0,1),renderVisual:s?.renderVisual??Ue.renderVisual,maxSpeedCurve:s?.maxSpeedCurve??Ue.maxSpeedCurve}},or=({isDragging:s,isThumbHovered:e,enableThumbDrag:t})=>r.useMemo(()=>t?s?"dragging":e?"hover":"idle":"disabled",[t,s,e]),lr=({canUseArrowButtons:s,enableArrowButtons:e,resetTapScroll:t,scrollByStep:n})=>{const i=r.useRef(null),a=r.useRef(null),c=r.useRef(null),u=r.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null),a.current!==null&&(window.clearTimeout(a.current),a.current=null),c.current!==null&&(window.removeEventListener("pointerup",c.current),window.removeEventListener("pointercancel",c.current),window.removeEventListener("blur",c.current),c.current=null)},[]),d=r.useCallback(()=>{u()},[u]),I=r.useCallback(M=>w=>{if(!s)return;w.cancelable&&w.preventDefault(),w.stopPropagation(),t(),u(),n(M),a.current=window.setTimeout(()=>{i.current=window.setInterval(()=>{n(M)},Jt)},Zt);const g=()=>u();c.current=g,window.addEventListener("pointerup",g),window.addEventListener("pointercancel",g),window.addEventListener("blur",g)},[s,u,t,n]),S=r.useCallback(M=>w=>{e&&(w.key==="Enter"||w.key===" "||w.key==="Spacebar")&&(w.preventDefault(),n(M))},[e,n]);return r.useEffect(()=>{s||u()},[s,u]),r.useEffect(()=>()=>{u()},[u]),{handleArrowPointerDown:I,handleArrowPointerUp:d,handleArrowKeyDown:S}},cr=700,st=(s,e)=>typeof s=="number"&&Number.isFinite(s)?s:e,Ht=({distance:s,maxDistance:e,viewportSize:t,minSpeedMultiplier:n,maxSpeedMultiplier:i,hasCustomMaxSpeedMultiplier:a,curve:c})=>{const u=Math.max(st(s,0),0),d=st(e,0),I=d>0?Math.min(u,d)/d:1,S=Math.max(st(t,0),0),M=Math.max(st(n,0),0),w=Math.max(st(i,0),0),g=Math.max(S*M,40),D=a?g:1200,F=Math.max(S*w,D),K=c?Math.max(st(c.exponentialScale,w),0):0,le=c?Math.min(F,Math.max(S*K,g)):F,J=Math.max(le,g);let Q=I**1.1;if(c){const xe=Math.min(Math.max(st(c.exponentialSteepness,0),0),cr);if(xe===0)Q=I;else{const A=Math.expm1(xe)||1;Q=Math.min(Math.max(Math.expm1(xe*I)/A,0),1)}}const fe=Math.min(Math.max(st(c?.easedOffset,0),0),1);return g+(J-g)*(fe+(1-fe)*Q)},Xt=s=>{if(!s||s<=0)return Et;const e=Math.max(1,s),t=Math.log10(e),n=Et+t*rr;return he(n,Et,nr)},jt=({contentSize:s,viewportSize:e,scrollPosition:t,onScroll:n,enableThumbDrag:i=!0,enableTrackClick:a=!0,enableArrowButtons:c=!0,horizontal:u=!1,scrollBarWidth:d=12,className:I,ariaControls:S,tapScrollCircleOptions:M,itemCount:w,renderThumbOverlay:g,visibleStartIndex:D,visibleEndIndex:F})=>{const[K,le]=r.useState(!1),[J,Q]=r.useState(!1),[fe,xe]=r.useState(!1),A=r.useRef(null),_=r.useRef({pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1,captureTarget:null}),v=r.useRef({pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1}),Y=r.useRef(t),E=r.useRef(n),B=r.useRef(Ot),ee=r.useRef(null),W=r.useRef(null),h=r.useRef(null),X=r.useRef(0),Se=r.useRef(0),Pe=r.useMemo(()=>ar(M,w),[w,M]),G=r.useMemo(()=>ir(u),[u]),{enabled:L,size:Ce,offsetX:j,offsetY:ye,className:R,maxVisualDistance:Oe,maxSpeedMultiplier:Ye,minSpeedMultiplier:T,opacity:Be,renderVisual:Fe,maxSpeedCurve:Ke}=Pe,ie=r.useRef({viewportSize:e,maxScrollPosition:Math.max(s-e,0),scrollBarVisible:s>e,effectiveTapMaxDistance:Math.max(Oe,1),tapCircleMaxSpeedMultiplier:Ye,tapCircleMinSpeedMultiplier:T,tapCircleMaxSpeedCurve:Ke,tapScrollCircleOptions:M,effectiveTrackLength:0,onScroll:n,scrollPosition:t}),{mainSizeKey:$e,crossSizeKey:m,positionKey:ce,selectDelta:ae,getPointerCoordinate:q,arrowLabels:ne,arrowIcons:Z,directionClass:ve,orientation:Re}=G,we=Math.max(Oe,1),te=e/s,ke=Math.max(e-d*2,0),Te=te*ke,ue=Math.min(Math.max(_t,Te||0),ke||_t),se=s-e,Ne=Math.max(ke-ue,0),qe=se<=0||Ne<=0?0:he(t/se*Ne,0,Ne),We=qe+ue/2,oe=s>e||K,b=oe&&c;r.useLayoutEffect(()=>{ie.current={viewportSize:e,maxScrollPosition:se,scrollBarVisible:oe,effectiveTapMaxDistance:we,tapCircleMaxSpeedMultiplier:Ye,tapCircleMinSpeedMultiplier:T,tapCircleMaxSpeedCurve:Ke,tapScrollCircleOptions:M,effectiveTrackLength:Ne,onScroll:n,scrollPosition:t}}),r.useLayoutEffect(()=>{Y.current=t},[t]),r.useLayoutEffect(()=>{E.current=n},[n]),r.useEffect(()=>{i||Q(!1)},[i]);const P=or({isDragging:K,isThumbHovered:J,enableThumbDrag:i}),ge=r.useCallback((l,x)=>{const C=ie.current,V=x??Y.current;if(E.current){const p=E.current(l,V);if(typeof p=="number"&&Number.isFinite(p))return Y.current=p,p}const H=typeof l=="function"?l(V):l,o=Math.max(C.maxScrollPosition,0),f=C.scrollBarVisible?he(H,0,o):0;return Y.current=f,f},[]),ze=r.useCallback(l=>{const x=ie.current,C=Y.current;if(!x.scrollBarVisible||x.maxScrollPosition<=0){const N=ge(0,C),O=N-C;return{nextPosition:N,actualDelta:O,reachedBoundary:!0}}if(l===0)return{nextPosition:C,actualDelta:0,reachedBoundary:!1};const H=ge(N=>he(N+l,0,x.maxScrollPosition),C),o=H-C,f=l<0&&C+l<=0,p=l>0&&C+l>=x.maxScrollPosition,k=l<0&&(H<=0||f&&o===0)||l>0&&(H>=x.maxScrollPosition||p&&o===0);return{nextPosition:H,actualDelta:o,reachedBoundary:k}},[ge]),be=r.useCallback((l,x)=>{l.current+=x;const C=Math.max(ie.current.maxScrollPosition,0);C>0&&(l.current=he(l.current,-C,C));const V=ze(l.current);return l.current-=V.actualDelta,V.reachedBoundary&&(l.current=0),V},[ze]),Ae=r.useCallback(()=>{W.current!==null&&(window.cancelAnimationFrame(W.current),W.current=null),h.current=null,X.current=0,Se.current=0},[]),Ie=r.useCallback(()=>{B.current={...Ot},xe(!1),ee.current?.reset(),Ae()},[Ae]),He=r.useCallback(l=>{const x=B.current,C=ie.current;if(!x.active||x.direction===0){Ae();return}if(!C.scrollBarVisible||C.maxScrollPosition<=0){Ae();return}const V=h.current??l,H=Math.max((l-V)/1e3,0),o=Math.min(H,sr);if(h.current=l,o<=0){W.current=window.requestAnimationFrame(He);return}const f=Ht({distance:x.distance,maxDistance:C.effectiveTapMaxDistance,viewportSize:C.viewportSize,minSpeedMultiplier:C.tapCircleMinSpeedMultiplier,maxSpeedMultiplier:C.tapCircleMaxSpeedMultiplier,hasCustomMaxSpeedMultiplier:typeof C.tapScrollCircleOptions?.maxSpeedMultiplier=="number",curve:C.tapCircleMaxSpeedCurve});Se.current!==x.direction&&(Se.current=x.direction,X.current=0);const{reachedBoundary:p}=be(X,x.direction*f*o);if(p){Ae();return}W.current=window.requestAnimationFrame(He)},[be,Ae]),Le=r.useCallback(()=>{W.current===null&&(h.current=null,X.current=0,W.current=window.requestAnimationFrame(He))},[He]);r.useEffect(()=>{const l=B.current;!l.active||l.direction===0||Le()},[s,e,Le]),r.useEffect(()=>()=>{Ae()},[Ae]);const tt=r.useCallback(l=>{B.current=l,xe(l.active),l.active&&l.direction!==0?Le():Ae()},[Le,Ae]);r.useEffect(()=>{L||Ie()},[Ie,L]),r.useEffect(()=>{const l=x=>{const V=x.detail?.paneId;V&&S&&V!==S||Ie()};return window.addEventListener(Vt,l),()=>{window.removeEventListener(Vt,l)}},[S,Ie]),r.useEffect(()=>{if(!L)return;const l=x=>{if(!B.current.active||B.current.pointerId===x.pointerId)return;const C=x.target;if(!(C instanceof Node)){Ie();return}ee.current?.getElement()?.contains(C)||Ie()};return document.addEventListener("pointerdown",l,!0),()=>{document.removeEventListener("pointerdown",l,!0)}},[Ie,L]);const dt=l=>{if(!oe||Ne<=0||se<=0)return 0;const x=he(l,0,Ne);return he(x/Ne*se,0,se)},at=r.useCallback(l=>{const{scrollBarVisible:x,effectiveTrackLength:C,maxScrollPosition:V}=ie.current;if(y.debug("[ScrollBar] calculateScrollPositionFromThumb",()=>({thumbPos:l,trackLen:C,maxScroll:V})),C<=0||V<=0)return null;const H=he(l,0,C);return he(H/C*V,0,V)},[]),mt=r.useCallback(l=>{const x=l.getBoundingClientRect(),C=u?x.width:x.height,V=k=>{const N=Number.parseFloat(k);return Number.isFinite(N)?N:0},H=window.getComputedStyle(l),o=V(u?H.width:H.height),f=o>0?o+V(u?H.paddingLeft:H.paddingTop)+V(u?H.paddingRight:H.paddingBottom)+V(u?H.borderLeftWidth:H.borderTopWidth)+V(u?H.borderRightWidth:H.borderBottomWidth):0,p=f>0?f:u?l.offsetWidth:l.offsetHeight;return p<=0||C<=0?1:C/p},[u]),re=r.useCallback(l=>{const x=_.current;if(x.pointerId!==l.pointerId)return;const C=l.clientX-x.startClientX,V=l.clientY-x.startClientY,H=ae(C,V)/(x.scale||1);y.debug("[ScrollBar] handleThumbPointerMove",()=>({delta:H,startThumbPosition:x.startThumbPosition,clientY:l.clientY,startClientY:x.startClientY,metrics:ie.current}));const o=at(x.startThumbPosition+H);o!==null&&ge(o),l.cancelable&&l.preventDefault()},[ae,at,ge]),_e=r.useCallback(l=>{const x=_.current;if(x.pointerId!==l.pointerId)return;document.removeEventListener("pointermove",re),document.removeEventListener("pointerup",_e),document.removeEventListener("pointercancel",_e);const C=x.captureTarget;if(C?.hasPointerCapture?.(l.pointerId)&&C.releasePointerCapture(l.pointerId),_.current={pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1,captureTarget:null},le(!1),A.current){const V=A.current.getBoundingClientRect();l.clientX>=V.left&&l.clientX<=V.right&&l.clientY>=V.top&&l.clientY<=V.bottom||Q(!1)}else Q(!1)},[re]);r.useEffect(()=>()=>{document.removeEventListener("pointermove",re),document.removeEventListener("pointerup",_e),document.removeEventListener("pointercancel",_e)},[re,_e]);const pt=r.useRef(0),ht=r.useRef(0),je=r.useCallback(l=>{const x=Math.max(Math.round(ie.current.viewportSize/er),Qt);ht.current!==l&&(ht.current=l,pt.current=0),be(pt,l*x)},[be]),{handleArrowPointerDown:It,handleArrowPointerUp:ot,handleArrowKeyDown:Ct}=lr({canUseArrowButtons:b,enableArrowButtons:c,resetTapScroll:Ie,scrollByStep:je}),Ge=l=>{if(!oe)return;if(!i){l.preventDefault(),l.stopPropagation();return}if(l.pointerType==="mouse"&&l.button!==0||l.ctrlKey)return;Ie();const x=l.currentTarget,C=mt(x);let V=null;if(x.setPointerCapture)try{x.setPointerCapture(l.pointerId),V=x}catch{V=null}_.current={pointerId:l.pointerId,startThumbPosition:qe,startClientX:l.clientX,startClientY:l.clientY,scale:C,captureTarget:V},document.addEventListener("pointermove",re),document.addEventListener("pointerup",_e),document.addEventListener("pointercancel",_e),le(!0),Q(!0),l.preventDefault(),l.stopPropagation()},rt=l=>{if(!oe)return;if(!a){l.preventDefault(),l.stopPropagation();return}if(l.pointerType==="mouse"&&l.button!==0||l.ctrlKey)return;const x=l.currentTarget,C=x.getBoundingClientRect(),V=q(l),H=mt(x),o=(V-(u?C.left:C.top))/H;Ie();const f=o-ue/2,p=dt(f);if(ge(p),x.setPointerCapture)try{x.setPointerCapture(l.pointerId)}catch{}v.current={pointerId:l.pointerId,startThumbPosition:f,startClientX:l.clientX,startClientY:l.clientY,scale:H},l.preventDefault(),l.stopPropagation()},Xe=()=>{v.current={pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1}},Ze=l=>{const x=v.current;if(x.pointerId!==l.pointerId)return;if(l.pointerType==="mouse"&&l.buttons===0){Xe();return}const C=l.clientX-x.startClientX,V=l.clientY-x.startClientY,H=ae(C,V)/(x.scale||1),o=dt(x.startThumbPosition+H);ge(o),l.cancelable&&l.preventDefault()},nt=l=>{if(v.current.pointerId!==l.pointerId)return;const x=l.currentTarget;x.hasPointerCapture?.(l.pointerId)&&x.releasePointerCapture(l.pointerId),Xe(),l.preventDefault(),l.stopPropagation()},lt=l=>{if(v.current.pointerId!==l.pointerId)return;const x=l.currentTarget;x.hasPointerCapture?.(l.pointerId)&&x.releasePointerCapture(l.pointerId),Xe()},Je=l=>{v.current.pointerId===l.pointerId&&Xe()},St=r.useMemo(()=>he((fe?1:.8)*Be,0,1),[fe,Be]),Tt=r.useMemo(()=>{const x=`calc(50% - ${Ce/2}px + ${ye}px)`;return{left:j,top:x}},[j,ye,Ce]),Mt=(l,x,C,V)=>z.jsx("button",{type:"button",tabIndex:0,className:"aqvs-scrollbar-arrow-button",style:{[$e]:d,[m]:d},"aria-label":x,onPointerDown:It(l),onPointerUp:ot,onPointerLeave:ot,onPointerCancel:ot,onKeyDown:Ct(l),"aria-disabled":!c,disabled:!b,children:z.jsx("span",{"aria-hidden":"true",children:C})},V),ct=g&&oe?{orientation:Re,scrollPosition:t,maxScrollPosition:se,contentSize:s,viewportSize:e,thumbSize:ue,thumbPosition:qe,thumbCenter:We,trackSize:ke,isDragging:K,isTapScrollActive:fe,visibleStartIndex:D,visibleEndIndex:F}:null;return z.jsxs("div",{className:it.twMerge("aqvs-scrollbar",ve,!oe&&"pointer-events-none opacity-0",I),style:{[$e]:e,[m]:d},role:"scrollbar",tabIndex:-1,"aria-controls":S,"aria-valuenow":t,"aria-valuemin":0,"aria-valuemax":se,"aria-orientation":u?"horizontal":"vertical",children:[!u&&oe&&L&&z.jsx(qt,{ref:ee,className:it.twMerge("aqvs-scrollbar-tap-circle-wrapper",R),size:Ce,maxVisualDistance:we,style:Tt,opacity:St,renderVisual:Fe,onDragChange:tt},"tap-circle"),Mt(-1,ne[0],Z[0],"arrow-start"),z.jsxs("div",{className:"aqvs-scrollbar-track",style:{borderRadius:d/2},onPointerDown:rt,onPointerMove:Ze,onPointerUp:nt,onPointerCancel:lt,onLostPointerCapture:Je,"aria-disabled":!a,children:[ct&&z.jsx("div",{className:"aqvs-scrollbar-overlay","aria-hidden":!0,children:g?.(ct)},"overlay"),z.jsx("div",{className:it.twMerge("aqvs-scrollbar-thumb-wrapper",!(oe||K)&&"pointer-events-none opacity-0"),style:{[$e]:ue,[ce]:qe,...u?{top:0,bottom:0}:{left:0,right:0}},onPointerDown:Ge,role:"slider","aria-orientation":u?"horizontal":"vertical","aria-valuenow":t,"aria-valuemin":0,"aria-valuemax":se,"aria-disabled":!i,tabIndex:-1,children:z.jsx("div",{ref:A,className:it.twMerge("aqvs-scrollbar-thumb",u?"aqvs-scrollbar-thumb-horizontal":"aqvs-scrollbar-thumb-vertical"),"data-testid":"aqvs-scrollbar-thumb","data-thumb-state":P,style:{borderRadius:d-1,cursor:i?"pointer":"default"},onMouseEnter:()=>{i&&Q(!0)},onMouseLeave:()=>{i&&Q(!1)}},"thumb")},"thumb-wrapper")]},"track"),Mt(1,ne[1],Z[1],"arrow-end")]})},ur=["mouse","pen","touch"],kt=(s,e)=>!(s==="mouse"||s==="pen"||s==="touch")||e.includes(s),bt={maxVelocity:6,minVelocity:.02,deceleration:.0025,velocitySampleWindow:90,startVelocityThreshold:.04},vt=(s,e,t)=>{for(const[n,i,a]of e)t==="add"?s.addEventListener(n,i,a):s.removeEventListener(n,i,a)},$t=r.forwardRef(({children:s,contentSize:e,viewportSize:t,scrollBarWidth:n=12,enableThumbDrag:i=!0,enableTrackClick:a=!0,enableArrowButtons:c=!0,enablePointerDrag:u=!0,pointerDragInputs:d=ur,onScroll:I,className:S,testId:M,style:w,background:g,tapScrollCircleOptions:D,inertiaOptions:F,itemCount:K,renderThumbOverlay:le,wheelSpeedMultiplier:J=1,onWheelHorizontal:Q,contentInsets:fe,visibleStartIndex:xe,visibleEndIndex:A,renderOverlay:_,initialScrollPosition:v=0},Y)=>{const E=r.useRef(Number.isFinite(v)?Math.max(0,v):0),B=r.useRef(null),ee=r.useRef(null),W=r.useRef(Q);r.useEffect(()=>{W.current=Q},[Q]);const h=r.useRef({frame:null,velocity:0,lastTimestamp:null,generation:0}),X=r.useMemo(()=>({maxVelocity:F?.maxVelocity??bt.maxVelocity,minVelocity:F?.minVelocity??bt.minVelocity,deceleration:F?.deceleration??bt.deceleration,velocitySampleWindow:F?.velocitySampleWindow??bt.velocitySampleWindow,startVelocityThreshold:F?.startVelocityThreshold??bt.startVelocityThreshold}),[F]),Se=r.useMemo(()=>({top:Math.max(0,fe?.top??0),bottom:Math.max(0,fe?.bottom??0)}),[fe]);y.debug("[ScrollPane] ScrollPane rendered",()=>({contentSize:e,viewportSize:t,scrollBarWidth:n,className:S,style:w,tapScrollCircleOptions:D,inertiaOptions:F,enablePointerDrag:u,contentInsets:Se}));const Pe=r.useRef({contentSize:e,viewportSize:t});Pe.current={contentSize:e,viewportSize:t};const G=r.useMemo(()=>e>t,[e,t]),L=r.useCallback(m=>{const{contentSize:ce,viewportSize:ae}=Pe.current,q=ce>ae,ne=E.current;if(y.debug("[ScrollPane] scrollTo called",()=>({newPosition:m,contentSize:ce,viewportSize:ae,currentIsScrollable:q,prevPosition:ne})),!q)return E.current!==0&&(E.current=0,I?.(0,ne)),E.current;const Z=typeof m=="function"?m(E.current):m;if(!Number.isFinite(Z))return y.warn("[ScrollPane] scrollTo received a non-finite position; keeping the current position",{nextPosition:Z}),E.current;const ve=Math.max(ce-ae,0),Re=he(Z,0,ve);return E.current!==Re&&(E.current=Re,I?.(Re,ne)),E.current},[I]),Ce=r.useRef(L);r.useEffect(()=>{Ce.current=L},[L]);const j=r.useCallback(()=>{const m=h.current;m.generation+=1,m.frame!==null&&cancelAnimationFrame(m.frame),m.frame=null,m.velocity=0,m.lastTimestamp=null},[]),ye=r.useRef(j);r.useEffect(()=>{ye.current=j},[j]),r.useEffect(()=>()=>{ye.current()},[]);const R=r.useCallback(m=>{if(!G)return;const{maxVelocity:ce,minVelocity:ae,deceleration:q,startVelocityThreshold:ne}=X,Z=he(m,-ce,ce);if(Math.abs(Z)<ne)return;j(),h.current.velocity=Z,h.current.lastTimestamp=null;const ve=h.current.generation,Re=we=>{const te=h.current;if(te.generation!==ve)return;if(te.lastTimestamp===null){te.lastTimestamp=we,te.frame=requestAnimationFrame(Re);return}const ke=we-te.lastTimestamp;if(te.lastTimestamp=we,ke<=0){te.frame=requestAnimationFrame(Re);return}const Te=te.velocity;let ue=Te;const se=q*ke;Te>0?ue=Math.max(0,Te-se):Te<0&&(ue=Math.min(0,Te+se));const qe=(Te+ue)/2*ke,We=E.current;if(qe!==0&&Ce.current(be=>be+qe),h.current.generation!==ve)return;const oe=E.current,{contentSize:b,viewportSize:P}=Pe.current,ge=Math.max(b-P,0);te.velocity=ue;const ze=oe===We||oe<=0&&ue<=0||oe>=ge&&ue>=0;if(Math.abs(ue)<ae||ze){j();return}te.frame=requestAnimationFrame(Re)};h.current.frame=requestAnimationFrame(Re)},[G,X,j]),Oe=r.useRef(R);r.useEffect(()=>{Oe.current=R},[R]),r.useLayoutEffect(()=>{Pe.current={contentSize:e,viewportSize:t}},[e,t]),r.useLayoutEffect(()=>{const m=ee.current;if(!m)return;const ce=()=>{m.scrollTop!==0&&(y.debug("[ScrollPane] Native scroll detected, resetting to 0",()=>({scrollTop:m.scrollTop})),m.scrollTop=0),m.scrollLeft!==0&&(m.scrollLeft=0)};return m.addEventListener("scroll",ce),()=>m.removeEventListener("scroll",ce)},[]),r.useLayoutEffect(()=>{if(G){y.debug("[ScrollPane] Adjusting scroll position due to content or viewport size change",()=>({contentSize:e,viewportSize:t,scrollPosition:E.current}));const m=he(e-t,0,e);E.current>m&&L(m)}else L(0)},[G,L,e,t]),r.useEffect(()=>{const m=q=>{if(q.ctrlKey)return;const ne=q.shiftKey&&q.deltaX===0,Z=ne?q.deltaY:q.deltaX,ve=ne?0:q.deltaY;if(Z!==0&&Math.abs(Z)>=Math.abs(ve)){if(W.current){q.preventDefault(),j();let te=Z;q.deltaMode===1?te*=16:q.deltaMode===2&&(te*=t),W.current(te)}return}if(!G||q.deltaY===0)return;q.preventDefault(),j();let we=q.deltaY;q.deltaMode===1?we*=16:q.deltaMode===2&&(we*=t),J!==1&&(we*=J),y.debug("[ScrollPane] wheel event",()=>({deltaY:we,scrollPosition:E.current,wheelSpeedMultiplier:J,deltaMode:q.deltaMode,scrollTop:ee.current?.scrollTop})),L(te=>te+we)},ce=()=>{j()},ae=B.current;return ae&&(ae.addEventListener("wheel",m,{passive:!1}),ae.addEventListener("pointerdown",ce,{capture:!0,passive:!0})),()=>{ae&&(ae.removeEventListener("wheel",m),ae.removeEventListener("pointerdown",ce,{capture:!0}))}},[G,L,j,t,J]),r.useImperativeHandle(Y,()=>({scrollTo:m=>(j(),L(m)),getScrollPosition:()=>E.current,getContentSize:()=>e,getViewportSize:()=>t}),[L,e,t,j]);const Ye=r.useId(),T=r.useRef({pointerType:"",pointerId:null,startClientY:0,startScroll:0,isDragging:!1,shouldCancelNextClick:!1,clickResetTimer:null,velocitySamples:[]}),Be=r.useRef(u),Fe=r.useRef(d);r.useEffect(()=>{Be.current=u},[u]),r.useEffect(()=>{Fe.current=d},[d]);const Ke=r.useRef(G);r.useEffect(()=>{Ke.current=G},[G]);const ie=r.useRef(X);r.useEffect(()=>{ie.current=X},[X]),r.useEffect(()=>{const m=T.current;if(u&&G&&(m.pointerId===null||kt(m.pointerType,d))||m.pointerId===null)return;const ce=ee.current;m.clickResetTimer!==null&&(window.clearTimeout(m.clickResetTimer),m.clickResetTimer=null);const ae=m.isDragging&&m.shouldCancelNextClick,q=m.pointerId;m.pointerId=null,m.pointerType="",m.startClientY=0,m.startScroll=0,m.isDragging=!1,m.shouldCancelNextClick=ae,m.velocitySamples=[],ce?.hasPointerCapture(q)&&ce.releasePointerCapture(q)},[u,d,G]),r.useEffect(()=>{const m=ee.current;if(!m)return;const ce=6,ae=()=>typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),q=()=>{const b=T.current;b.pointerId=null,b.pointerType="",b.startClientY=0,b.startScroll=0,b.isDragging=!1,b.velocitySamples=[]},ne=()=>{const b=T.current;b.clickResetTimer!==null&&(window.clearTimeout(b.clickResetTimer),b.clickResetTimer=null)},Z=b=>{const P=T.current,ge=ae();P.velocitySamples.push({clientY:b,time:ge});const ze=ie.current.velocitySampleWindow;P.velocitySamples=P.velocitySamples.filter(be=>ge-be.time<=ze)},ve=b=>b instanceof HTMLElement&&b.closest("[data-scrollpane-ignore-drag='true']")!==null,Re=b=>{const P=T.current;P.shouldCancelNextClick&&(b.preventDefault(),b.stopPropagation(),P.shouldCancelNextClick=!1)},we=b=>{const P=T.current;if(!P.isDragging){if(P.isDragging=!0,P.shouldCancelNextClick=!0,!m.hasPointerCapture(b.pointerId))try{m.setPointerCapture(b.pointerId)}catch{}Z(b.clientY)}},te=b=>{const P=T.current;m.hasPointerCapture(b)&&m.releasePointerCapture(b),P.shouldCancelNextClick=!1,ne(),q()},ke=b=>{const P=T.current;if(P.pointerId!==b.pointerId)return;if(b.buttons===0){te(b.pointerId);return}if(!(Be.current&&Ke.current)||!kt(b.pointerType,Fe.current)||!P.isDragging&&(Math.abs(b.clientY-P.startClientY)<ce||(we(b),!P.isDragging)))return;Z(b.clientY);const ge=b.clientY-P.startClientY,ze=P.startScroll-ge;Ce.current(ze),b.cancelable&&b.preventDefault()},Te=()=>{const b=T.current;return b.pointerId!==null||!b.shouldCancelNextClick?!1:(ne(),b.clickResetTimer=window.setTimeout(()=>{const P=T.current;P.shouldCancelNextClick=!1,P.clickResetTimer=null},0),!0)},ue=b=>{const P=T.current;if(P.pointerId!==b.pointerId){Te();return}P.isDragging&&P.shouldCancelNextClick&&b.cancelable&&(b.preventDefault(),b.stopPropagation()),P.isDragging&&Z(b.clientY);let ge=0;if(P.isDragging&&P.velocitySamples.length>=2){const be=P.velocitySamples,Ae=ie.current.velocitySampleWindow,Ie=be[be.length-1],He=be.find(Le=>Ie.time-Le.time<=Ae)??be[0];if(Ie&&He&&Ie.time!==He.time){const Le=Ie.clientY-He.clientY,tt=Ie.time-He.time;ge=-(Le/tt)}}ne(),P.shouldCancelNextClick&&(P.clickResetTimer=window.setTimeout(()=>{const be=T.current;be.shouldCancelNextClick=!1,be.clickResetTimer=null},0));const ze=ie.current.startVelocityThreshold;q(),m.hasPointerCapture(b.pointerId)&&m.releasePointerCapture(b.pointerId),Math.abs(ge)>=ze&&Oe.current?.(ge)},se=b=>{if(T.current.pointerId!==null||(T.current.shouldCancelNextClick&&(ne(),T.current.shouldCancelNextClick=!1),!(Be.current&&Ke.current))||!kt(b.pointerType,Fe.current)||b.button!==0&&b.pointerType==="mouse"||b.ctrlKey||b.metaKey||b.altKey||ve(b.target))return;window.dispatchEvent(new CustomEvent(Vt,{detail:{paneId:Ye}})),ye.current?.();const P=T.current;ne(),P.pointerId=b.pointerId,P.pointerType=b.pointerType,P.startClientY=b.clientY,P.startScroll=E.current,P.isDragging=!1,P.shouldCancelNextClick=!1,P.velocitySamples=[]},Ne=b=>{if(T.current.pointerId!==b.pointerId){Te();return}te(b.pointerId)},We=[["click",Re,!0],["pointerdown",se,{passive:!1}],["lostpointercapture",b=>{T.current.pointerId===b.pointerId&&te(b.pointerId)},void 0]],oe=[["pointermove",ke,{passive:!1}],["pointerup",ue,void 0],["pointercancel",Ne,void 0]];return vt(m,We,"add"),vt(window,oe,"add"),()=>{vt(m,We,"remove"),vt(window,oe,"remove");const b=T.current;b.pointerId!==null&&m.hasPointerCapture(b.pointerId)&&m.releasePointerCapture(b.pointerId),ne(),q()}},[Ye]);const $e=r.useCallback(m=>(j(),L(m)),[L,j]);return z.jsxs("div",{ref:B,"data-testid":M,className:it.twMerge("aqvs-scroll-pane",S),style:w,children:[z.jsxs("div",{ref:ee,className:it.twMerge("aqvs-scroll-pane-content"),"data-testid":"aqvs-scroll-pane-content",style:{height:t,paddingTop:Se.top,paddingBottom:Se.bottom,...u&&G&&d.some(m=>m==="touch"||m==="pen")?{touchAction:"none"}:{}},id:Ye,children:[g,s(E.current)]}),z.jsx(jt,{contentSize:e,viewportSize:t,scrollPosition:E.current,onScroll:$e,enableThumbDrag:i,enableTrackClick:a,enableArrowButtons:c,scrollBarWidth:n,ariaControls:Ye,tapScrollCircleOptions:D,itemCount:K,renderThumbOverlay:le,visibleStartIndex:xe,visibleEndIndex:A},"scrollbar"),_?.()]})}),Ft=(s,e,t)=>Math.min(Math.max(s,e),t),fr=({dragState:s,normalizedDistance:e,sizeScale:t,size:n})=>{const i=Math.max(n/2,1),a=1+e*.65,c=Math.max(.65,1-e*.25),u=s.direction*e*26*t,d=.8+e*.18,I=3*t,S=6*t,M=22*t,w=Math.abs(u)+S,g=u>0?I:-Math.abs(u)-I,D=Math.max(2.5,3*t),F=Ft(s.offsetX,-i,i),K=Ft(s.offsetY,-i,i),le=i*.35,J=F/i*le,Q=K/i*le,fe=J*.45,xe=Q*.45,A=Math.max(M*.38,6),_=.65+e*.2,v=s.active;return z.jsxs(z.Fragment,{children:[z.jsx("div",{className:"aqvs-tap-scroll-circle-gradient",style:{transform:`scale(${c}, ${a})`,transition:v?"40ms transform ease-out":"200ms ease transform"}}),z.jsx("div",{className:"aqvs-sample-visual-pupil",style:{width:M,height:M,transform:`translate(calc(-50% + ${J}px), calc(-50% + ${Q}px)) scale(${c}, ${d*a})`,transition:v?"70ms transform ease-out":"200ms ease transform"}}),z.jsx("div",{className:"aqvs-sample-visual-highlight",style:{width:A,height:A,transform:`translate(calc(-50% + ${fe}px), calc(-50% + ${xe}px)) scale(${c}, ${a})`,opacity:_,boxShadow:"0 0 8px rgba(255,255,255,0.45)",transition:v?"120ms opacity 150ms, 120ms transform ease-out ease-out":"220ms ease transform, 240ms opacity ease"}}),z.jsx("div",{className:"aqvs-sample-visual-rod",style:{width:D,height:w,transform:`translate(-50%, ${g}px)`,opacity:e,transition:v?"40ms height, 60ms opacity ease-out ease-out":"200ms ease height, 120ms ease opacity"}})]})},Rt=100,dr=s=>{if(!Number.isFinite(s))return 0n;const e=Math.trunc(s);return e<=0?0n:BigInt(e)},Nt=(s,e)=>{if(!Number.isFinite(s))throw new Error(`valueFn returned a non-finite value at index ${e}: ${s}`);return s},ut=s=>{if(s<=0||!Number.isFinite(s))return 0;const e=Math.trunc(s);if(e<=2147483647)return e&-e;const t=BigInt(e)&-BigInt(e);return Number(t)};class et{tree;deltas;size;baseValue;valueFn;total;constructor(e,t,n){this.reset(e,t,n)}reset(e,t,n){const i=Number.isFinite(e)&&e>0?Math.trunc(e):0;if(typeof t!="function"){this.size=i,this.tree=new Map,this.deltas=new Map,this.valueFn=void 0,this.baseValue=t,this.total=this.baseValue*this.size;return}let a=0,c;if(i>0){const u=n?.sampleRange??{from:0,to:Math.min(Rt-1,i-1)};let d=Math.max(0,Math.trunc(u.from)),I=Math.min(Math.trunc(u.to),i-1);if(d>I&&(d=0,I=Math.min(Rt-1,i-1)),i>Rt)a=et._sampleBaseValueStrided(t,i,Rt),n?.materialize&&(c={from:d,values:et._collectValidatedValues(t,d,I)});else{const S=et._collectValidatedValues(t,d,I);a=et._modeOrMedian([...S]),n?.materialize&&(c={from:d,values:S})}}if(this.size=i,this.tree=new Map,this.deltas=new Map,this.total=void 0,this.valueFn=t,this.baseValue=a,c)for(let u=0;u<c.values.length;u++){const d=c.from+u;if(d>=this.size)break;const I=c.values[u]-this.baseValue;I!==0&&(this.deltas.set(d,I),this._updateTree(d,I))}this.total=this.getTotal()}setValueFn(e,t){if(t?.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,t,n){const i=[];for(let a=t;a<=n;a++)i.push(Nt(e(a),a));return i}static _modeOrMedian(e){if(e.length===0)return 0;e.sort((c,u)=>c-u);const t=Math.floor(e.length/2);let n;e.length%2===0?n=Math.floor((e[t-1]+e[t])/2):n=e[t];const i=new Map;let a=0;for(const c of e){const u=(i.get(c)??0)+1;i.set(c,u),u>a&&(a=u)}if(a>e.length*.2){const c=[];for(const[d,I]of i.entries())I===a&&c.push(d);const u=c.reduce((d,I)=>d+I,0);n=Math.floor(u/c.length)}return n}static _sampleBaseValueStrided(e,t,n){if(t<=0)return 0;let i=Math.max(1,Math.ceil(t/n));i%2===0&&(i+=1);const a=[];for(let c=0;c<t&&a.length<n;c+=i)a.push(Nt(e(c),c));return et._modeOrMedian(a)}update(e,t){return this.updates([{index:e,value:t}])}updates(e){const t=this._buildDeltaUpdates(e);return t.length>0?this.updateDeltas(t):this.total}updateDelta(e,t){return this.updateDeltas([{index:e,change:t}])}updateDeltas(e){const t=new Map;for(const{index:n,change:i}of e){if(n<0||n>=this.size)throw new Error(`Index ${n} out of bounds`);if(!Number.isInteger(n))throw new Error(`Index must be an integer: ${n}`);if(!Number.isFinite(i))throw new Error(`Change must be a finite number: ${i}`);const c=(t.get(n)??this.deltas.get(n)??0)+i;if(c+this.baseValue<-1e-9)throw new Error(`Change would make the value at index ${n} negative: ${c+this.baseValue}`);t.set(n,c)}for(const{index:n,change:i}of e){const c=(this.deltas.get(n)??0)+i;c===0?this.deltas.delete(n):this.deltas.set(n,c),this._updateTree(n,i)}return this.total}_updateTree(e,t){if(t===0)return;let n=e+1;for(;n<=this.size;){this.tree.set(n,(this.tree.get(n)??0)+t);const i=ut(n);if(i===0)break;n+=i}this.total!==void 0&&(this.total+=t)}_buildDeltaUpdates(e){const t=[],n=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 c=n.has(i)?n.get(i)??0:this.deltas.get(i)??0,u=c+this.baseValue,d=a-u;d!==0&&t.push({index:i,change:d}),n.set(i,c+d)}return t}_computeTreeTotal(){if(this.size<=0)return 0;let e=0,t=this.size;for(;t>0;){e+=this.tree.get(t)??0;const n=ut(t);if(n===0)break;t-=n}return e+this.baseValue*this.size}_materialize(e,t=!0){if(this.valueFn){const n=this.deltas.get(e)??0,a=Nt(this.valueFn(e),e)-this.baseValue;if(a!==n&&(a===0?this.deltas.delete(e):this.deltas.set(e,a),t)){const c=a-n;this._updateTree(e,c)}}}_materializeRanges(e,t,n=!1){if(!(e?.materialize&&this.valueFn))return;const i=e.ranges;if(i&&i.length>0){for(const u of i){const d=Math.max(0,Math.trunc(u.from)),I=Math.min(Math.trunc(u.to),this.size-1);for(let S=d;S<=I;S++)this._materialize(S)}if(t===void 0)return;if(n){this._materialize(t);return}const a=i[0].from,c=i[i.length-1].to;t>=a&&t<=c&&this._materialize(t);return}t!==void 0&&this._materialize(t)}_findIndex(e,t={},n){if(this.size>=1073741824)return this._findIndexLarge(e,t,n);if(this.size===0)return{index:-1,total:this.total??0,cumulative:void 0,currentValue:void 0,safeIndex:void 0};this._materializeRanges(t.materializeOption);const i=t.materializeOption?.materialize===!0;let a;for(;;){if(a=this._descend(e,n),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 u=this.deltas.get(a)??0;if(this._materialize(a),(this.deltas.get(a)??0)===u)break}const c=this.prefixSum(a);return{index:a,total:this.total??c.total,cumulative:c.cumulative,currentValue:c.currentValue,safeIndex:c.safeIndex}}_descend(e,t){let n=0,i=0,a=1;for(;a<<1<=this.size;)a<<=1;for(;a>0;a>>=1){const c=n+a;if(c<=this.size){const d=(this.tree.get(c)??0)+this.baseValue*a;(t?i+d<e:i+d<=e)&&(n=c,i+=d)}}return t?n:n-1}_findIndexLarge(e,t,n){if(this.size===0)return{index:-1,total:this.total??0,cumulative:void 0,currentValue:void 0,safeIndex:void 0};const i=dr(this.size);if(i===0n)return{index:-1,total:this.total??0,cumulative:void 0,currentValue:void 0,safeIndex:void 0};this._materializeRanges(t.materializeOption);const a=t.materializeOption?.materialize===!0;for(;;){let c=0n,u=i-1n,d,I,S=this.total;for(;c<=u;){const g=c+u>>1n,D=Number(g),F=this.prefixSum(D);if(S=F.total,n?F.cumulative>=e:F.cumulative<=e)if(d=g,I=F,n){if(g===0n)break;u=g-1n}else c=g+1n;else if(n)c=g+1n;else{if(g===0n)break;u=g-1n}}const M=I,w=d!==void 0?Number(d):-1;if(a&&w>=0){const g=this.deltas.get(w)??0;if(this._materialize(w),(this.deltas.get(w)??0)!==g)continue}return{index:w,total:S,cumulative:M?.cumulative,currentValue:M?.currentValue,safeIndex:M?.safeIndex}}}prefixSum(e,t){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 n=he(Math.trunc(e),0,this.size-1),i=t?.materializeOption;this._materializeRanges(i,n,!0);let a=0,c=n+1;for(;c>0;){const d=this.tree.get(c)??0;a+=d;const I=ut(c);if(I===0)break;c-=I}const u=i?.materialize?this.get(n):(this.deltas.get(n)||0)+this.baseValue;return{cumulative:a+this.baseValue*(n+1),total:this.total,currentValue:u,safeIndex:n}}get(e,t){if(this.size===0)return 0;if(!Number.isInteger(e)||e<0||e>=this.size)throw new Error("Index out of bounds");const n=t?.materializeOption;return this._materializeRanges(n,e),(this.deltas.get(e)??0)+this.baseValue}getTotal(e){const t=e?.materializeOption;if(this._materializeRanges(t),this.total===void 0)if(this.size===0)this.total=0;else{this.total=this._computeTreeTotal();const n=this.prefixSum(this.getSize()-1);n.cumulative!==n.total&&y.error("Inconsistent Fenwick Tree state")}return this.total}rebuildTree(e){if(e?.materialize&&this.valueFn){const n=this.valueFn;this.reset(this.size,i=>n(i),{materialize:!0});return}const t=new Map;for(const[n,i]of this.deltas.entries()){if(i===0)continue;let a=n+1;for(;a<=this.size;){t.set(a,(t.get(a)??0)+i);const c=ut(a);if(c===0)break;a+=c}}this.tree=t,this.total=this._computeTreeTotal()}calculateAccumulatedError(){if(this.total===void 0)return 0;let e=this.baseValue*this.size;for(const[t,n]of this.deltas)t<this.size&&(e+=n);return this.total-e}changeSize(e){if(!Number.isFinite(e))throw new Error(`Size must be a finite number: ${e}`);const t=Math.max(0,Math.trunc(e)),n=this.size;if(t===n)return;if(t>n)if(n===0&&this.deltas.size>0){for(const a of this.deltas.keys())a>=t&&this.deltas.delete(a);this.size=t,this.rebuildTree()}else this._growSize(n,t);else{if(t>0)for(const a of this.deltas.keys())a>=t&&this.deltas.delete(a);this.size=t,this.rebuildTree()}const i=this.prefixSum(this.getSize()-1);i.cumulative!==i.total&&y.error("Inconsistent Fenwick Tree state")}static _minCoveredLowBound(e,t){let n=1;for(;;){const i=n*2;if(Math.floor(t/i)*i<=e)break;n=i}return n*Math.floor(e/n)}_propagateDeltaToGrownNodes(e,t,n,i){let a=e+1;for(;a<=n;){const c=ut(a);if(c===0)break;a+=c}for(;a<=i;){this.tree.set(a,(this.tree.get(a)??0)+t);const c=ut(a);if(c===0)break;a+=c}}_growSize(e,t){if(this.size=t,this.deltas.size>0){const n=et._minCoveredLowBound(e,t);if(e-n<this.deltas.size)for(let a=n;a<e;a++){const c=this.deltas.get(a);c===void 0||c===0||this._propagateDeltaToGrownNodes(a,c,e,t)}else for(const[a,c]of this.deltas.entries())c===0||a<n||this._propagateDeltaToGrownNodes(a,c,e,t)}this.total=this._computeTreeTotal()}getSize(){return this.size}get base(){return this.baseValue}findIndexAtOrAfter(e,t){return this._findIndex(e,t??{},!0)}findIndexAtOrBefore(e,t){return this._findIndex(e,t??{},!1)}}const mr=(s,e)=>{const t=s?.sampleRange,n=e?.sampleRange;return t===n?!1:t&&n?t.from!==n.from||t.to!==n.to:!0},Ut=(s,e,t)=>{const n=Number.isFinite(s)&&s>0?Math.trunc(s):0,i=r.useRef(null),a=r.useRef({size:n,valueOrFn:e,options:t});i.current===null&&(i.current=new et(n,e,t));const c=i.current,u=a.current,d=u.size!==n,I=u.valueOrFn!==e,S=mr(u.options,t),M=u.size===0&&n>0&&(!i.current||i.current.base===0);if(I||S){const w=t?.resetOnValueFnChange??!0;S||I&&w||M?(t?.debug&&y.debug("[useFenwickMapTree] reset",{valueOrFnChanged:I,optionsChanged:S}),c.reset(n,e,t)):(d&&(t?.debug&&y.debug("[useFenwickMapTree] resize (with valueFn change)",{from:u.size,to:n}),c.changeSize(n)),t?.debug&&y.debug("[useFenwickMapTree] setValueFn (no reset)",{valueOrFnChanged:I}),c.setValueFn(e,{reset:!1})),a.current={size:n,valueOrFn:e,options:t}}else d&&(t?.debug&&y.debug("[useFenwickMapTree] resize",{from:u.size,to:n}),M?c.reset(n,e,t):c.changeSize(n),a.current={size:n,valueOrFn:e,options:t});return c};class pr{key;value;prev=null;next=null;constructor(e,t){this.key=e,this.value=t}}class At{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 Kt(s){const e=r.useRef(new Map),t=r.useRef(new At),n=Math.floor(s),i=r.useRef(n);r.useEffect(()=>{if(i.current=n,Number.isNaN(n)||n<0){y.warn(`useLruCache: invalid capacity ${s}; the cache will not store any entries.`),e.current.clear(),t.current=new At;return}if(Number.isFinite(n))for(;e.current.size>n;){const S=t.current.removeHead();if(S)e.current.delete(S.key);else break}},[s,n]);const a=r.useCallback(S=>{const M=e.current.get(S);if(M)return t.current.moveToTail(M),M.value},[]),c=r.useCallback((S,M)=>{const w=i.current;if(Number.isNaN(w)||w<=0)return;let g=e.current.get(S);if(g)g.value=M,t.current.moveToTail(g);else{if(e.current.size>=w){const D=t.current.removeHead();D&&e.current.delete(D.key)}g=new pr(S,M),e.current.set(S,g),t.current.addToTail(g)}},[]),u=r.useCallback(S=>e.current.has(S),[]),d=r.useCallback(S=>{const M=e.current.get(S);M&&(t.current.remove(M),e.current.delete(S))},[]),I=r.useCallback(()=>{e.current.clear(),t.current=new At},[]);return r.useMemo(()=>({get:a,set:c,has:u,remove:d,clear:I}),[a,c,u,d,I])}const hr=1e4,gr=()=>{const{get:s,set:e,has:t,clear:n}=Kt(hr);return r.useMemo(()=>({get:s,set:e,has:t,clear:n}),[s,e,t,n])},pe=(s,e)=>e<=0?0:he(s,0,e-1),zt=s=>({top:Math.max(0,s?.top??0),bottom:Math.max(0,s?.bottom??0)}),Qe=(s,e)=>s<=e?0:s-e,ft=(s,e)=>s<=0?e:s+e,Pt=1e3,Yt=2e3,br=1048576,xt=s=>{if(!Number.isFinite(s))return 0n;const e=Math.trunc(s);return e<=0?0n:BigInt(e)},xr=(s,e,t,n,i,a,c,u)=>{const d=xt(n);if(d===0n)return{renderingStartIndex:0,renderingEndIndex:0,visibleStartIndex:0,visibleEndIndex:0};const I=A=>A<0n?0n:A>=d?d-1n:A,S={materializeOption:{materialize:!1}},{index:M,cumulative:w}=a.findIndexAtOrAfter(s,S);let g;M===-1?g=d-1n:(w===s?g=xt(M+1):g=xt(M),g>=d&&(g=d-1n)),s<=0&&(g=0n),u&&s>=c&&(g=d-1n);const D=A=>{const _=Number(A);if(!Number.isSafeInteger(_))return null;const{cumulative:v}=a.prefixSum(_,{materializeOption:{materialize:!1}});if(!Number.isFinite(v))return null;const{index:Y}=a.findIndexAtOrAfter(v+.5,{materializeOption:{materialize:!1}});if(Y===-1)return null;const E=xt(Y);return E>A?E:null},F=A=>{let _=0,v=A,Y=A,E=0n,B=0;for(;v<d&&_<e;){const ee=Number(v),W=i(ee);if(_+=W,Y=v,v+=1n,E+=1n,!Number.isFinite(W)||W<0)break;if(W===0){if(B+=1,B>Pt){const h=D(Y);if(h!==null&&h>v)v=h,B=0;else if(h!==null&&h===v&&i(Number(v))>0)B=0;else break}}else B=0}return E===0n&&(Y=A),{height:_,end:Y}};let{height:K,end:le}=F(g);if(K<e&&g>0n){let A=g,_=K,v=0;for(;A>0n&&_<e;){A-=1n;const E=Number(A),B=i(E);if(_+=B,!Number.isFinite(B)||B<0)break;if(B===0){if(v+=1,v>Pt){const ee=Number(A);if(!Number.isSafeInteger(ee))break;const{cumulative:W}=a.prefixSum(ee,{materializeOption:{materialize:!1}});if(!Number.isFinite(W))break;const{index:h}=a.findIndexAtOrAfter(W-.5,{materializeOption:{materialize:!1}}),X=h===-1?-1n:xt(h);if(X>=0n&&X<A)A=X+1n,v=0;else if(X===A&&A>=1n&&i(Number(A-1n))>0)v=0;else break}}else v=0}g=I(A);const Y=F(g);K=Y.height,le=Y.end}const J=I(g),Q=I(le),fe=I(J-BigInt(Math.max(0,t))),xe=I(Q+BigInt(Math.max(0,t)));return{renderingStartIndex:pe(Number(fe),n),renderingEndIndex:pe(Number(xe),n),visibleStartIndex:pe(Number(J),n),visibleEndIndex:pe(Number(Q),n)}},Ir=(s,e,t,n,i,a,c)=>{if(n===0)return{renderingStartIndex:0,renderingEndIndex:0,visibleStartIndex:0,visibleEndIndex:0};const u=Number.isFinite(c),d=u?Math.min(Math.max(0,s),c):Math.max(0,s);if(n>=Number.MAX_SAFE_INTEGER)return xr(d,e,t,n,i,a,c,u);const{index:I,cumulative:S,currentValue:M}=a.findIndexAtOrAfter(d,{materializeOption:{materialize:!1}}),w=I===-1?e<=0||(S??0)<d+(M??0)?n-1:0:I;let g=pe(w,n),D=0;if(I!==-1&&S===d)g=pe(I+1,n),D=0;else if(g===I&&S!==void 0&&M!==void 0)D=S-M-d;else{const{cumulative:A,currentValue:_}=a.prefixSum(g,{materializeOption:{materialize:!1}});D=(A??0)-(_??0)-d}const F=D,K=(A,_)=>{let v=A,Y=_,E=0;for(;v<n&&Y<e;){const B=i(v);if(Y+=B,v++,!Number.isFinite(B)||B<0)break;if(B===0){if(E++,E>Pt){const{cumulative:ee}=a.prefixSum(v-1,{materializeOption:{materialize:!1}}),{index:W}=Number.isFinite(ee)?a.findIndexAtOrAfter(ee+.5,{materializeOption:{materialize:!1}}):{index:-1};if(W>v)v=W,E=0;else if(W===v&&i(v)>0)E=0;else break}}else E=0}return{cursor:v,height:Y}},le=K(g,D);let J=le.cursor;if(D=le.height,D<e&&g>0){let A=D+Math.abs(Math.min(0,F)),_=g-1,v=0;for(;_>=0&&A<e;){const E=i(_);if(A+=E,!Number.isFinite(E)||E<0){_--;break}if(E===0){if(v++,v>Pt){const{cumulative:B}=a.prefixSum(_,{materializeOption:{materialize:!1}}),{index:ee}=Number.isFinite(B)?a.findIndexAtOrAfter(B-.5,{materializeOption:{materialize:!1}}):{index:-1};if(ee!==-1&&ee<_){_=ee,v=0;continue}if(ee===_&&_>=1&&i(_-1)>0)v=0;else{_--;break}}}else v=0;_--}g=pe(_+1,n);const Y=K(g,0);J=Y.cursor,D=Y.height}const Q=pe(g-t,n),fe=pe(Math.max(J-1,g),n),xe=pe(fe+t,n);return{renderingStartIndex:Q,renderingEndIndex:xe,visibleStartIndex:g,visibleEndIndex:fe}},Bt=(s,e,t)=>{const n=Math.max(0,e??0),i=r.useRef({last:0,id:null,arg:null}).current;return r.useEffect(()=>()=>{i.id!==null&&(cancelAnimationFrame(i.id),i.id=null)},[i]),r.useCallback(a=>{if(i.arg=a,i.id!==null)return;const c=u=>{if(i.id=null,i.arg===null)return;const d=u-i.last;if(n===0||i.last===0||d>=n){if(s.current)try{t(s.current,i.arg)}catch(I){console.error("[useThrottledInvoker] Error invoking callback",I)}i.arg=null,i.last=u}i.arg!==null&&(i.id=requestAnimationFrame(c))};i.id=requestAnimationFrame(c)},[n,t,s,i])},Sr=r.memo(({index:s,top:e,height:t,item:n,children:i,clipItemHeight:a,enableKeyboardNavigation:c,onKeyDown:u,onFocus:d,registerItemRef:I})=>{const S=r.useCallback(D=>I(s,D),[s,I]),M=r.useCallback(D=>u(D,s),[s,u]),w=r.useCallback(()=>d(s),[s,d]),g=r.useCallback(D=>{D.currentTarget.focus({preventScroll:!0})},[]);return z.jsx("div",{ref:S,"data-index":s,"data-virtualscroll-item":"true",className:"aqvs-item-container",style:{top:e,height:t,overflow:a?"hidden":void 0},tabIndex:c?-1:void 0,onPointerDown:c?g:void 0,onKeyDownCapture:c?M:void 0,onFocusCapture:c?w:void 0,children:i(n,s)})}),Tr=({itemCount:s,getItem:e,getItemKey:t,getItemHeight:n,viewportSize:i,overscanCount:a=15,className:c,testId:u,onScroll:d,onRangeChange:I,children:S,background:M,initialScrollIndex:w,initialScrollOffset:g,callbackThrottleMs:D=5,contentInsets:F,onItemFocus:K,scrollBarOptions:le,behaviorOptions:J,onWheelHorizontal:Q},fe)=>{const{width:xe,enableThumbDrag:A,enableTrackClick:_,enableArrowButtons:v,enableScrollToTopBottomButtons:Y,renderThumbOverlay:E,tapScrollCircleOptions:B}=le??{},{enablePointerDrag:ee,pointerDragInputs:W,enableKeyboardNavigation:h=!0,wheelSpeedMultiplier:X,inertiaOptions:Se,clipItemHeight:Pe=!1,resetOnGetItemHeightChange:G=!1}=J??{},L=r.useRef(null),Ce=r.useRef({renderingStartIndex:0,renderingEndIndex:0,visibleStartIndex:0,visibleEndIndex:0,scrollPosition:0,totalHeight:0}),j=r.useRef(null),ye=r.useRef(!1);r.useEffect(()=>{G&&(j.current=null)},[G,n]);const R=r.useMemo(()=>zt(F),[F]),[Oe]=r.useState(()=>{const f=typeof w=="number"&&Number.isFinite(w)?Math.max(0,Math.trunc(w)):0;return{from:Math.max(0,f-50),to:f+50}}),Ye=r.useMemo(()=>({sampleRange:Oe,resetOnValueFnChange:G,materialize:!0}),[G,Oe]),T=Ut(s,n,Ye),[Be]=r.useState(()=>{let o=0,f=0;if(typeof w=="number"){const p=he(w,0,s-1),k=he(p-a*2,0,s-1),N=he(p+a*2,0,s-1),O=w>0?{materializeOption:{materialize:!0,ranges:[{from:k,to:N}]}}:void 0,{cumulative:$,total:U,currentValue:Me}=T.prefixSum(w,O),de=Math.max($-Me,0);o=ft(de,R.top),f=U??T.getTotal()}else typeof g=="number"&&(o=ft(Math.max(g,0),R.top)),f=T.getTotal();return{position:o,total:f}}),[Fe,Ke]=r.useState(Be.position),[ie,$e]=r.useState(Be.total),m=r.useRef(Be.position),ce=r.useRef(R.top),ae=r.useRef(d??void 0),q=r.useRef(I??void 0),ne=r.useRef(new Map),Z=r.useRef(null),ve=r.useRef(null),[Re,we]=r.useState(null),[te,ke]=r.useState(!1),Te=r.useRef(null),ue=r.useRef(!1),se=r.useRef(0),Ne=r.useRef(!1),qe=r.useRef(!1),We=r.useRef(s);We.current!==s&&(We.current=s,qe.current=!0),r.useEffect(()=>{ae.current=d??void 0,q.current=I??void 0},[I,d]);const oe=r.useCallback(o=>{if(h&&o&&typeof o.focus=="function")try{o.focus({preventScroll:!0})}catch{o.focus()}},[h]),b=r.useCallback((o,{position:f,totalHeight:p})=>{o(f,p)},[]),P=Bt(ae,D,b),ge=r.useCallback((o,f)=>{o(f)},[]),ze=Bt(q,D,ge),be=r.useRef(R.top);be.current=R.top;const Ae=r.useRef(P);Ae.current=P,r.useEffect(()=>(ye.current=!1,()=>{ye.current=!0,Te.current&&(clearTimeout(Te.current),Te.current=null)}),[]),r.useEffect(()=>{h||(ne.current.clear(),Z.current=null,ve.current=null)},[h]);const Ie=r.useCallback((o,f)=>{if(!f){ne.current.delete(o);return}h&&(ne.current.set(o,f),Z.current===o&&(Z.current=null,ve.current=o,oe(f)))},[h,oe]),He=.01,Le=r.useRef({rafId:null,loopActive:!1,idleFrames:0,lastRenderedPosition:Be.position}),tt=r.useCallback(()=>{const o=Le.current;o.rafId!==null&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(o.rafId),o.rafId=null,o.loopActive=!1,o.idleFrames=0},[]);r.useEffect(()=>()=>{tt()},[tt]);const dt=r.useRef(()=>{}),at=r.useCallback(()=>{const o=Le.current;o.rafId=null;const f=m.current,p=Qe(f,be.current),k=T.getTotal();if(Ke(O=>Math.abs(O-f)<He?O:f),Math.abs(o.lastRenderedPosition-f)>=He?(Ae.current({position:p,totalHeight:k}),o.lastRenderedPosition=f,o.idleFrames=0):o.idleFrames+=1,o.idleFrames>=2){tt();return}if(typeof requestAnimationFrame=="function"){o.rafId=requestAnimationFrame(O=>dt.current(O));return}o.loopActive=!1},[T,tt]);dt.current=at;const mt=r.useCallback(()=>{const o=Le.current;if(o.idleFrames=0,!o.loopActive){if(o.loopActive=!0,typeof requestAnimationFrame=="function"){o.rafId=requestAnimationFrame(at);return}o.loopActive=!1}},[at]),re=r.useCallback((o,f)=>{const p=f?.immediate??!1,k=Qe(o,R.top);if(m.current=o,p){Le.current.lastRenderedPosition=o,Le.current.idleFrames=0,Ke(o),P({position:k,totalHeight:T.getTotal()});return}mt()},[mt,T,R.top,P]),_e=r.useCallback(o=>{const f=L.current;if(!f)return o;const p=f.getScrollPosition();se.current+=1;const k=f.scrollTo(o);return k===p&&(se.current=Math.max(0,se.current-1)),Math.abs(k-o)>.5&&(Ne.current=!0),k},[]),pt=r.useRef(!1);r.useEffect(()=>{if(!pt.current)if(pt.current=!0,typeof g=="number"){const o=ft(Math.max(g,0),R.top),f=Math.abs(o-m.current)>.5;re(o,{immediate:!0}),f&&L.current?.scrollTo(o)}else re(m.current,{immediate:!0})},[g,R.top,re]),r.useEffect(()=>{const o=T.getTotal();if(ie!==o){$e(o);return}if(Ne.current){Ne.current=!1;const f=L.current;if(f&&Math.abs(f.getScrollPosition()-m.current)>.5){const p=_e(m.current);Ne.current=!1,re(p,{immediate:!0})}}},[T,ie,s,_e,re]),r.useEffect(()=>{if(j.current!==null){const{index:o,align:f,offset:p}=j.current,k=pe(o,s),{cumulative:N,currentValue:O}=T.prefixSum(k,{materializeOption:{materialize:!1}});if(N!==void 0&&O!==void 0){const $=Math.max(N-O,0);let U=$;f==="bottom"?U=N-i:f==="center"&&(U=$+O/2-i/2),p&&(U-=p),U=Math.max(0,U);const Me=Math.max(0,ie+R.top+R.bottom-i),de=Math.min(ft(U,R.top),Me);Math.abs(de-m.current)>1&&(y.debug("[VirtualScroll] Drift correction",{from:m.current,to:de,targetIndex:k}),se.current===0&&(se.current+=1),L.current?.scrollTo(de),re(de,{immediate:!0}))}}qe.current=!1},[ie,T,s,R.top,re,i,R.bottom]),r.useEffect(()=>{const o=ce.current;if(o===R.top)return;const f=Qe(m.current,o),p=ft(f,R.top);ce.current=R.top,m.current=p,L.current?.scrollTo(p),re(p,{immediate:!0})},[R.top,re]);const ht=r.useCallback((o,f)=>{if(s===0)return;const p=pe(o,s),k=T.get(p),N=f-k,O=T.update(p,f);O!==void 0&&$e(O),y.debug("[VirtualScroll] Updated item size manually",{index:p,size:f,total:O});let $=j.current?j.current.index:null;if($===null){const U=m.current,Me=zt(F).top,de=Qe(U,Me),{index:me,cumulative:Ve}=T.findIndexAtOrAfter(de,{materializeOption:{materialize:!1}});$=Ve!==void 0&&Ve===de?me+1:me}if($!==-1&&p<$&&N!==0){const U=m.current,Me=U+N;_e(Me),re(Me,{immediate:!0}),y.debug("[VirtualScroll] Adjusted scroll for layout shift (manual update)",{from:U,to:Me,causedByIndex:p,delta:N,activeVisibleStartIndex:$})}},[T,s,_e,re,F]),je=r.useCallback((o,f)=>{if(!L.current||s===0)return;const p=pe(o,s),k=pe(p-a*2,s),N=pe(p+a*2,s),{cumulative:O,total:$,currentValue:U}=T.prefixSum(p,{materializeOption:{materialize:!0,ranges:[{from:k,to:N}]}});if(y.debug("[VirtualScroll] Scrolling to index:",p,"ItemBottom:",O,"Total height:",$,"ItemHeight:",U,"safeIndexFrom:",k,"safeIndexTo:",N),!$)return;const Me=Math.max(O-U,0);let de=Me;f?.align==="bottom"?de=O-i:f?.align==="center"&&(de=Me+U/2-i/2),f?.offset&&(de-=f.offset),de=Math.max(0,de);const me=ft(de,R.top),Ve=L.current?.getContentSize()??$+R.top+R.bottom,Ee=Math.max(0,Ve-i),De=Math.min(me,Ee);j.current={index:p,align:f?.align,offset:f?.offset};const gt=L.current?.getScrollPosition()??-1,yt=Math.abs(gt-De)>.5;ue.current=!1,se.current=0,yt&&(ue.current=!0,se.current+=1,L.current?.scrollTo(De)),$e($),re(De,{immediate:!0}),y.debug("[VirtualScroll] Setting scroll position to:",De,{original:me,max:Ee})},[T,a,s,R.top,R.bottom,i,re]),It=r.useCallback(o=>{if(!L.current||s===0)return;const f=T.getTotal(),p=he(Math.floor(o),0,f),{index:k,cumulative:N,currentValue:O}=T.findIndexAtOrAfter(p,{materializeOption:{materialize:!1}}),U=(N??0)-(O??0)-p;je(k,{offset:U})},[T,s,je]),ot=r.useCallback(o=>{const f=Qe(m.current,R.top),p=typeof o=="function"?o(f):o;It(p);const k=L.current?.getScrollPosition(),N=typeof k=="number"?k:m.current;return re(N),N},[R.top,It,re]),Ct=r.useCallback((o,f)=>{y.debug("[VirtualScroll] Scroll position changed:",o);const p=ue.current;p&&(ue.current=!1);const k=se.current>0;if(k&&(se.current=0),p||k||qe.current||(j.current=null),re(o),Y){if(p||k)return;const N=o-f;if(y.debug("[VirtualScroll] Scroll diff:",N,"New:",o,"Prev:",f),Math.abs(N)>1){const O=N>0?"down":"up";we(O),ke(!0),y.debug("[VirtualScroll] Showing scroll buttons. Direction:",O),Te.current&&clearTimeout(Te.current),Te.current=setTimeout(()=>{ke(!1),y.debug("[VirtualScroll] Hiding scroll buttons")},2e3)}}},[re,Y]),Ge=r.useMemo(()=>Qe(Fe,R.top),[R.top,Fe]),rt=r.useMemo(()=>{const o=T.getTotal(),f=Ir(Ge,i,a,s,n,T,o);return y.debug("[VirtualScroll] Calculated rendering range:",()=>({...f,scrollPosition:Ge,renderingContentSize:o,overscanCount:a,viewportSize:i})),f},[Ge,i,a,s,n,T]),{renderingStartIndex:Xe,renderingEndIndex:Ze,visibleStartIndex:nt,visibleEndIndex:lt}=rt,Je=r.useCallback((o,f)=>{if(!h||s===0)return;const p=pe(o,s);if(!(f?.ensureVisible??!0)){const Ee=ne.current.get(p);Ee&&(Z.current=null,ve.current=p,oe(Ee));return}const N=T.prefixSum(p,{materializeOption:{materialize:!1}}),O=N.currentValue,$=Math.max(N.cumulative-O,0),U=$+O,Me=Qe(m.current,R.top),de=Me+i;if($<Me||U>de){je(p);const Ee=ne.current.get(p);Ee?(Z.current=null,ve.current=p,oe(Ee)):Z.current=p;return}const Ve=ne.current.get(p);if(Ve){Z.current=null,ve.current=p,oe(Ve);return}Z.current=p},[h,s,T,R.top,je,oe,i]),St=r.useCallback((o,f)=>{if(!h||o.defaultPrevented||o.altKey||o.metaKey||o.ctrlKey)return;const p=o.target;if(p){const k=p.tagName;if(k==="INPUT"||k==="TEXTAREA"||k==="SELECT"||p.isContentEditable)return}if(o.key==="ArrowDown"){f<s-1&&(o.preventDefault(),Je(f+1));return}if(o.key==="ArrowUp"){f>0&&(o.preventDefault(),Je(f-1));return}if(o.key==="PageDown"){if(f<s-1){o.preventDefault();const{visibleStartIndex:k,visibleEndIndex:N}=Ce.current,O=Math.max(N-k+1,1),$=Math.max(O,1),U=pe(Math.min(f+$,s-1),s);Je(U)}return}if(o.key==="PageUp"&&f>0){o.preventDefault();const{visibleStartIndex:k,visibleEndIndex:N}=Ce.current,O=Math.max(N-k+1,1),$=Math.max(O,1),U=pe(f-$,s);Je(U)}},[h,s,Je]),Tt=r.useCallback(o=>{if(!h)return;const f=pe(o,s);Z.current=null,ve.current=f,K?.(f)},[h,s,K]);r.useEffect(()=>{const o=L.current?.getScrollPosition()??0,f=m.current,p=Qe(f,R.top);y.debug("[VirtualScroll] Range change effect triggered",()=>({renderingStartIndex:Xe,renderingEndIndex:Ze,visibleStartIndex:nt,visibleEndIndex:lt,scrollPositionState:Fe,paneScrollPosition:f,logicalScrollPosition:p,contentSize:ie,scrollPaneScrollPosition:o})),ze({renderingStartIndex:Xe,renderingEndIndex:Ze,visibleStartIndex:nt,visibleEndIndex:lt,scrollPosition:p,totalHeight:ie})},[ie,Ze,Xe,R.top,ze,Fe,lt,nt]);const Mt=r.useCallback(()=>{if(!Y)return null;const o=te&&Re!==null,f=Re==="up";return z.jsx("div",{className:"aqvs-scroll-to-edge-overlay","data-visible":o,children:f?z.jsx("div",{className:"aqvs-scroll-to-edge-button-container aqvs-scroll-to-edge-button-container-top",children:z.jsx("button",{type:"button",className:"aqvs-scroll-to-edge-button",onClick:p=>{p.stopPropagation(),ue.current=!0,je(0),ke(!1)},children:"Top"})}):z.jsx("div",{className:"aqvs-scroll-to-edge-button-container aqvs-scroll-to-edge-button-container-bottom",children:z.jsx("button",{type:"button",className:"aqvs-scroll-to-edge-button",onClick:p=>{p.stopPropagation(),ue.current=!0,je(s-1),ke(!1)},children:"Bottom"})})})},[Y,te,Re,je,s]),ct=r.useRef(0),{visibleItems:l,renderAnchor:x}=r.useMemo(()=>{if(s===0)return{visibleItems:z.jsx("div",{className:"aqvs-no-items-container",children:z.jsx("div",{className:"aqvs-no-items-text",children:"No items"})}),renderAnchor:0};const o=pe(Xe,s),f=pe(Ze,s),{cumulative:p,currentValue:k}=T.prefixSum(o,{materializeOption:{materialize:!1}}),N=p-k;Number.isFinite(N)&&Math.abs(N-ct.current)>br&&(ct.current=N);const O=ct.current,$=[],U=[];let Me=0,de=N;for(let me=o;me<=f;me++){if(U.length>=Yt){y.warn("[VirtualScroll] Rendered item count reached the safety cap; truncating render window.",{cap:Yt,safeRenderingStartIndex:o,safeRenderingEndIndex:f});break}const Ve=n(me),Ee=T.get(me),De=Ve-Ee;De!==0&&$.push({index:me,value:Ve});const gt=de+Me,yt=t?t(me):me;U.push(z.jsx(Sr,{index:me,top:gt-O,height:Ve,item:e(me),clipItemHeight:Pe,enableKeyboardNavigation:h,onKeyDown:St,onFocus:Tt,registerItemRef:Ie,children:S},yt)),Me+=De,de+=Ee}return $.length>0&&Promise.resolve().then(()=>{if(ye.current)return;let me=0;for(const De of $)if(De.index<nt){const gt=T.get(De.index);me+=De.value-gt}const Ve=T.updates($);if(ye.current||typeof Ve!="number")return;$e(Ve),y.debug("[VirtualScroll] Updated heights for items",$,"New total height:",Ve);const Ee=L.current?.getScrollPosition()??m.current;if(me!==0){const De=Ee+me;_e(De),re(De,{immediate:!0}),y.debug("[VirtualScroll] Adjusted scroll for layout shift (auto update)",{from:Ee,to:De,shiftAmount:me})}else Ee!==m.current&&re(Ee)}),{visibleItems:U,renderAnchor:O}},[S,Pe,ie,h,s,T,e,t,n,Tt,St,_e,Ie,Ze,Xe,re,nt]),C=r.useCallback(o=>{const f=(D??0)>0,p=Math.abs(o-Fe),k=f&&p>.5?Fe:o,N=Qe(k,R.top);if(y.debug("[VirtualScroll] Rendering visible items",()=>({currentScrollPosition:o,effectiveScrollPosition:N,renderingStartIndex:Xe,renderingEndIndex:Ze,itemCount:s,viewportSize:i,callbackThrottleMs:D,diff:p,rawEffectiveScrollPosition:k})),s===0)return l;const O=R.top+x-k,$=R.bottom>0?z.jsx("div",{className:"aqvs-bottom-inset",style:{top:T.getTotal()-x,height:R.bottom}},"virtualscroll-bottom-inset"):null;return y.debug("[VirtualScroll] Rendering items",()=>({containerTop:O,logicalScrollPosition:Ge,resolvedInsets:R,effectiveScrollPosition:N})),z.jsxs("div",{className:"aqvs-items-wrapper",style:{top:0,transform:`translateY(${O}px)`,willChange:"transform"},children:[l,$]})},[D,s,T,Ge,x,Ze,Xe,R,Fe,i,l]),V=r.useMemo(()=>({renderingStartIndex:rt.renderingStartIndex,renderingEndIndex:rt.renderingEndIndex,visibleStartIndex:rt.visibleStartIndex,visibleEndIndex:rt.visibleEndIndex,scrollPosition:Ge,totalHeight:T.getTotal()}),[rt,Ge,T,ie]);r.useEffect(()=>{Ce.current=V},[V]),r.useImperativeHandle(fe,()=>({getScrollPosition:()=>L.current?.getScrollPosition()??-1,getContentSize:()=>L.current?.getContentSize()??-1,getViewportSize:()=>L.current?.getViewportSize()??-1,scrollTo:ot,scrollToIndex:je,getFenwickTreeTotalHeight:()=>T.getTotal(),getFenwickSize:()=>T.getSize(),focusItemAtIndex:Je,getRange:()=>Ce.current,updateItemSize:ht}),[ot,je,T,Je,ht]);const H=T.getTotal()+R.top+R.bottom;return z.jsx($t,{ref:L,contentSize:H,viewportSize:i,className:c,testId:u,onScroll:Ct,background:M,tapScrollCircleOptions:B,inertiaOptions:Se,itemCount:s,scrollBarWidth:xe,enableThumbDrag:A,enableTrackClick:_,enableArrowButtons:v,enablePointerDrag:ee,pointerDragInputs:W,renderThumbOverlay:E,wheelSpeedMultiplier:X,onWheelHorizontal:Q,contentInsets:R,visibleStartIndex:nt,visibleEndIndex:lt,renderOverlay:Mt,initialScrollPosition:Be.position,children:C})},Mr=r.forwardRef(Tr);exports.FenwickMapTree=et;exports.ScrollBar=jt;exports.ScrollPane=$t;exports.TAP_SCROLL_SPEED_DEFAULTS=Dt;exports.VirtualScroll=Mr;exports.computeAutoTapScrollMaxSpeedMultiplier=Xt;exports.computeTapScrollSpeed=Ht;exports.minmax=he;exports.tapScrollCircleSampleVisual=fr;exports.useFenwickMapTree=Ut;exports.useHeightCache=gr;exports.useLruCache=Kt;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const z=require("react/jsx-runtime"),r=require("react"),at=require("tailwind-merge");class y{level;prefix;impl;constructor(e=2,t="[virtualscroll]",n=console){this.level=e,this.prefix=t,this.impl=n}static instance=new y(2,"[virtualscroll]");static setLevel(e){y.instance.setLevel(e)}setLevel(e){this.level=e}static setImplementation(e){y.instance.setImplementation(e)}setImplementation(e){this.impl=e}static setPrefix(e){y.instance.setPrefix(e)}setPrefix(e){this.prefix=e}static isEnabled(e){return y.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,...t){y.instance.debug(e,...t)}debug(e,...t){this.level<=0&&this.impl.debug(...this.formatMessage(y.resolveLazy(e)),...t.map(y.resolveLazy))}static info(e,...t){y.instance.info(e,...t)}info(e,...t){this.level<=1&&this.impl.info(...this.formatMessage(y.resolveLazy(e)),...t.map(y.resolveLazy))}static warn(e,...t){y.instance.warn(e,...t)}warn(e,...t){this.level<=2&&this.impl.warn(...this.formatMessage(y.resolveLazy(e)),...t.map(y.resolveLazy))}static error(e,...t){y.instance.error(e,...t)}error(e,...t){this.level<=3&&this.impl.error(...this.formatMessage(y.resolveLazy(e)),...t.map(y.resolveLazy))}}const Lt={active:!1,offsetX:0,offsetY:0,distance:0,direction:0,pointerId:null},wt=6,Wt=8,Gt=({dragState:s,normalizedDistance:e})=>{const t=1+e*.18,n=.16+e*.24,i=.38+e*.28,a=s.active?"80ms ease-out":"220ms ease";return z.jsxs(z.Fragment,{children:[z.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,${n})`,transform:`scale(${t})`,transition:`${a}, ${s.active?"80ms":"260ms"} box-shadow ease`}}),z.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:s.active?"120ms opacity ease-out":"220ms opacity ease"}})]})},qt=r.memo(r.forwardRef(({onDragChange:s,className:e,maxVisualDistance:t=160,size:n=40,style:i,opacity:a=1,renderVisual:c},u)=>{const[m,I]=r.useState(Lt),T=r.useRef(null),M=r.useRef(null),w=r.useRef({x:0,y:0}),b=r.useRef(null),D=r.useRef(0),F=r.useCallback(g=>{I(g),s(g)},[s]),K=r.useCallback((g,X,xe=!1)=>{const{x:ve,y:G}=w.current,L=g-ve,Pe=X-G,j=Math.abs(Pe),Ce=j<wt?0:Pe<0?-1:1,P=D.current;let Oe=Ce;const Be=wt+Wt;Ce===0?P!==0&&j<Be?Oe=P:(Oe=0,xe||(D.current=0)):Ce!==P&&P!==0&&j<Be?Oe=P:D.current=Ce,F({active:xe||j>=wt,offsetX:L,offsetY:Pe,distance:j,direction:Oe,pointerId:T.current})},[F]),ue=r.useCallback(g=>{if(g===null)return;const X=b.current;X?.hasPointerCapture(g)&&X.releasePointerCapture(g)},[]),J=r.useCallback((g=!1)=>{g&&ue(T.current),T.current=null,M.current=null,D.current=0,F(Lt)},[F,ue]),Q=r.useCallback(g=>{if(T.current!==null&&T.current!==g.pointerId){M.current={pointerId:g.pointerId,clientX:g.clientX,clientY:g.clientY},g.preventDefault(),g.stopPropagation();return}g.preventDefault(),g.stopPropagation();const X=b.current??g.currentTarget,{left:xe,top:ve,width:G,height:L}=X.getBoundingClientRect();w.current={x:xe+G/2,y:ve+L/2},T.current=g.pointerId;try{X.setPointerCapture(g.pointerId)}catch{}K(g.clientX,g.clientY,!0)},[K]),de=r.useCallback(g=>{if(T.current!==g.pointerId){M.current!==null&&M.current.pointerId===g.pointerId&&(M.current={pointerId:g.pointerId,clientX:g.clientX,clientY:g.clientY});return}g.preventDefault(),K(g.clientX,g.clientY)},[K]),be=r.useCallback(g=>{if(T.current!==g.pointerId){M.current!==null&&M.current.pointerId===g.pointerId&&(M.current=null);return}g.preventDefault(),g.stopPropagation();const X=M.current;if(M.current=null,X!==null){ue(g.pointerId);const xe=b.current;let ve=!0;if(xe!==null&&typeof xe.setPointerCapture=="function")try{xe.setPointerCapture(X.pointerId)}catch(G){(typeof G=="object"&&G!==null&&"name"in G?G.name:void 0)==="NotFoundError"&&(ve=!1)}if(ve){T.current=X.pointerId,K(X.clientX,X.clientY,!0);return}}J(!0)},[J,ue,K]),A=r.useCallback(g=>{g.target===g.currentTarget&&T.current===g.pointerId&&J(!1)},[J]);r.useImperativeHandle(u,()=>({reset:()=>{J(!0)},getElement:()=>b.current}),[J]);const _=Math.min(Math.max(a,0),1),R=n/64,Y=Math.min(m.distance,t)/t,E=m.direction*Y*10*R,B=c??Gt,ee={dragState:m,normalizedDistance:Y,sizeScale:R,size:n,opacity:_},W={...i,width:n,height:n,transform:`translateY(${E}px)`};return W.opacity=_,z.jsx("div",{ref:b,"data-testid":"virtual-scroll-tap-circle",className:at.twMerge("aqvs-tap-scroll-circle",e),style:W,tabIndex:-1,onPointerDown:Q,onPointerMove:de,onPointerUp:be,onPointerCancel:be,onLostPointerCapture:A,role:"presentation",children:B(ee)})}));qt.displayName="TapScrollCircle";const ge=(s,e,t)=>Math.max(e,Math.min(t,s)),Vt="virtualscroll:tap-scroll-cancel",_t=20,Zt=250,Jt=60,Qt=20,er=20,Dt={maxDistance:240,minSpeedMultiplier:.2},tr=Dt.maxDistance,Ot={active:!1,offsetX:0,offsetY:0,distance:0,direction:0,pointerId:null},Et=2.2,rr=8,nr=120,sr=1/10,Ue={enabled:!0,size:40,offsetX:-80,offsetY:0,className:void 0,maxVisualDistance:tr,minSpeedMultiplier:Dt.minSpeedMultiplier,opacity:.9,renderVisual:void 0,maxSpeedCurve:void 0},ir=s=>s?{mainSizeKey:"width",crossSizeKey:"height",positionKey:"left",selectDelta:(e,t)=>e,getPointerCoordinate:({clientX:e})=>e,arrowLabels:["Scroll left","Scroll right"],arrowIcons:["◀","▶"],directionClass:"aqvs-scrollbar-horizontal",orientation:"horizontal"}:{mainSizeKey:"height",crossSizeKey:"width",positionKey:"top",selectDelta:(e,t)=>t,getPointerCoordinate:({clientY:e})=>e,arrowLabels:["Scroll up","Scroll down"],arrowIcons:["▲","▼"],directionClass:"aqvs-scrollbar-vertical",orientation:"vertical"},ar=(s,e)=>{const t=s?.maxSpeedMultiplier,n=typeof t=="number"?t:Xt(e);return{enabled:s?.enabled??Ue.enabled,size:s?.size??Ue.size,offsetX:s?.offsetX??Ue.offsetX,offsetY:s?.offsetY??Ue.offsetY,className:s?.className??Ue.className,maxVisualDistance:s?.maxVisualDistance??Ue.maxVisualDistance,maxSpeedMultiplier:n,minSpeedMultiplier:Math.max(s?.minSpeedMultiplier??Ue.minSpeedMultiplier,0),opacity:ge(s?.opacity??Ue.opacity,0,1),renderVisual:s?.renderVisual??Ue.renderVisual,maxSpeedCurve:s?.maxSpeedCurve??Ue.maxSpeedCurve}},or=({isDragging:s,isThumbHovered:e,enableThumbDrag:t})=>r.useMemo(()=>t?s?"dragging":e?"hover":"idle":"disabled",[t,s,e]),lr=({canUseArrowButtons:s,enableArrowButtons:e,resetTapScroll:t,scrollByStep:n})=>{const i=r.useRef(null),a=r.useRef(null),c=r.useRef(null),u=r.useCallback(()=>{i.current!==null&&(window.clearInterval(i.current),i.current=null),a.current!==null&&(window.clearTimeout(a.current),a.current=null),c.current!==null&&(window.removeEventListener("pointerup",c.current),window.removeEventListener("pointercancel",c.current),window.removeEventListener("blur",c.current),c.current=null)},[]),m=r.useCallback(()=>{u()},[u]),I=r.useCallback(M=>w=>{if(!s)return;w.cancelable&&w.preventDefault(),w.stopPropagation(),t(),u(),n(M),a.current=window.setTimeout(()=>{i.current=window.setInterval(()=>{n(M)},Jt)},Zt);const b=()=>u();c.current=b,window.addEventListener("pointerup",b),window.addEventListener("pointercancel",b),window.addEventListener("blur",b)},[s,u,t,n]),T=r.useCallback(M=>w=>{e&&(w.key==="Enter"||w.key===" "||w.key==="Spacebar")&&(w.preventDefault(),n(M))},[e,n]);return r.useEffect(()=>{s||u()},[s,u]),r.useEffect(()=>()=>{u()},[u]),{handleArrowPointerDown:I,handleArrowPointerUp:m,handleArrowKeyDown:T}},cr=700,nt=(s,e)=>typeof s=="number"&&Number.isFinite(s)?s:e,Ht=({distance:s,maxDistance:e,viewportSize:t,minSpeedMultiplier:n,maxSpeedMultiplier:i,hasCustomMaxSpeedMultiplier:a,curve:c})=>{const u=Math.max(nt(s,0),0),m=nt(e,0),I=m>0?Math.min(u,m)/m:1,T=Math.max(nt(t,0),0),M=Math.max(nt(n,0),0),w=Math.max(nt(i,0),0),b=Math.max(T*M,40),D=a?b:1200,F=Math.max(T*w,D),K=c?Math.max(nt(c.exponentialScale,w),0):0,ue=c?Math.min(F,Math.max(T*K,b)):F,J=Math.max(ue,b);let Q=I**1.1;if(c){const be=Math.min(Math.max(nt(c.exponentialSteepness,0),0),cr);if(be===0)Q=I;else{const A=Math.expm1(be)||1;Q=Math.min(Math.max(Math.expm1(be*I)/A,0),1)}}const de=Math.min(Math.max(nt(c?.easedOffset,0),0),1);return b+(J-b)*(de+(1-de)*Q)},Xt=s=>{if(!s||s<=0)return Et;const e=Math.max(1,s),t=Math.log10(e),n=Et+t*rr;return ge(n,Et,nr)},jt=({contentSize:s,viewportSize:e,scrollPosition:t,onScroll:n,enableThumbDrag:i=!0,enableTrackClick:a=!0,enableArrowButtons:c=!0,horizontal:u=!1,scrollBarWidth:m=12,className:I,ariaControls:T,tapScrollCircleOptions:M,itemCount:w,renderThumbOverlay:b,visibleStartIndex:D,visibleEndIndex:F})=>{const[K,ue]=r.useState(!1),[J,Q]=r.useState(!1),[de,be]=r.useState(!1),A=r.useRef(null),_=r.useRef({pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1,captureTarget:null}),R=r.useRef({pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1}),Y=r.useRef(t),E=r.useRef(n),B=r.useRef(Ot),ee=r.useRef(null),W=r.useRef(null),g=r.useRef(null),X=r.useRef(0),xe=r.useRef(0),ve=r.useMemo(()=>ar(M,w),[w,M]),G=r.useMemo(()=>ir(u),[u]),{enabled:L,size:Pe,offsetX:j,offsetY:Ce,className:P,maxVisualDistance:Oe,maxSpeedMultiplier:Be,minSpeedMultiplier:S,opacity:qe,renderVisual:Fe,maxSpeedCurve:Ke}=ve,ae=r.useRef({viewportSize:e,maxScrollPosition:Math.max(s-e,0),scrollBarVisible:s>e,effectiveTapMaxDistance:Math.max(Oe,1),tapCircleMaxSpeedMultiplier:Be,tapCircleMinSpeedMultiplier:S,tapCircleMaxSpeedCurve:Ke,tapScrollCircleOptions:M,effectiveTrackLength:0,onScroll:n,scrollPosition:t}),{mainSizeKey:je,crossSizeKey:d,positionKey:fe,selectDelta:oe,getPointerCoordinate:q,arrowLabels:re,arrowIcons:Z,directionClass:Se,orientation:Me}=G,ye=Math.max(Oe,1),ne=e/s,Ie=Math.max(e-m*2,0),Re=ne*Ie,le=Math.min(Math.max(_t,Re||0),Ie||_t),se=s-e,ke=Math.max(Ie-le,0),ze=se<=0||ke<=0?0:ge(t/se*ke,0,ke),st=ze+le/2,ce=s>e||K,We=ce&&c;r.useLayoutEffect(()=>{ae.current={viewportSize:e,maxScrollPosition:se,scrollBarVisible:ce,effectiveTapMaxDistance:ye,tapCircleMaxSpeedMultiplier:Be,tapCircleMinSpeedMultiplier:S,tapCircleMaxSpeedCurve:Ke,tapScrollCircleOptions:M,effectiveTrackLength:ke,onScroll:n,scrollPosition:t}}),r.useLayoutEffect(()=>{Y.current=t},[t]),r.useLayoutEffect(()=>{E.current=n},[n]),r.useEffect(()=>{i||Q(!1)},[i]);const p=or({isDragging:K,isThumbHovered:J,enableThumbDrag:i}),v=r.useCallback((o,x)=>{const C=ae.current,V=x??Y.current;if(E.current){const h=E.current(o,V);if(typeof h=="number"&&Number.isFinite(h))return Y.current=h,h}const H=typeof o=="function"?o(V):o,l=Math.max(C.maxScrollPosition,0),f=C.scrollBarVisible?ge(H,0,l):0;return Y.current=f,f},[]),we=r.useCallback(o=>{const x=ae.current,C=Y.current;if(!x.scrollBarVisible||x.maxScrollPosition<=0){const N=v(0,C),O=N-C;return{nextPosition:N,actualDelta:O,reachedBoundary:!0}}if(o===0)return{nextPosition:C,actualDelta:0,reachedBoundary:!1};const H=v(N=>ge(N+o,0,x.maxScrollPosition),C),l=H-C,f=o<0&&C+o<=0,h=o>0&&C+o>=x.maxScrollPosition,k=o<0&&(H<=0||f&&l===0)||o>0&&(H>=x.maxScrollPosition||h&&l===0);return{nextPosition:H,actualDelta:l,reachedBoundary:k}},[v]),Ne=r.useCallback((o,x)=>{o.current+=x;const C=Math.max(ae.current.maxScrollPosition,0);C>0&&(o.current=ge(o.current,-C,C));const V=we(o.current);return o.current-=V.actualDelta,V.reachedBoundary&&(o.current=0),V},[we]),ie=r.useCallback(()=>{W.current!==null&&(window.cancelAnimationFrame(W.current),W.current=null),g.current=null,X.current=0,xe.current=0},[]),Ae=r.useCallback(()=>{B.current={...Ot},be(!1),ee.current?.reset(),ie()},[ie]),Ye=r.useCallback(o=>{const x=B.current,C=ae.current;if(!x.active||x.direction===0){ie();return}if(!C.scrollBarVisible||C.maxScrollPosition<=0){ie();return}const V=g.current??o,H=Math.max((o-V)/1e3,0),l=Math.min(H,sr);if(g.current=o,l<=0){W.current=window.requestAnimationFrame(Ye);return}const f=Ht({distance:x.distance,maxDistance:C.effectiveTapMaxDistance,viewportSize:C.viewportSize,minSpeedMultiplier:C.tapCircleMinSpeedMultiplier,maxSpeedMultiplier:C.tapCircleMaxSpeedMultiplier,hasCustomMaxSpeedMultiplier:typeof C.tapScrollCircleOptions?.maxSpeedMultiplier=="number",curve:C.tapCircleMaxSpeedCurve});xe.current!==x.direction&&(xe.current=x.direction,X.current=0);const{reachedBoundary:h}=Ne(X,x.direction*f*l);if(h){ie();return}W.current=window.requestAnimationFrame(Ye)},[Ne,ie]),Ve=r.useCallback(()=>{W.current===null&&(g.current=null,X.current=0,W.current=window.requestAnimationFrame(Ye))},[Ye]);r.useEffect(()=>{const o=B.current;!o.active||o.direction===0||Ve()},[s,e,Ve]),r.useEffect(()=>()=>{ie()},[ie]);const $e=r.useCallback(o=>{B.current=o,be(o.active),o.active&&o.direction!==0?Ve():ie()},[Ve,ie]);r.useEffect(()=>{L||Ae()},[Ae,L]),r.useEffect(()=>{const o=x=>{const V=x.detail?.paneId;V&&T&&V!==T||Ae()};return window.addEventListener(Vt,o),()=>{window.removeEventListener(Vt,o)}},[T,Ae]),r.useEffect(()=>{if(!L)return;const o=x=>{if(!B.current.active||B.current.pointerId===x.pointerId)return;const C=x.target;if(!(C instanceof Node)){Ae();return}ee.current?.getElement()?.contains(C)||Ae()};return document.addEventListener("pointerdown",o,!0),()=>{document.removeEventListener("pointerdown",o,!0)}},[Ae,L]);const it=o=>{if(!ce||ke<=0||se<=0)return 0;const x=ge(o,0,ke);return ge(x/ke*se,0,se)},ot=r.useCallback(o=>{const{scrollBarVisible:x,effectiveTrackLength:C,maxScrollPosition:V}=ae.current;if(y.debug("[ScrollBar] calculateScrollPositionFromThumb",()=>({thumbPos:o,trackLen:C,maxScroll:V})),C<=0||V<=0)return null;const H=ge(o,0,C);return ge(H/C*V,0,V)},[]),mt=r.useCallback(o=>{const x=o.getBoundingClientRect(),C=u?x.width:x.height,V=k=>{const N=Number.parseFloat(k);return Number.isFinite(N)?N:0},H=window.getComputedStyle(o),l=V(u?H.width:H.height),f=l>0?l+V(u?H.paddingLeft:H.paddingTop)+V(u?H.paddingRight:H.paddingBottom)+V(u?H.borderLeftWidth:H.borderTopWidth)+V(u?H.borderRightWidth:H.borderBottomWidth):0,h=f>0?f:u?o.offsetWidth:o.offsetHeight;return h<=0||C<=0?1:C/h},[u]),te=r.useCallback(o=>{const x=_.current;if(x.pointerId!==o.pointerId)return;const C=o.clientX-x.startClientX,V=o.clientY-x.startClientY,H=oe(C,V)/(x.scale||1);y.debug("[ScrollBar] handleThumbPointerMove",()=>({delta:H,startThumbPosition:x.startThumbPosition,clientY:o.clientY,startClientY:x.startClientY,metrics:ae.current}));const l=ot(x.startThumbPosition+H);l!==null&&v(l),o.cancelable&&o.preventDefault()},[oe,ot,v]),_e=r.useCallback(o=>{const x=_.current;if(x.pointerId!==o.pointerId)return;document.removeEventListener("pointermove",te),document.removeEventListener("pointerup",_e),document.removeEventListener("pointercancel",_e);const C=x.captureTarget;if(C?.hasPointerCapture?.(o.pointerId)&&C.releasePointerCapture(o.pointerId),_.current={pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1,captureTarget:null},ue(!1),A.current){const V=A.current.getBoundingClientRect();o.clientX>=V.left&&o.clientX<=V.right&&o.clientY>=V.top&&o.clientY<=V.bottom||Q(!1)}else Q(!1)},[te]);r.useEffect(()=>()=>{document.removeEventListener("pointermove",te),document.removeEventListener("pointerup",_e),document.removeEventListener("pointercancel",_e)},[te,_e]);const pt=r.useRef(0),ht=r.useRef(0),Xe=r.useCallback(o=>{const x=Math.max(Math.round(ae.current.viewportSize/er),Qt);ht.current!==o&&(ht.current=o,pt.current=0),Ne(pt,o*x)},[Ne]),{handleArrowPointerDown:It,handleArrowPointerUp:lt,handleArrowKeyDown:Ct}=lr({canUseArrowButtons:We,enableArrowButtons:c,resetTapScroll:Ae,scrollByStep:Xe}),Ge=o=>{if(!ce)return;if(!i){o.preventDefault(),o.stopPropagation();return}if(o.pointerType==="mouse"&&o.button!==0||o.ctrlKey)return;Ae();const x=o.currentTarget,C=mt(x);let V=null;if(x.setPointerCapture)try{x.setPointerCapture(o.pointerId),V=x}catch{V=null}_.current={pointerId:o.pointerId,startThumbPosition:ze,startClientX:o.clientX,startClientY:o.clientY,scale:C,captureTarget:V},document.addEventListener("pointermove",te),document.addEventListener("pointerup",_e),document.addEventListener("pointercancel",_e),ue(!0),Q(!0),o.preventDefault(),o.stopPropagation()},tt=o=>{if(!ce)return;if(!a){o.preventDefault(),o.stopPropagation();return}if(o.pointerType==="mouse"&&o.button!==0||o.ctrlKey)return;const x=o.currentTarget,C=x.getBoundingClientRect(),V=q(o),H=mt(x),l=(V-(u?C.left:C.top))/H;Ae();const f=l-le/2,h=it(f);if(v(h),x.setPointerCapture)try{x.setPointerCapture(o.pointerId)}catch{}R.current={pointerId:o.pointerId,startThumbPosition:f,startClientX:o.clientX,startClientY:o.clientY,scale:H},o.preventDefault(),o.stopPropagation()},He=()=>{R.current={pointerId:null,startThumbPosition:0,startClientX:0,startClientY:0,scale:1}},Ze=o=>{const x=R.current;if(x.pointerId!==o.pointerId)return;if(o.pointerType==="mouse"&&o.buttons===0){He();return}const C=o.clientX-x.startClientX,V=o.clientY-x.startClientY,H=oe(C,V)/(x.scale||1),l=it(x.startThumbPosition+H);v(l),o.cancelable&&o.preventDefault()},rt=o=>{if(R.current.pointerId!==o.pointerId)return;const x=o.currentTarget;x.hasPointerCapture?.(o.pointerId)&&x.releasePointerCapture(o.pointerId),He(),o.preventDefault(),o.stopPropagation()},ct=o=>{if(R.current.pointerId!==o.pointerId)return;const x=o.currentTarget;x.hasPointerCapture?.(o.pointerId)&&x.releasePointerCapture(o.pointerId),He()},Je=o=>{o.target===o.currentTarget&&R.current.pointerId===o.pointerId&&He()},Tt=r.useMemo(()=>ge((de?1:.8)*qe,0,1),[de,qe]),St=r.useMemo(()=>{const x=`calc(50% - ${Pe/2}px + ${Ce}px)`;return{left:j,top:x}},[j,Ce,Pe]),Mt=(o,x,C,V)=>z.jsx("button",{type:"button",tabIndex:0,className:"aqvs-scrollbar-arrow-button",style:{[je]:m,[d]:m},"aria-label":x,onPointerDown:It(o),onPointerUp:lt,onPointerLeave:lt,onPointerCancel:lt,onKeyDown:Ct(o),"aria-disabled":!c,disabled:!We,children:z.jsx("span",{"aria-hidden":"true",children:C})},V),ut=b&&ce?{orientation:Me,scrollPosition:t,maxScrollPosition:se,contentSize:s,viewportSize:e,thumbSize:le,thumbPosition:ze,thumbCenter:st,trackSize:Ie,isDragging:K,isTapScrollActive:de,visibleStartIndex:D,visibleEndIndex:F}:null;return z.jsxs("div",{className:at.twMerge("aqvs-scrollbar",Se,!ce&&"pointer-events-none opacity-0",I),style:{[je]:e,[d]:m},role:"scrollbar",tabIndex:-1,"aria-controls":T,"aria-valuenow":t,"aria-valuemin":0,"aria-valuemax":se,"aria-orientation":u?"horizontal":"vertical",children:[!u&&ce&&L&&z.jsx(qt,{ref:ee,className:at.twMerge("aqvs-scrollbar-tap-circle-wrapper",P),size:Pe,maxVisualDistance:ye,style:St,opacity:Tt,renderVisual:Fe,onDragChange:$e},"tap-circle"),Mt(-1,re[0],Z[0],"arrow-start"),z.jsxs("div",{className:"aqvs-scrollbar-track",style:{borderRadius:m/2},onPointerDown:tt,onPointerMove:Ze,onPointerUp:rt,onPointerCancel:ct,onLostPointerCapture:Je,"aria-disabled":!a,children:[ut&&z.jsx("div",{className:"aqvs-scrollbar-overlay","aria-hidden":!0,children:b?.(ut)},"overlay"),z.jsx("div",{className:at.twMerge("aqvs-scrollbar-thumb-wrapper",!(ce||K)&&"pointer-events-none opacity-0"),style:{[je]:le,[fe]:ze,...u?{top:0,bottom:0}:{left:0,right:0}},onPointerDown:Ge,role:"slider","aria-orientation":u?"horizontal":"vertical","aria-valuenow":t,"aria-valuemin":0,"aria-valuemax":se,"aria-disabled":!i,tabIndex:-1,children:z.jsx("div",{ref:A,className:at.twMerge("aqvs-scrollbar-thumb",u?"aqvs-scrollbar-thumb-horizontal":"aqvs-scrollbar-thumb-vertical"),"data-testid":"aqvs-scrollbar-thumb","data-thumb-state":p,style:{borderRadius:m-1,cursor:i?"pointer":"default"},onMouseEnter:()=>{i&&Q(!0)},onMouseLeave:()=>{i&&Q(!1)}},"thumb")},"thumb-wrapper")]},"track"),Mt(1,re[1],Z[1],"arrow-end")]})},ur=["mouse","pen","touch"],kt=(s,e)=>!(s==="mouse"||s==="pen"||s==="touch")||e.includes(s),fr=s=>s==="mouse"||s==="pen",bt={maxVelocity:6,minVelocity:.02,deceleration:.0025,velocitySampleWindow:90,startVelocityThreshold:.04},Rt=(s,e,t)=>{for(const[n,i,a]of e)t==="add"?s.addEventListener(n,i,a):s.removeEventListener(n,i,a)},$t=r.forwardRef(({children:s,contentSize:e,viewportSize:t,scrollBarWidth:n=12,enableThumbDrag:i=!0,enableTrackClick:a=!0,enableArrowButtons:c=!0,enablePointerDrag:u=!0,pointerDragInputs:m=ur,onScroll:I,className:T,testId:M,style:w,background:b,tapScrollCircleOptions:D,inertiaOptions:F,itemCount:K,renderThumbOverlay:ue,wheelSpeedMultiplier:J=1,onWheelHorizontal:Q,contentInsets:de,visibleStartIndex:be,visibleEndIndex:A,renderOverlay:_,initialScrollPosition:R=0},Y)=>{const E=r.useRef(Number.isFinite(R)?Math.max(0,R):0),B=r.useRef(null),ee=r.useRef(null),W=r.useRef(Q);r.useEffect(()=>{W.current=Q},[Q]);const g=r.useRef({frame:null,velocity:0,lastTimestamp:null,generation:0}),X=r.useMemo(()=>({maxVelocity:F?.maxVelocity??bt.maxVelocity,minVelocity:F?.minVelocity??bt.minVelocity,deceleration:F?.deceleration??bt.deceleration,velocitySampleWindow:F?.velocitySampleWindow??bt.velocitySampleWindow,startVelocityThreshold:F?.startVelocityThreshold??bt.startVelocityThreshold}),[F]),xe=r.useMemo(()=>({top:Math.max(0,de?.top??0),bottom:Math.max(0,de?.bottom??0)}),[de]);y.debug("[ScrollPane] ScrollPane rendered",()=>({contentSize:e,viewportSize:t,scrollBarWidth:n,className:T,style:w,tapScrollCircleOptions:D,inertiaOptions:F,enablePointerDrag:u,contentInsets:xe}));const ve=r.useRef({contentSize:e,viewportSize:t});ve.current={contentSize:e,viewportSize:t};const G=r.useMemo(()=>e>t,[e,t]),L=r.useCallback(d=>{const{contentSize:fe,viewportSize:oe}=ve.current,q=fe>oe,re=E.current;if(y.debug("[ScrollPane] scrollTo called",()=>({newPosition:d,contentSize:fe,viewportSize:oe,currentIsScrollable:q,prevPosition:re})),!q)return E.current!==0&&(E.current=0,I?.(0,re)),E.current;const Z=typeof d=="function"?d(E.current):d;if(!Number.isFinite(Z))return y.warn("[ScrollPane] scrollTo received a non-finite position; keeping the current position",{nextPosition:Z}),E.current;const Se=Math.max(fe-oe,0),Me=ge(Z,0,Se);return E.current!==Me&&(E.current=Me,I?.(Me,re)),E.current},[I]),Pe=r.useRef(L);r.useEffect(()=>{Pe.current=L},[L]);const j=r.useCallback(()=>{const d=g.current;d.generation+=1,d.frame!==null&&cancelAnimationFrame(d.frame),d.frame=null,d.velocity=0,d.lastTimestamp=null},[]),Ce=r.useRef(j);r.useEffect(()=>{Ce.current=j},[j]),r.useEffect(()=>()=>{Ce.current()},[]);const P=r.useCallback(d=>{if(!G)return;const{maxVelocity:fe,minVelocity:oe,deceleration:q,startVelocityThreshold:re}=X,Z=ge(d,-fe,fe);if(Math.abs(Z)<re)return;j(),g.current.velocity=Z,g.current.lastTimestamp=null;const Se=g.current.generation,Me=ye=>{const ne=g.current;if(ne.generation!==Se)return;if(ne.lastTimestamp===null){ne.lastTimestamp=ye,ne.frame=requestAnimationFrame(Me);return}const Ie=ye-ne.lastTimestamp;if(ne.lastTimestamp=ye,Ie<=0){ne.frame=requestAnimationFrame(Me);return}const Re=ne.velocity;let le=Re;const se=q*Ie;Re>0?le=Math.max(0,Re-se):Re<0&&(le=Math.min(0,Re+se));const ze=(Re+le)/2*Ie,st=E.current;if(ze!==0&&Pe.current(Ne=>Ne+ze),g.current.generation!==Se)return;const ce=E.current,{contentSize:We,viewportSize:p}=ve.current,v=Math.max(We-p,0);ne.velocity=le;const we=ce===st||ce<=0&&le<=0||ce>=v&&le>=0;if(Math.abs(le)<oe||we){j();return}ne.frame=requestAnimationFrame(Me)};g.current.frame=requestAnimationFrame(Me)},[G,X,j]),Oe=r.useRef(P);r.useEffect(()=>{Oe.current=P},[P]),r.useLayoutEffect(()=>{ve.current={contentSize:e,viewportSize:t}},[e,t]),r.useLayoutEffect(()=>{const d=ee.current;if(!d)return;const fe=()=>{d.scrollTop!==0&&(y.debug("[ScrollPane] Native scroll detected, resetting to 0",()=>({scrollTop:d.scrollTop})),d.scrollTop=0),d.scrollLeft!==0&&(d.scrollLeft=0)};return d.addEventListener("scroll",fe),()=>d.removeEventListener("scroll",fe)},[]),r.useLayoutEffect(()=>{if(G){y.debug("[ScrollPane] Adjusting scroll position due to content or viewport size change",()=>({contentSize:e,viewportSize:t,scrollPosition:E.current}));const d=ge(e-t,0,e);E.current>d&&L(d)}else L(0)},[G,L,e,t]),r.useEffect(()=>{const d=q=>{if(q.ctrlKey)return;const re=q.shiftKey&&q.deltaX===0,Z=re?q.deltaY:q.deltaX,Se=re?0:q.deltaY;if(Z!==0&&Math.abs(Z)>=Math.abs(Se)){if(W.current){q.preventDefault(),j();let ne=Z;q.deltaMode===1?ne*=16:q.deltaMode===2&&(ne*=t),W.current(ne)}return}if(!G||q.deltaY===0)return;q.preventDefault(),j();let ye=q.deltaY;q.deltaMode===1?ye*=16:q.deltaMode===2&&(ye*=t),J!==1&&(ye*=J),y.debug("[ScrollPane] wheel event",()=>({deltaY:ye,scrollPosition:E.current,wheelSpeedMultiplier:J,deltaMode:q.deltaMode,scrollTop:ee.current?.scrollTop})),L(ne=>ne+ye)},fe=()=>{j()},oe=B.current;return oe&&(oe.addEventListener("wheel",d,{passive:!1}),oe.addEventListener("pointerdown",fe,{capture:!0,passive:!0})),()=>{oe&&(oe.removeEventListener("wheel",d),oe.removeEventListener("pointerdown",fe,{capture:!0}))}},[G,L,j,t,J]),r.useImperativeHandle(Y,()=>({scrollTo:d=>(j(),L(d)),getScrollPosition:()=>E.current,getContentSize:()=>e,getViewportSize:()=>t}),[L,e,t,j]);const Be=r.useId(),S=r.useRef({pointerType:"",pointerId:null,startClientY:0,startScroll:0,isDragging:!1,shouldCancelNextClick:!1,clickResetTimer:null,velocitySamples:[]}),qe=r.useRef(u),Fe=r.useRef(m);r.useEffect(()=>{qe.current=u},[u]),r.useEffect(()=>{Fe.current=m},[m]);const Ke=r.useRef(G);r.useEffect(()=>{Ke.current=G},[G]);const ae=r.useRef(X);r.useEffect(()=>{ae.current=X},[X]),r.useEffect(()=>{const d=S.current;if(u&&G&&(d.pointerId===null||kt(d.pointerType,m))||d.pointerId===null)return;const fe=ee.current;d.clickResetTimer!==null&&(window.clearTimeout(d.clickResetTimer),d.clickResetTimer=null);const oe=d.isDragging&&d.shouldCancelNextClick,q=d.pointerId;d.pointerId=null,d.pointerType="",d.startClientY=0,d.startScroll=0,d.isDragging=!1,d.shouldCancelNextClick=oe,d.velocitySamples=[],fe?.hasPointerCapture(q)&&fe.releasePointerCapture(q)},[u,m,G]),r.useEffect(()=>{const d=ee.current;if(!d)return;const fe=6,oe=()=>typeof performance<"u"&&typeof performance.now=="function"?performance.now():Date.now(),q=()=>{const p=S.current;p.pointerId=null,p.pointerType="",p.startClientY=0,p.startScroll=0,p.isDragging=!1,p.velocitySamples=[]},re=()=>{const p=S.current;p.clickResetTimer!==null&&(window.clearTimeout(p.clickResetTimer),p.clickResetTimer=null)},Z=p=>{const v=S.current,we=oe();v.velocitySamples.push({clientY:p,time:we});const Ne=ae.current.velocitySampleWindow;v.velocitySamples=v.velocitySamples.filter(ie=>we-ie.time<=Ne)},Se=p=>p instanceof HTMLElement&&p.closest("[data-scrollpane-ignore-drag='true']")!==null,Me=p=>{const v=S.current;v.shouldCancelNextClick&&(p.preventDefault(),p.stopPropagation(),v.shouldCancelNextClick=!1)},ye=p=>{const v=S.current;if(!v.isDragging){if(v.isDragging=!0,v.shouldCancelNextClick=!0,!d.hasPointerCapture(p.pointerId))try{d.setPointerCapture(p.pointerId)}catch{}Z(p.clientY)}},ne=p=>p.isTrusted||p.target===d,Ie=p=>{const v=S.current;d.hasPointerCapture(p)&&d.releasePointerCapture(p),v.shouldCancelNextClick=!1,re(),q()},Re=p=>{const v=S.current;if(v.pointerId!==p.pointerId)return;if(p.buttons===0&&fr(p.pointerType)){Ie(p.pointerId);return}if(!(qe.current&&Ke.current)||!kt(p.pointerType,Fe.current)||!v.isDragging&&(Math.abs(p.clientY-v.startClientY)<fe||(ye(p),!v.isDragging)))return;Z(p.clientY);const we=p.clientY-v.startClientY,Ne=v.startScroll-we;Pe.current(Ne),p.cancelable&&p.preventDefault()},le=()=>{const p=S.current;return p.pointerId!==null||!p.shouldCancelNextClick?!1:(re(),p.clickResetTimer=window.setTimeout(()=>{const v=S.current;v.shouldCancelNextClick=!1,v.clickResetTimer=null},0),!0)},se=p=>{const v=S.current;if(v.pointerId!==p.pointerId){le();return}v.isDragging&&v.shouldCancelNextClick&&p.cancelable&&(p.preventDefault(),p.stopPropagation()),v.isDragging&&Z(p.clientY);let we=0;if(v.isDragging&&v.velocitySamples.length>=2){const ie=v.velocitySamples,Ae=ae.current.velocitySampleWindow,Ye=ie[ie.length-1],Ve=ie.find($e=>Ye.time-$e.time<=Ae)??ie[0];if(Ye&&Ve&&Ye.time!==Ve.time){const $e=Ye.clientY-Ve.clientY,it=Ye.time-Ve.time;we=-($e/it)}}re(),v.shouldCancelNextClick&&(v.clickResetTimer=window.setTimeout(()=>{const ie=S.current;ie.shouldCancelNextClick=!1,ie.clickResetTimer=null},0));const Ne=ae.current.startVelocityThreshold;q(),d.hasPointerCapture(p.pointerId)&&d.releasePointerCapture(p.pointerId),Math.abs(we)>=Ne&&Oe.current?.(we)},ke=p=>{if(S.current.pointerId!==null){if(!p.isPrimary||p.pointerType!==S.current.pointerType)return;Ie(S.current.pointerId)}if(S.current.shouldCancelNextClick&&(re(),S.current.shouldCancelNextClick=!1),!(qe.current&&Ke.current)||!kt(p.pointerType,Fe.current)||p.button!==0&&p.pointerType==="mouse"||p.ctrlKey||p.metaKey||p.altKey||Se(p.target))return;window.dispatchEvent(new CustomEvent(Vt,{detail:{paneId:Be}})),Ce.current?.();const v=S.current;re(),v.pointerId=p.pointerId,v.pointerType=p.pointerType,v.startClientY=p.clientY,v.startScroll=E.current,v.isDragging=!1,v.shouldCancelNextClick=!1,v.velocitySamples=[]},ze=p=>{if(S.current.pointerId!==p.pointerId){le();return}ne(p)&&Ie(p.pointerId)},ce=[["click",Me,!0],["pointerdown",ke,{passive:!1}],["lostpointercapture",p=>{p.target!==d||S.current.pointerId!==p.pointerId||Ie(p.pointerId)},void 0]],We=[["pointermove",Re,{passive:!1}],["pointerup",se,void 0],["pointercancel",ze,void 0]];return Rt(d,ce,"add"),Rt(window,We,"add"),()=>{Rt(d,ce,"remove"),Rt(window,We,"remove");const p=S.current;p.pointerId!==null&&d.hasPointerCapture(p.pointerId)&&d.releasePointerCapture(p.pointerId),re(),q()}},[Be]);const je=r.useCallback(d=>(j(),L(d)),[L,j]);return z.jsxs("div",{ref:B,"data-testid":M,className:at.twMerge("aqvs-scroll-pane",T),style:w,children:[z.jsxs("div",{ref:ee,className:at.twMerge("aqvs-scroll-pane-content"),"data-testid":"aqvs-scroll-pane-content",style:{height:t,paddingTop:xe.top,paddingBottom:xe.bottom,...u&&G&&m.some(d=>d==="touch"||d==="pen")?{touchAction:"none"}:{}},id:Be,children:[b,s(E.current)]}),z.jsx(jt,{contentSize:e,viewportSize:t,scrollPosition:E.current,onScroll:je,enableThumbDrag:i,enableTrackClick:a,enableArrowButtons:c,scrollBarWidth:n,ariaControls:Be,tapScrollCircleOptions:D,itemCount:K,renderThumbOverlay:ue,visibleStartIndex:be,visibleEndIndex:A},"scrollbar"),_?.()]})}),Ft=(s,e,t)=>Math.min(Math.max(s,e),t),dr=({dragState:s,normalizedDistance:e,sizeScale:t,size:n})=>{const i=Math.max(n/2,1),a=1+e*.65,c=Math.max(.65,1-e*.25),u=s.direction*e*26*t,m=.8+e*.18,I=3*t,T=6*t,M=22*t,w=Math.abs(u)+T,b=u>0?I:-Math.abs(u)-I,D=Math.max(2.5,3*t),F=Ft(s.offsetX,-i,i),K=Ft(s.offsetY,-i,i),ue=i*.35,J=F/i*ue,Q=K/i*ue,de=J*.45,be=Q*.45,A=Math.max(M*.38,6),_=.65+e*.2,R=s.active;return z.jsxs(z.Fragment,{children:[z.jsx("div",{className:"aqvs-tap-scroll-circle-gradient",style:{transform:`scale(${c}, ${a})`,transition:R?"40ms transform ease-out":"200ms ease transform"}}),z.jsx("div",{className:"aqvs-sample-visual-pupil",style:{width:M,height:M,transform:`translate(calc(-50% + ${J}px), calc(-50% + ${Q}px)) scale(${c}, ${m*a})`,transition:R?"70ms transform ease-out":"200ms ease transform"}}),z.jsx("div",{className:"aqvs-sample-visual-highlight",style:{width:A,height:A,transform:`translate(calc(-50% + ${de}px), calc(-50% + ${be}px)) scale(${c}, ${a})`,opacity:_,boxShadow:"0 0 8px rgba(255,255,255,0.45)",transition:R?"120ms opacity 150ms, 120ms transform ease-out ease-out":"220ms ease transform, 240ms opacity ease"}}),z.jsx("div",{className:"aqvs-sample-visual-rod",style:{width:D,height:w,transform:`translate(-50%, ${b}px)`,opacity:e,transition:R?"40ms height, 60ms opacity ease-out ease-out":"200ms ease height, 120ms ease opacity"}})]})},vt=100,mr=s=>{if(!Number.isFinite(s))return 0n;const e=Math.trunc(s);return e<=0?0n:BigInt(e)},Nt=(s,e)=>{if(!Number.isFinite(s))throw new Error(`valueFn returned a non-finite value at index ${e}: ${s}`);return s},ft=s=>{if(s<=0||!Number.isFinite(s))return 0;const e=Math.trunc(s);if(e<=2147483647)return e&-e;const t=BigInt(e)&-BigInt(e);return Number(t)};class et{tree;deltas;size;baseValue;valueFn;total;constructor(e,t,n){this.reset(e,t,n)}reset(e,t,n){const i=Number.isFinite(e)&&e>0?Math.trunc(e):0;if(typeof t!="function"){this.size=i,this.tree=new Map,this.deltas=new Map,this.valueFn=void 0,this.baseValue=t,this.total=this.baseValue*this.size;return}let a=0,c;if(i>0){const u=n?.sampleRange??{from:0,to:Math.min(vt-1,i-1)};let m=Math.max(0,Math.trunc(u.from)),I=Math.min(Math.trunc(u.to),i-1);if(m>I&&(m=0,I=Math.min(vt-1,i-1)),i>vt)a=et._sampleBaseValueStrided(t,i,vt),n?.materialize&&(c={from:m,values:et._collectValidatedValues(t,m,I)});else{const T=et._collectValidatedValues(t,m,I);a=et._modeOrMedian([...T]),n?.materialize&&(c={from:m,values:T})}}if(this.size=i,this.tree=new Map,this.deltas=new Map,this.total=void 0,this.valueFn=t,this.baseValue=a,c)for(let u=0;u<c.values.length;u++){const m=c.from+u;if(m>=this.size)break;const I=c.values[u]-this.baseValue;I!==0&&(this.deltas.set(m,I),this._updateTree(m,I))}this.total=this.getTotal()}setValueFn(e,t){if(t?.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,t,n){const i=[];for(let a=t;a<=n;a++)i.push(Nt(e(a),a));return i}static _modeOrMedian(e){if(e.length===0)return 0;e.sort((c,u)=>c-u);const t=Math.floor(e.length/2);let n;e.length%2===0?n=Math.floor((e[t-1]+e[t])/2):n=e[t];const i=new Map;let a=0;for(const c of e){const u=(i.get(c)??0)+1;i.set(c,u),u>a&&(a=u)}if(a>e.length*.2){const c=[];for(const[m,I]of i.entries())I===a&&c.push(m);const u=c.reduce((m,I)=>m+I,0);n=Math.floor(u/c.length)}return n}static _sampleBaseValueStrided(e,t,n){if(t<=0)return 0;let i=Math.max(1,Math.ceil(t/n));i%2===0&&(i+=1);const a=[];for(let c=0;c<t&&a.length<n;c+=i)a.push(Nt(e(c),c));return et._modeOrMedian(a)}update(e,t){return this.updates([{index:e,value:t}])}updates(e){const t=this._buildDeltaUpdates(e);return t.length>0?this.updateDeltas(t):this.total}updateDelta(e,t){return this.updateDeltas([{index:e,change:t}])}updateDeltas(e){const t=new Map;for(const{index:n,change:i}of e){if(n<0||n>=this.size)throw new Error(`Index ${n} out of bounds`);if(!Number.isInteger(n))throw new Error(`Index must be an integer: ${n}`);if(!Number.isFinite(i))throw new Error(`Change must be a finite number: ${i}`);const c=(t.get(n)??this.deltas.get(n)??0)+i;if(c+this.baseValue<-1e-9)throw new Error(`Change would make the value at index ${n} negative: ${c+this.baseValue}`);t.set(n,c)}for(const{index:n,change:i}of e){const c=(this.deltas.get(n)??0)+i;c===0?this.deltas.delete(n):this.deltas.set(n,c),this._updateTree(n,i)}return this.total}_updateTree(e,t){if(t===0)return;let n=e+1;for(;n<=this.size;){this.tree.set(n,(this.tree.get(n)??0)+t);const i=ft(n);if(i===0)break;n+=i}this.total!==void 0&&(this.total+=t)}_buildDeltaUpdates(e){const t=[],n=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 c=n.has(i)?n.get(i)??0:this.deltas.get(i)??0,u=c+this.baseValue,m=a-u;m!==0&&t.push({index:i,change:m}),n.set(i,c+m)}return t}_computeTreeTotal(){if(this.size<=0)return 0;let e=0,t=this.size;for(;t>0;){e+=this.tree.get(t)??0;const n=ft(t);if(n===0)break;t-=n}return e+this.baseValue*this.size}_materialize(e,t=!0){if(this.valueFn){const n=this.deltas.get(e)??0,a=Nt(this.valueFn(e),e)-this.baseValue;if(a!==n&&(a===0?this.deltas.delete(e):this.deltas.set(e,a),t)){const c=a-n;this._updateTree(e,c)}}}_materializeRanges(e,t,n=!1){if(!(e?.materialize&&this.valueFn))return;const i=e.ranges;if(i&&i.length>0){for(const u of i){const m=Math.max(0,Math.trunc(u.from)),I=Math.min(Math.trunc(u.to),this.size-1);for(let T=m;T<=I;T++)this._materialize(T)}if(t===void 0)return;if(n){this._materialize(t);return}const a=i[0].from,c=i[i.length-1].to;t>=a&&t<=c&&this._materialize(t);return}t!==void 0&&this._materialize(t)}_findIndex(e,t={},n){if(this.size>=1073741824)return this._findIndexLarge(e,t,n);if(this.size===0)return{index:-1,total:this.total??0,cumulative:void 0,currentValue:void 0,safeIndex:void 0};this._materializeRanges(t.materializeOption);const i=t.materializeOption?.materialize===!0;let a;for(;;){if(a=this._descend(e,n),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 u=this.deltas.get(a)??0;if(this._materialize(a),(this.deltas.get(a)??0)===u)break}const c=this.prefixSum(a);return{index:a,total:this.total??c.total,cumulative:c.cumulative,currentValue:c.currentValue,safeIndex:c.safeIndex}}_descend(e,t){let n=0,i=0,a=1;for(;a<<1<=this.size;)a<<=1;for(;a>0;a>>=1){const c=n+a;if(c<=this.size){const m=(this.tree.get(c)??0)+this.baseValue*a;(t?i+m<e:i+m<=e)&&(n=c,i+=m)}}return t?n:n-1}_findIndexLarge(e,t,n){if(this.size===0)return{index:-1,total:this.total??0,cumulative:void 0,currentValue:void 0,safeIndex:void 0};const i=mr(this.size);if(i===0n)return{index:-1,total:this.total??0,cumulative:void 0,currentValue:void 0,safeIndex:void 0};this._materializeRanges(t.materializeOption);const a=t.materializeOption?.materialize===!0;for(;;){let c=0n,u=i-1n,m,I,T=this.total;for(;c<=u;){const b=c+u>>1n,D=Number(b),F=this.prefixSum(D);if(T=F.total,n?F.cumulative>=e:F.cumulative<=e)if(m=b,I=F,n){if(b===0n)break;u=b-1n}else c=b+1n;else if(n)c=b+1n;else{if(b===0n)break;u=b-1n}}const M=I,w=m!==void 0?Number(m):-1;if(a&&w>=0){const b=this.deltas.get(w)??0;if(this._materialize(w),(this.deltas.get(w)??0)!==b)continue}return{index:w,total:T,cumulative:M?.cumulative,currentValue:M?.currentValue,safeIndex:M?.safeIndex}}}prefixSum(e,t){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 n=ge(Math.trunc(e),0,this.size-1),i=t?.materializeOption;this._materializeRanges(i,n,!0);let a=0,c=n+1;for(;c>0;){const m=this.tree.get(c)??0;a+=m;const I=ft(c);if(I===0)break;c-=I}const u=i?.materialize?this.get(n):(this.deltas.get(n)||0)+this.baseValue;return{cumulative:a+this.baseValue*(n+1),total:this.total,currentValue:u,safeIndex:n}}get(e,t){if(this.size===0)return 0;if(!Number.isInteger(e)||e<0||e>=this.size)throw new Error("Index out of bounds");const n=t?.materializeOption;return this._materializeRanges(n,e),(this.deltas.get(e)??0)+this.baseValue}getTotal(e){const t=e?.materializeOption;if(this._materializeRanges(t),this.total===void 0)if(this.size===0)this.total=0;else{this.total=this._computeTreeTotal();const n=this.prefixSum(this.getSize()-1);n.cumulative!==n.total&&y.error("Inconsistent Fenwick Tree state")}return this.total}rebuildTree(e){if(e?.materialize&&this.valueFn){const n=this.valueFn;this.reset(this.size,i=>n(i),{materialize:!0});return}const t=new Map;for(const[n,i]of this.deltas.entries()){if(i===0)continue;let a=n+1;for(;a<=this.size;){t.set(a,(t.get(a)??0)+i);const c=ft(a);if(c===0)break;a+=c}}this.tree=t,this.total=this._computeTreeTotal()}calculateAccumulatedError(){if(this.total===void 0)return 0;let e=this.baseValue*this.size;for(const[t,n]of this.deltas)t<this.size&&(e+=n);return this.total-e}changeSize(e){if(!Number.isFinite(e))throw new Error(`Size must be a finite number: ${e}`);const t=Math.max(0,Math.trunc(e)),n=this.size;if(t===n)return;if(t>n)if(n===0&&this.deltas.size>0){for(const a of this.deltas.keys())a>=t&&this.deltas.delete(a);this.size=t,this.rebuildTree()}else this._growSize(n,t);else{if(t>0)for(const a of this.deltas.keys())a>=t&&this.deltas.delete(a);this.size=t,this.rebuildTree()}const i=this.prefixSum(this.getSize()-1);i.cumulative!==i.total&&y.error("Inconsistent Fenwick Tree state")}static _minCoveredLowBound(e,t){let n=1;for(;;){const i=n*2;if(Math.floor(t/i)*i<=e)break;n=i}return n*Math.floor(e/n)}_propagateDeltaToGrownNodes(e,t,n,i){let a=e+1;for(;a<=n;){const c=ft(a);if(c===0)break;a+=c}for(;a<=i;){this.tree.set(a,(this.tree.get(a)??0)+t);const c=ft(a);if(c===0)break;a+=c}}_growSize(e,t){if(this.size=t,this.deltas.size>0){const n=et._minCoveredLowBound(e,t);if(e-n<this.deltas.size)for(let a=n;a<e;a++){const c=this.deltas.get(a);c===void 0||c===0||this._propagateDeltaToGrownNodes(a,c,e,t)}else for(const[a,c]of this.deltas.entries())c===0||a<n||this._propagateDeltaToGrownNodes(a,c,e,t)}this.total=this._computeTreeTotal()}getSize(){return this.size}get base(){return this.baseValue}findIndexAtOrAfter(e,t){return this._findIndex(e,t??{},!0)}findIndexAtOrBefore(e,t){return this._findIndex(e,t??{},!1)}}const pr=(s,e)=>{const t=s?.sampleRange,n=e?.sampleRange;return t===n?!1:t&&n?t.from!==n.from||t.to!==n.to:!0},Ut=(s,e,t)=>{const n=Number.isFinite(s)&&s>0?Math.trunc(s):0,i=r.useRef(null),a=r.useRef({size:n,valueOrFn:e,options:t});i.current===null&&(i.current=new et(n,e,t));const c=i.current,u=a.current,m=u.size!==n,I=u.valueOrFn!==e,T=pr(u.options,t),M=u.size===0&&n>0&&(!i.current||i.current.base===0);if(I||T){const w=t?.resetOnValueFnChange??!0;T||I&&w||M?(t?.debug&&y.debug("[useFenwickMapTree] reset",{valueOrFnChanged:I,optionsChanged:T}),c.reset(n,e,t)):(m&&(t?.debug&&y.debug("[useFenwickMapTree] resize (with valueFn change)",{from:u.size,to:n}),c.changeSize(n)),t?.debug&&y.debug("[useFenwickMapTree] setValueFn (no reset)",{valueOrFnChanged:I}),c.setValueFn(e,{reset:!1})),a.current={size:n,valueOrFn:e,options:t}}else m&&(t?.debug&&y.debug("[useFenwickMapTree] resize",{from:u.size,to:n}),M?c.reset(n,e,t):c.changeSize(n),a.current={size:n,valueOrFn:e,options:t});return c};class hr{key;value;prev=null;next=null;constructor(e,t){this.key=e,this.value=t}}class At{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 Kt(s){const e=r.useRef(new Map),t=r.useRef(new At),n=Math.floor(s),i=r.useRef(n);r.useEffect(()=>{if(i.current=n,Number.isNaN(n)||n<0){y.warn(`useLruCache: invalid capacity ${s}; the cache will not store any entries.`),e.current.clear(),t.current=new At;return}if(Number.isFinite(n))for(;e.current.size>n;){const T=t.current.removeHead();if(T)e.current.delete(T.key);else break}},[s,n]);const a=r.useCallback(T=>{const M=e.current.get(T);if(M)return t.current.moveToTail(M),M.value},[]),c=r.useCallback((T,M)=>{const w=i.current;if(Number.isNaN(w)||w<=0)return;let b=e.current.get(T);if(b)b.value=M,t.current.moveToTail(b);else{if(e.current.size>=w){const D=t.current.removeHead();D&&e.current.delete(D.key)}b=new hr(T,M),e.current.set(T,b),t.current.addToTail(b)}},[]),u=r.useCallback(T=>e.current.has(T),[]),m=r.useCallback(T=>{const M=e.current.get(T);M&&(t.current.remove(M),e.current.delete(T))},[]),I=r.useCallback(()=>{e.current.clear(),t.current=new At},[]);return r.useMemo(()=>({get:a,set:c,has:u,remove:m,clear:I}),[a,c,u,m,I])}const gr=1e4,br=()=>{const{get:s,set:e,has:t,clear:n}=Kt(gr);return r.useMemo(()=>({get:s,set:e,has:t,clear:n}),[s,e,t,n])},he=(s,e)=>e<=0?0:ge(s,0,e-1),zt=s=>({top:Math.max(0,s?.top??0),bottom:Math.max(0,s?.bottom??0)}),Qe=(s,e)=>s<=e?0:s-e,dt=(s,e)=>s<=0?e:s+e,Pt=1e3,Yt=2e3,xr=1048576,xt=s=>{if(!Number.isFinite(s))return 0n;const e=Math.trunc(s);return e<=0?0n:BigInt(e)},Ir=(s,e,t,n,i,a,c,u)=>{const m=xt(n);if(m===0n)return{renderingStartIndex:0,renderingEndIndex:0,visibleStartIndex:0,visibleEndIndex:0};const I=A=>A<0n?0n:A>=m?m-1n:A,T={materializeOption:{materialize:!1}},{index:M,cumulative:w}=a.findIndexAtOrAfter(s,T);let b;M===-1?b=m-1n:(w===s?b=xt(M+1):b=xt(M),b>=m&&(b=m-1n)),s<=0&&(b=0n),u&&s>=c&&(b=m-1n);const D=A=>{const _=Number(A);if(!Number.isSafeInteger(_))return null;const{cumulative:R}=a.prefixSum(_,{materializeOption:{materialize:!1}});if(!Number.isFinite(R))return null;const{index:Y}=a.findIndexAtOrAfter(R+.5,{materializeOption:{materialize:!1}});if(Y===-1)return null;const E=xt(Y);return E>A?E:null},F=A=>{let _=0,R=A,Y=A,E=0n,B=0;for(;R<m&&_<e;){const ee=Number(R),W=i(ee);if(_+=W,Y=R,R+=1n,E+=1n,!Number.isFinite(W)||W<0)break;if(W===0){if(B+=1,B>Pt){const g=D(Y);if(g!==null&&g>R)R=g,B=0;else if(g!==null&&g===R&&i(Number(R))>0)B=0;else break}}else B=0}return E===0n&&(Y=A),{height:_,end:Y}};let{height:K,end:ue}=F(b);if(K<e&&b>0n){let A=b,_=K,R=0;for(;A>0n&&_<e;){A-=1n;const E=Number(A),B=i(E);if(_+=B,!Number.isFinite(B)||B<0)break;if(B===0){if(R+=1,R>Pt){const ee=Number(A);if(!Number.isSafeInteger(ee))break;const{cumulative:W}=a.prefixSum(ee,{materializeOption:{materialize:!1}});if(!Number.isFinite(W))break;const{index:g}=a.findIndexAtOrAfter(W-.5,{materializeOption:{materialize:!1}}),X=g===-1?-1n:xt(g);if(X>=0n&&X<A)A=X+1n,R=0;else if(X===A&&A>=1n&&i(Number(A-1n))>0)R=0;else break}}else R=0}b=I(A);const Y=F(b);K=Y.height,ue=Y.end}const J=I(b),Q=I(ue),de=I(J-BigInt(Math.max(0,t))),be=I(Q+BigInt(Math.max(0,t)));return{renderingStartIndex:he(Number(de),n),renderingEndIndex:he(Number(be),n),visibleStartIndex:he(Number(J),n),visibleEndIndex:he(Number(Q),n)}},Tr=(s,e,t,n,i,a,c)=>{if(n===0)return{renderingStartIndex:0,renderingEndIndex:0,visibleStartIndex:0,visibleEndIndex:0};const u=Number.isFinite(c),m=u?Math.min(Math.max(0,s),c):Math.max(0,s);if(n>=Number.MAX_SAFE_INTEGER)return Ir(m,e,t,n,i,a,c,u);const{index:I,cumulative:T,currentValue:M}=a.findIndexAtOrAfter(m,{materializeOption:{materialize:!1}}),w=I===-1?e<=0||(T??0)<m+(M??0)?n-1:0:I;let b=he(w,n),D=0;if(I!==-1&&T===m)b=he(I+1,n),D=0;else if(b===I&&T!==void 0&&M!==void 0)D=T-M-m;else{const{cumulative:A,currentValue:_}=a.prefixSum(b,{materializeOption:{materialize:!1}});D=(A??0)-(_??0)-m}const F=D,K=(A,_)=>{let R=A,Y=_,E=0;for(;R<n&&Y<e;){const B=i(R);if(Y+=B,R++,!Number.isFinite(B)||B<0)break;if(B===0){if(E++,E>Pt){const{cumulative:ee}=a.prefixSum(R-1,{materializeOption:{materialize:!1}}),{index:W}=Number.isFinite(ee)?a.findIndexAtOrAfter(ee+.5,{materializeOption:{materialize:!1}}):{index:-1};if(W>R)R=W,E=0;else if(W===R&&i(R)>0)E=0;else break}}else E=0}return{cursor:R,height:Y}},ue=K(b,D);let J=ue.cursor;if(D=ue.height,D<e&&b>0){let A=D+Math.abs(Math.min(0,F)),_=b-1,R=0;for(;_>=0&&A<e;){const E=i(_);if(A+=E,!Number.isFinite(E)||E<0){_--;break}if(E===0){if(R++,R>Pt){const{cumulative:B}=a.prefixSum(_,{materializeOption:{materialize:!1}}),{index:ee}=Number.isFinite(B)?a.findIndexAtOrAfter(B-.5,{materializeOption:{materialize:!1}}):{index:-1};if(ee!==-1&&ee<_){_=ee,R=0;continue}if(ee===_&&_>=1&&i(_-1)>0)R=0;else{_--;break}}}else R=0;_--}b=he(_+1,n);const Y=K(b,0);J=Y.cursor,D=Y.height}const Q=he(b-t,n),de=he(Math.max(J-1,b),n),be=he(de+t,n);return{renderingStartIndex:Q,renderingEndIndex:be,visibleStartIndex:b,visibleEndIndex:de}},Bt=(s,e,t)=>{const n=Math.max(0,e??0),i=r.useRef({last:0,id:null,arg:null}).current;return r.useEffect(()=>()=>{i.id!==null&&(cancelAnimationFrame(i.id),i.id=null)},[i]),r.useCallback(a=>{if(i.arg=a,i.id!==null)return;const c=u=>{if(i.id=null,i.arg===null)return;const m=u-i.last;if(n===0||i.last===0||m>=n){if(s.current)try{t(s.current,i.arg)}catch(I){console.error("[useThrottledInvoker] Error invoking callback",I)}i.arg=null,i.last=u}i.arg!==null&&(i.id=requestAnimationFrame(c))};i.id=requestAnimationFrame(c)},[n,t,s,i])},Sr=r.memo(({index:s,top:e,height:t,item:n,children:i,clipItemHeight:a,enableKeyboardNavigation:c,onKeyDown:u,onFocus:m,registerItemRef:I})=>{const T=r.useCallback(D=>I(s,D),[s,I]),M=r.useCallback(D=>u(D,s),[s,u]),w=r.useCallback(()=>m(s),[s,m]),b=r.useCallback(D=>{D.currentTarget.focus({preventScroll:!0})},[]);return z.jsx("div",{ref:T,"data-index":s,"data-virtualscroll-item":"true",className:"aqvs-item-container",style:{top:e,height:t,overflow:a?"hidden":void 0},tabIndex:c?-1:void 0,onPointerDown:c?b:void 0,onKeyDownCapture:c?M:void 0,onFocusCapture:c?w:void 0,children:i(n,s)})}),Mr=({itemCount:s,getItem:e,getItemKey:t,getItemHeight:n,viewportSize:i,overscanCount:a=15,className:c,testId:u,onScroll:m,onRangeChange:I,children:T,background:M,initialScrollIndex:w,initialScrollOffset:b,callbackThrottleMs:D=5,contentInsets:F,onItemFocus:K,scrollBarOptions:ue,behaviorOptions:J,onWheelHorizontal:Q},de)=>{const{width:be,enableThumbDrag:A,enableTrackClick:_,enableArrowButtons:R,enableScrollToTopBottomButtons:Y,renderThumbOverlay:E,tapScrollCircleOptions:B}=ue??{},{enablePointerDrag:ee,pointerDragInputs:W,enableKeyboardNavigation:g=!0,wheelSpeedMultiplier:X,inertiaOptions:xe,clipItemHeight:ve=!1,resetOnGetItemHeightChange:G=!1}=J??{},L=r.useRef(null),Pe=r.useRef({renderingStartIndex:0,renderingEndIndex:0,visibleStartIndex:0,visibleEndIndex:0,scrollPosition:0,totalHeight:0}),j=r.useRef(null),Ce=r.useRef(!1);r.useEffect(()=>{G&&(j.current=null)},[G,n]);const P=r.useMemo(()=>zt(F),[F]),[Oe]=r.useState(()=>{const f=typeof w=="number"&&Number.isFinite(w)?Math.max(0,Math.trunc(w)):0;return{from:Math.max(0,f-50),to:f+50}}),Be=r.useMemo(()=>({sampleRange:Oe,resetOnValueFnChange:G,materialize:!0}),[G,Oe]),S=Ut(s,n,Be),[qe]=r.useState(()=>{let l=0,f=0;if(typeof w=="number"){const h=ge(w,0,s-1),k=ge(h-a*2,0,s-1),N=ge(h+a*2,0,s-1),O=w>0?{materializeOption:{materialize:!0,ranges:[{from:k,to:N}]}}:void 0,{cumulative:$,total:U,currentValue:Te}=S.prefixSum(w,O),me=Math.max($-Te,0);l=dt(me,P.top),f=U??S.getTotal()}else typeof b=="number"&&(l=dt(Math.max(b,0),P.top)),f=S.getTotal();return{position:l,total:f}}),[Fe,Ke]=r.useState(qe.position),[ae,je]=r.useState(qe.total),d=r.useRef(qe.position),fe=r.useRef(P.top),oe=r.useRef(m??void 0),q=r.useRef(I??void 0),re=r.useRef(new Map),Z=r.useRef(null),Se=r.useRef(null),[Me,ye]=r.useState(null),[ne,Ie]=r.useState(!1),Re=r.useRef(null),le=r.useRef(!1),se=r.useRef(0),ke=r.useRef(!1),ze=r.useRef(!1),st=r.useRef(s);st.current!==s&&(st.current=s,ze.current=!0),r.useEffect(()=>{oe.current=m??void 0,q.current=I??void 0},[I,m]);const ce=r.useCallback(l=>{if(g&&l&&typeof l.focus=="function")try{l.focus({preventScroll:!0})}catch{l.focus()}},[g]),We=r.useCallback((l,{position:f,totalHeight:h})=>{l(f,h)},[]),p=Bt(oe,D,We),v=r.useCallback((l,f)=>{l(f)},[]),we=Bt(q,D,v),Ne=r.useRef(P.top);Ne.current=P.top;const ie=r.useRef(p);ie.current=p,r.useEffect(()=>(Ce.current=!1,()=>{Ce.current=!0,Re.current&&(clearTimeout(Re.current),Re.current=null)}),[]),r.useEffect(()=>{g||(re.current.clear(),Z.current=null,Se.current=null)},[g]);const Ae=r.useCallback((l,f)=>{if(!f){re.current.delete(l);return}g&&(re.current.set(l,f),Z.current===l&&(Z.current=null,Se.current=l,ce(f)))},[g,ce]),Ye=.01,Ve=r.useRef({rafId:null,loopActive:!1,idleFrames:0,lastRenderedPosition:qe.position}),$e=r.useCallback(()=>{const l=Ve.current;l.rafId!==null&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(l.rafId),l.rafId=null,l.loopActive=!1,l.idleFrames=0},[]);r.useEffect(()=>()=>{$e()},[$e]);const it=r.useRef(()=>{}),ot=r.useCallback(()=>{const l=Ve.current;l.rafId=null;const f=d.current,h=Qe(f,Ne.current),k=S.getTotal();if(Ke(O=>Math.abs(O-f)<Ye?O:f),Math.abs(l.lastRenderedPosition-f)>=Ye?(ie.current({position:h,totalHeight:k}),l.lastRenderedPosition=f,l.idleFrames=0):l.idleFrames+=1,l.idleFrames>=2){$e();return}if(typeof requestAnimationFrame=="function"){l.rafId=requestAnimationFrame(O=>it.current(O));return}l.loopActive=!1},[S,$e]);it.current=ot;const mt=r.useCallback(()=>{const l=Ve.current;if(l.idleFrames=0,!l.loopActive){if(l.loopActive=!0,typeof requestAnimationFrame=="function"){l.rafId=requestAnimationFrame(ot);return}l.loopActive=!1}},[ot]),te=r.useCallback((l,f)=>{const h=f?.immediate??!1,k=Qe(l,P.top);if(d.current=l,h){Ve.current.lastRenderedPosition=l,Ve.current.idleFrames=0,Ke(l),p({position:k,totalHeight:S.getTotal()});return}mt()},[mt,S,P.top,p]),_e=r.useCallback(l=>{const f=L.current;if(!f)return l;const h=f.getScrollPosition();se.current+=1;const k=f.scrollTo(l);return k===h&&(se.current=Math.max(0,se.current-1)),Math.abs(k-l)>.5&&(ke.current=!0),k},[]),pt=r.useRef(!1);r.useEffect(()=>{if(!pt.current)if(pt.current=!0,typeof b=="number"){const l=dt(Math.max(b,0),P.top),f=Math.abs(l-d.current)>.5;te(l,{immediate:!0}),f&&L.current?.scrollTo(l)}else te(d.current,{immediate:!0})},[b,P.top,te]),r.useEffect(()=>{const l=S.getTotal();if(ae!==l){je(l);return}if(ke.current){ke.current=!1;const f=L.current;if(f&&Math.abs(f.getScrollPosition()-d.current)>.5){const h=_e(d.current);ke.current=!1,te(h,{immediate:!0})}}},[S,ae,s,_e,te]),r.useEffect(()=>{if(j.current!==null){const{index:l,align:f,offset:h}=j.current,k=he(l,s),{cumulative:N,currentValue:O}=S.prefixSum(k,{materializeOption:{materialize:!1}});if(N!==void 0&&O!==void 0){const $=Math.max(N-O,0);let U=$;f==="bottom"?U=N-i:f==="center"&&(U=$+O/2-i/2),h&&(U-=h),U=Math.max(0,U);const Te=Math.max(0,ae+P.top+P.bottom-i),me=Math.min(dt(U,P.top),Te);Math.abs(me-d.current)>1&&(y.debug("[VirtualScroll] Drift correction",{from:d.current,to:me,targetIndex:k}),se.current===0&&(se.current+=1),L.current?.scrollTo(me),te(me,{immediate:!0}))}}ze.current=!1},[ae,S,s,P.top,te,i,P.bottom]),r.useEffect(()=>{const l=fe.current;if(l===P.top)return;const f=Qe(d.current,l),h=dt(f,P.top);fe.current=P.top,d.current=h,L.current?.scrollTo(h),te(h,{immediate:!0})},[P.top,te]);const ht=r.useCallback((l,f)=>{if(s===0)return;const h=he(l,s),k=S.get(h),N=f-k,O=S.update(h,f);O!==void 0&&je(O),y.debug("[VirtualScroll] Updated item size manually",{index:h,size:f,total:O});let $=j.current?j.current.index:null;if($===null){const U=d.current,Te=zt(F).top,me=Qe(U,Te),{index:pe,cumulative:De}=S.findIndexAtOrAfter(me,{materializeOption:{materialize:!1}});$=De!==void 0&&De===me?pe+1:pe}if($!==-1&&h<$&&N!==0){const U=d.current,Te=U+N;_e(Te),te(Te,{immediate:!0}),y.debug("[VirtualScroll] Adjusted scroll for layout shift (manual update)",{from:U,to:Te,causedByIndex:h,delta:N,activeVisibleStartIndex:$})}},[S,s,_e,te,F]),Xe=r.useCallback((l,f)=>{if(!L.current||s===0)return;const h=he(l,s),k=he(h-a*2,s),N=he(h+a*2,s),{cumulative:O,total:$,currentValue:U}=S.prefixSum(h,{materializeOption:{materialize:!0,ranges:[{from:k,to:N}]}});if(y.debug("[VirtualScroll] Scrolling to index:",h,"ItemBottom:",O,"Total height:",$,"ItemHeight:",U,"safeIndexFrom:",k,"safeIndexTo:",N),!$)return;const Te=Math.max(O-U,0);let me=Te;f?.align==="bottom"?me=O-i:f?.align==="center"&&(me=Te+U/2-i/2),f?.offset&&(me-=f.offset),me=Math.max(0,me);const pe=dt(me,P.top),De=L.current?.getContentSize()??$+P.top+P.bottom,Ee=Math.max(0,De-i),Le=Math.min(pe,Ee);j.current={index:h,align:f?.align,offset:f?.offset};const gt=L.current?.getScrollPosition()??-1,yt=Math.abs(gt-Le)>.5;le.current=!1,se.current=0,yt&&(le.current=!0,se.current+=1,L.current?.scrollTo(Le)),je($),te(Le,{immediate:!0}),y.debug("[VirtualScroll] Setting scroll position to:",Le,{original:pe,max:Ee})},[S,a,s,P.top,P.bottom,i,te]),It=r.useCallback(l=>{if(!L.current||s===0)return;const f=S.getTotal(),h=ge(Math.floor(l),0,f),{index:k,cumulative:N,currentValue:O}=S.findIndexAtOrAfter(h,{materializeOption:{materialize:!1}}),U=(N??0)-(O??0)-h;Xe(k,{offset:U})},[S,s,Xe]),lt=r.useCallback(l=>{const f=Qe(d.current,P.top),h=typeof l=="function"?l(f):l;It(h);const k=L.current?.getScrollPosition(),N=typeof k=="number"?k:d.current;return te(N),N},[P.top,It,te]),Ct=r.useCallback((l,f)=>{y.debug("[VirtualScroll] Scroll position changed:",l);const h=le.current;h&&(le.current=!1);const k=se.current>0;if(k&&(se.current=0),h||k||ze.current||(j.current=null),te(l),Y){if(h||k)return;const N=l-f;if(y.debug("[VirtualScroll] Scroll diff:",N,"New:",l,"Prev:",f),Math.abs(N)>1){const O=N>0?"down":"up";ye(O),Ie(!0),y.debug("[VirtualScroll] Showing scroll buttons. Direction:",O),Re.current&&clearTimeout(Re.current),Re.current=setTimeout(()=>{Ie(!1),y.debug("[VirtualScroll] Hiding scroll buttons")},2e3)}}},[te,Y]),Ge=r.useMemo(()=>Qe(Fe,P.top),[P.top,Fe]),tt=r.useMemo(()=>{const l=S.getTotal(),f=Tr(Ge,i,a,s,n,S,l);return y.debug("[VirtualScroll] Calculated rendering range:",()=>({...f,scrollPosition:Ge,renderingContentSize:l,overscanCount:a,viewportSize:i})),f},[Ge,i,a,s,n,S]),{renderingStartIndex:He,renderingEndIndex:Ze,visibleStartIndex:rt,visibleEndIndex:ct}=tt,Je=r.useCallback((l,f)=>{if(!g||s===0)return;const h=he(l,s);if(!(f?.ensureVisible??!0)){const Ee=re.current.get(h);Ee&&(Z.current=null,Se.current=h,ce(Ee));return}const N=S.prefixSum(h,{materializeOption:{materialize:!1}}),O=N.currentValue,$=Math.max(N.cumulative-O,0),U=$+O,Te=Qe(d.current,P.top),me=Te+i;if($<Te||U>me){Xe(h);const Ee=re.current.get(h);Ee?(Z.current=null,Se.current=h,ce(Ee)):Z.current=h;return}const De=re.current.get(h);if(De){Z.current=null,Se.current=h,ce(De);return}Z.current=h},[g,s,S,P.top,Xe,ce,i]),Tt=r.useCallback((l,f)=>{if(!g||l.defaultPrevented||l.altKey||l.metaKey||l.ctrlKey)return;const h=l.target;if(h){const k=h.tagName;if(k==="INPUT"||k==="TEXTAREA"||k==="SELECT"||h.isContentEditable)return}if(l.key==="ArrowDown"){f<s-1&&(l.preventDefault(),Je(f+1));return}if(l.key==="ArrowUp"){f>0&&(l.preventDefault(),Je(f-1));return}if(l.key==="PageDown"){if(f<s-1){l.preventDefault();const{visibleStartIndex:k,visibleEndIndex:N}=Pe.current,O=Math.max(N-k+1,1),$=Math.max(O,1),U=he(Math.min(f+$,s-1),s);Je(U)}return}if(l.key==="PageUp"&&f>0){l.preventDefault();const{visibleStartIndex:k,visibleEndIndex:N}=Pe.current,O=Math.max(N-k+1,1),$=Math.max(O,1),U=he(f-$,s);Je(U)}},[g,s,Je]),St=r.useCallback(l=>{if(!g)return;const f=he(l,s);Z.current=null,Se.current=f,K?.(f)},[g,s,K]);r.useEffect(()=>{const l=L.current?.getScrollPosition()??0,f=d.current,h=Qe(f,P.top);y.debug("[VirtualScroll] Range change effect triggered",()=>({renderingStartIndex:He,renderingEndIndex:Ze,visibleStartIndex:rt,visibleEndIndex:ct,scrollPositionState:Fe,paneScrollPosition:f,logicalScrollPosition:h,contentSize:ae,scrollPaneScrollPosition:l})),we({renderingStartIndex:He,renderingEndIndex:Ze,visibleStartIndex:rt,visibleEndIndex:ct,scrollPosition:h,totalHeight:ae})},[ae,Ze,He,P.top,we,Fe,ct,rt]);const Mt=r.useCallback(()=>{if(!Y)return null;const l=ne&&Me!==null,f=Me==="up";return z.jsx("div",{className:"aqvs-scroll-to-edge-overlay","data-visible":l,children:f?z.jsx("div",{className:"aqvs-scroll-to-edge-button-container aqvs-scroll-to-edge-button-container-top",children:z.jsx("button",{type:"button",className:"aqvs-scroll-to-edge-button",onClick:h=>{h.stopPropagation(),le.current=!0,Xe(0),Ie(!1)},children:"Top"})}):z.jsx("div",{className:"aqvs-scroll-to-edge-button-container aqvs-scroll-to-edge-button-container-bottom",children:z.jsx("button",{type:"button",className:"aqvs-scroll-to-edge-button",onClick:h=>{h.stopPropagation(),le.current=!0,Xe(s-1),Ie(!1)},children:"Bottom"})})})},[Y,ne,Me,Xe,s]),ut=r.useRef(0),{visibleItems:o,renderAnchor:x}=r.useMemo(()=>{if(s===0)return{visibleItems:z.jsx("div",{className:"aqvs-no-items-container",children:z.jsx("div",{className:"aqvs-no-items-text",children:"No items"})}),renderAnchor:0};const l=he(He,s),f=he(Ze,s),{cumulative:h,currentValue:k}=S.prefixSum(l,{materializeOption:{materialize:!1}}),N=h-k;Number.isFinite(N)&&Math.abs(N-ut.current)>xr&&(ut.current=N);const O=ut.current,$=[],U=[];let Te=0,me=N;for(let pe=l;pe<=f;pe++){if(U.length>=Yt){y.warn("[VirtualScroll] Rendered item count reached the safety cap; truncating render window.",{cap:Yt,safeRenderingStartIndex:l,safeRenderingEndIndex:f});break}const De=n(pe),Ee=S.get(pe),Le=De-Ee;Le!==0&&$.push({index:pe,value:De});const gt=me+Te,yt=t?t(pe):pe;U.push(z.jsx(Sr,{index:pe,top:gt-O,height:De,item:e(pe),clipItemHeight:ve,enableKeyboardNavigation:g,onKeyDown:Tt,onFocus:St,registerItemRef:Ae,children:T},yt)),Te+=Le,me+=Ee}return $.length>0&&Promise.resolve().then(()=>{if(Ce.current)return;let pe=0;for(const Le of $)if(Le.index<rt){const gt=S.get(Le.index);pe+=Le.value-gt}const De=S.updates($);if(Ce.current||typeof De!="number")return;je(De),y.debug("[VirtualScroll] Updated heights for items",$,"New total height:",De);const Ee=L.current?.getScrollPosition()??d.current;if(pe!==0){const Le=Ee+pe;_e(Le),te(Le,{immediate:!0}),y.debug("[VirtualScroll] Adjusted scroll for layout shift (auto update)",{from:Ee,to:Le,shiftAmount:pe})}else Ee!==d.current&&te(Ee)}),{visibleItems:U,renderAnchor:O}},[T,ve,ae,g,s,S,e,t,n,St,Tt,_e,Ae,Ze,He,te,rt]),C=r.useCallback(l=>{const f=(D??0)>0,h=Math.abs(l-Fe),k=f&&h>.5?Fe:l,N=Qe(k,P.top);if(y.debug("[VirtualScroll] Rendering visible items",()=>({currentScrollPosition:l,effectiveScrollPosition:N,renderingStartIndex:He,renderingEndIndex:Ze,itemCount:s,viewportSize:i,callbackThrottleMs:D,diff:h,rawEffectiveScrollPosition:k})),s===0)return o;const O=P.top+x-k,$=P.bottom>0?z.jsx("div",{className:"aqvs-bottom-inset",style:{top:S.getTotal()-x,height:P.bottom}},"virtualscroll-bottom-inset"):null;return y.debug("[VirtualScroll] Rendering items",()=>({containerTop:O,logicalScrollPosition:Ge,resolvedInsets:P,effectiveScrollPosition:N})),z.jsxs("div",{className:"aqvs-items-wrapper",style:{top:0,transform:`translateY(${O}px)`,willChange:"transform"},children:[o,$]})},[D,s,S,Ge,x,Ze,He,P,Fe,i,o]),V=r.useMemo(()=>({renderingStartIndex:tt.renderingStartIndex,renderingEndIndex:tt.renderingEndIndex,visibleStartIndex:tt.visibleStartIndex,visibleEndIndex:tt.visibleEndIndex,scrollPosition:Ge,totalHeight:S.getTotal()}),[tt,Ge,S,ae]);r.useEffect(()=>{Pe.current=V},[V]),r.useImperativeHandle(de,()=>({getScrollPosition:()=>L.current?.getScrollPosition()??-1,getContentSize:()=>L.current?.getContentSize()??-1,getViewportSize:()=>L.current?.getViewportSize()??-1,scrollTo:lt,scrollToIndex:Xe,getFenwickTreeTotalHeight:()=>S.getTotal(),getFenwickSize:()=>S.getSize(),focusItemAtIndex:Je,getRange:()=>Pe.current,updateItemSize:ht}),[lt,Xe,S,Je,ht]);const H=S.getTotal()+P.top+P.bottom;return z.jsx($t,{ref:L,contentSize:H,viewportSize:i,className:c,testId:u,onScroll:Ct,background:M,tapScrollCircleOptions:B,inertiaOptions:xe,itemCount:s,scrollBarWidth:be,enableThumbDrag:A,enableTrackClick:_,enableArrowButtons:R,enablePointerDrag:ee,pointerDragInputs:W,renderThumbOverlay:E,wheelSpeedMultiplier:X,onWheelHorizontal:Q,contentInsets:P,visibleStartIndex:rt,visibleEndIndex:ct,renderOverlay:Mt,initialScrollPosition:qe.position,children:C})},Rr=r.forwardRef(Mr);exports.FenwickMapTree=et;exports.ScrollBar=jt;exports.ScrollPane=$t;exports.TAP_SCROLL_SPEED_DEFAULTS=Dt;exports.VirtualScroll=Rr;exports.computeAutoTapScrollMaxSpeedMultiplier=Xt;exports.computeTapScrollSpeed=Ht;exports.minmax=ge;exports.tapScrollCircleSampleVisual=dr;exports.useFenwickMapTree=Ut;exports.useHeightCache=br;exports.useLruCache=Kt;
|