@hanzogui/floating 3.0.6 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (117) hide show
  1. package/dist/cjs/Floating.cjs +7 -5
  2. package/dist/cjs/Floating.native.js +18 -16
  3. package/dist/cjs/Floating.native.js.map +1 -1
  4. package/dist/cjs/index.cjs +28 -26
  5. package/dist/cjs/index.native.js +28 -26
  6. package/dist/cjs/index.native.js.map +1 -1
  7. package/dist/cjs/interactions/PopupTriggerMap.cjs +21 -12
  8. package/dist/cjs/interactions/PopupTriggerMap.native.js +51 -27
  9. package/dist/cjs/interactions/PopupTriggerMap.native.js.map +1 -1
  10. package/dist/cjs/interactions/createFloatingEvents.cjs +21 -12
  11. package/dist/cjs/interactions/createFloatingEvents.native.js +22 -13
  12. package/dist/cjs/interactions/createFloatingEvents.native.js.map +1 -1
  13. package/dist/cjs/interactions/safePolygon.cjs +213 -131
  14. package/dist/cjs/interactions/safePolygon.native.js +182 -103
  15. package/dist/cjs/interactions/safePolygon.native.js.map +1 -1
  16. package/dist/cjs/interactions/types.cjs +7 -5
  17. package/dist/cjs/interactions/types.native.js +7 -5
  18. package/dist/cjs/interactions/types.native.js.map +1 -1
  19. package/dist/cjs/interactions/useClick.cjs +91 -49
  20. package/dist/cjs/interactions/useClick.native.js +96 -54
  21. package/dist/cjs/interactions/useClick.native.js.map +1 -1
  22. package/dist/cjs/interactions/useDelayGroup.cjs +63 -44
  23. package/dist/cjs/interactions/useDelayGroup.native.js +74 -58
  24. package/dist/cjs/interactions/useDelayGroup.native.js.map +1 -1
  25. package/dist/cjs/interactions/useFocus.cjs +73 -44
  26. package/dist/cjs/interactions/useFocus.native.js +75 -49
  27. package/dist/cjs/interactions/useFocus.native.js.map +1 -1
  28. package/dist/cjs/interactions/useHover.cjs +242 -109
  29. package/dist/cjs/interactions/useHover.native.js +268 -143
  30. package/dist/cjs/interactions/useHover.native.js.map +1 -1
  31. package/dist/cjs/interactions/useInnerOffset.cjs +88 -64
  32. package/dist/cjs/interactions/useInnerOffset.native.js +88 -65
  33. package/dist/cjs/interactions/useInnerOffset.native.js.map +1 -1
  34. package/dist/cjs/interactions/useInteractions.cjs +60 -31
  35. package/dist/cjs/interactions/useInteractions.native.js +133 -81
  36. package/dist/cjs/interactions/useInteractions.native.js.map +1 -1
  37. package/dist/cjs/interactions/useListNavigation.cjs +346 -181
  38. package/dist/cjs/interactions/useListNavigation.native.js +350 -214
  39. package/dist/cjs/interactions/useListNavigation.native.js.map +1 -1
  40. package/dist/cjs/interactions/useRole.cjs +83 -73
  41. package/dist/cjs/interactions/useRole.native.js +107 -99
  42. package/dist/cjs/interactions/useRole.native.js.map +1 -1
  43. package/dist/cjs/interactions/useTypeahead.cjs +115 -65
  44. package/dist/cjs/interactions/useTypeahead.native.js +122 -77
  45. package/dist/cjs/interactions/useTypeahead.native.js.map +1 -1
  46. package/dist/cjs/interactions/utils.cjs +68 -38
  47. package/dist/cjs/interactions/utils.native.js +93 -54
  48. package/dist/cjs/interactions/utils.native.js.map +1 -1
  49. package/dist/cjs/middleware/inner.cjs +80 -67
  50. package/dist/cjs/middleware/inner.native.js +87 -76
  51. package/dist/cjs/middleware/inner.native.js.map +1 -1
  52. package/dist/cjs/useFloating.cjs +48 -45
  53. package/dist/cjs/useFloating.native.js +50 -48
  54. package/dist/cjs/useFloating.native.js.map +1 -1
  55. package/dist/esm/Floating.native.js +5 -5
  56. package/dist/esm/Floating.native.js.map +1 -1
  57. package/dist/esm/interactions/PopupTriggerMap.mjs +9 -2
  58. package/dist/esm/interactions/PopupTriggerMap.mjs.map +1 -1
  59. package/dist/esm/interactions/PopupTriggerMap.native.js +39 -17
  60. package/dist/esm/interactions/PopupTriggerMap.native.js.map +1 -1
  61. package/dist/esm/interactions/createFloatingEvents.mjs +9 -2
  62. package/dist/esm/interactions/createFloatingEvents.mjs.map +1 -1
  63. package/dist/esm/interactions/createFloatingEvents.native.js +10 -3
  64. package/dist/esm/interactions/createFloatingEvents.native.js.map +1 -1
  65. package/dist/esm/interactions/safePolygon.mjs +201 -121
  66. package/dist/esm/interactions/safePolygon.mjs.map +1 -1
  67. package/dist/esm/interactions/safePolygon.native.js +170 -93
  68. package/dist/esm/interactions/safePolygon.native.js.map +1 -1
  69. package/dist/esm/interactions/useClick.mjs +79 -39
  70. package/dist/esm/interactions/useClick.mjs.map +1 -1
  71. package/dist/esm/interactions/useClick.native.js +82 -42
  72. package/dist/esm/interactions/useClick.native.js.map +1 -1
  73. package/dist/esm/interactions/useDelayGroup.mjs +39 -22
  74. package/dist/esm/interactions/useDelayGroup.mjs.map +1 -1
  75. package/dist/esm/interactions/useDelayGroup.native.js +42 -28
  76. package/dist/esm/interactions/useDelayGroup.native.js.map +1 -1
  77. package/dist/esm/interactions/useFocus.mjs +59 -32
  78. package/dist/esm/interactions/useFocus.mjs.map +1 -1
  79. package/dist/esm/interactions/useFocus.native.js +61 -37
  80. package/dist/esm/interactions/useFocus.native.js.map +1 -1
  81. package/dist/esm/interactions/useHover.mjs +215 -84
  82. package/dist/esm/interactions/useHover.mjs.map +1 -1
  83. package/dist/esm/interactions/useHover.native.js +240 -117
  84. package/dist/esm/interactions/useHover.native.js.map +1 -1
  85. package/dist/esm/interactions/useInnerOffset.mjs +61 -39
  86. package/dist/esm/interactions/useInnerOffset.mjs.map +1 -1
  87. package/dist/esm/interactions/useInnerOffset.native.js +61 -40
  88. package/dist/esm/interactions/useInnerOffset.native.js.map +1 -1
  89. package/dist/esm/interactions/useInteractions.mjs +48 -21
  90. package/dist/esm/interactions/useInteractions.mjs.map +1 -1
  91. package/dist/esm/interactions/useInteractions.native.js +121 -71
  92. package/dist/esm/interactions/useInteractions.native.js.map +1 -1
  93. package/dist/esm/interactions/useListNavigation.mjs +331 -168
  94. package/dist/esm/interactions/useListNavigation.mjs.map +1 -1
  95. package/dist/esm/interactions/useListNavigation.native.js +335 -201
  96. package/dist/esm/interactions/useListNavigation.native.js.map +1 -1
  97. package/dist/esm/interactions/useRole.mjs +59 -51
  98. package/dist/esm/interactions/useRole.mjs.map +1 -1
  99. package/dist/esm/interactions/useRole.native.js +82 -76
  100. package/dist/esm/interactions/useRole.native.js.map +1 -1
  101. package/dist/esm/interactions/useTypeahead.mjs +100 -52
  102. package/dist/esm/interactions/useTypeahead.mjs.map +1 -1
  103. package/dist/esm/interactions/useTypeahead.native.js +107 -64
  104. package/dist/esm/interactions/useTypeahead.native.js.map +1 -1
  105. package/dist/esm/interactions/utils.mjs +56 -28
  106. package/dist/esm/interactions/utils.mjs.map +1 -1
  107. package/dist/esm/interactions/utils.native.js +81 -44
  108. package/dist/esm/interactions/utils.native.js.map +1 -1
  109. package/dist/esm/middleware/inner.mjs +54 -43
  110. package/dist/esm/middleware/inner.mjs.map +1 -1
  111. package/dist/esm/middleware/inner.native.js +61 -52
  112. package/dist/esm/middleware/inner.native.js.map +1 -1
  113. package/dist/esm/useFloating.mjs +22 -21
  114. package/dist/esm/useFloating.mjs.map +1 -1
  115. package/dist/esm/useFloating.native.js +24 -24
  116. package/dist/esm/useFloating.native.js.map +1 -1
  117. package/package.json +1 -1
