@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,227 +1,211 @@
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 utils_exports = {};
26
25
  __export(utils_exports, {
27
- activeElement: () => activeElement,
28
- clearTimeoutIfSet: () => clearTimeoutIfSet,
29
- contains: () => contains,
30
- enqueueFocus: () => enqueueFocus,
31
- findNonDisabledListIndex: () => findNonDisabledListIndex,
32
- getDocument: () => getDocument,
33
- getMaxListIndex: () => getMaxListIndex,
34
- getMinListIndex: () => getMinListIndex,
35
- getTarget: () => getTarget,
36
- isElement: () => isElement,
37
- isHTMLElement: () => isHTMLElement,
38
- isIndexOutOfListBounds: () => isIndexOutOfListBounds,
39
- isListIndexDisabled: () => isListIndexDisabled,
40
- isMac: () => isMac,
41
- isMouseLikePointerType: () => isMouseLikePointerType,
42
- isSafari: () => isSafari,
43
- isTypeableCombobox: () => isTypeableCombobox,
44
- isTypeableElement: () => isTypeableElement,
45
- isVirtualClick: () => isVirtualClick,
46
- isVirtualPointerEvent: () => isVirtualPointerEvent,
47
- matchesFocusVisible: () => matchesFocusVisible,
48
- stopEvent: () => stopEvent
26
+ activeElement: () => activeElement,
27
+ clearTimeoutIfSet: () => clearTimeoutIfSet,
28
+ contains: () => contains,
29
+ enqueueFocus: () => enqueueFocus,
30
+ findNonDisabledListIndex: () => findNonDisabledListIndex,
31
+ getDocument: () => getDocument,
32
+ getMaxListIndex: () => getMaxListIndex,
33
+ getMinListIndex: () => getMinListIndex,
34
+ getTarget: () => getTarget,
35
+ isElement: () => isElement,
36
+ isHTMLElement: () => isHTMLElement,
37
+ isIndexOutOfListBounds: () => isIndexOutOfListBounds,
38
+ isListIndexDisabled: () => isListIndexDisabled,
39
+ isMac: () => isMac,
40
+ isMouseLikePointerType: () => isMouseLikePointerType,
41
+ isSafari: () => isSafari,
42
+ isTypeableCombobox: () => isTypeableCombobox,
43
+ isTypeableElement: () => isTypeableElement,
44
+ isVirtualClick: () => isVirtualClick,
45
+ isVirtualPointerEvent: () => isVirtualPointerEvent,
46
+ matchesFocusVisible: () => matchesFocusVisible,
47
+ stopEvent: () => stopEvent
49
48
  });
50
49
  module.exports = __toCommonJS(utils_exports);
51
50
  function _instanceof(left, right) {
52
- if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
53
- return !!right[Symbol.hasInstance](left);
54
- } else {
55
- return left instanceof right;
56
- }
51
+ if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
52
+ return !!right[Symbol.hasInstance](left);
53
+ } else {
54
+ return left instanceof right;
55
+ }
57
56
  }
58
57
  function getDocument(node) {
59
- return (node === null || node === void 0 ? void 0 : node.ownerDocument) || document;
58
+ return (node === null || node === void 0 ? void 0 : node.ownerDocument) || document;
60
59
  }
61
60
  function contains(parent, child) {
62
- var _child_getRootNode;
63
- if (!parent || !child) return false;
64
- var rootNode = (_child_getRootNode = child.getRootNode) === null || _child_getRootNode === void 0 ? void 0 : _child_getRootNode.call(child);
65
- if (parent.contains(child)) return true;
66
- if (rootNode && isShadowRoot(rootNode)) {
67
- var next = child;
68
- while (next) {
69
- if (parent === next) return true;
70
- next = next.parentNode || next.host;
71
- }
72
- }
73
- return false;
61
+ var _child_getRootNode;
62
+ if (!parent || !child) return false;
63
+ var rootNode = (_child_getRootNode = child.getRootNode) === null || _child_getRootNode === void 0 ? void 0 : _child_getRootNode.call(child);
64
+ if (parent.contains(child)) return true;
65
+ if (rootNode && isShadowRoot(rootNode)) {
66
+ var next = child;
67
+ while (next) {
68
+ if (parent === next) return true;
69
+ next = next.parentNode || next.host;
70
+ }
71
+ }
72
+ return false;
74
73
  }
