@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.mjs
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
2
4
|
|
|
3
5
|
// src/scroll-area.tsx
|
|
4
6
|
import * as React2 from "react";
|
|
@@ -20,14 +22,15 @@ function useStateMachine(initialState, machine) {
|
|
|
20
22
|
return nextState ?? state;
|
|
21
23
|
}, initialState);
|
|
22
24
|
}
|
|
25
|
+
__name(useStateMachine, "useStateMachine");
|
|
23
26
|
|
|
24
27
|
// src/scroll-area.tsx
|
|
25
28
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
26
29
|
var SCROLL_AREA_NAME = "ScrollArea";
|
|
27
30
|
var [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);
|
|
28
31
|
var [ScrollAreaProvider, useScrollAreaContext] = createScrollAreaContext(SCROLL_AREA_NAME);
|
|
29
|
-
var ScrollArea = React2.forwardRef(
|
|
30
|
-
(props, forwardedRef)
|
|
32
|
+
var ScrollArea = /* @__PURE__ */ React2.forwardRef(
|
|
33
|
+
/* @__PURE__ */ __name(function ScrollArea2(props, forwardedRef) {
|
|
31
34
|
const {
|
|
32
35
|
__scopeScrollArea,
|
|
33
36
|
type = "hover",
|
|
@@ -85,12 +88,12 @@ var ScrollArea = React2.forwardRef(
|
|
|
85
88
|
)
|
|
86
89
|
}
|
|
87
90
|
);
|
|
88
|
-
}
|
|
91
|
+
}, "ScrollArea")
|
|
89
92
|
);
|
|
90
|
-
ScrollArea.displayName = SCROLL_AREA_NAME;
|
|
91
93
|
var VIEWPORT_NAME = "ScrollAreaViewport";
|
|
92
|
-
var ScrollAreaViewport = React2.forwardRef(
|
|
93
|
-
|
|
94
|
+
var ScrollAreaViewport = /* @__PURE__ */ React2.forwardRef(
|
|
95
|
+
// blank line to reduce diff noise
|
|
96
|
+
/* @__PURE__ */ __name(function ScrollAreaViewport2(props, forwardedRef) {
|
|
94
97
|
const { __scopeScrollArea, children, nonce, ...viewportProps } = props;
|
|
95
98
|
const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);
|
|
96
99
|
const ref = React2.useRef(null);
|
|
@@ -123,11 +126,10 @@ var ScrollAreaViewport = React2.forwardRef(
|
|
|
123
126
|
}
|
|
124
127
|
)
|
|
125
128
|
] });
|
|
126
|
-
}
|
|
129
|
+
}, "ScrollAreaViewport")
|
|
127
130
|
);
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
({ nonce }) => {
|
|
131
|
+
var ScrollAreaViewportStyle = /* @__PURE__ */ React2.memo(
|
|
132
|
+
/* @__PURE__ */ __name(function ScrollAreaViewportStyle2({ nonce }) {
|
|
131
133
|
return /* @__PURE__ */ jsx(
|
|
132
134
|
"style",
|
|
133
135
|
{
|
|
@@ -137,12 +139,13 @@ var ScrollAreaViewportStyle = React2.memo(
|
|
|
137
139
|
nonce
|
|
138
140
|
}
|
|
139
141
|
);
|
|
140
|
-
},
|
|
142
|
+
}, "ScrollAreaViewportStyle"),
|
|
141
143
|
(prevProps, nextProps) => prevProps.nonce === nextProps.nonce
|
|
142
144
|
);
|
|
143
145
|
var SCROLLBAR_NAME = "ScrollAreaScrollbar";
|
|
144
|
-
var ScrollAreaScrollbar = React2.forwardRef(
|
|
145
|
-
|
|
146
|
+
var ScrollAreaScrollbar = /* @__PURE__ */ React2.forwardRef(
|
|
147
|
+
// blank line to reduce diff noise
|
|
148
|
+
/* @__PURE__ */ __name(function ScrollAreaScrollbar2(props, forwardedRef) {
|
|
146
149
|
const { forceMount, ...scrollbarProps } = props;
|
|
147
150
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
148
151
|
const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;
|
|
@@ -154,10 +157,9 @@ var ScrollAreaScrollbar = React2.forwardRef(
|
|
|
154
157
|
};
|
|
155
158
|
}, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);
|
|
156
159
|
return context.type === "hover" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "scroll" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "auto" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "always" ? /* @__PURE__ */ jsx(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef, "data-state": "visible" }) : null;
|
|
157
|
-
}
|
|
160
|
+
}, "ScrollAreaScrollbar")
|
|
158
161
|
);
|
|
159
|
-
|
|
160
|
-
var ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {
|
|
162
|
+
var ScrollAreaScrollbarHover = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarHover2(props, forwardedRef) {
|
|
161
163
|
const { forceMount, ...scrollbarProps } = props;
|
|
162
164
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
163
165
|
const [visible, setVisible] = React2.useState(false);
|
|
@@ -165,13 +167,13 @@ var ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {
|
|
|
165
167
|
const scrollArea = context.scrollArea;
|
|
166
168
|
let hideTimer = 0;
|
|
167
169
|
if (scrollArea) {
|
|
168
|
-
const handlePointerEnter = () => {
|
|
170
|
+
const handlePointerEnter = /* @__PURE__ */ __name(() => {
|
|
169
171
|
window.clearTimeout(hideTimer);
|
|
170
172
|
setVisible(true);
|
|
171
|
-
};
|
|
172
|
-
const handlePointerLeave = () => {
|
|
173
|
+
}, "handlePointerEnter");
|
|
174
|
+
const handlePointerLeave = /* @__PURE__ */ __name(() => {
|
|
173
175
|
hideTimer = window.setTimeout(() => setVisible(false), context.scrollHideDelay);
|
|
174
|
-
};
|
|
176
|
+
}, "handlePointerLeave");
|
|
175
177
|
scrollArea.addEventListener("pointerenter", handlePointerEnter);
|
|
176
178
|
scrollArea.addEventListener("pointerleave", handlePointerLeave);
|
|
177
179
|
return () => {
|
|
@@ -189,8 +191,8 @@ var ScrollAreaScrollbarHover = React2.forwardRef((props, forwardedRef) => {
|
|
|
189
191
|
ref: forwardedRef
|
|
190
192
|
}
|
|
191
193
|
) });
|
|
192
|
-
});
|
|
193
|
-
var ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef)
|
|
194
|
+
}, "ScrollAreaScrollbarHover"));
|
|
195
|
+
var ScrollAreaScrollbarScroll = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarScroll2(props, forwardedRef) {
|
|
194
196
|
const { forceMount, ...scrollbarProps } = props;
|
|
195
197
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
196
198
|
const isHorizontal = props.orientation === "horizontal";
|
|
@@ -224,7 +226,7 @@ var ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {
|
|
|
224
226
|
const scrollDirection = isHorizontal ? "scrollLeft" : "scrollTop";
|
|
225
227
|
if (viewport) {
|
|
226
228
|
let prevScrollPos = viewport[scrollDirection];
|
|
227
|
-
const handleScroll = () => {
|
|
229
|
+
const handleScroll = /* @__PURE__ */ __name(() => {
|
|
228
230
|
const scrollPos = viewport[scrollDirection];
|
|
229
231
|
const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;
|
|
230
232
|
if (hasScrollInDirectionChanged) {
|
|
@@ -232,7 +234,7 @@ var ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {
|
|
|
232
234
|
debounceScrollEnd();
|
|
233
235
|
}
|
|
234
236
|
prevScrollPos = scrollPos;
|
|
235
|
-
};
|
|
237
|
+
}, "handleScroll");
|
|
236
238
|
viewport.addEventListener("scroll", handleScroll);
|
|
237
239
|
return () => viewport.removeEventListener("scroll", handleScroll);
|
|
238
240
|
}
|
|
@@ -247,8 +249,8 @@ var ScrollAreaScrollbarScroll = React2.forwardRef((props, forwardedRef) => {
|
|
|
247
249
|
onPointerLeave: composeEventHandlers(props.onPointerLeave, () => send("POINTER_LEAVE"))
|
|
248
250
|
}
|
|
249
251
|
) });
|
|
250
|
-
});
|
|
251
|
-
var ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef)
|
|
252
|
+
}, "ScrollAreaScrollbarScroll"));
|
|
253
|
+
var ScrollAreaScrollbarAuto = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarAuto2(props, forwardedRef) {
|
|
252
254
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
253
255
|
const { forceMount, ...scrollbarProps } = props;
|
|
254
256
|
const [visible, setVisible] = React2.useState(false);
|
|
@@ -270,8 +272,8 @@ var ScrollAreaScrollbarAuto = React2.forwardRef((props, forwardedRef) => {
|
|
|
270
272
|
ref: forwardedRef
|
|
271
273
|
}
|
|
272
274
|
) });
|
|
273
|
-
});
|
|
274
|
-
var ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef)
|
|
275
|
+
}, "ScrollAreaScrollbarAuto"));
|
|
276
|
+
var ScrollAreaScrollbarVisible = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarVisible2(props, forwardedRef) {
|
|
275
277
|
const { orientation = "vertical", ...scrollbarProps } = props;
|
|
276
278
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
277
279
|
const thumbRef = React2.useRef(null);
|
|
@@ -287,13 +289,14 @@ var ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {
|
|
|
287
289
|
sizes,
|
|
288
290
|
onSizesChange: setSizes,
|
|
289
291
|
hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),
|
|
290
|
-
onThumbChange: (thumb) => thumbRef.current = thumb,
|
|
291
|
-
onThumbPointerUp: () => pointerOffsetRef.current = 0,
|
|
292
|
-
onThumbPointerDown: (pointerPos) => pointerOffsetRef.current = pointerPos
|
|
292
|
+
onThumbChange: /* @__PURE__ */ __name((thumb) => thumbRef.current = thumb, "onThumbChange"),
|
|
293
|
+
onThumbPointerUp: /* @__PURE__ */ __name(() => pointerOffsetRef.current = 0, "onThumbPointerUp"),
|
|
294
|
+
onThumbPointerDown: /* @__PURE__ */ __name((pointerPos) => pointerOffsetRef.current = pointerPos, "onThumbPointerDown")
|
|
293
295
|
};
|
|
294
296
|
function getScrollPosition(pointerPos, dir) {
|
|
295
297
|
return getScrollPositionFromPointer(pointerPos, pointerOffsetRef.current, sizes, dir);
|
|
296
298
|
}
|
|
299
|
+
__name(getScrollPosition, "getScrollPosition");
|
|
297
300
|
if (orientation === "horizontal") {
|
|
298
301
|
return /* @__PURE__ */ jsx(
|
|
299
302
|
ScrollAreaScrollbarX,
|
|
@@ -341,8 +344,8 @@ var ScrollAreaScrollbarVisible = React2.forwardRef((props, forwardedRef) => {
|
|
|
341
344
|
);
|
|
342
345
|
}
|
|
343
346
|
return null;
|
|
344
|
-
});
|
|
345
|
-
var ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef)
|
|
347
|
+
}, "ScrollAreaScrollbarVisible"));
|
|
348
|
+
var ScrollAreaScrollbarX = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarX2(props, forwardedRef) {
|
|
346
349
|
const { sizes, onSizesChange, ...scrollbarProps } = props;
|
|
347
350
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
348
351
|
const [computedStyle, setComputedStyle] = React2.useState();
|
|
@@ -391,8 +394,8 @@ var ScrollAreaScrollbarX = React2.forwardRef((props, forwardedRef) => {
|
|
|
391
394
|
}
|
|
392
395
|
}
|
|
393
396
|
);
|
|
394
|
-
});
|
|
395
|
-
var ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef)
|
|
397
|
+
}, "ScrollAreaScrollbarX"));
|
|
398
|
+
var ScrollAreaScrollbarY = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarY2(props, forwardedRef) {
|
|
396
399
|
const { sizes, onSizesChange, ...scrollbarProps } = props;
|
|
397
400
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
398
401
|
const [computedStyle, setComputedStyle] = React2.useState();
|
|
@@ -442,9 +445,9 @@ var ScrollAreaScrollbarY = React2.forwardRef((props, forwardedRef) => {
|
|
|
442
445
|
}
|
|
443
446
|
}
|
|
444
447
|
);
|
|
445
|
-
});
|
|
448
|
+
}, "ScrollAreaScrollbarY"));
|
|
446
449
|
var [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);
|
|
447
|
-
var ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef)
|
|
450
|
+
var ScrollAreaScrollbarImpl = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaScrollbarImpl2(props, forwardedRef) {
|
|
448
451
|
const {
|
|
449
452
|
__scopeScrollArea,
|
|
450
453
|
sizes,
|
|
@@ -475,12 +478,13 @@ var ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {
|
|
|
475
478
|
onDragScroll({ x, y });
|
|
476
479
|
}
|
|
477
480
|
}
|
|
481
|
+
__name(handleDragScroll, "handleDragScroll");
|
|
478
482
|
React2.useEffect(() => {
|
|
479
|
-
const handleWheel = (event) => {
|
|
483
|
+
const handleWheel = /* @__PURE__ */ __name((event) => {
|
|
480
484
|
const element = event.target;
|
|
481
485
|
const isScrollbarWheel = scrollbar?.contains(element);
|
|
482
486
|
if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);
|
|
483
|
-
};
|
|
487
|
+
}, "handleWheel");
|
|
484
488
|
document.addEventListener("wheel", handleWheel, { passive: false });
|
|
485
489
|
return () => document.removeEventListener("wheel", handleWheel, { passive: false });
|
|
486
490
|
}, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);
|
|
@@ -529,17 +533,19 @@ var ScrollAreaScrollbarImpl = React2.forwardRef((props, forwardedRef) => {
|
|
|
529
533
|
)
|
|
530
534
|
}
|
|
531
535
|
);
|
|
532
|
-
});
|
|
536
|
+
}, "ScrollAreaScrollbarImpl"));
|
|
533
537
|
var THUMB_NAME = "ScrollAreaThumb";
|
|
534
|
-
var ScrollAreaThumb = React2.forwardRef(
|
|
535
|
-
|
|
538
|
+
var ScrollAreaThumb = /* @__PURE__ */ React2.forwardRef(
|
|
539
|
+
// blank line to reduce diff noise
|
|
540
|
+
/* @__PURE__ */ __name(function ScrollAreaThumb2(props, forwardedRef) {
|
|
536
541
|
const { forceMount, ...thumbProps } = props;
|
|
537
542
|
const scrollbarContext = useScrollbarContext(THUMB_NAME, props.__scopeScrollArea);
|
|
538
543
|
return /* @__PURE__ */ jsx(Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });
|
|
539
|
-
}
|
|
544
|
+
}, "ScrollAreaThumb")
|
|
540
545
|
);
|
|
541
|
-
var ScrollAreaThumbImpl = React2.forwardRef(
|
|
542
|
-
|
|
546
|
+
var ScrollAreaThumbImpl = /* @__PURE__ */ React2.forwardRef(
|
|
547
|
+
// blank line to reduce diff noise
|
|
548
|
+
/* @__PURE__ */ __name(function ScrollAreaThumbImpl2(props, forwardedRef) {
|
|
543
549
|
const { __scopeScrollArea, style, ...thumbProps } = props;
|
|
544
550
|
const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);
|
|
545
551
|
const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);
|
|
@@ -555,14 +561,14 @@ var ScrollAreaThumbImpl = React2.forwardRef(
|
|
|
555
561
|
React2.useEffect(() => {
|
|
556
562
|
const viewport = scrollAreaContext.viewport;
|
|
557
563
|
if (viewport) {
|
|
558
|
-
const handleScroll = () => {
|
|
564
|
+
const handleScroll = /* @__PURE__ */ __name(() => {
|
|
559
565
|
debounceScrollEnd();
|
|
560
566
|
if (!removeUnlinkedScrollListenerRef.current) {
|
|
561
567
|
const listener = addUnlinkedScrollListener(viewport, onThumbPositionChange);
|
|
562
568
|
removeUnlinkedScrollListenerRef.current = listener;
|
|
563
569
|
onThumbPositionChange();
|
|
564
570
|
}
|
|
565
|
-
};
|
|
571
|
+
}, "handleScroll");
|
|
566
572
|
onThumbPositionChange();
|
|
567
573
|
viewport.addEventListener("scroll", handleScroll);
|
|
568
574
|
return () => viewport.removeEventListener("scroll", handleScroll);
|
|
@@ -589,20 +595,19 @@ var ScrollAreaThumbImpl = React2.forwardRef(
|
|
|
589
595
|
onPointerUp: composeEventHandlers(props.onPointerUp, scrollbarContext.onThumbPointerUp)
|
|
590
596
|
}
|
|
591
597
|
);
|
|
592
|
-
}
|
|
598
|
+
}, "ScrollAreaThumbImpl")
|
|
593
599
|
);
|
|
594
|
-
ScrollAreaThumb.displayName = THUMB_NAME;
|
|
595
600
|
var CORNER_NAME = "ScrollAreaCorner";
|
|
596
|
-
var ScrollAreaCorner = React2.forwardRef(
|
|
597
|
-
|
|
601
|
+
var ScrollAreaCorner = /* @__PURE__ */ React2.forwardRef(
|
|
602
|
+
// blank line to reduce diff noise
|
|
603
|
+
/* @__PURE__ */ __name(function ScrollAreaCorner2(props, forwardedRef) {
|
|
598
604
|
const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);
|
|
599
605
|
const hasBothScrollbarsVisible = Boolean(context.scrollbarX && context.scrollbarY);
|
|
600
606
|
const hasCorner = context.type !== "scroll" && hasBothScrollbarsVisible;
|
|
601
607
|
return hasCorner ? /* @__PURE__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;
|
|
602
|
-
}
|
|
608
|
+
}, "ScrollAreaCorner")
|
|
603
609
|
);
|
|
604
|
-
|
|
605
|
-
var ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {
|
|
610
|
+
var ScrollAreaCornerImpl = /* @__PURE__ */ React2.forwardRef(/* @__PURE__ */ __name(function ScrollAreaCornerImpl2(props, forwardedRef) {
|
|
606
611
|
const { __scopeScrollArea, ...cornerProps } = props;
|
|
607
612
|
const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);
|
|
608
613
|
const [width, setWidth] = React2.useState(0);
|
|
@@ -641,20 +646,23 @@ var ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {
|
|
|
641
646
|
}
|
|
642
647
|
}
|
|
643
648
|
) : null;
|
|
644
|
-
});
|
|
649
|
+
}, "ScrollAreaCornerImpl"));
|
|
645
650
|
function toInt(value) {
|
|
646
651
|
return value ? parseInt(value, 10) : 0;
|
|
647
652
|
}
|
|
653
|
+
__name(toInt, "toInt");
|
|
648
654
|
function getThumbRatio(viewportSize, contentSize) {
|
|
649
655
|
const ratio = viewportSize / contentSize;
|
|
650
656
|
return isNaN(ratio) ? 0 : ratio;
|
|
651
657
|
}
|
|
658
|
+
__name(getThumbRatio, "getThumbRatio");
|
|
652
659
|
function getThumbSize(sizes) {
|
|
653
660
|
const ratio = getThumbRatio(sizes.viewport, sizes.content);
|
|
654
661
|
const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;
|
|
655
662
|
const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;
|
|
656
663
|
return Math.max(thumbSize, 18);
|
|
657
664
|
}
|
|
665
|
+
__name(getThumbSize, "getThumbSize");
|
|
658
666
|
function getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = "ltr") {
|
|
659
667
|
const thumbSizePx = getThumbSize(sizes);
|
|
660
668
|
const thumbCenter = thumbSizePx / 2;
|
|
@@ -667,6 +675,7 @@ function getScrollPositionFromPointer(pointerPos, pointerOffset, sizes, dir = "l
|
|
|
667
675
|
const interpolate = linearScale([minPointerPos, maxPointerPos], scrollRange);
|
|
668
676
|
return interpolate(pointerPos);
|
|
669
677
|
}
|
|
678
|
+
__name(getScrollPositionFromPointer, "getScrollPositionFromPointer");
|
|
670
679
|
function getThumbOffsetFromScroll(scrollPos, sizes, dir = "ltr") {
|
|
671
680
|
const thumbSizePx = getThumbSize(sizes);
|
|
672
681
|
const scrollbarPadding = sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;
|
|
@@ -678,6 +687,7 @@ function getThumbOffsetFromScroll(scrollPos, sizes, dir = "ltr") {
|
|
|
678
687
|
const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);
|
|
679
688
|
return interpolate(scrollWithoutMomentum);
|
|
680
689
|
}
|
|
690
|
+
__name(getThumbOffsetFromScroll, "getThumbOffsetFromScroll");
|
|
681
691
|
function linearScale(input, output) {
|
|
682
692
|
return (value) => {
|
|
683
693
|
if (input[0] === input[1] || output[0] === output[1]) return output[0];
|
|
@@ -685,23 +695,25 @@ function linearScale(input, output) {
|
|
|
685
695
|
return output[0] + ratio * (value - input[0]);
|
|
686
696
|
};
|
|
687
697
|
}
|
|
698
|
+
__name(linearScale, "linearScale");
|
|
688
699
|
function isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {
|
|
689
700
|
return scrollPos > 0 && scrollPos < maxScrollPos;
|
|
690
701
|
}
|
|
691
|
-
|
|
702
|
+
__name(isScrollingWithinScrollbarBounds, "isScrollingWithinScrollbarBounds");
|
|
703
|
+
var addUnlinkedScrollListener = /* @__PURE__ */ __name((node, handler = () => {
|
|
692
704
|
}) => {
|
|
693
705
|
let prevPosition = { left: node.scrollLeft, top: node.scrollTop };
|
|
694
706
|
let rAF = 0;
|
|
695
|
-
(function loop() {
|
|
707
|
+
(/* @__PURE__ */ __name((function loop() {
|
|
696
708
|
const position = { left: node.scrollLeft, top: node.scrollTop };
|
|
697
709
|
const isHorizontalScroll = prevPosition.left !== position.left;
|
|
698
710
|
const isVerticalScroll = prevPosition.top !== position.top;
|
|
699
711
|
if (isHorizontalScroll || isVerticalScroll) handler();
|
|
700
712
|
prevPosition = position;
|
|
701
713
|
rAF = window.requestAnimationFrame(loop);
|
|
702
|
-
})();
|
|
714
|
+
}), "loop"))();
|
|
703
715
|
return () => window.cancelAnimationFrame(rAF);
|
|
704
|
-
};
|
|
716
|
+
}, "addUnlinkedScrollListener");
|
|
705
717
|
function useDebounceCallback(callback, delay) {
|
|
706
718
|
const handleCallback = useCallbackRef(callback);
|
|
707
719
|
const debounceTimerRef = React2.useRef(0);
|
|
@@ -711,6 +723,7 @@ function useDebounceCallback(callback, delay) {
|
|
|
711
723
|
debounceTimerRef.current = window.setTimeout(handleCallback, delay);
|
|
712
724
|
}, [handleCallback, delay]);
|
|
713
725
|
}
|
|
726
|
+
__name(useDebounceCallback, "useDebounceCallback");
|
|
714
727
|
function useResizeObserver(element, onResize) {
|
|
715
728
|
const handleResize = useCallbackRef(onResize);
|
|
716
729
|
useLayoutEffect(() => {
|
|
@@ -728,6 +741,7 @@ function useResizeObserver(element, onResize) {
|
|
|
728
741
|
}
|
|
729
742
|
}, [element, handleResize]);
|
|
730
743
|
}
|
|
744
|
+
__name(useResizeObserver, "useResizeObserver");
|
|
731
745
|
var Root = ScrollArea;
|
|
732
746
|
var Viewport = ScrollAreaViewport;
|
|
733
747
|
var Scrollbar = ScrollAreaScrollbar;
|