@huin-core/react-scroll-area 1.0.5 → 1.0.6
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 +104 -112
- package/dist/index.js.map +2 -2
- package/dist/index.mjs +104 -112
- package/dist/index.mjs.map +2 -2
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -71,7 +71,6 @@ var import_react = __toESM(require("react"));
|
|
|
71
71
|
var import_react_primitive = require("@huin-core/react-primitive");
|
|
72
72
|
var import_react_use_callback_ref = require("@huin-core/react-use-callback-ref");
|
|
73
73
|
var import_react_use_layout_effect = require("@huin-core/react-use-layout-effect");
|
|
74
|
-
var import_jsx_runtime = require("react/jsx-runtime");
|
|
75
74
|
var CORNER_NAME = "ScrollAreaCorner";
|
|
76
75
|
var ScrollAreaCorner = import_react.default.forwardRef((props, forwardedRef) => {
|
|
77
76
|
const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);
|
|
@@ -79,7 +78,7 @@ var ScrollAreaCorner = import_react.default.forwardRef((props, forwardedRef) =>
|
|
|
79
78
|
context.scrollbarX && context.scrollbarY
|
|
80
79
|
);
|
|
81
80
|
const hasCorner = context.type !== "scroll" && hasBothScrollbarsVisible;
|
|
82
|
-
return hasCorner ? /* @__PURE__ */
|
|
81
|
+
return hasCorner ? /* @__PURE__ */ import_react.default.createElement(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;
|
|
83
82
|
});
|
|
84
83
|
ScrollAreaCorner.displayName = CORNER_NAME;
|
|
85
84
|
var ScrollAreaCornerImpl = import_react.default.forwardRef((props, forwardedRef) => {
|
|
@@ -98,7 +97,7 @@ var ScrollAreaCornerImpl = import_react.default.forwardRef((props, forwardedRef)
|
|
|
98
97
|
context.onCornerWidthChange(width2);
|
|
99
98
|
setWidth(width2);
|
|
100
99
|
});
|
|
101
|
-
return hasSize ? /* @__PURE__ */
|
|
100
|
+
return hasSize ? /* @__PURE__ */ import_react.default.createElement(
|
|
102
101
|
import_react_primitive.Primitive.div,
|
|
103
102
|
{
|
|
104
103
|
...cornerProps,
|
|
@@ -136,7 +135,6 @@ function useResizeObserver(element, onResize) {
|
|
|
136
135
|
// packages/react/scroll-area/src/ScrollAreaScrollbar.tsx
|
|
137
136
|
var import_react_compose_refs = require("@huin-core/react-compose-refs");
|
|
138
137
|
var import_number = require("@huin-core/number");
|
|
139
|
-
var import_jsx_runtime2 = require("react/jsx-runtime");
|
|
140
138
|
var SCROLLBAR_NAME = "ScrollAreaScrollbar";
|
|
141
139
|
var ScrollAreaScrollbar = import_react2.default.forwardRef(
|
|
142
140
|
(props, forwardedRef) => {
|
|
@@ -150,7 +148,7 @@ var ScrollAreaScrollbar = import_react2.default.forwardRef(
|
|
|
150
148
|
isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);
|
|
151
149
|
};
|
|
152
150
|
}, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);
|
|
153
|
-
return context.type === "hover" ? /* @__PURE__ */
|
|
151
|
+
return context.type === "hover" ? /* @__PURE__ */ import_react2.default.createElement(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "scroll" ? /* @__PURE__ */ import_react2.default.createElement(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "auto" ? /* @__PURE__ */ import_react2.default.createElement(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "always" ? /* @__PURE__ */ import_react2.default.createElement(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;
|
|
154
152
|
}
|
|
155
153
|
);
|
|
156
154
|
ScrollAreaScrollbar.displayName = SCROLLBAR_NAME;
|
|
@@ -181,14 +179,14 @@ var ScrollAreaScrollbarHover = import_react2.default.forwardRef((props, forwarde
|
|
|
181
179
|
};
|
|
182
180
|
}
|
|
183
181
|
}, [context.scrollArea, context.scrollHideDelay]);
|
|
184
|
-
return /* @__PURE__ */
|
|
182
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react_presence.Presence, { present: forceMount || visible }, /* @__PURE__ */ import_react2.default.createElement(
|
|
185
183
|
ScrollAreaScrollbarAuto,
|
|
186
184
|
{
|
|
187
185
|
"data-state": visible ? "visible" : "hidden",
|
|
188
186
|
...scrollbarProps,
|
|
189
187
|
ref: forwardedRef
|
|
190
188
|
}
|
|
191
|
-
)
|
|
189
|
+
));
|
|
192
190
|
});
|
|
193
191
|
var ScrollAreaScrollbarScroll = import_react2.default.forwardRef((props, forwardedRef) => {
|
|
194
192
|
const { forceMount, ...scrollbarProps } = props;
|
|
@@ -240,7 +238,7 @@ var ScrollAreaScrollbarScroll = import_react2.default.forwardRef((props, forward
|
|
|
240
238
|
return () => viewport.removeEventListener("scroll", handleScroll);
|
|
241
239
|
}
|
|
242
240
|
}, [context.viewport, isHorizontal, send, debounceScrollEnd]);
|
|
243
|
-
return /* @__PURE__ */
|
|
241
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react_presence.Presence, { present: forceMount || state !== "hidden" }, /* @__PURE__ */ import_react2.default.createElement(
|
|
244
242
|
ScrollAreaScrollbarVisible,
|
|
245
243
|
{
|
|
246
244
|
"data-state": state === "hidden" ? "hidden" : "visible",
|
|
@@ -255,7 +253,7 @@ var ScrollAreaScrollbarScroll = import_react2.default.forwardRef((props, forward
|
|
|
255
253
|
() => send("POINTER_LEAVE")
|
|
256
254
|
)
|
|
257
255
|
}
|
|
258
|
-
)
|
|
256
|
+
));
|
|
259
257
|
});
|
|
260
258
|
var ScrollAreaScrollbarAuto = import_react2.default.forwardRef((props, forwardedRef) => {
|
|
261
259
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
@@ -271,14 +269,14 @@ var ScrollAreaScrollbarAuto = import_react2.default.forwardRef((props, forwarded
|
|
|
271
269
|
}, 10);
|
|
272
270
|
useResizeObserver(context.viewport, handleResize);
|
|
273
271
|
useResizeObserver(context.content, handleResize);
|
|
274
|
-
return /* @__PURE__ */
|
|
272
|
+
return /* @__PURE__ */ import_react2.default.createElement(import_react_presence.Presence, { present: forceMount || visible }, /* @__PURE__ */ import_react2.default.createElement(
|
|
275
273
|
ScrollAreaScrollbarVisible,
|
|
276
274
|
{
|
|
277
275
|
"data-state": visible ? "visible" : "hidden",
|
|
278
276
|
...scrollbarProps,
|
|
279
277
|
ref: forwardedRef
|
|
280
278
|
}
|
|
281
|
-
)
|
|
279
|
+
));
|
|
282
280
|
});
|
|
283
281
|
var ScrollAreaScrollbarVisible = import_react2.default.forwardRef((props, forwardedRef) => {
|
|
284
282
|
const { orientation = "vertical", ...scrollbarProps } = props;
|
|
@@ -309,7 +307,7 @@ var ScrollAreaScrollbarVisible = import_react2.default.forwardRef((props, forwar
|
|
|
309
307
|
);
|
|
310
308
|
}
|
|
311
309
|
if (orientation === "horizontal") {
|
|
312
|
-
return /* @__PURE__ */
|
|
310
|
+
return /* @__PURE__ */ import_react2.default.createElement(
|
|
313
311
|
ScrollAreaScrollbarX,
|
|
314
312
|
{
|
|
315
313
|
...commonProps,
|
|
@@ -340,7 +338,7 @@ var ScrollAreaScrollbarVisible = import_react2.default.forwardRef((props, forwar
|
|
|
340
338
|
);
|
|
341
339
|
}
|
|
342
340
|
if (orientation === "vertical") {
|
|
343
|
-
return /* @__PURE__ */
|
|
341
|
+
return /* @__PURE__ */ import_react2.default.createElement(
|
|
344
342
|
ScrollAreaScrollbarY,
|
|
345
343
|
{
|
|
346
344
|
...commonProps,
|
|
@@ -377,7 +375,7 @@ var ScrollAreaScrollbarX = import_react2.default.forwardRef((props, forwardedRef
|
|
|
377
375
|
import_react2.default.useEffect(() => {
|
|
378
376
|
if (ref.current) setComputedStyle(getComputedStyle(ref.current));
|
|
379
377
|
}, [ref]);
|
|
380
|
-
return /* @__PURE__ */
|
|
378
|
+
return /* @__PURE__ */ import_react2.default.createElement(
|
|
381
379
|
ScrollAreaScrollbarImpl,
|
|
382
380
|
{
|
|
383
381
|
"data-orientation": "horizontal",
|
|
@@ -431,7 +429,7 @@ var ScrollAreaScrollbarY = import_react2.default.forwardRef((props, forwardedRef
|
|
|
431
429
|
import_react2.default.useEffect(() => {
|
|
432
430
|
if (ref.current) setComputedStyle(getComputedStyle(ref.current));
|
|
433
431
|
}, [ref]);
|
|
434
|
-
return /* @__PURE__ */
|
|
432
|
+
return /* @__PURE__ */ import_react2.default.createElement(
|
|
435
433
|
ScrollAreaScrollbarImpl,
|
|
436
434
|
{
|
|
437
435
|
"data-orientation": "vertical",
|
|
@@ -524,7 +522,7 @@ var ScrollAreaScrollbarImpl = import_react2.default.forwardRef((props, forwarded
|
|
|
524
522
|
]);
|
|
525
523
|
useResizeObserver(scrollbar, handleResize);
|
|
526
524
|
useResizeObserver(context.content, handleResize);
|
|
527
|
-
return /* @__PURE__ */
|
|
525
|
+
return /* @__PURE__ */ import_react2.default.createElement(
|
|
528
526
|
ScrollbarProvider,
|
|
529
527
|
{
|
|
530
528
|
scope: __scopeScrollArea,
|
|
@@ -533,42 +531,42 @@ var ScrollAreaScrollbarImpl = import_react2.default.forwardRef((props, forwarded
|
|
|
533
531
|
onThumbChange: (0, import_react_use_callback_ref2.useCallbackRef)(onThumbChange),
|
|
534
532
|
onThumbPointerUp: (0, import_react_use_callback_ref2.useCallbackRef)(onThumbPointerUp),
|
|
535
533
|
onThumbPositionChange: handleThumbPositionChange,
|
|
536
|
-
onThumbPointerDown: (0, import_react_use_callback_ref2.useCallbackRef)(onThumbPointerDown)
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
element.setPointerCapture(event.pointerId);
|
|
548
|
-
rectRef.current = scrollbar.getBoundingClientRect();
|
|
549
|
-
prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;
|
|
550
|
-
document.body.style.webkitUserSelect = "none";
|
|
551
|
-
if (context.viewport)
|
|
552
|
-
context.viewport.style.scrollBehavior = "auto";
|
|
553
|
-
handleDragScroll(event);
|
|
554
|
-
}
|
|
555
|
-
}),
|
|
556
|
-
onPointerMove: (0, import_primitive.composeEventHandlers)(
|
|
557
|
-
props.onPointerMove,
|
|
558
|
-
handleDragScroll
|
|
559
|
-
),
|
|
560
|
-
onPointerUp: (0, import_primitive.composeEventHandlers)(props.onPointerUp, (event) => {
|
|
534
|
+
onThumbPointerDown: (0, import_react_use_callback_ref2.useCallbackRef)(onThumbPointerDown)
|
|
535
|
+
},
|
|
536
|
+
/* @__PURE__ */ import_react2.default.createElement(
|
|
537
|
+
import_react_primitive2.Primitive.div,
|
|
538
|
+
{
|
|
539
|
+
...scrollbarProps,
|
|
540
|
+
ref: composeRefs,
|
|
541
|
+
style: { position: "absolute", ...scrollbarProps.style },
|
|
542
|
+
onPointerDown: (0, import_primitive.composeEventHandlers)(props.onPointerDown, (event) => {
|
|
543
|
+
const mainPointer = 0;
|
|
544
|
+
if (event.button === mainPointer) {
|
|
561
545
|
const element = event.target;
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
document.body.style.webkitUserSelect =
|
|
566
|
-
if (context.viewport)
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
546
|
+
element.setPointerCapture(event.pointerId);
|
|
547
|
+
rectRef.current = scrollbar.getBoundingClientRect();
|
|
548
|
+
prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;
|
|
549
|
+
document.body.style.webkitUserSelect = "none";
|
|
550
|
+
if (context.viewport)
|
|
551
|
+
context.viewport.style.scrollBehavior = "auto";
|
|
552
|
+
handleDragScroll(event);
|
|
553
|
+
}
|
|
554
|
+
}),
|
|
555
|
+
onPointerMove: (0, import_primitive.composeEventHandlers)(
|
|
556
|
+
props.onPointerMove,
|
|
557
|
+
handleDragScroll
|
|
558
|
+
),
|
|
559
|
+
onPointerUp: (0, import_primitive.composeEventHandlers)(props.onPointerUp, (event) => {
|
|
560
|
+
const element = event.target;
|
|
561
|
+
if (element.hasPointerCapture(event.pointerId)) {
|
|
562
|
+
element.releasePointerCapture(event.pointerId);
|
|
563
|
+
}
|
|
564
|
+
document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;
|
|
565
|
+
if (context.viewport) context.viewport.style.scrollBehavior = "";
|
|
566
|
+
rectRef.current = null;
|
|
567
|
+
})
|
|
568
|
+
}
|
|
569
|
+
)
|
|
572
570
|
);
|
|
573
571
|
});
|
|
574
572
|
function useDebounceCallback(callback, delay) {
|
|
@@ -637,7 +635,6 @@ function isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {
|
|
|
637
635
|
}
|
|
638
636
|
|
|
639
637
|
// packages/react/scroll-area/src/ScrollArea.tsx
|
|
640
|
-
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
641
638
|
var SCROLL_AREA_NAME = "ScrollArea";
|
|
642
639
|
var [createScrollAreaContext, createScrollAreaScope] = (0, import_react_context.createContextScope)(SCROLL_AREA_NAME);
|
|
643
640
|
var [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);
|
|
@@ -665,7 +662,7 @@ var ScrollArea = React4.forwardRef(
|
|
|
665
662
|
(node) => setScrollArea(node)
|
|
666
663
|
);
|
|
667
664
|
const direction = (0, import_react_direction.useDirection)(dir);
|
|
668
|
-
return /* @__PURE__ */
|
|
665
|
+
return /* @__PURE__ */ React4.createElement(
|
|
669
666
|
ScrollAreaProvider,
|
|
670
667
|
{
|
|
671
668
|
scope: __scopeScrollArea,
|
|
@@ -686,23 +683,23 @@ var ScrollArea = React4.forwardRef(
|
|
|
686
683
|
scrollbarYEnabled,
|
|
687
684
|
onScrollbarYEnabledChange: setScrollbarYEnabled,
|
|
688
685
|
onCornerWidthChange: setCornerWidth,
|
|
689
|
-
onCornerHeightChange: setCornerHeight
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
686
|
+
onCornerHeightChange: setCornerHeight
|
|
687
|
+
},
|
|
688
|
+
/* @__PURE__ */ React4.createElement(
|
|
689
|
+
import_react_primitive3.Primitive.div,
|
|
690
|
+
{
|
|
691
|
+
dir: direction,
|
|
692
|
+
...scrollAreaProps,
|
|
693
|
+
ref: composedRefs,
|
|
694
|
+
style: {
|
|
695
|
+
position: "relative",
|
|
696
|
+
// Pass corner sizes as CSS vars to reduce re-renders of context consumers
|
|
697
|
+
["--huin-core-scroll-area-corner-width"]: cornerWidth + "px",
|
|
698
|
+
["--huin-core-scroll-area-corner-height"]: cornerHeight + "px",
|
|
699
|
+
...props.style
|
|
703
700
|
}
|
|
704
|
-
|
|
705
|
-
|
|
701
|
+
}
|
|
702
|
+
)
|
|
706
703
|
);
|
|
707
704
|
}
|
|
708
705
|
);
|
|
@@ -713,7 +710,6 @@ var Root = ScrollArea;
|
|
|
713
710
|
var import_react3 = __toESM(require("react"));
|
|
714
711
|
var import_react_primitive4 = require("@huin-core/react-primitive");
|
|
715
712
|
var import_react_compose_refs3 = require("@huin-core/react-compose-refs");
|
|
716
|
-
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
717
713
|
var VIEWPORT_NAME = "ScrollAreaViewport";
|
|
718
714
|
var ScrollAreaViewport = import_react3.default.forwardRef((props, forwardedRef) => {
|
|
719
715
|
const { __scopeScrollArea, children, nonce, ...viewportProps } = props;
|
|
@@ -724,49 +720,46 @@ var ScrollAreaViewport = import_react3.default.forwardRef((props, forwardedRef)
|
|
|
724
720
|
ref,
|
|
725
721
|
context.onViewportChange
|
|
726
722
|
);
|
|
727
|
-
return /* @__PURE__ */
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
{
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
723
|
+
return /* @__PURE__ */ import_react3.default.createElement(import_react3.default.Fragment, null, /* @__PURE__ */ import_react3.default.createElement(
|
|
724
|
+
"style",
|
|
725
|
+
{
|
|
726
|
+
dangerouslySetInnerHTML: {
|
|
727
|
+
__html: `[data-huin-core-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-huin-core-scroll-area-viewport]::-webkit-scrollbar{display:none}`
|
|
728
|
+
},
|
|
729
|
+
nonce
|
|
730
|
+
}
|
|
731
|
+
), /* @__PURE__ */ import_react3.default.createElement(
|
|
732
|
+
import_react_primitive4.Primitive.div,
|
|
733
|
+
{
|
|
734
|
+
"data-huin-core-scroll-area-viewport": "",
|
|
735
|
+
...viewportProps,
|
|
736
|
+
ref: composedRefs,
|
|
737
|
+
style: {
|
|
738
|
+
/**
|
|
739
|
+
* We don't support `visible` because the intention is to have at least one scrollbar
|
|
740
|
+
* if this component is used and `visible` will behave like `auto` in that case
|
|
741
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description
|
|
742
|
+
*
|
|
743
|
+
* We don't handle `auto` because the intention is for the native implementation
|
|
744
|
+
* to be hidden if using this component. We just want to ensure the node is scrollable
|
|
745
|
+
* so could have used either `scroll` or `auto` here. We picked `scroll` to prevent
|
|
746
|
+
* the browser from having to work out whether to render native scrollbars or not,
|
|
747
|
+
* we tell it to with the intention of hiding them in CSS.
|
|
748
|
+
*/
|
|
749
|
+
overflowX: context.scrollbarXEnabled ? "scroll" : "hidden",
|
|
750
|
+
overflowY: context.scrollbarYEnabled ? "scroll" : "hidden",
|
|
751
|
+
...props.style
|
|
735
752
|
}
|
|
736
|
-
|
|
737
|
-
/* @__PURE__ */
|
|
753
|
+
},
|
|
754
|
+
/* @__PURE__ */ import_react3.default.createElement(
|
|
738
755
|
import_react_primitive4.Primitive.div,
|
|
739
756
|
{
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
/**
|
|
745
|
-
* We don't support `visible` because the intention is to have at least one scrollbar
|
|
746
|
-
* if this component is used and `visible` will behave like `auto` in that case
|
|
747
|
-
* https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description
|
|
748
|
-
*
|
|
749
|
-
* We don't handle `auto` because the intention is for the native implementation
|
|
750
|
-
* to be hidden if using this component. We just want to ensure the node is scrollable
|
|
751
|
-
* so could have used either `scroll` or `auto` here. We picked `scroll` to prevent
|
|
752
|
-
* the browser from having to work out whether to render native scrollbars or not,
|
|
753
|
-
* we tell it to with the intention of hiding them in CSS.
|
|
754
|
-
*/
|
|
755
|
-
overflowX: context.scrollbarXEnabled ? "scroll" : "hidden",
|
|
756
|
-
overflowY: context.scrollbarYEnabled ? "scroll" : "hidden",
|
|
757
|
-
...props.style
|
|
758
|
-
},
|
|
759
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
760
|
-
import_react_primitive4.Primitive.div,
|
|
761
|
-
{
|
|
762
|
-
ref: context.onContentChange,
|
|
763
|
-
style: { minWidth: "100%", display: "table" },
|
|
764
|
-
children
|
|
765
|
-
}
|
|
766
|
-
)
|
|
767
|
-
}
|
|
757
|
+
ref: context.onContentChange,
|
|
758
|
+
style: { minWidth: "100%", display: "table" }
|
|
759
|
+
},
|
|
760
|
+
children
|
|
768
761
|
)
|
|
769
|
-
|
|
762
|
+
));
|
|
770
763
|
});
|
|
771
764
|
ScrollAreaViewport.displayName = VIEWPORT_NAME;
|
|
772
765
|
|
|
@@ -776,7 +769,6 @@ var import_react_presence2 = require("@huin-core/react-presence");
|
|
|
776
769
|
var import_react_compose_refs4 = require("@huin-core/react-compose-refs");
|
|
777
770
|
var import_react_primitive5 = require("@huin-core/react-primitive");
|
|
778
771
|
var import_primitive2 = require("@huin-core/primitive");
|
|
779
|
-
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
780
772
|
var THUMB_NAME = "ScrollAreaThumb";
|
|
781
773
|
var ScrollAreaThumb = import_react4.default.forwardRef((props, forwardedRef) => {
|
|
782
774
|
const { forceMount, ...thumbProps } = props;
|
|
@@ -784,7 +776,7 @@ var ScrollAreaThumb = import_react4.default.forwardRef((props, forwardedRef) =>
|
|
|
784
776
|
THUMB_NAME,
|
|
785
777
|
props.__scopeScrollArea
|
|
786
778
|
);
|
|
787
|
-
return /* @__PURE__ */
|
|
779
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_react_presence2.Presence, { present: forceMount || scrollbarContext.hasThumb }, /* @__PURE__ */ import_react4.default.createElement(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }));
|
|
788
780
|
});
|
|
789
781
|
var ScrollAreaThumbImpl = import_react4.default.forwardRef((props, forwardedRef) => {
|
|
790
782
|
const { __scopeScrollArea, style, ...thumbProps } = props;
|
|
@@ -821,7 +813,7 @@ var ScrollAreaThumbImpl = import_react4.default.forwardRef((props, forwardedRef)
|
|
|
821
813
|
return () => viewport.removeEventListener("scroll", handleScroll);
|
|
822
814
|
}
|
|
823
815
|
}, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);
|
|
824
|
-
return /* @__PURE__ */
|
|
816
|
+
return /* @__PURE__ */ import_react4.default.createElement(
|
|
825
817
|
import_react_primitive5.Primitive.div,
|
|
826
818
|
{
|
|
827
819
|
"data-state": scrollbarContext.hasThumb ? "visible" : "hidden",
|
package/dist/index.js.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts", "../src/ScrollArea.tsx", "../src/ScrollAreaScrollbar.tsx", "../src/useStateMachine.ts", "../src/ScrollAreaCorner.tsx", "../src/ScrollAreaViewport.tsx", "../src/ScrollAreaThumb.tsx"],
|
|
4
4
|
"sourcesContent": ["\"use client\";\nexport { createScrollAreaScope, ScrollArea, Root } from \"./ScrollArea\";\nexport { ScrollAreaViewport } from \"./ScrollAreaViewport\";\nexport { ScrollAreaScrollbar } from \"./ScrollAreaScrollbar\";\nexport { ScrollAreaThumb } from \"./ScrollAreaThumb\";\nexport { ScrollAreaCorner } from \"./ScrollAreaCorner\";\n\nexport type { ScrollAreaProps } from \"./ScrollArea\";\nexport type { ScrollAreaViewportProps } from \"./ScrollAreaViewport\";\nexport type { ScrollAreaScrollbarProps } from \"./ScrollAreaScrollbar\";\nexport type { ScrollAreaThumbProps } from \"./ScrollAreaThumb\";\nexport type { ScrollAreaCornerProps } from \"./ScrollAreaCorner\";\n", "import * as React from \"react\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { createContextScope } from \"@huin-core/react-context\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { useDirection } from \"@huin-core/react-direction\";\nimport type { Scope } from \"@huin-core/react-context\";\nimport { ScrollAreaViewportElement } from \"./ScrollAreaViewport\";\n\nimport {\n ScrollAreaScrollbarElement,\n SCROLLBAR_NAME,\n ScrollbarContext,\n} from \"./ScrollAreaScrollbar\";\n\nexport type Direction = \"ltr\" | \"rtl\";\nexport type Sizes = {\n content: number;\n viewport: number;\n scrollbar: {\n size: number;\n paddingStart: number;\n paddingEnd: number;\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollArea\n * -----------------------------------------------------------------------------------------------*/\n\nconst SCROLL_AREA_NAME = \"ScrollArea\";\n\nexport type ScopedProps<P> = P & { __scopeScrollArea?: Scope };\nexport const [createScrollAreaContext, createScrollAreaScope] =\n createContextScope(SCROLL_AREA_NAME);\n\nexport const [ScrollbarProvider, useScrollbarContext] =\n createScrollAreaContext<ScrollbarContext>(SCROLLBAR_NAME);\n\ntype ScrollAreaContextValue = {\n type: \"auto\" | \"always\" | \"scroll\" | \"hover\";\n dir: Direction;\n scrollHideDelay: number;\n scrollArea: ScrollAreaElement | null;\n viewport: ScrollAreaViewportElement | null;\n onViewportChange(viewport: ScrollAreaViewportElement | null): void;\n content: HTMLDivElement | null;\n onContentChange(content: HTMLDivElement): void;\n scrollbarX: ScrollAreaScrollbarElement | null;\n onScrollbarXChange(scrollbar: ScrollAreaScrollbarElement | null): void;\n scrollbarXEnabled: boolean;\n onScrollbarXEnabledChange(rendered: boolean): void;\n scrollbarY: ScrollAreaScrollbarElement | null;\n onScrollbarYChange(scrollbar: ScrollAreaScrollbarElement | null): void;\n scrollbarYEnabled: boolean;\n onScrollbarYEnabledChange(rendered: boolean): void;\n onCornerWidthChange(width: number): void;\n onCornerHeightChange(height: number): void;\n};\n\nexport const [ScrollAreaProvider, useScrollAreaContext] =\n createScrollAreaContext<ScrollAreaContextValue>(SCROLL_AREA_NAME);\n\ntype ScrollAreaElement = React.ElementRef<typeof Primitive.div>;\nexport type PrimitiveDivProps = React.ComponentPropsWithoutRef<\n typeof Primitive.div\n>;\ninterface ScrollAreaProps extends PrimitiveDivProps {\n type?: ScrollAreaContextValue[\"type\"];\n dir?: ScrollAreaContextValue[\"dir\"];\n scrollHideDelay?: number;\n}\n\nconst ScrollArea = React.forwardRef<ScrollAreaElement, ScrollAreaProps>(\n (props: ScopedProps<ScrollAreaProps>, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = \"hover\",\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] =\n React.useState<ScrollAreaElement | null>(null);\n const [viewport, setViewport] =\n React.useState<ScrollAreaViewportElement | null>(null);\n const [content, setContent] = React.useState<HTMLDivElement | null>(null);\n const [scrollbarX, setScrollbarX] =\n React.useState<ScrollAreaScrollbarElement | null>(null);\n const [scrollbarY, setScrollbarY] =\n React.useState<ScrollAreaScrollbarElement | null>(null);\n const [cornerWidth, setCornerWidth] = React.useState(0);\n const [cornerHeight, setCornerHeight] = React.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) =>\n setScrollArea(node)\n );\n const direction = useDirection(dir);\n\n return (\n <ScrollAreaProvider\n scope={__scopeScrollArea}\n type={type}\n dir={direction}\n scrollHideDelay={scrollHideDelay}\n scrollArea={scrollArea}\n viewport={viewport}\n onViewportChange={setViewport}\n content={content}\n onContentChange={setContent}\n scrollbarX={scrollbarX}\n onScrollbarXChange={setScrollbarX}\n scrollbarXEnabled={scrollbarXEnabled}\n onScrollbarXEnabledChange={setScrollbarXEnabled}\n scrollbarY={scrollbarY}\n onScrollbarYChange={setScrollbarY}\n scrollbarYEnabled={scrollbarYEnabled}\n onScrollbarYEnabledChange={setScrollbarYEnabled}\n onCornerWidthChange={setCornerWidth}\n onCornerHeightChange={setCornerHeight}\n >\n <Primitive.div\n dir={direction}\n {...scrollAreaProps}\n ref={composedRefs}\n style={{\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--huin-core-scroll-area-corner-width\" as any]: cornerWidth + \"px\",\n [\"--huin-core-scroll-area-corner-height\" as any]: cornerHeight + \"px\",\n ...props.style,\n }}\n />\n </ScrollAreaProvider>\n );\n }\n);\n\nScrollArea.displayName = SCROLL_AREA_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = ScrollArea;\n\nexport { ScrollArea, Root };\nexport type { ScrollAreaProps };\n", "import React from \"react\";\nimport { useCallbackRef } from \"@huin-core/react-use-callback-ref\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport {\n Direction,\n PrimitiveDivProps,\n ScopedProps,\n ScrollbarProvider,\n Sizes,\n useScrollAreaContext,\n} from \"./ScrollArea\";\nimport { Presence } from \"@huin-core/react-presence\";\nimport { useStateMachine } from \"./useStateMachine\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport { useResizeObserver } from \"./ScrollAreaCorner\";\nimport { ScrollAreaThumbElement } from \"./ScrollAreaThumb\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { clamp } from \"@huin-core/number\";\n\nexport const SCROLLBAR_NAME = 'ScrollAreaScrollbar';\n\nexport type ScrollAreaScrollbarElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbar = React.forwardRef<ScrollAreaScrollbarElement, ScrollAreaScrollbarProps>(\n (props: ScopedProps<ScrollAreaScrollbarProps>, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === 'horizontal';\n\n React.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n\n return context.type === 'hover' ? (\n <ScrollAreaScrollbarHover {...scrollbarProps} ref={forwardedRef} forceMount={forceMount} />\n ) : context.type === 'scroll' ? (\n <ScrollAreaScrollbarScroll {...scrollbarProps} ref={forwardedRef} forceMount={forceMount} />\n ) : context.type === 'auto' ? (\n <ScrollAreaScrollbarAuto {...scrollbarProps} ref={forwardedRef} forceMount={forceMount} />\n ) : context.type === 'always' ? (\n <ScrollAreaScrollbarVisible {...scrollbarProps} ref={forwardedRef} />\n ) : null;\n }\n);\n\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarHoverElement = ScrollAreaScrollbarAutoElement;\ninterface ScrollAreaScrollbarHoverProps extends ScrollAreaScrollbarAutoProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbarHover = React.forwardRef<\n ScrollAreaScrollbarHoverElement,\n ScrollAreaScrollbarHoverProps\n>((props: ScopedProps<ScrollAreaScrollbarHoverProps>, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React.useState(false);\n\n React.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(\n () => setVisible(false),\n context.scrollHideDelay\n );\n };\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n\n return (\n <Presence present={forceMount || visible}>\n <ScrollAreaScrollbarAuto\n data-state={visible ? \"visible\" : \"hidden\"}\n {...scrollbarProps}\n ref={forwardedRef}\n />\n </Presence>\n );\n});\n\ntype ScrollAreaScrollbarScrollElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarScrollProps\n extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbarScroll = React.forwardRef<\n ScrollAreaScrollbarScrollElement,\n ScrollAreaScrollbarScrollProps\n>((props: ScopedProps<ScrollAreaScrollbarScrollProps>, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback(() => send(\"SCROLL_END\"), 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\",\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\",\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\",\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\",\n },\n });\n\n React.useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(\n () => send(\"HIDE\"),\n context.scrollHideDelay\n );\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n\n React.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n\n return (\n <Presence present={forceMount || state !== \"hidden\"}>\n <ScrollAreaScrollbarVisible\n data-state={state === \"hidden\" ? \"hidden\" : \"visible\"}\n {...scrollbarProps}\n ref={forwardedRef}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () =>\n send(\"POINTER_ENTER\")\n )}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () =>\n send(\"POINTER_LEAVE\")\n )}\n />\n </Presence>\n );\n});\n\ntype ScrollAreaScrollbarAutoElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarAutoProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbarAuto = React.forwardRef<\n ScrollAreaScrollbarAutoElement,\n ScrollAreaScrollbarAutoProps\n>((props: ScopedProps<ScrollAreaScrollbarAutoProps>, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX =\n context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY =\n context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n\n return (\n <Presence present={forceMount || visible}>\n <ScrollAreaScrollbarVisible\n data-state={visible ? \"visible\" : \"hidden\"}\n {...scrollbarProps}\n ref={forwardedRef}\n />\n </Presence>\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarVisibleElement = ScrollAreaScrollbarAxisElement;\ninterface ScrollAreaScrollbarVisibleProps\n extends Omit<\n ScrollAreaScrollbarAxisProps,\n keyof ScrollAreaScrollbarAxisPrivateProps\n > {\n orientation?: \"horizontal\" | \"vertical\";\n}\n\nconst ScrollAreaScrollbarVisible = React.forwardRef<\n ScrollAreaScrollbarVisibleElement,\n ScrollAreaScrollbarVisibleProps\n>((props: ScopedProps<ScrollAreaScrollbarVisibleProps>, forwardedRef) => {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React.useRef<ScrollAreaThumbElement | null>(null);\n const pointerOffsetRef = React.useRef(0);\n const [sizes, setSizes] = React.useState<Sizes>({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 },\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n\n type UncommonProps =\n | \"onThumbPositionChange\"\n | \"onDragScroll\"\n | \"onWheelScroll\";\n const commonProps: Omit<ScrollAreaScrollbarAxisPrivateProps, UncommonProps> =\n {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => (thumbRef.current = thumb),\n onThumbPointerUp: () => (pointerOffsetRef.current = 0),\n onThumbPointerDown: (pointerPos) =>\n (pointerOffsetRef.current = pointerPos),\n };\n\n function getScrollPosition(pointerPos: number, dir?: Direction) {\n return getScrollPositionFromPointer(\n pointerPos,\n pointerOffsetRef.current,\n sizes,\n dir\n );\n }\n\n if (orientation === \"horizontal\") {\n return (\n <ScrollAreaScrollbarX\n {...commonProps}\n ref={forwardedRef}\n onThumbPositionChange={() => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(\n scrollPos,\n sizes,\n context.dir\n );\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(\n pointerPos,\n context.dir\n );\n }\n }}\n />\n );\n }\n\n if (orientation === \"vertical\") {\n return (\n <ScrollAreaScrollbarY\n {...commonProps}\n ref={forwardedRef}\n onThumbPositionChange={() => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport)\n context.viewport.scrollTop = getScrollPosition(pointerPos);\n }}\n />\n );\n }\n\n return null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarAxisPrivateProps = {\n hasThumb: boolean;\n sizes: Sizes;\n onSizesChange(sizes: Sizes): void;\n onThumbChange(thumb: ScrollAreaThumbElement | null): void;\n onThumbPointerDown(pointerPos: number): void;\n onThumbPointerUp(): void;\n onThumbPositionChange(): void;\n onWheelScroll(scrollPos: number): void;\n onDragScroll(pointerPos: number): void;\n};\n\ntype ScrollAreaScrollbarAxisElement = ScrollAreaScrollbarImplElement;\ninterface ScrollAreaScrollbarAxisProps\n extends Omit<\n ScrollAreaScrollbarImplProps,\n keyof ScrollAreaScrollbarImplPrivateProps\n >,\n ScrollAreaScrollbarAxisPrivateProps {}\n\nconst ScrollAreaScrollbarX = React.forwardRef<\n ScrollAreaScrollbarAxisElement,\n ScrollAreaScrollbarAxisProps\n>((props: ScopedProps<ScrollAreaScrollbarAxisProps>, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] =\n React.useState<CSSStyleDeclaration>();\n const ref = React.useRef<ScrollAreaScrollbarAxisElement>(null);\n const composeRefs = useComposedRefs(\n forwardedRef,\n ref,\n context.onScrollbarXChange\n );\n\n React.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n\n return (\n <ScrollAreaScrollbarImpl\n data-orientation=\"horizontal\"\n {...scrollbarProps}\n ref={composeRefs}\n sizes={sizes}\n style={{\n bottom: 0,\n left:\n context.dir === \"rtl\" ? \"var(--huin-core-scroll-area-corner-width)\" : 0,\n right:\n context.dir === \"ltr\" ? \"var(--huin-core-scroll-area-corner-width)\" : 0,\n [\"--huin-core-scroll-area-thumb-width\" as any]: getThumbSize(sizes) + \"px\",\n ...props.style,\n }}\n onThumbPointerDown={(pointerPos) =>\n props.onThumbPointerDown(pointerPos.x)\n }\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.x)}\n onWheelScroll={(event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n // prevent window scroll when wheeling on scrollbar\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight),\n },\n });\n }\n }}\n />\n );\n});\n\nconst ScrollAreaScrollbarY = React.forwardRef<\n ScrollAreaScrollbarAxisElement,\n ScrollAreaScrollbarAxisProps\n>((props: ScopedProps<ScrollAreaScrollbarAxisProps>, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] =\n React.useState<CSSStyleDeclaration>();\n const ref = React.useRef<ScrollAreaScrollbarAxisElement>(null);\n const composeRefs = useComposedRefs(\n forwardedRef,\n ref,\n context.onScrollbarYChange\n );\n\n React.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n\n return (\n <ScrollAreaScrollbarImpl\n data-orientation=\"vertical\"\n {...scrollbarProps}\n ref={composeRefs}\n sizes={sizes}\n style={{\n top: 0,\n right: context.dir === \"ltr\" ? 0 : undefined,\n left: context.dir === \"rtl\" ? 0 : undefined,\n bottom: \"var(--huin-core-scroll-area-corner-height)\",\n [\"--huin-core-scroll-area-thumb-height\" as any]: getThumbSize(sizes) + \"px\",\n ...props.style,\n }}\n onThumbPointerDown={(pointerPos) =>\n props.onThumbPointerDown(pointerPos.y)\n }\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.y)}\n onWheelScroll={(event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n // prevent window scroll when wheeling on scrollbar\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom),\n },\n });\n }\n }}\n />\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport type ScrollbarContext = {\n hasThumb: boolean;\n scrollbar: ScrollAreaScrollbarElement | null;\n onThumbChange(thumb: ScrollAreaThumbElement | null): void;\n onThumbPointerUp(): void;\n onThumbPointerDown(pointerPos: { x: number; y: number }): void;\n onThumbPositionChange(): void;\n};\n\ntype ScrollAreaScrollbarImplElement = React.ElementRef<typeof Primitive.div>;\ntype ScrollAreaScrollbarImplPrivateProps = {\n sizes: Sizes;\n hasThumb: boolean;\n onThumbChange: ScrollbarContext[\"onThumbChange\"];\n onThumbPointerUp: ScrollbarContext[\"onThumbPointerUp\"];\n onThumbPointerDown: ScrollbarContext[\"onThumbPointerDown\"];\n onThumbPositionChange: ScrollbarContext[\"onThumbPositionChange\"];\n onWheelScroll(event: WheelEvent, maxScrollPos: number): void;\n onDragScroll(pointerPos: { x: number; y: number }): void;\n onResize(): void;\n};\ninterface ScrollAreaScrollbarImplProps\n extends Omit<PrimitiveDivProps, keyof ScrollAreaScrollbarImplPrivateProps>,\n ScrollAreaScrollbarImplPrivateProps {}\n\nconst ScrollAreaScrollbarImpl = React.forwardRef<\n ScrollAreaScrollbarImplElement,\n ScrollAreaScrollbarImplProps\n>((props: ScopedProps<ScrollAreaScrollbarImplProps>, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] =\n React.useState<ScrollAreaScrollbarElement | null>(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) =>\n setScrollbar(node)\n );\n const rectRef = React.useRef<ClientRect | null>(null);\n const prevWebkitUserSelectRef = React.useRef<string>(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n\n function handleDragScroll(event: React.PointerEvent<HTMLElement>) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n\n /**\n * We bind wheel event imperatively so we can switch off passive\n * mode for document wheel event to allow it to be prevented\n */\n React.useEffect(() => {\n const handleWheel = (event: WheelEvent) => {\n const element = event.target as HTMLElement;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () =>\n document.removeEventListener(\"wheel\", handleWheel, {\n passive: false,\n } as any);\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n\n /**\n * Update thumb position on sizes change\n */\n React.useEffect(handleThumbPositionChange, [\n sizes,\n handleThumbPositionChange,\n ]);\n\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n\n return (\n <ScrollbarProvider\n scope={__scopeScrollArea}\n scrollbar={scrollbar}\n hasThumb={hasThumb}\n onThumbChange={useCallbackRef(onThumbChange)}\n onThumbPointerUp={useCallbackRef(onThumbPointerUp)}\n onThumbPositionChange={handleThumbPositionChange}\n onThumbPointerDown={useCallbackRef(onThumbPointerDown)}\n >\n <Primitive.div\n {...scrollbarProps}\n ref={composeRefs}\n style={{ position: \"absolute\", ...scrollbarProps.style }}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target as HTMLElement;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar!.getBoundingClientRect();\n // pointer capture doesn't prevent text selection in Safari\n // so we remove text selection manually when scrolling\n prevWebkitUserSelectRef.current =\n document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport)\n context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n })}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n handleDragScroll\n )}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target as HTMLElement;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect =\n prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })}\n />\n </ScrollbarProvider>\n );\n});\n\nexport function useDebounceCallback(callback: () => void, delay: number) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React.useRef(0);\n React.useEffect(\n () => () => window.clearTimeout(debounceTimerRef.current),\n []\n );\n return React.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\n\nfunction toInt(value?: string) {\n return value ? parseInt(value, 10) : 0;\n}\n\nexport function getThumbRatio(viewportSize: number, contentSize: number) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\n\nfunction getThumbSize(sizes: Sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding =\n sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n // minimum of 18 matches macOS minimum\n return Math.max(thumbSize, 18);\n}\n\nfunction getScrollPositionFromPointer(\n pointerPos: number,\n pointerOffset: number,\n sizes: Sizes,\n dir: Direction = \"ltr\"\n) {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos =\n sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange =\n dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale(\n [minPointerPos, maxPointerPos],\n scrollRange as [number, number]\n );\n return interpolate(pointerPos);\n}\n\nfunction getThumbOffsetFromScroll(\n scrollPos: number,\n sizes: Sizes,\n dir: Direction = \"ltr\"\n) {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding =\n sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange =\n dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(\n scrollPos,\n scrollClampRange as [number, number]\n );\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(\n input: readonly [number, number],\n output: readonly [number, number]\n) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction isScrollingWithinScrollbarBounds(\n scrollPos: number,\n maxScrollPos: number\n) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport { ScrollAreaScrollbar };\nexport type { ScrollAreaScrollbarProps };\n", "import * as React from 'react';\n\ntype Machine<S> = { [k: string]: { [k: string]: S } };\ntype MachineState<T> = keyof T;\ntype MachineEvent<T> = keyof UnionToIntersection<T[keyof T]>;\n\n// \uD83E\uDD2F https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n ? R\n : never;\n\nexport function useStateMachine<M>(\n initialState: MachineState<M>,\n machine: M & Machine<MachineState<M>>\n) {\n return React.useReducer((state: MachineState<M>, event: MachineEvent<M>): MachineState<M> => {\n const nextState = (machine[state] as any)[event];\n return nextState ?? state;\n }, initialState);\n}\n", "import React from \"react\";\nimport {\n PrimitiveDivProps,\n ScopedProps,\n useScrollAreaContext,\n} from \"./ScrollArea\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { useCallbackRef } from \"@huin-core/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@huin-core/react-use-layout-effect\";\n\nconst CORNER_NAME = \"ScrollAreaCorner\";\n\ntype ScrollAreaCornerElement = ScrollAreaCornerImplElement;\ninterface ScrollAreaCornerProps extends ScrollAreaCornerImplProps {}\n\nconst ScrollAreaCorner = React.forwardRef<\n ScrollAreaCornerElement,\n ScrollAreaCornerProps\n>((props: ScopedProps<ScrollAreaCornerProps>, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(\n context.scrollbarX && context.scrollbarY\n );\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? (\n <ScrollAreaCornerImpl {...props} ref={forwardedRef} />\n ) : null;\n});\n\nScrollAreaCorner.displayName = CORNER_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaCornerImplElement = React.ElementRef<typeof Primitive.div>;\ninterface ScrollAreaCornerImplProps extends PrimitiveDivProps {}\n\nconst ScrollAreaCornerImpl = React.forwardRef<\n ScrollAreaCornerImplElement,\n ScrollAreaCornerImplProps\n>((props: ScopedProps<ScrollAreaCornerImplProps>, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const hasSize = Boolean(width && height);\n\n useResizeObserver(context.scrollbarX, () => {\n const height = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height);\n setHeight(height);\n });\n\n useResizeObserver(context.scrollbarY, () => {\n const width = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width);\n setWidth(width);\n });\n\n return hasSize ? (\n <Primitive.div\n {...cornerProps}\n ref={forwardedRef}\n style={{\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : undefined,\n left: context.dir === \"rtl\" ? 0 : undefined,\n bottom: 0,\n ...props.style,\n }}\n />\n ) : null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport function useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n /**\n * Resize Observer will throw an often benign error that says `ResizeObserver loop\n * completed with undelivered notifications`. This means that ResizeObserver was not\n * able to deliver all observations within a single animation frame, so we use\n * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n * Further reading: https://github.com/WICG/resize-observer/issues/38\n */\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\n/* -----------------------------------------------------------------------------------------------*/\n\nexport { ScrollAreaCorner };\nexport type { ScrollAreaCornerProps };\n", "import React from \"react\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { PrimitiveDivProps, ScopedProps, useScrollAreaContext } from \"./ScrollArea\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\n\nconst VIEWPORT_NAME = \"ScrollAreaViewport\";\n\nexport type ScrollAreaViewportElement = React.ElementRef<typeof Primitive.div>;\ninterface ScrollAreaViewportProps extends PrimitiveDivProps {\n nonce?: string;\n}\n\nconst ScrollAreaViewport = React.forwardRef<\n ScrollAreaViewportElement,\n ScrollAreaViewportProps\n>((props: ScopedProps<ScrollAreaViewportProps>, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React.useRef<ScrollAreaViewportElement>(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n ref,\n context.onViewportChange\n );\n return (\n <>\n {/* Hide scrollbars cross-browser and enable momentum scroll for touch devices */}\n <style\n dangerouslySetInnerHTML={{\n __html: `[data-huin-core-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-huin-core-scroll-area-viewport]::-webkit-scrollbar{display:none}`,\n }}\n nonce={nonce}\n />\n <Primitive.div\n data-huin-core-scroll-area-viewport=\"\"\n {...viewportProps}\n ref={composedRefs}\n style={{\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style,\n }}\n >\n {/**\n * `display: table` ensures our content div will match the size of its children in both\n * horizontal and vertical axis so we can determine if scroll width/height changed and\n * recalculate thumb sizes. This doesn't account for children with *percentage*\n * widths that change. We'll wait to see what use-cases consumers come up with there\n * before trying to resolve it.\n */}\n <Primitive.div\n ref={context.onContentChange}\n style={{ minWidth: \"100%\", display: \"table\" }}\n >\n {children}\n </Primitive.div>\n </Primitive.div>\n </>\n );\n});\n\nScrollAreaViewport.displayName = VIEWPORT_NAME;\n\nexport { ScrollAreaViewport };\nexport type { ScrollAreaViewportProps };\n", "import React from \"react\";\nimport {\n PrimitiveDivProps,\n ScopedProps,\n useScrollAreaContext,\n useScrollbarContext,\n} from \"./ScrollArea\";\nimport { Presence } from \"@huin-core/react-presence\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport {\n useDebounceCallback,\n} from \"./ScrollAreaScrollbar\";\n\nconst THUMB_NAME = \"ScrollAreaThumb\";\n\nexport type ScrollAreaThumbElement = ScrollAreaThumbImplElement;\ninterface ScrollAreaThumbProps extends ScrollAreaThumbImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst ScrollAreaThumb = React.forwardRef<\n ScrollAreaThumbElement,\n ScrollAreaThumbProps\n>((props: ScopedProps<ScrollAreaThumbProps>, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(\n THUMB_NAME,\n props.__scopeScrollArea\n );\n return (\n <Presence present={forceMount || scrollbarContext.hasThumb}>\n <ScrollAreaThumbImpl ref={forwardedRef} {...thumbProps} />\n </Presence>\n );\n});\n\ntype ScrollAreaThumbImplElement = React.ElementRef<typeof Primitive.div>;\ninterface ScrollAreaThumbImplProps extends PrimitiveDivProps {}\n\nconst ScrollAreaThumbImpl = React.forwardRef<\n ScrollAreaThumbImplElement,\n ScrollAreaThumbImplProps\n>((props: ScopedProps<ScrollAreaThumbImplProps>, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(forwardedRef, (node) =>\n scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React.useRef<() => void>();\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = undefined;\n }\n }, 100);\n\n React.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n /**\n * We only bind to native scroll event so we know when scroll starts and ends.\n * When scroll starts we start a requestAnimationFrame loop that checks for\n * changes to scroll position. That rAF loop triggers our thumb position change\n * when relevant to avoid scroll-linked effects. We cancel the loop when scroll ends.\n * https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\n */\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(\n viewport,\n onThumbPositionChange\n );\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n\n return (\n <Primitive.div\n data-state={scrollbarContext.hasThumb ? \"visible\" : \"hidden\"}\n {...thumbProps}\n ref={composedRef}\n style={{\n width: \"var(--huin-core-scroll-area-thumb-width)\",\n height: \"var(--huin-core-scroll-area-thumb-height)\",\n ...style,\n }}\n onPointerDownCapture={composeEventHandlers(\n props.onPointerDownCapture,\n (event) => {\n const thumb = event.target as HTMLElement;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n }\n )}\n onPointerUp={composeEventHandlers(\n props.onPointerUp,\n scrollbarContext.onThumbPointerUp\n )}\n />\n );\n});\n\nScrollAreaThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\n// Custom scroll handler to avoid scroll-linked effects\n// https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\nconst addUnlinkedScrollListener = (node: HTMLElement, handler = () => {}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport { ScrollAreaThumb };\nexport type { ScrollAreaThumbProps };\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "import_react_primitive", "import_react_compose_refs", "import_react", "import_react_use_callback_ref", "import_react_primitive", "React", "height", "width", "
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "import_react_primitive", "import_react_compose_refs", "import_react", "import_react_use_callback_ref", "import_react_primitive", "React", "height", "width", "React", "import_react", "import_react_primitive", "import_react_compose_refs", "React", "import_react", "import_react_presence", "import_react_compose_refs", "import_react_primitive", "import_primitive", "React"]
|
|
7
7
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -30,7 +30,6 @@ import React2 from "react";
|
|
|
30
30
|
import { Primitive } from "@huin-core/react-primitive";
|
|
31
31
|
import { useCallbackRef } from "@huin-core/react-use-callback-ref";
|
|
32
32
|
import { useLayoutEffect } from "@huin-core/react-use-layout-effect";
|
|
33
|
-
import { jsx } from "react/jsx-runtime";
|
|
34
33
|
var CORNER_NAME = "ScrollAreaCorner";
|
|
35
34
|
var ScrollAreaCorner = React2.forwardRef((props, forwardedRef) => {
|
|
36
35
|
const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);
|
|
@@ -38,7 +37,7 @@ var ScrollAreaCorner = React2.forwardRef((props, forwardedRef) => {
|
|
|
38
37
|
context.scrollbarX && context.scrollbarY
|
|
39
38
|
);
|
|
40
39
|
const hasCorner = context.type !== "scroll" && hasBothScrollbarsVisible;
|
|
41
|
-
return hasCorner ? /* @__PURE__ */
|
|
40
|
+
return hasCorner ? /* @__PURE__ */ React2.createElement(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;
|
|
42
41
|
});
|
|
43
42
|
ScrollAreaCorner.displayName = CORNER_NAME;
|
|
44
43
|
var ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {
|
|
@@ -57,7 +56,7 @@ var ScrollAreaCornerImpl = React2.forwardRef((props, forwardedRef) => {
|
|
|
57
56
|
context.onCornerWidthChange(width2);
|
|
58
57
|
setWidth(width2);
|
|
59
58
|
});
|
|
60
|
-
return hasSize ? /* @__PURE__ */
|
|
59
|
+
return hasSize ? /* @__PURE__ */ React2.createElement(
|
|
61
60
|
Primitive.div,
|
|
62
61
|
{
|
|
63
62
|
...cornerProps,
|
|
@@ -95,7 +94,6 @@ function useResizeObserver(element, onResize) {
|
|
|
95
94
|
// packages/react/scroll-area/src/ScrollAreaScrollbar.tsx
|
|
96
95
|
import { useComposedRefs } from "@huin-core/react-compose-refs";
|
|
97
96
|
import { clamp } from "@huin-core/number";
|
|
98
|
-
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
99
97
|
var SCROLLBAR_NAME = "ScrollAreaScrollbar";
|
|
100
98
|
var ScrollAreaScrollbar = React3.forwardRef(
|
|
101
99
|
(props, forwardedRef) => {
|
|
@@ -109,7 +107,7 @@ var ScrollAreaScrollbar = React3.forwardRef(
|
|
|
109
107
|
isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);
|
|
110
108
|
};
|
|
111
109
|
}, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);
|
|
112
|
-
return context.type === "hover" ? /* @__PURE__ */
|
|
110
|
+
return context.type === "hover" ? /* @__PURE__ */ React3.createElement(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "scroll" ? /* @__PURE__ */ React3.createElement(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "auto" ? /* @__PURE__ */ React3.createElement(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "always" ? /* @__PURE__ */ React3.createElement(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;
|
|
113
111
|
}
|
|
114
112
|
);
|
|
115
113
|
ScrollAreaScrollbar.displayName = SCROLLBAR_NAME;
|
|
@@ -140,14 +138,14 @@ var ScrollAreaScrollbarHover = React3.forwardRef((props, forwardedRef) => {
|
|
|
140
138
|
};
|
|
141
139
|
}
|
|
142
140
|
}, [context.scrollArea, context.scrollHideDelay]);
|
|
143
|
-
return /* @__PURE__ */
|
|
141
|
+
return /* @__PURE__ */ React3.createElement(Presence, { present: forceMount || visible }, /* @__PURE__ */ React3.createElement(
|
|
144
142
|
ScrollAreaScrollbarAuto,
|
|
145
143
|
{
|
|
146
144
|
"data-state": visible ? "visible" : "hidden",
|
|
147
145
|
...scrollbarProps,
|
|
148
146
|
ref: forwardedRef
|
|
149
147
|
}
|
|
150
|
-
)
|
|
148
|
+
));
|
|
151
149
|
});
|
|
152
150
|
var ScrollAreaScrollbarScroll = React3.forwardRef((props, forwardedRef) => {
|
|
153
151
|
const { forceMount, ...scrollbarProps } = props;
|
|
@@ -199,7 +197,7 @@ var ScrollAreaScrollbarScroll = React3.forwardRef((props, forwardedRef) => {
|
|
|
199
197
|
return () => viewport.removeEventListener("scroll", handleScroll);
|
|
200
198
|
}
|
|
201
199
|
}, [context.viewport, isHorizontal, send, debounceScrollEnd]);
|
|
202
|
-
return /* @__PURE__ */
|
|
200
|
+
return /* @__PURE__ */ React3.createElement(Presence, { present: forceMount || state !== "hidden" }, /* @__PURE__ */ React3.createElement(
|
|
203
201
|
ScrollAreaScrollbarVisible,
|
|
204
202
|
{
|
|
205
203
|
"data-state": state === "hidden" ? "hidden" : "visible",
|
|
@@ -214,7 +212,7 @@ var ScrollAreaScrollbarScroll = React3.forwardRef((props, forwardedRef) => {
|
|
|
214
212
|
() => send("POINTER_LEAVE")
|
|
215
213
|
)
|
|
216
214
|
}
|
|
217
|
-
)
|
|
215
|
+
));
|
|
218
216
|
});
|
|
219
217
|
var ScrollAreaScrollbarAuto = React3.forwardRef((props, forwardedRef) => {
|
|
220
218
|
const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);
|
|
@@ -230,14 +228,14 @@ var ScrollAreaScrollbarAuto = React3.forwardRef((props, forwardedRef) => {
|
|
|
230
228
|
}, 10);
|
|
231
229
|
useResizeObserver(context.viewport, handleResize);
|
|
232
230
|
useResizeObserver(context.content, handleResize);
|
|
233
|
-
return /* @__PURE__ */
|
|
231
|
+
return /* @__PURE__ */ React3.createElement(Presence, { present: forceMount || visible }, /* @__PURE__ */ React3.createElement(
|
|
234
232
|
ScrollAreaScrollbarVisible,
|
|
235
233
|
{
|
|
236
234
|
"data-state": visible ? "visible" : "hidden",
|
|
237
235
|
...scrollbarProps,
|
|
238
236
|
ref: forwardedRef
|
|
239
237
|
}
|
|
240
|
-
)
|
|
238
|
+
));
|
|
241
239
|
});
|
|
242
240
|
var ScrollAreaScrollbarVisible = React3.forwardRef((props, forwardedRef) => {
|
|
243
241
|
const { orientation = "vertical", ...scrollbarProps } = props;
|
|
@@ -268,7 +266,7 @@ var ScrollAreaScrollbarVisible = React3.forwardRef((props, forwardedRef) => {
|
|
|
268
266
|
);
|
|
269
267
|
}
|
|
270
268
|
if (orientation === "horizontal") {
|
|
271
|
-
return /* @__PURE__ */
|
|
269
|
+
return /* @__PURE__ */ React3.createElement(
|
|
272
270
|
ScrollAreaScrollbarX,
|
|
273
271
|
{
|
|
274
272
|
...commonProps,
|
|
@@ -299,7 +297,7 @@ var ScrollAreaScrollbarVisible = React3.forwardRef((props, forwardedRef) => {
|
|
|
299
297
|
);
|
|
300
298
|
}
|
|
301
299
|
if (orientation === "vertical") {
|
|
302
|
-
return /* @__PURE__ */
|
|
300
|
+
return /* @__PURE__ */ React3.createElement(
|
|
303
301
|
ScrollAreaScrollbarY,
|
|
304
302
|
{
|
|
305
303
|
...commonProps,
|
|
@@ -336,7 +334,7 @@ var ScrollAreaScrollbarX = React3.forwardRef((props, forwardedRef) => {
|
|
|
336
334
|
React3.useEffect(() => {
|
|
337
335
|
if (ref.current) setComputedStyle(getComputedStyle(ref.current));
|
|
338
336
|
}, [ref]);
|
|
339
|
-
return /* @__PURE__ */
|
|
337
|
+
return /* @__PURE__ */ React3.createElement(
|
|
340
338
|
ScrollAreaScrollbarImpl,
|
|
341
339
|
{
|
|
342
340
|
"data-orientation": "horizontal",
|
|
@@ -390,7 +388,7 @@ var ScrollAreaScrollbarY = React3.forwardRef((props, forwardedRef) => {
|
|
|
390
388
|
React3.useEffect(() => {
|
|
391
389
|
if (ref.current) setComputedStyle(getComputedStyle(ref.current));
|
|
392
390
|
}, [ref]);
|
|
393
|
-
return /* @__PURE__ */
|
|
391
|
+
return /* @__PURE__ */ React3.createElement(
|
|
394
392
|
ScrollAreaScrollbarImpl,
|
|
395
393
|
{
|
|
396
394
|
"data-orientation": "vertical",
|
|
@@ -483,7 +481,7 @@ var ScrollAreaScrollbarImpl = React3.forwardRef((props, forwardedRef) => {
|
|
|
483
481
|
]);
|
|
484
482
|
useResizeObserver(scrollbar, handleResize);
|
|
485
483
|
useResizeObserver(context.content, handleResize);
|
|
486
|
-
return /* @__PURE__ */
|
|
484
|
+
return /* @__PURE__ */ React3.createElement(
|
|
487
485
|
ScrollbarProvider,
|
|
488
486
|
{
|
|
489
487
|
scope: __scopeScrollArea,
|
|
@@ -492,42 +490,42 @@ var ScrollAreaScrollbarImpl = React3.forwardRef((props, forwardedRef) => {
|
|
|
492
490
|
onThumbChange: useCallbackRef2(onThumbChange),
|
|
493
491
|
onThumbPointerUp: useCallbackRef2(onThumbPointerUp),
|
|
494
492
|
onThumbPositionChange: handleThumbPositionChange,
|
|
495
|
-
onThumbPointerDown: useCallbackRef2(onThumbPointerDown)
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
element.setPointerCapture(event.pointerId);
|
|
507
|
-
rectRef.current = scrollbar.getBoundingClientRect();
|
|
508
|
-
prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;
|
|
509
|
-
document.body.style.webkitUserSelect = "none";
|
|
510
|
-
if (context.viewport)
|
|
511
|
-
context.viewport.style.scrollBehavior = "auto";
|
|
512
|
-
handleDragScroll(event);
|
|
513
|
-
}
|
|
514
|
-
}),
|
|
515
|
-
onPointerMove: composeEventHandlers(
|
|
516
|
-
props.onPointerMove,
|
|
517
|
-
handleDragScroll
|
|
518
|
-
),
|
|
519
|
-
onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {
|
|
493
|
+
onThumbPointerDown: useCallbackRef2(onThumbPointerDown)
|
|
494
|
+
},
|
|
495
|
+
/* @__PURE__ */ React3.createElement(
|
|
496
|
+
Primitive2.div,
|
|
497
|
+
{
|
|
498
|
+
...scrollbarProps,
|
|
499
|
+
ref: composeRefs,
|
|
500
|
+
style: { position: "absolute", ...scrollbarProps.style },
|
|
501
|
+
onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {
|
|
502
|
+
const mainPointer = 0;
|
|
503
|
+
if (event.button === mainPointer) {
|
|
520
504
|
const element = event.target;
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
document.body.style.webkitUserSelect =
|
|
525
|
-
if (context.viewport)
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
505
|
+
element.setPointerCapture(event.pointerId);
|
|
506
|
+
rectRef.current = scrollbar.getBoundingClientRect();
|
|
507
|
+
prevWebkitUserSelectRef.current = document.body.style.webkitUserSelect;
|
|
508
|
+
document.body.style.webkitUserSelect = "none";
|
|
509
|
+
if (context.viewport)
|
|
510
|
+
context.viewport.style.scrollBehavior = "auto";
|
|
511
|
+
handleDragScroll(event);
|
|
512
|
+
}
|
|
513
|
+
}),
|
|
514
|
+
onPointerMove: composeEventHandlers(
|
|
515
|
+
props.onPointerMove,
|
|
516
|
+
handleDragScroll
|
|
517
|
+
),
|
|
518
|
+
onPointerUp: composeEventHandlers(props.onPointerUp, (event) => {
|
|
519
|
+
const element = event.target;
|
|
520
|
+
if (element.hasPointerCapture(event.pointerId)) {
|
|
521
|
+
element.releasePointerCapture(event.pointerId);
|
|
522
|
+
}
|
|
523
|
+
document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;
|
|
524
|
+
if (context.viewport) context.viewport.style.scrollBehavior = "";
|
|
525
|
+
rectRef.current = null;
|
|
526
|
+
})
|
|
527
|
+
}
|
|
528
|
+
)
|
|
531
529
|
);
|
|
532
530
|
});
|
|
533
531
|
function useDebounceCallback(callback, delay) {
|
|
@@ -596,7 +594,6 @@ function isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos) {
|
|
|
596
594
|
}
|
|
597
595
|
|
|
598
596
|
// packages/react/scroll-area/src/ScrollArea.tsx
|
|
599
|
-
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
600
597
|
var SCROLL_AREA_NAME = "ScrollArea";
|
|
601
598
|
var [createScrollAreaContext, createScrollAreaScope] = createContextScope(SCROLL_AREA_NAME);
|
|
602
599
|
var [ScrollbarProvider, useScrollbarContext] = createScrollAreaContext(SCROLLBAR_NAME);
|
|
@@ -624,7 +621,7 @@ var ScrollArea = React4.forwardRef(
|
|
|
624
621
|
(node) => setScrollArea(node)
|
|
625
622
|
);
|
|
626
623
|
const direction = useDirection(dir);
|
|
627
|
-
return /* @__PURE__ */
|
|
624
|
+
return /* @__PURE__ */ React4.createElement(
|
|
628
625
|
ScrollAreaProvider,
|
|
629
626
|
{
|
|
630
627
|
scope: __scopeScrollArea,
|
|
@@ -645,23 +642,23 @@ var ScrollArea = React4.forwardRef(
|
|
|
645
642
|
scrollbarYEnabled,
|
|
646
643
|
onScrollbarYEnabledChange: setScrollbarYEnabled,
|
|
647
644
|
onCornerWidthChange: setCornerWidth,
|
|
648
|
-
onCornerHeightChange: setCornerHeight
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
645
|
+
onCornerHeightChange: setCornerHeight
|
|
646
|
+
},
|
|
647
|
+
/* @__PURE__ */ React4.createElement(
|
|
648
|
+
Primitive3.div,
|
|
649
|
+
{
|
|
650
|
+
dir: direction,
|
|
651
|
+
...scrollAreaProps,
|
|
652
|
+
ref: composedRefs,
|
|
653
|
+
style: {
|
|
654
|
+
position: "relative",
|
|
655
|
+
// Pass corner sizes as CSS vars to reduce re-renders of context consumers
|
|
656
|
+
["--huin-core-scroll-area-corner-width"]: cornerWidth + "px",
|
|
657
|
+
["--huin-core-scroll-area-corner-height"]: cornerHeight + "px",
|
|
658
|
+
...props.style
|
|
662
659
|
}
|
|
663
|
-
|
|
664
|
-
|
|
660
|
+
}
|
|
661
|
+
)
|
|
665
662
|
);
|
|
666
663
|
}
|
|
667
664
|
);
|
|
@@ -672,7 +669,6 @@ var Root = ScrollArea;
|
|
|
672
669
|
import React5 from "react";
|
|
673
670
|
import { Primitive as Primitive4 } from "@huin-core/react-primitive";
|
|
674
671
|
import { useComposedRefs as useComposedRefs3 } from "@huin-core/react-compose-refs";
|
|
675
|
-
import { Fragment, jsx as jsx4, jsxs } from "react/jsx-runtime";
|
|
676
672
|
var VIEWPORT_NAME = "ScrollAreaViewport";
|
|
677
673
|
var ScrollAreaViewport = React5.forwardRef((props, forwardedRef) => {
|
|
678
674
|
const { __scopeScrollArea, children, nonce, ...viewportProps } = props;
|
|
@@ -683,49 +679,46 @@ var ScrollAreaViewport = React5.forwardRef((props, forwardedRef) => {
|
|
|
683
679
|
ref,
|
|
684
680
|
context.onViewportChange
|
|
685
681
|
);
|
|
686
|
-
return /* @__PURE__ */
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
{
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
682
|
+
return /* @__PURE__ */ React5.createElement(React5.Fragment, null, /* @__PURE__ */ React5.createElement(
|
|
683
|
+
"style",
|
|
684
|
+
{
|
|
685
|
+
dangerouslySetInnerHTML: {
|
|
686
|
+
__html: `[data-huin-core-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-huin-core-scroll-area-viewport]::-webkit-scrollbar{display:none}`
|
|
687
|
+
},
|
|
688
|
+
nonce
|
|
689
|
+
}
|
|
690
|
+
), /* @__PURE__ */ React5.createElement(
|
|
691
|
+
Primitive4.div,
|
|
692
|
+
{
|
|
693
|
+
"data-huin-core-scroll-area-viewport": "",
|
|
694
|
+
...viewportProps,
|
|
695
|
+
ref: composedRefs,
|
|
696
|
+
style: {
|
|
697
|
+
/**
|
|
698
|
+
* We don't support `visible` because the intention is to have at least one scrollbar
|
|
699
|
+
* if this component is used and `visible` will behave like `auto` in that case
|
|
700
|
+
* https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description
|
|
701
|
+
*
|
|
702
|
+
* We don't handle `auto` because the intention is for the native implementation
|
|
703
|
+
* to be hidden if using this component. We just want to ensure the node is scrollable
|
|
704
|
+
* so could have used either `scroll` or `auto` here. We picked `scroll` to prevent
|
|
705
|
+
* the browser from having to work out whether to render native scrollbars or not,
|
|
706
|
+
* we tell it to with the intention of hiding them in CSS.
|
|
707
|
+
*/
|
|
708
|
+
overflowX: context.scrollbarXEnabled ? "scroll" : "hidden",
|
|
709
|
+
overflowY: context.scrollbarYEnabled ? "scroll" : "hidden",
|
|
710
|
+
...props.style
|
|
694
711
|
}
|
|
695
|
-
|
|
696
|
-
/* @__PURE__ */
|
|
712
|
+
},
|
|
713
|
+
/* @__PURE__ */ React5.createElement(
|
|
697
714
|
Primitive4.div,
|
|
698
715
|
{
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
/**
|
|
704
|
-
* We don't support `visible` because the intention is to have at least one scrollbar
|
|
705
|
-
* if this component is used and `visible` will behave like `auto` in that case
|
|
706
|
-
* https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description
|
|
707
|
-
*
|
|
708
|
-
* We don't handle `auto` because the intention is for the native implementation
|
|
709
|
-
* to be hidden if using this component. We just want to ensure the node is scrollable
|
|
710
|
-
* so could have used either `scroll` or `auto` here. We picked `scroll` to prevent
|
|
711
|
-
* the browser from having to work out whether to render native scrollbars or not,
|
|
712
|
-
* we tell it to with the intention of hiding them in CSS.
|
|
713
|
-
*/
|
|
714
|
-
overflowX: context.scrollbarXEnabled ? "scroll" : "hidden",
|
|
715
|
-
overflowY: context.scrollbarYEnabled ? "scroll" : "hidden",
|
|
716
|
-
...props.style
|
|
717
|
-
},
|
|
718
|
-
children: /* @__PURE__ */ jsx4(
|
|
719
|
-
Primitive4.div,
|
|
720
|
-
{
|
|
721
|
-
ref: context.onContentChange,
|
|
722
|
-
style: { minWidth: "100%", display: "table" },
|
|
723
|
-
children
|
|
724
|
-
}
|
|
725
|
-
)
|
|
726
|
-
}
|
|
716
|
+
ref: context.onContentChange,
|
|
717
|
+
style: { minWidth: "100%", display: "table" }
|
|
718
|
+
},
|
|
719
|
+
children
|
|
727
720
|
)
|
|
728
|
-
|
|
721
|
+
));
|
|
729
722
|
});
|
|
730
723
|
ScrollAreaViewport.displayName = VIEWPORT_NAME;
|
|
731
724
|
|
|
@@ -735,7 +728,6 @@ import { Presence as Presence2 } from "@huin-core/react-presence";
|
|
|
735
728
|
import { useComposedRefs as useComposedRefs4 } from "@huin-core/react-compose-refs";
|
|
736
729
|
import { Primitive as Primitive5 } from "@huin-core/react-primitive";
|
|
737
730
|
import { composeEventHandlers as composeEventHandlers2 } from "@huin-core/primitive";
|
|
738
|
-
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
739
731
|
var THUMB_NAME = "ScrollAreaThumb";
|
|
740
732
|
var ScrollAreaThumb = React6.forwardRef((props, forwardedRef) => {
|
|
741
733
|
const { forceMount, ...thumbProps } = props;
|
|
@@ -743,7 +735,7 @@ var ScrollAreaThumb = React6.forwardRef((props, forwardedRef) => {
|
|
|
743
735
|
THUMB_NAME,
|
|
744
736
|
props.__scopeScrollArea
|
|
745
737
|
);
|
|
746
|
-
return /* @__PURE__ */
|
|
738
|
+
return /* @__PURE__ */ React6.createElement(Presence2, { present: forceMount || scrollbarContext.hasThumb }, /* @__PURE__ */ React6.createElement(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }));
|
|
747
739
|
});
|
|
748
740
|
var ScrollAreaThumbImpl = React6.forwardRef((props, forwardedRef) => {
|
|
749
741
|
const { __scopeScrollArea, style, ...thumbProps } = props;
|
|
@@ -780,7 +772,7 @@ var ScrollAreaThumbImpl = React6.forwardRef((props, forwardedRef) => {
|
|
|
780
772
|
return () => viewport.removeEventListener("scroll", handleScroll);
|
|
781
773
|
}
|
|
782
774
|
}, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);
|
|
783
|
-
return /* @__PURE__ */
|
|
775
|
+
return /* @__PURE__ */ React6.createElement(
|
|
784
776
|
Primitive5.div,
|
|
785
777
|
{
|
|
786
778
|
"data-state": scrollbarContext.hasThumb ? "visible" : "hidden",
|
package/dist/index.mjs.map
CHANGED
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/ScrollArea.tsx", "../src/ScrollAreaScrollbar.tsx", "../src/useStateMachine.ts", "../src/ScrollAreaCorner.tsx", "../src/ScrollAreaViewport.tsx", "../src/ScrollAreaThumb.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from \"react\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { createContextScope } from \"@huin-core/react-context\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { useDirection } from \"@huin-core/react-direction\";\nimport type { Scope } from \"@huin-core/react-context\";\nimport { ScrollAreaViewportElement } from \"./ScrollAreaViewport\";\n\nimport {\n ScrollAreaScrollbarElement,\n SCROLLBAR_NAME,\n ScrollbarContext,\n} from \"./ScrollAreaScrollbar\";\n\nexport type Direction = \"ltr\" | \"rtl\";\nexport type Sizes = {\n content: number;\n viewport: number;\n scrollbar: {\n size: number;\n paddingStart: number;\n paddingEnd: number;\n };\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ScrollArea\n * -----------------------------------------------------------------------------------------------*/\n\nconst SCROLL_AREA_NAME = \"ScrollArea\";\n\nexport type ScopedProps<P> = P & { __scopeScrollArea?: Scope };\nexport const [createScrollAreaContext, createScrollAreaScope] =\n createContextScope(SCROLL_AREA_NAME);\n\nexport const [ScrollbarProvider, useScrollbarContext] =\n createScrollAreaContext<ScrollbarContext>(SCROLLBAR_NAME);\n\ntype ScrollAreaContextValue = {\n type: \"auto\" | \"always\" | \"scroll\" | \"hover\";\n dir: Direction;\n scrollHideDelay: number;\n scrollArea: ScrollAreaElement | null;\n viewport: ScrollAreaViewportElement | null;\n onViewportChange(viewport: ScrollAreaViewportElement | null): void;\n content: HTMLDivElement | null;\n onContentChange(content: HTMLDivElement): void;\n scrollbarX: ScrollAreaScrollbarElement | null;\n onScrollbarXChange(scrollbar: ScrollAreaScrollbarElement | null): void;\n scrollbarXEnabled: boolean;\n onScrollbarXEnabledChange(rendered: boolean): void;\n scrollbarY: ScrollAreaScrollbarElement | null;\n onScrollbarYChange(scrollbar: ScrollAreaScrollbarElement | null): void;\n scrollbarYEnabled: boolean;\n onScrollbarYEnabledChange(rendered: boolean): void;\n onCornerWidthChange(width: number): void;\n onCornerHeightChange(height: number): void;\n};\n\nexport const [ScrollAreaProvider, useScrollAreaContext] =\n createScrollAreaContext<ScrollAreaContextValue>(SCROLL_AREA_NAME);\n\ntype ScrollAreaElement = React.ElementRef<typeof Primitive.div>;\nexport type PrimitiveDivProps = React.ComponentPropsWithoutRef<\n typeof Primitive.div\n>;\ninterface ScrollAreaProps extends PrimitiveDivProps {\n type?: ScrollAreaContextValue[\"type\"];\n dir?: ScrollAreaContextValue[\"dir\"];\n scrollHideDelay?: number;\n}\n\nconst ScrollArea = React.forwardRef<ScrollAreaElement, ScrollAreaProps>(\n (props: ScopedProps<ScrollAreaProps>, forwardedRef) => {\n const {\n __scopeScrollArea,\n type = \"hover\",\n dir,\n scrollHideDelay = 600,\n ...scrollAreaProps\n } = props;\n const [scrollArea, setScrollArea] =\n React.useState<ScrollAreaElement | null>(null);\n const [viewport, setViewport] =\n React.useState<ScrollAreaViewportElement | null>(null);\n const [content, setContent] = React.useState<HTMLDivElement | null>(null);\n const [scrollbarX, setScrollbarX] =\n React.useState<ScrollAreaScrollbarElement | null>(null);\n const [scrollbarY, setScrollbarY] =\n React.useState<ScrollAreaScrollbarElement | null>(null);\n const [cornerWidth, setCornerWidth] = React.useState(0);\n const [cornerHeight, setCornerHeight] = React.useState(0);\n const [scrollbarXEnabled, setScrollbarXEnabled] = React.useState(false);\n const [scrollbarYEnabled, setScrollbarYEnabled] = React.useState(false);\n const composedRefs = useComposedRefs(forwardedRef, (node) =>\n setScrollArea(node)\n );\n const direction = useDirection(dir);\n\n return (\n <ScrollAreaProvider\n scope={__scopeScrollArea}\n type={type}\n dir={direction}\n scrollHideDelay={scrollHideDelay}\n scrollArea={scrollArea}\n viewport={viewport}\n onViewportChange={setViewport}\n content={content}\n onContentChange={setContent}\n scrollbarX={scrollbarX}\n onScrollbarXChange={setScrollbarX}\n scrollbarXEnabled={scrollbarXEnabled}\n onScrollbarXEnabledChange={setScrollbarXEnabled}\n scrollbarY={scrollbarY}\n onScrollbarYChange={setScrollbarY}\n scrollbarYEnabled={scrollbarYEnabled}\n onScrollbarYEnabledChange={setScrollbarYEnabled}\n onCornerWidthChange={setCornerWidth}\n onCornerHeightChange={setCornerHeight}\n >\n <Primitive.div\n dir={direction}\n {...scrollAreaProps}\n ref={composedRefs}\n style={{\n position: \"relative\",\n // Pass corner sizes as CSS vars to reduce re-renders of context consumers\n [\"--huin-core-scroll-area-corner-width\" as any]: cornerWidth + \"px\",\n [\"--huin-core-scroll-area-corner-height\" as any]: cornerHeight + \"px\",\n ...props.style,\n }}\n />\n </ScrollAreaProvider>\n );\n }\n);\n\nScrollArea.displayName = SCROLL_AREA_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = ScrollArea;\n\nexport { ScrollArea, Root };\nexport type { ScrollAreaProps };\n", "import React from \"react\";\nimport { useCallbackRef } from \"@huin-core/react-use-callback-ref\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport {\n Direction,\n PrimitiveDivProps,\n ScopedProps,\n ScrollbarProvider,\n Sizes,\n useScrollAreaContext,\n} from \"./ScrollArea\";\nimport { Presence } from \"@huin-core/react-presence\";\nimport { useStateMachine } from \"./useStateMachine\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport { useResizeObserver } from \"./ScrollAreaCorner\";\nimport { ScrollAreaThumbElement } from \"./ScrollAreaThumb\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { clamp } from \"@huin-core/number\";\n\nexport const SCROLLBAR_NAME = 'ScrollAreaScrollbar';\n\nexport type ScrollAreaScrollbarElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbar = React.forwardRef<ScrollAreaScrollbarElement, ScrollAreaScrollbarProps>(\n (props: ScopedProps<ScrollAreaScrollbarProps>, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { onScrollbarXEnabledChange, onScrollbarYEnabledChange } = context;\n const isHorizontal = props.orientation === 'horizontal';\n\n React.useEffect(() => {\n isHorizontal ? onScrollbarXEnabledChange(true) : onScrollbarYEnabledChange(true);\n return () => {\n isHorizontal ? onScrollbarXEnabledChange(false) : onScrollbarYEnabledChange(false);\n };\n }, [isHorizontal, onScrollbarXEnabledChange, onScrollbarYEnabledChange]);\n\n return context.type === 'hover' ? (\n <ScrollAreaScrollbarHover {...scrollbarProps} ref={forwardedRef} forceMount={forceMount} />\n ) : context.type === 'scroll' ? (\n <ScrollAreaScrollbarScroll {...scrollbarProps} ref={forwardedRef} forceMount={forceMount} />\n ) : context.type === 'auto' ? (\n <ScrollAreaScrollbarAuto {...scrollbarProps} ref={forwardedRef} forceMount={forceMount} />\n ) : context.type === 'always' ? (\n <ScrollAreaScrollbarVisible {...scrollbarProps} ref={forwardedRef} />\n ) : null;\n }\n);\n\nScrollAreaScrollbar.displayName = SCROLLBAR_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarHoverElement = ScrollAreaScrollbarAutoElement;\ninterface ScrollAreaScrollbarHoverProps extends ScrollAreaScrollbarAutoProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbarHover = React.forwardRef<\n ScrollAreaScrollbarHoverElement,\n ScrollAreaScrollbarHoverProps\n>((props: ScopedProps<ScrollAreaScrollbarHoverProps>, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [visible, setVisible] = React.useState(false);\n\n React.useEffect(() => {\n const scrollArea = context.scrollArea;\n let hideTimer = 0;\n if (scrollArea) {\n const handlePointerEnter = () => {\n window.clearTimeout(hideTimer);\n setVisible(true);\n };\n const handlePointerLeave = () => {\n hideTimer = window.setTimeout(\n () => setVisible(false),\n context.scrollHideDelay\n );\n };\n scrollArea.addEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.addEventListener(\"pointerleave\", handlePointerLeave);\n return () => {\n window.clearTimeout(hideTimer);\n scrollArea.removeEventListener(\"pointerenter\", handlePointerEnter);\n scrollArea.removeEventListener(\"pointerleave\", handlePointerLeave);\n };\n }\n }, [context.scrollArea, context.scrollHideDelay]);\n\n return (\n <Presence present={forceMount || visible}>\n <ScrollAreaScrollbarAuto\n data-state={visible ? \"visible\" : \"hidden\"}\n {...scrollbarProps}\n ref={forwardedRef}\n />\n </Presence>\n );\n});\n\ntype ScrollAreaScrollbarScrollElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarScrollProps\n extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbarScroll = React.forwardRef<\n ScrollAreaScrollbarScrollElement,\n ScrollAreaScrollbarScrollProps\n>((props: ScopedProps<ScrollAreaScrollbarScrollProps>, forwardedRef) => {\n const { forceMount, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const isHorizontal = props.orientation === \"horizontal\";\n const debounceScrollEnd = useDebounceCallback(() => send(\"SCROLL_END\"), 100);\n const [state, send] = useStateMachine(\"hidden\", {\n hidden: {\n SCROLL: \"scrolling\",\n },\n scrolling: {\n SCROLL_END: \"idle\",\n POINTER_ENTER: \"interacting\",\n },\n interacting: {\n SCROLL: \"interacting\",\n POINTER_LEAVE: \"idle\",\n },\n idle: {\n HIDE: \"hidden\",\n SCROLL: \"scrolling\",\n POINTER_ENTER: \"interacting\",\n },\n });\n\n React.useEffect(() => {\n if (state === \"idle\") {\n const hideTimer = window.setTimeout(\n () => send(\"HIDE\"),\n context.scrollHideDelay\n );\n return () => window.clearTimeout(hideTimer);\n }\n }, [state, context.scrollHideDelay, send]);\n\n React.useEffect(() => {\n const viewport = context.viewport;\n const scrollDirection = isHorizontal ? \"scrollLeft\" : \"scrollTop\";\n\n if (viewport) {\n let prevScrollPos = viewport[scrollDirection];\n const handleScroll = () => {\n const scrollPos = viewport[scrollDirection];\n const hasScrollInDirectionChanged = prevScrollPos !== scrollPos;\n if (hasScrollInDirectionChanged) {\n send(\"SCROLL\");\n debounceScrollEnd();\n }\n prevScrollPos = scrollPos;\n };\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [context.viewport, isHorizontal, send, debounceScrollEnd]);\n\n return (\n <Presence present={forceMount || state !== \"hidden\"}>\n <ScrollAreaScrollbarVisible\n data-state={state === \"hidden\" ? \"hidden\" : \"visible\"}\n {...scrollbarProps}\n ref={forwardedRef}\n onPointerEnter={composeEventHandlers(props.onPointerEnter, () =>\n send(\"POINTER_ENTER\")\n )}\n onPointerLeave={composeEventHandlers(props.onPointerLeave, () =>\n send(\"POINTER_LEAVE\")\n )}\n />\n </Presence>\n );\n});\n\ntype ScrollAreaScrollbarAutoElement = ScrollAreaScrollbarVisibleElement;\ninterface ScrollAreaScrollbarAutoProps extends ScrollAreaScrollbarVisibleProps {\n forceMount?: true;\n}\n\nconst ScrollAreaScrollbarAuto = React.forwardRef<\n ScrollAreaScrollbarAutoElement,\n ScrollAreaScrollbarAutoProps\n>((props: ScopedProps<ScrollAreaScrollbarAutoProps>, forwardedRef) => {\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const { forceMount, ...scrollbarProps } = props;\n const [visible, setVisible] = React.useState(false);\n const isHorizontal = props.orientation === \"horizontal\";\n const handleResize = useDebounceCallback(() => {\n if (context.viewport) {\n const isOverflowX =\n context.viewport.offsetWidth < context.viewport.scrollWidth;\n const isOverflowY =\n context.viewport.offsetHeight < context.viewport.scrollHeight;\n setVisible(isHorizontal ? isOverflowX : isOverflowY);\n }\n }, 10);\n\n useResizeObserver(context.viewport, handleResize);\n useResizeObserver(context.content, handleResize);\n\n return (\n <Presence present={forceMount || visible}>\n <ScrollAreaScrollbarVisible\n data-state={visible ? \"visible\" : \"hidden\"}\n {...scrollbarProps}\n ref={forwardedRef}\n />\n </Presence>\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarVisibleElement = ScrollAreaScrollbarAxisElement;\ninterface ScrollAreaScrollbarVisibleProps\n extends Omit<\n ScrollAreaScrollbarAxisProps,\n keyof ScrollAreaScrollbarAxisPrivateProps\n > {\n orientation?: \"horizontal\" | \"vertical\";\n}\n\nconst ScrollAreaScrollbarVisible = React.forwardRef<\n ScrollAreaScrollbarVisibleElement,\n ScrollAreaScrollbarVisibleProps\n>((props: ScopedProps<ScrollAreaScrollbarVisibleProps>, forwardedRef) => {\n const { orientation = \"vertical\", ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const thumbRef = React.useRef<ScrollAreaThumbElement | null>(null);\n const pointerOffsetRef = React.useRef(0);\n const [sizes, setSizes] = React.useState<Sizes>({\n content: 0,\n viewport: 0,\n scrollbar: { size: 0, paddingStart: 0, paddingEnd: 0 },\n });\n const thumbRatio = getThumbRatio(sizes.viewport, sizes.content);\n\n type UncommonProps =\n | \"onThumbPositionChange\"\n | \"onDragScroll\"\n | \"onWheelScroll\";\n const commonProps: Omit<ScrollAreaScrollbarAxisPrivateProps, UncommonProps> =\n {\n ...scrollbarProps,\n sizes,\n onSizesChange: setSizes,\n hasThumb: Boolean(thumbRatio > 0 && thumbRatio < 1),\n onThumbChange: (thumb) => (thumbRef.current = thumb),\n onThumbPointerUp: () => (pointerOffsetRef.current = 0),\n onThumbPointerDown: (pointerPos) =>\n (pointerOffsetRef.current = pointerPos),\n };\n\n function getScrollPosition(pointerPos: number, dir?: Direction) {\n return getScrollPositionFromPointer(\n pointerPos,\n pointerOffsetRef.current,\n sizes,\n dir\n );\n }\n\n if (orientation === \"horizontal\") {\n return (\n <ScrollAreaScrollbarX\n {...commonProps}\n ref={forwardedRef}\n onThumbPositionChange={() => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollLeft;\n const offset = getThumbOffsetFromScroll(\n scrollPos,\n sizes,\n context.dir\n );\n thumbRef.current.style.transform = `translate3d(${offset}px, 0, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) context.viewport.scrollLeft = scrollPos;\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport) {\n context.viewport.scrollLeft = getScrollPosition(\n pointerPos,\n context.dir\n );\n }\n }}\n />\n );\n }\n\n if (orientation === \"vertical\") {\n return (\n <ScrollAreaScrollbarY\n {...commonProps}\n ref={forwardedRef}\n onThumbPositionChange={() => {\n if (context.viewport && thumbRef.current) {\n const scrollPos = context.viewport.scrollTop;\n const offset = getThumbOffsetFromScroll(scrollPos, sizes);\n thumbRef.current.style.transform = `translate3d(0, ${offset}px, 0)`;\n }\n }}\n onWheelScroll={(scrollPos) => {\n if (context.viewport) context.viewport.scrollTop = scrollPos;\n }}\n onDragScroll={(pointerPos) => {\n if (context.viewport)\n context.viewport.scrollTop = getScrollPosition(pointerPos);\n }}\n />\n );\n }\n\n return null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaScrollbarAxisPrivateProps = {\n hasThumb: boolean;\n sizes: Sizes;\n onSizesChange(sizes: Sizes): void;\n onThumbChange(thumb: ScrollAreaThumbElement | null): void;\n onThumbPointerDown(pointerPos: number): void;\n onThumbPointerUp(): void;\n onThumbPositionChange(): void;\n onWheelScroll(scrollPos: number): void;\n onDragScroll(pointerPos: number): void;\n};\n\ntype ScrollAreaScrollbarAxisElement = ScrollAreaScrollbarImplElement;\ninterface ScrollAreaScrollbarAxisProps\n extends Omit<\n ScrollAreaScrollbarImplProps,\n keyof ScrollAreaScrollbarImplPrivateProps\n >,\n ScrollAreaScrollbarAxisPrivateProps {}\n\nconst ScrollAreaScrollbarX = React.forwardRef<\n ScrollAreaScrollbarAxisElement,\n ScrollAreaScrollbarAxisProps\n>((props: ScopedProps<ScrollAreaScrollbarAxisProps>, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] =\n React.useState<CSSStyleDeclaration>();\n const ref = React.useRef<ScrollAreaScrollbarAxisElement>(null);\n const composeRefs = useComposedRefs(\n forwardedRef,\n ref,\n context.onScrollbarXChange\n );\n\n React.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n\n return (\n <ScrollAreaScrollbarImpl\n data-orientation=\"horizontal\"\n {...scrollbarProps}\n ref={composeRefs}\n sizes={sizes}\n style={{\n bottom: 0,\n left:\n context.dir === \"rtl\" ? \"var(--huin-core-scroll-area-corner-width)\" : 0,\n right:\n context.dir === \"ltr\" ? \"var(--huin-core-scroll-area-corner-width)\" : 0,\n [\"--huin-core-scroll-area-thumb-width\" as any]: getThumbSize(sizes) + \"px\",\n ...props.style,\n }}\n onThumbPointerDown={(pointerPos) =>\n props.onThumbPointerDown(pointerPos.x)\n }\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.x)}\n onWheelScroll={(event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollLeft + event.deltaX;\n props.onWheelScroll(scrollPos);\n // prevent window scroll when wheeling on scrollbar\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollWidth,\n viewport: context.viewport.offsetWidth,\n scrollbar: {\n size: ref.current.clientWidth,\n paddingStart: toInt(computedStyle.paddingLeft),\n paddingEnd: toInt(computedStyle.paddingRight),\n },\n });\n }\n }}\n />\n );\n});\n\nconst ScrollAreaScrollbarY = React.forwardRef<\n ScrollAreaScrollbarAxisElement,\n ScrollAreaScrollbarAxisProps\n>((props: ScopedProps<ScrollAreaScrollbarAxisProps>, forwardedRef) => {\n const { sizes, onSizesChange, ...scrollbarProps } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, props.__scopeScrollArea);\n const [computedStyle, setComputedStyle] =\n React.useState<CSSStyleDeclaration>();\n const ref = React.useRef<ScrollAreaScrollbarAxisElement>(null);\n const composeRefs = useComposedRefs(\n forwardedRef,\n ref,\n context.onScrollbarYChange\n );\n\n React.useEffect(() => {\n if (ref.current) setComputedStyle(getComputedStyle(ref.current));\n }, [ref]);\n\n return (\n <ScrollAreaScrollbarImpl\n data-orientation=\"vertical\"\n {...scrollbarProps}\n ref={composeRefs}\n sizes={sizes}\n style={{\n top: 0,\n right: context.dir === \"ltr\" ? 0 : undefined,\n left: context.dir === \"rtl\" ? 0 : undefined,\n bottom: \"var(--huin-core-scroll-area-corner-height)\",\n [\"--huin-core-scroll-area-thumb-height\" as any]: getThumbSize(sizes) + \"px\",\n ...props.style,\n }}\n onThumbPointerDown={(pointerPos) =>\n props.onThumbPointerDown(pointerPos.y)\n }\n onDragScroll={(pointerPos) => props.onDragScroll(pointerPos.y)}\n onWheelScroll={(event, maxScrollPos) => {\n if (context.viewport) {\n const scrollPos = context.viewport.scrollTop + event.deltaY;\n props.onWheelScroll(scrollPos);\n // prevent window scroll when wheeling on scrollbar\n if (isScrollingWithinScrollbarBounds(scrollPos, maxScrollPos)) {\n event.preventDefault();\n }\n }\n }}\n onResize={() => {\n if (ref.current && context.viewport && computedStyle) {\n onSizesChange({\n content: context.viewport.scrollHeight,\n viewport: context.viewport.offsetHeight,\n scrollbar: {\n size: ref.current.clientHeight,\n paddingStart: toInt(computedStyle.paddingTop),\n paddingEnd: toInt(computedStyle.paddingBottom),\n },\n });\n }\n }}\n />\n );\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport type ScrollbarContext = {\n hasThumb: boolean;\n scrollbar: ScrollAreaScrollbarElement | null;\n onThumbChange(thumb: ScrollAreaThumbElement | null): void;\n onThumbPointerUp(): void;\n onThumbPointerDown(pointerPos: { x: number; y: number }): void;\n onThumbPositionChange(): void;\n};\n\ntype ScrollAreaScrollbarImplElement = React.ElementRef<typeof Primitive.div>;\ntype ScrollAreaScrollbarImplPrivateProps = {\n sizes: Sizes;\n hasThumb: boolean;\n onThumbChange: ScrollbarContext[\"onThumbChange\"];\n onThumbPointerUp: ScrollbarContext[\"onThumbPointerUp\"];\n onThumbPointerDown: ScrollbarContext[\"onThumbPointerDown\"];\n onThumbPositionChange: ScrollbarContext[\"onThumbPositionChange\"];\n onWheelScroll(event: WheelEvent, maxScrollPos: number): void;\n onDragScroll(pointerPos: { x: number; y: number }): void;\n onResize(): void;\n};\ninterface ScrollAreaScrollbarImplProps\n extends Omit<PrimitiveDivProps, keyof ScrollAreaScrollbarImplPrivateProps>,\n ScrollAreaScrollbarImplPrivateProps {}\n\nconst ScrollAreaScrollbarImpl = React.forwardRef<\n ScrollAreaScrollbarImplElement,\n ScrollAreaScrollbarImplProps\n>((props: ScopedProps<ScrollAreaScrollbarImplProps>, forwardedRef) => {\n const {\n __scopeScrollArea,\n sizes,\n hasThumb,\n onThumbChange,\n onThumbPointerUp,\n onThumbPointerDown,\n onThumbPositionChange,\n onDragScroll,\n onWheelScroll,\n onResize,\n ...scrollbarProps\n } = props;\n const context = useScrollAreaContext(SCROLLBAR_NAME, __scopeScrollArea);\n const [scrollbar, setScrollbar] =\n React.useState<ScrollAreaScrollbarElement | null>(null);\n const composeRefs = useComposedRefs(forwardedRef, (node) =>\n setScrollbar(node)\n );\n const rectRef = React.useRef<ClientRect | null>(null);\n const prevWebkitUserSelectRef = React.useRef<string>(\"\");\n const viewport = context.viewport;\n const maxScrollPos = sizes.content - sizes.viewport;\n const handleWheelScroll = useCallbackRef(onWheelScroll);\n const handleThumbPositionChange = useCallbackRef(onThumbPositionChange);\n const handleResize = useDebounceCallback(onResize, 10);\n\n function handleDragScroll(event: React.PointerEvent<HTMLElement>) {\n if (rectRef.current) {\n const x = event.clientX - rectRef.current.left;\n const y = event.clientY - rectRef.current.top;\n onDragScroll({ x, y });\n }\n }\n\n /**\n * We bind wheel event imperatively so we can switch off passive\n * mode for document wheel event to allow it to be prevented\n */\n React.useEffect(() => {\n const handleWheel = (event: WheelEvent) => {\n const element = event.target as HTMLElement;\n const isScrollbarWheel = scrollbar?.contains(element);\n if (isScrollbarWheel) handleWheelScroll(event, maxScrollPos);\n };\n document.addEventListener(\"wheel\", handleWheel, { passive: false });\n return () =>\n document.removeEventListener(\"wheel\", handleWheel, {\n passive: false,\n } as any);\n }, [viewport, scrollbar, maxScrollPos, handleWheelScroll]);\n\n /**\n * Update thumb position on sizes change\n */\n React.useEffect(handleThumbPositionChange, [\n sizes,\n handleThumbPositionChange,\n ]);\n\n useResizeObserver(scrollbar, handleResize);\n useResizeObserver(context.content, handleResize);\n\n return (\n <ScrollbarProvider\n scope={__scopeScrollArea}\n scrollbar={scrollbar}\n hasThumb={hasThumb}\n onThumbChange={useCallbackRef(onThumbChange)}\n onThumbPointerUp={useCallbackRef(onThumbPointerUp)}\n onThumbPositionChange={handleThumbPositionChange}\n onThumbPointerDown={useCallbackRef(onThumbPointerDown)}\n >\n <Primitive.div\n {...scrollbarProps}\n ref={composeRefs}\n style={{ position: \"absolute\", ...scrollbarProps.style }}\n onPointerDown={composeEventHandlers(props.onPointerDown, (event) => {\n const mainPointer = 0;\n if (event.button === mainPointer) {\n const element = event.target as HTMLElement;\n element.setPointerCapture(event.pointerId);\n rectRef.current = scrollbar!.getBoundingClientRect();\n // pointer capture doesn't prevent text selection in Safari\n // so we remove text selection manually when scrolling\n prevWebkitUserSelectRef.current =\n document.body.style.webkitUserSelect;\n document.body.style.webkitUserSelect = \"none\";\n if (context.viewport)\n context.viewport.style.scrollBehavior = \"auto\";\n handleDragScroll(event);\n }\n })}\n onPointerMove={composeEventHandlers(\n props.onPointerMove,\n handleDragScroll\n )}\n onPointerUp={composeEventHandlers(props.onPointerUp, (event) => {\n const element = event.target as HTMLElement;\n if (element.hasPointerCapture(event.pointerId)) {\n element.releasePointerCapture(event.pointerId);\n }\n document.body.style.webkitUserSelect =\n prevWebkitUserSelectRef.current;\n if (context.viewport) context.viewport.style.scrollBehavior = \"\";\n rectRef.current = null;\n })}\n />\n </ScrollbarProvider>\n );\n});\n\nexport function useDebounceCallback(callback: () => void, delay: number) {\n const handleCallback = useCallbackRef(callback);\n const debounceTimerRef = React.useRef(0);\n React.useEffect(\n () => () => window.clearTimeout(debounceTimerRef.current),\n []\n );\n return React.useCallback(() => {\n window.clearTimeout(debounceTimerRef.current);\n debounceTimerRef.current = window.setTimeout(handleCallback, delay);\n }, [handleCallback, delay]);\n}\n\nfunction toInt(value?: string) {\n return value ? parseInt(value, 10) : 0;\n}\n\nexport function getThumbRatio(viewportSize: number, contentSize: number) {\n const ratio = viewportSize / contentSize;\n return isNaN(ratio) ? 0 : ratio;\n}\n\nfunction getThumbSize(sizes: Sizes) {\n const ratio = getThumbRatio(sizes.viewport, sizes.content);\n const scrollbarPadding =\n sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const thumbSize = (sizes.scrollbar.size - scrollbarPadding) * ratio;\n // minimum of 18 matches macOS minimum\n return Math.max(thumbSize, 18);\n}\n\nfunction getScrollPositionFromPointer(\n pointerPos: number,\n pointerOffset: number,\n sizes: Sizes,\n dir: Direction = \"ltr\"\n) {\n const thumbSizePx = getThumbSize(sizes);\n const thumbCenter = thumbSizePx / 2;\n const offset = pointerOffset || thumbCenter;\n const thumbOffsetFromEnd = thumbSizePx - offset;\n const minPointerPos = sizes.scrollbar.paddingStart + offset;\n const maxPointerPos =\n sizes.scrollbar.size - sizes.scrollbar.paddingEnd - thumbOffsetFromEnd;\n const maxScrollPos = sizes.content - sizes.viewport;\n const scrollRange =\n dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const interpolate = linearScale(\n [minPointerPos, maxPointerPos],\n scrollRange as [number, number]\n );\n return interpolate(pointerPos);\n}\n\nfunction getThumbOffsetFromScroll(\n scrollPos: number,\n sizes: Sizes,\n dir: Direction = \"ltr\"\n) {\n const thumbSizePx = getThumbSize(sizes);\n const scrollbarPadding =\n sizes.scrollbar.paddingStart + sizes.scrollbar.paddingEnd;\n const scrollbar = sizes.scrollbar.size - scrollbarPadding;\n const maxScrollPos = sizes.content - sizes.viewport;\n const maxThumbPos = scrollbar - thumbSizePx;\n const scrollClampRange =\n dir === \"ltr\" ? [0, maxScrollPos] : [maxScrollPos * -1, 0];\n const scrollWithoutMomentum = clamp(\n scrollPos,\n scrollClampRange as [number, number]\n );\n const interpolate = linearScale([0, maxScrollPos], [0, maxThumbPos]);\n return interpolate(scrollWithoutMomentum);\n}\n\n// https://github.com/tmcw-up-for-adoption/simple-linear-scale/blob/master/index.js\nfunction linearScale(\n input: readonly [number, number],\n output: readonly [number, number]\n) {\n return (value: number) => {\n if (input[0] === input[1] || output[0] === output[1]) return output[0];\n const ratio = (output[1] - output[0]) / (input[1] - input[0]);\n return output[0] + ratio * (value - input[0]);\n };\n}\n\nfunction isScrollingWithinScrollbarBounds(\n scrollPos: number,\n maxScrollPos: number\n) {\n return scrollPos > 0 && scrollPos < maxScrollPos;\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport { ScrollAreaScrollbar };\nexport type { ScrollAreaScrollbarProps };\n", "import * as React from 'react';\n\ntype Machine<S> = { [k: string]: { [k: string]: S } };\ntype MachineState<T> = keyof T;\ntype MachineEvent<T> = keyof UnionToIntersection<T[keyof T]>;\n\n// \uD83E\uDD2F https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n ? R\n : never;\n\nexport function useStateMachine<M>(\n initialState: MachineState<M>,\n machine: M & Machine<MachineState<M>>\n) {\n return React.useReducer((state: MachineState<M>, event: MachineEvent<M>): MachineState<M> => {\n const nextState = (machine[state] as any)[event];\n return nextState ?? state;\n }, initialState);\n}\n", "import React from \"react\";\nimport {\n PrimitiveDivProps,\n ScopedProps,\n useScrollAreaContext,\n} from \"./ScrollArea\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { useCallbackRef } from \"@huin-core/react-use-callback-ref\";\nimport { useLayoutEffect } from \"@huin-core/react-use-layout-effect\";\n\nconst CORNER_NAME = \"ScrollAreaCorner\";\n\ntype ScrollAreaCornerElement = ScrollAreaCornerImplElement;\ninterface ScrollAreaCornerProps extends ScrollAreaCornerImplProps {}\n\nconst ScrollAreaCorner = React.forwardRef<\n ScrollAreaCornerElement,\n ScrollAreaCornerProps\n>((props: ScopedProps<ScrollAreaCornerProps>, forwardedRef) => {\n const context = useScrollAreaContext(CORNER_NAME, props.__scopeScrollArea);\n const hasBothScrollbarsVisible = Boolean(\n context.scrollbarX && context.scrollbarY\n );\n const hasCorner = context.type !== \"scroll\" && hasBothScrollbarsVisible;\n return hasCorner ? (\n <ScrollAreaCornerImpl {...props} ref={forwardedRef} />\n ) : null;\n});\n\nScrollAreaCorner.displayName = CORNER_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype ScrollAreaCornerImplElement = React.ElementRef<typeof Primitive.div>;\ninterface ScrollAreaCornerImplProps extends PrimitiveDivProps {}\n\nconst ScrollAreaCornerImpl = React.forwardRef<\n ScrollAreaCornerImplElement,\n ScrollAreaCornerImplProps\n>((props: ScopedProps<ScrollAreaCornerImplProps>, forwardedRef) => {\n const { __scopeScrollArea, ...cornerProps } = props;\n const context = useScrollAreaContext(CORNER_NAME, __scopeScrollArea);\n const [width, setWidth] = React.useState(0);\n const [height, setHeight] = React.useState(0);\n const hasSize = Boolean(width && height);\n\n useResizeObserver(context.scrollbarX, () => {\n const height = context.scrollbarX?.offsetHeight || 0;\n context.onCornerHeightChange(height);\n setHeight(height);\n });\n\n useResizeObserver(context.scrollbarY, () => {\n const width = context.scrollbarY?.offsetWidth || 0;\n context.onCornerWidthChange(width);\n setWidth(width);\n });\n\n return hasSize ? (\n <Primitive.div\n {...cornerProps}\n ref={forwardedRef}\n style={{\n width,\n height,\n position: \"absolute\",\n right: context.dir === \"ltr\" ? 0 : undefined,\n left: context.dir === \"rtl\" ? 0 : undefined,\n bottom: 0,\n ...props.style,\n }}\n />\n ) : null;\n});\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport function useResizeObserver(element: HTMLElement | null, onResize: () => void) {\n const handleResize = useCallbackRef(onResize);\n useLayoutEffect(() => {\n let rAF = 0;\n if (element) {\n /**\n * Resize Observer will throw an often benign error that says `ResizeObserver loop\n * completed with undelivered notifications`. This means that ResizeObserver was not\n * able to deliver all observations within a single animation frame, so we use\n * `requestAnimationFrame` to ensure we don't deliver unnecessary observations.\n * Further reading: https://github.com/WICG/resize-observer/issues/38\n */\n const resizeObserver = new ResizeObserver(() => {\n cancelAnimationFrame(rAF);\n rAF = window.requestAnimationFrame(handleResize);\n });\n resizeObserver.observe(element);\n return () => {\n window.cancelAnimationFrame(rAF);\n resizeObserver.unobserve(element);\n };\n }\n }, [element, handleResize]);\n}\n/* -----------------------------------------------------------------------------------------------*/\n\nexport { ScrollAreaCorner };\nexport type { ScrollAreaCornerProps };\n", "import React from \"react\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { PrimitiveDivProps, ScopedProps, useScrollAreaContext } from \"./ScrollArea\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\n\nconst VIEWPORT_NAME = \"ScrollAreaViewport\";\n\nexport type ScrollAreaViewportElement = React.ElementRef<typeof Primitive.div>;\ninterface ScrollAreaViewportProps extends PrimitiveDivProps {\n nonce?: string;\n}\n\nconst ScrollAreaViewport = React.forwardRef<\n ScrollAreaViewportElement,\n ScrollAreaViewportProps\n>((props: ScopedProps<ScrollAreaViewportProps>, forwardedRef) => {\n const { __scopeScrollArea, children, nonce, ...viewportProps } = props;\n const context = useScrollAreaContext(VIEWPORT_NAME, __scopeScrollArea);\n const ref = React.useRef<ScrollAreaViewportElement>(null);\n const composedRefs = useComposedRefs(\n forwardedRef,\n ref,\n context.onViewportChange\n );\n return (\n <>\n {/* Hide scrollbars cross-browser and enable momentum scroll for touch devices */}\n <style\n dangerouslySetInnerHTML={{\n __html: `[data-huin-core-scroll-area-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-huin-core-scroll-area-viewport]::-webkit-scrollbar{display:none}`,\n }}\n nonce={nonce}\n />\n <Primitive.div\n data-huin-core-scroll-area-viewport=\"\"\n {...viewportProps}\n ref={composedRefs}\n style={{\n /**\n * We don't support `visible` because the intention is to have at least one scrollbar\n * if this component is used and `visible` will behave like `auto` in that case\n * https://developer.mozilla.org/en-US/docs/Web/CSS/overflow#description\n *\n * We don't handle `auto` because the intention is for the native implementation\n * to be hidden if using this component. We just want to ensure the node is scrollable\n * so could have used either `scroll` or `auto` here. We picked `scroll` to prevent\n * the browser from having to work out whether to render native scrollbars or not,\n * we tell it to with the intention of hiding them in CSS.\n */\n overflowX: context.scrollbarXEnabled ? \"scroll\" : \"hidden\",\n overflowY: context.scrollbarYEnabled ? \"scroll\" : \"hidden\",\n ...props.style,\n }}\n >\n {/**\n * `display: table` ensures our content div will match the size of its children in both\n * horizontal and vertical axis so we can determine if scroll width/height changed and\n * recalculate thumb sizes. This doesn't account for children with *percentage*\n * widths that change. We'll wait to see what use-cases consumers come up with there\n * before trying to resolve it.\n */}\n <Primitive.div\n ref={context.onContentChange}\n style={{ minWidth: \"100%\", display: \"table\" }}\n >\n {children}\n </Primitive.div>\n </Primitive.div>\n </>\n );\n});\n\nScrollAreaViewport.displayName = VIEWPORT_NAME;\n\nexport { ScrollAreaViewport };\nexport type { ScrollAreaViewportProps };\n", "import React from \"react\";\nimport {\n PrimitiveDivProps,\n ScopedProps,\n useScrollAreaContext,\n useScrollbarContext,\n} from \"./ScrollArea\";\nimport { Presence } from \"@huin-core/react-presence\";\nimport { useComposedRefs } from \"@huin-core/react-compose-refs\";\nimport { Primitive } from \"@huin-core/react-primitive\";\nimport { composeEventHandlers } from \"@huin-core/primitive\";\nimport {\n useDebounceCallback,\n} from \"./ScrollAreaScrollbar\";\n\nconst THUMB_NAME = \"ScrollAreaThumb\";\n\nexport type ScrollAreaThumbElement = ScrollAreaThumbImplElement;\ninterface ScrollAreaThumbProps extends ScrollAreaThumbImplProps {\n /**\n * Used to force mounting when more control is needed. Useful when\n * controlling animation with React animation libraries.\n */\n forceMount?: true;\n}\n\nconst ScrollAreaThumb = React.forwardRef<\n ScrollAreaThumbElement,\n ScrollAreaThumbProps\n>((props: ScopedProps<ScrollAreaThumbProps>, forwardedRef) => {\n const { forceMount, ...thumbProps } = props;\n const scrollbarContext = useScrollbarContext(\n THUMB_NAME,\n props.__scopeScrollArea\n );\n return (\n <Presence present={forceMount || scrollbarContext.hasThumb}>\n <ScrollAreaThumbImpl ref={forwardedRef} {...thumbProps} />\n </Presence>\n );\n});\n\ntype ScrollAreaThumbImplElement = React.ElementRef<typeof Primitive.div>;\ninterface ScrollAreaThumbImplProps extends PrimitiveDivProps {}\n\nconst ScrollAreaThumbImpl = React.forwardRef<\n ScrollAreaThumbImplElement,\n ScrollAreaThumbImplProps\n>((props: ScopedProps<ScrollAreaThumbImplProps>, forwardedRef) => {\n const { __scopeScrollArea, style, ...thumbProps } = props;\n const scrollAreaContext = useScrollAreaContext(THUMB_NAME, __scopeScrollArea);\n const scrollbarContext = useScrollbarContext(THUMB_NAME, __scopeScrollArea);\n const { onThumbPositionChange } = scrollbarContext;\n const composedRef = useComposedRefs(forwardedRef, (node) =>\n scrollbarContext.onThumbChange(node)\n );\n const removeUnlinkedScrollListenerRef = React.useRef<() => void>();\n const debounceScrollEnd = useDebounceCallback(() => {\n if (removeUnlinkedScrollListenerRef.current) {\n removeUnlinkedScrollListenerRef.current();\n removeUnlinkedScrollListenerRef.current = undefined;\n }\n }, 100);\n\n React.useEffect(() => {\n const viewport = scrollAreaContext.viewport;\n if (viewport) {\n /**\n * We only bind to native scroll event so we know when scroll starts and ends.\n * When scroll starts we start a requestAnimationFrame loop that checks for\n * changes to scroll position. That rAF loop triggers our thumb position change\n * when relevant to avoid scroll-linked effects. We cancel the loop when scroll ends.\n * https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\n */\n const handleScroll = () => {\n debounceScrollEnd();\n if (!removeUnlinkedScrollListenerRef.current) {\n const listener = addUnlinkedScrollListener(\n viewport,\n onThumbPositionChange\n );\n removeUnlinkedScrollListenerRef.current = listener;\n onThumbPositionChange();\n }\n };\n onThumbPositionChange();\n viewport.addEventListener(\"scroll\", handleScroll);\n return () => viewport.removeEventListener(\"scroll\", handleScroll);\n }\n }, [scrollAreaContext.viewport, debounceScrollEnd, onThumbPositionChange]);\n\n return (\n <Primitive.div\n data-state={scrollbarContext.hasThumb ? \"visible\" : \"hidden\"}\n {...thumbProps}\n ref={composedRef}\n style={{\n width: \"var(--huin-core-scroll-area-thumb-width)\",\n height: \"var(--huin-core-scroll-area-thumb-height)\",\n ...style,\n }}\n onPointerDownCapture={composeEventHandlers(\n props.onPointerDownCapture,\n (event) => {\n const thumb = event.target as HTMLElement;\n const thumbRect = thumb.getBoundingClientRect();\n const x = event.clientX - thumbRect.left;\n const y = event.clientY - thumbRect.top;\n scrollbarContext.onThumbPointerDown({ x, y });\n }\n )}\n onPointerUp={composeEventHandlers(\n props.onPointerUp,\n scrollbarContext.onThumbPointerUp\n )}\n />\n );\n});\n\nScrollAreaThumb.displayName = THUMB_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\n// Custom scroll handler to avoid scroll-linked effects\n// https://developer.mozilla.org/en-US/docs/Mozilla/Performance/Scroll-linked_effects\nconst addUnlinkedScrollListener = (node: HTMLElement, handler = () => {}) => {\n let prevPosition = { left: node.scrollLeft, top: node.scrollTop };\n let rAF = 0;\n (function loop() {\n const position = { left: node.scrollLeft, top: node.scrollTop };\n const isHorizontalScroll = prevPosition.left !== position.left;\n const isVerticalScroll = prevPosition.top !== position.top;\n if (isHorizontalScroll || isVerticalScroll) handler();\n prevPosition = position;\n rAF = window.requestAnimationFrame(loop);\n })();\n return () => window.cancelAnimationFrame(rAF);\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport { ScrollAreaThumb };\nexport type { ScrollAreaThumbProps };\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "Primitive", "useComposedRefs", "React", "useCallbackRef", "Primitive", "React", "React", "height", "width", "
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "Primitive", "useComposedRefs", "React", "useCallbackRef", "Primitive", "React", "React", "height", "width", "React", "useCallbackRef", "Primitive", "useComposedRefs", "Primitive", "React", "Primitive", "useComposedRefs", "React", "Primitive", "React", "Presence", "useComposedRefs", "Primitive", "composeEventHandlers", "React", "Presence", "useComposedRefs", "Primitive", "composeEventHandlers"]
|
|
7
7
|
}
|