75
74
  function isShadowRoot(node) {
76
- return _instanceof(node, ShadowRoot);
75
+ return _instanceof(node, ShadowRoot);
77
76
  }
78
77
  function getTarget(event) {
79
- if ("composedPath" in event) {
80
- return event.composedPath()[0];
81
- }
82
- return event.target;
78
+ if ("composedPath" in event) {
79
+ return event.composedPath()[0];
80
+ }
81
+ return event.target;
83
82
  }
84
83
  function activeElement(doc) {
85
- var _el_shadowRoot;
86
- var el = doc.activeElement;
87
- while ((el === null || el === void 0 ? void 0 : (_el_shadowRoot = el.shadowRoot) === null || _el_shadowRoot === void 0 ? void 0 : _el_shadowRoot.activeElement) != null) {
88
- el = el.shadowRoot.activeElement;
89
- }
90
- return el;
84
+ var _el_shadowRoot;
85
+ var el = doc.activeElement;
86
+ while ((el === null || el === void 0 ? void 0 : (_el_shadowRoot = el.shadowRoot) === null || _el_shadowRoot === void 0 ? void 0 : _el_shadowRoot.activeElement) != null) {
87
+ el = el.shadowRoot.activeElement;
88
+ }
89
+ return el;
91
90
  }
92
91
  function isHTMLElement(value) {
93
- return _instanceof(value, HTMLElement);
92
+ return _instanceof(value, HTMLElement);
94
93
  }
95
94
  function isElement(value) {
96
- return _instanceof(value, Element);
95
+ return _instanceof(value, Element);
97
96
  }
98
97
  var TYPEABLE_SELECTOR = "input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";
99
98
  function isTypeableElement(element) {
100
- return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
99
+ return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
101
100
  }
102
101
  function isTypeableCombobox(element) {
103
- if (!element) return false;
104
- return element.getAttribute("role") === "combobox" && isTypeableElement(element);
102
+ if (!element) return false;
103
+ return element.getAttribute("role") === "combobox" && isTypeableElement(element);
105
104
  }
106
105
  function getPlatform() {
107
- var uaData = navigator.userAgentData;
108
- if (uaData === null || uaData === void 0 ? void 0 : uaData.platform) return uaData.platform;
109
- return navigator.platform;
106
+ var uaData = navigator.userAgentData;
107
+ if (uaData === null || uaData === void 0 ? void 0 : uaData.platform) return uaData.platform;
108
+ return navigator.platform;
110
109
  }
111
110
  function getUserAgent() {
112
- var uaData = navigator.userAgentData;
113
- if (uaData && Array.isArray(uaData.brands)) {
114
- return uaData.brands.map(function (param) {
115
- var {
116
- brand,
117
- version
118
- } = param;
119
- return `${brand}/${version}`;
120
- }).join(" ");
121
- }
122
- return navigator.userAgent;
111
+ var uaData = navigator.userAgentData;
112
+ if (uaData && Array.isArray(uaData.brands)) {
113
+ return uaData.brands.map(function(param) {
114
+ var { brand, version } = param;
115
+ return `${brand}/${version}`;
116
+ }).join(" ");
117
+ }
118
+ return navigator.userAgent;
123
119
  }
124
120
  function isSafari() {
125
- return /apple/i.test(navigator.vendor);
121
+ return /apple/i.test(navigator.vendor);
126
122
  }
127
123
  function isMac() {
128
- return getPlatform().toLowerCase().startsWith("mac") && !navigator.maxTouchPoints;
124
+ return getPlatform().toLowerCase().startsWith("mac") && !navigator.maxTouchPoints;
129
125
  }
