@tamagui/floating 2.7.6 → 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
@@ -1,132 +1,124 @@
1
1
  "use strict";
2
2
 
3
+
3
4
  var __defProp = Object.defineProperty;
4
5
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
6
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
8
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
12
13
  };
13
14
  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, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
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;
21
22
  };
22
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
- value: true
24
- }), mod);
23
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
25
24
  var useClick_exports = {};
26
- __export(useClick_exports, {
27
- useClick: () => useClick
28
- });
25
+ __export(useClick_exports, { useClick: () => useClick });
29
26
  module.exports = __toCommonJS(useClick_exports);
30
27
  var import_react = require("react");
31
28
  var import_utils = require("./utils.native.js");
32
29
  function isButtonTarget(event) {
33
- return (0, import_utils.isHTMLElement)(event.target) && event.target.tagName === "BUTTON";
30
+ return (0, import_utils.isHTMLElement)(event.target) && event.target.tagName === "BUTTON";
34
31
  }
35
32
  function isAnchorTarget(event) {
36
- return (0, import_utils.isHTMLElement)(event.target) && event.target.tagName === "A";
33
+ return (0, import_utils.isHTMLElement)(event.target) && event.target.tagName === "A";
37
34
  }
38
35
  function isSpaceIgnored(element) {
39
- return (0, import_utils.isTypeableElement)(element);
36
+ return (0, import_utils.isTypeableElement)(element);
40
37
  }
