@hanzogui/floating 8.3.0 → 8.3.2

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 (277) hide show
  1. package/dist/cjs/Floating.js +5 -0
  2. package/dist/cjs/Floating.js.map +1 -0
  3. package/dist/cjs/index.js +57 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/interactions/PopupTriggerMap.js +33 -0
  6. package/dist/cjs/interactions/PopupTriggerMap.js.map +1 -0
  7. package/dist/cjs/interactions/createFloatingEvents.js +31 -0
  8. package/dist/cjs/interactions/createFloatingEvents.js.map +1 -0
  9. package/dist/cjs/interactions/safePolygon.js +435 -0
  10. package/dist/cjs/interactions/safePolygon.js.map +1 -0
  11. package/dist/cjs/interactions/types.js +3 -0
  12. package/dist/cjs/interactions/types.js.map +1 -0
  13. package/dist/cjs/interactions/useClick.js +118 -0
  14. package/dist/cjs/interactions/useClick.js.map +1 -0
  15. package/dist/cjs/interactions/useDelayGroup.js +84 -0
  16. package/dist/cjs/interactions/useDelayGroup.js.map +1 -0
  17. package/dist/cjs/interactions/useFocus.js +118 -0
  18. package/dist/cjs/interactions/useFocus.js.map +1 -0
  19. package/dist/cjs/interactions/useHover.js +357 -0
  20. package/dist/cjs/interactions/useHover.js.map +1 -0
  21. package/dist/cjs/interactions/useInnerOffset.js +92 -0
  22. package/dist/cjs/interactions/useInnerOffset.js.map +1 -0
  23. package/dist/cjs/interactions/useInteractions.js +88 -0
  24. package/dist/cjs/interactions/useInteractions.js.map +1 -0
  25. package/dist/cjs/interactions/useListNavigation.js +447 -0
  26. package/dist/cjs/interactions/useListNavigation.js.map +1 -0
  27. package/dist/cjs/interactions/useRole.js +69 -0
  28. package/dist/cjs/interactions/useRole.js.map +1 -0
  29. package/dist/cjs/interactions/useTypeahead.js +121 -0
  30. package/dist/cjs/interactions/useTypeahead.js.map +1 -0
  31. package/dist/cjs/interactions/utils.js +200 -0
  32. package/dist/cjs/interactions/utils.js.map +1 -0
  33. package/dist/cjs/middleware/inner.js +82 -0
  34. package/dist/cjs/middleware/inner.js.map +1 -0
  35. package/dist/cjs/package.json +1 -0
  36. package/dist/cjs/useFloating.js +29 -0
  37. package/dist/cjs/useFloating.js.map +1 -0
  38. package/dist/esm/Floating.js +2 -0
  39. package/dist/esm/Floating.js.map +1 -0
  40. package/dist/esm/index.js +23 -18
  41. package/dist/esm/index.js.map +1 -1
  42. package/dist/esm/interactions/PopupTriggerMap.js +29 -0
  43. package/dist/esm/interactions/PopupTriggerMap.js.map +1 -0
  44. package/dist/esm/interactions/createFloatingEvents.js +28 -0
  45. package/dist/esm/interactions/createFloatingEvents.js.map +1 -0
  46. package/dist/esm/interactions/safePolygon.js +432 -0
  47. package/dist/esm/interactions/safePolygon.js.map +1 -0
  48. package/dist/esm/interactions/types.js +2 -0
  49. package/dist/esm/interactions/types.js.map +1 -0
  50. package/dist/esm/interactions/useClick.js +115 -0
  51. package/dist/esm/interactions/useClick.js.map +1 -0
  52. package/dist/esm/interactions/useDelayGroup.js +78 -0
  53. package/dist/esm/interactions/useDelayGroup.js.map +1 -0
  54. package/dist/esm/interactions/useFocus.js +115 -0
  55. package/dist/esm/interactions/useFocus.js.map +1 -0
  56. package/dist/esm/interactions/useHover.js +352 -0
  57. package/dist/esm/interactions/useHover.js.map +1 -0
  58. package/dist/esm/interactions/useInnerOffset.js +88 -0
  59. package/dist/esm/interactions/useInnerOffset.js.map +1 -0
  60. package/dist/esm/interactions/useInteractions.js +85 -0
  61. package/dist/esm/interactions/useInteractions.js.map +1 -0
  62. package/dist/esm/interactions/useListNavigation.js +444 -0
  63. package/dist/esm/interactions/useListNavigation.js.map +1 -0
  64. package/dist/esm/interactions/useRole.js +65 -0
  65. package/dist/esm/interactions/useRole.js.map +1 -0
  66. package/dist/esm/interactions/useTypeahead.js +118 -0
  67. package/dist/esm/interactions/useTypeahead.js.map +1 -0
  68. package/dist/esm/interactions/utils.js +176 -0
  69. package/dist/esm/interactions/utils.js.map +1 -0
  70. package/dist/esm/middleware/inner.js +77 -0
  71. package/dist/esm/middleware/inner.js.map +1 -0
  72. package/dist/esm/useFloating.js +24 -0
  73. package/dist/esm/useFloating.js.map +1 -0
  74. package/dist/native/Floating.js +5 -0
  75. package/dist/native/Floating.js.map +1 -0
  76. package/dist/native/index.js +23 -0
  77. package/dist/native/index.js.map +1 -0
  78. package/dist/native/interactions/PopupTriggerMap.js +29 -0
  79. package/dist/native/interactions/PopupTriggerMap.js.map +1 -0
  80. package/dist/native/interactions/createFloatingEvents.js +28 -0
  81. package/dist/native/interactions/createFloatingEvents.js.map +1 -0
  82. package/dist/native/interactions/safePolygon.js +432 -0
  83. package/dist/native/interactions/safePolygon.js.map +1 -0
  84. package/dist/native/interactions/types.js +2 -0
  85. package/dist/native/interactions/types.js.map +1 -0
  86. package/dist/native/interactions/useClick.js +115 -0
  87. package/dist/native/interactions/useClick.js.map +1 -0
  88. package/dist/native/interactions/useDelayGroup.js +78 -0
  89. package/dist/native/interactions/useDelayGroup.js.map +1 -0
  90. package/dist/native/interactions/useFocus.js +115 -0
  91. package/dist/native/interactions/useFocus.js.map +1 -0
  92. package/dist/native/interactions/useHover.js +352 -0
  93. package/dist/native/interactions/useHover.js.map +1 -0
  94. package/dist/native/interactions/useInnerOffset.js +88 -0
  95. package/dist/native/interactions/useInnerOffset.js.map +1 -0
  96. package/dist/native/interactions/useInteractions.js +85 -0
  97. package/dist/native/interactions/useInteractions.js.map +1 -0
  98. package/dist/native/interactions/useListNavigation.js +444 -0
  99. package/dist/native/interactions/useListNavigation.js.map +1 -0
  100. package/dist/native/interactions/useRole.js +65 -0
  101. package/dist/native/interactions/useRole.js.map +1 -0
  102. package/dist/native/interactions/useTypeahead.js +118 -0
  103. package/dist/native/interactions/useTypeahead.js.map +1 -0
  104. package/dist/native/interactions/utils.js +176 -0
  105. package/dist/native/interactions/utils.js.map +1 -0
  106. package/dist/native/middleware/inner.js +77 -0
  107. package/dist/native/middleware/inner.js.map +1 -0
  108. package/dist/native/useFloating.js +24 -0
  109. package/dist/native/useFloating.js.map +1 -0
  110. package/package.json +16 -16
  111. package/src/index.ts +18 -18
  112. package/src/interactions/safePolygon.ts +2 -2
  113. package/src/interactions/types.ts +2 -2
  114. package/src/interactions/useClick.ts +2 -2
  115. package/src/interactions/useDelayGroup.ts +1 -1
  116. package/src/interactions/useFocus.ts +2 -2
  117. package/src/interactions/useHover.ts +2 -2
  118. package/src/interactions/useInnerOffset.ts +1 -1
  119. package/src/interactions/useInteractions.ts +1 -1
  120. package/src/interactions/useListNavigation.ts +2 -2
  121. package/src/interactions/useRole.ts +1 -1
  122. package/src/interactions/useTypeahead.ts +6 -2
  123. package/src/useFloating.tsx +2 -2
  124. package/types/index.d.ts +18 -18
  125. package/types/index.d.ts.map +1 -1
  126. package/types/interactions/PopupTriggerMap.d.ts.map +1 -1
  127. package/types/interactions/safePolygon.d.ts +1 -1
  128. package/types/interactions/safePolygon.d.ts.map +1 -1
  129. package/types/interactions/types.d.ts +2 -2
  130. package/types/interactions/types.d.ts.map +1 -1
  131. package/types/interactions/useClick.d.ts +1 -1
  132. package/types/interactions/useClick.d.ts.map +1 -1
  133. package/types/interactions/useDelayGroup.d.ts +1 -1
  134. package/types/interactions/useDelayGroup.d.ts.map +1 -1
  135. package/types/interactions/useFocus.d.ts +1 -1
  136. package/types/interactions/useFocus.d.ts.map +1 -1
  137. package/types/interactions/useHover.d.ts +1 -1
  138. package/types/interactions/useHover.d.ts.map +1 -1
  139. package/types/interactions/useInnerOffset.d.ts +1 -1
  140. package/types/interactions/useInnerOffset.d.ts.map +1 -1
  141. package/types/interactions/useInteractions.d.ts +1 -1
  142. package/types/interactions/useInteractions.d.ts.map +1 -1
  143. package/types/interactions/useListNavigation.d.ts +1 -1
  144. package/types/interactions/useListNavigation.d.ts.map +1 -1
  145. package/types/interactions/useRole.d.ts +1 -1
  146. package/types/interactions/useRole.d.ts.map +1 -1
  147. package/types/interactions/useTypeahead.d.ts +1 -1
  148. package/types/interactions/useTypeahead.d.ts.map +1 -1
  149. package/types/middleware/inner.d.ts.map +1 -1
  150. package/types/useFloating.d.ts +2 -2
  151. package/types/useFloating.d.ts.map +1 -1
  152. package/dist/cjs/Floating.cjs +0 -20
  153. package/dist/cjs/Floating.native.js +0 -39
  154. package/dist/cjs/Floating.native.js.map +0 -1
  155. package/dist/cjs/index.cjs +0 -73
  156. package/dist/cjs/index.native.js +0 -76
  157. package/dist/cjs/index.native.js.map +0 -1
  158. package/dist/cjs/interactions/PopupTriggerMap.cjs +0 -49
  159. package/dist/cjs/interactions/PopupTriggerMap.native.js +0 -97
  160. package/dist/cjs/interactions/PopupTriggerMap.native.js.map +0 -1
  161. package/dist/cjs/interactions/createFloatingEvents.cjs +0 -50
  162. package/dist/cjs/interactions/createFloatingEvents.native.js +0 -56
  163. package/dist/cjs/interactions/createFloatingEvents.native.js.map +0 -1
  164. package/dist/cjs/interactions/safePolygon.cjs +0 -273
  165. package/dist/cjs/interactions/safePolygon.native.js +0 -284
  166. package/dist/cjs/interactions/safePolygon.native.js.map +0 -1
  167. package/dist/cjs/interactions/types.cjs +0 -18
  168. package/dist/cjs/interactions/types.native.js +0 -21
  169. package/dist/cjs/interactions/types.native.js.map +0 -1
  170. package/dist/cjs/interactions/useClick.cjs +0 -124
  171. package/dist/cjs/interactions/useClick.native.js +0 -132
  172. package/dist/cjs/interactions/useClick.native.js.map +0 -1
  173. package/dist/cjs/interactions/useDelayGroup.cjs +0 -115
  174. package/dist/cjs/interactions/useDelayGroup.native.js +0 -125
  175. package/dist/cjs/interactions/useDelayGroup.native.js.map +0 -1
  176. package/dist/cjs/interactions/useFocus.cjs +0 -130
  177. package/dist/cjs/interactions/useFocus.native.js +0 -139
  178. package/dist/cjs/interactions/useFocus.native.js.map +0 -1
  179. package/dist/cjs/interactions/useHover.cjs +0 -357
  180. package/dist/cjs/interactions/useHover.native.js +0 -373
  181. package/dist/cjs/interactions/useHover.native.js.map +0 -1
  182. package/dist/cjs/interactions/useInnerOffset.cjs +0 -128
  183. package/dist/cjs/interactions/useInnerOffset.native.js +0 -141
  184. package/dist/cjs/interactions/useInnerOffset.native.js.map +0 -1
  185. package/dist/cjs/interactions/useInteractions.cjs +0 -105
  186. package/dist/cjs/interactions/useInteractions.native.js +0 -216
  187. package/dist/cjs/interactions/useInteractions.native.js.map +0 -1
  188. package/dist/cjs/interactions/useListNavigation.cjs +0 -418
  189. package/dist/cjs/interactions/useListNavigation.native.js +0 -433
  190. package/dist/cjs/interactions/useListNavigation.native.js.map +0 -1
  191. package/dist/cjs/interactions/useRole.cjs +0 -122
  192. package/dist/cjs/interactions/useRole.native.js +0 -136
  193. package/dist/cjs/interactions/useRole.native.js.map +0 -1
  194. package/dist/cjs/interactions/useTypeahead.cjs +0 -143
  195. package/dist/cjs/interactions/useTypeahead.native.js +0 -159
  196. package/dist/cjs/interactions/useTypeahead.native.js.map +0 -1
  197. package/dist/cjs/interactions/utils.cjs +0 -208
  198. package/dist/cjs/interactions/utils.native.js +0 -227
  199. package/dist/cjs/interactions/utils.native.js.map +0 -1
  200. package/dist/cjs/middleware/inner.cjs +0 -118
  201. package/dist/cjs/middleware/inner.native.js +0 -130
  202. package/dist/cjs/middleware/inner.native.js.map +0 -1
  203. package/dist/cjs/useFloating.cjs +0 -64
  204. package/dist/cjs/useFloating.native.js +0 -69
  205. package/dist/cjs/useFloating.native.js.map +0 -1
  206. package/dist/esm/Floating.mjs +0 -2
  207. package/dist/esm/Floating.mjs.map +0 -1
  208. package/dist/esm/Floating.native.js +0 -8
  209. package/dist/esm/Floating.native.js.map +0 -1
  210. package/dist/esm/index.mjs +0 -18
  211. package/dist/esm/index.mjs.map +0 -1
  212. package/dist/esm/index.native.js +0 -18
  213. package/dist/esm/index.native.js.map +0 -1
  214. package/dist/esm/interactions/PopupTriggerMap.mjs +0 -24
  215. package/dist/esm/interactions/PopupTriggerMap.mjs.map +0 -1
  216. package/dist/esm/interactions/PopupTriggerMap.native.js +0 -69
  217. package/dist/esm/interactions/PopupTriggerMap.native.js.map +0 -1
  218. package/dist/esm/interactions/createFloatingEvents.mjs +0 -25
  219. package/dist/esm/interactions/createFloatingEvents.mjs.map +0 -1
  220. package/dist/esm/interactions/createFloatingEvents.native.js +0 -28
  221. package/dist/esm/interactions/createFloatingEvents.native.js.map +0 -1
  222. package/dist/esm/interactions/safePolygon.mjs +0 -248
  223. package/dist/esm/interactions/safePolygon.mjs.map +0 -1
  224. package/dist/esm/interactions/safePolygon.native.js +0 -256
  225. package/dist/esm/interactions/safePolygon.native.js.map +0 -1
  226. package/dist/esm/interactions/types.mjs +0 -2
  227. package/dist/esm/interactions/types.mjs.map +0 -1
  228. package/dist/esm/interactions/types.native.js +0 -2
  229. package/dist/esm/interactions/types.native.js.map +0 -1
  230. package/dist/esm/interactions/useClick.mjs +0 -99
  231. package/dist/esm/interactions/useClick.mjs.map +0 -1
  232. package/dist/esm/interactions/useClick.native.js +0 -104
  233. package/dist/esm/interactions/useClick.native.js.map +0 -1
  234. package/dist/esm/interactions/useDelayGroup.mjs +0 -77
  235. package/dist/esm/interactions/useDelayGroup.mjs.map +0 -1
  236. package/dist/esm/interactions/useDelayGroup.native.js +0 -84
  237. package/dist/esm/interactions/useDelayGroup.native.js.map +0 -1
  238. package/dist/esm/interactions/useFocus.mjs +0 -105
  239. package/dist/esm/interactions/useFocus.mjs.map +0 -1
  240. package/dist/esm/interactions/useFocus.native.js +0 -111
  241. package/dist/esm/interactions/useFocus.native.js.map +0 -1
  242. package/dist/esm/interactions/useHover.mjs +0 -320
  243. package/dist/esm/interactions/useHover.mjs.map +0 -1
  244. package/dist/esm/interactions/useHover.native.js +0 -333
  245. package/dist/esm/interactions/useHover.native.js.map +0 -1
  246. package/dist/esm/interactions/useInnerOffset.mjs +0 -92
  247. package/dist/esm/interactions/useInnerOffset.mjs.map +0 -1
  248. package/dist/esm/interactions/useInnerOffset.native.js +0 -102
  249. package/dist/esm/interactions/useInnerOffset.native.js.map +0 -1
  250. package/dist/esm/interactions/useInteractions.mjs +0 -80
  251. package/dist/esm/interactions/useInteractions.mjs.map +0 -1
  252. package/dist/esm/interactions/useInteractions.native.js +0 -188
  253. package/dist/esm/interactions/useInteractions.native.js.map +0 -1
  254. package/dist/esm/interactions/useListNavigation.mjs +0 -393
  255. package/dist/esm/interactions/useListNavigation.mjs.map +0 -1
  256. package/dist/esm/interactions/useListNavigation.native.js +0 -405
  257. package/dist/esm/interactions/useListNavigation.native.js.map +0 -1
  258. package/dist/esm/interactions/useRole.mjs +0 -86
  259. package/dist/esm/interactions/useRole.mjs.map +0 -1
  260. package/dist/esm/interactions/useRole.native.js +0 -97
  261. package/dist/esm/interactions/useRole.native.js.map +0 -1
  262. package/dist/esm/interactions/useTypeahead.mjs +0 -118
  263. package/dist/esm/interactions/useTypeahead.mjs.map +0 -1
  264. package/dist/esm/interactions/useTypeahead.native.js +0 -131
  265. package/dist/esm/interactions/useTypeahead.native.js.map +0 -1
  266. package/dist/esm/interactions/utils.mjs +0 -162
  267. package/dist/esm/interactions/utils.mjs.map +0 -1
  268. package/dist/esm/interactions/utils.native.js +0 -178
  269. package/dist/esm/interactions/utils.native.js.map +0 -1
  270. package/dist/esm/middleware/inner.mjs +0 -82
  271. package/dist/esm/middleware/inner.mjs.map +0 -1
  272. package/dist/esm/middleware/inner.native.js +0 -91
  273. package/dist/esm/middleware/inner.native.js.map +0 -1
  274. package/dist/esm/useFloating.mjs +0 -27
  275. package/dist/esm/useFloating.mjs.map +0 -1
  276. package/dist/esm/useFloating.native.js +0 -29
  277. package/dist/esm/useFloating.native.js.map +0 -1