130
126
  function isJSDOM() {
131
- return getUserAgent().includes("jsdom/");
127
+ return getUserAgent().includes("jsdom/");
132
128
  }
133
129
  function matchesFocusVisible(element) {
134
- if (!element || isJSDOM()) return true;
135
- try {
136
- return element.matches(":focus-visible");
137
- } catch (e) {
138
- return true;
139
- }
130
+ if (!element || isJSDOM()) return true;
131
+ try {
132
+ return element.matches(":focus-visible");
133
+ } catch (e) {
134
+ return true;
135
+ }
140
136
  }
141
137
  function isMouseLikePointerType(pointerType, strict) {
142
- var values = ["mouse", "pen"];
143
- if (!strict) {
144
- values.push("", void 0);
145
- }
146
- return values.includes(pointerType);
138
+ var values = ["mouse", "pen"];
139
+ if (!strict) {
140
+ values.push("", void 0);
141
+ }
142
+ return values.includes(pointerType);
147
143
  }
148
144
  function clearTimeoutIfSet(timeoutRef) {
149
- if (timeoutRef.current !== -1) {
150
- clearTimeout(timeoutRef.current);
151
- timeoutRef.current = -1;
152
- }
145
+ if (timeoutRef.current !== -1) {
146
+ clearTimeout(timeoutRef.current);
147
+ timeoutRef.current = -1;
148
+ }
153
149
  }
154
150
  function stopEvent(event) {
155
- event.preventDefault();
156
- event.stopPropagation();
151
+ event.preventDefault();
152
+ event.stopPropagation();
157
153
  }
158
154
  function isVirtualClick(event) {
159
- if (event.mozInputSource === 0 && event.isTrusted) return true;
160
- if (isAndroid() && event.pointerType) {
161
- return event.type === "click" && event.buttons === 1;
162
- }
163
- return event.detail === 0 && !event.pointerType;
155
+ if (event.mozInputSource === 0 && event.isTrusted) return true;
156
+ if (isAndroid() && event.pointerType) {
157
+ return event.type === "click" && event.buttons === 1;
158
+ }
159
+ return event.detail === 0 && !event.pointerType;
164
160
  }
165
161
  function isVirtualPointerEvent(event) {
166
- if (isJSDOM()) return false;
167
- return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "mouse" || event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "touch";
162
+ if (isJSDOM()) return false;
163
+ return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "mouse" || event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === "touch";
168
164
  }
169
165
  function isAndroid() {
170
- var re = /android/i;
171
- return re.test(getPlatform()) || re.test(getUserAgent());
166
+ var re = /android/i;
167
+ return re.test(getPlatform()) || re.test(getUserAgent());
172
168
  }
173
169
  var rafId = 0;
174
170
  function enqueueFocus(el) {
175
- var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
176
- var {
177
- preventScroll = false,
178
- cancelPrevious = true,
179
- sync = false
180
- } = options;
181
- cancelPrevious && cancelAnimationFrame(rafId);
182
- var exec = function () {
183
- return el === null || el === void 0 ? void 0 : el.focus({
184
- preventScroll
185
- });
186
- };
187
- if (sync) {
188
- exec();
189
- } else {
190
- rafId = requestAnimationFrame(exec);
191
- }
171
+ var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
172
+ var { preventScroll = false, cancelPrevious = true, sync = false } = options;
173
+ cancelPrevious && cancelAnimationFrame(rafId);
174
+ var exec = function() {
175
+ return el === null || el === void 0 ? void 0 : el.focus({ preventScroll });
176
+ };
177
+ if (sync) {
178
+ exec();
179
+ } else {
180
+ rafId = requestAnimationFrame(exec);
181
+ }
192
182
  }