41
38
  function useClick(context) {
42
- var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
43
- var {
44
- open,
45
- onOpenChange,
46
- dataRef,
47
- elements: {
48
- domReference
49
- }
50
- } = context;
51
- var {
52
- enabled = true,
53
- event: eventOption = "click",
54
- toggle = true,
55
- ignoreMouse = false,
56
- keyboardHandlers = true,
57
- stickIfOpen = true
58
- } = props;
59
- var pointerTypeRef = (0, import_react.useRef)(void 0);
60
- var didKeyDownRef = (0, import_react.useRef)(false);
61
- var reference = (0, import_react.useMemo)(function () {
62
- return {
63
- onPointerDown(event) {
64
- pointerTypeRef.current = event.pointerType;
65
- },
66
- onMouseDown(event) {
67
- var pointerType = pointerTypeRef.current;
68
- if (event.button !== 0) return;
69
- if (eventOption === "click") return;
70
- if ((0, import_utils.isMouseLikePointerType)(pointerType, true) && ignoreMouse) return;
71
- if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "mousedown" : true)) {
72
- onOpenChange(false, event.nativeEvent || event, "click");
73
- } else {
74
- event.preventDefault();
75
- onOpenChange(true, event.nativeEvent || event, "click");
76
- }
77
- },
78
- onClick(event) {
79
- var pointerType = pointerTypeRef.current;
80
- if (eventOption === "mousedown" && pointerTypeRef.current) {
81
- pointerTypeRef.current = void 0;
82
- return;
83
- }
84
- if ((0, import_utils.isMouseLikePointerType)(pointerType, true) && ignoreMouse) return;
85
- if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "click" : true)) {
86
- onOpenChange(false, event.nativeEvent || event, "click");
87
- } else {
88
- onOpenChange(true, event.nativeEvent || event, "click");
89
- }
90
- },
91
- onKeyDown(event) {
92
- pointerTypeRef.current = void 0;
93
- if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {
94
- return;
95
- }
96
- if (event.key === " " && !isSpaceIgnored(domReference)) {
97
- event.preventDefault();
98
- didKeyDownRef.current = true;
99
- }
100
- if (isAnchorTarget(event)) {
101
- return;
102
- }
103
- if (event.key === "Enter") {
104
- if (open && toggle) {
105
- onOpenChange(false, event.nativeEvent || event, "click");
106
- } else {
107
- onOpenChange(true, event.nativeEvent || event, "click");
108
- }
109
- }
110
- },
111
- onKeyUp(event) {
112
- if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {
113
- return;
114
- }
115
- if (event.key === " " && didKeyDownRef.current) {
116
- didKeyDownRef.current = false;
117
- if (open && toggle) {
118
- onOpenChange(false, event.nativeEvent || event, "click");
119
- } else {
120
- onOpenChange(true, event.nativeEvent || event, "click");
121
- }
122
- }
123
- }
124
- };
125
- }, [dataRef, domReference, eventOption, ignoreMouse, keyboardHandlers, onOpenChange, open, stickIfOpen, toggle]);
126
- return (0, import_react.useMemo)(function () {
127
- return enabled ? {
128
- reference
129
- } : {};
130
- }, [enabled, reference]);
39
+ var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
40
+ var { open, onOpenChange, dataRef, elements: { domReference } } = context;
41
+ var { enabled = true, event: eventOption = "click", toggle = true, ignoreMouse = false, keyboardHandlers = true, stickIfOpen = true } = props;
42
+ var pointerTypeRef = (0, import_react.useRef)(void 0);
43
+ var didKeyDownRef = (0, import_react.useRef)(false);
44
+ var reference = (0, import_react.useMemo)(function() {
45
+ return {
46
+ onPointerDown(event) {
47
+ pointerTypeRef.current = event.pointerType;
48
+ },
49
+ onMouseDown(event) {
50
+ var pointerType = pointerTypeRef.current;
51
+ if (event.button !== 0) return;
52
+ if (eventOption === "click") return;
53
+ if ((0, import_utils.isMouseLikePointerType)(pointerType, true) && ignoreMouse) return;
54
+ if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "mousedown" : true)) {
55
+ onOpenChange(false, event.nativeEvent || event, "click");
56
+ } else {
57
+ event.preventDefault();
58
+ onOpenChange(true, event.nativeEvent || event, "click");
59
+ }
60
+ },
61
+ onClick(event) {
62
+ var pointerType = pointerTypeRef.current;
63
+ if (eventOption === "mousedown" && pointerTypeRef.current) {
64
+ pointerTypeRef.current = void 0;
65
+ return;
66
+ }
67
+ if ((0, import_utils.isMouseLikePointerType)(pointerType, true) && ignoreMouse) return;
68
+ if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === "click" : true)) {
69
+ onOpenChange(false, event.nativeEvent || event, "click");
70
+ } else {
71
+ onOpenChange(true, event.nativeEvent || event, "click");
72
+ }
73
+ },
74
+ onKeyDown(event) {
75
+ pointerTypeRef.current = void 0;
76
+ if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {
77
+ return;
78
+ }
79
+ if (event.key === " " && !isSpaceIgnored(domReference)) {
80
+ event.preventDefault();
81
+ didKeyDownRef.current = true;
82
+ }
83
+ if (isAnchorTarget(event)) {
84
+ return;
85
+ }
86
+ if (event.key === "Enter") {
87
+ if (open && toggle) {
88
+ onOpenChange(false, event.nativeEvent || event, "click");
89
+ } else {
90
+ onOpenChange(true, event.nativeEvent || event, "click");
91
+ }
92
+ }
93
+ },
94
+ onKeyUp(event) {
95
+ if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {
96
+ return;
97
+ }
98
+ if (event.key === " " && didKeyDownRef.current) {
99
+ didKeyDownRef.current = false;
100
+ if (open && toggle) {
101
+ onOpenChange(false, event.nativeEvent || event, "click");
102
+ } else {
103
+ onOpenChange(true, event.nativeEvent || event, "click");
104
+ }
105
+ }
106
+ }
107
+ };
108
+ }, [
109
+ dataRef,
110
+ domReference,
111
+ eventOption,
112
+ ignoreMouse,
113
+ keyboardHandlers,
114
+ onOpenChange,
115
+ open,
116
+ stickIfOpen,
117
+ toggle
118
+ ]);
119
+ return (0, import_react.useMemo)(function() {
120
+ return enabled ? { reference } : {};
121
+ }, [enabled, reference]);
131
122
  }