@@ -1,256 +0,0 @@
1
- import { clearTimeoutIfSet, contains, getTarget } from "./utils.native.js";
2
- function isPointInPolygon(point, polygon) {
3
- var [x, y] = point;
4
- var isInside2 = false;
5
- var length = polygon.length;
6
- for (var i = 0, j = length - 1; i < length; j = i++) {
7
- var [xi, yi] = polygon[i] || [0, 0];
8
- var [xj, yj] = polygon[j] || [0, 0];
9
- var intersect = yi >= y !== yj >= y && x <= (xj - xi) * (y - yi) / (yj - yi) + xi;
10
- if (intersect) {
11
- isInside2 = !isInside2;
12
- }
13
- }
14
- return isInside2;
15
- }
16
- function isInside(point, rect) {
17
- return point[0] >= rect.x && point[0] <= rect.x + rect.width && point[1] >= rect.y && point[1] <= rect.y + rect.height;
18
- }
19
- var debugSvg = null;
20
- function debugDrawPolygon(polygon, trough, cursor, anchor) {
21
- if (!debugSvg) {
22
- debugSvg = document.createElementNS("http://www.w3.org/2000/svg", "svg");
23
- debugSvg.id = "__safe-polygon-debug";
24
- Object.assign(debugSvg.style, {
25
- position: "fixed",
26
- inset: "0",
27
- width: "100vw",
28
- height: "100vh",
29
- pointerEvents: "none",
30
- zIndex: "999999"
31
- });
32
- document.body.appendChild(debugSvg);
33
- }
34
- debugSvg.innerHTML = "";
35
- if (trough.length) {
36
- var troughEl = document.createElementNS("http://www.w3.org/2000/svg", "polygon");
37
- troughEl.setAttribute("points", trough.map(function (p) {
38
- return p.join(",");
39
- }).join(" "));
40
- troughEl.setAttribute("fill", "rgba(0,100,255,0.15)");
41
- troughEl.setAttribute("stroke", "rgba(0,100,255,0.6)");
42
- troughEl.setAttribute("stroke-width", "1");
43
- debugSvg.appendChild(troughEl);
44
- }
45
- if (polygon.length) {
46
- var polyEl = document.createElementNS("http://www.w3.org/2000/svg", "polygon");
47
- polyEl.setAttribute("points", polygon.map(function (p) {
48
- return p.join(",");
49
- }).join(" "));
50
- polyEl.setAttribute("fill", "rgba(255,50,50,0.2)");
51
- polyEl.setAttribute("stroke", "rgba(255,50,50,0.8)");
52
- polyEl.setAttribute("stroke-width", "1.5");
53
- debugSvg.appendChild(polyEl);
54
- }
55
- var anchorCircle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
56
- anchorCircle.setAttribute("cx", String(anchor[0]));
57
- anchorCircle.setAttribute("cy", String(anchor[1]));
58
- anchorCircle.setAttribute("r", "5");
59
- anchorCircle.setAttribute("fill", "lime");
60
- anchorCircle.setAttribute("stroke", "darkgreen");
61
- anchorCircle.setAttribute("stroke-width", "1.5");
62
- debugSvg.appendChild(anchorCircle);
63
- var cursorCircle = document.createElementNS("http://www.w3.org/2000/svg", "circle");
64
- cursorCircle.setAttribute("cx", String(cursor[0]));
65
- cursorCircle.setAttribute("cy", String(cursor[1]));
66
- cursorCircle.setAttribute("r", "4");
67
- cursorCircle.setAttribute("fill", "yellow");
68
- cursorCircle.setAttribute("stroke", "orange");
69
- cursorCircle.setAttribute("stroke-width", "1.5");
70
- debugSvg.appendChild(cursorCircle);
71
- }
72
- function debugClear() {
73
- if (debugSvg) {
74
- debugSvg.remove();
75
- debugSvg = null;
76
- }
77
- }
78
- function safePolygon() {
79
- var options = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {};
80
- var {
81
- buffer = 0.5,
82
- blockPointerEvents = false,
83
- requireIntent = true,
84
- __debug = false
85
- } = options;
86
- var timeoutRef = {
87
- current: -1
88
- };
89
- var hasLanded = false;
90
- var lastX = null;
91
- var lastY = null;
92
- var lastCursorTime = typeof performance !== "undefined" ? performance.now() : 0;
93
- function getCursorSpeed(x, y) {
94
- var currentTime = performance.now();
95
- var elapsedTime = currentTime - lastCursorTime;
96
- if (lastX === null || lastY === null || elapsedTime === 0) {
97
- lastX = x;
98
- lastY = y;
99
- lastCursorTime = currentTime;
100
- return null;
101
- }
102
- var deltaX = x - lastX;
103
- var deltaY = y - lastY;
104
- var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
105
- var speed = distance / elapsedTime;
106
- lastX = x;
107
- lastY = y;
108
- lastCursorTime = currentTime;
109
- return speed;
110
- }
111
- var fn = function (param) {
112
- var {
113
- x,
114
- y,
115
- placement,
116
- elements,
117
- onClose
118
- } = param;
119
- hasLanded = false;
120
- lastX = null;
121
- lastY = null;
122
- return function onMouseMove(event) {
123
- function close() {
124
- clearTimeoutIfSet(timeoutRef);
125
- onClose();
126
- }
127
- clearTimeoutIfSet(timeoutRef);
128
- var _elements_domReference;
129
- var domReference = (_elements_domReference = elements.domReference) !== null && _elements_domReference !== void 0 ? _elements_domReference : elements.reference;
130
- if (!domReference || !elements.floating || placement == null || x == null || y == null) {
131
- return;
132
- }
133
- var {
134
- clientX,
135
- clientY
136
- } = event;
137
- var clientPoint = [clientX, clientY];
138
- var target = getTarget(event);
139
- var isLeave = event.type === "mouseleave";
140
- var isOverFloatingEl = contains(elements.floating, target);
141
- var isOverReferenceEl = contains(domReference, target);
142
- var refRect = domReference.getBoundingClientRect();
143
- var rect = elements.floating.getBoundingClientRect();
144
- var side = placement.split("-")[0];
145
- var cursorLeaveFromRight = x > rect.right - rect.width / 2;
146
- var cursorLeaveFromBottom = y > rect.bottom - rect.height / 2;
147
- var isOverReferenceRect = isInside(clientPoint, refRect);
148
- var isFloatingWider = rect.width > refRect.width;
149
- var isFloatingTaller = rect.height > refRect.height;
150
- var left = (isFloatingWider ? refRect : rect).left;
151
- var right = (isFloatingWider ? refRect : rect).right;
152
- var top = (isFloatingTaller ? refRect : rect).top;
153
- var bottom = (isFloatingTaller ? refRect : rect).bottom;
154
- if (isOverFloatingEl) {
155
- hasLanded = true;
156
- if (!isLeave) {
157
- return;
158
- }
159
- }
160
- if (isOverReferenceEl) {
161
- hasLanded = false;
162
- }
163
- if (isOverReferenceEl && !isLeave) {
164
- hasLanded = true;
165
- return;
166
- }
167
- if (!isOverReferenceEl && isOverReferenceRect && !isLeave) {
168
- return;
169
- }
170
- if (isLeave && event.relatedTarget && contains(elements.floating, event.relatedTarget)) {
171
- return;
172
- }
173
- 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) {
174
- return close();
175
- }
176
- var rectPoly = [];
177
- switch (side) {
178
- case "top":
179
- rectPoly = [[left, refRect.top + 1], [left, rect.bottom - 1], [right, rect.bottom - 1], [right, refRect.top + 1]];
180
- break;
181
- case "bottom":
182
- rectPoly = [[left, rect.top + 1], [left, refRect.bottom - 1], [right, refRect.bottom - 1], [right, rect.top + 1]];
183
- break;
184
- case "left":
185
- rectPoly = [[rect.right - 1, bottom], [rect.right - 1, top], [refRect.left + 1, top], [refRect.left + 1, bottom]];
186
- break;
187
- case "right":
188
- rectPoly = [[refRect.right - 1, bottom], [refRect.right - 1, top], [rect.left + 1, top], [rect.left + 1, bottom]];
189
- break;
190
- }
191
- function getPolygon(param2) {
192
- var [x2, y2] = param2;
193
- switch (side) {
194
- case "top":
195
- {
196
- var cursorPointOne = [isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 + buffer + 1];
197
- var cursorPointTwo = [isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 + buffer + 1];
198
- 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]];
199
- return [cursorPointOne, cursorPointTwo, ...commonPoints];
200
- }
201
- case "bottom":
202
- {
203
- var cursorPointOne1 = [isFloatingWider ? x2 + buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 - buffer];
204
- var cursorPointTwo1 = [isFloatingWider ? x2 - buffer / 2 : cursorLeaveFromRight ? x2 + buffer * 4 : x2 - buffer * 4, y2 - buffer];
205
- 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]];
206
- return [cursorPointOne1, cursorPointTwo1, ...commonPoints1];
207
- }
208
- case "left":
209
- {
210
- var cursorPointOne2 = [x2 + buffer + 1, isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
211
- var cursorPointTwo2 = [x2 + buffer + 1, isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
212
- 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]];
213
- return [...commonPoints2, cursorPointOne2, cursorPointTwo2];
214
- }
215
- case "right":
216
- {
217
- var cursorPointOne3 = [x2 - buffer, isFloatingTaller ? y2 + buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
218
- var cursorPointTwo3 = [x2 - buffer, isFloatingTaller ? y2 - buffer / 2 : cursorLeaveFromBottom ? y2 + buffer * 4 : y2 - buffer * 4];
219
- 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]];
220
- return [cursorPointOne3, cursorPointTwo3, ...commonPoints3];
221
- }
222
- }
223
- }
224
- var poly = getPolygon([x, y]);
225
- if (__debug) {
226
- debugDrawPolygon(poly, rectPoly, clientPoint, [x, y]);
227
- }
228
- if (isPointInPolygon([clientX, clientY], rectPoly)) {
229
- return;
230
- }
231
- if (hasLanded && !isOverReferenceRect) {
232
- if (__debug) debugClear();
233
- return close();
234
- }
235
- if (isPointInPolygon([clientX, clientY], poly)) {
236
- return;
237
- }
238
- if (!isLeave && requireIntent) {
239
- var cursorSpeed = getCursorSpeed(clientX, clientY);
240
- var cursorSpeedThreshold = 0.1;
241
- if (cursorSpeed !== null && cursorSpeed < cursorSpeedThreshold) {
242
- if (__debug) debugClear();
243
- return close();
244
- }
245
- }
246
- if (__debug) debugClear();
247
- close();
248
- };
249
- };
250
- fn.__options = {
251
- blockPointerEvents
252
- };
253
- return fn;
254
- }
255
- export { safePolygon };
256
- //# sourceMappingURL=safePolygon.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["clearTimeoutIfSet","contains","getTarget","isPointInPolygon","point","polygon","x","y","isInside","length","i","j","xi","yi","xj","yj","intersect","isInside2","rect","width","height","debugSvg","debugDrawPolygon","trough","cursor","anchor","document","createElementNS","id","Object","assign","style","position","inset","pointerEvents","zIndex","body","appendChild","innerHTML","troughEl","setAttribute","map","p","join","polyEl","anchorCircle","String","cursorCircle","debugClear","remove","safePolygon","options","arguments","buffer","blockPointerEvents","requireIntent","__debug","timeoutRef","current","hasLanded","lastX","lastY","lastCursorTime","performance","now","getCursorSpeed","currentTime","elapsedTime","deltaX","deltaY","distance","Math","sqrt","speed","fn","param","placement","elements","onClose","onMouseMove","event","close","_elements_domReference","domReference","reference","floating","clientX","clientY","clientPoint","target","isLeave","type","isOverFloatingEl","isOverReferenceEl","refRect","getBoundingClientRect","side","split","cursorLeaveFromRight","right","cursorLeaveFromBottom","bottom","isOverReferenceRect","isFloatingWider","isFloatingTaller","left","top","relatedTarget","rectPoly","getPolygon","param2","x2","y2","cursorPointOne","cursorPointTwo","commonPoints","cursorPointOne1","cursorPointTwo1","commonPoints1","cursorPointOne2"],"sources":["../../../src/interactions/safePolygon.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=types.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=types.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":[],"sources":[],"sourcesContent":[],"mappings":"","ignoreList":[]}
@@ -1,99 +0,0 @@
1
- import { useMemo, useRef } from "react";
2
- import { isHTMLElement, isMouseLikePointerType, isTypeableElement } from "./utils.mjs";
3
- function isButtonTarget(event) {
4
- return isHTMLElement(event.target) && event.target.tagName === "BUTTON";
5
- }
6
- function isAnchorTarget(event) {
7
- return isHTMLElement(event.target) && event.target.tagName === "A";
8
- }
9
- function isSpaceIgnored(element) {
10
- return isTypeableElement(element);
11
- }
12
- function useClick(context, props = {}) {
13
- const {
14
- open,
15
- onOpenChange,
16
- dataRef,
17
- elements: {
18
- domReference
19
- }
20
- } = context;
21
- const {
22
- enabled = true,
23
- event: eventOption = "click",
24
- toggle = true,
25
- ignoreMouse = false,
26
- keyboardHandlers = true,
27
- stickIfOpen = true
28
- } = props;
29
- const pointerTypeRef = useRef(void 0);
30
- const didKeyDownRef = useRef(false);
31
- const reference = useMemo(() => ({
32
- onPointerDown(event) {
33
- pointerTypeRef.current = event.pointerType;
34
- },
35
- onMouseDown(event) {
36
- const pointerType = pointerTypeRef.current;
37
- if (event.button !== 0) return;
38
- if (eventOption === "click") return;
39
- if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;
40
- if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "mousedown" : true)) {
41
- onOpenChange(false, event.nativeEvent || event, "click");
42
- } else {
43
- event.preventDefault();
44
- onOpenChange(true, event.nativeEvent || event, "click");
45
- }
46
- },
47
- onClick(event) {
48
- const pointerType = pointerTypeRef.current;
49
- if (eventOption === "mousedown" && pointerTypeRef.current) {
50
- pointerTypeRef.current = void 0;
51
- return;
52
- }
53
- if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;
54
- if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "click" : true)) {
55
- onOpenChange(false, event.nativeEvent || event, "click");
56
- } else {
57
- onOpenChange(true, event.nativeEvent || event, "click");
58
- }
59
- },
60
- onKeyDown(event) {
61
- pointerTypeRef.current = void 0;
62
- if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {
63
- return;
64
- }
65
- if (event.key === " " && !isSpaceIgnored(domReference)) {
66
- event.preventDefault();
67
- didKeyDownRef.current = true;
68
- }
69
- if (isAnchorTarget(event)) {
70
- return;
71
- }
72
- if (event.key === "Enter") {
73
- if (open && toggle) {
74
- onOpenChange(false, event.nativeEvent || event, "click");
75
- } else {
76
- onOpenChange(true, event.nativeEvent || event, "click");
77
- }
78
- }
79
- },
80
- onKeyUp(event) {
81
- if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {
82
- return;
83
- }
84
- if (event.key === " " && didKeyDownRef.current) {
85
- didKeyDownRef.current = false;
86
- if (open && toggle) {
87
- onOpenChange(false, event.nativeEvent || event, "click");
88
- } else {
89
- onOpenChange(true, event.nativeEvent || event, "click");
90
- }
91
- }
92
- }
93
- }), [dataRef, domReference, eventOption, ignoreMouse, keyboardHandlers, onOpenChange, open, stickIfOpen, toggle]);
94
- return useMemo(() => enabled ? {
95
- reference
96
- } : {}, [enabled, reference]);
97
- }
98
- export { useClick };
99
- //# sourceMappingURL=useClick.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useMemo","useRef","isHTMLElement","isMouseLikePointerType","isTypeableElement","isButtonTarget","event","target","tagName","isAnchorTarget","isSpaceIgnored","element","useClick","context","props","open","onOpenChange","dataRef","elements","domReference","enabled","eventOption","toggle","ignoreMouse","keyboardHandlers","stickIfOpen","pointerTypeRef","didKeyDownRef","reference","onPointerDown","current","pointerType","onMouseDown","button","openEvent","type","nativeEvent","preventDefault","onClick","onKeyDown","defaultPrevented","key","onKeyUp"],"sources":["../../../src/interactions/useClick.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,104 +0,0 @@
1
- import { useMemo, useRef } from "react";
2
- import { isHTMLElement, isMouseLikePointerType, isTypeableElement } from "./utils.native.js";
3
- function isButtonTarget(event) {
4
- return isHTMLElement(event.target) && event.target.tagName === "BUTTON";
5
- }
6
- function isAnchorTarget(event) {
7
- return isHTMLElement(event.target) && event.target.tagName === "A";
8
- }
9
- function isSpaceIgnored(element) {
10
- return isTypeableElement(element);
11
- }
12
- function useClick(context) {
13
- var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
14
- var {
15
- open,
16
- onOpenChange,
17
- dataRef,
18
- elements: {
19
- domReference
20
- }
21
- } = context;
22
- var {
23
- enabled = true,
24
- event: eventOption = "click",
25
- toggle = true,
26
- ignoreMouse = false,
27
- keyboardHandlers = true,
28
- stickIfOpen = true
29
- } = props;
30
- var pointerTypeRef = useRef(void 0);
31
- var didKeyDownRef = useRef(false);
32
- var reference = useMemo(function () {
33
- return {
34
- onPointerDown(event) {
35
- pointerTypeRef.current = event.pointerType;
36
- },
37
- onMouseDown(event) {
38
- var pointerType = pointerTypeRef.current;
39
- if (event.button !== 0) return;
40
- if (eventOption === "click") return;
41
- if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;
42
- if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "mousedown" : true)) {
43
- onOpenChange(false, event.nativeEvent || event, "click");
44
- } else {
45
- event.preventDefault();
46
- onOpenChange(true, event.nativeEvent || event, "click");
47
- }
48
- },
49
- onClick(event) {
50
- var pointerType = pointerTypeRef.current;
51
- if (eventOption === "mousedown" && pointerTypeRef.current) {
52
- pointerTypeRef.current = void 0;
53
- return;
54
- }
55
- if (isMouseLikePointerType(pointerType, true) && ignoreMouse) return;
56
- if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "click" : true)) {
57
- onOpenChange(false, event.nativeEvent || event, "click");
58
- } else {
59
- onOpenChange(true, event.nativeEvent || event, "click");
60
- }
61
- },
62
- onKeyDown(event) {
63
- pointerTypeRef.current = void 0;
64
- if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {
65
- return;
66
- }
67
- if (event.key === " " && !isSpaceIgnored(domReference)) {
68
- event.preventDefault();
69
- didKeyDownRef.current = true;
70
- }
71
- if (isAnchorTarget(event)) {
72
- return;
73
- }
74
- if (event.key === "Enter") {
75
- if (open && toggle) {
76
- onOpenChange(false, event.nativeEvent || event, "click");
77
- } else {
78
- onOpenChange(true, event.nativeEvent || event, "click");
79
- }
80
- }
81
- },
82
- onKeyUp(event) {
83
- if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {
84
- return;
85
- }
86
- if (event.key === " " && didKeyDownRef.current) {
87
- didKeyDownRef.current = false;
88
- if (open && toggle) {
89
- onOpenChange(false, event.nativeEvent || event, "click");
90
- } else {
91
- onOpenChange(true, event.nativeEvent || event, "click");
92
- }
93
- }
94
- }
95
- };
96
- }, [dataRef, domReference, eventOption, ignoreMouse, keyboardHandlers, onOpenChange, open, stickIfOpen, toggle]);
97
- return useMemo(function () {
98
- return enabled ? {
99
- reference
100
- } : {};
101
- }, [enabled, reference]);
102
- }
103
- export { useClick };
104
- //# sourceMappingURL=useClick.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["useMemo","useRef","isHTMLElement","isMouseLikePointerType","isTypeableElement","isButtonTarget","event","target","tagName","isAnchorTarget","isSpaceIgnored","element","useClick","context","props","arguments","length","open","onOpenChange","dataRef","elements","domReference","enabled","eventOption","toggle","ignoreMouse","keyboardHandlers","stickIfOpen","pointerTypeRef","didKeyDownRef","reference","onPointerDown","current","pointerType","onMouseDown","button","openEvent","type","nativeEvent","preventDefault","onClick","onKeyDown","defaultPrevented","key","onKeyUp"],"sources":["../../../src/interactions/useClick.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,77 +0,0 @@
1
- import * as React from "react";
2
- const DelayGroupContext = React.createContext({
3
- currentId: null,
4
- setCurrentId: () => {},
5
- delay: 0,
6
- timeoutMs: 0,
7
- initialDelay: 0
8
- });
9
- function useDelayGroupContext() {
10
- return React.useContext(DelayGroupContext);
11
- }
12
- function FloatingDelayGroup({
13
- children,
14
- delay,
15
- timeoutMs = 0
16
- }) {
17
- const [currentId, setCurrentIdRaw] = React.useState(null);
18
- const timeoutRef = React.useRef(void 0);
19
- const setCurrentId = React.useCallback(id => {
20
- clearTimeout(timeoutRef.current);
21
- if (id == null && timeoutMs > 0) {
22
- timeoutRef.current = setTimeout(() => {
23
- setCurrentIdRaw(null);
24
- }, timeoutMs);
25
- } else {
26
- setCurrentIdRaw(id);
27
- }
28
- }, [timeoutMs]);
29
- React.useEffect(() => {
30
- return () => clearTimeout(timeoutRef.current);
31
- }, []);
32
- const value = React.useMemo(() => ({
33
- currentId,
34
- setCurrentId,
35
- delay,
36
- timeoutMs,
37
- initialDelay: delay
38
- }), [currentId, setCurrentId, delay, timeoutMs]);
39
- return React.createElement(DelayGroupContext.Provider, {
40
- value
41
- }, children);
42
- }
43
- function useDelayGroup(context, options = {}) {
44
- const {
45
- id
46
- } = options;
47
- const groupContext = React.useContext(DelayGroupContext);
48
- React.useEffect(() => {
49
- if (!context.open && groupContext.currentId === id) {
50
- groupContext.setCurrentId(null);
51
- }
52
- }, [context.open, id]);
53
- React.useEffect(() => {
54
- if (groupContext.currentId != null && groupContext.currentId !== id && context.open) {
55
- context.onOpenChange(false);
56
- }
57
- }, [groupContext.currentId, id, context.open]);
58
- if (groupContext.currentId != null) {
59
- return {
60
- delay: {
61
- open: 1,
62
- close: getClose(groupContext.initialDelay)
63
- },
64
- currentId: groupContext.currentId
65
- };
66
- }
67
- return {
68
- delay: groupContext.initialDelay,
69
- currentId: groupContext.currentId
70
- };
71
- }
72
- function getClose(delay) {
73
- if (typeof delay === "number") return delay;
74
- return delay?.close ?? 0;
75
- }
76
- export { FloatingDelayGroup, useDelayGroup, useDelayGroupContext };
77
- //# sourceMappingURL=useDelayGroup.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","DelayGroupContext","createContext","currentId","setCurrentId","delay","timeoutMs","initialDelay","useDelayGroupContext","useContext","FloatingDelayGroup","children","setCurrentIdRaw","useState","timeoutRef","useRef","useCallback","id","clearTimeout","current","setTimeout","useEffect","value","useMemo","createElement","Provider","useDelayGroup","context","options","groupContext","open","onOpenChange","close","getClose"],"sources":["../../../src/interactions/useDelayGroup.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}