@hanzogui/floating 2.0.0

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 (187) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/Floating.cjs +18 -0
  3. package/dist/cjs/Floating.native.js +37 -0
  4. package/dist/cjs/Floating.native.js.map +1 -0
  5. package/dist/cjs/index.cjs +71 -0
  6. package/dist/cjs/index.native.js +74 -0
  7. package/dist/cjs/index.native.js.map +1 -0
  8. package/dist/cjs/interactions/PopupTriggerMap.cjs +40 -0
  9. package/dist/cjs/interactions/PopupTriggerMap.native.js +73 -0
  10. package/dist/cjs/interactions/PopupTriggerMap.native.js.map +1 -0
  11. package/dist/cjs/interactions/createFloatingEvents.cjs +41 -0
  12. package/dist/cjs/interactions/createFloatingEvents.native.js +47 -0
  13. package/dist/cjs/interactions/createFloatingEvents.native.js.map +1 -0
  14. package/dist/cjs/interactions/safePolygon.cjs +191 -0
  15. package/dist/cjs/interactions/safePolygon.native.js +205 -0
  16. package/dist/cjs/interactions/safePolygon.native.js.map +1 -0
  17. package/dist/cjs/interactions/types.cjs +16 -0
  18. package/dist/cjs/interactions/types.native.js +19 -0
  19. package/dist/cjs/interactions/types.native.js.map +1 -0
  20. package/dist/cjs/interactions/useClick.cjs +82 -0
  21. package/dist/cjs/interactions/useClick.native.js +90 -0
  22. package/dist/cjs/interactions/useClick.native.js.map +1 -0
  23. package/dist/cjs/interactions/useDelayGroup.cjs +96 -0
  24. package/dist/cjs/interactions/useDelayGroup.native.js +109 -0
  25. package/dist/cjs/interactions/useDelayGroup.native.js.map +1 -0
  26. package/dist/cjs/interactions/useFocus.cjs +101 -0
  27. package/dist/cjs/interactions/useFocus.native.js +113 -0
  28. package/dist/cjs/interactions/useFocus.native.js.map +1 -0
  29. package/dist/cjs/interactions/useHover.cjs +224 -0
  30. package/dist/cjs/interactions/useHover.native.js +248 -0
  31. package/dist/cjs/interactions/useHover.native.js.map +1 -0
  32. package/dist/cjs/interactions/useInnerOffset.cjs +104 -0
  33. package/dist/cjs/interactions/useInnerOffset.native.js +118 -0
  34. package/dist/cjs/interactions/useInnerOffset.native.js.map +1 -0
  35. package/dist/cjs/interactions/useInteractions.cjs +76 -0
  36. package/dist/cjs/interactions/useInteractions.native.js +164 -0
  37. package/dist/cjs/interactions/useInteractions.native.js.map +1 -0
  38. package/dist/cjs/interactions/useListNavigation.cjs +253 -0
  39. package/dist/cjs/interactions/useListNavigation.native.js +297 -0
  40. package/dist/cjs/interactions/useListNavigation.native.js.map +1 -0
  41. package/dist/cjs/interactions/useRole.cjs +112 -0
  42. package/dist/cjs/interactions/useRole.native.js +128 -0
  43. package/dist/cjs/interactions/useRole.native.js.map +1 -0
  44. package/dist/cjs/interactions/useTypeahead.cjs +93 -0
  45. package/dist/cjs/interactions/useTypeahead.native.js +114 -0
  46. package/dist/cjs/interactions/useTypeahead.native.js.map +1 -0
  47. package/dist/cjs/interactions/utils.cjs +178 -0
  48. package/dist/cjs/interactions/utils.native.js +188 -0
  49. package/dist/cjs/interactions/utils.native.js.map +1 -0
  50. package/dist/cjs/middleware/inner.cjs +106 -0
  51. package/dist/cjs/middleware/inner.native.js +120 -0
  52. package/dist/cjs/middleware/inner.native.js.map +1 -0
  53. package/dist/cjs/useFloating.cjs +61 -0
  54. package/dist/cjs/useFloating.native.js +67 -0
  55. package/dist/cjs/useFloating.native.js.map +1 -0
  56. package/dist/esm/Floating.mjs +2 -0
  57. package/dist/esm/Floating.mjs.map +1 -0
  58. package/dist/esm/Floating.native.js +8 -0
  59. package/dist/esm/Floating.native.js.map +1 -0
  60. package/dist/esm/index.js +18 -0
  61. package/dist/esm/index.js.map +1 -0
  62. package/dist/esm/index.mjs +18 -0
  63. package/dist/esm/index.mjs.map +1 -0
  64. package/dist/esm/index.native.js +18 -0
  65. package/dist/esm/index.native.js.map +1 -0
  66. package/dist/esm/interactions/PopupTriggerMap.mjs +17 -0
  67. package/dist/esm/interactions/PopupTriggerMap.mjs.map +1 -0
  68. package/dist/esm/interactions/PopupTriggerMap.native.js +47 -0
  69. package/dist/esm/interactions/PopupTriggerMap.native.js.map +1 -0
  70. package/dist/esm/interactions/createFloatingEvents.mjs +18 -0
  71. package/dist/esm/interactions/createFloatingEvents.mjs.map +1 -0
  72. package/dist/esm/interactions/createFloatingEvents.native.js +21 -0
  73. package/dist/esm/interactions/createFloatingEvents.native.js.map +1 -0
  74. package/dist/esm/interactions/safePolygon.mjs +168 -0
  75. package/dist/esm/interactions/safePolygon.mjs.map +1 -0
  76. package/dist/esm/interactions/safePolygon.native.js +179 -0
  77. package/dist/esm/interactions/safePolygon.native.js.map +1 -0
  78. package/dist/esm/interactions/types.mjs +2 -0
  79. package/dist/esm/interactions/types.mjs.map +1 -0
  80. package/dist/esm/interactions/types.native.js +2 -0
  81. package/dist/esm/interactions/types.native.js.map +1 -0
  82. package/dist/esm/interactions/useClick.mjs +59 -0
  83. package/dist/esm/interactions/useClick.mjs.map +1 -0
  84. package/dist/esm/interactions/useClick.native.js +64 -0
  85. package/dist/esm/interactions/useClick.native.js.map +1 -0
  86. package/dist/esm/interactions/useDelayGroup.mjs +60 -0
  87. package/dist/esm/interactions/useDelayGroup.mjs.map +1 -0
  88. package/dist/esm/interactions/useDelayGroup.native.js +70 -0
  89. package/dist/esm/interactions/useDelayGroup.native.js.map +1 -0
  90. package/dist/esm/interactions/useFocus.mjs +78 -0
  91. package/dist/esm/interactions/useFocus.mjs.map +1 -0
  92. package/dist/esm/interactions/useFocus.native.js +87 -0
  93. package/dist/esm/interactions/useFocus.native.js.map +1 -0
  94. package/dist/esm/interactions/useHover.mjs +189 -0
  95. package/dist/esm/interactions/useHover.mjs.map +1 -0
  96. package/dist/esm/interactions/useHover.native.js +210 -0
  97. package/dist/esm/interactions/useHover.native.js.map +1 -0
  98. package/dist/esm/interactions/useInnerOffset.mjs +70 -0
  99. package/dist/esm/interactions/useInnerOffset.mjs.map +1 -0
  100. package/dist/esm/interactions/useInnerOffset.native.js +81 -0
  101. package/dist/esm/interactions/useInnerOffset.native.js.map +1 -0
  102. package/dist/esm/interactions/useInteractions.mjs +53 -0
  103. package/dist/esm/interactions/useInteractions.mjs.map +1 -0
  104. package/dist/esm/interactions/useInteractions.native.js +138 -0
  105. package/dist/esm/interactions/useInteractions.native.js.map +1 -0
  106. package/dist/esm/interactions/useListNavigation.mjs +230 -0
  107. package/dist/esm/interactions/useListNavigation.mjs.map +1 -0
  108. package/dist/esm/interactions/useListNavigation.native.js +271 -0
  109. package/dist/esm/interactions/useListNavigation.native.js.map +1 -0
  110. package/dist/esm/interactions/useRole.mjs +78 -0
  111. package/dist/esm/interactions/useRole.mjs.map +1 -0
  112. package/dist/esm/interactions/useRole.native.js +91 -0
  113. package/dist/esm/interactions/useRole.native.js.map +1 -0
  114. package/dist/esm/interactions/useTypeahead.mjs +70 -0
  115. package/dist/esm/interactions/useTypeahead.mjs.map +1 -0
  116. package/dist/esm/interactions/useTypeahead.native.js +88 -0
  117. package/dist/esm/interactions/useTypeahead.native.js.map +1 -0
  118. package/dist/esm/interactions/utils.mjs +134 -0
  119. package/dist/esm/interactions/utils.mjs.map +1 -0
  120. package/dist/esm/interactions/utils.native.js +141 -0
  121. package/dist/esm/interactions/utils.native.js.map +1 -0
  122. package/dist/esm/middleware/inner.mjs +72 -0
  123. package/dist/esm/middleware/inner.mjs.map +1 -0
  124. package/dist/esm/middleware/inner.native.js +83 -0
  125. package/dist/esm/middleware/inner.native.js.map +1 -0
  126. package/dist/esm/useFloating.mjs +26 -0
  127. package/dist/esm/useFloating.mjs.map +1 -0
  128. package/dist/esm/useFloating.native.js +29 -0
  129. package/dist/esm/useFloating.native.js.map +1 -0
  130. package/package.json +50 -0
  131. package/src/Floating.native.tsx +45 -0
  132. package/src/Floating.tsx +1 -0
  133. package/src/index.ts +116 -0
  134. package/src/interactions/PopupTriggerMap.ts +30 -0
  135. package/src/interactions/createFloatingEvents.ts +34 -0
  136. package/src/interactions/safePolygon.ts +500 -0
  137. package/src/interactions/types.ts +165 -0
  138. package/src/interactions/useClick.ts +148 -0
  139. package/src/interactions/useDelayGroup.ts +114 -0
  140. package/src/interactions/useFocus.ts +164 -0
  141. package/src/interactions/useHover.ts +453 -0
  142. package/src/interactions/useInnerOffset.ts +116 -0
  143. package/src/interactions/useInteractions.ts +101 -0
  144. package/src/interactions/useListNavigation.ts +578 -0
  145. package/src/interactions/useRole.ts +103 -0
  146. package/src/interactions/useTypeahead.ts +173 -0
  147. package/src/interactions/utils.ts +234 -0
  148. package/src/middleware/inner.ts +142 -0
  149. package/src/useFloating.tsx +53 -0
  150. package/types/Floating.d.ts +2 -0
  151. package/types/Floating.d.ts.map +1 -0
  152. package/types/Floating.native.d.ts +41 -0
  153. package/types/Floating.native.d.ts.map +1 -0
  154. package/types/index.d.ts +19 -0
  155. package/types/index.d.ts.map +1 -0
  156. package/types/interactions/PopupTriggerMap.d.ts +8 -0
  157. package/types/interactions/PopupTriggerMap.d.ts.map +1 -0
  158. package/types/interactions/createFloatingEvents.d.ts +7 -0
  159. package/types/interactions/createFloatingEvents.d.ts.map +1 -0
  160. package/types/interactions/safePolygon.d.ts +4 -0
  161. package/types/interactions/safePolygon.d.ts.map +1 -0
  162. package/types/interactions/types.d.ts +123 -0
  163. package/types/interactions/types.d.ts.map +1 -0
  164. package/types/interactions/useClick.d.ts +3 -0
  165. package/types/interactions/useClick.d.ts.map +1 -0
  166. package/types/interactions/useDelayGroup.d.ts +23 -0
  167. package/types/interactions/useDelayGroup.d.ts.map +1 -0
  168. package/types/interactions/useFocus.d.ts +3 -0
  169. package/types/interactions/useFocus.d.ts.map +1 -0
  170. package/types/interactions/useHover.d.ts +6 -0
  171. package/types/interactions/useHover.d.ts.map +1 -0
  172. package/types/interactions/useInnerOffset.d.ts +3 -0
  173. package/types/interactions/useInnerOffset.d.ts.map +1 -0
  174. package/types/interactions/useInteractions.d.ts +8 -0
  175. package/types/interactions/useInteractions.d.ts.map +1 -0
  176. package/types/interactions/useListNavigation.d.ts +3 -0
  177. package/types/interactions/useListNavigation.d.ts.map +1 -0
  178. package/types/interactions/useRole.d.ts +3 -0
  179. package/types/interactions/useRole.d.ts.map +1 -0
  180. package/types/interactions/useTypeahead.d.ts +3 -0
  181. package/types/interactions/useTypeahead.d.ts.map +1 -0
  182. package/types/interactions/utils.d.ts +46 -0
  183. package/types/interactions/utils.d.ts.map +1 -0
  184. package/types/middleware/inner.d.ts +14 -0
  185. package/types/middleware/inner.d.ts.map +1 -0
  186. package/types/useFloating.d.ts +28 -0
  187. package/types/useFloating.d.ts.map +1 -0
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: !0
22
+ }), mod);
23
+ var useTypeahead_exports = {};
24
+ __export(useTypeahead_exports, {
25
+ useTypeahead: () => useTypeahead
26
+ });
27
+ module.exports = __toCommonJS(useTypeahead_exports);
28
+ var import_react = require("react"),
29
+ import_use_event = require("@hanzogui/use-event"),
30
+ import_utils = require("./utils.native.js");
31
+ function useTypeahead(context, props) {
32
+ var {
33
+ open,
34
+ dataRef
35
+ } = context,
36
+ {
37
+ listRef,
38
+ activeIndex,
39
+ onMatch: unstable_onMatch,
40
+ onTypingChange: unstable_onTypingChange,
41
+ enabled = !0,
42
+ findMatch = null,
43
+ resetMs = 750,
44
+ ignoreKeys = [],
45
+ selectedIndex = null
46
+ } = props,
47
+ timeoutIdRef = (0, import_react.useRef)(-1),
48
+ stringRef = (0, import_react.useRef)(""),
49
+ _ref,
50
+ prevIndexRef = (0, import_react.useRef)((_ref = selectedIndex ?? activeIndex) !== null && _ref !== void 0 ? _ref : -1),
51
+ matchIndexRef = (0, import_react.useRef)(null),
52
+ onMatch = (0, import_use_event.useEvent)(unstable_onMatch || function () {}),
53
+ onTypingChange = (0, import_use_event.useEvent)(unstable_onTypingChange || function () {}),
54
+ findMatchRef = (0, import_react.useRef)(findMatch);
55
+ findMatchRef.current = findMatch;
56
+ var ignoreKeysRef = (0, import_react.useRef)(ignoreKeys);
57
+ ignoreKeysRef.current = ignoreKeys, (0, import_react.useLayoutEffect)(function () {
58
+ open && ((0, import_utils.clearTimeoutIfSet)(timeoutIdRef), matchIndexRef.current = null, stringRef.current = "");
59
+ }, [open]), (0, import_react.useLayoutEffect)(function () {
60
+ if (open && stringRef.current === "") {
61
+ var _ref2;
62
+ prevIndexRef.current = (_ref2 = selectedIndex ?? activeIndex) !== null && _ref2 !== void 0 ? _ref2 : -1;
63
+ }
64
+ }, [open, selectedIndex, activeIndex]);
65
+ var setTypingChange = function (value) {
66
+ value ? dataRef.current.typing || (dataRef.current.typing = value, onTypingChange(value)) : dataRef.current.typing && (dataRef.current.typing = value, onTypingChange(value));
67
+ },
68
+ onKeyDown = function (event) {
69
+ function getMatchingIndex(list, orderedList, string) {
70
+ var str = findMatchRef.current ? findMatchRef.current(orderedList, string) : orderedList.find(function (text) {
71
+ return text?.toLocaleLowerCase().indexOf(string.toLocaleLowerCase()) === 0;
72
+ });
73
+ return str ? list.indexOf(str) : -1;
74
+ }
75
+ var listContent = listRef.current;
76
+ if (stringRef.current.length > 0 && stringRef.current[0] !== " " && (getMatchingIndex(listContent, listContent, stringRef.current) === -1 ? setTypingChange(!1) : event.key === " " && (0, import_utils.stopEvent)(event)), !(listContent == null || ignoreKeysRef.current.includes(event.key) ||
77
+ // character key
78
+ event.key.length !== 1 ||
79
+ // modifier key
80
+ event.ctrlKey || event.metaKey || event.altKey)) {
81
+ open && event.key !== " " && ((0, import_utils.stopEvent)(event), setTypingChange(!0));
82
+ var allowRapidSuccessionOfFirstLetter = listContent.every(function (text) {
83
+ var _text_, _text_1;
84
+ return text ? ((_text_ = text[0]) === null || _text_ === void 0 ? void 0 : _text_.toLocaleLowerCase()) !== ((_text_1 = text[1]) === null || _text_1 === void 0 ? void 0 : _text_1.toLocaleLowerCase()) : !0;
85
+ });
86
+ allowRapidSuccessionOfFirstLetter && stringRef.current === event.key && (stringRef.current = "", prevIndexRef.current = matchIndexRef.current), stringRef.current += event.key, (0, import_utils.clearTimeoutIfSet)(timeoutIdRef), timeoutIdRef.current = window.setTimeout(function () {
87
+ stringRef.current = "", prevIndexRef.current = matchIndexRef.current, setTypingChange(!1);
88
+ }, resetMs);
89
+ var prevIndex = prevIndexRef.current,
90
+ index = getMatchingIndex(listContent, [...listContent.slice((prevIndex || 0) + 1), ...listContent.slice(0, (prevIndex || 0) + 1)], stringRef.current);
91
+ index !== -1 ? (onMatch(index), matchIndexRef.current = index) : event.key !== " " && (stringRef.current = "", setTypingChange(!1));
92
+ }
93
+ },
94
+ reference = (0, import_react.useMemo)(function () {
95
+ return {
96
+ onKeyDown
97
+ };
98
+ }, [open, enabled]),
99
+ floating = (0, import_react.useMemo)(function () {
100
+ return {
101
+ onKeyDown,
102
+ onKeyUp(event) {
103
+ event.key === " " && setTypingChange(!1);
104
+ }
105
+ };
106
+ }, [open, enabled]);
107
+ return (0, import_react.useMemo)(function () {
108
+ return enabled ? {
109
+ reference,
110
+ floating
111
+ } : {};
112
+ }, [enabled, reference, floating]);
113
+ }
114
+ //# sourceMappingURL=useTypeahead.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","useTypeahead_exports","__export","useTypeahead","module","exports","import_react","require","import_use_event","import_utils","context","props","open","dataRef","listRef","activeIndex","onMatch","unstable_onMatch","onTypingChange","unstable_onTypingChange","enabled","findMatch","resetMs","ignoreKeys","selectedIndex","timeoutIdRef","useRef","stringRef","_ref","prevIndexRef","matchIndexRef","useEvent","findMatchRef","current","ignoreKeysRef","useLayoutEffect","clearTimeoutIfSet","_ref2","setTypingChange","typing","onKeyDown","event","getMatchingIndex","list","orderedList","string","str","find","text","toLocaleLowerCase","indexOf","listContent","length","key","stopEvent","includes","ctrlKey","metaKey","altKey","allowRapidSuccessionOfFirstLetter","every","_text_","_text_1","window","setTimeout","prevIndex","index","slice","reference","useMemo","floating","onKeyUp"],"sources":["../../../src/interactions/useTypeahead.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,178 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: !0
9
+ });
10
+ },
11
+ __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
13
+ get: () => from[key],
14
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
15
+ });
16
+ return to;
17
+ };
18
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
19
+ value: !0
20
+ }), mod);
21
+ var utils_exports = {};
22
+ __export(utils_exports, {
23
+ activeElement: () => activeElement,
24
+ clearTimeoutIfSet: () => clearTimeoutIfSet,
25
+ contains: () => contains,
26
+ enqueueFocus: () => enqueueFocus,
27
+ findNonDisabledListIndex: () => findNonDisabledListIndex,
28
+ getDocument: () => getDocument,
29
+ getMaxListIndex: () => getMaxListIndex,
30
+ getMinListIndex: () => getMinListIndex,
31
+ getTarget: () => getTarget,
32
+ isElement: () => isElement,
33
+ isHTMLElement: () => isHTMLElement,
34
+ isIndexOutOfListBounds: () => isIndexOutOfListBounds,
35
+ isListIndexDisabled: () => isListIndexDisabled,
36
+ isMac: () => isMac,
37
+ isMouseLikePointerType: () => isMouseLikePointerType,
38
+ isSafari: () => isSafari,
39
+ isTypeableCombobox: () => isTypeableCombobox,
40
+ isTypeableElement: () => isTypeableElement,
41
+ isVirtualClick: () => isVirtualClick,
42
+ isVirtualPointerEvent: () => isVirtualPointerEvent,
43
+ matchesFocusVisible: () => matchesFocusVisible,
44
+ stopEvent: () => stopEvent
45
+ });
46
+ module.exports = __toCommonJS(utils_exports);
47
+ function getDocument(node) {
48
+ return node?.ownerDocument || document;
49
+ }
50
+ function contains(parent, child) {
51
+ if (!parent || !child) return !1;
52
+ const rootNode = child.getRootNode?.();
53
+ if (parent.contains(child)) return !0;
54
+ if (rootNode && isShadowRoot(rootNode)) {
55
+ let next = child;
56
+ for (; next;) {
57
+ if (parent === next) return !0;
58
+ next = next.parentNode || next.host;
59
+ }
60
+ }
61
+ return !1;
62
+ }
63
+ function isShadowRoot(node) {
64
+ return node instanceof ShadowRoot;
65
+ }
66
+ function getTarget(event) {
67
+ return "composedPath" in event ? event.composedPath()[0] : event.target;
68
+ }
69
+ function activeElement(doc) {
70
+ let el = doc.activeElement;
71
+ for (; el?.shadowRoot?.activeElement != null;) el = el.shadowRoot.activeElement;
72
+ return el;
73
+ }
74
+ function isHTMLElement(value) {
75
+ return value instanceof HTMLElement;
76
+ }
77
+ function isElement(value) {
78
+ return value instanceof Element;
79
+ }
80
+ const TYPEABLE_SELECTOR = "input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";
81
+ function isTypeableElement(element) {
82
+ return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
83
+ }
84
+ function isTypeableCombobox(element) {
85
+ return element ? element.getAttribute("role") === "combobox" && isTypeableElement(element) : !1;
86
+ }
87
+ function getPlatform() {
88
+ const uaData = navigator.userAgentData;
89
+ return uaData?.platform ? uaData.platform : navigator.platform;
90
+ }
91
+ function getUserAgent() {
92
+ const uaData = navigator.userAgentData;
93
+ return uaData && Array.isArray(uaData.brands) ? uaData.brands.map(({
94
+ brand,
95
+ version
96
+ }) => `${brand}/${version}`).join(" ") : navigator.userAgent;
97
+ }
98
+ function isSafari() {
99
+ return /apple/i.test(navigator.vendor);
100
+ }
101
+ function isMac() {
102
+ return getPlatform().toLowerCase().startsWith("mac") && !navigator.maxTouchPoints;
103
+ }
104
+ function isJSDOM() {
105
+ return getUserAgent().includes("jsdom/");
106
+ }
107
+ function matchesFocusVisible(element) {
108
+ if (!element || isJSDOM()) return !0;
109
+ try {
110
+ return element.matches(":focus-visible");
111
+ } catch {
112
+ return !0;
113
+ }
114
+ }
115
+ function isMouseLikePointerType(pointerType, strict) {
116
+ const values = ["mouse", "pen"];
117
+ return strict || values.push("", void 0), values.includes(pointerType);
118
+ }
119
+ function clearTimeoutIfSet(timeoutRef) {
120
+ timeoutRef.current !== -1 && (clearTimeout(timeoutRef.current), timeoutRef.current = -1);
121
+ }
122
+ function stopEvent(event) {
123
+ event.preventDefault(), event.stopPropagation();
124
+ }
125
+ function isVirtualClick(event) {
126
+ return event.mozInputSource === 0 && event.isTrusted ? !0 : isAndroid() && event.pointerType ? event.type === "click" && event.buttons === 1 : event.detail === 0 && !event.pointerType;
127
+ }
128
+ function isVirtualPointerEvent(event) {
129
+ return isJSDOM() ? !1 : !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";
130
+ }
131
+ function isAndroid() {
132
+ const re = /android/i;
133
+ return re.test(getPlatform()) || re.test(getUserAgent());
134
+ }
135
+ let rafId = 0;
136
+ function enqueueFocus(el, options = {}) {
137
+ const {
138
+ preventScroll = !1,
139
+ cancelPrevious = !0,
140
+ sync = !1
141
+ } = options;
142
+ cancelPrevious && cancelAnimationFrame(rafId);
143
+ const exec = () => el?.focus({
144
+ preventScroll
145
+ });
146
+ sync ? exec() : rafId = requestAnimationFrame(exec);
147
+ }
148
+ function isListIndexDisabled(listRef, index, disabledIndices) {
149
+ if (typeof disabledIndices == "function") return disabledIndices(index);
150
+ if (disabledIndices) return disabledIndices.includes(index);
151
+ const element = listRef.current[index];
152
+ return element == null || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true";
153
+ }
154
+ function findNonDisabledListIndex(listRef, {
155
+ startingIndex = -1,
156
+ decrement = !1,
157
+ disabledIndices,
158
+ amount = 1
159
+ } = {}) {
160
+ let index = startingIndex;
161
+ do index += decrement ? -amount : amount; while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));
162
+ return index;
163
+ }
164
+ function getMinListIndex(listRef, disabledIndices) {
165
+ return findNonDisabledListIndex(listRef, {
166
+ disabledIndices
167
+ });
168
+ }
169
+ function getMaxListIndex(listRef, disabledIndices) {
170
+ return findNonDisabledListIndex(listRef, {
171
+ decrement: !0,
172
+ startingIndex: listRef.current.length,
173
+ disabledIndices
174
+ });
175
+ }
176
+ function isIndexOutOfListBounds(listRef, index) {
177
+ return index < 0 || index >= listRef.current.length;
178
+ }
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: !0
22
+ }), mod);
23
+ var utils_exports = {};
24
+ __export(utils_exports, {
25
+ activeElement: () => activeElement,
26
+ clearTimeoutIfSet: () => clearTimeoutIfSet,
27
+ contains: () => contains,
28
+ enqueueFocus: () => enqueueFocus,
29
+ findNonDisabledListIndex: () => findNonDisabledListIndex,
30
+ getDocument: () => getDocument,
31
+ getMaxListIndex: () => getMaxListIndex,
32
+ getMinListIndex: () => getMinListIndex,
33
+ getTarget: () => getTarget,
34
+ isElement: () => isElement,
35
+ isHTMLElement: () => isHTMLElement,
36
+ isIndexOutOfListBounds: () => isIndexOutOfListBounds,
37
+ isListIndexDisabled: () => isListIndexDisabled,
38
+ isMac: () => isMac,
39
+ isMouseLikePointerType: () => isMouseLikePointerType,
40
+ isSafari: () => isSafari,
41
+ isTypeableCombobox: () => isTypeableCombobox,
42
+ isTypeableElement: () => isTypeableElement,
43
+ isVirtualClick: () => isVirtualClick,
44
+ isVirtualPointerEvent: () => isVirtualPointerEvent,
45
+ matchesFocusVisible: () => matchesFocusVisible,
46
+ stopEvent: () => stopEvent
47
+ });
48
+ module.exports = __toCommonJS(utils_exports);
49
+ function _instanceof(left, right) {
50
+ return right != null && typeof Symbol < "u" && right[Symbol.hasInstance] ? !!right[Symbol.hasInstance](left) : left instanceof right;
51
+ }
52
+ function getDocument(node) {
53
+ return node?.ownerDocument || document;
54
+ }
55
+ function contains(parent, child) {
56
+ var _child_getRootNode;
57
+ if (!parent || !child) return !1;
58
+ var rootNode = (_child_getRootNode = child.getRootNode) === null || _child_getRootNode === void 0 ? void 0 : _child_getRootNode.call(child);
59
+ if (parent.contains(child)) return !0;
60
+ if (rootNode && isShadowRoot(rootNode)) for (var next = child; next;) {
61
+ if (parent === next) return !0;
62
+ next = next.parentNode || next.host;
63
+ }
64
+ return !1;
65
+ }
66
+ function isShadowRoot(node) {
67
+ return _instanceof(node, ShadowRoot);
68
+ }
69
+ function getTarget(event) {
70
+ return "composedPath" in event ? event.composedPath()[0] : event.target;
71
+ }
72
+ function activeElement(doc) {
73
+ for (var _el_shadowRoot, el = doc.activeElement; (el == null || (_el_shadowRoot = el.shadowRoot) === null || _el_shadowRoot === void 0 ? void 0 : _el_shadowRoot.activeElement) != null;) el = el.shadowRoot.activeElement;
74
+ return el;
75
+ }
76
+ function isHTMLElement(value) {
77
+ return _instanceof(value, HTMLElement);
78
+ }
79
+ function isElement(value) {
80
+ return _instanceof(value, Element);
81
+ }
82
+ var TYPEABLE_SELECTOR = "input:not([type='hidden']):not([disabled]),[contenteditable]:not([contenteditable='false']),textarea:not([disabled])";
83
+ function isTypeableElement(element) {
84
+ return isHTMLElement(element) && element.matches(TYPEABLE_SELECTOR);
85
+ }
86
+ function isTypeableCombobox(element) {
87
+ return element ? element.getAttribute("role") === "combobox" && isTypeableElement(element) : !1;
88
+ }
89
+ function getPlatform() {
90
+ var uaData = navigator.userAgentData;
91
+ return uaData?.platform ? uaData.platform : navigator.platform;
92
+ }
93
+ function getUserAgent() {
94
+ var uaData = navigator.userAgentData;
95
+ return uaData && Array.isArray(uaData.brands) ? uaData.brands.map(function (param) {
96
+ var {
97
+ brand,
98
+ version
99
+ } = param;
100
+ return `${brand}/${version}`;
101
+ }).join(" ") : navigator.userAgent;
102
+ }
103
+ function isSafari() {
104
+ return /apple/i.test(navigator.vendor);
105
+ }
106
+ function isMac() {
107
+ return getPlatform().toLowerCase().startsWith("mac") && !navigator.maxTouchPoints;
108
+ }
109
+ function isJSDOM() {
110
+ return getUserAgent().includes("jsdom/");
111
+ }
112
+ function matchesFocusVisible(element) {
113
+ if (!element || isJSDOM()) return !0;
114
+ try {
115
+ return element.matches(":focus-visible");
116
+ } catch {
117
+ return !0;
118
+ }
119
+ }
120
+ function isMouseLikePointerType(pointerType, strict) {
121
+ var values = ["mouse", "pen"];
122
+ return strict || values.push("", void 0), values.includes(pointerType);
123
+ }
124
+ function clearTimeoutIfSet(timeoutRef) {
125
+ timeoutRef.current !== -1 && (clearTimeout(timeoutRef.current), timeoutRef.current = -1);
126
+ }
127
+ function stopEvent(event) {
128
+ event.preventDefault(), event.stopPropagation();
129
+ }
130
+ function isVirtualClick(event) {
131
+ return event.mozInputSource === 0 && event.isTrusted ? !0 : isAndroid() && event.pointerType ? event.type === "click" && event.buttons === 1 : event.detail === 0 && !event.pointerType;
132
+ }
133
+ function isVirtualPointerEvent(event) {
134
+ return isJSDOM() ? !1 : !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";
135
+ }
136
+ function isAndroid() {
137
+ var re = /android/i;
138
+ return re.test(getPlatform()) || re.test(getUserAgent());
139
+ }
140
+ var rafId = 0;
141
+ function enqueueFocus(el) {
142
+ var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {},
143
+ {
144
+ preventScroll = !1,
145
+ cancelPrevious = !0,
146
+ sync = !1
147
+ } = options;
148
+ cancelPrevious && cancelAnimationFrame(rafId);
149
+ var exec = function () {
150
+ return el?.focus({
151
+ preventScroll
152
+ });
153
+ };
154
+ sync ? exec() : rafId = requestAnimationFrame(exec);
155
+ }
156
+ function isListIndexDisabled(listRef, index, disabledIndices) {
157
+ if (typeof disabledIndices == "function") return disabledIndices(index);
158
+ if (disabledIndices) return disabledIndices.includes(index);
159
+ var element = listRef.current[index];
160
+ return element == null || element.hasAttribute("disabled") || element.getAttribute("aria-disabled") === "true";
161
+ }
162
+ function findNonDisabledListIndex(listRef) {
163
+ var {
164
+ startingIndex = -1,
165
+ decrement = !1,
166
+ disabledIndices,
167
+ amount = 1
168
+ } = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {},
169
+ index = startingIndex;
170
+ do index += decrement ? -amount : amount; while (index >= 0 && index <= listRef.current.length - 1 && isListIndexDisabled(listRef, index, disabledIndices));
171
+ return index;
172
+ }
173
+ function getMinListIndex(listRef, disabledIndices) {
174
+ return findNonDisabledListIndex(listRef, {
175
+ disabledIndices
176
+ });
177
+ }
178
+ function getMaxListIndex(listRef, disabledIndices) {
179
+ return findNonDisabledListIndex(listRef, {
180
+ decrement: !0,
181
+ startingIndex: listRef.current.length,
182
+ disabledIndices
183
+ });
184
+ }
185
+ function isIndexOutOfListBounds(listRef, index) {
186
+ return index < 0 || index >= listRef.current.length;
187
+ }
188
+ //# sourceMappingURL=utils.native.js.map
@@ -0,0 +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","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":[]}
@@ -0,0 +1,106 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf,
6
+ __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: !0
11
+ });
12
+ },
13
+ __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from == "object" || typeof from == "function") for (let key of __getOwnPropNames(from)) !__hasOwnProp.call(to, key) && key !== except && __defProp(to, key, {
15
+ get: () => from[key],
16
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
17
+ });
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
26
+ value: mod,
27
+ enumerable: !0
28
+ }) : target, mod)),
29
+ __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
30
+ value: !0
31
+ }), mod);
32
+ var inner_exports = {};
33
+ __export(inner_exports, {
34
+ inner: () => inner
35
+ });
36
+ module.exports = __toCommonJS(inner_exports);
37
+ var ReactDOM = __toESM(require("react-dom"), 1),
38
+ import_react_dom = require("@floating-ui/react-dom");
39
+ function getArgsWithCustomFloatingHeight(state, height) {
40
+ return {
41
+ ...state,
42
+ rects: {
43
+ ...state.rects,
44
+ floating: {
45
+ ...state.rects.floating,
46
+ height
47
+ }
48
+ }
49
+ };
50
+ }
51
+ const inner = props => ({
52
+ name: "inner",
53
+ options: props,
54
+ async fn(state) {
55
+ const {
56
+ listRef,
57
+ overflowRef,
58
+ onFallbackChange,
59
+ offset: innerOffset = 0,
60
+ index = 0,
61
+ minItemsVisible = 4,
62
+ referenceOverflowThreshold = 0,
63
+ scrollRef,
64
+ padding = 0
65
+ } = props,
66
+ {
67
+ rects,
68
+ platform,
69
+ elements: {
70
+ floating
71
+ }
72
+ } = state,
73
+ item = listRef.current?.[index ?? 0],
74
+ scrollEl = scrollRef?.current || floating,
75
+ clientTop = floating.clientTop || scrollEl.clientTop,
76
+ floatingIsBordered = floating.clientTop !== 0,
77
+ scrollElIsBordered = scrollEl.clientTop !== 0,
78
+ floatingIsScrollEl = floating === scrollEl;
79
+ if (!item || index == null) return onFallbackChange?.(!0), {};
80
+ const nextArgs = {
81
+ ...state,
82
+ ...(await (0, import_react_dom.offset)(-item.offsetTop - floating.clientTop - rects.reference.height / 2 - item.offsetHeight / 2 - innerOffset).fn(state))
83
+ },
84
+ detectOverflowOptions = {
85
+ padding
86
+ },
87
+ overflow = await platform.detectOverflow(getArgsWithCustomFloatingHeight(nextArgs, scrollEl.scrollHeight + clientTop + floating.clientTop), detectOverflowOptions),
88
+ refOverflow = await platform.detectOverflow(nextArgs, {
89
+ ...detectOverflowOptions,
90
+ elementContext: "reference"
91
+ }),
92
+ diffY = Math.max(0, overflow.top),
93
+ nextY = nextArgs.y + diffY,
94
+ maxHeight = (scrollEl.scrollHeight > scrollEl.clientHeight ? v => v : Math.round)(Math.max(0, scrollEl.scrollHeight + (floatingIsBordered && floatingIsScrollEl || scrollElIsBordered ? clientTop * 2 : 0) - diffY - Math.max(0, overflow.bottom)));
95
+ if (scrollEl.style.maxHeight = `${maxHeight}px`, scrollEl.scrollTop = diffY, onFallbackChange) {
96
+ const shouldFallback = scrollEl.offsetHeight < item.offsetHeight * Math.min(minItemsVisible, listRef.current?.length ?? 0) - 1 || refOverflow.top >= -referenceOverflowThreshold || refOverflow.bottom >= -referenceOverflowThreshold;
97
+ ReactDOM.flushSync(() => onFallbackChange(shouldFallback));
98
+ }
99
+ return overflowRef && (overflowRef.current = await platform.detectOverflow(getArgsWithCustomFloatingHeight({
100
+ ...nextArgs,
101
+ y: nextY
102
+ }, scrollEl.offsetHeight + clientTop + floating.clientTop), detectOverflowOptions)), {
103
+ y: nextY
104
+ };
105
+ }
106
+ });