@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 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__ */ (0, import_jsx_runtime.jsx)(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;
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__ */ (0, import_jsx_runtime.jsx)(
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__ */ (0, import_jsx_runtime2.jsx)(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "scroll" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "auto" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "always" ? /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;
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__ */ (0, import_jsx_runtime2.jsx)(import_react_presence.Presence, { present: forceMount || visible, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
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__ */ (0, import_jsx_runtime2.jsx)(import_react_presence.Presence, { present: forceMount || state !== "hidden", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
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__ */ (0, import_jsx_runtime2.jsx)(import_react_presence.Presence, { present: forceMount || visible, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
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__ */ (0, import_jsx_runtime2.jsx)(
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__ */ (0, import_jsx_runtime2.jsx)(
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__ */ (0, import_jsx_runtime2.jsx)(
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__ */ (0, import_jsx_runtime2.jsx)(
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__ */ (0, import_jsx_runtime2.jsx)(
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
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
538
- import_react_primitive2.Primitive.div,
539
- {
540
- ...scrollbarProps,
541
- ref: composeRefs,
542
- style: { position: "absolute", ...scrollbarProps.style },
543
- onPointerDown: (0, import_primitive.composeEventHandlers)(props.onPointerDown, (event) => {
544
- const mainPointer = 0;
545
- if (event.button === mainPointer) {
546
- const element = event.target;
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
- if (element.hasPointerCapture(event.pointerId)) {
563
- element.releasePointerCapture(event.pointerId);
564
- }
565
- document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;
566
- if (context.viewport) context.viewport.style.scrollBehavior = "";
567
- rectRef.current = null;
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__ */ (0, import_jsx_runtime3.jsx)(
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
- children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
691
- import_react_primitive3.Primitive.div,
692
- {
693
- dir: direction,
694
- ...scrollAreaProps,
695
- ref: composedRefs,
696
- style: {
697
- position: "relative",
698
- // Pass corner sizes as CSS vars to reduce re-renders of context consumers
699
- ["--huin-core-scroll-area-corner-width"]: cornerWidth + "px",
700
- ["--huin-core-scroll-area-corner-height"]: cornerHeight + "px",
701
- ...props.style
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__ */ (0, import_jsx_runtime4.jsxs)(import_jsx_runtime4.Fragment, { children: [
728
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
729
- "style",
730
- {
731
- dangerouslySetInnerHTML: {
732
- __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}`
733
- },
734
- nonce
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__ */ (0, import_jsx_runtime4.jsx)(
753
+ },
754
+ /* @__PURE__ */ import_react3.default.createElement(
738
755
  import_react_primitive4.Primitive.div,
739
756
  {
740
- "data-huin-core-scroll-area-viewport": "",
741
- ...viewportProps,
742
- ref: composedRefs,
743
- style: {
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__ */ (0, import_jsx_runtime5.jsx)(import_react_presence2.Presence, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });
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__ */ (0, import_jsx_runtime5.jsx)(
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", "import_jsx_runtime", "React", "import_jsx_runtime", "import_react", "import_react_primitive", "import_react_compose_refs", "import_jsx_runtime", "React", "import_react", "import_react_presence", "import_react_compose_refs", "import_react_primitive", "import_primitive", "import_jsx_runtime", "React"]
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__ */ jsx(ScrollAreaCornerImpl, { ...props, ref: forwardedRef }) : null;
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__ */ jsx(
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__ */ jsx2(ScrollAreaScrollbarHover, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "scroll" ? /* @__PURE__ */ jsx2(ScrollAreaScrollbarScroll, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "auto" ? /* @__PURE__ */ jsx2(ScrollAreaScrollbarAuto, { ...scrollbarProps, ref: forwardedRef, forceMount }) : context.type === "always" ? /* @__PURE__ */ jsx2(ScrollAreaScrollbarVisible, { ...scrollbarProps, ref: forwardedRef }) : null;
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__ */ jsx2(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx2(
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__ */ jsx2(Presence, { present: forceMount || state !== "hidden", children: /* @__PURE__ */ jsx2(
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__ */ jsx2(Presence, { present: forceMount || visible, children: /* @__PURE__ */ jsx2(
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__ */ jsx2(
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__ */ jsx2(
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__ */ jsx2(
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__ */ jsx2(
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__ */ jsx2(
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
- children: /* @__PURE__ */ jsx2(
497
- Primitive2.div,
498
- {
499
- ...scrollbarProps,
500
- ref: composeRefs,
501
- style: { position: "absolute", ...scrollbarProps.style },
502
- onPointerDown: composeEventHandlers(props.onPointerDown, (event) => {
503
- const mainPointer = 0;
504
- if (event.button === mainPointer) {
505
- const element = event.target;
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
- if (element.hasPointerCapture(event.pointerId)) {
522
- element.releasePointerCapture(event.pointerId);
523
- }
524
- document.body.style.webkitUserSelect = prevWebkitUserSelectRef.current;
525
- if (context.viewport) context.viewport.style.scrollBehavior = "";
526
- rectRef.current = null;
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__ */ jsx3(
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
- children: /* @__PURE__ */ jsx3(
650
- Primitive3.div,
651
- {
652
- dir: direction,
653
- ...scrollAreaProps,
654
- ref: composedRefs,
655
- style: {
656
- position: "relative",
657
- // Pass corner sizes as CSS vars to reduce re-renders of context consumers
658
- ["--huin-core-scroll-area-corner-width"]: cornerWidth + "px",
659
- ["--huin-core-scroll-area-corner-height"]: cornerHeight + "px",
660
- ...props.style
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__ */ jsxs(Fragment, { children: [
687
- /* @__PURE__ */ jsx4(
688
- "style",
689
- {
690
- dangerouslySetInnerHTML: {
691
- __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}`
692
- },
693
- nonce
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__ */ jsx4(
712
+ },
713
+ /* @__PURE__ */ React5.createElement(
697
714
  Primitive4.div,
698
715
  {
699
- "data-huin-core-scroll-area-viewport": "",
700
- ...viewportProps,
701
- ref: composedRefs,
702
- style: {
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__ */ jsx5(Presence2, { present: forceMount || scrollbarContext.hasThumb, children: /* @__PURE__ */ jsx5(ScrollAreaThumbImpl, { ref: forwardedRef, ...thumbProps }) });
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__ */ jsx5(
775
+ return /* @__PURE__ */ React6.createElement(
784
776
  Primitive5.div,
785
777
  {
786
778
  "data-state": scrollbarContext.hasThumb ? "visible" : "hidden",
@@ -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", "jsx", "React", "useCallbackRef", "Primitive", "jsx", "useComposedRefs", "Primitive", "React", "Primitive", "useComposedRefs", "jsx", "React", "Primitive", "React", "Presence", "useComposedRefs", "Primitive", "composeEventHandlers", "jsx", "React", "Presence", "useComposedRefs", "Primitive", "composeEventHandlers"]
5
+ "mappings": ";;;AAAA,YAAYA,YAAW;AACvB,SAAS,aAAAC,kBAAiB;AAC1B,SAAS,0BAA0B;AACnC,SAAS,mBAAAC,wBAAuB;AAChC,SAAS,oBAAoB;;;ACJ7B,OAAOC,YAAW;AAClB,SAAS,kBAAAC,uBAAsB;AAC/B,SAAS,aAAAC,kBAAiB;AAS1B,SAAS,gBAAgB;;;ACXzB,YAAY,WAAW;AAWhB,SAAS,gBACd,cACA,SACA;AACA,SAAa,iBAAW,CAAC,OAAwB,UAA4C;AAC3F,UAAM,YAAa,QAAQ,KAAK,EAAU,KAAK;AAC/C,WAAO,aAAa;AAAA,EACtB,GAAG,YAAY;AACjB;;;ADNA,SAAS,4BAA4B;;;AEbrC,OAAOC,YAAW;AAMlB,SAAS,iBAAiB;AAC1B,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAEhC,IAAM,cAAc;AAKpB,IAAM,mBAAmBC,OAAM,WAG7B,CAAC,OAA2C,iBAAiB;AAC7D,QAAM,UAAU,qBAAqB,aAAa,MAAM,iBAAiB;AACzE,QAAM,2BAA2B;AAAA,IAC/B,QAAQ,cAAc,QAAQ;AAAA,EAChC;AACA,QAAM,YAAY,QAAQ,SAAS,YAAY;AAC/C,SAAO,YACL,gBAAAA,OAAA,cAAC,wBAAsB,GAAG,OAAO,KAAK,cAAc,IAClD;AACN,CAAC;AAED,iBAAiB,cAAc;AAO/B,IAAM,uBAAuBA,OAAM,WAGjC,CAAC,OAA+C,iBAAiB;AACjE,QAAM,EAAE,mBAAmB,GAAG,YAAY,IAAI;AAC9C,QAAM,UAAU,qBAAqB,aAAa,iBAAiB;AACnE,QAAM,CAAC,OAAO,QAAQ,IAAIA,OAAM,SAAS,CAAC;AAC1C,QAAM,CAAC,QAAQ,SAAS,IAAIA,OAAM,SAAS,CAAC;AAC5C,QAAM,UAAU,QAAQ,SAAS,MAAM;AAEvC,oBAAkB,QAAQ,YAAY,MAAM;AAC1C,UAAMC,UAAS,QAAQ,YAAY,gBAAgB;AACnD,YAAQ,qBAAqBA,OAAM;AACnC,cAAUA,OAAM;AAAA,EAClB,CAAC;AAED,oBAAkB,QAAQ,YAAY,MAAM;AAC1C,UAAMC,SAAQ,QAAQ,YAAY,eAAe;AACjD,YAAQ,oBAAoBA,MAAK;AACjC,aAASA,MAAK;AAAA,EAChB,CAAC;AAED,SAAO,UACL,gBAAAF,OAAA;AAAA,IAAC,UAAU;AAAA,IAAV;AAAA,MACE,GAAG;AAAA,MACJ,KAAK;AAAA,MACL,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA,UAAU;AAAA,QACV,OAAO,QAAQ,QAAQ,QAAQ,IAAI;AAAA,QACnC,MAAM,QAAQ,QAAQ,QAAQ,IAAI;AAAA,QAClC,QAAQ;AAAA,QACR,GAAG,MAAM;AAAA,MACX;AAAA;AAAA,EACF,IACE;AACN,CAAC;AAIM,SAAS,kBAAkB,SAA6B,UAAsB;AACnF,QAAM,eAAe,eAAe,QAAQ;AAC5C,kBAAgB,MAAM;AACpB,QAAI,MAAM;AACV,QAAI,SAAS;AAQX,YAAM,iBAAiB,IAAI,eAAe,MAAM;AAC9C,6BAAqB,GAAG;AACxB,cAAM,OAAO,sBAAsB,YAAY;AAAA,MACjD,CAAC;AACD,qBAAe,QAAQ,OAAO;AAC9B,aAAO,MAAM;AACX,eAAO,qBAAqB,GAAG;AAC/B,uBAAe,UAAU,OAAO;AAAA,MAClC;AAAA,IACF;AAAA,EACF,GAAG,CAAC,SAAS,YAAY,CAAC;AAC5B;;;AFpFA,SAAS,uBAAuB;AAChC,SAAS,aAAa;AAEf,IAAM,iBAAiB;AAO9B,IAAM,sBAAsBG,OAAM;AAAA,EAChC,CAAC,OAA8C,iBAAiB;AAC9D,UAAM,EAAE,YAAY,GAAG,eAAe,IAAI;AAC1C,UAAM,UAAU,qBAAqB,gBAAgB,MAAM,iBAAiB;AAC5E,UAAM,EAAE,2BAA2B,0BAA0B,IAAI;AACjE,UAAM,eAAe,MAAM,gBAAgB;AAE3C,IAAAA,OAAM,UAAU,MAAM;AACpB,qBAAe,0BAA0B,IAAI,IAAI,0BAA0B,IAAI;AAC/E,aAAO,MAAM;AACX,uBAAe,0BAA0B,KAAK,IAAI,0BAA0B,KAAK;AAAA,MACnF;AAAA,IACF,GAAG,CAAC,cAAc,2BAA2B,yBAAyB,CAAC;AAEvE,WAAO,QAAQ,SAAS,UACtB,gBAAAA,OAAA,cAAC,4BAA0B,GAAG,gBAAgB,KAAK,cAAc,YAAwB,IACvF,QAAQ,SAAS,WACnB,gBAAAA,OAAA,cAAC,6BAA2B,GAAG,gBAAgB,KAAK,cAAc,YAAwB,IACxF,QAAQ,SAAS,SACnB,gBAAAA,OAAA,cAAC,2BAAyB,GAAG,gBAAgB,KAAK,cAAc,YAAwB,IACtF,QAAQ,SAAS,WACnB,gBAAAA,OAAA,cAAC,8BAA4B,GAAG,gBAAgB,KAAK,cAAc,IACjE;AAAA,EACN;AACF;AAEA,oBAAoB,cAAc;AASlC,IAAM,2BAA2BA,OAAM,WAGrC,CAAC,OAAmD,iBAAiB;AACrE,QAAM,EAAE,YAAY,GAAG,eAAe,IAAI;AAC1C,QAAM,UAAU,qBAAqB,gBAAgB,MAAM,iBAAiB;AAC5E,QAAM,CAAC,SAAS,UAAU,IAAIA,OAAM,SAAS,KAAK;AAElD,EAAAA,OAAM,UAAU,MAAM;AACpB,UAAM,aAAa,QAAQ;AAC3B,QAAI,YAAY;AAChB,QAAI,YAAY;AACd,YAAM,qBAAqB,MAAM;AAC/B,eAAO,aAAa,SAAS;AAC7B,mBAAW,IAAI;AAAA,MACjB;AACA,YAAM,qBAAqB,MAAM;AAC/B,oBAAY,OAAO;AAAA,UACjB,MAAM,WAAW,KAAK;AAAA,UACtB,QAAQ;AAAA,QACV;AAAA,MACF;AACA,iBAAW,iBAAiB,gBAAgB,kBAAkB;AAC9D,iBAAW,iBAAiB,gBAAgB,kBAAkB;AAC9D,aAAO,MAAM;AACX,eAAO,aAAa,SAAS;AAC7B,mBAAW,oBAAoB,gBAAgB,kBAAkB;AACjE,mBAAW,oBAAoB,gBAAgB,kBAAkB;AAAA,MACnE;AAAA,IACF;AAAA,EACF,GAAG,CAAC,QAAQ,YAAY,QAAQ,eAAe,CAAC;AAEhD,SACE,gBAAAA,OAAA,cAAC,YAAS,SAAS,cAAc,WAC/B,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,cAAY,UAAU,YAAY;AAAA,MACjC,GAAG;AAAA,MACJ,KAAK;AAAA;AAAA,EACP,CACF;AAEJ,CAAC;AAQD,IAAM,4BAA4BA,OAAM,WAGtC,CAAC,OAAoD,iBAAiB;AACtE,QAAM,EAAE,YAAY,GAAG,eAAe,IAAI;AAC1C,QAAM,UAAU,qBAAqB,gBAAgB,MAAM,iBAAiB;AAC5E,QAAM,eAAe,MAAM,gBAAgB;AAC3C,QAAM,oBAAoB,oBAAoB,MAAM,KAAK,YAAY,GAAG,GAAG;AAC3E,QAAM,CAAC,OAAO,IAAI,IAAI,gBAAgB,UAAU;AAAA,IAC9C,QAAQ;AAAA,MACN,QAAQ;AAAA,IACV;AAAA,IACA,WAAW;AAAA,MACT,YAAY;AAAA,MACZ,eAAe;AAAA,IACjB;AAAA,IACA,aAAa;AAAA,MACX,QAAQ;AAAA,MACR,eAAe;AAAA,IACjB;AAAA,IACA,MAAM;AAAA,MACJ,MAAM;AAAA,MACN,QAAQ;AAAA,MACR,eAAe;AAAA,IACjB;AAAA,EACF,CAAC;AAED,EAAAA,OAAM,UAAU,MAAM;AACpB,QAAI,UAAU,QAAQ;AACpB,YAAM,YAAY,OAAO;AAAA,QACvB,MAAM,KAAK,MAAM;AAAA,QACjB,QAAQ;AAAA,MACV;AACA,aAAO,MAAM,OAAO,aAAa,SAAS;AAAA,IAC5C;AAAA,EACF,GAAG,CAAC,OAAO,QAAQ,iBAAiB,IAAI,CAAC;AAEzC,EAAAA,OAAM,UAAU,MAAM;AACpB,UAAM,WAAW,QAAQ;AACzB,UAAM,kBAAkB,eAAe,eAAe;AAEtD,QAAI,UAAU;AACZ,UAAI,gBAAgB,SAAS,eAAe;AAC5C,YAAM,eAAe,MAAM;AACzB,cAAM,YAAY,SAAS,eAAe;AAC1C,cAAM,8BAA8B,kBAAkB;AACtD,YAAI,6BAA6B;AAC/B,eAAK,QAAQ;AACb,4BAAkB;AAAA,QACpB;AACA,wBAAgB;AAAA,MAClB;AACA,eAAS,iBAAiB,UAAU,YAAY;AAChD,aAAO,MAAM,SAAS,oBAAoB,UAAU,YAAY;AAAA,IAClE;AAAA,EACF,GAAG,CAAC,QAAQ,UAAU,cAAc,MAAM,iBAAiB,CAAC;AAE5D,SACE,gBAAAA,OAAA,cAAC,YAAS,SAAS,cAAc,UAAU,YACzC,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,cAAY,UAAU,WAAW,WAAW;AAAA,MAC3C,GAAG;AAAA,MACJ,KAAK;AAAA,MACL,gBAAgB;AAAA,QAAqB,MAAM;AAAA,QAAgB,MACzD,KAAK,eAAe;AAAA,MACtB;AAAA,MACA,gBAAgB;AAAA,QAAqB,MAAM;AAAA,QAAgB,MACzD,KAAK,eAAe;AAAA,MACtB;AAAA;AAAA,EACF,CACF;AAEJ,CAAC;AAOD,IAAM,0BAA0BA,OAAM,WAGpC,CAAC,OAAkD,iBAAiB;AACpE,QAAM,UAAU,qBAAqB,gBAAgB,MAAM,iBAAiB;AAC5E,QAAM,EAAE,YAAY,GAAG,eAAe,IAAI;AAC1C,QAAM,CAAC,SAAS,UAAU,IAAIA,OAAM,SAAS,KAAK;AAClD,QAAM,eAAe,MAAM,gBAAgB;AAC3C,QAAM,eAAe,oBAAoB,MAAM;AAC7C,QAAI,QAAQ,UAAU;AACpB,YAAM,cACJ,QAAQ,SAAS,cAAc,QAAQ,SAAS;AAClD,YAAM,cACJ,QAAQ,SAAS,eAAe,QAAQ,SAAS;AACnD,iBAAW,eAAe,cAAc,WAAW;AAAA,IACrD;AAAA,EACF,GAAG,EAAE;AAEL,oBAAkB,QAAQ,UAAU,YAAY;AAChD,oBAAkB,QAAQ,SAAS,YAAY;AAE/C,SACE,gBAAAA,OAAA,cAAC,YAAS,SAAS,cAAc,WAC/B,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,cAAY,UAAU,YAAY;AAAA,MACjC,GAAG;AAAA,MACJ,KAAK;AAAA;AAAA,EACP,CACF;AAEJ,CAAC;AAaD,IAAM,6BAA6BA,OAAM,WAGvC,CAAC,OAAqD,iBAAiB;AACvE,QAAM,EAAE,cAAc,YAAY,GAAG,eAAe,IAAI;AACxD,QAAM,UAAU,qBAAqB,gBAAgB,MAAM,iBAAiB;AAC5E,QAAM,WAAWA,OAAM,OAAsC,IAAI;AACjE,QAAM,mBAAmBA,OAAM,OAAO,CAAC;AACvC,QAAM,CAAC,OAAO,QAAQ,IAAIA,OAAM,SAAgB;AAAA,IAC9C,SAAS;AAAA,IACT,UAAU;AAAA,IACV,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,YAAY,EAAE;AAAA,EACvD,CAAC;AACD,QAAM,aAAa,cAAc,MAAM,UAAU,MAAM,OAAO;AAM9D,QAAM,cACJ;AAAA,IACE,GAAG;AAAA,IACH;AAAA,IACA,eAAe;AAAA,IACf,UAAU,QAAQ,aAAa,KAAK,aAAa,CAAC;AAAA,IAClD,eAAe,CAAC,UAAW,SAAS,UAAU;AAAA,IAC9C,kBAAkB,MAAO,iBAAiB,UAAU;AAAA,IACpD,oBAAoB,CAAC,eAClB,iBAAiB,UAAU;AAAA,EAChC;AAEF,WAAS,kBAAkB,YAAoB,KAAiB;AAC9D,WAAO;AAAA,MACL;AAAA,MACA,iBAAiB;AAAA,MACjB;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,MAAI,gBAAgB,cAAc;AAChC,WACE,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,KAAK;AAAA,QACL,uBAAuB,MAAM;AAC3B,cAAI,QAAQ,YAAY,SAAS,SAAS;AACxC,kBAAM,YAAY,QAAQ,SAAS;AACnC,kBAAM,SAAS;AAAA,cACb;AAAA,cACA;AAAA,cACA,QAAQ;AAAA,YACV;AACA,qBAAS,QAAQ,MAAM,YAAY,eAAe,MAAM;AAAA,UAC1D;AAAA,QACF;AAAA,QACA,eAAe,CAAC,cAAc;AAC5B,cAAI,QAAQ,SAAU,SAAQ,SAAS,aAAa;AAAA,QACtD;AAAA,QACA,cAAc,CAAC,eAAe;AAC5B,cAAI,QAAQ,UAAU;AACpB,oBAAQ,SAAS,aAAa;AAAA,cAC5B;AAAA,cACA,QAAQ;AAAA,YACV;AAAA,UACF;AAAA,QACF;AAAA;AAAA,IACF;AAAA,EAEJ;AAEA,MAAI,gBAAgB,YAAY;AAC9B,WACE,gBAAAA,OAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,KAAK;AAAA,QACL,uBAAuB,MAAM;AAC3B,cAAI,QAAQ,YAAY,SAAS,SAAS;AACxC,kBAAM,YAAY,QAAQ,SAAS;AACnC,kBAAM,SAAS,yBAAyB,WAAW,KAAK;AACxD,qBAAS,QAAQ,MAAM,YAAY,kBAAkB,MAAM;AAAA,UAC7D;AAAA,QACF;AAAA,QACA,eAAe,CAAC,cAAc;AAC5B,cAAI,QAAQ,SAAU,SAAQ,SAAS,YAAY;AAAA,QACrD;AAAA,QACA,cAAc,CAAC,eAAe;AAC5B,cAAI,QAAQ;AACV,oBAAQ,SAAS,YAAY,kBAAkB,UAAU;AAAA,QAC7D;AAAA;AAAA,IACF;AAAA,EAEJ;AAEA,SAAO;AACT,CAAC;AAwBD,IAAM,uBAAuBA,OAAM,WAGjC,CAAC,OAAkD,iBAAiB;AACpE,QAAM,EAAE,OAAO,eAAe,GAAG,eAAe,IAAI;AACpD,QAAM,UAAU,qBAAqB,gBAAgB,MAAM,iBAAiB;AAC5E,QAAM,CAAC,eAAe,gBAAgB,IACpCA,OAAM,SAA8B;AACtC,QAAM,MAAMA,OAAM,OAAuC,IAAI;AAC7D,QAAM,cAAc;AAAA,IAClB;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EACV;AAEA,EAAAA,OAAM,UAAU,MAAM;AACpB,QAAI,IAAI,QAAS,kBAAiB,iBAAiB,IAAI,OAAO,CAAC;AAAA,EACjE,GAAG,CAAC,GAAG,CAAC;AAER,SACE,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,oBAAiB;AAAA,MAChB,GAAG;AAAA,MACJ,KAAK;AAAA,MACL;AAAA,MACA,OAAO;AAAA,QACL,QAAQ;AAAA,QACR,MACE,QAAQ,QAAQ,QAAQ,8CAA8C;AAAA,QACxE,OACE,QAAQ,QAAQ,QAAQ,8CAA8C;AAAA,QACxE,CAAC,qCAA4C,GAAG,aAAa,KAAK,IAAI;AAAA,QACtE,GAAG,MAAM;AAAA,MACX;AAAA,MACA,oBAAoB,CAAC,eACnB,MAAM,mBAAmB,WAAW,CAAC;AAAA,MAEvC,cAAc,CAAC,eAAe,MAAM,aAAa,WAAW,CAAC;AAAA,MAC7D,eAAe,CAAC,OAAO,iBAAiB;AACtC,YAAI,QAAQ,UAAU;AACpB,gBAAM,YAAY,QAAQ,SAAS,aAAa,MAAM;AACtD,gBAAM,cAAc,SAAS;AAE7B,cAAI,iCAAiC,WAAW,YAAY,GAAG;AAC7D,kBAAM,eAAe;AAAA,UACvB;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAU,MAAM;AACd,YAAI,IAAI,WAAW,QAAQ,YAAY,eAAe;AACpD,wBAAc;AAAA,YACZ,SAAS,QAAQ,SAAS;AAAA,YAC1B,UAAU,QAAQ,SAAS;AAAA,YAC3B,WAAW;AAAA,cACT,MAAM,IAAI,QAAQ;AAAA,cAClB,cAAc,MAAM,cAAc,WAAW;AAAA,cAC7C,YAAY,MAAM,cAAc,YAAY;AAAA,YAC9C;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA;AAAA,EACF;AAEJ,CAAC;AAED,IAAM,uBAAuBA,OAAM,WAGjC,CAAC,OAAkD,iBAAiB;AACpE,QAAM,EAAE,OAAO,eAAe,GAAG,eAAe,IAAI;AACpD,QAAM,UAAU,qBAAqB,gBAAgB,MAAM,iBAAiB;AAC5E,QAAM,CAAC,eAAe,gBAAgB,IACpCA,OAAM,SAA8B;AACtC,QAAM,MAAMA,OAAM,OAAuC,IAAI;AAC7D,QAAM,cAAc;AAAA,IAClB;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EACV;AAEA,EAAAA,OAAM,UAAU,MAAM;AACpB,QAAI,IAAI,QAAS,kBAAiB,iBAAiB,IAAI,OAAO,CAAC;AAAA,EACjE,GAAG,CAAC,GAAG,CAAC;AAER,SACE,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,oBAAiB;AAAA,MAChB,GAAG;AAAA,MACJ,KAAK;AAAA,MACL;AAAA,MACA,OAAO;AAAA,QACL,KAAK;AAAA,QACL,OAAO,QAAQ,QAAQ,QAAQ,IAAI;AAAA,QACnC,MAAM,QAAQ,QAAQ,QAAQ,IAAI;AAAA,QAClC,QAAQ;AAAA,QACR,CAAC,sCAA6C,GAAG,aAAa,KAAK,IAAI;AAAA,QACvE,GAAG,MAAM;AAAA,MACX;AAAA,MACA,oBAAoB,CAAC,eACnB,MAAM,mBAAmB,WAAW,CAAC;AAAA,MAEvC,cAAc,CAAC,eAAe,MAAM,aAAa,WAAW,CAAC;AAAA,MAC7D,eAAe,CAAC,OAAO,iBAAiB;AACtC,YAAI,QAAQ,UAAU;AACpB,gBAAM,YAAY,QAAQ,SAAS,YAAY,MAAM;AACrD,gBAAM,cAAc,SAAS;AAE7B,cAAI,iCAAiC,WAAW,YAAY,GAAG;AAC7D,kBAAM,eAAe;AAAA,UACvB;AAAA,QACF;AAAA,MACF;AAAA,MACA,UAAU,MAAM;AACd,YAAI,IAAI,WAAW,QAAQ,YAAY,eAAe;AACpD,wBAAc;AAAA,YACZ,SAAS,QAAQ,SAAS;AAAA,YAC1B,UAAU,QAAQ,SAAS;AAAA,YAC3B,WAAW;AAAA,cACT,MAAM,IAAI,QAAQ;AAAA,cAClB,cAAc,MAAM,cAAc,UAAU;AAAA,cAC5C,YAAY,MAAM,cAAc,aAAa;AAAA,YAC/C;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF;AAAA;AAAA,EACF;AAEJ,CAAC;AA6BD,IAAM,0BAA0BA,OAAM,WAGpC,CAAC,OAAkD,iBAAiB;AACpE,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,UAAU,qBAAqB,gBAAgB,iBAAiB;AACtE,QAAM,CAAC,WAAW,YAAY,IAC5BA,OAAM,SAA4C,IAAI;AACxD,QAAM,cAAc;AAAA,IAAgB;AAAA,IAAc,CAAC,SACjD,aAAa,IAAI;AAAA,EACnB;AACA,QAAM,UAAUA,OAAM,OAA0B,IAAI;AACpD,QAAM,0BAA0BA,OAAM,OAAe,EAAE;AACvD,QAAM,WAAW,QAAQ;AACzB,QAAM,eAAe,MAAM,UAAU,MAAM;AAC3C,QAAM,oBAAoBC,gBAAe,aAAa;AACtD,QAAM,4BAA4BA,gBAAe,qBAAqB;AACtE,QAAM,eAAe,oBAAoB,UAAU,EAAE;AAErD,WAAS,iBAAiB,OAAwC;AAChE,QAAI,QAAQ,SAAS;AACnB,YAAM,IAAI,MAAM,UAAU,QAAQ,QAAQ;AAC1C,YAAM,IAAI,MAAM,UAAU,QAAQ,QAAQ;AAC1C,mBAAa,EAAE,GAAG,EAAE,CAAC;AAAA,IACvB;AAAA,EACF;AAMA,EAAAD,OAAM,UAAU,MAAM;AACpB,UAAM,cAAc,CAAC,UAAsB;AACzC,YAAM,UAAU,MAAM;AACtB,YAAM,mBAAmB,WAAW,SAAS,OAAO;AACpD,UAAI,iBAAkB,mBAAkB,OAAO,YAAY;AAAA,IAC7D;AACA,aAAS,iBAAiB,SAAS,aAAa,EAAE,SAAS,MAAM,CAAC;AAClE,WAAO,MACL,SAAS,oBAAoB,SAAS,aAAa;AAAA,MACjD,SAAS;AAAA,IACX,CAAQ;AAAA,EACZ,GAAG,CAAC,UAAU,WAAW,cAAc,iBAAiB,CAAC;AAKzD,EAAAA,OAAM,UAAU,2BAA2B;AAAA,IACzC;AAAA,IACA;AAAA,EACF,CAAC;AAED,oBAAkB,WAAW,YAAY;AACzC,oBAAkB,QAAQ,SAAS,YAAY;AAE/C,SACE,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,eAAeC,gBAAe,aAAa;AAAA,MAC3C,kBAAkBA,gBAAe,gBAAgB;AAAA,MACjD,uBAAuB;AAAA,MACvB,oBAAoBA,gBAAe,kBAAkB;AAAA;AAAA,IAErD,gBAAAD,OAAA;AAAA,MAACE,WAAU;AAAA,MAAV;AAAA,QACE,GAAG;AAAA,QACJ,KAAK;AAAA,QACL,OAAO,EAAE,UAAU,YAAY,GAAG,eAAe,MAAM;AAAA,QACvD,eAAe,qBAAqB,MAAM,eAAe,CAAC,UAAU;AAClE,gBAAM,cAAc;AACpB,cAAI,MAAM,WAAW,aAAa;AAChC,kBAAM,UAAU,MAAM;AACtB,oBAAQ,kBAAkB,MAAM,SAAS;AACzC,oBAAQ,UAAU,UAAW,sBAAsB;AAGnD,oCAAwB,UACtB,SAAS,KAAK,MAAM;AACtB,qBAAS,KAAK,MAAM,mBAAmB;AACvC,gBAAI,QAAQ;AACV,sBAAQ,SAAS,MAAM,iBAAiB;AAC1C,6BAAiB,KAAK;AAAA,UACxB;AAAA,QACF,CAAC;AAAA,QACD,eAAe;AAAA,UACb,MAAM;AAAA,UACN;AAAA,QACF;AAAA,QACA,aAAa,qBAAqB,MAAM,aAAa,CAAC,UAAU;AAC9D,gBAAM,UAAU,MAAM;AACtB,cAAI,QAAQ,kBAAkB,MAAM,SAAS,GAAG;AAC9C,oBAAQ,sBAAsB,MAAM,SAAS;AAAA,UAC/C;AACA,mBAAS,KAAK,MAAM,mBAClB,wBAAwB;AAC1B,cAAI,QAAQ,SAAU,SAAQ,SAAS,MAAM,iBAAiB;AAC9D,kBAAQ,UAAU;AAAA,QACpB,CAAC;AAAA;AAAA,IACH;AAAA,EACF;AAEJ,CAAC;AAEM,SAAS,oBAAoB,UAAsB,OAAe;AACvE,QAAM,iBAAiBD,gBAAe,QAAQ;AAC9C,QAAM,mBAAmBD,OAAM,OAAO,CAAC;AACvC,EAAAA,OAAM;AAAA,IACJ,MAAM,MAAM,OAAO,aAAa,iBAAiB,OAAO;AAAA,IACxD,CAAC;AAAA,EACH;AACA,SAAOA,OAAM,YAAY,MAAM;AAC7B,WAAO,aAAa,iBAAiB,OAAO;AAC5C,qBAAiB,UAAU,OAAO,WAAW,gBAAgB,KAAK;AAAA,EACpE,GAAG,CAAC,gBAAgB,KAAK,CAAC;AAC5B;AAEA,SAAS,MAAM,OAAgB;AAC7B,SAAO,QAAQ,SAAS,OAAO,EAAE,IAAI;AACvC;AAEO,SAAS,cAAc,cAAsB,aAAqB;AACvE,QAAM,QAAQ,eAAe;AAC7B,SAAO,MAAM,KAAK,IAAI,IAAI;AAC5B;AAEA,SAAS,aAAa,OAAc;AAClC,QAAM,QAAQ,cAAc,MAAM,UAAU,MAAM,OAAO;AACzD,QAAM,mBACJ,MAAM,UAAU,eAAe,MAAM,UAAU;AACjD,QAAM,aAAa,MAAM,UAAU,OAAO,oBAAoB;AAE9D,SAAO,KAAK,IAAI,WAAW,EAAE;AAC/B;AAEA,SAAS,6BACP,YACA,eACA,OACA,MAAiB,OACjB;AACA,QAAM,cAAc,aAAa,KAAK;AACtC,QAAM,cAAc,cAAc;AAClC,QAAM,SAAS,iBAAiB;AAChC,QAAM,qBAAqB,cAAc;AACzC,QAAM,gBAAgB,MAAM,UAAU,eAAe;AACrD,QAAM,gBACJ,MAAM,UAAU,OAAO,MAAM,UAAU,aAAa;AACtD,QAAM,eAAe,MAAM,UAAU,MAAM;AAC3C,QAAM,cACJ,QAAQ,QAAQ,CAAC,GAAG,YAAY,IAAI,CAAC,eAAe,IAAI,CAAC;AAC3D,QAAM,cAAc;AAAA,IAClB,CAAC,eAAe,aAAa;AAAA,IAC7B;AAAA,EACF;AACA,SAAO,YAAY,UAAU;AAC/B;AAEA,SAAS,yBACP,WACA,OACA,MAAiB,OACjB;AACA,QAAM,cAAc,aAAa,KAAK;AACtC,QAAM,mBACJ,MAAM,UAAU,eAAe,MAAM,UAAU;AACjD,QAAM,YAAY,MAAM,UAAU,OAAO;AACzC,QAAM,eAAe,MAAM,UAAU,MAAM;AAC3C,QAAM,cAAc,YAAY;AAChC,QAAM,mBACJ,QAAQ,QAAQ,CAAC,GAAG,YAAY,IAAI,CAAC,eAAe,IAAI,CAAC;AAC3D,QAAM,wBAAwB;AAAA,IAC5B;AAAA,IACA;AAAA,EACF;AACA,QAAM,cAAc,YAAY,CAAC,GAAG,YAAY,GAAG,CAAC,GAAG,WAAW,CAAC;AACnE,SAAO,YAAY,qBAAqB;AAC1C;AAGA,SAAS,YACP,OACA,QACA;AACA,SAAO,CAAC,UAAkB;AACxB,QAAI,MAAM,CAAC,MAAM,MAAM,CAAC,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC,EAAG,QAAO,OAAO,CAAC;AACrE,UAAM,SAAS,OAAO,CAAC,IAAI,OAAO,CAAC,MAAM,MAAM,CAAC,IAAI,MAAM,CAAC;AAC3D,WAAO,OAAO,CAAC,IAAI,SAAS,QAAQ,MAAM,CAAC;AAAA,EAC7C;AACF;AAEA,SAAS,iCACP,WACA,cACA;AACA,SAAO,YAAY,KAAK,YAAY;AACtC;;;AD9qBA,IAAM,mBAAmB;AAGlB,IAAM,CAAC,yBAAyB,qBAAqB,IAC1D,mBAAmB,gBAAgB;AAE9B,IAAM,CAAC,mBAAmB,mBAAmB,IAClD,wBAA0C,cAAc;AAuBnD,IAAM,CAAC,oBAAoB,oBAAoB,IACpD,wBAAgD,gBAAgB;AAYlE,IAAM,aAAmB;AAAA,EACvB,CAAC,OAAqC,iBAAiB;AACrD,UAAM;AAAA,MACJ;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA,kBAAkB;AAAA,MAClB,GAAG;AAAA,IACL,IAAI;AACJ,UAAM,CAAC,YAAY,aAAa,IACxB,gBAAmC,IAAI;AAC/C,UAAM,CAAC,UAAU,WAAW,IACpB,gBAA2C,IAAI;AACvD,UAAM,CAAC,SAAS,UAAU,IAAU,gBAAgC,IAAI;AACxE,UAAM,CAAC,YAAY,aAAa,IACxB,gBAA4C,IAAI;AACxD,UAAM,CAAC,YAAY,aAAa,IACxB,gBAA4C,IAAI;AACxD,UAAM,CAAC,aAAa,cAAc,IAAU,gBAAS,CAAC;AACtD,UAAM,CAAC,cAAc,eAAe,IAAU,gBAAS,CAAC;AACxD,UAAM,CAAC,mBAAmB,oBAAoB,IAAU,gBAAS,KAAK;AACtE,UAAM,CAAC,mBAAmB,oBAAoB,IAAU,gBAAS,KAAK;AACtE,UAAM,eAAeG;AAAA,MAAgB;AAAA,MAAc,CAAC,SAClD,cAAc,IAAI;AAAA,IACpB;AACA,UAAM,YAAY,aAAa,GAAG;AAElC,WACE;AAAA,MAAC;AAAA;AAAA,QACC,OAAO;AAAA,QACP;AAAA,QACA,KAAK;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA,kBAAkB;AAAA,QAClB;AAAA,QACA,iBAAiB;AAAA,QACjB;AAAA,QACA,oBAAoB;AAAA,QACpB;AAAA,QACA,2BAA2B;AAAA,QAC3B;AAAA,QACA,oBAAoB;AAAA,QACpB;AAAA,QACA,2BAA2B;AAAA,QAC3B,qBAAqB;AAAA,QACrB,sBAAsB;AAAA;AAAA,MAEtB;AAAA,QAACC,WAAU;AAAA,QAAV;AAAA,UACC,KAAK;AAAA,UACJ,GAAG;AAAA,UACJ,KAAK;AAAA,UACL,OAAO;AAAA,YACL,UAAU;AAAA;AAAA,YAEV,CAAC,sCAA6C,GAAG,cAAc;AAAA,YAC/D,CAAC,uCAA8C,GAAG,eAAe;AAAA,YACjE,GAAG,MAAM;AAAA,UACX;AAAA;AAAA,MACF;AAAA,IACF;AAAA,EAEJ;AACF;AAEA,WAAW,cAAc;AAIzB,IAAM,OAAO;;;AI9Ib,OAAOC,YAAW;AAClB,SAAS,aAAAC,kBAAiB;AAE1B,SAAS,mBAAAC,wBAAuB;AAEhC,IAAM,gBAAgB;AAOtB,IAAM,qBAAqBC,OAAM,WAG/B,CAAC,OAA6C,iBAAiB;AAC/D,QAAM,EAAE,mBAAmB,UAAU,OAAO,GAAG,cAAc,IAAI;AACjE,QAAM,UAAU,qBAAqB,eAAe,iBAAiB;AACrE,QAAM,MAAMA,OAAM,OAAkC,IAAI;AACxD,QAAM,eAAeD;AAAA,IACnB;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,EACV;AACA,SACE,gBAAAC,OAAA,cAAAA,OAAA,gBAEE,gBAAAA,OAAA;AAAA,IAAC;AAAA;AAAA,MACC,yBAAyB;AAAA,QACvB,QAAQ;AAAA,MACV;AAAA,MACA;AAAA;AAAA,EACF,GACA,gBAAAA,OAAA;AAAA,IAACC,WAAU;AAAA,IAAV;AAAA,MACC,uCAAoC;AAAA,MACnC,GAAG;AAAA,MACJ,KAAK;AAAA,MACL,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAYL,WAAW,QAAQ,oBAAoB,WAAW;AAAA,QAClD,WAAW,QAAQ,oBAAoB,WAAW;AAAA,QAClD,GAAG,MAAM;AAAA,MACX;AAAA;AAAA,IASA,gBAAAD,OAAA;AAAA,MAACC,WAAU;AAAA,MAAV;AAAA,QACC,KAAK,QAAQ;AAAA,QACb,OAAO,EAAE,UAAU,QAAQ,SAAS,QAAQ;AAAA;AAAA,MAE3C;AAAA,IACH;AAAA,EACF,CACF;AAEJ,CAAC;AAED,mBAAmB,cAAc;;;ACxEjC,OAAOC,YAAW;AAOlB,SAAS,YAAAC,iBAAgB;AACzB,SAAS,mBAAAC,wBAAuB;AAChC,SAAS,aAAAC,kBAAiB;AAC1B,SAAS,wBAAAC,6BAA4B;AAKrC,IAAM,aAAa;AAWnB,IAAM,kBAAkBC,OAAM,WAG5B,CAAC,OAA0C,iBAAiB;AAC5D,QAAM,EAAE,YAAY,GAAG,WAAW,IAAI;AACtC,QAAM,mBAAmB;AAAA,IACvB;AAAA,IACA,MAAM;AAAA,EACR;AACA,SACE,gBAAAA,OAAA,cAACC,WAAA,EAAS,SAAS,cAAc,iBAAiB,YAChD,gBAAAD,OAAA,cAAC,uBAAoB,KAAK,cAAe,GAAG,YAAY,CAC1D;AAEJ,CAAC;AAKD,IAAM,sBAAsBA,OAAM,WAGhC,CAAC,OAA8C,iBAAiB;AAChE,QAAM,EAAE,mBAAmB,OAAO,GAAG,WAAW,IAAI;AACpD,QAAM,oBAAoB,qBAAqB,YAAY,iBAAiB;AAC5E,QAAM,mBAAmB,oBAAoB,YAAY,iBAAiB;AAC1E,QAAM,EAAE,sBAAsB,IAAI;AAClC,QAAM,cAAcE;AAAA,IAAgB;AAAA,IAAc,CAAC,SACjD,iBAAiB,cAAc,IAAI;AAAA,EACrC;AACA,QAAM,kCAAkCF,OAAM,OAAmB;AACjE,QAAM,oBAAoB,oBAAoB,MAAM;AAClD,QAAI,gCAAgC,SAAS;AAC3C,sCAAgC,QAAQ;AACxC,sCAAgC,UAAU;AAAA,IAC5C;AAAA,EACF,GAAG,GAAG;AAEN,EAAAA,OAAM,UAAU,MAAM;AACpB,UAAM,WAAW,kBAAkB;AACnC,QAAI,UAAU;AAQZ,YAAM,eAAe,MAAM;AACzB,0BAAkB;AAClB,YAAI,CAAC,gCAAgC,SAAS;AAC5C,gBAAM,WAAW;AAAA,YACf;AAAA,YACA;AAAA,UACF;AACA,0CAAgC,UAAU;AAC1C,gCAAsB;AAAA,QACxB;AAAA,MACF;AACA,4BAAsB;AACtB,eAAS,iBAAiB,UAAU,YAAY;AAChD,aAAO,MAAM,SAAS,oBAAoB,UAAU,YAAY;AAAA,IAClE;AAAA,EACF,GAAG,CAAC,kBAAkB,UAAU,mBAAmB,qBAAqB,CAAC;AAEzE,SACE,gBAAAA,OAAA;AAAA,IAACG,WAAU;AAAA,IAAV;AAAA,MACC,cAAY,iBAAiB,WAAW,YAAY;AAAA,MACnD,GAAG;AAAA,MACJ,KAAK;AAAA,MACL,OAAO;AAAA,QACL,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,GAAG;AAAA,MACL;AAAA,MACA,sBAAsBC;AAAA,QACpB,MAAM;AAAA,QACN,CAAC,UAAU;AACT,gBAAM,QAAQ,MAAM;AACpB,gBAAM,YAAY,MAAM,sBAAsB;AAC9C,gBAAM,IAAI,MAAM,UAAU,UAAU;AACpC,gBAAM,IAAI,MAAM,UAAU,UAAU;AACpC,2BAAiB,mBAAmB,EAAE,GAAG,EAAE,CAAC;AAAA,QAC9C;AAAA,MACF;AAAA,MACA,aAAaA;AAAA,QACX,MAAM;AAAA,QACN,iBAAiB;AAAA,MACnB;AAAA;AAAA,EACF;AAEJ,CAAC;AAED,gBAAgB,cAAc;AAM9B,IAAM,4BAA4B,CAAC,MAAmB,UAAU,MAAM;AAAC,MAAM;AAC3E,MAAI,eAAe,EAAE,MAAM,KAAK,YAAY,KAAK,KAAK,UAAU;AAChE,MAAI,MAAM;AACV,GAAC,SAAS,OAAO;AACf,UAAM,WAAW,EAAE,MAAM,KAAK,YAAY,KAAK,KAAK,UAAU;AAC9D,UAAM,qBAAqB,aAAa,SAAS,SAAS;AAC1D,UAAM,mBAAmB,aAAa,QAAQ,SAAS;AACvD,QAAI,sBAAsB,iBAAkB,SAAQ;AACpD,mBAAe;AACf,UAAM,OAAO,sBAAsB,IAAI;AAAA,EACzC,GAAG;AACH,SAAO,MAAM,OAAO,qBAAqB,GAAG;AAC9C;",
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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@huin-core/react-scroll-area",
3
- "version": "1.0.5",
3
+ "version": "1.0.6",
4
4
  "license": "MIT",
5
5
  "exports": {
6
6
  ".": {