123
+
132
124
  //# sourceMappingURL=useClick.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useClick_exports","__export","useClick","module","exports","import_react","require","import_utils","isButtonTarget","event","isHTMLElement","target","tagName","isAnchorTarget","isSpaceIgnored","element","isTypeableElement","context","props","arguments","length","open","onOpenChange","dataRef","elements","domReference","enabled","eventOption","toggle","ignoreMouse","keyboardHandlers","stickIfOpen","pointerTypeRef","useRef","didKeyDownRef","reference","useMemo","onPointerDown","current","pointerType","onMouseDown","button","isMouseLikePointerType","openEvent","type","nativeEvent","preventDefault","onClick","onKeyDown","defaultPrevented","key","onKeyUp"],"sources":["../../../src/interactions/useClick.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useClick.native.js","names":[],"sources":["cjs/interactions/useClick.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar useClick_exports = {};\n__export(useClick_exports, {\n useClick: () => useClick\n});\nmodule.exports = __toCommonJS(useClick_exports);\nvar import_react = require(\"react\");\nvar import_utils = require(\"./utils\");\nfunction isButtonTarget(event) {\n return (0, import_utils.isHTMLElement)(event.target) && event.target.tagName === \"BUTTON\";\n}\nfunction isAnchorTarget(event) {\n return (0, import_utils.isHTMLElement)(event.target) && event.target.tagName === \"A\";\n}\nfunction isSpaceIgnored(element) {\n return (0, import_utils.isTypeableElement)(element);\n}\nfunction useClick(context) {\n var props = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var { open, onOpenChange, dataRef, elements: { domReference } } = context;\n var { enabled = true, event: eventOption = \"click\", toggle = true, ignoreMouse = false, keyboardHandlers = true, stickIfOpen = true } = props;\n var pointerTypeRef = (0, import_react.useRef)(void 0);\n var didKeyDownRef = (0, import_react.useRef)(false);\n var reference = (0, import_react.useMemo)(function() {\n return {\n onPointerDown(event) {\n pointerTypeRef.current = event.pointerType;\n },\n onMouseDown(event) {\n var pointerType = pointerTypeRef.current;\n if (event.button !== 0) return;\n if (eventOption === \"click\") return;\n if ((0, import_utils.isMouseLikePointerType)(pointerType, true) && ignoreMouse) return;\n if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === \"mousedown\" : true)) {\n onOpenChange(false, event.nativeEvent || event, \"click\");\n } else {\n event.preventDefault();\n onOpenChange(true, event.nativeEvent || event, \"click\");\n }\n },\n onClick(event) {\n var pointerType = pointerTypeRef.current;\n if (eventOption === \"mousedown\" && pointerTypeRef.current) {\n pointerTypeRef.current = void 0;\n return;\n }\n if ((0, import_utils.isMouseLikePointerType)(pointerType, true) && ignoreMouse) return;\n if (open && toggle && (dataRef.current.openEvent && stickIfOpen ? dataRef.current.openEvent.type === \"click\" : true)) {\n onOpenChange(false, event.nativeEvent || event, \"click\");\n } else {\n onOpenChange(true, event.nativeEvent || event, \"click\");\n }\n },\n onKeyDown(event) {\n pointerTypeRef.current = void 0;\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event)) {\n return;\n }\n if (event.key === \" \" && !isSpaceIgnored(domReference)) {\n event.preventDefault();\n didKeyDownRef.current = true;\n }\n if (isAnchorTarget(event)) {\n return;\n }\n if (event.key === \"Enter\") {\n if (open && toggle) {\n onOpenChange(false, event.nativeEvent || event, \"click\");\n } else {\n onOpenChange(true, event.nativeEvent || event, \"click\");\n }\n }\n },\n onKeyUp(event) {\n if (event.defaultPrevented || !keyboardHandlers || isButtonTarget(event) || isSpaceIgnored(domReference)) {\n return;\n }\n if (event.key === \" \" && didKeyDownRef.current) {\n didKeyDownRef.current = false;\n if (open && toggle) {\n onOpenChange(false, event.nativeEvent || event, \"click\");\n } else {\n onOpenChange(true, event.nativeEvent || event, \"click\");\n }\n }\n }\n };\n }, [\n dataRef,\n domReference,\n eventOption,\n ignoreMouse,\n keyboardHandlers,\n onOpenChange,\n open,\n stickIfOpen,\n toggle\n ]);\n return (0, import_react.useMemo)(function() {\n return enabled ? {\n reference\n } : {};\n }, [\n enabled,\n reference\n ]);\n}\n//# sourceMappingURL=useClick.js.map\n"],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+
1
2
  var __create = Object.create;
2
3
  var __defProp = Object.defineProperty;
3
4
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
@@ -5,111 +6,105 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
5
6
  var __getProtoOf = Object.getPrototypeOf;
6
7
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
8
  var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
9
+ for (var name in all) __defProp(target, name, {
10
+ get: all[name],
11
+ enumerable: true
12
+ });
12
13
  };
13
14
  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, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
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;
21
22
  };
22
- 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: true
23
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
24
+ value: mod,
25
+ enumerable: true
30
26
  }) : target, mod));
31
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
- value: true
33
- }), mod);
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
28
  var useDelayGroup_exports = {};
35
29
  __export(useDelayGroup_exports, {
36
- FloatingDelayGroup: () => FloatingDelayGroup,
37
- useDelayGroup: () => useDelayGroup,
38
- useDelayGroupContext: () => useDelayGroupContext
30
+ FloatingDelayGroup: () => FloatingDelayGroup,
31
+ useDelayGroup: () => useDelayGroup,
32
+ useDelayGroupContext: () => useDelayGroupContext
39
33
  });