@@ -2,100 +2,124 @@ var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf,
6
- __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: !0
11
- });
12
- },
13
- __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
15
16
  get: () => from[key],
16
17
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
18
  });
18
- return to;
19
- };
19
+ }
20
+ return to;
21
+ };
20
22
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
- // If the importer is in node compatibility mode or this is not an ESM
22
- // file that has been converted to a CommonJS file using a Babel-
23
- // compatible transform (i.e. "__esModule" has not been set), then set
24
- // "default" to the CommonJS "module.exports" for node compatibility.
25
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
- value: mod,
27
- enumerable: !0
28
- }) : target, mod)),
29
- __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
- value: !0
31
- }), mod);
23
+ // If the importer is in node compatibility mode or this is not an ESM
24
+ // file that has been converted to a CommonJS file using a Babel-
25
+ // compatible transform (i.e. "__esModule" has not been set), then set
26
+ // "default" to the CommonJS "module.exports" for node compatibility.
27
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
+ value: mod,
29
+ enumerable: true
30
+ }) : target, mod));
31
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
+ value: true
33
+ }), mod);
32
34
  var useInnerOffset_exports = {};
33
35
  __export(useInnerOffset_exports, {
34
36
  useInnerOffset: () => useInnerOffset
35
37
  });
36
38
  module.exports = __toCommonJS(useInnerOffset_exports);
