@tamagui/floating 2.7.7 → 3.0.0-beta.637.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 (151) hide show
  1. package/dist/cjs/Floating.cjs +10 -11
  2. package/dist/cjs/Floating.native.cjs +37 -0
  3. package/dist/cjs/Floating.native.js +20 -20
  4. package/dist/cjs/Floating.native.js.map +1 -1
  5. package/dist/cjs/index.cjs +45 -46
  6. package/dist/cjs/index.native.cjs +74 -0
  7. package/dist/cjs/index.native.js +45 -45
  8. package/dist/cjs/index.native.js.map +1 -1
  9. package/dist/cjs/interactions/PopupTriggerMap.cjs +36 -39
  10. package/dist/cjs/interactions/PopupTriggerMap.native.cjs +96 -0
  11. package/dist/cjs/interactions/PopupTriggerMap.native.js +76 -75
  12. package/dist/cjs/interactions/PopupTriggerMap.native.js.map +1 -1
  13. package/dist/cjs/interactions/createFloatingEvents.cjs +36 -39
  14. package/dist/cjs/interactions/createFloatingEvents.native.cjs +52 -0
  15. package/dist/cjs/interactions/createFloatingEvents.native.js +39 -41
  16. package/dist/cjs/interactions/createFloatingEvents.native.js.map +1 -1
  17. package/dist/cjs/interactions/safePolygon.cjs +263 -252
  18. package/dist/cjs/interactions/safePolygon.native.cjs +294 -0
  19. package/dist/cjs/interactions/safePolygon.native.js +271 -259
  20. package/dist/cjs/interactions/safePolygon.native.js.map +1 -1
  21. package/dist/cjs/interactions/types.cjs +10 -11
  22. package/dist/cjs/interactions/types.native.cjs +19 -0
  23. package/dist/cjs/interactions/types.native.js +10 -10
  24. package/dist/cjs/interactions/types.native.js.map +1 -1
  25. package/dist/cjs/interactions/useClick.cjs +96 -105
  26. package/dist/cjs/interactions/useClick.native.cjs +122 -0
  27. package/dist/cjs/interactions/useClick.native.js +101 -109
  28. package/dist/cjs/interactions/useClick.native.js.map +1 -1
  29. package/dist/cjs/interactions/useDelayGroup.cjs +86 -91
  30. package/dist/cjs/interactions/useDelayGroup.native.cjs +119 -0
  31. package/dist/cjs/interactions/useDelayGroup.native.js +92 -96
  32. package/dist/cjs/interactions/useDelayGroup.native.js.map +1 -1
  33. package/dist/cjs/interactions/useFocus.cjs +108 -115
  34. package/dist/cjs/interactions/useFocus.native.cjs +131 -0
  35. package/dist/cjs/interactions/useFocus.native.js +114 -120
  36. package/dist/cjs/interactions/useFocus.native.js.map +1 -1
  37. package/dist/cjs/interactions/useHover.cjs +321 -335
  38. package/dist/cjs/interactions/useHover.native.cjs +357 -0
  39. package/dist/cjs/interactions/useHover.native.js +333 -347
  40. package/dist/cjs/interactions/useHover.native.js.map +1 -1
  41. package/dist/cjs/interactions/useInnerOffset.cjs +103 -111
  42. package/dist/cjs/interactions/useInnerOffset.native.cjs +132 -0
  43. package/dist/cjs/interactions/useInnerOffset.native.js +113 -120
  44. package/dist/cjs/interactions/useInnerOffset.native.js.map +1 -1
  45. package/dist/cjs/interactions/useInteractions.cjs +85 -90
  46. package/dist/cjs/interactions/useInteractions.native.cjs +199 -0
  47. package/dist/cjs/interactions/useInteractions.native.js +180 -195
  48. package/dist/cjs/interactions/useInteractions.native.js.map +1 -1
  49. package/dist/cjs/interactions/useListNavigation.cjs +404 -390
  50. package/dist/cjs/interactions/useListNavigation.native.cjs +446 -0
  51. package/dist/cjs/interactions/useListNavigation.native.js +416 -401
  52. package/dist/cjs/interactions/useListNavigation.native.js.map +1 -1
  53. package/dist/cjs/interactions/useRole.cjs +92 -106
  54. package/dist/cjs/interactions/useRole.native.cjs +121 -0
  55. package/dist/cjs/interactions/useRole.native.js +103 -116
  56. package/dist/cjs/interactions/useRole.native.js.map +1 -1
  57. package/dist/cjs/interactions/useTypeahead.cjs +115 -129
  58. package/dist/cjs/interactions/useTypeahead.native.cjs +144 -0
  59. package/dist/cjs/interactions/useTypeahead.native.js +128 -141
  60. package/dist/cjs/interactions/useTypeahead.native.js.map +1 -1
  61. package/dist/cjs/interactions/utils.cjs +126 -143
  62. package/dist/cjs/interactions/utils.native.cjs +209 -0
  63. package/dist/cjs/interactions/utils.native.js +138 -154
  64. package/dist/cjs/interactions/utils.native.js.map +1 -1
  65. package/dist/cjs/middleware/inner.cjs +74 -101
  66. package/dist/cjs/middleware/inner.native.cjs +102 -0
  67. package/dist/cjs/middleware/inner.native.js +83 -109
  68. package/dist/cjs/middleware/inner.native.js.map +1 -1
  69. package/dist/cjs/useFloating.cjs +34 -46
  70. package/dist/cjs/useFloating.native.cjs +56 -0
  71. package/dist/cjs/useFloating.native.js +37 -48
  72. package/dist/cjs/useFloating.native.js.map +1 -1
  73. package/dist/esm/Floating.mjs +1 -2
  74. package/dist/esm/Floating.native.js +6 -4
  75. package/dist/esm/Floating.native.js.map +1 -1
  76. package/dist/esm/index.js +4 -5
  77. package/dist/esm/index.mjs +4 -5
  78. package/dist/esm/index.native.js +4 -5
  79. package/dist/esm/interactions/PopupTriggerMap.mjs +23 -22
  80. package/dist/esm/interactions/PopupTriggerMap.mjs.map +1 -1
  81. package/dist/esm/interactions/PopupTriggerMap.native.js +62 -58
  82. package/dist/esm/interactions/PopupTriggerMap.native.js.map +1 -1
  83. package/dist/esm/interactions/createFloatingEvents.mjs +22 -21
  84. package/dist/esm/interactions/createFloatingEvents.mjs.map +1 -1
  85. package/dist/esm/interactions/createFloatingEvents.native.js +25 -24
  86. package/dist/esm/interactions/createFloatingEvents.native.js.map +1 -1
  87. package/dist/esm/interactions/safePolygon.mjs +250 -234
  88. package/dist/esm/interactions/safePolygon.mjs.map +1 -1
  89. package/dist/esm/interactions/safePolygon.native.js +258 -242
  90. package/dist/esm/interactions/safePolygon.native.js.map +1 -1
  91. package/dist/esm/interactions/types.mjs +0 -2
  92. package/dist/esm/interactions/types.native.js +0 -2
  93. package/dist/esm/interactions/useClick.mjs +83 -87
  94. package/dist/esm/interactions/useClick.mjs.map +1 -1
  95. package/dist/esm/interactions/useClick.native.js +88 -92
  96. package/dist/esm/interactions/useClick.native.js.map +1 -1
  97. package/dist/esm/interactions/useDelayGroup.mjs +68 -65
  98. package/dist/esm/interactions/useDelayGroup.mjs.map +1 -1
  99. package/dist/esm/interactions/useDelayGroup.native.js +74 -71
  100. package/dist/esm/interactions/useDelayGroup.native.js.map +1 -1
  101. package/dist/esm/interactions/useFocus.mjs +95 -97
  102. package/dist/esm/interactions/useFocus.mjs.map +1 -1
  103. package/dist/esm/interactions/useFocus.native.js +101 -103
  104. package/dist/esm/interactions/useFocus.native.js.map +1 -1
  105. package/dist/esm/interactions/useHover.mjs +304 -310
  106. package/dist/esm/interactions/useHover.mjs.map +1 -1
  107. package/dist/esm/interactions/useHover.native.js +316 -323
  108. package/dist/esm/interactions/useHover.native.js.map +1 -1
  109. package/dist/esm/interactions/useInnerOffset.mjs +87 -85
  110. package/dist/esm/interactions/useInnerOffset.mjs.map +1 -1
  111. package/dist/esm/interactions/useInnerOffset.native.js +97 -95
  112. package/dist/esm/interactions/useInnerOffset.native.js.map +1 -1
  113. package/dist/esm/interactions/useInteractions.mjs +71 -72
  114. package/dist/esm/interactions/useInteractions.mjs.map +1 -1
  115. package/dist/esm/interactions/useInteractions.native.js +166 -178
  116. package/dist/esm/interactions/useInteractions.native.js.map +1 -1
  117. package/dist/esm/interactions/useListNavigation.mjs +392 -373
  118. package/dist/esm/interactions/useListNavigation.mjs.map +1 -1
  119. package/dist/esm/interactions/useListNavigation.native.js +404 -385
  120. package/dist/esm/interactions/useListNavigation.native.js.map +1 -1
  121. package/dist/esm/interactions/useRole.mjs +76 -80
  122. package/dist/esm/interactions/useRole.mjs.map +1 -1
  123. package/dist/esm/interactions/useRole.native.js +87 -91
  124. package/dist/esm/interactions/useRole.native.js.map +1 -1
  125. package/dist/esm/interactions/useTypeahead.mjs +102 -111
  126. package/dist/esm/interactions/useTypeahead.mjs.map +1 -1
  127. package/dist/esm/interactions/useTypeahead.native.js +115 -124
  128. package/dist/esm/interactions/useTypeahead.native.js.map +1 -1
  129. package/dist/esm/interactions/utils.mjs +91 -106
  130. package/dist/esm/interactions/utils.mjs.map +1 -1
  131. package/dist/esm/interactions/utils.native.js +103 -118
  132. package/dist/esm/interactions/utils.native.js.map +1 -1
  133. package/dist/esm/middleware/inner.mjs +58 -75
  134. package/dist/esm/middleware/inner.mjs.map +1 -1
  135. package/dist/esm/middleware/inner.native.js +67 -84
  136. package/dist/esm/middleware/inner.native.js.map +1 -1
  137. package/dist/esm/useFloating.mjs +17 -21
  138. package/dist/esm/useFloating.mjs.map +1 -1
  139. package/dist/esm/useFloating.native.js +19 -23
  140. package/dist/esm/useFloating.native.js.map +1 -1
  141. package/package.json +6 -5
  142. package/types/interactions/PopupTriggerMap.d.ts.map +1 -1
  143. package/types/interactions/useInteractions.d.ts.map +1 -1
  144. package/types/middleware/inner.d.ts.map +1 -1
  145. package/types/useFloating.d.ts.map +1 -1
  146. package/dist/esm/Floating.mjs.map +0 -1
  147. package/dist/esm/index.js.map +0 -1
  148. package/dist/esm/index.mjs.map +0 -1
  149. package/dist/esm/index.native.js.map +0 -1
  150. package/dist/esm/interactions/types.mjs.map +0 -1
  151. package/dist/esm/interactions/types.native.js.map +0 -1