40
34
  module.exports = __toCommonJS(useDelayGroup_exports);
41
35
  var React = __toESM(require("react"), 1);
42
36
  const DelayGroupContext = React.createContext({
43
- currentId: null,
44
- setCurrentId: () => {},
45
- delay: 0,
46
- timeoutMs: 0,
47
- initialDelay: 0
37
+ currentId: null,
38
+ setCurrentId: () => {},
39
+ delay: 0,
40
+ timeoutMs: 0,
41
+ initialDelay: 0
48
42
  });
49
43
  function useDelayGroupContext() {
50
- return React.useContext(DelayGroupContext);
44
+ return React.useContext(DelayGroupContext);
51
45
  }
52
- function FloatingDelayGroup({
53
- children,
54
- delay,
55
- timeoutMs = 0
56
- }) {
57
- const [currentId, setCurrentIdRaw] = React.useState(null);
58
- const timeoutRef = React.useRef(void 0);
59
- const setCurrentId = React.useCallback(id => {
60
- clearTimeout(timeoutRef.current);
61
- if (id == null && timeoutMs > 0) {
62
- timeoutRef.current = setTimeout(() => {
63
- setCurrentIdRaw(null);
64
- }, timeoutMs);
65
- } else {
66
- setCurrentIdRaw(id);
67
- }
68
- }, [timeoutMs]);
69
- React.useEffect(() => {
70
- return () => clearTimeout(timeoutRef.current);
71
- }, []);
72
- const value = React.useMemo(() => ({
73
- currentId,
74
- setCurrentId,
75
- delay,
76
- timeoutMs,
77
- initialDelay: delay
78
- }), [currentId, setCurrentId, delay, timeoutMs]);
79
- return React.createElement(DelayGroupContext.Provider, {
80
- value
81
- }, children);
46
+ function FloatingDelayGroup({ children, delay, timeoutMs = 0 }) {
47
+ const [currentId, setCurrentIdRaw] = React.useState(null);
48
+ const timeoutRef = React.useRef(void 0);
49
+ const setCurrentId = React.useCallback((id) => {
50
+ clearTimeout(timeoutRef.current);
51
+ if (id == null && timeoutMs > 0) {
52
+ timeoutRef.current = setTimeout(() => {
53
+ setCurrentIdRaw(null);
54
+ }, timeoutMs);
55
+ } else {
56
+ setCurrentIdRaw(id);
57
+ }
58
+ }, [timeoutMs]);
59
+ React.useEffect(() => {
60
+ return () => clearTimeout(timeoutRef.current);
61
+ }, []);
62
+ const value = React.useMemo(() => ({
63
+ currentId,
64
+ setCurrentId,
65
+ delay,
66
+ timeoutMs,
67
+ initialDelay: delay
68
+ }), [
69
+ currentId,
70
+ setCurrentId,
71
+ delay,
72
+ timeoutMs
73
+ ]);
74
+ return React.createElement(DelayGroupContext.Provider, { value }, children);
82
75
  }
83
76
  function useDelayGroup(context, options = {}) {
84
- const {
85
- id
86
- } = options;
87
- const groupContext = React.useContext(DelayGroupContext);
88
- React.useEffect(() => {
89
- if (!context.open && groupContext.currentId === id) {
90
- groupContext.setCurrentId(null);
91
- }
92
- }, [context.open, id]);
93
- React.useEffect(() => {
94
- if (groupContext.currentId != null && groupContext.currentId !== id && context.open) {
95
- context.onOpenChange(false);
96
- }
97
- }, [groupContext.currentId, id, context.open]);
98
- if (groupContext.currentId != null) {
99
- return {
100
- delay: {
101
- open: 1,
102
- close: getClose(groupContext.initialDelay)
103
- },
104
- currentId: groupContext.currentId
105
- };
106
- }
107
- return {
108
- delay: groupContext.initialDelay,
109
- currentId: groupContext.currentId
110
- };
77
+ const { id } = options;
78
+ const groupContext = React.useContext(DelayGroupContext);
79
+ React.useEffect(() => {
80
+ if (!context.open && groupContext.currentId === id) {
81
+ groupContext.setCurrentId(null);
82
+ }
83
+ }, [context.open, id]);
84
+ React.useEffect(() => {
85
+ if (groupContext.currentId != null && groupContext.currentId !== id && context.open) {
86
+ context.onOpenChange(false);
87
+ }
88
+ }, [
89
+ groupContext.currentId,
90
+ id,
91
+ context.open
92
+ ]);
93
+ if (groupContext.currentId != null) {
94
+ return {
95
+ delay: {
96
+ open: 1,
97
+ close: getClose(groupContext.initialDelay)
98
+ },
99
+ currentId: groupContext.currentId
100
+ };
101
+ }
102
+ return {
103
+ delay: groupContext.initialDelay,
104
+ currentId: groupContext.currentId
105
+ };
111
106
  }
112
107
  function getClose(delay) {
113
- if (typeof delay === "number") return delay;
114
- return delay?.close ?? 0;
115
- }
108
+ if (typeof delay === "number") return delay;
109
+ return delay?.close ?? 0;
110
+ }
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __export = (target, all) => {
11
+ for (var name in all) __defProp(target, name, {
12
+ get: all[name],
13
+ enumerable: true
14
+ });
15
+ };
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
19
+ get: () => from[key],
20
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
21
+ });
22
+ }
23
+ return to;
24
+ };
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: true
28
+ }) : target, mod));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var useDelayGroup_exports = {};
31
+ __export(useDelayGroup_exports, {
32
+ FloatingDelayGroup: () => FloatingDelayGroup,
33
+ useDelayGroup: () => useDelayGroup,
34
+ useDelayGroupContext: () => useDelayGroupContext
35
+ });
36
+ module.exports = __toCommonJS(useDelayGroup_exports);
37
+ var React = __toESM(require("react"), 1);
38
+ var DelayGroupContext = React.createContext({
39
+ currentId: null,
40
+ setCurrentId: function() {},
41
+ delay: 0,
42
+ timeoutMs: 0,
43
+ initialDelay: 0
44
+ });
45
+ function useDelayGroupContext() {
46
+ return React.useContext(DelayGroupContext);
47
+ }
48
+ function FloatingDelayGroup(param) {
49
+ var { children, delay, timeoutMs = 0 } = param;
50
+ var [currentId, setCurrentIdRaw] = React.useState(null);
51
+ var timeoutRef = React.useRef(void 0);
52
+ var setCurrentId = React.useCallback(function(id) {
53
+ clearTimeout(timeoutRef.current);
54
+ if (id == null && timeoutMs > 0) {
55
+ timeoutRef.current = setTimeout(function() {
56
+ setCurrentIdRaw(null);
57
+ }, timeoutMs);
58
+ } else {
59
+ setCurrentIdRaw(id);
60
+ }
61
+ }, [timeoutMs]);
62
+ React.useEffect(function() {
63
+ return function() {
64
+ return clearTimeout(timeoutRef.current);
65
+ };
66
+ }, []);
67
+ var value = React.useMemo(function() {
68
+ return {
69
+ currentId,
70
+ setCurrentId,
71
+ delay,
72
+ timeoutMs,
73
+ initialDelay: delay
74
+ };
75
+ }, [
76
+ currentId,
77
+ setCurrentId,
78
+ delay,
79
+ timeoutMs
80
+ ]);
81
+ return React.createElement(DelayGroupContext.Provider, { value }, children);
82
+ }
83
+ function useDelayGroup(context) {
84
+ var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
85
+ var { id } = options;
86
+ var groupContext = React.useContext(DelayGroupContext);
87
+ React.useEffect(function() {
88
+ if (!context.open && groupContext.currentId === id) {
89
+ groupContext.setCurrentId(null);
90
+ }
91
+ }, [context.open, id]);
92
+ React.useEffect(function() {
93
+ if (groupContext.currentId != null && groupContext.currentId !== id && context.open) {
94
+ context.onOpenChange(false);
95
+ }
96
+ }, [
97
+ groupContext.currentId,
98
+ id,
99
+ context.open
100
+ ]);
101
+ if (groupContext.currentId != null) {
102
+ return {
103
+ delay: {
104
+ open: 1,
105
+ close: getClose(groupContext.initialDelay)
106
+ },
107
+ currentId: groupContext.currentId
108
+ };
109
+ }
110
+ return {
111
+ delay: groupContext.initialDelay,
112
+ currentId: groupContext.currentId
113
+ };
114
+ }
115
+ function getClose(delay) {
116
+ if (typeof delay === "number") return delay;
117
+ var _delay_close;
118
+ return (_delay_close = delay === null || delay === void 0 ? void 0 : delay.close) !== null && _delay_close !== void 0 ? _delay_close : 0;
119
+ }