@radix-ui/react-scroll-area 1.2.14 → 1.2.15-rc.1784059564143
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +72 -59
- package/dist/index.js.map +3 -3
- package/dist/index.mjs +73 -59
- package/dist/index.mjs.map +3 -3
- package/package.json +6 -6
package/dist/index.js
CHANGED
|
@@ -6,6 +6,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
|
6
6
|
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
7
|
var __getProtoOf = Object.getPrototypeOf;
|
|
8
8
|
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
10
|
var __export = (target, all) => {
|
|
10
11
|
for (var name in all)
|
|
11
12
|
__defProp(target, name, { get: all[name], enumerable: true });
|
|
@@ -65,14 +66,15 @@ function useStateMachine(initialState, machine) {
|
|
|
65
66
|
return nextState ?? state;
|
|
66
67
|
}, initialState);
|
|
67
68
|
}
|
|
69
|
+
__name(useStateMachine, "useStateMachine");
|
|
68
70
|
|
|
69
71
|
// src/scroll-area.tsx
|
|
70
72
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
71
73
|
var SCROLL_AREA_NAME = "ScrollArea";
|
|
72
74
|
var [createScrollAreaContext, createScrollAreaScope] = (0, import_react_context.createContextScope)(SCROLL_AREA_NAME);
|
|
73
75
|
var [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);
|
|
74
|
-
var ScrollArea = React2.forwardRef(
|
|
75
|
-
(props, forwardedRef)
|
|
76
|
+
var ScrollArea = /* @__PURE__ */ React2.forwardRef(
|
|
77
|
+
/* @__PURE__ */ __name(function ScrollArea2(props, forwardedRef) {
|
|
76
78
|
const {
|
|
77
79
|
__scopeScrollArea,
|
|
78
80
|
type = "hover",
|
|
@@ -130,12 +132,12 @@ var ScrollArea = React2.forwardRef(
|
|
|
130
132
|
)
|
|
131
133
|
}
|
|
132
134
|
);
|
|
133
|
-
}
|
|
135
|
+
}, "ScrollArea")
|
|
134
136
|
);
|
|
135
|
-
ScrollArea.displayName = SCROLL_AREA_NAME;
|
|
136
137
|
var VIEWPORT_NAME = "ScrollAreaViewport";
|
|
137
|
-
var ScrollAreaViewport = React2.forwardRef(
|
|
138
|
-
|
|
138
|
+
var ScrollAreaViewport = /* @__PURE__ */ React2.forwardRef(
|
|
139
|
+
// blank line to reduce diff noise
|
|
140
|
+
/* @__PURE__ */ __name(function ScrollAreaViewport2(props, forwardedRef) {
|
|
139
141
|
const { __scopeScrollArea, children, nonce, ...viewportProps } = props;
|
|
140
142
|
const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);
|
|
141
143
|
const ref = React2.useRef(null);
|
|
@@ -168,11 +170,10 @@ var ScrollAreaViewport = React2.forwardRef(
|
|
|
168
170
|
}
|
|
169
171
|
)
|
|
170
172
|
] });
|
|
171
|
-
}
|
|
173
|
+
}, "ScrollAreaViewport")
|
|
172
174
|
);
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
({ nonce }) => {
|
|
175
|
+
var ScrollAreaViewportStyle = /* @__PURE__ */ React2.memo(
|
|
176
|
+
/* @__PURE__ */ __name(function ScrollAreaViewportStyle2({ nonce }) {
|
|
176
177
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
177
178
|
"style",
|
|
178
179
|
{
|
|
@@ -182,12 +183,13 @@ var ScrollAreaViewportStyle = React2.memo(
|
|
|
182
183
|
nonce
|
|
183
184
|
}
|
|
184
185
|
);
|
|
185
|
-
},
|
|
186
|
+
}, "ScrollAreaViewportStyle"),
|
|
186
187
|
(prevProps, nextProps) => prevProps.nonce === nextProps.nonce
|
|
187
188
|
);
|
|
188
189
|
var SCROLLBAR_NAME = "ScrollAreaScrollbar";
|
|
189
|
-
var ScrollAreaScrollbar = React2.forwardRef(
|
|
190
|
-
|
|
190
|
+
var ScrollAreaScrollbar = /* @__PURE__ */ React2.forwardRef(
|
|
191
|
+
// blank line to reduce diff noise
|
|
192
|
+
/* @__PURE__ */ __name(function ScrollAreaScrollbar2(props, forwardedRef) {
|
|
191
193
|
const { forceMount, ...scrollbarProps } = props;
|
|
192
194
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
193
195
|
const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;
|
|
@@ -199,10 +201,9 @@ var ScrollAreaScrollbar = React2.forwardRef(
|
|
|
199
201
|
};
|
|
200
202
|
}, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);
|
|
201
203
|
return context.type === "hover" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "scroll" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "auto" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "always" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef, "data-state": "visible" }) : null;
|
|
202
|
-
}
|
|
204
|
+
}, "ScrollAreaScrollbar")
|
|
203
205
|
);
|
|
204
|
-
|
|
205
|
-
var ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {
|
|
206
|
+
var ScrollAreaScrollbarHover = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarHover2(props, forwardedRef) {
|
|
206
207
|
const { forceMount, ...scrollbarProps } = props;
|
|
207
208
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
208
209
|
const [visible, setVisible] = React2.useState(false);
|
|
@@ -210,13 +211,13 @@ var ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {
|
|
|
210
211
|
const scrollArea = context.scrollArea;
|
|
211
212
|
let hideTimer = 0;
|
|
212
213
|
if (scrollArea) {
|
|
213
|
-
const handlePointerEnter = () => {
|
|
214
|
+
const handlePointerEnter = /* @__PURE__ */ __name(() => {
|
|
214
215
|
window.clearTimeout(hideTimer);
|
|
215
216
|
setVisible(true);
|
|
216
|
-
};
|
|
217
|
-
const handlePointerLeave = () => {
|
|
217
|
+
}, "handlePointerEnter");
|
|
218
|
+
const handlePointerLeave = /* @__PURE__ */ __name(() => {
|
|
218
219
|
hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);
|
|
219
|
-
};
|
|
220
|
+
}, "handlePointerLeave");
|
|
220
221
|
scrollArea.addEventListener("pointerenter", handlePointerEnter);
|
|
221
222
|
scrollArea.addEventListener("pointerleave", handlePointerLeave);
|
|
222
223
|
return () => {
|
|
@@ -234,8 +235,8 @@ var ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {
|
|
|
234
235
|
ref: forwardedRef
|
|
235
236
|
}
|
|
236
237
|
) });
|
|
237
|
-
});
|
|
238
|
-
var ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef)
|
|
238
|
+
}, "ScrollAreaScrollbarHover"));
|
|
239
|
+
var ScrollAreaScrollbarScroll = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarScroll2(props, forwardedRef) {
|
|
239
240
|
const { forceMount, ...scrollbarProps } = props;
|
|
240
241
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
241
242
|
const isHorizontal = props.orientation === "horizontal";
|
|
@@ -269,7 +270,7 @@ var ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {
|
|
|
269
270
|
const scrollDirection = isHorizontal ? "scrollLeft" : "scrollTop";
|
|
270
271
|
if (viewport) {
|
|
271
272
|
let prevScrollPos = viewport[scrollDirection];
|
|
272
|
-
const handleScroll = () => {
|
|
273
|
+
const handleScroll = /* @__PURE__ */ __name(() => {
|
|
273
274
|
const scrollPos = viewport[scrollDirection];
|
|
274
275
|
const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;
|
|
275
276
|
if (hasScrollInDirectionChanged) {
|
|
@@ -277,7 +278,7 @@ var ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {
|
|
|
277
278
|
debounceScrollEnd();
|
|
278
279
|
}
|
|
279
280
|
prevScrollPos = scrollPos;
|
|
280
|
-
};
|
|
281
|
+
}, "handleScroll");
|
|
281
282
|
viewport.addEventListener("scroll", handleScroll);
|
|
282
283
|
return () => viewport.removeEventListener("scroll", handleScroll);
|
|
283
284
|
}
|
|
@@ -292,8 +293,8 @@ var ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {
|
|
|
292
293
|
onPointerLeave: (0, import_primitive.composeEventHandlers)(props.onPointerLeave, () => send("POINTER_LEAVE"))
|
|
293
294
|
}
|
|
294
295
|
) });
|
|
295
|
-
});
|
|
296
|
-
var ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef)
|
|
296
|
+
}, "ScrollAreaScrollbarScroll"));
|
|
297
|
+
var ScrollAreaScrollbarAuto = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarAuto2(props, forwardedRef) {
|
|
297
298
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
298
299
|
const { forceMount, ...scrollbarProps } = props;
|
|
299
300
|
const [visible, setVisible] = React2.useState(false);
|
|
@@ -315,8 +316,8 @@ var ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef) => {
|
|
|
315
316
|
ref: forwardedRef
|
|
316
317
|
}
|
|
317
318
|
) });
|
|
318
|
-
});
|
|
319
|
-
var ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef)
|
|
319
|
+
}, "ScrollAreaScrollbarAuto"));
|
|
320
|
+
var ScrollAreaScrollbarVisible = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarVisible2(props, forwardedRef) {
|
|
320
321
|
const { orientation = "vertical", ...scrollbarProps } = props;
|
|
321
322
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
322
323
|
const thumbRef = React2.useRef(null);
|
|
@@ -332,13 +333,14 @@ var ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {
|
|
|
332
333
|
sizes,
|
|
333
334
|
onSizesChange: setSizes,
|
|
334
335
|
hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),
|
|
335
|
-
onThumbChange: (thumb) => thumbRef.current = thumb,
|
|
336
|
-
onThumbPointerUp: () => pointerOffsetRef.current = 0,
|
|
337
|
-
onThumbPointerDown: (pointerPos) => pointerOffsetRef.current = pointerPos
|
|
336
|
+
onThumbChange: /* @__PURE__ */ __name((thumb) => thumbRef.current = thumb, "onThumbChange"),
|
|
337
|
+
onThumbPointerUp: /* @__PURE__ */ __name(() => pointerOffsetRef.current = 0, "onThumbPointerUp"),
|
|
338
|
+
onThumbPointerDown: /* @__PURE__ */ __name((pointerPos) => pointerOffsetRef.current = pointerPos, "onThumbPointerDown")
|
|
338
339
|
};
|
|
339
340
|
function getScrollPosition(pointerPos, dir) {
|
|
340
341
|
return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);
|
|
341
342
|
}
|
|
343
|
+
__name(getScrollPosition, "getScrollPosition");
|
|
342
344
|
if (orientation === "horizontal") {
|
|
343
345
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
344
346
|
ScrollAreaScrollbarX,
|
|
@@ -386,8 +388,8 @@ var ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {
|
|
|
386
388
|
);
|
|
387
389
|
}
|
|
388
390
|
return null;
|
|
389
|
-
});
|
|
390
|
-
var ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef)
|
|
391
|
+
}, "ScrollAreaScrollbarVisible"));
|
|
392
|
+
var ScrollAreaScrollbarX = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarX2(props, forwardedRef) {
|
|
391
393
|
const { sizes, onSizesChange, ...scrollbarProps } = props;
|
|
392
394
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
393
395
|
const [computedStyle, setComputedStyle] = React2.useState();
|
|
@@ -436,8 +438,8 @@ var ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef) => {
|
|
|
436
438
|
}
|
|
437
439
|
}
|
|
438
440
|
);
|
|
439
|
-
});
|
|
440
|
-
var ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef)
|
|
441
|
+
}, "ScrollAreaScrollbarX"));
|
|
442
|
+
var ScrollAreaScrollbarY = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarY2(props, forwardedRef) {
|
|
441
443
|
const { sizes, onSizesChange, ...scrollbarProps } = props;
|
|
442
444
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
443
445
|
const [computedStyle, setComputedStyle] = React2.useState();
|
|
@@ -487,9 +489,9 @@ var ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef) => {
|
|
|
487
489
|
}
|
|
488
490
|
}
|
|
489
491
|
);
|
|
490
|
-
});
|
|
492
|
+
}, "ScrollAreaScrollbarY"));
|
|
491
493
|
var [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);
|
|
492
|
-
var ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef)
|
|
494
|
+
var ScrollAreaScrollbarImpl = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarImpl2(props, forwardedRef) {
|
|
493
495
|
const {
|
|
494
496
|
__scopeScrollArea,
|
|
495
497
|
sizes,
|
|
@@ -520,12 +522,13 @@ var ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {
|
|
|
520
522
|
onDragScroll({ x, y });
|
|
521
523
|
}
|
|
522
524
|
}
|
|
525
|
+
__name(handleDragScroll, "handleDragScroll");
|
|
523
526
|
React2.useEffect(() => {
|
|
524
|
-
const handleWheel = (event) => {
|
|
527
|
+
const handleWheel = /* @__PURE__ */ __name((event) => {
|
|
525
528
|
const element = event.target;
|
|
526
529
|
const isScrollbarWheel = scrollbar?.contains(element);
|
|
527
530
|
if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);
|
|
528
|
-
};
|
|
531
|
+
}, "handleWheel");
|
|
529
532
|
document.addEventListener("wheel", handleWheel, { passive: false });
|
|
530
533
|
return () => document.removeEventListener("wheel", handleWheel, { passive: false });
|
|
531
534
|
}, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);
|
|
@@ -574,17 +577,19 @@ var ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {
|
|
|
574
577
|
)
|
|
575
578
|
}
|
|
576
579
|
);
|
|
577
|
-
});
|
|
580
|
+
}, "ScrollAreaScrollbarImpl"));
|
|
578
581
|
var THUMB_NAME = "ScrollAreaThumb";
|
|
579
|
-
var ScrollAreaThumb = React2.forwardRef(
|
|
580
|
-
|
|
582
|
+
var ScrollAreaThumb = /* @__PURE__ */ React2.forwardRef(
|
|
583
|
+
// blank line to reduce diff noise
|
|
584
|
+
/* @__PURE__ */ __name(function ScrollAreaThumb2(props, forwardedRef) {
|
|
581
585
|
const { forceMount, ...thumbProps } = props;
|
|
582
586
|
const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);
|
|
583
587
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_presence.Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });
|
|
584
|
-
}
|
|
588
|
+
}, "ScrollAreaThumb")
|
|
585
589
|
);
|
|
586
|
-
var ScrollAreaThumbImpl = React2.forwardRef(
|
|
587
|
-
|
|
590
|
+
var ScrollAreaThumbImpl = /* @__PURE__ */ React2.forwardRef(
|
|
591
|
+
// blank line to reduce diff noise
|
|
592
|
+
/* @__PURE__ */ __name(function ScrollAreaThumbImpl2(props, forwardedRef) {
|
|
588
593
|
const { __scopeScrollArea, style, ...thumbProps } = props;
|
|
589
594
|
const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);
|
|
590
595
|
const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);
|
|
@@ -600,14 +605,14 @@ var ScrollAreaThumbImpl = React2.forwardRef(
|
|
|
600
605
|
React2.useEffect(() => {
|
|
601
606
|
const viewport = scrollAreaContext.viewport;
|
|
602
607
|
if (viewport) {
|
|
603
|
-
const handleScroll = () => {
|
|
608
|
+
const handleScroll = /* @__PURE__ */ __name(() => {
|
|
604
609
|
debounceScrollEnd();
|
|
605
610
|
if (!removeUnlinkedScrollListenerRef.current) {
|
|
606
611
|
const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);
|
|
607
612
|
removeUnlinkedScrollListenerRef.current = listener;
|
|
608
613
|
onThumbPositionChange();
|
|
609
614
|
}
|
|
610
|
-
};
|
|
615
|
+
}, "handleScroll");
|
|
611
616
|
onThumbPositionChange();
|
|
612
617
|
viewport.addEventListener("scroll", handleScroll);
|
|
613
618
|
return () => viewport.removeEventListener("scroll", handleScroll);
|
|
@@ -634,20 +639,19 @@ var ScrollAreaThumbImpl = React2.forwardRef(
|
|
|
634
639
|
onPointerUp: (0, import_primitive.composeEventHandlers)(props.onPointerUp, scrollbarContext.onThumbPointerUp)
|
|
635
640
|
}
|
|
636
641
|
);
|
|
637
|
-
}
|
|
642
|
+
}, "ScrollAreaThumbImpl")
|
|
638
643
|
);
|
|
639
|
-
ScrollAreaThumb.displayName = THUMB_NAME;
|
|
640
644
|
var CORNER_NAME = "ScrollAreaCorner";
|
|
641
|
-
var ScrollAreaCorner = React2.forwardRef(
|
|
642
|
-
|
|
645
|
+
var ScrollAreaCorner = /* @__PURE__ */ React2.forwardRef(
|
|
646
|
+
// blank line to reduce diff noise
|
|
647
|
+
/* @__PURE__ */ __name(function ScrollAreaCorner2(props, forwardedRef) {
|
|
643
648
|
const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);
|
|
644
649
|
const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);
|
|
645
650
|
const hasCorner = context.type !== "scroll" && hasBothScrollbarsVisible;
|
|
646
651
|
return hasCorner ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;
|
|
647
|
-
}
|
|
652
|
+
}, "ScrollAreaCorner")
|
|
648
653
|
);
|
|
649
|
-
|
|
650
|
-
var ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {
|
|
654
|
+
var ScrollAreaCornerImpl = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaCornerImpl2(props, forwardedRef) {
|
|
651
655
|
const { __scopeScrollArea, ...cornerProps } = props;
|
|
652
656
|
const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);
|
|
653
657
|
const [width, setWidth] = React2.useState(0);
|
|
@@ -686,20 +690,23 @@ var ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {
|
|
|
686
690
|
}
|
|
687
691
|
}
|
|
688
692
|
) : null;
|
|
689
|
-
});
|
|
693
|
+
}, "ScrollAreaCornerImpl"));
|
|
690
694
|
function toInt(value) {
|
|
691
695
|
return value ? parseInt(value, 10) : 0;
|
|
692
696
|
}
|
|
697
|
+
__name(toInt, "toInt");
|
|
693
698
|
function getThumbRatio(viewportSize, contentSize) {
|
|
694
699
|
const ratio = viewportSize / contentSize;
|
|
695
700
|
return isNaN(ratio) ? 0 : ratio;
|
|
696
701
|
}
|
|
702
|
+
__name(getThumbRatio, "getThumbRatio");
|
|
697
703
|
function getThumbSize(sizes) {
|
|
698
704
|
const ratio = getThumbRatio(sizes.viewport, sizes.content);
|
|
699
705
|
const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;
|
|
700
706
|
const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;
|
|
701
707
|
return Math.max(thumbSize, 18);
|
|
702
708
|
}
|
|
709
|
+
__name(getThumbSize, "getThumbSize");
|
|
703
710
|
function getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = "ltr") {
|
|
704
711
|
const thumbSizePx = getThumbSize(sizes);
|
|
705
712
|
const thumbCenter = thumbSizePx / 2;
|
|
@@ -712,6 +719,7 @@ function getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = "l
|
|
|
712
719
|
const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);
|
|
713
720
|
return interpolate(pointerPos);
|
|
714
721
|
}
|
|
722
|
+
__name(getScrollPositionFromPointer, "getScrollPositionFromPointer");
|
|
715
723
|
function getThumbOffsetFromScroll(scrollPos, sizes, dir = "ltr") {
|
|
716
724
|
const thumbSizePx = getThumbSize(sizes);
|
|
717
725
|
const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;
|
|
@@ -723,6 +731,7 @@ function getThumbOffsetFromScroll(scrollPos, sizes, dir = "ltr") {
|
|
|
723
731
|
const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);
|
|
724
732
|
return interpolate(scrollWithoutMomentum);
|
|
725
733
|
}
|
|
734
|
+
__name(getThumbOffsetFromScroll, "getThumbOffsetFromScroll");
|
|
726
735
|
function linearScale(input, output) {
|
|
727
736
|
return (value) => {
|
|
728
737
|
if (input[0] === input[1] || output[0] === output[1]) return output[0];
|
|
@@ -730,23 +739,25 @@ function linearScale(input, output) {
|
|
|
730
739
|
return output[0] + ratio * (value - input[0]);
|
|
731
740
|
};
|
|
732
741
|
}
|
|
742
|
+
__name(linearScale, "linearScale");
|
|
733
743
|
function isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {
|
|
734
744
|
return scrollPos > 0 && scrollPos < maxScrollPos;
|
|
735
745
|
}
|
|
736
|
-
|
|
746
|
+
__name(isScrollingWithinScrollbarBounds, "isScrollingWithinScrollbarBounds");
|
|
747
|
+
var addUnlinkedScrollListener = /* @__PURE__ */ __name((node, handler = () => {
|
|
737
748
|
}) => {
|
|
738
749
|
let prevPosition = { left: node.scrollLeft, top: node.scrollTop };
|
|
739
750
|
let rAF = 0;
|
|
740
|
-
(function loop() {
|
|
751
|
+
(/* @__PURE__ */ __name((function loop() {
|
|
741
752
|
const position = { left: node.scrollLeft, top: node.scrollTop };
|
|
742
753
|
const isHorizontalScroll = prevPosition.left !== position.left;
|
|
743
754
|
const isVerticalScroll = prevPosition.top !== position.top;
|
|
744
755
|
if (isHorizontalScroll || isVerticalScroll) handler();
|
|
745
756
|
prevPosition = position;
|
|
746
757
|
rAF = window.requestAnimationFrame(loop);
|
|
747
|
-
})();
|
|
758
|
+
}), "loop"))();
|
|
748
759
|
return () => window.cancelAnimationFrame(rAF);
|
|
749
|
-
};
|
|
760
|
+
}, "addUnlinkedScrollListener");
|
|
750
761
|
function useDebounceCallback(callback, delay) {
|
|
751
762
|
const handleCallback = (0, import_react_use_callback_ref.useCallbackRef)(callback);
|
|
752
763
|
const debounceTimerRef = React2.useRef(0);
|
|
@@ -756,6 +767,7 @@ function useDebounceCallback(callback, delay) {
|
|
|
756
767
|
debounceTimerRef.current = window.setTimeout(handleCallback, delay);
|
|
757
768
|
}, [handleCallback, delay]);
|
|
758
769
|
}
|
|
770
|
+
__name(useDebounceCallback, "useDebounceCallback");
|
|
759
771
|
function useResizeObserver(element, onResize) {
|
|
760
772
|
const handleResize = (0, import_react_use_callback_ref.useCallbackRef)(onResize);
|
|
761
773
|
(0, import_react_use_layout_effect.useLayoutEffect)(() => {
|
|
@@ -773,6 +785,7 @@ function useResizeObserver(element, onResize) {
|
|
|
773
785
|
}
|
|
774
786
|
}, [element, handleResize]);
|
|
775
787
|
}
|
|
788
|
+
__name(useResizeObserver, "useResizeObserver");
|
|
776
789
|
var Root = ScrollArea;
|
|
777
790
|
var Viewport = ScrollAreaViewport;
|
|
778
791
|
var Scrollbar = ScrollAreaScrollbar;
|