37
- var React = __toESM(require("react"), 1),
38
- ReactDOM = __toESM(require("react-dom"), 1),
39
- import_use_event = require("@hanzogui/use-event");
39
+ var React = __toESM(require("react"), 1);
40
+ var ReactDOM = __toESM(require("react-dom"), 1);
41
+ var import_use_event = require("@hanzogui/use-event");
40
42
  function useInnerOffset(context, props) {
41
43
  const {
42
- open,
43
- elements
44
- } = context,
45
- {
46
- enabled = !0,
47
- overflowRef,
48
- scrollRef,
49
- onChange: unstable_onChange
50
- } = props,
51
- onChange = (0, import_use_event.useEvent)(unstable_onChange),
52
- controlledScrollingRef = React.useRef(!1),
53
- prevScrollTopRef = React.useRef(null),
54
- initialOverflowRef = React.useRef(null);
44
+ open,
45
+ elements
46
+ } = context;
47
+ const {
48
+ enabled = true,
49
+ overflowRef,
50
+ scrollRef,
51
+ onChange: unstable_onChange
52
+ } = props;
53
+ const onChange = (0, import_use_event.useEvent)(unstable_onChange);
54
+ const controlledScrollingRef = React.useRef(false);
55
+ const prevScrollTopRef = React.useRef(null);
56
+ const initialOverflowRef = React.useRef(null);
55
57
  React.useEffect(() => {
56
58
  if (!enabled) return;
57
59
  function onWheel(e) {
58
- if (e.ctrlKey || !el || overflowRef.current == null) return;
59
- const dY = e.deltaY,
60
- isAtTop = overflowRef.current.top >= -0.5,
61
- isAtBottom = overflowRef.current.bottom >= -0.5,
62
- remainingScroll = el.scrollHeight - el.clientHeight,
63
- sign = dY < 0 ? -1 : 1,
64
- method = dY < 0 ? "max" : "min";
65
- el.scrollHeight <= el.clientHeight || (!isAtTop && dY > 0 || !isAtBottom && dY < 0 ? (e.preventDefault(), ReactDOM.flushSync(() => {
66
- onChange(d => d + Math[method](dY, remainingScroll * sign));
67
- })) : /firefox/i.test(navigator.userAgent) && (el.scrollTop += dY));
60
+ if (e.ctrlKey || !el || overflowRef.current == null) {
61
+ return;
62
+ }
63
+ const dY = e.deltaY;
64
+ const isAtTop = overflowRef.current.top >= -0.5;
65
+ const isAtBottom = overflowRef.current.bottom >= -0.5;
66
+ const remainingScroll = el.scrollHeight - el.clientHeight;
67
+ const sign = dY < 0 ? -1 : 1;
68
+ const method = dY < 0 ? "max" : "min";
69
+ if (el.scrollHeight <= el.clientHeight) {
70
+ return;
71
+ }
72
+ if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {
73
+ e.preventDefault();
74
+ ReactDOM.flushSync(() => {
75
+ onChange(d => d + Math[method](dY, remainingScroll * sign));
76
+ });
77
+ } else if (/firefox/i.test(navigator.userAgent)) {
78
+ el.scrollTop += dY;
79
+ }
68
80
  }
69
81
  const el = scrollRef?.current || elements.floating;
70
- if (open && el) return el.addEventListener("wheel", onWheel), requestAnimationFrame(() => {
71
- prevScrollTopRef.current = el.scrollTop, overflowRef.current != null && (initialOverflowRef.current = {
72
- ...overflowRef.current
82
+ if (open && el) {
83
+ el.addEventListener("wheel", onWheel);
84
+ requestAnimationFrame(() => {
85
+ prevScrollTopRef.current = el.scrollTop;
86
+ if (overflowRef.current != null) {
87
+ initialOverflowRef.current = {
88
+ ...overflowRef.current
89
+ };
90
+ }
73
91
  });
74
- }), () => {
75
- prevScrollTopRef.current = null, initialOverflowRef.current = null, el.removeEventListener("wheel", onWheel);
76
- };
92
+ return () => {
93
+ prevScrollTopRef.current = null;
94
+ initialOverflowRef.current = null;
95
+ el.removeEventListener("wheel", onWheel);
96
+ };
97
+ }
77
98
  }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);
78
99
  const floating = React.useMemo(() => ({
79
100
  onKeyDown() {
80
- controlledScrollingRef.current = !0;
101
+ controlledScrollingRef.current = true;
81
102
  },
82
103
  onWheel() {
83
- controlledScrollingRef.current = !1;
104
+ controlledScrollingRef.current = false;
84
105
  },
85
106
  onPointerMove() {
86
- controlledScrollingRef.current = !1;
107
+ controlledScrollingRef.current = false;
87
108
  },
88
109
  onScroll() {
89
110
  const el = scrollRef?.current || elements.floating;
90
- if (!(!overflowRef.current || !el || !controlledScrollingRef.current)) {
91
- if (prevScrollTopRef.current !== null) {
92
- const scrollDiff = el.scrollTop - prevScrollTopRef.current;
93
- (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) && ReactDOM.flushSync(() => onChange(d => d + scrollDiff));
111
+ if (!overflowRef.current || !el || !controlledScrollingRef.current) {
112
+ return;
113
+ }
114
+ if (prevScrollTopRef.current !== null) {
115
+ const scrollDiff = el.scrollTop - prevScrollTopRef.current;
116
+ if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {
117
+ ReactDOM.flushSync(() => onChange(d => d + scrollDiff));
94
118
  }
95
- requestAnimationFrame(() => {
96
- prevScrollTopRef.current = el.scrollTop;
97
- });
98
119
  }
120
+ requestAnimationFrame(() => {
121
+ prevScrollTopRef.current = el.scrollTop;
122
+ });
99
123
  }
100
124
  }), [elements.floating, onChange, overflowRef, scrollRef]);
101
125
  return React.useMemo(() => enabled ? {
@@ -4,108 +4,131 @@ var __create = Object.create;
4
4
  var __defProp = Object.defineProperty;
5
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
7
- var __getProtoOf = Object.getPrototypeOf,
8
- __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __getProtoOf = Object.getPrototypeOf;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
9
  var __export = (target, all) => {
10
- for (var name in all) __defProp(target, name, {
11
- get: all[name],
12
- enumerable: !0
13
- });
14
- },
15
- __copyProps = (to, from, except, desc) => {
16
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
18
  get: () => from[key],
18
19
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
20
  });
20
- return to;
21
- };
21
+ }
22
+ return to;
23
+ };
22
24
  var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
- value: mod,
29
- enumerable: !0
30
- }) : target, mod)),
31
- __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
- value: !0
33
- }), mod);
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
+ value: mod,
31
+ enumerable: true
32
+ }) : target, mod));
33
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
+ value: true
35
+ }), mod);
34
36
  var useInnerOffset_exports = {};