193
183
  function isListIndexDisabled(listRef, index, disabledIndices) {
194
- if (typeof disabledIndices === "function") return disabledIndices(index);
195
- if (disabledIndices) return disabledIndices.includes(index);
196
- var element = listRef.current[index];
197
- return element == null || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true";
184
+ if (typeof disabledIndices === "function") return disabledIndices(index);
185
+ if (disabledIndices) return disabledIndices.includes(index);
186
+ var element = listRef.current[index];
187
+ return element == null || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true";
198
188
  }
199
189
  function findNonDisabledListIndex(listRef) {
200
- var {
201
- startingIndex = -1,
202
- decrement = false,
203
- disabledIndices,
204
- amount = 1
205
- } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
206
- var index = startingIndex;
207
- do {
208
- index += decrement ? -amount : amount;
209
- } while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));
210
- return index;
190
+ var { startingIndex = -1, decrement = false, disabledIndices, amount = 1 } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};
191
+ var index = startingIndex;
192
+ do {
193
+ index += decrement ? -amount : amount;
194
+ } while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));
195
+ return index;
211
196
  }
212
197
  function getMinListIndex(listRef, disabledIndices) {
213
- return findNonDisabledListIndex(listRef, {
214
- disabledIndices
215
- });
198
+ return findNonDisabledListIndex(listRef, { disabledIndices });
216
199
  }
217
200
  function getMaxListIndex(listRef, disabledIndices) {
218
- return findNonDisabledListIndex(listRef, {
219
- decrement: true,
220
- startingIndex: listRef.current.length,
221
- disabledIndices
222
- });
201
+ return findNonDisabledListIndex(listRef, {
202
+ decrement: true,
203
+ startingIndex: listRef.current.length,
204
+ disabledIndices
205
+ });
223
206
  }
224
207
  function isIndexOutOfListBounds(listRef, index) {
225
- return index < 0 || index >= listRef.current.length;
208
+ return index < 0 || index >= listRef.current.length;
226
209
  }