@@ -0,0 +1,294 @@
1
+ "use strict";
2
+
3
+
4
+ var __defProp = Object.defineProperty;
5
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
6
+ var __getOwnPropNames = Object.getOwnPropertyNames;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
13
+ };
14
+ var __copyProps = (to, from, except, desc) => {
15
+ if (from && typeof from === "object" || typeof from === "function") {
16
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
17
+ get: () => from[key],
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
24
+ var safePolygon_exports = {};
25
+ __export(safePolygon_exports, { safePolygon: () => safePolygon });
26
+ module.exports = __toCommonJS(safePolygon_exports);
27
+ var import_utils = require("./utils.native.js");
28
+ function isPointInPolygon(point, polygon) {
29
+ var [x, y] = point;
30
+ var isInside2 = false;
31
+ var length = polygon.length;
32
+ for (var i = 0, j = length - 1; i < length; j = i++) {
33
+ var [xi, yi] = polygon[i] || [0, 0];
34
+ var [xj, yj] = polygon[j] || [0, 0];
35
+ var intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;
36
+ if (intersect) {
37
+ isInside2 = !isInside2;
38
+ }
39
+ }
40
+ return isInside2;
41
+ }
42
+ function isInside(point, rect) {
43
+ return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;
44
+ }
45
+ var debugSvg = null;
46
+ function debugDrawPolygon(polygon, trough, cursor, anchor) {
47
+ if (!debugSvg) {
48
+ debugSvg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
49
+ debugSvg.id = "__safe-polygon-debug";
50
+ Object.assign(debugSvg.style, {
51
+ position: "fixed",
52
+ inset: "0",
53
+ width: "100vw",
54
+ height: "100vh",
55
+ pointerEvents: "none",
56
+ zIndex: "999999"
57
+ });
58
+ document.body.appendChild(debugSvg);
59
+ }
60
+ debugSvg.innerHTML = "";
61
+ if (trough.length) {
62
+ var troughEl = document.createElementNS("http://www.w3.org/2000/svg", "polygon");
63
+ troughEl.setAttribute("points", trough.map(function(p) {
64
+ return p.join(",");
65
+ }).join(" "));
66
+ troughEl.setAttribute("fill", "rgba(0,100,255,0.15)");
67
+ troughEl.setAttribute("stroke", "rgba(0,100,255,0.6)");
68
+ troughEl.setAttribute("stroke-width", "1");
69
+ debugSvg.appendChild(troughEl);
70
+ }
71
+ if (polygon.length) {
72
+ var polyEl = document.createElementNS("http://www.w3.org/2000/svg", "polygon");
73
+ polyEl.setAttribute("points", polygon.map(function(p) {
74
+ return p.join(",");
75
+ }).join(" "));
76
+ polyEl.setAttribute("fill", "rgba(255,50,50,0.2)");
77
+ polyEl.setAttribute("stroke", "rgba(255,50,50,0.8)");
78
+ polyEl.setAttribute("stroke-width", "1.5");
79
+ debugSvg.appendChild(polyEl);
80
+ }
81
+ var anchorCircle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
82
+ anchorCircle.setAttribute("cx", String(anchor[0]));
83
+ anchorCircle.setAttribute("cy", String(anchor[1]));
84
+ anchorCircle.setAttribute("r", "5");
85
+ anchorCircle.setAttribute("fill", "lime");
86
+ anchorCircle.setAttribute("stroke", "darkgreen");
87
+ anchorCircle.setAttribute("stroke-width", "1.5");
88
+ debugSvg.appendChild(anchorCircle);
89
+ var cursorCircle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
90
+ cursorCircle.setAttribute("cx", String(cursor[0]));
91
+ cursorCircle.setAttribute("cy", String(cursor[1]));
92
+ cursorCircle.setAttribute("r", "4");
93
+ cursorCircle.setAttribute("fill", "yellow");
94
+ cursorCircle.setAttribute("stroke", "orange");
95
+ cursorCircle.setAttribute("stroke-width", "1.5");
96
+ debugSvg.appendChild(cursorCircle);
97
+ }
98
+ function debugClear() {
99
+ if (debugSvg) {
100
+ debugSvg.remove();
101
+ debugSvg = null;
102
+ }
103
+ }
104
+ function safePolygon() {
105
+ var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
106
+ var { buffer = .5, blockPointerEvents = false, requireIntent = true, __debug = false } = options;
107
+ var timeoutRef = { current: -1 };
108
+ var hasLanded = false;
109
+ var lastX = null;
110
+ var lastY = null;
111
+ var lastCursorTime = typeof performance !== "undefined" ? performance.now() : 0;
112
+ function getCursorSpeed(x, y) {
113
+ var currentTime = performance.now();
114
+ var elapsedTime = currentTime - lastCursorTime;
115
+ if (lastX === null || lastY === null || elapsedTime === 0) {
116
+ lastX = x;
117
+ lastY = y;
118
+ lastCursorTime = currentTime;
119
+ return null;
120
+ }
121
+ var deltaX = x - lastX;
122
+ var deltaY = y - lastY;
123
+ var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
124
+ var speed = distance / elapsedTime;
125
+ lastX = x;
126
+ lastY = y;
127
+ lastCursorTime = currentTime;
128
+ return speed;
129
+ }
130
+ var fn = function(param) {
131
+ var { x, y, placement, elements, onClose } = param;
132
+ hasLanded = false;
133
+ lastX = null;
134
+ lastY = null;
135
+ return function onMouseMove(event) {
136
+ function close() {
137
+ (0, import_utils.clearTimeoutIfSet)(timeoutRef);
138
+ onClose();
139
+ }
140
+ (0, import_utils.clearTimeoutIfSet)(timeoutRef);
141
+ var _elements_domReference;
142
+ var domReference = (_elements_domReference = elements.domReference) !== null && _elements_domReference !== void 0 ? _elements_domReference : elements.reference;
143
+ if (!domReference || !elements.floating || placement == null || x == null || y == null) {
144
+ return;
145
+ }
146
+ var { clientX, clientY } = event;
147
+ var clientPoint = [clientX, clientY];
148
+ var target = (0, import_utils.getTarget)(event);
149
+ var isLeave = event.type === "mouseleave";
150
+ var isOverFloatingEl = (0, import_utils.contains)(elements.floating, target);
151
+ var isOverReferenceEl = (0, import_utils.contains)(domReference, target);
152
+ var refRect = domReference.getBoundingClientRect();
153
+ var rect = elements.floating.getBoundingClientRect();
154
+ var side = placement.split("-")[0];
155
+ var cursorLeaveFromRight = x > rect.right - rect.width / 2;
156
+ var cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;
157
+ var isOverReferenceRect = isInside(clientPoint, refRect);
158
+ var isFloatingWider = rect.width > refRect.width;
159
+ var isFloatingTaller = rect.height > refRect.height;
160
+ var left = (isFloatingWider ? refRect : rect).left;
161
+ var right = (isFloatingWider ? refRect : rect).right;
162
+ var top = (isFloatingTaller ? refRect : rect).top;
163
+ var bottom = (isFloatingTaller ? refRect : rect).bottom;
164
+ if (isOverFloatingEl) {
165
+ hasLanded = true;
166
+ if (!isLeave) {
167
+ return;
168
+ }
169
+ }
170
+ if (isOverReferenceEl) {
171
+ hasLanded = false;
172
+ }
173
+ if (isOverReferenceEl && !isLeave) {
174
+ hasLanded = true;
175
+ return;
176
+ }
177
+ if (!isOverReferenceEl && isOverReferenceRect && !isLeave) {
178
+ return;
179
+ }
180
+ if (isLeave && event.relatedTarget && (0, import_utils.contains)(elements.floating, event.relatedTarget)) {
181
+ return;
182
+ }
183
+ if (side === "top" && y >= refRect.bottom - 1 || side === "bottom" && y <= refRect.top + 1 || side === "left" && x >= refRect.right - 1 || side === "right" && x <= refRect.left + 1) {
184
+ return close();
185
+ }
186
+ var rectPoly = [];
187
+ switch (side) {
188
+ case "top":
189
+ rectPoly = [
190
+ [left, refRect.top + 1],
191
+ [left, rect.bottom - 1],
192
+ [right, rect.bottom - 1],
193
+ [right, refRect.top + 1]
194
+ ];
195
+ break;
196
+ case "bottom":
197
+ rectPoly = [
198
+ [left, rect.top + 1],
199
+ [left, refRect.bottom - 1],
200
+ [right, refRect.bottom - 1],
201
+ [right, rect.top + 1]
202
+ ];
203
+ break;
204
+ case "left":
205
+ rectPoly = [
206
+ [rect.right - 1, bottom],
207
+ [rect.right - 1, top],
208
+ [refRect.left + 1, top],
209
+ [refRect.left + 1, bottom]
210
+ ];
211
+ break;
212
+ case "right":
213
+ rectPoly = [
214
+ [refRect.right - 1, bottom],
215
+ [refRect.right - 1, top],
216
+ [rect.left + 1, top],
217
+ [rect.left + 1, bottom]
218
+ ];
219
+ break;
220
+ }
221
+ function getPolygon(param2) {
222
+ var [x2, y2] = param2;
223
+ switch (side) {
224
+ case "top": {
225
+ var cursorPointOne = [isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 + buffer + 1];
226
+ var cursorPointTwo = [isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 + buffer + 1];
227
+ var commonPoints = [[rect.left, cursorLeaveFromRight ? rect.bottom - buffer : isFloatingWider ? rect.bottom - buffer : rect.top], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.bottom - buffer : rect.top : rect.bottom - buffer]];
228
+ return [
229
+ cursorPointOne,
230
+ cursorPointTwo,
231
+ ...commonPoints
232
+ ];
233
+ }
234
+ case "bottom": {
235
+ var cursorPointOne1 = [isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 - buffer];
236
+ var cursorPointTwo1 = [isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 - buffer];
237
+ var commonPoints1 = [[rect.left, cursorLeaveFromRight ? rect.top + buffer : isFloatingWider ? rect.top + buffer : rect.bottom], [rect.right, cursorLeaveFromRight ? isFloatingWider ? rect.top + buffer : rect.bottom : rect.top + buffer]];
238
+ return [
239
+ cursorPointOne1,
240
+ cursorPointTwo1,
241
+ ...commonPoints1
242
+ ];
243
+ }
244
+ case "left": {
245
+ var cursorPointOne2 = [x2 + buffer + 1, isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
246
+ var cursorPointTwo2 = [x2 + buffer + 1, isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
247
+ var commonPoints2 = [[cursorLeaveFromBottom ? rect.right - buffer : isFloatingTaller ? rect.right - buffer : rect.left, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.right - buffer : rect.left : rect.right - buffer, rect.bottom]];
248
+ return [
249
+ ...commonPoints2,
250
+ cursorPointOne2,
251
+ cursorPointTwo2
252
+ ];
253
+ }
254
+ case "right": {
255
+ var cursorPointOne3 = [x2 - buffer, isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
256
+ var cursorPointTwo3 = [x2 - buffer, isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
257
+ var commonPoints3 = [[cursorLeaveFromBottom ? rect.left + buffer : isFloatingTaller ? rect.left + buffer : rect.right, rect.top], [cursorLeaveFromBottom ? isFloatingTaller ? rect.left + buffer : rect.right : rect.left + buffer, rect.bottom]];
258
+ return [
259
+ cursorPointOne3,
260
+ cursorPointTwo3,
261
+ ...commonPoints3
262
+ ];
263
+ }
264
+ }
265
+ }
266
+ var poly = getPolygon([x, y]);
267
+ if (__debug) {
268
+ debugDrawPolygon(poly, rectPoly, clientPoint, [x, y]);
269
+ }
270
+ if (isPointInPolygon([clientX, clientY], rectPoly)) {
271
+ return;
272
+ }
273
+ if (hasLanded && !isOverReferenceRect) {
274
+ if (__debug) debugClear();
275
+ return close();
276
+ }
277
+ if (isPointInPolygon([clientX, clientY], poly)) {
278
+ return;
279
+ }
280
+ if (!isLeave && requireIntent) {
281
+ var cursorSpeed = getCursorSpeed(clientX, clientY);
282
+ var cursorSpeedThreshold = .1;
283
+ if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {
284
+ if (__debug) debugClear();
285
+ return close();
286
+ }
287
+ }
288
+ if (__debug) debugClear();
289
+ close();
290
+ };
291
+ };
292
+ fn.__options = { blockPointerEvents };
293
+ return fn;
294
+ }