35
37
  __export(useInnerOffset_exports, {
36
38
  useInnerOffset: () => useInnerOffset
37
39
  });
38
40
  module.exports = __toCommonJS(useInnerOffset_exports);
39
- var React = __toESM(require("react"), 1),
40
- ReactDOM = __toESM(require("react-dom"), 1),
41
- import_use_event = require("@hanzogui/use-event");
41
+ var React = __toESM(require("react"), 1);
42
+ var ReactDOM = __toESM(require("react-dom"), 1);
43
+ var import_use_event = require("@hanzogui/use-event");
42
44
  function useInnerOffset(context, props) {
43
45
  var {
44
- open,
45
- elements
46
- } = context,
47
- {
48
- enabled = !0,
49
- overflowRef,
50
- scrollRef,
51
- onChange: unstable_onChange
52
- } = props,
53
- onChange = (0, import_use_event.useEvent)(unstable_onChange),
54
- controlledScrollingRef = React.useRef(!1),
55
- prevScrollTopRef = React.useRef(null),
56
- initialOverflowRef = React.useRef(null);
46
+ open,
47
+ elements
48
+ } = context;
49
+ var {
50
+ enabled = true,
51
+ overflowRef,
52
+ scrollRef,
53
+ onChange: unstable_onChange
54
+ } = props;
55
+ var onChange = (0, import_use_event.useEvent)(unstable_onChange);
56
+ var controlledScrollingRef = React.useRef(false);
57
+ var prevScrollTopRef = React.useRef(null);
58
+ var initialOverflowRef = React.useRef(null);
57
59
  React.useEffect(function () {
58
60
  if (!enabled) return;
59
61
  function onWheel(e) {
60
- if (!(e.ctrlKey || !el || overflowRef.current == null)) {
61
- var dY = e.deltaY,
62
- isAtTop = overflowRef.current.top >= -0.5,
63
- isAtBottom = overflowRef.current.bottom >= -0.5,
64
- remainingScroll = el.scrollHeight - el.clientHeight,
65
- sign = dY < 0 ? -1 : 1,
66
- method = dY < 0 ? "max" : "min";
67
- el.scrollHeight <= el.clientHeight || (!isAtTop && dY > 0 || !isAtBottom && dY < 0 ? (e.preventDefault(), ReactDOM.flushSync(function () {
62
+ if (e.ctrlKey || !el || overflowRef.current == null) {
63
+ return;
64
+ }
65
+ var dY = e.deltaY;
66
+ var isAtTop = overflowRef.current.top >= -0.5;
67
+ var isAtBottom = overflowRef.current.bottom >= -0.5;
68
+ var remainingScroll = el.scrollHeight - el.clientHeight;
69
+ var sign = dY < 0 ? -1 : 1;
70
+ var method = dY < 0 ? "max" : "min";
71
+ if (el.scrollHeight <= el.clientHeight) {
72
+ return;
73
+ }
74
+ if (!isAtTop && dY > 0 || !isAtBottom && dY < 0) {
75
+ e.preventDefault();
76
+ ReactDOM.flushSync(function () {
68
77
  onChange(function (d) {
69
78
  return d + Math[method](dY, remainingScroll * sign);
70
79
  });
71
- })) : /firefox/i.test(navigator.userAgent) && (el.scrollTop += dY));
80
+ });
81
+ } else if (/firefox/i.test(navigator.userAgent)) {
82
+ el.scrollTop += dY;
72
83
  }
73
84
  }
74
- var el = scrollRef?.current || elements.floating;
75
- if (open && el) return el.addEventListener("wheel", onWheel), requestAnimationFrame(function () {
76
- prevScrollTopRef.current = el.scrollTop, overflowRef.current != null && (initialOverflowRef.current = {
77
- ...overflowRef.current
85
+ var el = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || elements.floating;
86
+ if (open && el) {
87
+ el.addEventListener("wheel", onWheel);
88
+ requestAnimationFrame(function () {
89
+ prevScrollTopRef.current = el.scrollTop;
90
+ if (overflowRef.current != null) {
91
+ initialOverflowRef.current = {
92
+ ...overflowRef.current
93
+ };
94
+ }
78
95
  });
79
- }), function () {
80
- prevScrollTopRef.current = null, initialOverflowRef.current = null, el.removeEventListener("wheel", onWheel);
81
- };
96
+ return function () {
97
+ prevScrollTopRef.current = null;
98
+ initialOverflowRef.current = null;
99
+ el.removeEventListener("wheel", onWheel);
100
+ };
101
+ }
82
102
  }, [enabled, open, elements.floating, overflowRef, scrollRef, onChange]);
83
103
  var floating = React.useMemo(function () {
84
104
  return {
85
105
  onKeyDown() {
86
- controlledScrollingRef.current = !0;
106
+ controlledScrollingRef.current = true;
87
107
  },
88
108
  onWheel() {
89
- controlledScrollingRef.current = !1;
109
+ controlledScrollingRef.current = false;
90
110
  },
91
111
  onPointerMove() {
92
- controlledScrollingRef.current = !1;
112
+ controlledScrollingRef.current = false;
93
113
  },
94
114
  onScroll() {
95
- var el = scrollRef?.current || elements.floating;
96
- if (!(!overflowRef.current || !el || !controlledScrollingRef.current)) {
97
- if (prevScrollTopRef.current !== null) {
98
- var scrollDiff = el.scrollTop - prevScrollTopRef.current;
99
- (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) && ReactDOM.flushSync(function () {
115
+ var el = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || elements.floating;
116
+ if (!overflowRef.current || !el || !controlledScrollingRef.current) {
117
+ return;
118
+ }
119
+ if (prevScrollTopRef.current !== null) {
120
+ var scrollDiff = el.scrollTop - prevScrollTopRef.current;
121
+ if (overflowRef.current.bottom < -0.5 && scrollDiff < -1 || overflowRef.current.top < -0.5 && scrollDiff > 1) {
122
+ ReactDOM.flushSync(function () {
100
123
  return onChange(function (d) {
101
124
  return d + scrollDiff;
102
125
  });
103
126
  });
104
127
  }
105
- requestAnimationFrame(function () {
106
- prevScrollTopRef.current = el.scrollTop;
107
- });
108
128
  }
129
+ requestAnimationFrame(function () {
130
+ prevScrollTopRef.current = el.scrollTop;
131
+ });
109
132
  }
110
133
  };
111
134
  }, [elements.floating, onChange, overflowRef, scrollRef]);
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useInnerOffset_exports","__export","useInnerOffset","module","exports","React","__toESM","require","ReactDOM","import_use_event","context","props","open","elements","enabled","overflowRef","scrollRef","onChange","unstable_onChange","useEvent","controlledScrollingRef","useRef","prevScrollTopRef","initialOverflowRef","useEffect","onWheel","e","ctrlKey","el","current","dY","deltaY","isAtTop","top","isAtBottom","bottom","remainingScroll","scrollHeight","clientHeight","sign","method","preventDefault","flushSync","d","Math","test","navigator","userAgent","scrollTop","floating","addEventListener","requestAnimationFrame","removeEventListener","useMemo","onKeyDown","onPointerMove","onScroll","scrollDiff"],"sources":["../../../src/interactions/useInnerOffset.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useInnerOffset_exports","__export","useInnerOffset","module","exports","React","__toESM","require","ReactDOM","import_use_event","context","props","open","elements","enabled","overflowRef","scrollRef","onChange","unstable_onChange","useEvent","controlledScrollingRef","useRef","prevScrollTopRef","initialOverflowRef","useEffect","onWheel","e","ctrlKey","el","current","dY","deltaY","isAtTop","top","isAtBottom","bottom","remainingScroll","scrollHeight","clientHeight","sign","method","preventDefault","flushSync","d","Math","test","navigator","userAgent","scrollTop","floating","addEventListener","requestAnimationFrame","removeEventListener","useMemo","onKeyDown","onPointerMove","onScroll","scrollDiff"],"sources":["../../../src/interactions/useInnerOffset.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -3,20 +3,22 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
3
  var __getOwnPropNames = Object.getOwnPropertyNames;
4
4
  var __hasOwnProp = Object.prototype.hasOwnProperty;
5
5
  var __export = (target, all) => {
6
- for (var name in all) __defProp(target, name, {
7
- get: all[name],
8
- enumerable: !0
9
- });
10
- },
11
- __copyProps = (to, from, except, desc) => {
12
- if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
13
14
  get: () => from[key],
14
15
  enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
16
  });
16
- return to;
17
- };
17
+ }
18
+ return to;
19
+ };
18
20
  var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
- value: !0
21
+ value: true
20
22
  }), mod);