210
+
227
211
  //# sourceMappingURL=utils.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","utils_exports","__export","activeElement","clearTimeoutIfSet","contains","enqueueFocus","findNonDisabledListIndex","getDocument","getMaxListIndex","getMinListIndex","getTarget","isElement","isHTMLElement","isIndexOutOfListBounds","isListIndexDisabled","isMac","isMouseLikePointerType","isSafari","isTypeableCombobox","isTypeableElement","isVirtualClick","isVirtualPointerEvent","matchesFocusVisible","stopEvent","module","exports","_instanceof","left","right","Symbol","hasInstance","node","ownerDocument","document","parent","child","_child_getRootNode","rootNode","getRootNode","call","isShadowRoot","next","parentNode","host","ShadowRoot","event","composedPath","target","doc","_el_shadowRoot","el","shadowRoot","HTMLElement","Element","TYPEABLE_SELECTOR","element","matches","getAttribute","getPlatform","uaData","navigator","userAgentData","platform","getUserAgent","Array","isArray","brands","map","param","brand","version","join","userAgent","test","vendor","toLowerCase","startsWith","maxTouchPoints","isJSDOM","includes","e","pointerType","strict","values","push","timeoutRef","current","clearTimeout","preventDefault","stopPropagation","mozInputSource","isTrusted","isAndroid","type","buttons","detail","width","height","pressure","re","rafId","options","arguments","length","preventScroll","cancelPrevious","sync","cancelAnimationFrame","exec","focus","requestAnimationFrame","listRef","index","disabledIndices","hasAttribute","startingIndex","decrement","amount"],"sources":["../../../src/interactions/utils.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"utils.native.js","names":[],"sources":["cjs/interactions/utils.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 utils_exports = {};\n__export(utils_exports, {\n activeElement: () => activeElement,\n clearTimeoutIfSet: () => clearTimeoutIfSet,\n contains: () => contains,\n enqueueFocus: () => enqueueFocus,\n findNonDisabledListIndex: () => findNonDisabledListIndex,\n getDocument: () => getDocument,\n getMaxListIndex: () => getMaxListIndex,\n getMinListIndex: () => getMinListIndex,\n getTarget: () => getTarget,\n isElement: () => isElement,\n isHTMLElement: () => isHTMLElement,\n isIndexOutOfListBounds: () => isIndexOutOfListBounds,\n isListIndexDisabled: () => isListIndexDisabled,\n isMac: () => isMac,\n isMouseLikePointerType: () => isMouseLikePointerType,\n isSafari: () => isSafari,\n isTypeableCombobox: () => isTypeableCombobox,\n isTypeableElement: () => isTypeableElement,\n isVirtualClick: () => isVirtualClick,\n isVirtualPointerEvent: () => isVirtualPointerEvent,\n matchesFocusVisible: () => matchesFocusVisible,\n stopEvent: () => stopEvent\n});\nmodule.exports = __toCommonJS(utils_exports);\nfunction _instanceof(left, right) {\n if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) {\n return !!right[Symbol.hasInstance](left);\n } else {\n return left instanceof right;\n }\n}\nfunction getDocument(node) {\n return (node === null || node === void 0 ? void 0 : node.ownerDocument) || document;\n}\nfunction contains(parent, child) {\n var _child_getRootNode;\n if (!parent || !child) return false;\n var rootNode = (_child_getRootNode = child.getRootNode) === null || _child_getRootNode === void 0 ? void 0 : _child_getRootNode.call(child);\n if (parent.contains(child)) return true;\n if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n while (next) {\n if (parent === next) return true;\n next = next.parentNode || next.host;\n }\n }\n return false;\n}\nfunction isShadowRoot(node) {\n return _instanceof(node, ShadowRoot);\n}\nfunction getTarget(event) {\n if (\"composedPath\" in event) {\n return event.composedPath()[0];\n }\n return event.target;\n}\nfunction activeElement(doc) {\n var _el_shadowRoot;\n var el = doc.activeElement;\n while ((el === null || el === void 0 ? void 0 : (_el_shadowRoot = el.shadowRoot) === null || _el_shadowRoot === void 0 ? void 0 : _el_shadowRoot.activeElement) != null) {\n el = el.shadowRoot.activeElement;\n }\n return el;\n}\nfunction isHTMLElement(value) {\n return _instanceof(value, HTMLElement);\n}\nfunction isElement(value) {\n return _instanceof(value, Element);\n}\nvar TYPEABLE_SELECTOR = \"input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])\";\nfunction isTypeableElement(element) {\n return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);\n}\nfunction isTypeableCombobox(element) {\n if (!element) return false;\n return element.getAttribute(\"role\") === \"combobox\" && isTypeableElement(element);\n}\nfunction getPlatform() {\n var uaData = navigator.userAgentData;\n if (uaData === null || uaData === void 0 ? void 0 : uaData.platform) return uaData.platform;\n return navigator.platform;\n}\nfunction getUserAgent() {\n var uaData = navigator.userAgentData;\n if (uaData && Array.isArray(uaData.brands)) {\n return uaData.brands.map(function(param) {\n var { brand, version } = param;\n return `${brand}/${version}`;\n }).join(\" \");\n }\n return navigator.userAgent;\n}\nfunction isSafari() {\n return /apple/i.test(navigator.vendor);\n}\nfunction isMac() {\n return getPlatform().toLowerCase().startsWith(\"mac\") && !navigator.maxTouchPoints;\n}\nfunction isJSDOM() {\n return getUserAgent().includes(\"jsdom/\");\n}\nfunction matchesFocusVisible(element) {\n if (!element || isJSDOM()) return true;\n try {\n return element.matches(\":focus-visible\");\n } catch (e) {\n return true;\n }\n}\nfunction isMouseLikePointerType(pointerType, strict) {\n var values = [\n \"mouse\",\n \"pen\"\n ];\n if (!strict) {\n values.push(\"\", void 0);\n }\n return values.includes(pointerType);\n}\nfunction clearTimeoutIfSet(timeoutRef) {\n if (timeoutRef.current !== -1) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = -1;\n }\n}\nfunction stopEvent(event) {\n event.preventDefault();\n event.stopPropagation();\n}\nfunction isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) return true;\n if (isAndroid() && event.pointerType) {\n return event.type === \"click\" && event.buttons === 1;\n }\n return event.detail === 0 && !event.pointerType;\n}\nfunction isVirtualPointerEvent(event) {\n if (isJSDOM()) return false;\n return !isAndroid() && event.width === 0 && event.height === 0 || isAndroid() && event.width === 1 && event.height === 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === \"mouse\" || event.width < 1 && event.height < 1 && event.pressure === 0 && event.detail === 0 && event.pointerType === \"touch\";\n}\nfunction isAndroid() {\n var re = /android/i;\n return re.test(getPlatform()) || re.test(getUserAgent());\n}\nvar rafId = 0;\nfunction enqueueFocus(el) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var { preventScroll = false, cancelPrevious = true, sync = false } = options;\n cancelPrevious && cancelAnimationFrame(rafId);\n var exec = function() {\n return el === null || el === void 0 ? void 0 : el.focus({\n preventScroll\n });\n };\n if (sync) {\n exec();\n } else {\n rafId = requestAnimationFrame(exec);\n }\n}\nfunction isListIndexDisabled(listRef, index, disabledIndices) {\n if (typeof disabledIndices === \"function\") return disabledIndices(index);\n if (disabledIndices) return disabledIndices.includes(index);\n var element = listRef.current[index];\n return element == null || element.hasAttribute(\"disabled\") || element.getAttribute(\"aria-disabled\") === \"true\";\n}\nfunction findNonDisabledListIndex(listRef) {\n var { startingIndex = -1, decrement = false, disabledIndices, amount = 1 } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var index = startingIndex;\n do {\n index += decrement ? -amount : amount;\n } while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));\n return index;\n}\nfunction getMinListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n disabledIndices\n });\n}\nfunction getMaxListIndex(listRef, disabledIndices) {\n return findNonDisabledListIndex(listRef, {\n decrement: true,\n startingIndex: listRef.current.length,\n disabledIndices\n });\n}\nfunction isIndexOutOfListBounds(listRef, index) {\n return index < 0 || index >= listRef.current.length;\n}\n//# sourceMappingURL=utils.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,114 +6,86 @@ 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 inner_exports = {};
35
- __export(inner_exports, {
36
- inner: () => inner
37
- });
29
+ __export(inner_exports, { inner: () => inner });
38
30
  module.exports = __toCommonJS(inner_exports);
39
31
  var ReactDOM = __toESM(require("react-dom"), 1);
40
32
  var import_react_dom = require("@floating-ui/react-dom");
41
33
  function getArgsWithCustomFloatingHeight(state, height) {
42
- return {
43
- ...state,
44
- rects: {
45
- ...state.rects,
46
- floating: {
47
- ...state.rects.floating,
48
- height
49
- }
50
- }
51
- };
34
+ return {
35
+ ...state,
36
+ rects: {
37
+ ...state.rects,
38
+ floating: {
39
+ ...state.rects.floating,
40
+ height
41
+ }
42
+ }
43
+ };
52
44
  }
53
- const inner = props => ({
54
- name: "inner",
55
- options: props,
56
- async fn(state) {
57
- const {
58
- listRef,
59
- overflowRef,
60
- onFallbackChange,
61
- offset: innerOffset = 0,
62
- index = 0,
63
- minItemsVisible = 4,
64
- referenceOverflowThreshold = 0,
65
- scrollRef,
66
- padding = 0
67
- } = props;
68
- const {
69
- rects,
70
- elements: {
71
- floating
72
- }
73
- } = state;
74
- const item = listRef.current?.[index ?? 0];
75
- const scrollEl = scrollRef?.current || floating;
76
- const clientTop = floating.clientTop || scrollEl.clientTop;
77
- const floatingIsBordered = floating.clientTop !== 0;
78
- const scrollElIsBordered = scrollEl.clientTop !== 0;
79
- const floatingIsScrollEl = floating === scrollEl;
80
- if (!item || index == null) {
81
- onFallbackChange?.(true);
82
- return {};
83
- }
84
- const nextArgs = {
85
- ...state,
86
- ...(await (0, import_react_dom.offset)(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))
87
- };
88
- const detectOverflowOptions = {
89
- padding
90
- };
91
- const overflow = await (0, import_react_dom.detectOverflow)(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);
92
- const refOverflow = await (0, import_react_dom.detectOverflow)(nextArgs, {
93
- ...detectOverflowOptions,
94
- elementContext: "reference"
95
- });
96
- const diffY = Math.max(0, overflow.top);
97
- const nextY = nextArgs.y + diffY;
98
- const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;
99
- const rounder = isScrollable ? v => v : Math.round;
100
- const maxHeight = rounder(Math.max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - Math.max(0, overflow.bottom)));
101
- scrollEl.style.maxHeight = `${maxHeight}px`;
102
- scrollEl.scrollTop = diffY;
103
- if (onFallbackChange) {
104
- const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current?.length ?? 0) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;
105
- ReactDOM.flushSync(() => onFallbackChange(shouldFallback));
106
- }
107
- if (overflowRef) {
108
- ;
109
- overflowRef.current = await (0, import_react_dom.detectOverflow)(getArgsWithCustomFloatingHeight({
110
- ...nextArgs,
111
- y: nextY
112
- }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);
113
- }
114
- return {
115
- y: nextY
116
- };
117
- }
118
- });
45
+ const inner = (props) => ({
46
+ name: "inner",
47
+ options: props,
48
+ async fn(state) {
49
+ const { listRef, overflowRef, onFallbackChange, offset: innerOffset = 0, index = 0, minItemsVisible = 4, referenceOverflowThreshold = 0, scrollRef, padding = 0 } = props;
50
+ const { rects, elements: { floating } } = state;
51
+ const item = listRef.current?.[index ?? 0];
52
+ const scrollEl = scrollRef?.current || floating;
53
+ const clientTop = floating.clientTop || scrollEl.clientTop;
54
+ const floatingIsBordered = floating.clientTop !== 0;
55
+ const scrollElIsBordered = scrollEl.clientTop !== 0;
56
+ const floatingIsScrollEl = floating === scrollEl;
57
+ if (!item || index == null) {
58
+ onFallbackChange?.(true);
59
+ return {};
60
+ }
61
+ const nextArgs = {
62
+ ...state,
63
+ ...await (0, import_react_dom.offset)(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state)
64
+ };
65
+ const detectOverflowOptions = { padding };
66
+ const overflow = await (0, import_react_dom.detectOverflow)(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions);
67
+ const refOverflow = await (0, import_react_dom.detectOverflow)(nextArgs, {
68
+ ...detectOverflowOptions,
69
+ elementContext: "reference"
70
+ });
71
+ const diffY = Math.max(0, overflow.top);
72
+ const nextY = nextArgs.y + diffY;
73
+ const isScrollable = scrollEl.scrollHeight > scrollEl.clientHeight;
74
+ const rounder = isScrollable ? (v) => v : Math.round;
75
+ const maxHeight = rounder(Math.max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - Math.max(0, overflow.bottom)));
76
+ scrollEl.style.maxHeight = `${maxHeight}px`;
77
+ scrollEl.scrollTop = diffY;
78
+ if (onFallbackChange) {
79
+ const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current?.length ?? 0) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;
80
+ ReactDOM.flushSync(() => onFallbackChange(shouldFallback));
81
+ }
82
+ if (overflowRef) {
83
+ ;
84
+ overflowRef.current = await (0, import_react_dom.detectOverflow)(getArgsWithCustomFloatingHeight({
85
+ ...nextArgs,
86
+ y: nextY
87
+ }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions);
88
+ }
89
+ return { y: nextY };
90
+ }
91
+ });