21
23
  var useInteractions_exports = {};
22
24
  __export(useInteractions_exports, {
@@ -24,13 +26,23 @@ __export(useInteractions_exports, {
24
26
  });
25
27
  module.exports = __toCommonJS(useInteractions_exports);
26
28
  function useInteractions(propsList) {
27
- const filtered = propsList.filter(Boolean),
28
- referenceFns = /* @__PURE__ */new Map(),
29
- floatingFns = /* @__PURE__ */new Map(),
30
- itemFns = /* @__PURE__ */new Map(),
31
- referenceStatic = {},
32
- floatingStatic = {};
33
- for (const props of filtered) props.reference && collectProps(props.reference, referenceFns, referenceStatic), props.floating && collectProps(props.floating, floatingFns, floatingStatic), props.item && typeof props.item == "object" && collectProps(props.item, itemFns, {});
29
+ const filtered = propsList.filter(Boolean);
30
+ const referenceFns = /* @__PURE__ */new Map();
31
+ const floatingFns = /* @__PURE__ */new Map();
32
+ const itemFns = /* @__PURE__ */new Map();
33
+ const referenceStatic = {};
34
+ const floatingStatic = {};
35
+ for (const props of filtered) {
36
+ if (props.reference) {
37
+ collectProps(props.reference, referenceFns, referenceStatic);
38
+ }
39
+ if (props.floating) {
40
+ collectProps(props.floating, floatingFns, floatingStatic);
41
+ }
42
+ if (props.item && typeof props.item === "object") {
43
+ collectProps(props.item, itemFns, {});
44
+ }
45
+ }
34
46
  return {
35
47
  getReferenceProps(userProps) {
36
48
  return buildProps(referenceFns, referenceStatic, userProps);
@@ -44,10 +56,18 @@ function useInteractions(propsList) {
44
56
  };
45
57
  }
46
58
  function collectProps(props, fnMap, staticMap) {
47
- for (const key of Object.keys(props)) if (typeof props[key] == "function") {
48
- let arr = fnMap.get(key);
49
- arr || (arr = [], fnMap.set(key, arr)), arr.push(props[key]);
50
- } else staticMap[key] = props[key];
59
+ for (const key of Object.keys(props)) {
60
+ if (typeof props[key] === "function") {
61
+ let arr = fnMap.get(key);
62
+ if (!arr) {
63
+ arr = [];
64
+ fnMap.set(key, arr);
65
+ }
66
+ arr.push(props[key]);
67
+ } else {
68
+ staticMap[key] = props[key];
69
+ }
70
+ }
51
71
  }
52
72
  function buildProps(fnMap, staticProps, userProps) {
53
73
  const result = {
@@ -62,15 +82,24 @@ function buildProps(fnMap, staticProps, userProps) {
62
82
  };
63
83
  result[key] = hookHandler;
64
84
  }
65
- if (userProps) for (const key of Object.keys(userProps)) if (key === "style") result.style = {
66
- ...result.style,
67
- ...userProps.style
68
- };else if (typeof userProps[key] == "function" && result[key]) {
69
- const hookFn = result[key],
70
- userFn = userProps[key];
71
- result[key] = (...args) => {
72
- userFn(...args), hookFn(...args);
73
- };
74
- } else result[key] = userProps[key];
85
+ if (userProps) {
86
+ for (const key of Object.keys(userProps)) {
87
+ if (key === "style") {
88
+ result.style = {
89
+ ...result.style,
90
+ ...userProps.style
91
+ };
92
+ } else if (typeof userProps[key] === "function" && result[key]) {
93
+ const hookFn = result[key];
94
+ const userFn = userProps[key];
95
+ result[key] = (...args) => {
96
+ userFn(...args);
97
+ hookFn(...args);
98
+ };
99
+ } else {
100
+ result[key] = userProps[key];
101
+ }
102
+ }
103
+ }
75
104
  return result;
76
105
  }